From dd189f26a61e581b9dea3887336d566acacf4945 Mon Sep 17 00:00:00 2001 From: zhouwentao <1577701412@qq.com> Date: Tue, 26 Mar 2024 19:34:43 +0800 Subject: [PATCH] updates --- .env.development | 2 + index.html | 5 +- src/views/yx/yxArticle/YxArticle.data.ts | 5 +- .../yx/yxArticle/components/YxArticleForm.vue | 11 +- .../YxHistoryMajorEnroll.data.ts | 230 +++--- .../YxHistoryMajorEnrollList-edit0.vue | 315 ++++++++ .../YxHistoryMajorEnrollList-old.vue | 173 +++++ .../YxHistoryMajorEnrollList-s.vue | 223 ------ .../YxHistoryMajorEnrollList.vue | 714 ++++++++++++++---- .../YxHistoryMajorEnrollLists.vue | 432 +++++++++++ .../YxHistoryScoreControlLineList-old.vue | 173 +++++ .../yx/yxSchoolMajor/YxSchoolMajor.data.ts | 272 +++++-- .../yxSchoolMajor/YxSchoolMajorList-old.vue | 175 +++++ .../yx/yxSchoolMajor/YxSchoolMajorList.vue | 623 +++++++++++---- .../components/YxSchoolMajorForm.vue | 4 +- src/views/yx/yxVipCard/YxVipCard.data.ts | 19 +- src/views/yx/yxVipCard/YxVipCardList.vue | 12 +- src/views/yx/yxVipCard/YxVipCardList2.vue | 196 +++++ wechat/header.png | Bin 0 -> 12312 bytes wechat/test.html | 63 ++ wechat/test2.html | 60 ++ wechat/取消.png | Bin 0 -> 1850 bytes 22 files changed, 2942 insertions(+), 765 deletions(-) create mode 100644 src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnrollList-edit0.vue create mode 100644 src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnrollList-old.vue delete mode 100644 src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnrollList-s.vue create mode 100644 src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnrollLists.vue create mode 100644 src/views/yx/yxHistoryScoreControlLine/YxHistoryScoreControlLineList-old.vue create mode 100644 src/views/yx/yxSchoolMajor/YxSchoolMajorList-old.vue create mode 100644 src/views/yx/yxVipCard/YxVipCardList2.vue create mode 100644 wechat/header.png create mode 100644 wechat/test.html create mode 100644 wechat/test2.html create mode 100644 wechat/取消.png diff --git a/.env.development b/.env.development index 01a48a9..7e922b9 100644 --- a/.env.development +++ b/.env.development @@ -10,8 +10,10 @@ VITE_PROXY = [["/jeecgboot","http://localhost:8080/jeecg-boot"],["/upload","http #后台接口全路径地址(必填) VITE_GLOB_DOMAIN_URL=http://localhost:8080/jeecg-boot/ +#VITE_GLOB_DOMAIN_URL=http://localhost:9999 #后台接口父地址(必填) VITE_GLOB_API_URL=http://localhost:8080/jeecg-boot/ +#VITE_GLOB_API_URL=http://localhost:9999 # 接口前缀 VITE_GLOB_API_URL_PREFIX= diff --git a/index.html b/index.html index ef61a19..1d18061 100644 --- a/index.html +++ b/index.html @@ -167,7 +167,8 @@ - --> diff --git a/src/views/yx/yxArticle/YxArticle.data.ts b/src/views/yx/yxArticle/YxArticle.data.ts index d0ef650..bda9be2 100644 --- a/src/views/yx/yxArticle/YxArticle.data.ts +++ b/src/views/yx/yxArticle/YxArticle.data.ts @@ -10,8 +10,11 @@ export const columns: BasicColumn[] = [ dataIndex: 'title' }, { - title: '文章类型(1.招生章程)', + title: '文章类型', align: "center", + customRender:({text}) =>{ + return !text?"":(text==='1'?'招生章程':text==='2'?'高考动态':'校内资讯') + }, dataIndex: 'type' }, { diff --git a/src/views/yx/yxArticle/components/YxArticleForm.vue b/src/views/yx/yxArticle/components/YxArticleForm.vue index d8a3b23..2aa1e15 100644 --- a/src/views/yx/yxArticle/components/YxArticleForm.vue +++ b/src/views/yx/yxArticle/components/YxArticleForm.vue @@ -9,9 +9,12 @@ - - + + + 招生章程 + 高考动态 + 校内资讯 + @@ -84,7 +87,7 @@ const emit = defineEmits(['register', 'ok']); const formData = reactive>({ id: '', title: '', - type: '', + type: '1', schoolId: '', schoolName: '', author: '', diff --git a/src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnroll.data.ts b/src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnroll.data.ts index 5f45055..b22d272 100644 --- a/src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnroll.data.ts +++ b/src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnroll.data.ts @@ -1,144 +1,123 @@ import {BasicColumn} from '/@/components/Table'; import {FormSchema} from '/@/components/Table'; -import {rules} from '/@/utils/helper/validator'; -import {render} from '/@/utils/common/renderUtils'; +import { rules} from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; //列表数据 export const columns: BasicColumn[] = [ - { + { title: '学校代码', - align: "center", - dataIndex: 'schoolCode', - width: 150 - }, - { + align:"center", + dataIndex: 'schoolCode' + }, + { title: '院校代码', - align: "center", - dataIndex: 'institutionCode', - width: 150 - }, - { + align:"center", + dataIndex: 'institutionCode' + }, + { title: '学校名称', - align: "center", - dataIndex: 'schoolName', - width: 150 - }, - { + align:"center", + dataIndex: 'schoolName' + }, + { title: '专业代码', - align: "center", - dataIndex: 'majorCode', - width: 150 - }, - { + align:"center", + dataIndex: 'majorCode' + }, + { title: '专业名称', - align: "center", - dataIndex: 'majorName', - width: 150 - }, - { + align:"center", + dataIndex: 'majorName' + }, + { title: '专业类型', - align: "center", - dataIndex: 'majorType', - width: 150 - }, - { + align:"center", + dataIndex: 'majorType' + }, + { title: '专业类别子级', - align: "center", - dataIndex: 'majorTypeChild', - width: 150 - }, - { + align:"center", + dataIndex: 'majorTypeChild' + }, + { title: '年份', - align: "center", - dataIndex: 'year', - width: 150 - }, - { + align:"center", + dataIndex: 'year' + }, + { title: '科类(文科/理科)', - align: "center", - dataIndex: 'category', - width: 150 - }, - { + align:"center", + dataIndex: 'category' + }, + { title: '录取方式', - align: "center", - dataIndex: 'rulesEnrollProbability', - width: 150 - }, - { + align:"center", + dataIndex: 'rulesEnrollProbability' + }, + { title: '录取概率计算规则运算符', - align: "center", - dataIndex: 'probabilityOperator', - width: 150 - }, - { + align:"center", + dataIndex: 'probabilityOperator' + }, + { title: '省控线', - align: "center", - dataIndex: 'controlLine', - width: 150 - }, - { + align:"center", + dataIndex: 'controlLine' + }, + { title: '录取线', - align: "center", - dataIndex: 'admissionLine', - width: 150 - }, - { + align:"center", + dataIndex: 'admissionLine' + }, + { title: '招生人数', - align: "center", - dataIndex: 'enrollNum', - width: 150 - }, - { + align:"center", + dataIndex: 'enrollNum' + }, + { title: '实际投档人数', - align: "center", - dataIndex: 'actualPitcherNum', - width: 150 - }, - { + align:"center", + dataIndex: 'actualPitcherNum' + }, + { title: '录取数', - align: "center", - dataIndex: 'admissionNum', - width: 150 - }, - { + align:"center", + dataIndex: 'admissionNum' + }, + { title: '一志愿录取数', - align: "center", - dataIndex: 'oneVolunteerAdmissionNum', - width: 150 - }, - { + align:"center", + dataIndex: 'oneVolunteerAdmissionNum' + }, + { title: '最低分数差', - align: "center", - dataIndex: 'scoreLineDifference', - width: 150 - }, - { + align:"center", + dataIndex: 'scoreLineDifference' + }, + { title: '备注', - align: "center", - dataIndex: 'detail', - width: 150 - }, - { + align:"center", + dataIndex: 'detail' + }, + { title: '批次', - align: "center", - dataIndex: 'batch', - width: 150 - }, - { + align:"center", + dataIndex: 'batch' + }, + { title: '招生代码', - align: "center", - dataIndex: 'enrollmentCode', - width: 150 - }, - { + align:"center", + dataIndex: 'enrollmentCode' + }, + { title: '是否使用主项成绩', - align: "center", - dataIndex: 'checkMaster', - width: 150 - }, + align:"center", + dataIndex: 'checkMaster' + }, ]; //查询数据 -export const searchFormSchema: FormSchema[] = []; +export const searchFormSchema: FormSchema[] = [ +]; //表单数据 export const formSchema: FormSchema[] = [ { @@ -251,21 +230,22 @@ export const formSchema: FormSchema[] = [ field: 'checkMaster', component: 'Input', }, - // TODO 主键隐藏字段,目前写死为ID - { - label: '', - field: 'id', - component: 'Input', - show: false - }, + // TODO 主键隐藏字段,目前写死为ID + { + label: '', + field: 'id', + component: 'Input', + show: false + }, ]; + /** - * 流程表单调用这个方法获取formSchema - * @param param - */ -export function getBpmFormSchema(_formData): FormSchema[] { +* 流程表单调用这个方法获取formSchema +* @param param +*/ +export function getBpmFormSchema(_formData): FormSchema[]{ // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema return formSchema; -} +} \ No newline at end of file diff --git a/src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnrollList-edit0.vue b/src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnrollList-edit0.vue new file mode 100644 index 0000000..7a3be80 --- /dev/null +++ b/src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnrollList-edit0.vue @@ -0,0 +1,315 @@ + + diff --git a/src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnrollList-old.vue b/src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnrollList-old.vue new file mode 100644 index 0000000..cc5fc32 --- /dev/null +++ b/src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnrollList-old.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnrollList-s.vue b/src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnrollList-s.vue deleted file mode 100644 index 10e2779..0000000 --- a/src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnrollList-s.vue +++ /dev/null @@ -1,223 +0,0 @@ - - - - - diff --git a/src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnrollList.vue b/src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnrollList.vue index cc5fc32..5bc845e 100644 --- a/src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnrollList.vue +++ b/src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnrollList.vue @@ -1,173 +1,557 @@ - - + diff --git a/src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnrollLists.vue b/src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnrollLists.vue new file mode 100644 index 0000000..e1ca39b --- /dev/null +++ b/src/views/yx/yxHistoryMajorEnroll/YxHistoryMajorEnrollLists.vue @@ -0,0 +1,432 @@ + + + + + diff --git a/src/views/yx/yxHistoryScoreControlLine/YxHistoryScoreControlLineList-old.vue b/src/views/yx/yxHistoryScoreControlLine/YxHistoryScoreControlLineList-old.vue new file mode 100644 index 0000000..e7d4781 --- /dev/null +++ b/src/views/yx/yxHistoryScoreControlLine/YxHistoryScoreControlLineList-old.vue @@ -0,0 +1,173 @@ + + + + + \ No newline at end of file diff --git a/src/views/yx/yxSchoolMajor/YxSchoolMajor.data.ts b/src/views/yx/yxSchoolMajor/YxSchoolMajor.data.ts index 85d25ed..f101bd7 100644 --- a/src/views/yx/yxSchoolMajor/YxSchoolMajor.data.ts +++ b/src/views/yx/yxSchoolMajor/YxSchoolMajor.data.ts @@ -5,41 +5,125 @@ import { render } from '/@/utils/common/renderUtils'; //列表数据 export const columns: BasicColumn[] = [ { - title: '学校', + title: '学校代码', align:"center", - dataIndex: 'schoolCode_dictText' + dataIndex: 'schoolCode' }, { - title: '专业', + title: '专业代码', align:"center", - dataIndex: 'majorCode_dictText' + dataIndex: 'majorCode' + }, + { + title: '专业名称', + align:"center", + dataIndex: 'majorName' + }, + { + title: '招生代码', + align:"center", + dataIndex: 'enrollmentCode' }, { title: '学费', align:"center", dataIndex: 'tuition' }, - - { - title: '批次', - align:"center", - dataIndex: 'batch' - }, - { - title: '(文科)专业代码', - align:"center", - dataIndex: 'artsMajorCode' - }, - { - title: '(理科)专业代码', - align:"center", - dataIndex: 'scienceMajorCode' - }, { title: '备注', align:"center", dataIndex: 'detail' }, + { + title: '科类(文科/理科)', + align:"center", + dataIndex: 'category' + }, + { + title: '录取方式', + align:"center", + dataIndex: 'rulesEnrollProbability' + }, + { + title: '批次', + align:"center", + dataIndex: 'batch' + }, + { + title: '录取概率计算规则运算符', + align:"center", + dataIndex: 'probabilityOperator' + }, + { + title: '文化分省控线', + align:"center", + dataIndex: 'culturalControlLine' + }, + { + title: '专项分数线', + align:"center", + dataIndex: 'specialControlLine' + }, + { + title: '专业类型', + align:"center", + dataIndex: 'majorType' + }, + { + title: '二级专业类型', + align:"center", + dataIndex: 'majorTypeChild' + }, + { + title: '计划招生人数', + align:"center", + dataIndex: 'planNum' + }, + { + title: '是否使用主项成绩', + align:"center", + dataIndex: 'checkMaster' + }, + { + title: '主考科目', + align:"center", + dataIndex: 'mainSubjects' + }, + { + title: '学制', + align:"center", + dataIndex: 'semester' + }, + { + title: '院校限制', + align:"center", + dataIndex: 'limitation' + }, + { + title: '文化分数限制', + align:"center", + dataIndex: 'culturalScoreLimitation' + }, + { + title: '专业分数限制', + align:"center", + dataIndex: 'professionalScoreLimitation' + }, + { + title: '语文成绩限制', + align:"center", + dataIndex: 'chineseScoreLimitation' + }, + { + title: '英语成绩限制', + align:"center", + dataIndex: 'englishScoreLimitation' + }, + { + title: '录取方式缩写', + align:"center", + dataIndex: 'rulesEnrollProbabilitySx' + }, ]; //查询数据 export const searchFormSchema: FormSchema[] = [ @@ -47,28 +131,24 @@ export const searchFormSchema: FormSchema[] = [ //表单数据 export const formSchema: FormSchema[] = [ { - label: '学校', + label: '学校代码', field: 'schoolCode', - component: 'JSearchSelect', - colProps: { sm: 24 }, - componentProps: { - dict: 'yx_school,school_name,school_code', - }, - dynamicRules: () => { - return [{ required: true, message: '请选择学校!' }]; - }, + component: 'Input', }, { - label: '专业', + label: '专业代码', field: 'majorCode', - colProps: { sm: 24 }, - component: 'JSearchSelect', - componentProps: { - dict: 'yx_major,major_name,major_code', - }, - dynamicRules: () => { - return [{ required: true, message: '请选择专业!' }]; - } + component: 'Input', + }, + { + label: '专业名称', + field: 'majorName', + component: 'Input', + }, + { + label: '招生代码', + field: 'enrollmentCode', + component: 'Input', }, { label: '学费', @@ -76,59 +156,111 @@ export const formSchema: FormSchema[] = [ component: 'InputNumber', }, { - label: '文科-省控线', - field: 'artsControlLine', - component: 'InputNumber', + label: '备注', + field: 'detail', + component: 'Input', }, { - label: '理科-省控线', - field: 'scienceControlLine', - component: 'InputNumber', - }, - { - label:'专项分数线', - field:'specialControlLine', - component: 'InputNumber', + label: '科类(文科/理科)', + field: 'category', + component: 'Input', }, { label: '录取方式', field: 'rulesEnrollProbability', component: 'Input', }, - { - label: '录取概率计算规则运算符', - field: 'probabilityOperator', - component: 'Input', - }, - { - label: '备注', - field: 'detail', - component: 'Input', - }, { label: '批次', field: 'batch', component: 'Input', }, { - label: '(文科)专业代码', - field: 'artsMajorCode', + label: '录取概率计算规则运算符', + field: 'probabilityOperator', component: 'Input', }, { - label: '(理科)专业代码', - field: 'scienceMajorCode', + label: '文化分省控线', + field: 'culturalControlLine', + component: 'InputNumber', + }, + { + label: '专项分数线', + field: 'specialControlLine', + component: 'InputNumber', + }, + { + label: '专业类型', + field: 'majorType', + component: 'Input', + }, + { + label: '二级专业类型', + field: 'majorTypeChild', + component: 'Input', + }, + { + label: '计划招生人数', + field: 'planNum', + component: 'InputNumber', + }, + { + label: '是否使用主项成绩', + field: 'checkMaster', + component: 'Input', + }, + { + label: '主考科目', + field: 'mainSubjects', + component: 'Input', + }, + { + label: '学制', + field: 'semester', + component: 'Input', + }, + { + label: '院校限制', + field: 'limitation', + component: 'Input', + }, + { + label: '文化分数限制', + field: 'culturalScoreLimitation', + component: 'InputNumber', + }, + { + label: '专业分数限制', + field: 'professionalScoreLimitation', + component: 'InputNumber', + }, + { + label: '语文成绩限制', + field: 'chineseScoreLimitation', + component: 'InputNumber', + }, + { + label: '英语成绩限制', + field: 'englishScoreLimitation', + component: 'InputNumber', + }, + { + label: '录取方式缩写', + field: 'rulesEnrollProbabilitySx', component: 'Input', }, // TODO 主键隐藏字段,目前写死为ID - { - label: '', - field: 'id', - component: 'Input', - show: false - }, + { + label: '', + field: 'id', + component: 'Input', + show: false + }, ]; + + /** * 流程表单调用这个方法获取formSchema * @param param @@ -136,4 +268,4 @@ export const formSchema: FormSchema[] = [ export function getBpmFormSchema(_formData): FormSchema[]{ // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema return formSchema; -} +} \ No newline at end of file diff --git a/src/views/yx/yxSchoolMajor/YxSchoolMajorList-old.vue b/src/views/yx/yxSchoolMajor/YxSchoolMajorList-old.vue new file mode 100644 index 0000000..be2e58b --- /dev/null +++ b/src/views/yx/yxSchoolMajor/YxSchoolMajorList-old.vue @@ -0,0 +1,175 @@ + + + + + diff --git a/src/views/yx/yxSchoolMajor/YxSchoolMajorList.vue b/src/views/yx/yxSchoolMajor/YxSchoolMajorList.vue index be2e58b..6b46134 100644 --- a/src/views/yx/yxSchoolMajor/YxSchoolMajorList.vue +++ b/src/views/yx/yxSchoolMajor/YxSchoolMajorList.vue @@ -1,175 +1,470 @@ - - + diff --git a/src/views/yx/yxSchoolMajor/components/YxSchoolMajorForm.vue b/src/views/yx/yxSchoolMajor/components/YxSchoolMajorForm.vue index 5cb0b0e..348bc5f 100644 --- a/src/views/yx/yxSchoolMajor/components/YxSchoolMajorForm.vue +++ b/src/views/yx/yxSchoolMajor/components/YxSchoolMajorForm.vue @@ -2,7 +2,7 @@
- 提 交 + 提 交
@@ -67,4 +67,4 @@ } } }); - + \ No newline at end of file diff --git a/src/views/yx/yxVipCard/YxVipCard.data.ts b/src/views/yx/yxVipCard/YxVipCard.data.ts index 9b8a4b7..218ca3c 100644 --- a/src/views/yx/yxVipCard/YxVipCard.data.ts +++ b/src/views/yx/yxVipCard/YxVipCard.data.ts @@ -9,14 +9,19 @@ export const columns: BasicColumn[] = [ align:"center", dataIndex: 'cardNum' }, - { + { + title: '有效时长(天)', + dataIndex: 'validTime', + align: 'center', + }, + /*{ title: '有效日期', align:"center", dataIndex: 'validDate', customRender:({text}) =>{ return !text?"":(text.length>10?text.substr(0,10):text) }, - }, + },*/ { title: '对应商品', align:"center", @@ -37,12 +42,20 @@ export const formSchema: FormSchema[] = [ label: '卡号', field: 'cardNum', component: 'Input', + componentProps:{ + disabled: true + }, }, { + label: '有效时长(天)', + field: 'validTime', + component: 'InputNumber', + }, + /*{ label: '有效日期', field: 'validDate', component: 'DatePicker', - }, + },*/ { label: '对应商品', field: 'skuCode', diff --git a/src/views/yx/yxVipCard/YxVipCardList.vue b/src/views/yx/yxVipCard/YxVipCardList.vue index 824b761..0118853 100644 --- a/src/views/yx/yxVipCard/YxVipCardList.vue +++ b/src/views/yx/yxVipCard/YxVipCardList.vue @@ -160,12 +160,12 @@ function getTableAction(record) { } ] } else { - return [ - { - label: '详情', - onClick: handleDetail.bind(null, record), - } - ] + return [ + { + label: '详情', + onClick: handleDetail.bind(null, record), + } + ] } } diff --git a/src/views/yx/yxVipCard/YxVipCardList2.vue b/src/views/yx/yxVipCard/YxVipCardList2.vue new file mode 100644 index 0000000..0118853 --- /dev/null +++ b/src/views/yx/yxVipCard/YxVipCardList2.vue @@ -0,0 +1,196 @@ + + + + + diff --git a/wechat/header.png b/wechat/header.png new file mode 100644 index 0000000000000000000000000000000000000000..c47b37b02e0368365e86b759349f3ad2981844fa GIT binary patch literal 12312 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 literal 0 HcmV?d00001 diff --git a/wechat/test.html b/wechat/test.html new file mode 100644 index 0000000..db1d658 --- /dev/null +++ b/wechat/test.html @@ -0,0 +1,63 @@ + + + + + + + 微信账单详情明细 + + + +
+ +
+
+
+ +
+

微信账单详情明细

+ + + + + + + + + + + + + + + + + + + + +
交易时间交易类型交易金额(元)交易描述
2022-01-01 08:30:00消费50.00购物
2022-01-02 13:45:00收入100.00转账
+
+ + diff --git a/wechat/test2.html b/wechat/test2.html new file mode 100644 index 0000000..28957b6 --- /dev/null +++ b/wechat/test2.html @@ -0,0 +1,60 @@ + + + + + + + + + +
+
+ +
+
+
+ +
+ +
+ +
+ +
+
+ + diff --git a/wechat/取消.png b/wechat/取消.png new file mode 100644 index 0000000000000000000000000000000000000000..7665a52368b1e0ce120116d70bf82ace78131b69 GIT binary patch literal 1850 zcmV-A2gUe_P)Px*^hrcPRCr$Pol$b5I1q+KIR}|}H&r=8e3IFmWX2~M-(+WQkScf|A0!mJ%9TWu(kwEDCXj%eGm09_#>-uNk_t&;<&ueA%|8#obcs#yTRrRfDnpan=D%U?P zd}GXCwoKpmKU4xbfL$%Q!Tv~)>=2LT-LhhwP(1o^w*yCk?1zyrQYz!d(H1fK%<7&N(d zjRXW_h~RdY6MP5|bCBD$s{{olKya%z9OUzHV2n98O>-&O7rQ$(f}2g~tpE?hy@=kl zk>Is$+g}lNwMt+QJU>5w>ALPuV70m8m+E#fJLG%WctDk4V+Z(o!ZSE&+EgAWxzC2&U-5PbVd_X+v!W%MXu>2iUuFvUays_@|v zU@|(;$AK}1GW=u$=;PqOTY)Th$wdN=@Usgb zRRXT?iwJ;}fWo3xoZ%M}K#ByQpVq^tcSD}1Sw;a%4FYyx_B9MqNo|gyo=b?L0^H^a z5DQdfUC0sz-x%{+dS#X30&tT+68xe$z%(pzcpONBPf7slkw7ARasp750Qf$m_%nYR zc}e5|lphBu_!Q?s?R+16*+1~jqW&(YH0GC(uIo-Gnd-&`lz&I!9x(>1HiLV4A;ENGp^f<^Nff)Fr z1jrJB!NiyVg;}l2AtkChr{8k)Ll>5O$Ga;=?R90Vs||eCqM%D zgL5J!5G6oD_+ljxBR~fDA|((ZKt}lDBoHA0YDF%e1ankIL{7k7fI{%aL;}_V6oxNC z0=5Ex;165c?sj)nmI9#Q+pSifo}R8<*X?$9RCWR&;SbBMBX>gMw$}kG0aC!9d{hF7 z1e_#bBLE1#b49K_?sdRIfE@5AkzhA_9gr6wC;UB1Kw5wj@b@MGSpiDI-;)F+1)u;w zfdnL%i6JKd#l@F_qXTjhkP?6*{2>wm*9jyg0T}@(!!~3~0_UzL>#evi0TBQQ zU+i*h;KUFn!Dayze%L*S-0Pt4`%Bxl=dcz4BY?t>>v~EOL`MLH9|wQ@xp~S>uzXt= zC4j>B?Ot~|WF#=goSUY(gtjbL0N^+B;uAg}7)S~1f)~S@2R`Qx{vbr*`*v$sIp8vP zc61OVfp-K@_+d~(OP7+sO8|u*iZiZ!2?z$t*jkHxsHUQP)X1pqce zv;7Dkfc@`W(sot=@G`H)?g8&LYDbwJCrnoJNWd_wRSB=CaoEx=fUzVFYW opB)kGFOf|eZq%k}PQDlT4