From 7541bb1293b05faef8631c74985dbd84e26986e7 Mon Sep 17 00:00:00 2001
From: Alfex4936 <ikr@kakao.com>
Date: Wed, 15 Mar 2023 19:46:41 +0900
Subject: [PATCH] Organize project

builders
---
 .gitignore                                  |    4 +
 .gitlab-ci.yml                              |   26 +-
 README.md                                   |   84 +-
 docs/.gitignore                             |    1 +
 {public => docs}/01_ko.html                 |    0
 {public => docs}/02_ko.html                 |    0
 {public => docs}/03_ko.html                 |    0
 {public => docs}/04_ko.html                 |    0
 {public => docs}/06_ko.html                 |    0
 {public => docs}/07_ko.html                 |    0
 {public => docs}/08_ko.html                 |    0
 {public => docs}/09_ko.html                 |    0
 {public => docs}/10_ko.html                 |    0
 {public => docs}/11_ko.html                 |    0
 {public => docs}/12_ko.html                 |    0
 {public => docs}/13_ko.html                 |    0
 {public => docs}/14_ko.html                 |    0
 {public => docs}/15_ko.html                 |    0
 {public => docs}/16_ko.html                 |    0
 {public => docs}/TOC_ko.html                |    0
 {public => docs}/android-chrome-192x192.png |  Bin
 {public => docs}/android-chrome-512x512.png |  Bin
 {public => docs}/apple-touch-icon.png       |  Bin
 {public => docs}/chapter_1_ko.html          |    0
 {public => docs}/cover.jpg                  |  Bin
 {public => docs}/divider-line.svg           |    0
 {public => docs}/favicon-16x16.png          |  Bin
 {public => docs}/favicon-32x32.png          |  Bin
 {public => docs}/favicon.ico                |  Bin
 {public => docs}/ferris.png                 |  Bin
 {public => docs}/ferris_lofi.png            |  Bin
 {public => docs}/index.html                 |    0
 {public => docs}/intro.png                  |  Bin
 {public => docs}/intro.webp                 |  Bin
 {public => docs}/site.webmanifest           |    0
 {public => docs}/sitemap.xml                |    0
 {public => docs}/social.jpg                 |  Bin
 {public => docs}/tour.css                   |    0
 {public => docs}/tour.js                    |   40 +-
 {public => docs}/webassembly/ferris.png     |  Bin
 {public => docs}/webassembly/tour.css       |    0
 fast.py                                     |   20 +
 frontend/.eslintrc.js                       |   16 +
 frontend/.gitignore                         |    5 +
 frontend/Dockerfile                         |   39 +
 frontend/Makefile                           |   24 +
 frontend/README.md                          |    3 +
 frontend/generate.js                        |  352 ++
 frontend/lessons/README.md                  |    4 +
 frontend/lessons/ko/chapter_0.yaml          |  168 +
 frontend/lessons/ko/chapter_1.yaml          |  224 ++
 frontend/lessons/ko/common_words.yaml       |    9 +
 frontend/make.bat                           |   75 +
 frontend/run.sh                             |    9 +
 package-lock.json                           | 2747 ++++++++++++++++
 package.json                                |   28 +
 public/CNAME                                |    1 -
 public/images/hylee_512.jpg                 |  Bin 51474 -> 0 bytes
 public/style.css                            |   26 -
 src-ui/.gitignore                           |   10 +
 src-ui/Cargo.lock                           | 3196 +++++++++++++++++++
 src-ui/Cargo.toml                           |   30 +
 src-ui/build.rs                             |    3 +
 src-ui/icons/128x128.png                    |  Bin 0 -> 3512 bytes
 src-ui/icons/128x128@2x.png                 |  Bin 0 -> 7012 bytes
 src-ui/icons/32x32.png                      |  Bin 0 -> 974 bytes
 src-ui/icons/Square107x107Logo.png          |  Bin 0 -> 2863 bytes
 src-ui/icons/Square142x142Logo.png          |  Bin 0 -> 3858 bytes
 src-ui/icons/Square150x150Logo.png          |  Bin 0 -> 3966 bytes
 src-ui/icons/Square284x284Logo.png          |  Bin 0 -> 7737 bytes
 src-ui/icons/Square30x30Logo.png            |  Bin 0 -> 903 bytes
 src-ui/icons/Square310x310Logo.png          |  Bin 0 -> 8591 bytes
 src-ui/icons/Square44x44Logo.png            |  Bin 0 -> 1299 bytes
 src-ui/icons/Square71x71Logo.png            |  Bin 0 -> 2011 bytes
 src-ui/icons/Square89x89Logo.png            |  Bin 0 -> 2468 bytes
 src-ui/icons/StoreLogo.png                  |  Bin 0 -> 1523 bytes
 src-ui/icons/icon.icns                      |  Bin 0 -> 32947 bytes
 src-ui/icons/icon.ico                       |  Bin 0 -> 67646 bytes
 src-ui/icons/icon.png                       |  Bin 0 -> 14183 bytes
 src-ui/rustfmt.toml                         |   13 +
 src-ui/src/main.rs                          |   15 +
 src-ui/tauri.conf.json                      |   52 +
 82 files changed, 7094 insertions(+), 130 deletions(-)
 create mode 100644 .gitignore
 create mode 100644 docs/.gitignore
 rename {public => docs}/01_ko.html (100%)
 rename {public => docs}/02_ko.html (100%)
 rename {public => docs}/03_ko.html (100%)
 rename {public => docs}/04_ko.html (100%)
 rename {public => docs}/06_ko.html (100%)
 rename {public => docs}/07_ko.html (100%)
 rename {public => docs}/08_ko.html (100%)
 rename {public => docs}/09_ko.html (100%)
 rename {public => docs}/10_ko.html (100%)
 rename {public => docs}/11_ko.html (100%)
 rename {public => docs}/12_ko.html (100%)
 rename {public => docs}/13_ko.html (100%)
 rename {public => docs}/14_ko.html (100%)
 rename {public => docs}/15_ko.html (100%)
 rename {public => docs}/16_ko.html (100%)
 rename {public => docs}/TOC_ko.html (100%)
 rename {public => docs}/android-chrome-192x192.png (100%)
 rename {public => docs}/android-chrome-512x512.png (100%)
 rename {public => docs}/apple-touch-icon.png (100%)
 rename {public => docs}/chapter_1_ko.html (100%)
 rename {public => docs}/cover.jpg (100%)
 rename {public => docs}/divider-line.svg (100%)
 rename {public => docs}/favicon-16x16.png (100%)
 rename {public => docs}/favicon-32x32.png (100%)
 rename {public => docs}/favicon.ico (100%)
 rename {public => docs}/ferris.png (100%)
 rename {public => docs}/ferris_lofi.png (100%)
 rename {public => docs}/index.html (100%)
 rename {public => docs}/intro.png (100%)
 rename {public => docs}/intro.webp (100%)
 rename {public => docs}/site.webmanifest (100%)
 rename {public => docs}/sitemap.xml (100%)
 rename {public => docs}/social.jpg (100%)
 rename {public => docs}/tour.css (100%)
 rename {public => docs}/tour.js (71%)
 rename {public => docs}/webassembly/ferris.png (100%)
 rename {public => docs}/webassembly/tour.css (100%)
 create mode 100644 fast.py
 create mode 100644 frontend/.eslintrc.js
 create mode 100644 frontend/.gitignore
 create mode 100644 frontend/Dockerfile
 create mode 100644 frontend/Makefile
 create mode 100644 frontend/README.md
 create mode 100644 frontend/generate.js
 create mode 100644 frontend/lessons/README.md
 create mode 100644 frontend/lessons/ko/chapter_0.yaml
 create mode 100644 frontend/lessons/ko/chapter_1.yaml
 create mode 100644 frontend/lessons/ko/common_words.yaml
 create mode 100644 frontend/make.bat
 create mode 100644 frontend/run.sh
 create mode 100644 package-lock.json
 create mode 100644 package.json
 delete mode 100644 public/CNAME
 delete mode 100644 public/images/hylee_512.jpg
 delete mode 100644 public/style.css
 create mode 100644 src-ui/.gitignore
 create mode 100644 src-ui/Cargo.lock
 create mode 100644 src-ui/Cargo.toml
 create mode 100644 src-ui/build.rs
 create mode 100644 src-ui/icons/128x128.png
 create mode 100644 src-ui/icons/128x128@2x.png
 create mode 100644 src-ui/icons/32x32.png
 create mode 100644 src-ui/icons/Square107x107Logo.png
 create mode 100644 src-ui/icons/Square142x142Logo.png
 create mode 100644 src-ui/icons/Square150x150Logo.png
 create mode 100644 src-ui/icons/Square284x284Logo.png
 create mode 100644 src-ui/icons/Square30x30Logo.png
 create mode 100644 src-ui/icons/Square310x310Logo.png
 create mode 100644 src-ui/icons/Square44x44Logo.png
 create mode 100644 src-ui/icons/Square71x71Logo.png
 create mode 100644 src-ui/icons/Square89x89Logo.png
 create mode 100644 src-ui/icons/StoreLogo.png
 create mode 100644 src-ui/icons/icon.icns
 create mode 100644 src-ui/icons/icon.ico
 create mode 100644 src-ui/icons/icon.png
 create mode 100644 src-ui/rustfmt.toml
 create mode 100644 src-ui/src/main.rs
 create mode 100644 src-ui/tauri.conf.json

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b673156
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+node_modules
+.vscode
+lessons.json
+target
\ No newline at end of file
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7110e99..aff1224 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,13 +1,13 @@
-image: alpine:latest
-
-pages:
-  stage: deploy
-  script:
-  - echo 'Nothing to do...'
-  artifacts:
-    paths:
-    - public
-  only:
-  - master
-  tags:
-  - pages
+image: alpine:latest
+
+pages:
+  stage: deploy
+  script:
+    - echo 'Hello'
+  artifacts:
+    paths:
+      - docs
+  only:
+    - master
+  tags:
+    - pages
diff --git a/README.md b/README.md
index 0a36586..4fe0886 100644
--- a/README.md
+++ b/README.md
@@ -1,67 +1,17 @@
-![Build Status](https://gitlab.com/pages/plain-html/badges/master/build.svg)
-
----
-
-Example plain HTML site using GitLab Pages.
-
-Learn more about GitLab Pages at https://pages.gitlab.io and the official
-documentation https://docs.gitlab.com/ce/user/project/pages/.
-
----
-
-<!-- START doctoc generated TOC please keep comment here to allow auto update -->
-<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
-**Table of Contents**  *generated with [DocToc](https://github.com/thlorenz/doctoc)*
-
-- [GitLab CI](#gitlab-ci)
-- [GitLab User or Group Pages](#gitlab-user-or-group-pages)
-- [Did you fork this project?](#did-you-fork-this-project)
-- [Troubleshooting](#troubleshooting)
-
-<!-- END doctoc generated TOC please keep comment here to allow auto update -->
-
-## GitLab CI
-
-This project's static Pages are built by [GitLab CI][ci], following the steps
-defined in [`.gitlab-ci.yml`](.gitlab-ci.yml):
-
-```
-image: alpine:latest
-
-pages:
-  stage: deploy
-  script:
-  - echo 'Nothing to do...'
-  artifacts:
-    paths:
-    - public
-  only:
-  - master
-```
-
-The above example expects to put all your HTML files in the `public/` directory.
-
-## GitLab User or Group Pages
-
-To use this project as your user/group website, you will need one additional
-step: just rename your project to `namespace.gitlab.io`, where `namespace` is
-your `username` or `groupname`. This can be done by navigating to your
-project's **Settings**.
-
-Read more about [user/group Pages][userpages] and [project Pages][projpages].
-
-## Did you fork this project?
-
-If you forked this project for your own use, please go to your project's
-**Settings** and remove the forking relationship, which won't be necessary
-unless you want to contribute back to the upstream project.
-
-## Troubleshooting
-
-1. CSS is missing! That means that you have wrongly set up the CSS URL in your
-   HTML files. Have a look at the [index.html] for an example.
-
-[ci]: https://about.gitlab.com/gitlab-ci/
-[index.html]: https://gitlab.com/pages/plain-html/blob/master/public/index.html
-[userpages]: https://docs.gitlab.com/ce/user/project/pages/introduction.html#user-or-group-pages
-[projpages]: https://docs.gitlab.com/ce/user/project/pages/introduction.html#project-pages
+# Rust Tutorial
+
+[@메인 소스 관리](https://github.com/Hi-Rust/hi-rust.github.io)
+
+자기주도프로젝트 최석원
+
+## > public
+
+결과물
+
+## > frontend
+
+프론트엔드 builder
+
+## > src-ui
+
+Windows / Mac / Linux 빌드 바이너리 builder
\ No newline at end of file
diff --git a/docs/.gitignore b/docs/.gitignore
new file mode 100644
index 0000000..84edb23
--- /dev/null
+++ b/docs/.gitignore
@@ -0,0 +1 @@
+CNAME
diff --git a/public/01_ko.html b/docs/01_ko.html
similarity index 100%
rename from public/01_ko.html
rename to docs/01_ko.html
diff --git a/public/02_ko.html b/docs/02_ko.html
similarity index 100%
rename from public/02_ko.html
rename to docs/02_ko.html
diff --git a/public/03_ko.html b/docs/03_ko.html
similarity index 100%
rename from public/03_ko.html
rename to docs/03_ko.html
diff --git a/public/04_ko.html b/docs/04_ko.html
similarity index 100%
rename from public/04_ko.html
rename to docs/04_ko.html
diff --git a/public/06_ko.html b/docs/06_ko.html
similarity index 100%
rename from public/06_ko.html
rename to docs/06_ko.html
diff --git a/public/07_ko.html b/docs/07_ko.html
similarity index 100%
rename from public/07_ko.html
rename to docs/07_ko.html
diff --git a/public/08_ko.html b/docs/08_ko.html
similarity index 100%
rename from public/08_ko.html
rename to docs/08_ko.html
diff --git a/public/09_ko.html b/docs/09_ko.html
similarity index 100%
rename from public/09_ko.html
rename to docs/09_ko.html
diff --git a/public/10_ko.html b/docs/10_ko.html
similarity index 100%
rename from public/10_ko.html
rename to docs/10_ko.html
diff --git a/public/11_ko.html b/docs/11_ko.html
similarity index 100%
rename from public/11_ko.html
rename to docs/11_ko.html
diff --git a/public/12_ko.html b/docs/12_ko.html
similarity index 100%
rename from public/12_ko.html
rename to docs/12_ko.html
diff --git a/public/13_ko.html b/docs/13_ko.html
similarity index 100%
rename from public/13_ko.html
rename to docs/13_ko.html
diff --git a/public/14_ko.html b/docs/14_ko.html
similarity index 100%
rename from public/14_ko.html
rename to docs/14_ko.html
diff --git a/public/15_ko.html b/docs/15_ko.html
similarity index 100%
rename from public/15_ko.html
rename to docs/15_ko.html
diff --git a/public/16_ko.html b/docs/16_ko.html
similarity index 100%
rename from public/16_ko.html
rename to docs/16_ko.html
diff --git a/public/TOC_ko.html b/docs/TOC_ko.html
similarity index 100%
rename from public/TOC_ko.html
rename to docs/TOC_ko.html
diff --git a/public/android-chrome-192x192.png b/docs/android-chrome-192x192.png
similarity index 100%
rename from public/android-chrome-192x192.png
rename to docs/android-chrome-192x192.png
diff --git a/public/android-chrome-512x512.png b/docs/android-chrome-512x512.png
similarity index 100%
rename from public/android-chrome-512x512.png
rename to docs/android-chrome-512x512.png
diff --git a/public/apple-touch-icon.png b/docs/apple-touch-icon.png
similarity index 100%
rename from public/apple-touch-icon.png
rename to docs/apple-touch-icon.png
diff --git a/public/chapter_1_ko.html b/docs/chapter_1_ko.html
similarity index 100%
rename from public/chapter_1_ko.html
rename to docs/chapter_1_ko.html
diff --git a/public/cover.jpg b/docs/cover.jpg
similarity index 100%
rename from public/cover.jpg
rename to docs/cover.jpg
diff --git a/public/divider-line.svg b/docs/divider-line.svg
similarity index 100%
rename from public/divider-line.svg
rename to docs/divider-line.svg
diff --git a/public/favicon-16x16.png b/docs/favicon-16x16.png
similarity index 100%
rename from public/favicon-16x16.png
rename to docs/favicon-16x16.png
diff --git a/public/favicon-32x32.png b/docs/favicon-32x32.png
similarity index 100%
rename from public/favicon-32x32.png
rename to docs/favicon-32x32.png
diff --git a/public/favicon.ico b/docs/favicon.ico
similarity index 100%
rename from public/favicon.ico
rename to docs/favicon.ico
diff --git a/public/ferris.png b/docs/ferris.png
similarity index 100%
rename from public/ferris.png
rename to docs/ferris.png
diff --git a/public/ferris_lofi.png b/docs/ferris_lofi.png
similarity index 100%
rename from public/ferris_lofi.png
rename to docs/ferris_lofi.png
diff --git a/public/index.html b/docs/index.html
similarity index 100%
rename from public/index.html
rename to docs/index.html
diff --git a/public/intro.png b/docs/intro.png
similarity index 100%
rename from public/intro.png
rename to docs/intro.png
diff --git a/public/intro.webp b/docs/intro.webp
similarity index 100%
rename from public/intro.webp
rename to docs/intro.webp
diff --git a/public/site.webmanifest b/docs/site.webmanifest
similarity index 100%
rename from public/site.webmanifest
rename to docs/site.webmanifest
diff --git a/public/sitemap.xml b/docs/sitemap.xml
similarity index 100%
rename from public/sitemap.xml
rename to docs/sitemap.xml
diff --git a/public/social.jpg b/docs/social.jpg
similarity index 100%
rename from public/social.jpg
rename to docs/social.jpg
diff --git a/public/tour.css b/docs/tour.css
similarity index 100%
rename from public/tour.css
rename to docs/tour.css
diff --git a/public/tour.js b/docs/tour.js
similarity index 71%
rename from public/tour.js
rename to docs/tour.js
index 42438da..0a7313e 100644
--- a/public/tour.js
+++ b/docs/tour.js
@@ -2,6 +2,7 @@ const setupKeys = () => {
   // Mobile swipe left/right
   let xDown = null;
   let yDown = null;
+  const swipeThreshold = 10; // swipe sensitivity
 
   const handleTouchStart = e => {
     xDown = e.touches[0].clientX;
@@ -13,30 +14,27 @@ const setupKeys = () => {
       return;
     }
 
-    const xUp = e.touches[0].clientX;
-    const yUp = e.touches[0].clientY;
+    const xDiff = xDown - e.touches[0].clientX;
+    const yDiff = yDown - e.touches[0].clientY;
 
-    const xDiff = xDown - xUp;
-    const yDiff = yDown - yUp;
+    // alert(Math.abs(xDiff));
 
-    if (Math.abs(xDiff) > Math.abs(yDiff)) {
-      if (xDiff > 0) {
-        const link = document.querySelector(".next a");
-        if (link) {
-          link.click();
-        }
-      } else {
-        const link = document.querySelector(".back a");
-        if (link) {
-          link.click();
-        }
-      }
+    if (Math.abs(xDiff) > swipeThreshold && Math.abs(xDiff) > Math.abs(yDiff)) {
+      const direction = xDiff > 0 ? "next" : "back";
+      triggerLinkClick(direction);
     }
 
     xDown = null;
     yDown = null;
   };
 
+  const triggerLinkClick = direction => {
+    const link = document.querySelector(`.${direction} a`);
+    if (link) {
+      link.click();
+    }
+  };
+
   document.addEventListener("touchstart", handleTouchStart, false);
   document.addEventListener("touchmove", handleTouchMove, false);
 
@@ -45,21 +43,17 @@ const setupKeys = () => {
     if (e.ctrlKey || e.altKey || e.metaKey || e.shiftKey) {
       return;
     }
-    let link;
     if (e.key === "Right" || e.key === "ArrowRight") {
-      link = document.querySelector(".next a");
+      triggerLinkClick("next");
     }
     if (e.key === "Left" || e.key === "ArrowLeft") {
-      link = document.querySelector(".back a");
-    }
-    if (link) {
-      link.click();
+      triggerLinkClick("back");
     }
   });
 };
 
 // in code block, should not be same
-const codeElement = document.querySelector("iframe");
+const codeElement = document.querySelector("code");
 if (codeElement) {
   setupKeys();
   codeElement.addEventListener("load", () => {
diff --git a/public/webassembly/ferris.png b/docs/webassembly/ferris.png
similarity index 100%
rename from public/webassembly/ferris.png
rename to docs/webassembly/ferris.png
diff --git a/public/webassembly/tour.css b/docs/webassembly/tour.css
similarity index 100%
rename from public/webassembly/tour.css
rename to docs/webassembly/tour.css
diff --git a/fast.py b/fast.py
new file mode 100644
index 0000000..23a7531
--- /dev/null
+++ b/fast.py
@@ -0,0 +1,20 @@
+import uvicorn
+from fastapi import FastAPI
+from fastapi.middleware.cors import CORSMiddleware
+from fastapi.staticfiles import StaticFiles
+
+app = FastAPI(title="Rust tutorial", description="Rust tutorial", version="1.0.0")
+app.add_middleware(
+    CORSMiddleware,
+    allow_origins=["*"],
+    allow_methods=["GET"],
+    allow_headers=["*"],
+    allow_credentials=True,
+)
+
+
+app.mount("/", StaticFiles(directory="public", html=True), name="static")
+
+if __name__ == "__main__":
+    # standalone
+    uvicorn.run(app, host="0.0.0.0", port=8089, log_level="info")
diff --git a/frontend/.eslintrc.js b/frontend/.eslintrc.js
new file mode 100644
index 0000000..8cd59e0
--- /dev/null
+++ b/frontend/.eslintrc.js
@@ -0,0 +1,16 @@
+module.exports = {
+  env: {
+    browser: true,
+    commonjs: true,
+    es2021: true,
+    node: true,
+  },
+  extends: [
+    'airbnb-base',
+  ],
+  parserOptions: {
+    ecmaVersion: 12,
+  },
+  rules: {
+  },
+};
diff --git a/frontend/.gitignore b/frontend/.gitignore
new file mode 100644
index 0000000..c4786b9
--- /dev/null
+++ b/frontend/.gitignore
@@ -0,0 +1,5 @@
+lessons.json
+docs/*.html
+node_modules
+.vscode
+node_modules
\ No newline at end of file
diff --git a/frontend/Dockerfile b/frontend/Dockerfile
new file mode 100644
index 0000000..60eec85
--- /dev/null
+++ b/frontend/Dockerfile
@@ -0,0 +1,39 @@
+# Use a smaller base image
+FROM node:alpine as base
+
+RUN apk --no-cache add pkgconfig autoconf automake libtool nasm build-base zlib-dev
+
+# Set the working directory to /app
+WORKDIR /app
+
+# Copy package.json and yarn.lock files to the container
+COPY package.json yarn.lock ./
+
+# Install dependencies
+RUN yarn install --production && \
+    yarn cache clean
+
+# Use a separate build stage to compile the application
+FROM base as build
+
+# Copy the rest of the application files to the container
+COPY . .
+
+# Build the application
+RUN npm run build && \
+    npm prune --production 
+
+# Use a minimal base image for the final image
+FROM node:alpine
+
+# Set the working directory to /app
+WORKDIR /app
+
+# Copy the application files from the build stage to the final image
+COPY --from=build /app .
+
+# Expose port 8089 for the application
+EXPOSE 8089
+
+# Start the application when the container starts
+CMD ["npm", "run", "serve"]
diff --git a/frontend/Makefile b/frontend/Makefile
new file mode 100644
index 0000000..58e5d36
--- /dev/null
+++ b/frontend/Makefile
@@ -0,0 +1,24 @@
+serve: clean
+	@node generate.js lessons docs beta
+	@node generate.js wasm docs/webassembly beta
+	@cd docs && python3 -m http.server 8080
+test: clean
+	@node generate.js lessons docs
+	@node generate.js wasm docs/webassembly
+	@cd docs && python3 -m http.server 8080
+publish: clean
+	git branch -D gh-pages
+	git checkout -b gh-pages
+	@node generate.js lessons docs
+	@node generate.js wasm docs/webassembly
+	mv docs/* .
+	git add . || true
+	git commit -m 'generating new html' || true
+	git push -f origin gh-pages || true
+	git checkout master
+lint:
+	#prettier --write lessons/*/*.yaml
+	#prettier --write wasm/*/*.yaml
+clean:
+	@rm docs/*.html 2> /dev/null || true
+	@rm docs/webassembly/*.html 2> /dev/null || true
diff --git a/frontend/README.md b/frontend/README.md
new file mode 100644
index 0000000..22d1f2f
--- /dev/null
+++ b/frontend/README.md
@@ -0,0 +1,3 @@
+# Rust Tutorial Frontend
+
+자기주도프로젝트 최석원
\ No newline at end of file
diff --git a/frontend/generate.js b/frontend/generate.js
new file mode 100644
index 0000000..27ca4bc
--- /dev/null
+++ b/frontend/generate.js
@@ -0,0 +1,352 @@
+const showdown = require("showdown");
+const fs = require("fs");
+const yaml = require("js-yaml");
+
+const lessonSource = process.argv[2];
+const targetDir = process.argv[3];
+
+/**
+ * @param {number} num
+ * @returns {string}
+ */
+function pad(num) {
+  const s = `${num}`;
+  return s.padStart(2, "0");
+}
+
+/**
+ * @param {string} lang
+ * @param {number} i
+ * @param {boolean} isBeta currently unused
+ * @param {string} chapter
+ * @returns {string}
+ */
+function getFileName(lang, i, isBeta, chapter) {
+  if (i === 0 && lang === "ko") {
+    return "index.html";
+  }
+  // let fileName = `${pad(i)}_${lang}.html`;
+  let fileName = `${pad(i)}_${lang}.html`;
+  if (chapter !== undefined && chapter !== null) {
+    fileName = `chapter_${chapter}_${lang}.html`;
+  }
+  return fileName;
+}
+
+/**
+ * @param {string} source
+ * @returns {string[]}
+ */
+const getDirectories = source =>
+  fs
+    .readdirSync(source, { withFileTypes: true })
+    .filter(dirent => dirent.isDirectory())
+    .map(dirent => dirent.name);
+
+/**
+ * @param {string} path
+ * @returns {any}
+ */
+const getYaml = path => yaml.load(fs.readFileSync(path));
+
+const languages = getDirectories(lessonSource);
+const commonWords = {};
+const chapters = [];
+
+languages.forEach(lang => {
+  //   const lang = languages[x];
+  const langDir = `${lessonSource}/${lang}`;
+  commonWords[lang] = getYaml(`${langDir}/common_words.yaml`);
+  const languageFiles = fs
+    .readdirSync(langDir, { withFileTypes: true })
+    .filter(f => f.isFile() && f.name.indexOf("chapter_") === 0)
+    .map(f => f.name);
+  languageFiles.forEach(l => {
+    const chap = parseInt(l.substring(8, l.indexOf(".")), 10);
+    if (chapters[chap] === undefined) {
+      chapters[chap] = {};
+    }
+    chapters[chap][lang] = getYaml(`${langDir}/${l}`);
+  });
+});
+
+const pages = [];
+
+chapters.forEach((c, x) => {
+  for (let i = 0; i < c.ko.length; i += 1) {
+    const page = {};
+    if (i === 0 && x !== 0) {
+      page.chapter = x;
+    }
+    Object.keys(c).forEach(lang => {
+      page[lang] = c[lang][i];
+    });
+    pages.push(page);
+  }
+});
+
+const lessons = {
+  common_words: commonWords,
+  pages,
+};
+
+const converter = new showdown.Converter();
+
+/**
+ * @param {string[]} words
+ * @param {string} lang
+ * @param {string} w
+ * @returns {string}
+ */
+function getWord(words, lang, w) {
+  if (words[lang][w]) {
+    return words[lang][w];
+  }
+  return words.ko[w];
+}
+
+/**
+ *
+ * @param {string[]} words
+ * @param {string} lang
+ * @returns {string}
+ */
+const getHead = (words, lang) => `<!DOCTYPE html>
+    <html lang="${lang}">
+    <head>
+        <title>Rust 튜토리얼 - 자기주도프로젝트</title>
+
+        <meta charset="UTF-8">
+        <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
+        <meta content="utf-8" http-equiv="encoding">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0">
+        <meta name="keywords" content="Rust, Programming, Learning">
+        <meta name="description" content="Rust tutorial website based on tour_of_rust">
+        <meta name="theme-color" content="#ff6801"/>
+        <meta http-equiv="Cache-Control" content="max-age=3600">
+        
+        <link rel="stylesheet" href="tour.css">
+        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/night-owl.min.css">
+        <script src="//unpkg.com/@highlightjs/cdn-assets@11.7.0/highlight.min.js"></script>
+
+        <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
+        <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
+        <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
+        <link rel="manifest" href="./site.webmanifest">
+
+        <script src="./tour.js" defer></script>
+        <script>hljs.highlightAll();</script>
+    </head>`;
+
+/**
+ * @param {Array} lessons
+ * @param {string} lang
+ * @param {string} title
+ * @param {string} code
+ * @param {string} content
+ * @param {number} index
+ * @param {boolean} isLast
+ * @param {string[]} words
+ * @param {boolean} isBeta
+ * @returns
+ */
+function template(
+  lessonsData,
+  lang,
+  title,
+  code,
+  content,
+  index,
+  isLast,
+  words,
+  isBeta
+) {
+  return `${getHead(words, lang)}
+    <body>
+        <div class="tour">
+            <div class="header">
+                <span class="title"><a href="${getFileName(
+                  lang,
+                  0,
+                  isBeta,
+                  lessonsData[0]?.chapter
+                )}">${getWord(words, lang, "tor")}</a></span>
+                <span class="nav">
+                <span class="toc"><a href="TOC_${lang}.html">${getWord(
+    words,
+    lang,
+    "toc"
+  )}</a></span>
+            </div>
+            <div class="page">
+            <h1>${title}</h1>
+            ${content}
+            <div class="bottomnav">
+                ${
+                  index !== 0
+                    ? `<span class="back"><a href="${
+                        isBeta ? "beta_" : ""
+                      }${getFileName(
+                        lang,
+                        index - 1,
+                        isBeta,
+                        lessonsData[index - 1]?.chapter
+                      )}" rel="prev">❮ ${getWord(
+                        words,
+                        lang,
+                        "previous"
+                      )}</a></span>`
+                    : ""
+                }
+                ${
+                  isLast
+                    ? ""
+                    : `<span class="next"><a href="${
+                        isBeta ? "beta_" : ""
+                      }${getFileName(
+                        lang,
+                        index + 1,
+                        isBeta,
+                        lessonsData[index + 1]?.chapter
+                      )}" rel="next">${getWord(
+                        words,
+                        lang,
+                        "next"
+                      )} ❯</a></span>`
+                }
+            </div>
+            </div>
+            ${
+              code
+                ? `<div class="code">
+            <iframe id="rust-playground" width="100%" src="${code}" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe>
+            </div>`
+                : '<div class="code"><center><img src="/ferris_lofi.png" alt="Mascot Ferris" width="300" height="236"></center></div>'
+            }
+        </div>
+        <!-- <script>
+          document.addEventListener("DOMContentLoaded", function() {
+            // Select the widget's text element using its XPath
+            const xpath = '/html/body/main/div/div/div[1]/div[1]/div/button[1]/div';
+            const widgetText = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
+
+            // Change the text content of the element
+            widgetText.textContent = "New Text";
+          });
+        </script> -->
+    </body>
+</html>`;
+}
+
+languages.forEach(lang => {
+  let c = 0;
+  const words = lessons.common_words;
+  const langLessons = lessons.pages.filter(x => {
+    return true;
+  });
+  const betaLessons = lessons.pages.filter(() => true);
+
+  langLessons.forEach((lesson, i) => {
+    let fileName = getFileName(lang, i, false, lesson?.chapter);
+    if (i === 0 && lang === "ko") {
+      fileName = "index.html";
+    }
+
+    let lessonTitle = `[${getWord(words, lang, "untranslated")}] ${
+      lesson.ko.title
+    }`;
+    let lessonContent = converter.makeHtml(lesson.ko.content_markdown);
+    let lessonCode = lesson.ko.code;
+    if (lesson[lang]) {
+      let targetLang = lang;
+      if (lesson[lang].clone) {
+        targetLang = lesson[lang].clone;
+      }
+      lessonTitle = lesson[targetLang].title;
+
+      let content = lesson[targetLang].content_html;
+      if (!content) {
+        content = converter.makeHtml(lesson[targetLang].content_markdown);
+      }
+      lessonContent = content;
+      lessonCode = lesson[targetLang].code || lesson.ko.code;
+
+      if (lesson[lang].clone) {
+        if (lesson[lang].code) {
+          lessonCode = lesson[lang].code;
+        }
+      }
+    }
+
+    fs.writeFileSync(
+      `${targetDir}/${fileName}`,
+      template(
+        langLessons,
+        lang,
+        lessonTitle,
+        lessonCode,
+        lessonContent,
+        c,
+        i === langLessons.length - 1,
+        words,
+        false
+      )
+    );
+    c += 1;
+  });
+
+  const fileName = `TOC_${lang}.html`;
+  fs.writeFileSync(
+    `${targetDir}/${fileName}`,
+    `${getHead(words, lang)}
+    <body>
+        <div class="tour">
+            <div class="header">
+                <span class="title"><a href="${getFileName(lang, 0)}">${getWord(
+      words,
+      lang,
+      "tor"
+    )}</a></span>
+                <span class="nav">
+                </span>
+            </div>
+            <div>
+            <h1>${getWord(words, lang, "lessons")}</h1>
+            <ul>
+        ${langLessons
+          .map((x, i) => {
+            let targetLang = lang;
+            if (x[lang] && x[lang].clone) {
+              targetLang = x[lang].clone;
+            }
+            let s = `<li><a href="${getFileName(lang, i, false, x.chapter)}">${
+              x[targetLang]
+                ? x[targetLang].title
+                : `[${getWord(words, targetLang, "untranslated")}] ${
+                    x.ko.title
+                  }`
+            }</a></li>`;
+            if (x.chapter !== undefined) {
+              s = `</ul><h3><a href="${getFileName(
+                lang,
+                i,
+                false,
+                x.chapter
+              )}">${
+                x[targetLang]
+                  ? x[targetLang].title
+                  : `[${getWord(words, targetLang, "untranslated")}] ${
+                      x.ko.title
+                    }`
+              }</a></h3><ul>`;
+            }
+            return s;
+          })
+          .join("\n")}
+            </ul>
+            </div>
+        </div>
+    </body>
+    </html>`
+  );
+});
diff --git a/frontend/lessons/README.md b/frontend/lessons/README.md
new file mode 100644
index 0000000..e59c1c7
--- /dev/null
+++ b/frontend/lessons/README.md
@@ -0,0 +1,4 @@
+## 챕터
+
+| Chapter | 0   | 1   | 2   | 3   | 4   | 5   | 6   | 7   | 8   | 9   | 10  |
+| ------- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
diff --git a/frontend/lessons/ko/chapter_0.yaml b/frontend/lessons/ko/chapter_0.yaml
new file mode 100644
index 0000000..660fbc4
--- /dev/null
+++ b/frontend/lessons/ko/chapter_0.yaml
@@ -0,0 +1,168 @@
+- title: >-
+    Hello World!
+  code: >-
+    https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=%2F%2F%20C-family%20%EC%96%B8%EC%96%B4%2C%20%EB%A9%94%EC%9D%B8%20%ED%95%A8%EC%88%98%EC%97%90%EC%84%9C%20%EC%8B%9C%EC%9E%91%ED%95%A8%0Afn%20main()%20%7B%0A%20%20%20%20println!(%22Hello%20%EB%9F%AC%EC%8A%A4%ED%8A%B8%F0%9F%A6%80%22)%3B%20%2F%2F%20%EC%A3%BC%EC%84%9D%0A%7D%0A
+  content_markdown: |
+    <img src="/intro.webp" alt="Welcome to Rust" style="width: 100%; margin-bottom: 20px; border-radius: 10px;">
+
+    Mirror 1: [http://rust-study.ajousw.kr/](http://rust-study.ajousw.kr/index.html)
+
+    Mirror 2: [https://hi-rust.github.io/](https://hi-rust.github.io/index.html)
+
+    Binary: [Windows](https://github.com/Alfex4936/Rust-Tutorial/releases/download/v1.0.0/Rust.Tutorial_1.0.0_x64_Windows.msi) | [Mac](https://) | [Linux](https://) - TODO
+
+
+    **자기주도프로젝트 🎉**
+
+    안녕하세요. 자기주도프로젝트 Rust 튜토리얼 영상을 위한 웹사이트입니다.
+
+    `프로그래밍 기초 지식이 있는 분들을 타겟`으로 만들었습니다. (C & Python)
+
+    키보드 <span class="emoji">⬅️</span>/<span class="emoji">➡️</span> 버튼으로 페이지를 이동할 수 있습니다.
+
+    질문이 있다면 <code>ikr@kakao.com</code> 로 메일 남겨주세요.
+
+    - Rust 언어 소개
+    - Rust 언어 기본 문법
+    - Rust 언어 고급 (비동기, Unsafe, 매크로 등)
+    - Rust 언어 간단한 유저 라이브러리 제작 및 업로드
+    - Rust 언어로 Python 언어 라이브러리 제작
+    - Rust 언어 웹 프레임워크를 이용한 카카오톡 챗봇 서버 제작
+- title: >-
+    Rust 언어 소개
+  code: >-
+    https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=fn+main%28%29+%7B%0A++++%2F%2F+%EC%83%81%ED%99%A9%3A+%EC%86%8C%EC%9C%A0%EA%B6%8C+%EC%9D%B4%EC%A0%84%ED%95%98%EA%B8%B0%0A++++let+mut+x+%3D+String%3A%3Afrom%28%22hello%22%29%3B%0A++++let+y+%3D+x%3B+%2F%2F+x%EC%9D%98+%EC%86%8C%EC%9C%A0%EA%B6%8C%EC%9D%B4+y%EB%A1%9C+%EC%9D%B4%EC%A0%84%EB%90%A8%0A++++println%21%28%22%7B%7D%22%2C+y%29%3B+%2F%2F+%EA%B2%B0%EA%B3%BC%3A+hello%0A+++++++++++++++++++++++%2F%2F+println%21%28%22%7B%7D%22%2C+x%29%3B+%2F%2F+%EC%98%A4%EB%A5%98%3A+%60x%60%EC%9D%98+%EC%86%8C%EC%9C%A0%EA%B6%8C%EC%9D%B4+y%EB%A1%9C+%EC%9D%B4%EC%A0%84%EB%90%98%EC%96%B4+%EB%8D%94+%EC%9D%B4%EC%83%81+%EC%82%AC%EC%9A%A9%ED%95%A0+%EC%88%98+%EC%97%86%EC%9D%8C%0A%0A++++%2F%2F+%EC%83%81%ED%99%A9%3A+%EB%8C%80%EC%97%AC%ED%95%98%EA%B8%B0%0A++++let+v+%3D+vec%21%5B1%2C+2%2C+3%5D%3B%0A++++let+s+%3D+sum%28%26v%29%3B+%2F%2F+v%EB%A5%BC+%EB%B6%88%EB%B3%80%EC%9C%BC%EB%A1%9C+%EB%8C%80%EC%97%AC%ED%95%98%EA%B3%A0+%ED%95%A9%EA%B3%84%EB%A5%BC+%EA%B5%AC%ED%95%9C%EB%8B%A4.%0A++++println%21%28%22%7B%7D%22%2C+s%29%3B+%2F%2F+%EA%B2%B0%EA%B3%BC%3A+6%0A%0A++++let+k+%3D+v%3B%0A++++%2F%2F+println%21%28%22%7B%3A%23%3F%7D%22%2C+v%29%3B+%2F%2F+error%5BE0382%5D%3A+borrow+of+moved+value%3A+%60v%60%0A%7D%0A%0Afn+sum%28v%3A+%26Vec%3Ci32%3E%29+-%3E+i32+%7B%0A++++let+mut+result+%3D+0%3B%0A++++for+i+in+v+%7B%0A++++++++result+%2B%3D+*i%3B%0A++++%7D%0A++++result%0A%7D%0A
+  content_markdown: |
+    <div align="center">
+    <p>
+        <img src="https://user-images.githubusercontent.com/2356749/223437049-ef50db6b-1ba4-4087-b67f-efeca5569201.png" alt="Rust logo" style="width: 20%; margin-bottom: 20px; border-radius: 10px;">
+    </p>
+    <h3>Rust official logo</h3>
+    </div>
+
+    > I burnt out; ran out of emotional energy to be effective in my role as technical lead for the project mid way through 2013 (at the tail end of my divorce, and while recovering from a surgery -- not a great time in my life), so I took a break, switched off the Rust team - Graydon Hoare
+
+    Rust는 Firefox 브라우저로 유명한 Mozilla의 개발자 [Graydon Hoare에 의해 2006년](https://arxiv.org/pdf/2206.05503&ved=2ahUKEwjT9o-23NX9AhVw5XMBHYQQB74QFnoECBwQAQ&usg=AOvVaw1uVD6znXuafpUqPN3jkm9C)에 첫 시작된 <s>지금은 Swift 언어 기여자</s>
+
+    안전하고 빠른 시스템 개발을 위한 언어로, 다음과 같은 이유에서 다양한 분야에서 점점 더 많이 사용:
+
+    <div align="center">
+    <p>
+        <img src="https://user-images.githubusercontent.com/2356749/224587883-afa83e65-f531-46d4-9580-c341052a0981.png">
+    </p>
+    <h3>소유권 및 빌리기 예제</h3>
+    </div>
+
+    - <b>안전성</b>: 메모리 안정성과 스레드 안전성을 강조하는 언어, Rust 컴파일러는 실행 시간 오류를 줄이기 위해 메모리 오류를 검출하고, 이를 방지하기 위해 안전한 코드를 작성할 수 있도록 도움
+    - <b>높은 성능</b>: 꽤 많은 경우에서 C와 비슷한 수준의 성능을 낼 수도 있음, LLVM을 사용하여 코드를 컴파일하고 최적화하여 빠른 실행 속도를 제공
+    - <b>확장성</b>: 다양한 운영 체제와 아키텍처를 지원, 크로스 플랫폼 개발에 적합하며, 다양한 분야에서 사용
+    - <b>생산성</b>: 코드의 가독성을 강조하며, 표준 라이브러리와 함께 제공되는 Cargo를 통해 의존성 관리와 빌드 자동화를 지원
+    - <b>지속 가능성</b>: 대형 기업들이 개발하고 사용하고 있으며, 다양한 커뮤니티와 생태계가 활발하게 운영
+
+    <div align="center">
+    <p>
+        <img src="https://user-images.githubusercontent.com/2356749/224588206-b98317ef-be24-450e-b825-cc98bf7984bb.png">
+    </p>
+    <h3>CPU time 벤치마크</h3>
+    </div>
+- title: >-
+    Rust 언어 소개 cont'd
+  code: >-
+    https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=%23!%5Ballow(dead_code)%5D%0A%0A%2F%2F%20%EC%84%9C%EB%A1%9C%20%EB%8B%A4%EB%A5%B8%20%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84%EC%9D%84%20%EA%B0%80%EC%A7%84%20%EB%91%90%20%EA%B0%9C%EC%9D%98%20%EC%B0%B8%EC%A1%B0%EB%A5%BC%20%ED%8F%AC%ED%95%A8%ED%95%98%EB%8A%94%20%EA%B5%AC%EC%A1%B0%EC%B2%B4%0Astruct%20Foo%3C'a%2C%20'b%3E%20%7B%0A%20%20%20%20x%3A%20%26'a%20i32%2C%0A%20%20%20%20y%3A%20%26'b%20i32%2C%0A%7D%0A%0A%2F%2F%20Foo%20%EA%B5%AC%EC%A1%B0%EC%B2%B4%EB%A5%BC%20%EA%B0%80%EC%A0%B8%EC%99%80%EC%84%9C%20x%EC%99%80%20%EB%8F%99%EC%9D%BC%ED%95%9C%20%EB%9D%BC%EC%9D%B4%ED%94%84%20%ED%83%80%EC%9E%84%EC%9D%84%20%EA%B0%80%EC%A7%84%20%EC%B0%B8%EC%A1%B0%EB%A5%BC%20%EB%B0%98%ED%99%98%ED%95%98%EB%8A%94%20%ED%95%A8%EC%88%98%0Afn%20get_x%3C'a%2C%20'b%3E(foo%3A%20%26Foo%3C'a%2C%20'b%3E)%20-%3E%20%26'a%20i32%20%7B%0A%20%20%20%20foo.x%0A%7D%0A%0A%2F%2F%20%EC%9B%90%EC%8B%9C%20%ED%8F%AC%EC%9D%B8%ED%84%B0%EB%A5%BC%20%EA%B0%80%EC%A0%B8%EC%99%80%20%EC%9E%84%EC%9D%98%EC%9D%98%20%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84%EC%9D%84%20%EA%B0%80%EC%A7%84%20%EC%B0%B8%EC%A1%B0%EB%A5%BC%20%EB%B0%98%ED%99%98%ED%95%98%EB%8A%94%20unsafe%20%ED%95%A8%EC%88%98%0Aunsafe%20fn%20deref_raw%3C'a%3E(ptr%3A%20*const%20i32)%20-%3E%20%26'a%20i32%20%7B%0A%20%20%20%20%26*ptr%20%2F%2F%20dereference%20raw%20pointer%0A%7D%0A%0Afn%20main()%20%7B%0A%20%20%20%20let%20x%20%3D%2010%3B%0A%20%20%20%20let%20y%20%3D%2020%3B%0A%0A%20%20%20%20%2F%2F%20x%EC%99%80%20y%EC%97%90%20%EB%8C%80%ED%95%9C%20%EC%B0%B8%EC%A1%B0%EB%A5%BC%20%ED%8F%AC%ED%95%A8%ED%95%98%EB%8A%94%20Foo%20%EA%B5%AC%EC%A1%B0%EC%B2%B4%20%EB%A7%8C%EB%93%A4%EA%B8%B0%0A%20%20%20%20let%20foo%20%3D%20Foo%20%7B%20x%3A%20%26x%2C%20y%3A%20%26y%20%7D%3B%0A%0A%20%20%20%20%2F%2F%20get_x%20%ED%98%B8%EC%B6%9C%ED%95%98%EB%A9%B4%EC%84%9C%20foo.x%EC%99%80%20%EB%8F%99%EC%9D%BC%ED%95%9C%20%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84%EC%9D%84%20%EA%B0%80%EC%A7%84%20x%EC%97%90%20%EB%8C%80%ED%95%9C%20%EC%B0%B8%EC%A1%B0%20%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0%0A%20%20%20%20let%20r1%20%3D%20get_x(%26foo)%3B%0A%0A%20%20%20%20%2F%2F%20r1%EC%97%90%EC%84%9C%20%EC%9B%90%EC%8B%9C(raw)%20%ED%8F%AC%EC%9D%B8%ED%84%B0%20%EB%A7%8C%EB%93%A4%EA%B8%B0%0A%20%20%20%20let%20ptr%20%3D%20r1%20as%20*const%20i32%3B%0A%0A%20%20%20%20%2F%2F%20deref_raw%20%ED%98%B8%EC%B6%9C%ED%95%B4%EC%84%9C%20%EC%9E%84%EC%9D%98%EC%9D%98%20%EB%9D%BC%EC%9D%B4%ED%94%84%ED%83%80%EC%9E%84%20'a%EB%A5%BC%20%EA%B0%80%EC%A7%84%20r1%EC%97%90%20%EB%8C%80%ED%95%9C%20%EC%B0%B8%EC%A1%B0%20%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0%0A%20%20%20%20let%20r2%20%3D%20unsafe%20%7B%20deref_raw(ptr)%20%7D%3B%0A%0A%20%20%20%20%2F%2F%20r1%EA%B3%BC%20r2%EC%9D%98%20%EA%B0%92%EC%9D%84%20%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0%0A%20%20%20%20println!(%22r1%20%3D%20%7B%7D%2C%20r2%20%3D%20%7B%7D%22%2C%20r1%2C%20r2)%3B%20%20%2F%2F%20r1%20%3D%2010%2C%20r2%20%3D%2010%0A%7D%0A
+  content_markdown: |
+    <div align="center">
+    <p>
+        <img src="https://user-images.githubusercontent.com/2356749/223428889-67c3ad26-41e4-4469-b008-ec2c0b493e42.png">
+    </p>
+    <h3>Stackoverflow survey @ 2022</h3>
+    </div>
+
+    2022년 Stack Overflow 개발자 설문조사 기준으로 Rust는 "가장 사랑받는 언어" 부문에서 `7년 연속`으로 1위를 차지할 정도입니다.
+
+    실제 예로 IT 대기업들 Facebook, Google, Mozilla 등이 Rust를 사용하고 있습니다.
+
+    - `Facebook`은 Rust를 기반으로 하는 Libra, 디지털 자산을 위한 글로벌 금융 시스템을 구축하는 것을 목표 블록체인 프로젝트를 진행, HHVM, API etc
+    - `Google`은 안드로이드 운영 체제의 새로운 버전에 Rust를 도입, crosvm, Fuchsia OS, etc
+    - `Discord`, Discord의 크로스 플랫폼 클라이언트 애플리케이션인 Discord Desktop은 Rust로 작성된 인터페이스 레이어로 구성, Discord Desktop의 인터페이스 레이어는 Chromium Embedded Framework (CEF)을 사용하며, Rust 코드는 CEF의 C++ 래퍼에서 호출됨. 또한 대규모 분산 시스템 처리에 쓰임
+    - `Mozilla`는 Firefox 브라우저의 일부를 Rust로 작성하여 메모리 안정성을 강화했으며, Rust를 사용하여 Servo라는 웹 렌더링 엔진을 개발, 또한 Rust로 작성된 Cranelift 프로젝트를 통해 LLVM 대체를 위한 컴파일러 및 라이브러리를 제공, 또한 Mozilla의 모바일 운영 체제인 Firefox OS에서 Rust를 사용하는 것도 고려
+    - `Linux`, C언어만 좋아하는 linus torvald가 linux kernel 6.1부터 공식 지원 언어로 추가
+    - `Amazon`, Bottlerocket 운영 체제와 AWS 니트로 시스템, etc 
+    - `Dropbox`, 클라우드 스토리지 회사인 드롭박스는 Rust를 사용하여 안전하고 효율적인 파일 검색 및 동기화 엔진을 구축 (exa byte storage)
+
+    <div align="center">
+    <p>
+        <img src="https://user-images.githubusercontent.com/2356749/223660836-5a3dd239-4ddb-432b-9a4a-2e6ac90816ee.png">
+    </p>
+    </div>
+
+    이제 Rust 팬처럼만 이야기 하지 말고 Rust 언어가 전체적으로 어떻게 작동하는지 자세히 알아보겠습니다.
+
+    ---
+
+    `Rust`는 메모리 안정성, 스레드 안전성, 코드 가독성 등을 강조하는 언어입니다.
+
+    `가비지 컬렉션이나 런타임 오버헤드 없이` 메모리를 안전하게 보호할 수 있어 최신 컴퓨팅에서 매우 유용합니다.
+
+    이러한 기능 덕분에 Rust는 빠르고 안정적이며 효율적인 소프트웨어를 작성하는 데 완벽한 언어입니다.
+
+    객체 지향 프로그래밍을 지원하지만, 이를 구현하는 방식이 다릅니다.
+
+    "트레잇(trait)"이라는 개념을 사용하여 `객체 지향 프로그래밍`을 구현하고 `연산자 오버로딩을 지원`하며, 이를 통해 객체 지향적인 코드를 작성할 수 있습니다.
+
+    `암묵적인 타입 변환`을 지원하지 않습니다. Rust에서는 `C와 직접적으로 상호작용`할 수 있는 Foreign Function Interface(FFI)가 제공됩니다.
+
+    Rust는 LLVM(컴파일러 인프라스트럭처) 프로젝트의 일부로 개발되어 `LLVM`을 사용하여 코드를 컴파일하고 최적화하여 빠른 실행 속도를 제공합니다.
+
+    Rust는 또한 npm처럼 `패키지 매니저 Cargo`를 내장해 의존성 관리와 빌드 자동화를 지원합니다.
+
+    <div align="center">
+    <p>
+        <img src="https://doc.rust-lang.org/cargo/images/Cargo-Logo-Small.png">
+    </p>
+    </div>
+- title: >-
+    Rust 언어 설치
+  code: >-
+    https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=curl%20--proto%20'%3Dhttps'%20--tlsv1.2%20-sSf%20https%3A%2F%2Fsh.rustup.rs%20%7C%20sh
+  content_markdown: |
+    [https://rustup.rs/](https://rustup.rs/)
+
+    [`Microsoft C++ Build Tools`](https://visualstudio.microsoft.com/ko/visual-cpp-build-tools/)
+
+    [@Link](https://www.rust-lang.org/tools/install)
+
+    <div align="center">
+    <p>
+        <img src="https://user-images.githubusercontent.com/2356749/223654372-637cbfd5-06f3-4c20-b97c-aefcdbbdafe6.png">
+    </p>
+    </div>
+
+    <div align="center">
+    <p>
+        <img src="https://user-images.githubusercontent.com/2356749/223654483-ba1db2fa-cc6b-4104-93ca-456852d2b4e5.png">
+    </p>
+    </div>
+- title: >-
+    Chapter 0 - 마무리
+  content_markdown: |
+    Rust 소스코드는 `.rs` 확장자를 가집니다.
+
+    ```rust
+    fn main() {
+        println!("Hello, world!");
+    }
+    ```
+
+    위 코드는 가장 간단한 Rust 프로그램입니다.
+
+    main 함수를 정의하고, println! 매크로를 사용하여 "Hello, world!"를 출력하도록 되어 있습니다.
+
+    위 코드를 hello.rs라는 이름으로 저장한 뒤, 터미널에서 다음과 같은 명령어를 입력해보세요.
+
+    ```bash
+    $ rustc hello.rs
+    $ ./hello
+    $ Hello, world! (stdout)
+    ```
+
+    `Google evcxr` - [Rust REPL](https://github.com/evcxr/evcxr)
diff --git a/frontend/lessons/ko/chapter_1.yaml b/frontend/lessons/ko/chapter_1.yaml
new file mode 100644
index 0000000..b0c2359
--- /dev/null
+++ b/frontend/lessons/ko/chapter_1.yaml
@@ -0,0 +1,224 @@
+- title: Chapter 1 - The Basics
+  content_markdown: >
+    무슨 언어를 배우든 똑같이 기본부터 살펴보겠습니다. (변수, 함수, 클래스 등)
+
+
+    Rust 언어 비공식이지만 거의 흔하게 쓰이는 마스코트, 게(crab)의 이름은 **Ferris** 입니다.
+
+
+    <pre><code>let ferris = crab!()</code></pre>
+
+
+    또한 Rust를 사용하거나, 기여하거나 관심이 있는 사람들을 **Rustacean**[러스테이션] 라고 부릅니다.
+- title: The Rust Playground
+  code: >-
+    https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20main()%20%7B%0A%20%20%20%20println!(%22Welcome%20to%20the%20playground!%20You%20can%20modify%20the%20code%20in%20here.%22)%3B%0A%7D%0A
+  content_markdown: >
+    이 웹사이트에서는 [Rust
+    Playground](https://play.rust-lang.org) 를 사용하여 온라인에서 직접 실행해 볼 수 있습니다.
+
+
+    우측에서 보다시피 <code>println()</code>도 아닌 <code>println!()</code> 와 같은 코드를 사용하여 stdout에 출력하는 것을 볼 수 있습니다.
+
+
+    `!` 이것은 매크로 (Macro)라는 Rust 언어의 특별한 기능 중 하나인데 우선은 생김새만 알고 나중에 뭔지 알아보겠습니다.
+
+
+    Rust 언어는 쉽게 작성할 수 있도록 (syntactic sugar) 도와주지만 사실은 컴파일러가 아래처럼 처리합니다.
+
+
+    (`cargo inspect` 명령어)
+
+
+    <pre><code class="rust">#![feature(prelude_import)]
+
+
+    #[prelude_import]
+
+    use std::prelude::rust_2018::*;
+
+
+    #[macro_use]
+
+    extern crate std;
+
+
+    fn main() {
+        {
+            ::std::io::_print(format_args!("Welcome to the playground! You can modify the code in here.\n"));
+        };
+    }
+    </code></pre>
+
+- title: 변수
+  code: >-
+    https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&code=fn%20main()%20%7B%0A%20%20%20%20%2F%2F%20let%20%ED%82%A4%EC%9B%8C%EB%93%9C%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%B3%80%EC%88%98%EB%A5%BC%20%EC%84%A0%EC%96%B8%ED%95%A9%EB%8B%88%EB%8B%A4.%0A%20%20%20%20let%20x%20%3D%205%3B%20%2F%2F%20x%EC%97%90%205%EB%9D%BC%EB%8A%94%20%EA%B0%92%EC%9D%84%20%ED%95%A0%EB%8B%B9%ED%95%A9%EB%8B%88%EB%8B%A4.%0A%20%20%20%20let%20y%3A%20f32%20%3D%203.14%3B%20%2F%2F%20y%EC%97%90%203.14%EB%9D%BC%EB%8A%94%20%EA%B0%92%EC%9D%84%20%ED%95%A0%EB%8B%B9%ED%95%98%EB%A9%B0%2C%20f32%20%ED%83%80%EC%9E%85%EC%9D%84%20%EB%AA%85%EC%8B%9C%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EC%A7%80%EC%A0%95%ED%95%A9%EB%8B%88%EB%8B%A4.%0A%0A%20%20%20%20%2F%2F%20Rust%EB%8A%94%20%EB%8C%80%EB%B6%80%EB%B6%84%EC%9D%98%20%EA%B2%BD%EC%9A%B0%20%EB%B3%80%EC%88%98%EC%9D%98%20%ED%83%80%EC%9E%85%EC%9D%84%20%EC%B6%94%EB%A1%A0%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%0A%20%20%20%20%2F%2F%20%EB%A7%8C%EC%95%BD%20%ED%83%80%EC%9E%85%EC%9D%84%20%EB%AA%85%EC%8B%9C%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EC%A7%80%EC%A0%95%ED%95%98%EA%B3%A0%20%EC%8B%B6%EB%8B%A4%EB%A9%B4%20%EB%8B%A4%EC%9D%8C%EA%B3%BC%20%EA%B0%99%EC%9D%B4%20%EC%9E%91%EC%84%B1%ED%95%A9%EB%8B%88%EB%8B%A4.%0A%20%20%20%20let%20z%3A%20i64%20%3D%20100%3B%0A%0A%20%20%20%20%2F%2F%20%EB%B3%80%EC%88%98%EC%9D%98%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%EC%97%AC%EB%9F%AC%20%EB%B2%88%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EA%B0%92%EC%9D%84%20%ED%95%A0%EB%8B%B9%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%0A%20%20%20%20let%20mut%20count%20%3D%200%3B%0A%20%20%20%20count%20%3D%201%3B%0A%20%20%20%20count%20%3D%202%3B%0A%0A%20%20%20%20%2F%2F%20%EB%B3%80%EC%88%98%EC%9D%98%20%ED%83%80%EC%9E%85%EC%9D%84%20%EB%B3%80%EA%B2%BD%ED%95%98%EC%97%AC%20%EC%9E%AC%EC%82%AC%EC%9A%A9%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%0A%20%20%20%20let%20x%20%3D%20%22hello%22%3B%20%2F%2F%20x%EB%8A%94%20%EB%AC%B8%EC%9E%90%EC%97%B4%20%ED%83%80%EC%9E%85%EC%9E%85%EB%8B%88%EB%8B%A4.%0A%20%20%20%20let%20x%20%3D%205%3B%20%2F%2F%20x%EB%8A%94%20%EC%A0%95%EC%88%98%20%ED%83%80%EC%9E%85%EC%9C%BC%EB%A1%9C%20%EB%B3%80%EA%B2%BD%EB%90%A9%EB%8B%88%EB%8B%A4.%0A%0A%20%20%20%20%2F%2F%20%EB%B3%80%EC%88%98%EC%9D%98%20%EC%9D%B4%EB%A6%84%EC%9D%80%20snake_case%EB%A1%9C%20%EC%9E%91%EC%84%B1%ED%95%A9%EB%8B%88%EB%8B%A4.%0A%20%20%20%20let%20first_name%20%3D%20%22Choi%22%3B%0A%20%20%20%20let%20last_name%20%3D%20%22Blah%22%3B%0A%0A%20%20%20%20%2F%2F%20%EB%B3%80%EC%88%98%EC%9D%98%20%EA%B0%92%EC%9D%84%20%EC%B6%9C%EB%A0%A5%ED%95%A9%EB%8B%88%EB%8B%A4.%0A%20%20%20%20println!(%22x%20is%20%7B%7D%22%2C%20x)%3B%20%2F%2F%20%22x%20is%205%22%EA%B0%80%20%EC%B6%9C%EB%A0%A5%EB%90%A9%EB%8B%88%EB%8B%A4.%0A%7D%0A
+  content_markdown: >
+    Rust에서는 `let` 키워드를 사용하여 변수를 선언합니다.
+
+    <div align="center">
+    <p>
+        <img src="https://user-images.githubusercontent.com/2356749/223641752-4b38e61f-82f4-450d-b778-526cb7ad618c.png">
+    </p>
+    </div>
+
+    값을 할당할 때, Rust는 거의 대부분 변수의 타입을 추론할 수 있습니다.
+
+
+    만약 Rust가 추론하지 못하면 변수의 선언 시 타입을 추가할 수 있습니다.
+
+
+    변수의 이름을 여러 번 사용하여 값을 할당할 수 있습니다.
+
+
+    이를 "shadowing"이라고 하며, 변수의 타입은 재할당될 때마다 변경됩니다.
+
+
+    변수의 이름은 항상 `snake_case`로 작성합니다.
+
+- title: 변수 업데이트
+  code: >-
+    https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20main()%20%7B%0A%20%20%20%20let%20mut%20x%20%3D%2042%3B%0A%20%20%20%20println!(%22%7B%7D%22%2C%20x)%3B%0A%20%20%20%20x%20%3D%2013%3B%0A%20%20%20%20println!(%22%7B%7D%22%2C%20x)%3B%0A%7D%0A
+  content_markdown: >
+    Rust는 변수가 변경 가능한지 여부에 대해 많은 주의를 기울입니다.
+
+    * **mutable (가변)** - 컴파일러는 해당 변수에 대해 `쓰거나 읽을 수` 있도록 허용합니다.
+
+    * **immutable (불변)** - 컴파일러는 해당 변수에 대해서 `읽기만` 가능하도록 허용합니다.
+
+
+    가변 값은 **mut** 키워드로 구분됩니다.
+
+- title: 기본 타입
+  code: >-
+    https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20main()%20%7B%0A%20%20%20%20let%20x%20%3D%2012%3B%20%2F%2F%20by%20default%20this%20is%20i32%0A%20%20%20%20let%20a%20%3D%2012u8%3B%0A%20%20%20%20let%20b%20%3D%204.3%3B%20%2F%2F%20by%20default%20this%20is%20f64%0A%20%20%20%20let%20c%20%3D%204.3f32%3B%0A%20%20%20%20let%20bv%20%3D%20true%3B%0A%20%20%20%20let%20t%20%3D%20(13%2C%20false)%3B%0A%20%20%20%20let%20sentence%20%3D%20%22hello%20world!%22%3B%0A%20%20%20%20println!(%0A%20%20%20%20%20%20%20%20%22%7B%7D%20%7B%7D%20%7B%7D%20%7B%7D%20%7B%7D%20%7B%7D%20%7B%7D%20%7B%7D%22%2C%0A%20%20%20%20%20%20%20%20x%2C%20a%2C%20b%2C%20c%2C%20bv%2C%20t.0%2C%20t.1%2C%20sentence%0A%20%20%20%20)%3B%0A%7D%0A
+  content_markdown: >
+    Rust는 다양한 익숙한 유형을 제공합니다:
+
+
+    * booleans - `bool`로 참/거짓을 나타냅니다.
+
+    * unsigned integers (부호 없는 정수) - 음이 아닌 정수를 나타내는 `u8`, `u16`, `u32`, `u64`, `u128`입니다.
+
+    * signed integers (부호 있는 정수) - 정수를 나타내는 `i8`, `i16`, `i32`, `i64`, `i128`입니다.
+
+    * pointer sized integers - 메모리에서 색인과 항목의 크기를 나타내는 `usize`, `isize`입니다.
+
+    * floating point - `f32` `f64`
+
+    * tuple - 고정된 값의 시퀀스를 스택에 전달하는 `(value, value, ...)` 입니다.
+
+    * arrays - 컴파일 시점에서 크기가 고정되어 있는 비슷한 요소의 집합으로 `[value, value, ...]` 입니다.
+
+    * slices - 런타임에 길이가 알려진 비슷한 요소의 집합입니다.
+
+    * `str`(문자열 슬라이스) - 런타임에 길이가 알려진 텍스트입니다.
+
+
+    다른 언어에서 사용하는 것보다 텍스트는 더 복잡할 수 있습니다.
+    
+    Rust가 시스템 프로그래밍 언어이기 때문에, 기존에 익숙하지 않은 메모리 문제에 대해서도 신경쓰고 있습니다.
+    
+    이에 대해서는 나중에 자세히 다룰 예정입니다.
+
+
+    숫자형은 숫자 끝에 유형을 명시하여 명시적으로 지정할 수 있습니다(예: `13u32`, `2u8`).
+- title: Basic Type Conversion
+  code: >-
+    https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20main()%20%7B%0A%20%20%20%20let%20a%20%3D%2013u8%3B%0A%20%20%20%20let%20b%20%3D%207u32%3B%0A%20%20%20%20let%20c%20%3D%20a%20as%20u32%20%2B%20b%3B%0A%20%20%20%20println!(%22%7B%7D%22%2C%20c)%3B%0A%0A%20%20%20%20let%20t%20%3D%20true%3B%0A%20%20%20%20println!(%22%7B%7D%22%2C%20t%20as%20u8)%3B%0A%7D%0A
+  content_markdown: >
+    Rust는 숫자 변수 타입에 대해 알고 있어야하며, `u8`를 `u32`로 쉽게 사용할 수 없습니다.
+
+
+    다행히 Rust는 **as** 키워드를 사용하여 숫자형을 쉽게 변환할 수 있습니다.
+- title: Constants
+  code: >-
+    https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=const%20PI%3A%20f32%20%3D%203.14159%3B%0A%0Afn%20main()%20%7B%0A%20%20%20%20println!(%0A%20%20%20%20%20%20%20%20%22To%20make%20an%20apple%20%7B%7D%20from%20scratch%2C%20you%20must%20first%20create%20a%20universe.%22%2C%0A%20%20%20%20%20%20%20%20PI%0A%20%20%20%20)%3B%0A%7D%0A
+  content_markdown: >
+    상수는 변수와 달리 곳곳에서 사용되는 공통된 값을 효율적으로 지정하는 데 사용됩니다.
+    
+
+    변수와 같은 곳에서 값이 복사되는 대신, 상수는 컴파일 시간에 사용되는 위치에서 직접 값을 대체합니다.
+
+
+    변수와 달리, 상수는 항상 명시적인 유형을 가져야 합니다.
+
+
+    상수 이름은 항상 `SCREAMING_SNAKE_CASE`로 지정됩니다.
+- title: Arrays
+  code: >-
+    https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20main()%20%7B%0A%20%20%20%20let%20nums%3A%20%5Bi32%3B%203%5D%20%3D%20%5B1%2C%202%2C%203%5D%3B%0A%20%20%20%20println!(%22%7B%3A%3F%7D%22%2C%20nums)%3B%0A%20%20%20%20println!(%22%7B%7D%22%2C%20nums%5B1%5D)%3B%0A%7D%0A
+  content_markdown: >
+    *배열*은 동일한 유형의 데이터 요소들의 **고정된 길이 집합**입니다.
+
+
+    *배열*의 데이터 유형은 `[T;N]` 입니다.
+    
+    (T는 요소의 유형이고, N은 컴파일 시간에 알려진 고정 길이)
+
+
+    개별 요소는 `[x]` 연산자를 사용하여 가져올 수 있습니다.
+    
+    여기서 x는 원하는 요소의 *usize* 인덱스(0부터 시작)입니다.
+
+
+    가변 길이의 컬렉션, 즉 가변 배열은 나중에 **Vectors**에 대한 챕터에서 소개됩니다.
+- title: Functions
+  code: >-
+    https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20add(x%3A%20i32%2C%20y%3A%20i32)%20-%3E%20i32%20%7B%0A%20%20%20%20return%20x%20%2B%20y%3B%0A%7D%0A%0Afn%20subtract(x%3A%20i32%2C%20y%3A%20i32)%20-%3E%20i32%20%7B%0A%20%20%20%20x%20-%20y%0A%7D%0A%0Afn%20main()%20%7B%0A%20%20%20%20println!(%2242%20%2B%2013%20%3D%20%7B%7D%22%2C%20add(42%2C%2013))%3B%0A%20%20%20%20println!(%2242%20-%2013%20%3D%20%7B%7D%22%2C%20subtract(42%2C%2013))%3B%0A%7D%0A
+  content_markdown: >
+    함수는 매개변수 (parameter)가 없거나 여러 개일 수 있습니다.
+
+
+    이 예제에서 *add* 함수는 `i32`(32비트 길이의 부호 있는 정수)형 두 개의 인수를 취합니다.
+
+
+    *subtract* 함수에서와 같이 표현식만 반환하려면 `return` 키워드와 세미콜론을 삭제할 수 있습니다.
+
+
+    함수 이름은 항상 `snake_case`로 지정됩니다.
+
+
+    힌트: 함수를 정의하는 경우, 해당 함수가 수신하는 데이터를 매개변수 (parameter)라고합니다.
+    
+    그 함수를 호출하고 데이터를 전달하면 인수(argument)라고합니다.
+- title: Multiple Return Values
+  code: >-
+    https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20swap(x%3A%20i32%2C%20y%3A%20i32)%20-%3E%20(i32%2C%20i32)%20%7B%0A%20%20%20%20return%20(y%2C%20x)%3B%0A%7D%0A%0Afn%20main()%20%7B%0A%20%20%20%20%2F%2F%20return%20a%20tuple%20of%20return%20values%0A%20%20%20%20let%20result%20%3D%20swap(123%2C%20321)%3B%0A%20%20%20%20println!(%22%7B%7D%20%7B%7D%22%2C%20result.0%2C%20result.1)%3B%0A%0A%20%20%20%20%2F%2F%20destructure%20the%20tuple%20into%20two%20variables%20names%0A%20%20%20%20let%20(a%2C%20b)%20%3D%20swap(result.0%2C%20result.1)%3B%0A%20%20%20%20println!(%22%7B%7D%20%7B%7D%22%2C%20a%2C%20b)%3B%0A%7D%0A
+  content_markdown: >
+    함수는 값의 **튜플**을 반환하여 여러 값을 반환할 수 있습니다.
+
+
+    튜플 요소는 인덱스 번호를 사용하여 참조할 수 있습니다.
+
+
+    Rust는 여러 형식의 destructuring을 지원합니다.
+    
+    우리는 더 많은 형태로 볼 것이며, 이를 통해 데이터 구조의 하위 요소를 직관적으로 추출할 수 있습니다.
+- title: Returning Nothing
+  content_markdown: >
+    함수에 대해 반환 유형이 지정되어 있지 않으면, *unit*이라고도 하는 빈 튜플을 반환합니다.
+
+
+    빈 튜플은 `()`로 나타낼 수 있습니다.
+
+
+    `()`을 사용하는 것은 드문 경우이지만 충분히 자주 출현하기 때문에 무슨 일이 일어나는지 알아둘 가치가 있습니다.
+  code: >-
+    https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20make_nothing()%20-%3E%20()%20%7B%0A%20%20%20%20return%20()%3B%0A%7D%0A%0A%2F%2F%20the%20return%20type%20is%20implied%20as%20()%0Afn%20make_nothing2()%20%7B%0A%20%20%20%20%2F%2F%20this%20function%20will%20return%20()%20if%20nothing%20is%20specified%20to%20return%0A%7D%0A%0Afn%20main()%20%7B%0A%20%20%20%20let%20a%20%3D%20make_nothing()%3B%0A%20%20%20%20let%20b%20%3D%20make_nothing2()%3B%0A%0A%20%20%20%20%2F%2F%20Printing%20a%20debug%20string%20for%20a%20and%20b%0A%20%20%20%20%2F%2F%20Because%20it's%20hard%20to%20print%20nothingness%0A%20%20%20%20println!(%22The%20value%20of%20a%3A%20%7B%3A%3F%7D%22%2C%20a)%3B%0A%20%20%20%20println!(%22The%20value%20of%20b%3A%20%7B%3A%3F%7D%22%2C%20b)%3B%0A%7D%0A
+- title: Chapter 1 - 마무리
+  content_markdown: >
+    Rust의 기초는 그렇게 나쁘지 않죠?
+
+    시스템 프로그래밍 언어로서, Rust는 메모리 내 값을 매우 신경쓰며,
+    
+    수정이 가능한지 불가능한지 여부, 그리고 수학 연산이 의도한 대로 수행되는지 확인합니다.
+
+
+    참고:
+
+    * [Youtube: Rust Cast - Rust의 기본 숫자 유형에 대한 더 깊은 이해](https://www.youtube.com/watch?v=n5TRBkbystY)
+
+    * [Website: Rust Book 2018 - 기본 데이터 유형에 대한 자세한 설명](https://doc.rust-lang.org/1.30.0/book/2018-edition/ch03-02-data-types.html)
+
+    * [Website: Rust Cheat Sheet - Data Types](https://cheats.rs/#basic-types)
diff --git a/frontend/lessons/ko/common_words.yaml b/frontend/lessons/ko/common_words.yaml
new file mode 100644
index 0000000..325128d
--- /dev/null
+++ b/frontend/lessons/ko/common_words.yaml
@@ -0,0 +1,9 @@
+chapter: 챕터
+tor: Rust 튜토리얼
+next: 다음
+previous: 이전
+toc: 목차
+lessons: 강의
+untranslated: 번역 미정
+welcometothe: Welcome to the
+presstocontinue: Press to Continue
diff --git a/frontend/make.bat b/frontend/make.bat
new file mode 100644
index 0000000..fc419ef
--- /dev/null
+++ b/frontend/make.bat
@@ -0,0 +1,75 @@
+@echo off
+
+if ["%~1"] == [""] (
+    goto :help
+)
+
+if "%~1" == "serve" (
+    goto :serve
+)
+
+if "%~1" == "test" (
+    goto :test
+)
+
+if "%~1" == "publish" (
+    goto :publish
+)
+
+if "%~1" == "lint" (
+    goto :lint
+)
+
+if "%~1" == "clean" (
+    goto :clean
+)
+
+:help
+echo Usage:
+echo    make.bat [options]
+echo.
+echo Options:
+echo    serve               Start the Python webserver
+echo    test                Start the test Python webserver
+echo    publish             Publish the website via Github pages
+echo    lint                Run Prettier
+echo    clean               Remove docs and wasm html pages
+exit /b 0
+
+:serve
+call :clean
+call node generate.js lessons docs
+@REM beta
+@REM call node generate.js wasm docs\webassembly beta
+call cd docs && python -m http.server 8080
+exit /b 0
+
+:test
+call :clean
+call node generate.js lessons docs
+call node generate.js wasm docs\webassembly
+call cd docs && python -m http.server 8080
+exit /b 0
+
+:publish
+call :clean
+call git branch -D gh-pages
+call git checkout -b gh-pages
+call node generate.js lessons docs
+call node generate.js wasm docs/webassembly
+call mv docs\* .
+call git add . || true
+call git commit -m 'generating new html' || true
+call git push -f origin gh-pages || true
+call git checkout master
+exit /b 0
+
+:lint
+call prettier --write .\lessons\*\*.yaml
+call prettier --write .\wasm\*\*.yaml
+exit /b 0
+
+:clean
+del .\docs\*.html
+del .\docs\webassembly\*.html
+exit /b 0
\ No newline at end of file
diff --git a/frontend/run.sh b/frontend/run.sh
new file mode 100644
index 0000000..89ab465
--- /dev/null
+++ b/frontend/run.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+export NVM_DIR="$HOME/.nvm"
+[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
+[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
+
+export 
+cd /home/dev/Rust-Tutorial/rust_tutorial
+export NODE_ENV=production
+npm run serve
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..5808328
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,2747 @@
+{
+  "name": "rust",
+  "version": "1.0.0",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "rust",
+      "version": "1.0.0",
+      "dependencies": {
+        "js-yaml": "^4.1.0",
+        "showdown": "^2.1.0"
+      },
+      "devDependencies": {
+        "@tauri-apps/cli": "^1.2.3",
+        "eslint": "^8.35.0",
+        "eslint-config-airbnb-base": "^15.0.0",
+        "eslint-plugin-import": "^2.27.5",
+        "nodemon": "^2.0.21",
+        "prettier": "^2.8.4",
+        "rimraf": "^4.4.0"
+      }
+    },
+    "node_modules/@eslint-community/eslint-utils": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz",
+      "integrity": "sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==",
+      "dev": true,
+      "dependencies": {
+        "eslint-visitor-keys": "^3.3.0"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "peerDependencies": {
+        "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+      }
+    },
+    "node_modules/@eslint-community/regexpp": {
+      "version": "4.4.0",
+      "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz",
+      "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==",
+      "dev": true,
+      "engines": {
+        "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+      }
+    },
+    "node_modules/@eslint/eslintrc": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz",
+      "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==",
+      "dev": true,
+      "dependencies": {
+        "ajv": "^6.12.4",
+        "debug": "^4.3.2",
+        "espree": "^9.5.0",
+        "globals": "^13.19.0",
+        "ignore": "^5.2.0",
+        "import-fresh": "^3.2.1",
+        "js-yaml": "^4.1.0",
+        "minimatch": "^3.1.2",
+        "strip-json-comments": "^3.1.1"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/@eslint/js": {
+      "version": "8.36.0",
+      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz",
+      "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==",
+      "dev": true,
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      }
+    },
+    "node_modules/@humanwhocodes/config-array": {
+      "version": "0.11.8",
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
+      "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
+      "dev": true,
+      "dependencies": {
+        "@humanwhocodes/object-schema": "^1.2.1",
+        "debug": "^4.1.1",
+        "minimatch": "^3.0.5"
+      },
+      "engines": {
+        "node": ">=10.10.0"
+      }
+    },
+    "node_modules/@humanwhocodes/module-importer": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+      "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+      "dev": true,
+      "engines": {
+        "node": ">=12.22"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/nzakas"
+      }
+    },
+    "node_modules/@humanwhocodes/object-schema": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+      "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+      "dev": true
+    },
+    "node_modules/@nodelib/fs.scandir": {
+      "version": "2.1.5",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+      "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+      "dev": true,
+      "dependencies": {
+        "@nodelib/fs.stat": "2.0.5",
+        "run-parallel": "^1.1.9"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@nodelib/fs.stat": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+      "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+      "dev": true,
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@nodelib/fs.walk": {
+      "version": "1.2.8",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+      "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+      "dev": true,
+      "dependencies": {
+        "@nodelib/fs.scandir": "2.1.5",
+        "fastq": "^1.6.0"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@tauri-apps/cli": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-1.2.3.tgz",
+      "integrity": "sha512-erxtXuPhMEGJPBtnhPILD4AjuT81GZsraqpFvXAmEJZ2p8P6t7MVBifCL8LznRknznM3jn90D3M8RNBP3wcXTw==",
+      "dev": true,
+      "bin": {
+        "tauri": "tauri.js"
+      },
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/tauri"
+      },
+      "optionalDependencies": {
+        "@tauri-apps/cli-darwin-arm64": "1.2.3",
+        "@tauri-apps/cli-darwin-x64": "1.2.3",
+        "@tauri-apps/cli-linux-arm-gnueabihf": "1.2.3",
+        "@tauri-apps/cli-linux-arm64-gnu": "1.2.3",
+        "@tauri-apps/cli-linux-arm64-musl": "1.2.3",
+        "@tauri-apps/cli-linux-x64-gnu": "1.2.3",
+        "@tauri-apps/cli-linux-x64-musl": "1.2.3",
+        "@tauri-apps/cli-win32-ia32-msvc": "1.2.3",
+        "@tauri-apps/cli-win32-x64-msvc": "1.2.3"
+      }
+    },
+    "node_modules/@tauri-apps/cli-darwin-arm64": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.2.3.tgz",
+      "integrity": "sha512-phJN3fN8FtZZwqXg08bcxfq1+X1JSDglLvRxOxB7VWPq+O5SuB8uLyssjJsu+PIhyZZnIhTGdjhzLSFhSXfLsw==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@tauri-apps/cli-darwin-x64": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.2.3.tgz",
+      "integrity": "sha512-jFZ/y6z8z6v4yliIbXKBXA7BJgtZVMsITmEXSuD6s5+eCOpDhQxbRkr6CA+FFfr+/r96rWSDSgDenDQuSvPAKw==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.2.3.tgz",
+      "integrity": "sha512-C7h5vqAwXzY0kRGSU00Fj8PudiDWFCiQqqUNI1N+fhCILrzWZB9TPBwdx33ZfXKt/U4+emdIoo/N34v3TiAOmQ==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@tauri-apps/cli-linux-arm64-gnu": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.2.3.tgz",
+      "integrity": "sha512-buf1c8sdkuUzVDkGPQpyUdAIIdn5r0UgXU6+H5fGPq/Xzt5K69JzXaeo6fHsZEZghbV0hOK+taKV4J0m30UUMQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@tauri-apps/cli-linux-arm64-musl": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.2.3.tgz",
+      "integrity": "sha512-x88wPS9W5xAyk392vc4uNHcKBBvCp0wf4H9JFMF9OBwB7vfd59LbQCFcPSu8f0BI7bPrOsyHqspWHuFL8ojQEA==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@tauri-apps/cli-linux-x64-gnu": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.2.3.tgz",
+      "integrity": "sha512-ZMz1jxEVe0B4/7NJnlPHmwmSIuwiD6ViXKs8F+OWWz2Y4jn5TGxWKFg7DLx5OwQTRvEIZxxT7lXHi5CuTNAxKg==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@tauri-apps/cli-linux-x64-musl": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.2.3.tgz",
+      "integrity": "sha512-B/az59EjJhdbZDzawEVox0LQu2ZHCZlk8rJf85AMIktIUoAZPFbwyiUv7/zjzA/sY6Nb58OSJgaPL2/IBy7E0A==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@tauri-apps/cli-win32-ia32-msvc": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.2.3.tgz",
+      "integrity": "sha512-ypdO1OdC5ugNJAKO2m3sb1nsd+0TSvMS9Tr5qN/ZSMvtSduaNwrcZ3D7G/iOIanrqu/Nl8t3LYlgPZGBKlw7Ng==",
+      "cpu": [
+        "ia32"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@tauri-apps/cli-win32-x64-msvc": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.2.3.tgz",
+      "integrity": "sha512-CsbHQ+XhnV/2csOBBDVfH16cdK00gNyNYUW68isedmqcn8j+s0e9cQ1xXIqi+Hue3awp8g3ImYN5KPepf3UExw==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@types/json5": {
+      "version": "0.0.29",
+      "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+      "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
+      "dev": true
+    },
+    "node_modules/abbrev": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+      "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+      "dev": true
+    },
+    "node_modules/acorn": {
+      "version": "8.8.2",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+      "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
+      "dev": true,
+      "bin": {
+        "acorn": "bin/acorn"
+      },
+      "engines": {
+        "node": ">=0.4.0"
+      }
+    },
+    "node_modules/acorn-jsx": {
+      "version": "5.3.2",
+      "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+      "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+      "dev": true,
+      "peerDependencies": {
+        "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+      }
+    },
+    "node_modules/ajv": {
+      "version": "6.12.6",
+      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+      "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+      "dev": true,
+      "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"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/epoberezkin"
+      }
+    },
+    "node_modules/ansi-regex": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/ansi-styles": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+      "dev": true,
+      "dependencies": {
+        "color-convert": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/anymatch": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+      "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+      "dev": true,
+      "dependencies": {
+        "normalize-path": "^3.0.0",
+        "picomatch": "^2.0.4"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/argparse": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+    },
+    "node_modules/array-buffer-byte-length": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
+      "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "is-array-buffer": "^3.0.1"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/array-includes": {
+      "version": "3.1.6",
+      "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
+      "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.1.4",
+        "es-abstract": "^1.20.4",
+        "get-intrinsic": "^1.1.3",
+        "is-string": "^1.0.7"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/array.prototype.flat": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz",
+      "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.1.4",
+        "es-abstract": "^1.20.4",
+        "es-shim-unscopables": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/array.prototype.flatmap": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz",
+      "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.1.4",
+        "es-abstract": "^1.20.4",
+        "es-shim-unscopables": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/available-typed-arrays": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
+      "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/balanced-match": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+      "dev": true
+    },
+    "node_modules/binary-extensions": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+      "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "dev": true,
+      "dependencies": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "node_modules/braces": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+      "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+      "dev": true,
+      "dependencies": {
+        "fill-range": "^7.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/call-bind": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+      "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+      "dev": true,
+      "dependencies": {
+        "function-bind": "^1.1.1",
+        "get-intrinsic": "^1.0.2"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/callsites": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+      "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/chalk": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^4.1.0",
+        "supports-color": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1"
+      }
+    },
+    "node_modules/chokidar": {
+      "version": "3.5.3",
+      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+      "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "individual",
+          "url": "https://paulmillr.com/funding/"
+        }
+      ],
+      "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"
+      },
+      "engines": {
+        "node": ">= 8.10.0"
+      },
+      "optionalDependencies": {
+        "fsevents": "~2.3.2"
+      }
+    },
+    "node_modules/chokidar/node_modules/glob-parent": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+      "dev": true,
+      "dependencies": {
+        "is-glob": "^4.0.1"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/color-convert": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+      "dev": true,
+      "dependencies": {
+        "color-name": "~1.1.4"
+      },
+      "engines": {
+        "node": ">=7.0.0"
+      }
+    },
+    "node_modules/color-name": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+      "dev": true
+    },
+    "node_modules/commander": {
+      "version": "9.5.0",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
+      "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
+      "engines": {
+        "node": "^12.20.0 || >=14"
+      }
+    },
+    "node_modules/concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+      "dev": true
+    },
+    "node_modules/confusing-browser-globals": {
+      "version": "1.0.11",
+      "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz",
+      "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==",
+      "dev": true
+    },
+    "node_modules/cross-spawn": {
+      "version": "7.0.3",
+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+      "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+      "dev": true,
+      "dependencies": {
+        "path-key": "^3.1.0",
+        "shebang-command": "^2.0.0",
+        "which": "^2.0.1"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/debug": {
+      "version": "4.3.4",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+      "dev": true,
+      "dependencies": {
+        "ms": "2.1.2"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/deep-is": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+      "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+      "dev": true
+    },
+    "node_modules/define-properties": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz",
+      "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==",
+      "dev": true,
+      "dependencies": {
+        "has-property-descriptors": "^1.0.0",
+        "object-keys": "^1.1.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/doctrine": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+      "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+      "dev": true,
+      "dependencies": {
+        "esutils": "^2.0.2"
+      },
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/es-abstract": {
+      "version": "1.21.2",
+      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz",
+      "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==",
+      "dev": true,
+      "dependencies": {
+        "array-buffer-byte-length": "^1.0.0",
+        "available-typed-arrays": "^1.0.5",
+        "call-bind": "^1.0.2",
+        "es-set-tostringtag": "^2.0.1",
+        "es-to-primitive": "^1.2.1",
+        "function.prototype.name": "^1.1.5",
+        "get-intrinsic": "^1.2.0",
+        "get-symbol-description": "^1.0.0",
+        "globalthis": "^1.0.3",
+        "gopd": "^1.0.1",
+        "has": "^1.0.3",
+        "has-property-descriptors": "^1.0.0",
+        "has-proto": "^1.0.1",
+        "has-symbols": "^1.0.3",
+        "internal-slot": "^1.0.5",
+        "is-array-buffer": "^3.0.2",
+        "is-callable": "^1.2.7",
+        "is-negative-zero": "^2.0.2",
+        "is-regex": "^1.1.4",
+        "is-shared-array-buffer": "^1.0.2",
+        "is-string": "^1.0.7",
+        "is-typed-array": "^1.1.10",
+        "is-weakref": "^1.0.2",
+        "object-inspect": "^1.12.3",
+        "object-keys": "^1.1.1",
+        "object.assign": "^4.1.4",
+        "regexp.prototype.flags": "^1.4.3",
+        "safe-regex-test": "^1.0.0",
+        "string.prototype.trim": "^1.2.7",
+        "string.prototype.trimend": "^1.0.6",
+        "string.prototype.trimstart": "^1.0.6",
+        "typed-array-length": "^1.0.4",
+        "unbox-primitive": "^1.0.2",
+        "which-typed-array": "^1.1.9"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/es-set-tostringtag": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz",
+      "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==",
+      "dev": true,
+      "dependencies": {
+        "get-intrinsic": "^1.1.3",
+        "has": "^1.0.3",
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/es-shim-unscopables": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
+      "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
+      "dev": true,
+      "dependencies": {
+        "has": "^1.0.3"
+      }
+    },
+    "node_modules/es-to-primitive": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+      "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+      "dev": true,
+      "dependencies": {
+        "is-callable": "^1.1.4",
+        "is-date-object": "^1.0.1",
+        "is-symbol": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/escape-string-regexp": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+      "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/eslint": {
+      "version": "8.36.0",
+      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz",
+      "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==",
+      "dev": true,
+      "dependencies": {
+        "@eslint-community/eslint-utils": "^4.2.0",
+        "@eslint-community/regexpp": "^4.4.0",
+        "@eslint/eslintrc": "^2.0.1",
+        "@eslint/js": "8.36.0",
+        "@humanwhocodes/config-array": "^0.11.8",
+        "@humanwhocodes/module-importer": "^1.0.1",
+        "@nodelib/fs.walk": "^1.2.8",
+        "ajv": "^6.10.0",
+        "chalk": "^4.0.0",
+        "cross-spawn": "^7.0.2",
+        "debug": "^4.3.2",
+        "doctrine": "^3.0.0",
+        "escape-string-regexp": "^4.0.0",
+        "eslint-scope": "^7.1.1",
+        "eslint-visitor-keys": "^3.3.0",
+        "espree": "^9.5.0",
+        "esquery": "^1.4.2",
+        "esutils": "^2.0.2",
+        "fast-deep-equal": "^3.1.3",
+        "file-entry-cache": "^6.0.1",
+        "find-up": "^5.0.0",
+        "glob-parent": "^6.0.2",
+        "globals": "^13.19.0",
+        "grapheme-splitter": "^1.0.4",
+        "ignore": "^5.2.0",
+        "import-fresh": "^3.0.0",
+        "imurmurhash": "^0.1.4",
+        "is-glob": "^4.0.0",
+        "is-path-inside": "^3.0.3",
+        "js-sdsl": "^4.1.4",
+        "js-yaml": "^4.1.0",
+        "json-stable-stringify-without-jsonify": "^1.0.1",
+        "levn": "^0.4.1",
+        "lodash.merge": "^4.6.2",
+        "minimatch": "^3.1.2",
+        "natural-compare": "^1.4.0",
+        "optionator": "^0.9.1",
+        "strip-ansi": "^6.0.1",
+        "strip-json-comments": "^3.1.0",
+        "text-table": "^0.2.0"
+      },
+      "bin": {
+        "eslint": "bin/eslint.js"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/eslint-config-airbnb-base": {
+      "version": "15.0.0",
+      "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz",
+      "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==",
+      "dev": true,
+      "dependencies": {
+        "confusing-browser-globals": "^1.0.10",
+        "object.assign": "^4.1.2",
+        "object.entries": "^1.1.5",
+        "semver": "^6.3.0"
+      },
+      "engines": {
+        "node": "^10.12.0 || >=12.0.0"
+      },
+      "peerDependencies": {
+        "eslint": "^7.32.0 || ^8.2.0",
+        "eslint-plugin-import": "^2.25.2"
+      }
+    },
+    "node_modules/eslint-import-resolver-node": {
+      "version": "0.3.7",
+      "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz",
+      "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==",
+      "dev": true,
+      "dependencies": {
+        "debug": "^3.2.7",
+        "is-core-module": "^2.11.0",
+        "resolve": "^1.22.1"
+      }
+    },
+    "node_modules/eslint-import-resolver-node/node_modules/debug": {
+      "version": "3.2.7",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+      "dev": true,
+      "dependencies": {
+        "ms": "^2.1.1"
+      }
+    },
+    "node_modules/eslint-module-utils": {
+      "version": "2.7.4",
+      "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz",
+      "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==",
+      "dev": true,
+      "dependencies": {
+        "debug": "^3.2.7"
+      },
+      "engines": {
+        "node": ">=4"
+      },
+      "peerDependenciesMeta": {
+        "eslint": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/eslint-module-utils/node_modules/debug": {
+      "version": "3.2.7",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+      "dev": true,
+      "dependencies": {
+        "ms": "^2.1.1"
+      }
+    },
+    "node_modules/eslint-plugin-import": {
+      "version": "2.27.5",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz",
+      "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==",
+      "dev": true,
+      "dependencies": {
+        "array-includes": "^3.1.6",
+        "array.prototype.flat": "^1.3.1",
+        "array.prototype.flatmap": "^1.3.1",
+        "debug": "^3.2.7",
+        "doctrine": "^2.1.0",
+        "eslint-import-resolver-node": "^0.3.7",
+        "eslint-module-utils": "^2.7.4",
+        "has": "^1.0.3",
+        "is-core-module": "^2.11.0",
+        "is-glob": "^4.0.3",
+        "minimatch": "^3.1.2",
+        "object.values": "^1.1.6",
+        "resolve": "^1.22.1",
+        "semver": "^6.3.0",
+        "tsconfig-paths": "^3.14.1"
+      },
+      "engines": {
+        "node": ">=4"
+      },
+      "peerDependencies": {
+        "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
+      }
+    },
+    "node_modules/eslint-plugin-import/node_modules/debug": {
+      "version": "3.2.7",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+      "dev": true,
+      "dependencies": {
+        "ms": "^2.1.1"
+      }
+    },
+    "node_modules/eslint-plugin-import/node_modules/doctrine": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+      "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+      "dev": true,
+      "dependencies": {
+        "esutils": "^2.0.2"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/eslint-scope": {
+      "version": "7.1.1",
+      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
+      "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+      "dev": true,
+      "dependencies": {
+        "esrecurse": "^4.3.0",
+        "estraverse": "^5.2.0"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      }
+    },
+    "node_modules/eslint-visitor-keys": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
+      "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
+      "dev": true,
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      }
+    },
+    "node_modules/espree": {
+      "version": "9.5.0",
+      "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz",
+      "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==",
+      "dev": true,
+      "dependencies": {
+        "acorn": "^8.8.0",
+        "acorn-jsx": "^5.3.2",
+        "eslint-visitor-keys": "^3.3.0"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/esquery": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
+      "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+      "dev": true,
+      "dependencies": {
+        "estraverse": "^5.1.0"
+      },
+      "engines": {
+        "node": ">=0.10"
+      }
+    },
+    "node_modules/esrecurse": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+      "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+      "dev": true,
+      "dependencies": {
+        "estraverse": "^5.2.0"
+      },
+      "engines": {
+        "node": ">=4.0"
+      }
+    },
+    "node_modules/estraverse": {
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+      "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+      "dev": true,
+      "engines": {
+        "node": ">=4.0"
+      }
+    },
+    "node_modules/esutils": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/fast-deep-equal": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+      "dev": true
+    },
+    "node_modules/fast-json-stable-stringify": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+      "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+      "dev": true
+    },
+    "node_modules/fast-levenshtein": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+      "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+      "dev": true
+    },
+    "node_modules/fastq": {
+      "version": "1.15.0",
+      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
+      "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
+      "dev": true,
+      "dependencies": {
+        "reusify": "^1.0.4"
+      }
+    },
+    "node_modules/file-entry-cache": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+      "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+      "dev": true,
+      "dependencies": {
+        "flat-cache": "^3.0.4"
+      },
+      "engines": {
+        "node": "^10.12.0 || >=12.0.0"
+      }
+    },
+    "node_modules/fill-range": {
+      "version": "7.0.1",
+      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+      "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+      "dev": true,
+      "dependencies": {
+        "to-regex-range": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/find-up": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+      "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+      "dev": true,
+      "dependencies": {
+        "locate-path": "^6.0.0",
+        "path-exists": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/flat-cache": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+      "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+      "dev": true,
+      "dependencies": {
+        "flatted": "^3.1.0",
+        "rimraf": "^3.0.2"
+      },
+      "engines": {
+        "node": "^10.12.0 || >=12.0.0"
+      }
+    },
+    "node_modules/flat-cache/node_modules/glob": {
+      "version": "7.2.3",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+      "dev": true,
+      "dependencies": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.1.1",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      },
+      "engines": {
+        "node": "*"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/flat-cache/node_modules/rimraf": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+      "dev": true,
+      "dependencies": {
+        "glob": "^7.1.3"
+      },
+      "bin": {
+        "rimraf": "bin.js"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/flatted": {
+      "version": "3.2.7",
+      "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
+      "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
+      "dev": true
+    },
+    "node_modules/for-each": {
+      "version": "0.3.3",
+      "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+      "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+      "dev": true,
+      "dependencies": {
+        "is-callable": "^1.1.3"
+      }
+    },
+    "node_modules/fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+      "dev": true
+    },
+    "node_modules/fsevents": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+      "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+      "dev": true,
+      "hasInstallScript": true,
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+      }
+    },
+    "node_modules/function-bind": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+      "dev": true
+    },
+    "node_modules/function.prototype.name": {
+      "version": "1.1.5",
+      "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
+      "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.1.3",
+        "es-abstract": "^1.19.0",
+        "functions-have-names": "^1.2.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/functions-have-names": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+      "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/get-intrinsic": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+      "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
+      "dev": true,
+      "dependencies": {
+        "function-bind": "^1.1.1",
+        "has": "^1.0.3",
+        "has-symbols": "^1.0.3"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/get-symbol-description": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
+      "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "get-intrinsic": "^1.1.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/glob": {
+      "version": "9.3.0",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.0.tgz",
+      "integrity": "sha512-EAZejC7JvnQINayvB/7BJbpZpNOJ8Lrw2OZNEvQxe0vaLn1SuwMcfV7/MNaX8L/T0wmptBFI4YMtDvSBxYDc7w==",
+      "dev": true,
+      "dependencies": {
+        "fs.realpath": "^1.0.0",
+        "minimatch": "^7.4.1",
+        "minipass": "^4.2.4",
+        "path-scurry": "^1.6.1"
+      },
+      "engines": {
+        "node": ">=16 || 14 >=14.17"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/glob-parent": {
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+      "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+      "dev": true,
+      "dependencies": {
+        "is-glob": "^4.0.3"
+      },
+      "engines": {
+        "node": ">=10.13.0"
+      }
+    },
+    "node_modules/glob/node_modules/brace-expansion": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+      "dev": true,
+      "dependencies": {
+        "balanced-match": "^1.0.0"
+      }
+    },
+    "node_modules/glob/node_modules/minimatch": {
+      "version": "7.4.2",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz",
+      "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==",
+      "dev": true,
+      "dependencies": {
+        "brace-expansion": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/globals": {
+      "version": "13.20.0",
+      "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
+      "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+      "dev": true,
+      "dependencies": {
+        "type-fest": "^0.20.2"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/globalthis": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+      "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+      "dev": true,
+      "dependencies": {
+        "define-properties": "^1.1.3"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/gopd": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+      "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+      "dev": true,
+      "dependencies": {
+        "get-intrinsic": "^1.1.3"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/grapheme-splitter": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
+      "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
+      "dev": true
+    },
+    "node_modules/has": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+      "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+      "dev": true,
+      "dependencies": {
+        "function-bind": "^1.1.1"
+      },
+      "engines": {
+        "node": ">= 0.4.0"
+      }
+    },
+    "node_modules/has-bigints": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+      "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-flag": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/has-property-descriptors": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+      "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+      "dev": true,
+      "dependencies": {
+        "get-intrinsic": "^1.1.1"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-proto": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
+      "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-symbols": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+      "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-tostringtag": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+      "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+      "dev": true,
+      "dependencies": {
+        "has-symbols": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/ignore": {
+      "version": "5.2.4",
+      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+      "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+      "dev": true,
+      "engines": {
+        "node": ">= 4"
+      }
+    },
+    "node_modules/ignore-by-default": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
+      "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==",
+      "dev": true
+    },
+    "node_modules/import-fresh": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+      "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+      "dev": true,
+      "dependencies": {
+        "parent-module": "^1.0.0",
+        "resolve-from": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/imurmurhash": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+      "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.8.19"
+      }
+    },
+    "node_modules/inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+      "dev": true,
+      "dependencies": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "node_modules/inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+      "dev": true
+    },
+    "node_modules/internal-slot": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz",
+      "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==",
+      "dev": true,
+      "dependencies": {
+        "get-intrinsic": "^1.2.0",
+        "has": "^1.0.3",
+        "side-channel": "^1.0.4"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/is-array-buffer": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
+      "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "get-intrinsic": "^1.2.0",
+        "is-typed-array": "^1.1.10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-bigint": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+      "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+      "dev": true,
+      "dependencies": {
+        "has-bigints": "^1.0.1"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-binary-path": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+      "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+      "dev": true,
+      "dependencies": {
+        "binary-extensions": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/is-boolean-object": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+      "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-callable": {
+      "version": "1.2.7",
+      "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+      "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-core-module": {
+      "version": "2.11.0",
+      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
+      "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+      "dev": true,
+      "dependencies": {
+        "has": "^1.0.3"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-date-object": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
+      "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+      "dev": true,
+      "dependencies": {
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-extglob": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+      "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-glob": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+      "dev": true,
+      "dependencies": {
+        "is-extglob": "^2.1.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-negative-zero": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
+      "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-number": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.12.0"
+      }
+    },
+    "node_modules/is-number-object": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+      "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+      "dev": true,
+      "dependencies": {
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-path-inside": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+      "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/is-regex": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+      "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-shared-array-buffer": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+      "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-string": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+      "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+      "dev": true,
+      "dependencies": {
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-symbol": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+      "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+      "dev": true,
+      "dependencies": {
+        "has-symbols": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-typed-array": {
+      "version": "1.1.10",
+      "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz",
+      "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==",
+      "dev": true,
+      "dependencies": {
+        "available-typed-arrays": "^1.0.5",
+        "call-bind": "^1.0.2",
+        "for-each": "^0.3.3",
+        "gopd": "^1.0.1",
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-weakref": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+      "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/isexe": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+      "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+      "dev": true
+    },
+    "node_modules/js-sdsl": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz",
+      "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==",
+      "dev": true,
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/js-sdsl"
+      }
+    },
+    "node_modules/js-yaml": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+      "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+      "dependencies": {
+        "argparse": "^2.0.1"
+      },
+      "bin": {
+        "js-yaml": "bin/js-yaml.js"
+      }
+    },
+    "node_modules/json-schema-traverse": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+      "dev": true
+    },
+    "node_modules/json-stable-stringify-without-jsonify": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+      "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+      "dev": true
+    },
+    "node_modules/json5": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+      "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+      "dev": true,
+      "dependencies": {
+        "minimist": "^1.2.0"
+      },
+      "bin": {
+        "json5": "lib/cli.js"
+      }
+    },
+    "node_modules/levn": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+      "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+      "dev": true,
+      "dependencies": {
+        "prelude-ls": "^1.2.1",
+        "type-check": "~0.4.0"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/locate-path": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+      "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+      "dev": true,
+      "dependencies": {
+        "p-locate": "^5.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/lodash.merge": {
+      "version": "4.6.2",
+      "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+      "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+      "dev": true
+    },
+    "node_modules/lru-cache": {
+      "version": "7.18.3",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
+      "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
+      "dev": true,
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/minimatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+      "dev": true,
+      "dependencies": {
+        "brace-expansion": "^1.1.7"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/minimist": {
+      "version": "1.2.8",
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+      "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/minipass": {
+      "version": "4.2.5",
+      "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz",
+      "integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/ms": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+      "dev": true
+    },
+    "node_modules/natural-compare": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+      "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+      "dev": true
+    },
+    "node_modules/nodemon": {
+      "version": "2.0.21",
+      "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.21.tgz",
+      "integrity": "sha512-djN/n2549DUtY33S7o1djRCd7dEm0kBnj9c7S9XVXqRUbuggN1MZH/Nqa+5RFQr63Fbefq37nFXAE9VU86yL1A==",
+      "dev": true,
+      "dependencies": {
+        "chokidar": "^3.5.2",
+        "debug": "^3.2.7",
+        "ignore-by-default": "^1.0.1",
+        "minimatch": "^3.1.2",
+        "pstree.remy": "^1.1.8",
+        "semver": "^5.7.1",
+        "simple-update-notifier": "^1.0.7",
+        "supports-color": "^5.5.0",
+        "touch": "^3.1.0",
+        "undefsafe": "^2.0.5"
+      },
+      "bin": {
+        "nodemon": "bin/nodemon.js"
+      },
+      "engines": {
+        "node": ">=8.10.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/nodemon"
+      }
+    },
+    "node_modules/nodemon/node_modules/debug": {
+      "version": "3.2.7",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+      "dev": true,
+      "dependencies": {
+        "ms": "^2.1.1"
+      }
+    },
+    "node_modules/nodemon/node_modules/has-flag": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+      "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/nodemon/node_modules/semver": {
+      "version": "5.7.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+      "dev": true,
+      "bin": {
+        "semver": "bin/semver"
+      }
+    },
+    "node_modules/nodemon/node_modules/supports-color": {
+      "version": "5.5.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+      "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+      "dev": true,
+      "dependencies": {
+        "has-flag": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/nopt": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
+      "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==",
+      "dev": true,
+      "dependencies": {
+        "abbrev": "1"
+      },
+      "bin": {
+        "nopt": "bin/nopt.js"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/normalize-path": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+      "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/object-inspect": {
+      "version": "1.12.3",
+      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
+      "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/object-keys": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+      "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/object.assign": {
+      "version": "4.1.4",
+      "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
+      "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.1.4",
+        "has-symbols": "^1.0.3",
+        "object-keys": "^1.1.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/object.entries": {
+      "version": "1.1.6",
+      "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz",
+      "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.1.4",
+        "es-abstract": "^1.20.4"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/object.values": {
+      "version": "1.1.6",
+      "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz",
+      "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.1.4",
+        "es-abstract": "^1.20.4"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+      "dev": true,
+      "dependencies": {
+        "wrappy": "1"
+      }
+    },
+    "node_modules/optionator": {
+      "version": "0.9.1",
+      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+      "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+      "dev": true,
+      "dependencies": {
+        "deep-is": "^0.1.3",
+        "fast-levenshtein": "^2.0.6",
+        "levn": "^0.4.1",
+        "prelude-ls": "^1.2.1",
+        "type-check": "^0.4.0",
+        "word-wrap": "^1.2.3"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/p-limit": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+      "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+      "dev": true,
+      "dependencies": {
+        "yocto-queue": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/p-locate": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+      "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+      "dev": true,
+      "dependencies": {
+        "p-limit": "^3.0.2"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/parent-module": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+      "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+      "dev": true,
+      "dependencies": {
+        "callsites": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/path-exists": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+      "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/path-key": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+      "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/path-parse": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+      "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+      "dev": true
+    },
+    "node_modules/path-scurry": {
+      "version": "1.6.1",
+      "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz",
+      "integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==",
+      "dev": true,
+      "dependencies": {
+        "lru-cache": "^7.14.1",
+        "minipass": "^4.0.2"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/picomatch": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+      "dev": true,
+      "engines": {
+        "node": ">=8.6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/jonschlinkert"
+      }
+    },
+    "node_modules/prelude-ls": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+      "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/prettier": {
+      "version": "2.8.4",
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz",
+      "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==",
+      "dev": true,
+      "bin": {
+        "prettier": "bin-prettier.js"
+      },
+      "engines": {
+        "node": ">=10.13.0"
+      },
+      "funding": {
+        "url": "https://github.com/prettier/prettier?sponsor=1"
+      }
+    },
+    "node_modules/pstree.remy": {
+      "version": "1.1.8",
+      "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
+      "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==",
+      "dev": true
+    },
+    "node_modules/punycode": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
+      "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/queue-microtask": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+      "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ]
+    },
+    "node_modules/readdirp": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+      "dev": true,
+      "dependencies": {
+        "picomatch": "^2.2.1"
+      },
+      "engines": {
+        "node": ">=8.10.0"
+      }
+    },
+    "node_modules/regexp.prototype.flags": {
+      "version": "1.4.3",
+      "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
+      "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.1.3",
+        "functions-have-names": "^1.2.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/resolve": {
+      "version": "1.22.1",
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
+      "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+      "dev": true,
+      "dependencies": {
+        "is-core-module": "^2.9.0",
+        "path-parse": "^1.0.7",
+        "supports-preserve-symlinks-flag": "^1.0.0"
+      },
+      "bin": {
+        "resolve": "bin/resolve"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/resolve-from": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+      "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/reusify": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+      "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+      "dev": true,
+      "engines": {
+        "iojs": ">=1.0.0",
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/rimraf": {
+      "version": "4.4.0",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.0.tgz",
+      "integrity": "sha512-X36S+qpCUR0HjXlkDe4NAOhS//aHH0Z+h8Ckf2auGJk3PTnx5rLmrHkwNdbVQuCSUhOyFrlRvFEllZOYE+yZGQ==",
+      "dev": true,
+      "dependencies": {
+        "glob": "^9.2.0"
+      },
+      "bin": {
+        "rimraf": "dist/cjs/src/bin.js"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/run-parallel": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+      "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "dependencies": {
+        "queue-microtask": "^1.2.2"
+      }
+    },
+    "node_modules/safe-regex-test": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
+      "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "get-intrinsic": "^1.1.3",
+        "is-regex": "^1.1.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/semver": {
+      "version": "6.3.0",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+      "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+      "dev": true,
+      "bin": {
+        "semver": "bin/semver.js"
+      }
+    },
+    "node_modules/shebang-command": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+      "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+      "dev": true,
+      "dependencies": {
+        "shebang-regex": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/shebang-regex": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+      "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/showdown": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.1.0.tgz",
+      "integrity": "sha512-/6NVYu4U819R2pUIk79n67SYgJHWCce0a5xTP979WbNp0FL9MN1I1QK662IDU1b6JzKTvmhgI7T7JYIxBi3kMQ==",
+      "dependencies": {
+        "commander": "^9.0.0"
+      },
+      "bin": {
+        "showdown": "bin/showdown.js"
+      },
+      "funding": {
+        "type": "individual",
+        "url": "https://www.paypal.me/tiviesantos"
+      }
+    },
+    "node_modules/side-channel": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+      "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.0",
+        "get-intrinsic": "^1.0.2",
+        "object-inspect": "^1.9.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/simple-update-notifier": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz",
+      "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==",
+      "dev": true,
+      "dependencies": {
+        "semver": "~7.0.0"
+      },
+      "engines": {
+        "node": ">=8.10.0"
+      }
+    },
+    "node_modules/simple-update-notifier/node_modules/semver": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
+      "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
+      "dev": true,
+      "bin": {
+        "semver": "bin/semver.js"
+      }
+    },
+    "node_modules/string.prototype.trim": {
+      "version": "1.2.7",
+      "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz",
+      "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.1.4",
+        "es-abstract": "^1.20.4"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/string.prototype.trimend": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
+      "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.1.4",
+        "es-abstract": "^1.20.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/string.prototype.trimstart": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
+      "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.1.4",
+        "es-abstract": "^1.20.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/strip-ansi": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+      "dev": true,
+      "dependencies": {
+        "ansi-regex": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/strip-bom": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+      "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/strip-json-comments": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+      "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/supports-color": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+      "dev": true,
+      "dependencies": {
+        "has-flag": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/supports-preserve-symlinks-flag": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+      "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/text-table": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+      "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+      "dev": true
+    },
+    "node_modules/to-regex-range": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+      "dev": true,
+      "dependencies": {
+        "is-number": "^7.0.0"
+      },
+      "engines": {
+        "node": ">=8.0"
+      }
+    },
+    "node_modules/touch": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
+      "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
+      "dev": true,
+      "dependencies": {
+        "nopt": "~1.0.10"
+      },
+      "bin": {
+        "nodetouch": "bin/nodetouch.js"
+      }
+    },
+    "node_modules/tsconfig-paths": {
+      "version": "3.14.2",
+      "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz",
+      "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==",
+      "dev": true,
+      "dependencies": {
+        "@types/json5": "^0.0.29",
+        "json5": "^1.0.2",
+        "minimist": "^1.2.6",
+        "strip-bom": "^3.0.0"
+      }
+    },
+    "node_modules/type-check": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+      "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+      "dev": true,
+      "dependencies": {
+        "prelude-ls": "^1.2.1"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/type-fest": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+      "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/typed-array-length": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
+      "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "for-each": "^0.3.3",
+        "is-typed-array": "^1.1.9"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/unbox-primitive": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+      "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "has-bigints": "^1.0.2",
+        "has-symbols": "^1.0.3",
+        "which-boxed-primitive": "^1.0.2"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/undefsafe": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
+      "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==",
+      "dev": true
+    },
+    "node_modules/uri-js": {
+      "version": "4.4.1",
+      "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+      "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+      "dev": true,
+      "dependencies": {
+        "punycode": "^2.1.0"
+      }
+    },
+    "node_modules/which": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+      "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+      "dev": true,
+      "dependencies": {
+        "isexe": "^2.0.0"
+      },
+      "bin": {
+        "node-which": "bin/node-which"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/which-boxed-primitive": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+      "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+      "dev": true,
+      "dependencies": {
+        "is-bigint": "^1.0.1",
+        "is-boolean-object": "^1.1.0",
+        "is-number-object": "^1.0.4",
+        "is-string": "^1.0.5",
+        "is-symbol": "^1.0.3"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/which-typed-array": {
+      "version": "1.1.9",
+      "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz",
+      "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==",
+      "dev": true,
+      "dependencies": {
+        "available-typed-arrays": "^1.0.5",
+        "call-bind": "^1.0.2",
+        "for-each": "^0.3.3",
+        "gopd": "^1.0.1",
+        "has-tostringtag": "^1.0.0",
+        "is-typed-array": "^1.1.10"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/word-wrap": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+      "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+      "dev": true
+    },
+    "node_modules/yocto-queue": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+      "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    }
+  }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..a31d855
--- /dev/null
+++ b/package.json
@@ -0,0 +1,28 @@
+{
+  "name": "rust",
+  "private": true,
+  "version": "1.0.0",
+  "scripts": {
+    "lint:lessons": "prettier --write ./frontend/lessons/*/*.yaml",
+    "lint": "npm run lint:lessons && npm run lint:webassembly && eslint --fix generate.js docs/",
+    "prebuild": "npm run clean",
+    "build": "node ./frontend/generate.js ./frontend/lessons docs",
+    "serve": "npm run build && python fast.py",
+    "clean": "rimraf --glob ./docs/*.html",
+    "watch": "nodemon -w ./frontend/lessons/**/* -e yaml --exec npm run serve",
+    "tauri": "tauri"
+  },
+  "dependencies": {
+    "js-yaml": "^4.1.0",
+    "showdown": "^2.1.0"
+  },
+  "devDependencies": {
+    "@tauri-apps/cli": "^1.2.3",
+    "eslint": "^8.35.0",
+    "eslint-config-airbnb-base": "^15.0.0",
+    "eslint-plugin-import": "^2.27.5",
+    "nodemon": "^2.0.21",
+    "prettier": "^2.8.4",
+    "rimraf": "^4.4.0"
+  }
+}
\ No newline at end of file
diff --git a/public/CNAME b/public/CNAME
deleted file mode 100644
index 21c0f8d..0000000
--- a/public/CNAME
+++ /dev/null
@@ -1 +0,0 @@
-rust-tutorial.site
\ No newline at end of file
diff --git a/public/images/hylee_512.jpg b/public/images/hylee_512.jpg
deleted file mode 100644
index b8a2560909a1aa0a0361d3f93fa2be4b528f7b3a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 51474
zcmex=<NpH&0WUXCHwH!qMurIt6Bro&|6`E%admW22uV%O$ji^kPtQy(R`ASA)>8;G
z)H5(-_<x(Bg@Kiom4lUohn<~=hm(_&hnI(khliI0z{twM!Ntx6GJuzdizKZOTmBzm
zT*Sb@$jS%?3{b$x#LU9V#?HaX#m&gT43+{B5LqNi0R|>UW@aW9W>!`f76t~!T1F;j
z1{Oh9Aw@$+HsQcTcBMiQqsEB~Ih36?9uy6__(8=usi=vQOH5osQc6`#T|-mL#MI2(
z!qUpw#nsK-!_zA`Bs45MA~GsDB{eNQBQvYGq_nKOqOz*FrM0cSqqA$$<SA39O`kDy
z)}qBrmM&YqV&$q$o40J;wtdIWU55@IIeP5)iIb-;UA}Vl+VvYZZ#{hU_{q~}&tJTJ
z_3_i^FJHfX|MByeAOjO46AKG73p>ckj7;SWj7-deEUb!#Y(kEK?1_cKN=A(wB2E(*
zZam1TY#j7KG^yw!mzavlL)DKUSA!i*oSU1-ax~n{a3}viz#z!Mw2Fy=nNg5|Nsy6Q
zkn#U51|DWc1|~sfK?Zw<FIivC8^i=LW(Wi@I&fcV?7q~%#Sq1yArZjzWdSP`CS71^
z>|%&wFm&K{;07_G7&I6&7{Id3OBqBMk|w+nIU>Rkz?9S=*1*N!#h}5c!LR@<HHD#M
zff?TvhD(MHoLvl>JYGp$&O!}bNzx9S4lN6q8n_tzrZ5CB1uz9LItV@%;fP|031IAE
zumag{Cf3*rGQIIeOn_nrBN)mZy1;b7wsisP0;Wd3V;T%E9gZhWXkN-7tJ$z)LD_~K
zOT>7RCPZkq9$lQk6QFQRlRx2@W<yfLhKmmEAm@pTv`H*8II0-o6U^Hz!rF3_3F2Hs
z4`zvF_KJocEH=R)x3er@S-^5kLtqNSj0MaR%M>*j7O*T}Y7lDRV(4pfJ<2TBz{MuQ
z5yd9Lu!YCaA;QohN0-5ZCm^(C!F<O<4I8%bfczl_3XFmUIZ>?H+&w|Ots*=zK@3L?
zM1mL#9lnW+G#L6YO<*(hG2?QOSf*$dAkD#Mq`_DfAkAjz!0nL~EYMSU;I#vHmorZ=
zqoKnZkv28Wu0zQp92$(Euyl|(%AlsfXxNpY?!_jtfaNHIxx_NvW|0Ob4Q|e!U=_b9
z3?OZ+46+(bHUWx-T?`tstqaV!7z`cWNG#CNc+}wZWkJ#f+oneDOB18HyBJ~um@X)0
zFuF3d9+hU;aa3Gj#}dOU3;|4y4%{Bq+zxEeC<jHEp#v*};?K<PME3X<3mA9EPgU$Y
z${@nf@>cT80+!I@>MKFf)4;{x6To<>L8w7k<cOM~1G^W4Pk^E(Lx3T_2*VVHDaX`6
z!7Ig(%hKJ&o;c&EQ5hE~-7ro$o|wtndXzEYsNoGmhc)_M&NnoBG#E1&T@|~*uI$rb
z%w*WHfc2#VD}(h?MOFr@8Ldo>-IpeO6KfC`VE`p$P$C7TKoGBsA@lW@1q>ft8BF{9
z*grh}{AB?rD+7BML(iNI@y8leUOI3(fI^AUDuB^}vj?0KIeUTy=4vo3VEeL!5tMFy
zk{UZ5I6-;CZwkYdlSxSpH+%xbgqIpQi{vm{1=zN}bU3;o(Semg<Ukag!~)i1nhaYQ
zw&XBfV$5L7WZ0|0Sm?mr6D$zKc;!HV2BW)3n;s-IUxGp<ia~?noW%lGP=+zx+^4~$
zZyWNqe!}lBe|Q<}3(m{UZ)GrYDr_jY|ImSfS-P;vt=OSmJK6GW7n}Wp1sso_O#8*f
zFnuk9vOu%?RtD}l#SYvKoDj!?Q;GvCgPNg_Qvg%a1Wu4&{HE||FlsOw`Zy(vupJU~
zU}cb45VqkKi_r{-7jz9<6}h|EWHlJCY-3o!x{Rq$lVQ;W?n@0~4dP3gL;{#DGddh)
z&{gaMxmTA#gkcLf$Q?M`GML1txSxD1TVZSK%B1PNg4Low`{Nuj?q9PQp5@zw>E4`>
z8tGQH>?He6^@3w|Q}~W+RzF_S{x|oc>{XU5iT>q*Kd;<X+8NpXpMjhEP5)krGkrzQ
zDS|%>`1i|wwK=`uC*OXLkN@Vb{?oE0I9;0a<jdO|CEtfE=`756ox3&S&YRDo8&4d3
zqQB$yai{9?M=R#`y3UL})MWdgf&b-+1>8oHx(ZJ)FE9MEAUP><v%=TE8cbmc%|8Q}
zIZr-c^lw>%{K@|eDRuk*W-&NUKJ?|Q{iO!ko&cr`kdleB3tXrf`Z$#=U|GN{v4kl=
znzJXs5EQ_y;A{wrNS|OqSpzNx&4vKOOpchq4M!KSE@8UFu#D*f<D~}KOA|oJm5Ga?
z+$%vtgkejYE`u(Eo(8BGWt-f^&~bKq(~^4qa}8QCS%tSWD`%NF-Z`=0U;IP2gD;A#
zrXQ&__Oo_0+P>(y{5&n0NxF{vrdh0Yf2`5mon2C2^v2De!Sb(`%-c=6!JjSmx<C51
zv}mb9A4l>1?A?rC(~dvUs=V(s)%41vygh}hV)KN&C){;lVEiJ>{xJB==_ekCYLg!M
zdCz&w&eHQYEAP}MMXQz@2NnKS+Rs&x+ST2+*OsmDpUFEhnS9Sgg;P7;@o6&N$@phD
z%``&Kf5zg4D%$;t>MV6C{ZUuF7aJG8sdAhBcw*lD^ch<wPW-*x#$$%fbNLFsnd}pz
ziX)C5-}vfV)u$MTlsg<+W^;P%B_H(tdGIT&ty;?8;1-7k3zPe*U;i26mon){Pi*+R
z->)jb=+vYIGDTJVum3Y#U%==%d72I1;l>}oE*KqPDFtO3aACrb1TLGw1&*)?!(7b{
zF9yFU4WJ^2DZmg^O@K1FxyaEZs{~M)&9FE@q|kxegJ}ZaOCKgk>SlD{cHn#I(9|I7
z!wQNYP#y(UIt&XqmP~Omx)EUOA;NZCe09ZV-^)h*3itN4E6Dp<ob{gMs<C~O&E}XN
zTdvEi?o$e=VBY`x_&oj%f3nr>j-8S{Z@l-T!yX-n!2NR=3ivlB&p)@R=#y#S_TbsG
z{+=r{knhXNvldaAdH$aLgasVswV4faha2BsY7kj=|35=4gWK^-4Wa?xPsq12SU(kE
z$Y<_i*eLs_gDG8WxfXwZOjX*9H6>R0ohsXJ?VioJsi3<2@%@(}b2|!c7kho2J~vk;
z$dGx#<Q?Dg^X?t^kX>@FTw1Pq(JO8h_cOVt#r&^KJ|KUFzc9@0xW^<<15f#<caL4X
z(tJVQfBAC<@e50ol~=y1wcY>gP=n6<$F}TynOSmr=KW=5u%8dA^g*R1I9q_KMo?`D
z3Ui+zMh%9e4CYIjL8U)a0Ao*pw7^w{EgXhjY!-zcOrQdKuLi>srVES?pz3=8d&vT)
z3rt^@F+FM!U#i#zE*9AXScLB!&)WSoq04%n2J<-^=Z|`)y@IwqIIkevC%(?0aPps3
zGHarm>pVWZ7pVBp5PaRUzp_iH!sP)&weXdHY8#94Puz8Mc{s<W{n_hR^}oKdHMj1F
zTViI-ml?g`#EDyFZ~s{Q&CFp5c8ho$8u}~wXIGM@M92Hf>zDrsV$x|m^slKwgs1jS
z-k%e{=3O}u+M)mJn946MGsY#YGBVYC{*N*lg=M}znjtu;Iw625C;7fe17CPgSAwlX
zUv+f=yZf>%CgaHyR_xpVeCM;Z#%8<aZa<VQ5_ip<KZSLU%$&#X81~+n_vEqYt~B0=
zFC6RiQu^Npozi`zW7gcWeVw&df1c;#YwMGZQa(!koULq^Q}Fluu?rsWB0ECmj(qme
zO<a8J+gVLF4pD#09o;JPn%6P>$&9TOP0POhW7Vyv+cth;Uv0E${tqc3dz)av%g2pQ
zFgh&}JjiYn%v9*W%Am>sX{CYMF`$}^Va8EIP?eW7felnA?A4F}#j1nARgORp)|U>4
zCUAqAe4w%o)G%SXz|_T}%V53K091%Mi-8+^nFVwGG?=Gfw+YT(eCX0iC5<=(yY%E2
ztN33PXqruX?73I)^ZU+!il<i#vrdwDl*iM5di%PI7wfqWo?m3%qr3Cjrjt9G-u@^x
zow-u$$%kg!PgVaJ8WtyZKVkj3#KP{*Ke;If<UAHVDB}P5Z3(kaZ;#T)SM`VHu3=VD
zZM)?3i&a9tzy8Q2CjL!%e{8F`bQ82pxaNNT6?B8+lXw?%;*z}gJ@xaCO%QmXAGdGH
zflL#ImWh`|7>=oY{PnCsNwfbyL*xS1pC6Ah_=_B6WNvWd_$pg3WhQvLB0DhR&Ye3O
zImPa-JaE5nvEALuM_amIomsL=xjg3Mm+$JQwmsZc+@tY!OJRTA%vD7%S{CL;p3><r
zoxd$+bG_Jw`}&`czwmWmt)DwF>&C4OiF@4kIy~8E9}|4R)NHL<wv)=19funaO+WZc
zpu*nyy2-a2^Mfzcm_Po$>A)m|?g=Uf6pQ?Iw-neG?UB0ZarW44xwp%+0$vGrD&{;%
zS6(Q$<I8H}8<)f0`mkSMN@{>KnydmC-41|C!Wj$L9*Z0iY48CRh{7TaQ+Rv=SS*ej
zayuMd!gK)?gAAZNb`)IqFjfU9x-#e*$a*AQVEO{8&rN4D%sc#H0l(VE`A4{O)r?tp
z>s*&<XtoyqyUg})d;QY1r@3NJkLmuBw|q70>A9_XzuWE=`O9m>=h-jIW_wq%WbwvG
zB_o-QFYkQ&_D!UVt>R&V)BEF39eAdFoc(T{?fD-(T(%4ihWY#aFVuhCe{4pBhwwYa
zQ{QbaFmKkm@zkx}|A_`~>u)`2o;!~h$e+K|z^U4&*m&}*&3}gZ>oggse5zc#r4UpP
zEHMmoV}BxPam?SruBnl8%RElWFY*7jGD|+qwc)9)y1*pZXXqf9dt8S9ScAaSxGM~2
zAKPolPi4@^`TC!Miy`yC*YiJLI<y*Z>TO=0S0#Mq0<++@lqd5)|D44z`CRBRRtDQt
z$>aVX7o?teKGDPSZhu_Hjx{BP*_$M$nY*ePf3ljpZt;%C@0nlJYpqKxn%Debzx3A0
z9ct$!{w%g(etS9ND|271cEst0JqxeOyT82E^h&Uu%hBG!@z3jEe&vunKR*8bUToH7
zRv&#>S;`i$g8CZJ?uGDD2DS;j%XFI>Kyk+qz?>l|3T|R;VF&<~nc!xa2p5Ykg9fN+
z*66^u#IOp~%2t{d+L7{PzT?S1tPB<F`}ZmKT5O%V!Y++Nz2Mfq+wLm=8TK~5$=39`
zrR;I&*WUj5Ouj27n>=YaGRgDxSG#2!zgm^4i=A4%BT=N>*3Z_~ZcC2Q&Z)Co*c1NN
zuUrr<B3)Pc)BSsY{0EUXI~#qi-Fr{k&v^SYSTNzl;-@SrC83h`4;^?u%P+I~cK!=f
zzk|-?jRp6ouYc;$HR-OMnSw%H{5(thxr$RCcSTy}^n8)w|IZN0;FCK|&+_??TK}C3
zSSljLpWT{w|8W;XvxL0<DfR`&GI=IB1UfLUIKT2g1LMyNtTNl3mVY#1IAnNRgyGWa
z%aTi&r||m(SaUbn|BYC{KJmB+W9TFH$v*>>H0zT4+PDAw@?~*?)Y=9{S*r_7J+&H4
zSA4g>^x-w>S1$U`@O3{|g6DR2t+EX-U%IYgUtM8*?9<Cn-PLV3);8=ud3#40?;p#z
zbJpi{-7<P{uF`##-L%VFJ>D-8TKV8ZZU5q`YPq(phNc;e2H-MLioq*EqygNCO==JZ
zRg5#1Z)gEU=}QO31soa@TNw6&8hI}rxE&ZCfs4#?FBV+}T?0l?<he5FGN|!iYOv{l
zq~Bw|@yg9e50*0qZ}`v5e8Zo1T>bLLHBa6y(lgw*{9J{5vF$;lNk=|Uiuihd|Kp<x
zrTp`1SMT|-p!R;<jj#4zOh*}1cPKt#PftA|Q~fJwgOJ@->7t@)zJ@BU1qwkObuOQ!
z|E>$Elhv$ZR9SrPKSRv#4*60yk?O*u%)<Fob_9sX6|jF^oLD8WWOjv0@r?p|`S_&@
z8`UoPMLhWSc7A?Lt>z7v)BNB6Io|%yaP?Y)R9c^%_<i*s`x$S4J}b=_e*U16VxQHo
ze`<{r8<tDYm}cwLGk^J31<}P8iVX4PD%+n}$WLXEPgAKmQ{3}_i=pF)2&?7!$MgSf
z)on9fWckoT{%zqulQsvXbc?|A+cFsMr)QjGN$A_MO(V_lQX>an?cWuGS{uF`f9fE*
ztTlS!!7slqiyd{B_G38k*o2|E&t2{dW2Ul7e%#_o?8{gD+c)LF_Pi$_mS<O$u>WUR
z?{*+l@&2a`2j!nD|M~1=rfZYBFZdvH^X*$R`olh`_sIK~_MTL9yQ%!<gnei6ALn&;
zix;j<`X%9I8~CMn&B{Wlvw61{7f4hk{Hm(e4i>slAIHmJ1&V7`25`q)4cxx;VR;$E
z=)=??<)+!4sKKbgB*g~m9f2bs+(}|yArQdSl>izj2$I+V8a+A6Q1nmp8sFq}l@*7K
z7=QK$6drKAyWjEJ<O|v1$xn2>{@gurX<NjTd6nw6-ts|J*A1^t*PQ%(@@biQ-F-{=
z4)AqZ&-?e){7s;+$C~mp<;jcs?myql5ZmXe^2o6DRqe`-<V7nFs`f8<-Ty+fW1=z_
zC&Pb+-Sa;@sI$#rN}b^Pa`Nl%?w`&wYkTjQSNV&H{kaFn<JQJk;+GkO&%e^_;98^O
zm~Ysg`0`zKkfiiko%;njfj8>ImM|x_-e2(e`t=v~>%ADJE)4K{=bs~IFL(1-0Lv1I
zE4jD!E#UKi{Mv^@>Tx~u_61*-Fg3Xc_|;a}FSnn|yn*fby$AL4kIZtu;jE;8=U8>h
ze};(;UC$ExXZQR{pJgVoQis2xh<#mkEw6&CN}<M2XTjSH3ICKDr*umGbP#DXm?qc!
zVR0gtPfJ2lgQkx}sf69#mmS?YJ8ob9w7}(qpXkn?{_FFP)VJC;Try}fU+=eEcE8>g
z#yn1@Nt=paxPMukU@G|M=<(7Q^$S;t9ezCJxWZh!@cwDcKmT&P_Hn;x&u`<W7yhR5
zg%RW1*Zu#te_eZd=ULU$D__sqaO%N-hNwlHA_<^AVF`FB2-JuI4|OqWGPKP*pvojP
zLx2k$=UYI%e}(|2M-5_)TpEm-4G#<<H7rwuq{(U~Nr?v<C(nyC{Iq{0-Yp%zE8}tP
zg=1wa;&;#c@m2D1`Ny(H8zx&N%EkH{Pb#vDsh{_A&CP{uUt_)}A7ht4y?v|4>1o$|
zDyKgUzP-%;Z)qlD?NsG}j)TEFW&JPwXRxXk3JaBd&??t#-T#A&&3p5y;Ln2dRxSSZ
zpP^T`A)mQ5l*fLLxA~7?f#baWGjGpZW$~ZEzL!~BLm?;h^?CchSrb$QWO4&S%8%Et
zHPBtUf69W*4AvUozAoTcvNKKE;nu$9mA_^=IDIlR5MRDxftf<a?e`}fV!oV^UuxUH
z^I|b~gL~oe*B)G#{3mYZ^ZX)zZNiCL>4E=b?W5RyrrV@6pI^$P>ggbF%=+c-KZym&
zQbvE;oxd{FYdPO&nW^x53FE($k0wO8P4WD`!GABa@(p%ByS4^pOZJsa69i5wzQ6og
zeyXA1N`{0luWVO{9bMXE9}_H?#&GTI#0%fv)E}B56?Ak<p5yVLy$8Ro5_pmF;_iQj
z`5XVWO*qSN;NkV{@qu6E=50Cf;*a%8S*=%=Q>NT{(0qFy$A5;>c9u}}WJ~SEuf4fj
zr>V@8ka)t-Q}X=s<#~&@mdNau0@b~sK}jzL5Co5HvR#r0U`lG_U8W?J3>q+v0*zQg
zn#Upx@1`6G^k7|(yn<l?!-PHaG#MZ57y476qm*lQUHVCkaTW7*`F6=QPqj086Qy5$
zv&%^PJiAzkef^Jmujf|o9G*EP2Od=M2fH@x<uN>ZzVub?U&gOrzlery;M4Iu{kebF
z-hFH8ml}#no}OoT{Nr|4xkD3j!hU=BtZ_I|zsHaL$NURHH@F2?pFZ=(=|4khb#0-;
z>5J|X5*<R-PafL`zx-mt$jms2|MZ)^_V)j_G8kvN@}9dl<6S)$L)CeOms4yv8DGEt
z$KQlw&B@)9Zg0Fk&;I;U1{>Mt%d%{R$1nfMY>cU#G><b>W={Hl2B#&=c4z0+$1Q7|
zHtCY7O!MXa>K{ZHObqo|{xQ^Bv6wi@C$R6oXYtQz!jbHn67?5W7g+RjR)62|$8w3$
z@@ec2^;4Mzo0rEhzH|SygvIsqar>!?9jkVpS89A?)B18w0E@Lz;dT2~#*N%ZxBOX>
zyxruap39_CW#x^s^@e{lK8sJRm9BdDQ+}ez(QL5=g#yz58LrMV=ezm-%iGWm?OyXD
zb>^(Al)qAMWy`RkFPP7uw)Xgs{|r`a8HZe&6YO69bv4YX&Oa<KDz5Ie>tukjp#ACB
zee)KCU99D+T%FZl<UgVDs=xDJZD*w{XtY}eFo8yYm>Pr{geI^usCzMFF5u8=01bwN
zYH<;UEgVq{Q4BG`jCVD80v))!926}clrG@2K6>j_McvtFX>w@>4PQ>a@B8t(|J>4j
zp+$?<y{V~Qaev=(>$^UlEc5*1>W}TLId^33LYBhhXUy{&<by9YPK)SpyHND}z1->7
zU+t!R6Xf=Z$&F+Bd%>Fjm48rXqgUi^;o}S5dvGvj`uo{xxka}b&0(?p&tOyiPjdN&
z?t>|^ZkJ!aec3mEF0-EQZjHMKzC36C`0^*04r^vgL<K|o&htP2YPKD%nCJGiO72PV
z59V8qLRO9cHtV_P&3{s>af6LD`9K`Q3kzoZ^<Nioq&T$C+aJS!{Ex;Br@jKCm|w+>
zKS~yusohh4yztwT{|sMOFt!CP-qrJba#OwVUkyotpZ{`l<?b-m%lR_t=)I|#!}za4
zL^O%>T?=ytvr6&npIx*2jv3#vu33HH+Y%!g>r(ZX9%ZW0W#_9Hrl(zO{Q2FaJ;`-@
z-sAO-|LVQiCK^Qvp5u_)TlHn>hBxjea^ZgaPqnCZ@!0IEn%8`3WrnxZ+Vd>U4!zyp
zO*8nItN$~6{m-y)A>*<Q4CV_CncoY(P&M&yz1Qj+VQ<1R=3RL&Z{pDZga7)CZ}yF=
zl&<OOT_{)AxRZQgR&|z~%l#vv6~{P^%lCgVVO*VGt~>j9Ik(6pGZw*{jVG3G)Zh4Z
zdF$2}TYrn}>Sz4G(q*O7P~7iO)%C*fxpvID<9-~<%1aHoL1V2}pqUL&qG4IU0vfIs
zVVJRmDS)*w1l*Q)U}eyF)X43?eW^hta0A~GLr`B#SiWHill2;{$iAy_z6>?9KPn$t
z`-uB9kBlRy#=a-D&;I;pu(Q>k<@f%?tENphkCVRU30hUp5B|&QxMH<|yv2hDk8f1{
zt$q21)l=<rUFggC=l^_NqPXeo)A@SFpEo?0fBxCz&jkLq8!|%v*SGH#V~#WNa1$+j
zb^i$ahJR_R6FFG=+zy4h@AY4C=}m@v!W~P+iho+OrzT0>6k!S8JG)P_tz)g~CWSM5
zs_Vb*{$~@cvL-dvUTebQ{q?7M8+ta@6@D)L&tUQL%X^0^_H+Jc%J>fVJpNT@b6HUH
zR)d`JoZ|C8O&Gbo&z~^-S8E+$yG`<$hr{g__CL?<_It7L^4&3>RD9X~LXd>bOX<Q%
zcTc{sU+{~s_9ai_va*+rKN9Mge|=rK(^KGh{@x9K^*lkkN`I`1Jqj$&Z`GbvBsJlM
zOTvbiFN4oSE%W>3^qARl>6viVUBb=_cF%dtP#AnBXnE0(3r~E^jH(N7U;nuDO#G&d
z;tU;+xZ{(L`zPLh?LA|;$I`+@Mro$fGycuHH}m_lC8;NK`K<n(Tzk&2M@H~{lv=Tu
z%`$6EnPkzlloe;@tbBgq67!->J8k%P-J7@7d&AlrmpH$bvl&mVe`ss@YG3=U6_YF*
zwjWkF<73?aZr+T4^QRiQty$#Y)swu=e*WWolP){{oP4x%$_jPmpZ^)=*==>1H}S*e
zBZpn~{gyrcr~1y^CG#KDKg?hF!hMJBYLDF+>84jp>=t%3Ezb8T?3=proF{aq0yNeS
z#*opSwh5xE8Z;Oo1=7Q#pz-=I3s^<KgUz}O`d$p5{X65-{vEk|i^ES(kL~L5kl=&)
z-}@Eq#oh+0r(}wj)vRPox%b>&U%vBIam?{ZFSpOLlRhk-|8KA2o6xD7%KGMAImz?(
z)Orc|&cz8rrrejCd>JyhTiTxn?%i9>zu@1N_leOPRL(qqW@$J7Q8j;J;Mp4&-EL3r
z^?&o2^Rwamiy{9RjDIBGxy0K!>+fy0F!jba_6%0_^Rm9F<d`$|+sJ&AfB2u_`gfBf
zmgg#;_WSuU{3>5yrc{1ocX;Fd{|r~`*BU5%j<o2JtF>RtBy#ISc**gMSM0@aU7M3m
z9iCv$+p&1P^AGt?nH{aqLadV|&#(Xa{NoZsuAlWb?dmqn_wQ&tXa2yxRhoyzSO47I
zzg7R77kpc}GmJ6A@r2};^Nv5t?W4|~xazW(t?SaKBVV6wer6V6rLE7;e9WqR#WO2q
z=H**2m@x>{B`rKzVkN>mqsH#-ZTZ%u=gFbWN%}m`Wf<zF%ykYG-MDI=Ou+t<<h=>c
zR7JM9EO&7*U|9N=du!L(MJ?ypH!MG&V6gm>i*w`Tug68R()84MAIWm$eikg?tLih3
z6`1ebx5R4ksl2silQ^E#iQbs`d~334M{pCnvh1s#Z@Ra9R+UW(`Sn#kJ}<N5)!HTI
z+)wuNSqWag*}mM=L4Af>@)X{6UfX{gF%;C_t=qXcu~Krwv~3d>f0dLEs0tQ4dcrQo
zW6ydg{)I39)w&vrrQO-T*U6Ek<n_c0mzZD2xBt3$tz^fNG@cV?+mk0AtCxD|_u@(R
z)En<sbqX&9j~-58n8Gj@H0=QzPgiA7We8ga9#(qPz&C|qQ6skpD^qVnxtB9|o+yLK
zGRAH9>;((>r`RcF1;xi(KFQCY>UoYqI;7vv$l?3>s^^of7HqNk^xSNPg8UIii}&*i
zBc*;S+x};`cwPR;{pVknZ|LgaJZI$b<ahnA7rgDcpY|o$CI74UVo3YcJa75WASQz|
z$3^%Pe`+6JAE2=zW|Haclk)!m8A7EQ7i^rK=lA&KW%;ND`o{%dFvReAKJNeU<y|IE
zB?Is3^Xu3D{37zFb%TKWmER8--@mHOe51q`yXPI3ZB<>|@)w$X*F<BEnU|>lm_7Mt
z`8Sbo0v9Hoxo>D|{rULi1-}9m`&NsenpvLz`Jbz9+e90)Gso>K&%cbcjJWH*aVy`9
z<I=0y?T-5-CfA*IO;cv>I(p)+!`oaF=EhGS1D@n9D7{tRenK+!z}MrS*33@ZvofP^
z5<mY!h1Qq<iUaG8=H$9Bn%HMAHQVsBiv4f%%wra7-dqfKl4h1Tag6b0;Kt153l3*2
zDZJL*v)p#V3%1(b7uZyfPC9<fpz`^p?i;gZ)~!yFyVEAazx!y3<LiY&eeLb9XXQ^i
zy7Ax_(HBSOg*-e}a9yCGLVmv23wP--<Bx635@!QvZq6-!`gn4y`oyblRlob=y%KUf
z70YgFp2*{rJ@`cCcPaZTjU6UtkHk_f4_0jK53-i8`Ojdrh(oD<Pgmgy<rnuK6#lr(
z9A<W}z3||B2f4i;+P)k$xwfj{G2hDhQ`_BsnHRqP5w@Y0M@u`aR%*Gjt?lYy!3;)F
z?Z^n4Lhynw0$>VYjY`m1z`B4vNMObSR%Q`~Ee!<=lDgQeW;8X31hA!ToS3V2k28q#
z->d%&f`3*pKfYTQZ2M)>3BM~g=}qho_R}xzjC-C^;;vP!E$P2r?(u(y^?z1zY2Qhx
zo;QU*NuurYLFJc6nWVMza=xlB-|(Noeky}oxcdD+{~5FrY?AoqSN}}^^`Ak@dBc;~
z`G!w^)%zdc%b1kW&+`52zow~gLc0qR=AJ#im-)tyOYa`YuD(-l_ojYn=+SImp;ie$
z<9`(k!t@Sj#g?0&vQGcW|2nw(rO=h!HTxbZ?Vcn0<a1NuoT{D=i|?-u3j3<~_e6t2
z;ND&7Jzw)<_kOUgSfw((aI$v8%*V_>+#jA)oBGD2``fOHI5*Gl^3O$EmQB1WA*(uX
zZXdgRYmsHl>%eWt{nMA2v@qCvoji5yW8(`c`}Px(i3i?B-nn&3J!)3g@lO*tZ8x45
z)xEK0*Wx^G<-Ycw0{*3b3%9kcF<UEf&Y=E$)sk7tZuWK84k*lbu&%c<jTS$-^zHJZ
z#2n)}g7=oLE?4{4qA&3B{?|1#7hPDBbUgG=wr%&9)XW7IkC#`m^+ew;U@N?|q*`X*
zq6Kcjzi%j1$w$3dzV}qNFTeRmwHd0)`ErXttUFb-ubtPW;@i^Y65aYv+FOlJPpML#
zGD)oGL6PyLZSLA(vfR0r@_LoWe*~-CZCHJD^N;qs-@g54;Npty{xILPyk1DI_R2SV
z=a7ynk#vX20_>+=d3^iNVC!n2cU$PAOzp!f^3Of^4j&LtJ000N;eq$m<Ljzx9c8M!
zc4VA+zVVw#dQnr=qg{M~UqB<N4A5RXAE*qQ!Z3v~Xa=7MLjdzi4ps(T1raWWQf850
zaLuXj#jv_o=q$I}A5EFR>^8p(9puG+%u3Df?5R9_>W1CH9e;jZSFYMEyE0Olqoz6I
zx$Li`C7Txa$b2onP{!0KdMCO6T!REd@WktXzAWI_KI5mXFN4yY50$p{e@ohIXXrEa
zw%N!%XW*LDUC=(|kxi}t&%YVB3%=-ZaL9a|fBpV{hV@=gKYcYX`D<O&>CfHMc>h(c
zZRN9trxz|s%=HT2&a3^_x#RkNpMSD{S4Ye^v5cdm!1L?*`j!8hyDny=9IQEcdmiKC
z!Y^L}J$LgeufMd#X~)!d_ILe%XZ-$ES9;QF+V{Y_e$#K&E3espse8hLaOH`&7L<IG
z;+|w+Z*}(c!V3#_&Ff$GqAr4^LEGBQR;=TV;wBC@HV%o$UArT?C#&{-Qz$6BwtU(z
z@w2DaU*5PrJ4-1>&f{JE+)U9^$(pe*V!K2o51hZgHe<~;<D9IQAGJ9d6#j{Z#q!#&
zS$leEr=IR7ONsZ#Wwkkvz5dhDvgXSlpJ(kKj;}5HYLypWxO=O2tzfoqM_J!g<{KyX
zbtEgK|M}1071z4%xM(r6qV|pX({JBfYb}x(ce68OlH0%bSJl_L!VD(a^v7K4(7kzF
zd0Y0CmUsPDg;zdvpV(%u%u;Xl%AIARXEL8z^OpX&`OoeD?YeMqwa}jr0urLOwa)wj
znQxT-2unQS<L5v4OKyuUSL*4G!){z3E^dE0Ymr;@j^0zxpVs`7lrU8&iQ`Wc+n(Kc
zaH1doEB9-2Ov;q%Ilt|xS@A18@`M$5)sq(kXqk`=sLc<WM(YV+^-9oX&{)EBL9r@`
zF@w=vgeTD9c(A}02GIJTwPj34o_x7+|HLKcM{8p^^XAK_J-Tc4`DM&D>#$jp<;<B+
zlGROBCEpl%&p*7a(8q;mPkQ643??Nb1LM~}|1*4D$+6;&?BcCT?JWP^vo%gq(eV@i
zY!k9+lBvQ59k+|mwr{YIe;j!BlS$yu*@Z7ZIT<$Z+@&FT{()7U{nV73t9pB9m?Ry4
z#`EJ?k@bIulIp5&E1qwkxT*C&!}<f=LFvaXnQ5F8tdMx;XIsS>%F;QzI;Z&4Va3>Y
z1}m?~9o|-W=eqCPMV2ygZ_et;&&dtE@%=x8-PE-7+J|!)?uyQPSkRE7zkcTz*@pLL
zi$YfB3f}jc`sU`VYqtUu7-GVi(^pLGTkmtx>??EEq`MPu+{}D6hjn>UwE2Q<w~Tv|
zm*<~qty`8m{hAJ6yQs_Cg-T9`-#w6<c~rNG-*4%bmapm`mZx87yLM7|iDFe@l*WyA
zwa6QL(ig1SIBze<lOV?9%$GK2Z}k4C;bEO@dS0bOf5$?#YOaGXH}29BHD%2Sou@ph
zc30AbUouC}uFgAYTU8x$XR}bWpmgn}^3ufHue2tst~)NcF5;^~;jj8%uXoMqlbUD~
z9<}ktnUI9=<zkhW!YrBQMIO((^Cacssbsn6-jmm5ul#4I<WGKOCGWNMMmJx|tvyBj
zTJE4I3aS$6^-ljhak|X}jz3mcCj~X6-biMVxx#bp!{39OudZEMAnDRj`gn5Vm)D`P
zQYqeP{X5q@6Lwm&;|ZVfoND>1*A}NkczgmB7BE3Zn?VzNpyn6D0<Mw+Q4SgloIneV
z4mEZ=9DV7~y37!?dP|of@XF?Il}w+!<^(Z6x?9@2=G@%a*v{j5e)e2Xs?7SXZZdx2
zX3%C|(ZK%rt;3mil}9FTs(xKyJ|w1CrB^?_ekp^)JDEv)EuSx|{Wt$yV~)e>zT(E$
z_a>a)_MvjQENj}`-YLGnb1fNJ_|MNjwJGP8rflreJ^@x~hril0cgt$2eO)$dl{4da
z_qd<7?LQxFE_#tI@y)!2RbWkWqHMGb&wmCpTZTWcwO_BlQxbLR#NmAx*S@)MzTn2~
zX*S8_i~63+uY9((=k_HvqvaB-H=o?9eSeEk2h#$Z2VcMZ*<Gi$mt%EaW%1N6(X#C=
zHrn6bf4SXyS4hUKeew419seHv+u9p7XWyIh*H20>EI#}Gbn2#e{~1nvyRB=fED_lA
z;BSHb^qTNFPm8Yx2Htq3t1D9S+GFvuE!$FG8HV-T-6cICI_JRGwYnG1?tPQJB;xVb
z&>lS>@jUh{GbV=}4}!li{<vj()Q~CJCV=0`>7dBO+qdSOm~Hmv)Feypum3`OwwZQa
zS@W17Z9|nx#-5&^x7jn+l|LzQ&z>N>U2dwfQXOA)&<$HI<3pUFCW+@y)-%#a3yvft
z^zr|E>2WcqSiEducz%GV&9^_<6}yc&m5<kWF0a(N`SQ=^^G|<;uk;JI*)?(F)9Vv*
zlVoxg{;}<zcvvN{;^U|7{ts=B|7VD}I`b#TWRbtOOU~8H#~<InK8i6TYMW{bgG{<Y
zy;X*!?By*w5e5E|OO9@2n|D;*jeYKcm9l-sUD-}?$M4S)yr0a{&a%hDQ}!hD`n{!d
z(l$P75NhP~0grScN;a+#hAj+>8o5Ag+g`C*1Q=#^#7*G=4S7W|G`;+@V&=v<%ntn>
zf5H`h=e%3TQOS9H;kn9hvf9(4=T5xw_{rW0N%sCvyPA5r1D`#;&B5^c?LW2Nw$At-
z54S7F7+%i1`)g9=g1WSlmT9*Ze~`a^|N5myu}9l7?b75mUcda$aNT6)BDcR&XL~m+
z&j0+YI*j+mi!STE=B_7L_}HJue42QbL$-8Z|3!w!`>$Nrp4zumc;U8723E<kh7sGc
zruO>3X}u+RjOp{s^I6?DE*<Z#cpY-fcUyhO+rab8J(F)#*K2*rIKJ}P_4zm5Wgnhp
z@{P;g@sm-~KI-M1pQ7ioLU!Jt_{DZ=PuawdMU0{bi{;PlS+4!+<~xlQtM%HRuBotC
zvo2%e&CG9$nQvU1nBsZk)q?G}w3o`{e$#cA5c#G$-GN!;-NXr(91buq^*7z7t9Y>E
zjlGqgw&?RI3m&9Rp1Ms>qtEi&hvLa^J-u!j&B@=G;AJJpYL_i|Ds1BC6UQ%Ks1xlj
zzgl~2Wwg`c9X5^sL?@TuxT?0rSTCkc;&}WgZT6je!kUC9PClOKp_?mkorTZh*Ol8F
zy3Sdi_tX5@ePW>%b5M}w?cFsi75+1PZOzysY{4&hYstjk!zz8e<-uh)9<CHV@>M!s
zWvcQ*8^J%TuQu;|>KXC;X~5!%pUS?9Zafz>O;GY@CHvHGU;i_F4Sd0T@dU#!DTZlp
zn~%R^`0M_8nbO?8u!;k}Z?|2%G3Vpur5x=We{nAEi9CGl&asxh8P;yDrE}V*GN>6k
zyisKW&5#~ZRS=rN$^b6S82vyCj#(@~_2U&0(6p%dQf9G6ZU?>v9M6s&J7?H@eYqFI
zkN%?@JKjIzDB8G@y>IP2Yd-enQO~FKyy!d5@t;9c_GVwiyu;gnTytyfQ2n&y+{2#7
z8~!uAp7(`k!z7za`4hLXKCGTorSVmL|6?C+1BX-_-tJ$2?WJ6m>#m(#S}4`W?qJ0q
z{I0fE+pNS@_Sy8L?$)>eOwX#{c->@c?RV*)1JeV(<M*%aNLAiuxbfPpmx&G%&vxE6
z_d0fW+x({w1nj2TI{UTiCaHarRX$cwWcc>L$pg$glfSz=_;S0i_?1y}*sfh|VPRoy
ziD#eLtv$(S@=i1_h<oz;_w^Oa7EB5I&v0$|>^FDrEZ3d>=(qBfExuN^W+H70yT3g>
z@pjHU4w*?6G9OqA&gJ?2wUV2nuwYWW@#4OdbKC6o4sA+1DXTYonVp-vY^HYaP33Ky
zw`*81$a}r){Ux)x_N-CgUI*rnYje(}JihceTC+LeUDW0a+r`h=YF$!XE!1&7I6Nu;
zLa><a-<3tJ|J+K?88#j~o34^CqLSF|XD>D1;ldmtOQqhb$$3Ze557F=efh%D<tyV{
zm>Z8}o9z;t*>9DTGyl+rDp|uMo(+Gqm=lYSn|xEx?b?)3cx&1LXRYQhUstju#!M*g
zyHo$`<)S|8u+G#V!#>ON&R_mBDD8Ui=3M4lor-n4vjRWf`1NmwZ9Q|`7Wv>)E7mSN
z;m6e5XSDqCito(VZ|^Nt?p!Sy<P<)|`tpjzw{LI!>VFyf!jbL$^yLbdB#v3LxjPm9
zGdXF#$2k4jy+eXFS3ie{Dz7+k-tPX=n6PC<Rq~aGW($TdV~}53BJ*TQgI9vY0w-wu
ztYrZ+Xd#nN0IL>5paZvu(*>q3Hmk-i&4w*(hb|aiVFRr+XL@WCp#1E9&ou)_9ls92
z`6^Q-SUz57mi(KoIqR_V^G*S_yFGk2*A*}5O#Rg7#><d%<KT%(1Bs?1LTuvKZ{H}j
z&1~GV{OqlXe8!Xh?rXN2w>PVnSFAlcHDlw1RX6V*tF5gn?q4pqb;@p8LtFX7x5Dhw
zScET3yim<|KkC6sy^b%M$8ODApPIK(k6nG8zx>id<8^m^R|IFAuj=jkq@&IF;}W+>
zzLM~|b6tMX_ht9Xed%)NE?>sId&RLkN7){UFN@t}cs$OEe`&_t$=lw4(w_FVEPm$7
z{6!5#>}UK6|H;h|>E7G7?y@KIoZ{nKqdMoC?&Vu_?TmtiOxKIRH^p9V3!0hxv_qwH
zia(b~BwDVWu%_!%^u)8tsyA+WFU(_oAXOM8>G?%B_xRS>o_A_@E^mlCD!ue1v*h!a
zk)BcqZxpH7|GF}1gPFxKem~8d?55ilK1o(ztC^SjS?{Rlg!zXy7n*c$oT((1*m!9}
zp_$)_j%C``5qb{cvYHW#*ezDvNOiC6p8Wcsui{tZyoqHWul7IpNjI)#u=&rxuh4Z(
z?^v!}{JPAepBUJ8NFMxSKewu6N#)k$<g@w;H;);(%lv2P-&)1-Icnqi9U4b?R-U(b
zQGej~wKi5yu9b(ryzcwL$jr31@2)FDb@;*CE_<$YPBL)G@UU%8e?8}4^0jS^Ex+X>
zl0_HJ2v9Txjjnbj@gz0e0MGU^EN}{DSit2Fz;sDq3qt^N!%=3j#_mfqxGy#KEieNu
ziW3Q7y1+j7kNbz)udhijIzBUhy5xDEnghu@MRj8`KW%=(y~E5f$SAzAui^REb!jDw
zG#+*-&n#{{$7U}4ub$C6@t5#%ju|skq(lB*J#X`c<-6VfOO0<AUW;_!kQ2(|!60|?
zi`>3v?F*NL-hA;(Zo&gLX7=C5r`h}Msnu>P+V~>4^L16-+>LJ4$#!3#d(N8@y2VOD
zfO+1bji%e3UD7`+(QOkx=bks!E|vSKI7`*FE}dzYRJUB7$eCoRu2X&OVxwNIU~cZG
z`x?y4{XhS_`ss_)F7Mzx>Dq>CtHdntoW5|hr|Q}&Gozxn8*`Q?AI&^{;oRSVEB`_w
zmM`dQUcT11(f&Y6tl_VK2}b9=7TI!i-m-YqwAZWh-i_Ch?=m;(wlJ?3Ei>Mqcq67v
zY3_ur%0Jy%8of?LO<5W+^SLQ+#7*lNXO(o8`X|oMdX^b;?_0RDRK&?+ZngbCpS6ql
zn|2vBEWf!+?*81Q2N_EO(|>jep3gcIxN%cj$tBT$@m{B{nJRM6c|Pw^i}sB(JNtW*
zn?tq;Tjb_lkT~5}_K#ie>TTbfx05F=DY2;!?zcRDeg5lzrmqgp^O@S`7Rqz?>c)fT
z<^QdE;jVq*OhK}}g~a(wO-^^T_er;^Uzh!LLHV_O%Pg*lTYGODmgE!pQ1PlDdy&?O
zXL)bFSuF&Og{ph8ZkVgVu#CB|iv_gpz@g=+fl%X=mqH>8uNY#IKyCD8hM+Aht_or^
zxE;7O7_T(AJ3Ls;(`4Yj!Zw5XseDJ3z=idvomR{EmAi;fp6_JEIRD(HNgLP1JD=7Q
zXo~q}?^l1`F;ZHw)7t$q!x#1)?7#Omet+$qICp*9@msRVvPS$n?Uu~HGVA1AlWWT_
zOR085Tw$;aytU_KscnX~Y>vQNhLSb9#kt$$pXR>GHkX!Cv-x0g*0oFfY$fZA(;Flt
z51zNXx+lSTqSNIg0$w-naGw7#=kbks^LtA)ZX7(laV>jCuH&sW(l?6iX1@Oss+!lP
zAMAENe7kzy1CG3Ze|t@rHDCREWc4HOLiH&gax))Wys=!nE@b6R^($AK!+YD_9^hXq
zbItI{i|+Y(?oXu3rJAF-rZ4!i&}fd1-*wKOc~@q8w2E(1-llG8(;O_cbXm94%i{`H
zXJ%h$oLe2Vvt~_)pd|ZN?Hf9GFHDYElYDJ<8LRxn$z~fxykh4DhFhvU;Lqwy_Vdmw
zDz7u%+K{K$A|zV*bjB}!2TSz@Ov~Qx<<3;CU6+()FR*6KKDUCiZyf)8{8#9@<d@`5
zH(Niu{7%6ovmZ-Omt{P7yk_$J&qwW3&ivhUQ#9pAS44hC&b=EyH*QJa%~xSJ<DB)g
z)i-a%T@*jwb<4@VT2kRb3yWUiK}+=)>@NdP-xWQ3bNZKj!S0@=hwNv_XykDmU!Q#N
z<#nY^bF8JE>Xlc|ShI4kzn{I-qr#0>mW1^@`6oJeO~$FqO@8bqZ*2SO1Gn*UeLJ{T
z=}p?j$8`#uKY8;tZ?u2DwCc;f_UU0Z%V*qW>TO+jq;k!gbNr_cvwV9~d;C8`)XbSh
z#}2>M5i%(9*Q%fKK4hZqjo;A+tDG`+g_wQ(IC0P4=*eGxg}bg@c>Y;w325UDLjaQ$
ziz<W25zz3x2#1Emlp{e)Ks$e!omWUKYV7uLx?r#%c_l}n12~yh1t?}PpZ}-yQoDZX
zNsZV`PUbv(wY=UpmM*q)+S4uhI77BSD0}W)jkP>=iSmbxukZDAU+^R2QK)O|>I2{H
z<Nh<WJ4T*PUN`Oe6)T;r33^r!!lx=<>#`EyIHncW%Juluiiv^7`TCQN<mJzp$8i4B
z_f;*W!s*OwUvoX!FvaO^%?9J+2?r)r+8+4xdY$1X%ct6<8xP*ko-SnZxk%7(YapB9
zJ2tD|A7f=!<`h|4zuul~{ZFV;xBlwFh@b2$o?q|XKTT^V$MdH*Gt%!=toxK8Vs=&X
z*!?MUem9>rW$FAjsajG!Zm;rboijU69C(tv&yB<GYgjDndE40+_GdrV4Z8g_tWwy9
zN66zHhy9tbJdJyzs<M6m89YADJ+p(g!}d|~cKdfJU%$P-%y2Ew?83Xy;H&Sy%N<|x
z>e0)vg!_sC9ySU8Yz_Z7e_T_Rw))<UyKR5-j=ea4`t>WT!ne+;J3i&*-}Dh-RiE$Z
z65E$~bZ=ngbMD)p)=C=({uDHs?N+&RZ`ZbMuAF-Q$@dmLU7FV}zvkYV84;aN_a&dR
zkY%$<`8eMz&h<sV#g!v#9(I)17z#dDkXv)4TzOl?i&|}$HHm8Hb@p|=dU!7(B3a8)
zMdMw?@#VHg#eLeTsSA&*y(=oZ>A&OW><#>WEzdU|_xWnN^i6V-<y#dMb{(sfWQpUS
zSNR>;G5z7j)aM0(H-zWZxi^1ZS)}W9Jdkxu&+_D)ngkJ+=6OfV+-+ZLFUeVa+uwQf
zWs~R*!L&0)%qMS1MhIE2RQ0oUvzyvH$x4}Ry7T(JU$4vzPc6=4lMrmaEK~d|%un-G
zZ*aDA(52kx^EhpHik?(WUTN2|sbTG()yB?N9xd~$UxsWEw%L93+hT_1#uMw^dbVtQ
zemzP~bfwdU?e>k|*1O8NY|(0xV5s`fFwgPd)U;^1%^$A2Shc<qcjuUIb;62iFC&Y9
zdy>7?EsaAyzb^1_U1$KU%LMN_^kVQz;sWIYhPfI70Y<${Vhu7D3z9B?=iot=xL9Mi
zhtmZ`chJ(kEsVTJv~6;wdsZ`XEa2~{30+n@?O(`&(D0nMma<jMmp{n&7N5*2Ir^gb
zAY0|JhZjl?*s?zjIxBd)BA4mR>>|US{|x<)BThT7n)dwiFDquDZwj^Ar_<NX?fn|u
zb7kq3{EaM^L{0=mHvF--@{R4y=wpxBzoY!q{G7rK&-1()?DsbD`6p<v(z-3-Ip@;L
zlSOX#^<;|pF7NrhxrF@!&)=+_Yj<jKzFm01d6Ck(XTgTYc`UW;+U2iYDYly>RiwJJ
z{XYXo$#kD%Mr9wHPVG2uyYc!fZC7PYN420`KXOhLvEBI)=^kHG@@He%(u9yl-!4wR
z`NuqQ`pZ5x_vLl9)m?cBFI8V<^fRq0s4uy<c;fv0*RLb3nnO<Rf5_k4k;bq=zJjm#
zo&8Bsy9<|ZN|((l+$gX1rf~P`%U>6Lw|aSedhy!JC$>85IMjIH%YTN~A*UT??K|$8
zU%>CjA7}e2*l4rK#UG;8lAEMw9_rzmc5G@-^y~?2j>_z_=5}p7cQ5AspO0VV|7Pi#
z3d?y1el{vNW8lB>U&zk48;b56n(WMDv*l;7<$+iJE7kuqTy@`KT+%iFL&uUeW|}M|
z>Q}y>FAjezX?IfDO`gG_d&jcpwvn6sYIk$3E6+Rht<ZV?0j?dN{xg(usBB|Q{P)79
z*6QM!Uz1Pm;@|RNN>%aC9x1nfGM{_CtM~cW`%Tr0Yt>ldx9vT%yoOD}FNOgAmFGBD
z+*!M)>pP#Pq0y6+g!M9y_b<N^u&3$nX)_@c{jCQBZ#)sG+xbM^@7SiPGuM=usU|kv
zyHg!*ckIQY<mWfO{<>h?`q6e@LgL?hu4Mst9<5r}&%C=NO;h24{L#u+`xbnU`g-w^
z$7ydHyDN%q6~_yId|AD*^DFxyUoG!!_jy5X&mLBOdEH+hcx`)M$Mb2w<W7btg7z<h
zH=}_@p%*xU_A*MdGN>AIUTV<j;uLG_U$EdPgVl^2(5lo|44_dQ$bzLP1`X!J`_z6E
zpDC;ss|fzocznNO<5yE5w~1vJettOo)bQ@fSJ})9-q)xdik>2)^}CPF`aeT!qV3G9
zzBd=YvX$b$)7*FUdBm4>*=thW?w|gXm7B{Oy>D@f?}8QV6HmTAYaN{wY^gmv;b(f#
zy@$o~gYF-(c(l?icw?Nk!Rn26H4_{pPyA=7uyeE5@;|fQdGW@r3@i!madYajUwZxJ
z%wA<R+u9}cgyeq)<{SSR=4re9mhdk2e{;gktVjOXx+l3;I&P^M_JnM9d6VwHyzkKF
ztYfQO*)N~!J-lK?;j8VY!QmU{nl7`;-Fe)?*4}Gw*m9rLOaB=PXFY6uxrMLG*z?5I
zwK`iro2^wj$i7!F-MZg7RqgTo^UMD;tlPG8zV0^7nA6*zy?-5ax7+JiiRJ6rO^0py
z6JJMc%UYbv)8c;jT-C>Wi{9*3j*}Lj+<bW-Ymo0uOO4qAnH!JxPgmOVG|-?Z|HSpC
zV<xf;|E6Z0IJo`J9_3#5GY+eFy*l&tMSEq2n;ZX9>xEf+dUmf6-4|e0dNk#Ja>iP{
zVsnEW6*Y!G=dWBVf0Lc}+~C^3N^4IpBhIhiWcN!gIk;Nrs7Szr+&dlzB_0S^{|YLX
z+V1p1&5xbA=U4H|2&vwwE-w8skADW(wTnIq+IV|X@iE75>t<OQ_pRP!mv^PZSfGCI
zKi_J@3m=~Dd|@a0q48>@OIL`&gD<a7q}nY>Nxl;9<ZiMww|_-Ru92<UO@)3N#!1!l
zUw&C@W@wrr0p1`BT5O^U+DxPX+Ig&|!Ohu~nAEVK@lfN!D<ZlEVvXI99`yy#LZ{XR
zte{dffGuug_P5>XEh`gVg*W%{$5daJje0eGclPE>3tOkAo~;YL@H6{Jo!r0EMNFGC
zlN*jJFusp;Ta%TsrM7of;&S)!RqsMSJT{n+D|y^Pw!o_1YTFjeM{h2EW9yr-wfEy`
zjmOI+)^SICnXGH^^UxPA`(Iz1@7?WN`r-agna>?p<QVevueH5R=&5Jsd(3w;G~cJs
z{_wA>3VBC66jJkw9FE&ReCcfB?=2m;%C#*&>U^$y-VyVC8XGUMzklj_-u2b-7mMd#
znr^$LYyU#KbHDc5+-$jLH!0_D-!*st_b0+s{@iKqtJS)`rCMcg#Lmp)k0ut$3%=U4
zA~9Ehefj%M^*lUvA$PK(OTP>MUiT*PW6rg=-KWcX%2R(H_<rEvU*42E*VA9*EM(hz
zE$8;D3-?w`V&hwW;Xi}lRjyk0H*fsTY+`a3-Fv0e^We<Q2j><3xTY&BINeb<A@@ey
zSFOKXlg%G))G_eWUh3{VDR`sXv!jn$CQq;m%QG|WnSAM*<xO3)?PoYl+iuSl*EyUe
z^8MTSFRQ$xC3i{(tZ<z5%In0l>|nd!5q&2T9V_`=;`RsMbl<ry?cT-z3~gUc1NW_W
zDK?kda#{Y%>&2OpFJ&0m{=~E;)!zyHx={P2+Wkp4@-F^R+MAN*z3Qde;pgVX{9%(~
zCjZ#+{6g}FwV`?!e&5|6tRA}7^3h)LKg?#&kCh4XMEjR#gw)HW_<TE&dtAO_saF0H
zsV@@^SIckJ*dLnoZ1&@w9lC0#SNvyqzQmHh|J!1l54QXdBX0#>tUX`sU;48ur_Aiv
z(sgUae#|JceB<~<d4=5(X0Kn7FODs`wmKwi$985$4+fsEN24w~+pRe+xXFxDC4Iqz
z;5xUiqnBp8Sp@k16m51@GfLde{lfpc#1gZDIGvw~DKdHIvbS|zdoG&WKPO*w=?=s7
z_t@n-UjBTvH+SNrTW@~3Km6K!Fk^bh^Jj66Hcb3ljxQX~R=!*F&{ppJlWMP4%gdf?
zqwcRt-{h=5qw#oQ+?mufQ>F($doJ$h$G>=^YUB*i>S53p5k?1S#^KOl+zZ+@Ai`?I
zD#ELHMZ{{x;iXJsjeScLGeDyXOrRa?fuK$GizXcP{_%9etqr$c8QI^G{rFD%z-s-v
z!0KhSsS-t(dmew-vd`zUeP>mXX|vZHnZ|du?N2Aa(aOB(YaDfUSDyX#g^%qd+Oy})
zzMW@zTvAfL|I7N&H#J|vmS2l97n}I)*5aQf>%<qnP`YyQ^Nw(n=^>@AUyPqlX3l(j
z-0SrG<;i~0HKz<uEc5pXo0xJklDl}7bL!5!P2Ww8X1Q(X&eS_T^>v-~ytIt9kx3mw
zHjj_Xb@5AnO+K*5;MukCIOi!pO~UpUH#Y}Q583(2<Y?wI^=DJ}mDw#XmR+^@`t=6h
zGN<X@HQRol<Gi+S<)1U>#qMRrNzK%~*?cN6=ETo5mM0BM<}k4PFxakMdHKn<{e>r1
z72j3eUc~>yJKuHIo#UlOihQR94Gr0h1P>d89^RPnVt0YadYy=g`!_9ncz*rT-}#^4
z6jxVGoWFU~*X_0YV$U@n+-G{tbava8gzXkRo0<%61Q}oMdGMdX>tTt=y9aO1JDL78
znRWTZm%YZ}z3SQ$pVZlfZf|GZd)eao<?HwM{5*K{mUr;=<*KF?d+n94Y<Vdb!n5;M
z74wy9`6>lr{hzL%*t2%Wocgn*;P_L|{@}pP=67XF1pn+QS$B0?`)u{}q^(aJc*2TY
z9p_AW!87By*OOP}Iqg~x-mdPHHBp)RP4RgA=U>%V_X=ueuY6K<y(4-1oZAO#PR@DI
z^0f0`L)qJV8(Lz%-ME+Q82ja>T<+se(_SHorBgV<o@~1#bk3=vu3WjPh>cyQ@MzVB
zMJtcJe`n))y;NSuPxh;K^bFq5O+DVrZ|=LSoN%o1$RzQEx6g$_%W^|+F*O~yUK46A
zuC2ZL<;(k5KC5eWWr>%SUC;epB~X!Zc4hn$#koRZp`3eXHx*vpRAluedHK>}SGT-t
z+ZSHDvtaW5E3ax?m*4y07N{{<S*3|j;%_DMC;8S?3-!h3JxivW<iE(w*ry)r+PtJq
z`rx0G#FYOGX^xlWdcU{tSK5*8J-u|f`;GU@!+z&qmD{~E>(V`q$hPBwP1d!JFI<bV
z#gmtN$4YNhOrCi1ZD^61{tSlz{!sggD>Oxy`lMeMIrZ6sUo>jwB4(9Z`>0oo-kkF~
z_2NVDa_R0x;ca0&6|Wc%CRk6rE}MNh-}zKe?faQuM5o^A%$A*^%4wnVv4_d(%Nzf~
zIG207<h@xl?tb~>AGFC?hGY4Pz*)bfyr&7qdHi_we%6xvvvtFcTLge|Eoia=G^r0d
zECMu%p}2rcR&(Npheufz4>flCu)cISx`1_wVxa@K11l4#{~*4UL4@H=(u6Z><CuCT
zyA-@`p7rzAe}*IZXMX$0f0!b7&3LPdZ`6(BO3(9E%GG7rYO92=ORnhO{hrk|zx3;?
zinq(=ZQFe6WbYZDx>Gk!3w{Y~?9Y$-^60(v=A%<W(of4BzqqT!OE)mQe@gNF1;=W$
zXU<;BxpZ<ig9XF<W%kE5<efY26E<DL@PM-9y6~mvR_7$0=VndsN$HPj`OSNL;el5h
z?%jPFq}=@aq<#C3YZH6#-qub{DN29%=2zoq{Uz4!N+vJt_U)TDKk8jj;3e*7g}?36
zEB8;l@uU3UVVBu&r#*4rYH-RewB5n*#`p8=I~V#D)*O2`*V29B>dJ-lY(C`N)Ae}1
zi6igPPp`J0vHr^Q3J$9?d}Y72>+hN@y-2nB%YVuhAKv9ZYtH1@dHo+PZtP)R>9k0A
z@$JesWx)wM^JhF3`gF&G;W#t9de`M!Zd$kM?5FnFwk-L%?%$8U*Y_P?RKfl5&p$E!
zVvC+T9%if7l`Z<Jtit4JA;ZI9b&YSi)>f1EcVFy3^WvLUz09Q8Y3u)VTU~F^Gu^$o
zASL4DafO8b?-2%1N?4x1eA#cZ^rPzcc`c$=o*LUq?WCJt`<7ic<?(QO*OY2`XK_<s
z{XVPaJL#8p$}YO)b-({nrhcX7(U+UUwx4;Y&@5?r&T!T>>x^R0*IPT5IjFLfublQv
z>hQyi7rGTOa$7IU3LXxw<;Z70J@4wAZ(8%dxof>*nQ6E6<drYFODCq>T3vJG?Rl?j
z+B@5gqf|GxK9YF1WczQmd7)}Mta;8}Qu(LOyt^#$Rq?HbuYOjQzWf_=%`EQsrQ7<(
zjhlYN|DCNd!~fY1OPw1hZ9S7u<{$a8Zhob<`&1Qw8`+;zwp#Iv{0RB6>R`@0j>zPk
z<LWXp2~B%ymXtCyU$}O0wRX|T*mA%7GmmNs_|M`!escA^y!-s7(IFl|ygF}tAAR=P
zkR&Z{Tq=Fw_u4BdU(d$dgw6VU|4G72+jsl*&vHLJ-**1t?fKj8`U`JLKOJ#cpr?ZU
zde7X&vRSgB{EhinU;fA{aqF79^WI&dzp)c{uE_{|wWO1=JpNJPp<fTm>;vq!o;|Df
zUj4i5ww};MliY>P58p_sIp7kkZyDDv+rRu__}iQ{-z;NwE2s6mDA~&$u=U_)W{ubL
z9xs=Ckv*wqf6B|gSsq{3TInk~H8xdEzVe@8zSpt8g1%C|j4!O`%vxP0RR4kJ=kz>B
ziT?~-W*06mJehTJpAmbI#kc<q%BD+9(u~91Cq%q_D|=_U*pCTpDXDMx0}fxl{CT~X
zzpua9oap(xs*W`#6)pKDbA8s=^nHJCM9!NpaH#PGYpqF1SDeR>$la&>&;Co9aWoQq
zwhb3(%@1UvT&R(i8FZS^0?i5S0RaykxP4fcFoAbfTQ6k-Z4v^V{KBw>;oX!rU1rYQ
zYo(Iw`S#=n&JS;%|88;KEYW2f;?-RJcF5iRRcAUW%<XcXubi(9)2*+`p$DeL9%g1p
z$VsZ*zsvgjx{kd%m7l_<p3mBNptb&{!~*AK4vYJid|4N{I;Yg}{*&;C?=oM`7TpeB
zp5)e$&{Za!R&y=m4rABqGSOQag<1D4tgX^z_`O7Smh0WQEp@G*yLjUHOWS%~?;R`Z
zj^$P4-Mn2P_rOB~{zq>1^Zm3-P43q_i!GVD?W^9zyp~eSCzCvxzdl+&OQTiNR&?sF
z=wPeI!Cm(i4gb|`ZC*9)#OqeJuhZI`V*JaFCnW6K%l<qvF6fhcypHDk?7z?6Zr!M2
zT^f_Le)`VimeDRbiz@4GF8^>-d4AEHJzlKN7v~!O@N46F`)%FUjnBQ^+{^6zwA43-
ze3^KPc~gwk!zgRH+2MU{oel-;`LCmwr}g=IEZ=-*?e_Iq+j-vz&YiXM^gZd0ctvl8
zw=ZA+x^5lRw>s~5iKX0ZqiSE@XvW=Tc3U2YFBW-O>bCyY+Pj=udp=c&?poES?&W#Y
zEbU&5ii5;A#yJy@e|e`pZ>jH`_!BQ$ZQmEq+;wHj90mi{)VI<mPdt|AbH@n1{wEUm
z#MZ>hLQ%Tl@Wh_W#$Qa7U45AUgj&}ezwFnthAV~tu&L+m#HeR{3!coYl7AUo?6Ril
z`_Egx*+QuskGu%un{@8wpZxF9i$QCK9_>!~vf1*b<I&H0&zHQocBXlrCDYEA$7f|$
z&fPI{MR5M6^b9tO^-Jw!K)ri*FE)5R1Z_w%OyO9d*>!lM!*Q+z(E5G{T?P@3xGCTb
zh@fqVT+XtW8oM2Y-J7`PX`efCIP=fUw+UHMU;br(Rqy8Lf8Q9x`Qm(>_q}+t%I_UH
zkJ?gax}Whl`Q^EV$mGo%g<JnV-f{W1pq?#T_L9$MHI=1{vNd&i6~1od=$Di@Ap5#^
z@lM;_-5boAmY=B3ayTV<s^qxWlBR3n3e&FMnEGn@TCwC^Za%XNeI`V@Z(Q?JceQEo
z3mvQ4OZBUhPFYFqIQVz^0;`GfLVD|_m#Xs}pSQK{?AN4k8={roL}}@<v|Bu%|M_gr
zf<-B>J^$D@ZWdkDxP^x?EV+DVk;GJcu4-ZJP4WBB`mWP&cWN_KP2afRxlAT!-PDbT
z^*g*9fA3Fp*~alF>{a3C<?n4R*RgH2&DgE<fz`mz&&@dOYR~pvx9)Op^lxC4soT0H
zHJ7i_L8VoCk`aG?)&7ZGuf1<BW_s@2m*;T9zo0O3S5}<6*Q&=$-z9l3h|xS!WM->9
z_tKl(x6?y{COgcSBgrBA<N42Pd2@G7e;c|@wcWwRUR&(=_jdbMnbmJ5Jo~li*Nvad
zm*-vejF|F%VWL9LJdX1(on79<_30T@2Tatxoj8ei0pqQH74Ds9Uh!{NUFEx`X!@o^
zPTAEN?~--9=gDsAi_Sg1&hz;1xW%tS)mIi?R9?HONACig;pBg!H(Pt3)}8)rQTTa_
z?!6ON)@S^jaFjs;bdZB8gDNw)Y+?bQG35i=yT;U@@nsq4zz4&=B?_SZ$1fc~2dS|_
zj?&UtVt9o|gYi_^oNLAXHZi`LXD>~f_423q21$dxKiBiFi!VR(tK-zS>E4;2E&it6
zosm#fH&@#_;`NJ?sH8`%vK-9w5A7Cwxc6+!&nfBavLXX7zR<gPX=mIwYvETO3j~kH
zUF8nirqHL>GvUU`m;V{Auku{Wn{s99<I6=?41|o;17Aj|-Z^>dmV45nTdRxv4}4h_
z7(L<1wU$n4_X`PCTuV#09ocQV?$PA!$_p2L6Y6B<{gbqG_sisrbwMdUe40zt-W*Lk
zaFjn$b?x!xr|h}1ol<X{cb>^t&%ZQf-Zt~Bi(zID4g}9Xv`ehx(X>|wizf?wS*qX4
zCl-|P^m+Vz_MNX|a<i(qT}v-)pFf#-g=no#%J!YX75<+uZN72u=!@mjRUf0&mrrc&
z+s&W;Ah|KLw&STpOtLJ;w`KQQK6RXsc<N@PWqwuh?cx*(?z#Ib!m4w3F5R~8NVZ`8
zp}AeTF4c_!Dj#pPr=+cW6XYi`)w=!K#yGe4xh0ZCW=!sOSF45Pj_a?Kvs~#mm(T4@
zDxbyL<i*AlFICi?UEJvTaD%@r|Nh6$;c34#mXw4gi0W9+sSACRn4A&6`%nL@W2e4~
zRO_GF8T))1c+#<{vC{!`l#4_F6JnF{Vjrh2hCm-PSr67@8jP+?;!7E1K?ka3FlI0;
zVCU21iDJ_Q9TWF=_O~zpwm!Yyud{B~yk}xD7oNWTDfyi-?ap3~_b+42_qA`iu96qE
zxo6emOS>jM+VscS@~oQavctEZp0xST&|188@3|A%*%=WX>GS4I)hyF|xxmVpf69Zt
zFK<ry>dg{9aHRH~?Q56c6IJ$|OlFwVrMr^b#q`sbd#y^M?1j3Qw|ealy1RB^hD+hm
z%)DbUCk=O-J@1<mb$IWoo`bjLrq0|Hv+6}*4G&lN8{e&xQlDoDz2g01mJqmMa;#uf
z%#&%oDrOHody+SrEZK6Qplq_`%gggBOix|BFMc~|mG|w>Yu;bjwsyryzWX!2EIYPa
zJa;i4gDm^fkZ@;9yRc}32i2js_Z^ElS{{6P`_{DUt{b!N8yQ%qOZ?Ro-I(CQaAMWg
ziF3bhSpA8C|5V29T9&I{qZVn#FmL%4l&j0O_^OD&njEK|@->s5-nhB!QqJ0P^#H5K
z77I7JMqhYR>ZZ4V&xltg?6|$r-1b{r`kob8$7+5*I&os_zbTWi&JFTZiQg=pEI<EQ
z_6v>GPTD7a{PEr!x!>q)UJ<K-Py-|fFJNlygbp02GKes`1Pg3AP_P6tL;%Xc$3T%;
z6~O4grO8vu%*7Blg&}}-cG!*o46TKa#COe4tFmx^zvH{B<aW+&eMZ^Gqdb09{%7Fa
zcj88?*}8kjcJp&o)%2ctH0|hmrOPE})AgQRc%$}UvGR7W<GF#CCZ}9nFI)9Fq;cQ0
z8x!)*T|0Jby_&9W#XG-M?A)PGdj5L0ILOF6xf-dI_e;2=eYt6vTg@5C!UM~na4awQ
z7j?z+#y!E^Mk+fv4?Ngfe1DPEmHd4tY(8H2zWPRA+|eC=ezlp4q_&^9)vl)JX1jV}
zPT^_Kj1#9e#*{Mri+>!Pp3U#_=S}h*2IG0!bLVDzt0bOOaPoM2ZR5rZTQ4-~H9zIg
zn*Am9)9sM_h;8@gJlozjTjr|hchjpj2RQ$%&W?Fn_wIhhv2OOI+Pt<LTq%NmQ^j7y
z9Z~G5tyuH5?`foM>u2UKGF|$$&C{nexk#R`njIZ9d0SiYs+Hfrt*DZUy?tV3k%RQ^
z&;Dn;e#^uyRJ$G;IA`+w#Mc4cshVv9zqu~vrG2xil|6oQd*AH(rCt{|FUyUxYum%j
zVK?>5gfLKBaaG^v$)8iME<5Jv!@QJ9sIgUnD?t`C@*@H6N<ymepjC{SppC;Uy3Dc;
z4WQ!%Kx02KK@y9*7y=!RE?{a9YmiyHvGL2Atknk>FY4K;<@)nq%6q<-LH;@araoSA
z%X7Y~*7RkMcF*Es`uI9}UM2UOlE?F=@?29{y5qQW<i2AUE+`l7&U_ykA1!OOwe-Rc
zzKh3<ES7IOQhH@7W8EIE?07}<(;LeKH#bJF<w;#>)UfCK^6V`CX-Ar6wK|o{Zhu|!
zMOT?WXpY-X)AQ!Z`+D*hp1wIVU+uG%hK1-H;k$D;KW%#IcBIRZq3qeV+P=^`*Eahd
zUn}Ttb3eJFW`*|Zl!8*}{wa^Q`a8Tzyt6{#`K6t+tb@0%DJnX0rtpH)vEx-2j_z*r
z))b2Kdj9j*6))SqR#jcT?S4~JZui~$x};>2rIxzLyHbuH>y|EjzC|<V%d-ip`AU3_
zPYS)0?yg<%QknO}V^Lkn<+)r!hws`2N9_38*K^Z*$u^CjYmC-kDPNQKZMt)`>Y6ew
z>nBeN-5zdhi#@2vzhK$b_Kjy^wVHQUK3ksD6(rN|r}fC${LRBpZx?g_i8yDsb&GOk
z^qEsjb|%)Vm1LPU*lNEpv-9m+;OGN71(YiRbc$Ahp$2G231~qh!xToZ6|5pHpavL2
z6zFiCM-5yIfuKW{EP^Dq@PINTc$b`1oO4uG=7HZ+!!O%hpK^6}Y=5rTNB_MulNG8%
zx{j7{N!#~&o5Xhf<ehwZ!}m2eFUpEed(u@@c=_I@Pi8kW;(hq0dX^dMy47Y~m_M;F
zLh7PqmW2@imt}U1`)`XJI#zo0+~vOi3`^5)UX`dluDQxD^;DirU8L>miNDWZ`0`Mc
zwPd^58{H#<tjr7kR$q5=XZ4Jo#>D?<m2v*YBn5%rfgAOMK6y{PzBFTIckdQSmEZ0$
zWh?WJYP?E4cax?1W2CgQp_{+5%$JpBez$pcZ;MRUxNG<`DC_94ur#xY+D=FPL+wvD
zM=X2v#VT#eqH@C>sq7Y_H~J0Ng=Y(|Zn7{rb1QqnGg*U7d!?`zy{E2fZ-QLYEM7+T
zELG!kSo0>T?9R#APhJLQ=VTYFJ#t#iyk90{`-P0-GjiFLCwiaYc_y88k>|yh<(X3j
zK5Tsc`9Fi&UKyKw?Qb@BLVjj`TJOB@W!%OG;5DTOG#kJpHi`>az(;bbgI8@a%?)5x
zgq&suZS#P3#acBsfR8Gb1s&bVxHz|g{lfK`!H?3{`_{cv?PU12CUVz>&SR|JEN*WY
zR6a&-uK4D(jN|!Q-`>(_aizbu8eWHz|D2KC@h9VTUR!5o_3Ilu`uh{3^bed|zh{P>
z8*il9wj)L-KmBKzmnr2MIkVh<OI6yYX|rSluKtn`H^^h$t<CmlwaFH%%3YNa_u2|h
z7!<HZr3;58vwnKc-t*D*;GtU!eP6A24p9{f+3#feCv#cLqicuN_V@Hp`RsYJL?+?d
zv*P>waoN_>Pk$F$v+DS~8LwTBZabVlfx%;C?djN_>cY<^`^zW)42fQOu{xu#>sHPR
z=1-u5Z9KEfGLCty4Q$R%vDm*?G3t=miK9wosg?1}UCtioGCkR4q|RU1w&u*v8wQVi
zLhO#}a<zIsw_V9|e9k*|nGpVD+kfv^qZD3zNzs%z584R$wcz&FCzTRg-z|TZ7rvxo
zAt*E%rX0{<SjOnVvdmxsIMaYm&}5ox$jYD#+LU|&bPO4IvlY1A8R)<YI?-wYQ-e%L
zOsh=VqWo#Pi@ge;P3o*o{?z}lG0r{g=KC#Eg8Djz<eDaOq}P<m|J%j9;8H_Rag*hL
z2D`1ZP5q7}+HCIXj=1$JW=HR~nabOF9-C~ta8c}H|I;WX&PIvV>S-a<9OeDC^85BC
z&DqN{J$=XI{H*8YlRsHqT`0Zi^X*m3?mNbcc{|TFub#8_>dDI$#apX|FUx&xncR0g
zsNd|k{ECV`x1?>YobPU)kaw{9SE^~gvu4`GnbW3M_3))vUcI<$VF1G~!4vj#GZx<H
zEVGg*Ju<!LVS8Zkhe?y2-<hUtcY0IUc%k&q%Ir;Y$3-hw-;b-gwyC=$cus<`{7TC|
zt>OBGd3l+$-d<wZ&YB{BPhL|#@WMY)KC>IEWw~CZJ#8_ZaPAJno{96G%WA6JYwP07
zzVIe_o8SWW6-?W*j_ba=(Jk57zBD~AEc9KktK#+Mo@>8MimjJ%Eiyd$XxS-M^V(^P
zj1yAiG}KQ{d6vUx9Q3C<E>$eCKgsG!=M+h|SLauTUr1?8W*4<)x^iG=vPWw0@rPlZ
zR?#XM4?F%dRL?&%>)paqlfp+rB}?ntj#jImWmNzlb;{_&vW(G#X$BkUP+|sX2bI;(
z$LRvNivg~_Kno(78<rSmNNiyU0JmGB7$&I;Zb-fm798H~aclC^InnQ;GN(*%FOGBl
zYS-p{M>UDh{+vd-m0Wnf-TqeF)+fex_uH4IofT5Fd>v3y$*$>kl)q!@YtM|}?M|0Y
z6u%AY+}5%z!QypjHP=zizRH)8n=@W6G+koxb48b0(TkYG{-wDaCkB1@@A_vfvx+0J
zYju1<ue<L(ozL3)SvcYaWK#Zx%1pcQ?$?>PSI6@IC|z1sZh4E}|Fy5O<h9#Vwr4M{
zoj+CP%8qpntG=X!-%3nyX8y7=P<rLEc9mV$@04u%vfgYn4mQ!<WA=H{CgDD-kQ*<1
zJ=UK0`tYxnZ^nFu!}FH!RoUq|H!i<4qi;%T|Av*u7jrBc{xh_y`5k^_@p!|smZL^1
zEM)%LujT#Xv^i=o*O|vQCI3Rj-^8zsayxLAA;gIJtaj(R*2GEGzpn5nNp{+=^^7Vp
zNIB-em1Wb$7g-nPwFjmf%uvZZ(d$;b<7Hf%Y+U$@KAw;%nzz?%bK6?A{9LyW%MwN(
zW^ltFR6hDRIvfI>W762lpvn*|auPmb4T_)(Ocx9xN0@+?DQ199sAXzU$S62?W$M9`
zvi(28RlN-BeqDV3syyh3m;LT(D_^dAahd<po@Z4VbETE#t_ZOt_kaEoV#_PYVSAk6
zT3x%_Eyf_e>R{O~8{{WX^iEuOT9tEZHov;uRhJ1OdN))a$oyycx=Od`=gzRUH94y+
z9*b^r<L$V#y87|NTU%Vr6QxRTasEnL(QVf%bZ~Z=JM)*tiO~zLwOKcw&nwX6way3;
z>uUMfpZ{+!Yy3i$Z`S>Z6EBNM-rwkC&2i;H<HXBdXWvETY74syxqhybU}{=-G0SqQ
zAHT$+!~Ppnd>GHK_3hs881_(dgAvDDufzTe`DcHwE?c9Ymc4Y#ot*g!r%GQtm)%(M
zerL$Gd&Pm<mR1V<ypt^XZI#coeJ<Ib<*b9hsJ`$Cm)EsdvN>~lgVzI@q)oLG*OXj2
zG@FY-*4I#UqW1>BoeFhnTbuSwdUxj8&!nd}jdyL|-glMBg{eRPS@w&dz_6}Oc0s{Y
z?ml^Ua^(bYH;&bS2Q+1<*#Pdw&0u9vWfp2+b`WVb<aTJ4ft&;gKA98T;s+gE3#!^!
z89+-r<h>j>JjvnuxJob5^jY<m`zFDkbRBM*a%_tz5J@Rr@<mHU^2?gu3rjZ{zjS>Q
z6xG9SAL#Y;){(rmSCW=rSeiTIt7_H74LqMWUhcZ4=6Bm@;y!lkB93os-zHmTE?Bvu
z$oXmgq24V<+otQTkYL{U-t$FJ?zDwl@A%bPepy=7y)pV{vi#*wiymb?QDge^ctUN)
z{=_BIdS*V%-!s>Lz5k*4GsU6>Yv-)1tyheE6T9WY`I%gOY<yMUmd))ftXH;*J@8<|
zAFIC_iK0pByQDj0MT?4$+duTq<=P*(x<>X}bMqSuyRC7HqKr;^)YkvHA9cv<m#kpf
zjk%6fQVJuZH*P9p?`M{Mm3yIFdq$s8#WL;N3C<fHgsR_YYremfd&m4_tv6F+`VarQ
zR_pD?bGGfoKfy5fpjtD1qlfIv&;G3c`g$|J^x4X+!beL_`~H0SeeT|B_p{yL$_&(^
z0Qbj0Q4-8x!f=aCgdu=cZ^{u}@N5q}|2#aZ*zIr>)IJ2Y;z4HvWiV!Pq?OGHpB)<&
z{;ujqdByFGO8YJ!Et1`4V!XHVr8CEiFN(L1%Y^Cs^7Sn?Jf`s?JWza{bx5W7Gke+H
z!Cxd&lzs<n5svM#e)(tN)DsL>mnW<3Dz)6*8=ueGaQtHm-`=0Ap1t9+J-Kk-Z}-y^
z3JfIVUujkTWj|TGbW_19o*uK`6P+j3IvHfUY&CUTpDiwZUHMK(waYg1khEXC{YL@}
zk1P7u-S3sVe&XuGS+}m6E9`Dc{A6IcuGQp=JI_ilt1UjC59ipGaoL_VH<gw4IO`N#
zrB=LMPGReva2x&QUQbJftF7gl4*Tj&SNwN*+l-nX&Mz<jyewWfzff<=;>B*EcUBl3
zc<@zX)pMhQ?BvcXTNAnEja)lzBU)MdZdxoqe`ChwZEM!2u0C$e$g|?~9qpC!3(wl6
zU$G2I_s_0LwTQd_{Ld_Dq28GnBUkh7wc9$$S62K*cOFy8%WG5DNWXLOIBuG8_M2;w
z(+7=DVvE&mWcL>S;F|u#q$hj3puYN_SyS4+SYDg{+0=id_Rb3xWlCp0%csiwE&mn1
zwzYTi^b;RHPQL0`H8)KAqD^B}5U4p18o&n?kPfT{pqBjsF9t6*P^a5(rlJGiO9xO{
z2wu#x15}%V4)J4ZkcEgYU~1&{;7F7B*)Fjz>f@fgU9vkei%w79adfh6_9@%i?g?j`
zw_KL(j&ApA%j!s#*Js;YEu||dW#+09m}>dp%QDuL!rCWRZ=8EhIQCwL*C)#Z?<2O~
zxTt(;eT}W%y8C<Y9GLSUo%zzVGcS6=-sIQ`UfFU)Kil{S$2qI@e?L{ow|Zy4RbHrC
z?K<_M>6|Ik3U0jqH1SV=)w+nhbs1Bpef!<Jx>i11`<e5m1h$GK{>yW&ZCozC;m#a8
zHDBI$i#g=8wofy)N#Q;G<@uK-FF(z4i<@7$QoeKFG4`|DUlpFeaOKm!!;^yU3f!q!
zn|@;AjxX$%OHZg~ym1tLdT){ag$EO_e6jXmmwPUnHCy$hZnXE+DeK;pmL5)2{H`*|
zp7lS2l%>#}xp8L}<eFL@4BMTOH(%kH-OQ6KpEkWnd-R`SNm%>C-|^-%3(gn(o#m$f
zs#1l^c2SgT^o6qr-6N%^-RI}s-4?=}@%r-5(7SujNcTHmFzMBNYtU1Cc~0>c`^S-A
zjq2QUc{lV_UAwk%>Z#9vrt<8bdCB0Qh>*+T%oVTVo%U?v%ksYQbgTB<vm5FshD{GP
z`z2Y+Zt_OA-{sQUeP{E!Dpd09gU{BoT6}VK`8n(I^V!qAU%u$oy6_x4`~tf00CetK
zRDuXYFr#L}6o$6OP6tj0QOyo;S8oARgY2aSksyh^8Vn1PK)D{Ya2iw=>w-qwL>k;<
z5A;V(mrHr{YpP_Csp^F@x_$QNMIV};x>d`+(C?***7+^Zmn!u}EaS84^0_KBNARd)
z3J252*Pfyqb^P0IWxfgbUL4AQx;dmre&X5tQM!i{cctyT_uT2i-pu9hQV-p)ZR?+~
z<Yd~GFm~>@!5VjSOtqtfXY9TZ<n#9N&*!frHEt*GGTlF8q3D)bnT(t=&)HUHd?~XI
z*LA%s^)c4tarO$$*DqtaeBW>EUM})pR+9JW+_eXetXO+KcCqr-ctbAToY3u;a^Cud
zsi>4ZsJ9a7&fL4jg!kdL7zM8VcV!s=iR$@ybyfd;rusy`q+E!>wmtYqxOMH#ty4l5
z>CWrgB)q3)`TnZ8U!s(!Ep_GHnx2@QF5@NYz*r%2CFrM&o?rB=#PEEZq%B_!H}7i=
zbCB-4IzQ;r#`3x&=e@34D{E&Z-SaV?RCwOeb4%!aXWJM<_3bNH-dLi&gSo3M$iS5Q
zpumF*(-ZPeJhM4;Tz%!*nN9DqUW&DSdl>Tf#JO*OtoV=oXNY>akS{a#%~s2eqPBBn
zw^u1&{1v{X<^?pjgV#zjfp#N;vU(D;!;u9^0Zaj`fj$#K4Ij{{t=yn-HSkVX&^R0D
zWF=5F`-(+`Bg&b}Aw6bc*yF|ZR-X+8Hb0NH{p%mkYkhp;yZy@cg*JSP*A~n@{BX{Z
z`=@VB+;rJFPP_5?R>!sLZ1&x&y0C?tYZA}9qr9zaBBJLmmetD7Wk2QOSC@EeX>WeA
z6Q{)&)54^TO_h(fDkt@P%zb%GD>v!-#EF*f_6EmnGd88V6)oQwn%>9LXPfzH>&ETZ
zq%W*j{nY>P<%_JGv!S7PmgHaAkYMrUoW_=k+qZc}_L~cyePOqyXp`NhX&qZ-Hojw4
zczhx7)U@Y1tG%kU7yI34x7RqZ@?uW<`ruLq2Cl_QmJtl@K3Dekiu)@~nZ$T$lim^g
zOp9YxWvh0IZJb<K#Q1nt_?6WHDqVXfU*Dd!DCkY_?!AJ1_J2b))=oST6C-)sw%zNd
zUhvG_Z`_O)KYQ(6zA##D^1{sj42cb5{~03H&)mED!k+Qhv%R+hz7=|}d-L<wSKB3D
zZf5LXZ=AQ?(hS`C(O?7*uy8SWC5SM9ZZpyB;1}V^1<$dry);wN0hGt|y+FgA4?U7D
z7=SV&=qxqRtt){Jt>81}xji`2eP1}dvI+yuY1F+Bjw=3E6!iNqkJ(q|r4|0}X|+OE
z)jDL_o|L{1+-#!SRXc~TFzBrEjcw}Z>;og;<R>|r=S_(T+h}w`daYtkg!6F`o*6#M
zM@`<Ctjp3)Nw?KbmgciJI2(|=aCULh<`lvHrDAUa8|@|)w%Xceu4PR*)4f`0zE<tK
zKbQRup3d#swkuonbm9H`c3*C5Pd~B4B(3bpyh`@1zBhg<<wm{C77v_ceJy8wyGx!k
z*P^}yK^u9$sZ=rr<=y5~YPlr#$0{uU%*D)&K|xNxFWs=3ap|sr;haZHszq9s^nCvp
za>OiqqR^i^Nh_jrip9g*(hhxDJ89#2^;$M(@sDyE`3oj(+`r)Ee}=sI)%|y!n`&=w
z__u8LhA%(oTi>ipXH#3RQYrTSgZtv7y~&5Uz#EuAH@AQaz?Tl3;LZcnyaTER0vDJ9
z3^f^onYJ1^fzL7qZT}ARNM0cUn&1X=93a<Ru;?<2En!)}@PMx>fL%6mwd$YC8jPVa
zEtbCzFRQouv{7L5vsnLhUb~D>`{qw93b|Ee6+Z90Yeukg;)$2RPvUM()|uTd6JpCd
zd55^>mldYE2mU4etO^qAxV$|r^f}8_-OkK-N7at)XN>=e%zBe4p3CbY^X1FhiId$n
zY5d6!Dc-nd%dy=8Ha>@+G6b%7nmX;N^D=Sk4#`Dl)|G5=>0Z_<A#wcDe2tw)%v!1v
zLQKNVlTx-H7kT47;aE%Go}{IVrc8J0S>?V{v^z}ugSOKAD39d}!(KLVNm|P+y|Tc3
ze^%qvo}=Pxje5LyPgcCOb8XVD8D3!*1rPGw^Np_UxuolL+l{@hX;LiP-^-W2R4XRu
zto-AWm%sA$KhZA+{VE~hU(U~5ZJ%kbzx%?KwLG8-29ef5!z2s~Se7yRu$b_8C8&bV
znOqMkjKD)xB0&<b*fhZ1YOw}T$C~Ma!UCsDH<B(fEZ{ktRGgo#y`DXj`BlY2j?cbU
z&U|Y{XZ^juX<GjG+dTFT*^>pf*y@<gFT6i-M|jWG{zL&Y2~nkm(<TPzT|4emx5cz@
z`RRoQp;MB-tXWf{<|&tZeygHc&XET_d{g6GW(BeqHixJ$J2FwhxiPHm=1PgRf!&{U
zRy7~fc5%MI!Q401>H3274A8O*i8l<kE5rj2hIMnj=`J|QwCt~7*rhj1tyk6Agau_v
zx!Se4Gt7~Ce(RfAEmzQqm6I=vDu1$^>l_#=BNO1ACbZe|-u<>r{-mi_{<h0q_2k?w
zn&eY+yz9z|3oa5TSLz+kJtW=n=aQ)Ty5e^gf6kU%jJfQ6=IMI92+yB#+b`{X{LHBV
zlyJerPJB~fw@a}yh#c@rP+Y*W%+M-;DS(9uT!MhkngSh<#|&!0L&t129yN#rC}x0~
zgJKi7J^0d(3Uj=5DlhxXa5l(gbFarWT}M+^dp+IG$BRtT%;X&^*JK~QlUriF;nVju
zRgC?Kc5QpqstdKOzRRwbS59#VFTWD<CbZ)wpYeB(cbc|lCf!f<R@|HOt2l5&Op|qU
zUYWVy@jqD;t);(hW_#h5HHq0bqEvL%h51TP{JWNT>n@)2@zPc|ziVu%Hsz~WTqjtH
zvQ~1WrrI6qz7fSZ-KMxJ=|=Op+Xqg5Uvt*n_}#ju{|sJdr);^f;4=%$mv>oaH!eIW
z%?%BH68s}1BKOAO?HzZ_XFPAbAb0P}y;(|vHg7i+URo-?agzH-sq4vV-dw^bUwXbU
z>2ByLS?Madt0(K#hK;u_+lkMqIUx4<W!D#j)Azr)&+ob<_U?SZ1-)CJPFbq_evp&@
zeac()kH@laR>|Asz^67qoggR&(sH^tg$LApn!?Cx1d1V0Gl|Or)Q(;RE=o!nL>Lx#
zF=#LzYGhRaFP{tCAXok9_4@ldwiAtiZ2u{`CT#j=#rH|J0=i#Ut>$^)DONk>z2i?Y
z=9gYk>w+Wf!e(w>nx$<tJJbJtqP1Uj<As09qMs+nOe(BbeyQ|x(Xw7m@k={zZqnF(
zs`&D+5UCswKDSJUC%JpRob~OBZHnEbXXu?^^zW)}ckl71XEVi|WBc0f2Szp=e6;T2
z#-*~~4mY@)E=n=UbgvNMnV0R7{=$EUA<LIl8zyhMF!>Dgip5DD_i_roPpsvd<R?Do
zLHXju#cJ<^J&rNH{8zam`BkyG)rL$X&O?1yXNGS)pH=mn!6l{N@y_K9#nH)Dm+mfA
zirhT;96#uKf<yj`OuJs4op4b6(t^D`H=ju!&6wJev+$X?P06YoQ?ebFi?Y6n59QKe
zo^@^Vxk={TlT(#E>hGm7^#6YT^ZMrIzE3~p-1MULXWswe_PAo#b{i9O-s78#v@cKE
zcD#Gz%@Bqe(DeZfpjs6kK~oNBFm5@f${=zem%%}E5~zu@g<;2n<Xu4$kRdy(0Ol18
zkfj0^g$_*(Jde8=;-)k>9jyB3!OwmDtGv}0?|HI!_!me7#umoC{$%v3L{4DBaqH-f
zhc*aRH_e$-8!|Cs@6Bwd`#lL#vUkicZd$NIT9!SgFLdvD3)5#wnRkoVUVNLls%W44
z#=7I-;#x)pz7@we<{f=DL4K*nG0vLB&6g%bOpyC)d}+ou#Y(f16&kHKe9ZR$XIRzS
zbj<s<f5y=VIV)c+TkE}8efq{E+w9ZUDXbA?w)^$AE_&DVK3A@7>b@<;lL}w3#=g;(
z`uKVygUID)8=`~Ut_PW(^ISYbr>Ap|%lacJ{l}I)-Z))vAA^O><7JtX7g@gi+Llmw
z%)hEk>6`J9%V!GO3%=SgzMc1F-GsG8f0xc$epda=z2(2So==&5<5f>ct*_EUcTqFF
zXEoQO>$#S6<{X*#S+}9mbdg)?ZKtYBsf(lEO0#;p6yKLnHu}!|RPH~+^Q9*17pZQU
zxHNOAXLd&0Q;+IS(b=|D@AH2@b<=*S>3s93^0U|H=egB4ebvdD)NT_irhHjp(*8b+
zwf9y$zVXfK40QP!sL*5N1)tIg9j=geIAQ{7)-trMm;i1aaY5$#L6HlIP0%Wk1x}Zk
zt%I-XZkgeG^!A#-6(?05^)`H1FHlq1bZ3uMj$4uu^Tq?`bNH4mp1nxd^_S!<^^O|v
zb!YU}FZYfvGE(4T-u2gNh3!d8yQzi#<==(1bvsM<PhFIF^H<&0+x}^Z8}C*G9@r)H
zpP{t!J8z%8&ULe+Z}Kai9eH&tc~kHCyqcrG^x6M2$XKq(dUfn$&AJz#?lK3Te;4!T
z<@;NExUT$^pYHtPMac8GjCXI}->6ysVV$?^(kDCl4_bU#qU1WGdHaU94%_77m6ja{
zo-p-EVUVHN(_K=oynpYsFIVoH>ar!cS~U36w3zvawged!ZaW-xVa1`1Y<&q&H!^OS
z+J5S}$j>#}0&{g6PfmD#X}bM{pEXCN3YZz5^evlv(=3+tH&4P7p5OCaLr-o`Dq7XN
z-tTZ%Z<TmTM^u4T*?$Jx%v%TRj@4fM(Nk3D+O@YY?{Pq7--*{QYf|nfJ)Jt+@Z^)<
z7w&d@9e0(ni}=1~wu#q~S4;mky#LFpI3;QJ+gWqOGR#|Z-@g#8%PV}{_2t8sbwBT&
zPCk7!^l8k*`zv4G+Is19rj|OZvesgoH9gChU#+UmzPa(?wu;oLXQl~pK6?1L;PhA7
zeeDaEZA(gDR1y4W+x&H>a`pCK)C-w<>-f_oKD*$*yvcRVPq!^!wYu&1a+8ztpiAL|
z!1rW<`m><M^$bqX-9EX7oerEHEX!C-UAjRHXfB3=C59Q`{wz}is9prMsLKo;nk^P^
zS@kVto6a0_$H1jW$kXEGjp|FxkKW7uxcB^MxNE?s+beI2B=5Hoe&zo%(!5r1OSs;e
zW{*p6zf2X5otoVy`E#e>F9zFM|EJN%#ICR8z4Jw$=kA(indW&1xaa$P4$qd{>>nss
z#1{YX<RA9`4AG`bWG5@U`Xg0;;pxmBw<j#W8U80C<YaW<+;`npcMmAn&+urKw!i1t
zWdFd!@ei-pyP!7}eA`og@&1{(K>Nvl_N)F{buEGsSC_w4{#hwIC9B#p{=K!Y(a*d`
z;U}K$D+(;gwQIk0$jj3tTl9@pSX$GPGkat{{t8ffA|BhTD8<?K;LFMl{MiYWOB3&O
z+?xEoDriGY(JlGI7cL9(Y+JXSdrs+E!P%b_539@kwZ6Pzec~p4h3)KH#Wu`-W7y%~
z@Ti;hl*+utvvP&@bOoQ>zmNT?(}n7p=HYemC#FP{Z|gWP!S-<I8{e6GmuFhnC0VY_
zxn{WW($PF+3FhU+k#{a#6AjpTi~stK`d&p_E~%}*US4?WsJ=)abQ#K(S@))zhsCVU
z+vjm?t*e{O`MT~i(+`-bna&U0`A=ts`h}Wv^?VG!q<%$Q4)ApOS?POn+v(3)3+{1;
z{Zloz|NW$C^?wG&e&$!1KP7+8ky}yIeXWCswant1P5*_fswp?*j32FLznnj-;zwWd
z9>HVRZ0qKH(w^mY?!`TQZ@H@<jz3Dfv@36|8oS5Sym_ad|CADbabimDD!a*^lN@(?
zD11J+%2<ZO7SvG&Em-8d1e#=M08JE4VF+NZ3NYj~0Hr|1RVtvqf(GN2E>QY{^c_H&
zT$vQ+z0*$BS7r^BRGDDtAQ!prPxPfNmy);Z7Cr9K=bpdT_l;dxMSS<4%F0JRs~=go
zl^wHR`99$0qTW7zhxRiw&i!Z5I(}hZf&YT9tCy{NXK9_05!dl}inX@Y<SSdtR=?fY
zd9NZX|E}3p4kN?9_P#Bv^rBUqtRz!-1q&}m)Wz~Y4A{+h!)3A8<uJql47yA!Y>l4@
ztN&|m4Ex$?>-yo`nuJ~1Nd>C6lGPj3;&<6L_bmL?bxie5ZpCx==pBo%Je2rZv(xbn
z=TFb?VW;M=Sn^v+{mQ4^o_;gU_<wD)sjmO^`t*A5nZ>#nUp-u1w9hl=KLcC&w9TEt
z$`b1(UsNyM+q_P*k+Gk>|5Bs)+tgbH{?A<-?(}Z{vP8FgrNkReA#K+_%{R=+y;G9E
zEK|~47*yn-zFpMA)h%{^O#=UN`&N6WGUI10LLUDac&bD09W9z!#3*sRs{77TX^HY6
zh61Z=om|%p|4f^?W7Un>($}OC{QQ6Z3Ng!AoLrlGB$>JA$}FBKkDvTyRTNd<*>}q5
zeQV&A=aXs~-uY%qSZ<Y=c`k6-&Lv;mg<hMjHJ@>$Esb018?*hDueQFmyi!?{o_b%M
zZyL3Fwf0_d*Bf8CAB(jnOxq;0MDv+%|Ko$_>^7Zn`fD7!`gC&tiO<~L&vxvMURn2L
zQtDo|_x{VO!nBJzZJgy!Z=F+nQ`z~)-^+himoM6=@%g>@kv!e<^`WM%>r0}_Y_73u
zF~012X2tJ#u}<;TFOAT)q>sl8H~y6P@^#hTjzag{Kf)i&wk>0k>iDhmoI(C)+VR)7
zKd$mQdvx*5$5T@SUO4g?aeOg30h;V*gQiQrDF?h5oE<nXHFi4iE@P5%a1Zm?!Vti`
zD@Y@X0Xn__x}Q@;mmwuSds|i3^qmux1MhZ-<S3skz29?f+U-S`7a3bv@Z3?qe&yd(
zaqX$|1lRvK9(e6ZzEv2<@pqb9`+fLd2i#obDRW6?PQRCHj>_4cwHhor6;;A&PvZVF
zOf3!0GBlp{Jm^-GiHcXbK!G*?xz)373n%CMY@49W@}D7Wbx&VIPXT}NdDE!VVSdM+
zPPi-C^F>AfLH*xSes7_YI@PkiOB%;nC1=ZiTfwz|`q#Dp8G`tnr28$zgWK*{mGamh
z+PHO#iS28r-M)E8*FOKxFm2@~#}_}I^nc$``0v_#uW8&HpG57O@$KEUPyMshv<lx|
z=wI<{;bM>70x!2OyZG<Cxm^3LJy~CN*1mZAQ|_PKcB3cL{_;Iy=P_42^{@1~+|-jk
zl}`$NY&!OA3!dns6Wvtid~d><{Dbx~7kqnJ6+SzfZPW;;T;Oc8flX}n1ummQj3=4x
zuFQ0^JsI*cD9Cd6%A!Ii$q64N`PfC5zH#l%wq`J3c(!!Ym7Ee!j^4ulQ%m+cS$g<?
zSl||OR9A5Ml*apZ^Z!<@Sgw9r_NLLKuA<4C+(k{!uk=u<X*nlYYkPj@`l?=4&&s{`
zzh3yc>+9U`TiU6AORepBGZ#KH4`O^8)zf@qAOF85%U_Rn3vE15e9!#K*(3AQ;%pA6
z)F;?qUHOZ7NB?{Ct>F{&p7Tw2@RV9_Z#2(3p@;wDa?$jH^z296^+pmg^`|){qhB0X
z{`33lY1g9g<c2GYg^zvM?oedA+P?L!Sf%#*X>S()@RVO$WP9_%HbFmL#XjAa4st6W
z@^@MFw+BR@{x>ymF;`z*s{EVn3%;0o-gY*ZJH9VNUesi6_LDNRO^>HemiQyRaP@_=
ztL1uG&y;hhbT(_ga6BufGTVd!y#1CVvth0VqlUyS@YNKV%b2w~L4yH?nLL3<L5IA9
z3fDf*AkjNdwEC9JVRVq;+xb!5^J25c1YZpqm734*s<^^8M1HZ!KN2sY_x{*fTe~xc
zr-digFIcfZ=}PrH@7mQd_cvD0lne5!OY-=$i);3@EgEbx^S-o&oVN+mP6{~c#>&!X
zk$Ti{ww?UW(%GjZLylWl{VUyT9UW|0DeKA1A~VlF$Tx58g)?8~v)@>;Mel}^>vV<x
z44XpI)>>-|o!aIh<#A{pPs2Z%x*2P#8kasQm+aVh=#5tG_Bs7mLVpVNTWsHzE$NXb
zI_LTA3;mxjZ7+Nl9xJfTw*Jts&TVrm51n8*pL;jtpRHX__JqYNKDKu4=nrxz+rg<J
zxBr0u{txpPEYyC{_1R|8FV0ly9Zt)i>K=U5>7*O^Dx1?{_gdb$d~cur6m6d|ztURp
z)xO0)!yBWzm;Kpgf8m#wXsGM6?eQyb9MxpzTk8Mv=a+T5eODs6=T-G*x!$N~=$pc^
zRWRfHR%zknFfpBd{~4wlnW;w_zI9^c`CW0;Fyh?2$Lx(k$CKp>&cF3ota9+Y*TPAM
z(|3G1%Fz2l*GbP^r0bK+W0@d+qn1xgxFR=B{8j(;Kf}}@-xu2zcV~UGc^_~^K45m{
zBNZF|;8%6cOKaKWdEZ=p`qBRIiJx!WlyBKZ{L#+0H;QPIpKA3%gpX6br_S!`jmM`d
z*UoFKHOdfE;`?25()Q#(`5(fG?!OggnF&6U+IoAl?U8n!2lJ22f9l8e?(mKC+t^Qs
z$A9gyIG$g1%{#ip$=2xYk#Fi(mITS!cO*vqn>uIi!Hk0YsowKVb}B4-C-LRH<u7JW
zk&3&gDuX>{p1YPfKh77Nu$4^O%$G9QM$2k2MLe<ZSYT%LSNzzobq!9p{BARzJ7zuo
zlWF)yKFxWz7yQZDHbp0DN}BpV^|<iYeT!B-%QL(2O;-CznANFwo2RBooM)e4do)m5
zTA>+q%`oVwdFC5_Qy4(W+u4EF<cQG<=M|vibEBNa8hJBC*&-Tj&uK7Ex%wx2S;o!J
z%Yxif75iU$edDc?%U$y)b9*OO=0!=F9=7@^%&!}-E&HZFb)MzAAFo5NyWM=IHRn&~
zr~c!z^-{B^OmdgH^nCK<ph&*Q9!boN=l?UTn$i5O`Nt&|CpTVJzH=6`D;Qt>II)12
zSI=MRf$*KAb$Yji&O2<>))G^m|GDd`<h<h#tCgm$oagNH_W1AIe+*%-UDD3!JD;4v
z{GUN*JOA_TUoBQdH=C3m*v|9O{KKmCkNbGd7pux;o9L>)lmA=96n^o#t=*27uP^PI
zy!F=YPpaQul}U+S`})cAu*T17nW|dX;*+JWaxa(O(c7GI?Q+7;4##hW2ao^Z&hG!d
zN^I7`pYnDU+hhM7n{r!Jzf}Izt0FPu+vPhY9+W-XGG&TMbf4BgclG2)(pO67h8FQN
zR@nco`BlC~DpXwO(q^-sxoS(<)A|>h#Jazou-I#<w}z^J&h@ib+c(W_clq+gZq=Nt
z9-3?Q_C3GyV$w~|Q~cLOJJ(NCzbV-lzJB53PbR8`_oq9$_{*~-O>K#5mUs3QIC-l1
zKf|>Jo&qOjnQyE(!Kye#HNcORF<a0*citYZYW@qC+C<}A4b&$(@d(*9ua#ypUgvda
z_mhOh^DnRb6)^S9wD$|lv-fp;v=^?pZZtzT{CmO#iLXgkbN3_`zrMEjSBSEsrhnxA
z!>9k8pS!-JG+xJ~=}-LwiK_CRFn7V&RV{gpT#o0r8QELC4T{z4W1IPMpUh_eZM7>;
zeo}}xR{wqf@bMK-<`+i2Uwr4p!bf`}?)pAyK43lj#^a~)Ke+xgJU+U5?l;|Xn?t_>
z3pLd{F7QA9b3XsvE`^=pvr{%Nygb3BaYoIVJ^b(b4sD)%?L>NNPR(f{|34om@UPld
zzt-PT=G{d3nX1<ww|a-GB!65gx34v)B4q78x8ggKV~#sr=-lh><$NP^0lO}P*4(`s
zjHiA)-pb&?vB0fu?&{b~{b#qlK5TfmT)t6O^No7m^6fv8AKOe|Z4UE&ynNQ&!dKyc
zw0`#7sh0b?v|_UVHRaE`YMyLH1(lLtWnIG;if!B?Avc8~fYE_>0aJrCD6^QYaJs-a
zCxDgvZP;~RXVo*ELVa%>{<P{gd|WSB6X#uKn7R5{f%}X*JiqxKE&Fz3tMKuy`BJZD
z?NoY{7W(hi+{Is3?99@X={|F==*Xm6zbx;KF?$(I<{xShnD=PH5oQq%<N1dgdu0vp
z&$%GYn`Z^O1l#?zgRpk4V!MP%j`D?)lm1f}UbyD<oUi)Oa{H|^%b!Cs{6Bd5><{e{
zJLd0vE+;+KKCs^4P4Cjw{NFDo{%VX|D{=40ck#GvkLSvj_HldaLVk58&)>84ci7$e
z+RMx~ynfw({L9*;pZPa@g;ty7Y}aB)wJ7{|;a`t^%*7|l7fSY)yqs{-%1ZBwv75@d
zOQC*G9`9~GzN@QcZS@!4Z8q$_J8JX(zFSt1Hp^{dcTby+=M%Zb+t?i=o$sZczZ+&X
z^|G*a(@&$epCQFE?Y08{8Mx(6RbP8&ul_^w&f6`yA(0-6yY4NJ5x8R{{E9#8!D`pg
zuqw}-bFWOFy1rafwf<`5yzTiDdzTn(U=gTlzR({S$MbSm{xtWC!7HUEKJUK#$yC(O
z;$`HGOHW=r__L%oYr?E;OCE|ZGyJlAqq5Z9Y9TEh+rX%Z&<dVn*EObfM;-It-)m{R
zp*FYqv)ta7H}o=HlP306{hJ!*(LIfK*RS*!nm58X3ic|?moNX`X6&8I@ZeA8x`Rui
ze>ytfjp1?IQ`3F-{IY7kuWuf%_@tk0y85P^n%aKzcMHBm@4xW#(idjUSx?><RaMUq
z{Oen`@6G4%iKpT>^0q!GW7?e7@m-(u$E3<HZs9?P*jP?}dOUG!;Qr2Tqv!i2&z3A-
zROiMUdE@!JXPGlrSe8AVz1?QklwBKVUby{p&2dQ=Ww|G%_WoYCQ+EGznSJefQ9{Aq
z*Wx?QEjste;?3<d)-I`^>~E(2XAtbFWhpW<SGslWTk@6LcJ>e4m->|WU)XozW8T$M
zCA`XA4EbIRMSX=1ITDr&*e7ml<l>agV7z%=gkka1XALGLZ=;@jP4P`vc6z*P{xd82
zWAkovF21=%zh}DO+x`IG8w!%*eYPI|8Mt=O-0{u!w)02dzU=~&ZiVK2jrnu<mDN?j
zjTg1sUiz>HF={aK8c1XaN+#^B5Op#r%@=<8%f!ul=ETB_j;DoRFf84me01ym?$0|7
zU#<|W%CGak!qt~|bj3X9RX>{Eht(Usa+|vMJo62{re)7MBMxNp`^=g+@!f)joM#my
zeBMeNWtP7FVFA0wSq76H(A`gFqK1<lco!t`fBq4`^yTrT1{qs^5sueeEWKB)P<|P;
zNb-w*v-@-&^&Tr9+aDACznWeZUD$o+vuySE@XtL0V(G`Pt2|q}+Lo=GQ)3pRg2nxw
z$5#qmRTm5VD7aLW{O3QzuUFfggx<3FPwd^yyUv#X!}jO@Di_+#-Nvl-F6_7QZFAKk
zhi~uy)xLUrl{@)#E@PXM_zHW!zpE!%883WO9wznqaK}3LnF0sx@4bF~Uv~5Py(Pub
zZmD_43u>H~yy{tP-Si~aJ&jxAID?(r_2Z6n<f}{)SJ}!tY~8c5ahHD{Lq(*Y!}0rm
zmO<{WHhFSiPe*mFmWx}R{<p*`BdkQVe$)5(^{cG4BQI4P**JOYG4~zz&u9I7F3x`H
zOLp<g$w6L$Rkq#A%@cz+F0}D}eI?jsubGUeOyGtNN$0;=?i;QIS-ka5Pz_1TpCG?J
zYrV5;c2<0Z0o#M(ugkOZ(qCA4oZ>U?Uu))gCj0v2$OD(%I0YZh-EnALEvMwk$Jcfn
zeA&BX=hF}CkIs>pb?=nTgdg)C^v|?$e-wT-Z|=U&@1FkUPmNFf&+uw}?(U3!PQB-<
zifNMS>icT56=#Z91fP61SyT31N8RbP#mhceoMhM@RQPt*UH6of?>iUExPF++U3BlT
z{h6!V^Ieoa9yq0O=&i)}qbjW3Mhw~qWcSv7beSHYops%p$4%AR<-YzOR=>(Wg@G?j
z3Zu4uj=sIeamN&`3AV<Qz5Gt>SnFrJv{;(Qgki=}2J58^D(RCQg!rpi^zH;mGn~(2
zC@XYm`?Pn3#LnAq9mI3>pKVUKVC{Bz&PwH<!8d&6RzJMoE!8%IrF{NN!zV?@dDyS5
zdX{I~Uwq-8QfAZzZkZ;_il6d*wY{+?H@oM{oL0EAyxGV3vqQ@Q{%NKAyKeQq3%bFb
zaa*}BqWS&p4=bPPx_r95)+u_quCnpuyPc+N(>A(nWmeLC>A}V(dGc>2k5>}&r%Q5&
z5<s`M#P2@Jz|7PjGQm=W;Q)u_%ZUz0kFRA=l-t5^*?~{)3gg-(=PsUNur7{rFOvK+
zzeR=V)(JV!-|lud*FD`fOXkgkuTPA#!d2vKuD!jqsmf?#)RC4m%G)BU()ZbWi7oh|
zcc_)`-=2c%{y^WC3stxE_^jbyF8}=2;sndnTMeJiNS(;FegAjQKlW2gj>bkm^S<!u
z=p1KbHVNrIj$hYB*Q!k~D=9Hk$v09noHM~Xtk<^lM(UI#!KdeTA8z2V5u7u@@tfV8
zYZEuctc^Jp{$uji{`4RIk35rhS=qj}VCR^`Jcms(_EklKfnA<tZDDZv=BPz`uATWF
z`B2Qag{yJq2Jyv$O%Z&zH&3!o+tU-Hn>F$E;=la)tikS{U#?b_s!D2EJioPP@%0-s
zV;c_h1mB2jX4!i{{bf*S`?1#Zwzce0x)=QYorAO!b|?t;M_syRw6j);`%*X8qZ!}6
z9<`3pzj1!oL<OfahFi+)FaLSgvU65f)LxeRT1ELT>&|ohnEoiN(|&W(<Y$vJCyM`z
zESzKb?uh`$i#^}hFYF1mSfST`)-P|#ockv}s_%&|2$xJgo@dv<cs8`P*eYFbhhyJ=
z1}~`%J)KQWJD<<1x0-iUZgTd9jsp_C$>(f6|1(Iv**f{%&BhD2Znp$oDz#nBetQv<
z<zntmOD>D!e*YP+t+H+CoqkF|zeeVF_3vx5S2NCCvHn(P;venCAEox4YxL7%`z@}{
zF1cN;n`&MwxF)n`<Jpvm9?LHaSea!mFg?E1pf}rg!kU%y{1qP0FZ?GOc47AGq=}X*
zCH@&+xxo0{U3LY7%>~BYvKkD^CJfDeQy9LQFxnJNQCO+a_u#>0!IyH<KPIopxScd-
zc87Swnz{tr{vTJ>lVtoC{xN*q%`dn>VB5*v$DXh~{&{s-+SR@@7Pgule|}{e-uWG-
z?kH^dDuZ$Uf+bAJ*BZnnUOF6J%3#*8VfnoVf$A>{QhMC#d>U`t)_bv-a4{4}EMVI;
z!F?}-#93zPE*6GIjUBuUzS1HI?tv$kZ4vyky>WSTM=sNZnjI;+U(@3M?X41=)^)cp
zZOysl(DS$7m3=YVXK(kl`_9shEK;g}HmO`V^rm^vWA5hb>x_?PvK+bfBEv|czU=UX
zEQyw|8%L{{DweRtt?OEF^2WMr$G0p0XSn_{`f~pAl{%l4v(>(*#w<{2sFcl~sb0PA
z*<Bs)yoKgA>8JCI)?WB)yKn2Ni+3kK>Ac1%^7MyF0p|nxz`t5?vleW3t4crItL3sg
z*U8E2nANY159*_o%kIpWyJ%<Nn_G3uRhDVIvo!WpSy8|H*ah*6UVZKtzOKnWK5NdN
zssA1?=hcha__^%&xm|M2naaPy&(06X(uv-A@~E}&w$`JYPn^H|D>Ncp*F7tIPV%p-
z5p5T%EI40f-srxaR4BCG|5|r+Qr?Ltq0AE<rmsAeJzb4M_7T^*u2@e=NypvuPwh6?
z_-yv{Pm3pu>v?G0f0TYgPGLvov&_it=XHAg*FAeOr_QD-d_8N~yNdJ9bE->PZ+I0w
zp1W`6^UtfRmQ0w|tlC%Ee`>e8U&Wtn>xfOF8&VZE8UAO;R_;G+Dt0~bP5Cv!=coMl
z2wK|hYyR*$*7x`J&xWr`9-1}S%b(i7<gX*D=4X6D{`sG0vn~f1UApJpb67%O{X>J1
z|JL|9ZsEHxy?d*ancC(O8n>jt@O5P5+S9vis-8LPta-k3U0Ke=xCw_%KvUEV&zTx-
zyv%*f%G6gaP&X%Oi}4qu^|}VPAInx({l2pGM#kcv>ZBzLE17RK-0<UN;$JSp6K3&P
zzSodxy-i(6o1URVvvtJ+n@+~#mu841?3i@5Wx{5+!xK&wIR4S>_!`gkCvexLJMQ(f
zTWs>wC!TnIZ>5n;wVYY)&lM&Dvz(<bcY(H+=~V|XF&H~=@3*_ccDNXnn60}Qj5HV@
zd=ufgRV}Y3U|@4h-hBIlKRZp!HkupUNSJte`{UOE0S({Y|E<2jY!zT|+@@p!yQ1>?
zES75hL$Sdp_f&_ydi|-c(qdg#{=z8}Z{N)H(^r{$XwO+?`PozYRp!<2yLXqpIC^QW
z&-)8^uBcvKz_tB)>U{YUk5lX$JT@?VGhLF?d41urJ6rhPTwABouAX`DyllwxIlr&*
zpIF-!-7NFv*OkVptGrk@?>ug4?^F1n;riM-(ND~$-!6@iF34djZt_@@oN`w3@~z{`
z?hCB{<nf1hhO)ii)UDU<dfd3M=R#_uL%+FTik1N1`vuJEx7oYqww28j-EH>aj@yI9
z$6Fbi%;pG~Ghb-Ry0rC;vo-4!Suc&n{~5ybI-2J{I_CN3Y+~?(sr#qSzW7hY{z!k|
z*8Z-aQ)(l(GSzMMXv;Y&W_jFnVR!0538qy?*bI+p$hJP<%TT-9^Sg;bS(N9Zoadvz
zAu5xi^qh6q^dBpnrpWNcf@NO)+^QK7w}hsb=kNHmvHxCAwf5iV=gX^npWc>y*xRDo
z^>aayhy3BovOjHqtoO|5H%Wck^&;%8^`gbw4BnORRA0cnKz*&+t*95=C!Pd{&OP@?
zw0+0<A7SG8!QRn{Dp#MDF=z1=RM<cEpV`{)zNyD$qv)#>{Ewq;13TBvkhoJ9`uh53
zQD)UjN0!C|FKSotcK=GhG3D8#L~eZr?KjEu_F9K++~oJD&dtAfYqz(p?V>GnZ$<Xq
zUF4SF_{uL^bIY{WqgfT2>w*`g@iJI1_hMj|yTVv@jBW0xx#E(4d`;9B?)oSadwlYo
zzRK5qQ&V_C&cA18DYN~%g176tSY72Q{@L>F`!XYhH}-uLdGN7s!G8v?NyiwhzkFMw
zXn0<PCnmYkq2-v>1*W#=^S1CO7WZj(*v$!IJUfRcm@(u6i%Qaj9CPd16%sAq-Z~s*
zD0>i~=q_8yyp_S6dBp-|6Na59{!L-naomr6E3>c&!|dX>T`U>5qUKb#B$WMUkXq7m
zb9b{y_5_an;1j=o|7Y;p#N++DEYirZ$*Al<!@R4!Vm+7NAJ0FwWPt*+0|z7fjs?!W
z4DpxW-8)t?&$wBd`QS14!s9l5T9dae+W6+;kJk5Zuj;l>mF9E$`}h^-zvhqY=4HQK
z*t@3q`f}+agG%|eF;&evFSk2c%H6-tW4GhrpI1Sb9-P%wx#ee>WccO#LZPC2niGy^
z=^p1-mnl5{pCNu$@g=i&7ViqaZTsCmQQz`Kt@d2)j4byjwyWRR2o!Pr<;~bqroQlX
z9Ph_9Q8}l--FeRyV#ch0wsFt;*aM~7Usvzfdvbf@n|sRt&QA=9=GU@(%>Vodv)k>x
z5zJSLiqG#bUHaupbMM9NQLlVtr=`{<X%!hBW6b%p|AWr8QlW3fxwqYNy<RPmiqDk0
zpSEAambYf-*Sck2_wO}H`_t=^Q?iz4jaNk9lp_;9@EK%q-%heLV5{bP-cx5{sN8eq
zkN@&p=F^|+OcL(xaF+S<<ax$-m5)(wy<UA6yT4W`daco1U%B3O=c8NKmTlkFv)Ln5
zVA0X<%{--f?(#8(ad$Pe44&kgZT)?oYpZ{*UCEmLCzh|Ncy~?Pe#4C;i&Ru+xj*0$
zDp<VI;{E)@(6cv=9dCPetLN93-?yK3`U$!xzW!?eH>)>p&0eL@iaq<-{g?W-g&EA>
zd#ju0%WKc_r~}6@OUk<OmMF{iwInz3pJI2s6P6IRdxq=e1I!b&Chd@!<NK|1`~EPM
z-=Vf`d-|N?cK&uf8TxzU#~<I<S?1+T?a_I>)HC@?od`oN^SdX%E-21Wc~EM?pS)!A
z)`|-ZOFa+1zViK#w(G*#Cd+vkPQA@ZzLRiqL(gGLBdrZ8&5gI$D$e4Uek<)~WK~^N
zC+egbbL+T{z1D>L_r4rozVZ7KV}@e^4|)WD{k|e*o?qo)eIr0|Pcr*jW`O|3<6MP4
zY>(AndQ|gAB{3goYEb_6pW$nO;hIc_b3Ya&A7v80@zLS%auJ5d=Zqa11g!YiWiYmz
zuus^3<^tQ^ZFBc9{b#7QFTcId|3~N&-?L^48~UxwCNRnx-kx{WrL$nS!Hk3FDj(bZ
z`}x)*d8XiTc|!?yX34u(>ey!F6n`(Mo##9Agw4lWo3oBCT4~>^*vceO^5rOlhJ^{w
zyFI!!0=B#72!7VLpYd<&7Hdgk_ki85T8q^!zrBy0(40BbJZbVhj`a=);|%}0a+x_6
zFW)}-ErZvRsyf@_56`-;T_AJy&c|258{~_a9BhjU8|>!(Ted7}uN7~G)ot&Vxwki*
zvU_L0R)2!vYpIfazON?=`wlOS>YmnEEpyDcud#ifM)rb>w|>+gHJ4K6SW<NDO=a*2
zhOY``%Ijt1*Cx&GxV7^|_^&BZZ8KHp%@dT_lNZTwc)d!$VI{*H`4tM+`tOA~`5wJH
zb5?lw)?9Xhzl+3NAD^DOow4txdeOhqlU5>6pZwWky|8nR$=>VpzZPHHWBbwWaA3*S
zT}Su4D{ET2OD%7Hb<<8;bDrw!^KEPv%x+s*GxLSBFy~gu>a~CGSH2F|Tex`TqI(Y(
z7b-BGRBy0b@<lXE<<onSKVh3LI=1^UeS5q>;onpLm5HYxUo5b{wccx<RM7WT`#iq=
z_J4Z$SwYAVH@i2sFYCCU|8sB6iZi}i`f{7E@!aRF>^WK1e^xg(*mj!U=Qt)6+!dD}
zR(W})WwzR1v5r&yXZFop+-{_jp697v{GUOPA%VfFHapvV^Myk%^AcZO_s)4{DY3!1
zQR;i*!9VQ&UI*9aL>cI@p8eGnvZnGx;N_2BP1h)`Uom^zkqNhaB;7bfFY1MCF%DPD
z*7W=;>ss_8?x?433iHBahHj0;>o2C<PuTfd`a%DJ(mz>`FHFl-y%DPLar^wkm!?eH
z#dtoes@>y*XP$qKe*U@bJtmvfz8R%lnRL@T`Po5+>RDYIpF~fWjXbtd$J5qdZO`LH
z*Cg07Bvxq%>^#b>bK{80%&J5Wb(>(9y@EFlJObxWocKxb!rRy9uWh-}H0Se{858Eu
zVBT$eQ2t4f+z~^gjrTt_UuIwLcZFlaxm6E8l|3k^;whEe`|=Ib+Jgr>cs@_4cp`VC
zUW>)CI%B(s;U|wB%=>Crngm^VCK<_h`5^nO^GOFj{>@-qoS&z`AQK?XAYuR5$LYC@
z+!lrh3j!EVeRL44&E)B85ctn9?+Q;r(q4;S^}S4tFEk_`nSEK{RQjOoKZDH$CgDD|
zLI*xqy)uoHi!Yd&=e$|GUHZwb6xs3;$rtRGws;*e_SAE<p3kE1z-Mpom9#xcNp#AL
zV~$U@%X+@3HPHCN+qNZN;q(^?$-itGyxjpBiA{VAClspc=Vdq<n_BxGE=qa4fBjEW
z-7?*b;-`fH5zSA*7mzCaS;2T$gSWeEI@>MR3H6-M@09=5n*6j}b@kjM-#rz37l%G|
zJo$Y8=k-Cep84K+HmzsjYD3|4hR4gZRvh+~n60vTe|E(jeZ}b(=iSsL|E!A1yUpAF
zqCh5PeekbY&-!LfJJ<H^M1zWBldbi&zPl`2G|tFHbcz0)zEohkw!^hH-E$Kz9ZCy*
z>Thw}>sD@YhS!Zn6BL=%S^8SSRkoW%^KacV+im)pZAqN3tQN9w6xB5OqH%fWJlz=S
zP5Zppv8=KZzB&ExyB4{x{;@fJM*`MYwB6nF<m*|Lrf+tWKCt&E?cR{FRnzQj%1)K9
z741&!AC3NA?(=8AwrAEAsafB$JxkvFXE?p`-Gy~a+26`8m0Q2+KZ9L6^JDuC^LZ+2
zx9*!=Q+S*-e_l-agucZW-A~z`H+^wwDUaQLQNO?9%YV+xjrz3m-SNBadF!wL>DSz;
z|6N@93ZK1w)cxAH=W@4Y*`_XwIh>~w`uFS2PY=&0RPEoutTJzg=&IhSzc%GxxOmm{
zcdZ)Z@=S?o0lQOn$coI9PG2oNXS?HVQ@*h8i5o7xI&U}c`f1-!hIfvCG<hgm>vliM
zyYr0J#FduZlZ-E$?g<Jn`=UDeMrEH*k3X~gT+O%HoKhFpJ-pw4Y3G~BsBdfuWu^Za
z__o{<J5nXGOj$?e!vQnfW0gmpKD{&Z`@Y}IUBiO;_wko6XT1*G^x1evtVdFTgr=fv
zi1N~}Y;TIfFLN$=kjwq@(hhCg%HSI>nl3#{w9TG!#cv9u8b|E?_Qwu_lO1wOq(Zk(
z?NpTrKk=ln@A)6COB?w&UNBneyQJlSf^x~R>MG&4A)f6fOJtiR-c^<So2q;xG|hj8
z9KVCD?aGdM#?K7G9=ds)-_O>dG}X*2R-$H4|I;p8w%GI_HxDj1$A5F`t&%kFN9!J{
z>?*k1XQ961SKZDf7j*fGvzbDA5<b5Ti0Gbpx!=oyq0FW_m_eC+mKo#mXHP!)GDvT{
zzLkOD0#nLA5k|?MR`tD#y-{q;x0f>A2vsS5>A*cHL*k8qg-n3Qk42S!g5JrO<}WzA
zyV_INpm591^LA6qHqLz)H<#H>C6!_2lajmtn6Iti+ITEA;9`SF^X|VB-~Tgd-<ZZf
z*N3ZM=`J}dzMWqda;z6QD=m_|gO9D^@yma{(mXf)=P@nZR(yS%@yqx3W^|Y>aF#QQ
zw!2eZ{VRZ7wUV=O+vNFPCtqZA&1F?=^H|{Y{BjqY*2im&vUVM=hdW{(=ld_KT=&Y<
zGPtwl@s*cfWo>zm^BxGi{xa5J?!?)y)waAU=VBXPANXsOZFzRBShL5=x4DnE#jaYy
zz<&MDuj__xU1}jLFZeBwRW4&IeL7Pz_2u1KO~%f=n*By>kCnBLRms1O+P;}t?b(gz
zMSbq3c}h1{nr<vT$8a{`ZuiF3iz4zSMHio#WyF4^i2vF;{SxmmJ^##o7xMy=LgMGk
ze*19q`-53lvFsDJUC93_AezpwyPT`;)#Ghd^RvpIhQB(Jt2e=L=O;G1AS?NEoA{l+
zO?`N<wqOEZ%`t{KC9?k+6nzz}cmEbCE;UI|5i2m=VmFif_aS@Pl|Q7eJ;|w9QpPct
z-SUlVVsX%lhL|%k{gd?Es?z^_j(RPcdc`$tyIax|CeM>^e}=8xx=3(6@1mm|KPzp%
z9*;T}R4%!icT<BAyX@ZL;4%i?sV8|B_gUDl6;CMo^zzf~*v>#tr}~z3h9?P+R_R^e
zG2=zav+PzO*#$BU?2lt@{=L1VcGNeuCFdM}aO01{fLBEavdq(!m6Ly6pLK4L&XXXy
z!<~=iPc?G5Sp~3cyY|+)<@mnpU=K6v_AU!W&ben8PQ=YT&aA#cwl+IhY3eQGhD*G=
z8&1mZc<qsv&e9{hySDy()x>E*4r@aAq?slDGgvI&(8g3a`2h3w{ay)Cy~@+qg|q9_
zHTVD9%eYaU>rc%I@u$oT6Yr~BV4g3|u*5m5N1*t?`IrmRlHuPf<#KA>?|m25<&|(P
z`;~lqt7F2ND!wUPhkw5Jac<x}@Suy$#m#OD!^4RV92N^$3LE>MdZd&v{3)C_KZ^B<
zi4>RY#90iRb91iy30A~C`CwqHxy1KPN#X6aOHz~>*bC~<75`^=wN^Jt&u6;7*4qLD
zhFg4AeNVnFFRbF3viX3-<L4)SG5%4gkNd)(v~@AZKR*v<Rrlq==RYsqaPkD>i2zHR
zln0+*I&`g5>Fj5=c>gniWmW94t11@X9=~+R@!77*_e|!oO5dK3^G|PO-stsDwDj}z
z1?K~=U;n%^IVz*L@=aBUn8ud{PLI173Kpc!&Th_EI<YsT|M=~XtNhNrnAY#n_B6jx
zX`ZC}!=vQ~?@E{^d;7{OzNpLF^Q17?_Mp^>o#zuOPX2kVpyr}s;PG7Kz{D&02VTz4
z_hNW%YMq#`bZWWG=P$PPTuX15DY&|-Gfc32WqJPd+KZ|?)=Y}{G~-oW@XzZu)0V0y
zy`8%$`qbuQ1_4jjuU{cIb7fRk<E)b`X5WJS3It9(Wqkd)c>4!Sw(XrdzD7q}`R6Je
z-mmhvivK`}=iQF&r9}#i1-lF9lpeE6T96*TAZqK{1$&;v#-~}A+8@||R8g)Wb@L1M
zwLur6CHCoGd35>hb+@f5515t9Z9n*bpSv&Zk8P%TuApbB&7n|DX>;e>A6Ir=SvcW<
z3rnB5?AGleoyy(?(b+sHS8p9MWwDm#{><1aQ?f3p*M4(HpQYp*tGW^nM^2yChY^qO
z)Y`6)_|mvNfwBMT*9C44ta;q?M1+5Z-FD$Ozp}38r>A_0@Xu#E)!r{p&R8wU^3QbQ
zf^_-6Sqwpipt*Es^IVAqY5!((E9E7gd|I7Q`s;Jp7R6bq7a7=_uk<{he5JO2s*%g?
zkOEo%1;>5(17H8uY&#aj@V@DWtmWgELE#H?3a>9bseAwSr=v#RW*=8d$Z|@mZ;-jn
zcrPhI{eFVPlL9t>hR16aBsLveyPa8?`9<ONUs4Q_d@qGW866KQFIWHb(f@>*&WU{y
zw+^fF`#V(6FTOOR$9k{jwmmO)a9(vUeBITyYs!3QVVf(WPc$T+)c;z+c<RREy#~@f
z0ZjeVe+Dql;j_BH?DeFmo{J&Rn(s=R<}nRM2GB(gS`6E>bJB9=Pc=SW-)hqG#Vkls
zsAlm~bw>Z-w_m=mR@gLYT9ASDr>a`k0RHOq_UH0OyZ)@PV3~L0ZQuMT-9+A>fh-Eo
zGgY4ds!Eu}W*D;0h~dO>x%utu_bTYvGYBy~=wba;t~5jNwEXPP&n4nt{}X9wvY4kP
z-RG!K-KCpgx^z3!of!w%ZGQJWU%%GgQFKv@U#ny2q30^!{xitkSekI-slM*n)o)+%
zTdujaaaC&I)Fn(^>>GB-d$DL7u&E1Syqpo<q;5E`yyV~3%U)sMeU|h)UiJ&U-oPpG
z#;RoP@(V3lRxJT*Pabo#4s-C?*ep=s_rWpn!pHk|GZwh4-sZr^cTL`}dj6pqB3mUw
z4h8p=vVZ&)dfbg&$D=jm^D)OS$Fr`dCra%~y>@s@f$_20AHS{@zca~`_-3fsc*l4G
zpW}aq*Vm#&Tse(2I{Q!WE|hJv`cPXKef(~BeIb9fvfs0>BCO8aWy59Cx7&T~5G~1$
zG>zWU`tM!2eeT9S&+|W@weUM%_{!^=voP1am9?hZ#diAd`yY(V<-a+|zPi_B({fy8
zlF6n&=R8&B?Npx}ImNY@(Ivn=c-A!zpINVjSqc}j$fSS%&+zr?@v;L8^QAqt);n0f
zz5SnIy<e1qyCVx1y8=(0q|K~nlKNbGN{?Au$X#KSbZ)4STfCM*rSffK|L02$7I&iq
z%p7lgiZ6(%nrE+dEq|J_*PG8}Ide+h$FMuxV~^8dI9F9Ti@_&XrF22cw~LZXI1H~(
zs?}U*%eTp*B|3QWZsiZJ?CrBICmV6D{c|CLN1*uE<1b4SZmck5V4ZDS@%`;To4^g<
z6+RuFta!|B@4qR{CoWlw+34#w*c!e*8qg8uX0IV}((;P}-@m2_Cj+ltjg&~;ag5*R
zukFe=N-QN|tc~)9=XWeIDxH0{_P~RcF?BU{Q;uc}n_c<O5OHK?@xfQ@>z`k06kRgm
zLFt3ickT<nFGv$T5|MNuvHG`gKwvn7eAUEug^xZAPd>kNU@&P&E2w-lgP;BKe}?N0
zIR?KkNfh5|(2cw`d-(x&=02;*|EjL47DaDdFH(4W+c6f=7t60-`Bkg6O)xb<`19Ny
z3Mti}FZ>GSPTbCsl(4$DS$qE9*&ju=F$EfR95Q5=eEsL&-WN<_yFMKgXJP(gVSj!W
zn}AJDyX=X_7SHG1o5Ha(-=L>=Z^$P<!xKjtg!4-7>`5<YsP|%6qjK`_hYHJ=JtcBi
z7<XJ!boF`qpP_@vl6_*&7gLv+O~%~spE_FJs-J#o$zuIbX9J<~nC7=XtFCOC)@~;)
zQ?f#%U;*>;C^q@izb>$R^hiz!S6Ht!>vD*`@>Lt#(r+`kOAktZTet1qWH+&G?E#ls
zUbs8<&F|GN6ZnxQpz(x_S+?Tfm*wd<ocA2g+i%Rf^T6}_^Q<p#c5tjNl%M8d+n+bJ
zuzQza<1^Pn;imFjW_F3=*S1cHnsmW)vC_Sdx=(IAZ=NGJ<K*8=FTGm}m-V$-9|`?x
z`F8#%+w8fn+mp75-Fn!UlKR*};&J0YwOv};)f;b0u6rXCx}#1y<DK!}>}l8ZlP~|V
zU20<RQ=#tH6ZQ%H51MWCswMgAd47ehjA#}=Qe^t|VyBVvcDsnUX8R-VpX3fL>`zwB
zX)>DrK={X{4JS-B!Yo@d`*#^PzW&c}ZC%G|?MdmcmUJ>PIfVZDC-QjFSBYJ*8%|DU
z5j}3V_f`7R2^ZIJ=ANoDcWkg*!uPe|#2IDT3fUFBt*LQL>8&Rv{_--oxKG@9o>AmK
z!>_Xp756q*>7`lMJu0x<``T*K?(HtwqRGrVO&b^NIPu!yz#P6Q9FFsv8g9HWIUTT3
zyv~ySKf~G|SJ!f;Epq#0pt!B$=j;1dk}s`joX)rE$V%zm{efQ=qy==GSG#5-Q`{e)
z|1vo7?MACZD^AU2tNL<M<cQbjN=Xf8!{RS5`@NWsWc8eo`TMTG__}TVuPZ!TzBA}g
z3(-3uu258bV}4fBjYZB=Woi~%od5ZKiP6&?9vxc6iU*W0?|<s!BJ}T*&peLr7Oy?H
zg)I_<bXXPGem%GN`kz6nu0iY8Op%|>g30Th&wDZF_QgFCW}YI;?)*0LP26KEe*Y*2
z#xF7#n6$o|FiJ2;G1M9V&0sV<FT!Xeb}44=#Qv3UG`1(k9ecYb=_KEscYf@${xxCU
zP7#uFPd9`=JDB7i!+8JC_p^)}H1+&Gh0B{UzOd%u`_FKxL3P5PBR!?E)jTD~FI-@b
zW!LDvEz{UgeEUxZ<8<GxZiQ11NJ#wgzcxX1>Yh38q#d5$R=?NV7OmNGZ~27}wf;Wk
z&t`Pbo@>}tc%{i=`G&4dtw}yJSROZ6Grzn%%lV61c_h=@LlgKdzPvwP#hi2^q4)Rs
z`3f>AbJBaheR=uPKaqDT%TDI3k3Gx><sMBqXZ4Did8$pqtdlP?Ivj6lNG!f`LGeiQ
zzxpVK0t-u<dMk!kdyGp~8#cM!P<i3M{y#(9F3nT-Ue1{wd{NFc@OwMM7x}3rcfT2`
zaY}RucnjX)e^KvM_krU?&+Lmc`gSPa2z+10sBZX^cg_UIKOL+3O|RYVobz@;|LN(B
z+aAyV&k$PTKhxrk*Ty*)Z+jlpGknFG{l3&=F7MRP?q?nE9th5lYucH4>~s0en4Q+j
zOI-zywo6*PvYYd0Q+C-5wW9S!3U(z9Q^Og0(%IJ;U;glAsl=&x{`(hHRrx!<*SA-F
zv0A$KVEWyX<%Mnx=F`NV-m>4t=Pt|ne66{-tP1DyHGbl!=bZS?<8U&`?cI}kh4&}B
z@4jKCWp#eyjwZ&(bH4rxtmt|6R9xs@>h=V4pKr`dOXIY}J}I4hsy$^#r8G-}f7zEu
zTl$qenRl*V9(_t7XM5OV-nU)PS8CjM{UI{htsydm_s9gpbH#ny+(*{BO*S*&%$c_*
zslR+dmXfbcGVhgN{r(@9W;C|0dv!iL>%p8oGXswq&a-!nJasWVddk$h{c34%vM1c>
z&a<1+W-Z^#VDS9Y0&cO3l6N#7?=|6fUb?OO^zXZD#&7%`yEZYoCGL59%jvI$`n>rk
ziXD1Be%kiZnkRW*hNMlgVV=LAyR7|z0HyTy(>ePCw@-Xk`JgJmXitx-YO;ccN>kNm
z2fpoRa_Tz^EN$6WF5om!DPl9*TsY5)|MOWUU9X9Y{w#Q&$<89Tyh*d8JMZGep7re8
zEWZ8CkmPEa@bKpW8O_({KQA%dp7~USyCLGq;~O9B`M%_^PM>-ENuGg$!=F#~=e?4Y
zcWm)qa=2#A&cphaUrxMz-{s48+*l=7SR}D&IZH@R!2MknZygS3o?~TjTfF1Z1R+h6
z1JgKs)``gQE&0VI#M{>zndHzpHT1m2`<^=cOIsB3X9Vt4Fg&Pxo%8LB>c9=$DW|sE
zOw-=lpnXT~{$r;*DW6z_n3`Ti$jsaM<qvzzWkKOZ43X#V&z^X{Z~j~b<xkfc`ieM@
zFaLR#!AIx2I&-0f^7hAm2RF(-UF^O^Zg25ziI?v^S2HE4w1(u`d@=wXLi}?#-=0Z+
z?`GK4+5Y|evZGzGJ3o~*T%lCQ_$QOqL=Wby6}(d|EFSMT=5aiyE`-5dYhOsc_#^iX
zzXF)oUR0Pc)9!KY<u4DO-@nwl;LP1vpXCZE>z!ZO)@w~OUD#kSNAO?$ud8fLDP1f!
z3BLoRIUD#im?D<mY>ShSY4%UBb@#Z!w@_%)r&nehz90X2wA{&a@!Zw2EM}iXk8xQ1
zo4WLpirBpn)(Dy8e&>H8#R~kJJuZrBiEG{UvwSuuWwO)uWVu79Li<83<keTKTX{CN
zYQn^>Z$$zH?EX>vD!PulE{l?EVz*FO$MAf)eY@Aw;HN>^7q)FP+o}<pq{{W>{BqIe
zY0d63rGbSD4ySGCy`NF2ygIkwVYgWE{T_yWb4u1txxUde|7=>3#jVYgtBPLqU4MAD
zG1_{)fX%*W2bV(Snzaf!D??-tyt-@eb;{`a)YsL2dSi0elx&W-?iH4)Y@fK@;=BF7
zU5g#N3Y&~4c``4rKQ-Z8)XiJo+j8ca3uUkKEL!@)>CU-yl}Y~fQFpbqmHg)W-P-m_
z;_ICo-_@D_WcMvUlF_~JK=<V4U-RmxCIvEE%M|x~Ir#lwse*f9$!qz07QwGHP1-8k
zcCIx2a@W)4VRiAH>mv7d<>ZSdGsu6+Ryun8sRQSQWD|xt^E8;3UrPFI^|PJf+XI>T
zFQarh(&i{~Z<xAmnem0m6RK;g(`NKk&d{DCbYT0>KbbtT(TdUU-reDNeLksvDT7Br
zb%Rym&(H52ICswY&#=w^`hSM24$Q7ki|1^&;jd!RlHJKYXAVzQ0L#7LId2^2`EOwU
zV|{sp&@n%|n%avK3@245d|MFLn$9;PEwJsJt>b?NwZ=(x@7Q&(=w1BO_xIQL1#I3*
zem{?0FmAATef!r1Y2kA$T9bKXgbb=1FU$TdzBTWVVr0!E4(pmj9x4SK_G@+9!mq4Z
zvg7Zctm7F!cl>9t|F_Dw)M4%x1FMoXr$uB+|Gey2FE5)Z;&op??%$LnrB=BunvCiH
z86w#Jm~+2bzSC~T<7-<zRnq>nxoa~dCy9E#F><S(|M^`eW7?TxZ&g@5gBE8#E-SKB
z-&R!}9NVy5$;u$(yiDU)*_AvFmy#J8j(q-CyMpmVgxvWZ6Fg<@4}Vy|;&$q1{-+N`
z?#q)M_~Iv|Y)tIqV0rx7LCl5MT)NTcyG@_{InC~5%Lj&LAx{e`&OiJSG9_-yL_v<k
za|}V22j9OwzcuK>q$2_gPZqaxPrPh-UjA<t^M$U+CXF!eKF)*B=k0fPJK(m=c4^WB
zJ_ifA2c`cRzFztwX|U6AYgx}@l`rovf0WI<<Fa(o?tGnubXzv}=P%tJZafit_{q+|
zOPjKeb*#NK;qY>~DGZO#Z)MP{Jj#&w;#cE_xp8J%Jq5)tK?{xij%=wmozvuM#IqrR
zL;dC15@n$R?w<5J!nZ#z(`|D3Y4t?(>-(O|4oNSUB)Pu)^tb-R+NT#QJ0&Ld&SdVh
z&6?LxQYYtQw5^KC|B+#2u6&qUZrqXLt(Nhh|GZYP@P5y6XVcm8#8aAKlhiCE^UQfl
zEFb*Mn!N3PVVJ-3r9bKqUe7i6ob)>&x9dcdMx(lP+lAw==h?EGt~Z@JX>(f5uKODU
z7e^cn+`4TY`&ao1Yq~Vga`bW=uuMJi?N{~hVBa@vdh;`70#9o)$nJP<>sxZl-?b>n
zt?I@xc8%<~^gB9zi?k!IiAZ}K>Paa5_G{MTDRXanJIoSc(CS^F?^BeecPuPBglkXo
z4gS}zH_jy=`Lwphf_v)|iMZM<Rkewpav^WeY0tQk|Ij0$;#U_#8iUORqpNf5N*aV4
z`26>p==PnvB@vRcQO_>Gy7;p4-mEn#p%cxf2OVHNf2O$q^9}wghrlrX&p%Td?1I=?
ze$Bfd<tn!M`JbhQO`gZ|i+!SbCW&r;x=W_kw)3bo!*#(PkDa_bp7$`n>~gTYU8v~5
zyCHoW|B64F4Ih6`y|wsR5hL@Q3oI{spXKCF$yI0W+xKt&zg0FZ{y7tFH@$N_oow5{
ze0jYst8I&;MF2;fBRli&o$tSXUBK~}cVnmH4!PyaeTv^ZoS2;Uh~uC_k>&Aq)@cpg
zOCx114}A%!JfDC5&Lz2{<;krvJ#4S++y67Hpa0T9e8CRZQ<DyQJouKM|M^m*%-6RI
zw_8t1l<d2o_hUuY(V5Se@jvu1(>``nCP+Iu*>Brt&*DF_M%I&m6^2dJxtD2k;z)vk
z<KsETwYB@UE|eC1#}?DdVAa6J#&|yXUA26akH8VRI8SNGHjb}fj#*V-k~r%0pF!<`
zv`uY27sKW)&KKT&m3aQaeyweTN1FQ6+mlb84?b7F^4WwOFP&Sps~gOE{xkeKUR5Ug
z#^iaX<{>?CxjpmlKks6wik`%FzqqNoah}Eo(WQ47brxHkcw_Zdc0ZT1EdPm{fiFB{
z>P$E`n;h~f+%Tv3{={SU=c5v|kIDCOYH-Lcw=KTaps3*VpTUgJ^7xAX47MwCm}A^N
zvjz4PUjFp<EVG{N!A*%$TKhu2O1yr1%;M$G%eNgPPF;B<w6aF_!9V%sKhJt=W)xRG
z?>e*LEQ2QKZX7oKyN??A-4!mdum2$xxwXV>BJU^l+yjNL&*v{KagOClUHBrnB0aF3
zOZmJctB1;8w`_08J8RY3Og-yDTN>DF_zGY7a$2`uI4#ebRTtc^lXr~avq;^}wNJJQ
zrLlf*HMP#4y7tD$E28;NvfkbZcXwY>5%pL1NH3p}ICH^?=a+4y&Uw2u{hFTlrTcWs
zoeMi`t%T}%!os*`|1z7Ce)+x6ixVfMrsfDZN~*tpr}0Uu?5b>iN3z*2HE|1Wp$A|8
z2^f0hd{Wch&FJxV5*z<smWi<ieI1^U=k%2R3oX3MIFmVd`*i#IhOJxnsjwBbSp@j2
z+suC+#dz^&&SL2eOzSKx*QxJxe%hb;e4SPG<7N*oqn)Am3>aAEzo<XfIM4JEujl$a
z&VL-AR`*}IZZmUJnC0f{T}?+N-#c*e6=^WCo3I^sPvoD}Dp7OJQTGnt;XmKk3T@=M
z)L1y<_^DH#D&HkuPrm%}wU1lLio;J?CV29`e#O65;fBZEwVw>P8nN+JJznu|3(vOZ
zIqU2aJek$^``1l5;&Mq;WuK>tTs7ls57v}Qw?_^NLX67uml{@b%syAZsp?kGH)BEa
zvY^@FmX?yo11HY2U%!`0DCd}Po}>0FfB9Z!kv50J>pW~e6+5sb9C6xUVKb-n$;Azw
z=^+z@BA#zx-@lh3z|+T}#llijLjKyc!%R;<tSdgwE^&M-v&!!6*{Qw_iM!_fXRv?m
ze8Kq<o6^z`B87c(YweHCJ0xG2lXp4cyY?KR9sk<DE;?A9RUD*uOsi^r{Mz(wZLJap
z7B4b+UVS++IeprH2DN|XRrCF`u1fA#_HtNaw2pfoGhef;<G)C`e_P{RrV53*g((*@
zFORbp_D-C-Tt`~VPhx_5;kn8`nK=e&T*cexl>IAV)ZOxGj>WmlbLwq=U3St@%9Bf4
ze~R--Df8{00SpsFW1md?^uhY`%dhXM16ZWLee7eD^<OS=-Yc3hV_VrgeoKae!aD`E
znhiIf@$GhM;LH<wE_c{|Ekp1Oljv}E2IfAC^9i-9$~5NP4V|vTZRU383-kVKD}^Gv
zldQEhKYhL;lTiBLo86ThmNtncPG{$N9(eM>D*b}|`Yh%PZQ6;~%g#SKZ@Wvd|5`Wu
zLW9OwPn(Ue4o_^bkT@^7=z!D4g)s&S8c%xCC10^J6q`?5rgo1_Ie%B}{$rpjZ+Vw9
zPfFpXhT9G@0n&WO*sA+K&tiD7$9NU5);G;L6XhPrv#h*T^~wI6)}uEkvR)m(7AE$s
zyfJ0V+{s04XNtercbZ;bcz%^>>ZPmK|JkV@U{~=y|MORHbjO)?&n<1{_f^&`>6yMW
z&;H}XuAA>VU!2+f*6ij6-MnQ1)w;(%*xOv~PF}k4LXRMm`c9r3mOA|TPKJG7dv^1R
z+a0f#WPYnUrTDYU@~<o*JTJfOSU2rf?x%&;bwSF^?CdMpXPtf5EBfa2uOmUT#Tbqq
z&-(EC(>%8d`K78m{gcoBJN0zKwE~N{qBSD(7bujj^{I3Cm9%NnG{J4}{AX$~+muNz
zmz5A)*Re=EI5CUyjcVf0x%*FTsa{*pSRXy}uxt0e+4Ayt=OlkU{%LJpeWQJ4&aH#W
zthtsQ0d|iynLqMatPA$v(-&)Z-1^?J$2}$LpML*c8NqM(@!G=WFT>9B82GYYx#K1?
z!N6aq((=ID*Inm)Ri9;w)cjODzqe?1k4>?|0hs_X;ad&*5w}f`G&8)7+wq^l_SGce
zGAkjjKj-H(_Ac)8JZAeVbb=TEG)af&>usxwY(Kgk2<cBNdct>q{<TJio;y4G3zhr)
z9gp!pboi#;Z}vyd?4dLN@#XvXN^`g;?oK$|<o@*dmq(40PwrW9Ye8#Jfi=&^dDZn+
zN!pz<!aF+d<UT1q@WNj1OGD1QlrCn*Ig@wWTrhkkDk5&}Ap7&+e}=CY6i+Md+1<}>
zd3?PH{|U7_=a>Zc)a<aCIPc#VMuyZLhPyW=_J6B5|M;vl$9jdx6g|e1HuIOS|GLDs
z{lP|~WSO$J|3nV#wBcf!ma|%u(LJW|zO236m$!+cQ?Dg>@;IrVp4ZSH|M}8{)6@Do
zcG!L>Jifo)@uiQO+3KfHjQBhc+U_dsU+!~d)5LR!dw<A#ow@LOmQqJU?E~ZMbE>NA
z=Y$<|ebg8lrBm~&z<7?}_l@tbueI&e(s=SDpLyjAhZB~6Dwi0l&Ockn9#nXIxfcVI
ze)x$uT#qMN@mU2(3%D??JaO{4<lFO~ml%DT7T7ppT{YkRharkbXCC0cz_*~}vBcvQ
zZ_g^+sF~<+;cd{PB!>idiSyF6hWF-svu)Q@(lWbzf?clN*05{hWF2V%QJE*t)qB#n
z?>H)*!&12J?(LHYWcqe|`SXHNxp0F0(;4ddIXvl~O&IG0^ddSoS+G1`{`~Uxtwv?q
zdvY2V%RFiDc>Bu!ut=BeF`Mn`tp~pSXRuu%(D9~&rBZ^u;Onva<&XU@Fq!Erol(HS
zSpA^y@XF(X4xB3^I}=!*pJ8WiviQE_!sU%8%AYq`JlkaQMdZ(3`}1p=q*$46uod@R
zVbq#ac>L#o2B{=l>qFvi3)=2ac)=k5ZeII`_fbc`7)`Qz$<kzY>q$YCknQS>cO3>w
zy5A~8PoBuzdH(a-`$t+*PaO3!+HT$O#qxZzZ{zD*rC(1uEL540ck(|&MBU8S$1g3a
ze&J-!wy~Ox+3StPJ6mnTxo*=}-t%5|cejT#)2fySg1ea+8sGOv#kN<g<yFiNoOSB3
z;Xe72<caf(>}7&Hmc6OG{ztXk@S#e?jXr;t63ORmE1K<tKeoO*lvL6qz`?cH?$4a7
z?j^=r_F}K%(<aW!nR|dCwEoc6Do^f(0Y9#XFeF}|+`G*5pnQOlahSGj=>A@nj)srg
zh72`p!avJg*FCkh>GN?lR=va+#s3WR=KsyRHzn@y#?R^9e?0X&^JjfLc7-`5i{DlL
zQKj0>ly_$@Z9A@3`E7-M;*v)VB88V4gq0esdJTPd>GaMKp4?#A_%p2ANpktq*50lM
zCsbJ0RdTU8K3};?<v3r8#4-PvCtu$GxY9FAyHL&H9Dm;7k6)KH)MO;9=ehA&rQ2P}
zQMy$3^IPlf%kSmb*V#)YZWLa2x$WOKM)p3<9K+ei4lxTJ<G+0QwF9U2y7%*ocWN=p
z&HK;L%3#y*V8+3iNrqQ=($)WH2nyXcIB0p``J99Y)fa5rz2=)euzY=ch5UjAuIXVC
zNfiNh^L;MKPq;SmbY)-JoCge6&A$TVJmx7eri2}|RP}iN`S^0LB;}Gx3dIwa@F(`&
zt(s*f;jGE9@VO<!_m|gSI$hvAqb<Y2<g<o>L9oeg?*6q*@>vV?;-|5<vM=8$%f5cE
ziCkORg07^W#S=Ww=l^F2_5LJf+2Qz^&DPa%;msr5ZZR@4kJ(qM&$C?}tlK20w4$f*
zI?LmE_A!qdRKuAog4hZ;?e@*7deopWExfnMOnS9Uvc%V4mn8i>#Vc;^wtT_=`mZLV
zPPfAAiB~sRS5N*|70h%d&xs*=r3&A_{|s{tMgLtn!SO`EY)*l#<I;_;C+8keS1)8p
zzkWxq@_bdw1d)u}g+UQ=?bnw-_ei<+qwL0W7U7<cw@ohCE4hbEF4DXuB4Bu@|HE5{
zZOR@lnR{dpE0|R%+a8r>EQs2Z-ICzaTxM}zrlIm>U*_!%9S@k*CC{-reS15v*7&UA
z1aHakPoF=3xjWCW|9HQbgT<;tJ6Ri#v+(g*eX<h%&+vK~)0$NtpB>qoj0$_^=T-dG
z;CFV5H*)@5ut$D{{Q8|=&l>9T*$4Kh^qjIdXO+DE)0&x!jE~!9c`;wV5WrOO)**+z
zCwVJFPR6gvnU~kRzTGCfZQlOJA#*#k7rwdZ`K`P54=ZSKy6AP;i_I6#2rP1WGXD{?
z-2SO~UnYG~Ibqmn<Ytw}etEfRY!L6nmu0V#dPT}Y-~O23xkhzIchIiMCvWYW@#SUT
zSH+Dls&W)E9hm>^du90b=k)da+4>e<erA0<ct&EUNQ&{~{sqVCc`iAp&rFn7Z3u9e
zJ^6KktFB{Uz_+`7hCSu~Lf4oJ-&pwc*tVQ->(kW*7T;b+*>^vY<;nP$e9*o^ruzAx
zFRQD0?kKEIW>)|3w|;G*NWne5E7weaYw@nTU(LRK{o}}!x1BxKEuXnNz3*z{ika-o
zMfk2spLo7ZgK_732eCDaKBq9t@a_C-@$0fvm8{afH-!h@o;+6}BVTuQ;f&pTHr;sq
z`hK4$`#f7#1~+;3qMpYxpN!|{HT5<ps>*9>Uv03F5o|u^{%HZ5X8Q4f;tBk2%J&+l
z+q^UCZ?j-^IC;|Yao^t;Uj$BW>S6kRuJH2JUEjYf;8-$IRk6dGpXJN*mtAaj=3GaP
zpL)W2UgqnAU%xLXJD*8WR+;nUtxWF8my=)LTj3h%R^X}3Y;j&@PGSGG2`A$0^@R+1
zs^mQEu59C1N-$U8F_Pesuh0Lt*Kq37kjWgo_Z;vGmu-B0gWoHz<xS{oWix(Td&Voj
zFKKM}y*$qIg{7_W%b&qaA~huvmddvK|CTT=S!7Ui@ML_P#W6SbxEsH|uDUUCuf(Zv
zxx`cRUpOq0bMyUYCLk^AAj|Qto;m20yME4+Qw;Cw*QWKFS?ibxPO_5YJfXgRdCsic
zxjh{clU5(+Vz4dpt4`j&R&m<Wn+?zV?oaorD>>r+bT!k1hfWXp-u^6+f9N3k{b-Zh
zyBo(Pml(b{kYX0SUH$sy&&yaRD;&GZx}m_D!SJ66M}NA^gz|K|9|w=G7iqKfR({U9
zt>4f3QNxXzp7WE~xIW$aYVYX7nb@<D<8k&ROZ&seSuQ9Uh}rb+Joj#S&-1S$Q3qTk
zM6?bxSpBOhd+Cw7!dot4;veOw7RUE5T&7fQ<~~8+@x01c<`wb}@68gJ9+t!QB+tG0
znDxIYYfMf}Y~IuMbH?Pp3Yp^n46nZ~VNpFSKer-|&A;$f?f$9EH}>SkcHVNhW%1zK
zuU~yr-f4@fcCJ%4+;}iY@c4S=`Cf6(x07d-8g6uxP;S!J?G~ulVq<ySVCcZOz@a@~
zgz?Uc@0U*JUHjelggN7!#oM1H>s}d!d$|e6_U^2^D!Y#F&GZAu_`TkKul(m0b>m2v
zck3?S+xvq2?Y*`vK6_zqPSvJZUkNVm6pa(dx5v%fdge-=iHG`ptySgnK6P_7qcr$~
zFHLh!U3SQk&AV;lC(A?ad9~Idx3vB>-mILt&u&lZuI<|yWRwkMcUs8&`jF|S*}J)+
z`lhOk25VJ<%&*cftDkz8vB|A8y+28uwXV*<mVJHR)wQM~UxhyzuABAD+Qnx=N>PE;
z$1iWA^y1R9b98eYv#!f!>7QXxm}kwkv*^?A2(Ry^?@G<Kx=(2^>-lo<KZDwyXOpf<
zFFv84FZC&G=1-k^#T((mX)mLlZRYuZSt)n0K|`Xs|MS193yK`JMV1TF{g>X_q%irj
z#X0+5Ul+L;{od4L^f>W^%D3b7N4^}-TI9ubC|$8qd5-Xvf2PVew(bzQbu)ISy2RW0
zmu7V3y*MT5$--CMGpSaSKQY2&LGc!~3cJHgnQv@nai7eu+VFGZ`Jd;j);qcH-n;9W
zPtkLQ^5ZhUf^Kk4n!8}?0Y-P(0{{49jXmnw#Z%)J_t~G{9_0`z{PQ@w#ffhx{xjHW
zwjJ>m)GFY3-c;{kYkaSf&slYM-hp4GZ<~+5_D-B^n0ot|<Cm|t7GIX>c06D%Ji$C?
zUV+txhSE!&!X?g`>?{cn{xfX#{mGf(u<0F>={a|1Tg%rkES5eAIPv@wXHH7n%j4TD
zzkXkwuu)~ZT*>T>=Y!|nk@wROJGy`Calsq@%<Kyv^c}v{V6au3hkFvYxk`Ur{W+~j
zk7FC+@An<Ie17BE(!AgsFYY?tIaSzvA)V#dU*jmjC%U`6A~v40PG9icrp|=zmhcq5
zB?i`eix2$yw}tJf%b|jw$`Y0m2fn?%Hi0WST!LM~CYZO8?eL_kdGqdS++Y(;sS$EY
zU;g#@YX_;Ymr}iJI3GOSeBodGTtg1C#dFf%J#Iec?pJu{+X6Q0gqg+H<@NoKO{nDi
zTsHUh!4vFX{xeuEdc2{xSjl5Sf~Yz}&(}A_u16COg}Hs^lb&SYF7t1u{8HPk{E9AT
z0@jr^pOCG5d96XE#NaIh|MXp7zuH>-3cA55W@)%FB3Ies<@s&(@llBz9_!U#T@jPK
zUAnq|rODB3(bF>9E`Dlb&oeTp{?A}F->J=8Enwnd!*lMI$7QVpSZBz1J!JoNCYRZU
z&-(ebSz^c3Ry9mkV|!|0@xs+P)+@Fr=J~A!d)o!KH~tDx<b14sd@X~COtHi134VzQ
zkL`Y}Rn&7^vP<CV)xNiSv)^clOx)S|I_^l+ob^wNOdhRCjXte>xAji(w)IoZvr9zZ
z^t)*q)T!9V`|x``DR7Os&~j4nL~`@|^YTl>wVZ4>`|E7Cs$rRb=ax-N)jO^Q^Up0^
zGWjdZS9kfxtGD$Ba!(L(+i^Z{&YVj<p>5~nyjM!}$Qk&{FtCPeG0(a7JmV@uQt{;L
zdrK~P#@=Wz7JKI2v#8BRLH*U8tCu}@dfjz=nc|&T@GR%)=H~m$MOLXyJKWj*C^yX0
z|7Lj#19zP)YsFWoDCJdJx8?*&elu-caBdDCuYv%76#EPPoG#|1yS*EC)O_4p_59LG
zrMUL6NfP#D3@OJQPaMzrqJHPvY{4Bz4UX{nJ*ayj@z`$huK>1^F42?yTKf+lfBoZE
zNYBP>Lxz=4cW<z%^-x~8Yzv#e-IbqpF_V_aRM*e<%6Am-xFdKdkKOkC^~U2{6}x%j
zm9-{GYq7KN)K&{sUrbOb@#th%X>fSif95}fm6@Qx^pcnc^TLT&CibMiyw=!L-Ij9W
zNV1KY<*$Dxm28LKhVrZSc`7elz%D*_+bXfpz`nYj5_VI#6ShsfF!%ZNQ+@NVZ{>EV
zbFw)Vq44FzV~OKW9Ryi*Bziu+egE=r2Gi;3LFOgTnU~qF>{$Gq!L5S1&v0JVvx!b8
zw~4E|g*Q)r<^I&|fCtm`QyVNL&*wZ=R;d2AfKyiVQ(f@n>+E*(Cz^04v;D~lvJmCj
zl791}#(xI8Ez=&qC|TTb{$Z3rWdGkp*^QS!EO1fmkYIUS?tiYavwzAz`%^PI4lvlu
zAF`jgz&WC3RrSZ9K-uf3Eso1@$vrmFz412B|EJPQf$w^E8k8*legCqs(a--Y%e<X|
zKZ=j?qzEyrbC8g(sw-&}Wj885tJJIA*byvKR6jM`$s@@k@ZV4Qr3@J{E0~PfEoJ_d
z9Pwg5W7q#TgV~DtbMlS<3|5nRwYPG(U0^>c`M7KOf_9I^r_Nci{d4PU(pto5Qo|Q&
zd^~P$29tGP?lbnyW?EH-b1ELpI&qQvf)tx}fo4Zi>7Pvg1wURk-nj8OW#+%n;R~IM
zXQfPYsNMeWX8&J~@CEzS{|V21``K2{et-YkqG^$N46^%weYqfapIvHEa!<rM`}Ye2
zFF%v5bDvf5{GZct`#b)B*;?3@3oMnlUHq%r^W4VG;9_$B^k3J${F-!1YC8XMd5wRe
zTkTtB=9&9G*#5h1^Xd(ccOJYalveYfq2hYG?#)}<G`gDFnolmMW%&L_gOOi;DwA2s
z!;VfF*#~uPYjeC!&fitv=kUky^2-oUo>Of9*d_jj81~y&@Ex>Y%ix-4tayGYlir;k
z<Npl%?57%NEqL<RS8>ykBdY~0B>zn@<emRc|H1`U&nm`u`%kqQt(J4Y{Od~3%eTt@
z+VA?mM!v9m_c}_6Yp2EQKgqvBrlj8y-dVT*vBQMUbH*>~=c=%^844;lZ>fLbw8Aah
zy71)he_PtDUN9J0y!`Vbq2mtklWI^utJTK$xD5YOk6K>tRz`p3tpR=6!4Kwt-@i2N
IwEO>?0IPs0fB*mh

diff --git a/public/style.css b/public/style.css
deleted file mode 100644
index aecafa5..0000000
--- a/public/style.css
+++ /dev/null
@@ -1,26 +0,0 @@
-body {
-  font-family: 나눔고딕;
-  margin: auto;
-  padding-left: 20px;
-  max-width: 1280px;
-  background-color: lightgray;
-
-}
-
-li {
-	font-size: 11pt;
-	margin: 4px; 
-}
-
-table {
-	width: 95%;
-	border: 2px solid #777777;
-	font-size: 10pt;
-}
-
-th, td {
-	border: 1px solid grey;
-	padding-left: 3px; 
-	padding-right: 3px; 
-}
-
diff --git a/src-ui/.gitignore b/src-ui/.gitignore
new file mode 100644
index 0000000..270a92d
--- /dev/null
+++ b/src-ui/.gitignore
@@ -0,0 +1,10 @@
+# Generated by Cargo
+# will have compiled files and executables
+/target/
+WixTools
+
+# These are backup files generated by rustfmt
+**/*.rs.bk
+
+config.json
+bundle.json
diff --git a/src-ui/Cargo.lock b/src-ui/Cargo.lock
new file mode 100644
index 0000000..d6424f4
--- /dev/null
+++ b/src-ui/Cargo.lock
@@ -0,0 +1,3196 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "Rust-Tutorial"
+version = "1.0.0"
+dependencies = [
+ "serde",
+ "serde_json",
+ "tauri",
+ "tauri-build",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "aho-corasick"
+version = "0.7.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "alloc-no-stdlib"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
+
+[[package]]
+name = "alloc-stdlib"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
+dependencies = [
+ "alloc-no-stdlib",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800"
+
+[[package]]
+name = "atk"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd"
+dependencies = [
+ "atk-sys",
+ "bitflags",
+ "glib",
+ "libc",
+]
+
+[[package]]
+name = "atk-sys"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps 6.0.3",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "base64"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+
+[[package]]
+name = "base64"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "block"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "brotli"
+version = "3.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+ "brotli-decompressor",
+]
+
+[[package]]
+name = "brotli-decompressor"
+version = "2.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b6561fd3f895a11e8f72af2cb7d22e08366bebc2b6b57f7744c4bda27034744"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+]
+
+[[package]]
+name = "bstr"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ffdb39cb703212f3c11973452c2861b972f757b021158f3516ba10f2fa8b2c1"
+dependencies = [
+ "memchr",
+ "serde",
+]
+
+[[package]]
+name = "bytemuck"
+version = "1.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea"
+
+[[package]]
+name = "byteorder"
+version = "1.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+
+[[package]]
+name = "bytes"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+
+[[package]]
+name = "cairo-rs"
+version = "0.15.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc"
+dependencies = [
+ "bitflags",
+ "cairo-sys-rs",
+ "glib",
+ "libc",
+ "thiserror",
+]
+
+[[package]]
+name = "cairo-sys-rs"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps 6.0.3",
+]
+
+[[package]]
+name = "cargo_toml"
+version = "0.13.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "497049e9477329f8f6a559972ee42e117487d01d1e8c2cc9f836ea6fa23a9e1a"
+dependencies = [
+ "serde",
+ "toml",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+
+[[package]]
+name = "cesu8"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
+
+[[package]]
+name = "cfb"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74f89d248799e3f15f91b70917f65381062a01bb8e222700ea0e5a7ff9785f9c"
+dependencies = [
+ "byteorder",
+ "uuid 0.8.2",
+]
+
+[[package]]
+name = "cfg-expr"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7"
+dependencies = [
+ "smallvec",
+]
+
+[[package]]
+name = "cfg-expr"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa"
+dependencies = [
+ "smallvec",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "cocoa"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a"
+dependencies = [
+ "bitflags",
+ "block",
+ "cocoa-foundation",
+ "core-foundation",
+ "core-graphics",
+ "foreign-types",
+ "libc",
+ "objc",
+]
+
+[[package]]
+name = "cocoa-foundation"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318"
+dependencies = [
+ "bitflags",
+ "block",
+ "core-foundation",
+ "core-graphics-types",
+ "foreign-types",
+ "libc",
+ "objc",
+]
+
+[[package]]
+name = "color_quant"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
+
+[[package]]
+name = "combine"
+version = "4.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
+dependencies = [
+ "bytes",
+ "memchr",
+]
+
+[[package]]
+name = "convert_case"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
+
+[[package]]
+name = "core-foundation"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+
+[[package]]
+name = "core-graphics"
+version = "0.22.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb"
+dependencies = [
+ "bitflags",
+ "core-foundation",
+ "core-graphics-types",
+ "foreign-types",
+ "libc",
+]
+
+[[package]]
+name = "core-graphics-types"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b"
+dependencies = [
+ "bitflags",
+ "core-foundation",
+ "foreign-types",
+ "libc",
+]
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crc32fast"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c"
+dependencies = [
+ "cfg-if",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "typenum",
+]
+
+[[package]]
+name = "cssparser"
+version = "0.27.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a"
+dependencies = [
+ "cssparser-macros",
+ "dtoa-short",
+ "itoa 0.4.8",
+ "matches",
+ "phf 0.8.0",
+ "proc-macro2",
+ "quote",
+ "smallvec",
+ "syn",
+]
+
+[[package]]
+name = "cssparser-macros"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e"
+dependencies = [
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "ctor"
+version = "0.1.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
+dependencies = [
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "darling"
+version = "0.13.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.13.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.13.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "derive_more"
+version = "0.99.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
+dependencies = [
+ "convert_case",
+ "proc-macro2",
+ "quote",
+ "rustc_version",
+ "syn",
+]
+
+[[package]]
+name = "digest"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
+dependencies = [
+ "block-buffer",
+ "crypto-common",
+]
+
+[[package]]
+name = "dirs-next"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
+dependencies = [
+ "cfg-if",
+ "dirs-sys-next",
+]
+
+[[package]]
+name = "dirs-sys-next"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "dispatch"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
+
+[[package]]
+name = "dtoa"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0"
+
+[[package]]
+name = "dtoa-short"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bde03329ae10e79ede66c9ce4dc930aa8599043b0743008548680f25b91502d6"
+dependencies = [
+ "dtoa",
+]
+
+[[package]]
+name = "dunce"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0bd4b30a6560bbd9b4620f4de34c3f14f60848e58a9b7216801afcb4c7b31c3c"
+
+[[package]]
+name = "embed_plist"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7"
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "errno"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "errno-dragonfly"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "fastrand"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+dependencies = [
+ "instant",
+]
+
+[[package]]
+name = "field-offset"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3cf3a800ff6e860c863ca6d4b16fd999db8b752819c1606884047b73e468535"
+dependencies = [
+ "memoffset",
+ "rustc_version",
+]
+
+[[package]]
+name = "filetime"
+version = "0.2.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a3de6e8d11b22ff9edc6d916f890800597d60f8b2da1caf2955c274638d6412"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "flate2"
+version = "1.0.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841"
+dependencies = [
+ "crc32fast",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "futf"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843"
+dependencies = [
+ "mac",
+ "new_debug_unreachable",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac"
+dependencies = [
+ "futures-core",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89d422fa3cbe3b40dca574ab087abb5bc98258ea57eea3fd6f1fa7162c778b91"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "futures-task"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879"
+
+[[package]]
+name = "futures-util"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab"
+dependencies = [
+ "futures-core",
+ "futures-macro",
+ "futures-task",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "fxhash"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
+dependencies = [
+ "byteorder",
+]
+
+[[package]]
+name = "gdk"
+version = "0.15.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8"
+dependencies = [
+ "bitflags",
+ "cairo-rs",
+ "gdk-pixbuf",
+ "gdk-sys",
+ "gio",
+ "glib",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "gdk-pixbuf"
+version = "0.15.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a"
+dependencies = [
+ "bitflags",
+ "gdk-pixbuf-sys",
+ "gio",
+ "glib",
+ "libc",
+]
+
+[[package]]
+name = "gdk-pixbuf-sys"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7"
+dependencies = [
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps 6.0.3",
+]
+
+[[package]]
+name = "gdk-sys"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "pkg-config",
+ "system-deps 6.0.3",
+]
+
+[[package]]
+name = "gdkx11-sys"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4b7f8c7a84b407aa9b143877e267e848ff34106578b64d1e0a24bf550716178"
+dependencies = [
+ "gdk-sys",
+ "glib-sys",
+ "libc",
+ "system-deps 6.0.3",
+ "x11",
+]
+
+[[package]]
+name = "generator"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33a20a288a94683f5f4da0adecdbe095c94a77c295e514cc6484e9394dd8376e"
+dependencies = [
+ "cc",
+ "libc",
+ "log",
+ "rustversion",
+ "windows 0.44.0",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi 0.9.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "gio"
+version = "0.15.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b"
+dependencies = [
+ "bitflags",
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "gio-sys",
+ "glib",
+ "libc",
+ "once_cell",
+ "thiserror",
+]
+
+[[package]]
+name = "gio-sys"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps 6.0.3",
+ "winapi",
+]
+
+[[package]]
+name = "glib"
+version = "0.15.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d"
+dependencies = [
+ "bitflags",
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-task",
+ "glib-macros",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "once_cell",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "glib-macros"
+version = "0.15.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25a68131a662b04931e71891fb14aaf65ee4b44d08e8abc10f49e77418c86c64"
+dependencies = [
+ "anyhow",
+ "heck 0.4.1",
+ "proc-macro-crate",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "glib-sys"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4"
+dependencies = [
+ "libc",
+ "system-deps 6.0.3",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "globset"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc"
+dependencies = [
+ "aho-corasick",
+ "bstr",
+ "fnv",
+ "log",
+ "regex",
+]
+
+[[package]]
+name = "gobject-sys"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps 6.0.3",
+]
+
+[[package]]
+name = "gtk"
+version = "0.15.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0"
+dependencies = [
+ "atk",
+ "bitflags",
+ "cairo-rs",
+ "field-offset",
+ "futures-channel",
+ "gdk",
+ "gdk-pixbuf",
+ "gio",
+ "glib",
+ "gtk-sys",
+ "gtk3-macros",
+ "libc",
+ "once_cell",
+ "pango",
+ "pkg-config",
+]
+
+[[package]]
+name = "gtk-sys"
+version = "0.15.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84"
+dependencies = [
+ "atk-sys",
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gdk-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "system-deps 6.0.3",
+]
+
+[[package]]
+name = "gtk3-macros"
+version = "0.15.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24f518afe90c23fba585b2d7697856f9e6a7bbc62f65588035e66f6afb01a2e9"
+dependencies = [
+ "anyhow",
+ "proc-macro-crate",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "heck"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
+dependencies = [
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "hermit-abi"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "html5ever"
+version = "0.25.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148"
+dependencies = [
+ "log",
+ "mac",
+ "markup5ever",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "http"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa 1.0.6",
+]
+
+[[package]]
+name = "http-range"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573"
+
+[[package]]
+name = "ico"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "031530fe562d8c8d71c0635013d6d155bbfe8ba0aa4b4d2d24ce8af6b71047bd"
+dependencies = [
+ "byteorder",
+ "png",
+]
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+[[package]]
+name = "idna"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "ignore"
+version = "0.4.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d"
+dependencies = [
+ "crossbeam-utils",
+ "globset",
+ "lazy_static",
+ "log",
+ "memchr",
+ "regex",
+ "same-file",
+ "thread_local",
+ "walkdir",
+ "winapi-util",
+]
+
+[[package]]
+name = "image"
+version = "0.24.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69b7ea949b537b0fd0af141fff8c77690f2ce96f4f41f042ccb6c69c6c965945"
+dependencies = [
+ "bytemuck",
+ "byteorder",
+ "color_quant",
+ "num-rational",
+ "num-traits",
+]
+
+[[package]]
+name = "indexmap"
+version = "1.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
+dependencies = [
+ "autocfg",
+ "hashbrown",
+]
+
+[[package]]
+name = "infer"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20b2b533137b9cad970793453d4f921c2e91312a6d88b1085c07bc15fc51bb3b"
+dependencies = [
+ "cfb",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "io-lifetimes"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cfa919a82ea574332e2de6e74b4c36e74d41982b335080fa59d4ef31be20fdf3"
+dependencies = [
+ "libc",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "itoa"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
+
+[[package]]
+name = "itoa"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+
+[[package]]
+name = "javascriptcore-rs"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf053e7843f2812ff03ef5afe34bb9c06ffee120385caad4f6b9967fcd37d41c"
+dependencies = [
+ "bitflags",
+ "glib",
+ "javascriptcore-rs-sys",
+]
+
+[[package]]
+name = "javascriptcore-rs-sys"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "905fbb87419c5cde6e3269537e4ea7d46431f3008c5d057e915ef3f115e7793c"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps 5.0.0",
+]
+
+[[package]]
+name = "jni"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c"
+dependencies = [
+ "cesu8",
+ "combine",
+ "jni-sys",
+ "log",
+ "thiserror",
+ "walkdir",
+]
+
+[[package]]
+name = "jni-sys"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
+
+[[package]]
+name = "json-patch"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb3fa5a61630976fc4c353c70297f2e93f1930e3ccee574d59d618ccbd5154ce"
+dependencies = [
+ "serde",
+ "serde_json",
+ "treediff",
+]
+
+[[package]]
+name = "kuchiki"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358"
+dependencies = [
+ "cssparser",
+ "html5ever",
+ "matches",
+ "selectors",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.140"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
+
+[[package]]
+name = "line-wrap"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9"
+dependencies = [
+ "safemem",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
+
+[[package]]
+name = "lock_api"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "loom"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5"
+dependencies = [
+ "cfg-if",
+ "generator",
+ "scoped-tls",
+ "serde",
+ "serde_json",
+ "tracing",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "mac"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
+
+[[package]]
+name = "malloc_buf"
+version = "0.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "markup5ever"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd"
+dependencies = [
+ "log",
+ "phf 0.8.0",
+ "phf_codegen",
+ "string_cache",
+ "string_cache_codegen",
+ "tendril",
+]
+
+[[package]]
+name = "matchers"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
+dependencies = [
+ "regex-automata",
+]
+
+[[package]]
+name = "matches"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
+
+[[package]]
+name = "memchr"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "memoffset"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "miniz_oxide"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
+dependencies = [
+ "adler",
+]
+
+[[package]]
+name = "ndk"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4"
+dependencies = [
+ "bitflags",
+ "jni-sys",
+ "ndk-sys",
+ "num_enum",
+ "thiserror",
+]
+
+[[package]]
+name = "ndk-context"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
+
+[[package]]
+name = "ndk-sys"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97"
+dependencies = [
+ "jni-sys",
+]
+
+[[package]]
+name = "new_debug_unreachable"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
+
+[[package]]
+name = "nodrop"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+dependencies = [
+ "overload",
+ "winapi",
+]
+
+[[package]]
+name = "num-integer"
+version = "0.1.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+dependencies = [
+ "autocfg",
+ "num-traits",
+]
+
+[[package]]
+name = "num-rational"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "num_enum"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9"
+dependencies = [
+ "num_enum_derive",
+]
+
+[[package]]
+name = "num_enum_derive"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"
+dependencies = [
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "objc"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+dependencies = [
+ "malloc_buf",
+ "objc_exception",
+]
+
+[[package]]
+name = "objc_exception"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "objc_id"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
+dependencies = [
+ "objc",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.17.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+
+[[package]]
+name = "open"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21ecf2487e799604735754d2c5896106785987b441b5aee58f242e4d4963179a"
+dependencies = [
+ "pathdiff",
+]
+
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[package]]
+name = "pango"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f"
+dependencies = [
+ "bitflags",
+ "glib",
+ "libc",
+ "once_cell",
+ "pango-sys",
+]
+
+[[package]]
+name = "pango-sys"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps 6.0.3",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "paste"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79"
+
+[[package]]
+name = "pathdiff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+
+[[package]]
+name = "percent-encoding"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+
+[[package]]
+name = "phf"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
+dependencies = [
+ "phf_macros 0.8.0",
+ "phf_shared 0.8.0",
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "phf"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
+dependencies = [
+ "phf_macros 0.10.0",
+ "phf_shared 0.10.0",
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "phf_codegen"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
+dependencies = [
+ "phf_generator 0.8.0",
+ "phf_shared 0.8.0",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
+dependencies = [
+ "phf_shared 0.8.0",
+ "rand 0.7.3",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
+dependencies = [
+ "phf_shared 0.10.0",
+ "rand 0.8.5",
+]
+
+[[package]]
+name = "phf_macros"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c"
+dependencies = [
+ "phf_generator 0.8.0",
+ "phf_shared 0.8.0",
+ "proc-macro-hack",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "phf_macros"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0"
+dependencies = [
+ "phf_generator 0.10.0",
+ "phf_shared 0.10.0",
+ "proc-macro-hack",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+
+[[package]]
+name = "plist"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffac6a51110e97610dd3ac73e34a65b27e56a1e305df41bad1f616d8e1cb22f4"
+dependencies = [
+ "base64 0.21.0",
+ "indexmap",
+ "line-wrap",
+ "quick-xml",
+ "serde",
+ "time",
+]
+
+[[package]]
+name = "png"
+version = "0.17.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d708eaf860a19b19ce538740d2b4bdeeb8337fa53f7738455e706623ad5c638"
+dependencies = [
+ "bitflags",
+ "crc32fast",
+ "flate2",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "precomputed-hash"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
+
+[[package]]
+name = "proc-macro-crate"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
+dependencies = [
+ "once_cell",
+ "toml_edit",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-hack"
+version = "0.5.20+deprecated"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.52"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d0e1ae9e836cc3beddd63db0df682593d7e2d3d891ae8c9083d2113e1744224"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quick-xml"
+version = "0.27.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffc053f057dd768a56f62cd7e434c42c831d296968997e9ac1f76ea7c2d14c41"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom 0.1.16",
+ "libc",
+ "rand_chacha 0.2.2",
+ "rand_core 0.5.1",
+ "rand_hc",
+ "rand_pcg",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha 0.3.1",
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom 0.1.16",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom 0.2.8",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "rand_pcg"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
+dependencies = [
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "raw-window-handle"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f851a03551ceefd30132e447f07f96cb7011d6b658374f3aed847333adb5559"
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+dependencies = [
+ "getrandom 0.2.8",
+ "redox_syscall",
+ "thiserror",
+]
+
+[[package]]
+name = "regex"
+version = "1.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+dependencies = [
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustix"
+version = "0.36.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd5c6ff11fecd55b40746d1995a02f2eb375bf8c00d192d521ee09f42bef37bc"
+dependencies = [
+ "bitflags",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06"
+
+[[package]]
+name = "ryu"
+version = "1.0.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+
+[[package]]
+name = "safemem"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "scoped-tls"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "selectors"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe"
+dependencies = [
+ "bitflags",
+ "cssparser",
+ "derive_more",
+ "fxhash",
+ "log",
+ "matches",
+ "phf 0.8.0",
+ "phf_codegen",
+ "precomputed-hash",
+ "servo_arc",
+ "smallvec",
+ "thin-slice",
+]
+
+[[package]]
+name = "semver"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.156"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "314b5b092c0ade17c00142951e50ced110ec27cea304b1037c6969246c2469a4"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.156"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7e29c4601e36bcec74a223228dce795f4cd3616341a4af93520ca1a837c087d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.94"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea"
+dependencies = [
+ "itoa 1.0.6",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_repr"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "395627de918015623b32e7669714206363a7fc00382bf477e72c1f7533e8eafc"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_with"
+version = "1.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff"
+dependencies = [
+ "serde",
+ "serde_with_macros",
+]
+
+[[package]]
+name = "serde_with_macros"
+version = "1.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serialize-to-javascript"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb"
+dependencies = [
+ "serde",
+ "serde_json",
+ "serialize-to-javascript-impl",
+]
+
+[[package]]
+name = "serialize-to-javascript-impl"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "servo_arc"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432"
+dependencies = [
+ "nodrop",
+ "stable_deref_trait",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "siphasher"
+version = "0.3.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+
+[[package]]
+name = "slab"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+
+[[package]]
+name = "soup2"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0"
+dependencies = [
+ "bitflags",
+ "gio",
+ "glib",
+ "libc",
+ "once_cell",
+ "soup2-sys",
+]
+
+[[package]]
+name = "soup2-sys"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "009ef427103fcb17f802871647a7fa6c60cbb654b4c4e4c0ac60a31c5f6dc9cf"
+dependencies = [
+ "bitflags",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps 5.0.0",
+]
+
+[[package]]
+name = "stable_deref_trait"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+
+[[package]]
+name = "state"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b"
+dependencies = [
+ "loom",
+]
+
+[[package]]
+name = "string_cache"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b"
+dependencies = [
+ "new_debug_unreachable",
+ "once_cell",
+ "parking_lot",
+ "phf_shared 0.10.0",
+ "precomputed-hash",
+ "serde",
+]
+
+[[package]]
+name = "string_cache_codegen"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988"
+dependencies = [
+ "phf_generator 0.10.0",
+ "phf_shared 0.10.0",
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "system-deps"
+version = "5.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e"
+dependencies = [
+ "cfg-expr 0.9.1",
+ "heck 0.3.3",
+ "pkg-config",
+ "toml",
+ "version-compare 0.0.11",
+]
+
+[[package]]
+name = "system-deps"
+version = "6.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2955b1fe31e1fa2fbd1976b71cc69a606d7d4da16f6de3333d0c92d51419aeff"
+dependencies = [
+ "cfg-expr 0.11.0",
+ "heck 0.4.1",
+ "pkg-config",
+ "toml",
+ "version-compare 0.1.1",
+]
+
+[[package]]
+name = "tao"
+version = "0.15.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac8e6399427c8494f9849b58694754d7cc741293348a6836b6c8d2c5aa82d8e6"
+dependencies = [
+ "bitflags",
+ "cairo-rs",
+ "cc",
+ "cocoa",
+ "core-foundation",
+ "core-graphics",
+ "crossbeam-channel",
+ "dispatch",
+ "gdk",
+ "gdk-pixbuf",
+ "gdk-sys",
+ "gdkx11-sys",
+ "gio",
+ "glib",
+ "glib-sys",
+ "gtk",
+ "image",
+ "instant",
+ "jni",
+ "lazy_static",
+ "libc",
+ "log",
+ "ndk",
+ "ndk-context",
+ "ndk-sys",
+ "objc",
+ "once_cell",
+ "parking_lot",
+ "paste",
+ "png",
+ "raw-window-handle",
+ "scopeguard",
+ "serde",
+ "unicode-segmentation",
+ "uuid 1.3.0",
+ "windows 0.39.0",
+ "windows-implement",
+ "x11-dl",
+]
+
+[[package]]
+name = "tar"
+version = "0.4.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6"
+dependencies = [
+ "filetime",
+ "libc",
+ "xattr",
+]
+
+[[package]]
+name = "tauri"
+version = "1.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe7e0f1d535e7cbbbab43c82be4fc992b84f9156c16c160955617e0260ebc449"
+dependencies = [
+ "anyhow",
+ "cocoa",
+ "dirs-next",
+ "embed_plist",
+ "encoding_rs",
+ "flate2",
+ "futures-util",
+ "glib",
+ "glob",
+ "gtk",
+ "heck 0.4.1",
+ "http",
+ "ignore",
+ "objc",
+ "once_cell",
+ "open",
+ "percent-encoding",
+ "rand 0.8.5",
+ "raw-window-handle",
+ "regex",
+ "semver",
+ "serde",
+ "serde_json",
+ "serde_repr",
+ "serialize-to-javascript",
+ "state",
+ "tar",
+ "tauri-macros",
+ "tauri-runtime",
+ "tauri-runtime-wry",
+ "tauri-utils",
+ "tempfile",
+ "thiserror",
+ "tokio",
+ "url",
+ "uuid 1.3.0",
+ "webkit2gtk",
+ "webview2-com",
+ "windows 0.39.0",
+]
+
+[[package]]
+name = "tauri-build"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8807c85d656b2b93927c19fe5a5f1f1f348f96c2de8b90763b3c2d561511f9b4"
+dependencies = [
+ "anyhow",
+ "cargo_toml",
+ "heck 0.4.1",
+ "json-patch",
+ "semver",
+ "serde_json",
+ "tauri-utils",
+ "winres",
+]
+
+[[package]]
+name = "tauri-codegen"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14388d484b6b1b5dc0f6a7d6cc6433b3b230bec85eaa576adcdf3f9fafa49251"
+dependencies = [
+ "base64 0.13.1",
+ "brotli",
+ "ico",
+ "json-patch",
+ "plist",
+ "png",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "semver",
+ "serde",
+ "serde_json",
+ "sha2",
+ "tauri-utils",
+ "thiserror",
+ "time",
+ "uuid 1.3.0",
+ "walkdir",
+]
+
+[[package]]
+name = "tauri-macros"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "069319e5ecbe653a799b94b0690d9f9bf5d00f7b1d3989aa331c524d4e354075"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "tauri-codegen",
+ "tauri-utils",
+]
+
+[[package]]
+name = "tauri-runtime"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c507d954d08ac8705d235bc70ec6975b9054fb95ff7823af72dbb04186596f3b"
+dependencies = [
+ "gtk",
+ "http",
+ "http-range",
+ "rand 0.8.5",
+ "raw-window-handle",
+ "serde",
+ "serde_json",
+ "tauri-utils",
+ "thiserror",
+ "uuid 1.3.0",
+ "webview2-com",
+ "windows 0.39.0",
+]
+
+[[package]]
+name = "tauri-runtime-wry"
+version = "0.12.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "36b1c5764a41a13176a4599b5b7bd0881bea7d94dfe45e1e755f789b98317e30"
+dependencies = [
+ "cocoa",
+ "gtk",
+ "percent-encoding",
+ "rand 0.8.5",
+ "raw-window-handle",
+ "tauri-runtime",
+ "tauri-utils",
+ "uuid 1.3.0",
+ "webkit2gtk",
+ "webview2-com",
+ "windows 0.39.0",
+ "wry",
+]
+
+[[package]]
+name = "tauri-utils"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5abbc109a6eb45127956ffcc26ef0e875d160150ac16cfa45d26a6b2871686f1"
+dependencies = [
+ "brotli",
+ "ctor",
+ "glob",
+ "heck 0.4.1",
+ "html5ever",
+ "infer",
+ "json-patch",
+ "kuchiki",
+ "memchr",
+ "phf 0.10.1",
+ "proc-macro2",
+ "quote",
+ "semver",
+ "serde",
+ "serde_json",
+ "serde_with",
+ "thiserror",
+ "url",
+ "walkdir",
+ "windows 0.39.0",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "redox_syscall",
+ "rustix",
+ "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "tendril"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0"
+dependencies = [
+ "futf",
+ "mac",
+ "utf-8",
+]
+
+[[package]]
+name = "thin-slice"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
+
+[[package]]
+name = "thiserror"
+version = "1.0.39"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a5ab016db510546d856297882807df8da66a16fb8c4101cb8b30054b0d5b2d9c"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.39"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5420d42e90af0c38c3290abcca25b9b3bdf379fc9f55c528f53a269d9c9a267e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+]
+
+[[package]]
+name = "time"
+version = "0.3.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890"
+dependencies = [
+ "itoa 1.0.6",
+ "serde",
+ "time-core",
+ "time-macros",
+]
+
+[[package]]
+name = "time-core"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
+
+[[package]]
+name = "time-macros"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36"
+dependencies = [
+ "time-core",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "tokio"
+version = "1.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03201d01c3c27a29c8a5cee5b55a93ddae1ccf6f08f65365c2c918f8c1b76f64"
+dependencies = [
+ "autocfg",
+ "bytes",
+ "memchr",
+ "num_cpus",
+ "pin-project-lite",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "toml"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622"
+
+[[package]]
+name = "toml_edit"
+version = "0.19.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc18466501acd8ac6a3f615dd29a3438f8ca6bb3b19537138b3106e575621274"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "tracing"
+version = "0.1.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+dependencies = [
+ "cfg-if",
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a"
+dependencies = [
+ "once_cell",
+ "valuable",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
+dependencies = [
+ "lazy_static",
+ "log",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70"
+dependencies = [
+ "matchers",
+ "nu-ansi-term",
+ "once_cell",
+ "regex",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing",
+ "tracing-core",
+ "tracing-log",
+]
+
+[[package]]
+name = "treediff"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "761e8d5ad7ce14bb82b7e61ccc0ca961005a275a060b9644a2431aa11553c2ff"
+dependencies = [
+ "serde_json",
+]
+
+[[package]]
+name = "typenum"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524b68aca1d05e03fdf03fcdce2c6c94b6daf6d16861ddaa7e4f2b6638a9052c"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+
+[[package]]
+name = "url"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+ "serde",
+]
+
+[[package]]
+name = "utf-8"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
+
+[[package]]
+name = "uuid"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
+
+[[package]]
+name = "uuid"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79"
+dependencies = [
+ "getrandom 0.2.8",
+]
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "version-compare"
+version = "0.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b"
+
+[[package]]
+name = "version-compare"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "walkdir"
+version = "2.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
+dependencies = [
+ "same-file",
+ "winapi",
+ "winapi-util",
+]
+
+[[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "webkit2gtk"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8f859735e4a452aeb28c6c56a852967a8a76c8eb1cc32dbf931ad28a13d6370"
+dependencies = [
+ "bitflags",
+ "cairo-rs",
+ "gdk",
+ "gdk-sys",
+ "gio",
+ "gio-sys",
+ "glib",
+ "glib-sys",
+ "gobject-sys",
+ "gtk",
+ "gtk-sys",
+ "javascriptcore-rs",
+ "libc",
+ "once_cell",
+ "soup2",
+ "webkit2gtk-sys",
+]
+
+[[package]]
+name = "webkit2gtk-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d76ca6ecc47aeba01ec61e480139dda143796abcae6f83bcddf50d6b5b1dcf3"
+dependencies = [
+ "atk-sys",
+ "bitflags",
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gdk-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "gtk-sys",
+ "javascriptcore-rs-sys",
+ "libc",
+ "pango-sys",
+ "pkg-config",
+ "soup2-sys",
+ "system-deps 6.0.3",
+]
+
+[[package]]
+name = "webview2-com"
+version = "0.19.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4a769c9f1a64a8734bde70caafac2b96cada12cd4aefa49196b3a386b8b4178"
+dependencies = [
+ "webview2-com-macros",
+ "webview2-com-sys",
+ "windows 0.39.0",
+ "windows-implement",
+]
+
+[[package]]
+name = "webview2-com-macros"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "webview2-com-sys"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aac48ef20ddf657755fdcda8dfed2a7b4fc7e4581acce6fe9b88c3d64f29dee7"
+dependencies = [
+ "regex",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "windows 0.39.0",
+ "windows-bindgen",
+ "windows-metadata",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a"
+dependencies = [
+ "windows-implement",
+ "windows_aarch64_msvc 0.39.0",
+ "windows_i686_gnu 0.39.0",
+ "windows_i686_msvc 0.39.0",
+ "windows_x86_64_gnu 0.39.0",
+ "windows_x86_64_msvc 0.39.0",
+]
+
+[[package]]
+name = "windows"
+version = "0.44.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-bindgen"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68003dbd0e38abc0fb85b939240f4bce37c43a5981d3df37ccbaaa981b47cb41"
+dependencies = [
+ "windows-metadata",
+ "windows-tokens",
+]
+
+[[package]]
+name = "windows-implement"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba01f98f509cb5dc05f4e5fc95e535f78260f15fea8fe1a8abdd08f774f1cee7"
+dependencies = [
+ "syn",
+ "windows-tokens",
+]
+
+[[package]]
+name = "windows-metadata"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278"
+
+[[package]]
+name = "windows-sys"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc 0.42.2",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.45.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc 0.42.2",
+]
+
+[[package]]
+name = "windows-tokens"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+
+[[package]]
+name = "winnow"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23d020b441f92996c80d94ae9166e8501e59c7bb56121189dc9eab3bd8216966"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winres"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c"
+dependencies = [
+ "toml",
+]
+
+[[package]]
+name = "wry"
+version = "0.23.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c1ad8e2424f554cc5bdebe8aa374ef5b433feff817aebabca0389961fc7ef98"
+dependencies = [
+ "base64 0.13.1",
+ "block",
+ "cocoa",
+ "core-graphics",
+ "crossbeam-channel",
+ "dunce",
+ "gdk",
+ "gio",
+ "glib",
+ "gtk",
+ "html5ever",
+ "http",
+ "kuchiki",
+ "libc",
+ "log",
+ "objc",
+ "objc_id",
+ "once_cell",
+ "serde",
+ "serde_json",
+ "sha2",
+ "soup2",
+ "tao",
+ "thiserror",
+ "url",
+ "webkit2gtk",
+ "webkit2gtk-sys",
+ "webview2-com",
+ "windows 0.39.0",
+ "windows-implement",
+]
+
+[[package]]
+name = "x11"
+version = "2.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e"
+dependencies = [
+ "libc",
+ "pkg-config",
+]
+
+[[package]]
+name = "x11-dl"
+version = "2.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f"
+dependencies = [
+ "libc",
+ "once_cell",
+ "pkg-config",
+]
+
+[[package]]
+name = "xattr"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc"
+dependencies = [
+ "libc",
+]
diff --git a/src-ui/Cargo.toml b/src-ui/Cargo.toml
new file mode 100644
index 0000000..2c97bf3
--- /dev/null
+++ b/src-ui/Cargo.toml
@@ -0,0 +1,30 @@
+[package]
+name = "Rust-Tutorial"
+version = "1.0.0"
+description = "Rust embedded"
+authors = ["Seok Won Choi <ikr@kakao.com>"]
+license = "MIT"
+repository = ""
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[build-dependencies]
+tauri-build = { version = "1.2", features = [] }
+
+[dependencies]
+tauri = { version = "1.2", features = ["shell-open"] }
+serde = { version = "1.0", features = ["derive"] }
+serde_json = "1.0"
+
+[features]
+# this feature is used for production builds or when `devPath` points to the filesystem
+# DO NOT REMOVE!!
+custom-protocol = ["tauri/custom-protocol"]
+
+[profile.release]
+panic = "abort" # Strip expensive panic clean-up logic
+codegen-units = 1 # Compile crates one after another so the compiler can optimize better
+lto = true # Enables link to optimizations
+opt-level = "s" # Optimize for binary size
+strip = true # Remove debug symbols
diff --git a/src-ui/build.rs b/src-ui/build.rs
new file mode 100644
index 0000000..50c721e
--- /dev/null
+++ b/src-ui/build.rs
@@ -0,0 +1,3 @@
+fn main() {
+  tauri_build::build()
+}
diff --git a/src-ui/icons/128x128.png b/src-ui/icons/128x128.png
new file mode 100644
index 0000000000000000000000000000000000000000..6be5e50e9b9ae84d9e2ee433f32ef446495eaf3b
GIT binary patch
literal 3512
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
Q7#J8lUHx3vIVCg!03lqF%m4rY

literal 0
HcmV?d00001

diff --git a/src-ui/icons/128x128@2x.png b/src-ui/icons/128x128@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..e81becee571e96f76aa5667f9324c05e5e7a4479
GIT binary patch
literal 7012
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

literal 0
HcmV?d00001

diff --git a/src-ui/icons/32x32.png b/src-ui/icons/32x32.png
new file mode 100644
index 0000000000000000000000000000000000000000..a437dd51741e9e56e14b5d6024493cb2abfd5259
GIT binary patch
literal 974
zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}oCO|{#S9GG!XV7ZFl&wk
z0|NtNage(c!@6@aFBupZSkfJR9T^xl_H+M9WMyDrPWE(h45?sz8|IjID?nhbVc=EQ
z)f1#8STB``o>=4=qB%j>#Mbcy=c{=P#Y`tSo%|+zVVR-lw28Ci>MDVU^Auc8DXl$l
z`R6vq-?xvkO?x}}z_;&zD&L=<KQq6fUY0|<Y1U7Zcr|<B{#}P%pXsX}Pzx35eed@p
zaBAG_hKvI@R&A0nK6m{P(~H-6k{wwO)>xdY740tn6~i6TvS;h+&-F*`J=Fe7uTz*B
zKL5LMf-L`gyThxPEZ(FBe7NJB^I>ye``l?M$CVZwI+Duoo1!AbxnZu>jh2^nllzY5
znWps}E6%#i*xhHL&U4eRQN=@3=}l%_X>;uK$0t~4tU0&s>rDPNEw>z*Iylap&e$&E
zsOPvms(@i~%hn9%ZJr{Gj{7Qa+uz&saz6VB*CeeU3Ux7xrkQe+J6G)Va15L$udQ(V
z-P9uUzl=h$N)uiw=Rfn_w@TsCimCP=EjK*4{ib$7`Wf*9PptBTCdVW(nWzezrp&TQ
zt9p02lQm_1^{iMwV~JBYtR|mX$0RJcOXzUl^UN6@2g<4yq)zq7th{&syzJL|`9J5}
zuFkpW&R2Uq(__iQ#P8kl6O6KbI$}9q@G`#tY1zJ4=iSd+JMQ1NYE^ykt-tZN#gU|R
z=WU!W4sUrb2^Xcw_hrgNf1X(It9^Cbx<fwKn3&Hm{-dJTQj+>^zv<rhu6YZb=5r*T
za9aJnI^RjQxboV}EpO~*?U|9K#3(aaNqV=#{Njt;M?5{86g&SO_TGB=rU7?rX3@>1
zncEXS$#~t_r7U&xj*-jJ`CIR>m!-_UGXJ{#ALg=8RVPjJ?urXE?quo+_{zEA#q^x!
z4Ef`U5BP;O41Y?Vadc>y&T{b6+_!t1*Rt_jvGb^F+<*PIeCM<!yIu>F8+{6tZF7+9
z(u(+PTQy@sPn=!qp6WL@O5XIT_5ZFZF#674#CAkMfN}E#K|kJbx$eqP&RZgFiBEQZ
zJ74r|S^3UyHgY#k&S7|H`9NP%xB9PhvqVR6^M!v&R%%<?l(S11IR$>&PT2c4G@`@q
za!aq_(pAqKk4@?Dem664)~!#^Z~TobGi6-YA!YnKynoSq>*Y$*Q|Gm=oaDZD|8(y=
zw#oZDo_M%42~QJwZL-Q(PuC$~_up9A<Wqdb2}hL@1$!=bFW<akRYYWi_#&2x*RCJ6
jefapX(USiUkH)9mDqVI%U+NkI0|SGntDnm{r-UW|71zIl

literal 0
HcmV?d00001

diff --git a/src-ui/icons/Square107x107Logo.png b/src-ui/icons/Square107x107Logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..0ca4f27198838968bd60ed7d371bfa23496b7fe5
GIT binary patch
literal 2863
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

literal 0
HcmV?d00001

diff --git a/src-ui/icons/Square142x142Logo.png b/src-ui/icons/Square142x142Logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..b81f820394d1504ff4b4091473a8263542c9edc4
GIT binary patch
literal 3858
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

literal 0
HcmV?d00001

diff --git a/src-ui/icons/Square150x150Logo.png b/src-ui/icons/Square150x150Logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..624c7bfba0498dcebbc8a020fe06f08cfff2384a
GIT binary patch
literal 3966
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
ac8Bn<oAgbMV;LA27(8A5T-G@yGywn}jacRY

literal 0
HcmV?d00001

diff --git a/src-ui/icons/Square284x284Logo.png b/src-ui/icons/Square284x284Logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..c021d2ba76619c08969ab688db3b27f29257aa6f
GIT binary patch
literal 7737
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

literal 0
HcmV?d00001

diff --git a/src-ui/icons/Square30x30Logo.png b/src-ui/icons/Square30x30Logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..621970023096ed9f494ba18ace15421a45cd65fa
GIT binary patch
literal 903
zcmeAS@N?(olHy`uVBq!ia0y~yV2}f04mJh`25W<Lix?OfI14-?iy0WWg+Z8+Vb&Z8
z1_lPk;vjb?hIQv;UNSH+u%tWsIx;Y9?C1WI$jZRLEaU0o7*fIbHq5)|mV>}sx40df
zI{Or+AAGuo=bl9Ps+=0;qNWGJN9-6MvD{EMm~-F>OM-sWWZx&DT8yVAOJ_`6qqOq!
z;`a(FD(!D3g{vl{RsH(<dS)KuhxLpP`5hncIu~DB*Hhs2V5X_&?*BKB_(ZVt{&uii
zIWKA(V<F4B>yH&!{^%y{vflIHd>v=7w9TX^;Ttp!C(rtG(^oCy&~EoX9SJ(d4YD3V
z{62Lv-Q&7uT)y4Nb+5&FcDj$v)^*0Y?_bHt%;NePdF^KS0v@d!u|-pywGL+6ZnNxH
zH%VQe#m<_rHJ9&wgZ^0-f4lpRo)>B#PrH1-ui1B{UhT1~FV{TH`M<$saiX^4)nwOo
z_4Aw}vkR9Ud-$TuxNzk!ZJ*NIUu%P_XV@2ZB$v*UmEM=U(#!6T^_sU1feQ>cCQacE
zZ=2!C-csT0z?Q!)bSr~)Y0idU%~QHh*u}ozz-oD;c1FD6!`m4?9*bp`bH@CdH!D)H
zXTr*eW#WzZezrI;#b)Wus(!x8cY>GE&*dCV3;bU7^v;kt=vADeeatI7h)wCv=A*B}
zl`i{C<8#oz+<wfi!^wGuh>-Wze>2&neJ-9+i)D}34OExmve|e~Txj#H%N}bVTRNAn
z{FPXC@ar8_7U|Bm&yQ!#bi5U`OQz-c#-^#peOFFx7Cqj1>+eh9>HJ?9J>4^#FHGIK
zcgy#GAJo>wD$kkt)mq1O4m-PyvhDFx@p}G8Ube1TwsD@sMSWqF7%kTH>eER}l|FKB
z^FEhs(=&^G;!)jCXRR*fJUU_7v~F3DNm)*BzQttzio%vV^;Z{jeBZJm)pW-iw}6JJ
zac?KLzMaUx-ktVU#!HDO#7=l$g>VJm#`g~r&G=+LSSF<xhRCif-t_xpw)Dy(X%_FM
z*=PAg6n+;4UJ}`n!?xzgnPLTR9$Q^a`87{&tvXSwyD95mJ?mc;F_8`vg%5Jta<6Qr
zsU9_zPf`1lcCJ6m_C||^ntI*+qPOcdPd1;^Y?OX>Z?;C~A$z9Zm-XAaqo#A*{<Lg4
z=hNu!-<A1K+w#5EEc%sMcFNcJx{bd&yL|oLADTh$U;ICDG=EZYYFb#G$_xeu1_n=8
KKbLh*2~7Z?6p?iR

literal 0
HcmV?d00001

diff --git a/src-ui/icons/Square310x310Logo.png b/src-ui/icons/Square310x310Logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..f9bc04839491e66c07b16ab03743c0c53b4109cc
GIT binary patch
literal 8591
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

literal 0
HcmV?d00001

diff --git a/src-ui/icons/Square44x44Logo.png b/src-ui/icons/Square44x44Logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..d5fbfb2ab4e57e8a75620cded43bddc1a15daa99
GIT binary patch
literal 1299
zcmeAS@N?(olHy`uVBq!ia0y~yV9)_!4mJh`2Dz3fMg|53&H|6fVg?3oVGw3ym^DX&
zfq{XsILO_JVcj{ImkbOHEa{HEjtmSN`?>!lvNABRtnhSk45?sz8xcF{mYcx4i4oyi
zQ$uz*F4&Z#8d}+4b7S{YEoOC&YNivM2h<&^n_}lD+!Q`y$2g(=jTOIJWlw8!QPTr0
z_0&C+tnM;bES>14(D-@FeP(-S|MTvvpTC~RxZ}93lE4Sf#=}_??{%$SUwm=P^9{=1
zyds257VtW4VOYpjo^pM|OLOTz54ukDE3kialQ?c4@#R*lg{N%HrtL0w_cig{m}%g;
zm8I>+OuH~e{+1mA{&BW<Z^@J$=z253ZrUW?3#^i!o;sSY*ET2~cxGl9*D%LJ@%5$k
z;sOVzdNn)?(R7Jbx*zx~<lq$lm7LNOtPfeNJNqa__2OpViI<iIHuz`0bG>yZrX}+r
zpKis<o=<F6%{&Y2Z5M1W%gFFslI?Qq>RCetex8f}cQ7pS_5QwT(o~KO>~r>)Cq%wk
z=6g~mu`91TZENQj)*nB9uRGfC$26=uk+-iX^7;4wD@t@dnG%*LH}1dE7Lp;gaAKd|
z{Nkl9nMT@SdG|{A^XEJ?*Z-fPI_ZH^Qpf((b)VUckGQOIS!8Gz?zUytyqO;!uJ>F2
z;of{jmOZnj+sa=byOu7>@J9P^c4~)mgLojjRBSts)tNwD9h<lf2j#Bs_-o@A@l9CD
zTqf0vH(D}0*fsjzcBMaWzpi<r|3^_R#AJKe>1{84K8n6+=xwpw<h?1P>raD-DDxy&
zyM~QwH)B4g82Lr9Z98&I#!P(Q(n+EX%<ngsKYh8_Ytc8oX!k8s5~r;W_HZki%(=m|
z?4{tdkPio5Yn{`1e(~ZlrGu?4pT1^IJ^y*hy+_JEACohp4Ysrdm+mMs-n-;QnUnM4
zmxZax&68MH?@JPsj1l8AKN&Y$NG7&br{cw5mfvn$PHj}<zf{GU>-D4HHitcfl6`^y
zzT(L_mC15CO=evSPDtlf1xX$hTkyzfw%N9s!IypKA3n6gS!Lsq&nm|2N*?X4?_}z}
zH0R&rhg*x?mgrs(d^#yNh}9)zl}c%i=Ec;EV5d;F!|{KnzF;_8oUkd8<Av}`w?+3;
zPtLo@l;yd7`^z6&T3VfMRQ{>Wd2Y0FhTZ+jb*r5hPLj3veXZ(WxSP2p^2X13j%IeJ
zKhN3STj}M+Vg6_DpI7JChe|(Bytz#Mq1xH+O!_Nrbz1Gtr%K=4;J^9Hm0uj%SC8%B
zmFg_}cW|ZGtbN~2x`GyU^l3bg4$3yZ=c!Yh9k8?RuA`vk_RMa#Oe4)%_ryz$IlAQK
z{`^)dcAml*b!gMvCHu@5F>svCH8s1t{`m2~cDC`^zcv`1Gpcvatn*!JS<<d>;hWr_
z%V&fg^Zpz>VzyvUK;q4k`!e!V6_tZR54qT{>fSPA=Z{Y^Momxpw}_v+o}${4=*X92
z(;~O8<d+DawpF*1tjwHU>Z#_rdiHgB{zpGeGU&PEdnIgnnq3Z4i~m;dfL%O1_7%@;
z?7B3(I;EB~Rmc|I4_&RWys5t~`1<rWtsCxW$nSah>YO>BNXajbn3n<zJ?fWC$=IeG
z`O?1Ia4Gv!#V-o-Zg=LrbDB2sr&8<JnW~=RM<rgoQD=!d_wl0f4d$Zze`NkWyW-jq
z6SHb#$V28;0?H<Z55({FevkC{Ru;PTooT?H+TWVmcWvJ-d|<yKMD|mfouLr}0|SGn
LtDnm{r-UW|uN74}

literal 0
HcmV?d00001

diff --git a/src-ui/icons/Square71x71Logo.png b/src-ui/icons/Square71x71Logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..63440d7984936a9caa89275928d8dce97e4d033b
GIT binary patch
literal 2011
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
ZUwoV~fBT%OPYetU44$rjF6*2UngHfcuJ8Z=

literal 0
HcmV?d00001

diff --git a/src-ui/icons/Square89x89Logo.png b/src-ui/icons/Square89x89Logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..f3f705af2f2e044682ac042b37dba6682a0c8a6b
GIT binary patch
literal 2468
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

literal 0
HcmV?d00001

diff --git a/src-ui/icons/StoreLogo.png b/src-ui/icons/StoreLogo.png
new file mode 100644
index 0000000000000000000000000000000000000000..455638826192851ad1ae604d66f2ca352979442c
GIT binary patch
literal 1523
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

literal 0
HcmV?d00001

diff --git a/src-ui/icons/icon.icns b/src-ui/icons/icon.icns
new file mode 100644
index 0000000000000000000000000000000000000000..a2d421562f6ba759bf575dddc0f3805bd1e92f64
GIT binary patch
literal 32947
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

literal 0
HcmV?d00001

diff --git a/src-ui/icons/icon.ico b/src-ui/icons/icon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..8a8f98d9c594ea6e9a4e397baa045736bc2b09fa
GIT binary patch
literal 67646
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

literal 0
HcmV?d00001

diff --git a/src-ui/icons/icon.png b/src-ui/icons/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..e1cd2619e0b5ec089cbba5ec7b03ddf2b1dfceb6
GIT binary patch
literal 14183
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
TRLxmk2NLjf^>bP0l+XkKL@CUO

literal 0
HcmV?d00001

diff --git a/src-ui/rustfmt.toml b/src-ui/rustfmt.toml
new file mode 100644
index 0000000..d962cda
--- /dev/null
+++ b/src-ui/rustfmt.toml
@@ -0,0 +1,13 @@
+max_width = 100
+hard_tabs = false
+tab_spaces = 2
+newline_style = "Auto"
+use_small_heuristics = "Default"
+reorder_imports = true
+reorder_modules = true
+remove_nested_parens = true
+edition = "2021"
+merge_derives = true
+use_try_shorthand = false
+use_field_init_shorthand = false
+force_explicit_abi = true
diff --git a/src-ui/src/main.rs b/src-ui/src/main.rs
new file mode 100644
index 0000000..ad611dd
--- /dev/null
+++ b/src-ui/src/main.rs
@@ -0,0 +1,15 @@
+// Prevents additional console window on Windows in release, DO NOT REMOVE!!
+#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
+
+// Learn more about Tauri commands at https://tauri.app/v1/guides/features/command
+#[tauri::command]
+fn greet(name: &str) -> String {
+  format!("Hello, {}! You've been greeted from Rust Tutorial!", name)
+}
+
+fn main() {
+  tauri::Builder::default()
+    .invoke_handler(tauri::generate_handler![])
+    .run(tauri::generate_context!())
+    .expect("error while running tauri application");
+}
diff --git a/src-ui/tauri.conf.json b/src-ui/tauri.conf.json
new file mode 100644
index 0000000..d23f543
--- /dev/null
+++ b/src-ui/tauri.conf.json
@@ -0,0 +1,52 @@
+{
+  "build": {
+    "beforeDevCommand": "",
+    "beforeBuildCommand": "",
+    "devPath": "../docs",
+    "distDir": "../docs",
+    "withGlobalTauri": true
+  },
+  "package": {
+    "productName": "Rust Tutorial",
+    "version": "1.0.0"
+  },
+  "tauri": {
+    "allowlist": {
+      "all": false,
+      "shell": {
+        "all": false,
+        "open": true
+      }
+    },
+    "bundle": {
+      "active": true,
+      "icon": [
+        "icons/32x32.png",
+        "icons/128x128.png",
+        "icons/128x128@2x.png",
+        "icons/icon.icns",
+        "icons/icon.ico"
+      ],
+      "identifier": "dev.seok",
+      "targets": "all"
+    },
+    "security": {
+      "csp": null
+    },
+    "updater": {
+      "active": false
+    },
+    "windows": [
+      {
+        "fullscreen": true,
+        "resizable": true,
+        "maximized": true,
+        "transparent": false,
+        "title": "Rust Tutorial",
+        "width": 1680,
+        "height": 900,
+        "decorations": true
+      }
+    ]
+  }
+}
\ No newline at end of file
-- 
GitLab