livemark 0.8.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,7 +1,118 @@
1
1
  # Livemark
2
2
 
3
- [![Build](https://img.shields.io/github/actions/workflow/status/datisthq/livemark/general.yaml?branch=main)](https://github.com/datisthq/livemark/actions)
4
- [![Coverage](https://img.shields.io/codecov/c/github/datisthq/livemark/main)](https://codecov.io/gh/datisthq/livemark)
5
- [![Version](https://img.shields.io/npm/v/livemark)](https://www.npmjs.com/package/livemark)
3
+ Livemark turns plain Markdown into a fast, modern documentation site. Point it at a folder of `.md` files and it gives you a deployable React + Vite site with search, syntax highlighting, blog and changelog sections, dark mode, and a customizable component library — all built in.
6
4
 
7
- Livemark turns your .md files into a fast, modern documentation site — with Shiki, Mermaid, LaTeX, MDX components, blog and changelog sections, all built in. For more information, please read the [project's documentation](https://livemark.dev).
5
+ ## What you get
6
+
7
+ - 📝 **Just write Markdown.** GitHub-flavored Markdown works out of the box, with frontmatter, custom heading IDs, footnotes, definition lists, and gemoji.
8
+ - 🎨 **Beautiful code blocks.** Syntax highlighting via [Shiki](https://shiki.style/) with 100+ languages, dual light/dark themes, line highlights, diffs, and TwoSlash type hints.
9
+ - 📊 **Diagrams and math.** [Mermaid](https://mermaid.js.org/) flowcharts and KaTeX equations, theme-aware, zero config.
10
+ - 🧩 **Rich elements.** Callouts, tabs, file trees, cards, columns, badges, package tabs (npm/pnpm/yarn/bun), embeds (YouTube, SoundCloud), and more — all as Markdown directives or MDX components.
11
+ - 📚 **Sections.** First-class support for docs, blog (with tags + RSS), and changelog (local `CHANGELOG.md` or GitHub releases).
12
+ - 🔍 **Search.** Full-text search powered by [Orama](https://oramasearch.com/), keyboard shortcuts, smart table-of-contents.
13
+ - 🌗 **Themable.** Tailwind v4, shadcn-style primitives, dark mode, and per-file overrides via a `.livemark/` folder.
14
+ - ⚡ **Built on TanStack Start.** SSR, prerendering, sitemap, and routing for free.
15
+
16
+ ## Quick start
17
+
18
+ You need [Node.js](https://nodejs.org/) 24+ and a package manager (pnpm, npm, yarn, or bun).
19
+
20
+ ### Install
21
+
22
+ ```bash
23
+ npm install livemark
24
+ ```
25
+
26
+ ### Configure
27
+
28
+ Create `livemark.config.ts` at the root of your project:
29
+
30
+ ```ts title="livemark.config.ts"
31
+ import { defineConfig } from "livemark"
32
+
33
+ export default defineConfig({
34
+ title: "My docs",
35
+ description: "Documentation for my project",
36
+ include: ["docs/**/*.md"],
37
+ })
38
+ ```
39
+
40
+ ### Add content
41
+
42
+ ```text title="docs/"
43
+ docs/
44
+ ├── getting-started.md
45
+ └── usage.md
46
+ ```
47
+
48
+ Each `.md` file supports frontmatter:
49
+
50
+ ```md title="docs/getting-started.md"
51
+ ---
52
+ title: Getting Started
53
+ description: Set up the project in five minutes.
54
+ icon: rocket
55
+ order: 1
56
+ ---
57
+
58
+ # Getting Started
59
+
60
+ Welcome!
61
+ ```
62
+
63
+ ### Run
64
+
65
+ ```bash
66
+ npx livemark start # dev server with HMR at http://localhost:8000
67
+ npx livemark build # production build to .livemark/build/
68
+ npx livemark preview # serve the production build locally
69
+ ```
70
+
71
+ That's the whole loop.
72
+
73
+ ## Project structure
74
+
75
+ A typical Livemark site:
76
+
77
+ ```text title="my-project/"
78
+ my-project/
79
+ ├── livemark.config.ts # configuration
80
+ ├── docs/ # markdown content
81
+ ├── blog/ # blog posts (optional)
82
+ ├── CHANGELOG.md # changelog source (optional)
83
+ └── .livemark/ # overrides + build cache (generated)
84
+ ```
85
+
86
+ Anything under `.livemark/components/`, `.livemark/elements/`, or `.livemark/styles/` shadows the Livemark default with the same path — so you can customize components, primitives, and base CSS without forking the package. Run `npx livemark escape <path>` to copy a default into `.livemark/` ready to edit.
87
+
88
+ ## Customization
89
+
90
+ Livemark is meant to look great with zero configuration and stay out of your way when you need more. Common customizations:
91
+
92
+ - **Site metadata** — title, description, favicon, logo. See the [Site Metadata guide](https://livemark.dev/customization/site-metadata/).
93
+ - **Sections** — split content into Docs / Blog / Changelog with their own URL prefixes. See [Sections](https://livemark.dev/customization/sections/).
94
+ - **Navigation links** — header and sidebar links to anywhere. See [Navigation Links](https://livemark.dev/customization/navigation-links/).
95
+ - **Syntax themes** — Shiki theme per light/dark. See [Syntax Themes](https://livemark.dev/customization/syntax-themes/).
96
+ - **Content patches** — override a markdown file's frontmatter from `livemark.config.ts` without touching the file. See [Content Patches](https://livemark.dev/customization/content-patches/).
97
+ - **File overrides** — replace any built-in component or stylesheet from your project. See [File Overrides](https://livemark.dev/customization/file-overrides/).
98
+ - **Custom routes** — drop a `.tsx` file into `.livemark/routes/` to add a fully custom page. See [Custom Routes](https://livemark.dev/customization/custom-routes/).
99
+
100
+ ## Documentation
101
+
102
+ Full documentation lives at **[livemark.dev](https://livemark.dev)**:
103
+
104
+ - [Markdown reference](https://livemark.dev/markdown/) — every Markdown / MDX feature with examples
105
+ - [Customization](https://livemark.dev/customization/) — every knob, with copy-pasteable snippets
106
+ - [Changelog](https://livemark.dev/changelog/) — release notes
107
+ - [Contributing](https://livemark.dev/contributing/) — local setup and PR flow
108
+
109
+ ## Resources
110
+
111
+ - **npm**: [npmjs.com/package/livemark](https://www.npmjs.com/package/livemark)
112
+ - **GitHub**: [github.com/datisthq/livemark](https://github.com/datisthq/livemark)
113
+ - **Issues**: [github.com/datisthq/livemark/issues](https://github.com/datisthq/livemark/issues)
114
+ - **Discussions**: [github.com/datisthq/livemark/discussions](https://github.com/datisthq/livemark/discussions)
115
+
116
+ ## License
117
+
118
+ MIT — see [LICENSE.md](LICENSE.md).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "livemark",
3
- "version": "0.8.0",
3
+ "version": "0.9.1",
4
4
  "description": "Livemark description",
5
5
  "license": "MIT",
6
6
  "author": "Evgeny Karev",
@@ -11,6 +11,7 @@
11
11
  "files": [
12
12
  "target",
13
13
  "source",
14
+ "!source/routeTree.gen.ts",
14
15
  "skills"
15
16
  ],
16
17
  "type": "module",
@@ -57,47 +57,6 @@ export function Article(props: { article: ArticleView }) {
57
57
  : []
58
58
  const hasMeta = publishedDate || authors.length > 0 || lastUpdated
59
59
 
60
- const H1 = (headingProps: React.HTMLAttributes<HTMLHeadingElement>) => (
61
- <>
62
- <h1 {...headingProps}>
63
- {headingProps.id ? (
64
- <a href={`#${headingProps.id}`}>{headingProps.children}</a>
65
- ) : (
66
- headingProps.children
67
- )}
68
- </h1>
69
- {hasMeta && (
70
- <p className="flex flex-wrap items-center gap-x-3 gap-y-1 text-sm text-muted-foreground !-mt-4 !mb-6">
71
- {authors.length > 0 && (
72
- <span className="flex items-center gap-1.5">
73
- <User className="size-3.5" />
74
- {authors.join(", ")}
75
- </span>
76
- )}
77
- {publishedDate && (
78
- <span className="flex items-center gap-1.5">
79
- <Calendar className="size-3.5" />
80
- Published {publishedDate}
81
- </span>
82
- )}
83
- {lastUpdated && (
84
- <span className="flex items-center gap-1.5">
85
- <History className="size-3.5" />
86
- Updated {lastUpdated}
87
- </span>
88
- )}
89
- </p>
90
- )}
91
- {article.image && (
92
- <img
93
- src={article.image}
94
- alt=""
95
- className="!mt-0 !mb-6 w-full rounded-xl border shadow-sm"
96
- />
97
- )}
98
- </>
99
- )
100
-
101
60
  return (
102
61
  <TocContext.Provider value={article.tocItems}>
103
62
  {article.toc !== false && (
@@ -113,6 +72,38 @@ export function Article(props: { article: ArticleView }) {
113
72
  <div className="flex flex-1 gap-10 p-4 pt-8 md:p-10">
114
73
  <div className="flex-1 min-w-0 mx-auto max-w-3xl">
115
74
  <div className="prose dark:prose-invert max-w-none">
75
+ <h1 id="top">
76
+ <a href="#top">{article.title}</a>
77
+ </h1>
78
+ {hasMeta && (
79
+ <p className="flex flex-wrap items-center gap-x-3 gap-y-1 text-sm text-muted-foreground !-mt-4 !mb-6">
80
+ {authors.length > 0 && (
81
+ <span className="flex items-center gap-1.5">
82
+ <User className="size-3.5" />
83
+ {authors.join(", ")}
84
+ </span>
85
+ )}
86
+ {publishedDate && (
87
+ <span className="flex items-center gap-1.5">
88
+ <Calendar className="size-3.5" />
89
+ Published {publishedDate}
90
+ </span>
91
+ )}
92
+ {lastUpdated && (
93
+ <span className="flex items-center gap-1.5">
94
+ <History className="size-3.5" />
95
+ Updated {lastUpdated}
96
+ </span>
97
+ )}
98
+ </p>
99
+ )}
100
+ {article.image && (
101
+ <img
102
+ src={article.image}
103
+ alt=""
104
+ className="!mt-0 !mb-6 w-full rounded-xl border shadow-sm"
105
+ />
106
+ )}
116
107
  <MDXContent
117
108
  code={article.mdx}
118
109
  components={{
@@ -150,7 +141,6 @@ export function Article(props: { article: ArticleView }) {
150
141
  SoundCloud,
151
142
  YouTube,
152
143
  ...headingComponents,
153
- h1: H1,
154
144
  }}
155
145
  />
156
146
  </div>
@@ -86,6 +86,10 @@ function getLastUpdated(filePath: string) {
86
86
  }
87
87
  }
88
88
 
89
+ function stripLeadingH1(content: string) {
90
+ return content.replace(/^[ \t]*#\s+[^\n]*\n+/, "")
91
+ }
92
+
89
93
  function extractTitle(content: string, path: string) {
90
94
  const match = /^#\s+(.+)$/m.exec(content)
91
95
  if (match) return match[1]!
@@ -111,9 +115,14 @@ const articles = defineCollection({
111
115
  const title = doc.title ?? extractTitle(content, doc._meta.path)
112
116
  const icon = doc.icon ?? pickDefaultIcon(doc._meta.path)
113
117
  const path = doc.path ?? toPath(doc._meta.filePath)
118
+ // The article's h1 is rendered from `title` by the layout, so strip any
119
+ // leading h1 in the body to avoid two h1s side-by-side (especially when
120
+ // a content patch overrides the title to something different from the
121
+ // body's own heading).
122
+ const bodyContent = stripLeadingH1(content)
114
123
  const mdx = await compileMDX(
115
124
  context,
116
- { ...doc, content },
125
+ { ...doc, content: bodyContent },
117
126
  {
118
127
  remarkPlugins: [
119
128
  remarkGfm,
@@ -26,6 +26,7 @@ export const Article = z.object({
26
26
  /** Processed article ready for page rendering (result of content-collections transform). */
27
27
  export interface ArticleView {
28
28
  path: string
29
+ title: string
29
30
  content: string
30
31
  file: string
31
32
  mdx: string
@@ -19,8 +19,8 @@ import { OVERRIDE_SUBDIRS } from "./settings.ts"
19
19
  import { livemark } from "./plugins/vite-livemark.ts"
20
20
 
21
21
  const config = await loadConfig()
22
- const websiteDir = import.meta.dirname
23
- const websiteRelative = relative(config.root, websiteDir)
22
+ const sourceDir = import.meta.dirname
23
+ const sourceRelative = relative(config.root, sourceDir)
24
24
  const overridesRoot = join(config.root, ".livemark")
25
25
 
26
26
  // Seed `.livemark/.gitignore` on first run so Vite's build/cache artifacts
@@ -33,7 +33,15 @@ if (!existsSync(gitignorePath)) {
33
33
 
34
34
  const routeChildren: VirtualRouteNode[] = [route("/$", "$.tsx")]
35
35
  if (existsSync(join(overridesRoot, "routes"))) {
36
- routeChildren.push(physical("../../.livemark/routes"))
36
+ // physical(dir) resolves `dir` relative to the routes directory
37
+ // (`srcDirectory/routes`). A hardcoded "../../.livemark/routes" only
38
+ // works when source/ sits one level under config.root — it lands at
39
+ // node_modules/.livemark/routes once livemark is installed. Compute
40
+ // the path dynamically from the consumer's actual layout.
41
+ const routesDir = join(sourceDir, "routes")
42
+ routeChildren.push(
43
+ physical(relative(routesDir, join(overridesRoot, "routes"))),
44
+ )
37
45
  }
38
46
 
39
47
  export default defineConfig({
@@ -45,7 +53,7 @@ export default defineConfig({
45
53
  },
46
54
  plugins: [
47
55
  livemark({
48
- defaultsRoot: websiteDir,
56
+ defaultsRoot: sourceDir,
49
57
  overridesRoot,
50
58
  subdirs: [...OVERRIDE_SUBDIRS],
51
59
  configPath: config.configPath,
@@ -53,10 +61,10 @@ export default defineConfig({
53
61
  devtools(),
54
62
  tailwind(),
55
63
  contentCollections({
56
- configPath: join(websiteRelative, "content-collections.ts"),
64
+ configPath: join(sourceRelative, "content-collections.ts"),
57
65
  }),
58
66
  tanstackStart({
59
- srcDirectory: websiteRelative,
67
+ srcDirectory: sourceRelative,
60
68
  pages: [{ path: "/" }],
61
69
  prerender: { enabled: true, crawlLinks: true },
62
70
  sitemap: config.site
@@ -1,4 +1,4 @@
1
- import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { MDXContent } from "@content-collections/mdx/react";
3
3
  import { Calendar, History, User } from "lucide-react";
4
4
  import { TocContext } from "../helpers/toc-context.js";
@@ -44,52 +44,51 @@ export function Article(props) {
44
44
  : [article.author]
45
45
  : [];
46
46
  const hasMeta = publishedDate || authors.length > 0 || lastUpdated;
47
- const H1 = (headingProps) => (_jsxs(_Fragment, { children: [
48
- _jsx("h1", { ...headingProps, children: headingProps.id ? (_jsx("a", { href: `#${headingProps.id}`, children: headingProps.children })) : (headingProps.children) }), hasMeta && (_jsxs("p", { className: "flex flex-wrap items-center gap-x-3 gap-y-1 text-sm text-muted-foreground !-mt-4 !mb-6", children: [authors.length > 0 && (_jsxs("span", { className: "flex items-center gap-1.5", children: [
49
- _jsx(User, { className: "size-3.5" }), authors.join(", ")] })), publishedDate && (_jsxs("span", { className: "flex items-center gap-1.5", children: [
50
- _jsx(Calendar, { className: "size-3.5" }),
51
- "Published ", publishedDate] })), lastUpdated && (_jsxs("span", { className: "flex items-center gap-1.5", children: [
52
- _jsx(History, { className: "size-3.5" }),
53
- "Updated ", lastUpdated] }))] })), article.image && (_jsx("img", { src: article.image, alt: "", className: "!mt-0 !mb-6 w-full rounded-xl border shadow-sm" }))] }));
54
47
  return (_jsxs(TocContext.Provider, { value: article.tocItems, children: [article.toc !== false && (_jsx(MobileToc, { items: article.tocItems, children: _jsx(PageToolbar, { file: article.file, sourceUrl: article.sourceUrl, sourceAction: article.sourceAction, content: article.content }) })), _jsxs("div", { className: "flex flex-1 gap-10 p-4 pt-8 md:p-10", children: [
55
48
  _jsxs("div", { className: "flex-1 min-w-0 mx-auto max-w-3xl", children: [
56
- _jsx("div", { className: "prose dark:prose-invert max-w-none", children: _jsx(MDXContent, { code: article.mdx, components: {
57
- hr: Separator,
58
- img: ZoomImage,
59
- pre: CodeBlock,
60
- table: SortableTable,
61
- thead: TableHeader,
62
- tbody: TableBody,
63
- tr: TableRow,
64
- th: TableHead,
65
- td: TableCell,
66
- a: FootnoteRef,
67
- Abbr,
68
- AnsiCode,
69
- Callout,
70
- Card,
71
- Cards,
72
- Column,
73
- Columns,
74
- CodeTabs,
75
- ContentTab,
76
- ContentTabs,
77
- DefinitionDetail,
78
- DefinitionList,
79
- DefinitionTerm,
80
- Details,
81
- FileTree,
82
- InlineBadge,
83
- InlineIcon,
84
- InlineToc,
85
- LinkButton,
86
- Mermaid,
87
- PackageTabs,
88
- SoundCloud,
89
- YouTube,
90
- ...headingComponents,
91
- h1: H1,
92
- } }) }), _jsx(PrevNext, { path: article.path }), _jsx(Footer, {})
49
+ _jsxs("div", { className: "prose dark:prose-invert max-w-none", children: [
50
+ _jsx("h1", { id: "top", children: _jsx("a", { href: "#top", children: article.title }) }), hasMeta && (_jsxs("p", { className: "flex flex-wrap items-center gap-x-3 gap-y-1 text-sm text-muted-foreground !-mt-4 !mb-6", children: [authors.length > 0 && (_jsxs("span", { className: "flex items-center gap-1.5", children: [
51
+ _jsx(User, { className: "size-3.5" }), authors.join(", ")] })), publishedDate && (_jsxs("span", { className: "flex items-center gap-1.5", children: [
52
+ _jsx(Calendar, { className: "size-3.5" }),
53
+ "Published ", publishedDate] })), lastUpdated && (_jsxs("span", { className: "flex items-center gap-1.5", children: [
54
+ _jsx(History, { className: "size-3.5" }),
55
+ "Updated ", lastUpdated] }))] })), article.image && (_jsx("img", { src: article.image, alt: "", className: "!mt-0 !mb-6 w-full rounded-xl border shadow-sm" })), _jsx(MDXContent, { code: article.mdx, components: {
56
+ hr: Separator,
57
+ img: ZoomImage,
58
+ pre: CodeBlock,
59
+ table: SortableTable,
60
+ thead: TableHeader,
61
+ tbody: TableBody,
62
+ tr: TableRow,
63
+ th: TableHead,
64
+ td: TableCell,
65
+ a: FootnoteRef,
66
+ Abbr,
67
+ AnsiCode,
68
+ Callout,
69
+ Card,
70
+ Cards,
71
+ Column,
72
+ Columns,
73
+ CodeTabs,
74
+ ContentTab,
75
+ ContentTabs,
76
+ DefinitionDetail,
77
+ DefinitionList,
78
+ DefinitionTerm,
79
+ Details,
80
+ FileTree,
81
+ InlineBadge,
82
+ InlineIcon,
83
+ InlineToc,
84
+ LinkButton,
85
+ Mermaid,
86
+ PackageTabs,
87
+ SoundCloud,
88
+ YouTube,
89
+ ...headingComponents,
90
+ } })
91
+ ] }), _jsx(PrevNext, { path: article.path }), _jsx(Footer, {})
93
92
  ] }), article.toc !== false && (_jsx(Toc, { items: article.tocItems, children: _jsx(PageToolbar, { file: article.file, sourceUrl: article.sourceUrl, sourceAction: article.sourceAction, content: article.content }) }))] })
94
93
  ] }));
95
94
  }
@@ -102,4 +101,4 @@ function formatDate(iso) {
102
101
  day: "numeric",
103
102
  });
104
103
  }
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aWNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9jb21wb25lbnRzL0FydGljbGUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXRELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBWSxDQUFBO0FBQ2pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFlLENBQUE7QUFDdkMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVksQ0FBQTtBQUNqQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sWUFBYSxDQUFBO0FBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZ0IsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYyxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFlLENBQUE7QUFDdkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFrQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBbUIsQ0FBQTtBQUMvQyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxjQUFjLEdBQ2YsTUFBTSxxQkFBc0IsQ0FBQTtBQUM3QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLEVB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STt3Q0FDSixLQUFLO3dDQUNMLE1BQU07d0NBQ04sT0FBTzt3Q0FDUCxRQUFRO3dDQUNSLFVBQVU7d0NBQ1YsV0FBVzt3Q0FDWCxnQkFBZ0I7d0NBQ2hCLGNBQWM7d0NBQ2QsY0FBYzt3Q0FDZCxPQUFPO3dDQUNQLFFBQVE7d0NBQ1IsV0FBVzt3Q0FDWCxVQUFVO3dDQUNWLFNBQVM7d0NBQ1QsVUFBVTt3Q0FDVixPQUFPO3dDQUNQLFdBQVc7d0NBQ1gsVUFBVTt3Q0FDVixPQUFPO3dDQUNQLEdBQUcsaUJBQWlCO3dDQUNwQixFQUFFLEVBQUUsRUFBRTtxQ0FDUCxHQUNELEdBQ0UsRUFDTixLQUFDLFFBQVEsSUFBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksR0FBSSxFQUNoQyxLQUFDLE1BQU0sS0FBRzs0QkFDTixFQUNMLE9BQU8sQ0FBQyxHQUFHLEtBQUssS0FBSyxJQUFJLENBQ3hCLEtBQUMsR0FBRyxJQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsUUFBUSxZQUMxQixLQUFDLFdBQVcsSUFDVixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksRUFDbEIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQzVCLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWSxFQUNsQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sR0FDeEIsR0FDRSxDQUNQLElBQ0c7WUFDYyxDQUN2QixDQUFBO0FBQ0gsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEdBQVk7SUFDOUIsSUFBSSxDQUFDLEdBQUc7UUFBRSxPQUFPLFNBQVMsQ0FBQTtJQUMxQixPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRTtRQUMvQyxJQUFJLEVBQUUsU0FBUztRQUNmLEtBQUssRUFBRSxPQUFPO1FBQ2QsR0FBRyxFQUFFLFNBQVM7S0FDZixDQUFDLENBQUE7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTURYQ29udGVudCB9IGZyb20gXCJAY29udGVudC1jb2xsZWN0aW9ucy9tZHgvcmVhY3RcIlxuaW1wb3J0IHsgQ2FsZW5kYXIsIEhpc3RvcnksIFVzZXIgfSBmcm9tIFwibHVjaWRlLXJlYWN0XCJcbmltcG9ydCB0eXBlIHsgQXJ0aWNsZVZpZXcgfSBmcm9tIFwiLi4vbW9kZWxzL2FydGljbGUudHNcIlxuaW1wb3J0IHsgVG9jQ29udGV4dCB9IGZyb20gXCIuLi9oZWxwZXJzL3RvYy1jb250ZXh0LnRzXCJcbmltcG9ydCB7IEFiYnIgfSBmcm9tIFwiLi9BYmJyLnRzeFwiXG5pbXBvcnQgeyBBbnNpQ29kZSB9IGZyb20gXCIuL0Fuc2lDb2RlLnRzeFwiXG5pbXBvcnQgeyBDYWxsb3V0IH0gZnJvbSBcIi4vQ2FsbG91dC50c3hcIlxuaW1wb3J0IHsgQ2FyZCB9IGZyb20gXCIuL0NhcmQudHN4XCJcbmltcG9ydCB7IENhcmRzIH0gZnJvbSBcIi4vQ2FyZHMudHN4XCJcbmltcG9ydCB7IENvZGVCbG9jayB9IGZyb20gXCIuL0NvZGVCbG9jay50c3hcIlxuaW1wb3J0IHsgQ29kZVRhYnMgfSBmcm9tIFwiLi9Db2RlVGFicy50c3hcIlxuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSBcIi4vQ29sdW1uLnRzeFwiXG5pbXBvcnQgeyBDb2x1bW5zIH0gZnJvbSBcIi4vQ29sdW1ucy50c3hcIlxuaW1wb3J0IHsgQ29udGVudFRhYiB9IGZyb20gXCIuL0NvbnRlbnRUYWIudHN4XCJcbmltcG9ydCB7IENvbnRlbnRUYWJzIH0gZnJvbSBcIi4vQ29udGVudFRhYnMudHN4XCJcbmltcG9ydCB7XG4gIERlZmluaXRpb25EZXRhaWwsXG4gIERlZmluaXRpb25MaXN0LFxuICBEZWZpbml0aW9uVGVybSxcbn0gZnJvbSBcIi4vRGVmaW5pdGlvbkxpc3QudHN4XCJcbmltcG9ydCB7IERldGFpbHMgfSBmcm9tIFwiLi9EZXRhaWxzLnRzeFwiXG5pbXBvcnQgeyBGaWxlVHJlZSB9IGZyb20gXCIuL0ZpbGVUcmVlLnRzeFwiXG5pbXBvcnQgeyBGb290ZXIgfSBmcm9tIFwiLi9Gb290ZXIudHN4XCJcbmltcG9ydCB7IEZvb3Rub3RlUmVmIH0gZnJvbSBcIi4vRm9vdG5vdGVSZWYudHN4XCJcbmltcG9ydCB7IGhlYWRpbmdDb21wb25lbnRzIH0gZnJvbSBcIi4vSGVhZGluZy50c3hcIlxuaW1wb3J0IHsgSW5saW5lQmFkZ2UgfSBmcm9tIFwiLi9JbmxpbmVCYWRnZS50c3hcIlxuaW1wb3J0IHsgSW5saW5lSWNvbiB9IGZyb20gXCIuL0lubGluZUljb24udHN4XCJcbmltcG9ydCB7IElubGluZVRvYyB9IGZyb20gXCIuL0lubGluZVRvYy50c3hcIlxuaW1wb3J0IHsgTGlua0J1dHRvbiB9IGZyb20gXCIuL0xpbmtCdXR0b24udHN4XCJcbmltcG9ydCB7IE1lcm1haWQgfSBmcm9tIFwiLi9NZXJtYWlkLnRzeFwiXG5pbXBvcnQgeyBQYWNrYWdlVGFicyB9IGZyb20gXCIuL1BhY2thZ2VUYWJzLnRzeFwiXG5pbXBvcnQgeyBQYWdlVG9vbGJhciB9IGZyb20gXCIuL1BhZ2VUb29sYmFyLnRzeFwiXG5pbXBvcnQgeyBQcmV2TmV4dCB9IGZyb20gXCIuL1ByZXZOZXh0LnRzeFwiXG5pbXBvcnQge1xuICBTb3J0YWJsZVRhYmxlLFxuICBUYWJsZUJvZHksXG4gIFRhYmxlQ2VsbCxcbiAgVGFibGVIZWFkLFxuICBUYWJsZUhlYWRlcixcbiAgVGFibGVSb3csXG59IGZyb20gXCIuL1NvcnRhYmxlVGFibGUudHN4XCJcbmltcG9ydCB7IFNvdW5kQ2xvdWQgfSBmcm9tIFwiLi9Tb3VuZENsb3VkLnRzeFwiXG5pbXBvcnQgeyBNb2JpbGVUb2MsIFRvYyB9IGZyb20gXCIuL1RvYy50c3hcIlxuaW1wb3J0IHsgWW91VHViZSB9IGZyb20gXCIuL1lvdVR1YmUudHN4XCJcbmltcG9ydCB7IFpvb21JbWFnZSB9IGZyb20gXCIuL1pvb21JbWFnZS50c3hcIlxuaW1wb3J0IHsgU2VwYXJhdG9yIH0gZnJvbSBcIi4uL2VsZW1lbnRzL3NlcGFyYXRvci50c3hcIlxuXG4vKiogRnVsbC1wYWdlIGFydGljbGUgbGF5b3V0OiBNRFggY29udGVudCwgdGFibGUgb2YgY29udGVudHMsIHRvb2xiYXIsIHByZXYvbmV4dCwgZm9vdGVyICovXG5leHBvcnQgZnVuY3Rpb24gQXJ0aWNsZShwcm9wczogeyBhcnRpY2xlOiBBcnRpY2xlVmlldyB9KSB7XG4gIGNvbnN0IHsgYXJ0aWNsZSB9ID0gcHJvcHNcbiAgY29uc3QgbGFzdFVwZGF0ZWQgPSBmb3JtYXREYXRlKGFydGljbGUubGFzdFVwZGF0ZWQpXG4gIGNvbnN0IHB1Ymxpc2hlZERhdGUgPSBmb3JtYXREYXRlKGFydGljbGUuZGF0ZSlcbiAgY29uc3QgYXV0aG9ycyA9IGFydGljbGUuYXV0aG9yXG4gICAgPyBBcnJheS5pc0FycmF5KGFydGljbGUuYXV0aG9yKVxuICAgICAgPyBhcnRpY2xlLmF1dGhvclxuICAgICAgOiBbYXJ0aWNsZS5hdXRob3JdXG4gICAgOiBbXVxuICBjb25zdCBoYXNNZXRhID0gcHVibGlzaGVkRGF0ZSB8fCBhdXRob3JzLmxlbmd0aCA+IDAgfHwgbGFzdFVwZGF0ZWRcblxuICBjb25zdCBIMSA9IChoZWFkaW5nUHJvcHM6IFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxIZWFkaW5nRWxlbWVudD4pID0+IChcbiAgICA8PlxuICAgICAgPGgxIHsuLi5oZWFkaW5nUHJvcHN9PlxuICAgICAgICB7aGVhZGluZ1Byb3BzLmlkID8gKFxuICAgICAgICAgIDxhIGhyZWY9e2AjJHtoZWFkaW5nUHJvcHMuaWR9YH0+e2hlYWRpbmdQcm9wcy5jaGlsZHJlbn08L2E+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgaGVhZGluZ1Byb3BzLmNoaWxkcmVuXG4gICAgICAgICl9XG4gICAgICA8L2gxPlxuICAgICAge2hhc01ldGEgJiYgKFxuICAgICAgICA8cCBjbGFzc05hbWU9XCJmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgZ2FwLXgtMyBnYXAteS0xIHRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kICEtbXQtNCAhbWItNlwiPlxuICAgICAgICAgIHthdXRob3JzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEuNVwiPlxuICAgICAgICAgICAgICA8VXNlciBjbGFzc05hbWU9XCJzaXplLTMuNVwiIC8+XG4gICAgICAgICAgICAgIHthdXRob3JzLmpvaW4oXCIsIFwiKX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApfVxuICAgICAgICAgIHtwdWJsaXNoZWREYXRlICYmIChcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjVcIj5cbiAgICAgICAgICAgICAgPENhbGVuZGFyIGNsYXNzTmFtZT1cInNpemUtMy41XCIgLz5cbiAgICAgICAgICAgICAgUHVibGlzaGVkIHtwdWJsaXNoZWREYXRlfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICl9XG4gICAgICAgICAge2xhc3RVcGRhdGVkICYmIChcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjVcIj5cbiAgICAgICAgICAgICAgPEhpc3RvcnkgY2xhc3NOYW1lPVwic2l6ZS0zLjVcIiAvPlxuICAgICAgICAgICAgICBVcGRhdGVkIHtsYXN0VXBkYXRlZH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L3A+XG4gICAgICApfVxuICAgICAge2FydGljbGUuaW1hZ2UgJiYgKFxuICAgICAgICA8aW1nXG4gICAgICAgICAgc3JjPXthcnRpY2xlLmltYWdlfVxuICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgY2xhc3NOYW1lPVwiIW10LTAgIW1iLTYgdy1mdWxsIHJvdW5kZWQteGwgYm9yZGVyIHNoYWRvdy1zbVwiXG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvPlxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8VG9jQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17YXJ0aWNsZS50b2NJdGVtc30+XG4gICAgICB7YXJ0aWNsZS50b2MgIT09IGZhbHNlICYmIChcbiAgICAgICAgPE1vYmlsZVRvYyBpdGVtcz17YXJ0aWNsZS50b2NJdGVtc30+XG4gICAgICAgICAgPFBhZ2VUb29sYmFyXG4gICAgICAgICAgICBmaWxlPXthcnRpY2xlLmZpbGV9XG4gICAgICAgICAgICBzb3VyY2VVcmw9e2FydGljbGUuc291cmNlVXJsfVxuICAgICAgICAgICAgc291cmNlQWN0aW9uPXthcnRpY2xlLnNvdXJjZUFjdGlvbn1cbiAgICAgICAgICAgIGNvbnRlbnQ9e2FydGljbGUuY29udGVudH1cbiAgICAgICAgICAvPlxuICAgICAgICA8L01vYmlsZVRvYz5cbiAgICAgICl9XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC0xIGdhcC0xMCBwLTQgcHQtOCBtZDpwLTEwXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIG1pbi13LTAgbXgtYXV0byBtYXgtdy0zeGxcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInByb3NlIGRhcms6cHJvc2UtaW52ZXJ0IG1heC13LW5vbmVcIj5cbiAgICAgICAgICAgIDxNRFhDb250ZW50XG4gICAgICAgICAgICAgIGNvZGU9e2FydGljbGUubWR4fVxuICAgICAgICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgICAgICAgaHI6IFNlcGFyYXRvcixcbiAgICAgICAgICAgICAgICBpbWc6IFpvb21JbWFnZSxcbiAgICAgICAgICAgICAgICBwcmU6IENvZGVCbG9jayxcbiAgICAgICAgICAgICAgICB0YWJsZTogU29ydGFibGVUYWJsZSxcbiAgICAgICAgICAgICAgICB0aGVhZDogVGFibGVIZWFkZXIsXG4gICAgICAgICAgICAgICAgdGJvZHk6IFRhYmxlQm9keSxcbiAgICAgICAgICAgICAgICB0cjogVGFibGVSb3csXG4gICAgICAgICAgICAgICAgdGg6IFRhYmxlSGVhZCxcbiAgICAgICAgICAgICAgICB0ZDogVGFibGVDZWxsLFxuICAgICAgICAgICAgICAgIGE6IEZvb3Rub3RlUmVmLFxuICAgICAgICAgICAgICAgIEFiYnIsXG4gICAgICAgICAgICAgICAgQW5zaUNvZGUsXG4gICAgICAgICAgICAgICAgQ2FsbG91dCxcbiAgICAgICAgICAgICAgICBDYXJkLFxuICAgICAgICAgICAgICAgIENhcmRzLFxuICAgICAgICAgICAgICAgIENvbHVtbixcbiAgICAgICAgICAgICAgICBDb2x1bW5zLFxuICAgICAgICAgICAgICAgIENvZGVUYWJzLFxuICAgICAgICAgICAgICAgIENvbnRlbnRUYWIsXG4gICAgICAgICAgICAgICAgQ29udGVudFRhYnMsXG4gICAgICAgICAgICAgICAgRGVmaW5pdGlvbkRldGFpbCxcbiAgICAgICAgICAgICAgICBEZWZpbml0aW9uTGlzdCxcbiAgICAgICAgICAgICAgICBEZWZpbml0aW9uVGVybSxcbiAgICAgICAgICAgICAgICBEZXRhaWxzLFxuICAgICAgICAgICAgICAgIEZpbGVUcmVlLFxuICAgICAgICAgICAgICAgIElubGluZUJhZGdlLFxuICAgICAgICAgICAgICAgIElubGluZUljb24sXG4gICAgICAgICAgICAgICAgSW5saW5lVG9jLFxuICAgICAgICAgICAgICAgIExpbmtCdXR0b24sXG4gICAgICAgICAgICAgICAgTWVybWFpZCxcbiAgICAgICAgICAgICAgICBQYWNrYWdlVGFicyxcbiAgICAgICAgICAgICAgICBTb3VuZENsb3VkLFxuICAgICAgICAgICAgICAgIFlvdVR1YmUsXG4gICAgICAgICAgICAgICAgLi4uaGVhZGluZ0NvbXBvbmVudHMsXG4gICAgICAgICAgICAgICAgaDE6IEgxLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8UHJldk5leHQgcGF0aD17YXJ0aWNsZS5wYXRofSAvPlxuICAgICAgICAgIDxGb290ZXIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHthcnRpY2xlLnRvYyAhPT0gZmFsc2UgJiYgKFxuICAgICAgICAgIDxUb2MgaXRlbXM9e2FydGljbGUudG9jSXRlbXN9PlxuICAgICAgICAgICAgPFBhZ2VUb29sYmFyXG4gICAgICAgICAgICAgIGZpbGU9e2FydGljbGUuZmlsZX1cbiAgICAgICAgICAgICAgc291cmNlVXJsPXthcnRpY2xlLnNvdXJjZVVybH1cbiAgICAgICAgICAgICAgc291cmNlQWN0aW9uPXthcnRpY2xlLnNvdXJjZUFjdGlvbn1cbiAgICAgICAgICAgICAgY29udGVudD17YXJ0aWNsZS5jb250ZW50fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1RvYz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvVG9jQ29udGV4dC5Qcm92aWRlcj5cbiAgKVxufVxuXG5mdW5jdGlvbiBmb3JtYXREYXRlKGlzbz86IHN0cmluZykge1xuICBpZiAoIWlzbykgcmV0dXJuIHVuZGVmaW5lZFxuICByZXR1cm4gbmV3IERhdGUoaXNvKS50b0xvY2FsZURhdGVTdHJpbmcoXCJlbi1VU1wiLCB7XG4gICAgeWVhcjogXCJudW1lcmljXCIsXG4gICAgbW9udGg6IFwic2hvcnRcIixcbiAgICBkYXk6IFwibnVtZXJpY1wiLFxuICB9KVxufVxuIl19
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aWNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9jb21wb25lbnRzL0FydGljbGUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXRELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBWSxDQUFBO0FBQ2pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFlLENBQUE7QUFDdkMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVksQ0FBQTtBQUNqQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sWUFBYSxDQUFBO0FBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZ0IsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYyxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFlLENBQUE7QUFDdkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFrQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBbUIsQ0FBQTtBQUMvQyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxjQUFjLEdBQ2YsTUFBTSxxQkFBc0IsQ0FBQTtBQUM3QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLEVB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Q0FDVCxVQUFVOzRDQUNWLE9BQU87NENBQ1AsV0FBVzs0Q0FDWCxVQUFVOzRDQUNWLE9BQU87NENBQ1AsR0FBRyxpQkFBaUI7eUNBQ3JCLEdBQ0Q7b0NBQ0UsRUFDTixLQUFDLFFBQVEsSUFBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksR0FBSSxFQUNoQyxLQUFDLE1BQU0sS0FBRzs0QkFDTixFQUNMLE9BQU8sQ0FBQyxHQUFHLEtBQUssS0FBSyxJQUFJLENBQ3hCLEtBQUMsR0FBRyxJQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsUUFBUSxZQUMxQixLQUFDLFdBQVcsSUFDVixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksRUFDbEIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQzVCLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWSxFQUNsQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sR0FDeEIsR0FDRSxDQUNQLElBQ0c7WUFDYyxDQUN2QixDQUFBO0FBQ0gsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEdBQVk7SUFDOUIsSUFBSSxDQUFDLEdBQUc7UUFBRSxPQUFPLFNBQVMsQ0FBQTtJQUMxQixPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRTtRQUMvQyxJQUFJLEVBQUUsU0FBUztRQUNmLEtBQUssRUFBRSxPQUFPO1FBQ2QsR0FBRyxFQUFFLFNBQVM7S0FDZixDQUFDLENBQUE7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTURYQ29udGVudCB9IGZyb20gXCJAY29udGVudC1jb2xsZWN0aW9ucy9tZHgvcmVhY3RcIlxuaW1wb3J0IHsgQ2FsZW5kYXIsIEhpc3RvcnksIFVzZXIgfSBmcm9tIFwibHVjaWRlLXJlYWN0XCJcbmltcG9ydCB0eXBlIHsgQXJ0aWNsZVZpZXcgfSBmcm9tIFwiLi4vbW9kZWxzL2FydGljbGUudHNcIlxuaW1wb3J0IHsgVG9jQ29udGV4dCB9IGZyb20gXCIuLi9oZWxwZXJzL3RvYy1jb250ZXh0LnRzXCJcbmltcG9ydCB7IEFiYnIgfSBmcm9tIFwiLi9BYmJyLnRzeFwiXG5pbXBvcnQgeyBBbnNpQ29kZSB9IGZyb20gXCIuL0Fuc2lDb2RlLnRzeFwiXG5pbXBvcnQgeyBDYWxsb3V0IH0gZnJvbSBcIi4vQ2FsbG91dC50c3hcIlxuaW1wb3J0IHsgQ2FyZCB9IGZyb20gXCIuL0NhcmQudHN4XCJcbmltcG9ydCB7IENhcmRzIH0gZnJvbSBcIi4vQ2FyZHMudHN4XCJcbmltcG9ydCB7IENvZGVCbG9jayB9IGZyb20gXCIuL0NvZGVCbG9jay50c3hcIlxuaW1wb3J0IHsgQ29kZVRhYnMgfSBmcm9tIFwiLi9Db2RlVGFicy50c3hcIlxuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSBcIi4vQ29sdW1uLnRzeFwiXG5pbXBvcnQgeyBDb2x1bW5zIH0gZnJvbSBcIi4vQ29sdW1ucy50c3hcIlxuaW1wb3J0IHsgQ29udGVudFRhYiB9IGZyb20gXCIuL0NvbnRlbnRUYWIudHN4XCJcbmltcG9ydCB7IENvbnRlbnRUYWJzIH0gZnJvbSBcIi4vQ29udGVudFRhYnMudHN4XCJcbmltcG9ydCB7XG4gIERlZmluaXRpb25EZXRhaWwsXG4gIERlZmluaXRpb25MaXN0LFxuICBEZWZpbml0aW9uVGVybSxcbn0gZnJvbSBcIi4vRGVmaW5pdGlvbkxpc3QudHN4XCJcbmltcG9ydCB7IERldGFpbHMgfSBmcm9tIFwiLi9EZXRhaWxzLnRzeFwiXG5pbXBvcnQgeyBGaWxlVHJlZSB9IGZyb20gXCIuL0ZpbGVUcmVlLnRzeFwiXG5pbXBvcnQgeyBGb290ZXIgfSBmcm9tIFwiLi9Gb290ZXIudHN4XCJcbmltcG9ydCB7IEZvb3Rub3RlUmVmIH0gZnJvbSBcIi4vRm9vdG5vdGVSZWYudHN4XCJcbmltcG9ydCB7IGhlYWRpbmdDb21wb25lbnRzIH0gZnJvbSBcIi4vSGVhZGluZy50c3hcIlxuaW1wb3J0IHsgSW5saW5lQmFkZ2UgfSBmcm9tIFwiLi9JbmxpbmVCYWRnZS50c3hcIlxuaW1wb3J0IHsgSW5saW5lSWNvbiB9IGZyb20gXCIuL0lubGluZUljb24udHN4XCJcbmltcG9ydCB7IElubGluZVRvYyB9IGZyb20gXCIuL0lubGluZVRvYy50c3hcIlxuaW1wb3J0IHsgTGlua0J1dHRvbiB9IGZyb20gXCIuL0xpbmtCdXR0b24udHN4XCJcbmltcG9ydCB7IE1lcm1haWQgfSBmcm9tIFwiLi9NZXJtYWlkLnRzeFwiXG5pbXBvcnQgeyBQYWNrYWdlVGFicyB9IGZyb20gXCIuL1BhY2thZ2VUYWJzLnRzeFwiXG5pbXBvcnQgeyBQYWdlVG9vbGJhciB9IGZyb20gXCIuL1BhZ2VUb29sYmFyLnRzeFwiXG5pbXBvcnQgeyBQcmV2TmV4dCB9IGZyb20gXCIuL1ByZXZOZXh0LnRzeFwiXG5pbXBvcnQge1xuICBTb3J0YWJsZVRhYmxlLFxuICBUYWJsZUJvZHksXG4gIFRhYmxlQ2VsbCxcbiAgVGFibGVIZWFkLFxuICBUYWJsZUhlYWRlcixcbiAgVGFibGVSb3csXG59IGZyb20gXCIuL1NvcnRhYmxlVGFibGUudHN4XCJcbmltcG9ydCB7IFNvdW5kQ2xvdWQgfSBmcm9tIFwiLi9Tb3VuZENsb3VkLnRzeFwiXG5pbXBvcnQgeyBNb2JpbGVUb2MsIFRvYyB9IGZyb20gXCIuL1RvYy50c3hcIlxuaW1wb3J0IHsgWW91VHViZSB9IGZyb20gXCIuL1lvdVR1YmUudHN4XCJcbmltcG9ydCB7IFpvb21JbWFnZSB9IGZyb20gXCIuL1pvb21JbWFnZS50c3hcIlxuaW1wb3J0IHsgU2VwYXJhdG9yIH0gZnJvbSBcIi4uL2VsZW1lbnRzL3NlcGFyYXRvci50c3hcIlxuXG4vKiogRnVsbC1wYWdlIGFydGljbGUgbGF5b3V0OiBNRFggY29udGVudCwgdGFibGUgb2YgY29udGVudHMsIHRvb2xiYXIsIHByZXYvbmV4dCwgZm9vdGVyICovXG5leHBvcnQgZnVuY3Rpb24gQXJ0aWNsZShwcm9wczogeyBhcnRpY2xlOiBBcnRpY2xlVmlldyB9KSB7XG4gIGNvbnN0IHsgYXJ0aWNsZSB9ID0gcHJvcHNcbiAgY29uc3QgbGFzdFVwZGF0ZWQgPSBmb3JtYXREYXRlKGFydGljbGUubGFzdFVwZGF0ZWQpXG4gIGNvbnN0IHB1Ymxpc2hlZERhdGUgPSBmb3JtYXREYXRlKGFydGljbGUuZGF0ZSlcbiAgY29uc3QgYXV0aG9ycyA9IGFydGljbGUuYXV0aG9yXG4gICAgPyBBcnJheS5pc0FycmF5KGFydGljbGUuYXV0aG9yKVxuICAgICAgPyBhcnRpY2xlLmF1dGhvclxuICAgICAgOiBbYXJ0aWNsZS5hdXRob3JdXG4gICAgOiBbXVxuICBjb25zdCBoYXNNZXRhID0gcHVibGlzaGVkRGF0ZSB8fCBhdXRob3JzLmxlbmd0aCA+IDAgfHwgbGFzdFVwZGF0ZWRcblxuICByZXR1cm4gKFxuICAgIDxUb2NDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXthcnRpY2xlLnRvY0l0ZW1zfT5cbiAgICAgIHthcnRpY2xlLnRvYyAhPT0gZmFsc2UgJiYgKFxuICAgICAgICA8TW9iaWxlVG9jIGl0ZW1zPXthcnRpY2xlLnRvY0l0ZW1zfT5cbiAgICAgICAgICA8UGFnZVRvb2xiYXJcbiAgICAgICAgICAgIGZpbGU9e2FydGljbGUuZmlsZX1cbiAgICAgICAgICAgIHNvdXJjZVVybD17YXJ0aWNsZS5zb3VyY2VVcmx9XG4gICAgICAgICAgICBzb3VyY2VBY3Rpb249e2FydGljbGUuc291cmNlQWN0aW9ufVxuICAgICAgICAgICAgY29udGVudD17YXJ0aWNsZS5jb250ZW50fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvTW9iaWxlVG9jPlxuICAgICAgKX1cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LTEgZ2FwLTEwIHAtNCBwdC04IG1kOnAtMTBcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgbWluLXctMCBteC1hdXRvIG1heC13LTN4bFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicHJvc2UgZGFyazpwcm9zZS1pbnZlcnQgbWF4LXctbm9uZVwiPlxuICAgICAgICAgICAgPGgxIGlkPVwidG9wXCI+XG4gICAgICAgICAgICAgIDxhIGhyZWY9XCIjdG9wXCI+e2FydGljbGUudGl0bGV9PC9hPlxuICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICAgIHtoYXNNZXRhICYmIChcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZmxleCBmbGV4LXdyYXAgaXRlbXMtY2VudGVyIGdhcC14LTMgZ2FwLXktMSB0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCAhLW10LTQgIW1iLTZcIj5cbiAgICAgICAgICAgICAgICB7YXV0aG9ycy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjVcIj5cbiAgICAgICAgICAgICAgICAgICAgPFVzZXIgY2xhc3NOYW1lPVwic2l6ZS0zLjVcIiAvPlxuICAgICAgICAgICAgICAgICAgICB7YXV0aG9ycy5qb2luKFwiLCBcIil9XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7cHVibGlzaGVkRGF0ZSAmJiAoXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMS41XCI+XG4gICAgICAgICAgICAgICAgICAgIDxDYWxlbmRhciBjbGFzc05hbWU9XCJzaXplLTMuNVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIFB1Ymxpc2hlZCB7cHVibGlzaGVkRGF0ZX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHtsYXN0VXBkYXRlZCAmJiAoXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMS41XCI+XG4gICAgICAgICAgICAgICAgICAgIDxIaXN0b3J5IGNsYXNzTmFtZT1cInNpemUtMy41XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgVXBkYXRlZCB7bGFzdFVwZGF0ZWR9XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHthcnRpY2xlLmltYWdlICYmIChcbiAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIHNyYz17YXJ0aWNsZS5pbWFnZX1cbiAgICAgICAgICAgICAgICBhbHQ9XCJcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIiFtdC0wICFtYi02IHctZnVsbCByb3VuZGVkLXhsIGJvcmRlciBzaGFkb3ctc21cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxNRFhDb250ZW50XG4gICAgICAgICAgICAgIGNvZGU9e2FydGljbGUubWR4fVxuICAgICAgICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgICAgICAgaHI6IFNlcGFyYXRvcixcbiAgICAgICAgICAgICAgICBpbWc6IFpvb21JbWFnZSxcbiAgICAgICAgICAgICAgICBwcmU6IENvZGVCbG9jayxcbiAgICAgICAgICAgICAgICB0YWJsZTogU29ydGFibGVUYWJsZSxcbiAgICAgICAgICAgICAgICB0aGVhZDogVGFibGVIZWFkZXIsXG4gICAgICAgICAgICAgICAgdGJvZHk6IFRhYmxlQm9keSxcbiAgICAgICAgICAgICAgICB0cjogVGFibGVSb3csXG4gICAgICAgICAgICAgICAgdGg6IFRhYmxlSGVhZCxcbiAgICAgICAgICAgICAgICB0ZDogVGFibGVDZWxsLFxuICAgICAgICAgICAgICAgIGE6IEZvb3Rub3RlUmVmLFxuICAgICAgICAgICAgICAgIEFiYnIsXG4gICAgICAgICAgICAgICAgQW5zaUNvZGUsXG4gICAgICAgICAgICAgICAgQ2FsbG91dCxcbiAgICAgICAgICAgICAgICBDYXJkLFxuICAgICAgICAgICAgICAgIENhcmRzLFxuICAgICAgICAgICAgICAgIENvbHVtbixcbiAgICAgICAgICAgICAgICBDb2x1bW5zLFxuICAgICAgICAgICAgICAgIENvZGVUYWJzLFxuICAgICAgICAgICAgICAgIENvbnRlbnRUYWIsXG4gICAgICAgICAgICAgICAgQ29udGVudFRhYnMsXG4gICAgICAgICAgICAgICAgRGVmaW5pdGlvbkRldGFpbCxcbiAgICAgICAgICAgICAgICBEZWZpbml0aW9uTGlzdCxcbiAgICAgICAgICAgICAgICBEZWZpbml0aW9uVGVybSxcbiAgICAgICAgICAgICAgICBEZXRhaWxzLFxuICAgICAgICAgICAgICAgIEZpbGVUcmVlLFxuICAgICAgICAgICAgICAgIElubGluZUJhZGdlLFxuICAgICAgICAgICAgICAgIElubGluZUljb24sXG4gICAgICAgICAgICAgICAgSW5saW5lVG9jLFxuICAgICAgICAgICAgICAgIExpbmtCdXR0b24sXG4gICAgICAgICAgICAgICAgTWVybWFpZCxcbiAgICAgICAgICAgICAgICBQYWNrYWdlVGFicyxcbiAgICAgICAgICAgICAgICBTb3VuZENsb3VkLFxuICAgICAgICAgICAgICAgIFlvdVR1YmUsXG4gICAgICAgICAgICAgICAgLi4uaGVhZGluZ0NvbXBvbmVudHMsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxQcmV2TmV4dCBwYXRoPXthcnRpY2xlLnBhdGh9IC8+XG4gICAgICAgICAgPEZvb3RlciAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge2FydGljbGUudG9jICE9PSBmYWxzZSAmJiAoXG4gICAgICAgICAgPFRvYyBpdGVtcz17YXJ0aWNsZS50b2NJdGVtc30+XG4gICAgICAgICAgICA8UGFnZVRvb2xiYXJcbiAgICAgICAgICAgICAgZmlsZT17YXJ0aWNsZS5maWxlfVxuICAgICAgICAgICAgICBzb3VyY2VVcmw9e2FydGljbGUuc291cmNlVXJsfVxuICAgICAgICAgICAgICBzb3VyY2VBY3Rpb249e2FydGljbGUuc291cmNlQWN0aW9ufVxuICAgICAgICAgICAgICBjb250ZW50PXthcnRpY2xlLmNvbnRlbnR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvVG9jPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9Ub2NDb250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cbmZ1bmN0aW9uIGZvcm1hdERhdGUoaXNvPzogc3RyaW5nKSB7XG4gIGlmICghaXNvKSByZXR1cm4gdW5kZWZpbmVkXG4gIHJldHVybiBuZXcgRGF0ZShpc28pLnRvTG9jYWxlRGF0ZVN0cmluZyhcImVuLVVTXCIsIHtcbiAgICB5ZWFyOiBcIm51bWVyaWNcIixcbiAgICBtb250aDogXCJzaG9ydFwiLFxuICAgIGRheTogXCJudW1lcmljXCIsXG4gIH0pXG59XG4iXX0=
@@ -76,6 +76,9 @@ function getLastUpdated(filePath) {
76
76
  return undefined;
77
77
  }
78
78
  }
79
+ function stripLeadingH1(content) {
80
+ return content.replace(/^[ \t]*#\s+[^\n]*\n+/, "");
81
+ }
79
82
  function extractTitle(content, path) {
80
83
  const match = /^#\s+(.+)$/m.exec(content);
81
84
  if (match)
@@ -99,7 +102,12 @@ const articles = defineCollection({
99
102
  const title = doc.title ?? extractTitle(content, doc._meta.path);
100
103
  const icon = doc.icon ?? pickDefaultIcon(doc._meta.path);
101
104
  const path = doc.path ?? toPath(doc._meta.filePath);
102
- const mdx = await compileMDX(context, { ...doc, content }, {
105
+ // The article's h1 is rendered from `title` by the layout, so strip any
106
+ // leading h1 in the body to avoid two h1s side-by-side (especially when
107
+ // a content patch overrides the title to something different from the
108
+ // body's own heading).
109
+ const bodyContent = stripLeadingH1(content);
110
+ const mdx = await compileMDX(context, { ...doc, content: bodyContent }, {
103
111
  remarkPlugins: [
104
112
  remarkGfm,
105
113
  remarkGemoji,
@@ -189,4 +197,4 @@ export default defineConfig({
189
197
  // @ts-expect-error tsgo picks wrong overload when rehype-slug augments unified types
190
198
  content: [articles],
191
199
  });
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1jb2xsZWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9jb250ZW50LWNvbGxlY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNyRCxPQUFPLFdBQVcsTUFBTSxpQkFBaUIsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN2RCxPQUFPLFdBQVcsTUFBTSxjQUFjLENBQUE7QUFDdEMsT0FBTyxVQUFVLE1BQU0sYUFBYSxDQUFBO0FBQ3BDLE9BQU8sb0JBQW9CLE1BQU0sd0JBQXdCLENBQUE7QUFDekQsT0FBTyxlQUFlLE1BQU0sa0JBQWtCLENBQUE7QUFDOUMsT0FBTyxZQUFZLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLFVBQVUsTUFBTSxhQUFhLENBQUE7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzNELE9BQU8sT0FBTyxNQUFNLHVCQUF1QixDQUFBO0FBQzNDLE9BQU8scUJBQXFCLE1BQU0sdUNBQXVDLENBQUE7QUFDekUsT0FBTyxFQUFF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LFFBQVEsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDcEMsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDN0MsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDdEQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUs7WUFDckIsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDcEQsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtRQUNiLE9BQU87WUFDTCxHQUFHLEdBQUc7WUFDTixJQUFJLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLFdBQVc7WUFDWCxLQUFLO1lBQ0wsS0FBSztZQUNMLElBQUk7WUFDSixJQUFJO1lBQ0osUUFBUTtZQUNSLFVBQVU7WUFDVixHQUFHO1NBQ0osQ0FBQTtJQUNILENBQUM7Q0FDRixDQUFDLENBQUE7QUFFRixlQUFlLFlBQVksQ0FBQztJQUMxQixxRkFBcUY7SUFDckYsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO0NBQ3BCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNTeW5jIH0gZnJvbSBcIm5vZGU6Y2hpbGRfcHJvY2Vzc1wiXG5pbXBvcnQgeyBiYXNlbmFtZSwgcmVsYXRpdmUsIHJlc29sdmUgfSBmcm9tIFwibm9kZTpwYXRoXCJcbmltcG9ydCB7IGRlZmluZUNvbGxlY3Rpb24sIGRlZmluZUNvbmZpZyB9IGZyb20gXCJAY29udGVudC1jb2xsZWN0aW9ucy9jb3JlXCJcbmltcG9ydCB7IGNvbXBpbGVNRFggfSBmcm9tIFwiQGNvbnRlbnQtY29sbGVjdGlvbnMvbWR4XCJcbmltcG9ydCByZWh5cGVTaGlraSBmcm9tIFwiQHNoaWtpanMvcmVoeXBlXCJcbmltcG9ydCB7IHRyYW5zZm9ybWVyVHdvc2xhc2ggfSBmcm9tIFwiQHNoaWtpanMvdHdvc2xhc2hcIlxuaW1wb3J0IHJlaHlwZUthdGV4IGZyb20gXCJyZWh5cGUta2F0ZXhcIlxuaW1wb3J0IHJlaHlwZVNsdWcgZnJvbSBcInJlaHlwZS1zbHVnXCJcbmltcG9ydCByZW1hcmtEZWZpbml0aW9uTGlzdCBmcm9tIFwicmVtYXJrLWRlZmluaXRpb24tbGlzdFwiXG5pbXBvcnQgcmVtYXJrRGlyZWN0aXZlIGZyb20gXCJyZW1hcmstZGlyZWN0aXZlXCJcbmltcG9ydCByZW1hcmtHZW1vamkgZnJvbSBcInJlbWFyay1nZW1vamlcIlxuaW1wb3J0IHJlbWFya0dmbSBmcm9tIFwicmVtYXJrLWdmbVwiXG5pbXBvcnQgcmVtYXJrTWF0aCBmcm9tIFwicmVtYXJrLW1hdGhcIlxuaW1wb3J0IHsgbG9hZENvbmZpZyB9IGZyb20gXCIuL2FjdGlvbnMvY29uZmlnL2xvYWQudHNcIlxuaW1wb3J0IHsgYnVpbGRDaGFuZ2Vsb2csIGNhY2hlSW5jbHVkZUdsb2IgfSBmcm9tIFwiLi9hY3Rpb25zL2NoYW5nZWxvZy9idWlsZC50c1wiXG5pbXBvcnQgeyBBcnRpY2xlIH0gZnJvbSBcIi4vbW9kZWxzL2FydGljbGUudHNcIlxuaW1wb3J0IHsgcGlja0RlZmF1bHRJY29uIH0gZnJvbSBcIi4vaGVscGVycy9hcnRpY2xlLWljb24udHNcIlxuaW1wb3J0IHNsdWdpZnkgZnJvbSBcIkBzaW5kcmVzb3JodXMvc2x1Z2lmeVwiXG5pbXBvcnQgcmVtYXJrQ3VzdG9tSGVhZGluZ0lkIGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWN1c3RvbS1oZWFkaW5nLWlkLnRzXCJcbmltcG9ydCB7IHJlbWFya0NhbGxvdXQgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1jYWxsb3V0LnRzXCJcbmltcG9ydCB7IHJlbWFya0NhcmQgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1jYXJkLnRzXCJcbmltcG9ydCB7IHJlbWFya0NvbHVtbnMgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1jb2x1bW5zLnRzXCJcbmltcG9ydCB7IHJlbWFya1RhYiB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLXRhYi50c1wiXG5pbXBvcnQgeyByZW1hcmtCYWRnZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWJhZGdlLnRzXCJcbmltcG9ydCB7IHJlbWFya0J1dHRvbiB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWJ1dHRvbi50c1wiXG5pbXBvcnQgeyByZW1hcmtBYmJyIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstYWJici50c1wiXG5pbXBvcnQgeyByZW1hcmtEZWZsaXN0IH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstZGVmbGlzdC50c1wiXG5pbXBvcnQgeyByZW1hcmtEZXRhaWxzIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstZGV0YWlscy50c1wiXG5pbXBvcnQgeyByZW1hcmtGaWxldHJlZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWZpbGV0cmVlLnRzXCJcbmltcG9ydCB7IHJlbWFya0ljb24gfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1pY29uLnRzXCJcbmltcG9ydCB7IHJlbWFya0NvZGVUYWJzIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstY29kZS10YWJzLnRzXCJcbmltcG9ydCB7IHJlbWFya0dpdGh1YkNhbGxvdXQgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1naXRodWItY2FsbG91dC50c1wiXG5pbXBvcnQgeyByZW1hcmtJbWFnZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWltYWdlLnRzXCJcbmltcG9ydCB7IHJlbWFya01lZGlhIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstbWVkaWEudHNcIlxuaW1wb3J0IHsgcmVtYXJrQW5zaSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWFuc2kudHNcIlxuaW1wb3J0IHsgcmVtYXJrTWVybWFpZCB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLW1lcm1haWQudHNcIlxuaW1wb3J0IHsgcmVtYXJrVG9jIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstdG9jLnRzXCJcbmltcG9ydCB7IHJlbWFya05wbSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLW5wbS50c1wiXG5pbXBvcnQgeyByZW1hcmtTdGVwcyB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLXN0ZXBzLnRzXCJcbmltcG9ydCB7XG4gIHRyYW5zZm9ybWVyTGluZUhpZ2hsaWdodCxcbiAgdHJhbnNmb3JtZXJOb3RhdGlvbnMsXG59IGZyb20gXCIuL3BsdWdpbnMvc2hpa2ktbGluZS1oaWdobGlnaHQudHNcIlxuaW1wb3J0IHsgcmVoeXBlSW5saW5lQ29kZSB9IGZyb20gXCIuL3BsdWdpbnMvcmVoeXBlLWlubGluZS1jb2RlLnRzXCJcbmltcG9ydCB7IHJlaHlwZVRhc2tMaXN0QTExeSB9IGZyb20gXCIuL3BsdWdpbnMvcmVoeXBlLXRhc2stbGlzdC1hMTF5LnRzXCJcbmltcG9ydCB7IHRyYW5zZm9ybWVySWNvbiB9IGZyb20gXCIuL3BsdWdpbnMvc2hpa2ktaWNvbi50c1wiXG5pbXBvcnQgeyByZXNvbHZlQXNzZXRQYXRoIH0gZnJvbSBcIi4vaGVscGVycy9yZXNvbHZlLWFzc2V0LXBhdGgudHNcIlxuaW1wb3J0IHsgcmVzb2x2ZUluY2x1ZGVzIH0gZnJvbSBcIi4vaGVscGVycy9yZXNvbHZlLWluY2x1ZGVzLnRzXCJcbmltcG9ydCB7IGV4dHJhY3RTZWFyY2hUZXh0IH0gZnJvbSBcIi4vaGVscGVycy9zZWFyY2gtdGV4dC50c1wiXG5pbXBvcnQgeyBleHRyYWN0VG9jIH0gZnJvbSBcIi4vaGVscGVycy90b2MudHNcIlxuXG5jb25zdCBjb25maWcgPSBhd2FpdCBsb2FkQ29uZmlnKClcblxuY29uc3QgY2hhbmdlbG9nU2VjdGlvbnMgPVxuICBjb25maWcuc2VjdGlvbnM/LmZpbHRlcihzID0+IHMudHlwZSA9PT0gXCJjaGFuZ2Vsb2dcIikgPz8gW11cbmZvciAoY29uc3Qgc2VjdGlvbiBvZiBjaGFuZ2Vsb2dTZWN0aW9ucykge1xuICBhd2FpdCBidWlsZENoYW5nZWxvZyhzZWN0aW9uLCBjb25maWcpXG59XG5cbmNvbnN0IGNvbmZpZ0luY2x1ZGUgPSBBcnJheS5pc0FycmF5KGNvbmZpZy5pbmNsdWRlKVxuICA/IGNvbmZpZy5pbmNsdWRlXG4gIDogW2NvbmZpZy5pbmNsdWRlXVxuY29uc3QgaW5jbHVkZSA9IGNoYW5nZWxvZ1NlY3Rpb25zLmxlbmd0aFxuICA/IFsuLi5jb25maWdJbmNsdWRlLCBjYWNoZUluY2x1ZGVHbG9iKCldXG4gIDogY29uZmlnSW5jbHVkZVxuXG4vLyBjb250ZW50LWNvbGxlY3Rpb25zIGNvbXBpbGVzIHRoaXMgZmlsZSB0byAuY29udGVudC1jb2xsZWN0aW9ucy9jYWNoZS87XG4vLyBnb2luZyB1cCAyIGxldmVscyByZWNvbnN0cnVjdHMgdGhlIGJhc2VEaXJlY3RvcnkgaXQgdXNlcyBmb3IgcGF0aCByZXNvbHV0aW9uXG5jb25zdCBiYXNlRGlyID0gcmVzb2x2ZShpbXBvcnQubWV0YS5kaXJuYW1lLCBcIi4uLy4uXCIpXG5jb25zdCBkaXJlY3RvcnkgPSByZWxhdGl2ZShiYXNlRGlyLCBjb25maWcucm9vdCkgfHwgXCIuXCJcblxuZnVuY3Rpb24gdG9QYXRoKGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgY29uc3QgbmFtZSA9IGJhc2VuYW1lKGZpbGVQYXRoKS5yZXBsYWNlKC9cXC5cXHcrJC8sIFwiXCIpXG4gIHJldHVybiBzbHVnaWZ5KG5hbWUpXG59XG5cbmZ1bmN0aW9uIGdldExhc3RVcGRhdGVkKGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBleGVjU3luYyhgZ2l0IGxvZyAtMSAtLWZvcm1hdD0lY0kgLS0gXCIke2ZpbGVQYXRofVwiYCwge1xuICAgICAgY3dkOiBjb25maWcucm9vdCxcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgfSkudHJpbSgpXG4gICAgcmV0dXJuIHRpbWVzdGFtcCB8fCB1bmRlZmluZWRcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RUaXRsZShjb250ZW50OiBzdHJpbmcsIHBhdGg6IHN0cmluZykge1xuICBjb25zdCBtYXRjaCA9IC9eI1xccysoLispJC9tLmV4ZWMoY29udGVudClcbiAgaWYgKG1hdGNoKSByZXR1cm4gbWF0Y2hbMV0hXG4gIHJldHVybiAoXG4gICAgcGF0aFxuICAgICAgLnNwbGl0KFwiL1wiKVxuICAgICAgLnBvcCgpXG4gICAgICA/LnJlcGxhY2UoL1xcLlxcdyskLywgXCJcIikgPz8gcGF0aFxuICApXG59XG5cbmNvbnN0IGFydGljbGVzID0gZGVmaW5lQ29sbGVjdGlvbih7XG4gIG5hbWU6IFwiYXJ0aWNsZXNcIixcbiAgZGlyZWN0b3J5LFxuICBpbmNsdWRlLFxuICBleGNsdWRlOiBjb25maWcuZXhjbHVkZSxcbiAgc2NoZW1hOiBBcnRpY2xlLFxuICB0cmFuc2Zvcm06IGFzeW5jIChkb2N1bWVudCwgY29udGV4dCkgPT4ge1xuICAgIGNvbnN0IHBhdGNoID0gY29uZmlnLnBhdGNoZXM/LmZpbmQocCA9PiBwLmZpbGUgPT09IGRvY3VtZW50Ll9tZXRhLmZpbGVQYXRoKVxuICAgIGNvbnN0IGRvYyA9IHBhdGNoID8geyAuLi5kb2N1bWVudCwgLi4ucGF0Y2guYXJ0aWNsZSB9IDogZG9jdW1lbnRcbiAgICBjb25zdCBmaWxlUGF0aCA9IHJlc29sdmUoY29uZmlnLnJvb3QsIGRvYy5fbWV0YS5maWxlUGF0aClcbiAgICBjb25zdCBjb250ZW50ID0gcmVzb2x2ZUluY2x1ZGVzKGRvYy5jb250ZW50LCBmaWxlUGF0aClcbiAgICBjb25zdCB0aXRsZSA9IGRvYy50aXRsZSA/PyBleHRyYWN0VGl0bGUoY29udGVudCwgZG9jLl9tZXRhLnBhdGgpXG4gICAgY29uc3QgaWNvbiA9IGRvYy5pY29uID8/IHBpY2tEZWZhdWx0SWNvbihkb2MuX21ldGEucGF0aClcbiAgICBjb25zdCBwYXRoID0gZG9jLnBhdGggPz8gdG9QYXRoKGRvYy5fbWV0YS5maWxlUGF0aClcbiAgICBjb25zdCBtZHggPSBhd2FpdCBjb21waWxlTURYKFxuICAgICAgY29udGV4dCxcbiAgICAgIHsgLi4uZG9jLCBjb250ZW50IH0sXG4gICAgICB7XG4gICAgICAgIHJlbWFya1BsdWdpbnM6IFtcbiAgICAgICAgICByZW1hcmtHZm0sXG4gICAgICAgICAgcmVtYXJrR2Vtb2ppLFxuICAgICAgICAgIHJlbWFya0RlZmluaXRpb25MaXN0LFxuICAgICAgICAgIHJlbWFya0RlZmxpc3QsXG4gICAgICAgICAgcmVtYXJrTWF0aCxcbiAgICAgICAgICByZW1hcmtEaXJlY3RpdmUsXG4gICAgICAgICAgcmVtYXJrQ2FsbG91dCxcbiAgICAgICAgICByZW1hcmtDYXJkLFxuICAgICAgICAgIHJlbWFya0NvbHVtbnMsXG4gICAgICAgICAgcmVtYXJrVGFiLFxuICAgICAgICAgIHJlbWFya0RldGFpbHMsXG4gICAgICAgICAgcmVtYXJrRmlsZXRyZWUsXG4gICAgICAgICAgcmVtYXJrSWNvbixcbiAgICAgICAgICByZW1hcmtCYWRnZSxcbiAgICAgICAgICByZW1hcmtCdXR0b24sXG4gICAgICAgICAgcmVtYXJrQWJicixcbiAgICAgICAgICByZW1hcmtHaXRodWJDYWxsb3V0LFxuICAgICAgICAgIFtcbiAgICAgICAgICAgIHJlbWFya0ltYWdlLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmaWxlUGF0aDogcmVzb2x2ZShjb25maWcucm9vdCwgZG9jLl9tZXRhLmZpbGVQYXRoKSxcbiAgICAgICAgICAgICAgcm9vdDogY29uZmlnLnJvb3QsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVtYXJrQW5zaSxcbiAgICAgICAgICByZW1hcmtNZXJtYWlkLFxuICAgICAgICAgIHJlbWFya01lZGlhLFxuICAgICAgICAgIHJlbWFya1RvYyxcbiAgICAgICAgICByZW1hcmtOcG0sXG4gICAgICAgICAgcmVtYXJrQ29kZVRhYnMsXG4gICAgICAgICAgcmVtYXJrU3RlcHMsXG4gICAgICAgICAgcmVtYXJrQ3VzdG9tSGVhZGluZ0lkLFxuICAgICAgICBdLFxuICAgICAgICByZWh5cGVQbHVnaW5zOiBbXG4gICAgICAgICAgW1xuICAgICAgICAgICAgcmVoeXBlU2hpa2ksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRoZW1lczoge1xuICAgICAgICAgICAgICAgIGxpZ2h0OiBjb25maWcuY29kZVRoZW1lTGlnaHQsXG4gICAgICAgICAgICAgICAgZGFyazogY29uZmlnLmNvZGVUaGVtZURhcmssXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIC8vIERhcmtlbiBjYXRwcHVjY2luLWxhdHRlJ3MgZ3JlZW4gKHRoZSBjb2xvdXIgdXNlZCBmb3Igc3RyaW5ncyBhbmRcbiAgICAgICAgICAgICAgLy8gc29tZSBjb21tZW50cykg4oCUIHRoZSB0aGVtZSBkZWZhdWx0ICM0MEEwMkIgbGFuZHMgYXQgMy4yOjEgb24gdGhlXG4gICAgICAgICAgICAgIC8vIGNvZGUtYmxvY2sgYmFja2dyb3VuZCwgYmVsb3cgdGhlIFdDQUcgQUEgNC41OjEgdGhyZXNob2xkLlxuICAgICAgICAgICAgICBjb2xvclJlcGxhY2VtZW50czoge1xuICAgICAgICAgICAgICAgIFwiY2F0cHB1Y2Npbi1sYXR0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcIiM0MGEwMmJcIjogXCIjMmE3ZTE2XCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdHJhbnNmb3JtZXJzOiBbXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtZXJUd29zbGFzaCh7IGV4cGxpY2l0VHJpZ2dlcjogdHJ1ZSB9KSxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1lckljb24oKSxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1lck5vdGF0aW9ucygpLFxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVyTGluZUhpZ2hsaWdodCgpLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBwYXJzZU1ldGFTdHJpbmc6IChtZXRhOiBzdHJpbmcpID0+ICh7IFwiZGF0YS1tZXRhXCI6IG1ldGEgfSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVoeXBlSW5saW5lQ29kZSxcbiAgICAgICAgICByZWh5cGVTbHVnLFxuICAgICAgICAgIHJlaHlwZUthdGV4LFxuICAgICAgICAgIHJlaHlwZVRhc2tMaXN0QTExeSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgKVxuICAgIGNvbnN0IHRvY0l0ZW1zID0gZXh0cmFjdFRvYyhjb250ZW50KVxuICAgIGNvbnN0IHNlYXJjaFRleHQgPSBleHRyYWN0U2VhcmNoVGV4dChjb250ZW50KVxuICAgIGNvbnN0IGxhc3RVcGRhdGVkID0gZ2V0TGFzdFVwZGF0ZWQoZG9jLl9tZXRhLmZpbGVQYXRoKVxuICAgIGNvbnN0IGltYWdlID0gZG9jLmltYWdlXG4gICAgICA/IHJlc29sdmVBc3NldFBhdGgoZG9jLmltYWdlLCBmaWxlUGF0aCwgY29uZmlnLnJvb3QpXG4gICAgICA6IHVuZGVmaW5lZFxuICAgIHJldHVybiB7XG4gICAgICAuLi5kb2MsXG4gICAgICBmaWxlOiBkb2MuX21ldGEuZmlsZVBhdGgsXG4gICAgICBsYXN0VXBkYXRlZCxcbiAgICAgIGltYWdlLFxuICAgICAgdGl0bGUsXG4gICAgICBpY29uLFxuICAgICAgcGF0aCxcbiAgICAgIHRvY0l0ZW1zLFxuICAgICAgc2VhcmNoVGV4dCxcbiAgICAgIG1keCxcbiAgICB9XG4gIH0sXG59KVxuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcoe1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIHRzZ28gcGlja3Mgd3Jvbmcgb3ZlcmxvYWQgd2hlbiByZWh5cGUtc2x1ZyBhdWdtZW50cyB1bmlmaWVkIHR5cGVzXG4gIGNvbnRlbnQ6IFthcnRpY2xlc10sXG59KVxuIl19
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1jb2xsZWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9jb250ZW50LWNvbGxlY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNyRCxPQUFPLFdBQVcsTUFBTSxpQkFBaUIsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN2RCxPQUFPLFdBQVcsTUFBTSxjQUFjLENBQUE7QUFDdEMsT0FBTyxVQUFVLE1BQU0sYUFBYSxDQUFBO0FBQ3BDLE9BQU8sb0JBQW9CLE1BQU0sd0JBQXdCLENBQUE7QUFDekQsT0FBTyxlQUFlLE1BQU0sa0JBQWtCLENBQUE7QUFDOUMsT0FBTyxZQUFZLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLFVBQVUsTUFBTSxhQUFhLENBQUE7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzNELE9BQU8sT0FBTyxNQUFNLHVCQUF1QixDQUFBO0FBQzNDLE9BQU8scUJBQXFCLE1BQU0sdUNBQXVDLENBQUE7QUFDekUsT0FBTyxFQUFF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b0IsRUFBRTs0QkFDdEIsd0JBQXdCLEVBQUU7eUJBQzNCO3dCQUNELGVBQWUsRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztxQkFDM0Q7aUJBQ0Y7Z0JBQ0QsZ0JBQWdCO2dCQUNoQixVQUFVO2dCQUNWLFdBQVc7Z0JBQ1gsa0JBQWtCO2FBQ25CO1NBQ0YsQ0FDRixDQUFBO1FBQ0QsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3BDLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzdDLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3RELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLO1lBQ3JCLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ3BELENBQUMsQ0FBQyxTQUFTLENBQUE7UUFDYixPQUFPO1lBQ0wsR0FBRyxHQUFHO1lBQ04sSUFBSSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUN4QixXQUFXO1lBQ1gsS0FBSztZQUNMLEtBQUs7WUFDTCxJQUFJO1lBQ0osSUFBSTtZQUNKLFFBQVE7WUFDUixVQUFVO1lBQ1YsR0FBRztTQUNKLENBQUE7SUFDSCxDQUFDO0NBQ0YsQ0FBQyxDQUFBO0FBRUYsZUFBZSxZQUFZLENBQUM7SUFDMUIscUZBQXFGO0lBQ3JGLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztDQUNwQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGVjU3luYyB9IGZyb20gXCJub2RlOmNoaWxkX3Byb2Nlc3NcIlxuaW1wb3J0IHsgYmFzZW5hbWUsIHJlbGF0aXZlLCByZXNvbHZlIH0gZnJvbSBcIm5vZGU6cGF0aFwiXG5pbXBvcnQgeyBkZWZpbmVDb2xsZWN0aW9uLCBkZWZpbmVDb25maWcgfSBmcm9tIFwiQGNvbnRlbnQtY29sbGVjdGlvbnMvY29yZVwiXG5pbXBvcnQgeyBjb21waWxlTURYIH0gZnJvbSBcIkBjb250ZW50LWNvbGxlY3Rpb25zL21keFwiXG5pbXBvcnQgcmVoeXBlU2hpa2kgZnJvbSBcIkBzaGlraWpzL3JlaHlwZVwiXG5pbXBvcnQgeyB0cmFuc2Zvcm1lclR3b3NsYXNoIH0gZnJvbSBcIkBzaGlraWpzL3R3b3NsYXNoXCJcbmltcG9ydCByZWh5cGVLYXRleCBmcm9tIFwicmVoeXBlLWthdGV4XCJcbmltcG9ydCByZWh5cGVTbHVnIGZyb20gXCJyZWh5cGUtc2x1Z1wiXG5pbXBvcnQgcmVtYXJrRGVmaW5pdGlvbkxpc3QgZnJvbSBcInJlbWFyay1kZWZpbml0aW9uLWxpc3RcIlxuaW1wb3J0IHJlbWFya0RpcmVjdGl2ZSBmcm9tIFwicmVtYXJrLWRpcmVjdGl2ZVwiXG5pbXBvcnQgcmVtYXJrR2Vtb2ppIGZyb20gXCJyZW1hcmstZ2Vtb2ppXCJcbmltcG9ydCByZW1hcmtHZm0gZnJvbSBcInJlbWFyay1nZm1cIlxuaW1wb3J0IHJlbWFya01hdGggZnJvbSBcInJlbWFyay1tYXRoXCJcbmltcG9ydCB7IGxvYWRDb25maWcgfSBmcm9tIFwiLi9hY3Rpb25zL2NvbmZpZy9sb2FkLnRzXCJcbmltcG9ydCB7IGJ1aWxkQ2hhbmdlbG9nLCBjYWNoZUluY2x1ZGVHbG9iIH0gZnJvbSBcIi4vYWN0aW9ucy9jaGFuZ2Vsb2cvYnVpbGQudHNcIlxuaW1wb3J0IHsgQXJ0aWNsZSB9IGZyb20gXCIuL21vZGVscy9hcnRpY2xlLnRzXCJcbmltcG9ydCB7IHBpY2tEZWZhdWx0SWNvbiB9IGZyb20gXCIuL2hlbHBlcnMvYXJ0aWNsZS1pY29uLnRzXCJcbmltcG9ydCBzbHVnaWZ5IGZyb20gXCJAc2luZHJlc29yaHVzL3NsdWdpZnlcIlxuaW1wb3J0IHJlbWFya0N1c3RvbUhlYWRpbmdJZCBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1jdXN0b20taGVhZGluZy1pZC50c1wiXG5pbXBvcnQgeyByZW1hcmtDYWxsb3V0IH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstY2FsbG91dC50c1wiXG5pbXBvcnQgeyByZW1hcmtDYXJkIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstY2FyZC50c1wiXG5pbXBvcnQgeyByZW1hcmtDb2x1bW5zIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstY29sdW1ucy50c1wiXG5pbXBvcnQgeyByZW1hcmtUYWIgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay10YWIudHNcIlxuaW1wb3J0IHsgcmVtYXJrQmFkZ2UgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1iYWRnZS50c1wiXG5pbXBvcnQgeyByZW1hcmtCdXR0b24gfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1idXR0b24udHNcIlxuaW1wb3J0IHsgcmVtYXJrQWJiciB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWFiYnIudHNcIlxuaW1wb3J0IHsgcmVtYXJrRGVmbGlzdCB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWRlZmxpc3QudHNcIlxuaW1wb3J0IHsgcmVtYXJrRGV0YWlscyB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWRldGFpbHMudHNcIlxuaW1wb3J0IHsgcmVtYXJrRmlsZXRyZWUgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1maWxldHJlZS50c1wiXG5pbXBvcnQgeyByZW1hcmtJY29uIH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstaWNvbi50c1wiXG5pbXBvcnQgeyByZW1hcmtDb2RlVGFicyB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLWNvZGUtdGFicy50c1wiXG5pbXBvcnQgeyByZW1hcmtHaXRodWJDYWxsb3V0IH0gZnJvbSBcIi4vcGx1Z2lucy9yZW1hcmstZ2l0aHViLWNhbGxvdXQudHNcIlxuaW1wb3J0IHsgcmVtYXJrSW1hZ2UgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1pbWFnZS50c1wiXG5pbXBvcnQgeyByZW1hcmtNZWRpYSB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLW1lZGlhLnRzXCJcbmltcG9ydCB7IHJlbWFya0Fuc2kgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1hbnNpLnRzXCJcbmltcG9ydCB7IHJlbWFya01lcm1haWQgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1tZXJtYWlkLnRzXCJcbmltcG9ydCB7IHJlbWFya1RvYyB9IGZyb20gXCIuL3BsdWdpbnMvcmVtYXJrLXRvYy50c1wiXG5pbXBvcnQgeyByZW1hcmtOcG0gfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1ucG0udHNcIlxuaW1wb3J0IHsgcmVtYXJrU3RlcHMgfSBmcm9tIFwiLi9wbHVnaW5zL3JlbWFyay1zdGVwcy50c1wiXG5pbXBvcnQge1xuICB0cmFuc2Zvcm1lckxpbmVIaWdobGlnaHQsXG4gIHRyYW5zZm9ybWVyTm90YXRpb25zLFxufSBmcm9tIFwiLi9wbHVnaW5zL3NoaWtpLWxpbmUtaGlnaGxpZ2h0LnRzXCJcbmltcG9ydCB7IHJlaHlwZUlubGluZUNvZGUgfSBmcm9tIFwiLi9wbHVnaW5zL3JlaHlwZS1pbmxpbmUtY29kZS50c1wiXG5pbXBvcnQgeyByZWh5cGVUYXNrTGlzdEExMXkgfSBmcm9tIFwiLi9wbHVnaW5zL3JlaHlwZS10YXNrLWxpc3QtYTExeS50c1wiXG5pbXBvcnQgeyB0cmFuc2Zvcm1lckljb24gfSBmcm9tIFwiLi9wbHVnaW5zL3NoaWtpLWljb24udHNcIlxuaW1wb3J0IHsgcmVzb2x2ZUFzc2V0UGF0aCB9IGZyb20gXCIuL2hlbHBlcnMvcmVzb2x2ZS1hc3NldC1wYXRoLnRzXCJcbmltcG9ydCB7IHJlc29sdmVJbmNsdWRlcyB9IGZyb20gXCIuL2hlbHBlcnMvcmVzb2x2ZS1pbmNsdWRlcy50c1wiXG5pbXBvcnQgeyBleHRyYWN0U2VhcmNoVGV4dCB9IGZyb20gXCIuL2hlbHBlcnMvc2VhcmNoLXRleHQudHNcIlxuaW1wb3J0IHsgZXh0cmFjdFRvYyB9IGZyb20gXCIuL2hlbHBlcnMvdG9jLnRzXCJcblxuY29uc3QgY29uZmlnID0gYXdhaXQgbG9hZENvbmZpZygpXG5cbmNvbnN0IGNoYW5nZWxvZ1NlY3Rpb25zID1cbiAgY29uZmlnLnNlY3Rpb25zPy5maWx0ZXIocyA9PiBzLnR5cGUgPT09IFwiY2hhbmdlbG9nXCIpID8/IFtdXG5mb3IgKGNvbnN0IHNlY3Rpb24gb2YgY2hhbmdlbG9nU2VjdGlvbnMpIHtcbiAgYXdhaXQgYnVpbGRDaGFuZ2Vsb2coc2VjdGlvbiwgY29uZmlnKVxufVxuXG5jb25zdCBjb25maWdJbmNsdWRlID0gQXJyYXkuaXNBcnJheShjb25maWcuaW5jbHVkZSlcbiAgPyBjb25maWcuaW5jbHVkZVxuICA6IFtjb25maWcuaW5jbHVkZV1cbmNvbnN0IGluY2x1ZGUgPSBjaGFuZ2Vsb2dTZWN0aW9ucy5sZW5ndGhcbiAgPyBbLi4uY29uZmlnSW5jbHVkZSwgY2FjaGVJbmNsdWRlR2xvYigpXVxuICA6IGNvbmZpZ0luY2x1ZGVcblxuLy8gY29udGVudC1jb2xsZWN0aW9ucyBjb21waWxlcyB0aGlzIGZpbGUgdG8gLmNvbnRlbnQtY29sbGVjdGlvbnMvY2FjaGUvO1xuLy8gZ29pbmcgdXAgMiBsZXZlbHMgcmVjb25zdHJ1Y3RzIHRoZSBiYXNlRGlyZWN0b3J5IGl0IHVzZXMgZm9yIHBhdGggcmVzb2x1dGlvblxuY29uc3QgYmFzZURpciA9IHJlc29sdmUoaW1wb3J0Lm1ldGEuZGlybmFtZSwgXCIuLi8uLlwiKVxuY29uc3QgZGlyZWN0b3J5ID0gcmVsYXRpdmUoYmFzZURpciwgY29uZmlnLnJvb3QpIHx8IFwiLlwiXG5cbmZ1bmN0aW9uIHRvUGF0aChmaWxlUGF0aDogc3RyaW5nKSB7XG4gIGNvbnN0IG5hbWUgPSBiYXNlbmFtZShmaWxlUGF0aCkucmVwbGFjZSgvXFwuXFx3KyQvLCBcIlwiKVxuICByZXR1cm4gc2x1Z2lmeShuYW1lKVxufVxuXG5mdW5jdGlvbiBnZXRMYXN0VXBkYXRlZChmaWxlUGF0aDogc3RyaW5nKSB7XG4gIHRyeSB7XG4gICAgY29uc3QgdGltZXN0YW1wID0gZXhlY1N5bmMoYGdpdCBsb2cgLTEgLS1mb3JtYXQ9JWNJIC0tIFwiJHtmaWxlUGF0aH1cImAsIHtcbiAgICAgIGN3ZDogY29uZmlnLnJvb3QsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgIH0pLnRyaW0oKVxuICAgIHJldHVybiB0aW1lc3RhbXAgfHwgdW5kZWZpbmVkXG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxufVxuXG5mdW5jdGlvbiBzdHJpcExlYWRpbmdIMShjb250ZW50OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNvbnRlbnQucmVwbGFjZSgvXlsgXFx0XSojXFxzK1teXFxuXSpcXG4rLywgXCJcIilcbn1cblxuZnVuY3Rpb24gZXh0cmFjdFRpdGxlKGNvbnRlbnQ6IHN0cmluZywgcGF0aDogc3RyaW5nKSB7XG4gIGNvbnN0IG1hdGNoID0gL14jXFxzKyguKykkL20uZXhlYyhjb250ZW50KVxuICBpZiAobWF0Y2gpIHJldHVybiBtYXRjaFsxXSFcbiAgcmV0dXJuIChcbiAgICBwYXRoXG4gICAgICAuc3BsaXQoXCIvXCIpXG4gICAgICAucG9wKClcbiAgICAgID8ucmVwbGFjZSgvXFwuXFx3KyQvLCBcIlwiKSA/PyBwYXRoXG4gIClcbn1cblxuY29uc3QgYXJ0aWNsZXMgPSBkZWZpbmVDb2xsZWN0aW9uKHtcbiAgbmFtZTogXCJhcnRpY2xlc1wiLFxuICBkaXJlY3RvcnksXG4gIGluY2x1ZGUsXG4gIGV4Y2x1ZGU6IGNvbmZpZy5leGNsdWRlLFxuICBzY2hlbWE6IEFydGljbGUsXG4gIHRyYW5zZm9ybTogYXN5bmMgKGRvY3VtZW50LCBjb250ZXh0KSA9PiB7XG4gICAgY29uc3QgcGF0Y2ggPSBjb25maWcucGF0Y2hlcz8uZmluZChwID0+IHAuZmlsZSA9PT0gZG9jdW1lbnQuX21ldGEuZmlsZVBhdGgpXG4gICAgY29uc3QgZG9jID0gcGF0Y2ggPyB7IC4uLmRvY3VtZW50LCAuLi5wYXRjaC5hcnRpY2xlIH0gOiBkb2N1bWVudFxuICAgIGNvbnN0IGZpbGVQYXRoID0gcmVzb2x2ZShjb25maWcucm9vdCwgZG9jLl9tZXRhLmZpbGVQYXRoKVxuICAgIGNvbnN0IGNvbnRlbnQgPSByZXNvbHZlSW5jbHVkZXMoZG9jLmNvbnRlbnQsIGZpbGVQYXRoKVxuICAgIGNvbnN0IHRpdGxlID0gZG9jLnRpdGxlID8/IGV4dHJhY3RUaXRsZShjb250ZW50LCBkb2MuX21ldGEucGF0aClcbiAgICBjb25zdCBpY29uID0gZG9jLmljb24gPz8gcGlja0RlZmF1bHRJY29uKGRvYy5fbWV0YS5wYXRoKVxuICAgIGNvbnN0IHBhdGggPSBkb2MucGF0aCA/PyB0b1BhdGgoZG9jLl9tZXRhLmZpbGVQYXRoKVxuICAgIC8vIFRoZSBhcnRpY2xlJ3MgaDEgaXMgcmVuZGVyZWQgZnJvbSBgdGl0bGVgIGJ5IHRoZSBsYXlvdXQsIHNvIHN0cmlwIGFueVxuICAgIC8vIGxlYWRpbmcgaDEgaW4gdGhlIGJvZHkgdG8gYXZvaWQgdHdvIGgxcyBzaWRlLWJ5LXNpZGUgKGVzcGVjaWFsbHkgd2hlblxuICAgIC8vIGEgY29udGVudCBwYXRjaCBvdmVycmlkZXMgdGhlIHRpdGxlIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZnJvbSB0aGVcbiAgICAvLyBib2R5J3Mgb3duIGhlYWRpbmcpLlxuICAgIGNvbnN0IGJvZHlDb250ZW50ID0gc3RyaXBMZWFkaW5nSDEoY29udGVudClcbiAgICBjb25zdCBtZHggPSBhd2FpdCBjb21waWxlTURYKFxuICAgICAgY29udGV4dCxcbiAgICAgIHsgLi4uZG9jLCBjb250ZW50OiBib2R5Q29udGVudCB9LFxuICAgICAge1xuICAgICAgICByZW1hcmtQbHVnaW5zOiBbXG4gICAgICAgICAgcmVtYXJrR2ZtLFxuICAgICAgICAgIHJlbWFya0dlbW9qaSxcbiAgICAgICAgICByZW1hcmtEZWZpbml0aW9uTGlzdCxcbiAgICAgICAgICByZW1hcmtEZWZsaXN0LFxuICAgICAgICAgIHJlbWFya01hdGgsXG4gICAgICAgICAgcmVtYXJrRGlyZWN0aXZlLFxuICAgICAgICAgIHJlbWFya0NhbGxvdXQsXG4gICAgICAgICAgcmVtYXJrQ2FyZCxcbiAgICAgICAgICByZW1hcmtDb2x1bW5zLFxuICAgICAgICAgIHJlbWFya1RhYixcbiAgICAgICAgICByZW1hcmtEZXRhaWxzLFxuICAgICAgICAgIHJlbWFya0ZpbGV0cmVlLFxuICAgICAgICAgIHJlbWFya0ljb24sXG4gICAgICAgICAgcmVtYXJrQmFkZ2UsXG4gICAgICAgICAgcmVtYXJrQnV0dG9uLFxuICAgICAgICAgIHJlbWFya0FiYnIsXG4gICAgICAgICAgcmVtYXJrR2l0aHViQ2FsbG91dCxcbiAgICAgICAgICBbXG4gICAgICAgICAgICByZW1hcmtJbWFnZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZmlsZVBhdGg6IHJlc29sdmUoY29uZmlnLnJvb3QsIGRvYy5fbWV0YS5maWxlUGF0aCksXG4gICAgICAgICAgICAgIHJvb3Q6IGNvbmZpZy5yb290LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlbWFya0Fuc2ksXG4gICAgICAgICAgcmVtYXJrTWVybWFpZCxcbiAgICAgICAgICByZW1hcmtNZWRpYSxcbiAgICAgICAgICByZW1hcmtUb2MsXG4gICAgICAgICAgcmVtYXJrTnBtLFxuICAgICAgICAgIHJlbWFya0NvZGVUYWJzLFxuICAgICAgICAgIHJlbWFya1N0ZXBzLFxuICAgICAgICAgIHJlbWFya0N1c3RvbUhlYWRpbmdJZCxcbiAgICAgICAgXSxcbiAgICAgICAgcmVoeXBlUGx1Z2luczogW1xuICAgICAgICAgIFtcbiAgICAgICAgICAgIHJlaHlwZVNoaWtpLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aGVtZXM6IHtcbiAgICAgICAgICAgICAgICBsaWdodDogY29uZmlnLmNvZGVUaGVtZUxpZ2h0LFxuICAgICAgICAgICAgICAgIGRhcms6IGNvbmZpZy5jb2RlVGhlbWVEYXJrLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAvLyBEYXJrZW4gY2F0cHB1Y2Npbi1sYXR0ZSdzIGdyZWVuICh0aGUgY29sb3VyIHVzZWQgZm9yIHN0cmluZ3MgYW5kXG4gICAgICAgICAgICAgIC8vIHNvbWUgY29tbWVudHMpIOKAlCB0aGUgdGhlbWUgZGVmYXVsdCAjNDBBMDJCIGxhbmRzIGF0IDMuMjoxIG9uIHRoZVxuICAgICAgICAgICAgICAvLyBjb2RlLWJsb2NrIGJhY2tncm91bmQsIGJlbG93IHRoZSBXQ0FHIEFBIDQuNToxIHRocmVzaG9sZC5cbiAgICAgICAgICAgICAgY29sb3JSZXBsYWNlbWVudHM6IHtcbiAgICAgICAgICAgICAgICBcImNhdHBwdWNjaW4tbGF0dGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCIjNDBhMDJiXCI6IFwiIzJhN2UxNlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHRyYW5zZm9ybWVyczogW1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVyVHdvc2xhc2goeyBleHBsaWNpdFRyaWdnZXI6IHRydWUgfSksXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtZXJJY29uKCksXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtZXJOb3RhdGlvbnMoKSxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1lckxpbmVIaWdobGlnaHQoKSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcGFyc2VNZXRhU3RyaW5nOiAobWV0YTogc3RyaW5nKSA9PiAoeyBcImRhdGEtbWV0YVwiOiBtZXRhIH0pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlaHlwZUlubGluZUNvZGUsXG4gICAgICAgICAgcmVoeXBlU2x1ZyxcbiAgICAgICAgICByZWh5cGVLYXRleCxcbiAgICAgICAgICByZWh5cGVUYXNrTGlzdEExMXksXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIClcbiAgICBjb25zdCB0b2NJdGVtcyA9IGV4dHJhY3RUb2MoY29udGVudClcbiAgICBjb25zdCBzZWFyY2hUZXh0ID0gZXh0cmFjdFNlYXJjaFRleHQoY29udGVudClcbiAgICBjb25zdCBsYXN0VXBkYXRlZCA9IGdldExhc3RVcGRhdGVkKGRvYy5fbWV0YS5maWxlUGF0aClcbiAgICBjb25zdCBpbWFnZSA9IGRvYy5pbWFnZVxuICAgICAgPyByZXNvbHZlQXNzZXRQYXRoKGRvYy5pbWFnZSwgZmlsZVBhdGgsIGNvbmZpZy5yb290KVxuICAgICAgOiB1bmRlZmluZWRcbiAgICByZXR1cm4ge1xuICAgICAgLi4uZG9jLFxuICAgICAgZmlsZTogZG9jLl9tZXRhLmZpbGVQYXRoLFxuICAgICAgbGFzdFVwZGF0ZWQsXG4gICAgICBpbWFnZSxcbiAgICAgIHRpdGxlLFxuICAgICAgaWNvbixcbiAgICAgIHBhdGgsXG4gICAgICB0b2NJdGVtcyxcbiAgICAgIHNlYXJjaFRleHQsXG4gICAgICBtZHgsXG4gICAgfVxuICB9LFxufSlcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciB0c2dvIHBpY2tzIHdyb25nIG92ZXJsb2FkIHdoZW4gcmVoeXBlLXNsdWcgYXVnbWVudHMgdW5pZmllZCB0eXBlc1xuICBjb250ZW50OiBbYXJ0aWNsZXNdLFxufSlcbiJdfQ==
@@ -26,6 +26,7 @@ export declare const Article: z.ZodObject<{
26
26
  /** Processed article ready for page rendering (result of content-collections transform). */
27
27
  export interface ArticleView {
28
28
  path: string;
29
+ title: string;
29
30
  content: string;
30
31
  file: string;
31
32
  mdx: string;
@@ -18,4 +18,4 @@ export const Article = z.object({
18
18
  sourceUrl: nonEmptyString.optional(),
19
19
  sourceAction: z.enum(["edit", "view"]).default("edit"),
20
20
  });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9tb2RlbHMvYXJ0aWNsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUtwRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM5QixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNuQixLQUFLLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUNoQyxLQUFLLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUNoQyxXQUFXLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUN0QyxJQUFJLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUMvQixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QixJQUFJLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUMvQixLQUFLLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUNoQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDbEMsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzlCLEtBQUssRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFO0lBQ2hDLE1BQU0sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNyRSxJQUFJLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUMvQixJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDeEMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxRQUFRLEVBQUU7SUFDcEMsWUFBWSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0NBQ3ZELENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHogfSBmcm9tIFwiem9kXCJcbmltcG9ydCB7IG5vbkVtcHR5U3RyaW5nIH0gZnJvbSBcIi4uL2hlbHBlcnMvbW9kZWwudHNcIlxuaW1wb3J0IHR5cGUgeyBUb2NJdGVtIH0gZnJvbSBcIi4vdG9jLnRzXCJcblxuLyoqIEZyb250bWF0dGVyIHNjaGVtYSBmb3IgYSBtYXJrZG93biBhcnRpY2xlLiAqL1xuZXhwb3J0IHR5cGUgQXJ0aWNsZSA9IHouaW5mZXI8dHlwZW9mIEFydGljbGU+XG5leHBvcnQgY29uc3QgQXJ0aWNsZSA9IHoub2JqZWN0KHtcbiAgY29udGVudDogei5zdHJpbmcoKSxcbiAgdGl0bGU6IG5vbkVtcHR5U3RyaW5nLm9wdGlvbmFsKCksXG4gIGxhYmVsOiBub25FbXB0eVN0cmluZy5vcHRpb25hbCgpLFxuICBkZXNjcmlwdGlvbjogbm9uRW1wdHlTdHJpbmcub3B0aW9uYWwoKSxcbiAgaWNvbjogbm9uRW1wdHlTdHJpbmcub3B0aW9uYWwoKSxcbiAgb3JkZXI6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgcGF0aDogbm9uRW1wdHlTdHJpbmcub3B0aW9uYWwoKSxcbiAgZ3JvdXA6IG5vbkVtcHR5U3RyaW5nLm9wdGlvbmFsKCksXG4gIHNpZGViYXI6IHouYm9vbGVhbigpLmRlZmF1bHQodHJ1ZSksXG4gIHRvYzogei5ib29sZWFuKCkuZGVmYXVsdCh0cnVlKSxcbiAgaW1hZ2U6IG5vbkVtcHR5U3RyaW5nLm9wdGlvbmFsKCksXG4gIGF1dGhvcjogei51bmlvbihbbm9uRW1wdHlTdHJpbmcsIHouYXJyYXkobm9uRW1wdHlTdHJpbmcpXSkub3B0aW9uYWwoKSxcbiAgZGF0ZTogbm9uRW1wdHlTdHJpbmcub3B0aW9uYWwoKSxcbiAgdGFnczogei5hcnJheShub25FbXB0eVN0cmluZykub3B0aW9uYWwoKSxcbiAgc291cmNlVXJsOiBub25FbXB0eVN0cmluZy5vcHRpb25hbCgpLFxuICBzb3VyY2VBY3Rpb246IHouZW51bShbXCJlZGl0XCIsIFwidmlld1wiXSkuZGVmYXVsdChcImVkaXRcIiksXG59KVxuXG4vKiogUHJvY2Vzc2VkIGFydGljbGUgcmVhZHkgZm9yIHBhZ2UgcmVuZGVyaW5nIChyZXN1bHQgb2YgY29udGVudC1jb2xsZWN0aW9ucyB0cmFuc2Zvcm0pLiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcnRpY2xlVmlldyB7XG4gIHBhdGg6IHN0cmluZ1xuICBjb250ZW50OiBzdHJpbmdcbiAgZmlsZTogc3RyaW5nXG4gIG1keDogc3RyaW5nXG4gIHRvY0l0ZW1zOiBUb2NJdGVtW11cbiAgdG9jPzogYm9vbGVhblxuICBsYXN0VXBkYXRlZD86IHN0cmluZ1xuICBzaWRlYmFyPzogYm9vbGVhblxuICBpbWFnZT86IHN0cmluZ1xuICBhdXRob3I/OiBzdHJpbmcgfCBzdHJpbmdbXVxuICBkYXRlPzogc3RyaW5nXG4gIHRhZ3M/OiBzdHJpbmdbXVxuICBzb3VyY2VVcmw/OiBzdHJpbmdcbiAgc291cmNlQWN0aW9uPzogXCJlZGl0XCIgfCBcInZpZXdcIlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFydGljbGVOb2RlIHtcbiAgcGF0aDogc3RyaW5nXG4gIHRpdGxlOiBzdHJpbmdcbiAgbGFiZWw/OiBzdHJpbmdcbiAgaWNvbjogc3RyaW5nXG4gIGNoaWxkcmVuOiBBcnRpY2xlTm9kZVtdXG59XG5cbi8qKlxuICogQSBjb250aWd1b3VzIHNlY3Rpb24gb2Ygcm9vdCBhcnRpY2xlcyBzaGFyaW5nIHRoZSBzYW1lIGBncm91cGAgbGFiZWwuXG4gKiBgbmFtZTogdW5kZWZpbmVkYCByZXByZXNlbnRzIHRoZSBsZWFkaW5nIHVuZ3JvdXBlZCBzZWN0aW9uIChhdCBtb3N0IG9uZSkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXJ0aWNsZUdyb3VwIHtcbiAgbmFtZT86IHN0cmluZ1xuICBub2RlczogQXJ0aWNsZU5vZGVbXVxufVxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9tb2RlbHMvYXJ0aWNsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUtwRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM5QixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNuQixLQUFLLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUNoQyxLQUFLLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUNoQyxXQUFXLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUN0QyxJQUFJLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUMvQixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QixJQUFJLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUMvQixLQUFLLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUNoQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDbEMsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzlCLEtBQUssRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFO0lBQ2hDLE1BQU0sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNyRSxJQUFJLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtJQUMvQixJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDeEMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxRQUFRLEVBQUU7SUFDcEMsWUFBWSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0NBQ3ZELENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHogfSBmcm9tIFwiem9kXCJcbmltcG9ydCB7IG5vbkVtcHR5U3RyaW5nIH0gZnJvbSBcIi4uL2hlbHBlcnMvbW9kZWwudHNcIlxuaW1wb3J0IHR5cGUgeyBUb2NJdGVtIH0gZnJvbSBcIi4vdG9jLnRzXCJcblxuLyoqIEZyb250bWF0dGVyIHNjaGVtYSBmb3IgYSBtYXJrZG93biBhcnRpY2xlLiAqL1xuZXhwb3J0IHR5cGUgQXJ0aWNsZSA9IHouaW5mZXI8dHlwZW9mIEFydGljbGU+XG5leHBvcnQgY29uc3QgQXJ0aWNsZSA9IHoub2JqZWN0KHtcbiAgY29udGVudDogei5zdHJpbmcoKSxcbiAgdGl0bGU6IG5vbkVtcHR5U3RyaW5nLm9wdGlvbmFsKCksXG4gIGxhYmVsOiBub25FbXB0eVN0cmluZy5vcHRpb25hbCgpLFxuICBkZXNjcmlwdGlvbjogbm9uRW1wdHlTdHJpbmcub3B0aW9uYWwoKSxcbiAgaWNvbjogbm9uRW1wdHlTdHJpbmcub3B0aW9uYWwoKSxcbiAgb3JkZXI6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgcGF0aDogbm9uRW1wdHlTdHJpbmcub3B0aW9uYWwoKSxcbiAgZ3JvdXA6IG5vbkVtcHR5U3RyaW5nLm9wdGlvbmFsKCksXG4gIHNpZGViYXI6IHouYm9vbGVhbigpLmRlZmF1bHQodHJ1ZSksXG4gIHRvYzogei5ib29sZWFuKCkuZGVmYXVsdCh0cnVlKSxcbiAgaW1hZ2U6IG5vbkVtcHR5U3RyaW5nLm9wdGlvbmFsKCksXG4gIGF1dGhvcjogei51bmlvbihbbm9uRW1wdHlTdHJpbmcsIHouYXJyYXkobm9uRW1wdHlTdHJpbmcpXSkub3B0aW9uYWwoKSxcbiAgZGF0ZTogbm9uRW1wdHlTdHJpbmcub3B0aW9uYWwoKSxcbiAgdGFnczogei5hcnJheShub25FbXB0eVN0cmluZykub3B0aW9uYWwoKSxcbiAgc291cmNlVXJsOiBub25FbXB0eVN0cmluZy5vcHRpb25hbCgpLFxuICBzb3VyY2VBY3Rpb246IHouZW51bShbXCJlZGl0XCIsIFwidmlld1wiXSkuZGVmYXVsdChcImVkaXRcIiksXG59KVxuXG4vKiogUHJvY2Vzc2VkIGFydGljbGUgcmVhZHkgZm9yIHBhZ2UgcmVuZGVyaW5nIChyZXN1bHQgb2YgY29udGVudC1jb2xsZWN0aW9ucyB0cmFuc2Zvcm0pLiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcnRpY2xlVmlldyB7XG4gIHBhdGg6IHN0cmluZ1xuICB0aXRsZTogc3RyaW5nXG4gIGNvbnRlbnQ6IHN0cmluZ1xuICBmaWxlOiBzdHJpbmdcbiAgbWR4OiBzdHJpbmdcbiAgdG9jSXRlbXM6IFRvY0l0ZW1bXVxuICB0b2M/OiBib29sZWFuXG4gIGxhc3RVcGRhdGVkPzogc3RyaW5nXG4gIHNpZGViYXI/OiBib29sZWFuXG4gIGltYWdlPzogc3RyaW5nXG4gIGF1dGhvcj86IHN0cmluZyB8IHN0cmluZ1tdXG4gIGRhdGU/OiBzdHJpbmdcbiAgdGFncz86IHN0cmluZ1tdXG4gIHNvdXJjZVVybD86IHN0cmluZ1xuICBzb3VyY2VBY3Rpb24/OiBcImVkaXRcIiB8IFwidmlld1wiXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJ0aWNsZU5vZGUge1xuICBwYXRoOiBzdHJpbmdcbiAgdGl0bGU6IHN0cmluZ1xuICBsYWJlbD86IHN0cmluZ1xuICBpY29uOiBzdHJpbmdcbiAgY2hpbGRyZW46IEFydGljbGVOb2RlW11cbn1cblxuLyoqXG4gKiBBIGNvbnRpZ3VvdXMgc2VjdGlvbiBvZiByb290IGFydGljbGVzIHNoYXJpbmcgdGhlIHNhbWUgYGdyb3VwYCBsYWJlbC5cbiAqIGBuYW1lOiB1bmRlZmluZWRgIHJlcHJlc2VudHMgdGhlIGxlYWRpbmcgdW5ncm91cGVkIHNlY3Rpb24gKGF0IG1vc3Qgb25lKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcnRpY2xlR3JvdXAge1xuICBuYW1lPzogc3RyaW5nXG4gIG5vZGVzOiBBcnRpY2xlTm9kZVtdXG59XG4iXX0=
@@ -13,8 +13,8 @@ import { WebsiteConfig } from "./models/config.js";
13
13
  import { OVERRIDE_SUBDIRS } from "./settings.js";
14
14
  import { livemark } from "./plugins/vite-livemark.js";
15
15
  const config = await loadConfig();
16
- const websiteDir = import.meta.dirname;
17
- const websiteRelative = relative(config.root, websiteDir);
16
+ const sourceDir = import.meta.dirname;
17
+ const sourceRelative = relative(config.root, sourceDir);
18
18
  const overridesRoot = join(config.root, ".livemark");
19
19
  // Seed `.livemark/.gitignore` on first run so Vite's build/cache artifacts
20
20
  // never get committed by accident.
@@ -25,7 +25,13 @@ if (!existsSync(gitignorePath)) {
25
25
  }
26
26
  const routeChildren = [route("/$", "$.tsx")];
27
27
  if (existsSync(join(overridesRoot, "routes"))) {
28
- routeChildren.push(physical("../../.livemark/routes"));
28
+ // physical(dir) resolves `dir` relative to the routes directory
29
+ // (`srcDirectory/routes`). A hardcoded "../../.livemark/routes" only
30
+ // works when source/ sits one level under config.root — it lands at
31
+ // node_modules/.livemark/routes once livemark is installed. Compute
32
+ // the path dynamically from the consumer's actual layout.
33
+ const routesDir = join(sourceDir, "routes");
34
+ routeChildren.push(physical(relative(routesDir, join(overridesRoot, "routes"))));
29
35
  }
30
36
  export default defineConfig({
31
37
  root: config.root,
@@ -36,7 +42,7 @@ export default defineConfig({
36
42
  },
37
43
  plugins: [
38
44
  livemark({
39
- defaultsRoot: websiteDir,
45
+ defaultsRoot: sourceDir,
40
46
  overridesRoot,
41
47
  subdirs: [...OVERRIDE_SUBDIRS],
42
48
  configPath: config.configPath,
@@ -44,10 +50,10 @@ export default defineConfig({
44
50
  devtools(),
45
51
  tailwind(),
46
52
  contentCollections({
47
- configPath: join(websiteRelative, "content-collections.ts"),
53
+ configPath: join(sourceRelative, "content-collections.ts"),
48
54
  }),
49
55
  tanstackStart({
50
- srcDirectory: websiteRelative,
56
+ srcDirectory: sourceRelative,
51
57
  pages: [{ path: "/" }],
52
58
  prerender: { enabled: true, crawlLinks: true },
53
59
  sitemap: config.site
@@ -61,4 +67,4 @@ export default defineConfig({
61
67
  svgr(),
62
68
  ],
63
69
  });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2Uvdml0ZS5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQzlELE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzFDLE9BQU8sa0JBQWtCLE1BQU0sMkJBQTJCLENBQUE7QUFDMUQsT0FBTyxRQUFRLE1BQU0sbUJBQW1CLENBQUE7QUFDeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNqRSxPQUFPLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxLQUFLLEdBRU4sTUFBTSwrQkFBK0IsQ0FBQTtBQUN0QyxPQUFPLEtBQUssTUFBTSxzQkFBc0IsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ25DLE9BQU8sSUFBSSxNQUFNLGtCQUFrQixDQUFBO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUVyRCxNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsRUFBRSxDQUFBO0FBQ2pDLE1BQU0sVUFBVSxHQUFHLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQTtBQUN0QyxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQTtBQUN6RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQTtBQUVwRCwyRUFBMkU7QUFDM0UsbUNBQW1DO0FBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUE7QUFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO0lBQy9CLFNBQVMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUM3QyxhQUFhLENBQUMsYUFBYSxFQUFFLGtCQUFrQixDQUFDLENBQUE7QUFDbEQsQ0FBQztBQUVELE1BQU0sYUFBYSxHQUF1QixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQTtBQUNoRSxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM5QyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUE7QUFDeEQsQ0FBQztBQUVELGVBQWUsWUFBWSxDQUFDO0lBQzFCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtJQUNqQixTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsQ0FBQztJQUNuRCxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUU7SUFDcEMsTUFBTSxFQUFFO1FBQ04sd0JBQXdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ3RFO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsUUFBUSxDQUFDO1lBQ1AsWUFBWSxFQUFFLFVBQVU7WUFDeEIsYUFBYTtZQUNiLE9BQU8sRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLENBQUM7WUFDOUIsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO1NBQzlCLENBQUM7UUFDRixRQUFRLEVBQUU7UUFDVixRQUFRLEVBQUU7UUFDVixrQkFBa0IsQ0FBQztZQUNqQixVQUFVLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSx3QkFBd0IsQ0FBQztTQUM1RCxDQUFDO1FBQ0YsYUFBYSxDQUFDO1lBQ1osWUFBWSxFQUFFLGVBQWU7WUFDN0IsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDdEIsU0FBUyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFO1lBQzlDLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDbEIsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRTtnQkFDdEMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTtZQUN0QixNQUFNLEVBQUU7Z0JBQ04sa0JBQWtCLEVBQUUsU0FBUyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7YUFDM0Q7U0FDRixDQUFDO1FBQ0YsS0FBSyxFQUFFO1FBQ1AsSUFBSSxFQUFFO0tBQ1A7Q0FDRixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jLCBta2RpclN5bmMsIHdyaXRlRmlsZVN5bmMgfSBmcm9tIFwibm9kZTpmc1wiXG5pbXBvcnQgeyBqb2luLCByZWxhdGl2ZSB9IGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IGNvbnRlbnRDb2xsZWN0aW9ucyBmcm9tIFwiQGNvbnRlbnQtY29sbGVjdGlvbnMvdml0ZVwiXG5pbXBvcnQgdGFpbHdpbmQgZnJvbSBcIkB0YWlsd2luZGNzcy92aXRlXCJcbmltcG9ydCB7IGRldnRvb2xzIH0gZnJvbSBcIkB0YW5zdGFjay9kZXZ0b29scy12aXRlXCJcbmltcG9ydCB7IHRhbnN0YWNrU3RhcnQgfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXN0YXJ0L3BsdWdpbi92aXRlXCJcbmltcG9ydCB7XG4gIHBoeXNpY2FsLFxuICByb290Um91dGUsXG4gIHJvdXRlLFxuICB0eXBlIFZpcnR1YWxSb3V0ZU5vZGUsXG59IGZyb20gXCJAdGFuc3RhY2svdmlydHVhbC1maWxlLXJvdXRlc1wiXG5pbXBvcnQgcmVhY3QgZnJvbSBcIkB2aXRlanMvcGx1Z2luLXJlYWN0XCJcbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJ2aXRlXCJcbmltcG9ydCBzdmdyIGZyb20gXCJ2aXRlLXBsdWdpbi1zdmdyXCJcbmltcG9ydCB7IGxvYWRDb25maWcgfSBmcm9tIFwiLi9hY3Rpb25zL2NvbmZpZy9sb2FkLnRzXCJcbmltcG9ydCB7IFdlYnNpdGVDb25maWcgfSBmcm9tIFwiLi9tb2RlbHMvY29uZmlnLnRzXCJcbmltcG9ydCB7IE9WRVJSSURFX1NVQkRJUlMgfSBmcm9tIFwiLi9zZXR0aW5ncy50c1wiXG5pbXBvcnQgeyBsaXZlbWFyayB9IGZyb20gXCIuL3BsdWdpbnMvdml0ZS1saXZlbWFyay50c1wiXG5cbmNvbnN0IGNvbmZpZyA9IGF3YWl0IGxvYWRDb25maWcoKVxuY29uc3Qgd2Vic2l0ZURpciA9IGltcG9ydC5tZXRhLmRpcm5hbWVcbmNvbnN0IHdlYnNpdGVSZWxhdGl2ZSA9IHJlbGF0aXZlKGNvbmZpZy5yb290LCB3ZWJzaXRlRGlyKVxuY29uc3Qgb3ZlcnJpZGVzUm9vdCA9IGpvaW4oY29uZmlnLnJvb3QsIFwiLmxpdmVtYXJrXCIpXG5cbi8vIFNlZWQgYC5saXZlbWFyay8uZ2l0aWdub3JlYCBvbiBmaXJzdCBydW4gc28gVml0ZSdzIGJ1aWxkL2NhY2hlIGFydGlmYWN0c1xuLy8gbmV2ZXIgZ2V0IGNvbW1pdHRlZCBieSBhY2NpZGVudC5cbmNvbnN0IGdpdGlnbm9yZVBhdGggPSBqb2luKG92ZXJyaWRlc1Jvb3QsIFwiLmdpdGlnbm9yZVwiKVxuaWYgKCFleGlzdHNTeW5jKGdpdGlnbm9yZVBhdGgpKSB7XG4gIG1rZGlyU3luYyhvdmVycmlkZXNSb290LCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KVxuICB3cml0ZUZpbGVTeW5jKGdpdGlnbm9yZVBhdGgsIFwiL2J1aWxkXFxuL2NhY2hlXFxuXCIpXG59XG5cbmNvbnN0IHJvdXRlQ2hpbGRyZW46IFZpcnR1YWxSb3V0ZU5vZGVbXSA9IFtyb3V0ZShcIi8kXCIsIFwiJC50c3hcIildXG5pZiAoZXhpc3RzU3luYyhqb2luKG92ZXJyaWRlc1Jvb3QsIFwicm91dGVzXCIpKSkge1xuICByb3V0ZUNoaWxkcmVuLnB1c2gocGh5c2ljYWwoXCIuLi8uLi8ubGl2ZW1hcmsvcm91dGVzXCIpKVxufVxuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcoe1xuICByb290OiBjb25maWcucm9vdCxcbiAgcHVibGljRGlyOiBqb2luKGNvbmZpZy5yb290LCBcIi5saXZlbWFya1wiLCBcInB1YmxpY1wiKSxcbiAgYnVpbGQ6IHsgb3V0RGlyOiBcIi5saXZlbWFyay9idWlsZFwiIH0sXG4gIGRlZmluZToge1xuICAgIFwiaW1wb3J0Lm1ldGEuZW52LkNPTkZJR1wiOiBKU09OLnN0cmluZ2lmeShXZWJzaXRlQ29uZmlnLnBhcnNlKGNvbmZpZykpLFxuICB9LFxuICBwbHVnaW5zOiBbXG4gICAgbGl2ZW1hcmsoe1xuICAgICAgZGVmYXVsdHNSb290OiB3ZWJzaXRlRGlyLFxuICAgICAgb3ZlcnJpZGVzUm9vdCxcbiAgICAgIHN1YmRpcnM6IFsuLi5PVkVSUklERV9TVUJESVJTXSxcbiAgICAgIGNvbmZpZ1BhdGg6IGNvbmZpZy5jb25maWdQYXRoLFxuICAgIH0pLFxuICAgIGRldnRvb2xzKCksXG4gICAgdGFpbHdpbmQoKSxcbiAgICBjb250ZW50Q29sbGVjdGlvbnMoe1xuICAgICAgY29uZmlnUGF0aDogam9pbih3ZWJzaXRlUmVsYXRpdmUsIFwiY29udGVudC1jb2xsZWN0aW9ucy50c1wiKSxcbiAgICB9KSxcbiAgICB0YW5zdGFja1N0YXJ0KHtcbiAgICAgIHNyY0RpcmVjdG9yeTogd2Vic2l0ZVJlbGF0aXZlLFxuICAgICAgcGFnZXM6IFt7IHBhdGg6IFwiL1wiIH1dLFxuICAgICAgcHJlcmVuZGVyOiB7IGVuYWJsZWQ6IHRydWUsIGNyYXdsTGlua3M6IHRydWUgfSxcbiAgICAgIHNpdGVtYXA6IGNvbmZpZy5zaXRlXG4gICAgICAgID8geyBlbmFibGVkOiB0cnVlLCBob3N0OiBjb25maWcuc2l0ZSB9XG4gICAgICAgIDogeyBlbmFibGVkOiBmYWxzZSB9LFxuICAgICAgcm91dGVyOiB7XG4gICAgICAgIHZpcnR1YWxSb3V0ZUNvbmZpZzogcm9vdFJvdXRlKFwiX19yb290LnRzeFwiLCByb3V0ZUNoaWxkcmVuKSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgcmVhY3QoKSxcbiAgICBzdmdyKCksXG4gIF0sXG59KVxuIl19
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2Uvdml0ZS5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQzlELE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzFDLE9BQU8sa0JBQWtCLE1BQU0sMkJBQTJCLENBQUE7QUFDMUQsT0FBTyxRQUFRLE1BQU0sbUJBQW1CLENBQUE7QUFDeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNqRSxPQUFPLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxLQUFLLEdBRU4sTUFBTSwrQkFBK0IsQ0FBQTtBQUN0QyxPQUFPLEtBQUssTUFBTSxzQkFBc0IsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ25DLE9BQU8sSUFBSSxNQUFNLGtCQUFrQixDQUFBO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUVyRCxNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsRUFBRSxDQUFBO0FBQ2pDLE1BQU0sU0FBUyxHQUFHLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQTtBQUNyQyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQTtBQUN2RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQTtBQUVwRCwyRUFBMkU7QUFDM0UsbUNBQW1DO0FBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUE7QUFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO0lBQy9CLFNBQVMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUM3QyxhQUFhLENBQUMsYUFBYSxFQUFFLGtCQUFrQixDQUFDLENBQUE7QUFDbEQsQ0FBQztBQUVELE1BQU0sYUFBYSxHQUF1QixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQTtBQUNoRSxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM5QyxnRUFBZ0U7SUFDaEUscUVBQXFFO0lBQ3JFLG9FQUFvRTtJQUNwRSxvRUFBb0U7SUFDcEUsMERBQTBEO0lBQzFELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDM0MsYUFBYSxDQUFDLElBQUksQ0FDaEIsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQzdELENBQUE7QUFDSCxDQUFDO0FBRUQsZUFBZSxZQUFZLENBQUM7SUFDMUIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO0lBQ2pCLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDO0lBQ25ELEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRTtJQUNwQyxNQUFNLEVBQUU7UUFDTix3QkFBd0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDdEU7SUFDRCxPQUFPLEVBQUU7UUFDUCxRQUFRLENBQUM7WUFDUCxZQUFZLEVBQUUsU0FBUztZQUN2QixhQUFhO1lBQ2IsT0FBTyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztZQUM5QixVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7U0FDOUIsQ0FBQztRQUNGLFFBQVEsRUFBRTtRQUNWLFFBQVEsRUFBRTtRQUNWLGtCQUFrQixDQUFDO1lBQ2pCLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLHdCQUF3QixDQUFDO1NBQzNELENBQUM7UUFDRixhQUFhLENBQUM7WUFDWixZQUFZLEVBQUUsY0FBYztZQUM1QixLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUN0QixTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7WUFDOUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJO2dCQUNsQixDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFO2dCQUN0QyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO1lBQ3RCLE1BQU0sRUFBRTtnQkFDTixrQkFBa0IsRUFBRSxTQUFTLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQzthQUMzRDtTQUNGLENBQUM7UUFDRixLQUFLLEVBQUU7UUFDUCxJQUFJLEVBQUU7S0FDUDtDQUNGLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4aXN0c1N5bmMsIG1rZGlyU3luYywgd3JpdGVGaWxlU3luYyB9IGZyb20gXCJub2RlOmZzXCJcbmltcG9ydCB7IGpvaW4sIHJlbGF0aXZlIH0gZnJvbSBcIm5vZGU6cGF0aFwiXG5pbXBvcnQgY29udGVudENvbGxlY3Rpb25zIGZyb20gXCJAY29udGVudC1jb2xsZWN0aW9ucy92aXRlXCJcbmltcG9ydCB0YWlsd2luZCBmcm9tIFwiQHRhaWx3aW5kY3NzL3ZpdGVcIlxuaW1wb3J0IHsgZGV2dG9vbHMgfSBmcm9tIFwiQHRhbnN0YWNrL2RldnRvb2xzLXZpdGVcIlxuaW1wb3J0IHsgdGFuc3RhY2tTdGFydCB9IGZyb20gXCJAdGFuc3RhY2svcmVhY3Qtc3RhcnQvcGx1Z2luL3ZpdGVcIlxuaW1wb3J0IHtcbiAgcGh5c2ljYWwsXG4gIHJvb3RSb3V0ZSxcbiAgcm91dGUsXG4gIHR5cGUgVmlydHVhbFJvdXRlTm9kZSxcbn0gZnJvbSBcIkB0YW5zdGFjay92aXJ0dWFsLWZpbGUtcm91dGVzXCJcbmltcG9ydCByZWFjdCBmcm9tIFwiQHZpdGVqcy9wbHVnaW4tcmVhY3RcIlxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInZpdGVcIlxuaW1wb3J0IHN2Z3IgZnJvbSBcInZpdGUtcGx1Z2luLXN2Z3JcIlxuaW1wb3J0IHsgbG9hZENvbmZpZyB9IGZyb20gXCIuL2FjdGlvbnMvY29uZmlnL2xvYWQudHNcIlxuaW1wb3J0IHsgV2Vic2l0ZUNvbmZpZyB9IGZyb20gXCIuL21vZGVscy9jb25maWcudHNcIlxuaW1wb3J0IHsgT1ZFUlJJREVfU1VCRElSUyB9IGZyb20gXCIuL3NldHRpbmdzLnRzXCJcbmltcG9ydCB7IGxpdmVtYXJrIH0gZnJvbSBcIi4vcGx1Z2lucy92aXRlLWxpdmVtYXJrLnRzXCJcblxuY29uc3QgY29uZmlnID0gYXdhaXQgbG9hZENvbmZpZygpXG5jb25zdCBzb3VyY2VEaXIgPSBpbXBvcnQubWV0YS5kaXJuYW1lXG5jb25zdCBzb3VyY2VSZWxhdGl2ZSA9IHJlbGF0aXZlKGNvbmZpZy5yb290LCBzb3VyY2VEaXIpXG5jb25zdCBvdmVycmlkZXNSb290ID0gam9pbihjb25maWcucm9vdCwgXCIubGl2ZW1hcmtcIilcblxuLy8gU2VlZCBgLmxpdmVtYXJrLy5naXRpZ25vcmVgIG9uIGZpcnN0IHJ1biBzbyBWaXRlJ3MgYnVpbGQvY2FjaGUgYXJ0aWZhY3RzXG4vLyBuZXZlciBnZXQgY29tbWl0dGVkIGJ5IGFjY2lkZW50LlxuY29uc3QgZ2l0aWdub3JlUGF0aCA9IGpvaW4ob3ZlcnJpZGVzUm9vdCwgXCIuZ2l0aWdub3JlXCIpXG5pZiAoIWV4aXN0c1N5bmMoZ2l0aWdub3JlUGF0aCkpIHtcbiAgbWtkaXJTeW5jKG92ZXJyaWRlc1Jvb3QsIHsgcmVjdXJzaXZlOiB0cnVlIH0pXG4gIHdyaXRlRmlsZVN5bmMoZ2l0aWdub3JlUGF0aCwgXCIvYnVpbGRcXG4vY2FjaGVcXG5cIilcbn1cblxuY29uc3Qgcm91dGVDaGlsZHJlbjogVmlydHVhbFJvdXRlTm9kZVtdID0gW3JvdXRlKFwiLyRcIiwgXCIkLnRzeFwiKV1cbmlmIChleGlzdHNTeW5jKGpvaW4ob3ZlcnJpZGVzUm9vdCwgXCJyb3V0ZXNcIikpKSB7XG4gIC8vIHBoeXNpY2FsKGRpcikgcmVzb2x2ZXMgYGRpcmAgcmVsYXRpdmUgdG8gdGhlIHJvdXRlcyBkaXJlY3RvcnlcbiAgLy8gKGBzcmNEaXJlY3Rvcnkvcm91dGVzYCkuIEEgaGFyZGNvZGVkIFwiLi4vLi4vLmxpdmVtYXJrL3JvdXRlc1wiIG9ubHlcbiAgLy8gd29ya3Mgd2hlbiBzb3VyY2UvIHNpdHMgb25lIGxldmVsIHVuZGVyIGNvbmZpZy5yb290IOKAlCBpdCBsYW5kcyBhdFxuICAvLyBub2RlX21vZHVsZXMvLmxpdmVtYXJrL3JvdXRlcyBvbmNlIGxpdmVtYXJrIGlzIGluc3RhbGxlZC4gQ29tcHV0ZVxuICAvLyB0aGUgcGF0aCBkeW5hbWljYWxseSBmcm9tIHRoZSBjb25zdW1lcidzIGFjdHVhbCBsYXlvdXQuXG4gIGNvbnN0IHJvdXRlc0RpciA9IGpvaW4oc291cmNlRGlyLCBcInJvdXRlc1wiKVxuICByb3V0ZUNoaWxkcmVuLnB1c2goXG4gICAgcGh5c2ljYWwocmVsYXRpdmUocm91dGVzRGlyLCBqb2luKG92ZXJyaWRlc1Jvb3QsIFwicm91dGVzXCIpKSksXG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcbiAgcm9vdDogY29uZmlnLnJvb3QsXG4gIHB1YmxpY0Rpcjogam9pbihjb25maWcucm9vdCwgXCIubGl2ZW1hcmtcIiwgXCJwdWJsaWNcIiksXG4gIGJ1aWxkOiB7IG91dERpcjogXCIubGl2ZW1hcmsvYnVpbGRcIiB9LFxuICBkZWZpbmU6IHtcbiAgICBcImltcG9ydC5tZXRhLmVudi5DT05GSUdcIjogSlNPTi5zdHJpbmdpZnkoV2Vic2l0ZUNvbmZpZy5wYXJzZShjb25maWcpKSxcbiAgfSxcbiAgcGx1Z2luczogW1xuICAgIGxpdmVtYXJrKHtcbiAgICAgIGRlZmF1bHRzUm9vdDogc291cmNlRGlyLFxuICAgICAgb3ZlcnJpZGVzUm9vdCxcbiAgICAgIHN1YmRpcnM6IFsuLi5PVkVSUklERV9TVUJESVJTXSxcbiAgICAgIGNvbmZpZ1BhdGg6IGNvbmZpZy5jb25maWdQYXRoLFxuICAgIH0pLFxuICAgIGRldnRvb2xzKCksXG4gICAgdGFpbHdpbmQoKSxcbiAgICBjb250ZW50Q29sbGVjdGlvbnMoe1xuICAgICAgY29uZmlnUGF0aDogam9pbihzb3VyY2VSZWxhdGl2ZSwgXCJjb250ZW50LWNvbGxlY3Rpb25zLnRzXCIpLFxuICAgIH0pLFxuICAgIHRhbnN0YWNrU3RhcnQoe1xuICAgICAgc3JjRGlyZWN0b3J5OiBzb3VyY2VSZWxhdGl2ZSxcbiAgICAgIHBhZ2VzOiBbeyBwYXRoOiBcIi9cIiB9XSxcbiAgICAgIHByZXJlbmRlcjogeyBlbmFibGVkOiB0cnVlLCBjcmF3bExpbmtzOiB0cnVlIH0sXG4gICAgICBzaXRlbWFwOiBjb25maWcuc2l0ZVxuICAgICAgICA/IHsgZW5hYmxlZDogdHJ1ZSwgaG9zdDogY29uZmlnLnNpdGUgfVxuICAgICAgICA6IHsgZW5hYmxlZDogZmFsc2UgfSxcbiAgICAgIHJvdXRlcjoge1xuICAgICAgICB2aXJ0dWFsUm91dGVDb25maWc6IHJvb3RSb3V0ZShcIl9fcm9vdC50c3hcIiwgcm91dGVDaGlsZHJlbiksXG4gICAgICB9LFxuICAgIH0pLFxuICAgIHJlYWN0KCksXG4gICAgc3ZncigpLFxuICBdLFxufSlcbiJdfQ==
@@ -1,86 +0,0 @@
1
- /* eslint-disable */
2
-
3
- // @ts-nocheck
4
-
5
- // noinspection JSUnusedGlobalSymbols
6
-
7
- // This file was automatically generated by TanStack Router.
8
- // You should NOT make any changes in this file as it will be overwritten.
9
- // Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
10
-
11
- import { Route as rootRouteImport } from './routes/__root'
12
- import { Route as splatRouteImport } from './routes/$'
13
- import { Route as IndexRouteImport } from './../.livemark/routes/index'
14
-
15
- const splatRoute = splatRouteImport.update({
16
- id: '/$',
17
- path: '/$',
18
- getParentRoute: () => rootRouteImport,
19
- } as any)
20
- const IndexRoute = IndexRouteImport.update({
21
- id: '/',
22
- path: '/',
23
- getParentRoute: () => rootRouteImport,
24
- } as any)
25
-
26
- export interface FileRoutesByFullPath {
27
- '/': typeof IndexRoute
28
- '/$': typeof splatRoute
29
- }
30
- export interface FileRoutesByTo {
31
- '/': typeof IndexRoute
32
- '/$': typeof splatRoute
33
- }
34
- export interface FileRoutesById {
35
- __root__: typeof rootRouteImport
36
- '/': typeof IndexRoute
37
- '/$': typeof splatRoute
38
- }
39
- export interface FileRouteTypes {
40
- fileRoutesByFullPath: FileRoutesByFullPath
41
- fullPaths: '/' | '/$'
42
- fileRoutesByTo: FileRoutesByTo
43
- to: '/' | '/$'
44
- id: '__root__' | '/' | '/$'
45
- fileRoutesById: FileRoutesById
46
- }
47
- export interface RootRouteChildren {
48
- IndexRoute: typeof IndexRoute
49
- splatRoute: typeof splatRoute
50
- }
51
-
52
- declare module '@tanstack/react-router' {
53
- interface FileRoutesByPath {
54
- '/$': {
55
- id: '/$'
56
- path: '/$'
57
- fullPath: '/$'
58
- preLoaderRoute: typeof splatRouteImport
59
- parentRoute: typeof rootRouteImport
60
- }
61
- '/': {
62
- id: '/'
63
- path: '/'
64
- fullPath: '/'
65
- preLoaderRoute: typeof IndexRouteImport
66
- parentRoute: typeof rootRouteImport
67
- }
68
- }
69
- }
70
-
71
- const rootRouteChildren: RootRouteChildren = {
72
- IndexRoute: IndexRoute,
73
- splatRoute: splatRoute,
74
- }
75
- export const routeTree = rootRouteImport
76
- ._addFileChildren(rootRouteChildren)
77
- ._addFileTypes<FileRouteTypes>()
78
-
79
- import type { getRouter } from './router.tsx'
80
- import type { createStart } from '@tanstack/react-start'
81
- declare module '@tanstack/react-start' {
82
- interface Register {
83
- ssr: true
84
- router: Awaited<ReturnType<typeof getRouter>>
85
- }
86
- }