From 5c796562691c5c6ba4faca5cc183723027e69a86 Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Sun, 13 Mar 2022 06:14:05 +0800 Subject: [PATCH] initial commit --- .editorconfig | 13 + .eslintignore | 7 + .eslintrc.js | 68 + .gitattributes | 10 + .gitignore | 25 + .npmignore | 8 + example/1.前端/1.React/组件.md | 14 + example/1.前端/2.Vue/组件.md | 14 + example/1.前端/正则表达式.md | 265 ++ example/2.学习笔记/typescript学习.md | 12 + example/2.学习笔记/呵呵.md | 10 + example/2.学习笔记/哈哈.md | 12 + example/3.杂谈/电影杂谈.md | 17 + example/README.md | 3 + example/public/avatar.gif | Bin 0 -> 1357 bytes example/public/big-banner.jpg | Bin 0 -> 155918 bytes package.json | 82 + readme.md | 81 + src/client/clientAppEnhanceFiles.ts | 7 + src/client/clientAppSetup.ts | 6 + src/client/component/Archives.vue | 32 + src/client/component/Category.vue | 18 + src/client/component/CategoryGroup.vue | 57 + src/client/component/Home.vue | 21 + src/client/component/Icon.vue | 57 + src/client/component/NavBar.vue | 41 + src/client/component/Post.vue | 16 + src/client/component/PostList.vue | 41 + src/client/component/PostMeta.vue | 64 + src/client/component/RightSideBar.vue | 35 + src/client/component/TageSidebar.vue | 40 + src/client/component/Tags.vue | 14 + src/client/component/ToggleDarkModeButton.vue | 57 + src/client/component/ToggleSidebarButton.vue | 24 + src/client/composables/index.ts | 7 + src/client/composables/useArchives.ts | 34 + src/client/composables/useCategoryList.ts | 61 + src/client/composables/useDarkMode.ts | 66 + src/client/composables/useNavLink.ts | 23 + src/client/composables/usePostIndex.ts | 16 + .../useResolveRouteWithRedirect.ts | 28 + src/client/composables/useScrollPromise.ts | 22 + src/client/composables/useSidebarItems.ts | 179 + src/client/composables/useTages.ts | 34 + src/client/composables/useThemeData.ts | 14 + src/client/layouts/404.vue | 8 + src/client/layouts/Layout.vue | 31 + src/client/shim.d.ts | 5 + src/client/styles/archives.css | 34 + src/client/styles/arrow.css | 24 + src/client/styles/category.css | 52 + src/client/styles/code-group.css | 69 + src/client/styles/code.css | 265 ++ src/client/styles/home.css | 40 + src/client/styles/index.css | 14 + src/client/styles/navBar.css | 7 + src/client/styles/normalize.css | 177 + src/client/styles/post.css | 57 + src/client/styles/tags.css | 35 + src/client/styles/tailwind.css | 3 + src/client/styles/vars-dark.css | 46 + src/client/styles/vars.css | 134 + src/client/utils/index.d.ts | 3 + src/client/utils/index.js | 3 + src/client/utils/index.ts | 3 + src/client/utils/isActiveSidebarItem.ts | 34 + src/client/utils/resolveEditLink.ts | 64 + src/client/utils/resolveRepoType.ts | 11 + src/node/createBlogPage.ts | 18 + src/node/extendsPage.ts | 23 + src/node/formatFrontmatter.ts | 99 + src/node/index.ts | 5 + src/node/preparedPostIndex.ts | 78 + src/node/theme.ts | 101 + src/node/utils/index.d.ts | 1 + src/node/utils/index.js | 1 + src/node/utils/index.ts | 1 + src/node/utils/pageFilter.ts | 5 + src/node/utils/readFileList.ts | 37 + .../resolveActiveHeaderLinksPluginOptions.ts | 20 + src/shared/index.ts | 5 + src/shared/nav.ts | 57 + src/shared/navbar.ts | 11 + src/shared/options.ts | 283 ++ src/shared/page.ts | 41 + src/shared/post.ts | 17 + src/template/index.build.html | 33 + tailwind.config.js | 10 + tsconfig.base.json | 18 + tsconfig.build.json | 8 + tsconfig.cjs.json | 9 + tsconfig.dev.json | 15 + tsconfig.esm.json | 14 + tsconfig.json | 14 + vuepress.config.ts | 22 + yarn.lock | 3579 +++++++++++++++++ 96 files changed, 7299 insertions(+) create mode 100644 .editorconfig create mode 100644 .eslintignore create mode 100644 .eslintrc.js create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .npmignore create mode 100644 example/1.前端/1.React/组件.md create mode 100644 example/1.前端/2.Vue/组件.md create mode 100644 example/1.前端/正则表达式.md create mode 100644 example/2.学习笔记/typescript学习.md create mode 100644 example/2.学习笔记/呵呵.md create mode 100644 example/2.学习笔记/哈哈.md create mode 100644 example/3.杂谈/电影杂谈.md create mode 100644 example/README.md create mode 100644 example/public/avatar.gif create mode 100644 example/public/big-banner.jpg create mode 100644 package.json create mode 100644 readme.md create mode 100644 src/client/clientAppEnhanceFiles.ts create mode 100644 src/client/clientAppSetup.ts create mode 100644 src/client/component/Archives.vue create mode 100644 src/client/component/Category.vue create mode 100644 src/client/component/CategoryGroup.vue create mode 100644 src/client/component/Home.vue create mode 100644 src/client/component/Icon.vue create mode 100644 src/client/component/NavBar.vue create mode 100644 src/client/component/Post.vue create mode 100644 src/client/component/PostList.vue create mode 100644 src/client/component/PostMeta.vue create mode 100644 src/client/component/RightSideBar.vue create mode 100644 src/client/component/TageSidebar.vue create mode 100644 src/client/component/Tags.vue create mode 100644 src/client/component/ToggleDarkModeButton.vue create mode 100644 src/client/component/ToggleSidebarButton.vue create mode 100644 src/client/composables/index.ts create mode 100644 src/client/composables/useArchives.ts create mode 100644 src/client/composables/useCategoryList.ts create mode 100644 src/client/composables/useDarkMode.ts create mode 100644 src/client/composables/useNavLink.ts create mode 100644 src/client/composables/usePostIndex.ts create mode 100644 src/client/composables/useResolveRouteWithRedirect.ts create mode 100644 src/client/composables/useScrollPromise.ts create mode 100644 src/client/composables/useSidebarItems.ts create mode 100644 src/client/composables/useTages.ts create mode 100644 src/client/composables/useThemeData.ts create mode 100644 src/client/layouts/404.vue create mode 100644 src/client/layouts/Layout.vue create mode 100644 src/client/shim.d.ts create mode 100644 src/client/styles/archives.css create mode 100644 src/client/styles/arrow.css create mode 100644 src/client/styles/category.css create mode 100644 src/client/styles/code-group.css create mode 100644 src/client/styles/code.css create mode 100644 src/client/styles/home.css create mode 100644 src/client/styles/index.css create mode 100644 src/client/styles/navBar.css create mode 100644 src/client/styles/normalize.css create mode 100644 src/client/styles/post.css create mode 100644 src/client/styles/tags.css create mode 100644 src/client/styles/tailwind.css create mode 100644 src/client/styles/vars-dark.css create mode 100644 src/client/styles/vars.css create mode 100644 src/client/utils/index.d.ts create mode 100644 src/client/utils/index.js create mode 100644 src/client/utils/index.ts create mode 100644 src/client/utils/isActiveSidebarItem.ts create mode 100644 src/client/utils/resolveEditLink.ts create mode 100644 src/client/utils/resolveRepoType.ts create mode 100644 src/node/createBlogPage.ts create mode 100644 src/node/extendsPage.ts create mode 100644 src/node/formatFrontmatter.ts create mode 100644 src/node/index.ts create mode 100644 src/node/preparedPostIndex.ts create mode 100644 src/node/theme.ts create mode 100644 src/node/utils/index.d.ts create mode 100644 src/node/utils/index.js create mode 100644 src/node/utils/index.ts create mode 100644 src/node/utils/pageFilter.ts create mode 100644 src/node/utils/readFileList.ts create mode 100644 src/node/utils/resolveActiveHeaderLinksPluginOptions.ts create mode 100644 src/shared/index.ts create mode 100644 src/shared/nav.ts create mode 100644 src/shared/navbar.ts create mode 100644 src/shared/options.ts create mode 100644 src/shared/page.ts create mode 100644 src/shared/post.ts create mode 100644 src/template/index.build.html create mode 100644 tailwind.config.js create mode 100644 tsconfig.base.json create mode 100644 tsconfig.build.json create mode 100644 tsconfig.cjs.json create mode 100644 tsconfig.dev.json create mode 100644 tsconfig.esm.json create mode 100644 tsconfig.json create mode 100644 vuepress.config.ts create mode 100644 yarn.lock diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..5d126348 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +# editorconfig.org +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..86d1ebc5 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,7 @@ +node_modules/ +.temp/ +lib/ +dist/ +!.vuepress/ +!.*.js +example/ diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000..699c6246 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,68 @@ +module.exports = { + root: true, + extends: 'vuepress', + globals: { + __VUEPRESS_VERSION__: 'readonly', + __VUEPRESS_DEV__: 'readonly', + __VUEPRESS_SSR__: 'readonly', + __VUE_HMR_RUNTIME__: 'readonly', + __VUE_OPTIONS_API__: 'readonly', + __VUE_PROD_DEVTOOLS__: 'readonly', + }, + overrides: [ + { + files: ['*.ts', '*.vue'], + extends: 'vuepress-typescript', + parserOptions: { + project: ['tsconfig.json'], + }, + rules: { + '@typescript-eslint/ban-ts-comment': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/no-var-requires': 'off', + 'vue/component-tags-order': [ + 'error', + { + order: ['script', 'template', 'style'], + }, + ], + 'vue/multi-word-component-names': 'off', + }, + }, + { + files: ['*.vue'], + globals: { + defineEmits: 'readonly', + defineProps: 'readonly', + }, + rules: { + // disable for setup script + '@typescript-eslint/no-unused-vars': 'off', + }, + }, + { + files: ['clientAppEnhance.ts'], + rules: { + 'vue/match-component-file-name': 'off', + }, + }, + { + files: ['**/__tests__/**/*.ts'], + env: { + jest: true, + }, + rules: { + '@typescript-eslint/explicit-function-return-type': 'off', + 'vue/one-component-per-file': 'off', + 'import/no-extraneous-dependencies': 'off', + }, + }, + { + files: ['docs/**'], + rules: { + 'import/no-extraneous-dependencies': 'off', + }, + }, + ], +} diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..d022441a --- /dev/null +++ b/.gitattributes @@ -0,0 +1,10 @@ +* text eol=lf +*.txt text eol=crlf + +*.png binary +*.jpg binary +*.jpeg binary +*.ico binary +*.tff binary +*.woff binary +*.woff2 binary diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..efbbd880 --- /dev/null +++ b/.gitignore @@ -0,0 +1,25 @@ +# VuePress files +example/.vuepress/.temp/ +example/.vuepress/.cache/ +example/.vuepress/dist/ + +# Dist files +lib/ + +# Test temp files +**/__fixtures__/.temp/ + +# Test coverage files +coverage/ + +# Node modules +node_modules/ + +# MacOS Desktop Services Store +.DS_Store + +# Log files +*.log + +# Typescript build info +*.tsbuildinfo diff --git a/.npmignore b/.npmignore new file mode 100644 index 00000000..7811fb19 --- /dev/null +++ b/.npmignore @@ -0,0 +1,8 @@ +/example +/node_modules +/src +.editorconfig +.eslint* +.git* +**/*.tsbuildinfo +vuepress.config.js diff --git a/example/1.前端/1.React/组件.md b/example/1.前端/1.React/组件.md new file mode 100644 index 00000000..3cd1690a --- /dev/null +++ b/example/1.前端/1.React/组件.md @@ -0,0 +1,14 @@ +--- +title: 组件 +createTime: 2022/03/06 09:41:52 +permalink: /post/yiobrmp0 +author: pengzhanbo +top: false +type: # original: 原创: reprint 转载 可为空不填 +tags: + - react + - 组件 +--- + + +# React 组件4 diff --git a/example/1.前端/2.Vue/组件.md b/example/1.前端/2.Vue/组件.md new file mode 100644 index 00000000..fc1868b5 --- /dev/null +++ b/example/1.前端/2.Vue/组件.md @@ -0,0 +1,14 @@ +--- +title: 组件 +createTime: 2022/03/06 09:41:26 +permalink: /post/zrd6axrp +author: pengzhanbo +top: false +type: # original: 原创: reprint 转载 可为空不填 +tag: + - Vue +--- + +# 组件 + +组件内容 组件 组件 diff --git a/example/1.前端/正则表达式.md b/example/1.前端/正则表达式.md new file mode 100644 index 00000000..58f90c39 --- /dev/null +++ b/example/1.前端/正则表达式.md @@ -0,0 +1,265 @@ +--- +title: 正则表达式 +createTime: 2022/03/08 06:32:01 +permalink: /post/tjya08e9 +author: pengzhanbo +top: false +type: # original: 原创: reprint 转载 可为空不填 +tags: + - javascript +--- + +本文正则表达式基于`javascript`,不同的计算机语言对正则表达式的支持情况以及实现,语法不尽相同,不一定适用于其他语言。 + + + +### 简介 +`正则表达式`,是一种文本模式(Regular Expression),是对字符串的一种匹配查找规则。可以方便的在某一文本字符串中,查找、定位、替换符合某种规则的字符串。 + +比如说,我们想要找出一段文本中的手机号码,文本内容如下: +``` html +name:Mark tel:13800138000 +name:Jhon tel:13800138888 +``` +很明显,在这段文本中,手机号码是以 `tel:`开头,这符合一定的规则,这样我们可以通过正则表达式来书写这个规则,然后去查找匹配: +``` js +var text = `name:Mark tel:13800138000 +name:Jhon tel:13800138888`; + +var result = text.match(/tel:(1\d{10})/); +// ["tel:13800138000", "13800138000", index: 0, input: "tel:13800138000", groups: undefined] +var tel = result[1]; +// 13800138000 +``` +`/tel:(1\d{10})/` 便是所说的正则表达式。 + +### `RegExp`与字面量 +在`javascript`中,我们可以使用构造函数`RegExp` 创建正则表达式。 + +`new RegExp(pattern[, flags])` +``` js +var regExp = new RegExp('\\d', 'g'); +``` +也可以通过 字面量的方式: +``` js +var regExp = /\d/g; +``` + +两种创建正则表达式适用的场景有些细微的不同,一般使用`new RegExp()`来创建动态的正则表达式,使用字面量创建静态的正则表达式。 + +正则表达式字面量是提供了对正则表达式的编译,当正则表达式保持不变时,用字面量的方式创建正则表达式可以获得更好的性能。 + +_以下讨论以正则表达式字面量来创建正则表达式_ + +`正则表达式`一般由`元字符`和普通字符组成。 + +### 元字符 +元字符也叫特殊字符,是正则表达式规定的,对符合特定的单一的规则的字符的描述。 +| 字符 | 含义 | +|:----:|-----| +| \\ |在非特殊字符的前面加反斜杠,表示这个字符是特殊的,不能从字面上解释。比如在`\d`描述的不是一个普通的字符`d`,而是正则表达式中的数值`0-9`。
如果在特殊字符前面加反斜杠,这表示将这个字符转义为普通字符,比如`?`在正则中有其特殊含义,前面加反斜杠\?,这可以将其转为普通的`?`。| +|^|匹配文本开始的位置,如果开启了多行标志,也会匹配换行符后紧跟的位置。
比如`^a`会匹配`abc`,但不会匹配到`bac`。| +|$|匹配文本结束的位置,如果开启了多行标志,也会匹配换行符前紧跟的位置。
比如`b$`会匹配`acb`,但不会匹配到`abc`。| +|*|匹配前一个表达式0次到多次。
比如,`ab*`会匹配到`abbbbbbc`中的`abbbbbb`,以及`acbbbbb`中的`a`。| +|+|匹配前一个表达式1次到多次。
比如,`ab+`会匹配到`abbbbbbc`中的`abbbbbb`,但不会匹配`acbbbbb`。| +|?|匹配前一个表达式0次到1次。
比如,`ab*`会匹配到`abbbbbbc`中的`ab`,以及`acbbbbb`中的`a`。| +|.| 匹配除换行符之外的任何单个字符。| +|x\|y| 匹配 x或者y。| +|\[xyz\]| 表示一个字符的集合。匹配集合中的任意一个字符。可以使用破折号`-`来指定一个字符范围。
比如,`[0-4]`和`[01234]`,都可以匹配`4567`中的`4`。| +|\[^xyz\]| 表示一个方向字符集合。匹配任意一个不包括在集合中的字符。可以使用破折号`-`来指定一个字符范围。
比如,`[0-4]`和`[01234]`,都可以匹配`2345`中的`5`。| +|{n}|n为一个整数,表示匹配前一个匹配项n次。
比如`a{2}`不会匹配`abc`中的`a`,但会匹配`aaaabc`中的`aa`。| +|{m,n}| m,n都是一个整数,匹配前一个匹配项至少发生了m次,最多发生了n次。
当m,n值为0时,这个值被忽略,当n值不写,如`{1,}`表示1次到多次。当m值不写时,如`{,1}`表示0次到1次。| +|(x)|匹配`x`并且捕获该匹配项。称为捕获括号,括号中的匹配项也称作子表达式。| +|(?:x)| 匹配`x`但不捕获该匹配项。称为非捕获括号。| +|x(?=y)| 匹配`x`且当`x`后面跟着`y`。称为正向肯定查找(正向前瞻)。| +|x(?!y)| 匹配`x`且当`x`后面不跟着`y`。称为正向否定查找(负向前瞻)。| +|[\b]|匹配一个退格(U+0008)。| +|\b |匹配一个词的边界。匹配的值的边界并不包含在匹配的内容中。| +|\B|匹配一个非单词的边界。| +|\d|匹配一个数字。等价于`[0-9]`。| +|\D|匹配一个非数字。等价于`[^0-9]`。| +|\n|匹配一个换行符 (U+000A)。| +|\r|匹配一个回车符 (U+000D)。| +|\s|匹配一个空白字符,包括空格、制表符、换页符和换行符。
等价于`[ \f\n\r\t\v\u00a0\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]`| +|\S|匹配一个非空白字符。| +|\t|匹配一个水平制表符 (U+0009)。| +|\w|匹配一个单字字符(字母、数字或者下划线)。
等价于`[A-Za-z0-9_]`。| +|\W|匹配一个非单字字符。| +|\xhh|与代码 hh 匹配字符(两个十六进制数字)| +|\uhhhh|与代码 hhhh 匹配字符(四个十六进制数字)。| + + +上表在多数文章都会提及,但有一些注意的细节,下面我单独拎出来说说。 + +1. __`[xyz]` 匹配集合中的任意一个字符__
+这个字符集的元素,可以是普通字符,也可以是特殊字符,也可以用破折号`-`规定一个字符集范围。
+以匹配数字为例,可以写成`[0123456789]` ,也可以写成`[\d]`,也可以写成`[0-9]`。
+类似于`()`等特殊字符,在`[]`中有其作用,都特殊字符的作用一致,不能直接当做普通字符来使用,所以我们需要使用反斜杠`\`将其转义为普通字符,值得注意的是,上表的特殊字符中,星号`*`、小数点`.`在`[]`中并没有特殊用途,所以不需要做转义处理,当然,即使做了转义,也不会出现问题;而破折号`-`在`[]`中有其特殊作用,所以作为普通字符使用时,需要转义。 + +2. __`?`:匹配前一个表达式0次到1次。__
+其实这里准确描述来说,匹配前一个表达式,且该表达式 __非任何量词 `*`、 `+`、`?` 或 `{}`__ ,匹配前一个表达式0次到1次。
+如果紧跟在 __非任何量词 `*`、 `+`、`?` 或 `{}`__ 的后面,将会使量词变为非贪婪的(匹配尽量少的字符)
+_贪婪与非贪婪匹配,我们在下文细说。_ + +### 等价字符 + +正则表达式中,有不少特殊字符的写法,是等价的,也可以说是简写形式,下表的左右两边,都是等价的。 +|regExp|regExp| +|--|--| +|*|{0,}| +|+|{1,}| +|?|{0,1}| +|\d|\[0-9\]| +|\D|\[^0-9\]| +|\w|\[a-zA-Z_\]| +|\W|\[^a-zA-Z_\]| +|\s|\[ \f\n\r\t\v\u00a0\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff\]| + +### 贪婪模式与非贪婪 +__什么是贪婪模式?__ + +贪婪是指正则表达式匹配时,是贪心的,会尽可能的匹配多的字符,主要体现在`量词特殊字符`: +``` js +// 匹配一个到多个数字 +var r = /\d+/; +var t1 = '12a'; +var t2 = '1234a'; +var t3 = 'a12b345'; +console.log(t1.match(r)[0]); // 12 +console.log(t2.match(r)[0]); // 1234 +console.log(t3.match(r)[0]); // 12 +``` +`非贪婪`,即是让正则表达式匹配尽量少的字符。那么如何改变正则表达式的贪婪模式? + +__在量词特殊字符后面紧跟使用`?`__ + +我们说说的量词包括`*`, `+`, `?`, `{m,n}`。那么紧跟了`?`,会有什么不同的表现呢? + +我们从例子来分析: +``` js +var r1 = /
.*<\/div>/; +var r2 = /
.*?<\/div>/; +var str = '
aaa
bbb
ccc'; +``` +变量`r1`是贪婪匹配,得到的结果会是什么呢? +``` js +console.log(str.match(r1)[0]); +//
aaa
bbb
+``` +在这段字符串中,有两个`
`的匹配字符串,正则表达式在遇到第一个`
`匹配字符项时,同时满足了`/.*/`和`/<\/div>/`的匹配条件,优先作为`/.*/`的匹配值,在遇到第二个时,同样还是优先作为`/.*/`的匹配值,直到匹配的字符串`str`的结束,没有满足条件的匹配字符串,再把第二个``作为`/<\/div>/`的匹配值。最终得到了`
aaa
bbb
`的匹配结果。 + +变量`r2`这是非贪婪匹配,得到的结果又会有所不同: +``` js +console.log(str.match(r1)[0]); +//
aaa
+``` +同样,两个``的匹配字符串,但实际非贪婪匹配模式,在匹配到第一个``,就不会再继续向下匹配字符串了。 + +__也就是说,贪婪匹配是,在满足规则下,尽可能多的匹配更多的字符串,直到字符串结束或没有满足规则的字符串了;非贪婪匹配是,在满足规则下,尽可能少的匹配最少的字符串,一旦得到满足规则的字符串,就不再向下匹配。__ + +1. `x*?`:尽可能少的匹配`x`,匹配的结果可以是0个`x`; +2. `x+?`:尽可能少的匹配`x`,但匹配的结果至少有1个`x`; +3. `x??`:尽可能少的匹配`x`, 匹配的结果可以是0个`x`,但最多可以有一个`x`; +4. `x{m,n}?`:尽可能少的匹配`x`,但匹配的结果至少有m个`x`,最多可以有n个`x`; + +可能从字面来说,不好理解 `x??`, `x{m,n}?` ,来看一个例子就可以明白了: +``` js +var s1 = '
aa
'; +var s2 = '
a
'; +var s3 = '
'; +var r1 = /
a??<\/div>/; + +console.log(r1.test(s1)); // false +console.log(r1.test(s2)); // true +console.log(r1.test(s3)); // true +``` +``` js +var s1 = '
aaa
'; +var s2 = '
aa
'; +var s3 = '
aaaa
' +var r1 = /
a{2,3}?<\/div>/; +var r2 = /
a{2,3}?/; + +console.log(r1.test(s1)); // true +console.log(r1.test(s2)); // true +console.log(r1.test(s3)); // false + +console.log(s1.match(r2)[0]); //
aa +console.log(s2.match(r2)[0]); //
aa +console.log(s3.match(r2)[0]); //
aa +``` + +### 正则表达式标志 +|标志|描述| +|:--:| -- | +|g|全局搜索| +|i|不区分大小写搜索| +|m|多行搜索| +|y|执行“粘性”搜索,匹配从目标字符串的当前位置开始| +|u|Unicode模式。用来正确处理大于 \uFFFF 的Unicode字符| + +__`m`__ + +使用`m`标志时,会改变开始(`^`)和结束字符(`$`)的工作模式,变为在多行上匹配,分别匹配每一行的开始和结束,即`\n`或`\r` 分割。 + +__`y`__ + +使用`y`标志时,匹配是从`RegExp.lastIndex`指定的位置开始匹配,匹配为真时,会修改`lastIndex`的值到当前匹配字符串后的位置,下次匹配从这个位置开始匹配,如果匹配为假时,不会修改`lastIndex`的值。 +``` js +let reg = /o/y; +let str= 'foo'; + +// lastIndex 为 0,从字符 f 开始匹配 +reg.test(str); // false +// 由于结果为 false, lastIndex 还是为 0 +reg.test(str); // false + +let str2 = 'oof'; +// lastIndex 为 0 ,从字符 o 开始匹配 +reg.test(str2); // true +// lastIndex 此时修改为 1, 从第二个 o 开始匹配 +reg.test(str2); // true +// lastIndex 此时修改为 2 +reg.test(str2); // false 此时开始匹配的字符是 f +// lastIndex没有被修改 +reg.test(str2); // false +``` + + +### 正则表达式中的捕获—— \1,\2,\3... 以及 $1,$2,$3... + +在上文中我们介绍了 `(x)` 是匹配 `x` 并捕获,那么有了捕获就必然可以去使用捕获到的结果, `\1,\2,\3...` 以及` $1,$2,$3...` 便是指捕获的结果。 + +`\1, \2, \3, \4, \5, \6, \7, \8, \9` 在正则表达式中使用,捕获结果为正则表达式的源模式. + +在这个正则表达式中`(bc)`被捕获并标记为`\1`, `(ef)`被捕获并标记为`\2`。 +``` js +let reg = /a(bc)d(ef)/ +``` +也可以使用来简化正则表达式 +``` js +let reg = /a(bc)dbc/ +let reg2 = /a(bc)d\1/ + +let str = 'abcdbc'; + +reg.test(str); // true +reg2.test(str); // true +``` + +`$1, $2, $3, $4, $5, $6, $7, $8, $9` 是`RegExp`的包含括号子表达式的正则表达式静态的只读属性。 +``` js +let reg = /a(bc)d/; +let str = 'abcd'; + +reg.test(str); +console.log(RegExp.$1); // bc +``` +在 `String.replace()` 中使用: +``` js +let reg = /(\w+)\s(\w+)/; +let str = 'apple pear'; +str.replace(reg, '$2 $1'); // pear apple +RegExp.$1; // apple +RegExp.$2; // pear +``` diff --git a/example/2.学习笔记/typescript学习.md b/example/2.学习笔记/typescript学习.md new file mode 100644 index 00000000..b6b7833e --- /dev/null +++ b/example/2.学习笔记/typescript学习.md @@ -0,0 +1,12 @@ +--- +title: typescript学习 +createTime: 2022/03/06 09:47:02 +permalink: /post/upiqrep3 +author: pengzhanbo +top: false +type: # original: 原创: reprint 转载 可为空不填 +tags: + - typescript +--- + +# typescript 学习 diff --git a/example/2.学习笔记/呵呵.md b/example/2.学习笔记/呵呵.md new file mode 100644 index 00000000..98fd0477 --- /dev/null +++ b/example/2.学习笔记/呵呵.md @@ -0,0 +1,10 @@ +--- +title: 呵呵 +createTime: 2022/03/07 05:16:12 +permalink: /post/zhervgal +author: pengzhanbo +top: false +type: # original: 原创: reprint 转载 可为空不填 +tags: + - notes +--- diff --git a/example/2.学习笔记/哈哈.md b/example/2.学习笔记/哈哈.md new file mode 100644 index 00000000..1a92f24c --- /dev/null +++ b/example/2.学习笔记/哈哈.md @@ -0,0 +1,12 @@ +--- +title: 哈哈 +createTime: 2022/03/07 05:14:23 +permalink: /post/0ts9cam6 +author: pengzhanbo +top: false +type: # original: 原创: reprint 转载 可为空不填 +tags: + - Vue + - notes +--- + diff --git a/example/3.杂谈/电影杂谈.md b/example/3.杂谈/电影杂谈.md new file mode 100644 index 00000000..7bcf2d80 --- /dev/null +++ b/example/3.杂谈/电影杂谈.md @@ -0,0 +1,17 @@ +--- +title: 电影杂谈 +author: pengzhanbo +tags: + - 杂谈 + - 电影 +permalink: /post/zozx35d9 +createTime: 2022/03/06 09:47:13 +top: false +type: # original: 原创: reprint 转载 可为空不填 +--- + +呵呵呵呵 + + + +111 diff --git a/example/README.md b/example/README.md new file mode 100644 index 00000000..7d61f110 --- /dev/null +++ b/example/README.md @@ -0,0 +1,3 @@ +--- +home: true +--- diff --git a/example/public/avatar.gif b/example/public/avatar.gif new file mode 100644 index 0000000000000000000000000000000000000000..a2fe4d1dbe3c6c4f656cd9f04354e72c707355a6 GIT binary patch literal 1357 zcmV-T1+w}_Nk%v~VORiI0QLX?wzjsiva(iIR!vP!6ciNG)6>n(&0}L@hK7bdK0aMt zU1(@%u&}T!EG#xQHhFn@At525p`mecaTysIYinySFE3_hW{;1LIyyS$=H`isi99?! z9UUD>Nl8>xR8mq>=jZ1tDk?BAFeN1=Mn*Px!`T6FN0R`0noR_xJbq_V(rF<^KNu_4W1Z>+9|9?dt04@9*#P^YilZ z^7Qod@$vEO?CkLH@Z{v=-rnBO(9qA%&!3;4#Kgqc*VlJ>Lx ze}8|)#l_&@;89Ugy}iBM+}xX+n}dUc$;rvDudk$}q`JDg-{0TM%gfr@+Nr6jjEs!J z!op!;VOUsL)z#IgsHoW3*fTRTzP`Sblap<2ZQ0q`s;a7&mzQ#Ka-5u;tgNhje0<{K z;*gM#nVFe^fq}fdyk%u&%F4>f$jATy00000000000000000000EC2ui09XK6000O7 zfEj{=Accg7h>3=aij0npkCBj*l#-U0m6@8Gn4F!SpP-?mqNS#!sHvx_tgEiAu(7YQ zv$eFgxVgH!yuH3QL%+g~GsVWi$S%XTh%GA5Fe%Y8IMqAK$-vCMG|(&F-{3z!JUTJh z+q>P;H{s6i?c&qc$IF@H@bCHY{QE%Y=}fI-C$FHseB|s^szK18zkc8VDpbVK;lqOn z0}32?5o5=1K{S@CXt5;3cILE+95v6R$CLW5tz_x)rS+zoJsUQnRI)AqxyqFr za^l*pXphEii&q}mM11=?teXw4;J#`97Gpa%<6CZl8T(aCsIg>tUbAx4aij{wA~=c! zc#-c*9@418MTx*r3lf5v)tTkeU`y&325LhwA*DCL3Rk?4abhOM3L^?IKSZXz@kC}5<^ID>F&V$ggGyS#2N6R`;!56fXq8Loz_lpO(rl%U1Wq6 zB1(`zTy)=*KtU8rU|~c9N4y|~22VIJfdFH8paBuE83xW5C@hc~6$&hY#sLo45da&n zxgmlJcr=hh77bts#Q-HtfWZ_vc7VWqn%x(V2OVtCL_BmPumO4GJw;BEYKl8R#bpO2~|Si;X8>H#*8;nK!DyFz@>J? z2`suu#v9bE5CI1l@Bjf< zUP^%%(-?UNqYb?2Onuaa>VT320U!bZY)k-!H6?^#Cl3QO07pDwV32?u>1}WZg&vFm zDQWa6HV%f9kr9&t1(4H32Db@;2R>UEA;-8;7=Th!m*u4wSeEVeQkEJX))lGx9oivBVh%3@gJu zOl&a2ayH_lU~z7&m1O^rjEcV_m+Z31D9`MP!!XBXGbcC?w(}-|;w7-kmQ2&F$Q7mh z^CJ`^{mjQi^U$tay)9jI(;p2Tb!AR>t@P48*90-bV0Vm})kyiEFwFF-HMM19ADr{r z2VJ#p&{&%tH`E)2O?N|I%QCmuco%LsK3KQB&ES6%estiU_|5p+dC%4gSSRbvvfVsq PPPyX+Qyi@!fdBwIjAf;h literal 0 HcmV?d00001 diff --git a/example/public/big-banner.jpg b/example/public/big-banner.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4dd9c10f6a7471181322c4dd26d2408170cb96c8 GIT binary patch literal 155918 zcma&NcTiJZ^e%h?2_+yU^eQEk03t={NQWf!(3?PLQl*1{5PA_QArz&TP^C&oFf~b?PryJwRp7zBmkiQcOm<~LjHf` z|DR3<0{uh(UH=F8f4#X{0l+}s)pvkS!}UJa4R9p^006oo0gO~232+NJzzBdCL1c`e zs}W%2A3_fK_sV}m{zu3`WMBvdB^5OQrTO=m{C_^@f1@BW^8Y~@fd4g)3`|ZzP5~h& z2T}i1_z&U-C@5jl0vc3Irp__}vDD0hn%U(nm{wNo;M?^BD4T5HPq(!#Mw1L^FJp*^I-KjA)a(&#!aH6?_o=%2GWO@V?-~$hr963`SN$(PnbX(RE5-g%GSWr@5=$}}UF zCMRo|XFI5jy!l2+pf(x(NcG2{-(>==v1F>5kspsqu%4~8pI}e_ z%a1-noWZA(#_Cs{qW_D@dv0>9`k%a|J`lL+PV7nd)v0nBC^JI#jS$;j$tW^ z;Y`#k6ynEjcLdTs()=@O2ATP9+*>N}6Zk{>XOE3E8PLaE^GSp1x9PG&fzV{$4$Paj zS9x5nmw0#yj|&?B)gnT}@f{!6);!-8&WPyTXFFs2?loE=%VQjJcl?9v>-oSN-uYuxbNAvxkBg`T9 zjmdCjm5c%C_-kb!MgJJiC@`>~h2VZB{9;xpH`e}=X~QJ=fU52LrwcN+E>rPzh-6mi zLP@u@IXGNQa4oIY3nQP2HH)pbYu=7ABL+D5QzjP4NenGvI`!1fi)^Z1sm*03nEvhy|gQ zAFjv;22f})F+#eo)d%dYs^zwdgx*l2A3yvtE+kD2iGL*8w8fv&;?Q)t$g%NG_;50r zHU54|<9aBiS1OxHM+zOsR4b(zuRM&J3(b6oM)a>lC|l5es*=CPd`{yHlhIrS(_bKp z?}p93^&3}!gs3Zt;K!rb8U}~Mh_H!WdH&H@izk_(BOEUN#^yif5;W&Fec{n}(UX}* z8>9g@p(SzVsMj zQt|Uss?S$j!dPqcJ*3n3teBw> z3M})YI(pZmD~lhI`T7pWjrNdcqqlhKmMgfW{-}JsFm8gw_;X?GAn!W<&d=*s&tv~? zKqtIzhxL`~uI1vX{4p9feEche-W10pdAtI!5!j}meqQ8-9~T2;x#@3lYODX6vTBn* z8Brer(em`J5)XP9E<#>nYWn8s-mR)S<9<&S3N!lrg|%SbUj3YRPL<2q_y5C5IGE*L zBC4Lw7#MAh)ZXiCLV>Gl5xRGZx6Os9Fi8H$j|JVN>jiI)l%g{UUv2yF9@uxnI%388 z@2}m6?KP^z#0r8;gl@BmO$<6_%VV@(bpKsPJCB-cx102@yZ8hKJnnsa@??hFLp;oF zM`!BRS-+TOGpb24;)zv0)2-bC>B>t5GolG|Tt%%c=0AwEbFB~(gXD85+Ym>W6sF{g zG5;RI`XVT&Y)l1)z0yiJ04ezq45Wu6sI{7bIAzFReyW@vKJtv0n7!ZtvhP!Cg0t9I z|H{fLh>0vnvv{~6p2EYDX2o(xzhk_z@Uafzed{ zJj{s1t;Q5VN3+7&aAkX_KBgO(5iazCp8rMkZAYq3sk#D zo`o)@ZsH1Hu}xc>G8i#XeHP0pvVlNhj)(tSZo}o?R{=#C3d|bzJFtEm;aIg3|D_p; z@MIoQJR9lFy-{%chMCvn+%{L=$1uB_hW8Byuv1cGx!uDUqHCVg0x^kW+Os+FL#9SR z$=zPN+Z(D{f4MXsX-!&)mAFhSoka|Pa>|07n@%4kbi+yb4BF1hz4$<`gdprc;(V8t{l-;N_!Xd=%qXY{AI zq4H@j*_$R0g?C^>;k$Kr2yf_xZ+*g!n(I8MxtA=tnb?GoQ%w>>osm6!%o4T#bl}Y@ z^p{fXO{;jj$ zZi-q$P;t}cobP)2TynzG&ulytcSFn_QZ0(%$w6m}rL`l)f`76Au^S|=r{{kM_~^t; z=}_+6h#!YtO#p0Tp9d}Z9ymTGasT>jtb)BcNEv^_;(Y{sLApLQT!s;gt9xv_ zplI{yp=5u{t$X;Vky?q0_67D*212O8P#X5YuQL)~sD6BK`IR-r6!P^!#4Uo-W6KW5 zCL^So(`fNOOPD?TAU0nT9R7>ubNBP0BhRV5jJCa0PDPQTVAn$pT@`5-_y0=S{DGAm@o|aJqRq6DIwXkDDmGg!9=w?tZRowhFt;EkYr(jaliN8 zrM1T-`g6=Tl=nVwX3T#$Zs;)Lb!7FAv6>HnK|)L0Ov_+iHzybT~8D)1-3tI7+|+| zLlyFmhfjK^co|+Ox*5|cT{FA9y-_)O+qSjRR?UQ9V`2a9mr^#peU#<`RzFcMR!Bct z5r%%kp`9Xyhnj6re)#j(E%(^xL~AmFyy_!5-r(2Hx=9_95P!E2V%F2! zD$hLS{^F-;CUX;3;=6kz!aIqW4@*fXwU4-@xjy`A^YS0@`nvwp=8IyK-Y7g&R`Ts1 z9c?}VF_;Zn%oO04*N+Xp0`inaHx3T+XFBumysLaA$}pfMz2QpW1J9V`SEYxR$e zhHaeSm_yclnkb` z46iF%&H@6}`u{pno1YwJ?Ud=&8VFpIGt`YHvV;27ncK0#xSK^$@b?;eP-D!=IXZx$Z9qWM7AC8|ILmG{}z@}2n z=)qX^+WB%m(Sg@4I8p?Ip^k8FRsPHUPS@aSFK7XwPdTHB-s4Bu=(zNNcW&y|P(8SD zmxy|T>`pb#&=kg$pN^1eYkVE!z7#nN`|pfxOo+qocBRz(#@yb#3BG?W`{}KU*w#e0 zXFdWG)ZH-#4^G;=%`d%flw8xd`smh+t!1U_;MoiLh}`9aOJjjeVp*Cd zp)9Oog6k%sf?YEJDn&p$nNGmcNhDA+4P_R`qpI2!Mh;L&pm0PDsI{g&3ru5|E{lLy z`~rl}K;WVfAp_1Gf9l`*Ng_KqiXJ>VEfYa8DgQfK{l-i+U@fh!1FjbvkpqgCS=c`1 z!rs9C{4-`stTY)zS=I1bofrIZ=W@;76~GOQJorg>1xPj2D#86%$G3vSmuXDfW@f2n|wj1H3s&dDMrchfjf!J zUPlWPD)C*=YwW4H35NRyZ-!o<6Ik0OdDqk|nXl0jzB0q53n=SpmImVZMAbzf7mWAi$f#`FR8Hq=u2Tjqd$e-6BC9%Bc^Z&*EfgJx!f>tMW7A%z1xp)08R}0kLBu3gx?^W97uN7^d2a6NE^NU~*XnyLWXr%S2A?^KEVf`G6#0 z8$wVtwoyl&KhM4)r(a^3+twriZJZPfkrvQO3maV~!m^qgC(toPkAP%3_FAgk8@dx| zH4wWrf*v1HFe!*cB9s2o;4jTa<0*(ug{TLA7g|aE0%({P7+quw2ssH6u!=&ZRsMz6 zcNfX%PTw+6MZ2&-N-98R=LRU$V%f#=7oX>2x4n+w{Ww!WRar)9vI!V5qeD!<5?x`R zMP-846XBSqqa#|WU(KGqbPvv1poXgf_~H3Z)y*LH`Iy5C%IcBG49b%;>?_kpIm9VS z@W;ZenY|wu{uM5GQ}g=NGCarxtMl!{X#_Xz5WFhzdh0dcn!aD%OgJHa_1KvOX}{5; zC4iZg@9^_}eD6{ghuHG5PoQhV6;OJ2Rg)6msyA>ST`fquVob|bhhixm!#3)$f${H_4?t<=*_ z3ga*rymfyUeS;crKB=vUV9z!&mhy-d{Bh ze9zn@0y|!tpu(I3A*=pJ?9^Xh3hf>-tA(CLgkH3WDIlIMtG%01$f*IBzP?1e{IRy1 zwOgips5q2r%}0DWZg;<1y@PTyjy;q3vSv5-g}Dn0`+501A;~yN-lCv(N+*`Diwp}tC3A1|C2B4x8O>6+TFmKr^U}O* zqPVYfL%yN;1Pay9X%jfc5&C-Zn|-)xwQ4e$>C>EbDI%J@?&kg1cS(_*WQJ(NCN2hD z8VDbGv_gv-)33{JMh*p4(=A?%KGOn`(iaC|{K#kXFOrcB@Kspl`kVbnl&q~yKfYBv zj*=@>R{2-dHUE3>`v2Qq%%^^0hv7MkJ+JzF(WH97E4XuaFouDGVr8)Jyw9!^jLlH& zm+5!JnKQL!<{9pHyms%JA?sZbYG7ko2v}riT1=*nt_TMgF8v;1N!X$c*wl`5;B}@7 z`&1EH*fC0iV~tXFY@@CKX=#2@DM*#&svMvX&#QZPM>%bzO@KfsDXuq#3gR#^?@!|OLOKvswZ04w zoE`Xh4O72|lcsG4m|i~ZDlexk-i4Y%m%}KLU6_YR1@;%MCrXIDdWKginy(WYJCUeh zLWY)5K_2&+vu+F&&3RmZmXeSNv(E*QjBPOuxap~*9k3&h_`2YTKWkofPVBtRd@fqGAUrP_kAl0CGI2DZC|4W~f_0jyoULcL^ zfv@uzJ4iiXhWACu434@rH0+ZEvx5BjK$BrBUsyqv!};*5x1m6gyTJJx7-_QC8^$mZ z(76-8m@NOBM2SrGCZ-1U<^3j)J==gzb&qyT(V6mp6w-a~54r-nW;0GW2Dd{Ho^Ma$ zmWgcKWq@gSTffe~?d_P<&i4f&KOD*eUA9pd9>$N9Y=(ZK|3KMVVvzIdX-M7A&Ubsd zsZ97yhP5-hxRSN(nI?+2Vayjaf&G>>3D0*>;<3qfalwyQ~u3&p1IU}C8gU)DZ*0<;_jO% zOMlbnLUhi06O1D-g7p_ROW$M_X_nXeV4%%BEZcp;KfX)xU~E}U>_3;gdLoZ}a;%CB zUR7?|m?O*{M7Nmsdds@i-TH3MQS1CcS~7cUS_6gAE5OqZ`6)ldPc4`|K43EopXZbqvwTdd!^B?y1=j9menTXt?)tyc!1^vb zQS)O((1ZGfN`E-MGN40^CW}~pwi^Rr)d9SSfujukhrTLl)wBdrxD}0qC_?@S)&`nvd2!@h6PJ`P% zg%z&56{TmDJ`0DEUz6@<*f%yO_3|*7<*7>6cU}R)?D3dd_f0KZHzzlPSR|Qkj#d^m zAyyX3Qm)BRM&ug?6ai^TeLQMt2^Fl{V#`;y_tvDK&g|Y{c0Cz~bcM)do_@51E7>68 zI;V40MmQxVfk8NYyKlXV(0_^93;5t{}1nG2jQO0xKHdzzE68kGcln*XbPZcRkYa zewn^|pZ?UZO8EEKAR+x2^CbBOS5%_+2weanyLPYG%~La-{b!r6$alriyE5qHbwe81 zGw-;r7|%;R*86+1>X*}ojC!fp+u4S7ix*tqspTG)I6rw`bOh#Ky8_&Uw*>lOwlYlw z>WM@pODgEei(~E$neiUaC}CTL^VZircF%u{Wl0NfXcwl(@Vcwmq$Wy-=w)YaDlbmYO4~_)1G+oBHd)|mXau1^P3lBeNhit^7Y9<@b=PshZ?@U}zaxNU0D`i*wvrjQYsM|9#c%xrB z7eo0((^on{C2{>ZV!>rzBxr;^08^aXh%8L%zL!B3^%myNC*ox!Js7*4cLhjZ0kKif z{U5)2cIG<%G1M|gNJK~+BIUNVR(+SdoqwwW#zz!QO2A1(L|Y%9s&Jsqat90(D&|L? z)!QfPSdJoe_!RgTW3jrF_R^xRftlluss4O`Rz%KNWd4P}+;z9xkDHV!k51Phrf}d5 z;KAM1{eAd1iTsoO$Gzkcy8in`;^kgebUqCidH?MMNJ*j+ntx5#^xazi zX23L%y;UZ+c*Oshf%g?Z#4MJ*@7XyuF_J?bpxphQAvqE1B(h_itT! z&TpzF$1MF8YNgtLNe<^5IHbusM!k6@KnWl2>Qr=nuWGvTi8b2s0TX&pskM$%xvU*= z@5nZ<(!*C_4uwMUqYDZzSKRAa4GU6mJXjgT^S3T6IJ71-6a1wl{0b;$*GjfJ%by!y z9q5dH!SK~Qy;0m~!kk@d^DD=lT=e*FMW-?|vPXp7wkM%E^!{8%AE7={8)Hj6*{9*n zhvwETEG;V{%i@oMevig_FYxh4X0r&uZ$sea%Qv7<%~+nfGJlF*4>Ys!`Y#4%TAK-4 z!&&C4BVFRyUSj_Md{F1vH`7cJ2}|z%i)2)o5|fQfwN;&;bIL>QAN1|9J&?56F8y=g zUoE54u90uv36V$_OC}8usvRc0W%T2I-!(_kW->a$F{tD8x9TW}bsfDgE z`C|*k1Gq~u(&;k&wlYy4?EE!^nUP-TM?_r`JW4XAuqR;m@wkwXvpy9B!G#n9rJ&WJ zek4c$j;bKJ_J^`bTz2~rb75^&-hT=JI;Dg#%mLO{~Q`OU^qd&I>caGj3&#~{E);7xOMq5=`Xk4MA?)2eUMnz0;-sa&5G z@x|F_LyKRqwTqIKz^%CV4EByX|C*Q0GAm<;NFdL!?~nHQF>;o&n5(yEeHwdKd@SPk zHYwzRFRNc4tiRgf{r)-ccq9j*sGQFaiuv>3>VL5qZH07FoHYacg&#H9a5{)z#Q%9) zGVe>dC?MR63eJ24ll&6*eyf`V(~Rw2ql{j?S>R)d(VsZ`Mkb`q^>a6ElH1SV2YOQ@QljVr-*TZOs{><)I=6|KGzd;?*k{I1&?IYWo zJ{RCr8u^W^abw|5^d2fO5dA)mdRmA_K{!AA*Xy+}OXrzB8hJK#6Ca%7L~3Jnl|!$9 zPs?{GoXwc8RX)!`ZPJaLuL4~DLa}rlmt7aH;JfKO=ZN=&X1~iTpsf5rrpSf4@(Os~ ze7|h1;@ZhY0A#C^UCmO3?PcBlKZ{sY#sjl=Q@&j$EfwHnX!N;gDBOwnfv3fXID>{+(K2eTL^>@^e2nN|Cb`rDph2>fj54H8fhedf$DG zTan||)Lsny!O^ks(9=&5Me;qLmS5K1j13VZ2-0UapB;-yRmTGO_uu}Io&TY|nR>gu zr=o!@xMjuP=J9g$@ikmq4Mi}8a!MC>oMWjywOE$NjVS`4Hi4-LuH}*`1?()+v-7-{ zDxR1b6bwT@PA)v#gd|hx_p0`*-HbJ(tY}uZ=-lTG7{-bYwtmA|tpoN#b_fdiGaczE?&; z5mm*1$q{IKmassW22!O;O;WEDLc#AQG*sN!jvrd?8lHx~)fv?j(Lc+iF+quuJMk%5 zv|9D!*;jun*u0f^iw~%7_Psz+Wm5g-xiIv`Tt#hGR_n6uY}{YgfI`fIh& zksRM1h|mfuzne>g~2S|^${g}KMJ;-2H_YP z)m=sWZ#tD}Hu+)hN1@uK>s)*>xfj&x4ftJe@=KvR|Dsv{`G)Dj%(Cxy9GYSd-jmv; z(cYMPApsa#gRke$ze1tLQ^Nyhe)7Y<^8UhwW8uY|@Gp*x!y?|aDQ+kyIlRPoinlX< zW8@X=>({=VW{C3htH-@phTy(r2cF1E{6yDqy>ofdMo9Jtpq> zB7SFop&V!v+tR8wa{!2lQ?R@2=5)2Kv0)kQZ>Z@Wvse89wbIXD&QcRsoy_pR$-MsD zThG|ZshE^&U*l=HB_)#4eBXz*P37^qs_FcV{{CS7Q)EGlRb+5Jd@EvzjWX+51 zn9Kb>BM-PHncW}en@|`q=(L}r7~~mvSY7fbrc4`Pz%#co7g8b@j|IImXf}+}A7J;W zmCH?PzUt$l5rj>~)1rSZ18aUyooy$moOHTdOzDpXD6FeDORAezmqj-GkdhMeLi}^a z&yS)PIUNp=$o07qU@P%r-|2)IKi=^AOU+LncS+kfcODiW++qfpg5!{`btiridINw7 zM{mI&k7Y_aJ*Q`Y#*6PlX#kemN&V8qCWUPze#t%&u7u=o!u$O3rZjAH!BMyTDfiK{ zSm1+T|4Tx|*#(G{DkQqlE&6=^(i#B`9DTh@N8V=4mC`js2Q`=07>}yvoazvrm&(h^ zmxM8NAWA(4b`bnGqo9Zx;ge7QLOjaM`xIwk8#~7CZFd4`%0JwjXR=tiv)~ogEAal1 z!pj~qoM@6OhIG(O#2^{G+Q2D6n5HQfsfA*;UvhsRo|)z;D!Lhkc;1Tgb@zE*H^3R9 zcgs_**%Uh)lql%s!9;B;Fe@8vkJ%8;DQpWqnYr@M)-MqtyjfBSL;k6{)!!4j*3Z zqh3ciWXaN%@7=*Bq^22R%Ji>*3%NXtj*#;y({wY#i5{$VNl)GAux4RRU@!V@@OzbL zufxj!n7*z3<(3Ic>N%5aKEV}N>}3p0NOErpWD7!qY<-E(rOo<67@16R*luke7>eVCk|=h zfyfJK(Y++9-Cw`HPUbSCAU~1wQ3eGZ@+^_p%;phf1}*1u6`V#hoz(rM`7D%i#SPum zMuT&T@ar0@fbd3KS!3gZkHf^t(l8jqn>%K{5UNw6sY!QLDeTZN}F$c z_moOo>^;em{ouZFBPe(IZGo5U?V@4pf|L%Hf)3k}-}g3|=3m|iKp$8tn9sQHn{Nef zon6;;JlOeKQS+QK&5@~tS}&f{`{q4K{lb)-PKoxka`*IAH9^?AnDNRcQD9%KAU?zM zHbPOdI?MJB+)>H6QOtlREs>4`6E#)ltNiT(ZN-)Gd1RwqR{|5FY%x=pv$f9mZ$;Is zK<%M^RDzEeb6WEFh2YFpad%e+;!C6f1&Q|pGgy84yTgF0JT%NyMU>p_`nC@Ula~;h zd_RzKWOSML{Yc!{f>^@0Jx`?=ozh#qouLM2|K09(x&nUt70vOd^eic83tkf5DBey* z0M;YL1?tzS{fyc0t-G1iyB9M-_R@Yv4zTlMz3G}I{pOrcKa1M?zLmX2Cw#V#ty_3X z7ya{rb-AS2_V4(iJBFzgcg*MSy(MlSOk^plUL~dcToe6Kkje|Q{vpV#6%Y`q8XD5r zv-Z_0@iAAm=d^wWsb;p!?JL7BbA;jbo0FQFLWiF%%3lvvZ@uXgO%OsDC_;U1ohDxa zfl3?N@}^^5@oa-*HGR*=e=2gHH`;fu`|4h}?Wq+rGUjD5QtVGymJRa7jo=hty`C8! zTpii%l@VZUm+HT?Qad5-(Q@H#p0UQ5oPcbe&Fm?B=H97@mcp5_opZTar|mf&CoL8nSk@pGdMWEVb?S1P3DeI z7Y++2SuA7-6BM=OhBaKY*1BY94bVSkC+F}mG$n4i4riCo?F2POV|`)LPH)pie;f4m zYwOf)KdpB!6SgenBY&mMA}JFlQWdBELa=UWEy?K`a@yVd=7QRGXW4}7i&C3dn57b3 zNY-2r(+x&M_^tC1vENXj)uG)&vI2=CQ~MRHT0iOF}~Aje82Y~t`Q+3TOjO;?{WfG<;F9V}JSnA>}i}`E8MV zoaFqq0|I-$7;*-{FQyB(?zKx4l6m@pZ%uose1X@x_DPcCkYkyt56a_ilSW)EjXJUi6fO3?wb?L z-BS4jHm+4eG6B8ox1=aZMst4q8TNsJafBXMx3q*$jtFBK2qKknuJs{_S;Uh|Q(d1d zvqaLJ#biBKaN4-2zquQRX+4z(f8?WyT%&qxqPK-SoC_18BqGkANkCe_76iD2P9zy- zCAVYo`6AJN4baZEH;0Hsz^IJ2biV2owaA%(9aWziUU;GEtIJ-F{d z@n(6AT3TKwSb+PMsHg-&l@7-aR9N?%I#GEuQoLngZe^sHKk=dW|3;Ic9E4NB{;Qp% zO&FQHYk4NbqI2QN&XKEtt{Fm;!`MvxSu`dmx_TFW*$o0o4f^NuQrnn1k0Y)_>DCnX zaY93>9Xe?B6r?{3iA$YZ4N9UnoWsBhm zStl~>BqBe$>nY1hK|~2&!|BE*1fj9)K}HzAfwd?+j^X=QI!KHQo{*5w zh1Zm1rCE%1%Er<1<&L0p=TJ~C>m(ldwUH3=CDxMsLr0#-xM11IQ(xEM3?lEAR?GhG zV;Q%1EG&nZzq4#@T?zcc0%%MzvEVsR(^AX39Qy3r#{Mx^b7$R<$kl}Jh%Sol&4|BW zR_%HHUGtGQd&VSYQbCw-`pcJUPEsH#aDl!kTT3WUia$!EkHH^Q6l1*Ha=ZgDAk+aW zC%-I?E8zRLvVc5?+r2(A7|UqwBh{56}(NnfZ#b`fJJlCd=aLQn2wg9M=12Acmz+ zspDf96%23--NCKuksjQt$}eqpnpX7x+}}cHII8!pa*>6bS?fo)=bjq$BS*5;_9inji$SG z;2Cc%Ae07q}2F?GYvC3qpcB3N$MzvMRtd;seC)jJUM{DYz znL~(k1&>VNN20YfWTXs`(;{mg{0sY-YjJ|!2q8I1E1_-(3;q1H3wO)c^Xu;QOuVSv!+y z%limqz_;g%CC8-gnd*(tKbONlwGn!OE#Y-%wF%>)Hafl?Q?rtSZ-t8yuhreYp+sE? zcMfkjt>cbIDl25hxfaf|es4w4qR}=9d_=lZX;;yzWf&ycI11`IPWvdip?nRd;mQw? z2e#RMvv!y{Ss!FHX8t1F>=*lQiJ`2oeMj0H&`13_ev1iqv}M&xcfBLi2z6GUYd|Tk zS<0=Txj!ShB^=^;GyZk|nC+Tu{bqLL;U?2GrIDygK#jv#+yju_ zA73SBX>xXFuB%y*X2p=G=vwg181|k>=mH@R0q>(+7wYbcqVjZ2MEQJx zRAQc3<#mU}{2;#{&7K=w(#=x%s@ypI_&JxQNiN?J3^H-;^Ba;in2=7#+CXr!|A;i- zb9sJ=Io*dbn9I?&yk+Vs_-8WJ9p<><{|giDSqp1Hw+~H+zkJm ze^@Hq>UNu6=eD5CE?whW;X}&@6Yr>)mp^C}Q5EFNnDUR~#Ws-fTq=R^fUVYQkmt3aDFn7Wc%`y}N= z<2DD0R_QidfWLrmDtk>CW0Yl3y2}+HaI&@|_Vuw_y?H%TZnt8MiI|COXBj`#P~ed$ zKD{{GS#slUwjozJM|;vLhcSz*5X}#n=N_xc=kYR zjmhfVV<%zU^$GKYtCx@^^FaB3s)42fhrGI=yFOEQGR&QaXHJhy@Mbp+2^iv5h0JyZ zKVQ5JN*HhDA!)(BX=cCjd_R9EKf#dupeActbB^`}BDGdKUb!$R*J-HEqfzUbCYt~0 zbU-uvy~lDGjP|qio07UZv?)@1rM3&txtmRR?e1H^(3-Qz3IA~Nw|Dly5cK%#Bfb1I7P`R?l z>P3n&CsEP+R%RIfyz}a*B}(**MdzR8-nGg}6!rRd4Ise@A$sGCsK%-8__^X3%ftAiKp*+nVozW@(e2 zS5`OR z+9n`Dhwe3_rpBFu|gyG;n{GNH@D+= zZYp>YOrHv$zXIvN7P=4pVYv=uTrTO8a;ZA5nQuP6f6*^lkj>gyMWwM|qs*i3E0}n# zuCL^T(u(FdGFxUS@ zA?4weSHNbB*psFIQo%j-kCh%9mNZ!Gl)c96%9!02tNI<{nxJ*Ugz%7^Bd`5y{8$JmpIh4h`f z3-rvN1)N4}PZEDB7dm<0X`PvZ)CG$xwj zp&@3ccXi=Kg4|XLAH!Jd(S08;b1T11yONj>IXIOtR=(99ft~XQB&w|U)O=wt&+zwg zP=eobg*r%hv^S+2Z~}Fyj;RjD=$$!%=@&DApr27QbtDRd+qu3#pTi?E)xV55N;PHU z%E^b@H8M_GX!QCJZCz@jJ$O z-M?J;#T3=#!A^BKe-KmIDMge2;EuO_zV^iAhU(hf-5SO1JJTE0$0YFVig` zokrw7)FON2RdIawHy@>Aj?wdaxgPY|jNti_{ZdGXPmAeyw~|%4xnf-kiIn1H#-eIG zbto+q%g7>bnw?v%KW0%3_Wcj(9j@a0$}E3U#L=Sfd`hNv2z8_L&Ii$uClX^QLL;U~ zqrfzg_by_EvsjrrVN1sK*EYJ*L5xS50n`4`;5NbDK_<0k(1!1znCMVUiV4C>o9I2h zrgNi1?%E8f*#(~QH5RX{M#-V7rK=wTS?6Cphu`&diM&SFwcWH_JoHU((MB-g6Ks}l05|wfE4ru?E0MJQu?!lC>3qHW~ zRg=zqmTgfS(=|Udt5u z&o>i-yno`D{Fkt->&xB!&t3f?< z`hG&+0+#6ISeXBmq3v(9kU#?RaJcMWh%DLXg6;9gUm83YAyBXm88d*CguN+W%oR`K z%{WQb7!^Ki0BI|vnj{hS4UnD)6Q0Brt1ac&=Nrs^l9rv|l)%3ac>Efwe3ipLsh?uY zth4^a5r#n|u4M-Dfi($x?ChhW_9l&MWPE9skL#$<1sR>u8Y+H*-N^mN>+w_Do@292 zLii45h?egJ#C^$ddiG{FSM(P(W!(%72+pNb z|3*%q2Si%)uKw6toLWJDiuCElwH)I$;H>^;uX%>U!d~gqcq(hdG+N*Q5}x&j3wQA| zT+=iX<+(>mH`b*ly}$Uy+c-{-JWvvJN*?3rK7y;9Z~3x0%zdO_7jNN86XR(0??mk4 z;3c2EL6PG`gHw2r_d~lsonmA^_%%?5h08P%vK0E4C-~0}EO#S!X0zmN#;?o4ONOhY z^s&%P5}k*;hj#`?a$U#A18_oJb~~k?X1t8yg7Giqk1e2qJinO1o=(6Xv~zs@UoqNh zo9uJws_Pf`$eJysm(rJIs@ZW%N9+)$UHED%}wac%S3-wN~?~ z(^7G>%V5l1nj(#GeN6AY+QDL!hlG0nH_GNK;HD1>+W_?&TI;6OlH$FXOb0wuFt<@| z=mnx%4Kde+%nK$^rWTy@j&_N_;7@V;*{+U^OH|ZLW!RJJ8`|j`8wRgol1y|$+r;5V ziq`CDG9{wul?P8A{l^i}lb?6(uBHT43{-@F|0%)xC|OOeTtt<`t|NXoWT7%; zsq^=z z4B7SfEobInX~*^>t>b9otdstTB#q>7DD-6tlAOMph#>>8TPmz8KSBGkOKD1imL(U| z{@)2KwaLEk``BXKk4gEWQO5F9_DQY{L~3#Dg$|Cl6KlO@;3xg7eKq>usni7`5};hJ zz&Br_c`N^rilyH*@0*k}5JD3f11m#d=;qJw>3_uDOuB#=DEMKjc&4paa+ld4&!j0~ zFptTrq-^cm(siUDM%R5KIf%YEBAwu_^4D7;F(B{n}i02G`c6sD5t?|xP z<+~os0p_v`v^qcNx011{DXpMZh-J@$(v5x`#3z_QbW@MZg^(rn#VH8=6w%C(@HYD# zaI~kuVxQ!<*6Ptwyr9cB^uR;hYSRUWvD8R>@&5shKytsEZv3cAzbEqB=J=BMBXiYj zXUEVmgL1Tlou{Oi2FC6<3^=wI_ZzIq%93^8pj4qmmpvu_04M-IHsrnqXNEFfT2f<# zG0oogO}P!n1pM$fTm&T{*jSqr%X{{|06=$emhH7Cb9}p;0pcy({-34ofE~1e3mv7{ z^MC3v1HnbE+f!hm;HmiOyL|B=QvO-8)Wi~mpgKW3n*w?5fEqw5NI)jR!R}t}cxLa2 z2af1!>o1n?U`@o|!+r|8R(%HAMy6qMRDw?0jQ22!IccTU99jPVj09zIa6O(CV@ zkf@Z2wTS5aGZhNHOnP^R9f^xk^37a1uU_ZO1qypGj$W!sz*-|xrcjSH6EYM2YGS~dg}z!mD3IeMsuF`^YU`=o{YcQ~a~_vdAycx{ z{Te1xuR@xQLjE=9PgJz_w<#Sk>JakfJi}CtZks3XCfjDgkn~q5dkPV#!nk@ zZsXFrcQIJ8HL}~>!m6H(xb+xR7?TEep&fHsn>W;=&F*`XuKQyrpQkhMsNyCddR;$e^VKAko(6y}g z0nQ<{Wpm3{l_yE_(E0)JANDQgZAdiC`{JrjtEbv|5){1cKSrt51xacqcYzQlG#Hwf zUy)H>O`yymf@sn!`{YEOvEsvhxXr^WZ94c*@kKr>j1(cWN7as+X{J!qe5sc*K0(T~ zJe!j;yoxE*9I=*Z&}md^RFo9$5ar}xArR8Fsg$^i-4-IcmZd0?Zjwt%;K{b$r^_=G zq?9zQZAw8>U40-VZu&V|!=Gb|eq^T&FH*U5^e*`b43NnRvj9sz*K+)u`m-?ojZ#pxVLWH$QdZ)$EyqhI9oYkC++%Jk034F0am_o~hpD{0UjI-92 z?o6XmQ|`~v*DlCQ$;-ioAp}cPWnjz6)1?yIBhY4cbSRa?_a4a1Fj^&8s zi~El4fDaB6o~9|}xp#inE-@gT3K3)k*d^IVfJkCU?(OM-F-C5ift#~hG9-C*PUVc2 znl5hCiC8X_<_fgr%0`*#THJ zxZ!@U=)RVG!g%Y|iSM+F?E|LxXQNDv+2MDIQnGq#0=OYV^E`PnediW+^#}Y#5U9{^93LLE4g}d21>h zAH*R!Q;N9tRes-b+x$AP&8NJiw%(VsZ*9+<)ulO}xh9QL*PS7i&J#77JiIv?7E;tH zNR?@6+>e~;9~~YBZA}&=-43TNVoEGVhXy)OsF2ouKMVX#Hw->2Y^__D3w{@L*Hg^T z{62B`nJ`?T2~u6xbo$ZO6+l+hZcs3yLPS_98x)npQ|*fmA{`N7FKM_WI6c8{VDm`C z0H$|HJdaOq*n&?MW(TF*xVXCqKP&*#Vnc-v#3bFj-N?Wm4&jB~-Q4!|d;nC#2}-k6Z1d5=Nm&4Z8yhb9GO&AFPZ)aIXqza@6ay=(iG_0{hulsyIC`2G)?3k z0?BfcbwoIM=MCm zS96NuQRaV$)v5E#qf=?|qtoF)lUimYMT5ncJo829Y8aNy@qL~2I$;K$sne3+*)2TE z)Vd7~b-gmv%Fa^B^vWd)fmzhQ0lLjc)Cx2z9!Zj&g)LLgx-pz(=`)pS=}DL~!hS65 z7-BeyKOQpE0L*>HA&xM5qW5cl&-dtPY;K-qN&QaD6gc#xWZh8BxrVKpPNw}oiFeMnKj$&zR5luJZ4vNrgWU}?c%mtJf^>8 zBbTb8m6)`yt1_I;r1{e$&Q9#3RJCs;Rk+`j%daHz6=gWlI6Cgz*m#^0F(# zIVZl_WmRj@{jWnW5S~c6znw3^bUxyAqdw8%L7-<`rI;z1yG`{DgGbC1iroTa&(QNe zTB^#TcQ5ALy)cc)ixDz20cmZjS`@e|0Z9Qqo_tv#-YKm!Pw?e^=2#n4zRQi*@2R#( zR5kf=p+$!tT0A61ff^E$s4*bKNL(nWSHz^mK?Hhy_~JUl6on7#-}f(U2q^RN>Dr}+ zehDD=_U<17Oh24yu)&2r5f2GTH0qd0aH&~``@Bu858y{vCxEX^armrpX-=+5-(JR; z}st}oVtBZa!NAJ_zPCWC^q;?JE5qzP0-JdXv2wcnJzTmTPh_0Jo_L5fXZUBW}~Uk^wIM!@dAU8y$?^ra*g1w-OcA@;qGI09S*Aw_;-$OJy{1FN>s2cmEUXt2l#g#-j`HYLId z;gqftLT*nTumZzE0#&hZ5z^`)d0+y?ApA;yY+qY-8E*y92Sh|H6(vgF4EbdxBWWxZ zxLdQ^z40p}i*Fv$V5uObP*S0_DtoxxUD?CCH|u<92k|21m1@!eM@UGtIFS;d#wrU# zLWcw)*-B6y_!!D^a&^&h=mCg@5Xa%{Qj@(1yD%+&NM?UwiU7heRg!>+ma>TmnvZFMuDnXFsojhrQkd_>l&`h(FDl_W659tZ#u#{6B`xqdC%-vCI4qEaqw zqAn~)Ep9FQ-~)wNfJdR@k&Gn&xc~dxKkC|t_ z1+F?Oy!Xgq5hOnxSo3zjxO0I~_yOr!fedfk)yQw20F;7A4PfQmx%Kt6&H!>$?c4Vp zk;t(&z?7Tea4rN26vVfuaclno;{ZG{?m_kJK3}c?a3nBiEbYgBK9~XEj_%&vgX%kf zrT{32LlWJ{_Ok%P)bjWM$zJQaTEVUeKJQ`);{X&E?ra!;tJ@QHURft4rcTggta22` z(cAWRz`i_^hVJwdQ5>Y9p5GDg>_8T8o(9fxmdfGk`1bcFLz%hY_OY<^et5*2CZ6kp zp$cfFfKc@pw>_BPNm7M6JCod`k{Ej5i~&=HHluJ~vlGDe^)37038!a5l*gi5gpO5N`(Rbhv%Nwj__rLnU7Ll4A6&Gm_LOFu^Je?9M+o zvU?v(VhesjK?DXN_#*B;e)t@DF{sqB)|U36r*XO!4`Tqza>O1(J|CGa#s2_OFI(#S z_XedX2XwWj)1E_lOxD)$g3U4WQlMW!mvjF1kc?AC87Q~iVrzcd`(6_U;aLQU~lCxf< zY93^yWZgcjYg6^3 zp~5(t$-;`?)D}_CSz9>exm@j)>r^b~km@j@%~P}XpVlB}JhUZaB`cSWT7^tOt>x&3 z8ixM>K2=aspnnmsh?<@~vqi(-hP$WOw0;EQ)EaSo@7LF}FUe_WbC4lT$VY)vm6%TH zdC3^C=H=u5VyJOoDR9)F4btuzh#X*R#@zv`TWYQpuEcyQ1pa397?MUR1M(Sz0sO>p ztGfe$1+{@m*n$)rkfM9vjh^@c3Yx_b>_01>eF!%=0B(5g&)4OM1AuTt4_EZ|egohS z9l@^d#>)P_;9@|pwd@HYfqoyjBe)oVc&RK>0dmF3zv$dzK;7qV&_N!S5A67WA>Gd2 zJG)r-`nCW9xKlmB?g_un!{vi1IO~Ita*-VgZQfE6KxM2ukP9cJM2-EuFeHwF2IPcYCusxNwl-OGZ2ZrP&`cJYE(H&1x_?X)9HGzmt+Fs!P8vfG6GA7 zDx5*OQZmH6Qe~nYm^i{y*9g_MQ;?1lxk=eIB?cl7O1ADvQVLXH*+oJ%6-dRgqd8ZAh>ku-wiQoTnz!QLT}9X3lm9ap)}JCyaw zH5cFVKD_?V&$6RWJTk(gYA&OH2Gs8mKXXcvm=`8hleF102uYcuX{9P@Dl+RMqBUMH zRQ%e5gAD{D7x+!jR$q~Bll?tI$m>ilIQx2bJ5NQTLxzJem|#TdO4YY)ScJO;h5;;n zuY;!BN|BL%Ny!uhp(Lz^>SEy}aoo5bxPn?~TU#>YmXc3MQdwov7_v$1U(|tt1<4^z zi54PkKnx9>g2v1m;rSi0B*mp9pI+XdQc^5WD!rSV^SiMmlY!HXO-Ib^D018b z^S9LS*ct?PPTjx&_5s|E@9KZU5(ky0!8<}y9hkC|J-t0207Z=#Xeux2$sN9Cz+wUN zdH(k;k3AdLPTl^92`ZeTo}h+ixA5kz)Sdxa%=HgZ2vO%CnD(O!KW1(kY2a z(Jd&Nq*Eqi!Sf)0Z#ABw{5}VevI-MFPRKcOVlXecD4O@jE>_%{y^*_7o)oPnt)FGI z2{lAA@V0r0BK}&el%!wS2lc))DTZn?-;tg%_8yOb4FyWD05>F%LH__NVnIjF*}hvLQZ z37pKirm-^)otHA@J{anYGgqrehYruO9_5xwNf_tL@Uc1lrN@3kO}bp1i~CS~Vpco= z_(+LI$#oH$d|d0+X{hPWkxA2%sPoyU#72IB4o5s{ObK-oPFT^ZG~#J=xSM>m#e)xT zbB`^{OH-P1eBWz3VyZN_U%$tn!=b9bW#@z`JqpsCu}hvStJb9A&t^Q`nkLk^^V#!N zvov45XRPH=oQMor-IJur$*n}6A_-7!<@$UKADb^5*S}Mj#m+iu`LXq1Q@I&-oTYhi zVfkPVwR(ZKYV1L|vmP<%9)2|P&gQN)U)ao2Dv2az*Dj?&jR8>NLyHWQM1>Uu6vRT4 zw53TvxB*6q%DFc!8zTbH0_#PQa(?PM=aHEsizz5`lk2v=|{}?_~VR{#*%BFUdPv_ zfp~<`j})45C97HsousqYO_@vt)Zm07M>J&WjKVjHCV9(7G-=GaQw99BD6UdvEVvP( zB#e5RT6FpRK8FFB3;tBB1$H;w1;aNZ5J>%-ic{s3mjI9n3Vs0Q@9T*L3cr~s*jV^Ak}ahJt`%%*I1t6Oz-_54|tVO+ExD5#}LQd6XgLxnxVC>-wDW$F6R2RU6^;F>aV> z20`%aSDDS4hg+P3;yXTNiQK#512}l!(%Sx@Jx7Voahe!ipiLB7$S&%DbbNq&6+DOOP!CL z=jxH+$f8~aDw|ZP%+!h@)2Wpy@8Ph;l{oFf+t?Rwu4-0Y)BOzAeDj*8H1kjum2^Wk zYNXss)W&Y7QMH1DMT&`Rv#S&>2h;h*X_tpD7aAR_bM(4?WKM6a*E7XN68Fzc!mf~OmRs=SN6R{qQPOHAK+9Tx z6DjzA@h_IMWJ-ovl*v^p1umm8k~IPxwN4dkhnX|v5i<@EkxWA@h!D&OO9+dmdz4eV zg4@#H@3BbQ+EPwmp{ZYI{=Mdpv)5hVeV;xiJ8UFxN^5nKrnaSCY zIZIOOak4c^oiA9fQYcvyP$OmtF=0cNpP84SW@SZ|{3&_ZC`W&S$t=DTb8+1jV!kscysl&0A)6>C3&r2-T8dAN_X zw$wx~!ig1}QkKha*Qu&@t#D-~Be4v2`Y{$`^7O?49%dfsY8EO2%v@c&;7Mauq){^p zVp=*>V9Y{^4R&I8C7vCEf|5gn>M>bfmtBXqCaY($SS1D--MOw(Nhxb| zhhTZY0F4YL8kGp4lA^^*EM3)br#ngSfEftIiv%fY5Y@)S@GipYw*kjE0#ZXdK~KW! zbplPhlI%~XrT{E7ju+-Et7$^4q=K#$xwilZYyjv;NQ<^8+>i^0Af>~IfOp%@0DMVU zfJ0J$94mVFq`EyAj>=H|Z~%~%tP~c8cNRbeDG>V-{mQw%0GAC31iFFT9YII%(sqP| zfyoXZ(*Q>>fl*5!?TAzxaR3qd3P@rHuWSHxf=1);ouz=T*IFG`_@KNm6W;3S*(Vmn|1rAkR~TGqAw-R+9hWm4y` z72U~qJTn3A;kd_NraFUQYN$+R2DYRv>=avH{cewy8jiFXx&J+)De`AX@ z^(T9F0ReHx>KpdOei~EOwgcRz&Isn%xCoQ=aQ^_iJ08q2j!c!bdG13T3*2K3GPy zjoYw3zP18_b`rttK4hM4W^#1_P z09*jzTI65V?tQ!2umggLE$sKe55Nveo7Az~03o*zUgTh1)MKT`&&~Q05fgYJN(om1 ztZ%^%_XhzA)x33j1qC)@lk#Hi%Y3jVbJes}L$|2#r4K{e{{ZRR5=^HlW2q+h=ky2` zId=I!9lm%I4B8>4wb)Q2g)d!y6v> z0+UzD`ExM3=j0)#Xp2wDG@SBJAg(MVh;f^eA|+0F#1PVwr^7MDPfcpFYFuh8$||zJ zZW4;wD^U%?Qk4@eGN%4jB%e$UXW{p4HD1N0nK;m*c{4B~z?e)zg}{#uP-7r~LV}R6 z2~D{U9|Fq)QEAq$jGYbwQ)c><@Dp@^d2A7;I6P^_?{Y|hODKh0vxMEfTa$rx7{_R; zN0ke?LjZXxZ=tpXjZ^X14&BelTwp|_87h*r2}!e&$Ui@qYzYvH07`jgH{3Y|!vLat zU{YA&C#p#{c}d(Ehi=yY05EO(;7p{F^H3myg(xNVsW&PFfZdeDF)x9~@gv*G(RO{t zDk?xrs3&Q3vxJu61w7y88xT@coVJr~9z#VWhA0lD4a08lo!KOFfl%QA3=o}x)4}9@ zT#@~7qoqPF5vcj3x$G4-78V`*kFF$RhMCigd-K@xRkS%JhhPEsHsp*Aa%K2+wb`!z zDYA}8){O<#JrvYh8O(VXQL@Zjy_&M|TGIxtPE6FTN?uwzVXX>@0W}#I5f+Wf3Q9Q~ zh-pbv;L%j#o8i&%mru$1$KYdA>op$tGSow#eN_w03HS@o){xOi`>eLkJew)lAQ*&(cSxLK!2bwea; z-c_lE&nr%|wMLbb^)D>T#2#R!WgPziPK3HXWQi#Z`EcM?rBbzRa~Kj%JbXXIJWM9z zooj>Pt*g-W*Mso+qNR#@W!djt&F#tB&!-vcqX#aT+MYtsQK66b5VWO9Z+vy8p6S{#DXWL^2Pxe4KLNKb*bp%wX$W+Z65D^6 zH?4y@umDz|SS6T00E2$USsgmwuj2?P(!r2~I)&K1z*ejepomA-|$I{=47 zGL+fQ=x$fb2jRn5;tJ}>wx{vBKSIT+Q`{_&k{xN;!7gmYyB~ZEOh=h$s#;5 z{YYS^aFA{R0GBUpS}rO1m7>YZ9JblfueqNu2$0G{s1d?YO4ZiEL<=Q_j}MJgSh!c~ z`h5uC;z!y&_I@Kr_DKhfT2hq$XJviNhbbsF zrr|0|6Sgi+H{8qUgz&IMO<|d~aSJ$Xxe#|`__Tv2DX~xHrNN^v9bKD+q0^KAK zph&+-3LhirN2UPqQBP2{y+8ASF|Mj=mP*lmIMiKa)T)Q@-8#|ykC^o*JWeEtYB_f* zQ=-&nq#!7%{{H}5m`o`NUS4Ku7{hn6<^KNw$ql5p*&mvQvTG)K@gc0*tKv6PO2&HD z%Y4{$0)q-mTuJ z+{LOySkV(N3^Zw&(B+`8ap%lLOc+c#AVr8in7iPq_J8&!XuP(Xcs8TwDTqpgUDurH zn6*A)GU0498CIVaIU7%;-9RZ2rKov!BxHkg_p(Pg;*_;ZP?Jtq6-e%eR)UbD6gb$D zHh^5Ho0S1;hHOF8hB1=fJFdOVjRf@EgXjSkAJiAX=_CgPFfMJ&fGvL37y?QFSx7c4 z#3sNu<|OlO!LS6tgry{yf%XHi03nY+33U|??)Z>uPl$~18z;(U9Z;RDPUNhipjlRG zwNccW$`nf8Pt)wpn2OPLabJgvE=a>I zD7Wpg$KtbQ#~of9%{8@jw(EbP^CP7x)$g>w#dcru<*B)888=Jl^!nb8_(Rgj^Aj_J zCS{6z{M1a*stSQTxTbqBO;aPog+EY7;Qs(HYFuC`be1Dr@yzkI|j5 zH6_D{z*qnYa(*HY8%87;yIC}oPy9k;8qSz%g(|NfFI4IC5_Igrm2(XCP1KB=Gcuq> zYfp3K9Kx<;O0*c@EC?%9w7}em@RpSkj$aeuFnFYvSf?cII^4W6WXHBSIH%1s;V$%hhsdoSKMHC9T<7Q8O_zy+&d@U8>9yo_!8_ zGWW(*vemHjN)pAkN4@jY=v!24k1t62_p_QF6MSX(kMJd`H0Q}(s7%0h0|zIsubmKGND3JENb-hQkD|Z zQfNxzNrkDt5U9o2l#E%%OQQ!HJYW5*8X@7MI;TN&k1SUFWq8P}O-)m1{vEVpeHCP7 zyv_G{na?j)^W2(eq_X)6-Pxx|C?M6S1R(#+it? zkz;-CA#rs%TYMUOnL3L`&D82?{{WZt-FnK|SW3yjmYVR#toncA*GuIgO~&Y%sA*1c zs7zPkNkxn!Q>Gvoh*G5y4DC?s7m}T(okyy!O3ApVB(1K5EU`w*+48v(XDU%Nk5zM2 zvi$hb^ip!M;HSnl0#2I|aPu$WYb%1 zzv0|#Ni9t#`P1Lg;b3f`uLnlXzAs%M6kTX`2{i9wTyp%;TC+IMAu1+4H zc%sPCKYuZ*G)$g^Pt~aNB{eFnr6N3Z)#;@rZj_%Cn!kRVy`Q;7H>Jv+&+qj{ntic3 zuDPY22Q#KaoSuaWrL7v(rP)rkL7>)j!z1Jxtxj5zH=m}p>rMPN=|uH@TTOE3h+RCD zOj@t;s=V~%wRTc8C3%wyj~#OHxy8lo-+q+qo_V+RFBKHLyI$wdciG9Ladpebw}w29 zWV58@I!jRwre+A*cTPo5HPEQqSxueJQaPeZ1Zc1&V98Lky*i9$BSnaaXiQLm>sk=3 z;VpTS;*(!-C)ysMqLm(Ua&tFL=>$pn+Jy2Hjdjpm<)js)&luB{c|-lP(#RimgT8ie zEx-PdEp6*-u?)RRcXrs-2m2Ga%BX zOTDsUFLd7b0ZsAb0TMQpxrfBwC1uVbH7@XJiC z<4Gmk*!mC3xq($#L`%%7C-Dhrc8L(7UwW5F+tfpqPD+IY#C9MmdM3xFB>wk~EwN;fTB@nDee z)b2Utcfbl&u&GH3@7u5q^5Xz9B1%e1wuI~p3fPuB4Tunkn-H-Q7yuPNN{v6Leq|MKLH_`KfT}}_4j$wwC1gV}2UtubsD4DQ-~wLU;0RG7bQekhSuqI& zDM=f;?_v;B`rrd5Do9ES3O0~=NJ5F=ZZ1pN$7})OfW7Rky(E$@L;7*Mr_%ry97t(~ z6rw=@3)rQt#~=>a0!fPvP#kq9Yd8J2;PA%)Lkmj{p=l~nN_P-|{((dnN$0)*iejm1 zA&FNfgzRoXBoIf_7Ew+vR+C*jfg%`bB>`&-N#Jl@jmISYaFdIzDyeU+7$^>~$@0{3zr$Y@d3>6FmJk2d`m!LYY5}=Xa%=)r7$;UE;wf4 zN4b93k^={^;Qp+C#{fJi+mBoOoBXf=0e<7<^0(Ar1;7#$6z*qmc(Y%y?!oZqXTS=D zZrpb`Cdna+M-A=^V3JCg0DcXmt?&mYcHy=6cJ<@@u;dGUpp#^lNcZKvhd2U2Q7S+m znIw`6q%q~JT=C7ZSxrS-<{?h2NjZ#E<>ebe&F{Q7IKugld;2>b|T=j+;Q^2DLA`}rZ`1fSO#Hl*AibI zB{lO?>`C(&gsb8pSPlseT;d8RIV};kxuMA}9h&96$7Av%0-*wkVcXx2clN*!O2|Bi z91-v7+Y)zUoLqdVFG5Nq6urv1X0dVE{TyId<22T&w3{ZPX2{%9?k~wFk{|ODK3H`q zverhf;d^#O)JF>Vc^7A5JxgBLlcQ8sZnxvqoeF6{hf{$32UGohTLNt-PnJ|6&s;G9 zz+m?l`7t;WRG`lb0;hHxO|NG@-S7mNkt0-tKb=hv`yz!2g?C~FojU)!)h?)U&oNe1pL&2Bw=^MP2mDBD!~5y}IH zKM8vqJ;(=-Tny(whb>oY{{WxV3q%UCfF$k+DtmIG{{TMTm>K1kyiu2SAa$0ARK?hW z$+s@v!w_@DT$1$#-_CB27NzT#fz_Q2a7rwt7_w7DFRlJ+2XdjbBhfiiN7j_*qO zpZ6HFZgifILvyvjw?6oCOyL}n^{ts^*Qijc5LX5(#6r?RbTfy$tCmRP*8;Me$EO@t zr$&kEFNN%}o6$cWEjkdGkGL)*C}?#$ZdT|Zm5UHx13b9X-aAdMI50|QZHgeL5;Kx7CRjYa5!6j2r^!HKnZ9XM?JZSAR zGDpp*$olt`PcBD5aP1pOD;dOxN&_g zex{H3r-#Ej%O~N}bfrzkP4ewsS6#M7%xIU}A+8!FEej_2&(aCZ{{W}*^Rm==jKxx> z%+#nfs*DA#30$<)%1kW3T8^a^gd$>Ad0`-?3Rq*r&*38(X;G9WpIfy500Y{`I}}Jn zDT6yM2@aj2*Tv&}Z-;enCOYc6nyelVJXEpNay7!;F8=^isF@>Na?Wp!7L%Cr-eA)l z$1e&3;*7#&s~HY>O)F%v%etROe6diAHd0C@W=x#mKywU>a7@WTSFoBrY68?Nlg;RnoXo0Vs%t3xbkC$8u@!9nr`^TqPuR zAc5Er$>eoA8-~Py3Wk)qB;N1O7iZuV5zoE=3W|b@o3nrMH}q@(>D=C5X8PfFFzE4rK|;c&62u_NhlP0Z0lbYKOv90X@T5 zADAtPG|M$EW2Sp==wpheOjPMmN!m@yf)%h4!r8i+{>XYvy5V{GEJ8JJqwen z%)^gSnwS#EiPnfo@}e#phT<&6FX|YKP%FtRoT=9=z2x+7AW>jMftRv%2QR~zn~6}U z#G%vWsWGcnIH^h^)$6N~hXy5LuN4UaQ!^f9QUetch>T+&l_XKg$=tVPZc`yrWyCc? zjWsN&YfB+&5m9lp5TYH`yYr z;37b^*!KsE`j3_XF^6IcD3%G@ToU2_n2;j?#1yEDDLv9bHX{IeLB{TuHrk#N{fO-N zfJKZ`2`W$|r6I}M>_3=~L4ZDGKjJL$V64BVdRyRsDNmGEHGVZeTXo3GM^renx>J;D z(dD$mCC;S{5d%MGsW`Q0@L~fFW}Qcb;DwB9g*|$!YB{sZ{{UTj+46p}mEUl%wVC$v zPocHFPC8CvxsY;wTTrzJDdf5Y7_$}3%UGvTDKKEAUTUg!+38vhKgtPpDm0w!RTB&W zB`{Qb7N$vPkG{bD6|{RG(R9}$8Ov}Tm=N(+D(8C z_)v70{{T+!SG0J(=Jfbp(R5^tt3r)ar%6(#<*3qBOuLsUs7ff=2PD&X ze`hi_Uxb)YK&NH-A|Wm+fR8ybzC2>6kqO3cZo3xACZwjNZocnBeX{*7ByTNif~3KO zK`K_?#AeyGxl0Z(H^+&_N_YEaP=J;|uwn+(j-J2=EL)FENx3s=u~Bj^SUY<0>FbCC zfpcTqvmcxK2EYtV0Ag=&6}OG>ov7c7zUHkeU7E$5qK8NZ}Qb$cG5qeLj-Wc^GTr)3+ ze7_Q|DH_+UT028sLs#`1O=cv12gsivauvmCFUT_MpS5%(Rn3tmECgs`jBjPVyjUn zCJ~l(D>!A@`hVVL{_Ce6I<#hYBxmXsE{r8jT1O@8mPn+cLL}8LVj?H$vHZz}6BSBI z#?-_U2&k|5b$!8n<+@IKlBdne1J}9 zR%VAKQK!qonvj<Ui`ZeRrCB)L75I$ry!;_azi}%FPI{{fLWxz7%(^(STOZiL0jzR_D(e^cl8?cvVLlhi*Az8>Mw=@~g1ag;Omrq{IMpQF^h8=TV2 z)2Nw|G}+9B2A?H8RH$ZMI{W1sdbN~hr)FbDhe)k#+)JpS{K_#`9`}54ex`-J_7Cap zBBQN-A+=__a`ZTPA4uq0ag>g5oy<9VEmZ6JlbRt_b1g0gX`rMD49g))%9N6)dY zdZ|v488*DF;WJWs8b%BmWtBx)sG$RKA`0|Tm-O;^qs{d83Ms;|G`&~iVT{Qyl&Dj} z7NAdQ5LAR&YE)F~_k`Tzq_x$jEmR_@3OT<>rDkNJnRxm~6$W7{PUtb4g3#s?gjG2v z{^La$#Z*-znSMBYD^?+=BKXYG~4(a-E)=)!dbmGTv~Y#Fk!2 z&oHGXYkA6*FQ$uyF)V6PS6-!5*Ct`DUvr8h9%=Y&tHmYezm@RP@7*QBDVHC_j-EQ5 z$NN1zd1SvFItP|D-y(Tge=)A?DXPS4~#`6np~YGP0(C*nrSd5!{&LXR|1 z5jRhbvv-*eC?1YTV#)m6F7eBB{{a60U!juCD5V)Et82f^>dhjxFJ7j?o|oE^vXn=c zN!+MWlsBZMT!;}<)eMmA={HHoEj6>`=uJJ==#dr}T2zx`!9Bx!`(O(Ky-I~UEioq) z^hZk2ToA|NLdkb@DTw)FJdljw)RpYXO|9d!mjZFA{4|h-i*f{TvLWgLR&{_PxLyo-b``Iw{Ld4d;69`A}~(%qy(rlg2{fs3-b8X zdVr`f%rO^g;w%)CwXeG7 zAx8-TN7mRy#V4s-Ywq;}CLJYYbrPMYZGd}~4qb5k_2#A4!AMIaTXK!~4A0HIFa&671YCU7OBjk#zR}7+ zcQ4#x(b?*1;<*7-5~6<@DkF`@pKzhb#LiKZ@~Tt@1e5rFSz1HwAx?x6A99!nJFz&M zjzrS8*aAw>0+LcUBWO?`l=477%t8I}o87P;8q#6{09i2;)Jv@-6tF7cP4c!kj(I55 zt+0Rp*ZQzm#IKqDxcAowo)H9skV>6^NCmo0-Tfc7B!XT5QGf`N?eidfnb`Ya2jB;w zvAJM*@A4zij>ont(`_{BzYrA)={u8fJitl#z5SaO0YL+H((G=Og5aKA>|X|xRQLmd zf13vfko-Oz0a6qI4ir=vux|au+l)hLD|`URN`NFdDK1=qkiz8h<*`Pik~=kh`v8fG zT&1oUkWJZ2V4!<~PaTFXqZPtd0(poI>I@ClasdAIoH@rlmPv6Iqx;-|$!|xso8RBl z8C$C80*-qzxNiQq1K(e39CX9s&2W?KNV|yvHfMWxKIgk)C5bnwI$eVtlEf3hzYqIk z2{k8aQXrBRA|$vW$V&rr-1=F$_QgQ`z$hZ_Q@C2pEzcMM*a2R^Ftgvee_xgWUC+C4 z+)FVhhQJ0&!vq3Kf>NZD)qV;^LciHu(G28&;-qtMs!OkSxTrW+nMM*QF z#1n6CQE+{Ez_~UQ@B{#+V(jF*cP7Du{+I%KXJN;NxG~WVG$oJ3hY$rLXe|3UdpIKa z0>iFT;mAcyNmVcIb1FVs2`>d{8@#m^JCn4!NxNH-fGya+2_O?nugU z_9vI)=f(wf!%nMOdy%3nGExKXx>Ow`dNI9=;BjSYSuQ)OLkbE}9%3|9K$n(-5@v2< zEL1|4m6nAJsyyV})KZ8Nl8_JzqC|+K!-jxLlmH|V(TyjEb$put0H_`;{4Z%uUagn2 z{<~@JU$5nv?I4oPlz7!oyw7EMPY^YvWvv&@HTbZh{l=fCnc}q&LPlf}qERGakh#g3 zbP!B%>GS*k-@0|mqW0;*QttlaH!-B zHm7DOY{L#xW{FhQtkFr04<|}YArpD3NWz|`!kChe20HAMlhU_mOtDowlk(qE;mkVs zpxHjDpD4MrT6DuI)pVwfld}e?%I0j@Awe2vNz^*&%NYtLeVVGORzoS&bADt3MoOJI z78OlXDnb`7jqu8eH~anV>%-`7sV^@ET#W&6qs>b#NE1>K5eB0wn9!okQzl}SN$B$M|$* z4-cuvTkiPu_UyVEWn9s`!t&W>`IQwG!Vt6jf z6I9IEmU5SjuM9D2({tH}Qgni+6E;;TsF{Z^3VK&jvVLHvqNzcTOqG;GKe}cLO&%nw zK}0#2gasThtT^%fEU?iVy;aNTzscE_IdV_^%p~NiO?z^EEO;*aR6G*+!>7rA$W36B z(wy-#3`U>Q+{z+P<>gGNC2`@*Y5i_#75W?%#4IK#b2AV_5(8Ts#b?Ln@X~oPd*8qP zn5?+st2{J6-G2W76Q^s<{{X_Jp-$&|DyZ~`ib^17{HZv+;il6nQAi4#smQ@qUn;Fc zx0g|tNI@)OcgIwGR2$QkJaYB?75C~s9mifar3c%cx!bp?cA^{^$w*Zibj+njn=+88 zYK1;L8Tl!ITmFpXtVpu)7;?%aa9bOxMoyyBWeCfHq`Fk#5)|sSxMBU%ivS8jUutYp z>kY>40SAuQ01HYVYD+Wj-0kgt_yL7C3UD@!n^Rz*KQl8u`M?b=cl79Ug+RvLla?oTI{KOo^a8Ak$=wJ+adlQkm@d`fh>c7T-=dkcaHz8n|1U|MS9-`}A| ziAg|QK$MkjH@$#nSN{Nrz@v<^A^2>qEbXr)dN~Rl00PZl3l$z966lQvn-9FdVr^8(a=PcEA$l zwqfop&>jo7Wlh8`iU9DEDPn z3^b)B{v`otB$Mi&R`j+8__6;0F}wL+-cN>rn*(PSQSaTpcpVUimnYrWZNDM%7yWQ9 zDB|6${{Zcu02gA)K-q4@3!kriND&~HuvXC9Pb59|_Hlp^rJT6!w0eT~2G$LLElk&$ za^_LX`G+`XN|GpfCnV+C_I1uxxT-=?NXmIilQ&+>H4s))48@nFNJTJ`qCCjk5H6tb z_Cz@-tCOUDZ5}5)M&>UV9wRk}#TIOX9!hgpb6iTcS)fcrR8f=k%99Em6HGEh2x|dS z^7(ToNy{cAA!JTRm_L}4)rmO5rOlpwx4gM9L{9v@&DofD2IL*QTN)5`L+oeK)oO=~ z+`pP8WW;(Nky7fKgEt;5FEKLpdTg^WFYfTRIZ~4kYKoLe2jWTf0K2uuIm*YCd|ETCv@;G85y?nOL!KBm)bhcx zW74FyToo8(65S~-salI8DGFyM>F#085OO^WG*+R^!c?4{UpLH2RAEtRl95_wVMYp-9s~uz zK}<-9P?XYk_e1kJ$KkueA=0T?ir##${{YN=WX`#sy{g*BsIwArW#VUzV9!$@e$5$< z476hsETtNg0K=qE<<_EPXtHo%jij$~QomyftvJ3C-fewb>duJe{H%bKt|~mJU?pBs z(q16u!-RrPDnv0QQIvHj*SDdQrJ+Jf5{PLDhJ=um4wVM%0}kWsfzVVESXsrJ>F9o# z0O(7CQ_vZSF4zA6cEAq^NKs`F0UwAGz!T}+h5%EzC`5M`0r@T54j5uU{pxMj+L8h{ z2P;u8xWB*$?SMHA_Q7f;a@n=CTC>mkTpkFBx_M+SV+XH)O4m2Xma&<@{GhuNMb4yA*D!( z3m@WGqVgpKlGAnFmGJVM?a8*6=5w3G7lqA6@Znm4C7LRkJ5x0O05B}8AZt#V)MHd~ zZg7AHoel*?l~EG8w@$Ncv>-n5MX$-pPeUxY3Ymm_!Q(Y3zS2j2DJ5!e%SFTC+r+kc z(0tb`SWPo6=ZZ3-!h>APdDfK@u|mw$h+x8rN6bs6#;0bPNJy86Q!7=YPe|6O%V?0I z#Y$BICa}vb<2LE_zCBS~iZ^j;pWuBl_+0TxlsrgNX0rB(R{U6HD#ap`N{c55XKHekSJ!V=W0AE6 z)835x8i|qWmAF(Yy(hz^S3V+WB1Y*4X{WN<3ug)TGRMT_U3(wFwxN2>YqkRKJ#&FLgUwc6qx!t^1FcXTB+Y z(O=lTlSYe@s9(SB&5?XFF35Vua!vi6>SQaS(rjs z9<>wrRIEs_lNJo>=AlyRc8A2ap6{w_fByib_Wa0<zg(a|%9A;woerOu@-=TTQ)#vD685`XE3URBS)T+ zmW3@yk%a;TjXox%x;=k&ugNs``;9&#Uq6@Muea~~{BC`wx`RyApC4W#rf33w22s=6 z=3mh)l_67&RGOWnWj!g&k~BFAG-;~j#MN$PREf1mmGdUzDq&&}F*=_ZCnbtfTRlbk zS>E5VKT9jQAHgK%pi0W>4L*Nfb$2*t7{?{fWNhOhUdh=G48EV`Y{NOG)#;>8$}U!F zUZE`(D$Fmusz@l7LP~E4$~c;Fw|8Hul>E~8JT|V*q147+MB?T1e4dmVq`XM$ivvGt zmVePa$1zxxk4>D6m^JL2k(VG$nQXZ%ghbzeH)g~nhzF(VaM14Wl-b2-VzNoZ0c_dYn6Hl|c7~JIMyyvdyv-`Hs1-`x5^9S-DVS>m#3z6Zzg9$r zTPIAJ_|wxl!%b!)rg2q?T{+Hko@4@ItW*Q67>k$@H;&Y1*Q)NCs`{M@QIfd3M+tR9 zGu1xI{{R-0e;ocF^G28Fodwjnx)z%Fv+(Pqv@Jo%G|DXMs`;lZRVOL=S5ctET?R(C zn6g|-j$fQaSTN+XB+N-KyFh_FVWUi0mxhEGC{2`38boj*ox>Plk65upVLD}AL*7Lt>(XjmT%SZf3*b|cY=<~JynDPW*g z)$o$y;J2>~+~5oko~STpB1VT1J0)v!{{V81RF_05jJPo*CNAMBQ5z4dW6tq-sjRov zx;DitZycRPt-U|&)iNT(n2#wkl_F+YaUiWc1jmHEkwS;NSaui2ah9m5cScf20FuoN1bJ#JWyA>#5_Z@x`^iYR zI07KwwbgW}?n<_VxMl&nH}B2>lL#p(Qb-$A0-b3MxVak-{iW3YxB@qlQh-#Hq8sf% zNdXEW%950hTbuysX+C1N1uza$L-05Qg7^T?%Ap2U?xsoHtE6AEKEe;oU;@L4o}G(c z(-0LU1f;2NxFtmJ0UTflM2Z$w6-6VG%L5EuDg>p&bId{hlw zWW+)tgn+O%5=l^1$O;6p7X9%l(@&HJ1Vx5QMbsD&Ps7}RKQJG&;U=7$N|#_ZDMG;8 zZM^i76z1jqNyGt(g}f3GxB>xW?mb)*k@;L)_P`!V5aXp*=_HhdummZ}L-q{Z;%%i@ zx`h$w}MX00N8m7^-eA zx0hrCpIlOEQ;KW109$vs{VntDjA1Pj^EzEf zJf#&dU;yDDFdyb|(-hZRvPYzlN>+MH66e@44EJnU5}~LO>H%xn+xO!f*^*M*u>pdQ zqkuaSKBpLg>L6OhT!HL=z~fwSa(B8!)2&}*VoR2@UBA!Y9S(3#o7@k6J;&4h@tcl3 zn?kniISQ4qA%Q)&7XkTU#qmjEYmLzdl@UrHyETAG;@G646uhp$saOeO9EAdsL+$lo zd*XnSn5itpjljQV9*X(k2PEzQfIvRK?BE9_X&|M|oGFig%IQBZt^hcT(!_5etgAn; zxpMdbz_}&IqJv*|sXgt0JQRO00FpvSJbL!vU0D2V6>wUpWyOLY590ug` zfhp6ljw~EMA69?qi8Xnfa_uF@Vc3HnH(Z2Du3Y~Bm-`qJ+iu?>K{jK>!yX^F`QSiN z6+i*+bsnPLj96O&Q)$}dcb#Tu_uOZChvWw%P7lJ-F6I_&>4v&SaHXvHy8-zoMox*yB1cbXK5UtmL%%c z2#G`p`NJtt0!n~cUSg?#4oo;hyg|Qz{ir^eS-w2ZbJIy|IZ@cE83|DZNh$;s*pYA_ z(*s#bF;^!@5`bOD#C-*T?85^ug1#P$+U%uPC#7fv#&&_%Cv!Gl)vDB7qg9%Z zPs_=s!j?+rTqWVfm`v)9IH|qvnv&ix(wuf{pX_U+BH9hSf4|!}S*cziC|Wm@tGaFB zzfWpy<0^=+$4{)AP~CO-E#}mbvuwex|cU@uA}iy_}}C z=Qis#3n!H8bvwjGdp1jd2bHB&Gw!TpN{@!UUDvHC$&(a>RjM%M^2Cgl8mB8sf}y7~ z34t|4flQ9LVKC<79V#iOSLt1Q{xAF5Se&_&HV4CR+IgL{(HdozGj?0it#8X(8Zw0= zL^9@N6`5@ir1+Dc&lOyYo%~|z)}3jrN^MVFb+QhUW=Z+g<_zOinW#w4NJFV0%EpT< zA;vjk^F}SH(%o-v>g4IYHN7s~EwVJuGEFxwcKpA8;OYjFc+k!M5i+ib>Ys-U>6mpZ z!yKhMCuAJGUDs^;mV7=+_?7XEsk*P8^z&G}S?l(WY3*NBJWTkz(OM==lM0odtISAF zQ&UHjQj-!CB+R1fDlyTL>!gx(E8FIhxTUjnozuSSCpqhHeY#)oZ{MNyFW~RR-kx~D z)1_wYi~XdTkC*9LLSDI>DtdLCbi+?|Qnyyi$e+wP)5E~BRA$rOQE*moUjSE2IP=P|EOT*BWYjC(XcBYa~^H zDvDvpq0D*kF-l;ZBPFE^>ky-?FCc3jNRs=D2#`QO8) ztI13z6)VIZiHfX+9y0edyv1H;FD?|^v?$XB;z>;=G>kYy@gS%Y4ta2RY`#^q_S^fD zk2i?LH#GG@t}k@|0JAl7QS^dZs~S@_XAG@L)xxTPO&`RMgu13))6IXDsij+!8!>6b zm+;Lw)jHg?LKQI{47OdXMHWoLlw9#oz-ENLCJ9>O%5~%Mc=9UE2(7nr<$jwT1Mu1Q zhkd4g2^Dc=$ecTBTHvCmZ)a&qALs)H?= zX~8MnsiYu-ipk9{hvRY5?{Am%=#4SsjPECa%B2<2G}7zex!z9(-)+}{KNYj^X)_s? zrQt_iW}^8ungvM`8D?IiSA?+!W?rq6s_|2hbASGzA27;9lAaEF0M7)Xu%ywXp+){`wO6(%GpoXMy0 zl)TSDO5u&li7WTW2^SW|(D74)_<7@|xo!UVvic(^r-|xM_xcxYHgc1gWWR~!x}1e} zoGlV+moS;1yR4hToq{&ZNJmc!haC{s2xiA*X9=xPX`-@>qw^{}xC$hdr9*21_F{Md zdYo8-I?7vMKMMfk;pOkkJ|q!MpPttAei{971W7j*lc(H7r57Mw@86G8!+_WXsZhlS zy@L_}Yx*!}cNh`@aDs>c1f`4FiT2yWU_(jl_#s4>Sqn{%1S@Ds1Lhsb0)PR@S64o+ z+;+o~xp7I)$h@?K`@ZKTJtL=ZO~;^ivkVBy8Ab~od2gRyz`pIs1d-V;0SAr8)Qk+J z2}kBsFu)1;kW`SwZ5?}$PdsfP;sj$UZ53>CCBQc&!w@*z>`!$JNiH(R(~{c$@=_tW zAdsgcZJD0M`EmU*1!V3`rAx6g47!7zgr1cE!rbxQ%VJHTk}8vmwb%6~Ls1G>Km}h7 zizN3=he}Iwa5hrMDW@4E?~eZDo7*)lS9ZW76t%(QD{{Z|#UMk~h zr-v+^;U_B2MS-1sR>qjjI*0dpfev<=;mc0y^3kf2QBsv|5OqgB%ga*=2}+_!Q>KbH zB$k+C_>cZ8uc^zPZ~A>UXUcp$rI098xfzV*UaHPkYVydMmz2waDv+kiovVp4IW!>{ z^9huKzND0ZxS>f2WV!4P7~-@^r7y&_wF@Ug$~8G?5)~s=rPOI~D%9Dyu;Id(Or**I zhMCAP&c}#_rEu2B-i2Ktf-p0lHxK^+Pjl)20PGXd%8t>cfsTt?z$Q+%I2U4zmI|1!(8v;XlM6pKD0dUU#TDh*Wi)! zYyjZC+kk#U^54C%0RtYFxMqKZKQHOV04iataVki#1cZ<-;=m4mR>XkiAgmTqJOlYb z_xa!re(_`B#Xc&u13GBDwEZTDo9Z)}Z#n5!Wv$4rsYc5>!H_Eua}J)=EA-?;imCjq zQmMgRDzgD8TB6cwGa(~*OGUUzWn9N{lZuoaUsQ6pNi@Gnd`xIa%{p~TiK05alXEU> z$`u*iKC05->KBK-e#muLxo1_h)j66%pIC=f%j>AqBGV_3C8I;G<(bHHP@$-;2s>oe zma?Yh2}fu7ucO$mEh;KBlN|hR? zORdwRE?!|1P@bP#pw}t!VXg#b`?Tb`_riz=R5MskSmdP^=`(1&c`h8pjWr|k2Xij!2h_B&LYxNqeIV}GGr86{zsDxH2la&Z7 z3QFTi!%|#zDdU%&Q_A{vvy(4|YFo+ay|(;|v&C=PpQZi{m#KOo;kKDjlJO6d>U7F} zX~`J_P|mphpOdrMniRE5IK`dFnwLz8nGsr`P-8(qz$E_SsY=ZBC}uQhP$yxkHAU@` zN%}R%qJ0XibIJU@(pxY295&R*-ZH#c$IsdGI6$dn{Ws0CbXknSrf_7&oarR0Xk{~5 za+8sC;$}8frc|YARVi=c)j4=jl4~`nimJ~-jWAG0G_trh)S8Om=!OZ!X;J?GCFS8O zGWf~xui~ppW99t$o%GlKZ-4Z*vg*wPF{3+2)SV&Ab8++aazZU`v;12x%unR{MqiB% z0$?mn$xOyn#5JZe8yaEpE>iPJN*=q{vm#jQY?0__#cw#&bJce~>QuzM%8Kt>v zLp(Nkd(t}f7br+Y)7>4@+CtT+`W30!20Yz%eupQSa}7pfzm#H3)o0@7Y{{7B=H@2n z7A6%GD3K3nhK}X>962(|Q`EL=V=U6=r=UTFFO+N9nl!Y+7cEblpyGbTXPS#KH{!%HeuIGIOM za^85-tr78Oma~Npi#Y|{a z`0saZFUM{C zu+aN@8)KiuijwMOIhZaKm7oE1kO=&?$fB0lGg7+#C9pewYA}f*A-%b%XeamplLuU;)4$Qc9qU2Zl*S z!xGJZMr;5uke~htJRmtyw z7_|t|g4GnIf`Ci12IINHcy|GhVSo%*=Zi#P1OzYuBoaD`wv*JR`QQXn;j#fe2x}z_ zH*RF^AD-phHiSw4fyo zv=(F2{HWS^_Qv@1IBUsIdfaqB|Izxa{K_BRCH=dMd+USG2oxEB4{%TE>%(G5Bqd*l zjs@A&xx;lo7SZe^76XGy53w>;USjfULa&&}pIOVxG>PcgdI~!(_ zPvNAJ*^B=F0N=hjTW@#C&OIlw=a;tz?e)PnxB)RbrQL(rs6Bub@Ge|h`~lgp0TB>} z1@?mdBj?Ykzz0gwNe&5XsCNRv&98t7fC!bdxjcjMC=vk{1A}Y;aK4}(&OmU)+3q_4 z_yC-eHk&D~0|GAp04xBk7y)2CEyv5Y08rik0N?3=9u>d?f$RJFU*aMaxF*WX$n!HeGuY}CCnWPn%a)h*ww(3S+g*OD$ z7MhIo3O-JSH7b=EgD01yVoXlVDJ&pIotHw!;u=x6hyJh8ofD!}Q#%b2y2qI6AtWd$ zsmKahA;=z>gH=2#I$X7H)ViUqC5tEk&POA6w-^1fC2>ki&o=Zux9)Kd?S0lLRSGP= zgDWRM&Ki47l%Y-M=}kq`3dDwm<{fF&X-b@ihUs2r@lPK#(PVTxHD`>!H&ISeuTiM^ zh-Li!{2^6{vQT2dgC1O?7;$oPwaR;TYu3Fz4JVEpDy{l2!1?;CX{6q+_<+eC4Knt# zP;~1&D>7Fzr;8sMb6N3z8$4lnYlW9`RTCq4v4!G?D$ptVZ;|z`ji9EZfdXJU7R!hm{JwmEh z6B;z-Y9?Ya;ZvbX!a~fctPpaOZf!MpPTwzX{kRGm<>qZkZ>OR*JHZZs=?+A#%4Ur3 z;hqnO48|)}%H+0Y*GV{)>K0ZxmZd3Js8jOJK~z|I8b%zYVon@nOvjduIJKZHL@Dvf zia!?PHt8_|(P;~<@PZwmCE z5Lp*9%Vgy1es9gMo1jUi9F#QHAk<|7q+&*x6BMH4@--%qMvp?xuN)c$BK*Y`07 zgVzs${{R&lf0{A|N{ge^twTbQ;r?e+@}7-&-SM+S(u|Qn(Z3JWUk14=BWT98NWjZk zgHz^n1#+sn*?7}4b5tclnTaZ6$wV04YM1ib-E5^hilxSg$CuZ1{{RGKuBWY6H`n** zeXe9o^GejrkCU|`kC$_VNR;V;Q^^@yx;MOwMXQ%Ah zGbc2W8X012piX^SyJ+i#)YYzkBJW1flej2?MbpAdJD1>qImDM0g7+{^&|d3N-Ro}d zFaVSg<7gwBdVHGfJ#hdE&*;_Y#+E|E01%>}<+(k+SZrsJLr$qZFTY=6 zgE>iu8W~Jz8_=M6>IEb+kjIXFFzRCGiRIMk$4}DDcGRB^dVQ!;vr^S+45UxI!if$d zga}Gfl&1>Zl_f!N$g$kuj@S^fOC;_~OlzUW9en#3bl$l)QLkhK&*YlqQ5GyY%%K?+ zg&2`H6TYA2MWjbmL1nASO4Kd87IKx`c3y>Nf@)1gTCYQt8ngC%c+kkS$(*l2%y6{> zE+$TLokf$)3ZJJ{vX9`Qs>bMY8^s_Ql!lo&{C46Ln?-EEcvAe z49#TO^18K0I>V0)?l4fxX}1?wTwQHOy6O&wYHn_(idT$34olZ*niV=iPG?@U_sWV#0E^Zpn0gimC@5P3FATdFjarctd=%2w(M zmx4C=`Ff!_E~arR%rRBsWsWh2i&2&}_Pcj?&j$Yh10G2^cy{AHYh`J4Yl`+ef#HMx zAioOw*_tKtFN<8En!F?Uhmnm6mr|`&6(1p15mw$HsS_EQQZiJEtR=+?*)5o4ASy5a z0C7&|NW%o>ES?W9o0OLxiu$YinaeIrZ7&gy@ps#fuhY_w{pDRnoXoU2Ji(JH8GFPI zP@R_(aH{zRZk0sTxDp~5h`FfQGCb+a*~q~|?o}RY6i9@0!z6%qS@Ys*J|Y``^uIR0 zwU_=zMXLms>xTIBPyYb=qV3Chrzz*9&Opj_xoU+Vc!Sq=d$3!z?$?{1z=u%OXC8lYqBC`@&B3wFM*tp;eI3zeW;9DAyM_eT& zjkgE)CiE@?!OxL=$u_pFxNz~GRGE6KeP{{$pN<$=zm3oDLdf19N=Z55*cyE6~YCuQ; zn}9$f$^+5IYvD!Xf-y~9-=`kK`bC`+?-{=jZY`0&3)DC8WhxaWLd5BdJwttXOoqIue(27OPQItv(t-NpfNU z8w=i+@6Z?{Ie4A$x2GZ}{KN4@;m;-rK~W;2v8@_@W5Yrp%qB{mU8qj)N>gNrMMu*Y zP{`HkYu#7pMsF@P%#q3e02RM)XM}AeqfgO%Fs>(y%~qL*5?+lnOO~!>PY?77)utpk zHB8~CRY^K+b2drH%xzRkW?qzBX`Qx9-67H`i0`h zRP)}w>o#?s&w2YhRHtYeimwt1DU#F}6bNyslDR`G<@sax9H*9Yw6s+wn@yMKfdxrg zl@csSkypH8qO`6IB{w;0dm1gAbAGMmIg>)G(lZq72}o;@rPs3UGG?_)t;k&vX5p$> zMVXVEn1Vo$FBP^%Dq=$%b3crh`iuN)cHt8tF9 zbWca5I-zO)oaKr{^kkqQ%vTprgHy~iYgh>}7cpF)m^+&3101dDcS#)P_T_nX4>mUB zgbvl!B&WN63c_$makXXklxIZH9IY7HWRNuG>EI2HQ!QZy-Aefp~9pT%= zhGg))s>f8SmATyILe6k#d2_^mMxW9Q@1@$mo8U@J{pwd#GmRE<1U);b_=V9dyBTvc zwFwA_oz9d&8c-*CWRk1mlq3HD5T3CjCvl~QT;d^GmzVUrxSDZ<-tbbSKr7Dj=u zT315N8a1eM5GEz$zvebksN{++M$goJW6SkABubo)S49g^WM{I~Wf`(wWijZHR=Fph zikJ~1qFyvuVl#L~n%0-Zi{7~Z0IDHpQqxs!(_M~gFD_)2%2MaE6Be8&oUk>w5!Cd9IqN3 z4ql&GgCSFaU&|*r)%=MXT~?~9eNhpi%*2TvqY6rO3C&?xyzR94(=I)t`uf>8=P7xb zrO^3~6(r2Vll$^jCpjHHbcA_z#fF&E64#CQIiiVp!e&-7O~6WkWiUw(M=v&|v%ZGv zR|#r+*2eB=cZuykm9Nm@c$U(9nW=MB8g#W6Cu=1}fiW|j@|+nJ#a#jpe3qol)1zu8 zTFcWh%v2S`hf+ckAqkHwq-_W+%YB@Cb@gRqDos+i*Rl0g;rBpvD_C*`Cs*>$s#APH z*D7?$dIeiqGi*98YOUoeOm%s)8CNIi?CiYeUeY=|#8vregC#Czm+{4%j}xeF@Z)gM z()XdRec7rXY1W$Me+&K=^=DBsO+r^KPiM*kbZt3)hbJooE$4j2sIj0?=-H%E(G3*r zlby0P1|30P#VIJ3ovF*lRJ8Y+fQX5~Vo=2`t9`wR*Ebz4x;|YrwhX+UYsys!*;aQt z)96`}iJ50IJvOWTpQz@_Zd0C@uFd6HO7IH)&#t*IOkA*@0GUrW%@4Nu!U}TI${%^U zU8@;uSn>u<)(s)AQt5PENXqnl=@TpIUyQY7%HBh+X3BgTy=x)njHRj)l_+%V&6Fw= z6I6)uD)Nj|1Vw_6A}lbzxy|B#%uhvgwf@<{;VpVn^F8RUW*Iv4Sy`F9;g+*iQcX)= z-l{qKLNbnYpa{_y3;49EbuUNiFzYEXilD9pQRS&Hg4UACXt$)e*%tV4yVd-z{=JKP zEapgbxHFJ4RaT)9C@F;=hogQVlSYx9ObLpA++`(nV_zx1#A}lkfkma$%oIgviJplK zDJ1zRg#@Fe`Mt{}HILz~vfbBO3tpa88Zn8TsnzP3l7$H>kFGulvh2*hV3Maxd6Ze$ zInPZa&CX7$sEm&T&5Wp^OibpD;Y#xr78+7eS0_l*4mm|!t$K7ZlsH;-M5w`yPL%Ms zSf8cCGLrGK#-!`UfLE(>(vV=8X{bjq%|XjDQb!-b>D@$rEz^p5|=2oX4lKwdj!MC*joMQu5SjDU_(D zVlpRbQxbtoQqZULCzJig2<24fojU8a+x0WW2aULH;mUuZ-+e92vlXgMUV~Kf{{W2S z$@xlh${a+Q%hg#mPUWen@Xt_>4ipKARjKx??&)T@$2qZg)aCc3N(mPuac3n(_PFIh zFn-N|HOEmh{3(=8$poz;sSM4^MC2l~BsZl4@}Nz@vk`Lbk2^di@pbN%{pPTjmQcOg z*&5WCsY-$wh}?n;@ADI7CiirxF@8H@rY$t-@=Qcs(DswHLd$Ye5?k^r#Gp5Oz5tYg z4m2WGPVke|R1lN~=}yi{K=coQ83`zhbwvDBq=W$JNl@wQ*b0<3{eMgV!wE<%RDr$S zh*3~S@^4^4J^OQj9I~ijAuk0am2W3#Qdj_h*CZR0-vCAn2n!C7I4ZhaFOVOx1G_c= z8wEKD0e#d+N|KP0=j28J^a!y6JjI|Xf%3-YEH>@w0H}ZuesBWBWt$Zi0HvG~PbfQV zlpfzK03@idf1umAHz^iAgOP9F06rK4kdjJ@_V5pV?aQfFdz=91r9dNLC#jdW;X{T6 zXONJ69p3;+f{o6U7fB=I7f=H2#@2ftFa&^vCIa^)DPSeX0_y1@nMT-gy5tb!uV&-0 zgrxK#okiF=K(Ic(*q13i+ja=XBe99ll|M>=2~wE45C>6E0`F^E6Dew~l4*VZ;3O!d zgt8e8bi`&PjuMgB4_^4F8~}1bESodg&B-0?Er1otNm?Ii4DVu-*|~KN_|@TS8=SU( z+zbhZz@Q~1j|oUqxaWs<#JrKo<()-WJ$3|yl{zCSM5lU2;v5UG01mEkIdVnEL@Q3u zV1NJ8`l>CxVDRc8&v*6hk9}}?2+Bzcl5A(df*92B)h4> z_+2|oe!zo(AAl7bm^cmxR^C0?_zj3^)c}D`eFcC9!`{QbAtxBp-J}QGw-`3mH8tj- zDD-v?JzCsxd>5V_t#kyWsGAg|ECiH=IkEotE`MBeWNp1K?Cd~bLmmfmJqf+rzB2+O zk{s=0bhGj9_yJBjaQv^_lzGSmJ&QlnjBE)|m=FSNP~}}tR67UhY-5!z7uL?4&RQui zCfkKl!ffMmtdL!=>f8)d6m8r2Okm{?<|XCeb}1>jyJl^-$>I9@Vt{{0XBYM+!_fQS z0t5OmZWq z0zoQw;GRwJ1B60J8&6NfTrl40<+3q{N(-q(dHL-f7IU zNA8(dC{ti3@n&c99daZn0SN05e8rD|v(u&Gq?l<^c4mUA8=0&5B0V;G1cVJOPju?Of#Edg&2!=-d#6H{{UPBV>$U^ zeBo;WfnD+ItvaV6l_P2mZz5}KT`bLu$$6JqX_J$AW*(YC%rt)qx!YQ^#Jy9))V)tq z=IGLODt3xdvgCw3u~m&Fng)1-Se!BuZv^E%ExN0u+y4OkDwFNKv!ZR{@>R#X_5JK} zewj(uK&@-fd9sP(Pcu;Ea`v8SWaOWWjI-fC#f2iLDN?RTP2~)io%~s9E^W$sS>Rt( z^3`e$Hd8j`6C;@GRHaBuPenxLVkw6UNx8vBI%N5NY;DW6r52+GzvTDqWfd0gZ)DQ? zo3Y{l070hpJH&lgCh8Vh*SxnW;onE{E?vobKjJgRmP+x5n)E71G1ls}82WKPQ^<7G z<^2+`(W&vE!OOI$la(yXnX(MsKC4%bnU5}72Re3wc>DPW$GiM!Howll< z@4xpt6;;ok5Om{Qa_@zD?t7$Ab+)%lOzf^-pQgo@%5wD>s1q_-DOso$NK0qwx^h)9 z{61k2f}w^)RYeMhIb-8IGsxhYON9C}zb}LF3k%5O%wFAA-AgOQ9Hk#3$z%!Xs*HwM zhasr)HCY&yJj(+r`4HqX=4Fi+G)PSxuc-AU%w_12Ak0fl$>fbeiz70qQISBHT2VD8 z*(Fw=CzXy8b5yu$%b&uQwdqzwrA+C4Lo;c`B5J2t)ZD>2rg^>=kLldDV$YwO)Y_Uwj?O=mv{;TFw3;GiIAe&St8#eOcFE5?aMEleG^j zNvm7+Xyl|ske#ZfGIZq#P!xceh7@lmw4?E1zR_+^)wK5aXy?lZ88=>5{{Vl#>~$CH zhVf6NntK;Dcw*FC<>8CNt!p}(Zl`IEfK;`&R_i+Bm2({Q)GUbyPjxD@t~JcZr!zUC zV@`6#2B#ihC}v2K%dXWTOaA~5mx!R1T3;4^X+^JjYUk3tyY&2a-uR^mT5TUffpO)c z#Dy^iDq^8(g%T8WC@CvK_7p7^R5e2>Vhb~3k8PhPLz0Yjzm$+7?kZAJ%tq^624;4! zC%y%i>iP%}uS48|0WaJ!4j&K&P;lTZsC-YwxDVUwfE%}S^f3wR9+tcMbAab(z$G9S zx|#im`4_u;_Q1wiV<&tOB1$0jC|Q{F@DFg@tLK9$mCxbayt2N95^9$$t;#7;4pQWE za(LRn+v$ig__A?OT;DgjVOO#}F0l;4jVA^=OYSR#g$C?guy(|n%N+g^Rp(9Lx4Eo& z>%(4Ft-*|xQ)SARy#D~wU|-^U1oZmi0Np?$zYc3TMdC;7(a73>VpJwF=oN_tE@qWq zqpo6^m?=@ycu{FJ`f}x}k};sDZb?i_D;dueXI&}uNYWW4312VrIa%T(!*;tvp$w(0 z880n(#MA0*69$f*RYEfV0Eir)BodfjUPafs3<-Ml+M&TfLM7_ra$K+lJe+am@U1;i z@~G~bqqi52YAzX6Txyl{H5){;UcC5Q%_)iCJH-}h)2hNI(J?XM55=TOOt})J84Gnt zQQV~IrC$<%_&2xeY??Thr{Nqk+qrbt8M=Pea_nG zzx+YDLaUi5T0i!uczDbjBdL_53I!KbBFJVMH2pp-Hz=y*-9n>@eCI%y5#o8iVj@*3 zYG4+%BsL{44Vr3L<)_3qwQQ61>Fs<6{_hNY(No5_?w9J_+oR~4M)mTGs`+M>oAeV{ zGH;4Jg;0c(Cr8W~k1gfRU4sbuND!#ngHG9zGxW$RJ0MjdQ)ku_)fxG_$)CeN=2W2i z@3LQqZr;VCELmKX8`hr=mj3{!<6X?@mo+0IW~%S@It2AgDe59+(J?Wlnukn{lJyl3 zlnT=pMu${Tm(0?p7~Cc((-jy646VWO)sHqjn?Ru7#q9m`(1{#n` zR)u^>Be6=lkX$oZ<6;Pkfpf@60Q#GA@5TTdBoVlk1|V5Lr_kT9d;p3-Br;S00o0_M zoAp>*03k?r4|f|?Vn6Qux5NNo4aBvH`j1|HZ~`a*&A>gtW0rI~;LU4sT5z_qXfs3WpN`n$FMzv%b?W)vkpPQkibOT#$)T$y!U6 zq}QBvuTZ7oD5K8GdUs8Xii#;~h#6H%oJw^n8bMdy2uT>UV<|OC*M5uq`hE0glOlru z0Fm=G;$QwC?-kmI7JirEwQj!!mjuhLI=gWa)>s*DXt4-UmRM>qb16^GUSG6 z%Q=o(N~KGO3YwVW6iw1|ai=MBkme$JaHgc9Ozw>)5gTkJ!BUmwk_(H0btNThg99AY zz{t9V3UOe-%KE7u421k;GGS4*8crC6Nt<5YiFth2Plxw)l>xeD5(=H}^J=Q{mh$Mk z^WO$Zm@$zKAxVn`Xd7ZfL`6f0RHhpOM@cCm$?f{$$+f{!*{Z;ujZT<{D-b}PFd`W^ z(Kjj_8OR-SlL{#tfq^m-qsJD+1N1KNU9EHv6J8lKKVEX&bjFm=c?ypynI%TUF_$$T zC`v%ex`~ylNDudVr5`j?qN*e^U&)z*yNHP=mn>>c^cC3O3OWL0U=o|DC00$hIdDao zTN$0$qbR{fT$RLzU<1AGrciLi6u$&_7i>wOO@O6aNG8VL%s(jyrLXnxfC!fjy5RCd zTZ;}K5C?95gsHnbg596r02&$EK__*IAPvMdyY!p;;0J>01Z~`0scI*v1eQ+H7<+r* z2ZO%KNxj_`1o7~mki)(t4@0OM1r(l_01I(+@_%dq)g)X1;3>-N6}a4_Ty6kxFauOl zLE3^qV0XC#`>k*-^}rr5(m)_`K`BD68vGlTH*5f4fU~(I0l+Cs5`VpPhxfn};6qvn zQCC+N+Qc7LwgBfZ+TER~nMc7ze=1h08h0q2Zqyu$rO2mht!llNGEQixqNbeVm~zC< zY|Aq9Rm`hgoTX*sGfkYANQjxaM5l5=FVCI2ie1P)c%Z|~6!HZIqnK*uD*TB=QoKgV z_=3~=tk|1_Hkz$ElblsfswON7yeJgtYnoV&NGSmz7>JlgZY~*8(w8rCP4)0CtToRL z8LE$<`jJZ19Iv1nha4kHGft&t+6G*rX%4(*Jk>i6Z$)W!JiAbw%Tl^4sP!t8x^iOT z%pxs2G#T1?L^)}>UoX4DPvXI0erc_u`pP|@?(1$29I^Owc_nKXb z-tgz6m9G>Y0W0%xCS~jK;`qDCUTl2%N0-w)$(ADJN_Md1eI?A0su^xZXDj9zm{Ym7 zrA$P;^t5p&I=Oi86FQ^G;+uljmyx=<qR`%X>|xX zrz=O4&H1l3(aHqZoi1hRuqqpswsr{v8b`yXmZsCMLo<*5H$KWuaqz1lQPmAEMq$^_ z4U!w@DjCL|ND0*4DwRr}EViv=>R?*t=n^iJ!_3skYLJMMKJ^AsL1g2W6Tr1f);@33 zyP{HZdRNS9Plm4;+TY;&KU1^Ti01@BlThDU%5meOCRfbzQ)oz;l&MJhtCWbC@D?4? zP_K!>WsPxonsIVVO>$aM+SciF==&S@_L2RjSyRW3k@#TKjXuj$Sw?p*R5OO4YqnZI zjr=y7sPGJ}2P;TYl^tt{X(pQ%YM?i&AVT9HA!Q+jd_?0Wo+ojw{m6pXEiZ!*eVn=* zMAn^B)X7ZEAeo8=Rnf}qjFoz!2rnjO?MBpUl%7k|8LaIzp%N5@9<5bGp{`ub z#)g=N5mY#WkjFX3QjOZ<_52NV#}-9@Ep;}#!S=F6`!ak>RWz4T=CnIb{4wg*aLajb z#6?>;WyEKU$&x2By#q0(S5R_xR<6#^MXOTswB1@-1m#$4s8(n~KG-RX0Vq9cSz6JO zD^Gjuj%meC_ov^f^rtlkP2)+?^A=aHX&Hf-DAY{PmGe~&4z*~6{ckE)X)+m)Ddya{ zQl=(jBt(Hxq1L6NLX2S$v`rz%1=X6YO~?NLT6?zJY4$m99R7Ew(Q)tYMxLf-I{YYz zT{kl3>17ovT5_dL(%%*obWJUn0tHJmP|XiN<(fPQzEoa_UVITJwIGq?Cs}Jz@+)F3 zxOujP{M~Q2v5jeSl-exNho{TQw3@6nNyd_s(+?7wmEpR$Q|40FOsCCIb;<<&3TAqp zS*K+vA{4Yph*rp>@c7x?`;EUBwVu3C?hW0+wfYE?!tDo9a_5>ysHGjeP1J0B(^ zo?f5RtCV>h*GteU%ITGQT+A5^;gmHG!oGB$qSLDxb{r~y@$9aMIT{3c%640pi2y1o zSQBbs981KylqDP8$I;jQuR@a4lF*e|x;_wmIn^}JHtNo`<~+BUvTkYCT(zRQe<6{x z26;M>KSIm?AF{nmAVr`4(yS_OG>(0#K!rU_mYODJPErz(gu|AJD-AsuUzS+aRp01Y zn~~weGJkEg1H|rPrpJXjlyZ)K%6b<@s=$bq%T+V3m{4b`8q+HRA_0RojF+CXbUF-J z@YJYZf2U1C1ga9kX*W{%YN>VW`{Wx<9SDepUgv<|IW}Rz4~l~qX39#ZB&H!E7!lzS zF(#pPqGnx2BqeUU6&{1wg<~wyQpF_u7Eeo3>Ww$e5{6Q=iO5Lu=K|hz?};) zr{z4(5+KJ(J5AW*f+~`aG>c?hPpr41-&dHjrJ^W^5(GYm2pd2u+)EPPuZc4m=ZIlo zo$-1S5EP;U8tMvDhrer+fF{eugouHAmQ=@R3LCgQ4?_3A2^KOGt8O3w2`#lhnSm#Q zIRk@$9+`rqq>*(JfE>h15|-M^Q;o`E{eZv&D)Tzjq^T-532H+3@y_(L_o4#k@QJr_{`5TZ(%o1Q;x0PiXxOh}3aA`n*hEJ!x| zFwU{^cfbPOy)J;2B_se`1uM4DNF67=>~I1El0RbQfWHjaztaFqL_-7=jjIYNx|4E8 zxwr)O;{X@T8-muKFLFp&3_)1nu)0{DJun1yf_8|6BnR7Xi26D~DldQ{OTmm|Ebb8y zPVfziU96WDN<+7N0QJKV;;Cv|rJer(AUxRmjB6P@OU)GZZ@*v_5t5LQ5EjKtB#(=6 zZvOxnVcU#k-Ma#*MEnS{hb4hepb2X+{joOM<V^^B1qF90F2rsZv*TPTJe%*c2>;Xir#rVVZ~*U6w*)^v&yRg@dEpR6hkxmR*7%YG zAfz6k2xHG;)<3QQDqW$uD%_*B0NiZ^Kd1nomH?B075V-D0M`I0f8W#(-?l3$Mn5nL z1<33;?B3q^l+=~<1BXAq`F{AONhrat8(RUyl3nh5{{X%QIpUO)UvHFL|{$830B#ojr^TSJhN zqQleu+rA~2#TMnO?2_TW(nm@O1s%@b81lg5EWan!8fA>+w8bqVs3k-N2Q74tSa7Rf zr_;VN)RsEE?9VJ?2>dnkU5^|9&29;H`krx_l%ps;GURaNU9c)Iu{@IY;Qs(qfE#X6p9ff#3Q4fANR|l30S}hoKK~*cbko0RCVgF#)WgtGagn=Kvy9H!@OvR$M5N z&Ao@9z5tL5F&vAG08QbUCdn>RrX-Wd1bhH~x4;AuE)qhoWjnYXfCBdYZ~?({ViDJu1D=K8=5yUjRMFuRg9nWAA_*2@c)Ea1ZGGUHP~RNyk^&H}^rZq`p?6Q>n;?KLQ*TMo>awg~urZBGU|jHieQ6m<&W9ps8rZBtl)p6sFC__0$U#+W8bD$*9TsS0JC-e;G_=zx~q zQ}X_5&y;!|e3kpXD=_$A@Zpkl zV?AlsspX8z;s$nQIp<9TOzwm~tsh+yEq3qMV}zRQKZCe&-c!zIU{jryFC& z=A5NIFhr52r@^Q6SJZE(i+kLVGuFT5 zO6P{W_2D;54sNAt#&(xZSJhA9T0`ObrCHLdO@C5yRD>A{u4kgEXDvgRnwXlETsVm- zO|eHTWpJh8-xqgXcD9J~(P$q=9Tr`|(=S{_J7qzFo zet&rw;qh(ByEWQ&0_rd#QR|TxR)-}Y&5sIVEJ=^MO`VZZJq9-sM}%u0B<&xaiKx z!if<*N{E07Ay3$UE4w>lrtprH*MGy%s3&k218ELAz<2n2*&yE6#FrJoa+DB}WgYvj zdk1u=901U(n{G;!#5o(1J`kVG>F3h`47Hi~yZZZkVgT0c1C#1lex}0#N%A6);kJgq zJYVJ9j0mXqUvUm3oHa1o8vFxqOFyn8l9@A1hY%gX3_~)VCf$R#ErCZBPLjGT%C=RK zorI(+0to9r2nA2rrJ0Eg_=+%(hw`m$sT%X1^fH5(U`IsFDhl@nf};ctpoUUd5(onR z_*Zc_Qc!y@v)*3kFZ@LPoS6esY15K5oT*Ey%dHVr4O9YJ;OdcVtY7^*^`tH{M0COvo z7mM)8I#b79iPsCBe!L$*9vQr3X{NsAnHX^Z@*9Q zz3kk|SBM;g{C1a;wMv(nd^&1PWF-`gsjW$-(sJ%=o7o4=fu{PyN}Zn4O+$uaM@nHL zR;dD|7$_gPAeI{A%?ys0&HL&7t!>FJEi2lL<2z27lZ?4(sd$hgpaQsYQlu;;VbVfW z${}F5BE(!{TPjn`J+70uT-ikMc}?!e_QZlJl0}j%rubNc&m52lzzNc)VYKZm1;JID z)ZXOa4;CRH@Bwh>clPhkV}Jyp3v~K9a0vJJ2M`7jI~5Ms;k^e0;16x&^z9rHc?0F^ zfDj9U2)l59%(=i12?Q1_!tPnymj|D00N|2JQjo36ASDP2SyG8)r6Gw?Q7i`};0_A? zs{a6Nw5NpX-D|@Sgvi-%I(V>>m-00uQEJkXnU_txFRE@`5unp1sc}l_dHYlrbV zNQ$LXGWc2|)I>DntWal~fc=dCDp;K4 zYp+6=2l$+v%t}UNiwXs9mo*-fUs?-66>3R|FIbBVmLcLxt|Ea9n2ISKvA0C}*8b(I zk5zwpY*n-7Mwh8e(~u{`S)IOA3WZ*sAykZlrt{!ap~Hy`Lx@L8ViKh|?_pOs$7yn3 zCOsSdlc-;2C)!t4@Cm4uDGbRgm~+R3EmW;Y&1)`0k(W&FbJGmch!E*=I^Cyq_;CUz z>vYw@jD$sov<_}Ie=<99U&B|q zego2%*|@h+u?ZX!%y}OyNuW*0NcSMA{{SkFb~Z>Su)rSkP%e9XT$HEK7PZD84+U2s zZ9kN%;Dg<{A6x+VWsBW|jt!45^1u>MQlYqzlJ3MRA?RE#Ck*!+W7%sUR~DE%Q%yzy^m1!&wAw0f4)1FVqG8Uibp91|IF8B=)u4A;9?% z2kU_c8ot%s&z&bV8^gAkq4&Mj2(Q+O4|p`g?9s3QXtg>OSk#OP#%j)4azxW<&}E_0r)Lbh=HSdlpHw7mPSusZC&h&%r9P_K zukZEPa$>rlhOK4PnJnd7)LlT$-Wwdx-kWA@$2SgYy%IGNLMHk|35e>Jhem>g%0dd4j4|VQjQKnxSkz+H z>0dvA>3Dp2^Q7(De}{6!l<}?L`dM*hA!;pVBxx9{t4XF(grO-K3}ozGKA%%evJo02 z6gKigR`%{&C*$Ul(-_@v$4xa6A(n)T%$EH zEh{51mBEcGUzTKviFJZPh)T>dVv5x`T3wwpd-NwecsTIc zOVr$(q#6n1gC$98B{oAVYQ|ig)QttzsF|XLPL`<1LCfk!V@zqudPKMJSkX)<5n(NJ z1reM@hJ_DDAA<3)gOp>D;=TR)di}<0KZln3T$?b)z6;3arG`oj#nI840QRjF(bWdFhyPFvKr9WlD<>sY+huDQYqBv-L+~%5`3op%Mnu-lY0J7>lBhCyM-Lf8fHoONCa* z^t|V*nYJW%UQdOT<@94w;L;`04f8%-l99>qr?Z6)T46#I;g^b)$wOQ;#7sm+Of@Bk zEL|sSy_RzDc%ykEsb9DFFC_i2{tG9hXjFXjE3NT04x3MnF`o2;HR;4`&zSVivoAF* z{8Cn;jKx8er%ynJsn{wL67V5JI|3rXfT&48rf5qHHP0e@*A0F}u`D@drQ%C&?#@^E zr17~|&-G~WJS)<*b4<>X*Ybv9uH>Br%CZ?}QheOgnCf-yH_N)mnW1H>r9&j?eo@j) ziBB_b;>n~IR60JJlcd%^z~6!840USLzkCDqvB)YFezeQXR}?ueL23* zf;?Y@&)~dN{5EG9X|FVRfAz!mJG-R%YmoFqO)@r)>4gXTFQ-~*m*w)-Q=y8C-Ck}C zj2Q9fCn|Ni?NT&)u4v79im^L0QLI&`Vnv>+)aK*OM_QsqQNb$pW+p;h-t?)qlHI`t zo0c8NuWVQpIq|(EWt@Uo@pH*y{jmVmJy4~A3VsYEr7Mgg*6BeZAR=xN39HHkbf3n8 zJiy!>aOH!9+u=8{tYxYn4wkB3|HPxR8;(AVvTHl1Aug1BC&}FWZa&)shwpn1Ta~2MooBBHhjK2b2Pcvi!7^ zr3h1nu^cCcZ(n=>fWa&LRl1TA6a%;$OBeV`&H#-VAoQe_!y|BX?R67(0G=EC@US$5 zjj9UTfB^)HaKL(}{Pf}la(T`YxKz^I2jyFM=e0Ga&B)N!qwL-HVr zgt~QI85~cu@rM<0;C5@@* zg|}7@|J3@XcO>rI#X;Gg{E%+=_tyuU5jTDvz3va!5&|Z{tnA0TU!Sf3DptXVO1lsp zMa{wHz&`K9a&7l8=aKCEvyae&-`Lv~ z0+09p```t@3J7;la9{O25%M?yu*gfOgrpt|dVEduAF03v00LB9$q5|oFTnut;NJij z06aueL9kVbzc=NLhwq73 z1uIE%!OL8Wf(wwJd;le$U!}bs*Ws^Va0a0G*YQu6JREp$)SZ9KabOv&u^?$#7L_ox z596ANSA!lNT9r&Q@yk==Lsaz1VwAy`+OLc~qS}?JWX3X^(;iQokF#S!>yxoFkBL1` zhaRP>+UZ(WZ_L%2yalSM_c{64wK`=oFka#zOQvMZDGmUO6N?OC2k|BGCG#fNr5!n? z6%8M2W_cML1DF2*Xsjyr4@cy4=2Mr{*wvh^sTm+mQgljIfg`H9 z*DdE6xtxht)9MbW)l!1OcDryiB_Tj#Oz{{Z5zS@K?Bp;hw!S6A8joawTeK30O9*u7%b%-}woaPm zX-VjC^`jx>?Kr3D#b?2%g`EnfQ0f(2w@xd}lxX$b*(Vtis)&IEW0neeHm9!iwIx@} zwHkcy=DYm#$dbnyE7GLB`yAD!_=&1&T_^rZ>AsBQO)Iu=LInsKdk$>|EUDsLz1 zj!vn`W(={ac`_`uW_Ao}bi$QQi4JJY%87Zz!J0<;5>9eUS3grVZZS~#JN2VR=VhcP ztCevA6d7qbiRr1i2^vJSNK~33n~JIb0O540Xzvo8mucoXhb1lM6D=-?aQ7%B%wgtT z7jDK4M_i)Y)pWgm$s%4}R!%f^rE)M*VXibt+hz7H3EdRJh^771h^Vo0?R~Az+?z%# z6da#z%>MwOng^)5)n2R7boPfCRXRRH%(?azK5HxL9&)Kya`s)Ie;+}lWc@M9`Nuv^ zQ|mAy!j+b)#*vnyCVFaK97%{_VM7MgZO4n=`}SYD^(!2hqT5aG&!F$I=flRU_&V`v zq&_S4YdYrd4&E2@E|r{vs=2$whEdCY6)3sGP<2{`T$_;4Y9$v}Goh+$9$v|_lv-tO zV=>UeCMi=0{7F~~L|{4IY_pzTY()jRQYA7pr?6;qM-K#9i$RZu)}jKnDR~Rqor}s z=PtbX3dtGvol}#X%QVUO6Oz$HX?dwA5#{5lK$ZE>BBf!9N&K(}U|nn9F&X!umjQp-0Nm z_H=!u-Wz;H<&{r(P1I^N3Y$QKmF4vZ!JfJ5q#8b3%C(HriTOz(;XhY1_>Y>h67nnhlm5G#38Gt%Nv^KM>3b z8g7|1l9fQ1hzkr=<*zmM{6a1e4x6RR_Xqdm7A{0nByHoY7f@ww?0uQf z&j1ZT7Y;~1p@%&7H^c!4pddA_9lKuuH-prmOZMTd+)d%yH%Yyg`_ZKvk{ z0JCy11BTmyz~mo)P;M=NIOX=p{iHMA2DEmGrTRHjg#*Rkh^j?m7MWCvAV-CwnrA07 z5{aBO>ZJlOi3TNhT6JorXFymGXNyvdvBvch>D9T!8$LHzo-|p{O&TcY{fBHTQ za}HoMXbGg#6;aF;+U-_gDKY0}Dz&`no2s*MXDU;*I-JVm&(-Ft6*+~?PtHVA;><>f zR-&b-1Ga3D$BpXSV>#i}n^&vc?f(GT`SvwdGpq_uv3R7ETuIu(A40S3IhbFJa zl1^fT2vnSeH8Dj!1UMU`6)3Rer6#9uW%>6pmPx4mHj=H6sSP6Vvy(D)9-U63<+^1e zmmw^OGVmm1;mgA?;n^_Y!Gwea!v}>hC9!H>Qn=!$H5b9QRE&d1r9cqnWF_DnXF90OalLZZRg2!7W~IlizL#nfme74Ji7)>E@6fXr zqf5<7=4$M!Klc%pbpBqaF&5nli3qqPVpMfHT$@J>AoVL}!NyLeqHi-*subxI#(|J2 zl35=sQ{g(%8#-qMN~SEVvJ_%0#h0Uf(nTsRq(qxHcgI9lsj03Kuc@ASHT=D_@_kvs z(hRHie|?_0w>@SVS#@VDnWxhgdW6EDpiJg%a?g;VQS#+78k9g(#600xf|vnT`@Dhd z4lip~m-A7~(ro!WtJWY!`#TCD2J#hjm&QJ$?$JYuCTaPqjN`GeP+OH1&0CJwJ%9)i?)e;QKKm|!uC97On<^4HUwaAjg zFFS1}=^f4c4nEQa_-EEiCxrb~%_^7hx#AZzA_kt%<_V>yPs7)UEYCR#UY!v$QQ!D3 zo@&KjAf;EO{{a2cQnwOPqJ*VUrb@S*V>tXow@df_KTBjL@nq1rKHm05O5(wogs2k| z@nTEOKvR{<$AJ-0qr!*-vY|vlNgasCI^9{+6hj4yi2x_zON76wikt#R%Mt{11IotG zz=b7?U92z9d;uW^#nes6C76Tg-q?T@HawAMxUv1g;{Y4X1Ugtb1A-H8?w3=zz!IVP zR#M4Pb|57^B#SkJB$C9OND5Hpi3D=aHU;b?N;O;HF3nZP_+@~VR2E+s3oB>vp z1jI-I_cBwvr6j10qjiIh=e7X&^!ruy!!GJyj;(FUlu3UL`O>qNvffzJ7*bj9TQi4* z?-RK{FHxy5rr`}M)D_4^$~upy*}E`T7g(cIpv6o$USwzr-eIxg$l$U&zBo>reyE=% zC%&uS*wZ|bm-S02#+sFuPmL->kn>DXcj}4BB`LW_e;;v#maiN`tRgKa9~>QJgnWPcHJS(_;4 znjDPwNza;nT8El)24#`ge6yW0#V0vPK$QEuN|35kD7m5rRm=tyyoF*~4ALV^(S$^- z0tVaQ_`Vw?GQ*YgE7_tXt}QNT`Z?09?V?|44~6{clC@JODwev8^0e2)Mw%%vUePUd z%Tll>Wb4^ZJat6-ywwJ=i8nDRlc<=Lh{}RV@ZsShzNYlY<~=!h%&F>18ebc3U)~h*Pl?|h zS${FjXx>-wQ;@5ge>DOwbJHzi%$bIXsyT8-VM~{!<|@8Vk;;`Abu67)jJ>cbGLus> zzG6ZmDiZol?g(vd`@Ym7-=0<(f55z+O_NWgNX< z%@vrmEUTDj6DdZ^6nWa^S|TD;vaj9Z#QT*!epuVJOWNcDP7A;{%C+js{{XwlGj4>Y3)1E0`qmZlH+?niPD2sSqV+p{PsGL4_wg78NHNHPD}5{{X}@#!KQTq}NNo z%-~oey36k|bw}+T%$4a$SsLD5$u%h$s)r2D{{Uep1fYhZl*F4|I!iU7aRjZ#eBGkdZCcYrcxTqkmsM2SGXy<3$~ng?(H0n=^C>g^( zWt`FBTSPNohY7gUil$BRXHfneGbT^e?1@>bRr4IpW=l4T4R0yr=rmaJvoy%jQ#D4c zY>P0cVQ50KbMaTJOeor~W1f1etQmeUiRp@+Dz%e5L)TZApyc}2zUWR>&bl{{D<)Df zp-jrkL(heE{bGj#lSGpHrgM)k33YiTLI6ZCL}g@@^LcV5r}gRdCxf6=&kQ;>LC+a; zSuzH{PHLx#{QH(^(6ukZ1g1pIda^UlQ>MrnjJcUL7dqCn=9*;f3$Epize_UIy2W~> zH6S5M1woRH5mBH;yTtr6aGch+R=M`ur@0uXidQM>aOqn+{{X+g@mrged>?7wjC}o& zJRs_ChW$LFPimfPfta%3N7@0jAilr_B3Uz|igF;L*k%S%hagDouv6bLZT zEshHubg$p<_vsVKJhF4h+ne3DyKk#+t9-ZB?rdOFv!MvRlmT?NrTsB-qS)9uSMwgj zx%C0C1X-9)gUJd7j?&6+LEX+I7$;Nd(@Lex%u2vqN$D^BZ9OMzM2P_}7Fo!$XJGC@ z`HW|kFNZH;Q*mlblxXbibp7|uhrKdWO*2Tg|2`A#fmTo9@#R2BS1CumBEW4%J=8cRA# zPp$w8CXf)Y3F}_fDQX3_o3XaVAKw5}M8HY{nLRAY3TSF}vdW(AfF0+kD5(i#n1wLl zpr9265bIGkLQ?0RMgU^wb`-JRm6Hgl7b%Df^f2oyNwMLu0>haR6on0;DP542m6*3= zgR=cEaxCKjO$$!_s#1c9xE~1jUv#zrSY!fKuBqWW@xU9^TcUN+uX21bdNWoiMq_9JPHzv1Ob1hHN^-`>6Pler~`;%n4l1~ zB_I@}EsDqHO3!eYv9==|qYR#JlYiX-4&|aKR@h(^m5_j9DMiXsB77w!AUX9ImzrAj zs@rcsO_hkJhU01wsCzazQDp$Ya#F_rxUA3M4;r5p{-H)JL z9&mq~dwjbL0AQj+k^tlVeNW2(JvX?x3{R&${$~Ibl_&r#5|XD$WdccWkV*Zp1eB@y z3|JQK$GdjE0Dq?z{qdVlFH+;E;CVZR+3j}zzQYk2L(MgP-}nen;^m2N&27G)zAZ{s zF5CgY0pFirTrz)6`vy6`#}vmuBXZ#Z$xh-yEC4U^9Q?4GifVsqw(a#b$B*JWeQB+vH4!{s_|M=|K8faa-OwKq$p*4CKy zeN&cPt!}-Y=AcueFMS*DG6|!~iH3(cOO=>XK@ndJk%X3&b=0&Z;Vn_*=$4V>q)@0- z+DyDSFyTr{!iVL;2}p*N?7SjVv_nX+OE5*dS;1Gkvu&tSSA^jpY-E7skd(Fm0JuQo z0A@NQpOFdI53VQ&YpTh2WNst?udV>BO~OhcL}-?0+MrZ6j?dfM0Bc6Kk zbZMlt^YoqY>KEF%RMc8!6W@cH5zli})z;)<)KxnOB3=(Mcs zIY*Sv*>1C``7cZJg=}Svldal|qf%8r?XFYMjQ;?dAxDIY~Gq=(rGd3d4DTSu1zKk zyf{v0vvp=>Zd#E?szoVy6uDrsgtB5pQu;-nJdNJl`iG`&UlF}9>~CjA@%*{cA656K(;O%NvaaT*#^ljGtj2vTjxLjZF>HFKYD$?x3FAlq2(0r|s zGe)Y^Q>hbLW2(L$d=h=4J}~oEUDvs)J##K^I92M$fW+m#cE1*=la za?>d)5K(nHloPqj7EQ~fpI-PClvI<8;h1wZ={+vB3NjjsC=>Yf|*a)&e!VaBN@rKQsn6l$DEidl~m49y}sRT)QNN>o#huY#p5RiW1~Z9lt@ zz^%R>>(_tG>$ij1pR~(BrRaiSEm6|9q(bBH^runz#wKrp}V zYze)Ga4`Txt!By$n>Yu%d_-~p`QQiGgYx}f)8sG%HjrH;fLYiAZNR&7{NMv5+i53n zBrtM+z~BlsdoX4Er9-b~%-2yAe5sVO{dYHJs zI23%a6E`}Yp;0PRlTisJWaFnCV~-xMOJ@|Cj!8-0wDvk}_9*xQl-3HD{{XDLS)vKt zuO(EQqUc^-smhp;BS580m=pQ(JgiZ&Bq-D9DU>}xtv+SKQrz-sw$}`dv8tB$C2#y6 zVRSq~QBtqE9*bp0FNJ>;T zZ2`Gtj1HCSR!oY3AuWRrNM{6&${dl2B>1@h0EnB!+^%r(DU`GhnK~n6&k30lV>9Py zFk^lU#iJ(G!lqJ`gK-vqAm#CRJwMEUDl^NcN1p4@)PJ&n!(`5> zc#6`R24Ikvo1^JOqmqfG7uMM|?Q+!X9k8zIu{F?q#D3a(q< z+~b_w-Ls&7Z;rWr%{mj|W`{MrLx(fs7gOco#8TH0aHCD+?HZv~paXQppNUkgK~d$Q ztFXfie&5>QsyJiem&5$uiQf|XQ=-t70(yfb5-z0bbV(SoW>7L#M2`w?B|ao|LP}K^ zG-g=vCBQZ)Djl&IWZbm$*zJahzl6D~KD(rRJJTt&C^Ay=aG@nIkdh(7L?nkxDjGmb zvOut~+8Y__b*H7-=hg4j)UOqPXLT>cj)P}Bmp2Ahm#8X?GbV`VEvtt!lJydbJjxu@ z8I%OXMJqEzgemnXV1&e%ij}MWicTw+OyjTr0Akq3ss#Ws7bftAk&r$Pj0%k2PxeY5vmbrR_3Henm5uvdW5+Wdi0mYVYilZ)^{d$^Z z#N_oy=08KPvMa_+?~I=V+Gn40l~HwFWYW0tG!I=TW5g?-t!E5{PmxAj&r^upNLHle zIf{Kxa=OAJRAeI$?;?l!(84|XKHKuK+(J9@o3oIUUYm82b|Dq5d~HsC`r?cV@72#6g!P>srW zancVwJ8|^D4@_kRE6h;cc5ulb-$3l8-~%Q!G=!2YM&rG|blIbRC8B4_;O2}1Qrz={J$=TyYGDnUN4|K`gtty%ZZ=qzI(32ltwAzyw zHp@-SM55PJxtekN#0hl(5WI4^Vw+OQa$7XqY5iom_UJ)e&DnQDV!)>=UYp>4pHq;F z_o*QlEbCWD1$erKZNwHdOKVMZE z1d1tIjTVRzDycb)m8^MB#YUb-mjzOi5T&8jqpv^8K%AdYjT{(DC`1-?0tm1&N8Txr zOuV`#vMjvpC=jBFDx?~oMXAg~Uz-IfnxqsiRx~=2V@Fa{N}vc(!jhQ9Axn@_^1q0@ z_2G9}^6t9iOsSjm4pRG)GS`TVrIV{UZ!k#eCX?lLPgZHwT6G>JMRgQvCYMalRpx24 z4-r$;krtg5Y6_Mq*94N2$C6E8lIguZ>3a3{IkW93$#Rau_|@>Ukv`I|4OAM&K#iBH zI;%mV4MFhBo#0GM$-=M8SL9&T>RMAhT2i9ImZNGS1PGEwGKy&VjvOe9XmKVIbIajp zizmdDd2KrCyS4k<+MMIfsp*$5gXU|)CP%I6rgx7YPjwgmL-@te!&HTr;a8|r6q>yB zIxO<2xw|jsNn({K(IHLCDxI2WQ}8CF(zPEkDM5u9H`3yi_ep*I;xT*4ogp@nsoAJg%2gi%Gr{K zCzx{0b0H{{RVzhqY-+$97zJvSW6xHbL^~nDo+LBF2+}n03=PN*P6>B_^8!6gqUmQ}?=rlG4SBSrlp&SJ$8V2h)Cd`#L_$ zzXw`hp7keEG~Y|5EhCIa=BGDpD%u(_!7H(n*i7!N@LYt~j z%%uyMnVX7`q2C;HoGuNiUqX|~7|Tq#K7Y@I-8I%-R9_kj@<*p66)j*L6vMb6a-hR)>r zlK%kL8iCv0hf6hy_<;Uj*8m*FhqtK!?ExpK6(6Gq{{R7r093ND0-a<#GOUOB1}@$4 z0JJjOnD`OuiViw{Qr4^@YmV}cKDN1ChT#dw@ahZ`W1aP=X zQdJNvB_T4&ZGa*oc|~CfN-wyVhNbWLi0XSP&+CqGF38X!+8UI#btN#$lvC2|cRGs?*8n03 ziyO^|cAcOp2wvV=>Par{o8S*bQ2_(0Cih4R7l#Nb$_NF`ocq2ulJl>PveVFhM9FBN zltEgeAu5QJpxM$?v9%D%Vn=u2V-SD;*7})I1xg~|sQ&<5eFEU~iAY#c+7#s?_V~TW zvtR;)+t=uRPw9XPIB)TG{+wV3gVF(hLb-2l7_zVd;ly{`&cG-6lwE))(*PX`e|IEU zSuNP(4BQ~cyJC@z(}&EtvJV4s`j--M*rjksOg{e(pW7J)r<>=Vf5T!_@ zvPLeX8@c}gcE&UFEo+6h)aIU9NmkT3E<=auavJ+f3!gx79}iEOeBWX+gy%>Y4}(H+wa&^?yu3QP=@JJ^ujR z@B+UB(*Q_@wG{^h*oP;E7jHnsTL3y5m@xz>tbmsaAvR?YJ`wEYumRFog6;0k-%j`d z>4*tRlvzOSv0=1_ay#*W4j8AT*uBTUBzwL9P#6Kr26M^z;01n1t^iQ|h#l|kfDM2X z{BP|40PBHyP01*_q%H*kEq+)Id9d~E^ftg8{rgC~S;Fv*;e$74YFy^sNY3VGPc*7d zT}d?qm}>IgRaY?6;J=w3Hd&@j0|RJ(;uBK7_`DRComD0u2NV9!e-3KNIc{$`SLG$* zXH4}{jhXXJWS#R>D*a9zC~@J&n^9DGsd^-oD0KN{D3pXjQh**}pPmimlbpU}+BePi zSNu-WxRGQ{B^jr`sBs8T&3%(GaBV+?ZUcKnE_#X5~k}Yyp!c z(3GH))3q)i;o2>=7Uh7z5htUdq?l0BEwlxJ$mFi)cOP5@c^61E3Zea|rP85C`<(4k6g17DaN$BQ)91rJ zzbi__pO%n?P?kay<<3$g!>PcfR96WK@~SD8-5O46NGO=Fq9rV(^2~9flS!pi!pAtr z;;O2%KWSchfmMg5nFM9Jexg@lX8LAO(&|ors?=&Z22VR`9co68C7kn)S`lMQ*Cy!I zS>&z}j){nJ&`d$(tOhzfu~_LQ=9d+FlksIKC$+CnL+Hyyye4bUhFqtrNY%+r9M**7 zy=13mjT+ZIJ<{C6n>5oc=3Oe!Gg((#^3IfIujATpt@%n{Drbr;+$xMMH_17>DOaJc zVrMw-pvk04Whu^WT6=m+Z+hGR0PZ3#PbSr=zoq{GV`ZfBH4i0cb?CgdO*M@y&NK8% z*M*TaBdfW;?sYiTi441^eg(7>Mf^T^h|uJjjW?{%X8l6V8H#Ol5o#2*!Hp1vphPzE zY2R8=jkKiW8slXZZS`;0vf6S&N%@l0`+olbbZRe%Jr~ta54x32@iC`fALk)t8m^>i zK3~?Y1fuvD)O{Q9&6#ztO_xES_;i}qtyb5}`>HXs)ek*tj(nP)%t}=e}`rRFCU z9Z?qx`o8j(LFv`hh-B{OcLGcxrG=d&=@eP@DuP9{PmzK2pkKlVss}vf%q=fvRo|!pm zPrORTk1HA)1)7RlqiQ!>r@OzEE!%bU??#b~BQ7!^6hfl^RzHlUGkLxK-tEXUUXG>h#*iorXIKmj)N z=Hmbiqz<4gx9hSYb@c!29$f<3qLn!S}N|u*NzZ<`r{{W^W=^t|4hq3)THqtQwbB+fi;{N~!?DzxQ zkeewbMDWF}@?(HJqTmKv0qRS&{Yp=u;}Qm+QpATNx9ly(ARJ)(d9~7SNPf;eRLfL( zsM48(#7=3*o*n72Wuq7qNz1vur4qlWvoetoLeUZiPRkMCDUIRHC>s(8iE5{(<~|d$ z#z?K}7J1YC9Loz3YI?J%nNLjVMqCi7cv+&gFGiZ1hNRu;)MU&>3>&A@7nGBVOO%dz z%29)kO18GI)cqf{KSy$|lVog}rgA+ggRER+`wSSRdu&Cq*H4e z`(2vPQR=gj`y$b_w=F`Qr)BxL>sa$dp{GjE)#F280%IjiY;lfBsY=z+%FmdO7rr27 z{89Lr)=hUuoSJ@q&a<-_GD<4eqfFAAn1tl*ET+JSOA3GRIV4YPA(IkeWQQjk!Y&Y| zZG-3f9jyBT{5irJajPCFD-`t!?N`m`PqGx$XhBgErkY_N%buE-F#uAa*R#CLXn|;8 zv`HtCj#Ez&HCi{-vp$q1@~S4vAqjLTQ8uH5Ab_II#>DLh=J0=xcB{J8E zY>_RgCL9<(T)K1qRhmvx&(U^-rW81pPbyAqp*`a%M&->`txoGlPUk_rpYYe~9Nu2> z6XHWbW+wL1bzes)nw>?aLt2s*o-}hZ!lYKJGUzHWl^Enq-eIh>m~azz0Ap3EYPP8E za?TQ2RQ9JWkF$DQ&)y}1RIsH(B`yH^2jmfq&Z4fs076QDak!f(_9Su}(-IGE8$ww7 zkf0p)ex3#ZlMcW+EyEJ;=u%5ESa8??$v1A?x2g0d+>Ag90I?x91(M{j)$QmXRxDSW%)2R3+cfu$PhHN}?pJsBZG{r>{ch zu4W^q)cKJXu~G2XHC+>FhX!X*^ygK46zVvLrhy4DGnQY5C>0r@E*5wBaKKW)2}(gG z6Hj#0K-euRk<1csW?@W1)s#{y5m)yEKRcAXPh?p?ydpHws>jVV*_gSS479m}Fp#*) zfeI`ICK(Dl%BhjgD&bzX4R+6n%afJKI92%{4s~494N6r;pAxm6w4%Q$H!Cw7d9slZ zC8T82IEYauLotK*#X=!0_|pqhigWp&Vh*Bxn>y-nE!?RWYav+Y3pJ!%?{T%7T@;c{*+Me#S0p~==Y5}%iT?Ms-{iMl)(auQmN zNr@D~k%6fYDal1Lu>xp)!!pXI90|eZEJYkqg2eU1<(BDo`gFdg@oC%@+;%k2Am@E8 z`$zOHwWHdVOv{;9T5`=kY}NAZYLdCQS!$~<78Nad<15Qmp(4E#O|unB7?aEt(o;V~ zn~11UQ@#wmSeraB$saZE$u?+T+56xcXF`6`O(~tsm3mDMg^;USpP1-*D>u|&Q!|1! zLXD8-k&^P}Rf|6vGWq&ap&qvyc9^**nT;VY4q*w3JjBAn9v|WOl`pYRuJ``{MYS~- z6~jKEV?mu%?3Fs7B{@AVQS1(x^j~qrnJV2hmw+s4iXef z3}xLo#xRuDq*6IyIcZmBu=u9?NwQ9r)oNNdp*ccR#8$dxrpwiu241S7oughKB2*x* zJehY81TwXr79&B1=n{sf=e#WAl96?bp-O-=P|(J@HnbUgyj& ziHzB<`mdj(>R*a|L8a&UxnobF(JA_sp}F3(;lEGisxwhy{{Z}*fu?o(oGgqg5u+wj zW~EVq7QY@8AIFXqr6F87{7mxsQ-2RS_ z&B0-S9u!B!%PK74EY88tHW+|NhYbzzj;-BlQzWP}5C!Zx>~SECGYJtPsUafZgo1s0 z9vmD%HCtLT-s)XL{(M|5cwD5tPe1~AVFNorgqOeCW< zC&Ff%#z&JfxKP#R%c>e9O2M_Vn)jR0-3koHa0Z7^qR8*jp zfCvuk#2zpxO-xd_X+$KLg&^=07D|_JB9#(Q5~1`M0TfiAxGRVfLQ^6W;Q9KJ^14CZG6yOE!Qk||rVYFDW=Zpd9^MzbNOG5JlOC0{8%s=Hn}BRSYF*B}hU63SgH7WS1Lxe*XY00Xb__WI-&nkr2FHz?H7V z_D{l1h`7Ij#Q$u zPjSuwnE_xgXhc$#f>a0|ViYc->L3t1dkg{Ot9)pXe-J`QQhdb(E6q>$lnV!pP3s)`jGViHJ1 zM1>(kat_i0mW#SUCywV8_+MlH0B=5({mDQ7*ZP$TF2sUKTOJfZHY5PgkDy#0aCF5X zfglFjn_G7-dF=QCP$5CVaqEB{6u=Kc_WuAMTmVi;JO<Ckt9@vmL76!nR>w99a zRjR5ir6inJ40=lg{(b&mEK*pa_g^zM!4&RKl*0lXKf=#$PssLsM4Z!5g>YXcO&c$t zp&}ZSz;uf$_WBimYyQ}@@#|mmIUf6la`qN$pYrALgr_#Nx}-p^-G|oW>y5F>a^2RF zM}-}(Sb=2jzx~WF?T&dx#nT{=l@bZs>Ts1XxIf+w!6Es@K;)}%AhU-A1L$F9J)_b9XNM%&y5AR9RU06bb!a(4MW3ZV*=%v}m=hv%z-%P{YXoH@U${-2Od z!672-|(P@gjGW;#r;m4=u@t8#*hkL7SW1+EDg0_G%aDGNSh zuuHkzE>pXUe)s}~IJGt1fG28hPh;)h0AqU8E#*M~6)Y@}vPfOe!r_J5?|?PmJ5b_G zg@};JLJ+Oav9Kx2qi)oV$Vs)!VpVnE9Juju;lCy8W}oJ)fu3^ku4PQcFAX!0!UQSG zeL_^ki%GB0CdcB_a|U0WQe#R?p_GM!l@kqd605kvY5Xoyz5f6L(R9=GK5lathdRH8 zO&Qc}70sERxt}s^W>&SS^!RyGFzT*F%kVR{P_I!{A*%YxM3bY}^wTFL%$a_560xP>O-rRAVqCf+MPNG(9IgsIQ8SZSWf=XZOtfkA3Cdhm zOyqhsPNhFOCt&5QttBkE*!2pvZc8s$bJnKoPH3%Wc?b~b8C?*kAXDch;KM`|B?*d< zo#ahHq?NpnYV{+}hpOM}!J6pWTcx?Ku8iSCq|8Q#mNTwq%G7M-m**3dW9B;cNu3gP ziMcgpn#9U#vNY+)!^)qPij=Q-R5-*OX4Bm}PmQ`VlADy5#o=~0uS9%BYQKdj@{*K_ zK5VY|X3KdeB<0NFttmv6J6`m6L8+OCRr5BWWo5eW zLSV-7$}2aM8&Zufsq&(`Hv0DHUU?-rZStkRud!T&G}}@rS*I#%hKl%i(fY2RO3LU) zaMOI-p?)0a@_vo#o@vUtt2;<&$A`^0s%n0S>UW8qWs%bv%(q&Hnx^9-QdX@}hPVid zl&B?=aDH~GpEov_4|jXF%_Xw@DHtZTNj)Er(8C%#qd97;sPg^=JVD8{M?4Q`Rzt`$S$A0cJZ4;xpivHT)xAKg$mS2?60_6ZbmdGL zTCBA?ay-09md4grlxa;}s;!qYZSuF{r%uJwc;j>3dLKvG4?JZZRmgcmRP^StH<+~V zKhpmIjb!}EHJ0-(QkbmLgm|*ci7}TmjVgng=rhujFqIBsQg%`V#0ZHXr)f%+bkq0! z{tuy{b(C%Z013DSS7+|r6Mz7ykq+*ipaSKCguVK{c#sQmea8O)_g=?`^fvQuT+d@F>-G{HP zARc!+j?zPWKg@8V1|$RuC4meSSxPtDN4>3nFaXv7Rf0zV?Jvc-VCN79@4rxfTI~Lp z^aSES1tAs%AO`%0s6Q;Da1ZZ*A*x*jke|aR^6o65>f}1UO=Ex}u0_kO0ZF@pdcbae zXAo98>(5tzfY@@VdqXTo!L^OQnEDJ1XM!zxK5Od9ke~!QNad952>^aVU#IlKio?UZ z{%6bR%7T6q*~cz!->Y$f)F>*jVlCglyYg@X0$+>pSX-Cm-q-;)srhdExgNl$yI==^ z?#084lh4bGU;)NcAzMh?0bt>rdYl3Bf&Ty#R&|;bUjR~^Vixr;eHhQ6EOoP%IYquA_CAAzN3@$ z@}U+&DMEn+LY=FHj^L&HVm3JPd@GeHYy2$z1hRC3gh)#%NC|`wQbLmw)=5}(B&459 z;7^B)UCHveGK4gQ0R23kmn=`op5p_oa+P9F#Qy*hHg4`cum{e6{6yX*jz;k9rT!MO z{Yh}MPl*iVGj4E$EgT|Z28-!6LIlKEGbJi`wEW$vQxbBqAgBQn9X27j2N!};l}qI+ z_3BkxI`^~W@545hRyEg9vi44)!;ZSghz&ub>E>RJhw~|VZ$X)um8@30;FpIdGXf1( zsHly#D}@N2*uJNwg6xOU)k@OGKN5kXc?PS>G^lV29!aR zSd^ZoQmYhSx@SzoCFHR4vc8y7W<*i~e-e2H#D}IhsY<26mnX$k^**Uq{uPxnl%big z=E}Za$XP;40Nj|>tj|)F%9&nTUJwCrQ4T!X;w%DeH+IIEqVHc$4y+MLYu{Gq=y~Cb zLnuBUG*e47TQ9&wDo&YXoV}AFsfU?0H%XC%iroBNjpj$FS0c>JE+V?37>;ko0$FiQ zRFgL@flELhbU+v7^dU?cN>IP4=^THy7~$8e%gt|nht}!BEC`7qI~b{gIP_7!R^Oe5 z2UAha3+dCQ=gU|8Mp-UEX&;5$_#pvTqib$=%IKMff~cRua~_|65tx((#>g=zsBq$K za_SB{;r8OXJHMhQ9Ayk@FO+gu>`l#a^1s@F;ncyHjSe1YkF1(|AIXTQUSzg!((0sj zOUB!HkW)8GhO-R(N3}Vol)(-br6n!!rsaP7g~7yw5N2hjVGD=SkgdQhT}gk-xLj@` z{qP4b{9<@-kkov=SguJ@6IZD&fi*(S*>YVb0<*48SX6aWQ#67i!psyIfG244DIz2( zm}-U=l*F*4we6z0-uoOYr{+B$(VD$aB4>IIrdnkYWM?6~aSSN8osmvHDap5?w3nKzkKG-3<&WXGX=~MmgIq=Sod+IYx6J zY8@)ILzv3BevON(20U58&y@(?7d4wODyyw|PbP}CoaRi=CkB|W6*@KiHdYK= z)hPxl5i42L+>I+ZDS7gj1PO)4hML4ENR^!;2YlM`F!=c0$zHgwRdXu;0Oz~nJRI26 za7*FuQhRzO-JEp$O+Mk^^X(1LpA%W!K%sbO&Qg?Yzf#VcSRzuje@ycgDRWfJ#aGm% zB2H?TpK>O8l$n!~tItZnT>LsDuITWh%)>DaFzVHNd^-B->GbYjEcB{hGg}`!J}&%2 z)ap6jcTqKxYA&a0ZlKqpW;hi(HEC2TOw9)`%>`4xvbpM%sk+Wf)69=4Qj?=)*?I~k z<3*T-F;Fp5gRtQB>szYp@90%Oh_%CPi*5M(kE0K))Yqd^#p_(&xwd4d<o~ueCjA@W&Bj#FsMJ8$)o0nX8 zy2cvSN9Rj>cT8%ZCBP9!gGfO9Ou71Sak zByW{jT4v`ZAm!Z2ON}-B zLMq{=Vn}W=A*`sVw&arqM>FZ&HFC4a&5`8uO+udaxOtCI^gfGRnapJfDHEux<)zZ< z64kj7gv-Q+q@h!XYYnO-@#U6B8M&0W1^%f7T zLH+|)s8eFXAX8!)nGM!4=(PnHu%WYsMpZ6!t_dafpp0;3gN*I<+?h$bzJ;|d=0-|F z)3o`9B)l>LArQcABI+eL%&AsXHK2tSLieb7gp>g6o20lP0dHRT0y-9#AzO-)r9_Ce zD`Hd!#p(cSk8A)`?uf=3g5e~Tr6EINQbmsb6sJ632YG565fy8SqCBz?H|={mxElaJ zM!*1#0Z=0OX$5FPLXT4?X=Y=>w-JB|Ei|;O2$0paTqrisqB!i%_VxatRTQ--p@>T) z1pokYER}A18(#oPJOzk}G17XK4N4_xJtb=Fr6Aa!OaW1Xq^=wgw1N^?SgDeJB?YCx zz3>Fbhywys0J%YL#5)fxc>s@lU;}wklm*g)q7 zQlhBX1a#d2{exoC(MwJ0t-z^<5~VB>9ZFvgkrLa1;Hfq?wkif~TFfMsl#Q!D3G$q{ zN~})Q1lhZDfFZ3Ap(zL}PRHs%Dkz9KQS%B-y*+RN(-IOvS%BeDQiQ8^;s_7V^4Rmp z7}8NtkDKRvs^YzUK@v11sX`)?7A!ELQa34(qQ|8mf>MxqBmFZ2lBkJ~36f!>%s{gO zpprRIaxBCXfIt7x`iv_fY6PjbU5(fhz#hW*`USz~64FZopaJyf038unozBF#@3+ta z*bD(65JQWDfC!a0s}E=A*V6zK*V_OPDIm4>+T*0{{J?-%l?#0_4(o0~DJ3Uq_;&)L zmn=!O&kh?Ir%GS`^RK_51Mzsfif@ud{{Spe#%_9@QUlV#C7;y$5PNVPjx=dWQ{cQZ zN*^d!d_-cS!CtmF7qW@D7jx6YmhWMU5FHEKxHwV~V0a{U0Cyzg89Z?EH22&E3rhGt zpnJDJOW>vOmYI9(I364VJ$qw3-#^fRu-%w~QcGB|cDKx9AbC5AKuHBb)TIj*xw>~) zz4*nWCl_(-O8J+%1`iC$0FnWJb|%*&f!tybMoyDxP^R3(^#J7a>Ui}yvx`wu=+8OH z$?BIZBZUVcNg#_S)qn&7!TwjoIX0AE2!Q168;g+4d3Wr|;mO1rV}`kOrO4E*uWt!* zOI(&uYx=$MG1E^~-$9ld9@VAs{z4|{7khHd{_WcpGZz4Q{{T<-{uls>E-ZWPW_CQE zo8SikF5Hg5kUhPy0{;M90P8We?8npA-QNHzNey-Yg6D+)0FXWK1hg>@EC_2Jn|Dv3 zI053#?fT#cpqKc{T;H3PEd7h0d;u&wj<3t`kRADd)3yL!LA97LP!c?#DZ+&(0iN#${)3d#dODqUk&vPpOd35KCL@ukx;nY7a&EP#XO%qS=rB#Cm2VC5w37KWW(WZZh3 z=?EPW#^l_k8^19Hovnx}YUX;&AA5ru1V~M~=}y(`NNw9z!r=h95B0_2DMk5t zVBmM!yOm|KuZG%g6^YnWQET+MDTp#ThFKD_t1uu= z!;cDDGK6?RF;WyYlBq^d=WlZOrqt%3k zhXc+;2!N(IgXNWkDZyqoEr`t&p02E%s9$AA8mFPUS)H?n ziscP!I>DGSBpmgU61q&Ldy=bD>6xb}R5b@EQeju7Xmc@Z5|rQKA9qCOm*v1l9}Q2; z`HtpI>H3=I7KJ~M^Hd3p!Bxt+5}z!H6nX7X&Xw$^k@V+8G*IWdZe^`$wvp-FES_a6 z+2=pQr^kk=$df9ZF$#RJPUDGl`x50VPlS@^-}mfZK4nK%{1WC$O-^GeS2Ipcs8Y1& z#D+kfp;R(1Z<3SE6KRWFf@^wFPpakW9$L=-0LL>nf1dJa(lXMtimqyp{9zRQyG@gw zs?OD9^q2E7roPHG#VJO5V*IV{Tp72+^;UtLYT2X1PGpUsTJ@*ZOzd>BzYcj6N({bf zuVfnTm{Mmoq7GT3)28ZKw@vbHYn_y$&xmN7pv-JcVKRio3d^1;zg27QeYz1mlK8gy zi)B+R=KT9#&6K@K(d?z-Pb>J7$x*eNAlcRXubg~0P__R6U-SOF z=A8Yia#~}mx}i~|M4{v=*YL=4GSs??W#Gj7x~0T9QpKq@-iEeKDLuJ$$2>RCzPBhj zy7-HOEoWS#C93%udD~1TqU6YVUIf-q)hdQd&e~_;k06;u$mHp-5!4?MziJ-8_-4v^ z*E!~?Y{@*FwO>|6tHh{NYjV@bg$*$yM%hP?OsywxqNd;1?E0np9SJElKeb0@a-L4m zAGO2m`pEe=#ALj-q2-#iqUlky-kh&fGDqDr)>47|7E@XDCaI{@?5n92JwDFVl|h-3 zk6f2jj&r9fBIc7G96+=h*Befsrr%HV`*yRN8bRVG#9!Hi;=@t2tHt$hKBh`)u64?} zqcdw->AoPfdpr2Zg{+#LIYQEGx!{{ZD0-orVd?DFfa%>TW?HW=4uv@y9L%(OROpPA z(&r=F;wdGs`itg&l1X#x_xs_03R+jm&)3}gj*zHHRU|3ZT5RGcDV3UCHn~TiL>ZY> z)F{=d33{a>pov-N64TP3ex}XBi{!_J3OpjMkr0KYNfMp=n}<Ou>kVAn34lof?4~LS%G{2n^^Rh4CDmy zYyAcQbExtIBmf)J-|K)FRq{_f@o%ZKU=KNG7q`pjZZHRmfb_krZciWMfEeSsVEh|^ zeH`-lzz9gO1Qvb?JoauGzgz&DpO8DY*&*)T z`(i=zCI0{t#U?abuY&x*kW46(I_;9v5eQOYqH1=Tl`F7>Xr|&K;LEHeICdxH26M=v z%5T`^f7o}KGGj!Z^W3Jp%kU=NpDOa z22+dB=MAGJZvOy7^cu>*1jgwpScZbdBX}FQvw|<{fbiT)-4~PD{{U9`vHA=Sk|b0v zVk8+z3qoVf$Ad2ibWsf(qNykbELCkxC_tA|lt4;cn+!-lIbXGR#WZgho;LNrJY?FG zNzAJcG{|^r&{)Ya6)g`WWEj)=Svi^v9w8dlY*wq0;zJu_C2-bBvBk8nhTl^>vXo(} zJe@fE4?I81)-_u`>ttCpFDmG^Q>WJs3A4k44uaPS& z>vp@}ES}NnNt`YBFxT6u;tXm}iuy*0(PkAhmV7JZ*m-`Z3SJ;-?P}Fj)9bm$AD48) zs$~qf{3e*}U88%9Uk}Ok2-g1qvLi#0u6{o>)_!(Y9L7`d=a%al+g(J&A2tEZkQ4or z(-}FKYeL|}6IGemvp_6`1k zmFTnkU?m97wRCoTxqrl&U6zv2?+Uq07M{#n^Pe*Sgh<|*46&xjl8YRng2ELyUqS+y zhqeWdApML~$o0Rpv%@TTWEg^rob`7)FVPh2siwJtS}ekqU=o^Nzl!9H%Je zmWsCM{S9(<@}wvvq^ZEzfcxrP8=jM$KD%R{nKZbV0Ba0Rdd6AecG zYE{4mBEs%$>`P(*Uo1OrC5Se0?gQG`0jdJ*Qo`(@OA*{~0*4^r2=QWi6q^7+4sGAv z-x3Nu)L?|2p<95l3b9NJDY5Ew>WxyZ zCo55=P$wiL^Cfm$?)6-$ITtX}s`T1kOVvoQAi|tjgn=hjfiD~>2vW`~D8^N(T|K?Q z&)kWebfy({PC~U>(LB8`T&h(m+G8HQrn-aSFFMon9Q8taubp)ErK%YUJl2_4a}^G9 z3Z*5=KIt;4h$=w{3rSWvaqsbA^If|pI(OC0Y+iY~M>R;&iWeVTYFSD+Tu3sRmW!tT zGc?{LX~YSY%1lhr{Eb4Em!`=^NrI(_CJa5BH=e9(jk!Td^3hjyx6EPMJjO_Y9uyi% zG)6|DHPmFX9;oVPhJ3>*GGZXZ6FCz#CTfg|jJ#QdC1KQpm_HE!s~b5%!6$l>DOon% zdj9}}YqF(wwI!DXlnQ{yoo>0{7F3;J14Ng3!ZPP5_FZYOBo$ z>Xk?^$xLZ!*-0O{O~ILg9dM>JjAsV3!c9pokEdtdcSdq?Z{fGGR%FTATRL+J^Y&|`L8HVuj!uCgCo?G& znCp^E6$PB-aMuyKA6_1^r{YsYvjX6(qyUD}<*Piqz|C zk~+%sFKme@v#-BTvjvW!k=B zT|T)BIoD^;+-BlH65n!_PnWtPqeN7-pry>+vgY5?vh=Nfp)*X4FDX9)1#8Nb%9-Y; zGcTMnr7tgeaO#xF4AiiNROJyj=0}493kAc3LnUhfTp1EyCCtzlH54a0M3{p+5*$yw zOvB81Z_b=lSc{5@d5M{*%A?lckasfG32?UVWaBKdaE7S!Xcfq{46&8u&0{c5<=C;M zVJ$JG<|OM`S23a#JEBX;l$47JH3=lIe7w{!r9_0`Rs}}W*5l-9KT-{1)SXtEqL?vZ znVt$29wy+)J5!9fQu{~)jNZoP=KAlW2ivY=q z(iWt!1BVK9^Ku)2SoatLWHw)L0)>kbUB#2!bNXNjh(JxYfL`qC! z;?gHlm@}}>(&aD}vNBKQDLBJCQ--JWBudkMZVgonRIJCBy&WfNVilDsP=`_!g@*}B z(Q$Xj8DDM+vSy(w8p4c7j6n%1QQKn2ak+Ebf-nH#1d>XQ=RB;ftN>6bW5D`g3CKa3 zAt(UyKn=f&lz<$e3FrX)L~xN|#f|`$6XmKRlvc@Oxpq@CD645UFMpl@Sg>M65Ym8! zAt@vA7t?n13Ura_fE(qMp(#`-aT2vF%OE;{NMgW_kUKcQ1cwMM3L!-)BoY+qh(LY7 zD(%DZfF#QVAe68vS4rw{hwe~V5PN$J0b7KGC-D%Y3?QKih0Hi^Sj7JTyK%7eI0A6p z7k`w$h5Ae)q{D`*EW=jsi16c#0VWYlIB6bWP)j;x=Mz0C)NcCwfnY;1I;^BN*93HeROBRbjVJJD>-1&onwYk510UpR&LQ0g86+4Mg1!X41O}G^YXYY+QsY>$hs=YS-`RgwZp>Itzu!M*G+ z^uPuN>bYxKnXUWa0tFtU9bpS>7n-F+&-_REr#l|Xba^~#-`_L2t zuxCk1i3D~E0`}}XVU78u-q!knsV*Jf=dl*_Ao^m^lWteSU~u>Oi|~D0jA#Oa4`TlS z>FenD5;^|>TU+OV9){g=!HMoJI1Vl`R~34`(QIlibuKA}N{|Uy-PLP+DJQdXq8rlK zjV@8C@40-d9DK3o+%grpJHCW^A53$~Dk`~`b-|n<=Pf9H5ys@TE(=c#ps$hXAlY07 zAS5v=0h9HAl2jbANLVBuz`fgs_QyJ_-+}@aw=q5<2-@X{En;~~4l!vBazeZW`O4zqjvz9ybn4fynRv{xk0Fabe!H*ej( zxC6>l0!bx@t=s&t1-n+MNXSahRH~H;T3sfWB{@{8)hD6|5|p}CGFCM8N~JdxkRi&` z{Z`RO_a;DwW&ykg3%9_N>r6HkVBFPNF-eRo8^ErMJAjP2`DAX z2=-9~*+>cikVwE6geYN<3Q(dF!=*cs*n$9YxPG_-LZGEd+DA!ZQW$Y{9>UlHnI2dK zfD^faW^kq-B#>3}z!v1>veJbTu*ax`-D+|0k3#0}fHCcANyz~rC|2U41^3tu#^9ue zcINPU_zKX(vr8qGa z0ePNq6?uWlcp*p74$q4zJ(KxUEgzXLQ|41!mG_zazLiE0(+-OnCM+VLP-D#~#E66h zsYz5aAA&;*V@$0$#iOS-tx!?s&XxED)u{P~Mq9#Jr%XW3HC*Dn!Kc0-w33%Y(>*b! z=G{U$YG*U}pYfsMLai&QRA}FI(M>#Bk)^m*QH!fzJ z^tP;|Cd3=G3ZrA%oSQq&4whiFz%(P??AHF~j2p;Pq{Qk6;h zDk2j!sA2|ElTnrGStq^hmHH*qh4nh)<;b|C{)?W!zwO={hFpa?Ut8tsg%L36bQ+Zg zMS2IBJUr9UkTV3Ds+l2DnFQx8K+|lIMW3L}OUBFDT9G?O%v5Z&xk$O2FVgChOI*%s z>vWg3{-kG&VMokV%GGU3()_(TGPP&LZjWi5TxRMP zhvuyPDOk(3%)OK{=5&*gt<)DIJ1sjqM5j$j2&|c8p-S!Q;+<^T^nEunPov<(`WKq? z?vbh5ah3A@KOp8hZfTQ;K+$P!8t`A@@_#|J>;7L%RA`#DmHZb_vrf2W$|kyME~IN# zZq9knHRsWobDmtLQ}P$yBFn`>(1cY%Qc2uZ)oN>Z*KOam*Hfisf@)1YNm1Dk0Q!$s zl+~SX$a%`7x>j({d3P-9bUd-E{v>lYw|LggblEAne5p*;-xE4}TFMz7f#J59U&xiJ z1cp_~^lDWuUY$&*D8z#|<|27h8eUs%`tA2F->sT08KLI+Z@HR2(ytCx9}<2Us@c0u zs`8m5#Mg$Jc5u~?4|=&z(^>|o=e&~!XDrRrHG?i`{VK0FNtl()d9xvivy_;!l?gb~ znTnGkF$G?54ob2|EOwgx{{8(oDMK`CrSa@pUt?anr%}8;=B*uxl50A13qb05W_Kgy z4D;d{dh@HaO&ir&DwS6vQ#FE(nWtv;b3-$%p`k{poTHf)Hx5EVzbYxyk!3)G0#ml> z$*%Hgx7oT&mC^2!>#;cG+;?{E{{H~U*Wj?S%R5L8g@eiL7%*dt8V)E!vE9LRf|Qhj zYnQnnQg8rVaKwRN+d_@`B-r8s?W7TFmhb+?0BI~)y?<`sJOI{qyN>tg(%fJL+iR$9 z?f~i|w^gtL2Xe=^atj}$uowYJ0f^i0Zr@K2Mt%8M^E8!cP;Q`#Ad`LcXKjIP6xt!zR(iWh|KwQmJ zK($vX>LScIN?N7zy;w%c`Nm~HIZP-r6?hR=K;j+90}xXu^yTb)c6ff(>Ys-#defa^ zqri<8Z$kBZCu*#e1g;`uPGxyo)C%QF6slo7SgW1O@oExi02hjOcf_RIOSz1tSX5GO z;(nt!CopB4*+`)0ESWtDuafh=U!!LnomiBO3Sw5Pl=D?GS1@JS^i4u0977tBKLoF7 z=!v-o=_3lKMwp`*$8K8R+`hU)I3E6|+XHjctpw>Q|$im15M33jSfy(I#s2ak6(3iJX9tcY8k?#AaiwAmpKh& zMTa>%T$+)~=!bF_u_+y~l;tVC_cN1=enne;C&XTG&6%4}^Dbh~+16?-?r+o_*_kyz zIZjN*F(#9kvwdQAsTLeawlV(zhRjqVK!&&Ifh>-|W3B#%*jD=Q(E5u10EeqY;!ylM z>Zgbrl(0op#4e~ulAy(l1R^lgttx{PEzyc1DT=A}JjWh-Y7rJ**ABtCB_}6r)>)&C z)i%4X52c*7PfC=X;X6>#7LW@PI$4F10)@wMikRb$Ipo_=!A3$mg#bG8#`volMmO!e*92%2l%t zDpd|9tLg-4eD|GcQ6VIe2C0{1mq(_k@>G?lkk}C2D+&Jq4*rwP)%;WH7N|{0%qmMo zv>GN|hf!r13C|kOT$P7EOj+7esrXrHi8mM|vV=8m?j8;aHIpT+lYLLO%$$O#fomib zz)OMZvgrrV6(-}H4%jU)QS6MAf~FgiL1Alfc)Rv*-vZ&?CCLYKS(qexd+~_^q@*!r zmU{x*eMlqe+W`Sq{V$xW8vxmhaf$1A>TSYlMMdNni=TJTrYT162`4C#(XJ zcCji74R=o=&kt+>0~uUfi;b@CeqaZ{5F^J4b`GKWPfvb*8|#256A_F+N}K>m+!X0a zNU++g?j+f)Fa^0Xr&%imToy{Ug3iv&OM}J$w&wvb*L5i*xk_xN1=(b=AoAD(z^S1J z%pxN(>GL`P>T_$5-Mw%I9?mo>c44MfDHXYRGt{cIlxlTGLTxBqwCs%3CBuyka9EEu zNl__35G+F$IJ8}@GUKPY2L!d}NHbP~XL{hv_3cwMeAbv%DQI~vtCJ$DFw>|=22V88 z^46zQ>X{9CpOR0Mnv7y(BUCB!@TOH6OF;VC6a zmdrWlH{`8X@KImPaqCh6P%|7YK*&=$k4v+xYWzqMN*4ko7*QsnL`KyiDGG#>bg3`E z7i1{8&ODEk5@%Mb)XkzU`D3DI7_^nJ4Ba zQ4KPAexI3PnQCE+StwLg&3U0FdRZw@5a57%u+7aqO8I2 z06Z6F%|g#GwSQV+328anyrp(yBU9lf1ioyk%K1@glbVB6g$fLM^)8(j3Svu9p?NfT z5fi(}StOW*r8ldHR~>Kr6Up^)lgcG!ph83J5TT%gl>m*20SG`AN)S@O0mZSPGc7tQ zR+N&cY9KKit_XgTqUtL3ChdSL$%v2wlCiWYK!T1fa07NHoB(vj2)HH4a7BY2<;V;> z_rL~3MHV4sUvUEAPwM1%?{~xkViuL{vk>kWSf4^~cI}A)5(0ZTa!Z?%dy|L)MP(-7 zBqVlC?dtb@NHJ!5qQR+1Ov8%{d=yt0f13$o$g92p?-y6DI&66;7zA<~s8L@7iK zs7L<*aG(x^1fSa2pesp(4TwPsO3I4jaFuPahy}-%q>KPa5cU;ri3~#^7-1lri``C< zxj{@jUIp)V!q9@u`%d65atF%*L`oDQ5)`GVv!uUC0gm3~#qbA|N|decl{UnrC@JBC z@qmy56mQFsfF{bAiAzITRSjErC2kfrhw}kZyg)vf0=X!?s@kO(P?XC`6V&cFCgc@0 z{{VaeJ{uThge4&L{wYXOQjm8gB!ARWdHUc1MJn?GKm&6r1@5FEGo@nNww~tzDijhx zTL4MgToKdUfw`0)w=aMW%ZQV@B8n5rgSyDUC*s5C78og9{s! zU!TWxcVRWdtd{@h{Wz8m|d@H09ZM;0F;$k(n}HA&JF-PC8RUH?iiER z-GkUZ0FVu=dH(>%%Gd$mvoqLTfd2pv*oVg4fX+zvAV2%|#WY1VDOber-GNenErXDE zHw1s@7L+4DnOG!47u-p7_65VA%;DUt(-5)2Clt0|AX-#d5K9u>>{!2}99b$o*ot_1_JU`Hz z7W6HQrJB`8W>hjF5CT8}u1T;1_a1C)|Vk`%=JJ6PGlHvl#ODJeYuQvKW? zmnQ%(etw>x`M?S}A2EPD2siEWYmaML@Bw+d`zg3D-{=kiaI;>(53T@Q0qg)+YYBTX zVQ|g|ayN2G?SLf$;2%&A`y&83?rme)%X@p4zyv~6q_1haHrC{Kxv*>iK%LAMu%OJ4 zk;09+9Fc$;l#sHNouoMg@M@mC{`p4Hnq5T@BU7FVgh_e*Pt5RPQy>d0$ji;B0+WN;TiFfxT$Kh|%{j*p&b-R60QB#JIV{6)00^a7bp`-5oAplV>OAfGoYbns{5)|yS2QpTv^>}$=mp3(B^W)A-%Ep`mTtkJod0I_cX>x6X zF_fM1md6`@(l7XF^LCx(y5@BIIkita>l|#qM5s>YPYqrr^DP#wo$8X%>CtBuH=_Ed z0!J=Wvn53VKZ}2Bi4=$@E6I=M^C#P(*5ahoe4~}VDD)pTWek?Q)e}lJ zlPpnWvSyk^)=eCXs2L+BW<5NS)(nOJ0P@#2c zk+p|5<;frHcZMwho2+I`lcPQzd^>n>l#tWejL)t4qczZALZ8erp;RXpso39sO4QS7 z8{?E>)-?Q;ev#~(e6uOVNhZI4zsT2#9GzLyj~IE%g_dRWhDDLiI_E;9)oQs5!u;Z< z>(so_Nu^H9&ub5fI%QI6Gz~GzQenkjH(Ge((C)TA=ZAgX7ZEiH^zm!|Fh`T zH3lRQB1L-V7PczwHSn>q6OGM3MS+y@uBfzR< z`3%oBEmDI5T6Q|orW=oyESfv2QC|Dq?|XLoE%GSE$JHkNd++PV)am~KhkaEVC#d>n zKeg06t)sb~vr^2HnM#S0KmD3s9n!5rm7M-LuXSBL@hL5y<@{E|%`hgT)^yV@=$3wg zDFT9;M9k(|l8YW9(SnpED~pSj*2|}>d;M0-vx}4XNvdl90LR>Y2U92GOMerWo|dRb zNT*ihD)gC2STSldlF;eXuqu?vYE;}cz?+|(l`&wVS}IB-MPHPpkfIKTSl`2)$vzqL z$MzGPn@I6LskALVt@wDVl)Rbd_d3D zGyHh+dX+<;RMj_1vs|2=7KJoq{_!mii+OFQPj%nl^E%@QMpqx2zXR$(L@8nkJCqaL z0qT2nkJA^jCz>#pnr-Y$1t45Gbe2%=#3+;etbTZtQ4B=43AKSqZNLy%xp8j%;06^H z0KhPI0_^T~gWl)9APpcEaPCL5dy?Q=04=T<@%cy}UsikojLo#z7ryH^EFQ$*29t2^ z?05)CbL!6j08xnpO1SB>umz7LoPcaG08U9AF5GSfz4^7U0)hwz;Eu(vdvV&`&HzOv zCh7nYW(0-;;_0{m_P`7Psn#8Xkde{|ZsA-Pzzz(|L0}vKz&?O>YyjPWA20?{3|ul* z?nt>Fn2)8JD%yj z0BJ48&TMW^%e|Oj0Y)lP2uhSqy9Nv{QkO16mhXuMq4=88ss^sn3c@h zGnpznd7mX?L5b&2u9?fdF|f&T!* zx#P;8o^;7x0Cf_*4C+3QNmeswhDo{ExJXu_XiR9)>zR*CsPST{CUY|A-9~CO?3AJk z;!I_^(ohxmC4}0QTy|Z3`~IJH+_Ow-u1|???e2Xz#Et|HG;mVoN-4FyQc7*zu?DBa zfBZzgEM>I|#g1R_^CvuG>F0x7pEXj>GEi2vK&WfxrP5?8IhquBNm_`hyIU5lT|O2(r>c!!&Jt&c$v{WlbB?YJwVDc^E&;kTauWP@#g5$QniYG z24w^-VHG^pF-?(6h6t2WL9qhz@g>Xc^XBevy$^rkg*QSr)JGfoRgQ23LyMMQi=zu3H=Eeg>lDKZgIYSq|) zDH4=vILe8)d@^D7>PH)&nI?D6xsy}%3pD2qM6XQdT*Y0?6`fku%-1$zt#ypcT&Yc0 z*9tS0ttzV3rWYL&?o|R#1UO0Q2^fQgTp;b!}o-YyHd=Q*pfPl zu2o~KnduSHvVN9pQWDa+7cEUCf}1X6xKI+XtBCVaK@RN)Bvr{SmUpu&LWqekH=!{j z6qC3^2?3jh}j|m-4RJSa_U~CKQJ`{pSr%`MHY}94Y zkT)gPc}NLRNOv2Qr#paR-LM8bs>-G*ic$vT*$ZYMsNA5o-k0Tx2aFcZ!K(V_qtp#s z$#Z#9xFypbB9}QypHv8QaHzGE!(13MGYE=>{py`P0Y(Jm0tzC_ElD7jZ5-2fli#0W ziV;$BUo$u(5|5d5vpz=1H94HolBVc+k22P&6uMrn$z>X5a;{I(=4Gd}j-{0K9!9;S zv$TqpJ#gdDV?maXR5)vc8WCJ*agh?TOXgfZ!`!h?i8WUTGsbF_G+eh%)U3r$);gY7%0g;(r&`fD%`VH89NAmcJeJcx zdZ0@t8mf}Au#zJzF8StqAlzEEw(bls;Yxz6!L3_!jj2m?rJ1sZH=2PmaUWU1P~t8lk0Pe>() zesBdEqbc{fb;Gw(TKq7+)94g?_P`n$uDMzjCZ|o#N`n{3m0$2$-oTKQ(khYss52@@ zaZIQwD+*C?n1{3D9MDpRs`DaMCvx2wi7?kK7{N&~A|vqB2>e2y2n z6i8W6+CBt^3Rqb`72U7|@4KOppimUD6AdgC5Gf!Nv=Bijz5tEp2uq4ei5toc6+~gU zxk7-w#owNA0~VDfNL!a$xI?KyL;_O45MS5OUE1OLrar)O z;QH}_q$iR&HAy!uJawR}g0pyOi4>@BQnoV?LowlBt{}%muBqR#0YU6mK284JuppyN zLqG&>P)OY10=u}nh;R~b^1v3f{4}r3W*|1+pc4N8{{U!vU|G27NiQ|>W6GSfg@pNO zJGxSNwcYL%clPwei=3mSTZ;S%`Zr386IZg=kqpI;mxic{QSt#=nE^^603JgC zF&A6(Ht^pxy^Vy_Xme6k%*v(7%*2f=K&nilo?(F=ZX_JNH!%)bFlH0BBIbeu6Sy-g z-SH`>y5Q-Qw6v+ae|Nd?LzS{#N!6VNoyw6Zo)hEbN)(26%6W!kE%C;bq-t4{`!P+Es7z(q$!JQCB^HUTP70j1>&E-v zuN0p9?Zp`9S4-db`~Lu~F@uu4Lulrs>84?((Pt(+O=vcL%9HswB4%oKvF3S-ma{IM zoprl4>b{cb&Y#e7wpfXznlX~-@E}Z2)K+6co0W>9khpOnqg+`Wchht1_`g-u=V`@y zGhw_h=Pe=B+U|pA9JIMghOtp~+roxIi>kTjJL>d(Zt<7mI&!zDgHm%2T#=}2Ee}uW z`8!6k?Gi$pK&j?>RQx=+DlwqQ!CX1v4jtTMlAK!C)o!=!mkzh>LG@fO-5p5Ky?M*^ z?-w#!X{25tYZ=!;YC6BDnR-T>rT!DsPVjR~tJiY%Z&7mohh$w|pQRf1n0UU;;Wb?C zs@cMyGBSRl(4xx0hM9Spcyj8>QPV10_ocP(`1RlOG;?1IN>19}e%oK^^g61!ZHjUV zLRJR!CK2=c zQ7BY=y$&`*^Wo(m3R*2zsKb?yHLX&^@A-zaFE5iOpiNWPJ+eL?r>^3fPn)Mnz0&*} z>-4=`vNh(rs$Yj4%B3q(a;`*>$~l)b>qd)Y7&%^6Pf#2|Ko4P}iAiR}ChteT}l2(=pQZ z_g?dcaMnE2FPQU{8$)tjuDI$RUDvF~BTdoB3Y*Ltho;*90F?5UM#&kkNj0KVG0-OB zQ?j)#7GFhvk2N%7&P}OtQxVf%S8Dw~O^rX6rKz>9zXQDVsgoQbJIaW1rEMw&B)-x` zf=C?uVoakfd8fR5)K|{c0Pf^B#cpiGdkhYNg$d{3JYS!c@6G^F2yLfvei#AAr+fg= zR9vaJVnGGF{ax?_NhB6i9>k<59(xvH^}r1=5=lu=Dt?|>{f&T7zz!sTFeGvv+t3y_ zzzif7ac0~sryj%$cjKH$Jdz1E8=q~MpZ-K#0tb9R9?E7@S?m~l_x1I_9!X0D3*V$E z!!v+Mw<8h{UiR7Qo_>P;{pl8Ficm^qgtLh~WX<~2$o8>Z&+)Hv&bGVZm>EFKVA z3^Oh!no^G*zQ@aELeAN%Li4^x&AAgd*78+DDQ1d3Y|$-Jp-q{3=AY*ZRDZqF>2njr zDG=r);%`K%ogg7Q+blMq@+e# zA<0T@lz|N^mA5>ZxzllKw%PP=)6~8G%TEMTekV1)ikjqNaDuo*-AaNF*_o;Ysry&Ej1e63qXyB!7%)! zLWve6C}9w`r7TjAfRLDJ0g{l+J*|N_Ae`Eg-BGfVuo9F(2_8~Bpveewi*%!^$^?31 zPQrSVc5r(!0o-;kaKiv70>rMwd?Bs#v){HL9x5pyCh2B9f?54b@reT#wm=}4Hge@R zHYJZ3fDKU+Y*M9PZLSspxdz0ftF|NpTu3M(CL!r6+=2?!99)9-T1Ehi7BC6vhWq=i zZxAKDQs9Dni~&xI6KNsJNe;{aLn@Qg&P6rd6a0X!RWuE{OwfHAFBL~e<)JLa$UmHo& z;gHUB_}uX4OV&({IaZ|6pjLB5B1}V?qxo{{jhnLMjA2j`D1{VkkC`&O(mwe~R9=O| zN~P8n4k<~qjAJX3+41NOHq+`943?#4T;D&Z`6hW$DKhnF^nB5&`U63nqf(>5%h_{2 z`P5ZbwC^$3Y6udtby-zONkxS=wE2osVHl>eZY`+%tcMjUZ$oVHw%oSlO^CnE-CUL?dRq`{R`RLn-_Nw-UoZ02Fs*<>PqLm*G&{Whe{ z(Ull#eJ?R;zLaHEW)m?v0-;5uWtya&a)FwvnNB<)BmABlMgS>rWjoixhvbKZ5Q)ud?|vKFh*bk9?=J!+p86wFM|7MrOVU2-wvQDd2u zMy14o3JRdAI-rPYOu7;`#go$|*6s=C z9RS-JB(B7u6c_3017S!B0Hi1X0B>mZ^}rbpoHi{W0-~$+6S*LD5E{nrLyKSw(ndH> zA-DjN86jNr%YN7b@I8? z{>8nIIFLDTK?J0dUjG0O)Ns#;1{>7OuPw^l!lqO>@RbfCohcbtNe#Vfb8Y^QfDH`` zEdKz2k1hPfIEZfBc7PjkHzaX@3aO~jrOdF1@WP@gD)PqkZuo&$#L8 zLm;nuNCnGryRZQI-vAOhNLWe}6+{A5m}*Y#pmLPiNeS*w0D}@SAt_K$Pk4VCiL#y{ z0pb?-zywm1wV`VXN(3~gY9Dd6fgcN$x61%F?u&DeXC5zw*@Ybkk zNQwsZq!n!;eI%Z+ZVHl1HUO={Qj&y2SxH9C$XXSB(GKpe0+f(GV*pJ zY9XaID&4rHYCJv80B{J0w{$heB^wnLY8yif19wSLEn$E?4M8L!06GW#ApJMvap_>@ z*t~L18$r+m6#_bAAw(o3qiITKqGr1ojv`+h)z76j}#V6qYdp{-XC-CqDo?6sD?m<%;bPK)y0ga6d} zXiQ)V$8E;p-sHRA<&U5|;%qpiblE}Mo(tai0%BCfpMo56&-;hK1_karU<1Ql`jv7^ zy|_)Bn>GNHl>u>b8Lwxtzq4QoP}jI$l754R1JV0n1MVX3<(d6Gz3>Bp`3Ju|k?Yt3 z_yDO<1Qeff>FM(0068Tu+>1Ee04;OKV0R1vbVLLdD{5Zs;r?5Bf35&9Ah);$yRr7b z3J-CLROzeU`2iAG+}zvM_-o>@#iClQQ2bspa#qzaF5`Rl+F#Ss{joH)YU@BMA`o4J z?b-_-N5bGY7{$R!X^UEW0L}__tlextA%Jg)7GuvC&Jc2R_H;l{Kk?|+wks&6%9lMJ)+qJ><#iHWAWndx_@d@1HYq{^Zbb>pA*Tg!# zxB>zBSgAzrQ`lR$Cy)zq&L9Q}Va?s#dXnT1VsHbn2e1Ru>LUCX_HG-D09*m=0O0=s z6ONx-pP)S82~f)?oy}lH&eLGyk!%3*{-344OaSzrL$ExSel9)v7y-db1TMsrv_EzM zfB~)s0P%>TK_!SRS%W0@NH=#Ez_endn{6szc@8vS0-1noka}Cu%ivVvr`n~jQCBaP zJTYZ?kG#xRg&#j^^a)7cj=Cf{;&j7LCc33mEpH7P zPyLX~(g~eDb!MicP^-?AF^@em(ITcJhEgFZTR63^$smKd@CHGY35B(Z3t`CK0*%WM z8Sn*N3InA{*rL6^0VxXgBe%$6PK%CaqLog$_7rU$2~!tP9V$pC)B;L^eJ_XRYdJ?B zo$orYS{g(^l@%(@wJO|QZOTIs7Q%pAQ? zrbm{Y6ElKKYGu(D8m1$8XxztXrbgB|IQ+^kz0Gk-II`*alcl%lagV`Aitn^z!cU2; zx#34#rS)sXpN9Qg%NmE6G{qX#QvNUE8!F^Fc2lcYWh(l6t42J;4BMIEP<)s*46{El zsrq$RFhpojLN}i?!}zZgEUOkvd#`_6J*>VK5ykN%B$ajL`g@$p@TaJ%%TTk1k7f+V z14H0xEUk8DE9)+yc&N-df5P|KXHktps?KHX&8Hq6B4#N}zv92g?m*MIn#?*(=2NMn zvn!qRKrtoe6oo}kt0df0SF+xcrF$hS{{SbMH5n(vk~boirP@2<>m*I+wO21!yfSAD zk*4(uZbXljX!*{6IDMbFLtkdAnGTuZZ(Ot1sb(r^)Nc@eDDtLJspo3;Se~a-r_ij& zJq}4Q;z5TJB>AQ0i>#dcaQ^`A>-BJwoHR*pm#^>l_h=@qR`O1qYusvAiOipu^!HR@ z&+A@jo!5T~!y;tLzMtq$SksyvSHi}T=%q_D(Wx3upm1w><1N(Xb0uix{K1;!C#2bO zqnh$EaCD zC)O)7QMFG|^zT$N1Pw>cS_!Q(SpvMMSzkFtplP0)=G?gwW=;&`&0S$BDQ>!Mt#JPU z!$oqYiKp`MV8f-rk%dah{MEJb`0srBR{sEU zOGK7WGwEsm{{Vc6leG`ThuTl6^4X&+XAIYobZWOLrL{Wdt;^A~mYig*a`3U3vu34c znxBS>{{V)3{{TwVoh+_vuAa$e1jtBd%)3*A23;|}{{RwZVqst=vz@Qyw&m$wx3_h% zt7$83Bz-pMRz}LYPo}zirFjCBth1;3Ym>6}K*+g!?-R8z?B-9(@=&SNS~#fGW6ad2 zqf1J|-4;A}i;EsI*A$mg14za(RTW6$ZaJrK%ePZ$sEbr4P*G4(xB*I0exOGV3H9%Z zD~@_4tCH~xJ3&`T?&FI++mbOSdTFa$p~Slu+#9&$H@IeQ*b)TpzTbB4Sf_w`KnZ`H zu^{#Pvw8rl9tjTiYycuxzn!~*+LAYd%=<_IAb?%DzzOE4C?!zJNCdiwN(tk>=PmDS z07z*_OIQ)lbGRN4X9EB&ih_EaI-I1TDPqhOea7eK{Q!7#W&j3a8LT-ibhqz_15aBq zQ@=?C$X5<7$I}u3m8~gO?c|2qLO@!Npci#M0D2X`*ix1ZRzNT5w32R40D7OR;#=El zlrA`O%magdF#u^QN=l+77D-S_9>=pOPU6^*Br&xK+%}bUDL)p{qjdY&cfbx)+=VeD zd_h(n+h}J$TmaA%j*#j}?&);;^K<<%0PuT5(L~8svJO|K}k4+Jebx+Po9sl@VoY! zeVa9p4VjNLY6hO=XqE2|d73Q5&ST2Rg1PwGeI9NxjT|OX8>S=WAsIp>80bD^iC|a& zpwy$~ac#c6j%A8!_O*KCLrcugSa)UsTg_o(3)t6~?YP6&}{$!hpIa;Yp z!l_J4$kj7VYHSFV8pL`fG9*cn2?KV>J0Tzv0pCKaj??aCDN0+(+dk+#RO^16cn|wC zsyWj}bCy%6%AFX>T2bLzdWBl0&%n*g5u?T=81dB( zFPjx*%A!OnH!qDcxAOF)bmH>k)|JgO>+Ajb*^%W9)3L3dYFealzEV%!ify2HyKo)3DD1}%R=2%(cgUY zuKpdoJyBxjeR%N!qB=oGlYqFMc6-#kr%jz35xHrDm!&FGxt?+<*vUj0IEqq>F*d@a zx;q#tJFWNM^f-y)@BSq(4Z3ejspanm83ME7Pd*q?pvvk_rBf>!U7#6qI24_GG}Hed z$3L67-)6bx*2ad-UF9y7nj=9b*eB_(nvnOp89lzZ-qkc8yY z_qX5w`(rz2=ks~LU$5u$@sQnF_bmBvGH$h}%7M3m@oPYD?wn%33cCtVi7U19ytVfq zz>52|xA^G2UHlob!wMnd?NsX*&7bm6C`l{NwDMl|g75z*1j$!kw$7s)r8r~x)(p>N zYEiRA4tr3lH}Ju%$NsB?&CZL9QYm)Xo+0=DO*(BCEnL#Q6E&tG5>_&N1Cz$__zvfo z3n7R6S~A--${-FQ%S@++L;TEMQdL*XY#R4CEN<6^W-PWkTv~P9@oAR%^yk8_WBxmr z`re5Kzeao3n-&#vwW{J&N<1Q<<;|^l4bHrmq!R1#vuCx%%1wzgCG9A(a4m^auKi#T zaoo2~ec==|w)W4ZNYc=S{RRa7p51a0t^YI)W@!jj_?al)OiZO*zR`CVp=}7_0lXWp zu8TGb!}zP_BOJ1CXa98xZ|nlXs2ldQ_`h<885)4Gco*|uFGajMbIe}VyA7;VRs_~a zMM%ce9Ws$Si@7iXN+6DP%Mnj`VA;VUjtjj0G+sM8AAc={&$#imL}BI>HHG| z7AMhWbTkf65$xV?iD?Oih=IVK#>M;!ir|KZE`wcEJL^+r=9Y8G#KM*``J9429DEWl zNVw$#@-vfMN2UpKiMJic@i66$0`{MqE@A{15jii2W5qee{FHoXD9iwq^*TOju(dtm zM)|r$@Aqf{gqImMKyR%prvJCjXQnZ=SGHAd6Qj~crQSOTvD?2|3Y#)4<~_u%M>TtE zwah)-bjEg!yJ|54oH`ag8MELb8A7Z`OyHLSqX>7{4FrZrq=^RZcf?u9-79eRWE|zK zk`zQtQ|f}0J`#T8qier{qD4y2t6wRx^H_ZLtiWt= z=&#C`tjwwsEAZ*eny9OZ&Nk+#MirN9+TJnEgM-%BY-&RC*6wfIy|d$Z#eAsl@EOY0 z)R^RT|C!sE$5MB4EWGR!AuAs-WM-65#IKbZq-iNN7s6dX{F76aLby(|!%7jhNs4=^x!tqBTHk0Q<`%^rX&KS7ncgu`M#1f% zf*6UbZw#(&9c(@(*+_DK@4M@GnIYmegci_LV6fccihE3|!|e01>OS_O2!oPLS$zah zCQ~v`p1l;5()Y-68o0j32Jj<`sZp_TO7V;kQf-m}SIak~{)dx{<=Y)WcGuTld-vQ}Q=-ew9Aw_nG zdgtiF03hY91BIe52#Nip>pag6y5D3m!tPev7(fSDx+0QnBjV#_%RxDcpmlhnzi`aA z+zF;Utp!7qD}%vr2Pp+;hbO#BU*3<_UW{+L`!G}MsNRpYKnM*jQXt?o3W^F@P$I~34LP}3nX;+4(1w6@BX-ZyK;jzTn9iGBM zFoO_`dt6xNMeHTaaQtD$d?DhEqEf!!ngh5!Nd(|#JWozPN_6Z$fJ09Op|%8=#6mjl z4Z*}W>jZrNe#Z5vQ}p0JbXY3y2m6VlRo1U;PK~VSh;oP*;x7_Umh! zkA|G;5u`&hsjAzj_>twkB$NvR_n=q>IkEjm1I%Tqstq$l6r=El56^1`aYOhTDsny? zFb&9k9q!#3CIXI0_)A^uJo3D~^Bfy*UBcOa!-~uCDx@G?8+^^r_$>#->?0s2<2YGpiQbdd#t63cNKW}r|NiKKF;^C{V4alBxWLCQxZ;5x9)|!Sm#+gq zHE&ep`NZVmNNMS{oR(gvSF68Cg1sjxVh)Y|QW)vpAXt`1tT=Jl#g0%$g5{Ay-oyG* zUOc{@7gQ)AD(*FKuIM1|zt4vxGx|)vJ*+6G2bEN_^qp5DH*=2Dx5`iP!}1xY#mqg8 zyFYCr+$0m_ZbwA6y%zeJ7;#^N++^u3bjFsE7wKr<7-t&K+o8i?CDXMnA$BX`y>?t* zztCZXcltK%kh<1(iS}(su`w|V5q>LfF3H=K3CtGY?++rDxcX?H3Ef*_lnfc8$wya8 z0DpxE2~CFTN(Uq@X5O(u5!rNOuad~k1j?m<_9DY17FsjsStE`cxWpb=s5qz#cshZ= zO&pR^s3`~!NpQK-VL>^w8zSIZrE1ntV$ed>kGXWpTm zVA{pFFi8DpIZ9YDBd@9gNOHoqR_6Q>PUh{i{y0C;Qy&JBbukz$Jm6!fsL%TkSDx!B z>%cB{+B?kr3jHgl&)~~Qel=Gi5WfiN-Jd?A{v<+_Z2-7}!;13ikxiaUROdoHvpg#{;_D|`S-km0$E$+!k ze1d5)YTf=<{R* zeHm1H9mEpkLptqeNRo1u)y5lu`mK9@t4Q5EV}`qV$(efR&7v7RDmg zoIPC6YgnHmILqw8kEHV%XZ%^A@|C*zB$jmYFv z1Allpx!4~&=O`Vjgm~tE`pqoTl<`|Y)sYcYP!Orks6p}2xCV(ovhKB7W)+Xi?#UWp zNe&#Z6ur*9CDE`}v3yPp)K1hnnvld3!GF1?krp{6H$CjOr z^SAwxJ87}hiY#@>Ji*~5FZrj=BRa1op2cZ~_3f;n3fTOyulkpgq;ONOEgfBS^}H1< zU}Nv>+KRrlE&Nk|-#mTk)7)vz8sz$yEXIAu!K@{v?#OCq)o?891td03_ySA^y;g7W zk?*Ymqd3|zc=xgUdVQV8?HiC!e9hR8l{tTI;)qlp#kCido$-agvP&T|Fpm)P&`ld$VNt`<%e?_aEN)h#}ha2&n2W%HpqrC8)v?k6RdCYyZH zQb$og27M(1F!6XCP*T|TX#QPU1MPg-H=7H@tc4&=Q?HE}zwMmTuZZ7YT?T)>6`<`lf2^!lNIj+rM9q4!=-o~OfqfLh;(+(@uZLhM)9exrjf3QQddVC{5^zeZ^Z|m|_?0uze(B zl{(gnEj#cU75kJn3M(oMJYC_mzNgcd^?fX1%dIRkxaqGw>Cm{p2;=CiDAhS&+Lui# z{Gz*luzT(?DFpkIVTL%J($9}$lcQ22RlpXP9iYq0*Oxs# zi=0{+FztwC2f-mrHf$GXh-OQDX+z_D8@E=SN)-9e`4U5;io-`>c-9mBJ9lOd%YYBa%f5(TDiPHcD&zZ09)@Uf({Mfn;zK;uG`i!=TYuUTsb|0%#m@~L$u}~Wm zXmFt4$i=z;4zS4d6m6!QCc9N+XAqDTiBM%Gb@(PqSJ7loqC&Kc7TzGt^fi!o6&(VU zIrQDS7ROXiyRH?AMoSGsVt704n{=~bpf|7(Dy6U5F$?jecMti15wj#1xalKO8+P(Y zRcnfxbZ#sgV>RA?_t?6{V=iuz%(1sg=9l#iPLq|*dHJ-2DW|2GymuccJY%ZjwqO<^ zHeDtfbCoRStZE?rN2d8wTlp@X>1Gt|OKllvRC3iNaUEX_Ln+w;cEPD|?xdY<+9(aU zl?&{Ux(uZT^r+yqtNjhYTs-KTx*IFDCj(3dJ(SWx%aK~`@op>uerJzoK#*M4S+v>9rPU-DmwO{S~YM)h4++OGEXe-*uS(x=a zIj@_%4p!QitXAjqegYjSG{7&d#2@6wain8bq`05Dn|t<_58ReHTK9J%d_PPq{9RK! zWIFnIoKbbT;2+I{x^Uhkg^+bIzcR;;V&)(cl^>Vi7#nCChjy4+sJ@-nK9iRw@cf$4 z3MHf34@a^hnB^FH(O@lvScC%edF=0iZzGv*m&Fh)If7RME_^eOWtJ3UQ|{p70Tao| z$@H&g@t+&hW@58${;C*xqf&08w4j*~t0MR?)<#xk#TXZ72-#DkDdv{aL$EvV`=bABoAyQGd zUhC8CD7!3;NRMhvQN*FFvi^1*JJ{TM(Em22M^AdYQb&h(6@*0mdo6G zf1qgVw>jlknzTqrqnPRX`h$Ew>JeLd!hc^)i4zMCFY-7~DoxL6}Vd0m8F6 zmdE1+$*t6@L1ak`96_E4oybYR$L2G`p_biijJZdI%UBdxpy`in?p6pGX4o3$%El+q zp9oc4W4+1kAtd$m8(_U?Y_Wrn%s<8$z$1@e2oh$D?#*-D?;nYR9pN_ntaP3ZN-(q# z`m(1?i7|7XsE9aXgyUv#P183R2c#pOn1w@0d6`CJ-wRQ{udgsUW|R<(fD(inn?H6{ zxEKflr@H?&CSRLcuJFUyPt~H(yj5u^V;Y+IGZZxR>Pf(8Vgl($?($i_)#F!YL+3dD zIS-ON@&B&88ol8uFm>)2In-<8X~V_>*(e@s3XO%q5-|gYlQ;wpLL^Yu-mDuJoj&e6 zyORB$H^SHZ)8YQroKfMlSJ+Xnm-n2<^3z`8`n<$pdFiE#A6Fi?Wv+Pbd@7s#XC&8? zP=Hc?l^Vg3#v{F3e%1bi#rYBi3I(6Rdj9M~t1(^EkE2;nX{CEyIW|eKJPrj+3DsS! zz%;d_%s9Q+DsV9U?{|j~-HWErpOxxAzW!}>{GBR^!7d$Ir>0*Le10$VjTpuA^3Pvt z4cNEm%}lZ~vNQ2N1ZWla9pCP1l=|&Lj4!G}EYEHYCsQFb7b`q5r4b3JX7r>@rDqJM z(hjfXtMV6swNQ}3i|W~2tOf}cXIp)aNAE-fG>N z{gO#opeIE6?9`jEC&2o#Q!7aIhYvH?obRQW_u=#u0%oS~m!=~Ol}8(14;V%aY{r2^ zvm=f;q5E`$CWX)1XE!-0Wgf6JcJxk`6;!^^fIBP#>~q36xytrAyA;V=BalW=>OD7w zkt(tvwc<(T5%H3DJu`!Y$+%9ftQ|Vs={F+sGek0B)f}vYaNq~{11sxeTtR?oxpo8< zbUml<4EveEg^M!NP|gHL45J4byYk?zpk<>XKLhX{&m7|7j{7<4Upb#kpDS}^FEGV| z2xCORJ=)h@Hy&%6rpMS8lyy3Yy6{-vP<)^{ufa%m-jhDAeVX$@tEYo~<6AlX9q=rk z>`b<2Md|t|^tuiP0Px5BgX-FmBlcmK4_}|pGex%{5*rTxH3BLlSeq>)fV9Rv+m_Y( z3qG!UtsgcS6K-2-&Myf$elhYT+fd z7R7$1vc9+tri^P0%h1J$I)S^NVE7S=HP4E|hA=CGj?pgqh|Bo$wxuDF3!K4>35BGe zC^KKS9E`~?%Oxp;0vXdB$)y44NFNG!;Wb%ub!Im8++w0&YuVo(x$77VF*CkwwRtRu zQBN>9aI-MMj9Zs?$DPQgg^OPreTP{Q-jq(c`QCbpz2SS1y5qwyc|6Vj1`)ATFfz0%rsW1(7lN!;(S^~Z3Xstoyw$yoe?Zuw+H)0Lx*>)p@N68QpyCq8|& ziWhOTAq;Lfy~$8+9I&3rUMjyMc6(&5^vc`*%aRsaS3Mm@UkM!PzDc)(Va#EKyBM+^ zhu9lv1i|247ef0v&zw%kB_8Ru;xu7A(JR~c%zs}FrNc=vb>-;Gn=h`gmOc5P34}kI zK4V}Wc(=P_AVg}+pWFh;O3)vXLq^ubD}uTqcRYYni+FK>y$&Y4iVlOjMuq<71d zhkEZMObtj*i*}0UA>QTwIP?^dwN|d-{10H%wBQb5PP0eQA%@r5--UjLy0!o4cRipZ z0BRmbmQfxlF~Vp)jH#Nly`D~3JwUj4bQp4YG|#KKrvWU^RGqXeW+4kxz5aj~pQ>g& zvuFk8J3eTrbKDTUvotOk)b(Xk8Owah6CxYK^2J{)IZQ+0y=L)fNSY)QcsZ73T)cf{ zZVuWI+yq|ypeZ+)1DE~jJ(>6`p?I3s%NAjtU`U}|{t(Ld5%E;Cd;cbL49iHL>prs4 zI#f&p;^t+p8N5!v`tt*Z_k8ZxCv%M4KWMGBU7wdo1(p~;S2vVJm?&My#0^oc6aN6 z(!uTte*TBhe6hwQiUlzLbLzpX-L+IcVpB>>RMQ=wvS4xR6}fwNAeA$-|;_Jdi!1$d=A%G z#`!EWu^J;655pv8ypvXnMeU;MKdXEC-;#DNQG~&_tSQ+t9^EY8(fe)+KO#eZ<|pED zb>7v_)?nIKJ4|IMIpZL9Vr&S{mhM3p%c$>mVu$VNn3OSgb@o};{u_&58!3)d^j40K z4U8d{pr(${$pSOEek`mOI#b2@<6~h_#Tz8UIX)mtD>_ccX%svllui0d`*HMLNiSx4 z@yrt(SH;7t$8_BT`r|iNp|V~s?d24cZa=BtkYwIwml;>P&QizMzWd<19auh_p#MhL zA7Ou@lC;8dE+tRcH?X)$7jJ0bh|dYAgyF{z3C3o63LuRx zx=(N)|=BAxjG6Y2^q^MkdM9t*3-&@1fa*XBJ--&T0 z;8_OkZ=}|063=J+s(=4vZne;bb;T#E@+<0QAGAJ}ovJ%Xao_pp`w{)Tf2@fykZkgU z6?^dolH;PshGg5Vh~q4hax%yqr`?|?ZIA5lskWkNPD)O@Dz>kF2rv;?ifr#=Z&qF{ zypvSfRaDvfa_o-sn-Z6COVO;huCIi#bz9#rW=-16BInJv;}^Wqqw5Z~sT{RI=g|ER zT}w$^QSC`*wwet6N0!7(>v}34=KMH1x%H*?iuS*we!H`3D-Ei=A`t>D8=d)Oj0_|CA(OoB(-~J|~@?npgqr1(; zU0pw^DUxx@^A<1t)2!3+7U$piZCO27^BukY@adu0+c{*zpWR3AR!_bw#X1k5oX31- zFMqffnHdz*GJe%7q<&@nebM;um<;-tx1CqYzWEvsX3Fl!!l$2ehD+*;viVJ z9@#Gisb>t8a9XQBi@vA|&4)zECP!-#5YfN|sru=r4T*`!xc=ZW{Y(SnXc&M+8ztYP zX2v0*#d!wzaVi!Tg|9NE;!V21U^1{}vL}%07Ngs9p;1J>+|tC`%wOQ0bofXt>dHnTxM2Dr;gXf-yhPXOf@ zj6!gWGJ2|Hg(~3BTMxLUQz^*~PMJ?yo*%bP{~(LDltm@;SICtW$PxX-b#yla{<+>2 z1tBRkm}Vdd9z`B%vTdselnoG*@vONeL63}TB_==|?@!2J{h2~;3NKS)+WFUHeoQyw z(szgWKk{Nszv&Va*a!V@9FlORiK!D6EsQVk1_HJeI;Uoj+S-K4cSV`1u*~tI@i>`A zyNX498XD=(;iHH>2>@Uee#PWU{h(U1AKrY@Jf2yLaRArnHMh1#F#w(|U} z*bSRs2$Ls#=X`#sYjVl{byK0v5XHmKj>tL?DPK5l{ESG?B0ju#c$5+JIONWVdntNf z`=I_=rrFzWx8h9g`nZwd?^RE~3cSNW>uQ|s=Y*^&lm7fmGFI=i)k4kQwZCL={j3MJr&Zw5T2mZFf_DAH;mt{hA;>`S(%C2QEEdK{=#+#Uv0!Fnp7b-UHe9Dnh4YE@G zEEvd8Gh}|cezoWFf`6&=IXbFy4>s|+Ltz@Sd)y|qK3556Qx^;rIf37os;OxDmzm5ONbL}A zcA*ExY~UvVhBZAZzpM<3b4{%Y*wvwc_UnO!#;EGJ3cad(E7uV`_5;4KLVj`5WLva)M$sW1LLa5#zpnJki_`gp&d93iS5k|Xs5m!rwF4f zpSK~lmd@to2Ur|o#Z?(?=>}>j0g8K|3+WzfGnI+ADipd}oLiDjKLI1C5VbFby+ zLfQA`#-5gNez@mrI(RdlrN}ZPGg^YDa}`{SY`|@SM~t3!o`!kFT-)x;kXhx@Z03J_ z3=Zjx)s_Rhora{Fo#nf5T?Q0UP_9l-FrRiR6j18CfG;f#PE+(q<%7`B)Ffy}M47wO z+uBRB2UjhGPd!vou;b}(({YR}oelOdEc||An{u8VE(V9n)HkC^x!pUd$h{vBpIYQF0S~CusBS(J9;AS2q8o9ZHPQX6MSWzX>61MGF(R zW@i|NFQ(w-f`Dl4r9GudEDkOUu)7ghM&57D&OFTI;~J(koy&7uPLJhvb3>$yNu%oJ z#y!L8a#|M66K39!4CE94;6tDsFSkd8dGCXqA}G}SbO_&ePV2y)3cMlY9h|Wxj>a$m zm?SX)_!bJ&!Z%lX@)#?p+)rBYL<@q#vgGPl5&sZm@nAtdo!aOKz~bP!GnLXMdcO+t zU9PRW)x4?qdTz)sSJw3dphMpJ{g&9CZ^Oqn4JbZVTwf-c9WJyv`!S5nTM0@1bZQWS zEXRnIacUqs(|Jtbu(5nbU~W2^RpO=YHgk5?+FBA?03E@P$GXB8g;wV2T;C5!vA3Tw z#^ySoJ;nN1oZOjoc<0k5JUNuFe!1@YDzFA0$xV*eg-7xRf!*jAKWM%+*4w|rA17Bu z`;xQBrpV?j@T5i3NFAR#na1suJ-kE}!0E@C8eTKtG#M#IE7AlWsm21RcbVYVEb>Tc zN$ga!WAyHnk4c&0;o;L^d1m6MTM@*-dv2AMQJxpdPYT`%or^O257^VSwEE`C zj8JX52z$fN9=9FNk#V~6ojb}+*7yw9%eP+_wo@P9$mLraJkdDJk?XiVy?9=@t@Q!V zEia|1_(eNgH?t8Pz2#lcI+p8Q;oxdxD#^L)YL|ajN>0r=>bn|b6}PCxKVV0+<#~@}=IP=& zICPMks^7XBKV2j}QiBl~q211lqvS@V{w2GHJip;I7ApVDYn=IqjGeK5>IklWnSXXe z9Wdq8_!(*L^Ow0@>0DY;9PG5x#6IXK+YMwDD|Cx>Sf#b;>TekV>&Nwp^&C{$6Sd|m zZBk>rCGzaw69nJSEuSR*BJ;5Ge0g}%)4NZHMP%P}FwHfn5mn}zpJ!)}Gh$^9$A(oQ zA9ezwL(EQ4rs^AS?me_nAj2_W5nBiOmzG#<_7*I>vAA-0YlPIpEy|z{ZuLaTx!HpH8Qe0j`_JD z>yMw0m(ZHXuU#D3+1bFx#=p)v(Y_ARk|)4hFURA2SxYbN3ku1&z>_uqLrb&VYgUy~A9~ATs~GHg$>4Q9u#+ zy}vo&%GwBun-S&l$EdI8PwVr{NAo9@*;VP)173^h%xqS%W0PZsmOEU>_(wET z=W5C~7w6Z80uXl`n}6U52!qWWYFe#6eQqX=iX0&ch$sZMhzKW8XH}Dzj29qe4b}xG z$uGb6eFwE_a&8oQVD?O!TwaoXs1T$u4bOwPc5xe{j27>@^0?OP=Dvm#&C_?Vf>>8= z*3`gtl>0D2(hw|$x;4cwHfele1lBLk$Tt>AKc`Fv`k*+{7e)Ghi-TmXt|$9GD4@bl zw&8t5SU0=rmX)daTh2i1*~tBGKx*pfnXC+mFrgrtMe#h)#h$=BGv_T{ zVDbu3a6gQw{!-4GmEFpQ^|df3@UO?33AQ@E?B?w^E~RJKW5U!{L3z*hiNvpp!y4oW zk|7BPoR5QS=WAkE!7{w@;&2i@**2NCrsbZ5erHe~e@Ox1Nd=gOL{bR3XBa7|0X-k? z!0#CpVridcT!RzBqV$J4*6;!GE}V9~I@*ZAZHkC-RQV~2CoPW-cROh>bXN1@yK6W4Mccn+w_L)9A|4qd+xYf<(vX4fP zC$vkid8jk|yv5US9_0Cgz)?bxK_tIXT>g>p)-|`w&DTQlAL0%YJI2gz?&x*kiiU4_j0a=R1$FG|I5I3As)+?C;zGj+5(-|l1G z*dG+;&~O-(QnF&FB*4LLF{UZY+r;(#DK%QlWzr>ni${*jOZ23)ts%cJT}vYV?!J1g zEUqg(BZjMy*@+EGRgCbn{wqik&gFiW`AK;G--~?@SIX~2lqd(45>fz?ho0^%-zYA2 z9KV11{-N8hZ1LYW2c?x_5bnXUg#^KQIA3>VsKn;2Uy+chS)YMtwytHj zJ$=FymLMit3NtIF$>C5Fm3^?vULhb6ZQ0-CJAHTMJ*zFG7HyXu_+lXu$~mFYv0oSj7n!QpF zaCERNQeOhx`!p;uegUpZVW``K$U0Foo9kjwdO=+Mk{jEG({o@XicDhZ;KdQ~9n`I2 z{ut3mt$q_Ab!EsVrjecfYm`hi@ge-*hY64Y(Y~2!R)qp1f^2%yOJ*wRd_I8g&tM6m z+uZFRZ&+Ua%8u?cv@n0FXC4cSzGsKM`oV_wj83Sz6(?z zCHkMBI93V}=muMwNAf38e4JrF<5}ZykjslFIsXBF9Vf^dDYI~v8X#Sw^Dz)H|5iU= z8>Ssvm$;~}TTBMc=*zo|t#0v)6(^+we%C0ye*(I}G!cC&oE_Ef_mMzzi#ck@WZE*MaMF6UpKVz(AJB;{ zGnI5^E+4g@ITAV7<~qpu*W7BiyO=sT0K3OYo}q}7^Ilj zj8oQ72btxV(I5Q%rUdDws=j*^k|i#ABehpPEGS;y&fRmnARl6g#_B*}d^jIMnb zgNHR+JZWo;L{O;62**C&b@mHnE}UyPQe89*I32g8^dpX`a|f_#@lWSj-$QK!{UD{* zYjtBre*&Ev2AyEMvgCI8LY9%@q^SRZyS)#?TtQt{`XP?g4;=ClVa%wZfq6FXnFcp@ zAfnJOcRF0j|D=h|^utx1r=U7*q}p4qID=6*(gBIzWQK3C=2Lwg$#&KO?tuM?3GmdK zPlp8yNjF9N&ISG17ovkNxbMIFf&{3!CH`(`ClX8-M2EV)xbTgW&9z&b7+SL%%hRtr z2N+qw(P5c_#AJ&-1w}vh1FSA%{h{E+MG{)2%t8c0Hz-|?N`P<)4BdADp~sHquwt#k zA`r+n4RDsYYgw(nO|9?sWWyH!6*W3kuq-lUtQ^mV%tw|b7xm3B_wCX7e>IkS6ATDQ ze*a|_;3@sox)Z>Fb>S_R*g-C?=k!DU4oq2)>aT^tu@d0^gnfZBRw7YcahgQm$6st^ zNB|Tj`{1eES5?$t`BhtniQ*sq$PXC2%2#L2RophA_jp#2DNV9W!vUjPMi-P=`Ll!P z3^~MxKq|v9_hBqDvR1}-5;ZU@wcGvd@kqemiYN})o42yw((*DOlQokcJn8cG;FF&T zH}6s1>$3Xv(m7IBDx(fG1C+-&z?61VwUCW(V|0rfNnU_AsG?7?6A_016hi!Qr2TMOP z4fG#?okVO@GMc1koUuqr>0#%_YJ|&2@Hpnip(}XSSUChlcct6s1su(DM6o4U;dq=k znZly|!HF}|u|6P1c4e~Y7hST7{BI3AW z7Z6PePrj+@?uMRf^qfe2cY5aIqi*J05rH5EYd_Q7n%f(n&XG*uuZ=(yJn1)*O^R;~ zuLoX)pJ#@SRFx?gq8DTtYepDI(P-;T8>7kmW~ahEF7TI!T5(t6X{=nV0ypxl{jaoY zsMR{DUGjkAR-|*?weDN7PsGheg3^nKrRzH=d{RcB8|}A?r<@yyj9c$uXCaYj8d09r z#UDrvc>bnCy}34cX}jrLt7oj*zUG4$kGvl|Y!%Vv?0laoEk?YiFECYHtMkK-cQ{Qr z;i8_jHItB>{VgsO_ip{NyqkclrQz%(8( z7WXiJoM1lPS~*TX^WX4q&k8y$S`j zG6m(#r$lF2Rdp9+nmR!|Nw{JpZ6i_c`;BJBz-Zz8xHX)WsBJV760LHZb)9uwSktK< zpOHREEzgR9(ODF?v1;;(&gcf+U*|)Lno&5_-_#e9aNL}mctkkM9N%Wpdkoc%9cD-S zX82OzWWJ~PcrNwPD2$`{bV*yF!-TTnw-qu5`}nRk3ia#{N~fXvJ_wER*Ut6P3vCbv zdgBP2eTtSr9@oeyniGXruqOHF$k*qP^-WNVQ+Mo0HAqRHr0H{2DaF}%L1js5drshIF z`j!um7z&cqW!|ph^Z~Mlo>YyqL(<-RC9xG5-!gKUW8#D?k5;|!!#*`vr^oIZ_q9sc z@5Gz;ArGM%_6~FV=&k<%X98;s4uNNz5*7fu5p5=7uHce+LBv*fpWpjGjf};n#J|?0 zf;~D5a4+!vkoN=bDsark(B?l4kUuK}Ex=j@(aij3PvGtG{xg66kHiGiw~w2GpC@wy z#|N7heo7B2dW07V+-(#n&*b=x!f16n(>fwESNV(m_^fD}CO+09etb4%J!tI$D06=C z*Wy=~LVN{duRF*WrI*!a3A0>=JTE>Syw#F<6XYeYwFuh^%k`JESe_z186OBV@DS>( zmmW*$@By4yT)(ZefTu{ggM(vh*AcRYA?Y9>HDrN03)gmq1qL@M9w-x`vB=~P6#^{c zElhh|+b&++=g|s%Wq5uN1`VFhLNfJKF8&8dg;&ORmtXWsoUM#a2VXLbyf3{hJ2_FD z2>6>cQb+FntyZV9{PQzH7DT^3E>4MOEOi9w5j{Y4n5cHH{U6|8W~A7g?2OKcxtt~@ z=$Qf7yl5FSeEW|)@oVELih^PFi_lRwOt1BAW-rL(9GAbwi%Inj-f*&}d=g~8!EUu4lRgv1V&1N&=r1L4=}CRs48NQ1PLVfN*zY;SzrCa<^Z2^3~DLEb{!BRl}#hM3r?gu&0xF(Mnz20OX6|Ez(h_ z+BI3Lt8{izM0;>tb|JJXf=RsWV3gfU3})m6C4AUrh^~yx5K6*Szw2e><&XxfQtxKG zwv>)%`9-Bzr?$)8n`i~T;o%M=KW2)3%$uIDKi~tgC-s{xio$4FcRxd%?#<}7!0smI z%*gKn5P`d%)K{JcF%jZ__R5`jkx(|2?teff(Bj?!rTXG+1=XUFl#lH-(SBVynKS{V zXx0GyMlKZUfHkzK3tuo61vT+t_d~j}pT@YU#x;TBh`sDvY!BI&@_y5~Nu;EHnmznf z)uz(yR`Jnq@|jhnFCZJO(uiXxhQS*rY<4t2gK3md0cte_8u4w1lKaSm&fdg$sNg`& zrUe!=tadg@W3C{KBuU`lr9SIbPRv!`0(O7rKd29Yv8*->=VsJw(fJo^DjW2h&P6P! z|HlzCOi5{2Hr?`AotcLa)9U1ti+5Z+r}Dqpjx5fo0ryomPSv3y<@6TOyIwdDdSC2J zIuKx;CXspVx6#ap@hMWQX+f>YmH_TGiAvxx%onpYY8<5)v7>H3>@a7$vWlvm{L z(+MEkki^CrSGCz>%dWFSuM&SvmPkXsF{mGLVYi7bpL@`MQpK7Op|6{DGWlxg=Z*&8 zLj#Im>C5F(OW>B*i(3a$H~d+XNy&IBf0~e>T_$#62F5CWAg&ik9rvNJ-64lXV4b=Q<1 z)R<8S-KFzF3E5>RQ=JrEZ^}c-yl7+$B;pI5nGG=s=K(u;haD{fFW9SGk7qZ+ptriW z!Kj%x;Ttevl{1-qflK3n26;hk=7VCtzy0oxeyA>)&P~jO-i2siUR@ZG{{{dpuzVZ0 z5H!wi)L$oZCZvmucS)t|Ylr04asHW6^k+>sjKfEFcRZbL2sDsC<;?|jZ{QP)`O|}C z$|}Y^39g_&Ou(hbh=?^#ODkjp;5f$~s=h}Dtb_<4~;;vZ(Gjn0MuG6+hhkZNi< zk+gxNOKxA5>VZT)AMwv)8~K|JIsNhrNq+tibXrb4TO7}dKza;0IlUTa#8kIF1xmUI zGq{!B2QTS~WKa_wDlHi5i!3hnn~k$tiD&EvC*RqFC8-(mU%%bnbmdpNHa!kyQ)$QB zTC-y?h;)jN%O7LNp6_P&FL=@G0J%3z-5l|)!=w+4pHU^~13FDe#uBh->-4V+4-9*% z*iZZ+3)ZJH)mrj?zKjFp;rs;kVbsPh(nYURBZyeygj z4gWqCL(oOc0oH}1{g2@sMj9U4JxKYy!IOAivXpej>XQoAo429zsi&fa)So?M%h3wi4_bA4o^5uEvE zs+~O)!g%$A2YNK$82yBjpvkY}rNaF;X2Ug@^nWYpI`CRudmsBwKuUvckJ(^`kL&ZiB)`^1 zm3ha76AWSqV4G>gOTE+3aap_qLwim>SZz#i={g8Iviq~{l5EF)-5xFOWZN*w$ElbZ zXA>@WhV#nl%(R>S|F)AbkXnb#epD(8KY zSs2Fg-%R$nc;oCPywiVxrGkFZ$ySLQO7CR19k*P@<^F5?b#0rq^PRKq|DHQ(4pdz6 z`iCpHl%2n(XqGi}zSk?B$Ix4)+r{wai%khZ!hlL){GD?7`%Q;YN z&hj)yAjlXSS&6KZW{Z{r^=@)sniJ2wFBq?DOIf-exbo|4|CVX!`iBh98xb#SGUf*m z{5Vn}G^)?68Oj9BCj+KPq<^P)a;I?p+_R%1ZsJ0{-zss~5v3?>EaD?Rc&0zR?gDM& z%w+Y8Y4>)PJ4K$$k2BI!l$h0~YFHS2ZqV!lcz8UEN%DZ|cF13USVS_cka<68FxO~q z>HxeRX&yy>QZD72l@QM~R^@N{RD}g|*2~JbB23S)6zl*OZ^vRWQnaBK=v^Of+y40B zWO*29aV0YHe;l2AIFtYX$M4OCInJ6xIc;pQIjbCUKE*~3BRLjJM~6nD9Ory0&CH>6 zKo%;69P`1Pl0))|G)(4Pa!Mj9pWnW}e|KHGu5I`G-u*f}pU+41&iapTI+4BbRuIig zq$8N_F9GuKH}f>_OHzL2;vL3iKGQ(_fB(*1H*-6dW{3aIT;8~F!e^y;E_q3X|9QZMPsOd#dtY}kz z)GG}=zZ@Nr5~|P-q=ndtxoFk;_W}o>U+;<_hTr;aF|;v@4S&XX4B?auJc9hJLhVlIGVEsq@Y3Qw zF=N6fx=7+rN7ut>KcQs92Ar5p(`rQM@*6fdO4;lJ$i#-TCKqhCpfLpGr#F5z8_w38 zodYB#gwAySZQ`5f69MTWEhiHITJTX2n+P-R^&Y`l-48-LvVUFoICCrg^i; zc=|4d{n+j6rUh0l^rF%nU3P42tEaSh|DyTnYO&}h<5(Spi&Ot9*wXF61M3InG`ldT z;rtjkeh7S)%Z0MUfa!(hG2^q@6cDu8zjt(xr$uUS{M7LOac7yX;KyGl*`a|EtV54y z=epI!MJH759aHkv{bBg#f_j6~hyJ72(W+HfLISM2<^EB|`ku%uKwI2)udr4QFeFGq z^)|Sn;vH>;gYVuHy}y3xha{n&z9bDUcd;B?wZyDil1qGFzU#TOXnkb-X^Y{Z2sB=u zj0INhx>Ynz9&`D+?D-+{!&I9KTkf%S5?DlKT(W^l=R&32zms#C*K8h1ht=h2v?HGI zTt=0N=|o~KT&-dFpl|xCn6;T2=Kvfo9F1Z~!hLN(RynMBgpS(A(e8gHru!6#%Loz; znixSXqP!W>3VEMl6hUuG>O~jw`57$7EhX%6ovMFERqXw2MiZqkn%?)bK7a5`LHHL5 zLDyz-h<(<>-r-r1uqskT<9D??qyElf$=F@UD>};{taJTbl1~3prJ;sqOAeB5V1biA zpI?zbL(uTEjp%-0CS|6-|8(h7b@Cc#2vh^=*ZMA119=o=(OdP$EX~`OR*H=_r+C2a z{Df{onjw{@Y~`0?zZ&Pl4u4debzajnI&!#^B}*2&)VbubLrnjU#@uc@TNpu`PfpGW zr0VN4zhi&AIeXw#(B~e73pRm5s$x}DJR+!*tQ9le^u;g9Uk9V5=HDFyFI^^kq=cMT z%+ND#+Kb}BWJ2>y%Cg82=GUQ8k+Ovwf@th-!=K&v&b`^h8U4`eu6{ZmdO)mn+0Tad z^{Q)gL*oK^h(Gvph!(@+z+Lqgrm*^N$I(BBmod+-*eklkSV&o<LKMq4P35w1Js^= zQk%r+cDhGq_K(65a+|+BOx~rm-H=MIGb-C&cAsGmgb?}o#U;@17YX(%@q;_v4-ByK z$K%HFhsK8yd5~&KeTYg+NOXIpL2j{1VTeYZ&iUh~0wJw*r`8P+#QM3E#neXLoJ_|rc2`EKYEgwin)3!kEA!3a zJgiw^RinqY*b;E`sboW*VR#I3w!`+J0aTwQ z?qFGjBY4Yy6-MDqc;JDw7{KD7cq5Nc=0tGiB~K#d{Zpu1IiN?wrh)l<(i7c!wGSp8 zcLIn(d7_@t7jQ-qPye*Y@@)1(j|D5h#iB{;O8d*TzJDovCmVs%0(l&13X_!rmM6&X z^5lqoA;YDmmQjS)g6K8PC;V%1g?v3%!pdsL9r@HLie)sUlM3&i2UAN=%u}Tz4KrHf zoy~ze8!QFsIQ>dKonnTT$X&_3Lb5H|mG-sEmojNPGPSeW^_w^+>9h7&JS0%Q#%Q1Wmm z{lr)_m^xCcY5x}hDGP~x>WqG~n6AiR;?eJ)aUn{Fh;Jbw69iI5Y)N8f9I~3Hdnb2W zSNh{c9@2dP{l`D{wn&jEmw5mT7>;MMye^!<=^J0r^uu|fiPr*zqA*@#E%$LE3R`lq^h@|li zK54u;B%4;unskI67; z($fiy>Uj)kGMnZeQ%m7Jm0f)rYho zX<*kZbf!n?-9NWKm*_*^zce`Lq>kD0wJkcELno71wj?=+43Mlas2DYuSvJNrSO;{ZCs1deiP4-G~ufp`>ui3 z(=1AkJpm|@oM|&zxy{trPZM3`SDYG9Ps2t>&YZc^v{mIu`f99p>8s1RK4=F{PSFQ) zKiBKjv*}@D!DQ7M3(M!EICOLYn*PN2dxpAOaZhrw-YOnK{e(AJ9qlHA42|rx-cybT z@jMf=@m&aW3z!6dr+Jv>4Ur(x-*?VBz(f#mrhqFjcbRA*GUNL~l$w5(hql{Z*mw=Z&AI6CH<9B%F)Vg-iw%>v;OeF_Gt-ve1mH zroLnBzefA#&L(bbjtFvow~qY>RG#c>6F#O!IxKOd;x7G_na0tw?t4s9=a> zR};Mu2={~HNG9K)SHmm%(*39#)x6zUUK=A@UvH|a_4amOo7@-1C5rX&a0nw|qtgPD zDr*5s*}r;wtGD)dW|6S)}On$dBhn*fk_uxe6BwR*(KtpQ)nM6W@uayAm3 zzKwU0Pi7_`h1{+bS!nh%pP5SH3MGPhQh*+Uy#N;+!e>-t#^V~Ly0%o@iCpB~IkQd` z6+0w&9+MKOe8Y6;21HB;U?2dIJmEdh_HM2?&}|e35`V{={ThS*`_T4tgf;ljje6Yc z@G3@Ajf;pShrXChP-^sVZip`oa-&)9{>1L}DeMQ(Q2RVl-LFl%<* zH4$NG;*x~i-B2yvQ_BM%f6KN!-ZxY|CAfKXIq&qZWA13}ce*taM|bmjU_#DG2;F2@ zVYWv7>8)$G=Vn727cXljUtaASkw5-jRLwLUcjU{I1mDapmauC0(~e&M={s?mPEl&7 z`kFjl-OCn>EnM!VBFmTwnS#y&70ukwzxthX3;qyDfmhgUx%P+HMN9GfFp;mq_Bd+W ztVd#zzS)d!rpvZEbF`nqc`v4R9mAXKafE}nKpcV9=s6SJDqmrh^GjNu#BuKj>hrH} z%J+e~_T?R6^3m`So`WOFdLq@G}5t?!ngHG?8cK!HvGblEkn)!S=xRHRF58zkc zgl$s%x*7zyX>b&5eyzm*;)Nw)qb)*CwiYd{Q^g9CX~I$AXE)osu4}UdNA4C$ zC;U*hA^CSD7gYs%1~8SlmDbhreJn-8xT8Ob@jbQ~UxT&#T@MGI3@4X(^&RcIYg1TT ze{15LMZ)ugi%9E7_@i|))e`xa{{>A{=)THQlr7A!_j3Q#d|h0#dF7G9^Uo%#Z$FIU zU@${F?c%Nip2jHM&XP__S5&gvQMz2cuN94U1kFE7diIHVx7$YC{Ph3Vo^!Idwb><3;;u?n3s8e0X z#b4lJ6wicW_vLZu+(VQs@Ka%h|v_?{bbdqNwr>fbUlXt;z5t9q?+5sDcA2^={C_mv$wyjbucmr8!FUGpj(>YjB=2#EzECHa?aNH+@!6EF#j5pehxTzJlk`FVl&mk)+FvYK3o3SdlyH`<(`$-6wlNC)n zF+bJdC}zc)f#V!fWsOvv9YUMBZjWv(L|sZk3qhXAkcd)1az3C#3!!X0FA} zH_U8>=X1YL0;iZ{E0r(?sgB7qkvcW1cPH!81(WaC#|KZ2-YhLk&!`nj>A;~>L*n#O zeDaruxo3s*+m%j!;u2C_hl?dR&BS&Qh3|rsizZ1wVh9|?o1}i@I!Hyf=ZOwZ+iHn# z)-+&{rYOBbIzTa+0!>~Gn{EIs7Co^H(1H&CPtcTk_MtKHAR)&qN83i`K4yK$c@+j{ z(U=IqEuL02_B-Us==Ff{G46x3nM%zU{YI`AK#lT6bR%yB@$xetoqin{K44>+$av5# z972TBoq`)#Ir)5kShRNrl<>8E5eISH%J=7M8dyBKMoiC(*QpRmJ$E(1JVkRVq^bD16r1 zrM?cOxgW~P_yTLZb%6hUXl-W5%)LGkrQ>ktTyTfbUopTM?NbR+Z5aItPZVDaOQboC zd;&~h=}MAomZcaeP=v-VqlLRc^zGFZW2(rmx4iS zm#QYRn3$ZuOM!`|g`f?3o}|$#1(C;BMe#I%3mU3y%xZCt!XMV zA~EN?D&=n~;9n4iR8pn&aS$tIj}{2Bk0!bRtz7ZYAD-vs@~GgkPvKcKfi~b^>f|l! zipte`waL1O@h|+qts23@9fi%r%!ev|-JG+d5iE(F=em|jPnPWtvnU94%hYf6FR6#> z%{mdz(|Ojo^ZI_sg}(U+#cByj`NMAz2@4ji3n2P8>ClU-RJ3(ElBwb1hERt~)@$By zHzlGZ9Ipd7-b_)w8BU;iLg8;!AuuuaN!{-Mt=a3xNG@;{DyDYGW$3$|; zhpKO04Rp75>oQ+;%~%RlQ`;!Rehn|ASM4ltSsnWR36Pn7K00$R!I|86L2;^@QXT{x z!4JT`;=-O7S&65|+?N9#GXBSR*+uzsKvvV)YS`5;+JGy}98u~f$!U&#Asc#a&kqKt zA~-MlG$oDk@~UhzV=o|ATjK?5CP7)_r?S%&RkJW=c|> z-B~ac9dwbesHyQ=LXESm5WPks`uP(}0`4@F^-9WsCJ%+w((H^MBpdnOPuQUE|DxjO zOH{+vE<1DN`MWp%Fk5+CG{}HD92sH-Mwt5#%~!Stv6BqvT%QG>_IH&?Z*n03@CUbE zAWE$cG{sdVgjZtO6O}Y#_J-Mu_QQmrY1q}< z{;BYY#>wG3gA*e4WuyI9NDTV{1_mru7NjXiq49a_{~Dvupw9P4@G4hJiFr)JR9W~s z-)sK__O-xSiwIVkWh&S?8LGGhW<{6`n@h7KRl^+SgGo-E1}^Pn8Td{ca951~lll{} z-0!zLTBfP-J|J!00)0L|oc+4xEUkAMKw3HrP%uSXkP5!{y>CG;sgimq>dgH;iH#=|NH@oGS2q75RA6g*9~wgmE3Rm2+MPLMz&Vu6cEH1#V`Z zY?MjMCdsnXUPbN10G0Mtcr<3~K?l2nzP&B~9pE8rtq1q6pR5pkds_uYG)lmQHbsGN z?iX&&8QM%3kGTAl?YfR=6w}UdOhQ(umY0P;nZF8!s6K1%b+}0RXu9R)Lb-10=>JVI z5$BoXTv$G0eXQ^b&JtaxTW4s`G^dpstg%~8I3gPi^`CzhDG!)+yjgcX&x)6Km@Z}c zylTCs3-=aBmObc%R0;lJDcaujaU#~$XUj5J`%B)zi76=;qQh~MP}d`>Nst1!1(*(%ozB@XIWH+Y>Q2{#AO{_u)s-&F4iPe^kw`y{rNg$-3TQ z0rC^8%4VyNvb7JW2m^ho>_{uS#N0tt%a4*5|0!x-G z&kTuD)!kOK-02w{+&Pi!pi010NKxLZO9prR2Go1oAmz-;2(3ODhug#b1r%Zs)u$OB z#)@0`et6mN{J~=~Jb8O`1pZ5^oSMI7Go^glm?lh%))R0z=R#m!hJY?>*1xuTMB5@o zKNYI8l^m2fuuRv7)+W_N&g=goTZU#iFAu*_<~lAM_>S0?LkO>lMzET>)B+HC zYW&;{&X_a*SNkl17z;^u@ODv^RpQ2)z@l;>E@S--0~D>IdN9`wTKxMivD zE>L7(`U{zvJl%b#v6z)o9t!m<_*}(GG@>%nRzoO9W21-507fFW(GE@Xp)h%dMQwu; zD5j3*>ofU86ok7Y+~{=-k6<;Td95We0+Y};-yq=V`R8aQzUH&NPaa?6X7VaZF@+l5 ztoQ^{*% zG%3$$Px?ZmXaa#8c&JYSKaPAWwi*W#;s}tp!`Mmiz$dB8mS?y$vH6@nsbv&T0s$z_ zd_oUsv#l!HMas!cKbRm5i~iu=*7N*}G+!V%n#8A`PU1UApKu! zk%k)V@oLRu{?ID{WvNPQBq6H?E{SDm0M{1fnaW-W%1XI0n%jpr7TRuryqRaEW)m$) z>WppN1(4O=9v8rCi6w61T$)w&9A}F{V_-7HAbW%lw%-nhnZhVP;DB|Y=dfxovJ3wM zGWv7kBwuZe+0E-i9zDTS_gdX<^Y>f8Hx3tt_-TXUHW(Oe5?B~5OsJN^FWX7Cq_MzI zHQ9faZ(Qg!0b3QP4SqZ%G;<~VHO(GgYlyY-6WlWej*}~nOZwS51N*1K zTB_wYz-uW@@CVP#QNhH92b`=Hx_$mCRRZSX3Z^3!lx7ihggOZCoxt`3>n4ybMEGZk zj8h!?AO&Shz{Aug^3Kd)9uj>3qzMJ1jt=CV`da6DwCK0DY8*RWFf>xq2rEpPF>*Ul zEuNv-frs(;WCLn1YjYZNMy`$jy?@66*z^FNNuxZD=tGRko&m?~`6A{%$TA;YEtz>Q z$K?m-iT-X(3~>WpWy5_5$o;@>+6jYhTo~yx>(SqLq5-#TKii8(S z6laxjcT5!9Pw?r_&jnt-4uW6x+LrJTF_7pUS1?n%^F_z~mJqvh%O!q)#3&GhfBmPg z>@~R_QTewYAqa^O0IbsMvdOBxonpg@Trla03#xok5jbXK#cwW*sdgq2^!P4z3&x+_ z4yHv}X`R=o5BsxX>pJ7ACT+6`>CcOUp@L2yAeISyC#{ zECN<>#6rO6Pc;M!N#OO=V9P@Fvd9%~m=PI}MB|skB512043#fw#d`~r%~|M*#A11; z9(MWd&(F2_tTB?RK`NowV{F)|xQR)tm~6miKsjPT?;|A2LWQlwEFZD%N(nW21j zJp*fWdYFbTJ5YxNpZxd%WX4F5#c*+^mrhyw_Pho45uo~iSUUi3`0i&%o58D~630%a z3pB@{SOVad{QDkqHOjNQ3iGpq%<yPGd}=AKX|uVwQlCN-tyl*oHOjSp=iWSy37r2e*(#(SFV0HZJtehtC zybO~r5kWy20g=x;PNR`B;G;GsNs$sD~}+4!XV|2eW+c zLvfxEW}c;9L=zBOQ&=iux1kUR1TKXq64stQj0U=!x)VvLRZT_(R&&Op=yk%@(k*~; zK%!3#50OH5*hxcM@>yc=Osfj4d3|9;3rBlyi7JRjqlf0TIsF`=I{_8mmrR=gp$Xc9 z$}?+(|A5JfKN#Uvffg>m={DKHDz>uuv_&t!mg&;@x^;ik zJ!OCycpiRYq`5^>!q13&PDMJf<~}lndEGnuUQNXrh0CYD=-l!Ylz^DmH8SYs=yVay z=(gk9eV0c*!cMqEVSmU?j%h)3C1tLKVgsyY(r)q}lB_HLA^Ld6W#&I1=+eiP0PcE- zn8P=%gxy`IR<&PRMX)h&F3iUEDu#Ev*vkcMylI%fLXSGBpH~)mA=R|Y4cH$I6{M(du1&JZxty*vTUGatz-&H6?v%YXj)lI(Is)J}Q# z%|dVu47CZ0o-tVV4zsA%i?kUXgvw@QHI6(1zQ|dy>eV%gzY@P|j8F_eAvSq_^ z`dIvshvxNZO)EUEC|+D|sXZ`4QJv&`YZsDk4LvYb6#W7^V-tfExjH&JsGgbC&JU=GwD{5MEIdYu0spRVjbf+ zHZ54ntNgHtY5>cbZ64m5(0V7{Dulv+nnpyz<*`6Wst^G$+EMe35X}|NM>tbw0C?}S z*@=}gzwW=GSf(KX^ULl&9l(S9Sy+p;ZX<1pS4x0b=@m2E-^HH$+L3o_m>8GjSoa9Ej;${0gQLZmiDWDB+yE~4Bh{> zqi*PeN&8#z*JX)cY~FQv<3tCZ^ysrP{O>D2J#}U_!=@AFA|-?;T6RphY1&6B@6C#2 z;F3ul!FAx`ir4_C6r`dNMY&-BeD)$*(t5`D01ptEyV?8Df){sMB70{ZYE5H|8-wZ# z!s$2K0E5)y&JI=|n=sNulg6mV_(?>>?2rF|V}CeNvEAiATR>!SrxJYaiCNPd2h?2{ z^+wfw*pv0DLh~MU%Otu`l%3OHXvQ%G+JSCcj6}e$qY?N;HEeN>>&II$v3{J`VibT( z&(%bd-2|ki+W@7~vMt7%nv~-#_j}k5DVA5Wlyp#zlNlR8cuR~UOlWh>paHP4bjI+B zVu0cyBz+CcSb3;51duc4(+TL#L1#jGeq6rvdC>yeg;(S#dl~5rG;W86cCP#pqK?p*+?2Pbuv*W>`4-c8(8<8vpayjv+JakT~$GY2+LL!X{UWIA%MO2wY zxMCAKBHCqN_E!s(6!^od26E~uXn!%PG(-MLn`wXm@9z*gF`I99dJ)Cu>xh2{+<>R` zv}q%;njip+wTn!XVECkGVDXWhi1N@aUZrpFO%SM-)v6IQNPYHGyCsYF zxXvV%3gT1w0B1L*>b^&0Y=&|B2pf!b5puHA`lk|&hsphfA|fR?!d(8F)ty9txOh+O z(5nr48ip!fx#tHFPM0);vWlOWzIR3OAIJ3?t*g8o6{tyG^O-ZVTskACVJ<2G z2H8B+1%T|E(C3X9AmR(>+>6AZ=}!REC5Uv;;`UfR2{do=D4W9t^1?){%dhY8A@zY4 zUN<0NrzJwGUagBUlgzx^|1vT(9b(X8t~_XtVyBb`CiQ1YYRk}0NE{p!Ii^$Fc>Jv% z7VSX44+#F7{|r@}a~>kDf##uCmpy_&lGZ;ZL86c;OI$=?US1g2ho2>pUstx3r)p4b z-%_OJUv0qx^TI@h+-y1-5tT%fL=X=23&RE7%#oqWJ9MYQPOb1YOGyWT)^!q;4$+E1 zdgo=O?Tiznw_`w1-xF_?-0T~MgZO9sItq{N-vBGo>w~>!WcF93#rVFIcQon#QEAnLCm#syYXEK%RLJfCx<4Xck)s2sm&O(W#;7vU z4EwWD8Os8VkJGkT!mr9aJm84mB+C~!SLOgCa-=VWM$E0ZM!Z}UJ#W^Af)JqhLG@Hk z0XgkOw&ZaAw{LDT*A1mEP(a2HeOLbc=6Zxh*~`zIhJg|jPS;jNb|;eE%al{F9mL%4 zYJYBGdEYL9NaLgXXshD9edz^yOAoa{xe_*SKDhHS_8L*(oe(xv;SfXLBN(kN*s|Hr zks+Hu^?=%RT3sW&~M?|bppS9bRt~VocwI-H^5Mpf8VV{XU}_tCI~c^ZIu}i<~L4q z#I}vO5F&lWdF*v&?0R&I2uuvIvTPM0VjHr4VT(n5NJ?R0WV3X*{8yhq=zt3pZzUGR zn5Xd!ue?)j4E4+jQ}+&8UzpgLC=CT}coj2olXbKp{!Q5$)5`d11eC}2a|7WBB*HH@ zH=6{)Ogf8dgAO_FLAfc;LGFpb`0rjvxR=rr`Un%Y5j<_-lXp}(KL+5Qhf|q(<@tGf zkg&ts9ZNoERC(W2&WYRa0_1GX?VQYw=;f~vS|68r9F632iz+kC@)i)bg5cCeo)P-v z-bWv8H*T7_W(tL;3(bc0mSxNIoOFw?{B?QBsSbtn?*)g`C*q$?D7(51S-fzo ztR2qCLfkoi+R)}6(8eC^OLah0%iv*_^boCExdSN^;g2|f2XHF2dS=9bZVWAa+1$E) z^2yMGXPJifY4_xFyjKQl-I`v36{jn2S?%MI$={o@<~(jZoz_tO4Hdwt_U2zVvyXB9 z5J;!L3cG&Sv(I2S2O%=}&%Dg=Ip&1{3ADx~?;RjjeQu=Y@_kqDo@e-xlRcXui;iQS zggOhwD90sPgpx`nQS8Jw>Vq+Zo=*GNij=@>=PHgT@n7tBzMIOd!inW=ZOD0zpW>|4w0n2?7NgQ0geM~(R()C^1P>mp);wE#Ecpb{burOHH~rO~TDE3S6HD^f zfj$)qE`%#Bz|L2<;tD;76^Ru`MlN*iZ0WHi1w+@v01TvjWVE%}032gbEMON(ss2+D z<@JtwxFdV5K7kB6{g|!qAM`(2R4HqE8j#1YI29|dPx5vEleFGH=`4hQ_jSlau1}GH zd{S844W7SZXfVXqqnlujm>t+F6TKw&>fT$8tV6IzQ!L*2u(M+ zt+V`b{#h})GkzYaw{W z^RY|Lo2@#|*2vCOr^@kWC2oE&Q?$M_Hk2%R=Fh>;cbvTZyU<1!c1FEIq?A$5PQ@mZ zA(XvidHKSZGo;#CL}!0zKRqv)7_WUAlgLQHB&=o}*EYeEVleJ8@1Ba~f#o0-P39UK z>^8_Eg+luL?dm2$;HC)4qI&;q!JwS*xgI2A=XH%xzdlqqD-yy_d5|qkU*hxlHht>U zs&A{Up%Edx%ri^9-Om)xH#G@Tt<=y;2&R;}Hv+)`Sg`RF`_9D}A#zgUyFGZ4TNWMIQ}nU$>^SMlPg>|8|8=4~ z6YIEp=Uc{M9hc0^8KJW27i%oI@SO`=%A;rDmh`YtpW-Vgc8CP!=85F|HGvA{ZyAbW zrXew${{Sjh5C>pGgnfbB@%OICKiSIXRML>HxjeAUASPRg*yn1}@N`Nr5HM{*W=pHY z?@hnhLM1+K(jY9`C$AAbz*b-yQJ``?p|q=9i4k{dX#RXxDhTFDBmmIshJYs9$z<3W!zeNWTR86oB;)AO@OMK=0ttLmWuKOp5^l7qGYoo4qWy9pB#ZovN^i9*N zPOKY*xKgpzvixR+4h%5W#CoD$+jp4h1A)R|LMWdHZzE4{rer_S`tmEccr%}`tS8+v zVf=%Diy5p@kE5q20c|NiKIVhp37d)%dksMJYfrojF7~Y*s_c$CMm34t zZD7Fn_Ldb^0&JmY>VatwE^)dxx#uVFR4J!EBo8jg@n3ab)7oXs%};Fr|B_Eh;9-s* zj>{`Y*SKoS-U$Nq0f{~y;-0?0ul@EDK$TS( z67{C=TFqv!PkeiIY=iGZ^$IWd^hgCyuJSf6#D=#BV7efD3Jw#zTl}NPE3|^&59!3QZmtv$zQl%^LxL1{`eA${5aC*jB!OVKo z1-O8-Nm_dwaD_n^4gs-9V==X zWbjjB($;#aI!vo$HHMdp3={-B{07yuSQ$c>C2CP2&Ib;Jc_~9B4O~@j50>;x@*W2w zxHE4YyB`eIS*e?Edy?K-j*Q>e11N5K0ao}xYE#h+hT3~crDzi*!`JT?8V*Tb6)7!g z`VUZ@08R1~TW&nh4(anbX<^s$gwY)T5BArnKz&uCHDpa6M?ig^FF`fS@v5v2>@D-^ z?8F8btQv$r-31SO_Xfx=C7r$OVyy2h`~2oidl2wZ!`F5|1ezZ9>QA@YgU358P zQn3qCONDXD9xbL_0K9nv0>KMP&yC+@aCKc5kHm=G#I`$_qbft(K6?;7LrBn%oqGG^ zeI}1NhO;1Cun1dA#vt0j1U*4MUY-`t$iW&ao2+`AVX;i~P2ja=$3kA-3f^}%kbiV7 zB>nMMDpZ0mER$Xsko+vMxOQ4%MaEAs&|Wf_9K@<%CK(BY`D~nQX9H6Oh?`H*ZPo+`g~b{5 zd9xq9eqGx+qDJv<-uE-p`7A%al1sI2@a~^d&aT2#_p_8;VLzysGhtGsIKssn{0BI+ zuQ0T+QSak28x8$Gzxl)hu{{bf5n*!P*(~7f0@XNzMzRnQ?PzHi1s21&tppD4gcC*i{~icdA|u zz!CCXCT3ysJla4{zgsRq=0hT?2AYJ`7g%a3P}yc7 zarcNyc~FbZ-??L=tbgovv;2t9rW1#rp2uDO5~@FtoSH1oS4tDDnN_t&0XdRTT@o^*80u5z?O2R(>$32@GPT5tp|R-%tSz{3Vr z*O1GAvogI34!EY{jUml@5h}BP&Z_-3qMV;P{{2Cbu61{n7U}YJAreZ};@AZFwBgCj zvR5)2!AEdn$^yY(PaI84XSja+5iKC!Fu%;7`|D-#BJSqRiSr?jVO{}fSQhvK(mGF` z`Ih)TzpUUZ3jV3ri*bPwU3w_yNYv(;`hlUKn_H^1-}FXPkJ^ZzKW~+T2&ww=?tR ze*NANu<9A})}7lkVQubX2*dE7tE0@cG@$4U`45S?O&Uf)(3MwYrx(LwK$ZEu=0Lvj zp7D2g$Ord5z$Ib^7~y6yxlK-^v7gW_gEju8b^#t?vM{6Q71Mq0&NSfQU~cJ_FW)M+ zr%18=#Opem&Qauhf7h@Mpryl{OqxLLJx-a#D{^cxde81I*~|5|sf>`O;ZpnWt)Bcz zaL}=KJ1OwCpX~6?wH2K%O;6CH9CpJ@S52=&e1UKddPEMvKN0~5Ke{k8z1>s!Pi8Eh z8cDX8r&|@6aw7op9oZ_KD!DcDw^=AS5L=e`x2du6TGktQR?{ZI?m47F#20pKwfYHqg0X1Q^S&aMl?DJ2fS?MWivqB;({Vs8F=nrlW1?TP) zKHlLkxVBW{oZ4@1x*_B1_ym*c#W>zTdq2%ryh$avVDXS6GRe&Me=F6k;tJ`t^jkiU z1kcb0kwH@!Ji=DQhGq70*8=x{6rG7b(~lp=Kbtw`wp`^JwwNna&Kz@On|tI|C^}q2 zQLbig3eAQRp}CTB8 zisU^Bhx_NX!9ZS4b)O)m%3*FDYDADc^A3GG4QA=<^L=dMG>t*|4p8!ZQ8CJ-bG5Iz z54XGuysmbtT_yVfb0u@EgQe`Z$(5sXxNNZSNoTIpqKqxVL?%5RTiRhERTz^X5|&0k zT7$9EYh5AnC#hWAY>da(oY7?&NHLMQ|7q|E{Tw*>a&~E>_5SwRl^{r$k1)I4ARjAU z7Tz149R*?-ZTx@4WAXMDkL#o*IjR6F{^W-QhWN&hy#QO|>N7g4j2*)tc zt!pb8>^HJ12MrzSw`3V~$T*JAKcTX>bywm3to^E0lHv!A>zNH&pUYXiqKHwd zk7D$#%X$1=C~ivlu7G&Y5=r-JM0?l|HuSCiepy-Kam$^ZootUYzvj4Hsdz0hF>8Oc zu~c``CrhbBK0$17d&IPG*IJb7%VVq8l|rNWZfP@&VN`QsQ8>~hE5xZlen%`D6~XrH z9;}p+MIi3ClTZT3`y{^y*qlvAIqvQv(!QL;oJq9XreSI1@$YYZk4yyy1c z{AwD4ZlI-AHgoy~X9fCq;*g{4;a`Mh$D%UJht?B_eGCP!_jfxUUsf^CExAfu zE>uvDi}m9|m9tS@=`K(E*q5mgrj*%dZpEyjm& zAjTP}$DS_ZA|I%kkU%j%*%vj2R_w*ZfwMApYd4rcl_Ox(9LsS~R(cm$$oiqL9l3H@ zu7=I)Cn<1zIvt$OC5=-DzgW0=H|vdZ?{2c>-TFM0%Tqs$3v71?L*@W<|CFE)xLv)C%0Dmf5 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 BtXKd5 literal 0 HcmV?d00001 diff --git a/package.json b/package.json new file mode 100644 index 00000000..b08fb5f8 --- /dev/null +++ b/package.json @@ -0,0 +1,82 @@ +{ + "name": "@pengzhanbo/vuepress-theme-plume", + "version": "1.0.0-beta.3", + "description": "blog theme by vuepress2.x", + "main": "lib/node/index.js", + "types": "lib/node/index.d.ts", + "files": [ + "lib", + "templates", + "tailwind.config.js" + ], + "keywords": [ + "vuepress-next", + "vuepress", + "vuepress-theme" + ], + "author": "pengzhanbo", + "license": "MIT", + "scripts": { + "dev-watch": "yarn clean && concurrently \"yarn copy-watch\" \"yarn tsc-watch\"", + "dev": "vuepress dev example --debug", + "tsc": "tsc -b tsconfig.build.json", + "tsc-watch": "tsc -b tsconfig.dev.json -w", + "clean": "rimraf lib *.tsbuildinfo", + "copy": "cpx \"src/**/*.{d.ts,vue,scss,css,html}\" lib", + "copy-watch": "cpx \"src/**/*.{d.ts,vue,scss,css,html}\" lib -w", + "build": "yarn clean & yarn tsc & yarn copy" + }, + "prettier": "prettier-config-vuepress", + "dependencies": { + "@tailwindcss/typography": "^0.5.2", + "@types/webpack-env": "^1.16.3", + "@vuepress/client": "^2.0.0-beta.35", + "@vuepress/core": "^2.0.0-beta.36", + "@vuepress/plugin-active-header-links": "^2.0.0-beta.36", + "@vuepress/plugin-back-to-top": "^2.0.0-beta.36", + "@vuepress/plugin-container": "^2.0.0-beta.36", + "@vuepress/plugin-git": "^2.0.0-beta.36", + "@vuepress/plugin-medium-zoom": "^2.0.0-beta.36", + "@vuepress/plugin-nprogress": "^2.0.0-beta.36", + "@vuepress/plugin-palette": "^2.0.0-beta.36", + "@vuepress/plugin-prismjs": "^2.0.0-beta.36", + "@vuepress/plugin-theme-data": "^2.0.0-beta.36", + "@vuepress/shared": "^2.0.0-beta.35", + "@vuepress/theme-default": "^2.0.0-beta.36", + "@vuepress/utils": "^2.0.0-beta.35", + "@vueuse/core": "^7.7.1", + "autoprefixer": "^10.4.2", + "chokidar": "^3.5.3", + "concurrently": "^7.0.0", + "cpx2": "^4.2.0", + "dayjs": "^1.10.8", + "eslint": "^8.10.0", + "eslint-config-vuepress": "^3.5.0", + "eslint-config-vuepress-typescript": "^2.5.0", + "gray-matter": "^4.0.3", + "json2yaml": "^1.1.0", + "nanoid": "^3.3.1", + "postcss": "^8.4.8", + "postcss-at-rules-variables": "^0.3.0", + "postcss-each": "^1.1.0", + "postcss-import": "^14.0.2", + "postcss-nested": "^5.0.6", + "postcss-preset-env": "^7.4.2", + "postcss-simple-vars": "^6.0.3", + "prettier": "^2.5.1", + "prettier-config-vuepress": "^1.3.0", + "rimraf": "^3.0.2", + "sass": "^1.49.9", + "tailwindcss": "^3.0.23", + "typescript": "^4.6.2", + "vue": "^3.2.31", + "vue-router": "^4.0.13", + "vuepress": "^2.0.0-beta.36" + }, + "publishConfig": { + "access": "public" + }, + "peerDependencies": { + "vuepress": ">=2.0.0-beta.36" + } +} diff --git a/readme.md b/readme.md new file mode 100644 index 00000000..27229475 --- /dev/null +++ b/readme.md @@ -0,0 +1,81 @@ +# vuepress-theme-plume + +一款基于 [vuepress@next](https://github.com/vuepress/vuepress-next) 制作的简单的博客皮肤。 + +## 安装 +``` sh +npm i @pengzhanbo/vuepress-theme-plume +# or yarn +yarn add @pengzhanbo/vuepress-theme-plume +``` + +## 特性 +- 低配置化,仅需少量的vuepress配置即可使用 +- 通过目录约定生成栏目 + +## 配置 +``` js +// vuepress.config.{js, ts} +// or {sourceDir}/.vuepress/config.{js, ts} +export default { + // ... + theme: path.resolve(__dirname, './lib/node/index.js'), + themeConfig: { + // 首页头部大图 + bannerImg: '/big-banner.jpg', + // 博主头像 + avatarUrl: '/avatar.gif', + // 博主名称 + avatar: '未闻花名', + github: 'https://github.com/', + email: '_@outlook.com', + description: '学习,生活,娱乐,我全都要', + }, +} +``` + +## 编写文章 + +在你的文档目录下,首先创建一个 `README.md` 文件 +``` +--- +home: true +--- +``` + +然后,创建其他的目录,格式如下 +``` sh +\d+\.[^]+ +``` +比如: `1.前端`, `2.web` 的形式 +主题会解析目录名称,分解为`{ type, name }` 的形式,并根据 type作为排序的依据。 +再在目录中创建并编写文章即可。 + +建议首先启动 vuepress 本地开发环境后,再创建新文章 + +首次创建,将会在文档头部自动生成文档配置。 +``` md +--- +title: 组件 +createTime: 2022/03/06 09:41:52 +permalink: /post/yiobrmp0 +author: pengzhanbo +tags: + - react + - 组件 +--- +``` + +- `title` 根据文档名称生成 +- `createTime` 根据文件创建时间生成 +- `author` 根据 package.json 中的字段生成 +- `permalink` 作为文章的永久链接,通过 nanoid 生成唯一链接,可自定义 +- `tags` 文章标签,自定义 + + +## 说明 + +- 由于 vuepress@next 目前尚在 beta开发阶段,随时可能发生变化,本主题可能在未来的版本中无法正常使用。 +- 在未来将会持续关注 vuepress@next 开发进度,持续更新维护本主题 +- 本主题尚处于开发阶段,目前仅实现了基础的blog功能,未来会继续添加更多的功能 +- 欢迎各位尝试使用 vuepress@next 和 本主题 diff --git a/src/client/clientAppEnhanceFiles.ts b/src/client/clientAppEnhanceFiles.ts new file mode 100644 index 00000000..74c3b246 --- /dev/null +++ b/src/client/clientAppEnhanceFiles.ts @@ -0,0 +1,7 @@ +import { defineClientAppEnhance } from '@vuepress/client' +import './styles/tailwind.css' +import './styles/index.css' + +export default defineClientAppEnhance(({ app, router, siteData }) => { + // do +}) diff --git a/src/client/clientAppSetup.ts b/src/client/clientAppSetup.ts new file mode 100644 index 00000000..6b37c869 --- /dev/null +++ b/src/client/clientAppSetup.ts @@ -0,0 +1,6 @@ +import { defineClientAppSetup } from '@vuepress/client' +// import { setupDarkMode } from './composables' +import './styles/index.css' +export default defineClientAppSetup(() => { + // setupDarkMode() +}) diff --git a/src/client/component/Archives.vue b/src/client/component/Archives.vue new file mode 100644 index 00000000..18c1272d --- /dev/null +++ b/src/client/component/Archives.vue @@ -0,0 +1,32 @@ + + diff --git a/src/client/component/Category.vue b/src/client/component/Category.vue new file mode 100644 index 00000000..01a437f1 --- /dev/null +++ b/src/client/component/Category.vue @@ -0,0 +1,18 @@ + + diff --git a/src/client/component/CategoryGroup.vue b/src/client/component/CategoryGroup.vue new file mode 100644 index 00000000..f1088924 --- /dev/null +++ b/src/client/component/CategoryGroup.vue @@ -0,0 +1,57 @@ + + diff --git a/src/client/component/Home.vue b/src/client/component/Home.vue new file mode 100644 index 00000000..4ef2a45d --- /dev/null +++ b/src/client/component/Home.vue @@ -0,0 +1,21 @@ + + diff --git a/src/client/component/Icon.vue b/src/client/component/Icon.vue new file mode 100644 index 00000000..abefabbc --- /dev/null +++ b/src/client/component/Icon.vue @@ -0,0 +1,57 @@ + + diff --git a/src/client/component/NavBar.vue b/src/client/component/NavBar.vue new file mode 100644 index 00000000..a8b06c9f --- /dev/null +++ b/src/client/component/NavBar.vue @@ -0,0 +1,41 @@ + + + diff --git a/src/client/component/Post.vue b/src/client/component/Post.vue new file mode 100644 index 00000000..f80b742f --- /dev/null +++ b/src/client/component/Post.vue @@ -0,0 +1,16 @@ + + diff --git a/src/client/component/PostList.vue b/src/client/component/PostList.vue new file mode 100644 index 00000000..0cfa3ba8 --- /dev/null +++ b/src/client/component/PostList.vue @@ -0,0 +1,41 @@ + + + diff --git a/src/client/component/PostMeta.vue b/src/client/component/PostMeta.vue new file mode 100644 index 00000000..f2d4b3a3 --- /dev/null +++ b/src/client/component/PostMeta.vue @@ -0,0 +1,64 @@ + + diff --git a/src/client/component/RightSideBar.vue b/src/client/component/RightSideBar.vue new file mode 100644 index 00000000..26d5b1fe --- /dev/null +++ b/src/client/component/RightSideBar.vue @@ -0,0 +1,35 @@ + + diff --git a/src/client/component/TageSidebar.vue b/src/client/component/TageSidebar.vue new file mode 100644 index 00000000..bcd6e1fa --- /dev/null +++ b/src/client/component/TageSidebar.vue @@ -0,0 +1,40 @@ + + diff --git a/src/client/component/Tags.vue b/src/client/component/Tags.vue new file mode 100644 index 00000000..0c90be98 --- /dev/null +++ b/src/client/component/Tags.vue @@ -0,0 +1,14 @@ + + diff --git a/src/client/component/ToggleDarkModeButton.vue b/src/client/component/ToggleDarkModeButton.vue new file mode 100644 index 00000000..c854e6ea --- /dev/null +++ b/src/client/component/ToggleDarkModeButton.vue @@ -0,0 +1,57 @@ + + + diff --git a/src/client/component/ToggleSidebarButton.vue b/src/client/component/ToggleSidebarButton.vue new file mode 100644 index 00000000..791e5745 --- /dev/null +++ b/src/client/component/ToggleSidebarButton.vue @@ -0,0 +1,24 @@ + + + diff --git a/src/client/composables/index.ts b/src/client/composables/index.ts new file mode 100644 index 00000000..c146b547 --- /dev/null +++ b/src/client/composables/index.ts @@ -0,0 +1,7 @@ +export * from './useDarkMode' +export * from './useNavLink' +export * from './useResolveRouteWithRedirect' +export * from './useScrollPromise' +export * from './useSidebarItems' +export * from './useThemeData' +export * from './useCategoryList' diff --git a/src/client/composables/useArchives.ts b/src/client/composables/useArchives.ts new file mode 100644 index 00000000..a3647774 --- /dev/null +++ b/src/client/composables/useArchives.ts @@ -0,0 +1,34 @@ +import * as dayjs from 'dayjs' +import { ref } from 'vue' +import type { Ref } from 'vue' +import type { PostItemIndex } from '../../shared' +import { usePostIndex } from './usePostIndex' + +export interface ArchivesItem { + label: string | number + postList: PostItemIndex[] +} + +export type Archives = ArchivesItem[] + +export type ArchivesRef = Ref + +const ArchivesListRaw: Archives = [] + +usePostIndex().value.forEach((post) => { + const createTime = dayjs(post.frontmatter.createTime) + const year = createTime.year() + let current = ArchivesListRaw.find((arch) => arch.label === year) + if (!current) { + current = { + label: year, + postList: [], + } + ArchivesListRaw.push(current) + } + current.postList.push(post) +}) + +export const archivesList: ArchivesRef = ref(ArchivesListRaw) + +export const useArchivesList = (): ArchivesRef => archivesList diff --git a/src/client/composables/useCategoryList.ts b/src/client/composables/useCategoryList.ts new file mode 100644 index 00000000..202c6bfa --- /dev/null +++ b/src/client/composables/useCategoryList.ts @@ -0,0 +1,61 @@ +import { ref } from 'vue' +import type { Ref } from 'vue' +import type { PostItemIndex } from '../../shared' +import { usePostIndex } from './usePostIndex' + +export interface CategoryItem { + label: string + type: string | number + children: CategoryList + postList: PostItemIndex[] +} + +export type CategoryList = CategoryItem[] + +export type CategoryListRef = Ref + +const categoriesRaw: CategoryList = [] + +usePostIndex().value.forEach((post) => { + const category = post.category + let index = 1 + let cate = category[0] + let first = categoriesRaw.find((c) => c.type === cate.type) + if (!first) { + first = { + label: cate.name, + type: cate.type, + children: [], + postList: [], + } + categoriesRaw.push(first) + } + if (category.length === 1) { + first.postList.push(post) + } + let children = first.children + while ((cate = category[index])) { + let current = children.find((c) => c.type === cate.type) + if (!current) { + current = { + label: cate.name, + type: cate.type, + children: [], + postList: [], + } + } + children.push(current) + children = current.children + if (index === category.length - 1) { + current.postList.push(post) + } + index++ + } +}) + +export const categoryList: CategoryListRef = ref( + categoriesRaw.sort((left, right) => { + return left.type > right.type ? 1 : -1 + }) +) +export const useCategoryList = (): CategoryListRef => categoryList diff --git a/src/client/composables/useDarkMode.ts b/src/client/composables/useDarkMode.ts new file mode 100644 index 00000000..f1fc59cd --- /dev/null +++ b/src/client/composables/useDarkMode.ts @@ -0,0 +1,66 @@ +import { usePreferredDark, useStorage } from '@vueuse/core' +import { computed, inject, onMounted, onUnmounted, provide, watch } from 'vue' +import type { InjectionKey, WritableComputedRef } from 'vue' +import { useThemeLocaleData } from '.' + +export type DarkModeRef = WritableComputedRef + +export const darkModeSymbol: InjectionKey = Symbol('') +/** + * Inject dark mode global computed + */ +export const useDarkMode = (): DarkModeRef => { + const isDarkMode = inject(darkModeSymbol) + if (!isDarkMode) { + throw new Error('useDarkMode() is called without provider.') + } + return isDarkMode +} + +/** + * Create dark mode ref and provide as global computed in setup + */ +export const setupDarkMode = (): void => { + const themeLocale = useThemeLocaleData() + const isDarkPreferred = usePreferredDark() + const darkStorage = useStorage('vuepress-color-scheme', 'auto') + + const isDarkMode = computed({ + get() { + // disable dark mode + if (!themeLocale.value.darkMode) { + return false + } + // auto detected from prefers-color-scheme + if (darkStorage.value === 'auto') { + return isDarkPreferred.value + } + // storage value + return darkStorage.value === 'dark' + }, + set(val) { + if (val === isDarkPreferred.value) { + darkStorage.value = 'auto' + } else { + darkStorage.value = val ? 'dark' : 'light' + } + }, + }) + provide(darkModeSymbol, isDarkMode) + + updateHtmlDarkClass(isDarkMode) +} + +export const updateHtmlDarkClass = (isDarkMode: DarkModeRef): void => { + const update = (value = isDarkMode.value): void => { + // set `class="dark"` on `` element + const htmlEl = window?.document.querySelector('html') + htmlEl?.classList.toggle('dark', value) + } + + onMounted(() => { + watch(isDarkMode, update, { immediate: true }) + }) + + onUnmounted(() => update()) +} diff --git a/src/client/composables/useNavLink.ts b/src/client/composables/useNavLink.ts new file mode 100644 index 00000000..4407f3cd --- /dev/null +++ b/src/client/composables/useNavLink.ts @@ -0,0 +1,23 @@ +import type { NavLink } from '../../shared' +import { useResolveRouteWithRedirect } from './useResolveRouteWithRedirect' + +declare module 'vue-router' { + interface RouteMeta { + title?: string + } +} + +/** + * Resolve NavLink props from string + * + * @example + * - Input: '/README.md' + * - Output: { text: 'Home', link: '/' } + */ +export const useNavLink = (item: string): NavLink => { + const resolved = useResolveRouteWithRedirect(item) + return { + text: resolved.meta.title || item, + link: resolved.name === '404' ? item : resolved.fullPath, + } +} diff --git a/src/client/composables/usePostIndex.ts b/src/client/composables/usePostIndex.ts new file mode 100644 index 00000000..fd877b0e --- /dev/null +++ b/src/client/composables/usePostIndex.ts @@ -0,0 +1,16 @@ +import { postIndex as postListRaw } from '@internal/postIndex.js' +import { ref } from 'vue' +import type { Ref } from 'vue' +import type { PostIndex } from '../../shared' + +export type PostIndexRef = Ref + +export const postIndex: PostIndexRef = ref(postListRaw) + +export const usePostIndex = (): PostIndexRef => postIndex + +if ((import.meta as any).hot) { + __VUE_HMR_RUNTIME__.updatePostIndex = (data: PostIndex) => { + postIndex.value = data + } +} diff --git a/src/client/composables/useResolveRouteWithRedirect.ts b/src/client/composables/useResolveRouteWithRedirect.ts new file mode 100644 index 00000000..297b0e95 --- /dev/null +++ b/src/client/composables/useResolveRouteWithRedirect.ts @@ -0,0 +1,28 @@ +import { isFunction, isString } from '@vuepress/shared' +import { useRouter } from 'vue-router' +import type { Router } from 'vue-router' + +/** + * Resolve a route with redirection + */ +export const useResolveRouteWithRedirect = ( + ...args: Parameters +): ReturnType => { + const router = useRouter() + const route = router.resolve(...args) + const lastMatched = route.matched[route.matched.length - 1] + if (!lastMatched?.redirect) { + return route + } + const { redirect } = lastMatched + const resolvedRedirect = isFunction(redirect) ? redirect(route) : redirect + const resolvedRedirectObj = isString(resolvedRedirect) + ? { path: resolvedRedirect } + : resolvedRedirect + return useResolveRouteWithRedirect({ + hash: route.hash, + query: route.query, + params: route.params, + ...resolvedRedirectObj, + }) +} diff --git a/src/client/composables/useScrollPromise.ts b/src/client/composables/useScrollPromise.ts new file mode 100644 index 00000000..0405f8c7 --- /dev/null +++ b/src/client/composables/useScrollPromise.ts @@ -0,0 +1,22 @@ +export interface ScrollPromise { + wait(): Promise | null + pending: () => void + resolve: () => void +} + +let promise: Promise | null = null +let promiseResolve: (() => void) | null = null + +const scrollPromise: ScrollPromise = { + wait: () => promise, + pending: () => { + promise = new Promise((resolve) => (promiseResolve = resolve)) + }, + resolve: () => { + promiseResolve?.() + promise = null + promiseResolve = null + }, +} + +export const useScrollPromise = (): ScrollPromise => scrollPromise diff --git a/src/client/composables/useSidebarItems.ts b/src/client/composables/useSidebarItems.ts new file mode 100644 index 00000000..5f526774 --- /dev/null +++ b/src/client/composables/useSidebarItems.ts @@ -0,0 +1,179 @@ +import { usePageData, usePageFrontmatter } from '@vuepress/client' +import type { PageHeader } from '@vuepress/client' +import type { PageFrontmatter } from '@vuepress/shared' +import { + isArray, + isPlainObject, + isString, + resolveLocalePath, +} from '@vuepress/shared' +import { computed, inject, provide } from 'vue' +import type { ComputedRef, InjectionKey } from 'vue' +import { useRoute } from 'vue-router' +import type { + PlumeThemeData, + PlumeThemePostPageFrontmatter, + ResolvedSidebarItem, + SidebarConfigArray, + SidebarConfigObject, + SidebarItem, +} from '../../shared' +import { useNavLink, useThemeLocaleData } from '.' + +export type SidebarItemsRef = ComputedRef + +export const sidebarItemsSymbol: InjectionKey = + Symbol('sidebarItems') + +/** + * Inject sidebar items global computed + */ +export const useSidebarItems = (): SidebarItemsRef => { + const sidebarItems = inject(sidebarItemsSymbol) + if (!sidebarItems) { + throw new Error('useSidebarItems() is called without provider.') + } + return sidebarItems +} + +/** + * Create sidebar items ref and provide as global computed in setup + */ +export const setupSidebarItems = (): void => { + const themeLocale = useThemeLocaleData() + const frontmatter = usePageFrontmatter() + const sidebarItems = computed(() => + resolveSidebarItems(frontmatter.value, themeLocale.value) + ) + provide(sidebarItemsSymbol, sidebarItems) +} + +/** + * Resolve sidebar items global computed + * + * It should only be resolved and provided once + */ +export const resolveSidebarItems = ( + frontmatter: PageFrontmatter, + themeLocale: PlumeThemeData +): ResolvedSidebarItem[] => { + // get sidebar config from frontmatter > themeConfig + const sidebarConfig = frontmatter.sidebar ?? themeLocale.sidebar ?? 'auto' + const sidebarDepth = frontmatter.sidebarDepth ?? themeLocale.sidebarDepth ?? 2 + + // resolve sidebar items according to the config + if (frontmatter.home || sidebarConfig === false) { + return [] + } + + if (sidebarConfig === 'auto') { + return resolveAutoSidebarItems(sidebarDepth) + } + + if (isArray(sidebarConfig)) { + return resolveArraySidebarItems(sidebarConfig, sidebarDepth) + } + + if (isPlainObject(sidebarConfig)) { + return resolveMultiSidebarItems(sidebarConfig, sidebarDepth) + } + + return [] +} + +/** + * Util to transform page header to sidebar item + */ +export const headerToSidebarItem = ( + header: PageHeader, + sidebarDepth: number +): ResolvedSidebarItem => ({ + text: header.title, + link: `#${header.slug}`, + children: headersToSidebarItemChildren(header.children, sidebarDepth), +}) + +export const headersToSidebarItemChildren = ( + headers: PageHeader[], + sidebarDepth: number +): ResolvedSidebarItem[] => + sidebarDepth > 0 + ? headers.map((header) => headerToSidebarItem(header, sidebarDepth - 1)) + : [] + +/** + * Resolve sidebar items if the config is `auto` + */ +export const resolveAutoSidebarItems = ( + sidebarDepth: number +): ResolvedSidebarItem[] => { + const page = usePageData() + + return [ + { + text: page.value.title, + children: headersToSidebarItemChildren(page.value.headers, sidebarDepth), + }, + ] +} + +/** + * Resolve sidebar items if the config is an array + */ +export const resolveArraySidebarItems = ( + sidebarConfig: SidebarConfigArray, + sidebarDepth: number +): ResolvedSidebarItem[] => { + const route = useRoute() + const page = usePageData() + + const handleChildItem = ( + item: ResolvedSidebarItem | SidebarItem | string + ): ResolvedSidebarItem => { + let childItem: ResolvedSidebarItem + if (isString(item)) { + childItem = useNavLink(item) + } else { + childItem = item as ResolvedSidebarItem + } + + if (childItem.children) { + return { + ...childItem, + children: childItem.children.map((item) => handleChildItem(item)), + } + } + + // if the sidebar item is current page and children is not set + // use headers of current page as children + if (childItem.link === route.path) { + // skip h1 header + const headers = + page.value.headers[0]?.level === 1 + ? page.value.headers[0].children + : page.value.headers + return { + ...childItem, + children: headersToSidebarItemChildren(headers, sidebarDepth), + } + } + + return childItem + } + + return sidebarConfig.map((item) => handleChildItem(item)) +} + +/** + * Resolve sidebar items if the config is a key -> value (path-prefix -> array) object + */ +export const resolveMultiSidebarItems = ( + sidebarConfig: SidebarConfigObject, + sidebarDepth: number +): ResolvedSidebarItem[] => { + const route = useRoute() + const sidebarPath = resolveLocalePath(sidebarConfig, route.path) + const matchedSidebarConfig = sidebarConfig[sidebarPath] ?? [] + + return resolveArraySidebarItems(matchedSidebarConfig, sidebarDepth) +} diff --git a/src/client/composables/useTages.ts b/src/client/composables/useTages.ts new file mode 100644 index 00000000..8e4e0583 --- /dev/null +++ b/src/client/composables/useTages.ts @@ -0,0 +1,34 @@ +import type { Ref } from 'vue' +import { ref } from 'vue' +import { usePostIndex } from './usePostIndex' + +export type TagsItem = { + tag: string + count: number +} + +export type Tags = TagsItem[] + +export type TagsRef = Ref + +const tagsObj: Record = {} +usePostIndex().value.forEach((post) => { + ;(post.frontmatter.tags || []).forEach((t) => { + if (!tagsObj[t]) { + tagsObj[t] = 1 + } else { + tagsObj[t] += 1 + } + }) +}) + +const tagsRaw: Tags = Object.keys(tagsObj) + .map((key) => ({ + tag: key, + count: tagsObj[key], + })) + .sort((left, right) => (left.count <= right.count ? 1 : -1)) + +export const tags: TagsRef = ref(tagsRaw) + +export const useTags = (): TagsRef => tags diff --git a/src/client/composables/useThemeData.ts b/src/client/composables/useThemeData.ts new file mode 100644 index 00000000..bc754a01 --- /dev/null +++ b/src/client/composables/useThemeData.ts @@ -0,0 +1,14 @@ +import { + useThemeData as _useThemeData, + useThemeLocaleData as _useThemeLocaleData, +} from '@vuepress/plugin-theme-data/lib/client' +import type { + ThemeDataRef, + ThemeLocaleDataRef, +} from '@vuepress/plugin-theme-data/lib/client' +import type { PlumeThemeData } from '../../shared' + +export const useThemeData = (): ThemeDataRef => + _useThemeData() +export const useThemeLocaleData = (): ThemeLocaleDataRef => + _useThemeLocaleData() diff --git a/src/client/layouts/404.vue b/src/client/layouts/404.vue new file mode 100644 index 00000000..cd7bca6c --- /dev/null +++ b/src/client/layouts/404.vue @@ -0,0 +1,8 @@ + + + diff --git a/src/client/layouts/Layout.vue b/src/client/layouts/Layout.vue new file mode 100644 index 00000000..66d98363 --- /dev/null +++ b/src/client/layouts/Layout.vue @@ -0,0 +1,31 @@ + + + diff --git a/src/client/shim.d.ts b/src/client/shim.d.ts new file mode 100644 index 00000000..bf554924 --- /dev/null +++ b/src/client/shim.d.ts @@ -0,0 +1,5 @@ +declare module '*.vue' { + import type { ComponentOptions } from 'vue' + const comp: ComponentOptions + export default comp +} diff --git a/src/client/styles/archives.css b/src/client/styles/archives.css new file mode 100644 index 00000000..f48e52d9 --- /dev/null +++ b/src/client/styles/archives.css @@ -0,0 +1,34 @@ +.archives-list-wrapper { + @apply w-full max-w-6xl m-auto pt-20; + + + & .archives-list-container { + @apply p-5 bg-white rounded-md mb-5 shadow-sm; + } + + & h2 { + @apply text-slate-800 text-4xl py-5 pl-5 bg-white shadow-sm rounded-md mb-5; + } + + & h3,h4 { + @apply text-2xl pb-4 text-slate-500; + + & span { + @apply ml-3 ; + } + } + + & .archives-item { + @apply flex justify-start items-center; + @apply h-9 text-xl text-slate-400; + + & span { + @apply mr-5; + } + + & a { + @apply text-slate-500 font-bold transition-all; + @apply hover:underline hover:text-slate-600; + } + } +} diff --git a/src/client/styles/arrow.css b/src/client/styles/arrow.css new file mode 100644 index 00000000..81ba3b85 --- /dev/null +++ b/src/client/styles/arrow.css @@ -0,0 +1,24 @@ + +@custom-media --min-viewprot (min-width: 719px); + +@media (--min-viewprot) { + ::-webkit-scrollbar{ + width:6px; + height:5px; + } + ::-webkit-scrollbar-track-piece{ + background-color:rgba(0,0,0,.15); + border-radius: 3px; + } + ::-webkit-scrollbar-thumb:vertical{ + height:5px; + background-color:rgba(0,0,0,.28); + border-radius: 3px; + } + ::-webkit-scrollbar-thumb:horizontal{ + width:5px; + background-color:rgba(0,0,0,.28); + border-radius: 3px; + } +} + diff --git a/src/client/styles/category.css b/src/client/styles/category.css new file mode 100644 index 00000000..cc7363d2 --- /dev/null +++ b/src/client/styles/category.css @@ -0,0 +1,52 @@ +.category-wrapper { + @apply pt-20; + + & .category-container { + @apply w-full max-w-6xl m-auto shadow-sm mb-10; + } + + & .category-header { + @apply text-slate-800 text-4xl py-5 pl-5 bg-white shadow-sm rounded-md mb-5; + } +} + +.category-group-wrapper { + @apply pt-5 pl-5 bg-white shadow-sm rounded-md mb-5 pr-5 pb-5; + + & & { + @apply shadow-none mb-0; + } + & h2 { + @apply text-3xl pb-4 mb-3; + + & span { + @apply ml-5; + } + } + + & h3,h4 { + @apply text-2xl pb-4 text-slate-500; + + & span { + @apply ml-3 ; + } + } + + & h5, h6 { + @apply text-xl pb-3; + + & span { + @apply ml-2; + } + } + + & .category-group-item { + @apply flex justify-start items-center; + @apply h-9 text-xl text-slate-400; + + & a { + @apply text-slate-500 font-bold transition-all; + @apply hover:underline hover:text-slate-600; + } + } +} diff --git a/src/client/styles/code-group.css b/src/client/styles/code-group.css new file mode 100644 index 00000000..24b37435 --- /dev/null +++ b/src/client/styles/code-group.css @@ -0,0 +1,69 @@ +/* @import '_variables'; */ + +/** + * code-group + */ +.code-group__nav { + margin-top: 0.85rem; + /* // 2 * margin + border-radius of
 tag */
+  margin-bottom: calc(-1.7rem - 6px);
+  padding-bottom: calc(1.7rem - 6px);
+  padding-left: 10px;
+  padding-top: 10px;
+  border-top-left-radius: 6px;
+  border-top-right-radius: 6px;
+  background-color: var(--code-bg-color);
+}
+
+.code-group__ul {
+  margin: auto 0;
+  padding-left: 0;
+  display: inline-flex;
+  list-style: none;
+}
+
+.code-group__nav-tab {
+  border: 0;
+  padding: 5px;
+  cursor: pointer;
+  background-color: transparent;
+  font-size: 0.85em;
+  line-height: 1.4;
+  color: rgba(255, 255, 255, 0.9);
+  font-weight: 600;
+}
+
+.code-group__nav-tab:focus {
+  outline: none;
+}
+
+.code-group__nav-tab:focus-visible {
+  outline: 1px solid rgba(255, 255, 255, 0.9);
+}
+
+.code-group__nav-tab-active {
+  border-bottom: var(--c-brand) 1px solid;
+}
+
+@media (max-width: $MQMobileNarrow) {
+  .code-group__nav {
+    margin-left: -1.5rem;
+    margin-right: -1.5rem;
+    border-radius: 0;
+  }
+}
+
+/**
+ * code-group-item
+ */
+.code-group-item {
+  display: none;
+}
+
+.code-group-item__active {
+  display: block;
+}
+
+.code-group-item > pre {
+  background-color: orange;
+}
diff --git a/src/client/styles/code.css b/src/client/styles/code.css
new file mode 100644
index 00000000..a624b521
--- /dev/null
+++ b/src/client/styles/code.css
@@ -0,0 +1,265 @@
+/* @import '_variables'; */
+
+/* =============================== */
+/* Forked and modified from prismjs/themes/prism-tomorrow.css */
+
+code[class*='language-'],
+pre[class*='language-'] {
+  color: #ccc;
+  background: none;
+  font-family: var(--font-family-code);
+  font-size: 1em;
+  text-align: left;
+  white-space: pre;
+  word-spacing: normal;
+  word-break: normal;
+  word-wrap: normal;
+  line-height: 1.5;
+  background-color: none;
+
+  -moz-tab-size: 4;
+  -o-tab-size: 4;
+  tab-size: 4;
+
+  -webkit-hyphens: none;
+  -moz-hyphens: none;
+  -ms-hyphens: none;
+  hyphens: none;
+}
+
+/* Code blocks */
+pre[class*='language-'] {
+  padding: 1em;
+  margin: 0.5em 0;
+  overflow: auto;
+}
+
+:not(pre) > code[class*='language-'],
+pre[class*='language-'] {
+  background: #2d2d2d;
+}
+
+/* Inline code */
+:not(pre) > code[class*='language-'] {
+  padding: 0.1em;
+  border-radius: 0.3em;
+  white-space: normal;
+}
+
+.token.comment,
+.token.block-comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+  color: #999;
+}
+
+.token.punctuation {
+  color: #ccc;
+}
+
+.token.tag,
+.token.attr-name,
+.token.namespace,
+.token.deleted {
+  color: #ec5975;
+}
+
+.token.function-name {
+  color: #6196cc;
+}
+
+.token.boolean,
+.token.number,
+.token.function {
+  color: #f08d49;
+}
+
+.token.property,
+.token.class-name,
+.token.constant,
+.token.symbol {
+  color: #f8c555;
+}
+
+.token.selector,
+.token.important,
+.token.atrule,
+.token.keyword,
+.token.builtin {
+  color: #cc99cd;
+}
+
+.token.string,
+.token.char,
+.token.attr-value,
+.token.regex,
+.token.variable {
+  color: #7ec699;
+}
+
+.token.operator,
+.token.entity,
+.token.url {
+  color: #67cdcc;
+}
+
+.token.important,
+.token.bold {
+  font-weight: bold;
+}
+.token.italic {
+  font-style: italic;
+}
+
+.token.entity {
+  cursor: help;
+}
+
+.token.inserted {
+  color: #3eaf7c;
+}
+
+/* =============================== */
+
+.post-content{
+  pre,
+  pre[class*='language-'] {
+    line-height: 1.4;
+    padding: 1.3rem 1.5rem;
+    margin: 0.85rem 0;
+    border-radius: 6px;
+    overflow: auto;
+
+    code {
+      color: #fff;
+      padding: 0;
+      background-color: transparent;
+      border-radius: 0;
+      overflow-wrap: unset;
+      line-height: 1.77;
+      -webkit-font-smoothing: auto;
+      -moz-osx-font-smoothing: auto;
+    }
+  }
+
+  .line-number {
+    font-family: var(--font-family-code);
+  }
+}
+
+div[class*='language-'] {
+  position: relative;
+  background-color: var(--code-bg-color);
+  border-radius: 6px;
+
+  &::before {
+    position: absolute;
+    z-index: 3;
+    top: 0.8em;
+    right: 1em;
+    font-size: 0.75rem;
+    color: var(--code-ln-color);
+  }
+
+  pre,
+  pre[class*='language-'] {
+    background: transparent !important;
+    position: relative;
+    z-index: 1;
+  }
+
+  .highlight-lines {
+    user-select: none;
+    padding-top: 1.3rem;
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    line-height: 1.4;
+
+    .highlight-line {
+      background-color: var(--code-hl-bg-color);
+    }
+  }
+
+  &:not(.line-numbers-mode) {
+    .line-numbers {
+      display: none;
+    }
+  }
+
+  &.line-numbers-mode {
+    .highlight-lines .highlight-line {
+      position: relative;
+
+      &::before {
+        content: ' ';
+        position: absolute;
+        z-index: 2;
+        left: 0;
+        top: 0;
+        display: block;
+        width: var(--code-ln-wrapper-width);
+        height: 100%;
+      }
+    }
+
+    pre {
+      margin-left: var(--code-ln-wrapper-width);
+      padding-left: 1rem;
+      vertical-align: middle;
+    }
+
+    .line-numbers {
+      position: absolute;
+      top: 0;
+      width: var(--code-ln-wrapper-width);
+      text-align: center;
+      color: var(--code-ln-color);
+      padding-top: 1.25rem;
+      line-height: 1.4;
+
+      br {
+        user-select: none;
+      }
+
+      .line-number {
+        position: relative;
+        z-index: 3;
+        user-select: none;
+        font-size: 0.85em;
+        line-height: 0;
+      }
+    }
+
+    &::after {
+      content: '';
+      position: absolute;
+      top: 0;
+      left: 0;
+      width: var(--code-ln-wrapper-width);
+      height: 100%;
+      border-radius: 6px 0 0 6px;
+      border-right: 1px solid var(--code-hl-bg-color);
+    }
+  }
+}
+
+@each $lang in c, cpp, cs, css, dart, docker, fs, go, html, java, js, json, kt, less, makefile, md, php, py, rb, rs, sass, scss, sh, styl, ts, toml, vue, yml {
+  div[class*='language-'].ext-$(lang) {
+    &:before {
+      content: '$(lang)';
+    }
+  }
+}
+
+/* narrow mobile */
+@media (max-width: 419px) {
+  .post-content {
+    div[class*='language-'] {
+      margin: 0.85rem -1.5rem;
+      border-radius: 0;
+    }
+  }
+}
diff --git a/src/client/styles/home.css b/src/client/styles/home.css
new file mode 100644
index 00000000..4dc35762
--- /dev/null
+++ b/src/client/styles/home.css
@@ -0,0 +1,40 @@
+.home-wrapper {
+
+  @apply w-full min-h-screen pt-14;
+
+  & .home-banner {
+    @apply flex justify-center items-center h-80 m-0 bg-gray-200 bg-no-repeat bg-cover bg-top;
+  }
+}
+
+.home-container {
+  @apply flex justify-start items-start w-full max-w-6xl m-auto pt-5;
+}
+
+.right-sidebar-wrapper {
+  @apply  ml-5 w-80;
+
+  & .profile-wrapper {
+    @apply bg-white shadow-sm hover:shadow-md transition-shadow p-5 rounded-md mb-5;
+
+    & .profile-link {
+      @apply flex justify-center items-center pt-3;
+    }
+    & img {
+      @apply w-2/3 m-auto;
+    }
+
+    & a {
+      @apply mx-2 text-slate-500;
+    }
+
+    & h3 {
+      @apply text-center pt-3;
+    }
+
+    & p {
+      @apply pt-2 text-gray-500 text-center;
+    }
+  }
+}
+
diff --git a/src/client/styles/index.css b/src/client/styles/index.css
new file mode 100644
index 00000000..cfa50e0b
--- /dev/null
+++ b/src/client/styles/index.css
@@ -0,0 +1,14 @@
+@import 'vars';
+@import 'vars-dark';
+
+@import './normalize';
+
+@import './arrow';
+@import './navBar';
+@import './home';
+@import './post';
+@import './category';
+@import './archives';
+@import './tags';
+@import './code';
+@import './code-group';
diff --git a/src/client/styles/navBar.css b/src/client/styles/navBar.css
new file mode 100644
index 00000000..77af7ff3
--- /dev/null
+++ b/src/client/styles/navBar.css
@@ -0,0 +1,7 @@
+.navbar-wrapper {
+  @apply fixed top-0 left-0 w-full h-14 bg-white shadow-md z-50 flex justify-between items-center px-10;
+
+  & .nav-link {
+    @apply ml-8 text-slate-600 font-bold;
+  }
+}
diff --git a/src/client/styles/normalize.css b/src/client/styles/normalize.css
new file mode 100644
index 00000000..4ba88262
--- /dev/null
+++ b/src/client/styles/normalize.css
@@ -0,0 +1,177 @@
+html,
+body {
+  padding: 0;
+  margin: 0;
+  @apply bg-gray-100;
+  transition: background-color var(--t-color);
+}
+
+html.dark {
+  color-scheme: dark;
+}
+
+body {
+  font-family: var(--font-family);
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  font-size: 16px;
+  color: var(--c-text);
+}
+
+*,
+*::after,
+*::before {
+  box-sizing: border-box;
+}
+
+a {
+  font-weight: 500;
+  color: var(--c-text-accent);
+  text-decoration: none;
+  overflow-wrap: break-word;
+}
+
+p a code {
+  font-weight: 400;
+  color: var(--c-text-accent);
+}
+
+kbd {
+  font-family: var(--font-family-code);
+  color: var(--c-text);
+  background: var(--c-bg-lighter);
+  border: solid 0.15rem var(--c-border-dark);
+  border-bottom: solid 0.25rem var(--c-border-dark);
+  border-radius: 0.15rem;
+  padding: 0 0.15em;
+}
+
+code {
+  font-family: var(--font-family-code);
+  color: var(--c-text-lighter);
+  padding: 0.25rem 0.5rem;
+  margin: 0;
+  font-size: 0.85em;
+  border-radius: 3px;
+  overflow-wrap: break-word;
+  transition: background-color var(--t-color);
+}
+
+blockquote {
+  font-size: 1rem;
+  color: var(--c-text-quote);
+  border-left: 0.2rem solid var(--c-border-dark);
+  margin: 1rem 0;
+  padding: 0.25rem 0 0.25rem 1rem;
+
+  & > p {
+    margin: 0;
+  }
+}
+
+ul,
+ol {
+  padding-left: 1.2em;
+}
+
+strong {
+  font-weight: 600;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+  font-weight: 600;
+  line-height: 1.25;
+
+  &:focus-visible {
+    outline: none;
+  }
+
+  &:hover .header-anchor {
+    opacity: 1;
+  }
+}
+
+h1 {
+  font-size: 2.2rem;
+}
+
+h2 {
+  font-size: 1.65rem;
+  padding-bottom: 0.3rem;
+  border-bottom: 1px solid var(--c-border);
+  transition: border-color var(--t-color);
+}
+
+h3 {
+  font-size: 1.35rem;
+}
+
+h4 {
+  font-size: 1.15rem;
+}
+
+h5 {
+  font-size: 1.05rem;
+}
+
+h6 {
+  font-size: 1rem;
+}
+
+a.header-anchor {
+  font-size: 0.85em;
+  float: left;
+  margin-left: -0.87em;
+  padding-right: 0.23em;
+  margin-top: 0.125em;
+  opacity: 0;
+
+  &:hover {
+    text-decoration: none;
+  }
+
+  &:focus-visible {
+    opacity: 1;
+  }
+}
+
+p,
+ul,
+ol {
+  line-height: 1.7;
+}
+
+hr {
+  border: 0;
+  border-top: 1px solid var(--c-border);
+}
+
+table {
+  border-collapse: collapse;
+  margin: 1rem 0;
+  display: block;
+  overflow-x: auto;
+  transition: border-color var(--t-color);
+}
+
+tr {
+  border-top: 1px solid var(--c-border-dark);
+  transition: border-color var(--t-color);
+
+  &:nth-child(2n) {
+    background-color: var(--c-bg-light);
+    transition: background-color var(--t-color);
+  }
+}
+
+th,
+td {
+  padding: 0.6em 1em;
+  border: 1px solid var(--c-border-dark);
+  transition: border-color var(--t-color);
+}
diff --git a/src/client/styles/post.css b/src/client/styles/post.css
new file mode 100644
index 00000000..db4f9e85
--- /dev/null
+++ b/src/client/styles/post.css
@@ -0,0 +1,57 @@
+.post-wrapper {
+  @apply pt-20;
+
+  & .post-container {
+    @apply w-full max-w-6xl p-12 pt-0 m-auto bg-white shadow-sm mb-10;
+  }
+
+  & .post-content {
+    @apply prose prose-lg prose-gray max-w-none mt-10;
+  }
+}
+
+.post-meta {
+  @apply flex pb-2;
+
+  & h2 {
+    @apply flex-1 pr-5 border-none;
+  }
+
+  & h1 {
+    @apply flex-1 pr-5 pt-9 mb-5;
+  }
+
+  &-profile {
+    @apply flex justify-start text-base text-gray-400;
+
+    &-border {
+      @apply border-b border-gray-200 pb-3;
+    }
+
+    & .post-author {
+      @apply flex items-center mr-5;
+    }
+
+    & .post-category {
+      @apply flex items-center mr-5;
+    }
+
+    & .post-createtime {
+      @apply flex items-center;
+    }
+
+    & .post-tags {
+      @apply flex items-center mr-5;
+    }
+  }
+}
+
+.post-list {
+  &-item {
+    @apply bg-white mb-5 shadow-sm hover:shadow-md transition-shadow p-5 rounded-md cursor-pointer;
+  }
+
+  &-excerpt {
+    @apply prose prose-lg max-w-none;
+  }
+}
diff --git a/src/client/styles/tags.css b/src/client/styles/tags.css
new file mode 100644
index 00000000..fefef486
--- /dev/null
+++ b/src/client/styles/tags.css
@@ -0,0 +1,35 @@
+.tags-sidebar-wrapper {
+  @apply bg-white shadow-sm hover:shadow-md transition-shadow p-5 rounded-md mb-5;
+
+  & h3 {
+    @apply border-b border-gray-300 pb-3 text-slate-500 text-xl;
+  }
+
+  & .tags-sidebar-container {
+    @apply pt-3 -mx-3;
+
+    & a {
+      @apply inline-block px-3 py-2 bg-slate-400 text-white ml-3 mt-3 leading-4 rounded-sm;
+
+      & span:last-of-type {
+        @apply ml-1;
+      }
+    }
+
+    & .tags-more {
+      @apply inline-block px-3 py-2 text-slate-400 ml-3 mt-3 leading-4 rounded-sm cursor-pointer;
+    }
+  }
+}
+
+.tags-wrapper {
+  @apply w-full min-h-screen pt-14;
+}
+
+.tags-container {
+  @apply flex justify-start items-start w-full max-w-6xl m-auto pt-5;
+
+  .right-sidebar-container {
+    @apply  ml-5 w-80;
+  }
+}
diff --git a/src/client/styles/tailwind.css b/src/client/styles/tailwind.css
new file mode 100644
index 00000000..b5c61c95
--- /dev/null
+++ b/src/client/styles/tailwind.css
@@ -0,0 +1,3 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
diff --git a/src/client/styles/vars-dark.css b/src/client/styles/vars-dark.css
new file mode 100644
index 00000000..585e2d22
--- /dev/null
+++ b/src/client/styles/vars-dark.css
@@ -0,0 +1,46 @@
+html.dark {
+  /* // brand colors */
+  --c-brand: #3aa675;
+  --c-brand-light: #349469;
+
+  /* // background colors */
+  --c-bg: #22272e;
+  --c-bg-light: #2b313a;
+  --c-bg-lighter: #262c34;
+
+  /* // text colors */
+  --c-text: #adbac7;
+  --c-text-light: #96a7b7;
+  --c-text-lighter: #8b9eb0;
+  --c-text-lightest: #8094a8;
+
+  /* // border colors */
+  --c-border: #3e4c5a;
+  --c-border-dark: #34404c;
+
+  /* // custom container colors */
+  --c-tip: #318a62;
+  --c-warning: #ceab00;
+  --c-warning-bg: #7e755b;
+  --c-warning-title: #ceac03;
+  --c-warning-text: #362e00;
+  --c-danger: #940000;
+  --c-danger-bg: #806161;
+  --c-danger-title: #610000;
+  --c-danger-text: #3a0000;
+  --c-details-bg: #323843;
+
+  /* // code blocks vars */
+  --code-hl-bg-color: #363b46;
+}
+
+/* // plugin-docsearch */
+html.dark .DocSearch {
+  --docsearch-logo-color: var(--c-text);
+  --docsearch-modal-shadow: inset 1px 1px 0 0 #2c2e40, 0 3px 8px 0 #000309;
+  --docsearch-key-shadow: inset 0 -2px 0 0 #282d55, inset 0 0 1px 1px #51577d,
+    0 2px 2px 0 rgba(3, 4, 9, 0.3);
+  --docsearch-key-gradient: linear-gradient(-225deg, #444950, #1c1e21);
+  --docsearch-footer-shadow: inset 0 1px 0 0 rgba(73, 76, 106, 0.5),
+    0 -4px 8px 0 rgba(0, 0, 0, 0.2);
+}
diff --git a/src/client/styles/vars.css b/src/client/styles/vars.css
new file mode 100644
index 00000000..ea34eb9f
--- /dev/null
+++ b/src/client/styles/vars.css
@@ -0,0 +1,134 @@
+:root {
+  /* // brand colors */
+  --c-brand: #0099CC;
+  --c-brand-light: #0099FF;
+
+  /* // background colors */
+  --c-bg: #ffffff;
+  --c-bg-light: #f3f4f5;
+  --c-bg-lighter: #eeeeee;
+  --c-bg-navbar: var(--c-bg);
+  --c-bg-sidebar: var(--c-bg);
+  --c-bg-arrow: #cccccc;
+
+  /* // text colors */
+  --c-text: #2c3e50;
+  --c-text-accent: var(--c-brand);
+  --c-text-light: #3a5169;
+  --c-text-lighter: #4e6e8e;
+  --c-text-lightest: #6a8bad;
+  --c-text-quote: #999999;
+
+  /* // border colors */
+  --c-border: #eaecef;
+  --c-border-dark: #dfe2e5;
+
+  /* // custom container colors */
+  --c-tip: #42b983;
+  --c-tip-bg: var(--c-bg-light);
+  --c-tip-title: var(--c-text);
+  --c-tip-text: var(--c-text);
+  --c-tip-text-accent: var(--c-text-accent);
+  --c-warning: #e7c000;
+  --c-warning-bg: #fffae3;
+  --c-warning-title: #ad9000;
+  --c-warning-text: #746000;
+  --c-warning-text-accent: var(--c-text);
+  --c-danger: #cc0000;
+  --c-danger-bg: #ffe0e0;
+  --c-danger-title: #990000;
+  --c-danger-text: #660000;
+  --c-danger-text-accent: var(--c-text);
+  --c-details-bg: #eeeeee;
+
+  /* // badge component colors */
+  --c-badge-tip: var(--c-tip);
+  --c-badge-warning: var(--c-warning);
+  --c-badge-danger: var(--c-danger);
+
+  /* // transition vars */
+  --t-color: 0.3s ease;
+  --t-transform: 0.3s ease;
+
+  /* // code blocks vars */
+  --code-bg-color: #282c34;
+  --code-hl-bg-color: rgba(0, 0, 0, 0.66);
+  --code-ln-color: #9e9e9e;
+  --code-ln-wrapper-width: 3.5rem;
+
+  /* // font vars */
+  --font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,
+    Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
+  --font-family-code: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+
+  /* // layout vars */
+  --navbar-height: 3.6rem;
+  --navbar-padding-v: 0.7rem;
+  --navbar-padding-h: 1.5rem;
+  --sidebar-width: 20rem;
+  --sidebar-width-mobile: calc(var(--sidebar-width) * 0.82);
+  --content-width: 740px;
+  --homepage-width: 960px;
+
+}
+
+/* // plugin-back-to-top */
+.back-to-top {
+  --back-to-top-color: var(--c-brand);
+  --back-to-top-color-hover: var(--c-brand-light);
+}
+
+/* // plugin-docsearch */
+.DocSearch {
+  --docsearch-primary-color: var(--c-brand);
+  --docsearch-text-color: var(--c-text);
+  --docsearch-highlight-color: var(--c-brand);
+  --docsearch-muted-color: var(--c-text-quote);
+  --docsearch-container-background: rgba(9, 10, 17, 0.8);
+  --docsearch-modal-background: var(--c-bg-light);
+  --docsearch-searchbox-background: var(--c-bg-lighter);
+  --docsearch-searchbox-focus-background: var(--c-bg);
+  --docsearch-searchbox-shadow: inset 0 0 0 2px var(--c-brand);
+  --docsearch-hit-color: var(--c-text-light);
+  --docsearch-hit-active-color: var(--c-bg);
+  --docsearch-hit-background: var(--c-bg);
+  --docsearch-hit-shadow: 0 1px 3px 0 var(--c-border-dark);
+  --docsearch-footer-background: var(--c-bg);
+}
+
+/* // plugin-external-link-icon */
+.external-link-icon {
+  --external-link-icon-color: var(--c-text-quote);
+}
+
+/* // plugin-medium-zoom */
+.medium-zoom-overlay {
+  --medium-zoom-bg-color: var(--c-bg);
+}
+
+/* // plugin-nprogress */
+#nprogress {
+  --nprogress-color: var(--c-brand);
+}
+
+/* // plugin-pwa-popup */
+.pwa-popup {
+  --pwa-popup-text-color: var(--c-text);
+  --pwa-popup-bg-color: var(--c-bg);
+  --pwa-popup-border-color: var(--c-brand);
+  --pwa-popup-shadow: 0 4px 16px var(--c-brand);
+  --pwa-popup-btn-text-color: var(--c-bg);
+  --pwa-popup-btn-bg-color: var(--c-brand);
+  --pwa-popup-btn-hover-bg-color: var(--c-brand-light);
+}
+
+/* // plugin-search */
+.search-box {
+  --search-bg-color: var(--c-bg);
+  --search-accent-color: var(--c-brand);
+  --search-text-color: var(--c-text);
+  --search-border-color: var(--c-border);
+
+  --search-item-text-color: var(--c-text-lighter);
+  --search-item-focus-bg-color: var(--c-bg-light);
+}
diff --git a/src/client/utils/index.d.ts b/src/client/utils/index.d.ts
new file mode 100644
index 00000000..6715d26b
--- /dev/null
+++ b/src/client/utils/index.d.ts
@@ -0,0 +1,3 @@
+export * from './isActiveSidebarItem';
+export * from './resolveEditLink';
+export * from './resolveRepoType';
diff --git a/src/client/utils/index.js b/src/client/utils/index.js
new file mode 100644
index 00000000..6715d26b
--- /dev/null
+++ b/src/client/utils/index.js
@@ -0,0 +1,3 @@
+export * from './isActiveSidebarItem';
+export * from './resolveEditLink';
+export * from './resolveRepoType';
diff --git a/src/client/utils/index.ts b/src/client/utils/index.ts
new file mode 100644
index 00000000..6451d5bc
--- /dev/null
+++ b/src/client/utils/index.ts
@@ -0,0 +1,3 @@
+export * from './isActiveSidebarItem'
+export * from './resolveEditLink'
+export * from './resolveRepoType'
diff --git a/src/client/utils/isActiveSidebarItem.ts b/src/client/utils/isActiveSidebarItem.ts
new file mode 100644
index 00000000..6c38c9de
--- /dev/null
+++ b/src/client/utils/isActiveSidebarItem.ts
@@ -0,0 +1,34 @@
+import type { RouteLocationNormalizedLoaded } from 'vue-router'
+import type { ResolvedSidebarItem } from '../../shared'
+
+const normalizePath = (path: string): string =>
+  decodeURI(path)
+    .replace(/#.*$/, '')
+    .replace(/(index)?\.(md|html)$/, '')
+
+const isActiveLink = (
+  link: string,
+  route: RouteLocationNormalizedLoaded
+): boolean => {
+  if (route.hash === link) {
+    return true
+  }
+  const currentPath = normalizePath(route.path)
+  const targetPath = normalizePath(link)
+  return currentPath === targetPath
+}
+
+export const isActiveSidebarItem = (
+  item: ResolvedSidebarItem,
+  route: RouteLocationNormalizedLoaded
+): boolean => {
+  if (item.link && isActiveLink(item.link, route)) {
+    return true
+  }
+
+  if (item.children) {
+    return item.children.some((child) => isActiveSidebarItem(child, route))
+  }
+
+  return false
+}
diff --git a/src/client/utils/resolveEditLink.ts b/src/client/utils/resolveEditLink.ts
new file mode 100644
index 00000000..13173a5e
--- /dev/null
+++ b/src/client/utils/resolveEditLink.ts
@@ -0,0 +1,64 @@
+import {
+  isLinkHttp,
+  removeEndingSlash,
+  removeLeadingSlash,
+} from '@vuepress/shared'
+import { resolveRepoType } from './resolveRepoType'
+import type { RepoType } from './resolveRepoType'
+
+export const editLinkPatterns: Record, string> = {
+  GitHub: ':repo/edit/:branch/:path',
+  GitLab: ':repo/-/edit/:branch/:path',
+  Gitee: ':repo/edit/:branch/:path',
+  Bitbucket:
+    ':repo/src/:branch/:path?mode=edit&spa=0&at=:branch&fileviewer=file-view-default',
+}
+
+const resolveEditLinkPatterns = ({
+  docsRepo,
+  editLinkPattern,
+}: {
+  docsRepo: string
+  editLinkPattern?: string
+}): string | null => {
+  if (editLinkPattern) {
+    return editLinkPattern
+  }
+
+  const repoType = resolveRepoType(docsRepo)
+  if (repoType !== null) {
+    return editLinkPatterns[repoType]
+  }
+
+  return null
+}
+
+export const resolveEditLink = ({
+  docsRepo,
+  docsBranch,
+  docsDir,
+  filePathRelative,
+  editLinkPattern,
+}: {
+  docsRepo: string
+  docsBranch: string
+  docsDir: string
+  filePathRelative: string | null
+  editLinkPattern?: string
+}): string | null => {
+  if (!filePathRelative) return null
+
+  const pattern = resolveEditLinkPatterns({ docsRepo, editLinkPattern })
+  if (!pattern) return null
+
+  return pattern
+    .replace(
+      /:repo/,
+      isLinkHttp(docsRepo) ? docsRepo : `https://github.com/${docsRepo}`
+    )
+    .replace(/:branch/, docsBranch)
+    .replace(
+      /:path/,
+      removeLeadingSlash(`${removeEndingSlash(docsDir)}/${filePathRelative}`)
+    )
+}
diff --git a/src/client/utils/resolveRepoType.ts b/src/client/utils/resolveRepoType.ts
new file mode 100644
index 00000000..c63b5d22
--- /dev/null
+++ b/src/client/utils/resolveRepoType.ts
@@ -0,0 +1,11 @@
+import { isLinkHttp } from '@vuepress/shared'
+
+export type RepoType = 'GitHub' | 'GitLab' | 'Gitee' | 'Bitbucket' | null
+
+export const resolveRepoType = (repo: string): RepoType => {
+  if (!isLinkHttp(repo) || /github\.com/.test(repo)) return 'GitHub'
+  if (/bitbucket\.org/.test(repo)) return 'Bitbucket'
+  if (/gitlab\.com/.test(repo)) return 'GitLab'
+  if (/gitee\.com/.test(repo)) return 'Gitee'
+  return null
+}
diff --git a/src/node/createBlogPage.ts b/src/node/createBlogPage.ts
new file mode 100644
index 00000000..4f81ab43
--- /dev/null
+++ b/src/node/createBlogPage.ts
@@ -0,0 +1,18 @@
+import { createPage } from '@vuepress/core'
+import type { App } from 'vuepress'
+import { navbarList } from '../shared'
+
+export const createBlogPage = async (app: App): Promise => {
+  const pagePromise = navbarList.map((nav) => {
+    return createPage(app, {
+      path: nav.link,
+      frontmatter: {
+        title: nav.label,
+        ...nav.frontmatter,
+      },
+      content: '',
+    })
+  })
+  const pageList = await Promise.all(pagePromise)
+  pageList.forEach((page) => app.pages.push(page))
+}
diff --git a/src/node/extendsPage.ts b/src/node/extendsPage.ts
new file mode 100644
index 00000000..a86f25d5
--- /dev/null
+++ b/src/node/extendsPage.ts
@@ -0,0 +1,23 @@
+import type { Page } from '@vuepress/core'
+import type { PlumeThemePageData } from '../shared'
+import { pageFilter } from './utils/pageFilter'
+
+let uuid = 100
+export const extendsPage = (page: Page): void => {
+  if (!pageFilter(page)) return
+  const pagePath = page.filePathRelative
+  const category = pagePath
+    ?.split('/')
+    .slice(0, -1)
+    .map((category) => {
+      const match = category.match(/^(\d+?)?(?:\.?)([^]+)$/) || []
+      return {
+        type: Number(match[1]) || uuid++,
+        name: match[2],
+      }
+    })
+  page.data.category = category || []
+  page.data.sort = parseInt(page.slug.split('.')[0]) || -1
+  page.data.isPost = true
+  page.slug = page.slug?.replace(/^\d+\./, '')
+}
diff --git a/src/node/formatFrontmatter.ts b/src/node/formatFrontmatter.ts
new file mode 100644
index 00000000..1075138b
--- /dev/null
+++ b/src/node/formatFrontmatter.ts
@@ -0,0 +1,99 @@
+import * as os from 'os'
+import type { App } from '@vuepress/core'
+import { fs, path } from '@vuepress/utils'
+import { isBoolean, isNumber } from '@vueuse/core'
+import * as chokidar from 'chokidar'
+import * as dayjs from 'dayjs'
+import * as matter from 'gray-matter'
+import * as json2yaml from 'json2yaml'
+import { customAlphabet } from 'nanoid'
+import type { MarkdownFile } from './utils/readFileList'
+import { readFileList } from './utils/readFileList'
+
+const prefix = '/post/'
+
+const nanoid = customAlphabet('134567890abcdefghijklmnopqrstuvwxyz', 8)
+const matterTask = {
+  title: ({ filePath }: MarkdownFile, title: string): string | undefined => {
+    if (title) return title
+    return path
+      .basename(filePath)
+      .replace(/^\d+\./, '')
+      .replace(path.extname(filePath), '')
+  },
+  createTime: ({ createTime }: MarkdownFile, formatTime: string) => {
+    if (formatTime) return formatTime
+    return dayjs(createTime).format('YYYY/MM/DD hh:mm:ss')
+  },
+  permalink: (_, permalink: string) => {
+    if (permalink) return permalink
+    return prefix + nanoid() + '  # 文章永久链接,自动生成,可自行配置'
+  },
+  author: (_, author: string) => {
+    if (author) return author
+    const pkg = require(path.join(process.cwd(), 'package.json'))
+    return pkg.author
+  },
+  top: (_, top: boolean) => {
+    if (isBoolean(top)) return top
+    return false
+  },
+  type: (_, type: string) => {
+    if (type) return type
+    return ' ' + ' # original: 原创: reprint 转载  可为空不填'
+  },
+  sort: (_, sort: string) => {
+    if (isNumber(parseInt(sort))) return sort
+    return 0
+  },
+}
+
+function formatMarkdown(file: MarkdownFile): string {
+  const { data, content } = matter(file.content)
+  Object.keys(matterTask).forEach((key) => {
+    const value = matterTask[key](file, data[key])
+    data[key] = value ?? data[key]
+  })
+  return (
+    json2yaml
+      .stringify(data)
+      .replace(/\n\s{2}/g, '\n')
+      .replace(/"/g, '') +
+    '---' +
+    os.EOL +
+    content
+  )
+}
+
+export const globFormatFrontmatter = (sourceDir: string): void => {
+  const files = readFileList(sourceDir)
+  files.forEach((file) => {
+    const content = formatMarkdown(file)
+    fs.writeFileSync(file.filePath, content, 'utf-8')
+  })
+}
+
+export const watchNewMarkdown = (app: App, watchers): void => {
+  const watcher = chokidar.watch(['**/*.md', '!README.md', '!readme.md'], {
+    cwd: app.options.source,
+    ignoreInitial: true,
+  })
+  watcher.on('add', (filePath, stat) => {
+    const basename = path.basename(filePath)
+    const extname = path.extname(basename)
+    const name = basename.replace(extname, '')
+    filePath = path.join(app.options.source, filePath)
+    if (extname !== '.md' && extname !== '.MD') return
+    if (/readme/i.test(name)) return
+    stat = stat || fs.statSync(filePath)
+    const file: MarkdownFile = {
+      filePath,
+      content: '',
+      createTime:
+        stat.birthtime.getFullYear() !== 1970 ? stat.birthtime : stat.atime,
+    }
+    const content = formatMarkdown(file)
+    fs.writeFileSync(filePath, content, 'utf-8')
+  })
+  watchers.push(watcher)
+}
diff --git a/src/node/index.ts b/src/node/index.ts
new file mode 100644
index 00000000..c68ec0a2
--- /dev/null
+++ b/src/node/index.ts
@@ -0,0 +1,5 @@
+import { blogTheme } from './theme'
+
+export * from './theme'
+
+export default blogTheme
diff --git a/src/node/preparedPostIndex.ts b/src/node/preparedPostIndex.ts
new file mode 100644
index 00000000..8b7fa7bc
--- /dev/null
+++ b/src/node/preparedPostIndex.ts
@@ -0,0 +1,78 @@
+import type { App, Page } from '@vuepress/core'
+import * as chokidar from 'chokidar'
+import * as dayjs from 'dayjs'
+import type {
+  PlumeThemePageData,
+  PlumeThemePostPageFrontmatter,
+  PostIndex,
+} from '../shared'
+import { pageFilter } from './utils/pageFilter'
+
+const HMR_CODE = `
+if (import.meta.webpackHot) {
+  import.meta.webpackHot.accept()
+  if (__VUE_HMR_RUNTIME__.updatePostIndex) {
+    __VUE_HMR_RUNTIME__.updatePostIndex(postIndex)
+  }
+}
+
+if (import.meta.hot) {
+  import.meta.hot.accept(({ postIndex, ...other }) => {
+    __VUE_HMR_RUNTIME__.updatePostIndex(postIndex)
+    console.log('other', other)
+  })
+}
+`
+
+export const preparedPostIndex = async function (app: App): Promise {
+  const postListIndex: PostIndex = (app.pages as Page[])
+    .filter((page) => {
+      return pageFilter(page)
+    })
+    .map((page) => {
+      return {
+        title: page.title,
+        path: page.path,
+        frontmatter:
+          page.frontmatter as unknown as PlumeThemePostPageFrontmatter,
+        excerpt: page.excerpt,
+        category: page.data.category || [],
+      }
+    })
+    .sort((left, right) => {
+      const leftTime = dayjs(left.frontmatter.createTime).unix()
+      const rightTime = dayjs(right.frontmatter.createTime).unix()
+      return leftTime < rightTime ? 1 : -1
+    })
+  const topPostIndex = postListIndex.findIndex((post) => !!post.frontmatter.top)
+  if (topPostIndex !== -1) {
+    postListIndex.unshift(postListIndex.splice(topPostIndex, 1)[0])
+  }
+  let content = `
+export const postIndex = ${JSON.stringify(postListIndex, null, 2)}
+  `
+
+  // inject HMR code
+  if (app.env.isDev) {
+    content += HMR_CODE
+  }
+
+  return app.writeTemp('internal/postIndex.js', content)
+}
+
+export const watchPostIndex = (app: App, watchers): void => {
+  const watcher = chokidar.watch('pages/**/*', {
+    cwd: app.dir.temp(),
+    ignoreInitial: true,
+  })
+  watcher.on('add', () => {
+    preparedPostIndex(app)
+  })
+  watcher.on('change', () => {
+    preparedPostIndex(app)
+  })
+  watcher.on('unlink', () => {
+    preparedPostIndex(app)
+  })
+  watchers.push(watcher)
+}
diff --git a/src/node/theme.ts b/src/node/theme.ts
new file mode 100644
index 00000000..5b190740
--- /dev/null
+++ b/src/node/theme.ts
@@ -0,0 +1,101 @@
+import type { Theme, ThemeConfig } from '@vuepress/core'
+import { fs, path } from '@vuepress/utils'
+import { createBlogPage } from './createBlogPage'
+import { extendsPage } from './extendsPage'
+import { globFormatFrontmatter, watchNewMarkdown } from './formatFrontmatter'
+import { preparedPostIndex, watchPostIndex } from './preparedPostIndex'
+import { resolveActiveHeaderLinksPluginOptions } from './utils'
+
+export interface BlogThemeOption extends ThemeConfig {
+  a?: string
+}
+
+export const blogTheme: Theme = (
+  { themePlugins = {}, ...localeOptions },
+  app
+) => {
+  if (app.options.bundler.endsWith('vite')) {
+    // eslint-disable-next-line import/no-extraneous-dependencies
+    app.options.bundlerConfig.viteOptions = require('vite').mergeConfig(
+      app.options.bundlerConfig.viteOptions,
+      {
+        css: {
+          postcss: {
+            plugins: [
+              // require('postcss-simple-vars'),
+              require('postcss-each'),
+              require('postcss-import')({
+                plugins: [
+                  require('postcss-at-rules-variables'),
+                  require('postcss-import'),
+                ],
+              }),
+              require('tailwindcss/nesting'),
+              require('tailwindcss')(
+                path.resolve(__dirname, '../../tailwind.config.js')
+              ),
+              require('postcss-preset-env')({
+                stage: 0,
+                features: {
+                  'nesting-rules': false,
+                  'custom-media-queries': true,
+                },
+              }),
+              require('autoprefixer'),
+            ],
+          },
+        },
+      }
+    )
+  }
+  globFormatFrontmatter(app.options.source)
+  return {
+    name: '@pengzhanbo/vuepress-theme-blog',
+    templateBuild: path.resolve(__dirname, '../template/index.build.html'),
+    layouts: path.resolve(__dirname, '../client/layouts'),
+    clientAppEnhanceFiles: path.resolve(
+      __dirname,
+      '../client/clientAppEnhanceFiles.js'
+    ),
+    clientAppSetupFiles: path.resolve(__dirname, '../client/clientAppSetup.js'),
+    // use alias to make all components replaceable
+    alias: Object.fromEntries(
+      fs
+        .readdirSync(path.resolve(__dirname, '../client/component'))
+        .filter((file) => file.endsWith('.vue'))
+        .map((file) => [
+          `@theme/${file}`,
+          path.resolve(__dirname, '../client/component', file),
+        ])
+    ),
+    onInitialized: async (app) => {
+      await createBlogPage(app)
+    },
+    onPrepared: (app) => {
+      preparedPostIndex(app)
+    },
+    onWatched: (app, watchers) => {
+      watchPostIndex(app, watchers)
+      watchNewMarkdown(app, watchers)
+    },
+    extendsPage,
+    plugins: [
+      [
+        '@vuepress/active-header-links',
+        resolveActiveHeaderLinksPluginOptions(themePlugins),
+      ],
+      ['@vuepress/prismjs', themePlugins.prismjs !== false],
+      ['@vuepress/nprogress', themePlugins.nprogress !== false],
+      [
+        '@vuepress/medium-zoom',
+        {
+          selector: '.post-content > img, .post-content :not(a) > img',
+          zoomOptions: {},
+          // should greater than page transition duration
+          delay: 300,
+        },
+      ],
+      ['@vuepress/theme-data', { themeData: localeOptions }],
+    ],
+  }
+}
diff --git a/src/node/utils/index.d.ts b/src/node/utils/index.d.ts
new file mode 100644
index 00000000..53f44a7d
--- /dev/null
+++ b/src/node/utils/index.d.ts
@@ -0,0 +1 @@
+export * from './resolveActiveHeaderLinksPluginOptions';
diff --git a/src/node/utils/index.js b/src/node/utils/index.js
new file mode 100644
index 00000000..53f44a7d
--- /dev/null
+++ b/src/node/utils/index.js
@@ -0,0 +1 @@
+export * from './resolveActiveHeaderLinksPluginOptions';
diff --git a/src/node/utils/index.ts b/src/node/utils/index.ts
new file mode 100644
index 00000000..531c51a0
--- /dev/null
+++ b/src/node/utils/index.ts
@@ -0,0 +1 @@
+export * from './resolveActiveHeaderLinksPluginOptions'
diff --git a/src/node/utils/pageFilter.ts b/src/node/utils/pageFilter.ts
new file mode 100644
index 00000000..404b99ca
--- /dev/null
+++ b/src/node/utils/pageFilter.ts
@@ -0,0 +1,5 @@
+import type { Page } from '@vuepress/core'
+
+export function pageFilter(page: Page): boolean {
+  return !!page.pathInferred && !!page.filePath && !page.frontmatter.home
+}
diff --git a/src/node/utils/readFileList.ts b/src/node/utils/readFileList.ts
new file mode 100644
index 00000000..eac06473
--- /dev/null
+++ b/src/node/utils/readFileList.ts
@@ -0,0 +1,37 @@
+import { fs, path } from '@vuepress/utils'
+
+export interface MarkdownFile {
+  filePath: string
+  content: string
+  createTime: Date
+}
+
+export function readFileList(
+  sourceDir: string,
+  fileList: MarkdownFile[] = []
+): MarkdownFile[] {
+  const files = fs.readdirSync(sourceDir)
+  files.forEach((file) => {
+    const filePath = path.join(sourceDir, file)
+    const stat = fs.statSync(filePath)
+    if (stat.isDirectory()) {
+      if (file !== '.vuepress') readFileList(filePath, fileList)
+    } else {
+      const extname = path.extname(file)
+      const basename = path.basename(file).replace(extname, '')
+      if (
+        (extname === '.md' || extname === '.MD') &&
+        basename !== 'README' &&
+        basename !== 'readme'
+      ) {
+        fileList.push({
+          filePath,
+          content: fs.readFileSync(filePath, 'utf-8'),
+          createTime:
+            stat.birthtime.getFullYear() !== 1970 ? stat.birthtime : stat.atime,
+        })
+      }
+    }
+  })
+  return fileList
+}
diff --git a/src/node/utils/resolveActiveHeaderLinksPluginOptions.ts b/src/node/utils/resolveActiveHeaderLinksPluginOptions.ts
new file mode 100644
index 00000000..42db3c35
--- /dev/null
+++ b/src/node/utils/resolveActiveHeaderLinksPluginOptions.ts
@@ -0,0 +1,20 @@
+import type { ActiveHeaderLinksPluginOptions } from '@vuepress/plugin-active-header-links'
+// import type { DefaultThemePluginsOptions } from '../../shared'
+
+/**
+ * Resolve options for @vuepress/plugin-active-header-links
+ */
+export const resolveActiveHeaderLinksPluginOptions = (
+  themePlugins
+): ActiveHeaderLinksPluginOptions | boolean => {
+  if (themePlugins?.activeHeaderLinks === false) {
+    return false
+  }
+
+  return {
+    headerLinkSelector: 'a.sidebar-item',
+    headerAnchorSelector: '.header-anchor',
+    // should greater than page transition duration
+    delay: 300,
+  }
+}
diff --git a/src/shared/index.ts b/src/shared/index.ts
new file mode 100644
index 00000000..9b64a8d0
--- /dev/null
+++ b/src/shared/index.ts
@@ -0,0 +1,5 @@
+export * from './nav'
+export * from './options'
+export * from './page'
+export * from './post'
+export * from './navbar'
diff --git a/src/shared/nav.ts b/src/shared/nav.ts
new file mode 100644
index 00000000..a7bdd2f5
--- /dev/null
+++ b/src/shared/nav.ts
@@ -0,0 +1,57 @@
+/**
+ * Base nav item, displayed as text
+ */
+export interface NavItem {
+  text: string
+  ariaLabel?: string
+}
+
+/**
+ * Base nav group, has nav items children
+ */
+export interface NavGroup extends NavItem {
+  children: T[]
+}
+
+/**
+ * Props for ``
+ */
+export interface NavLink extends NavItem {
+  link: string
+  rel?: string
+  target?: string
+  activeMatch?: string
+}
+
+/**
+ * Navbar types
+ */
+// user config
+export type NavbarItem = NavLink
+export type NavbarGroup = NavGroup
+export type NavbarConfig = (NavbarItem | NavbarGroup | string)[]
+// resolved
+export type ResolvedNavbarItem = NavbarItem | NavGroup
+
+/**
+ * Sidebar types
+ */
+// user config
+export type SidebarItem = NavItem & Partial
+export type SidebarGroup = SidebarItem &
+  NavGroup
+export type SidebarGroupCollapsible = SidebarGroup & {
+  collapsible?: boolean
+}
+export type SidebarConfigArray = (
+  | SidebarItem
+  | SidebarGroupCollapsible
+  | string
+)[]
+export type SidebarConfigObject = Record
+export type SidebarConfig = SidebarConfigArray | SidebarConfigObject
+// resolved
+export type ResolvedSidebarItem = SidebarItem &
+  Partial> & {
+    collapsible?: boolean
+  }
diff --git a/src/shared/navbar.ts b/src/shared/navbar.ts
new file mode 100644
index 00000000..a4cf7728
--- /dev/null
+++ b/src/shared/navbar.ts
@@ -0,0 +1,11 @@
+export interface NavbarItemOption {
+  label: string
+  link: string
+  frontmatter: Record
+}
+
+export const navbarList: NavbarItemOption[] = [
+  { label: '栏目', link: '/category/', frontmatter: { pageType: 'category' } },
+  { label: '标签', link: '/tags/', frontmatter: { pageType: 'tags' } },
+  { label: '归档', link: '/archives/', frontmatter: { pageType: 'archives' } },
+]
diff --git a/src/shared/options.ts b/src/shared/options.ts
new file mode 100644
index 00000000..67cbb10c
--- /dev/null
+++ b/src/shared/options.ts
@@ -0,0 +1,283 @@
+import type { ThemeData } from '@vuepress/plugin-theme-data'
+import type { LocaleData } from '@vuepress/shared'
+import type { NavbarConfig, SidebarConfig } from './nav'
+
+export interface PlumeThemePluginsOptions {
+  bannerImg: string
+  avatarUrl: string
+  avatar: string
+  github?: string
+  email?: string
+  description: string
+  /**
+   * Enable @vuepress/plugin-active-header-links or not
+   */
+  // activeHeaderLinks?: boolean
+
+  /**
+   * Enable @vuepress/plugin-back-to-top or not
+   */
+  // backToTop?: boolean
+
+  /**
+   * Enable @vuepress/plugin-container or not
+   */
+  // container?: {
+  //   tip?: boolean
+  //   warning?: boolean
+  //   danger?: boolean
+  //   details?: boolean
+  //   codeGroup?: boolean
+  //   codeGroupItem?: boolean
+  // }
+
+  /**
+   * Enable @vuepress/plugin-external-link-icon or not
+   */
+  // externalLinkIcon?: boolean
+
+  /**
+   * Enable @vuepress/plugin-git or not
+   */
+  // git?: boolean
+
+  /**
+   * Enable @vuepress/plugin-medium-zoom or not
+   */
+  // mediumZoom?: boolean
+
+  /**
+   * Enable @vuepress/plugin-nprogress or not
+   */
+  // nprogress?: boolean
+
+  /**
+   * Enable @vuepress/plugin-prismjs or not
+   */
+  // prismjs?: boolean
+}
+
+export type PlumeThemeLocaleOptions = PlumeThemeData
+
+export type PlumeThemeData = ThemeData
+
+export interface PlumeThemeLocaleData extends LocaleData {
+  /**
+   * Home path of current locale
+   *
+   * Used as the link of back-to-home and navbar logo
+   */
+  home?: string
+
+  /**
+   * Navbar config
+   *
+   * Set to `false` to disable navbar in current locale
+   */
+  navbar?: false | NavbarConfig
+
+  /**
+   * Navbar logo config
+   *
+   * Logo to display in navbar
+   */
+  logo?: null | string
+
+  /**
+   * Navbar logo config for dark mode
+   *
+   * Logo to display in navbar in dark mode
+   */
+  logoDark?: null | string
+
+  /**
+   * Navbar dark mode button config
+   *
+   * Enable dark mode switching and display a button in navbar or not
+   */
+  darkMode?: boolean
+
+  /**
+   * Navbar repository config
+   *
+   * Used for the repository link of navbar
+   */
+  repo?: null | string
+
+  /**
+   * Navbar repository config
+   *
+   * Used for the repository text of navbar
+   */
+  repoLabel?: string
+
+  /**
+   * Navbar language selection config
+   *
+   * Text of the language selection dropdown
+   */
+  selectLanguageText?: string
+
+  /**
+   * Navbar language selection config
+   *
+   * Aria label of of the language selection dropdown
+   */
+  selectLanguageAriaLabel?: string
+
+  /**
+   * Navbar language selection config
+   *
+   * Language name of current locale
+   *
+   * Displayed inside the language selection dropdown
+   */
+  selectLanguageName?: string
+
+  /**
+   * Sidebar config
+   *
+   * Set to `false` to disable sidebar in current locale
+   */
+  sidebar?: 'auto' | false | SidebarConfig
+
+  /**
+   * Sidebar depth
+   *
+   * - Set to `0` to disable all levels
+   * - Set to `1` to include `

` + * - Set to `2` to include `

` and `

` + * - ... + * + * The max value depends on which headers you have extracted + * via `markdown.extractHeaders.level`. + * + * The default value of `markdown.extractHeaders.level` is `[2, 3]`, + * so the default max value of `sidebarDepth` is `2` + */ + sidebarDepth?: number + + /** + * Page meta - edit link config + * + * Whether to show "Edit this page" or not + */ + editLink?: boolean + + /** + * Page meta - edit link config + * + * The text to replace the default "Edit this page" + */ + editLinkText?: string + + /** + * Page meta - edit link config + * + * Pattern of edit link + * + * @example ':repo/edit/:branch/:path' + */ + editLinkPattern?: string + + /** + * Page meta - edit link config + * + * Use `repo` config by default + * + * Set this config if your docs is placed in a different repo + */ + docsRepo?: string + + /** + * Page meta - edit link config + * + * Set this config if the branch of your docs is not 'main' + */ + docsBranch?: string + + /** + * Page meta - edit link config + * + * Set this config if your docs is placed in sub dir of your `docsRepo` + */ + docsDir?: string + + /** + * Page meta - last updated config + * + * Whether to show "Last Updated" or not + */ + lastUpdated?: boolean + + /** + * Page meta - last updated config + * + * The text to replace the default "Last Updated" + */ + lastUpdatedText?: string + + /** + * Page meta - contributors config + * + * Whether to show "Contributors" or not + */ + contributors?: boolean + + /** + * Page meta - contributors config + * + * The text to replace the default "Contributors" + */ + contributorsText?: string + + /** + * Custom block config + * + * Default title of TIP custom block + */ + tip?: string + + /** + * Custom block config + * + * Default title of WARNING custom block + */ + warning?: string + + /** + * Custom block config + * + * Default title of DANGER custom block + */ + danger?: string + + /** + * 404 page config + * + * Not Found messages for 404 page + */ + notFound?: string[] + + /** + * 404 page config + * + * Text of back-to-home link in 404 page + */ + backToHome?: string + + /** + * A11y text for external link icon + */ + openInNewWindow?: string + + /** + * A11y text for dark mode toggle button + */ + toggleDarkMode?: string + + /** + * A11y text for sidebar toggle button + */ + toggleSidebar?: string +} diff --git a/src/shared/page.ts b/src/shared/page.ts new file mode 100644 index 00000000..e2af2a96 --- /dev/null +++ b/src/shared/page.ts @@ -0,0 +1,41 @@ +import type { GitPluginPageData } from '@vuepress/plugin-git' +import type { NavLink, SidebarConfig } from './nav' +import type { CategoryItem } from './post' + +export interface PlumeThemePageData extends GitPluginPageData { + filePathRelative: string | null + category: CategoryItem[] + sort: number + isPost: boolean +} + +export interface PlumeThemePageFrontmatter { + home?: boolean + navbar?: boolean + pageClass?: string + pageType?: string +} + +export interface PlumeThemeHomePageFrontmatter + extends PlumeThemePageFrontmatter { + home: true +} + +export interface PlumeThemePostPageFrontmatter + extends PlumeThemePageFrontmatter { + home?: false + editLink?: boolean + editLinkPattern?: string + lastUpdated?: boolean + contributors?: boolean + sidebar?: 'auto' | false | SidebarConfig + sidebarDepth?: number + prev?: string | NavLink + next?: string | NavLink + createTime: string + author: string + top: boolean + type: string + sort: number | string + tags: string[] +} diff --git a/src/shared/post.ts b/src/shared/post.ts new file mode 100644 index 00000000..d7fa3daa --- /dev/null +++ b/src/shared/post.ts @@ -0,0 +1,17 @@ +import type { PageFrontmatter } from 'vuepress' +import type { PlumeThemePostPageFrontmatter } from './page' + +export interface CategoryItem { + type: number | string + name: string +} + +export interface PostItemIndex { + title: string + path: string + frontmatter: PageFrontmatter + excerpt: string + category: CategoryItem[] +} + +export type PostIndex = PostItemIndex[] diff --git a/src/template/index.build.html b/src/template/index.build.html new file mode 100644 index 00000000..f5b2f3f5 --- /dev/null +++ b/src/template/index.build.html @@ -0,0 +1,33 @@ + + + + + + + + + + + + + +
+ + + diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 00000000..b1ec217a --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,10 @@ +const path = require('path') +module.exports = { + content: ['./lib/**/*.{vue,html,css,ts,tsx,js,jsx}'].map((_) => + path.join(__dirname, _) + ), + theme: { + extend: {}, + }, + plugins: [require('@tailwindcss/typography')], +} diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 00000000..b88652d5 --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "composite": true, + "declaration": true, + "declarationMap": false, + "lib": ["DOM", "ES2020"], + "moduleResolution": "node", + "newLine": "lf", + "noEmitOnError": true, + "noImplicitAny": false, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": false, + "strict": true, + "strictNullChecks": true, + "target": "ES2018" + } +} diff --git a/tsconfig.build.json b/tsconfig.build.json new file mode 100644 index 00000000..95aaf482 --- /dev/null +++ b/tsconfig.build.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.base.json", + "references": [ + { "path": "./tsconfig.esm.json" }, + { "path": "./tsconfig.cjs.json" } + ], + "files": [] +} diff --git a/tsconfig.cjs.json b/tsconfig.cjs.json new file mode 100644 index 00000000..38dcf99e --- /dev/null +++ b/tsconfig.cjs.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "module": "CommonJS", + "rootDir": "./src", + "outDir": "./lib" + }, + "include": ["./src/node", "./src/shared"] +} diff --git a/tsconfig.dev.json b/tsconfig.dev.json new file mode 100644 index 00000000..4142c251 --- /dev/null +++ b/tsconfig.dev.json @@ -0,0 +1,15 @@ +{ + "extends": "./tsconfig.base.json", + "references": [ + { "path": "./tsconfig.esm.json" }, + { "path": "./tsconfig.cjs.json" } + ], + "files": [], + "watchOptions": { + "watchFile": "useFsEvents", + "watchDirectory": "useFsEvents", + "fallbackPolling": "dynamicPriority", + "synchronousWatchDirectory": true, + "excludeDirectories": ["**/node_modules", "./lib", "./example"], + } +} diff --git a/tsconfig.esm.json b/tsconfig.esm.json new file mode 100644 index 00000000..5e8ea1b0 --- /dev/null +++ b/tsconfig.esm.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "module": "ES2020", + "rootDir": "./src", + "outDir": "./lib", + "types": ["@vuepress/client/types", "webpack-env", "vite/client"], + "paths": { + "@theme/*": ["./src/client/component/*"], + "@internal/*": ["./example/.vuepress/.temp/internal/*"], + }, + }, + "include": ["./src/client", "./src/shared"] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..d5ee13ff --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "baseUrl": "./", + "module": "ES2020", + "types": ["@vuepress/client/types", "webpack-env", "vite/client"], + "paths": { + "@theme/*": ["./src/client/component/*"], + "@internal/*": ["./example/.vuepress/.temp/internal/*"], + }, + }, + "include": ["./src/**/*", "./vuepress.config.ts"], + "exclude": ["node_modules", ".temp", "lib", "dist"] +} diff --git a/vuepress.config.ts b/vuepress.config.ts new file mode 100644 index 00000000..25eb753b --- /dev/null +++ b/vuepress.config.ts @@ -0,0 +1,22 @@ +import * as path from 'path' +import { defineUserConfig } from 'vuepress' +import type { DefaultThemeOptions } from 'vuepress' + +export default defineUserConfig({ + lang: 'zh', + title: '示例博客', + description: '热爱生活', + dest: 'docs', + temp: 'example/.vuepress/.temp', + cache: 'example/.vuepress/.cache', + public: 'example/public', + theme: path.resolve(__dirname, './lib/node/index.js'), + themeConfig: { + bannerImg: '/big-banner.jpg', // 1200x300 + avatarUrl: '/avatar.gif', + avatar: '未闻花名', + github: 'https://github.com/', + email: '_@outlook.com', + description: '学习,生活,娱乐,我全都要', + }, +}) diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 00000000..6686fb71 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,3579 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" + integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== + dependencies: + "@babel/highlight" "^7.16.7" + +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== + +"@babel/highlight@^7.16.7": + version "7.16.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" + integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.16.4": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.3.tgz#b07702b982990bf6fdc1da5049a23fece4c5c3d0" + integrity sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA== + +"@csstools/postcss-color-function@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-1.0.3.tgz#251c961a852c99e9aabdbbdbefd50e9a96e8a9ff" + integrity sha512-J26I69pT2B3MYiLY/uzCGKVJyMYVg9TCpXkWsRlt+Yfq+nELUEm72QXIMYXs4xA9cJA4Oqs2EylrfokKl3mJEQ== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-font-format-keywords@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.0.tgz#7e7df948a83a0dfb7eb150a96e2390ac642356a1" + integrity sha512-oO0cZt8do8FdVBX8INftvIA4lUrKUSCcWUf9IwH9IPWOgKT22oAZFXeHLoDK7nhB2SmkNycp5brxfNMRLIhd6Q== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-hwb-function@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.0.tgz#d6785c1c5ba8152d1d392c66f3a6a446c6034f6d" + integrity sha512-VSTd7hGjmde4rTj1rR30sokY3ONJph1reCBTUXqeW1fKwETPy1x4t/XIeaaqbMbC5Xg4SM/lyXZ2S8NELT2TaA== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-ic-unit@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.0.tgz#f484db59fc94f35a21b6d680d23b0ec69b286b7f" + integrity sha512-i4yps1mBp2ijrx7E96RXrQXQQHm6F4ym1TOD0D69/sjDjZvQ22tqiEvaNw7pFZTUO5b9vWRHzbHzP9+UKuw+bA== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-is-pseudo-class@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.1.tgz#472fff2cf434bdf832f7145b2a5491587e790c9e" + integrity sha512-Og5RrTzwFhrKoA79c3MLkfrIBYmwuf/X83s+JQtz/Dkk/MpsaKtqHV1OOzYkogQ+tj3oYp5Mq39XotBXNqVc3Q== + dependencies: + postcss-selector-parser "^6.0.9" + +"@csstools/postcss-normalize-display-values@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.0.tgz#ce698f688c28517447aedf15a9037987e3d2dc97" + integrity sha512-bX+nx5V8XTJEmGtpWTO6kywdS725t71YSLlxWt78XoHUbELWgoCXeOFymRJmL3SU1TLlKSIi7v52EWqe60vJTQ== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-oklab-function@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.0.2.tgz#87cd646e9450347a5721e405b4f7cc35157b7866" + integrity sha512-QwhWesEkMlp4narAwUi6pgc6kcooh8cC7zfxa9LSQNYXqzcdNUtNBzbGc5nuyAVreb7uf5Ox4qH1vYT3GA1wOg== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-progressive-custom-properties@^1.1.0", "@csstools/postcss-progressive-custom-properties@^1.2.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz#542292558384361776b45c85226b9a3a34f276fa" + integrity sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA== + dependencies: + postcss-value-parser "^4.2.0" + +"@eslint/eslintrc@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.0.tgz#7ce1547a5c46dfe56e1e45c3c9ed18038c721c6a" + integrity sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.3.1" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@humanwhocodes/config-array@^0.9.2": + version "0.9.5" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" + integrity sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@tailwindcss/typography@^0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.2.tgz#24b069dab24d7a2467d01aca0dd432cb4b29f0ee" + integrity sha512-coq8DBABRPFcVhVIk6IbKyyHUt7YTEC/C992tatFB+yEx5WGBQrCgsSFjxHUr8AWXphWckadVJbominEduYBqw== + dependencies: + lodash.castarray "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.merge "^4.6.2" + +"@types/debug@^4.1.7": + version "4.1.7" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" + integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== + dependencies: + "@types/ms" "*" + +"@types/fs-extra@^9.0.13": + version "9.0.13" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" + integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== + dependencies: + "@types/node" "*" + +"@types/hash-sum@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/hash-sum/-/hash-sum-1.0.0.tgz#838f4e8627887d42b162d05f3d96ca636c2bc504" + integrity sha512-FdLBT93h3kcZ586Aee66HPCVJ6qvxVjBlDWNmxSGSbCZe9hTsjRKdSsl4y1T+3zfujxo9auykQMnFsfyHWD7wg== + +"@types/json-schema@^7.0.9": + version "7.0.9" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" + integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + +"@types/linkify-it@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-3.0.2.tgz#fd2cd2edbaa7eaac7e7f3c1748b52a19143846c9" + integrity sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA== + +"@types/markdown-it@^12.2.3": + version "12.2.3" + resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-12.2.3.tgz#0d6f6e5e413f8daaa26522904597be3d6cd93b51" + integrity sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ== + dependencies: + "@types/linkify-it" "*" + "@types/mdurl" "*" + +"@types/mdurl@*": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9" + integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA== + +"@types/ms@*": + version "0.7.31" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" + integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + +"@types/node@*": + version "17.0.21" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.21.tgz#864b987c0c68d07b4345845c3e63b75edd143644" + integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/webpack-env@^1.16.3": + version "1.16.3" + resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.16.3.tgz#b776327a73e561b71e7881d0cd6d34a1424db86a" + integrity sha512-9gtOPPkfyNoEqCQgx4qJKkuNm/x0R2hKR7fdl7zvTJyHnIisuE/LfvXOsYWL0o3qq6uiBnKZNNNzi3l0y/X+xw== + +"@typescript-eslint/eslint-plugin@^5.6.0": + version "5.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.13.0.tgz#2809052b85911ced9c54a60dac10e515e9114497" + integrity sha512-vLktb2Uec81fxm/cfz2Hd6QaWOs8qdmVAZXLdOBX6JFJDhf6oDZpMzZ4/LZ6SFM/5DgDcxIMIvy3F+O9yZBuiQ== + dependencies: + "@typescript-eslint/scope-manager" "5.13.0" + "@typescript-eslint/type-utils" "5.13.0" + "@typescript-eslint/utils" "5.13.0" + debug "^4.3.2" + functional-red-black-tree "^1.0.1" + ignore "^5.1.8" + regexpp "^3.2.0" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/parser@^5.6.0": + version "5.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.13.0.tgz#0394ed8f2f849273c0bf4b811994d177112ced5c" + integrity sha512-GdrU4GvBE29tm2RqWOM0P5QfCtgCyN4hXICj/X9ibKED16136l9ZpoJvCL5pSKtmJzA+NRDzQ312wWMejCVVfg== + dependencies: + "@typescript-eslint/scope-manager" "5.13.0" + "@typescript-eslint/types" "5.13.0" + "@typescript-eslint/typescript-estree" "5.13.0" + debug "^4.3.2" + +"@typescript-eslint/scope-manager@5.13.0": + version "5.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz#cf6aff61ca497cb19f0397eea8444a58f46156b6" + integrity sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA== + dependencies: + "@typescript-eslint/types" "5.13.0" + "@typescript-eslint/visitor-keys" "5.13.0" + +"@typescript-eslint/type-utils@5.13.0": + version "5.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.13.0.tgz#b0efd45c85b7bab1125c97b752cab3a86c7b615d" + integrity sha512-/nz7qFizaBM1SuqAKb7GLkcNn2buRdDgZraXlkhz+vUGiN1NZ9LzkA595tHHeduAiS2MsHqMNhE2zNzGdw43Yg== + dependencies: + "@typescript-eslint/utils" "5.13.0" + debug "^4.3.2" + tsutils "^3.21.0" + +"@typescript-eslint/types@5.13.0": + version "5.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.13.0.tgz#da1de4ae905b1b9ff682cab0bed6b2e3be9c04e5" + integrity sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg== + +"@typescript-eslint/typescript-estree@5.13.0": + version "5.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz#b37c07b748ff030a3e93d87c842714e020b78141" + integrity sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA== + dependencies: + "@typescript-eslint/types" "5.13.0" + "@typescript-eslint/visitor-keys" "5.13.0" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.13.0": + version "5.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.13.0.tgz#2328feca700eb02837298339a2e49c46b41bd0af" + integrity sha512-+9oHlPWYNl6AwwoEt5TQryEHwiKRVjz7Vk6kaBeD3/kwHE5YqTGHtm/JZY8Bo9ITOeKutFaXnBlMgSATMJALUQ== + dependencies: + "@types/json-schema" "^7.0.9" + "@typescript-eslint/scope-manager" "5.13.0" + "@typescript-eslint/types" "5.13.0" + "@typescript-eslint/typescript-estree" "5.13.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/visitor-keys@5.13.0": + version "5.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.13.0.tgz#f45ff55bcce16403b221ac9240fbeeae4764f0fd" + integrity sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g== + dependencies: + "@typescript-eslint/types" "5.13.0" + eslint-visitor-keys "^3.0.0" + +"@vitejs/plugin-vue@^2.1.0": + version "2.2.4" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-2.2.4.tgz#ab8b199ca82496b05d2654c5f34ffcf9b947243d" + integrity sha512-ev9AOlp0ljCaDkFZF3JwC/pD2N4Hh+r5srl5JHM6BKg5+99jiiK0rE/XaRs3pVm1wzyKkjUy/StBSoXX5fFzcw== + +"@vue/compiler-core@3.2.31": + version "3.2.31" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.31.tgz#d38f06c2cf845742403b523ab4596a3fda152e89" + integrity sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/shared" "3.2.31" + estree-walker "^2.0.2" + source-map "^0.6.1" + +"@vue/compiler-dom@3.2.31": + version "3.2.31" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.31.tgz#b1b7dfad55c96c8cc2b919cd7eb5fd7e4ddbf00e" + integrity sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg== + dependencies: + "@vue/compiler-core" "3.2.31" + "@vue/shared" "3.2.31" + +"@vue/compiler-sfc@3.2.31", "@vue/compiler-sfc@^3.2.28": + version "3.2.31" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.31.tgz#d02b29c3fe34d599a52c5ae1c6937b4d69f11c2f" + integrity sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/compiler-core" "3.2.31" + "@vue/compiler-dom" "3.2.31" + "@vue/compiler-ssr" "3.2.31" + "@vue/reactivity-transform" "3.2.31" + "@vue/shared" "3.2.31" + estree-walker "^2.0.2" + magic-string "^0.25.7" + postcss "^8.1.10" + source-map "^0.6.1" + +"@vue/compiler-ssr@3.2.31": + version "3.2.31" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.31.tgz#4fa00f486c9c4580b40a4177871ebbd650ecb99c" + integrity sha512-mjN0rqig+A8TVDnsGPYJM5dpbjlXeHUm2oZHZwGyMYiGT/F4fhJf/cXy8QpjnLQK4Y9Et4GWzHn9PS8AHUnSkw== + dependencies: + "@vue/compiler-dom" "3.2.31" + "@vue/shared" "3.2.31" + +"@vue/devtools-api@^6.0.0", "@vue/devtools-api@^6.0.0-beta.21.1": + version "6.0.12" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.0.12.tgz#7b57cce215ae9f37a86984633b3aa3d595aa5b46" + integrity sha512-iO/4FIezHKXhiDBdKySCvJVh8/mZPxHpiQrTy+PXVqJZgpTPTdHy4q8GXulaY+UKEagdkBb0onxNQZ0LNiqVhw== + +"@vue/reactivity-transform@3.2.31": + version "3.2.31" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.31.tgz#0f5b25c24e70edab2b613d5305c465b50fc00911" + integrity sha512-uS4l4z/W7wXdI+Va5pgVxBJ345wyGFKvpPYtdSgvfJfX/x2Ymm6ophQlXXB6acqGHtXuBqNyyO3zVp9b1r0MOA== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/compiler-core" "3.2.31" + "@vue/shared" "3.2.31" + estree-walker "^2.0.2" + magic-string "^0.25.7" + +"@vue/reactivity@3.2.31": + version "3.2.31" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.31.tgz#fc90aa2cdf695418b79e534783aca90d63a46bbd" + integrity sha512-HVr0l211gbhpEKYr2hYe7hRsV91uIVGFYNHj73njbARVGHQvIojkImKMaZNDdoDZOIkMsBc9a1sMqR+WZwfSCw== + dependencies: + "@vue/shared" "3.2.31" + +"@vue/runtime-core@3.2.31": + version "3.2.31" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.31.tgz#9d284c382f5f981b7a7b5971052a1dc4ef39ac7a" + integrity sha512-Kcog5XmSY7VHFEMuk4+Gap8gUssYMZ2+w+cmGI6OpZWYOEIcbE0TPzzPHi+8XTzAgx1w/ZxDFcXhZeXN5eKWsA== + dependencies: + "@vue/reactivity" "3.2.31" + "@vue/shared" "3.2.31" + +"@vue/runtime-dom@3.2.31": + version "3.2.31" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.31.tgz#79ce01817cb3caf2c9d923f669b738d2d7953eff" + integrity sha512-N+o0sICVLScUjfLG7u9u5XCjvmsexAiPt17GNnaWHJUfsKed5e85/A3SWgKxzlxx2SW/Hw7RQxzxbXez9PtY3g== + dependencies: + "@vue/runtime-core" "3.2.31" + "@vue/shared" "3.2.31" + csstype "^2.6.8" + +"@vue/server-renderer@3.2.31", "@vue/server-renderer@^3.2.28": + version "3.2.31" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.31.tgz#201e9d6ce735847d5989403af81ef80960da7141" + integrity sha512-8CN3Zj2HyR2LQQBHZ61HexF5NReqngLT3oahyiVRfSSvak+oAvVmu8iNLSu6XR77Ili2AOpnAt1y8ywjjqtmkg== + dependencies: + "@vue/compiler-ssr" "3.2.31" + "@vue/shared" "3.2.31" + +"@vue/shared@3.2.31", "@vue/shared@^3.2.28": + version "3.2.31" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.31.tgz#c90de7126d833dcd3a4c7534d534be2fb41faa4e" + integrity sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ== + +"@vuepress/bundler-vite@2.0.0-beta.36": + version "2.0.0-beta.36" + resolved "https://registry.yarnpkg.com/@vuepress/bundler-vite/-/bundler-vite-2.0.0-beta.36.tgz#2e0940ca8ac8911e7f8a407b417cf2723aab4ce9" + integrity sha512-wIWbBhLtGotQ1zJGkCHFllKmmpqG2FhcIhoUPY8/VESOmKyUrE6Mbbsk5g8Un0kFbhiF3eFYP1eUxbZttbbpkA== + dependencies: + "@vitejs/plugin-vue" "^2.1.0" + "@vue/compiler-sfc" "^3.2.28" + "@vue/server-renderer" "^3.2.28" + "@vuepress/client" "2.0.0-beta.35" + "@vuepress/core" "2.0.0-beta.36" + "@vuepress/shared" "2.0.0-beta.35" + "@vuepress/utils" "2.0.0-beta.35" + autoprefixer "^10.4.2" + connect-history-api-fallback "^1.6.0" + postcss "^8.4.5" + postcss-csso "^6.0.0" + rollup "^2.66.0" + vite "^2.7.13" + vue "^3.2.28" + vue-router "^4.0.12" + +"@vuepress/cli@2.0.0-beta.36": + version "2.0.0-beta.36" + resolved "https://registry.yarnpkg.com/@vuepress/cli/-/cli-2.0.0-beta.36.tgz#bfd8ff08434e7249bdf28577ba9c21294f110b45" + integrity sha512-tGhC4OgdgOOoXGw79HFAJz5y9t9YRNdSsgkMRJvCAv9f257X+M/Ex/Qh3hfcnge+OBuMj63JLDB0FDRQWeJFUA== + dependencies: + "@vuepress/core" "2.0.0-beta.36" + "@vuepress/utils" "2.0.0-beta.35" + cac "^6.7.12" + chokidar "^3.5.3" + envinfo "^7.8.1" + esbuild "^0.13.12" + +"@vuepress/client@2.0.0-beta.35", "@vuepress/client@^2.0.0-beta.35": + version "2.0.0-beta.35" + resolved "https://registry.yarnpkg.com/@vuepress/client/-/client-2.0.0-beta.35.tgz#943b3b84e882a1b0c5e50b46dc1f12df557e71a2" + integrity sha512-oQj+fDvfDDJ+fPpcVVRJLeVX1QmnLCcpLBxPBVhqMD0WAFkj+sCBaeq0sQc5CwDaNysDcN71ACeuEpLDOEtCgQ== + dependencies: + "@vue/devtools-api" "^6.0.0-beta.21.1" + "@vuepress/shared" "2.0.0-beta.35" + vue "^3.2.28" + vue-router "^4.0.12" + +"@vuepress/core@2.0.0-beta.36", "@vuepress/core@^2.0.0-beta.36": + version "2.0.0-beta.36" + resolved "https://registry.yarnpkg.com/@vuepress/core/-/core-2.0.0-beta.36.tgz#934c9b40ed2fbc622d9a652a9bda63cbd48c02d0" + integrity sha512-RBj2Tkgt2f7NMCfox1iKgd6V87X5qj8G/cpJm7R65IielaXkNGGKjgidOrLKRCA3X0c/COwmaBrdiFxJtOtIRw== + dependencies: + "@vuepress/client" "2.0.0-beta.35" + "@vuepress/markdown" "2.0.0-beta.36" + "@vuepress/shared" "2.0.0-beta.35" + "@vuepress/utils" "2.0.0-beta.35" + gray-matter "^4.0.3" + toml "^3.0.0" + +"@vuepress/markdown@2.0.0-beta.36": + version "2.0.0-beta.36" + resolved "https://registry.yarnpkg.com/@vuepress/markdown/-/markdown-2.0.0-beta.36.tgz#cb2765c2736c5257dbefc425480d146330bd60c9" + integrity sha512-Amvo7YuSbMZIfj24kwXDen81RsjliXTDvhv+R14aH4NbH9rpwKzTTtbmjWH6O/upqikDYIXhlozHjr1nEf1qHw== + dependencies: + "@types/markdown-it" "^12.2.3" + "@vuepress/shared" "2.0.0-beta.35" + "@vuepress/utils" "2.0.0-beta.35" + markdown-it "^12.3.2" + markdown-it-anchor "^8.4.1" + markdown-it-emoji "^2.0.0" + mdurl "^1.0.1" + +"@vuepress/plugin-active-header-links@2.0.0-beta.36", "@vuepress/plugin-active-header-links@^2.0.0-beta.36": + version "2.0.0-beta.36" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-active-header-links/-/plugin-active-header-links-2.0.0-beta.36.tgz#6ec2953c27f6ce9dbbfdcdcef3f847f8b5ac927d" + integrity sha512-jeH1sieF1M/2M33JoUXe5RuRcdlGvUqMIq2wGdnwfXZn7YzcZtM8bmmhgpZw5yTuW6mT59b5SwEINptkZDKtUw== + dependencies: + "@vuepress/client" "2.0.0-beta.35" + "@vuepress/core" "2.0.0-beta.36" + "@vuepress/utils" "2.0.0-beta.35" + ts-debounce "^4.0.0" + vue "^3.2.28" + vue-router "^4.0.12" + +"@vuepress/plugin-back-to-top@2.0.0-beta.36", "@vuepress/plugin-back-to-top@^2.0.0-beta.36": + version "2.0.0-beta.36" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-back-to-top/-/plugin-back-to-top-2.0.0-beta.36.tgz#33b310e0b73e281aa0afcb16e261c180f2761f0a" + integrity sha512-BwWa/EeKvboG22m4HmnCEfs/RcPtQ5pL5uVss8+POLgDSICKDGhuHrQiH/DtgqbceXZCryNlJhLkNXQ6TxcR+A== + dependencies: + "@vuepress/core" "2.0.0-beta.36" + "@vuepress/utils" "2.0.0-beta.35" + ts-debounce "^4.0.0" + vue "^3.2.28" + +"@vuepress/plugin-container@2.0.0-beta.36", "@vuepress/plugin-container@^2.0.0-beta.36": + version "2.0.0-beta.36" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-container/-/plugin-container-2.0.0-beta.36.tgz#b5a553a8999500eb92f628329a69e5777ea90f53" + integrity sha512-65DjPd2RHnbk8wvyPimalC7K+dHbb41fWH8bPdJL6EhFPBCdplXmDHjR8sLU/15HGrF8ms8PRJ0nKRv5WUEsrw== + dependencies: + "@types/markdown-it" "^12.2.3" + "@vuepress/core" "2.0.0-beta.36" + "@vuepress/markdown" "2.0.0-beta.36" + "@vuepress/shared" "2.0.0-beta.35" + "@vuepress/utils" "2.0.0-beta.35" + markdown-it "^12.3.2" + markdown-it-container "^3.0.0" + +"@vuepress/plugin-external-link-icon@2.0.0-beta.36": + version "2.0.0-beta.36" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-external-link-icon/-/plugin-external-link-icon-2.0.0-beta.36.tgz#5d37b58fdba3268ac56bb5848aef98ee48f2501e" + integrity sha512-t8UHhvxT7Zwwv+bV+jKZ1fnTKxk6FHOQ9ydGnGWje7YTL097FppSrWFdMRFVTWBfqRKkrSOx5gB2LIz2pELWvA== + dependencies: + "@vuepress/client" "2.0.0-beta.35" + "@vuepress/core" "2.0.0-beta.36" + "@vuepress/markdown" "2.0.0-beta.36" + "@vuepress/utils" "2.0.0-beta.35" + vue "^3.2.28" + +"@vuepress/plugin-git@2.0.0-beta.36", "@vuepress/plugin-git@^2.0.0-beta.36": + version "2.0.0-beta.36" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-git/-/plugin-git-2.0.0-beta.36.tgz#ac0d8e00916ed7049ffc47490d3a64213d84a519" + integrity sha512-Q2fIaExIZTZHWcJzelRMSf41yvfLUto2vFB9sMmpgRZ+vqFpPwruyR7XGmBxHMiSIjBFPbjAPadgB3hpoDKyiQ== + dependencies: + "@vuepress/core" "2.0.0-beta.36" + execa "^5.1.1" + +"@vuepress/plugin-medium-zoom@2.0.0-beta.36", "@vuepress/plugin-medium-zoom@^2.0.0-beta.36": + version "2.0.0-beta.36" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-medium-zoom/-/plugin-medium-zoom-2.0.0-beta.36.tgz#534760a5c794d9b60768b6d5ae5bcf190aad8889" + integrity sha512-5qarMKNvypwYgo/ojOGSAKqug9mlmkzzaHGqX9w2rObYB0kCyV1CuqFOqd0Eg/3vif3B0fDOVgEIomjvgc8rQw== + dependencies: + "@vuepress/client" "2.0.0-beta.35" + "@vuepress/core" "2.0.0-beta.36" + "@vuepress/utils" "2.0.0-beta.35" + medium-zoom "^1.0.6" + vue "^3.2.28" + +"@vuepress/plugin-nprogress@2.0.0-beta.36", "@vuepress/plugin-nprogress@^2.0.0-beta.36": + version "2.0.0-beta.36" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-nprogress/-/plugin-nprogress-2.0.0-beta.36.tgz#fa7b1903f74ea48a27cb3b00cad605a4bab4930d" + integrity sha512-PFDFdvWQvvkGCiYi2jiCiRggP984yAYyZtSuK9eX3A9itYi0Qp+ck10tc+7cGQc1B97zg3FHVyA0BJcXUJwiJQ== + dependencies: + "@vuepress/client" "2.0.0-beta.35" + "@vuepress/core" "2.0.0-beta.36" + "@vuepress/utils" "2.0.0-beta.35" + nprogress "^0.2.0" + vue "^3.2.28" + vue-router "^4.0.12" + +"@vuepress/plugin-palette@2.0.0-beta.36", "@vuepress/plugin-palette@^2.0.0-beta.36": + version "2.0.0-beta.36" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-palette/-/plugin-palette-2.0.0-beta.36.tgz#72dfa8c79f987ca03e6705515fe2b48754125ca4" + integrity sha512-37D1uwX1j91niSu6f//26azS18FSD3g93NJs8LM3HAim4XtzCRaFSnI90MNG2++4Aelx2SSx86M4OjVdb1oCKw== + dependencies: + "@vuepress/core" "2.0.0-beta.36" + "@vuepress/utils" "2.0.0-beta.35" + chokidar "^3.5.3" + +"@vuepress/plugin-prismjs@2.0.0-beta.36", "@vuepress/plugin-prismjs@^2.0.0-beta.36": + version "2.0.0-beta.36" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-prismjs/-/plugin-prismjs-2.0.0-beta.36.tgz#6344880364ba828919569519cb7312792546f8c9" + integrity sha512-xQ+Qa8ODt3K5blEZa2THTmXFO5/RrBjAgkk0u1JmPdVB8FoQAjdSaxZIs9vTBwCMCIexd6c3cC+MaPT2OVrgdA== + dependencies: + "@vuepress/core" "2.0.0-beta.36" + prismjs "^1.26.0" + +"@vuepress/plugin-theme-data@2.0.0-beta.36", "@vuepress/plugin-theme-data@^2.0.0-beta.36": + version "2.0.0-beta.36" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-theme-data/-/plugin-theme-data-2.0.0-beta.36.tgz#298fd9b160de886d003705615dbeee8ca2712a2b" + integrity sha512-1Fxj7F0rIARYa/gQmsUql3f7wPF3ML4Fs6kcPHXYll7ZNDLR1OBw9HIGJ7lW4qx37f6YfYs2RjefAuwkVFUn/A== + dependencies: + "@vue/devtools-api" "^6.0.0-beta.21.1" + "@vuepress/client" "2.0.0-beta.35" + "@vuepress/core" "2.0.0-beta.36" + "@vuepress/shared" "2.0.0-beta.35" + "@vuepress/utils" "2.0.0-beta.35" + vue "^3.2.28" + +"@vuepress/shared@2.0.0-beta.35", "@vuepress/shared@^2.0.0-beta.35": + version "2.0.0-beta.35" + resolved "https://registry.yarnpkg.com/@vuepress/shared/-/shared-2.0.0-beta.35.tgz#3a717903f18a2c5cbf9e456ac93d904bb8ebd3bf" + integrity sha512-sU+ekNDv22YG16B1XmZyMD+A94QbAUgTp5FTs+X2POU9UQCIZCuFhgTM9TfAnSgD/6lnbp2Aljwg5fJAidPQmw== + dependencies: + "@vue/shared" "^3.2.28" + +"@vuepress/theme-default@2.0.0-beta.36", "@vuepress/theme-default@^2.0.0-beta.36": + version "2.0.0-beta.36" + resolved "https://registry.yarnpkg.com/@vuepress/theme-default/-/theme-default-2.0.0-beta.36.tgz#4b792f10c784526747c447e30e0d71cf77b4a083" + integrity sha512-3QqRL96MzKDamHo5bw9ldO2DHTxE+nwEHv1u2PsZusyMRoxyP1h2wPFHPhGaR+fhxFC9Ou9dOq4Ay2xiIU1piA== + dependencies: + "@vuepress/client" "2.0.0-beta.35" + "@vuepress/core" "2.0.0-beta.36" + "@vuepress/plugin-active-header-links" "2.0.0-beta.36" + "@vuepress/plugin-back-to-top" "2.0.0-beta.36" + "@vuepress/plugin-container" "2.0.0-beta.36" + "@vuepress/plugin-external-link-icon" "2.0.0-beta.36" + "@vuepress/plugin-git" "2.0.0-beta.36" + "@vuepress/plugin-medium-zoom" "2.0.0-beta.36" + "@vuepress/plugin-nprogress" "2.0.0-beta.36" + "@vuepress/plugin-palette" "2.0.0-beta.36" + "@vuepress/plugin-prismjs" "2.0.0-beta.36" + "@vuepress/plugin-theme-data" "2.0.0-beta.36" + "@vuepress/shared" "2.0.0-beta.35" + "@vuepress/utils" "2.0.0-beta.35" + "@vueuse/core" "^7.5.4" + sass "^1.49.0" + sass-loader "^12.4.0" + vue "^3.2.28" + vue-router "^4.0.12" + +"@vuepress/utils@2.0.0-beta.35", "@vuepress/utils@^2.0.0-beta.35": + version "2.0.0-beta.35" + resolved "https://registry.yarnpkg.com/@vuepress/utils/-/utils-2.0.0-beta.35.tgz#439000c65012b014736fd6bb7e787e22da840bd3" + integrity sha512-359RVp8T5w+OB/rKy3DYBFqrH98IDWxiB2pf1Z9vgUA54p5xWBbvmh5GwIAfz1PDjpC5BOIk1b1/03VgcJSZFg== + dependencies: + "@types/debug" "^4.1.7" + "@types/fs-extra" "^9.0.13" + "@types/hash-sum" "^1.0.0" + "@vuepress/shared" "2.0.0-beta.35" + chalk "^4.1.2" + debug "^4.3.3" + fs-extra "^10.0.0" + globby "^11.0.4" + hash-sum "^2.0.0" + ora "^5.4.1" + upath "^2.0.1" + +"@vueuse/core@^7.5.4", "@vueuse/core@^7.7.1": + version "7.7.1" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-7.7.1.tgz#fc284f4103de73c7fb79bc06579d8066790db511" + integrity sha512-PRRgbATMpoeUmkCEBtUeJgOwtew8s+4UsEd+Pm7MhkjL2ihCNrSqxNVtM6NFE4uP2sWnkGcZpCjPuNSxowJ1Ow== + dependencies: + "@vueuse/shared" "7.7.1" + vue-demi "*" + +"@vueuse/shared@7.7.1": + version "7.7.1" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-7.7.1.tgz#77e312de7275380efce86b0079bd7938791a076b" + integrity sha512-rN2qd22AUl7VdBxihagWyhUNHCyVk9IpvBTTfHoLH9G7rGE552X1f+zeCfehuno0zXif13jPw+icW/wn2a0rnQ== + dependencies: + vue-demi "*" + +acorn-jsx@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-node@^1.6.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" + integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== + dependencies: + acorn "^7.0.0" + acorn-walk "^7.0.0" + xtend "^4.0.2" + +acorn-walk@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^7.0.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.7.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" + integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv@^6.10.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.1.tgz#eb0c9a8f77786cad2af8ff2b862899842d7b6adb" + integrity sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-includes@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" + integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + get-intrinsic "^1.1.1" + is-string "^1.0.7" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array.prototype.flat@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" + integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + +autoprefixer@^10.4.2: + version "10.4.2" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.2.tgz#25e1df09a31a9fba5c40b578936b90d35c9d4d3b" + integrity sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ== + dependencies: + browserslist "^4.19.1" + caniuse-lite "^1.0.30001297" + fraction.js "^4.1.2" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.19.1: + version "4.19.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.3.tgz#29b7caad327ecf2859485f696f9604214bedd383" + integrity sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg== + dependencies: + caniuse-lite "^1.0.30001312" + electron-to-chromium "^1.4.71" + escalade "^3.1.1" + node-releases "^2.0.2" + picocolors "^1.0.0" + +browserslist@^4.19.3: + version "4.20.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.0.tgz#35951e3541078c125d36df76056e94738a52ebe9" + integrity sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ== + dependencies: + caniuse-lite "^1.0.30001313" + electron-to-chromium "^1.4.76" + escalade "^3.1.1" + node-releases "^2.0.2" + picocolors "^1.0.0" + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +cac@^6.7.12: + version "6.7.12" + resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.12.tgz#6fb5ea2ff50bd01490dbda497f4ae75a99415193" + integrity sha512-rM7E2ygtMkJqD9c7WnFU6fruFcN3xe4FM5yUmgxhZzIKJk4uHl9U/fhwdajGFQbQuv43FAUo1Fe8gX/oIKDeSA== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + +caniuse-lite@^1.0.30001297, caniuse-lite@^1.0.30001312: + version "1.0.30001313" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001313.tgz#a380b079db91621e1b7120895874e2fd62ed2e2f" + integrity sha512-rI1UN0koZUiKINjysQDuRi2VeSCce3bYJNmDcj3PIKREiAmjakugBul1QSkg/fPrlULYl6oWfGg3PbgOSY9X4Q== + +caniuse-lite@^1.0.30001313: + version "1.0.30001314" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001314.tgz#65c7f9fb7e4594fca0a333bec1d8939662377596" + integrity sha512-0zaSO+TnCHtHJIbpLroX7nsD+vYuOVjl3uzFbJO1wMVbuveJA0RK2WcQA9ZUIOiO0/ArMiMgHJLxfEZhQiC0kw== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.5.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" + integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.1.4, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concurrently@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-7.0.0.tgz#78d31b441cec338dab03316c221a2f9a67c529b0" + integrity sha512-WKM7PUsI8wyXpF80H+zjHP32fsgsHNQfPLw/e70Z5dYkV7hF+rf8q3D+ScWJIEr57CpkO3OWBko6hwhQLPR8Pw== + dependencies: + chalk "^4.1.0" + date-fns "^2.16.1" + lodash "^4.17.21" + rxjs "^6.6.3" + spawn-command "^0.0.2-1" + supports-color "^8.1.0" + tree-kill "^1.2.2" + yargs "^16.2.0" + +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +cosmiconfig@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +cpx2@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/cpx2/-/cpx2-4.2.0.tgz#d65c52fc1e804f6567f57868cd1e88aaab367316" + integrity sha512-Ik81d7J849x0dGpR/8TBLXc1MwkFuv29kkstgLau8IOQwptrEENsXefC4o+tnkTjiFnXbsaz08/6YSZdJER+nQ== + dependencies: + debounce "^1.2.0" + debug "^4.1.1" + duplexer "^0.1.1" + fs-extra "^10.0.0" + glob-gitignore "^1.0.14" + glob2base "0.0.12" + ignore "^5.1.8" + minimatch "^3.0.4" + p-map "^4.0.0" + resolve "^1.12.0" + safe-buffer "^5.2.0" + shell-quote "^1.7.1" + subarg "^1.0.0" + +cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +css-blank-pseudo@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz#36523b01c12a25d812df343a32c322d2a2324561" + integrity sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ== + dependencies: + postcss-selector-parser "^6.0.9" + +css-has-pseudo@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz#57f6be91ca242d5c9020ee3e51bbb5b89fc7af73" + integrity sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw== + dependencies: + postcss-selector-parser "^6.0.9" + +css-prefers-color-scheme@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz#ca8a22e5992c10a5b9d315155e7caee625903349" + integrity sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA== + +css-tree@~2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.0.4.tgz#be44314f17e9ac85fe894a5888941782e1123c29" + integrity sha512-b4IS9ZUMtGBiNjzYbcj9JhYbyei99R3ai2CSxlu8GQDnoPA/P+NU85hAm0eKDc/Zp660rpK6tFJQ2OSdacMHVg== + dependencies: + mdn-data "2.0.23" + source-map-js "^1.0.1" + +cssdb@^6.4.0: + version "6.4.1" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-6.4.1.tgz#a2b5955e3283d8df6b6bb86e4107fedaeec1521b" + integrity sha512-R70R/Q1fPlM1D6Y+Kpat0QjiY+aMsY2/8lekdVoYcJ7ZQs9kw71W78FdOMf8DFq975KHQf1089PNg1dLsbAhoA== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +csso@^5.0.1: + version "5.0.2" + resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.2.tgz#74b585e8a5acd655132ae80d9ca32fb126e0b0bb" + integrity sha512-llFAe1UfFHy38ziX+YrPMGkn5MxdjzYtz0drvgnjRY/tLPmBRxotYTGO51BsKe9voQA074pEb0udV+piXH4scQ== + dependencies: + css-tree "~2.0.4" + +csstype@^2.6.8: + version "2.6.20" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.20.tgz#9229c65ea0b260cf4d3d997cb06288e36a8d6dda" + integrity sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA== + +date-fns@^2.16.1: + version "2.28.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.28.0.tgz#9570d656f5fc13143e50c975a3b6bbeb46cd08b2" + integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw== + +dayjs@^1.10.8: + version "1.10.8" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.8.tgz#267df4bc6276fcb33c04a6735287e3f429abec41" + integrity sha512-wbNwDfBHHur9UOzNUjeKUOJ0fCb0a52Wx0xInmQ7Y8FstyajiV1NmK1e00cxsr9YrE9r7yAChE0VvpuY5Rnlow== + +debounce@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== + +debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.1, debug@^4.3.2, debug@^4.3.3: + version "4.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" + integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== + dependencies: + ms "2.1.2" + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= + +detective@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" + integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg== + dependencies: + acorn-node "^1.6.1" + defined "^1.0.0" + minimist "^1.1.1" + +didyoumean@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +duplexer@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +electron-to-chromium@^1.4.71: + version "1.4.76" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.76.tgz#a0494baedaf51094b1c172999919becd9975a934" + integrity sha512-3Vftv7cenJtQb+k00McEBZ2vVmZ/x+HEF7pcZONZIkOsESqAqVuACmBxMv0JhzX7u0YltU0vSqRqgBSTAhFUjA== + +electron-to-chromium@^1.4.76: + version "1.4.80" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.80.tgz#299a1ea3e32810934b4e3c2e4d4cb53136fdab3f" + integrity sha512-COsbJCGVYCc/aAY4cd94x1Js3q0r406YKGbdL8LXHg0O9dEjuFEFU/vZneRxBxKo/f1lLHi0YyAR7sbFM+i8Bg== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +entities@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" + integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== + +envinfo@^7.8.1: + version "7.8.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" + integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.19.0, es-abstract@^1.19.1: + version "1.19.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" + integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-symbols "^1.0.2" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.1" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.1" + is-string "^1.0.7" + is-weakref "^1.0.1" + object-inspect "^1.11.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +esbuild-android-64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.25.tgz#d532d38cb5fe0ae45167ce35f4bbc784c636be40" + integrity sha512-L5vCUk7TzFbBnoESNoXjU3x9+/+7TDIE/1mTfy/erAfvZAqC+S3sp/Qa9wkypFMcFvN9FzvESkTlpeQDolREtQ== + +esbuild-android-arm64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz#3fc3ff0bab76fe35dd237476b5d2b32bb20a3d44" + integrity sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg== + +esbuild-android-arm64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.25.tgz#9c5bb3366aabfd14a1c726d36978b79441dfcb6e" + integrity sha512-4jv5xPjM/qNm27T5j3ZEck0PvjgQtoMHnz4FzwF5zNP56PvY2CT0WStcAIl6jNlsuDdN63rk2HRBIsO6xFbcFw== + +esbuild-darwin-64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz#8e9169c16baf444eacec60d09b24d11b255a8e72" + integrity sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ== + +esbuild-darwin-64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.25.tgz#05dcdb6d884f427039ffee5e92ff97527e56c26d" + integrity sha512-TGp8tuudIxOyWd1+8aYPxQmC1ZQyvij/AfNBa35RubixD0zJ1vkKHVAzo0Zao1zcG6pNqiSyzfPto8vmg0s7oA== + +esbuild-darwin-arm64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz#1b07f893b632114f805e188ddfca41b2b778229a" + integrity sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ== + +esbuild-darwin-arm64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.25.tgz#28e080da4ea0cfe9498071e7f8060498caee1a95" + integrity sha512-oTcDgdm0MDVEmw2DWu8BV68pYuImpFgvWREPErBZmNA4MYKGuBRaCiJqq6jZmBR1x+3y1DWCjez+5uLtuAm6mw== + +esbuild-freebsd-64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz#0b8b7eca1690c8ec94c75680c38c07269c1f4a85" + integrity sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA== + +esbuild-freebsd-64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.25.tgz#200d3664a3b945bc9fdcba73614b49a11ebd1cfa" + integrity sha512-ueAqbnMZ8arnuLH8tHwTCQYeptnHOUV7vA6px6j4zjjQwDx7TdP7kACPf3TLZLdJQ3CAD1XCvQ2sPhX+8tacvQ== + +esbuild-freebsd-arm64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz#2e1a6c696bfdcd20a99578b76350b41db1934e52" + integrity sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ== + +esbuild-freebsd-arm64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.25.tgz#624b08c5da6013bdc312aaa23c4ff409580f5c3c" + integrity sha512-+ZVWud2HKh+Ob6k/qiJWjBtUg4KmJGGmbvEXXW1SNKS7hW7HU+Zq2ZCcE1akFxOPkVB+EhOty/sSek30tkCYug== + +esbuild-linux-32@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz#6fd39f36fc66dd45b6b5f515728c7bbebc342a69" + integrity sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g== + +esbuild-linux-32@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.25.tgz#0238e597eb0b60aa06c7e98fccbbfd6bb9a0d6c5" + integrity sha512-3OP/lwV3kCzEz45tobH9nj+uE4ubhGsfx+tn0L26WAGtUbmmcRpqy7XRG/qK7h1mClZ+eguIANcQntYMdYklfw== + +esbuild-linux-64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz#9cb8e4bcd7574e67946e4ee5f1f1e12386bb6dd3" + integrity sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA== + +esbuild-linux-64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.25.tgz#8a8b8cf47dfce127c858e71229d9a385a82c62e8" + integrity sha512-+aKHdHZmX9qwVlQmu5xYXh7GsBFf4TWrePgeJTalhXHOG7NNuUwoHmketGiZEoNsWyyqwH9rE5BC+iwcLY30Ug== + +esbuild-linux-arm64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz#3891aa3704ec579a1b92d2a586122e5b6a2bfba1" + integrity sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA== + +esbuild-linux-arm64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.25.tgz#7ac94371418a2640ba413bc1700aaedeb2794e52" + integrity sha512-UxfenPx/wSZx55gScCImPtXekvZQLI2GW3qe5dtlmU7luiqhp5GWPzGeQEbD3yN3xg/pHc671m5bma5Ns7lBHw== + +esbuild-linux-arm@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz#8a00e99e6a0c6c9a6b7f334841364d8a2b4aecfe" + integrity sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA== + +esbuild-linux-arm@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.25.tgz#034bd18e9310b9f010c89f90ef7f05706689600b" + integrity sha512-aTLcE2VBoLydL943REcAcgnDi3bHtmULSXWLbjtBdtykRatJVSxKMjK9YlBXUZC4/YcNQfH7AxwVeQr9fNxPhw== + +esbuild-linux-mips64le@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz#36b07cc47c3d21e48db3bb1f4d9ef8f46aead4f7" + integrity sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg== + +esbuild-linux-mips64le@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.25.tgz#05f98a8cf6b578eab6b4e6b0ab094f37530934f4" + integrity sha512-wLWYyqVfYx9Ur6eU5RT92yJVsaBGi5RdkoWqRHOqcJ38Kn60QMlcghsKeWfe9jcYut8LangYZ98xO1LxIoSXrQ== + +esbuild-linux-ppc64le@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz#f7e6bba40b9a11eb9dcae5b01550ea04670edad2" + integrity sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ== + +esbuild-linux-ppc64le@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.25.tgz#46fd0add8d8535678439d7a9c2876ad20042d952" + integrity sha512-0dR6Csl6Zas3g4p9ULckEl8Mo8IInJh33VCJ3eaV1hj9+MHGdmDOakYMN8MZP9/5nl+NU/0ygpd14cWgy8uqRw== + +esbuild-linux-riscv64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.25.tgz#ea2e986f0f3e5df73c635135dd778051734fc605" + integrity sha512-J4d20HDmTrgvhR0bdkDhvvJGaikH3LzXQnNaseo8rcw9Yqby9A90gKUmWpfwqLVNRILvNnAmKLfBjCKU9ajg8w== + +esbuild-linux-s390x@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.25.tgz#efe89486e9a1b1508925048076e3f3a6698aa6a3" + integrity sha512-YI2d5V6nTE73ZnhEKQD7MtsPs1EtUZJ3obS21oxQxGbbRw1G+PtJKjNyur+3t6nzHP9oTg6GHQ3S3hOLLmbDIQ== + +esbuild-netbsd-64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz#a2fedc549c2b629d580a732d840712b08d440038" + integrity sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w== + +esbuild-netbsd-64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.25.tgz#439fe27d8ee3b5887501ee63988e85f920107db6" + integrity sha512-TKIVgNWLUOkr+Exrye70XTEE1lJjdQXdM4tAXRzfHE9iBA7LXWcNtVIuSnphTqpanPzTDFarF0yqq4kpbC6miA== + +esbuild-openbsd-64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz#b22c0e5806d3a1fbf0325872037f885306b05cd7" + integrity sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g== + +esbuild-openbsd-64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.25.tgz#31ebf616aadf6e60674469f2b92cec92280d9930" + integrity sha512-QgFJ37A15D7NIXBTYEqz29+uw3nNBOIyog+3kFidANn6kjw0GHZ0lEYQn+cwjyzu94WobR+fes7cTl/ZYlHb1A== + +esbuild-sunos-64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz#d0b6454a88375ee8d3964daeff55c85c91c7cef4" + integrity sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw== + +esbuild-sunos-64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.25.tgz#815e4f936d74970292a63ccfd5791fe5e3569f5f" + integrity sha512-rmWfjUItYIVlqr5EnTH1+GCxXiBOC42WBZ3w++qh7n2cS9Xo0lO5pGSG2N+huOU2fX5L+6YUuJ78/vOYvefeFw== + +esbuild-windows-32@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz#c96d0b9bbb52f3303322582ef8e4847c5ad375a7" + integrity sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw== + +esbuild-windows-32@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.25.tgz#189e14df2478f2c193c86968ab1fb54e1ceaafd2" + integrity sha512-HGAxVUofl3iUIz9W10Y9XKtD0bNsK9fBXv1D55N/ljNvkrAYcGB8YCm0v7DjlwtyS6ws3dkdQyXadbxkbzaKOA== + +esbuild-windows-64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.15.tgz#1f79cb9b1e1bb02fb25cd414cb90d4ea2892c294" + integrity sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ== + +esbuild-windows-64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.25.tgz#3d5fbfdc3856850bb47439299e3b60dd18be111f" + integrity sha512-TirEohRkfWU9hXLgoDxzhMQD1g8I2mOqvdQF2RS9E/wbkORTAqJHyh7wqGRCQAwNzdNXdg3JAyhQ9/177AadWA== + +esbuild-windows-arm64@0.13.15: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz#482173070810df22a752c686509c370c3be3b3c3" + integrity sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA== + +esbuild-windows-arm64@0.14.25: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.25.tgz#8b243cbbad8a86cf98697da9ccb88c05df2ef458" + integrity sha512-4ype9ERiI45rSh+R8qUoBtaj6kJvUOI7oVLhKqPEpcF4Pa5PpT3hm/mXAyotJHREkHpM87PAJcA442mLnbtlNA== + +esbuild@^0.13.12: + version "0.13.15" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.15.tgz#db56a88166ee373f87dbb2d8798ff449e0450cdf" + integrity sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw== + optionalDependencies: + esbuild-android-arm64 "0.13.15" + esbuild-darwin-64 "0.13.15" + esbuild-darwin-arm64 "0.13.15" + esbuild-freebsd-64 "0.13.15" + esbuild-freebsd-arm64 "0.13.15" + esbuild-linux-32 "0.13.15" + esbuild-linux-64 "0.13.15" + esbuild-linux-arm "0.13.15" + esbuild-linux-arm64 "0.13.15" + esbuild-linux-mips64le "0.13.15" + esbuild-linux-ppc64le "0.13.15" + esbuild-netbsd-64 "0.13.15" + esbuild-openbsd-64 "0.13.15" + esbuild-sunos-64 "0.13.15" + esbuild-windows-32 "0.13.15" + esbuild-windows-64 "0.13.15" + esbuild-windows-arm64 "0.13.15" + +esbuild@^0.14.14: + version "0.14.25" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.25.tgz#ddb9d47b91ca76abb7d850ce3dfed0bc3dc88d16" + integrity sha512-4JHEIOMNFvK09ziiL+iVmldIhLbn49V4NAVo888tcGFKedEZY/Y8YapfStJ6zSE23tzYPKxqKwQBnQoIO0BI/Q== + optionalDependencies: + esbuild-android-64 "0.14.25" + esbuild-android-arm64 "0.14.25" + esbuild-darwin-64 "0.14.25" + esbuild-darwin-arm64 "0.14.25" + esbuild-freebsd-64 "0.14.25" + esbuild-freebsd-arm64 "0.14.25" + esbuild-linux-32 "0.14.25" + esbuild-linux-64 "0.14.25" + esbuild-linux-arm "0.14.25" + esbuild-linux-arm64 "0.14.25" + esbuild-linux-mips64le "0.14.25" + esbuild-linux-ppc64le "0.14.25" + esbuild-linux-riscv64 "0.14.25" + esbuild-linux-s390x "0.14.25" + esbuild-netbsd-64 "0.14.25" + esbuild-openbsd-64 "0.14.25" + esbuild-sunos-64 "0.14.25" + esbuild-windows-32 "0.14.25" + esbuild-windows-64 "0.14.25" + esbuild-windows-arm64 "0.14.25" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-config-prettier@^8.3.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" + integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== + +eslint-config-standard@^16.0.3: + version "16.0.3" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz#6c8761e544e96c531ff92642eeb87842b8488516" + integrity sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg== + +eslint-config-vuepress-typescript@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/eslint-config-vuepress-typescript/-/eslint-config-vuepress-typescript-2.5.0.tgz#aff404d931c7acdaf4f73593ea92bbd01e3c8940" + integrity sha512-1C3XtyNfL4nsTmi+I8uW88mu9SxXcrrsjGFIOccgkIAJDLgrt2ah5ESEXpBm7V4TG6uxKwu8Q2dUkZmDhb3YAg== + dependencies: + "@typescript-eslint/eslint-plugin" "^5.6.0" + "@typescript-eslint/parser" "^5.6.0" + eslint-config-standard "^16.0.3" + eslint-config-vuepress "3.5.0" + +eslint-config-vuepress@3.5.0, eslint-config-vuepress@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/eslint-config-vuepress/-/eslint-config-vuepress-3.5.0.tgz#c6825e8d4a337750aab15f7e31087830a078839b" + integrity sha512-wO8UG/rdTLj2xhVHd4qUu75kLyvo8qDuALkvorY716E883yufjriRm5XJ8TKK3P8hRjD9kCrsh6NuLqv17OAbQ== + dependencies: + eslint-config-prettier "^8.3.0" + eslint-config-standard "^16.0.3" + eslint-plugin-import "^2.25.3" + eslint-plugin-node "^11.1.0" + eslint-plugin-prettier "^4.0.0" + eslint-plugin-promise "^5.2.0" + eslint-plugin-vue "^8.0.0" + +eslint-import-resolver-node@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" + integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== + dependencies: + debug "^3.2.7" + resolve "^1.20.0" + +eslint-module-utils@^2.7.2: + version "2.7.3" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" + integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== + dependencies: + debug "^3.2.7" + find-up "^2.1.0" + +eslint-plugin-es@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" + integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== + dependencies: + eslint-utils "^2.0.0" + regexpp "^3.0.0" + +eslint-plugin-import@^2.25.3: + version "2.25.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1" + integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA== + dependencies: + array-includes "^3.1.4" + array.prototype.flat "^1.2.5" + debug "^2.6.9" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.6" + eslint-module-utils "^2.7.2" + has "^1.0.3" + is-core-module "^2.8.0" + is-glob "^4.0.3" + minimatch "^3.0.4" + object.values "^1.1.5" + resolve "^1.20.0" + tsconfig-paths "^3.12.0" + +eslint-plugin-node@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" + integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== + dependencies: + eslint-plugin-es "^3.0.0" + eslint-utils "^2.0.0" + ignore "^5.1.1" + minimatch "^3.0.4" + resolve "^1.10.1" + semver "^6.1.0" + +eslint-plugin-prettier@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz#8b99d1e4b8b24a762472b4567992023619cb98e0" + integrity sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-plugin-promise@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-5.2.0.tgz#a596acc32981627eb36d9d75f9666ac1a4564971" + integrity sha512-SftLb1pUG01QYq2A/hGAWfDRXqYD82zE7j7TopDOyNdU+7SvvoXREls/+PRTY17vUXzXnZA/zfnyKgRH6x4JJw== + +eslint-plugin-vue@^8.0.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-8.5.0.tgz#65832bba43ca713fa5da16bdfcf55d0095677f6f" + integrity sha512-i1uHCTAKOoEj12RDvdtONWrGzjFm/djkzqfhmQ0d6M/W8KM81mhswd/z+iTZ0jCpdUedW3YRgcVfQ37/J4zoYQ== + dependencies: + eslint-utils "^3.0.0" + natural-compare "^1.4.0" + semver "^7.3.5" + vue-eslint-parser "^8.0.1" + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^7.0.0, eslint-scope@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" + integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-utils@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.1.0, eslint-visitor-keys@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" + integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== + +eslint@^8.10.0: + version "8.10.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.10.0.tgz#931be395eb60f900c01658b278e05b6dae47199d" + integrity sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw== + dependencies: + "@eslint/eslintrc" "^1.2.0" + "@humanwhocodes/config-array" "^0.9.2" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.1.1" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.3.0" + espree "^9.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^6.0.1" + globals "^13.6.0" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + regexpp "^3.2.0" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^9.0.0, espree@^9.3.1: + version "9.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.1.tgz#8793b4bc27ea4c778c19908e0719e7b8f4115bcd" + integrity sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ== + dependencies: + acorn "^8.7.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^3.3.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +execa@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + +fast-glob@^3.2.11, fast-glob@^3.2.9: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fastq@^1.6.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + dependencies: + reusify "^1.0.4" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-index@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4" + integrity sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ= + +find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.2.5" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" + integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== + +fraction.js@^4.1.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" + integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== + +fs-extra@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.1.tgz#27de43b4320e833f6867cc044bfce29fdf0ef3b8" + integrity sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +glob-gitignore@^1.0.14: + version "1.0.14" + resolved "https://registry.yarnpkg.com/glob-gitignore/-/glob-gitignore-1.0.14.tgz#8b708cb029e73bd388d22f7f935213aa93a1e7c2" + integrity sha512-YuAEPqL58bOQDqDF2kMv009rIjSAtPs+WPzyGbwRWK+wD0UWQVRoP34Pz6yJ6ivco65C9tZnaIt0I3JCuQ8NZQ== + dependencies: + glob "^7.1.3" + ignore "^5.0.5" + lodash.difference "^4.5.0" + lodash.union "^4.6.0" + make-array "^1.0.5" + util.inherits "^1.0.3" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.1, glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob2base@0.0.12: + version "0.0.12" + resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56" + integrity sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY= + dependencies: + find-index "^0.1.1" + +glob@^7.1.3: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^13.6.0, globals@^13.9.0: + version "13.12.1" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.1.tgz#ec206be932e6c77236677127577aa8e50bf1c5cb" + integrity sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw== + dependencies: + type-fest "^0.20.2" + +globby@^11.0.4: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.9" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" + integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== + +gray-matter@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" + integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== + dependencies: + js-yaml "^3.13.1" + kind-of "^6.0.2" + section-matter "^1.0.0" + strip-bom-string "^1.0.0" + +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-sum@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" + integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.0.5, ignore@^5.1.1, ignore@^5.1.8, ignore@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" + integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + +immutable@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" + integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.4, is-callable@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + +is-core-module@^2.8.0, is-core-module@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" + integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-extendable@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-negative-zero@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" + integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-shared-array-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" + integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-weakref@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json2yaml@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/json2yaml/-/json2yaml-1.1.0.tgz#5414d907f9816586b80c513ec2e3aeb2ab819a6c" + integrity sha1-VBTZB/mBZYa4DFE+wuOusquBmmw= + dependencies: + remedial "1.x" + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +klona@^2.0.4: + version "2.0.5" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" + integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lilconfig@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082" + integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +linkify-it@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e" + integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ== + dependencies: + uc.micro "^1.0.1" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +lodash.castarray@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.castarray/-/lodash.castarray-4.4.0.tgz#c02513515e309daddd4c24c60cfddcf5976d9115" + integrity sha1-wCUTUV4wna3dTCTGDP3c9ZdtkRU= + +lodash.difference@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" + integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.union@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" + integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg= + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +magic-string@^0.25.7: + version "0.25.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== + dependencies: + sourcemap-codec "^1.4.8" + +make-array@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/make-array/-/make-array-1.0.5.tgz#326a7635c756a9f61ce0b2a6fdd5cc3460419bcb" + integrity sha512-sgK2SAzxT19rWU+qxKUcn6PAh/swiIiz2F8C2cZjLc1z4iwYIfdoihqFIDQ8BDzAGtWPYJ6Sr13K1j/DXynDLA== + +markdown-it-anchor@^8.4.1: + version "8.4.1" + resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-8.4.1.tgz#29e560593f5edb80b25fdab8b23f93ef8a91b31e" + integrity sha512-sLODeRetZ/61KkKLJElaU3NuU2z7MhXf12Ml1WJMSdwpngeofneCRF+JBbat8HiSqhniOMuTemXMrsI7hA6XyA== + +markdown-it-container@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/markdown-it-container/-/markdown-it-container-3.0.0.tgz#1d19b06040a020f9a827577bb7dbf67aa5de9a5b" + integrity sha512-y6oKTq4BB9OQuY/KLfk/O3ysFhB3IMYoIWhGJEidXt1NQFocFK2sA2t0NYZAMyMShAGL6x5OPIbrmXPIqaN9rw== + +markdown-it-emoji@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/markdown-it-emoji/-/markdown-it-emoji-2.0.0.tgz#3164ad4c009efd946e98274f7562ad611089a231" + integrity sha512-39j7/9vP/CPCKbEI44oV8yoPJTpvfeReTn/COgRhSpNrjWF3PfP/JUxxB0hxV6ynOY8KH8Y8aX9NMDdo6z+6YQ== + +markdown-it@^12.3.2: + version "12.3.2" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.3.2.tgz#bf92ac92283fe983fe4de8ff8abfb5ad72cd0c90" + integrity sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg== + dependencies: + argparse "^2.0.1" + entities "~2.1.0" + linkify-it "^3.0.1" + mdurl "^1.0.1" + uc.micro "^1.0.5" + +mdn-data@2.0.23: + version "2.0.23" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.23.tgz#dfb6c41e50a0edb808cf340973ab29321b70808e" + integrity sha512-IonVb7pfla2U4zW8rc7XGrtgq11BvYeCxWN8HS+KFBnLDE7XDK9AAMVhRuG6fj9BBsjc69Fqsp6WEActEdNTDQ== + +mdurl@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + +medium-zoom@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/medium-zoom/-/medium-zoom-1.0.6.tgz#9247f21ca9313d8bbe9420aca153a410df08d027" + integrity sha512-UdiUWfvz9fZMg1pzf4dcuqA0W079o0mpqbTnOz5ip4VGYX96QjmbM+OgOU/0uOzAytxC0Ny4z+VcYQnhdifimg== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + dependencies: + braces "^3.0.1" + picomatch "^2.2.3" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +minimatch@^3.0.4: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nanoid@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" + integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +node-releases@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" + integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nprogress@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" + integrity sha1-y480xTIT2JVyP8urkH6UIq28r7E= + +object-hash@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5" + integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== + +object-inspect@^1.11.0, object-inspect@^1.9.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" + integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.values@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" + integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +postcss-at-rules-variables@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/postcss-at-rules-variables/-/postcss-at-rules-variables-0.3.0.tgz#b51bb34c4a0b926204b60be2b43b44e74457706c" + integrity sha512-TmzLAG17XTsRYSqcpk96zXie+oU30Tn0F5f8mgSD3JagIAmhWUH7/3CLxY8XL8BhqiIjGiCSMuolIxwB4TE4NA== + +postcss-attribute-case-insensitive@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz#39cbf6babf3ded1e4abf37d09d6eda21c644105c" + integrity sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ== + dependencies: + postcss-selector-parser "^6.0.2" + +postcss-color-functional-notation@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz#f59ccaeb4ee78f1b32987d43df146109cc743073" + integrity sha512-DXVtwUhIk4f49KK5EGuEdgx4Gnyj6+t2jBSEmxvpIK9QI40tWrpS2Pua8Q7iIZWBrki2QOaeUdEaLPPa91K0RQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-hex-alpha@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz#61a0fd151d28b128aa6a8a21a2dad24eebb34d52" + integrity sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-rebeccapurple@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz#5d397039424a58a9ca628762eb0b88a61a66e079" + integrity sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-csso@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-csso/-/postcss-csso-6.0.0.tgz#ff3ec8ce0694d797b75f7f7e10c4ac5a35e7780f" + integrity sha512-LsrU+LVR0mNIYauoTEbYVC81i+yXcGWa9kqW6Lvm+gYUZTaNTJmJT6Dbv+fqT8gOnwXAH1RV+5RXvAVoRtwO+g== + dependencies: + csso "^5.0.1" + +postcss-custom-media@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz#1be6aff8be7dc9bf1fe014bde3b71b92bb4552f1" + integrity sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g== + +postcss-custom-properties@^12.1.4: + version "12.1.4" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.4.tgz#e3d8a8000f28094453b836dff5132385f2862285" + integrity sha512-i6AytuTCoDLJkWN/MtAIGriJz3j7UX6bV7Z5t+KgFz+dwZS15/mlTJY1S0kRizlk6ba0V8u8hN50Fz5Nm7tdZw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-custom-selectors@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz#022839e41fbf71c47ae6e316cb0e6213012df5ef" + integrity sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-dir-pseudo-class@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz#9afe49ea631f0cb36fa0076e7c2feb4e7e3f049c" + integrity sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw== + dependencies: + postcss-selector-parser "^6.0.9" + +postcss-double-position-gradients@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.1.tgz#a12cfdb7d11fa1a99ccecc747f0c19718fb37152" + integrity sha512-jM+CGkTs4FcG53sMPjrrGE0rIvLDdCrqMzgDC5fLI7JHDO7o6QG8C5TQBtExb13hdBdoH9C2QVbG4jo2y9lErQ== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +postcss-each@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-each/-/postcss-each-1.1.0.tgz#8bb074d130d41eb21679d11aa87204726f5cad88" + integrity sha512-YfTPHHAPFVRgEJfLg9RM4R9WYEHVU9Rf1R8QgZfnObwV2dgNqzTLzTl0w5tF71ApFcYLiJAXiTpHAoqJFYcZVw== + dependencies: + postcss-simple-vars "^6.0.0" + +postcss-env-function@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-4.0.5.tgz#b9614d50abd91e4c88a114644a9766880dabe393" + integrity sha512-gPUJc71ji9XKyl0WSzAalBeEA/89kU+XpffpPxSaaaZ1c48OL36r1Ep5R6+9XAPkIiDlSvVAwP4io12q/vTcvA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-focus-visible@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz#50c9ea9afa0ee657fb75635fabad25e18d76bf9e" + integrity sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw== + dependencies: + postcss-selector-parser "^6.0.9" + +postcss-focus-within@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz#5b1d2ec603195f3344b716c0b75f61e44e8d2e20" + integrity sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ== + dependencies: + postcss-selector-parser "^6.0.9" + +postcss-font-variant@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz#efd59b4b7ea8bb06127f2d031bfbb7f24d32fa66" + integrity sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA== + +postcss-gap-properties@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz#6401bb2f67d9cf255d677042928a70a915e6ba60" + integrity sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ== + +postcss-image-set-function@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz#bcff2794efae778c09441498f40e0c77374870a9" + integrity sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-import@^14.0.2: + version "14.0.2" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.0.2.tgz#60eff77e6be92e7b67fe469ec797d9424cae1aa1" + integrity sha512-BJ2pVK4KhUyMcqjuKs9RijV5tatNzNa73e/32aBVE/ejYPe37iH+6vAu9WvqUkB5OAYgLHzbSvzHnorybJCm9g== + dependencies: + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-initial@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-4.0.1.tgz#529f735f72c5724a0fb30527df6fb7ac54d7de42" + integrity sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ== + +postcss-js@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.0.tgz#31db79889531b80dc7bc9b0ad283e418dce0ac00" + integrity sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ== + dependencies: + camelcase-css "^2.0.1" + +postcss-lab-function@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-4.1.2.tgz#b75afe43ba9c1f16bfe9bb12c8109cabd55b5fc2" + integrity sha512-isudf5ldhg4fk16M8viAwAbg6Gv14lVO35N3Z/49NhbwPQ2xbiEoHgrRgpgQojosF4vF7jY653ktB6dDrUOR8Q== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +postcss-load-config@^3.1.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.3.tgz#21935b2c43b9a86e6581a576ca7ee1bde2bd1d23" + integrity sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw== + dependencies: + lilconfig "^2.0.4" + yaml "^1.10.2" + +postcss-logical@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-5.0.4.tgz#ec75b1ee54421acc04d5921576b7d8db6b0e6f73" + integrity sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g== + +postcss-media-minmax@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz#7140bddec173e2d6d657edbd8554a55794e2a5b5" + integrity sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ== + +postcss-nested@5.0.6, postcss-nested@^5.0.6: + version "5.0.6" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.6.tgz#466343f7fc8d3d46af3e7dba3fcd47d052a945bc" + integrity sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA== + dependencies: + postcss-selector-parser "^6.0.6" + +postcss-nesting@^10.1.2: + version "10.1.3" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.1.3.tgz#f0b1cd7ae675c697ab6a5a5ca1feea4784a2ef77" + integrity sha512-wUC+/YCik4wH3StsbC5fBG1s2Z3ZV74vjGqBFYtmYKlVxoio5TYGM06AiaKkQPPlkXWn72HKfS7Cw5PYxnoXSw== + dependencies: + postcss-selector-parser "^6.0.9" + +postcss-opacity-percentage@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz#bd698bb3670a0a27f6d657cc16744b3ebf3b1145" + integrity sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w== + +postcss-overflow-shorthand@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz#ebcfc0483a15bbf1b27fdd9b3c10125372f4cbc2" + integrity sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg== + +postcss-page-break@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz#7fbf741c233621622b68d435babfb70dd8c1ee5f" + integrity sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ== + +postcss-place@^7.0.4: + version "7.0.4" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-7.0.4.tgz#eb026650b7f769ae57ca4f938c1addd6be2f62c9" + integrity sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-preset-env@^7.4.2: + version "7.4.2" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.4.2.tgz#2ff3e4787bd9d89710659535855d6ce85ce6110b" + integrity sha512-AmOkb8AeNNQwE/z2fHl1iwOIt8J50V8WR0rmLagcgIDoqlJZWjV3NdtOPnLGco1oN8DZe+Ss5B9ULbBeS6HfeA== + dependencies: + "@csstools/postcss-color-function" "^1.0.2" + "@csstools/postcss-font-format-keywords" "^1.0.0" + "@csstools/postcss-hwb-function" "^1.0.0" + "@csstools/postcss-ic-unit" "^1.0.0" + "@csstools/postcss-is-pseudo-class" "^2.0.0" + "@csstools/postcss-normalize-display-values" "^1.0.0" + "@csstools/postcss-oklab-function" "^1.0.1" + "@csstools/postcss-progressive-custom-properties" "^1.2.0" + autoprefixer "^10.4.2" + browserslist "^4.19.3" + css-blank-pseudo "^3.0.3" + css-has-pseudo "^3.0.4" + css-prefers-color-scheme "^6.0.3" + cssdb "^6.4.0" + postcss-attribute-case-insensitive "^5.0.0" + postcss-color-functional-notation "^4.2.2" + postcss-color-hex-alpha "^8.0.3" + postcss-color-rebeccapurple "^7.0.2" + postcss-custom-media "^8.0.0" + postcss-custom-properties "^12.1.4" + postcss-custom-selectors "^6.0.0" + postcss-dir-pseudo-class "^6.0.4" + postcss-double-position-gradients "^3.1.0" + postcss-env-function "^4.0.5" + postcss-focus-visible "^6.0.4" + postcss-focus-within "^5.0.4" + postcss-font-variant "^5.0.0" + postcss-gap-properties "^3.0.3" + postcss-image-set-function "^4.0.6" + postcss-initial "^4.0.1" + postcss-lab-function "^4.1.1" + postcss-logical "^5.0.4" + postcss-media-minmax "^5.0.0" + postcss-nesting "^10.1.2" + postcss-opacity-percentage "^1.1.2" + postcss-overflow-shorthand "^3.0.3" + postcss-page-break "^3.0.4" + postcss-place "^7.0.4" + postcss-pseudo-class-any-link "^7.1.1" + postcss-replace-overflow-wrap "^4.0.0" + postcss-selector-not "^5.0.0" + postcss-value-parser "^4.2.0" + +postcss-pseudo-class-any-link@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.1.tgz#534eb1dadd9945eb07830dbcc06fb4d5d865b8e0" + integrity sha512-JRoLFvPEX/1YTPxRxp1JO4WxBVXJYrSY7NHeak5LImwJ+VobFMwYDQHvfTXEpcn+7fYIeGkC29zYFhFWIZD8fg== + dependencies: + postcss-selector-parser "^6.0.9" + +postcss-replace-overflow-wrap@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz#d2df6bed10b477bf9c52fab28c568b4b29ca4319" + integrity sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw== + +postcss-selector-not@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz#ac5fc506f7565dd872f82f5314c0f81a05630dc7" + integrity sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ== + dependencies: + balanced-match "^1.0.0" + +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.9: + version "6.0.9" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz#ee71c3b9ff63d9cd130838876c13a2ec1a992b2f" + integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-simple-vars@^6.0.0, postcss-simple-vars@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-simple-vars/-/postcss-simple-vars-6.0.3.tgz#e66516c7fe980da3498f4a8ad400b9c53861806c" + integrity sha512-fkNn4Zio8vN4vIig9IFdb8lVlxWnYR769RgvxCM6YWlFKie/nQaOcaMMMFz/s4gsfHW4/5bJW+i57zD67mQU7g== + +postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^8.1.10, postcss@^8.4.5, postcss@^8.4.6: + version "8.4.7" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.7.tgz#f99862069ec4541de386bf57f5660a6c7a0875a8" + integrity sha512-L9Ye3r6hkkCeOETQX6iOaWZgjp3LL6Lpqm6EtgbKrgqGGteRMNb9vzBfRL96YOSu8o7x3MfIH9Mo5cPJFGrW6A== + dependencies: + nanoid "^3.3.1" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +postcss@^8.4.8: + version "8.4.8" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.8.tgz#dad963a76e82c081a0657d3a2f3602ce10c2e032" + integrity sha512-2tXEqGxrjvAO6U+CJzDL2Fk2kPHTv1jQsYkSoMeOis2SsYaXRO2COxTdQp99cYvif9JTXaAk9lYGc3VhJt7JPQ== + dependencies: + nanoid "^3.3.1" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier-config-vuepress@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/prettier-config-vuepress/-/prettier-config-vuepress-1.3.0.tgz#0b7f9ef6bcf18b542d8994d502a8ccab0faa0da3" + integrity sha512-a27Bm2nbA8GIeqomuOo/TkKmMTuiAPRLzQFnAZye8cA6ExXPrS9SaLaMsMU0sJO4YpyL7NSxJ6x2hvG6S7IaxQ== + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" + integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== + +prismjs@^1.26.0: + version "1.27.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.27.0.tgz#bb6ee3138a0b438a3653dd4d6ce0cc6510a45057" + integrity sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA== + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q= + dependencies: + pify "^2.3.0" + +readable-stream@^3.4.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +regexpp@^3.0.0, regexpp@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +remedial@1.x: + version "1.0.8" + resolved "https://registry.yarnpkg.com/remedial/-/remedial-1.0.8.tgz#a5e4fd52a0e4956adbaf62da63a5a46a78c578a0" + integrity sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@^1.1.7, resolve@^1.10.1, resolve@^1.12.0, resolve@^1.20.0, resolve@^1.22.0: + version "1.22.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" + integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== + dependencies: + is-core-module "^2.8.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rollup@^2.59.0, rollup@^2.66.0: + version "2.69.2" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.69.2.tgz#5e0f3b6d07b2a293bc4f4727315dcddb46a96b85" + integrity sha512-KghktpWg3Wd+nYCsx3Griidm2/CKIJYG2yyaaKspo0TXSoGdW+0duwzKl4wWIu62oN3mFg3zCDbwVRPwuNPPlA== + optionalDependencies: + fsevents "~2.3.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rxjs@^6.6.3: + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + +safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +sass-loader@^12.4.0: + version "12.6.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-12.6.0.tgz#5148362c8e2cdd4b950f3c63ac5d16dbfed37bcb" + integrity sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA== + dependencies: + klona "^2.0.4" + neo-async "^2.6.2" + +sass@^1.49.0, sass@^1.49.9: + version "1.49.9" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.9.tgz#b15a189ecb0ca9e24634bae5d1ebc191809712f9" + integrity sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +section-matter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" + integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== + dependencies: + extend-shallow "^2.0.1" + kind-of "^6.0.0" + +semver@^6.1.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.7.1: + version "1.7.3" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" + integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +spawn-command@^0.0.2-1: + version "0.0.2-1" + resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" + integrity sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A= + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +subarg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" + integrity sha1-9izxdYHplrSPyWVpn1TAauJouNI= + dependencies: + minimist "^1.1.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.1.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tailwindcss@^3.0.23: + version "3.0.23" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.0.23.tgz#c620521d53a289650872a66adfcb4129d2200d10" + integrity sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA== + dependencies: + arg "^5.0.1" + chalk "^4.1.2" + chokidar "^3.5.3" + color-name "^1.1.4" + cosmiconfig "^7.0.1" + detective "^5.2.0" + didyoumean "^1.2.2" + dlv "^1.1.3" + fast-glob "^3.2.11" + glob-parent "^6.0.2" + is-glob "^4.0.3" + normalize-path "^3.0.0" + object-hash "^2.2.0" + postcss "^8.4.6" + postcss-js "^4.0.0" + postcss-load-config "^3.1.0" + postcss-nested "5.0.6" + postcss-selector-parser "^6.0.9" + postcss-value-parser "^4.2.0" + quick-lru "^5.1.1" + resolve "^1.22.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toml@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" + integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== + +tree-kill@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + +ts-debounce@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/ts-debounce/-/ts-debounce-4.0.0.tgz#33440ef64fab53793c3d546a8ca6ae539ec15841" + integrity sha512-+1iDGY6NmOGidq7i7xZGA4cm8DAa6fqdYcvO5Z6yBevH++Bdo9Qt/mN0TzHUgcCcKv1gmh9+W5dHqz8pMWbCbg== + +tsconfig-paths@^3.12.0: + version "3.13.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.13.0.tgz#f3e9b8f6876698581d94470c03c95b3a48c0e3d7" + integrity sha512-nWuffZppoaYK0vQ1SQmkSsQzJoHA4s6uzdb2waRpD806x9yfq153AdVsWz4je2qZcW+pENrMQXbGQ3sMCkXuhw== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + +tslib@^1.8.1, tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +typescript@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4" + integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== + +uc.micro@^1.0.1, uc.micro@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== + +unbox-primitive@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +upath@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" + integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +util-deprecate@^1.0.1, util-deprecate@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.inherits@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/util.inherits/-/util.inherits-1.0.3.tgz#a9c626a0d06d34829d47ba56cab1278d745f9ce6" + integrity sha1-qcYmoNBtNIKdR7pWyrEnjXRfnOY= + +v8-compile-cache@^2.0.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + +vite@^2.7.13: + version "2.8.6" + resolved "https://registry.yarnpkg.com/vite/-/vite-2.8.6.tgz#32d50e23c99ca31b26b8ccdc78b1d72d4d7323d3" + integrity sha512-e4H0QpludOVKkmOsRyqQ7LTcMUDF3mcgyNU4lmi0B5JUbe0ZxeBBl8VoZ8Y6Rfn9eFKYtdXNPcYK97ZwH+K2ug== + dependencies: + esbuild "^0.14.14" + postcss "^8.4.6" + resolve "^1.22.0" + rollup "^2.59.0" + optionalDependencies: + fsevents "~2.3.2" + +vue-demi@*: + version "0.12.1" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.12.1.tgz#f7e18efbecffd11ab069d1472d7a06e319b4174c" + integrity sha512-QL3ny+wX8c6Xm1/EZylbgzdoDolye+VpCXRhI2hug9dJTP3OUJ3lmiKN3CsVV3mOJKwFi0nsstbgob0vG7aoIw== + +vue-eslint-parser@^8.0.1: + version "8.3.0" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz#5d31129a1b3dd89c0069ca0a1c88f970c360bd0d" + integrity sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g== + dependencies: + debug "^4.3.2" + eslint-scope "^7.0.0" + eslint-visitor-keys "^3.1.0" + espree "^9.0.0" + esquery "^1.4.0" + lodash "^4.17.21" + semver "^7.3.5" + +vue-router@^4.0.12, vue-router@^4.0.13: + version "4.0.13" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.0.13.tgz#47f06e2f8ff6120bfff3c27ade1356cc9de7d870" + integrity sha512-LmXrC+BkDRLak+d5xTMgUYraT3Nj0H/vCbP+7usGvIl9Viqd1UP6AsP0i69pSbn9O0dXK/xCdp4yPw21HqV9Jw== + dependencies: + "@vue/devtools-api" "^6.0.0" + +vue@^3.2.28, vue@^3.2.31: + version "3.2.31" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.31.tgz#e0c49924335e9f188352816788a4cca10f817ce6" + integrity sha512-odT3W2tcffTiQCy57nOT93INw1auq5lYLLYtWpPYQQYQOOdHiqFct9Xhna6GJ+pJQaF67yZABraH47oywkJgFw== + dependencies: + "@vue/compiler-dom" "3.2.31" + "@vue/compiler-sfc" "3.2.31" + "@vue/runtime-dom" "3.2.31" + "@vue/server-renderer" "3.2.31" + "@vue/shared" "3.2.31" + +vuepress-vite@2.0.0-beta.36: + version "2.0.0-beta.36" + resolved "https://registry.yarnpkg.com/vuepress-vite/-/vuepress-vite-2.0.0-beta.36.tgz#50e4e2c11ff4e057f725ba42de81d9ac50be4b45" + integrity sha512-KbN7HDhaCLVB7/YmJDydQClUjMBybLtBpB376mi5fD16RFBzHwMGI7zopb4lu7Nmj2BnvLI9kpottv9zuOJYLQ== + dependencies: + "@vuepress/bundler-vite" "2.0.0-beta.36" + "@vuepress/cli" "2.0.0-beta.36" + "@vuepress/core" "2.0.0-beta.36" + "@vuepress/theme-default" "2.0.0-beta.36" + +vuepress@^2.0.0-beta.36: + version "2.0.0-beta.36" + resolved "https://registry.yarnpkg.com/vuepress/-/vuepress-2.0.0-beta.36.tgz#e620ee1d7ebfff2fa755aaaab858adbc39c362e6" + integrity sha512-EObFjxn91cMRZ+9cgDGjKaTHaCH4NChMqUIGRnPTrIlJfKa4eX4aS0GzPtHSy+L1fKgNnDyUq67fW8q3hrHVjA== + dependencies: + vuepress-vite "2.0.0-beta.36" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +xtend@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0, yaml@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2"