├── .nojekyll
├── docs
├── .nojekyll
├── .vitepress
│ ├── cache
│ │ └── deps
│ │ │ ├── package.json
│ │ │ ├── vue.js.map
│ │ │ ├── vitepress___@vueuse_core.js.map
│ │ │ ├── _metadata.json
│ │ │ ├── vue.js
│ │ │ ├── @theme_index.js
│ │ │ ├── vitepress___@vueuse_core.js
│ │ │ └── @theme_index.js.map
│ └── config.mts
├── figs
│ ├── boundary.png
│ ├── causes.png
│ ├── calibration.png
│ └── uncertainty.png
├── index.html
├── index.md
├── api-examples.md
├── markdown-examples.md
└── README.md
├── logo.png
├── favicon.ico
├── figs
├── boundary.png
├── causes.png
├── calibration.png
└── uncertainty.png
├── pages
└── docs
│ └── assets
│ ├── images
│ └── favicon.png
│ └── css
│ └── main.css
├── package.json
├── _coverpage.md
├── _navbar.md
├── utils
├── lib
│ ├── checkBox.js
│ ├── highlight-es6.js
│ └── highlight-node.js
├── dev.js
└── build.js
├── index.html
└── README.md
/.nojekyll:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.nojekyll:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.vitepress/cache/deps/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "module"
3 | }
4 |
--------------------------------------------------------------------------------
/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmourWaltz/Reliable-LLM/HEAD/logo.png
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmourWaltz/Reliable-LLM/HEAD/favicon.ico
--------------------------------------------------------------------------------
/figs/boundary.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmourWaltz/Reliable-LLM/HEAD/figs/boundary.png
--------------------------------------------------------------------------------
/figs/causes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmourWaltz/Reliable-LLM/HEAD/figs/causes.png
--------------------------------------------------------------------------------
/docs/figs/boundary.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmourWaltz/Reliable-LLM/HEAD/docs/figs/boundary.png
--------------------------------------------------------------------------------
/docs/figs/causes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmourWaltz/Reliable-LLM/HEAD/docs/figs/causes.png
--------------------------------------------------------------------------------
/figs/calibration.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmourWaltz/Reliable-LLM/HEAD/figs/calibration.png
--------------------------------------------------------------------------------
/figs/uncertainty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmourWaltz/Reliable-LLM/HEAD/figs/uncertainty.png
--------------------------------------------------------------------------------
/docs/figs/calibration.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmourWaltz/Reliable-LLM/HEAD/docs/figs/calibration.png
--------------------------------------------------------------------------------
/docs/figs/uncertainty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmourWaltz/Reliable-LLM/HEAD/docs/figs/uncertainty.png
--------------------------------------------------------------------------------
/pages/docs/assets/images/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmourWaltz/Reliable-LLM/HEAD/pages/docs/assets/images/favicon.png
--------------------------------------------------------------------------------
/docs/.vitepress/cache/deps/vue.js.map:
--------------------------------------------------------------------------------
1 | {
2 | "version": 3,
3 | "sources": [],
4 | "sourcesContent": [],
5 | "mappings": "",
6 | "names": []
7 | }
8 |
--------------------------------------------------------------------------------
/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map:
--------------------------------------------------------------------------------
1 | {
2 | "version": 3,
3 | "sources": [],
4 | "sourcesContent": [],
5 | "mappings": "",
6 | "names": []
7 | }
8 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "scripts": {
3 | "docs:dev": "vitepress dev docs",
4 | "docs:build": "vitepress build docs",
5 | "docs:preview": "vitepress preview docs"
6 | }
7 | }
--------------------------------------------------------------------------------
/_coverpage.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # Reliable LLM
4 |
5 | > 📚 Unity of Perception and Expression of Reliable LLMs. 大模型的“知行合一”
6 |
7 | [GitHub](https://github.com/AmourWaltz/Reliable-LLM/)
8 | [Get Started](/README.md)
--------------------------------------------------------------------------------
/_navbar.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | * Mine
4 | * [Website](https://amourwaltz.github.io/)
5 | * [Google Scholar](https://scholar.google.com/citations?user=S0BbF6wAAAAJ&hl=zh-CN)
6 |
7 | * Links
8 | * [Github](https://github.com/AmourWaltz/Reliable-LLM)
9 | * [知乎](https://www.zhihu.com/column/c_1611507872445280256)
--------------------------------------------------------------------------------
/utils/lib/checkBox.js:
--------------------------------------------------------------------------------
1 | const stream = process.stderr;
2 | const readline = require('readline');
3 |
4 | module.exports = function (text, isComplete) {
5 | if (isComplete) {
6 | readline.cursorTo(stream, 0);
7 | readline.clearLine(stream, 0);
8 | stream.write(`✔ ${text}\n`);
9 | } else {
10 | stream.write(`◻ ${text}`);
11 | }
12 | };
--------------------------------------------------------------------------------
/docs/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Document
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/docs/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | # https://vitepress.dev/reference/default-theme-home-page
3 | layout: home
4 |
5 | hero:
6 | name: "Reliable-LLM"
7 | text: "A VitePress Site"
8 | tagline: My great project tagline
9 | actions:
10 | - theme: brand
11 | text: Markdown Examples
12 | link: /README
13 | - theme: alt
14 | text: API Examples
15 | link: /api-examples
16 |
17 | features:
18 | - title: Feature A
19 | details: Lorem ipsum dolor sit amet, consectetur adipiscing elit
20 | - title: Feature B
21 | details: Lorem ipsum dolor sit amet, consectetur adipiscing elit
22 | - title: Feature C
23 | details: Lorem ipsum dolor sit amet, consectetur adipiscing elit
24 | ---
25 |
26 |
--------------------------------------------------------------------------------
/docs/.vitepress/config.mts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vitepress'
2 |
3 | // https://vitepress.dev/reference/site-config
4 | export default defineConfig({
5 | title: "Reliable-LLM",
6 | description: "A VitePress Site",
7 | themeConfig: {
8 | // https://vitepress.dev/reference/default-theme-config
9 | nav: [
10 | { text: 'Home', link: '/' },
11 | { text: 'Examples', link: '/markdown-examples' }
12 | ],
13 |
14 | sidebar: [
15 | {
16 | text: 'Examples',
17 | items: [
18 | { text: 'Markdown Examples', link: '/markdown-examples' },
19 | { text: 'Runtime API Examples', link: '/api-examples' }
20 | ]
21 | }
22 | ],
23 |
24 | socialLinks: [
25 | { icon: 'github', link: 'https://github.com/vuejs/vitepress' }
26 | ]
27 | }
28 | })
29 |
--------------------------------------------------------------------------------
/utils/dev.js:
--------------------------------------------------------------------------------
1 | import {marked} from './lib/marked-es6.js';
2 | import {hljs} from './lib/highlight-es6.js';
3 |
4 | marked.setOptions({
5 | langPrefix: '',
6 | highlight: function(code) {
7 | return hljs.highlightAuto(code).value;
8 | },
9 | });
10 |
11 | (async function() {
12 |
13 | // Read url for requested page
14 | const page = location.search.split('?')[1];
15 |
16 | // Try to load pages's markdown, or index if none requested
17 | let response = await fetch(`./pages/${page || 'index'}.md`, {method: 'GET'});
18 |
19 | // If not found, fallback to loading index
20 | if (!response.ok) response = await fetch(`./pages/index.md`, {method: 'GET'});
21 |
22 | // Get text from response
23 | const text = await response.text();
24 |
25 | // Replace this page's content with the converted markdown to html
26 | document.body.innerHTML = marked(text);
27 | })();
--------------------------------------------------------------------------------
/docs/api-examples.md:
--------------------------------------------------------------------------------
1 | ---
2 | outline: deep
3 | ---
4 |
5 | # Runtime API Examples
6 |
7 | This page demonstrates usage of some of the runtime APIs provided by VitePress.
8 |
9 | The main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:
10 |
11 | ```md
12 |
17 |
18 | ## Results
19 |
20 | ### Theme Data
21 | {{ theme }}
22 |
23 | ### Page Data
24 | {{ page }}
25 |
26 | ### Page Frontmatter
27 | {{ frontmatter }}
28 | ```
29 |
30 |
35 |
36 | ## Results
37 |
38 | ### Theme Data
39 | {{ theme }}
40 |
41 | ### Page Data
42 | {{ page }}
43 |
44 | ### Page Frontmatter
45 | {{ frontmatter }}
46 |
47 | ## More
48 |
49 | Check out the documentation for the [full list of runtime APIs](https://vitepress.dev/reference/runtime-api#usedata).
50 |
--------------------------------------------------------------------------------
/docs/.vitepress/cache/deps/_metadata.json:
--------------------------------------------------------------------------------
1 | {
2 | "hash": "d633c331",
3 | "configHash": "e58dbd71",
4 | "lockfileHash": "bdace88b",
5 | "browserHash": "31e30f95",
6 | "optimized": {
7 | "vue": {
8 | "src": "../../../../../../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
9 | "file": "vue.js",
10 | "fileHash": "4dfb3674",
11 | "needsInterop": false
12 | },
13 | "vitepress > @vue/devtools-api": {
14 | "src": "../../../../../../../../../node_modules/@vue/devtools-api/dist/index.js",
15 | "file": "vitepress___@vue_devtools-api.js",
16 | "fileHash": "3f6c78e8",
17 | "needsInterop": false
18 | },
19 | "vitepress > @vueuse/core": {
20 | "src": "../../../../../../../../../node_modules/@vueuse/core/index.mjs",
21 | "file": "vitepress___@vueuse_core.js",
22 | "fileHash": "e5051641",
23 | "needsInterop": false
24 | },
25 | "@theme/index": {
26 | "src": "../../../../../../../../../node_modules/vitepress/dist/client/theme-default/index.js",
27 | "file": "@theme_index.js",
28 | "fileHash": "ab54f18b",
29 | "needsInterop": false
30 | }
31 | },
32 | "chunks": {
33 | "chunk-VYSO6BRL": {
34 | "file": "chunk-VYSO6BRL.js"
35 | },
36 | "chunk-RDWLDEI2": {
37 | "file": "chunk-RDWLDEI2.js"
38 | }
39 | }
40 | }
--------------------------------------------------------------------------------
/docs/markdown-examples.md:
--------------------------------------------------------------------------------
1 | # Markdown Extension Examples
2 |
3 | This page demonstrates some of the built-in markdown extensions provided by VitePress.
4 |
5 | ## Syntax Highlighting
6 |
7 | VitePress provides Syntax Highlighting powered by [Shiki](https://github.com/shikijs/shiki), with additional features like line-highlighting:
8 |
9 | **Input**
10 |
11 | ````md
12 | ```js{4}
13 | export default {
14 | data () {
15 | return {
16 | msg: 'Highlighted!'
17 | }
18 | }
19 | }
20 | ```
21 | ````
22 |
23 | **Output**
24 |
25 | ```js{4}
26 | export default {
27 | data () {
28 | return {
29 | msg: 'Highlighted!'
30 | }
31 | }
32 | }
33 | ```
34 |
35 | ## Custom Containers
36 |
37 | **Input**
38 |
39 | ```md
40 | ::: info
41 | This is an info box.
42 | :::
43 |
44 | ::: tip
45 | This is a tip.
46 | :::
47 |
48 | ::: warning
49 | This is a warning.
50 | :::
51 |
52 | ::: danger
53 | This is a dangerous warning.
54 | :::
55 |
56 | ::: details
57 | This is a details block.
58 | :::
59 | ```
60 |
61 | **Output**
62 |
63 | ::: info
64 | This is an info box.
65 | :::
66 |
67 | ::: tip
68 | This is a tip.
69 | :::
70 |
71 | ::: warning
72 | This is a warning.
73 | :::
74 |
75 | ::: danger
76 | This is a dangerous warning.
77 | :::
78 |
79 | ::: details
80 | This is a details block.
81 | :::
82 |
83 | ## More
84 |
85 | Check out the documentation for the [full list of markdown extensions](https://vitepress.dev/guide/markdown).
86 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Reliable LLM
6 |
7 |
8 |
9 |
10 |
11 |
13 |
20 |
21 |
22 |
23 |
24 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/utils/build.js:
--------------------------------------------------------------------------------
1 | const INDEX = `${__dirname}/../index.html`;
2 | const PAGES = `${__dirname}/../page2/docs/`;
3 | const BUILD = `${__dirname}/../page2/pages/`;
4 |
5 | const fs = require('fs');
6 | const marked = require('./lib/marked-node');
7 | const highlight = require('./lib/highlight-node');
8 | const checkBox = require('./lib/checkBox');
9 |
10 | marked.setOptions({
11 | langPrefix: '',
12 | highlight: function(code) {
13 | return highlight.highlightAuto(code).value;
14 | },
15 | });
16 |
17 | // Get index.html text
18 | const index = fs.readFileSync(INDEX, 'utf8');
19 |
20 | // scrape pages folder for markdown files
21 | const markdown = fs.readdirSync(PAGES);
22 | markdown.forEach(file => {
23 | checkBox(`building ${file}...`);
24 |
25 | // Get markdown text
26 | const markdownText = fs.readFileSync(PAGES + file, 'utf8');
27 |
28 | // Convert markdown to html
29 | const content = marked(markdownText);
30 |
31 | // Replace index dev script with page content
32 | let output = index.replace('', content);
33 |
34 | // Replace title with content of first tag
35 | const newTitle = output.match(/>(.*?)<\/h1>/)[1] || null;
36 | if (newTitle) output = output.replace(/(.*?)<\/title>/, `${newTitle}`);
37 |
38 | // Replace 'docs/assets' links with 'assets'
39 | output = output.replace(/docs\/assets/g, 'assets');
40 |
41 | // Replace local '?' dev links with built '.html'
42 | output = output.replace(/href="\?(.*?)"/g, 'href="$1.html"')
43 |
44 | // Output built html to build folder
45 | const outputFile = file.replace('.md', '.html');
46 | fs.writeFileSync(BUILD + outputFile, output);
47 |
48 | checkBox(`${outputFile} built`, true);
49 | });
--------------------------------------------------------------------------------
/pages/docs/assets/css/main.css:
--------------------------------------------------------------------------------
1 | /* Typography */
2 |
3 | @import url('https://fonts.googleapis.com/css?family=Heebo:400,500|Lora:400,400i,700,700i|Libre+Baskerville:400,400i');
4 |
5 | body {
6 | font-family: 'Lora', serif;
7 | }
8 |
9 | h1 {
10 | font-family: 'Lora', serif;
11 | }
12 |
13 | h2, h3, h4, h5, h6 {
14 | font-family: 'Lora', serif;
15 | }
16 |
17 |
18 | /* Reset */
19 |
20 | * {
21 | box-sizing: border-box;
22 | }
23 |
24 | body, html {
25 | -webkit-font-smoothing: antialiased;
26 | -moz-osx-font-smoothing: grayscale;
27 | overflow-x: hidden;
28 | height: 100%;
29 | }
30 |
31 | body, button, p, ul {
32 | margin: 0;
33 | padding: 0;
34 | }
35 |
36 | button, select {
37 | border: none;
38 | outline: none;
39 | background: none;
40 | font-family: inherit;
41 | }
42 |
43 | a, button, input, select, textarea {
44 | -webkit-tap-highlight-color: transparent;
45 | }
46 |
47 | :root {
48 | overflow-x: hidden;
49 | height: 100%;
50 | }
51 |
52 |
53 | /* Styling */
54 |
55 | body {
56 | font-size: 20px;
57 | line-height: 1.6em;
58 | letter-spacing: -0.005em;
59 | color: rgba(0, 0, 0, 0.84);
60 | font-weight: normal;
61 | padding-bottom: 100px;
62 | }
63 |
64 | body > * {
65 | width: 100%;
66 | max-width: 740px;
67 | padding: 0px 20px;
68 | margin-left: auto;
69 | margin-right: auto;
70 | }
71 |
72 | h1 {
73 | font-size: 40px;
74 | letter-spacing: -0.02em;
75 | line-height: 1.1em;
76 | margin: 50px auto 0px;
77 | font-weight: bold;
78 | }
79 |
80 | h2, h3, h4, h5, h6 {
81 | letter-spacing: -0.01em;
82 | line-height: 1.3em;
83 | font-weight: bold;
84 | }
85 |
86 | h2 {
87 | font-size: 34px;
88 | margin: 60px auto 0px;
89 | }
90 |
91 | h3 {
92 | font-size: 26px;
93 | margin: 40px auto 0px;
94 | color: rgba(0,0,0,.5);
95 | font-weight: 400;
96 | }
97 |
98 | h1 + h3 {
99 | margin-top: 10px;
100 | }
101 |
102 | h4 {
103 | font-size: 19px;
104 | }
105 |
106 | h5 {
107 | font-size: 16px;
108 | }
109 |
110 | h6 {
111 | font-size: 13px;
112 | }
113 |
114 | p {
115 | margin-top: 30px;
116 | }
117 |
118 | li > p:first-of-type {
119 | margin-top: 0;
120 | }
121 |
122 | h2 + p {
123 | margin-top: 20px;
124 | }
125 |
126 | img {
127 | width: 100%;
128 | margin: 10px 0px;
129 | }
130 |
131 | img + em {
132 | font-size: 15px;
133 | display: block;
134 | text-align: center;
135 | line-height: 1em;
136 | }
137 |
138 | a {
139 | color: inherit;
140 | }
141 |
142 | ul {
143 | margin-top: 30px;
144 | }
145 |
146 | li > ul {
147 | margin-top: 0px;
148 | }
149 |
150 | li {
151 | margin-left: 30px;
152 | margin-top: 10px;
153 | }
154 |
155 | body > iframe {
156 | display: block;
157 | margin-top: 40px;
158 | }
159 |
160 | video {
161 | width: 100%;
162 | }
163 |
164 | /* Code */
165 |
166 | code, pre {
167 | font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier, monospace;
168 | font-size: 14px;
169 | line-height: 1.4em;
170 | }
171 |
172 | pre {
173 | margin: 30px auto 0px;
174 | }
175 |
176 | code {
177 | background: #343538;
178 | color: #f8f8f2;
179 | border-radius: 3px;
180 | }
181 |
182 | pre > code {
183 | width: 100%;
184 | display: inline-block;
185 | padding: 20px !important;
186 | }
187 |
188 | :not(pre) > code {
189 | padding: 4px 6px;
190 | }
191 |
192 | blockquote {
193 | border-left: 3px solid #4c4c4c;
194 | font-style: italic;
195 | }
196 |
197 | /* Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/ */
198 |
199 | .hljs {
200 | display: block;
201 | overflow-x: auto;
202 | padding: 0.5em;
203 | background: #343538;
204 | }
205 |
206 | .hljs,
207 | .hljs-tag,
208 | .hljs-subst {
209 | color: #f8f8f2;
210 | }
211 |
212 | .hljs-strong,
213 | .hljs-emphasis {
214 | color: #a8a8a2;
215 | }
216 |
217 | .hljs-bullet,
218 | .hljs-quote,
219 | .hljs-number,
220 | .hljs-regexp,
221 | .hljs-literal,
222 | .hljs-link {
223 | color: #ae81ff;
224 | }
225 |
226 | .hljs-code,
227 | .hljs-title,
228 | .hljs-section,
229 | .hljs-selector-class {
230 | color: #a6e22e;
231 | }
232 |
233 | .hljs-strong {
234 | font-weight: bold;
235 | }
236 |
237 | .hljs-emphasis {
238 | font-style: italic;
239 | }
240 |
241 | .hljs-keyword,
242 | .hljs-selector-tag,
243 | .hljs-name,
244 | .hljs-attr {
245 | color: #f92672;
246 | }
247 |
248 | .hljs-symbol,
249 | .hljs-attribute {
250 | color: #66d9ef;
251 | }
252 |
253 | .hljs-params,
254 | .hljs-class .hljs-title {
255 | color: #f8f8f2;
256 | }
257 |
258 | .hljs-string,
259 | .hljs-type,
260 | .hljs-built_in,
261 | .hljs-builtin-name,
262 | .hljs-selector-id,
263 | .hljs-selector-attr,
264 | .hljs-selector-pseudo,
265 | .hljs-addition,
266 | .hljs-variable,
267 | .hljs-template-variable {
268 | color: #e6db74;
269 | }
270 |
271 | .hljs-comment,
272 | .hljs-deletion,
273 | .hljs-meta {
274 | color: #75715e;
275 | }
--------------------------------------------------------------------------------
/docs/.vitepress/cache/deps/vue.js:
--------------------------------------------------------------------------------
1 | import {
2 | BaseTransition,
3 | BaseTransitionPropsValidators,
4 | Comment,
5 | DeprecationTypes,
6 | EffectScope,
7 | ErrorCodes,
8 | ErrorTypeStrings,
9 | Fragment,
10 | KeepAlive,
11 | ReactiveEffect,
12 | Static,
13 | Suspense,
14 | Teleport,
15 | Text,
16 | TrackOpTypes,
17 | Transition,
18 | TransitionGroup,
19 | TriggerOpTypes,
20 | VueElement,
21 | assertNumber,
22 | callWithAsyncErrorHandling,
23 | callWithErrorHandling,
24 | camelize,
25 | capitalize,
26 | cloneVNode,
27 | compatUtils,
28 | compile,
29 | computed,
30 | createApp,
31 | createBaseVNode,
32 | createBlock,
33 | createCommentVNode,
34 | createElementBlock,
35 | createHydrationRenderer,
36 | createPropsRestProxy,
37 | createRenderer,
38 | createSSRApp,
39 | createSlots,
40 | createStaticVNode,
41 | createTextVNode,
42 | createVNode,
43 | customRef,
44 | defineAsyncComponent,
45 | defineComponent,
46 | defineCustomElement,
47 | defineEmits,
48 | defineExpose,
49 | defineModel,
50 | defineOptions,
51 | defineProps,
52 | defineSSRCustomElement,
53 | defineSlots,
54 | devtools,
55 | effect,
56 | effectScope,
57 | getCurrentInstance,
58 | getCurrentScope,
59 | getCurrentWatcher,
60 | getTransitionRawChildren,
61 | guardReactiveProps,
62 | h,
63 | handleError,
64 | hasInjectionContext,
65 | hydrate,
66 | hydrateOnIdle,
67 | hydrateOnInteraction,
68 | hydrateOnMediaQuery,
69 | hydrateOnVisible,
70 | initCustomFormatter,
71 | initDirectivesForSSR,
72 | inject,
73 | isMemoSame,
74 | isProxy,
75 | isReactive,
76 | isReadonly,
77 | isRef,
78 | isRuntimeOnly,
79 | isShallow,
80 | isVNode,
81 | markRaw,
82 | mergeDefaults,
83 | mergeModels,
84 | mergeProps,
85 | nextTick,
86 | normalizeClass,
87 | normalizeProps,
88 | normalizeStyle,
89 | onActivated,
90 | onBeforeMount,
91 | onBeforeUnmount,
92 | onBeforeUpdate,
93 | onDeactivated,
94 | onErrorCaptured,
95 | onMounted,
96 | onRenderTracked,
97 | onRenderTriggered,
98 | onScopeDispose,
99 | onServerPrefetch,
100 | onUnmounted,
101 | onUpdated,
102 | onWatcherCleanup,
103 | openBlock,
104 | popScopeId,
105 | provide,
106 | proxyRefs,
107 | pushScopeId,
108 | queuePostFlushCb,
109 | reactive,
110 | readonly,
111 | ref,
112 | registerRuntimeCompiler,
113 | render,
114 | renderList,
115 | renderSlot,
116 | resolveComponent,
117 | resolveDirective,
118 | resolveDynamicComponent,
119 | resolveFilter,
120 | resolveTransitionHooks,
121 | setBlockTracking,
122 | setDevtoolsHook,
123 | setTransitionHooks,
124 | shallowReactive,
125 | shallowReadonly,
126 | shallowRef,
127 | ssrContextKey,
128 | ssrUtils,
129 | stop,
130 | toDisplayString,
131 | toHandlerKey,
132 | toHandlers,
133 | toRaw,
134 | toRef,
135 | toRefs,
136 | toValue,
137 | transformVNodeArgs,
138 | triggerRef,
139 | unref,
140 | useAttrs,
141 | useCssModule,
142 | useCssVars,
143 | useHost,
144 | useId,
145 | useModel,
146 | useSSRContext,
147 | useShadowRoot,
148 | useSlots,
149 | useTemplateRef,
150 | useTransitionState,
151 | vModelCheckbox,
152 | vModelDynamic,
153 | vModelRadio,
154 | vModelSelect,
155 | vModelText,
156 | vShow,
157 | version,
158 | warn,
159 | watch,
160 | watchEffect,
161 | watchPostEffect,
162 | watchSyncEffect,
163 | withAsyncContext,
164 | withCtx,
165 | withDefaults,
166 | withDirectives,
167 | withKeys,
168 | withMemo,
169 | withModifiers,
170 | withScopeId
171 | } from "./chunk-RDWLDEI2.js";
172 | export {
173 | BaseTransition,
174 | BaseTransitionPropsValidators,
175 | Comment,
176 | DeprecationTypes,
177 | EffectScope,
178 | ErrorCodes,
179 | ErrorTypeStrings,
180 | Fragment,
181 | KeepAlive,
182 | ReactiveEffect,
183 | Static,
184 | Suspense,
185 | Teleport,
186 | Text,
187 | TrackOpTypes,
188 | Transition,
189 | TransitionGroup,
190 | TriggerOpTypes,
191 | VueElement,
192 | assertNumber,
193 | callWithAsyncErrorHandling,
194 | callWithErrorHandling,
195 | camelize,
196 | capitalize,
197 | cloneVNode,
198 | compatUtils,
199 | compile,
200 | computed,
201 | createApp,
202 | createBlock,
203 | createCommentVNode,
204 | createElementBlock,
205 | createBaseVNode as createElementVNode,
206 | createHydrationRenderer,
207 | createPropsRestProxy,
208 | createRenderer,
209 | createSSRApp,
210 | createSlots,
211 | createStaticVNode,
212 | createTextVNode,
213 | createVNode,
214 | customRef,
215 | defineAsyncComponent,
216 | defineComponent,
217 | defineCustomElement,
218 | defineEmits,
219 | defineExpose,
220 | defineModel,
221 | defineOptions,
222 | defineProps,
223 | defineSSRCustomElement,
224 | defineSlots,
225 | devtools,
226 | effect,
227 | effectScope,
228 | getCurrentInstance,
229 | getCurrentScope,
230 | getCurrentWatcher,
231 | getTransitionRawChildren,
232 | guardReactiveProps,
233 | h,
234 | handleError,
235 | hasInjectionContext,
236 | hydrate,
237 | hydrateOnIdle,
238 | hydrateOnInteraction,
239 | hydrateOnMediaQuery,
240 | hydrateOnVisible,
241 | initCustomFormatter,
242 | initDirectivesForSSR,
243 | inject,
244 | isMemoSame,
245 | isProxy,
246 | isReactive,
247 | isReadonly,
248 | isRef,
249 | isRuntimeOnly,
250 | isShallow,
251 | isVNode,
252 | markRaw,
253 | mergeDefaults,
254 | mergeModels,
255 | mergeProps,
256 | nextTick,
257 | normalizeClass,
258 | normalizeProps,
259 | normalizeStyle,
260 | onActivated,
261 | onBeforeMount,
262 | onBeforeUnmount,
263 | onBeforeUpdate,
264 | onDeactivated,
265 | onErrorCaptured,
266 | onMounted,
267 | onRenderTracked,
268 | onRenderTriggered,
269 | onScopeDispose,
270 | onServerPrefetch,
271 | onUnmounted,
272 | onUpdated,
273 | onWatcherCleanup,
274 | openBlock,
275 | popScopeId,
276 | provide,
277 | proxyRefs,
278 | pushScopeId,
279 | queuePostFlushCb,
280 | reactive,
281 | readonly,
282 | ref,
283 | registerRuntimeCompiler,
284 | render,
285 | renderList,
286 | renderSlot,
287 | resolveComponent,
288 | resolveDirective,
289 | resolveDynamicComponent,
290 | resolveFilter,
291 | resolveTransitionHooks,
292 | setBlockTracking,
293 | setDevtoolsHook,
294 | setTransitionHooks,
295 | shallowReactive,
296 | shallowReadonly,
297 | shallowRef,
298 | ssrContextKey,
299 | ssrUtils,
300 | stop,
301 | toDisplayString,
302 | toHandlerKey,
303 | toHandlers,
304 | toRaw,
305 | toRef,
306 | toRefs,
307 | toValue,
308 | transformVNodeArgs,
309 | triggerRef,
310 | unref,
311 | useAttrs,
312 | useCssModule,
313 | useCssVars,
314 | useHost,
315 | useId,
316 | useModel,
317 | useSSRContext,
318 | useShadowRoot,
319 | useSlots,
320 | useTemplateRef,
321 | useTransitionState,
322 | vModelCheckbox,
323 | vModelDynamic,
324 | vModelRadio,
325 | vModelSelect,
326 | vModelText,
327 | vShow,
328 | version,
329 | warn,
330 | watch,
331 | watchEffect,
332 | watchPostEffect,
333 | watchSyncEffect,
334 | withAsyncContext,
335 | withCtx,
336 | withDefaults,
337 | withDirectives,
338 | withKeys,
339 | withMemo,
340 | withModifiers,
341 | withScopeId
342 | };
343 | //# sourceMappingURL=vue.js.map
344 |
--------------------------------------------------------------------------------
/docs/.vitepress/cache/deps/@theme_index.js:
--------------------------------------------------------------------------------
1 | import {
2 | useMediaQuery
3 | } from "./chunk-VYSO6BRL.js";
4 | import {
5 | computed,
6 | ref,
7 | shallowRef,
8 | watch
9 | } from "./chunk-RDWLDEI2.js";
10 |
11 | // ../../../../../node_modules/vitepress/dist/client/theme-default/index.js
12 | import "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/styles/fonts.css";
13 |
14 | // ../../../../../node_modules/vitepress/dist/client/theme-default/without-fonts.js
15 | import "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/styles/vars.css";
16 | import "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/styles/base.css";
17 | import "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/styles/icons.css";
18 | import "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/styles/utils.css";
19 | import "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/styles/components/custom-block.css";
20 | import "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code.css";
21 | import "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code-group.css";
22 | import "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/styles/components/vp-doc.css";
23 | import "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/styles/components/vp-sponsor.css";
24 | import VPBadge from "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/components/VPBadge.vue";
25 | import Layout from "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/Layout.vue";
26 | import { default as default2 } from "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/components/VPBadge.vue";
27 | import { default as default3 } from "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/components/VPImage.vue";
28 | import { default as default4 } from "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/components/VPButton.vue";
29 | import { default as default5 } from "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/components/VPHomeContent.vue";
30 | import { default as default6 } from "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/components/VPHomeHero.vue";
31 | import { default as default7 } from "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/components/VPHomeFeatures.vue";
32 | import { default as default8 } from "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/components/VPHomeSponsors.vue";
33 | import { default as default9 } from "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/components/VPDocAsideSponsors.vue";
34 | import { default as default10 } from "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/components/VPSponsors.vue";
35 | import { default as default11 } from "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/components/VPTeamPage.vue";
36 | import { default as default12 } from "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageTitle.vue";
37 | import { default as default13 } from "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageSection.vue";
38 | import { default as default14 } from "/Users/collcertaye/node_modules/vitepress/dist/client/theme-default/components/VPTeamMembers.vue";
39 |
40 | // ../../../../../node_modules/vitepress/dist/client/theme-default/support/utils.js
41 | import { withBase } from "vitepress";
42 |
43 | // ../../../../../node_modules/vitepress/dist/client/theme-default/composables/data.js
44 | import { useData as useData$ } from "vitepress";
45 | var useData = useData$;
46 |
47 | // ../../../../../node_modules/vitepress/dist/client/theme-default/support/utils.js
48 | function ensureStartingSlash(path) {
49 | return /^\//.test(path) ? path : `/${path}`;
50 | }
51 |
52 | // ../../../../../node_modules/vitepress/dist/client/theme-default/support/sidebar.js
53 | function getSidebar(_sidebar, path) {
54 | if (Array.isArray(_sidebar))
55 | return addBase(_sidebar);
56 | if (_sidebar == null)
57 | return [];
58 | path = ensureStartingSlash(path);
59 | const dir = Object.keys(_sidebar).sort((a, b) => {
60 | return b.split("/").length - a.split("/").length;
61 | }).find((dir2) => {
62 | return path.startsWith(ensureStartingSlash(dir2));
63 | });
64 | const sidebar = dir ? _sidebar[dir] : [];
65 | return Array.isArray(sidebar) ? addBase(sidebar) : addBase(sidebar.items, sidebar.base);
66 | }
67 | function getSidebarGroups(sidebar) {
68 | const groups = [];
69 | let lastGroupIndex = 0;
70 | for (const index in sidebar) {
71 | const item = sidebar[index];
72 | if (item.items) {
73 | lastGroupIndex = groups.push(item);
74 | continue;
75 | }
76 | if (!groups[lastGroupIndex]) {
77 | groups.push({ items: [] });
78 | }
79 | groups[lastGroupIndex].items.push(item);
80 | }
81 | return groups;
82 | }
83 | function addBase(items, _base) {
84 | return [...items].map((_item) => {
85 | const item = { ..._item };
86 | const base = item.base || _base;
87 | if (base && item.link)
88 | item.link = base + item.link;
89 | if (item.items)
90 | item.items = addBase(item.items, base);
91 | return item;
92 | });
93 | }
94 |
95 | // ../../../../../node_modules/vitepress/dist/client/theme-default/composables/sidebar.js
96 | function useSidebar() {
97 | const { frontmatter, page, theme: theme2 } = useData();
98 | const is960 = useMediaQuery("(min-width: 960px)");
99 | const isOpen = ref(false);
100 | const _sidebar = computed(() => {
101 | const sidebarConfig = theme2.value.sidebar;
102 | const relativePath = page.value.relativePath;
103 | return sidebarConfig ? getSidebar(sidebarConfig, relativePath) : [];
104 | });
105 | const sidebar = ref(_sidebar.value);
106 | watch(_sidebar, (next, prev) => {
107 | if (JSON.stringify(next) !== JSON.stringify(prev))
108 | sidebar.value = _sidebar.value;
109 | });
110 | const hasSidebar = computed(() => {
111 | return frontmatter.value.sidebar !== false && sidebar.value.length > 0 && frontmatter.value.layout !== "home";
112 | });
113 | const leftAside = computed(() => {
114 | if (hasAside)
115 | return frontmatter.value.aside == null ? theme2.value.aside === "left" : frontmatter.value.aside === "left";
116 | return false;
117 | });
118 | const hasAside = computed(() => {
119 | if (frontmatter.value.layout === "home")
120 | return false;
121 | if (frontmatter.value.aside != null)
122 | return !!frontmatter.value.aside;
123 | return theme2.value.aside !== false;
124 | });
125 | const isSidebarEnabled = computed(() => hasSidebar.value && is960.value);
126 | const sidebarGroups = computed(() => {
127 | return hasSidebar.value ? getSidebarGroups(sidebar.value) : [];
128 | });
129 | function open() {
130 | isOpen.value = true;
131 | }
132 | function close() {
133 | isOpen.value = false;
134 | }
135 | function toggle() {
136 | isOpen.value ? close() : open();
137 | }
138 | return {
139 | isOpen,
140 | sidebar,
141 | sidebarGroups,
142 | hasSidebar,
143 | hasAside,
144 | leftAside,
145 | isSidebarEnabled,
146 | open,
147 | close,
148 | toggle
149 | };
150 | }
151 |
152 | // ../../../../../node_modules/vitepress/dist/client/theme-default/composables/local-nav.js
153 | import { onContentUpdated } from "vitepress";
154 |
155 | // ../../../../../node_modules/vitepress/dist/client/theme-default/composables/outline.js
156 | import { getScrollOffset } from "vitepress";
157 | var resolvedHeaders = [];
158 | function getHeaders(range) {
159 | const headers = [
160 | ...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")
161 | ].filter((el) => el.id && el.hasChildNodes()).map((el) => {
162 | const level = Number(el.tagName[1]);
163 | return {
164 | element: el,
165 | title: serializeHeader(el),
166 | link: "#" + el.id,
167 | level
168 | };
169 | });
170 | return resolveHeaders(headers, range);
171 | }
172 | function serializeHeader(h) {
173 | let ret = "";
174 | for (const node of h.childNodes) {
175 | if (node.nodeType === 1) {
176 | if (node.classList.contains("VPBadge") || node.classList.contains("header-anchor") || node.classList.contains("ignore-header")) {
177 | continue;
178 | }
179 | ret += node.textContent;
180 | } else if (node.nodeType === 3) {
181 | ret += node.textContent;
182 | }
183 | }
184 | return ret.trim();
185 | }
186 | function resolveHeaders(headers, range) {
187 | if (range === false) {
188 | return [];
189 | }
190 | const levelsRange = (typeof range === "object" && !Array.isArray(range) ? range.level : range) || 2;
191 | const [high, low] = typeof levelsRange === "number" ? [levelsRange, levelsRange] : levelsRange === "deep" ? [2, 6] : levelsRange;
192 | headers = headers.filter((h) => h.level >= high && h.level <= low);
193 | resolvedHeaders.length = 0;
194 | for (const { element, link } of headers) {
195 | resolvedHeaders.push({ element, link });
196 | }
197 | const ret = [];
198 | outer: for (let i = 0; i < headers.length; i++) {
199 | const cur = headers[i];
200 | if (i === 0) {
201 | ret.push(cur);
202 | } else {
203 | for (let j = i - 1; j >= 0; j--) {
204 | const prev = headers[j];
205 | if (prev.level < cur.level) {
206 | ;
207 | (prev.children || (prev.children = [])).push(cur);
208 | continue outer;
209 | }
210 | }
211 | ret.push(cur);
212 | }
213 | }
214 | return ret;
215 | }
216 |
217 | // ../../../../../node_modules/vitepress/dist/client/theme-default/composables/local-nav.js
218 | function useLocalNav() {
219 | const { theme: theme2, frontmatter } = useData();
220 | const headers = shallowRef([]);
221 | const hasLocalNav = computed(() => {
222 | return headers.value.length > 0;
223 | });
224 | onContentUpdated(() => {
225 | headers.value = getHeaders(frontmatter.value.outline ?? theme2.value.outline);
226 | });
227 | return {
228 | headers,
229 | hasLocalNav
230 | };
231 | }
232 |
233 | // ../../../../../node_modules/vitepress/dist/client/theme-default/without-fonts.js
234 | var theme = {
235 | Layout,
236 | enhanceApp: ({ app }) => {
237 | app.component("Badge", VPBadge);
238 | }
239 | };
240 | var without_fonts_default = theme;
241 | export {
242 | default2 as VPBadge,
243 | default4 as VPButton,
244 | default9 as VPDocAsideSponsors,
245 | default5 as VPHomeContent,
246 | default7 as VPHomeFeatures,
247 | default6 as VPHomeHero,
248 | default8 as VPHomeSponsors,
249 | default3 as VPImage,
250 | default10 as VPSponsors,
251 | default14 as VPTeamMembers,
252 | default11 as VPTeamPage,
253 | default13 as VPTeamPageSection,
254 | default12 as VPTeamPageTitle,
255 | without_fonts_default as default,
256 | useLocalNav,
257 | useSidebar
258 | };
259 | //# sourceMappingURL=@theme_index.js.map
260 |
--------------------------------------------------------------------------------
/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js:
--------------------------------------------------------------------------------
1 | import {
2 | DefaultMagicKeysAliasMap,
3 | StorageSerializers,
4 | TransitionPresets,
5 | assert,
6 | breakpointsAntDesign,
7 | breakpointsBootstrapV5,
8 | breakpointsMasterCss,
9 | breakpointsPrimeFlex,
10 | breakpointsQuasar,
11 | breakpointsSematic,
12 | breakpointsTailwind,
13 | breakpointsVuetify,
14 | breakpointsVuetifyV2,
15 | breakpointsVuetifyV3,
16 | bypassFilter,
17 | camelize,
18 | clamp,
19 | cloneFnJSON,
20 | computedAsync,
21 | computedEager,
22 | computedInject,
23 | computedWithControl,
24 | containsProp,
25 | controlledRef,
26 | createEventHook,
27 | createFetch,
28 | createFilterWrapper,
29 | createGlobalState,
30 | createInjectionState,
31 | createReusableTemplate,
32 | createSharedComposable,
33 | createSingletonPromise,
34 | createTemplatePromise,
35 | createUnrefFn,
36 | customStorageEventName,
37 | debounceFilter,
38 | defaultDocument,
39 | defaultLocation,
40 | defaultNavigator,
41 | defaultWindow,
42 | directiveHooks,
43 | executeTransition,
44 | extendRef,
45 | formatDate,
46 | formatTimeAgo,
47 | get,
48 | getLifeCycleTarget,
49 | getSSRHandler,
50 | hasOwn,
51 | hyphenate,
52 | identity,
53 | increaseWithUnit,
54 | injectLocal,
55 | invoke,
56 | isClient,
57 | isDef,
58 | isDefined,
59 | isIOS,
60 | isObject,
61 | isWorker,
62 | makeDestructurable,
63 | mapGamepadToXbox360Controller,
64 | noop,
65 | normalizeDate,
66 | notNullish,
67 | now,
68 | objectEntries,
69 | objectOmit,
70 | objectPick,
71 | onClickOutside,
72 | onKeyDown,
73 | onKeyPressed,
74 | onKeyStroke,
75 | onKeyUp,
76 | onLongPress,
77 | onStartTyping,
78 | pausableFilter,
79 | promiseTimeout,
80 | provideLocal,
81 | rand,
82 | reactify,
83 | reactifyObject,
84 | reactiveComputed,
85 | reactiveOmit,
86 | reactivePick,
87 | refAutoReset,
88 | refDebounced,
89 | refDefault,
90 | refThrottled,
91 | refWithControl,
92 | resolveRef,
93 | resolveUnref,
94 | set,
95 | setSSRHandler,
96 | syncRef,
97 | syncRefs,
98 | templateRef,
99 | throttleFilter,
100 | timestamp,
101 | toReactive,
102 | toRef,
103 | toRefs,
104 | toValue,
105 | tryOnBeforeMount,
106 | tryOnBeforeUnmount,
107 | tryOnMounted,
108 | tryOnScopeDispose,
109 | tryOnUnmounted,
110 | unrefElement,
111 | until,
112 | useActiveElement,
113 | useAnimate,
114 | useArrayDifference,
115 | useArrayEvery,
116 | useArrayFilter,
117 | useArrayFind,
118 | useArrayFindIndex,
119 | useArrayFindLast,
120 | useArrayIncludes,
121 | useArrayJoin,
122 | useArrayMap,
123 | useArrayReduce,
124 | useArraySome,
125 | useArrayUnique,
126 | useAsyncQueue,
127 | useAsyncState,
128 | useBase64,
129 | useBattery,
130 | useBluetooth,
131 | useBreakpoints,
132 | useBroadcastChannel,
133 | useBrowserLocation,
134 | useCached,
135 | useClipboard,
136 | useClipboardItems,
137 | useCloned,
138 | useColorMode,
139 | useConfirmDialog,
140 | useCounter,
141 | useCssVar,
142 | useCurrentElement,
143 | useCycleList,
144 | useDark,
145 | useDateFormat,
146 | useDebounceFn,
147 | useDebouncedRefHistory,
148 | useDeviceMotion,
149 | useDeviceOrientation,
150 | useDevicePixelRatio,
151 | useDevicesList,
152 | useDisplayMedia,
153 | useDocumentVisibility,
154 | useDraggable,
155 | useDropZone,
156 | useElementBounding,
157 | useElementByPoint,
158 | useElementHover,
159 | useElementSize,
160 | useElementVisibility,
161 | useEventBus,
162 | useEventListener,
163 | useEventSource,
164 | useEyeDropper,
165 | useFavicon,
166 | useFetch,
167 | useFileDialog,
168 | useFileSystemAccess,
169 | useFocus,
170 | useFocusWithin,
171 | useFps,
172 | useFullscreen,
173 | useGamepad,
174 | useGeolocation,
175 | useIdle,
176 | useImage,
177 | useInfiniteScroll,
178 | useIntersectionObserver,
179 | useInterval,
180 | useIntervalFn,
181 | useKeyModifier,
182 | useLastChanged,
183 | useLocalStorage,
184 | useMagicKeys,
185 | useManualRefHistory,
186 | useMediaControls,
187 | useMediaQuery,
188 | useMemoize,
189 | useMemory,
190 | useMounted,
191 | useMouse,
192 | useMouseInElement,
193 | useMousePressed,
194 | useMutationObserver,
195 | useNavigatorLanguage,
196 | useNetwork,
197 | useNow,
198 | useObjectUrl,
199 | useOffsetPagination,
200 | useOnline,
201 | usePageLeave,
202 | useParallax,
203 | useParentElement,
204 | usePerformanceObserver,
205 | usePermission,
206 | usePointer,
207 | usePointerLock,
208 | usePointerSwipe,
209 | usePreferredColorScheme,
210 | usePreferredContrast,
211 | usePreferredDark,
212 | usePreferredLanguages,
213 | usePreferredReducedMotion,
214 | usePrevious,
215 | useRafFn,
216 | useRefHistory,
217 | useResizeObserver,
218 | useScreenOrientation,
219 | useScreenSafeArea,
220 | useScriptTag,
221 | useScroll,
222 | useScrollLock,
223 | useSessionStorage,
224 | useShare,
225 | useSorted,
226 | useSpeechRecognition,
227 | useSpeechSynthesis,
228 | useStepper,
229 | useStorage,
230 | useStorageAsync,
231 | useStyleTag,
232 | useSupported,
233 | useSwipe,
234 | useTemplateRefsList,
235 | useTextDirection,
236 | useTextSelection,
237 | useTextareaAutosize,
238 | useThrottleFn,
239 | useThrottledRefHistory,
240 | useTimeAgo,
241 | useTimeout,
242 | useTimeoutFn,
243 | useTimeoutPoll,
244 | useTimestamp,
245 | useTitle,
246 | useToNumber,
247 | useToString,
248 | useToggle,
249 | useTransition,
250 | useUrlSearchParams,
251 | useUserMedia,
252 | useVModel,
253 | useVModels,
254 | useVibrate,
255 | useVirtualList,
256 | useWakeLock,
257 | useWebNotification,
258 | useWebSocket,
259 | useWebWorker,
260 | useWebWorkerFn,
261 | useWindowFocus,
262 | useWindowScroll,
263 | useWindowSize,
264 | watchArray,
265 | watchAtMost,
266 | watchDebounced,
267 | watchDeep,
268 | watchIgnorable,
269 | watchImmediate,
270 | watchOnce,
271 | watchPausable,
272 | watchThrottled,
273 | watchTriggerable,
274 | watchWithFilter,
275 | whenever
276 | } from "./chunk-VYSO6BRL.js";
277 | import "./chunk-RDWLDEI2.js";
278 | export {
279 | DefaultMagicKeysAliasMap,
280 | StorageSerializers,
281 | TransitionPresets,
282 | assert,
283 | computedAsync as asyncComputed,
284 | refAutoReset as autoResetRef,
285 | breakpointsAntDesign,
286 | breakpointsBootstrapV5,
287 | breakpointsMasterCss,
288 | breakpointsPrimeFlex,
289 | breakpointsQuasar,
290 | breakpointsSematic,
291 | breakpointsTailwind,
292 | breakpointsVuetify,
293 | breakpointsVuetifyV2,
294 | breakpointsVuetifyV3,
295 | bypassFilter,
296 | camelize,
297 | clamp,
298 | cloneFnJSON,
299 | computedAsync,
300 | computedEager,
301 | computedInject,
302 | computedWithControl,
303 | containsProp,
304 | computedWithControl as controlledComputed,
305 | controlledRef,
306 | createEventHook,
307 | createFetch,
308 | createFilterWrapper,
309 | createGlobalState,
310 | createInjectionState,
311 | reactify as createReactiveFn,
312 | createReusableTemplate,
313 | createSharedComposable,
314 | createSingletonPromise,
315 | createTemplatePromise,
316 | createUnrefFn,
317 | customStorageEventName,
318 | debounceFilter,
319 | refDebounced as debouncedRef,
320 | watchDebounced as debouncedWatch,
321 | defaultDocument,
322 | defaultLocation,
323 | defaultNavigator,
324 | defaultWindow,
325 | directiveHooks,
326 | computedEager as eagerComputed,
327 | executeTransition,
328 | extendRef,
329 | formatDate,
330 | formatTimeAgo,
331 | get,
332 | getLifeCycleTarget,
333 | getSSRHandler,
334 | hasOwn,
335 | hyphenate,
336 | identity,
337 | watchIgnorable as ignorableWatch,
338 | increaseWithUnit,
339 | injectLocal,
340 | invoke,
341 | isClient,
342 | isDef,
343 | isDefined,
344 | isIOS,
345 | isObject,
346 | isWorker,
347 | makeDestructurable,
348 | mapGamepadToXbox360Controller,
349 | noop,
350 | normalizeDate,
351 | notNullish,
352 | now,
353 | objectEntries,
354 | objectOmit,
355 | objectPick,
356 | onClickOutside,
357 | onKeyDown,
358 | onKeyPressed,
359 | onKeyStroke,
360 | onKeyUp,
361 | onLongPress,
362 | onStartTyping,
363 | pausableFilter,
364 | watchPausable as pausableWatch,
365 | promiseTimeout,
366 | provideLocal,
367 | rand,
368 | reactify,
369 | reactifyObject,
370 | reactiveComputed,
371 | reactiveOmit,
372 | reactivePick,
373 | refAutoReset,
374 | refDebounced,
375 | refDefault,
376 | refThrottled,
377 | refWithControl,
378 | resolveRef,
379 | resolveUnref,
380 | set,
381 | setSSRHandler,
382 | syncRef,
383 | syncRefs,
384 | templateRef,
385 | throttleFilter,
386 | refThrottled as throttledRef,
387 | watchThrottled as throttledWatch,
388 | timestamp,
389 | toReactive,
390 | toRef,
391 | toRefs,
392 | toValue,
393 | tryOnBeforeMount,
394 | tryOnBeforeUnmount,
395 | tryOnMounted,
396 | tryOnScopeDispose,
397 | tryOnUnmounted,
398 | unrefElement,
399 | until,
400 | useActiveElement,
401 | useAnimate,
402 | useArrayDifference,
403 | useArrayEvery,
404 | useArrayFilter,
405 | useArrayFind,
406 | useArrayFindIndex,
407 | useArrayFindLast,
408 | useArrayIncludes,
409 | useArrayJoin,
410 | useArrayMap,
411 | useArrayReduce,
412 | useArraySome,
413 | useArrayUnique,
414 | useAsyncQueue,
415 | useAsyncState,
416 | useBase64,
417 | useBattery,
418 | useBluetooth,
419 | useBreakpoints,
420 | useBroadcastChannel,
421 | useBrowserLocation,
422 | useCached,
423 | useClipboard,
424 | useClipboardItems,
425 | useCloned,
426 | useColorMode,
427 | useConfirmDialog,
428 | useCounter,
429 | useCssVar,
430 | useCurrentElement,
431 | useCycleList,
432 | useDark,
433 | useDateFormat,
434 | refDebounced as useDebounce,
435 | useDebounceFn,
436 | useDebouncedRefHistory,
437 | useDeviceMotion,
438 | useDeviceOrientation,
439 | useDevicePixelRatio,
440 | useDevicesList,
441 | useDisplayMedia,
442 | useDocumentVisibility,
443 | useDraggable,
444 | useDropZone,
445 | useElementBounding,
446 | useElementByPoint,
447 | useElementHover,
448 | useElementSize,
449 | useElementVisibility,
450 | useEventBus,
451 | useEventListener,
452 | useEventSource,
453 | useEyeDropper,
454 | useFavicon,
455 | useFetch,
456 | useFileDialog,
457 | useFileSystemAccess,
458 | useFocus,
459 | useFocusWithin,
460 | useFps,
461 | useFullscreen,
462 | useGamepad,
463 | useGeolocation,
464 | useIdle,
465 | useImage,
466 | useInfiniteScroll,
467 | useIntersectionObserver,
468 | useInterval,
469 | useIntervalFn,
470 | useKeyModifier,
471 | useLastChanged,
472 | useLocalStorage,
473 | useMagicKeys,
474 | useManualRefHistory,
475 | useMediaControls,
476 | useMediaQuery,
477 | useMemoize,
478 | useMemory,
479 | useMounted,
480 | useMouse,
481 | useMouseInElement,
482 | useMousePressed,
483 | useMutationObserver,
484 | useNavigatorLanguage,
485 | useNetwork,
486 | useNow,
487 | useObjectUrl,
488 | useOffsetPagination,
489 | useOnline,
490 | usePageLeave,
491 | useParallax,
492 | useParentElement,
493 | usePerformanceObserver,
494 | usePermission,
495 | usePointer,
496 | usePointerLock,
497 | usePointerSwipe,
498 | usePreferredColorScheme,
499 | usePreferredContrast,
500 | usePreferredDark,
501 | usePreferredLanguages,
502 | usePreferredReducedMotion,
503 | usePrevious,
504 | useRafFn,
505 | useRefHistory,
506 | useResizeObserver,
507 | useScreenOrientation,
508 | useScreenSafeArea,
509 | useScriptTag,
510 | useScroll,
511 | useScrollLock,
512 | useSessionStorage,
513 | useShare,
514 | useSorted,
515 | useSpeechRecognition,
516 | useSpeechSynthesis,
517 | useStepper,
518 | useStorage,
519 | useStorageAsync,
520 | useStyleTag,
521 | useSupported,
522 | useSwipe,
523 | useTemplateRefsList,
524 | useTextDirection,
525 | useTextSelection,
526 | useTextareaAutosize,
527 | refThrottled as useThrottle,
528 | useThrottleFn,
529 | useThrottledRefHistory,
530 | useTimeAgo,
531 | useTimeout,
532 | useTimeoutFn,
533 | useTimeoutPoll,
534 | useTimestamp,
535 | useTitle,
536 | useToNumber,
537 | useToString,
538 | useToggle,
539 | useTransition,
540 | useUrlSearchParams,
541 | useUserMedia,
542 | useVModel,
543 | useVModels,
544 | useVibrate,
545 | useVirtualList,
546 | useWakeLock,
547 | useWebNotification,
548 | useWebSocket,
549 | useWebWorker,
550 | useWebWorkerFn,
551 | useWindowFocus,
552 | useWindowScroll,
553 | useWindowSize,
554 | watchArray,
555 | watchAtMost,
556 | watchDebounced,
557 | watchDeep,
558 | watchIgnorable,
559 | watchImmediate,
560 | watchOnce,
561 | watchPausable,
562 | watchThrottled,
563 | watchTriggerable,
564 | watchWithFilter,
565 | whenever
566 | };
567 | //# sourceMappingURL=vitepress___@vueuse_core.js.map
568 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Reliable LLM: Hallucination & Knowledge & Uncertainty (From Factuality Perception to Expression)
2 |
3 | \
4 | [](https://github.com/hee9joon/Awesome-Diffusion-Models)
5 | [](https://github.com/chetanraj/awesome-github-badges)
6 | 
7 | 
8 |
9 | ## Introduction
10 |
11 | The project demonstrates the background about LLM **hallucination** 👻 as well as the mitigation methods regarding **uncertainty** 🤔 & **knowledge** 📓. The research works are collected and systematically clustered in various directions and methods for reliable AI development. The project provides a framework of improving LLMs' factuality **perception** and eliciting factual **expressions** to address the hallucination issue.
12 |
13 | *Welcome to participate in this project to share valuable papers and exchange great ideas!*
14 |
15 |
16 | ## Outline
17 |
18 | - [Reliable LLM: Hallucination \& Knowledge \& Uncertainty (From Factuality Perception to Expression)](#reliable-llm-hallucination--knowledge--uncertainty-from-factuality-perception-to-expression)
19 | - [Introduction](#introduction)
20 | - [Outline](#outline)
21 | - [👻 Hallucination \& Factuality](#-hallucination--factuality)
22 | - [Definition of LLM Hallucination](#definition-of-llm-hallucination)
23 | - [Causes of LLM Hallucination](#causes-of-llm-hallucination)
24 | - [📓 LLM Knowledge](#-llm-knowledge)
25 | - [🤔 Uncertainty Estimation](#-uncertainty-estimation)
26 | - [Traditional Model Calibration](#traditional-model-calibration)
27 | - [Uncertainty Estimation of Generative Models](#uncertainty-estimation-of-generative-models)
28 | - [Related Works of Hallucination \& Knowledge \& Uncertainty](#related-works-of-hallucination--knowledge--uncertainty)
29 | - [👻 Hallucination \& Factuality](#-hallucination--factuality-1)
30 | - [Hallucination Detection](#hallucination-detection)
31 | - [Consistency-based Detection](#consistency-based-detection)
32 | - [Internal State based Detection](#internal-state-based-detection)
33 | - [📓 LLM Knowledge](#-llm-knowledge-1)
34 | - [Knowledge Boundary](#knowledge-boundary)
35 | - [🤔 Uncertainty Estimation](#-uncertainty-estimation-1)
36 | - [Survey \& Investigation](#survey--investigation)
37 | - [Uncertainty Quantification](#uncertainty-quantification)
38 | - [Linguistic Uncertainty Expressions](#linguistic-uncertainty-expressions)
39 | - [Confidence Expressions Improvements](#confidence-expressions-improvements)
40 | - [Hallucination Detection by Uncertainty](#hallucination-detection-by-uncertainty)
41 | - [Factuality Alignment by Confidence](#factuality-alignment-by-confidence)
42 | - [Generative Model Calibration](#generative-model-calibration)
43 | - [🔭 Future Directions](#-future-directions)
44 |
45 | ## 👻 Hallucination & Factuality
46 |
47 | ### Definition of LLM Hallucination
48 |
49 | The definitions of hallucination vary and depend on specific tasks. This project focuses on hallucination issues in knowledge-intensive tasks (closed-book QA, dialogue, RAG, commonsense reasoning, translation, etc.), where hallucinations refer to the non-factual, incorrect knowledge in generations unfaithful with world knowledge.
50 |
51 | ### Causes of LLM Hallucination
52 |
53 | The causes of hallucinations vary in unfiltered incorrect statements in pertaining data, limited input length of model architecture, maximum likelihood training strategy, and diverse decoding strategies.
54 |
55 |
56 |
57 | Architectures and input lengths, pertaining data and strategy of released LLMs are fixed. Tracing incorrect texts in substantial pertaining data is challenging. This project mainly focuses on detecting hallucinations by tracing what LLMs learn in the pertaining stage and mitigating hallucinations in fine-tuning and decoding.
58 |
59 | Comparing open-generation tasks, knowledge-intensive tasks have specific grounding-truth reference - world knowledge. Therefore, we can estimate the knowledge boundary map of an LLM to specify what it knows. It is crucial to ensure the certainty level or honesty of LLMs to a piece of factual knowledge for hallucination detection (from grey area to green area).
60 |
61 |
62 | ## 📓 LLM Knowledge
63 |
64 |
65 |
66 | The above diagram can roughly and simply represent the knowledge boundary. However, in reality, like humans, for much knowledge, we exist in a state of uncertainty, rather than only in a state of knowing or not knowing.
67 | Moreover, maximum likelihood prediction in pertaining makes LLMs be prone to generate over-confident responses. Even if the LLM knows a fact, how to make LLMs accurately tell what they know is also important.
68 |
69 | This adds complexity to determining the knowledge boundary, which leads to two challenging questions:
70 |
71 | 1. How to accurately **perceive (Perception)** the knowledge boundary?
72 |
73 | > (Example: Given a question, such as "What is the capital of France?", the model is required to provide its confidence level for this question.)
74 | >
75 | 2. How to accurately **express (Expression)** knowledge where the boundary is somewhat vague? (Previous work U2Align is a method to enhance expressions. Current interests for the second stage “expression” also lie in “alignment” methods.)
76 |
77 | > (Example: If the confidence level for answering "Paris" to the above question is 40%, should the model refuse to answer or provide a response in this situation?)
78 | >
79 |
80 | ## 🤔 Uncertainty Estimation
81 |
82 | ### Traditional Model Calibration
83 |
84 | - Models are prone to be **over-confident** in predictions using maximizing likelihood (MLE) training, it is crucial to identify the **confidence score or uncertainty estimation** for reliable AI applications.
85 | - A model is considered **well-calibrated** if the **confidence score of predictions** (SoftMax probability) are well-aligned with the **actual probability** of answers being correct.
86 | - **Expected Calibration Error (ECE)** and **Reliability Diagram** is used to measure the calibration performance.
87 |
88 |
89 |
90 | Uncalibrated (left), over-confident (mid) and well-calibrated (right) models.
91 |
92 | ### Uncertainty Estimation of Generative Models
93 |
94 | - To calibrate generative LLMs, we should quantify the **confidence & uncertainty** on generated sentences.
95 | - Uncertainty: Categorized into **aleatoric (data) and epistemic (model)** uncertainty. Frequently measured by the entropy of the prediction to indicate the dispersion of the model prediction.
96 | - Confidence: Generally associated with both the input and the prediction.
97 | - The terms uncertainty and confidence are often used interchangeably.
98 |
99 |
100 | Although the knowledge boundary is important for knowledge-intensive tasks, there are no specific definitions or concepts in previous works. Current methods for estimating knowledge boundaries refer to confidence/uncertainty estimation methods including ① logit-based methods using token-level probabilities; ② prompt-based methods to make LLMs express confidence in words; ③ sampling-based methods to calculate consistency; and ④ training-based methods to learn the ability to express uncertainty.
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | # Related Works of Hallucination & Knowledge & Uncertainty
110 |
111 | ## 👻 Hallucination & Factuality
112 |
113 | ### Hallucination Detection
114 |
115 | #### Consistency-based Detection
116 |
117 | | Title | Conference/Journal |
118 | | ---- | ---- |
119 | | [SelfCheckGPT: Zero-Resource Black-Box Hallucination Detection for Generative Large Language Models](https://aclanthology.org/2023.emnlp-main.557) | EMNLP 2023 |
120 | | [RCOT: Detecting and Rectifying Factual Inconsistency in Reasoning by Reversing Chain-of-Thought](http://arxiv.org/abs/2305.11499) | prePrint |
121 |
122 | #### Internal State based Detection
123 |
124 | | Title | Conference/Journal |
125 | | ---- | ---- |
126 | | [The Internal State of an LLM Knows When It's Lying](http://arxiv.org/abs/2304.13734) | prePrint |
127 | | [Unsupervised Real-Time Hallucination Detection based on the Internal States of Large Language Models](http://arxiv.org/abs/2403.06448) | prePrint |
128 | | [On the Universal Truthfulness Hyperplane Inside LLMs](http://arxiv.org/abs/2407.08582) | prePrint |
129 | | [INSIDE: LLMs' Internal States Retain the Power of Hallucination Detection](http://arxiv.org/abs/2402.03744) | prePrint |
130 | | [LLM Internal States Reveal Hallucination Risk Faced With a Query](http://arxiv.org/abs/2407.03282) | prePrint |
131 | | [Discovering Latent Knowledge in Language Models Without Supervision](http://arxiv.org/abs/2212.03827) | prePrint |
132 |
133 |
134 | ## 📓 LLM Knowledge
135 |
136 | ### Knowledge Boundary
137 |
138 | | Title | Conference/Journal |
139 | | ---- | ---- |
140 | | [Knowledge of Knowledge: Exploring Known-Unknowns Uncertainty with Large Language Models](https://arxiv.org/abs/2305.13712) | prePrint |
141 | | [Can AI Assistants Know What They Don’t Know?](https://arxiv.org/abs/2401.13275) | prePrint |
142 | | [Do Large Language Models Know What They Don't Know?](http://arxiv.org/abs/2305.18153) | prePrint |
143 | | [Investigating the Factual Knowledge Boundary of Large Language Models with Retrieval Augmentation](http://arxiv.org/abs/2307.11019) | EMNLP 2023 |
144 | | [Does Fine-Tuning LLMs on New Knowledge Encourage Hallucinations?](http://arxiv.org/abs/2405.05904) | prePrint |
145 |
146 |
147 | ## 🤔 Uncertainty Estimation
148 |
149 | ### Survey & Investigation
150 |
151 | | Title | Conference/Journal |
152 | | ---- | ---- |
153 | | [A Survey of Confidence Estimation and Calibration in Large Language Models](https://arxiv.org/abs/2311.08298) | prePrint |
154 | | [Uncertainty Quantification with Pre-trained Language Models: A Large-Scale Empirical Analysis](https://openreview.net/forum?id=gjeQKFxFpZ) | EMNLP 2022 |
155 | | [Uncertainty Estimation and Quantification for LLMs: A Simple Supervised Approach](https://arxiv.org/abs/2404.15993) | prePrint |
156 | | [Confidence Under the Hood: An Investigation into the Confidence-Probability Alignment in Large Language Models](https://arxiv.org/abs/2405.16282) | prePrint |
157 | | [Large Language Models Must Be Taught to Know What They Don’t Know](https://arxiv.org/abs/2406.08391) | prePrint |
158 |
159 | ### Uncertainty Quantification
160 |
161 | | Title | Conference/Journal |
162 | | ---- | ---- |
163 | | [Language Models (Mostly) Know What They Know](https://arxiv.org/abs/2207.05221) | prePrint |
164 | | [Semantic Uncertainty: Linguistic Invariances for Uncertainty Estimation in Natural Language Generation](https://openreview.net/forum?id=VD-AYtP0dve) | ICLR 2023 |
165 | | [Generating with Confidence: Uncertainty Quantification for Black-box Large Language Models](https://arxiv.org/abs/2305.19187) | prePrint |
166 | | [When Quantization Affects Confidence of Large Language Models?](https://arxiv.org/abs/2405.00632) | prePrint |
167 | | [Can LLMs Express Their Uncertainty? An Empirical Evaluation of Confidence Elicitation in LLMs](https://arxiv.org/abs/2306.13063) | ICLR 2024 |
168 | | [Kernel Language Entropy: Fine-grained Uncertainty Quantification for LLMs from Semantic Similarities](https://arxiv.org/abs/2405.20003) | prePrint |
169 | | [Semantically Diverse Language Generation for Uncertainty Estimation in Language Models](https://arxiv.org/abs/2405.20003) | prePrint |
170 | | [Uncertainty is Fragile: Manipulating Uncertainty in Large Language Models](https://www.arxiv.org/abs/2407.11282) | prePrint |
171 |
172 |
173 | ### Linguistic Uncertainty Expressions
174 |
175 | | Title | Conference/Journal |
176 | | ---- | ---- |
177 | | [Navigating the Grey Area: Expressions of Overconfidence and Uncertainty in Language Models](https://openreview.net/forum?id=fxotfo1j8T¬eId=2Sajm3fx2g) | EMNLP 2023 |
178 | | [Teaching Models to Express Their Uncertainty in Words](https://openreview.net/forum?id=8s8K2UZGTZ) | TMLR 2022 |
179 | | [Relying on the Unreliable: The Impact of Language Models’ Reluctance to Express Uncertainty](https://arxiv.org/abs/2401.06730) | prePrint |
180 | | ["I'm Not Sure, But...": Examining the Impact of Large Language Models' Uncertainty Expression on User Reliance and Trust](https://arxiv.org/abs/2405.00623) | FAccT 2024 |
181 | | [Can Large Language Models Faithfully Express Their Intrinsic Uncertainty in Words?](https://arxiv.org/abs/2405.00623) | prePrint |
182 |
183 |
184 | ### Confidence Expressions Improvements
185 |
186 | This part of works focus on improving confidence expressions of LLMs in a two-stage form by 1) self-prompting LLMs to generate responses to queries and then collecting the samples to construct a dataset with specific features, and 2) fine-tuning LLMs on the collected dataset to improve the specific capability of LLMs.
187 |
188 | | Title | Conference/Journal |
189 | | ---- | ---- |
190 | | [Enhancing Confidence Expression in Large Language Models Through Learning from Past Experience](https://arxiv.org/abs/2404.10315) | prePrint |
191 | | [Improving the Reliability of Large Language Models by Leveraging Uncertainty-Aware In-Context Learning](https://arxiv.org/abs/2310.04782) | prePrint |
192 | | [Uncertainty in Language Models: Assessment through Rank-Calibration](https://arxiv.org/abs/2404.03163) | prePrint |
193 | | [SaySelf: Teaching LLMs to Express Confidence with Self-Reflective Rationales](https://arxiv.org/abs/2405.20974) | prePrint |
194 | | [Linguistic Calibration of Language Models](https://arxiv.org/abs/2404.00474) | prePrint |
195 | | [R-Tuning: Instructing Large Language Models to Say ‘I Don’t Know’](https://arxiv.org/pdf/2311.09677) | prePrint |
196 |
197 |
198 | ### Hallucination Detection by Uncertainty
199 |
200 | | Title | Conference/Journal |
201 | | ---- | ---- |
202 | | [On Hallucination and Predictive Uncertainty in Conditional Language Generation](https://aclanthology.org/2021.eacl-main.236/) | EACL 2021 |
203 | | [Learning Confidence for Transformer-based Neural Machine Translation](https://aclanthology.org/2022.acl-long.167.pdf) | ACL 2022 |
204 | | [Towards Reliable Misinformation Mitigation: Generalization, Uncertainty, and GPT-4](https://openreview.net/forum?id=cCJGuKJYG8&referrer=%5Bthe%20profile%20of%20Kellin%20Pelrine%5D(%2Fprofile%3Fid%3D~Kellin_Pelrine1)) | EMNLP 2023 |
205 | | [SelfCheckGPT: Zero-Resource Black-Box Hallucination Detection for Generative Large Language Models](https://openreview.net/forum?id=RwzFNbJ3Ez&referrer=%5Bthe%20profile%20of%20Mark%20Gales%5D(%2Fprofile%3Fid%3D~Mark_Gales1)) | EMNLP 2023 |
206 | | [Detecting Hallucinations in Large Language Models using Semantic Entropy](https://www.nature.com/articles/s41586-024-07421-0) | Nature |
207 | | [LLM Internal States Reveal Hallucination Risk Faced With a Query](https://arxiv.org/abs/2407.03282) | prePrint |
208 |
209 |
210 | ### Factuality Alignment by Confidence
211 |
212 | | Title | Conference/Journal |
213 | | ---- | ---- |
214 | | [When to Trust LLMs: Aligning Confidence with Response Quality](https://arxiv.org/abs/2404.17287) | prePrint |
215 | | [Fine-tuning Language Models for Factuality](http://arxiv.org/abs/2311.08401) | ICLR 2024 |
216 | | [Uncertainty Aware Learning for Language Model Alignment](https://arxiv.org/abs/2406.04854) | ACL 2024 |
217 | | [FLAME: Factuality-Aware Alignment for Large Language Models](http://arxiv.org/abs/2405.01525) | prePrint|
218 | | [Learning to Trust Your Feelings: Leveraging Self-awareness in LLMs for Hallucination Mitigation](http://arxiv.org/abs/2401.15449) | prePrint |
219 | | [Self-Alignment for Factuality: Mitigating Hallucinations in LLMs via Self-Evaluation](http://arxiv.org/abs/2402.09267) | ACL 2024 |
220 |
221 |
222 | ### Generative Model Calibration
223 |
224 | | Title | Conference/Journal |
225 | | ---- | ---- |
226 | | [Reducing Conversational Agents’ Overconfidence Through Linguistic Calibration](https://aclanthology.org/2022.tacl-1.50/) | TACL 2022 |
227 | | [Preserving Pre-trained Features Helps Calibrate Fine-tuned Language Models](https://openreview.net/forum?id=NI7StoWHJPT) | ICLR 2023 |
228 | | [Calibrating the Confidence of Large Language Models by Eliciting Fidelity](https://arxiv.org/abs/2404.02655) | prePrint |
229 | | [Few-Shot Recalibration of Language Models](https://arxiv.org/abs/2403.18286) | prePrint |
230 | | [How Can We Know When Language Models Know? On the Calibration of Language Models for Question Answering](https://aclanthology.org/2021.tacl-1.57/) | TACL 2022 |
231 | | [Knowing More About Questions Can Help: Improving Calibration in Question Answering](https://aclanthology.org/2021.findings-acl.172.pdf) | ACL 2021 Findings | [[Link]()] |
232 | | [Just Ask for Calibration: Strategies for Eliciting Calibrated Confidence Scores from Language Models Fine-Tuned with Human Feedback](https://aclanthology.org/2023.emnlp-main.330/) | EMNLP 2023 |
233 | | [Re-Examining Calibration: The Case of Question Answering](https://aclanthology.org/2022.findings-emnlp.204/) | TACL 2021 |
234 | | [Calibrating Large Language Models Using Their Generations Only](https://arxiv.org/abs/2403.05973) | prePrint |
235 | | [Calibrating Large Language Models with Sample Consistency](https://arxiv.org/abs/2402.13904) | prePrint |
236 | | [Linguistic Calibration of Language Models](https://arxiv.org/abs/2404.00474) | prePrint |
237 |
238 |
239 |
240 |
241 | # 🔭 Future Directions
242 |
243 | 1. More advanced methods to assist LLMs hallucination detection and human decisions. (A new paradigm)
244 | 2. Confidence estimation for long-term generations like code, novel, etc. (Benchmark)
245 | 3. Learning to explain and clarify its confidence estimation and calibration. (Natural language)
246 | 4. Calibration on human variation (Misalignment between LM measures and human disagreement).
247 | 5. Confidence estimation and calibration for multi-modal LLMs.
248 |
--------------------------------------------------------------------------------
/docs/README.md:
--------------------------------------------------------------------------------
1 | # Reliable LLM: Hallucination & Knowledge & Uncertainty (From Factuality Perception to Expression)
2 |
3 | \
4 | [](https://github.com/hee9joon/Awesome-Diffusion-Models)
5 | [](https://github.com/chetanraj/awesome-github-badges)
6 | 
7 | 
8 |
9 | ## Introduction
10 |
11 | The project demonstrates the background about LLM **hallucination** 👻 as well as the mitigation methods regarding **uncertainty** 🤔 & **knowledge** 📓. The research works are collected and systematically clustered in various directions and methods for reliable AI development. The project provides a framework of improving LLMs' factuality **perception** and eliciting factual **expressions** to address the hallucination issue.
12 |
13 | *Welcome to participate in this project to share valuable papers and exchange great ideas!*
14 |
15 |
16 | ## Outline
17 |
18 | - [Reliable LLM: Hallucination \& Knowledge \& Uncertainty (From Factuality Perception to Expression)](#reliable-llm-hallucination--knowledge--uncertainty-from-factuality-perception-to-expression)
19 | - [Introduction](#introduction)
20 | - [Outline](#outline)
21 | - [👻 Hallucination \& Factuality](#-hallucination--factuality)
22 | - [Definition of LLM Hallucination](#definition-of-llm-hallucination)
23 | - [Causes of LLM Hallucination](#causes-of-llm-hallucination)
24 | - [📓 LLM Perception of Knowledge](#-llm-perception-of-knowledge)
25 | - [👻 Hallucination \& Factuality](#-hallucination--factuality-1)
26 | - [🤔 Uncertainty Quantification and Expression](#-uncertainty-quantification-and-expression)
27 | - [Traditional Model Calibration](#traditional-model-calibration)
28 | - [Uncertainty Estimation of Generative Models](#uncertainty-estimation-of-generative-models)
29 | - [Related Works](#related-works)
30 | - [Related Works of LLM Hallucination](#related-works-of-llm-hallucination)
31 | - [Hallucination Detection](#hallucination-detection)
32 | - [Consistency-based Detection](#consistency-based-detection)
33 | - [Internal State based Detection](#internal-state-based-detection)
34 | - [📓 LLM Perception of Knowledge](#-llm-perception-of-knowledge-1)
35 | - [Knowledge Boundary](#knowledge-boundary)
36 | - [🤔 Uncertainty Quantification and Expression](#-uncertainty-quantification-and-expression-1)
37 | - [Survey \& Investigation](#survey--investigation)
38 | - [Uncertainty Quantification](#uncertainty-quantification)
39 | - [Linguistic Uncertainty Expressions](#linguistic-uncertainty-expressions)
40 | - [Confidence Expressions Improvements](#confidence-expressions-improvements)
41 | - [Hallucination Detection by Uncertainty](#hallucination-detection-by-uncertainty)
42 | - [Factuality Alignment by Confidence](#factuality-alignment-by-confidence)
43 | - [Generative Model Calibration](#generative-model-calibration)
44 | - [🔭 Future Directions](#-future-directions)
45 |
46 |
47 |
48 |
49 |
50 | ## 👻 Hallucination & Factuality
51 |
52 | ### Definition of LLM Hallucination
53 |
54 | The definitions of hallucination vary and depend on specific tasks. This project focuses on hallucination issues in knowledge-intensive tasks (closed-book QA, dialogue, RAG, commonsense reasoning, translation, etc.), where hallucinations refer to the non-factual, incorrect knowledge in generations unfaithful with world knowledge.
55 |
56 | ### Causes of LLM Hallucination
57 |
58 | The causes of hallucinations vary in unfiltered incorrect statements in pertaining data, limited input length of model architecture, maximum likelihood training strategy, and diverse decoding strategies.
59 |
60 |
61 |
62 | Architectures and input lengths, pertaining data and strategy of released LLMs are fixed. Tracing incorrect texts in substantial pertaining data is challenging. This project mainly focuses on detecting hallucinations by tracing what LLMs learn in the pertaining stage and mitigating hallucinations in fine-tuning and decoding.
63 |
64 | Comparing open-generation tasks, knowledge-intensive tasks have specific grounding-truth reference - world knowledge. Therefore, we can estimate the knowledge boundary map of an LLM to specify what it knows. It is crucial to ensure the certainty level or honesty of LLMs to a piece of factual knowledge for hallucination detection (from grey area to green area).
65 |
66 |
67 |
68 |
69 |
70 | ## 📓 LLM Perception of Knowledge
71 |
72 | ## 👻 Hallucination & Factuality
73 |
74 |
75 |
76 | The above diagram can roughly and simply represent the knowledge boundary. However, in reality, like humans, for much knowledge, we exist in a state of uncertainty, rather than only in a state of knowing or not knowing.
77 | Moreover, maximum likelihood prediction in pertaining makes LLMs be prone to generate over-confident responses. Even if the LLM knows a fact, how to make LLMs accurately tell what they know is also important.
78 |
79 | This adds complexity to determining the knowledge boundary, which leads to two challenging questions:
80 |
81 | 1. How to accurately **perceive (Perception)** the knowledge boundary?
82 |
83 | > (Example: Given a question, such as "What is the capital of France?", the model is required to provide its confidence level for this question.)
84 | >
85 | 2. How to accurately **express (Expression)** knowledge where the boundary is somewhat vague? (Previous work U2Align is a method to enhance expressions. Current interests for the second stage “expression” also lie in “alignment” methods.)
86 |
87 | > (Example: If the confidence level for answering "Paris" to the above question is 40%, should the model refuse to answer or provide a response in this situation?)
88 | >
89 |
90 |
91 |
92 |
93 |
94 | ## 🤔 Uncertainty Quantification and Expression
95 |
96 | ### Traditional Model Calibration
97 |
98 | - Models are prone to be **over-confident** in predictions using maximizing likelihood (MLE) training, it is crucial to identify the **confidence score or uncertainty estimation** for reliable AI applications.
99 | - A model is considered **well-calibrated** if the **confidence score of predictions** (SoftMax probability) are well-aligned with the **actual probability** of answers being correct.
100 | - **Expected Calibration Error (ECE)** and **Reliability Diagram** is used to measure the calibration performance.
101 |
102 |
103 |
104 | Uncalibrated (left), over-confident (mid) and well-calibrated (right) models.
105 |
106 | ### Uncertainty Estimation of Generative Models
107 |
108 | - To calibrate generative LLMs, we should quantify the **confidence & uncertainty** on generated sentences.
109 | - Uncertainty: Categorized into **aleatoric (data) and epistemic (model)** uncertainty. Frequently measured by the entropy of the prediction to indicate the dispersion of the model prediction.
110 | - Confidence: Generally associated with both the input and the prediction.
111 | - The terms uncertainty and confidence are often used interchangeably.
112 |
113 |
114 | Although the knowledge boundary is important for knowledge-intensive tasks, there are no specific definitions or concepts in previous works. Current methods for estimating knowledge boundaries refer to confidence/uncertainty estimation methods including ① logit-based methods using token-level probabilities; ② prompt-based methods to make LLMs express confidence in words; ③ sampling-based methods to calculate consistency; and ④ training-based methods to learn the ability to express uncertainty.
115 |
116 |
117 |
118 |
119 |
120 |
121 | # Related Works
122 |
123 | ## Related Works of LLM Hallucination
124 |
125 | ### Hallucination Detection
126 |
127 | #### Consistency-based Detection
128 |
129 | | Title | Conference/Journal | Notes |
130 | | ---- | ---- | ---- |
131 | | [SelfCheckGPT: Zero-Resource Black-Box Hallucination Detection for Generative Large Language Models](https://aclanthology.org/2023.emnlp-main.557) | EMNLP 2023 |
132 | | [RCOT: Detecting and Rectifying Factual Inconsistency in Reasoning by Reversing Chain-of-Thought](http://arxiv.org/abs/2305.11499) | prePrint |
133 |
134 | #### Internal State based Detection
135 |
136 | | Title | Conference/Journal | Notes |
137 | | ---- | ---- | ---- |
138 | | [The Internal State of an LLM Knows When It's Lying](http://arxiv.org/abs/2304.13734) | prePrint |
139 | | [Unsupervised Real-Time Hallucination Detection based on the Internal States of Large Language Models](http://arxiv.org/abs/2403.06448) | prePrint |
140 | | [On the Universal Truthfulness Hyperplane Inside LLMs](http://arxiv.org/abs/2407.08582) | prePrint |
141 | | [INSIDE: LLMs' Internal States Retain the Power of Hallucination Detection](http://arxiv.org/abs/2402.03744) | prePrint |
142 | | [LLM Internal States Reveal Hallucination Risk Faced With a Query](http://arxiv.org/abs/2407.03282) | prePrint |
143 | | [Discovering Latent Knowledge in Language Models Without Supervision](http://arxiv.org/abs/2212.03827) | prePrint |
144 |
145 |
146 | ## 📓 LLM Perception of Knowledge
147 |
148 | ### Knowledge Boundary
149 |
150 | | Title | Conference/Journal | Notes |
151 | | ---- | ---- | ---- |
152 | | [Knowledge of Knowledge: Exploring Known-Unknowns Uncertainty with Large Language Models](https://arxiv.org/abs/2305.13712) | prePrint |
153 | | [Can AI Assistants Know What They Don’t Know?](https://arxiv.org/abs/2401.13275) | prePrint |
154 | | [Do Large Language Models Know What They Don't Know?](http://arxiv.org/abs/2305.18153) | prePrint |
155 | | [Investigating the Factual Knowledge Boundary of Large Language Models with Retrieval Augmentation](http://arxiv.org/abs/2307.11019) | EMNLP 2023 |
156 | | [Does Fine-Tuning LLMs on New Knowledge Encourage Hallucinations?](http://arxiv.org/abs/2405.05904) | prePrint |
157 |
158 |
159 | ## 🤔 Uncertainty Quantification and Expression
160 |
161 | ### Survey & Investigation
162 |
163 | | Title | Conference/Journal |
164 | | ---- | ---- |
165 | | [A Survey of Confidence Estimation and Calibration in Large Language Models](https://arxiv.org/abs/2311.08298) | prePrint |
166 | | [Uncertainty Quantification with Pre-trained Language Models: A Large-Scale Empirical Analysis](https://openreview.net/forum?id=gjeQKFxFpZ) | EMNLP 2022 |
167 | | [Uncertainty Estimation and Quantification for LLMs: A Simple Supervised Approach](https://arxiv.org/abs/2404.15993) | prePrint |
168 | | [Confidence Under the Hood: An Investigation into the Confidence-Probability Alignment in Large Language Models](https://arxiv.org/abs/2405.16282) | prePrint |
169 | | [Large Language Models Must Be Taught to Know What They Don’t Know](https://arxiv.org/abs/2406.08391) | prePrint |
170 |
171 | ### Uncertainty Quantification
172 |
173 | | Title | Conference/Journal |
174 | | ---- | ---- |
175 | | [Language Models (Mostly) Know What They Know](https://arxiv.org/abs/2207.05221) | prePrint |
176 | | [Semantic Uncertainty: Linguistic Invariances for Uncertainty Estimation in Natural Language Generation](https://openreview.net/forum?id=VD-AYtP0dve) | ICLR 2023 |
177 | | [Generating with Confidence: Uncertainty Quantification for Black-box Large Language Models](https://arxiv.org/abs/2305.19187) | prePrint |
178 | | [When Quantization Affects Confidence of Large Language Models?](https://arxiv.org/abs/2405.00632) | prePrint |
179 | | [Can LLMs Express Their Uncertainty? An Empirical Evaluation of Confidence Elicitation in LLMs](https://arxiv.org/abs/2306.13063) | ICLR 2024 |
180 | | [Kernel Language Entropy: Fine-grained Uncertainty Quantification for LLMs from Semantic Similarities](https://arxiv.org/abs/2405.20003) | prePrint |
181 | | [Semantically Diverse Language Generation for Uncertainty Estimation in Language Models](https://arxiv.org/abs/2405.20003) | prePrint |
182 | | [Uncertainty is Fragile: Manipulating Uncertainty in Large Language Models](https://www.arxiv.org/abs/2407.11282) | prePrint |
183 |
184 |
185 | ### Linguistic Uncertainty Expressions
186 |
187 | | Title | Conference/Journal |
188 | | ---- | ---- |
189 | | [Navigating the Grey Area: Expressions of Overconfidence and Uncertainty in Language Models](https://openreview.net/forum?id=fxotfo1j8T¬eId=2Sajm3fx2g) | EMNLP 2023 |
190 | | [Teaching Models to Express Their Uncertainty in Words](https://openreview.net/forum?id=8s8K2UZGTZ) | TMLR 2022 |
191 | | [Relying on the Unreliable: The Impact of Language Models’ Reluctance to Express Uncertainty](https://arxiv.org/abs/2401.06730) | prePrint |
192 | | ["I'm Not Sure, But...": Examining the Impact of Large Language Models' Uncertainty Expression on User Reliance and Trust](https://arxiv.org/abs/2405.00623) | FAccT 2024 |
193 | | [Can Large Language Models Faithfully Express Their Intrinsic Uncertainty in Words?](https://arxiv.org/abs/2405.00623) | prePrint |
194 |
195 |
196 | ### Confidence Expressions Improvements
197 |
198 | This part of works focus on improving confidence expressions of LLMs in a two-stage form by 1) self-prompting LLMs to generate responses to queries and then collecting the samples to construct a dataset with specific features, and 2) fine-tuning LLMs on the collected dataset to improve the specific capability of LLMs.
199 |
200 | | Title | Conference/Journal |
201 | | ---- | ---- |
202 | | [Enhancing Confidence Expression in Large Language Models Through Learning from Past Experience](https://arxiv.org/abs/2404.10315) | prePrint |
203 | | [Improving the Reliability of Large Language Models by Leveraging Uncertainty-Aware In-Context Learning](https://arxiv.org/abs/2310.04782) | prePrint |
204 | | [Uncertainty in Language Models: Assessment through Rank-Calibration](https://arxiv.org/abs/2404.03163) | prePrint |
205 | | [SaySelf: Teaching LLMs to Express Confidence with Self-Reflective Rationales](https://arxiv.org/abs/2405.20974) | prePrint |
206 | | [Linguistic Calibration of Language Models](https://arxiv.org/abs/2404.00474) | prePrint |
207 | | [R-Tuning: Instructing Large Language Models to Say ‘I Don’t Know’](https://arxiv.org/pdf/2311.09677) | prePrint |
208 |
209 |
210 | ### Hallucination Detection by Uncertainty
211 |
212 | | Title | Conference/Journal |
213 | | ---- | ---- |
214 | | [On Hallucination and Predictive Uncertainty in Conditional Language Generation](https://aclanthology.org/2021.eacl-main.236/) | EACL 2021 |
215 | | [Learning Confidence for Transformer-based Neural Machine Translation](https://aclanthology.org/2022.acl-long.167.pdf) | ACL 2022 |
216 | | [Towards Reliable Misinformation Mitigation: Generalization, Uncertainty, and GPT-4](https://openreview.net/forum?id=cCJGuKJYG8&referrer=%5Bthe%20profile%20of%20Kellin%20Pelrine%5D(%2Fprofile%3Fid%3D~Kellin_Pelrine1)) | EMNLP 2023 |
217 | | [SelfCheckGPT: Zero-Resource Black-Box Hallucination Detection for Generative Large Language Models](https://openreview.net/forum?id=RwzFNbJ3Ez&referrer=%5Bthe%20profile%20of%20Mark%20Gales%5D(%2Fprofile%3Fid%3D~Mark_Gales1)) | EMNLP 2023 |
218 | | [Detecting Hallucinations in Large Language Models using Semantic Entropy](https://www.nature.com/articles/s41586-024-07421-0) | Nature |
219 | | [LLM Internal States Reveal Hallucination Risk Faced With a Query](https://arxiv.org/abs/2407.03282) | prePrint |
220 |
221 |
222 | ### Factuality Alignment by Confidence
223 |
224 | | Title | Conference/Journal |
225 | | ---- | ---- |
226 | | [When to Trust LLMs: Aligning Confidence with Response Quality](https://arxiv.org/abs/2404.17287) | prePrint |
227 | | [Fine-tuning Language Models for Factuality](http://arxiv.org/abs/2311.08401) | ICLR 2024 |
228 | | [Uncertainty Aware Learning for Language Model Alignment](https://arxiv.org/abs/2406.04854) | ACL 2024 |
229 | | [FLAME: Factuality-Aware Alignment for Large Language Models](http://arxiv.org/abs/2405.01525) | prePrint|
230 | | [Learning to Trust Your Feelings: Leveraging Self-awareness in LLMs for Hallucination Mitigation](http://arxiv.org/abs/2401.15449) | prePrint |
231 | | [Self-Alignment for Factuality: Mitigating Hallucinations in LLMs via Self-Evaluation](http://arxiv.org/abs/2402.09267) | ACL 2024 |
232 |
233 |
234 | ### Generative Model Calibration
235 |
236 | | Title | Conference/Journal |
237 | | ---- | ---- |
238 | | [Reducing Conversational Agents’ Overconfidence Through Linguistic Calibration](https://aclanthology.org/2022.tacl-1.50/) | TACL 2022 |
239 | | [Preserving Pre-trained Features Helps Calibrate Fine-tuned Language Models](https://openreview.net/forum?id=NI7StoWHJPT) | ICLR 2023 |
240 | | [Calibrating the Confidence of Large Language Models by Eliciting Fidelity](https://arxiv.org/abs/2404.02655) | prePrint |
241 | | [Few-Shot Recalibration of Language Models](https://arxiv.org/abs/2403.18286) | prePrint |
242 | | [How Can We Know When Language Models Know? On the Calibration of Language Models for Question Answering](https://aclanthology.org/2021.tacl-1.57/) | TACL 2022 |
243 | | [Knowing More About Questions Can Help: Improving Calibration in Question Answering](https://aclanthology.org/2021.findings-acl.172.pdf) | ACL 2021 Findings | [[Link]()] |
244 | | [Just Ask for Calibration: Strategies for Eliciting Calibrated Confidence Scores from Language Models Fine-Tuned with Human Feedback](https://aclanthology.org/2023.emnlp-main.330/) | EMNLP 2023 |
245 | | [Re-Examining Calibration: The Case of Question Answering](https://aclanthology.org/2022.findings-emnlp.204/) | TACL 2021 |
246 | | [Calibrating Large Language Models Using Their Generations Only](https://arxiv.org/abs/2403.05973) | prePrint |
247 | | [Calibrating Large Language Models with Sample Consistency](https://arxiv.org/abs/2402.13904) | prePrint |
248 | | [Linguistic Calibration of Language Models](https://arxiv.org/abs/2404.00474) | prePrint |
249 |
250 |
251 | # 🔭 Future Directions
252 |
253 | 1. More advanced methods to assist LLMs hallucination detection and human decisions. (A new paradigm)
254 | 2. Confidence estimation for long-term generations like code, novel, etc. (Benchmark)
255 | 3. Learning to explain and clarify its confidence estimation and calibration. (Natural language)
256 | 4. Calibration on human variation (Misalignment between LM measures and human disagreement).
257 | 5. Confidence estimation and calibration for multi-modal LLMs.
258 |
--------------------------------------------------------------------------------
/docs/.vitepress/cache/deps/@theme_index.js.map:
--------------------------------------------------------------------------------
1 | {
2 | "version": 3,
3 | "sources": ["../../../../../../../../../node_modules/vitepress/dist/client/theme-default/index.js", "../../../../../../../../../node_modules/vitepress/dist/client/theme-default/without-fonts.js", "../../../../../../../../../node_modules/vitepress/dist/client/theme-default/support/utils.js", "../../../../../../../../../node_modules/vitepress/dist/client/theme-default/composables/data.js", "../../../../../../../../../node_modules/vitepress/dist/client/theme-default/support/sidebar.js", "../../../../../../../../../node_modules/vitepress/dist/client/theme-default/composables/sidebar.js", "../../../../../../../../../node_modules/vitepress/dist/client/theme-default/composables/local-nav.js", "../../../../../../../../../node_modules/vitepress/dist/client/theme-default/composables/outline.js"],
4 | "sourcesContent": ["import './styles/fonts.css';\nexport * from './without-fonts';\nexport { default as default } from './without-fonts';\n", "import './styles/vars.css';\nimport './styles/base.css';\nimport './styles/icons.css';\nimport './styles/utils.css';\nimport './styles/components/custom-block.css';\nimport './styles/components/vp-code.css';\nimport './styles/components/vp-code-group.css';\nimport './styles/components/vp-doc.css';\nimport './styles/components/vp-sponsor.css';\nimport VPBadge from './components/VPBadge.vue';\nimport Layout from './Layout.vue';\nexport { default as VPBadge } from './components/VPBadge.vue';\nexport { default as VPImage } from './components/VPImage.vue';\nexport { default as VPButton } from './components/VPButton.vue';\nexport { default as VPHomeContent } from './components/VPHomeContent.vue';\nexport { default as VPHomeHero } from './components/VPHomeHero.vue';\nexport { default as VPHomeFeatures } from './components/VPHomeFeatures.vue';\nexport { default as VPHomeSponsors } from './components/VPHomeSponsors.vue';\nexport { default as VPDocAsideSponsors } from './components/VPDocAsideSponsors.vue';\nexport { default as VPSponsors } from './components/VPSponsors.vue';\nexport { default as VPTeamPage } from './components/VPTeamPage.vue';\nexport { default as VPTeamPageTitle } from './components/VPTeamPageTitle.vue';\nexport { default as VPTeamPageSection } from './components/VPTeamPageSection.vue';\nexport { default as VPTeamMembers } from './components/VPTeamMembers.vue';\nexport { useSidebar } from './composables/sidebar';\nexport { useLocalNav } from './composables/local-nav';\nconst theme = {\n Layout,\n enhanceApp: ({ app }) => {\n app.component('Badge', VPBadge);\n }\n};\nexport default theme;\n", "import { withBase } from 'vitepress';\nimport { useData } from '../composables/data';\nimport { isExternal, treatAsHtml } from '../../shared';\nexport function throttleAndDebounce(fn, delay) {\n let timeoutId;\n let called = false;\n return () => {\n if (timeoutId)\n clearTimeout(timeoutId);\n if (!called) {\n fn();\n (called = true) && setTimeout(() => (called = false), delay);\n }\n else\n timeoutId = setTimeout(fn, delay);\n };\n}\nexport function ensureStartingSlash(path) {\n return /^\\//.test(path) ? path : `/${path}`;\n}\nexport function normalizeLink(url) {\n const { pathname, search, hash, protocol } = new URL(url, 'http://a.com');\n if (isExternal(url) ||\n url.startsWith('#') ||\n !protocol.startsWith('http') ||\n !treatAsHtml(pathname))\n return url;\n const { site } = useData();\n const normalizedPath = pathname.endsWith('/') || pathname.endsWith('.html')\n ? url\n : url.replace(/(?:(^\\.+)\\/)?.*$/, `$1${pathname.replace(/(\\.md)?$/, site.value.cleanUrls ? '' : '.html')}${search}${hash}`);\n return withBase(normalizedPath);\n}\n", "import { useData as useData$ } from 'vitepress';\nexport const useData = useData$;\n", "import { ensureStartingSlash } from './utils';\nimport { isActive } from '../../shared';\n/**\n * Get the `Sidebar` from sidebar option. This method will ensure to get correct\n * sidebar config from `MultiSideBarConfig` with various path combinations such\n * as matching `guide/` and `/guide/`. If no matching config was found, it will\n * return empty array.\n */\nexport function getSidebar(_sidebar, path) {\n if (Array.isArray(_sidebar))\n return addBase(_sidebar);\n if (_sidebar == null)\n return [];\n path = ensureStartingSlash(path);\n const dir = Object.keys(_sidebar)\n .sort((a, b) => {\n return b.split('/').length - a.split('/').length;\n })\n .find((dir) => {\n // make sure the multi sidebar key starts with slash too\n return path.startsWith(ensureStartingSlash(dir));\n });\n const sidebar = dir ? _sidebar[dir] : [];\n return Array.isArray(sidebar)\n ? addBase(sidebar)\n : addBase(sidebar.items, sidebar.base);\n}\n/**\n * Get or generate sidebar group from the given sidebar items.\n */\nexport function getSidebarGroups(sidebar) {\n const groups = [];\n let lastGroupIndex = 0;\n for (const index in sidebar) {\n const item = sidebar[index];\n if (item.items) {\n lastGroupIndex = groups.push(item);\n continue;\n }\n if (!groups[lastGroupIndex]) {\n groups.push({ items: [] });\n }\n groups[lastGroupIndex].items.push(item);\n }\n return groups;\n}\nexport function getFlatSideBarLinks(sidebar) {\n const links = [];\n function recursivelyExtractLinks(items) {\n for (const item of items) {\n if (item.text && item.link) {\n links.push({\n text: item.text,\n link: item.link,\n docFooterText: item.docFooterText\n });\n }\n if (item.items) {\n recursivelyExtractLinks(item.items);\n }\n }\n }\n recursivelyExtractLinks(sidebar);\n return links;\n}\n/**\n * Check if the given sidebar item contains any active link.\n */\nexport function hasActiveLink(path, items) {\n if (Array.isArray(items)) {\n return items.some((item) => hasActiveLink(path, item));\n }\n return isActive(path, items.link)\n ? true\n : items.items\n ? hasActiveLink(path, items.items)\n : false;\n}\nfunction addBase(items, _base) {\n return [...items].map((_item) => {\n const item = { ..._item };\n const base = item.base || _base;\n if (base && item.link)\n item.link = base + item.link;\n if (item.items)\n item.items = addBase(item.items, base);\n return item;\n });\n}\n", "import { useMediaQuery } from '@vueuse/core';\nimport { computed, onMounted, onUnmounted, ref, watch, watchEffect, watchPostEffect } from 'vue';\nimport { isActive } from '../../shared';\nimport { hasActiveLink as containsActiveLink, getSidebar, getSidebarGroups } from '../support/sidebar';\nimport { useData } from './data';\nexport function useSidebar() {\n const { frontmatter, page, theme } = useData();\n const is960 = useMediaQuery('(min-width: 960px)');\n const isOpen = ref(false);\n const _sidebar = computed(() => {\n const sidebarConfig = theme.value.sidebar;\n const relativePath = page.value.relativePath;\n return sidebarConfig ? getSidebar(sidebarConfig, relativePath) : [];\n });\n const sidebar = ref(_sidebar.value);\n watch(_sidebar, (next, prev) => {\n if (JSON.stringify(next) !== JSON.stringify(prev))\n sidebar.value = _sidebar.value;\n });\n const hasSidebar = computed(() => {\n return (frontmatter.value.sidebar !== false &&\n sidebar.value.length > 0 &&\n frontmatter.value.layout !== 'home');\n });\n const leftAside = computed(() => {\n if (hasAside)\n return frontmatter.value.aside == null\n ? theme.value.aside === 'left'\n : frontmatter.value.aside === 'left';\n return false;\n });\n const hasAside = computed(() => {\n if (frontmatter.value.layout === 'home')\n return false;\n if (frontmatter.value.aside != null)\n return !!frontmatter.value.aside;\n return theme.value.aside !== false;\n });\n const isSidebarEnabled = computed(() => hasSidebar.value && is960.value);\n const sidebarGroups = computed(() => {\n return hasSidebar.value ? getSidebarGroups(sidebar.value) : [];\n });\n function open() {\n isOpen.value = true;\n }\n function close() {\n isOpen.value = false;\n }\n function toggle() {\n isOpen.value ? close() : open();\n }\n return {\n isOpen,\n sidebar,\n sidebarGroups,\n hasSidebar,\n hasAside,\n leftAside,\n isSidebarEnabled,\n open,\n close,\n toggle\n };\n}\n/**\n * a11y: cache the element that opened the Sidebar (the menu button) then\n * focus that button again when Menu is closed with Escape key.\n */\nexport function useCloseSidebarOnEscape(isOpen, close) {\n let triggerElement;\n watchEffect(() => {\n triggerElement = isOpen.value\n ? document.activeElement\n : undefined;\n });\n onMounted(() => {\n window.addEventListener('keyup', onEscape);\n });\n onUnmounted(() => {\n window.removeEventListener('keyup', onEscape);\n });\n function onEscape(e) {\n if (e.key === 'Escape' && isOpen.value) {\n close();\n triggerElement?.focus();\n }\n }\n}\nexport function useSidebarControl(item) {\n const { page, hash } = useData();\n const collapsed = ref(false);\n const collapsible = computed(() => {\n return item.value.collapsed != null;\n });\n const isLink = computed(() => {\n return !!item.value.link;\n });\n const isActiveLink = ref(false);\n const updateIsActiveLink = () => {\n isActiveLink.value = isActive(page.value.relativePath, item.value.link);\n };\n watch([page, item, hash], updateIsActiveLink);\n onMounted(updateIsActiveLink);\n const hasActiveLink = computed(() => {\n if (isActiveLink.value) {\n return true;\n }\n return item.value.items\n ? containsActiveLink(page.value.relativePath, item.value.items)\n : false;\n });\n const hasChildren = computed(() => {\n return !!(item.value.items && item.value.items.length);\n });\n watchEffect(() => {\n collapsed.value = !!(collapsible.value && item.value.collapsed);\n });\n watchPostEffect(() => {\n ;\n (isActiveLink.value || hasActiveLink.value) && (collapsed.value = false);\n });\n function toggle() {\n if (collapsible.value) {\n collapsed.value = !collapsed.value;\n }\n }\n return {\n collapsed,\n collapsible,\n isLink,\n isActiveLink,\n hasActiveLink,\n hasChildren,\n toggle\n };\n}\n", "import { onContentUpdated } from 'vitepress';\nimport { computed, shallowRef } from 'vue';\nimport { getHeaders } from '../composables/outline';\nimport { useData } from './data';\nexport function useLocalNav() {\n const { theme, frontmatter } = useData();\n const headers = shallowRef([]);\n const hasLocalNav = computed(() => {\n return headers.value.length > 0;\n });\n onContentUpdated(() => {\n headers.value = getHeaders(frontmatter.value.outline ?? theme.value.outline);\n });\n return {\n headers,\n hasLocalNav\n };\n}\n", "import { getScrollOffset } from 'vitepress';\nimport { onMounted, onUnmounted, onUpdated } from 'vue';\nimport { throttleAndDebounce } from '../support/utils';\nimport { useAside } from './aside';\n// cached list of anchor elements from resolveHeaders\nconst resolvedHeaders = [];\nexport function resolveTitle(theme) {\n return ((typeof theme.outline === 'object' &&\n !Array.isArray(theme.outline) &&\n theme.outline.label) ||\n theme.outlineTitle ||\n 'On this page');\n}\nexport function getHeaders(range) {\n const headers = [\n ...document.querySelectorAll('.VPDoc :where(h1,h2,h3,h4,h5,h6)')\n ]\n .filter((el) => el.id && el.hasChildNodes())\n .map((el) => {\n const level = Number(el.tagName[1]);\n return {\n element: el,\n title: serializeHeader(el),\n link: '#' + el.id,\n level\n };\n });\n return resolveHeaders(headers, range);\n}\nfunction serializeHeader(h) {\n let ret = '';\n for (const node of h.childNodes) {\n if (node.nodeType === 1) {\n if (node.classList.contains('VPBadge') ||\n node.classList.contains('header-anchor') ||\n node.classList.contains('ignore-header')) {\n continue;\n }\n ret += node.textContent;\n }\n else if (node.nodeType === 3) {\n ret += node.textContent;\n }\n }\n return ret.trim();\n}\nexport function resolveHeaders(headers, range) {\n if (range === false) {\n return [];\n }\n const levelsRange = (typeof range === 'object' && !Array.isArray(range)\n ? range.level\n : range) || 2;\n const [high, low] = typeof levelsRange === 'number'\n ? [levelsRange, levelsRange]\n : levelsRange === 'deep'\n ? [2, 6]\n : levelsRange;\n headers = headers.filter((h) => h.level >= high && h.level <= low);\n // clear previous caches\n resolvedHeaders.length = 0;\n // update global header list for active link rendering\n for (const { element, link } of headers) {\n resolvedHeaders.push({ element, link });\n }\n const ret = [];\n outer: for (let i = 0; i < headers.length; i++) {\n const cur = headers[i];\n if (i === 0) {\n ret.push(cur);\n }\n else {\n for (let j = i - 1; j >= 0; j--) {\n const prev = headers[j];\n if (prev.level < cur.level) {\n ;\n (prev.children || (prev.children = [])).push(cur);\n continue outer;\n }\n }\n ret.push(cur);\n }\n }\n return ret;\n}\nexport function useActiveAnchor(container, marker) {\n const { isAsideEnabled } = useAside();\n const onScroll = throttleAndDebounce(setActiveLink, 100);\n let prevActiveLink = null;\n onMounted(() => {\n requestAnimationFrame(setActiveLink);\n window.addEventListener('scroll', onScroll);\n });\n onUpdated(() => {\n // sidebar update means a route change\n activateLink(location.hash);\n });\n onUnmounted(() => {\n window.removeEventListener('scroll', onScroll);\n });\n function setActiveLink() {\n if (!isAsideEnabled.value) {\n return;\n }\n const scrollY = window.scrollY;\n const innerHeight = window.innerHeight;\n const offsetHeight = document.body.offsetHeight;\n const isBottom = Math.abs(scrollY + innerHeight - offsetHeight) < 1;\n // resolvedHeaders may be repositioned, hidden or fix positioned\n const headers = resolvedHeaders\n .map(({ element, link }) => ({\n link,\n top: getAbsoluteTop(element)\n }))\n .filter(({ top }) => !Number.isNaN(top))\n .sort((a, b) => a.top - b.top);\n // no headers available for active link\n if (!headers.length) {\n activateLink(null);\n return;\n }\n // page top\n if (scrollY < 1) {\n activateLink(null);\n return;\n }\n // page bottom - highlight last link\n if (isBottom) {\n activateLink(headers[headers.length - 1].link);\n return;\n }\n // find the last header above the top of viewport\n let activeLink = null;\n for (const { link, top } of headers) {\n if (top > scrollY + getScrollOffset() + 4) {\n break;\n }\n activeLink = link;\n }\n activateLink(activeLink);\n }\n function activateLink(hash) {\n if (prevActiveLink) {\n prevActiveLink.classList.remove('active');\n }\n if (hash == null) {\n prevActiveLink = null;\n }\n else {\n prevActiveLink = container.value.querySelector(`a[href=\"${decodeURIComponent(hash)}\"]`);\n }\n const activeLink = prevActiveLink;\n if (activeLink) {\n activeLink.classList.add('active');\n marker.value.style.top = activeLink.offsetTop + 39 + 'px';\n marker.value.style.opacity = '1';\n }\n else {\n marker.value.style.top = '33px';\n marker.value.style.opacity = '0';\n }\n }\n}\nfunction getAbsoluteTop(element) {\n let offsetTop = 0;\n while (element !== document.body) {\n if (element === null) {\n // child element is:\n // - not attached to the DOM (display: none)\n // - set to fixed position (not scrollable)\n // - body or html element (null offsetParent)\n return NaN;\n }\n offsetTop += element.offsetTop;\n element = element.offsetParent;\n }\n return offsetTop;\n}\n"],
5 | "mappings": ";;;;;;;;;;;AAAA,OAAO;;;ACAP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO,aAAa;AACpB,OAAO,YAAY;AACnB,SAAoB,WAAXA,gBAA0B;AACnC,SAAoB,WAAXA,gBAA0B;AACnC,SAAoB,WAAXA,gBAA2B;AACpC,SAAoB,WAAXA,gBAAgC;AACzC,SAAoB,WAAXA,gBAA6B;AACtC,SAAoB,WAAXA,gBAAiC;AAC1C,SAAoB,WAAXA,gBAAiC;AAC1C,SAAoB,WAAXA,gBAAqC;AAC9C,SAAoB,WAAXA,iBAA6B;AACtC,SAAoB,WAAXA,iBAA6B;AACtC,SAAoB,WAAXA,iBAAkC;AAC3C,SAAoB,WAAXA,iBAAoC;AAC7C,SAAoB,WAAXA,iBAAgC;;;ACvBzC,SAAS,gBAAgB;;;ACAzB,SAAS,WAAW,gBAAgB;AAC7B,IAAM,UAAU;;;ADgBhB,SAAS,oBAAoB,MAAM;AACtC,SAAO,MAAM,KAAK,IAAI,IAAI,OAAO,IAAI,IAAI;AAC7C;;;AEXO,SAAS,WAAW,UAAU,MAAM;AACvC,MAAI,MAAM,QAAQ,QAAQ;AACtB,WAAO,QAAQ,QAAQ;AAC3B,MAAI,YAAY;AACZ,WAAO,CAAC;AACZ,SAAO,oBAAoB,IAAI;AAC/B,QAAM,MAAM,OAAO,KAAK,QAAQ,EAC3B,KAAK,CAAC,GAAG,MAAM;AAChB,WAAO,EAAE,MAAM,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,EAAE;AAAA,EAC9C,CAAC,EACI,KAAK,CAACC,SAAQ;AAEf,WAAO,KAAK,WAAW,oBAAoBA,IAAG,CAAC;AAAA,EACnD,CAAC;AACD,QAAM,UAAU,MAAM,SAAS,GAAG,IAAI,CAAC;AACvC,SAAO,MAAM,QAAQ,OAAO,IACtB,QAAQ,OAAO,IACf,QAAQ,QAAQ,OAAO,QAAQ,IAAI;AAC7C;AAIO,SAAS,iBAAiB,SAAS;AACtC,QAAM,SAAS,CAAC;AAChB,MAAI,iBAAiB;AACrB,aAAW,SAAS,SAAS;AACzB,UAAM,OAAO,QAAQ,KAAK;AAC1B,QAAI,KAAK,OAAO;AACZ,uBAAiB,OAAO,KAAK,IAAI;AACjC;AAAA,IACJ;AACA,QAAI,CAAC,OAAO,cAAc,GAAG;AACzB,aAAO,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;AAAA,IAC7B;AACA,WAAO,cAAc,EAAE,MAAM,KAAK,IAAI;AAAA,EAC1C;AACA,SAAO;AACX;AAiCA,SAAS,QAAQ,OAAO,OAAO;AAC3B,SAAO,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,UAAU;AAC7B,UAAM,OAAO,EAAE,GAAG,MAAM;AACxB,UAAM,OAAO,KAAK,QAAQ;AAC1B,QAAI,QAAQ,KAAK;AACb,WAAK,OAAO,OAAO,KAAK;AAC5B,QAAI,KAAK;AACL,WAAK,QAAQ,QAAQ,KAAK,OAAO,IAAI;AACzC,WAAO;AAAA,EACX,CAAC;AACL;;;ACnFO,SAAS,aAAa;AACzB,QAAM,EAAE,aAAa,MAAM,OAAAC,OAAM,IAAI,QAAQ;AAC7C,QAAM,QAAQ,cAAc,oBAAoB;AAChD,QAAM,SAAS,IAAI,KAAK;AACxB,QAAM,WAAW,SAAS,MAAM;AAC5B,UAAM,gBAAgBA,OAAM,MAAM;AAClC,UAAM,eAAe,KAAK,MAAM;AAChC,WAAO,gBAAgB,WAAW,eAAe,YAAY,IAAI,CAAC;AAAA,EACtE,CAAC;AACD,QAAM,UAAU,IAAI,SAAS,KAAK;AAClC,QAAM,UAAU,CAAC,MAAM,SAAS;AAC5B,QAAI,KAAK,UAAU,IAAI,MAAM,KAAK,UAAU,IAAI;AAC5C,cAAQ,QAAQ,SAAS;AAAA,EACjC,CAAC;AACD,QAAM,aAAa,SAAS,MAAM;AAC9B,WAAQ,YAAY,MAAM,YAAY,SAClC,QAAQ,MAAM,SAAS,KACvB,YAAY,MAAM,WAAW;AAAA,EACrC,CAAC;AACD,QAAM,YAAY,SAAS,MAAM;AAC7B,QAAI;AACA,aAAO,YAAY,MAAM,SAAS,OAC5BA,OAAM,MAAM,UAAU,SACtB,YAAY,MAAM,UAAU;AACtC,WAAO;AAAA,EACX,CAAC;AACD,QAAM,WAAW,SAAS,MAAM;AAC5B,QAAI,YAAY,MAAM,WAAW;AAC7B,aAAO;AACX,QAAI,YAAY,MAAM,SAAS;AAC3B,aAAO,CAAC,CAAC,YAAY,MAAM;AAC/B,WAAOA,OAAM,MAAM,UAAU;AAAA,EACjC,CAAC;AACD,QAAM,mBAAmB,SAAS,MAAM,WAAW,SAAS,MAAM,KAAK;AACvE,QAAM,gBAAgB,SAAS,MAAM;AACjC,WAAO,WAAW,QAAQ,iBAAiB,QAAQ,KAAK,IAAI,CAAC;AAAA,EACjE,CAAC;AACD,WAAS,OAAO;AACZ,WAAO,QAAQ;AAAA,EACnB;AACA,WAAS,QAAQ;AACb,WAAO,QAAQ;AAAA,EACnB;AACA,WAAS,SAAS;AACd,WAAO,QAAQ,MAAM,IAAI,KAAK;AAAA,EAClC;AACA,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;;;AC/DA,SAAS,wBAAwB;;;ACAjC,SAAS,uBAAuB;AAKhC,IAAM,kBAAkB,CAAC;AAQlB,SAAS,WAAW,OAAO;AAC9B,QAAM,UAAU;AAAA,IACZ,GAAG,SAAS,iBAAiB,kCAAkC;AAAA,EACnE,EACK,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,cAAc,CAAC,EAC1C,IAAI,CAAC,OAAO;AACb,UAAM,QAAQ,OAAO,GAAG,QAAQ,CAAC,CAAC;AAClC,WAAO;AAAA,MACH,SAAS;AAAA,MACT,OAAO,gBAAgB,EAAE;AAAA,MACzB,MAAM,MAAM,GAAG;AAAA,MACf;AAAA,IACJ;AAAA,EACJ,CAAC;AACD,SAAO,eAAe,SAAS,KAAK;AACxC;AACA,SAAS,gBAAgB,GAAG;AACxB,MAAI,MAAM;AACV,aAAW,QAAQ,EAAE,YAAY;AAC7B,QAAI,KAAK,aAAa,GAAG;AACrB,UAAI,KAAK,UAAU,SAAS,SAAS,KACjC,KAAK,UAAU,SAAS,eAAe,KACvC,KAAK,UAAU,SAAS,eAAe,GAAG;AAC1C;AAAA,MACJ;AACA,aAAO,KAAK;AAAA,IAChB,WACS,KAAK,aAAa,GAAG;AAC1B,aAAO,KAAK;AAAA,IAChB;AAAA,EACJ;AACA,SAAO,IAAI,KAAK;AACpB;AACO,SAAS,eAAe,SAAS,OAAO;AAC3C,MAAI,UAAU,OAAO;AACjB,WAAO,CAAC;AAAA,EACZ;AACA,QAAM,eAAe,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK,IAChE,MAAM,QACN,UAAU;AAChB,QAAM,CAAC,MAAM,GAAG,IAAI,OAAO,gBAAgB,WACrC,CAAC,aAAa,WAAW,IACzB,gBAAgB,SACZ,CAAC,GAAG,CAAC,IACL;AACV,YAAU,QAAQ,OAAO,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,SAAS,GAAG;AAEjE,kBAAgB,SAAS;AAEzB,aAAW,EAAE,SAAS,KAAK,KAAK,SAAS;AACrC,oBAAgB,KAAK,EAAE,SAAS,KAAK,CAAC;AAAA,EAC1C;AACA,QAAM,MAAM,CAAC;AACb,QAAO,UAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AAC5C,UAAM,MAAM,QAAQ,CAAC;AACrB,QAAI,MAAM,GAAG;AACT,UAAI,KAAK,GAAG;AAAA,IAChB,OACK;AACD,eAAS,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK;AAC7B,cAAM,OAAO,QAAQ,CAAC;AACtB,YAAI,KAAK,QAAQ,IAAI,OAAO;AACxB;AACA,WAAC,KAAK,aAAa,KAAK,WAAW,CAAC,IAAI,KAAK,GAAG;AAChD,mBAAS;AAAA,QACb;AAAA,MACJ;AACA,UAAI,KAAK,GAAG;AAAA,IAChB;AAAA,EACJ;AACA,SAAO;AACX;;;ADhFO,SAAS,cAAc;AAC1B,QAAM,EAAE,OAAAC,QAAO,YAAY,IAAI,QAAQ;AACvC,QAAM,UAAU,WAAW,CAAC,CAAC;AAC7B,QAAM,cAAc,SAAS,MAAM;AAC/B,WAAO,QAAQ,MAAM,SAAS;AAAA,EAClC,CAAC;AACD,mBAAiB,MAAM;AACnB,YAAQ,QAAQ,WAAW,YAAY,MAAM,WAAWA,OAAM,MAAM,OAAO;AAAA,EAC/E,CAAC;AACD,SAAO;AAAA,IACH;AAAA,IACA;AAAA,EACJ;AACJ;;;ALSA,IAAM,QAAQ;AAAA,EACV;AAAA,EACA,YAAY,CAAC,EAAE,IAAI,MAAM;AACrB,QAAI,UAAU,SAAS,OAAO;AAAA,EAClC;AACJ;AACA,IAAO,wBAAQ;",
6 | "names": ["default", "dir", "theme", "theme"]
7 | }
8 |
--------------------------------------------------------------------------------
/utils/lib/highlight-es6.js:
--------------------------------------------------------------------------------
1 | /*! highlight.js v9.14.2 | BSD3 License | git.io/hljslicense */
2 | export const hljs = {};
3 | !(function(e) {
4 | function r(e) {
5 | return e
6 | .replace(/&/g, '&')
7 | .replace(//g, '>');
9 | }
10 | function t(e) {
11 | return e.nodeName.toLowerCase();
12 | }
13 | function a(e, r) {
14 | var t = e && e.exec(r);
15 | return t && 0 === t.index;
16 | }
17 | function n(e) {
18 | return C.test(e);
19 | }
20 | function o(e) {
21 | var r,
22 | t = {},
23 | a = Array.prototype.slice.call(arguments, 1);
24 | for (r in e) t[r] = e[r];
25 | return (
26 | a.forEach(function(e) {
27 | for (r in e) t[r] = e[r];
28 | }),
29 | t
30 | );
31 | }
32 | function i(e) {
33 | var r = [];
34 | return (
35 | (function e(a, n) {
36 | for (var o = a.firstChild; o; o = o.nextSibling)
37 | 3 === o.nodeType
38 | ? (n += o.nodeValue.length)
39 | : 1 === o.nodeType &&
40 | (r.push({ event: 'start', offset: n, node: o }),
41 | (n = e(o, n)),
42 | t(o).match(/br|hr|img|input/) ||
43 | r.push({ event: 'stop', offset: n, node: o }));
44 | return n;
45 | })(e, 0),
46 | r
47 | );
48 | }
49 | function l(e, a, n) {
50 | function o() {
51 | return e.length && a.length
52 | ? e[0].offset !== a[0].offset
53 | ? e[0].offset < a[0].offset
54 | ? e
55 | : a
56 | : 'start' === a[0].event
57 | ? e
58 | : a
59 | : e.length
60 | ? e
61 | : a;
62 | }
63 | function i(e) {
64 | u +=
65 | '<' +
66 | t(e) +
67 | _.map
68 | .call(e.attributes, function(e) {
69 | return ' ' + e.nodeName + '="' + r(e.value).replace('"', '"') + '"';
70 | })
71 | .join('') +
72 | '>';
73 | }
74 | function l(e) {
75 | u += '' + t(e) + '>';
76 | }
77 | function s(e) {
78 | ('start' === e.event ? i : l)(e.node);
79 | }
80 | for (var c = 0, u = '', g = []; e.length || a.length; ) {
81 | var m = o();
82 | if (((u += r(n.substring(c, m[0].offset))), (c = m[0].offset), m === e)) {
83 | g.reverse().forEach(l);
84 | do {
85 | s(m.splice(0, 1)[0]), (m = o());
86 | } while (m === e && m.length && m[0].offset === c);
87 | g.reverse().forEach(i);
88 | } else 'start' === m[0].event ? g.push(m[0].node) : g.pop(), s(m.splice(0, 1)[0]);
89 | }
90 | return u + r(n.substr(c));
91 | }
92 | function s(e) {
93 | return (
94 | e.v &&
95 | !e.cached_variants &&
96 | (e.cached_variants = e.v.map(function(r) {
97 | return o(e, { v: null }, r);
98 | })),
99 | e.cached_variants || (e.eW && [o(e)]) || [e]
100 | );
101 | }
102 | function c(e) {
103 | function r(e) {
104 | return (e && e.source) || e;
105 | }
106 | function t(t, a) {
107 | return new RegExp(r(t), 'm' + (e.cI ? 'i' : '') + (a ? 'g' : ''));
108 | }
109 | !(function a(n, o) {
110 | if (!n.compiled) {
111 | if (((n.compiled = !0), (n.k = n.k || n.bK), n.k)) {
112 | var i = {},
113 | l = function(r, t) {
114 | e.cI && (t = t.toLowerCase()),
115 | t.split(' ').forEach(function(e) {
116 | var t = e.split('|');
117 | i[t[0]] = [r, t[1] ? Number(t[1]) : 1];
118 | });
119 | };
120 | 'string' == typeof n.k
121 | ? l('keyword', n.k)
122 | : b(n.k).forEach(function(e) {
123 | l(e, n.k[e]);
124 | }),
125 | (n.k = i);
126 | }
127 | (n.lR = t(n.l || /\w+/, !0)),
128 | o &&
129 | (n.bK && (n.b = '\\b(' + n.bK.split(' ').join('|') + ')\\b'),
130 | n.b || (n.b = /\B|\b/),
131 | (n.bR = t(n.b)),
132 | n.endSameAsBegin && (n.e = n.b),
133 | n.e || n.eW || (n.e = /\B|\b/),
134 | n.e && (n.eR = t(n.e)),
135 | (n.tE = r(n.e) || ''),
136 | n.eW && o.tE && (n.tE += (n.e ? '|' : '') + o.tE)),
137 | n.i && (n.iR = t(n.i)),
138 | null == n.r && (n.r = 1),
139 | n.c || (n.c = []),
140 | (n.c = Array.prototype.concat.apply(
141 | [],
142 | n.c.map(function(e) {
143 | return s('self' === e ? n : e);
144 | })
145 | )),
146 | n.c.forEach(function(e) {
147 | a(e, n);
148 | }),
149 | n.starts && a(n.starts, o);
150 | var c = n.c
151 | .map(function(e) {
152 | return e.bK ? '\\.?(' + e.b + ')\\.?' : e.b;
153 | })
154 | .concat([n.tE, n.i])
155 | .map(r)
156 | .filter(Boolean);
157 | n.t = c.length
158 | ? t(c.join('|'), !0)
159 | : {
160 | exec: function() {
161 | return null;
162 | },
163 | };
164 | }
165 | })(e);
166 | }
167 | function u(e, t, n, o) {
168 | function i(e) {
169 | return new RegExp(e.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), 'm');
170 | }
171 | function l(e, r) {
172 | var t, n;
173 | for (t = 0, n = r.c.length; n > t; t++)
174 | if (a(r.c[t].bR, e))
175 | return r.c[t].endSameAsBegin && (r.c[t].eR = i(r.c[t].bR.exec(e)[0])), r.c[t];
176 | }
177 | function s(e, r) {
178 | if (a(e.eR, r)) {
179 | for (; e.endsParent && e.parent; ) e = e.parent;
180 | return e;
181 | }
182 | return e.eW ? s(e.parent, r) : void 0;
183 | }
184 | function m(e, r) {
185 | return !n && a(r.iR, e);
186 | }
187 | function p(e, r) {
188 | var t = h.cI ? r[0].toLowerCase() : r[0];
189 | return e.k.hasOwnProperty(t) && e.k[t];
190 | }
191 | function f(e, r, t, a) {
192 | var n = '') + r + (t ? '' : A);
194 | }
195 | function d() {
196 | (w +=
197 | null != v.sL
198 | ? (function() {
199 | var e = 'string' == typeof v.sL;
200 | if (e && !M[v.sL]) return r(S);
201 | var t = e ? u(v.sL, S, !0, y[v.sL]) : g(S, v.sL.length ? v.sL : void 0);
202 | return (
203 | v.r > 0 && (N += t.r),
204 | e && (y[v.sL] = t.top),
205 | f(t.language, t.value, !1, !0)
206 | );
207 | })()
208 | : (function() {
209 | var e, t, a, n;
210 | if (!v.k) return r(S);
211 | for (n = '', t = 0, v.lR.lastIndex = 0, a = v.lR.exec(S); a; )
212 | (n += r(S.substring(t, a.index))),
213 | (e = p(v, a))
214 | ? ((N += e[1]), (n += f(e[0], r(a[0]))))
215 | : (n += r(a[0])),
216 | (t = v.lR.lastIndex),
217 | (a = v.lR.exec(S));
218 | return n + r(S.substr(t));
219 | })()),
220 | (S = '');
221 | }
222 | function _(e) {
223 | (w += e.cN ? f(e.cN, '', !0) : ''), (v = Object.create(e, { parent: { value: v } }));
224 | }
225 | function b(e, r) {
226 | if (((S += e), null == r)) return d(), 0;
227 | var t = l(r, v);
228 | if (t)
229 | return (
230 | t.skip ? (S += r) : (t.eB && (S += r), d(), t.rB || t.eB || (S = r)),
231 | _(t),
232 | t.rB ? 0 : r.length
233 | );
234 | var a = s(v, r);
235 | if (a) {
236 | var n = v;
237 | n.skip ? (S += r) : (n.rE || n.eE || (S += r), d(), n.eE && (S = r));
238 | do {
239 | v.cN && (w += A), v.skip || v.sL || (N += v.r), (v = v.parent);
240 | } while (v !== a.parent);
241 | return (
242 | a.starts && (a.endSameAsBegin && (a.starts.eR = a.eR), _(a.starts)),
243 | n.rE ? 0 : r.length
244 | );
245 | }
246 | if (m(r, v))
247 | throw new Error(
248 | 'Illegal lexeme "' + r + '" for mode "' + (v.cN || '') + '"'
249 | );
250 | return (S += r), r.length || 1;
251 | }
252 | var h = x(e);
253 | if (!h) throw new Error('Unknown language: "' + e + '"');
254 | c(h);
255 | var C,
256 | v = o || h,
257 | y = {},
258 | w = '';
259 | for (C = v; C !== h; C = C.parent) C.cN && (w = f(C.cN, '', !0) + w);
260 | var S = '',
261 | N = 0;
262 | try {
263 | for (var E, I, T = 0; (v.t.lastIndex = T), (E = v.t.exec(t)); )
264 | (I = b(t.substring(T, E.index), E[0])), (T = E.index + I);
265 | for (b(t.substr(T)), C = v; C.parent; C = C.parent) C.cN && (w += A);
266 | return { r: N, value: w, language: e, top: v };
267 | } catch (e) {
268 | if (e.message && -1 !== e.message.indexOf('Illegal')) return { r: 0, value: r(t) };
269 | throw e;
270 | }
271 | }
272 | function g(e, t) {
273 | t = t || D.languages || b(M);
274 | var a = { r: 0, value: r(e) },
275 | n = a;
276 | return (
277 | t
278 | .filter(x)
279 | .filter(d)
280 | .forEach(function(r) {
281 | var t = u(r, e, !1);
282 | (t.language = r), t.r > n.r && (n = t), t.r > a.r && ((n = a), (a = t));
283 | }),
284 | n.language && (a.second_best = n),
285 | a
286 | );
287 | }
288 | function m(e) {
289 | return D.tabReplace || D.useBR
290 | ? e.replace(y, function(e, r) {
291 | return D.useBR && '\n' === e
292 | ? '
'
293 | : D.tabReplace
294 | ? r.replace(/\t/g, D.tabReplace)
295 | : '';
296 | })
297 | : e;
298 | }
299 | function p(e) {
300 | var r,
301 | t,
302 | a,
303 | o,
304 | s,
305 | c = (function(e) {
306 | var r,
307 | t,
308 | a,
309 | o,
310 | i = e.className + ' ';
311 | if (((i += e.parentNode ? e.parentNode.className : ''), (t = v.exec(i))))
312 | return x(t[1]) ? t[1] : 'no-highlight';
313 | for (r = 0, a = (i = i.split(/\s+/)).length; a > r; r++)
314 | if (n((o = i[r])) || x(o)) return o;
315 | })(e);
316 | n(c) ||
317 | (D.useBR
318 | ? ((r = document.createElementNS(
319 | 'http://www.w3.org/1999/xhtml',
320 | 'div'
321 | )).innerHTML = e.innerHTML.replace(/\n/g, '').replace(/
/g, '\n'))
322 | : (r = e),
323 | (s = r.textContent),
324 | (a = c ? u(c, s, !0) : g(s)),
325 | (t = i(r)).length &&
326 | (((o = document.createElementNS('http://www.w3.org/1999/xhtml', 'div')).innerHTML =
327 | a.value),
328 | (a.value = l(t, i(o), s))),
329 | (a.value = m(a.value)),
330 | (e.innerHTML = a.value),
331 | (e.className = (function(e, r, t) {
332 | var a = r ? h[r] : t,
333 | n = [e.trim()];
334 | return (
335 | e.match(/\bhljs\b/) || n.push('hljs'),
336 | -1 === e.indexOf(a) && n.push(a),
337 | n.join(' ').trim()
338 | );
339 | })(e.className, c, a.language)),
340 | (e.result = { language: a.language, re: a.r }),
341 | a.second_best &&
342 | (e.second_best = { language: a.second_best.language, re: a.second_best.r }));
343 | }
344 | function f() {
345 | if (!f.called) {
346 | f.called = !0;
347 | var e = document.querySelectorAll('pre code');
348 | _.forEach.call(e, p);
349 | }
350 | }
351 | function x(e) {
352 | return (e = (e || '').toLowerCase()), M[e] || M[h[e]];
353 | }
354 | function d(e) {
355 | var r = x(e);
356 | return r && !r.disableAutodetect;
357 | }
358 | var _ = [],
359 | b = Object.keys,
360 | M = {},
361 | h = {},
362 | C = /^(no-?highlight|plain|text)$/i,
363 | v = /\blang(?:uage)?-([\w-]+)\b/i,
364 | y = /((^(<[^>]+>|\t|)+|(?:\n)))/gm,
365 | A = '',
366 | D = { classPrefix: 'hljs-', tabReplace: null, useBR: !1, languages: void 0 };
367 | (e.highlight = u),
368 | (e.highlightAuto = g),
369 | (e.fixMarkup = m),
370 | (e.highlightBlock = p),
371 | (e.configure = function(e) {
372 | D = o(D, e);
373 | }),
374 | (e.initHighlighting = f),
375 | (e.initHighlightingOnLoad = function() {
376 | addEventListener('DOMContentLoaded', f, !1), addEventListener('load', f, !1);
377 | }),
378 | (e.registerLanguage = function(r, t) {
379 | var a = (M[r] = t(e));
380 | a.aliases &&
381 | a.aliases.forEach(function(e) {
382 | h[e] = r;
383 | });
384 | }),
385 | (e.listLanguages = function() {
386 | return b(M);
387 | }),
388 | (e.getLanguage = x),
389 | (e.autoDetection = d),
390 | (e.inherit = o),
391 | (e.IR = '[a-zA-Z]\\w*'),
392 | (e.UIR = '[a-zA-Z_]\\w*'),
393 | (e.NR = '\\b\\d+(\\.\\d+)?'),
394 | (e.CNR = '(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'),
395 | (e.BNR = '\\b(0b[01]+)'),
396 | (e.RSR =
397 | '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~'),
398 | (e.BE = { b: '\\\\[\\s\\S]', r: 0 }),
399 | (e.ASM = { cN: 'string', b: "'", e: "'", i: '\\n', c: [e.BE] }),
400 | (e.QSM = { cN: 'string', b: '"', e: '"', i: '\\n', c: [e.BE] }),
401 | (e.PWM = {
402 | b: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/,
403 | }),
404 | (e.C = function(r, t, a) {
405 | var n = e.inherit({ cN: 'comment', b: r, e: t, c: [] }, a || {});
406 | return (
407 | n.c.push(e.PWM),
408 | n.c.push({ cN: 'doctag', b: '(?:TODO|FIXME|NOTE|BUG|XXX):', r: 0 }),
409 | n
410 | );
411 | }),
412 | (e.CLCM = e.C('//', '$')),
413 | (e.CBCM = e.C('/\\*', '\\*/')),
414 | (e.HCM = e.C('#', '$')),
415 | (e.NM = { cN: 'number', b: e.NR, r: 0 }),
416 | (e.CNM = { cN: 'number', b: e.CNR, r: 0 }),
417 | (e.BNM = { cN: 'number', b: e.BNR, r: 0 }),
418 | (e.CSSNM = {
419 | cN: 'number',
420 | b:
421 | e.NR +
422 | '(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?',
423 | r: 0,
424 | }),
425 | (e.RM = {
426 | cN: 'regexp',
427 | b: /\//,
428 | e: /\/[gimuy]*/,
429 | i: /\n/,
430 | c: [e.BE, { b: /\[/, e: /\]/, r: 0, c: [e.BE] }],
431 | }),
432 | (e.TM = { cN: 'title', b: e.IR, r: 0 }),
433 | (e.UTM = { cN: 'title', b: e.UIR, r: 0 }),
434 | (e.METHOD_GUARD = { b: '\\.\\s*' + e.UIR, r: 0 });
435 | })(hljs),
436 | hljs.registerLanguage('json', function(e) {
437 | var r = { literal: 'true false null' },
438 | t = [e.QSM, e.CNM],
439 | a = { e: ',', eW: !0, eE: !0, c: t, k: r },
440 | n = {
441 | b: '{',
442 | e: '}',
443 | c: [{ cN: 'attr', b: /"/, e: /"/, c: [e.BE], i: '\\n' }, e.inherit(a, { b: /:/ })],
444 | i: '\\S',
445 | },
446 | o = { b: '\\[', e: '\\]', c: [e.inherit(a)], i: '\\S' };
447 | return t.splice(t.length, 0, n, o), { c: t, k: r, i: '\\S' };
448 | }),
449 | hljs.registerLanguage('css', function(e) {
450 | var r = {
451 | b: /[A-Z\_\.\-]+\s*:/,
452 | rB: !0,
453 | e: ';',
454 | eW: !0,
455 | c: [
456 | {
457 | cN: 'attribute',
458 | b: /\S/,
459 | e: ':',
460 | eE: !0,
461 | starts: {
462 | eW: !0,
463 | eE: !0,
464 | c: [
465 | {
466 | b: /[\w-]+\(/,
467 | rB: !0,
468 | c: [
469 | { cN: 'built_in', b: /[\w-]+/ },
470 | { b: /\(/, e: /\)/, c: [e.ASM, e.QSM] },
471 | ],
472 | },
473 | e.CSSNM,
474 | e.QSM,
475 | e.ASM,
476 | e.CBCM,
477 | { cN: 'number', b: '#[0-9A-Fa-f]+' },
478 | { cN: 'meta', b: '!important' },
479 | ],
480 | },
481 | },
482 | ],
483 | };
484 | return {
485 | cI: !0,
486 | i: /[=\/|'\$]/,
487 | c: [
488 | e.CBCM,
489 | { cN: 'selector-id', b: /#[A-Za-z0-9_-]+/ },
490 | { cN: 'selector-class', b: /\.[A-Za-z0-9_-]+/ },
491 | { cN: 'selector-attr', b: /\[/, e: /\]/, i: '$' },
492 | { cN: 'selector-pseudo', b: /:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/ },
493 | { b: '@(font-face|page)', l: '[a-z-]+', k: 'font-face page' },
494 | {
495 | b: '@',
496 | e: '[{;]',
497 | i: /:/,
498 | c: [
499 | { cN: 'keyword', b: /\w+/ },
500 | { b: /\s/, eW: !0, eE: !0, r: 0, c: [e.ASM, e.QSM, e.CSSNM] },
501 | ],
502 | },
503 | { cN: 'selector-tag', b: '[a-zA-Z-][a-zA-Z0-9_-]*', r: 0 },
504 | { b: '{', e: '}', i: /\S/, c: [e.CBCM, r] },
505 | ],
506 | };
507 | }),
508 | hljs.registerLanguage('xml', function(e) {
509 | var r = {
510 | eW: !0,
511 | i: /,
512 | r: 0,
513 | c: [
514 | { cN: 'attr', b: '[A-Za-z0-9\\._:-]+', r: 0 },
515 | {
516 | b: /=\s*/,
517 | r: 0,
518 | c: [
519 | {
520 | cN: 'string',
521 | endsParent: !0,
522 | v: [{ b: /"/, e: /"/ }, { b: /'/, e: /'/ }, { b: /[^\s"'=<>`]+/ }],
523 | },
524 | ],
525 | },
526 | ],
527 | };
528 | return {
529 | aliases: ['html', 'xhtml', 'rss', 'atom', 'xjb', 'xsd', 'xsl', 'plist'],
530 | cI: !0,
531 | c: [
532 | { cN: 'meta', b: '', r: 10, c: [{ b: '\\[', e: '\\]' }] },
533 | e.C('\x3c!--', '--\x3e', { r: 10 }),
534 | { b: '<\\!\\[CDATA\\[', e: '\\]\\]>', r: 10 },
535 | { cN: 'meta', b: /<\?xml/, e: /\?>/, r: 10 },
536 | {
537 | b: /<\?(php)?/,
538 | e: /\?>/,
539 | sL: 'php',
540 | c: [
541 | { b: '/\\*', e: '\\*/', skip: !0 },
542 | { b: 'b"', e: '"', skip: !0 },
543 | { b: "b'", e: "'", skip: !0 },
544 | e.inherit(e.ASM, { i: null, cN: null, c: null, skip: !0 }),
545 | e.inherit(e.QSM, { i: null, cN: null, c: null, skip: !0 }),
546 | ],
547 | },
548 | {
549 | cN: 'tag',
550 | b: '', rE: !0, sL: ['css', 'xml'] },
555 | },
556 | {
557 | cN: 'tag',
558 | b: '',
564 | rE: !0,
565 | sL: ['actionscript', 'javascript', 'handlebars', 'xml'],
566 | },
567 | },
568 | { cN: 'tag', b: '?', e: '/?>', c: [{ cN: 'name', b: /[^\/><\s]+/, r: 0 }, r] },
569 | ],
570 | };
571 | }),
572 | hljs.registerLanguage('javascript', function(e) {
573 | var r = '[A-Za-z$_][0-9A-Za-z$_]*',
574 | t = {
575 | keyword:
576 | 'in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as',
577 | literal: 'true false null undefined NaN Infinity',
578 | built_in:
579 | 'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise',
580 | },
581 | a = {
582 | cN: 'number',
583 | v: [{ b: '\\b(0[bB][01]+)' }, { b: '\\b(0[oO][0-7]+)' }, { b: e.CNR }],
584 | r: 0,
585 | },
586 | n = { cN: 'subst', b: '\\$\\{', e: '\\}', k: t, c: [] },
587 | o = { cN: 'string', b: '`', e: '`', c: [e.BE, n] };
588 | n.c = [e.ASM, e.QSM, o, a, e.RM];
589 | var i = n.c.concat([e.CBCM, e.CLCM]);
590 | return {
591 | aliases: ['js', 'jsx'],
592 | k: t,
593 | c: [
594 | { cN: 'meta', r: 10, b: /^\s*['"]use (strict|asm)['"]/ },
595 | { cN: 'meta', b: /^#!/, e: /$/ },
596 | e.ASM,
597 | e.QSM,
598 | o,
599 | e.CLCM,
600 | e.CBCM,
601 | a,
602 | {
603 | b: /[{,]\s*/,
604 | r: 0,
605 | c: [{ b: r + '\\s*:', rB: !0, r: 0, c: [{ cN: 'attr', b: r, r: 0 }] }],
606 | },
607 | {
608 | b: '(' + e.RSR + '|\\b(case|return|throw)\\b)\\s*',
609 | k: 'return throw case',
610 | c: [
611 | e.CLCM,
612 | e.CBCM,
613 | e.RM,
614 | {
615 | cN: 'function',
616 | b: '(\\(.*?\\)|' + r + ')\\s*=>',
617 | rB: !0,
618 | e: '\\s*=>',
619 | c: [
620 | {
621 | cN: 'params',
622 | v: [
623 | { b: r },
624 | { b: /\(\s*\)/ },
625 | { b: /\(/, e: /\)/, eB: !0, eE: !0, k: t, c: i },
626 | ],
627 | },
628 | ],
629 | },
630 | {
631 | b: /,
632 | e: /(\/\w+|\w+\/)>/,
633 | sL: 'xml',
634 | c: [
635 | { b: /<\w+\s*\/>/, skip: !0 },
636 | {
637 | b: /<\w+/,
638 | e: /(\/\w+|\w+\/)>/,
639 | skip: !0,
640 | c: [{ b: /<\w+\s*\/>/, skip: !0 }, 'self'],
641 | },
642 | ],
643 | },
644 | ],
645 | r: 0,
646 | },
647 | {
648 | cN: 'function',
649 | bK: 'function',
650 | e: /\{/,
651 | eE: !0,
652 | c: [
653 | e.inherit(e.TM, { b: r }),
654 | { cN: 'params', b: /\(/, e: /\)/, eB: !0, eE: !0, c: i },
655 | ],
656 | i: /\[|%/,
657 | },
658 | { b: /\$[(.]/ },
659 | e.METHOD_GUARD,
660 | {
661 | cN: 'class',
662 | bK: 'class',
663 | e: /[{;=]/,
664 | eE: !0,
665 | i: /[:"\[\]]/,
666 | c: [{ bK: 'extends' }, e.UTM],
667 | },
668 | { bK: 'constructor get set', e: /\{/, eE: !0 },
669 | ],
670 | i: /#(?!!)/,
671 | };
672 | }),
673 | hljs.registerLanguage('glsl', function(e) {
674 | return {
675 | k: {
676 | keyword:
677 | 'break continue discard do else for if return while switch case default attribute binding buffer ccw centroid centroid varying coherent column_major const cw depth_any depth_greater depth_less depth_unchanged early_fragment_tests equal_spacing flat fractional_even_spacing fractional_odd_spacing highp in index inout invariant invocations isolines layout line_strip lines lines_adjacency local_size_x local_size_y local_size_z location lowp max_vertices mediump noperspective offset origin_upper_left out packed patch pixel_center_integer point_mode points precise precision quads r11f_g11f_b10f r16 r16_snorm r16f r16i r16ui r32f r32i r32ui r8 r8_snorm r8i r8ui readonly restrict rg16 rg16_snorm rg16f rg16i rg16ui rg32f rg32i rg32ui rg8 rg8_snorm rg8i rg8ui rgb10_a2 rgb10_a2ui rgba16 rgba16_snorm rgba16f rgba16i rgba16ui rgba32f rgba32i rgba32ui rgba8 rgba8_snorm rgba8i rgba8ui row_major sample shared smooth std140 std430 stream triangle_strip triangles triangles_adjacency uniform varying vertices volatile writeonly',
678 | type:
679 | 'atomic_uint bool bvec2 bvec3 bvec4 dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 double dvec2 dvec3 dvec4 float iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBufferiimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray int isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow image1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D samplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 vec2 vec3 vec4 void',
680 | built_in:
681 | 'gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxComputeAtomicCounterBuffers gl_MaxComputeAtomicCounters gl_MaxComputeImageUniforms gl_MaxComputeTextureImageUnits gl_MaxComputeUniformComponents gl_MaxComputeWorkGroupCount gl_MaxComputeWorkGroupSize gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentInputVectors gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexOutputVectors gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffset gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_GlobalInvocationID gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_LocalInvocationID gl_LocalInvocationIndex gl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_NumSamples gl_NumWorkGroups gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrix gl_TextureMatrixInverse gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_WorkGroupID gl_WorkGroupSize gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicAdd atomicAnd atomicCompSwap atomicCounter atomicCounterDecrement atomicCounterIncrement atomicExchange atomicMax atomicMin atomicOr atomicXor barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual groupMemoryBarrier imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageSize imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier memoryBarrierAtomicCounter memoryBarrierBuffer memoryBarrierImage memoryBarrierShared min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLevels textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow',
682 | literal: 'true false',
683 | },
684 | i: '"',
685 | c: [e.CLCM, e.CBCM, e.CNM, { cN: 'meta', b: '#', e: '$' }],
686 | };
687 | });
688 |
--------------------------------------------------------------------------------
/utils/lib/highlight-node.js:
--------------------------------------------------------------------------------
1 | /*! highlight.js v9.15.6 | BSD3 License | git.io/hljslicense */
2 | !(function(e) {
3 | var n = ('object' == typeof window && window) || ('object' == typeof self && self);
4 | 'undefined' != typeof exports
5 | ? e(exports)
6 | : n &&
7 | ((n.hljs = e({})),
8 | 'function' == typeof define &&
9 | define.amd &&
10 | define([], function() {
11 | return n.hljs;
12 | }));
13 | })(function(a) {
14 | var E = [],
15 | u = Object.keys,
16 | N = {},
17 | g = {},
18 | n = /^(no-?highlight|plain|text)$/i,
19 | R = /\blang(?:uage)?-([\w-]+)\b/i,
20 | t = /((^(<[^>]+>|\t|)+|(?:\n)))/gm,
21 | r = {
22 | case_insensitive: 'cI',
23 | lexemes: 'l',
24 | contains: 'c',
25 | keywords: 'k',
26 | subLanguage: 'sL',
27 | className: 'cN',
28 | begin: 'b',
29 | beginKeywords: 'bK',
30 | end: 'e',
31 | endsWithParent: 'eW',
32 | illegal: 'i',
33 | excludeBegin: 'eB',
34 | excludeEnd: 'eE',
35 | returnBegin: 'rB',
36 | returnEnd: 'rE',
37 | relevance: 'r',
38 | variants: 'v',
39 | IDENT_RE: 'IR',
40 | UNDERSCORE_IDENT_RE: 'UIR',
41 | NUMBER_RE: 'NR',
42 | C_NUMBER_RE: 'CNR',
43 | BINARY_NUMBER_RE: 'BNR',
44 | RE_STARTERS_RE: 'RSR',
45 | BACKSLASH_ESCAPE: 'BE',
46 | APOS_STRING_MODE: 'ASM',
47 | QUOTE_STRING_MODE: 'QSM',
48 | PHRASAL_WORDS_MODE: 'PWM',
49 | C_LINE_COMMENT_MODE: 'CLCM',
50 | C_BLOCK_COMMENT_MODE: 'CBCM',
51 | HASH_COMMENT_MODE: 'HCM',
52 | NUMBER_MODE: 'NM',
53 | C_NUMBER_MODE: 'CNM',
54 | BINARY_NUMBER_MODE: 'BNM',
55 | CSS_NUMBER_MODE: 'CSSNM',
56 | REGEXP_MODE: 'RM',
57 | TITLE_MODE: 'TM',
58 | UNDERSCORE_TITLE_MODE: 'UTM',
59 | COMMENT: 'C',
60 | beginRe: 'bR',
61 | endRe: 'eR',
62 | illegalRe: 'iR',
63 | lexemesRe: 'lR',
64 | terminators: 't',
65 | terminator_end: 'tE',
66 | },
67 | b = '',
68 | h = { classPrefix: 'hljs-', tabReplace: null, useBR: !1, languages: void 0 };
69 | function _(e) {
70 | return e
71 | .replace(/&/g, '&')
72 | .replace(//g, '>');
74 | }
75 | function d(e) {
76 | return e.nodeName.toLowerCase();
77 | }
78 | function v(e, n) {
79 | var t = e && e.exec(n);
80 | return t && 0 === t.index;
81 | }
82 | function p(e) {
83 | return n.test(e);
84 | }
85 | function l(e) {
86 | var n,
87 | t = {},
88 | r = Array.prototype.slice.call(arguments, 1);
89 | for (n in e) t[n] = e[n];
90 | return (
91 | r.forEach(function(e) {
92 | for (n in e) t[n] = e[n];
93 | }),
94 | t
95 | );
96 | }
97 | function M(e) {
98 | var a = [];
99 | return (
100 | (function e(n, t) {
101 | for (var r = n.firstChild; r; r = r.nextSibling)
102 | 3 === r.nodeType
103 | ? (t += r.nodeValue.length)
104 | : 1 === r.nodeType &&
105 | (a.push({ event: 'start', offset: t, node: r }),
106 | (t = e(r, t)),
107 | d(r).match(/br|hr|img|input/) ||
108 | a.push({ event: 'stop', offset: t, node: r }));
109 | return t;
110 | })(e, 0),
111 | a
112 | );
113 | }
114 | function i(e) {
115 | if (r && !e.langApiRestored) {
116 | for (var n in ((e.langApiRestored = !0), r)) e[n] && (e[r[n]] = e[n]);
117 | (e.c || []).concat(e.v || []).forEach(i);
118 | }
119 | }
120 | function m(c) {
121 | function s(e) {
122 | return (e && e.source) || e;
123 | }
124 | function o(e, n) {
125 | return new RegExp(s(e), 'm' + (c.cI ? 'i' : '') + (n ? 'g' : ''));
126 | }
127 | !(function n(t, e) {
128 | if (!t.compiled) {
129 | if (((t.compiled = !0), (t.k = t.k || t.bK), t.k)) {
130 | var r = {},
131 | a = function(t, e) {
132 | c.cI && (e = e.toLowerCase()),
133 | e.split(' ').forEach(function(e) {
134 | var n = e.split('|');
135 | r[n[0]] = [t, n[1] ? Number(n[1]) : 1];
136 | });
137 | };
138 | 'string' == typeof t.k
139 | ? a('keyword', t.k)
140 | : u(t.k).forEach(function(e) {
141 | a(e, t.k[e]);
142 | }),
143 | (t.k = r);
144 | }
145 | (t.lR = o(t.l || /\w+/, !0)),
146 | e &&
147 | (t.bK && (t.b = '\\b(' + t.bK.split(' ').join('|') + ')\\b'),
148 | t.b || (t.b = /\B|\b/),
149 | (t.bR = o(t.b)),
150 | t.endSameAsBegin && (t.e = t.b),
151 | t.e || t.eW || (t.e = /\B|\b/),
152 | t.e && (t.eR = o(t.e)),
153 | (t.tE = s(t.e) || ''),
154 | t.eW && e.tE && (t.tE += (t.e ? '|' : '') + e.tE)),
155 | t.i && (t.iR = o(t.i)),
156 | null == t.r && (t.r = 1),
157 | t.c || (t.c = []),
158 | (t.c = Array.prototype.concat.apply(
159 | [],
160 | t.c.map(function(e) {
161 | return (
162 | (n = 'self' === e ? t : e).v &&
163 | !n.cached_variants &&
164 | (n.cached_variants = n.v.map(function(e) {
165 | return l(n, { v: null }, e);
166 | })),
167 | n.cached_variants || (n.eW && [l(n)]) || [n]
168 | );
169 | var n;
170 | })
171 | )),
172 | t.c.forEach(function(e) {
173 | n(e, t);
174 | }),
175 | t.starts && n(t.starts, e);
176 | var i = t.c
177 | .map(function(e) {
178 | return e.bK ? '\\.?(?:' + e.b + ')\\.?' : e.b;
179 | })
180 | .concat([t.tE, t.i])
181 | .map(s)
182 | .filter(Boolean);
183 | t.t = i.length
184 | ? o(
185 | (function(e, n) {
186 | for (
187 | var t = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,
188 | r = 0,
189 | a = '',
190 | i = 0;
191 | i < e.length;
192 | i++
193 | ) {
194 | var c = r,
195 | o = s(e[i]);
196 | for (0 < i && (a += n); 0 < o.length; ) {
197 | var u = t.exec(o);
198 | if (null == u) {
199 | a += o;
200 | break;
201 | }
202 | (a += o.substring(0, u.index)),
203 | (o = o.substring(u.index + u[0].length)),
204 | '\\' == u[0][0] && u[1]
205 | ? (a += '\\' + String(Number(u[1]) + c))
206 | : ((a += u[0]), '(' == u[0] && r++);
207 | }
208 | }
209 | return a;
210 | })(i, '|'),
211 | !0
212 | )
213 | : {
214 | exec: function() {
215 | return null;
216 | },
217 | };
218 | }
219 | })(c);
220 | }
221 | function C(e, n, o, t) {
222 | function u(e, n, t, r) {
223 | var a = '') + n + (t ? '' : b);
225 | }
226 | function s() {
227 | (g +=
228 | null != E.sL
229 | ? (function() {
230 | var e = 'string' == typeof E.sL;
231 | if (e && !N[E.sL]) return _(R);
232 | var n = e ? C(E.sL, R, !0, i[E.sL]) : O(R, E.sL.length ? E.sL : void 0);
233 | return (
234 | 0 < E.r && (d += n.r),
235 | e && (i[E.sL] = n.top),
236 | u(n.language, n.value, !1, !0)
237 | );
238 | })()
239 | : (function() {
240 | var e, n, t, r, a, i, c;
241 | if (!E.k) return _(R);
242 | for (r = '', n = 0, E.lR.lastIndex = 0, t = E.lR.exec(R); t; )
243 | (r += _(R.substring(n, t.index))),
244 | (a = E),
245 | (i = t),
246 | (c = f.cI ? i[0].toLowerCase() : i[0]),
247 | (e = a.k.hasOwnProperty(c) && a.k[c])
248 | ? ((d += e[1]), (r += u(e[0], _(t[0]))))
249 | : (r += _(t[0])),
250 | (n = E.lR.lastIndex),
251 | (t = E.lR.exec(R));
252 | return r + _(R.substr(n));
253 | })()),
254 | (R = '');
255 | }
256 | function l(e) {
257 | (g += e.cN ? u(e.cN, '', !0) : ''), (E = Object.create(e, { parent: { value: E } }));
258 | }
259 | function r(e, n) {
260 | if (((R += e), null == n)) return s(), 0;
261 | var t = (function(e, n) {
262 | var t, r, a;
263 | for (t = 0, r = n.c.length; t < r; t++)
264 | if (v(n.c[t].bR, e))
265 | return (
266 | n.c[t].endSameAsBegin &&
267 | (n.c[t].eR = ((a = n.c[t].bR.exec(e)[0]),
268 | new RegExp(a.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), 'm'))),
269 | n.c[t]
270 | );
271 | })(n, E);
272 | if (t)
273 | return (
274 | t.skip ? (R += n) : (t.eB && (R += n), s(), t.rB || t.eB || (R = n)),
275 | l(t),
276 | t.rB ? 0 : n.length
277 | );
278 | var r,
279 | a,
280 | i = (function e(n, t) {
281 | if (v(n.eR, t)) {
282 | for (; n.endsParent && n.parent; ) n = n.parent;
283 | return n;
284 | }
285 | if (n.eW) return e(n.parent, t);
286 | })(E, n);
287 | if (i) {
288 | var c = E;
289 | for (
290 | c.skip ? (R += n) : (c.rE || c.eE || (R += n), s(), c.eE && (R = n));
291 | E.cN && (g += b), E.skip || E.sL || (d += E.r), (E = E.parent) !== i.parent;
292 |
293 | );
294 | return (
295 | i.starts && (i.endSameAsBegin && (i.starts.eR = i.eR), l(i.starts)),
296 | c.rE ? 0 : n.length
297 | );
298 | }
299 | if (((r = n), (a = E), !o && v(a.iR, r)))
300 | throw new Error(
301 | 'Illegal lexeme "' + n + '" for mode "' + (E.cN || '') + '"'
302 | );
303 | return (R += n), n.length || 1;
304 | }
305 | var f = S(e);
306 | if (!f) throw new Error('Unknown language: "' + e + '"');
307 | m(f);
308 | var a,
309 | E = t || f,
310 | i = {},
311 | g = '';
312 | for (a = E; a !== f; a = a.parent) a.cN && (g = u(a.cN, '', !0) + g);
313 | var R = '',
314 | d = 0;
315 | try {
316 | for (var c, p, M = 0; (E.t.lastIndex = M), (c = E.t.exec(n)); )
317 | (p = r(n.substring(M, c.index), c[0])), (M = c.index + p);
318 | for (r(n.substr(M)), a = E; a.parent; a = a.parent) a.cN && (g += b);
319 | return { r: d, value: g, language: e, top: E };
320 | } catch (e) {
321 | if (e.message && -1 !== e.message.indexOf('Illegal')) return { r: 0, value: _(n) };
322 | throw e;
323 | }
324 | }
325 | function O(t, e) {
326 | e = e || h.languages || u(N);
327 | var r = { r: 0, value: _(t) },
328 | a = r;
329 | return (
330 | e
331 | .filter(S)
332 | .filter(s)
333 | .forEach(function(e) {
334 | var n = C(e, t, !1);
335 | (n.language = e), n.r > a.r && (a = n), n.r > r.r && ((a = r), (r = n));
336 | }),
337 | a.language && (r.second_best = a),
338 | r
339 | );
340 | }
341 | function B(e) {
342 | return h.tabReplace || h.useBR
343 | ? e.replace(t, function(e, n) {
344 | return h.useBR && '\n' === e
345 | ? '
'
346 | : h.tabReplace
347 | ? n.replace(/\t/g, h.tabReplace)
348 | : '';
349 | })
350 | : e;
351 | }
352 | function c(e) {
353 | var n,
354 | t,
355 | r,
356 | a,
357 | i,
358 | c,
359 | o,
360 | u,
361 | s,
362 | l,
363 | f = (function(e) {
364 | var n,
365 | t,
366 | r,
367 | a,
368 | i = e.className + ' ';
369 | if (((i += e.parentNode ? e.parentNode.className : ''), (t = R.exec(i))))
370 | return S(t[1]) ? t[1] : 'no-highlight';
371 | for (n = 0, r = (i = i.split(/\s+/)).length; n < r; n++)
372 | if (p((a = i[n])) || S(a)) return a;
373 | })(e);
374 | p(f) ||
375 | (h.useBR
376 | ? ((n = document.createElementNS(
377 | 'http://www.w3.org/1999/xhtml',
378 | 'div'
379 | )).innerHTML = e.innerHTML.replace(/\n/g, '').replace(/
/g, '\n'))
380 | : (n = e),
381 | (i = n.textContent),
382 | (r = f ? C(f, i, !0) : O(i)),
383 | (t = M(n)).length &&
384 | (((a = document.createElementNS('http://www.w3.org/1999/xhtml', 'div')).innerHTML =
385 | r.value),
386 | (r.value = (function(e, n, t) {
387 | var r = 0,
388 | a = '',
389 | i = [];
390 | function c() {
391 | return e.length && n.length
392 | ? e[0].offset !== n[0].offset
393 | ? e[0].offset < n[0].offset
394 | ? e
395 | : n
396 | : 'start' === n[0].event
397 | ? e
398 | : n
399 | : e.length
400 | ? e
401 | : n;
402 | }
403 | function o(e) {
404 | a +=
405 | '<' +
406 | d(e) +
407 | E.map
408 | .call(e.attributes, function(e) {
409 | return (
410 | ' ' +
411 | e.nodeName +
412 | '="' +
413 | _(e.value).replace('"', '"') +
414 | '"'
415 | );
416 | })
417 | .join('') +
418 | '>';
419 | }
420 | function u(e) {
421 | a += '' + d(e) + '>';
422 | }
423 | function s(e) {
424 | ('start' === e.event ? o : u)(e.node);
425 | }
426 | for (; e.length || n.length; ) {
427 | var l = c();
428 | if (((a += _(t.substring(r, l[0].offset))), (r = l[0].offset), l === e)) {
429 | for (
430 | i.reverse().forEach(u);
431 | s(l.splice(0, 1)[0]),
432 | (l = c()) === e && l.length && l[0].offset === r;
433 |
434 | );
435 | i.reverse().forEach(o);
436 | } else
437 | 'start' === l[0].event ? i.push(l[0].node) : i.pop(),
438 | s(l.splice(0, 1)[0]);
439 | }
440 | return a + _(t.substr(r));
441 | })(t, M(a), i))),
442 | (r.value = B(r.value)),
443 | (e.innerHTML = r.value),
444 | (e.className = ((c = e.className),
445 | (o = f),
446 | (u = r.language),
447 | (s = o ? g[o] : u),
448 | (l = [c.trim()]),
449 | c.match(/\bhljs\b/) || l.push('hljs'),
450 | -1 === c.indexOf(s) && l.push(s),
451 | l.join(' ').trim())),
452 | (e.result = { language: r.language, re: r.r }),
453 | r.second_best &&
454 | (e.second_best = { language: r.second_best.language, re: r.second_best.r }));
455 | }
456 | function o() {
457 | if (!o.called) {
458 | o.called = !0;
459 | var e = document.querySelectorAll('pre code');
460 | E.forEach.call(e, c);
461 | }
462 | }
463 | function S(e) {
464 | return (e = (e || '').toLowerCase()), N[e] || N[g[e]];
465 | }
466 | function s(e) {
467 | var n = S(e);
468 | return n && !n.disableAutodetect;
469 | }
470 | return (
471 | (a.highlight = C),
472 | (a.highlightAuto = O),
473 | (a.fixMarkup = B),
474 | (a.highlightBlock = c),
475 | (a.configure = function(e) {
476 | h = l(h, e);
477 | }),
478 | (a.initHighlighting = o),
479 | (a.initHighlightingOnLoad = function() {
480 | addEventListener('DOMContentLoaded', o, !1), addEventListener('load', o, !1);
481 | }),
482 | (a.registerLanguage = function(n, e) {
483 | var t = (N[n] = e(a));
484 | i(t),
485 | t.aliases &&
486 | t.aliases.forEach(function(e) {
487 | g[e] = n;
488 | });
489 | }),
490 | (a.listLanguages = function() {
491 | return u(N);
492 | }),
493 | (a.getLanguage = S),
494 | (a.autoDetection = s),
495 | (a.inherit = l),
496 | (a.IR = a.IDENT_RE = '[a-zA-Z]\\w*'),
497 | (a.UIR = a.UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\w*'),
498 | (a.NR = a.NUMBER_RE = '\\b\\d+(\\.\\d+)?'),
499 | (a.CNR = a.C_NUMBER_RE =
500 | '(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'),
501 | (a.BNR = a.BINARY_NUMBER_RE = '\\b(0b[01]+)'),
502 | (a.RSR = a.RE_STARTERS_RE =
503 | '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~'),
504 | (a.BE = a.BACKSLASH_ESCAPE = { b: '\\\\[\\s\\S]', r: 0 }),
505 | (a.ASM = a.APOS_STRING_MODE = { cN: 'string', b: "'", e: "'", i: '\\n', c: [a.BE] }),
506 | (a.QSM = a.QUOTE_STRING_MODE = { cN: 'string', b: '"', e: '"', i: '\\n', c: [a.BE] }),
507 | (a.PWM = a.PHRASAL_WORDS_MODE = {
508 | b: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/,
509 | }),
510 | (a.C = a.COMMENT = function(e, n, t) {
511 | var r = a.inherit({ cN: 'comment', b: e, e: n, c: [] }, t || {});
512 | return (
513 | r.c.push(a.PWM),
514 | r.c.push({ cN: 'doctag', b: '(?:TODO|FIXME|NOTE|BUG|XXX):', r: 0 }),
515 | r
516 | );
517 | }),
518 | (a.CLCM = a.C_LINE_COMMENT_MODE = a.C('//', '$')),
519 | (a.CBCM = a.C_BLOCK_COMMENT_MODE = a.C('/\\*', '\\*/')),
520 | (a.HCM = a.HASH_COMMENT_MODE = a.C('#', '$')),
521 | (a.NM = a.NUMBER_MODE = { cN: 'number', b: a.NR, r: 0 }),
522 | (a.CNM = a.C_NUMBER_MODE = { cN: 'number', b: a.CNR, r: 0 }),
523 | (a.BNM = a.BINARY_NUMBER_MODE = { cN: 'number', b: a.BNR, r: 0 }),
524 | (a.CSSNM = a.CSS_NUMBER_MODE = {
525 | cN: 'number',
526 | b:
527 | a.NR +
528 | '(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?',
529 | r: 0,
530 | }),
531 | (a.RM = a.REGEXP_MODE = {
532 | cN: 'regexp',
533 | b: /\//,
534 | e: /\/[gimuy]*/,
535 | i: /\n/,
536 | c: [a.BE, { b: /\[/, e: /\]/, r: 0, c: [a.BE] }],
537 | }),
538 | (a.TM = a.TITLE_MODE = { cN: 'title', b: a.IR, r: 0 }),
539 | (a.UTM = a.UNDERSCORE_TITLE_MODE = { cN: 'title', b: a.UIR, r: 0 }),
540 | (a.METHOD_GUARD = { b: '\\.\\s*' + a.UIR, r: 0 }),
541 | a
542 | );
543 | });
544 |
545 | exports.registerLanguage('json', function(e) {
546 | var i = { literal: 'true false null' },
547 | n = [e.QSM, e.CNM],
548 | r = { e: ',', eW: !0, eE: !0, c: n, k: i },
549 | t = {
550 | b: '{',
551 | e: '}',
552 | c: [{ cN: 'attr', b: /"/, e: /"/, c: [e.BE], i: '\\n' }, e.inherit(r, { b: /:/ })],
553 | i: '\\S',
554 | },
555 | c = { b: '\\[', e: '\\]', c: [e.inherit(r)], i: '\\S' };
556 | return n.splice(n.length, 0, t, c), { c: n, k: i, i: '\\S' };
557 | });
558 | exports.registerLanguage('css', function(e) {
559 | var c = {
560 | b: /[A-Z\_\.\-]+\s*:/,
561 | rB: !0,
562 | e: ';',
563 | eW: !0,
564 | c: [
565 | {
566 | cN: 'attribute',
567 | b: /\S/,
568 | e: ':',
569 | eE: !0,
570 | starts: {
571 | eW: !0,
572 | eE: !0,
573 | c: [
574 | {
575 | b: /[\w-]+\(/,
576 | rB: !0,
577 | c: [
578 | { cN: 'built_in', b: /[\w-]+/ },
579 | { b: /\(/, e: /\)/, c: [e.ASM, e.QSM] },
580 | ],
581 | },
582 | e.CSSNM,
583 | e.QSM,
584 | e.ASM,
585 | e.CBCM,
586 | { cN: 'number', b: '#[0-9A-Fa-f]+' },
587 | { cN: 'meta', b: '!important' },
588 | ],
589 | },
590 | },
591 | ],
592 | };
593 | return {
594 | cI: !0,
595 | i: /[=\/|'\$]/,
596 | c: [
597 | e.CBCM,
598 | { cN: 'selector-id', b: /#[A-Za-z0-9_-]+/ },
599 | { cN: 'selector-class', b: /\.[A-Za-z0-9_-]+/ },
600 | { cN: 'selector-attr', b: /\[/, e: /\]/, i: '$' },
601 | { cN: 'selector-pseudo', b: /:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/ },
602 | { b: '@(font-face|page)', l: '[a-z-]+', k: 'font-face page' },
603 | {
604 | b: '@',
605 | e: '[{;]',
606 | i: /:/,
607 | c: [
608 | { cN: 'keyword', b: /\w+/ },
609 | { b: /\s/, eW: !0, eE: !0, r: 0, c: [e.ASM, e.QSM, e.CSSNM] },
610 | ],
611 | },
612 | { cN: 'selector-tag', b: '[a-zA-Z-][a-zA-Z0-9_-]*', r: 0 },
613 | { b: '{', e: '}', i: /\S/, c: [e.CBCM, c] },
614 | ],
615 | };
616 | });
617 | exports.registerLanguage('xml', function(s) {
618 | var e = {
619 | eW: !0,
620 | i: /,
621 | r: 0,
622 | c: [
623 | { cN: 'attr', b: '[A-Za-z0-9\\._:-]+', r: 0 },
624 | {
625 | b: /=\s*/,
626 | r: 0,
627 | c: [
628 | {
629 | cN: 'string',
630 | endsParent: !0,
631 | v: [{ b: /"/, e: /"/ }, { b: /'/, e: /'/ }, { b: /[^\s"'=<>`]+/ }],
632 | },
633 | ],
634 | },
635 | ],
636 | };
637 | return {
638 | aliases: ['html', 'xhtml', 'rss', 'atom', 'xjb', 'xsd', 'xsl', 'plist'],
639 | cI: !0,
640 | c: [
641 | { cN: 'meta', b: '', r: 10, c: [{ b: '\\[', e: '\\]' }] },
642 | s.C('\x3c!--', '--\x3e', { r: 10 }),
643 | { b: '<\\!\\[CDATA\\[', e: '\\]\\]>', r: 10 },
644 | { cN: 'meta', b: /<\?xml/, e: /\?>/, r: 10 },
645 | {
646 | b: /<\?(php)?/,
647 | e: /\?>/,
648 | sL: 'php',
649 | c: [
650 | { b: '/\\*', e: '\\*/', skip: !0 },
651 | { b: 'b"', e: '"', skip: !0 },
652 | { b: "b'", e: "'", skip: !0 },
653 | s.inherit(s.ASM, { i: null, cN: null, c: null, skip: !0 }),
654 | s.inherit(s.QSM, { i: null, cN: null, c: null, skip: !0 }),
655 | ],
656 | },
657 | {
658 | cN: 'tag',
659 | b: '', rE: !0, sL: ['css', 'xml'] },
664 | },
665 | {
666 | cN: 'tag',
667 | b: '',
673 | rE: !0,
674 | sL: ['actionscript', 'javascript', 'handlebars', 'xml'],
675 | },
676 | },
677 | { cN: 'tag', b: '?', e: '/?>', c: [{ cN: 'name', b: /[^\/><\s]+/, r: 0 }, e] },
678 | ],
679 | };
680 | });
681 | exports.registerLanguage('javascript', function(e) {
682 | var r = '[A-Za-z$_][0-9A-Za-z$_]*',
683 | t = {
684 | keyword:
685 | 'in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as',
686 | literal: 'true false null undefined NaN Infinity',
687 | built_in:
688 | 'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise',
689 | },
690 | a = {
691 | cN: 'number',
692 | v: [{ b: '\\b(0[bB][01]+)' }, { b: '\\b(0[oO][0-7]+)' }, { b: e.CNR }],
693 | r: 0,
694 | },
695 | n = { cN: 'subst', b: '\\$\\{', e: '\\}', k: t, c: [] },
696 | c = { cN: 'string', b: '`', e: '`', c: [e.BE, n] };
697 | n.c = [e.ASM, e.QSM, c, a, e.RM];
698 | var s = n.c.concat([e.CBCM, e.CLCM]);
699 | return {
700 | aliases: ['js', 'jsx'],
701 | k: t,
702 | c: [
703 | { cN: 'meta', r: 10, b: /^\s*['"]use (strict|asm)['"]/ },
704 | { cN: 'meta', b: /^#!/, e: /$/ },
705 | e.ASM,
706 | e.QSM,
707 | c,
708 | e.CLCM,
709 | e.CBCM,
710 | a,
711 | {
712 | b: /[{,]\s*/,
713 | r: 0,
714 | c: [{ b: r + '\\s*:', rB: !0, r: 0, c: [{ cN: 'attr', b: r, r: 0 }] }],
715 | },
716 | {
717 | b: '(' + e.RSR + '|\\b(case|return|throw)\\b)\\s*',
718 | k: 'return throw case',
719 | c: [
720 | e.CLCM,
721 | e.CBCM,
722 | e.RM,
723 | {
724 | cN: 'function',
725 | b: '(\\(.*?\\)|' + r + ')\\s*=>',
726 | rB: !0,
727 | e: '\\s*=>',
728 | c: [
729 | {
730 | cN: 'params',
731 | v: [
732 | { b: r },
733 | { b: /\(\s*\)/ },
734 | { b: /\(/, e: /\)/, eB: !0, eE: !0, k: t, c: s },
735 | ],
736 | },
737 | ],
738 | },
739 | {
740 | b: /,
741 | e: /(\/\w+|\w+\/)>/,
742 | sL: 'xml',
743 | c: [
744 | { b: /<\w+\s*\/>/, skip: !0 },
745 | {
746 | b: /<\w+/,
747 | e: /(\/\w+|\w+\/)>/,
748 | skip: !0,
749 | c: [{ b: /<\w+\s*\/>/, skip: !0 }, 'self'],
750 | },
751 | ],
752 | },
753 | ],
754 | r: 0,
755 | },
756 | {
757 | cN: 'function',
758 | bK: 'function',
759 | e: /\{/,
760 | eE: !0,
761 | c: [
762 | e.inherit(e.TM, { b: r }),
763 | { cN: 'params', b: /\(/, e: /\)/, eB: !0, eE: !0, c: s },
764 | ],
765 | i: /\[|%/,
766 | },
767 | { b: /\$[(.]/ },
768 | e.METHOD_GUARD,
769 | {
770 | cN: 'class',
771 | bK: 'class',
772 | e: /[{;=]/,
773 | eE: !0,
774 | i: /[:"\[\]]/,
775 | c: [{ bK: 'extends' }, e.UTM],
776 | },
777 | { bK: 'constructor get set', e: /\{/, eE: !0 },
778 | ],
779 | i: /#(?!!)/,
780 | };
781 | });
782 | exports.registerLanguage('glsl', function(e) {
783 | return {
784 | k: {
785 | keyword:
786 | 'break continue discard do else for if return while switch case default attribute binding buffer ccw centroid centroid varying coherent column_major const cw depth_any depth_greater depth_less depth_unchanged early_fragment_tests equal_spacing flat fractional_even_spacing fractional_odd_spacing highp in index inout invariant invocations isolines layout line_strip lines lines_adjacency local_size_x local_size_y local_size_z location lowp max_vertices mediump noperspective offset origin_upper_left out packed patch pixel_center_integer point_mode points precise precision quads r11f_g11f_b10f r16 r16_snorm r16f r16i r16ui r32f r32i r32ui r8 r8_snorm r8i r8ui readonly restrict rg16 rg16_snorm rg16f rg16i rg16ui rg32f rg32i rg32ui rg8 rg8_snorm rg8i rg8ui rgb10_a2 rgb10_a2ui rgba16 rgba16_snorm rgba16f rgba16i rgba16ui rgba32f rgba32i rgba32ui rgba8 rgba8_snorm rgba8i rgba8ui row_major sample shared smooth std140 std430 stream triangle_strip triangles triangles_adjacency uniform varying vertices volatile writeonly',
787 | type:
788 | 'atomic_uint bool bvec2 bvec3 bvec4 dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 double dvec2 dvec3 dvec4 float iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBufferiimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray int isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow image1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D samplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 vec2 vec3 vec4 void',
789 | built_in:
790 | 'gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxComputeAtomicCounterBuffers gl_MaxComputeAtomicCounters gl_MaxComputeImageUniforms gl_MaxComputeTextureImageUnits gl_MaxComputeUniformComponents gl_MaxComputeWorkGroupCount gl_MaxComputeWorkGroupSize gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentInputVectors gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexOutputVectors gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffset gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_GlobalInvocationID gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_LocalInvocationID gl_LocalInvocationIndex gl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_NumSamples gl_NumWorkGroups gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrix gl_TextureMatrixInverse gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_WorkGroupID gl_WorkGroupSize gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicAdd atomicAnd atomicCompSwap atomicCounter atomicCounterDecrement atomicCounterIncrement atomicExchange atomicMax atomicMin atomicOr atomicXor barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual groupMemoryBarrier imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageSize imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier memoryBarrierAtomicCounter memoryBarrierBuffer memoryBarrierImage memoryBarrierShared min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLevels textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow',
791 | literal: 'true false',
792 | },
793 | i: '"',
794 | c: [e.CLCM, e.CBCM, e.CNM, { cN: 'meta', b: '#', e: '$' }],
795 | };
796 | });
797 |
--------------------------------------------------------------------------------