From 9649795e0554f0a6d595678b23d9eb81a298b0b5 Mon Sep 17 00:00:00 2001 From: icter99 <1622324630@qq.com> Date: Sun, 22 Dec 2024 00:15:12 +0800 Subject: [PATCH] Initial commit --- .editorconfig | 6 + .gitignore | 30 + .vscode/extensions.json | 7 + README.md | 38 + app/__init__.py | 0 app/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 145 bytes app/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 130 bytes app/__pycache__/config.cpython-312.pyc | Bin 0 -> 781 bytes app/__pycache__/config.cpython-38.pyc | Bin 0 -> 679 bytes app/__pycache__/database.cpython-312.pyc | Bin 0 -> 1257 bytes app/__pycache__/database.cpython-38.pyc | Bin 0 -> 946 bytes app/__pycache__/main.cpython-312.pyc | Bin 0 -> 990 bytes app/__pycache__/main.cpython-38.pyc | Bin 0 -> 723 bytes app/config.py | 11 + app/database.py | 22 + app/main.py | 23 + app/routers/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 153 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 138 bytes app/routers/__pycache__/user.cpython-312.pyc | Bin 0 -> 3710 bytes app/routers/__pycache__/user.cpython-38.pyc | Bin 0 -> 2823 bytes app/routers/user.py | 71 + app/schemas/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 153 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 138 bytes app/schemas/__pycache__/user.cpython-312.pyc | Bin 0 -> 919 bytes app/schemas/__pycache__/user.cpython-38.pyc | Bin 0 -> 799 bytes app/schemas/user.py | 24 + app/services/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 154 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 139 bytes .../__pycache__/user_service.cpython-312.pyc | Bin 0 -> 8897 bytes .../__pycache__/user_service.cpython-38.pyc | Bin 0 -> 6309 bytes app/services/user_service.py | 216 + eslint.config.js | 21 + index.html | 13 + jsconfig.json | 8 + package-lock.json | 5337 +++++++++++++++++ package.json | 31 + public/favicon.ico | Bin 0 -> 4286 bytes requirements.txt | 5 + src/App.vue | 71 + src/assets/base.css | 86 + src/assets/images/logo.png | Bin 0 -> 114408 bytes src/assets/images/none.png | Bin 0 -> 8370 bytes src/assets/logo.svg | 1 + src/assets/main.css | 35 + src/main.js | 14 + src/router/index.js | 14 + src/stores/counter.js | 12 + src/styles/common.scss | 104 + src/styles/element/index.scss | 25 + src/styles/var.scss | 5 + src/utils/http.js | 20 + src/views/Layout/components/LayoutGraph.vue | 826 +++ src/views/Layout/components/LayoutHeader.vue | 136 + src/views/Layout/components/LayoutMeum.vue | 122 + src/views/Layout/components/eventBus.js | 4 + src/views/Layout/index.vue | 29 + vite.config.js | 42 + 60 files changed, 7409 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 .vscode/extensions.json create mode 100644 app/__init__.py create mode 100644 app/__pycache__/__init__.cpython-312.pyc create mode 100644 app/__pycache__/__init__.cpython-38.pyc create mode 100644 app/__pycache__/config.cpython-312.pyc create mode 100644 app/__pycache__/config.cpython-38.pyc create mode 100644 app/__pycache__/database.cpython-312.pyc create mode 100644 app/__pycache__/database.cpython-38.pyc create mode 100644 app/__pycache__/main.cpython-312.pyc create mode 100644 app/__pycache__/main.cpython-38.pyc create mode 100644 app/config.py create mode 100644 app/database.py create mode 100644 app/main.py create mode 100644 app/routers/__init__.py create mode 100644 app/routers/__pycache__/__init__.cpython-312.pyc create mode 100644 app/routers/__pycache__/__init__.cpython-38.pyc create mode 100644 app/routers/__pycache__/user.cpython-312.pyc create mode 100644 app/routers/__pycache__/user.cpython-38.pyc create mode 100644 app/routers/user.py create mode 100644 app/schemas/__init__.py create mode 100644 app/schemas/__pycache__/__init__.cpython-312.pyc create mode 100644 app/schemas/__pycache__/__init__.cpython-38.pyc create mode 100644 app/schemas/__pycache__/user.cpython-312.pyc create mode 100644 app/schemas/__pycache__/user.cpython-38.pyc create mode 100644 app/schemas/user.py create mode 100644 app/services/__init__.py create mode 100644 app/services/__pycache__/__init__.cpython-312.pyc create mode 100644 app/services/__pycache__/__init__.cpython-38.pyc create mode 100644 app/services/__pycache__/user_service.cpython-312.pyc create mode 100644 app/services/__pycache__/user_service.cpython-38.pyc create mode 100644 app/services/user_service.py create mode 100644 eslint.config.js create mode 100644 index.html create mode 100644 jsconfig.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/favicon.ico create mode 100644 requirements.txt create mode 100644 src/App.vue create mode 100644 src/assets/base.css create mode 100644 src/assets/images/logo.png create mode 100644 src/assets/images/none.png create mode 100644 src/assets/logo.svg create mode 100644 src/assets/main.css create mode 100644 src/main.js create mode 100644 src/router/index.js create mode 100644 src/stores/counter.js create mode 100644 src/styles/common.scss create mode 100644 src/styles/element/index.scss create mode 100644 src/styles/var.scss create mode 100644 src/utils/http.js create mode 100644 src/views/Layout/components/LayoutGraph.vue create mode 100644 src/views/Layout/components/LayoutHeader.vue create mode 100644 src/views/Layout/components/LayoutMeum.vue create mode 100644 src/views/Layout/components/eventBus.js create mode 100644 src/views/Layout/index.vue create mode 100644 vite.config.js diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..ecea360 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,6 @@ +[*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,vue}] +charset = utf-8 +indent_size = 2 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8ee54e8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,30 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +*.tsbuildinfo diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..5efa012 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + "recommendations": [ + "Vue.volar", + "dbaeumer.vscode-eslint", + "EditorConfig.EditorConfig" + ] +} diff --git a/README.md b/README.md index 56fffad..1a88198 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,40 @@ + # SoftwareEngineeringKG + +# SK_front + +This template should help get you started developing with Vue 3 in Vite. + +## Recommended IDE Setup + +[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur). + +## Customize configuration + +See [Vite Configuration Reference](https://vite.dev/config/). + +## Project Setup + +```sh +npm install +``` + +### Compile and Hot-Reload for Development + +```sh +npm run dev +``` + +### Compile and Minify for Production + +```sh +npm run build +``` + +### Lint with [ESLint](https://eslint.org/) + +```sh +npm run lint +``` + diff --git a/app/__init__.py b/app/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/__pycache__/__init__.cpython-312.pyc b/app/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..48ffa41771b30f3c77fda693de8fdca1caf6d722 GIT binary patch literal 145 zcmX@j%ge<81QwC5=^*+sh(HIQS%4zb87dhx8U0o=6fpsLpFwJV8Ms=-q-T~S=j7+5 z#sp`SdM9Q&CB}QZ#{_%FrxoSrmBb_#6vV{GXXa&=#K-FuRQ}?y$<0qG%}KQ@Vg(w& S2*kx8#z$sGM#ds$APWF_W+6@h literal 0 HcmV?d00001 diff --git a/app/__pycache__/__init__.cpython-38.pyc b/app/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..767f2bdd1ac08cd10647fb0e30614df9b3fdb45b GIT binary patch literal 130 zcmWIL<>g`k0*gr3bP)X*L?8o3AjbiSi&=m~3PUi1CZpd?B>;?5r~zCB;L8 z3KcKC^>2{;DIRkP1D^EaO-(__$(h-W(t-Wn_szU{@6FryrC7`Zv6|ms3>XC9n-r^M zreskQ*q2ST8MQ{ZVAz|%3D>WQDDX#i`}^pc~G4cq)7l?{2J=`!5GaqNc! z)=OQKF;cO3Cdf6wz=0lcwC5t3qhkY`o^~uwJl)ACWhiAjS*0>ksbaFC7;CB}(Hv`> zv-8|qWjx=0NrJd>a1fB58=MgqH|mE+b)E|`sl7rY>T^?3o=M_-^2eI3FH5T;swX7u`-5|%io-W;+u#;Lp*zF~@jOC9 z;*A2y3kba)xj}kj318Ir1N<2*WSV95aicr%<6b~Q-0hr=TCU%8QR}qZX`wzPVcd12 zsM}Mis?nHdlB~2KE?eSbSpgSdzPa)+n({7dUN>E$E3Bb?>$VHE*C dbqL{CuyYx15VgIV#91Y6Iq(xe$|V(0nktG=)go~~>Lu#Mim;a0Nf&MG#deC4Yxpz$ zOTNN|zrcx^-L#E_SMzq}`Qtr%Zu|X=z_|YXW$7s)zpywQDHN9w{xyIiik4(W1*PN@ zQA{O2iAprxC4y+whOKh%e^{sfGY;?67(Y2Mj8%c9QJtzz^OZe-_4-wkaJxG?6||m#>58~ zkEP6wu^|tIHC{^B#`z8c?tM1VWPRkYcNiW|&1erlR5?6DL65A}MR7ytkO literal 0 HcmV?d00001 diff --git a/app/__pycache__/database.cpython-312.pyc b/app/__pycache__/database.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..76c4c61c9c72803ae59c78446f4cf359a8e2d43f GIT binary patch literal 1257 zcmbVL&1(};5Pxq!(oNDN)!Jy=sHLWd?V$*MAW}rs8ljL&Z%bfVvzv57vK!xSl(aci z>A@bP;KBS0miFM$|G`UxO3H#D=*62hg3yyQ`_Y!*$zhrIo0&JWznPu=kV+*8$eY(o z)h0*CH#8yiHTg;K;^oonz4PYFi~MCUh&F6=@D6h+{OAsBqkuO0Xz z4c^fRpPb-LpI8yv6L&smq1Z%CcHvw&j+zX0xP+ z^I2%NJxNtf%XC$B?ZQx-3sD4Hbf!UVknh{>X4jxa0rW|93GF%-8-!#K;GuSw& zwTWT!{%uTj&Vt$?U!~FQ{GihgM??%z;xc@rVT6;1~@TI47O=@!F{ zJE3_bEe5UKVY3jx@9!*v`pHvDzmUuD{1K9L?iWFoBk79=(pX=b>Pb@v@iYB+t{2Z8 Uq$c{Qd@q&%JtCyJ=Lx_1U#x}&-T(jq literal 0 HcmV?d00001 diff --git a/app/__pycache__/database.cpython-38.pyc b/app/__pycache__/database.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3d6c7bcb405f786bc65244f990ffafe95013dafa GIT binary patch literal 946 zcmZ`%&x_MQ6rPz((zM%lMGzLe3X)4toA!ep+N}9x(RM{mr_qrDk zp7q#&X|A697X-ogl15^|3GeaVF3d|M=j%2Cw^R!1LZ$>B2>YGM1!9YgGAI#ZcJQmuH!0x zA6pFu8SAjt0K>J zQl&+n@Loi;QLaGj1*nQ_X-#WZdn*Y1z-l6a1Ol-+WX9utwTYO)JY1km`ca#RJ8pHh za^Bvgj_<8DE-YhfKNUtDh&co7ujkhDe`4fD7{>~l`B)^)iN&2r8<^AD{oyW zWtyjzl-O#EJcQj{oRl!@KnX>_@t}XN$2+jvS{Q+O1eYhg?rg0qc?3*){7+B$ zd$@TNV8`-!r=@fwDR+h1XK0V5{IHL+_K(4MO=0Hozsxus)0Ew9g2fJnG~^*Sco%sl zL=d*bU~ThgDEu6Es#yauf)UP=B44Fz;~@xNiD83~uo7Z)G+{Bsw6(kSaL0e}Jn!}6 ZZ&ogR)mC(g!?oDUF&(q%lu?e~?>|r2&eH$@ literal 0 HcmV?d00001 diff --git a/app/__pycache__/main.cpython-312.pyc b/app/__pycache__/main.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9c30c9fde8bcc2e1ac84c29664a295408fa99071 GIT binary patch literal 990 zcmZuvO=uHA6n?Y2*-e{d((-h56ZhJlYS&DF{$ z3E;ON{h{^1NgM&}0S1h0C<-gt$dQT?5?HonM=2^@tk@ApEvg74AX2LrUet(I8|^0@ zSfbWa1J*|^ewG*rc+^;k&#y$mkqW|UcjahbYemBU-H6Qjy&=ZYeoj2}8qQS3NdgbQ zyaqrsTrJcl{u3F)ah$;FzTQ&$XRM=jluiB-bUBNd_Sp1;2hX2ys6Tx6qVUwh*d}Wx zCETMld_ozzzLHf~!nAE~&G4vIv0R^xhO|rxCT?Jvw%_03kf7?}Gg>7kCe%Mgx60=Q z@?L?==ZR<^?+wC|g$j_Bmzm}e-#06ynd)hqTC;-c)H3nrYVU#SB8pEqoqjZ5s#rnU z_FPgbR2zBIS~QLPQmK$PR;lL(C9_^HIi}_2>g#NXawP`!ynu>krupf_NdFWRbE=NZc%Yhmg%vab5`LT-{w=%85ZLwY=azn+DfXO9^bv%9={Y? zK{_!&>A#>NsWSpnWIMB&*-39r97_n@Jdr`tI|3cav7O>KIn!2>8%x{y&HV20yV!>d QA6I@Tiyax1i(S$G06;MI6aWAK literal 0 HcmV?d00001 diff --git a/app/__pycache__/main.cpython-38.pyc b/app/__pycache__/main.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e76950260446243e055a1aebe256d20dbb062940 GIT binary patch literal 723 zcmYjN&2G~`5Z<*N+xc_(IdCKrr*H@qAt6-=6%`>NL_h>CRwQecnIukaueECvHP`mQ zrSH%lc@ECJz+O4=3gyCV5|Ykp{%805cD{DIEk^QdHJ$x*82fFL+Y(T6Osc<=0R}u{ zvGq>Ib0>DVjor-6z1UmFUe?I{*yjwLa~1~}T!rW_n%A5v!J>s8G-e$9wY5=j*|43f zHiXw4n$Wsn=REFU7uu(exzw?LKuwkE@;H}Wr>rd|}j7~m& z9(_mwGF%FURPkz!%J9cu`kv{EER)Mbs&tkX+T7iw6NP|9m5NONpUAPAOW37z6o5+K z@Fx?Cd0S{-?1WT@WPpQ{T5j&p1UYIgX1KbyW!GD#)x0-E`F!z%sSb_r&CR1XN8|F0 zK#TE20**)Tlc|zLH5O$#&P7@b$}`hc#3NBsR`)HUg=UV5$eJ)o>{ODhLhFy{+Nyc@ z?8V?Iox}9_AtO@8n@e38uav4XzQRlj=pUG%{+3RpDoik?J&H0__GR;6n+@{aItMhS zm210gLKrAnSF{)9*@{aQ6Q#u@s{x6nZ4t`GM*<+(KV;k)Ry*c}$T3NbtLkFEl12q0aCXr%d$@H9ac8UEUq1|a%L(~Euw%f} literal 0 HcmV?d00001 diff --git a/app/config.py b/app/config.py new file mode 100644 index 0000000..fe2c9cf --- /dev/null +++ b/app/config.py @@ -0,0 +1,11 @@ +from pydantic_settings import BaseSettings + +class Settings(BaseSettings): + neo4j_uri: str = "bolt://localhost:7687" # 替换为你的 Neo4j 地址 + neo4j_user: str = "neo4j" # 替换为你的用户名 + neo4j_password: str = "12345678" # 替换为你的密码 + + class Config: + env_file = ".env" + +settings = Settings() diff --git a/app/database.py b/app/database.py new file mode 100644 index 0000000..d1e57d5 --- /dev/null +++ b/app/database.py @@ -0,0 +1,22 @@ +from neo4j import GraphDatabase +from app.config import settings + +class Neo4jConnection: + def __init__(self, uri, user, password): + # 初始化连接,只负责连接 + self.driver = GraphDatabase.driver(uri, auth=(user, password)) + + def close(self): + # 关闭连接 + self.driver.close() + + def get_session(self): + # 提供 session 对象,供外部查询使用 + return self.driver.session() + +# 初始化全局 Neo4j 连接 +neo4j_conn = Neo4jConnection( + uri=settings.neo4j_uri, + user=settings.neo4j_user, + password=settings.neo4j_password, +) diff --git a/app/main.py b/app/main.py new file mode 100644 index 0000000..107ebea --- /dev/null +++ b/app/main.py @@ -0,0 +1,23 @@ +import uvicorn +from fastapi import FastAPI +from fastapi.middleware.cors import CORSMiddleware +from app.routers import user + + +app = FastAPI() + +# 注册用户路由 +app.include_router(user.router) +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], # 允许所有来源,可以设置特定域名,如 ["http://localhost:3000"] + allow_credentials=True, # 支持发送 cookies + allow_methods=["*"], # 允许所有方法,例如 ["GET", "POST"] + allow_headers=["*"], # 允许所有请求头 +) + +@app.get("/") +def read_root(): + return {"message": "FastAPI with Neo4j"} +if __name__=='__main__': + uvicorn.run('main:app',host='127.0.0.1',port=8000,reload=True) \ No newline at end of file diff --git a/app/routers/__init__.py b/app/routers/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/routers/__pycache__/__init__.cpython-312.pyc b/app/routers/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..47c3db9cae1d54ea11a9493e752a96a353296fa1 GIT binary patch literal 153 zcmX@j%ge<81T&&t(?RrO5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!vT(JENzW`v&dJY9 zjS0>u^-j!mN{sh*j|ujUPbg`kf*H}S=^*+sh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o2DX#VV$tvLquv zFD5xZB{e44J3g%_Kd&Svv7jKPD8IBMwWv5IK0Y%qvm`!Vub}c4hfQvNN@-529mt^1 HK+FIDdDb6^ literal 0 HcmV?d00001 diff --git a/app/routers/__pycache__/user.cpython-312.pyc b/app/routers/__pycache__/user.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cc5fd9db6a5f847254946be65a912788c3718768 GIT binary patch literal 3710 zcma)8U2Igx6`r|wcfEgJJNEhq9N-cY(nZEjQb=6~MKUfS$b=f(xM8uhy54(jZ?b>P zy&JG&D#wAwru+%fm;~AaZG@=_xPrDekW@VPglF&Ykm}`8o5QGxLwaLOX)8^Ky63s}6+zNq;iMoE9FR#R!ce2}wAJLfDHjmAN1n z;=MeRd80pM@|xJcDQFH^yp~Xbw}AbdgVvDEYYW-E_K?Ht2sypZP@%UFBM!+}vPcCz z_^NfBGv@QUWY_y^GK*MjC7WDu)t*5~4%yPpNzTKj@ifF+40hFv_>3eK%Dh~#0)BI> zU58QDuH-p(Ma$R~%cU^u3pum8pJQFJjCHA82G;Hz>+)mx%O?hYK(O{&y0&wfvuvi zd3$GDv#*;(!fK}&jdl`tWJ+gDkx6Z|Pj`!w^o%cv8%8XoLl;3ch@RMyv-(2)w4+8d z)jWnS)bGgpL8EU5-8bL62Jd)?)s&~$YA39h_T`PecAwc z1(7mnNGVi$c@U`f%!(C4eM^_E&~+P2UNh|wG?T!L`-|(AvIOtXJ0%m?v4y_}!YCSm zkrq!%!V-6t&t!uktWqQ^i)VNU58yl-lVr}d8Njf0OKcR(*w!I{gyi`3MhNwuykg&f& zSTcg4C9)bL;RYdoY-;|VdMeEneZR`SZN zE1d37R8fs7K0lCNw@9)o27>cvsO@TMd;U*}k#FL|6U$BqS%PMILN5Z4X`<8%AdF%` zRZ%E;1i?7y$|dLJlfzOp5(ukgEudb6PuUFBAbR9N&caz&)flgB+CAfH)vT?vu2pBn zX_qj#{aZ&#TGc+|+M`+b+;@}=?lLG*nZse0AnHD1%^}^)+B|v`z+8+TlORxfNcaO- zu3`p>``~A=qg=Z1lIf~>kuEm$e-Q?*rd%sZm};a_VzROhk*Y&n4k>w+u8NfbZk(n8 zD7hm@)_%u2e8K$O96x(cJkU_{Mcv7k>M=+lIN}^E_@pQ^HB2EWrK7N zZl4fZBM}uc(nPKnC}e~zBq-o-{PeM$s7;fRxv)XVHG6nx_%&hUTgH&szH=; zA#36A{-M58+s-zg-jQawcgD3(v+hfoEaoko_5y{+rBNToGn>1)}+<%nJMYe zoE`UzDm82653`Q41%v@fBj;w*B);+XjO$I!`sRO9Jaj)*Xg2-4YBTzat#JkaO?ji6 zzw0)G*zd0UD1B2NT8tpQAl;W2HT0VL1ir_=gQ^)}h#ZK8G*b~oQHHfFc@{552~D^I z=p6cOUfNwIB3460WRtN3DR;S;SUQem$&ZV#c!-UH*iBd@BbSkl(^>M=@#N)+xf6ej zpZsj@`j^kA?lY=D-the*a3wO`%&>{k?&3 z&!Sm_K$+|WKQKD$w(L8OtcOk@@&>AVg;qa;Dxbua`R^_uae8jD5wHyuFF`ejexMY# znD^mXw`c5?Y4__nG;P?cc|~n+msaneDUmd%l;x|N@)c}Ys(+(pW_P=`r(=5eFSM5T zv`u?wTwcxUW#rw5|Etg#AHt1=`0(m#bcqUour=EGt1BAK{9Usd#JhGLdUts$^@45@ zZnS8?c)wcIz9=|_m|z6M3&rqqs#W~Ga!6Ea>C1^&sE#IIeFf9W_h0Obql;X zV?p^X@&+hqNGWAdL-1n!9a{Ars`wt&e2<#{&0+l0e<7$IS&+T-zN7rU-97x`6Ekn; z1}!N&;;f%meOxu%scmQ+teVDKQ=AEJ)T-+j5VVhZ#5G~om2y((%8yqLzdN>0t9$$2 zhV6qZr|~UL7#yD83rOE2&X2pWpt1$Yosm0A4y z302$DcJC+c6u&3M72z#or3(leithkCh$$h9e`#WqR{!&RKW?G;-6_tA_u;Xo1w>nF M(TX3jKIXRn0pKWR@&Et; literal 0 HcmV?d00001 diff --git a/app/routers/__pycache__/user.cpython-38.pyc b/app/routers/__pycache__/user.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5762d61daf8a090457682909c3e42f7a116bbc4e GIT binary patch literal 2823 zcmZ`*|8EpU6yMqVe!aFwzt9#6tcu2qwM7&Bp)o{75{*hoi=vw*m+kGeJ=ncHX7&g@ zu7(clH?w=~-4*w8Z)fH+Z|1#u zpZ8`zuB{CV@O*TCVDM0lApF5P<&PISZ^57b140#4qzO8b5n^po6LpX5;cbsIu6t!K z?|U_$?w9>~Ko0P}PYdcHIi!c>uwEnA=n*-h*UGg>z)1D0fkC7Or$xCA*PX6cLpY#@ zr$y{nYvzy|QEM-G$B-NaY?oSxJvh)NFkG!yqn89g8aT3R8^Mig186p?OLrNMZ_Fzq6Lq`c#Ol-AO4fkN0Hc}MFd{#?>Pl+cS z#W-;_t;RuY#s`U#9@-kCRz1ZENeq={Q)?faRnnnx(}-*M9Mp zfkff;_bcyq_oau;AtTk701NthKZp+yBW3m}>2x3A;h}vQib-dB*lJQ#b%)=zunc9k z2|m&QGF!9dA?-@A@$!c`!kzF#!xY8@?!xoX;U?z4ySK4;H$QnXKR4+(QfWVPof}>z zcEOmnTLS{^u#GkWRx+*;+SzDVRjeTh=xoJVGhbM~ax*)ikrQatgq&4H)iW)QA``K* zA3-@pUxsn7>T||(EFS*M45)BtfZ$T$;bLKQd2{Vn{`PWydLe&puJHIS_*A^HVE;Ii ze{iSp=(6Lq>+aRd_V~|**(c0z9!b7bcUmEeE}iX`s#b7Ng3Sy`bxZcta&debqF#P> z_QcG_od5Z|c>rYk+^DFbBRYOh1%+NTagymPUsU)@H4W_%F z>CXL-pZwLHSbFAmkj3ouNC*V9Sp=*A&^)7=v^r|7Rl$hkl$th@DYG54Xas~1@S+F` zA|?qlJlk4EFP@cM7x-%gBI)C;ifDR3ht*~tO#+P^MDh$o6yD+)FKLGedRPouWV8Fr zV*3UlP*WWwhfV=iy@Dy82@?$oBO(&AO-$GHP&vNUxU$JGRG88tG)BL+b48?2ryK z`~)%jHLP#0O;#~&aoJwE;aClJJ)#-ITgsQ z4A-U$_m?)V{9<3dxv_X}XYFyAwYfI6{`8CdmFvZCzLzwmA8QiSh!R~S2)vZS=goNU zJJL=nx>eI^ zX#ksvp=4@sTdiASM1jvTfwRR5ZGBsi1270Yd4XXP6VEZhZbnD&yQQ`AYXCUn?%oaa zXdMV4;83FhacZy|`FO0=3JfSvNYhE@v&L@@r@=15DiSwDj>09|NfSd@S7;}@WC_m} zb~Vav9K+;XGJzd14ii| Root & Subject, 2 -> Root, Subject, Topic, ..., 5 -> Problem) + :return: 对应层级的节点和关系 + """ + if level < 0 or level > 5: + raise HTTPException(status_code=400, detail="层级参数必须在 0 到 5 之间") + + try: + relations = get_relations_to_level_simple(level) + if not relations: + raise HTTPException(status_code=404, detail="未找到相关节点关系") + return relations + except ValueError as e: + raise HTTPException(status_code=400, detail=str(e)) +@router.get("/{chapter}/relations", response_model=List[ChapterRelationResponse]) +async def get_relations_by_chapter(chapter: str): + """ + 根据章节名称获取该章节及其相关关系,但排除 label 为 Subject 的 next_SB 关系 + :param chapter_name: 章节名称 + :return: 章节关系列表 + """ + try: + relations = get_chapter_relations(chapter) + if not relations: + raise HTTPException(status_code=404, detail=f"No relations found for chapter {chapter}") + return relations + except Exception as e: + raise HTTPException(status_code=500, detail=f"Error fetching relations: {str(e)}") \ No newline at end of file diff --git a/app/schemas/__init__.py b/app/schemas/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/schemas/__pycache__/__init__.cpython-312.pyc b/app/schemas/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c89635a6fdcdd44dfb481a2440658fe72b8b9305 GIT binary patch literal 153 zcmX@j%ge<81aqQX(?RrO5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!vT(JENzW`v&dJY9 zjS0>u^-j!mN{sh*j|ujUPbg`kf;myH=^*+sh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o2DX#VV$tvLquv zFD5xZB{e44J3g%_Kd&Svv7jKPI5{IVH?cS-K0Y%qvm`!Vub}c4hfQvNN@-529mt^1 HK+FIDbj2TB literal 0 HcmV?d00001 diff --git a/app/schemas/__pycache__/user.cpython-312.pyc b/app/schemas/__pycache__/user.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3f00e29f836f6b2def4ca9c63bb7b5e0b3529eec GIT binary patch literal 919 zcmZuvJ#P~+7`Ai14bfEDNteQ9zXBv_v;?}bGcjuYHeSV;oBSlKeVx2W=7_( z6*&hkaG?(Z=s>7>&d&vgV+6=Sf$5kK<3O^ZXu9Hu^rt;?h@)jlq+xn?P zY$#Xu2&bLMrM_)Q^xPW=i4Hw3r1dHmUKA34kQPfZs|@Cklzk2;aG(pE+#5g*id?v> zya~(QGDEWovQ638ACXv4c0_%mOYbvE1eIkj2orda9?Df3y0?bKve>T5w=fP#Krxm@ zjDyG>`_sP zZ3QRbs@6Q^XZ94`pEb9pXzQv{{n)v-K(%q&J6oBe)~vqy6>X+fbb+pINh_YXBoy9& z>BlDXViJ4dFzuPlq3C%#j5)Rs*08}(D(AOHXW literal 0 HcmV?d00001 diff --git a/app/schemas/__pycache__/user.cpython-38.pyc b/app/schemas/__pycache__/user.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..40196ff8cfa7e1d5e9c7478a89c771d0e6e7cbb9 GIT binary patch literal 799 zcmZ`%%Wl*#6txp4annrO1qks2pb-)ufJRkCM`8gCQmbyPNXEpb6Dbd4dls{XpXo1o z%ZguM#l6X(76gube9wLOI>)|QEJ_07`JKA`m=N+E$-}{bT)^~e08KRQNKXZ&XeV9L zry}i{V0|VsO5PBiYW9t2X6V;cH&D-|98_H}JK`2_&$mc=8;4LUYir+ZO|N{t^TxfjdzV8Q zPLEJh4&UVazar<5_@^RIiOD8aa#&Fn1}mt7YE3Z)HpVhgDhH*C_~b98u8gC6CXCta5^pN`SC7b7^R=E+ NY=oLu^btENegW~vwlx3% literal 0 HcmV?d00001 diff --git a/app/schemas/user.py b/app/schemas/user.py new file mode 100644 index 0000000..ca77104 --- /dev/null +++ b/app/schemas/user.py @@ -0,0 +1,24 @@ +from pydantic import BaseModel +from typing import Dict, List, Optional + + +# 定义关系创建模型 +class ChapterRelationCreate(BaseModel): + start_chapter: str # 起始章节的名称 + end_chapter: str # 终止章节的名称 + relation: str # 关系类型(如 "FOLLOWS", "RELATED_TO" 等) + + +# 定义关系查询响应模型 +class ChapterRelationResponse(BaseModel): + # start_id: str + start_labels: List[str] + start_properties: Dict + + relation: str + # relation_properties: Dict + # + # end_id: str + end_labels: List[str] + end_properties: Dict + diff --git a/app/services/__init__.py b/app/services/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/services/__pycache__/__init__.cpython-312.pyc b/app/services/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0ecdd6a2da8b2dc73c6712ba47637fe12599629d GIT binary patch literal 154 zcmX@j%ge<81bI=e=^*+sh(HIQS%4zb87dhx8U0o=6fpsLpFwJVS-M)qq-T~S=j7+5 z#sp`SdM9Q&CB}QZ#{_%FrxoSrmBb_#6vPy#7L{ctrxwS=$7kkcmc+;F6;%G>u*uC& bDa}c>D`Ewj#0bR2AjU^#Mn=XWW*`dyBkd(l literal 0 HcmV?d00001 diff --git a/app/services/__pycache__/__init__.cpython-38.pyc b/app/services/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a40beb820eee6e9d18ea567198b30c5fed70f61d GIT binary patch literal 139 zcmWIL<>g`kg1ji#bP)X*L?8o3AjbiSi&=m~3PUi1CZpd2KczG$)edCR IXCP((0E5mSuK)l5 literal 0 HcmV?d00001 diff --git a/app/services/__pycache__/user_service.cpython-312.pyc b/app/services/__pycache__/user_service.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9eec0d26bd14e02531a17cff3bc84a4f47d0ed64 GIT binary patch literal 8897 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 literal 0 HcmV?d00001 diff --git a/app/services/__pycache__/user_service.cpython-38.pyc b/app/services/__pycache__/user_service.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f17296f8025d96a1694707d8147690cb8e75ddd8 GIT binary patch literal 6309 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 Qq*hnU8c*Ab_7yMx2bVM?EdT%j literal 0 HcmV?d00001 diff --git a/app/services/user_service.py b/app/services/user_service.py new file mode 100644 index 0000000..982897b --- /dev/null +++ b/app/services/user_service.py @@ -0,0 +1,216 @@ +import logging +from typing import List + +from app.database import neo4j_conn +from app.schemas.user import ChapterRelationCreate, ChapterRelationResponse + + +def create_chapter_relation(relation_data: ChapterRelationCreate): + """ + 创建章节关系 + :param relation_data: 包含起始章节、结束章节和关系类型 + :return: 创建的关系数据 + """ + query = """ + MERGE (start:Chapter {name: $start_chapter}) + MERGE (end:Chapter {name: $end_chapter}) + CREATE (start)-[r:%s]->(end) + RETURN start.name AS start_chapter, TYPE(r) AS relation, end.name AS end_chapter + """ % relation_data.relation.upper() # 使用动态关系类型 + + # 获取 session 进行查询 + with neo4j_conn.get_session() as session: + result = session.run(query, parameters={ + "start_chapter": relation_data.start_chapter, + "end_chapter": relation_data.end_chapter, + }) + record = result.single() + return { + "start_chapter": record["start_chapter"], + "relation": record["relation"], + "end_chapter": record["end_chapter"], + } + + + +def get_graph_relations(): + """ + 查询知识图谱中的所有节点及关系的详细信息 + :return: 列表,每一项为 ChapterRelationResponse 对象 + """ + query = """ + MATCH (start)-[r]->(end) + RETURN + properties(start) AS start_properties, + labels(start) AS start_labels, + TYPE(r) AS relation, + properties(end) AS end_properties, + labels(end) AS end_labels + """ + with neo4j_conn.get_session() as session: + result = session.run(query) + records = result.data() + + responses = [] + for record in records: + response = ChapterRelationResponse( + # start_id=record["start_id"], + start_labels=record["start_labels"], + start_properties=record["start_properties"], + relation=record["relation"], + # relation_properties=record["relation_properties"], + # + # end_id=record["end_id"], + end_labels=record["end_labels"], + end_properties=record["end_properties"] + ) + responses.append(response) + + return responses + + +def search_chapters(search_term: str) -> List[ChapterRelationResponse]: + """ + 根据搜索关键字模糊查询章节及其相关章节 + :param search_term: 搜索关键字 + :return: 列表,每一项为 ChapterRelationResponse 对象 + """ + # 使用参数化查询以防止Cypher注入 + query = """ + MATCH (start)-[r]->(end) + WHERE toLower(start.name) CONTAINS toLower($search_term) + or toLower(end.name) CONTAINS toLower($search_term) + RETURN + properties(start) AS start_properties, + labels(start) AS start_labels, + TYPE(r) AS relation, + properties(end) AS end_properties, + labels(end) AS end_labels + """ + try: + with neo4j_conn.get_session() as session: + result = session.run(query, parameters={"search_term": search_term}) + records = result.data() + + responses = [ + ChapterRelationResponse( + start_labels=record.get("start_labels", []), + start_properties=record.get("start_properties", {}), + relation=record.get("relation", ""), + end_labels=record.get("end_labels", []), + end_properties=record.get("end_properties", {}), + ) + for record in records + ] + + return responses + except Exception as e: + logging.error(f"Error during search_chapters: {e}") + return [] + + +def get_relations_to_level_simple(level: int) -> List[ChapterRelationResponse]: + """ + 简化版:根据目标层级查询从 Root 到目标层级的所有节点和关系 + :param level: 目标层级(1 -> Root & Subject, 2 -> Root, Subject, Topic, ..., 5 -> Problem) + :return: 列表,每一项为 ChapterRelationResponse 对象 + """ + hierarchy = ["Root", "Subject", "Topic", "Section", "SubSection", "Problem"] + + if level < 0 or level > len(hierarchy): + raise ValueError("层级参数必须在 0 到 5 之间") + # 特殊处理 level=0 的情况 + if level == 0: + query = """ + MATCH (start) + WHERE ANY(label IN labels(start) WHERE label = 'Root') + RETURN + properties(start) AS start_properties, + labels(start) AS start_labels + """ + + try: + with neo4j_conn.get_session() as session: + result = session.run(query) + records = result.data() + + return [ + ChapterRelationResponse( + start_labels=record.get("start_labels", []), + start_properties=record.get("start_properties", {}), + relation="", # 没有关系信息 + end_labels=[], # 没有终点节点 + end_properties={}, # 没有终点节点属性 + ) + for record in records + ] + except Exception as e: + logging.error(f"Error during get_relations_to_level_simple (level=0): {e}") + return [] + # 获取从 Root 到目标层级的所有标签 + target_labels = hierarchy[:level + 1] + + query = """ + MATCH (start)-[r]->(end) + WHERE ANY(label IN labels(start) WHERE label IN $target_labels) + AND ANY(label IN labels(end) WHERE label IN $target_labels) + RETURN + properties(start) AS start_properties, + labels(start) AS start_labels, + TYPE(r) AS relation, + properties(end) AS end_properties, + labels(end) AS end_labels + """ + + try: + with neo4j_conn.get_session() as session: + result = session.run(query, parameters={"target_labels": target_labels}) + records = result.data() + + return [ + ChapterRelationResponse( + start_labels=record.get("start_labels", []), + start_properties=record.get("start_properties", {}), + relation=record.get("relation", ""), + end_labels=record.get("end_labels", []), + end_properties=record.get("end_properties", {}), + ) + for record in records + ] + except Exception as e: + logging.error(f"Error during get_relations_to_level_simple: {e}") + return [] +def get_chapter_relations(chapter: str) -> List[ChapterRelationResponse]: + """ + 根据章节名称查找该章节及其相关节点和关系 + :param chapter_name: 章节名称 + :return: 列表,每一项为 ChapterRelationResponse 对象 + """ + query = """ + MATCH (start)-[r]->(end) + WHERE start.chapter = $chapter and end.chapter = $chapter + RETURN + properties(start) AS start_properties, + labels(start) AS start_labels, + TYPE(r) AS relation, + properties(end) AS end_properties, + labels(end) AS end_labels + """ + try: + with neo4j_conn.get_session() as session: + result = session.run(query, parameters={"chapter": chapter}) + records = result.data() + + return [ + ChapterRelationResponse( + start_labels=record.get("start_labels", []), + start_properties=record.get("start_properties", {}), + relation=record.get("relation", ""), + end_labels=record.get("end_labels", []), + end_properties=record.get("end_properties", {}), + ) + for record in records + ] + except Exception as e: + logging.error(f"Error during get_chapter_relations: {e}") + return [] \ No newline at end of file diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..cbeebf8 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,21 @@ +import js from '@eslint/js' +import pluginVue, { rules } from 'eslint-plugin-vue' + +export default [ + { + name: 'app/files-to-lint', + files: ['**/*.{js,mjs,jsx,vue}'], + }, + + { + name: 'app/files-to-ignore', + ignores: ['**/dist/**', '**/dist-ssr/**', '**/coverage/**'], + }, + js.configs.recommended, + ...pluginVue.configs['flat/essential'], + { + rules:{ + 'vue/multi-word-component-names': 'off' + } + } +] diff --git a/index.html b/index.html new file mode 100644 index 0000000..b19040a --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite App + + +
+ + + diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..5a1f2d2 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "paths": { + "@/*": ["./src/*"] + } + }, + "exclude": ["node_modules", "dist"] +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..ab33c5b --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5337 @@ +{ + "name": "sk-front", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "sk-front", + "version": "0.0.0", + "dependencies": { + "axios": "^1.7.9", + "d3": "^7.9.0", + "element-plus": "^2.9.1", + "pinia": "^2.2.6", + "vue": "^3.5.13", + "vue-router": "^4.4.5" + }, + "devDependencies": { + "@eslint/js": "^9.14.0", + "@vitejs/plugin-vue": "^5.2.1", + "eslint": "^9.14.0", + "eslint-plugin-vue": "^9.30.0", + "sass": "^1.83.0", + "unplugin-auto-import": "^0.19.0", + "unplugin-vue-components": "^0.28.0", + "vite": "^6.0.1", + "vite-plugin-vue-devtools": "^7.6.5" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@antfu/utils": { + "version": "0.7.10", + "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.10.tgz", + "integrity": "sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.3", + "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.26.3.tgz", + "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.0", + "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.3", + "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.26.3.tgz", + "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.26.3", + "@babel/types": "^7.26.3", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.25.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.25.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", + "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.25.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.0", + "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.3", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.26.3.tgz", + "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", + "dependencies": { + "@babel/types": "^7.26.3" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.25.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.25.9.tgz", + "integrity": "sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-decorators": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.25.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.25.9.tgz", + "integrity": "sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.26.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.25.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.26.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.3.tgz", + "integrity": "sha512-6+5hpdr6mETwSKjmJUdYw0EIkATiQhnELWlE3kJFBwSg/BGIVwVaVbX+gOXBCdc7Ln1RXZxyWGecIXhUfnl7oA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-syntax-typescript": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.26.4", + "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.26.4.tgz", + "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.3", + "@babel/parser": "^7.26.3", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.3", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.26.3", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@element-plus/icons-vue": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz", + "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==", + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", + "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.24.0.tgz", + "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", + "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.24.0.tgz", + "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", + "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", + "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", + "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", + "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", + "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", + "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", + "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", + "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", + "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", + "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", + "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", + "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", + "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", + "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", + "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", + "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", + "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", + "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", + "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", + "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.19.1", + "resolved": "https://registry.npmmirror.com/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", + "dev": true, + "dependencies": { + "@eslint/object-schema": "^2.1.5", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.9.1", + "resolved": "https://registry.npmmirror.com/@eslint/core/-/core-0.9.1.tgz", + "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.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": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "9.17.0", + "resolved": "https://registry.npmmirror.com/@eslint/js/-/js-9.17.0.tgz", + "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.4", + "resolved": "https://registry.npmmirror.com/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", + "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", + "dev": true, + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.8", + "resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.6.8.tgz", + "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==", + "dependencies": { + "@floating-ui/utils": "^0.2.8" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.12", + "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.6.12.tgz", + "integrity": "sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.8" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.8", + "resolved": "https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.2.8.tgz", + "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==" + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmmirror.com/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmmirror.com/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@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/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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/@parcel/watcher": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/@parcel/watcher/-/watcher-2.5.0.tgz", + "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.0", + "@parcel/watcher-darwin-arm64": "2.5.0", + "@parcel/watcher-darwin-x64": "2.5.0", + "@parcel/watcher-freebsd-x64": "2.5.0", + "@parcel/watcher-linux-arm-glibc": "2.5.0", + "@parcel/watcher-linux-arm-musl": "2.5.0", + "@parcel/watcher-linux-arm64-glibc": "2.5.0", + "@parcel/watcher-linux-arm64-musl": "2.5.0", + "@parcel/watcher-linux-x64-glibc": "2.5.0", + "@parcel/watcher-linux-x64-musl": "2.5.0", + "@parcel/watcher-win32-arm64": "2.5.0", + "@parcel/watcher-win32-ia32": "2.5.0", + "@parcel/watcher-win32-x64": "2.5.0" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz", + "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz", + "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz", + "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz", + "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz", + "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz", + "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz", + "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz", + "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz", + "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz", + "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz", + "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz", + "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz", + "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.28", + "resolved": "https://registry.npmmirror.com/@polka/url/-/url-1.0.0-next.28.tgz", + "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", + "dev": true + }, + "node_modules/@popperjs/core": { + "name": "@sxzz/popperjs-es", + "version": "2.11.7", + "resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz", + "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.4", + "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.28.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.1.tgz", + "integrity": "sha512-2aZp8AES04KI2dy3Ss6/MDjXbwBzj+i0GqKtWXgw2/Ma6E4jJvujryO6gJAghIRVz7Vwr9Gtl/8na3nDUKpraQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.28.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.1.tgz", + "integrity": "sha512-EbkK285O+1YMrg57xVA+Dp0tDBRB93/BZKph9XhMjezf6F4TpYjaUSuPt5J0fZXlSag0LmZAsTmdGGqPp4pQFA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.28.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.1.tgz", + "integrity": "sha512-prduvrMKU6NzMq6nxzQw445zXgaDBbMQvmKSJaxpaZ5R1QDM8w+eGxo6Y/jhT/cLoCvnZI42oEqf9KQNYz1fqQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.28.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.1.tgz", + "integrity": "sha512-WsvbOunsUk0wccO/TV4o7IKgloJ942hVFK1CLatwv6TJspcCZb9umQkPdvB7FihmdxgaKR5JyxDjWpCOp4uZlQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.28.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.1.tgz", + "integrity": "sha512-HTDPdY1caUcU4qK23FeeGxCdJF64cKkqajU0iBnTVxS8F7H/7BewvYoG+va1KPSL63kQ1PGNyiwKOfReavzvNA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.28.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.1.tgz", + "integrity": "sha512-m/uYasxkUevcFTeRSM9TeLyPe2QDuqtjkeoTpP9SW0XxUWfcYrGDMkO/m2tTw+4NMAF9P2fU3Mw4ahNvo7QmsQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.28.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.1.tgz", + "integrity": "sha512-QAg11ZIt6mcmzpNE6JZBpKfJaKkqTm1A9+y9O+frdZJEuhQxiugM05gnCWiANHj4RmbgeVJpTdmKRmH/a+0QbA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.28.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.1.tgz", + "integrity": "sha512-dRP9PEBfolq1dmMcFqbEPSd9VlRuVWEGSmbxVEfiq2cs2jlZAl0YNxFzAQS2OrQmsLBLAATDMb3Z6MFv5vOcXg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.28.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.1.tgz", + "integrity": "sha512-uGr8khxO+CKT4XU8ZUH1TTEUtlktK6Kgtv0+6bIFSeiSlnGJHG1tSFSjm41uQ9sAO/5ULx9mWOz70jYLyv1QkA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.28.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.1.tgz", + "integrity": "sha512-QF54q8MYGAqMLrX2t7tNpi01nvq5RI59UBNx+3+37zoKX5KViPo/gk2QLhsuqok05sSCRluj0D00LzCwBikb0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.28.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.28.1.tgz", + "integrity": "sha512-vPul4uodvWvLhRco2w0GcyZcdyBfpfDRgNKU+p35AWEbJ/HPs1tOUrkSueVbBS0RQHAf/A+nNtDpvw95PeVKOA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.28.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.1.tgz", + "integrity": "sha512-pTnTdBuC2+pt1Rmm2SV7JWRqzhYpEILML4PKODqLz+C7Ou2apEV52h19CR7es+u04KlqplggmN9sqZlekg3R1A==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.28.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.1.tgz", + "integrity": "sha512-vWXy1Nfg7TPBSuAncfInmAI/WZDd5vOklyLJDdIRKABcZWojNDY0NJwruY2AcnCLnRJKSaBgf/GiJfauu8cQZA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.28.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.1.tgz", + "integrity": "sha512-/yqC2Y53oZjb0yz8PVuGOQQNOTwxcizudunl/tFs1aLvObTclTwZ0JhXF2XcPT/zuaymemCDSuuUPXJJyqeDOg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.28.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.1.tgz", + "integrity": "sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.28.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.1.tgz", + "integrity": "sha512-xQTDVzSGiMlSshpJCtudbWyRfLaNiVPXt1WgdWTwWz9n0U12cI2ZVtWe/Jgwyv/6wjL7b66uu61Vg0POWVfz4g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.28.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.1.tgz", + "integrity": "sha512-wSXmDRVupJstFP7elGMgv+2HqXelQhuNf+IS4V+nUpNVi/GUiBgDmfwD0UGN3pcAnWsgKG3I52wMOBnk1VHr/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.28.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.1.tgz", + "integrity": "sha512-ZkyTJ/9vkgrE/Rk9vhMXhf8l9D+eAhbAVbsGsXKy2ohmJaWg0LPQLnIxRdRp/bKyr8tXuPlXhIoGlEB5XpJnGA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.28.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.1.tgz", + "integrity": "sha512-ZvK2jBafvttJjoIdKm/Q/Bh7IJ1Ose9IBOwpOXcOvW3ikGTQGmKDgxTC6oCAzW6PynbkKP8+um1du81XJHZ0JA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "dev": true + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/lodash": { + "version": "4.17.13", + "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.13.tgz", + "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.12.tgz", + "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.16", + "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", + "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.2.1.tgz", + "integrity": "sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==", + "dev": true, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "1.2.5", + "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.5.tgz", + "integrity": "sha512-lOz4t39ZdmU4DJAa2hwPYmKc8EsuGa2U0L9KaZaOJUt0UwQNjNA3AZTq6uEivhOKhhG1Wvy96SvYBoFmCg3uuw==", + "dev": true + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "1.2.5", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.5.tgz", + "integrity": "sha512-zTrNmOd4939H9KsRIGmmzn3q2zvv1mjxkYZHgqHZgDrXz5B1Q3WyGEjO2f+JrmKghvl1JIRcvo63LgM1kH5zFg==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.6", + "@babel/types": "^7.25.6", + "@vue/babel-helper-vue-transform-on": "1.2.5", + "@vue/babel-plugin-resolve-type": "1.2.5", + "html-tags": "^3.3.1", + "svg-tags": "^1.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + } + } + }, + "node_modules/@vue/babel-plugin-resolve-type": { + "version": "1.2.5", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.5.tgz", + "integrity": "sha512-U/ibkQrf5sx0XXRnUZD1mo5F7PkpKyTbfXM3a3rC4YnUz6crHEz9Jg09jzzL6QYlXNto/9CePdOg/c87O4Nlfg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/parser": "^7.25.6", + "@vue/compiler-sfc": "^3.5.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.13", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.13.tgz", + "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.13", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", + "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "dependencies": { + "@vue/compiler-core": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.13", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", + "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.13", + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.11", + "postcss": "^8.4.48", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.13", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", + "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", + "dependencies": { + "@vue/compiler-dom": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" + }, + "node_modules/@vue/devtools-core": { + "version": "7.6.8", + "resolved": "https://registry.npmmirror.com/@vue/devtools-core/-/devtools-core-7.6.8.tgz", + "integrity": "sha512-8X4roysTwzQ94o7IobjVcOd1aZF5iunikrMrHPI2uUdigZCi2kFTQc7ffYiFiTNaLElCpjOhCnM7bo7aK1yU7A==", + "dev": true, + "dependencies": { + "@vue/devtools-kit": "^7.6.8", + "@vue/devtools-shared": "^7.6.8", + "mitt": "^3.0.1", + "nanoid": "^5.0.9", + "pathe": "^1.1.2", + "vite-hot-client": "^0.2.4" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/@vue/devtools-core/node_modules/nanoid": { + "version": "5.0.9", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-5.0.9.tgz", + "integrity": "sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, + "node_modules/@vue/devtools-kit": { + "version": "7.6.8", + "resolved": "https://registry.npmmirror.com/@vue/devtools-kit/-/devtools-kit-7.6.8.tgz", + "integrity": "sha512-JhJ8M3sPU+v0P2iZBF2DkdmR9L0dnT5RXJabJqX6o8KtFs3tebdvfoXV2Dm3BFuqeECuMJIfF1aCzSt+WQ4wrw==", + "dev": true, + "dependencies": { + "@vue/devtools-shared": "^7.6.8", + "birpc": "^0.2.19", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.1" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "7.6.8", + "resolved": "https://registry.npmmirror.com/@vue/devtools-shared/-/devtools-shared-7.6.8.tgz", + "integrity": "sha512-9MBPO5Z3X1nYGFqTJyohl6Gmf/J7UNN1oicHdyzBVZP4jnhZ4c20MgtaHDIzWmHDHCMYVS5bwKxT3jxh7gOOKA==", + "dev": true, + "dependencies": { + "rfdc": "^1.4.1" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.13", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.13.tgz", + "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", + "dependencies": { + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.13", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.13.tgz", + "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", + "dependencies": { + "@vue/reactivity": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", + "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", + "dependencies": { + "@vue/reactivity": "3.5.13", + "@vue/runtime-core": "3.5.13", + "@vue/shared": "3.5.13", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.13", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.13.tgz", + "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", + "dependencies": { + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "vue": "3.5.13" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.13", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.13.tgz", + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==" + }, + "node_modules/@vueuse/core": { + "version": "9.13.0", + "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz", + "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==", + "dependencies": { + "@types/web-bluetooth": "^0.0.16", + "@vueuse/metadata": "9.13.0", + "@vueuse/shared": "9.13.0", + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/metadata": { + "version": "9.13.0", + "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.13.0.tgz", + "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "9.13.0", + "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz", + "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==", + "dependencies": { + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/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/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.7.9", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/birpc": { + "version": "0.2.19", + "resolved": "https://registry.npmmirror.com/birpc/-/birpc-0.2.19.tgz", + "integrity": "sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/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.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.3", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.24.3.tgz", + "integrity": "sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001689", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001689.tgz", + "integrity": "sha512-CmeR2VBycfa+5/jOfnp/NpWPGd06nf1XYiefUvhXFfZE4GkRc9jv+eGPS4nT558WS/8lYCzV8SlANCIPvbWP1g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/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.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "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" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/copy-anything": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "dev": true, + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/d3": { + "version": "7.9.0", + "resolved": "https://registry.npmmirror.com/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmmirror.com/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "dependencies": { + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmmirror.com/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "dev": true, + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delaunator": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/delaunator/-/delaunator-5.0.1.tgz", + "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", + "dependencies": { + "robust-predicates": "^3.0.2" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.74", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.74.tgz", + "integrity": "sha512-ck3//9RC+6oss/1Bh9tiAVFy5vfSKbRHAFh7Z3/eTRkEqJeWgymloShB17Vg3Z4nmDNp35vAd1BZ6CMW4Wt6Iw==", + "dev": true + }, + "node_modules/element-plus": { + "version": "2.9.1", + "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.9.1.tgz", + "integrity": "sha512-9Agqf/jt4Ugk7EZ6C5LME71sgkvauPCsnvJN12Xid2XVobjufxMGpRE4L7pS4luJMOmFAH3J0NgYEGZT5r+NDg==", + "dependencies": { + "@ctrl/tinycolor": "^3.4.1", + "@element-plus/icons-vue": "^2.3.1", + "@floating-ui/dom": "^1.0.1", + "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", + "@types/lodash": "^4.14.182", + "@types/lodash-es": "^4.17.6", + "@vueuse/core": "^9.1.0", + "async-validator": "^4.2.5", + "dayjs": "^1.11.13", + "escape-html": "^1.0.3", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "lodash-unified": "^1.0.2", + "memoize-one": "^6.0.0", + "normalize-wheel-es": "^1.2.0" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-stack-parser-es": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/error-stack-parser-es/-/error-stack-parser-es-0.1.5.tgz", + "integrity": "sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/esbuild": { + "version": "0.24.0", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.24.0.tgz", + "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.0", + "@esbuild/android-arm": "0.24.0", + "@esbuild/android-arm64": "0.24.0", + "@esbuild/android-x64": "0.24.0", + "@esbuild/darwin-arm64": "0.24.0", + "@esbuild/darwin-x64": "0.24.0", + "@esbuild/freebsd-arm64": "0.24.0", + "@esbuild/freebsd-x64": "0.24.0", + "@esbuild/linux-arm": "0.24.0", + "@esbuild/linux-arm64": "0.24.0", + "@esbuild/linux-ia32": "0.24.0", + "@esbuild/linux-loong64": "0.24.0", + "@esbuild/linux-mips64el": "0.24.0", + "@esbuild/linux-ppc64": "0.24.0", + "@esbuild/linux-riscv64": "0.24.0", + "@esbuild/linux-s390x": "0.24.0", + "@esbuild/linux-x64": "0.24.0", + "@esbuild/netbsd-x64": "0.24.0", + "@esbuild/openbsd-arm64": "0.24.0", + "@esbuild/openbsd-x64": "0.24.0", + "@esbuild/sunos-x64": "0.24.0", + "@esbuild/win32-arm64": "0.24.0", + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/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": "9.17.0", + "resolved": "https://registry.npmmirror.com/eslint/-/eslint-9.17.0.tgz", + "integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.17.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.32.0", + "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.32.0.tgz", + "integrity": "sha512-b/Y05HYmnB/32wqVcjxjHZzNpwxj1onBOvqW89W+V+XNG1dRuaFbNd3vT9CLbr2LXjEoq+3vn8DanWf7XU22Ug==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "globals": "^13.24.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.15", + "semver": "^7.6.3", + "vue-eslint-parser": "^9.4.3", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-vue/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmmirror.com/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "9.5.2", + "resolved": "https://registry.npmmirror.com/execa/-/execa-9.5.2.tgz", + "integrity": "sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==", + "dev": true, + "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", + "cross-spawn": "^7.0.3", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^8.0.0", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^6.0.0", + "pretty-ms": "^9.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.0.0" + }, + "engines": { + "node": "^18.19.0 || >=20.5.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/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/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/figures": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", + "dev": true, + "dependencies": { + "is-unicode-supported": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/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": "4.0.1", + "resolved": "https://registry.npmmirror.com/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "dev": true, + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/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/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmmirror.com/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "dev": true + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/human-signals": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-8.0.0.tgz", + "integrity": "sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==", + "dev": true, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "5.0.3", + "resolved": "https://registry.npmmirror.com/immutable/-/immutable-5.0.3.tgz", + "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/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-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmmirror.com/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "dev": true, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "dev": true, + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/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/local-pkg": { + "version": "0.5.1", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.1.tgz", + "integrity": "sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==", + "dev": true, + "dependencies": { + "mlly": "^1.7.3", + "pkg-types": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/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": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash-unified": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz", + "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==", + "peerDependencies": { + "@types/lodash-es": "*", + "lodash": "*", + "lodash-es": "*" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/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/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true + }, + "node_modules/mlly": { + "version": "1.7.3", + "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.7.3.tgz", + "integrity": "sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==", + "dev": true, + "dependencies": { + "acorn": "^8.14.0", + "pathe": "^1.1.2", + "pkg-types": "^1.2.1", + "ufo": "^1.5.4" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, + "optional": true + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-wheel-es": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", + "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==" + }, + "node_modules/npm-run-path": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/open": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "dev": true, + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "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.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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.npmmirror.com/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/parse-ms": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/parse-ms/-/parse-ms-4.0.0.tgz", + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pinia": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.3.0.tgz", + "integrity": "sha512-ohZj3jla0LL0OH5PlLTDMzqKiVw2XARmC1XYLdLWIPBMdhDW/123ZWr4zVAhtJm+aoSkFa13pYXskAvAscIkhQ==", + "dependencies": { + "@vue/devtools-api": "^6.6.3", + "vue-demi": "^0.14.10" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "typescript": ">=4.4.4", + "vue": "^2.7.0 || ^3.5.11" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/pkg-types": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.2.1.tgz", + "integrity": "sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==", + "dev": true, + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.2", + "pathe": "^1.1.2" + } + }, + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-ms": { + "version": "9.2.0", + "resolved": "https://registry.npmmirror.com/pretty-ms/-/pretty-ms-9.2.0.tgz", + "integrity": "sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==", + "dev": true, + "dependencies": { + "parse-ms": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/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/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true + }, + "node_modules/robust-predicates": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/robust-predicates/-/robust-predicates-3.0.2.tgz", + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" + }, + "node_modules/rollup": { + "version": "4.28.1", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.28.1.tgz", + "integrity": "sha512-61fXYl/qNVinKmGSTHAZ6Yy8I3YIJC/r2m9feHo6SwVAVcLT5MPwOUFe7EuURA/4m0NR8lXG4BBXuo/IZEsjMg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.28.1", + "@rollup/rollup-android-arm64": "4.28.1", + "@rollup/rollup-darwin-arm64": "4.28.1", + "@rollup/rollup-darwin-x64": "4.28.1", + "@rollup/rollup-freebsd-arm64": "4.28.1", + "@rollup/rollup-freebsd-x64": "4.28.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.28.1", + "@rollup/rollup-linux-arm-musleabihf": "4.28.1", + "@rollup/rollup-linux-arm64-gnu": "4.28.1", + "@rollup/rollup-linux-arm64-musl": "4.28.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.28.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.28.1", + "@rollup/rollup-linux-riscv64-gnu": "4.28.1", + "@rollup/rollup-linux-s390x-gnu": "4.28.1", + "@rollup/rollup-linux-x64-gnu": "4.28.1", + "@rollup/rollup-linux-x64-musl": "4.28.1", + "@rollup/rollup-win32-arm64-msvc": "4.28.1", + "@rollup/rollup-win32-ia32-msvc": "4.28.1", + "@rollup/rollup-win32-x64-msvc": "4.28.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/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/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmmirror.com/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sass": { + "version": "1.83.0", + "resolved": "https://registry.npmmirror.com/sass/-/sass-1.83.0.tgz", + "integrity": "sha512-qsSxlayzoOjdvXMVLkzF84DJFc2HZEL/rFyGIKbbilYtAvlCxyuzUeff9LawTn4btVnLKg75Z8MMr1lxU1lfGw==", + "dev": true, + "dependencies": { + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/sass/node_modules/chokidar": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-4.0.2.tgz", + "integrity": "sha512-/b57FK+bblSU+dfewfFe0rT1YjVDfOmeLQwCAuC+vwvgLkXboATqqmy+Ipux6JrF6L5joe5CBnFOw+gLWH6yKg==", + "dev": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "dev": true, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/scule": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz", + "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", + "dev": true + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sirv": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/sirv/-/sirv-3.0.0.tgz", + "integrity": "sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmmirror.com/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/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/strip-literal": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.1.tgz", + "integrity": "sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==", + "dev": true, + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true + }, + "node_modules/superjson": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/superjson/-/superjson-2.2.2.tgz", + "integrity": "sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==", + "dev": true, + "dependencies": { + "copy-anything": "^3.0.2" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/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/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/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/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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/ufo": { + "version": "1.5.4", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "dev": true + }, + "node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unimport": { + "version": "3.14.5", + "resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.14.5.tgz", + "integrity": "sha512-tn890SwFFZxqaJSKQPPd+yygfKSATbM8BZWW1aCR2TJBTs1SDrmLamBueaFtYsGjHtQaRgqEbQflOjN2iW12gA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.1.3", + "acorn": "^8.14.0", + "escape-string-regexp": "^5.0.0", + "estree-walker": "^3.0.3", + "fast-glob": "^3.3.2", + "local-pkg": "^0.5.1", + "magic-string": "^0.30.14", + "mlly": "^1.7.3", + "pathe": "^1.1.2", + "picomatch": "^4.0.2", + "pkg-types": "^1.2.1", + "scule": "^1.3.0", + "strip-literal": "^2.1.1", + "unplugin": "^1.16.0" + } + }, + "node_modules/unimport/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unimport/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/unimport/node_modules/unplugin": { + "version": "1.16.0", + "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.16.0.tgz", + "integrity": "sha512-5liCNPuJW8dqh3+DM6uNM2EI3MLLpCKp/KY+9pB5M2S2SR2qvvDHhKgBOaTWEbZTAws3CXfB0rKTIolWKL05VQ==", + "dev": true, + "dependencies": { + "acorn": "^8.14.0", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unplugin": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-2.1.0.tgz", + "integrity": "sha512-us4j03/499KhbGP8BU7Hrzrgseo+KdfJYWcbcajCOqsAyb8Gk0Yn2kiUIcZISYCb1JFaZfIuG3b42HmguVOKCQ==", + "dev": true, + "dependencies": { + "acorn": "^8.14.0", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/unplugin-auto-import": { + "version": "0.19.0", + "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.19.0.tgz", + "integrity": "sha512-W97gTDEWu/L1EcKCXY5Ni8bsMW1E9kv12wYQv3mYpd7zcFctXYlLKsqeva6sbCQbzS8t9AG/XdU5/WkEJKPlFw==", + "dev": true, + "dependencies": { + "@antfu/utils": "^0.7.10", + "@rollup/pluginutils": "^5.1.3", + "local-pkg": "^0.5.1", + "magic-string": "^0.30.15", + "picomatch": "^4.0.2", + "unimport": "^3.14.5", + "unplugin": "^2.1.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@nuxt/kit": "^3.2.2", + "@vueuse/core": "*" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + }, + "@vueuse/core": { + "optional": true + } + } + }, + "node_modules/unplugin-vue-components": { + "version": "0.28.0", + "resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.28.0.tgz", + "integrity": "sha512-jiTGtJ3JsRFBjgvyilfrX7yUoGKScFgbdNw+6p6kEXU+Spf/rhxzgvdfuMcvhCcLmflB/dY3pGQshYBVGOUx7Q==", + "dev": true, + "dependencies": { + "@antfu/utils": "^0.7.10", + "@rollup/pluginutils": "^5.1.4", + "chokidar": "^3.6.0", + "debug": "^4.4.0", + "fast-glob": "^3.3.2", + "local-pkg": "^0.5.1", + "magic-string": "^0.30.15", + "minimatch": "^9.0.5", + "mlly": "^1.7.3", + "unplugin": "^2.1.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@babel/parser": "^7.15.8", + "@nuxt/kit": "^3.2.2", + "vue": "2 || 3" + }, + "peerDependenciesMeta": { + "@babel/parser": { + "optional": true + }, + "@nuxt/kit": { + "optional": true + } + } + }, + "node_modules/unplugin-vue-components/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/unplugin-vue-components/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/vite": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/vite/-/vite-6.0.3.tgz", + "integrity": "sha512-Cmuo5P0ENTN6HxLSo6IHsjCLn/81Vgrp81oaiFFMRa8gGDj5xEjIcEpf2ZymZtZR8oU0P2JX5WuUp/rlXcHkAw==", + "dev": true, + "dependencies": { + "esbuild": "^0.24.0", + "postcss": "^8.4.49", + "rollup": "^4.23.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-hot-client": { + "version": "0.2.4", + "resolved": "https://registry.npmmirror.com/vite-hot-client/-/vite-hot-client-0.2.4.tgz", + "integrity": "sha512-a1nzURqO7DDmnXqabFOliz908FRmIppkBKsJthS8rbe8hBEXwEwe4C3Pp33Z1JoFCYfVL4kTOMLKk0ZZxREIeA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0" + } + }, + "node_modules/vite-plugin-inspect": { + "version": "0.8.9", + "resolved": "https://registry.npmmirror.com/vite-plugin-inspect/-/vite-plugin-inspect-0.8.9.tgz", + "integrity": "sha512-22/8qn+LYonzibb1VeFZmISdVao5kC22jmEKm24vfFE8siEn47EpVcCLYMv6iKOYMJfjSvSJfueOwcFCkUnV3A==", + "dev": true, + "dependencies": { + "@antfu/utils": "^0.7.10", + "@rollup/pluginutils": "^5.1.3", + "debug": "^4.3.7", + "error-stack-parser-es": "^0.1.5", + "fs-extra": "^11.2.0", + "open": "^10.1.0", + "perfect-debounce": "^1.0.0", + "picocolors": "^1.1.1", + "sirv": "^3.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^3.1.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.1" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + } + } + }, + "node_modules/vite-plugin-vue-devtools": { + "version": "7.6.8", + "resolved": "https://registry.npmmirror.com/vite-plugin-vue-devtools/-/vite-plugin-vue-devtools-7.6.8.tgz", + "integrity": "sha512-32aIps8C1Y7UEoqyWf+ES3J1OozsCYMIqTqd+I5qass+R0Tcf8SaA2bX1/rskAzkcKCteVoBjEENmqwTcMebbw==", + "dev": true, + "dependencies": { + "@vue/devtools-core": "^7.6.8", + "@vue/devtools-kit": "^7.6.8", + "@vue/devtools-shared": "^7.6.8", + "execa": "^9.5.1", + "sirv": "^3.0.0", + "vite-plugin-inspect": "~0.8.9", + "vite-plugin-vue-inspector": "^5.3.1" + }, + "engines": { + "node": ">=v14.21.3" + }, + "peerDependencies": { + "vite": "^3.1.0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0" + } + }, + "node_modules/vite-plugin-vue-inspector": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/vite-plugin-vue-inspector/-/vite-plugin-vue-inspector-5.3.1.tgz", + "integrity": "sha512-cBk172kZKTdvGpJuzCCLg8lJ909wopwsu3Ve9FsL1XsnLBiRT9U3MePcqrgGHgCX2ZgkqZmAGR8taxw+TV6s7A==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.0", + "@babel/plugin-proposal-decorators": "^7.23.0", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.22.15", + "@vue/babel-plugin-jsx": "^1.1.5", + "@vue/compiler-dom": "^3.3.4", + "kolorist": "^1.8.0", + "magic-string": "^0.30.4" + }, + "peerDependencies": { + "vite": "^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0" + } + }, + "node_modules/vue": { + "version": "3.5.13", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.13.tgz", + "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", + "dependencies": { + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-sfc": "3.5.13", + "@vue/runtime-dom": "3.5.13", + "@vue/server-renderer": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/vue-eslint-parser": { + "version": "9.4.3", + "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", + "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/vue-eslint-parser/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/vue-router": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.5.0.tgz", + "integrity": "sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "dev": true + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/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/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/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" + } + }, + "node_modules/yoctocolors": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/yoctocolors/-/yoctocolors-2.1.1.tgz", + "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..2c74264 --- /dev/null +++ b/package.json @@ -0,0 +1,31 @@ +{ + "name": "sk-front", + "version": "0.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "lint": "eslint . --fix" + }, + "dependencies": { + "axios": "^1.7.9", + "d3": "^7.9.0", + "element-plus": "^2.9.1", + "pinia": "^2.2.6", + "vue": "^3.5.13", + "vue-router": "^4.4.5" + }, + "devDependencies": { + "@eslint/js": "^9.14.0", + "@vitejs/plugin-vue": "^5.2.1", + "eslint": "^9.14.0", + "eslint-plugin-vue": "^9.30.0", + "sass": "^1.83.0", + "unplugin-auto-import": "^0.19.0", + "unplugin-vue-components": "^0.28.0", + "vite": "^6.0.1", + "vite-plugin-vue-devtools": "^7.6.5" + } +} diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 GIT binary patch literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S literal 0 HcmV?d00001 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..6f535c4 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,5 @@ +fastapi==0.115.6 +neo4j==5.26.0 +pydantic==2.10.4 +pydantic_settings==2.7.0 +uvicorn==0.34.0 diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..140ba29 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/src/assets/base.css b/src/assets/base.css new file mode 100644 index 0000000..8816868 --- /dev/null +++ b/src/assets/base.css @@ -0,0 +1,86 @@ +/* color palette from */ +:root { + --vt-c-white: #ffffff; + --vt-c-white-soft: #f8f8f8; + --vt-c-white-mute: #f2f2f2; + + --vt-c-black: #181818; + --vt-c-black-soft: #222222; + --vt-c-black-mute: #282828; + + --vt-c-indigo: #2c3e50; + + --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); + --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); + --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); + --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); + + --vt-c-text-light-1: var(--vt-c-indigo); + --vt-c-text-light-2: rgba(60, 60, 60, 0.66); + --vt-c-text-dark-1: var(--vt-c-white); + --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); +} + +/* semantic color variables for this project */ +:root { + --color-background: var(--vt-c-white); + --color-background-soft: var(--vt-c-white-soft); + --color-background-mute: var(--vt-c-white-mute); + + --color-border: var(--vt-c-divider-light-2); + --color-border-hover: var(--vt-c-divider-light-1); + + --color-heading: var(--vt-c-text-light-1); + --color-text: var(--vt-c-text-light-1); + + --section-gap: 160px; +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--vt-c-black); + --color-background-soft: var(--vt-c-black-soft); + --color-background-mute: var(--vt-c-black-mute); + + --color-border: var(--vt-c-divider-dark-2); + --color-border-hover: var(--vt-c-divider-dark-1); + + --color-heading: var(--vt-c-text-dark-1); + --color-text: var(--vt-c-text-dark-2); + } +} + +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + font-weight: normal; +} + +body { + min-height: 100vh; + color: var(--color-text); + background: var(--color-background); + transition: + color 0.5s, + background-color 0.5s; + line-height: 1.6; + font-family: + Inter, + -apple-system, + BlinkMacSystemFont, + 'Segoe UI', + Roboto, + Oxygen, + Ubuntu, + Cantarell, + 'Fira Sans', + 'Droid Sans', + 'Helvetica Neue', + sans-serif; + font-size: 15px; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} diff --git a/src/assets/images/logo.png b/src/assets/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f0b9dc239ac29676979acda74cae841b25cee24f GIT binary patch literal 114408 zcmeEu1yh|%uq_aRTae%yT!Op1ySux)Ly+LEK{pcI-Q9w_ySux;os)ayzQ6EZ)mKFo zwVD0ROn0xqTLaD{S0~7+VAtK7 zqD!83)Wa5)+U4+8!wE{o{|F>3!m6n0Bko@wrOD4LD=`!Y8gUlTs!HNQolf;I?vaN{B&zV|J*2^3n7D<<%oxb9aS2Mw* zxiId84u?OI6nx~2B-JzyLF zZyUlRa8tJf#f-!8h^=eWOK3KtsyHdRvnmv$#b=0h30dgQ_mCbJhR;ZLNt8<+a(DIg zMpZ+6d^=79bJ~qAMT)nSYU@e54vOYk?Gg5Ap@#vs7!amLduyl4%$RKo8we+n zX$-p5&Oc&Jl^1H$ z2qsv;&1N~1HGkx#th}2wpADJ+EVURc#T`l$Q7ulZDlGD-k5J4QPh^1KF4AMWTE;Co zfAL&L5~TeXaO8ZzC75}rcxClJLEU`vli#+zfUWjSC6JgG*($RkVK z!+KdjTgEc`^qu!rLhk^RHFAT*9CY|fmAshL4vGd;25N_J1C1a3+2edy}P;!xA4 zQKQBy1-TiO%>9sgl3;j2Pli}2n$=p1%K>i#a*ltY-;aR+h^P?!-=IGPbT-=aBHhS; zv7v)*sAR@KfirL^l}jF7x#^o}F$g)UfC^Nuj$V>rtuDJ{cU~m)L9z%Red?{dBdIp{ zt|Nud2Jx>?P^N(NDv*dG)+eL+3624rvk8U}N#iU8HD>QjtghxL)Kk*m7&F5f?=*RR z-}6V(?%>q!OrKcFlJ?`ik8c9rEH&F#hLEGl9z1Jdpu6LVy&yoKbSOkkNbsEp}Ce#F{CtbhbvpEe$CfX-pa9Y?_vJ@`y-1*8pT#J{Hm#{`VsA82we z3T&Yx5HA957npBv-#j&XF7Mh;4>8l26J2U{Ve=7`U#fXvxI|xg=D$kIqnCPn;DIZy z>v$i)|MM=r;FQ)cDh4=ac;L+iB+=UtHcA`n#z;`$ z3xaDbZ+WSE=+lRH-ig$G2}S<%j}fgy7qpgn+H|}5Tf5ek!#@Hqz)a_!SLK;A+BZL3 z_5@eiTMK{3?Dzj0EKq?y5I775-YlMV8IdMq&#vXG%A}o-c5(6@_e2^YA+1y{i6R%V z#+MFL06Z%9neMPT=`FkX<9nsgF886$R-gGl??*6k4h}KIR=&>P{q5+>gj>J#`e(O8 z&;TTJ-?}cyA!(DcwxdcTis$@S?kGcX!7^3Zy!dr8u*d0UG|;@Kas)THzfX(~2?{R3 zeuXdOqgNpTSb!{GR!;T&#gQ%@M>b?IwVo0Ix42(9Mz$}txx?H&$qe;lCew`DRIJzy zB%oaD!mi4Co9$m1AtwWx#4alQf&x7_1c3gwc!}fv%8pIl6ggfgUai`{cD%N=mC_w~ z97TSIC_>-sIeveiSDU`;d-lIOiy;A?k|Zd2Gk?}$x_ZZ)^d4mo9d63>H4NTF1Lgf5 zW&46VWS3D%jOpX}6;9E06VEKF@mjF#`ctw^RzJnR3r*O9Q@V1^+y0ucuS3DGpSua* z#=Aeyh2AxiW?dMYqe|S`TLMH3N}lX=8}X98?`MWIzc5RwXr|ncmiib$*>e!*j-9_S zeUhbq*f{J26u&_j;p1`M)jay7BTOicr{-#vH^5n{o)sgA@T>YvhRh{5b7E@E+2SKriyv;m zzbO1WsVmK7;8sG#C9mORR2SVSl<>HJ^o5)A zH8Sb!j3CL(Wx#`$HZOs~QHMZUSu6tWnNZ&D!?IOSs4?c2{cvh8y)Sgb_X2B;HY-(I zdI8RVwnQLD2?WysiCNyIkA7ia>@IrQ5iLot;gzQs1k?d*%|#q25|94WzN<*eQYq$k zF2=$i6RmSsq_AD+6C(w(C44fZ&ubvdW8{Wjxt~RYjKw17i`d*;vJ2GJYdxF^THcIVSum>Ajo?xgis?6YQz_b)`OZ@n5E?v@#9? z#1-PldwJ6<7(tUzh8DfV5W_|dp>=P}()~=MBm99#nMgsb@B!J_hZ-pql6t$v3Tg&a zvO=OpCqv*lWjnBqH2n74qxT{D3eh@w}K@YGa-VB23c znP`%xOhgUDeO2OWP3@{@&zosumzK#Bq=#Ao)<5pVKL!)n1sbaNFpV+|({W-ZsSh(4 zQPGbC4$@JMe^TB6A0-Z)g-@J!BC@02-chU1q&t}~lE5|oAwok~+QS5|GY>D4dt3om zqYa{QVy*ac)f3B0QknI-Xzn)GRBO$@0X@#Z>7?Bhy1yk`rt2=-3?~R5{~to-UxNL` zjbH*1T;_4FdUrC=K~a)irBbVrB(>Qa96>$4$e)PF#}o%q{`g6@=vE}HDduZj`f zOof}YI0}+&$v2bQRr|^sW`6dngi+GjdAA!m;yX@&XjC}Py-v5(yZ&kzUkf3(TO^k6 zHTmQho$l%t{vxBLeft*D0c3Mu4fA7BLXtB>d4L5rqBr8*k4H7{yjY`KQfU=O3`NlS$$ZJu=bD_u0zn@nlhihvy8)>2@n?iUN{& zjyiiK)aU~zq*B(8iQ_suE&&5JJh`3Jy=RTz9RG7u^H4WVR`ZrYS%gUBu3*9Gyw3`w zdgoG9ON9c;7lp6dP1$!TKBk@lFwmKXp#vmTaJlQap#?e%>7RAUyp{RCBIzM|4>YQ& zM%t&!wD*Uv=$i|Fandasp{f88@;SMxk$KD;qmi2tZ8k3xG_dtPzhrMner5)F{^u2n z!}(PEU1o(L*8G7$zg@866Q5r*tRW!Jq6$jrYnux;1B2#WIc`-0OIs3>DTo>}aB4P( z`dTig(c!xs?pN;v1;uFb0?(6?EW?E90wcKK7%DC@A%K*WkwS#-PBMsSR-jzkog`sV zdV8`oi~IsuElK8f?Yy@C+p~ZH?dB8Exp=@LZ72bq^vNTD{Irwmda+hL`(Ojx{1@b9 z+_@_xft6~Z6`R9tF}9{abVXU8tC1$se`dV6A z+#88_(UVs>e_q-mnAAJmJ^7O?Q-ZN}#jV@`?{>1joT4O;A#?vUw#AjI*a{R@9o0GW zONqkf#B7>who`BtuH6ORKVc8&cQz!5swcPz1f{VE+KW;<^d5%-5=9G0ez^#>YV#29 z`jR|h+(NlHAst7KUeh_e0$D;ozD*e9UBNK+?H1Qp&*AcoPtC=g&dW2c5qv{W3AQ$G z2|Xh$O^b(a)Pe_CG+PcA(ah%|S~a_oBwbhb=t=*;iV`r1%(IB#@H(Re-TM{3?<48d z=(~;;fvh}zA9Z1EnFNEzd_aI;)wWcSUloWHwLj7YzvgRev&NX6FniW~^Z*)ViqLd1 zM}k+tMS(1fn;|jHof?6FeV~DT=Q1Y~rLJP{z$G~xYAeUI%c3s!@)3LP&Y^b#=Wp7` zmkiv#Gc-CvxdfPEz8&QE0k7cA-gP4u>)HFgI5QLCYt44b93l(eK12uBOz{wMhu+f! z&8^UxXx8?|jVcL4E|aPBfLEUTbE3imd`&jnmvW~Qc>4q{;Xm{%s0 zDd}yaPHl^(XdqPZTqhs@Rv^jQf%}j9A_9pft2cyNUgW&<2=QqTDTuBYsPX7y1WXV^ z9bY%@@WTx^B2#>yIDyHwbgKp<-1f|_lU66}x~9H#PluVTd&KAQKJJz1zqn0Ulo}zuII3|+LXjmA4MkXOM;7lRR=@%x-STkH+CgMic zhwqRx6-Fi~<{cT#hWmo=@2O$pb2T-E>y2vR^dF^!9Z29BG5E3y!1JXxMFJ79i0xOz zx?yj*hH-bVo69AL69ogZ+2SdD^w6Q};kDbo4){)4Tun*SQZLRZG7fFMP$)JEq67oB z>|1;%k;8Bc$TiAgGD)xwIY>S82it8Zt{v~rsfXkEZ*}VOm~RqC-)?E+(5R}z`-Zv| zG329uf9}IN6GkPnqziy7)5%^xlcmzLG-N6ykxO#f3#;Th6Ee4q2AJ=a+ zT@Yo7r-kMtSD>Qy)fj$O1@(5vo>O>S$R=hg4@FP?fVE}c+}P}StM#$G);~-TaQb3< zl1lc&3OWyAxWgz|EIsZ*hXIe{{#x1ftf;jF^z%J3Xuf^7EVjDxgM(qf`v_KrV`En( z7d;fcQ(|E%|A7X(MsFrz`XDUaC-+Rcz)^C?AVLvKx@y9O&l=6!bpY#AlC%l9zigfl z4e6U&u|Gji-`f|vo4jxY*`mw-fFK0THfvREl!#vFVY=Q^CnP_Tn#jt_aOaW_Rc|$w zPTbLLc4LIM@XoTLhKE&Mb`j)GD4NTqty=aG0-kinqdBEG2!1#$7QdSJ?_0g#swMNn zRhw$LekZH)Nwk>krJGdM#Bh=Q@dBD`UA@Q@^sy?hI6ZSvT(pxoM$fxO$URKU!?UIt zdKf_y?+3$_bOsnA3L8zM@O5WOk;}#mIH4yCvv-}TXf^o4q{Uh}h@8I>CF|vP?9!Fe zo8P==;e-+7J_kd?BpHE z`zM&CZaM@K!C*i8{rWs$H;DYn?JC?^7Se|!#$7qZ77iNx2fb|rOzIX#jZe&bzmfzt zR(PHTQ_n>e92Fy6Pip?)L4ItCT5^*QHNO!BjwfiMRW_1`x4QB1DI&WD;QQu}5%kY+ zgb?FZ^wE-Q84`J!VtvTG>$M(>Hc$nWEijv3e_sgBH(>GM>nEgxFJO?mT%Li{zpjn^ zcu7*EXx=W0I`N+hk9|(}LM}lY_6R}6k$f;B3s%C4>(2WUo|k;jqaR_VOA*OA8gW?) z>#dKYG78Sr+FrJOoS`yYlR+45RuCWTa)}G3t~SH+GqNe4_-&G(XZj(|>5FQICM@D^ zp0bW#PEv@Tont=cxsG5kPOs6(T$-}X z=e4HeBMT}&c5nhDsL8=Yk#ihzlr%{qX}rEHE?421LJuAGmnvd;vnFq=O1h4<8%(2hf;q(cNz}KY{nRId*gga~ZA*;aOLbmS76~tZ_XskrXmi>St1#ql43CPSZp^ z%WzKC&Q}UFeAV0eEg^LWV3RdvlnYl0J%t!a=pSgH9M2x=NHulQ2)5b;@7@2R{jQ-| z@#>bPgme~TqIXG-^ zi91k-ktz(3D!^D8QSB}=f_<0C!&ku>Ms67Xgz9c`=qWp*KIJ(nBH1RqaRF-r*ow&z z?KKE}3VK=+29lv{k{xB~aizc!Xd_E+d7Ut4U(5Luj{%zsZAa%HImzqw))qQvja;C@ z%gErFzYzF0+3(PVC-=Ocv^Lh;`XEpL5Cf&pKvWzGLoYr30EVLLy~mJY+CLO$=&{74 zB`!#!M81nSbMk>HN8w4SiVnESdriI15Yx9HNSOw+!1p@rx3xvDd6}9Nb^WtAl4%myiUH)RLjX?$ zl7G?gjy>3KuU6vuy@6;#t^;AP{r1a|*;evVg%EqWl?k0}Q?U_7-3R zpw%<&?l6I5n$XTRf9moWxZ2ga1k5L^KiuSi-R}dpugBU4 z4G=#VLc2A~aj#%!u?7+;>p%;v2zfoZWZxdtr~Xtt!Fldq94&-6Fw(e~+W>9*MdRA6 z4>~|tY}Y$u>lnCpBTm9Wll{ryI|}D<{rPJ8zU-b{SAIi0avn{pr095FSzNh`q1o+6 zSHb#&aKo^3`}{r+FS0aV(NVJz2B~O)QtBK;Z+#j`{12Lo+Cc!%yecAbi_fr@ri*^2 zsU@i;^+o>ru@~bfSl!pl>u_G0T(wTrzZi`lGRi@Tsbc6V-!;JmBN&Q~_mP9n=VVf8 z$3PP-+@WQ4*1^Nzlfrb;N{mNPlv^F0rJ{&;?Rl6LC3JY|(%N>wx?=)u8*t9<1l zfW80Qk@<{)%6D<8Th|gY(vORw_=uJ~=8K`!Zn(kS*VtJ@yE}SsZqr)A0YDt9f%$ZJ(niqSg z&e-RKR4N3TTGf&W@V~VRzDFRLpaiIO#`zG~JzYmLBQ@B;p2yh8!DTEItf5)TyeSbq zyHo2!4aX=ke11OSH1$h-1$GMj=>^b!6G*-@qMZ8%YPa%39Mo1j^13S_M;jxGG_SVU zIUUQmg26g1N3>)c9$QIJLo*<`OcvUgq~yaANay7HSD?*DhDBQtQ2PFuCK&@!#7 z6%ixKt5*%IHJRO&P3Gcrw`~ETXb6_gz74*k$ez&=ACY>W(bNzOwsCidrqsE6PlSQ} zi%0B$51qOzI|NUHLM=e2zYggRc($&gyB0xDdhq&&P58_e?58g2*3o##ag$lE;8{LS zr7~7n@q@#lU^u_sbm=TM2qE=S-PZmC~5zxP{K$ojjACGd`faeq=H)3M$dl=ySkUT{_P0aYV- zCME9~Me=lACe6AuN7{EgLK08FrRdr%x{bh2NjhWytln-b!i<{Yhm$SU@=`29x^>O% z!Lv?*8^CjZ412EBUC);8d4H<7Rp$e!%ZTP+RUkToP2nwXZ3&4&yb4p$Rf7=nD{BL~ zicRiDTlwdf{0fDQlW{=T?V24qYHF+fEN+Ez7;h!YA8hsfO%ev+P2oYnOiMjpkW?f0 z%L=pS)St&^aI_BwTqhur}nZE5|%g(DxI(IIB?Gn{t&-C^f838T$7W-cJ}3FNMOgHT77 zL3JOfgB#9F5~D=mfS;;l@O0-vPjy*ZOl_0!>2%_tiAExl^w-&TZMzuDWu(Q?O9o&0 zBO#Grtb9O4DwF^#cz><>;`NqVXT7u*H=CrE^R5w)R}S}ZvcKS)pLn?f_pUC<<#qa= z;r_T@g6xK#j^`=AL0mCkS4)G+%bY1y^ZcB&o|;c4Nrb6%u8l4u9Ie|xl;xD&Qq1La zAPhCT;O{?39JsAE#q`s~Qqu9E z1<+3SzUy%R;qFgW#|hBM=TYtq02?cn08^rFdVQJW`TIa8@ z;EaS(INop+g4cS&;ztq9-EUpSIDYT`IxggFjGsL-joqUXPoN6mW4&3uG&-tBB=dSz zU1ez~ZFE4VG>^oDdXY zp;@mYW0GPW**?S*$I7rVEt9ThdC#Lkb4NjSUjVhHn*VV3h)m+?c#R`k(U3g%PGe`& zw1m*|M~(83(aYl9_mF|2ffEB0<+}SpK9>S4dV39@^x;yQdLH*zBGxJi+J+ZQxq3Ox z?Mgxt&rGrPF=a3wCwO$67wyT_^3?cHaH_4ETBnGcrMM7@`>$u5I&w%7MYEniyQbQkV02gQ%(CHU ztkhp+irss5ru@;tccro#`U7`QzF2+m^M;D>-6a%_a9%%*U*(m-_u(cKgiOsojOH5^FF;- zEKo%&@iP4YdiPNGBH)+Y{z*0;avCNeMM~kWapXhi5*3AQ^v`mo0Gxw})BEaIhilJ_ zORQ+G@w8~EH0BA+PTt=zTc`qLoU>Sul=o>eJ~w~n~x)TiufxRll#k}!iGgsD#VOq<560S?`pgarpY0S$ZH6~J*+mq zk7EtRVXDBi!RO1N{iD|Ul_yt?z-Dij81>*}TU;reg3Vk84Y%n!D+NHcj+Y!Jv9v(S z3y-Ymk^|4@8gaU!xY!bI>@O@u`&4*ms)zO+t9%b7>m#1lA{gRhUbLr&;fbb5I$-pp*r_f%yH5B-6A5|B&cC;u`HfhGC;d0HCTrlRd>k8lSTN5UizL{^R8f`VT)(Zn>pzB>B{L%u93@Itk#`I&NS`S{f} zO>^JZMMyQS9;DDpz*%UY&&^xl@Y^IBr@d7a2;-GMX7DranrJTc?SfPn!% zkD(u`(AAuX-vx4t?gKs{Ak?0n}>JYDKuJKg)>FEtOtL+kBf_aah;VvlhD=|(JWK0 zDi|vkl$D0WKu{c11;rY@60XjT2+0+ z2zh}^kZfyJ{n#!q8S;F)^0uq)1Xjc+%7i-!sWi1Al!U&d;c?z_Inw$Xf23!_L;%{) z0hc)!cCON^c!wKT#c5rp(97J_iq)p7^m5n*u)l=Z2~O~#&BtlZ%q%pd10uia%xA;M zoojH6U^{QE^@d*ovs$V)abpk>)P$eZnbGG@q-ZpOw&!;F zw5OMFAObx56@ukVVRKzoppbCwCq&fb^g7fx`r+f=L5=B?QN#6%lLYtdwzKaS9O(!1 z#1@2#)<;A4Iy#4yyMY}(%$%>6BZ}CNLtl3rRues|Bwf(l?fft!ZbqEp1Wjyw-7g)5 zSps_gL@vq@K3`r>N+>ib+z{|F@7t7`R=jh`zvPb8TH4eeUaIE zFF$={UXC&imb&Sm$?R@~{dzKN_Hj4WEF73(i6FFN3@i3bP^4tUiR*k+Et!xr9xm5E zmtsO$4M?SWwk{twhHXDec2629QkEh2tZ43j-8Wo&VS8q_L6@1kbkUz#Y>P2x;7p{w zrsb~ejQ`m~zt~~=RJ*J+l2d39b*TTjalw+vHF~+6IhnXV3=CcEexz0R^D;uzhrfih zLL6ZDNJODh(*Of2=(tl0h<9Djx!5TP%hp^Tb3&4O{4gS5;>3~>n(bMIBtkzu1YZGo zOVmXnofn2~Eh;BPj_oIZLtMQUn_F>^?TF<+&r<5cM^pBZP zT%vA%UvP%wMx4hPPS2~fY$BE3JSaG{=@j$E=|XeN1H*WvrHdBS&#&r}(?ui;&Lea})J5;!!KWl(4S0 z_PD%R3`I4yIOWlEk=stfJ(&-u&TXY93Lily-YXuf_H1OzWT1lKgtSTxNiQedkhFkX zCJD2SDp4#HUX9Og^|rtp4@>VTXgpH(^w_9ROtOcUzy>Vd*kor|JHuI86RnuR;~590mba3;fA95u!*Aj1O6{{&QX>iT- zJ*)Iv);v8-vgfD#QZkigxB;Z(6M{M(veSBX#amqJfm%}JLB!n2n{|v#uR`;DBKjaw zV(BkC3~(|IX)+sH=~o4pyQU*2pyYi$Wj)B1RuC0cbCw>)199{CO_xb=+8}0siqTo? zPzhV^Q?_GShDZl2KviwbeLLltUA&pZ#sWUo+=NmN->g#I%uZz75VPNoVWr=UiTM(M z^0nxflt_d6-DPO*c;=$gyxRS~n-)7gYGe(rK~lq7p1Bx}xw$#_&NX^+>A4|e%gX9R zIG7A;C`T|$#DgVuc6y_st6Wy3(*zR>edGALm489aapMN6Vi1zweyC=WRD+^SbGm_$ zOUR)RL!15d+$yi6WcM&9j^%X9UNqMfu^)(aJ5|GwpBf!8lHRYSx{-;!{M0H#5gwwj z?#t0Kd0XPl1Qd$z82xLv>P^mywX>~c8WebTn4;Ee2*vlQHtNmWk-@g9&IAJ&u748v zp)Yb_rsBKu-}(q*Na!{r3rs&HJr{S?3>4-QPSv42>NYOhVm(9AQ^i3^{%9;e#;2z^ zeYQ=%oxKNXxB(A}1lUh)@H5{xfNzVIXgn{~NTpZv8ogytUxG(5!I#0>tTgY(oYK+OolsbxavzB~~asdjZMIPOb9WAAEu}@ikSq0mX;?d7eu- zDctd;7QQJ(W^+M>i?`~i<^}$RD3?O8bQ8{6wR8dcF$6uS0ARCCw@w4j`^Ggc>xo*O zoh7v3>}me;aQ}08oYA3Xtl80o5haazb1ZDVca63uS=(*aapfJ=^Dse3p3MLX*S2Ae-i61@H5D0cwSWo89qMlnE10Kw6&8!9Mfgo##?X_CIl;(&jSi5Cg; zZaN|7&3(b+WY=m^Zu-tIXy;}IRc+z8U9d#4JQ99tLwf8hGx%ILIn-0Fh=#yyAUmVF7c%e_x+#cm1f3l1jtX!ceugO74GNd5u znGgz;_zAE<^Q0fvVfo$(5|$M;I4$O*?8)D$I?F&U4W?5Vqn(~tWJ`*D?5G#pOM}`S zJl~9b_tjVqox?j|&k>|o@8+}zeLf;XRZ3To4m`b_rKv}CP-BFK*QUEGY0vax;hX8i-uA1e$u<5olGhA zi2EL7VE#G%$ovKd+$YKPiF{<84%X zRb@3n++XiR^m-f^_eLu^6A7qjuGwN0!()Df=onCSZ5r6uXf!sp%rKvbF!1!DR?N|m7H+T3_}RL@V-7h9P`6c>5?%)0oVN_H2>NY)Ki22z zy+OOVtchl*Hu<2kOn)fC1#`$xz~^bppNF=Wek&bQ@YuWkV-C4@2|ET_ z+((8l-yxneKaBN5qF zn0Ks_Pyiu9@kH9&iBz32+ASu!)56k+mjUBT56MVVa@)+UGWM6)(NcXpk|Ys~sSv+! z;EiZv+f>9CGs@>LVTch7czs3!da8!nB@ zvT>bU(vgQSa?T1vwYyp+iC86N+jXtEyJ}fnYNgVgm?|gR3XP65xAZ7@nyv}jkn9f3 z`S0+{I&ihODUPp`@<3wphR-m5Y`@-YC>wK-I?4ZO*A(5;z#v#6JTRsiD|#=XPuTX| zeyNPx9Q`j@69g)O40yg*5wNAetmgm}G}ZcI)=~8`y|R`W^?qt0eiyS9jPM-?_UnV#I1-jI0rOV@FF^PcNg zC|reU?)g`x$ok#8r|DyiUGP_0hDXA)Bj9 zIR^8KDjA`g%JtJ{TAium-!lEwy|#iCc8$xzFdCIuWQH}h!HTJvcD9)N)+(ep^J9~2 z{UFA2XFC1sy@Bv-bhMCSsXmtHydv5H&abyktwN!UPRHIuB;^WC8MEegLL4i0*{deO zT@{2j+6vNU{wjjuju~eMeTFi+rmzrqPx;%S09tHRU{%IR?8W+=m;QO*`;hACPkH(P z8?5bW#{MqPw_AwWsu2m0U1~fj1;et#Gwhi@GCEz_iDG; z%cHo1AML5O8L6ot_Ls>hu^aW|Y*A&qOOq^&N%nFsyG~6^?Y`a}=UtLR%d? zgD}W}6IT#nWF20d6tT}Qj;8fn6O+A(Yn!*69lNzXCw8(^n@A*KdCpQmbzm&BaAl2j zl$kMSs<=Z)>z-4{vU`#{BSsicf8UI+*VW#X*}LLbeAvHq0(<6pvAFFqJ+?7Rkxk92 z7DQglSIzt-o&1S_rYPf4%;k5Vf%TzaFzP=Fk1qJI+PawZ9 zgVY(-vTI!(qJwqr@(9?=i6<~g3Bp1IX5h*6+}w4nkSoTph5m4yM_Z2#2Z2)I{R+$+ zWi+EF@FdPXgwR6rQxz9*jLz5QQTHB{E|3|Vqsr$_nWjf8)ZNwF{*ywSWm>C;ce;$p zil%_>daDp%I=+4icNlbMMV;wIn6Qy)u7ew*EC=;8GxKE(;F+_$|Ef-&%0`kZw)<2c zW}f!y^d{!I$Kb>epX~1@N_W{Vc+b^J$Nf0&gi1ej) zkM-K_eZ2>IoSHm8)`V~d;<6)|g-}NTZ9J4bZ3O|Rz=k+J7jCDQnWs-Z5FNnmKQf$b zIXQ9hJIpJ44Q(vnnE@t!rH?Velr~bZ4%2-&1Fh7S@L|6k@tJIX_2N$i^Pg?=vZk+< z)RM%Z;~^LIdN=&Z)Luvy=8vmDs1I(o)MUdpIViSp7t27*Cr7DZ11mO#0iyIyqYp- zb}6b+x6in{`CdVrN*y*OJ^1q}PmYPO;rvmtaVcX~?5&w3$oSw*3^Nurl;q5j^QSD! z$7Q_LItP13e=ROQ!*(pTL8HLkShFis4IUmw<8trtGA+H9Cyu5;e?ui(^0N&2BYyoaGF8s(6lmIA)X!&axEx6y}WGcDa~y{cHYvz!-o-!C-Y-OXjg# zkBONfQDz!56*u2}kEQQ)2PN4Q$Ot&3k|m!Sn@GH9OBlzkUk18qeyO0M_>D!gzqatU z&?HV3oLM0>nH@f4wx29(PRdQef3tio57za*fC$OU?CyK~y#u-Y-~6A6j;`b#Is*It z10hS}WqxXEDv4%&gVVyqO#4e9LRO(#oUo5GQ)Z*d0F@-~q3^LizbSYWp!$NR$H;dE zE9#RVD~A=7WP#aZ+gF8s*S7noa~rNRK2*ea3B8%hpyvJhQ-mm)JmnM>;h*tm4EUvs z%+@I^)tK;>lt1b&sbAygY2v$X+nuOmJ(`(O)5R5{w9`}|?^H{17J!Rna_$op z2)dCcDRq<{pC-;;TUad!R_Vs!?io$FRl{K_?K4Bnd-^n7wd3nX()|HaIH}*g35?|z z#ja3v!I`et=ttOCYYUBS!Xxl*)*rrFUXVa@*>eOIpyoXm-%_0)y4ZhPqsJ~giSE1z z_0#AG*UYonYZPNztm@Xk6Dp8Y7>F=)yZHX><0aiy|GPVkOcW8D+o_lAxZxxgRd~2G zuxd^~efF+&(%t4;=4)@>?$AfSBrx<@tmv1;er=j{%+D5{uA`}tN~Yr59L_Eo3GNzv2*pI zpl;Co=;QZrsE4nPX}T6-5R7}S_e9x+{M^!~0PDUEcZokZW>qH-O?dr4JRdlhFyU|O zqHP!EG?LRYjmu~apt85_H}d>=MVaH zFykajuUhH4nhigpJtNi1b`3j;f218QRl)84$e9UmWZClt=YL!$lCNq!)NhaV1=KGG zDuTz;Bz_QjJYV_s$7`ZUys)3!YLw`@_seI>qzg(%Fd$-YPAYGb$s`}&&FMu9(!7ns z`7hT%_(U^OhVAUXds~gIL~tq@y=wAK?YpjLAMTv&)fdJTRhzV3@k-YW6?ucA2)bqF z5mBGo4+1cQ?lj0hYu6usCrKN^QSM7)J*yUWOqbc8kzUq((Qu($Ywu%5I5CldGWE^! zEDN?{gq;uG!5k$7Xz4!kGm@ZOdSY~CuZNiCe ze+KVW0D$MCb6|SvZ-6Ij`k2XD-u#F-s8TH&?swXmXnsGlfY&i4p0*|(k1V=%-xrA= zO74yYA1rmLo+C0o9i*knnAJ%+?je!nR1B+DP)>kkDbvtWx(v~=t2s);U^KrImlnjv zfAO-s26kLA-i`h&d%%H;dtGb5OZ{3Pq*eVe)k0D>K3o;!D#bb_pn61hG7c3q~I2CEmYc7(mZs|2|zf zJ+MA5GKk7&J9zLrS-po|Y|C6iL%-p}Ru)FRqn)V1QgsJ*Ja7Dzys+k<2pqn5VjTl@ zV)7AG0h>Z5r?F@zls~{T$4~ME!|8<##N%YBnuri^=X6STfBfAG@MSj-uW%yAljV_n z%#AClkr6eLw-~m+ezoK*LKQU&)WB+bv0rtEb(XG-eUE1t28_Z5)cSZ!;cYCvzj6p4#|sfL(|)$ltTVq|&6e0@L^{Fq znH!zQ3{*Eu?OpBySV3Iy@wiNMlM+%7#Kra;@vJplkADOz2i2Q=``hP#oGVchI0xon z2s!-xjju(G$kDjKOELSb^!pZ5O(3(RH&P6;ll{bwCIoziWg``ajMn7musYMIuot6R zgxvi~YC$1+f-k{yv37J`-dgfH&o{6ukim+J;U?$@U_Q~ymj};uKHu{(VGZqf2}ZN9hg}wY%+LGlKDOqj2|eTZTsr8wDTb&yyMTzixLZv&ksf6m(tP$IUzC@tEdZm0cG(VKl$QEMUzqFUWL$H z`Q|;@=eueu>28{pX)H`MS&G2?WEknL8ecsVDu0w9Iul?9=fvIzu#N1sUEfqoBc)PV zun0>Yv#Hg>@ryMbZ`C`9=?`u=wx2&Q0%l&d=!6>JjL%oz8-dVx7E>|mbp z*99aC#UCMR1jy@5FEL8qB&L}pCrcYa3A#lw8wX?Dy6@IinQfIjkFPZ60KEC{GmwCD zU?Yqo2>36(Nf|V^#Yt$A_0*Ssox2Q?i}_GI$9g+=1&9!fwRjGDbq4I%mxcJ znlANBM!j*TgRWV@S=wxx$BQpI`|@JdBf zx2dmhq#fhf3#(XXjVgml*1!(iqFYY<*L!?ZV56n+x8}w9hf7eO8bS7)x&2J@A18@r zT^N%$TXU4|+6&svd!ft*1Jxbf>wu7y((5OD)q*{w7+i`cWyCLD_)&{8GXG zXX>Y^V4G~JKU9_nIMX--88a!oi;UrP#+01qsHLd7-Ql=AHaEgL^&LX)ceTloGQs87 z5W7tBGgc3AykHf0w&J;&-aQ2@zVs21CKX)4D%BX&It=Y3JooX)x*@a)B@Jyr&*bT#P|QS-3VmJI?D zYL~M81M0F%XT^iBE*4o2J#`wSjx5{oZI@9w@L*p&apHK)f#Z*uD5*hkkBl@IS%)H! z_F4yo3n^|kg_m(=)a_n|sU0b$2(`%ry|90kyY%=_fYaL(o8KMV_&2gb8Kcp_AMYoH zo)*T6b0`;okqB--~|58lJZQG4)HjUlbww=b`>HYNm z{=qr3XYZL=v(~!A;L1s8t7&7-)ah(5eT;q^+M$|fGQ9U22t$4PuGK7R>P%0yPRNyC zoD(ezGMH3u$KYwoyPjLLn~zrv`ZdyJZML9a{Es=4jQJOiiiE175(fP>-Qkd4`sE8& z?5i!&-LWib#LDcB{CXfLq6x+?#iI?Lu?zbtR=C62?@T}ue~#J*xihmyrtH`>Aq-F2 zDB2i8zyOK`N>rh?#JWJe#jFP`}ky%sug@od&K_g>lLdG=co2 z`-TJanlzYbj@QF0Mz~LA)j6MxQX66qzqxD2!ZFf;Gsk#yo|_n=gl*U=)w2UY0q1`J zsu8fsH^IY8S0exy145dKVsBwI!&^Dh!plz<1zEE~G%4bB4Qg=Rl-pGY>C*U#B=Jg3 zzYEL*vBX|Yi?M$jrTCNunT8@|%A$DaVzU++9F@{`ejYW_*V88n^l|L=uaUcZU#fO$ z3RM-Fru{H3J!1?$T1oE9WEL+DepNGim(m#I-%3wFwe3-3%@{0|>}uaOL*$D8-cY(1 zgQX-L_;V(W-^+LBEIm+taVON_Z*iXat3CHbr@+At2mcGxBujAh*fqS-GY6fYd(&8H zV))QA!y{&tG(dkc9?3azp5fNGa^Oj`+1jM4>e#h@q%Cg)d#v zYOCw=Dt4A$L?VtI-9Qq&&l*v4E9LgGwTCRRyX zwY1a12QY&*E;I0_AyJ-F@tj8AYQH4z74TLghsm+mOkxD)F9iyt1V)!{<-$_# z|8W+^fF?^y&qI)@DKNkSU-)x>A^7^~Bs2k+W^Gb9AnXHiQ4rM@dw%)&-BybANPLfq zsN_cmZ!%McfK~uxKaYBcRDFR$;0PHkZW`LZ{bb;jr>MwYSq-?U^cZev zq`L?x6lYIreIDQ5CBD*-6(`zubo*>`8uIhh2&YOJd3D)sfY zBhL$6#g0puecUv*%hdhey6qDyg5<~MBd=hAa7bsDOg^Fgz)@;YXbo?bM08X}FtIhKRz#L?xaziDh$!hmG+uLA#n$uK4;aLU~GOSfy+p4$2k zs+{AJyBLckiyH@abx6`a1kFWsFxr&Y{VthuQ`S)fqCvK?$)97ejS6tKP{KmTHBJW&$6=3>2viR_orj6g%PVECd!>U4I+to<=<0f3GkY zFsU8GL9HphK*Mxct_;hBKWr#7tE5X75VmBL_f9g&zA^!S_3&J;&(RZEnDg8e?+#;v zyHdVJ@A`OY#xZ20Z*3Hw>kQIeBmCO5@8@?P)@s)!^dQ7u`^C|~;}=oV+>gLQ^Y+<2 zXT4m{Uhad0=Rvy&WP~g7 zWrFO-kZ&08GelgrTN^ml(xh{6lavRKeGQW(g;$&=5z%;>o%PkMw>h7DoMl=ic@`)jKPsGE;rfa=vgEF6u@H9F1w@k7D!<&l%1`y6c-19y=mN!%6j6FzV+XFAogQ9MBnc|eIT&dx z)@-j4i*%V-9i=09i^uAFqx1B8C&$z5-h!Kp3(<)iSvyBE{Kg7C?~#X#$Mu<|t@6Xg zI`weaTtCFjuw7Qy{JIW~+90L8;hhVf_sVEGhFLNyvw|2`7}k;^oN&W zT~}DYjcy88)$uIpqLSufPpz^P7#)$eS-rE*i_mJXW#bkWcT-DMHJWDmJi`cO4EQwR zH*LwXvT7glYZ*JmEcZ#?IGgoNS4oS?h|GEA7*6nrnW^ID(@*b67Uu^ZSMJ!|Q89QN|D)kb&b_{(3Ozb;U}?)sx| z#WD4}!kGm+<7ah>VqvcnT(xT%C+SX+GY_lZg;T(=7pnYUh4?)D!+TjXEt}M&npp9> zG^jk}!m9)mdhhK!g{@B$`>Tl71}RV^SG2WAAop$PAk^ZvJ&WztBru#Z z7DldnH{J`xz#P?h3TEC6UmyAyF5WwX4@R4M_UFvNXvzBg$vXwMN20*Qkz!xBBv@P` zOR-xD@w{+H>CtUX$h&RDmsz3@zVbSq1=2Z32>-8Ng2V!5IS7VAn=%)u-rGx}MW$ft zg(b`pY5r_v|`%gy=lG_8B3N>gl?`=-d~j%Nicmdg+43#CU?hOm7xB(PWR6!qUq*^lr82vbhSe$Zc2KEO#0Q zA3}@%S05pXfj>L|OZATm%HRF%M{~s#-IvfkxmCeK+>`U|s3Q(0Z+qEDlaWMrf?Q86 zNw^>VV&ZwcjgrZO4Qm6b zkXz|>9EP)iT<*a!mRZ|lD9h?;S(KY&b}P*_02lO{>_fY zl=@PeRrcb^i1l+sXBZrGWdunD(ty{jilJIyo}9E0ck~neLl2Yx0`KrN>!&`TBoq@| z8OXuhE;{@nzS1^ZwIN0tOx_B#$nJ+VONfy&XOe@>o2^|;T6n&TF~7P9wq#T()JtY9 zy-W$eDOFdY99+6^o0r6VI^wn81yLORZWe-YExGW41kN*dLc&HHjX;PuwYuTJxlYyw zNBhcyA~Rg)akR13?)*LXw_*KXABvo(A*Hcq;6yo!wl|`Sy@=EL=6dWRI_PE-W94S0 zbv%Us`8~ARY_NamzaEf507ifYex|R#dXs|TFNepj=*rAuuq#x}pt05^e_;v7syp~- z!s}k1T}D)_!0c^UF4HHGklR)PZLiCm`l85ipeFek3KN}-uQn+?^rInDiuRGEwQDhL zJr3)u{Supp?j~xq4;6;|!2ol!)4(>@?E30k4E!d%-$@jW`m{OXM5Fj$wY0G7$NJ1f zEt&Gz=J>Fh;pU}>n15FA3{`Vj48hwC6fV1u2hcF%2~LLV8uov*!tcQQIhfe*Kqvr> z&2IAh_PbO!mC%!B19E|3dC!nAcQvfGpYXlx!0(^Lg$Z_e)lq6kT&|d1ijKN6&CHhL(&(@ft5p`BJZ^ z7Dw!#^!J+T>jPy&I9LwBm_8!g$#!&F1hL=Pn?u&d!`8}zSm)hGK5Osn?e1#koBq1D z@iAEty8Oc9<+KM*Pd@pyiC93Ha{ELJM@z#tTAP5h^O6T@M*%N>bTEe9pTw?~-cnuy zJ_9v;hsY?jg|~o0OVT6|qt!-T-BxQ@n)c@niX$3)3Bd|9y{V3uOU|379{sb})NW&2|;Qcvl@{B6t(7K@K&G3W3Gm`V1jTH zMViJSeC>dcczhif{tQW4C*~FC=)mE)?$O-*Va9H2XSy5lIG}ACG;cnvDtPVxQg@X^wn-vkSPSu z{5Q9jSVXLuNm#y9u!sEiB-A1=_veQrh#L^*A`nLQrRLa&_$kq)vuy&)%P?@{R0>b) zvL`;h{!!^z-->e%M8egA#t(Gk)$YHB8jWf%jGb4n8c6A0enAW!l_`k{75aep>m|{K z&)z2a4{_@YfFW#j)))JX>wfZ&E9!V0zRKZi)TuOWXSa?nFNK6I#0Cpp2H}K|a3_jS z+y5O?&zL@#g8@xS3NA51pA0T6#9WGvCnO0FHm4(W)6iLSE1Q1%baORh)vUGF(0u63 zOADi!T)*vhGo60Qb?SlAV?;uR4hgS_@kec9gN3KZIg;&F54K1!z>0O91K%m59Fk^^ zCnprmkCFkc#|B8ujhuVI0)!|c5ax>F3#?W`>bklgx9r?F`cl^N4-LlIAOQ0f z_gDzq0N-X-JiP|9_tQAYSv<3ewn#NGwW$D>*UFafmdOQXPHBYTaI)BY;!scj=N$Ma>el_L_#6^LD1H=F% z{>aA&py@O&P^{kaipW1|5EMJXT}UOdRGUUSpivaaK?*F6gDbF#O^<^m0f7tv5STzV z=cE)CSpX!o5P%bq@U{Q;5(yke8(cKCozpd$(4K@N6azYtF#kcY6h#Dq&}ys5Pgufu zMCnmd0Mqm{*=CklUJYL*k(@(ODfp!nTE=Xl8Lw5dfUk&JN~Si!>R}W_L&GR`%>Uxn z2fYlf-w^yHbVY~+i(Fz?tV09u9cgfjra%QIFqRAtZ4QP*E}B((;!=N3>DR{_aI{?B zVGtXD)FFwYR0;zlI|rkfEGf#a05l}!hDjtemsERhqHH9UoXJ2*e0^T_n{14KR2&-n z=(nuy#*>Z}St(F$&&BKJTHD3O0S6-(sE*&a&n}Ue$C=%ol?0_OwHSimFjr%#USYU* z*Hpntl61%_J+0J*G(h1hhRz|A1$&QWETF+9B)gU}q%1$r`O~eM#sKPOrX%cJ zyq|2?`s=E}KryqXC!aJis>kE5X0p3cBWmtc5p&BSqN=ac2*x3}d4t9hLC~YG$cy)U z{Oau_lymR|rnP||yn+rICa_dTR^i@~^d#3S_ihud-J7FH1so)n*E;+8ft`EU&evp+ zE}G$A{Pe*YH2S^rv7q}bSc$lFF-cSrCF?9Ae+MXueR=zRP_ntVfv1&{jHWJ?tTD$h zDk4RSE*ex}D*&2K3J4ZpR>>G1OjAS~wd}~1juppc6i!#5nc4E^CMFa(FBiS}9Pt_V>8-&h=CK6M_)sOMu3c8q{-#zo}`E zLEp3QQ`I|W0qWjV6RQS9B`xORNg!pE#e2;trJmY2lS-+A3ZZk%%u`G(BK#Sue^^TM z5M73o4{GWtS-}KZr$ERSpk_o?qn$BR^-NZ|uv>z)_e|exY2A?gywF{p!2^oEq*Eia zyL~CoV@o9!cAYYiaI6x4??+bW+V$X!+zBp!^_-$5fsTDnsmk2KBt!r1xPSymEeP29 z)r}c7Fg4uHFz9}9-WyYXw8i#o?}29(M;4!q1m%(@{IG3-YHIi4`bXPMhXl_3H<}`yWAx6O^>DHjLECB*a z#_dsN-z+kXSttD~YP70ERawyzOcTDI>kK=gB)d7L#%x`Gm`|r48;9vK5R{a3MGz zkZL|YJRVFbgJpeRA+3y8w)`5Wl6!Mty>$BRwSEBh++nTwo0o%c7KTQ?M3gGrKt_gCKVs0E}GU ziIY&;3`-|dLaKO~sPRP06%;s(urlGXn-w6_Pf9H5$@amz8vj^iRQKrgv;E0dmBMy; zZdvR{g)OpCCaJ%){v$xO!(?tXMIJ6+++zgZMB62Nk7p=u!}dv7w%P#{zt8z`V)g24 zWU&5xxIQsX)O$X$T-V~!Lr3U3^)`$FI0GnFKtTwATw2(QH;Oy!6p0n3)Gm{y=hScx zkX(U_v6EnuLMFihD$q|N#WaEF;=rZn2wuGL(=djS->#2b1RoApYnD9@dS$9en|o!* zai2Wzz*th%x0~Py>rp%q0o?LKIN8aTvr8KvT0daxDo7*Ox`o#@%523TFgDi44o-Z| ze+-3oKS7D5I>eu0VwT162qcskL^RRA7)E&M{w2pHW}1@fB_sz|=r`D8BbFckZs#~% zDb*o+^^Gyas`OO6I14^Y%Wb}TasIP{6^p0YMThEfvfs?UGrq&m>b(t+PZHVc2xd_Y z2sqh5WD{Sc>zl1}3+t}OD6_PhZ;-KVG5yelCjHJR+QN@om5>7g&N&hh!0VY3N zs>H8i$^dtvzy$ZP5Xa!ExzDNu+jncP5Wp>($*+a%?_AxKsUcegOlG*Ra)@$t-ct_c z8`(af>w=?Wg2k{KYpAzL?CW^#-}WuWw)on88w~=U{jQKu_Ms6^1yZvOgr6rExWlts zX~(ggGPE!lgEK~Y*XQ7?L&RiF3PFkVsZiQJ!2 z*K~Y7)WmUM+{&HMJ@?eMCeVEYqhMTjVhJt9L>p52r0-KqYK{v(Qa zo5sHYQ~Co_@|S_u{CvFf{*4fmC{t;TKq5JIE#cdFo$$~{6=$}-RzD0~M&ftTIj-|C zJkGiZNszcu<|B$v&sRH$ZZQp#-k>*)fQ@C~%i7b8q;Ya?cl@M7ra0w$!3XP6_=vfi zl=nTC#OF}}58jP1R?ZssK#K!Lr3L;=$N38ytX0#CYcQXtu>HQ#3jfhVEv@WJ#ZLmY*L;3UKqwhyUF~5FJ zLOrK+5ro)cRe<;?34eVfUkSr#soC3A(Qv*~>&D`oshjRqECYDs!_>FfZ5Cm25C&#` z7UUnan`_{${`*Gee?{suF8?ZU6-7spVPEXFm+NBc zm7H=FSaJz`&bi=!_Yl{JQ=Ce_jGkXEu#*c~%T1@P+GYs9ix~QVmQ}xTu-)|Of8mPS zaMW&-w@q}Cd%m+($DC%Y5t93wY!vJmqcEi?7SeT1k!Orf93pWKc%OdUU!f)10cic{ zM^I?&Topg=7aYmT1zsaKequ8ISUQn3npgYxK>T9-qSJeYN2EZ9-2KiVy4^ z`=Ir~L(zf#BYepLLI`vn2$E{@_XEQW4JyfU7MG$5mTm5^qZNmUWboNS>x3c%T|_9! zk+jJvMBZ`4&xSZVn`u$L?3{$ashaVvc%7R=4&kjT*DvRm#Ug36O~&mi3NBUGEf$D+=ck+a!vwJK^3Z?kqw*l4-b5>_z z(L#4XiJY+&M?tJ?6j%l&@zjWl!x%W%D$g7Ph?JZex~P%rB%uL$Ac6~oiEL24d*+NY z*h)~wsbU7G5~*Z7UNDl59nfvc@}1tRQMQLhTXs&#`Yhha1UIb(liIJqdO>jb>UY!k zP*6Iw{$YjGm#o4cHl&h21bfS@?VN(62j>J76%iy~U-DnId4dM;9$T84)a-EcS(7~v z&^W; zy8z+7UNNQeth22yr>E^4P6EzS4h^R< zaend#k!_r~$`DhWUoTyBNAhr|*-SV9faHCNCP1#5V|ib(XL$}Ntgw(EuI55@z;;fL z8M{FFfv?Q&0*1xK;2-MiKf{v14AY)O2tpZ1*j);;PMHIR0xl|mnm{A8AWJ#Q6tcgp zXcZix$wDL>4=4QFH?fqW6Wq0!&|WYR0MsC2tN36hl!_voE@m$90XOFf2jXc}z|YQu;m7a6d;4=22Cf9~zQ-=3x;kP$-I@M)U%*#==# zMdk^3WSWx=B!o{C2uUU)tkz}<3ZC(Y43CU_{OB~(Y3lBLhZ}yCYd_D$C0l5-vQs7{ z!OsvszeBX;p{vO-3ZFR&J3}-I}a@`TBl84pPsa*>G1-EO~m_<>vG#iWzD;-^dK zP9X~-0U}WBY2eK>8^A$ldMy$~5+_TGe~cb3E|&?5eX z7L-TkMwiWc4LEyJ0IYQ`UKv{^yMRDapsb~&9aY21r?C2)cx2GbF&Ry1d{m_aI`a_P!(nkZ zpvmCr)E{ibWYwf9?}`gIBm5qf=hso)J?b@6vJW0oHUp$`X+l5-@OZJ6i7X6I?jNuS zCNoX2>-ewE(v*I76}n`I${LD3K?tvE3x&D^9Si<#tR4>laU*T!Sw zZb~#cwpuNu!Zd_Wud5I3SuN?kG#>)fc9?K~6E1aFJscThWXcM=1%zb-Zoj@O~W^_D> zG`)&>0GkVhH?al;y=iY=E|tk4l{DBtfYd&LC7$(Rfe`51(ag5~C-06f=4oRQ%bEA* zo}as06Itf9RN^WfTi!$Q(WVo5og?hHR2LJ-SA(17Iq~emOutn7>0>AtBt>fK2|QeLTxcyR(dng!DB5jVOsU69mRtR`R%_&1LQEiNy_Z z<#LPlBCw>@y{muH1>T@mG^Ihxd1Txqb7-y<2IC4SQi#2LV(7c9Dkq{Kqex*OWz03o z03^E20LFZR;tP*|0iRd8ax1vb{@-W{EH+y|kFG|~(I5E)E4+S?BXiw|i@I1u3i&C` zN;-5Fk2S-|lI!qP!}3%DP|w4gnm_i&o84>(^eJ7irX*|ml$pl%-jn*3n3GD!B)O#g ztSAR-A&Ax90$eArmgTsoGxqYbMEf8s%kcVdnXm2f=huoS2!OI zC2s^#mf5PbfBs56ypDSreO=RI*zx_p@Zv(_jUZf#CH+Y?B(fjjjEYl-+w+cFb0MBo z7$!?h6i-%#^@wxagcIi_G0T#oyxhJ3$h|2EexOY2uC;fN@j1SyLuIhL=<%31Gb*38eR;P^!>r{_3$6tyz<)zs{l zgpN3f3bq@8QaCfqgB_aSdV|;dsX>AhQ<3S(j?r+m=f_!2465NxGCHWG9~TmU`)G7$ zcU;%x35!M+2k%!V9i~;AhnR}0ixw%~r-Di{FPfkPxJ4-Xin~{Suu9I$ z7_$lb&puRQgIsiW6(MmP0*^84N9Bbb4~Ms3Jp=~(WgJ255v^yx>c95*O}V|k+2?=1 zYTC3snjQ2j_c;riM7;?5a%3QLxsj&Y_vK~7Gh^%F?Pa(|)Wh*l(0^^u-y!gw*nf1k zZ;jAi`@w}TX@?&6&-zk{h)W?Q6&wSRMTS<3XGYGPa`=+7(z1)**xbV?cc%kNNuZd6 z?`KOw_9VLf7nxKUL*qFLaWLjI9FFp%%W-*w+bK+e%q|>KTSSVfdy9Xo348 zl^t9nqJj5Yn#AQ->7@}$_p~t3`#+gkTxg}UzPQ%*x^c|g1TgpX-v5a(8veNB|ExAi z*wy(6BZpDgeFF5VGbp;}6`BhqqEkjvD>%bbR^%cRjjoN$kt`*?H=@Bae~N12h8kFc zgX0YU2HK~wQA@4QUh>9F52B1>!em;5&BQ|o#RxEMYIj}=mZTe`zj`@N`5d6P6bE|M z2&S1yhKe1A4IXZ39qa#kt}1*@Fbv2lc0nZETArKz!;6=ABv4-(TJ@OSV09Kdlz?v; zjsBe!Es(v1x~-fHkN@HT(vAGW=i3;a-8W#^Ua!Gj#@#xU$p{e)gkT{6fi!elnZ$wENECSy)~1J; z(fz%cGqq;8Y%-3vgy<^WYoj2-uVN2X*<)Iu(o1v2AH7LqZ>z@l@Q}D9< z#_Pv%d}~cfjr~`*9Eh5qD0%rYxEe1Zq*iBhg;mJllu2mSJh{o*i8LN6gV2ej8e)pY z`oun9zk=0b%B#*fUsfL154_B(I+Rw9NRI}E2!d%C5&vue(qAwm+#MkdPCpIu3j`C{ zL@7seUqr0;hWLLB4(#o_>0L)3@c2c5UT`Z`8>L$lUD=xTIuQtQ)CzjY2ujp4wzR(M zPj-1^fQ1-*aK1>?08X{g8xL^-5 z)`l&WMOS(sWaQLNKv*rJv0YkOj$jWU_onl>&U?fIHbs=kQK=H3hn49hmBv9pe2@qQ zVN{r@NvI77s~@^>lu~2Pp&x{UVIl(T@r*(|3$;^Z@F~Z_2X=9P*(7-J*!prSDUr&U z51?AUlP{^$=EU9!_yYikJ)dJJkq5T6i)4a~t7TcAg_DRzlOZ!0l&FVY80cW8GS>!N zDIG6C%tt=UAw=*e(nG3YZNK-tuNGND%_PQpbY&@O;DkY1`&tr^*8e;^wSIU=fCW*6 z{R_INFd(UfM(B3`)4ub05D@ zb#<`}`S?d7BZQ#&if}1H2zpRxP%z-M8)cR;y>5$fzP|AWRD#JPsB#|Hmre8QksX@_ zz_euxT7fE{*azLBOnXh*Ose}n#~pxa2Iqf!Etp{i0tzeYniy|ZJY9&rJ*~ew?-3?=oCZr4hD^yq#4O+(D!kwUm_#iYj8iqen>vW8=s~g_6;w zL746Yjj6u{r^2gG;$v|jV8yTE#Y7&%(p-Chs|a8rQ(L^&bjz0|o~Uc&qIbi60a%bL z+1%9fT@df^J}exGxp%F1!-{?gu&@-nnZ=Af^BnFe97CK>+&S`j9h=?rV-5l|nF->` zcW^g(9}*?p>hP(bWO$wyIc){q^J!CYY!-OF*<%X$!Me@wHJ(`cGKI$RG%hK582=-{Ci%Gw zloGLn-_8o*^SClC&4=xnB9lF!;){?F42)k5_I0eWlp~RRT(^Vbf==Znx~MOybon#4 z_uAH3L>c+lP7>28x05P{Z&>%a2@;XTl++4y@R)-$;t+4SRFQ?s7K)G~+*V6L4Y@H@ z$QwUXTOw51w%{fMjLea)J0~h4{YT^L4BT|)aCDZ~62VnmWZ&PCNXn~oLezAxr=rrV z@SNNx6r`VCX-p`Zd(B+)?1hJU(YVt6_t`{KZ9UKCIX|&1Un|G&U_!!;*d3-R$Q}aS zrN99xviAO`q~$;61w3ZfP~=H{|4gnP*txbNdK3K{GvU0zBMpoYy^uO#`~J?EF}hDI zk%iM{*dJ1Xq{Afxu0>NTvFM8nqW$wpqU(8zX1Jenkm7Ts_BS*P@XR!0v)pvKR>cy3 z95k(c3tcyY9M$WwV3%SzopypF_QZW#8fyk)Ea6si1=9KglzOeSn6O_rF{kO*IM5C) zr$Nw#58M0XHHKWgoJbW*%QF<1rGx#0`_6VjMEjQJq&!(!P_CYS=KB9l^t0VjyOdOj zI8`*(cnK+M9WV0EvW5q@s%(m~fEb}C2~Y(VlZAU? zqIuali8~rvtIS(amVtv$pB{mCnz`Vk-cHwmpUjm;num<`x%7DF1S9-ebywoTqB|jU zfsmn9bdO7AS9mq;(sQO;zLA#wTj7zOq_E>n3{LLs7oq~a6_gJFBGfKREqkM)!n|?U z`cF7L1pg3}$2bA`bL;4fpM(m^!m$YQKOA7*RACe|#Dofooo;g&qt0zK^Gi7`PgjGSC3>W62|?^I;YTMNi-X0&ANOm8+4ArGiUhvhW_o4)cu` z8aYWat#=~(Ih0@A4a-&D-fDHVA2;)})Xl&ULc)LXG1d@TJU)s@5l~TK+kl^ufr7yP z1P7JwB`Hm6wRTzh=u9Ulp) zD(%VWCsIO(#8w>fuQ}Pj+lJNbd?6*kfc(?E! zprwu&T0!w}ZGLsu^QML!%GIXEpgG*V;XnLNKc3LOZfhgRSQE@H9ldP*8psju{mvW> zLuLHkEMaT{^thPUyLZRhna^t4m|@7S>= z;w192u`|Ldz@;0Ha2NgPENyhwyZ&6}OdrEGu$-OT?kkyRf=Gtp8D!FB7M7)^ywIC` zHx*J!hEP=EjYuAdOaw&=ur%|(;4ds}CpEBja@ZaNp4YSMhZ>*9#oTZv-wvMua+$MO zvg1Gl?zCWm*`h+SYGJzO%`+#zluOa5pwD>Qsi^XX@6vl>Rc=zMV$SZl=1RN8iXRER zLEjl<1I@RF6HH)_s7}MaRy`KSY@C5!)%LpMg?NJa(M9EMLg}aen z@faV9hwic4+-falQ=+M5*>Qa^7YmjQjZzQYIA7n~e};AYDXonjS5Y?<<l%xs{Riz9^L$dfv%9Hc z0hOv(IOD=hZx65C%-EG1W*pVgmTNi8h^mDo_5$5?Lb;P^uO_mt+DKjb=Y~r18I;t| z-ODNLt^cd&??J$5b%($HI6b3)@D6|?o8%y&rHWRiC$~~qdlrC#?K~SP?~qTry`y;K zET3YFDNfbl0h4;O6_}e}is|exJ4>!YFo8MGwGMDN+ECHhrL!?Nk8wph5)c)c<}>k} z!_;cc>AJCNwK;wwA8RqY_B6i+)@`|MM@Hd=&PH8X!+K| z&|th-)s!tv_np}9QaEw_UfE@Nz=E+3UFNWmKptUlU86K;N$vclWne`G(a-v5LeOA;Bg*Y3=scg>iT)xeGD$9I|H?{X6^#}3!%WcT z!cyKlIOd-0?!X660!sxYe017IpZj}Jt?+=;%ty2Wsi;q%7erTr0TsxH5_9}hkN2?n z!b?<>W)al~JjP~?igzqeZ9J4Sck$%JrE~X-DWWnd&L5a4i2r-w;fTRKU-0?DOIO*2 zMTz(-=&}`eA8654-)D~x@xCLs)p9ozO{ zUy16(U0oklQR@RO9}$G+0fmz4dQ0;vvf0|~c73R;c~HKaU^ecE?#zB@|7xM2w86m`&wnXC|dcw{vl1l2ciSUx|^GT)_0dAWe z5)aeAHw#D})|6B(_vA+y^wHNq`a{CIJ6vnK zM4O*PQB$x*hUO7R>GVK-M4D7Y+?8&xrx)WeBi<_4exRr_uaLfzk5e%(0W`q=zN!9p z^JR#H?^XQx>}Tk&-%fVilGlHLs=m^(J(zkOU0l$a?^%rKGDSVl>lbd2%mPY5YQ&@}m$0s>*A->W!7;XCGHV#2f}8J6kKhw{bt3t#vJ*C$Y|?srKhO#-hsHnvDfV z4(b*w53xo9GUMP|mYb{O%p%_YR3VtCgK~? z_gF>V9HE5%L>5uwxFrV4W)`RGqCc7JPO1}voozT$1KWw4JY-O)FjFCUh=ULD^Y|K% zr#9Wi?6dy;T?TKYV|Z?#Klw-LR28oVKPFsACuwAgNq-`Ak0)S28H`cL4(fuJUBtg~ zo>>Y}yIGSjkqRLl>ex)y_uA?8TF!XzLC%tAaj`p(v>~Hw@vn7pi>D$<)>J?P6lL@@ zFu;JqccfX!*>rB)@g3mN#t@!ZvF4=X$CjF#{ZtDu0|+DAeT#Gst8Kq{52*26N^>vj zDv6XbCE8!+7Ad+`a(m*OMqDT%0&$nPOb|UOg)f_Y*3z45jK7hm{ zGG&y#2`Is`2fEx%Bg<3S+{4sfqr#@Eo{ZP4rNc885A`T&4DT){gSO{ZS7OKZI5&=0 zxg8kTnT}@_7WD2NezSLmv#IlEK7tWi6&)m$F>^;E3h3608ao^H-toKiIZ_yEDIW(_ zRo{m#Gt4c<_@m(A(0?Op5Lm!w(+U(6s3_J!TO)=Vl+@ewP@*9c)s{6GAckoINd(otKy7lmb^ zu&z*#9~^3j z#4+RMx)p60|HO25gy_@eq4n-SJ$5CqI;KH_`rgVNswBTnnOrHNL<;@#7q_XXOK~Lf zXNCpAeRkgc69w%W>~`>F@o@aZX|p8fvOL1+D6JFj!?1VD%Um6G~HZh0?LK$zBhTV63gCvUbHVbH>9x_Ga9+ZzOPg4J1D+H^ftFDvn_ z_exboh?wpFxBzC+UG9(C8N=*hKqB2xJ5-+KvvH$lMHu1{YK z2-XnPY(9TJU8`%k&C5%dpno$iZ@kWsyF>S!_d9fNo{Ps9N$v{V-C5y3H@DGTW`Vvn z^#m8^-}F8o9Ipr}`PtfPT?-XidL-8~97hfHdvQ5jwl)}Yy_|2XS$SCH-M{d8c$F9i z_F%ODaaA5p7Bs+2sYLfN!SDUx5Z8XhbcuaQ(vHW;edg>{7}R{YvQ%(6{jwIqEW9R3 zWo4QTwilJKot-M8)%*IQ-4A5u_8tADZ;wvTvnuPJuhquw%pACrkpj1;0n-Mx>VQ}@ zHm7d!aeIf&1)l~XAg3m=wkG@%AI;~qEj1l*`p$PxRRmH;MKjF=Az z*ys_)EE>dDyOf2jQ$5%cF9ucbGY}+>4$}ik)dMms_Ju_#W7SFI|eT zz^`{8l`RBgX+qp_q`gjiW&H{+Sj)K0z$>{`s->(On7iWP`-}`=x%|nLin{52dCyeq z)eJXbq#P<{yorF%AJQc?_3gZuCPcVUJw;>(sO|?YJ(COT&%_EaCd%+$B6%r0Kot%3=^=~uoH$NmNR8C^rTje zZsMcHl0ZIlQ+hYvIV0N*(!%V#<-v7vs1ZT_v&bKU-BuG-DReOKevcH9_b3(F-{>+P zeXlIBSW`M?v9xLc2swVudzr)Mw}0BZeypF1>v2CZ@z?)YN09?;FgS8b9ruqh@#p8? z3?qJaK%nzEInBTWM5R|kUKeaAAUlE$jfFtmMdT}(yib z^V!dzg7AOocN55QnB90T0LqH+&|i&~K9+~ME=n{Gk2s4ULcqZfK&CMV9`Tv$2At?Y z^zv7zjyBljnRk*3tCZLrTst`!TBy@K?+`!P^+#q~=`?((CU5;#bhaRA=&_ix6)90g z0dZOY6SB)R%~Mz1j|HnI_=>L79<7s_Czba{=1VEJ(QcbemdJwiMic#+h5``M4~6do zAfOlvLL?ITmM>6vge|25e%15DFsZiWd^p05^>0;S`dhzhmsFQ{SBLtiIuP@ZII=aqd)Q z4MW>5ku+FlCrFKFn2nVuCsbFeAm0bInE#p8sjU?|_17^g;{8f&3-S*O3jGUSx;Q0J zWOr|WA0+%VPv5?N_u+mb?|Z$sA})dgZSBKGO6Om>-M#R;JiNcQ*$~hlJD(W@7knd2 zNaZM|44Yt!B&}M{tES)JBOIA^VEsn-1oeivcxmhSts+$!LwFAka{Wi@>=wyR>KS{t zw^>WSExUhT>v@pC!`dg-5qj{~s8B9V$U_GfNm(L7<28AW8COR5g&AC#U+&ZL4V}9c zZ%+-LCq=AxhbD=m9e+3tFW(#k?tBoD_Kg*1&CI!YG#8u+BHZ$W@GJArdb&uKxL{v} zNw+2&A;)KaU#|qf3-U?&5C0`Kt(L)W>;CZGuuk^sl30WyvwD=zFf|Z zd*teE;>gCxL|#}>jZ~t+x%)>I=}L(Zf9ch1wPfZixC)WQfJH9LWu*O)HNQh6Dj$Xv zO-SghQ65V^52GJSCc9RAx;tD!(c`vP&#&yo0LxMRf=QR;CVvFpqdB+Z4%R2^k;`9R zP9{cF0N&}}fL|Kc#nujn1(juJ4qT*WO9?DP``1&XO7v9yc;P06a69+dt9c=auAkGQ z$ZkDG>K%VlP)e*!qROC2t_&Vh#jy`ER_dDA`2NX$E_xM{(r07%zY_MpxNKCM;!2Ch zRk_pPq0-Bg7R#w#dwyA;;?Wp!|3UL`=7qZ!Tdvi6dq>m>0CP4JpMsgZ|KlCk6pU(w zBFSjxE(BT%q0C$OSl#(rEpZr;R`phI8{aCryX!8g1dRq63K33!Js`vNf0LH)wiPj{+y9+hoI^pi@=H&=zlnLEq_tFigc|0Bmy+gS z!<~c4>ov=5$g|RJ-PQnnXcFdGTH_HzlF|16arKRjk#51(v2EL)Ol;e>otfCSjSeQ9 z7?VtF+qP}nZ=ZY5xgXwt(7Sg%yH>4QwdzMSm2yggxj+&|J~2<{dnD(l!^Ocz;0CQ= z`yH#s_SNzR4(>07F$lU->!U`}-~CGa&}C{i-_Fc8`%FkaYD9dOj!?fJwSf%9f}y-x z19C5(JpB^^X3V3oGLfu8;;Dar_pgv192w~Z9YEB>b*r#hgZ2F=ur{&mKC_YQPwsl# z4V`YyNh-dvT<7A@(s>mUQDc@XWS#NjzR6;U6rFvv!|qZ|oUf29?x{%Me%c`F<^NyR z@=h2qiEn7#Y)dc2?`s{R3MCzpjX0QTYq`|~Q$A4r4Mpz*y+t`!!Z>*2RroD9Sgy38 zwM@3|bbL;^mF#+Fr#vgMhDEJ%#&eK9qAU3NzDNG119;h&)tqu};eT3SmyiG&URa@1 zvZ;p^3rD8CabZR4pV>$Ig!H9H{RM?mM0e0}9Tvao&V{OV?>!zZszo}SXAhHBR^y>N zKFI#m3L+VXH}|A+-bLYoHCEfsC|n}%$JhPEwDGz-%G@fN6<4n9m~7o$^s@%Tl9ruk zI7xr3s&*baz?yGy7SP&p`3KV*8u{F#@V~ls8Rc01m)~FGnS&cZmcs*0lKGdA@_oxn z@Fda=bqBbOcbJNRwg~JB!9=tk2GR35 zhok_b(SFpmu9dc@hI-|j0{YfRx>qDZPu>-CL$@FWxYS-H{NEEdaw@DC1gi7#@hbB z@k$u{^p^v6KQag8^6htnF4>#nY(T_E~RzFB5r-I1td@EyWok}J{6n)3@f%2 z8&5#h#&fueX%JUfZP~dT6u=?mb9wxe43T!m8D%l~BbI{UZho_ZK^`+PIFU!e z>{=@Ov1O@}ZJRF2zSyNv9ty-bY88+5Xv7F^3~wzl#`xyZ;=tu?sh=9%VHZN^ZrW5@ ztC&B6-p>vGT1*JjLL$|gclQnai$_2MgzQ)D!HsM>I75=`w^%aSVE45%&4(hi3=iW% zjyKPIw@kI8$O5a%rqH3<%k272S2xe`n>zdC^-zh8m3-m62_?5i|}x=Xrec} z`upT%)78fE8jeB*Qp<|Utyhvs+9IdqYA6**d68JqZGff?Y?EHcS!^5e#YN5bBQz)2 zUb!g2fb3SW^<_!91%X9+9)SoM$rxOun1~Wm^26pByl^9o`eU{gtQZK4RTvv&T-o=) z&oDCDDXXN{j9tfpf8IWO^eist8yX=LSuyc9S{vpkfr-x_(wTRalaBLaBk3M@L#Y|`9 zQ{qd|JP6fUY-a#jS0Sb}b>B*HfLwq`coI?I>qDAkFl9%kA}|*Y`AF-7!<=q9Fo@Gc z0lxFhl)Xndb?sP;NG^TdyyhbI74@iIQh}jcPBNER9kPV&#P4!jD3H-AhEp&knqf-8 zC5>EZnJvAVIHJ(H7zIR`J0l?KfkCTSdsa}$p2@bq+i9z9ss`dR)8Bk7vurOs$fNS0 zFQ$z|1J|O1z{=#AtTiOjFh1Xgu6@l+lx?s5E8qqpcTfVdb1q5_=1ffdp2F&px&C5{ zF?R{yfKK+jK*z9|bK#BIK!$Jipa{N+y)#`SIkQA+y3f12WGs)B_;DPdZ+UjT$%%Pj zta#i2sPGuZH;1)Le(Z&+wu-7|{>CN_-^rvgm?ZCJ#-#mhZYm0CEwmkB;x8v(-?1Vs z#+oJ#qvIytm-aOU6s|*$IMYtb>veJ9+fZL_4!3F1=;ls-RJuQ%r-Q0&Q|L zPaS5=@zzl_XDXeDX-*0LdoMIfM4O*!5r?yU|7FR~{Xtxm*ql%FKdO}mc)a=8R2sp% z)u{5MC`oi$PdA-WpPHjWH$p-8f)l2VU5pYkSg`csmNAIauM2(uC!MV7c}f`Xhu_kc zn_LqVFX0p$ToY8X45EQItGSdjf1ZAqLfn1sbj!K%t?CQ2uK#YXir@P6uZd zxXvsL#m!H0S4~b@B2(rA8C(lmf;%axZ;ikLVjQ%S4B7J>Rp-LIJNb?WuMx#1jczmG zsT26#{ubg{(w18^#5;x31?5x&B_Fx=-o6jI1DE%OvYKCV$`j%>A$(LoJt{ZB+9ktH z3+PaCb%|-&fsg52SB;oQ%?$D8g**@EJ|@ntlvE%p-<07f>p1s}M`k3|EXc)|?{ETm zmEPo>9|;91#DQ@2sPld1)8|%f8iIZO&G~;Aqxv5OBX7hKa0sJN6k8_Av7r1c@I5H9 z1J))yiCV)08yrL3Q%2s4hdS%b?PD5|h={@Pt!N)`fXvJRVR*K%I6krkGD-c&^kcGB zYaLCHH05@*qB_0EZuNw8c4t4mSzQjkl=EoMJprVc?$YF{ zBT2@%FsQCYRlB(9?u<*D2Gc? zK>m1urSELst-nvnO-9&)kd4s?Cay6vFp^% zT@t9LQqkUd14(Ks5i@6F<@h;8#S>di^FW2$>$Ck)g2i-cNBk@hBVfh!Z=lXdbikuo3$&jkNtAC_C(b&wv#2&k011 zLHq@QCHGc)N0oVb74Dl_?Uhuz*K*>X8?~{BI1#0|?`TSjF5YGrc5WvY@*z=^nyawX zHOTdrm`qMq{um0x2h+-c^3#yIqqKWJ7EnRP)l*@J0Q-t0Jwr`GJ_pbYlVY#zxBbhe zcW3{wC)=IL?iEiRh~Eu!PX<=!_c`5BBj%;XKs(8XFc<&${WeJ>#UrrF)<2SJj`Pav zCnZ+Z$pCw|{Qq?Gfi&jlKd(?Y?|x}CU?WxPY^lgR1E^s(2|lNgWe9F%7fixDXnk$E z^yvzp>uJKq4Yb#Hn*!(~?$Cw>^2MWgY!J}g+}aoI-n`^?G@s7}pE6;P75o350HvrS zV?0r%)E=Q6N`|OUL8X^jC$4X3c>gg*@9yWQ^m8xz8`wvP(7^ahRo?cCVOYN6G}|45 z_*}3Zz|T;Q%6{Dk?1OZ&>8vEQXXD>`H6T=|=Hl5H+V-GKGfkdA&~NRr6-&{Oc9(mh zfF=pT069&C;y_|m{Jo5KGs?Kh%9m@0dx^jHV6WOu;alzO2%CIh4S6tXUIk~z-O(>1 z-t>GquDdW%I!QJDrFlR)6Rl0vH8tGT9Sp%X_ba@(jQ-Pt>{ztH(23DtWc2_H0UKC8 z%C}EZS2o$CI=MLlO50Pfp1zLwElcQFiq8LNnWz|G5Qu}+zec?YE;qIvh>1#`DqO%R zzK9?XjOp2=t%+~KVNZd81sR^TwgbgYf`pI67Vqxk^>2gWrEpNhkEo^|Uk#MBuGQISPEg0%G835*r zwfwmk^nbzg?~*7+XrbOWj{rs_BBcL$?r@6#X-9^H3c5Tp4jm`FG|^Plr?#am73=?) zsZEWZCbsFNG8opfz=cBzd7;);1DtO-XzC}nc28h{1{NHK#Mwv>U*SPHtV9de^5r=r z=v`lawUv#LAxj$6zq=Pp>&@WF&tefy{R9CSRD)D)B{NuC{Vk|n`6@4-&SMAme;@ll z1bUuio>t>q9`tW&^mLcYg-Vhb4{grzI^edrFjUOawt3;lHfTaO5>qM=HhHi)76TS` zQ@@R{g$8~rye%Cch;35rbyQ5s0b5y$H0Ta0$zSlFck_%-E=6sL3!GUr&F#RgHyjEY z4+ML~v}nMwA~i&L?Z1-NKFxL$z9yQheM|om`Ty%}&<*2)2yAe)hRuOiXF4oSn3{p} zO-_%Wu+oXxj73;VtA6W{MJfpz0Kz$;2dNY>z8muV{F^H+i>H9Gg%a#6zk}eJ*08_K zsYwh2VqKCT2f|auYJ9I_@wtdUk6l=RfpeH!BMMGg6c3aa-jtW?KD19mqwcG8Nm2#0 z_HR^vz=bnBoFwf|{vS3CK*gc@=dubzb6o6(EAUSzn1q{|2xMVPFVRd`-2w+pFw0$m z`$>;!dWaWvZ(-KgW*mU4G3+;6+N9=s|G6*jC4t+|xYx$y%rz4YTRz!fSkqBqo{aYM z4{B@y<CLeJ zBFcZp_<+AKkPnE!=yn0=!0N&(v*>Cb;o4VPB`*#JeOFF91^$55wdqY{vnX#%A3u74 zdHLnFoN?nP_Lim(1l44gp@EJ@i@TyIerO{^(hJi~0Z+rIc`iRTofu%-xXxZ6$YjGk zGV0s+Y(Su~diKP;4VuRw%|jdKn9OOT;^O*e{BAr>Q^db*sekMDgqn`)l2RDCY~M9$ zf}t;toTNB_*@6wPA!Kz)i|k9`SWfqFQ~;>!$0ESuMIh_gaNhhv+4P^R;H0j$c(J;6 z*z^?q%Mw)nRPgADgC9W5;W?i*%@se?!IuPJhLucGI1%lhsmHx;JGD~Ly}c^I65K2Z z-1+q{mixyY-4oz)9j-4)9+~{X6-qQ+-P#8766H}!8WfPnu>DP3x&6o4 zm~1WqU>mtxI=%wQkzBHEaX>}J6<wGt36cWcK_{On_;p>~M42pnzYATgrJ*Y}sTrGhO&R_`0BAfu(IB&WiQK#?wLX&49q zB!)4=#{Dc|lj)ED@BVIM6G(5&k(Fcr}(x+B8o@doxJYaf5@#A>>?|{>PAq54j z&KMpJMS%3tGxB_>K(3{*tnRvH=pHw&3ehX!R|Yfu4uRF%7Tf_7X+y(Fc+BhT!q$h0 zjJ*PK(}pWVv7v`7+MK6IdI z_dKk+gsSY>c|5YZA$Wem%!9#AYB26UdSx*BDD1ZO-bkRW8k_u_SfnjP2*hi(v9b-! z^pyU4daH2)g>c?ef?Xz$khEjzV*scS59w#Nk;+%O{!`xiz#-JUdFdiy-;5wBEuB<4 zuACg2ICaxrL4HX|H+l$D?O$=%v)a1Z8CcCn@O*W6vbR?8Zc$Z@l-EKs{;lTEO?hy* zh(Jypk6~_3V&UoeGLBY=@m@Kgiw6aW&=r?WJ(gA5uZ#s&SgGG%-x1_FXF4bN5L+ut zQDct`tNdwGh&<*lf1&2HqBpQOl1@2OPg4w#c1xk5tsMW%`!!7gBKB)(bG0Rq6yuLz z1{DPjS_YC3rz_!U_v(9XWg}kZ>-wYWbM>{m;#MW~rMVH=^a1lqAoqKqU^(vhs^1x+ z$euuli6e;u+EGA2Bf?>2rH4D^K=u>&8FzlJ>_?6nL!ws0nVB2A-^jz4Kn9PyvQi#@ z7t+vxteQG>apDaDr0hBg&NU8js*FaO)#cXOtS_z#F3N<*@x~t+x_a03{LA%x3^nVu zz*~c@zQ`{T%iNt*v6k{Zal+fhtAsJtlb4(IEo^Ek^+($AxL(Ysf%>7XLO+`24`0`p z#m+3tn%7LH&)qGR7zc9-z$l5S=h}A=j8V)6{-$I77zXLL>?~rcY-9b4{K-cT?l4vl zfEWFwSf_5&p+Jq+9gfWf0lWLiN~h3BE~Pg7s%>Iuy>IzsUC;Sci?jGpm-7^;4l9iN$nU99itQ$uu)5l#B)&MZ?F0cxnBGp`?`tC*ecH0owyLv-gdJu5rv)J2 z42Zj(CM~zSh(rh!Ax@$I5ly7ED(4hQ_wo6g^SFmN;|symx--+|Q`dHowCKRMw=}Gi zxk%*LF35xPx?=0pHD+Mz2=&&GOmDYdB@-XPOEk=M!59 zu0E&JRMG*m6N;?2cx};`)21K(_p`1Qr4?VK!dgzt)esUK2l^t=&z&aXj?c`?>U)&V z?-*opFG0=e&MjY!CHa3esbmtxHsUnXVlPt%p@j>`729rJN6VuO7dR!HLdU+#m2_|O zlKy@?XaR?K(>KjDx?PS^W6j~Yn(Nw%x`+_|OMH#u4INmuyw@>z$71U`+oD-lP(k(a z9SvR4Dv~0=Skhyey33O~%@ewhaC%fQr0&bgJB^_aMr7O3k!~u1xlp%H@XMZ7spjMVnpZRg1hglFN} z?p$`)`H+KU1b^EykILvn7hTCke~RH zoTRn!Z+btnh44R)u^lBk<88zRKM}-_A`j3D{dFp2k7g826xz;EM3irHJXqM*O_+%1 zw(Yq%C@RYDm`HrQIcO2PL*93y1$iU?4G3Qly9yO!NX+?wd}Kfzei#Zq#fLyLi+-A* z2~%cPWomY9pW5>!Nz|~QP9~d9kTG!k42@9K#41%Pjrefd$H9Z}y_Ap!*0ru5H9J`_ zYg=mw2h}5{68aJe^P+zeDWaWh@4CLU!=U__n_^jF#PM@G9#(d|bXK=)*->7|4iiLNYVQ^Mt+QZq7TVZ#~bzu9F!L_uHLi+It1>6h$XA zISU5LaTKEf#vym!A&dFqA61#4Kwfe27o=Mj>sCtJ)EAdpvNzq*$#&UNZZn7%J}{tG zEVsX4g4n}f1Lp+A=w$|FVGbV&rh(D z4WCv)u%>iqH)3$!fY+xpkf+Tl7?&H{!dyvih_+m(ojXIvxCuP&fl7mZnBGi&@9$>T{!nk9P&&s(AfDnf?@Y>oOt67r zT+z+1#sF`qX({OfHbR;dG1V~4O-ri;5CV{51!2*tVTWIZBI!`6k@pmA=xBwoYOI`U zVQMfS)>zWZ$+atovSPoYd|@xjQx1;NiICJ3=D;&E}nAv{q5>S$Iq89%d1OY=ckK~E5HH! zWAXK-Z{2rGzwf-xe$JCwd)Lr?Wyb|@xjBn-KlXm_kA|;XN+)@6_6#0f5N$t~y-O4i zC(YE`ARmS;1(Sv5M*5;8yBNK@vD`Q`|v}lBY@1NORcCimlb(l$+Zp{6> z*o+B4(!Xmf5ltEIqE9GF5X8y(y_j7zqiUC7*N|bE452;(mJ`Y+1(Q}F#_-*ArBFmo zis&q;0h^LP*+Bua24$3F-IZb_%w#4W?DIIc0pgObYXsWEb>I>kn(N1@tN-{(^ywMi znZYB32zvHrf>8QChYO`UN()5P80jH)+-aUQ+`O6=ufE-uIPbaO7ks4-{`qNm%bU{=UDsiP=&xEnm2Ew>!G(Ka(4LWLD3GVPNw6+#_eMuf>HB zAXMpOnpHxEXCn?X9V|<{dxa3M1NI#IA>9paSn$4Dn>Ivcjb9zH`%O3n^hOk`TWHp( zr2{f$fMfr#hEuGYsWw{NGK5=xw?3nY$l8De{G1<(bP|L2`FYQxq4FId$Oq^a`ac^0 z{BcQj7Gfu=t45d#B&;HjV?hxqYvUwD@qc9c!8q-7@3wPHUaRiqE@1Dfe%O?H{+4gA zoBxhFu~B=?2Xz~9sG~kIyHZEwZTaySH^&ur!P>J!-LV{<$x2NdAKI@2={fL#+S1Q4 z4`>Mr+-5iI^0=dGU|Bq!L7{P*nodwf4P2c&%osw(e;ldut@?@-Q#P5McSJ3?r{RloRtE;;vUgag_W!@t6wfN3Y_^%!UL8Py0`h zaHOHPII=z5yvs+cAl;D4W*N^5xRv*mO2=n1c@&g9BOV^Y7OD&>y}E}D-X=^|tl;KK zA%L93933BC&it0hppX|;aMN{=Iqm4#d}Np=`%W0IRq#n8f;TGGJ9%(~(NSja8?EMP zjXc4}pK&`Vg1*W)O4Fq)ANv=DhQW5b*>+%9*%G0G@fl%pMv7vrDinuDZHJZ6X=i@B zvd{Hvu^SQtNVhDS`!?-^$H4+>SzKwQ(H^M^h!E_nBEv-TGYl*BuI2K5mqu-2%tZ6j z8)QVC1xX!N$0Zjpt?xeQaN=;aZv>*(%R@LflIi2#A&~f^Q^+zYdPAeUVjn$%X92@9niF)!mQbXUZRMeDMSxhc4xC3$H1J&ph})Hxv*T*pz};vcSK zD|vBqXK!Uw=_f@dJIlw6tLx~9v!a6i2q|J&eh}u~6V&DZIpFV3Fu^KEx5D8UFK^M4 zj6455%Wl>d8=wfM4UlM@9~2GjUdZKdy0-o|WFLKJ6V{MnNZ>>25H^uvZ(aOJcm8vD}ayc`^4vu)QleUI$?oKGy@@_BVqK>}(lH#YSQEc7qn zhX%cUcJ85KQdCK!Ay+*T@sUA$(i0Kwn#MTK-Zbqzg~1g?jaJvGb2q})uiH&jbZ+)_ zMrBp$M4oB6o!;#2O7C0SH%#<7B`4ktui2_Z=v5ytZ1I3m~JT zk}204kkt+Jt-(=x#vk0+eYg5pxSDqKzj|NQDPy3n=p0B>yA#34?LRbYR$~QR@I_bwQ?YAq9Nk7WqQ?$`ObMo+E*LN0I4Ueti{Tmu$ zTe(a7vv7>KgCa*th2a;^MzJ&)4kAy2nKnxF_mhIf!B(fL{K3y2d}Mvsu&~Oo?s{%T zfwrIS*xE_epf+S7!*3C!?1{b#TV-pTZa&{|7-V5`rPBo8tys|7iZ@Oa+c-;7E73sI z$n=kSgL9w|*$-~w+@?@sSAbK|xd$uT|qPUi?weQ%h!vX63kPwqcrzMg$Hrnut#{)`==FW?69(rs?1N z&K--mfJ|1ahEROFB&5ViAu@JnG(X)c#e%_g_ojZDP~>dy@m^rhd70f$p-qYvwvHB- zY}GE*zz){#q}>CX$qSsewh8S_<;U78E5NOc8oVIXndhxHkjo+MvImF zkl|*TX8?!J^jxJoVFldLVFYn*;|h+ki4%)Tro@P7{`L7h!kz4;IV(K78iOk$KsGSd z?8v9pMFe)T<+px7-k64-jcL9BjZFNS=1Z7U=kxj3B(6xMEub1+$`*G<51uTtf6u#P zb8VGTmmf_dIcslw_4I+;HC4rYf9ZDEyUn0okx02;qiNK!HbFayoL zaRDDPwX$@Hx~TN7dU_b1Yb^ah#%bx2*fnnQZ0gc?=xGxkIf-Aw02!{}gabm@ky3~l zPaYIwNqhxif4^iW)B{KP0kLB^#=wm`E8c1)%s%%At3RLnAN34$hZC==y;u zk^DkB@;mV4HfTSz9l{B_mKC2&cD%xogWG+G*ZtxY^@tCCo>1^>wK(il@<}?s?*?Mb zb1`2_t~q&tJnch@1&14WjnSX_GOn|AB~v~w53fHjlC=StyFp_ctnfWtqC`X>i45Z4 zJ=+V0)@IVNJF}-Ks5CBrW&_T|AqKM!xY~dBx*5`-362m)1VHq;gifc#X05Y}S(7VP zKdP`X5`jdaRT2<&#Cae)jhhO#yA73eEDs2;&0i-U5t-GbebEw_Qi+?u%B;F5N9>%! zomIV_-ZGQyOI}$&#hf`nTBYP+Q5OBFX!ON>@SJ?Vxj4{2S%zkmId%OpTn6u_t!m(= zkYpS??4Bx{tz9gDa@*^^tO=3JLooFeoHJ07@)fs4-awu@WyPr(48&Zm&2lJweT#T< zuhK;R&7?WQN%r5veea|I@XRi2=T`0tn>M{`}JwJBn{8^Hs*rF7pd+{b{7!BmTc_~xvwQblxTUnuv zia;H=wR95r0}yk+!a-VeH5c7{Odpd(2hf(6^UQeZ`V?}wL3Y@XTs_#|h4y@=h5rSc z)DElC8ckLcqOLMKEo~RNao&{fq8LK9GejH3Gj7JlxV3gkm?6ai=J*qs(9-Ys`HA@) z`#J_>9k%&bd`{)z&&n(8U_;0NKI^8e9NObQB|bX{MhL=Bt(m#ir;k8|b`DG=WLWcR(L z3?`B&1zB(3g%zKFc&zYxA_!Mw3ezIQSgh4~ulkh00VqSwI&i5!RQfp?^!ODtAZ#%t zFc_)8ab{HZR#sZy^5m--o#D-_UkT?BsKzRW5fx8VOVN^0XYoOlj2rrUKh0Y30v*pK z^#!NQShuL%`{>mqBKb;cgfD~Kz8h&>K0x5-{wX%6l?N2^%Hj+UjAmB_9rg6|otkzE z8QuCDcDnw-Lx0$(|9W06&L*^UMp$Z?#;~>?@7Atoh_$MUgcQxMXt46Ii2-PYhX{SU zN(wVzCTF=M7+S{Zi>s!q+gjQ@v6W#l@uFz4NUGMWofE#NCzBg4X)W$;Z22?S!A0cW zQ8Xy6-${lDa3ZH>wxX+BwTq$bG4C|0mvj0cg#}x#97GWhNDZ*O)Ojj5y+XC*m3wTx zU2;2j%te!>fJGBg(lv+1G#^Y8cpiKB;?-g~iS>)gIQ2*=e$Z_86&4*FDZP&y{!9&` zprO5Ua!T-1^Rd6>Pe*xWydhAgm1l0=eL89VTUf^>jpD=}1y`XHNVvb3$k9xKOYubx zc|f_BAP$$xK%RN~mU^NzxFSMNFOQVPABjV^L3+Z$q_S-GatZ7|27Fc?4pKMm7PQX1 z3D{U|xPN&$EuwaO`?~vSdY*B2HcEeHu-drfskd57F~N_Db7G*(!}i@m1Z{8DY%{h; z#Dct*t-hwb&b7o@Znc)}BhFd^S9_GevBSi%qck29avi#n2J6Wh_LbfFmeA#uO2UR!aV~%#(ns^0$pDS4a2i#nu52B zgBOIBe-Y>tC<)F?wq%8G*|f`JUxIfs3JCydIi6z69pJTkbfi5%D7gHo9TBQs7IpK6-}(Q`-Y$RORH^YuO)H`ow+m-Qy<6> zdWzFDMW^O{2~CF;{ZYupr0l~W`v3u9zyi0b`ty9X*+JN~`M#O`tEei=cVmzF=jMt4 zBY`}OadC_nUi$sKtYD{Gg#-W&=jxj(Vf;+}r@Ml^5c2`K3I)GMsgBR*7`fia1ANO1 zI5|4kiWEAxo!mgbK*=p*5o5{Gq4+Lfn%#E*2&K`m-Rr}Y&Hu?D^76OX<|~IVyU)#k z)nCs>QlYbD)ux7T3JLABIl)M?=4Jl!9D%5o{Wc_;7y=6@oIax3A06Ac2iXzM$c85hAqh9I9jjQsjc66BL@UOyD zMu$<9r zywTS5-6K{IhrPh8-^#}d&M&{9n_aNW`N`i~_)>VLzjUOjnkDmIlb2t(An#~+J(^Wf zwgyq>9o()VQK9OFrM*{#cC4DrI{wyOX8Hc$!ZcGTlgpf3mK#GW14(msc?8opa=B!! z`;7$t>Q_F4Y4f(P>>gQN=FVaX+u$;6on8ijhgN%;LR=%KkW*gmx}6d2ra##yEkx%j zJk>$WxzB{vVIg(#%jfZa9bMh7_V`rA9dQ5j)^{^@1A@FEWr(z-_CgB55er$Xrf>IB z#*V{hcXWnC{Hn{r$@cnh!b2kmVxX(+g4#U_{#H?0u^74KTeIXs)7 zip^C1r@WnB9`Kht_qFC)VcX1lJYq0p>4;aKacuU!Me+0P7qL6h7z=}PCS_%XJK8>) z_AD45#w~}n`JJ#3x$H~c{M0C0_GPJ6DI0(9-L_i1pdL{)HSPOt?d)JUz4kL$l~|4v zN>HYZEo))~)0^MI&!(rk%O_b!i7XCxn4<5D!6Bc$Mig)%6zLJqC=e_e_v6!pQP`W_ z=dH5)y#>4w8oC4F7nj}5T6~crr~zTEaMMcGUe6Pf)!7@&ylcpzc=q?j?8i z7sQ);lBp!M!0&2S+Pa2x$Z)_1f1K-C$Q__`?2t*T8qBZ~m&v|nCKHO3CQw8p-CQ}0 z7=P5l`MV~fJikve%Wo|E;Gl7UraSoWx(n~}a2i9=XpuRVVl0ZblQ)><`}OH={2gI| z-hsvV*IJ3;=U-E@UuK~=_Zd7=owaU`LV5;)4D3r*GuQJtG=Jg{AY`KLMezVf=Iik!Q+c>?dk^%OMyFTB%|R%o=2% zBXL4=G2DYXTAq~f!{PclBt}K>FCYP@tn{US@ddTs=CkH%7aaPlul&d`6h4_yqF|Np z=*AfHMvMJDE(8xJXjybFKzZe$voD?t3`*K&4-oMnP%zf3_GJKB5yRM`FOAvx81%=_ zE1QhU1Q{v`{0NSUQGVaxEUF?&hbT3*VG9sMBKQNo_?L9ZnW>vtx0m;t_gt~)+#9{- zy{uc4wP7kPL`ibwDvjQEydV8)$jX6{v>42XK3@3X=g)S-OUcNHCo<8UF~@9u}eRGq{j~qIFSTJC4eNCv3;v#OfHzKuT{eU1GQo1143)k0kV}AHG*7l`SP*vNE=1 zQTB@IC2zs52pwZo$)A$B%nk!N@c{ohRl>Kos|bb+tFa6RpE+ly~wOGj)Y>JD(w+zEn}vQauPv%ZfQY+gE2W$f;2smpzT z{^B_2%MrKps8tkpM)B6@)v09&tq1OrZWoMmr20<_prW(F2c%o=4wV};3Y$=b^2-@H z?(U@+Ji(+@s3lFL>HBK+saN1u#RkI$z=cpy#BIS3IOe*7XRa%WH8&njnO;gNeLuK5 z6a+coJa{0Mzn{heXr)v32*=EW(Ae-`;X;yXa=F6%gUCF(IMF_rR?(-%qC+0A{EF(G zuje5(!e%}~DNeRRdTU(N69Q5%EWXY1 zS|zo-l=K~|KNFUym=TUo#R-hvlq!_8^`6LT16cKWp`520Iv=PZSTW3u^(g~Jq}mX8 zP6YsFL@Isil_{SbIX=!s3zh!M*fIJvTsx8Y!n9EVSq!)c_s}yAyFOVA(smxRZIS59 zB5&kV&+1iF+B~sn!cg&<6sQ+%Xs7m|RwBnTBoE{XOM zo1<0GBDKFC&RA9wT?44XgSpcVQ5PjA2JA=DToq z{FEGHA7&<>wx!*R`P!TEg28ipoP406Y8IT^5Zr)NtoF{(mFe0r@WZp+rIy0E?f~?! zZcJYB=w*zU333})V0=O)1w4$D1785dlv6;kUJ|;Bk~0LvvG_KR5xESMt1+A?C9~g{esT23PU1ad|yw-!WvyF?stO zB=K&g-YV4IwYGFB=zyZ+RGpGcDGe*OHHQKF!$K5)jKXfC*=uC$6^#~SJ8-w`jZFCv z&ZSJH_ZBAn8UK0)Cgqd61EYAcgZ$fXH!A79elWxMjm-GV60oz>1Iv zb;2DJv0}V)iv8u162g~HH0}6=A&f0TT1`2$+}x%+KZ@8tacw1J7;3oXBPJ)wlMZ4d z$@j=P0)c=4C5aqPT5cu*qy6hhv#+wtowGwab!OF?W!_TkR+46MK-C+x0oCS}x)a7J z27j$I>|twuCz|*7NwABjLB%(wyJv{uuY^^VxIODcWm&!9+9h0o6<;DQCA9NI1w&oH zsMB5apX|=F#!5Gu%|!0oD}Q1W>%S8mDH;Cgq|d7qLuk0vN~}vIKTz@>(6uue5>`KuK3iA#&dlD z1qG7z@9lPTcE(L}XEZ4k%R?08@IeM-S6)ykA>~o4KBtWCYk!LI^*ZxltF?5u)k0qa zs^uavMueqvQ)DH4VFDI@m?5y$%%USOY~J;Bl#RvuUgPpuyWtwMFvj<{R2xn^zw3;9sMO&+I zJ%F)!{ND zBPPN~zk%?WrkQO2fgv@C_3-*j|Gm571RO?FKOb4Mf@}Z+c|+&8*!k=xtM;eQu<5Qz_^n zAi6ESg>sxMm5BoUT>D(9>P}G221kYk)2jnmRhA~!MBI8yQ$&P3B#7b+W9)uShEi=j z^qi^U^qXMt4S<7sru&uUn(VmDc|dIHm6ZK9Y91b_T54|pjh`a{h)S@MT&QB)r5~7yS9S_rm3CcW#7lY|BM__D30cl$pM=q=D>M&3C4*QK6asO)8OcY>7&6Q_rEn^;W3`_WAJ2bu2I?4YJ&52$=DWYwqjjqiFDNJb zl#;M(%r-3~8PJ73(*6E$Reg=YCBH3P!b~tVSNs)L;Aq@LK>|ANwd;yRW&i$iaj*to zc@;p%qzzafu2q{oIR%CMwYUO?ax4L08B655uF;dGk_OX~_li48cINDC+1~-nRBtF1 z0^Aq#7QkMvCjH)tR2lguY!*qeLm!gc_M=Zn5(cwRG@QQ02D>0+Tda7!+<>jUHj-1% ze)<;?)-W0x(bR+bzLZ%4@^})NMlM+bD}3~H3RhQ%;7BF+EMD5AdGWnZpxw_hx`YQw z4zlON*hDH}u^5yQ)l{?Q<7j9&+{@TfFv!^y&hcd)W@9Uk)1GP4g+wEkLT$h;lnQ-1 zGT1<+>dSmZ>Pa|^+-G0G7^v{4*OGyzFBjetDZQ$%JU6eM+D5tmy5o&~ikN`k!Kk5H zeASmAC-%|+H$!iZ$c`R_j1Km9`6t@sPa09&cm zgb4wO7s(*|dpTLc-SBXtQ0Qo;p%tww6?RM98TM9oWVvfwNc|NPXV2B?jSr}mXGz|6 zu0utstlZj?CT!WPJK}?C5m8AFB@2@<$FZ>OsoPcE6XD_{N*?h}-cMXNC`KVo%PHnr z8rH0lr9$SsRyIEbikX}F)vT53w+I~b+k2m82skYqPFN@kZZEg%mwf!>jn8xwnCIdD ze(}*a?PUCj1fNpgrG-t}?Bu`W6H30=W}Gy2CE!NZB>*}8^GHO0LVphUaPZ`tk1<#* z_lG0NqXp}a2m(4auC$v&1|4|xs}~mCThZn@iv$dWH;lAqKL_P%TV>m39#4tgK}jdhi*$)NjW^Y(q$ zH3qy}zCF8vZTJ=#C~r*2mqt)Ao?{FU!kB@Dw1wd*U;8J^(4A04Pp97Kg%Vj3gef(N zsVF=mOAvw=s33n8PL}Y{;ka^)?;rX0Uv8=Hgz6X(vQb@~T@ z3VD|BJreJ;v`5Ol)bRbaCsKvik?XlapvWeVybdK&rqn;B{!8Cw(-VqONYiqQcb0}W zR)+(j;LLAcxM^h}{nyHB2;@Sbn7OGTItUOr;j;VhN+j7sJKWxPw!gRh&x&2*d3eG1 zYq_>$7@){C*>-rjMG3DV;Jz%?Wg8simnZ6byuCe)HnO=ZfjG_Kb#r5(34({~DTu0D;jb-(0!rqh;=FT{-&Y zXO1#9SAB`x?|M3Q>S-e7vNECe%>)g|B>Uj|6VII2-|j9AJ=alYV%V8HLEjXKCG3f$ z7$zJ7pra^IQ)P2OHgV(EFD~wGohxvj96IgxWA!HMCmk+7K-MJ`G-60yg(n*DAOFMZ zrRxiU3*djq`xaYFaKM%O+VW_&-Q-EPmu9?ad~qcNR%?j z8P*c9qMpni@>5~C#aJ#6t{CM~phO+GTX*CNrBZv@>QzN4li`BA>kwILs;}I=r@j4u z_kDQpm!*tBZ$6925(|mj;tW4mh=wOcF%<{3r*&LuZ1L|9Spq!&bRZeJ7AH$;TbA%S zP+MVReJ)Sa&b9Zomx^WcX^Z}tO!BkRz+e>?icKN16f;ki-mCp7V^96b)d!_RQ?+Ep zbrVFEnj5Nuflz4XxBtB9`JQCf{;naAF9K@K*L>U4$_*d{&i(YgcRHx#Nr#L98QXHWOQ2VSMF3 zPtE&ZHRS!p**A|inC*WHMiLVP!Kgq|o9iq2nsU?MT%A8(|HY~mQ8n5bY;{Ov$?Xdo zds6l@`YslhUrtuSCw-YZ2Y3aY6z5?9%hi{B-@9z$_JmW9eaWI7_4HiMzsohiQaf4T zCHGwK1x_p>B*2jR%Dt^^p5N{M=*|xZ%KJ2O@+@0CX}UGZLUbqvg!~W4P@^JQ;yM1Q zAQPIkUoA`6xK>x#xR5_`{I(C4epc!@Ot|R&FL&;9AJr|Of{OE~R2jABGZE-Umg*}5 zfpGW_8d=h2ikb+huobB(j#gKHLg3Qx|K0j?JW#Ku!j`QrVr&*8pegtT$FtXLc-^5&a0(PcysR8vLF$c$Fm6;MyK(*I>O#Vi_ZJL%LyqBREPlXZGXDWtmZbKSLjU65rL;uR+eTaoGv=qb z3yb&kh2j~c3frZH$MLYaq7Z2-6&?y$mXk~#(MpmZwGBv9@l;XhrKb1cts9K*55K#fu&vYeY)y#%va=cxBkCJ>{ojw<>oUT? zYecD_@#*ct8d>UX#1G8&3RxEqOoR^9UOODbd1oEBuZ@Y+rIk+^7U{{8%l@u_pL~Or z>VW_RnMm^DuTGl&Mt^{P*L zi4mNn-xY}zro>C6pj#f4Z2lyd zG*&r1p1}M~ZxVLyGhVONtp8eTD^uF!sId2dHb6ee#*>$RJ?XsH`opjs{oCbB+dbhMSeCO2p}fV;qkBXaivj3JxH9NvuT;!W zRYC_2nY#Fw1ZDVRAd;LAPb7uR=>|OwMz>Ty`Oah4U0FiagZ9xOCofoHx0lWJ_`_z2 zETub(Y1G}UIC4vgf+DU|Us~ytGk+!4k!EP(A7!hql0`(&>QKfL9_fFnNYprqQe)v( z>^l0AAacfQOA|<`uedNWlGKg(DKQwy>W1Z&5sHaqD&2Q^-5Hn&T5#8pW0pd-u|kaq zmL)`%+}`<{-d<8vs(`+D8B=7*xQOA1h0>j+Qsz~uWT_Yul72<80}!De+3&a&G;Jx8 zmjM7Y)RyzXU~pbM$-XeOvF`oNJKBDcwr*mBq{ckzi!mSUZOX~gu%_y;UyFt}*oVE> z`=`DCy$<=nXmG;kFB!{e`wlOgs7<>PDeHPgcc`1P#)BZANM82k3DaLKx>B_sbU279 z?t14B8+TP8ixU1pK^>|qEI)+;zVkM{v+QTJLjg~kW>}ts1exOA91D4hgn;KD;7Q2yY}b0nk&q`Dg69Ci z6Of?LzdQkX$df5@L_k1t-PT7`hT_vsVSpz90XZPV)n_2&ArvPIOYq1O2yo~WTQ-42 z;8~tv2>_Ew4uYU{s2(1|C?t7fnZEZDSq=|768voD^hI%a`YZy;`FIdHS&hSwdNo-IpC zycP8aS(aFi|67;|-Js-#C*Mm_WU1%&F@*+SaY%4!JYLZH<5R6}>LBH(Zk)6YI`UwblACs!2Inl$*L zC@ywEK9RWS%M;FfvoB#q$!Cp+9Q?N17dhDtozDw{`7W2h*4MXl?fn0%u+K#M3)lT^GB3 zL8XK4l7#4{=a%)U6SmFCaPh<%nlb)3AY|}_il$1hz3w2{|n*t%k za!KJbHzBg*4_s_%?|6|NG5p1Lr+*re8CAWHX0+C9J_w|VyO?KbcymoG6bfDa#mWUG zN2krFeXY!afj}{9TdA(F0*c^Y5BVZe^t1e3?6ywG3iQ-x z+`20#%DE0Ra%mLuHZ#bQK@Ua_txJRg{;NKFZsCA&k5y|8)au!P2o$qc?LTR>n)?+3 zSFHQAbwk8kFIPHni%>BFD{TNYL4XQEzq2jqKklm&&)Zu}y=pu&{+wHn(itpIc><9! zv3NpaNrJA5?hQ58l>Zb72e0|=<=a#Z>d;Mghl3dVEjyQo^ev%i+|Du_plK3JIBe98 zf8KNHa5eg>)zQBZn0nn`{;{Lgje=GXYLg|@bNoF-R)+fOvJST|aKeuF?%dqJkx`cJ z@Lw-`gyZ3L`-?2$n2FKwoG#D6B1_eiuCdV2I-djZHl;gD*_7s7^FeM|;yCWf5EGs) zx#1l${f=p7ljYSttu8zVF7|U_hi!O!N`yEYF;OBC=y^nzLV@7)+7Pii(QN-{`<~9@ zv)x%Lrfns{phO(xE{aNSr1Ei4B2M@`&DQ5!^(c+Ck}P=L*>K5LS2h`O-9o9(Y?w&j zqW}-1hSenkfxy+DKf7SSxW^8}_4YuMStCma+K3m>-}Arz@XrS&`W+wsb=HXe<^Ih6oqoqOc~V+@FDa&7yx;jA-pMJM^gFt<6!eGBBTV3}#>(pd{W z8GV(RY?LB6re(|~AeOcOpIhmTRvxrMDXM0cv6GLB+``t)1eIkXNzq@^(M4r4D?KK( zB~uu><*mX5Ok*d0moD4Gz;+{Rq8r|*VYP`sAgGb0LKg?Ed`<*PU8gj72QdOiy|dC* zUR~`EaY?}9nOI98P1#PM$|*hYdwngRoqECUzJL_nQ;H91n8xwM(oiIE5W}$PM2(1~ zm<&2lQ)T^(iACpq_2MmG_J)jO&RpC=8x4#7!T4_y3~NCr!S&TPFTo||ezWQ}?bNI{ z2B8nzn0CVxPjB1fy4dLprq*eh@}S1z-Bl$7LmDc59QN%d5LvUER7_Oq-=*CF41QWeK_Ag+0Ny#vOL>h95TW8rsdW zlS?;sgp2(?RTyQ~D5uO<{$Rp`r zTpV(H-rxBCLv3n9c*wNdPPJNW_q)B}@u5gOWlIwmX+2GWa+_&)EEc_Gg1N((6W$Gyq z3>#7v>S*^Kz4iU2>-!fH`AKua?^Zk?h{S)>hRBi%L_pqZ8ZRE@<{?l(4422_y=mj> zC4b9L!oDvhS(aEx+%5!oNZ-dy$)=>3_arqwk5U01GRczUhSy)n5~j}!KO(Z^^#?8n zoNtxcRC{ea!Cg^PQ#MwzknpK+ju730lM*)xFQlYBrM3#`zv$m|$}q95E{M7S7SR_k z!=?%f98D;a(SZ2JE-oh2mv(%BSb705;(kwKCXRKcTw;2<3>&u474(03sfxJ@32mXc zfl`H%WmD{ofSHgnLHvIRp}^}9{vtT&D}q4(BZR-DsuM;gg&fOpfmk&1d?XaQZ_|6r zcjkkGRz^c09|ZDx1M;azD>FC|IPE{H&j&_&RhVUjbxDczNIlPWFoc)E584O-L8IOR zI=#+QK0fjMe}UBcDF46-m)?7CIF$I`>T>J)Z9DhfVPZ@_ZCL9Fse$^Kvu+usH<<2< zC)w%2P?SVgG^sDCi|?jnnN`2a-Ril1(?`qPYP6Ye9V1VgKf+vI_JTJUJu=C#fFem? zv*_0`(clG}-@A7}-Yvv0fBCO;7N) z@%A$F;S@=lS%z`4EaT^SlotRHfP)Ojr&0y*L@Fdc19V6gDWU zfRO3|jR9aoY>?gX)0(@`z2{u&N-@%F&m6!A^zJ%!00TWxyMF8^&y@pce%`1zoDpV| z-R@1~V_4M!|23bUb)i=Yrz3y2{13@6f4kQkuC-Z>XqnxiqlvFw zKL4VfDx4mTJI8T8N$Z~S`ok8Kd={r`dL0EC>&w@*cXVF1_1)#)_x3oBKW(15apbVK zx9oDB5RJqI_aeL1;5O;tJ^#1r*86%}9<9CJLty%xC!YCvm-`~OFJ)Phzej2;-f7|m zAs8{FCeqp7IbrjAcdzTcUaHs9ald=u`A|6dn|5c)vQ%t@w`>x1vn(}Mb#}PC^R~Xz zyVmAX5L3LfBvx4XeCi?|l0`%yODy|Xj3Vacv@gjGuR$P7bGN>`PoY!wzrc8=$laW;@|&6Po2YakrDbj=AiWWzHTe+n4n0U$k&qU+Q#qAxb01uLT znOd71zMcu8!yBtQJDmfMEGY$eC>A5!B^3SK6Iqha*J9f(cHYa068c>uOQoQxJ*y#b zU?9*JYt?~)>>%vrQ6K;FXsFXKHc-0b7@oJ|gh^==!by`f(U7%<05DX|zti3WXX*?&d-t#Cj=$05w&%onDvcgzX>R(Dv2 z&5e}-=K!`WrO6VOlvX;(DFrKO&f#khT62aXH@pEzmeQfav5QKj;3U7Z#4zli;xw^9 za>G*!@K8#7#jXMJ0|KcY{LWIo2W`d5pgpG{pdm0Y5l~|f8JIoSq%I19W7fRTU@%*5 zU`RNffJ6%ic$x*gKsMy3jMC&niWmhTpdgU|9RD-P^Z$+}qksA2`17;gjhN(cP)vvQ z#+Z+FbU6J6mg6!MMTs>@3M4^7VARo|+-~OWR+DdEo9oYz2XDp`p`F_%T3m7$x?yK5 z8b5qU!*@IOImu`&(G?X+bWy6SE<>Trui3t4*<(ckrSd}!XFE(yR`b3+ZJshzHL|Ex zmzll}1pM>Xy|HxvCdgH}FIsi^A#m>OC!g8ACuLcZKT+z!-Tkg1M9P1lv(r0qphm;P z-S8wAGki@-VTh~D`HcfkmZSq9WLau%s_JldxaR!)-d!&gR#V@V&bYHAi|SD9oRYiY z^+cAsyW$l;Cix~IcOOBnd0j%H zJ2Tzy@~C}Jrm*42c8@0qK{`u zdEC|p(xwZMF1>{(41S(++WDaXFl*O3gga*1M?*kO1PXg0)ofX-YrrBf;k}nCfSx$s zZZ!Qi#&g5tfNLfoQ7yMLp$<|IA|mC|19G>CAa=Mz!N-7s|NM)ISwe)1sEohju0!}B ze_uG5JR=rQWLlIYjYWo_be{tSWw2XJNdWoHv1sBWz%p+JDeBAC)edBV;fGF|UsqOD z{%{}^yC9xq(pDwZh~(mT_#wk0-|c9vmQF|e!(g3q)gzwuTU*P~ORJ+PP*Y(I@J#%s zZ&uyfF9=bac9I*!J#SFAkJ>*NrSmxq(UqNz#giq_i^25=u(jpYkl> z*}=x?bAd_an3 zheBwhD0(Qm9*H8uVSzKndW8C=NPA*?=sP4|MtP}iF*;wjzojbbnkii7vc%z00C{8# z$D#tFzu~ee!GdD>iFFcqJAz!PXoN^6)DHTWAc2kmgbw}Avpfq4!0{X#OvV#m)rm3U!6g`$ENh`spf|)`9xCoQn z7)>TW0zAKgX5hY0Pno_Y9~=(5^p2BZjD9E-PL7Gh5+t%Lr9TRp&(mp<#2Jm2X|ykx zO*&q$qy9@%#7Ch>coh?4+RG}-<{EVR>vrsQ3Ua14pVZkQMG?SmHGyioX<1<1#@oOB z_K9RZ^7clV<1TsNvvzlIVknx5if1z!k~GOJhmp`d>(<;K?hP5VHhK>Mi7dJHL!Kr1 zkuSQlG_}YHEUccl0 zr2{7UWwvN|xV5KHrJzvD5OjX$>pzZw!$BN((l2T$KnG2r$mgIfUF*0R zjtYw7j?~eH%k_HWlxQqr_5~s!o=gIkOYJ5Z_b%{VRLnSz${@m|)6u|e(gTiVKh^6f z4@FU@I6XmAJR$NRY~e>lsmyBp))NR#-TbDbwLcB?_;YVN*Of0l z#fEq|blqpqFaEec$*RdxIs(1sh9@2@40N(|+@%jZAB>8j!!t5dsTZDFQc=;JrRIjp z_Kr^Xb=%*+>y^?+yLW2Hh=$jd7B$^?F$zIH_GN014JTg`x5T~x3>Vix?VbIMjSH?!Ws9CD(cvMa~rg#vh^xP1CkmDje zi~miiJQLn-BpCZb3dSV$*J#wEsGi|aATaau=Wbfr)7;Sht|5>w0>!M2`PQwK(-0^b zfkV!{WrPmuM@86VZFO1M11^84G8|0^gozieP0~W1UWhZ3s|$-UI((xk0_b%#h$WIB znPgK(aab5-6lJcq+7^vPqgS#NzpB55ksUh8Vff`QTf(1z_cMWZPMRXYup!kvlZamS z>B^f>LPhN}h!DUnOKD{(ozDSyTN)#*W5r-4Cre6smW(FLtGilViXAPq z&2EH3$;{Mc(CAX`Ws11;DnKzEn=ie>py(q#B^39OG-pTa6m&5Dy1ID zhz#CTnrMh$%DD|LK8~fFRCOZ_N@$9e;fIN76IaHUvWI0D;xfulC9{!6X^j&8jz#ap z_>f=+l7iHvamBDxB!$=>jb~7jUU7U3Oh!EzKBOiR4hCm_{`|scd+*KCS{m#K6uM3g zc09EH^-~1Uh1*zt?N|W$%AqYy&-+8M+I{UF5Q`_fPNKv+M|g!GT7uB$l#x<0r|e9@IcfQ&q5Y0N+_U;qnzP`a|&xq@=XMVMy`tcY6|7 z%8+HLrJ=H|wZnPM&Na&hO!)q)V-{F-IxwFD#H~t%G7Im>iDEuv3Ef%R)9T95yQNAC z9V0nuzz-5|J|Of(RJ8H6KBEi|P{@4X^Z0&ib2?v+S{wA74Llx>u@@rClDurU35D%B zDOQF>t&|uOZV5^I&SeIf=$1cCA_!9bSw=v*HPp@J6tiS?6C)3DjIR&E^9tlJO?>cy zl(RiKnZz-|Sd?TT${?9?5|wTL#xOD&^k8^%O*9k=&HQ5J0_^}%#r5w%ud2{>>OjX! z>wjM(;BXLQzXml49#AGdd3IU3^&WpHYW4ZUAjzP(e5sH8^iFBb#>=6fE6c6m(9zB8 z`k(il@%>9Te^g}d-TjFW9DDAfLrKE)i9Zyxp#CC-=YK{I33~jlsb8+Vb?yFaT&ufx z5tugnuTO8?cf>nnx`S13MbtiI=Z<$s3N(KzEkXkyfXw;lwRjif?$dO zRpnMdQKaB@Em%@|=nt;^n~i#ZM{DQl8{S#^b;H>Xqk&1>on*-yl-%&}c7?v<)+I^# zS8%(_u<$UuGN%=CI-@S-fy|o3)K?NsWzG9U(96!H(KL>aa@=~SlEDcz)Bv_W@mqUsqmibzi zcDK3|@6Hsegh*sSASxUHR*M1DRolPXv~AD53`!kZ$s_{A^%+}-_0T9S-(;cd)Sw4M>)^md;NYpZ9z*c(SJ4D}h>q4x;ds89VOT=2HeorS z@J$6@^reFic0K$a8&JY+kV&KJhCa)tt8h-9g4AiLqEea5=n$MVGj zFDEBU$t3$&LPyM#0zBZM!<7`|QrblCL}i7Q^?Uq>?*90m^~KbMKZEkw>0`{2B!oAj zJ4@Nfg`x#TtVl_z%0(oy$&3>poUloIRX1yrjO^m`UEY2!`EjC_joc~8oUM&qc;sqJ zPExb=7oUFuS!${d2ZOg%YM<`;eJT3CtZ^%n$9 zy%dfyqZ0`R=qM5l9Z~~aUg!U;e{JaxeI=LHuDS?x3muMWNop73{4FcK9AQo zaiEeV6b&yFOa7+4BSn_f3>_{(FDZ9Io~4G$wtemHYX?$*hm1Q*vP)fZg*>0xEMHgi z$+IMP_sXZ8Y~&1mUuHFhHXg>>)v&6Mo#e2{?<~p3zEF9KD=()yYQ6ErNt6Fm`N*A5 znZjE{?tUo1!_cPcP&gEt`Q`HqpUb}%t)zxPZUhF(8>o$=hCo3Gpc6tn09RS9mKA&3 z+?kP!u$r>EC1A&7=#ZKsNnp1aQ4S_=C>;3*gxq>xF#64oqjf*2u}K%wxe=$$tAV8c zR-N8(ozEW;9z{O;dXl@@8|qlG_1#C}h192&?VkwXNol2f7)mF?#Y&&)LIlB(`U;=N zH;~EF{VPK;=E8I|JW(f8Ym<{(mQXajHmB#>?eE?BYO!O`+s|d(S(4qVFBT`cWhqxu zT4ifNVKzUxt690#6yBg)XII1OKXlUUvg*2qx7s|xW29(!(immnlTBnLKRBg9?&_8ERzALUmgm_4@RP*sCZ3v<=!@@^N7u>@7&QFa%gSrUj*dQ@UUqqG+gT9jVrn6 zvVUW3nak()9=B!9vQ7K9XZxr2i5K7hR5Za{CJ!C123B(HNl1Vpja99!ZJk%{`e4~R z`=>|h*V-)_9)2iPWOMnDB`I`xPwr%Si6D#gX15rFn-1s7)Ht+io^n%pOI7XKoo$}+ zOj2~i6JNAa-?zN_rWGm}0sIg{uql;;&M&LCJFkS(;EV2&>7!ktFO$Boc4v z_2dqY;dgiffwlYFO>gL#^Xu3IyqyR1OpfCKi7a1cBZx-*CvAKGUM)fG0GzXOkf1F$=JFTH~qmJ$d-ZI!Lv8wgF>@!p-AORv56YdHF%d!CFX_$xY`nbGi6 zCrjd;r6Ki|d-t@pU$XC`f%Cp)3mskxMum_i`K%~L0l|~AqUWt9gMaf|x0k6gXS4@hG>fLMxwD#VzKyJ9E6|knxN}YrD~j4=tuW8y2zp5< z5*J7wDdc`Bd-c<2=AYLe#zB*zGz6y2`RlXWcDpWgdIJy-?og^?D|h8X$|pfUP+Mth z^#(#G4OFsp>?QX<6OJ(#qdZILn9eF%1u`sg$g)&lxp!}S=f!(JTs~kz_U9r?UGpk` zx42^NEa7iOp$dp}fF-TH`-3diw~Y9D)6R|&tVWhfTflnhY5dR!d01#Lk(U^1>F_4JV>L7&b; zFp4C}ap7p(9E~N?-IubCOH4|B*9l!Hm+m&{^>nPvVszTAM)%g8yRS|#h6!knb8cx3a6ll9MlwPZ)>}B-5YnlJP^lDler6l^X5MJ?ABe*i#k1l z^a*z{m+*68nzo)o29U))vgv|rgvUKv*kG$&fg{R5g@YLGm@O4CR!)vJA*WTWF z`Hl~kuNf%w7QeHET#NCbfyK@(oLZSp29VF4CG7mEAa~NP`IEkiD%{nib@wDsKK1UOGMXFS{=rqNH4_1~ z_7M$N4S{}x!1Os!Zusx!y`y9C1Qgurq>uO`3J*SdL__D^ZTrS<`e>OO{dw#Rhc1!? zCNctaaW-~%b3^sr0Dw{PBxCUhqaYSf0%UcP$P#|SDL?f`E`G?$gHG#dn(S<zf%;c&oT&2{CX)mP!p8BH@bu%@z$$y0auFNrjFHuChx%Ta9|} zmbV=hg`?5^3FL-X-!kHx%{x1WqolM-_gV4&;(sqjnd+(kcw1_{_r=JGZ=u-UyWP-sIhgR!~Erw-9JKWx@33Ar1fB zwyT2{7E)O@cVq!F>uFG3ZF~Lmr*E8=MJ@&pRayN09w~x4LOKqZER{9wdP#{h^iezdk?L0wnFSd8M?|=mKGf{nT=UNAfUWe;q zdBb(+G{L%GZ6_6*nn52sxH$SZDdczT;NGtZJ*n;d?Ejq)tD)K~6n>lm1pC6tsFF(rge zDv4M69H{8&m5VGHOqN$sQd*@?>Ox-rqlDjCLiHJSv~&A=OKOT19D5K&!>g*Rf2YF} znjnxRanQR0{d6tV-MkCLda^C#^71(OQF=yB)NrCH|5=T`<8>&>inp1qFY=Mh*021? zRDQj}-%AwWVOUdjBp3?K{Ob9I&*oQyR!T#lX9V(Jp?a=ME1@CKrwAN!&f+1Jl~teY z>+rXPBk}aL1)PS^BmqVZtM%>L+jdYvK^SJtASW1pd0Dy5HfvA2hfXHhmSmDOCs{Tf z7$Us^WZ6ZL#fjF_z-l%Co5=vm?PjoZSNjscB;SNOGS0+-Yr{K^_Ci1$Ir-*lolgHm zG|rwIi!%VVF|?^VZZ%R*zxS6}R~J&3R>W8tcm4 zzJTZ0EvpA+G`y3qeE4N|AbMU$r!OPRYN@CH62|x`KLH7p#CKm?o9l|5AKv|bspHUF z&&%&DNo1e^u7Zi0LIlS}$+C3F^gE`RWn`%oYnCu)rTe1*06k50?0kP|of;U9oIJ}$ z(^b!hV$2kYED7z&EO3f#i9kr?QxFqp3q94L#581#DeWpLl3N@HK}`AKp!j?GdnsTM zDl1kdG>huPFctcT4{R0;(&BZ+MM~v2!`hLh^GdH}B`cq@zM_f|SsFg1CK?KdW`419 z!82;i39Swd0qLMXLqbDfP#|#9?;n2A=?P79`$BZa9V7AF5?Oc*dYY@Sn;z%3Y@7Y< zw@)OC>3GxWb1H_`HZ3Lz;t+2jWDbPl<9PstKoY5qJhek+?0pI+l*m=jW;KDD3M*4n zX-n+b-SLJm=z9!6DnM~$N4~`AxXbSUN2fb-X&@98HuZ9=iL;sYpZKEQ^ESPfax>IE z0}p|z*FUjx$6nWkE?+Ris#MrHeC~eZC%ny#RRNdRcgEJYmVQ~RrL!+lKJ}_c-s<#) zr*w(|9*Vt#qtpla2{|H5Esd3(UT<*T#?`kEm=kP7mS`F-;32$4xMzteoW&}yI5q-V zVwp$d6uGc@z{(_aPb4|` zYv~?nR-3<^@!^qE#SNe*3r&wQXCX_{a~bt33}D(arqB@nekiRe_;+&Lg=aqn@CQDbJbT-kyY`eS5{kO_Gl4xL zrYCTatEOpsWFo;D5=kcIs)w;AK`}wUE1WQ*7tv(Ub2^&rG@JE%0MCBzaRpW}Fxi^a zTRK`-JEGYX*rP98zQ7wuEDVOD6{voSB!Jaybk>yXm#lqi{-dS#vp+pQ{6H}7a`^!md>OR}7+MYP`aNOxrs zf~NY)gi%ke*}1oK8PCRi3`epg&(S0eDaa5!&vTF`03rNKrTRed3`?*ymn4A@qLb!X z2q+Rl7H}*{x^}&PcUwt<_VBPkmh@mD&l8IgS;9|riY1rbEK7NiC7h%e+TV<^-~rIl zRNJmKOB)KUN2xrDG762lMP{q@7LH|$u2L9m5tv+k&4)B7K94=9^mlo^a?H9}67vxx z2O3Iq2UW>&JPP;$5-baNE+vJU?P!Z@ zk*4UOZePHdNT!rFK`_bvrl4CMIeH}3gG{3qBPh36F7rhig?+qrf@J6*}x=|9V`!70unj`^0cTGLZ0JE zBtKe$gmZR|XZiof-g|(_QCw@o)ww6{Y*vnli~!jt+7>1V0Rkitz8LPsTx_thu>lE1 z!U#nK7!1ZXIorm714$r}e0^>BxHiUMWP*gUwAwg1b^8D6>1x&V_UumRnN2m%1KQo` zsyg*n==0V&bq)<#Go|R5Kr*FAZl@rN{#e!Ihqr84ySYM93l>LYN!94(a8I=QM3tiu zSjkdWR_>KJdPyP6l2y1;+cXcLjEXpx*|T%gsHh(@dv1i zC1c};>ONeJ3Z(&#rf8N18Us&lV62P-b5w)*%MWZffI6`E^dV&K3=Qoec~ulYg>`d| zl?rK^sxKLA2h2aSvmF8r?~`%v2WxWEf`CKsTLL6OU_cR= za>mm01-I+AcrrT;ZpgTc0CLBJ31s~){#Ws&w0O&g(C%spJZi3_!alI4x+tmTdlE70-6hJLAbzwtprz}g7r2I6?)64oIOZeEA zGB#Ei;qNR%?cTL%%{Zqpn=#``uCu{EmZ8~3T2mB7)?`>W&G4!MG+EYUh0!Qh0Tjzp z3&fuUXcp4?Ux|(a#53+TkPCXQAa6mkEEaP#L`* zOa@9Zh>;QmWsuYJXah7{Vu@bsv%Di1O^6y3A2`sa&g=`NdezVWwWe} zo}??96UR1!R3d%J2S-W2sYa66LcKq9PUv`=R+|8zTUwhNm#dmKaerq7#1bi>C(AW9 zc}zz(FUKO~3+d8=zyZJ8r3nJtDM|9XUN@g*D7vk_-YfXLo;mOTYkNyqIHucGAkk{5 z^F-VNbK5&lFJ3z^qvLF=?8ObHHp35#cXs5+ki38vf%)f&LukvRaT_S(JUd;A&31=nCP5`h#DhN3xrJwHCJE$ubORZ3+OM zrEdSr6AKqPFub-^=m8!CYMH80ORNO1T#T%iB}tO+&hpIiYFL)6$}z;8Vdy=(USI8u zWvN=gkI;G#JtuUm*Xy|_5>K8KOQd@rC^&!%zDMQAQfoF6k6!ielZzg6pn6gTL7>-m zP9Px&3@HR!&RFPacKd(8a{Q9+NIa;!D_Ku>0i~b*dPU}LC6QT$@+#H3qtI24lIcTf z0Ng1l1$bJR)6^LJuA*v<@Qy_+mIRWb_Re{NYm*eEdo)3JJ(i_)>ygjvN;d_4@K}%k z?29&?gdyc6;B$jIpZK$Pp1R?hTKBga?ZITjZlCvsbXNJAl`L6xd0WL6)9OrXg~jrd zci|n2B!v@KJcPG3jIpUWW0A1%NK*!HH~^2us$>o~CKvt)UcVC<_f@wUBn1g=LtISU zElkd;cw3EUxYCR8!QV)Bfd_DART#E< zLCdWK-cdKa;yX{CECK;|m)P&~{WKa+eLWV>k)?7in6``2*l5svf@JBSNv+v1v@AWj zfRLpk#)v#p90KJYCKXpZd5R!VMFb|Cw&+k*qi@q_W{zq`qBDGM45bCSw=@L2Kvtw5 z|LgZR-%~|#N~-#>nISJ7kb-hXVZurID-*`HJe-vjZ(5Q;HY0(oECU7g$*37u5Oazp z1!%_f00FYB9&ka@01!nEjBN>aOHyXZyH789up|Ko;lohTW7+y=WR*G-hKAQ)yok^g zihh9;By{H*3%iRHbTjw{!Wz5Ifs|eIC2#y-@);xSu2~l*OD}5(HkKCs*{V<5MecPj z>~62fRr!&E^DLd%T(Bjj1`ud|qR_$S_@E_;S%6TLc4Q5G*B5p+{KJluIEGhWa_URb zX8ze>XlI~F{%In(p%Y?v5r>Gj+=nTDZNvR?F(AIroeO>VlS~Nv&Dk4Udqe zvM?ou>=7t+pCULC1O^2HI@vUR1zTHPv@}-Sp}0fPAVrG16WoJS99l|oDQ<=05{hdm zP6_U`6bTN+io3fPy?MXy-XD}MKXOsH`k$3H=Ev7eq($GKyLmMAT6U_`H8vFHd?b11TGt&@CiOLtLf%=Up(1kG z#xJZKo&J4qz`(Dgj77Id#1v6$-)4R;o>}|rFidbNh#3+dOZV!44zZ#3+zQ&920RbFJIDbN zMPTp8-gQLAC0M&CL-=72kScZaT4g{_&s%tKaKXD((>EOBFnzP|NT4sxz{%o1f;Qh^ zVbps4wP$^INo@I;B$(FJl`xrxtv+eBJqCi1?A-DmkuouX=wZuP?Y`l zmqc~CFBPnWnuS?RyN#l-g-J?RWH=WX*NpKS&16;r<+dAE0epN+Pd~-$dlbdgl*EV~ zkyg?r&0A#|&VbMY0w z3V$C+0aqnTnJGVZ3lI6XA|sg&;(`NOUkx@8_#Zxith+Udnr=m=9QzCH4iGe`ixqD8 zN0~tUcGl*z#hj#M-4=WTZ`{9ZKZ5T*hmSStBucnWh&rCF=ANq#D2mKm-iy$XcE%zp z6H>UL6-)uoo?UEJO=n0nc3ye?dQF;VW6-VqXv&{y(y={b@R6Wp%?{h`E+?B8N$?4v zYAA`Ec<2V%?aoQI67z$ zm@Jcj-#Z#9F8x)$g#g-Ddv9_jKdBis^qTQ}YAa!vc< z-cYY8$|#B5kO&QeS2jK7i7@6iCTu`u6^acJ%Wb#+qLtUkWF7)cuaELihQ9aCr2?%i z(1SUBmQ4tva@5sKgY*c|3YlD)QckeAP_{@Wo# zis@-w5i+6y%(AHrd{&roc_i+M?l{dp%6di)^{~9!LG@2zUx+2jp_FTvm>(pRs~^`| zse`4gP>hwG<B1{%! zbF?=r?0s^~e@V2?>+v0veC9{`_OaPZ zNy|{5Igtd3Va*E}GP{y4Q2tfg&ujTcmdRc99nI${ru;1uy6=?sHRgL~DV)p%BxvZ! zDC`pA2_~h2X&6uu=kPaBTqPu0mM=TtD^l@#4Bhy0o$Zc{pu}dKZhvR(Smvb` zs!TIb<9&M3ue@6t=fI}cOxitui#?{MW9mn|{;#HVzTmX6pY zJad*~VqtIf&oXW2=f!@ZY=jp$SIRfBqnzyS!l{u>uqtJ$8pz*{k2iIWxl|#c?G4## z@G1oF)}GVZ4hdTxmUfMu$Pe^DW(1+~A(f~q6ZP zTV?UYe|L@Aw@6sYeht^s#Q8e<^xe8$RVO4Sp9t-&cOc3OWffufmd zvwJ9Yz!`g>vOm}Mi4ilc@YD+xGv9uiB8EWNT?%ePd1lpnboU=Pf#N})^0vE(z|EVk z#^*m&Uqv0W#5X!7Vt!gJTQ;36VSBA zf+zLo;p2F;+pqiDH{c_}R)P`|YA$`cHa=-O=6qCibwGnSV0jNZvK(Zvf#M3Yr(ML7 zZ~tZ1(Y~{y0@?TVz$1kKMgAZgt@wulX{n%>wZc8;ooTBczC}2x7v3;tr2rV-z!M{Z z(RH6L|1NR)p1WJ`!%PKTI8ahaU<7e%q8g|sd^1tiSYX85Vovfo?Z1n(p_rJ`$GD?v zS$7HxFhEDRaua{kO-HG;KE#jf?Ps*;~#3f2ZSeLM1f@teEV^I z9wyn@C(D26@)$sBJVV(Uo)%F>A?z0nSz}F2-F5aa+WVG`TM|1(2IOZQcQm+Bq3)(V zO{Mhw7Oso!F9ih8gjBkrbPUL8EbByB_B;``SV5f3>V46^Jb`gT^84M^}QdQ##D0HA?g;?Jl zEj2j5SM^GYb_qk2KP&zz(rcaF_2S;Xzgp@`y1QvRP~WXQ6}uzKaV!>&4;tt`5khi< zQ<&6eg|p@q2at`HR~1T6e9UlJD>UDFPPkidgkh>!ce^CnqCgOfY5D|3{#~_!C5hy7 zwA544F@wgiT}5a~d22a-oYPJB%f)z?v<>?xh6;pK)ij~jQ6f#|@rt_#$(PZUHp!=jvI3Y39 z6ro}PtW``wT;n&L7$%M9?8R49sh5Kqm3O*gE($&MIqF3#Xo0Q_pefk6#ES(%UZ5eR zSZ7sM$+WeHYnu}C(sGP#R+wn{S~=YSzm>Y)a#zC1nGu42YHW0_7B{QYgxId@$h;wE z!Gqa03as&HdY>rHijzg2XwU!UzduMYm%Q6AZ(Nr1y7r1LF|%vxw%*fvTgf=*{CcnU zbMW!)ZKvKmnRt+IaAl-u+N)Y>bYBWggl>6tNc6ZlL9zh|o!W;ok#|>8z|vgmebbJ2 zsD`!MeLk27)O7nPbk%aB{D;x2NIGzYVl8MASSi8qV1PLEa~1@EgfvnwXeS2}BaRO` zUH(okZLvs~IvXW`qB%OZ9!Iplh{T9gt;UnM>k59A(UR&`E|l~{IK=e^{&v5Mvo^I~o(;PLX2sVE}0JeU&Qs4;+1#(i9e6Z}Qn}V*a|YZ_$7K z9r^R5S>qVaXDMT>{PYgvfnQ=Tw0)N0x311wkTnHmk5&BocXJX6c5iIUYf(erEi@$1 zZc2cQ@U!VRVCOt zUaE42;3(n;i@V$U@~YRQ0_b-FKk`MSs&LLy(r7k`&39vXKIv$&P^OW-k~u~H%xjzQfj%o26Lf<6qJVMjS=mQK z!euzBkygGiK+Nx^Eq_#PVINVV&vM!p3+{fK2&LQL$tg{7OcOZurpy??NkKKsZVJix zUSbL+Alr~Sm02zu=gj`Aj3fHVd9!I|=SLF*o!DpNK}!;?Y4YM1zu$yx>V_IiawQj0 z0}NH2U#icwd2da>?!4#RKmZ!r(l2ZKFAK0bn&cCkd60!%%N`%qii|PjD1yh!b-lxg z4OD*hE;;d~fnr#<{KNhqB=PBxZgDk;9HakZzD@L9$8)8D0SN~ZX)HRwx27^`I!cI= z@JA#hP7}aC$BMMl{SoYkwYr!!pEIAVq4e)Rn5mfGDE$;w)H8l~8kLAII`e)ASmLa| z_A|GCOiU{+4;i{nM-iN0*PLy5lZ9=s5<8Xi7Jt9$!AsQUV>;ktFgns*AkV}U#T}41 z=4CH`oHw|-yDJ4z+x0Q6{r=3|#C<^{TR@6dX0uam!h`H=rzL`{|5&zaKdVW#SfyAz zd0HxvtCjqq_K%NVY6o zZh)S>s96uP8N=73`eHr~@Ufmys-x5PrS{GitzfU$rishLD<>tidB28WC|2J-dz@^t zl#0|n1Y#R`g0s+R#t#e=+#mi_2BYsE39*vNJp5`N*Gx12@zIfCr=lpdiUn0s=UVR* z7km1<2rhqAF9!~--D97odFc=Wkf3Y+d`+Z(by7B2 zsusuV*B2S*DR~>BH8ip=l>&0irS3JcsX6?nxt;uv`b{CDy*QgcxG2t$ng=Dx@dqHd z0P;)z3_1=&c{I-DQx|qlCubJMGboN>USDj@gZJraW?7H%dVh_hmuXn`+tG=&J$W`; z?-Qr|f9t2NpM6-?_0=uEkC}Y-m6z}BT%MffIJaH+TqyT)GOP5m*nZP&+4VHz6)we3 zhs(ISlQAyoco7i|hMZ3dYM2W1EefpU82tVbzeQLdplBLL+9%^8Rm>RQQ}OhA>J_%5 zc^Ms8XRjttWWKQ$$JQF*&Xh*MEmrqw_iI6D$Q+)QUFh7V8fOLP&$q@2>rSzyjOHOo z{DKHhU$OTx(40UF$$`$o&uWn|Mxw{xBZ>Hvw3R>v@pi|ZU_nJzg>zOBXI6z{R#Ewx zkw!6ld=WdO)Jf(K=_?09ji2~G^C`1Jp#mv6_Tc{4U%!6~d%|5(v$K|kjrmP!uWeime15`gKYV+gbDdhcS9nQ2{6kfT>E({s`oyj<9M4(j3 zUm%)5>HUzw!jU!fCasindTX-yWWMXWho%Uzw9Lr_+%+=XPSkex`lqT*c3Mr|JV8iN zCsbQzj`WpgsbD&k-DGyH`}JGX`VG?2tt%(h$rlazIYyJ&U_%2)*mD^bn;sG-QV4F( zL+P!7&8s}}@$0s}^nitcd3~|$;MHohO55(-*=puS00>^?FQlk<-?HiSN{xDL3HWPQ zml4L||9RZBcs;$CFI!A>r)Hl8oF#I((6*yfU3+q9o) zkDU-}ce+`+z|EZ)EY!du^xDfpbt^Ob<#{B<>#0Wk0!g+24NYy48dUa8LXD7}JXC%h zCztH(-}C$|rMH8C`-xo~fT8bj8;tIn^q^OM6&!f+&e5jz1OBbMo~ETgF*oL|UHyfp zs-dTPVPfk5w{sA|i!M{L@!4sHVW8B~CknNv?0~0mtq*@E{Zt*a8Zze7U6=fZl4^Q% ztloouREp=^EkN)JN9D1;JHy3}b4)dF9wf%E6jF;*l`ME|^M7kKfIfB$!$Z_!so4Kd z3xE(5W*s68X!~?r{tly7tF3P#PQqRDgQ#z}Sn64=-=DXZq(b%W3ws8F3TkoYKKf;V&B0Ok4OgaDlz49V})_n4_Q2{ooX$kxK&}%bgLB*eb zKg3hMu;b>i{6|9J4xc9u#qyhLg~fGp=lXtPvLoiqZkC}RRnT(&O6`}?z%Fh%Qy+7%i0W`8Rl<1NvJ z+0mJ*wa}rl8{B1)byOK(2x#|<{e9koHhQ>Yd3qEBoPWCiK#wpyO7>S~MS&iDWhP;q zI$U5R#Gcf9P7#&8@((8Y`n~@bPSK8dpEEcNn@$5+XRRoUbu|T#?R52N%)ER7OZ>_t zELP?R$KBi$ZC$Uv!6-O`9lJ#V|88mNa$nz{qmBnJ?^C4h{w3{)j0PX&52r`z+#Iow z(H#7O1wG#&Z3%7?{~E_Fa07L{mwU_BN(3@!`+ht=$)FC%!)&9zHS6FH@4pS=$M?u@ z#6>~awJ1Az3p_eWa(v(qG%t|7`?upDfA5qb#8Evnq|ND#K>Yhi1Z>1ctS^``>Aa*cs@IFna*&L7!^OMU;4Zc5@3p&Molw~n3=!^Ez}b8EOD&&)!~n^q zT>3|Ezp|;fDt=)hum8iyITV8bk69Clx#Ii@u*gue!%^yyuVF44?6s+XQDueUEIv1! zyr63+qt`M_zag)=_XBc2`7mW}dl})Xe50VE5iC@M+x}Vo#|8J7a#T9~^@>3H`tQvR zNDPs`v(4lK$QBNg!x6`YPnCSqIIkHS#Ci!5y{eT({e^^$0w*56AaJA-sd0t?!n1oE zeUpHngc^XdHx9Y-&@m1!rytB9Lj*7>fi`6b)8bB@mQb%)3&^jK@-B0u-eXg?tyAKW zf#`9FP{sLY@+13dG{jS8EhT3Gwhk1qH}73H*jB|#}XFI>7SX*!U;kTgO2pAZC zyt~?-z}cSF8X`i&X4IavP_zPIip2Dk2$1FSe93EPI=@=nEq=N z$#7F=oqcyI40o;#k+5Fa=w&vH2&43w+3dQ$_M+q7BhTND`<)SV5j|0m7$UXMd`*b>2Mtf=egUqtZPuNra68*m0C|VG9)G^L+WV&fBml4@xZ7!(-pxc z8#OO}z9INpT7ct2{PNlR4gHKiyk?=J+h8?|!&;xGq9i-Gm=EZ~pPcr70?jD=k6Dx# z{v!Kykwv_7r$Fmp5Kf0xm+7&>swD$+PP_8AP>yE$C+68htlr+=r(OUd4L=jLfsadV z=Lt6lDl*Qra7>Z*XJ!7BlGE4Bd``3R<1NcIU)z|^I~FVaq-Io{N;rBvM!pL|x&O9V z&(MD`E9QbYv>3WAHP3!n_)8{=$FZi(9O5cN(l1yM<92s+8%*!-)p8TaetlT<-=~13 z33-1}rawh*W*7E0O4WwiW?52_?S0Uv?Sb@ZakC-K+|DhEs7r|=_Myo(JFIr`jo)AO z238vqrdMES;r=3uX4;ZT!0YX(Xj5nHOx?N$6Q`U8AT93l*})RQci7Np@Ef^kqj)~N zjC9@XAmi%wJsz_0dJ~(8hfh9Qx6nn4_T&7<n1NZEpcZsV8ww3G4a!yMi~OIQi7;`QJ&P5V41`pvMFllxQP*+g_(YwP#Gtwtej- zH9_jxJvBqpb z*v8nI6AV{)tMjMBBSYWbu&`O=v`i5cug^&IAR0&MD{Od^u{kymH7RhWfna@@$>RiqF-#E{Ex!3k~0{N+r~)O%;?j0ON| zBC25Lv-S*Zsb~AVvCCU~-~1<#GWJ>{tI=0%_zQtE>9yTnlu?ir)5A)3Z1;MU(V;l# zJ{~}gSD+8=If!y_0COVLwQO3@5u#3w%`WWT|D_kwE+X?HZDTgG@)Ev7Jv@aafTT^} z(xOyswh|gqFXK~o#+2M_VbV1UB^-3~ap+A%?cEjcp$#(z<rwL^U`+r9{YG5xpSIxd{3M z_=vdfoQEWzuPI(eg&a1=c;1QUcga{t0hkW=HaiDX6jdudFZ)kNdg}7|N*SjnmpxDz zL9Ny~o(I2**?&GEX-p36Bl<%j-I`$-AwU4&+SySS{JbOuhmdR1wxCPw|rSB9mP)Qn~sQ_0Hi6}MVHTFA@Y5|bmYe{wJ9Ndo-?3uc4GGI`>t|#4jwI)Nw47hqjNaEA`LM zw-_v8PWuS8@J>q1wT1?Llb6Eh{i?JKuB|oI;;r0=8=8kcE*2xj{XsD!lw|1GNm;pO zR>mT&GkWesFW)1HlCZ*J40T@2dpdAfVQ-;{rBede`=u&ZUsP-Glxj+02&59%m>UE| z^JQ<>0P>fl`alpI#9gVSA|5QFg@!40d+2b&y;@eNk8ti?9*4QUc$jU9U!1N0E?yXN z;?Ae9`Hjt9xm{kH2jPS$jT z?pjkwoX|&-!@{!kcb)Rn`3QTp)S~0kG9@4ZV_4#|8Q!oiO)@~-<(*ec*avshdFA$< zs^2I^TW6^0h!*c*lXyg3ThHs1;-s&9&m9J=hY~-U?06B2ocBs9G3mnJjNaSR(-LOa zTT#6|!l)a?pv{RA0Zfmj@LSPA>-s#ofI$NO*UeN%T3caK`#W(q6%bVbPBy-S@p|it;{~CHw8dEGH%ggM4ieLu&JV}CfzLw~8A=qu@X~gV z+TcBSwYV5hB*N|ff&VUx-N?A|0%iHEKamMx=_9e83&sc708g60hgdsX_)cm z#Cj4CDsXUn?dbbD1u!idm#c{2rf_1r?SwM1GO6^k~b_J$2JHaRk3>EoCF& z>j_6RLUf0-8>PKjO1iz`NK)j;C~`uKSF>mDA1cRdYMyP6P6Nc{FouoOwFQ!5Cv_aJ zOP#1%6f7=V?#wGHI=&^8o;-SPR(yDBRPAEJ6p2J)1Zgs=9&k{G*45Wke#B~cIiDPCZO)U4FplY0v3_+Q2a1y#9aQeuWVYR4i3I#syR>^4EHsK zZEElOxBxXe^VHaQ{=%$3V1(A(U{cubr;MGjBTi?{_e=lOvNa+8ZNJu22XmoI##$1A zeP`1A9#su0z>}{VYZw%uZ6( zM{TI*#Yqk9PG~87O94c+a}+d>+6-DWF5Ty$&4(f9%@P}Ss#WnL_B%@g2N4Q%$t=kZ zLZQ223Za3#sjAW(lLv@oxY~ESczy{C+8ij`CyD7zpdk{po-~0B%l^w>L%y5>nugOI zOKOp8q5negr5#6qnwZ0>qKe&qT4;}K%j^72q6+WBqJZ%8 zNNB0bYXDOS5OkjlDDkE6^UIlUskU`mDznn^5s@2Ad80|9Y3d%g=Pp@Mws2JefC{C_ zL*6c(Q5@X(u)7DB=7+AqU2UGH%>x2_K=jq^))B zL0cPGyIG{YW!!zhHO8`K?=X18I8Z3vWlJVaZpq!5cEJL|HH;O(?#8fp=~%A5ddgWe^# zH3S1bpQPVZGLjJH-LeWeh zy6|aY9hIdIyHO58GHHKG>qtjLN3^GFmOoZep8h^5WP{?h(QDax*kX0_>DN@Xn30_z z7d%uh0+4jpkmYFyv#i~tQISQ4It^!WAkR06&t1IeyK)eI{aHDPU{;}iRuMo|CndIs z)iL$}P3FOaDetqqro+nO^Ud*t>h$8fB(`yV9AviH;6_{KYkV8D0!8`BZ{jSfPsA*0 zZ8&-7@7TA{k=PFRO08Pz#Xk?-Xt+pG^q)=FxLocEkhHVq;Tu1{HGn3B%>qi|_yqC# z8>X)@X&Rq{=}cQ{yycQ13@Cocbhs)Pnps>CSVl_>V5&bH0s2eAsla*sinQtogB(&720iB)FF{=cn2c@7j4COXY%Vy8*QXvWO}@B5BJErPNoGor&;i_*YxC^~u+r&O z8Kq)+@p;4}JWqJmTl7s$34WLi6jP*a*N79BLzB&OlZ>cEeH z%q(6{q@Flt)}~I+Q-fk9blt}N?Yqgd|e zg11vihJ+~gAljSo{ zMcA+MSQ5Nt*feR#En1}}#J6XeNK5S{{_yAa&44qGpINWU_ zt=G1E>{`V{mvEvZnlyMv)&5d6=uG#^-qpFYe(yKQYS0pu}JdeRY?s{dF{$x z;%h+U_U_5ZKt}i9nY`7}$YH57Zg+ysKOBB`tmDug^-l5k?_1BdgZhmUmu}``zp@cX z>!UX)PbYgAnQ?P4kb-QfboAwX`!VGk6FyWYBF4O*wX}d{0tLDWKl*h-q7(Ai4e)#z z^sHyrRE1tCHBWmfwfSR$`FFr{VE!dUm-3?ekCD+m-Y7k~ucH&TFX5%d5V`KXVd z7Mnuu{iTaBrAeV!64#?2YHNbL&#oMORrtN1y=s)I&qICH+NR?kU!^-{p-3fS`X&S= zEp}aEuwc0z_qQ7fN<4;rL51K=lc>ac!KP^(6FsB5HGv>eTX)3Ro&;BUG@_zj!w{b? zzuM09alqOEJL5XOPhUP$hoy~truL2+>u%ED*c$t=fKaHw?dQttwyN7#Te)6wc~0SJ z1zQ^Lbp1h0D6Ju$^OhBqo*hA9xLVO^$-Dfg}$S*>tjb0x$KDXe%@ApOm*OP((? z_3*BP-`-GVhCH4=+`I$_Ga+N?Cc%no+Vzmvkc_*W!evI3xFr~?k6l6 z!!3dX@x^YrLEZGyzQ=zfjOD$Sns!^@l&U={(a*K=%6?zE+4;0s_3G?Q-&U=f1F%#Y zDNstOEqnxhI)A$@f8qohT7+Q4q7+l1KD0B{)qV`{n)zALax^j&jo^!IbPGZJB6{OM?wH{5E^6k66`RUbi{#m zYy?)&eR7js`{E(5EF?77eG8urMDc%f$ZMLthVS^UDC4|k);~!dI{WzbY0v)bsJ``X zc571vB|67rb0q41EnNK8TPyiB1=dXu+nNt*b59ptJb?UzXu>}>Q7kW-=MHQQ;f_4^ zNV!AtWhN8LvoT!|Gb2c(E7hJmZ;XE|1rYUG8*a1=M?w|5B;0FEK z0XmZYYkRo$VcYrXcE0nyS=nMzZ`9vGRcG3=6znXE=&QdEixN5z1Yg8n@Y0441|ii`l0>H844u7UhI1s;3BXrl$i*%-3ka843W@!ItBu-1G%HYA z&$yXi8)?tB{AVo;==IR9wfv*RL?HO!2&!R`cw5+1GvA8XGatwFJukf>00Tq%*vc4} zTj~c?&t4BoSKry);mqM#F-Mu>`OBTG7)6}rf$#~~*6VG{K~Ar7S1>HjPxNAAbbA?$ zg4CiQn=RHAlLTNxPn?z|EMr1RuX*B(RjQ!V#8l5Fai*CeeVl7rrscj5qyRDz9(?E4 z;b(%uQxNi0n_33dg9>Rb*8Il1!Kk+TUGL_|?~LZi%jRL3JBLpviABkS(EP5p9cDSR zN?|&`!rplMoRuFM!^C_*kj_R_w36UB43UVXD;+8h%EY@fr&mFwPd#z=YBzTqDZ&J| z<040&+oF_jy%ff#md_CFfo(TgahQV6f?l%vV?ZMl2*G1U+rpXEr1kXgVa`c_z@UN$ zLn3F|Ygx8F51Yb)Bp^tPDgs#Z5 z*$l^cmHRWlZv?JqEaWb=fhHg)`7TrF|=MkWBqtCZbeDgkflkveCV=$juC>^h1QY= zG4KX7pChCTw{`t58eWy-WVUdFU@uHzP*>46HU*oh!4!DfJO`eZqKHm=f%@$Spj6|%-_y)k z^B9ZIr(6nIT@2X*F-(!h=SpVUa<6#?w|PIV`a0VzJzJsMqWVlfZ(iNIqZS>!g8I%~ z)1M~^yDIZ%SsGZ*kHTc;Cac;nzn{lcTsy4Xt!$FQf(S$$-wi)YFFh^KW~mDPqWUEt zeMp7}G=mjmx33?lp-60L@jZ5-?Ns!mw0cV{L8+>X2l~QVj^NlM{dHnr_DHOp>x<8hQN2OU|o|hyHDnI;iP>k$nO+*B3w<2vks@#MMT$o z@fcHl%CVWnZrh^smSFXpDVpCLu-pye_zapp?HW?oRP8REp?r``rof_gjoY68Lq^YW z_6wC%kv=gMAUK^KFRKYwLZf))TkzL;6^t!}5%$X_V3E206GAOxi?mu>ZOgId)%j=n zuh1e3=+e+)&AUAxk-k0)18jbgTcv(63~uY?dYa__R&Mk@GalQ#95rD4!|ng8<4@;rn0vAt-pdxOGn@-hw??Qe)Oij~ab z@Rd~Op~~y$pTVQWFJAxG*`<8rsWcvHgHNJKJ>0fM1M-!g7e1Sr)1i{Sj>!hgm+74xP&Hb%M zacSMH=d)rrpSqNg!rDZA2JQOwoMd}@^)BHSHu_7XJe*Ik?6S2@RPA9$I>_hGp%AHy zf?#ASK(ZxV)A<6T{a0ko5SqiI68a`S0=OQcncH||Y)DFgYHg5&E(}x3aAZ11aMtY_{%DSjUf5--v=&!?lIdl~5q0utLi*en4G%HT7tvWHm(z z;!PtxkX8J1;8qkd{606ra5#l?Sen#nymxUGABy2&8D0FIPnzs_y}Q?aLy~VI+}`^`o1D-B+A3rhkViqLz`Y7DfR z)qE$}KO$9u9DR`oc%T|(c@*}dQXxDOHPxt{NfD)gg4;%sgs=qnM;+MzX#v84VAasZ zanW}lwC0l=TN~e;{Yyw_+Vt+~sKICkBFr-~$*&t|eq}m5J9luc z&UsjLU~b7tk*c2eWxx5!DCg)J_iAegD z*t(Hr_RANc8V^Ihm0l!?$qZ~=2djeXM0Viz>TAwRV1D^%>WC5e+4@c!LK^;QVe7n_ zT6j75`u)a`*%6RooCwW15y8(k4t)OIFn>RD*tH_oww*k7GH*-qiojgA8AUq@nAx>| z@w&JunN5|YBQ#U&KNfHo8!ZE=2Z%pF>}N)fpFCLCbNc%EFNwyZ)oy8HFeL>?v}GkL z_#kGd=*`uqL2cdBcrQE7Jf*#}$p|2A$fxJeJ8M^kyS__#tKK)ieN~45Q{E;{N~I7~ z+nBbeWlmOTu9*0i(aaI7q=Y-_p+@st6)T;%2k}8b;VJHxge&q7!Rr+4jaB|j;9ms$ z9|5FPi1M0;Z6WSvr?-9(;BajTAX+-kbik~rfL1V%1U+fQpiNO`N(e6;R~|Ee zvkGWC*~euw`P0uK-X@O3Tpq(C)u*%YH6_Qq&aQW1G+cJ4kOyJ&?e?+2eJSJUN6#D; zP4A?}Z&-v|)>{wR;+^XnTZ)^2I$!LvicrXTzvo7u6Xz)3qtI6%XoeLuhY34sH}-6$ z+Y*J0)*Ii*M_|{mjqnnn1NZj!+6=EQyZI!LuaF4Xsq#o_;zZ!l7vdkl?pRZuSxUi+ zxMyo;-w=t=q)4uz7#JGw1M4?CgL72zQKRn@G`8r+Fh%Ni2^>DFtPUw4?XVY8KC}I; zy7vMbPzr?UAP4)n2%JR@dH^YAXwd51j!fytC-RUBlZd+8)C*PWU_>EoQ}MEM+~*CC z#Wij@iV*xKtA)Wodb>V8b#YCP`Qyu;!GH0R!&p&f#X*ksHQ#{N5J1T;G0f9yBOWpJ zGdFoArJ+f-sxTwOpf`yCnF29J~Nzp(ctHRzE9M1ux zdF@;CN#A4n%8}`xYJ>Qv!|&8aAC&7DJYiez((N9WJUytI-`qtY!o@n0nyG-~(P#bQ z%$F!z)r@ie`SiFzi&Y^cg;3Pgf#%2k;^W0JR;;;7kweuPv`}oKGTUXNc|i`T93qj8 z$Ja*eREdJdMoI4kG`Ur>5lLxM1&Do%l*gil2rbhKLA zl;MtJ&^KnfHbt&ar`Gh^PH&24lqs^jhjX%Qp#)l2r9Z;C4+dMgc&=JHyCZGk9K*yz zTCZMti&5oer=I9=+`CgM_If0-95xUlj2e*$eaYfn@t?g`SH}DnSB&estKbUQLsqAtLf5^gZl`H2VDpC!;BXvu#oSCTa4kOD|Ryv0LV7OKv(P3fhJ$1e)* zNnZD5e$6$8`u79L#zVzr{gQ(6$=@9%>o}0I+9&THl^jZj+ByGZ z-W%YlRA5h)~%b0`hkBw!Bt3|+sv)wh}$8>sK)zW|19msog?xqsKZwTC#D-;5DnaF&G=J>GUaAq ztK`b69IV79n&@T9ZNz8p4_0(9qF+)G0UQ7lE4)EVEi=7D$?}Elip~$il>U&ifGSM4 zEKUyM9<2`hXWG$!ej_5nL_tHwL4h6{ph<0;c>2tr87NZB^7i9P?DyQINw0Sbs}%^Qtf1|7|5i4AG=Abi_H$$4Td$l;$P%&pRmywgO^dH( zIZ461Um(7M&~O#h*FXH$vM|9K81*->cJs7N0$Ha3vL!&8AC^@9MX>lh?%n6rQ1B=69I&PJ&$u z;9DA5GFmD-#1UF=vbA=Kt9ZQh)Srcg&+Xv6R4$w|@}uTu(qo8{O!*4G(sSt(EdFJL zPw?zvDP;GX(|@fE@SsjHo=x14*sk`c^u@&} zgH;s=bed4Lx#tj{5KO)nLPvy*Dxtzb4yIn_&@3-f{ff%1-bUmu2$oE+ePPtb%445F$l_aq>_9zMwR|5Vh@ z#mAX7(APbkjA>aHyh(eUo^Z^-sYUDcj35>g5yS!>K}IzV&H0`-2mq7&9cq6Of zLgP(rwUKZl`z|Ib_nWxk@Ous~GQHV@@^@*Iq>9f>x$3-&kMH)Hp$)2e0L-gs#5Ar! zuvf~dG9OBG9=X^kAXYm5w{A4lN(wO`w@w{odE#>if}fIw7O5nb>i*5X?dS};#fv;V0rXWwU@-WlB^JcfjN*Y9}~MTr+G9m(F7CQnHUq>w(VqM+g8W6la6gnII(SOV*Bg+ ze%|wZ=lp@L>Z__Y)?Rz<#zI?ngH=v;*~e#ZLT6`D@bNlR@uaM@Z%=pvP_vV0q%}U$ z{+MUn%6^N>w9`2Om-rrPH0w$>apZGcrqRlJP;y^qn4Dq_Au>+L6nuuZwO%8|VNRzq ztU|Sh@l@>XFv!A&>HN8R&g`z;y>}=Xs^8`ebdg1>^CLk0&-2rN$>ZD2{?Ry`*n&oX z6%bLEqa86spnl14ek%F0@eL%bL}SXLZoSo*V(rU@JGhGzn3{hE;H7D>apO*wJ9>Ma zfeq35ZXnX1vYqMYvHLRjXQO!6UQ|BY?K~*fudZT`zr)jr)1<0&uvm5J%u+`(9~_z@ z+A_M?%@qN+-g%e2MVGF8{E7gpO?uEYjX`n$zBC!)B!iIGvHG#M(zUg@- z&Zzje_C)|R0kAc9YX@CZ$m+KNxLjiKKmDm}4%TB^-ODSJgJ_mcw3Qe32Q=~_a9#xY z0^qc9UU+J7Er3Jp=ob!n#*qj^P0`l~$)egI`gy~-G01O}6#-w|AnVfWx~`b_=RO5z z9GIfo(vR^feq3rwdxbBb%n3p=N{BV{ZFl>bdrs|cOl>CPs6~Z4oArL9a_a&q9faP_l5|R&z_jcb zsm}+PV(LKB1aiwatE2gLgCIP|nEfleDH+>5J|MI7d@*gS$rF6lgC)O-q!vNu_|1?x z{^1ZOC_lX6xX!~pbBtXgL)fSRE9kpao24fG{w#DdWqv= zILi~B=Tb$XkD%RA*E*lIkFTJN6*#bkyh1@7-=wLI=`f-p)Z+}};B=s~Q1C(`wjp3b^W_SmOh`t;ycFdPor!hhrQ@(g}P(K!t!iW|_iSNxgoX~b$ zLuxKnJFk4OaXEE*WtLML6=^)hs+W^T%Bdh3>i>()Y0-i#m?seG(A+)Nmls1B9$Z2N zxw7fp4RZ=D8Qa-fO}94Rx7M!@&o7Y+^bme2%G3wbN{2SKddaro_uiA~!sk;lT4Kc) z_fPdaL*%%9lHkeyJW-rrY{}c?s)_loLthI$s(Jl$1OnQBjZPv4eCZaH%s&~0W#S_& z9Q;XGdd2&KZ#$DOoiZcEj0XrU9dnvrPd4}T&PjFqdr}ntYL>&D2^qR6j%zsBD>Z)hkXbE%`SbsJh-T@$yh~&FGt!7 zOPc8jsq}ZB&GH!BDz=S!R#$h8lx@6wwuSdN!5?tmGnfVGs7 zqV5jky>@okTW?zB<~IxXKO`z98pl8qHWHPjQ#~$Xy_a6@es0d5Jn0w7 z5-ki6%Dt+M0V!SOIhr%ltK|UmIiGOM@>> zu03%QgakV*2O_s}E1%2*r}Q=N=ajA~r_i7xLA6vjTPB-$^H5HRL~}as%$?xWgcF&I zzMhHF9(ePVz)T`xNUVLq(UMOqZLuddcWx6Cc)UXaq}dC6@0WrZ8p_EVuXX9Zh%^LqS zG8t2m`k=mq^1ewX%{YY`Nvj^=GM^C{SOuXOs6ps8b1IFU;%6_f9UCqbM8w|kv1vRQ zt$O`1zMDgv+N)uD-qW9+Y5{r`ko7AEWL5cRq%&EkOdb_{_s*Edz;_-{OARr zFn2HDpz>mKd6=aD7}1< z+x-C0zwo`S<_)S(3{s#1v8h!BMMeYBj519ut&P3)m!>JC3y*@=2}GX(YkMD->KsUS z;aRTnT~ackT1b-|ilbgLIFABv1ejM|A)hM^HSd94c3Uf&a=5~I(I=s$iR4ke2Q)-a z`8Z=-cA9}k1g^fv7O`tx-IN(zY{{duS6wNX*K^?Noy3g3K~f?e{jjmpe_BNzB4UsI zdR2(_-NxE;s`SypDN5tSPL zD-(_k4!soB4d|Nb(hP@86%|J}=QTB69gXQsMLCNj32S>ka~3uI+3PoEy*2xSY0f zM|_rve`X0wtvfzc5HARlSj(d1m1OzM)zRI%*jcY_VAqQM`Mnuy3Qsz6qa@(vyLjzN zrKbj6q`(QMuqUVKE#{J#`dl8cSDLt)c z5l)EcJLZ3xu5@vZtN)AY3?^EM?-_f1Zz`#(Tk>;N_PE=?>dMg95xp;@AJM)VFR74!xa@inx zG$`z-omTJ&5vG1=rfgI7zuF1)zJrh?`dA9)J<~mUTR-rxFS*3~5lY{voc}WIT}5>C zSgf&|-Ztc0m%Ah!{nG%fFv_QDoxR@{A1Xj4BJa!YHClE!wA8b_5nsBTyq9Tv8a#xI zC*315Gs?E6uiN5NB*=~O9`c-+(ariEZ{x*nK8@~UL6Qt!4+M+5wP4o0yh}~33+nYV zAc9T91@*&HA;@;6N>MERz;h4j92mtNY+K@gn@`C;Pu&K!5qU|Mm_`)z2G1bQ04{R& z`29Q;g$r&RK#2~ z@OK~K1IW?)^^zsb-V%~JxYn!~8sQWsJ8J9+v)aK`=%pZ6e5=oSTGaX{G7T-N>L%ZB zAN@L_p^#|YEF{|sP^e6EX@EjE({LgNAKqrpufYwcXF&|TUJx&^$^}uJRZTwESoy=l zF~207T^@Bh$p>wS1POrLJ>9;byi*Bv5;RKMwOleIcP^kOC7el% z@9+`%1FGeo^#Pkh-EEigEan`K;UQ5g&*KQ?bK|G!M&TC_1{C zb&^D|!NW{@@DC46_xPdJw?aFmc0`*#y%rEcW&he@)7sSZmb~aU0_st*et0?a69o5^ zQzsirmjuvNjsTL>8}(i>ZA5qs@trtg4I0MG-<})_TuZZOpQl}=sS%8pjQ{!x%g&}%1wl3JjAZCdXYFGT9n$eGJLg6AF zm%DWg%r68raw$@ER~Q*n9+3?&{=;<6b{?Gb3N}0j^;$6#^p$pSv^HmOb5CBA7jlLS z(1d6xZeN?aDXXl|s~ntREPcdR+n`q4vW?8so;W25tX&;f@X<9)X})`Pyu+scnDR7H z`Q_D`559dLzP&A3H7fn6H~4*x?;lz<{XZoAC_HL&5=Kvu{HZ`)CTk?$>Uyiqrt_do zvmS0?N`nSj!bmQ3XZpcEX1s4M)zF%y3n#aHGAI&q7EbZ(M0~@s@ zF&k$EjVK~J51qckD{i+mH@R#z`^=qgMYj&D=A-bwlfDS09(#x(UxD4$VYg~Oz6hzM z^OZKhT>979tm)};0@YrJkCkmXPU5Kd{I(Xckth;0zi%4PvhLASa#67!$`S|8Ss`f# zGo&=4*W2zcV33qOsToO2L_*E~YN9j4t1_7ctgpmN=oF>AfE^#7^4UyjpKVboselxK z@~ojEXY|Lav(WLd;bb^$MwsX(5dF3`7OQ$-&-o5ySanjrc|4GEX6AI9O{}#55L7Cb zq}?skAM1@ZXWnf>jp)avMjM^gATod_9txF_#7aC4QK9(=eHLz+UY;b<$i?q9ow7Fu zoLm-+z5R>$pbGMx!4c&5^FL$?Vq@(c1aI4qF44>u*0+mghP=UFK8_CsyvPVXUd$P) z-v?#@^Lh1SwjQ2mnSL8Qnu@Ht4ow-1DD-My!TO}s_42LCLj-o>d8;;R6XYxm4?NWN zG$}+`WaiJ%xLq$#Th$YqwwymqeJWuX5r!zrPB7QG^wD{zj&0qkJlIOg_h79{c4HhP zHFf-A%55ecILz?I{;t$Hs4iU4t^{x$L?7&}>pk-NmjI+G8e%jhcMZ~BI=7?5%x`Ej zmS5PMeqviKaD9$D{!CF6;iyuSxDEVqlKA3(=i!9C0N?WEYe(HZg}{P_-j(ar?*0fK zgSBq@#EujANF;yQK{Cry`3xbz@b~`pgu(EGPt`w2yC0*RH_6t2?oPr!o@+ z+LXovA>!}enn#!5a~|zc;FhO9ACMZ3WM=t>ZkXvz0`9b)XyL1DmWNIDn!1}JYdRl0 z%2jr@L=kvrZC0xA@`VOkw_A*0z$3$(9;N}-X}`U^_3ugc#V);Wks=dfsL9uB$XMHr zg=c-;9jxrqdD6n%gH0??81*#!nYe_|9*TjEYEO(N`vV zNUBCWvW6$EOBuke0mf0ie=D=u!Cz1{Cte!tF@gQRM(bH9cgk?Lj_~2I{VI^%e=n!B z<8$+E@$Myp$lLea8vEdZ0wHiH^(w^vMI2zDV942}md{<^T%OfDxHbzXCGuPMR3WDS z5_#{}>@}SZSA3a-xs*sMuta%np3S3sysbnTLS7(~yNx>8j+AM=fGT1tx3n{5$0JRl zc*mXq2sQT9>8t2iTfJOy&-2NaW2&txTZlTsnjLQyI9>Pw2 zk7c5-xb<(iY%5(qu3Z4yQnF_>6rwe}5SYC<&*-Gm9+1;^HP(yYfE8fh8Xvw^sd5Zm z1^1EKdnJqvaEZq72;DHGFo6|GjKHBc`Ab(Pqhl$;MRS?X%)SU1$hxuS5URBY?x%Y& zAR>Z=7K6(wo*a5UCi}fk)KiM1_hL9d)IJmEjQZOtpgU1B*qe)?orIdu7`NjdV8=5~ z%g#o%QF?5U7;wJW1Qc%pL=$7JH(EU(1*oYo1ei@C30yxWO21^ame6nWrWj(uY(_HP zy=GOUSD&6`d<6KckLKA=)c1M@-_t|_ogYPVVv7p+H$O(tZG>USWE41-#-h6|J_!&) zJU@BS14oAbltMuvWutL*ms8vGPdSQHWx)6>ARYI4z*@D9RIYJ4-9GsvPCtz>6M;m5 zOkMw4`WXxlvGLOg76Ey`&^>m)yfnNKJi7mBZ%F9-6DegC7k*@&)wN0hK%+7LGWDr4 zE1wa1t>{Q73N6Kz{U#(e#^7`PViONUq$p1#^8Xh(MZzGRcApKrM??(3Ex1;Z^J~a@ zOJ4I=H4M8PD@4ZqoEdxcy)1J)!=pazy`qpC0~8}OreZ02sUVeR-&zn7zV;* z`uSadeR=D)Qx#oMVZ%fEoam~#C1q}2AY6-|?*nz6>-~i5-o5oennf2?rC!~HC{k<} zsx-7sxC%xvTCh^<_m~1BDlN7)ck`ZGjHz&oA(N5RhlhX)SS0}w!)&ezQmUZkJ3q=_ z{4Wzsh9vTI<8k$>YoC8M>0D(qmM|@@V0>&I)l|MM)Iv4P%7qBs8Gh!`TOoK(0R~v+ zFhsKxB+RMb^-vME4d(6i9-3Np(`dFTinlvFvNtAH^ zu$!U41Hl9h_CXt%{e$l{?8)b_7~@w+Z6?N**%b3rS5COgJH?QkF}k(4yignRlhA7m zpHkJO+s~F^u0{Pc5Ml^j)>q#c9*#t#4ux%jtOOUsl4MXZ13hS9fQ;gS)i{>QD3Dmu zSf;?=S>wA#%DL&wy02fZ)6wS6{|0Bbm+`ryey2V$^WDEkoWSPIcxT52)ccDta0BSmOv*yp=Uy{ek zArx?~{4*kZFS-z6=_~YmZs0~`xnz;PYQYGB{dZ+(VtbxuYeC5Tp;Af+3^cRo+pF$a zw1Q~i2$eH76xbjA9VQshL7U`}VCaJ0=&6Hi84N}(ISxv@bERmco?@+Rs9%$wI^8;W zs@F2sgse%Z4MR<;5Z|KhJ9ILQ>a`(;!G~w_DwpRl0AzZba<=c_O7~p6m)eaq!C?R0 z#f`85k@f1Em{66RG}JH3i7qw8>(mJ)x~@j;bAsqjFnfszt}c};yR^S!P6*rXFLpB) z#}ANpIZRD5wGPTb#^^HGLbK!62*V8LUk0OJ#4U|Zpw=lKGi1#cNtDqA1!A)got$8~ zR@(BY;(AW#+`?BSuaztybL=Ippz8XdXg6hIfeu~_JeZXK81NTku{9fO z{Z3Bzjw~v)gNcQdo6~srEb8SXV6qyvxx3ZkR^S}_6!yQT00$o2TOJKYB3*iOkqzZU z=rY(xIFLBXu%m)76{5^&0Ctp?f*KZL>I^2405<5`0x;fA)*$3kD9ufrI0`?6tf z%*v#+&|9=Rnvm&90&geJ0icAUj&Ty3R0NnXSxNsDLS}r7B7^I7a!xQkiA5LHYCazf zu|wE)&94UCKk)y4kgOZfO>`c$+oA06Z!iDqi-ox$j+kSDbJjLr_R6hn?l;6}c8nch z45A&EqlbJl&7)~^iYPG4~w7;1BcRM|}No7b0Wj zRZU{`ibq95YY-~OZ-{<4Byd0|eqHyr5<=1YE_$6FWJmY8JsLm~9f!Xr}F5 zuhmDs)0=1h@Uc~f^Kvmw)1Fu~_|o5YaWHfJA}AbJp60O)jOooz42(TsUW7gM zH&q>K;E}-s3r)Zk2A51=N8@lW*?~AUFAbE^yMN+jYf>G&?I0Q1DIh|0>UeH|QiLg> z#T7N73p9CLU6E97&YoQUDt!Xz1(#OtJvt#O)s?1S(#=#Du3-}-N`p?&iyKn2s)!_yBx`0Pux*nL7j=uz(wB}CurzZEAExF6AmS35 zU~vkL;D!D`2;FnozD4h_BT!RzjVd`2&RFwIQy>$Rt`{nbh>v;3CU#XrN)ctSd6twT zS6Gs>TXTIRMF76%tsDjmBK~SBZl&a%A;-wA}27!+MDAr%|#NWj+ej zqK4jIpRTIC?Y}SgvEk-7*rHbd=dVobL&1#YoL_oRyOd%<^bf&ms{30

S@BQH$SN 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/none.png b/src/assets/images/none.png new file mode 100644 index 0000000000000000000000000000000000000000..e46c231917e7dd9d7a45729c9508ca72422c10ec GIT binary patch literal 8370 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 diff --git a/src/assets/main.css b/src/assets/main.css new file mode 100644 index 0000000..36fb845 --- /dev/null +++ b/src/assets/main.css @@ -0,0 +1,35 @@ +@import './base.css'; + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + font-weight: normal; +} + +a, +.green { + text-decoration: none; + color: hsla(160, 100%, 37%, 1); + transition: 0.4s; + padding: 3px; +} + +@media (hover: hover) { + a:hover { + background-color: hsla(160, 100%, 37%, 0.2); + } +} + +@media (min-width: 1024px) { + body { + display: flex; + place-items: center; + } + + #app { + display: grid; + grid-template-columns: 1fr 1fr; + padding: 0 2rem; + } +} diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..24cfdba --- /dev/null +++ b/src/main.js @@ -0,0 +1,14 @@ +import '@/styles/common.scss' + +import { createApp } from 'vue' +import { createPinia } from 'pinia' + +import App from './App.vue' +import router from './router' + +const app = createApp(App) + +app.use(createPinia()) +app.use(router) + +app.mount('#app') diff --git a/src/router/index.js b/src/router/index.js new file mode 100644 index 0000000..875fdd1 --- /dev/null +++ b/src/router/index.js @@ -0,0 +1,14 @@ +import { createRouter, createWebHistory } from 'vue-router' +import Layout from '@/views/Layout/index.vue' + +const router = createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes: [ + { + path:'/', + component:Layout + } + ], +}) + +export default router diff --git a/src/stores/counter.js b/src/stores/counter.js new file mode 100644 index 0000000..b6757ba --- /dev/null +++ b/src/stores/counter.js @@ -0,0 +1,12 @@ +import { ref, computed } from 'vue' +import { defineStore } from 'pinia' + +export const useCounterStore = defineStore('counter', () => { + const count = ref(0) + const doubleCount = computed(() => count.value * 2) + function increment() { + count.value++ + } + + return { count, doubleCount, increment } +}) diff --git a/src/styles/common.scss b/src/styles/common.scss new file mode 100644 index 0000000..3f888a7 --- /dev/null +++ b/src/styles/common.scss @@ -0,0 +1,104 @@ +// 重置样式 +* { + box-sizing: border-box; +} + +html { + height: 100%; + font-size: 14px; +} +body { + height: 100%; + color: #333; + min-width: 1240px; + font: 1em/1.4 'Microsoft Yahei', 'PingFang SC', 'Avenir', 'Segoe UI', + 'Hiragino Sans GB', 'STHeiti', 'Microsoft Sans Serif', 'WenQuanYi Micro Hei', + sans-serif; +} +body, +ul, +h1, +h3, +h4, +p, +dl, +dd { + padding: 0; + margin: 0; +} +a { + text-decoration: none; + color: #333; + outline: none; +} +i { + font-style: normal; +} +input[type='text'], +input[type='search'], +input[type='password'], +input[type='checkbox'] { + padding: 0; + outline: none; + border: none; + -webkit-appearance: none; + &::placeholder { + color: #ccc; + } +} +img { + max-width: 100%; + max-height: 100%; + vertical-align: middle; + background: #ebebeb url('@/assets/images/200.png') no-repeat center / contain; +} +ul { + list-style: none; +} + +#app { + background: #f5f5f5; + user-select: none; +} + +.container { + width: 1240px; + margin: 0 auto; + position: relative; +} +.ellipsis { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +.ellipsis-2 { + word-break: break-all; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + overflow: hidden; +} + +.fl { + float: left; +} + +.fr { + float: right; +} + +.clearfix:after { + content: '.'; + display: block; + visibility: hidden; + height: 0; + line-height: 0; + clear: both; +} + +// reset element +.el-breadcrumb__inner.is-link { + font-weight: 400 !important; +} diff --git a/src/styles/element/index.scss b/src/styles/element/index.scss new file mode 100644 index 0000000..2d8075b --- /dev/null +++ b/src/styles/element/index.scss @@ -0,0 +1,25 @@ +/* 只需要重写你需要的即可 */ +@forward 'element-plus/theme-chalk/src/common/var.scss' with ( + $colors: ( + 'primary': ( + // 主色 + 'base': #1a4279, + ), + 'success': ( + // 成功色 + 'base': #1d75c7, + ), + 'warning': ( + // 警告色 + 'base': #ffb302, + ), + 'danger': ( + // 危险色 + 'base': #e26237, + ), + 'error': ( + // 错误色 + 'base': #cf4444, + ), + ) +) \ No newline at end of file diff --git a/src/styles/var.scss b/src/styles/var.scss new file mode 100644 index 0000000..52dc2de --- /dev/null +++ b/src/styles/var.scss @@ -0,0 +1,5 @@ +$xtxColor: #1a4279; +$helpColor: #e26237; +$sucColor: #1d75c7; +$warnColor: #ffb302; +$priceColor: #cf4444; \ No newline at end of file diff --git a/src/utils/http.js b/src/utils/http.js new file mode 100644 index 0000000..fbbd632 --- /dev/null +++ b/src/utils/http.js @@ -0,0 +1,20 @@ +import axios from 'axios' + +// 创建axios实例 +const httpInstance = axios.create({ + baseURL: 'http://127.0.0.1:8000', + timeout: 50000 +}) + +// axios请求拦截器 +httpInstance.interceptors.request.use(config => { + return config +}, e => Promise.reject(e)) + +// axios响应式拦截器 +httpInstance.interceptors.response.use(res => res.data, e => { + return Promise.reject(e) +}) + + +export default httpInstance diff --git a/src/views/Layout/components/LayoutGraph.vue b/src/views/Layout/components/LayoutGraph.vue new file mode 100644 index 0000000..41cb442 --- /dev/null +++ b/src/views/Layout/components/LayoutGraph.vue @@ -0,0 +1,826 @@ + + + + + diff --git a/src/views/Layout/components/LayoutHeader.vue b/src/views/Layout/components/LayoutHeader.vue new file mode 100644 index 0000000..7fa422c --- /dev/null +++ b/src/views/Layout/components/LayoutHeader.vue @@ -0,0 +1,136 @@ + + + + + + diff --git a/src/views/Layout/components/LayoutMeum.vue b/src/views/Layout/components/LayoutMeum.vue new file mode 100644 index 0000000..22c7179 --- /dev/null +++ b/src/views/Layout/components/LayoutMeum.vue @@ -0,0 +1,122 @@ + + + + + + + diff --git a/src/views/Layout/components/eventBus.js b/src/views/Layout/components/eventBus.js new file mode 100644 index 0000000..12adcf5 --- /dev/null +++ b/src/views/Layout/components/eventBus.js @@ -0,0 +1,4 @@ +import mitt from 'mitt'; + +const emitter = mitt(); +export default emitter; \ No newline at end of file diff --git a/src/views/Layout/index.vue b/src/views/Layout/index.vue new file mode 100644 index 0000000..a4381ac --- /dev/null +++ b/src/views/Layout/index.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..1b5385c --- /dev/null +++ b/vite.config.js @@ -0,0 +1,42 @@ +import { fileURLToPath, URL } from 'node:url' + +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +// elementPlus +import AutoImport from 'unplugin-auto-import/vite' +import Components from 'unplugin-vue-components/vite' +import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [ + vue(), + + AutoImport({ + resolvers: [ElementPlusResolver()], + }), + Components({ + resolvers: [ + // 配置elementPlus采用sass样式配色系统 + ElementPlusResolver({importStyle:"sass"}), + ], + }), + ], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)) + }, + }, + css: { + preprocessorOptions: { + scss: { + // 自动导入定制化样式文件进行样式覆盖 + additionalData: ` + @use "@/styles/element/index.scss" as *; + @use "@/styles/var.scss" as *; + `, + } + } + } +})