From af7243203c5598b7555a7bfa1071c83ade0855f1 Mon Sep 17 00:00:00 2001 From: BabyBoy <2019108827@qq.com> Date: Wed, 17 Sep 2025 15:41:43 +0800 Subject: [PATCH] =?UTF-8?q?im=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 2 +- .env.production | 2 +- src/TUIKit/CHANGELOG.md | 208 ----- src/TUIKit/README.md | 94 -- src/TUIKit/adapter-vue.ts | 42 - src/TUIKit/assets/icon/add-circle.svg | 7 - src/TUIKit/assets/icon/add.svg | 12 - src/TUIKit/assets/icon/at.svg | 12 - src/TUIKit/assets/icon/audio.svg | 6 - src/TUIKit/assets/icon/back.svg | 16 - src/TUIKit/assets/icon/call-video.svg | 6 - src/TUIKit/assets/icon/call-voice.svg | 6 - src/TUIKit/assets/icon/call.png | Bin 4120 -> 0 bytes src/TUIKit/assets/icon/camera-uni.png | Bin 4914 -> 0 bytes src/TUIKit/assets/icon/cancel.svg | 23 - src/TUIKit/assets/icon/check-sm.svg | 3 - src/TUIKit/assets/icon/close-dark.svg | 3 - src/TUIKit/assets/icon/close-image.png | Bin 6231 -> 0 bytes src/TUIKit/assets/icon/convertText_en.svg | 7 - src/TUIKit/assets/icon/convertText_zh.svg | 8 - src/TUIKit/assets/icon/d-left-arrow.svg | 5 - src/TUIKit/assets/icon/d-right-arrow.svg | 5 - src/TUIKit/assets/icon/del-icon.svg | 25 - src/TUIKit/assets/icon/double-arrow.svg | 1 - src/TUIKit/assets/icon/down-icon.svg | 3 - src/TUIKit/assets/icon/downaload-image.png | Bin 6408 -> 0 bytes src/TUIKit/assets/icon/download.svg | 6 - src/TUIKit/assets/icon/edit.svg | 7 - src/TUIKit/assets/icon/evalute-dark.svg | 6 - src/TUIKit/assets/icon/evalute-light.svg | 7 - src/TUIKit/assets/icon/face-dark.svg | 7 - src/TUIKit/assets/icon/face-light.svg | 8 - src/TUIKit/assets/icon/face-uni.png | Bin 5015 -> 0 bytes src/TUIKit/assets/icon/file-dark.svg | 12 - src/TUIKit/assets/icon/file-light.svg | 13 - src/TUIKit/assets/icon/forward-each.svg | 6 - src/TUIKit/assets/icon/forward-merge.svg | 8 - src/TUIKit/assets/icon/icon-arrow-left.svg | 7 - src/TUIKit/assets/icon/icon-c2c.svg | 36 - src/TUIKit/assets/icon/icon-close.svg | 6 - src/TUIKit/assets/icon/image-dark.svg | 12 - src/TUIKit/assets/icon/image-light.svg | 13 - src/TUIKit/assets/icon/image-uni.png | Bin 4377 -> 0 bytes src/TUIKit/assets/icon/input-close.svg | 3 - src/TUIKit/assets/icon/left-arrow.svg | 6 - src/TUIKit/assets/icon/loading.gif | Bin 177671 -> 0 bytes src/TUIKit/assets/icon/loading.png | Bin 4469 -> 0 bytes src/TUIKit/assets/icon/minus.svg | 6 - src/TUIKit/assets/icon/more-uni.png | Bin 4652 -> 0 bytes src/TUIKit/assets/icon/more.png | Bin 842 -> 0 bytes src/TUIKit/assets/icon/msg-audio.svg | 1 - src/TUIKit/assets/icon/msg-copy.svg | 30 - src/TUIKit/assets/icon/msg-del.svg | 33 - src/TUIKit/assets/icon/msg-forward.svg | 31 - src/TUIKit/assets/icon/msg-quote.svg | 8 - src/TUIKit/assets/icon/msg-revoke.svg | 29 - src/TUIKit/assets/icon/multiple-select.svg | 5 - src/TUIKit/assets/icon/mute.svg | 8 - src/TUIKit/assets/icon/plus.svg | 7 - src/TUIKit/assets/icon/radio.svg | 6 - src/TUIKit/assets/icon/right-arrow.svg | 14 - src/TUIKit/assets/icon/right-icon.svg | 3 - src/TUIKit/assets/icon/rotate-left.svg | 7 - src/TUIKit/assets/icon/rotate-right.svg | 7 - src/TUIKit/assets/icon/search-default.svg | 52 -- src/TUIKit/assets/icon/search-more.svg | 7 - src/TUIKit/assets/icon/search.svg | 5 - src/TUIKit/assets/icon/selected.svg | 27 - src/TUIKit/assets/icon/setting.svg | 8 - src/TUIKit/assets/icon/star-light.png | Bin 5884 -> 0 bytes src/TUIKit/assets/icon/star.png | Bin 1370 -> 0 bytes src/TUIKit/assets/icon/start-group.svg | 6 - src/TUIKit/assets/icon/translate.svg | 12 - src/TUIKit/assets/icon/video-dark.svg | 11 - src/TUIKit/assets/icon/video-light.svg | 12 - src/TUIKit/assets/icon/video-play.png | Bin 2321 -> 0 bytes src/TUIKit/assets/icon/video-uni.png | Bin 4109 -> 0 bytes src/TUIKit/assets/icon/words-dark.svg | 6 - src/TUIKit/assets/icon/words-light.svg | 7 - src/TUIKit/assets/icon/zoom-in.svg | 9 - src/TUIKit/assets/icon/zoom-out.svg | 9 - src/TUIKit/assets/styles/common.scss | 59 -- src/TUIKit/assets/styles/sample.scss | 99 --- .../components/TUIChat/chat-header/index.vue | 147 ---- src/TUIKit/components/TUIChat/config.ts | 81 -- .../TUIChat/emoji-config/custom-emoji.ts | 15 - .../TUIChat/emoji-config/default-emoji.ts | 144 --- .../components/TUIChat/emoji-config/index.ts | 146 --- .../TUIChat/emoji-config/locales/en.ts | 66 -- .../TUIChat/emoji-config/locales/zh_cn.ts | 66 -- .../TUIChat/emoji-config/locales/zh_tw.ts | 66 -- .../components/TUIChat/forward/index.vue | 142 --- src/TUIKit/components/TUIChat/index.ts | 6 - src/TUIKit/components/TUIChat/index.vue | 273 ------ .../emoji-picker/emoji-picker-dialog.vue | 139 --- .../emoji-picker/index.ts | 2 - .../emoji-picker/index.vue | 67 -- .../emoji-picker/style/h5.scss | 25 - .../emoji-picker/style/index.scss | 4 - .../emoji-picker/style/web.scss | 55 -- .../message-input-toolbar/evaluate/index.ts | 2 - .../message-input-toolbar/evaluate/index.vue | 165 ---- .../evaluate/style/color.scss | 57 -- .../evaluate/style/h5.scss | 63 -- .../evaluate/style/index.scss | 4 - .../evaluate/style/web.scss | 93 -- .../file-upload/index.ts | 2 - .../file-upload/index.vue | 77 -- .../image-upload/index.ts | 2 - .../image-upload/index.vue | 149 ---- .../TUIChat/message-input-toolbar/index.ts | 2 - .../TUIChat/message-input-toolbar/index.vue | 296 ------- .../message-input-toolbar/style/uni.scss | 111 --- .../toolbar-item-container/index.vue | 117 --- .../toolbar-item-container/style/color.scss | 6 - .../toolbar-item-container/style/h5.scss | 7 - .../toolbar-item-container/style/index.scss | 5 - .../toolbar-item-container/style/uni.scss | 36 - .../toolbar-item-container/style/web.scss | 24 - .../user-selector/index.ts | 2 - .../user-selector/index.vue | 113 --- .../video-upload/index.ts | 2 - .../video-upload/index.vue | 141 --- .../message-input-toolbar/words/index.ts | 2 - .../message-input-toolbar/words/index.vue | 75 -- .../words/style/color.scss | 8 - .../message-input-toolbar/words/style/h5.scss | 29 - .../words/style/index.scss | 5 - .../words/style/web.scss | 32 - .../components/TUIChat/message-input/index.ts | 2 - .../TUIChat/message-input/index.vue | 147 ---- .../message-input/message-input-at/index.ts | 178 ---- .../message-input/message-input-at/index.vue | 275 ------ .../message-input/message-input-button.vue | 94 -- .../message-input/message-input-editor.vue | 828 ------------------ .../message-input/message-input-file.ts | 37 - .../message-input-quote/index.vue | 144 --- .../components/TUIChat/message-list/index.vue | 726 --------------- .../TUIChat/message-list/link/index.ts | 23 - .../message-elements/message-audio.vue | 186 ---- .../message-elements/message-bubble.vue | 424 --------- .../message-convert/convert-content.vue | 145 --- .../message-convert/index.vue | 95 -- .../message-elements/message-custom.vue | 159 ---- .../message-elements/message-face.vue | 38 - .../message-elements/message-file.vue | 71 -- .../message-elements/message-image.vue | 83 -- .../message-elements/message-location.vue | 28 - .../message-elements/message-quote/index.vue | 181 ---- .../message-quote/interface.ts | 60 -- .../message-elements/message-record/index.vue | 124 --- .../message-stream-markdown/index.scss | 201 ----- .../message-stream-markdown/index.ts | 15 - .../message-stream-markdown/index.vue | 171 ---- .../message-stream-markdown/marked.ts | 70 -- .../operation/index.ts | 1 - .../operation/index.vue | 101 --- .../message-stream-markdown/operation/type.ts | 13 - .../message-stream-markdown/type-writer.ts | 186 ---- .../message-elements/message-text.vue | 181 ---- .../message-elements/message-timestamp.vue | 68 -- .../message-elements/message-tip.vue | 48 - .../message-translate/index.vue | 116 --- .../message-translate/translation-content.vue | 158 ---- .../message-elements/message-video.vue | 274 ------ .../message-elements/read-status/index.vue | 186 ---- .../simple-message-list/index.vue | 354 -------- .../simple-message-list/message-container.vue | 102 --- .../message-group-application/index.vue | 311 ------- .../message-list/message-tool/index.vue | 404 --------- .../message-tool/message-revoked.vue | 54 -- .../message-list/read-receipt-panel/index.vue | 422 --------- .../read-receipt-panel/interface.ts | 27 - .../message-list/scroll-button/index.vue | 167 ---- .../TUIChat/message-list/style/color.scss | 32 - .../TUIChat/message-list/style/h5.scss | 16 - .../TUIChat/message-list/style/index.scss | 11 - .../TUIChat/message-list/style/web.scss | 177 ---- .../TUIChat/mulitple-select-panel/index.vue | 115 --- .../TUIChat/offlinePushInfoManager/const.ts | 17 - .../TUIChat/offlinePushInfoManager/index.ts | 6 - .../TUIChat/offlinePushInfoManager/info.ts | 8 - .../offlinePushInfoManager/interface.ts | 49 -- .../offlinePushInfoManager.ts | 73 -- src/TUIKit/components/TUIChat/server.ts | 86 -- src/TUIKit/components/TUIChat/style/h5.scss | 47 - .../components/TUIChat/style/index.scss | 12 - src/TUIKit/components/TUIChat/style/uni.scss | 10 - src/TUIKit/components/TUIChat/style/web.scss | 46 - src/TUIKit/components/TUIChat/style/wx.scss | 5 - .../components/TUIChat/utils/chatStorage.ts | 70 -- .../TUIChat/utils/conversationDraft.ts | 94 -- .../TUIChat/utils/convertVoiceToText.ts | 58 -- src/TUIKit/components/TUIChat/utils/copy.ts | 148 ---- .../components/TUIChat/utils/sendMessage.ts | 152 ---- .../components/TUIChat/utils/translation.ts | 199 ----- src/TUIKit/components/TUIChat/utils/utils.ts | 123 --- .../components/TUIChat/utils/wordsList.ts | 29 - .../contact-info/contact-info-config.ts | 174 ---- .../TUIContact/contact-info/index.ts | 3 - .../TUIContact/contact-info/index.vue | 291 ------ .../TUIContact/contact-info/style/h5.scss | 130 --- .../TUIContact/contact-info/style/index.scss | 3 - .../TUIContact/contact-info/style/web.scss | 151 ---- .../contact-list/contact-list-item/index.vue | 233 ----- .../TUIContact/contact-list/index.ts | 3 - .../TUIContact/contact-list/index.vue | 321 ------- .../TUIContact/contact-list/style/h5.scss | 12 - .../TUIContact/contact-list/style/index.scss | 3 - .../TUIContact/contact-list/style/web.scss | 85 -- .../TUIContact/contact-search/index.ts | 2 - .../TUIContact/contact-search/index.vue | 213 ----- src/TUIKit/components/TUIContact/index.ts | 5 - src/TUIKit/components/TUIContact/index.vue | 126 --- .../TUIContact/select-friend/index.ts | 3 - .../TUIContact/select-friend/index.vue | 89 -- src/TUIKit/components/TUIContact/server.ts | 44 - .../components/TUIContact/utils/index.ts | 331 ------- .../TUIConversation/actions-menu/index.vue | 206 ----- .../conversation-header/index.ts | 3 - .../conversation-header/index.vue | 64 -- .../conversation-header/server.ts | 80 -- .../conversation-list/index.vue | 264 ------ .../conversation-list/style/color.scss | 77 -- .../conversation-list/style/h5.scss | 43 - .../conversation-list/style/index.scss | 4 - .../conversation-list/style/web.scss | 186 ---- .../conversation-network/index.ts | 3 - .../conversation-network/index.vue | 22 - .../components/TUIConversation/index.ts | 5 - .../components/TUIConversation/index.vue | 42 - .../components/TUIConversation/server.ts | 158 ---- .../TUIConversation/style/color.scss | 12 - .../TUIConversation/style/index.scss | 3 - .../components/TUIConversation/style/web.scss | 107 --- .../create-group/group-introduction/config.ts | 47 - .../create-group/group-introduction/index.vue | 58 -- .../components/TUIGroup/create-group/index.ts | 3 - .../TUIGroup/create-group/index.vue | 228 ----- .../TUIGroup/create-group/style/color.scss | 104 --- .../TUIGroup/create-group/style/h5.scss | 97 -- .../TUIGroup/create-group/style/index.scss | 4 - .../TUIGroup/create-group/style/web.scss | 106 --- src/TUIKit/components/TUIGroup/index.ts | 6 - src/TUIKit/components/TUIGroup/index.vue | 49 -- .../components/TUIGroup/manage-group/index.ts | 3 - .../TUIGroup/manage-group/index.vue | 695 --------------- .../TUIGroup/manage-group/manage-admin.vue | 271 ------ .../TUIGroup/manage-group/manage-member.vue | 249 ------ .../TUIGroup/manage-group/manage-name.vue | 219 ----- .../manage-group/manage-notification.vue | 219 ----- .../TUIGroup/manage-group/manage-profile.vue | 244 ------ .../TUIGroup/manage-group/style/color.scss | 64 -- .../TUIGroup/manage-group/style/h5.scss | 3 - .../TUIGroup/manage-group/style/index.scss | 39 - .../TUIGroup/manage-group/style/web.scss | 243 ----- .../TUIGroup/select-member/index.ts | 3 - .../TUIGroup/select-member/index.vue | 112 --- src/TUIKit/components/TUIGroup/server.ts | 93 -- .../components/TUINotification/index.ts | 381 -------- .../components/TUINotification/interface.ts | 15 - .../components/TUINotification/utils.ts | 20 - src/TUIKit/components/TUISearch/index.ts | 5 - src/TUIKit/components/TUISearch/index.vue | 166 ---- .../TUISearch/search-container/index.ts | 2 - .../TUISearch/search-container/index.vue | 185 ---- .../TUISearch/search-container/style/h5.scss | 36 - .../search-container/style/index.scss | 3 - .../TUISearch/search-container/style/web.scss | 114 --- .../TUISearch/search-input/index.ts | 2 - .../TUISearch/search-input/index.vue | 192 ---- .../components/TUISearch/search-more/index.ts | 3 - .../TUISearch/search-more/index.vue | 139 --- .../TUISearch/search-result/index.ts | 2 - .../TUISearch/search-result/index.vue | 440 ---------- .../search-result-default/index.ts | 2 - .../search-result-default/index.vue | 45 - .../search-result-item/index.vue | 169 ---- .../message-abstract-custom.vue | 197 ----- .../message-abstract-file.vue | 134 --- .../message-abstract-image.vue | 37 - .../message-abstract-text.vue | 83 -- .../message-abstract-video.vue | 65 -- .../search-result-item/style/h5.scss | 24 - .../search-result-item/style/index.scss | 3 - .../search-result-item/style/web.scss | 262 ------ .../search-result-loading/index.ts | 2 - .../search-result-loading/index.vue | 22 - .../TUISearch/search-result/style/h5.scss | 67 -- .../TUISearch/search-result/style/index.scss | 3 - .../TUISearch/search-result/style/web.scss | 180 ---- .../components/TUISearch/search-time-list.ts | 45 - .../components/TUISearch/search-type-list.ts | 74 -- src/TUIKit/components/TUISearch/server.ts | 68 -- src/TUIKit/components/TUISearch/style/h5.scss | 39 - .../components/TUISearch/style/index.scss | 3 - .../components/TUISearch/style/web.scss | 28 - src/TUIKit/components/TUISearch/type.ts | 76 -- src/TUIKit/components/TUISearch/utils.ts | 333 ------- src/TUIKit/components/common/Avatar/index.vue | 130 --- .../components/common/BottomPopup/index.ts | 3 - .../components/common/BottomPopup/index.vue | 138 --- .../common/BottomPopup/style/h5.scss | 60 -- .../common/BottomPopup/style/index.scss | 3 - .../common/BottomPopup/style/modal.scss | 3 - .../common/DatePicker/date-picker-panel.vue | 251 ------ .../common/DatePicker/date-picker.ts | 14 - .../common/DatePicker/date-table.vue | 279 ------ .../components/common/DatePicker/index.ts | 2 - .../components/common/DatePicker/index.vue | 258 ------ src/TUIKit/components/common/Dialog/index.ts | 3 - src/TUIKit/components/common/Dialog/index.vue | 97 -- .../components/common/Dialog/style/color.scss | 43 - .../common/Dialog/style/dialog.scss | 4 - .../components/common/Dialog/style/h5.scss | 56 -- .../components/common/Dialog/style/web.scss | 61 -- src/TUIKit/components/common/Drag/index.ts | 2 - src/TUIKit/components/common/Drag/index.vue | 108 --- src/TUIKit/components/common/Drawer/index.vue | 163 ---- .../components/common/FetchMore/index.vue | 99 --- src/TUIKit/components/common/Icon.vue | 72 -- .../common/ImagePreviewer/image-item.vue | 42 - .../components/common/ImagePreviewer/index.ts | 3 - .../common/ImagePreviewer/index.vue | 583 ------------ src/TUIKit/components/common/Loading/index.ts | 2 - .../components/common/Loading/index.vue | 47 - .../components/common/MaskLayer/index.vue | 51 -- .../components/common/Overlay/index.vue | 133 --- .../components/common/Popconfirm/index.vue | 163 ---- .../common/ProgressMessage/index.vue | 79 -- .../components/common/RadioSelect/index.vue | 49 -- .../components/common/SelectUser/index.ts | 3 - .../components/common/SelectUser/index.vue | 62 -- src/TUIKit/components/common/Slider/index.vue | 60 -- .../components/common/SwitchBar/index.ts | 2 - .../components/common/SwitchBar/index.vue | 74 -- src/TUIKit/components/common/Toast/index.ts | 105 --- src/TUIKit/components/common/Toast/index.vue | 163 ---- src/TUIKit/components/common/Toast/type.ts | 8 - .../components/common/Transfer/index.ts | 2 - .../components/common/Transfer/index.vue | 240 ----- .../common/Transfer/style/color.scss | 68 -- .../components/common/Transfer/style/h5.scss | 93 -- .../common/Transfer/style/transfer.scss | 13 - .../components/common/Transfer/style/web.scss | 141 --- src/TUIKit/components/index.ts | 17 - src/TUIKit/constant.ts | 48 - src/TUIKit/debug/GenerateTestUserSig.js | 37 - src/TUIKit/debug/index.d.ts | 2 - src/TUIKit/debug/index.js | 1 - .../debug/lib-generate-test-usersig-es.min.js | 2 - src/TUIKit/index.ts | 10 - src/TUIKit/index.vue | 167 ---- src/TUIKit/interface.ts | 325 ------- src/TUIKit/locales/en/TUIChat.ts | 158 ---- src/TUIKit/locales/en/TUIContact.ts | 66 -- src/TUIKit/locales/en/TUIConversation.ts | 24 - src/TUIKit/locales/en/TUIGroup.ts | 91 -- src/TUIKit/locales/en/TUISearch.ts | 41 - src/TUIKit/locales/en/component.ts | 21 - src/TUIKit/locales/en/emoji.ts | 2 - src/TUIKit/locales/en/evaluate.ts | 11 - src/TUIKit/locales/en/index.ts | 41 - src/TUIKit/locales/en/message.ts | 62 -- src/TUIKit/locales/en/time.ts | 37 - src/TUIKit/locales/en/words.ts | 19 - src/TUIKit/locales/index.ts | 15 - src/TUIKit/locales/zh_cn/TUIChat.ts | 157 ---- src/TUIKit/locales/zh_cn/TUIContact.ts | 68 -- src/TUIKit/locales/zh_cn/TUIConversation.ts | 24 - src/TUIKit/locales/zh_cn/TUIGroup.ts | 92 -- src/TUIKit/locales/zh_cn/TUISearch.ts | 41 - src/TUIKit/locales/zh_cn/component.ts | 21 - src/TUIKit/locales/zh_cn/emoji.ts | 2 - src/TUIKit/locales/zh_cn/evaluate.ts | 11 - src/TUIKit/locales/zh_cn/index.ts | 41 - src/TUIKit/locales/zh_cn/message.ts | 62 -- src/TUIKit/locales/zh_cn/time.ts | 37 - src/TUIKit/locales/zh_cn/translate.ts | 165 ---- src/TUIKit/locales/zh_cn/words.ts | 14 - src/TUIKit/locales/zh_tw/TUIChat.ts | 157 ---- src/TUIKit/locales/zh_tw/TUIContact.ts | 66 -- src/TUIKit/locales/zh_tw/TUIConversation.ts | 24 - src/TUIKit/locales/zh_tw/TUIGroup.ts | 92 -- src/TUIKit/locales/zh_tw/TUISearch.ts | 41 - src/TUIKit/locales/zh_tw/component.ts | 21 - src/TUIKit/locales/zh_tw/emoji.ts | 2 - src/TUIKit/locales/zh_tw/evaluate.ts | 11 - src/TUIKit/locales/zh_tw/index.ts | 41 - src/TUIKit/locales/zh_tw/message.ts | 62 -- src/TUIKit/locales/zh_tw/time.ts | 37 - src/TUIKit/locales/zh_tw/translate.ts | 165 ---- src/TUIKit/locales/zh_tw/words.ts | 14 - .../plugins/extension-server/callkit.ts | 1 - src/TUIKit/plugins/plugin-components/index.ts | 31 - .../message-call/message-call-c2c.vue | 116 --- .../message-call/message-call-group.vue | 48 - .../message-customer/index.ts | 2 - .../message-customer-service.vue | 16 - .../message-plugin-layout.vue | 114 --- .../plugin-components/message-plugin.vue | 96 -- .../message-room/message-room-default.vue | 36 - .../message-room/message-room.vue | 19 - src/TUIKit/server.ts | 167 ---- src/TUIKit/shims-vue.d.ts | 29 - src/TUIKit/utils/documentLink.ts | 23 - src/TUIKit/utils/enableSampleTaskStatus.ts | 8 - src/TUIKit/utils/env.ts | 17 - src/TUIKit/utils/index.ts | 1 - src/TUIKit/utils/lodash.ts | 169 ---- src/TUIKit/utils/riseInput.ts | 52 -- src/TUIKit/utils/type-check.ts | 40 - src/main.ts | 75 +- 413 files changed, 37 insertions(+), 31564 deletions(-) delete mode 100644 src/TUIKit/CHANGELOG.md delete mode 100644 src/TUIKit/README.md delete mode 100644 src/TUIKit/adapter-vue.ts delete mode 100644 src/TUIKit/assets/icon/add-circle.svg delete mode 100644 src/TUIKit/assets/icon/add.svg delete mode 100644 src/TUIKit/assets/icon/at.svg delete mode 100644 src/TUIKit/assets/icon/audio.svg delete mode 100644 src/TUIKit/assets/icon/back.svg delete mode 100644 src/TUIKit/assets/icon/call-video.svg delete mode 100644 src/TUIKit/assets/icon/call-voice.svg delete mode 100644 src/TUIKit/assets/icon/call.png delete mode 100644 src/TUIKit/assets/icon/camera-uni.png delete mode 100644 src/TUIKit/assets/icon/cancel.svg delete mode 100644 src/TUIKit/assets/icon/check-sm.svg delete mode 100644 src/TUIKit/assets/icon/close-dark.svg delete mode 100644 src/TUIKit/assets/icon/close-image.png delete mode 100644 src/TUIKit/assets/icon/convertText_en.svg delete mode 100644 src/TUIKit/assets/icon/convertText_zh.svg delete mode 100644 src/TUIKit/assets/icon/d-left-arrow.svg delete mode 100644 src/TUIKit/assets/icon/d-right-arrow.svg delete mode 100644 src/TUIKit/assets/icon/del-icon.svg delete mode 100644 src/TUIKit/assets/icon/double-arrow.svg delete mode 100644 src/TUIKit/assets/icon/down-icon.svg delete mode 100644 src/TUIKit/assets/icon/downaload-image.png delete mode 100644 src/TUIKit/assets/icon/download.svg delete mode 100644 src/TUIKit/assets/icon/edit.svg delete mode 100644 src/TUIKit/assets/icon/evalute-dark.svg delete mode 100644 src/TUIKit/assets/icon/evalute-light.svg delete mode 100644 src/TUIKit/assets/icon/face-dark.svg delete mode 100644 src/TUIKit/assets/icon/face-light.svg delete mode 100644 src/TUIKit/assets/icon/face-uni.png delete mode 100644 src/TUIKit/assets/icon/file-dark.svg delete mode 100644 src/TUIKit/assets/icon/file-light.svg delete mode 100644 src/TUIKit/assets/icon/forward-each.svg delete mode 100644 src/TUIKit/assets/icon/forward-merge.svg delete mode 100644 src/TUIKit/assets/icon/icon-arrow-left.svg delete mode 100644 src/TUIKit/assets/icon/icon-c2c.svg delete mode 100644 src/TUIKit/assets/icon/icon-close.svg delete mode 100644 src/TUIKit/assets/icon/image-dark.svg delete mode 100644 src/TUIKit/assets/icon/image-light.svg delete mode 100644 src/TUIKit/assets/icon/image-uni.png delete mode 100644 src/TUIKit/assets/icon/input-close.svg delete mode 100644 src/TUIKit/assets/icon/left-arrow.svg delete mode 100644 src/TUIKit/assets/icon/loading.gif delete mode 100644 src/TUIKit/assets/icon/loading.png delete mode 100644 src/TUIKit/assets/icon/minus.svg delete mode 100644 src/TUIKit/assets/icon/more-uni.png delete mode 100644 src/TUIKit/assets/icon/more.png delete mode 100644 src/TUIKit/assets/icon/msg-audio.svg delete mode 100644 src/TUIKit/assets/icon/msg-copy.svg delete mode 100644 src/TUIKit/assets/icon/msg-del.svg delete mode 100644 src/TUIKit/assets/icon/msg-forward.svg delete mode 100644 src/TUIKit/assets/icon/msg-quote.svg delete mode 100644 src/TUIKit/assets/icon/msg-revoke.svg delete mode 100644 src/TUIKit/assets/icon/multiple-select.svg delete mode 100644 src/TUIKit/assets/icon/mute.svg delete mode 100644 src/TUIKit/assets/icon/plus.svg delete mode 100644 src/TUIKit/assets/icon/radio.svg delete mode 100644 src/TUIKit/assets/icon/right-arrow.svg delete mode 100644 src/TUIKit/assets/icon/right-icon.svg delete mode 100644 src/TUIKit/assets/icon/rotate-left.svg delete mode 100644 src/TUIKit/assets/icon/rotate-right.svg delete mode 100644 src/TUIKit/assets/icon/search-default.svg delete mode 100644 src/TUIKit/assets/icon/search-more.svg delete mode 100644 src/TUIKit/assets/icon/search.svg delete mode 100644 src/TUIKit/assets/icon/selected.svg delete mode 100644 src/TUIKit/assets/icon/setting.svg delete mode 100644 src/TUIKit/assets/icon/star-light.png delete mode 100644 src/TUIKit/assets/icon/star.png delete mode 100644 src/TUIKit/assets/icon/start-group.svg delete mode 100644 src/TUIKit/assets/icon/translate.svg delete mode 100644 src/TUIKit/assets/icon/video-dark.svg delete mode 100644 src/TUIKit/assets/icon/video-light.svg delete mode 100644 src/TUIKit/assets/icon/video-play.png delete mode 100644 src/TUIKit/assets/icon/video-uni.png delete mode 100644 src/TUIKit/assets/icon/words-dark.svg delete mode 100644 src/TUIKit/assets/icon/words-light.svg delete mode 100644 src/TUIKit/assets/icon/zoom-in.svg delete mode 100644 src/TUIKit/assets/icon/zoom-out.svg delete mode 100644 src/TUIKit/assets/styles/common.scss delete mode 100644 src/TUIKit/assets/styles/sample.scss delete mode 100644 src/TUIKit/components/TUIChat/chat-header/index.vue delete mode 100644 src/TUIKit/components/TUIChat/config.ts delete mode 100644 src/TUIKit/components/TUIChat/emoji-config/custom-emoji.ts delete mode 100644 src/TUIKit/components/TUIChat/emoji-config/default-emoji.ts delete mode 100644 src/TUIKit/components/TUIChat/emoji-config/index.ts delete mode 100644 src/TUIKit/components/TUIChat/emoji-config/locales/en.ts delete mode 100644 src/TUIKit/components/TUIChat/emoji-config/locales/zh_cn.ts delete mode 100644 src/TUIKit/components/TUIChat/emoji-config/locales/zh_tw.ts delete mode 100644 src/TUIKit/components/TUIChat/forward/index.vue delete mode 100644 src/TUIKit/components/TUIChat/index.ts delete mode 100644 src/TUIKit/components/TUIChat/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/emoji-picker/emoji-picker-dialog.vue delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/emoji-picker/index.ts delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/emoji-picker/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/emoji-picker/style/h5.scss delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/emoji-picker/style/index.scss delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/emoji-picker/style/web.scss delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/evaluate/index.ts delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/evaluate/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/evaluate/style/color.scss delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/evaluate/style/h5.scss delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/evaluate/style/index.scss delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/evaluate/style/web.scss delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/file-upload/index.ts delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/file-upload/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/image-upload/index.ts delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/image-upload/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/index.ts delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/style/uni.scss delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/toolbar-item-container/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/toolbar-item-container/style/color.scss delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/toolbar-item-container/style/h5.scss delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/toolbar-item-container/style/index.scss delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/toolbar-item-container/style/uni.scss delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/toolbar-item-container/style/web.scss delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/user-selector/index.ts delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/user-selector/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/video-upload/index.ts delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/video-upload/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/words/index.ts delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/words/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/words/style/color.scss delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/words/style/h5.scss delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/words/style/index.scss delete mode 100644 src/TUIKit/components/TUIChat/message-input-toolbar/words/style/web.scss delete mode 100644 src/TUIKit/components/TUIChat/message-input/index.ts delete mode 100644 src/TUIKit/components/TUIChat/message-input/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-input/message-input-at/index.ts delete mode 100644 src/TUIKit/components/TUIChat/message-input/message-input-at/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-input/message-input-button.vue delete mode 100644 src/TUIKit/components/TUIChat/message-input/message-input-editor.vue delete mode 100644 src/TUIKit/components/TUIChat/message-input/message-input-file.ts delete mode 100644 src/TUIKit/components/TUIChat/message-input/message-input-quote/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/link/index.ts delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-audio.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-bubble.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-convert/convert-content.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-convert/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-custom.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-face.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-file.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-image.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-location.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-quote/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-quote/interface.ts delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-record/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-stream-markdown/index.scss delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-stream-markdown/index.ts delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-stream-markdown/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-stream-markdown/marked.ts delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-stream-markdown/operation/index.ts delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-stream-markdown/operation/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-stream-markdown/operation/type.ts delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-stream-markdown/type-writer.ts delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-text.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-timestamp.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-tip.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-translate/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-translate/translation-content.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/message-video.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/read-status/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/message-container.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-group-application/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-tool/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/message-tool/message-revoked.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/read-receipt-panel/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/read-receipt-panel/interface.ts delete mode 100644 src/TUIKit/components/TUIChat/message-list/scroll-button/index.vue delete mode 100644 src/TUIKit/components/TUIChat/message-list/style/color.scss delete mode 100644 src/TUIKit/components/TUIChat/message-list/style/h5.scss delete mode 100644 src/TUIKit/components/TUIChat/message-list/style/index.scss delete mode 100644 src/TUIKit/components/TUIChat/message-list/style/web.scss delete mode 100644 src/TUIKit/components/TUIChat/mulitple-select-panel/index.vue delete mode 100644 src/TUIKit/components/TUIChat/offlinePushInfoManager/const.ts delete mode 100644 src/TUIKit/components/TUIChat/offlinePushInfoManager/index.ts delete mode 100644 src/TUIKit/components/TUIChat/offlinePushInfoManager/info.ts delete mode 100644 src/TUIKit/components/TUIChat/offlinePushInfoManager/interface.ts delete mode 100644 src/TUIKit/components/TUIChat/offlinePushInfoManager/offlinePushInfoManager.ts delete mode 100644 src/TUIKit/components/TUIChat/server.ts delete mode 100644 src/TUIKit/components/TUIChat/style/h5.scss delete mode 100644 src/TUIKit/components/TUIChat/style/index.scss delete mode 100644 src/TUIKit/components/TUIChat/style/uni.scss delete mode 100644 src/TUIKit/components/TUIChat/style/web.scss delete mode 100644 src/TUIKit/components/TUIChat/style/wx.scss delete mode 100644 src/TUIKit/components/TUIChat/utils/chatStorage.ts delete mode 100644 src/TUIKit/components/TUIChat/utils/conversationDraft.ts delete mode 100644 src/TUIKit/components/TUIChat/utils/convertVoiceToText.ts delete mode 100644 src/TUIKit/components/TUIChat/utils/copy.ts delete mode 100644 src/TUIKit/components/TUIChat/utils/sendMessage.ts delete mode 100644 src/TUIKit/components/TUIChat/utils/translation.ts delete mode 100644 src/TUIKit/components/TUIChat/utils/utils.ts delete mode 100644 src/TUIKit/components/TUIChat/utils/wordsList.ts delete mode 100644 src/TUIKit/components/TUIContact/contact-info/contact-info-config.ts delete mode 100644 src/TUIKit/components/TUIContact/contact-info/index.ts delete mode 100644 src/TUIKit/components/TUIContact/contact-info/index.vue delete mode 100644 src/TUIKit/components/TUIContact/contact-info/style/h5.scss delete mode 100644 src/TUIKit/components/TUIContact/contact-info/style/index.scss delete mode 100644 src/TUIKit/components/TUIContact/contact-info/style/web.scss delete mode 100644 src/TUIKit/components/TUIContact/contact-list/contact-list-item/index.vue delete mode 100644 src/TUIKit/components/TUIContact/contact-list/index.ts delete mode 100644 src/TUIKit/components/TUIContact/contact-list/index.vue delete mode 100644 src/TUIKit/components/TUIContact/contact-list/style/h5.scss delete mode 100644 src/TUIKit/components/TUIContact/contact-list/style/index.scss delete mode 100644 src/TUIKit/components/TUIContact/contact-list/style/web.scss delete mode 100644 src/TUIKit/components/TUIContact/contact-search/index.ts delete mode 100644 src/TUIKit/components/TUIContact/contact-search/index.vue delete mode 100644 src/TUIKit/components/TUIContact/index.ts delete mode 100644 src/TUIKit/components/TUIContact/index.vue delete mode 100644 src/TUIKit/components/TUIContact/select-friend/index.ts delete mode 100644 src/TUIKit/components/TUIContact/select-friend/index.vue delete mode 100644 src/TUIKit/components/TUIContact/server.ts delete mode 100644 src/TUIKit/components/TUIContact/utils/index.ts delete mode 100644 src/TUIKit/components/TUIConversation/actions-menu/index.vue delete mode 100644 src/TUIKit/components/TUIConversation/conversation-header/index.ts delete mode 100644 src/TUIKit/components/TUIConversation/conversation-header/index.vue delete mode 100644 src/TUIKit/components/TUIConversation/conversation-header/server.ts delete mode 100644 src/TUIKit/components/TUIConversation/conversation-list/index.vue delete mode 100644 src/TUIKit/components/TUIConversation/conversation-list/style/color.scss delete mode 100644 src/TUIKit/components/TUIConversation/conversation-list/style/h5.scss delete mode 100644 src/TUIKit/components/TUIConversation/conversation-list/style/index.scss delete mode 100644 src/TUIKit/components/TUIConversation/conversation-list/style/web.scss delete mode 100644 src/TUIKit/components/TUIConversation/conversation-network/index.ts delete mode 100644 src/TUIKit/components/TUIConversation/conversation-network/index.vue delete mode 100644 src/TUIKit/components/TUIConversation/index.ts delete mode 100644 src/TUIKit/components/TUIConversation/index.vue delete mode 100644 src/TUIKit/components/TUIConversation/server.ts delete mode 100644 src/TUIKit/components/TUIConversation/style/color.scss delete mode 100644 src/TUIKit/components/TUIConversation/style/index.scss delete mode 100644 src/TUIKit/components/TUIConversation/style/web.scss delete mode 100644 src/TUIKit/components/TUIGroup/create-group/group-introduction/config.ts delete mode 100644 src/TUIKit/components/TUIGroup/create-group/group-introduction/index.vue delete mode 100644 src/TUIKit/components/TUIGroup/create-group/index.ts delete mode 100644 src/TUIKit/components/TUIGroup/create-group/index.vue delete mode 100644 src/TUIKit/components/TUIGroup/create-group/style/color.scss delete mode 100644 src/TUIKit/components/TUIGroup/create-group/style/h5.scss delete mode 100644 src/TUIKit/components/TUIGroup/create-group/style/index.scss delete mode 100644 src/TUIKit/components/TUIGroup/create-group/style/web.scss delete mode 100644 src/TUIKit/components/TUIGroup/index.ts delete mode 100644 src/TUIKit/components/TUIGroup/index.vue delete mode 100644 src/TUIKit/components/TUIGroup/manage-group/index.ts delete mode 100644 src/TUIKit/components/TUIGroup/manage-group/index.vue delete mode 100644 src/TUIKit/components/TUIGroup/manage-group/manage-admin.vue delete mode 100644 src/TUIKit/components/TUIGroup/manage-group/manage-member.vue delete mode 100644 src/TUIKit/components/TUIGroup/manage-group/manage-name.vue delete mode 100644 src/TUIKit/components/TUIGroup/manage-group/manage-notification.vue delete mode 100644 src/TUIKit/components/TUIGroup/manage-group/manage-profile.vue delete mode 100644 src/TUIKit/components/TUIGroup/manage-group/style/color.scss delete mode 100644 src/TUIKit/components/TUIGroup/manage-group/style/h5.scss delete mode 100644 src/TUIKit/components/TUIGroup/manage-group/style/index.scss delete mode 100644 src/TUIKit/components/TUIGroup/manage-group/style/web.scss delete mode 100644 src/TUIKit/components/TUIGroup/select-member/index.ts delete mode 100644 src/TUIKit/components/TUIGroup/select-member/index.vue delete mode 100644 src/TUIKit/components/TUIGroup/server.ts delete mode 100644 src/TUIKit/components/TUINotification/index.ts delete mode 100644 src/TUIKit/components/TUINotification/interface.ts delete mode 100644 src/TUIKit/components/TUINotification/utils.ts delete mode 100644 src/TUIKit/components/TUISearch/index.ts delete mode 100644 src/TUIKit/components/TUISearch/index.vue delete mode 100644 src/TUIKit/components/TUISearch/search-container/index.ts delete mode 100644 src/TUIKit/components/TUISearch/search-container/index.vue delete mode 100644 src/TUIKit/components/TUISearch/search-container/style/h5.scss delete mode 100644 src/TUIKit/components/TUISearch/search-container/style/index.scss delete mode 100644 src/TUIKit/components/TUISearch/search-container/style/web.scss delete mode 100644 src/TUIKit/components/TUISearch/search-input/index.ts delete mode 100644 src/TUIKit/components/TUISearch/search-input/index.vue delete mode 100644 src/TUIKit/components/TUISearch/search-more/index.ts delete mode 100644 src/TUIKit/components/TUISearch/search-more/index.vue delete mode 100644 src/TUIKit/components/TUISearch/search-result/index.ts delete mode 100644 src/TUIKit/components/TUISearch/search-result/index.vue delete mode 100644 src/TUIKit/components/TUISearch/search-result/search-result-default/index.ts delete mode 100644 src/TUIKit/components/TUISearch/search-result/search-result-default/index.vue delete mode 100644 src/TUIKit/components/TUISearch/search-result/search-result-item/index.vue delete mode 100644 src/TUIKit/components/TUISearch/search-result/search-result-item/message-abstract/message-abstract-custom.vue delete mode 100644 src/TUIKit/components/TUISearch/search-result/search-result-item/message-abstract/message-abstract-file.vue delete mode 100644 src/TUIKit/components/TUISearch/search-result/search-result-item/message-abstract/message-abstract-image.vue delete mode 100644 src/TUIKit/components/TUISearch/search-result/search-result-item/message-abstract/message-abstract-text.vue delete mode 100644 src/TUIKit/components/TUISearch/search-result/search-result-item/message-abstract/message-abstract-video.vue delete mode 100644 src/TUIKit/components/TUISearch/search-result/search-result-item/style/h5.scss delete mode 100644 src/TUIKit/components/TUISearch/search-result/search-result-item/style/index.scss delete mode 100644 src/TUIKit/components/TUISearch/search-result/search-result-item/style/web.scss delete mode 100644 src/TUIKit/components/TUISearch/search-result/search-result-loading/index.ts delete mode 100644 src/TUIKit/components/TUISearch/search-result/search-result-loading/index.vue delete mode 100644 src/TUIKit/components/TUISearch/search-result/style/h5.scss delete mode 100644 src/TUIKit/components/TUISearch/search-result/style/index.scss delete mode 100644 src/TUIKit/components/TUISearch/search-result/style/web.scss delete mode 100644 src/TUIKit/components/TUISearch/search-time-list.ts delete mode 100644 src/TUIKit/components/TUISearch/search-type-list.ts delete mode 100644 src/TUIKit/components/TUISearch/server.ts delete mode 100644 src/TUIKit/components/TUISearch/style/h5.scss delete mode 100644 src/TUIKit/components/TUISearch/style/index.scss delete mode 100644 src/TUIKit/components/TUISearch/style/web.scss delete mode 100644 src/TUIKit/components/TUISearch/type.ts delete mode 100644 src/TUIKit/components/TUISearch/utils.ts delete mode 100644 src/TUIKit/components/common/Avatar/index.vue delete mode 100644 src/TUIKit/components/common/BottomPopup/index.ts delete mode 100644 src/TUIKit/components/common/BottomPopup/index.vue delete mode 100644 src/TUIKit/components/common/BottomPopup/style/h5.scss delete mode 100644 src/TUIKit/components/common/BottomPopup/style/index.scss delete mode 100644 src/TUIKit/components/common/BottomPopup/style/modal.scss delete mode 100644 src/TUIKit/components/common/DatePicker/date-picker-panel.vue delete mode 100644 src/TUIKit/components/common/DatePicker/date-picker.ts delete mode 100644 src/TUIKit/components/common/DatePicker/date-table.vue delete mode 100644 src/TUIKit/components/common/DatePicker/index.ts delete mode 100644 src/TUIKit/components/common/DatePicker/index.vue delete mode 100644 src/TUIKit/components/common/Dialog/index.ts delete mode 100644 src/TUIKit/components/common/Dialog/index.vue delete mode 100644 src/TUIKit/components/common/Dialog/style/color.scss delete mode 100644 src/TUIKit/components/common/Dialog/style/dialog.scss delete mode 100644 src/TUIKit/components/common/Dialog/style/h5.scss delete mode 100644 src/TUIKit/components/common/Dialog/style/web.scss delete mode 100644 src/TUIKit/components/common/Drag/index.ts delete mode 100644 src/TUIKit/components/common/Drag/index.vue delete mode 100644 src/TUIKit/components/common/Drawer/index.vue delete mode 100644 src/TUIKit/components/common/FetchMore/index.vue delete mode 100644 src/TUIKit/components/common/Icon.vue delete mode 100644 src/TUIKit/components/common/ImagePreviewer/image-item.vue delete mode 100644 src/TUIKit/components/common/ImagePreviewer/index.ts delete mode 100644 src/TUIKit/components/common/ImagePreviewer/index.vue delete mode 100644 src/TUIKit/components/common/Loading/index.ts delete mode 100644 src/TUIKit/components/common/Loading/index.vue delete mode 100644 src/TUIKit/components/common/MaskLayer/index.vue delete mode 100644 src/TUIKit/components/common/Overlay/index.vue delete mode 100644 src/TUIKit/components/common/Popconfirm/index.vue delete mode 100644 src/TUIKit/components/common/ProgressMessage/index.vue delete mode 100644 src/TUIKit/components/common/RadioSelect/index.vue delete mode 100644 src/TUIKit/components/common/SelectUser/index.ts delete mode 100644 src/TUIKit/components/common/SelectUser/index.vue delete mode 100644 src/TUIKit/components/common/Slider/index.vue delete mode 100644 src/TUIKit/components/common/SwitchBar/index.ts delete mode 100644 src/TUIKit/components/common/SwitchBar/index.vue delete mode 100644 src/TUIKit/components/common/Toast/index.ts delete mode 100644 src/TUIKit/components/common/Toast/index.vue delete mode 100644 src/TUIKit/components/common/Toast/type.ts delete mode 100644 src/TUIKit/components/common/Transfer/index.ts delete mode 100644 src/TUIKit/components/common/Transfer/index.vue delete mode 100644 src/TUIKit/components/common/Transfer/style/color.scss delete mode 100644 src/TUIKit/components/common/Transfer/style/h5.scss delete mode 100644 src/TUIKit/components/common/Transfer/style/transfer.scss delete mode 100644 src/TUIKit/components/common/Transfer/style/web.scss delete mode 100644 src/TUIKit/components/index.ts delete mode 100644 src/TUIKit/constant.ts delete mode 100644 src/TUIKit/debug/GenerateTestUserSig.js delete mode 100644 src/TUIKit/debug/index.d.ts delete mode 100644 src/TUIKit/debug/index.js delete mode 100644 src/TUIKit/debug/lib-generate-test-usersig-es.min.js delete mode 100644 src/TUIKit/index.ts delete mode 100644 src/TUIKit/index.vue delete mode 100644 src/TUIKit/interface.ts delete mode 100644 src/TUIKit/locales/en/TUIChat.ts delete mode 100644 src/TUIKit/locales/en/TUIContact.ts delete mode 100644 src/TUIKit/locales/en/TUIConversation.ts delete mode 100644 src/TUIKit/locales/en/TUIGroup.ts delete mode 100644 src/TUIKit/locales/en/TUISearch.ts delete mode 100644 src/TUIKit/locales/en/component.ts delete mode 100644 src/TUIKit/locales/en/emoji.ts delete mode 100644 src/TUIKit/locales/en/evaluate.ts delete mode 100644 src/TUIKit/locales/en/index.ts delete mode 100644 src/TUIKit/locales/en/message.ts delete mode 100644 src/TUIKit/locales/en/time.ts delete mode 100644 src/TUIKit/locales/en/words.ts delete mode 100644 src/TUIKit/locales/index.ts delete mode 100644 src/TUIKit/locales/zh_cn/TUIChat.ts delete mode 100644 src/TUIKit/locales/zh_cn/TUIContact.ts delete mode 100644 src/TUIKit/locales/zh_cn/TUIConversation.ts delete mode 100644 src/TUIKit/locales/zh_cn/TUIGroup.ts delete mode 100644 src/TUIKit/locales/zh_cn/TUISearch.ts delete mode 100644 src/TUIKit/locales/zh_cn/component.ts delete mode 100644 src/TUIKit/locales/zh_cn/emoji.ts delete mode 100644 src/TUIKit/locales/zh_cn/evaluate.ts delete mode 100644 src/TUIKit/locales/zh_cn/index.ts delete mode 100644 src/TUIKit/locales/zh_cn/message.ts delete mode 100644 src/TUIKit/locales/zh_cn/time.ts delete mode 100644 src/TUIKit/locales/zh_cn/translate.ts delete mode 100644 src/TUIKit/locales/zh_cn/words.ts delete mode 100644 src/TUIKit/locales/zh_tw/TUIChat.ts delete mode 100644 src/TUIKit/locales/zh_tw/TUIContact.ts delete mode 100644 src/TUIKit/locales/zh_tw/TUIConversation.ts delete mode 100644 src/TUIKit/locales/zh_tw/TUIGroup.ts delete mode 100644 src/TUIKit/locales/zh_tw/TUISearch.ts delete mode 100644 src/TUIKit/locales/zh_tw/component.ts delete mode 100644 src/TUIKit/locales/zh_tw/emoji.ts delete mode 100644 src/TUIKit/locales/zh_tw/evaluate.ts delete mode 100644 src/TUIKit/locales/zh_tw/index.ts delete mode 100644 src/TUIKit/locales/zh_tw/message.ts delete mode 100644 src/TUIKit/locales/zh_tw/time.ts delete mode 100644 src/TUIKit/locales/zh_tw/translate.ts delete mode 100644 src/TUIKit/locales/zh_tw/words.ts delete mode 100644 src/TUIKit/plugins/extension-server/callkit.ts delete mode 100644 src/TUIKit/plugins/plugin-components/index.ts delete mode 100644 src/TUIKit/plugins/plugin-components/message-call/message-call-c2c.vue delete mode 100644 src/TUIKit/plugins/plugin-components/message-call/message-call-group.vue delete mode 100644 src/TUIKit/plugins/plugin-components/message-customer/index.ts delete mode 100644 src/TUIKit/plugins/plugin-components/message-customer/message-customer-service.vue delete mode 100644 src/TUIKit/plugins/plugin-components/message-plugin-layout.vue delete mode 100644 src/TUIKit/plugins/plugin-components/message-plugin.vue delete mode 100644 src/TUIKit/plugins/plugin-components/message-room/message-room-default.vue delete mode 100644 src/TUIKit/plugins/plugin-components/message-room/message-room.vue delete mode 100644 src/TUIKit/server.ts delete mode 100644 src/TUIKit/shims-vue.d.ts delete mode 100644 src/TUIKit/utils/documentLink.ts delete mode 100644 src/TUIKit/utils/enableSampleTaskStatus.ts delete mode 100644 src/TUIKit/utils/env.ts delete mode 100644 src/TUIKit/utils/index.ts delete mode 100644 src/TUIKit/utils/lodash.ts delete mode 100644 src/TUIKit/utils/riseInput.ts delete mode 100644 src/TUIKit/utils/type-check.ts diff --git a/.env.development b/.env.development index 4db83b6..5aa6d93 100644 --- a/.env.development +++ b/.env.development @@ -29,7 +29,7 @@ VITE_APP_RSA_PRIVATE_KEY = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAmc3C VITE_APP_CLIENT_ID = 'e5cd7e4891bf95d1d19206ce24a7b32e' # websocket 开关 默认使用sse推送 -VITE_APP_WEBSOCKET = false +VITE_APP_WEBSOCKET = true # sse 开关 VITE_APP_SSE = true diff --git a/.env.production b/.env.production index f55841d..6f7e7f7 100644 --- a/.env.production +++ b/.env.production @@ -32,7 +32,7 @@ VITE_APP_RSA_PRIVATE_KEY = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAmc3C VITE_APP_CLIENT_ID = 'e5cd7e4891bf95d1d19206ce24a7b32e' # websocket 开关 默认使用sse推送 -VITE_APP_WEBSOCKET = false +VITE_APP_WEBSOCKET = true # sse 开关 VITE_APP_SSE = true diff --git a/src/TUIKit/CHANGELOG.md b/src/TUIKit/CHANGELOG.md deleted file mode 100644 index 29031f6..0000000 --- a/src/TUIKit/CHANGELOG.md +++ /dev/null @@ -1,208 +0,0 @@ -## [2.4.0] (2025-01-16) - -### Fix -- 修复 sendMessage 时携带的默认信息,支持用户自定义配置。 - -## [2.3.8] (2025-01-10) - -### Features -- 支持文本消息 url 高亮跳转 - -## Fix -- 修复自定义大表情失效问题 -- 修复 login 时好友列表数据未重置问题 - -## [2.3.6] (2024-12-06) - -### Fix -- 修复 marked 依赖丢失 ts 类型声明 - -## [2.3.5] (2024-12-06) - -### Features -- 支持消息 markdown 展示 -- 支持消息流式输出效果 - -## Fix -- 修复 Toast 失效问题 - -## [2.3.3] (2024-10-28) - -### Features -- 支持群组禁言后发送消息错误提示国际化 - -## Fix -- 修复集成 CallKit 点击通话按钮偶现无响应问题 - -## [2.3.2] (2024-10-28) - -## Fix -- 修复群聊中群管理入口偶现的丢失问题 - -## [2.3.1] (2024-10-25) - -## Fix -- 修复 H5 安全区遮挡问题 -- 修复 H5 键盘遮挡输入框问题 -- 修复撤回消息中撤回人为空问题 -- 修复 TUIContact 修改好友备注后列表显示未更新问题 - -## [2.2.9] (2024-10-17) - -## Fix -- 修复 Callkit 融合被叫超时无应答英文词条翻译错误问题 - -## [2.2.8] (2024-09-24) - -### Features -- 支持繁体中文语言 -- 支持新增自定义语言类型 - -## Fix -- 修复 MessageInput 内容中间回车发送消息引入换行问题 - -## [2.2.7] (2024-09-13) - -### Features -- 优化 C2C 会话音视频通话信令上屏(对齐微信体验) - -## [2.2.6] (2024-09-06) - -### Features -- Work 类型群组支持普通群成员修改群名称、群公告信息 - -## [2.2.3] (2024-07-05) - -### Features -- 支持会话草稿 -- 支持富文本复制 -- 支持文本部分复制 -- 语音消息使用红点提示是否播放 - -## Fix -- 修复邀请加入群聊选人组件未过滤已有群成员问题 -- 修复 TUISearch 搜索文本消息出现 [系统消息] 前缀问题 -- 修复消息引用语音但展示为"聊天记录"的问题 -- 修复 Callkit 在 H5 环境下布局只有半屏的问题 - -## [2.2.0] (2024-06-17) - -### Features -- 支持消息多选、消息逐条转发、消息合并转发 -- 支持表情包自定义 -- 支持中英文 github readme -- 被引用消息撤回时隐藏原始消息内容并提醒已撤回 - -## [2.1.4] (2024-05-20) - -### Fix -- 修复头像组件因加载图片失败导致的循环加载问题 - -## [2.1.3] (2024-05-17) - -### Features -- 点击空白区域时收起小表情面板和工具栏 -- callkit 提供音视频通话中途加人能力 -- 更新 roomkit 引用方式 - -### Fix - -- 修复视频一定概率无法播放的问题 -- 修复消息引用的视觉左侧未对齐的问题 - -## [2.1.1] (2024-04-26) - -### Features -- 支持语音转文字 -- 文本消息转翻译兼容小表情上屏,兼容提及所有人 - -### Fix -- 优化已读回执详情列表超长昵称的显示效果 -- 解决转发消息已读回执失效的问题 -- 解决加没有群申请时额外请求用户信息的问题 - -## [2.1.0] (2024-04-12) - -### Features -- 新增消息翻译功能 - -## [2.0.9] (2024-03-29) - -### Features -- ScrollButton 支持未读新消息提示 -- 群未决申请展示优化 -- 兼容支持 H5 IOS longPress 事件 - -### Update -- 下线本地审核相关入口 - -### Fix -- 修复 nick 过长样式溢出问题 - -## [2.0.8] (2024-03-15) - -### Fix -- 修复已知问题,提升稳定性 - -## [2.0.7] (2024-03-15) - -### Fix -- TUIConversation network 断网显示优化 -- 修复消息列表滚动到顶部后"回到底部"按钮消失的问题 -- 修复一定概率下消息列表为空的问题 - -## [2.0.6] (2024-03-01) - -### Features - -- 升级 universal api 引入方式 - -## [2.0.5] (2024-02-04) - -### Features - -- 新增表情回复功能(需购买旗舰版) -- 聊天界面更新黄脸小表情 -- 添加音频播放动画 - -### Fix - -- 语音场景优化 修复了语音播放相关的体验问题 - -## [2.0.4] (2024-01-19) - -### Features - -- 支持文本消息复制 - -## [2.0.3] (2024-01-12) - -### Features - -- TUIContact 关系链支持用户在线状态。 -- TUIContact 中获取客服列表的时机调整为 Engine 设置商业化能力位之后。 - -### Fix - -- 修复已知问题,提升稳定性 - -## [2.0.2] (2024-01-05) - -### Fix - -- 修复 IOS13 消息无法发送问题 -- 修复已知问题,提升稳定性 - -## [2.0.0] (2023-12-21) - -### Features - -- 全面支持 Vue2 & Vue3,包括以下主体功能: - - TUIChat: 负责消息界面展示,包括多类型消息收发,消息引用/删除/撤回/转发、查询消息已读回执详情等功能。 - - TUIConversation: 负责会话列表的展示和编辑,包括会话置顶、会话消息免打扰、会话删除等功能. - - TUISearch: 负责消息云端搜索,包括全局搜索与会话内搜索,支持文本、图片、文件等多类型消息混合搜索,支持搜索时间范围选择与搜索结果定位,免费试用请点击 https://cloud.tencent.com/document/product/269/92648#ae4e3f5c-94db-4df3-8a49-65d23ce417b8 开通。 - - TUIGroup: 负责群聊的创建以及群资料、群成员、群组权限、群公告、群禁言的管理。 - - TUIContact: 负责联系人与群组展示,添加好友,移入黑名单,好友备注,信息展示等功能。 -- 同时,我们还提供了功能丰富的插件系统: - - TUICustomerService: 在线客服插件,支持灵活的路由排队、客服接待、智能机器人功能,配合功能丰富的管理端与数据分析能力,支持客服多终端办公,免费试用请点击 https://cloud.tencent.com/document/product/269/92648#ae4e3f5c-94db-4df3-8a49-65d23ce417b8 开通。 - - TUICallKit: 音视频通话 UI 组件,支持两人或多人进行音视频通话,覆盖游戏社交、在线客服、视频客服、在线问诊、保险咨询等场景,免费试用请点击 https://cloud.tencent.com/document/product/269/79861#step1 开通。 diff --git a/src/TUIKit/README.md b/src/TUIKit/README.md deleted file mode 100644 index febcbf9..0000000 --- a/src/TUIKit/README.md +++ /dev/null @@ -1,94 +0,0 @@ -
- Globally interconnected In-App Chat, user profile and relationship chains and online/offline push. -
-- English / - 简体中文 -
- - - - -## About chat-uikit-vue - -[chat-uikit-vue](https://www.npmjs.com/package/@tencentcloud/chat-uikit-vue) is a Vue UI component library based on Tencent Cloud Chat SDK. It provides universally used UI components that include Conversation, Chat, and Group components. Leveraging these meticulously crafted UI components, you can quickly construct an elegant, reliable, and scalable Chat application. - -> In respect for the copyright of the emoji design, the Chat Demo/TUIKit project does not include the cutouts of large emoji elements. Please replace them with your own designed or copyrighted emoji packs before the official launch for commercial use. The default small yellow face emoji pack is copyrighted by Tencent Cloud and can be authorized for a fee. If you wish to obtain authorization, please [submit a ticket](https://console.tencentcloud.com/workorder/category?level1_id=29&level2_id=40&source=14&data_title=Chat&step=1) to contact us. - - -## Core Capabilities - -- UIKit: Build a fully-featured chat app in just ten minutes using UIKit components -- Various Message Types: Support multiple message types, such as text, images, audio, and video messages -- Notifications: Timely notify users of app messages and drive higher conversion rates -- Group Management: Create groups, manage group members, and customize profiles -- Conversation Management: View information about unread messages, recent, pinned, or deleted chats - -## Demo - -👉🏻 [Free Demo](https://web.sdk.qcloud.com/im/demo/intl/index.html?scene=social) - -## Send Your First Message - -### Vue3 -- [Integration TUIKit](https://trtc.io/document/58644?platform=web&product=chat) -- [Quick Run Demo](https://github.com/TencentCloud/chat-uikit-vue/blob/main/Vue3/Demo/README.md) - -### Vue2 -- [Integration TUIKit](https://trtc.io/document/58644?platform=web&product=chat) -- [Quick Run Demo](https://github.com/TencentCloud/chat-uikit-vue/blob/main/Vue2/Demo/README.md) - - -## TUILogin - -``` javascript -import { TUILogin } from '@tencentcloud/tui-core'; -``` -The options parameter is of the Object type. It contains the following attribute values: -| Name | Type | Description | -| --- | --- | --- | -| SDKAppID | number | Required, SDKAppID of the chat app | -| userID | string | Required, user ID| -| userSig |string | Required, the password with which the user logs in to the Chat console. It is essentially the ciphertext generated by encrypting information such as the UserID.For the detailed generation method, see [Generating UserSig](https://trtc.io/document/34385) | -| TIMPush | any | Optional, TIMPush plugin instance when uniapp build app packages | -| pushConfig | object | Optional, TIMPush plugin's config | -| useUploadPlugin | boolean | Optional, whether to use the upload plugin, the default is false | -| proxyServer | string | Optional, WebSocket server proxy address | -| fileUploadProxy | string | Optional, image, video, file upload proxy address | -| fileDownloadProxy | string | Optional, image, video, file download proxy address| -| framework | string \| undefined | Required, UI framework type, optional values: vue2、vue3、undefined | - -``` javascript -// Login -TUILogin.login(options); -``` - -``` javascript -// Logout -TUILogin.logout(); -``` - -``` javascript -// Set the SDK log level. -// 0: Common level. You are advised to use this level during access as it covers more logs. -// 1: Release level. You are advised to use this level for key information in a production environment. -TUILogin.setLogLevel(0); -``` - -``` javascript -// Get Chat SDK instance -const { chat } = TUILogin.getContext(); -``` - -## Documentation -- [Home page](https://trtc.io/document/50061?platform=web&product=chat) -- [@tencentcloud/chat-uikit-vue npm](https://www.npmjs.com/package/@tencentcloud/chat-uikit-vue) -- [Chat SDK](https://trtc.io/document/34309?platform=web&product=chat) - -## Contact Us -Join a Tencent Cloud Chat developer group for Reliable technical support & Product details & Constant exchange of ideas. -- Telegram group (EN): [join](https://t.me/+1doS9AUBmndhNGNl) -- WhatsApp group (EN): [join](https://chat.whatsapp.com/Gfbxk7rQBqc8Rz4pzzP27A) -- Telegram group (ZH): [join](https://t.me/tencent_imsdk) -- WhatsApp group (ZH): [join](https://chat.whatsapp.com/IVa11ZkVmKTEwSWsAzSyik) diff --git a/src/TUIKit/adapter-vue.ts b/src/TUIKit/adapter-vue.ts deleted file mode 100644 index 1b5ecb0..0000000 --- a/src/TUIKit/adapter-vue.ts +++ /dev/null @@ -1,42 +0,0 @@ -import * as Vue from 'vue'; -import { TUIGlobal } from '@tencentcloud/universal-api'; - -let vueVersion: number; -let framework = 'vue2'; -let createVNode = (arg1: any, arg2: any): { component: any; props: any; data: any } => { - return {} as { component: any; props: any; data: any }; -}; -let render = (arg1: any, arg2: any) => { - return; -}; - -try { - if ((Vue as any)?.default?.version && (Vue as any)?.default?.version?.startsWith('2.7.')) { - // >= Vue 2.7.0 - vueVersion = 2.7; - TUIGlobal.Vue = (Vue as any)?.getCurrentInstance()?.appContext?.app; - } else if ((Vue as any)?.default?.version && (Vue as any)?.default?.version?.startsWith('2.')) { - // < Vue 2.7.0 - vueVersion = 2; - TUIGlobal.Vue = (Vue as any).default; - } else { - // >= Vue 3.0.0 - vueVersion = 3; - framework = 'vue3'; - createVNode = (Vue as any)?.createVNode; - render = (Vue as any)?.render; - TUIGlobal.Vue = (Vue as any)?.getCurrentInstance()?.appContext?.app; - // exportedAPIOrigin = Vue; - } -} catch (error: any) { - // >= Vue 3.0.0 - vueVersion = 3; - framework = 'vue3'; - createVNode = (Vue as any)?.createVNode; - render = (Vue as any)?.render; - TUIGlobal.Vue = (Vue as any)?.getCurrentInstance()?.appContext?.app; -} -console.warn(`[adapter-vue]: vue version is ${vueVersion}`); -export { vueVersion, framework, render, createVNode }; - -export * from 'vue'; diff --git a/src/TUIKit/assets/icon/add-circle.svg b/src/TUIKit/assets/icon/add-circle.svg deleted file mode 100644 index aa90800..0000000 --- a/src/TUIKit/assets/icon/add-circle.svg +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/src/TUIKit/assets/icon/add.svg b/src/TUIKit/assets/icon/add.svg deleted file mode 100644 index f154f34..0000000 --- a/src/TUIKit/assets/icon/add.svg +++ /dev/null @@ -1,12 +0,0 @@ - - \ No newline at end of file diff --git a/src/TUIKit/assets/icon/at.svg b/src/TUIKit/assets/icon/at.svg deleted file mode 100644 index e26825a..0000000 --- a/src/TUIKit/assets/icon/at.svg +++ /dev/null @@ -1,12 +0,0 @@ - - \ No newline at end of file diff --git a/src/TUIKit/assets/icon/audio.svg b/src/TUIKit/assets/icon/audio.svg deleted file mode 100644 index deacede..0000000 --- a/src/TUIKit/assets/icon/audio.svg +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/src/TUIKit/assets/icon/back.svg b/src/TUIKit/assets/icon/back.svg deleted file mode 100644 index 0af55aa..0000000 --- a/src/TUIKit/assets/icon/back.svg +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/src/TUIKit/assets/icon/call-video.svg b/src/TUIKit/assets/icon/call-video.svg deleted file mode 100644 index dc76641..0000000 --- a/src/TUIKit/assets/icon/call-video.svg +++ /dev/null @@ -1,6 +0,0 @@ - - \ No newline at end of file diff --git a/src/TUIKit/assets/icon/call-voice.svg b/src/TUIKit/assets/icon/call-voice.svg deleted file mode 100644 index 4793fcf..0000000 --- a/src/TUIKit/assets/icon/call-voice.svg +++ /dev/null @@ -1,6 +0,0 @@ - - \ No newline at end of file diff --git a/src/TUIKit/assets/icon/call.png b/src/TUIKit/assets/icon/call.png deleted file mode 100644 index d8d86fe736461a69a09f18ee2749a54ee4fd10f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4120 zcmV+z5a;iSP)yhFV((<02xBmjP^g6GJ@HlDo zY&NnTFUN4~NM4T9EXhnMS5o(rV!F+8N}HE5zbV%f=Kxlx;LB?DYrFSJTaZfjwPN+( zsp3@1vvp5nP`|Oy45)0T%2`_LnGyC1%mM2JCvBy{4_zX@QX7u)w##6fRw=-?nP=J4 zTZ-pW9DE(OR`u{ITKZC5JtbM+t66q#!e2e)4bXLK7Rhev>+wuRE<0+9W^V9E`f5wO z6Le*^9l&|rN+)SBg`ussB%-pUg6;;;`V|rO&p(dp)-IwXY>=!xd-tS3`w!bp-JOmz zx-viqWk%bBk@(z}> N3{*hYO&sk$JcQxGt7=gXc zXrsN`udGB O=4;!areP4#WJ#M`qpYtVO$ zv5#Z_7krGtedIdZPaC7)cdhDG2j!JF3Cnz#>$clQn90?@eWW@hSMw)#6PrAV=Ah#}k}a)gm|cX6BwDAJan;v_i~=EKadPP0Oh6vtg&c zPnLCfK?YP^6I=@%0#oZ810ABbXoQnCBBh$@a-Ea0Q<8`nacC809u}^N^@PiSLwG}l z2k!~LqFZ2dXcTEgUbyB3no4kklS7g3nE{6c9_0f?2=AoO^9`fm=ExKKaH$*~!%0eQ zMGj3)UfW4_djp+6@F?MfNQ$3S`eG1e15r`1S|~8s79BO67Ui54`a(1!4=Z{E7p#8l zk1^Bd*A=6r* VS;aaoC7js_MIXP3AxVrvBrXoeo5F+aNRko|#$4gC zw<2-`)=9mHB$NGkZ_9)UJi*mTokY!eIYe^Kexi<6Xq=87Re7@Qa@ dX|ebu znG~I}q{p&JQ7kFGVG+&~i434*hX>SvDXE9n$tKq+;u&I}%Tl(fsF$z>X#6n{a&b0& zVQTg%w%TJ>I>(@lp(K-IURH4kgE-aJBqya3BiNCX2p`P7>9W0_UhF_ED9)x*%kn%o zHD@Wq#v|i0H6t>HTE;Pcv@CO=oZ8HglhGEY`jgLui^`cRrrIOZE6YNJ8t&@PU~kCz zRZ%`Xoa;9@Ip00q7N3jc#J&ianW2^Wl{wq}m>RLkCXUbOUz=S5O#6dK_ o|OWbrXKO{WU_2Y)1j;IoGu1@;j9@n61m&!^+U;ioVneZ>!2yV5OZN9q$&G>nI%oQwh#W zQJzdy#eP-6P~~_e9V|}Js+-2`*DL-lTH0;_P)aGPxeDXKTGK33-NjO!?p`%DOeaQT z_J)R5F ?A_G;zi08up59}!~ZzvwERf~uWjl1~jc!)gfGP@a2yiPosTC1h7x zZHY|fn}fRA)Vh>!C`2isbvpfhb9Jy!UCu;3n2KSq+lP8J9cd-mZA9ln^ZdOL)hSvE zx0^nnz#XMbIb AuJ&m)jSfHjOy!8`SYY7}JfRLQ9rXXNqmsAP4Wp1{@lKKWE(}l5U z z@f`b~8lgccie2KadvBT4Cgl=*lEx!Xjk}rS0^-?mX9QDKYLQ z@nL`J+>H!04NL1r-F2h1TF=Akn~Zyyt?Og7D%yK`Xjv=TNxOP!dudp@Z)JLh1AFTb zJ-uZ;liR(r;~nR~-g)Ql(R`K$jAY*&tmpB*(8hLO^-7yCy!O3hzX{88h+Owa!Ztx# z#_|0A&pk}jD)8E0{a@psF5WRcG9Eag9gxQ2`*qeQqa%88H_$dSV1@<94(i2SY?l@s z#CK`Oy%$}+8(cmK_fi=`2m;iMlff?SYsP}O+e0&Cay#ptED2d>D%}0UtsF$cKsNvp z(G$$}u*XRAuc!{89nOat&zTEGc;tr7G6tR!)ok@hQc8~QWeoq898&CM5-Cu;*&gNf z9w@iw*6MB6aS4ABH0JzZ LjH@Q|M?v$)1@ou9^XEJBpYP|t&@Eg`Eqpau_#U+IvtZ#@@524g0_J`J zK)(ojvWRWEi2G&{uW*r|Z;|NT;-lY-#Pmy~PnO6{mnh#XfeV*t`j+V4EiwFFVtTR& z1pXr**#BSoi2j!c|3|9Vzk~YU%)r0$_ut6hz+d?TVLt#%|5ZM6&cQG|7Q8_O5dl8{ zhy!*5fbb!UAA-TqkBp&znFtWh6veq814;8^0+Jf#Fu%djYYYN_8Jq_RLT@*A!*Mk_ z2jf1va_&Zp;BtLTffIz5fu!s@03aNI(#LcSg((Y=l2(UJx|UrnTdJhq$xf!)E3Tuz zujO3@A-EArM|mzH4oB|z6`Mx|Uc3f_`NIN(HVNL}H;;gRzuF *fYQ7uXce#!-5y#{R)u8CtSrj{)L@X~P}}VKr1n9e z(=_rdr7bB-8rXwNXj|DA{JpkmlGNY6IlnN^8NE0i18B+Zqq%64SysNVAsCFi=&*ey zxd|FXIKPS=jl0{Z{nW0)Qhh2i-q7 hQGk?sk$EPt0G5(=?Cq{@YUn5%-(s-3Jfu>+lEfkJ ^UvsK)p_ zd+TQ1fhH}JKlab{CMDx%kqa*L#9wEKi2L+Fc#J&P!^-)#tt*@_=!6Xk{Z!h<^t0El z-|{_vCv2b{o(P|^ey!WEsb2j%6U5un*SPk|J~DJi*xbYyqsMXZ8$A(d+$OyeT%O>t ztMktE=M0opP4`25IbF+vra+1JM~V-s{@UTzW}XZAd^jDSgyZQYwD42<1-GgnS9YFq z%Dt1&v>j192_;b$vy3G8T3vrh$f;o&i3b2P0o?@^f1Jz8yb8=vsG1CT@sx#+<#_gi z_w9|4Lh|4qKTdLJXqEk?_Vo@Qr!){x^>x1~VTC#5?(;y1{^@meXYk$k$KSi}752^l z;A!`KBH0D(((YOi)JOp7N`eW_XZ|R10I)Ln5SVaN0D+qf(IecDB31w>?PzE;)Xn`t zga!VeGQcbaQy5H2^`6omKr!xSb-Zo(@bzR4&c`pd7|D-&RzWcxOa$%%+k{3qu70Bf zkY+m-7c1+x3T+RRn+1q=sDU|t&j$)LVnff$tYVIZuu?P<6uoGG5;5b$8dsjKqx(zk z;1}aTSB{o-tX7kF^1P?1eCi+90UJLjhQyMs17IHqoU&d#r#VU@2rp&DADNgfbWe-M zhx9c?PYv6+n}e8aI1D-A5=o>2c~bf;>V`RT*QnGwaw5nH8$f9s&L43=1?2Ttk$bA@ z*>}Io7w(v&{MI>hlqdoAE^^ieV~hCeR3&(4rD~^^&i~qrio0=&%As8)W2bipB%;9Q z7PZ2=DV5E*fS+xMh|fO%sKUEVu`n2PZG84u{*00MyvC w&f zLe{7pq|H0L@v3sjE$tGE)$WWTHzdBOHTELlO(e*4`NVRfxpqBb(B@V9TreAuK(N*z zq^m1hk2L7b<#u!u=7H(1ee6G_%)y1BY>nXpgP579Ccs6CjP}w6rZXy&Di%+4@%! zlnJL!$RN`hUAeWlgK=YZ=(JkPF|Bn|F7IYjW@zh2g3ZRCx_S=vb-K9uwbf2 E>C>%s>sSYme^;UEr9X7>SzC{mdo%6_m&r>PkA=JR z4 jzj`Uui=rT;W@juSmr5og$GdZ^Q)N(&J0btbIWszj+^^4cO*7M7 z@}1!r5{Mb%Cg=FUHDJ>)g~|A2^Im8j+i2Na@MTj0RQxVt5{*C?dM+Q5UgmOG6=kIU zks>8^KAnm9j+d;Bb0CkhnRAhCDK}hRQ~D4wU%HI0)P!3rjQOuXl|0IcAD+fz8);Qm z#pa%@9_z$oFFU8TqLe_+a9#hm3`$v5?(}IkZ}QezhQ5}Dy(6`>kK5omX$?)CBelI# zdOLfhSgcNap}~rpTl+j&OC5RP@_KYJeXFg54}B^g8@NMZ*jj^|_$q2OK=u4phwNl6 z%5R32xxc?d@w)zX3M78@H|6927A7@}te5p`7R4YI=9K{b4(r1Y%OjGc?mRCGSSc2k z$3)Yv3|*yI>64d-F?aMHoQWnM*g}>YpY^9?kWIaRtnZs-_=+Ug`E*B!BW6x;?V^CO zVkhKU{CT@;jq#ny>T{}J@>TB)D^*4}?R^5|6L`2BR0>ZMo!VB?*}lbqd(R%a-= YX zUZqv%{Z(uM-252-Mt O504dQ87h7Lt9a5_iXl z1vje*`3}x2Rtw6e+|LezjRpsoQC-@zUVRe7H((_+p!`l{%JwzHGcDi(o9E*Taoi1# zT~SJ`pDt{xp~8p|ZDxd!EaFNw%=J3dt~ty*EiCK+;RW(_Dn+;qBdo0vf}n5^m!kPdQ?zK;)*oh#h2#3ptt5|FQCW~+$4tKf=3$_ZQ$ Z2iDo;z?4KOZaoM@JtFb}7)-Lksdp@B2X@3I;|XXN zKM>NwAWEa(AfmJ2K~cjo`XtdVWs#18QEXZQ?XO?88;iQ@e)PE-9 zEMxe-im?!!P?B-6d l@yqjb{z@z-h$pwt%VB5s7 zxBXN+LZ^KSOL4vqj|fY*@kq1VPsLWGCc5>-xk>rrLrulS^0|iBtcL5UVboDt>RoEu zU^KOWI0w@$gTho?-cY&?BGx}AW4)Z(SRA^&oc47+Q)!G_?j*XPG|=rWEc)+cV^~%@ zMXK(8rt=21zEVmhC?mlt-AN`>#-7WTi(QbKnkARpP@KU^DYaB4N0c*X$ue7)gC^e4 z&yOY7r7S%an3KSgdAyXRph%M}&f<{65Iq%_aT51+KlfrO+v_?lc_||yD*M_!PdS#R z!atX~EW0v>X0VGrc8VcOoJ*aW8g(1{3z$b*Lo=}%@?$B#vX;j4gtv8*-VNi=qmoNA zuat4aoX_`@W`w%nNF z8+S@lVw0AaPg0nd#;_V|{;jr{&4b~Cqw)PF6-hwIN9N+57}~?w%>A%ZFGO+8Uh#*t z!tuRQ&*j2)%QE&8dOQiw9?Sfpw1VNKvemb=*b=!Lmg0}GvN| p*CJ|dt_P{<;vI6YKJ6hKF` zTOvYQRXYR_nsy*N1+#4NRzc{>!{O32G)gou+yI)uJlnaeDx?+w<9@0l{gqCRfTwhn zR#jV2OPTh&VR=ef8HrwvEVYo05v@dvpnn`q# <;6zz+nOrP<=V!p>S44(4p+_aa8-X8>hGP}+#P0z zRW=(|H@T0@+T*snsTl>Ln5ydbBcK+ns7+v<5euN7;Mpvai}RHJqfvt%gzp5|FmFVY z+O086V|WE^{G{0^?cHb~z!xdl*nkj!1ZjFEBN%_s*qe&nAblR_4%>+{yclZwU{&W+ z%0XiM`ckIuvz812jC^3Z;fRv47s|~rL+Q?f_VQ?06Tnn^c%p6HVNl7UuX|`etQNCU zz=M=#@Fe4H`BTaaig0*K 5?0qA9!0wf^{#tf_7ohgA)iQuk`GtJ8D%FO&OK83b>U`HNp7gkE! z%CD{pV{fy&^veA1H;9h!VO_|(ZX;3vcRZsFVNd%Vq&kl8HlU|yq?>xUxi_$_WrnqZ zws)Km(DqTVEwHy2R=+CS{C6HJ@s3@ZtgjN&Q}e2&=PjW?Ss+7VcVC8NUwv8Mt}}0L zxA>TG|LsA~DWd5#|0(uh*VC5TOG3#b3F*(q1F3Q~;0S |59_4gf2>yhWECX4Kg zNZn9}SLdBYNB{^0WH7v!hBThAL7cY6-^X_k%1IBkn@um-*x8IPFVk z gDs7P6Q_;i% zSNx`y$XS8(y4NYalWlP<3)!Cg;hk7aSOE`t1EcG98oJZyte|dk!XT-ZGAoG10@P zzfuD5(`InsOr&M3O$pP3bhE>Mchh8cJZN^ZV0OB9c6MiW{(g3mZf;p>Zq;P&ZP46C z!Q58w+|JJ2`}?_Fy7_&n`H%lg`3nO77vTN>N|*ixy#Gz;`FFMdnHl&O@ctXXYy2<3 z(*OXmiI@h%0Fatp#DhoD7C>A&w|@YS5$n#jCgpFLo<<3P@E^d-0+#`>$=yODX_h~I z0Ahza?EeKk1J*cPrjkJrPhNItG;o9SV~YH83@b?LyI)}lE|JE60MBqA@BmT^@gyAN zJj^oj$z{saGvhMJQVVcA%GE+}vA-q|iapAAt1>*yYh~83EATtIg#hsvr;M`Tr(DM+ za@QyJjs)b=$7KnWTc1h`*`%e*GxUrO0C>^?xfNMHr?s&lx)LrMLe5_&wKZ{IXjD0i zk8}y9b{vWV)RT_a)^+YHOV@`{r<^r*KAk=@BUB|gZ?26JuQSCTj5}}1qG{qbdm!z6 zQB9y~oL#%_qrz3cH9iLDc%Ri%Q?u8tTi10CN4j*|*KdFBMSLcBZA7@EblLAt5XfhE zeGTI;xWwF1bYXFvSGMBDAEJhd^K)HC%$bR=#!L|^0{Zyau~!qCcHPZ-a|joB22L_} zW-~_zcSRpm-?n*1Xj{yER*P%bWlkzN2R^U-Wanm)6;9NujZa+Py6{4B?0Q+ldB;mj zP|j5tz@nbGx}wkbyXEauws+sw_`{!MELzLGY1x!MDezf0Z+WBL_S!tLVdn`?lPBh# z{6u1hs@09_H$cdZPTQ`=ow47`Tb4&Z_C>jNn-4Uo09`MmwLgD56k@LHS}vHW`0>dn z`q2s~J-xr{ga@bL*K$P5yw*`8S$*d@`;w{TYVg6l=3o!Zwd<1Og8n|?K^2%eQj%r0 z7(@Z$+zrJI-jckcrVfz;a5i)TP%M37CEp#C6Q3v&x-2jOVTh0b&;xRQ=~J`!Z!j+i z=svsweZG;e%3kj&mN)q!4g@oWO5QSNOtTLr5-++(#l?Xly?SuXK8AT~lj*&B&Wdg1 z#tc5s0}yBo)j veO%-}5eO|umaVvyBO_V(v}PCScW z*RnqWLUU~M&Wf>Z356c#Ee?*NjqzM-jDCr0#A0lV-p18DU$WAOdG(bKb^dniDUvE^ z9GMI0BYfVtHktAMuyo #Jci?9? @U>?Pc+=%#^1p 1NKX|NKzx1v%2BPYk;`Gw|Rq9-A z3AIDK-*%c+R^7Hbn|RUa^Fj-Mshb>-Ycr+SkqQ{XfJ2(X9 z>XF-D^w@f`K#l%^=(XovK7G2>m(}uw=C#r)ec$Hr1Gw7W-Ah!qj(xk-4R)@*CfMM* zb6s_LTtGHablOMclPAHNuwlQKJzOTI7a|Zu4hTFQri+TzwWhGbXMuIHi6|qe# z$3_Z4&GGthE1gomaaluwQlkXxvSU9D_~$Dn3llCZLUB&vr)!AhSyCIE+$q-E=Ar~5 z+wTm{Q@RRD-dF{;Wsps6rHgBgq&7=|4-r6pksFN07OaK?mCI`Uojl@0K{}uB>9|+J zRP%AZ{djKM!qZfbq8%cK_$G06OI|Ovn4KCpY>Vx>o;;b6hYTbdx0sQI*K|~Hl8q;! z=J)xl^3#VLPvi60qQ}Xq)ZY;+2*$06#Cj%JzD(cHg92KsVhdrJ$0j|a%kczljY=Ty z7mp<&6~XDX$@I1sFY`7bN+NlB4==(hB-BHSCv%%an5IEilAVZnK^)?(gI z9Qs&!m!PAo ASCrvC{JmuO|cL+?n%KF$4x zU($mwIqM}OwzIAS Q6wMU<_8_$`jK}k>c00?WacT)w9S|Teb*0hmcKsV3)+pQ(m6o& z`w2boKTTfPIHFDY#ru+OOW?)YS?=#2)XO4qeND80U&srJ8_ka)7{JW#Xt7_*$u z_asl@@wcjm_fz=`Qsqw@FLw^!+|*x^elNv@_@5Lz-@IK|`J7$!hIfwc8%@&FA7qRe zDNV-rhaX7S))@Zq%=PQy_CBLu2^koCxg=uo!}3RqAhug@m1c<6b?{!A!2@zyUs29s z4$ atg?Ke>qMHVeFYKs^S0Yw2_Jf~kjDC`X&&`tqQ2Z-`9 z)%$f$*Pnbcikw&)(Lp4k#qh`{`=*%EwuraO(I@cm2-0ZdtLP$ok(eB)StnIy4D_ZN z?&M{jycZKADjdOSpCS-f2oEOogmpeFCGb#G1NN-@wFQ~?-juZoDqq52Km6mm1>?NJdSw>aIQgA+jWx2b)1(>vRVgs ziC9Xihe|JLJc1=Ai8&=*4EiG`xr8KD!SAoqB^U0c?BT|)>?MBz(@;^v@^hF8*G$S% zlM2(Kudkxs9V4E3vk~B9Y$}J+vW8PW%cQzpho|qQ$_}Sa52cIjr+a87*6i!tYNov{ zOUndi2$!WF1Ct6pUe<=CyOm`ek))UA(BLR>i5N2I+_K*qP@CVf1E%P##a-*e(jpZZ z?fu!+a;a5sldqSu>{&7*zp8za$+knsl{9B&YGsX-W}9gxl#pb5bTJ_CrCVguopTvt zH`(-VsiXXJo}&4*lxUMT*+Oe+bEnwyYr!;*T*Z#Gg aXG1RFTbINZt)~w zLbKRpzpzoDs1Tl)7gji=PnU=#@Qa#OBiC&(tk?up+`1G?JW^6^nZK!&uW~DZnF13y z70&}p7C@yXBzevh^rXK6bMWCf0ko%6d<@W}2XWl2x9K)w{8YcF=%!ziPg7rWu~~Ly zOl|tCrk1{{rMahu&4|+p2k>whsXX}w6U?KLqk+{!XkM+rl?dpVwsc;0Q?ebvdmZVx z2n5_KsD~Zl=dtwSPVA=0c>OqT+dO)g2|-;aDpn)jk9$SCLh =;Mcm?n1SUV;8tEmI0`HquOWl3PVr@NF`r{Zc~YQDo(b z#C6lEJMrQWBemU;cwCIdze*}k9g~ej-JR$oPPs@bbh85#f4HNH(@=Uq&c8MGLwl&l zc7V}55;~!}JIiVnG5~fcM2WesF}-fYy{Z!qz%4 )9tYExEOA9X*$Dq-Pfk-*ac z>>3H~7%`Z4OR|1^!rly^UoLwsS34n4b*jzsuuO_ni&+xwv2eo(gfj`C8}wJIXoit@ zTTSv>MbX1ek0hJfmuvi$n!(0gZCeZ*dCjKQ^{ZD643cPdL?d$#3bNfqunld@!=TA~ z%I+-dc(>ti{W)1ATX?q{o`7n^?j(p&aGvd!yq0EVj}}?fQ>J(ZslZmp7BrN#MK!)6 zQm{m`r%{tYT*kOf*t+=(ywb?HzO$v(JYGN&njj$2uBY8%$J*}D!>2|oVYc0#A|Xc# z>xla%ui)GPY6&-56$nsi@zm)Enc=jJm*kY}O!R1rZLN$^;d7Fd)7b7L7;bww+MY(p z!7nN28PN3;jA#_%Er^E&!PI`ybQ@H+IOud&p*WrqYQ%JR6FZ=*th<^B3k2CZJ@UIo zBLH})4tW*T1i~IUc(?1f?qL;HqhtNvz+Tq0h-%y3iTtQ8VN@wBYJPJJuqxU4u+wZ) zvYm(1!l$eaqGPou*&@u@!`N0wmLFnT)jwq2=at14jpE16XpKH(Je?N(7U=TKs&OQ? z?u>naS5S6&%T1M(6|21dld|W7ogNbp$T7_B>nZaiRTj`LlXw}Rs3(AkzX{tJ0Fq_G zm3{iaW9Ttjijs5))iKPyGt7HG%uhE0ml_c=84(E@5i1yx=pB*T8F_j?B270cD>W)_ zGO7?Xs#q|p+&ikeGpcq!szEoVB{imFGNu 7F@)H`OfGiG)_W %ZZxfdOe51Qss%KfLwm|K%+vz=OZ_X<<0neuF?fNJ=P(@VvTI zmhhgVB<#O ;m0kD#ND7h*N zd?YF=bL@ z`cz_c|fmx`nsF^x|e}FM%(|#4q74RU3_ATfQ z64uzd*4?uPQlCdPw&H9AQuN>9O1TbT6mS{`@zjl952?@>d>Q!)Pawy-l64ViAylE$ zX`=F-b?KqG!)};>@X< #`>k{*XzGOt$KK_wqxD}RoD8wC*g7P{t)qkOJtXP$@J&GIVRChE>Mv7HpTtf zqtxAWdo#%UER~ARqmuPwzfTXIGyFOsWKffc4ln=w>lj7Y8oJrA-fwZ(%=oqIqTRD7 zP*(khSL(b1i@Wy=@(*v|*+jTn?_rPVrNrmy2Ru(M`(e*CzO1ifr1q;AFD>F=R-J>l zr8J|1xAaCagAursik{b9`rJ}!`c-^dA O%05GS0dN*8 28Uh-Z3&9*xPL|DTe;)jvMPC6gs>-$ILab*)t<5R6t_dDBh2`+4t zmo^hSV+5alRt0!Rs6Ke9qtHN|W*1tQz@P*fo!~*+aBL@BDP}0nIHuYPe@s|Y7=6)T z_&T_p`VfJaixy-_0911sBWN~-a2L4&g^-6Jiz#WkfLVJ0_Z%x9J3tRN9iAOwz?ob- zllE{hXEq}N_UZYIgVj+Y)j_3jWUc%gpl5#hEo3+jUu{KI+e8%h$)V}C$rdRn^iDM! z@b$<1BA%AT0;Z0`aXz vRQvPQD@f=Qh_b3YCXlILk$XI~M_GFZsn%Ehi&5>tE?! zRzgzUiyOBzS3_)xcfpAwg4UbF2?^4?)R$9_1IHkpE4iN#DaBH1FK~OA@z--%nm`*0 zPQCc8b+VO0l&OOWU={K&iPYO7S1VYKiuRq5+7DY+9hJP1k@%-F&3V-2`=>~g- 7vAFf|AR*JOb7z~c-Q2MRl<<&? z6H7KZgC1THxY=_GbH@CfaROLjhOMg2OA0`jogS}|?OW4l&e?MT)5R6PRU91iw#FbL z#^tV<3zL#=?$v1@KJU3q``0sB8ING?y>C=rSx0W}l8)E83-ek9aTy&l9JS3t8$7YB z4NYEVBaQobEraq=^G?3}BX20&2I47?MdEwIYkBL& d zkPgEfAxBj2IFvo=arGrk(}apZ8w%ilb=AsEchEjap-0;wpkudHdw*)c!>hKPe1O<7 zDfOOo({z87%Dv-wm@}np$lpLiWQ*Pb>#8@vwft0Tm7Q|AWz5Jk2Z$)SCZIDm?9-S` z^-R0AI!ZmJSDw1Vb(}&o)SO;w8HJbU>9 yJKa(Qt=nt)}w*&P;aSikd}UR@Yh`>9Yl_3SPBT_a- r*u6yqHIPz_rM{8dqy3XK|c3}te zLn}+zF$^`j?rqgEBn*0`%|pjE(w;ud7))a08Mm*X`J>`A@v5Nrm(H)xV(OUp5C48; z?6BR4=ys@^rDp^pcex+q_mi=G&RMZJ3PpC!*&=S9odkX2x8zy$W%*kAsp42+0Dn2% zEWJ|j4ZB)MfNB} Z>cx%$`l5=jnYK$WZ6-W|6IMwYu2y!mj3D zw_7rxAK&KRu|4^*GJT05$>zwv T%%B*#L3E)d2J9k2ilNh&!_b zu{Pe!d57YK1v!z1eB (dPCws+{s)CXUB`8|@8r z;NS-bZ+5&A@{2GhjmYMR)Ygjl%YoA1NcQo_CyEFo2dJc2ke(RZ-(Fx_PPUhRZ!9~l zm~)~u(NXgcqBT9DRM(@5SfXcML~B?@D|JK!!=t)=!|cCDZL!2)+C{?x>|!=a1F!Xc zUr->_H@M#Gh6UlV1&9U3<#3vW$F#f0D(r{8C*?lppbNzleRd D5ND^$|P&-r!-t8 zHd-ZL%ftj^(~{pN*bXPlv81*SrDjdAveu^73Z&&9V4^31sZe{`?ilE81@o6qPEKmt z7D2u?JO 3{_j5+0 zsfb3)OaU%NOQo=S_pA>b>0JUTDrB_Po$fBTvA}QyIR$@X4ug#Iu%4F4p?AIs5r= zMxIRi-g0&WbB?@6V$)vMFd_$4nj;U&Ouou)LS!y8=gN_0 xLH ze#)lfC19t7Qh%-Gdz42lF2Q&FlNz}S7lqQXZgF4wQ~l(!c*k76oR(fVR51%LT2HMQ zmIYv_sh=AeNS;!21PCw$P#I3^?JZSOX_xpcl@kdw2pe(8IZ-{>&3$OZkd(`B=VYzv zS Xs`Te?S15OJut^t(k8A4%sNfzPHJu1pJwQ4l|MX*w86iWd*M#Yx` zHAD(juj53#Y3Ln{;92{Wcuna%H?_+oNbV6?J58idIC7=5_P(s( HPU4!14!s9#OIXDYi^{ahXD5bH4J3+Ghy}I;SgmO zGXDK%H6vwrL-o-aEO?>JZ0=8gTQ{W0b7toWi^G{IteDT`e9lImVt`EW{RSo0N?uUq zJHaN%aCHP}6}C!~c^<=XUQ+@V>a?`(FK-c))o;pFk>@vapeuQ38fj+4_@`O%?wS*@ z>V7UYK_rDJVGQ7W40>avd6T(`_fCYkhY=~!65oOjz^@iViL0F|R&BNTSfg_hXjv35 z4OEmTu+^RnO)7|1MX64Ylxoh1vMEczjoX0bEi^1DMuZ~IW>gLD+El-(>8P|zk(CU1 zwm6*SlN~m@o^h$=OPbMk5Z{#J is;G^bZ((bOoTflRJfHSbp!G{ z6_z`8h1!!;Ai~CKX_8&+T3z3~x^nU*hQ4(as<3*_=$6oSGsC+b$GTj5ni8D5wadB? zXN_F(9apxs4Jxd-GnU65J JxTE|JVagussLK!tcU=;Mk;m1M<`js zz7AY@$ULFK!jUYQB=U-q10AoB5@?UF(XAoKK9k?4mL`r>0#*7^=W|eR%OUe29_9*a zairuRlNUS->^F#(mXYMf9vujMz DXur&aO<%0^oPcf;0%fC&v zR!ks3EO3$O;q@R44bTq=hnNhr2Mu!;3`2YWZ}OHeCGo#Km;VR)@$aVp6EpCyY5g~* z)iEFq{KvGUf!M_Se_IA2|LM8p%_#w3ksC;dKA;Pg27!5-K1AX1qznSF35cb`Az2Rl zv7Bj~f7>$YQbMEX=BoiQSQQQjiDE~1ga4`9l1@09Qw#-2P&$50 >~mu_GN)mB$So90 =K4F{9|nwH~V(~2uE$~9{b1r}vF zImKbo5j)vDU<&w;X^C(GN>S`lp{V8~Bn+7ImSzLwcnYm+0)lr@<{ghv=V$;?)2C)1 z0cmK *9ecKLHCA55_$XmMOqZVwiWiLzE^>4`*%BkD(KP6jlhqp6(zaF8^ z+rAq`HueJ^&%7Sc_)Ys|XqZyENgJ2-ys3eJFM%BNSl{GgkQ6I(Fox3i{MGm~woudr zgfNhIQUYjvJw02L;PEmI&3%K$?&a1734Xe7p5x}?N6$-7&;Yun@>ks!6^m)ymss}- zzOIar&I!FByeIm$R!so-yh@oE|82dyf2QrZZnYgHiI!)OGughp>7lNuBm>uYo+D z9YRf$ADH)z%85Uu30-D>>=r$0YTHsHYw)WLPM-U|pW+GqzTx@em4BtLdg0H*0_`oa z$z)&N?y~f7liTAOj=ZkX{OZpECB@OGA7`x(i~_n}tT)_cgXL&{ejfbO)!j(wMt6VZ z^WDh#Y*O@(?YZsWKL~s^f6r@wylVf9Z71lcK{A=rEaxwZx|jxsfZ4w=hRU(<4VDjF z_FKiPCVgbi)AJ4XOF;O}A4J}1PyI$vh~tu ZSS71Q{CR!biMN0stHB`oP|9{||d_71h??sOyHbP`tQ9aT45%7b(RG#l6Md-Q5!0 z0txPf1lOPi+Tyguiq(+fQnW}*PyXLp`{rD%an4?Q->mW7 EHV$?&i(aW*ddTD5=qxiyP|6GV3n2lwd9*#buBB0sSL8LXK#lg^)DrI<``nO zMBnnWI({CuK_ut5d&%RanB}lXl1a4z@lS=L&*#~W=Z4cm$VGMK7TEVy#$fM6#CTI+ zG{=-0893x(Ct?fShdJu;X}+Qgd`1i>9Q`o)Rxz*od9IeX?~ z;U_VcIxBUpB5D(xquJ%2O+w!JemR#?_2};Ni^n*Q+G0uusuNWo ~B z9tP@st~z_Vm^$-h9QI-j^c}+EiVVNh5OOMTDIrEVMc`=)X5rNqavOo3O=~c3y=&8W zP;LCQSY?Wt%U^-B!C1BMthad2srsA&5Tvj9NDera5w)+a6O?E86$`ya-1j^bCj`?p zB_y CYn#X-ex-q$6tt+e}~ z^@?z1e#gixL!iO&&K30%^-01l?QX%zs+WF-)D7J(L1Ls QoQEAD<7N)wIp?B7-#AUM{E8N@RN+g}gBM zYSQoDKYGC*u1#q%GTkLUQ%vP>EX%MzK-l}+;dz+0>I%T_S$$DxX^e{4cm1`%p}d)L z9X2M0zscFd<%gdlMWzsMee>Ux)CtvoC0d_QhnoWgMQq5PgHKQxQIaFWWGf~(rO@O% z@e< J$ucI;IVL cp>`Rb1kQKId&CqP#@z0i4k zw)Wajse64(%YF?k#L0Gl(0Ma5!q hE1~3)W$meljkzm2cn6oY2(F`EsZ||D!7j@xX8VA}cPnOrj|=hx zTtl=H%q}_~8|HO5N8DbI+$BzSFUN03r>MRkmk729_oxl$vjqPnHGKW3gvMh7{E_Mr zk*-z8e(IASt8ToQ(Yx+ee$R{|Fsn(