From 7fc6bfe900790ec7c92bce85d5b20a95fbc06e65 Mon Sep 17 00:00:00 2001
From: 李凌 <344137771@qq.com>
Date: Wed, 15 Oct 2025 10:29:30 +0800
Subject: [PATCH] 其他人改的版本

---
 src/assets/img/img_4.png                                   |    0 
 src/i18n/th.js                                             |    5 
 src/views/cryptos/Funds/components/history.css             |    2 
 src/views/my/assets.vue                                    |  909 +++--
 src/i18n/Italy.js                                          |    5 
 src/components/Transform/perpetual-order/index.vue         |   13 
 src/i18n/Japanese.js                                       |    5 
 src/components/fx-footer/index.vue                         |   10 
 src/i18n/en.js                                             |    5 
 .vite/deps/_metadata.json                                  |    8 
 src/assets/css/flex.scss                                   |  104 
 src/assets/img/img_5.png                                   |    0 
 src/views/cryptos/AssetsCenter/components/history.css      |    2 
 .vite/deps/package.json                                    |    3 
 src/assets/css/copy.scss                                   |    7 
 src/i18n/fa.js                                             |    5 
 src/views/ICO/ico.vue                                      |  234 
 src/assets/img/img_2.png                                   |    0 
 src/assets/theme/white/index.scss                          |    4 
 src/router/index.js                                        |   10 
 src/assets/img/img_3.png                                   |    0 
 src/components/Transform/list-quotation/index.vue          |   30 
 yarn.lock                                                  | 4648 ++++++++++++++++---------------
 src/components/Transform/perpetual-open/index.vue          |  565 ++-
 src/i18n/Deutsch.js                                        |    5 
 src/views/ICO/icoRecord.vue                                |  217 
 src/assets/img/img_9.png                                   |    0 
 src/components/Transform/perpetual-position-list/index.vue |  158 
 src/views/cryptos/Withdraw/withdrawPage.vue                |   38 
 src/assets/css/copy2.scss                                  |   25 
 src/i18n/vi.js                                             |    5 
 src/components/Transform/kline-charts/index.vue            |   56 
 src/i18n/zhcn.js                                           |    6 
 src/config/index.js                                        |   12 
 src/views/customerService/index.vue                        |   29 
 src/assets/img/img_1.png                                   |    0 
 src/service/user.api.js                                    |    8 
 src/i18n/korean.js                                         |    5 
 src/views/my/transfer.vue                                  |  251 
 src/views/my/index.vue                                     |  296 +
 src/components/Transform/trade-order-area/index.vue        |    6 
 src/assets/img/img.png                                     |    0 
 src/assets/img/img_7.png                                   |    0 
 src/assets/img/img_6.png                                   |    0 
 src/views/cryptos/promote/init.scss                        |    9 
 src/views/homePage/index.vue                               |  878 +++--
 src/i18n/cn.js                                             |    5 
 src/assets/init.scss                                       |    8 
 src/components/otcCircle/index.vue                         |    3 
 src/assets/css/variable.scss                               |   13 
 src/assets/img/img_8.png                                   |    0 
 src/views/cryptos/Recharge/rechargeList.vue                |   61 
 tailwind.config.cjs                                        |    4 
 src/views/cryptos/pledgeLoan/index.vue                     |    6 
 src/App.vue                                                |    3 
 src/views/cryptos/Recharge/rechargePage.vue                |    8 
 56 files changed, 4,801 insertions(+), 3,888 deletions(-)

diff --git a/.vite/deps/_metadata.json b/.vite/deps/_metadata.json
new file mode 100644
index 0000000..aab39d6
--- /dev/null
+++ b/.vite/deps/_metadata.json
@@ -0,0 +1,8 @@
+{
+  "hash": "060e11be",
+  "configHash": "65c375a6",
+  "lockfileHash": "575da5f4",
+  "browserHash": "548e2bcb",
+  "optimized": {},
+  "chunks": {}
+}
\ No newline at end of file
diff --git a/.vite/deps/package.json b/.vite/deps/package.json
new file mode 100644
index 0000000..3dbc1ca
--- /dev/null
+++ b/.vite/deps/package.json
@@ -0,0 +1,3 @@
+{
+  "type": "module"
+}
diff --git a/src/App.vue b/src/App.vue
index ad992d0..f575dbe 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -104,6 +104,7 @@
 <style lang="scss">
 @import "assets/init";
 @import "assets/mixin";
+@import "assets/css/flex";
 // @import "assets/css/variable.scss";
 
 .app-container,
@@ -417,4 +418,4 @@
 .van-nav-bar__left {
 	padding: 0 16px !important;
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/src/assets/css/copy.scss b/src/assets/css/copy.scss
index 180fd41..aa672f6 100644
--- a/src/assets/css/copy.scss
+++ b/src/assets/css/copy.scss
@@ -54,8 +54,9 @@
 $border-grey: #E5E7ED;
 $blue: #1194F7;
 $light-blue: #1199FA;
-$red: #F43368;
-$green: #06CDA5;
+$red: #f14b3f;
+//$green: #24c18d;
+$green: #24c18d;
 $purple: #9A4DFD;
 $night: #131a2e;
 // 第三版
@@ -1515,4 +1516,4 @@
 //line-height
 .lh-152 {
     line-height: 152px;
-}
\ No newline at end of file
+}
diff --git a/src/assets/css/copy2.scss b/src/assets/css/copy2.scss
index c743531..2550762 100644
--- a/src/assets/css/copy2.scss
+++ b/src/assets/css/copy2.scss
@@ -7,7 +7,6 @@
     font-size: 1.6rem;
 }
 html,body{
-    // width: 8.28rem;
     max-width: 828px;
     margin: 0 auto;
     height: 100%;
@@ -17,15 +16,11 @@
 body {
     width: 100%;
     height: 100%;
-    // overflow: hidden;
     font-size:30px;
     font-family: "微软雅黑";
     font-weight: 400;
     padding-bottom: constant(safe-area-inset-bottom);
     padding-bottom: env(safe-area-inset-bottom);
-        /*兼容 IOS>11.2*/
-    // font-size: .32rem;
-    // background: #9E9FA3;
 }
 @supports (bottom: constant(safe-area-inset-bottom)) {
     body {
@@ -41,12 +36,10 @@
     touch-action: none;
   }
 
-/* 颜色值 */
 $white:#ffffff;
 $black:#000000;
 $dark-black:#22262F;
 $grey:#868C9A;
-// $grey: #f3f3f3;
 $dark-grey: #868C9A;
 $light-grey:#C8CAD2;
 $border-grey:#E5E7ED;
@@ -56,7 +49,6 @@
 $green:#2EBD85;
 $purple:#9A4DFD;
 $night:#121212;
-// overwrite vant
 
 .mining-pledge {
     .van-tabs__wrap {
@@ -77,9 +69,7 @@
     --theme-color: #2C78F8;
 }
 
-/***************** global use framework *****************/
 
-/* flex */
 .flex { display: flex; }
 .flex-row { flex-direction: row;}
 .flex-col { flex-direction: column; }
@@ -98,30 +88,22 @@
 .flex-nowrap { flex-wrap: nowrap;}
 .align-center{align-content:center;}
 
-/* display */
 .block { display: block;}
 
-/* position */
 .absolute { position: absolute; }
 .relative { position: relative; }
 .fixed { position: fixed; }
 .z-10 { z-index: 10;}
 
-/* font */
 .font-bold { font-weight: bold; }
 .font-normal { font-weight: normal; }
 
-/* text */
 .text-center { text-align: center;}
 .text-left { text-align: left;}
 .text-right { text-align: right;}
 .break-word{word-break: break-word}
-/* padding margin font */
 @for $i from 0 through 50 {
 
-    // font-weight
-    // font-size
-    // margin
     .ml-#{$i} {
         margin-left: #{$i}px
     }
@@ -142,7 +124,6 @@
         margin-top: #{$i}px;
         margin-bottom: #{$i}px;
     }
-    // padding
     .pl-#{$i} {
         padding-left: #{$i}px
     }
@@ -163,20 +144,16 @@
         padding-top: #{$i}px;
         padding-bottom: #{$i}px;
     }
-    // width
     .w-#{$i} {
         width: #{$i}px
     }
-    // height
 }
 
 @for $j from 1 through 100 {
 
-    // height
     .h-#{$j} {
         height: #{$j}px
     }
-    //line-height
     .lh-#{$j} {
         line-height: #{$j}px
     }
@@ -188,7 +165,6 @@
 .h-screen { height: 100%;}
 .h-1000 { height: 1000px;}
 
-/* background */
 .bg-white { background: $white; }
 .bg-black { background: #121212;}
 .bg-night{
@@ -212,7 +188,6 @@
 .bg-grey-f3 { background: $grey;}
 
 
-/* color */
 .text-white { color: $white; }
 .text-black { color: $black; }
 .text-dark-black{ color:$dark-black;}
diff --git a/src/assets/css/flex.scss b/src/assets/css/flex.scss
new file mode 100644
index 0000000..c29ac0c
--- /dev/null
+++ b/src/assets/css/flex.scss
@@ -0,0 +1,104 @@
+.flex {
+  display: flex;
+  flex-direction: row;
+
+  &-wrap {
+    flex-wrap: wrap;
+
+    &-no {
+      flex-wrap: nowrap;
+    }
+  }
+
+  &-centerX {
+    display: flex;
+    flex-direction: row;
+    justify-content: center;
+  }
+
+  &-centerY {
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+  }
+
+  &-center {
+    display: flex;
+    flex-direction: row;
+    justify-content: center;
+    align-items: center;
+  }
+
+  &-position {
+
+    &-between {
+      display: flex;
+      flex-direction: row;
+      justify-content: space-between;
+    }
+
+    &-end-to-start {
+      display: flex;
+      flex-direction: row;
+      justify-content: flex-end;
+    }
+
+  }
+
+}
+
+.flexY {
+  display: flex;
+  flex-direction: column;
+
+  &-centerY {
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+  }
+
+  &-centerX {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+  }
+
+  &-center {
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+  }
+
+
+  &-position {
+
+    &-between {
+      display: flex;
+      flex-direction: column;
+      justify-content: space-between;
+    }
+
+    &-end-to-start {
+      display: flex;
+      flex-direction: column;
+      justify-content: flex-end;
+    }
+
+  }
+}
+
+.textLongToHidden {
+  flex-grow: 0;
+  white-space: pre-line;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  display: -webkit-box;
+  -webkit-box-orient: vertical;
+  -moz-box-orient: vertical;
+  -webkit-line-clamp: 1;
+
+}
+
+
+
diff --git a/src/assets/css/variable.scss b/src/assets/css/variable.scss
index 4802f02..656f1cc 100644
--- a/src/assets/css/variable.scss
+++ b/src/assets/css/variable.scss
@@ -7,9 +7,9 @@
 $text_color:#333;  //文字颜色
 $text_color1:#868D9A;  //文字浅色
 $text_color2:#fff;  // 白色文字
-$text_color3:#CFD5EC;  // 
+$text_color3:#CFD5EC;  //
 $text_color4:#333;  //浅色标题背景文字颜色
-$text_color5:#878A96;  // 
+$text_color5:#878A96;  //
 $text_color6:#B7BDD1;  // 文字更浅色
 // $tab_background:#27293B; //tab切换背景颜色
 $tab_background:#f7f7f7; //tab切换背景颜色
@@ -48,7 +48,8 @@
 $search_background: #1B233B;
 $pledgeLoan_background:#00E3FF;
 $bg_yellow:#f7b600;
-$log-c: #282828;
+//$log-c: #282828;
+$log-c: #fff;
 $icon-bg:#dbdbdb;
 $inp-b: #f7f7f7;
 // $text_color:$log-c;
@@ -174,7 +175,7 @@
   $border-grey: #E5E7ED;
   $blue: #1194F7;
   $light-blue: #1199FA;
-  $red: #F43368;
-  $green: #06CDA5;
+  $red: #f14b3f;
+  $green: #24c18d;
   $purple: #9A4DFD;
-  $night: #131a2e;
\ No newline at end of file
+  $night: #131a2e;
diff --git a/src/assets/img/img.png b/src/assets/img/img.png
new file mode 100644
index 0000000..c414f65
--- /dev/null
+++ b/src/assets/img/img.png
Binary files differ
diff --git a/src/assets/img/img_1.png b/src/assets/img/img_1.png
new file mode 100644
index 0000000..7a63f2d
--- /dev/null
+++ b/src/assets/img/img_1.png
Binary files differ
diff --git a/src/assets/img/img_2.png b/src/assets/img/img_2.png
new file mode 100644
index 0000000..0b5a521
--- /dev/null
+++ b/src/assets/img/img_2.png
Binary files differ
diff --git a/src/assets/img/img_3.png b/src/assets/img/img_3.png
new file mode 100644
index 0000000..630f833
--- /dev/null
+++ b/src/assets/img/img_3.png
Binary files differ
diff --git a/src/assets/img/img_4.png b/src/assets/img/img_4.png
new file mode 100644
index 0000000..63964cc
--- /dev/null
+++ b/src/assets/img/img_4.png
Binary files differ
diff --git a/src/assets/img/img_5.png b/src/assets/img/img_5.png
new file mode 100644
index 0000000..4e0bc37
--- /dev/null
+++ b/src/assets/img/img_5.png
Binary files differ
diff --git a/src/assets/img/img_6.png b/src/assets/img/img_6.png
new file mode 100644
index 0000000..95ce0d3
--- /dev/null
+++ b/src/assets/img/img_6.png
Binary files differ
diff --git a/src/assets/img/img_7.png b/src/assets/img/img_7.png
new file mode 100644
index 0000000..7a63f2d
--- /dev/null
+++ b/src/assets/img/img_7.png
Binary files differ
diff --git a/src/assets/img/img_8.png b/src/assets/img/img_8.png
new file mode 100644
index 0000000..61f91cd
--- /dev/null
+++ b/src/assets/img/img_8.png
Binary files differ
diff --git a/src/assets/img/img_9.png b/src/assets/img/img_9.png
new file mode 100644
index 0000000..7507215
--- /dev/null
+++ b/src/assets/img/img_9.png
Binary files differ
diff --git a/src/assets/init.scss b/src/assets/init.scss
index 3e3f006..cfcef7d 100644
--- a/src/assets/init.scss
+++ b/src/assets/init.scss
@@ -55,8 +55,8 @@
   $border-grey: #E5E7ED;
   $blue: #1194F7;
   $light-blue: #1199FA;
-  $red: #F43368;
-  $green: #06CDA5;
+  $red: #f14b3f;
+  $green: #24c18d;
   $purple: #9A4DFD;
   $night: #131a2e;
   // overwrite vant
@@ -1496,6 +1496,6 @@
   .h-100{
     height: 100px;
   }
- 
 
-}
\ No newline at end of file
+
+}
diff --git a/src/assets/theme/white/index.scss b/src/assets/theme/white/index.scss
index 04f6085..477f355 100644
--- a/src/assets/theme/white/index.scss
+++ b/src/assets/theme/white/index.scss
@@ -2,7 +2,7 @@
 $text_color:#333;
 $text_color1:#868C9A;
 $text_color2:#B7BDD1;
-$text_color3: #000000; // 
+$text_color3: #000000; //
 $tab_background:#F5F5F5;
 $active_line:#1194F7;
 $footer_background:#fff;
@@ -110,4 +110,4 @@
 }
 .c2cTipBackground {
     background: $c2c_tip_background;
-}
\ No newline at end of file
+}
diff --git a/src/components/Transform/kline-charts/index.vue b/src/components/Transform/kline-charts/index.vue
index 4a289ac..f15c073 100644
--- a/src/components/Transform/kline-charts/index.vue
+++ b/src/components/Transform/kline-charts/index.vue
@@ -9,12 +9,12 @@
         </template>
         <template v-else>
           <template v-if="isNight">
-            <li v-for="item in timeList" :key="item.id" class="mr-10" :class="{ 'text-white': item.id === timeValue.id }"
-              @click="choiceTime(item)">{{ item.text }}</li>
+            <li v-for="item in timeList" :key="item.id" class="mr-10"
+              :class="{ 'text-white': item.id === timeValue.id }" @click="choiceTime(item)">{{ item.text }}</li>
           </template>
           <template v-if="!isNight">
-            <li v-for="item in timeList" :key="item.id" class="mr-10" :class="{ 'text-black': item.id === timeValue.id }"
-              @click="choiceTime(item)">{{ item.text }}</li>
+            <li v-for="item in timeList" :key="item.id" class="mr-10"
+              :class="{ 'text-black': item.id === timeValue.id }" @click="choiceTime(item)">{{ item.text }}</li>
           </template>
         </template>
       </ul>
@@ -49,6 +49,7 @@
 <script>
 import { init, dispose } from 'klinecharts'
 let chart = null
+let timer = null
 import { _getKline } from "@/service/trade.api";
 import config from './config'
 import { Loading } from 'vant';
@@ -69,7 +70,6 @@
       chartLoading: true, //加载动画
       paneId: '',
       chartData: [], // 图表数据
-      timer: null
     }
   },
   computed: {
@@ -135,7 +135,6 @@
       this.fetchData()
     },
     updateKey() { // 更新charts
-
       const dataList = chart.getDataList()
       if (dataList.length > 0) {
         const lastData = dataList[dataList.length - 1]
@@ -191,25 +190,27 @@
         chart.applyNewData(data);
         this.$emit('updataLine', false)
       })
+      
       // TODO:轮询,删掉上面那段,添加到定时器中
-      // this.timer = setInterval(() => {
-      //   _getKline(this.symbol, this.timeValue.time || time).then(data => {
-      //     this.chartLoading = false
-      //     data.map(item => {
-      //       item.timestamp = item.ts
-      //     })
-      //     let str = data[0] ? data[0].close.toString() : ''
-      //     let length = 2
-      //     if (str.indexOf('.') != -1) {
-      //       length = str.split('.')[1].length
-      //     }
-      //     //let length = data[0] ? data[0].close.toString().split('.')[1].length : 4
-      //     chart.setPriceVolumePrecision(length, 2)
-      //     this.setChartType()
-      //     chart.applyNewData(data);
-      //     this.$emit('updataLine', false)
-      //   })
-      // }, 1000);
+      this.clearTimer()
+      timer = setInterval(() => {
+        _getKline(this.symbol, this.timeValue.time || time).then(data => {
+          this.chartLoading = false
+          data.map(item => {
+            item.timestamp = item.ts
+          })
+          let str = data[0] ? data[0].close.toString() : ''
+          let length = 2
+          if (str.indexOf('.') != -1) {
+            length = str.split('.')[1].length
+          }
+          //let length = data[0] ? data[0].close.toString().split('.')[1].length : 4
+          chart.setPriceVolumePrecision(length, 2)
+          this.setChartType()
+          chart.applyNewData(data);
+          this.$emit('updataLine', false)
+        })
+      }, 30000);
     },
     setChartType() {
       let type = 'area'
@@ -234,8 +235,8 @@
       chart.createTechnicalIndicator(type, false, { id: this.paneId })
     },
     clearTimer() {
-      clearInterval(this.timer)
-      this.timer = null
+      clearInterval(timer)
+      timer = null
     },
   },
   deactivated() {
@@ -248,5 +249,4 @@
 // #kline {
 //   // min-height: 828px;
 //   height: 1200px;
-// }
-</style>
+// }</style>
diff --git a/src/components/Transform/list-quotation/index.vue b/src/components/Transform/list-quotation/index.vue
index 8431552..c743ddd 100644
--- a/src/components/Transform/list-quotation/index.vue
+++ b/src/components/Transform/list-quotation/index.vue
@@ -1,6 +1,19 @@
 <template>
   <div class="list-quatation">
     <ex-tabs @tabs="onTabs" v-if="tabShow"></ex-tabs>
+    <div style="font-size: 12px">
+      <div class="flex-centerY" style="color: #999;margin-top: 10px">
+        <div style="flex: 2">
+          {{$t("名称/交易额")}}
+        </div>
+        <div style="flex: 1;text-align: end;margin-right: 15px">
+          {{$t("最新价")}}
+        </div>
+        <div style="flex: 1;text-align: end">
+          {{$t("涨跌幅")}}
+        </div>
+      </div>
+    </div>
     <van-list>
       <van-cell v-if="tabHeadShow">
         <div class="flex items-center w-full text-grey font-26">
@@ -32,19 +45,24 @@
                     <span class="textColor font-600">
                       {{ item.symbol_data && item.symbol_data.toUpperCase() || '--' }}
                     </span>
-                    <span class="text-grey" style="position: relative; top: 1px">
+                    <span class="text-grey" style="position: relative; top: 1px;font-size: 12px;color: #333">
                       /USDT
                     </span>
                     <!-- <span class="font-24 text-grey" style="position: relative; top: 1px">
                       {{ item.name && item.name.replace(item.symbol.toUpperCase(), '') || '--' }}</span> -->
                   </span>
-                  <span class="font-12 text-grey text-left leading-none">{{ $t('成交量') + ' ' + (item.amount *
-                    1).toFixed(2) }}</span>
+<!--                  <span class="font-12 text-grey text-left leading-none">{{ $t('成交量') + ' ' + (item.amount *-->
+<!--                    1).toFixed(2) }}</span>-->
+                  <div>
+                    <span class="font-12 text-grey text-left leading-none" style="font-size: 10px;color: #999">{{ (item.amount *1).toFixed(2) }}</span>
+                    <span class="font-12 text-grey text-left leading-none" style="font-size: 10px;color: #999"> M USDT</span>
+                  </div>
                 </p>
               </li>
-              <li class="flex flex-col items-end mid">
-                <p class="textColor font-16 font-600">{{ item.close || '--' }}</p>
-                <p class="font-12 text-grey leading-none">{{ currency.currency_symbol }}
+              <li class="flex flex-col items-end mid" >
+<!--                <p class="textColor font-16 font-600">{{ item.close || '&#45;&#45;' }}</p>-->
+                <p class="font-12 text-grey leading-none" style="font-size: 12px;color: #333">
+<!--                  {{ currency.currency_symbol }}-->
                   {{ item.close && item.symbol_data.toUpperCase() == 'SHIB' ? (item.close * currency.rate).toFixed(8) :
                     (item.close *
                       currency.rate).toFixed(2) || '--' }}</p>
diff --git a/src/components/Transform/perpetual-open/index.vue b/src/components/Transform/perpetual-open/index.vue
index 3604a08..7875660 100644
--- a/src/components/Transform/perpetual-open/index.vue
+++ b/src/components/Transform/perpetual-open/index.vue
@@ -6,13 +6,13 @@
 
         <div class="w-180 h-60 lh-60 rounded tabBackground textColor" v-if="selectIndex / 1 === 1">
           <div @click="locationShow = !locationShow" style="height:100%; box-sizing: border-box"
-            class="relative word-30 pl-28 pr-10 w-180 h-60 tabBackground select-wrap flex justify-between items-center">
+               class="relative word-30 pl-28 pr-10 w-180 h-60 tabBackground select-wrap flex justify-between items-center">
             {{ locationTitle }}
-            <img src="../../../assets/image/public/grey-select.png" alt="select-icon" class="w-22 h-11" />
+            <img src="../../../assets/image/public/grey-select.png" alt="select-icon" class="w-22 h-11"/>
             <div v-if="locationShow" class="options tabBackground w-180 absolute top-97 left-0 z-10">
               <div class="w-full" @click.stop="locationSelect(item)"
-                :class="{ 'option-active': form.lever_rate === item.lever_rate }" :value="item.lever_rate"
-                v-for="item in locationList" :key="item.type">
+                   :class="{ 'option-active': form.lever_rate === item.lever_rate }" :value="item.lever_rate"
+                   v-for="item in locationList" :key="item.type">
                 {{ item.title }}
               </div>
             </div>
@@ -21,13 +21,13 @@
 
         <div class="w-140 h-60 lh-60 ml-29 rounded tabBackground textColor" v-if="selectIndex / 1 === 1">
           <div @click="showOptions = !showOptions" style="height:100%; box-sizing: border-box"
-            class="relative word-30 pl-28 pr-10 w-140 h-60 tabBackground select-wrap flex justify-between items-center">
+               class="relative word-30 pl-28 pr-10 w-140 h-60 tabBackground select-wrap flex justify-between items-center">
             {{ form.lever_rate }}x <img src="../../../assets/image/public/grey-select.png" alt="select-icon"
-              class="w-22 h-11" />
+                                        class="w-22 h-11"/>
             <div v-if="showOptions" class="options tabBackground w-140 absolute top-97 left-0 z-10">
               <div class="w-full" @click.stop="handleChoose(item)"
-                :class="{ 'option-active': form.lever_rate === item.lever_rate }" :value="item.lever_rate"
-                v-for="item in initData.lever" :key="item.id">
+                   :class="{ 'option-active': form.lever_rate === item.lever_rate }" :value="item.lever_rate"
+                   v-for="item in initData.lever" :key="item.id">
                 {{ item.lever_rate }}x
               </div>
             </div>
@@ -36,58 +36,176 @@
       </div>
       <div class="pt-30 pb-20">
         <div class="flex justify-between">
-          <div class="w-440 flex flex-col">
+          <div>
+            <div class="w-290 flex justify-between text-grey font-22">
+              <div>
+                <div>{{ $t("价格") }}</div>
+                <div class="mt-4">{{ queryType === 'cryptos' ? '(USDT)' : '(USD)' }}</div>
+              </div>
+              <div class="text-right items-end justify-end">
+                <div class="">{{ $t("数量") }}</div>
+                <div class="mt-4">{{
+                    queryType === 'cryptos' ?
+                        `(${symbol_data.toUpperCase() || "--"})` : '(USD)'
+                  }}
+                </div>
+              </div>
+            </div>
+            <div class="deep-div">
+              <!-- <div v-if="showType == 0 || showType == 2" class="w-290 flex justify-between pt-1  font-26"
+                v-for="(item, index) in redData" :key="item + index" @click="onQuickPrice(item.price)" :style="{
+                  background:
+                    `linear-gradient(to right,${THEME == 'dark' ? '#131A2E' : '#fff'
+                    } 0%` +
+                    (1 - item.amount / greenData[greenData.length - 1].amount) *
+                    100 +
+                    '%,rgba(246,70,93,.1) ' +
+                    (1 - item.amount / greenData[greenData.length - 1].amount) *
+                    100 +
+                    '%,rgba(246,70,93,.1) 100%)',
+                }"> -->
+
+              <div v-show="(showType == 0 || showType == 2)" class="w-290 flex justify-between pt-1 font-26"
+                   v-for="(item, index) in redData" :key="item + index" @click="onQuickPrice(item.price)" :style="{
+                  background:
+                    `linear-gradient(to right,${$store.state.vant.theme == 'dark' ? '#131A2E' : '#fff'
+                    } 0%` +
+                    (1 - item.amount / greenData[greenData.length - 1].amount) *
+                    100 +
+                    '%,rgba(246,70,93,.1) ' +
+                    (1 - item.amount / greenData[greenData.length - 1].amount) *
+                    100 +
+                    '%,rgba(246,70,93,.1) 100%)'
+                }">
+                <div class="text-red">{{ item.price }}</div>
+                <div class="text-right textColor" v-if="symbol == 'shib'">
+                  {{ fixDate(item.amount, $i18n) || "--" }}
+                </div>
+                <div class="text-right textColor" v-else>
+                  {{ item.amount || "--" }}
+                </div>
+              </div>
+            </div>
+            <div class="w-290 text-red pt-5 font-34 font-700 text-center">
+              {{ price || '--' }}
+            </div>
+            <div class="pb-5 font-20 text-center">
+              ≈ {{
+                ((price *
+                    currency.rate).toFixed(price.toString().split('.')[1] ?
+                    price.toString().split('.')[1].length : 2)) || '--'
+              }}
+            </div>
+            <div class="deep-div">
+              <!-- <div v-if="showType == 0 || showType == 1" class="w-290 flex justify-between pt-1 font-26"
+                v-for="(item, index) in greenData" :key="index" @click="onQuickPrice(item.price)" :style="{
+                  background:
+                    `linear-gradient(to right,${THEME == 'dark' ? '#131A2E' : '#fff'
+                    } 0%` +
+                    (1 - item.amount / greenData[greenData.length - 1].amount) *
+                    100 +
+                    '%,rgba(94,186,137,.1) ' +
+                    (1 - item.amount / greenData[greenData.length - 1].amount) *
+                    100 +
+                    '%,rgba(94,186,137,.1) 100%)',
+                }"> -->
+
+              <div v-if="showType == 0 || showType == 1" class="w-290 flex justify-between pt-1 font-26"
+                   v-for="(item, index) in greenData" :key="index" @click="onQuickPrice(item.price)" :style="{
+                  background:
+                    `linear-gradient(to right,${$store.state.vant.theme == 'dark' ? '#131A2E' : '#fff'
+                    } 0%` +
+                    (1 - item.amount / greenData[greenData.length - 1].amount) *
+                    100 +
+                    '%,rgba(94,186,137,.1) ' +
+                    (1 - item.amount / greenData[greenData.length - 1].amount) *
+                    100 +
+                    '%,rgba(94,186,137,.1) 100%)',
+                }">
+                <div class="text-green">{{ item.price }}</div>
+                <div class="text-right textColor" v-if="symbol_data == 'shib'">
+                  {{ fixDate(item.amount, $i18n) || "--" }}
+                </div>
+                <div class="text-right textColor" v-else>
+                  {{ item.amount || "--" }}
+                </div>
+
+              </div>
+            </div>
+            <div class="flex k-select-box">
+              <div class=" mb-22 select-box pl-5 pr-5" style="position: relative">
+                <div class="flex justify-between items-center w-full h-70" @click="selectArryBtn">
+                  <!-- <img src="@/assets/image/public/warn.png" alt="warn-icon" class="w-25 h-25 pl-20"/> -->
+                  <div class="pl-16 font-28 textColor" style="width: 80%">
+                    {{ dataArrTitle }}
+                  </div>
+                  <img src="../../../assets/image/public/grey-select.png" alt="select-icon" class="w-22 h-11 mr-10"/>
+                </div>
+                <div class="option-box" v-show="arryIsShow">
+                  <div class="font-28" v-for="(item, index) in selectDataArry" :key="index"
+                       @click="selectItemArry(item)">
+                    {{ item.name }}
+                  </div>
+                </div>
+              </div>
+              <div @click="isSelectShow = true">
+                <img src="../../../assets/image/selectIcon.png" alt="warn-icon" class="w-36 h-30 ml-10"/>
+              </div>
+            </div>
+          </div>
+          <div style="margin-left: 20px" class="w-440 flex flex-col">
             <template v-if="selectIndex == 1">
               <div class="flex items-center h-66 greyBg textColor">
                 <p class="font-28 flex-1 flex items-center justify-center h-66 "
-                  :class="currentType == 'long' ? 'long' : ''" @click="changeTab('long')">
+                   :class="currentType == 'long' ? 'long' : ''" @click="changeTab('long')">
                   {{ $t("开多") }}
                 </p>
                 <p class="font-28 flex-1 flex items-center justify-center h-66"
-                  :class="currentType == 'short' ? 'short' : ''" @click="changeTab('short')">
+                   :class="currentType == 'short' ? 'short' : ''" @click="changeTab('short')">
                   {{ $t("开空") }}
                 </p>
               </div>
               <div class="mt-22 mb-30" style="position:relative;">
                 <div class="greyBg flex justify-between items-center w-full h-76 greyBg textColor" @click="selectBtn">
-                  <img src="../../../assets/image/public/warn.png" alt="warn-icon" class="w-25 h-25 ml-20" />
+                  <img src="../../../assets/image/public/warn.png" alt="warn-icon" class="w-25 h-25 ml-20"/>
                   <div class="text-center" style="width:80%;">{{ title }}</div>
-                  <img src="../../../assets/image/public/grey-select.png" alt="select-icon" class="w-22 h-11 mr-20" />
+                  <img src="../../../assets/image/public/grey-select.png" alt="select-icon" class="w-22 h-11 mr-20"/>
                 </div>
                 <div class="option-box" v-show="isShow">
                   <div class="font-30" v-for="item in selectData" :key="item.type" @click="selectItem(item)">{{
-                    item.title
-                  }}</div>
+                      item.title
+                    }}
+                  </div>
                 </div>
               </div>
             </template>
             <contract-futrue v-if="selectIndex == 2 && JSON.stringify(initFutrue.para) != '[]'" class="mb-20"
-              :initFutrue="initFutrue" @paraId="onParaId" />
+                             :initFutrue="initFutrue" @paraId="onParaId"/>
             <div class="h-76 lh-76 greyBg mb-30 flex pr-20 justify-center greyBg textColor" v-if="selectIndex == 1">
               <input placeholder="" class="greyBg w-full pl-20  h-76 border-none text-left rounded-lg"
-                :disabled="type / 1 === 1" @focus="focus = true" v-model="form.price" />
+                     :disabled="type / 1 === 1" @focus="focus = true" v-model="form.price"/>
               <span class="ml-20">{{ queryType === 'cryptos' ? 'USDT' : 'USD' }}</span>
             </div>
 
             <div class="w-440 h-76" v-if="selectIndex == 2"></div>
             <div class="w-440 flex items-center greyBg h-76 lh-76 pr-5 pl-5 greyBg" v-if="initFutrue">
               <div v-if="selectIndex == 1 && initFutrue.para && initFutrue.para.length > 0"
-                class="w-80 flex items-center justify-center" style="height:100%;" @click="onReduce">
-                <img src="../../../assets/image/public/reduce.png" alt="add" class="w-30 h-6" />
+                   class="w-80 flex items-center justify-center" style="height:100%;" @click="onReduce">
+                <img src="../../../assets/image/public/reduce.png" alt="add" class="w-30 h-6"/>
               </div>
               <input v-if="selectIndex == 1" placeholder="USDT" class="border-none greyBg text-center textColor"
-                style="width: 17rem;border-radius: 5rem;" v-model="form.amount" type="number" @input="onInput" />
+                     style="width: 17rem;border-radius: 5rem;" v-model="form.amount" type="number" @input="onInput"/>
 
               <input v-if="selectIndex == 2 && JSON.stringify(initFutrue.para) != '[]'"
-                :placeholder="($t('最少') + initFutrue && initFutrue.para ? $t('最小金额') + initFutrue.para[paraIndex].buy_min : '')"
-                class="border-none greyBg text-center textColor" style="width: 17rem;border-radius: 5rem;"
-                v-model="form.amount" type="number" @input="onInput" />
+                     :placeholder="($t('最少') + initFutrue && initFutrue.para ? $t('最小金额') + initFutrue.para[paraIndex].buy_min : '')"
+                     class="border-none greyBg text-center textColor" style="width: 17rem;border-radius: 5rem;"
+                     v-model="form.amount" type="number" @input="onInput"/>
 
               <div v-else class="flex-1"></div>
 
               <div class="w-80 flex items-center justify-center" style="height:100%;">
                 <template v-if="selectIndex == 1">
-                  <img @click="onAdd" src="../../../assets/image/public/add.png" alt="reduce" class="w-30 h-30" />
+                  <img @click="onAdd" src="../../../assets/image/public/add.png" alt="reduce" class="w-30 h-30"/>
                 </template>
                 <template v-else>
                   <span class="textColor">{{ queryType === 'cryptos' ? 'USDT' : 'USD' }}</span>
@@ -122,9 +240,34 @@
               <!-- 张数输入 -->
               <!-- <amount-slider ref="sliderRef" :maxAmount="maxUSDT" @getAmount="getAmount"
                 :propsAmount="form.amount"></amount-slider> -->
-              <div class="btns_box">
-                <div :class="bfbindex == index ? 'btns_box_boxs' : 'btns_box_box'" @click="bfbclick(item, index)"
-                  v-for="(item, index) in bfblist" :key="index">{{ item.name }}%</div>
+              <!--              <div class="btns_box">-->
+              <!--                <div :class="bfbindex == index ? 'btns_box_boxs' : 'btns_box_box'" @click="bfbclick(item, index)"-->
+              <!--                  v-for="(item, index) in bfblist" :key="index">{{ item.name }}%</div>-->
+              <!--              </div>-->
+              <div style="margin: 0 10px">
+                <div @click="handleClick"
+                     @touchstart="handleTouchStart"
+                     @touchmove="handleTouchMove"
+                     @touchend="handleTouchEnd"   style="width: 100%;height:20px;position: relative" class="flex-centerY progress-bar">
+                  <div
+                      style="position: absolute;left: 0;width: 100%;height:2px;margin-top: 1px;border-radius: 90px;background: #f1f1f1">
+                    <div class="progress-in flex flex-position-end-to-start" :style="{width:progressRate+'%'}" >
+                      <div class="progress-icon"></div>
+                    </div>
+                  </div>
+                  <div v-for="(item, index) in bfblist" class="progress-i flex"
+                       :style="{flex:index==bfblist.length-1?0:1}"
+                       :class="{'flex-position-end-to-start':index==bfblist.length-1}">
+                    <div class="progress-icon1" @click.stop="bfbclick(parseInt(item.name))" ></div>
+                  </div>
+                </div>
+                <div style="width: 100%;position: relative;margin-top: 10px" class="flex-centerY">
+                  <div v-for="(item, index) in bfblist" @click="bfbclick(parseInt(item.name))" class="progress-i flex"
+                       :style="{flex:index==bfblist.length-1?0:1}"
+                       :class="{'flex-position-end-to-start':index==bfblist.length-1}">
+                    {{ item.name }}%
+                  </div>
+                </div>
               </div>
             </template>
             <template v-if="selectIndex == 1 && userInfo.token">
@@ -145,8 +288,10 @@
               </div> -->
               <div class="flex justify-between mt-30">
                 <div class="text-grey">{{ $t("建仓手续费") }}</div>
-                <div class="textColor">{{ reserve(userInfo.perpetual_contracts_status === '1' ?
-                  initData.fee * (form.amount / 1) : initData.fee * (form.amount / 1) * form.lever_rate, 6) }}
+                <div class="textColor">{{
+                    reserve(userInfo.perpetual_contracts_status === '1' ?
+                        initData.fee * (form.amount / 1) : initData.fee * (form.amount / 1) * form.lever_rate, 6)
+                  }}
                   {{ queryType === 'cryptos' ? 'USDT' : 'USD' }}
                 </div>
               </div>
@@ -157,15 +302,15 @@
               <div class="textColor">{{ initFutrue.amount }} USDT</div>
             </div>
             <div class="flex font-24 text-grey justify-between mt-20"
-              v-if="selectIndex == 2 && JSON.stringify(initFutrue.para) != '[]'">
+                 v-if="selectIndex == 2 && JSON.stringify(initFutrue.para) != '[]'">
               <div>{{ $t("手续费") }}</div>
               <div class="textColor">
                 {{
                   (
-                    form.amount *
-                    (initFutrue && initFutrue.para
-                      ? initData.para[paraIndex].unit_fee
-                      : "")
+                      form.amount *
+                      (initFutrue && initFutrue.para
+                          ? initData.para[paraIndex].unit_fee
+                          : "")
                   ).toFixed(2)
                 }}
                 {{ queryType === 'cryptos' ? 'USDT' : 'USD' }}
@@ -174,34 +319,34 @@
 
             <template v-if="userInfo.token">
               <template v-if="selectIndex == 1">
-                <div class="w-full h-80 lh-80 bg-green flex text-white mt-70" v-if="currentType == 'long'"
-                  @click="order('long')">
-                  <div class="font-34 relative text-center" style="flex-grow:1;" v-if="selectIndex == 1">
+                <div class=" flex-center text-white " style="margin-top: 10px" v-if="currentType == 'long'"
+                     @click="order('long')">
+                  <div class="long flex-center" style="flex-grow:1;padding: 20px" v-if="selectIndex == 1">
                     {{ $t('开多') }}
                     <!-- <span class="right-word font-22 text-center">{{
                       $t("看涨")
                       }}</span> -->
                   </div>
-                  <div class="font-34 relative text-center" style="flex-grow:1;" v-else>
+                  <div class="long flex-center" style="flex-grow:1;padding: 20px" v-else>
                     {{ $t('做多买入') }}
                   </div>
                 </div>
-                <div class="w-full h-80 lh-80 bg-red flex text-white mt-70" v-if="currentType == 'short'"
-                  @click="order('short')">
-                  <div class="relative font-34 text-center" style="flex-grow:1;" v-if="selectIndex == 1">
+                <div class="flex-center text-white " v-if="currentType == 'short'"
+                     @click="order('short')">
+                  <div class="short flex-center" style="flex-grow:1;padding: 20px" v-if="selectIndex == 1">
                     {{ $t('开空') }}
                     <!-- <span class="right-word font-22 text-center">{{
                       $t("看跌")
                       }}</span> -->
                   </div>
-                  <div class="relative font-34 text-center" style="flex-grow:1;" v-else>
+                  <div class="short flex-center" style="flex-grow:1;padding: 20px" v-else>
                     {{ $t('做空买入') }}
                   </div>
                 </div>
               </template>
               <template v-if="selectIndex == 2">
                 <div class="w-full h-80 lh-80 bg-green flex text-white mt-10 " @click="order('open')"
-                  v-if="userInfo.token">
+                     v-if="userInfo.token">
                   <div class="font-34 relative text-center" style="flex-grow: 1">
                     {{ $t("开多") }}
                     <!-- <span class="right-word font-22 text-center">{{
@@ -210,7 +355,7 @@
                   </div>
                 </div>
                 <div class="w-full h-80 lh-80 bg-red flex text-white mt-20 mb-10" style="position: relative;"
-                  :class="{ 'mt-22': selectIndex == 2 }" @click="order('close')" v-if="userInfo.token">
+                     :class="{ 'mt-22': selectIndex == 2 }" @click="order('close')" v-if="userInfo.token">
                   <div class="relative font-34 text-center" style="flex-grow: 1">
                     {{ $t("开空") }}
                     <!-- <span class="right-word font-22 text-center">{{
@@ -226,130 +371,20 @@
                 <p class="pt-8">{{ $t('登陆后继续') }}</p>
               </div>
               <div class="h-80 lh-80 btnBackground flex text-white rounded-ban justify-center mt-50"
-                @click="$router.push('/login')">
-                {{ $t('logIn') }}</div>
-            </div>
-          </div>
-          <div>
-            <div class="w-290 flex justify-between text-grey font-22">
-              <div>
-                <div>{{ $t("价格") }}</div>
-                <div class="mt-4">{{ queryType === 'cryptos' ? '(USDT)' : '(USD)' }}</div>
-              </div>
-              <div class="text-right items-end justify-end">
-                <div class="">{{ $t("数量") }}</div>
-                <div class="mt-4">{{ queryType === 'cryptos' ?
-                  `(${symbol_data.toUpperCase() || "--"})` : '(USD)' }}</div>
-              </div>
-            </div>
-            <div class="deep-div">
-              <!-- <div v-if="showType == 0 || showType == 2" class="w-290 flex justify-between pt-1  font-26"
-                v-for="(item, index) in redData" :key="item + index" @click="onQuickPrice(item.price)" :style="{
-                  background:
-                    `linear-gradient(to right,${THEME == 'dark' ? '#131A2E' : '#fff'
-                    } 0%` +
-                    (1 - item.amount / greenData[greenData.length - 1].amount) *
-                    100 +
-                    '%,rgba(246,70,93,.1) ' +
-                    (1 - item.amount / greenData[greenData.length - 1].amount) *
-                    100 +
-                    '%,rgba(246,70,93,.1) 100%)',
-                }"> -->
-
-              <div v-show="(showType == 0 || showType == 2)" class="w-290 flex justify-between pt-1 font-26"
-                v-for="(item, index) in redData" :key="item + index" @click="onQuickPrice(item.price)" :style="{
-                  background:
-                    `linear-gradient(to right,${$store.state.vant.theme == 'dark' ? '#131A2E' : '#fff'
-                    } 0%` +
-                    (1 - item.amount / greenData[greenData.length - 1].amount) *
-                    100 +
-                    '%,rgba(246,70,93,.1) ' +
-                    (1 - item.amount / greenData[greenData.length - 1].amount) *
-                    100 +
-                    '%,rgba(246,70,93,.1) 100%)'
-                }">
-                <div class="text-red">{{ item.price }}</div>
-                <div class="text-right textColor" v-if="symbol == 'shib'">
-                  {{ fixDate(item.amount, $i18n) || "--" }}
-                </div>
-                <div class="text-right textColor" v-else>
-                  {{ item.amount || "--" }}
-                </div>
-              </div>
-            </div>
-            <div class="w-290 text-red pt-5 font-34 font-700 text-center">
-              {{ price || '--' }}
-            </div>
-            <div class="pb-5 font-20 text-center">
-              ≈ {{ ((price *
-                currency.rate).toFixed(price.toString().split('.')[1] ?
-                  price.toString().split('.')[1].length : 2)) || '--' }}
-            </div>
-            <div class="deep-div">
-              <!-- <div v-if="showType == 0 || showType == 1" class="w-290 flex justify-between pt-1 font-26"
-                v-for="(item, index) in greenData" :key="index" @click="onQuickPrice(item.price)" :style="{
-                  background:
-                    `linear-gradient(to right,${THEME == 'dark' ? '#131A2E' : '#fff'
-                    } 0%` +
-                    (1 - item.amount / greenData[greenData.length - 1].amount) *
-                    100 +
-                    '%,rgba(94,186,137,.1) ' +
-                    (1 - item.amount / greenData[greenData.length - 1].amount) *
-                    100 +
-                    '%,rgba(94,186,137,.1) 100%)',
-                }"> -->
-
-              <div v-if="showType == 0 || showType == 1" class="w-290 flex justify-between pt-1 font-26"
-                v-for="(item, index) in greenData" :key="index" @click="onQuickPrice(item.price)" :style="{
-                  background:
-                    `linear-gradient(to right,${$store.state.vant.theme == 'dark' ? '#131A2E' : '#fff'
-                    } 0%` +
-                    (1 - item.amount / greenData[greenData.length - 1].amount) *
-                    100 +
-                    '%,rgba(94,186,137,.1) ' +
-                    (1 - item.amount / greenData[greenData.length - 1].amount) *
-                    100 +
-                    '%,rgba(94,186,137,.1) 100%)',
-                }">
-                <div class="text-green">{{ item.price }}</div>
-                <div class="text-right textColor" v-if="symbol_data == 'shib'">
-                  {{ fixDate(item.amount, $i18n) || "--" }}
-                </div>
-                <div class="text-right textColor" v-else>
-                  {{ item.amount || "--" }}
-                </div>
-
-              </div>
-            </div>
-            <div class="flex k-select-box">
-              <div class="mt-22 mb-22 select-box pl-5 pr-5" style="position: relative">
-                <div class="flex justify-between items-center w-full h-70" @click="selectArryBtn">
-                  <!-- <img src="@/assets/image/public/warn.png" alt="warn-icon" class="w-25 h-25 pl-20"/> -->
-                  <div class="pl-16 font-28 textColor" style="width: 80%">
-                    {{ dataArrTitle }}
-                  </div>
-                  <img src="../../../assets/image/public/grey-select.png" alt="select-icon" class="w-22 h-11 mr-10" />
-                </div>
-                <div class="option-box" v-show="arryIsShow">
-                  <div class="font-28" v-for="(item, index) in selectDataArry" :key="index"
-                    @click="selectItemArry(item)">
-                    {{ item.name }}
-                  </div>
-                </div>
-              </div>
-              <div @click="isSelectShow = true">
-                <img src="../../../assets/image/selectIcon.png" alt="warn-icon" class="w-36 h-30 ml-10" />
+                   @click="$router.push('/login')">
+                {{ $t('logIn') }}
               </div>
             </div>
           </div>
+
         </div>
       </div>
       <van-popup v-model:show="show" class="rounded-2xl">
         <popup-delivery showBtns :detailData="detailData" :key="detailData.order_no" @close="onClose"
-          @continueToBuy="continueTobuy" @timeEnd="handleTimeEnd" :price="price" />
+                        @continueToBuy="continueTobuy" @timeEnd="handleTimeEnd" :price="price"/>
       </van-popup>
       <van-action-sheet v-model:show="isSelectShow" @select="onSelect" :actions="actions" :cancel-text="$t('取消')"
-        close-on-click-action @cancel="onCancel">
+                        close-on-click-action @cancel="onCancel">
       </van-action-sheet>
     </div>
   </div>
@@ -357,20 +392,21 @@
 
 <script>
 import config from "@/config";
-import { Popup, showToast } from 'vant';
-import { mapGetters } from 'vuex'
+import {Popup, showToast} from 'vant';
+import {mapGetters} from 'vuex'
 import VueSlider from 'vue-slider-component/dist-css/vue-slider-component.umd.js'
 import 'vue-slider-component/theme/default.css'
-import { _orderOpen, _futrueOrder, _futrueOrderDetail, _getBalance, _futrueOrderInit } from '@/service/trade.api'
+import {_orderOpen, _futrueOrder, _futrueOrderDetail, _getBalance, _futrueOrderInit} from '@/service/trade.api'
 import ContractFutrue from '@/components/Transform/contract-futrue/index.vue'
 import PopupDelivery from "@/components/Transform/popup-delivery/index.vue";
-import { fixDate } from "@/utils/index.js";
-import { THEME } from '@/config/theme'
+import {fixDate} from "@/utils/index.js";
+import {THEME} from '@/config/theme'
 import AmountSlider from "./amountSlider.vue";
 import "vue-slider-component/theme/default.css";
-import { _getHomeList } from "@/service/home.api";
-import { _getContractBySymbolType } from "@/service/etf.api";
-import { reserve } from "@/utils/utis";
+import {_getHomeList} from "@/service/home.api";
+import {_getContractBySymbolType} from "@/service/etf.api";
+import {reserve} from "@/utils/utis";
+
 export default {
   name: "perpetualPosition",
   components: {
@@ -472,21 +508,21 @@
         if (this.dataArrValue == -2) {
           this.greenData.map((item) => {
             item.price =
-              item.price.substring(0, item.price.indexOf(".") - 1) + "0";
+                item.price.substring(0, item.price.indexOf(".") - 1) + "0";
           });
           this.redData.map((item) => {
             item.price =
-              item.price.substring(0, item.price.indexOf(".") - 1) + "0";
+                item.price.substring(0, item.price.indexOf(".") - 1) + "0";
           });
         }
         if (this.dataArrValue == -3) {
           this.greenData.map((item) => {
             item.price =
-              item.price.substring(0, item.price.indexOf(".") - 2) + "00";
+                item.price.substring(0, item.price.indexOf(".") - 2) + "00";
           });
           this.redData.map((item) => {
             item.price =
-              item.price.substring(0, item.price.indexOf(".") - 2) + "00";
+                item.price.substring(0, item.price.indexOf(".") - 2) + "00";
           });
         }
       }
@@ -513,7 +549,7 @@
 
         obj = this.initOpen
         if (!obj.lever || !obj.lever.length) { // 倍数
-          obj.lever = [{ id: 1, lever_rate: 1 }]
+          obj.lever = [{id: 1, lever_rate: 1}]
         }
         return obj
       }
@@ -538,14 +574,21 @@
   },
   data() {
     return {
+      progressRate:0,
+      progress: 30, // 初始进度
+      isDragging: false, // 是否正在拖动
+      barWidth: 0, // 进度条宽度
+      startX: 0, // 触摸开始的X坐标
+      startProgress: 0, // 触摸开始时的进度
       THEME,
       fixDate,
       bfbindex: null,
       bfblist: [
-        { name: '25' },
-        { name: '50' },
-        { name: '75' },
-        { name: '100' }
+        {name: '0'},
+        {name: '25'},
+        {name: '50'},
+        {name: '75'},
+        {name: '100'}
       ],
       currentBuyType: '', // 交割合约当前下单的类型,用于弹窗倒计时结束以后,点击再下一单
       timeout2: null,
@@ -560,8 +603,8 @@
       title: this.$t('市价'),
       paraIndex: 0,
       selectData: [
-        { title: this.$t('市价'), type: '1' },
-        { title: this.$t('限价'), type: '2' },
+        {title: this.$t('市价'), type: '1'},
+        {title: this.$t('限价'), type: '2'},
       ],
       form: {
         symbol: '', // 币种
@@ -580,9 +623,9 @@
       selectDataArry: [],
       isSelectShow: false,
       actions: [
-        { name: this.$t("默认"), value: 0, className: 'actions-active' },
-        { name: this.$t("展示买单"), value: 1, className: '' },
-        { name: this.$t("展示卖单"), value: 2, className: '' },
+        {name: this.$t("默认"), value: 0, className: 'actions-active'},
+        {name: this.$t("展示买单"), value: 1, className: ''},
+        {name: this.$t("展示卖单"), value: 2, className: ''},
       ],
       showType: 0,
       dataArrTitle: 0,
@@ -593,8 +636,8 @@
       queryType: 'cryptos',
       assetObj: {}, // 总资产估值数据对象
       locationList: [
-        { title: this.$t('逐仓'), type: 0 },
-        { title: this.$t('全仓'), type: 1 },
+        {title: this.$t('逐仓'), type: 0},
+        {title: this.$t('全仓'), type: 1},
       ],
       locationShow: false,
       locationTitle: this.$t('全仓'),
@@ -608,12 +651,13 @@
   },
   activated() {
     this.selectData = [
-      { title: this.$t('市价'), type: '1' },
-      { title: this.$t('限价'), type: '2' },
+      {title: this.$t('市价'), type: '1'},
+      {title: this.$t('限价'), type: '2'},
     ]
     this.title = this.$t('市价');
   },
   mounted() {
+    this.barWidth = document.querySelector('.progress-bar').offsetWidth;
     this.getHomeList(this.$route.params.symbol);
     this.form.price = this.price
     this.getAsset()
@@ -622,10 +666,71 @@
     this.clearTimeout()
   },
   methods: {
+    mousedown(event){
+      // this.bfbclick(event.touches[0].)
+      const x1=event.touches[0].pageX
+      const x2=event.touches[0].clientX
+      console.log(event.touches[0])
+    } ,
+    mousemove(event){
+      console.log(event.touches[0])
+    },
+    // 处理点击事件
+    handleClick(e) {
+      if (this.isDragging) return;
+
+      // 获取进度条的位置信息
+      const barRect = document.querySelector('.progress-bar').getBoundingClientRect();
+      // 计算点击位置相对于进度条的百分比
+      const clickPosition = e.clientX - barRect.left;
+      const newProgress = (clickPosition / barRect.width) * 100;
+
+      // 更新进度,限制在0-100之间
+      this.updateProgress(newProgress);
+    },
+
+    // 处理触摸开始事件
+    handleTouchStart(e) {
+      this.isDragging = true;
+      const barRect = document.querySelector('.progress-bar').getBoundingClientRect();
+      this.barWidth = barRect.width;
+      this.startX = e.touches[0].clientX;
+      this.startProgress = this.progressRate;
+    },
+
+    // 处理触摸移动事件
+    handleTouchMove(e) {
+      if (!this.isDragging) return;
+
+      // 计算移动的距离
+      const currentX = e.touches[0].clientX;
+      const diffX = currentX - this.startX;
+
+      // 根据移动距离计算新进度
+      const percentageChange = (diffX / this.barWidth) * 100;
+      const newProgress = this.startProgress + percentageChange;
+
+      // 更新进度,限制在0-100之间
+      this.updateProgress(newProgress);
+    },
+
+    // 处理触摸结束事件
+    handleTouchEnd(e) {
+      this.isDragging = false;
+    },
+
+    // 更新进度的通用方法
+    updateProgress(value) {
+      // 限制进度在0-100之间
+      const clampedValue = Math.max(0, Math.min(100, value));
+      this.bfbclick(clampedValue)
+
+      // 可以在这里添加进度变化的回调逻辑
+      // this.$emit('progress-change', this.progress);
+    },
     reserve,
-    bfbclick(e, i) {
-      this.bfbindex = i
-      e = parseInt(e.name)
+    bfbclick(e) {
+      this.progressRate = e
       const rate = e / 100; //如0.25
       this.form.amount = this.maxUSDT * rate
       var a = this.form.amount
@@ -657,9 +762,9 @@
     // 获取总资产估值
     getAsset() {
       _getContractBySymbolType()
-        .then(res => {
-          this.assetObj = res
-        })
+          .then(res => {
+            this.assetObj = res
+          })
     },
     //价格类型下拉框切换
     selectBtn() {
@@ -684,7 +789,7 @@
           let obj = {
             name: item + "1",
             value:
-              item.substring(item.indexOf(".") + 1, item.length).length + 1,
+                item.substring(item.indexOf(".") + 1, item.length).length + 1,
           };
           newArry.push(obj);
         });
@@ -907,11 +1012,13 @@
             this.form.session_token = data.session_token;
             this.openOrder(_order, emitFunc);
           }).catch((err) => {
-            if (err.code == 'ECONNABORTED') { showToast(this.$t('网络超时!')); }
-            else if (err.msg != undefined) { showToast(this.$t(err.msg)); }
+            if (err.code == 'ECONNABORTED') {
+              showToast(this.$t('网络超时!'));
+            } else if (err.msg != undefined) {
+              showToast(this.$t(err.msg));
+            }
           });
-        }
-        else {
+        } else {
           this.form.session_token = this.initFutrue.session_token;
           this.openOrder(_order, emitFunc);
         }
@@ -925,7 +1032,7 @@
         }
         this.$emit('ordered', emitFunc)
         _getBalance().then(data => { // 刷新余额
-          this.$store.commit('user/SET_USERINFO', { balance: data.money })
+          this.$store.commit('user/SET_USERINFO', {balance: data.money})
         })
 
         if (this.selectIndex / 1 === 2) { // 交割合约需要弹出详情框
@@ -955,6 +1062,41 @@
 
 <style lang="scss">
 @import "@/assets/init.scss";
+
+.progress-i {
+  flex: 1;
+  position: relative;
+  color: #aaa;
+  font-size: 0.8em;
+}
+
+.progress-in {
+  height: 2px;
+  position: relative;
+  border-radius: 90px;
+  background: #111;
+  width: 0%;
+  //transition: width 0.3s linear;
+}
+
+.progress-icon {
+  width: 34px;
+  height: 35px;
+  border-radius: 90px;
+  position: absolute;
+  background: white;
+  right:-18px;
+  z-index: 99;
+  top:-16px;
+  border: #111 6px solid;
+}
+
+.progress-icon1 {
+  width: 14px;
+  height: 15px;
+  border-radius: 90px;
+  background: #111;
+}
 
 .btns_box_boxs {
   width: 23%;
@@ -1068,16 +1210,16 @@
     overflow: hidden;
   }
 
-  .tab>* {
+  .tab > * {
     height: 100%;
   }
 
-  .tab>img {
+  .tab > img {
     margin-left: -2px;
     margin-right: -2px;
   }
 
-  .tab>a {
+  .tab > a {
     flex-grow: 1;
     display: flex;
     justify-content: center;
@@ -1111,12 +1253,12 @@
     }
   }
 
-  .option-box>div {
+  .option-box > div {
     padding: 10px 0;
 
   }
 
-  .option-box>div:hover {
+  .option-box > div:hover {
     background-color: rgba($color: $bg_yellow, $alpha: 0.6);
   }
 
@@ -1149,9 +1291,12 @@
     // background-color: $green;
     // background: url(@/assets/image/public/open-bg.png) no-repeat right center;
     // background-size: 100% 100%;
-    color: white;
-
-    background: #06CDA5;
+    color: white !important;
+    border-radius: 6px !important;
+    background: #24c18d !important;
+    font-size: 14px;
+    font-size: 22px !important;
+    height: 60px;
     // border-radius: 5rem;
   }
 
@@ -1159,9 +1304,11 @@
     // background-color: $green;
     // background: url(@/assets/image/public/close-bg.png) no-repeat left center;
     // background-size: 100% 100%;
-    color: white;
-
-    background: #F43368;
+    color: white !important;
+    border-radius: 6px !important;
+    background: #f14b3f !important;
+    font-size: 22px !important;
+    height: 60px;
     // border-radius: 5rem;
   }
 
@@ -1201,6 +1348,6 @@
 }
 
 .deep-div {
-  min-height: 370px;
+  min-height: 200px;
 }
 </style>
diff --git a/src/components/Transform/perpetual-order/index.vue b/src/components/Transform/perpetual-order/index.vue
index 8049be0..74795bf 100644
--- a/src/components/Transform/perpetual-order/index.vue
+++ b/src/components/Transform/perpetual-order/index.vue
@@ -8,7 +8,7 @@
             <div class="px-10  py-10 flex  items-center textColor1 font-28" @click="tabClick('1')"
               :class="type == '1' ? 'active-line' : ''">{{ $t('持有仓位') }}<span v-if="type == '1'">({{
                 orderHold.length }})</span></div>
-            <div class="px-10  ml-50  py-10 flex  items-center textColor1y font-28" @click="tabClick('2')"
+            <div class="px-10  ml-50  py-10 flex  items-center textColor1 font-28" @click="tabClick('2')"
               :class="type == '2' ? 'active-line' : ''">{{ $t('当前委托') }}</div>
           </template>
           <template v-else>
@@ -22,6 +22,9 @@
         </div>
         <img src="../../../assets/image/public/record.png" alt="record-img" class="w-64 h-35 pr-30 record-img"
           @click="goHistory" />
+      </div>
+      <div style="margin: 5px 0;width: 100%;height: 1px;background: #eee">
+
       </div>
       <!-- 永续-->
       <template v-if="topIndex / 1 === 1">
@@ -195,10 +198,11 @@
     // color: $text-color;
     position: relative;
     // padding: 15px 0;
-    color: $text_color;
+    font-size: 14px;
+    color: black!important;
     border-radius: 8px;
     // background-color: $color_main
-    background-color: $bg_yellow
+    //background-color: $bg_yellow
   }
 
   // .active-line::after {
@@ -217,7 +221,8 @@
   }
 
   .textColor1 {
-    color: $text_color;
+    color: #999 ;
+    font-size: 14px;
   }
 }
 </style>
diff --git a/src/components/Transform/perpetual-position-list/index.vue b/src/components/Transform/perpetual-position-list/index.vue
index 0207f3c..53cc458 100644
--- a/src/components/Transform/perpetual-position-list/index.vue
+++ b/src/components/Transform/perpetual-position-list/index.vue
@@ -10,71 +10,93 @@
     <!--            <button class="border-none all-cancel-btn pl-34 pr-34 pt-10 pb-10 font-25" @click="onSellAll">{{ $t('一键平仓') }}</button>-->
     <!--        </div>-->
     <div class="border-b-color" v-for="item in listData" :key="item.order_no">
-      <div class="flex justify-between pt-44 pb-44">
-        <div class="flex flex-col">
-          <div class="flex items-center">
-            <div class="pl-18 pr-18 pt-3 pb-3 text-white open-btn font-28"
-              :class="item.direction == 'buy' ? ' bg-green' : 'bg-red'">
-              {{ item.direction == 'buy' ? $t('开多') : $t('开空') }}
-            </div>
-            <div class="ml-22 font-31 font-600 ">
-              <span class="textColor">{{ item.name }} {{ $t('永续') }}</span>
-              <span class="text-grey font-28 font-400 ml-17 mr-17">
-                {{ item.locationType == 1 ? $t('全仓') : $t('逐仓') }}
-                {{ item.lever_rate }}x</span>
-            </div>
-            <img v-if="item.direction == 'buy'" src="@/assets/image/public/green-leverage.png" alt=""
-              class="w-32 h-32" />
-            <img v-else src="@/assets/image/public/red-leverage.png" alt="" class="w-32 h-32" />
+<!--      <div class="flex justify-between pt-44 pb-44">-->
+<!--        <div class="flex flex-col">-->
+<!--          <div class="flex-centerY">-->
+<!--            <div class="ml-22 font-31 ">-->
+<!--&lt;!&ndash;              <span class="textColor">{{ item.name }} {{ $t('永续') }}</span>&ndash;&gt;-->
+<!--              <span class="textColor">{{ item.name }} </span>-->
+<!--&lt;!&ndash;              <span class="text-grey font-28 font-400 ml-17 mr-17">&ndash;&gt;-->
+<!--&lt;!&ndash;                {{ item.locationType == 1 ? $t('全仓') : $t('逐仓') }}&ndash;&gt;-->
+<!--&lt;!&ndash;                {{ item.lever_rate }}x</span>&ndash;&gt;-->
+<!--            </div>-->
+<!--            <div-->
+<!--                 :class="item.direction == 'buy' ? ' bg-green1' : 'bg-red'">-->
+<!--              {{ item.direction == 'buy' ? $t('开多') : $t('开空') }}-->
+<!--            </div>-->
+<!--&lt;!&ndash;            <img v-if="item.direction == 'buy'" src="@/assets/image/public/green-leverage.png" alt=""&ndash;&gt;-->
+<!--&lt;!&ndash;              class="w-32 h-32" />&ndash;&gt;-->
+<!--&lt;!&ndash;            <img v-else src="@/assets/image/public/red-leverage.png" alt="" class="w-32 h-32" />&ndash;&gt;-->
+<!--          </div>-->
+<!--        </div>-->
+<!--      </div>-->
+      <div class="flex-centerY flex-position-between" style="margin-top: 15px">
+        <div class="flex-centerY">
+          <div class="textColor font-30">{{ item.name }} </div>
+          <div
+              :class="item.direction == 'buy' ? ' bg-green1' : 'bg-red1'">
+            {{ item.direction == 'buy' ? $t('开多') : $t('开空') }}
           </div>
         </div>
+        <div class="font-30 font-bold flex-centerY">
+          {{ item.lever_rate }}
+          <div style="margin-left: 5px">x</div>
+        </div>
       </div>
-      <div class="flex justify-between font-28">
+      <div class="flex font-28" style="margin-top: 20px">
         <div class="flex-1">
-          <div class="text-grey">{{ routeType == 'cryptos' ? $t('未实现盈亏(USDT)') : $t('未实现盈亏(USD)') }}</div>
-          <div class="mt-20" :class="item.profit > 0 ? 'text-green' : 'text-red'">
+          <div class="text-grey" style="font-size: 10px">{{ routeType == 'cryptos' ? $t('未实现盈亏(USDT)') : $t('未实现盈亏(USD)') }}</div>
+          <div class="" :class="item.profit > 0 ? 'text-green' : 'text-red'">
             {{ item.profit > 0 ? '+' + item.profit.toFixed(4) : item.profit.toFixed(4) }}</div>
         </div>
-        <div class="flex-1">
-          <div class="text-grey text-center">ROE</div>
-          <div class="mt-20 text-center" :class="item.change_ratio / 1 > 0 ? 'text-green' : 'text-red'">{{
+        <div class="flex-1 font-28">
+          <div class="text-grey" style="font-size: 10px">ROE</div>
+          <div class="" :class="item.change_ratio / 1 > 0 ? 'text-green' : 'text-red'" >{{
             item.change_ratio
           }}%
           </div>
         </div>
-        <div class="flex-1 flex justify-end">
-          <button class="font-30 detail-btn border-light-blue greyBg colorMain w-125 h-60" @click="goDetail(item)">{{
-            $t('详情') }}</button>
+        <div class="flex-1">
+          <div class="text-grey"  style="font-size: 10px">{{ $t('持仓数量') }}</div>
+          <div class="textColor">{{ reserve(item.volume / (item.lever_rate ? item.lever_rate : 1),4) }}*{{
+              item.lever_rate ? item.lever_rate : 1 }}x</div>
+        </div>
+<!--        <div class="flex-1 flex justify-end">-->
+<!--          <button class="font-30 detail-btn border-light-blue greyBg colorMain w-125 h-60" @click="goDetail(item)">{{-->
+<!--            $t('详情') }}</button>-->
+<!--        </div>-->
+      </div>
+      <div class="flex-centerY mt-10">
+        <div class="flex-1  font-28">
+          <div class="text-grey" style="font-size: 10px">{{ $t('交易金额') }} ( {{ routeType == 'cryptos' ? 'USDT' : 'USD' }})</div>
+          <div class=" textColor">{{ item.deposit }}</div>
+        </div>
+        <div class="flex-1 font-28">
+          <div class="text-grey" style="font-size: 10px">{{ $t('开仓价格') }}</div>
+          <div class=" textColor">{{ item.trade_avg_price }}</div>
+        </div>
+        <div class="flex-1 font-28">
+          <div class="text-grey" style="font-size: 10px">{{ $t('标记价格') }}</div>
+          <div class=" textColor">{{ item.mark_price }}</div>
         </div>
       </div>
-      <div class="flex pt-44 pb-32 font-28">
-        <div class="flex-1">
-          <div class="text-grey">{{ $t('持仓数量') }}</div>
-          <div class="mt-20 textColor">{{ reserve(item.volume / (item.lever_rate ? item.lever_rate : 1),4) }}*{{
-            item.lever_rate ? item.lever_rate : 1 }}x</div>
+      <div class="flex-centerY mt-10">
+        <div class="flex-1 font-28">
+          <div class="text-grey " style="font-size: 10px">{{ $t('强平价格') }}</div>
+          <div class="textColor">{{ item.force_close_rice }}</div>
         </div>
-        <div class="flex-1 text-center  font-28">
-          <div class="text-grey">{{ $t('交易金额') }} ( {{ routeType == 'cryptos' ? 'USDT' : 'USD' }})</div>
-          <div class="mt-20 textColor">{{ item.deposit }}</div>
-        </div>
-        <div class="flex-1 flex flex-col items-end  font-28">
-          <div class="text-grey">{{ $t('开仓价格') }}</div>
-          <div class="mt-20 textColor">{{ item.trade_avg_price }}</div>
-        </div>
+
       </div>
-      <div class="flex pb-32  font-28">
-        <div class="flex-1">
-          <div class="text-grey">{{ $t('标记价格') }}</div>
-          <div class="mt-20 textColor">{{ item.mark_price }}</div>
+      <div class="flex-centerY flex-position-end-to-start">
+        <div class=" flex flex-col items-end justify-end">
+          <div class="bg-green2"
+                  @click="onSell(item.order_no)" >
+            {{ $t('平仓') }}</div>
         </div>
-        <div class="flex-1">
-          <div class="text-grey text-center">{{ $t('强平价格') }}</div>
-          <div class="mt-20 textColor text-center">{{ item.force_close_rice }}</div>
-        </div>
-        <div class="flex-1 flex flex-col items-end justify-end">
-          <button class="greyBg textColor border-none pl-34 pr-34 pt-10 pb-10 rounded-ban"
-            @click="onSell(item.order_no)">
-            {{ $t('平仓') }}</button>
+        <div class=" flex flex-col items-end justify-end">
+          <div class="bg-green3"
+               @click="goDetail(item)" >
+            {{ $t('详情') }}</div>
         </div>
       </div>
       <!-- <div class="flex  pb-32  font-28">
@@ -165,4 +187,40 @@
     color: #06AD95;
   }
 }
+
+.bg-green1{
+  color: $green;
+  font-size: 14px;
+  margin-left: 10px;
+  border-radius: 6px;
+  padding: 0 10px;
+  border: $green 1px solid;
+}
+
+.bg-red1{
+  color: $red;
+  font-size: 14px;
+  margin-left: 10px;
+  border-radius: 6px;
+  padding: 0 10px;
+  border: $red 1px solid;
+}
+
+.bg-green2{
+  color: $green;
+  font-size: 16px;
+  margin-left: 12px;
+  border-radius: 6px;
+  padding: 0 20px;
+  border: $green 1px solid;
+}
+
+.bg-green3{
+  color: orange;
+  font-size: 16px;
+  margin-left: 12px;
+  border-radius: 6px;
+  padding: 0 20px;
+  border: orange 1px solid;
+}
 </style>
diff --git a/src/components/Transform/trade-order-area/index.vue b/src/components/Transform/trade-order-area/index.vue
index 6136e41..6318606 100644
--- a/src/components/Transform/trade-order-area/index.vue
+++ b/src/components/Transform/trade-order-area/index.vue
@@ -71,7 +71,7 @@
         <van-icon name="add-o" @click="$router.push('/cryptos/exchangePage')" class="font-30 add-icon" />
         <!-- <img @click="$router.push('/exchange/exchangePage')" src="@/assets/image/public/switch.png" class="w-24 h-24" /> -->
       </div>
-      <div style="border-radius: 3.5rem;"
+      <div style="border-radius: 6px;"
         class="w-full h-90 lh-90 flex justify-center text-white text-center rounded buyandSell mt-70"
         :class="currentType === 'open' ? 'bg-green' : 'bg-red'" @click="order()">
         {{ currentType == 'open' ? $t('买入') : $t('卖出') }}
@@ -377,11 +377,11 @@
   }
 
   .open {
-    background: #06CDA5;
+    background: #24c18d;
   }
 
   .close {
-    background: #f43368;
+    background: #f14b3f;
   }
 }
 
diff --git a/src/components/fx-footer/index.vue b/src/components/fx-footer/index.vue
index 27b0e0e..a24c36a 100644
--- a/src/components/fx-footer/index.vue
+++ b/src/components/fx-footer/index.vue
@@ -32,7 +32,8 @@
       <van-tabbar-item name="btcusdt" to="/cryptos/trade/btcusdt">
         <span :class="[active === 'btcusdt' ? 'active' : '']">{{ $t('现货') }}</span>
         <template #icon="">
-          <img src="@/assets/imgs/footer/f_4a.png" />
+          <img v-if="active != 'btcusdt'" src="@/assets/imgs/footer/f_4a.png" />
+          <img v-else src="@/assets/imgs/footer/f_4b.png" />
         </template>
       </van-tabbar-item>
 
@@ -111,6 +112,9 @@
 } else if (route.path == "/documentation/index") {
   active.value = 'documentation'
 }
+else if (route.path == "/cryptos/trade/btcusdt") {
+  active.value = 'btcusdt'
+}
 let quotesStore = useQuotesStore()
 
 watch(() => route.path, (nv) => {
@@ -130,6 +134,8 @@
     active.value = 'assets'
   } else if (route.path == "/documentation/index") {
     active.value = 'documentation'
+  }else if (route.path == "/cryptos/trade/btcusdt") {
+    active.value = 'btcusdt'
   }
 })
 // 底部列表
@@ -217,4 +223,4 @@
     height: 20px;
   }
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/src/components/otcCircle/index.vue b/src/components/otcCircle/index.vue
index f39f149..a94c3a1 100644
--- a/src/components/otcCircle/index.vue
+++ b/src/components/otcCircle/index.vue
@@ -15,9 +15,11 @@
   props: ['time','expireTime'],
   data() {
     return {
+
       // time: 2 * 60 * 1000, // 剩余时间 15分钟,
       currentTime: '', // 当前时间
       progress: '', // 进度
+
       arr: [
         {
           value: 0,
@@ -89,6 +91,7 @@
     }
   },
   methods: {
+
     handleChange(e) {
       let restTime = e.minutes * 60 * 1000 + e.seconds * 1000 + e.milliseconds // 剩余毫秒
       this.progress = ((restTime / 1000) / this.expireTime  * 100).toFixed(0) // 进度
diff --git a/src/config/index.js b/src/config/index.js
index 550e473..ffbca2a 100644
--- a/src/config/index.js
+++ b/src/config/index.js
@@ -35,12 +35,14 @@
 
 // const ENV_DEV = 'zhapi.coinbtcs.com' // dev
 // const ENV_DEV = 'openapi.yanshiz.com' // dev
-const ENV_DEV = 'syjysapi.yanshiz.com' // dev
+// const ENV_DEV = 'syjysapi.yanshiz.com' // dev
+const ENV_DEV = 'sysapi.yanshiz.com' // dev
 // const ENV_DEV = '192.168.10.6:8086' // dev
 
 // const ENV_PRO = 'qheufhj.site' //  app域名
 // const ENV_PRO = window.location.hostname // 接口域名跟随 H5zhapi.coinbtcs.com
-const ENV_PRO = 'syjysapi.yanshiz.com' // 接口域名跟随 H5zhapi.coinbtcs.com
+// const ENV_PRO = 'syjysapi.yanshiz.com' // 接口域名跟随 H5zhapi.coinbtcs.com
+const ENV_PRO = 'sysapi.yanshiz.com' // 接口域名跟随 H5zhapi.coinbtcs.com
 // const ENV_PRO = '192.168.10.6:8086' // 接口域名跟随 H5zhapi.coinbtcs.com
 
 let base_url = ''
@@ -56,7 +58,7 @@
     ws_url = 'wss://' + ENV_PRO + '/api/websocket'
 }
 
-let imgUrl = 'https://syimg.yanshiz.com' // 暂时的 单独的图片地址
+let imgUrl = 'https://sysimg.yanshiz.com' // 暂时的 单独的图片地址
 
 export const BASE_URL = base_url
 export const WS_URL = ws_url
@@ -66,7 +68,7 @@
 export const HOST_URL = imgUrl
 
 // 多语言选项
-export const lang = [ 
+export const lang = [
   { title: '繁体中文', key: 'CN', image: new URL('@/assets/image/lang/taiwan.png', import.meta.url) },
   { title: '简体中文', key: 'zh-CN', image: new URL('@/assets/image/lang/zh-CN.png', import.meta.url) },
   { title: 'English', key: 'en', image: new URL('@/assets/image/lang/en-US.png', import.meta.url) },
@@ -124,4 +126,4 @@
         labelStyle: void 0,
         labelActiveStyle: void 0,
     }
-}
\ No newline at end of file
+}
diff --git a/src/i18n/Deutsch.js b/src/i18n/Deutsch.js
index a45a08f..7374715 100644
--- a/src/i18n/Deutsch.js
+++ b/src/i18n/Deutsch.js
@@ -2833,4 +2833,9 @@
     "公司": "Firma",
     "法律": "Gesetz",
     "支援": "Unterstützung",
+    "今日盈亏": "Täglicher Gewinn und Verlust",
+    "信贷": "Kredit",
+    "低利率,彈性強,助您持續擁有資金": "Niedrige Zinssätze, hohe Flexibilität, helfen Ihnen, kontinuierlich Mittel zu halten",
+    "200+支付方式": "200+ Zahlungsmethoden",
+    "名称/交易额": "Name/Transaktionsbetrag"
 }
\ No newline at end of file
diff --git a/src/i18n/Italy.js b/src/i18n/Italy.js
index ad6c1fb..c7d4f98 100644
--- a/src/i18n/Italy.js
+++ b/src/i18n/Italy.js
@@ -2923,4 +2923,9 @@
     "公司": "Azienda",
     "法律": "Legge",
     "支援": "Supporto",
+    "今日盈亏": "Utile e perdita di oggi",
+    "信贷": "Credito",
+    "低利率,彈性強,助您持續擁有資金": "Tasso di interesse basso, alta flessibilità, aiutandoti a mantenere i fondi continuamente",
+    "200+支付方式": "Oltre 200 metodi di pagamento",
+    "名称/交易额": "Nome/Importo della transazione"
 }
\ No newline at end of file
diff --git a/src/i18n/Japanese.js b/src/i18n/Japanese.js
index 8a540ad..6b6fab9 100644
--- a/src/i18n/Japanese.js
+++ b/src/i18n/Japanese.js
@@ -2691,4 +2691,9 @@
     "公司": "会社",
     "法律": "法律",
     "支援": "支援",
+    "今日盈亏": "本日損益",
+    "信贷": "信用貸し",
+    "低利率,彈性強,助您持續擁有資金": "低金利、高柔軟性で、資金を継続的に保有するお手伝いをします",
+    "200+支付方式": "200種類以上の支払い方法",
+    "名称/交易额": "名称/取引金額"
 }
\ No newline at end of file
diff --git a/src/i18n/cn.js b/src/i18n/cn.js
index f4b3c0d..7bed167 100644
--- a/src/i18n/cn.js
+++ b/src/i18n/cn.js
@@ -2812,4 +2812,9 @@
     "公司": "公司",
     "法律": "法律",
     "支援": "支援",
+    "今日盈亏": "今日虧盈",
+    "信贷": "信貸",
+    "低利率,彈性強,助您持續擁有資金": "低利率,彈性強,協助您持續擁有資金",
+    "200+支付方式": "200+支付方式",
+    "名称/交易额": "名稱/交易額"
 }
diff --git a/src/i18n/en.js b/src/i18n/en.js
index cd201c1..6fc8e20 100644
--- a/src/i18n/en.js
+++ b/src/i18n/en.js
@@ -2787,4 +2787,9 @@
     "公司": "Company",
     "法律": "Legal",
     "支援": "Support",
+    "今日盈亏": "Today's Profit and Loss",
+    "信贷": "Credit Loan",
+    "低利率,彈性強,助您持續擁有資金": "Low interest rate, high flexibility, helping you maintain funds continuously",
+    "200+支付方式": "200+ Payment Methods",
+    "名称/交易额": "Name/Transaction Amount"
 }
\ No newline at end of file
diff --git a/src/i18n/fa.js b/src/i18n/fa.js
index fbdfc55..3e92667 100644
--- a/src/i18n/fa.js
+++ b/src/i18n/fa.js
@@ -2730,4 +2730,9 @@
     "公司": "Entreprise",
     "法律": "Loi",
     "支援": "Soutien",
+    "今日盈亏": "Bénéfice et perte d'aujourd'hui",
+    "信贷": "Crédit",
+    "低利率,彈性強,助您持續擁有資金": "Taux d'intérêt bas, grande flexibilité, vous aidant à conserver des fonds en permanence",
+    "200+支付方式": "Plus de 200 méthodes de paiement",
+    "名称/交易额": "Nom/Montant de la transaction"
 }
\ No newline at end of file
diff --git a/src/i18n/korean.js b/src/i18n/korean.js
index 7c5fe7e..bf38ef6 100644
--- a/src/i18n/korean.js
+++ b/src/i18n/korean.js
@@ -2827,4 +2827,9 @@
     "公司": "회사",
     "法律": "법률",
     "支援": "지원",
+    "今日盈亏": "오늘 손익",
+    "信贷": "신용대출",
+    "低利率,彈性強,助您持續擁有資金": "저이자율, 높은 유연성으로, 당신이 자금을 지속적으로 보유하도록 돕습니다",
+    "200+支付方式": "200가지 이상의 결제 방식",
+    "名称/交易额": "이름/거래 금액"
 }
\ No newline at end of file
diff --git a/src/i18n/th.js b/src/i18n/th.js
index 9b5a78b..fcbaa82 100644
--- a/src/i18n/th.js
+++ b/src/i18n/th.js
@@ -2798,4 +2798,9 @@
     "公司": "บริษัท",
     "法律": "กฎหมาย",
     "支援": "การสนับสนุน",
+    "今日盈亏": "กำไรและขาดทุนของวันนี้",
+    "信贷": "เงินกู้ tín dụng",
+    "低利率,彈性強,助您持續擁有資金": "อัตราการบอกเบี้ยต่ำ ความยืดหยุ่นสูง ช่วยให้คุณมีเงินทุนอย่างต่อเนื่อง",
+    "200+支付方式": "วิธีชำระเงินมากกว่า 200 วิธี",
+    "名称/交易额": "ชื่อ/จำนวนเงินธุรกรรม"
 }
\ No newline at end of file
diff --git a/src/i18n/vi.js b/src/i18n/vi.js
index bdca5aa..d3df68e 100644
--- a/src/i18n/vi.js
+++ b/src/i18n/vi.js
@@ -2777,4 +2777,9 @@
     "公司": "Công ty",
     "法律": "Luật pháp",
     "支援": "Hỗ trợ",
+    "今日盈亏": "Lãi lỗ hôm nay",
+    "信贷": "Vay tín dụng",
+    "低利率,彈性強,助您持續擁有資金": "Lãi suất thấp, tính linh hoạt cao, giúp bạn duy trì vốn liên tục",
+    "200+支付方式": "Hơn 200 phương thức thanh toán",
+    "名称/交易额": "Tên/Số tiền giao dịch"
 }
\ No newline at end of file
diff --git a/src/i18n/zhcn.js b/src/i18n/zhcn.js
index 1acb5dc..3f32f2d 100644
--- a/src/i18n/zhcn.js
+++ b/src/i18n/zhcn.js
@@ -2792,4 +2792,10 @@
     "公司": "公司",
     "法律": "法律",
     "支援": "支援",
+
+    "今日盈亏":"今日盈亏",
+    "信贷":"信贷",
+    "低利率,彈性強,助您持續擁有資金":"低利率,弹性强,助您持续拥有资金",
+    "200+支付方式":"200+支付方式",
+    "名称/交易额":"名称/交易额",
 }
\ No newline at end of file
diff --git a/src/router/index.js b/src/router/index.js
index 5438a20..091773e 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -662,7 +662,7 @@
 					path: 'trade/:symbol',
 					name: 'trade',
 					meta: {
-						tarbar: false,
+						tarbar: true,
 						keepAlive: true
 					},
 					component: () => import('@/views/cryptos/Trade/index.vue')
@@ -1670,11 +1670,11 @@
 
 	// 普通逻辑
 	next()
-	
+
 	// if (to.meta.requireAuth) {
 	// 判断该路由是否需要登录权限
-	
-	
+
+
 })
 
 // 登录按钮逻辑,标记为异步函数
@@ -1729,4 +1729,4 @@
         console.log(res)
     })  // 确保调用的接口是异步的
 };
-export default router
\ No newline at end of file
+export default router
diff --git a/src/service/user.api.js b/src/service/user.api.js
index 2c3a0d6..efa33ff 100644
--- a/src/service/user.api.js
+++ b/src/service/user.api.js
@@ -229,6 +229,14 @@
     })
 }
 
+// 认证信息
+export const _getContractBySymbolType = () => {
+    return request({
+        url: `${API_PREFIX}/assets!getContractBySymbolType.action?symbolType=cryptos`,
+        method: 'GET'
+    })
+}
+
 export const _getAllAssets = () => {
     return request({
         url: `${API_PREFIX}/assets!getAll.action`,
diff --git a/src/views/ICO/ico.vue b/src/views/ICO/ico.vue
index 2682414..3e2d9fb 100644
--- a/src/views/ICO/ico.vue
+++ b/src/views/ICO/ico.vue
@@ -1,70 +1,76 @@
 <template>
-    <div class="ico">
-        <fx-header>
-            <template v-slot:title>
-                <div>ICO</div>
-            </template>
-            <template v-slot:right>
-                <van-icon name="todo-list-o" @click="$router.push('/ICO/icoRecord')" />
-            </template>
-        </fx-header>
+  <div class="ico">
+    <fx-header>
+      <template v-slot:title>
+        <div>ICO</div>
+      </template>
+      <template v-slot:right>
+        <van-icon name="todo-list-o" @click="$router.push('/ICO/icoRecord')"/>
+      </template>
+    </fx-header>
 
-        <div class="ico_list">
-            <div class="ico_item mb-5" v-for="i in icoList" :key="i.id">
-                <div class="item_1">
-                    {{ i.symbol }} ({{ i.name }})
-                </div>
-                <div class="item_2 flex justify-between">
-                    <div class="mr-5">{{ $t('申购时间') }}</div>
-                    <div>{{ i.startDate }} ~ {{ i.endDate }}</div>
-                </div>
-                <div class="item_2 flex justify-between">
-                    <div>{{ $t('listingDate') }}</div>
-                    <div>{{ i.marketDate }}</div>
-                </div>
-                <div class="item_2 flex justify-between">
-                    <div>{{ $t('每张金额') }}</div>
-                    <div>{{ i.unitAmount }}</div>
-                </div>
-                <div class="item_2 flex justify-between">
-                    <div>{{ $t('每张手续费') }}</div>
-                    <div>{{ i.unitFee }}</div>
-                </div>
-                <div class="item_3 flex justify-center">
-                    <van-button type="default" round size="large" @click="openBuy(i)">{{ $t('申购') }}</van-button>
-                </div>
-            </div>
+    <div class="ico_list">
+      <div class="ico_item mb-5" v-for="i in icoList" :key="i.id">
+        <div class="item_1">
+          <div>
+            {{ i.symbol }}
+          </div>
+          <div class="item_1_1">
+            {{ i.name }}
+          </div>
         </div>
-
-
-        <!-- 购买弹窗 -->
-        <van-popup v-model:show="show" round>
-            <div class="buy_popup">
-                <div class="buy_title flex justify-center">{{ itemObj.symbol }}</div>
-
-                <van-field v-model="sgNum" type="digit" :label="$t('申购数量')" />
-
-                <div class="flex justify-center mt-5">
-                    <van-button type="default" size="large" round @click="buy">{{ $t('confirm') }}</van-button>
-                </div>
-            </div>
-        </van-popup>
+        <div class="item_2 flex justify-between">
+          <div>{{ $t('每张金额') }}</div>
+          <div>{{ i.unitAmount }}</div>
+        </div>
+        <div class="item_2 flex justify-between">
+          <div>{{ $t('每张手续费') }}</div>
+          <div>{{ i.unitFee }}</div>
+        </div>
+        <div class="item_2 flex justify-between">
+          <div class="mr-5">{{ $t('申购时间') }}</div>
+          <div>{{ i.startDate }} ~ {{ i.endDate }}</div>
+        </div>
+        <div class="item_2 flex justify-between">
+          <div>{{ $t('listingDate') }}</div>
+          <div>{{ i.marketDate }}</div>
+        </div>
+        <div class="item_3 flex justify-center">
+          <van-button type="default" round size="large" @click="openBuy(i)">{{ $t('申购') }}</van-button>
+        </div>
+      </div>
     </div>
+
+
+    <!-- 购买弹窗 -->
+    <van-popup v-model:show="show" round>
+      <div class="buy_popup">
+        <div class="buy_title flex justify-center">{{ itemObj.symbol }}</div>
+
+        <van-field v-model="sgNum" type="digit" :label="$t('申购数量')"/>
+
+        <div class="flex justify-center mt-5">
+          <van-button type="default" size="large" round @click="buy">{{ $t('confirm') }}</van-button>
+        </div>
+      </div>
+    </van-popup>
+  </div>
 </template>
 
 <script setup>
-import { ref } from "vue";
-import { showToast } from 'vant'
-import { _icoList, _icoSubscribe } from "@/service/ico.api.js";
-import { useI18n } from "vue-i18n";
-const { t } = useI18n()
+import {ref} from "vue";
+import {showToast} from 'vant'
+import {_icoList, _icoSubscribe} from "@/service/ico.api.js";
+import {useI18n} from "vue-i18n";
+
+const {t} = useI18n()
 
 // 获取列表
 const icoList = ref([])
 _icoList().then(res => {
-    icoList.value = res.records
+  icoList.value = res.records
 }).catch(err => {
-    showToast(err.msg)
+  showToast(err.msg)
 })
 
 // 打开申购弹窗
@@ -72,78 +78,86 @@
 const itemObj = ref({}) // ico列表项
 const sgNum = ref(0) // 申购数量
 const openBuy = (i) => {
-    show.value = true
-    itemObj.value = i
+  show.value = true
+  itemObj.value = i
 }
 
 // 申购
 const buy = () => {
-    let opt = {
-        icoProjectId: itemObj.value.id,
-        subscribeNums: sgNum.value,
-        subscriptionType: 1,
-    }
-    _icoSubscribe(opt).then(res => {
-        showToast(t('submitSuccess'))
-        show.value = false
-    }).catch(err => {
-        showToast(err)
-    })
+  let opt = {
+    icoProjectId: itemObj.value.id,
+    subscribeNums: sgNum.value,
+    subscriptionType: 1,
+  }
+  _icoSubscribe(opt).then(res => {
+    showToast(t('submitSuccess'))
+    show.value = false
+  }).catch(err => {
+    showToast(err)
+  })
 }
 
 </script>
 
 <style lang="scss" scoped>
 .ico {
-    padding: 0rem 1.2rem 2rem 1.2rem;
-    font-size: 1.5rem;
+  padding: 0rem 1.2rem 2rem 1.2rem;
+  font-size: 1.5rem;
 
-    .buy_popup {
-        width: 40rem;
-        padding: 1rem;
+  .buy_popup {
+    width: 40rem;
+    padding: 1rem;
 
-        .buy_title {
-            font-size: 2.5rem;
-            font-weight: 700;
-            border-bottom: #aaa solid 1px;
-            padding: 1rem;
-        }
+    .buy_title {
+      font-size: 2.5rem;
+      font-weight: 700;
+      border-bottom: #aaa solid 1px;
+      padding: 1rem;
     }
+  }
 
-    .ico_list {
-        padding: 1rem 0rem;
+  .ico_list {
+    padding: 1rem 0rem;
 
-        .ico_item {
-            padding: .5rem 1rem;
-            border: #aaa solid 1px;
-            border-radius: 1rem;
+    .ico_item {
+      padding: .5rem 1rem;
+      color: #999;
+      font-size: 1.6rem;
+      border: #eee solid 1px;
+      border-radius:6px;
+      //border: #aaa solid 1px;
+      //border-radius: 1rem;
 
-            @include themify() {
-                background-color: themed("input_background");
-            }
+      @include themify() {
+        //background-color: themed("input_background");
+      }
 
-            .item_1 {
-                padding: 1rem .5rem;
-                border-bottom: #ccc solid 1px;
-                font-size: 2rem;
-                font-weight: 700;
-            }
-
-            .item_2 {
-                padding: 1rem .5rem;
-                border-bottom: #ccc solid 1px;
-                font-size: 1.6rem;
-                font-weight: 500;
-
-                &>div:last-child {
-                    color: #999;
-                }
-            }
-
-            .item_3 {
-                padding: .5rem;
-            }
+      .item_1 {
+        padding: 1rem .5rem;
+        border-bottom: #eee solid 1px;
+        font-size: 2.5rem;
+        color: black;
+        .item_1_1{
+          color: #999;
+          font-size: 2rem;
         }
+      }
+
+      .item_2 {
+        padding: 1rem .5rem;
+        font-size: 1.4rem;
+        font-weight: 500;
+
+        & > div:last-child {
+          font-size: 1.7rem;
+          color: #333;
+        }
+      }
+
+      .item_3 {
+        padding: .5rem;
+      }
     }
+  }
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/src/views/ICO/icoRecord.vue b/src/views/ICO/icoRecord.vue
index 787f57d..bb9845f 100644
--- a/src/views/ICO/icoRecord.vue
+++ b/src/views/ICO/icoRecord.vue
@@ -1,134 +1,155 @@
 <template>
-    <div class="icoRecord">
-        <fx-header>
-            <template v-slot:title>
-                <div>{{ $t('申购记录') }}</div>
-            </template>
-        </fx-header>
+  <div class="icoRecord">
+    <fx-header>
+      <template v-slot:title>
+        <div>{{ $t('申购记录') }}</div>
+      </template>
+    </fx-header>
 
-        <van-tabs v-model:active="active">
-            <van-tab name="0" :title="$t('all')"></van-tab>
-            <van-tab name="1" :title="$t('已认购')"></van-tab>
-            <van-tab name="2" :title="$t('未中签')"></van-tab>
-            <van-tab name="3" :title="$t('已中签')"></van-tab>
-            <van-tab name="4" :title="$t('已缴纳')"></van-tab>
-            <van-tab name="5" :title="$t('已分发')"></van-tab>
-        </van-tabs>
+    <van-tabs type="card" color="#111" title-active-color="#FFF" title-inactive-color="#333" v-model:active="active">
+      <van-tab name="0" :title="$t('all')"></van-tab>
+      <van-tab name="1" :title="$t('已认购')"></van-tab>
+      <van-tab name="2" :title="$t('未中签')"></van-tab>
+      <van-tab name="3" :title="$t('已中签')"></van-tab>
+      <van-tab name="4" :title="$t('已缴纳')"></van-tab>
+      <van-tab name="5" :title="$t('已分发')"></van-tab>
+    </van-tabs>
 
-        <div class="icoRecord_list">
-            <div class="icoRecord_item mb-5" v-for="(item, index) in recordLIst" :key="index">
-                <div class="item_1">
-                    {{ item.symbol }} ({{ item.name }})
-                </div>
-                <div class="item_2 flex justify-between">
-                    <div>{{ $t('state') }}</div>
-                    <div>{{ getStatus(item.status) }}</div>
-                </div>
-                <div class="item_2 flex justify-between">
-                    <div>{{ $t('申购数量') }}</div>
-                    <div>{{ item.subscribeNums }}</div>
-                </div>
-                <div class="item_2 flex justify-between">
-                    <div>{{ $t('中签数量') }}</div>
-                    <div>{{ item.ballotNumber }}</div>
-                </div>
-            </div>
+    <div class="icoRecord_list">
+      <div class="icoRecord_item mb-5" v-for="(item, index) in recordLIst" :key="index">
+        <div class="item_1">
+          <div>
+            {{ item.symbol }}
+          </div>
+          <div class="item_1_1">
+            {{ item.name }}
+          </div>
         </div>
+        <div class="item_2 flex justify-between">
+          <div>{{ $t('state') }}</div>
+          <div>{{ getStatus(item.status) }}</div>
+        </div>
+        <div class="item_2 flex justify-between">
+          <div>{{ $t('申购数量') }}</div>
+          <div>{{ item.subscribeNums }}</div>
+        </div>
+        <div class="item_2 flex justify-between">
+          <div>{{ $t('中签数量') }}</div>
+          <div>{{ item.ballotNumber }}</div>
+        </div>
+      </div>
     </div>
+  </div>
 </template>
 
 <script setup>
-import { ref, watch } from "vue";
-import { showToast } from 'vant'
-import { _icoRecordList } from "@/service/ico.api.js";
-import { useI18n } from "vue-i18n";
-const { t } = useI18n()
+import {ref, watch} from "vue";
+import {showToast} from 'vant'
+import {_icoRecordList} from "@/service/ico.api.js";
+import {useI18n} from "vue-i18n";
+
+const {t} = useI18n()
 
 // tab切换
 const active = ref('0');
 watch(active, (val) => {
-    getList()
+  getList()
 })
 
 // 获取记录列表
 const recordLIst = ref([]) // 记录列表
 const getList = () => {
-    let opt = {
-        status: active.value
-    }
-    if (opt.status == '0') delete opt.status
-    _icoRecordList(opt).then((res) => {
-        console.log(res);
-        recordLIst.value = res.records
-    })
+  let opt = {
+    status: active.value
+  }
+  if (opt.status == '0') delete opt.status
+  _icoRecordList(opt).then((res) => {
+    console.log(res);
+    recordLIst.value = res.records
+  })
 }
 getList()
 
 // 根据状态转换对应的文字
 const getStatus = (status) => {
-    let str = ''
-    switch (status) {
-        case 1:
-            str = t('已认购')
-            break;
-        case 2:
-            str = t('未中签')
-            break;
-        case 3:
-            str = t('已中签')
-            break;
-        case 4:
-            str = t('已缴纳')
-            break;
-        case 5:
-            str = t('已分发')
-            break;
-        default:
-            break;
-    }
-    return str
+  let str = ''
+  switch (status) {
+    case 1:
+      str = t('已认购')
+      break;
+    case 2:
+      str = t('未中签')
+      break;
+    case 3:
+      str = t('已中签')
+      break;
+    case 4:
+      str = t('已缴纳')
+      break;
+    case 5:
+      str = t('已分发')
+      break;
+    default:
+      break;
+  }
+  return str
 }
 </script>
 
 <style lang="scss" scoped>
 .icoRecord {
-    padding: 0rem 1.2rem 2rem 1.2rem;
-    font-size: 1.5rem;
+  padding: 0rem 1.2rem 2rem 1.2rem;
+  font-size: 1.5rem;
 
-    .icoRecord_list {
-        padding: 1rem 0rem;
 
-        .icoRecord_item {
-            padding: .5rem 1rem;
-            border: #aaa solid 1px;
-            border-radius: 1rem;
+  .icoRecord_list {
+    padding: 1rem 0rem;
 
-            @include themify() {
-                background-color: themed("input_background");
-            }
+    .icoRecord_item {
+      padding: .5rem 1rem;
+      color: #999;
+      font-size: 1.6rem;
+      border: #eee solid 1px;
+      border-radius:6px;
 
-            .item_1 {
-                padding: 1rem .5rem;
-                border-bottom: #ccc solid 1px;
-                font-size: 2rem;
-                font-weight: 700;
-            }
+      //@include themify() {
+      //    background-color: themed("input_background");
+      //}
 
-            .item_2 {
-                padding: 1rem .5rem;
-                border-bottom: #ccc solid 1px;
-                font-size: 1.6rem;
-                font-weight: 500;
+      .item_1 {
+        padding: 1rem .5rem;
+        border-bottom: #eee solid 1px;
+        font-size: 2.5rem;
+        color: black;
+        margin-bottom:5px;
 
-                &>div:last-child {
-                    color: #999;
-                }
-            }
-
-            .item_3 {
-                padding: .5rem;
-            }
+        .item_1_1 {
+          color: #999;
+          font-size: 2rem;
         }
+      }
+      .item_2 {
+        padding: 1rem .5rem;
+        font-size: 1.4rem;
+        font-weight: 500;
+
+        & > div:last-child {
+          font-size: 1.7rem;
+          color: #333;
+        }
+      }
+
+      .item_3 {
+        padding: .5rem;
+      }
     }
+  }
 }
-</style>
\ No newline at end of file
+</style>
+<style>
+.van-tabs__nav--card {
+  border-radius: 90px;
+}
+
+
+</style>
diff --git a/src/views/cryptos/AssetsCenter/components/history.css b/src/views/cryptos/AssetsCenter/components/history.css
index 3b41d34..a99e494 100644
--- a/src/views/cryptos/AssetsCenter/components/history.css
+++ b/src/views/cryptos/AssetsCenter/components/history.css
@@ -22,7 +22,7 @@
   background-color: #F5D658; }
 
 .green-round {
-  background-color: #06CDA5; }
+  background-color: #24c18d; }
 
 .red-round {
   background-color: red; }
diff --git a/src/views/cryptos/Funds/components/history.css b/src/views/cryptos/Funds/components/history.css
index 3b41d34..a99e494 100644
--- a/src/views/cryptos/Funds/components/history.css
+++ b/src/views/cryptos/Funds/components/history.css
@@ -22,7 +22,7 @@
   background-color: #F5D658; }
 
 .green-round {
-  background-color: #06CDA5; }
+  background-color: #24c18d; }
 
 .red-round {
   background-color: red; }
diff --git a/src/views/cryptos/Recharge/rechargeList.vue b/src/views/cryptos/Recharge/rechargeList.vue
index 863009f..58b1e39 100644
--- a/src/views/cryptos/Recharge/rechargeList.vue
+++ b/src/views/cryptos/Recharge/rechargeList.vue
@@ -3,34 +3,39 @@
     <div class="recharge box-border">
       <assets-head :title="$t('充值通道')" v-if="!isForeign" :back-func="backFunc">
         <img src="../../../assets/image/assets-center/exchange.png" alt="exchange-img" class="w-44 h-38"
-          @click="goRouter('/cryptos/assetsCenter/rechargeWithdrawRecord')" />
+             @click="goRouter('/cryptos/assetsCenter/rechargeWithdrawRecord')"/>
       </assets-head>
-      <assets-head v-else :title="$t('充值通道')" >
+      <assets-head v-else :title="$t('充值通道')">
         <img src="../../../assets/image/assets-center/exchange.png" alt="exchange-img" class="w-44 h-38"
-          @click="goRouter('/cryptos/assetsCenter/rechargeWithdrawRecord')" />
+             @click="goRouter('/cryptos/assetsCenter/rechargeWithdrawRecord')"/>
       </assets-head>
       <div class="pl-36 pr-36">
         <div class="recharge-title font-35 textColor">{{ $t('请选择充值币种') }}</div>
-        <div class="recharge-list flex justify-between">
-          <div class="item-view flex flex-col items-center justify-center text-center w-189 h-220 box-border"
-            @click="selectSymbol('usdt')">
-            <img src="../../../assets/image/symbol/usdt.png" class="w-92 h-92" />
-            <div class="text-grey font-26 mt-32">{{ $t('USDT充值') }}</div>
+        <div class="recharge-list flexY justify-between">
+          <div class="item-view flex-centerY"
+               @click="selectSymbol('usdt')">
+            <img src="../../../assets/image/symbol/usdt.png" class="w-65"/>
+            <div class="text-black font-26 ml-10">{{ $t('USDT充值') }}<div  class="text-gray">USDT</div></div>
           </div>
-		  <div class="item-view flex flex-col items-center justify-center text-center w-189 h-220 box-border"
-		    @click="selectSymbol('usdc')">
-		    <img src="../../../assets/image/symbol/usdc.png" class="w-92 h-92" />
-		    <div class="text-grey font-26 mt-32">USDC{{ $t('recharge') }}</div>
-		  </div>
-          <div class="item-view  flex flex-col items-center justify-center text-center w-189 h-220 box-border"
-            @click="selectSymbol('btc')">
-            <img src="../../../assets/image/symbol/btc.png" class="w-92 h-92" />
-            <div class="text-grey font-26 mt-32">{{ $t('BTC充值') }}</div>
+          <div class="item-view flex-centerY"
+               @click="selectSymbol('usdc')">
+            <img src="../../../assets/image/symbol/usdc.png" class="w-65"/>
+            <div class="text-black font-26  ml-10">USDC{{ $t('recharge') }}<div  class="text-gray">USDC</div></div>
           </div>
-          <div class="item-view flex flex-col items-center justify-center text-center w-189 h-220 box-border"
-            @click="selectSymbol('eth')">
-            <img src="../../../assets/image/symbol/eth.png" class="w-92 h-92" />
-            <div class="text-grey font-26 mt-32">{{ $t('ETH充值') }}</div>
+          <div class="item-view flex-centerY"
+               @click="selectSymbol('btc')">
+            <img src="../../../assets/image/symbol/btc.png" class="w-65"/>
+            <div class="text-black font-26  ml-10">{{ $t('BTC充值') }}<div  class="text-gray">BTC</div></div>
+          </div>
+          <div class="item-view flex-centerY"
+               @click="selectSymbol('eth')">
+            <img src="../../../assets/image/symbol/eth.png" class="w-65"/>
+            <div class="text-black font-26  ml-10">
+              <div>
+                {{ $t('ETH充值') }}
+              </div>
+              <div  class="text-gray">ETH</div>
+            </div>
           </div>
         </div>
       </div>
@@ -52,7 +57,8 @@
 
 <script>
 import assetsHead from "@/components/Transform/assets-head/index.vue";
-import { Icon } from 'vant';
+import {Icon} from 'vant';
+
 export default {
   name: 'rechageList',
   components: {
@@ -133,6 +139,10 @@
 <style lang="scss" scoped>
 @import "@/assets/init.scss";
 
+.item-view{
+  margin: 20px 0;
+}
+
 #cryptos {
   .recharge {
     width: 100%;
@@ -140,13 +150,8 @@
   }
 
   .recharge-title {
-    margin: 86px 0 104px 0;
+    margin: 86px 0 54px 0;
   }
 
-  .recharge-list>div {
-    border: 2px solid $bg_dark;
-    border-radius: 15px;
-    box-sizing: border-box;
-  }
 }
 </style>
diff --git a/src/views/cryptos/Recharge/rechargePage.vue b/src/views/cryptos/Recharge/rechargePage.vue
index c11f4f5..caca4dd 100644
--- a/src/views/cryptos/Recharge/rechargePage.vue
+++ b/src/views/cryptos/Recharge/rechargePage.vue
@@ -10,8 +10,8 @@
                     <canvas id="QRcodeCanvas" v-show="!imgshow"></canvas>
                     <img :src="img" alt="" v-show="imgshow" class="QRcodeImg" />
                 </div>
-                <div class="code-btn btnMain text-center font-26 text-white" @click="download('#QRcodeCanvas')">{{
-                    $t('保存二维码') }}</div>
+              <van-button type="primary"  style="width:100%" color="#111" @click="download('#QRcodeCanvas')">{{
+                    $t('保存二维码') }}</van-button>
             </div>
             <div class="border-light-grey"></div>
             <div class="pl-10 pr-10 font-28">
@@ -59,8 +59,8 @@
                 <div class="pl-30 pr-30">
                     <!-- <div class="font-30 mb-27 textColor">{{ $t('重要提示') }}</div> -->
                     <!-- <div class="font-28 text-grey" v-html="tip"></div> -->
-                    <button class="btnMain text-white next-btn font-30 rounded-lg" @click="nextBtn">{{ $t('下一步')
-                        }}</button>
+                  <van-button type="primary"  style="width:100%" color="#111" @click="nextBtn">{{ $t('下一步')
+                    }}</van-button>
                 </div>
             </div>
         </div>
diff --git a/src/views/cryptos/Withdraw/withdrawPage.vue b/src/views/cryptos/Withdraw/withdrawPage.vue
index 07f458e..77e19e2 100644
--- a/src/views/cryptos/Withdraw/withdrawPage.vue
+++ b/src/views/cryptos/Withdraw/withdrawPage.vue
@@ -53,21 +53,25 @@
 					<!--<span>{{ usdtBalance }} USDT</span>-->
 					<span>{{ getwei(usdtBalance * 1, numLenth) }} {{ value }}</span>
 				</p>
-				<p class="text-grey mt-64 font-28">{{ $t('可到账数量') }}</p>
-				<div class="font-40 mt-20 fon-bold ">
-					<span class="font-40 font-700 textColor"> {{ volume_last || '0.00' }}</span>
-					<!--<span class="font-32 ml-5 text-grey">USDT</span>-->
-					<span class="font-32 ml-5 text-grey">{{ value }}</span>
-				</div>
-				<p class="text-grey mt-22 font-28">{{ $t('提现费用') }}:{{ fee || '0.00' }} {{ value }}</p>
-				<p class="text-white mt-46 textColor font-28">{{ $t('提币说明') }}:
-				</p>
+        <p class="text-white mt-46 textColor font-28">{{ $t('提币说明') }}:
+        </p>
 				<div class="text-grey mt-10 font-28" v-html="tip"></div>
-				<van-button
-					class="w-768 h-100 rounded flex justify-center items-center mt-56  text-white btnMain border-none"
-					@click="showDetail">
-					{{ $t('提现') }}</van-button>
-
+        <div class="flex-centerY flex-position-between">
+          <div>
+            <p class="text-grey mt-64 font-22">{{ $t('可到账数量') }}</p>
+            <div class="font-30 mt-5 fon-bold ">
+              <span class="font-34 font-700 textColor"> {{ volume_last || '0.00' }}</span>
+              <!--<span class="font-32 ml-5 text-grey">USDT</span>-->
+              <span class="font-28 ml-5">{{ value }}</span>
+            </div>
+            <div  class="flex-centerY text-grey mt-5 font-22">{{ $t('提现费用') }}:<p class="font-26" style="color: #111">{{ fee || '0.00' }} {{ value }}</p></div>
+          </div>
+          <div>
+            <van-button
+                @click="showDetail" style="width: 120px" color="#111">
+              {{ $t('提现') }}</van-button>
+          </div>
+        </div>
 			</div>
 			<van-popup v-model:show="show" position="bottom">
 				<div class="pop-box relative font-28">
@@ -451,8 +455,8 @@
 
 		li {
 			&.active {
-				border-color: $color_main;
-				color: $color_main;
+        background: #111;
+				color: white !important;
 			}
 		}
 
@@ -464,4 +468,4 @@
 			background: $btn_main;
 		}
 	}
-</style>
\ No newline at end of file
+</style>
diff --git a/src/views/cryptos/pledgeLoan/index.vue b/src/views/cryptos/pledgeLoan/index.vue
index 0acabe2..540e0c9 100644
--- a/src/views/cryptos/pledgeLoan/index.vue
+++ b/src/views/cryptos/pledgeLoan/index.vue
@@ -27,7 +27,7 @@
                                 </div>
                             </div>
                         </div>
-                        <div class="errorInfo font-24 h-28 lh-28 mt-20 mb-30" style="color:#F43368;">{{ errorMsg ? errorMsg
+                        <div class="errorInfo font-24 h-28 lh-28 mt-20 mb-30" style="color:#f14b3f;">{{ errorMsg ? errorMsg
                             : ''
                         }}
                         </div>
@@ -166,7 +166,7 @@
             pledgeAmount: '', //质押金额
             pledgeCurrency: '', //质押币种
             volume: '', //可用余额
-            pledgeRate: '', //质押率 
+            pledgeRate: '', //质押率
             closeOut: '', //强平价格
             debtAmount: '',//预计还款
             interestAmount: '--',//总利息
@@ -437,4 +437,4 @@
         display: block;
     }
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/src/views/cryptos/promote/init.scss b/src/views/cryptos/promote/init.scss
index bedc58e..ba42325 100644
--- a/src/views/cryptos/promote/init.scss
+++ b/src/views/cryptos/promote/init.scss
@@ -50,12 +50,13 @@
   $border-grey: $border-grey;
   $blue: #1194F7;
   $light-blue: #1199FA;
-  $red: #F43368;
-  $green: #06CDA5;
+  $red: #f14b3f;
+  //$green: #24c18d;
+  $green: #24c18d;
   $purple: #9A4DFD;
   $night: #131a2e;
 
-  
+
   .mining-pledge {
     .van-tabs__wrap {
       height: 145px !important;
@@ -1481,4 +1482,4 @@
 
 
 
-}
\ No newline at end of file
+}
diff --git a/src/views/customerService/index.vue b/src/views/customerService/index.vue
index 640b0f4..40f7312 100644
--- a/src/views/customerService/index.vue
+++ b/src/views/customerService/index.vue
@@ -21,29 +21,29 @@
           :style="{ 'display': finished ? 'none' : 'block' }">
           {{ $t('historyMessage') }}
         </div>
-        <ul class="flex flex-col pt-3">
-          <li v-for="(item) in list" :key="item.id" class="flex flex-col my-3">
+        <ul class="flexY flex-col pt-3" style="width: 100%">
+          <li v-for="(item) in list" :key="item.id" class="flex-col my-3">
             <!-- <p class="font-13 text-center py-2 text-grey font-15" v-if="showTime(index)">{{
               item.createtime &&
               item.createtime.split(' ')[0]
             }}</p> -->
             <p class="font-13 text-center pb-3 text-grey font-15">{{
-              item.createtime
-            }}</p>
-            <div class="flex" :class="item.send_receive === 'send' ? 'justify-end' : ''">
+                item.createtime
+              }}</p>
+            <div class="flex" :class="item.send_receive === 'send' ? 'justify-end' : 'send'">
               <template v-if="item.send_receive === 'receive'">
                 <img src="@/assets/image/service/responser.png" class="w-10 h-10 mr-5" />
-                <div class="responser px-18 py-8 font-15 left-chatBg">
-                  <p class="break-word textColor  font-15" style="max-width: 200px;"
-                    v-if="item.content_type === 'text' || item.type === 'text'">
+                <div class="responser px-18 py-8 font-15 left-chatBg" style="padding: 5px 5px">
+                  <p class="break-word textColor  font-15" style="max-width: 200px;padding:8px 10px"
+                     v-if="item.content_type === 'text' || item.type === 'text'">
                     {{ item.content }}</p>
-                  <img v-else :src="item.content" class="w-200 h-200" @click="onPreview(item.content)" />
+                  <img v-else :src="item.content" style="border-radius: 18px;max-width: 120px;min-width: 30px" class="w-200 h-200" @click="onPreview(item.content)" />
                 </div>
               </template>
-              <div class="py-8 px-18 rounded-ban flex flex-col right-chatBg" v-else>
-                <img :src="`${item.content}`" class="w-200 h-200"
-                  v-if="item.content_type === 'img' || item.type === 'img'" @click="onPreview(item.content)" />
-                <p class="break-word textColor  font-15" v-else style="max-width: 200px;">{{ item.content }}</p>
+              <div class="py-8 px-18 rounded-ban flex flex-col right-chatBg" style="padding: 5px 5px" v-else>
+                <img :src="`${item.content}`"  style="border-radius: 18px;max-width: 120px;min-width: 30px"
+                     v-if="item.content_type === 'img' || item.type === 'img'" @click="onPreview(item.content)" />
+                <p class="break-word textColor  font-15"  v-else style="max-width: 200px;padding:8px 10px">{{ item.content }}</p>
               </div>
             </div>
           </li>
@@ -265,6 +265,9 @@
 
 </script>
 <style lang="scss" scoped>
+.justify-end{
+  width: 100%;
+}
 .service-box {
   font-size: 14px;
   width: 100%;
diff --git a/src/views/homePage/index.vue b/src/views/homePage/index.vue
index 180497e..423fe4d 100644
--- a/src/views/homePage/index.vue
+++ b/src/views/homePage/index.vue
@@ -1,194 +1,332 @@
 <template>
 
-    <Head></Head>
-    <div class="home_page">
-        <!-- <Head></Head>
-        <div class="home_logo flex justify-center"><img src="@/assets/imgs/home/home_logo.png" alt=""></div>
-        <div class="text-center font-bold mt-8 logo_text">{{ $t('复制财富,從此刻開始') }}</div>
-        <div class="text-center mt-2 logo_text_small">{{ $t('超6000種熱門交易類別,立即註冊领取5000USDT') }}!</div>
+  <Head></Head>
+  <div class="home_page">
+    <!-- <Head></Head>
+    <div class="home_logo flex justify-center"><img src="@/assets/imgs/home/home_logo.png" alt=""></div>
+    <div class="text-center font-bold mt-8 logo_text">{{ $t('复制财富,從此刻開始') }}</div>
+    <div class="text-center mt-2 logo_text_small">{{ $t('超6000種熱門交易類別,立即註冊领取5000USDT') }}!</div>
 
 
-        <div class="login_buts flex justify-between pl-10 pr-10 pt-10"
-            v-if="!(userStore.userInfo && userStore.userInfo.token)">
-            <div class="login_but_z text-center" @click="toPage('/register')">{{ $t('register') }}</div>
-            <div class="login_but_d text-center" @click="toPage('/login')">{{ $t('登录') }}</div>
-        </div>
-
-        <div class="home_grid flex justify-start flex-wrap">
-            <div class="grid_item pt-10" v-for="value in tabbers" :key="value.key" @click="toPage(value.path)">
-                <div class="grid_item_img flex justify-center"><img :src="value.icon" alt=""></div>
-                <div class="text-center mt-2">{{ value.name }}</div>
-            </div>
-        </div>
-
-        <van-notice-bar class="font-26 mt-10 index_notice" background="#fafbfc" :scrollable="false" wrapable
-            color="#333333">
-            <van-swipe vertical class="notice-swipe" :autoplay="2000" :show-indicators="false">
-                <van-swipe-item v-for="item in announceList" :key="item.id" @click="toAnnounceDetail(item.uuid)">
-                    <div class="flex justify-start items-center">
-                        <img :src="item.imgUrl" alt="" class="notice_img mr-5">
-                        <div class="notice_content">
-                            <div>{{ item.startTime }}</div>
-                            <div>{{ item.title }}</div>
-                        </div>
-                    </div>
-                </van-swipe-item>
-            </van-swipe>
-        </van-notice-bar>
-
-
-        <div id="cryptos" class="pt-10">
-            <list-quatation :listData="qList" :tabShow="false" />
-        </div> -->
-
-        <div class="home_1 flex justify-around items-center">
-            <div v-for="i in tabbers" :key="i.key" @click="toPage(i.path)">
-                <img :src="i.icon" v-if="storeS.state.vant.theme == 'light'">
-                <img :src="i.icon2" v-else>
-                <div>{{ i.name }}</div>
-            </div>
-        </div>
-
-        <van-notice-bar class="font-26 mt-10 index_notice" :scrollable="false" wrapable>
-            <van-swipe vertical class="notice-swipe" :autoplay="2000" :show-indicators="false">
-                <van-swipe-item v-for="item in announceList" :key="item.id" @click="toAnnounceDetail(item.uuid)">
-                    <div class="flex justify-start items-center">
-                        <img :src="item.imgUrl" alt="" class="notice_img mr-5">
-                        <div class="notice_content textColor">
-                            <div>{{ item.startTime }}</div>
-                            <div>{{ item.title }}</div>
-                        </div>
-                    </div>
-                </van-swipe-item>
-            </van-swipe>
-        </van-notice-bar>
-
-        <div class="tabs flex justify-start items-center textColor1">
-            <div v-for="i in tabList" :key="i" :class="i.key == tab ? 'textColor' : ''" @click="tab = i.key">
-                {{ i.name }}
-            </div>
-        </div>
-
-        <div id="cryptos">
-            <list-quatation :listData="qList" :tabShow="false" :tabActive="tab" />
-        </div>
-
-        <div class="home_2" @click="toPage('/quotes/index')">
-            {{ $t("更多") }}
-            <van-icon name="arrow-down" />
-        </div>
-
-        <div class="home_3 flex justify-start">
-            <img :src="LOGO" alt="">
-            <span>{{ $t('安全、便利、社交') }}</span>
-        </div>
-
-        <van-collapse v-model="activeName" accordion>
-            <van-collapse-item name="1" class="border_b">
-                <template #title>
-                    <div class="flex justify-start items-center">
-                        <img src="@/assets/imgs/home/home_23a.png" alt="" class="border_icon" v-if="storeS.state.vant.theme == 'light'">
-                        <img src="@/assets/imgs/home/home_23b.png" alt="" class="border_icon" v-else>
-                        {{ $t('公司') }}
-                    </div>
-                </template>
-                <div style="padding-left: 2.3rem;">
-                    <p @click="toPage('/aboutUs')">{{ $t('关于我们') }}</p>
-                    <p @click="toPage('/helpCenter')">{{ $t('帮助中心') }}</p>
-                </div>
-            </van-collapse-item>
-            <van-collapse-item name="2" class="border_b">
-                <template #title>
-                    <div class="flex justify-start items-center">
-                        <img src="@/assets/imgs/home/home_21a.png" alt="" class="border_icon" v-if="storeS.state.vant.theme == 'light'">
-                        <img src="@/assets/imgs/home/home_21b.png" alt="" class="border_icon" v-else>
-                        {{ $t('法律') }}
-                    </div>
-                </template>
-                <div style="padding-left: 2.3rem;">
-                    <p @click="toPage('/TermsOfService')">{{ $t('serviceConf') }}</p>
-                </div>
-            </van-collapse-item>
-            <van-collapse-item name="3" class="border_b">
-                <template #title>
-                    <div class="flex justify-start items-center">
-                        <img src="@/assets/imgs/home/home_22a.png" alt="" class="border_icon" v-if="storeS.state.vant.theme == 'light'">
-                        <img src="@/assets/imgs/home/home_22b.png" alt="" class="border_icon" v-else>
-                        {{ $t('支援') }}
-                    </div>
-                </template>
-                <div style="padding-left: 2.3rem;">
-                    <p @click="toPage('/customerService')">{{ $t('onLineService') }}</p>
-                </div>
-            </van-collapse-item>
-        </van-collapse>
+    <div class="login_buts flex justify-between pl-10 pr-10 pt-10"
+        v-if="!(userStore.userInfo && userStore.userInfo.token)">
+        <div class="login_but_z text-center" @click="toPage('/register')">{{ $t('register') }}</div>
+        <div class="login_but_d text-center" @click="toPage('/login')">{{ $t('登录') }}</div>
     </div>
+
+    <div class="home_grid flex justify-start flex-wrap">
+        <div class="grid_item pt-10" v-for="value in tabbers" :key="value.key" @click="toPage(value.path)">
+            <div class="grid_item_img flex justify-center"><img :src="value.icon" alt=""></div>
+            <div class="text-center mt-2">{{ value.name }}</div>
+        </div>
+    </div>
+
+    <van-notice-bar class="font-26 mt-10 index_notice" background="#fafbfc" :scrollable="false" wrapable
+        color="#333333">
+        <van-swipe vertical class="notice-swipe" :autoplay="2000" :show-indicators="false">
+            <van-swipe-item v-for="item in announceList" :key="item.id" @click="toAnnounceDetail(item.uuid)">
+                <div class="flex justify-start items-center">
+                    <img :src="item.imgUrl" alt="" class="notice_img mr-5">
+                    <div class="notice_content">
+                        <div>{{ item.startTime }}</div>
+                        <div>{{ item.title }}</div>
+                    </div>
+                </div>
+            </van-swipe-item>
+        </van-swipe>
+    </van-notice-bar>
+
+
+    <div id="cryptos" class="pt-10">
+        <list-quatation :listData="qList" :tabShow="false" />
+    </div> -->
+    <van-notice-bar text="通知内容" left-icon="volume" color="orange" background="white"/>
+    <div style="margin: 0 10px">
+
+      <div class="flex-centerY">
+        <div style="font-size: 16px;margin-right: 5px">
+          <van-icon v-if="showMoney" @click="showMoney=!showMoney" name="browsing-history" />
+          <van-icon v-else @click="showMoney=!showMoney" name="closed-eye" />
+        </div>
+        <div style="font-size: 14px;color: black">
+          {{$t("总资产")}}(USD)
+        </div>
+      </div>
+      <div class="flex-centerY flex-position-between" style="margin-top: 15px">
+       <div class="flex flex-justify-between">
+         <div style="font-size: 33px;font-weight: bold;color: black">
+           {{showMoney?myAssets.capital.toFixed(0):"*****" }}
+         </div>
+         <div style="font-size: 24px;font-weight: bold;color: black;margin-top: 3px">
+           {{showMoney?myAssets.capital.toFixed(2).substring(myAssets.capital.toFixed(2).indexOf(".")):""}}
+         </div>
+       </div>
+        <div style="background: black;color: white;padding: 4px 17px;border-radius: 90px;font-size: 14px">
+          {{$t("充值")}}
+        </div>
+      </div>
+      <div class="flex-centerY" style="font-size: 12px;color: #999;margin-top: 20px;">
+        <div>
+          {{$t("今日盈亏")}}
+        </div>
+        <div style="margin-left: 15px">
+          {{showMoney? todayMoney.money_contract_profit_today:"****"}}
+        </div>
+        <div style="margin-left: 15px">
+          {{showMoney?(Number(todayMoney.money_contract_profit_today+'')/(myAssets.capital==0?1:myAssets.capital)*100).toFixed(2)+'%':"****"}}
+        </div>
+      </div>
+    </div>
+    <div class="home_1 flex justify-around items-center" style="padding: 20px 0">
+      <div v-for="i in tabbers" :key="i.key" @click="toPage(i.path)">
+        <img :src="i.icon" v-if="storeS.state.vant.theme == 'light'">
+        <img :src="i.icon2" v-else>
+        <div style="font-size: 12px;color: #777">{{ i.name }}</div>
+      </div>
+    </div>
+    <div style="position: relative;margin: 10px 00px;border-radius: 12px;border: 1px #eee solid">
+<!--      <van-notice-bar class="font-26 mt-10 index_notice" :scrollable="false" wrapable>-->
+
+        <van-swipe @change="current=$event" indicator-color="#999" class="notice-swipe" :autoplay="2000"
+                   :show-indicators="false" style="border-radius: 8px;overflow: hidden">
+          <van-swipe-item v-for="item in announceList" style="border-radius: 8px;overflow: hidden;border: #eee 1px solid"  :key="item.id" @click="toAnnounceDetail(item.uuid)">
+<!--            <div class="flex justify-start items-center">-->
+<!--              <img :src="item.imgUrl" style="width:100%" alt="" class="notice_img mr-5">-->
+<!--&lt;!&ndash;              <div class="notice_content textColor">&ndash;&gt;-->
+<!--&lt;!&ndash;                <div>{{ item.startTime }}</div>&ndash;&gt;-->
+<!--&lt;!&ndash;                <div>{{ item.title }}</div>&ndash;&gt;-->
+<!--&lt;!&ndash;              </div>&ndash;&gt;-->
+<!--            </div>-->
+            <img :src="item.imgUrl" alt="" class="notice_img mr-5" style="width:100%;height:100px;border-radius: 8px" >
+          </van-swipe-item>
+        </van-swipe>
+<!--      </van-notice-bar>-->
+      <div class="flex-center" style="position:absolute;bottom:5px;left:0;;z-index:999;width: 100%">
+        <div v-for="(i,index) in announceList">
+          <div v-if="current!=index" style="width:3px;height:3px;background:#bbb;margin-right:5px;border-radius: 3px"></div>
+          <div v-else style="width:3px;height:3px;background:#333;;margin-right:5px;border-radius: 3px"></div>
+        </div>
+      </div>
+    </div>
+<!--    <div style="margin: 15 0px;align-items: stretch" class="flex-centerY">-->
+<!--      <div class="flex-centerY" style="flex: 1;margin-right: 20px;border: #eee 1px solid;border-radius: 12px;padding: 10px 10px">-->
+<!--        <div style="flex: 1" class="flexY">-->
+<!--          <div style="font-size: 14px;color: black;font-weight: bold">-->
+<!--            {{$t("信贷")}}-->
+<!--          </div>-->
+<!--          <div style="font-size: 12px;color: #999;flex: 1">-->
+<!--            {{$t("低利率,彈性強,助您持續擁有資金")}}-->
+<!--          </div>-->
+<!--        </div>-->
+<!--        <div >-->
+<!--          <img src="../../assets/img/img_4.png" style="width: 55px;height: 55px">-->
+<!--        </div>-->
+<!--      </div>-->
+<!--      <div class="flex-centerY" style="flex: 1;border: #eee 1px solid;border-radius: 12px;padding: 10px 10px">-->
+<!--        <div style="flex: 1;height: 100%" class="flexY">-->
+<!--          <div style="font-size: 14px;color: black;font-weight: bold">-->
+<!--            {{$t("OTC")}}-->
+<!--          </div>-->
+<!--          <div style="font-size: 12px;color: #999;;flex: 1">-->
+<!--            {{$t("200+支付方式")}}-->
+<!--          </div>-->
+<!--        </div>-->
+<!--        <div >-->
+<!--          <img src="../../assets/img/img_5.png" style="width: 55px;height: 55px">-->
+<!--        </div>-->
+<!--      </div>-->
+<!--    </div>-->
+    <div class="tabs flex justify-start items-center textColor1">
+      <div v-for="i in tabList" :key="i" :class="i.key == tab ? 'textColor' : ''" @click="tab = i.key" style="font-size: 16px;margin-top: 20px">
+        {{ i.name }}
+      </div>
+    </div>
+    <div id="cryptos">
+      <list-quatation :listData="qList" :tabShow="false" :tabActive="tab"/>
+    </div>
+
+    <div class="home_2" @click="toPage('/quotes/index')">
+      {{ $t("更多") }}
+      <van-icon name="arrow-down"/>
+    </div>
+
+    <div class="home_3 flex justify-start">
+      <img :src="LOGO" alt="">
+      <span>{{ $t('安全、便利、社交') }}</span>
+    </div>
+
+    <van-collapse v-model="activeName" accordion>
+      <van-collapse-item name="1" class="border_b">
+        <template #title>
+          <div class="flex justify-start items-center">
+            <img src="@/assets/imgs/home/home_23a.png" alt="" class="border_icon"
+                 v-if="storeS.state.vant.theme == 'light'">
+            <img src="@/assets/imgs/home/home_23b.png" alt="" class="border_icon" v-else>
+            {{ $t('公司') }}
+          </div>
+        </template>
+        <div style="padding-left: 2.3rem;">
+          <p @click="toPage('/aboutUs')">{{ $t('关于我们') }}</p>
+          <p @click="toPage('/helpCenter')">{{ $t('帮助中心') }}</p>
+        </div>
+      </van-collapse-item>
+      <van-collapse-item name="2" class="border_b">
+        <template #title>
+          <div class="flex justify-start items-center">
+            <img src="@/assets/imgs/home/home_21a.png" alt="" class="border_icon"
+                 v-if="storeS.state.vant.theme == 'light'">
+            <img src="@/assets/imgs/home/home_21b.png" alt="" class="border_icon" v-else>
+            {{ $t('法律') }}
+          </div>
+        </template>
+        <div style="padding-left: 2.3rem;">
+          <p @click="toPage('/TermsOfService')">{{ $t('serviceConf') }}</p>
+        </div>
+      </van-collapse-item>
+      <van-collapse-item name="3" class="border_b">
+        <template #title>
+          <div class="flex justify-start items-center">
+            <img src="@/assets/imgs/home/home_22a.png" alt="" class="border_icon"
+                 v-if="storeS.state.vant.theme == 'light'">
+            <img src="@/assets/imgs/home/home_22b.png" alt="" class="border_icon" v-else>
+            {{ $t('支援') }}
+          </div>
+        </template>
+        <div style="padding-left: 2.3rem;">
+          <p @click="toPage('/customerService')">{{ $t('onLineService') }}</p>
+        </div>
+      </van-collapse-item>
+    </van-collapse>
+  </div>
 </template>
 
 <script setup>
 import Head from './components/head.vue'
-import { useI18n } from "vue-i18n";
-import { ref, computed, onBeforeUnmount } from 'vue';
-import { useRouter } from 'vue-router';
+import {useI18n} from "vue-i18n";
+import {ref, computed, onBeforeUnmount} from 'vue';
+import {useRouter} from 'vue-router';
 import ListQuatation from "@/components/Transform/list-quotation/index.vue";
-import { _getHomeList } from '@/service/cryptos.api'
-import { _getNewsList1, _getPopupNews } from '@/service/user.api'
-import { useStore } from "vuex";
-import { TIME_OUT, LOGO } from "@/config";
-import { useUserStore } from '@/store/user';
-import { setStorage, getStorage } from '@/utils/index.js';
+import {_getHomeList} from '@/service/cryptos.api'
+import {_getassets, _getContractBySymbolType, _getNewsList1, _getPopupNews} from '@/service/user.api'
+import {useStore} from "vuex";
+import {TIME_OUT, LOGO} from "@/config";
+import {useUserStore} from '@/store/user';
+import {setStorage, getStorage} from '@/utils/index.js';
 import storeS from '@/store/store'
 
 let catchSymbol = getStorage('symbol')
 if (!catchSymbol) {
-    setStorage('symbol', 'btcusdt');
+  setStorage('symbol', 'btcusdt');
 }
 const userStore = useUserStore()
-const { t } = useI18n()
+const {t} = useI18n()
 const router = useRouter()
 const store = useStore();
+const showMoney=ref(true)
+const myAssets=ref({})
+  _getassets().then(res => {
+    myAssets.value = res
+  })
 
 const tabbers = [
-    // { key: 1, name: t('跟单'), icon: new URL('@/assets/imgs/home/home_1.png', import.meta.url) },
-    // { key: 3, name: `C2C ${t('交易')}`, icon: new URL('@/assets/imgs/home/home_3.png', import.meta.url) },
-    // { key: 4, name: t('邀请好友'), icon: new URL('@/assets/imgs/home/home_4.png', import.meta.url) },
-    // { key: 5, name: t('合约'), icon: new URL('@/assets/imgs/home/home_5.png', import.meta.url), path: '/trade/index' },
-    // { key: 6, name: t('现货'), icon: new URL('@/assets/imgs/home/home_5.png', import.meta.url), path: '/cryptos/trade/btcusdt' },
-    // { key: 2, name: t('储值'), icon: new URL('@/assets/imgs/home/home_2.png', import.meta.url), path: '/cryptos/recharge/rechargeList?isForeign=true' },
-    // { key: 7, name: t('提现'), icon: new URL('@/assets/imgs/home/home_6.png', import.meta.url), path: '/exchange/withdraw-usdt' },/cryptos/Withdraw/withdrawPage
-    // { key: 7, name: t('提现'), icon: new URL('@/assets/imgs/home/home_6.png', import.meta.url), path: '/cryptos/Withdraw/withdrawPage' },
-    // { key: 8, name: t('卡券中心'), icon: new URL('@/assets/imgs/home/home_7.png', import.meta.url) },
-    // { key: 10, name: t('更多'), icon: new URL('@/assets/imgs/home/home_9.png', import.meta.url) },
+  // { key: 1, name: t('跟单'), icon: new URL('@/assets/imgs/home/home_1.png', import.meta.url) },
+  // { key: 3, name: `C2C ${t('交易')}`, icon: new URL('@/assets/imgs/home/home_3.png', import.meta.url) },
+  // { key: 4, name: t('邀请好友'), icon: new URL('@/assets/imgs/home/home_4.png', import.meta.url) },
+  // { key: 5, name: t('合约'), icon: new URL('@/assets/imgs/home/home_5.png', import.meta.url), path: '/trade/index' },
+  // { key: 6, name: t('现货'), icon: new URL('@/assets/imgs/home/home_5.png', import.meta.url), path: '/cryptos/trade/btcusdt' },
+  // { key: 2, name: t('储值'), icon: new URL('@/assets/imgs/home/home_2.png', import.meta.url), path: '/cryptos/recharge/rechargeList?isForeign=true' },
+  // { key: 7, name: t('提现'), icon: new URL('@/assets/imgs/home/home_6.png', import.meta.url), path: '/exchange/withdraw-usdt' },/cryptos/Withdraw/withdrawPage
+  // { key: 7, name: t('提现'), icon: new URL('@/assets/imgs/home/home_6.png', import.meta.url), path: '/cryptos/Withdraw/withdrawPage' },
+  // { key: 8, name: t('卡券中心'), icon: new URL('@/assets/imgs/home/home_7.png', import.meta.url) },
+  // { key: 10, name: t('更多'), icon: new URL('@/assets/imgs/home/home_9.png', import.meta.url) },
 
-    { key: 9, name: t('闪兑'), icon: new URL('@/assets/imgs/home/home_12a.png', import.meta.url), icon2: new URL('@/assets/imgs/home/home_12b.png', import.meta.url), path: '/cryptos/exchangePage' },
-    { key: 11, name: "ICO", icon: new URL('@/assets/imgs/home/home_11a.png', import.meta.url), icon2: new URL('@/assets/imgs/home/home_11b.png', import.meta.url), path: '/ICO/ico' },
-    { key: 12, name: "C2C", icon: new URL('@/assets/imgs/home/home_11a.png', import.meta.url), icon2: new URL('@/assets/imgs/home/home_11b.png', import.meta.url), path: '/wantBuy' },
-    { key: 13, name: t('onLineService'), icon: new URL('@/assets/imgs/home/home_10a.png', import.meta.url), icon2: new URL('@/assets/imgs/home/home_10b.png', import.meta.url), path: '/customerService' },
+  // {
+  //   key: 9,
+  //   name: t('闪兑'),
+  //   icon: new URL('@/assets/imgs/home/home_12a.png', import.meta.url),
+  //   icon2: new URL('@/assets/imgs/home/home_12b.png', import.meta.url),
+  //   path: '/cryptos/exchangePage'
+  // },
+  // {
+  //   key: 11,
+  //   name: "ICO",
+  //   icon: new URL('@/assets/imgs/home/home_11a.png', import.meta.url),
+  //   icon2: new URL('@/assets/imgs/home/home_11b.png', import.meta.url),
+  //   path: '/ICO/ico'
+  // },
+  // {
+  //   key: 12,
+  //   name: "C2C",
+  //   icon: new URL('@/assets/imgs/home/home_11a.png', import.meta.url),
+  //   icon2: new URL('@/assets/imgs/home/home_11b.png', import.meta.url),
+  //   path: '/wantBuy'
+  // },
+  // {
+  //   key: 13,
+  //   name: t('onLineService'),
+  //   icon: new URL('@/assets/imgs/home/home_10a.png', import.meta.url),
+  //   icon2: new URL('@/assets/imgs/home/home_10b.png', import.meta.url),
+  //   path: '/customerService'
+  // },
+  {
+    key: 9,
+    name: t('申购'),
+    icon: new URL('@/assets/img/img.png', import.meta.url),
+    icon2: new URL('@/assets/imgs/home/home_12b.png', import.meta.url),
+    path: '/ICO/ico'
+  },
+  {
+    key: 9,
+    name: t('C2C'),
+    icon: new URL('@/assets/img/img_1.png', import.meta.url),
+    icon2: new URL('@/assets/imgs/home/home_12b.png', import.meta.url),
+    path: '/wantBuy'
+  },
+  {
+    key: 9,
+    name: t('onLineService'),
+    icon: new URL('@/assets/img/img_3.png', import.meta.url),
+    icon2: new URL('@/assets/imgs/home/home_12b.png', import.meta.url),
+    path: '/customerService'
+  },{
+    key: 9,
+    name: t('闪兑'),
+    icon: new URL('@/assets/img/img_2.png', import.meta.url),
+    icon2: new URL('@/assets/imgs/home/home_12b.png', import.meta.url),
+    path: '/cryptos/exchangePage'
+  },
 ]
 
 // 手风琴选中
 const activeName = ref('0')
+const todayMoney=ref({
+  money_contract_profit_today:0
+})
 
 // tab切换
 const tab = ref(1)
+const current = ref(0)
 const tabList = [
-    { name: t('永续合约'), key: 1 },
-    { name: t('现货'), key: 2 },
+  {name: t('永续合约'), key: 1},
+  {name: t('现货'), key: 2},
 ]
 
 // 获取公告数据
 const announceList = ref([])
+_getContractBySymbolType().then(data => {
+  todayMoney.value = data
+})
 _getNewsList1({
-    language: useI18n().locale.value,
+  language: useI18n().locale.value,
 }).then(res => {
-    announceList.value = res
+  announceList.value = res
 })
 
 // 跳转公告详情
 const toAnnounceDetail = (announceId) => {
-    if (announceId) {
-        router.push({ path: '/cryptos/AnnounceDetail', query: { id: announceId } })
-    }
+  if (announceId) {
+    router.push({path: '/cryptos/AnnounceDetail', query: {id: announceId}})
+  }
 }
 
 // 获取客服链接
@@ -196,28 +334,28 @@
 
 // 跳转页面
 const toPage = (path) => {
-    if (!path) return
-    if (path == '/customerService') {
-        if (customer_service_url.value) {
-            window.location.href = customer_service_url.value;
-        } else {
-            router.push(path)
-        }
+  if (!path) return
+  if (path == '/customerService') {
+    if (customer_service_url.value) {
+      window.location.href = customer_service_url.value;
     } else {
-        router.push(path)
+      router.push(path)
     }
+  } else {
+    router.push(path)
+  }
 }
 
 // 轮播图数据
 const swipe1 = ref([
-    { key: 1, img: new URL('@/assets/imgs/home/home_1.png', import.meta.url) },
-    { key: 2, img: new URL('@/assets/imgs/home/home_2.png', import.meta.url) },
-    { key: 3, img: new URL('@/assets/imgs/home/home_3.png', import.meta.url) },
+  {key: 1, img: new URL('@/assets/imgs/home/home_1.png', import.meta.url)},
+  {key: 2, img: new URL('@/assets/imgs/home/home_2.png', import.meta.url)},
+  {key: 3, img: new URL('@/assets/imgs/home/home_3.png', import.meta.url)},
 ])
 const swipe2 = ref([
-    { key: 1, img: new URL('@/assets/imgs/home/home_1.png', import.meta.url) },
-    { key: 2, img: new URL('@/assets/imgs/home/home_2.png', import.meta.url) },
-    { key: 3, img: new URL('@/assets/imgs/home/home_3.png', import.meta.url) },
+  {key: 1, img: new URL('@/assets/imgs/home/home_1.png', import.meta.url)},
+  {key: 2, img: new URL('@/assets/imgs/home/home_2.png', import.meta.url)},
+  {key: 3, img: new URL('@/assets/imgs/home/home_3.png', import.meta.url)},
 ])
 
 //#region 行情数据----------------------------------------
@@ -226,27 +364,27 @@
 const coinArr = computed(() => store.getters['home/coinArr']);
 
 const fetchQList = async () => { // 获取行情
-    const list = await _getHomeList(coinArr.value.join(',')).catch(() => {
-    })
+  const list = await _getHomeList(coinArr.value.join(',')).catch(() => {
+  })
 
-    if (!(list instanceof Array)) {
-        return
-    }
-    qList.value = list.slice(0, 4);
+  if (!(list instanceof Array)) {
+    return
+  }
+  qList.value = list.slice(0, 4);
 
-    if (timeout.value) {
-        clearTimeout(timeout.value)
-    }
-    timeout.value = setTimeout(async () => {
-        await fetchQList()
-    }, TIME_OUT)
+  if (timeout.value) {
+    clearTimeout(timeout.value)
+  }
+  timeout.value = setTimeout(async () => {
+    await fetchQList()
+  }, TIME_OUT)
 }
 fetchQList()
 
 onBeforeUnmount(() => {
-    if (timeout.value) {
-        clearTimeout(timeout.value)
-    }
+  if (timeout.value) {
+    clearTimeout(timeout.value)
+  }
 })
 //#endregion----------------------------------------------
 
@@ -254,233 +392,233 @@
 
 <style lang="scss">
 .home_page {
-    min-height: 100vh;
-    width: 100%;
-    padding: 1rem 1rem 10rem 1rem;
-    font-size: 1.4rem;
+  min-height: 100vh;
+  width: 100%;
+  padding: 1rem 1rem 10rem 1rem;
+  font-size: 1.4rem;
 
-    .home_1 {
-        padding-top: 2rem;
+  .home_1 {
+    padding-top: 2rem;
 
-        div {
-            text-align: center;
-            font-size: 1.4rem;
-        }
-
-        img {
-            width: 2.8rem;
-            margin: 0 auto .4rem;
-        }
+    div {
+      text-align: center;
+      font-size: 1.4rem;
     }
 
-    .index_notice {
-        height: 100px;
-        border-radius: 10px;
-        margin-bottom: 2rem;
+    img {
+      width: 2.8rem;
+      margin: 0 auto .4rem;
+    }
+  }
 
-        @include themify() {
-            background: themed("main_background");
-            border: themed("border_color") solid 1px;
-        }
+  .index_notice {
+    height: 100px;
+    border-radius: 10px;
+    margin-bottom: 2rem;
 
-        .notice-swipe {
-            height: 82px;
-        }
-
-        .notice_img {
-            height: 80px;
-            width: 100px;
-            // background-color: $icon-bg;
-        }
-
-        .notice_content {
-            &>div:first-child {
-                color: $text_color1;
-            }
-        }
+    @include themify() {
+      background: themed("main_background");
+      border: themed("border_color") solid 1px;
     }
 
-    .tabs {
-        font-size: 1.8rem;
-
-        &>div {
-            margin-right: 2rem;
-        }
+    .notice-swipe {
+      height: 82px;
     }
 
-    .home_2 {
-        font-size: 1.5rem;
-        text-align: center;
-        padding-bottom: 1.2rem;
-        margin: 1rem 0 1rem;
-
-        @include themify() {
-            border-bottom: themed("divi_line") solid 1px;
-        }
+    .notice_img {
+      height: 80px;
+      width: 100px;
+      // background-color: $icon-bg;
     }
 
-    .home_3 {
-        padding: 1rem 0;
+    .notice_content {
+      & > div:first-child {
+        color: $text_color1;
+      }
+    }
+  }
 
-        img {
-            height: 2rem;
-            margin-right: 1rem;
-        }
+  .tabs {
+    font-size: 1.8rem;
+
+    & > div {
+      margin-right: 2rem;
+    }
+  }
+
+  .home_2 {
+    font-size: 1.5rem;
+    text-align: center;
+    padding-bottom: 1.2rem;
+    margin: 1rem 0 1rem;
+
+    @include themify() {
+      border-bottom: themed("divi_line") solid 1px;
+    }
+  }
+
+  .home_3 {
+    padding: 1rem 0;
+
+    img {
+      height: 2rem;
+      margin-right: 1rem;
+    }
+  }
+
+  .border_b {
+    @include themify() {
+      border-bottom: themed("divi_line") solid 1px;
     }
 
-    .border_b {
-        @include themify() {
-            border-bottom: themed("divi_line") solid 1px;
-        }
-
-        .van-collapse-item__title--expanded:after {
-            display: none;
-        }
-
-        .van-cell__title {
-            font-weight: 600;
-        }
-
-        .van-collapse-item__content {
-            padding-top: 0;
-        }
-
-        p {
-            font-size: 1.4rem;
-        }
-
-        .border_icon {
-            width: 1.5rem;
-            margin-right: 1rem;
-        }
+    .van-collapse-item__title--expanded:after {
+      display: none;
     }
 
-    // .home_logo {
-    //     width: 100%;
+    .van-cell__title {
+      font-weight: 600;
+    }
 
-    //     img {
-    //         width: 22.5rem;
-    //     }
-    // }
+    .van-collapse-item__content {
+      padding-top: 0;
+    }
 
-    // .logo_text {
-    //     color: $log-c;
-    //     font-size: 2rem;
-    // }
+    p {
+      font-size: 1.4rem;
+    }
 
-    // .logo_text_small {
-    //     color: $inp-c;
-    //     font-size: 1.5rem;
-    // }
+    .border_icon {
+      width: 1.5rem;
+      margin-right: 1rem;
+    }
+  }
 
-    // .login_buts {
-    //     width: 100%;
+  // .home_logo {
+  //     width: 100%;
 
-    //     &>div {
-    //         width: 21rem;
-    //         height: 5rem;
-    //         line-height: 5rem;
-    //         border-radius: 2.5rem;
-    //         font-size: 1.8rem;
-    //         color: $log-c;
-    //     }
+  //     img {
+  //         width: 22.5rem;
+  //     }
+  // }
 
-    //     .login_but_z {
-    //         background: $crd-b;
-    //     }
+  // .logo_text {
+  //     color: $log-c;
+  //     font-size: 2rem;
+  // }
 
-    //     .login_but_d {
-    //         background: $bg_yellow;
-    //     }
-    // }
+  // .logo_text_small {
+  //     color: $inp-c;
+  //     font-size: 1.5rem;
+  // }
 
-    // .home_grid {
-    //     width: 100%;
+  // .login_buts {
+  //     width: 100%;
 
-    //     .grid_item {
-    //         width: 25%;
-    //         color: $tab-c;
-    //         font-size: 1.6rem;
+  //     &>div {
+  //         width: 21rem;
+  //         height: 5rem;
+  //         line-height: 5rem;
+  //         border-radius: 2.5rem;
+  //         font-size: 1.8rem;
+  //         color: $log-c;
+  //     }
 
-    //         .grid_item_img {
-    //             width: 100%;
+  //     .login_but_z {
+  //         background: $crd-b;
+  //     }
 
-    //             img {
-    //                 width: 6.3rem;
-    //             }
-    //         }
-    //     }
-    // }
+  //     .login_but_d {
+  //         background: $bg_yellow;
+  //     }
+  // }
+
+  // .home_grid {
+  //     width: 100%;
+
+  //     .grid_item {
+  //         width: 25%;
+  //         color: $tab-c;
+  //         font-size: 1.6rem;
+
+  //         .grid_item_img {
+  //             width: 100%;
+
+  //             img {
+  //                 width: 6.3rem;
+  //             }
+  //         }
+  //     }
+  // }
 
 
-    // .home_swipe_1,
-    // .home_swipe_2 {
-    //     width: 24rem;
-    //     border-radius: 1rem;
-    // }
+  // .home_swipe_1,
+  // .home_swipe_2 {
+  //     width: 24rem;
+  //     border-radius: 1rem;
+  // }
 
-    // .home_swipe_1 {
-    //     .van-swipe-item {
-    //         height: 23rem;
-    //         background-color: $crd-b;
+  // .home_swipe_1 {
+  //     .van-swipe-item {
+  //         height: 23rem;
+  //         background-color: $crd-b;
 
-    //         .swipe-item-img {
-    //             width: 100%;
-    //         }
-    //     }
+  //         .swipe-item-img {
+  //             width: 100%;
+  //         }
+  //     }
 
-    //     .custom-indicator {
-    //         position: absolute;
-    //         left: 5px;
-    //         bottom: 5px;
-    //         padding: 2px 5px;
-    //         font-size: 1.8rem;
-    //         background: rgba(255, 255, 255, 0.5);
-    //         color: $inp-c;
+  //     .custom-indicator {
+  //         position: absolute;
+  //         left: 5px;
+  //         bottom: 5px;
+  //         padding: 2px 5px;
+  //         font-size: 1.8rem;
+  //         background: rgba(255, 255, 255, 0.5);
+  //         color: $inp-c;
 
-    //         span {
-    //             color: $log-c;
-    //         }
-    //     }
-    // }
+  //         span {
+  //             color: $log-c;
+  //         }
+  //     }
+  // }
 
-    // .home_swipe_2 {
-    //     .van-swipe-item {
-    //         height: 15rem;
-    //         background-color: $crd-b;
+  // .home_swipe_2 {
+  //     .van-swipe-item {
+  //         height: 15rem;
+  //         background-color: $crd-b;
 
-    //         .swipe-item-img {
-    //             width: 100%;
-    //         }
-    //     }
+  //         .swipe-item-img {
+  //             width: 100%;
+  //         }
+  //     }
 
-    //     .custom-indicator {
-    //         position: absolute;
-    //         right: 5px;
-    //         top: 1rem;
-    //         padding: 2px 5px;
+  //     .custom-indicator {
+  //         position: absolute;
+  //         right: 5px;
+  //         top: 1rem;
+  //         padding: 2px 5px;
 
-    //         div {
-    //             background: $inp-c;
-    //             width: 0.6rem;
-    //             height: 0.6rem;
-    //             border-radius: 0.3rem;
-    //             transition: 0.3s all;
-    //         }
+  //         div {
+  //             background: $inp-c;
+  //             width: 0.6rem;
+  //             height: 0.6rem;
+  //             border-radius: 0.3rem;
+  //             transition: 0.3s all;
+  //         }
 
-    //         .active {
-    //             background: $bg_yellow;
-    //             width: 2rem;
-    //         }
-    //     }
-    // }
+  //         .active {
+  //             background: $bg_yellow;
+  //             width: 2rem;
+  //         }
+  //     }
+  // }
 
-    // .purchase {
-    //     color: $log-c;
-    //     background: $crd-b;
-    //     border-radius: 1rem;
-    //     padding: 1.6rem 1.6rem 2rem 1.6rem;
-    //     font-size: 2rem;
-    // }
+  // .purchase {
+  //     color: $log-c;
+  //     background: $crd-b;
+  //     border-radius: 1rem;
+  //     padding: 1.6rem 1.6rem 2rem 1.6rem;
+  //     font-size: 2rem;
+  // }
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/src/views/my/assets.vue b/src/views/my/assets.vue
index 6fbb714..c46965d 100644
--- a/src/views/my/assets.vue
+++ b/src/views/my/assets.vue
@@ -1,174 +1,288 @@
 <template>
-    <div class="assets main_background text_color">
-        <!-- <div class="assets_title">{{ $t('总资产估值') }}</div>
-        <div class="assets_money font-bold mt-5 flex justify-start items-end">
-            {{ currency.currency_symbol }}{{ forexAssets?.money_contract ?
-                (forexAssets?.money_contract * (currency.rate ?? 0)).toFixed(2) : '0.00' }}
+  <div class="assets main_background text_color">
+    <!-- <div class="assets_title">{{ $t('总资产估值') }}</div>
+    <div class="assets_money font-bold mt-5 flex justify-start items-end">
+        {{ currency.currency_symbol }}{{ forexAssets?.money_contract ?
+            (forexAssets?.money_contract * (currency.rate ?? 0)).toFixed(2) : '0.00' }}
 
-            <div class="pricing_jj ml-5">
-                {{ pricing }}
-            </div>
-            <van-dropdown-menu>
-                <van-dropdown-item v-model="pricing" :options="pricingList" @change="changePricing">
-                    <div @click="toPage('/cryptos/exchangeRate')" class="text-center">{{ $t('更多') }}</div>
-                </van-dropdown-item>
-            </van-dropdown-menu>
+        <div class="pricing_jj ml-5">
+            {{ pricing }}
         </div>
-        <div class="assets_revenue mt-5">
-            <span>{{ $t('ProfitDay') }}</span>
-            {{ currency.currency_symbol }}{{ forexAssets?.money_contract_profit_today ?
-                (forexAssets?.money_contract_profit_today * (currency.rate ?? 0)).toFixed(2) :
-                '--' }}
-        </div>
+        <van-dropdown-menu>
+            <van-dropdown-item v-model="pricing" :options="pricingList" @change="changePricing">
+                <div @click="toPage('/cryptos/exchangeRate')" class="text-center">{{ $t('更多') }}</div>
+            </van-dropdown-item>
+        </van-dropdown-menu>
+    </div>
+    <div class="assets_revenue mt-5">
+        <span>{{ $t('ProfitDay') }}</span>
+        {{ currency.currency_symbol }}{{ forexAssets?.money_contract_profit_today ?
+            (forexAssets?.money_contract_profit_today * (currency.rate ?? 0)).toFixed(2) :
+            '--' }}
+    </div>
 
-        <div class="tabbers flex justify-between mt-20 pl-1 pr-1">
-            <div class="item" v-for="item in tabList" :key="item.key" @click="toPage(item.path)">
-                <img style="width: 100px;" :src="item.icon" alt="">
-                <div class="mt-3 text-center">{{ item.name }}</div>
-            </div>
-        </div>
-
-        <van-collapse v-model="activeNames" class="mt-10">
-            <van-collapse-item :title="$t('分布')" name="1">
-                <div class="percentage flex just-between items-center">
-                    <div :style="`width:${assetObj.capital / (assetObj.capital + assetObj.contract) * 100}%`">
-                    </div>
-                    <div class="flex-1">
-                    </div>
-                </div>
-                <div class="assets_item flex justify-start items-center mt-14 font-bold">
-                    <div class="icon" style="background-color: #8A90FE;"></div>
-                    <span class="ml-5 flex-1">{{ $t('资金账户') }}</span>
-                    <span class="mr-5">{{ assetObj.capital }}</span>
-                    <van-icon name="arrow" />
-                </div>
-                <div class="assets_item flex justify-start items-center mt-14 font-bold">
-                    <div class="icon" style="background-color: #f7b600;"></div>
-                    <span class="ml-5 flex-1">{{ $t('交易账户') }}</span>
-                    <span class="mr-5">{{ assetObj.contract }}</span>
-                    <van-icon name="arrow" />
-                </div>
-            </van-collapse-item>
-        </van-collapse>
-
-        <div class="assets_item flex font-bold justify-between items-center mt-14 mb-10">
-            <span>{{ $t('资产') }}</span>
-            <van-icon name="exchange" size="3rem" />
-        </div>
-
-        <div class="assets_item flex justify-start items-center mb-10 font-bold" v-for="item in assetList"
-            :key="item.id">
-            <img :src="`${HOST_URL}/symbol/${item.symbol_data}.png`" />
-
-            <span class="ml-5 flex-1">{{ item.symbol_data.toUpperCase() }}/USDT</span>
-
-            <div class="mr-3">
-                <div class="text-right" v-if="item.symbol == 'btc'">
-                    {{ item.volume ? Number(item.volume).toFixed(8) : '0.0' }}
-                </div>
-                <div class="text-right" v-else-if="item.symbol == 'eth'">
-                    {{ item.volume ? Number(item.volume).toFixed(8) : '0.0' }}
-                </div>
-                <div class="text-right" v-else-if="item.symbol == 'usdt'">
-                    {{ item.volume ? Number(item.volume).toFixed(2) : '0.0' }}
-                </div>
-                <div class="text-right" v-else>
-                    {{ item.volume ? Number(item.volume).toFixed(8) : '0.0' }}
-                </div>
-                <div class="assets_item_light text-right">
-                    ≈{{ currency.currency_symbol }}
-                    {{ item.usdt ? Number(item.usdt).toFixed(2) : '0.0' }}
-                </div>
-            </div>
-        </div> -->
-
-        <van-nav-bar>
-            <template #left>
-                <div class="assets_tabs flex justify-start items-center textColor1">
-                    <div v-for="i in headList" :key="i" :class="i.key == activeHead ? 'textColor' : ''"
-                        @click="activeHead = i.key">
-                        {{ i.name }}
-                    </div>
-                </div>
-            </template>
-            <template #right v-if="activeHead != 0">
-                <van-icon name="todo-list-o" class="textColor" @click="toPage('/cryptos/accountChange')" />
-            </template>
-        </van-nav-bar>
-
-        <div class="assets_content">
-            <template v-if="activeHead == 0">
-                <div class="assets_1">
-                    {{ $t('总资产估值') }}
-                </div>
-                <div class="assets_money mt-5 flex justify-start items-end">
-                    {{ currency.currency_symbol }}{{ forexAssets?.money_contract ?
-                        (forexAssets?.money_contract * (currency.rate ?? 0)).toFixed(2) : '0.00' }}
-
-                    <div class="pricing_jj ml-5">
-                        {{ pricing }}
-                    </div>
-                    <van-dropdown-menu style="position: relative;top: .5rem;">
-                        <van-dropdown-item v-model="pricing" :options="pricingList" @change="changePricing">
-                            <div @click="toPage('/cryptos/exchangeRate')" class="text-center">{{ $t('更多') }}</div>
-                        </van-dropdown-item>
-                    </van-dropdown-menu>
-                </div>
-            </template>
-
-            <template v-else-if="activeHead == 1">
-                <div class="assets_1">
-                    {{ $t('资金账户') }}
-                </div>
-                <div class="assets_money mt-5 flex justify-start items-end">
-                    ${{ assetObj.capital }}
-                    <span>USD</span>
-                </div>
-                <div class="assets_2 flex justify-around items-center">
-                    <div v-for="i in tabList" :key="i.key" @click="toPage(i.path)">
-                        <img :src="i.icon" alt="" v-if="theme == 'light'">
-                        <img :src="i.icon2" alt="" v-else>
-                        <div>{{ i.name }}</div>
-                    </div>
-                </div>
-
-                <div class="assets_3">
-                    <div class="assets_3_head flex justify-between items-center">
-                        <span>{{ $t('名称') }}</span>
-                        <span>{{ $t('volumn') }}</span>
-                    </div>
-                    <div class="assets_3_item flex justify-between items-center" v-for="i in assetList" :key="i.id">
-                        <div class="flex justify-start items-center">
-                            <img :src="`${HOST_URL}/symbol/${i.symbol_data}.png`" />
-                            <span class="ml-5">{{ i.symbol_data.toUpperCase() }}</span>
-                        </div>
-                        <div>
-                            <p>{{ i.volume ? Number(i.volume).toFixed(8) : '0.0' }}</p>
-                            <p>≈{{ currency.currency_symbol }}
-                                {{ i.usdt ? Number(i.usdt).toFixed(2) : '0.0' }}</p>
-                        </div>
-                    </div>
-                </div>
-            </template>
-
-            <template v-else-if="activeHead == 2">
-                <div class="assets_1">
-                    {{ $t('交易账户') }}
-                </div>
-                <div class="flex justify-between items-center">
-                    <div class="assets_money mt-5 flex justify-start items-end">
-                        ${{ assetObj.contract }}
-                        <span>USD</span>
-                    </div>
-                    <div class="assets_4" @click="toPage('/my/transfer')">
-                        <img :src="tabList[2].icon" alt="" v-if="theme == 'light'">
-                        <img :src="tabList[2].icon2" alt="" v-else>
-                        <p>{{ $t('划转') }}</p>
-                    </div>
-                </div>
-            </template>
+    <div class="tabbers flex justify-between mt-20 pl-1 pr-1">
+        <div class="item" v-for="item in tabList" :key="item.key" @click="toPage(item.path)">
+            <img style="width: 100px;" :src="item.icon" alt="">
+            <div class="mt-3 text-center">{{ item.name }}</div>
         </div>
     </div>
+
+    <van-collapse v-model="activeNames" class="mt-10">
+        <van-collapse-item :title="$t('分布')" name="1">
+            <div class="percentage flex just-between items-center">
+                <div :style="`width:${assetObj.capital / (assetObj.capital + assetObj.contract) * 100}%`">
+                </div>
+                <div class="flex-1">
+                </div>
+            </div>
+            <div class="assets_item flex justify-start items-center mt-14 font-bold">
+                <div class="icon" style="background-color: #8A90FE;"></div>
+                <span class="ml-5 flex-1">{{ $t('资金账户') }}</span>
+                <span class="mr-5">{{ assetObj.capital }}</span>
+                <van-icon name="arrow" />
+            </div>
+            <div class="assets_item flex justify-start items-center mt-14 font-bold">
+                <div class="icon" style="background-color: #f7b600;"></div>
+                <span class="ml-5 flex-1">{{ $t('交易账户') }}</span>
+                <span class="mr-5">{{ assetObj.contract }}</span>
+                <van-icon name="arrow" />
+            </div>
+        </van-collapse-item>
+    </van-collapse>
+
+    <div class="assets_item flex font-bold justify-between items-center mt-14 mb-10">
+        <span>{{ $t('资产') }}</span>
+        <van-icon name="exchange" size="3rem" />
+    </div>
+
+    <div class="assets_item flex justify-start items-center mb-10 font-bold" v-for="item in assetList"
+        :key="item.id">
+        <img :src="`${HOST_URL}/symbol/${item.symbol_data}.png`" />
+
+        <span class="ml-5 flex-1">{{ item.symbol_data.toUpperCase() }}/USDT</span>
+
+        <div class="mr-3">
+            <div class="text-right" v-if="item.symbol == 'btc'">
+                {{ item.volume ? Number(item.volume).toFixed(8) : '0.0' }}
+            </div>
+            <div class="text-right" v-else-if="item.symbol == 'eth'">
+                {{ item.volume ? Number(item.volume).toFixed(8) : '0.0' }}
+            </div>
+            <div class="text-right" v-else-if="item.symbol == 'usdt'">
+                {{ item.volume ? Number(item.volume).toFixed(2) : '0.0' }}
+            </div>
+            <div class="text-right" v-else>
+                {{ item.volume ? Number(item.volume).toFixed(8) : '0.0' }}
+            </div>
+            <div class="assets_item_light text-right">
+                ≈{{ currency.currency_symbol }}
+                {{ item.usdt ? Number(item.usdt).toFixed(2) : '0.0' }}
+            </div>
+        </div>
+    </div> -->
+
+    <van-nav-bar>
+      <template #left>
+        <div class="assets_tabs flex justify-start items-center textColor1">
+          <div v-for="i in headList" :key="i" :class="i.key == activeHead ? 'textColor' : ''"
+            @click="activeHead = i.key">
+            {{ i.name }}
+          </div>
+        </div>
+      </template>
+      <template #right>
+        <van-icon name="todo-list-o" class="textColor" @click="toPage('/cryptos/accountChange')" />
+      </template>
+    </van-nav-bar>
+
+    <div class="assets_content">
+      <template v-if="activeHead == 0">
+        <div class="assets_1">
+          {{ $t('总资产估值') }}
+        </div>
+        <div class="assets_money mt-5 flex justify-start items-end">
+          {{ currency.currency_symbol }}{{ forexAssets?.money_contract ?
+            (forexAssets?.money_contract * (currency.rate ?? 0)).toFixed(2) : '0.00' }}
+          <!--  -->
+          <div class="pricing_jj ml-5">
+            {{ pricing }}
+          </div>
+          <van-dropdown-menu style="position: relative;top: .5rem;">
+            <van-dropdown-item v-model="pricing" :options="pricingList" @change="changePricing">
+              <div @click="toPage('/cryptos/exchangeRate')" class="text-center">{{ $t('更多') }}</div>
+            </van-dropdown-item>
+          </van-dropdown-menu>
+        </div>
+      </template>
+    </div>
+
+
+    <van-nav-bar>
+      <template #left>
+        <div class="assets_tabs flex justify-start items-center textColor1">
+          <div v-for="i in headList1" :key="i" :class="i.key == activeHead1 ? 'textColor' : ''"
+            @click="activeHead1 = i.key">
+            {{ i.name }}
+          </div>
+        </div>
+      </template>
+    </van-nav-bar>
+
+    <div class="assets_content1">
+      <template v-if="activeHead1 == 1">
+        <div class="assets_1">
+          {{ $t('资金账户') }}
+        </div>
+        <div class="assets_money mt-5 flex justify-start items-end">
+          ${{ assetObj.capital }}
+          <span>USD</span>
+        </div>
+        <div class="assets_2 flex justify-around items-center">
+          <div v-for="i in tabList" :key="i.key" @click="toPage(i.path)">
+            <img :src="i.icon" alt="" v-if="theme == 'light'">
+            <img :src="i.icon2" alt="" v-else>
+            <div>{{ i.name }}</div>
+          </div>
+        </div>
+
+        <div class="assets_3">
+          <div class="assets_3_head flex justify-between items-center">
+            <span>{{ $t('名称') }}</span>
+            <span>{{ $t('volumn') }}</span>
+          </div>
+          <div class="assets_3_item flex justify-between items-center" v-for="i in assetList" :key="i.id">
+            <div class="flex justify-start items-center">
+              <img :src="`${HOST_URL}/symbol/${i.symbol_data}.png`" />
+              <span class="ml-5">{{ i.symbol_data.toUpperCase() }}</span>
+            </div>
+            <div>
+              <p>{{ i.volume ? Number(i.volume).toFixed(8) : '0.0' }}</p>
+              <p>≈{{ currency.currency_symbol }}
+                {{ i.usdt ? Number(i.usdt).toFixed(2) : '0.0' }}</p>
+            </div>
+          </div>
+        </div>
+      </template>
+
+      <template v-else-if="activeHead1 == 2">
+        <div class="assets_1">
+          {{ $t('交易账户') }}
+        </div>
+        <div class="flex justify-between items-center">
+          <div class="assets_money mt-5 flex justify-start items-end">
+            ${{ assetObj.contract }}
+            <span>USD</span>
+          </div>
+          <div class="assets_4" @click="toPage('/my/transfer')">
+            <img :src="tabList[2].icon" alt="" v-if="theme == 'light'">
+            <img :src="tabList[2].icon2" alt="" v-else>
+            <p>{{ $t('划转') }}</p>
+          </div>
+        </div>
+      </template>
+    </div>
+
+  </div>
+
+  <!-- <van-nav-bar>
+           <template #left>
+             <div class="assets_tabs flex justify-start items-center textColor1">
+               <div v-for="i in headList" :key="i" :class="i.key == activeHead ? 'textColor' : ''"
+                    @click="activeHead = i.key">
+                 {{ i.name }}
+               </div>
+             </div>
+           </template>
+           <template #right v-if="activeHead != 0">
+             <van-icon name="todo-list-o" class="textColor" @click="toPage('/cryptos/accountChange')" />
+           </template>
+         </van-nav-bar> -->
+
+  <!-- <div class="flex-centerY"
+         style="position: sticky;top: 0px;left: 0;height: 55px;width: 100%;background: white;z-index: 999;border-bottom: #f1f1f1 1px solid;padding: 0 20px">
+      <div @click="showType=2" class="tab-item flex-center" :class="{'tab-item-select':showType==2}">
+        {{ $t('总资产估值') }}
+      </div>
+      <div @click="showType=1" class="tab-item flex-center" :class="{'tab-item-select':showType==1}">
+        {{ $t('资金账户') }}
+      </div>
+      <div @click="showType=3" class="tab-item flex-center" :class="{'tab-item-select':showType==3}">
+        {{ $t('交易账户') }}
+      </div>
+    </div>
+    <div class="assets_content">
+      <div v-if="showType==2">
+        <div class="assets_1">
+          {{ $t('总资产估值') }}
+        </div>
+        <div class="assets_money mt-5 flex justify-start items-end">
+          {{ currency.currency_symbol }}{{
+            forexAssets?.money_contract ?
+                (forexAssets?.money_contract * (currency.rate ?? 0)).toFixed(2) : '0.00'
+          }}
+
+          <div class="pricing_jj ml-5">
+            {{ pricing }}
+          </div>
+          <van-dropdown-menu style="position: relative;top: .5rem;">
+            <van-dropdown-item v-model="pricing" :options="pricingList" @change="changePricing">
+              <div @click="toPage('/cryptos/exchangeRate')" class="text-center">{{ $t('更多') }}</div>
+            </van-dropdown-item>
+          </van-dropdown-menu>
+        </div>
+      </div>
+      <div v-if="showType==3">
+        <div class="assets_1">
+          {{ $t('交易账户') }}
+        </div>
+        <div class="flex justify-between items-center">
+          <div class="assets_money mt-5 flex justify-start items-end">
+            ${{ assetObj.contract }}
+            <span>USD</span>
+          </div>
+          <div class="assets_4" @click="toPage('/my/transfer')">
+            <img :src="tabList[2].icon" alt="" v-if="theme == 'light'">
+            <img :src="tabList[2].icon2" alt="" v-else>
+            <p>{{ $t('划转') }}</p>
+          </div>
+        </div>
+      </div>
+      <div v-if="showType==1">
+        <div class="assets_1">
+          {{ $t('资金账户') }}
+        </div>
+        <div class="assets_money mt-5 flex justify-start items-end">
+          ${{ assetObj.capital }}
+          <span>USD</span>
+        </div>
+        <div class="assets_2 flex justify-around items-center">
+          <div v-for="i in tabList" :key="i.key" @click="toPage(i.path)">
+            <img :src="i.icon" alt="" v-if="theme == 'light'">
+            <img :src="i.icon2" alt="" v-else>
+            <div>{{ i.name }}</div>
+          </div>
+        </div>
+      </div>
+      <div class="assets_3">
+        <div class="assets_3_head flex justify-between items-center">
+          <span>{{ $t('名称') }}</span>
+          <span>{{ $t('volumn') }}</span>
+        </div>
+        <div class="assets_3_item flex justify-between items-center" v-for="i in assetList" :key="i.id">
+          <div class="flex justify-start items-center">
+            <img :src="`${HOST_URL}/symbol/${i.symbol_data}.png`"/>
+            <span class="ml-5">{{ i.symbol_data.toUpperCase() }}</span>
+          </div>
+          <div>
+            <p>{{ i.volume ? Number(i.volume).toFixed(8) : '0.0' }}</p>
+            <p>≈{{ currency.currency_symbol }}
+              {{ i.usdt ? Number(i.usdt).toFixed(2) : '0.0' }}</p>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div> -->
 </template>
 
 <script setup>
@@ -180,7 +294,7 @@
 import store from '@/store/store'
 import { useStore } from "vuex"
 import {
-    _getContractBySymbolType
+  _getContractBySymbolType
 } from "@/service/etf.api";
 import { SET_CURRENCY } from "@/store/const.store";
 import { _getassets } from "@/service/user.api.js";
@@ -191,45 +305,52 @@
 const { t } = useI18n()
 const activeNames = ref(['1'])
 const { dispatch } = useStore();
+const showType = ref(2)
 const theme = ref(store.state.vant.theme) // 当前主题模式,白天(light)或夜间(dark)
 
 const tabList = [
-    {
-        key: 1, name: t('充值'), icon: new URL(`@/assets/theme/white/image/assets/recharge.png`, import.meta.url),
-        icon2: new URL(`@/assets/theme/dark/image/assets/recharge.png`, import.meta.url), path: '/cryptos/recharge/rechargeList?isForeign=true'
-    },
-    {
-        key: 2, name: t('提现'), icon: new URL(`@/assets/theme/white/image/assets/withdrawal.png`, import.meta.url),
-        icon2: new URL(`@/assets/theme/dark/image/assets/withdrawal.png`, import.meta.url), path: '/cryptos/Withdraw/withdrawPage'
-    },
-    {
-        key: 3, name: t('划转'), icon: new URL(`@/assets/theme/white/image/assets/transfer.png`, import.meta.url),
-        icon2: new URL(`@/assets/theme/dark/image/assets/transfer.png`, import.meta.url), path: '/my/transfer'
-    },
-    // { key: 4, name: t('账单'), icon: new URL('@/assets/imgs/assets/zd.png', import.meta.url), path: '/cryptos/accountChange' },
+  {
+    key: 1,
+    name: t('充值'),
+    icon: new URL(`@/assets/theme/white/image/assets/recharge.png`, import.meta.url),
+    icon2: new URL(`@/assets/theme/dark/image/assets/recharge.png`, import.meta.url),
+    path: '/cryptos/recharge/rechargeList?isForeign=true'
+  },
+  {
+    key: 2,
+    name: t('提现'),
+    icon: new URL(`@/assets/theme/white/image/assets/withdrawal.png`, import.meta.url),
+    icon2: new URL(`@/assets/theme/dark/image/assets/withdrawal.png`, import.meta.url),
+    path: '/cryptos/Withdraw/withdrawPage'
+  },
+  {
+    key: 3, name: t('划转'), icon: new URL(`@/assets/theme/white/image/assets/transfer.png`, import.meta.url),
+    icon2: new URL(`@/assets/theme/dark/image/assets/transfer.png`, import.meta.url), path: '/my/transfer'
+  },
+  // { key: 4, name: t('账单'), icon: new URL('@/assets/imgs/assets/zd.png', import.meta.url), path: '/cryptos/accountChange' },
 ]
 
 // 计价切换
 const pricing = ref('')
 const pricingList = [
-    { text: 'USD', value: 'USD', key: 'USD_in' },
-    { text: 'EUR', value: 'EUR', key: 'EUR_in' },
-    { text: 'JPY', value: 'JPY', key: 'JPY_in' },
+  { text: 'USD', value: 'USD', key: 'USD_in' },
+  { text: 'EUR', value: 'EUR', key: 'EUR_in' },
+  { text: 'JPY', value: 'JPY', key: 'JPY_in' },
 ]
 const changePricing = (e) => {
-    let item = pricingList.find((item) => item.value == e)
+  let item = pricingList.find((item) => item.value == e)
 
-    _exchangerateuserconfig({ rateId: item.key }).then((res) => {
-        dispatch(`home/${SET_CURRENCY}`)
-        getCurrency()
-        getContractBySymbolType()
-    })
+  _exchangerateuserconfig({ rateId: item.key }).then((res) => {
+    dispatch(`home/${SET_CURRENCY}`)
+    getCurrency()
+    getContractBySymbolType()
+  })
 }
 
 // 跳转页面
 const toPage = (path) => {
-    if (!path) return
-    router.push(path)
+  if (!path) return
+  router.push(path)
 }
 
 // 资产信息获取
@@ -238,36 +359,36 @@
 const symbolType = ref('cryptos') //默认etf
 
 const getCurrency = async () => {
-    _getExchangeRate({
-        token: store.state.user.userInfo.token
-    }).then(res => {
-        currency.value = res
-        pricing.value = res.currency
-    }).catch(err => Promise.reject(err))
+  _getExchangeRate({
+    token: store.state.user.userInfo.token
+  }).then(res => {
+    currency.value = res
+    pricing.value = res.currency
+  }).catch(err => Promise.reject(err))
 }
 const getContractBySymbolType = () => {
-    _getContractBySymbolType(symbolType.value)
-        .then(res => {
-            forexAssets.value = res
-        })
+  _getContractBySymbolType(symbolType.value)
+    .then(res => {
+      forexAssets.value = res
+    })
 }
 const assetObj = ref({})
 const getassets = () => { // 获取资产
-    _getassets().then(res => {
-        assetObj.value = res
-    })
+  _getassets().then(res => {
+    assetObj.value = res
+  })
 }
 
 // 获取资产列表
 const assetList = ref([])
 const getList = () => {
-    _getAllWallet({
-        symbolType: 'cryptos'
-    }).then((res) => {
-        assetList.value = res.extends
-        console.log("资产列表", assetList.value);
+  _getAllWallet({
+    symbolType: 'cryptos'
+  }).then((res) => {
+    assetList.value = res.extends
+    console.log("资产列表", assetList.value);
 
-    });
+  });
 }
 
 getList()
@@ -278,208 +399,234 @@
 // 头部切换项
 const activeHead = ref(0)
 const headList = [
-    { name: t('总资产估值'), key: 0 },
-    { name: t('资金账户'), key: 1 },
-    { name: t('交易账户'), key: 2 },
+  { name: t('总资产估值'), key: 0 },
+  // { name: t('资金账户'), key: 1 },
+  // { name: t('交易账户'), key: 2 },
 ]
+// 中部切换项
+const activeHead1 = ref(1)
+const headList1 = [
+  { name: t('资金账户'), key: 1 },
+  { name: t('交易账户'), key: 2 },
+]
+
 </script>
 
 <style lang="scss" scoped>
+.tab-item {
+  height: 100%;
+  font-size: 16px;
+  color: #999;
+
+  margin-right: 10px;
+}
+
+.tab-item-select {
+  color: #111;
+}
+
 .assets {
-    min-height: 100vh;
+  min-height: 100vh;
+  font-size: 1.4rem;
+
+  ::v-deep .van-nav-bar {
+    border-bottom: $divi_line solid 1px;
+  }
+
+  justify-content: space-around;
+
+  .assets_tabs {
+    font-size: 2rem;
+
+    &>div {
+      margin-right: 2rem;
+    }
+  }
+
+  .assets_content,
+  .assets_content1 {
+    padding: 16px 16px;
+  }
+
+  .assets_content {
+    @include themify() {
+      border-bottom: themed("divi_line") solid 1px;
+    }
+  }
+
+  .assets_1 {
+    font-size: 1.5rem;
+  }
+
+  .assets_2 {
+    margin-top: 3rem;
     font-size: 1.4rem;
 
-    ::v-deep .van-nav-bar {
-        border-bottom: $divi_line solid 1px;
+    &>div {
+      text-align: center;
+
+      img {
+        height: 2.4rem;
+        margin: 0 auto .4rem;
+      }
+    }
+  }
+
+  .assets_3 {
+    margin-top: 3rem;
+
+    .assets_3_item {
+      margin-bottom: 3.2rem;
+
+      p {
+        text-align: end;
+      }
+
+      img {
+        width: 3.6rem;
+      }
     }
 
-    justify-content: space-around;
+    .assets_3_head {
+      border-bottom: $divi_line solid 1px;
+      margin-bottom: 1.7rem;
+    }
+  }
 
-    .assets_tabs {
-        font-size: 2rem;
+  .assets_4 {
+    padding-right: 2rem;
 
-        &>div {
-            margin-right: 2rem;
-        }
+    img {
+      height: 2.4rem;
+    }
+  }
+
+  :deep(.van-cell) {
+    padding-left: 0;
+    padding-right: 0;
+  }
+
+  :deep(.van-cell:after) {
+    display: none;
+  }
+
+  :deep(.van-collapse-item__content) {
+    padding-left: 0;
+    padding-right: 0;
+  }
+
+  :deep(.van-cell__title) {
+    font-size: 2.1rem;
+    font-weight: 600;
+  }
+
+  .assets_title {
+    font-size: 2.1rem;
+  }
+
+  .assets_money {
+    font-size: 3rem;
+
+    .pricing_jj {
+      font-size: 1.6rem;
+      margin-right: -8px;
+      position: relative;
+      top: .5rem;
     }
 
-    .assets_content {
-        padding: 16px 16px 10rem;
+    &>span {
+      font-size: 1.6rem;
+      margin-left: .6rem;
+      position: relative;
+      top: 0.5rem;
     }
 
-    .assets_1 {
-        font-size: 1.5rem;
+    :deep(.van-dropdown-menu__bar) {
+      height: auto;
+      box-shadow: none;
     }
 
-    .assets_2 {
-        margin-top: 3rem;
-        font-size: 1.4rem;
-
-        &>div {
-            text-align: center;
-
-            img {
-                height: 2.4rem;
-                margin: 0 auto .4rem;
-            }
-        }
+    :deep(.van-dropdown-menu__title--down:after) {
+      margin-top: -14px !important;
     }
 
-    .assets_3 {
-        margin-top: 3rem;
-
-        .assets_3_item {
-            margin-bottom: 3.2rem;
-
-            p {
-                text-align: end;
-            }
-
-            img {
-                width: 3.6rem;
-            }
-        }
-
-        .assets_3_head {
-            border-bottom: $divi_line solid 1px;
-            margin-bottom: 1.7rem;
-        }
+    :deep(.van-dropdown-menu__title:after) {
+      margin-top: -16px;
     }
 
-    .assets_4 {
-        padding-right: 2rem;
-
-        img {
-            height: 2.4rem;
-        }
+    :deep(.van-ellipsis) {
+      display: none;
     }
 
-    :deep(.van-cell) {
-        padding-left: 0;
-        padding-right: 0;
+    :deep(.van-popup--top) {
+      padding: 10px 20px;
+      font-size: 2rem;
+    }
+  }
+
+  .assets_revenue {
+    font-size: 2rem;
+    color: #646464;
+    font-weight: 600;
+
+    span {
+      color: #6e6e6e;
+      text-decoration: underline dotted;
+      font-weight: 400;
+    }
+  }
+
+  .tabbers {
+    .item {
+      $item_width: 8.3rem;
+      width: $item_width;
+      font-size: 1.8rem;
+      color: $text_color4;
+
+      img {
+        height: $item_width;
+        border-radius: 50%;
+      }
+    }
+  }
+
+  .percentage {
+    div {
+      height: 1rem;
+      border-radius: 0.5rem;
     }
 
-    :deep(.van-cell:after) {
-        display: none;
+    &>div:last-child {
+      background: $bg_yellow;
     }
 
-    :deep(.van-collapse-item__content) {
-        padding-left: 0;
-        padding-right: 0;
+    &>div:first-child {
+      background: #8A90FE;
+      margin-right: 0.2rem;
+    }
+  }
+
+  .assets_item {
+    color: $text_color4;
+    font-size: 2.1rem;
+
+    .icon {
+      width: 1.8rem;
+      height: 1.8rem;
+      border-radius: 50%;
+      background: $icon-bg;
     }
 
-    :deep(.van-cell__title) {
-        font-size: 2.1rem;
-        font-weight: 600;
+    img {
+      width: 2.8rem;
+      height: 2.8rem;
+      border-radius: 50%;
     }
 
-    .assets_title {
-        font-size: 2.1rem;
+    .assets_item_light {
+      color: #9b9b9b;
+      font-weight: 300;
     }
-
-    .assets_money {
-        font-size: 3rem;
-
-        .pricing_jj {
-            font-size: 1.6rem;
-            margin-right: -8px;
-            position: relative;
-            top: .5rem;
-        }
-
-        &>span {
-            font-size: 1.6rem;
-            margin-left: .6rem;
-            position: relative;
-            top: 0.5rem;
-        }
-
-        :deep(.van-dropdown-menu__bar) {
-            height: auto;
-            box-shadow: none;
-        }
-
-        :deep(.van-dropdown-menu__title--down:after) {
-            margin-top: -14px !important;
-        }
-
-        :deep(.van-dropdown-menu__title:after) {
-            margin-top: -16px;
-        }
-
-        :deep(.van-ellipsis) {
-            display: none;
-        }
-
-        :deep(.van-popup--top) {
-            padding: 10px 20px;
-            font-size: 2rem;
-        }
-    }
-
-    .assets_revenue {
-        font-size: 2rem;
-        color: #646464;
-        font-weight: 600;
-
-        span {
-            color: #6e6e6e;
-            text-decoration: underline dotted;
-            font-weight: 400;
-        }
-    }
-
-    .tabbers {
-        .item {
-            $item_width: 8.3rem;
-            width: $item_width;
-            font-size: 1.8rem;
-            color: $text_color4;
-
-            img {
-                height: $item_width;
-                border-radius: 50%;
-            }
-        }
-    }
-
-    .percentage {
-        div {
-            height: 1rem;
-            border-radius: 0.5rem;
-        }
-
-        &>div:last-child {
-            background: $bg_yellow;
-        }
-
-        &>div:first-child {
-            background: #8A90FE;
-            margin-right: 0.2rem;
-        }
-    }
-
-    .assets_item {
-        color: $text_color4;
-        font-size: 2.1rem;
-
-        .icon {
-            width: 1.8rem;
-            height: 1.8rem;
-            border-radius: 50%;
-            background: $icon-bg;
-        }
-
-        img {
-            width: 2.8rem;
-            height: 2.8rem;
-            border-radius: 50%;
-        }
-
-        .assets_item_light {
-            color: #9b9b9b;
-            font-weight: 300;
-        }
-    }
+  }
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/src/views/my/index.vue b/src/views/my/index.vue
index bec45ad..57fcf5b 100644
--- a/src/views/my/index.vue
+++ b/src/views/my/index.vue
@@ -7,107 +7,183 @@
     </assets-head>
     <div class="px-8 mt-4">
       <h1 class="text-2xl font-bold title" v-if="!(userStore.userInfo && userStore.userInfo.token)">{{
-        $t('welcome')
+          $t('welcome')
         }}&nbsp;{{ $title }}!
       </h1>
-      <p class="sub-text" v-if="!(userStore.userInfo && userStore.userInfo.token)">{{ $t('全球最大的区块链资产平台') }}</p>
+      <p class="sub-text" v-if="!(userStore.userInfo && userStore.userInfo.token)">{{
+          $t('全球最大的区块链资产平台')
+        }}</p>
       <p class="w-full flex mt-4 gap-x-4" v-if="!(userStore.userInfo && userStore.userInfo.token)">
         <van-button class="flex-1" round @click="onRoute('/register')">{{ $t('register') }}</van-button>
-        <van-button class="flex-1" type="primary" round color="#f7b600" @click="onRoute('/login')">{{ $t('login')
-          }}</van-button>
+        <van-button class="flex-1" type="primary" round color="#f7b600" @click="onRoute('/login')">{{
+            $t('login')
+          }}
+        </van-button>
       </p>
 
       <div class="mt-4 flex items-start" v-else>
-        <img class="w-24 h-24" src="@/assets/image/avatar.png" alt="avatar" />
-        <div class="ml-5 pt-1 flex flex-col justify-center">
-          <div class="font-bold text-lg name" style="width: 200px;overflow-wrap: break-word;">{{ userStore.userInfo &&
-            userStore.userInfo.username }}</div>
-          <div class="text-sm text-gray-400 mt-5 flex items-center id-text">
-            ID:{{ userStore.userInfo && userStore.userInfo.usercode }}<img class="w-8 h-8 ml-4"
-              src="@/assets/image/idcopy.png" alt="id" @click="copy" /></div>
-          <div class="flex items-center justify-start mt-5">
-            <div class="label pl-2 pr-2"
-              :class="{ 'red': status == 0 || status == 3, 'yellow': status == 1, 'green': status == 2 }">
-              {{ status == 0 ? $t('notCertified') :
-                status == 1 ? $t('reviewing') : status == 2 ? $t('verified') : status == 3 ?
-                  $t('noPassView') : '' }}
-            </div>
+        <img class="w-24 h-24" src="@/assets/image/avatar.png" alt="avatar"/>
+        <div class="ml-5 pt-1">
+          <div class="font-bold text-lg name flex-centerY" style="width: 200px;overflow-wrap: break-word;">{{
+              userStore.userInfo &&
+              userStore.userInfo.username
+            }}
             <div class="label pl-2 pr-2 ml-3" :class="{ 'green': kycHighStatus == 2 }">
               {{ kycHighStatus == 2 ? $t('高级用户') : $t('普通用户') }}
             </div>
-            <div class="pl-2 pr-2 ml-3" style="font-size: 12px;">{{ $t('信用分') }} : {{ userdata.creditScore }}</div>
           </div>
+          <div class="text-sm text-gray mt-5 flex " style="font-size: 13px">
+            UID:{{ userStore.userInfo && userStore.userInfo.usercode }}<img class="w-8 h-8 ml-4"
+                                                                            src="@/assets/image/idcopy.png" alt="id"
+                                                                            @click="copy"/></div>
+          <!--          <div class="flex items-center justify-start mt-5">-->
+          <!--            <div class="label pl-2 pr-2"-->
+          <!--              :class="{ 'red': status == 0 || status == 3, 'yellow': status == 1, 'green': status == 2 }">-->
+          <!--              {{ status == 0 ? $t('notCertified') :-->
+          <!--                status == 1 ? $t('reviewing') : status == 2 ? $t('verified') : status == 3 ?-->
+          <!--                  $t('noPassView') : '' }}-->
+          <!--            </div>-->
+          <!--            <div class="label pl-2 pr-2 ml-3" :class="{ 'green': kycHighStatus == 2 }">-->
+          <!--              {{ kycHighStatus == 2 ? $t('高级用户') : $t('普通用户') }}-->
+          <!--            </div>-->
+          <!--            <div class="pl-2 pr-2 ml-3" style="font-size: 12px;">{{ $t('信用分') }} : {{ userdata.creditScore }}</div>-->
+          <!--          </div>-->
         </div>
       </div>
     </div>
 
     <template v-if="(userStore.userInfo && userStore.userInfo.token)">
-      <van-divider :style="{ borderColor: '#ddd' }" hairline />
-      <div class="mt-10 px-8" v-if="(userStore.userInfo && userStore.userInfo.token)">
-        <div class="title_s font-bold">{{ t('快捷入口') }}</div>
-        <div class="flex flex-start items-start">
-          <div class="label_item flex flex-col items-center justify-center mt-8" @click="onRoute('/safety')">
-            <img src="@/assets/imgs/my/安全.png" alt="">
-            <div>{{ t('安全') }}</div>
+      <!--      <van-divider :style="{ borderColor: '#ddd' }" hairline />-->
+      <!--      <div class="mt-10 px-8" v-if="(userStore.userInfo && userStore.userInfo.token)">-->
+      <!--        <div class="title_s font-bold">{{ t('快捷入口') }}</div>-->
+      <!--        <div class="flex flex-start items-start">-->
+      <!--          <div class="label_item flex flex-col items-center justify-center mt-8" @click="onRoute('/safety')">-->
+      <!--            <img src="@/assets/imgs/my/安全.png" alt="">-->
+      <!--            <div>{{ t('安全') }}</div>-->
+      <!--          </div>-->
+      <!--          <div class="label_item flex flex-col items-center justify-center mt-8"-->
+      <!--            @click="onRoute('/cryptos/accountChange')">-->
+      <!--            <img src="@/assets/imgs/my/记录.png" alt="">-->
+      <!--            <div>{{ t('账变记录') }}</div>-->
+      <!--          </div>-->
+      <!--        </div>-->
+      <!--      </div>-->
+      <div class="flex-centerY" style="margin: 20px 20px;margin-top: 40px">
+        <div @click="onRoute('/advancedCtf')" class="flexY-center" style="flex: 1">
+          <img src="@/assets/img/img_7.png" style="width: 20px;height: 20px">
+          <div style="font-size: 12px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;" class="text-gray mt-2" >
+            {{ $t('高级认证') }}
           </div>
-          <div class="label_item flex flex-col items-center justify-center mt-8"
-            @click="onRoute('/cryptos/accountChange')">
-            <img src="@/assets/imgs/my/记录.png" alt="">
-            <div>{{ t('账变记录') }}</div>
+        </div>
+        <div @click="onRoute('/certificationCenter')" class="flexY-center" style="flex: 1">
+          <img src="@/assets/img/img_8.png" style="width: 20px;height: 20px">
+          <div style="font-size: 12px" class="text-gray mt-2">
+            {{ $t('authVerify') }}
+          </div>
+        </div>
+        <div @click="onRoute('/safety')" class="flexY-center" style="flex: 1">
+          <img src="@/assets/img/img_9.png" style="width: 20px;height: 20px">
+          <div style="font-size: 12px" class="text-gray mt-2">
+            {{ $t('安全') }}
+          </div>
+        </div>
+        <div @click="onRoute('/cryptos/accountChange')" class="flexY-center" style="flex: 1">
+          <img src="@/assets/img/img_2.png" style="width: 20px;height: 20px">
+          <div style="font-size: 12px" class="text-gray mt-2">
+            {{ $t('账变记录') }}
           </div>
         </div>
       </div>
     </template>
-
+    <div style="width: 100%;height: 1px;background: #eee"></div>
     <template v-for="(item, index) in cellList" :key="index">
-      <van-divider :style="{ borderColor: '#ddd' }" hairline />
+      <!--      <van-divider :style="{ borderColor: '#ddd' }" hairline />-->
       <div class="mt-10 px-8">
-        <div class="title_s font-bold">{{ item.title }}</div>
-        <div class="flex flex-start items-start flex-wrap">
-          <div class="label_item flex flex-col items-center justify-center mt-8" v-for="(_item, _index) in item.list"
-            :key="_index" @click="onRoute(_item.path)">
-            <img :src="_item.icon" alt="">
-            <div>{{ _item.title }}</div>
-          </div>
+        <!--        <div class="title_s font-bold">{{ item.title }}</div>-->
+        <div class="flex-centerY flex-position-between" style="padding: 10px 0" v-for="(_item, _index) in item.list"
+             :key="_index" @click="onRoute(_item.path)">
+          <!--            <img :src="_item.icon" alt="">-->
+          <div style="font-size: 14px;color:#999">{{ _item.title }}</div>
+          <van-icon name="arrow" style="font-size: 14px;color:#999"/>
         </div>
       </div>
     </template>
 
-    <template v-if="userStore.userInfo && userStore.userInfo.token">
-      <van-divider :style="{ borderColor: '#ddd' }" hairline />
-      <van-cell-group :border="false">
-        <van-cell is-link="is-link" center="center" :title="t('关于我们')" @click="onRoute('/aboutUs')">
-          <template #icon>
-            <img class="cell-img" src="../../assets/image/assets-center/aboutUs.png" />
-          </template>
-        </van-cell>
-      </van-cell-group>
-    </template>
+
+    <!--    <template v-if="userStore.userInfo && userStore.userInfo.token">-->
+    <!--      <van-divider :style="{ borderColor: '#ddd' }" hairline />-->
+    <!--      <van-cell-group :border="false">-->
+    <!--        <van-cell is-link="is-link" center="center" :title="t('关于我们')" @click="onRoute('/aboutUs')">-->
+    <!--          <template #icon>-->
+    <!--            <img class="cell-img" src="../../assets/image/assets-center/aboutUs.png" />-->
+    <!--          </template>-->
+    <!--        </van-cell>-->
+    <!--      </van-cell-group>-->
+    <!--    </template>-->
 
     <template v-if="userStore.userInfo && userStore.userInfo.token">
-      <van-divider :style="{ borderColor: '#ddd' }" hairline />
-      <div class="px-4 mt-4">
-        <p class="w-full flex mt-4 gap-x-4">
-          <van-button type="primary" class="flex-1" round color="#f7b600" @click="loginOut">{{ $t('loginOut')
-          }}</van-button>
-        </p>
+      <div class="flex-centerY flex-position-between" style="padding: 10px 15px"
+           @click="onRoute('/certificationCenter')">
+        <!--            <img :src="_item.icon" alt="">-->
+        <div style="font-size: 14px;color:#999">{{ $t('authVerify') }}</div>
+        <div class="flex-centerY">
+          <div style="font-size: 14px"
+               :class="{ 'red': status == 0 || status == 3, 'yellow': status == 1, 'green': status == 2 }">
+            {{
+              status == 0 ? $t('notCertified') :
+                  status == 1 ? $t('reviewing') : status == 2 ? $t('verified') : status == 3 ?
+                      $t('noPassView') : ''
+            }}
+          </div>
+          <van-icon name="arrow" style="font-size: 14px;color:#999"/>
+        </div>
+
       </div>
+<!--      {{ $t('信用分') }} : {{ userdata.creditScore }}-->
+      <div class="flex-centerY flex-position-between" style="padding: 10px 15px" @click="loginOut">
+        <!--            <img :src="_item.icon" alt="">-->
+        <div style="font-size: 14px;color:#999">{{ $t('信用分') }}</div>
+        <div class="flex-centerY" style="font-size: 14px;color:#f14b3f">
+          {{ userdata.creditScore }}
+          <van-icon name="arrow" style="font-size: 14px;color:#999"/>
+        </div>
+      </div>
+      <div class="flex-centerY flex-position-between" style="padding: 10px 15px" @click="loginOut">
+        <!--            <img :src="_item.icon" alt="">-->
+        <div style="font-size: 14px;color:#f14b3f">{{ $t('loginOut') }}</div>
+        <van-icon name="arrow" style="font-size: 14px;color:#999"/>
+      </div>
+      <!--      <van-divider :style="{ borderColor: '#ddd' }" hairline />-->
+      <!--      <div class="px-4 mt-4">-->
+      <!--        <p class="w-full flex mt-4 gap-x-4">-->
+      <!--          <van-button type="primary" class="flex-1" round color="#f7b600" @click="loginOut">{{ $t('loginOut')-->
+      <!--          }}</van-button>-->
+      <!--        </p>-->
+      <!--      </div>-->
     </template>
   </section>
 </template>
 
 <script setup>
-import { reactive, onMounted, ref, computed } from 'vue';
-import { useRouter } from 'vue-router';
-import { _getIdentify, _getKycHighLevel, _logOut, _info, _customer } from "@/service/user.api.js";
-import { useUserStore } from '@/store/user';
-import { useI18n } from "vue-i18n";
+import {reactive, onMounted, ref, computed} from 'vue';
+import {useRouter} from 'vue-router';
+import {
+  _getIdentify,
+  _getKycHighLevel,
+  _logOut,
+  _info,
+  _customer,
+  _getContractBySymbolType
+} from "@/service/user.api.js";
+import {useUserStore} from '@/store/user';
+import {useI18n} from "vue-i18n";
 import useClipboard from "vue-clipboard3";
-import { showToast } from "vant";
+import {showToast} from "vant";
 import addBankIcon from '@/assets/image/userCenter/addBank.png'
 import store from '@/store/store'
-const { t } = useI18n()
-const { toClipboard } = useClipboard();
+
+const {t} = useI18n()
+const {toClipboard} = useClipboard();
 
 const router = useRouter()
 const userStore = useUserStore()
@@ -117,18 +193,38 @@
 const userdata = ref({})
 
 const tabs = [
-  { icon: new URL('@/assets/imgs/my/my_1a.png', import.meta.url), icon2: new URL('@/assets/imgs/my/my_1b.png', import.meta.url), title: t('authVerify'), path: '/certificationCenter' },
-  { icon: new URL('@/assets/imgs/my/my_1a.png', import.meta.url), icon2: new URL('@/assets/imgs/my/my_1b.png', import.meta.url), title: t('高级认证'), path: '/advancedCtf' },
-  { icon: new URL('@/assets/imgs/my/my_2a.png', import.meta.url), icon2: new URL('@/assets/imgs/my/my_2b.png', import.meta.url), title: t('安全'), path: '/safety' },
-  { icon: new URL('@/assets/imgs/my/my_3a.png', import.meta.url), icon2: new URL('@/assets/imgs/my/my_3b.png', import.meta.url), title: t('账变记录'), path: '/cryptos/accountChange' },
+  {
+    icon: new URL('@/assets/imgs/my/my_1a.png', import.meta.url),
+    icon2: new URL('@/assets/imgs/my/my_1b.png', import.meta.url),
+    title: t('authVerify'),
+    path: '/certificationCenter'
+  },
+  {
+    icon: new URL('@/assets/imgs/my/my_1a.png', import.meta.url),
+    icon2: new URL('@/assets/imgs/my/my_1b.png', import.meta.url),
+    title: t('高级认证'),
+    path: '/advancedCtf'
+  },
+  {
+    icon: new URL('@/assets/imgs/my/my_2a.png', import.meta.url),
+    icon2: new URL('@/assets/imgs/my/my_2b.png', import.meta.url),
+    title: t('安全'),
+    path: '/safety'
+  },
+  {
+    icon: new URL('@/assets/imgs/my/my_3a.png', import.meta.url),
+    icon2: new URL('@/assets/imgs/my/my_3b.png', import.meta.url),
+    title: t('账变记录'),
+    path: '/cryptos/accountChange'
+  },
 ]
 const tabs2 = [
-  { title: t('language'), path: '/language' },
-  { title: t('onLineService'), path: '/customerService' },
-  { title: t('计价方式'), path: '/cryptos/exchangeRate' },
-  { title: t('AddPaymentMethod'), path: '/payMentMethod/list' },
-  { title: t('帮助中心'), path: '/helpCenter' },
-  { title: t('关于我们'), path: '/aboutUs' },
+  {title: t('language'), path: '/language'},
+  {title: t('onLineService'), path: '/customerService'},
+  {title: t('计价方式'), path: '/cryptos/exchangeRate'},
+  {title: t('AddPaymentMethod'), path: '/payMentMethod/list'},
+  {title: t('帮助中心'), path: '/helpCenter'},
+  {title: t('关于我们'), path: '/aboutUs'},
 ]
 
 // 跳转
@@ -145,9 +241,11 @@
 }
 onMounted(() => {
   if (userStore.userInfo && userStore.userInfo.token) {
+
     getIdentify()
     getKycHighLevel()
     getinfo()
+
   } else {
     router.push('/login')
   }
@@ -164,14 +262,35 @@
       // },
       {
         title: t('universal'), list: [
-          { icon: new URL('../../assets/image/assets-center/language.png', import.meta.url), title: t('language'), path: '/language' },
-          { icon: new URL('../../assets/image/assets-center/onLineService.png', import.meta.url), title: t('onLineService'), path: '/customerService' },
-          { icon: new URL('../../assets/image/assets-center/authVerify.png', import.meta.url), title: t('authVerify'), path: '/certificationCenter', show: true },
-          { icon: new URL('../../assets/image/assets-center/AdvancedCertification.png', import.meta.url), title: t('高级认证'), path: '/advancedCtf', show: true },
+          {
+            icon: new URL('../../assets/image/assets-center/language.png', import.meta.url),
+            title: t('language'),
+            path: '/language'
+          },
+          {
+            icon: new URL('../../assets/image/assets-center/onLineService.png', import.meta.url),
+            title: t('onLineService'),
+            path: '/customerService'
+          },
+          // { icon: new URL('../../assets/image/assets-center/authVerify.png', import.meta.url), title: t('authVerify'), path: '/certificationCenter', show: true },
+          // { icon: new URL('../../assets/image/assets-center/AdvancedCertification.png', import.meta.url), title: t('高级认证'), path: '/advancedCtf', show: true },
           // { icon: 'todo-list-o', title: t('账变记录'), path: '/cryptos/accountChange' },
-          { icon: new URL('../../assets/image/assets-center/valuation.png', import.meta.url), title: t('计价方式'), path: '/cryptos/exchangeRate' },
-          { icon: new URL('../../assets/image/assets-center/AddPaymentMethod.png', import.meta.url), title: t('AddPaymentMethod'), path: '/payMentMethod/list' },
-          { icon: new URL('../../assets/image/assets-center/help.png', import.meta.url), title: t('帮助中心'), path: '/helpCenter' },
+          {
+            icon: new URL('../../assets/image/assets-center/valuation.png', import.meta.url),
+            title: t('计价方式'),
+            path: '/cryptos/exchangeRate'
+          },
+          {
+            icon: new URL('../../assets/image/assets-center/AddPaymentMethod.png', import.meta.url),
+            title: t('AddPaymentMethod'),
+            path: '/payMentMethod/list'
+          },
+          {
+            icon: new URL('../../assets/image/assets-center/help.png', import.meta.url),
+            title: t('帮助中心'),
+            path: '/helpCenter'
+          },
+          {title: t('关于我们'), path: '/aboutUs'},
         ]
       }
     ]
@@ -179,9 +298,17 @@
     return [
       {
         title: t('universal'), list: [
-          { icon: new URL('../../assets/image/assets-center/help.png', import.meta.url), title: t('language'), path: '/language' },
+          {
+            icon: new URL('../../assets/image/assets-center/help.png', import.meta.url),
+            title: t('language'),
+            path: '/language'
+          },
           // { icon: 'gold-coin-o', title: t('计价方式'), path: '/cryptos/exchangeRate' },
-          { icon: new URL('../../assets/image/assets-center/aboutUs.png', import.meta.url), title: t('onLineService'), path: '/customerService' },
+          {
+            icon: new URL('../../assets/image/assets-center/aboutUs.png', import.meta.url),
+            title: t('onLineService'),
+            path: '/customerService'
+          },
 
         ]
       },
@@ -218,6 +345,7 @@
     status.value = data.status
   })
 }
+
 // 当前用户等级
 const getKycHighLevel = () => {
   _getKycHighLevel().then((data) => {
@@ -345,7 +473,7 @@
 
 .name {
   font-size: 16px;
-  line-height: 20px;
+  font-weight: 500;
 }
 
 .yellow {
@@ -380,4 +508,4 @@
   height: 20px;
   margin-right: 10px;
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/src/views/my/transfer.vue b/src/views/my/transfer.vue
index 8f8ee07..890f485 100644
--- a/src/views/my/transfer.vue
+++ b/src/views/my/transfer.vue
@@ -1,165 +1,168 @@
 <template>
-    <div class="transfer">
-        <fx-header :title="$t('划转')">
-            <template v-slot:title>
-                <div>{{ $t('划转') }}</div>
-            </template>
-        </fx-header>
-
-        <div style="position: relative;">
-            <div class="card">
-                <!-- <van-field v-model="startValue" :label="$t('从')" type="digit" @blur="getassets" /> -->
-                <div>{{ $t('从') }}</div>
-                <div class="mt-3">{{ swapValue ? $t('资金账户') : $t('交易账户') }}</div>
-            </div>
-
-            <div class="card mt-5">
-                <!-- <van-field v-model="endValue" :label="$t('至')" type="digit" @blur="getassets" /> -->
-                <div>{{ $t('至') }}</div>
-                <div class="mt-3">{{ swapValue ? $t('交易账户') : $t('资金账户') }}</div>
-            </div>
-
-            <img src="@/assets/imgs/my/交换.png" class="swap" @click="onSwap">
+  <div class="transfer flexY" style="height: 100%">
+    <fx-header :title="$t('划转')">
+      <template v-slot:title>
+        <div>{{ $t('划转') }}</div>
+      </template>
+    </fx-header>
+    <div class="card flex-centerY">
+      <div style="position: relative;flex:1">
+        <div class="card flex-centerY" style="padding:10px">
+          <!-- <van-field v-model="startValue" :label="$t('从')" type="digit" @blur="getassets" /> -->
+          <div style="color: #999">{{ $t('从') }}</div>
+          <div style="margin-left: 20px">{{ swapValue ? $t('资金账户') : $t('交易账户') }}</div>
         </div>
 
-        <div class="mt-10 transfer_label">{{ $t('资产') }}</div>
-        <div class="card mt-3">
-            <span>USDT</span>
+        <div class="card flex-centerY" style="padding:10px">
+          <!-- <van-field v-model="endValue" :label="$t('至')" type="digit" @blur="getassets" /> -->
+          <div style="color: #999">{{ $t('至') }}</div>
+          <div style="margin-left: 20px">{{ swapValue ? $t('交易账户') : $t('资金账户') }}</div>
         </div>
-
-        <div class="mt-10 transfer_label">{{ $t('数量') }}</div>
-        <div class="card mt-3 flex juc-between items-center">
-            <van-field v-model="moneyRevise" type="number" :placeholder="$t('输入金额')">
-                <template #button>
-                    <div class="label_but flex flex-end items-center">
-                        <span class="mr-3">USDT</span>
-                        <van-button type="default" size="small" round @click="Maximum">{{ $t('最大') }}</van-button>
-                    </div>
-                </template>
-            </van-field>
-        </div>
-        <div class="hint">
-            <span>{{ $t('最多可转') }}</span>
-            {{ maxMoneyRevise }} USDT
-        </div>
-
-        <van-button type="primary" round color="#f7b600" @click="submit" size="large" :disabled="!submitThrough">
-            {{ $t('确认') }}
-        </van-button>
+      </div>
+      <img src="@/assets/imgs/my/交换.png" class="swap" style="position: relative;margin-right: 15px" @click="onSwap">
     </div>
+
+    <div class="mt-10 transfer_label">{{ $t('资产') }}</div>
+    <div class="flex-centerY card mt-3" style="padding:5px 10px">
+      <img src="@/assets/img/img_6.png" style="width:25px;height: 25px;margin-right: 10px">
+      <div style="font-size: 12px">
+        <div>USDT</div>
+        <div style="color: #999">USDT</div>
+      </div>
+    </div>
+
+    <div class="mt-10 transfer_label">{{ $t('数量') }}</div>
+    <div class="card mt-3 flex juc-between items-center">
+      <van-field v-model="moneyRevise" type="number" :placeholder="$t('输入金额')">
+        <template #button>
+          <div class="label_but flex flex-end items-center">
+            <span class="mr-3">USDT</span>
+            <van-button type="default" size="small" round @click="Maximum">{{ $t('最大') }}</van-button>
+          </div>
+        </template>
+      </van-field>
+    </div>
+    <div class="hint">
+      <span>{{ $t('最多可转') }}</span>
+      {{ maxMoneyRevise }} USDT
+    </div>
+    <div style="position: absolute;bottom: 15px;width: 100%">
+      <div style="width: 100%" class="flex-center">
+        <van-button type="primary" style="width: 90%;margin-left: -20px" color="#111" @click="submit" size="large" :disabled="!submitThrough">
+          {{ $t('确认') }}
+        </van-button>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script setup>
-import { ref, computed } from "vue";
-import { useI18n } from "vue-i18n";
-import { _transfer, _getassets } from "@/service/user.api.js";
-import { showToast } from 'vant'
+import {ref, computed} from "vue";
+import {useI18n} from "vue-i18n";
+import {_transfer, _getassets} from "@/service/user.api.js";
+import {showToast} from 'vant'
 
-const { t } = useI18n()
+const {t} = useI18n()
 
 const moneyRevise = ref(0); // 划转金额
 const maxMoneyRevise = ref(0); // 最大划转金额
 const swapValue = ref(true) // 上下是否有交换
 
 const Maximum = () => { // 数量选择最大
-    moneyRevise.value = maxMoneyRevise.value
+  moneyRevise.value = maxMoneyRevise.value
 }
 
 const submitThrough = computed(() => { // 判断是否可以提交
-    return moneyRevise.value > 0
+  return moneyRevise.value > 0
 })
 
 const submit = () => { // 提交
-    _transfer({
-        deductAccount: swapValue.value ? 'capital' : 'contract', // 划转账户
-        receiveAccount: swapValue.value ? 'contract' : 'capital', // 接收账户
-        moneyRevise: moneyRevise.value,
-    }).then(res => {
-        showToast({
-            message: t('操作成功'),
-            forbidClick: true,
-            duration: 2000
-        })
-        getassets()
+  _transfer({
+    deductAccount: swapValue.value ? 'capital' : 'contract', // 划转账户
+    receiveAccount: swapValue.value ? 'contract' : 'capital', // 接收账户
+    moneyRevise: moneyRevise.value,
+  }).then(res => {
+    showToast({
+      message: t('操作成功'),
+      forbidClick: true,
+      duration: 2000
     })
+    getassets()
+  })
 }
 
 const getassets = () => { // 获取资产
-    _getassets().then(res => {
-        swapValue.value ? maxMoneyRevise.value = res.capitalUSDT : maxMoneyRevise.value = res.contract // 根据上下是否颠倒来判断取的哪个值
-    })
+  _getassets().then(res => {
+    swapValue.value ? maxMoneyRevise.value = res.capitalUSDT : maxMoneyRevise.value = res.contract // 根据上下是否颠倒来判断取的哪个值
+  })
 }
 getassets()
 
 const onSwap = () => { // 交换
-    swapValue.value = !swapValue.value
-    getassets()
+  swapValue.value = !swapValue.value
+  getassets()
 }
 
 </script>
 
 <style lang="scss" scoped>
 .transfer {
-    padding: 0rem 1.2rem 2rem 1.2rem;
+  padding: 0rem 1.2rem 2rem 1.2rem;
 
-    :deep(.van-cell) {
-        background: none;
-        padding: 0;
+  :deep(.van-cell) {
+    background: none;
+    padding: 0;
+  }
+
+  :deep(.van-cell::after) {
+    display: none;
+  }
+
+  :deep(.van-dropdown-menu__bar) {
+    background-color: rgba($color: #000000, $alpha: 0);
+    box-shadow: none;
+  }
+
+  :deep(.van-dropdown-menu__title:after) {
+    border-color: transparent transparent #000 #000;
+    right: 10px;
+  }
+
+  :deep(.van-dropdown-menu__title) {
+    width: 100%;
+  }
+
+  :deep(.van-dropdown-item__content) {
+    padding: 8px 16px;
+  }
+
+  .card {
+    background: $input_background;
+    padding: 2rem 1.2rem;
+    border-radius: 0.5rem;
+    font-size: 16px;
+  }
+
+  .swap {
+    width: 4rem;
+  }
+
+  .hint {
+    font-size: 12px;
+    margin-bottom: 150px;
+
+    span {
+      color: $text_color5;
     }
+  }
 
-    :deep(.van-cell::after) {
-        display: none;
-    }
+  .label_but {
+    color: $text_color4;
+  }
 
-    :deep(.van-dropdown-menu__bar) {
-        background-color: rgba($color: #000000, $alpha: 0);
-        box-shadow: none;
-    }
+  .transfer_label {
+    font-size: 16px;
 
-    :deep(.van-dropdown-menu__title:after) {
-        border-color: transparent transparent #000 #000;
-        right: 10px;
-    }
-
-    :deep(.van-dropdown-menu__title) {
-        width: 100%;
-    }
-
-    :deep(.van-dropdown-item__content) {
-        padding: 8px 16px;
-    }
-
-    .card {
-        background: $input_background;
-        padding: 2rem 1.2rem;
-        border-radius: 0.5rem;
-        font-size: 16px;
-    }
-
-    .swap {
-        position: absolute;
-        top: 50%;
-        left: 50%;
-        transform: translate(-50%, -50%);
-        width: 4rem;
-    }
-
-    .hint {
-        font-size: 12px;
-        margin-bottom: 150px;
-
-        span {
-            color: $text_color5;
-        }
-    }
-
-    .label_but {
-        color: $text_color4;
-    }
-
-    .transfer_label {
-        font-size: 16px;
-
-    }
+  }
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/tailwind.config.cjs b/tailwind.config.cjs
index ec64e40..984c14d 100644
--- a/tailwind.config.cjs
+++ b/tailwind.config.cjs
@@ -14,8 +14,8 @@
         gray: '#878A96', // 文字颜色
         'btn-gray': '#F1F3F9', // 背景灰
         'bd-gray': '#C3C4CD', // 下单border
-        up: '#06CDA5',  // 升
-        down: '#F43368' // 降
+        up: '#24c18d',  // 升
+        down: '#f14b3f' // 降
       }
     },
   },
diff --git a/yarn.lock b/yarn.lock
index 9560802..9e3e252 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3,34 +3,34 @@
 
 
 "@ampproject/remapping@^2.2.0":
-  "integrity" "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg=="
-  "resolved" "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz"
-  "version" "2.2.1"
+  version "2.2.1"
+  resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz"
+  integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==
   dependencies:
     "@jridgewell/gen-mapping" "^0.3.0"
     "@jridgewell/trace-mapping" "^0.3.9"
 
 "@antfu/utils@^0.7.2":
-  "integrity" "sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g=="
-  "resolved" "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.2.tgz"
-  "version" "0.7.2"
+  version "0.7.2"
+  resolved "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.2.tgz"
+  integrity sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g==
 
 "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.21.4":
-  "integrity" "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g=="
-  "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz"
-  "version" "7.21.4"
+  version "7.21.4"
+  resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz"
+  integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==
   dependencies:
     "@babel/highlight" "^7.18.6"
 
 "@babel/compat-data@^7.22.0":
-  "integrity" "sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ=="
-  "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.3.tgz"
-  "version" "7.22.3"
+  version "7.22.3"
+  resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.3.tgz"
+  integrity sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ==
 
-"@babel/core@^7.0.0", "@babel/core@^7.12.10":
-  "integrity" "sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA=="
-  "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.22.1.tgz"
-  "version" "7.22.1"
+"@babel/core@^7.12.10":
+  version "7.22.1"
+  resolved "https://registry.npmjs.org/@babel/core/-/core-7.22.1.tgz"
+  integrity sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA==
   dependencies:
     "@ampproject/remapping" "^2.2.0"
     "@babel/code-frame" "^7.21.4"
@@ -42,64 +42,64 @@
     "@babel/template" "^7.21.9"
     "@babel/traverse" "^7.22.1"
     "@babel/types" "^7.22.0"
-    "convert-source-map" "^1.7.0"
-    "debug" "^4.1.0"
-    "gensync" "^1.0.0-beta.2"
-    "json5" "^2.2.2"
-    "semver" "^6.3.0"
+    convert-source-map "^1.7.0"
+    debug "^4.1.0"
+    gensync "^1.0.0-beta.2"
+    json5 "^2.2.2"
+    semver "^6.3.0"
 
 "@babel/generator@^7.12.11", "@babel/generator@^7.22.0":
-  "integrity" "sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A=="
-  "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.22.3.tgz"
-  "version" "7.22.3"
+  version "7.22.3"
+  resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.22.3.tgz"
+  integrity sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A==
   dependencies:
     "@babel/types" "^7.22.3"
     "@jridgewell/gen-mapping" "^0.3.2"
     "@jridgewell/trace-mapping" "^0.3.17"
-    "jsesc" "^2.5.1"
+    jsesc "^2.5.1"
 
 "@babel/helper-compilation-targets@^7.22.1":
-  "integrity" "sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ=="
-  "resolved" "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.1.tgz"
-  "version" "7.22.1"
+  version "7.22.1"
+  resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.1.tgz"
+  integrity sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ==
   dependencies:
     "@babel/compat-data" "^7.22.0"
     "@babel/helper-validator-option" "^7.21.0"
-    "browserslist" "^4.21.3"
-    "lru-cache" "^5.1.1"
-    "semver" "^6.3.0"
+    browserslist "^4.21.3"
+    lru-cache "^5.1.1"
+    semver "^6.3.0"
 
 "@babel/helper-environment-visitor@^7.22.1":
-  "integrity" "sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA=="
-  "resolved" "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.1.tgz"
-  "version" "7.22.1"
+  version "7.22.1"
+  resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.1.tgz"
+  integrity sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA==
 
 "@babel/helper-function-name@^7.21.0":
-  "integrity" "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg=="
-  "resolved" "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz"
-  "version" "7.21.0"
+  version "7.21.0"
+  resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz"
+  integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==
   dependencies:
     "@babel/template" "^7.20.7"
     "@babel/types" "^7.21.0"
 
 "@babel/helper-hoist-variables@^7.18.6":
-  "integrity" "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q=="
-  "resolved" "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz"
-  "version" "7.18.6"
+  version "7.18.6"
+  resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz"
+  integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==
   dependencies:
     "@babel/types" "^7.18.6"
 
 "@babel/helper-module-imports@^7.21.4":
-  "integrity" "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg=="
-  "resolved" "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz"
-  "version" "7.21.4"
+  version "7.21.4"
+  resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz"
+  integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==
   dependencies:
     "@babel/types" "^7.21.4"
 
 "@babel/helper-module-transforms@^7.22.1":
-  "integrity" "sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw=="
-  "resolved" "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.1.tgz"
-  "version" "7.22.1"
+  version "7.22.1"
+  resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.1.tgz"
+  integrity sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw==
   dependencies:
     "@babel/helper-environment-visitor" "^7.22.1"
     "@babel/helper-module-imports" "^7.21.4"
@@ -111,75 +111,75 @@
     "@babel/types" "^7.22.0"
 
 "@babel/helper-simple-access@^7.21.5":
-  "integrity" "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg=="
-  "resolved" "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz"
-  "version" "7.21.5"
+  version "7.21.5"
+  resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz"
+  integrity sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==
   dependencies:
     "@babel/types" "^7.21.5"
 
 "@babel/helper-split-export-declaration@^7.18.6":
-  "integrity" "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA=="
-  "resolved" "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz"
-  "version" "7.18.6"
+  version "7.18.6"
+  resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz"
+  integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==
   dependencies:
     "@babel/types" "^7.18.6"
 
 "@babel/helper-string-parser@^7.21.5":
-  "integrity" "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w=="
-  "resolved" "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz"
-  "version" "7.21.5"
+  version "7.21.5"
+  resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz"
+  integrity sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==
 
 "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1":
-  "integrity" "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w=="
-  "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz"
-  "version" "7.19.1"
+  version "7.19.1"
+  resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz"
+  integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==
 
 "@babel/helper-validator-option@^7.21.0":
-  "integrity" "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ=="
-  "resolved" "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz"
-  "version" "7.21.0"
+  version "7.21.0"
+  resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz"
+  integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==
 
 "@babel/helpers@^7.22.0":
-  "integrity" "sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w=="
-  "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.3.tgz"
-  "version" "7.22.3"
+  version "7.22.3"
+  resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.3.tgz"
+  integrity sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==
   dependencies:
     "@babel/template" "^7.21.9"
     "@babel/traverse" "^7.22.1"
     "@babel/types" "^7.22.3"
 
 "@babel/highlight@^7.18.6":
-  "integrity" "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g=="
-  "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz"
-  "version" "7.18.6"
+  version "7.18.6"
+  resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz"
+  integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==
   dependencies:
     "@babel/helper-validator-identifier" "^7.18.6"
-    "chalk" "^2.0.0"
-    "js-tokens" "^4.0.0"
+    chalk "^2.0.0"
+    js-tokens "^4.0.0"
 
-"@babel/parser@^7.12.11", "@babel/parser@^7.15.8", "@babel/parser@^7.20.15", "@babel/parser@^7.21.3", "@babel/parser@^7.21.9", "@babel/parser@^7.22.0", "@babel/parser@^7.6.0", "@babel/parser@^7.7.0", "@babel/parser@^7.9.6":
-  "integrity" "sha512-vrukxyW/ep8UD1UDzOYpTKQ6abgjFoeG6L+4ar9+c5TN9QnlqiOi6QK7LSR5ewm/ERyGkT/Ai6VboNrxhbr9Uw=="
-  "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.22.3.tgz"
-  "version" "7.22.3"
+"@babel/parser@^7.12.11", "@babel/parser@^7.20.15", "@babel/parser@^7.21.3", "@babel/parser@^7.21.9", "@babel/parser@^7.22.0", "@babel/parser@^7.6.0", "@babel/parser@^7.7.0", "@babel/parser@^7.9.6":
+  version "7.22.3"
+  resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.22.3.tgz"
+  integrity sha512-vrukxyW/ep8UD1UDzOYpTKQ6abgjFoeG6L+4ar9+c5TN9QnlqiOi6QK7LSR5ewm/ERyGkT/Ai6VboNrxhbr9Uw==
 
 "@babel/standalone@^7.20.13":
-  "integrity" "sha512-us2dNhs+YxbpIlTH84go6FuZxXQZSsCLAQgGCh8Czuubmk6bOz6Dipgo52NBt9VixeEpoVGZQU6NF6NYAIWX8g=="
-  "resolved" "https://registry.npmjs.org/@babel/standalone/-/standalone-7.22.2.tgz"
-  "version" "7.22.2"
+  version "7.22.2"
+  resolved "https://registry.npmjs.org/@babel/standalone/-/standalone-7.22.2.tgz"
+  integrity sha512-us2dNhs+YxbpIlTH84go6FuZxXQZSsCLAQgGCh8Czuubmk6bOz6Dipgo52NBt9VixeEpoVGZQU6NF6NYAIWX8g==
 
 "@babel/template@^7.20.7", "@babel/template@^7.21.9":
-  "integrity" "sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ=="
-  "resolved" "https://registry.npmjs.org/@babel/template/-/template-7.21.9.tgz"
-  "version" "7.21.9"
+  version "7.21.9"
+  resolved "https://registry.npmjs.org/@babel/template/-/template-7.21.9.tgz"
+  integrity sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==
   dependencies:
     "@babel/code-frame" "^7.21.4"
     "@babel/parser" "^7.21.9"
     "@babel/types" "^7.21.5"
 
 "@babel/traverse@^7.12.12", "@babel/traverse@^7.22.1", "@babel/traverse@^7.7.0":
-  "integrity" "sha512-lAWkdCoUFnmwLBhIRLciFntGYsIIoC6vIbN8zrLPqBnJmPu7Z6nzqnKd7FsxQUNAvZfVZ0x6KdNvNp8zWIOHSQ=="
-  "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.1.tgz"
-  "version" "7.22.1"
+  version "7.22.1"
+  resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.1.tgz"
+  integrity sha512-lAWkdCoUFnmwLBhIRLciFntGYsIIoC6vIbN8zrLPqBnJmPu7Z6nzqnKd7FsxQUNAvZfVZ0x6KdNvNp8zWIOHSQ==
   dependencies:
     "@babel/code-frame" "^7.21.4"
     "@babel/generator" "^7.22.0"
@@ -189,73 +189,83 @@
     "@babel/helper-split-export-declaration" "^7.18.6"
     "@babel/parser" "^7.22.0"
     "@babel/types" "^7.22.0"
-    "debug" "^4.1.0"
-    "globals" "^11.1.0"
+    debug "^4.1.0"
+    globals "^11.1.0"
 
 "@babel/types@^7.18.6", "@babel/types@^7.21.0", "@babel/types@^7.21.3", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.22.0", "@babel/types@^7.22.3", "@babel/types@^7.6.1", "@babel/types@^7.7.0", "@babel/types@^7.9.6":
-  "integrity" "sha512-P3na3xIQHTKY4L0YOG7pM8M8uoUIB910WQaSiiMCZUC2Cy8XFEQONGABFnHWBa2gpGKODTAJcNhi5Zk0sLRrzg=="
-  "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.22.3.tgz"
-  "version" "7.22.3"
+  version "7.22.3"
+  resolved "https://registry.npmjs.org/@babel/types/-/types-7.22.3.tgz"
+  integrity sha512-P3na3xIQHTKY4L0YOG7pM8M8uoUIB910WQaSiiMCZUC2Cy8XFEQONGABFnHWBa2gpGKODTAJcNhi5Zk0sLRrzg==
   dependencies:
     "@babel/helper-string-parser" "^7.21.5"
     "@babel/helper-validator-identifier" "^7.19.1"
-    "to-fast-properties" "^2.0.0"
+    to-fast-properties "^2.0.0"
+
+"@esbuild/android-arm@0.15.18":
+  version "0.15.18"
+  resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80"
+  integrity sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==
+
+"@esbuild/linux-loong64@0.15.18":
+  version "0.15.18"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239"
+  integrity sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==
 
 "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.3.0":
-  "integrity" "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA=="
-  "resolved" "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz"
-  "version" "4.4.0"
+  version "4.4.0"
+  resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz"
+  integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
   dependencies:
-    "eslint-visitor-keys" "^3.3.0"
+    eslint-visitor-keys "^3.3.0"
 
 "@eslint-community/regexpp@^4.4.0":
-  "integrity" "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ=="
-  "resolved" "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz"
-  "version" "4.5.1"
+  version "4.5.1"
+  resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz"
+  integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==
 
 "@eslint/eslintrc@^2.0.3":
-  "integrity" "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ=="
-  "resolved" "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz"
-  "version" "2.0.3"
+  version "2.0.3"
+  resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz"
+  integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==
   dependencies:
-    "ajv" "^6.12.4"
-    "debug" "^4.3.2"
-    "espree" "^9.5.2"
-    "globals" "^13.19.0"
-    "ignore" "^5.2.0"
-    "import-fresh" "^3.2.1"
-    "js-yaml" "^4.1.0"
-    "minimatch" "^3.1.2"
-    "strip-json-comments" "^3.1.1"
+    ajv "^6.12.4"
+    debug "^4.3.2"
+    espree "^9.5.2"
+    globals "^13.19.0"
+    ignore "^5.2.0"
+    import-fresh "^3.2.1"
+    js-yaml "^4.1.0"
+    minimatch "^3.1.2"
+    strip-json-comments "^3.1.1"
 
 "@eslint/js@8.41.0":
-  "integrity" "sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA=="
-  "resolved" "https://registry.npmjs.org/@eslint/js/-/js-8.41.0.tgz"
-  "version" "8.41.0"
+  version "8.41.0"
+  resolved "https://registry.npmjs.org/@eslint/js/-/js-8.41.0.tgz"
+  integrity sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==
 
 "@humanwhocodes/config-array@^0.11.8":
-  "integrity" "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g=="
-  "resolved" "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz"
-  "version" "0.11.8"
+  version "0.11.8"
+  resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz"
+  integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==
   dependencies:
     "@humanwhocodes/object-schema" "^1.2.1"
-    "debug" "^4.1.1"
-    "minimatch" "^3.0.5"
+    debug "^4.1.1"
+    minimatch "^3.0.5"
 
 "@humanwhocodes/module-importer@^1.0.1":
-  "integrity" "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="
-  "resolved" "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz"
-  "version" "1.0.1"
+  version "1.0.1"
+  resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz"
+  integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
 
 "@humanwhocodes/object-schema@^1.2.1":
-  "integrity" "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="
-  "resolved" "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz"
-  "version" "1.2.1"
+  version "1.2.1"
+  resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz"
+  integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
 
 "@intlify/core-base@9.2.2":
-  "integrity" "sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA=="
-  "resolved" "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.2.2.tgz"
-  "version" "9.2.2"
+  version "9.2.2"
+  resolved "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.2.2.tgz"
+  integrity sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==
   dependencies:
     "@intlify/devtools-if" "9.2.2"
     "@intlify/message-compiler" "9.2.2"
@@ -263,182 +273,182 @@
     "@intlify/vue-devtools" "9.2.2"
 
 "@intlify/devtools-if@9.2.2":
-  "integrity" "sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg=="
-  "resolved" "https://registry.npmjs.org/@intlify/devtools-if/-/devtools-if-9.2.2.tgz"
-  "version" "9.2.2"
+  version "9.2.2"
+  resolved "https://registry.npmjs.org/@intlify/devtools-if/-/devtools-if-9.2.2.tgz"
+  integrity sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==
   dependencies:
     "@intlify/shared" "9.2.2"
 
 "@intlify/message-compiler@9.2.2":
-  "integrity" "sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA=="
-  "resolved" "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.2.2.tgz"
-  "version" "9.2.2"
+  version "9.2.2"
+  resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.2.2.tgz"
+  integrity sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==
   dependencies:
     "@intlify/shared" "9.2.2"
-    "source-map" "0.6.1"
+    source-map "0.6.1"
 
 "@intlify/shared@9.2.2":
-  "integrity" "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q=="
-  "resolved" "https://registry.npmjs.org/@intlify/shared/-/shared-9.2.2.tgz"
-  "version" "9.2.2"
+  version "9.2.2"
+  resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.2.2.tgz"
+  integrity sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==
 
 "@intlify/vue-devtools@9.2.2":
-  "integrity" "sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg=="
-  "resolved" "https://registry.npmjs.org/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz"
-  "version" "9.2.2"
+  version "9.2.2"
+  resolved "https://registry.npmjs.org/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz"
+  integrity sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==
   dependencies:
     "@intlify/core-base" "9.2.2"
     "@intlify/shared" "9.2.2"
 
 "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2":
-  "integrity" "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ=="
-  "resolved" "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz"
-  "version" "0.3.3"
+  version "0.3.3"
+  resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz"
+  integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==
   dependencies:
     "@jridgewell/set-array" "^1.0.1"
     "@jridgewell/sourcemap-codec" "^1.4.10"
     "@jridgewell/trace-mapping" "^0.3.9"
 
 "@jridgewell/resolve-uri@3.1.0":
-  "integrity" "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="
-  "resolved" "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz"
-  "version" "3.1.0"
+  version "3.1.0"
+  resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz"
+  integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
 
 "@jridgewell/set-array@^1.0.1":
-  "integrity" "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw=="
-  "resolved" "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz"
-  "version" "1.1.2"
+  version "1.1.2"
+  resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz"
+  integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
 
 "@jridgewell/source-map@^0.3.2":
-  "integrity" "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg=="
-  "resolved" "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz"
-  "version" "0.3.3"
+  version "0.3.3"
+  resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz"
+  integrity sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==
   dependencies:
     "@jridgewell/gen-mapping" "^0.3.0"
     "@jridgewell/trace-mapping" "^0.3.9"
 
-"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13":
-  "integrity" "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
-  "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz"
-  "version" "1.4.15"
-
 "@jridgewell/sourcemap-codec@1.4.14":
-  "integrity" "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
-  "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz"
-  "version" "1.4.14"
+  version "1.4.14"
+  resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz"
+  integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
+
+"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13":
+  version "1.4.15"
+  resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz"
+  integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
 
 "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
-  "integrity" "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA=="
-  "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz"
-  "version" "0.3.18"
+  version "0.3.18"
+  resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz"
+  integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==
   dependencies:
     "@jridgewell/resolve-uri" "3.1.0"
     "@jridgewell/sourcemap-codec" "1.4.14"
 
 "@nodelib/fs.scandir@2.1.5":
-  "integrity" "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="
-  "resolved" "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
-  "version" "2.1.5"
+  version "2.1.5"
+  resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
+  integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
   dependencies:
     "@nodelib/fs.stat" "2.0.5"
-    "run-parallel" "^1.1.9"
+    run-parallel "^1.1.9"
 
-"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5":
-  "integrity" "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
-  "resolved" "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
-  "version" "2.0.5"
+"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
+  version "2.0.5"
+  resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
+  integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
 
 "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8":
-  "integrity" "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="
-  "resolved" "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz"
-  "version" "1.2.8"
+  version "1.2.8"
+  resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz"
+  integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
   dependencies:
     "@nodelib/fs.scandir" "2.1.5"
-    "fastq" "^1.6.0"
+    fastq "^1.6.0"
 
 "@rollup/pluginutils@^5.0.2":
-  "integrity" "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA=="
-  "resolved" "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz"
-  "version" "5.0.2"
+  version "5.0.2"
+  resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz"
+  integrity sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==
   dependencies:
     "@types/estree" "^1.0.0"
-    "estree-walker" "^2.0.2"
-    "picomatch" "^2.3.1"
+    estree-walker "^2.0.2"
+    picomatch "^2.3.1"
 
 "@types/estree@^1.0.0":
-  "integrity" "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA=="
-  "resolved" "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz"
-  "version" "1.0.1"
+  version "1.0.1"
+  resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz"
+  integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==
 
 "@types/parse-json@^4.0.0":
-  "integrity" "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA=="
-  "resolved" "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz"
-  "version" "4.0.0"
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz"
+  integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
 
 "@types/web-bluetooth@^0.0.16":
-  "integrity" "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
-  "resolved" "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz"
-  "version" "0.0.16"
+  version "0.0.16"
+  resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz"
+  integrity sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==
 
 "@vant/popperjs@^1.3.0":
-  "integrity" "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw=="
-  "resolved" "https://registry.npmjs.org/@vant/popperjs/-/popperjs-1.3.0.tgz"
-  "version" "1.3.0"
+  version "1.3.0"
+  resolved "https://registry.npmjs.org/@vant/popperjs/-/popperjs-1.3.0.tgz"
+  integrity sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw==
 
 "@vant/use@^1.5.1":
-  "integrity" "sha512-Zxd7lDz/LliVYEQi3PR9a8CQa/kGCVzF0u9hqDMaTlgXlbG0wHMFPllrcG0ThR6bfs8xrYVuSFM9pJn6HSoUGQ=="
-  "resolved" "https://registry.npmjs.org/@vant/use/-/use-1.5.1.tgz"
-  "version" "1.5.1"
+  version "1.5.1"
+  resolved "https://registry.npmjs.org/@vant/use/-/use-1.5.1.tgz"
+  integrity sha512-Zxd7lDz/LliVYEQi3PR9a8CQa/kGCVzF0u9hqDMaTlgXlbG0wHMFPllrcG0ThR6bfs8xrYVuSFM9pJn6HSoUGQ==
 
 "@vitejs/plugin-legacy@^3.0.1":
-  "integrity" "sha512-9BT2mXunC7kQGKHP70BIbNZ/85P/KUMGKBS9CiV+XKNDZGNBjUnyrh3ofgtqgObmxKaEP2xJsEIRNIFJ+hjI8w=="
-  "resolved" "https://registry.npmjs.org/@vitejs/plugin-legacy/-/plugin-legacy-3.0.2.tgz"
-  "version" "3.0.2"
+  version "3.0.2"
+  resolved "https://registry.npmjs.org/@vitejs/plugin-legacy/-/plugin-legacy-3.0.2.tgz"
+  integrity sha512-9BT2mXunC7kQGKHP70BIbNZ/85P/KUMGKBS9CiV+XKNDZGNBjUnyrh3ofgtqgObmxKaEP2xJsEIRNIFJ+hjI8w==
   dependencies:
     "@babel/standalone" "^7.20.13"
-    "core-js" "^3.27.2"
-    "magic-string" "^0.27.0"
-    "regenerator-runtime" "^0.13.11"
-    "systemjs" "^6.13.0"
+    core-js "^3.27.2"
+    magic-string "^0.27.0"
+    regenerator-runtime "^0.13.11"
+    systemjs "^6.13.0"
 
 "@vitejs/plugin-vue@^3.2.0":
-  "integrity" "sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw=="
-  "resolved" "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz"
-  "version" "3.2.0"
+  version "3.2.0"
+  resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz"
+  integrity sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==
 
 "@vue-macros/common@~1.3.3":
-  "integrity" "sha512-bjHomaf3mu+ARMD4DX22C/lLVVocbmwgcLH7bg1rK4kB5ghesgShZTQIrNR6ZjifQmdGc/2jjZ/25kSb364uEA=="
-  "resolved" "https://registry.npmjs.org/@vue-macros/common/-/common-1.3.3.tgz"
-  "version" "1.3.3"
+  version "1.3.3"
+  resolved "https://registry.npmjs.org/@vue-macros/common/-/common-1.3.3.tgz"
+  integrity sha512-bjHomaf3mu+ARMD4DX22C/lLVVocbmwgcLH7bg1rK4kB5ghesgShZTQIrNR6ZjifQmdGc/2jjZ/25kSb364uEA==
   dependencies:
     "@babel/types" "^7.21.5"
     "@rollup/pluginutils" "^5.0.2"
     "@vue/compiler-sfc" "^3.3.4"
-    "local-pkg" "^0.4.3"
-    "magic-string-ast" "^0.1.2"
+    local-pkg "^0.4.3"
+    magic-string-ast "^0.1.2"
 
 "@vue/compiler-core@3.3.4":
-  "integrity" "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g=="
-  "resolved" "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz"
-  "version" "3.3.4"
+  version "3.3.4"
+  resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz"
+  integrity sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==
   dependencies:
     "@babel/parser" "^7.21.3"
     "@vue/shared" "3.3.4"
-    "estree-walker" "^2.0.2"
-    "source-map-js" "^1.0.2"
+    estree-walker "^2.0.2"
+    source-map-js "^1.0.2"
 
 "@vue/compiler-dom@3.3.4":
-  "integrity" "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w=="
-  "resolved" "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz"
-  "version" "3.3.4"
+  version "3.3.4"
+  resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz"
+  integrity sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==
   dependencies:
     "@vue/compiler-core" "3.3.4"
     "@vue/shared" "3.3.4"
 
-"@vue/compiler-sfc@^3.3.4", "@vue/compiler-sfc@3.3.4":
-  "integrity" "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ=="
-  "resolved" "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz"
-  "version" "3.3.4"
+"@vue/compiler-sfc@3.3.4", "@vue/compiler-sfc@^3.3.4":
+  version "3.3.4"
+  resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz"
+  integrity sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==
   dependencies:
     "@babel/parser" "^7.20.15"
     "@vue/compiler-core" "3.3.4"
@@ -446,788 +456,859 @@
     "@vue/compiler-ssr" "3.3.4"
     "@vue/reactivity-transform" "3.3.4"
     "@vue/shared" "3.3.4"
-    "estree-walker" "^2.0.2"
-    "magic-string" "^0.30.0"
-    "postcss" "^8.1.10"
-    "source-map-js" "^1.0.2"
+    estree-walker "^2.0.2"
+    magic-string "^0.30.0"
+    postcss "^8.1.10"
+    source-map-js "^1.0.2"
 
 "@vue/compiler-ssr@3.3.4":
-  "integrity" "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ=="
-  "resolved" "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz"
-  "version" "3.3.4"
+  version "3.3.4"
+  resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz"
+  integrity sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==
   dependencies:
     "@vue/compiler-dom" "3.3.4"
     "@vue/shared" "3.3.4"
 
 "@vue/devtools-api@^6.0.0-beta.11", "@vue/devtools-api@^6.2.1", "@vue/devtools-api@^6.4.4", "@vue/devtools-api@^6.5.0":
-  "integrity" "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q=="
-  "resolved" "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz"
-  "version" "6.5.0"
+  version "6.5.0"
+  resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz"
+  integrity sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==
 
 "@vue/reactivity-transform@3.3.4":
-  "integrity" "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw=="
-  "resolved" "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz"
-  "version" "3.3.4"
+  version "3.3.4"
+  resolved "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz"
+  integrity sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==
   dependencies:
     "@babel/parser" "^7.20.15"
     "@vue/compiler-core" "3.3.4"
     "@vue/shared" "3.3.4"
-    "estree-walker" "^2.0.2"
-    "magic-string" "^0.30.0"
+    estree-walker "^2.0.2"
+    magic-string "^0.30.0"
 
 "@vue/reactivity@3.3.4":
-  "integrity" "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ=="
-  "resolved" "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz"
-  "version" "3.3.4"
+  version "3.3.4"
+  resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz"
+  integrity sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==
   dependencies:
     "@vue/shared" "3.3.4"
 
 "@vue/runtime-core@3.3.4":
-  "integrity" "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA=="
-  "resolved" "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz"
-  "version" "3.3.4"
+  version "3.3.4"
+  resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz"
+  integrity sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==
   dependencies:
     "@vue/reactivity" "3.3.4"
     "@vue/shared" "3.3.4"
 
 "@vue/runtime-dom@3.3.4":
-  "integrity" "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ=="
-  "resolved" "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz"
-  "version" "3.3.4"
+  version "3.3.4"
+  resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz"
+  integrity sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==
   dependencies:
     "@vue/runtime-core" "3.3.4"
     "@vue/shared" "3.3.4"
-    "csstype" "^3.1.1"
+    csstype "^3.1.1"
 
 "@vue/server-renderer@3.3.4":
-  "integrity" "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ=="
-  "resolved" "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz"
-  "version" "3.3.4"
+  version "3.3.4"
+  resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz"
+  integrity sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==
   dependencies:
     "@vue/compiler-ssr" "3.3.4"
     "@vue/shared" "3.3.4"
 
-"@vue/shared@^3.0.0", "@vue/shared@3.3.4":
-  "integrity" "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ=="
-  "resolved" "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz"
-  "version" "3.3.4"
+"@vue/shared@3.3.4", "@vue/shared@^3.0.0":
+  version "3.3.4"
+  resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz"
+  integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==
 
 "@vueuse/components@9.4.0":
-  "integrity" "sha512-FDaZsosPoSFYGg+AUpUyf1Kb/tLr2ATXcD0LNRg6H8QPOzrY6j5WnUf1fEADur0W82cnZWaoziPPgjKZOLzAYw=="
-  "resolved" "https://registry.npmjs.org/@vueuse/components/-/components-9.4.0.tgz"
-  "version" "9.4.0"
+  version "9.4.0"
+  resolved "https://registry.npmjs.org/@vueuse/components/-/components-9.4.0.tgz"
+  integrity sha512-FDaZsosPoSFYGg+AUpUyf1Kb/tLr2ATXcD0LNRg6H8QPOzrY6j5WnUf1fEADur0W82cnZWaoziPPgjKZOLzAYw==
   dependencies:
     "@vueuse/core" "9.4.0"
     "@vueuse/shared" "9.4.0"
-    "vue-demi" "*"
+    vue-demi "*"
 
 "@vueuse/core@9.4.0":
-  "integrity" "sha512-JzgenGj1ZF2BHOen5rsFiAyyI9sXAv7aKhNLlm9b7SwYQeKTcxTWdhudonURCSP3Egl9NQaRBzes2lv/1JUt/Q=="
-  "resolved" "https://registry.npmjs.org/@vueuse/core/-/core-9.4.0.tgz"
-  "version" "9.4.0"
+  version "9.4.0"
+  resolved "https://registry.npmjs.org/@vueuse/core/-/core-9.4.0.tgz"
+  integrity sha512-JzgenGj1ZF2BHOen5rsFiAyyI9sXAv7aKhNLlm9b7SwYQeKTcxTWdhudonURCSP3Egl9NQaRBzes2lv/1JUt/Q==
   dependencies:
     "@types/web-bluetooth" "^0.0.16"
     "@vueuse/metadata" "9.4.0"
     "@vueuse/shared" "9.4.0"
-    "vue-demi" "*"
+    vue-demi "*"
 
 "@vueuse/metadata@9.4.0":
-  "integrity" "sha512-7GKMdGAsJyQJl35MYOz/RDpP0FxuiZBRDSN79QIPbdqYx4Sd0sVTnIC68KJ6Oln0t0SouvSUMvRHuno216Ud2Q=="
-  "resolved" "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.4.0.tgz"
-  "version" "9.4.0"
+  version "9.4.0"
+  resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.4.0.tgz"
+  integrity sha512-7GKMdGAsJyQJl35MYOz/RDpP0FxuiZBRDSN79QIPbdqYx4Sd0sVTnIC68KJ6Oln0t0SouvSUMvRHuno216Ud2Q==
 
 "@vueuse/shared@9.4.0":
-  "integrity" "sha512-fTuem51KwMCnqUKkI8B57qAIMcFovtGgsCtAeqxIzH3i6nE9VYge+gVfneNHAAy7lj8twbkNfqQSygOPJTm4tQ=="
-  "resolved" "https://registry.npmjs.org/@vueuse/shared/-/shared-9.4.0.tgz"
-  "version" "9.4.0"
+  version "9.4.0"
+  resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-9.4.0.tgz"
+  integrity sha512-fTuem51KwMCnqUKkI8B57qAIMcFovtGgsCtAeqxIzH3i6nE9VYge+gVfneNHAAy7lj8twbkNfqQSygOPJTm4tQ==
   dependencies:
-    "vue-demi" "*"
+    vue-demi "*"
 
-"acorn-jsx@^5.3.2":
-  "integrity" "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="
-  "resolved" "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
-  "version" "5.3.2"
+acorn-jsx@^5.3.2:
+  version "5.3.2"
+  resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
+  integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
 
-"acorn-node@^1.8.2":
-  "integrity" "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A=="
-  "resolved" "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz"
-  "version" "1.8.2"
+acorn-node@^1.8.2:
+  version "1.8.2"
+  resolved "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz"
+  integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==
   dependencies:
-    "acorn" "^7.0.0"
-    "acorn-walk" "^7.0.0"
-    "xtend" "^4.0.2"
+    acorn "^7.0.0"
+    acorn-walk "^7.0.0"
+    xtend "^4.0.2"
 
-"acorn-walk@^7.0.0":
-  "integrity" "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA=="
-  "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz"
-  "version" "7.2.0"
+acorn-walk@^7.0.0:
+  version "7.2.0"
+  resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz"
+  integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
 
-"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^7.0.0", "acorn@^7.1.1":
-  "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
-  "resolved" "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz"
-  "version" "7.4.1"
+acorn@^7.0.0, acorn@^7.1.1:
+  version "7.4.1"
+  resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz"
+  integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
 
-"acorn@^8.5.0":
-  "integrity" "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw=="
-  "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz"
-  "version" "8.8.2"
+acorn@^8.5.0, acorn@^8.8.0, acorn@^8.8.2:
+  version "8.8.2"
+  resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz"
+  integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
 
-"acorn@^8.8.0":
-  "integrity" "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw=="
-  "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz"
-  "version" "8.8.2"
-
-"acorn@^8.8.2":
-  "integrity" "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw=="
-  "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz"
-  "version" "8.8.2"
-
-"ajv@^6.10.0", "ajv@^6.12.4":
-  "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="
-  "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
-  "version" "6.12.6"
+ajv@^6.10.0, ajv@^6.12.4:
+  version "6.12.6"
+  resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
+  integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
   dependencies:
-    "fast-deep-equal" "^3.1.1"
-    "fast-json-stable-stringify" "^2.0.0"
-    "json-schema-traverse" "^0.4.1"
-    "uri-js" "^4.2.2"
+    fast-deep-equal "^3.1.1"
+    fast-json-stable-stringify "^2.0.0"
+    json-schema-traverse "^0.4.1"
+    uri-js "^4.2.2"
 
-"amfe-flexible@^2.2.1":
-  "integrity" "sha512-L2VfvDzoETBjhRptg5u/IUuzHSuxm22JpSRb404p/TBGeRfwWmmNEbB+TFPIP/sS/+pbM18bCFH9QnMojLuPNw=="
-  "resolved" "https://registry.npmjs.org/amfe-flexible/-/amfe-flexible-2.2.1.tgz"
-  "version" "2.2.1"
+amfe-flexible@^2.2.1:
+  version "2.2.1"
+  resolved "https://registry.npmjs.org/amfe-flexible/-/amfe-flexible-2.2.1.tgz"
+  integrity sha512-L2VfvDzoETBjhRptg5u/IUuzHSuxm22JpSRb404p/TBGeRfwWmmNEbB+TFPIP/sS/+pbM18bCFH9QnMojLuPNw==
 
-"ansi-regex@^5.0.1":
-  "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
-  "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
-  "version" "5.0.1"
+ansi-regex@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
+  integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
 
-"ansi-styles@^3.2.1":
-  "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="
-  "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
-  "version" "3.2.1"
+ansi-styles@^3.2.1:
+  version "3.2.1"
+  resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
+  integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
   dependencies:
-    "color-convert" "^1.9.0"
+    color-convert "^1.9.0"
 
-"ansi-styles@^4.0.0", "ansi-styles@^4.1.0":
-  "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="
-  "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
-  "version" "4.3.0"
+ansi-styles@^4.0.0, ansi-styles@^4.1.0:
+  version "4.3.0"
+  resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
+  integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
   dependencies:
-    "color-convert" "^2.0.1"
+    color-convert "^2.0.1"
 
-"anymatch@~3.1.2":
-  "integrity" "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="
-  "resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz"
-  "version" "3.1.3"
+anymatch@~3.1.2:
+  version "3.1.3"
+  resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz"
+  integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
   dependencies:
-    "normalize-path" "^3.0.0"
-    "picomatch" "^2.0.4"
+    normalize-path "^3.0.0"
+    picomatch "^2.0.4"
 
-"arg@^5.0.1":
-  "integrity" "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
-  "resolved" "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz"
-  "version" "5.0.2"
+arg@^5.0.1:
+  version "5.0.2"
+  resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz"
+  integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==
 
-"argparse@^2.0.1":
-  "integrity" "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
-  "resolved" "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"
-  "version" "2.0.1"
+argparse@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"
+  integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
 
-"asap@~2.0.3":
-  "integrity" "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
-  "resolved" "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz"
-  "version" "2.0.6"
+asap@~2.0.3:
+  version "2.0.6"
+  resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz"
+  integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==
 
-"assert-never@^1.2.1":
-  "integrity" "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw=="
-  "resolved" "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz"
-  "version" "1.2.1"
+assert-never@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz"
+  integrity sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==
 
-"ast-walker-scope@^0.4.1":
-  "integrity" "sha512-Ro3nmapMxi/remlJdzFH0tiA7A59KDbxVoLlKWaLDrPELiftb9b8w+CCyWRM+sXZH5KHRAgv8feedW6mihvCHA=="
-  "resolved" "https://registry.npmjs.org/ast-walker-scope/-/ast-walker-scope-0.4.1.tgz"
-  "version" "0.4.1"
+ast-walker-scope@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.npmjs.org/ast-walker-scope/-/ast-walker-scope-0.4.1.tgz"
+  integrity sha512-Ro3nmapMxi/remlJdzFH0tiA7A59KDbxVoLlKWaLDrPELiftb9b8w+CCyWRM+sXZH5KHRAgv8feedW6mihvCHA==
   dependencies:
     "@babel/parser" "^7.21.3"
     "@babel/types" "^7.21.3"
 
-"asynckit@^0.4.0":
-  "integrity" "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
-  "resolved" "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
-  "version" "0.4.0"
+asynckit@^0.4.0:
+  version "0.4.0"
+  resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
+  integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
 
-"autoprefixer@^10.4.13":
-  "integrity" "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ=="
-  "resolved" "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz"
-  "version" "10.4.14"
+autoprefixer@^10.4.13:
+  version "10.4.14"
+  resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz"
+  integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==
   dependencies:
-    "browserslist" "^4.21.5"
-    "caniuse-lite" "^1.0.30001464"
-    "fraction.js" "^4.2.0"
-    "normalize-range" "^0.1.2"
-    "picocolors" "^1.0.0"
-    "postcss-value-parser" "^4.2.0"
+    browserslist "^4.21.5"
+    caniuse-lite "^1.0.30001464"
+    fraction.js "^4.2.0"
+    normalize-range "^0.1.2"
+    picocolors "^1.0.0"
+    postcss-value-parser "^4.2.0"
 
-"autoprefixer@^9":
-  "integrity" "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA=="
-  "resolved" "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz"
-  "version" "9.8.8"
+autoprefixer@^9:
+  version "9.8.8"
+  resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz"
+  integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==
   dependencies:
-    "browserslist" "^4.12.0"
-    "caniuse-lite" "^1.0.30001109"
-    "normalize-range" "^0.1.2"
-    "num2fraction" "^1.2.2"
-    "picocolors" "^0.2.1"
-    "postcss" "^7.0.32"
-    "postcss-value-parser" "^4.1.0"
+    browserslist "^4.12.0"
+    caniuse-lite "^1.0.30001109"
+    normalize-range "^0.1.2"
+    num2fraction "^1.2.2"
+    picocolors "^0.2.1"
+    postcss "^7.0.32"
+    postcss-value-parser "^4.1.0"
 
-"axios@^1.1.3":
-  "integrity" "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA=="
-  "resolved" "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz"
-  "version" "1.4.0"
+axios@^1.1.3:
+  version "1.4.0"
+  resolved "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz"
+  integrity sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==
   dependencies:
-    "follow-redirects" "^1.15.0"
-    "form-data" "^4.0.0"
-    "proxy-from-env" "^1.1.0"
+    follow-redirects "^1.15.0"
+    form-data "^4.0.0"
+    proxy-from-env "^1.1.0"
 
-"babel-eslint@^10.1.0":
-  "integrity" "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg=="
-  "resolved" "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz"
-  "version" "10.1.0"
+babel-eslint@^10.1.0:
+  version "10.1.0"
+  resolved "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz"
+  integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==
   dependencies:
     "@babel/code-frame" "^7.0.0"
     "@babel/parser" "^7.7.0"
     "@babel/traverse" "^7.7.0"
     "@babel/types" "^7.7.0"
-    "eslint-visitor-keys" "^1.0.0"
-    "resolve" "^1.12.0"
+    eslint-visitor-keys "^1.0.0"
+    resolve "^1.12.0"
 
-"babel-walk@3.0.0-canary-5":
-  "integrity" "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw=="
-  "resolved" "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz"
-  "version" "3.0.0-canary-5"
+babel-walk@3.0.0-canary-5:
+  version "3.0.0-canary-5"
+  resolved "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz"
+  integrity sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==
   dependencies:
     "@babel/types" "^7.9.6"
 
-"balanced-match@^1.0.0":
-  "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
-  "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
-  "version" "1.0.2"
+balanced-match@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
+  integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
 
-"base64-arraybuffer@^1.0.2":
-  "integrity" "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ=="
-  "resolved" "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz"
-  "version" "1.0.2"
+base64-arraybuffer@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz"
+  integrity sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==
 
-"binary-extensions@^2.0.0":
-  "integrity" "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
-  "resolved" "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
-  "version" "2.2.0"
+binary-extensions@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
+  integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
 
-"boolbase@^1.0.0":
-  "integrity" "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
-  "resolved" "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz"
-  "version" "1.0.0"
+boolbase@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz"
+  integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==
 
-"brace-expansion@^1.1.7":
-  "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="
-  "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
-  "version" "1.1.11"
+brace-expansion@^1.1.7:
+  version "1.1.11"
+  resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
+  integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
   dependencies:
-    "balanced-match" "^1.0.0"
-    "concat-map" "0.0.1"
+    balanced-match "^1.0.0"
+    concat-map "0.0.1"
 
-"brace-expansion@^2.0.1":
-  "integrity" "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="
-  "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz"
-  "version" "2.0.1"
+brace-expansion@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz"
+  integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
   dependencies:
-    "balanced-match" "^1.0.0"
+    balanced-match "^1.0.0"
 
-"braces@^3.0.2", "braces@~3.0.2":
-  "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A=="
-  "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"
-  "version" "3.0.2"
+braces@^3.0.2, braces@~3.0.2:
+  version "3.0.2"
+  resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"
+  integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
   dependencies:
-    "fill-range" "^7.0.1"
+    fill-range "^7.0.1"
 
-"browserslist@^4.12.0", "browserslist@^4.21.3", "browserslist@^4.21.5", "browserslist@>= 4.21.0":
-  "integrity" "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA=="
-  "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.21.7.tgz"
-  "version" "4.21.7"
+browserslist@^4.12.0, browserslist@^4.21.3, browserslist@^4.21.5:
+  version "4.21.7"
+  resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.7.tgz"
+  integrity sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==
   dependencies:
-    "caniuse-lite" "^1.0.30001489"
-    "electron-to-chromium" "^1.4.411"
-    "node-releases" "^2.0.12"
-    "update-browserslist-db" "^1.0.11"
+    caniuse-lite "^1.0.30001489"
+    electron-to-chromium "^1.4.411"
+    node-releases "^2.0.12"
+    update-browserslist-db "^1.0.11"
 
-"buffer-from@^1.0.0":
-  "integrity" "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
-  "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz"
-  "version" "1.1.2"
+buffer-from@^1.0.0:
+  version "1.1.2"
+  resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz"
+  integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
 
-"bytes@^3.0.0":
-  "integrity" "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
-  "resolved" "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz"
-  "version" "3.1.2"
+bytes@^3.0.0:
+  version "3.1.2"
+  resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz"
+  integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
 
-"call-bind@^1.0.0", "call-bind@^1.0.2":
-  "integrity" "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA=="
-  "resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"
-  "version" "1.0.2"
+call-bind@^1.0.0, call-bind@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"
+  integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
   dependencies:
-    "function-bind" "^1.1.1"
-    "get-intrinsic" "^1.0.2"
+    function-bind "^1.1.1"
+    get-intrinsic "^1.0.2"
 
-"callsites@^3.0.0":
-  "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
-  "resolved" "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
-  "version" "3.1.0"
+callsites@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
+  integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
 
-"camelcase-css@^2.0.1":
-  "integrity" "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="
-  "resolved" "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz"
-  "version" "2.0.1"
+camelcase-css@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz"
+  integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
 
-"camelcase@^5.0.0":
-  "integrity" "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
-  "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz"
-  "version" "5.3.1"
+camelcase@^5.0.0:
+  version "5.3.1"
+  resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz"
+  integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
 
-"caniuse-lite@^1.0.30001109", "caniuse-lite@^1.0.30001464", "caniuse-lite@^1.0.30001489":
-  "integrity" "sha512-x1mgZEXK8jHIfAxm+xgdpHpk50IN3z3q3zP261/WS+uvePxW8izXuCu6AHz0lkuYTlATDehiZ/tNyYBdSQsOUQ=="
-  "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001489.tgz"
-  "version" "1.0.30001489"
+caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001489:
+  version "1.0.30001489"
+  resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001489.tgz"
+  integrity sha512-x1mgZEXK8jHIfAxm+xgdpHpk50IN3z3q3zP261/WS+uvePxW8izXuCu6AHz0lkuYTlATDehiZ/tNyYBdSQsOUQ==
 
-"chalk@^2.0.0":
-  "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="
-  "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
-  "version" "2.4.2"
+chalk@^2.0.0, chalk@^2.4.1:
+  version "2.4.2"
+  resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
+  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
   dependencies:
-    "ansi-styles" "^3.2.1"
-    "escape-string-regexp" "^1.0.5"
-    "supports-color" "^5.3.0"
+    ansi-styles "^3.2.1"
+    escape-string-regexp "^1.0.5"
+    supports-color "^5.3.0"
 
-"chalk@^2.4.1":
-  "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="
-  "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
-  "version" "2.4.2"
+chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
+  integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
   dependencies:
-    "ansi-styles" "^3.2.1"
-    "escape-string-regexp" "^1.0.5"
-    "supports-color" "^5.3.0"
+    ansi-styles "^4.1.0"
+    supports-color "^7.1.0"
 
-"chalk@^4.0.0", "chalk@^4.1.0", "chalk@^4.1.2":
-  "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="
-  "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
-  "version" "4.1.2"
+character-parser@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz"
+  integrity sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==
   dependencies:
-    "ansi-styles" "^4.1.0"
-    "supports-color" "^7.1.0"
+    is-regex "^1.0.3"
 
-"character-parser@^2.2.0":
-  "integrity" "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw=="
-  "resolved" "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz"
-  "version" "2.2.0"
+"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.2, chokidar@^3.5.3:
+  version "3.5.3"
+  resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz"
+  integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
   dependencies:
-    "is-regex" "^1.0.3"
-
-"chokidar@^3.5.2", "chokidar@^3.5.3", "chokidar@>=3.0.0 <4.0.0":
-  "integrity" "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw=="
-  "resolved" "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz"
-  "version" "3.5.3"
-  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"
+    anymatch "~3.1.2"
+    braces "~3.0.2"
+    glob-parent "~5.1.2"
+    is-binary-path "~2.1.0"
+    is-glob "~4.0.1"
+    normalize-path "~3.0.0"
+    readdirp "~3.6.0"
   optionalDependencies:
-    "fsevents" "~2.3.2"
+    fsevents "~2.3.2"
 
-"clipboard@^2.0.6":
-  "integrity" "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw=="
-  "resolved" "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz"
-  "version" "2.0.11"
+clipboard@^2.0.6:
+  version "2.0.11"
+  resolved "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz"
+  integrity sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==
   dependencies:
-    "good-listener" "^1.2.2"
-    "select" "^1.1.2"
-    "tiny-emitter" "^2.0.0"
+    good-listener "^1.2.2"
+    select "^1.1.2"
+    tiny-emitter "^2.0.0"
 
-"cliui@^6.0.0":
-  "integrity" "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ=="
-  "resolved" "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz"
-  "version" "6.0.0"
+cliui@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz"
+  integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==
   dependencies:
-    "string-width" "^4.2.0"
-    "strip-ansi" "^6.0.0"
-    "wrap-ansi" "^6.2.0"
+    string-width "^4.2.0"
+    strip-ansi "^6.0.0"
+    wrap-ansi "^6.2.0"
 
-"cliui@^8.0.1":
-  "integrity" "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ=="
-  "resolved" "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz"
-  "version" "8.0.1"
+cliui@^8.0.1:
+  version "8.0.1"
+  resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz"
+  integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
   dependencies:
-    "string-width" "^4.2.0"
-    "strip-ansi" "^6.0.1"
-    "wrap-ansi" "^7.0.0"
+    string-width "^4.2.0"
+    strip-ansi "^6.0.1"
+    wrap-ansi "^7.0.0"
 
-"color-convert@^1.9.0":
-  "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="
-  "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
-  "version" "1.9.3"
+color-convert@^1.9.0:
+  version "1.9.3"
+  resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
+  integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
   dependencies:
-    "color-name" "1.1.3"
+    color-name "1.1.3"
 
-"color-convert@^2.0.1":
-  "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="
-  "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
-  "version" "2.0.1"
+color-convert@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
+  integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
   dependencies:
-    "color-name" "~1.1.4"
+    color-name "~1.1.4"
 
-"color-name@^1.0.0", "color-name@~1.1.4":
-  "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
-  "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
-  "version" "1.1.4"
+color-name@1.1.3:
+  version "1.1.3"
+  resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
+  integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
 
-"color-name@1.1.3":
-  "integrity" "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
-  "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
-  "version" "1.1.3"
+color-name@^1.0.0, color-name@~1.1.4:
+  version "1.1.4"
+  resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
+  integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
 
-"color-string@^1.9.0":
-  "integrity" "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg=="
-  "resolved" "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz"
-  "version" "1.9.1"
+color-string@^1.9.0:
+  version "1.9.1"
+  resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz"
+  integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==
   dependencies:
-    "color-name" "^1.0.0"
-    "simple-swizzle" "^0.2.2"
+    color-name "^1.0.0"
+    simple-swizzle "^0.2.2"
 
-"color@^4.0.1":
-  "integrity" "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A=="
-  "resolved" "https://registry.npmjs.org/color/-/color-4.2.3.tgz"
-  "version" "4.2.3"
+color@^4.0.1:
+  version "4.2.3"
+  resolved "https://registry.npmjs.org/color/-/color-4.2.3.tgz"
+  integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==
   dependencies:
-    "color-convert" "^2.0.1"
-    "color-string" "^1.9.0"
+    color-convert "^2.0.1"
+    color-string "^1.9.0"
 
-"combined-stream@^1.0.8":
-  "integrity" "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="
-  "resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
-  "version" "1.0.8"
+combined-stream@^1.0.8:
+  version "1.0.8"
+  resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
+  integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
   dependencies:
-    "delayed-stream" "~1.0.0"
+    delayed-stream "~1.0.0"
 
-"commander@^2.20.0":
-  "integrity" "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
-  "resolved" "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz"
-  "version" "2.20.3"
+commander@^2.20.0:
+  version "2.20.3"
+  resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz"
+  integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
 
-"commander@^8.0.0":
-  "integrity" "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="
-  "resolved" "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz"
-  "version" "8.3.0"
+commander@^8.0.0:
+  version "8.3.0"
+  resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz"
+  integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
 
-"concat-map@0.0.1":
-  "integrity" "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
-  "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
-  "version" "0.0.1"
+concat-map@0.0.1:
+  version "0.0.1"
+  resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+  integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
 
-"constantinople@^4.0.1":
-  "integrity" "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw=="
-  "resolved" "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz"
-  "version" "4.0.1"
+constantinople@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz"
+  integrity sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==
   dependencies:
     "@babel/parser" "^7.6.0"
     "@babel/types" "^7.6.1"
 
-"convert-source-map@^1.7.0":
-  "integrity" "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
-  "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz"
-  "version" "1.9.0"
+convert-source-map@^1.7.0:
+  version "1.9.0"
+  resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz"
+  integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
 
-"core-js@^3.27.2", "core-js@^3.6.5":
-  "integrity" "sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg=="
-  "resolved" "https://registry.npmjs.org/core-js/-/core-js-3.30.2.tgz"
-  "version" "3.30.2"
+core-js@^3.27.2, core-js@^3.6.5:
+  version "3.30.2"
+  resolved "https://registry.npmjs.org/core-js/-/core-js-3.30.2.tgz"
+  integrity sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg==
 
-"cosmiconfig@^7.0.1":
-  "integrity" "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA=="
-  "resolved" "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz"
-  "version" "7.1.0"
+cosmiconfig@^7.0.1:
+  version "7.1.0"
+  resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz"
+  integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==
   dependencies:
     "@types/parse-json" "^4.0.0"
-    "import-fresh" "^3.2.1"
-    "parse-json" "^5.0.0"
-    "path-type" "^4.0.0"
-    "yaml" "^1.10.0"
+    import-fresh "^3.2.1"
+    parse-json "^5.0.0"
+    path-type "^4.0.0"
+    yaml "^1.10.0"
 
-"cross-spawn@^7.0.2":
-  "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w=="
-  "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"
-  "version" "7.0.3"
+cross-spawn@^7.0.2:
+  version "7.0.3"
+  resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"
+  integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
   dependencies:
-    "path-key" "^3.1.0"
-    "shebang-command" "^2.0.0"
-    "which" "^2.0.1"
+    path-key "^3.1.0"
+    shebang-command "^2.0.0"
+    which "^2.0.1"
 
-"css-color-names@^0.0.4":
-  "integrity" "sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q=="
-  "resolved" "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz"
-  "version" "0.0.4"
+css-color-names@^0.0.4:
+  version "0.0.4"
+  resolved "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz"
+  integrity sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q==
 
-"css-line-break@^2.1.0":
-  "integrity" "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w=="
-  "resolved" "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz"
-  "version" "2.1.0"
+css-line-break@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz"
+  integrity sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==
   dependencies:
-    "utrie" "^1.0.2"
+    utrie "^1.0.2"
 
-"css-unit-converter@^1.1.1":
-  "integrity" "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA=="
-  "resolved" "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz"
-  "version" "1.1.2"
+css-unit-converter@^1.1.1:
+  version "1.1.2"
+  resolved "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz"
+  integrity sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==
 
-"cssesc@^3.0.0":
-  "integrity" "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="
-  "resolved" "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz"
-  "version" "3.0.0"
+cssesc@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz"
+  integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
 
-"csstype@^3.1.1":
-  "integrity" "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
-  "resolved" "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz"
-  "version" "3.1.2"
+csstype@^3.1.1:
+  version "3.1.2"
+  resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz"
+  integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
 
-"dayjs@^1.11.7":
-  "integrity" "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ=="
-  "resolved" "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz"
-  "version" "1.11.7"
+dayjs@^1.11.7:
+  version "1.11.7"
+  resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz"
+  integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==
 
-"debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.2", "debug@^4.3.4":
-  "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
-  "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
-  "version" "4.3.4"
+debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
+  version "4.3.4"
+  resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
+  integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
   dependencies:
-    "ms" "2.1.2"
+    ms "2.1.2"
 
-"decamelize@^1.2.0":
-  "integrity" "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA=="
-  "resolved" "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"
-  "version" "1.2.0"
+decamelize@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"
+  integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==
 
-"deep-is@^0.1.3":
-  "integrity" "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
-  "resolved" "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz"
-  "version" "0.1.4"
+deep-is@^0.1.3:
+  version "0.1.4"
+  resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz"
+  integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
 
-"deepmerge@^4.2.2":
-  "integrity" "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="
-  "resolved" "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz"
-  "version" "4.3.1"
+deepmerge@^4.2.2:
+  version "4.3.1"
+  resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz"
+  integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
 
-"default-passive-events@^2.0.0":
-  "integrity" "sha512-eMtt76GpDVngZQ3ocgvRcNCklUMwID1PaNbCNxfpDXuiOXttSh0HzBbda1HU9SIUsDc02vb7g9+3I5tlqe/qMQ=="
-  "resolved" "https://registry.npmjs.org/default-passive-events/-/default-passive-events-2.0.0.tgz"
-  "version" "2.0.0"
+default-passive-events@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/default-passive-events/-/default-passive-events-2.0.0.tgz"
+  integrity sha512-eMtt76GpDVngZQ3ocgvRcNCklUMwID1PaNbCNxfpDXuiOXttSh0HzBbda1HU9SIUsDc02vb7g9+3I5tlqe/qMQ==
 
-"define-lazy-prop@^2.0.0":
-  "integrity" "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og=="
-  "resolved" "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz"
-  "version" "2.0.0"
+define-lazy-prop@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz"
+  integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==
 
-"defined@^1.0.0":
-  "integrity" "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q=="
-  "resolved" "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz"
-  "version" "1.0.1"
+defined@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz"
+  integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==
 
-"delayed-stream@~1.0.0":
-  "integrity" "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
-  "resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
-  "version" "1.0.0"
+delayed-stream@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
+  integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
 
-"delegate@^3.1.2":
-  "integrity" "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
-  "resolved" "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz"
-  "version" "3.2.0"
+delegate@^3.1.2:
+  version "3.2.0"
+  resolved "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz"
+  integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==
 
-"detective@^5.2.0":
-  "integrity" "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw=="
-  "resolved" "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz"
-  "version" "5.2.1"
+detective@^5.2.0:
+  version "5.2.1"
+  resolved "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz"
+  integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==
   dependencies:
-    "acorn-node" "^1.8.2"
-    "defined" "^1.0.0"
-    "minimist" "^1.2.6"
+    acorn-node "^1.8.2"
+    defined "^1.0.0"
+    minimist "^1.2.6"
 
-"didyoumean@^1.2.2":
-  "integrity" "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
-  "resolved" "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz"
-  "version" "1.2.2"
+didyoumean@^1.2.2:
+  version "1.2.2"
+  resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz"
+  integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==
 
-"dijkstrajs@^1.0.1":
-  "integrity" "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA=="
-  "resolved" "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz"
-  "version" "1.0.3"
+dijkstrajs@^1.0.1:
+  version "1.0.3"
+  resolved "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz"
+  integrity sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==
 
-"dlv@^1.1.3":
-  "integrity" "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
-  "resolved" "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz"
-  "version" "1.1.3"
+dlv@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz"
+  integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
 
-"doctrine@^3.0.0":
-  "integrity" "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w=="
-  "resolved" "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz"
-  "version" "3.0.0"
+doctrine@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz"
+  integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
   dependencies:
-    "esutils" "^2.0.2"
+    esutils "^2.0.2"
 
-"doctypes@^1.1.0":
-  "integrity" "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ=="
-  "resolved" "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz"
-  "version" "1.1.0"
+doctypes@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz"
+  integrity sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==
 
-"dot-case@^3.0.4":
-  "integrity" "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w=="
-  "resolved" "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz"
-  "version" "3.0.4"
+dot-case@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz"
+  integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==
   dependencies:
-    "no-case" "^3.0.4"
-    "tslib" "^2.0.3"
+    no-case "^3.0.4"
+    tslib "^2.0.3"
 
-"echarts@^5.4.2":
-  "integrity" "sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA=="
-  "resolved" "https://registry.npmjs.org/echarts/-/echarts-5.4.3.tgz"
-  "version" "5.4.3"
+echarts@^5.4.2:
+  version "5.4.3"
+  resolved "https://registry.npmjs.org/echarts/-/echarts-5.4.3.tgz"
+  integrity sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA==
   dependencies:
-    "tslib" "2.3.0"
-    "zrender" "5.4.4"
+    tslib "2.3.0"
+    zrender "5.4.4"
 
-"electron-to-chromium@^1.4.411":
-  "integrity" "sha512-5VXLW4Qw89vM2WTICHua/y8v7fKGDRVa2VPOtBB9IpLvW316B+xd8yD1wTmLPY2ot/00P/qt87xdolj4aG/Lzg=="
-  "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.411.tgz"
-  "version" "1.4.411"
+electron-to-chromium@^1.4.411:
+  version "1.4.411"
+  resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.411.tgz"
+  integrity sha512-5VXLW4Qw89vM2WTICHua/y8v7fKGDRVa2VPOtBB9IpLvW316B+xd8yD1wTmLPY2ot/00P/qt87xdolj4aG/Lzg==
 
-"emoji-regex@^8.0.0":
-  "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
-  "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz"
-  "version" "8.0.0"
+emoji-regex@^8.0.0:
+  version "8.0.0"
+  resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz"
+  integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
 
-"encode-utf8@^1.0.3":
-  "integrity" "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw=="
-  "resolved" "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz"
-  "version" "1.0.3"
+encode-utf8@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz"
+  integrity sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==
 
-"error-ex@^1.3.1":
-  "integrity" "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g=="
-  "resolved" "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz"
-  "version" "1.3.2"
+error-ex@^1.3.1:
+  version "1.3.2"
+  resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz"
+  integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
   dependencies:
-    "is-arrayish" "^0.2.1"
+    is-arrayish "^0.2.1"
 
-"esbuild-darwin-64@0.15.18":
-  "integrity" "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg=="
-  "resolved" "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz"
-  "version" "0.15.18"
+esbuild-android-64@0.15.18:
+  version "0.15.18"
+  resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz#20a7ae1416c8eaade917fb2453c1259302c637a5"
+  integrity sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==
 
-"esbuild@^0.15.9":
-  "integrity" "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q=="
-  "resolved" "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz"
-  "version" "0.15.18"
+esbuild-android-arm64@0.15.18:
+  version "0.15.18"
+  resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz#9cc0ec60581d6ad267568f29cf4895ffdd9f2f04"
+  integrity sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==
+
+esbuild-darwin-64@0.15.18:
+  version "0.15.18"
+  resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz"
+  integrity sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==
+
+esbuild-darwin-arm64@0.15.18:
+  version "0.15.18"
+  resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz#b6dfc7799115a2917f35970bfbc93ae50256b337"
+  integrity sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==
+
+esbuild-freebsd-64@0.15.18:
+  version "0.15.18"
+  resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz#4e190d9c2d1e67164619ae30a438be87d5eedaf2"
+  integrity sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==
+
+esbuild-freebsd-arm64@0.15.18:
+  version "0.15.18"
+  resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz#18a4c0344ee23bd5a6d06d18c76e2fd6d3f91635"
+  integrity sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==
+
+esbuild-linux-32@0.15.18:
+  version "0.15.18"
+  resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz#9a329731ee079b12262b793fb84eea762e82e0ce"
+  integrity sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==
+
+esbuild-linux-64@0.15.18:
+  version "0.15.18"
+  resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz#532738075397b994467b514e524aeb520c191b6c"
+  integrity sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==
+
+esbuild-linux-arm64@0.15.18:
+  version "0.15.18"
+  resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz#5372e7993ac2da8f06b2ba313710d722b7a86e5d"
+  integrity sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==
+
+esbuild-linux-arm@0.15.18:
+  version "0.15.18"
+  resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz#e734aaf259a2e3d109d4886c9e81ec0f2fd9a9cc"
+  integrity sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==
+
+esbuild-linux-mips64le@0.15.18:
+  version "0.15.18"
+  resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz#c0487c14a9371a84eb08fab0e1d7b045a77105eb"
+  integrity sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==
+
+esbuild-linux-ppc64le@0.15.18:
+  version "0.15.18"
+  resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz#af048ad94eed0ce32f6d5a873f7abe9115012507"
+  integrity sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==
+
+esbuild-linux-riscv64@0.15.18:
+  version "0.15.18"
+  resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz#423ed4e5927bd77f842bd566972178f424d455e6"
+  integrity sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==
+
+esbuild-linux-s390x@0.15.18:
+  version "0.15.18"
+  resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz#21d21eaa962a183bfb76312e5a01cc5ae48ce8eb"
+  integrity sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==
+
+esbuild-netbsd-64@0.15.18:
+  version "0.15.18"
+  resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz#ae75682f60d08560b1fe9482bfe0173e5110b998"
+  integrity sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==
+
+esbuild-openbsd-64@0.15.18:
+  version "0.15.18"
+  resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz#79591a90aa3b03e4863f93beec0d2bab2853d0a8"
+  integrity sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==
+
+esbuild-sunos-64@0.15.18:
+  version "0.15.18"
+  resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz#fd528aa5da5374b7e1e93d36ef9b07c3dfed2971"
+  integrity sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==
+
+esbuild-windows-32@0.15.18:
+  version "0.15.18"
+  resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz#0e92b66ecdf5435a76813c4bc5ccda0696f4efc3"
+  integrity sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==
+
+esbuild-windows-64@0.15.18:
+  version "0.15.18"
+  resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz#0fc761d785414284fc408e7914226d33f82420d0"
+  integrity sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==
+
+esbuild-windows-arm64@0.15.18:
+  version "0.15.18"
+  resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz#5b5bdc56d341d0922ee94965c89ee120a6a86eb7"
+  integrity sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==
+
+esbuild@^0.15.9:
+  version "0.15.18"
+  resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz"
+  integrity sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==
   optionalDependencies:
     "@esbuild/android-arm" "0.15.18"
     "@esbuild/linux-loong64" "0.15.18"
-    "esbuild-android-64" "0.15.18"
-    "esbuild-android-arm64" "0.15.18"
-    "esbuild-darwin-64" "0.15.18"
-    "esbuild-darwin-arm64" "0.15.18"
-    "esbuild-freebsd-64" "0.15.18"
-    "esbuild-freebsd-arm64" "0.15.18"
-    "esbuild-linux-32" "0.15.18"
-    "esbuild-linux-64" "0.15.18"
-    "esbuild-linux-arm" "0.15.18"
-    "esbuild-linux-arm64" "0.15.18"
-    "esbuild-linux-mips64le" "0.15.18"
-    "esbuild-linux-ppc64le" "0.15.18"
-    "esbuild-linux-riscv64" "0.15.18"
-    "esbuild-linux-s390x" "0.15.18"
-    "esbuild-netbsd-64" "0.15.18"
-    "esbuild-openbsd-64" "0.15.18"
-    "esbuild-sunos-64" "0.15.18"
-    "esbuild-windows-32" "0.15.18"
-    "esbuild-windows-64" "0.15.18"
-    "esbuild-windows-arm64" "0.15.18"
+    esbuild-android-64 "0.15.18"
+    esbuild-android-arm64 "0.15.18"
+    esbuild-darwin-64 "0.15.18"
+    esbuild-darwin-arm64 "0.15.18"
+    esbuild-freebsd-64 "0.15.18"
+    esbuild-freebsd-arm64 "0.15.18"
+    esbuild-linux-32 "0.15.18"
+    esbuild-linux-64 "0.15.18"
+    esbuild-linux-arm "0.15.18"
+    esbuild-linux-arm64 "0.15.18"
+    esbuild-linux-mips64le "0.15.18"
+    esbuild-linux-ppc64le "0.15.18"
+    esbuild-linux-riscv64 "0.15.18"
+    esbuild-linux-s390x "0.15.18"
+    esbuild-netbsd-64 "0.15.18"
+    esbuild-openbsd-64 "0.15.18"
+    esbuild-sunos-64 "0.15.18"
+    esbuild-windows-32 "0.15.18"
+    esbuild-windows-64 "0.15.18"
+    esbuild-windows-arm64 "0.15.18"
 
-"escalade@^3.1.1":
-  "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
-  "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"
-  "version" "3.1.1"
+escalade@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"
+  integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
 
-"escape-string-regexp@^1.0.5":
-  "integrity" "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
-  "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
-  "version" "1.0.5"
+escape-string-regexp@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
+  integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
 
-"escape-string-regexp@^4.0.0":
-  "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
-  "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"
-  "version" "4.0.0"
+escape-string-regexp@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"
+  integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
 
-"eslint-config-prettier@^8.5.0":
-  "integrity" "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA=="
-  "resolved" "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz"
-  "version" "8.8.0"
+eslint-config-prettier@^8.5.0:
+  version "8.8.0"
+  resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz"
+  integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==
 
-"eslint-plugin-prettier@^4.2.1":
-  "integrity" "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ=="
-  "resolved" "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz"
-  "version" "4.2.1"
+eslint-plugin-prettier@^4.2.1:
+  version "4.2.1"
+  resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz"
+  integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==
   dependencies:
-    "prettier-linter-helpers" "^1.0.0"
+    prettier-linter-helpers "^1.0.0"
 
-"eslint-plugin-vue@^9.6.0":
-  "integrity" "sha512-LQazDB1qkNEKejLe/b5a9VfEbtbczcOaui5lQ4Qw0tbRBbQYREyxxOV5BQgNDTqGPs9pxqiEpbMi9ywuIaF7vw=="
-  "resolved" "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.14.1.tgz"
-  "version" "9.14.1"
+eslint-plugin-vue@^9.6.0:
+  version "9.14.1"
+  resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.14.1.tgz"
+  integrity sha512-LQazDB1qkNEKejLe/b5a9VfEbtbczcOaui5lQ4Qw0tbRBbQYREyxxOV5BQgNDTqGPs9pxqiEpbMi9ywuIaF7vw==
   dependencies:
     "@eslint-community/eslint-utils" "^4.3.0"
-    "natural-compare" "^1.4.0"
-    "nth-check" "^2.0.1"
-    "postcss-selector-parser" "^6.0.9"
-    "semver" "^7.3.5"
-    "vue-eslint-parser" "^9.3.0"
-    "xml-name-validator" "^4.0.0"
+    natural-compare "^1.4.0"
+    nth-check "^2.0.1"
+    postcss-selector-parser "^6.0.9"
+    semver "^7.3.5"
+    vue-eslint-parser "^9.3.0"
+    xml-name-validator "^4.0.0"
 
-"eslint-scope@^7.1.1", "eslint-scope@^7.2.0":
-  "integrity" "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw=="
-  "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz"
-  "version" "7.2.0"
+eslint-scope@^7.1.1, eslint-scope@^7.2.0:
+  version "7.2.0"
+  resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz"
+  integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==
   dependencies:
-    "esrecurse" "^4.3.0"
-    "estraverse" "^5.2.0"
+    esrecurse "^4.3.0"
+    estraverse "^5.2.0"
 
-"eslint-visitor-keys@^1.0.0":
-  "integrity" "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ=="
-  "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz"
-  "version" "1.3.0"
+eslint-visitor-keys@^1.0.0:
+  version "1.3.0"
+  resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz"
+  integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
 
-"eslint-visitor-keys@^3.3.0":
-  "integrity" "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA=="
-  "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz"
-  "version" "3.4.1"
+eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1:
+  version "3.4.1"
+  resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz"
+  integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==
 
-"eslint-visitor-keys@^3.4.1":
-  "integrity" "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA=="
-  "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz"
-  "version" "3.4.1"
-
-"eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0", "eslint@^8.26.0", "eslint@>= 4.12.1", "eslint@>=6.0.0", "eslint@>=7.0.0", "eslint@>=7.28.0":
-  "integrity" "sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q=="
-  "resolved" "https://registry.npmjs.org/eslint/-/eslint-8.41.0.tgz"
-  "version" "8.41.0"
+eslint@^8.26.0:
+  version "8.41.0"
+  resolved "https://registry.npmjs.org/eslint/-/eslint-8.41.0.tgz"
+  integrity sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==
   dependencies:
     "@eslint-community/eslint-utils" "^4.2.0"
     "@eslint-community/regexpp" "^4.4.0"
@@ -1236,1709 +1317,1705 @@
     "@humanwhocodes/config-array" "^0.11.8"
     "@humanwhocodes/module-importer" "^1.0.1"
     "@nodelib/fs.walk" "^1.2.8"
-    "ajv" "^6.10.0"
-    "chalk" "^4.0.0"
-    "cross-spawn" "^7.0.2"
-    "debug" "^4.3.2"
-    "doctrine" "^3.0.0"
-    "escape-string-regexp" "^4.0.0"
-    "eslint-scope" "^7.2.0"
-    "eslint-visitor-keys" "^3.4.1"
-    "espree" "^9.5.2"
-    "esquery" "^1.4.2"
-    "esutils" "^2.0.2"
-    "fast-deep-equal" "^3.1.3"
-    "file-entry-cache" "^6.0.1"
-    "find-up" "^5.0.0"
-    "glob-parent" "^6.0.2"
-    "globals" "^13.19.0"
-    "graphemer" "^1.4.0"
-    "ignore" "^5.2.0"
-    "import-fresh" "^3.0.0"
-    "imurmurhash" "^0.1.4"
-    "is-glob" "^4.0.0"
-    "is-path-inside" "^3.0.3"
-    "js-yaml" "^4.1.0"
-    "json-stable-stringify-without-jsonify" "^1.0.1"
-    "levn" "^0.4.1"
-    "lodash.merge" "^4.6.2"
-    "minimatch" "^3.1.2"
-    "natural-compare" "^1.4.0"
-    "optionator" "^0.9.1"
-    "strip-ansi" "^6.0.1"
-    "strip-json-comments" "^3.1.0"
-    "text-table" "^0.2.0"
+    ajv "^6.10.0"
+    chalk "^4.0.0"
+    cross-spawn "^7.0.2"
+    debug "^4.3.2"
+    doctrine "^3.0.0"
+    escape-string-regexp "^4.0.0"
+    eslint-scope "^7.2.0"
+    eslint-visitor-keys "^3.4.1"
+    espree "^9.5.2"
+    esquery "^1.4.2"
+    esutils "^2.0.2"
+    fast-deep-equal "^3.1.3"
+    file-entry-cache "^6.0.1"
+    find-up "^5.0.0"
+    glob-parent "^6.0.2"
+    globals "^13.19.0"
+    graphemer "^1.4.0"
+    ignore "^5.2.0"
+    import-fresh "^3.0.0"
+    imurmurhash "^0.1.4"
+    is-glob "^4.0.0"
+    is-path-inside "^3.0.3"
+    js-yaml "^4.1.0"
+    json-stable-stringify-without-jsonify "^1.0.1"
+    levn "^0.4.1"
+    lodash.merge "^4.6.2"
+    minimatch "^3.1.2"
+    natural-compare "^1.4.0"
+    optionator "^0.9.1"
+    strip-ansi "^6.0.1"
+    strip-json-comments "^3.1.0"
+    text-table "^0.2.0"
 
-"espree@^9.3.1", "espree@^9.5.2":
-  "integrity" "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw=="
-  "resolved" "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz"
-  "version" "9.5.2"
+espree@^9.3.1, espree@^9.5.2:
+  version "9.5.2"
+  resolved "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz"
+  integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==
   dependencies:
-    "acorn" "^8.8.0"
-    "acorn-jsx" "^5.3.2"
-    "eslint-visitor-keys" "^3.4.1"
+    acorn "^8.8.0"
+    acorn-jsx "^5.3.2"
+    eslint-visitor-keys "^3.4.1"
 
-"esquery@^1.4.0", "esquery@^1.4.2":
-  "integrity" "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg=="
-  "resolved" "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz"
-  "version" "1.5.0"
+esquery@^1.4.0, esquery@^1.4.2:
+  version "1.5.0"
+  resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz"
+  integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==
   dependencies:
-    "estraverse" "^5.1.0"
+    estraverse "^5.1.0"
 
-"esrecurse@^4.3.0":
-  "integrity" "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="
-  "resolved" "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz"
-  "version" "4.3.0"
+esrecurse@^4.3.0:
+  version "4.3.0"
+  resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz"
+  integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
   dependencies:
-    "estraverse" "^5.2.0"
+    estraverse "^5.2.0"
 
-"estraverse@^5.1.0", "estraverse@^5.2.0":
-  "integrity" "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
-  "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz"
-  "version" "5.3.0"
+estraverse@^5.1.0, estraverse@^5.2.0:
+  version "5.3.0"
+  resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz"
+  integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
 
-"estree-walker@^2.0.2":
-  "integrity" "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
-  "resolved" "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz"
-  "version" "2.0.2"
+estree-walker@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz"
+  integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
 
-"esutils@^2.0.2":
-  "integrity" "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
-  "resolved" "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
-  "version" "2.0.3"
+esutils@^2.0.2:
+  version "2.0.3"
+  resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
+  integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
 
-"fast-deep-equal@^3.1.1", "fast-deep-equal@^3.1.3":
-  "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
-  "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
-  "version" "3.1.3"
+fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
+  version "3.1.3"
+  resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
+  integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
 
-"fast-diff@^1.1.2":
-  "integrity" "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw=="
-  "resolved" "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz"
-  "version" "1.3.0"
+fast-diff@^1.1.2:
+  version "1.3.0"
+  resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz"
+  integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==
 
-"fast-glob@^3.2.12", "fast-glob@^3.2.7":
-  "integrity" "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w=="
-  "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz"
-  "version" "3.2.12"
+fast-glob@^3.2.12, fast-glob@^3.2.7:
+  version "3.2.12"
+  resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz"
+  integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==
   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"
+    glob-parent "^5.1.2"
+    merge2 "^1.3.0"
+    micromatch "^4.0.4"
 
-"fast-json-stable-stringify@^2.0.0":
-  "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
-  "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
-  "version" "2.1.0"
+fast-json-stable-stringify@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
+  integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
 
-"fast-levenshtein@^2.0.6":
-  "integrity" "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
-  "resolved" "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
-  "version" "2.0.6"
+fast-levenshtein@^2.0.6:
+  version "2.0.6"
+  resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
+  integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
 
-"fastq@^1.6.0":
-  "integrity" "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw=="
-  "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz"
-  "version" "1.15.0"
+fastq@^1.6.0:
+  version "1.15.0"
+  resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz"
+  integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==
   dependencies:
-    "reusify" "^1.0.4"
+    reusify "^1.0.4"
 
-"file-entry-cache@^6.0.1":
-  "integrity" "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg=="
-  "resolved" "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz"
-  "version" "6.0.1"
+file-entry-cache@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz"
+  integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
   dependencies:
-    "flat-cache" "^3.0.4"
+    flat-cache "^3.0.4"
 
-"fill-range@^7.0.1":
-  "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ=="
-  "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
-  "version" "7.0.1"
+fill-range@^7.0.1:
+  version "7.0.1"
+  resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
+  integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
   dependencies:
-    "to-regex-range" "^5.0.1"
+    to-regex-range "^5.0.1"
 
-"find-up@^4.1.0":
-  "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="
-  "resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz"
-  "version" "4.1.0"
+find-up@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz"
+  integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
   dependencies:
-    "locate-path" "^5.0.0"
-    "path-exists" "^4.0.0"
+    locate-path "^5.0.0"
+    path-exists "^4.0.0"
 
-"find-up@^5.0.0":
-  "integrity" "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="
-  "resolved" "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz"
-  "version" "5.0.0"
+find-up@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz"
+  integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
   dependencies:
-    "locate-path" "^6.0.0"
-    "path-exists" "^4.0.0"
+    locate-path "^6.0.0"
+    path-exists "^4.0.0"
 
-"flat-cache@^3.0.4":
-  "integrity" "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg=="
-  "resolved" "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz"
-  "version" "3.0.4"
+flat-cache@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz"
+  integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
   dependencies:
-    "flatted" "^3.1.0"
-    "rimraf" "^3.0.2"
+    flatted "^3.1.0"
+    rimraf "^3.0.2"
 
-"flatted@^3.1.0":
-  "integrity" "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ=="
-  "resolved" "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz"
-  "version" "3.2.7"
+flatted@^3.1.0:
+  version "3.2.7"
+  resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz"
+  integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==
 
-"follow-redirects@^1.15.0":
-  "integrity" "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="
-  "resolved" "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz"
-  "version" "1.15.2"
+follow-redirects@^1.15.0:
+  version "1.15.2"
+  resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz"
+  integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
 
-"form-data@^4.0.0":
-  "integrity" "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww=="
-  "resolved" "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz"
-  "version" "4.0.0"
+form-data@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz"
+  integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
   dependencies:
-    "asynckit" "^0.4.0"
-    "combined-stream" "^1.0.8"
-    "mime-types" "^2.1.12"
+    asynckit "^0.4.0"
+    combined-stream "^1.0.8"
+    mime-types "^2.1.12"
 
-"fraction.js@^4.2.0":
-  "integrity" "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA=="
-  "resolved" "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz"
-  "version" "4.2.0"
+fraction.js@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz"
+  integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
 
-"fs-extra@^10.0.0":
-  "integrity" "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ=="
-  "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz"
-  "version" "10.1.0"
+fs-extra@^10.0.0:
+  version "10.1.0"
+  resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz"
+  integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==
   dependencies:
-    "graceful-fs" "^4.2.0"
-    "jsonfile" "^6.0.1"
-    "universalify" "^2.0.0"
+    graceful-fs "^4.2.0"
+    jsonfile "^6.0.1"
+    universalify "^2.0.0"
 
-"fs.realpath@^1.0.0":
-  "integrity" "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
-  "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
-  "version" "1.0.0"
+fs.realpath@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
+  integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
 
-"fsevents@~2.3.2":
-  "integrity" "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="
-  "resolved" "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz"
-  "version" "2.3.2"
+fsevents@~2.3.2:
+  version "2.3.2"
+  resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz"
+  integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
 
-"function-bind@^1.1.1":
-  "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
-  "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
-  "version" "1.1.1"
+function-bind@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
+  integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
 
-"gensync@^1.0.0-beta.2":
-  "integrity" "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
-  "resolved" "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
-  "version" "1.0.0-beta.2"
+gensync@^1.0.0-beta.2:
+  version "1.0.0-beta.2"
+  resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
+  integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
 
-"get-caller-file@^2.0.1", "get-caller-file@^2.0.5":
-  "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
-  "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
-  "version" "2.0.5"
+get-caller-file@^2.0.1, get-caller-file@^2.0.5:
+  version "2.0.5"
+  resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
+  integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
 
-"get-intrinsic@^1.0.2":
-  "integrity" "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw=="
-  "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz"
-  "version" "1.2.1"
+get-intrinsic@^1.0.2:
+  version "1.2.1"
+  resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz"
+  integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==
   dependencies:
-    "function-bind" "^1.1.1"
-    "has" "^1.0.3"
-    "has-proto" "^1.0.1"
-    "has-symbols" "^1.0.3"
+    function-bind "^1.1.1"
+    has "^1.0.3"
+    has-proto "^1.0.1"
+    has-symbols "^1.0.3"
 
-"glob-parent@^5.1.2":
-  "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="
-  "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
-  "version" "5.1.2"
+glob-parent@^5.1.2, glob-parent@~5.1.2:
+  version "5.1.2"
+  resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
+  integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
   dependencies:
-    "is-glob" "^4.0.1"
+    is-glob "^4.0.1"
 
-"glob-parent@^6.0.1", "glob-parent@^6.0.2":
-  "integrity" "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="
-  "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz"
-  "version" "6.0.2"
+glob-parent@^6.0.1, glob-parent@^6.0.2:
+  version "6.0.2"
+  resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz"
+  integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
   dependencies:
-    "is-glob" "^4.0.3"
+    is-glob "^4.0.3"
 
-"glob-parent@~5.1.2":
-  "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="
-  "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
-  "version" "5.1.2"
+glob@^7.1.2, glob@^7.1.3, glob@^7.1.7:
+  version "7.2.3"
+  resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
+  integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
   dependencies:
-    "is-glob" "^4.0.1"
+    fs.realpath "^1.0.0"
+    inflight "^1.0.4"
+    inherits "2"
+    minimatch "^3.1.1"
+    once "^1.3.0"
+    path-is-absolute "^1.0.0"
 
-"glob@^7.1.2", "glob@^7.1.3", "glob@^7.1.7":
-  "integrity" "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="
-  "resolved" "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
-  "version" "7.2.3"
+globals@^11.1.0:
+  version "11.12.0"
+  resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"
+  integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
+
+globals@^13.19.0:
+  version "13.20.0"
+  resolved "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz"
+  integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==
   dependencies:
-    "fs.realpath" "^1.0.0"
-    "inflight" "^1.0.4"
-    "inherits" "2"
-    "minimatch" "^3.1.1"
-    "once" "^1.3.0"
-    "path-is-absolute" "^1.0.0"
+    type-fest "^0.20.2"
 
-"globals@^11.1.0":
-  "integrity" "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
-  "resolved" "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"
-  "version" "11.12.0"
-
-"globals@^13.19.0":
-  "integrity" "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ=="
-  "resolved" "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz"
-  "version" "13.20.0"
+good-listener@^1.2.2:
+  version "1.2.2"
+  resolved "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz"
+  integrity sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==
   dependencies:
-    "type-fest" "^0.20.2"
+    delegate "^3.1.2"
 
-"good-listener@^1.2.2":
-  "integrity" "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw=="
-  "resolved" "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz"
-  "version" "1.2.2"
+graceful-fs@^4.1.6, graceful-fs@^4.2.0:
+  version "4.2.11"
+  resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz"
+  integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
+
+graphemer@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz"
+  integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
+
+has-flag@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
+  integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
+
+has-flag@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
+  integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
+has-proto@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz"
+  integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==
+
+has-symbols@^1.0.2, has-symbols@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz"
+  integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
+
+has-tostringtag@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz"
+  integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
   dependencies:
-    "delegate" "^3.1.2"
+    has-symbols "^1.0.2"
 
-"graceful-fs@^4.1.6", "graceful-fs@^4.2.0":
-  "integrity" "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
-  "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz"
-  "version" "4.2.11"
-
-"graphemer@^1.4.0":
-  "integrity" "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="
-  "resolved" "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz"
-  "version" "1.4.0"
-
-"has-flag@^3.0.0":
-  "integrity" "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
-  "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
-  "version" "3.0.0"
-
-"has-flag@^4.0.0":
-  "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
-  "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
-  "version" "4.0.0"
-
-"has-proto@^1.0.1":
-  "integrity" "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg=="
-  "resolved" "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz"
-  "version" "1.0.1"
-
-"has-symbols@^1.0.2", "has-symbols@^1.0.3":
-  "integrity" "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
-  "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz"
-  "version" "1.0.3"
-
-"has-tostringtag@^1.0.0":
-  "integrity" "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ=="
-  "resolved" "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz"
-  "version" "1.0.0"
+has@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz"
+  integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
   dependencies:
-    "has-symbols" "^1.0.2"
+    function-bind "^1.1.1"
 
-"has@^1.0.3":
-  "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw=="
-  "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz"
-  "version" "1.0.3"
+hex-color-regex@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz"
+  integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
+
+hsl-regex@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz"
+  integrity sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A==
+
+hsla-regex@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz"
+  integrity sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA==
+
+html-tags@^3.1.0:
+  version "3.3.1"
+  resolved "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz"
+  integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==
+
+html2canvas@^1.4.1:
+  version "1.4.1"
+  resolved "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz"
+  integrity sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==
   dependencies:
-    "function-bind" "^1.1.1"
+    css-line-break "^2.1.0"
+    text-segmentation "^1.0.3"
 
-"hex-color-regex@^1.1.0":
-  "integrity" "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ=="
-  "resolved" "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz"
-  "version" "1.1.0"
+ignore@^5.2.0:
+  version "5.2.4"
+  resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz"
+  integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
 
-"hsl-regex@^1.0.0":
-  "integrity" "sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A=="
-  "resolved" "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz"
-  "version" "1.0.0"
+image-conversion@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.npmjs.org/image-conversion/-/image-conversion-2.1.1.tgz"
+  integrity sha512-hnMOmP7q2jxA+52FZ+wHNhg3fdFRlgfngsQH2JQHEQkafY7tj/8F15e6Rv/RxDegc872jvyaRHwMbkTZK1Cjbg==
 
-"hsla-regex@^1.0.0":
-  "integrity" "sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA=="
-  "resolved" "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz"
-  "version" "1.0.0"
+immutable@^4.0.0:
+  version "4.3.0"
+  resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz"
+  integrity sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==
 
-"html-tags@^3.1.0":
-  "integrity" "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ=="
-  "resolved" "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz"
-  "version" "3.3.1"
-
-"html2canvas@^1.4.1":
-  "integrity" "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA=="
-  "resolved" "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz"
-  "version" "1.4.1"
+import-fresh@^3.0.0, import-fresh@^3.2.1:
+  version "3.3.0"
+  resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz"
+  integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
   dependencies:
-    "css-line-break" "^2.1.0"
-    "text-segmentation" "^1.0.3"
+    parent-module "^1.0.0"
+    resolve-from "^4.0.0"
 
-"ignore@^5.2.0":
-  "integrity" "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ=="
-  "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz"
-  "version" "5.2.4"
+imurmurhash@^0.1.4:
+  version "0.1.4"
+  resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"
+  integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
 
-"image-conversion@^2.1.1":
-  "integrity" "sha512-hnMOmP7q2jxA+52FZ+wHNhg3fdFRlgfngsQH2JQHEQkafY7tj/8F15e6Rv/RxDegc872jvyaRHwMbkTZK1Cjbg=="
-  "resolved" "https://registry.npmjs.org/image-conversion/-/image-conversion-2.1.1.tgz"
-  "version" "2.1.1"
-
-"immutable@^4.0.0":
-  "integrity" "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg=="
-  "resolved" "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz"
-  "version" "4.3.0"
-
-"import-fresh@^3.0.0", "import-fresh@^3.2.1":
-  "integrity" "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw=="
-  "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz"
-  "version" "3.3.0"
+inflight@^1.0.4:
+  version "1.0.6"
+  resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
+  integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
   dependencies:
-    "parent-module" "^1.0.0"
-    "resolve-from" "^4.0.0"
+    once "^1.3.0"
+    wrappy "1"
 
-"imurmurhash@^0.1.4":
-  "integrity" "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="
-  "resolved" "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"
-  "version" "0.1.4"
+inherits@2:
+  version "2.0.4"
+  resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
+  integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
 
-"inflight@^1.0.4":
-  "integrity" "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="
-  "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
-  "version" "1.0.6"
+is-arrayish@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
+  integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
+
+is-arrayish@^0.3.1:
+  version "0.3.2"
+  resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz"
+  integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
+
+is-binary-path@~2.1.0:
+  version "2.1.0"
+  resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz"
+  integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
   dependencies:
-    "once" "^1.3.0"
-    "wrappy" "1"
+    binary-extensions "^2.0.0"
 
-"inherits@2":
-  "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
-  "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
-  "version" "2.0.4"
-
-"is-arrayish@^0.2.1":
-  "integrity" "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
-  "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
-  "version" "0.2.1"
-
-"is-arrayish@^0.3.1":
-  "integrity" "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
-  "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz"
-  "version" "0.3.2"
-
-"is-binary-path@~2.1.0":
-  "integrity" "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="
-  "resolved" "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz"
-  "version" "2.1.0"
+is-color-stop@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz"
+  integrity sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA==
   dependencies:
-    "binary-extensions" "^2.0.0"
+    css-color-names "^0.0.4"
+    hex-color-regex "^1.1.0"
+    hsl-regex "^1.0.0"
+    hsla-regex "^1.0.0"
+    rgb-regex "^1.0.1"
+    rgba-regex "^1.0.0"
 
-"is-color-stop@^1.1.0":
-  "integrity" "sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA=="
-  "resolved" "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz"
-  "version" "1.1.0"
+is-core-module@^2.11.0:
+  version "2.12.1"
+  resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz"
+  integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==
   dependencies:
-    "css-color-names" "^0.0.4"
-    "hex-color-regex" "^1.1.0"
-    "hsl-regex" "^1.0.0"
-    "hsla-regex" "^1.0.0"
-    "rgb-regex" "^1.0.1"
-    "rgba-regex" "^1.0.0"
+    has "^1.0.3"
 
-"is-core-module@^2.11.0":
-  "integrity" "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg=="
-  "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz"
-  "version" "2.12.1"
+is-docker@^2.0.0, is-docker@^2.1.1:
+  version "2.2.1"
+  resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz"
+  integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
+
+is-expression@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz"
+  integrity sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==
   dependencies:
-    "has" "^1.0.3"
+    acorn "^7.1.1"
+    object-assign "^4.1.1"
 
-"is-docker@^2.0.0", "is-docker@^2.1.1":
-  "integrity" "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="
-  "resolved" "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz"
-  "version" "2.2.1"
+is-extglob@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
+  integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
 
-"is-expression@^4.0.0":
-  "integrity" "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A=="
-  "resolved" "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz"
-  "version" "4.0.0"
+is-fullwidth-code-point@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"
+  integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
+  version "4.0.3"
+  resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
+  integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
   dependencies:
-    "acorn" "^7.1.1"
-    "object-assign" "^4.1.1"
+    is-extglob "^2.1.1"
 
-"is-extglob@^2.1.1":
-  "integrity" "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
-  "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
-  "version" "2.1.1"
+is-number@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
+  integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
 
-"is-fullwidth-code-point@^3.0.0":
-  "integrity" "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
-  "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"
-  "version" "3.0.0"
+is-path-inside@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz"
+  integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
 
-"is-glob@^4.0.0", "is-glob@^4.0.1", "is-glob@^4.0.3", "is-glob@~4.0.1":
-  "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="
-  "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
-  "version" "4.0.3"
+is-promise@^2.0.0:
+  version "2.2.2"
+  resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz"
+  integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==
+
+is-regex@^1.0.3:
+  version "1.1.4"
+  resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz"
+  integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
   dependencies:
-    "is-extglob" "^2.1.1"
+    call-bind "^1.0.2"
+    has-tostringtag "^1.0.0"
 
-"is-number@^7.0.0":
-  "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
-  "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
-  "version" "7.0.0"
-
-"is-path-inside@^3.0.3":
-  "integrity" "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="
-  "resolved" "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz"
-  "version" "3.0.3"
-
-"is-promise@^2.0.0":
-  "integrity" "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
-  "resolved" "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz"
-  "version" "2.2.2"
-
-"is-regex@^1.0.3":
-  "integrity" "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg=="
-  "resolved" "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz"
-  "version" "1.1.4"
+is-wsl@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz"
+  integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
   dependencies:
-    "call-bind" "^1.0.2"
-    "has-tostringtag" "^1.0.0"
+    is-docker "^2.0.0"
 
-"is-wsl@^2.2.0":
-  "integrity" "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww=="
-  "resolved" "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz"
-  "version" "2.2.0"
+isexe@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
+  integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+
+js-md5@^0.7.3:
+  version "0.7.3"
+  resolved "https://registry.npmjs.org/js-md5/-/js-md5-0.7.3.tgz"
+  integrity sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==
+
+js-stringify@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz"
+  integrity sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==
+
+js-tokens@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
+  integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+js-yaml@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz"
+  integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
   dependencies:
-    "is-docker" "^2.0.0"
+    argparse "^2.0.1"
 
-"isexe@^2.0.0":
-  "integrity" "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
-  "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
-  "version" "2.0.0"
+jsesc@^2.5.1:
+  version "2.5.2"
+  resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz"
+  integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
 
-"js-md5@^0.7.3":
-  "integrity" "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ=="
-  "resolved" "https://registry.npmjs.org/js-md5/-/js-md5-0.7.3.tgz"
-  "version" "0.7.3"
+json-parse-even-better-errors@^2.3.0:
+  version "2.3.1"
+  resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz"
+  integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
 
-"js-stringify@^1.0.2":
-  "integrity" "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g=="
-  "resolved" "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz"
-  "version" "1.0.2"
+json-schema-traverse@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
+  integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
 
-"js-tokens@^4.0.0":
-  "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
-  "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
-  "version" "4.0.0"
+json-stable-stringify-without-jsonify@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
+  integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
 
-"js-yaml@^4.1.0":
-  "integrity" "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="
-  "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz"
-  "version" "4.1.0"
+json5@^2.2.2:
+  version "2.2.3"
+  resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz"
+  integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
+
+jsonfile@^6.0.1:
+  version "6.1.0"
+  resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz"
+  integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
   dependencies:
-    "argparse" "^2.0.1"
-
-"jsesc@^2.5.1":
-  "integrity" "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
-  "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz"
-  "version" "2.5.2"
-
-"json-parse-even-better-errors@^2.3.0":
-  "integrity" "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
-  "resolved" "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz"
-  "version" "2.3.1"
-
-"json-schema-traverse@^0.4.1":
-  "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
-  "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
-  "version" "0.4.1"
-
-"json-stable-stringify-without-jsonify@^1.0.1":
-  "integrity" "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
-  "resolved" "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
-  "version" "1.0.1"
-
-"json5@^2.2.2":
-  "integrity" "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="
-  "resolved" "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz"
-  "version" "2.2.3"
-
-"jsonfile@^6.0.1":
-  "integrity" "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ=="
-  "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz"
-  "version" "6.1.0"
-  dependencies:
-    "universalify" "^2.0.0"
+    universalify "^2.0.0"
   optionalDependencies:
-    "graceful-fs" "^4.1.6"
+    graceful-fs "^4.1.6"
 
-"jsqr@^1.4.0":
-  "integrity" "sha512-dxLob7q65Xg2DvstYkRpkYtmKm2sPJ9oFhrhmudT1dZvNFFTlroai3AWSpLey/w5vMcLBXRgOJsbXpdN9HzU/A=="
-  "resolved" "https://registry.npmjs.org/jsqr/-/jsqr-1.4.0.tgz"
-  "version" "1.4.0"
+jsqr@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.npmjs.org/jsqr/-/jsqr-1.4.0.tgz"
+  integrity sha512-dxLob7q65Xg2DvstYkRpkYtmKm2sPJ9oFhrhmudT1dZvNFFTlroai3AWSpLey/w5vMcLBXRgOJsbXpdN9HzU/A==
 
-"jstransformer@1.0.0":
-  "integrity" "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A=="
-  "resolved" "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz"
-  "version" "1.0.0"
+jstransformer@1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz"
+  integrity sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==
   dependencies:
-    "is-promise" "^2.0.0"
-    "promise" "^7.0.1"
+    is-promise "^2.0.0"
+    promise "^7.0.1"
 
-"klinecharts@^8.6.3":
-  "integrity" "sha512-hGDtWiMNywEDneZFmt+vZ6tOYutCDWV5FPBcXcn7L8kGwe73Q5yJayk8UzP9pIQSBWyxswWIySKh/BVFA6GhuQ=="
-  "resolved" "https://registry.npmjs.org/klinecharts/-/klinecharts-8.6.3.tgz"
-  "version" "8.6.3"
+klinecharts@^8.6.3:
+  version "8.6.3"
+  resolved "https://registry.npmjs.org/klinecharts/-/klinecharts-8.6.3.tgz"
+  integrity sha512-hGDtWiMNywEDneZFmt+vZ6tOYutCDWV5FPBcXcn7L8kGwe73Q5yJayk8UzP9pIQSBWyxswWIySKh/BVFA6GhuQ==
 
-"levn@^0.4.1":
-  "integrity" "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="
-  "resolved" "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz"
-  "version" "0.4.1"
+levn@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz"
+  integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
   dependencies:
-    "prelude-ls" "^1.2.1"
-    "type-check" "~0.4.0"
+    prelude-ls "^1.2.1"
+    type-check "~0.4.0"
 
-"lilconfig@^2.0.5":
-  "integrity" "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ=="
-  "resolved" "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz"
-  "version" "2.1.0"
+lilconfig@^2.0.5:
+  version "2.1.0"
+  resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz"
+  integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==
 
-"lines-and-columns@^1.1.6":
-  "integrity" "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
-  "resolved" "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz"
-  "version" "1.2.4"
+lines-and-columns@^1.1.6:
+  version "1.2.4"
+  resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz"
+  integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
 
-"local-pkg@^0.4.2", "local-pkg@^0.4.3":
-  "integrity" "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g=="
-  "resolved" "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz"
-  "version" "0.4.3"
+local-pkg@^0.4.2, local-pkg@^0.4.3:
+  version "0.4.3"
+  resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz"
+  integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==
 
-"locate-path@^5.0.0":
-  "integrity" "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="
-  "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz"
-  "version" "5.0.0"
+locate-path@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz"
+  integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
   dependencies:
-    "p-locate" "^4.1.0"
+    p-locate "^4.1.0"
 
-"locate-path@^6.0.0":
-  "integrity" "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="
-  "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz"
-  "version" "6.0.0"
+locate-path@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz"
+  integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
   dependencies:
-    "p-locate" "^5.0.0"
+    p-locate "^5.0.0"
 
-"lodash.merge@^4.6.2":
-  "integrity" "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
-  "resolved" "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz"
-  "version" "4.6.2"
+lodash.merge@^4.6.2:
+  version "4.6.2"
+  resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz"
+  integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
 
-"lodash.topath@^4.5.2":
-  "integrity" "sha512-1/W4dM+35DwvE/iEd1M9ekewOSTlpFekhw9mhAtrwjVqUr83/ilQiyAvmg4tVX7Unkcfl1KC+i9WdaT4B6aQcg=="
-  "resolved" "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz"
-  "version" "4.5.2"
+lodash.topath@^4.5.2:
+  version "4.5.2"
+  resolved "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz"
+  integrity sha512-1/W4dM+35DwvE/iEd1M9ekewOSTlpFekhw9mhAtrwjVqUr83/ilQiyAvmg4tVX7Unkcfl1KC+i9WdaT4B6aQcg==
 
-"lodash@^4.17.21":
-  "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
-  "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
-  "version" "4.17.21"
+lodash@^4.17.21:
+  version "4.17.21"
+  resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
+  integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
 
-"lower-case@^2.0.2":
-  "integrity" "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg=="
-  "resolved" "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz"
-  "version" "2.0.2"
+lower-case@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz"
+  integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==
   dependencies:
-    "tslib" "^2.0.3"
+    tslib "^2.0.3"
 
-"lru-cache@^5.1.1":
-  "integrity" "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="
-  "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz"
-  "version" "5.1.1"
+lru-cache@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz"
+  integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
   dependencies:
-    "yallist" "^3.0.2"
+    yallist "^3.0.2"
 
-"lru-cache@^6.0.0":
-  "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="
-  "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"
-  "version" "6.0.0"
+lru-cache@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"
+  integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
   dependencies:
-    "yallist" "^4.0.0"
+    yallist "^4.0.0"
 
-"magic-string-ast@^0.1.2":
-  "integrity" "sha512-P53AZrzq7hclCU6HWj88xNZHmP15DKjMmK/vBytO1qnpYP3ul4IEZlyCE0aU3JRnmgWmZPmoTKj4Bls7v0pMyA=="
-  "resolved" "https://registry.npmjs.org/magic-string-ast/-/magic-string-ast-0.1.2.tgz"
-  "version" "0.1.2"
+magic-string-ast@^0.1.2:
+  version "0.1.2"
+  resolved "https://registry.npmjs.org/magic-string-ast/-/magic-string-ast-0.1.2.tgz"
+  integrity sha512-P53AZrzq7hclCU6HWj88xNZHmP15DKjMmK/vBytO1qnpYP3ul4IEZlyCE0aU3JRnmgWmZPmoTKj4Bls7v0pMyA==
   dependencies:
-    "magic-string" "^0.30.0"
+    magic-string "^0.30.0"
 
-"magic-string@^0.27.0":
-  "integrity" "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA=="
-  "resolved" "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz"
-  "version" "0.27.0"
+magic-string@^0.27.0:
+  version "0.27.0"
+  resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz"
+  integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==
   dependencies:
     "@jridgewell/sourcemap-codec" "^1.4.13"
 
-"magic-string@^0.30.0":
-  "integrity" "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ=="
-  "resolved" "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz"
-  "version" "0.30.0"
+magic-string@^0.30.0:
+  version "0.30.0"
+  resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz"
+  integrity sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==
   dependencies:
     "@jridgewell/sourcemap-codec" "^1.4.13"
 
-"merge2@^1.3.0":
-  "integrity" "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
-  "resolved" "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
-  "version" "1.4.1"
+merge2@^1.3.0:
+  version "1.4.1"
+  resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
+  integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
 
-"micromatch@^4.0.4":
-  "integrity" "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA=="
-  "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz"
-  "version" "4.0.5"
+micromatch@^4.0.4:
+  version "4.0.5"
+  resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz"
+  integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
   dependencies:
-    "braces" "^3.0.2"
-    "picomatch" "^2.3.1"
+    braces "^3.0.2"
+    picomatch "^2.3.1"
 
-"mime-db@1.52.0":
-  "integrity" "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
-  "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
-  "version" "1.52.0"
+mime-db@1.52.0:
+  version "1.52.0"
+  resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
+  integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
 
-"mime-types@^2.1.12":
-  "integrity" "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="
-  "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
-  "version" "2.1.35"
+mime-types@^2.1.12:
+  version "2.1.35"
+  resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
+  integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
   dependencies:
-    "mime-db" "1.52.0"
+    mime-db "1.52.0"
 
-"minimatch@^3.0.5", "minimatch@^3.1.1", "minimatch@^3.1.2":
-  "integrity" "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="
-  "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
-  "version" "3.1.2"
+minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
+  version "3.1.2"
+  resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
+  integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
   dependencies:
-    "brace-expansion" "^1.1.7"
+    brace-expansion "^1.1.7"
 
-"minimatch@^5.1.1":
-  "integrity" "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g=="
-  "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz"
-  "version" "5.1.6"
+minimatch@^5.1.1:
+  version "5.1.6"
+  resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz"
+  integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==
   dependencies:
-    "brace-expansion" "^2.0.1"
+    brace-expansion "^2.0.1"
 
-"minimist@^1.2.6":
-  "integrity" "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
-  "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz"
-  "version" "1.2.8"
+minimist@^1.2.6:
+  version "1.2.8"
+  resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz"
+  integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
 
-"modern-normalize@^1.1.0":
-  "integrity" "sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA=="
-  "resolved" "https://registry.npmjs.org/modern-normalize/-/modern-normalize-1.1.0.tgz"
-  "version" "1.1.0"
+modern-normalize@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.npmjs.org/modern-normalize/-/modern-normalize-1.1.0.tgz"
+  integrity sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA==
 
-"ms@2.1.2":
-  "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
-  "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
-  "version" "2.1.2"
+ms@2.1.2:
+  version "2.1.2"
+  resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
+  integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
 
-"nanoid@^3.3.6":
-  "integrity" "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA=="
-  "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz"
-  "version" "3.3.6"
+nanoid@^3.3.6:
+  version "3.3.6"
+  resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz"
+  integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
 
-"natural-compare@^1.4.0":
-  "integrity" "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
-  "resolved" "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
-  "version" "1.4.0"
+natural-compare@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
+  integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
 
-"no-case@^3.0.4":
-  "integrity" "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg=="
-  "resolved" "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz"
-  "version" "3.0.4"
+no-case@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz"
+  integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==
   dependencies:
-    "lower-case" "^2.0.2"
-    "tslib" "^2.0.3"
+    lower-case "^2.0.2"
+    tslib "^2.0.3"
 
-"node-emoji@^1.11.0":
-  "integrity" "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A=="
-  "resolved" "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz"
-  "version" "1.11.0"
+node-emoji@^1.11.0:
+  version "1.11.0"
+  resolved "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz"
+  integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==
   dependencies:
-    "lodash" "^4.17.21"
+    lodash "^4.17.21"
 
-"node-releases@^2.0.12":
-  "integrity" "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ=="
-  "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz"
-  "version" "2.0.12"
+node-releases@^2.0.12:
+  version "2.0.12"
+  resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz"
+  integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==
 
-"normalize-path@^3.0.0", "normalize-path@~3.0.0":
-  "integrity" "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
-  "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
-  "version" "3.0.0"
+normalize-path@^3.0.0, normalize-path@~3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
+  integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
 
-"normalize-range@^0.1.2":
-  "integrity" "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA=="
-  "resolved" "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz"
-  "version" "0.1.2"
+normalize-range@^0.1.2:
+  version "0.1.2"
+  resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz"
+  integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
 
-"nth-check@^2.0.1":
-  "integrity" "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="
-  "resolved" "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz"
-  "version" "2.1.1"
+nth-check@^2.0.1:
+  version "2.1.1"
+  resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz"
+  integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
   dependencies:
-    "boolbase" "^1.0.0"
+    boolbase "^1.0.0"
 
-"num2fraction@^1.2.2":
-  "integrity" "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg=="
-  "resolved" "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz"
-  "version" "1.2.2"
+num2fraction@^1.2.2:
+  version "1.2.2"
+  resolved "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz"
+  integrity sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==
 
-"object-assign@^4.1.1":
-  "integrity" "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
-  "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
-  "version" "4.1.1"
+object-assign@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+  integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
 
-"object-hash@^2.2.0":
-  "integrity" "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw=="
-  "resolved" "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz"
-  "version" "2.2.0"
+object-hash@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz"
+  integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==
 
-"object-inspect@^1.9.0":
-  "integrity" "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g=="
-  "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz"
-  "version" "1.12.3"
+object-inspect@^1.9.0:
+  version "1.12.3"
+  resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz"
+  integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==
 
-"once@^1.3.0":
-  "integrity" "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="
-  "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
-  "version" "1.4.0"
+once@^1.3.0:
+  version "1.4.0"
+  resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
+  integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
   dependencies:
-    "wrappy" "1"
+    wrappy "1"
 
-"open@^8.4.0":
-  "integrity" "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ=="
-  "resolved" "https://registry.npmjs.org/open/-/open-8.4.2.tgz"
-  "version" "8.4.2"
+open@^8.4.0:
+  version "8.4.2"
+  resolved "https://registry.npmjs.org/open/-/open-8.4.2.tgz"
+  integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==
   dependencies:
-    "define-lazy-prop" "^2.0.0"
-    "is-docker" "^2.1.1"
-    "is-wsl" "^2.2.0"
+    define-lazy-prop "^2.0.0"
+    is-docker "^2.1.1"
+    is-wsl "^2.2.0"
 
-"optionator@^0.9.1":
-  "integrity" "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw=="
-  "resolved" "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz"
-  "version" "0.9.1"
+optionator@^0.9.1:
+  version "0.9.1"
+  resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz"
+  integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
   dependencies:
-    "deep-is" "^0.1.3"
-    "fast-levenshtein" "^2.0.6"
-    "levn" "^0.4.1"
-    "prelude-ls" "^1.2.1"
-    "type-check" "^0.4.0"
-    "word-wrap" "^1.2.3"
+    deep-is "^0.1.3"
+    fast-levenshtein "^2.0.6"
+    levn "^0.4.1"
+    prelude-ls "^1.2.1"
+    type-check "^0.4.0"
+    word-wrap "^1.2.3"
 
-"p-limit@^2.2.0":
-  "integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="
-  "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz"
-  "version" "2.3.0"
+p-limit@^2.2.0:
+  version "2.3.0"
+  resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz"
+  integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
   dependencies:
-    "p-try" "^2.0.0"
+    p-try "^2.0.0"
 
-"p-limit@^3.0.2":
-  "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="
-  "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz"
-  "version" "3.1.0"
+p-limit@^3.0.2:
+  version "3.1.0"
+  resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz"
+  integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
   dependencies:
-    "yocto-queue" "^0.1.0"
+    yocto-queue "^0.1.0"
 
-"p-locate@^4.1.0":
-  "integrity" "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="
-  "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz"
-  "version" "4.1.0"
+p-locate@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz"
+  integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
   dependencies:
-    "p-limit" "^2.2.0"
+    p-limit "^2.2.0"
 
-"p-locate@^5.0.0":
-  "integrity" "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="
-  "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz"
-  "version" "5.0.0"
+p-locate@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz"
+  integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
   dependencies:
-    "p-limit" "^3.0.2"
+    p-limit "^3.0.2"
 
-"p-try@^2.0.0":
-  "integrity" "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
-  "resolved" "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz"
-  "version" "2.2.0"
+p-try@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz"
+  integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
 
-"param-case@^3.0.4":
-  "integrity" "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A=="
-  "resolved" "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz"
-  "version" "3.0.4"
+param-case@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz"
+  integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==
   dependencies:
-    "dot-case" "^3.0.4"
-    "tslib" "^2.0.3"
+    dot-case "^3.0.4"
+    tslib "^2.0.3"
 
-"parent-module@^1.0.0":
-  "integrity" "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="
-  "resolved" "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"
-  "version" "1.0.1"
+parent-module@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"
+  integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
   dependencies:
-    "callsites" "^3.0.0"
+    callsites "^3.0.0"
 
-"parse-json@^5.0.0":
-  "integrity" "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg=="
-  "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz"
-  "version" "5.2.0"
+parse-json@^5.0.0:
+  version "5.2.0"
+  resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz"
+  integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
   dependencies:
     "@babel/code-frame" "^7.0.0"
-    "error-ex" "^1.3.1"
-    "json-parse-even-better-errors" "^2.3.0"
-    "lines-and-columns" "^1.1.6"
+    error-ex "^1.3.1"
+    json-parse-even-better-errors "^2.3.0"
+    lines-and-columns "^1.1.6"
 
-"pascal-case@^3.1.2":
-  "integrity" "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g=="
-  "resolved" "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz"
-  "version" "3.1.2"
+pascal-case@^3.1.2:
+  version "3.1.2"
+  resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz"
+  integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==
   dependencies:
-    "no-case" "^3.0.4"
-    "tslib" "^2.0.3"
+    no-case "^3.0.4"
+    tslib "^2.0.3"
 
-"path-exists@^4.0.0":
-  "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
-  "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"
-  "version" "4.0.0"
+path-exists@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"
+  integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
 
-"path-is-absolute@^1.0.0":
-  "integrity" "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
-  "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
-  "version" "1.0.1"
+path-is-absolute@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+  integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
 
-"path-key@^3.1.0":
-  "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
-  "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
-  "version" "3.1.1"
+path-key@^3.1.0:
+  version "3.1.1"
+  resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
+  integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
 
-"path-parse@^1.0.7":
-  "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
-  "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
-  "version" "1.0.7"
+path-parse@^1.0.7:
+  version "1.0.7"
+  resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
+  integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
 
-"path-type@^4.0.0":
-  "integrity" "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
-  "resolved" "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz"
-  "version" "4.0.0"
+path-type@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz"
+  integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
 
-"picocolors@^0.2.1":
-  "integrity" "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA=="
-  "resolved" "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz"
-  "version" "0.2.1"
+picocolors@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz"
+  integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==
 
-"picocolors@^1.0.0":
-  "integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
-  "resolved" "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
-  "version" "1.0.0"
+picocolors@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
+  integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
 
-"picomatch@^2.0.4", "picomatch@^2.2.1", "picomatch@^2.3.1":
-  "integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
-  "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
-  "version" "2.3.1"
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
+  version "2.3.1"
+  resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
+  integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
 
-"pinia-plugin-persistedstate@^3.0.2":
-  "integrity" "sha512-8UN+vYMEPBdgNLwceY08mi5olI0wkYaEb8b6hD6xW7SnBRuPydWHlEhZvUWgNb/ibuf4PvufpvtS+dmhYjJQOw=="
-  "resolved" "https://registry.npmjs.org/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-3.1.0.tgz"
-  "version" "3.1.0"
+pinia-plugin-persistedstate@^3.0.2:
+  version "3.1.0"
+  resolved "https://registry.npmjs.org/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-3.1.0.tgz"
+  integrity sha512-8UN+vYMEPBdgNLwceY08mi5olI0wkYaEb8b6hD6xW7SnBRuPydWHlEhZvUWgNb/ibuf4PvufpvtS+dmhYjJQOw==
 
-"pinia@^2.0.0", "pinia@2.0.23":
-  "integrity" "sha512-N15hFf4o5STrxpNrib1IEb1GOArvPYf1zPvQVRGOO1G1d74Ak0J0lVyalX/SmrzdT4Q0nlEFjbURsmBmIGUR5Q=="
-  "resolved" "https://registry.npmjs.org/pinia/-/pinia-2.0.23.tgz"
-  "version" "2.0.23"
+pinia@2.0.23:
+  version "2.0.23"
+  resolved "https://registry.npmjs.org/pinia/-/pinia-2.0.23.tgz"
+  integrity sha512-N15hFf4o5STrxpNrib1IEb1GOArvPYf1zPvQVRGOO1G1d74Ak0J0lVyalX/SmrzdT4Q0nlEFjbURsmBmIGUR5Q==
   dependencies:
     "@vue/devtools-api" "^6.4.4"
-    "vue-demi" "*"
+    vue-demi "*"
 
-"pngjs@^5.0.0":
-  "integrity" "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw=="
-  "resolved" "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz"
-  "version" "5.0.0"
+pngjs@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz"
+  integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==
 
-"postcss-functions@^3":
-  "integrity" "sha512-N5yWXWKA+uhpLQ9ZhBRl2bIAdM6oVJYpDojuI1nF2SzXBimJcdjFwiAouBVbO5VuOF3qA6BSFWFc3wXbbj72XQ=="
-  "resolved" "https://registry.npmjs.org/postcss-functions/-/postcss-functions-3.0.0.tgz"
-  "version" "3.0.0"
+postcss-functions@^3:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/postcss-functions/-/postcss-functions-3.0.0.tgz"
+  integrity sha512-N5yWXWKA+uhpLQ9ZhBRl2bIAdM6oVJYpDojuI1nF2SzXBimJcdjFwiAouBVbO5VuOF3qA6BSFWFc3wXbbj72XQ==
   dependencies:
-    "glob" "^7.1.2"
-    "object-assign" "^4.1.1"
-    "postcss" "^6.0.9"
-    "postcss-value-parser" "^3.3.0"
+    glob "^7.1.2"
+    object-assign "^4.1.1"
+    postcss "^6.0.9"
+    postcss-value-parser "^3.3.0"
 
-"postcss-js@^2":
-  "integrity" "sha512-zS59pAk3deu6dVHyrGqmC3oDXBdNdajk4k1RyxeVXCrcEDBUBHoIhE4QTsmhxgzXxsaqFDAkUZfmMa5f/N/79w=="
-  "resolved" "https://registry.npmjs.org/postcss-js/-/postcss-js-2.0.3.tgz"
-  "version" "2.0.3"
+postcss-js@^2:
+  version "2.0.3"
+  resolved "https://registry.npmjs.org/postcss-js/-/postcss-js-2.0.3.tgz"
+  integrity sha512-zS59pAk3deu6dVHyrGqmC3oDXBdNdajk4k1RyxeVXCrcEDBUBHoIhE4QTsmhxgzXxsaqFDAkUZfmMa5f/N/79w==
   dependencies:
-    "camelcase-css" "^2.0.1"
-    "postcss" "^7.0.18"
+    camelcase-css "^2.0.1"
+    postcss "^7.0.18"
 
-"postcss-load-config@^3.1.0":
-  "integrity" "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg=="
-  "resolved" "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz"
-  "version" "3.1.4"
+postcss-load-config@^3.1.0:
+  version "3.1.4"
+  resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz"
+  integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==
   dependencies:
-    "lilconfig" "^2.0.5"
-    "yaml" "^1.10.2"
+    lilconfig "^2.0.5"
+    yaml "^1.10.2"
 
-"postcss-nested@^4":
-  "integrity" "sha512-rOv0W1HquRCamWy2kFl3QazJMMe1ku6rCFoAAH+9AcxdbpDeBr6k968MLWuLjvjMcGEip01ak09hKOEgpK9hvw=="
-  "resolved" "https://registry.npmjs.org/postcss-nested/-/postcss-nested-4.2.3.tgz"
-  "version" "4.2.3"
+postcss-nested@^4:
+  version "4.2.3"
+  resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-4.2.3.tgz"
+  integrity sha512-rOv0W1HquRCamWy2kFl3QazJMMe1ku6rCFoAAH+9AcxdbpDeBr6k968MLWuLjvjMcGEip01ak09hKOEgpK9hvw==
   dependencies:
-    "postcss" "^7.0.32"
-    "postcss-selector-parser" "^6.0.2"
+    postcss "^7.0.32"
+    postcss-selector-parser "^6.0.2"
 
-"postcss-pxtorem@^5.1.1":
-  "integrity" "sha512-uvgIujL/pn0GbZ+rczESD2orHsbXrrCqi+q9wJO8PCk3ZGCoVVtu5hZTbtk+tbZHZP5UkTfCvqOrTZs9Ncqfsg=="
-  "resolved" "https://registry.npmjs.org/postcss-pxtorem/-/postcss-pxtorem-5.1.1.tgz"
-  "version" "5.1.1"
+postcss-pxtorem@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.npmjs.org/postcss-pxtorem/-/postcss-pxtorem-5.1.1.tgz"
+  integrity sha512-uvgIujL/pn0GbZ+rczESD2orHsbXrrCqi+q9wJO8PCk3ZGCoVVtu5hZTbtk+tbZHZP5UkTfCvqOrTZs9Ncqfsg==
   dependencies:
-    "postcss" "^7.0.27"
+    postcss "^7.0.27"
 
-"postcss-selector-parser@^6.0.2", "postcss-selector-parser@^6.0.6", "postcss-selector-parser@^6.0.9":
-  "integrity" "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ=="
-  "resolved" "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz"
-  "version" "6.0.13"
+postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.9:
+  version "6.0.13"
+  resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz"
+  integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==
   dependencies:
-    "cssesc" "^3.0.0"
-    "util-deprecate" "^1.0.2"
+    cssesc "^3.0.0"
+    util-deprecate "^1.0.2"
 
-"postcss-value-parser@^3.3.0":
-  "integrity" "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
-  "resolved" "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz"
-  "version" "3.3.1"
+postcss-value-parser@^3.3.0:
+  version "3.3.1"
+  resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz"
+  integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
 
-"postcss-value-parser@^4.1.0", "postcss-value-parser@^4.2.0":
-  "integrity" "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
-  "resolved" "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
-  "version" "4.2.0"
+postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
+  integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
 
-"postcss@^6.0.9":
-  "integrity" "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag=="
-  "resolved" "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz"
-  "version" "6.0.23"
+postcss@^6.0.9:
+  version "6.0.23"
+  resolved "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz"
+  integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==
   dependencies:
-    "chalk" "^2.4.1"
-    "source-map" "^0.6.1"
-    "supports-color" "^5.4.0"
+    chalk "^2.4.1"
+    source-map "^0.6.1"
+    supports-color "^5.4.0"
 
-"postcss@^7.0.18":
-  "integrity" "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA=="
-  "resolved" "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz"
-  "version" "7.0.39"
+postcss@^7, postcss@^7.0.18, postcss@^7.0.27, postcss@^7.0.32:
+  version "7.0.39"
+  resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz"
+  integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==
   dependencies:
-    "picocolors" "^0.2.1"
-    "source-map" "^0.6.1"
+    picocolors "^0.2.1"
+    source-map "^0.6.1"
 
-"postcss@^7.0.27":
-  "integrity" "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA=="
-  "resolved" "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz"
-  "version" "7.0.39"
+postcss@^8.1.10, postcss@^8.3.5, postcss@^8.4.18, postcss@^8.4.19:
+  version "8.4.24"
+  resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz"
+  integrity sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==
   dependencies:
-    "picocolors" "^0.2.1"
-    "source-map" "^0.6.1"
+    nanoid "^3.3.6"
+    picocolors "^1.0.0"
+    source-map-js "^1.0.2"
 
-"postcss@^7", "postcss@^7.0.32":
-  "integrity" "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA=="
-  "resolved" "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz"
-  "version" "7.0.39"
+prelude-ls@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
+  integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+
+prettier-linter-helpers@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz"
+  integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
   dependencies:
-    "picocolors" "^0.2.1"
-    "source-map" "^0.6.1"
+    fast-diff "^1.1.2"
 
-"postcss@^8.1.0", "postcss@^8.1.10", "postcss@^8.3.5", "postcss@^8.4.18", "postcss@^8.4.19", "postcss@>=8.0.9":
-  "integrity" "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg=="
-  "resolved" "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz"
-  "version" "8.4.24"
+prettier@^2.7.1:
+  version "2.8.8"
+  resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz"
+  integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
+
+pretty-hrtime@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz"
+  integrity sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==
+
+promise@^7.0.1:
+  version "7.3.1"
+  resolved "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz"
+  integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
   dependencies:
-    "nanoid" "^3.3.6"
-    "picocolors" "^1.0.0"
-    "source-map-js" "^1.0.2"
+    asap "~2.0.3"
 
-"prelude-ls@^1.2.1":
-  "integrity" "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
-  "resolved" "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
-  "version" "1.2.1"
+proxy-from-env@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz"
+  integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
 
-"prettier-linter-helpers@^1.0.0":
-  "integrity" "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w=="
-  "resolved" "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz"
-  "version" "1.0.0"
+pug-attrs@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz"
+  integrity sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==
   dependencies:
-    "fast-diff" "^1.1.2"
+    constantinople "^4.0.1"
+    js-stringify "^1.0.2"
+    pug-runtime "^3.0.0"
 
-"prettier@^2.7.1", "prettier@>=2.0.0":
-  "integrity" "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q=="
-  "resolved" "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz"
-  "version" "2.8.8"
-
-"pretty-hrtime@^1.0.3":
-  "integrity" "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A=="
-  "resolved" "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz"
-  "version" "1.0.3"
-
-"promise@^7.0.1":
-  "integrity" "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg=="
-  "resolved" "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz"
-  "version" "7.3.1"
+pug-code-gen@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz"
+  integrity sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==
   dependencies:
-    "asap" "~2.0.3"
+    constantinople "^4.0.1"
+    doctypes "^1.1.0"
+    js-stringify "^1.0.2"
+    pug-attrs "^3.0.0"
+    pug-error "^2.0.0"
+    pug-runtime "^3.0.0"
+    void-elements "^3.1.0"
+    with "^7.0.0"
 
-"proxy-from-env@^1.1.0":
-  "integrity" "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
-  "resolved" "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz"
-  "version" "1.1.0"
+pug-error@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz"
+  integrity sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==
 
-"pug-attrs@^3.0.0":
-  "integrity" "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA=="
-  "resolved" "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz"
-  "version" "3.0.0"
+pug-filters@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz"
+  integrity sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==
   dependencies:
-    "constantinople" "^4.0.1"
-    "js-stringify" "^1.0.2"
-    "pug-runtime" "^3.0.0"
+    constantinople "^4.0.1"
+    jstransformer "1.0.0"
+    pug-error "^2.0.0"
+    pug-walk "^2.0.0"
+    resolve "^1.15.1"
 
-"pug-code-gen@^3.0.2":
-  "integrity" "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg=="
-  "resolved" "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz"
-  "version" "3.0.2"
+pug-lexer@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz"
+  integrity sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==
   dependencies:
-    "constantinople" "^4.0.1"
-    "doctypes" "^1.1.0"
-    "js-stringify" "^1.0.2"
-    "pug-attrs" "^3.0.0"
-    "pug-error" "^2.0.0"
-    "pug-runtime" "^3.0.0"
-    "void-elements" "^3.1.0"
-    "with" "^7.0.0"
+    character-parser "^2.2.0"
+    is-expression "^4.0.0"
+    pug-error "^2.0.0"
 
-"pug-error@^2.0.0":
-  "integrity" "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ=="
-  "resolved" "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz"
-  "version" "2.0.0"
-
-"pug-filters@^4.0.0":
-  "integrity" "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A=="
-  "resolved" "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz"
-  "version" "4.0.0"
+pug-linker@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz"
+  integrity sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==
   dependencies:
-    "constantinople" "^4.0.1"
-    "jstransformer" "1.0.0"
-    "pug-error" "^2.0.0"
-    "pug-walk" "^2.0.0"
-    "resolve" "^1.15.1"
+    pug-error "^2.0.0"
+    pug-walk "^2.0.0"
 
-"pug-lexer@^5.0.1":
-  "integrity" "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w=="
-  "resolved" "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz"
-  "version" "5.0.1"
+pug-load@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz"
+  integrity sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==
   dependencies:
-    "character-parser" "^2.2.0"
-    "is-expression" "^4.0.0"
-    "pug-error" "^2.0.0"
+    object-assign "^4.1.1"
+    pug-walk "^2.0.0"
 
-"pug-linker@^4.0.0":
-  "integrity" "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw=="
-  "resolved" "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz"
-  "version" "4.0.0"
+pug-parser@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz"
+  integrity sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==
   dependencies:
-    "pug-error" "^2.0.0"
-    "pug-walk" "^2.0.0"
+    pug-error "^2.0.0"
+    token-stream "1.0.0"
 
-"pug-load@^3.0.0":
-  "integrity" "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ=="
-  "resolved" "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz"
-  "version" "3.0.0"
+pug-runtime@^3.0.0, pug-runtime@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz"
+  integrity sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==
+
+pug-strip-comments@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz"
+  integrity sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==
   dependencies:
-    "object-assign" "^4.1.1"
-    "pug-walk" "^2.0.0"
+    pug-error "^2.0.0"
 
-"pug-parser@^6.0.0":
-  "integrity" "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw=="
-  "resolved" "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz"
-  "version" "6.0.0"
+pug-walk@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz"
+  integrity sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==
+
+pug@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz"
+  integrity sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==
   dependencies:
-    "pug-error" "^2.0.0"
-    "token-stream" "1.0.0"
+    pug-code-gen "^3.0.2"
+    pug-filters "^4.0.0"
+    pug-lexer "^5.0.1"
+    pug-linker "^4.0.0"
+    pug-load "^3.0.0"
+    pug-parser "^6.0.0"
+    pug-runtime "^3.0.1"
+    pug-strip-comments "^2.0.0"
 
-"pug-runtime@^3.0.0", "pug-runtime@^3.0.1":
-  "integrity" "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg=="
-  "resolved" "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz"
-  "version" "3.0.1"
+punycode@^2.1.0:
+  version "2.3.0"
+  resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz"
+  integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==
 
-"pug-strip-comments@^2.0.0":
-  "integrity" "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ=="
-  "resolved" "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz"
-  "version" "2.0.0"
+purgecss@^4.0.3:
+  version "4.1.3"
+  resolved "https://registry.npmjs.org/purgecss/-/purgecss-4.1.3.tgz"
+  integrity sha512-99cKy4s+VZoXnPxaoM23e5ABcP851nC2y2GROkkjS8eJaJtlciGavd7iYAw2V84WeBqggZ12l8ef44G99HmTaw==
   dependencies:
-    "pug-error" "^2.0.0"
+    commander "^8.0.0"
+    glob "^7.1.7"
+    postcss "^8.3.5"
+    postcss-selector-parser "^6.0.6"
 
-"pug-walk@^2.0.0":
-  "integrity" "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ=="
-  "resolved" "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz"
-  "version" "2.0.0"
-
-"pug@^3.0.2":
-  "integrity" "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw=="
-  "resolved" "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz"
-  "version" "3.0.2"
+qrcode@^1.5.1:
+  version "1.5.3"
+  resolved "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz"
+  integrity sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==
   dependencies:
-    "pug-code-gen" "^3.0.2"
-    "pug-filters" "^4.0.0"
-    "pug-lexer" "^5.0.1"
-    "pug-linker" "^4.0.0"
-    "pug-load" "^3.0.0"
-    "pug-parser" "^6.0.0"
-    "pug-runtime" "^3.0.1"
-    "pug-strip-comments" "^2.0.0"
+    dijkstrajs "^1.0.1"
+    encode-utf8 "^1.0.3"
+    pngjs "^5.0.0"
+    yargs "^15.3.1"
 
-"punycode@^2.1.0":
-  "integrity" "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA=="
-  "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz"
-  "version" "2.3.0"
-
-"purgecss@^4.0.3":
-  "integrity" "sha512-99cKy4s+VZoXnPxaoM23e5ABcP851nC2y2GROkkjS8eJaJtlciGavd7iYAw2V84WeBqggZ12l8ef44G99HmTaw=="
-  "resolved" "https://registry.npmjs.org/purgecss/-/purgecss-4.1.3.tgz"
-  "version" "4.1.3"
+qs@^6.11.1:
+  version "6.11.2"
+  resolved "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz"
+  integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==
   dependencies:
-    "commander" "^8.0.0"
-    "glob" "^7.1.7"
-    "postcss" "^8.3.5"
-    "postcss-selector-parser" "^6.0.6"
+    side-channel "^1.0.4"
 
-"qrcode@^1.5.1":
-  "integrity" "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg=="
-  "resolved" "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz"
-  "version" "1.5.3"
+queue-microtask@^1.2.2:
+  version "1.2.3"
+  resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
+  integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+
+quick-lru@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz"
+  integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
+
+readdirp@~3.6.0:
+  version "3.6.0"
+  resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
+  integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
   dependencies:
-    "dijkstrajs" "^1.0.1"
-    "encode-utf8" "^1.0.3"
-    "pngjs" "^5.0.0"
-    "yargs" "^15.3.1"
+    picomatch "^2.2.1"
 
-"qs@^6.11.1":
-  "integrity" "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA=="
-  "resolved" "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz"
-  "version" "6.11.2"
+reduce-css-calc@^2.1.8:
+  version "2.1.8"
+  resolved "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz"
+  integrity sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==
   dependencies:
-    "side-channel" "^1.0.4"
+    css-unit-converter "^1.1.1"
+    postcss-value-parser "^3.3.0"
 
-"queue-microtask@^1.2.2":
-  "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
-  "resolved" "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
-  "version" "1.2.3"
+regenerator-runtime@^0.13.11:
+  version "0.13.11"
+  resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz"
+  integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
 
-"quick-lru@^5.1.1":
-  "integrity" "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="
-  "resolved" "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz"
-  "version" "5.1.1"
+require-directory@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
+  integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
 
-"readdirp@~3.6.0":
-  "integrity" "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="
-  "resolved" "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
-  "version" "3.6.0"
+require-main-filename@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz"
+  integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
+
+resolve-from@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
+  integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+
+resolve@^1.12.0, resolve@^1.15.1, resolve@^1.20.0, resolve@^1.22.1:
+  version "1.22.2"
+  resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz"
+  integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==
   dependencies:
-    "picomatch" "^2.2.1"
+    is-core-module "^2.11.0"
+    path-parse "^1.0.7"
+    supports-preserve-symlinks-flag "^1.0.0"
 
-"reduce-css-calc@^2.1.8":
-  "integrity" "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg=="
-  "resolved" "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz"
-  "version" "2.1.8"
+reusify@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
+  integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+
+rgb-regex@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz"
+  integrity sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w==
+
+rgba-regex@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz"
+  integrity sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg==
+
+rimraf@^3.0.0, rimraf@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz"
+  integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
   dependencies:
-    "css-unit-converter" "^1.1.1"
-    "postcss-value-parser" "^3.3.0"
+    glob "^7.1.3"
 
-"regenerator-runtime@^0.13.11":
-  "integrity" "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
-  "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz"
-  "version" "0.13.11"
-
-"require-directory@^2.1.1":
-  "integrity" "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
-  "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
-  "version" "2.1.1"
-
-"require-main-filename@^2.0.0":
-  "integrity" "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
-  "resolved" "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz"
-  "version" "2.0.0"
-
-"resolve-from@^4.0.0":
-  "integrity" "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
-  "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
-  "version" "4.0.0"
-
-"resolve@^1.12.0", "resolve@^1.15.1", "resolve@^1.20.0", "resolve@^1.22.1":
-  "integrity" "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g=="
-  "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz"
-  "version" "1.22.2"
+rollup-plugin-visualizer@^5.9.0:
+  version "5.9.0"
+  resolved "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.0.tgz"
+  integrity sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==
   dependencies:
-    "is-core-module" "^2.11.0"
-    "path-parse" "^1.0.7"
-    "supports-preserve-symlinks-flag" "^1.0.0"
+    open "^8.4.0"
+    picomatch "^2.3.1"
+    source-map "^0.7.4"
+    yargs "^17.5.1"
 
-"reusify@^1.0.4":
-  "integrity" "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
-  "resolved" "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
-  "version" "1.0.4"
-
-"rgb-regex@^1.0.1":
-  "integrity" "sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w=="
-  "resolved" "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz"
-  "version" "1.0.1"
-
-"rgba-regex@^1.0.0":
-  "integrity" "sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg=="
-  "resolved" "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz"
-  "version" "1.0.0"
-
-"rimraf@^3.0.0", "rimraf@^3.0.2":
-  "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="
-  "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz"
-  "version" "3.0.2"
-  dependencies:
-    "glob" "^7.1.3"
-
-"rollup-plugin-visualizer@^5.9.0":
-  "integrity" "sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg=="
-  "resolved" "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.0.tgz"
-  "version" "5.9.0"
-  dependencies:
-    "open" "^8.4.0"
-    "picomatch" "^2.3.1"
-    "source-map" "^0.7.4"
-    "yargs" "^17.5.1"
-
-"rollup@^1.20.0||^2.0.0||^3.0.0", "rollup@^2.79.1", "rollup@2.x || 3.x":
-  "integrity" "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw=="
-  "resolved" "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz"
-  "version" "2.79.1"
+rollup@^2.79.1:
+  version "2.79.1"
+  resolved "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz"
+  integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==
   optionalDependencies:
-    "fsevents" "~2.3.2"
+    fsevents "~2.3.2"
 
-"run-parallel@^1.1.9":
-  "integrity" "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="
-  "resolved" "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"
-  "version" "1.2.0"
+run-parallel@^1.1.9:
+  version "1.2.0"
+  resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"
+  integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
   dependencies:
-    "queue-microtask" "^1.2.2"
+    queue-microtask "^1.2.2"
 
-"sass@*", "sass@^1.55.0":
-  "integrity" "sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A=="
-  "resolved" "https://registry.npmjs.org/sass/-/sass-1.62.1.tgz"
-  "version" "1.62.1"
+sass@^1.55.0:
+  version "1.62.1"
+  resolved "https://registry.npmjs.org/sass/-/sass-1.62.1.tgz"
+  integrity sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==
   dependencies:
-    "chokidar" ">=3.0.0 <4.0.0"
-    "immutable" "^4.0.0"
-    "source-map-js" ">=0.6.2 <2.0.0"
+    chokidar ">=3.0.0 <4.0.0"
+    immutable "^4.0.0"
+    source-map-js ">=0.6.2 <2.0.0"
 
-"select@^1.1.2":
-  "integrity" "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA=="
-  "resolved" "https://registry.npmjs.org/select/-/select-1.1.2.tgz"
-  "version" "1.1.2"
+select@^1.1.2:
+  version "1.1.2"
+  resolved "https://registry.npmjs.org/select/-/select-1.1.2.tgz"
+  integrity sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==
 
-"semver@^6.3.0":
-  "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
-  "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"
-  "version" "6.3.0"
+semver@^6.3.0:
+  version "6.3.0"
+  resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"
+  integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
 
-"semver@^7.3.5", "semver@^7.3.6":
-  "integrity" "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw=="
-  "resolved" "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz"
-  "version" "7.5.1"
+semver@^7.3.5, semver@^7.3.6:
+  version "7.5.1"
+  resolved "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz"
+  integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==
   dependencies:
-    "lru-cache" "^6.0.0"
+    lru-cache "^6.0.0"
 
-"set-blocking@^2.0.0":
-  "integrity" "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
-  "resolved" "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"
-  "version" "2.0.0"
+set-blocking@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"
+  integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
 
-"shebang-command@^2.0.0":
-  "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="
-  "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
-  "version" "2.0.0"
+shebang-command@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
+  integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
   dependencies:
-    "shebang-regex" "^3.0.0"
+    shebang-regex "^3.0.0"
 
-"shebang-regex@^3.0.0":
-  "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
-  "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"
-  "version" "3.0.0"
+shebang-regex@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"
+  integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
 
-"shvl@^2.0.3":
-  "integrity" "sha512-V7C6S9Hlol6SzOJPnQ7qzOVEWUQImt3BNmmzh40wObhla3XOYMe4gGiYzLrJd5TFa+cI2f9LKIRJTTKZSTbWgw=="
-  "resolved" "https://registry.npmjs.org/shvl/-/shvl-2.0.3.tgz"
-  "version" "2.0.3"
+shvl@^2.0.3:
+  version "2.0.3"
+  resolved "https://registry.npmjs.org/shvl/-/shvl-2.0.3.tgz"
+  integrity sha512-V7C6S9Hlol6SzOJPnQ7qzOVEWUQImt3BNmmzh40wObhla3XOYMe4gGiYzLrJd5TFa+cI2f9LKIRJTTKZSTbWgw==
 
-"side-channel@^1.0.4":
-  "integrity" "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw=="
-  "resolved" "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz"
-  "version" "1.0.4"
+side-channel@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz"
+  integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
   dependencies:
-    "call-bind" "^1.0.0"
-    "get-intrinsic" "^1.0.2"
-    "object-inspect" "^1.9.0"
+    call-bind "^1.0.0"
+    get-intrinsic "^1.0.2"
+    object-inspect "^1.9.0"
 
-"simple-swizzle@^0.2.2":
-  "integrity" "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg=="
-  "resolved" "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz"
-  "version" "0.2.2"
+simple-swizzle@^0.2.2:
+  version "0.2.2"
+  resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz"
+  integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==
   dependencies:
-    "is-arrayish" "^0.3.1"
+    is-arrayish "^0.3.1"
 
-"sortablejs@1.14.0":
-  "integrity" "sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w=="
-  "resolved" "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz"
-  "version" "1.14.0"
+sortablejs@1.14.0:
+  version "1.14.0"
+  resolved "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz"
+  integrity sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==
 
-"source-map-js@^1.0.2", "source-map-js@>=0.6.2 <2.0.0":
-  "integrity" "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
-  "resolved" "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz"
-  "version" "1.0.2"
+"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz"
+  integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
 
-"source-map-support@~0.5.20":
-  "integrity" "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="
-  "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz"
-  "version" "0.5.21"
+source-map-support@~0.5.20:
+  version "0.5.21"
+  resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz"
+  integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
   dependencies:
-    "buffer-from" "^1.0.0"
-    "source-map" "^0.6.0"
+    buffer-from "^1.0.0"
+    source-map "^0.6.0"
 
-"source-map@^0.6.0", "source-map@^0.6.1", "source-map@0.6.1":
-  "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
-  "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
-  "version" "0.6.1"
+source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1:
+  version "0.6.1"
+  resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
+  integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
 
-"source-map@^0.7.4":
-  "integrity" "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA=="
-  "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz"
-  "version" "0.7.4"
+source-map@^0.7.4:
+  version "0.7.4"
+  resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz"
+  integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==
 
-"string-width@^4.1.0", "string-width@^4.2.0", "string-width@^4.2.3":
-  "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="
-  "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
-  "version" "4.2.3"
+string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
+  version "4.2.3"
+  resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
+  integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
   dependencies:
-    "emoji-regex" "^8.0.0"
-    "is-fullwidth-code-point" "^3.0.0"
-    "strip-ansi" "^6.0.1"
+    emoji-regex "^8.0.0"
+    is-fullwidth-code-point "^3.0.0"
+    strip-ansi "^6.0.1"
 
-"strip-ansi@^6.0.0", "strip-ansi@^6.0.1":
-  "integrity" "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="
-  "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
-  "version" "6.0.1"
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
+  integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
   dependencies:
-    "ansi-regex" "^5.0.1"
+    ansi-regex "^5.0.1"
 
-"strip-json-comments@^3.1.0", "strip-json-comments@^3.1.1":
-  "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
-  "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz"
-  "version" "3.1.1"
+strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz"
+  integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
 
-"supports-color@^5.3.0", "supports-color@^5.4.0":
-  "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="
-  "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
-  "version" "5.5.0"
+supports-color@^5.3.0, supports-color@^5.4.0:
+  version "5.5.0"
+  resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
+  integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
   dependencies:
-    "has-flag" "^3.0.0"
+    has-flag "^3.0.0"
 
-"supports-color@^7.1.0":
-  "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="
-  "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
-  "version" "7.2.0"
+supports-color@^7.1.0:
+  version "7.2.0"
+  resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
+  integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
   dependencies:
-    "has-flag" "^4.0.0"
+    has-flag "^4.0.0"
 
-"supports-preserve-symlinks-flag@^1.0.0":
-  "integrity" "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
-  "resolved" "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
-  "version" "1.0.0"
+supports-preserve-symlinks-flag@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
+  integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
 
-"systemjs@^6.13.0":
-  "integrity" "sha512-8ftwWd+XnQtZ/aGbatrN4QFNGrKJzmbtixW+ODpci7pyoTajg4sonPP8aFLESAcuVxaC1FyDESt+SpfFCH9rZQ=="
-  "resolved" "https://registry.npmjs.org/systemjs/-/systemjs-6.14.1.tgz"
-  "version" "6.14.1"
+systemjs@^6.13.0:
+  version "6.14.1"
+  resolved "https://registry.npmjs.org/systemjs/-/systemjs-6.14.1.tgz"
+  integrity sha512-8ftwWd+XnQtZ/aGbatrN4QFNGrKJzmbtixW+ODpci7pyoTajg4sonPP8aFLESAcuVxaC1FyDESt+SpfFCH9rZQ==
 
 "tailwindcss@npm:@tailwindcss/postcss7-compat@^2.2.17":
-  "integrity" "sha512-3h2svqQAqYHxRZ1KjsJjZOVTQ04m29LjfrLjXyZZEJuvUuJN+BCIF9GI8vhE1s0plS0mogd6E6YLg6mu4Wv/Vw=="
-  "resolved" "https://registry.npmjs.org/@tailwindcss/postcss7-compat/-/postcss7-compat-2.2.17.tgz"
-  "version" "2.2.17"
+  version "2.2.17"
+  resolved "https://registry.npmjs.org/@tailwindcss/postcss7-compat/-/postcss7-compat-2.2.17.tgz"
+  integrity sha512-3h2svqQAqYHxRZ1KjsJjZOVTQ04m29LjfrLjXyZZEJuvUuJN+BCIF9GI8vhE1s0plS0mogd6E6YLg6mu4Wv/Vw==
   dependencies:
-    "arg" "^5.0.1"
-    "autoprefixer" "^9"
-    "bytes" "^3.0.0"
-    "chalk" "^4.1.2"
-    "chokidar" "^3.5.2"
-    "color" "^4.0.1"
-    "cosmiconfig" "^7.0.1"
-    "detective" "^5.2.0"
-    "didyoumean" "^1.2.2"
-    "dlv" "^1.1.3"
-    "fast-glob" "^3.2.7"
-    "fs-extra" "^10.0.0"
-    "glob-parent" "^6.0.1"
-    "html-tags" "^3.1.0"
-    "is-color-stop" "^1.1.0"
-    "is-glob" "^4.0.1"
-    "lodash" "^4.17.21"
-    "lodash.topath" "^4.5.2"
-    "modern-normalize" "^1.1.0"
-    "node-emoji" "^1.11.0"
-    "normalize-path" "^3.0.0"
-    "object-hash" "^2.2.0"
-    "postcss" "^7"
-    "postcss-functions" "^3"
-    "postcss-js" "^2"
-    "postcss-load-config" "^3.1.0"
-    "postcss-nested" "^4"
-    "postcss-selector-parser" "^6.0.6"
-    "postcss-value-parser" "^4.1.0"
-    "pretty-hrtime" "^1.0.3"
-    "purgecss" "^4.0.3"
-    "quick-lru" "^5.1.1"
-    "reduce-css-calc" "^2.1.8"
-    "resolve" "^1.20.0"
-    "tmp" "^0.2.1"
+    arg "^5.0.1"
+    autoprefixer "^9"
+    bytes "^3.0.0"
+    chalk "^4.1.2"
+    chokidar "^3.5.2"
+    color "^4.0.1"
+    cosmiconfig "^7.0.1"
+    detective "^5.2.0"
+    didyoumean "^1.2.2"
+    dlv "^1.1.3"
+    fast-glob "^3.2.7"
+    fs-extra "^10.0.0"
+    glob-parent "^6.0.1"
+    html-tags "^3.1.0"
+    is-color-stop "^1.1.0"
+    is-glob "^4.0.1"
+    lodash "^4.17.21"
+    lodash.topath "^4.5.2"
+    modern-normalize "^1.1.0"
+    node-emoji "^1.11.0"
+    normalize-path "^3.0.0"
+    object-hash "^2.2.0"
+    postcss "^7"
+    postcss-functions "^3"
+    postcss-js "^2"
+    postcss-load-config "^3.1.0"
+    postcss-nested "^4"
+    postcss-selector-parser "^6.0.6"
+    postcss-value-parser "^4.1.0"
+    pretty-hrtime "^1.0.3"
+    purgecss "^4.0.3"
+    quick-lru "^5.1.1"
+    reduce-css-calc "^2.1.8"
+    resolve "^1.20.0"
+    tmp "^0.2.1"
 
-"terser@^5.16.1", "terser@^5.4.0":
-  "integrity" "sha512-V8QHcs8YuyLkLHsJO5ucyff1ykrLVsR4dNnS//L5Y3NiSXpbK1J+WMVUs67eI0KTxs9JtHhgEQpXQVHlHI92DQ=="
-  "resolved" "https://registry.npmjs.org/terser/-/terser-5.17.6.tgz"
-  "version" "5.17.6"
+terser@^5.16.1:
+  version "5.17.6"
+  resolved "https://registry.npmjs.org/terser/-/terser-5.17.6.tgz"
+  integrity sha512-V8QHcs8YuyLkLHsJO5ucyff1ykrLVsR4dNnS//L5Y3NiSXpbK1J+WMVUs67eI0KTxs9JtHhgEQpXQVHlHI92DQ==
   dependencies:
     "@jridgewell/source-map" "^0.3.2"
-    "acorn" "^8.5.0"
-    "commander" "^2.20.0"
-    "source-map-support" "~0.5.20"
+    acorn "^8.5.0"
+    commander "^2.20.0"
+    source-map-support "~0.5.20"
 
-"text-segmentation@^1.0.3":
-  "integrity" "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw=="
-  "resolved" "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz"
-  "version" "1.0.3"
+text-segmentation@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz"
+  integrity sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==
   dependencies:
-    "utrie" "^1.0.2"
+    utrie "^1.0.2"
 
-"text-table@^0.2.0":
-  "integrity" "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
-  "resolved" "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
-  "version" "0.2.0"
+text-table@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
+  integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
 
-"tiny-emitter@^2.0.0":
-  "integrity" "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="
-  "resolved" "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz"
-  "version" "2.1.0"
+tiny-emitter@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz"
+  integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==
 
-"tmp@^0.2.1":
-  "integrity" "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ=="
-  "resolved" "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz"
-  "version" "0.2.1"
+tmp@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz"
+  integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==
   dependencies:
-    "rimraf" "^3.0.0"
+    rimraf "^3.0.0"
 
-"to-fast-properties@^2.0.0":
-  "integrity" "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog=="
-  "resolved" "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz"
-  "version" "2.0.0"
+to-fast-properties@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz"
+  integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
 
-"to-regex-range@^5.0.1":
-  "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="
-  "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
-  "version" "5.0.1"
+to-regex-range@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
+  integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
   dependencies:
-    "is-number" "^7.0.0"
+    is-number "^7.0.0"
 
-"token-stream@1.0.0":
-  "integrity" "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg=="
-  "resolved" "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz"
-  "version" "1.0.0"
+token-stream@1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz"
+  integrity sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==
 
-"tslib@^2.0.3", "tslib@2.3.0":
-  "integrity" "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
-  "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz"
-  "version" "2.3.0"
+tslib@2.3.0, tslib@^2.0.3:
+  version "2.3.0"
+  resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz"
+  integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
 
-"type-check@^0.4.0", "type-check@~0.4.0":
-  "integrity" "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="
-  "resolved" "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz"
-  "version" "0.4.0"
+type-check@^0.4.0, type-check@~0.4.0:
+  version "0.4.0"
+  resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz"
+  integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
   dependencies:
-    "prelude-ls" "^1.2.1"
+    prelude-ls "^1.2.1"
 
-"type-fest@^0.20.2":
-  "integrity" "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
-  "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz"
-  "version" "0.20.2"
+type-fest@^0.20.2:
+  version "0.20.2"
+  resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz"
+  integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
 
-"universalify@^2.0.0":
-  "integrity" "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
-  "resolved" "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz"
-  "version" "2.0.0"
+universalify@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz"
+  integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
 
-"unplugin-vue-components@^0.22.9":
-  "integrity" "sha512-FxyzsuBvMCYPIk+8cgscGBQ345tvwVu+qY5IhE++eorkyvA4Z1TiD/HCiim+Kbqozl10i4K+z+NCa2WO2jexRA=="
-  "resolved" "https://registry.npmjs.org/unplugin-vue-components/-/unplugin-vue-components-0.22.12.tgz"
-  "version" "0.22.12"
+unplugin-vue-components@^0.22.9:
+  version "0.22.12"
+  resolved "https://registry.npmjs.org/unplugin-vue-components/-/unplugin-vue-components-0.22.12.tgz"
+  integrity sha512-FxyzsuBvMCYPIk+8cgscGBQ345tvwVu+qY5IhE++eorkyvA4Z1TiD/HCiim+Kbqozl10i4K+z+NCa2WO2jexRA==
   dependencies:
     "@antfu/utils" "^0.7.2"
     "@rollup/pluginutils" "^5.0.2"
-    "chokidar" "^3.5.3"
-    "debug" "^4.3.4"
-    "fast-glob" "^3.2.12"
-    "local-pkg" "^0.4.2"
-    "magic-string" "^0.27.0"
-    "minimatch" "^5.1.1"
-    "resolve" "^1.22.1"
-    "unplugin" "^1.0.1"
+    chokidar "^3.5.3"
+    debug "^4.3.4"
+    fast-glob "^3.2.12"
+    local-pkg "^0.4.2"
+    magic-string "^0.27.0"
+    minimatch "^5.1.1"
+    resolve "^1.22.1"
+    unplugin "^1.0.1"
 
-"unplugin-vue-define-options@^1.1.3":
-  "integrity" "sha512-DIZtzJ5bJOVSPH4D8uNSJdCFE5vQwUSVUoSFqJjIJqMZ+X1bp5ydMdmB4vlAOnKhdCQszvU+mP+Fu0A64tnvcw=="
-  "resolved" "https://registry.npmjs.org/unplugin-vue-define-options/-/unplugin-vue-define-options-1.3.7.tgz"
-  "version" "1.3.7"
+unplugin-vue-define-options@^1.1.3:
+  version "1.3.7"
+  resolved "https://registry.npmjs.org/unplugin-vue-define-options/-/unplugin-vue-define-options-1.3.7.tgz"
+  integrity sha512-DIZtzJ5bJOVSPH4D8uNSJdCFE5vQwUSVUoSFqJjIJqMZ+X1bp5ydMdmB4vlAOnKhdCQszvU+mP+Fu0A64tnvcw==
   dependencies:
     "@vue-macros/common" "~1.3.3"
-    "ast-walker-scope" "^0.4.1"
-    "unplugin" "^1.3.1"
+    ast-walker-scope "^0.4.1"
+    unplugin "^1.3.1"
 
-"unplugin@^1.0.1", "unplugin@^1.3.1":
-  "integrity" "sha512-h4uUTIvFBQRxUKS2Wjys6ivoeofGhxzTe2sRWlooyjHXVttcVfV/JiavNd3d4+jty0SVV0dxGw9AkY9MwiaCEw=="
-  "resolved" "https://registry.npmjs.org/unplugin/-/unplugin-1.3.1.tgz"
-  "version" "1.3.1"
+unplugin@^1.0.1, unplugin@^1.3.1:
+  version "1.3.1"
+  resolved "https://registry.npmjs.org/unplugin/-/unplugin-1.3.1.tgz"
+  integrity sha512-h4uUTIvFBQRxUKS2Wjys6ivoeofGhxzTe2sRWlooyjHXVttcVfV/JiavNd3d4+jty0SVV0dxGw9AkY9MwiaCEw==
   dependencies:
-    "acorn" "^8.8.2"
-    "chokidar" "^3.5.3"
-    "webpack-sources" "^3.2.3"
-    "webpack-virtual-modules" "^0.5.0"
+    acorn "^8.8.2"
+    chokidar "^3.5.3"
+    webpack-sources "^3.2.3"
+    webpack-virtual-modules "^0.5.0"
 
-"update-browserslist-db@^1.0.11":
-  "integrity" "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA=="
-  "resolved" "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz"
-  "version" "1.0.11"
+update-browserslist-db@^1.0.11:
+  version "1.0.11"
+  resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz"
+  integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==
   dependencies:
-    "escalade" "^3.1.1"
-    "picocolors" "^1.0.0"
+    escalade "^3.1.1"
+    picocolors "^1.0.0"
 
-"uri-js@^4.2.2":
-  "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="
-  "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
-  "version" "4.4.1"
+uri-js@^4.2.2:
+  version "4.4.1"
+  resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
+  integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
   dependencies:
-    "punycode" "^2.1.0"
+    punycode "^2.1.0"
 
-"util-deprecate@^1.0.2":
-  "integrity" "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
-  "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
-  "version" "1.0.2"
+util-deprecate@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+  integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
 
-"utrie@^1.0.2":
-  "integrity" "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw=="
-  "resolved" "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz"
-  "version" "1.0.2"
+utrie@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz"
+  integrity sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==
   dependencies:
-    "base64-arraybuffer" "^1.0.2"
+    base64-arraybuffer "^1.0.2"
 
-"vant@^4.0.9":
-  "integrity" "sha512-sHCyuXo6djVcR8H14tF/kF8FWAdk/ynrMGQt3F3adgNZ5vQR4MZrGJHKzfrY8y4EXU+vPbNTCPyaV5EBm67JAQ=="
-  "resolved" "https://registry.npmjs.org/vant/-/vant-4.4.1.tgz"
-  "version" "4.4.1"
+vant@^4.0.9:
+  version "4.4.1"
+  resolved "https://registry.npmjs.org/vant/-/vant-4.4.1.tgz"
+  integrity sha512-sHCyuXo6djVcR8H14tF/kF8FWAdk/ynrMGQt3F3adgNZ5vQR4MZrGJHKzfrY8y4EXU+vPbNTCPyaV5EBm67JAQ==
   dependencies:
     "@vant/popperjs" "^1.3.0"
     "@vant/use" "^1.5.1"
     "@vue/shared" "^3.0.0"
 
-"vite-plugin-imp@^2.3.1":
-  "integrity" "sha512-L/6/nvOw+MyNh4UxAlCZHsmKd5MitmHamqqAWB15sbUgVIEz/OQ8jpKr6kkQU0eA/AIe8fkCVbQBlP81ajrqWg=="
-  "resolved" "https://registry.npmjs.org/vite-plugin-imp/-/vite-plugin-imp-2.4.0.tgz"
-  "version" "2.4.0"
+vite-plugin-imp@^2.3.1:
+  version "2.4.0"
+  resolved "https://registry.npmjs.org/vite-plugin-imp/-/vite-plugin-imp-2.4.0.tgz"
+  integrity sha512-L/6/nvOw+MyNh4UxAlCZHsmKd5MitmHamqqAWB15sbUgVIEz/OQ8jpKr6kkQU0eA/AIe8fkCVbQBlP81ajrqWg==
   dependencies:
     "@babel/core" "^7.12.10"
     "@babel/generator" "^7.12.11"
     "@babel/parser" "^7.12.11"
     "@babel/traverse" "^7.12.12"
-    "chalk" "^4.1.0"
-    "param-case" "^3.0.4"
-    "pascal-case" "^3.1.2"
+    chalk "^4.1.0"
+    param-case "^3.0.4"
+    pascal-case "^3.1.2"
 
-"vite@^3.0.0", "vite@^3.2.0", "vite@^4.0.0", "vite@>= 2.0.0-beta.5":
-  "integrity" "sha512-29pdXjk49xAP0QBr0xXqu2s5jiQIXNvE/xwd0vUizYT2Hzqe4BksNNoWllFVXJf4eLZ+UlVQmXfB4lWrc+t18g=="
-  "resolved" "https://registry.npmjs.org/vite/-/vite-3.2.7.tgz"
-  "version" "3.2.7"
+vite@^3.2.0:
+  version "3.2.7"
+  resolved "https://registry.npmjs.org/vite/-/vite-3.2.7.tgz"
+  integrity sha512-29pdXjk49xAP0QBr0xXqu2s5jiQIXNvE/xwd0vUizYT2Hzqe4BksNNoWllFVXJf4eLZ+UlVQmXfB4lWrc+t18g==
   dependencies:
-    "esbuild" "^0.15.9"
-    "postcss" "^8.4.18"
-    "resolve" "^1.22.1"
-    "rollup" "^2.79.1"
+    esbuild "^0.15.9"
+    postcss "^8.4.18"
+    resolve "^1.22.1"
+    rollup "^2.79.1"
   optionalDependencies:
-    "fsevents" "~2.3.2"
+    fsevents "~2.3.2"
 
-"void-elements@^3.1.0":
-  "integrity" "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w=="
-  "resolved" "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz"
-  "version" "3.1.0"
+void-elements@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz"
+  integrity sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==
 
-"vue-clipboard3@^2.0.0":
-  "integrity" "sha512-Q9S7dzWGax7LN5iiSPcu/K1GGm2gcBBlYwmMsUc5/16N6w90cbKow3FnPmPs95sungns4yvd9/+JhbAznECS2A=="
-  "resolved" "https://registry.npmjs.org/vue-clipboard3/-/vue-clipboard3-2.0.0.tgz"
-  "version" "2.0.0"
+vue-clipboard3@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/vue-clipboard3/-/vue-clipboard3-2.0.0.tgz"
+  integrity sha512-Q9S7dzWGax7LN5iiSPcu/K1GGm2gcBBlYwmMsUc5/16N6w90cbKow3FnPmPs95sungns4yvd9/+JhbAznECS2A==
   dependencies:
-    "clipboard" "^2.0.6"
+    clipboard "^2.0.6"
 
-"vue-demi@*":
-  "integrity" "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA=="
-  "resolved" "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz"
-  "version" "0.14.5"
+vue-demi@*:
+  version "0.14.5"
+  resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz"
+  integrity sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==
 
-"vue-eslint-parser@^9.3.0":
-  "integrity" "sha512-48IxT9d0+wArT1+3wNIy0tascRoywqSUe2E1YalIC1L8jsUGe5aJQItWfRok7DVFGz3UYvzEI7n5wiTXsCMAcQ=="
-  "resolved" "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.0.tgz"
-  "version" "9.3.0"
+vue-eslint-parser@^9.3.0:
+  version "9.3.0"
+  resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.0.tgz"
+  integrity sha512-48IxT9d0+wArT1+3wNIy0tascRoywqSUe2E1YalIC1L8jsUGe5aJQItWfRok7DVFGz3UYvzEI7n5wiTXsCMAcQ==
   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"
+    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"
 
-"vue-i18n@^9.2.2":
-  "integrity" "sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ=="
-  "resolved" "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.2.2.tgz"
-  "version" "9.2.2"
+vue-i18n@^9.2.2:
+  version "9.2.2"
+  resolved "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.2.2.tgz"
+  integrity sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==
   dependencies:
     "@intlify/core-base" "9.2.2"
     "@intlify/shared" "9.2.2"
     "@intlify/vue-devtools" "9.2.2"
     "@vue/devtools-api" "^6.2.1"
 
-"vue-property-decorator@^9.0.2":
-  "integrity" "sha512-xYA8MkZynPBGd/w5QFJ2d/NM0z/YeegMqYTphy7NJQXbZcuU6FC6AOdUAcy4SXP+YnkerC6AfH+ldg7PDk9ESQ=="
-  "resolved" "https://registry.npmjs.org/vue-property-decorator/-/vue-property-decorator-9.1.2.tgz"
-  "version" "9.1.2"
+vue-property-decorator@^9.0.2:
+  version "9.1.2"
+  resolved "https://registry.npmjs.org/vue-property-decorator/-/vue-property-decorator-9.1.2.tgz"
+  integrity sha512-xYA8MkZynPBGd/w5QFJ2d/NM0z/YeegMqYTphy7NJQXbZcuU6FC6AOdUAcy4SXP+YnkerC6AfH+ldg7PDk9ESQ==
 
-"vue-router@^4.1.6":
-  "integrity" "sha512-cChBPPmAflgBGmy3tBsjeoe3f3VOSG6naKyY5pjtrqLGbNEXdzCigFUHgBvp9e3ysAtFtEx7OLqcSDh/1Cq2TQ=="
-  "resolved" "https://registry.npmjs.org/vue-router/-/vue-router-4.2.2.tgz"
-  "version" "4.2.2"
+vue-router@^4.1.6:
+  version "4.2.2"
+  resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.2.2.tgz"
+  integrity sha512-cChBPPmAflgBGmy3tBsjeoe3f3VOSG6naKyY5pjtrqLGbNEXdzCigFUHgBvp9e3ysAtFtEx7OLqcSDh/1Cq2TQ==
   dependencies:
     "@vue/devtools-api" "^6.5.0"
 
-"vue-slider-component@^4.0.0-beta.5":
-  "integrity" "sha512-dvaquYv85coVmQQqjWs+aaXFSCbTeNr7rpjXgSFo1E+XscErSXZkf0LF7MHX9rP/aeMpAVMMzm6Y//gS0ELiTw=="
-  "resolved" "https://registry.npmjs.org/vue-slider-component/-/vue-slider-component-4.0.0-beta.5.tgz"
-  "version" "4.0.0-beta.5"
+vue-slider-component@^4.0.0-beta.5:
+  version "4.0.0-beta.5"
+  resolved "https://registry.npmjs.org/vue-slider-component/-/vue-slider-component-4.0.0-beta.5.tgz"
+  integrity sha512-dvaquYv85coVmQQqjWs+aaXFSCbTeNr7rpjXgSFo1E+XscErSXZkf0LF7MHX9rP/aeMpAVMMzm6Y//gS0ELiTw==
   dependencies:
-    "core-js" "^3.6.5"
-    "vue-property-decorator" "^9.0.2"
+    core-js "^3.6.5"
+    vue-property-decorator "^9.0.2"
 
-"vue@*", "vue@^2.6.14 || ^3.2.0", "vue@^2.7.0 || ^3.2.25", "vue@^3.0.0", "vue@^3.0.0-0 || ^2.6.0", "vue@^3.0.1", "vue@^3.2.0", "vue@^3.2.25", "vue@^3.2.38", "vue@^3.2.41", "vue@2 || 3", "vue@3.3.4":
-  "integrity" "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw=="
-  "resolved" "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz"
-  "version" "3.3.4"
+vue3-carousel-3d@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.npmjs.org/vue3-carousel-3d/-/vue3-carousel-3d-1.0.4.tgz"
+  integrity sha512-MqoaEYo94hfnHrs8UJzzeJX+30fbcHyn1qiSIzCdKefYcmSNmsssk8ahw/zL9D6zdrRySHTD5+vN+zGENPwlJw==
+  dependencies:
+    vue "^3.2.38"
+
+vue3-puzzle-vcode@^1.0.6:
+  version "1.0.12"
+  resolved "https://registry.npmjs.org/vue3-puzzle-vcode/-/vue3-puzzle-vcode-1.0.12.tgz"
+  integrity sha512-49BRLFQfvG0tt/gCrcMvncOkbcLWZrFxhAkjwbzmS/dQsXlWGz7qjta5b2/5q2q7UTVKTweyfHYwf7SRL+QehQ==
+
+vue3-qr-reader@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/vue3-qr-reader/-/vue3-qr-reader-1.0.0.tgz"
+  integrity sha512-BRgmR+lDPkNwgL6skSaEOGFg4Aup/FLYnOGFCV0knYHxfbAnliJN/+wr//iqD2G3EOBrXw4TPGNfj/5Wxl7wwQ==
+  dependencies:
+    jsqr "^1.4.0"
+
+vue@^3.2.38, vue@^3.2.41:
+  version "3.3.4"
+  resolved "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz"
+  integrity sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==
   dependencies:
     "@vue/compiler-dom" "3.3.4"
     "@vue/compiler-sfc" "3.3.4"
@@ -2946,193 +3023,174 @@
     "@vue/server-renderer" "3.3.4"
     "@vue/shared" "3.3.4"
 
-"vue3-carousel-3d@^1.0.4":
-  "integrity" "sha512-MqoaEYo94hfnHrs8UJzzeJX+30fbcHyn1qiSIzCdKefYcmSNmsssk8ahw/zL9D6zdrRySHTD5+vN+zGENPwlJw=="
-  "resolved" "https://registry.npmjs.org/vue3-carousel-3d/-/vue3-carousel-3d-1.0.4.tgz"
-  "version" "1.0.4"
+vuedraggable@next:
+  version "4.1.0"
+  resolved "https://registry.npmjs.org/vuedraggable/-/vuedraggable-4.1.0.tgz"
+  integrity sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==
   dependencies:
-    "vue" "^3.2.38"
+    sortablejs "1.14.0"
 
-"vue3-puzzle-vcode@^1.0.6":
-  "integrity" "sha512-49BRLFQfvG0tt/gCrcMvncOkbcLWZrFxhAkjwbzmS/dQsXlWGz7qjta5b2/5q2q7UTVKTweyfHYwf7SRL+QehQ=="
-  "resolved" "https://registry.npmjs.org/vue3-puzzle-vcode/-/vue3-puzzle-vcode-1.0.12.tgz"
-  "version" "1.0.12"
-
-"vue3-qr-reader@^1.0.0":
-  "integrity" "sha512-BRgmR+lDPkNwgL6skSaEOGFg4Aup/FLYnOGFCV0knYHxfbAnliJN/+wr//iqD2G3EOBrXw4TPGNfj/5Wxl7wwQ=="
-  "resolved" "https://registry.npmjs.org/vue3-qr-reader/-/vue3-qr-reader-1.0.0.tgz"
-  "version" "1.0.0"
+vuex-persistedstate@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.npmjs.org/vuex-persistedstate/-/vuex-persistedstate-4.1.0.tgz"
+  integrity sha512-3SkEj4NqwM69ikJdFVw6gObeB0NHyspRYMYkR/EbhR0hbvAKyR5gksVhtAfY1UYuWUOCCA0QNGwv9pOwdj+XUQ==
   dependencies:
-    "jsqr" "^1.4.0"
+    deepmerge "^4.2.2"
+    shvl "^2.0.3"
 
-"vuedraggable@next":
-  "integrity" "sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww=="
-  "resolved" "https://registry.npmjs.org/vuedraggable/-/vuedraggable-4.1.0.tgz"
-  "version" "4.1.0"
-  dependencies:
-    "sortablejs" "1.14.0"
-
-"vuex-persistedstate@^4.1.0":
-  "integrity" "sha512-3SkEj4NqwM69ikJdFVw6gObeB0NHyspRYMYkR/EbhR0hbvAKyR5gksVhtAfY1UYuWUOCCA0QNGwv9pOwdj+XUQ=="
-  "resolved" "https://registry.npmjs.org/vuex-persistedstate/-/vuex-persistedstate-4.1.0.tgz"
-  "version" "4.1.0"
-  dependencies:
-    "deepmerge" "^4.2.2"
-    "shvl" "^2.0.3"
-
-"vuex@^3.0 || ^4.0.0-rc", "vuex@^4.1.0":
-  "integrity" "sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ=="
-  "resolved" "https://registry.npmjs.org/vuex/-/vuex-4.1.0.tgz"
-  "version" "4.1.0"
+vuex@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.npmjs.org/vuex/-/vuex-4.1.0.tgz"
+  integrity sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==
   dependencies:
     "@vue/devtools-api" "^6.0.0-beta.11"
 
-"webpack-sources@^3.2.3":
-  "integrity" "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w=="
-  "resolved" "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz"
-  "version" "3.2.3"
+webpack-sources@^3.2.3:
+  version "3.2.3"
+  resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz"
+  integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
 
-"webpack-virtual-modules@^0.5.0":
-  "integrity" "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw=="
-  "resolved" "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz"
-  "version" "0.5.0"
+webpack-virtual-modules@^0.5.0:
+  version "0.5.0"
+  resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz"
+  integrity sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==
 
-"which-module@^2.0.0":
-  "integrity" "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
-  "resolved" "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz"
-  "version" "2.0.1"
+which-module@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz"
+  integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==
 
-"which@^2.0.1":
-  "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="
-  "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz"
-  "version" "2.0.2"
+which@^2.0.1:
+  version "2.0.2"
+  resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz"
+  integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
   dependencies:
-    "isexe" "^2.0.0"
+    isexe "^2.0.0"
 
-"with@^7.0.0":
-  "integrity" "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w=="
-  "resolved" "https://registry.npmjs.org/with/-/with-7.0.2.tgz"
-  "version" "7.0.2"
+with@^7.0.0:
+  version "7.0.2"
+  resolved "https://registry.npmjs.org/with/-/with-7.0.2.tgz"
+  integrity sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==
   dependencies:
     "@babel/parser" "^7.9.6"
     "@babel/types" "^7.9.6"
-    "assert-never" "^1.2.1"
-    "babel-walk" "3.0.0-canary-5"
+    assert-never "^1.2.1"
+    babel-walk "3.0.0-canary-5"
 
-"word-wrap@^1.2.3":
-  "integrity" "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
-  "resolved" "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz"
-  "version" "1.2.3"
+word-wrap@^1.2.3:
+  version "1.2.3"
+  resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz"
+  integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
 
-"wrap-ansi@^6.2.0":
-  "integrity" "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA=="
-  "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz"
-  "version" "6.2.0"
+wrap-ansi@^6.2.0:
+  version "6.2.0"
+  resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz"
+  integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
   dependencies:
-    "ansi-styles" "^4.0.0"
-    "string-width" "^4.1.0"
-    "strip-ansi" "^6.0.0"
+    ansi-styles "^4.0.0"
+    string-width "^4.1.0"
+    strip-ansi "^6.0.0"
 
-"wrap-ansi@^7.0.0":
-  "integrity" "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="
-  "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
-  "version" "7.0.0"
+wrap-ansi@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
+  integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
   dependencies:
-    "ansi-styles" "^4.0.0"
-    "string-width" "^4.1.0"
-    "strip-ansi" "^6.0.0"
+    ansi-styles "^4.0.0"
+    string-width "^4.1.0"
+    strip-ansi "^6.0.0"
 
-"wrappy@1":
-  "integrity" "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
-  "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
-  "version" "1.0.2"
+wrappy@1:
+  version "1.0.2"
+  resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+  integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
 
-"xml-name-validator@^4.0.0":
-  "integrity" "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw=="
-  "resolved" "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz"
-  "version" "4.0.0"
+xml-name-validator@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz"
+  integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==
 
-"xtend@^4.0.2":
-  "integrity" "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
-  "resolved" "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"
-  "version" "4.0.2"
+xtend@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"
+  integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
 
-"y18n@^4.0.0":
-  "integrity" "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
-  "resolved" "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz"
-  "version" "4.0.3"
+y18n@^4.0.0:
+  version "4.0.3"
+  resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz"
+  integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==
 
-"y18n@^5.0.5":
-  "integrity" "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
-  "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz"
-  "version" "5.0.8"
+y18n@^5.0.5:
+  version "5.0.8"
+  resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz"
+  integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
 
-"yallist@^3.0.2":
-  "integrity" "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
-  "resolved" "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"
-  "version" "3.1.1"
+yallist@^3.0.2:
+  version "3.1.1"
+  resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"
+  integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
 
-"yallist@^4.0.0":
-  "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
-  "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
-  "version" "4.0.0"
+yallist@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
+  integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
 
-"yaml@^1.10.0", "yaml@^1.10.2":
-  "integrity" "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
-  "resolved" "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz"
-  "version" "1.10.2"
+yaml@^1.10.0, yaml@^1.10.2:
+  version "1.10.2"
+  resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz"
+  integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
 
-"yargs-parser@^18.1.2":
-  "integrity" "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ=="
-  "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz"
-  "version" "18.1.3"
+yargs-parser@^18.1.2:
+  version "18.1.3"
+  resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz"
+  integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
   dependencies:
-    "camelcase" "^5.0.0"
-    "decamelize" "^1.2.0"
+    camelcase "^5.0.0"
+    decamelize "^1.2.0"
 
-"yargs-parser@^21.1.1":
-  "integrity" "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="
-  "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz"
-  "version" "21.1.1"
+yargs-parser@^21.1.1:
+  version "21.1.1"
+  resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz"
+  integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
 
-"yargs@^15.3.1":
-  "integrity" "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A=="
-  "resolved" "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz"
-  "version" "15.4.1"
+yargs@^15.3.1:
+  version "15.4.1"
+  resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz"
+  integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==
   dependencies:
-    "cliui" "^6.0.0"
-    "decamelize" "^1.2.0"
-    "find-up" "^4.1.0"
-    "get-caller-file" "^2.0.1"
-    "require-directory" "^2.1.1"
-    "require-main-filename" "^2.0.0"
-    "set-blocking" "^2.0.0"
-    "string-width" "^4.2.0"
-    "which-module" "^2.0.0"
-    "y18n" "^4.0.0"
-    "yargs-parser" "^18.1.2"
+    cliui "^6.0.0"
+    decamelize "^1.2.0"
+    find-up "^4.1.0"
+    get-caller-file "^2.0.1"
+    require-directory "^2.1.1"
+    require-main-filename "^2.0.0"
+    set-blocking "^2.0.0"
+    string-width "^4.2.0"
+    which-module "^2.0.0"
+    y18n "^4.0.0"
+    yargs-parser "^18.1.2"
 
-"yargs@^17.5.1":
-  "integrity" "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w=="
-  "resolved" "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz"
-  "version" "17.7.2"
+yargs@^17.5.1:
+  version "17.7.2"
+  resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz"
+  integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
   dependencies:
-    "cliui" "^8.0.1"
-    "escalade" "^3.1.1"
-    "get-caller-file" "^2.0.5"
-    "require-directory" "^2.1.1"
-    "string-width" "^4.2.3"
-    "y18n" "^5.0.5"
-    "yargs-parser" "^21.1.1"
+    cliui "^8.0.1"
+    escalade "^3.1.1"
+    get-caller-file "^2.0.5"
+    require-directory "^2.1.1"
+    string-width "^4.2.3"
+    y18n "^5.0.5"
+    yargs-parser "^21.1.1"
 
-"yocto-queue@^0.1.0":
-  "integrity" "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
-  "resolved" "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
-  "version" "0.1.0"
+yocto-queue@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
+  integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
 
-"zrender@5.4.4":
-  "integrity" "sha512-0VxCNJ7AGOMCWeHVyTrGzUgrK4asT4ml9PEkeGirAkKNYXYzoPJCLvmyfdoOXcjTHPs10OZVMfD1Rwg16AZyYw=="
-  "resolved" "https://registry.npmjs.org/zrender/-/zrender-5.4.4.tgz"
-  "version" "5.4.4"
+zrender@5.4.4:
+  version "5.4.4"
+  resolved "https://registry.npmjs.org/zrender/-/zrender-5.4.4.tgz"
+  integrity sha512-0VxCNJ7AGOMCWeHVyTrGzUgrK4asT4ml9PEkeGirAkKNYXYzoPJCLvmyfdoOXcjTHPs10OZVMfD1Rwg16AZyYw==
   dependencies:
-    "tslib" "2.3.0"
+    tslib "2.3.0"

--
Gitblit v1.9.3