From cd582926b377bc4b4119c0fd7a607f327a687463 Mon Sep 17 00:00:00 2001 From: 18390123501 <3145380855@qq.com> Date: Tue, 14 May 2024 10:44:28 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=90=AD=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 23 + .hbuilderx/launch.json | 16 + api/config.js | 73 + api/index.js | 88 + api/regist.js | 47 + api/smoke.js | 39 + babel.config.js | 81 + npminstall-debug.log | 203 + package.json | 114 + postcss.config.js | 27 + public/index.html | 31 + shims-uni.d.ts | 11 + shims-vue.d.ts | 4 + src/App.vue | 93 + src/components/cmd-progress/cmd-progress.vue | 558 ++ src/components/evils-el-poster/Poster.vue | 531 ++ src/components/lx-calendar/lx-calendar.md | 0 src/components/lx-calendar/lx-calendar.vue | 717 ++ src/components/nothing/nothing.vue | 42 + src/lx-calendar.md | 50 + src/main.js | 19 + src/manifest.json | 81 + src/pages.json | 362 + src/pages/agreement/children.vue | 171 + src/pages/agreement/privacyPolicy.vue | 633 ++ src/pages/agreement/serviceAgreement.vue | 320 + src/pages/agreement/userAgreement.vue | 212 + src/pages/agreement/web-view.vue | 19 + src/pages/detail/detail.vue | 253 + .../bestFood/detail/detail.scss | 230 + .../hairtailScreen/bestFood/detail/detail.vue | 165 + .../hairtailScreen/bestFood/index/index.scss | 145 + .../hairtailScreen/bestFood/index/index.vue | 196 + .../exchangePortion/detail/detail.scss | 140 + .../exchangePortion/detail/detail.vue | 94 + .../exchangePortion/index/index.scss | 188 + .../exchangePortion/index/index.vue | 164 + .../foodIngredients/detail/detail.scss | 252 + .../foodIngredients/detail/detail.vue | 156 + .../foodIngredients/index/index.scss | 191 + .../foodIngredients/index/index.vue | 180 + .../static/images/bestFoodBg.png | Bin 0 -> 2278612 bytes .../hairtailScreen/static/images/exchange.png | Bin 0 -> 23735 bytes .../static/images/exchangeBg.png | Bin 0 -> 5724591 bytes .../static/images/exchangeTag.png | Bin 0 -> 338828 bytes .../hairtailScreen/static/images/highHeat.png | Bin 0 -> 3099 bytes .../hairtailScreen/static/images/homeHide.png | Bin 0 -> 2385 bytes .../hairtailScreen/static/images/homeShow.png | Bin 0 -> 2661 bytes .../static/images/ingredients.png | Bin 0 -> 3047070 bytes .../static/images/ingredientsBg.png | Bin 0 -> 141896 bytes .../hairtailScreen/static/images/lowHeat.png | Bin 0 -> 3155 bytes .../hairtailScreen/static/images/nothing.png | Bin 0 -> 391923 bytes .../static/images/rightArrow.png | Bin 0 -> 241 bytes .../hairtailScreen/static/images/search.png | Bin 0 -> 2406 bytes .../health-risks/basicReport/basicReport.scss | 239 + .../health-risks/basicReport/basicReport.vue | 235 + .../evaluationResults/evaluationResults.scss | 374 + .../evaluationResults/evaluationResults.vue | 525 ++ .../guideDetails/guideDetails.vue | 83 + src/pages/health-risks/index/index.scss | 266 + src/pages/health-risks/index/index.vue | 961 ++ .../health-risks/static/images/right.png | Bin 0 -> 346 bytes src/pages/index/index.vue | 25 + .../diseaseIndex/diseaseIndex.scss | 265 + .../diseaseIndex/diseaseIndex.vue | 582 ++ .../moodRequest/moodRequest.scss | 182 + .../moodRequest/moodRequest.vue | 412 + .../planningReport/planningReport.scss | 217 + .../planningReport/planningReport.vue | 380 + .../psychologicalIndex.scss | 291 + .../psychologicalIndex/psychologicalIndex.vue | 672 ++ .../psychological-assessment/index/index.scss | 267 + .../psychological-assessment/index/index.vue | 744 ++ .../result/result.scss | 178 + .../result/result.vue | 432 + .../cessationData/cessationData.vue | 82 + src/pages/quitSmoking/content/content.vue | 110 + .../evaluationRecord/evaluationRecord.vue | 127 + src/pages/quitSmoking/index/index.scss | 154 + src/pages/quitSmoking/index/index.vue | 323 + src/pages/quitSmoking/question/question.scss | 267 + src/pages/quitSmoking/question/question.vue | 237 + .../recoveryScore/recoveryScore.vue | 146 + src/pages/quitSmoking/result/result.vue | 188 + .../scriptsDetail/scriptsDetail.vue | 59 + .../quitSmoking/scriptsLearn/scriptsLearn.vue | 135 + .../quitSmoking/scriptsList/scriptsList.vue | 104 + .../quitSmoking/smokingDiary/smokingDiary.vue | 164 + .../smokingSituation/smokingSituation.vue | 239 + .../quitSmoking/smokingTips/smokingTips.vue | 128 + .../quitSmoking/static/images/fixedBg.png | Bin 0 -> 247408 bytes .../quitSmoking/statistics/statistics.vue | 225 + .../quitSmoking/timeTravel/timeTravel.vue | 216 + src/pages/reports/reports.vue | 333 + .../scanCodeEvaluation/detail/detail.vue | 364 + .../health-risks/basicReport/basicReport.scss | 208 + .../health-risks/basicReport/basicReport.vue | 151 + .../health-risks/index/index.scss | 253 + .../health-risks/index/index.vue | 825 ++ .../health-risks/static/images/right.png | Bin 0 -> 346 bytes .../actionList/actionList.scss | 79 + .../actionList/actionList.vue | 338 + .../selfRegistration/content/content.vue | 109 + .../dailyTasks/dailyTasks.scss | 95 + .../dailyTasks/dailyTasks.vue | 290 + .../editTemplate/editTemplate.vue | 340 + .../eventRecording/eventRecording.vue | 375 + src/pages/selfRegistration/index/index.vue | 304 + .../selfRegistration/planDiary/planDiary.vue | 157 + .../planningCycle/planningCycle.vue | 145 + .../planningReport/planningReport.scss | 130 + .../planningReport/planningReport.vue | 243 + .../static/images/accident.png | Bin 0 -> 679 bytes .../static/images/accidentShow.png | Bin 0 -> 966 bytes .../selfRegistration/static/images/add.png | Bin 0 -> 782 bytes .../static/images/bluePao.png | Bin 0 -> 22858 bytes .../static/images/checked.png | Bin 0 -> 272 bytes .../static/images/editFile.png | Bin 0 -> 413 bytes .../selfRegistration/static/images/signIn.png | Bin 0 -> 744 bytes .../static/images/signInShow.png | Bin 0 -> 786 bytes .../static/images/whitePao.png | Bin 0 -> 11858 bytes .../static/images/zhanwei.png | Bin 0 -> 661 bytes .../templateSelection/templateSelection.scss | 77 + .../templateSelection/templateSelection.vue | 195 + .../actionList/actionList.scss | 78 + .../actionList/actionList.vue | 216 + .../selfRegistration2/aplanning/aplanning.vue | 435 + .../dailyTasks/dailyTasks.scss | 95 + .../dailyTasks/dailyTasks.vue | 291 + src/pages/selfRegistration2/index/index.vue | 258 + .../planningCycle/planningCycle.vue | 165 + .../static/images/accident.png | Bin 0 -> 679 bytes .../static/images/accidentShow.png | Bin 0 -> 966 bytes .../selfRegistration2/static/images/add.png | Bin 0 -> 782 bytes .../static/images/bluePao.png | Bin 0 -> 22858 bytes .../static/images/checked.png | Bin 0 -> 272 bytes .../static/images/editFile.png | Bin 0 -> 413 bytes .../static/images/signIn.png | Bin 0 -> 744 bytes .../static/images/signInShow.png | Bin 0 -> 786 bytes .../static/images/whitePao.png | Bin 0 -> 11858 bytes .../static/images/zhanwei.png | Bin 0 -> 661 bytes .../templateSelection/templateSelection.scss | 77 + .../templateSelection/templateSelection.vue | 199 + src/static/logo.png | Bin 0 -> 4023 bytes src/static/lx-calendar/fonts/iconfont.css | 21 + src/static/lx-calendar/fonts/iconfont.eot | Bin 0 -> 1772 bytes src/static/lx-calendar/fonts/iconfont.svg | 29 + src/static/lx-calendar/fonts/iconfont.ttf | Bin 0 -> 1604 bytes src/static/lx-calendar/fonts/iconfont.woff | Bin 0 -> 1024 bytes src/static/lx-calendar/fonts/iconfont.woff2 | Bin 0 -> 664 bytes src/uni.promisify.adaptor.js | 10 + src/uni.scss | 18 + src/uni_modules/qiun-data-charts/changelog.md | 320 + .../qiun-data-charts/qiun-data-charts.vue | 1618 ++++ .../components/qiun-error/qiun-error.vue | 46 + .../components/qiun-loading/loading1.vue | 162 + .../components/qiun-loading/loading2.vue | 170 + .../components/qiun-loading/loading3.vue | 173 + .../components/qiun-loading/loading4.vue | 222 + .../components/qiun-loading/loading5.vue | 229 + .../components/qiun-loading/qiun-loading.vue | 36 + .../js_sdk/u-charts/config-echarts.js | 422 + .../js_sdk/u-charts/config-ucharts.js | 606 ++ .../js_sdk/u-charts/readme.md | 5 + .../js_sdk/u-charts/u-charts.js | 7706 +++++++++++++++++ .../js_sdk/u-charts/u-charts.min.js | 18 + src/uni_modules/qiun-data-charts/license.md | 201 + src/uni_modules/qiun-data-charts/package.json | 80 + src/uni_modules/qiun-data-charts/readme.md | 84 + .../static/app-plus/echarts.min.js | 23 + .../qiun-data-charts/static/h5/echarts.min.js | 23 + .../uni-datetime-picker/changelog.md | 142 + .../uni-datetime-picker/calendar-item.vue | 177 + .../uni-datetime-picker/calendar.vue | 928 ++ .../uni-datetime-picker/i18n/en.json | 22 + .../uni-datetime-picker/i18n/index.js | 8 + .../uni-datetime-picker/i18n/zh-Hans.json | 22 + .../uni-datetime-picker/i18n/zh-Hant.json | 22 + .../uni-datetime-picker/time-picker.vue | 934 ++ .../uni-datetime-picker.vue | 1034 +++ .../components/uni-datetime-picker/util.js | 403 + .../uni-datetime-picker/package.json | 87 + src/uni_modules/uni-datetime-picker/readme.md | 21 + src/uni_modules/uni-icons/changelog.md | 38 + .../uni-icons/components/uni-icons/icons.js | 1169 +++ .../components/uni-icons/uni-icons.uvue | 91 + .../components/uni-icons/uni-icons.vue | 110 + .../components/uni-icons/uniicons.css | 664 ++ .../components/uni-icons/uniicons.ttf | Bin 0 -> 35824 bytes .../components/uni-icons/uniicons_file.ts | 664 ++ .../components/uni-icons/uniicons_file_vue.js | 649 ++ src/uni_modules/uni-icons/package.json | 88 + src/uni_modules/uni-icons/readme.md | 8 + src/uni_modules/uni-popup/changelog.md | 68 + .../components/uni-popup-dialog/keypress.js | 45 + .../uni-popup-dialog/uni-popup-dialog.vue | 275 + .../uni-popup-message/uni-popup-message.vue | 143 + .../uni-popup-share/uni-popup-share.vue | 187 + .../components/uni-popup/i18n/en.json | 7 + .../components/uni-popup/i18n/index.js | 8 + .../components/uni-popup/i18n/zh-Hans.json | 7 + .../components/uni-popup/i18n/zh-Hant.json | 7 + .../components/uni-popup/keypress.js | 45 + .../uni-popup/components/uni-popup/popup.js | 26 + .../components/uni-popup/uni-popup.vue | 473 + src/uni_modules/uni-popup/package.json | 87 + src/uni_modules/uni-popup/readme.md | 17 + src/uni_modules/uni-rate/changelog.md | 25 + .../uni-rate/components/uni-rate/uni-rate.vue | 361 + src/uni_modules/uni-rate/package.json | 88 + src/uni_modules/uni-rate/readme.md | 12 + src/uni_modules/uni-scss/changelog.md | 8 + src/uni_modules/uni-scss/index.scss | 1 + src/uni_modules/uni-scss/package.json | 82 + src/uni_modules/uni-scss/readme.md | 4 + src/uni_modules/uni-scss/styles/index.scss | 7 + .../uni-scss/styles/setting/_border.scss | 3 + .../uni-scss/styles/setting/_color.scss | 66 + .../uni-scss/styles/setting/_radius.scss | 55 + .../uni-scss/styles/setting/_space.scss | 56 + .../uni-scss/styles/setting/_styles.scss | 167 + .../uni-scss/styles/setting/_text.scss | 24 + .../uni-scss/styles/setting/_variables.scss | 146 + .../uni-scss/styles/tools/functions.scss | 19 + src/uni_modules/uni-scss/theme.scss | 31 + src/uni_modules/uni-scss/variables.scss | 62 + src/uni_modules/uni-transition/changelog.md | 22 + .../uni-transition/createAnimation.js | 131 + .../uni-transition/uni-transition.vue | 286 + src/uni_modules/uni-transition/package.json | 84 + src/uni_modules/uni-transition/readme.md | 11 + styles/style.css | 269 + tool/index.js | 88 + 233 files changed, 46984 insertions(+) create mode 100644 .gitignore create mode 100644 .hbuilderx/launch.json create mode 100644 api/config.js create mode 100644 api/index.js create mode 100644 api/regist.js create mode 100644 api/smoke.js create mode 100644 babel.config.js create mode 100644 npminstall-debug.log create mode 100644 package.json create mode 100644 postcss.config.js create mode 100644 public/index.html create mode 100644 shims-uni.d.ts create mode 100644 shims-vue.d.ts create mode 100644 src/App.vue create mode 100644 src/components/cmd-progress/cmd-progress.vue create mode 100644 src/components/evils-el-poster/Poster.vue create mode 100644 src/components/lx-calendar/lx-calendar.md create mode 100644 src/components/lx-calendar/lx-calendar.vue create mode 100644 src/components/nothing/nothing.vue create mode 100644 src/lx-calendar.md create mode 100644 src/main.js create mode 100644 src/manifest.json create mode 100644 src/pages.json create mode 100644 src/pages/agreement/children.vue create mode 100644 src/pages/agreement/privacyPolicy.vue create mode 100644 src/pages/agreement/serviceAgreement.vue create mode 100644 src/pages/agreement/userAgreement.vue create mode 100644 src/pages/agreement/web-view.vue create mode 100644 src/pages/detail/detail.vue create mode 100644 src/pages/hairtailScreen/bestFood/detail/detail.scss create mode 100644 src/pages/hairtailScreen/bestFood/detail/detail.vue create mode 100644 src/pages/hairtailScreen/bestFood/index/index.scss create mode 100644 src/pages/hairtailScreen/bestFood/index/index.vue create mode 100644 src/pages/hairtailScreen/exchangePortion/detail/detail.scss create mode 100644 src/pages/hairtailScreen/exchangePortion/detail/detail.vue create mode 100644 src/pages/hairtailScreen/exchangePortion/index/index.scss create mode 100644 src/pages/hairtailScreen/exchangePortion/index/index.vue create mode 100644 src/pages/hairtailScreen/foodIngredients/detail/detail.scss create mode 100644 src/pages/hairtailScreen/foodIngredients/detail/detail.vue create mode 100644 src/pages/hairtailScreen/foodIngredients/index/index.scss create mode 100644 src/pages/hairtailScreen/foodIngredients/index/index.vue create mode 100644 src/pages/hairtailScreen/static/images/bestFoodBg.png create mode 100644 src/pages/hairtailScreen/static/images/exchange.png create mode 100644 src/pages/hairtailScreen/static/images/exchangeBg.png create mode 100644 src/pages/hairtailScreen/static/images/exchangeTag.png create mode 100644 src/pages/hairtailScreen/static/images/highHeat.png create mode 100644 src/pages/hairtailScreen/static/images/homeHide.png create mode 100644 src/pages/hairtailScreen/static/images/homeShow.png create mode 100644 src/pages/hairtailScreen/static/images/ingredients.png create mode 100644 src/pages/hairtailScreen/static/images/ingredientsBg.png create mode 100644 src/pages/hairtailScreen/static/images/lowHeat.png create mode 100644 src/pages/hairtailScreen/static/images/nothing.png create mode 100644 src/pages/hairtailScreen/static/images/rightArrow.png create mode 100644 src/pages/hairtailScreen/static/images/search.png create mode 100644 src/pages/health-risks/basicReport/basicReport.scss create mode 100644 src/pages/health-risks/basicReport/basicReport.vue create mode 100644 src/pages/health-risks/evaluationResults/evaluationResults.scss create mode 100644 src/pages/health-risks/evaluationResults/evaluationResults.vue create mode 100644 src/pages/health-risks/guideDetails/guideDetails.vue create mode 100644 src/pages/health-risks/index/index.scss create mode 100644 src/pages/health-risks/index/index.vue create mode 100644 src/pages/health-risks/static/images/right.png create mode 100644 src/pages/index/index.vue create mode 100644 src/pages/plan-questionnaire/diseaseIndex/diseaseIndex.scss create mode 100644 src/pages/plan-questionnaire/diseaseIndex/diseaseIndex.vue create mode 100644 src/pages/plan-questionnaire/moodRequest/moodRequest.scss create mode 100644 src/pages/plan-questionnaire/moodRequest/moodRequest.vue create mode 100644 src/pages/plan-questionnaire/planningReport/planningReport.scss create mode 100644 src/pages/plan-questionnaire/planningReport/planningReport.vue create mode 100644 src/pages/plan-questionnaire/psychologicalIndex/psychologicalIndex.scss create mode 100644 src/pages/plan-questionnaire/psychologicalIndex/psychologicalIndex.vue create mode 100644 src/pages/psychological-assessment/index/index.scss create mode 100644 src/pages/psychological-assessment/index/index.vue create mode 100644 src/pages/psychological-assessment/result/result.scss create mode 100644 src/pages/psychological-assessment/result/result.vue create mode 100644 src/pages/quitSmoking/cessationData/cessationData.vue create mode 100644 src/pages/quitSmoking/content/content.vue create mode 100644 src/pages/quitSmoking/evaluationRecord/evaluationRecord.vue create mode 100644 src/pages/quitSmoking/index/index.scss create mode 100644 src/pages/quitSmoking/index/index.vue create mode 100644 src/pages/quitSmoking/question/question.scss create mode 100644 src/pages/quitSmoking/question/question.vue create mode 100644 src/pages/quitSmoking/recoveryScore/recoveryScore.vue create mode 100644 src/pages/quitSmoking/result/result.vue create mode 100644 src/pages/quitSmoking/scriptsDetail/scriptsDetail.vue create mode 100644 src/pages/quitSmoking/scriptsLearn/scriptsLearn.vue create mode 100644 src/pages/quitSmoking/scriptsList/scriptsList.vue create mode 100644 src/pages/quitSmoking/smokingDiary/smokingDiary.vue create mode 100644 src/pages/quitSmoking/smokingSituation/smokingSituation.vue create mode 100644 src/pages/quitSmoking/smokingTips/smokingTips.vue create mode 100644 src/pages/quitSmoking/static/images/fixedBg.png create mode 100644 src/pages/quitSmoking/statistics/statistics.vue create mode 100644 src/pages/quitSmoking/timeTravel/timeTravel.vue create mode 100644 src/pages/reports/reports.vue create mode 100644 src/pages/scanCodeEvaluation/detail/detail.vue create mode 100644 src/pages/scanCodeEvaluation/health-risks/basicReport/basicReport.scss create mode 100644 src/pages/scanCodeEvaluation/health-risks/basicReport/basicReport.vue create mode 100644 src/pages/scanCodeEvaluation/health-risks/index/index.scss create mode 100644 src/pages/scanCodeEvaluation/health-risks/index/index.vue create mode 100644 src/pages/scanCodeEvaluation/health-risks/static/images/right.png create mode 100644 src/pages/selfRegistration/actionList/actionList.scss create mode 100644 src/pages/selfRegistration/actionList/actionList.vue create mode 100644 src/pages/selfRegistration/content/content.vue create mode 100644 src/pages/selfRegistration/dailyTasks/dailyTasks.scss create mode 100644 src/pages/selfRegistration/dailyTasks/dailyTasks.vue create mode 100644 src/pages/selfRegistration/editTemplate/editTemplate.vue create mode 100644 src/pages/selfRegistration/eventRecording/eventRecording.vue create mode 100644 src/pages/selfRegistration/index/index.vue create mode 100644 src/pages/selfRegistration/planDiary/planDiary.vue create mode 100644 src/pages/selfRegistration/planningCycle/planningCycle.vue create mode 100644 src/pages/selfRegistration/planningReport/planningReport.scss create mode 100644 src/pages/selfRegistration/planningReport/planningReport.vue create mode 100644 src/pages/selfRegistration/static/images/accident.png create mode 100644 src/pages/selfRegistration/static/images/accidentShow.png create mode 100644 src/pages/selfRegistration/static/images/add.png create mode 100644 src/pages/selfRegistration/static/images/bluePao.png create mode 100644 src/pages/selfRegistration/static/images/checked.png create mode 100644 src/pages/selfRegistration/static/images/editFile.png create mode 100644 src/pages/selfRegistration/static/images/signIn.png create mode 100644 src/pages/selfRegistration/static/images/signInShow.png create mode 100644 src/pages/selfRegistration/static/images/whitePao.png create mode 100644 src/pages/selfRegistration/static/images/zhanwei.png create mode 100644 src/pages/selfRegistration/templateSelection/templateSelection.scss create mode 100644 src/pages/selfRegistration/templateSelection/templateSelection.vue create mode 100644 src/pages/selfRegistration2/actionList/actionList.scss create mode 100644 src/pages/selfRegistration2/actionList/actionList.vue create mode 100644 src/pages/selfRegistration2/aplanning/aplanning.vue create mode 100644 src/pages/selfRegistration2/dailyTasks/dailyTasks.scss create mode 100644 src/pages/selfRegistration2/dailyTasks/dailyTasks.vue create mode 100644 src/pages/selfRegistration2/index/index.vue create mode 100644 src/pages/selfRegistration2/planningCycle/planningCycle.vue create mode 100644 src/pages/selfRegistration2/static/images/accident.png create mode 100644 src/pages/selfRegistration2/static/images/accidentShow.png create mode 100644 src/pages/selfRegistration2/static/images/add.png create mode 100644 src/pages/selfRegistration2/static/images/bluePao.png create mode 100644 src/pages/selfRegistration2/static/images/checked.png create mode 100644 src/pages/selfRegistration2/static/images/editFile.png create mode 100644 src/pages/selfRegistration2/static/images/signIn.png create mode 100644 src/pages/selfRegistration2/static/images/signInShow.png create mode 100644 src/pages/selfRegistration2/static/images/whitePao.png create mode 100644 src/pages/selfRegistration2/static/images/zhanwei.png create mode 100644 src/pages/selfRegistration2/templateSelection/templateSelection.scss create mode 100644 src/pages/selfRegistration2/templateSelection/templateSelection.vue create mode 100644 src/static/logo.png create mode 100644 src/static/lx-calendar/fonts/iconfont.css create mode 100644 src/static/lx-calendar/fonts/iconfont.eot create mode 100644 src/static/lx-calendar/fonts/iconfont.svg create mode 100644 src/static/lx-calendar/fonts/iconfont.ttf create mode 100644 src/static/lx-calendar/fonts/iconfont.woff create mode 100644 src/static/lx-calendar/fonts/iconfont.woff2 create mode 100644 src/uni.promisify.adaptor.js create mode 100644 src/uni.scss create mode 100644 src/uni_modules/qiun-data-charts/changelog.md create mode 100644 src/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue create mode 100644 src/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue create mode 100644 src/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue create mode 100644 src/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue create mode 100644 src/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue create mode 100644 src/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue create mode 100644 src/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue create mode 100644 src/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue create mode 100644 src/uni_modules/qiun-data-charts/js_sdk/u-charts/config-echarts.js create mode 100644 src/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js create mode 100644 src/uni_modules/qiun-data-charts/js_sdk/u-charts/readme.md create mode 100644 src/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js create mode 100644 src/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.min.js create mode 100644 src/uni_modules/qiun-data-charts/license.md create mode 100644 src/uni_modules/qiun-data-charts/package.json create mode 100644 src/uni_modules/qiun-data-charts/readme.md create mode 100644 src/uni_modules/qiun-data-charts/static/app-plus/echarts.min.js create mode 100644 src/uni_modules/qiun-data-charts/static/h5/echarts.min.js create mode 100644 src/uni_modules/uni-datetime-picker/changelog.md create mode 100644 src/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue create mode 100644 src/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue create mode 100644 src/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json create mode 100644 src/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js create mode 100644 src/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json create mode 100644 src/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json create mode 100644 src/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue create mode 100644 src/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue create mode 100644 src/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js create mode 100644 src/uni_modules/uni-datetime-picker/package.json create mode 100644 src/uni_modules/uni-datetime-picker/readme.md create mode 100644 src/uni_modules/uni-icons/changelog.md create mode 100644 src/uni_modules/uni-icons/components/uni-icons/icons.js create mode 100644 src/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue create mode 100644 src/uni_modules/uni-icons/components/uni-icons/uni-icons.vue create mode 100644 src/uni_modules/uni-icons/components/uni-icons/uniicons.css create mode 100644 src/uni_modules/uni-icons/components/uni-icons/uniicons.ttf create mode 100644 src/uni_modules/uni-icons/components/uni-icons/uniicons_file.ts create mode 100644 src/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js create mode 100644 src/uni_modules/uni-icons/package.json create mode 100644 src/uni_modules/uni-icons/readme.md create mode 100644 src/uni_modules/uni-popup/changelog.md create mode 100644 src/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js create mode 100644 src/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue create mode 100644 src/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue create mode 100644 src/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue create mode 100644 src/uni_modules/uni-popup/components/uni-popup/i18n/en.json create mode 100644 src/uni_modules/uni-popup/components/uni-popup/i18n/index.js create mode 100644 src/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json create mode 100644 src/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json create mode 100644 src/uni_modules/uni-popup/components/uni-popup/keypress.js create mode 100644 src/uni_modules/uni-popup/components/uni-popup/popup.js create mode 100644 src/uni_modules/uni-popup/components/uni-popup/uni-popup.vue create mode 100644 src/uni_modules/uni-popup/package.json create mode 100644 src/uni_modules/uni-popup/readme.md create mode 100644 src/uni_modules/uni-rate/changelog.md create mode 100644 src/uni_modules/uni-rate/components/uni-rate/uni-rate.vue create mode 100644 src/uni_modules/uni-rate/package.json create mode 100644 src/uni_modules/uni-rate/readme.md create mode 100644 src/uni_modules/uni-scss/changelog.md create mode 100644 src/uni_modules/uni-scss/index.scss create mode 100644 src/uni_modules/uni-scss/package.json create mode 100644 src/uni_modules/uni-scss/readme.md create mode 100644 src/uni_modules/uni-scss/styles/index.scss create mode 100644 src/uni_modules/uni-scss/styles/setting/_border.scss create mode 100644 src/uni_modules/uni-scss/styles/setting/_color.scss create mode 100644 src/uni_modules/uni-scss/styles/setting/_radius.scss create mode 100644 src/uni_modules/uni-scss/styles/setting/_space.scss create mode 100644 src/uni_modules/uni-scss/styles/setting/_styles.scss create mode 100644 src/uni_modules/uni-scss/styles/setting/_text.scss create mode 100644 src/uni_modules/uni-scss/styles/setting/_variables.scss create mode 100644 src/uni_modules/uni-scss/styles/tools/functions.scss create mode 100644 src/uni_modules/uni-scss/theme.scss create mode 100644 src/uni_modules/uni-scss/variables.scss create mode 100644 src/uni_modules/uni-transition/changelog.md create mode 100644 src/uni_modules/uni-transition/components/uni-transition/createAnimation.js create mode 100644 src/uni_modules/uni-transition/components/uni-transition/uni-transition.vue create mode 100644 src/uni_modules/uni-transition/package.json create mode 100644 src/uni_modules/uni-transition/readme.md create mode 100644 styles/style.css create mode 100644 tool/index.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2561bb4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +.DS_Store +node_modules/ +unpackage/ +dist/ + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Editor directories and files +.project +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw* diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json new file mode 100644 index 0000000..81f13f4 --- /dev/null +++ b/.hbuilderx/launch.json @@ -0,0 +1,16 @@ +{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ + // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 + "version": "0.0", + "configurations": [{ + "default" : + { + "launchtype" : "local" + }, + "mp-weixin" : + { + "launchtype" : "local" + }, + "type" : "uniCloud" + } + ] +} diff --git a/api/config.js b/api/config.js new file mode 100644 index 0000000..2a829a8 --- /dev/null +++ b/api/config.js @@ -0,0 +1,73 @@ +import { + toast +} from "/tool/index.js" +export default { + baseUrl: 'https://syjk.yhy.ren/xcx-test/', // 生产 + + post(url, param) { + return this.ajax('post', url, param) + }, + get(url, param) { + return this.ajax('get', url, param) + }, + put(url, param) { + return this.ajax('put', url, param) + }, + getUrl(url) { + return `${this.baseUrl}${url}` + }, + setHeader(url) { + let header = { + 'content-type': 'application/x-www-form-urlencoded', + 'clientType': 'h5' + } + if (url.indexOf('application') != -1) header['content-type'] = 'application/json' + + return header + }, + setParams(param) { + const openId = uni.getStorageSync('openId') || '' + const userId = param.userId || uni.getStorageSync('userId') || '' + param['openId'] = openId + param['token'] = openId + param['userId'] = userId + return param + }, + setUrlParams(isUrlParam, param, url) { + if (!isUrlParam) return '' + let str = [] + for (let i in param) { + str.push(i + '=' + param[i]) + } + return `${(url.indexOf('?')!=-1?'&':'?')}${str.join('&')}` + + }, + ajax(type, url, param = {}) { + return new Promise((resolve, reject) => { + let requestData = this.setParams(param.data || {}) + let urlObj = this.setUrlParams(param.isUrlParam, requestData, url) + let request = { + url: `${this.baseUrl}${url}${urlObj}`, + method: type, + header: this.setHeader(url), + sslVerify: false, + dataType: 'json', + timeout: 300000, + data: requestData, + success: (response) => { + if (response.data.code == 500) { + return toast(response.data.msg) + } + let is = typeof response === 'object' + let data = response.data + resolve(is ? data : response) + }, + fail: (err) => { + reject(err) + }, + } + uni.request(request) + }) + + }, +} diff --git a/api/index.js b/api/index.js new file mode 100644 index 0000000..26f7505 --- /dev/null +++ b/api/index.js @@ -0,0 +1,88 @@ +import ajax from './config' +export default { // 所有接口 + // 心理评估接口 + list: (param) => ajax.post('psychology/dict/list', param), // 获取心理主页数据 + introduInfo: (param) => ajax.post('psychology/paperwork/introduInfo', param), // 心理评估文案表 + subjectList: (param) => ajax.post('psychology/subject/subjectList', param), // 心里评估题目 + tempSave: (param) => ajax.post('psychology/paperUserSave/tempSave?application=true', param), // 评估答题暂存 + pagerUserByCode: (param) => ajax.post('psychology/paperUserSave/pagerUserByCode', param), //根据评估类型查询评估答题试卷 + savePaper: (param) => ajax.post('psychology/paperUserSave/savePaper?application=true', param), //评估答题保存 + anewQuery: (param) => ajax.post('psychology/paperUserSave/anewQuery', param), //重新填写 + queryResult: (param) => ajax.post('psychology/result/queryResult', param), //心理评估结果查看 + queryDimensionFactors: (param) => ajax.post('psychology/factor/queryDimensionFactors', param), //查询雷达因子 + queryResultByCode: (param) => ajax.post('psychology/scale/queryResultByCode', param), //心理评估结果等级 + assessmentReport: (param) => ajax.get('psychology/dict/assessmentReport', param), //心理评估报告 + assessmentResult: (param) => ajax.get('psychology/dict/assessmentResult', param), //心理评估详情 + typeList: (param) => ajax.get('diggmindUser/typeList', param), //查询格米分类 + diggmindUserList: (param) => ajax.post('diggmindUser/list?application=true', param), //根据分类查询列表 + details: (param) => ajax.get('diggmindUser/details', param), //评估详情 + startAssessment: (param) => ajax.get('diggmindUser/startAssessment', param), //问卷地址 + reportAddress: (param) => ajax.get('diggmindUser/reportAddress', param), //报告地址 + getDiseaseResult: (param) => ajax.get('disease-assess-subject/getDiseaseResult', param), //基础评估结果 + // 风险评估接口 + selectDictList: (param) => ajax.get('disease-assess-dict/selectDictList', param), //查询疾病字典 + getUserExtInfo: (param) => ajax.get('sysUser/userExt/getUserExtInfo', param), // 获取用户扩展信息 + saveUserExtInfo: (param) => ajax.post('sysUser/userExt/saveUserExtInfo?application=true', param), //修改用户扩展信息 + selectBasisAssessInfo: (param) => ajax.get('disease-assess-subject/selectBasisAssessInfo', param), //查询题目生成疾病试卷 + selectPaperList: (param) => ajax.get('disease-assess-subject/selectPaperList', param), //试卷查询 + basisAssessSaveJson: (param) => ajax.post('disease-assess-subject/basisAssessSaveJson', param), //保存试卷 暂存试卷 + getDiseaseResult: (param) => ajax.get('disease-assess-subject/getDiseaseResult', param), //评估结果 + generatePaper: (param) => ajax.get('disease-assess-subject/generatePaper', param), //试卷查询,重新生成试卷 + getAssessReport: (param) => ajax.get('disease-assess-subject/getAssessReport', param), //评估报告 + getDiseaseContent: (param) => ajax.get('disease-assess-subject/getDiseaseContent', param), //评估报告内容 + saveDictList: (param) => ajax.get('disease-paper-save/selectDictList', param), //风险评估报告 + getUserAssessReport: (param) => ajax.get('disease-paper-save/getUserAssessReport', param), //评估报告查询 + getFamilyMemberByMemberId: (param) => ajax.get('member/familyMember/getFamilyMemberByMemberId', param), //评估报告查询 + selectHealthyGuide: (param) => ajax.get('disease-assess-subject/selectHealthyGuide', param), //评估报告 + selectTaskIntegral: (param) => ajax.get('integral/userIntegralFlow/selectTaskIntegral', param), //查询本次评估预计生成的积分 + selectFoodsSubjectList: (param) => ajax.get(`disease-plan/selectFoodsSubjectList`, param), // 生成饮食试卷 + beingGenerated: (param) => ajax.get('dis-day-task/beingGenerated', param), + openDayTaskDetail: (param) => ajax.post(`dis-day-task/openDayTaskDetail`, param), // 开启计划 + selectQuestAll: (param) => ajax.get('psychological/psychological-plan-question/selectQuestAll', + param), //获取加入计划的所有问卷题目 + queryEmotionQuest: (param) => ajax.get('psychological/psychological-plan-question/queryEmotionQuest', + param), //查询情绪问卷 + queryStressManagement: (param) => ajax.get('psychological/psychological-plan-question/queryStressManagement', + param), //查询减压问卷 + selectQuestById: (param) => ajax.get('psychological/psychological-plan-question/selectQuestById', + param), //获取每日任务单独问卷题目 + insertQuestResult: (param) => ajax.post( + 'psychological/psychological-plan-question/insertQuestResult?application=true', param), //保存问卷 + getPsychologicalResult: (param) => ajax.get('psychological/psychological-plan-question/getPsychologicalResult', + param), //用户心理加入计划评估综合报告 + getBeliefResult: (param) => ajax.get('psychological/psychological-plan-question/getBeliefResult', + param), //用户心理睡眠个人信念和态度量结果 + getInsomniaResult: (param) => ajax.get('psychological/psychological-plan-question/getInsomniaResult', + param), //查询用户心理失眠程度结果 + getPsychologyInfo: (param) => ajax.get('psychological/psychological-plan-question/getPsychologyInfo', + param), // 查询焦虑情绪评估结果或焦虑自评结果 15,16,32问卷类型 + getEmotionalInfo: (param) => ajax.get('psychological/psychological-plan-question/getEmotionalInfo', + param), // 查询情绪智力量表结果 + // 14天减压 + getSimpleResponse: (param) => ajax.get('psychological/psychological-plan-question/getSimpleResponse', + param), // 查询简易应答量表结果 + getResultEmotion: (param) => ajax.get('api/psychological/task/getResultEmotion', param), + getEmotionManagement: (param) => ajax.get('psychological/psychological-plan-question/getEmotionManagement', + param), // 评估结果页面查询 + getStressManagement: (param) => ajax.get('psychological/psychological-plan-question/getStressManagement', + param), // 评估结果页面查询 + getAssessInfo: (param) => ajax.get('disease-assess-subject/getAssessInfo', param), // 查询评估信息 + getUserAnalysisReport: (param) => ajax.get('ExaminingReport/getUserAnalysisReport', param), // 查看体检报告集合 + queryQuestionAll: (param) => ajax.get('/api/questionnaire/queryQuestionAll', param), // 获取问卷列表 + questSelectQuestById: (param) => ajax.get('/api/questionnaire/selectQuestById', param), // 获取问卷题目 + saveAnswer: (param) => ajax.post('/api/questionnaire/saveAnswer?application=true', param), // 保存问卷 + appLogin: (param) => ajax.get('userLogin/login/appLogin', param), // App手机号登陆 + hasLifestyleAssessment: (param) => ajax.get('dis-day-task/hasLifestyleAssessment', param), //查询生活方式评估状态 + sendTheVerificationCodeApp: (param) => ajax.get('sysUser/sendTheVerificationCodeApp', param), // 发送手机号验证码 + selectFoodsInfo: (param) => ajax.get(`doodsInfo/selectFoodsInfo`, param), // 查询食材详情 + selectDictListByFoodList: (param) => ajax.get('disease-assess-dict/selectDictListByFoodList', param), //查询疾病字典 + getDiseaseFoodsLevel: (param) => ajax.get(`healthTools/getDiseaseFoodsLevel`, param), //食物榜单 + getFoodTypes: (param) => ajax.get('healthTools/getFoodTypes', param), + selectFoodsList: (param) => ajax.get(`healthTools/selectFoodsList`, param), //食物成分 + queryEeFoodType: (param) => ajax.get(`zksr.zksrservice.eefood/yh-ee-food-type/queryEeFoodType`, param), //查询ee屏食物类型 + queryEeFoodInfo: (param) => ajax.get(`zksr.zksrservice.eefood/yh-ee-food-info/queryEeFoodInfo`, param), //查询食物信息 + queryEeFoodInfoDetails: (param) => ajax.get(`zksr.zksrservice.eefood/yh-ee-food-info/queryEeFoodInfoDetails`, param), //查询食物信息详情 + + setSaveActivity: (param) => ajax.post('zksr.zksrservice.autonomous/autonomous-plan-activity/saveActivity?application=true', param), // 保存问卷 + uploadImg: () => ajax.getUrl('qiniu/uploadImg'), //上传图片 +} diff --git a/api/regist.js b/api/regist.js new file mode 100644 index 0000000..45c1ae1 --- /dev/null +++ b/api/regist.js @@ -0,0 +1,47 @@ +import ajax from './config' +export default { + // 查询事项列表 + queryUserMattersTypes: (param) => ajax.get( + 'zksr.zksrservice.autonomous/autonomous-plan-matters-type/queryUserMattersTypes', param), + // 查询事项列表 + queryMatters: (param) => ajax.get('zksr.zksrservice.autonomous/autonomous-plan-matters/queryMatters', param), + // 查询热门事项 + queryMattersHot: (param) => ajax.get('zksr.zksrservice.autonomous/autonomous-plan-matters/queryMattersHot', param), + // 保存事项 + saveMatters: (param) => ajax.post( + 'zksr.zksrservice.autonomous/autonomous-plan-matters/saveMatters?application=true', param), + //保存自主计划 + saveFollowing: (param) => ajax.post( + 'zksr.zksrservice.autonomous/autonomous-plan-user-following/saveFollowing?application=true', param), + // 保存自主计划用户日记 + saveDiaryList: (param) => ajax.post( + 'zksr.zksrservice.autonomous/autonomous-plan-diary/saveDiaryList?application=true', param), + // 分页查询自主计划用户日记 + queryDiaryList: (param) => ajax.get('zksr.zksrservice.autonomous/autonomous-plan-diary/queryDiaryList', param), + // 删除自主计划用户日记 + delDiary: (param) => ajax.post('zksr.zksrservice.autonomous/autonomous-plan-diary/delDiary', param), + // 查询事项列表 + queryMattersName: (param) => ajax.get('zksr.zksrservice.autonomous/autonomous-plan-user-following/queryMattersName', + param), + //保存意外事件 + savePlanAccident: (param) => ajax.post( + 'zksr.zksrservice.autonomous/autonomous-plan-accident/savePlanAccident?application=true', param), + // 时间选择 + timeListNew: (param) => ajax.get('dataDetection/dataDetectionType/timeListNew', param), + // 查询周统计 + queryWeekSummary: (param) => ajax.get('zksr.zksrservice.autonomous/autonomous-plan-user-following/queryWeekSummary', + param), + // 查询用户计划 + queryFollowing: (param) => ajax.get('zksr.zksrservice.autonomous/autonomous-plan-user-following/queryFollowing', + param), + // 修改自主计划 + updAutonomousPlanTask: (param) => ajax.post( + 'zksr.zksrservice.autonomous/autonomous-plan-user-following/updAutonomousPlanTask?application=true', param), + // 操作任务状态 + operationalTaskStatus: (param) => ajax.post( + 'zksr.zksrservice.autonomous/autonomous-plan-user-following/operationalTaskStatus', param), + // 删除自主计划 + delAutonomousPlanTask: (param) => ajax.post( + 'zksr.zksrservice.autonomous/autonomous-plan-user-following/delAutonomousPlanTask', param), + +} diff --git a/api/smoke.js b/api/smoke.js new file mode 100644 index 0000000..7b32f07 --- /dev/null +++ b/api/smoke.js @@ -0,0 +1,39 @@ +import ajax from './config' +export default { + // 戒烟首页 + userSmokingHome: (param) => ajax.get('userSmoking/home', param), + //烟瘾来袭 + smokingCravingAdd: (param) => ajax.post('smokingCraving/add', param), + //重置戒烟 + userSmokingReset: (param) => ajax.post('userSmoking/reset', param), + //开始戒烟 + userSmokingAdd: (param) => ajax.post('userSmoking/add', param), + //本人日记列表 + smokingDiaryList: (param) => ajax.get('smokingDiary/list', param), + //日记保存 + smokingDiaryAdd: (param) => ajax.post('smokingDiary/add', param), + // 删除自主计划用户日记 + smokingDiaryDelete: (param) => ajax.post('smokingDiary/delete', param), + //时光穿梭 + timeTravel: (param) => ajax.get('userSmoking/timeTravel', param), + //健康恢复评分 + healthRecoveryScore: (param) => ajax.get('userSmoking/healthRecoveryScore', param), + //尼古丁成瘾评估问卷 + questionSmokingList: (param) => ajax.get('questionSmoking/list', param), + //尼古丁评估提交 + smokingReportAdd: (param) => ajax.post('smokingReport/add', param), + //根据id获得尼古丁评估记录 + getById: (param) => ajax.get('smokingReport/getById', param), + //尼古丁评估列表 + smokingReportList: (param) => ajax.get('smokingReport/list', param), + //烟瘾统计图 + cartogram: (param) => ajax.get('smokingCraving/cartogram', param), + //烟瘾统计图 + cheatsList: (param) => ajax.get('userSmoking/cheatsList', param), + //新增学习记录 + smokingSecretAdd: (param) => ajax.post('smokingSecret/add', param), + //我的戒烟数据 + smokingCessationData: (param) => ajax.get('userSmoking/smokingCessationData', param), + //判断用户是否第一次进入某个页面 + getUserFirstInto: (param) => ajax.get('sysUser/getUserFirstInto', param), +} diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..a02625a --- /dev/null +++ b/babel.config.js @@ -0,0 +1,81 @@ +const webpack = require('webpack') +const plugins = [] + +if (process.env.UNI_OPT_TREESHAKINGNG) { + plugins.push(require('@dcloudio/vue-cli-plugin-uni-optimize/packages/babel-plugin-uni-api/index.js')) +} + +if ( + ( + process.env.UNI_PLATFORM === 'app-plus' && + process.env.UNI_USING_V8 + ) || + ( + process.env.UNI_PLATFORM === 'h5' && + process.env.UNI_H5_BROWSER === 'builtin' + ) +) { + const path = require('path') + + const isWin = /^win/.test(process.platform) + + const normalizePath = path => (isWin ? path.replace(/\\/g, '/') : path) + + const input = normalizePath(process.env.UNI_INPUT_DIR) + try { + plugins.push([ + require('@dcloudio/vue-cli-plugin-hbuilderx/packages/babel-plugin-console'), + { + file (file) { + file = normalizePath(file) + if (file.indexOf(input) === 0) { + return path.relative(input, file) + } + return false + } + } + ]) + } catch (e) { } +} + +process.UNI_LIBRARIES = process.UNI_LIBRARIES || ['@dcloudio/uni-ui'] +process.UNI_LIBRARIES.forEach(libraryName => { + plugins.push([ + 'import', + { + 'libraryName': libraryName, + 'customName': (name) => { + return `${libraryName}/lib/${name}/${name}` + } + } + ]) +}) + +if (process.env.UNI_PLATFORM !== 'h5') { + plugins.push('@babel/plugin-transform-runtime') +} + +const config = { + presets: [ + [ + '@vue/app', + { + modules: webpack.version[0] > 4 ? 'auto' : 'commonjs', + useBuiltIns: process.env.UNI_PLATFORM === 'h5' ? 'usage' : 'entry' + } + ] + ], + plugins +} + +const UNI_H5_TEST = '**/@dcloudio/uni-h5/dist/index.umd.min.js' +if (process.env.NODE_ENV === 'production') { + config.overrides = [{ + test: UNI_H5_TEST, + compact: true, + }] +} else { + config.ignore = [UNI_H5_TEST] +} + +module.exports = config diff --git a/npminstall-debug.log b/npminstall-debug.log new file mode 100644 index 0000000..8b6293a --- /dev/null +++ b/npminstall-debug.log @@ -0,0 +1,203 @@ +{ + root: 'D:\\songtao\\risk-assessment', + registry: 'https://registry.npmmirror.com', + pkgs: [ + { + name: 'node-sass', + version: 'latest', + type: 'tag', + alias: undefined, + arg: [Result] + } + ], + production: false, + cacheStrict: false, + cacheDir: 'C:\\Users\\SY\\.npminstall_tarball', + env: { + npm_config_registry: 'https://registry.npmmirror.com', + npm_config_argv: '{"remain":[],"cooked":["--fix-bug-versions","--china","--userconfig=C:\\\\Users\\\\SY\\\\.cnpmrc","--disturl=https://cdn.npmmirror.com/binaries/node","--registry=https://registry.npmmirror.com","node-sass","--save"],"original":["--fix-bug-versions","--china","--userconfig=C:\\\\Users\\\\SY\\\\.cnpmrc","--disturl=https://cdn.npmmirror.com/binaries/node","--registry=https://registry.npmmirror.com","node-sass","--save"]}', + npm_config_user_agent: 'npminstall/7.11.1 npm/? node/v14.18.1 win32 x64', + npm_config_cache: 'C:\\Users\\SY\\.npminstall_tarball', + NODE: 'D:\\nodejs\\node.exe', + npm_node_execpath: 'D:\\nodejs\\node.exe', + npm_execpath: 'D:\\node\\nodejs\\node_global\\node_modules\\cnpm\\node_modules\\npminstall\\bin\\install.js', + npm_config_userconfig: 'C:\\Users\\SY\\.cnpmrc', + npm_config_disturl: 'https://cdn.npmmirror.com/binaries/node', + npm_config_r: 'https://registry.npmmirror.com', + COREPACK_NPM_REGISTRY: 'https://registry.npmmirror.com', + NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node', + NVM_NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node', + PHANTOMJS_CDNURL: 'https://cdn.npmmirror.com/binaries/phantomjs', + CHROMEDRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/chromedriver', + OPERADRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/operadriver', + CYPRESS_DOWNLOAD_PATH_TEMPLATE: 'https://cdn.npmmirror.com/binaries/cypress/${version}/${platform}-${arch}/cypress.zip', + ELECTRON_MIRROR: 'https://cdn.npmmirror.com/binaries/electron/', + ELECTRON_BUILDER_BINARIES_MIRROR: 'https://cdn.npmmirror.com/binaries/electron-builder-binaries/', + SASS_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-sass', + SWC_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-swc', + NWJS_URLBASE: 'https://cdn.npmmirror.com/binaries/nwjs/v', + PUPPETEER_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/chrome-for-testing', + PUPPETEER_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing', + PLAYWRIGHT_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/playwright', + SENTRYCLI_CDNURL: 'https://cdn.npmmirror.com/binaries/sentry-cli', + SAUCECTL_INSTALL_BINARY_MIRROR: 'https://cdn.npmmirror.com/binaries/saucectl', + RE2_DOWNLOAD_MIRROR: 'https://cdn.npmmirror.com/binaries/node-re2', + RE2_DOWNLOAD_SKIP_PATH: 'true', + PRISMA_ENGINES_MIRROR: 'https://cdn.npmmirror.com/binaries/prisma', + npm_config_better_sqlite3_binary_host: 'https://cdn.npmmirror.com/binaries/better-sqlite3', + npm_config_keytar_binary_host: 'https://cdn.npmmirror.com/binaries/keytar', + npm_config_sharp_binary_host: 'https://cdn.npmmirror.com/binaries/sharp', + npm_config_sharp_libvips_binary_host: 'https://cdn.npmmirror.com/binaries/sharp-libvips', + npm_config_robotjs_binary_host: 'https://cdn.npmmirror.com/binaries/robotjs', + npm_rootpath: 'D:\\songtao\\risk-assessment', + INIT_CWD: 'D:\\songtao\\risk-assessment' + }, + binaryMirrors: { + ENVS: { + COREPACK_NPM_REGISTRY: 'https://registry.npmmirror.com', + NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node', + NVM_NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node', + PHANTOMJS_CDNURL: 'https://cdn.npmmirror.com/binaries/phantomjs', + CHROMEDRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/chromedriver', + OPERADRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/operadriver', + CYPRESS_DOWNLOAD_PATH_TEMPLATE: 'https://cdn.npmmirror.com/binaries/cypress/${version}/${platform}-${arch}/cypress.zip', + ELECTRON_MIRROR: 'https://cdn.npmmirror.com/binaries/electron/', + ELECTRON_BUILDER_BINARIES_MIRROR: 'https://cdn.npmmirror.com/binaries/electron-builder-binaries/', + SASS_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-sass', + SWC_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-swc', + NWJS_URLBASE: 'https://cdn.npmmirror.com/binaries/nwjs/v', + PUPPETEER_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/chrome-for-testing', + PUPPETEER_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing', + PLAYWRIGHT_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/playwright', + SENTRYCLI_CDNURL: 'https://cdn.npmmirror.com/binaries/sentry-cli', + SAUCECTL_INSTALL_BINARY_MIRROR: 'https://cdn.npmmirror.com/binaries/saucectl', + RE2_DOWNLOAD_MIRROR: 'https://cdn.npmmirror.com/binaries/node-re2', + RE2_DOWNLOAD_SKIP_PATH: 'true', + PRISMA_ENGINES_MIRROR: 'https://cdn.npmmirror.com/binaries/prisma', + npm_config_better_sqlite3_binary_host: 'https://cdn.npmmirror.com/binaries/better-sqlite3', + npm_config_keytar_binary_host: 'https://cdn.npmmirror.com/binaries/keytar', + npm_config_sharp_binary_host: 'https://cdn.npmmirror.com/binaries/sharp', + npm_config_sharp_libvips_binary_host: 'https://cdn.npmmirror.com/binaries/sharp-libvips', + npm_config_robotjs_binary_host: 'https://cdn.npmmirror.com/binaries/robotjs' + }, + '@ali/s2': { host: 'https://cdn.npmmirror.com/binaries/looksgood-s2' }, + sharp: { replaceHostFiles: [Array], replaceHostMap: [Object] }, + '@tensorflow/tfjs-node': { + replaceHostFiles: [Array], + replaceHostRegExpMap: [Object], + replaceHostMap: [Object] + }, + cypress: { + host: 'https://cdn.npmmirror.com/binaries/cypress', + newPlatforms: [Object] + }, + 'utf-8-validate': { + host: 'https://cdn.npmmirror.com/binaries/utf-8-validate/v{version}' + }, + xprofiler: { + remote_path: './xprofiler/v{version}/', + host: 'https://cdn.npmmirror.com/binaries' + }, + leveldown: { host: 'https://cdn.npmmirror.com/binaries/leveldown/v{version}' }, + couchbase: { host: 'https://cdn.npmmirror.com/binaries/couchbase/v{version}' }, + gl: { host: 'https://cdn.npmmirror.com/binaries/gl/v{version}' }, + sqlite3: { + host: 'https://cdn.npmmirror.com/binaries/sqlite3', + remote_path: 'v{version}' + }, + '@journeyapps/sqlcipher': { host: 'https://cdn.npmmirror.com/binaries' }, + grpc: { + host: 'https://cdn.npmmirror.com/binaries', + remote_path: '{name}/v{version}' + }, + 'grpc-tools': { host: 'https://cdn.npmmirror.com/binaries' }, + wrtc: { + host: 'https://cdn.npmmirror.com/binaries', + remote_path: '{name}/v{version}' + }, + fsevents: { host: 'https://cdn.npmmirror.com/binaries/fsevents' }, + nodejieba: { host: 'https://cdn.npmmirror.com/binaries/nodejieba' }, + canvas: { host: 'https://cdn.npmmirror.com/binaries/canvas' }, + 'skia-canvas': { host: 'https://cdn.npmmirror.com/binaries/skia-canvas' }, + 'flow-bin': { + replaceHost: 'https://github.com/facebook/flow/releases/download/v', + host: 'https://cdn.npmmirror.com/binaries/flow/v' + }, + 'jpegtran-bin': { + replaceHost: [Array], + host: 'https://cdn.npmmirror.com/binaries/jpegtran-bin' + }, + 'cwebp-bin': { + replaceHost: [Array], + host: 'https://cdn.npmmirror.com/binaries/cwebp-bin' + }, + 'zopflipng-bin': { + replaceHost: [Array], + host: 'https://cdn.npmmirror.com/binaries/zopflipng-bin' + }, + 'optipng-bin': { + replaceHost: [Array], + host: 'https://cdn.npmmirror.com/binaries/optipng-bin' + }, + mozjpeg: { + replaceHost: [Array], + host: 'https://cdn.npmmirror.com/binaries/mozjpeg-bin' + }, + gifsicle: { + replaceHost: [Array], + host: 'https://cdn.npmmirror.com/binaries/gifsicle-bin' + }, + 'pngquant-bin': { + replaceHost: [Array], + host: 'https://cdn.npmmirror.com/binaries/pngquant-bin', + replaceHostMap: [Object] + }, + 'pngcrush-bin': { + replaceHost: [Array], + host: 'https://cdn.npmmirror.com/binaries/pngcrush-bin' + }, + 'jpeg-recompress-bin': { + replaceHost: [Array], + host: 'https://cdn.npmmirror.com/binaries/jpeg-recompress-bin' + }, + 'advpng-bin': { + replaceHost: [Array], + host: 'https://cdn.npmmirror.com/binaries/advpng-bin' + }, + 'pngout-bin': { + replaceHost: [Array], + host: 'https://cdn.npmmirror.com/binaries/pngout-bin' + }, + 'jpegoptim-bin': { + replaceHost: [Array], + host: 'https://cdn.npmmirror.com/binaries/jpegoptim-bin' + }, + argon2: { host: 'https://cdn.npmmirror.com/binaries/argon2' }, + 'ali-zeromq': { host: 'https://cdn.npmmirror.com/binaries/ali-zeromq' }, + 'ali-usb_ctl': { host: 'https://cdn.npmmirror.com/binaries/ali-usb_ctl' }, + 'gdal-async': { host: 'https://cdn.npmmirror.com/binaries/node-gdal-async' }, + 'libpg-query': { host: 'https://cdn.npmmirror.com/binaries' } + }, + forbiddenLicenses: null, + flatten: false, + proxy: undefined, + prune: false, + disableFallbackStore: false, + workspacesMap: Map(0) {}, + enableWorkspace: false, + workspaceRoot: 'D:\\songtao\\risk-assessment', + isWorkspaceRoot: true, + isWorkspacePackage: false, + offline: false, + strictSSL: true, + ignoreScripts: false, + foregroundScripts: false, + ignoreOptionalDependencies: false, + detail: false, + forceLinkLatest: false, + trace: false, + engineStrict: false, + registryOnly: false, + client: false, + autoFixVersion: [Function: autoFixVersion] +} \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..ed2c3e9 --- /dev/null +++ b/package.json @@ -0,0 +1,114 @@ +{ + "name": "risk-assessment", + "version": "0.1.0", + "private": true, + "scripts": { + "serve": "npm run dev:h5", + "build": "npm run build:h5", + "build:app-plus": "cross-env NODE_ENV=production UNI_PLATFORM=app-plus vue-cli-service uni-build", + "build:custom": "cross-env NODE_ENV=production uniapp-cli custom", + "build:h5": "cross-env NODE_ENV=production UNI_PLATFORM=h5 vue-cli-service uni-build", + "build:mp-360": "cross-env NODE_ENV=production UNI_PLATFORM=mp-360 vue-cli-service uni-build", + "build:mp-alipay": "cross-env NODE_ENV=production UNI_PLATFORM=mp-alipay vue-cli-service uni-build", + "build:mp-baidu": "cross-env NODE_ENV=production UNI_PLATFORM=mp-baidu vue-cli-service uni-build", + "build:mp-jd": "cross-env NODE_ENV=production UNI_PLATFORM=mp-jd vue-cli-service uni-build", + "build:mp-kuaishou": "cross-env NODE_ENV=production UNI_PLATFORM=mp-kuaishou vue-cli-service uni-build", + "build:mp-lark": "cross-env NODE_ENV=production UNI_PLATFORM=mp-lark vue-cli-service uni-build", + "build:mp-qq": "cross-env NODE_ENV=production UNI_PLATFORM=mp-qq vue-cli-service uni-build", + "build:mp-toutiao": "cross-env NODE_ENV=production UNI_PLATFORM=mp-toutiao vue-cli-service uni-build", + "build:mp-weixin": "cross-env NODE_ENV=production UNI_PLATFORM=mp-weixin vue-cli-service uni-build", + "build:mp-xhs": "cross-env NODE_ENV=production UNI_PLATFORM=mp-xhs vue-cli-service uni-build", + "build:quickapp-native": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-native vue-cli-service uni-build", + "build:quickapp-webview": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview vue-cli-service uni-build", + "build:quickapp-webview-huawei": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview-huawei vue-cli-service uni-build", + "build:quickapp-webview-union": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview-union vue-cli-service uni-build", + "dev:app-plus": "cross-env NODE_ENV=development UNI_PLATFORM=app-plus vue-cli-service uni-build --watch", + "dev:custom": "cross-env NODE_ENV=development uniapp-cli custom", + "dev:h5": "cross-env NODE_ENV=development UNI_PLATFORM=h5 vue-cli-service uni-serve", + "dev:mp-360": "cross-env NODE_ENV=development UNI_PLATFORM=mp-360 vue-cli-service uni-build --watch", + "dev:mp-alipay": "cross-env NODE_ENV=development UNI_PLATFORM=mp-alipay vue-cli-service uni-build --watch", + "dev:mp-baidu": "cross-env NODE_ENV=development UNI_PLATFORM=mp-baidu vue-cli-service uni-build --watch", + "dev:mp-jd": "cross-env NODE_ENV=development UNI_PLATFORM=mp-jd vue-cli-service uni-build --watch", + "dev:mp-kuaishou": "cross-env NODE_ENV=development UNI_PLATFORM=mp-kuaishou vue-cli-service uni-build --watch", + "dev:mp-lark": "cross-env NODE_ENV=development UNI_PLATFORM=mp-lark vue-cli-service uni-build --watch", + "dev:mp-qq": "cross-env NODE_ENV=development UNI_PLATFORM=mp-qq vue-cli-service uni-build --watch", + "dev:mp-toutiao": "cross-env NODE_ENV=development UNI_PLATFORM=mp-toutiao vue-cli-service uni-build --watch", + "dev:mp-weixin": "cross-env NODE_ENV=development UNI_PLATFORM=mp-weixin vue-cli-service uni-build --watch", + "dev:mp-xhs": "cross-env NODE_ENV=development UNI_PLATFORM=mp-xhs vue-cli-service uni-build --watch", + "dev:quickapp-native": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-native vue-cli-service uni-build --watch", + "dev:quickapp-webview": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview vue-cli-service uni-build --watch", + "dev:quickapp-webview-huawei": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview-huawei vue-cli-service uni-build --watch", + "dev:quickapp-webview-union": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview-union vue-cli-service uni-build --watch", + "info": "node node_modules/@dcloudio/vue-cli-plugin-uni/commands/info.js", + "serve:quickapp-native": "node node_modules/@dcloudio/uni-quickapp-native/bin/serve.js", + "test:android": "cross-env UNI_PLATFORM=app-plus UNI_OS_NAME=android jest -i", + "test:h5": "cross-env UNI_PLATFORM=h5 jest -i", + "test:ios": "cross-env UNI_PLATFORM=app-plus UNI_OS_NAME=ios jest -i", + "test:mp-baidu": "cross-env UNI_PLATFORM=mp-baidu jest -i", + "test:mp-weixin": "cross-env UNI_PLATFORM=mp-weixin jest -i" + }, + "dependencies": { + "@dcloudio/uni-app": "^2.0.2-3081220230817001", + "@dcloudio/uni-app-plus": "^2.0.2-3081220230817001", + "@dcloudio/uni-h5": "^2.0.2-3081220230817001", + "@dcloudio/uni-i18n": "^2.0.2-3081220230817001", + "@dcloudio/uni-mp-360": "^2.0.2-3081220230817001", + "@dcloudio/uni-mp-alipay": "^2.0.2-3081220230817001", + "@dcloudio/uni-mp-baidu": "^2.0.2-3081220230817001", + "@dcloudio/uni-mp-jd": "^2.0.2-3081220230817001", + "@dcloudio/uni-mp-kuaishou": "^2.0.2-3081220230817001", + "@dcloudio/uni-mp-lark": "^2.0.2-3081220230817001", + "@dcloudio/uni-mp-qq": "^2.0.2-3081220230817001", + "@dcloudio/uni-mp-toutiao": "^2.0.2-3081220230817001", + "@dcloudio/uni-mp-vue": "^2.0.2-3081220230817001", + "@dcloudio/uni-mp-weixin": "^2.0.2-3081220230817001", + "@dcloudio/uni-mp-xhs": "^2.0.2-3081220230817001", + "@dcloudio/uni-quickapp-native": "^2.0.2-3081220230817001", + "@dcloudio/uni-quickapp-webview": "^2.0.2-3081220230817001", + "@dcloudio/uni-stacktracey": "^2.0.2-3081220230817001", + "@dcloudio/uni-stat": "^2.0.2-3081220230817001", + "@vue/shared": "^3.0.0", + "autoprefixer": "^8.0.0", + "core-js": "^3.8.3", + "flyio": "^0.6.2", + "less": "^4.2.0", + "less-loader": "^11.1.3", + "markdown-it-vue": "^1.1.7", + "postcss": "^8.4.31", + "postcss-loader": "^7.3.3", + "vue": ">= 2.6.14 < 2.7", + "vue-markdown": "^2.2.4", + "vuex": "^3.2.0" + }, + "devDependencies": { + "@dcloudio/types": "^3.3.2", + "@dcloudio/uni-automator": "^2.0.2-3081220230817001", + "@dcloudio/uni-cli-i18n": "^2.0.2-3081220230817001", + "@dcloudio/uni-cli-shared": "^2.0.2-3081220230817001", + "@dcloudio/uni-helper-json": "*", + "@dcloudio/uni-migration": "^2.0.2-3081220230817001", + "@dcloudio/uni-template-compiler": "^2.0.2-3081220230817001", + "@dcloudio/vue-cli-plugin-hbuilderx": "^2.0.2-3081220230817001", + "@dcloudio/vue-cli-plugin-uni": "^2.0.2-3081220230817001", + "@dcloudio/vue-cli-plugin-uni-optimize": "^2.0.2-3081220230817001", + "@dcloudio/webpack-uni-mp-loader": "^2.0.2-3081220230817001", + "@dcloudio/webpack-uni-pages-loader": "^2.0.2-3081220230817001", + "@vue/cli-plugin-babel": "~5.0.0", + "@vue/cli-service": "~5.0.0", + "babel-plugin-import": "^1.11.0", + "cross-env": "^7.0.2", + "jest": "^25.4.0", + "node-sass": "^4.14.1", + "postcss-comment": "^2.0.0", + "sass": "^1.69.2", + "sass-loader": "^7.3.1", + "vue-template-compiler": ">= 2.6.14 < 2.7" + }, + "browserslist": [ + "Android >= 4.4", + "ios >= 9" + ], + "uni-app": { + "scripts": {} + } +} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..dfc0bd7 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,27 @@ +const path = require('path') +const webpack = require('webpack') +const config = { + parser: require('postcss-comment'), + plugins: [ + require('postcss-import')({ + resolve (id, basedir, importOptions) { + if (id.startsWith('~@/')) { + return path.resolve(process.env.UNI_INPUT_DIR, id.substr(3)) + } else if (id.startsWith('@/')) { + return path.resolve(process.env.UNI_INPUT_DIR, id.substr(2)) + } else if (id.startsWith('/') && !id.startsWith('//')) { + return path.resolve(process.env.UNI_INPUT_DIR, id.substr(1)) + } + return id + } + }), + require('autoprefixer')({ + remove: process.env.UNI_PLATFORM !== 'h5' + }), + require('@dcloudio/vue-cli-plugin-uni/packages/postcss') + ] +} +if (webpack.version[0] > 4) { + delete config.parser +} +module.exports = config diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..abe5dc2 --- /dev/null +++ b/public/index.html @@ -0,0 +1,31 @@ + + + +
+ + +本政策仅适用于湖南鲨鱼健康有限公司 + 的鲨鱼云康App提供的产品或服务,包括您访问鲨鱼云康App使用平台提供的服务。
+版本生效日期:2024年01月15日
+最近更新日期:2024年01月15日
+湖南鲨鱼健康有限公司(“鲨鱼云康”或“我们”)深知儿童(指未满十四周岁的未成年人,下同)个人信息和隐私安全的重要性。 + 在《鲨鱼云康隐私政策》的基础上,我们希望通过《鲨鱼云康儿童个人信息保护规则及监护人须知》(以下简称“本政策”)说明我们在收集和使用儿童个人信息时对应的处理规则等相关事宜。 + 您作为您孩子的父母或其他监护人 ((1)法定监护人,(2)指定监护人, (3)遗嘱监护人,(4)委托监护人,以下统称为“监护人”), + 请在您或您孩子使用鲨鱼云康产品及服务(定义详见《鲨鱼云康隐私政策》)前务必仔细阅读并透彻理解本政策,在确认充分理解并同意全部条款后再开始使用或允许您的孩子使用。
+目录
+一、我们如何收集和使用儿童个人信息
+二、我们如何共享、转让、公开披露儿童个人信息
+三、我们如何储存儿童个人信息
+四、我们如何保护儿童个人信息
+五、本政策的修订
+六、如何联系我们
+监护人特别说明
+
监护人,是指对无民事行为能力人和限制民 + 事行为能力人的人身、财产和其他一切合法权益 + 负有监护职责的人。您需要理解和配合我们,确 + 保您的孩子在您的同意和指导下使用鲨鱼云康服务 + 和向我们提交个人信息。我们将根据本政策采取 + 特殊措施保护我们获得的您孩子的个人信息。如 + 果您不同意本政策的内容,请您要求您的孩子立 + 即停止访问或使用鲨鱼云康产品及服务。
+
儿童特别说明
+
本政策中的儿童是指年龄不满14周岁的人 + 员,任何儿童参加网上活动都应事先取得监护人 + 的同意。如果您是儿童,请务必通知您的监护人 + 共同阅读本政策,并在您使用鲨鱼云康服务、提交 + 个人信息之前,寻求您的监护人的同意和指导。 + 本政策适用于我们在中华人民共和国境内通 + 过网络从事收集、存储、使用、转移、分享和披 + 露儿童个人信息等活动,包含鲨鱼云康App、鲨鱼云康 + 小程序、鲨鱼云康或鲨鱼云康关联公司物联网家电设 + 备、网站及微信小程序等。本政策为在《鲨鱼云康 + 隐私政策》基础上制定的特别规则,与《鲨鱼云康 + 隐私政策》如有不一致之处,以本规则为准 + 本规则未载明之处,则参照适用《鲨鱼云康隐私政 + 策》。
+
在阅读完本政策后,如对本政策或与本政策 + 相关的事宜有任何问题,可通过本政策“六、如 + 何联系我们”章节所列的反馈渠道联系我们,我 + 们会尽快作出解答。
+
(一)我们会严格履行法律法规规定的儿童个人信息保护义务与责任,遵循正当必要、知情同意、目的明确、安全保障、依法利用的原则在征得监护人的同意后收集和使用儿童个人信息:
+1、为了更好地保护儿童的权益,我们可能向监护 + 人收集更多信息(例如姓名、身份证、户口本或 + 其他监护关系证明),以便进一步验证监护人与 + 儿童的监护关系。
+2、您在使用鲨鱼云康服务中主动向我们提供您孩子 + 的个人信息,例如您在我们为您提供的评论、社 + 区及其他信息发布功能下分享的您孩子的照片或 + 视频,视为您已经同意我们收集和按照本政策的 + 内容收集和使用您孩子的个人信息。
+(二)您或您的孩子在使用鲨鱼云康服务过程 + 中,我们为向您或者您的孩子提供鲨鱼云康服务 + 提供个性化展示或推荐以及为您的账户提供安全 + 保障等目的,我们可能还会收集和使用其他儿童 + 个人信息有关具休的使用目的,收集个人信息 + 的范围以及拒绝提供相应信息的后果请您查阅 + 《鲨鱼云康隐私政策》 + “一、我们如何收集和使用 + 您的个人信息”章节进行详细了解。此外,我们 + 也会通过Cookies、SDK等同类技术自动收集您 + 或您孩子的个人信息,具体请您查阅《鲨鱼云康隐私政策》“五、我们如何使用 Cookie 和同类技 + 术”进行详细了解。如我们需要超出上述范围收 + 集和使用儿童个人信息,我们将再次征得监护人 + 的同意。
+请您注意,某些情形下我们将无法识别收集 + 和处理的个人信息是否属于儿童个人信息,比如 + 通过计算机信息系统自动留存处理信息且无法识 + 别所留存处理的信息属于儿童个人信息的(如在 + 匿名浏览过程中的浏览记录等)等我们将按照 + 《鲨鱼云康隐私政策》收集和处理用户的个人信 + 息。
+(三)征得授权同意的例外
+根据相关法律法规规定,以下情形中收集儿 + 童的信息无需征得儿童监护人的授权同意:
+(1)与我们履行法律法规规定的义务相关的;
+(2)与国家安全、国防安全、公共安全、公共卫 + 生、重大公共利益有关的;
+(3)与犯罪侦查、起诉、审判和判决执行等有关 + 的;
+(4)出于维护儿童、您或其他个人的生命、财 + 产等重大合法权益但又很难得到您本人同意的;
+(5)所收集的信息是儿童或监护人自行向社会公 + 众公开的;
+(6)从合法公开披露的信息中收集信息的,如合 + 法的新闻报道、政府信息公开等渠道;
+(7)根据与您或您的孩子签订和履行相关协议或 + 其他书面文件所必需的;
+(8)用于维护鲨鱼云康服务的安全稳定运行所必需的,例如发现、处置鲨鱼云康服务的故障;
+(9)学术研究机构基于公共利益开展统计或学术 + 研究所必要,且对外提供学术研究或描述的结果 + 时,对结果中所包含的信息进行去标识化处理 + 的;
+(10)法律法规规定的其他情形。
+我们承诺对儿童个人信息进行严格保密,仅在符合本政策说明和您明确授权同意的情况下对外共享儿童个人信息。 + 为了提升信息处理效率降低信息处理成本,或提高信息处理准确性,我们可能会委托有能力的我们的关联公司或其他专业机构代表我们来处理儿童个人信息, + 具体请参见《鲨鱼云康隐私政策》“我们如何共享、转让、公开披露您的信息”部分。
+(一)如果为了本政策所述目的而需要将儿 + 童个人信息共享至第三方,我们将评估该第三方 + 收集儿童个人信息的合法性、正当性、必要性。
+(二)我们将要求第三方对儿童个人信息采 + 取保护措施,并且严格遵守相关法律法规与监管 + 要求。我们会要求接收儿童个人信息的第三方遵 + 守严格的保密义务及采取有效的保密措施,禁止 + 其将这些儿童个人信息用于未经儿童及其监护人 + 授权的用途,并要求受托公司依法履行以下业务:
+1、按照法律、行政法规的规定和我们的要求处理儿童个人信息;
+2、协助我们回应儿童监护人提出的申请;
+3、采取措施保障信息安全,并在发生儿童个人信息泄露安全事件时,及时向我们反馈;
+4、委托关系解除时及时删除儿童个人信息;
+5、不得转委托;
+6、其他依法应当履行的儿童个人信息保护义务。
+(三)另外,我们会按照法律法规的要求征得您的同意,或确认第三方已经征得您同意。
+(一)我们在中华人民共和国境内运营中收集和产生的儿童个人信息,将存储在中国境内。以下情形下,我们会在履行了法律规定的义务后,向境外的组织或个人提供儿童的个人信息:
+1、适用的法律有明确规定;
+2、获得您的明确授权;
+3、您或者您的孩子通过互联网进行跨境交易等个人主动行为。
+针对以上情形,我们会通过合同等形式确保以不低于本政策规定的程度保护儿童的个人信息。
+(二)我们会采取合理可行的措施,尽力避免收集和处理无关的儿童的个人信息。我们只会在达成本政策所述目的所需的期限内保留儿童的个人信息, + 除非法律有强制的留存要求。关于我们如何确定儿童个人信息存储期限请参见《鲨鱼云康隐私政策》“三、我们如何保护您的个人信息”。如我们终止服务或运营, + 我们将及时停止继续收集儿童个人信息的活动,同时会遵守相关法律法规要求提前向监护人通知,并在终止服务或运营后对儿童的个人信息进行删除或匿名化处理, + 但法律法规或监管部门另有规定的除外。
+我们非常重视儿童的隐私安全,并采取一切合理可行的措施,保护儿童个人信息:
+(一)我们会严格控制儿童个人信息的访问权限,对可能接触到儿童个人信息的工作人员采取最小够用授权原则,并采取技术措施对工作人员处理儿童个人信息的行为进行记录和管控,避免违法复制、下载儿童个人信息。
+(二)我们已制定儿童个人信息安全事件应急预案,会定期组织内部相关人员进行应急响应培训和应急演练,使其掌握岗位职责和应急处置策略和规程。 + 在不幸发生儿童个人信息安全事件后,我们将按照法律法规的要求,及时向儿童及其监护人告知:安全事件的基本情况和可能的影响、 + 我们已采取或将要采取的处置措施、儿童及其监护人可自主防范和降低风险的建议、对儿童及其监护人的补救措施等。我们将及时将事件相关情况以APP推送通知、 + 发送邮件/短消息等方式告知儿童及其监护人。难以逐一告知时,我们会采取合理、有效的方式发布相关警示信息。同时,我们还将按照监管部门要求, + 主动上报儿童个人信息安全事件的处置情况。若儿童及其监护人的合法权益受损,我们将承担相应的法律责任。
+(三)如您希望了解更多,请查阅《鲨鱼云康隐私政策》“三、我们如何保护您的个人信息”章节,详细了解我们如何采取了哪些措施保护儿童个人信息。
+我们可能会根据鲨鱼云康服务的更新情况及法律法规的相关要求适时修改本政策的条款,该等修改构成本政策的一部分, + 我们会在专门页面[鲨鱼云康客户端-我的-设置-关于鲨鱼云康-《隐私政策》对应链接中展示最新修改版本。 + 由于鲨鱼云康的用户较多,对于重大变更,我们还会提供更为显著的通知(包括通过网站或客户端首页公示的方式进行通知甚至向您提供弹窗提示), + 具体详见《鲨鱼云康隐私政策》第八条“本政策如何更新”的规定。
+如您和您的孩子对本政策存在任何疑问,或对于儿童个人信息处理存在任何投诉、意见,请通过以下渠道联系我们, + 我们将在收到问题、意见或建议,并验证监护人和/或儿童身份后的十五天内回复您的请求:
+电子邮件: 841382055@qq.com
+电话: 400-833-3131
+注册地址:湖南省长沙市岳麓区梅溪湖街道泉水路461号长沙健康医疗大数据产业孵化基地3-1栋2楼201
+本政策仅适用于湖南鲨鱼健康有限公司的鲨鱼云康App提供的产品或服务,包括您访问鲨鱼云康App使用平台提供的服务,湖南鲨鱼健康有限公司(“鲨鱼云康”或“湖南鲨鱼健康科技有限公司”)。
+最近更新日期: 2024年01月15日,版本号为V1.00
+版本生效日期: 2024年01月15日
+本政策将帮助您了解以下内容:
+一、政策声明
+二、湖南鲨鱼健康科技有限公司如何收集和使用您的个人信息
+三、湖南鲨鱼健康科技有限公司如何共享、转让、公开披露您的个人信息
+四、湖南鲨鱼健康科技有限公司如何保护您的个人信息
+五、湖南鲨鱼健康科技有限公司如何处理儿童的个人信息
+六、湖南鲨鱼健康科技有限公司如何使用 Cookie 和同类技术
+七、您的权利
+八、您的个人信息如何储存及超出储存期限处理办法
+九、本政策如何更新
+十、如何联系湖南鲨鱼健康科技有限公司
++ 湖南鲨鱼健康科技有限公司深知个人信息对您的重要性,并会尽全力 + 保护您的个人信息安全可靠。湖南鲨鱼健康科技有限公司致力于维持您 + 对湖南鲨鱼健康科技有限公司的信任,恪守以下原则,保护您的个人信 + 息:权责一致原则、目的明确原则、选择同意原 + 则、最少够用原则、确保安全原则、主体参与原 + 则、公开透明原则。同时,鲨鱼云康承诺,湖南鲨鱼健康科技有限公司将按 + 业界成熟的安全标准,采取相应的安全保护措施 + 来保护您的个人信息 +
++ 1.1本隐私政策适用于引用或链接本政策的与鲨鱼云康或鲨鱼云康相关联公司家电有关的设备、网站客户端、小程序,即鲨鱼云康App、鲨鱼云康小程序、鲨鱼云康或鲨鱼云康关联公司物联网家电设备、网站及微信小程序等。特别需要提醒你的是,鲨鱼云康App、鲨鱼云康小程序为统一帐号体系,您在两者中任意平台注册帐号,都可通过该帐号登录另一平台并享受相关服务。此外,需要特别说明的是,本协议不适用于第三方向您提供的服务,例如通过鲨鱼云康平台跳转到第三方网站、客户端或程序,您向该第三方服务商提供的个人信息不适用本协议 +
++ 个人信息是指以电子或者其他方式记录的能够 + 单独或者与其他信息结合识别特定自然人身份或 + 者反映特定自然人活动情况的各种信息。 +
1.创建您的鲨鱼云康账号
+2.能够发现和对设备进行配网
+3能够控制和使用设备
+4.进行语音识别与控制
+5.提供基于地理位置的服务
+6.处理您的订单
+7.评估与分析App产品功能与服务情况
+8.进行通知或推送
+9.提供App安全保障
+10.其它鲨鱼云康服务
++
+ 当您注册鲨鱼云康账户及您在使用鲨鱼云康平台时提供 + 的相关服务时填写及/或提交的信息,包括您的电话号码、电子邮箱。 +
++ 鲨鱼云康将通过鲨鱼云康页面向您展示需要您提交的信息,届时以页面展示为准,如果您不使用某些服务,则无需提供相关信息。对于您明确拒绝使用、关闭或退出的特定业务功能,App在您打开该业务功能或相关系统权限时将会再次询问您是否您是否同意开启相关权限,且App在更新升级后,不会更改原有的系统权限设置。 +
+ (二)在您使用服务过程中收集的信息 +湖南鲨鱼健康科技有限公司收集您使用产品和服务的相关信息包括:
++ 2.1湖南鲨鱼健康科技有限公司会在根据您在软件安装及使用汇总授 + 予的具体权限,接收并记录您所使用的智能设备 + 相关信息,包括您的登录账号信息 (帐号、昵 + 称、头像信息)、手机相关信息 (硬件设备标识 + (imsi、imei、meid、设备硬件序列号、SIM 卡标 + 识、OAID、Mac 地址、Android ID)、手机型号 + 系统版本信息、系统语言、手机所设置的国家或 + 地区、应用商店的版本号、手机屏幕尺寸及分辨 + 率、CPU及显示设备相关信息) 连接智能设备过 + 程中收集的信息:基于您需要链接的智能设备的 + 类型,湖南鲨鱼健康科技有限公司可能会收集: Wi-Fi信息 (SSID + BSSID、Wi-Fi的Mac 地址、Wi-Fi 密码) 、设备 + Mac 地址、设备ID、设备蓝牙 Mac 地址) 、设 + 备唯一标识字符,您对软硬件的使用记录、软硬 + 件故障信息数据,包括您的IP地址、访问日期和 + 时间、语言、软硬件特征信息、地理位置,如您 + 下载或使用鲨鱼云康或其关联公司客户端软件,鲨鱼云康 + 可能会读取与您位置和移动设备相关的信息,包 + 括设备型号、操作系统、设备识别码、分辨率 + 电信运营商。为实现向您提供湖南鲨鱼健康科技有限公司产品及/或服务 + 的必要的功能,您须授权湖南鲨鱼健康科技有限公司手机、使用的必要 + 的信息。如您拒绝提供相应信息,您将无法正常 + 使用湖南鲨鱼健康科技有限公司的产品及/或服务。 +
++ 2.2除上述信息外,湖南鲨鱼健康科技有限公司还可能为了提供服务 + 及改进服务质量、服务个性化的合理需要而收集 + 您的其他信息,包括您与湖南鲨鱼健康科技有限公司的客户服务团队联 + 系时您提供的相关信息,您参与问卷调查活动时 + 向湖南鲨鱼健康科技有限公司提供的问卷答复信息,以及您与鲨鱼云康的关 + 联方、合作伙伴之间互动时湖南鲨鱼健康科技有限公司收集的相关信 + 息。与此同时, +
以下为相关应用场景/业务功能及影响:
+服务预约:根据用户填写的信息提供相关保养、投诉、咨询、报修、报装、移机服务;
+附近门店: 根据用户定位判断该地区门店位置;
+下单:用于生成订单时,显示订单中的物流信息并同步物流配送;
+库存: 根据用户定位判断该地区商品储货情况。
+涉及的各项业务功能实际收集的个人信息类型与隐私政策所描述内容一致,且不会超出隐私政策所述范围。
+2.3针对设备使用过程中的信息收集,包括您 + 设备的硬件、性能、状态、功能信息,包括设备 + 名称、设备ID(DID) + 、固件版本号、设备安装 + 位置 (如客厅) 、设备时区、存储卡信息 (如存 + 储状态、剩余容量、存储开关、录制模式) 、屏 + 幕信息 (如清晰度、您设置的缩放比例)、清扫 + 信息 (如地图、清扫轨迹、清扫区域、清扫面 + 积、清扫时长、清扫模式、日期和时间) 、轨迹 + 信息 (如录像日期、录像时间、触发事件、录像 + 视频时长、人物行动轨迹)、睡眠信息 (如人数 + 信息、睡眠数据、心率、呼吸、体动敏感隐私生 + 理数据)、电量信息。设备使用过程中收集的信 + 息,您可以通过在App上操作删除设备的方式 + 将对应设备这部分信息进行同步删除。
+2.3.1设备设置信息:湖南鲨鱼健康科技有限公司可能会收集与设备 + 设置相关的信息,包括人数信息、人员位置信 + 息、以及其他各项您已经同意并授权的身体数据 + 指标信息。为了更好的提供智能家居服务,在设 + 备使用过程中,会根据您的操作习惯在取得您授 + 权的前提下进行设备自动控制。
+2.3.2网络信息:湖南鲨鱼健康科技有限公司能会在您的设备连接 + 到网络时收集网络相关信息,包括设备当前连接 + Wi-Fi的模式(局域网模式、远程模式)、设备分 + 配的IP地址、Wi-Fi信号强度、接收的Wi-Fi信号强 + 弱指标 (即设备RSSI) 、MAC地址,以及您主动 + 提供的Wi-Fi名称(SSID) + 、Wi-Fi密码,NAS网络 + 存储。您的此类信息会加密存放在安全的服务器 + 上,且仅会在您授权同意的范围内使用。
+2.3.3语音信息:部分设备具有语音控制功 + 能。您可以通过语音与相关设备进行互动,当您 + 激活或唤醒智能设备后,湖南鲨鱼健康科技有限公司会自动接收并记录 + 您与设备交互产生的语音数据,用于识别指令以 + 及转化为文本,从而实现语音识别、语音控制功 + 能,并进行优化。请注意, + 语音识别系统在识别 + 您的指令时,对声音信息进行采集过程中可能会 + 捕捉到非指令的若干语音信息 (例如聊天、电 + 话),请您尽可能在安静环境下使用,以免发出 + 有控制指令外的其他语音消息。若您不同意湖南鲨鱼健康科技有限公司 + 收集上述信息,您可以选择不唤醒语音设备或禁 + 用语音功能,但禁用后您将无法使用语音识别或 + 控制功能。
+2.3.4图像及视频信息:如果您使用摄像头或 + 带有内置摄像头的设备,在您添加并开启设备 + 后,摄像头基于对您住所的安全考虑,设备会自 + 动录制视频,在您使用相关功能时,湖南鲨鱼健康科技有限公司会收集 + 您与绑定设备的视频、音频、会话、图像相关信 + 息,请放心,您的数据不会用于其他任何目的。 + 若您不提供此类信息,将无法使用摄像头相关服 + 务功能。
+2.3.5扫地机器人-清扫信息: 湖南鲨鱼健康科技有限公司可能收集您 + 设备清扫的相关信息,这些信息可能以日志的形 + 式存在。例如,清扫数据: 包括地图、清扫轨 + 迹、清扫区域、清扫面积、清扫时长、清扫模 + 式、日期和时间,您的设备和服务器端只保存最 + 近20条清扫数据。您可以选择通过app删除其中 + 的信息。日志信息还包括:设备的运行状态和异常情况下传感器工作数据或错误信息, + 这些信息将在服务器中安全地保存至多180天,到期后将自动删除; + 可清扫区域信息:App端地图手动设置的可清 + 扫区域信息。例如:地图上设置的禁区、虚拟 + 墙、合并/分割房间; + 房间区域设置信息:针对地图上所划分的各个 + 房间区域设置清扫吸力、拖地水量信息; + 其他设置信息:勿扰模式、预约、清扫次数和 + 清扫顺序、多地图管理设置, + 其他信息:选择的语音包、配件寿命剩余可用 + 时长。
+2.3.6AI微感器-轨迹信息: 设备会根据触发事 + 件录制视频人物轨迹,包括区域有变动、有人移 + 动、智能场景触发。因此湖南鲨鱼健康科技有限公司可能会收集与录像 + 有关的信息,包括录像日期、录像时间、触发事 + 件、录像视频时长、人物行动轨迹。
+2.3.7睡眠检测仪-睡眠信息: 湖南鲨鱼健康科技有限公司可能会收集与设备设置相关的信息, + 包括人数信息、睡眠数据、心率、呼吸、体动敏感隐私生理数据, + 以及其他各项您已经同意并授权的身体数据指标信息。为了更好的提供智能家居服务, + 在设备使用过程中,会根据您的操作习惯在取得您授权的前提下进行设备自动控制。
+2.3.8空调-电量信息:湖南鲨鱼健康科技有限公司可能会收集与设备相关的电量信息,这些信息会以报告的形式展示,电量数据为估算值,仅供参考。
+2.4 鲨鱼云康App可能会调用您的设备权限,以下是调用权限对应的业务功能、 + 湖南鲨鱼健康科技有限公司调用的目的以及调用前向您询问的情况。您可以在设备的设置功能中选择关闭部分或全部权限, + 从而拒绝湖南鲨鱼健康科技有限公司调用相关权限。
+2.5为识别您的设备ID并预防恶意程序及反作弊、提高服务安全性、保障运营质量及效率,湖南鲨鱼健康科技有限公司会收集您的设备信息 + (包括设备序列号IMEI、MEID、AndroidID、IMSI、GUID、MAC地址)、您安装的应用信息或运行中的进程信息。
+2.6您在使用湖南鲨鱼健康科技有限公司的服务时,若您想分享您喜欢的内容至第三方App,湖南鲨鱼健康科技有限公司需要判断是否安装了第三方App,以便为您提供正确的分享功能。湖南鲨鱼健康科技有限公司采用合并链路技术进行技术推送,在启动App初始化后,湖南鲨鱼健康科技有限公司会读取已安装应用列表,当一个设备有多个APP的推送链路同时活跃时,湖南鲨鱼健康科技有限公司会随机合并成一条链路,以达到为您省电省流量的目的,因此需获得应用列表信息。 +
+2.7 在您使用App时,会获取方向传感器、陀螺仪设备传感器信息,用于鉴别您是否为真实用户。在您使用录像照相相关功能时,会获取加速度设备传感器信息,用于获取拍摄手机角度
+2.8桌面小组件功能
+为向您提供快捷便利的智能设备控制体验,在设备品类支持的情况下,在您点击进入设备扩展程序前,可通过添加相应设备的桌面小组件,便捷查看设备的运行状态(如当前空调是开机或关机状态),本应用须使用自启动能力,将存在一定频率通过系统发送广播唤醒本应用自启动或关联启动行为,该为实现功能及服务所必要。桌面小组件功能由您自行选择是否添加,您添加后也可在手机系统环境下直接移除桌面小组件。在未添加设备桌面小组件情况下,则不会有自启动或关联启动行为。 +
+2.9快捷控制功能
+为向您提供快捷便利的智能设备控制体验,在设备品类支持的情况下,在您点击进入设备扩展程序前,通过鲨鱼云康应用快捷卡片入口,可以实现智能设备控制以及智能设备状态查询的功能。湖南鲨鱼健康科技有限公司会收集以下信息:
+设备联网状态:以供您查看设备连接状态,根据联网状态展示不同操作界面;
+设备状态信息:以使您查看设备状态并实现设备控制
+如果您通过鲨鱼云康平台连接了可检测人体轨迹的设备等,湖南鲨鱼健康科技有限公司还需收集:
+设备周围环境相关信息:以使您准确的查看设备传感器检测到的周围环境相关信息,例如温度、湿度、PM2.5以及是否有人经过等。
+(三)湖南鲨鱼健康科技有限公司还可能收集其他无法识别到特定个人的信息 (即不属于个人信息的信息),例如您使用特定服务时产生的统计类数据,如用户的操作行为 (包括点击、页面跳转、浏览时间) + 、账号下设备信息(包括设备品类、数目、功能使用参数)。收集此类信息的目的在于改善湖南鲨鱼健康科技有限公司向您提供的服务。所收集信息的类别和数量取决于您如何使用湖南鲨鱼健康科技有限公司产品和/或服务。
+ +(四)您充分知晓,以下情形中,湖南鲨鱼健康科技有限公司收集、使用、共享、转让、公开披露您的个人信息或非个人信息无需征得您的同意,且湖南鲨鱼健康科技有限公司可能不会响应您提出的更正/修改、删除、注销、撤回同意、索取信息的请求:
+4.1与国家安全、国防安全有关的;
+4.2 与公共安全、公共卫生、重大公共利益有关的;
+4.3与犯罪侦查、起诉、审判和判决执行有关的;
+4.4出于维护个人信息主体或其他个人的生命、财产此类重大合法权益但又很难得到本人同意的;
+4.5所收集的个人信息是个人信息主体自行向社会公众公开的;
+4.6从合法公开披露的信息中收集的您的个人信息的,如合法的新闻报道、政府信息公开渠道;
+4.7 根据您的要求签订合同所必需的;
+4.8用于维护所提供的产品与/或服务的安全稳定运行所必需的,例如发现、处置产品与/或服务的故障;
+4.9为合法的新闻报道所必需的 (为公共利益实施新闻报道、舆论监督等行为,在合理的范围内处理个人信息);
+4.10学术研究机构基于公共利益开展统计或学术研究所必要,且对外提供学术研究或描述的结果时,对结果中所包含的个人信息进行去标识化处理的;
+4.11法律法规规定的其他情形。
+(五)公测活动
+为了给您提供良好的用户体验,鲨鱼云康提供了公测活动。您可以自主选择是否参加这些活动。当您选择参加活动时,湖南鲨鱼健康科技有限公司需要收集您主动提供的以下信息,包括但不限于您的手机号码、设备信息:设备标识符(IEMI、IDFA、AndroidID、MAC、OAID相关信息) + 、设备参数及系统信息(设备类型、设备型号、操作系统及硬件相关信息)、位置信息:设备位置,以在您获得测试资格后联系您、就您的测试体验进行回访等。请您放心,湖南鲨鱼健康科技有限公司会对您的信息采取足够的保护措施严格遵守相关法律法规与监管要求。您的手机号码和地址信息仅用于上述目的,不会用作其他处理目的。 +
+(一)共享
+湖南鲨鱼健康科技有限公司不会与鲨鱼云康以外的任何公司、组织和个人分享您的个人信息,但以下情况除外:
+1、在获取明确同意的情况下共享:获得您的明确同意后,湖南鲨鱼健康科技有限公司会与其他方共享您的个人信息。
+2、湖南鲨鱼健康科技有限公司可能会根据法律法规规定,或按政府主管部门的强制性要求,对外共享您的个人信息。
+3、与湖南鲨鱼健康科技有限公司的关联公司共享: + 您的个人信息可能会与鲨鱼云康的关联公司共享。湖南鲨鱼健康科技有限公司只会共享必要的个人信息,且受本隐私政策中所声明目的的约束。附属公司如要改变个人信息的处理目的,将再次征求您的授权同意。具体关联公司见下方关联的第三方SDK清单。 +
+4、与授权合作伙伴共享:仅为实现本政策中声明的目的,湖南鲨鱼健康科技有限公司的某些服务将由授权合作伙伴提供。湖南鲨鱼健康科技有限公司可能会与合作伙伴共享您的某些个人信息,以提供更好的客户服务和用户体验。例如,在您上网购买湖南鲨鱼健康科技有限公司的产品时,湖南鲨鱼健康科技有限公司必须与物流服务提供商共享您的个人信息才能安排送货或者安排合作伙伴提供服务。湖南鲨鱼健康科技有限公司仅会出于合法、正当、必要、特定、明确的目的共享您的个人信息,并且只会共享提供服务所必要的个人信息。湖南鲨鱼健康科技有限公司的合作伙伴无权将共享的个人信息用于任何其他用途。对湖南鲨鱼健康科技有限公司与之共享个人信息的公司、组织和个人,湖南鲨鱼健康科技有限公司会与其签署严格的保密协定,要求他们按照湖南鲨鱼健康科技有限公司的说明、本隐私政策以及其他任何相关的保密和安全措施来处理个人信息。 +
+5、针对第三方SDK使用,湖南鲨鱼健康科技有限公司将基于不同步用户个人数据为前提,授权合作伙伴获取有关业务信息。同时针对第三方的SDK应用程序接口(API),软件工具开发包 (SDK) + 湖南鲨鱼健康科技有限公司会进行严格的安全监测,并与合作伙伴签订严格的数据保护协定,令其按照湖南鲨鱼健康科技有限公司的委托目的、服务说明本隐私政策以及其它任何相关的保密和安全措施来处理个人信息。
+目前湖南鲨鱼健康科技有限公司系统产品中存在的第三方SDK披露如下:
+(二) 转让
+湖南鲨鱼健康科技有限公司不会将您的个人信息转让给任何公司、组织和个人,但以下情况除外:
+1、在获取明确同意的情况下转让: 获得您的明确同意后,湖南鲨鱼健康科技有限公司会向其他方转让您的个人信息。
+2、在涉及合并、收购或破产清算时,如涉及到个人信息转让,湖南鲨鱼健康科技有限公司会在要求新的持有您个人信息的公司、组织继续受此隐私政策的约束,否则湖南鲨鱼健康科技有限公司将要求该公司、组织重新向您征求授权同意。
+(三)公开披露
+湖南鲨鱼健康科技有限公司仅会在以下情况下,公开披露您的个人信息。
+1、获得您明确同意后。
+2、基于法律的披露:在法律、法律程序、诉 + 讼或政府主管部门强制性要求的情况下,湖南鲨鱼健康科技有限公司可 + 能会公开披露您的个人信息。
+湖南鲨鱼健康科技有限公司非常重视个人信息安全,并采取一切合理 + 可行的措施,保护您的个人信息。相关技术与措 + 施包括:
+1.数据安全技术措施
+湖南鲨鱼健康科技有限公司已使用符合业界标准的安全防护措施保护 + 您提供的个人信息,防止数据遭到未经授权访 + 问、公开披露、使用、修改、损坏或丢失。湖南鲨鱼健康科技有限公司 + 会采取一切合理可行的措施,保护您的个人信 + 息。湖南鲨鱼健康科技有限公司会使用加密技术提高用户信息的安全 + 性,湖南鲨鱼健康科技有限公司会使用受信赖的保护机制防止用户信息 + 遭到恶意代码攻击,例如,在您的浏览器与“服 + 务”之间交换数据(如信用卡信息) 时受SSL加密 + 保护,湖南鲨鱼健康科技有限公司会部署访问控制机制,确保只有授权 + 人员才可访问个人信息;
+2.其他安全措施
+2.1 湖南鲨鱼健康科技有限公司会采取一切合理可行的措施,确保未 + 收集无关的个人信息。湖南鲨鱼健康科技有限公司只会在达成本政策所 + 述目的所需的期限内保留您的个人信息,除非需 + 要延长保留期或受到法律的允许。
+2.2鲨鱼云康智能产品通过建立数据分类分级制 + 度、数据安全管理规范、数据安全开发规范来管 + 理规范个人信息的存储和使用。
+2.3鲨鱼云康智能产品通过信息接触者保密协 + 议、监控和审计机制来对数据进行全面安全控 + 班。
+2.4鲨鱼云康智能产品建立数据安全委员会并下 + 设信息保护专职部门、数据安全应急响应组织来 + 推进和保障个人信息安全。
+2.5加强安全意识。湖南鲨鱼健康科技有限公司还会举办安全和隐私保护培训课程,加强员工对于保护个人信息重要性的认识。
+2.6湖南鲨鱼健康科技有限公司仅允许有必要知晓这些信息的鲨鱼云康智能产品及鲨鱼云康智能产品关联方的员工、合作伙伴访问个人信息,并为此设置了严格的访问权限控制和监控机制。湖南鲨鱼健康科技有限公司同时要求可能接触到您个人信息的所有人员履行相应的保密义务。如果未能履行这些义务,可能会被追究法律责任或被中止与鲨鱼云康的合作关系。湖南鲨鱼健康科技有限公司同时要求可能接触到您个人信息的所有人员履行相应的保密义务。如果未能履行这些义务,可能会被追究法律责任或被中止与鲨鱼云康的合作关系。 +
+3.互联网并非绝对安全的环境,而且电子邮件、即时通讯、及与其他鲨鱼云康App用户的交流方式并未加密,湖南鲨鱼健康科技有限公司强烈建议您不要通过此类方式发送个人信息。请使用复杂密码,协助湖南鲨鱼健康科技有限公司保证您的账号安全。
+4.互联网环境并非百分之百安全,湖南鲨鱼健康科技有限公司将尽力确保或担保您发送给湖南鲨鱼健康科技有限公司的任何信息的安全性。
+5.在不幸发生个人信息安全事件后,湖南鲨鱼健康科技有限公司将按照法律法规的要求,及时向您告知:安全事件的基本情况和可能的影响、湖南鲨鱼健康科技有限公司已采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施。湖南鲨鱼健康科技有限公司将及时将事件相关情况以邮件、信函、电话、推送通知的方式告知您,难以逐一告知个人信息主体时,湖南鲨鱼健康科技有限公司会采取合理、有效的方式发布公告。同时,湖南鲨鱼健康科技有限公司还将按照监管部门要求,主动上报个人信息安全事件的处置情况。 +
+6.为应对个人信息泄露、损毁和丢失此类可能出现的风险,鲨鱼云康智能产品制定了多项制度,明确安全事件、安全漏洞的分类分级标准及相应的处理流程。湖南鲨鱼健康科技有限公司也为安全事件建立了专门的应急响应团队,按照安全事件处置规范要求针对不同安全事件启动安全预案,进行止损、分析、定位、制定补救措施、联合相关部门进行溯源和打击。 +
+湖南鲨鱼健康科技有限公司的产品、网站和服务主要面向成人。如果没有父母或监护人的同意,儿童不得创建自己的用户账户。对于经父母同意而收集儿童个人信息的情况,湖南鲨鱼健康科技有限公司只会在受到法律允许、父母或监护人明确同意或者保护儿童所必要的情况下使用或公开披露此信息。尽管当地法律和习俗对儿童的定义不同,但湖南鲨鱼健康科技有限公司将不满14 + 周岁的任何人均视为儿童。如果湖南鲨鱼健康科技有限公司发现自己在未事先获得可证实的父母同意的情况下收集了儿童的个人信息,则会设法尽快删除相关数据。
+针对儿童使用鲨鱼云康产品及服务,湖南鲨鱼健康科技有限公司特别制定了《鲨鱼云康儿童个人信息保护规则及监护人须知》,请您仔细阅读,并在充分理解并同意后使用湖南鲨鱼健康科技有限公司的产品及服务。
+(一) Cookie
+为确保网站正常运转,湖南鲨鱼健康科技有限公司会在您的计算机或移动设备上存储名为Cookie的小数据文件。cookie通常包含标识符、站点名称以及一些号码和字符。借助于 + Cookie,设备能够存储您的偏好或使用的智能产品数据。湖南鲨鱼健康科技有限公司不会将Cookie用于本政策所述目的(分享/第三方登录)之外的任何用途。您可根据自己的偏好管理或删除 + Cookie。您可以清除设备上保存的所有Cookie,但如果您这么做,则需要在每一次访问湖南鲨鱼健康科技有限公司的时候更改用户设置。除Cookie外,湖南鲨鱼健康科技有限公司还会在上使用信标和像素标签技术。湖南鲨鱼健康科技有限公司不存在嵌入第三方代码插件收集个人信息的功能。 +
+大部分网络浏览器都设有阻止Cookie的功能。但如果您这么做,则需要在每一次访问湖南鲨鱼健康科技有限公司的网站时亲自更改用户设置。
+(二)网站信标和像素标签
+除Cookie外,湖南鲨鱼健康科技有限公司还会在网站上使用网站信标和像素标签的其他同类技术。例如,湖南鲨鱼健康科技有限公司向您发送的电子邮件可能含有链接至湖南鲨鱼健康科技有限公司网站内容的点击URL。如果您点击该链接,湖南鲨鱼健康科技有限公司则会跟踪此次点击,帮助湖南鲨鱼健康科技有限公司了解您的产品或服务偏好并改善客户服务。网站信标通常是一种嵌入到网站或电子邮件中的透明图像。借助于电子邮件中的像素标签,湖南鲨鱼健康科技有限公司能够获知电子邮件是否被打开。如果您不希望自己的活动以这种方式被追踪,则可以随时从湖南鲨鱼健康科技有限公司的寄信名单中退订。 +
+(三) Do Not Track (请勿追踪)
+很多网络浏览器均设有 Do Not Track功能该功能可向网站发布 DoNot Track 请求。目前主要互联网标准组织尚未设立相关政策来规定网站应如何应对此类请求。但如果您的浏览器启用了DoNot + Track,那么湖南鲨鱼健康科技有限公司的所有网站都会尊重您的选择。
+按照中国相关的法律、法规、标准,以及其他国家、地区的通行做法,湖南鲨鱼健康科技有限公司保障您对自己的个人信息行使以下权利:
+(一) 访问您的个人信息
+您有权访问您的个人信息,法律法规规定的例外情况除外。如果您想行使数据访问权,可以通过以下方式自行访问:
+账户信息--如果您希望访问或编辑您的账户中的个人资料信息和支付信息、更改您的密码、添加安全信息或关闭您的账户,您可以通过访问鲨鱼云康App执行此类操作。如果您无法通过上述链接访问这些个人信息,您可以通过发送电子邮件841382055@qq.com的方式提出访问请求,湖南鲨鱼健康科技有限公司将在15天内回复您的访问请求。 +
+对于您在使用湖南鲨鱼健康科技有限公司的产品或服务过程中产生的其他个人信息,只要湖南鲨鱼健康科技有限公司不需要过多投入,湖南鲨鱼健康科技有限公司会向您提供。
+(二)更正您的个人信息
+当您发现湖南鲨鱼健康科技有限公司处理的关于您的个人信息有错误时,您有权要求湖南鲨鱼健康科技有限公司做出更正。您可以通过“(一)访问您的个人信息”中罗列的方式提出更正申请。如果您无法通过上述链接更正这些个人信息,您可以随时使用鲨鱼云康App反馈问题给湖南鲨鱼健康科技有限公司,或发送电子邮件至鲨鱼云康。湖南鲨鱼健康科技有限公司将在15天内回复您的更正请求。 +
+(三)删除您的个人信息
+您有权要求湖南鲨鱼健康科技有限公司删除您的个人数据。湖南鲨鱼健康科技有限公司将会根据您的删除请求进行评估,若满足相应规定,湖南鲨鱼健康科技有限公司将会采取包括技术手段在内的相应步骤进行处理。在以下情形中,您可以通过本隐私政策最下方列明的联系方式与湖南鲨鱼健康科技有限公司取得联系,向湖南鲨鱼健康科技有限公司提出删除个人信息的请求: +
+(1)如果湖南鲨鱼健康科技有限公司处理个人信息的行为违反法律法规;
+(2)如果湖南鲨鱼健康科技有限公司收集、使用您的个人信息,却未征得您的同意;
+(3)如果湖南鲨鱼健康科技有限公司处理个人信息的行为严重违反了与您的约定;
+(4)如果您主动注销了帐号;
+(5)如果永久不需要湖南鲨鱼健康科技有限公司提供产品或服务;
+(6)如果湖南鲨鱼健康科技有限公司违反与您的约定,公开披露您的个人信息,您有权要求湖南鲨鱼健康科技有限公司立即停止公开披露的行为,并发布通知要求相关接收方删除相应的信息;
+(7)如果湖南鲨鱼健康科技有限公司决定响应您的删除请求,湖南鲨鱼健康科技有限公司将停止为您提供产品或服务,根据适用法律的要求删除您的个人信息;
+因为适用的法律和安全技术,湖南鲨鱼健康科技有限公司可能无法立即从备份系统中删除相应的信息,湖南鲨鱼健康科技有限公司将安全地存储您的个人信息并将其与任何进一步处理隔离,直到备份可以清除或实现匿名。但若您提出的要求存在无实质意义/纠缠式重复、损害他人隐私权、极度极端不现实的情况,或者删除个人信息从技术上难以实现、不符合法律法规,在湖南鲨鱼健康科技有限公司评估后认为删除数据可能会导致湖南鲨鱼健康科技有限公司无法出于安全目的合法使用数据,可能也会予以拒绝。 +
+(四)获取个人信息副本
+如您需要您的个人信息副本,可以通过以下方式获取:
+(1)您可以在鲨鱼云康App中进行个人信息副本导出操作路径为“我的-设置-个人信息导出”。
+(2)您可以通过本隐私政策最下方列明的联系方式,与湖南鲨鱼健康科技有限公司取得联系获取。
+(五)改变您授权同意的范围每个业务功能需要一些基本的个人信息才能得以完成(见本政策“第一部分”)。对于额外收集的个人信息的收集和使用,您可以通过以下方式改变或收回您同意湖南鲨鱼健康科技有限公司收集您个人信息的范围 +
每个业务功能需要一些基本的个人信息才能得以完成 (见本政策“第一部分”) + 。对于额外收集的个人信息的收集和使用,您可以通过以下方式改变或收回您同意湖南鲨鱼健康科技有限公司收集您个人信息的范围1.通过解绑删除家居设备收回部分授权:2.通过App设置中关闭对应功能,收回部分授权; +
3.通过移动设备设置功能,关闭相应权限包括:存储、相机、麦克风、位置、蓝牙,收回对应个人信息授权;
+4.通过注销您的账号收回全部个人信息授权;
+5.除上述方式外,您还可以通过联系湖南鲨鱼健康科技有限公司的个人信息保护专职部门 (见本政策“第九部分”)处理您的个人信息。
+当您收回同意后,湖南鲨鱼健康科技有限公司将不再处理相应的个人信息。但您收回同意的决定,不会影响此前基于您的授权而开展的个人信息处理。
+(六) 注销您的账号
+您可以随时注销您的账号,如有需要,在登录鲨鱼云康App后可进行注销账号操作,在满足注销账号条件下可直接注销账号
+账号注销途径:
+1、进入鲨鱼云康App,“我的”中点击右上角设置按钮,进入“账号与安全”--“账号注销”。
+2、选择账号注销原因,点击“下一步”;
+3、输入手机号,并获取并输入验证码后,点击“账号注销”,即注销账号成功。
+关于账号注销,您需要注意的事项如下
+1、您应确保您拥有该账号的所有权,有权决定该账号的注销事宜,不侵犯任何第三方的合法权益。如因此引发任何争议,由您自行承担责任。
+2、您理解并同意在注销账号之后,您将无法再使用该账号,无法远程控制您的设备,同时账号个人资料与设备信息将会被清除,且无法恢复。请您在申请注销前自行备份您欲保留的本帐号信息和数据。
+3、您注销账号的行为并不代表本帐号在注销前的帐号行为和相关责任得以豁免或减轻。如您在使用帐号时有任何违法违规的不当行为,湖南鲨鱼健康科技有限公司将对您帐号注销前的违法及不当行为保有追责的权利。
+(七) 响应您的上述请求
+为保障安全,您可能需要提供书面请求,或以其他方式证明您的身份。湖南鲨鱼健康科技有限公司可能会先要求您验证自己的身份,然后再处理您的请求。湖南鲨鱼健康科技有限公司将在15天内做出答复。如您不满意,还可以联系客服投诉。
+对于您合理的请求,湖南鲨鱼健康科技有限公司原则上不收取费用但对多次重复、超出合理限度的请求,湖南鲨鱼健康科技有限公司将视情收取一定成本费用。对于那些无端重复、需要过多技术手段(例如,需要开发新系统或从根本上改变现行惯例)、给他人合法权益带来风险或者非常不切实际(例如,涉及备份磁带上存放的信息)的请求,湖南鲨鱼健康科技有限公司可能会予以拒绝。 +
+在以下情形中,按照法律法规要求,湖南鲨鱼健康科技有限公司将无法响应您的请求:
+1、与国家安全、国防安全直接相关的。
+2、与公共安全、公共卫生、重大公共利益直接相关的。
+3、与犯罪侦查、起诉、审判和判决执行直接相关的。
+4、有充分证据表明您存在主观恶意或滥用权利的。
+5、响应您的请求将导致您或其他个人、组织的合法权益受到严重损害的。
+6、涉及商业秘密的。
+湖南鲨鱼健康科技有限公司在中华人民共和国境内收集和产生的个人信息,将存储在中华人民共和国境内。对于您个人信息的存储期限将依照法律最短期限进行处理。
+除非法律另有明文规定或经您允许,湖南鲨鱼健康科技有限公司只会在本隐私政策所述目的所需的期限内保留您的个人信息。为了保持服务的持续性和用户体验的一致性,个人信息通常不会在单项服务完成后立即删除。湖南鲨鱼健康科技有限公司会参照安全标准,采取相应的安全保护措施来保护您的个人信息。确保做到知情同意、目的明确、安全保障、依法利用的原则来收集、使用、存储和传输您的信息,到期后湖南鲨鱼健康科技有限公司会对个人信息进行删除或匿名化处理,您的个人信息经过匿名化处理后将形成可以使用的流通数据,湖南鲨鱼健康科技有限公司对此数据的保存和使用无需另外征得您的同意。 +
+湖南鲨鱼健康科技有限公司的隐私政策可能变更。未经您明确同意湖南鲨鱼健康科技有限公司不会削减您按照本隐私政策所应享有的权利。湖南鲨鱼健康科技有限公司会在本页面上发布对本政策所做的任何变更,并重新取得您的同意。对于重大变更,湖南鲨鱼健康科技有限公司还会提供更为显著的通知 + (包括对于某些服务,湖南鲨鱼健康科技有限公司会通过电子邮件发送通知,说明隐私政策的具体变更内容)
+本政策所指的重大变更包括:
+1、湖南鲨鱼健康科技有限公司的服务模式发生重大变化。如处理个人信息的目的、处理的个人信息类型、个人信息的使用方式。
+2、湖南鲨鱼健康科技有限公司在所有权结构、组织架构方面发生重大变化。如业务调整、破产并购引起的所有者变更。
+3、个人信息共享、转让或公开披露的主要对象发生变化。
+4、您参与个人信息处理方面的权利及其行使方式发生重大变化。
+5、湖南鲨鱼健康科技有限公司负责处理个人信息安全的责任部门联络方式及投诉渠道发生变化时。
+6、个人信息安全影响评估报告表明存在高风险时。湖南鲨鱼健康科技有限公司还会将本政策的旧版本存档,供您查阅。
+注册地址:湖南省长沙市岳麓区梅溪湖街道泉水路461号长沙健康医疗大数据产业孵化基地3-1栋2楼201
+湖南鲨鱼健康科技有限公司设立了个人信息保护专职部门,一般情况下,湖南鲨鱼健康科技有限公司将在15天内回复。如果您对湖南鲨鱼健康科技有限公司的回复不满意,特别是湖南鲨鱼健康科技有限公司的个人信息处理行为损害了您的合法权益,您还可以通过上述途径寻求解决方案。
+如果与本公司取得联系后对我们的处理方式不满意,您可选择联系外部机构寻求帮助,包括不限于消费者协会。
+湖南省消费者协会的投诉电话:0731 8860315
+湖南省消费者协会地址:湖南省长沙市枫林一路9号工商局内。
+欢迎您使用鲨鱼云康App!本协议仅适用于湖南鲨鱼健康有限公司的鲨鱼云康App提供的产品或服务, + 包括您访问鲨鱼云康App使用平台提供的服务。
+最近更新日期:2024年01月15日,版本号为v1.00
+版本生效日期:2024年01月15日
++ 在您接受《鲨鱼云康软件许可及用户服务协议》(以下简称《协议》)之前, + 请务必认真阅读和理解《协议》中规定的所有权利和限制,如您未满18周岁, + 请与您的法定监护人一起阅读本服务条款,以确保您以及您的父母或监护人充分理解本服务条款的全部内容。 +
++ 本《协议》是服务用户(“您”或“用户”)与湖南鲨鱼健康有限公司 (“鲨鱼云康册”或“我们”)之间的法律协议。 + 用户一旦注册、登录、使用或以任何方式使用本《协议》所涉及的相关服务的行为将视为对本《协议》的接受,即表示用户享受由《协议》提供的各项权利, + 并同意接受本《协议》各项条款的约束。如果用户不同意本《协议》中的条款,请不要注册、登录或使用本《协议》相关服务。 +
+鲨鱼云康有权修订本协议,更新后的协议条款将公布于软件,自公布之日起生效。用户可重新下载安装本软件。 + 在鲨鱼云康修改本协议条款后,如果用户不接受修改后的条款,请立即停止使用鲨鱼云康提供的鲨鱼云康软件和服务, + 用户继续使用鲨鱼云康提供的鲨鱼云康软件和服务将被视为已接受了修改后的协议。 +
+1.1鲨鱼云康就鲨鱼云康给予用户一项个人的、不可转让、不可转授权以及非独占性的许可。
++ 1.2用户可以为非商业目的在单一台移动终端设备上安装、使用、显示、运行鲨鱼云康。但用户不得为商业运营目的安装、使用、运行鲨鱼云康。如果需要进行商业性的销售、复制和散发,例如软件预装和捆绑,必须获得鲨鱼云康的书面授权和许可。 +
+1.3用户不得未经鲨鱼云康许可,将鲨鱼云康安装在未经鲨鱼云康明示许可的其他终端设备上,包括但不限于机顶盒、游戏机、电视机、DVD机等。
+1.4用户可以为使用鲨鱼云康及服务的目的复制鲨鱼云康的一个副本,仅用作备份。备份副本必须包含原软件中含有的所有著作权信息。
+1.5除本《协议》明示授权外,鲨鱼云康未授权给用户其他权利,若用户使用其他权利时须另外取得鲨鱼云康的书面同意。
++ 2.1用户应当按照鲨鱼云康的指定网站或指定方式下载安装本软件产品。谨防在非指定网站下载本软件,以免移动终端设备感染能破坏用户数据和获取用户隐私信息的恶意程序。如果用户从未经鲨鱼云康授权的第三方获取本软件或与本软件名称相同的安装程序,鲨鱼云康无法保证该软件能够正常使用,并对因此给您造成的损失不予负责。 +
+2.2用户必须选择与所安装终端设备相匹配的本软件版本,否则,由于软件与设备型号不相匹配所导致的任何软件问题、设备问题或损害,均由用户自行承担。
++ 2.3为了改善用户体验、完善服务内容,鲨鱼云康有权不时地为您提供本软件替换、修改、功能强化、升级版本,为了保证鲨鱼云康软件及服务的安全性和功能的一致性,鲨鱼云康软件及服务提供者有权不向您特别通知而对软件进行更新,或者对软件的部分功能效果进行改变或限制,也有权为替换、修改、功能强化或升级收取费用,但收费将提前征得您的同意。本软件在升级时,视用户使用的软件版本差异,鲨鱼云康提供给用户自行选择是否需要升级的提示。软件新版本发布后,鲨鱼云康不保证旧版本的鲨鱼云康继续可用。 +
+2.4如果您不再需要使用本软件或者需要安装新版软件,您可以自行卸载。
+除非法律允许或已经获得鲨鱼云康软件服务提供者的书面授权,您在软件使用过程中不得从事下列行为:
+3.1删除本软件及其他副本上一切关于版权的信息,以及修改、删除或避开本软件为保护知识产权而设置的技术措施。
+3.2对本软件进行反向工程,如反汇编、反编译或者其他试图获得本软件的源代码。
+3.3通过修改或伪造软件运行中的指令、数据,增加、删减、变动软件的功能或运行效果或者将用于上述用途的软件、方法进行运营或向公众传播,无论这些行为是否为商业目的。
+3.4使用本软件进行任何危害网络安全的行为,包括但不限于:
+3.4.1使用未经许可的数据或进入未经许可的服务器/账户;
+3.4.2未经允许进入公众网络或者他人操作系统并删除、修改、增加存储信息;
+3.4.3未经许可企图探查、扫描、测试本软件的系统或网络的弱点或其它实施破坏网络安全的行为;
+3.4.4企图干涉、破坏本软件系统或网站的正常运行,故意传播恶意程序或病毒以及其他破坏干扰正常网络信息服务的行为;
+3.4.5伪造TCP/IP数据包名称或部分名称;
+3.4.6用户通过非鲨鱼云康公司开发、授权或认可的第三方兼容软件、系统登录或使用本软件及服务,或制作、发布、传播上述工具;
+3.4.7未经鲨鱼云康书面同意,用户对软件及其中的信息擅自实施包括但不限于下列行为:使用、出租、出借、复制、修改、链接、转载、汇编、发表、出版,建立镜像站点、擅自借助本软件发展与之有关的衍生产品、作品、服务、插件、外挂、兼容、互联等; +
+3.4.8利用本软件发表、传送、传播、储存违反当地法律法规或侵害他人知识产权、商业秘密等合法权利的内容;
+3.4.9利用本软件批量发表、传送、传播广告信息及垃圾信息;
+3.5对鲨鱼云康软件及服务提供者拥有知识产权的内容进行使用、出租、出借、复制、修改、链接、转载、江编、发表、出版、建立镜像站点等。
+3.6对本软件或者本软件运行过程中释放到任何终端内存中的数据、软件运行过程中客户端与服务器端的交互数据,以及本软件运行所必需的系统数据,进行复制、修改、增加、删除、挂接运行或创作任何衍生作品,形式包括但不限于使用插件、外挂或非鲨鱼云康软件及服务提供者授权的第三方工具服务接入本软件和相关系统。 +
+3.7自行或者授权他人、第三方软件对本软件及其组件、模块、数据进行干扰。
+3.8对鲨鱼云康或者鲨鱼云康运行过程中释放到任何终端设备内存中的数据及鲨鱼云康运行过程中客户端与服务器端的交互数据进行复制、更改、修改、挂接运行或创作任何衍生作品,形式包括但不限于使用插件、外挂或非经授权的第三方工具/服务接入本软件和相关系统。
+3.9其他以任何不合法的方式、为任何不合法的目的、或以任何与本协议许可使用不一致的方式使用本软件和鲨鱼云康提供的其他服:以及其他未经鲨鱼云康软件及服务提供者书面授权的行为。
+4.1用户资格
++ 您确认,在您开始注册使用鲨鱼云康平台服务前、您已经具备中华人民共和国法律规定的与您行为相适应的民事权利能及行为能力。若您不具备前述能力,则您应当获得您法定监护人的同意,且您的法定监护人同意接受本协议并承担由此产生的责任。 + 此外,您还需确保您不是任何国家、国际组织或者地区实施的贸易限制、制裁或其他法律、规限制的对象,否则您可能无法正常注册及使用鲨鱼云康平台服务。 +
+4.2账户注册
+4.2.1当您按照注册页面提示填写信息、阅读并同意本协议并完成全部注册程序后,您可获得鲨鱼云康平台帐号并成为鲨鱼云康平台用户。
+4.2.2在使用鲨鱼云康平台服务时,您应当按鲨鱼云康平台页面的提示,准确完整地提供您的信息,以便鲨鱼云康软件及服务提供者或其他用户可与您取得有效联系。您保证您提供信息的真实性及有效性。
+4.2.3您设置的昵称、头像不得违反国家法律法规及鲨鱼云康平合规则的相关规定,否则鲨鱼云康软件服务提供者可回收您的昵称和头像。昵称回收不影响您以邮箱、手机号码登录鲨鱼云康平台。
+4.3账户使用
+4.3.1用户一旦注册成功成为用户,用户将拥有一个帐号,用户需要对自己在帐户中的所有活动和事件负全责。如果由于用户的过失导致用户的帐号和密码脱离用户的控制,则由此导致的针对用户、鲨鱼云康或任何第三方造成的损害,用户将承担全部责任。 +
+4.3.2您有权使用您设置或确认的密码登录鲨鱼云康平台。您的帐号仅限您本人使用。未经鲨鱼云康软件及服务提供者同意,您不得许可或转让第三方使用帐号。如鲨鱼云康平台判断您的帐号使用可能危及您的账户安全及/或鲨鱼云康平台的信息安全时,鲨鱼云康软件及服务提供者有权拒绝提供相应服务或终止本协议。请您在使用鲨鱼云康账号时,遵守法律法规的要求,不侵犯任何第三人的权益,尤其是字体、图片等知识产权。 +
+4.3.3用户有权随时更改密码,用户同意若发现任何安全漏洞或非法使用用户账号的情况,用户应当立即通知鲨鱼云康。
+4.3.4用户同意在未经适当授权的情况下,在任何时候均不使用其他成员的账户。
+4.4更新维护
+4.4.1您应当及时更新您提供的信息。在法律法规的要求下,鲨鱼云康软件及服务提供者有权对您的信息进行检查核实,您应当配合提供最新真实、完整、合法、有效的信息。
+4.4.2如鲨鱼云康软件及服务提供者按您最后一次提供的信息与您联系未果,您未按鲨鱼云康平台的要求及时提供信息,您提供的信息不真实、不合法、不完整、无效的,您将承担由此产生的责任与后果。鲨鱼云康软件及服务提供者有权向您发出询问或要求整改的通知。 +
+4.5账号安全规范
+4.5.1您的帐号由您自行保管。您需保管好您的帐号及密码,并确保您在每个上网时段结束时退出登录并以正确步骤离开鲨鱼云康平台。
+4.5.2因您主动泄露帐号密码或因您遭受他人攻击、诈骗等行为导致密码泄露产生的损失及后果,鲨鱼云康软件及服务提供者并不承担责任。您应通过司法、行政等救济途径向侵权行为人追责。
+4.5.3您应对您帐号项下的所有行为负责,鲨鱼云康软件及服务提供者不对你的行为承担责任。
+4.5.4如发现任何未经授权的行为或其他可能导致您帐号遭窃、遗失的情形,建议您立即通知鲨鱼云康软件及服务提供者。您理解鲨鱼云康软件及服务提供者对您的任何请求响应需要合理时间。鲨鱼云康软件及服务提供者应您请求而采取的行动可能无法避免或阻止侵害后果的形成或扩大,除自身存在过错外,鲨鱼云康软件及服务提供者不承担任何责任。 +
+4.6 隐私保护详见《隐私政策》。
+5.1鲨鱼云康网站网络服务的具体内容由鲨鱼云康根据实际情况提供,包括但不限于鲨鱼云康开放平台、应用商店等企业服务、游戏、论坛等。
+5.2用户理解并接受,鲨鱼云康仅提供相关的网络服务,除此之外与相关网络服务有关的设备(如个人电脑、手机、及其他与接入互联网或移动互联网有关的装置)及所需的费用(如为接入互联网而支付的电话费及上网费)均应由用户自行负担。 +
+5.3用户应输入帐号和密码登录鲨鱼云康帐户。
+5.4除了鲨鱼云康提供的软件和服务,用户还可以用鲨鱼云康帐号登录使用鲨鱼云康合作伙伴的相关服务。
+5.5您可通过智能连接服务,在不同场景下使用智能设备。您应理解,智能连接受限于实际场景变化及设备性能的限制,可能无法完全按照您的意愿达到使用目的。如您使用过程中有疑问,请联系鲨鱼云康客服寻求帮助。
+5.6您可按照平台提供菜谱服务,自行选择烹任方式。食谱内容仅供参考,应结合自身实际做出适于自身条件的选择。
+5.7您理解并同意,智能服务是鲨鱼云康软件及服务提供者基于现有技术提供的,不能完全避免潜在技术风险导致的服务差异或不足。您应自行评估、判断该等服务对自身的影响,不会就服务目的未达到即要求鲨鱼云康软件及服务提供者承担任何赔偿责任。 +
+6.1用户在使用本服务时,应当遵守相关的法律法规,包括但不限于《中华人民共和国宪法》、《中华人民共和国刑法》、《中华人民共和国民法通则》、《中华人民共和国合同法》《中华人民共和国著作权法》、《中华人民共和国电信条例》、《互联网信息服务管理办法》、《互联网电子公告服务管理规定》、《中华人民共和国保守国家秘密法》、《中华人民共和国计算机信息系统安全保护条例》、《计算机信息网络国际联网安全保护管理办法》、《全国人民代表大会常务委员会关于维护互联网安全的决定》及其相关的司法解释。 +
+6.2用户在使用本服务的过程中,必须遵守以下原则:
+6.2.1遵守所有与网络服务有关的网络协议规定和程序;
+6.2.2不得进行任何可能对互联网的正常运转造成不利影响的行为;
+6.2.3不得为任何非法目的或为任何商业目的而使用本服务;
+6.2.4不得进行任何不利于鲨鱼云康开放平台的行为;
+6.2.5不得传输任何骚扰性的、中伤他人的辱骂性的、恐吓性的、庸俗淫秽的或其他任何非法的信息资料;
+6.3用户有权根据鲨鱼云康用户的规定使用鲨鱼云康账号提供的相关服务。
+6.4如果用户在使用过程中注册资料发生变更,则用户应当及时更新准确的、详细的注册资料。
+6.5用户应当对以用户的用户账号进行的任何行为承担法律责任,包括但不限于用户本人/他人利用用户账号和密码所进行的一切行为。如因用户未保管好用户的账号和密码而给鲨鱼云康及其关联公司、第三方造成损失,用户应当进行全额赔偿,并消除影响。 +
+6.6用户理解并同意在使用鲨鱼云康账号提供的各项服务时,同意接受鲨鱼云康或第三方提供的各类信息服务。
+6.7 鲨鱼云康有权根据实际情况中断、变更、终止服务,且鲨鱼云康不需对用户或任何第三方承担任何责任。
+6.8信息发布规范
+6.8.1您在使用本软件时不得利用本软件从事以下行为,包括但不限于; +
6.8.1.1制作、复制、发布、传播、储存违反当地法律法规的内容;
+6.8.1.2 发布、传送、传播、储存侵害他人名誉权、肖像权、知识产权、商业秘密等合法权利的内容;
+6.8.1.3虚构事实、隐瞒真相以误导、欺骗他人;
+6.8.1.4发表、传送、传播广告信息及垃圾信息;
+6.8.1.5从事其他违反当地法律法规的行为;
+6.8.2您可使用本软件发表属于您原创或您有权发表的观点看法、数据、文字、信息、用户名、图片、照片、个人信息、音频、视频文件链接等信息内容。您必须保证,您拥有您所上传信息内容的知识产权或已获得合法授权,您使用本软件及服务的任何行为未侵犯任何第三方之合法权益。 +
+6.8.3未经鲨鱼云康许可,您不得在本软件中进行任何诸如发布广告、销售商品的商业行为。
+7.1 + 本软件同大多数互联网软件一样,可能会受多种因素影响,包括但不限于用户操作原因网络服务质量、社会环境等;也可能会受各种安全问题的侵扰,包括但不限于他人非法利用用户资料,进行现实生活的骚扰;用户下载安装的其他软件或访问的其他网站中可能含有病毒、本马程序或其他恶意程序,威胁您的终端设备信息和数据安全,继而影响本软件的正常使用等。因此,您应加强信息安全及个人信息的保护意识,注意密码保护,以免遭受损失。 +
+7.2您将合法地使用本软件,在使用本软件期间将遵守中华人民共和国法律。您承诺不制作发布、使用、传播用于窃取鲨鱼云康帐号及他人个人信息或财产的恶意程序,也不得利用本软件做出其他违反中华人民共和国法律法规的行为。7.3鲨鱼云康会对用户是否涉嫌违反上述使用规范做出认定,并根据认定结果中止、终止对您的使用许可或采取其他依本约定可采取的限制措施。 +
+7.4对于用户使用许可软件时发布的涉嫌违法或涉嫌侵犯他人合法权利或违反本协议的信息鲨鱼云康会直接删除。
+7.5维护软件安全与正常使用是鲨鱼云康软件及服务提供者和您的共同责任,鲨鱼云康将按照行业标准合理审慎地采取必要技术措施保护您的终端设备信息和数据安全,但是您承认和同意鲨鱼云康并不能就此提供完全保证。7.6责任限制:鲨鱼云康软件及服务提供者不对任何间接、特殊、偶发、惩罚或后果性损害负责无论该种责任是如何引起的以及在何种理论下触发的。前述责任包括但不限于合同责任或侵权责任,或者并非鲨鱼云康软件及服务提供者已知晓或应该知晓的可能损害 +
+用户不得利用鲨鱼云康账号发布或传播敏感信息和违反中华人民共和国法律法规、政策的信息,包括但不限于下列信息:
+8.1违反宪法确定的基本原则的;
+8.2危害中华人民共和国统一、主权和领土完整的;
+8.3 泄露中华人民共和国秘密、危害中华人民共和国安全或者损害中华人民共和国荣誉和利益的;
+8.4 煽动民族仇恨、民族歧视,破坏民族团结,或者侵害民族风俗、习惯的;
+8.5宣扬邪教、迷信的;
+8.6 散布谣言,扰乱社会秩序,破坏社会稳定的;
+8.7 宣扬淫秽、赌博、暴力或者教唆犯罪的; +
8.8侮辱或者诽谤他人,侵害他人合法权益的;
+8.9危害社会公德或者民族优秀文化传统的;
+8.10有法律、行政法规和中华人民共和国规定禁止的其他内容的。
+8.10 有法律、行政法规和中华人民共和国规定禁止的其他内容的。
+9.1鉴于网络服务的特殊性,用户同意鲨鱼云康有权根据业务发展情况随时变更、中断或终止部分或全部的网络服务而无需通知用户,也无需对任何用户或任何第三方承担任何责任。
+9.2用户理解,鲨鱼云康需要定期或不定期地对提供网络服务的平台(如互联网网站、移动网络等)或相关的设备进行检修或者维护,如因此类情况而造成网络服务在合理时间内的中断,鲨鱼云康无需为此承担任何责任,但鲨鱼云康应尽可能事先进行通告。 +
+9.3如发生下列任何一种情形,鲨鱼云康有权随时中断或终止向用户提供本《协议》项下的网络服务(包括收费网络服务)而无需对用户或任何第三方承担任何责任:
+9.3.1用户提供的个人资料不真实;
+9.3.2用户违反本《协议》中规定的使用规则。
+9.4鲨鱼云康有权在必要时修改本协议条款,协议条款一旦发生变动,将会在相关页面上公布修改后的协议条款。如果不同意所改动的内容,用户应主动取消此项服务。如果用户继续使用服务,则视为接受协议条款的变动。若用户不接受更新后的条款,将无法接受鲨鱼云康提供的服务。 +
+9.5鲨鱼云康和合作公司有权按需要修改或变更所提供的收费服务、收费标准、收费方式、服务费及服务条款。鲨鱼云康和合作公司将尽最大努力通过电邮或其他方式通知用户有关的修改或变更。
+10.1鲨鱼云康提供的网络服务中包含的任何文本、图片、图形、音频和/或视频资料均受版权商标和/或其它财产所有权法律的保护,未经相关权利人同意,上述资料均不得用于任何商业或非商业目的自行或许可任何第三方实施、利用、转让上述知识产权,鲨鱼云康保留追究上述行为法律责任的权利。 +
+10.2鲨鱼云康为提供网络服务而使用的任何软件(包括但不限于软件中所含的任何图像、照片、动画、录像、录音、音乐、文字和附加程序、随附的帮助材料)的一切权利均属于该软件的著作权人,均受您所在当地法律法规和相应的国际条约保护,鲨鱼云康享有上述知识产权。未经该软件的著作权人许可,用户不得对该软件进行反向工程 + (reverseengineer) 、反向编译(decompile)或反汇编 (disassemble)等违法操作。
+11.1用户确认,其知悉本软件所有功能及智能管家为实现本软件各功能所进行的必要操作,其根据自身需求自愿选择使用本软件及相关服务因使用本软件及相关服务所存在的风险和一切后果将完全由其自己承担,本公司不承担任何责任。 +
+11.2用户必须自行配备移动终端设备上网和使用电信增值业务所需的设备,自行负担个人移动终端设备上网或第三方(包括但不限于电信或移动通信提供商)收取的通讯费、信息费等有关费用。如涉及电信增值服务的,我们建议用户与用户的电信增值服务提供商确认相关的费用问题。 +
+11.3用户因第三方如通讯线路故障、技术问题、网络、移动终端设备故障、系统不稳定性及其他各种不可抗力原因而遭受的一切损失,鲨鱼云康及合作单位不承担责任。
+11.4本软件经过详细的测试,但不能保证与所有的软硬件系统完全兼容,不能保证本软件完全没有错误。如果出现不兼容及软件错误的情况,用户可拨打技术支持电话,获得技术支持如果无法解决兼容性问题,用户可以删除本软件。 +
+11.5本软件同大多数互联网软件一样,受包括但不限于用户原因、网络服务质量、社会环境等因素的差异影响,可能受到各种安全问题的侵扰,如他人利用用户的资料,造成现实生活中的骚扰,用户下载安装的其它软件或访问的其他网站中含有“特洛伊木马”等病毒,威胁到用户的终端设备信息和数据的安全,继而影响本软件的正常使用等等。用户应加强信息安全及使用者资料的保护意识,要注意加强密码保护,以免遭致损失和骚扰。 +
+11.6因用户使用本软件或要求鲨鱼云康提供特定服务时,本软件可能会调用第三方系统或第三方软件支持用户的使用或访问,使用或访问的结果由该第三方提供,鲨鱼云康不保证通过第三方系统或第三方软件支持实现的结果的安全性、准确性、有效性及其他不确定的风险,由此若引发的任何争议及损害,鲨鱼云康不承担任何责任。 +
+11.7 为了保障公司业务发展和调整的自主权,鲨鱼云康公司拥有随时修改或中断服务而不需通知用户的权利,鲨鱼云康行使修改或中断服务的权利不需对用户或任何第三方负责。
+11.8除法律法规有明确规定外,我们将尽最大努力确保软件及其所涉及的技术及信息安全有效、准确、可靠,但受限于现有技术,请用户理解鲨鱼云康不能对此进行担保。
+11.9由于用户因下述任一情况所引起或与此有关的人身伤害或附带的、间接的经济损害赔偿,包括但不限于利润损失、资料损失、业务中断的损害赔偿或其他商业损害赔偿或损失,需由用户自行承担:
+11.9.1使用或未能使用许可软件;
+11.9.2第三方未经许可的使用软件或更改用户的数据;
+11.9.3用户使用软件进行的行为产生的费用及损失;
+11.9.4用户对软件的误解;
+11.9.5非因鲨鱼云康的原因引起的与软件有关的其他损失。
+11.10用户与其他使用软件的用户之间通过软件进行的行为,因用户受误导或欺骗而导致或可能导致的任何人身或经济上的伤害或损失,均由过错方依法承担所有责任。
+11.11用户使用鲨鱼云康的特定功能时,包括但不限于与其他成员共享家庭或设备的功能,由此产生的不良后果或经济损失鲨鱼云康将不承担责任。
+11.12为了改善用户体验、完善服务内容,鲨鱼云康将不断努力开发新的功能,并为用户不时提供软件更新 + (这些更新可能会采取软件替换、修改、功能强化、版本升级等形式)。因此,服务的现有功能随时可能因版本不同或鲨鱼云康的单方判断而被增加或修改,或因定期、不定期的维护而暂缓提供,鲨鱼云康也有权随时调整软件的名称、功能、展现形式等。 +
+12.1本协议适用中华人民共和国法律。
+12.2因本协议引起的或与本协议有关的任何争议,各方应友好协商解决,协商不成的,任何一方均应将有关争议提交至鲨鱼云康所在地有管辖权的人民法院管辖。
+13.1本协议生效时间为2024年01月15日。
+13.2本协议所有条款的标题仅为阅读方便本身并无实际涵义,不能作为本协议涵义解释的依据。
+13.3如果本协议中的任何条款无论因何种原因完全或部分无效或不具有执行力,或违反任何适用的法律,则该条款被视为删除,但本协议的其余条款仍应有效并且有约束力。
+13.4鲨鱼云康有权随时根据有关法律、法规的变化以及公司经营状况和经营策略的调整等修改本协议,用户会在登录时收到确认信息,信息会告知用户如果继续使用产品将被视为用户接受修订后的协议。用户也可随时通过鲨鱼云康网站浏览最新服务协议条款。当发生有关争议时,以最新的协议文本为准。如果不同意鲨鱼云康对本协议相关条款所做的修改,用户有权停止使用网络服务。如果用户继续使用网络服务,则视为用户接受鲨鱼云康对本协议相关条款所做的修改。 +
+13.5鲨鱼云康在法律允许最大范围对本协议拥有解释权与修改权。
+aFJJP6jZKd9_h zTVBf@|Kj|8HCZy&zh@88z_=pwXa?JyWuvGfM0M14;wwxHNEBquw8QZ81r5J#oyW6b zA~?yK+^fa-5!A-uJx*LB%Cfw1N>ic1G%%FWJ0URmXo3|vfv}aDkd0J@bZu^2zooo5 z7L`?QE=n`GDSlcDK86aG_2W*1X#m5##qRuR3ioDL19r|8JSUunB(e8WcZ1|fX^sxh z!Sp@OLA7;NfXXIK!`P)vV}|D26DwMit4o=HVYDc|4BhKWK)?sHDua=uqgVP1py_nU z*nHps2T>RaRvQB!HrT#R6@-Ou9{@#JhU)r9;KpdGc^XIA$Qx+@c+9Y0yS9L{s%Rjp zhVeWJNY)Cm(g4iR;uh-IA#Ima;Lz;)F6#lt-^uzHLFr2r4gQoeRWemjSNPQOO_6y& zpt)_qv0PDr2XugnnGtENse- oR1D)Ku2S&$TG z)}G^4z*`9JGZ=x!9pw-v$ydn2#e{6(%iUHTt)Za$?2r$J@)I3{o5wa?I~+Nd@#;zE z+=9y6M5yG{Hb=wm-4mo8E0^4AjP3Ro>)oNzS{USq<(|5kXT>18O_`vqBiR4~D?K_y zkR0mYA_Ck;koyRXue9xg{+(D |NOoP&@b{l;-1>FRynJC6aCVkYgFve z2xbL#y0)pqb>b#t#39pd{jS4t%IE-I!8B(HEev1}ZQUgK `jK^VcjN z+UGaIUgd6cvicgBLvP(Hdr*ZhujH&V-6l@Lycp+PR^4I*NWH%BX=Nz;dUdSPc{<=R z_x4Dfc%HM^wXmW(zTUPQL_|+*4k-UJU wV&C@6S$hR7w9T+SZyyj{tZ*JB}>Tx%=a1 z%{p7$xVjnO c|$9x}LJ=NE`GLo&u#M!l{ zAa(EWT$ZH^z;$PY2iWj%)Sfi%ZFeq-xjCz}eVCGNtMwj5KvV~?fJTbYH{0&Yk-CFX z>-v`W(}xkGWIw_T0;_DoI-(J6>ds&_h%g%50YjU1tFYbSAZV?-PVXj0MVsSv&^ca{ z*7wu_EP&F(Y6<%OFwqhk=iMuEWW{_L$*%NdcLvclJlJOXWg&BZgWW|s`fx04=# }B5dSYOZ6M3wnoxsIl*%PHR50_%WoTud>1TR+~hn`*}Nhr}2o^0ivG9FD{W z80}ra`ua(eE_p$BG^Z1;aGGEwJ#H-nq-@)5qO2rEH7oQ2)S0c1<}(FN7(tAExM8e) zg0$RTRZvN#JGh)5cpD;vjz)twnyFY_OHP}{!Mts_>*1P_LRIyw&MxtqF5!m97HM4G z^u Ek zkt~AA7p={fW!R2zDU?B-MMBvgh3Fm)>JxRc5v~%33yW`uSsjUG+!3+)N}&NcZvf zU=h6NzR&m~(tNZ6`d($YzTer3clo!hCfED=4qvyN*8Xd~?#Q#R76E1Kpjklu%Z D24qjU6|MLZ~q03W%HlLK5W&9$AW$qFf-mqk57aw+`%+3+F zDs)f)u 8uVVP><`xky@R5H zNYB7~-vdtrVKUo#T;sjd#D+fmo>9eDREY_@u@x%@enj?PAz$;5IXm!$mV485AQm_h zh5=L$T3o1JEgdyn8oc!T!nz9}u (Hr2aEMx?YS7#kb zoK=F1ubcI8wJP_A?AkLLJ1DkAk>U=B05)S*yUoZCp0ohAY|*!N>OfrqXV{7g4+3mi zoU3?-3F2k@GqfRY1 YeOzEVdYhQ0?>f#zp zOlFcpB00}ur?+*GR1H!$0KVs(Iiu7N`ige|N$G*OZ|*C5_uM6=?xZrvIlZZ%InJ5B zH#){eSAEFD!w+=3-gEa>MbZH8E8;7?7@;@4uF 2^;1*Ke_1%jH~M3|KY%DPGZob^KjXj@X f>5~OcC%F4}5>yNXjxNXIj(DM+$s-I>U=QuM >;|w*Blo!u+Mnxyh{1mih1vNo$G6KZ|t{B%f|nTi{_5#VI}aL z#fe8-?!6`0Ogf=i$$kW?*z5jh3lczv!9Be9Y^5ln;HuD8vqW$kJoDwYN!sRBVU+K= zk2AU~Dw6b=82E)|g9BV!ojqwv@d%c+9#EpGDQLlA?yT8f9aG2gv_U8PY#W2c)v`6S zxkaWf&ET`3CZ}@z6)RR%?^csALS5susYjq1c6W2HVv%(FI*`rw5E9WPmT;`mVe5nF zRvnKFrtblJbr;(}lQdEf=?0Re!2?NG2A#q H@v4Sg`HXO^xqu@Uk%A2KqG|;hX z#k*Iq$3Ul*vQbqG0UY(U2D~m7KFh`bWD0T0Gi-T6V2KHhEgMoQ%D~}lR4kLp!^{GA z$Nn!vw!zNt1j~=4xt3IN-r%s|>f)$h?JOX0HRw5l{BvnERGvE;1{(5q`5x`NV^LS! z=~G$hbe8XU`5s`DVqAhIGfR7(`ff@dWyu3&;@p=(VW#!6R5(twuR2y{s1(uw4%&)z zwvJ_Auvr0ukemYr`+UOt9Y+KG#wioHWWr8|u=cD>hYh@}Ro~k`alVaiy*&ft&j9yP zrQWvS`LYJX_p0=*pZakP?m_cq4Dj#4bJ5JdkUk+r z;=kT|$cs4MY&t+}W5vbVN8s3s%d!Kdf(=Yo%dmC5EHq;h4K|hyM?%xB7^p?au;GyS zusVZi 8WbzSE9^FH1X^FfbabU z#P55Q>egqS>95=xeq-4U1IwX${;0xSkJBB#|BR;x14rrRjP0AtHeo> CPSsA%Vq)u(%l(el=;KH+TA%b_ oale< zfwD(czcV+S*3}z3yyJhZuQ?27or`TE2AdZ;kK;%J@WTgDxlXxzZ;*vA_Iujv=wmx*> z#8CBvk#$PJu5=bio_K8>OKY6Q@p5e%O~0U{Z0JcaEZ9Y36k~#skV%RGvACeA7!F`? z^x{Zm#_6UY-p=J2KRBfY8Q@&kLtH=N5W7>^O^1m=yC7ab*>YoO6mMC<_IEv8=fM_LVmznRn+FWIH-%S>mS19PIYKlN@H-LgEWu^Huo5^nGyhVivGM-w0T! zXj^nU5Ez^P)&5hje(~n-%oO?1G$W&`-q!MrF@EvUwmX{7_Ef)~E @qwGmKDD){S5+u1&I2SNKg-)+K zbQYCg(=lynnTP PKDPFt$Xeg%EM>oRVp#RIt1YU;b%36Il^$ti zPpf{4js8{XjsP6WKsYquxh@{-3 l(pZ6rEMYgjm0hIFig>pWCf&>t~!)tYgNIJdrIJHC-t^(#b6yF1Uo9 z&QCY0Wg%@7F48)JD^chz0+X&f4l>z^*+3$e6C}paj17d!2QM-+59gZe@2_QQLTQX@ zHfvOM-BlW&xX16YAK_GBUGp05$W5I67^kMpt&FQ<&x+vlKzQ!xvxtJ@RFZB8i^S<0 z>NX(E#&qB7WvLtY>Nsdcyd#b@SYsHCKr3k!Qn9XxeM2YdVN%$|IE|ez#GD(!?2bmg zqfp0DS>D8Z%OZNA YeaK+x~!d79=F>q;|lTniGwhkfu1Nc+adqYLNH36P_ z)S_ 26RaP|yJEFwCXaPoDU%x`q5uWyQl %J(-<^oMfig^ zEQBuuhgG|G !_E;Qh0zIt6v7B&;@oC26PS?H>1MFAc}Xh4z78XaWd$R*9_SA-C=@s#`TXoz z(f|DYu?MQLe%AJLaHrj(c{APf?YPa#7+^T@kQMY>Msm{?Bw3P1wHCw~@X;hT`fK@G z&eV2g>K8iwgRRVQqbl9#A8LVpzK- `U!- FZNK=}mh#6TKZ^6{YK$K+9~l&`nm=A;(rg1PQI^*xB%@Ymf|tP5Ya{6j##$ zd;0buRnpP9D6E%y_wLllb!leruuJIzh4%>_Oo_T~o%BE~?ch1C-Rt-IVrD7IqrdG4ns*iN zGO<(8oE=FHP@97n8bOrjS<}28xlz=bJDC|ca|O#e&-B$9 xlR$Ny59itaYXxFseC5#Zi z-PXvR7WrGV7)9Too^E&SbJz!k9B8Q(1t0_P1b>^BtN@s^%PYyrnf|eY@H2LrNxBk1 zr;_5_Fg8P_l+{DC(=959=nRY*w6^HUkf4nQy$D4^kWu^Wh-W*>V=&q&5IRp$F80iy zP!Ea`n`sKzayKDgo6%i4Y}K@Egp&5r)!cO%3{h S0kdh>ySDS9 zf{B5JF{@FBf=S`U!bcLW=Pp({fYX31Sr?-uV8GSb9%xdPj$)d29y|0E9I~}K3&P+m zv9J=zL@thsbn@sSc2K-;L8%S+;|P3;3h+&iD9OEa0Dgb(s8~OGQXaQW5w^5@arM|l{MlXJ`?Ugu|q6{C`tQ@@`<7h9=^9WB;9uzRqFg }bIh LF6vmx<^a-7OFUyk^URkyzc;wXq?17%SrZ6U&QJtAGzLzpHE@ z0HXWEh?1jV7x~>i&@IwFsl$;0)b#q9{U3qQ!*J*=BPWzO%z~X~JkwX%lT~RszuZu= zp=(tlN1>3ijdagWoU3^LUVU^-J!`W0WE=QRqj{D`3npqOHdbR_$DKW%Y3qiL>BY4@ zg|;kY!?R^PYG`A%83z5rMs+FKex)BAT+$2{FbLJZxNjO%19FrCUmXDKG`1ekrN=!X zr~nroG}n~w8-;sM`_7e$olVogA3=5QJ=Imqq^@`SYB2&re%8PTEX#78F(Vim`SuL_ zL|k0frdexMOZpC&t(`ET`w-bpz07g&`( ?Qqp-KuYC+m)P$xI5k>9PIGD!D z>>AJML_a~xdJCdElGPo)9GT#M^Sca$e8tsKRUK!|Z|kdanR~V Rj?^4 zZgb0E&ro&}gS%2h6E!3|6)a#t9c-+r5cHJP(4i~}eXMs z4XRHqva6j0E8Zf0bYl&X6HEqU|3aTK-G4jQUPq_CnCSV(l4DVUjH+dD9{yHI2OX}L zm_-!KK(N??Ip&HjE;iBouKf)tV+ICN&pQ?k-lK4g{d4+0Q~EPK$w s$S*!ko}JWfN7OvAJmXCcZ=r^ zs9w3xGa=g1_JHlRw^3!i8riV-0o9}zs PKZ4 z*(k34CV?Ahghu#j>-&V|80miKsyDjxId%W^7JRq$73hGfKo^yV@*X`dzJ}3csH94T z{8Owu|ENy4iX;t8G$@D;YkL)y%|q~Loz*#BebW~^o+gR1RUafs@5wK4uxf-y!+$I- zlc~{)r@^q$EIz6}92d {Ny@gg&-d&EUBVSDX#0qHK`Dtir{R=YmMxG3+O%*&0 z&!Vr+$=R8#(?enySh^H8;JCA*lTDa|i`vkc_sXKK$j*@mtpm$e$7mS{Q!#SyS<>v* zH(kQ=+J2_{n%H_&=Ai(#=7$RC4~a~jhLLDH>=Fy{{eyr^HAWtS>CNf8pqp$)N~CXF zU{eOb0X=7|CQM*o-@aE7_0-Oew}R+ia5p<2Dy`JM^H(KVz#5l`$O?!hJCkas#vpVD z8EvH(fu3{aq2IC0WHy=7w4Rpr+LA=}q?H__?ajf 7G$<2{Y ztc keg$&s#5o8rZQBK0KebH;zH03*@9;)!7ffI95477U4?-&z!xeEPpNyk zjdWc!`c9f`8*Qc6vDP07!S!w#5z<^cnX|T2u{D*g?16%vCgv?`%$lbP>_7NHst?rm z`9sp6cd;T!%wnxJSES$j_qYebDH@E8@Ad2GA^v`-;QE91LvJ9^gF3FprrSvN<03zR zhhKFN44a(_Mnf}=4vp4J#w@Y<++`JwNS_+WqGWHx+Mk|B|4nxd==4{^w` t&(r(ElqkA1i zt?XZ=sM@<;< VPEQ_pInWbM$Ekta(!M z!WCyk+;FShZ|iTH1MDmXqn`tXA3=n}4k6xZG!KReiUb~6J_pB-;vSqDEO=Qqz22wB zy)44_3ZCErqBH`GEP^&V0lWnEC?uDt>t=Y^07hRC5uF{4`!Askha=ec_O_$3Fy_3< z2B0B @Rl7IL~*eJTqV{4UyJ5}zYTI32qD)VcS^syOF9dh!^CCc(U^ z?>Qf${g#`(a!AnFr~N2NdyWxB7jwD^AKYz~wr8nu*sHuv*kC)OFEKE7D()H)@q~rt zGf{Azt=2a6D>-U6zs&AILH0`*k5b?9g6HIno$w>})!@&A4w5UP2fO1#>-&}4D>B`p zL;n$u-gdhxMEz4IY>rp?k>8qcpY=BPQj5+ccfr{6JXtu!B54$ildUaq mulg{3RQQ{Y0waXIHNjebC*Q{6^=H`kMPc(B*Gv4W( z$gB<6g5MINkgdeXJ?Q FP|u?1Ybk&jp~XcznHgFuen&*}e8ECMx}f1&%V%4a zolA=_?9{I3u159S$oV(*q(AOgM!{zL5@L<(Y(1Sox>0G CxY+$?xL&6H#1xW%zN5?I01T%qC)upqcLZ-{5hrfJeDZVoRg`) zP3uy(2GMO+wkb)L?EIWdAY}Caf38e$}SgXSBLP<2$?sG}{W#PTbL22v;of?%H zRs8V^bAV?sOi;xeL*p8bT@FKFpyYN>!i_fAbWz}r=^BddU%H4T-B5>KT(pxUq)jE5 z58xy@pnyo7MHx@k4I8cu1#ZAd-lNK!U@MOpHfH#{PC>(#QNaqquC6MF2>wH**ok&r z0#w`emZiiuMh}aLNYcH#E06;=gQ2ZPAlqqkwyGcUeZQ(z=bbr1+jO<6(6t!@#QVg@ zD_HXME6XLx!;m}*znzU$Hi19~bHc$!D=I&0qnN;oXMFtGHX`4uKW~jog&FyF{W7`V zk+wU$y%z7`(EL8?CJ1^iF6{3g?=Fy@*UT~q5L)IgTGIQ>%@n@27_SSTS4B@{NJK)x z+f+qXIE7$jEwQ`W>omfyDwQw@+^4Ol9IP8={XX*h=J_Sa0IiFfxYDOOAN#~1cfbqI z`s{Zicy2J0>6pXHps-q8dwI59Oq@MH(f2KXR$e{Y5j2-9?R&uevHtz&*{%Bi=tq$L z!M^vp+*}@yksiL!5U0@{y>*4@M^>Wh#n@CPHS@KpU7mg+u>`c7RzgZ5XbC!G_Ohq5 z?Bpq`Z37xnG&EfLjyzw%qM@T VsuCA@Iu zD>CU(I#wlM)}=VR+Mq&oCa*7(KHbie`v7Oo=s6@-nLh_0dv-OlG+)u3%zyK!t~#!b zapRh#D=wQN+29X3<0_~cS<9@=<7jg$&x|V=4X+=mJP*5d8rK*mV+3LM=t^qY1Dvxo z?!8wB8KCYeyir^s+VIniLgKuH!yJGXW=H~p0@ss`!^uGxa_z?}$qAc7YqLnBv9Cw% z6KJevFZe_>yFYQu`dRDyG1d`QxsY}XV#0F_%^~1#p22>L#HJrus)SERw!Ix!jJ?zu z?S|FMbNUY2HZAgNbCoqr=zLW71NK#S;FSfDSWr;F3GcCxwEpGbp~4soj2 oKO`2Iz*>o42Kb>W%wlN1~3uL^`mrcy0Gi)UVnWD zf1Mv6{f@w$c$c_@)fHL%T$;0`c{M;*#s?#d#gcqYMqg JXRebiY|4dX?NeG<)o;!%$6@<%0zK)|8EWk7cEdDiHdhvkTVvQz)`slBS`~x zm%5W(9y((@4@h%j-ce9do$gdvh{Z_R1)JMgJ*gA1yMiEP-H_-5>xxO%?P=cnN^>jG z8Q5U55F{5m< z>jxWFC7%kqn286VC;K#ZcY)ZsI;DT7=+lrG9czW83?7&o$xce!6m@6x%ZiusVrj %u z1wv`9If$C1Jw0E5e)_3;z1;O)vJpO>mzOkPpva+M(iq-C>}uZ|oNvII6u;zdtR2o% zpG~_?GI>SRtvLDI;?@`ts{l^Lw=SRRoC??|F$^hCz52FbKGZqPcJ!MS1uOiDFwK9~ z_M+*jadi0Hb{PykSr+VL=yeFSPLk(<3sk`nVrzdn=7M1lbCeb&OoY$3V`|J9wtavT zp}Aq@UhI>kJFJ9gJ4TCbR$ft9|I#$2_H(S_*k-d%w9v1W!Fe4;7+DNBu}-7=>19V3 z)3k97>vcgD;Ki7{0aiTsx?Ifqad#Bf5HWf>a}UBwwSCU!CvBn)9XG<~s^xnqkk8c9 zc8H9|9m3I9erdw7ud! 8 zN9P^*XvUm)`F|bzYV*T^QBU)fWuwKlc?14dY0%9W Zp9Zav`gEB@U24Sy_L)K@0%ELtuUl?77Leo;`v2%TP zx`yj(*9RPV+ !NZ;O3#d|?_j^5&fM;Qm%bFUFb@C4lZ-BSRXWDh@caH!cil%uSVTllj&73cM! zkZGbd*$K;B+oY;GvK=Z|o`i<~jKyOX8w?d9Xjxm34$}h)05T0%USHcU^`EE1o!F;P zy9jR32{Rv_b(sTvKd-@aHoAeumsS$O{DULgCLC1A-vb>9fYK#65_XRCM8psv&sJK` zg2i-!tkM_`m1T5l>oD%0G%{jjj}*>u&rHx>5AmJ6A7-tN(YLzitx4L_1w%%F7}acL za-fe_AoCIB8ba8Yz7f3sM7?17hW$cTq2d)6aKFx6>>a0Ga0kKK!%?=4W7T0m&a0gS zVx^APh^k_TD0zOtT?-{l%~EiOJWv6M7N954VGJc!YCo1X?C_aWr9S-JDu@$CEnzdj zJ(4vUo5Yu_kwwQHN)-gD&4^9o-lu;uvQ>kgp!OXkZP`qyi=CXn#fBsWHVo%k_OQ=5 zP}p@@hh?a(HpH`#Q_+kCV_#vWu!I8z`#(yJo}t>_{4<~`uWYSSVK1g=_g#B8*(}ZK zg9`zc2FDp_&F;ZAxy|S;g6R<+kLidHNWH%4U1}R0sLRcyg^H8k51F;1Gcv+b=Nk?I zNbx8yc#&1L56?SPlp}veum3o0pATv4E(|!cUMCbjzpQij+zk@F^Q-kTZLg#a*d*Oh zzb83J5#qa$=yz=IJ3(@<>fHPN Oe6ZBU6(F--=7>^KXVEVuPe`c zI(6=}?fXw2efLQ3ACJE23M`UT^nI`zM+Ld8Xnh>X0qjcfB~?32T<9U6QzZz9f_CBT zh$?=w{T82;t~W|{N5L3?aD5w5Uy^7x;yX$gJVrjd51#H6ngts+D$~j;$;J?NBN7Iu zXMN44yJfbuUI16BdUTlTV#|PVWZ~dr3=DN=bJO`(8dPx$bq zUOvtd${gQVXd7s z&cGv}WFJdKcaN4ee|~ozslHVJ$DA@R&5~0~7nM!rlm_r^MCd4LP-5{C*|8WbOs5`e zK)2anxKKD1S`Ao(ncy=q3U*aGg~dJULVtFKptGQJMc0G;h4LH_vhj{ =kzm8a%?H~9+R9@0pVw0=TwAF+%vS`EioU;nL@3Q^s( zPxMLl!#KI~e;vUYli57P1g=NuWi#1cBh8K{XSSai=0SHpoIRSHKO;gzgds-f5k^Hl zhCOsP6?+tQcAvG|%z}Xuz5oMRv*w>23*W)2CiNjhMmU#eOE9}@WM^ChRyz=uq!2eE zuJ7H3cQvW%WA5#*UT24o*NrZMhs{83H?Wu~ZPBj;!e_L?B_XV2<}v Gt8iue{_I7tvT zTXkOVb;_x`aj2&gd1Zh-T&bH!c{cqc_Up@PfEiW>oLd2$nUUdOI*~nwnl9EQI3*X} z6I3Y%^UWW7l`mIMRtJ-%UxC#cp*lcj2S2z`bJJwiB(OVl168{WqCZ;WV+%q*1KkfR zaNgDc`~yP|^r1ps1gRg|(ZTjySgS)1GULa358FdNw(pQ8neQ_wk8rP{1Vg;UUr_+h zy&_&_Da>VO^{iy$rql(cx<1pr)5MYv;7CW_72?39YI7hrTgqVoRlJhoV)VRMMt2o+ z$TAy;bE#INJiDiy=ylEk+?+c>R v$B?O}GK86Yz&@JvBDZ0uBF zKcQwH4>(K@(XDDAdfeUF?2eEcFeuln7lI)X)R|RP(zTin_-R%qP^Iu_I{9ecfX5Xf z-GCd~y4Bp6lfcb;x7fcu01kosH`!fY_VTrs^R0f75kMfvPXd<@7q4Dfh73y`(CJ@6 zv2@zFW}sndWrC^RRqQkcx=?!Am)vxJ*9X;RqnOic`FP_*vU7P)-EzyQ64h!rp?h9* z-H+|8z;Fw;?2o`}x2$77SgC1sHs&fCp1oI1i<&&MIjlL&wEtULP#~UOEm$J c zP>r{ld9dT&kHf)edr~(gRWp+@%o6VkMD%dGT+~f>SK+dwbpzwIiO|PE_$A#{0j iM*lkX(w(YAng9#;=x&B15CwEQTXgIsgA`LgJ zb~tbwD=7`RWRNFi2`xZkXNd7-I X+B;rdr?)FTX`M8=trHAhbVOMl7MT4mROoQMq61jkY@)a zsvMK`1}}EKe1GyZalfzBdS~=U_MPQR4AyCln}G}33xbQuoxHdu(iUJ^HRmcz03|c^ zy)F~ak&3|$+^!NbN{wnibQnqw7w)M>DTPEPdnk(;Km7@tw>~4qa?07h#RWI)${0@r zNUc_tFX6q2mhJ#81^JUO;&l~5SDmh_$`yUP85AelqqX+n)1i2@k WH^uIgFOWOSX$hPL+2W`nb`SZl7fQU*e1G3e2GI^D8v z3=H&3yPH?^3YGt16sPEMp3|4S#oz 3qRySkkyv^d|13}Su-0>t(n{^f~pd!_k+asr8MS0S;j}vhWY4q{^eY8 zG@WcWpPeKMH!m|cA&_tDXhu$oW(s-n(2fP=K01b(A!cAxIAy+24-LZ#$6y)48ULUP zoj$0aRwv@5+DmdYaROkXhldn`^r4EwIGM4WhbrC%W2az9j6K8mJ=~^lfQbax`QO|E zUaLY2*-k~Z$NA$`4KM9M8s$Ka?gI{L wCx|SuQO-n<~iMiCEi=!O)%In8-bCoUb`)4+fG*YR_oF{xp#dP847p2+*AKn z(ubCBbA<<<-{tlpQ3!&`jqt>S;2RX1xv@M9k4iqyb!9Zu)5)tJ(-_vBiXAry{ni_r zR<^WLJ`b@uRCWNKmG0?;6%NLJbU$U*$cbuuOx$U0^F$X&Pt}(w7#KEe86+0L<)LbP z52VwlWpAsa@i^ir4-sVi%(eQw9YOX74@&sG8vP+? 2)ggL4U?>k!{uL zM<9@6kss_X+g3HRML|vadKgHEgHhRwD8lCk@tzq-r9pz2Bc8CR=|dROBde_KnMk2V zyJBdh+@)rZK1J;j>Is$ogjBn|(27(_W1_QnJpYFN0-9TtWwm!hWIh%8TDB8G1Y-Jh zO{d$)i3Om0BPf}Nsm1A`a?K+YN3w&AgqFunz~M8tnO>Wo)}rI_!Vh#9dhTf#s77ay zngTw>q2q*CYm98#!#QXC(lVu?u62*|L_d9CK40G@?9E!t3y_yhS F8Oge({XMeHyUFv}ND=hIa~}cfZ0D`=3$tIxA 95fAFH{0s zVKyTh%&UIxGGO+&<5-koGxu0J?C{CavBStdL94H}ty7e|7qc)S># ~&*02()~}S7TFX&875Lj0Q=qZFd%O@a3+w>^oK6s1w%Z zIH%gn^9bPkr5tq~bZtIs28}jxsrMhT@YrfLZ)Yc)it4bTfvRDX8`=ouMVc-WRn&do z;q~flMp8j*t{2(sGa8-^RBv~v-4li`H(2{h7|c7e$1&n qnmT!82&lG*nq^g?JJZ!_Q z9t>t|<=z%V$5);Ll$I4QJS$I*L=+^iT!%L+7q;^(>$?=fXbot2jG|(dL1tC*^+DOY z (62B{7s3h@il1-_bTBE=s32Tr9jo2dW;p+dt*Y|E@(s>$8XP8w zxCUricetX55hXm+?8P(wVS(gkb#`-m>!PT~XZoL~ QM z=!vG3nX(jUezyg%N 39bTGwZ~XxQ{Ce) zcW9zwr|!&<+G70{x)!2TMf82WFjI-H5Da*R@WiPq%Fk`z;MwxHIwr-nVYZeR3xt9V zC?m_F5qy;lI@Yr>0J}`+dIX_SY`n#2b0y=d#Ixm(s;$gj?z@+afr36}wr8iUQTl~K z7MDS{-mC~aReJ^_*$PIWO@)jAk2MgvnrG&SGtfES9*mlfDwONMfv$FT1yGwl?jF{Z z7t-mg;Y-TSAp?ujPTF$|rB(7Pq`q**gVpgF40L_rZ11<&DmbvunU1_V1u76?wTirB zAZSNhj%h`8cc=i$F4d1UCc@DAu4Ya;p*F3Or*d#4D5|H0aKb~8wuDp~oxQ!RZ#3P; zimnf?$4I3Vi9EFpKRH?oo-rWo1<5jk=3(s4#1$QAE0sgHa_gSokqIlnWux{m`D#ZQ zqpEQlCD~&?dv}$lPJ$Qd`yiU4{iEXi-8xb6d}p1Far!bZe=$j1rNVv5>-SmVp8md? zH?$N%yV(W$;;-e$rU1gvDK|kH+aC?*YnntVxd~hlC4QyFfy8jO4G+F(%ITV|K3>DX zn7)gWvr3L&S1$K?jwWSww5cJnS10f^8bK)()?J=S6+7AEIilW%^K#7M%4FdjkT=4p z^0{?RqpbXv73XAcq(9iYKsO&paD1!&e(;DhX}a~TTK%D`)kTn7-Up4}AHioNT6=I0 zsy_skeE%Iuqu#@xnhu@{XVdo~CxJ$v?e6m~T+a2mMRtj*Xsv WmA)WO?jkOg5I?AUPNHMgF|L|qD;bhh;cdw!(sLU zG>O09c#iq{#gGUPqgcSaZup`$t)>oa0#Rej)4?4`^Ii8KqhCR~j{{ c*u%1GG%xT vFlP19$IpSyhqLr>Y2 zT$PFJ63 )<@=T|s__(bd!3chg36voz4xKT zY5b^-4SOF?_u*}3pZMcFo?Miv72<&k4)-ukKcT0Z??Rtj6l7=q5pB3o^YSw;LKqQF zu%5&o;sRbz9Ay+DK(egB9Cv#OMyfK+i~+Z@o~`dzFzavakAya6>EpsEdRL~ZCr8P4 z>W&qxKV9 E$62QbMrEd&1hos-W)03A>+U@h{eXR+Ms3+fl?*TP3 z@vmUFX!v-2gD)2L))%_&r+k?!eXrpYY>@Y-nPvIf@4j6_!Kc9c5sh13%a3BATfQ{B zRYuV#G}=z@5V7VsSnpHBFs)ffG!o6PQ@nHP&t#=q{v}>0mKm(0>Q&l7!Pfh!v>fG` zo8sKz5E<9|DT>Lab^@C%^CuV%rw*PC5^-{kAZS;n9rypAy(?XBTgjDOy6^wUqq;xL z1wdnKlCqtgXuixzY>6U!K?4P#iY7SQfBTihraH8D&F&* -UyR$M5y7@5!3#0>C zQGb?|1GukhA_-faU|K|-2mvV=-0|ys>|RoEAq$+x+}P>~#S8dJ#sV<|0XFq!Xke#v zwlHJ7pbmiu5{(}fkpWs6TdWOyS6AI5I-nD{CdRv*e_XPB*)^bnQCt=Eb&^f=cPKk# zSh7lk7VzrS3rBqj&!kkRVh|?dFadOl^&&%8xNaTHOCS%*U(_oklCN0U)|dTQw?k}U zO+FC~e8v|K00C&p0EmCnn&e{sel#+PWF;8yg4In2-kaY%RqG>;_@?!b)$fofy=2d! zw6lI25@1+ZV9tGJ59B0KMUhh!V?t4-vOgZO4UKHt!`fG3_E<%0*=k2^IE=Wzw)8yO z$c;{f*zj|NQw}m1@7;H k`j@5_9@* AUsfaN?V?#qe|EhkY zsQt?1PLP;fsQK~P1WTa})daW_38b zJRSUH%OG$)T4W)Ai%EF>)f>G%TlD`qaj^#eC*=P@QtcH6ui;WN2iWC&ngv$4^W!hy=*ZxqM=z&RFyMSCh6X3BE{ z?wYu&8;ArS!0P8ahg|ny@(M0+@#Jc?ZeT_X1B%T1eKBZ{FvoD1Tu~g3-h%b`S$d;# z-CvM>VSWe(Zx0zBvc=lD YjJsj$TNu7*IND{NKT;7q7L0OAtwiE?hrmo11p^;1~CXlbU69$ zb5T^K8qGBM*Ff4ZBlGx#NGHvD#m(uiG@Eg=Kv>oGpOvGyb=T09JZk)PHzpd&!nu8> zs{eR2T36M%zIrZ7*fcsF`?F>9qe_t_>1aj>ennbQ@{b=2R45mn)gu}4r|l0P=fI+f zAQ~V5FF?@0kyZ5RuW`6>)?^gBag1T-(2CaZUDh!cdC8wRW@O zX-h-W+!1RisM;0xA+A)0W=EqW#R4R8u@>(KlAm6@{b$BDPI!z z!!hqq7vtXv$D@-iO2hnZ^z^U4@u6;ci=GbRN4WED@C5#%;kxoUO>q@>ay@Zx-son| zP*pv1NAr@+`-t3ZRPJ6TCFJRRVl3!9A{bvNm}9;lmQ?Rv-kYH@4mgNCdg4YC;>wEi zeFPr_Kp0dwu+CP&f8tV9RrjX(aH>%~lh-ym4%Inslkn=lW9}lS={o0@^p=VBuj`-R z^FQLNgMEyNs{O4J`TO66Zu=Nx$nV_#Jvb+?IegY#57#1{Jtw-xN!@C|Ajq uR8**v0E)LD#G@9i>V5-Qj3Np{oZ1Jt|pVI#4d3 z(p(=$cBVz*na+EV(6Ojy173SZpgJcynxHGR$MdC*A`{v*7vIMLX=9kq^GQ6S@BrrL zK||ZLs>( ^1-JRWmvF ?;8kKjyOnPNDOyJkjMBjn|%g_k@Z3gL2A?`yG(Xk$o33zkD^B%wE2 zV`UvmDT0fgU-Pw0&?LST22Y@1{?m3Z_Kh%{c2+qyiQEWUJ|lgT>?J)H?SAgj`3ds6 z2r@#C;H==2wGQF)@={D{A+MD}W!2yyq_Y6bbWvVF_Ly%=_l#pujHeRk@cY8(<+CSD zVvBAnIzP20Sa{M42k2eesr^~ej17|csmiDk{G3W4ma2g)Y&81e42_H@+%pCLXxabz zS4A4ZVvGMFkEj?F^ieaOtfT!zclOi6owcDLu!&Xt^|zUc*PT6dC5ZXddmmXXZpEF@ zdO}mY>=H_}vL&uSiJ!5f-B8GP2=a~sK5%ag{6ViV+sile;>@isxzPyU>D(17xW2 }MvxKWbj)->18K{^d-(e|$7muSih`855bam}dP>ikk4R9T$4KBx-wqARPgz~Q4 z%>&1HZxmZHG5(gC= T6t6|fU<(x zcGX+Dcn6nKfA 8!5pi)s$!h`R2TO&a$hqvQHKw|xz@n}&;alhtX7TSk% z8h>~eb{Ry$f===6K$Qj3l|;3l;GgOOSKirhXbW0$2d7KqDPSwC)ZfNU(!W0*xo69+ za-gqt_6C0N=jPu^T=fG7K0L(vIW(7%U<_B=SHA6_;!Pe-GigatRvuC}QEaJfkYF|A z0`v^EkozJgxH8obEU312x@1b?x(t;c$}#>DYroR{XK##OiP{Ol%+A8%87$Z@6Qs~2 zyK5=y;AfOcKr|2yZ>?eWWI}a62gOFb7S=Sxwe$`U6%WGbKHDp-@f0v~RC%r7L`$oQ zs#A^_fdG%EBQ$!|(|3jgKrvV^{_{_I+b~NvI=7JTgUY(aKB(sTmMnw}TSUAuLUQZ| zzPb8(+%mgmM_l5L5}GN2Mph9@Y&*X=8nJHvTu?$3R3qqc!mZ}BA#KNreaCe&RA;eQ zt;)*beg=GAaS4Y9Gm`P1jD{_zb*E}zIBbi#(tM5Yi#$R~>k${uMwsTmr21d@@`{#y zC-D!|A24gzNT}T1hD=bDmG)6QZyrm0Fh{*UiQxS1*K1{6pn%h=V=-U|4C{Y?L=pT* zB$~rt{tWAfkRC+u2wrHHZ4t`+%nL=J3)fljs}-N``tbV|GLrr%&s^!`RDSs?rA6#s z@j7!#tNYx$zD>d*OzGP^MQ7EkfFG8oJm0r2lVqfuRM@p>?R4h16JEQ|MIM^x+Wx@R z^yW_SK6oUmcbaueZ!UGtrw(*N)3v{a20G6qzf6|D$Enf&evk2f CGwS?_z))$EOYL%g|BWH*%s0*rpbM66 z(K)gRcX~|7Yd*JAhjUdkwcmxlP)x-8_w`(m_q8C;M7pS^Fg{F24^!!`+lc^7sxv;_ zG+5nR)R2xf7Fkk?7{d+zg!_X}*&eI|Tv;5f*B^QpYo0Vz3;?5DxwMi*R|Qqfc!0V7 zC=LIyF3n)vBp*(Ob0tqV96p^fQ_t|+i+fypbllST@6(=QdA_58xlF!pV@9&(1kH)X zWA76qM9dM8iKAe^m=7VO`_r}Q&f!HmTO;9CT|0xBAicx&dpY^imhO-v>ZMh_rm55m zrL?)$MV^T}p*Ulwdliqm*Tf%B4R6wNgxq36i?kX-3QnJw`%h>SooKr1>ga{Cr$pDb zGrZsBl*@9Jb>OFFOWm*Uc012KCWHJOM*vZ1AQp}<^W8DWGzNlwiuA{3HO~F_`omrv zwM^=LeYzirVdiJ3y3Mah`S$HZu1w1(@yW(LGdansG2jQM>^Hn#9!`-Tf3r)>0)mVh z2&0%XN^(9uA!!8fiAX|5B@D$?$i$H#hs!~D @j+ol3ZKjX#-#7esByJ?dK zF>g?4Fx!L~>@e!od*}Apy3^lhXZcwT{B_6gLq}Y6qYv2?KI@$8#Q51YE)(xE3I4zL zSC=|DC$itf5v;vwlH6l^j`x|E|N5@&nPitdtzP>qyGTRHO|zktPP}J&x1YUbSuOS2 zW3VJEKammWGp#mm*W(nN01S@<2u*uyLczEoblKTzW>IY-4~Z3}1BRD~^BvCghB3Aw zHk|J5>Kb_BFj{pKovtdI@w^JicRSFrbg(#QKeG}{=evl>UfOOU52#Q(Q;`T|o!RTf zi8H*q)^(ME#=`=3X^91W_JYN3|M)2!?HA}0f;H!(PKM#S70B 7HNSj>}-; za9t(IvZ`YDmI^!Wpk#=6O1tB8CHUj=GQPHiadGP?)}-Mwf+3247w8^f=fzxZg{zO= z=CI@f&OwP}ceIm_=mUzmmq350*cbz!NxtdV`h4IJvFYJ+am-j4bUA%gjL^{?whva# zNCj+rMaH@>hIz4=Ss@HmwI}uqzy+0 D~7K@e5X zz36y+<3)zRb8C?p$;vc$ja8(hQ&D-Hds23Qqpg`(`*e)82~`@9rr3dkxEI>X$4u|u zJ6t$y=O88h-e?H#z@dA?Jtx?I?_5+sX*1~4+tYrYvb2|?BAe!O-00A^M6l{O$E;;O zY{Gm@TIn{qK2fw&C&2%=CDq>|0l(A7zoiDc>4HCh#;M!=)IO(kj~kWyh>N(UT= &Gay?+V{4Kr9zyV7Q@Ia?QdG#LHu^TrEpCm5lfITUDLh$>(q)2>I3_<|3qW463 z5&F(CJhUs 7_>tEtYBdO>$?*cA3f%z^!5p z%WF&}seYeyyu6b<;@H^>iB>fwAlRRt0i((waEvtJdKH}Flk@E*wBfbv!1Y^uRT>DW z;h+;%O|TLLo(dHUaEfnljUs)@cJk&f?$#yP%(ECzIP%Q3-u0~BtJr{OVt$?zkD!cg zNkYQrn;M_V`=&*b9B1Jyx57#?Izapm>`2-|{tNUgu=8diy4%Di|AFLK*$eUbM022D z`GZu9y)LXQS^In@aK-Arl0 ?4t(Q1k;U!2k@_Ffr-W>+`upkuNU#ol;SmmbsNARKEKM zZt$+Ji-)iGUwAEJQRZ; s lLOFZ#hK7u^j_Qr7?RZSNX`~SNwxX;4mCA zxugrIo2Zc(2UbBDuMWmMPNyLR3oBdA_0h4xFu0GcFHY>xU=!p?*?uI_4JoeDFBcl& zw0h !>$JFI+>Eu XAui5k?D6N(at)Fqjba(aw)X;}9!va> z`OW_&xJ=9nD^`UdV&MiWUrGjFWRO!>7Bz$~m+KC#xB2U7=SzvT-?Z2^#+$`gvN z;T?u6NEWm )?otU=o>$pWc%zKdXZoA>mRkZGj1d9*fbK?Qh0~)bZ)7n34_m z^RCRNl63HX(G8HcvqKYWK}0X?%`{G#0vB;-v`2&9W$-9I_L?}lFyPdIeyhmSXSkS- z1LyA(cvoc@LWU&7YpWuzxfH>%h>EbpzFO6jwwt-&`{euY_PQVPvoX=CugeGCbIJZ* zKnH$(OjgBX^!Lf+DqZbA_~>eBY#e9rpNVt2_U>M@$@)I+G!jRrboCxI_7I&g{BL>j z#(sV|gpAYLVtea-pTXgCTWbA?LWEQ^{x}`M+9{%{PpPU}^QR5Jr-2R;5}qAox)W1B z8^_!sSoMQne`Xe7#ns-b%79fJ=>Glc5ySY%#3iSxm`&)8czBU5`o226Id 8HvYW?$J=+cKyqRXVVO;GP0 z<`V_{5J~Yjzx2+Je{Xv1LQDNU#COa483GKL67#d}yX>kT;(cDBfX`}j2A!ICZ_Kj6 z7HeyR93Dt0kBd!tJ*B90#8{mNS_Ki%vNBx|m!^9+`zCBa6~w)>l{N0rU(!1H@WERq za|ZMa|3(BFvws$pb8|skVzp8p !F*vd=RBY3QyG&idUUd*UJf7 zSQM}BNqMJH2`T2WqCSJ4Vb0b*F2GhYKQ4IjV~DFkTA572{dsuI pd2nB=#5!_k3@CAU_iy0v4ywJhHB;9ljTG(y-Fddb!JB-t3t3h#YaG$LZMfl{G1{ zP(VuK-a4@ynp5_2C*9?nLJyGw-ECv#{ap$HXZLR=6oF@n!8pHy3ylH+q1ovZNZ)+- zEpB^ksj@|9_0wg3^Dfl5qEna9vxhQK%0OP`t7Vo7zoJ-&87(o(xua(~(JLs38E9~J zHSaMQzY3_?vUlF%Vls-tYeO&}-SfwzogF!LgRxo?f|gv}7+!J}qwbH(((|m{H4)qO z3DO&DM3clVUKDzMCkU)?JUz2VKQ^7iFWTk(wO{eIrXhk_#rnBmq#zQ!(p*lDcB#^9 zUL$A&-Kar>tV=1P8%1vmu6t`VWx~2$>`IY6gAfNEK`!FrE;@{TUIE;b3Fpfg%W|yQ z|E{~rQNQ`sN&3>-uBatCTab?>=y+kJbgEydyP{Mfu>3dD+P(NOd24+}CvwG}oc%qk zL9cK@{K4z{li%?|;u6Nal5B_8pEj&qI3w@(dZUNLA^TP%-V=#ycc^vn`xYKkf1bhS zrBSRyV3(6fV(}>M(%;!`y{;jxe6^b-ajst0O3`dRKnyB84em6?AZ+>pH&>5oyY|2- zHeDe0g6&ZRm>sfON&7O{B#0VdtKmJ-RQOIe$w3HxHB#)TT@QWCbnfE5-$T-|V@r68 zKYWchG5+`d`tzpv^M;~({~u2p_cI|+LG{k@et&h!@6_*ma{i=k*Oc>nf?eL{(Utxl zDj7d)2fFE6kNqVGI2XRv7vCYxxmN*>0P&opnxWwa8mKI9#ei>^9=79fOXz$rit6ul zbj>15cY+NE+#LZ*TzfXCsBf4KjjSk6&s`_Qv0`iQ7dH4qx#9=(po{)zy611!5sU)D zwdcSTDba{PLp$o#O zf{JPGEc@2n8-XHXjO86RbVF`Tat(O(_@mhXAfKEc$M?Nz*x;PM@VH+uuUP#VX8V>G zD5xC-P}!J(E$G_Z=y5<0R);@he9bsUXdG@C?`ME#Sc8km03fK4N2lW!Jq{fPfZxUS z3<(JA{N}q2gOJt23_P%mn-Z`jpq@@+4W`3)0{xA%>$w6-IM2=inPPw{`_g`MCo;8d zO}6%JAC5O#b6__q^(ll=V#bQ(lu5mBFxMIy+prqhi-D6xaAh4xoFbHA@v=0nE5nVH z*aTIXQCwzv_DFz+^p2T-cMzM+YaY|7w^WA^tbc{PP@69sb9glESA57P!j~&9O4J;a zd!hII I@xay(#1uJ{h}J6;@Fb=7=wbNHl1_d<~82ljpm@z zkbyCekzUrNwNJ;zP{Pj~vg{dF4BB-np}b-3JZ6Ow9vvQ!K%k8}dy %m^=$zmvPq&paXpLJ5 zWYB+ZBS&dDwdq3lSzfDSm`2>=QA???JPx&vBwV-}6Wz2JJksv~XqfVry -MPMgW{;QDf7K=|c$J-xi>Fc*zxBL5xY@F9;_z0L|oKKjYEfa=GZ?(Vj9^ z4y@g~S2Q*nE{vVut#r2p@3*?eoK-pgo3Df^ndWT76BC5`Jh@7Pj>Xk=MZWXb&E0fx z%szeu@m4+JDvC}*>e-vJ3f8_XM7x;Dp@u+rU7LS{4;ZM2P@z@nvD%>JhdP&B9HckF zL?bxtb#3XiL7cUG Xu89VmO`%#Xt6?A84DnA7&yZ;9d6lc> H~2ufqlTYoO~Kg59Rx{pCZvc8s=Xp#L!E8MfCve?A9o8 z&X&vYZ7$1d;@+#1xZAAorzF })+0trd~!-$-f$&asA1yk?cTLF37Egcd+ zXgBa+aFvxO3bSLJ$?^7+U;lOub;H8`;1BQZ@3IwruABH8T>S1=pBNhp8y7!nRM;>a z^}wz43`G?%Nk&C^U05rp#LXSY@0%((4#+u5S|iu0ejzpNUUwsI-X}}EZ9#@BbZoMH z_A1wRPTsyuwP6Ku)NtBzeW+8EoRJ}TqvNc5Z@l#^iWVjL8`{sZXB2|B+HMs#5-2PH zAV~=hk*Gycr%s-9?o&tgI7=od0tIfgb4uH77+r9oQU29su65v!zrQid4o=DUvwQqZ zio?*rLr}g`)4g-P)>qP=x|^L^$Njy _j&(MVeW5~{Y9JST-%RlrInkq9H z9szW=6+K9oNh&p3vraS>Q!}nnk$T=UnA`QC!oSGz4f<*vgZL!H)||RPIHroi=}J&? z8Cb}^z+VKdCZ84@*13}$LC#K21fT^PcoIU6MwwMc;-PL~3h937+--%6Yb$@xEyf_& zy{!X9Okk1$;ui0<^k%|g;)OB7t-amydlGu8Wv0%%{xE)5;vB#5i;-b0DcAd5AMlg( zja0jokACwr6S)G)%;Q=(B9oP>(=|wM5`o`gi%}7FVYm+X{@z4a0jq<^8K8?gX&(V~ z8_C{ooY-z8% (onxL(C+OQ68m>Q?_$r$(I9hF{ z@YW^cjg5|0Jp6rvWIN}cSq5WgZPN^Shd7F&VrYi3^P8}4BfV#*6LYNi7DMA^6v$6` zcl7 h?R_1{p}?5R*x zEuWPOTc)`(Gv_g_rhX#>8-fKxY;qHhb96`-$OJjha|Y6W!gza#_IW>UxO&9=5i$OU z)-@YzxEi guRszi$)d>Qz%oBDs z 6b^y9!;hG=@^5U7-9BsMGCXg7TbXYDS)f#zuSt7mE8^K!cTHy&L8OdR0K zk<{tw+Hu*lkY}|Q;Zedw`ideu9BuqTk?_I-fXLLi`@b_G4WbTBL_;V3uBq8A *zqA66|A6lq+rZw@I=yPLA6o zy0mNiXRQ(1_2CE2$>->a(@2loV2mS9jve}cw7bI*tZW(%CO}CyQH3Rgz?eEbJrix0 zzdpR^c|Jmu2v{{*&e*_%>tZ!#I+$7&pjh(=ws7D+NE-cyIo172C8b~3!zG8m nw?pg(BgTFQj$y`Mn@ z&obblJdZt~gL4Crm1mgrV0QLQ%-5RA%GtaBNwm?Es?h9ODY4Fi596_|0J`5P#2aq1 z*?x!idDb1x!jj%A82`ce=-#$;S7bIOw|xG1`vhOoEm=Tt_ fn@6bcP z60c?
`dhY&>#|vXp8VNa0)TW-gg-Ih}O%7j8OV93>=B9JR);H>JE^C zN&oUe47UemeSN?L4|jXp{&14yRIq@ikR!#&;tUAC64scg%w^J0(zBmb>)g85Pp$H= zMES09zWr=-PQI=Mp?|( AY1 zB)BYoJ0UU$UFUEa6smGU21SUjqM6(pw4JvYnmYlFh0Fdtw;EynCIl7>1w?R {5z|As-7wQU*(Mwcmb=xPY8}~Po$j60l!Yx0uf$3$kR}(h zHeV!r=)mP*Di 0sVwr9y#Rw5dLe+OB2Z(%%CiG!TB}3~dW(Yb+-Sx?( zFrC*cyRr{lBa2>`Iqi!r8GUG)?|=@)F)y5uuitN#b99Opc3)wmR9Bde%IR*w?0Zj` zZ*Ipy#m=q6oFdt+b F}`=0@9#a6>U&}w;u@IV^B!kcyy`MPsOZn+`kOk@zQ1Q2 z$$ha5B;Eb-jIw `5Vi~=N{zA9MRdM(GqX3UEL=b)5bji^f!Y@r-y4qZSqV9mmb z>-!QG5niO+z`~jTaaw;@MkpF13SZZM=#&Z6UZ2jqF~@kSULS;SMAB<)&1PoqTt5 zQ Uz(VkdTR^Mu-JLFQ;1QY_eobl(;o;gC`w zc*gLS#U)2)^)QW?XvHC!$w*H yryHM~t88j4P%+`aKg&g$WM9!kzDQ?B59iK9%7@v8~dx zZ1@Eh9UW|Uy&*C9bfhcOxQ;%J7`>p*>om_8G%-9O4*-L}7^dayh!D2I-pRMxm^)zc zOqLIM;S?=TqJOXPvo>rb_UNUjyUI|p8SX@6Jp8qT5 $DuXTr{W7bQ^GisnMy<`{V;}1{jEc+L4U!8kNc=! zEif6gX9PXEqNo7d8iDL22GlS{j&j+#fC>!sfmz8K*YzDHHn}b*+n6;c8AM2vgMWeR zC+ j%1E(6#}I+4jO6%&JB@A9MsKGNRCZIxsqNE^(Uo?D(Nht{9{()(Upk3w^*0 z?ikGV_4BT13hR!J_=@A(qXLvxd?TqXdK+iVS)Dl=G8E4OA?$#tod%bN03xiPkQG)j zpS=qT8rKGuON(W`KTM`5N1B=;ScCMTzb2Qw$xaE`HJcxpkC-)S^%)_~_Td2Al-*`) zR4k)$onJUPJ4(f4^``Uv$@DkZ0Cd$XOwu;RGA#sg+^ j~F=&LBb5JXj>9BZxBZl?%JgQN* zjg}PnnX$GTMx&WSx4hBr2a(Ey)0%sRP7>9s&t@Uo-I=BTmr(zWFF8vuz4#*Sj*PoM zuga)9O@CLndd-iY)y#AF?G9OC!p|kt!##`7EIKA*d^#LV03%N&+v{fTW-;n&_$nO0 zBh#U22a$#VSPC-un7NqA_vJbQybv&sLRK_a_k)mw@nkTVl_OyZCo7?;8NAgH?eM4$ zmCP+mnxudYprgQg143w0Cp7q;k)NELaOy@5I{zL#spo8R{yp}tbRHD)@Ao)#(BE&K zbn9=egKiVzlRo=S`#wa6`qAYMrHy_hzu)JdJ(2&Gl