From 12df14d73a225bce6eefb3b257ec320366f09d34 Mon Sep 17 00:00:00 2001 From: Piotr Partyka <4990365+Piotrekol@users.noreply.github.com> Date: Thu, 30 Sep 2021 17:17:22 +0200 Subject: [PATCH] Add: Usage guide & dev documentation (#322) --- .github/workflows/docs.yml | 42 + .gitignore | 7 +- docs/docs/.vuepress/config.ts | 62 + docs/docs/.vuepress/configs/index.ts | 1 + docs/docs/.vuepress/configs/sidebar.ts | 53 + docs/docs/.vuepress/public/browserconfig.xml | 9 + docs/docs/.vuepress/public/favicon.ico | Bin 0 -> 15086 bytes .../images/guide/netRuntimeDownload.png | Bin 0 -> 26973 bytes .../images/icons/android-chrome-192x192.png | Bin 0 -> 12590 bytes .../images/icons/android-chrome-512x512.png | Bin 0 -> 37111 bytes .../public/images/icons/apple-touch-icon.png | Bin 0 -> 11655 bytes .../public/images/icons/favicon-16x16.png | Bin 0 -> 1186 bytes .../public/images/icons/favicon-32x32.png | Bin 0 -> 2043 bytes .../public/images/icons/mstile-144x144.png | Bin 0 -> 9199 bytes .../public/images/icons/mstile-150x150.png | Bin 0 -> 9130 bytes .../public/images/icons/mstile-310x150.png | Bin 0 -> 9814 bytes .../public/images/icons/mstile-310x310.png | Bin 0 -> 19979 bytes .../public/images/icons/mstile-70x70.png | Bin 0 -> 6239 bytes .../public/images/icons/safari-pinned-tab.svg | 59 + docs/docs/.vuepress/public/images/logo.svg | 24 + .../.vuepress/public/manifest.webmanifest | 19 + .../.vuepress/public/misc/PluginProject.zip | Bin 0 -> 1830 bytes docs/docs/README.md | 32 + docs/docs/cookbook/README.md | 5 + docs/docs/development/README.md | 5 + docs/docs/development/SC/README.md | 30 + docs/docs/development/SC/api.md | 77 + .../SC/apiExamples/exampleSCOutput.json | 248 ++ .../development/SC/apiExamples/minimalWS.js | 9 + .../SC/apiExamples/minimalWSpt2.js | 10 + .../development/SC/apiExamples/plugin/1.cs | 12 + .../SC/apiExamples/plugin/1.csproj | 10 + .../development/SC/apiExamples/plugin/2.cs | 18 + .../SC/apiExamples/plugin/2.csproj | 11 + .../development/SC/apiExamples/plugin/3.cs | 58 + .../SC/apiExamples/plugin/launchSettings.json | 8 + docs/docs/development/SC/creating-a-plugin.md | 56 + docs/docs/development/SC/event-flow.md | 5 + .../development/SC/images/EventFlow.drawio | 1 + docs/docs/development/SC/images/EventFlow.png | Bin 0 -> 100429 bytes .../SC/images/VisualStudioSolutionError.png | Bin 0 -> 5422 bytes docs/docs/development/SC/linuxSupport.md | 10 + docs/docs/development/SC/types-rundown.md | 119 + docs/docs/development/docs/README.md | 54 + docs/docs/development/gettingSource.md | 22 + docs/docs/guide/README.md | 15 + .../guide/codeExample/tournamentTokens.js | 2 + docs/docs/guide/configuration.md | 48 + docs/docs/guide/gamma.md | 2 + docs/docs/guide/getting-started.md | 27 + .../docs/guide/images/SCSetupMemoryStatus.png | Bin 0 -> 22491 bytes docs/docs/guide/in-game-overlays.md | 44 + docs/docs/guide/tournament-mode.md | 21 + docs/package.json | 13 + docs/yarn.lock | 3691 +++++++++++++++++ 55 files changed, 4938 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/docs.yml create mode 100644 docs/docs/.vuepress/config.ts create mode 100644 docs/docs/.vuepress/configs/index.ts create mode 100644 docs/docs/.vuepress/configs/sidebar.ts create mode 100644 docs/docs/.vuepress/public/browserconfig.xml create mode 100644 docs/docs/.vuepress/public/favicon.ico create mode 100644 docs/docs/.vuepress/public/images/guide/netRuntimeDownload.png create mode 100644 docs/docs/.vuepress/public/images/icons/android-chrome-192x192.png create mode 100644 docs/docs/.vuepress/public/images/icons/android-chrome-512x512.png create mode 100644 docs/docs/.vuepress/public/images/icons/apple-touch-icon.png create mode 100644 docs/docs/.vuepress/public/images/icons/favicon-16x16.png create mode 100644 docs/docs/.vuepress/public/images/icons/favicon-32x32.png create mode 100644 docs/docs/.vuepress/public/images/icons/mstile-144x144.png create mode 100644 docs/docs/.vuepress/public/images/icons/mstile-150x150.png create mode 100644 docs/docs/.vuepress/public/images/icons/mstile-310x150.png create mode 100644 docs/docs/.vuepress/public/images/icons/mstile-310x310.png create mode 100644 docs/docs/.vuepress/public/images/icons/mstile-70x70.png create mode 100644 docs/docs/.vuepress/public/images/icons/safari-pinned-tab.svg create mode 100644 docs/docs/.vuepress/public/images/logo.svg create mode 100644 docs/docs/.vuepress/public/manifest.webmanifest create mode 100644 docs/docs/.vuepress/public/misc/PluginProject.zip create mode 100644 docs/docs/README.md create mode 100644 docs/docs/cookbook/README.md create mode 100644 docs/docs/development/README.md create mode 100644 docs/docs/development/SC/README.md create mode 100644 docs/docs/development/SC/api.md create mode 100644 docs/docs/development/SC/apiExamples/exampleSCOutput.json create mode 100644 docs/docs/development/SC/apiExamples/minimalWS.js create mode 100644 docs/docs/development/SC/apiExamples/minimalWSpt2.js create mode 100644 docs/docs/development/SC/apiExamples/plugin/1.cs create mode 100644 docs/docs/development/SC/apiExamples/plugin/1.csproj create mode 100644 docs/docs/development/SC/apiExamples/plugin/2.cs create mode 100644 docs/docs/development/SC/apiExamples/plugin/2.csproj create mode 100644 docs/docs/development/SC/apiExamples/plugin/3.cs create mode 100644 docs/docs/development/SC/apiExamples/plugin/launchSettings.json create mode 100644 docs/docs/development/SC/creating-a-plugin.md create mode 100644 docs/docs/development/SC/event-flow.md create mode 100644 docs/docs/development/SC/images/EventFlow.drawio create mode 100644 docs/docs/development/SC/images/EventFlow.png create mode 100644 docs/docs/development/SC/images/VisualStudioSolutionError.png create mode 100644 docs/docs/development/SC/linuxSupport.md create mode 100644 docs/docs/development/SC/types-rundown.md create mode 100644 docs/docs/development/docs/README.md create mode 100644 docs/docs/development/gettingSource.md create mode 100644 docs/docs/guide/README.md create mode 100644 docs/docs/guide/codeExample/tournamentTokens.js create mode 100644 docs/docs/guide/configuration.md create mode 100644 docs/docs/guide/gamma.md create mode 100644 docs/docs/guide/getting-started.md create mode 100644 docs/docs/guide/images/SCSetupMemoryStatus.png create mode 100644 docs/docs/guide/in-game-overlays.md create mode 100644 docs/docs/guide/tournament-mode.md create mode 100644 docs/package.json create mode 100644 docs/yarn.lock diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 00000000..133503bf --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,42 @@ +name: GitHub Pages + +on: + push: + branches: + - master + +jobs: + deploy: + runs-on: ubuntu-20.04 + concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + steps: + - uses: actions/checkout@v2 + + - name: Setup Node + uses: actions/setup-node@v2 + with: + node-version: '14' + + - name: Get yarn cache + id: yarn-cache + run: echo "::set-output name=dir::$(yarn cache dir)" + + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: ${{ steps.yarn-cache.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + + - run: cd docs + - run: yarn install --frozen-lockfile + - run: yarn docs:build + + - name: Deploy + uses: peaceiris/actions-gh-pages@v3 + if: ${{ github.ref == 'refs/heads/main' }} + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./docs/.vuepress/dist \ No newline at end of file diff --git a/.gitignore b/.gitignore index 64c9e01e..2d07daeb 100644 --- a/.gitignore +++ b/.gitignore @@ -200,4 +200,9 @@ FakesAssemblies/ innoSetup/Output/ osu!StreamCompanion/Properties/Annotations\.cs -build/*/* \ No newline at end of file +build/*/* + +#docs +.temp +.cache +docs/docs/.vuepress/dist/ diff --git a/docs/docs/.vuepress/config.ts b/docs/docs/.vuepress/config.ts new file mode 100644 index 00000000..1d1771f6 --- /dev/null +++ b/docs/docs/.vuepress/config.ts @@ -0,0 +1,62 @@ +import { defineUserConfig } from '@vuepress/cli'; +import type { DefaultThemeOptions } from '@vuepress/theme-default'; +import { sidebar } from './configs'; + +export default defineUserConfig({ + lang: 'en-US', + title: 'StreamCompanion', + description: 'osu! information extractor... on steroids', + head: [ + [ + 'link', + { + rel: 'icon', + type: 'image/png', + sizes: '16x16', + href: `/images/icons/favicon-16x16.png`, + }, + ], + [ + 'link', + { + rel: 'icon', + type: 'image/png', + sizes: '32x32', + href: `/images/icons/favicon-32x32.png`, + }, + ], + ['link', { rel: 'manifest', href: '/manifest.webmanifest' }], + ['meta', { name: 'application-name', content: 'StreamCompanion' }], + ['meta', { name: 'apple-mobile-web-app-title', content: 'StreamCompanion' }], + ['meta', { name: 'apple-mobile-web-app-status-bar-style', content: 'black' }], + ['link', { rel: 'apple-touch-icon', href: `/images/icons/apple-touch-icon.png` }], + [ + 'link', + { + rel: 'mask-icon', + href: '/images/icons/safari-pinned-tab.svg', + color: '#3eaf7c', + }, + ], + ['meta', { name: 'msapplication-TileColor', content: '#3eaf7c' }], + ['meta', { name: 'theme-color', content: '#3eaf7c' }], + ], + themeConfig: { + logo: 'images/logo.svg', + repo: 'Piotrekol/StreamCompanion', + docsBranch: 'master', + docsDir: 'docs/docs', + locales: { + '/': { + navbar: [ + { + text:"Discord", + link:"https://discord.gg/N854wYZ" + } + ], + sidebar: sidebar.en, + editLinkText: 'Edit this page on GitHub', + }, + }, + }, +}); diff --git a/docs/docs/.vuepress/configs/index.ts b/docs/docs/.vuepress/configs/index.ts new file mode 100644 index 00000000..d2548295 --- /dev/null +++ b/docs/docs/.vuepress/configs/index.ts @@ -0,0 +1 @@ +export * as sidebar from './sidebar' \ No newline at end of file diff --git a/docs/docs/.vuepress/configs/sidebar.ts b/docs/docs/.vuepress/configs/sidebar.ts new file mode 100644 index 00000000..274da7a7 --- /dev/null +++ b/docs/docs/.vuepress/configs/sidebar.ts @@ -0,0 +1,53 @@ +import type { SidebarConfig } from '@vuepress/theme-default'; + +export const en: SidebarConfig = { + '/guide/': [ + { + text: 'Guide', + children: [ + '/guide/README.md', + '/guide/getting-started.md', + '/guide/configuration.md', + '/guide/in-game-overlays.md', + '/guide/gamma.md', + '/guide/tournament-mode.md', + + '/cookbook/', + '/development/' + ], + }, + ], + '/development/': [ + { + text: 'Development', + children: [ + '/development/gettingSource.md', + { + text: 'Documentation', + children: [ + '/development/docs/', + ], + }, + { + text: 'StreamCompanion', + children: [ + '/development/SC/', + '/development/SC/api.md', + '/development/SC/creating-a-plugin.md', + '/development/SC/event-flow.md', + '/development/SC/types-rundown.md', + '/development/SC/linuxSupport.md', + ], + }, + ], + }, + ], + '/cookbook/': [ + { + text: 'Cookbook', + children: [ + '/cookbook/README.md', + ], + }, + ], +}; diff --git a/docs/docs/.vuepress/public/browserconfig.xml b/docs/docs/.vuepress/public/browserconfig.xml new file mode 100644 index 00000000..5bdd109f --- /dev/null +++ b/docs/docs/.vuepress/public/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #ffffff + + + diff --git a/docs/docs/.vuepress/public/favicon.ico b/docs/docs/.vuepress/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..49cd7e535a95a1443326dad699220b7da6459647 GIT binary patch literal 15086 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 literal 0 HcmV?d00001 diff --git a/docs/docs/.vuepress/public/images/guide/netRuntimeDownload.png b/docs/docs/.vuepress/public/images/guide/netRuntimeDownload.png new file mode 100644 index 0000000000000000000000000000000000000000..16dd4c2a55719e552c7f8d55071dea1d2779cad1 GIT binary patch literal 26973 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 literal 0 HcmV?d00001 diff --git a/docs/docs/.vuepress/public/images/icons/android-chrome-192x192.png b/docs/docs/.vuepress/public/images/icons/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..533ed44e50c45327d88795d1c44fdcaae220e6a4 GIT binary patch literal 12590 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

Cz;N^B)wVw9R4qgK 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 literal 0 HcmV?d00001 diff --git a/docs/docs/.vuepress/public/images/icons/favicon-16x16.png b/docs/docs/.vuepress/public/images/icons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..b2c1215632626d9435a48f9b55bf2d1582c2c9eb GIT binary patch literal 1186 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 literal 0 HcmV?d00001 diff --git a/docs/docs/.vuepress/public/images/icons/mstile-310x150.png b/docs/docs/.vuepress/public/images/icons/mstile-310x150.png new file mode 100644 index 0000000000000000000000000000000000000000..2a71d0f6a9ad72eeba6f2918a026fbcd6cc0191c GIT binary patch literal 9814 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�?cw9n!Df#z~WTdHvCJ&shg{Yj%TQiqko6t~T6RGqv6--L@oZZ5c9yq-1RV zhbZmp-IDhOLdTNo%F&_%3A!ldh0uu3dWRFY&;A2~ecc4dIP26oFVYsH&N6@#V?0U$ z;B)Scij~KVP+*_-dcE9iYg@*?7xTyv+sIWtuiXvBN-Afl@@Pmeb+%0wuf4#5k{=7V z*n7~&_wScAKDZc(kaN^E4>L%>4oWs~G5HBner9G0JHtG8mgNV{Xd>%%o;->>vfKF+ zWwB;=-3e!{tq1*wqQswy1s3k#P?_c2a#z_t6(rAft^)$e?WL&tD0jJuB|!?9DK07G zHiYcT+U0!K;;XS$RJhF-eiT0-`|R49El_n&=27V6L`528&TEeLBaaw0c>xPNk}@dO=^0GonCnSqTz%Izt6r%);H@RLU`%PAeyERIq2iqXyCHsY{SW1 z&H%Nd0~waQ$@e1|#nOZMfwIh)DP+UU+D5Oq)o`yAxs~Q255>H0+@^a(^9I{Q2+9P( zRJPV<@DnoxS7;guQZGpi03=)t3d0=j%uj)#^QTDfxY4W}bV0u-h9@&}uJ){bv67`j zcJmwEYLC9dyTxtptm(mkv0QrxF?vm>*7LMjl?;a9vuyHaijI^$QQFN)!^=mz#a^U6 zCiu(>Va^F?e(dv3M75ZZKzBoGf)$y?@6Z{%4Fl#s>P+r;1q%6d5nBN}9OOAsY10^Y zd8!+&YeH+WDq6X0|MsL`aO4zje7+gJ<8XhZ9sXCf;X0kxy+PAwW=vV3%`5 z%ZC;Q3*GGaq#Z$&!h;pG@m~?_+piq6Kp_VfwNeHK!8@T>A$#2o zlz7{S|FDT0Gl%xQ0O(GiwWNcukXuYHb@M+T2bMc9|4|vi*+Nak(02xUJik6ej4o;i0%vn_pwR;_eoVZ0cWLbSOWGdNo4=a}S8gT1kZXaiU8}+L|&O4@; zSuJ&VqJ?S!d>LH3xO2VK-T}JO^5are8U`_v_J5xycsUjs8c!8F2s^|id%5o?UHQmV zgjsO0a9>f7ZC%*w-=CSj)6aV8CL`ILgc8}MYNh9uDO>Jg>i%|a>!ijcifAZ*nZ55w zAIZZ(V`S1sOEqu+pd3zqT7$Vn7B-ZfZ4)E4@(h?Yy2pq@(_&sE#O*jiPk+Aumz`hN z8)WjEhLXjG4-8l|$S{63VXbRXwa+N1k}iOX zi%!^zj)98-6n}?`fm1p7X_qw>SB*Yr@A&BVZ++kHf1~LQR{Qc=7(isc<+b%vBJsk> NKow2p@|Tt&{{u-X;=KR> literal 0 HcmV?d00001 diff --git a/docs/docs/.vuepress/public/images/icons/mstile-310x310.png b/docs/docs/.vuepress/public/images/icons/mstile-310x310.png new file mode 100644 index 0000000000000000000000000000000000000000..221820db2f09cdf12d9cfb7723d2dcf388a17d6c GIT binary patch literal 19979 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

L;mA`^f*?cl?^SXQ@{=;1oN-p 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 cmAKvv0d~H&C;$Ke literal 0 HcmV?d00001 diff --git a/docs/docs/.vuepress/public/images/icons/mstile-70x70.png b/docs/docs/.vuepress/public/images/icons/mstile-70x70.png new file mode 100644 index 0000000000000000000000000000000000000000..c06dc0fa32fad89d26f5799b723288f59ac864ec GIT binary patch literal 6239 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

+ + + +Created by potrace 1.14, written by Peter Selinger 2001-2017 + + + + + + + + diff --git a/docs/docs/.vuepress/public/images/logo.svg b/docs/docs/.vuepress/public/images/logo.svg new file mode 100644 index 00000000..626b5834 --- /dev/null +++ b/docs/docs/.vuepress/public/images/logo.svg @@ -0,0 +1,24 @@ + + + + + + + + + + \ No newline at end of file diff --git a/docs/docs/.vuepress/public/manifest.webmanifest b/docs/docs/.vuepress/public/manifest.webmanifest new file mode 100644 index 00000000..2e273d93 --- /dev/null +++ b/docs/docs/.vuepress/public/manifest.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "StreamCompanion", + "short_name": "StreamCompanion", + "theme_color": "#3eaf7c", + "background_color": "#fff", + "display": "standalone", + "icons": [ + { + "src": "/images/icons/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/images/icons/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ] +} diff --git a/docs/docs/.vuepress/public/misc/PluginProject.zip b/docs/docs/.vuepress/public/misc/PluginProject.zip new file mode 100644 index 0000000000000000000000000000000000000000..382c26117e1251398b27a1d6795785b8b536a4d2 GIT binary patch literal 1830 zcmWIWW@Zs#0Dt6(q#O7H>cywviL)Z&tWoYM5nJpBNuS`G%C8mr)kC4sdPj0_BA zObiT?7;1ehA)54(i(4mpXB{>WaedDA{^8XW0q4T!y1G-gF*^rw6^bvg(BI@>|Hac# zQTz1*?^j}4KbxI7`vg2*%&ji{`sMfE$GVe6%+4tY>U(7<&72gv`l8sa z&d-u^kJo3~8;59Dcc2BY1=61YYFc&;TP}!6uh6;dqzDXIJ1Gl zdH;K5)N5ccP6Y<35=L;MLFwfk@1 z1lK1A9{)Ug`$d@6#NIE=4>nIX{u5y@%4V>@#H*_G{5zKW*YvjqUx}*A(m0^w_(8i+ z(8h}0E%#1uZTAbMFrocjajz!y{OA6@+vkqMv0J|)W^Gw|EqCc-gIO22{vDqn_TYB0 zaiG$f@F|^MWs_wd$X0zwuu@q1vLs}}WhvVeKQq$R&t~`*mkDV6WRMp+^^)0o1G8#P z?y3CU>w>5IFZm-53n~T%*Gkk>ikb2Pit-Cmi%K$6i;)tnF;Ls&q>|S~z>u8+#5x!u zjHE3mu{19^BRI9BBr`9)STCzMKhO2_My^8+JPi+HKggatQ^fy3YhBQVjoxbl`Sm^Ss;n1Ji#_wN81zXw{xt|DsDyF)kLOZcm`gv;d90r7!v(Pdo7trm&&YpS2 zC5bsXU_XLH7#L0i)p5$q_A~~vK^T;+5$cLk6H{_i^-3yAlJg5H6)N*fixh&L6*3{l zB$j06=P6{Q7NzPa*{W(_PDIIf`Y1eTE=0ETeM)r{$j-@cA$INxK7?i`wge2b6BK;Q zfQ2cFE&53564@$V*11=%1FhP**BKn5?&(aIL44$p#7y)st3V-n7oSyFvH-H}U;bns z1le{pDFPh0^%GprquS2EfSGJzwu3x6lNmX2BAcxg)io6qVKAEeBv(Hojo?b^Ftb5E rJBVU7BH<(3A~h|S@gC3?7|oa^ISFD5D;v-V26iBP1q>lI77z~r5B^~z literal 0 HcmV?d00001 diff --git a/docs/docs/README.md b/docs/docs/README.md new file mode 100644 index 00000000..c0e7da4a --- /dev/null +++ b/docs/docs/README.md @@ -0,0 +1,32 @@ +--- +home: true +title: Home +heroImage: /images/logo.svg +actions: + - text: Get Started + link: /guide/getting-started.html + type: primary + - text: Introduction + link: /guide/ + type: secondary + - text: Development + link: /development/ + type: secondary +features: + - title: Web overlays + details: Comes with minimal web server to serve your overlays! + - title: In-game overlay + details: Display any content inside osu! itself, be it simple text or full fledged web overlay. + - title: Gamma + details: Built in screen-gamma which adjusts with current map AR. + - title: Plugins + details: C# Plugin API, allowing plugins to provide lots of custom features. + - title: HTTP/WS API + details: Loosely integrate external applications using http or WebSocket endpoints. +footer: MIT Licensed | Copyright © 2018-present Piotrekol +--- + +::: warning +This guide is currently work in progress and may be missing entire pages. +Check back later or contribute on github! +::: diff --git a/docs/docs/cookbook/README.md b/docs/docs/cookbook/README.md new file mode 100644 index 00000000..1f309874 --- /dev/null +++ b/docs/docs/cookbook/README.md @@ -0,0 +1,5 @@ +# Cookbooks + +## Modifying SC overlays crash course (Vue.js) + +TODO diff --git a/docs/docs/development/README.md b/docs/docs/development/README.md new file mode 100644 index 00000000..593d9961 --- /dev/null +++ b/docs/docs/development/README.md @@ -0,0 +1,5 @@ +# Development + +* [Getting full source code](./gettingSource.md) +* [StreamCompanion developer docs](./SC/) +* [building and contributing to this documentation](./docs/) \ No newline at end of file diff --git a/docs/docs/development/SC/README.md b/docs/docs/development/SC/README.md new file mode 100644 index 00000000..701fc7b1 --- /dev/null +++ b/docs/docs/development/SC/README.md @@ -0,0 +1,30 @@ +# Building StreamCompanion + +## Prerequisites + +* [.NET 5.0.x __x86 SDK__](https://dotnet.microsoft.com/download/dotnet/5.0) +* Optional: + * [Visual Studio Community](https://visualstudio.microsoft.com/pl/thank-you-downloading-visual-studio/?sku=Community). Not required, but recommended for plugin development. + * [InnoSetup](https://jrsoftware.org/download.php/is.exe). Used for creating Setup files. + +## I just want to compile it myself + +* **Step 1:** Install .NET SDK mentioned in [prerequisites](#prerequisites) if you haven't already. + +* **Step 2:** Navigate to place where you downloaded full StreamCompanion source code ([here](../gettingSource.md)) and run `buildRelease.cmd` inside. + +* **Step 3:** After successful build everything should be ready to use inside `build\Release` directory. + +* **Optional Step 4:** Copy in-game overlay plugins from `build\Release_browserOverlay` & `build\Release_unsafe` to `build\Release` to have both text and browser in-game overlay plugins available. + +## Building solution in Visual Studio + +* **Step 1:** When you first open StreamCompanion solution it might have incorrect configuration selected, leading to solution-wide errors. To fix that you need to change configuration to either `Debug/x86` or `Release/x86` +![VSError][VSError] + + +* **Step 2:** Build whole solution by pressing CTRL+SHIFT+B or right click on top solution node and select `build`. + +* **Step 3:** StreamCompanion can be now ran either from `build` folder or from Visual Studio with full debugger capability across plugins if it was built in `Debug` configuration. + +[VSError]: <./images/VisualStudioSolutionError.png> diff --git a/docs/docs/development/SC/api.md b/docs/docs/development/SC/api.md new file mode 100644 index 00000000..5eca42ff --- /dev/null +++ b/docs/docs/development/SC/api.md @@ -0,0 +1,77 @@ +# HTTP API + +::: tip +All example urls in this section require you to have StreamCompanion running, with some song selected. +::: + +::: tip +By default all connections to api are restricted to browser requests from local computer (localhost). +That can be changed by enabling **remote access** in `Web overlay` settings tab. +::: + +## WebSocket endpoints + +### `tokens` + +WebSocket stream of requested tokens, with can be changed at any point by sending message with serialized JArray, containing case sensitive token names + +#### Code example + +Minimal working JavaScript example looks like this: +@[code js](./apiExamples/minimalWS.js) +if you execute this code and change songs in osu few times, you'll notice that not all tokens are always sent. This is intentional - messages received contain only changed values. +To have access to all current token values you need to cache them: +@[code js{5,7}](./apiExamples/minimalWSpt2.js) + +### `outputPatterns` + +WebSocket stream of output patterns, which can be changed at any point by sending message with serialized JArray, containing case sensitive output pattern names + +This works in same manner as [tokens](#tokens) endpoint. Same code can be reused by replacing endpoint with `ws://localhost:20727/outputPatterns` and provide output pattern names instead of token names. + +## HTTP endpoints + +### [`json`](http://localhost:20727/json) + +All tokens available in StreamCompanion in form of json object. +::: tip +This endpoint should be used only as a tokens reference. Use these via [tokens](#tokens) WebSocket endpoint in actual implementations. +::: + +::: details Example output +@[code json](./apiExamples/exampleSCOutput.json) +::: + +### [`backgroundImage`](http://localhost:20727/backgroundImage) + +Current map background image + +* Base url with no parameters returns map image file as-is without any processing. +* setting `width` or `height` query parameters ensures that at least one of these will be matched while preserving original image aspect ratio. [check it out](http://localhost:20727/backgroundImage?width=500&height=500) + * in addition, setting `crop=1` disregards image aspect ratio and returns cropped image with specified dimensions, resizing it beforehand if necessary. [check it out](http://localhost:20727/backgroundImage?width=500&height=500&crop=1) + +### [`Songs`](http://localhost:20727/Songs) + +View into user osu! Songs folder + +* Use [backgroundImage](#backgroundImage) endpoint for getting current map background instead of navigating to it here. +* This is provided mainly for cases where there is need for additional .osu file processing. +::: details dev note +I would argue this sort of thing should end up as new StreamCompanion plugin or as addition to existing one. +::: + +### [`Skins`](http://localhost:20727/Skins) + +View into user osu! Skins folder + +* Combine this with `skin` token value to get access to skin assets user is currently using. + + +### [`overlayList`](http://localhost:20727/overlayList) + +List of available overlays (folder paths) +Mainly for use on [web overlay index page](http://localhost:20727). Folder is considered an overlay if it is contained somewhere in `Files\Web\overlays` and it has `index.html` file. + +### [`settings`](http://localhost:20727/settings) + +All StreamCompanion settings diff --git a/docs/docs/development/SC/apiExamples/exampleSCOutput.json b/docs/docs/development/SC/apiExamples/exampleSCOutput.json new file mode 100644 index 00000000..85d9b29e --- /dev/null +++ b/docs/docs/development/SC/apiExamples/exampleSCOutput.json @@ -0,0 +1,248 @@ +{ + "backgroundImageLocation": "E:\\Gry\\osu!\\Songs\\504770 Shiron - CODE -CRiMSON-\\crimson.jpg", + "backgroundImageFileName": "crimson.jpg", + "osu_SSPP": 451.456, + "osu_99_9PP": 447.866, + "osu_99PP": 385.707, + "osu_98PP": 333.322, + "osu_97PP": 290.926, + "osu_96PP": 260.512, + "osu_95PP": 235.882, + "osu_90PP": 177.718, + "osu_mSSPP": 451.456, + "osu_m99_9PP": 447.866, + "osu_m99PP": 385.707, + "osu_m98PP": 333.322, + "osu_m97PP": 290.926, + "osu_m96PP": 260.512, + "osu_m95PP": 235.882, + "osu_m90PP": 177.718, + "mania_1_000_000PP": null, + "mania_990_000PP": null, + "mania_950_000PP": null, + "mania_900_000PP": null, + "mania_800_000PP": null, + "mania_700_000PP": null, + "mania_600_000PP": null, + "mania_m1_000_000PP": null, + "mania_m990_000PP": null, + "mania_m950_000PP": null, + "mania_m900_000PP": null, + "mania_m800_000PP": null, + "mania_m700_000PP": null, + "mania_m600_000PP": null, + "osuIsRunning": 1, + "mapStrains": { + "0": 44.96864417597254, + "1162": 69.29098204347187, + "2324": 87.12462449655517, + "3486": 108.90038884735, + "4648": 109.60957814776218, + "5810": 109.24483826251956, + "6972": 106.77096580395647, + "8134": 103.48400165956663, + "9296": 102.78336433611233, + "10458": 94.30775652256068, + "11620": 94.15728780857452, + "12782": 94.98483955855899, + "13944": 100.65286160400264, + "15106": 107.58959321414706, + "16268": 101.07761864311611, + "17430": 104.40529778171658, + "18592": 110.40180625845045, + "19754": 102.48273186689454, + "20916": 102.11430606446046, + "22078": 83.55372624978081, + "23240": 74.774650734963, + "24402": 83.26737795273651, + "25564": 90.70024045686402, + "26726": 107.12853708002561, + "27888": 96.15420940140662, + "29050": 87.78299170428674, + "30212": 85.57844368587492, + "31374": 83.63468735310929, + "32536": 86.36607285262785, + "33698": 87.43032535541167, + "34860": 74.06410799470335, + "36022": 55.32905058564928, + "37184": 55.91805724153695, + "38346": 49.68790935104358, + "39508": 53.506916716488064, + "40670": 54.380625083244006, + "41832": 64.18709022018889, + "42994": 83.55127044813347, + "44156": 91.2027107390281, + "45318": 99.64299374867973, + "46480": 109.13365389350531, + "47642": 121.9757931699888, + "48804": 142.48238674797602, + "49966": 175.85153477634913, + "51128": 177.33213117116827, + "52290": 178.33635093590206, + "53452": 171.75859668748598, + "54614": 173.72412020353707, + "55776": 171.30807086983785, + "56938": 164.0145552685746, + "58100": 154.17435320508292, + "59262": 150.79266763430596, + "60424": 155.40490566442617, + "61586": 145.9386694776438, + "62748": 140.44226628941172, + "63910": 145.9235936494571, + "65072": 135.68924624848776, + "66234": 177.29127502550472, + "67396": 176.61458756095928, + "68558": 160.45085526920974, + "69720": 125.26438661212777, + "70882": 70.89759334385263, + "72044": 49.70023461099993, + "73206": 43.19123349369499, + "74368": 48.21241087280583, + "75530": 48.75957689963867, + "76692": 47.297759377186544, + "77854": 52.19087944829928, + "79016": 66.71420445854723, + "80178": 75.70832715648534, + "81340": 85.26194642649821, + "82502": 88.26139852865204, + "83664": 77.58307914782175, + "84826": 82.0712621454316, + "85988": 62.90234651567482, + "87150": 69.49881872871893, + "88312": 73.16252709308846, + "89474": 77.27665995597455, + "90636": 96.42235647647499, + "91798": 104.31247479939282, + "92960": 121.22781434635428, + "94122": 141.33532410336898, + "95284": 159.48130682161712, + "96446": 181.3878196767104, + "97608": 180.35164662455207, + "98770": 179.5875073525588, + "99932": 179.1092903151047, + "101094": 175.7805786211659, + "102256": 162.86706571245148, + "103418": 155.5054062264992, + "104580": 148.64302467977888, + "105742": 152.22348549174973, + "106904": 148.93337322948943, + "108066": 157.3761760080899, + "109228": 155.61912980081001, + "110390": 150.52047269644947, + "111552": 162.68533495251341, + "112714": 154.003012085019, + "113876": 160.09372710052708, + "115038": 117.3268307058951 + }, + "skin": "old", + "skinPath": "E:\\Gry\\osu!\\Skins\\old", + "firstHitObjectTime": 733, + "mapBreaks": [], + "mapTimingPoints": [ + { + "startTime": 733, + "bpm": 167, + "beatLength": 359.28144 + } + ], + "rankedStatus": 7, + "status": 1, + "rawStatus": 5, + "mapid": 1765848, + "mapsetid": 504770, + "username": "", + "acc": 0, + "katsu": 0, + "geki": 0, + "c300": 0, + "c100": 0, + "c50": 0, + "miss": 0, + "grade": 9, + "mapPosition": "00:01:00.4510000", + "time": 60.451, + "timeLeft": "00:00:58.1260000", + "combo": 0, + "comboLeft": 0, + "score": 0, + "currentMaxCombo": 0, + "playerHp": 0, + "ppIfMapEndsNow": 0, + "aimPpIfMapEndsNow": 0, + "speedPpIfMapEndsNow": 0, + "accPpIfMapEndsNow": 0, + "strainPpIfMapEndsNow": 0, + "ppIfRestFced": 0, + "noChokePp": 0, + "simulatedPp": 245.934, + "unstableRate": 0, + "convertedUnstableRate": 0, + "hitErrors": [], + "localTimeISO": "2021-09-03T13:31:00.7605731Z", + "localTime": "15:31:00.7605751", + "sliderBreaks": 0, + "liveStarRating": 5.386, + "isBreakTime": 0, + "currentBpm": 167, + "leaderBoardPlayers": "[]", + "leaderBoardMainPlayer": "{}", + "keyOverlay": "{}", + "chatIsEnabled": 0, + "ingameInterfaceIsEnabled": 0, + "songSelectionRankingType": 1, + "songSelectionTotalScores": 1359, + "songSelectionScores": "[{\"Username\":\"Woey\",\"ModsEnum\":8,\"Mode\":0,\"MaxCombo\":1145,\"Score\":31985508,\"Hit100\":4,\"Hit300\":903,\"Hit50\":0,\"HitGeki\":85,\"HitKatu\":4,\"HitMiss\":2,\"Date\":\"2020-08-28T08:57:26\",\"UserId\":3792472,\"Accuracy\":99.4866132736206,\"Mods\":\"HD\",\"Grade\":4},{\"Username\":\"wooz\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1148,\"Score\":30490040,\"Hit100\":0,\"Hit300\":909,\"Hit50\":0,\"HitGeki\":90,\"HitKatu\":0,\"HitMiss\":0,\"Date\":\"2021-04-15T00:41:55\",\"UserId\":6888206,\"Accuracy\":100.0,\"Mods\":\"NM\",\"Grade\":2},{\"Username\":\"Viveliam\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1148,\"Score\":30378760,\"Hit100\":3,\"Hit300\":906,\"Hit50\":0,\"HitGeki\":87,\"HitKatu\":3,\"HitMiss\":0,\"Date\":\"2021-04-10T16:18:05\",\"UserId\":3506793,\"Accuracy\":99.77997541427612,\"Mods\":\"NM\",\"Grade\":3},{\"Username\":\"oPixay\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1148,\"Score\":30164720,\"Hit100\":18,\"Hit300\":891,\"Hit50\":0,\"HitGeki\":77,\"HitKatu\":13,\"HitMiss\":0,\"Date\":\"2021-08-28T15:20:56\",\"UserId\":12796317,\"Accuracy\":98.67987036705017,\"Mods\":\"NM\",\"Grade\":3},{\"Username\":\"Rhythm blue\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1148,\"Score\":30146180,\"Hit100\":15,\"Hit300\":894,\"Hit50\":0,\"HitGeki\":80,\"HitKatu\":10,\"HitMiss\":0,\"Date\":\"2020-07-31T19:31:17\",\"UserId\":6506107,\"Accuracy\":98.89988899230957,\"Mods\":\"NM\",\"Grade\":3},{\"Username\":\"Sh4rq_\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1133,\"Score\":29331330,\"Hit100\":22,\"Hit300\":885,\"Hit50\":1,\"HitGeki\":78,\"HitKatu\":11,\"HitMiss\":1,\"Date\":\"2021-04-01T15:34:15\",\"UserId\":11684622,\"Accuracy\":98.18481802940369,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"magnatagamer123\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1124,\"Score\":29177290,\"Hit100\":14,\"Hit300\":895,\"Hit50\":0,\"HitGeki\":83,\"HitKatu\":7,\"HitMiss\":0,\"Date\":\"2021-06-06T15:14:53\",\"UserId\":7587763,\"Accuracy\":98.97323250770569,\"Mods\":\"NM\",\"Grade\":3},{\"Username\":\"_wonderer\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1126,\"Score\":29151630,\"Hit100\":21,\"Hit300\":888,\"Hit50\":0,\"HitGeki\":74,\"HitKatu\":16,\"HitMiss\":0,\"Date\":\"2021-07-11T17:41:08\",\"UserId\":8215374,\"Accuracy\":98.4598457813263,\"Mods\":\"NM\",\"Grade\":3},{\"Username\":\"Arge\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1130,\"Score\":29140610,\"Hit100\":22,\"Hit300\":886,\"Hit50\":0,\"HitGeki\":76,\"HitKatu\":13,\"HitMiss\":1,\"Date\":\"2020-07-16T20:59:27\",\"UserId\":11215030,\"Accuracy\":98.27649593353271,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"_Shield\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1122,\"Score\":29124610,\"Hit100\":10,\"Hit300\":899,\"Hit50\":0,\"HitGeki\":83,\"HitKatu\":7,\"HitMiss\":0,\"Date\":\"2020-07-03T05:20:07\",\"UserId\":1860489,\"Accuracy\":99.2665946483612,\"Mods\":\"NM\",\"Grade\":3},{\"Username\":\"itay\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1114,\"Score\":28894150,\"Hit100\":19,\"Hit300\":886,\"Hit50\":3,\"HitGeki\":79,\"HitKatu\":8,\"HitMiss\":1,\"Date\":\"2020-07-15T04:23:05\",\"UserId\":10701418,\"Accuracy\":98.2214868068695,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"BoshyMan741\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1106,\"Score\":28579810,\"Hit100\":12,\"Hit300\":894,\"Hit50\":0,\"HitGeki\":81,\"HitKatu\":8,\"HitMiss\":3,\"Date\":\"2021-01-22T06:04:07\",\"UserId\":4830687,\"Accuracy\":98.78987669944763,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"Ceja\",\"ModsEnum\":8,\"Mode\":0,\"MaxCombo\":1067,\"Score\":28345584,\"Hit100\":15,\"Hit300\":892,\"Hit50\":1,\"HitGeki\":79,\"HitKatu\":9,\"HitMiss\":1,\"Date\":\"2021-02-10T01:32:48\",\"UserId\":4185921,\"Accuracy\":98.69820475578308,\"Mods\":\"HD\",\"Grade\":4},{\"Username\":\"Arnold576\",\"ModsEnum\":8,\"Mode\":0,\"MaxCombo\":1055,\"Score\":27756541,\"Hit100\":15,\"Hit300\":893,\"Hit50\":0,\"HitGeki\":80,\"HitKatu\":9,\"HitMiss\":1,\"Date\":\"2021-05-15T15:47:54\",\"UserId\":11967146,\"Accuracy\":98.78987669944763,\"Mods\":\"HD\",\"Grade\":4},{\"Username\":\"rarebostonian\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1085,\"Score\":27638040,\"Hit100\":10,\"Hit300\":893,\"Hit50\":0,\"HitGeki\":83,\"HitKatu\":6,\"HitMiss\":6,\"Date\":\"2021-08-16T19:20:02\",\"UserId\":8097065,\"Accuracy\":98.60652685165405,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"CosmicWolf\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1079,\"Score\":26916090,\"Hit100\":28,\"Hit300\":876,\"Hit50\":0,\"HitGeki\":74,\"HitKatu\":14,\"HitMiss\":5,\"Date\":\"2021-04-08T16:27:53\",\"UserId\":8352298,\"Accuracy\":97.39640355110168,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"Dsan\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1068,\"Score\":26901030,\"Hit100\":3,\"Hit300\":900,\"Hit50\":0,\"HitGeki\":86,\"HitKatu\":2,\"HitMiss\":6,\"Date\":\"2021-03-07T08:08:48\",\"UserId\":1266166,\"Accuracy\":99.11991357803345,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"Ritseh\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1067,\"Score\":26849940,\"Hit100\":14,\"Hit300\":893,\"Hit50\":0,\"HitGeki\":81,\"HitKatu\":7,\"HitMiss\":2,\"Date\":\"2020-12-30T00:09:46\",\"UserId\":4585205,\"Accuracy\":98.75320792198181,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"blejd\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1067,\"Score\":26774630,\"Hit100\":8,\"Hit300\":894,\"Hit50\":0,\"HitGeki\":80,\"HitKatu\":6,\"HitMiss\":7,\"Date\":\"2020-07-03T17:23:50\",\"UserId\":4033022,\"Accuracy\":98.64319562911987,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"Ootsuha\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1066,\"Score\":26646990,\"Hit100\":19,\"Hit300\":886,\"Hit50\":0,\"HitGeki\":78,\"HitKatu\":10,\"HitMiss\":4,\"Date\":\"2020-07-02T23:47:04\",\"UserId\":10499827,\"Accuracy\":98.16648364067078,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"temka na\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1066,\"Score\":26493710,\"Hit100\":17,\"Hit300\":890,\"Hit50\":1,\"HitGeki\":80,\"HitKatu\":8,\"HitMiss\":1,\"Date\":\"2020-07-03T08:22:53\",\"UserId\":10504596,\"Accuracy\":98.55152368545532,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"Suprawn\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1066,\"Score\":26304530,\"Hit100\":32,\"Hit300\":872,\"Hit50\":0,\"HitGeki\":75,\"HitKatu\":12,\"HitMiss\":5,\"Date\":\"2021-04-09T17:14:22\",\"UserId\":9723388,\"Accuracy\":97.10304141044617,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"Voss\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1047,\"Score\":26188300,\"Hit100\":12,\"Hit300\":896,\"Hit50\":0,\"HitGeki\":81,\"HitKatu\":8,\"HitMiss\":1,\"Date\":\"2021-01-18T15:30:34\",\"UserId\":7657761,\"Accuracy\":99.00990128517151,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"Pancho\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1044,\"Score\":26071610,\"Hit100\":7,\"Hit300\":900,\"Hit50\":0,\"HitGeki\":88,\"HitKatu\":0,\"HitMiss\":2,\"Date\":\"2021-08-08T01:51:40\",\"UserId\":11305398,\"Accuracy\":99.2665946483612,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"PFFFFFFFFFFFFFT\",\"ModsEnum\":8,\"Mode\":0,\"MaxCombo\":1012,\"Score\":25807394,\"Hit100\":28,\"Hit300\":870,\"Hit50\":4,\"HitGeki\":72,\"HitKatu\":13,\"HitMiss\":7,\"Date\":\"2021-04-29T08:09:01\",\"UserId\":10683628,\"Accuracy\":96.80967926979065,\"Mods\":\"HD\",\"Grade\":4},{\"Username\":\"Chef\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1033,\"Score\":25048730,\"Hit100\":48,\"Hit300\":861,\"Hit50\":0,\"HitGeki\":71,\"HitKatu\":19,\"HitMiss\":0,\"Date\":\"2021-01-22T05:42:36\",\"UserId\":12736534,\"Accuracy\":96.47964835166931,\"Mods\":\"NM\",\"Grade\":3},{\"Username\":\"bze\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1024,\"Score\":24832270,\"Hit100\":18,\"Hit300\":888,\"Hit50\":0,\"HitGeki\":77,\"HitKatu\":11,\"HitMiss\":3,\"Date\":\"2021-01-07T22:55:46\",\"UserId\":4095562,\"Accuracy\":98.34983348846436,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"Nowitskey\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1030,\"Score\":24720990,\"Hit100\":47,\"Hit300\":856,\"Hit50\":0,\"HitGeki\":67,\"HitKatu\":21,\"HitMiss\":6,\"Date\":\"2021-01-11T20:54:19\",\"UserId\":4375125,\"Accuracy\":95.89292407035828,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"Orbi\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1008,\"Score\":24361270,\"Hit100\":22,\"Hit300\":885,\"Hit50\":0,\"HitGeki\":75,\"HitKatu\":13,\"HitMiss\":2,\"Date\":\"2020-07-21T17:42:48\",\"UserId\":3574151,\"Accuracy\":98.16648364067078,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"Fuma\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1008,\"Score\":24216470,\"Hit100\":36,\"Hit300\":873,\"Hit50\":0,\"HitGeki\":74,\"HitKatu\":16,\"HitMiss\":0,\"Date\":\"2021-09-02T17:07:17\",\"UserId\":1501956,\"Accuracy\":97.35973477363586,\"Mods\":\"NM\",\"Grade\":3},{\"Username\":\"-forestguy-\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1005,\"Score\":23863930,\"Hit100\":36,\"Hit300\":867,\"Hit50\":0,\"HitGeki\":69,\"HitKatu\":17,\"HitMiss\":6,\"Date\":\"2021-01-01T10:40:12\",\"UserId\":9588826,\"Accuracy\":96.69967293739319,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"NovatoKing\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":1005,\"Score\":23699080,\"Hit100\":44,\"Hit300\":859,\"Hit50\":0,\"HitGeki\":66,\"HitKatu\":20,\"HitMiss\":6,\"Date\":\"2020-09-05T16:51:35\",\"UserId\":9316213,\"Accuracy\":96.11294269561768,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"Musket\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":875,\"Score\":17894400,\"Hit100\":22,\"Hit300\":880,\"Hit50\":2,\"HitGeki\":77,\"HitKatu\":8,\"HitMiss\":5,\"Date\":\"2020-08-29T02:15:09\",\"UserId\":6124459,\"Accuracy\":97.65309691429138,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"Dolter\",\"ModsEnum\":8,\"Mode\":0,\"MaxCombo\":677,\"Score\":16713743,\"Hit100\":10,\"Hit300\":898,\"Hit50\":0,\"HitGeki\":83,\"HitKatu\":6,\"HitMiss\":1,\"Date\":\"2021-04-06T10:33:06\",\"UserId\":6920104,\"Accuracy\":99.15658235549927,\"Mods\":\"HD\",\"Grade\":4},{\"Username\":\"im_a_burger_fox\",\"ModsEnum\":8,\"Mode\":0,\"MaxCombo\":587,\"Score\":16245653,\"Hit100\":4,\"Hit300\":903,\"Hit50\":0,\"HitGeki\":87,\"HitKatu\":2,\"HitMiss\":2,\"Date\":\"2020-09-07T13:55:55\",\"UserId\":5791401,\"Accuracy\":99.4866132736206,\"Mods\":\"HD\",\"Grade\":4},{\"Username\":\"Spinesnight\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":590,\"Score\":15295920,\"Hit100\":24,\"Hit300\":885,\"Hit50\":0,\"HitGeki\":74,\"HitKatu\":16,\"HitMiss\":0,\"Date\":\"2020-07-04T15:56:44\",\"UserId\":4519494,\"Accuracy\":98.23982119560242,\"Mods\":\"NM\",\"Grade\":3},{\"Username\":\"Reedkatt\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":618,\"Score\":15266810,\"Hit100\":20,\"Hit300\":888,\"Hit50\":0,\"HitGeki\":76,\"HitKatu\":13,\"HitMiss\":1,\"Date\":\"2021-04-17T16:58:08\",\"UserId\":8335950,\"Accuracy\":98.42317700386047,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"Rebo\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":581,\"Score\":14948090,\"Hit100\":12,\"Hit300\":895,\"Hit50\":0,\"HitGeki\":81,\"HitKatu\":7,\"HitMiss\":2,\"Date\":\"2021-02-14T04:14:07\",\"UserId\":6942259,\"Accuracy\":98.89988899230957,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"Suorik\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":587,\"Score\":14825140,\"Hit100\":39,\"Hit300\":869,\"Hit50\":0,\"HitGeki\":72,\"HitKatu\":17,\"HitMiss\":1,\"Date\":\"2020-12-29T18:08:03\",\"UserId\":13199087,\"Accuracy\":97.02970385551453,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"GermanLetsPlay\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":552,\"Score\":14413580,\"Hit100\":16,\"Hit300\":888,\"Hit50\":0,\"HitGeki\":80,\"HitKatu\":9,\"HitMiss\":5,\"Date\":\"2020-08-18T14:46:03\",\"UserId\":11495128,\"Accuracy\":98.27649593353271,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"HENKSELI\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":652,\"Score\":14398880,\"Hit100\":24,\"Hit300\":882,\"Hit50\":0,\"HitGeki\":74,\"HitKatu\":14,\"HitMiss\":3,\"Date\":\"2020-07-05T17:50:23\",\"UserId\":7005392,\"Accuracy\":97.90979027748108,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"BobbyZlich\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":659,\"Score\":14371610,\"Hit100\":32,\"Hit300\":871,\"Hit50\":2,\"HitGeki\":71,\"HitKatu\":15,\"HitMiss\":4,\"Date\":\"2021-07-19T04:30:03\",\"UserId\":6779549,\"Accuracy\":97.02970385551453,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"Fixr\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":554,\"Score\":14323770,\"Hit100\":31,\"Hit300\":877,\"Hit50\":0,\"HitGeki\":70,\"HitKatu\":19,\"HitMiss\":1,\"Date\":\"2020-07-12T18:28:04\",\"UserId\":2762603,\"Accuracy\":97.61642813682556,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"Sustain\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":665,\"Score\":14205840,\"Hit100\":41,\"Hit300\":863,\"Hit50\":0,\"HitGeki\":70,\"HitKatu\":16,\"HitMiss\":5,\"Date\":\"2021-08-03T12:01:52\",\"UserId\":1460342,\"Accuracy\":96.44297957420349,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"ALTERNATOR32\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":667,\"Score\":14125660,\"Hit100\":25,\"Hit300\":877,\"Hit50\":1,\"HitGeki\":70,\"HitKatu\":16,\"HitMiss\":6,\"Date\":\"2021-08-27T06:16:18\",\"UserId\":3895932,\"Accuracy\":97.41474390029907,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"Njulsen\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":662,\"Score\":14035030,\"Hit100\":25,\"Hit300\":881,\"Hit50\":0,\"HitGeki\":69,\"HitKatu\":18,\"HitMiss\":3,\"Date\":\"2021-02-01T20:07:41\",\"UserId\":10773960,\"Accuracy\":97.83645272254944,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"Jusstain-\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":659,\"Score\":13838080,\"Hit100\":43,\"Hit300\":857,\"Hit50\":2,\"HitGeki\":72,\"HitKatu\":14,\"HitMiss\":7,\"Date\":\"2021-02-19T20:22:19\",\"UserId\":13435594,\"Accuracy\":95.89292407035828,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"Felrion\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":581,\"Score\":13837220,\"Hit100\":12,\"Hit300\":892,\"Hit50\":0,\"HitGeki\":82,\"HitKatu\":6,\"HitMiss\":5,\"Date\":\"2020-11-20T16:46:56\",\"UserId\":3673083,\"Accuracy\":98.56985807418823,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"EzChock\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":565,\"Score\":13832930,\"Hit100\":15,\"Hit300\":891,\"Hit50\":0,\"HitGeki\":78,\"HitKatu\":9,\"HitMiss\":3,\"Date\":\"2020-07-03T03:17:22\",\"UserId\":9276293,\"Accuracy\":98.56985807418823,\"Mods\":\"NM\",\"Grade\":4},{\"Username\":\"httd\",\"ModsEnum\":8,\"Mode\":0,\"MaxCombo\":585,\"Score\":13799630,\"Hit100\":41,\"Hit300\":864,\"Hit50\":0,\"HitGeki\":67,\"HitKatu\":20,\"HitMiss\":4,\"Date\":\"2020-11-16T16:10:10\",\"UserId\":11919665,\"Accuracy\":96.55298590660095,\"Mods\":\"HD\",\"Grade\":4}]", + "songSelectionMainPlayerScore": "{\"Username\":\"Piotrekol\",\"ModsEnum\":0,\"Mode\":0,\"MaxCombo\":319,\"Score\":4420210,\"Hit100\":89,\"Hit300\":781,\"Hit50\":9,\"HitGeki\":46,\"HitKatu\":31,\"HitMiss\":30,\"Date\":\"0001-01-01T00:00:00\",\"UserId\":304520,\"Accuracy\":89.3472671508789,\"Mods\":\"NM\",\"Grade\":5}", + "plays": 0, + "retries": 0, + "osuFileLocation": "E:\\Gry\\osu!\\Songs\\504770 Shiron - CODE -CRiMSON-\\Shiron - CODE -CRiMSON- (Mijn Aim Zuigt) [EXHAUST].osu", + "titleRoman": "CODE -CRiMSON-", + "artistRoman": "Shiron", + "titleUnicode": "CODE -CRiMSON-", + "artistUnicode": "Shiron", + "mapArtistTitle": "Shiron - CODE -CRiMSON-", + "mapArtistTitleUnicode": "Shiron - CODE -CRiMSON-", + "mapDiff": "[EXHAUST]", + "creator": "Mijn Aim Zuigt", + "diffName": "EXHAUST", + "mp3Name": "audio.mp3", + "md5": "06a93b296b670505882488f7e1b2769c", + "osuFileName": "Shiron - CODE -CRiMSON- (Mijn Aim Zuigt) [EXHAUST].osu", + "maxBpm": 167, + "minBpm": 167, + "bpm": "167", + "mainBpm": 167, + "tags": "spaced streams schranz sdvx technical POMPEN Damnjelly", + "circles": 712, + "sliders": 195, + "spinners": 2, + "ar": 9.6, + "cs": 5, + "hp": 6, + "od": 9, + "sv": 1.4, + "starsNomod": 6.708969326688815, + "drainingtime": 117844, + "totaltime": 118577, + "previewtime": 49595, + "dl": "http://osu.ppy.sh/b/1765848", + "threadid": 0, + "sl": 0.7, + "mode": "0", + "source": "SOUND VOLTEX II -infinite infection-", + "dir": "504770 Shiron - CODE -CRiMSON-", + "lb": "\r\n", + "gameMode": "Osu", + "maxCombo": 1148, + "mods": "NM", + "modsEnum": 0, + "mAR": 9.6, + "mCS": 5, + "mOD": 9, + "mHP": 6, + "mStars": 6.708969326688815, + "mBpm": "167", + "mMaxBpm": 167, + "mMinBpm": 167, + "mMainBpm": 167 +} diff --git a/docs/docs/development/SC/apiExamples/minimalWS.js b/docs/docs/development/SC/apiExamples/minimalWS.js new file mode 100644 index 00000000..1fe0a89f --- /dev/null +++ b/docs/docs/development/SC/apiExamples/minimalWS.js @@ -0,0 +1,9 @@ +let ws = new WebSocket('ws://localhost:20727/tokens'); +ws.onopen = () => { + //send token names with should be watched for value changes + ws.send(JSON.stringify(['rankedStatus', 'titleRoman', 'artistUnicode'])); +}; +ws.onmessage = (wsEvent) => { + //do things with data here + console.log(wsEvent.data); +}; diff --git a/docs/docs/development/SC/apiExamples/minimalWSpt2.js b/docs/docs/development/SC/apiExamples/minimalWSpt2.js new file mode 100644 index 00000000..a8631797 --- /dev/null +++ b/docs/docs/development/SC/apiExamples/minimalWSpt2.js @@ -0,0 +1,10 @@ +let ws = new WebSocket('ws://localhost:20727/tokens'); +ws.onopen = () => { + ws.send(JSON.stringify(['rankedStatus', 'titleRoman', 'artistUnicode'])); +}; +let cache = {}; +ws.onmessage = (wsEvent) => { + Object.assign(cache, JSON.parse(wsEvent.data)); + //cache will always contain up to date token values + console.log(cache); +}; diff --git a/docs/docs/development/SC/apiExamples/plugin/1.cs b/docs/docs/development/SC/apiExamples/plugin/1.cs new file mode 100644 index 00000000..1fa7b3b2 --- /dev/null +++ b/docs/docs/development/SC/apiExamples/plugin/1.cs @@ -0,0 +1,12 @@ +using StreamCompanionTypes.Interfaces; + +namespace newTestPlugin +{ + public class MyPlugin : IPlugin + { + public string Description => "my plugin description"; + public string Name => "my plugin name"; + public string Author => "my name"; + public string Url => "Plugin homepage url(github/site)"; + } +} \ No newline at end of file diff --git a/docs/docs/development/SC/apiExamples/plugin/1.csproj b/docs/docs/development/SC/apiExamples/plugin/1.csproj new file mode 100644 index 00000000..b48225b9 --- /dev/null +++ b/docs/docs/development/SC/apiExamples/plugin/1.csproj @@ -0,0 +1,10 @@ + + + netstandard2.1 + enable + false + + + + + diff --git a/docs/docs/development/SC/apiExamples/plugin/2.cs b/docs/docs/development/SC/apiExamples/plugin/2.cs new file mode 100644 index 00000000..74e8538e --- /dev/null +++ b/docs/docs/development/SC/apiExamples/plugin/2.cs @@ -0,0 +1,18 @@ +using StreamCompanionTypes.Interfaces; +using StreamCompanionTypes.Enums; +using StreamCompanionTypes.Interfaces.Services; + +namespace newTestPlugin +{ + public class MyPlugin : IPlugin + { + public string Description => "my plugin description"; + public string Name => "my plugin name"; + public string Author => "my name"; + public string Url => "Plugin homepage url(github/site)"; + public MyPlugin(ILogger logger) + { + logger.Log($"Message from ${Name}!", LogLevel.Trace); + } + } +} \ No newline at end of file diff --git a/docs/docs/development/SC/apiExamples/plugin/2.csproj b/docs/docs/development/SC/apiExamples/plugin/2.csproj new file mode 100644 index 00000000..f77f76c0 --- /dev/null +++ b/docs/docs/development/SC/apiExamples/plugin/2.csproj @@ -0,0 +1,11 @@ + + + netstandard2.1 + enable + false + ..\SCInstall\Plugins\ + + + + + diff --git a/docs/docs/development/SC/apiExamples/plugin/3.cs b/docs/docs/development/SC/apiExamples/plugin/3.cs new file mode 100644 index 00000000..546a405d --- /dev/null +++ b/docs/docs/development/SC/apiExamples/plugin/3.cs @@ -0,0 +1,58 @@ +using System.Threading; +using System.Threading.Tasks; +using StreamCompanionTypes.Interfaces; +using StreamCompanionTypes.Enums; +using StreamCompanionTypes.Interfaces.Services; +using StreamCompanionTypes.Interfaces.Consumers; +using StreamCompanionTypes.Interfaces.Sources; +using StreamCompanionTypes.DataTypes; + +namespace newTestPlugin +{ + public class MyPlugin : IPlugin, ITokensSource, IMapDataConsumer + { + public string Description => "my plugin description"; + public string Name => "my plugin name"; + public string Author => "my name"; + public string Url => "Plugin homepage url(github/site)"; + + private ISettings Settings; + private ILogger Logger; + private Tokens.TokenSetter tokenSetter; + public static ConfigEntry lastMapConfigEntry = new ConfigEntry("myConfigName", "defaultValue"); + public MyPlugin(ISettings settings, ILogger logger) + { + Settings = settings; + Logger = logger; + tokenSetter = Tokens.CreateTokenSetter("MyPlugin"); + Logger.Log(settings.Get(lastMapConfigEntry), LogLevel.Trace); + } + + public Task CreateTokensAsync(IMapSearchResult map, CancellationToken cancellationToken) + { + //do: update token values + //do: execute actions based on map search results + //don't: execute actions based on token values from other plugins + + tokenSetter("someTokenName", "token value", TokenType.Normal, "{0}", "default value", OsuStatus.Playing | OsuStatus.Watching); + Settings.Add(lastMapConfigEntry.Name, map.MapSearchString); + Logger.Log("CreateTokensAsync", LogLevel.Trace); + return Task.CompletedTask; + } + + public Task SetNewMapAsync(IMapSearchResult map, CancellationToken cancellationToken) + { + //do: execute actions based on token values + //don't: update token values(unless these are live) + + if (map.PlayMode == CollectionManager.Enums.PlayMode.Osu && map.BeatmapsFound.Count > 0) + { + var beatmap = map.BeatmapsFound[0]; + var starRating = (double)Tokens.AllTokens["mStars"].Value; + } + + Logger.Log("SetNewMapAsync", LogLevel.Trace); + return Task.CompletedTask; + } + } +} diff --git a/docs/docs/development/SC/apiExamples/plugin/launchSettings.json b/docs/docs/development/SC/apiExamples/plugin/launchSettings.json new file mode 100644 index 00000000..77d0c6ec --- /dev/null +++ b/docs/docs/development/SC/apiExamples/plugin/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "newTestPlugin": { + "commandName": "Executable", + "executablePath": "..\\osu!StreamCompanion.exe" + } + } +} \ No newline at end of file diff --git a/docs/docs/development/SC/creating-a-plugin.md b/docs/docs/development/SC/creating-a-plugin.md new file mode 100644 index 00000000..6f1c53fe --- /dev/null +++ b/docs/docs/development/SC/creating-a-plugin.md @@ -0,0 +1,56 @@ +# Creating plugins + +::: tip +This is written in a tutorial-like style. Skip to next section for raw documentation. +::: + +## Basic template + +Create new .net standard project in Visual Studio or using command line: + +```sh +dotnet new classlib -f netstandard2.1 +``` + +Open csproj file using Visual Studio and double click on your project name to open its configuration. Inside of it add reference to newest [StreamCompanionTypes nuget package](https://www.nuget.org/packages/StreamCompanionTypes/): +@[code xml{5,7-9}](./apiExamples/plugin/1.csproj) + +Rename `Class1` that got created by default to some meaningful name(`MyPlugin`) and implement base `IPlugin` interface: +@[code csharp](./apiExamples/plugin/1.cs) +At this point this project could get compiled and ran by StreamCompanion, but what is the point if it does nothing? Lets make it log something at startup: +@[code csharp{2,3,13-16}](./apiExamples/plugin/2.cs) +Our plugin now requests `ILogger` **Service** at startup from StreamCompanion and uses it to log our message. +Lets see it in action: Build whole solution, copy everything from `bin\Debug\netstandard2.1` in solution folder to StreamCompanion `plugins` folder. It should be loaded along with log message logged. +That's cool and all but this copying and manual running will get old and annoying really quick - so we need to automate things a bit. + +## Testing enviroment + +Create an empty folder with 2 directories inside: + +* `newTestPlugin` - folder with your plugin project, its name doesn't matter. +* `SCInstall` - folder with installed/portable SC. Existing installation can be just copied over. + +Add `OutputPath` to your project configuration: +@[code xml{6}](./apiExamples/plugin/2.csproj) +Inside your solution folder create `Properties` folder with `launchSettings.json` inside and populate it with: +@[code json{3}](./apiExamples/plugin/launchSettings.json) +Replace `newTestPlugin` with name of your project(not class name!) + +With that done, your plugin can be now easily tested and debugged without ever leaving Visual Studio - Start debugging (Debug->Start debugging at the top menu) to test any changes. + +::: tip +Project with everything mentioned so far can be found [here](/misc/PluginProject.zip) and can be used as a template. Remember to change namespace and plugin class name! +::: + +## Interacting with events + +`CreateTokensAsync`(from [`ITokensSource`](#itokenssource)) & `SetNewMapAsync`(from [`IMapDataConsumer`](#imapdataconsumer)) are 2 hooks you'll most likely want to use. Code below demonstrates how to: + +* request multiple services from SC and store these for later use (lines 19-27) +* create&update tokens (lines 31-41). +* store persistent settings between runs (lines 22 and 38). +* use final event data(tokens/map search result) (lines 43-56). + +@[code csharp](./apiExamples/plugin/3.cs) + +For more understanding when these methods are executed proceed to next section. diff --git a/docs/docs/development/SC/event-flow.md b/docs/docs/development/SC/event-flow.md new file mode 100644 index 00000000..11c43ba8 --- /dev/null +++ b/docs/docs/development/SC/event-flow.md @@ -0,0 +1,5 @@ +# Event flow + +Graph below demonstrates how events are created and processed in StreamCompanion + +![StreamCompanion event flow](./images/EventFlow.png) diff --git a/docs/docs/development/SC/images/EventFlow.drawio b/docs/docs/development/SC/images/EventFlow.drawio new file mode 100644 index 00000000..29b9285d --- /dev/null +++ b/docs/docs/development/SC/images/EventFlow.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/docs/docs/development/SC/images/EventFlow.png b/docs/docs/development/SC/images/EventFlow.png new file mode 100644 index 0000000000000000000000000000000000000000..7809451ff4051c27f865148326495424c7dea8ca GIT binary patch literal 100429 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 z z=8b<_PwHBFmL4;XqE~Rk!X;6TC#~3`xI?^OQc&%i!33SerYl=i`I@&?PgT*;ve&>` zi=TuSDlSQ-5;xFj_X;MgRKdFtdc&`DoZNSr?s2_hnNI+gDP?CJ9wntS!xS2-aH>=U z;|P&drK-|!dOr$nn$-Az~}bPrm}mF+k&@f3hpEY5a(b%%*4=s<_#0X`)h8zGn<` zT+~%(QV=A8@Df43(lHLB#D4DddK?Mm>4@y;{gv<0>2>Kh9Q&1fzB8=yP}q{C_%2H? zg8so(@$}TbZ6c{3Cjvq8brptsk8w!-9D#Q$3^gIeI6tkJX;oM5jU(7qQZ+4ExFElfhF-9@&ZT>W!3~3d?VHA5(gpNKO2xM+{WwD<{RTzUnFZr? z@Jk0vc)0e!;+Apdm8a=E3>JOwOf0)-@C=Jjs)p0h7+Mcv)~SKI=ze^Z&&E7*d=K@;fM62?}#rcnqM{zJ|MZRs|GKNERgkb|`kjKu@#13GC$x;~}6aE#7;dx+xq z=Lqg`%?ga;1O?t*X8{B;a#~%$44zxI3H9< zs-Ar}UMNK4#Di=5V^hWUQJ!tbcSxR1`Ka)9tN)h(^P|*yP?(D#5QIdh14|puL>)Edo>AhlxjwyyiN;i#>Y*_?+*wgBt} zTOPh`ENHDhl?u10Hq>Xxlsld)hK{gFxSqRceSB-#^@aErd9ScIXh@#>!;tnaE0n(5 zQw!=u4fyJ7amZ{Jy1bOiT6tcPhza9z!HYJm}!9q@AGD=fqD1d4S#V4QY|N+qw8CA8QZ=O_x+P zOQugO?6}8>oe}|LW8+tOo>LQYh~S6pOsamCXub9WA7E&O#~ylU0u@ujub!s>Te9fR z^%OX}4Iim2>7_Tt*VB!BhFs$6@tkcNpe#U?Ze|8ud|L`0_(_To?s?{$34R z2#tJtX&IR#7h&9vqJFhq6Q)+%!IIpvL0xwmuvB!oZXfe9(g~04e!;k8e>);dDCKfU z)y}3cxt*mUl6{vyJYL;Z;wR-`&Wigj;B=lCadz7&9IJ4gBad)kEJdQexih5|H=t>c zGEsv$wnuZd{1@r2+;!yPqt(&_+MG%c-y?}8v7lg?O&+GXW5+j-A3vTu7%FK%_l?Sd zaid>;UOj6C#P9Tp-=>H^@;qKYP&9r?;YspLYVLIAR#MRCmncPA1Gly~OX<(eRpS;0 zD$qTgiKd-Jt=dvSWk1uWlkAl5NRHZm|KvO;ay6Y6rB2HyM&`X+H5mLSw>RmE1B=S4U@8|7%a&ZQM@1lB<`H`H-a;v(kN#H%@ zEr$V}P##9falbXNNE$l3gpKYELnBv(XuSz1chKA3xoqkbB0DoSNSO`!ruY(G+X%AU zsliwW)4u%&X8_*CGjFB2Vv!8`GI4SM^XcL_-ttd^5@C@|uDf;Ol;7_@90!@WpdVo6 z;A3$NN?Fy#&q*hd?L_ux&qI+v;yp_--0Bd`)#$aA^wlZEFv6T0!T@j4A~RV-C5wno zdhvXY& zv~C4ySlY(2;tIu&M**D-FhO>Ia@NaSO!*l4Oa$o6F%37W{wN0)Vp7Whg+8IT>WBHX zvGS6u*S*YoVzLDKnt&Bw-GRPk(cL!>|69o4+XF?K6eJ#w+l2kh{fp0$h=ry8@F=T1BorPkT&{37ex3L1)F`|v&C6UramsUU2Ci10@( zPm)Ve`Jq(CxZt6^6!6aAWDV^?D)$t;%D!X*N(#03zNfzW1w{l?F+t2xPKR1Aozpqg z=t6aATj?-66cqxfA<}j7O)BcD@<8ee8+*$zs7OhjhOZ;&zPF)&tha7K5*XyQbc}BbRrD0X0EGO-w3>rqAHmIAOxC^ zir_MiZ*w>my0vn=zo#a(iuTkerRsRoz5gl?MO1Jq&XaQA)R>C6FK#s#HilBfm--Ue zu)aL+I=wFlq1wpjb`0Y-zKFk^V!HFcf{;i6*gqYOglWqI~F2V}pu?j{4|`k~cTHKqC)|58r+MbY=0oaiJ&ii)}iM za)hbqVMM{7frDU%_xlOq?aGhts`>HM_dSwJn`K}{?28HcF-6xkD({j#aXFA!2$ksm zL!Q%Cwrpp@+cbYzi+`WjSUJpEk-ud+DqJ9_RBy!Pj9j6IL_Nc-dLG*xc}#TVa$=1? z9kvu=dTXIB&t*t6eejLD)l#X0K2B?v3)@|y09^5 z>H$n?AmM_geOfVg19s;XzP#&6w0nBxo{}efo)-4=H1#2fA1;IQwbg?S&a|t-=WgAV8fy#p5Q#bpp#y zhyj=^n+y`}H$gPFS+;+b7^sFC@$2q%Z8;2Rk2k+J>zEJRo&@aw>T4WZmG0#~0^8N21@LOdxeGYi4A9|i~RGD*MuZo$CyzsgZ( z8^fJaMA+GdB2UsASMYJ@fnRu%0IB_KKLCGE@Xeq6fDM#p6&;x1qoD86>LR0*x2D+ z$V={giF58(j{5>ku~?NTRTMSG3vrYA$Ca(k%l!Bh1^J@-M6C8s;0>v(4CV%xx1Ak< zF$|@fL5OI4ts|xz(Gd|{0wdYd6{FEGwWM7e&iM@M5XEnAzJ2=xpwrmtujA>@)Hw_l z1;hc4K}7j*tEIZTL_Anle6S?YQ`Y_Zgc?47j|!?^zL#Zv(Z1)US!(l>gY}x4OO!o7 zjH1w#Q=Nanu$4Kh*A^Jg!LIoH4uMS~6I2%5An66@56`yd^(x3N;_lz6Li#K?!_C1W zfep*aMls%xd3K{@H-7Xm&;2L<))Rz{^M4N;Nb`nQ37-nq5OI+TB5VD8F&Y|RX6DrM zbdoSWmSBG@$!b9E&xW^U3G)RI-m2e0s?75Kw<$+o;)mp2cyXPRD{isEe}Sx#H!~D- zjE9O{YszFcD@nr{G1w9-gcj$5wmD&dYxpAc3-p~dJFcw1%Itr6fZKpP^I(N(yyL%lMM~j zjgx_|tQ6w}K`l}8nDE6SrwRs)b3-E}Jr*pI6*Epa2@X?9k0U86D;+3-W@S4}EV^mbVOG zDe(S*ZzN;g>LPqskTjLw6by=##6*LDq+#<@vx!rt@n=gecp-hIVBOqZI-OkH=Tr9lB{!V513 zZbLKj7QAXO{QL!Yyf^8S;e&rm7Fr^Q6omE}hen_l6hdWlg`OZ`)F1R+sa|r$ylSlb z`6UDS7}0r;?D>f87X}dn2j$Nn4#SgWyqPY)!?~0YGl#(0@>psU^+fjd6@B;;^tkmD zbekgAf|A;v=vF-YJ3kR!C_NNTQh!rY+lA(sp;i-e9Q{kIJT;w051_Ab2BhhGs* zq3C*y=+|g#?{s#50S+?`g^3a!*d`(zD~^qVo{7l@DTq_rl)Yq-p}WpDs&+8B>YE0N zTC08wtyHcPyqnKH5oLW&_oMv5d*ch^o20L7_gjRdaY>DhxfAWmE=KR((~L&^`6#>0 z8KO6*tZD72r7M*i0a|}5ilFV1{KEldn>0;~pexc=-}VQ`1b__T>!f{wQ&r2b%OT%@ z9(gp7Oou2P$F6NA_0i>hcb|k2JiebG=K2#g#>DVhylN#J<)hJsab1w*mT87{DI+>% z7g8cV%&LJLYO`$Hhgp8sI>2Q{qoXVJv2iGPc#{=2QZ($f`##@{A8r5Z-}}w}fBE;1 zVIZK~u7|_L5N$zuxm8NG6WUKZE2|!p7@=T}alv{Cot8#5V1ot^b2hcV+Vrp)*!CaG=Px=*v> z_BV>6;2L1og#i@r%BKg(Iy4$K>dY0Q*3Bns#G2u|ng2C51grlV+eaWz*@ffXMu^E| zev19&sMC2Lwvu5_pk*rWxhLS(2w>+~w%#8Kp<aHPGllzsRw5^jCWGTB-MWsEYOGx2JFEMZh3ECG zs>;#jVRg#pPR5JB&(oopuIIVBLhC={nLD_)SbPd5o;A<34+-H#nDmAI1X5hF zAXnQ=#v6<}6crV<{qFN(^r5uK11Q_;1}aHGfc&lHXm|wlRe#uJGs%w)S{A6q ze2#CaG8sUQ7ZJ`wxn#JPD>toPqjIT8SF5~|wGGm&|3dsLT8Jpevkrel6DQ0<+(Q17 zciY>h)%G_i;MEwX@vLxU?6IEp?xz};W11Dmk*wyw(S-Ir$R$QofV5`8(I6Ag$KIIs(0BpI;vI;inh3z!)E!HwuJB7|Z;KYD3@bhl>Q!)I=E zH<4$*aJ1mM268)TNtvuyV(FuFV451V445vCvv$cEG|5Np04{F9Y|OkmAnc}Y|EhTd zk40Lyc6FVe6#{Uc6xh(Vso~?m+M01PM3WXj^cucf8i=wH|JEJ;+9S`I{_SvXBh}<% z7q*gMVB3kd?*NI%n_Y$U@S)wTkOQk6vfnE1xsZar`D)s^ip3Rj=hmVkgxl3e*A@3e zU80x6wT&sKvFC_miJ9)D(s}@B5F2Kyoyha7W3!vnVbeJi zx?_jAhvz#|mFBi*BbXdY35v+GTO-kIbCD0>qIK$m53p%I?syEO37*>$IQ5(nyEJxP z+W4V114<*kz)5ELfDFr7BA#*R*kjh@RH!1W%p*;!p#Pfy=+;)8baoezN)Ih%KIsZN`GZOzCXmT*RjAFRw^*u<1<3$UOgwO?PVXh9 z#xFlE+v8-7_Z&=%+|w(}60Br2DG<7RM8Olod0snLw1=6|C`Q9loJDYmLgU14@v^LW zY5YWgJOx4;eTOBUkixJuh`xXNW@ZimH}jAuoAEv>7WP}tJNjDmwf?b#W$WAAf{}yI z$oxip=Kg0>aaBzAaKWfaez(1TjLU|=9CCtM;`lFnNS<%3eCStUdc=aWY28q5EN?m` zZyY*PxZ)1fVZplR)X!7n2ai3Wr!Y%;x;B^jxtne(UZ7fun%Yk!3LMHDMkXuj=SSM}f#Ul!kP$?BPrV)YwX>S0Y|geStD4W+GJBuusS5 zyg^!_gD4;z3MTD4j{CZW1{vINe_N$b(mqbXdJ-iugy!(!;cpUB@_UA&*kB`l^FxKDp?ypAzEK1={;;!#D#^_4%#{PRliYHw2F>fmB@I;k#LZK#vriq8LzML6gin!$(|2GJFoq^ zX#3Mm2)?is{wm=BT5Q3LRgw8@Af%)o z|NK|cNpgyh{Y97Ggy!L9KY$*a#h>ZpeK1yyK-QTuKeU>VBqaGUND;D=u9h4O+Cv4} z$s+Gtdu^u-6uVWFXCx4eK^mB%|G@GVjW|%_dTn#BHU!xKJp3qL1h*O1%t{>guFn<> zzTmk2U1uLD>i!zub6^OpojfHOWo#+tUWL|Wjr%pt%D-K$RL*mZy|qr#s&+?zr0QZ* zXLWvG_G48N{1Ax`TeM$EvGWxN$H^jBH2n5v)Q7;Z=SF7*??(yVO)7{Z22BWiVOj^4%32DE>8OL z45*Cr*IYyZPOVrkQ!s-re0m=<%|-Tb)7c6)Y;i3p1&7j52T#=UeWT z=GJ}6X1Cg4|0r0~|5s+=*gmWdCcPTv>0@+j#kY;3J|sYJ>GfBYl&AkWu69MUzE9zFat1#SD?YbPQY3 zYOxSwrzf4#KZoLdLLL#;t;{Ke-kog$L!lccz+8T%=-TQ}zx<{8x-jT4vbrv$P%PL# zA^AlP2%lKIv1WV60+`P9jMy(8g=9xjq~D)o8N*jZyh#8bjuFd`A+f?9BXQb2BdvM! zlEU2zgEYSN#y2Cu)^Ewezs*5$J-%JPgsxw>OL~K&IXAa^ku<@ttGV?w z#HusJ>8JX`=Ek`W0nlJ_w(#rn>cWRMSKQkRzui-S>|>I{*6)mztee29wL}C<>vIDK zj6S1m%a0W{DL}NU4>H@u>Q|Qet%s7y09c>I)0K-se7`zL(bRC^)DS<)j|c0S8OMe} z$d*G1XBd1biZYA-zjoPRX(W6BZIvdl|MlcwA>qjBs-s1cv6_mPFXwm}x=pgd;=TSw zKTTx689W27pD_qb!53#Ml*+|OI2p~Xe)Q8pJ-y}luiNss`laZ5 zU_B<}f{PybFWmL>?ZT8kf`GCXI4SkZvQ016zqj7WfbzXxJXZ?1V8JWoVvsQ9|K zoK`ihq;iiybhr*iuxdB*VThW+ufy$?-6m&){Un_`(-(vsIr|xP#K02xUiRbt?m0Uw zjdbq!P!w$Z1Qt}h7?3iszk5dfUay}3(a+d`(8XHsfbL>nuYh(@d>E-N9Hi7BKxnpp zM?-S_*ROA1zpfyqM!kN$bvN3_hnZ_XBLEJmA2Xz@0_apBg&E}pSnE-gY8YVmv(mzT zp=DMu{M}-!$spy+^bno`JX1} z=wUxm15L=aDl~KauO_;Pkf_2&1{0KLy;AuChb7)I@1!DHcp_6OO9JhwO0u@lzaG9A z(H6`UJxzW3hdKN(iJ#-E0K?w<7jG29MJeLmJn<5t|7bt}y@Oyz(X2Z!t)Dj=HVO2f za%bGA4H{9&)=^vF{O1zc$E0)J?1BH~EI&2_J0y)OQui*W*p0}(g~-CvQi2W#!ia}$ z`s=Sl&&EO$5U^sL+Kwaqc?FizkRG1lb?R$p>KI#UM!3EFFb)j{4uZFlq_pK$eTu&A zIoz|=xZvLqy5R@k{9~3m7e6sqMM?M&2H5qMA3_IoCXv($UN^_&h|uvm*!za;lg&Lr z@550*2Uo!QHw1jT01%mfvyq2TvdtY1TpPwf^Jyd^5jwAp%ffLZx+D#uN-B_`94n_6 zDG>%XNlrJlE3tc%X%jQFnX}QR+bBrYl@~#as ztOPwyvV;^}OaRh{iJ(y4f8CD|ux(sFjoPG>fnYeLR5Xj@$ck=cVXw8@C=CjxFnsaWuu37F0AW2;Jjg4%i(j-!S=udm~trlW$)Woq5_> zwJh`&2Kwm&>+MoJ4fX&1Gm1PEfzg0r0q`M}?aQ8Hmk9fVvER}P`gH^81Wce?U zab(!JFCC1nNEOk8gcI&7r#olsu$j`C5j`&aNV9mBCda`F>h=)mgY!0KzSi>~Lr zr!J5n<)~pGw|$B37sT%8C4E(zhii#R%a;>aRN^JllIIKB_iZ+|y3uxE5o8g8b37Aw zg~hjk;EEAsEGJIu{~P*>=R5Fsf94c$bKUPGP#eQvh>KP`+`C%}F}M7C`|mz@BtbHO zWXJh;s*8)hSK-$+_;ngA@knd%lzVBF(iKgcwCK|lZ82D=QjQX zcl*DC#c8q;ca>NZ(8_3-$69nW&F{W>8pC`WD zpB8^1lCsEpOF72fP|rfk--aP8jLDC)gIS?$YwEHWo7Yff9c)oOrZ}+TWzSZ>=Vd<@ z8!QAumK7rpFi|-RO4m+>bF0Z{+OCfisOUqU41LbKK93(R7I0f~$Inj~hN601?SJ-1 z0;%wxH`nG1SxG$Ut&!--2X27}qH&kVD8P0dPb%?}vbj|Ed{6Ttxa@InW#dz-JG5rI z0}HKE)a&C`XMi}Ge)!_jk!j8-HYnSuIu(M-Pz1n=cQFCx*3uZ5+f7Q*KC@BjOE$y4 zFo4imA%R$4Ebg6W_4!IttU5_0Ea1vX7NV~nFQJ{dY@15qX*G49QCduUAi-r*#33(> z7GYoVACES=wy(D(M-!U%j(0Qk^A`WJS2isE>pq;^bXHATgJP8N4XH30eRlSqwC7A%60 zv-z<(D}tx)e%`J|00ki5YiMY+ahlXG_L&326ca zD+SonRP8rG3xkF=r@I?N_I+0O;lCzuA1TwK~gMR}+20@_QD<1)7{+08chWkZ(K zf$FngDHPSq$0OwQwU_<<>4+bE9!~(8_fW)hy8`wo{IA3&G1bzC2lq$OiW{F~N%Sts*|VbF@uQ>*M zD8lL0NC;*_c8mEE&PS(`nr|?`5kv8DD$Y*`yP1)@2JULSPr?mnxJCq&w8mvH`A7^; zP#h?5FSj2GCzwj=ql^5rXVkvJvh9E}XS;18E2OfbVbf;Eq^Dc)5+#;#`APN!^NoW= zWQpSvmv`3~Bv-y}xyEC-0TxR&E%0N~XU+$eg0W+?KB$-FRLS405Z&~JFaa;< z3a30c6Gi&g%k|tZugSwQpEcuXn{oVq1ONK|vUxsTs{(}!49=>3ghC@&vcqLl3?d19 zM1POAg8@fqu-;Up;PnLd-G11Bad+h{6&F=}d*pwUaqhkh@ua#wu28k)9n$1*XnA_? z?Mbk`uv`Xy3Hrh7)3X23diBS9kC-Jw!g;$s0lW6;4I;jrx|o6Io7B6#ZgUb$ZIYkG zrjrQ~HO1a&V>zC}?AMPILKqP)*&YvkM|{Rgd9vF7hQO)rlbq)*3_fggH~?KPchH6v zmPRTUdO2{{_&YRW2ED9;EZ{6~Sy+sGEXCfX91&hhA$ZjAPNdSPf1MYY? zBFzS4T-%@5!h)B-z5M(BJ>P;iqF)r5_@U&+qKIkgp`1jH3*`QyGRC!y-j!rDQE1Do zyTg2`-hZ5(tH1Xrq7-l5CB(?;x+ai^w|8cq<7!JB#_g#-%hDE9I=_+i(*mxhOi>MT#zxDZg}n z0F~}XWy4{7$Y9g@MyAu@g?@2Hz zl?mW~NIGAR44bMGY=tjJ%(PRvXZzROw&mw$=6DMxj%7M_#ri-T9=GP$DQkfGj*-M3 zyu$aUY(2GfSd)SFGkW*HX?4GZWz=;O8B60t0Oxpdll-&(0-Sp*|2S1S?AZC;<$j~j z@xIS+kFI1ONy(}#7h>jgN054D*!&^rOSU?CTYP)_^^y+p8;a>MfY8XWc)MgbPopR$ zStZk!PckJ~c$zYVvIYedWo1@aoSnt?bIOXRtr!KvcTyakZ>b!R5k5*vcq##zYXGfh zz52$Vgq@@W#ifnu{YJb2i>F2vQiWa{%->&8-H4=K(Qcg4{~rJ+1zxY-sS*nVRArP~ z)mB!S$`6QP)xe%k+kvEe@>8;tI$L?{QcTQ(WXXR%TbfL<1_~hq!Tb!1_Q( zihY+kD9=kIF;aY6dq1KhfR@0_9cbmxllG=+!E5m53VDAT|Gsle>4c zVjQ_Wf94s$DMs`}y8DTACurZAWxpVE*;AgPIyTz+?a=-=8|``+ElH1_D^nNX((rYn zQS9Hk9FzFgfKjUnJLyJLD}#z6%t!*A%&^%?-Oqd3@E|psx{|${&J+oY8M-xnTDsPH zY&VtAFV#yDlx3PA-5JAtX1qAn|LH-ksO+95J7-Q}K-WQAAGgGkkfK^;d=deoQ-i01 zB8T)^tlq&ivb@O4BBN55w^`lTP;jQHz7Rr7w}Koe_vF!)*X}>{k4c|o^=-pjqoM`( zZukO$b7fHS61^Sf``pYIu0kl^-MSZoWhSo!KTuVG2gwIf#l@&6IL8N7yoW$jCY4!RopK*x{4<-c{6X&wZRwA zGC-L>Z{Bd`m;4BVvWC%*R?7V!plhuPak&c!>lmv4{4kc7pB^R0(Q|PeBvCZtY6~@u z^c58aP-74Un+j*cThQtSXz9~hRvn#5t2~|)Gf;>_ zD6*BG3FY8=-XI`PLV6=n?c)kWkcPWIgDp=>4E9`x)9gna@s>>GJ;k4kU#Dq6otOuI z9Uu;sHE;#6LA~KayJDY&vBGGO6-*BYsL5F$JtdKwdus8GH$o@6BpW>g=Vo0^ z*8j`UCJ#^^dJDqQN=xUYd^iOJ(~=`o^C(l0DB=WLsz8+T(=wgD6;n(#%WSIt$JF-2 zn$h!lYOt`f!it_X&+!s|i?K@V1Vp|{NTYS%{q;e2bj$vKNr>b>D1+7e-u+UiHGW3A zfGy4_<+)^>&RQ?^957IG%|y5Ns=l}{0#?>$sHF+LDTc^-lwNj#bYxN zI~rRuIC`JMJH~bG;f>R-eiTqS14+nzCOo8q^DC?0kR9H(5IIsLnhcqkGb9$T;49%a zEt^6AR?s|fJ^CRfrgyy(MQ+XV-i@aXj-0?fgd4|{F-Q>-FBURqd4{2Yq8IDUQ7T8a zQ=S{ykCaEEV_iWVeE*rm&&+j{B;D7weQ34U6^@ zp{K?x&6E!Pxbqu4o%aanyoLtWYpa3sELr~Ft0*qmHSbI<7NJ@8{9G43@HCx-+KC7g z#8~pJ233!)=ilXaY3cuGQo4~$saPpLifd%C3A1j)L&^Js>?aaZ40$7cgjBr(`7DcD;Qy<5~T_rIN~6Tl|+OobY+B>I7Qc33mtH-ODe zTZ`WZi3j)OIG*(x<5UsiKC?Jabe>BRHM+q%7@_;yQx!?1bELL!3A^6wc5hLW&P4tU z9*U^Fb3BanrN#s-{U=V`h-To{W+ziCW!~P%^AtRAtqsJ(ViGUF<{pf!PK5dNfv4+B z!I3#jC&&JC^Lf#TJrK5i)(U&i)$$@*9wn7bbQg~k zPtw9BBrz!HA!-(^9C|sHWQ~#xr)BwQS%iQq#7~{ac}bA<2##`{fyN>3Zd!@~3kmCv zZJ0;gH0YlZ9W?zWE4lFFqr&4P5}LqK@{VvZ)a@!jKpA^4pj${fu~_YdnhExMBV%{@ zwLBZ60}kLTvajkkGo>a0~|?#NYNtlE`ro64qJGK{ahnZn*Lw^)X;HyCLvq| zYYcxCWHc`+pRZ6EUiGED$HX18{a-9+J@EtfTcv7|C(+BN@P1%nFHE>B#9SR`R!s=XhSa;H~Rlc(+aPc<(h>7(#ZkOx{`%HfWbv`G<6|q zVgXxApk&lylfolDY>HopwH%_i^KD~=IVZGJaiAi36CNa1+&3!`-xIx zr>a`&4x1DuzR(r!(-EN;v@nGh6IWW;BIj3fh31B8hQZVZhQ1xyMGBH=zCH0cZ>#q~ zj2Xyq9!|E=Dmn{@`Sj@1Njg zvkYe{gLp-~-u}&vc%}ke+n)0sG_tjBdtSGj0U#)D?Ws716YMP8MU9~9a81@lV73{v~?z% z#uNGU^Lii*%Yj=6BE+b{6mq7#IgtuYS7_y`gJ zIA58))V1=YVw1dJMLk=XGwzC1j6}LWCoE+=QMV=KuI_^lC3jX@1Qj>Hxw1;K?~D`$ zQz%En7q=Mkb?9ACr3;A+{6|%D;U(7Q3~+vjs(!EhpI1MOA~an}#OvJ!b0)<}D^N-a zs{le_nHIA@$i?@sVScP5T1=}i+SP?Vx@%LmIO9fszZ>Lbg}0TCP!yQMa2cL+dt>O z2v3d1g%Bh71@dH2Kcuh>yk?;Tkk5C12Mlhy=qj!QwzM2!_k;3f19?_P7h3c{Vr{Xg zY9shzct1xnRt4Q*Q#Nhq*YuM;K!rv7Wg8#aPq;C^3Mh;%r*J>#8LSDX3Oo3p9iF*` zHuEMdnmEmJ<0Hq-{sM9{4$gMjaKPe;b`8S^heaUZX}*t;SqguCdi;CbB+@q_^p+AY znv94hWR2IFTi{cbZV;P^w=YYFW_Wq|n-$v-dd1{VM2HC~>>agk7Lh>VM$I^2Qw_Pe z+zS?9Ht%M8uv$)00a-2^r0J+9rl$Nw$;eu%M&%?V;GXXWbnK^wXnQPOX&L~qG+As8 zbqV|-I$$V5<$LI6FD^T=<-;SO|f6)D&;kl<0qV!(cSouZ30t&U$v@TR|3l^Me= zSR)O2!#jQggooft8D(LxMcV&G*IP!#87%Fh!8JGxZi5APcLs+5!ATe-I0Oq227Zy9XKDd;z=lGAV`Oh5% zPalN#Cm1ssf;VRyZF^k+H?wzWRT4<|(V1EycK7tkVwEC7zTiGMv!f2pQba-~TC6`+ zylt$PYZ6EgCGhCjs_Wixjc}+XDsy5QRb@}{{{qOm7}1fNnjRd_hG@kAOvp7`UUJ0- z*`jz~2{JsQx?Q-qXjifF%O9e{#z$KQ7W>d;u}P5bkxk#tehYWg6IrmiwY>k2u-|;g zISzX^SXT7Fci0;|S(VFBkg#$5Y^MhF`^!|dbcaZdX3-Zt3k_hM*)3TW8?&8g zqvrW%$>zGwG|~Pc_`534>+iz))&)uZ3i>vUQHIYjpvsODCI{xSQh)s|m#I7&Q2CH0 zQ}K5Sv^2=gfzSG2{q-iJ5<)wT^koQ9ID0`~ecQ!C0Vp=quf#jf#IMFfEN0+VUSGc# z5v+GfkjLUkiX@pCK(l)lP~RmSojjQ`P|t7u$~x@+*$v3TXF&-tTTeW%`-{TF#I#TJ zKUe^nj_03**@U=|z5+knR>9{tDL$eC0VxwFV+Q274-Yx|a~?UpbB4lqZXB>B0Gb_| z>GR=1WQ25}1IsE7CLAy(3-nLG)saKCI!grZQLf^5AN~NIn>q3nepfYs(37@z)YtYwfnQl{hvRJ z)T92ph`7(JC>nsy{#GwyVlSPCWF!ANWK*P#^QOS{Ne|V0zr^@%#sor@F=rSX`)i-*hIIW=WdA;#t1l; z`$UF72uji@3+c%euuq9^C|8PF1X?Hm5MwAUBv(*_Mz*H`?gEXrV*-AO60$2Dphv8( z5u}1PWsBk;x7B2zn{j5@mNvo(f1@71sb>Z|3x`7JIrm9ntrf6WR{&__m0-aiYOrP} zdQqILk^hpS9eG+xAF)B}jWYlJ>yGVJ(|IZ!VXD_R4~{qgpgJgU^#3ukok!dz_$`<@ z=Gr)byAo5&*7&}Rb!x*7FAN2Fq#7J9;?|wOSr*=9(2X6tBRUF_8kQ ze{jI2bU=_j4H|^gyM5Oq08ngB?`|w6z%PjBg)|={HPq> z3SK&XaodJB$jX>L^eH2n0rhsM2S6ANxI80_;_(A?kiYt^P~Y7A*g|gz#*0y0s}oy& zY4erduVeTtJycr+O#2-6*ThS8PF7Pax^zZAlb)0^cGr}*l_nrXKQj*jj+TD2?_0Bw z>gZ_cbZ{O)nhi^IMg}YU+Zvn?95Rq~7oat_=L5COJK&uUJhQJ{UY!eQ9j=w)8u3!e z7xKjS^&T;utxE^iQJq3kZN$SX=8trgjiw(BWDaD{yMaP4)tVD+$2k0IN<`KG49_Kl z7BjZMPP~Ey;Ve!uL@4fOK*~Z@R`>=_c`=Z6+L*BZ!gTxHPk@i=%UvwaU|2)oVs?gD zJ+Audga9~x+&qXE{t>+d&Mn!`U90U`q9Ob^nbSD!{U3g6z9Ez|b}1;HCTLnR^5jjA zZC2Ts)O{dnMh6__j8xe%dQNm?+exl9Fb%l#L_?n$73NXNcOlU6lRUpBYssF8rUq( z(&LLOF2JWmA=MzTbxeprvo z7#ni{4ZF!TB|xIbEhk!8Ui->6HuJFn7bOuKVAxzg2Ljokm8VC9uASoIV)e8b7OXO0 zDAG8=>;J!bo8!kbXk#IfwT~#8fMY0~`l#MMB zBFM||HghUy8WQ!g=Y<=(yp)P$Q6WmmvI>o+XSIUh^ArZsmXt?@o4M<%?FJ@(48_PU ze>`c+nA4ti)0i7^lle4W{$P-QFjIa%R_?sNe15#-p8%%m2|z;Qab9&MB8u+t^S#AC z@VkErR*VIr@=u`io%Zloagw3$&s?2%HEoNIqek`c1q%)f_Y%F-wIGCMoKR0z6hL zJ!IB(om8LxM4I?L5a;?mGA=eqBvGZNrp8Ek=C}mh>BzgIpvni@W#_QlLKzI-4`s8K+-3tYmix}e@5Q~ z1H~+u*hsf%56WH}ovZ&4ILy`l0tEFW&dGk@fAlrybNKx;4xeUGL;m1hiXg}$X8!*>R@*PwG8_f}Ojh?Zi1QyF;0v?n_?_AYcVQkMT+&i|mCyh! zvB!9$JlZSS1ReeaGh2y=^1SZ@!gxmJ!zoJ{C3CFZodZ$X9Qh<>g@xjSiZ>VZl(1lg zs=mDu2Gkku!lAELi!1}GwN}a(U_2!R4Eg0nlzfu)yYOdMH1hTtQemSi$Ve z=T|MS*tdpDx>>u{@G|&q!(%8S;F`V0^jscIOI_!QlKL{P9K>q_o9pQn%fK@BObcnb z1~V8ZjZ1rsl!>AH6@(577ieOp@QP|~0x|1(UF@MEJD#Yx+ zKi|$~cVH0bdc|F;xPXiwD?UVsw{sB)4?lZR3bVv4M@AHY`1`%m-h%oMM9tza?Qi;E zAa`l%j#9}D=P37g4X7$vvPF|qCxuaoUD*|dMeZ1WaHvlJGSkkoysH4w;ehRQPFI~R zcphC|_-x>H9W7TNoN|Hfb(T7~!jAg_a95=-3}14!Z$q znVBI=Ew}_nX6?V(Nop1cHbqn~kIOL?r|OAxWS{qtSt}k8bnIV7=GV-4+%yQ(lIva| zUj?tp3AwnHt2TgtNxGB|mgfJTxH%Ja>sy}>2VSC(|HAf~GtnH+S48z}K zysT6)OOU3;K!>a>df{SMx%V7UPVR;8YEo!X(_*Yzn}X;m(~Xi?2LRMWsk=O;Ju)H_ zSaXJBoM76JJ+CX8p0I3?Fu`i6A4{<|9vsmQtTlYBR6ZW1CeU6_Kp!z3OaJED5905L+ssZFoLp7p5WR*Vj^$DqPh-S)q_q^ zcdOmkm_YciM{)uQbYxys1U?!;GNeROB{k$S*L9ltT1xql4Fi;qs>?so!@AkU2SZl% z%1iX1OT(=H9cHt*SwGr_3vU1bYJHx!;C3*#(WR|E@H^M4J-7d5??!U<;eq<<-w#uX zMXj|fi8z`r9_P9&T@drk{7@ACJ2Ij>;`8|Kh|)X*=!hyM$iIEP zFf~;scYDU-IbO4v(KJ*VhUS?ozCO>1KY~>_rZixi42v+JN7qEL{J*p5op+}uNBsQ z15vpf;giDp{2u&2OQJu<4)B-G>zb)zQB&Hxyj#6SGi(JDXp2$`4%B{mFox^&pb+9B zR62>Yxm!2YQZOP9y@kL0J<(8%#l-7)mHG95#ig`*|1LN0=+nYDXGKza|Yp=O5d z|2~lF_|M^kA6d+F_A_O~vz5mBZAH3oiKpPV0OGC#fN?Mu?O9}6c(D6KO=>6LSPf@b zqK6y}d~g?X7!x<36r5+kYFS1Oz|ToFKnMJv3mn2DWJI#?jx3Rn+yI98SCxsBtf`8M z%Ic}-&;gC5+0)}FKxu6~xzX^}^oxxyI?SX;-vt$lBS8L!9vI^FPaLL3#y!)=zAmNB zBSKlI3=|p0;{}TFKnxHKly-69As2Ftu4=oZ{{B|z8>S+92oW+O9dfssgFz!ss<8*1 zUezPk?d?LfQ7K~mNTdL!u`Jb3r83g5T0T))MHix^`rTN=7}zk=o=cLL{B%09!t*aB z*?|6xtI}We`UXg&f~E5d0s|2p7V9v6SV_c~atE7oN5_{*zbt*G>>(F)h<*$@wuXW- zV-E0l+v$ZAQBBA(!t{)NRJ(A7DbT5+d5Qp=*T=5(XXrn7MRdCj9o~QeayXn)STk~a zl;ZvE*%#q_TS88MCOV~h}3*xAeV0UOtrb{p54&V2v;Vp=PZe9r{7S&{} zZPXHzI2YMx;~sLO+Di_FHA2y}`RB<-kEs`U{O1b$U*g>ic|;Dv#Kin+KK<3$^Y9cA zo1B{@hJq$etME=vs{?bdG!e7hA*5S|8uXny#-J~w6BOoXW3~4-x`5e@I}B{e#KSGh z6|tE9ti=%%pnDWVve*|Arr~*qY@7-QR_cGxhMn@P$Ek0Q8teah{?XJOLMW6@w3t6i z37?a%5FGl86*QaETcY7sr@-OH{Ut#tiIl-U_CL;w#c1NLB5nLv^uL>K$?BGVo$HaW-+~sfw7@wPrsplpX%J*v%AZ z!t>1$z06Ty+z0-<@%77%`$6NpuQTC4I;XxkeQa()M4WQ0{vCdqOobyCqr!7(w$6yA zzZG3>I!uH>CuS!eFXLHvs_1m+%fgTG|9eNJHt^?RHhd)CGq4OB@@*fICTYL%?4mF= zG)KI^pOXk{FyF{o$!9@u6WJ2{HSUNQ#VXI+YE_^q@&!=8DtL265Kj^*X|I%)*t7OA z;@_G3DLmu4j`iaT)HiT!V28G35_&vM``~KFIWB|NEsA%a`h0{rTgZmFvm!1%-srBF zyY=lC;Pk1Pn-X0^jz*sSL&$E_16fQ578}#*&A-{eCW{O9IY(!Rso=>i(p--C3y+qV zncss&n7>Oaop?mO-PO_F0}2ocdzN)tJp31Nr+I-g-aQ*Q9)rhks_9?#o@$o2xe!k) zVgM_?!EHZ1|F{SW^W4dc#^0Tf2HyoI%F5kv=!&D-dUv-BQ{A|q_1=@&&iZRiSW@as z3V+>l|6JdKVv-R-8B+pvty9X|}_tYiHArp!GkZpCu@$L?b+-bV#H^Pz`#QFFs&TdYTm+gu}QFW0pDf0je~pXCs57W;Uwww&;50C_<< zkzxs*FuC*Ql7?^)Q$mfoA1eLorOe}zqCpCmRgm@~)W4RPrqizYm!+#wWk=qDS68BB z(^?h+nXs9;k`-br_zGtfn06@TTHkXRlr({=mbdev@Kc;MSZI9w|R|Z=qsMbb0M4 zW+pq|wFt~&%8YQ6k;>{-y#vFUYtD|Zg*WBE*sv9HD4bi6!q%itRHGDbnbFqEGMirZ zUx^AnOEme{<$-RUO{W9;_jeJs(__J0c(M~TroD?q5#g#KeRR)jwgPK9&2SC0H1JVu z2AufHBWX4{y5;Co&QKk+OWz8 zLpkY6nbqD{r&l=fU}`b#n*x?z!A1Som>LD+<kb z{Cm_mZr364WmQ`ZDPjL*e@P&-i+7yk?)+MGli)w6BZcVPGjS_*nn($6T*xD|9qL$r zG{yi}iJrX0jy{nNUjl?_F`M5bNvzc^th$LV>|+i2CE%=qWuQGX#>U8L zJH0Nr?>J-NzsAR{HW_v0TPE*F=wISur$;tIGostG=dqzxG(n2uf#>7)pCA}&9|ly_ z(N!+)i7N`k-dEk$ z&DLfE8kPHf^&tth^R8WRwbWL_>>^ofV0fJG*Ga$w8n@XE@A>ez{k-y&aE7!+B>E1DQNSx$7YBtxN|LsSn zz`KGrr#5?J-$$5w@ybR*s!i3zP@GB6AhST#uTP!3l4-Xi2P0T=I}6poS* zntzSk{Sb7|a3uehFfc)Rlacti*^QR#^nwGzfGR0Y6{q2s1~WGQ06~uY3df_Pk=M5R zVI_yU+&S>#0|dwSW-l%rEsT(Y`i}1GhvSl-xbum6v|BXUa%MU}Ged{fKsp_lDhQn|&!2&#jgu-t$WT76`S(J3_x(nqr-pvQkr*W`(1-Mn-^u_8H zcgZ5tI0}++v<^RTUcEx&ofr~-` z?OpQ_TXPnhl5NUlKO=}M`FC>^XHd6_giX$a&c{3sISmLhX#NX^H``D@`g&1p%X``% zzdcMWSZPWPjcsYYr%F(bxvCegK>^E|a6S=GaqSN%O+EUcaW`F?Rv5N2onI!0FM;CFCPH0F)3O7g^gYJP`5t_pqlyd6?NELFq33FRigz6E8YY3Pw0 zG&Z~~OG+&}YlL_kM4NU-pfe+h!y!2-zPK9QH*43mj!o3^G*b~wvUlfCHCA%6qgdBt zI`U9Ysb76tuH0PM300t6>L`q9Xn1h<#Z@1@EnoIGP|K71#*s41X#l{xkDNgH@n@V#KvbemTk_0px`t z#ka8#KF3II_L`ntP+af~kqc(D0_qeQ%)yp$rEX?DK;yo~*@sr_9q$My*E@a1Myt$jf8Q zJE64TFCH`3pOyk(&!h2 zC$Tg%bX+Z{msY{4NvUqi={ag=veYEUGU1BQF}oE`Cb|-p;e5Z&B(z|{=u7)KeR{Q1 zSrxCdu2#->d|l(J9@(zjr4=XBzq3PYr)meHBs0?X#tA2&>AF}kP?`C3vfVAt1);piXS5rUlk+mG%z-;| z1w+H+sIks!@nCcseeR9#qAm{vO;`USsI?GMbxq~&bSyuxvy-qL$}xn6)iphM#o=9Q z>&~;xp1NU!4$rFbL0kv-UblOxq#ojG$%8;x;r8wNcR_kO&IqSV(InogI9okY58)pw z<5;%37mFmz{k!?ClLrA^;oBj;xz~#XU%y2V3r;108ix&)-)n1+s=5ziof8H7%-33x z$(o6|zFm5m$%ji4_EK;#(N$h}lmRtj1-Z{C&G!A9K~*?ntfJg*d1J_vu~YwKb!pjN zY#-;$;YI`2*&7(ihAng#<=^qYPtN21-T?Mg1G@hGMdX#6&K9h6=yx|qMdeP&K*!Ly zp59bWkC=w;rd*t+_!*uLTr!#D;3fz6k7YQ#C~0R4Adc(%31n>z*4~1zebo;L<-yEoqDMTbfE>}V zUm;kA0b84citavdWM7H$x}Mddf%nYiKZl#+c?EMif=wdY{B+EtEZ}{HkVJqokwG! znFJ>{HltC#3!eOgs%WFbK2zVKjvYaHje6gC-{BlW*ee?}f(4@bYM!dbAsfKR6BhPc2R z6vh|_R2?h|&*6W$HQCjpd>QdBNtRNo@b;zZXe2*7y&67}rHIh5je>q4VzYo8-N5vG z8q18zV+sae;3DjeYk%31kCTU2<1Z*$M9Ny!(eM3>5>vPktckT2{;~rrWp(J$=hPa@ z-t{Gv_(X7|@pao0;4R$!RZ578Lm80H$DD86;z7!7$}%Q#eW-Hnd-0<`yp3^ExW{(` zz39I#KV^Q|+YHKw=>YQV{4 z8nV=XXgnX>1??_FZqcs~J0Bfy-wPBuF403N7r!lk=Gc_H)~RdXA_>m%MmQTUH{JWC zELZvGH(_Ni+Emg|F?7HORo18xXSs2^kX@Dojfz*PwYB12N3<5OoKbpP0<=7k+)e{B5QrOwr0^DpBOX4I@ZMW5|J{6zB#nImU zR8%}kFn@pfMW*>0y4rydnwsGw{`m*BS*p)3>{TTE4wB~jS!=q4uYmedVb&9Ewq0rA==3De# z`N7HZY&+Km$Y!x9jmRd9?yS~o)I@WJ8wl8w0n&&3ZUC9iSGU>B9cK;EaIf(?JlK*j z)MLlIKEz&FuNcJZ;SrFg&B5v8)IQTY>Yg14GkN*ic#G~iJFx%+Vg;DFw&-x(e?dG? z;AAR5@JbWR^#aCb;VD=Vw9#Ci@6m*vzhg}gQMFYhk-0M`>!M)~sN2R>kd_6G^JR2H z_3|9WzQhCm{;vR-b5Y~6tj%7(=J~nVkuP!bxmfpGe#}_``?aP9imnZ2nV-jY2KU&r z;r$=uWL!i|PjBh2XMrY86jgb@l2GOXkOqE!XHGun3UHd@ZfbiXDT%ga{U0pAY!sK( zj^1l2!r6Oj3!h-8c8rE&W1z_hYWD+7%S~h!A!Dpzq}Kd0>fqd5GCIxu zc)GtJ^+2Cw!G?(f#`vqFu=;~7O$GJf#qU^~_Eo`NG9XXpn9zzBR{{s7d&`CgbJT&B zhX%>)2EmEjqh^f;2|{M9n_N<%XOCg=BwRt_E=1k3cgGa7f^cWDUtgI!ru2vF^Tf{) zi=G~lZ_m#2#V_!F^z(ShhDZ>Y{=8!?xyF_*+4)`_ONk25DhlFuX8q}gOPo3?NWd_1 zKcNg!lSdmLy?!sKz3A2^J9^i<(-BE5{q40TC!E`r3*vaOHH>ifr}uZeS&#y1rXWg& z{us`%LwT>S)yUmtTK#7t&Q?3O+GFiW4NO`*4qm1cU0zrC!~|5) zc#kmb*5@b}{XPgCx$E$!h|_Yp=V480bPqP=ENG`*3@v}Ez51Z>Tf&zW#C}1pCsS2~ zih~S{(y!0YWd?i4(Yl)LP0LHW)giY0XqLe1D~dJXk^UyUNmG~MF0qQ13&Q(ZXywI0 z8&b82A6s(lPN$d|zr#IltzX#j5ylCJP^~i#%)Ub3J)jQ8_lrq=)$c?u`22jWc`p|| z_Y?kA97Xh@5U7I(M*bOV+5f3%cEHOTfqi@|;3RtvzakYWQ|d)OQV`vDleqOcXrD|f z8f@huIE$jn|I^^NzuCX3WBqAj+i-cjk>XwlKIA7POUyIH z$~m9DK{jd#-WdI43fq>ySxLto&h_i^y_H9A6^@G;KkfTnO%fgW^ib?y#2qNVk@v8i zS;@uhVQQjtjN;VE>qr@>nnHJo+wD6V^A`t3>Row&8rB_&nv@fKIfz(dog35P9kn_> zC?j0aRqu#IIcHpo-}vJ)ytw;0}0iveDEN3d*OH6E!LNj}d8 z{j%`!T7s>KOu*X1Kdbe8{vm-vsW#F31py;Xe`0%*!p;%>MEBfCUtY?9(>NUIJ*R$p zi~6q00cYXepqOK8EQZo#AD@0B7QBPT+FITUqk7DP*$)=uuUUiH_!?{U6dfP`-LkNf zM*-}!sndo7AM}-->$`7%=zWh_dZS6i_AM={p zJswCJkX_Zp*~yz-hs_-XtW*`7#84nq>rp>A>ASZg~bQF{AW60E+OpYV72H-(|ZaWLFl;@=5Z=)V;j(@gG{ zj85&bnvOWGkGFp4#;zDw*vDaa(==h{rx9Q7G|8V{7N3kL+Los{-v>J5dXb)mzGU(B z;l%m*r=)Qesfjur=j7h0Q+4@e74C5Y*pS9@qp!G;_6y zIVbeJ!kXC*>)XHNMaF2Wd%my0klv$l*|E1LU6Qt}HYUo$Bqc&VsE5H9_`PZ{bpFh-}D`TB3eJq`jz(u zDQy)`vUX;-qzmQe6HXb!VUoX}uO+gKxvZ`zMZZz~2vee7c>nNdEzA^W_M!E=QT5-9 zvXmrs!_Xzi5Q`uFEwT|4J&OerT*bJO!Py@)0(2WXzHFIZ#u(%`f60}jubM^C?^rpd zEGeRSqvJvMmfb%D&O4mizw$K1)-lW_*ZKqZU*i%fofM?jV5;Zm$AF(7^Os#r>aV9K zc5iTf)5B)F*-{vp4?>9_ESM0-*;%B69zfkPu>w@*PI`?S+&5Mhhie zm9?K%B#B~316KS@u>81@1t@1@6D&WUO@0F`5A%Gh>q)DG%flCI^QT2nym6IfpBL0F z5h2YvwjQ2o$3Cf0pHNn&XS`INEY5}I@q|&o9OHivv9J_b^Jp=^$X;vJepP9E>u0(*>!tn-8f?pVl=0!TtL~?H3qMINV_FLvZo1CD5uG{#DGu`n`EE0wViVSgG|-a}Sb|LNn8jLWu)dC|F@_RjN^NRhKY zzBnF?Tb($lDrl0QcEt@urK%BaETFZX&>Wx;s;$w zmLMSu<|=;Q*P*S0yw@neLM1_Bh;-Ne=^+F?XQ~3FYfZCf+e@m# z+$RP8gn^Ue!*sT6h&)$kD}2!>p4`D8UfIWn?@*$ zkJj+IbeFjsKd*XHB-Y!s@pt@}Ei1ahKkOjz!3DfL_So!qLw3`}6xLs$8ke53$Q#nd zoclSFIma{7cqa%Ax2HJOB%J#^7SSVlZK7GEdI*7EvQ)Lt7MdsnrG|Z`HfnGfVYQ$b zWO2A~WgH#emXd^|YjnvRd_f;vs35{LMlxLB+)S1_k9Bi-4d52E90=<9ru)dfp#v=c z?kSioUW$vMc~`Zh=w?@%2ouhRaLE{6;8Ub-WpJX$zUq3kuaaTGlYLO64%_-M?rig@ zT3rDR`;*z?51m(O1scn4yuJy28T539mEgk$GrKZW?d@f_y{U|&bOUkXCq=>JhwJ@qPy)@d=aBJ(jK zF<-9w$6NhhE443SPjIBOhNpbD?Wp;WN4nSt|4syWb%FYAVb3eF0dH@uo*YeI&NIi8 zQv7~8r1+;}0^x73&2mbl%Tp>`n;d?0^~oyL5wO(&Z`t7nUkDVjdVsg~PxAbP)+2W# zcNc+9x8@+*x8x+;%n*DAdS1nkQpV-ll3pEdXR>T|zBgBj(HY_dgod*s(MIQ1Re(5TEkFgNgiJ#=>c#a*QLq6`{Vm{P1z!(DHKs*Y~BG z_spCv6@+ajmlP=+w?rC}x5zC!q1Z4y;}&QczBeN>V-YRUlw0scK4|$tGI>3Ba<^#A z*;1$sANgPJ81B~|7x;jg8;XrxH=DZl>dI- zl+9(G+55vXKU~xpNf5l%ZrK&)i;($nI7MUsHKv}P%Z+c%&))RN3#EwTZQAHQ1~WHR znClyR!0h=K4{xEzWc&NfxmlZ#5>*aTiJ>;k)v2ZR#*O#ImN!=`JMn)cd8eUf-X7Kr zMLU?fCaqa;-!8Q|>-p#`C4!JYJ>K2+^W&;PO8`F2?A4#B8v9xH3kpP$t-+bCgC0%-1HFItVtZkb4gLXd7}_BYv{*@npt*Ugw%CO#;0bO=s=VM3zE zqXZqf0D4A?m#}Ec0cCSBx?qDpAGMPn^tSQEcmc3NPY@T%EXbl_-^`^5fD^*MjcfmK z-%uKw@Q@!-1&jDq=q{ckj_B419YMI82f-Fm)u`^Ml0DOXn^D(hhm{WhV5Rc*eU`XBk@k<;o8VGDiLnr(yz=}aJVT%p|v zkzRh$$5U2mZI8Fmm<;{+ug6TW2XR^`8hsTsMA`28CR%q(xRUR6zr8A~YU4*pAck7` z-&GCe?5a%tl5ECCU{)5_GOm|F>^O%fi!_^twZCN7BO}3#YjNm0H^-YuW&jikA9flh zhklF5Bf#~pLxF3@RCr{)xvsS5HE~F5U62YXLuT+MX69=|9ULyPB#>DS@o=V7rDzQq2NFl>MC_ErLVqjKvD?X&7t5-U z=AWG#aTpnd$i8%|{SQJ8Z;oqm=LVh^3Kp|zbJSa#?la@l>0fC z)qZ0w6UE3g_>Q>+F@Tm3GTpn1fs$?=>aZeK`J&i^LM)p4Gtnd6XM84^%FsruAf|~e ziiM8#I>&2;=d>{UydJ;5tebcHZ&w-0SiKW}Q4Q0H)HwZF7Nd8~hVRYSrG9i1?=HCUU zpqoaX(lR0edDx9^Z&g@7MxX{==#J7e#9IOYtbeI@43@RBxl|CSj#s*U2F8bJXwPC9 z*-<-0Z~)k5mhqH35oq?tba53~cR8T~PcI zntp9iU*)+Ul|)zkc?O}i{dQ$<4FZWAQ>92C+;0q2(}|8D5lFWTlRnE^kf zoTmuTys4g1`0TI-b@2;D;zZ4diGq z=*5u@=jBZNtz?-h#L!mkQ%fMn(-urk*f8(c4VR<<^PBvP#9 z{q6YB6N7sxzb!QDwOBZObIY2pf5VLJ_3o{yTRlem@g5W%SvLCL^pE(Zw}-yJ^d3*` zvvUkHpwT%|m~ZRXuF>!=j^&*152}C5+PJ#vcZ;Uk_$ccV=RMtT?5kLGv%o~2A~ECm zMl;*Q{oB0wK{E=3$)5d55^U{vbnCX0Am^f?sk#}acRiOJ#ZcmwFJmlNA`4S2?#Q*i`^0aboF+KK_O?uY?J ztkfE{y1G3H-Ykm?AZ^69U&1BOVe*)@+e1&b`4IlCF(Q@6UrnX z>w4U}NZfX5mY!p4ueM3P5J}pBOt~C=yWx7G3vmXns&P>8I7nJK9W;L~SyVe?^RJOJ z)Q!7lKoyQTaW^A=u^y`ky;!C^gZCV0#Kp8J5Il@^E5M!K>k^l4z@P;OoMh=(%b~S< ziEYK$->ZB55WE$V`a;~|I9sSH*_p*1(WbBP1B(CR`y3`P-zwP|H?>-M36urB)%^fO zjruY`uW9+|^AcYAgc={Ae2Dpf4S8Y?&q%WDLsUt zaGMHW#);X~`SW+=KyJrc2)>=JH4r4Ld@(dWYVz6Z?WM`xBw?Y1IIFDTzbGY*5}fht zJbW~c`|8>E3?|Aj4~5qkHZ+YINdDO+i`t~Wo9Y&5WA)R6b?zkBY!V`CVStsL$5buy{KVE34N78 zm}xVG@8iHuK*)xC{=3WsTokD!42B=lS z&9O3U@;71BE@?KF9q7AL!a`W(c7li4q1uLQDXoodUB9hHgvvA!_uV&5O#yfiDVrYs zZDoh#M2lR)9|Py27I#rpgg9Ze^Qt;Kq_k5q5Am}BttAnEoP{u^M{V-St>kV`59N(> zRD%bkLwtz;+Fi!*yLNa$3Tut z|Hu`w9BL!ZKOXs&qM)7dcD0%KO!Blw|FZU*q=?nzW%4>K{=%%#=4{<{(hhuwIRlrP zF%-?H$n3R|0$>++=X(0*<~`?Ulk0IZy%eR+U|R*x8U<>jh^u!H!XTTouA`au!=E0E zHNvsP#^n#x=5G=V!m-`uOErE$($F$y8~?4r5ze z@0d8dp(8!V>n8EnO+c5~n7oGS&VlpxhB;&S1`3Q!Oz#UOmR2T6E5t))nrm0c=d|ZW z$VEP1emV5I+hmnkh%G1m&|@nozhGNPS_2V3cO6BcUx3cdf_{U%6&iWrxe+}HxeZ7vat*=^J!Ys1jqz? zB-&}YLe~TeU~AcXa*TJnLU)okb`+ut?FC^waS=cUjLU(jb&;hRRnu*r32GC17+(Lz zc647rO+!w#;-@tu3CSdJ1L1eUq2cjzf_nqDWCE)9ZoEl*ut_Pt!d!WU_HBW6IU4Q@ zar7^QX&HN_(dO~5HW`;LIBK>P<5OKWbjk<`55-W$!mj0LDXoTMre7hOUi1wod;Bx& zmw;yM6w#|C4II3opq&31h7)oz07jP-#}GriP#L!0R)Rt8g6f3@>+!gQfVOzScYn1% zxN+ClgR^5b6ny~Lei)ec6_%tO4 z`-}iPR2MctIuNHJd-Ds2B}dag$T|msIROO1m~>Dq{_{!n51#v2A6J|I#cEIot`zMb zC(^5EDjbva+yu}Nm)tNql_MIMxAgcs;b!reace!bb6FDTI7DPhG|dRf-W4r9&k3l8 zK!st1$g<81JG;TLU16iSraSg|bs|)?GbjsRWgBkl;MeBmndr%1WbSUQNm$Ks2Y!ro z1!$!FU@%#hb_{Q*QM8G{kx9*WZ6@u<+cm;?u?r=XXv14GTo~463+5v_y9Q53(%% zTV*pwODyUp1X?2A;ck8X-Y~Y839kebVMye1+0S~7(z~jNFk5U1!ZDL4%NI4dfY!DqvydswTw@k!E#opNo?ghRFLGTw1V3 z4txx!jG%a(1s1?xMd2=`C(;e_FS29AC^1M+;yrldqWJyBk~PX5!?<}H^mxI`PJ(76 zB+e&*0MaYQM)W&=7edwYsUY1Ip`3Lj@z)k1Y|vbJzl3CR^0g5OZbe}N?zWBkyRZMz zQyHkvhxhKTEd8njH2wg7GrlYZl~`{^M6~nwWHWa!EKU;fpAoIBDx`P2y4$v~Yrpzi zh-NBSY18sy`N{0GOy7CIwy{`zLG+H#>e+lkYEq2XWo>*? zq2;`~<(Vv>KIp8|qP9&wK2>-##4lo>4RZgGuQVy8B9(1NW_xg4c(EIsRrZc=JW@AM zeHK$@NRZ7z$4u;Hm%P`RY+xT_xrvNn9`c7wV^_BTVrvaUUm7C4#SXtgv> z*A4o6k7z^EOr%$iow*WWv!3UwrLt$n9fl(S!oaA9Mei1W2_7qA7Tf$-h*pKS)D zRq%?czgc&2RA%{P=$e*J(3hETt~(Dc!1%d0uS=ErUbQTrKXfhA6jR$KdSVD!p{4%~=@ zWAC*KztB#?5KU_?dOp7hut~o!dX>50ltilzJ`r2F@X9~goXaUTFT&HbcUkbz^Lh@t z+t!V5K8`!hpZrGkE5XLpW@P3R%-}bbS9}%VukPAOH=`)QA3)^R-4))9^7p6r{w%A$%9fo(1UOH<$r#jO>$h0KXQRk8ko96z7sU z?BZg{n_)!uRCVDZ-DAe_LiFsfzZh-Gc#@Nn;L)3Abq0(8v{d+yhaN9u|ArL?*@v-< z0VZQ&0PcbNmGfC=OA%l^ml$-SAaqJg%LTdAy&Ysn!2&S+neiPD*3^RkRAZ!yo@nf8-}n!dbNqkRWH5vACc?s+MvBe1 zj1{o8u)AI$LZF^E;g70CAx~n2J^QG%rWQHJ2xqd1LQ@AXyLQg$c9+6dujb4eLnbyi zE8{r^HP~n`I3lbE)Xd{=4xd3=K=nx9wsc)t5IRJRF(j$>_#N^ja&aYI$}X8C`K@Vi zTkpJ&6;NtmCG!l80*Wxr{{i&cK;Ji7O>2DNL{ZXwCm!GQ=Ngx{TJEaA{TZYs&{%es@PCwp;sGP=qazOfXPhHW5@4Jo_HyC>dmJj+ zJi+J5mOg}-Gx3zPx*OsC-yfkxoSA%{>=`E>@R9$Aw6~0kt68*m1A*YuNC@sOjk~+M zOXCE02#p1I*Wked!6A5XfUvmlb}gl3I(M9)K> z<=MSg-@8>OmPS7&M2(c9XJuYXoROed=lpt;T2D3#z;l6m2Z(mzz+vr~$b0%CD;(X- zuiXih<4JoI9-uQCdJ-D4&@L|k{xmFJ*`BH=3R#jKMfF%{LCr+Mmd^?oBQoI91^)$; z{%xWSM9t!0o1gc*zIUr4n5bd84W4DQ4qx;Vw>$x#?Vc@{9wopHB$Tx>kzYNi`CCWn z-<}ooUp-3(Xy@mKd;{xEtjJ4b=8+i3M}yZ{y@1*|4rnsbOJ3@+2xKeMqF}3WSyXyA zy=K5N@P&IWq-W)S-p~M1vY;1p-67(dpM^%-7!8_^0_R9YS#g5KY(q!HzJ;DMdk)sU zrop;>ZH||i@vZ9ve5AoY4ATi7^S_$r<1577&^GjNT%RivaWYJk)Uu&oGur&BXmKg= z4+chFfaGwdf%;hs4*)p->20uqy_jUM*y!ao3rut@EWzV=lCo%DQl*tk(6q~OxwDuA zS!UWifs3Buq;>>`>VJLNf(-V2eJ$(p7@t>@jS3s2io<%UuKzo9l~kOU$g0PX0-X6> z3I#86j29N*WHz)lSEl}3rSXHhfJCd9t&#M%gVx_z)!_q`bNEe%k}QF}D#Zx}Q%YqB z6EKOD38*~3r7mJsw?BiLNfmln4*)0%2cw@!fINxv3Naj)4vVZ@J}gEVb;FuW6kV`2 zZEyovPG%r&M!N8FjsvsTOdjs@Fsh973;CaA0Cs#HM4C8sVuy@+Au;S0uF0IJMx2RQ zTQtk1?FAEMl<<PW$HM@XW4K*`-N}zy_j< z2FN1YV6;K>L0D$SL+1?@4(ssAFdBv%I0hcA zR9F0PVxlMjnJ7sVQx_B#Pl{IvD3}LDca5O6Zs2U}4eG1_AK*yC<$w7rIZf2K@8Qjg#Dh%f0r?rw_ck>Mv zUwUXpC@eG&GbYekfuEQt>P7#{ZT~Y`MPHF&KGdw;!eQx5kw%9iZ(4SV_FM- zQKKn@v1wn6s~H04z-P7Yd-ACGiwM&t!oeCU4smu>Ed&~$MlGl;HwU|~PX?X}K7M>r z-NsIOa|2bih^?_+aHGHI%$-2wHcT!bQmmF%I*9a$`Aca2L%|QefHM=amsQlOWsvmQ zi>N#zSJl)Eah{J1Cq0S>GRg|iwD3&3*ZX*jp^WZ(u6$u=jN;?Da~lU=#(M%^hO=5v zu*MMb;4m9BTEKna)X2Q55*MJZD$X>P0eWesf!2-ee;*((V6}woE%X#<`XyfAvl_C& z1tTT|chuA*L^hH7d+};l-=H{se~)IF6ymm+9ris3+&h?v?Xr`@Q(*L!129TJBJp*m zla40|OJmMT2abAzq6<(1#0IgsIRGh^U`zL_=ean#TMly!V3%S3vdb`?ip1ue&=YuA zFQ;y^<#(&ZUTdK@&9|A1Y<{yEG4tq$PcQuMAKxnG3KEZx`4e2Yx-nF;L|t}RFj!f| zGyWT6K44Tl2V=@oK10<-Ak>~8ba1@T{QY1-ux6h1ad&WY_1r`A!{z(+vLmClvl}+6 zDT~qfM@aQH(UelX0LT$UmI6hi<&UX+CeHA-@W7XJ(NrrP1hY6nK}U(^~OMwOTt zt{R;fRXuGPvs^`T4%y-SDXL7gfXaPKp@`bLm9EMLSohuFDf2Iv|9$eDR?|-wijp~i zSkFw88$TlU>V;Xha*LDSf{U+9)}!=$_&UH9Wn12KxJe9RshXwrJ+kR3$_mOQsV_0j zRu+wP_nfQ$GRzHM{l85D1gv=1Xt;YX(99M<~8434N>o`@KV6+O*W2 z(p@2lpj^wq5iFMiE)_p#MpPUF7r8g<{CyB)8Vjt;28#BRn{4;eY;={Gzl`$I?IF-x zqwmqwGYb`fwo?k_=dbRrcB~i|xZk}Uv~}lmB{0?{QD4s`SPT6;RGjiJ3SB)J7#oz& zW8)cRr?c>|)y=L~<(2IOB~Iem75TLtcB46cw7+U9o!ezPSh^Hi9;la59x=#}4(pNC zbQRC5uTqB5kM92TZ>oNM9TbiX$By>gGcv-ojELi5d;hPtk3O-Js>eaJ5PXK)*+~T1 zM8jTy2v-9e<{wA?gSU@9DQFf=Yjz z_HrDk`w;*OzjbnFlQUQQrwe?d_hveqT!PFjstBHsL5Ftf6eTw~&Lm4nEO?+dl`rVP z^K`0l@d3{)dUMwQ&7zxcMrV+4SL!zaW^VhKh#`9XUQ^VZPX4e=uPX%uv<+2$@W@Z^ zanBqWJ!Qow&mgL>;vV7luvY1iH-wnKIe5* zZr0~z4XSdGH4WyVB;59BMlj%aQsDn^3xd^9SBH%s(5SK-?0J010@57E3kDpTYRaa> zO)?^N#1H$65<0d@N?sIm7C5mjQtp{FR_KMP&c`ilzw6x|4em1yX13L9n0)*#FYvsA zV*PI`C{Y3mVCszl^ynMq)g3bXvtxQ4KU8JK$S}oOiTc9;FX#nJJhO}6oe6n)W2YW3 z>YNWt)(o>O>#n*8?4S66jmBN59D8~X^-xT2%|!h7;r$;j&`eSSdnMy3=KP@`(Yb zhNbs%6;5*VYS5Qe!9$Lo2!?229R3ds0l;MSCa3zp5xc;{QaWI8B=BXi_0Kl8G_Y|b zb|$wNtE7i*02(3pdK4qS=}g%wpzg{a4j5zTHT}~4yCxde2Oz}X;Olz;g!pX{w>W}1 zDm|d#VMD=cV*l$svH{iyrj=(e_>@_{|H-q%wP3{Ihi?#Yf17~u(-UX2Wi+UCo@c7z zKXlfWjLnQ`XDz#3uMP#UP>47}@*ALBvGp&6cBapd_cvKDC*{c!693@rLTYHH{joJnlKUY2m`UB z7vb9B;L$QT14~9C^wVZt0Q<0z9QzebX=^<++w?|CdDq13ADW%#|2xgTH4}&{n}qsx z1?!|WLedQ1-*h+ZZ5mMRAaMjY-hU|mr2jDA0L8zC_{X+8AG1<0GpcFTA7RC*9j5oy zd3;RvYgvst{v!|2&~Ntp0y-JMklx>8o$Hhh^KnxA4^M>%uGGCFp;H z91`L(EXN zhyyCQ+d${e8r1geGvNq2WPcr)6V7cuS=N$ZNtih+f{*4(5DYPS-u}aMS#h&w(%xJ#-^Knjf*xa}10qJ2t4XA?`iUn_ z=dW>{ISAm`nwt?TmM&1Voo-&u<+zZ>jX3tRqiT3KM2Gg+WTYDLKJ)S5q5qwa|I-tN z#4Fs{K*oYEG}1sw1o|-M^VrouixIHmXimS+QQ6~J_S+!lyP?rvQY>aY_dhpJ#2iEx zJA#qb@vVi{b7Y<^Dv%l>F!eo?_*u4wv+Dyou!VaNKV$n6Fk8C9R4>~HiZL;oekNLC z%>EYBPYW*B(Xe7j!!oq@AcD~gTl}O%jma+7%zM0#&&yJcOE71b;~a!>AQJG5a;A@T zS~xg8c4o0vn7qkWmgzB%<@WOI|H7NUfVAr=@jKx&Y3Bnd`n7L>809O|?aho`|K1tv zrH;x;a_R;nhm(B1Y*t^2TlB-|*OjF~jVBKK9U`^<15UeM2O^0%hhYO7K?CM*;rh)c z5f%9z_kfu+%E4&r@Aa&oQY|pPk>PBB_%=z^PiVA@dr0pT~kGFuwbC1v! zgM^{Oe^RNgDb`{vMMu!}R;rzGfb$iW-Jg?TMZ|a$*p=dk}uvnbZJcIihDx13$CPsK_h3Ud8tpIH^~c5>=&Bh{a#&}`V9~^ zbsT#g77Sq>X9=nkarBh9B=?U}rfj*Gf1d`+uzI!{CPMRTU3;c{Oq|--uF$w4aZrzT zFiM9HEZ+8ogmxne6iTw`CFpD^FkK~T*}89l^|NLRjos*gyOdLbD3dm$HM4Zxzj9VaITq02REwG}!38*t$fL#rxI8lR2Mp(x>aYz2~ppcshXv6cB$ zQ#5*TAE3Dt1R)S$IAni&rgl*(`v{skR;^XE>vP(i_@z~1&aeNtxD^bz9Ncsnu??Yw zMxE|&&G6bwZv2-yLCiHMkQ^K{CcT(`t_w{8P7VrH))i;}>DF1#-CEw(=5y31rNDNd ze8Eei;iHz9!p4~0CJ_&65zVqeEmWCBt#zGi0>?cZMWjIZ)4`o7*AIJ)Y-MjR1N=a_ z^lOn7O>B`ik^CL0W7EhIAl?P-HnRk;Jolrs%D^stA;nKT|MqV_d@?>h>!D5s<9&D0 z{*n7~^Ym|X3CN|FAws4RG%}N!ctSPu7i;_dxhfvcBWuC)YvTE@BI3`GuI?KV zL4U;DoEt;QtU?T2>fpBecR!;Km}p(U2n~*pODo4^g~oZcglPJsTl{b43**8XE<@C! zcb9Yz_IzzWU)(>E-RG12aQ#l9W+g}MCuI});`LoDc^3ob2t(#iZ^8=WCqjhRz7bRJ zvwPM1zZzzGu^BO->7=(&owohK;|&cvUn7ZQ!q9RCBV)`>JU&X?5pP2$!_&M-C)a3i zg&-e_2aJRmpkk%WSB99-$VMF%)npxj)_yf8bxnG!G`sk3_f<1knG+&S1EF%MPpfh@-9c{y=yBtw?Cn5J&C) zY}PYN?#gHKZfTn4(J7^E!nYrL2Mhmt;O5CBGhNq$ENzghwYp3YY$&5X!-X6FTyG$! z=cg^DBhP~Ln*^QV(&i@q+;lI~25Z=FPe$jurqtunKg*MG#-le#nhgn{pMmA#paMg* zCtx#R?0<&+y|X}PGs)Y-6Xf`{WgieWB>w;Mf>`EdppKsSLvcX7jM2d^A|3@BP4xwA zJH=@Y*WWXW4M(Floe6nxUh(853M=1rnI|PiJDw1?-*>~Ps2lB&UQza0Y@R5W0614} z{qsu%#joP)hC=uevuzX6xlKkl3&Vp9)Om9wZIp+LO_l0r;*e;s))cSJP&?~$eZuzb z;>OL;ecw2~%MTI$C1oydwd_V0k(}UVWeUQRKa+NT%~cV%+eNYa!H9Qwd6~WS!b22b z<#fQ~7Rom`cELK1B1Ea7bc|c+L_YPWE8+9A#^QP@a%?{Q_b*WVulut_Vl`L|!c%qZ z9;}C=F`Q=~3^F|@S`LSpg!Eq%um^rM;Ng21tEOICb3P`ztRgBK9xHy9aHUzQ2!HD} ze55Aa`RGr*>`+c$N*a?TzjqwgrLeV2M$kQL24gVL*>3RwT~7hV+PA6tU7hJ&ou=Kh zK2=g7@1H^7$M&R1JTZ3HMTx3>7 zv?}E(3NAP6_3Ys%Z}8p$A~bx;cY-PXy?VD=+P5>hw;kcQsD0xi_dTv(|0JxG9c#0( zYb4J|9}-`Y5f3WVcTkh4P5N*}ycvCONAK7vgT0mKe=8TW%PF+REA2`^JcnscYXf`M zljz54buDyo>~lr@&EZ{qk4&Cl@b`50u6sUgF+a6co>eYbk*Bs#Q^zMjp*q%E1K{<| zC4UrpReM}4zwf(zKI5C=M2Gbkg0rl@w7`}e>{_g)C$CmKwX-Nopm+x z4z$zTBBIHG^K*g%`A;+Ti*z$X3W9zppvXWBm4S_EQY%QhE+HtefF3M4C^MO|P_d8@ z_>PrblrS-v)c=-py?gCjSh#=0J>UV2i?Qs3O-XDXc4YrHH$p3MBR2$$;fHkQ)s=7PN6Gx{i}uGcY|sh!k|y=E4|e4sUpfbjIe>8ay2n>Ql&kXf|3 z!d(geNlDrFk0P`7vZc_qpBaF*@Hl)iVLLAGtgmFitfwB2VvV)Ey*9$2^&fAVDhx`8 z(fV2}=mOs#61X1Ic?%RDkfo)~g}{{MO*x2FDr=FvYgj6Vv^p_8oW=wo>=7AE=b7Ed zntzRAZ5DeXMi*+}25MfmQ4OyGdYv8#h4JrDFgrXB$@*rfkIuP8KpUyI6PgGsKb&Oe z87mGkwnB}ggS(#! zd`{uY|7_q1XQeJOxf$B#A?XDy-qO9nfS074&Q>D6LRk_XCBX9AKq4YySh7Qr%4ckT%-fdLXVKf~? zZ6Fhw&-_AXx+95;PYbt7aIulvF6P$%d^1!$cG-Y-FdE-FT37=q&>}g#8ZdYTQ2Qg( zKBrh=p0cb?YG8K8T2H#xuI8XWyZvBQY#z>0e%_X#EmiHX<`+YO4`G>S8m$NPM z^&KTVKN}Aec?$8qT1h0-Ct-vAz|9;~eEX*tQ6;nIF{ehvmeU5y`LIFt>G9p{+t_mQ z^i-J8&@KrKF^7p4Q-9V{4+=Cs3wewBd2-{#M=!`wyyagtHIF4IX)}ZWGiR)N)LQOq zs4q@jh*4`{WG#IQ+U!G=-)@|&b}ZnSsaLOS(I)wMH#zZ{$}MJy3QWl3C>f4UJW*>d zBY6EQ_~5uqemn|peDD-zre0XhowuY+OXBLP18GE952`DiW{oD-rX_W|3LT8-;jRT9 zaLx+kjJ5{6>%wg(M+5d+AP30=>+S{QjNb)9e2Lefgr`;2Twe$z_*Md>~%mAW-EhF zAF)Dy@ATIBkZ$f*1ud>~0?=?|O)q|v$mJ<5g_b6q$B9{piX%2T_#Q@$IEV}s$v|q* z{K!@lLxjF}HV*Q4LV~^FtMR)+t9YjSN5H*v8`^`&x{gG`+Wu9&{Wo`c315xSJt^#+?F84C24V5H zd+Dl6_h_eFI@10cB;JVfS4T0ZA;M2YkMG?BaI|%eFP%C3{4%;M#;MN$Uy~@MJYFKl-9n>%#0ksF3;9qFOItO=USreL=J7^ zb9@`ZnytZgSbjO$zZ;vR0m{bdH+l|&uNViy- zjo37`ar?b`vZzq~1^I{I07?!u|B5iK@n#( zsnvIAhtWE@S$JRS+}-`(v@7|ZPqsLmLvU>+00q6}E3Z_0KYZ9>ki?Cl^#(Oo!GKcd znWWF86lF3GcE7j0B*e^HZ^K>b*?re;_8wjf&HVBpoy}oUvfjZ5CJb#q+Vk)`U(7dE zov(9kVgK2mv>0`sEbIT5ZGx(KR{=UFFaspwownZJt&U;?So9c!`ZOs8(Tj(~U#PFv z2w35gm?WT9G@DJU;es}tfDwh2M5AXrZ2rl{TKmcCW@+5+)1T#kz=p8KBWe19vQnXU z)gI0(URvGULk!o0w{9J~Lh&eAP1!5J?XN~Q*${pIkhhIxc5`fl zbn}=*|4fhPHwwL+6$Y5>JN$eAIBmPc(B=0Kzuo|2w*4Zl8TSibcnvuR1--X}zuN_k zPGfmpy}Wj<`$Zx|oK~Gycrd1;mX`j~&IaFAI@W4~j+p0lZqFp*stb=eu|OA}6&4c; zL~OS=zTO40z{jqnC~ojY=kFQ$)@d}2!Eio zcJbJtW*16}`k$*=ng6=Kta)``vn+sk%JXCvBH#PRH3S7^?f67x7NTDZJA6kfersX_ zw+{em30kM9YTFjf6_!6x3TeUl2HyFb`GNEA?1OuCN*#V8+Dy}wYMy_Ap2??k3e1I} z0hT8+mLeQh58k8t!pP~6;<1Ivd0x5sRu?-e4RAG;(&e8{4R$U+y+FX8NrwGaUBGW% zHcvSZQOcd#26B^0>l&@4mzlJ6G6k2Sd3-{z^6Xrb8YQnS1z9In2_?MP47J}$Z7lrq zTiwzYA`#i7zfNHbG)O#DV~}$fk(|Cd_ZV3t5+O=9nwxyK-5xbSk~J(l+GXnJ z0{QC3d0eL-2Dr$=%P~t7Vhcz#^2Ya58_IHo_ul^VBg& z!bd=dLhL9-=Sm2;S-d3fZ= z9hM{HLkvVZhA~~8X_SBBFP%FYUZkB+f(+Ym0@Ik+h=gEHhrw!>w}Lo3R{1}FWYqXy z;sf5`@Wl%YgOB4^gDv?e!?|8a2#(E}iGkV7S!*2~ga9-5G1nQ^_t;O?#&)gkkwLoS za@Cnw@V!IGPCv;X4ASnn@~gp(3gbGqc{0+44I1&qM&b^=c)+LN)h4)8{7*X%fO-b@ z?FVlJb|-M#i~d@fTj)Dze$=KT9+!|?qqB(3L*3s<{+R2>eSgdnBtlEbG?b014WpmN zoG3pb4ZuP}C}ZVLx}e6Nb12-=@QzI{N#fJyC%E%frx9a`qbEMNB<_=~ql4*Qq!#lM z+zq{H`S^lymPtA|qnfAzp{`?!14?7P(T9E0+2Z0oE)4)m(|b?vedb_jq*6Upv^FNQ7BFQ~0Xsd7el@9y$X?^ZAy7k*99`vK5b!X63DK6vF!8>aJKX!0$P zLabYB2Jipi!3-P78kESY={@+Ffm5p6ZCohaWkY&BhQs^UUdGE>o0$zd>n|9dOLr;t zV{^XMyou=2YV{vND;iGnp;F_EWek9jnL-gl&~$jQSJG!D743JEON=>7$!hX(cVx>s z?>$W!-g~nCSwBcDBdxSO36x;15Iy{=jmZhjg3VG2 zJqD~`4VNXD9#eO6!h=k&B0>~WHE6oEaRW+rv?8*d35I1bLY%r`=Lb}z`hxIOXFG&E z+n>bdMQ&v=<3!~^zQz>+$30(EZ~E^n-UKxbWCU4g5zWDeqCi5;d+4r>jY7)&uEe@i zK2JPefIJ075CqyF2i{K-&O*HTv%VJ?Z{nr`AJ!H+h~ae%Q9MRoYqoQfURG=O2%BOt z80TV0%&pxG;QqnDkD7}99(+9KLD#y@povBl5q0)mEK7~@msjm&5CPvhmDu{Sim+u8 z;L0X}yJufku5=pqf`MigqqvMfn8NdIZqQWsOSNWCqZmOoiO)p8eLS+vcsT)8joFUX zQJKZGi0)AIWd6&tS8?5Wc-bg~eXmaW*UnUP@emFGdk*$@EHULy(!YjB%)BXW4%K!> zVYWx*My@13mOeH;a$wwHaIL)Fy*JTLT~*0-qkLv{D@Pe0LQnpzxrw~K&*^Rz2?>>S6f50?T1r8 zWB-aQyCQ9Lo(2XbpxB_vY`MntdM*5k922=WLUPnj6Ze=IO3Gm+NF_Tt#&gxJhv0|t zbtGKqX{r?oXWB)@!aL{v{jr0h-=>iu@7+d>HA4#t9<#TM7as-4NN{A~G^t11ruHMV z5d$ZUMa#VZw>8924|46;#B`}+iPZ*X!Sr)UlX*=0uLt70YF$Ibn)R1FwGlcP1R=3_ zdErUb9a2M$I&tU$b;nUEl-CQG01i|2(w@T|; z$|J1AuBZPDaXY0-5qV;2^t6o^I(iSRS?b>AiFvprS`+Fi3>!mbQp7rsy*!YH;}3(9 zbntq(EZG^1{b00m`18HWY(NW-2TUnGD3gx;5;b5WhT$?gI-I#ID}MM;VK(HI zyW@iO=0er`VFPF7%#gaBok;r?Y8|84GSio}pYLwyZnt<+4Eo-R`4?oT#B&0g(Cy7EZ2ZoEW+ zrU{V9?U!2v6j<_3Wk0~w%&XXe1)*kB0!`~v=C{R%kYF~lgN30qI=6)Ir>0*z1rNxCQA>jL}QwuJ4iH#=y~ya#`7 z1bZwsH{E2C6F;Th9mb1rua9!5^q;1#l4BM4NOt=ix5tN*WYQlce?9sg&oM4MQ=fAC zzVFi5D!=B?pU)0zqX=ix>VoZX{E0}xUDdJZwoa?Wdn0+P*#2ysburh>!$O+5>yX}(2^BxJW{iHipO`5QD5=`Mv_;$z!6RvE-7A`0E7`>P{y zTe>@*V{%!Ou;@iMLcyP(K5&Ce{V~CBhXkBevcnwCwxjwanbs$zR<=C(* zCeZrqX7e}8?BH#dd?(@QARR<~>F(G?%+8{;^(|Z6aPh*R_o&UdhooLq(j5`=%|S3J zF$B1jU}-68i%4Hv|^#ESQv zxo!6@2#M)roLZsd619QZli@8iobu$9uoBjJ1)F_U-BlmH)=b?930cs9TbL;aQC2XD z9>}7jezc^dIz}hrr7tnV)y$qzoqQbsJ=G>_gtBKi=wLz3c%i493w7td{9TVX=%JOj zy;Vhc44X<^t@L^S)@w|G;?&H;&$3{9%X;9#nV;y7mk}NPdC!hp_mR7(MnoG`C#J)E z4d`u-2XY7GMChm9xiE?UHMyAnEA%$(mDU`3Sp_;Q&};lPbWv)C*|9(+G?VI1&k?>c z1-FFsJCf{hzbgkYy9F(_8t=j+#n_0G2#a*8aku9Z6p>yS6xh+V|JnwL$Wh>+>;_fI z5}nH6z0nQ`%GU6a-yuE_xofSad)vL}Tzv6|=Z|-O{dN!_$2rt}KKDJSalg81Ca)RVag;F8AluuEyh>_u5GL;IXT> zVVNUeK)S&8p3Fr;gM{XIynOBM4p;T*8XP249eUe4&NlM0#UdhM;vMdEUPz-=Lrq#p zt1;YFNcY5*AenT`uBn(K^_2v6-%huq(VEvCamsjJxNBXTucf}tE}25C`NBXAFzF7W z>X}8fS+g1$oLjAKKjJ$tzimzJSz!q~Je;d>=w2%2-L0N?7=`1-8^wBHBJ{?HDp3qF zez2`}7h*44a#uG<8L9iT)$h6 zsr9-Kq$T5^9ysPs5(rhVZM!Znm%5pHNEvjH^cZ0p|IxvCd)`xa?2k!RQMI4!LYU|w zb5s`v=D~*h+5_02_U^l(oQe~G5n7CK>u6}2ye132nD$y_d#$U@zgzA7wm#kDB$EBE zTTfhoCelxL4n*@VN%<1o3Z@kGfi~Fu0((v-If#mhfoZQDDCtquOpY>{v3(Ze9 zxyvyYP*7$sPSK08nKa2Q3qfeUbTlEOJsA;tek*@S0^nbYJ|s!m9pMa`prG;V0!fAt zhCY4@Og}*zJsq{%ljg>d!h9L(=tu|b8+w0Gv{K7MM$6A1SZ2~}LY1do66MFO%azr^ z@N?=nCC|@+3KLH$QQB%*w87g(+YqE(e7glX1W&l}awg8RTj@g!oe_9&+3j zB}EUhuFh7l5H66~D!{dN$Rd1SsXP>TTq7qT7Y zJLCv(eeCOaI1@L9M#B7gC@_)5zI@(ZiWpGbma~XZT(g)hayTQnkWn+i_A4a^@7?C! zX3#rQ+5}o7-ud4DZ1rJSd1z{lMMfEP*bJ@iqFk>2WZm>BRQtrSU^TK0mBV>??|3P$#B%2Z=x zpLGto>6;T9L@K$Yz~AbxkOE@P)VB_z&;q}&G-#=@H3#`?LY-Ub=xXpBp z)s?Ujs>uR}59v>3slR2PvqFQC_kbco@)3HsXPIkN#Y=a4gRFPe#MLEWH_eos)~QIi zc30`3YmmN*S<251sn3P zR2)hJw08BaA*F(Hkc!y2aejv}w-h?c2CigxU-aVEQ{H0ODe0*u`&-iCdN);q`IiiP zu!Y~Y=D6(s9B`|KYFFJ_7W4E3_%=WuHY2GbRu$6LiLK81c=HerG6t|a+ z=&&xC+DYT(VH}KZBOkgg*f(|2NFtPzfdkbw4w`sOW+g|!w(Cv23;IPDHBVuU6dx}rW#_aBnz^i*F2e( zxBx*T5{d)d3D}DR=6iG{T5aiqGCl?TOpCyrKjc37#fBkt=}e&pK~tj)`xGIZh5dE= zP+nhQQ*sJ^flbnQ(;!1IrwV(vbQi(>CDIXPg$$Rt@vVNu*N7j9q&dS>BPbbfjL>-t z;OMlP5=R{*j|3LmB_EBaUSL9NrBxd*=^M{_>MA*byP1RixbzCrv)o$SCewy}>YzXAMCn#kC1;0IF(k*OIL}+REF%2bI`HC$OPvqem zbm}Cr8^5zw6F#}twduina+`F^F8aQ~SBtqWkqOGTN2Cz-MnT#}9>ZjegjuTL1VBgj zKMUpgUMh`FnJN8}9Vg|_TxUtTO&hj-nRVf&hRa>pJk2py-^{yq*<5@65MSec!5{Nx z(zq?6<9e1*_u=6Rh+_pcG>(kSiwq?!e%iGh^(Mgc;=Iwzy3No70w06uS7dOwk}Al~ zd6*a3_Cw|q&27<(=4Jh9MVeUJk{aZj;%qWlG4TCY$rxWH#?rB|72alQXA$Vc)7vM( z$#m=?mPadv8hzp-=AEBKOj-S)VXA_@0LWR23dsD+Q!>o&x8b# zrXzyes^VaUo<20+Y}-wKQX)hp6(%w7N0rIqmioYH^9s;tGL+>C-ASGQ_CRWMWR^Jo zsk6TFZY-ceA^nk%Hru)WdPQDP-KN?jNA}#ueAxELt}d)?5PljbJ!7eP*Fh|{m0k8s zlzx|k62c|&2TOu>}gl7vNi?b-hL&R!peIY_dVZkw>X00O#3#tw5%+w_JSjX zn?+V00UL0v<^s>6PN?%L+`h>WOuQun{*3vdL7Ew!Zlxk#pg7H5cwYEqh>1N(Qx2_d z4F8?x{l?A*3zVa2W#85zWsRk^=xHB3U<2CmUKZbwT-p*bc;rg!XjhCen5&}QC@qZZ z2HdTqjysKmO?zLN++Dh!AB*4scc-_r^Wl}9b|qF?#?xJA^`B)o74zY9gkQA+-_Cf1 z^RyTo#y8!*M77DnVjKL5%`8nmL7f&X*>*6_Y+pB`<>K*m7zyBlnkuymVTA?>?pbE+ljv2 zNmV+swJxOj`KMRp(w}tMT0|k6%6R+ege~RLW(j5J!NZ16OWw5?&GZO|q6H3vLU-pl z`L`Rv^J)u2jj{FAq)&GERV_CJlSS8^SySI7=k(c%j3lS?veE69KWtZ3QxDrIpPKn8 z>wB2G28$Zu?`?5N9sG#acPP6T)6}`m*SQaw=*J`Y(M`3OW~lSZ+O}k-Qc|z{c(Yfk*x9S%jFMNw5LjsjdsmQd8k9nVJ-&UFSVU=0UYBn)lAH|3`LKpX1 z38qrGUDmfnTbx>|-~=Oj+cvr(yLC`k<9E_r|DC$VXGVMxdkWOE$Tmzd-MT+3^Jav3 z@e#6;elou3`JZC=8n&{)X#=oxeNW7hIt7wZv)=TcC=Q`Vt_O+DTU7>gzkcri zd}#adQ{$+H`eCby@iF+zxG;W6jwej6*Kf6YdIp?YyFwkhF$QGExQKrXV4|A! zqQ@!UYEF*B-kLr>!B5?YjGIB0Ov@r~%JO%&Y0*9H7ibuaq0)AbL-m$9Oc!_;@ni6E zIA%N@;_+GaOXul5V}ZR*%gx%7RzZ$?w%1~01I2^>k_t3MUZE-K%ol=TC3LG;dA8@a zfMK_7z3+$F**lntv=r5ei-F(eD6@dB_5=KMCxxlVU*T6Z5=3)HKTtlf`jxgmMvuei zc*zpH%yX(&Z(~4Fu;0kc5`*kXzZ}p~Udx3sours4?y3}?RTM1OxY8mHQJ-u|xagx| zkz}=HItY1agI0eVMA;))^)hGM{_gks$@f+*gp%K}<579p?~3?(BVHs_p=O|OrN-)z zUy#%9m2@mYY*JFshc~)Mw~AqHGy;%4;cCmFk&2rzS0j}WAHzU2jFb|UnMPntSv6>$ zcT}q6Y=#b3L?;aL7Yk5>^rGIGa#=uYlhUs-@3m2qV$2NEw~B>bY2;$@u{{}kS)`gLnWSHpvK&!?c?f9&(F0o|J%X&cP~Lc)q~ zL9e&p=K0}@Jl#jvv<)iZYm|Kd_T#hFVx|nK-)msgAykzv=4GH(X zDLq}+17$Qv+RzV!*}q)JxEPofARV{gRpW%=QY@;^jq^Tczlusa=yULKIBbgAhK(Pw zfxyKaF69%sz|~lxl?gw>7U%Gj7tL8i425a4C*2QXT@<*S?6A|N@qKo_=R~u#Uv(vduh%AD8= zXBW-#N!Klr>v^LS$XfA76dc2FKdYRx((y9pnD-ylMq=WxM|{xc03G$11~19g)(-kv zd@oe=^Zdjg#w-sJ&yUE@aeJMDAtG5b&U~G7ibS7@NbH2hYX#4-6c{@fYT@%BSX59u60*zwNKUYpkLzBXJ9Ff z)Xv_HS8v_QzmAvOq|QYgYOVbIy5g|5wHHedvTMkABe1>v{mtZ69v$6ze$7NQw-mft zIp?0|lpMq&Zwi28<9zChN35edq{5aXoC;@tOF0T~h?ccLC6WldYbgsTxDCFUWs4oK z7Je|Vzr+-yn8PuEsAs{;e>jL`^bheoCtn{13`Z!P<(%Hg5Tp78;$@B?aiP-L(lsRA z94w1{ti#f6!5Xg6>q<9{@`vv*jGICy234R(wkfj+IMBLB1sG*KUYaa1t zYq6xU;)hDNw>iRsQq)yd@zV-v%J`YTp1MUfNf}fRu}iQu>7FGm$EZ^zMu@#A9}y0m zb;7KF^3PdL_0@(@m=O80icgbDL(^Fh;e!5XKq###I>SfpBr#4EJ7B1x`4v-mq<-NM zEtK(+RRnd8-;&Yz^OmVxN9w3RQG;8`S_ z%Bvy{WvnV9n@}5IZ?O;>sX`{_LF<||xpN}WSn)95*ieyHJ}RHRzGTx!nYcymKbO+L zRNhCIxJ^AdX0K$Wr>P!Ndxh2o125!!Yg2-Js!qWK7CxC(bb}Nf4+aE#uyO@Y7~ZC} zhG`{9wXCez7Jr(D;OHnGakIN!WK>DvGo|=9Ii^;P3@5`(m#HaPt2KcV@iJ6v%NSma zo2y9Nt;tv$zh@@d>nWxv_^7oRLt3R)m@t5ck2Cy~&?$E8%R79$OR3Hp5^RNxi0r#F zK}S#7Ctf;am%{S&p1qf9XoONBd@ZE&JYZbw%SsEI3#6h7o`SmQDIpWDd?cu2f3cmh z>gxf2OfC?;IqolZ09WVe(AY1L2rF`E^KUJHKoXT&O{>xFmvNDswzLuI#88RW)K()e zmY@FSaxo!t6eb?46D_Asay_M^l3!!h$-yU%S=YSaNOwN1xFd7EK1GoH)}N4<#E|LFZ%4DC=%1zBzV9o=fcWFvAltN1 zM9f?mY*xWH^>0foWXH>d^Um4VuBE`APbBhjXB z!bWc-#cf<~!A0 zU(`{|wvlc>F=1$AY>?eHIOJdz5=VxKNdAV~=;e76m#>HUtAy$yVmOOO8jwvAg~Vb+ z*Wh6C5UrOY4@FW9Sf2||s~eeUVK2s=CvtyW6|MvFAPlPos>jHAq4lME$D^RMD>?~_ z6d8H6a%vAzJssKb=3}spjh_O8*I5ebQ<}bFDUAYw$_;~%Adp5}!MD%?xtYviL)~x=Ew}`Ma z-N+TXXKb*KWc;DyAyyh|HA}xvTE$!-)>-cPbMRkt8e3+mJjN2XkAK7%&UV+Qbx>;z zaBD2hFl zP^&4OtXN@#J${N<9jOLVgLn2l;|3iA+)t#4A>|*VuTiZg=!H)aV7{)0Y1l+_@4lek zgrWXH$@6){5_=)kPZ$F^TJTSck@#^cns)m2m;-@`>(;alVj*?1wNX1y4zQO!y z(tW_zX-3Oyn}yctsxpR%(_scp?ORYOG6g0&Ifc7Pt8+Sg;P_UC(O0LSqF#4+8*X^z zEMnz&30))Pb`mc^bc>Or)>dieEDzQSr=d6>Hiu1WfnRId?69#iKpK`EnQV((S#W6; zdciO$rVR#cK4uU(M;lKLZQOZLwT&;r&F~LUf`k$*SShf#s@tY1I)$Dj9UIVBcmf79 zsr8VIYLCwt0ro$-YdWYe=yR$VKeQF0K&yCmKnWO5awZgknD+pHGP&C=UPCgb*E2hi zorhkFKKy|&3iDGrU|>-rK!Xe3>10@k0uivG`5A(U>(IepBcI z$QYte>W#WlG!+_M{iRz{ud;^=j$AY}Bt@wvDI2hDjOg~O5<)#!Z9xXjG|yuKLxi~Tkm1h(=|yNLh(d+sn;>))cq z8qXK@DGp*~IKD~E(I05gjmQccBMJdRwTV&p4P4(wu|bD&YBzI%|GuD1&_b;LgdTRm ztjEPgV9%7C{)&7Z`wfhA0LTPRA31P#0%-o?Vrj777CTgq^wN-nvg>bgfTZX7BkFf0 zc**I@z|k`P-w*UcMcsaz=&mMdN#wbjXS5Ze;v4_{!VAg?bwtka=U-w5>Y~AtoIZ+= z;)wK5aWACEUI!A=ALC&nhk_y{Rktt-TBk7D*J(qzI|BZ--`a`|0d8PC{kKhOk^T&y zp}&_gOP&z*_v(4tlx$g((`mW~@Hn39)rI(fYCFrYsG_&s!!Y2`3=G}f4bt7xf(X(` zN=OUR-JOE82m(?f-8q1CN_R*P9m3hZ|MxxDIp_P~%UoQ{>@}>l_S$Pb&;7ffItI|- zo|)&qv%vGGE5?VR_8SRjKE{Y(^@)5DfksN4Mn5hu35^?Zr$!^do5ZuU3_A-=OElaU z3pStpc9zVF-`fs5wF&3HdV(ZKk$yZ8=c`4}{dlxSH`(u|%{fQdjFE~sTUny0f z=Eepc{+MMbGNFKY-0^v1j=Yib>PBE$mJ{77lKbwa8>u8@l@mZ1~gvWdE``OkC4~R4lsc#Ar z(L?9@j-gQQHPXyDfAh#v<1fWdo?lJ!$8>iEAxnzMt+r&qjHBx6{~151y6L=G4$Sd< zCqMwd-kPqvqrZurF_U>|AzCtyf|^mcuVG) z(G8pv3=GYzm+O0ypjd@KcTUUps!AqpE0O{&`K=0GToW@s&$VQS`RQ-`XMMzZ8{bN( zDNhw|*6VfNTKzgMd;0W1g`viMRQ!E2& z{es!#sSKda0nLGUO0m%UuOCjz$G_<)0q!U)k*!8v>)saR=WAW`yf&k16s~Yuug6>B znlZ`yNM51ASdkm`PbkfWvV!nCSme47_&Vx{r4`#4kl7FkB? zxM`P*!}O65NQ{I4ZYFXnD!lHmf~=>v$le`N@Teq0>E%X_a);t3hT=?s84>3K6v_mV zCP)`XV1K&I(HJ^4Okv^P6zj%Ti|lN4*~9}ZJ#Dp2)$$%;qY_U7t+mdyI4eFVMspX`33ryQ`}x>O}pB~EW%&U3xuzi zemIXw5IBzrW)!Gq^k|!y1c{wc#IE;5n63I<$1}bB(ke%REreU5S=9V%t601GOyS=m zjRmrwt0XKLG!nQ!YM_3+?l6U7Wr@Yv+Q3(QPF}HRl5_|%hd5a000G^HE*cXbD_W=a z+jru(TW)*)>)x4HaJBVO(xvO?98Y(KYFPrL7e=?14IZGJ)+MfJD!v(e0)w9y*$n&^P6l+bfwP z8eKCBd$q+(ca$Rc7U;^Nyxdvf`GR|F1eE+fhm4P=TpcZL{upcTf4o1z4lK<7W1ZNn z47T_GO9+TH*z~^Np)xX}c6&(E_J27JYG||`gC(W^)QZGs3?Je73sW?R70o9Xg<&ud zFVlUOKIY(i0u~vGw>hkwz$+_#*O3|66$|;zxUJG)v&X?HoIZgL#)mScy&+ETVAdN6 zwVkV!xWj3DrEhFIm$d9euwkt6HN!YXCON}7lWtkDS6_+FdR+L{xHqvS5Q`-oB*$w; z5*-<7kIgaQRCGvo@BTA=P_;R6_akW#g;F5V_uASQhixBxIE?Smul~#<7x1(Nq1ew> z^oi_#4kl#x4;g2v2FAg$E1)pr_{_kIsoKlHZVmVEq@g4*SS-AauLup7 zEb16R3bW3aB|5NPUn?mXR5O`G5`8@g*+Ky&w>m60Q{JDfqMx)iVC7sLg$mjS^oZDe zW~k$GYQTib5obYMDYbtQkC@vGtEOw8A)zet1bB*D-v7$H(TB?wOap z91Sexb_&%^Y>G5_cs#@$C=44E{MHz=-xotkapSuJ{ply#|57zxue9?>U_lE4s=qz2 z*_5C975ec|6h8W!ZlJATR&^LFhj}2YVNfWPEPxwohUj(+`nQ3>LjKr^C-b}c?X#)z|tCtQ;%<}#o00v0w398PPGb)i!t^5j^S`4>hE-h+|hF7&l%$V}V@ z{JKk8iZu6l)yJ~52gAXr+(k-Ns=QxJSM_bSoCxeZXuFu2pf{Z2_x;(1zaVu)AT^UW zn0A#B&`3Hw0>1tjBv%-%&OIo}<>qSfnZ@Mv*{LvPHyu4_(k=_{PnJmhuhY|8S)+G+ ztZt%56giJe--%=c2URhVhx_N&RLyiDf3Bx^0V#6Y_m$)AYV6&0E^os1&b?btTYH5+4$@B z(BIwZN$9X;u^<*ouZ0<8D)jeRx&M<8m*j)>p~*Na(U-U->x$d;!EVTO0#XWbE^Vwd zChh4~?b&>hWdIWwXXtw_m@0Uufm3Ru5aqsWy}IY9-Yxvd2#Ej6#n5+d75CBZU?8B# zla0PVj&&%WGB6P}_e;Alyqm27p_&itUBcBzt7~V%eF-DhyF9n7X7G|7YS2C{ce!5F z67iYO-*a65V_rugUeOPgsPbHgotf7GQ#C$k{u0aTWX`6l4m_kT&tg?tkTKD2;P zQK`JzoV?m_WXyzhB{iuOX?Q{3l}yq(kQL)VdX?Y@e=1zXd^F??%>IIiZW0mnbvKPg zyJw2eqlrt}`H^g>KN7~cdFKj6B1L&+RD6z@`p|-{ASo0b?R$D_ilKn_+&xJ$>=wcN!$hE-EyjRd*S9_zTif81?<}XH+FC|55G(`pL(j=}=eqU&jiI@1E)WoN zW@E>8KZK;F%jTVd%bXg?`~x5bTKW%r@MKov8Dn_k!~3Q!cG(!yZ+Ap;l&ZY8@n0nTR|GYhah)0-LT0h8C= zR{_+8hiQGK;>RRVzLlfreKEh2?J@^3#}K+u8iecTO~uAGE*PQr_}6*nI&KZ-BXK@A ziL-wPBtb|WhxaGRPh2IA*Iwoh-Gol8!R@*kX zcp+XjB}fk^XJ{8;0sEQLaTk`h1Du<35ad8qK!Nc6^cOoG^jM}uYf#EP0hcyzv6C2n zRHwwTjPNma{GYD3X9Juxqlhze(I+bm#$*< z1kTOtXFOKZu#3hzv3T(-_!|$7Ckqj(>__3RlFw2582jw<>O%W|edFi#MYI87NscR@ zT1Ow>yUqFXDU*?4!?#_DTYcM}SzE=8cnS(8=H3N142C9TF&w5D<&ZiIZ***`kV&!k zO0Q^GoZS}=otr+>Wqm2k6taHq6frWRk`(Wsv>3@$^ma+WHYL1A%0c|G@m6#KHY9y` zHoYR6HF#e96F&UKhuM5S)O_BiqYYKVYH^6ie-FGQd2=;y!^xYjW|Bqy3OIx$ux4Z~ zLh5k5Nd=(UcdIOQTxA8_+a8^}o_(R2hod7$D(Maoicr0l!b-Qs``9~wp@J;HuNBXPZ*;TEK z{w2g1c6}rQA8Dup)}k`E``+#Ei{0S(p7$X#x5MCSzD>I6mx-Yz1y|!9vj`3GBYEwF z;iF0`^jdtuvIq`tzlfC}^d6>-sp33Y6QO`BUvcqE=mhNDHRp%rm*vKorUsF;4Y-7P zD&?>E{;GItF#AxYWLPF`oRc6E1Q9WE-@%i@`8+vfQJBr9km$J0=V91RRVXG6stzb$ zC>b2^xA$3?i}9oSF&^{O}j)?rRp?Q7P(DMfM>`S@9UHfo=nmgWXkhBMQ?xH$j;nmYNz_Wa&v{J^1^+Y6UC{kZeq&Q z)vwRq8Az)9q31qJr#bL#NX}?>erM;0o06gC1#%&;MGw+r=B~qQG6K$CcFA>mhMR+! z1_zO+FA&L`wuT31H;j_YWvtP`pW{km9O&21HQYr!0(EO``I$p zr*oSt>FwiT^s3kC&IkJ7-oZrTGN~j(7Jo^@K~+CtMs_5pUw^x|ig`=V1aD)d-@q~3 z6olqvQ(2ncmRV@nlYTSFKHO4aLbr08UMBNXsUQ26Ys1LB^)7W*l!;r6-p&K6(&gm0 zRV*13yj0+}(zo1u%;=h=&q;}GU=n#Fu%)LWZ<5@^l|&xHp*s7R%~f#sfqbUHCz_M{ z+sZdzN%};8aBWKKuPjuffVL=;5)B@r_6T^;eUy~SgQ1PyMifC10I0f*%V?Fxk~<;g ze#A&xX&bS(84Kt07mrnl=@mibBVIBQ8P+2a8zK2Vij0>N$1>+i_a22^ZE|aI36tx$ z5COIt>*y)+g3%U{qGYe;#tS-ASqobsm%JYZnp*`%RGGL3QS#WlziAHB5?^KPw1W3N zYq_o_!{jTA?*zEz3nL*8OO32Mipdhu%-m;38FQDd^~|}xrz$l^25&S#>$J~IkPcq9?K+NlJ~|1}>`MV!ZsS%Uc}gAVDrr5=#n575NVu`W<>f?U_Vd9FlY z>&(_P8}3n=yk#%w*2wVb;mAp8E}Lc?Mv?HKoPrU5MZTov!AQzDURFm;*3fsq?}%9Qzwf;5>nO-^jb<_IxOciK+ENhw zwIsm@HLvxUDI1t1ZZ?^+wb2;f0v95(d;VCp$z--NJT)q(wQ3Ds9u?B^o$drTScpY# za1!dpjU@7h)ZEPp?n%|<(U3%WKI?1I$G0>8(>(g;Pm&XT6Tyq-lv3806U>>kUy3>1 zV1yjC;2v5nnzxjSrE+(`=EzP0FpAERwW4@(KC)e?q~voMqJ_Prk^fGGc)vN*P@v^$ zx$xBDLLaO-rZ6+1RAhD`Z=2_j=5R-tq*|%iw`cDB7lHYi_(KF@@x8UglP^({WLrMx zeZz03p&<#6vfJf+nMk$I6pVU`75?3FO(&Azr=PILxA8>sk@(FbN?62s%-uaVYbbjq zpFse1#X@WX`TUU$*qi1rxuH$x9 z&&+mtEW*Y0wXP-w&fEiWejG*AnqiFg@;8Dd?slyEM(Fs5--aA3Y1~rJ7Ux#GMeM*2 zRh){JV-jmXT_M;jg{>&k@s*EqM%4cI#-*B4&$c%|g!U;K*Ma|V&UH3ExQ5z168s6C zD;WI#h| z9OxAK$XEAz7abHfsa_3LX})&?_p67#?eevqGl@B!EQUNDfs>LJ1ra7J!|Al*K3voG zPKr0NDK$sOVgeaJ6@{1iLvi z;!hOB^s4&lRZsdp?c$Dw*?_ML2>+c(FlgKeMZ%UAt@u;w*OdkihP`PVWvloTz@!8FD_!o}cF> z%GQq)YCnJ@%)O8NcdN3Lj2~;%B_+T8p0=@ubSt!sV|v#)*5~Ah-G9@X{Rdu{l*T>MZdO0;9GK4uc!_IxwOO0V-QU!7 z&etF%4MK}7&ZV0%SoHw6edU4cX%dfLBpmm4w4UB(P8t#%jr^PuNGTcVJ?W~W>fqYs z*3cfbRLzVojbk#T^-WEs-*UM5ws%rTf1;~_$UD;e8a-37_@L-Wlr#r~WBSKC7d_XZ6|VePQe`Qd_dh)GT6>=YS7 z<;OHsxgTbHzk=hqoLA~~iz=L675H`oHlbm)Np!;{N}l$FCYP zlL+zXdJ$CQQ8zV#6dWOi^kKC{zN4I~6&G@|{`Wo&lIM-_AhZlI9kb8Rb0%Z!$Bs`T z?s6`Sdd_N^R`#yOm*bnhX~k9;+-#n&H?0Q6KUB4cSkb6|_l?-jS`DD*{H^$-Joor)?y4)@1n1x|P zTlGO<*r{4GuGQF>T=jTFJz)88ze`P9dvB^GYD1-qZRHcz79UOl)4l?3=8e`kV;k^`IhNPPL}oy z@kFa{hnYS9;M~5~m%wtzujMkp$wDRqy4tll5h(eaaVfLksLkW+H2>Li9!A)nVG?q1 zB?-xM2GvVm2?)GWIGdT1dom=pea|T~^GgZ*jTRy6#6gF$y*VKBtxU0taE{LRZl9&& zFH>qP1uLKJai#ziU`D(U(^{0zvw^DffCY|E88T#Zv-RQkHQJ3F?Yw|G9&yzir7A0} zvVCTqMl*!Kac6*UQM#F;M{5!x(KG^SQ8`(PR!!I+7$aAtVFj`b45$Qoy^vl!xF{l+ zRxa@N9Qx)0r~YJxsvUjG?EXQ=;p2^YX&y}4e(KI+$mWo3NdRP1cn^7CR+hcbL~$ipcV zH(e!%N*;n!M{`iGClj=V*A#EKkK*F!kHa`&y-t4bBUa2!Q*qkJ9ho#j4$^G2o?p5g z3g3DiO6F68j5VaKt}&~JFa5Lx-FY5La$^B>O?vrd^mn&iX--as?BOw`HR`z{Ad&!U zzs@cF@sRex>~NL{6^I;YjSbg$m<8;81b3N%kF0-%o^NN!iy5yzKFhs7k=rikrfF0a zgDvr6g*)|p)xM_Na(g@Wj4JFP=nO*bPdBtPqNpHa9-9f3VWk$Ldf~x{QMJbjAO6~M zS8!DR9v#1Nvv@Z@16Fi8wDQ%{W)Dx8!qSBnA-&b7c0aB^jHxjHcN2$>TSlhNmns^2 zE7m%F7952|3MDB}#`dnUuV&wI`r+=cY3YPWUQA}x&Il4(B8W13}%$f>Rl{wtqqY1^rwlkioU5ANp%&2d+(M z)zt$Dtw35&gF6-92OtgQW=C)yU56s0_;8uf8A-c?AN_OmOHrJN7b@<7*=&MxnebEy zkf9qs=24%daIGjsyG@Ma>gfl%ANNb<5f=`ro(lvDX=%1|9o!C2*9F1>2Qe|##l!2e zsc&Srja>vm8OChx?2hdZM2;Ul<@z|UEsiLK@=GnAEnx34!-sb!dbDqjJG8uZ)#njQ zvbrZz(3aKTuM;y?@0Wvd62y^D)c7S;OAi#PJI+Px+v_sxS0RYnw;OV&;t!BIsQ}r& z3+9@mTB>f@&HaEJ8otE@k(c^mbm8&OO{-vFr-2Yn^YgIXK1g)uyD^k%k5P)$<7E@P zVB?NkjmG{5l<>_2V~SrT*EM2Oa1cbOIXJqtsuiI!s<-7(BrGm+*Mp%dmiRTda>p_P`1#rmx7 z{2?367`m-UCra0h9HyrS)zS=;Awy@(`uvjD*odc8U39^}?PVhIWVM3`LTf_kH}S`o zlAOMci&E!wKAtJ_pPu^n>Q3oeU;1ClY!#o@x`B}wT&K+=Lp^Nk+7_%scB(&xDZx2) zbZ{?UQ(5DQ6P6i=8UGY)*|w7FAcsQ2*`#t)^#_x&t~F&=EtLZdsEyg*R*jz|BMmn4%&q$8KpbArLGy}K z@cD0V`!Y;JH6@&L9mgNp$mbOhQap=FGWK4!J$l0?0T4&&V*7jG&%JL`*td5Xx{Ve&ax@v#k)RbJ{yZ- zEpY%Nc_8~4j&NOeY&#pA9FsQ4-_MWz_4;BzY$Bu|a9YOx%{>@bXZvt^#3mDNNeSeh zJzS9!n7L;of69Ng#2=8Fdt!wTHW7cO=MdCOemfE%PkaA8J^kdhFL6v@Hj5wfPm$cU zUZs)Zj|sv%5cA^Oxx#CU?ZLwtT{J%>Cl32``{qhXgzOxY^-IN6XiA;4w#ej51{KmY z`l9=xyN$E7bIlD0#^hNFwNR8CIVJG|APKmy%Gkg?g$Ha$WWn_K==69HdNmi_!e7Bg zSnpul5Kgn;{6uIN2h*1U9!^eCb6{4hUEPG4P~M|=T;f|2Q> zLB-QuCVDSYA$LYsn>$V2H%u96hEgywlL%zq#zU@VmGr8gK~Hd&_Rc6WjL`7gQ(<4(WEL7`VB?UZzkem;SwTc~ z>!U6eXG>W&Z$53*5@(qxT3ae2K)&R}>?^sz=2)emMX>E!rcl9wUH>&MaqegDrS48> z-%r$*GpNIN++g`FtBX2q{mW(CeCHbFGzppaO8Vhy!z!@?VI%F352NhSYu3HT8s6C7tDJX zD3c^5s_Y1~paHN2_HX-jTgRfAH&%Vxe>8sOD5=Ms<5QbAw5x6DVZJFOul(6j#a`~t z_KyeGGRe(*x{ukLe0+8ov8f^I#C(md$&_&2%3N=MUR`;e*vU?ZY zMM4}`>I@nyDlq-|{%Nfl0Yx?ki{*ArvqdRoa<8(gwqJUNC44wpXeFv?Y3p-x@2@{Q zMfGq%qTBbPlx5#a{CDykpZDNJaq?n@9mJB-`x`Cw7Kj%ewMifDS0oM9Hrd`_gDa*c zCccu#P-aB0@wZX8AkpO6$`+piOerUfkOG-+ZQVor8dY*b1+zB@PADhL|`YsC1aH`tc+GwRGUL*!E0cpW?}VH zqqku$+Qm(Ae&q533ER#jvbFAHynS|*{#K~%EZ}i)m-ls)`>H@#t1=z!Ir3ob!_3T2 z;70C-z7JB~y85Pho*cVf%!Q!aEl9(|w|++L5?MVjkk&e_)Lt=5LC0N-E%CV0X5xqY z)4+N#eyn?Bi*YJl(Mj_wePSBWfjr9B2~B}>vo-q0a;`yDE~L|qaT|k*tzumaAi=}F zH=1&ozHBMdv*xol_z@5&zqud)=YQdy2u%;G;1HB&n5eh3m#VPJb_}mJfnvgrIsW9T zmoxf)uR4lyu1oIJy`$`LzOZF^J3u!#7(@(Ifd}-rNrGi+ag-a81ACyu0?4 z$|`w3O+`1IydB0*#-_RhKn~=?Q1VDthHf4X5F*tg52|3~t|h-TKqcd!*K3oPn=@Qy z#?Hz9bFHV2mK5)G9eeS-kAUc4)x-QPr(yJ)Z5#Cw`J5L<8D47gz zrypm~HxJsc#=={p^BxVxsGs#{+4ik-^ZtV1#PDMKd zsj9ym!Ee%mNbq}>xl8%R0m6A6xA4e_jd6i#=JsEXjoGs;;h`mQoDwSvv-7T5A9MCr zw=+;MiD*v8Y^s|K8|FW|w6Jzp$^mgS!6Rv%#k4<{9_XGroFz58fM|}xb-xABSlw0c zX8j-tN@wIY^|N77qNd~H%6L2=NEJJxb9(Vm|N0<4`!F=gaG3%^ve+OevH>w0A=CAH zKz$+RA*(Ee&JB2ejG>oUzXfv9W^SZFv4WJ0STYt0TkgJoTOlyna?WUmy6w7;@-4$7@1B1T7^k>tftTh*?fgTRR(-smZ_TNLjv2s zXfpRFbGKn!*UuTju_3sMws$=&CzGf_(s=$u_F!zB28r~!NO%m4ute93Jy%VLu=rWy z&7PS2A+01y&>dd>ylR!-B_!U(2sdLfs*nzMfrz-U6pmRk#kwI{W1q8&_iwTjF>}-5 zI|+xDl_7~INMIjDP#5_9{ps}u^Ewp5^|D4sT8OIjLAo`nA;9q-u{KrhH0)LG(*mw7xY!6CZL7B){3Mt$4+)_ zH;%p9{9Ms}Qj=(b%iNol7O_E)PHaz>C?J?rZUyGU`Il-7Hz%=9x5jXx4hPDj@sJ3l zu#)ld(uK9!OnvMhi4_ol!%niaLsaIE+!xlIh1XmsuJ#t1K2MIfekuPV($Rd;q2Fl1 zH7a`XB6n4VJ|lp6^0R5JE0w6oV|cLEv&J?Y7%@@4Iyp54rush*f`@G4rOj}ttqVd{ zsDy#1nd)Dmn8aG16hmnteu``r$SwQ>n5BkZ0Y~o@_VZ^}^-Lf+gD*elQN+n3D?gva z=#416ss<@}iqfw}q~Du91DRI&QwNnn79unPtpUZoX8|A$NKTf8!5UG$Z2*h82pt(EX;d(o7fenVj&hR!xr_Ju~k;A=#(r3BtApgUjNG+pg&2;h>7sDD=Qy^8X)=WA=^vF~<*U=Xd;iw_Q+ z?+pXweXiGSiAC|*`nX;SdbMfX_&UJ|z0@*o&uw`?08E7Ml>Mn|8%2zqdTG)_ zo~$bRomBntd}v;SZ-V2a6dvTYOo_vax2@fS|8{`$>3W1BbIXf_{MM`+&pzyuNg~H_ z0y$!=d_E}>5?$IQt`=r6r zTncZ}E9r-J6~vCp%7R&{DrBvSfl;Lat>e*|>)D8EIK=GF`fOx zouns`Ab$@i@_pH-_tYn>Bc?V3=MH2G=1>xtTRi7}b_%T1kp`hbmC3#Bs;zuM^oiS$ z@exK@)IDhE|0BmQfZ*|>#|p#ok~RmT2B?D*r2gtPCPdYJit)N?LL-+@b1nTgl?940 z4w-TyX4Me~$~ZbbJ9K(RQT7R~sK)w4u_1xm5?l-Zr=K|E4pSeu?;2g6_%MO%e-flx%A$~y#wVy182^uGKU}ss^1nsq7JG?EUhHjy|IQ6i9 zYAp-{t_)~34NV>A?6PMxa#{thcDX7Qi3ymDL3z2g2`ed*lr4w@x9)AH6SI)YaSCyF zzG7yjG;?`Mf%KGeqkS@wC*fHU5K<-i7gBxOYr_K?2@af*fWEZK!rZCF*^DBQMo)*VZkeU?;n91&Fgldje1RW42E7NaIwR?8sd3jwm7 zM;Uu*YFSoO`TSktsP;xPY0%-n$JtdZVM8hu{to;GVV*M6>AVT3%4w{C-@I#eLYGqw z2Z;YM0;4qJ$++2{k)y=A0ZEJs?RfGS0TZ_hHZl-|+@U1jP3O&p_Bs z1=$h}+HL|_!)9QTphI~YsCNNN?Jd*%$mqnT9zW<)7!s7^01XKPZNVanl)wC7i42gk z+p2>jTR*$>liutVCA|6ZrZNUl>bb)Hx7J&WC0JRWxQok>q1-)wV_?|=xHbb`VpA?% zQnj+VCN71jWuPd=bow)MlVs^=O>^MS;lSfgUtXVOt@zRaNU+mx-S_|vDWfCXe?4-h zi8SNE8q!hbU0^AzD4W#VPmSJ6`SdqNv&2J3@{jL~k#$32+kO9|xfcezD}=oRIBPZM1z34ZH46E|i76dH}@J^LE7eE%*%zGXM8Ts4DlQ{)Z$7_LPiS62Zz4DEuY3;^g^5Zc1?oe8d_& z85@{ZDv(yk>5|GXO>K590VYD>wh8|NcLJxzi_hx(B=zVJlfA;73J4 LL%vehEckx`b5`WW literal 0 HcmV?d00001 diff --git a/docs/docs/development/SC/images/VisualStudioSolutionError.png b/docs/docs/development/SC/images/VisualStudioSolutionError.png new file mode 100644 index 0000000000000000000000000000000000000000..c1047ac3f7a7e60e37dafebafc7e7cd2ead7355e GIT binary patch literal 5422 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. + +### `Beatmap` + +Contains most of beatmap-related data. Only thing to note here is that not all props will be filled, notably: + +* mapId/mapSetId - these are not provided in old osu diff files(2007~2009?), and should be retrieved using `mapid` and `mapsetid` tokens. +* State - map ranked status, not stored at all in osu diff files, use `rankedStatus` token. +* StarRating - star rating values will be provided only for nomod and currently selected mod combination, in current play mode. + +### `ConfigEntry` + +Small class for defining key/value setting pairs. +Creating an instance of this class by itself does nothing. To save your default setting in file you should access it via `ISettings`, by either getting its value `ISettings.Get(configEntry)` or modifying it `ISettings.Add(settingKey, settingValue)`. + +### `MapSearchArgs` + +Arguments which are/were used for finding current beatmap data. + +### `MapSearchResult` + +"Final" search object that gets dispatched to consumer plugins. Most important props: + +* `BeatmapsFound` - array of beatmap objects returned from search. This is somewhat relic of the past - currently array will contain either 0 or 1 map (in the MSN-based searcher days it used to return multiple, hence the array). +* `Mods` - Raw mods as well as its string representation for user and processing. +* `Action` - What was osu! doing when this event was invoked. (Playing/Watching/Listening...) +* `PlayMode` - What play mode was selected in the song selection screen in osu!. +* `SharedObjects` - Misc objects shared between core plugins. + +## StreamCompanionTypes.Interfaces + +### `IPlugin` + +Base marker interface indicating that current class is an entry point of a StreamCompanion plugin. One assembly can contain multiple of these. + +### `IMapDataFinder` + +Provides a method for searching beatmap data based on data inside `MapSearchArgs`. Finders will be executed in order, based on `Priority`. + +### `IFirstRunControl` & `IFirstRunControlProvider` + +Used for creating StreamCompanion first run steps. + +## StreamCompanionTypes.Interfaces.Consumers + +### `IMapDataConsumer` + +Provides a method/hook for executing any plugin-specific actions at the end of events. Map data, all tokens & output patterns are created/lazily-created, and can be freely consumed. + +### `IHighFrequencyDataConsumer` + +Used for passing frequently updating(live tokens) data around. +This one can be both implemented if you want to add another output source, and consumed (as `IList`) if you need to send data. +Data is sent via MMF(Memory-mapped files), TCP(when enabled in settings) & web socket output patterns endpoint. + +## StreamCompanionTypes.Interfaces.Sources + +### `ITokensSource` + +Provides a method in which you should do all logic related to creating or updating non-live tokens for current map search results. + +### `IOsuEventSource` + +Provides an event which should get fired whenever your plugin detects new actions in osu!. There should be no cases where you should be using this, unless you are implementing new osu! event source (osu!lazer? :eyes:) + +### `IOutputPatternSource` +Provides a method for creating output patterns. At that point map data and all tokens for current event are updated and can be used. + +### `ISettingsSource` + +Provides a way of creating settings GUI. +Object returned from `GetUiSettings()` should be a winForm `UserControl`. + +## StreamCompanionTypes.Interfaces.Services + +Implementations for these interfaces are provided by StreamCompanion, and can be retrieved by specifying these in your plugin constructor. + +### `IModParser` + +Mods converting utils. + +### `ISaver` + +Save data in text files. Also provides `SaveDirectory` where custom files should be saved - create directory inside if needed. + +### `ISettings` + +Used to retrieve and store user settings. + +### `ILogger` & `IContextAwareLogger` + +Basic level-based logger. Context data set in `IContextAwareLogger.SetContextData` is logged with thrown or logged exceptions. + +### `IDifficultyCalculator` + +Utility class for calculating basic map stats changes based on mods. + +### `Delegates` + +Safe way to shutdown or restart StreamCompanion via method call. Request individual methods in your plugin constructor. + +### `IMapDataSaver` & `IDatabaseController` + +**Not used anymore, will be removed in future versions**. Was used to store beatmaps loaded from osu! database file in local, easily searchable database. + +### `IMainWindowModel` + +**Will be removed in future versions**. StreamCompanion main window specific interface used for updating data. diff --git a/docs/docs/development/docs/README.md b/docs/docs/development/docs/README.md new file mode 100644 index 00000000..3e352f11 --- /dev/null +++ b/docs/docs/development/docs/README.md @@ -0,0 +1,54 @@ +# Building and previewing docs + +## Prerequisites + +* [Node.js v12+](https://nodejs.org/) + +## Installation & running + +* **Step 1**: navigate to main docs directory in cmd / powershell + +* **Step 2**: fetch modules + + + + +```bash +yarn +``` + + + + + +```bash +npm install +``` + + + + +* **Step 3**: run docs in development mode + + + + +```bash +yarn docs:dev +``` + + + + + +```bash +npm run docs:dev +``` + + + + +* **Step 3**: While above command is running you can navigate to [http://localhost:8080/](http://localhost:8080/) (port may be different) to see local docs page. + +Any edits to local markdown files inside `/docs/docs` directory will be reflected on page within few seconds. +Any configuration changes require docs restart to fully take effect. diff --git a/docs/docs/development/gettingSource.md b/docs/docs/development/gettingSource.md new file mode 100644 index 00000000..fdda5326 --- /dev/null +++ b/docs/docs/development/gettingSource.md @@ -0,0 +1,22 @@ +# Getting full source code + +## Why + +StreamCompanion repository makes use of git submodules which need to be fetched in order to be able to compile StreamCompanion itself. +If you do not intend to compile StreamCompanion you can get source by simply downloading repository zip from github, otherwise continue. + +## Prerequisites + +* [Git (any recent version)](https://git-scm.com/downloads) + +## Downloading source + +* **Step 1:** Navigate to directory where you want StreamCompanion source to be downloaded in your shell (cmd / powershell) + +* **Step 2:** Execute this command in shell: + +```bash +git clone https://github.com/Piotrekol/StreamCompanion --recurse-submodules +``` + +* Wait for the command to end and you should see new `StreamCompanion` folder created along with all required files inside! diff --git a/docs/docs/guide/README.md b/docs/docs/guide/README.md new file mode 100644 index 00000000..890f23c5 --- /dev/null +++ b/docs/docs/guide/README.md @@ -0,0 +1,15 @@ +# Introduction + +StreamCompanion in its core is a live osu! data extractor. It processes all data it can get to a format where it can be utilized in a user friendly way. + +## Current features + +* Reading of live osu! data from memory +* Parsing of local osu difficulty files to get any data you could ever wish for +* Live and static performance counters +* Windows(keyboard/mouse) and memory(replays) based click counter +* Minimal web server with osu!-specific api, for serving overlays +* Several editable, ready-to-use web overlays +* 2 in-game overlay plugins +* Automatic screen gamma adjustment +* Tournament client support diff --git a/docs/docs/guide/codeExample/tournamentTokens.js b/docs/docs/guide/codeExample/tournamentTokens.js new file mode 100644 index 00000000..80ec14bc --- /dev/null +++ b/docs/docs/guide/codeExample/tournamentTokens.js @@ -0,0 +1,2 @@ +//Using SC template web overlay as a base: +const getTourneyToken = (clientId, tokenName, decimalPlaces) => getToken(`client_${clientId}_${tokenName}`, decimalPlaces); diff --git a/docs/docs/guide/configuration.md b/docs/docs/guide/configuration.md new file mode 100644 index 00000000..63e6bf22 --- /dev/null +++ b/docs/docs/guide/configuration.md @@ -0,0 +1,48 @@ +# Configuration + +Now that you have StreamCompanion up and running, you'll need to know how to work with the data it produces. +StreamCompanion provides several ways of interacting with the data it creates. Each datapoint is delivered using so-called `tokens` which can contain all sorts of data - usually it's a number(map AR, pp) or text(map title), but in some cases that can be whole json object(song selection ranking). + +These tokens can be interacted with in 3 ways: + +* [Output patterns](#output-patterns) - Initial, and most basic way to work with the tokens. +* [Web overlays](#web-overlays) - Use provided [api endpoints](/development/SC/api) to interact with the tokens & data on disk. +* [Writing your own plugin(s)](/development/SC/creating-plugin) - Use built-in plugin system to create custom behaviors and new tokens. + +## Output patterns + +Idea around output patterns is to have some pre-defined text mixed with token data, that should be displayed whenever osu! is doing specific things (playing, watching, idling in main menu etc..). These can be then read from text files created inside `Files` folder. Display these directly in osu! using in-game overlay plugin or in obs using OBS plugin. + +### Settings + +Output patterns can be configured in settings, and that's where you'll also find ready to use examples. Click on any of these to edit it, or add new one using `Add new` button. +Quick legend: + +* `File/Command name` - Filename of the file created on disk, and name of pattern when used via OBS plugin. +* `Save event` - When this pattern should be displaying its value. If the condition is not met, contents of the file are wiped(empty) +* `Formatting` - This is the text that is generated whenever `Save event` is matched. `token`s can be used in there by wrapping them inside two exclamation marks `!tokenName!`. numeric tokens can be formatted globally in `tokens preview` settings tab or using syntax described below. + +### Optional formatting syntax + +There's also an optional syntax for formatting and doing simple, in-place calculations with numeric tokens: `{(token expression) :(number format)}`. Some examples: + +* `{unstableRate :0.00}` - in-place number formating ensuring that it will always have 2 decimal places. +* `{unstableRate :0.##}` - same as above except it will have up to 2 decimal places instead. +* `{min((time*1000/totalTime)*100,100) :0.0}` - uses time & totalTime tokens, along with built-in min(a,b) function to determine current map completion percentage. Built-in list of functions can be found [here](https://github.com/pieterderycke/Jace/wiki/Standard-Functions). + +**Remember to click `Save` after editing any output pattern value**. Closing the settings window or navigating to another pattern will discard your changes. + +## Web overlays + +These are small web pages, which read data from StreamCompanion [api endpoints](/development/SC/api). + +Several overlays are ready to use at [overlays index page](http://localhost:20727/) - click on any overlay name that you would like to use and use the page url as either: + +* [In-game overlay](./in-game-overlays.md#browser-overlay). +* Browser source url in OBS - make sure to provide big enough width and height in OBS element settings! + +Files for all overlays are located under `Files/Web/overlays/` folder. That's also where you can modify or create new ones, however HTML, CSS and JavaScript knowledge is required (unless you don't mind tinkering :)). + +::: warning +When editing built-in overlays, make sure to do so on a renamed copy! Otherwise next StreamCompanion update will overwrite all your changes. +::: diff --git a/docs/docs/guide/gamma.md b/docs/docs/guide/gamma.md new file mode 100644 index 00000000..747518b9 --- /dev/null +++ b/docs/docs/guide/gamma.md @@ -0,0 +1,2 @@ +# Gamma + diff --git a/docs/docs/guide/getting-started.md b/docs/docs/guide/getting-started.md new file mode 100644 index 00000000..06cb85b2 --- /dev/null +++ b/docs/docs/guide/getting-started.md @@ -0,0 +1,27 @@ +# Getting started + +## Prerequisites + +* [.NET 5.0.x __x86__ Desktop Runtime](https://dotnet.microsoft.com/download/dotnet/5.0/runtime) + * [not sure which one to download?](/images/guide/netRuntimeDownload.png) + +## Installation steps + +1. StreamCompanion can be either installed or used as a portable application. Currently auto-updates are supported only for installed versions, while portable one will only notify you about new updates. + + __Installer__: Grab latest setup exe from [github releases page][dlLink], and proceed with installation. Windows might complain about setup being unsigned - you can either bypass this window or compile it yourself using [these steps][compileSC]. + __Portable__: Grab latest portable zip package from [github releases page][dlLink] and unpack it in any non-system folder where you have read&write permissions. + +2. On first startup you will be presented with additional setup step, to ensure that essential part of StreamCompanion - with is osu! memory reading - is functioning properly with your system configuration. Select __requested beatmap__ and __exact mods__ in-game and start playing. At that point you can minimize osu!(it will pause), and setup should finish shortly. + +::: tip +If for whatever reason it haven't completed successfully, ensure that when you change beatmap in osu! value highlighted below updates. +![Memory setup][memoryDebugInfo] + +If it stays on default `---` there is a good chance that SC is getting sandboxed by your antivirus, or osu! is being ran with administrative privileges. +::: + +[memoryDebugInfo]: <./images/SCSetupMemoryStatus.png> +[netRuntimeDownload]: <./images/netRuntimeDownload.png> +[compileSC]: +[dlLink]: diff --git a/docs/docs/guide/images/SCSetupMemoryStatus.png b/docs/docs/guide/images/SCSetupMemoryStatus.png new file mode 100644 index 0000000000000000000000000000000000000000..15fefdc77b64d1590f819c2396ab5b5fd0fdf2ca GIT binary patch literal 22491 zcmaHScQl)C+lg`*n5wt6~t<(nWAD&DN4ubYnYTJj)JP2AnH*SCP*B<`waULX)z=hf%hBM$ZVAdpFr+DmyuU+c{*$J8g? z&D)1dGLvmv1Eyf@jXlYTKocl}WQ)2q_kOTE;ps_;fvK~*)kQb~N}{Y_P3<7*${ zLAT;>DsWWl4!usUd&fu+dlEQn;TDm$wpPBCJ=MQoy>cQgIb(Hb3?0-wNBB#OA(v7t zh~LCzxFR`MjxWd=3zg%}5(l>4mCnrO%HN2R+-?;*lCYSD%qc=p{N}%_;_9P32yPN1 z)0i zZdH~c=vS9pFhLTzd4z2^ackXGcK-8?X~uuOYGTfCpD=fsZ5_C)#2hDmL=D~elW@`I zVTW9Zm8=&45qBl>QT*5R{V5Bh!mirayqmaZOjpgGLmsL6U!zfv|DWshKT-VOWnaHS zE>H27d0GS=1H73_X(hqZ`L`2=@TyqC*0w|va`-G&WK;6>lDxuy?Mq2mQNVoMr568? zsg{qdY(#eYnE>ypt!z-k_Se5GMy`Jpb+pgkZ}~esYZKd4MD9e$N*2ZcPoqfWyW80H z=h0Z{TuZ&{B*|%x+a>N@B)c{KWT;@QbeL!Dxiizx{~7;cVIO*_tJ}&EUZh;zt`RY0 zSu=6IA94vJi<&fw82)W@aYXKtl|h!({*oM@t<0}&rG8oUPVs7tT$T0E^$FEQ^KzpK z<5w-dbSr8`UwCG;ZV&yo8Xm53Xv(~}h;wr~tF6XutrVj>AQ{?ibH`y9$FL4F?DWCO zP#0vAAB*lQFAZtGYT6IzCHKkQGUe~0Ic z;!q*^A%TRdhC!`NeE;sidqfb*AU#fAgi$!hE-Ge|>Vx!O9gmi}&CGLDgNS8BX$KS_oX5#tc_Ck*E& z)gdL9=QfT7U%4htM$U&xeNw*u6yn^xCzx@gNxJKhxRE+(w@rXmm5QV+)!?Cck@>4K z&Du9hlV#e#1ae0ouJhQ7TAlCPly$Ffqjmf>OO6U=3s#C-bqc7e3%pD&78k#b76+-6 z$rFNy64QNi;Y#HG%FY2+8{dlUWdr24(Mvy$Uu!#xlrx-KjwtcER5gTuduIJfl%BSC zcVo$vZj2_I&u=Z|R+gM}daI}G&8^<1 zw>8}nJqZctrT#M94x^p{Q&i%w8;-u- zm8KTF*I4!9(kCfZwA0Vsx$)im%Xi-uhc!`rW>SG>;G)W|$e-;icDC zbQ7nnF+$Golclr`{}`-c zbrRNBFIH4Wei%?yf+r#k?dI~gMrZ3%y3kBA_vq|FqLCwY*^W-d@-lD57e!}iNwlnu z8`Tck8W_>*v<-SWw%ajf+lmVVs5L~qj0$iFPaZ1i;^IxYC>k}AD_yO)^xxoIF(HXt z{@!|XqW%gU`qUr7U zZoQYzhh>dHn4qiCpdKn|mpwM+(vPIe+L!yA zjT848^{Pk4ULU_h?%dv<`laeB*bk@H7uc2rT#P_TSRpF18w*_%L=w_Q4i>}krJm>B zr_S2~KlFC}>7>Pvz{m=eoWIAOq(al>(pQB&c2z3065tdOU%x@b&Ek%*KAHYQrpori zarqe%2PH(CHbsP-s$7OqE~n91=4%mO6E<$*6s{shcS_>_#g%^~SDgTDK=≫XijS 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

;7BFIIw&zD}S16SQ*PkY@4q$-DA43P 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

  • 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 \ No newline at end of file diff --git a/docs/docs/guide/tournament-mode.md b/docs/docs/guide/tournament-mode.md new file mode 100644 index 00000000..c6feaa4d --- /dev/null +++ b/docs/docs/guide/tournament-mode.md @@ -0,0 +1,21 @@ +# Tournament mode + +While in tourney mode, StreamCompanion supports reading and processing data from multiple tournament clients. + +## Enabling tournament mode + +* **Step 1:** In `settings.ini` located in StreamCompanion install directory set `TournamentMode` to true +* **Step 2:** Start and stop StreamCompanion for it to create 2 additional settings in `settings.ini`: + * `TournamentClientCount` - number of active player clients + * `TournamentDataClientId` - 0-indexed id of the client used as source of truth for map events + +## Usage + +Usage of StreamCompanion while in tourney mode doesn't differ from normal mode, with one exception being live token names. +Because we are now using multiple clients, we need separate tokens to preserve all this data. +**Live** tokens name format while in tourney mode are as follows: `client__`. +for example: `client_0_combo`, `client_2_ppIfMapEndsNow`, `client_3_unstableRate` + +In tournament specific web overlays this can be easily handled by using helper method for retrieving tokens: + +@[code js](./codeExample/tournamentTokens.js) diff --git a/docs/package.json b/docs/package.json new file mode 100644 index 00000000..c1844280 --- /dev/null +++ b/docs/package.json @@ -0,0 +1,13 @@ +{ + "name": "StreamCompanion_docs", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "scripts": { + "docs:dev": "vuepress dev docs", + "docs:build": "vuepress build docs" + }, + "devDependencies": { + "vuepress": "^2.0.0-beta.25" + } +} diff --git a/docs/yarn.lock b/docs/yarn.lock new file mode 100644 index 00000000..c3207596 --- /dev/null +++ b/docs/yarn.lock @@ -0,0 +1,3691 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" + integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== + dependencies: + "@babel/highlight" "^7.14.5" + +"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" + integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== + +"@babel/highlight@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" + integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.5" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.15.0": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" + integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA== + +"@babel/types@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" + integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ== + dependencies: + "@babel/helper-validator-identifier" "^7.14.9" + to-fast-properties "^2.0.0" + +"@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" + +"@types/body-parser@*": + version "1.19.1" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.1.tgz#0c0174c42a7d017b818303d4b5d969cb0b75929c" + integrity sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@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/eslint-scope@^3.7.0": + version "3.7.1" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.1.tgz#8dc390a7b4f9dd9f1284629efce982e41612116e" + integrity sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.28.0.tgz#7e41f2481d301c68e14f483fe10b017753ce8d5a" + integrity sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^0.0.50": + version "0.0.50" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" + integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== + +"@types/estree@^0.0.48": + version "0.0.48" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.48.tgz#18dc8091b285df90db2f25aa7d906cfc394b7f74" + integrity sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew== + +"@types/express-serve-static-core@^4.17.18": + version "4.17.24" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz#ea41f93bf7e0d59cd5a76665068ed6aab6815c07" + integrity sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express@^4.17.13": + version "4.17.13" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" + integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/fs-extra@^9.0.12": + version "9.0.12" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.12.tgz#9b8f27973df8a7a3920e8461517ebf8a7d4fdfaf" + integrity sha512-I+bsBr67CurCGnSenZZ7v94gd3tc3+Aj2taxMT4yu4ABLuOgOjeFxX3dokG24ztSRg5tnT00sL8BszO7gSMoIw== + 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/html-minifier-terser@^5.0.0": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz#693b316ad323ea97eed6b38ed1a3cc02b1672b57" + integrity sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w== + +"@types/http-proxy@^1.17.5": + version "1.17.7" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.7.tgz#30ea85cc2c868368352a37f0d0d3581e24834c6f" + integrity sha512-9hdj6iXH64tHSLTY+Vt2eYOGzSogC+JQ2H7bdPWkuh7KXP5qLllWx++t+K9Wk556c3dkDdPws/SpMRi0sdCT1w== + dependencies: + "@types/node" "*" + +"@types/json-schema@*", "@types/json-schema@^7.0.8": + 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/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.0": + version "12.2.1" + resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-12.2.1.tgz#ca36e1edce6f15a770f3e99e68622d1d2e2f0c65" + integrity sha512-iij+ilRX/vxtUPCREjn74xzHo/RorHJDwOsJ6X+TgKw7zSvazhVXnDfwlTnyLOMdiVUjtRYU4CrcUZ7Aci4PmQ== + dependencies: + "@types/linkify-it" "*" + "@types/mdurl" "*" + highlight.js "^10.7.2" + +"@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/mime@^1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + +"@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 "16.7.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.10.tgz#7aa732cc47341c12a16b7d562f519c2383b6d4fc" + integrity sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA== + +"@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/qs@*": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + +"@types/retry@^0.12.0": + version "0.12.1" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065" + integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== + +"@types/serve-static@*": + version "1.13.10" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" + integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/webpack-env@^1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.16.2.tgz#8db514b059c1b2ae14ce9d7bb325296de6a9a0fa" + integrity sha512-vKx7WNQNZDyJveYcHAm9ZxhqSGLYwoyLhrHjLBOkw3a7cT76sTdjgtwyijhk1MaHyRIuSztcVwrUOO/NEu68Dw== + +"@vue/compiler-core@3.2.7": + version "3.2.7" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.7.tgz#a7f1f87d4fae8c78d95a3d3df81bde663427deb8" + integrity sha512-OcWy72QNTkcNYtZIb927pRx2cRujrlDWsAx7ejWDnRzwo83gIyF8NeTrMv/7wbnHoeA+Gga9AK4Wo9PlCzhuLg== + dependencies: + "@babel/parser" "^7.15.0" + "@babel/types" "^7.15.0" + "@vue/shared" "3.2.7" + estree-walker "^2.0.2" + source-map "^0.6.1" + +"@vue/compiler-dom@3.2.7": + version "3.2.7" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.7.tgz#33abaeef89ec653e1a733143d4f7b6392def3de8" + integrity sha512-YZyZNoZlTbTMqyY8QMC8IhwmcDVOiE1DdVwjnXbyihg+XVqpGQkDjNcG5nyMTbtZDKXREsYkcjaZntEfKyWK5g== + dependencies: + "@vue/compiler-core" "3.2.7" + "@vue/shared" "3.2.7" + +"@vue/compiler-sfc@^3.2.3": + version "3.2.7" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.7.tgz#6ee803b7d5d375138fe86124b9c161eebbbc0f0d" + integrity sha512-qjfvRw7/9Q2Qm4cDmrJwTNqnFTXSSI3z/mmS9BSJTYZqh4FC4w+IIYYLWUpS3ef6UTTYY9STC5IUZqfpIod9Uw== + dependencies: + "@babel/parser" "^7.15.0" + "@babel/types" "^7.15.0" + "@types/estree" "^0.0.48" + "@vue/compiler-core" "3.2.7" + "@vue/compiler-dom" "3.2.7" + "@vue/compiler-ssr" "3.2.7" + "@vue/ref-transform" "3.2.7" + "@vue/shared" "3.2.7" + consolidate "^0.16.0" + estree-walker "^2.0.2" + hash-sum "^2.0.0" + lru-cache "^5.1.1" + magic-string "^0.25.7" + merge-source-map "^1.1.0" + postcss "^8.1.10" + postcss-modules "^4.0.0" + postcss-selector-parser "^6.0.4" + source-map "^0.6.1" + +"@vue/compiler-ssr@3.2.7": + version "3.2.7" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.7.tgz#30a4cb128eb7b67be551b22889c58f1288586673" + integrity sha512-4moQTeMujIk+fG8NaMxU5aPhMCnWE+O3xNEK6+kd9GjNoN+n3y3YZ6CkVy+aOP2HpqWenZbS/20TBzOSdon5Cw== + dependencies: + "@vue/compiler-dom" "3.2.7" + "@vue/shared" "3.2.7" + +"@vue/devtools-api@^6.0.0-beta.14": + version "6.0.0-beta.15" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.0.0-beta.15.tgz#ad7cb384e062f165bcf9c83732125bffbc2ad83d" + integrity sha512-quBx4Jjpexo6KDiNUGFr/zF/2A4srKM9S9v2uHgMXSU//hjgq1eGzqkIFql8T9gfX5ZaVOUzYBP3jIdIR3PKIA== + +"@vue/reactivity@3.2.7": + version "3.2.7" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.7.tgz#dfdf49a3984e3b503c8d751a392b8afbab21fd32" + integrity sha512-VDeQiZs6s5m1W7hIX+vzmokDCHPEKNYrSxoHWXj4MiGamcT5XZxACj/VXOCK9c6qz36qK5EQOfDWtmVhxfI2hQ== + dependencies: + "@vue/shared" "3.2.7" + +"@vue/ref-transform@3.2.7": + version "3.2.7" + resolved "https://registry.yarnpkg.com/@vue/ref-transform/-/ref-transform-3.2.7.tgz#1028708a44e1926f05e2967719a3481911c03c2f" + integrity sha512-5I7IeUqoDEhPmkPHBhw7YlsFCFO/ZXHWwgdrokQATyVRkEkqeAd8erthuZ9a4sZAo5JBYmxjYw8WD9Kx9mabmg== + dependencies: + "@babel/parser" "^7.15.0" + "@vue/compiler-core" "3.2.7" + "@vue/shared" "3.2.7" + estree-walker "^2.0.2" + magic-string "^0.25.7" + +"@vue/runtime-core@3.2.7": + version "3.2.7" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.7.tgz#bc6934e6b2b980bf20cf1bfd854fcf3be29e727a" + integrity sha512-vY3XwE671KDFf4onRrQZdRmkT+0Jr6wrifTO+JwrB6Q9hNiB064TgmiBXqoovjuQW5BmJw5Lkz3u+pG8FE8Egw== + dependencies: + "@vue/reactivity" "3.2.7" + "@vue/shared" "3.2.7" + +"@vue/runtime-dom@3.2.7": + version "3.2.7" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.7.tgz#f663c524b4c2cedcb6c0f8314db46066ba180cce" + integrity sha512-yuUmc8haFHrDqoU10JV3Fjd3G5Wz/ID+a/XMs0U68vhDLFsTBejhLX4il8Ga8nv+wrdwuGFwEE8t6APS67PxyA== + dependencies: + "@vue/runtime-core" "3.2.7" + "@vue/shared" "3.2.7" + csstype "^2.6.8" + +"@vue/server-renderer@^3.2.3": + version "3.2.7" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.7.tgz#a9589cf4ba163db457e10d88fb7bbf4aeb94c589" + integrity sha512-cceYfK8haSn3qliOKxmpWWrJAgFzb9xNvwXoGKmMxEhhzvW1xGKnwsNMYpxAi6VAIW6Fs58s2CPuq9TAQZIjXA== + dependencies: + "@vue/compiler-ssr" "3.2.7" + "@vue/shared" "3.2.7" + +"@vue/shared@3.2.7", "@vue/shared@^3.2.3": + version "3.2.7" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.7.tgz#c792bf92d19025e7940358536d468218a11eeedb" + integrity sha512-YwGOcNZjOY/MmadpzFBXWyHEwZSf0lVU4XF5zpD7tXC9dmqjdo38Jkk06wATu4LYHDPW4emXKMB5YLFPWPkwFA== + +"@vuepress/bundler-webpack@2.0.0-beta.25": + version "2.0.0-beta.25" + resolved "https://registry.yarnpkg.com/@vuepress/bundler-webpack/-/bundler-webpack-2.0.0-beta.25.tgz#edb80887b361ea33b8d3601007b5861d76b72182" + integrity sha512-gYlerAA6qrHHVhkmHXyz6va0KeIH4S/mQG490vQSDkErPXwg7BubYGZm2jz02tU10ZhPdw+ljxZPjvBsyrsrEw== + dependencies: + "@types/express" "^4.17.13" + "@types/webpack-env" "^1.16.2" + "@vue/compiler-sfc" "^3.2.3" + "@vue/server-renderer" "^3.2.3" + "@vuepress/client" "2.0.0-beta.25" + "@vuepress/core" "2.0.0-beta.25" + "@vuepress/shared" "2.0.0-beta.25" + "@vuepress/utils" "2.0.0-beta.25" + autoprefixer "^10.3.1" + chokidar "^3.5.2" + copy-webpack-plugin "^9.0.1" + css-loader "^6.2.0" + esbuild-loader "~2.15.0" + express "^4.17.1" + html-webpack-plugin "^5.3.2" + mini-css-extract-plugin "^2.2.0" + portfinder "^1.0.28" + postcss "^8.3.6" + postcss-csso "^5.0.1" + postcss-loader "^6.1.1" + style-loader "^3.2.1" + vue "^3.2.3" + vue-loader "^16.5.0" + vue-router "^4.0.10" + webpack "^5.50.0" + webpack-chain "^6.5.1" + webpack-dev-server "4.0.0" + webpack-merge "^5.8.0" + +"@vuepress/cli@2.0.0-beta.25": + version "2.0.0-beta.25" + resolved "https://registry.yarnpkg.com/@vuepress/cli/-/cli-2.0.0-beta.25.tgz#38f0819c25dab41bd931c27f7d7e8eefc8c46a24" + integrity sha512-uaXeASv+HpXUs4I7e5T8x/5m6KASMb16i1c92FsZ4sXJzADAGc15t6ZF6rJ0tgPLsyWnnSGuf/T+kM4DZwyOLw== + dependencies: + "@vuepress/core" "2.0.0-beta.25" + "@vuepress/utils" "2.0.0-beta.25" + cac "^6.7.3" + chokidar "^3.5.2" + envinfo "^7.8.1" + esbuild "^0.12.20" + +"@vuepress/client@2.0.0-beta.25": + version "2.0.0-beta.25" + resolved "https://registry.yarnpkg.com/@vuepress/client/-/client-2.0.0-beta.25.tgz#fefe49e42afb086d7380f841e87b08727dd1165f" + integrity sha512-QNnTNaZBwBZI7H3SEozMirRv8csZKHNqS912SCA6pQeErMVQFGFf7Bm2FPdFbOI6YR5H0M1+NNs+YqLOwWHHPQ== + dependencies: + "@vuepress/shared" "2.0.0-beta.25" + vue "^3.2.3" + vue-router "^4.0.10" + +"@vuepress/core@2.0.0-beta.25": + version "2.0.0-beta.25" + resolved "https://registry.yarnpkg.com/@vuepress/core/-/core-2.0.0-beta.25.tgz#54ab3bee7328de00691bba26cfe7ec03b571c323" + integrity sha512-Pt0t4182fqRhblFlWsi5JaK2Vo3B919iI0EfZNGF9kB5qY8nBhe4oyyilNOvOmQvM/d011a30FqF+B2OBOI9DQ== + dependencies: + "@vuepress/client" "2.0.0-beta.25" + "@vuepress/markdown" "2.0.0-beta.25" + "@vuepress/shared" "2.0.0-beta.25" + "@vuepress/utils" "2.0.0-beta.25" + gray-matter "^4.0.3" + toml "^3.0.0" + +"@vuepress/markdown@2.0.0-beta.25": + version "2.0.0-beta.25" + resolved "https://registry.yarnpkg.com/@vuepress/markdown/-/markdown-2.0.0-beta.25.tgz#967c53589da0049241a372546c32df6dfb368531" + integrity sha512-94lzTRA1DuBk+XwqzAaD50Ade+iQzP+WBGI6uW7//lO3GSZ4vXauXIfLz1sYlhI6m+bAhf746Yb2VerV6HCNmQ== + dependencies: + "@types/markdown-it" "^12.2.0" + "@vuepress/shared" "2.0.0-beta.25" + "@vuepress/utils" "2.0.0-beta.25" + markdown-it "^12.2.0" + markdown-it-anchor "^8.1.2" + markdown-it-emoji "^2.0.0" + mdurl "^1.0.1" + +"@vuepress/plugin-active-header-links@2.0.0-beta.25": + version "2.0.0-beta.25" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-active-header-links/-/plugin-active-header-links-2.0.0-beta.25.tgz#e065adde811eb69d8c2b39ede2373659277d8291" + integrity sha512-u7L7Aoco+TftdX+LjBkUtcQqJEqmv6XaZ/bR1bbgB9p/eyiwLc3mu3PbZfXFFSeAZzb+oMoiNDSm8baHlMPvag== + dependencies: + "@vuepress/client" "2.0.0-beta.25" + "@vuepress/core" "2.0.0-beta.25" + "@vuepress/utils" "2.0.0-beta.25" + ts-debounce "^3.0.0" + vue "^3.2.3" + vue-router "^4.0.10" + +"@vuepress/plugin-back-to-top@2.0.0-beta.25": + version "2.0.0-beta.25" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-back-to-top/-/plugin-back-to-top-2.0.0-beta.25.tgz#bdb2bbaafa17927775f0bb0c86626ca30113287d" + integrity sha512-i4Ka0NqkuYUAlMIQga2zPbKWBEDt1BMqLAGbNDycUl0RB7pNLiXJwXwQxvWPU6ejOxQsKjvsHgV7AUA0DaVx4Q== + dependencies: + "@vuepress/core" "2.0.0-beta.25" + "@vuepress/utils" "2.0.0-beta.25" + ts-debounce "^3.0.0" + vue "^3.2.3" + +"@vuepress/plugin-container@2.0.0-beta.25": + version "2.0.0-beta.25" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-container/-/plugin-container-2.0.0-beta.25.tgz#11e7e6e62f69cd37a4fcf6a2b4132d26ae1ad444" + integrity sha512-DGa44DgJj2i9S2YfSLKThTSq31d/nrv4fsMb6viiKLFeZsTEoC+1r/H/QcVCumqpfZxgOPETvemmcaYnGyAU+A== + dependencies: + "@types/markdown-it" "^12.2.0" + "@vuepress/core" "2.0.0-beta.25" + "@vuepress/markdown" "2.0.0-beta.25" + "@vuepress/shared" "2.0.0-beta.25" + "@vuepress/utils" "2.0.0-beta.25" + markdown-it "^12.2.0" + markdown-it-container "^3.0.0" + +"@vuepress/plugin-git@2.0.0-beta.25": + version "2.0.0-beta.25" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-git/-/plugin-git-2.0.0-beta.25.tgz#d8269a8812a79c38dd52647022573d9726b07d3e" + integrity sha512-6wxF+bhuCz7hMaWTOk4WATwEMSImabopDoEMRHyCyI7/OPPFqWzioNBMQKc4qLazQQ+N1guc45oT5fhpH/GBgA== + dependencies: + "@vuepress/core" "2.0.0-beta.25" + execa "^5.1.1" + +"@vuepress/plugin-medium-zoom@2.0.0-beta.25": + version "2.0.0-beta.25" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-medium-zoom/-/plugin-medium-zoom-2.0.0-beta.25.tgz#6d9671d580839ccf9410440b57fd530330a7aa08" + integrity sha512-yX8YEfZDnrwmdUGlKoOmeAXfFk/R9ZBUfO7uuV5gbXveB/bHtWZOjvTd4uhklwJYPlUVzXp3weeokTrxK09mSw== + dependencies: + "@vuepress/client" "2.0.0-beta.25" + "@vuepress/core" "2.0.0-beta.25" + "@vuepress/utils" "2.0.0-beta.25" + medium-zoom "^1.0.6" + vue "^3.2.3" + +"@vuepress/plugin-nprogress@2.0.0-beta.25": + version "2.0.0-beta.25" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-nprogress/-/plugin-nprogress-2.0.0-beta.25.tgz#8eab79bcbe6dbd7b1853b58d7ee19c875f119121" + integrity sha512-9Z/+xsc0MW1RFgst30F0RuOYNt96yfAKewOUQdwVYJhIOVRVP/+5f6METVXEEtaM+vb3m70L1/Q7izpzQII/nw== + dependencies: + "@vuepress/client" "2.0.0-beta.25" + "@vuepress/core" "2.0.0-beta.25" + "@vuepress/utils" "2.0.0-beta.25" + nprogress "^0.2.0" + vue "^3.2.3" + vue-router "^4.0.10" + +"@vuepress/plugin-palette@2.0.0-beta.25": + version "2.0.0-beta.25" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-palette/-/plugin-palette-2.0.0-beta.25.tgz#14087152d8b5babd7d5f91c0fecef9e03e5b980a" + integrity sha512-8165CfAKWDJFSIWA0fRKnV50ms7JaHjKZol3iXRDznvAYyg1JuLH3FtoPtFf0YDaW3smcx2I9hZzyi6WDfRqFg== + dependencies: + "@vuepress/core" "2.0.0-beta.25" + "@vuepress/utils" "2.0.0-beta.25" + chokidar "^3.5.2" + +"@vuepress/plugin-prismjs@2.0.0-beta.25": + version "2.0.0-beta.25" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-prismjs/-/plugin-prismjs-2.0.0-beta.25.tgz#1fd2352998667690292f495b212b2454cddf0364" + integrity sha512-9ZrFMishoZ18IPKc/Td7jbEDJJX/pHd9rvemB2KQOxQeB17HUPj6R8jZDXsQMOWoMDzS2nbfW1c+2a4+xr5P/g== + dependencies: + "@vuepress/core" "2.0.0-beta.25" + prismjs "^1.24.1" + +"@vuepress/plugin-theme-data@2.0.0-beta.25": + version "2.0.0-beta.25" + resolved "https://registry.yarnpkg.com/@vuepress/plugin-theme-data/-/plugin-theme-data-2.0.0-beta.25.tgz#3475f38bc7e4b62646fa03ee31c25357e57ea1fb" + integrity sha512-6jdZ+csYN3XKOp42+Z/vwhhWIoLM2AVw8BhPL3wvHRS0fYFyYxpFp50pfB2YrJLMPhSxomQnaDebkngx6ELdAg== + dependencies: + "@vuepress/client" "2.0.0-beta.25" + "@vuepress/core" "2.0.0-beta.25" + "@vuepress/shared" "2.0.0-beta.25" + "@vuepress/utils" "2.0.0-beta.25" + vue "^3.2.3" + +"@vuepress/shared@2.0.0-beta.25": + version "2.0.0-beta.25" + resolved "https://registry.yarnpkg.com/@vuepress/shared/-/shared-2.0.0-beta.25.tgz#3d1915e605a7a569d78f888a0242afc883ea7759" + integrity sha512-LGjrC/ZHDw4WSg5Ees1OEKh62AP/VQ1WbySzdFewjd0zCBMcyy/1mrH6Srja7NLL9JplPNvc+RJryAJ1mn5ymQ== + dependencies: + "@vue/shared" "^3.2.3" + +"@vuepress/theme-default@2.0.0-beta.25": + version "2.0.0-beta.25" + resolved "https://registry.yarnpkg.com/@vuepress/theme-default/-/theme-default-2.0.0-beta.25.tgz#9b26c56a8600cb3ee64424e0b5dbbbfb3c79a824" + integrity sha512-KdZKG4vKfIrE05hCjaV+JKZrs47OJBTm8AxpVeTTEPdTDMCZQBFjCbxqw2j6Ios8FqroAi9O9ycAmxnfRCX9+A== + dependencies: + "@vuepress/client" "2.0.0-beta.25" + "@vuepress/core" "2.0.0-beta.25" + "@vuepress/plugin-active-header-links" "2.0.0-beta.25" + "@vuepress/plugin-back-to-top" "2.0.0-beta.25" + "@vuepress/plugin-container" "2.0.0-beta.25" + "@vuepress/plugin-git" "2.0.0-beta.25" + "@vuepress/plugin-medium-zoom" "2.0.0-beta.25" + "@vuepress/plugin-nprogress" "2.0.0-beta.25" + "@vuepress/plugin-palette" "2.0.0-beta.25" + "@vuepress/plugin-prismjs" "2.0.0-beta.25" + "@vuepress/plugin-theme-data" "2.0.0-beta.25" + "@vuepress/shared" "2.0.0-beta.25" + "@vuepress/utils" "2.0.0-beta.25" + "@vueuse/core" "^6.0.0" + sass "^1.38.0" + sass-loader "^12.1.0" + vue "^3.2.3" + vue-router "^4.0.10" + +"@vuepress/utils@2.0.0-beta.25": + version "2.0.0-beta.25" + resolved "https://registry.yarnpkg.com/@vuepress/utils/-/utils-2.0.0-beta.25.tgz#4162f51901cfca4f10e8877dd958df2d5c0c3333" + integrity sha512-tKJINC3tepz1v5ippge6mWaiSicgbfpO7pEKDhhcGPMiCMi6yeHewEIkN2ZQKJO+8zCP4nZnySOAyiFnpboAZg== + dependencies: + "@types/debug" "^4.1.7" + "@types/fs-extra" "^9.0.12" + "@types/hash-sum" "^1.0.0" + "@vuepress/shared" "2.0.0-beta.25" + chalk "^4.1.2" + debug "^4.3.2" + fs-extra "^10.0.0" + globby "^11.0.4" + hash-sum "^2.0.0" + ora "^5.4.1" + upath "^2.0.1" + +"@vueuse/core@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-6.0.0.tgz#ebb6ad380682adc6c7d6c3be4f3e4003543845fd" + integrity sha512-PuBfNo/Zv+NkLcZaYWBA1WjqxQhTDC0DMQpoAIJdo/GFul/1SpBbONhUho2zqtOmq8vyGuK200wNFvyA4YUAMg== + dependencies: + "@vueuse/shared" "6.0.0" + vue-demi "*" + +"@vueuse/shared@6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-6.0.0.tgz#e6b8804541a1853615db3dd869d07653b244451f" + integrity sha512-PLjjqL8bxI5q86qk/ifXy572nfQE3rJc1RMem+dKcGayaagMnC4kXHEt64V98DVielSwr2FuYaeFodi4KJrvdg== + dependencies: + vue-demi "*" + +"@webassemblyjs/ast@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" + integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + +"@webassemblyjs/floating-point-hex-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" + integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== + +"@webassemblyjs/helper-api-error@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" + integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== + +"@webassemblyjs/helper-buffer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" + integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== + +"@webassemblyjs/helper-numbers@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" + integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" + integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== + +"@webassemblyjs/helper-wasm-section@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" + integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + +"@webassemblyjs/ieee754@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" + integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" + integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" + integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== + +"@webassemblyjs/wasm-edit@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" + integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/helper-wasm-section" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-opt" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + "@webassemblyjs/wast-printer" "1.11.1" + +"@webassemblyjs/wasm-gen@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" + integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wasm-opt@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" + integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + +"@webassemblyjs/wasm-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" + integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wast-printer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" + integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-import-assertions@^1.7.6: + version "1.7.6" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz#580e3ffcae6770eebeec76c3b9723201e9d01f78" + integrity sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA== + +acorn@^8.4.1: + version "8.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" + integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== + +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-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.12.5: + 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-html@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-regex@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.0.tgz#ecc7f5933cbe5ac7b33e209a5ff409ab1669c6b2" + integrity sha512-tAaOSrWCHF+1Ear1Z4wnJCXA9GGox4K6Ic85a5qalES2aeEwQGr7UC93mwef49536PkCYjzkp0zIxfFvexJ6zQ== + +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.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" + +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-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +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== + +async@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +autoprefixer@^10.3.1: + version "10.3.3" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.3.3.tgz#4bac89c74ef98e6a40fe1c5b76c0d1c91db153ce" + integrity sha512-yRzjxfnggrP/+qVHlUuZz5FZzEbkT+Yt0/Df6ScEMnbbZBLzYB2W0KLxoQCW+THm1SpOsM1ZPcTHAwuvmibIsQ== + dependencies: + browserslist "^4.16.8" + caniuse-lite "^1.0.30001252" + colorette "^1.3.0" + fraction.js "^4.1.1" + normalize-range "^0.1.2" + postcss-value-parser "^4.1.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== + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +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" + +bluebird@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +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.14.5, browserslist@^4.16.8: + version "4.16.8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.8.tgz#cb868b0b554f137ba6e33de0ecff2eda403c4fb0" + integrity sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ== + dependencies: + caniuse-lite "^1.0.30001251" + colorette "^1.3.0" + electron-to-chromium "^1.3.811" + escalade "^3.1.1" + node-releases "^1.1.75" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +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" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cac@^6.7.3: + version "6.7.3" + resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.3.tgz#10410b8611677990cc2e3c8b576d471c1d71b768" + integrity sha512-ECVqVZh74qgSuZG9YOt2OJPI3wGcf+EwwuF/XIOYqZBD0KZYLtgPWqFPxmDPQ6joxI1nOlvVgRV6VT53Ooyocg== + +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== + +camel-case@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +caniuse-lite@^1.0.30001251, caniuse-lite@^1.0.30001252: + version "1.0.30001252" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001252.tgz#cb16e4e3dafe948fc4a9bb3307aea054b912019a" + integrity sha512-I56jhWDGMtdILQORdusxBOH+Nl/KgQSdDmpJezYddnAkVOmnoU8zwjTV9xAjMIYxr0iPreEAVylCGcmHCjfaOw== + +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.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.1, chokidar@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== + 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" + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +clean-css@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" + integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== + dependencies: + source-map "~0.6.0" + +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.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.0.tgz#36c7dc98fb6a9a76bd6238ec3f77e2425627e939" + integrity sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q== + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.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: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colorette@^1.2.2, colorette@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" + integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +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= + +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== + +consolidate@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.16.0.tgz#a11864768930f2f19431660a65906668f5fbdc16" + integrity sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ== + dependencies: + bluebird "^3.7.2" + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +copy-webpack-plugin@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-9.0.1.tgz#b71d21991599f61a4ee00ba79087b8ba279bbb59" + integrity sha512-14gHKKdYIxF84jCEgPgYXCPpldbwpxxLbCmA7LReY7gvbaT555DgeBWBgBZM116tv/fO6RRJrsivBqRyRlukhw== + dependencies: + fast-glob "^3.2.5" + glob-parent "^6.0.0" + globby "^11.0.3" + normalize-path "^3.0.0" + p-limit "^3.1.0" + schema-utils "^3.0.0" + serialize-javascript "^6.0.0" + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig@^7.0.0: + 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" + +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-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.2.0.tgz#9663d9443841de957a3cb9bcea2eda65b3377071" + integrity sha512-/rvHfYRjIpymZblf49w8jYcRo2y9gj6rV8UroHGmBxKrIyGLokpycyKzp9OkitvqT29ZSpzJ0Ic7SpnJX3sC8g== + dependencies: + icss-utils "^5.1.0" + postcss "^8.2.15" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.1.0" + semver "^7.3.5" + +css-select@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" + integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== + dependencies: + boolbase "^1.0.0" + css-what "^5.0.0" + domhandler "^4.2.0" + domutils "^2.6.0" + nth-check "^2.0.0" + +css-tree@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.0.1.tgz#3efa820131f4669a8ac2408f9c32e7c7de9f4cad" + integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg== + +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@^4.0.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +csstype@^2.6.8: + version "2.6.17" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.17.tgz#4cf30eb87e1d1a005d8b6510f95292413f6a1c0e" + integrity sha512-u1wmTI1jJGzCJzWndZo8mk4wnPTZd1eOIYTYvuEyOQGfmDl3TrabCCfKnOC86FZwW/9djqTl933UF/cS425i9A== + +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.1.1: + 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.0, debug@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +deep-equal@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deepmerge@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" + integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== + +default-gateway@^6.0.0: + version "6.0.3" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== + dependencies: + execa "^5.0.0" + +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-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +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" + +del@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/del/-/del-6.0.0.tgz#0b40d0332cea743f1614f818be4feb717714c952" + integrity sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ== + dependencies: + globby "^11.0.1" + graceful-fs "^4.2.4" + is-glob "^4.0.1" + is-path-cwd "^2.2.0" + is-path-inside "^3.0.2" + p-map "^4.0.0" + rimraf "^3.0.2" + slash "^3.0.0" + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +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" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" + integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-serializer@^1.0.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" + integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + +domhandler@^4.0.0, domhandler@^4.2.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.2.tgz#e825d721d19a86b8c201a35264e226c678ee755f" + integrity sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w== + dependencies: + domelementtype "^2.2.0" + +domutils@^2.5.2, domutils@^2.6.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +electron-to-chromium@^1.3.811: + version "1.3.827" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.827.tgz#c725e8db8c5be18b472a919e5f57904512df0fc1" + integrity sha512-ye+4uQOY/jbjRutMcE/EmOcNwUeo1qo9aKL2tPyb09cU3lmxNeyDF4RWiemmkknW+p29h7dyDqy02higTxc9/A== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +enhanced-resolve@^5.8.0: + version "5.8.2" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz#15ddc779345cbb73e97c611cd00c01c1e7bf4d8b" + integrity sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +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-module-lexer@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.7.1.tgz#c2c8e0f46f2df06274cdaf0dd3f3b33e0a0b267d" + integrity sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw== + +esbuild-loader@~2.15.0: + version "2.15.1" + resolved "https://registry.yarnpkg.com/esbuild-loader/-/esbuild-loader-2.15.1.tgz#5a3940f5d20317f1a35720efa33e933f97c923e9" + integrity sha512-JRBL6uTeWplMbylNBt9gxLKMjD8wKnqGq786QV/cm/nPBSNA9/kC7/vNwCXTDPfYqHoWsjyfH7ub9ekN0kdAYQ== + dependencies: + esbuild "^0.12.21" + joycon "^3.0.1" + json5 "^2.2.0" + loader-utils "^2.0.0" + tapable "^2.2.0" + type-fest "^1.4.0" + webpack-sources "^2.2.0" + +esbuild@^0.12.20, esbuild@^0.12.21: + version "0.12.24" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.24.tgz#21966fad25a80f368ed308101e88102bce0dc68f" + integrity sha512-C0ibY+HsXzYB6L/pLWEiWjMpghKsIc58Q5yumARwBQsHl9DXPakW+5NI/Y9w4YXiz0PEP6XTGTT/OV4Nnsmb4A== + +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-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +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= + +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" + +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== + +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.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +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== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +execa@^5.0.0, 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" + +express@^4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +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: + 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-glob@^3.1.1, fast-glob@^3.2.5: + version "3.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" + integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== + 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== + +fastq@^1.6.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.12.0.tgz#ed7b6ab5d62393fb2cc591c853652a5c318bf794" + integrity sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg== + dependencies: + reusify "^1.0.4" + +faye-websocket@^0.11.3: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +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" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +follow-redirects@^1.0.0: + version "1.14.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.3.tgz#6ada78118d8d24caee595595accdc0ac6abd022e" + integrity sha512-3MkHxknWMUtb23apkgz/83fDoe+y+qr0TdgacGIA7bew+QLBo3vdgEN2xEsuXNivpFy4CyDhBBZnNZOtalmenw== + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fraction.js@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.1.1.tgz#ac4e520473dae67012d618aab91eda09bcb400ff" + integrity sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +fs-extra@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" + integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-monkey@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" + integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== + +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== + +generic-names@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872" + integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== + dependencies: + loader-utils "^1.1.0" + +get-intrinsic@^1.0.2: + 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== + +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.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.1.tgz#42054f685eb6a44e7a7d189a96efa40a54971aa7" + integrity sha512-kEVjS71mQazDBHKcsq4E9u/vUzaLcw1A8EtUeydawvIWQCJM0qQ08G1H7/XTjFUulla6XQiDOG6MXSaG0HDKog== + dependencies: + is-glob "^4.0.1" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^7.1.3: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + 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" + +globby@^11.0.1, globby@^11.0.3, globby@^11.0.4: + version "11.0.4" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" + integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6: + version "4.2.8" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" + integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== + +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" + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +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.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + +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== + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +highlight.js@^10.7.2: + version "10.7.3" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" + integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-entities@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488" + integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ== + +html-minifier-terser@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" + integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg== + dependencies: + camel-case "^4.1.1" + clean-css "^4.2.3" + commander "^4.1.1" + he "^1.2.0" + param-case "^3.0.3" + relateurl "^0.2.7" + terser "^4.6.3" + +html-webpack-plugin@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.3.2.tgz#7b04bf80b1f6fe84a6d3f66c8b79d64739321b08" + integrity sha512-HvB33boVNCz2lTyBsSiMffsJ+m0YLIQ+pskblXgN9fnjS1BgEcuAfdInfXfGrkdXV406k9FiDi86eVCDBgJOyQ== + dependencies: + "@types/html-minifier-terser" "^5.0.0" + html-minifier-terser "^5.0.1" + lodash "^4.17.21" + pretty-error "^3.0.4" + tapable "^2.0.0" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-parser-js@>=0.5.1: + version "0.5.3" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" + integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== + +http-proxy-middleware@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.1.tgz#7ef3417a479fb7666a571e09966c66a39bd2c15f" + integrity sha512-cfaXRVoZxSed/BmkA7SwBVNI9Kj7HFltaE5rqYOub5kWzWZ+gofV2koVN1j2rMW7pEfSSlCHGJ31xmuyFyfLOg== + dependencies: + "@types/http-proxy" "^1.17.5" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +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== + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= + +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +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@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + +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" + +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.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +internal-ip@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-6.2.0.tgz#d5541e79716e406b74ac6b07b856ef18dc1621c1" + integrity sha512-D8WGsR6yDt8uq7vDMu7mjcR+yRMm3dW8yufyChmszWRjcSHuxLBkR3GdS2HZAjodsaGuCvXeEJpueisXJULghg== + dependencies: + default-gateway "^6.0.0" + ipaddr.js "^1.9.1" + is-ip "^3.1.0" + p-event "^4.2.0" + +ip-regex@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" + integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== + +ip@^1.1.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +ipaddr.js@1.9.1, ipaddr.js@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +ipaddr.js@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" + integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== + +is-arguments@^1.0.4: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +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-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-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-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +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-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + 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-ip@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" + integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== + dependencies: + ip-regex "^4.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-path-cwd@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-inside@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-regex@^1.0.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-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-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-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +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= + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +javascript-stringify@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz#27c76539be14d8bd128219a2d731b09337904e79" + integrity sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg== + +jest-worker@^27.0.6: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.1.0.tgz#65f4a88e37148ed984ba8ca8492d6b376938c0aa" + integrity sha512-mO4PHb2QWLn9yRXGp7rkvXLAYuxwhq1ZYUo0LoDhg8wqvv4QizP1ZWEJOeolgbEgAWZLIEU0wsku8J+lGWfBhg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +joycon@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.0.1.tgz#9074c9b08ccf37a6726ff74a18485f85efcaddaf" + integrity sha512-SJcJNBg32dGgxhPtM0wQqxqV0ax9k/9TaUskGDSJkSFSQOEWWvQ3zzWdGQRIUry2j1zA5+ReH13t0Mf3StuVZA== + +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" + +json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +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== + +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" + +json5@^2.1.2, json5@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +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.4" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" + integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +linkify-it@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.2.tgz#f55eeb8bc1d3ae754049e124ab3bb56d97797fb8" + integrity sha512-gDBO4aHNZS6coiZCKVhSNh43F9ioIL4JwRjLZPkoLIY4yZFwg264Y5lu2x6rb1Js42Gh6Yqm2f6L2AJcnkzinQ== + dependencies: + uc.micro "^1.0.1" + +loader-runner@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" + integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== + +loader-utils@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= + +lodash@^4.17.14, lodash@^4.17.20, 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" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +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.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" + integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== + dependencies: + sourcemap-codec "^1.4.4" + +map-age-cleaner@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +markdown-it-anchor@^8.1.2: + version "8.3.0" + resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-8.3.0.tgz#9e1a71766f778c382e5b6d3808d8c4d3a3b4ae30" + integrity sha512-YXMxKqZDH/MM/sFBZe+JQ/XFa7i8mIWZYkcY7jCGmpNNqcj2iS9Wyxy5devkUoL14NJOUt5IleD99D8StAwkXg== + +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.2.0: + version "12.2.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.2.0.tgz#091f720fd5db206f80de7a8d1f1a7035fd0d38db" + integrity sha512-Wjws+uCrVQRqOoJvze4HCqkKl1AsSh95iFAeQDwnyfxM09divCBSXlDR1uTvyUP3Grzpn4Ru8GeCxYPM8vkCQg== + 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.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +mdurl@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +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== + +mem@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-8.1.1.tgz#cf118b357c65ab7b7e0817bdf00c8062297c0122" + integrity sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA== + dependencies: + map-age-cleaner "^0.1.3" + mimic-fn "^3.1.0" + +memfs@^3.2.2: + version "3.2.3" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.2.3.tgz#a5cc1b11a0608f4e38feea9a94b957acba820af3" + integrity sha512-vDKa1icg0KDNzcOPBPAduFFb3YL+pLbQ/3hW7rRgUKpoliTAkPmVV7r/3qJ6YqKyIXEDhzsdSvLlEh137AfWUA== + dependencies: + fs-monkey "1.0.3" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-source-map@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== + dependencies: + source-map "^0.6.1" + +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: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@^4.0.2, 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" + +mime-db@1.49.0, "mime-db@>= 1.43.0 < 2": + version "1.49.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" + integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== + +mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24: + version "2.1.32" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" + integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== + dependencies: + mime-db "1.49.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +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== + +mimic-fn@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" + integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== + +mini-css-extract-plugin@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.2.2.tgz#df22f16bf43173050c6d652fa7d035318c310e04" + integrity sha512-eUjQ/q1rQIeHWgIx7ny/DNgXHcMXHdBwgrZQK7Ev8dbR+HxhroFM2Cb6kMiswOYaq05IRJhPuQqXWUABIjjA3g== + dependencies: + schema-utils "^3.1.0" + +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mkdirp@^0.5.5: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +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.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +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== + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +nanoid@^3.1.23: + version "3.1.25" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152" + integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q== + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +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== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-forge@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" + integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== + +node-releases@^1.1.75: + version "1.1.75" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe" + integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw== + +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= + +nth-check@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" + integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== + dependencies: + boolbase "^1.0.0" + +object-is@^1.0.1: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +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== + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +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" + +open@^8.0.9: + version "8.2.1" + resolved "https://registry.yarnpkg.com/open/-/open-8.2.1.tgz#82de42da0ccbf429bc12d099dad2e0975e14e8af" + integrity sha512-rXILpcQlkF/QuFez2BJDf3GsqpjGKbkUUToAIGo9A0Q6ZkoSGogZJulrUdwRkrAsoQvoZsrjCYt8+zblOk7JQQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +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-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + +p-event@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" + integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== + dependencies: + p-timeout "^3.1.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.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-retry@^4.5.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.1.tgz#8fcddd5cdf7a67a0911a9cf2ef0e5df7f602316c" + integrity sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA== + dependencies: + "@types/retry" "^0.12.0" + retry "^0.13.1" + +p-timeout@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +param-case@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +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" + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +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-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +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== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + +portfinder@^1.0.28: + version "1.0.28" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" + integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.5" + +postcss-csso@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-csso/-/postcss-csso-5.0.1.tgz#023175280a4a8ff916d7763d3543c1fe55ed67a8" + integrity sha512-TI99uhhJK2L5IQXPuyNcT3XV9bffSvDPmNpHi5f+tBq+R/01ucgLsUCcTDcVNqKMxO28klI6NwgjrHrM99x9KA== + dependencies: + csso "^4.0.2" + +postcss-loader@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.1.1.tgz#58dd0a3accd9bc87cc52eff75244db578d11301a" + integrity sha512-lBmJMvRh1D40dqpWKr9Rpygwxn8M74U9uaCSeYGNKLGInbk9mXBt1ultHf2dH9Ghk6Ue4UXlXWwGMH9QdUJ5ug== + dependencies: + cosmiconfig "^7.0.0" + klona "^2.0.4" + semver "^7.3.5" + +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + +postcss-modules-local-by-default@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" + integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-modules@^4.0.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-4.2.2.tgz#5e7777c5a8964ea176919d90b2e54ef891321ce5" + integrity sha512-/H08MGEmaalv/OU8j6bUKi/kZr2kqGF6huAW8m9UAgOLWtpFdhA14+gPBoymtqyv+D4MLsmqaF2zvIegdCxJXg== + dependencies: + generic-names "^2.0.1" + icss-replace-symbols "^1.1.0" + lodash.camelcase "^4.3.0" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + string-hash "^1.1.1" + +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: + version "6.0.6" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" + integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-value-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + +postcss@^8.1.10, postcss@^8.2.15, postcss@^8.3.6: + version "8.3.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.6.tgz#2730dd76a97969f37f53b9a6096197be311cc4ea" + integrity sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A== + dependencies: + colorette "^1.2.2" + nanoid "^3.1.23" + source-map-js "^0.6.2" + +pretty-error@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-3.0.4.tgz#94b1d54f76c1ed95b9c604b9de2194838e5b574e" + integrity sha512-ytLFLfv1So4AO1UkoBF6GXQgJRaKbiSiGFICaOPNwQ3CMvBvXpLRubeQWyPGnsbV/t9ml9qto6IeCsho0aEvwQ== + dependencies: + lodash "^4.17.20" + renderkid "^2.0.6" + +prismjs@^1.24.1: + version "1.24.1" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.24.1.tgz#c4d7895c4d6500289482fa8936d9cdd192684036" + integrity sha512-mNPsedLuk90RVJioIky8ANZEwYm5w9LcvCXrxHlwf4fNVSn8jEipMybMkWUyyF0JhnC+C4VcOVSBuHRKs1L5Ow== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +proxy-addr@~2.0.5: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +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== + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +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== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +readable-stream@^2.0.1: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6, 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" + +regexp.prototype.flags@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" + integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + +renderkid@^2.0.6: + version "2.0.7" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" + integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^3.0.1" + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +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== + +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" + +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +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" + +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" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.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== + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sass-loader@^12.1.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-12.1.0.tgz#b73324622231009da6fba61ab76013256380d201" + integrity sha512-FVJZ9kxVRYNZTIe2xhw93n3xJNYZADr+q69/s98l9nTCrWASo+DR2Ot0s5xTKQDDEosUkatsGeHxcH4QBp5bSg== + dependencies: + klona "^2.0.4" + neo-async "^2.6.2" + +sass@^1.38.0: + version "1.39.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.39.0.tgz#6c64695d1c437767c8f1a4e471288e831f81d035" + integrity sha512-F4o+RhJkNOIG0b6QudYU8c78ZADKZjKDk5cyrf8XTKWfrgbtyVVXImFstJrc+1pkQDCggyidIOytq6gS4gCCZg== + dependencies: + chokidar ">=3.0.0 <4.0.0" + +schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +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" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +selfsigned@^1.10.11: + version "1.10.11" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9" + integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA== + dependencies: + node-forge "^0.10.0" + +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" + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-javascript@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +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== + +signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +sockjs@^0.3.21: + version "0.3.21" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" + integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== + dependencies: + faye-websocket "^0.11.3" + uuid "^3.4.0" + websocket-driver "^0.7.4" + +source-list-map@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-js@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" + integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== + +source-map-support@~0.5.12, source-map-support@~0.5.19: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, 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== + +source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +sourcemap-codec@^1.4.4: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +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= + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +string-hash@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" + integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= + +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" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.0.tgz#1dc49b980c3a4100366617adac59327eefdefcb0" + integrity sha512-UhDTSnGF1dc0DRbUqr1aXwNoY3RgVkSWG8BrpnuFIxhP57IqbS7IRta2Gfiavds4yCxc5+fEAVVOgBZWnYkvzg== + dependencies: + ansi-regex "^6.0.0" + +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-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== + +style-loader@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.2.1.tgz#63cb920ec145c8669e9a50e92961452a1ef5dcde" + integrity sha512-1k9ZosJCRFaRbY6hH49JFlRB0fVSbmnyq1iTPjNxUmGVjBNEmwrrHPenhlp+Lgo51BojHSf6pl2FcqYaN3PfVg== + +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.0.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" + +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" + integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== + +terser-webpack-plugin@^5.1.3: + version "5.2.1" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.2.1.tgz#7baa96287ca8f29d22814d57c809cbae6be4de3c" + integrity sha512-mUAWsS2RDNL3rEr0ZTr7hm/R1DDxNwrED7Kf59F2rgFTfy+LrnciwA51MNWhGGQcqHnqvbPHgkW9LYr5HGBhfw== + dependencies: + jest-worker "^27.0.6" + p-limit "^3.1.0" + schema-utils "^3.1.1" + serialize-javascript "^6.0.0" + source-map "^0.6.1" + terser "^5.7.2" + +terser@^4.6.3: + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +terser@^5.7.2: + version "5.7.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.2.tgz#d4d95ed4f8bf735cb933e802f2a1829abf545e3f" + integrity sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw== + dependencies: + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.19" + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +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" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +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== + +ts-debounce@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ts-debounce/-/ts-debounce-3.0.0.tgz#9beedf59c04de3b5bef8ff28bd6885624df357be" + integrity sha512-7jiRWgN4/8IdvCxbIwnwg2W0bbYFBH6BxFqBjMKk442t7+liF2Z1H6AUCcl8e/pD93GjPru+axeiJwFmRww1WQ== + +tslib@^2.0.3: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + +type-fest@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +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== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +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" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vue-demi@*: + version "0.11.3" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.11.3.tgz#dd7495b92b495ecfa35675bf024b1358a7add150" + integrity sha512-DpM0TTMpclRZDV6AIacgg837zrim/C9Zn+2ztXBs9hsESJN9vC83ztjTe4KC4HgJuVle8YUjPp7HTwWtwOHfmg== + +vue-loader@^16.5.0: + version "16.5.0" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-16.5.0.tgz#09c4e0712466899e34b99a686524f19165fb2892" + integrity sha512-WXh+7AgFxGTgb5QAkQtFeUcHNIEq3PGVQ8WskY5ZiFbWBkOwcCPRs4w/2tVyTbh2q6TVRlO3xfvIukUtjsu62A== + dependencies: + chalk "^4.1.0" + hash-sum "^2.0.0" + loader-utils "^2.0.0" + +vue-router@^4.0.10: + version "4.0.11" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.0.11.tgz#cd649a0941c635281763a20965b599643ddc68ed" + integrity sha512-sha6I8fx9HWtvTrFZfxZkiQQBpqSeT+UCwauYjkdOQYRvwsGwimlQQE2ayqUwuuXGzquFpCPoXzYKWlzL4OuXg== + dependencies: + "@vue/devtools-api" "^6.0.0-beta.14" + +vue@^3.2.3: + version "3.2.7" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.7.tgz#0850f2740f0cb58741f2c53bcbd9c6c705e4cc74" + integrity sha512-kqPYCbvw6rthEA41K45dqxV+C0yrQX24zs1ZmGZTi4Sk6WkzNK8tH4jGd0yAW+lu72E+HQmz0ZhNo6zAT/WKUA== + dependencies: + "@vue/compiler-dom" "3.2.7" + "@vue/runtime-dom" "3.2.7" + "@vue/shared" "3.2.7" + +vuepress@^2.0.0-beta.25: + version "2.0.0-beta.25" + resolved "https://registry.yarnpkg.com/vuepress/-/vuepress-2.0.0-beta.25.tgz#a99e84c4de019f48901c9837ac57d492ddc1a968" + integrity sha512-E1/Jeb96K5bBhOcQ6ijXPi1v7XvvXgjIgK1y7UpNUHUhv115HBi9BIMc5AssLB1zDSL/zWlroVj+nk7RkJZ5Ig== + dependencies: + "@vuepress/bundler-webpack" "2.0.0-beta.25" + "@vuepress/cli" "2.0.0-beta.25" + "@vuepress/core" "2.0.0-beta.25" + "@vuepress/theme-default" "2.0.0-beta.25" + +watchpack@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce" + integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +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" + +webpack-chain@^6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/webpack-chain/-/webpack-chain-6.5.1.tgz#4f27284cbbb637e3c8fbdef43eef588d4d861206" + integrity sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA== + dependencies: + deepmerge "^1.5.2" + javascript-stringify "^2.0.1" + +webpack-dev-middleware@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.0.0.tgz#0abe825275720e0a339978aea5f0b03b140c1584" + integrity sha512-9zng2Z60pm6A98YoRcA0wSxw1EYn7B7y5owX/Tckyt9KGyULTkLtiavjaXlWqOMkM0YtqGgL3PvMOFgyFLq8vw== + dependencies: + colorette "^1.2.2" + mem "^8.1.1" + memfs "^3.2.2" + mime-types "^2.1.31" + range-parser "^1.2.1" + schema-utils "^3.0.0" + +webpack-dev-server@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.0.0.tgz#fb4906e91182154bba54a66e6e06f84c1e3c0a80" + integrity sha512-ya5cjoBSf3LqrshZn2HMaRZQx8YRNBE+tx+CQNFGaLLHrvs4Y1aik0sl5SFhLz2cW1O9/NtyaZhthc+8UiuvkQ== + dependencies: + ansi-html "^0.0.7" + bonjour "^3.5.0" + chokidar "^3.5.1" + colorette "^1.2.2" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + del "^6.0.0" + express "^4.17.1" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^2.0.0" + internal-ip "^6.2.0" + ipaddr.js "^2.0.1" + open "^8.0.9" + p-retry "^4.5.0" + portfinder "^1.0.28" + schema-utils "^3.1.0" + selfsigned "^1.10.11" + serve-index "^1.9.1" + sockjs "^0.3.21" + spdy "^4.0.2" + strip-ansi "^7.0.0" + url "^0.11.0" + webpack-dev-middleware "^5.0.0" + ws "^8.1.0" + +webpack-merge@^5.8.0: + version "5.8.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" + integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== + dependencies: + clone-deep "^4.0.1" + wildcard "^2.0.0" + +webpack-sources@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd" + integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA== + dependencies: + source-list-map "^2.0.1" + source-map "^0.6.1" + +webpack-sources@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.0.tgz#b16973bcf844ebcdb3afde32eda1c04d0b90f89d" + integrity sha512-fahN08Et7P9trej8xz/Z7eRu8ltyiygEo/hnRi9KqBUs80KeDcnf96ZJo++ewWd84fEf3xSX9bp4ZS9hbw0OBw== + +webpack@^5.50.0: + version "5.51.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.51.2.tgz#f765d258b0bf6abda3c5f21bf855a25720e9796f" + integrity sha512-odydxP4WA3XYYzwSQUivPxywdzMlY42bbfxMwCaEtHb+i/N9uzKSHcLgWkXo/Gsa+4Zlzf3Jg0hEHn1FnZpk2Q== + dependencies: + "@types/eslint-scope" "^3.7.0" + "@types/estree" "^0.0.50" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/wasm-edit" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + acorn "^8.4.1" + acorn-import-assertions "^1.7.6" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.8.0" + es-module-lexer "^0.7.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.4" + json-parse-better-errors "^1.0.2" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.1.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.3" + watchpack "^2.2.0" + webpack-sources "^3.2.0" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +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" + +wildcard@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" + integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +ws@^8.1.0: + version "8.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.1.tgz#bdd92b3c56fdb47d2379b5ae534281922cc5bd12" + integrity sha512-XkgWpJU3sHU7gX8f13NqTn6KQ85bd1WU7noBHTT8fSohx7OS1TPY8k+cyRPCzFkia7C4mM229yeHr1qK9sM4JQ== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +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: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==