diff -Nru fcitx5-5.1.7/.github/ISSUE_TEMPLATE/bug_report.md fcitx5-5.1.11/.github/ISSUE_TEMPLATE/bug_report.md --- fcitx5-5.1.7/.github/ISSUE_TEMPLATE/bug_report.md 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/.github/ISSUE_TEMPLATE/bug_report.md 1970-01-01 08:00:00.000000000 +0800 @@ -1,32 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: '' -assignees: '' - ---- - -**Describe the bug** -If the problem is about you can not use fcitx in certain application, or the input window is placed in wrong place, be sure to include which application is being typed, and the output of fcitx5-diagnose command. - -Specifically, it is Ok to write the issue in Chinese (either Simplified or Traditional), because lots of developers understand Chinese. -可以用中文(简体或繁体)汇报问题。 - -The opened issue might be closed right away if it is considered a configuration issue (E.g. required packages not installed, wrong environment variables, misconfiguration like not adding wrong input method engine to the configuration, etc), but you may continue to use the issue comment to follow up for support. - -**To Reproduce** -Steps to reproduce the behavior: -1. Open ... app -2. Try to type ... - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Desktop (please complete the following information):** - - Desktop: (KDE, GNOME, etc) - - Display server type: X11, Wayland - - The output of fcitx5-diagnose if possible. - -**Additional context** -Add any other context about the problem here. diff -Nru fcitx5-5.1.7/.github/ISSUE_TEMPLATE/bug_report.yml fcitx5-5.1.11/.github/ISSUE_TEMPLATE/bug_report.yml --- fcitx5-5.1.7/.github/ISSUE_TEMPLATE/bug_report.yml 1970-01-01 08:00:00.000000000 +0800 +++ fcitx5-5.1.11/.github/ISSUE_TEMPLATE/bug_report.yml 2024-10-09 03:48:05.000000000 +0800 @@ -0,0 +1,37 @@ +name: Bug Report +description: Create a report to help us improve + +body: + - type: textarea + id: summary + attributes: + label: Summary + description: Briefly describe the bug. It is Ok to write the issue in Chinese. 以下内容均可使用中文。 + + - type: textarea + id: step_to_reproduce + attributes: + label: Steps to Reproduce + description: How to reproduce the bug. + placeholder: | + 1. Switch to which input method + 2. The key that you pressed + 3. Something when wrong ... (Unexpected text committed, etc) + validations: + required: true + + - type: textarea + id: expected_behavior + attributes: + label: Expected Behavior + description: What is expected to happen after the steps above. + validations: + required: true + + - type: textarea + id: diagnose + attributes: + label: Output of fcitx5-diagnose command + description: Please copy-paste the output of `LC_ALL=C fcitx5-diagnose` command. If your issue is related to certain application (e.g. cannot use fcitx in some application), please make sure you run this command while this application is running. + validations: + required: true diff -Nru fcitx5-5.1.7/.github/ISSUE_TEMPLATE/config.yml fcitx5-5.1.11/.github/ISSUE_TEMPLATE/config.yml --- fcitx5-5.1.7/.github/ISSUE_TEMPLATE/config.yml 1970-01-01 08:00:00.000000000 +0800 +++ fcitx5-5.1.11/.github/ISSUE_TEMPLATE/config.yml 2024-10-09 03:48:05.000000000 +0800 @@ -0,0 +1,26 @@ +blank_issues_enabled: false + +contact_links: + - name: GitHub Discussions + url: https://github.com/fcitx/fcitx5/dicussions + about: Ask any question about Fcitx here + + - name: Telegram Group + url: https://fcitx-im.org/telegram/captcha.html + about: You may also ask questions or discuss new features in the group. + + - name: Wiki + url: https://fcitx-im.org + about: Wiki + + - name: Release + url: https://download.fcitx-im.org/ + about: Source code release + + - name: Android + url: https://github.com/fcitx5-android/fcitx5-android + about: Android + + - name: Mac OS + url: https://github.com/fcitx-contrib/fcitx5-macos/ + about: Mac OS diff -Nru fcitx5-5.1.7/.github/ISSUE_TEMPLATE/feature_request.yml fcitx5-5.1.11/.github/ISSUE_TEMPLATE/feature_request.yml --- fcitx5-5.1.7/.github/ISSUE_TEMPLATE/feature_request.yml 1970-01-01 08:00:00.000000000 +0800 +++ fcitx5-5.1.11/.github/ISSUE_TEMPLATE/feature_request.yml 2024-10-09 03:48:05.000000000 +0800 @@ -0,0 +1,12 @@ +name: Feature Request +description: Suggest a new feature for this project + +body: + - type: textarea + id: summary + attributes: + label: Summary + description: Describe this new feature + validations: + required: true + diff -Nru fcitx5-5.1.7/.github/workflows/check.yml fcitx5-5.1.11/.github/workflows/check.yml --- fcitx5-5.1.7/.github/workflows/check.yml 1970-01-01 08:00:00.000000000 +0800 +++ fcitx5-5.1.11/.github/workflows/check.yml 2024-10-09 03:48:05.000000000 +0800 @@ -0,0 +1,73 @@ +name: CI + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + clang-format: + name: Check clang-format + runs-on: ubuntu-latest + container: archlinux:latest + steps: + - name: Install dependencies + run: | + pacman -Syu --noconfirm git clang diffutils + git config --global --add safe.directory $GITHUB_WORKSPACE + - uses: actions/checkout@v4 + - uses: fcitx/github-actions@clang-format + check: + name: Build and test + needs: clang-format + runs-on: ubuntu-latest + container: archlinux:latest + strategy: + fail-fast: false + matrix: + compiler: [gcc, clang] + include: + - compiler: gcc + cxx_compiler: g++ + - compiler: clang + cxx_compiler: clang++ + env: + CC: ${{ matrix.compiler }} + CXX: ${{ matrix.cxx_compiler }} + steps: + - name: Install dependencies + run: | + pacman -Syu --noconfirm base-devel clang cmake ninja extra-cmake-modules xcb-util xcb-util-keysyms cairo enchant iso-codes libxkbcommon-x11 pango systemd wayland xcb-util-wm libxkbfile fmt gdk-pixbuf2 wayland-protocols + - uses: actions/checkout@v4 + with: + path: xcb-imdkit + repository: fcitx/xcb-imdkit + - name: Build and Install xcb-imdkit + uses: fcitx/github-actions@cmake + with: + path: xcb-imdkit + - uses: actions/checkout@v4 + with: + path: fcitx5 + - name: Cache fcitx5 data files + uses: actions/cache@v4 + with: + path: 'fcitx5/**/*.tar.*' + key: ${{ runner.os }}-${{ hashFiles('fcitx5/src/modules/spell/CMakeLists.txt') }} + - name: Init CodeQL + uses: github/codeql-action/init@v3 + with: + languages: cpp + source-root: fcitx5 + - name: Build and Install fcitx5 + uses: fcitx/github-actions@cmake + with: + path: fcitx5 + - name: Test + run: | + ctest --test-dir fcitx5/build + - name: CodeQL Analysis + uses: github/codeql-action/analyze@v2 diff -Nru fcitx5-5.1.7/CMakeLists.txt fcitx5-5.1.11/CMakeLists.txt --- fcitx5-5.1.7/CMakeLists.txt 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/CMakeLists.txt 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.6.0) -project(fcitx VERSION 5.1.7) +project(fcitx VERSION 5.1.11) set(FCITX_VERSION ${PROJECT_VERSION}) find_package(ECM REQUIRED 1.0.0) @@ -124,8 +124,8 @@ pkg_check_modules(JsonC REQUIRED IMPORTED_TARGET "json-c") set(DEFAULT_XKB_RULES_FILES "${XKEYBOARDCONFIG_XKBBASE}/rules/${DEFAULT_XKB_RULES}.xml") - if (NOT EXISTS "${DEFAULT_XKB_RULES_FILES}") - message(FATAL_ERROR "Could not find default xkb rules file: ${DEFAULT_XKB_RULES_FILES}") + if (NOT EXISTS "${DEFAULT_XKB_RULES_FILES}" AND NOT APPLE) + message(WARNING "Could not find default xkb rules file: ${DEFAULT_XKB_RULES_FILES}") endif() endif() diff -Nru fcitx5-5.1.7/cmake/FindIsoCodes.cmake fcitx5-5.1.11/cmake/FindIsoCodes.cmake --- fcitx5-5.1.7/cmake/FindIsoCodes.cmake 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/cmake/FindIsoCodes.cmake 2024-10-09 03:48:05.000000000 +0800 @@ -18,13 +18,17 @@ find_package(PkgConfig) pkg_check_modules(PC_ISOCODES iso-codes) -find_file(ISOCODES_ISO639_JSON iso_639-3.json - HINTS "${PC_ISOCODES_PREFIX}/share/iso-codes/json/" - ) +if(NOT DEFINED ISOCODES_ISO639_JSON) + find_file(ISOCODES_ISO639_JSON iso_639-3.json + HINTS "${PC_ISOCODES_PREFIX}/share/iso-codes/json/" + ) +endif() -find_file(ISOCODES_ISO3166_JSON iso_3166-1.json - HINTS "${PC_ISOCODES_PREFIX}/share/iso-codes/json/" - ) +if(NOT DEFINED ISOCODES_ISO3166_JSON) + find_file(ISOCODES_ISO3166_JSON iso_3166-1.json + HINTS "${PC_ISOCODES_PREFIX}/share/iso-codes/json/" + ) +endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(IsoCodes DEFAULT_MSG ISOCODES_ISO639_JSON ISOCODES_ISO3166_JSON) diff -Nru fcitx5-5.1.7/cmake/FindXKeyboardConfig.cmake fcitx5-5.1.11/cmake/FindXKeyboardConfig.cmake --- fcitx5-5.1.7/cmake/FindXKeyboardConfig.cmake 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/cmake/FindXKeyboardConfig.cmake 2024-10-09 03:48:05.000000000 +0800 @@ -2,8 +2,12 @@ pkg_check_modules(PKG_XKEYBOARDCONFIG QUIET xkeyboard-config) -pkg_get_variable(XKEYBOARDCONFIG_XKBBASE xkeyboard-config xkb_base) -pkg_get_variable(XKEYBOARDCONFIG_DATADIR xkeyboard-config datadir) +if(NOT DEFINED XKEYBOARDCONFIG_XKBBASE) + pkg_get_variable(XKEYBOARDCONFIG_XKBBASE xkeyboard-config xkb_base) +endif() +if(NOT DEFINED XKEYBOARDCONFIG_DATADIR) + pkg_get_variable(XKEYBOARDCONFIG_DATADIR xkeyboard-config datadir) +endif() set(XKEYBOARDCONFIG_VERSION ${PKG_XKEYBOARDCONFIG_VERSION}) mark_as_advanced(XKEYBOARDCONFIG_VERSION) diff -Nru fcitx5-5.1.7/data/fcitx5-configtool.sh fcitx5-5.1.11/data/fcitx5-configtool.sh --- fcitx5-5.1.7/data/fcitx5-configtool.sh 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/data/fcitx5-configtool.sh 2024-10-09 03:48:05.000000000 +0800 @@ -7,14 +7,14 @@ if command -v kdialog > /dev/null 2>&1; then message() { - kdialog --msgbox "$1" + kdialog --yesno "$1" } error() { kdialog --error "$1" } elif command -v zenity > /dev/null 2>&1; then message() { - zenity --info --text="$1" + zenity --question --text="$1" } error() { zenity --error --text="$1" @@ -131,13 +131,18 @@ run_xdg() { case "$DE" in kde) - message "$(_ "You're currently running KDE, but KCModule for fcitx couldn't be found, the package name of this KCModule is usually kcm-fcitx or kde-config-fcitx. Now it will open config directory.")" + message "$(_ "You're currently running KDE, but KCModule for fcitx couldn't be found. The package name of this KCModule is usually kcm-fcitx5, kde-config-fcitx5, or fcitx5-configtool. Now it will open the configuration directory.")" ;; *) - message "$(_ "You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be found. Now it will open config directory.")" + message "$(_ "You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be found. The package name provides this binary is usually fcitx5-configtool. Now it will open the configuration directory.")" ;; esac + # user choose no + if [ $? -ne 0 ]; then + exit + fi + if command="$(command -v xdg-open 2>/dev/null)"; then exec "$command" "$HOME/.config/fcitx5" fi diff -Nru fcitx5-5.1.7/data/org.fcitx.Fcitx5.metainfo.xml.in fcitx5-5.1.11/data/org.fcitx.Fcitx5.metainfo.xml.in --- fcitx5-5.1.7/data/org.fcitx.Fcitx5.metainfo.xml.in 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/data/org.fcitx.Fcitx5.metainfo.xml.in 2024-10-09 03:48:05.000000000 +0800 @@ -5,6 +5,9 @@ <project_license>LGPL-2.1+</project_license> <name>Fcitx 5</name> <summary>Input Method</summary> + <developer id="org.fcitx-im"> + <name>The Fcitx Team</name> + </developer> <description> <p> Fcitx is an input method framework. @@ -17,6 +20,7 @@ <url type="help">https://fcitx-im.org/wiki/Fcitx</url> <url type="translate">https://explore.transifex.com/fcitx/</url> <url type="faq">https://fcitx-im.org/wiki/FAQ</url> + <url type="vcs-browser">https://github.com/fcitx/fcitx5</url> <screenshots> <screenshot type="default"> <caption>Typing with Fcitx and Kimpanel</caption> @@ -27,6 +31,10 @@ <binary>fcitx5</binary> </provides> <releases> + <release version="5.1.11" date="2024-10-08"/> + <release version="5.1.10" date="2024-05-30"/> + <release version="5.1.9" date="2024-04-22"/> + <release version="5.1.8" date="2024-02-28"/> <release version="5.1.7" date="2024-01-15"/> <release version="5.1.6" date="2024-01-02"/> <release version="5.1.5" date="2023-11-08"/> diff -Nru fcitx5-5.1.7/debian/changelog fcitx5-5.1.11/debian/changelog --- fcitx5-5.1.7/debian/changelog 2024-08-28 10:05:23.000000000 +0800 +++ fcitx5-5.1.11/debian/changelog 2025-03-20 13:50:02.000000000 +0800 @@ -1,3 +1,120 @@ +fcitx5 (5.1.11-ok0.10) huanghe; urgency=medium + + * BUG:无 + * 需求号:无 + * 其他改动说明:通过右键菜单配置项可以打开自研输入法框架配置工具 + * 其他改动影响域:无 + + -- hanteng <hanteng@kylinos.cn> Thu, 20 Mar 2025 13:50:02 +0800 + +fcitx5 (5.1.11-ok0.9) huanghe; urgency=medium + + * BUG:无 + * 需求号:无 + * 其他改动说明:优化托盘图标显示逻辑 + * 其他改动影响域:无 + + -- hanteng <hanteng@kylinos.cn> Tue, 10 Dec 2024 09:52:29 +0800 + +fcitx5 (5.1.11-ok0.8) huanghe; urgency=medium + + * BUG:无 + * 需求号:无 + * 其他改动说明:优化显示和隐藏逻辑 + * 其他改动影响域:无 + + -- hanteng <hanteng@kylinos.cn> Mon, 09 Dec 2024 15:18:39 +0800 + +fcitx5 (5.1.11-ok0.7) huanghe; urgency=medium + + * BUG:无 + * 需求号:无 + * 其他改动说明:增加翻译文件 + * 其他改动影响域:无 + + -- hanteng <hanteng@kylinos.cn> Mon, 09 Dec 2024 15:12:18 +0800 + +fcitx5 (5.1.11-ok0.6) huanghe; urgency=medium + + * BUG:无 + * 需求号:无 + * 其他改动说明:设置UKUI桌面环境下英文输入法图标 + * 其他改动影响域:无 + + -- hanteng <hanteng@kylinos.cn> Mon, 09 Dec 2024 15:08:52 +0800 + +fcitx5 (5.1.11-ok0.5) huanghe; urgency=medium + + * BUG:无 + * 需求号:无 + * 其他改动说明:增加状态管理器模块和提交字符串模块 + * 其他改动影响域:无 + + -- hanteng <hanteng@kylinos.cn> Mon, 09 Dec 2024 15:05:58 +0800 + +fcitx5 (5.1.11-ok0.4) huanghe; urgency=medium + + * BUG:无 + * 需求号:无 + * 其他改动说明:默认使用搜狗输入法 + * 其他改动影响域:无 + + -- hanteng <hanteng@kylinos.cn> Mon, 09 Dec 2024 14:51:42 +0800 + +fcitx5 (5.1.11-ok0.3) huanghe; urgency=medium + + * BUG:无 + * 需求号:无 + * 其他改动说明:修改默认配置,使得在麒麟系统上显示、使用更友好 + * 其他改动影响域:无 + + -- hanteng <hanteng@kylinos.cn> Mon, 09 Dec 2024 14:42:17 +0800 + +fcitx5 (5.1.11-ok0.2) huanghe; urgency=medium + + * BUG:无 + * 需求号:无 + * 其他改动说明:不从外网拉取文件,使用本地文件 + * 其他改动影响域:无 + + -- hanteng <hanteng@kylinos.cn> Mon, 09 Dec 2024 14:30:30 +0800 + +fcitx5 (5.1.11-ok0.1) huanghe; urgency=medium + + * BUG:无 + * 需求号:无 + * 其他改动说明:发布最新版本 + * 其他改动影响域:无 + + -- hanteng <hanteng@kylinos.cn> Mon, 09 Dec 2024 14:24:41 +0800 + +fcitx5 (5.1.7-ok0.11) nile; urgency=medium + + * BUG:#IASE5Q 切换到英文输入法和默认情况下,输入法图标显示错误 + * 需求号:无 + * 其他改动说明:无 + * 其他改动影响域:无 + + -- hanteng <hanteng@kylinos.cn> Mon, 18 Nov 2024 19:48:29 +0800 + +fcitx5 (5.1.7-ok0.10) nile; urgency=medium + + * BUG:无 + * 需求号:无 + * 其他改动说明:当无法通过状态管理器获取物理键盘可用性时默认物理键盘是可用的 + * 其他改动影响域:无 + + -- liulinsong <liulinsong@kylinos.cn> Tue, 08 Oct 2024 16:21:13 +0800 + +fcitx5 (5.1.7-ok0.9) nile; urgency=medium + + * BUG:无 + * 需求号:#32737 优化手动唤起后的虚拟键盘显示与隐藏逻辑 + * 其他改动说明:无 + * 其他改动影响域:无 + + -- liulinsong <liulinsong@kylinos.cn> Wed, 18 Sep 2024 17:15:35 +0800 + fcitx5 (5.1.7-ok0.8) nile; urgency=medium * BUG:issue#IAJPPK ok输入法不显示状态栏 diff -Nru fcitx5-5.1.7/debian/fcitx5.install fcitx5-5.1.11/debian/fcitx5.install --- fcitx5-5.1.7/debian/fcitx5.install 2024-08-28 10:05:23.000000000 +0800 +++ fcitx5-5.1.11/debian/fcitx5.install 2025-03-20 13:50:02.000000000 +0800 @@ -4,4 +4,5 @@ usr/share/applications/ usr/share/icons/hicolor/*/apps/org.fcitx.Fcitx5.* usr/share/icons/hicolor/*/apps/fcitx.* +usr/share/icons/hicolor/*/apps/ukui-english-en-symbolic.* usr/share/metainfo/org.fcitx.Fcitx5.metainfo.xml diff -Nru fcitx5-5.1.7/debian/patches/0001-update-changelog-potimize-show-hide-logic.patch fcitx5-5.1.11/debian/patches/0001-update-changelog-potimize-show-hide-logic.patch --- fcitx5-5.1.7/debian/patches/0001-update-changelog-potimize-show-hide-logic.patch 1970-01-01 08:00:00.000000000 +0800 +++ fcitx5-5.1.11/debian/patches/0001-update-changelog-potimize-show-hide-logic.patch 2025-03-20 13:50:02.000000000 +0800 @@ -0,0 +1,12402 @@ +From: hantengc <hanteng@kylinos.cn> +Date: Mon, 9 Dec 2024 15:21:57 +0800 +Subject: update changelog: potimize show && hide logic + +--- + data/default/zh_CN | 3 +- + data/default/zh_HK | 3 +- + data/default/zh_TW | 2 +- + data/fcitx5-configtool.desktop.in.in | 1 + + .../scalable/apps/ukui-english-en-symbolic.svg | 15 + + data/org.fcitx.Fcitx5.desktop.in.in | 1 + + po/kk.po | 2942 +++++++++++++++++++ + po/ky.po | 2942 +++++++++++++++++++ + po/ug.po | 2983 ++++++++++++++++++++ + src/im/keyboard/keyboard.cpp | 25 +- + src/lib/fcitx/globalconfig.cpp | 14 +- + src/lib/fcitx/instance.cpp | 17 +- + src/lib/fcitx/instance_p.h | 4 +- + src/lib/fcitx/userinterfacemanager.cpp | 10 + + src/modules/CMakeLists.txt | 2 + + src/modules/commitstringdbus/CMakeLists.txt | 14 + + .../commitstringdbus-addon.conf.in | 13 + + src/modules/commitstringdbus/commitstringdbus.cpp | 77 + + src/modules/commitstringdbus/commitstringdbus.h | 69 + + src/modules/devicestatusmanager/CMakeLists.txt | 10 + + .../devicestatusmanager.conf.in.in | 12 + + .../devicestatusmanager/devicestatusmanager.cpp | 50 + + .../devicestatusmanager/devicestatusmanager.h | 33 + + .../physicalkeyboardwatcher.cpp | 95 + + .../physicalkeyboardwatcherstrategy.cpp | 35 + + .../physicalkeyboardwatcherstrategy.h | 27 + + .../devicestatusmanager/statusmanagerwatcher.cpp | 102 + + .../devicestatusmanager/statusmanagerwatcher.h | 104 + + src/modules/spell/CMakeLists.txt | 10 +- + src/modules/spell/en_dict-20121020.tar.gz | Bin 0 -> 630491 bytes + src/ui/virtualkeyboard/virtualkeyboard.cpp | 16 +- + src/ui/virtualkeyboard/virtualkeyboard.h | 1 + + 32 files changed, 9595 insertions(+), 37 deletions(-) + create mode 100644 data/icon/scalable/apps/ukui-english-en-symbolic.svg + create mode 100644 po/kk.po + create mode 100644 po/ky.po + create mode 100644 po/ug.po + create mode 100644 src/modules/commitstringdbus/CMakeLists.txt + create mode 100644 src/modules/commitstringdbus/commitstringdbus-addon.conf.in + create mode 100644 src/modules/commitstringdbus/commitstringdbus.cpp + create mode 100644 src/modules/commitstringdbus/commitstringdbus.h + create mode 100644 src/modules/devicestatusmanager/CMakeLists.txt + create mode 100644 src/modules/devicestatusmanager/devicestatusmanager.conf.in.in + create mode 100644 src/modules/devicestatusmanager/devicestatusmanager.cpp + create mode 100644 src/modules/devicestatusmanager/devicestatusmanager.h + create mode 100644 src/modules/devicestatusmanager/physicalkeyboardwatcher.cpp + create mode 100644 src/modules/devicestatusmanager/physicalkeyboardwatcherstrategy.cpp + create mode 100644 src/modules/devicestatusmanager/physicalkeyboardwatcherstrategy.h + create mode 100644 src/modules/devicestatusmanager/statusmanagerwatcher.cpp + create mode 100644 src/modules/devicestatusmanager/statusmanagerwatcher.h + create mode 100644 src/modules/spell/en_dict-20121020.tar.gz + +diff --git a/data/default/zh_CN b/data/default/zh_CN +index b58579e..14cfe35 100644 +--- a/data/default/zh_CN ++++ b/data/default/zh_CN +@@ -1,3 +1,2 @@ + [DefaultInputMethod] +-0=pinyin +-1=rime ++0=com.sogou.ime.ng.fcitx5.kylin +diff --git a/data/default/zh_HK b/data/default/zh_HK +index bc9b8fb..14cfe35 100644 +--- a/data/default/zh_HK ++++ b/data/default/zh_HK +@@ -1,3 +1,2 @@ + [DefaultInputMethod] +-0=cangjie +-1=rime ++0=com.sogou.ime.ng.fcitx5.kylin +diff --git a/data/default/zh_TW b/data/default/zh_TW +index 28ce08f..14cfe35 100644 +--- a/data/default/zh_TW ++++ b/data/default/zh_TW +@@ -1,2 +1,2 @@ + [DefaultInputMethod] +-0=chewing ++0=com.sogou.ime.ng.fcitx5.kylin +diff --git a/data/fcitx5-configtool.desktop.in.in b/data/fcitx5-configtool.desktop.in.in +index f0b0908..2eec222 100644 +--- a/data/fcitx5-configtool.desktop.in.in ++++ b/data/fcitx5-configtool.desktop.in.in +@@ -10,3 +10,4 @@ X-KDE-StartupNotify=false + StartupNotify=false + X-AppStream-Ignore=true + NotShowIn=KDE ++NoDisplay=true +diff --git a/data/icon/scalable/apps/ukui-english-en-symbolic.svg b/data/icon/scalable/apps/ukui-english-en-symbolic.svg +new file mode 100644 +index 0000000..381d923 +--- /dev/null ++++ b/data/icon/scalable/apps/ukui-english-en-symbolic.svg +@@ -0,0 +1,15 @@ ++<?xml version="1.0" encoding="utf-8"?> ++<!-- Generator: Adobe Illustrator 25.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> ++<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" ++ viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve"> ++<style type="text/css"> ++ .st0{fill-rule:evenodd;clip-rule:evenodd;fill:#262626;} ++</style> ++<g> ++ <path class="st0" d="M13.1,3c-1.3,0-2.4,0.6-3.1,1.4V4.1c0-0.3-0.2-0.6-0.5-0.6S9,3.8,9,4.1V7v4.5c0,0.3,0.2,0.6,0.5,0.6 ++ c0,0,0,0,0,0c0,0,0,0,0,0c0.3,0,0.4-0.3,0.4-0.6V7c0-1.6,1.1-3,3.1-3C14.1,4,15,5.1,15,6v5.6c0,0.3,0.1,0.6,0.4,0.6 ++ c0.3,0,0.6-0.3,0.6-0.6V5.8C16,4.3,14.7,3,13.1,3z"/> ++ <path class="st0" d="M4,3C1.7,3,0,5.1,0,7.6C0,10,1.7,12,4,12c1.6,0,3-1,3.6-2.5c0.1-0.3,0-0.6-0.3-0.7C7,8.6,6.7,8.8,6.6,9.1 ++ C6.1,10.3,5.1,11,4,11c-1.4,0-2.8-1.3-3-3h6.4C7.7,8,8,7.7,8,7.4C8,5,6.3,3,4,3z M1,7c0.2-1.7,1.6-3,3-3s2.8,1.3,3,3H1z"/> ++</g> ++</svg> +diff --git a/data/org.fcitx.Fcitx5.desktop.in.in b/data/org.fcitx.Fcitx5.desktop.in.in +index 58793b4..c1ecc68 100644 +--- a/data/org.fcitx.Fcitx5.desktop.in.in ++++ b/data/org.fcitx.Fcitx5.desktop.in.in +@@ -14,3 +14,4 @@ X-KDE-autostart-after=panel + X-KDE-StartupNotify=false + X-KDE-Wayland-VirtualKeyboard=true + X-KDE-Wayland-Interfaces=org_kde_plasma_window_management ++NoDisplay=true +\ No newline at end of file +diff --git a/po/kk.po b/po/kk.po +new file mode 100644 +index 0000000..7b950dd +--- /dev/null ++++ b/po/kk.po +@@ -0,0 +1,2942 @@ ++# SOME DESCRIPTIVE TITLE. ++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER ++# This file is distributed under the same license as the fcitx5 package. ++# ++# Translators: ++# wwj402 <wwj402@gmail.com>, 2017 ++# rocka, 2023 ++# Lau YeeYu, 2023 ++# csslayer <wengxt@gmail.com>, 2023 ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: fcitx5\n" ++"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" ++"POT-Creation-Date: 2023-10-19 05:51+0000\n" ++"PO-Revision-Date: 2017-11-23 04:14+0000\n" ++"Last-Translator: Automatically generated\n" ++"Language-Team: none\n" ++"Language: kk\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Plural-Forms: nplurals=2; plural=n != 1;\n" ++ ++#: data/fcitx5-diagnose.sh:900 ++msgid "${1} Environment Variables:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:886 ++msgid "${1} Settings Directory:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:960 ++msgid "${1} is not running." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:909 ++msgid "${1} is not set." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:906 ++msgid "${1} is set to ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:565 ++msgid "${1} not found." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:977 ++msgid "${1} works properly." ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:407 ++msgid "(Not available)" ++msgstr "" ++ ++#: src/modules/unicode/unicode.cpp:458 ++msgid "(Type to search unicode by code or description)" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:707 ++msgid "/Beginner%27s_Guide" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:754 ++msgid "/Hall_of_Shame_for_Linux_IME_Support" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:718 ++msgid "/Input_method_related_environment_variables" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:734 ++msgid "/Note_for_GNOME_Later_than_3.6" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:758 ++msgid "/XIM" ++msgstr "" ++ ++#: src/modules/unicode/charselectdata.cpp:215 ++msgid "<Low Surrogate>" ++msgstr "" ++ ++#: src/modules/unicode/charselectdata.cpp:211 ++msgid "<Non Private Use High Surrogate>" ++msgstr "" ++ ++#: src/modules/unicode/charselectdata.cpp:213 ++msgid "<Private Use High Surrogate>" ++msgstr "" ++ ++#: src/modules/unicode/charselectdata.cpp:217 ++msgid "<Private Use>" ++msgstr "" ++ ++#: src/modules/unicode/charselectdata.cpp:247 ++msgid "<not assigned>" ++msgstr "" ++ ++#: src/ui/virtualkeyboard/virtualkeyboard.conf.in.in:4 ++msgid "A virtual keyboard backend based on DBus" ++msgstr "" ++ ++#: src/ui/classic/theme.h:204 ++msgid "Accent Colors" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:82 ++msgid "Activate Input Method" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:138 ++msgid "Active By Default" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:144 ++msgctxt "Key name" ++msgid "Add Favorite" ++msgstr "" ++ ++#: src/modules/unicode/unicode.conf.in.in:4 ++msgid "Add Unicode Typing Support" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1565 ++msgid "Addon Config Dir:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1650 ++msgid "Addon Libraries:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1593 ++msgid "Addon List:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:146 ++msgctxt "Key name" ++msgid "Adjust Brightness" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:26 ++msgid "All" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1367 ++msgid "All found Gtk ${1} immodule files exist." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1676 ++msgid "All libraries for all addons are found." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:854 ++msgid "All locales:" ++msgstr "" ++ ++#: src/modules/xcb/xcbmodule.h:30 ++msgid "Allow Overriding System XKB Settings" ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.h:34 ++msgid "Allow Overriding System XKB Settings (Only support KDE 5)" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:185 ++msgid "Allow input method in the password field" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:29 ++msgid "Alt" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:560 ++msgctxt "Key name" ++msgid "Alt" ++msgstr "" ++ ++#: src/modules/xcb/xcbmodule.h:33 ++msgid "Always set layout to be only group layout" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:151 ++msgctxt "Key name" ++msgid "Application Left" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:152 ++msgctxt "Key name" ++msgid "Application Right" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:87 ++msgid "Applications disabled for long press" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:211 ++msgctxt "Key name" ++msgid "Audio Cycle Track" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:209 ++msgctxt "Key name" ++msgid "Audio Random Play" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:208 ++msgctxt "Key name" ++msgid "Audio Repeat" ++msgstr "" ++ ++#: src/ui/classic/theme.h:193 ++msgid "Author" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:198 ++msgctxt "Key name" ++msgid "Away" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:93 ++msgctxt "Key name" ++msgid "Back" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:150 ++msgctxt "Key name" ++msgid "Back Forward" ++msgstr "" ++ ++#: src/modules/spell/spell.h:38 ++msgid "Backends" ++msgstr "" ++ ++#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 ++msgid "Background" ++msgstr "" ++ ++#: src/ui/classic/theme.h:85 ++msgid "Background Image" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:42 ++msgctxt "Key name" ++msgid "Backspace" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:827 ++msgid "Bash Version:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:204 ++msgctxt "Key name" ++msgid "Battery" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:706 ++msgid "Beginner's Guide" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:202 ++msgid "Behavior" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:222 ++msgctxt "Key name" ++msgid "Blue" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:205 ++msgctxt "Key name" ++msgid "Bluetooth" ++msgstr "" ++ ++#: src/ui/classic/theme.h:148 ++msgid "Blur Margin" ++msgstr "" ++ ++#: src/ui/classic/theme.h:147 ++msgid "Blur mask" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:153 ++msgctxt "Key name" ++msgid "Book" ++msgstr "" ++ ++#: src/ui/classic/theme.h:97 ++msgid "Border Color" ++msgstr "" ++ ++#: src/ui/classic/theme.h:105 ++msgid "Border width" ++msgstr "" ++ ++#: src/ui/classic/theme.h:50 ++msgid "Bottom" ++msgstr "" ++ ++#: src/ui/classic/theme.h:38 ++msgid "Bottom Center" ++msgstr "" ++ ++#: src/ui/classic/theme.h:38 ++msgid "Bottom Left" ++msgstr "" ++ ++#: src/ui/classic/theme.h:39 ++msgid "Bottom Right" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:164 ++msgctxt "Key name" ++msgid "Browser" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:154 ++msgctxt "Key name" ++msgid "CD" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:155 ++msgctxt "Key name" ++msgid "Calculator" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:264 ++msgctxt "Key name" ++msgid "Cancel" ++msgstr "" ++ ++#: src/im/keyboard/longpress.h:19 ++msgid "Candidates" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:975 ++msgid "Cannot connect to ${1} correctly." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:820 ++msgid "Cannot determine desktop environment." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1584 ++msgid "Cannot find ${1} addon config directory." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1099 ++msgid "Cannot find ${1} executable!" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1517 ++msgid "Cannot find ${1} im module for gtk ${2} in cache." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1434 ++msgid "Cannot find ${1} im module for gtk ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1288 data/fcitx5-diagnose.sh:1293 ++#: data/fcitx5-diagnose.sh:1298 ++msgid "Cannot find ${1} input method module for ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1428 ++msgid "Cannot find ${2} for gtk ${1}" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:995 ++msgid "Cannot find DBus name ${1} owner." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1109 ++msgid "Cannot find a GUI config tool, please install one of ${1}, or ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1679 ++msgid "Cannot find enabled ${1} user interface!" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:938 ++msgid "Cannot find fcitx5 executable!" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1658 ++msgid "Cannot find file ${1} of addon ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1668 ++msgid "Cannot find following required libraries for ${1} of addon ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1512 ++msgid "Cannot find immodules cache for gtk ${1}" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1698 ++msgid "" ++"Cannot find kimpanel dbus interface or enabled non-kimpanel user interface." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1003 ++msgid "Cannot find pid of DBus name ${1} owner." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1175 ++msgid "Cannot find xim_server on root window." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1149 ++msgid "Cannot interpret XMODIFIERS: ${1}." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:53 ++msgctxt "Key name" ++msgid "CapsLock" ++msgstr "" ++ ++#: src/ui/classic/theme.h:37 src/ui/classic/theme.h:49 ++msgid "Center" ++msgstr "" ++ ++#: src/ui/classic/theme.h:36 ++msgid "Center Left" ++msgstr "" ++ ++#: src/ui/classic/theme.h:37 ++msgid "Center Right" ++msgstr "" ++ ++#: data/fcitx5-configtool.desktop.in.in:5 ++msgid "Change Fcitx 5 Configuration" ++msgstr "" ++ ++#: src/ui/classic/theme.h:183 ++msgid "Check box" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:56 src/modules/quickphrase/quickphrase.h:41 ++msgid "Choose key modifier" ++msgstr "" ++ ++#: src/ui/classic/classicui.conf.in.in:3 ++msgid "Classic User Interface" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:156 ++msgctxt "Key name" ++msgid "Clear" ++msgstr "" ++ ++#: src/ui/classic/theme.h:131 ++msgid "Click Margin" ++msgstr "" ++ ++#: src/modules/clipboard/clipboard.conf.in.in:3 ++msgid "Clipboard" ++msgstr "" ++ ++#: src/modules/clipboard/clipboard.cpp:353 ++msgid "Clipboard (Press BackSpace/Delete to clear history):" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:157 ++msgctxt "Key name" ++msgid "Close" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:250 ++msgctxt "Key name" ++msgid "Code input" ++msgstr "" ++ ++#: src/ui/classic/theme.h:89 ++msgid "Color" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:148 ++msgctxt "Key name" ++msgid "Community" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:685 ++msgid "Completion" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:676 ++msgid "Completion is disabled." ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:679 ++msgid "Completion is enabled temporarily." ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:681 ++msgid "Completion is enabled." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1051 ++msgid "Config GUI for gtk${1} not found." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1047 ++msgid "Config GUI for gtk${1}:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1081 ++msgid "Config GUI for kde:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1070 ++msgid "Config GUI for qt not found." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1068 ++msgid "Config GUI for qt:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1097 ++msgid "Config Tool Wrapper:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1793 ++msgid "Configuration:" ++msgstr "" ++ ++#: src/ui/classic/xcbtraywindow.cpp:38 ++#: src/modules/notificationitem/dbusmenu.cpp:251 ++msgid "Configure" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 ++msgid "Control" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:559 ++msgctxt "Key name" ++msgid "Control" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:158 ++msgctxt "Key name" ++msgid "Copy" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:888 ++msgid "Current ${1} settings directory is ${2} (${3})." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:856 ++msgid "Current locale:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:894 ++msgid "Current user:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:882 ++msgid "Current value of ${1} is ${2} (${3})." ++msgstr "" ++ ++#: src/modules/spell/spell.h:22 ++msgid "Custom" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:175 ++msgid "Custom Xkb Option" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:159 ++msgctxt "Key name" ++msgid "Cut" ++msgstr "" ++ ++#: src/modules/dbus/dbus.conf.in.in:3 ++msgid "DBus" ++msgstr "" ++ ++#: src/frontend/dbusfrontend/dbusfrontend.conf.in.in:3 ++msgid "DBus Frontend" ++msgstr "" ++ ++#: src/ui/virtualkeyboard/virtualkeyboard.conf.in.in:3 ++msgid "DBus Virtual Keyboard" ++msgstr "" ++ ++#: src/modules/notificationitem/notificationitem.conf.in.in:4 ++msgid "DBus based new Freedesktop.org tray icon" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:983 ++msgid "DBus interface:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:161 ++msgctxt "Key name" ++msgid "DOS" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:158 ++msgid "Dark Theme" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:91 ++msgid "Deactivate Input Method" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1007 ++msgid "Debug information from dbus:" ++msgstr "" ++ ++#: src/lib/fcitx/inputmethodmanager.cpp:138 src/lib/fcitx/instance.cpp:354 ++#: src/ui/classic/themes/default/theme.conf.in:3 ++msgid "Default" ++msgstr "" ++ ++#: src/ui/classic/themes/default-dark/theme-dark.conf.in:3 ++msgid "Default Dark" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:127 ++msgid "Default Next Candidate" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:111 ++msgid "Default Next page" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:121 ++msgid "Default Previous Candidate" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:99 ++msgid "Default Previous page" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:159 ++msgid "Default page size" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:230 ++msgctxt "Key name" ++msgid "Delete" ++msgstr "" ++ ++#: src/ui/classic/theme.h:195 ++msgid "Description" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:817 ++msgid "Desktop Environment:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:822 ++msgid "Desktop environment is ${1}." ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.cpp:476 ++msgid "" ++"Detect GTK_IM_MODULE and QT_IM_MODULE being set and Wayland Input method " ++"frontend is working. It is recommended to unset GTK_IM_MODULE and " ++"QT_IM_MODULE and use Wayland input method frontend instead. For more details " ++"see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma" ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.cpp:504 ++msgid "" ++"Detect GTK_IM_MODULE being set and Wayland Input method frontend is working. " ++"It is recommended to unset GTK_IM_MODULE and use Wayland input method " ++"frontend instead." ++msgstr "" ++ ++#: src/frontend/waylandim/waylandim.h:27 ++msgid "Detect current running application (Need restart)" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:868 ++msgid "Directories:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:160 ++msgctxt "Key name" ++msgid "Display" ++msgstr "" ++ ++#: src/modules/notifications/notifications.cpp:204 ++msgid "Do not show again" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:162 ++msgctxt "Key name" ++msgid "Documents" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:50 ++msgctxt "Key name" ++msgid "Down" ++msgstr "" ++ ++#: src/modules/quickphrase/quickphrase.h:47 ++msgid "Editor" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:248 ++msgctxt "Key name" ++msgid "Eisu Shift" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:249 ++msgctxt "Key name" ++msgid "Eisu toggle" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:137 ++msgctxt "Key name" ++msgid "Eject" ++msgstr "" ++ ++#: src/modules/emoji/emoji.conf.in.in:3 ++msgid "Emoji" ++msgstr "" ++ ++#: src/im/keyboard/longpress.h:17 ++msgid "Enable" ++msgstr "" ++ ++#: src/ui/classic/theme.h:145 ++msgid "Enable Blur on KWin" ++msgstr "" ++ ++#: src/modules/quickphrase/quickphrase.h:43 ++msgid "Enable Spell check" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:51 ++msgid "Enable emoji in hint" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:54 ++msgid "Enable emoji in quickphrase" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:190 ++msgid "Enable fractional scale under Wayland" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:59 ++msgid "Enable hint by default" ++msgstr "" ++ ++#: src/modules/spell/spell.h:23 ++msgid "Enchant" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:46 ++msgctxt "Key name" ++msgid "End" ++msgstr "" ++ ++#: src/im/keyboard/longpress.h:26 ++msgid "Entries" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:58 ++msgid "Enumerate Input Method Backward" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:51 ++msgid "Enumerate Input Method Forward" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:75 ++msgid "Enumerate Input Method Group Backward" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:68 ++msgid "Enumerate Input Method Group Forward" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:40 ++msgid "Enumerate when press trigger key repeatedly" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1127 ++msgid "" ++"Environment variable ${1} is \"${2}\" instead of \"${3}\". Please check if " ++"you have exported it incorrectly in any of your init files." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:874 ++msgid "Environment variable ${1} is not set." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1121 ++msgid "Environment variable ${1} is set to \"${2}\" correctly." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:878 ++msgid "Environment variable ${1} is set to ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:832 ++msgid "Environment:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:860 ++msgid "Error occurs when running ${1}. Please check your locale settings." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:231 ++msgctxt "Key name" ++msgid "Escape" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:265 ++msgctxt "Key name" ++msgid "Execute" ++msgstr "" ++ ++#: src/ui/classic/xcbtraywindow.cpp:40 ++#: src/modules/notificationitem/dbusmenu.cpp:265 ++msgid "Exit" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1506 ++msgid "Failed to find ${1} in immodule cache at ${2}" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1422 ++msgid "Failed to find ${1} in the output of ${2}" ++msgstr "" ++ ++#: src/modules/quickphrase/quickphrase.h:45 ++msgid "Fallback Spell check language" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:107 ++msgctxt "Key name" ++msgid "Favorites" ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.cpp:449 ++msgid "Fcitx" ++msgstr "" ++ ++#: data/org.fcitx.Fcitx5.desktop.in.in:3 ++#: data/org.fcitx.Fcitx5.metainfo.xml.in:6 ++msgid "Fcitx 5" ++msgstr "" ++ ++#: data/fcitx5-configtool.desktop.in.in:3 ++msgid "Fcitx 5 Configuration" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1564 ++msgid "Fcitx Addons:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1096 ++msgid "Fcitx Configure UI:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:935 ++msgid "Fcitx State:" ++msgstr "" ++ ++#: data/org.fcitx.Fcitx5.metainfo.xml.in:9 ++msgid "" ++"Fcitx is an input method framework. It can help you to type your own " ++"language. It also features variant choice of addons that improve your typing " ++"experience." ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.cpp:463 ++msgid "" ++"Fcitx should be launched by KWin under KDE Wayland in order to use Wayland " ++"input method frontend. This can improve the experience when using Fcitx on " ++"Wayland. To configure this, you need to go to \"System Settings\" -> " ++"\"Virtual keyboard\" and select \"Fcitx 5\" from it. You may also need to " ++"disable tools that launches input method, such as imsettings on Fedora, or " ++"im-config on Debian/Ubuntu. For more details see https://fcitx-im.org/wiki/" ++"Using_Fcitx_5_on_Wayland#KDE_Plasma" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:949 ++msgid "Fcitx version: ${1}" ++msgstr "" ++ ++#: src/frontend/fcitx4frontend/fcitx4frontend.conf.in.in:3 ++msgid "Fcitx4 Frontend" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:147 ++msgctxt "Key name" ++msgid "Finance" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:225 ++msgctxt "Key name" ++msgid "Find" ++msgstr "" ++ ++#: src/ui/classic/theme.h:49 ++msgid "First Candidate" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:164 ++msgid "Follow system accent color if it is supported by theme and desktop" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:160 ++msgid "Follow system light/dark color scheme" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1284 ++msgid "" ++"Following error may not be accurate because guessing Qt version from path " ++"depends on how your distribution packages Qt. It is not a critical error if " ++"you do not use any Qt application with certain version of Qt or you are " ++"using text-input support by Qt under Wayland." ++msgstr "" ++ ++#: src/ui/classic/classicui.h:120 ++msgid "Font" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:150 ++msgid "" ++"For example, display character with Chinese variant when using Pinyin and " ++"Japanese variant when using Anthy. The font configuration needs to support " ++"this to use this feature." ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.cpp:530 ++msgid "For more details see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:178 ++msgid "Force font DPI on Wayland" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:94 ++msgctxt "Key name" ++msgid "Forward" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1276 ++msgid "Found ${1} ${2} module: ${3}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:969 ++msgid "Found ${1} ${2} process:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:967 ++msgid "Found ${1} ${2} processes:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1587 ++msgid "Found ${1} addon config directory: ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:944 data/fcitx5-diagnose.sh:1060 ++#: data/fcitx5-diagnose.sh:1073 data/fcitx5-diagnose.sh:1101 ++msgid "Found ${1} at ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1640 ++msgid "Found ${1} disabled addons:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1631 ++msgid "Found ${1} enabled addons:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1681 ++msgid "Found ${1} enabled user interface addons:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1416 data/fcitx5-diagnose.sh:1500 ++msgid "Found ${1} im modules for gtk ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1087 ++msgid "Found ${1} kcm module." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1408 ++msgid "Found ${2} for unknown gtk version at ${1}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1400 ++msgid "Found ${3} for gtk ${1} at ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1263 data/fcitx5-diagnose.sh:1268 ++msgid "Found ${3} im module for ${2}: ${1}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1493 ++msgid "Found immodule cache for unknown gtk version at ${1}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1485 ++msgid "Found immodules cache for gtk ${1} at ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1279 ++msgid "Found unknown ${1} qt module: ${2}." ++msgstr "" ++ ++#: src/modules/notifications/notifications.conf.in.in:4 ++msgid "Freedesktop.org Notification Support" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1785 ++msgid "Frontends setup:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:165 ++msgctxt "Key name" ++msgid "Game" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:166 ++msgctxt "Key name" ++msgid "Go" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:220 ++msgctxt "Key name" ++msgid "Green" ++msgstr "" ++ ++#: src/ui/classic/xcbtraywindow.cpp:36 ++#: src/modules/notificationitem/dbusmenu.cpp:241 ++msgid "Group" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:411 ++#, c++-format ++msgid "Group {0}: {1}" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:356 ++#, c++-format ++msgid "Group {}" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1361 ++msgid "Gtk ${1} immodule file ${2} does not exist." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1545 ++msgid "Gtk IM module cache:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1550 ++msgid "Gtk IM module files:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:753 ++msgid "Hall of Shame for Linux IME Support" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:253 ++msgctxt "Key name" ++msgid "Hangul" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:260 ++msgctxt "Key name" ++msgid "Hangul Banja" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:255 ++msgctxt "Key name" ++msgid "Hangul End" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:256 ++msgctxt "Key name" ++msgid "Hangul Hanja" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:257 ++msgctxt "Key name" ++msgid "Hangul Jamo" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:259 ++msgctxt "Key name" ++msgid "Hangul Jeonja" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:262 ++msgctxt "Key name" ++msgid "Hangul PostHanja" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:261 ++msgctxt "Key name" ++msgid "Hangul PreHanja" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:258 ++msgctxt "Key name" ++msgid "Hangul Romaja" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:263 ++msgctxt "Key name" ++msgid "Hangul Special" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:254 ++msgctxt "Key name" ++msgid "Hangul Start" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:242 ++msgctxt "Key name" ++msgid "Hankaku" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:92 ++msgctxt "Key name" ++msgid "Help" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:236 ++msgctxt "Key name" ++msgid "Henkan" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:213 ++msgctxt "Key name" ++msgid "Hibernate" ++msgstr "" ++ ++#: src/modules/notifications/notifications.h:28 ++msgid "Hidden Notifications" ++msgstr "" ++ ++#: src/ui/classic/theme.h:116 ++msgid "Hide overlay if size does not fit" ++msgstr "" ++ ++#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:180 ++msgid "Highlight Background" ++msgstr "" ++ ++#: src/ui/classic/theme.h:140 ++msgid "Highlight Background color" ++msgstr "" ++ ++#: src/ui/classic/theme.h:143 ++msgid "Highlight Candidate Color" ++msgstr "" ++ ++#: src/ui/classic/theme.h:126 ++msgid "Highlight Click Margin" ++msgstr "" ++ ++#: src/ui/classic/theme.h:138 ++msgid "Highlight text color" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:238 ++msgctxt "Key name" ++msgid "Hiragana" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:240 ++msgctxt "Key name" ++msgid "Hiragana Katakana" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:143 ++msgctxt "Key name" ++msgid "History" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:45 ++msgctxt "Key name" ++msgid "Home" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:175 ++msgctxt "Key name" ++msgid "Home Office" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:106 ++msgctxt "Key name" ++msgid "Home Page" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:870 ++msgid "Home:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:145 ++msgctxt "Key name" ++msgid "Hot Links" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:200 ++msgid "Hotkey" ++msgstr "" ++ ++#: src/modules/imselector/imselector.h:35 ++msgid "Hotkey for switching to the N-th input method" ++msgstr "" ++ ++#: src/modules/imselector/imselector.h:44 ++msgid "" ++"Hotkey for switching to the N-th input method for only current input context" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:564 ++msgctxt "Key name" ++msgid "Hyper" ++msgstr "" ++ ++#: src/frontend/ibusfrontend/ibusfrontend.conf.in.in:3 ++msgid "IBus Frontend" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:196 ++msgid "" ++"If value is 0, the user data may only be saved when fcitx quits (e.g. " ++"logout)." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:742 ++msgid "" ++"If you are using ${1}, you may want to uninstall ${2} or remove ${3} in " ++"order to use any input method other than ${2}. See ${link} for more detail " ++"as well as alternative solutions." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:740 ++msgid "" ++"If you are using ${1}, you may want to uninstall ${2}, remove ${3} or use " ++"the command ${g36_disable_ibus} to disable IBus integration in order to use " ++"any input method other than ${2}. See ${link} for more detail." ++msgstr "" ++ ++#: src/ui/classic/theme.h:129 ++msgid "Image" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:684 src/lib/fcitx/instance.cpp:446 ++#: src/lib/fcitx/instance.cpp:672 src/lib/fcitx/instance.cpp:834 ++#: src/modules/notificationitem/notificationitem.cpp:147 ++#: src/modules/notificationitem/notificationitem.cpp:235 ++#: src/modules/xcb/xcbconnection.cpp:521 data/org.fcitx.Fcitx5.desktop.in.in:4 ++#: data/org.fcitx.Fcitx5.metainfo.xml.in:7 ++msgid "Input Method" ++msgstr "" ++ ++#: data/fcitx5-configtool.desktop.in.in:4 ++msgid "Input Method Configuration" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:717 ++msgid "Input Method Related Environment Variables: " ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1704 ++msgid "Input Methods:" ++msgstr "" ++ ++#: src/ui/classic/theme.h:201 ++msgid "Input Panel" ++msgstr "" ++ ++#: src/ui/classic/theme.h:65 ++msgid "Input Panel Background" ++msgstr "" ++ ++#: src/ui/classic/theme.h:65 ++msgid "Input Panel Border" ++msgstr "" ++ ++#: src/ui/classic/theme.h:67 ++msgid "Input Panel Highlight" ++msgstr "" ++ ++#: src/ui/classic/theme.h:66 ++msgid "Input Panel Highlight Candidate Background" ++msgstr "" ++ ++#: src/ui/classic/theme.h:67 ++msgid "Input Panel Highlight Candidate Border" ++msgstr "" ++ ++#: src/modules/imselector/imselector.conf.in.in:3 ++msgid "Input method selector" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:103 src/lib/fcitx/globalconfig.cpp:115 ++msgid "" ++"Input methods may have different setup in their own configuration. This is " ++"commonly used by modules like clipboard or quickphrase." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:229 ++msgctxt "Key name" ++msgid "Insert" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:192 ++msgid "Interval of saving user data in minutes" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1599 ++msgid "Invalid addon config file ${1}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1205 ++msgid "" ++"It is OK to use ${1} built-in Wayland im module if your compositor fully " ++"supports text-input protocol used by ${1}." ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.cpp:488 ++msgid "" ++"It is recommended to install Input Method Panel GNOME Shell Extensions to " ++"provide the input method popup. https://extensions.gnome.org/extension/261/" ++"kimpanel/ Otherwise you may not be able to see input method popup when " ++"typing in GNOME Shell's activities search box. For more details see https://" ++"fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#GNOME" ++msgstr "" ++ ++#: src/ui/kimpanel/kimpanel.conf.in.in:3 ++msgid "KDE Input Method Panel" ++msgstr "" ++ ++#: src/ui/classic/classicui.cpp:260 ++msgid "KDE Plasma (Experimental)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:246 ++msgctxt "Key name" ++msgid "Kana Lock" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:247 ++msgctxt "Key name" ++msgid "Kana Shift" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:234 ++msgctxt "Key name" ++msgid "Kanji" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:239 ++msgctxt "Key name" ++msgid "Katakana" ++msgstr "" ++ ++#: src/im/keyboard/longpress.h:16 ++msgid "Key" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:315 src/im/keyboard/keyboard.conf.in.in:3 ++msgid "Keyboard" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:231 ++#, c++-format ++msgid "Keyboard - {0}" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:250 ++#, c++-format ++msgid "Keyboard - {0} - {1}" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:134 ++msgctxt "Key name" ++msgid "Keyboard Brightness Down" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:132 ++msgctxt "Key name" ++msgid "Keyboard Brightness Up" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:836 ++msgid "Keyboard Layout:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:131 ++msgctxt "Key name" ++msgid "Keyboard Light On/Off" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:171 ++msgctxt "Key name" ++msgid "Keyboard Menu" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:74 ++msgctxt "Key name" ++msgid "Keypad *" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:75 ++msgctxt "Key name" ++msgid "Keypad +" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:76 ++msgctxt "Key name" ++msgid "Keypad ," ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:77 ++msgctxt "Key name" ++msgid "Keypad -" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:78 ++msgctxt "Key name" ++msgid "Keypad ." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:79 ++msgctxt "Key name" ++msgid "Keypad /" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:80 ++msgctxt "Key name" ++msgid "Keypad 0" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:81 ++msgctxt "Key name" ++msgid "Keypad 1" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:82 ++msgctxt "Key name" ++msgid "Keypad 2" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:83 ++msgctxt "Key name" ++msgid "Keypad 3" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:84 ++msgctxt "Key name" ++msgid "Keypad 4" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:85 ++msgctxt "Key name" ++msgid "Keypad 5" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:86 ++msgctxt "Key name" ++msgid "Keypad 6" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:87 ++msgctxt "Key name" ++msgid "Keypad 7" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:88 ++msgctxt "Key name" ++msgid "Keypad 8" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:89 ++msgctxt "Key name" ++msgid "Keypad 9" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:73 ++msgctxt "Key name" ++msgid "Keypad =" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:70 ++msgctxt "Key name" ++msgid "Keypad Begin" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:72 ++msgctxt "Key name" ++msgid "Keypad Delete" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:66 ++msgctxt "Key name" ++msgid "Keypad Down" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:69 ++msgctxt "Key name" ++msgid "Keypad End" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:57 ++msgctxt "Key name" ++msgid "Keypad Enter" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:58 ++msgctxt "Key name" ++msgid "Keypad F1" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:59 ++msgctxt "Key name" ++msgid "Keypad F2" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:60 ++msgctxt "Key name" ++msgid "Keypad F3" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:61 ++msgctxt "Key name" ++msgid "Keypad F4" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:62 ++msgctxt "Key name" ++msgid "Keypad Home" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:71 ++msgctxt "Key name" ++msgid "Keypad Insert" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:63 ++msgctxt "Key name" ++msgid "Keypad Left" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:68 ++msgctxt "Key name" ++msgid "Keypad Page Down" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:67 ++msgctxt "Key name" ++msgid "Keypad Page Up" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:65 ++msgctxt "Key name" ++msgid "Keypad Right" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:55 ++msgctxt "Key name" ++msgid "Keypad Space" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:56 ++msgctxt "Key name" ++msgid "Keypad Tab" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:64 ++msgctxt "Key name" ++msgid "Keypad Up" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1690 ++msgid "Kimpanel process:" ++msgstr "" ++ ++#: src/ui/classic/theme.h:50 ++msgid "Last Candidate" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:112 ++msgctxt "Key name" ++msgid "Launch (0)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:113 ++msgctxt "Key name" ++msgid "Launch (1)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:114 ++msgctxt "Key name" ++msgid "Launch (2)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:115 ++msgctxt "Key name" ++msgid "Launch (3)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:116 ++msgctxt "Key name" ++msgid "Launch (4)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:117 ++msgctxt "Key name" ++msgid "Launch (5)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:118 ++msgctxt "Key name" ++msgid "Launch (6)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:119 ++msgctxt "Key name" ++msgid "Launch (7)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:120 ++msgctxt "Key name" ++msgid "Launch (8)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:121 ++msgctxt "Key name" ++msgid "Launch (9)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:122 ++msgctxt "Key name" ++msgid "Launch (A)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:123 ++msgctxt "Key name" ++msgid "Launch (B)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:124 ++msgctxt "Key name" ++msgid "Launch (C)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:125 ++msgctxt "Key name" ++msgid "Launch (D)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:126 ++msgctxt "Key name" ++msgid "Launch (E)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:127 ++msgctxt "Key name" ++msgid "Launch (F)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:111 ++msgctxt "Key name" ++msgid "Launch Mail" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:47 ++msgctxt "Key name" ++msgid "Left" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:30 ++msgctxt "Key name" ++msgid "Left Alt" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:34 ++msgctxt "Key name" ++msgid "Left Control" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:38 ++msgctxt "Key name" ++msgid "Left Hyper" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:32 ++msgctxt "Key name" ++msgid "Left Shift" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:36 ++msgctxt "Key name" ++msgid "Left Super" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:141 ++msgctxt "Key name" ++msgid "LightBulb" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:851 ++msgid "Locale:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1799 ++msgid "Log:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:168 ++msgctxt "Key name" ++msgid "Logoff" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:89 ++msgid "Long Press behavior" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:201 ++msgctxt "Key name" ++msgid "Mail Forward" ++msgstr "" ++ ++#: src/ui/classic/theme.h:118 ++msgid "Margin" ++msgstr "" ++ ++#: src/ui/classic/theme.h:80 ++msgid "Margin Bottom" ++msgstr "" ++ ++#: src/ui/classic/theme.h:74 ++msgid "Margin Left" ++msgstr "" ++ ++#: src/ui/classic/theme.h:76 ++msgid "Margin Right" ++msgstr "" ++ ++#: src/ui/classic/theme.h:78 ++msgid "Margin Top" ++msgstr "" ++ ++#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 ++msgid "Margin around all content" ++msgstr "" ++ ++#: src/ui/classic/theme.h:164 src/ui/classic/theme.h:188 ++msgid "Margin around text" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:169 ++msgctxt "Key name" ++msgid "Market" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:245 ++msgctxt "Key name" ++msgid "Massyo" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:207 ++msgctxt "Key name" ++msgid "Media Fast Forward" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:103 ++msgctxt "Key name" ++msgid "Media Next" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:105 ++msgctxt "Key name" ++msgid "Media Pause" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:100 ++msgctxt "Key name" ++msgid "Media Play" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:102 ++msgctxt "Key name" ++msgid "Media Previous" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:104 ++msgctxt "Key name" ++msgid "Media Record" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:149 ++msgctxt "Key name" ++msgid "Media Rewind" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:101 ++msgctxt "Key name" ++msgid "Media Stop" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:170 ++msgctxt "Key name" ++msgid "Meeting" ++msgstr "" ++ ++#: src/ui/classic/theme.h:202 ++msgid "Menu" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:91 ++msgctxt "Key name" ++msgid "Menu" ++msgstr "" ++ ++#: src/ui/classic/theme.h:68 ++msgid "Menu Background" ++msgstr "" ++ ++#: src/ui/classic/theme.h:68 ++msgid "Menu Border" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:122 ++msgid "Menu Font" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:172 ++msgctxt "Key name" ++msgid "Menu PB" ++msgstr "" ++ ++#: src/ui/classic/theme.h:69 ++msgid "Menu Selected Item Background" ++msgstr "" ++ ++#: src/ui/classic/theme.h:69 ++msgid "Menu Selected Item Border" ++msgstr "" ++ ++#: src/ui/classic/theme.h:70 ++msgid "Menu Separator" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:199 ++msgctxt "Key name" ++msgid "Messenger" ++msgstr "" ++ ++#: src/ui/classic/theme.h:199 ++msgid "Metadata" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:218 ++msgctxt "Key name" ++msgid "Microphone Mute" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:130 ++msgctxt "Key name" ++msgid "Monitor Brightness Down" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:128 ++msgctxt "Key name" ++msgid "Monitor Brightness Up" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:235 ++msgctxt "Key name" ++msgid "Muhenkan" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:251 ++msgctxt "Key name" ++msgid "Multiple Candidate" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:203 ++msgctxt "Key name" ++msgid "Music" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:173 ++msgctxt "Key name" ++msgid "My Sites" ++msgstr "" ++ ++#: src/ui/classic/theme.h:191 ++msgid "Name" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:223 ++msgctxt "Key name" ++msgid "New" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:174 ++msgctxt "Key name" ++msgid "News" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:48 ++msgid "Next Candidate" ++msgstr "" ++ ++#: src/ui/classic/theme.h:166 ++msgid "Next Page Button" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:27 ++msgid "No" ++msgstr "" ++ ++#: src/modules/clipboard/clipboard.cpp:355 ++msgid "No clipboard history." ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:28 ++msgid "None" ++msgstr "" ++ ++#: src/ui/classic/theme.h:135 src/ui/classic/theme.h:171 ++msgid "Normal text color" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:182 ++msgid "" ++"Normally Wayland uses 96 as font DPI in combinition with the screen scale " ++"factor. This option allows you to override the font DPI. If the value is 0, " ++"it means this option is disabled." ++msgstr "" ++ ++#: src/ui/kimpanel/kimpanel.cpp:386 ++msgid "Not available" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:733 ++msgid "Note for GNOME Later than 3.6" ++msgstr "" ++ ++#: src/modules/notifications/notifications.conf.in.in:3 ++msgid "Notification" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:54 ++msgctxt "Key name" ++msgid "NumLock" ++msgstr "" ++ ++#: src/modules/clipboard/clipboard.h:48 ++msgid "Number of entries" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:670 ++msgid "" ++"Only emoji support is found. To enable spell checking, you may need to " ++"install spell check data for the language." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:224 ++msgctxt "Key name" ++msgid "Open" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:110 ++msgctxt "Key name" ++msgid "Open URL" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:176 ++msgctxt "Key name" ++msgid "Option" ++msgstr "" ++ ++#: src/ui/classic/theme.h:120 ++msgid "Overlay Clip Margin" ++msgstr "" ++ ++#: src/ui/classic/theme.h:110 ++msgid "Overlay Image" ++msgstr "" ++ ++#: src/ui/classic/theme.h:113 ++msgid "Overlay X offset" ++msgstr "" ++ ++#: src/ui/classic/theme.h:114 ++msgid "Overlay Y offset" ++msgstr "" ++ ++#: src/ui/classic/theme.h:112 ++msgid "Overlay position" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:166 ++msgid "Override Xkb Option" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:991 ++msgid "Owner of DBus name ${1} is ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:999 ++msgid "PID of DBus name ${1} owner is ${2}." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:52 ++msgctxt "Key name" ++msgid "Page Down" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:51 ++msgctxt "Key name" ++msgid "Page Up" ++msgstr "" ++ ++#: src/ui/classic/theme.h:155 ++msgid "Page button vertical alignment" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:37 ++msgid "Page size" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:177 ++msgctxt "Key name" ++msgid "Paste" ++msgstr "" ++ ++#: src/modules/clipboard/clipboard.h:46 ++msgid "Paste Primary" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:44 ++msgctxt "Key name" ++msgid "Pause" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:178 ++msgctxt "Key name" ++msgid "Phone" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:202 ++msgctxt "Key name" ++msgid "Pictures" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:940 ++msgid "Please check ${1} for how to install fcitx5." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:962 ++msgid "" ++"Please check the Configure link of your distribution in ${1} for how to " ++"setup ${2} autostart." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:714 ++msgid "" ++"Please set environment variable ${env_name} to \"${value}\" using the tool " ++"your distribution provides or add ${1} to your ${2}. See ${link}." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:216 ++msgctxt "Key name" ++msgid "Power Down" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:135 ++msgctxt "Key name" ++msgid "Power Off" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:834 ++msgid "Preedit" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:836 ++msgid "Preedit disabled" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:835 ++msgid "Preedit enabled" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:130 src/ui/kimpanel/kimpanel.h:33 ++msgid "Prefer Text Icon" ++msgstr "" ++ ++#: src/modules/spell/spell.h:22 ++msgid "Presage" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:42 ++msgid "Prev Candidate" ++msgstr "" ++ ++#: src/ui/classic/theme.h:165 ++msgid "Prev Page Button" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:252 ++msgctxt "Key name" ++msgid "Previous Candidate" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:228 ++msgctxt "Key name" ++msgid "Print Screen" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:27 ++msgid "Program" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1249 ++msgid "Qt IM module files:" ++msgstr "" ++ ++#: src/modules/quickphrase/quickphrase.conf.in.in:3 ++msgid "Quick Phrase" ++msgstr "" ++ ++#: src/modules/quickphrase/quickphrase.cpp:472 ++msgid "Quick Phrase: " ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:219 ++msgctxt "Key name" ++msgid "Red" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:227 ++msgctxt "Key name" ++msgid "Redo" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:96 ++msgctxt "Key name" ++msgid "Refresh" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:180 ++msgctxt "Key name" ++msgid "Reload" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:179 ++msgctxt "Key name" ++msgid "Reply" ++msgstr "" ++ ++#: src/ui/classic/xcbtraywindow.cpp:39 ++#: src/modules/notificationitem/dbusmenu.cpp:259 ++msgid "Restart" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:43 ++msgctxt "Key name" ++msgid "Return" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:49 ++msgctxt "Key name" ++msgid "Right" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:31 ++msgctxt "Key name" ++msgid "Right Alt" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:35 ++msgctxt "Key name" ++msgid "Right Control" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:39 ++msgctxt "Key name" ++msgid "Right Hyper" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:33 ++msgctxt "Key name" ++msgid "Right Shift" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:37 ++msgctxt "Key name" ++msgid "Right Super" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:237 ++msgctxt "Key name" ++msgid "Romaji" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:181 ++msgctxt "Key name" ++msgid "Rotate Windows" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:183 ++msgctxt "Key name" ++msgid "Rotation KB" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:182 ++msgctxt "Key name" ++msgid "Rotation PB" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:916 ++msgid "Running as root:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:184 ++msgctxt "Key name" ++msgid "Save" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:138 ++msgctxt "Key name" ++msgid "Screensaver" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:90 ++msgctxt "Key name" ++msgid "ScrollLock" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:108 ++msgctxt "Key name" ++msgid "Search" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:233 ++msgctxt "Key name" ++msgid "Select" ++msgstr "" ++ ++#: src/modules/imselector/imselector.cpp:257 ++msgid "Select input method:" ++msgstr "" ++ ++#: src/modules/imselector/imselector.cpp:256 ++msgid "Select local input method:" ++msgstr "" ++ ++#: src/modules/imselector/imselector.conf.in.in:4 ++msgid "Select specific input method via keyboard" ++msgstr "" ++ ++#: src/ui/classic/theme.h:174 ++msgid "Selected Item text color" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:185 ++msgctxt "Key name" ++msgid "Send" ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.cpp:519 ++msgid "" ++"Sending keyboard layout configuration to wayland compositor from Fcitx is " ++"not yet supported on current desktop. You may still use Fcitx's internal " ++"layout conversion by adding layout as input method to the input method group." ++msgstr "" ++ ++#: src/ui/classic/theme.h:182 ++msgid "Separator Background" ++msgstr "" ++ ++#: src/ui/classic/theme.h:168 ++msgid "Shadow Margin" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:141 ++msgid "Share Input State" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:561 ++msgctxt "Key name" ++msgid "Shift" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:142 ++msgctxt "Key name" ++msgid "Shop" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:151 ++msgid "Show Input Method Information when changing focus" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:148 ++msgid "Show Input Method Information when switch input method" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:135 ++msgid "Show Layout Name In Icon" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:154 ++msgid "Show compact input method information" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:157 ++msgid "Show first input method information" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:139 ++msgid "" ++"Show layout name in icon if there is more than one active layout. If prefer " ++"text icon is set to true, this option will be ignored." ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:144 ++msgid "Show preedit in application" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:188 ++msgid "Show preedit text when typing password" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:77 ++msgid "" ++"Show preedit when composing, and commit dead key if there is no matching " ++"sequence." ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:64 ++msgid "Skip first input method while enumerating" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:140 ++msgctxt "Key name" ++msgid "Sleep" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:40 ++msgctxt "Key name" ++msgid "Space" ++msgstr "" ++ ++#: src/ui/classic/theme.h:176 ++msgid "Spacing" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:79 src/modules/spell/spell.conf.in.in:3 ++msgid "Spell" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:186 ++msgctxt "Key name" ++msgid "Spellchecker" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:187 ++msgctxt "Key name" ++msgid "Split Screen" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:163 ++msgctxt "Key name" ++msgid "Spreadsheet" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:109 ++msgctxt "Key name" ++msgid "Standby" ++msgstr "" ++ ++#: data/org.fcitx.Fcitx5.desktop.in.in:5 ++msgid "Start Input Method" ++msgstr "" ++ ++#: src/modules/notificationitem/notificationitem.conf.in.in:3 ++msgid "Status Notifier" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:95 ++msgctxt "Key name" ++msgid "Stop" ++msgstr "" ++ ++#: src/ui/classic/theme.h:184 ++msgid "Sub Menu" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:210 ++msgctxt "Key name" ++msgid "Subtitle" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 ++msgid "Super" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:562 ++msgctxt "Key name" ++msgid "Super" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:188 ++msgctxt "Key name" ++msgid "Support" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:217 ++msgctxt "Key name" ++msgid "Suspend" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:447 src/lib/fcitx/instance.cpp:673 ++#: src/modules/xcb/xcbconnection.cpp:522 ++msgid "Switch group" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:448 src/modules/xcb/xcbconnection.cpp:523 ++#, c++-format ++msgid "Switch group to {0}" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:674 ++#, c++-format ++msgid "Switched group to {0}" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:789 ++msgid "System Info:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:232 ++msgctxt "Key name" ++msgid "System Request" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:41 ++msgctxt "Key name" ++msgid "Tab" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:189 ++msgctxt "Key name" ++msgid "Task Panel" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:44 ++msgid "Temporally switch between first and current Input Method" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:190 ++msgctxt "Key name" ++msgid "Terminal" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1786 ++#, sh-format ++msgid "" ++"The environment variable checked by this script only shows the environment " ++"under current shell. It is still possible that you did not set the " ++"environment to the whole graphic desktop session. You may inspect the actual " ++"environment variable of a certain process by using `xargs -0 -L1 /proc/$PID/" ++"environ` for a certain process that you find not working." ++msgstr "" ++ ++#: src/modules/imselector/imselector.h:40 ++#: src/modules/imselector/imselector.h:50 ++msgid "The n-th hotkey in the list selects the n-th input method." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:895 ++msgid "The script is run as ${1} (${2})." ++msgstr "" ++ ++#: src/ui/classic/classicui.h:155 ++msgid "Theme" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:101 ++msgid "This is only effective when the tray icon is xembed." ++msgstr "" ++ ++#: src/ui/classic/theme.h:93 src/ui/classic/theme.h:101 ++msgid "This option is only effective if image is not set." ++msgstr "" ++ ++#: src/ui/classic/classicui.h:194 ++msgid "This option require support from wayland compositor." ++msgstr "" ++ ++#: src/ui/classic/classicui.h:173 ++msgid "This option will be always disabled on XWayland." ++msgstr "" ++ ++#: src/ui/classic/theme.h:109 ++msgid "This value should be less than any of margin value." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1805 ++msgid "" ++"Though such information can be helpful to developers for diagnostic purpose, " ++"please double check and remove as necessary before posting it online " ++"publicly." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:212 ++msgctxt "Key name" ++msgid "Time" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:750 ++#, sh-format ++msgid "" ++"To see some application specific problems you may have when using xim, check " ++"${link1}. For other more general problems of using XIM including application " ++"freezing, see ${link2}." ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:132 ++msgid "Toggle embedded preedit" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:191 ++msgctxt "Key name" ++msgid "Tools" ++msgstr "" ++ ++#: src/ui/classic/theme.h:48 ++msgid "Top" ++msgstr "" ++ ++#: src/ui/classic/theme.h:35 ++msgid "Top Center" ++msgstr "" ++ ++#: src/ui/classic/theme.h:35 ++msgid "Top Left" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:215 ++msgctxt "Key name" ++msgid "Top Menu" ++msgstr "" ++ ++#: src/ui/classic/theme.h:36 ++msgid "Top Right" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:268 ++msgctxt "Key name" ++msgid "Touchpad Off" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:267 ++msgctxt "Key name" ++msgid "Touchpad On" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:266 ++msgctxt "Key name" ++msgid "Touchpad Toggle" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:244 ++msgctxt "Key name" ++msgid "Touroku" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:192 ++msgctxt "Key name" ++msgid "Travel" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:124 ++msgid "Tray Font" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:126 ++msgid "Tray Label Outline Color" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:129 ++msgid "Tray Label Text Color" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:34 ++msgid "Trigger Input Method" ++msgstr "" ++ ++#: src/modules/imselector/imselector.h:25 ++#: src/modules/quickphrase/quickphrase.h:36 src/modules/unicode/unicode.h:31 ++#: src/modules/clipboard/clipboard.h:42 ++msgid "Trigger Key" ++msgstr "" ++ ++#: src/modules/imselector/imselector.h:29 ++msgid "Trigger Key for only current input context" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:62 ++msgid "Trigger hint mode" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:67 ++msgid "Trigger hint mode for one time" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:82 ++msgid "Type special characters with long press" ++msgstr "" ++ ++#: src/modules/unicode/unicode.h:36 ++msgid "Type unicode in Hex number" ++msgstr "" ++ ++#: data/org.fcitx.Fcitx5.metainfo.xml.in:22 ++msgid "Typing with Fcitx and Kimpanel" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1011 ++msgid "Unable to find a program to check dbus." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:226 ++msgctxt "Key name" ++msgid "Undo" ++msgstr "" ++ ++#: src/modules/unicode/unicode.conf.in.in:3 ++msgid "Unicode" ++msgstr "" ++ ++#: src/modules/unicode/unicode.cpp:456 ++msgid "Unicode: " ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:48 ++msgctxt "Key name" ++msgid "Up" ++msgstr "" ++ ++#: src/frontend/xim/xim.h:33 ++msgid "Use On The Spot Style (Needs restarting)" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:169 ++msgid "Use Per Screen DPI on X11" ++msgstr "" ++ ++#: src/ui/classic/theme.h:151 ++msgid "Use all horizontal space for highlight when it is vertical list" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:146 ++msgid "Use input method language to display text" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:116 ++msgid "Use mouse wheel to go to prev or next page" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:73 ++msgid "Use new compose behavior" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1677 ++msgid "User Interface:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:986 ++msgid "Using ${1} to check dbus." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:256 ++msgid "" ++"Using ${1} to check the actual im module to be used under current " ++"environment:" ++msgstr "" ++ ++#: src/ui/classic/theme.h:192 ++msgid "Version" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1405 data/fcitx5-diagnose.sh:1489 ++msgid "Version Line:" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:114 ++msgid "Vertical Candidate List" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:193 ++msgctxt "Key name" ++msgid "Video" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:214 ++msgctxt "Key name" ++msgid "View" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:97 ++msgctxt "Key name" ++msgid "Volume Down" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:98 ++msgctxt "Key name" ++msgid "Volume Mute" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:99 ++msgctxt "Key name" ++msgid "Volume Up" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:139 ++msgctxt "Key name" ++msgid "WWW" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:136 ++msgctxt "Key name" ++msgid "Wake Up" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1804 ++msgid "" ++"Warning: the output of fcitx5-diagnose contains sensitive information, " ++"including the distribution name, kernel version, name of currently running " ++"programs, etc." ++msgstr "" ++ ++#: src/modules/wayland/wayland.conf.in.in:3 ++msgid "Wayland" ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.cpp:449 ++msgid "Wayland Diagnose" ++msgstr "" ++ ++#: src/frontend/waylandim/waylandim.conf.in.in:3 ++msgid "Wayland Input method frontend" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:200 ++msgctxt "Key name" ++msgid "WebCam" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:170 ++msgid "" ++"Whether to override the xkb option from display server. It will not affect " ++"the xkb option send to display, but just the xkb options for custom xkb " ++"layout." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:926 ++msgid "Why is it bad to run as root" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:206 ++msgctxt "Key name" ++msgid "Wireless" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:194 ++msgctxt "Key name" ++msgid "Word Processor" ++msgstr "" ++ ++#: src/frontend/xim/xim.conf.in.in:3 ++msgid "X Input Method Frontend" ++msgstr "" ++ ++#: src/modules/xcb/xcb.conf.in.in:3 ++msgid "XCB" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:825 ++msgid "XDG SESSION TYPE:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:195 ++msgctxt "Key name" ++msgid "XFer" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1188 ++msgid "XIM encoding:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1183 ++msgid "XIM for Emacs:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1159 ++msgid "XIM_SERVERS on root window:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1136 ++msgid "XMODIFIERS is not set" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1157 ++msgid "Xim Server Name from Environment variable is ${1}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1169 ++msgid "Xim server name is the same with that set in the environment variable." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1171 ++msgid "" ++"Xim server name: \"${1}\" is different from that set in the environment " ++"variable: \"${2}\"." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:221 ++msgctxt "Key name" ++msgid "Yellow" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:924 ++msgid "" ++"You are probably logging in as ${1} or using ${2} to run this script. This " ++"either means you have security problems or the result of this script may not " ++"be accurate. See ${3} or ${4} for more information." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:919 ++msgid "" ++"You are probably using ${1} to run this script. This means the result of " ++"this script may not be accurate. See ${2} for more information." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1213 ++msgid "You are using xim in ${1} programs." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1218 ++msgid "You may have trouble using fcitx in ${1} programs." ++msgstr "" ++ ++#: data/fcitx5-configtool.sh:134 ++msgid "" ++"You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be " ++"found. Now it will open config directory." ++msgstr "" ++ ++#: data/fcitx5-configtool.sh:131 ++msgid "" ++"You're currently running KDE, but KCModule for fcitx couldn't be found, the " ++"package name of this KCModule is usually kcm-fcitx or kde-config-fcitx. Now " ++"it will open config directory." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1185 ++msgid "" ++"Your LC_CTYPE is set to ${1} instead of one of zh, ja, ko. You may not be " ++"able to use input method in emacs because of an really old emacs bug that " ++"upstream refuse to fix for years." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1190 ++msgid "" ++"Your LC_CTYPE is set to ${1} whose encoding is not UTF-8. You may have " ++"trouble committing strings using XIM." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:241 ++msgctxt "Key name" ++msgid "Zenkaku" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:243 ++msgctxt "Key name" ++msgid "Zenkaku Hankaku" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:196 ++msgctxt "Key name" ++msgid "Zoom In" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:197 ++msgctxt "Key name" ++msgid "Zoom Out" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:936 ++msgid "executable:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:757 ++msgid "here" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:167 ++msgctxt "Key name" ++msgid "iTouch" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:950 ++msgid "process:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:921 data/fcitx5-diagnose.sh:927 ++msgid "sudo environment variables" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:946 ++msgid "version:" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:292 ++#, c++-format ++msgid "{0} (Not Available)" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:405 ++#, c++-format ++msgid "{0} (Not available)" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:402 ++#, c++-format ++msgid "{0} ({1})" ++msgstr "" +diff --git a/po/ky.po b/po/ky.po +new file mode 100644 +index 0000000..19cd76e +--- /dev/null ++++ b/po/ky.po +@@ -0,0 +1,2942 @@ ++# SOME DESCRIPTIVE TITLE. ++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER ++# This file is distributed under the same license as the fcitx5 package. ++# ++# Translators: ++# wwj402 <wwj402@gmail.com>, 2017 ++# rocka, 2023 ++# Lau YeeYu, 2023 ++# csslayer <wengxt@gmail.com>, 2023 ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: fcitx5\n" ++"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" ++"POT-Creation-Date: 2023-10-19 05:51+0000\n" ++"PO-Revision-Date: 2017-11-23 04:14+0000\n" ++"Last-Translator: Automatically generated\n" ++"Language-Team: none\n" ++"Language: ky\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Plural-Forms: nplurals=2; plural=n != 1;\n" ++ ++#: data/fcitx5-diagnose.sh:900 ++msgid "${1} Environment Variables:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:886 ++msgid "${1} Settings Directory:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:960 ++msgid "${1} is not running." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:909 ++msgid "${1} is not set." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:906 ++msgid "${1} is set to ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:565 ++msgid "${1} not found." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:977 ++msgid "${1} works properly." ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:407 ++msgid "(Not available)" ++msgstr "" ++ ++#: src/modules/unicode/unicode.cpp:458 ++msgid "(Type to search unicode by code or description)" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:707 ++msgid "/Beginner%27s_Guide" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:754 ++msgid "/Hall_of_Shame_for_Linux_IME_Support" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:718 ++msgid "/Input_method_related_environment_variables" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:734 ++msgid "/Note_for_GNOME_Later_than_3.6" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:758 ++msgid "/XIM" ++msgstr "" ++ ++#: src/modules/unicode/charselectdata.cpp:215 ++msgid "<Low Surrogate>" ++msgstr "" ++ ++#: src/modules/unicode/charselectdata.cpp:211 ++msgid "<Non Private Use High Surrogate>" ++msgstr "" ++ ++#: src/modules/unicode/charselectdata.cpp:213 ++msgid "<Private Use High Surrogate>" ++msgstr "" ++ ++#: src/modules/unicode/charselectdata.cpp:217 ++msgid "<Private Use>" ++msgstr "" ++ ++#: src/modules/unicode/charselectdata.cpp:247 ++msgid "<not assigned>" ++msgstr "" ++ ++#: src/ui/virtualkeyboard/virtualkeyboard.conf.in.in:4 ++msgid "A virtual keyboard backend based on DBus" ++msgstr "" ++ ++#: src/ui/classic/theme.h:204 ++msgid "Accent Colors" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:82 ++msgid "Activate Input Method" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:138 ++msgid "Active By Default" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:144 ++msgctxt "Key name" ++msgid "Add Favorite" ++msgstr "" ++ ++#: src/modules/unicode/unicode.conf.in.in:4 ++msgid "Add Unicode Typing Support" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1565 ++msgid "Addon Config Dir:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1650 ++msgid "Addon Libraries:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1593 ++msgid "Addon List:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:146 ++msgctxt "Key name" ++msgid "Adjust Brightness" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:26 ++msgid "All" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1367 ++msgid "All found Gtk ${1} immodule files exist." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1676 ++msgid "All libraries for all addons are found." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:854 ++msgid "All locales:" ++msgstr "" ++ ++#: src/modules/xcb/xcbmodule.h:30 ++msgid "Allow Overriding System XKB Settings" ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.h:34 ++msgid "Allow Overriding System XKB Settings (Only support KDE 5)" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:185 ++msgid "Allow input method in the password field" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:29 ++msgid "Alt" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:560 ++msgctxt "Key name" ++msgid "Alt" ++msgstr "" ++ ++#: src/modules/xcb/xcbmodule.h:33 ++msgid "Always set layout to be only group layout" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:151 ++msgctxt "Key name" ++msgid "Application Left" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:152 ++msgctxt "Key name" ++msgid "Application Right" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:87 ++msgid "Applications disabled for long press" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:211 ++msgctxt "Key name" ++msgid "Audio Cycle Track" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:209 ++msgctxt "Key name" ++msgid "Audio Random Play" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:208 ++msgctxt "Key name" ++msgid "Audio Repeat" ++msgstr "" ++ ++#: src/ui/classic/theme.h:193 ++msgid "Author" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:198 ++msgctxt "Key name" ++msgid "Away" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:93 ++msgctxt "Key name" ++msgid "Back" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:150 ++msgctxt "Key name" ++msgid "Back Forward" ++msgstr "" ++ ++#: src/modules/spell/spell.h:38 ++msgid "Backends" ++msgstr "" ++ ++#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 ++msgid "Background" ++msgstr "" ++ ++#: src/ui/classic/theme.h:85 ++msgid "Background Image" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:42 ++msgctxt "Key name" ++msgid "Backspace" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:827 ++msgid "Bash Version:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:204 ++msgctxt "Key name" ++msgid "Battery" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:706 ++msgid "Beginner's Guide" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:202 ++msgid "Behavior" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:222 ++msgctxt "Key name" ++msgid "Blue" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:205 ++msgctxt "Key name" ++msgid "Bluetooth" ++msgstr "" ++ ++#: src/ui/classic/theme.h:148 ++msgid "Blur Margin" ++msgstr "" ++ ++#: src/ui/classic/theme.h:147 ++msgid "Blur mask" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:153 ++msgctxt "Key name" ++msgid "Book" ++msgstr "" ++ ++#: src/ui/classic/theme.h:97 ++msgid "Border Color" ++msgstr "" ++ ++#: src/ui/classic/theme.h:105 ++msgid "Border width" ++msgstr "" ++ ++#: src/ui/classic/theme.h:50 ++msgid "Bottom" ++msgstr "" ++ ++#: src/ui/classic/theme.h:38 ++msgid "Bottom Center" ++msgstr "" ++ ++#: src/ui/classic/theme.h:38 ++msgid "Bottom Left" ++msgstr "" ++ ++#: src/ui/classic/theme.h:39 ++msgid "Bottom Right" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:164 ++msgctxt "Key name" ++msgid "Browser" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:154 ++msgctxt "Key name" ++msgid "CD" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:155 ++msgctxt "Key name" ++msgid "Calculator" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:264 ++msgctxt "Key name" ++msgid "Cancel" ++msgstr "" ++ ++#: src/im/keyboard/longpress.h:19 ++msgid "Candidates" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:975 ++msgid "Cannot connect to ${1} correctly." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:820 ++msgid "Cannot determine desktop environment." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1584 ++msgid "Cannot find ${1} addon config directory." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1099 ++msgid "Cannot find ${1} executable!" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1517 ++msgid "Cannot find ${1} im module for gtk ${2} in cache." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1434 ++msgid "Cannot find ${1} im module for gtk ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1288 data/fcitx5-diagnose.sh:1293 ++#: data/fcitx5-diagnose.sh:1298 ++msgid "Cannot find ${1} input method module for ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1428 ++msgid "Cannot find ${2} for gtk ${1}" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:995 ++msgid "Cannot find DBus name ${1} owner." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1109 ++msgid "Cannot find a GUI config tool, please install one of ${1}, or ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1679 ++msgid "Cannot find enabled ${1} user interface!" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:938 ++msgid "Cannot find fcitx5 executable!" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1658 ++msgid "Cannot find file ${1} of addon ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1668 ++msgid "Cannot find following required libraries for ${1} of addon ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1512 ++msgid "Cannot find immodules cache for gtk ${1}" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1698 ++msgid "" ++"Cannot find kimpanel dbus interface or enabled non-kimpanel user interface." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1003 ++msgid "Cannot find pid of DBus name ${1} owner." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1175 ++msgid "Cannot find xim_server on root window." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1149 ++msgid "Cannot interpret XMODIFIERS: ${1}." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:53 ++msgctxt "Key name" ++msgid "CapsLock" ++msgstr "" ++ ++#: src/ui/classic/theme.h:37 src/ui/classic/theme.h:49 ++msgid "Center" ++msgstr "" ++ ++#: src/ui/classic/theme.h:36 ++msgid "Center Left" ++msgstr "" ++ ++#: src/ui/classic/theme.h:37 ++msgid "Center Right" ++msgstr "" ++ ++#: data/fcitx5-configtool.desktop.in.in:5 ++msgid "Change Fcitx 5 Configuration" ++msgstr "" ++ ++#: src/ui/classic/theme.h:183 ++msgid "Check box" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:56 src/modules/quickphrase/quickphrase.h:41 ++msgid "Choose key modifier" ++msgstr "" ++ ++#: src/ui/classic/classicui.conf.in.in:3 ++msgid "Classic User Interface" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:156 ++msgctxt "Key name" ++msgid "Clear" ++msgstr "" ++ ++#: src/ui/classic/theme.h:131 ++msgid "Click Margin" ++msgstr "" ++ ++#: src/modules/clipboard/clipboard.conf.in.in:3 ++msgid "Clipboard" ++msgstr "" ++ ++#: src/modules/clipboard/clipboard.cpp:353 ++msgid "Clipboard (Press BackSpace/Delete to clear history):" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:157 ++msgctxt "Key name" ++msgid "Close" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:250 ++msgctxt "Key name" ++msgid "Code input" ++msgstr "" ++ ++#: src/ui/classic/theme.h:89 ++msgid "Color" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:148 ++msgctxt "Key name" ++msgid "Community" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:685 ++msgid "Completion" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:676 ++msgid "Completion is disabled." ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:679 ++msgid "Completion is enabled temporarily." ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:681 ++msgid "Completion is enabled." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1051 ++msgid "Config GUI for gtk${1} not found." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1047 ++msgid "Config GUI for gtk${1}:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1081 ++msgid "Config GUI for kde:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1070 ++msgid "Config GUI for qt not found." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1068 ++msgid "Config GUI for qt:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1097 ++msgid "Config Tool Wrapper:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1793 ++msgid "Configuration:" ++msgstr "" ++ ++#: src/ui/classic/xcbtraywindow.cpp:38 ++#: src/modules/notificationitem/dbusmenu.cpp:251 ++msgid "Configure" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 ++msgid "Control" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:559 ++msgctxt "Key name" ++msgid "Control" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:158 ++msgctxt "Key name" ++msgid "Copy" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:888 ++msgid "Current ${1} settings directory is ${2} (${3})." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:856 ++msgid "Current locale:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:894 ++msgid "Current user:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:882 ++msgid "Current value of ${1} is ${2} (${3})." ++msgstr "" ++ ++#: src/modules/spell/spell.h:22 ++msgid "Custom" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:175 ++msgid "Custom Xkb Option" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:159 ++msgctxt "Key name" ++msgid "Cut" ++msgstr "" ++ ++#: src/modules/dbus/dbus.conf.in.in:3 ++msgid "DBus" ++msgstr "" ++ ++#: src/frontend/dbusfrontend/dbusfrontend.conf.in.in:3 ++msgid "DBus Frontend" ++msgstr "" ++ ++#: src/ui/virtualkeyboard/virtualkeyboard.conf.in.in:3 ++msgid "DBus Virtual Keyboard" ++msgstr "" ++ ++#: src/modules/notificationitem/notificationitem.conf.in.in:4 ++msgid "DBus based new Freedesktop.org tray icon" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:983 ++msgid "DBus interface:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:161 ++msgctxt "Key name" ++msgid "DOS" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:158 ++msgid "Dark Theme" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:91 ++msgid "Deactivate Input Method" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1007 ++msgid "Debug information from dbus:" ++msgstr "" ++ ++#: src/lib/fcitx/inputmethodmanager.cpp:138 src/lib/fcitx/instance.cpp:354 ++#: src/ui/classic/themes/default/theme.conf.in:3 ++msgid "Default" ++msgstr "" ++ ++#: src/ui/classic/themes/default-dark/theme-dark.conf.in:3 ++msgid "Default Dark" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:127 ++msgid "Default Next Candidate" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:111 ++msgid "Default Next page" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:121 ++msgid "Default Previous Candidate" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:99 ++msgid "Default Previous page" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:159 ++msgid "Default page size" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:230 ++msgctxt "Key name" ++msgid "Delete" ++msgstr "" ++ ++#: src/ui/classic/theme.h:195 ++msgid "Description" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:817 ++msgid "Desktop Environment:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:822 ++msgid "Desktop environment is ${1}." ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.cpp:476 ++msgid "" ++"Detect GTK_IM_MODULE and QT_IM_MODULE being set and Wayland Input method " ++"frontend is working. It is recommended to unset GTK_IM_MODULE and " ++"QT_IM_MODULE and use Wayland input method frontend instead. For more details " ++"see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma" ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.cpp:504 ++msgid "" ++"Detect GTK_IM_MODULE being set and Wayland Input method frontend is working. " ++"It is recommended to unset GTK_IM_MODULE and use Wayland input method " ++"frontend instead." ++msgstr "" ++ ++#: src/frontend/waylandim/waylandim.h:27 ++msgid "Detect current running application (Need restart)" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:868 ++msgid "Directories:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:160 ++msgctxt "Key name" ++msgid "Display" ++msgstr "" ++ ++#: src/modules/notifications/notifications.cpp:204 ++msgid "Do not show again" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:162 ++msgctxt "Key name" ++msgid "Documents" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:50 ++msgctxt "Key name" ++msgid "Down" ++msgstr "" ++ ++#: src/modules/quickphrase/quickphrase.h:47 ++msgid "Editor" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:248 ++msgctxt "Key name" ++msgid "Eisu Shift" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:249 ++msgctxt "Key name" ++msgid "Eisu toggle" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:137 ++msgctxt "Key name" ++msgid "Eject" ++msgstr "" ++ ++#: src/modules/emoji/emoji.conf.in.in:3 ++msgid "Emoji" ++msgstr "" ++ ++#: src/im/keyboard/longpress.h:17 ++msgid "Enable" ++msgstr "" ++ ++#: src/ui/classic/theme.h:145 ++msgid "Enable Blur on KWin" ++msgstr "" ++ ++#: src/modules/quickphrase/quickphrase.h:43 ++msgid "Enable Spell check" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:51 ++msgid "Enable emoji in hint" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:54 ++msgid "Enable emoji in quickphrase" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:190 ++msgid "Enable fractional scale under Wayland" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:59 ++msgid "Enable hint by default" ++msgstr "" ++ ++#: src/modules/spell/spell.h:23 ++msgid "Enchant" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:46 ++msgctxt "Key name" ++msgid "End" ++msgstr "" ++ ++#: src/im/keyboard/longpress.h:26 ++msgid "Entries" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:58 ++msgid "Enumerate Input Method Backward" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:51 ++msgid "Enumerate Input Method Forward" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:75 ++msgid "Enumerate Input Method Group Backward" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:68 ++msgid "Enumerate Input Method Group Forward" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:40 ++msgid "Enumerate when press trigger key repeatedly" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1127 ++msgid "" ++"Environment variable ${1} is \"${2}\" instead of \"${3}\". Please check if " ++"you have exported it incorrectly in any of your init files." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:874 ++msgid "Environment variable ${1} is not set." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1121 ++msgid "Environment variable ${1} is set to \"${2}\" correctly." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:878 ++msgid "Environment variable ${1} is set to ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:832 ++msgid "Environment:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:860 ++msgid "Error occurs when running ${1}. Please check your locale settings." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:231 ++msgctxt "Key name" ++msgid "Escape" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:265 ++msgctxt "Key name" ++msgid "Execute" ++msgstr "" ++ ++#: src/ui/classic/xcbtraywindow.cpp:40 ++#: src/modules/notificationitem/dbusmenu.cpp:265 ++msgid "Exit" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1506 ++msgid "Failed to find ${1} in immodule cache at ${2}" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1422 ++msgid "Failed to find ${1} in the output of ${2}" ++msgstr "" ++ ++#: src/modules/quickphrase/quickphrase.h:45 ++msgid "Fallback Spell check language" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:107 ++msgctxt "Key name" ++msgid "Favorites" ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.cpp:449 ++msgid "Fcitx" ++msgstr "" ++ ++#: data/org.fcitx.Fcitx5.desktop.in.in:3 ++#: data/org.fcitx.Fcitx5.metainfo.xml.in:6 ++msgid "Fcitx 5" ++msgstr "" ++ ++#: data/fcitx5-configtool.desktop.in.in:3 ++msgid "Fcitx 5 Configuration" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1564 ++msgid "Fcitx Addons:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1096 ++msgid "Fcitx Configure UI:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:935 ++msgid "Fcitx State:" ++msgstr "" ++ ++#: data/org.fcitx.Fcitx5.metainfo.xml.in:9 ++msgid "" ++"Fcitx is an input method framework. It can help you to type your own " ++"language. It also features variant choice of addons that improve your typing " ++"experience." ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.cpp:463 ++msgid "" ++"Fcitx should be launched by KWin under KDE Wayland in order to use Wayland " ++"input method frontend. This can improve the experience when using Fcitx on " ++"Wayland. To configure this, you need to go to \"System Settings\" -> " ++"\"Virtual keyboard\" and select \"Fcitx 5\" from it. You may also need to " ++"disable tools that launches input method, such as imsettings on Fedora, or " ++"im-config on Debian/Ubuntu. For more details see https://fcitx-im.org/wiki/" ++"Using_Fcitx_5_on_Wayland#KDE_Plasma" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:949 ++msgid "Fcitx version: ${1}" ++msgstr "" ++ ++#: src/frontend/fcitx4frontend/fcitx4frontend.conf.in.in:3 ++msgid "Fcitx4 Frontend" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:147 ++msgctxt "Key name" ++msgid "Finance" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:225 ++msgctxt "Key name" ++msgid "Find" ++msgstr "" ++ ++#: src/ui/classic/theme.h:49 ++msgid "First Candidate" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:164 ++msgid "Follow system accent color if it is supported by theme and desktop" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:160 ++msgid "Follow system light/dark color scheme" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1284 ++msgid "" ++"Following error may not be accurate because guessing Qt version from path " ++"depends on how your distribution packages Qt. It is not a critical error if " ++"you do not use any Qt application with certain version of Qt or you are " ++"using text-input support by Qt under Wayland." ++msgstr "" ++ ++#: src/ui/classic/classicui.h:120 ++msgid "Font" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:150 ++msgid "" ++"For example, display character with Chinese variant when using Pinyin and " ++"Japanese variant when using Anthy. The font configuration needs to support " ++"this to use this feature." ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.cpp:530 ++msgid "For more details see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:178 ++msgid "Force font DPI on Wayland" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:94 ++msgctxt "Key name" ++msgid "Forward" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1276 ++msgid "Found ${1} ${2} module: ${3}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:969 ++msgid "Found ${1} ${2} process:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:967 ++msgid "Found ${1} ${2} processes:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1587 ++msgid "Found ${1} addon config directory: ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:944 data/fcitx5-diagnose.sh:1060 ++#: data/fcitx5-diagnose.sh:1073 data/fcitx5-diagnose.sh:1101 ++msgid "Found ${1} at ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1640 ++msgid "Found ${1} disabled addons:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1631 ++msgid "Found ${1} enabled addons:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1681 ++msgid "Found ${1} enabled user interface addons:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1416 data/fcitx5-diagnose.sh:1500 ++msgid "Found ${1} im modules for gtk ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1087 ++msgid "Found ${1} kcm module." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1408 ++msgid "Found ${2} for unknown gtk version at ${1}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1400 ++msgid "Found ${3} for gtk ${1} at ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1263 data/fcitx5-diagnose.sh:1268 ++msgid "Found ${3} im module for ${2}: ${1}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1493 ++msgid "Found immodule cache for unknown gtk version at ${1}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1485 ++msgid "Found immodules cache for gtk ${1} at ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1279 ++msgid "Found unknown ${1} qt module: ${2}." ++msgstr "" ++ ++#: src/modules/notifications/notifications.conf.in.in:4 ++msgid "Freedesktop.org Notification Support" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1785 ++msgid "Frontends setup:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:165 ++msgctxt "Key name" ++msgid "Game" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:166 ++msgctxt "Key name" ++msgid "Go" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:220 ++msgctxt "Key name" ++msgid "Green" ++msgstr "" ++ ++#: src/ui/classic/xcbtraywindow.cpp:36 ++#: src/modules/notificationitem/dbusmenu.cpp:241 ++msgid "Group" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:411 ++#, c++-format ++msgid "Group {0}: {1}" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:356 ++#, c++-format ++msgid "Group {}" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1361 ++msgid "Gtk ${1} immodule file ${2} does not exist." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1545 ++msgid "Gtk IM module cache:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1550 ++msgid "Gtk IM module files:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:753 ++msgid "Hall of Shame for Linux IME Support" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:253 ++msgctxt "Key name" ++msgid "Hangul" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:260 ++msgctxt "Key name" ++msgid "Hangul Banja" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:255 ++msgctxt "Key name" ++msgid "Hangul End" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:256 ++msgctxt "Key name" ++msgid "Hangul Hanja" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:257 ++msgctxt "Key name" ++msgid "Hangul Jamo" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:259 ++msgctxt "Key name" ++msgid "Hangul Jeonja" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:262 ++msgctxt "Key name" ++msgid "Hangul PostHanja" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:261 ++msgctxt "Key name" ++msgid "Hangul PreHanja" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:258 ++msgctxt "Key name" ++msgid "Hangul Romaja" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:263 ++msgctxt "Key name" ++msgid "Hangul Special" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:254 ++msgctxt "Key name" ++msgid "Hangul Start" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:242 ++msgctxt "Key name" ++msgid "Hankaku" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:92 ++msgctxt "Key name" ++msgid "Help" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:236 ++msgctxt "Key name" ++msgid "Henkan" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:213 ++msgctxt "Key name" ++msgid "Hibernate" ++msgstr "" ++ ++#: src/modules/notifications/notifications.h:28 ++msgid "Hidden Notifications" ++msgstr "" ++ ++#: src/ui/classic/theme.h:116 ++msgid "Hide overlay if size does not fit" ++msgstr "" ++ ++#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:180 ++msgid "Highlight Background" ++msgstr "" ++ ++#: src/ui/classic/theme.h:140 ++msgid "Highlight Background color" ++msgstr "" ++ ++#: src/ui/classic/theme.h:143 ++msgid "Highlight Candidate Color" ++msgstr "" ++ ++#: src/ui/classic/theme.h:126 ++msgid "Highlight Click Margin" ++msgstr "" ++ ++#: src/ui/classic/theme.h:138 ++msgid "Highlight text color" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:238 ++msgctxt "Key name" ++msgid "Hiragana" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:240 ++msgctxt "Key name" ++msgid "Hiragana Katakana" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:143 ++msgctxt "Key name" ++msgid "History" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:45 ++msgctxt "Key name" ++msgid "Home" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:175 ++msgctxt "Key name" ++msgid "Home Office" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:106 ++msgctxt "Key name" ++msgid "Home Page" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:870 ++msgid "Home:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:145 ++msgctxt "Key name" ++msgid "Hot Links" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:200 ++msgid "Hotkey" ++msgstr "" ++ ++#: src/modules/imselector/imselector.h:35 ++msgid "Hotkey for switching to the N-th input method" ++msgstr "" ++ ++#: src/modules/imselector/imselector.h:44 ++msgid "" ++"Hotkey for switching to the N-th input method for only current input context" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:564 ++msgctxt "Key name" ++msgid "Hyper" ++msgstr "" ++ ++#: src/frontend/ibusfrontend/ibusfrontend.conf.in.in:3 ++msgid "IBus Frontend" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:196 ++msgid "" ++"If value is 0, the user data may only be saved when fcitx quits (e.g. " ++"logout)." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:742 ++msgid "" ++"If you are using ${1}, you may want to uninstall ${2} or remove ${3} in " ++"order to use any input method other than ${2}. See ${link} for more detail " ++"as well as alternative solutions." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:740 ++msgid "" ++"If you are using ${1}, you may want to uninstall ${2}, remove ${3} or use " ++"the command ${g36_disable_ibus} to disable IBus integration in order to use " ++"any input method other than ${2}. See ${link} for more detail." ++msgstr "" ++ ++#: src/ui/classic/theme.h:129 ++msgid "Image" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:684 src/lib/fcitx/instance.cpp:446 ++#: src/lib/fcitx/instance.cpp:672 src/lib/fcitx/instance.cpp:834 ++#: src/modules/notificationitem/notificationitem.cpp:147 ++#: src/modules/notificationitem/notificationitem.cpp:235 ++#: src/modules/xcb/xcbconnection.cpp:521 data/org.fcitx.Fcitx5.desktop.in.in:4 ++#: data/org.fcitx.Fcitx5.metainfo.xml.in:7 ++msgid "Input Method" ++msgstr "" ++ ++#: data/fcitx5-configtool.desktop.in.in:4 ++msgid "Input Method Configuration" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:717 ++msgid "Input Method Related Environment Variables: " ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1704 ++msgid "Input Methods:" ++msgstr "" ++ ++#: src/ui/classic/theme.h:201 ++msgid "Input Panel" ++msgstr "" ++ ++#: src/ui/classic/theme.h:65 ++msgid "Input Panel Background" ++msgstr "" ++ ++#: src/ui/classic/theme.h:65 ++msgid "Input Panel Border" ++msgstr "" ++ ++#: src/ui/classic/theme.h:67 ++msgid "Input Panel Highlight" ++msgstr "" ++ ++#: src/ui/classic/theme.h:66 ++msgid "Input Panel Highlight Candidate Background" ++msgstr "" ++ ++#: src/ui/classic/theme.h:67 ++msgid "Input Panel Highlight Candidate Border" ++msgstr "" ++ ++#: src/modules/imselector/imselector.conf.in.in:3 ++msgid "Input method selector" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:103 src/lib/fcitx/globalconfig.cpp:115 ++msgid "" ++"Input methods may have different setup in their own configuration. This is " ++"commonly used by modules like clipboard or quickphrase." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:229 ++msgctxt "Key name" ++msgid "Insert" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:192 ++msgid "Interval of saving user data in minutes" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1599 ++msgid "Invalid addon config file ${1}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1205 ++msgid "" ++"It is OK to use ${1} built-in Wayland im module if your compositor fully " ++"supports text-input protocol used by ${1}." ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.cpp:488 ++msgid "" ++"It is recommended to install Input Method Panel GNOME Shell Extensions to " ++"provide the input method popup. https://extensions.gnome.org/extension/261/" ++"kimpanel/ Otherwise you may not be able to see input method popup when " ++"typing in GNOME Shell's activities search box. For more details see https://" ++"fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#GNOME" ++msgstr "" ++ ++#: src/ui/kimpanel/kimpanel.conf.in.in:3 ++msgid "KDE Input Method Panel" ++msgstr "" ++ ++#: src/ui/classic/classicui.cpp:260 ++msgid "KDE Plasma (Experimental)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:246 ++msgctxt "Key name" ++msgid "Kana Lock" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:247 ++msgctxt "Key name" ++msgid "Kana Shift" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:234 ++msgctxt "Key name" ++msgid "Kanji" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:239 ++msgctxt "Key name" ++msgid "Katakana" ++msgstr "" ++ ++#: src/im/keyboard/longpress.h:16 ++msgid "Key" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:315 src/im/keyboard/keyboard.conf.in.in:3 ++msgid "Keyboard" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:231 ++#, c++-format ++msgid "Keyboard - {0}" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:250 ++#, c++-format ++msgid "Keyboard - {0} - {1}" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:134 ++msgctxt "Key name" ++msgid "Keyboard Brightness Down" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:132 ++msgctxt "Key name" ++msgid "Keyboard Brightness Up" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:836 ++msgid "Keyboard Layout:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:131 ++msgctxt "Key name" ++msgid "Keyboard Light On/Off" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:171 ++msgctxt "Key name" ++msgid "Keyboard Menu" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:74 ++msgctxt "Key name" ++msgid "Keypad *" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:75 ++msgctxt "Key name" ++msgid "Keypad +" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:76 ++msgctxt "Key name" ++msgid "Keypad ," ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:77 ++msgctxt "Key name" ++msgid "Keypad -" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:78 ++msgctxt "Key name" ++msgid "Keypad ." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:79 ++msgctxt "Key name" ++msgid "Keypad /" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:80 ++msgctxt "Key name" ++msgid "Keypad 0" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:81 ++msgctxt "Key name" ++msgid "Keypad 1" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:82 ++msgctxt "Key name" ++msgid "Keypad 2" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:83 ++msgctxt "Key name" ++msgid "Keypad 3" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:84 ++msgctxt "Key name" ++msgid "Keypad 4" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:85 ++msgctxt "Key name" ++msgid "Keypad 5" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:86 ++msgctxt "Key name" ++msgid "Keypad 6" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:87 ++msgctxt "Key name" ++msgid "Keypad 7" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:88 ++msgctxt "Key name" ++msgid "Keypad 8" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:89 ++msgctxt "Key name" ++msgid "Keypad 9" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:73 ++msgctxt "Key name" ++msgid "Keypad =" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:70 ++msgctxt "Key name" ++msgid "Keypad Begin" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:72 ++msgctxt "Key name" ++msgid "Keypad Delete" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:66 ++msgctxt "Key name" ++msgid "Keypad Down" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:69 ++msgctxt "Key name" ++msgid "Keypad End" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:57 ++msgctxt "Key name" ++msgid "Keypad Enter" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:58 ++msgctxt "Key name" ++msgid "Keypad F1" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:59 ++msgctxt "Key name" ++msgid "Keypad F2" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:60 ++msgctxt "Key name" ++msgid "Keypad F3" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:61 ++msgctxt "Key name" ++msgid "Keypad F4" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:62 ++msgctxt "Key name" ++msgid "Keypad Home" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:71 ++msgctxt "Key name" ++msgid "Keypad Insert" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:63 ++msgctxt "Key name" ++msgid "Keypad Left" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:68 ++msgctxt "Key name" ++msgid "Keypad Page Down" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:67 ++msgctxt "Key name" ++msgid "Keypad Page Up" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:65 ++msgctxt "Key name" ++msgid "Keypad Right" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:55 ++msgctxt "Key name" ++msgid "Keypad Space" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:56 ++msgctxt "Key name" ++msgid "Keypad Tab" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:64 ++msgctxt "Key name" ++msgid "Keypad Up" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1690 ++msgid "Kimpanel process:" ++msgstr "" ++ ++#: src/ui/classic/theme.h:50 ++msgid "Last Candidate" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:112 ++msgctxt "Key name" ++msgid "Launch (0)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:113 ++msgctxt "Key name" ++msgid "Launch (1)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:114 ++msgctxt "Key name" ++msgid "Launch (2)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:115 ++msgctxt "Key name" ++msgid "Launch (3)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:116 ++msgctxt "Key name" ++msgid "Launch (4)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:117 ++msgctxt "Key name" ++msgid "Launch (5)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:118 ++msgctxt "Key name" ++msgid "Launch (6)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:119 ++msgctxt "Key name" ++msgid "Launch (7)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:120 ++msgctxt "Key name" ++msgid "Launch (8)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:121 ++msgctxt "Key name" ++msgid "Launch (9)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:122 ++msgctxt "Key name" ++msgid "Launch (A)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:123 ++msgctxt "Key name" ++msgid "Launch (B)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:124 ++msgctxt "Key name" ++msgid "Launch (C)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:125 ++msgctxt "Key name" ++msgid "Launch (D)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:126 ++msgctxt "Key name" ++msgid "Launch (E)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:127 ++msgctxt "Key name" ++msgid "Launch (F)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:111 ++msgctxt "Key name" ++msgid "Launch Mail" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:47 ++msgctxt "Key name" ++msgid "Left" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:30 ++msgctxt "Key name" ++msgid "Left Alt" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:34 ++msgctxt "Key name" ++msgid "Left Control" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:38 ++msgctxt "Key name" ++msgid "Left Hyper" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:32 ++msgctxt "Key name" ++msgid "Left Shift" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:36 ++msgctxt "Key name" ++msgid "Left Super" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:141 ++msgctxt "Key name" ++msgid "LightBulb" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:851 ++msgid "Locale:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1799 ++msgid "Log:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:168 ++msgctxt "Key name" ++msgid "Logoff" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:89 ++msgid "Long Press behavior" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:201 ++msgctxt "Key name" ++msgid "Mail Forward" ++msgstr "" ++ ++#: src/ui/classic/theme.h:118 ++msgid "Margin" ++msgstr "" ++ ++#: src/ui/classic/theme.h:80 ++msgid "Margin Bottom" ++msgstr "" ++ ++#: src/ui/classic/theme.h:74 ++msgid "Margin Left" ++msgstr "" ++ ++#: src/ui/classic/theme.h:76 ++msgid "Margin Right" ++msgstr "" ++ ++#: src/ui/classic/theme.h:78 ++msgid "Margin Top" ++msgstr "" ++ ++#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 ++msgid "Margin around all content" ++msgstr "" ++ ++#: src/ui/classic/theme.h:164 src/ui/classic/theme.h:188 ++msgid "Margin around text" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:169 ++msgctxt "Key name" ++msgid "Market" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:245 ++msgctxt "Key name" ++msgid "Massyo" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:207 ++msgctxt "Key name" ++msgid "Media Fast Forward" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:103 ++msgctxt "Key name" ++msgid "Media Next" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:105 ++msgctxt "Key name" ++msgid "Media Pause" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:100 ++msgctxt "Key name" ++msgid "Media Play" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:102 ++msgctxt "Key name" ++msgid "Media Previous" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:104 ++msgctxt "Key name" ++msgid "Media Record" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:149 ++msgctxt "Key name" ++msgid "Media Rewind" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:101 ++msgctxt "Key name" ++msgid "Media Stop" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:170 ++msgctxt "Key name" ++msgid "Meeting" ++msgstr "" ++ ++#: src/ui/classic/theme.h:202 ++msgid "Menu" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:91 ++msgctxt "Key name" ++msgid "Menu" ++msgstr "" ++ ++#: src/ui/classic/theme.h:68 ++msgid "Menu Background" ++msgstr "" ++ ++#: src/ui/classic/theme.h:68 ++msgid "Menu Border" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:122 ++msgid "Menu Font" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:172 ++msgctxt "Key name" ++msgid "Menu PB" ++msgstr "" ++ ++#: src/ui/classic/theme.h:69 ++msgid "Menu Selected Item Background" ++msgstr "" ++ ++#: src/ui/classic/theme.h:69 ++msgid "Menu Selected Item Border" ++msgstr "" ++ ++#: src/ui/classic/theme.h:70 ++msgid "Menu Separator" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:199 ++msgctxt "Key name" ++msgid "Messenger" ++msgstr "" ++ ++#: src/ui/classic/theme.h:199 ++msgid "Metadata" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:218 ++msgctxt "Key name" ++msgid "Microphone Mute" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:130 ++msgctxt "Key name" ++msgid "Monitor Brightness Down" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:128 ++msgctxt "Key name" ++msgid "Monitor Brightness Up" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:235 ++msgctxt "Key name" ++msgid "Muhenkan" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:251 ++msgctxt "Key name" ++msgid "Multiple Candidate" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:203 ++msgctxt "Key name" ++msgid "Music" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:173 ++msgctxt "Key name" ++msgid "My Sites" ++msgstr "" ++ ++#: src/ui/classic/theme.h:191 ++msgid "Name" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:223 ++msgctxt "Key name" ++msgid "New" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:174 ++msgctxt "Key name" ++msgid "News" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:48 ++msgid "Next Candidate" ++msgstr "" ++ ++#: src/ui/classic/theme.h:166 ++msgid "Next Page Button" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:27 ++msgid "No" ++msgstr "" ++ ++#: src/modules/clipboard/clipboard.cpp:355 ++msgid "No clipboard history." ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:28 ++msgid "None" ++msgstr "" ++ ++#: src/ui/classic/theme.h:135 src/ui/classic/theme.h:171 ++msgid "Normal text color" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:182 ++msgid "" ++"Normally Wayland uses 96 as font DPI in combinition with the screen scale " ++"factor. This option allows you to override the font DPI. If the value is 0, " ++"it means this option is disabled." ++msgstr "" ++ ++#: src/ui/kimpanel/kimpanel.cpp:386 ++msgid "Not available" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:733 ++msgid "Note for GNOME Later than 3.6" ++msgstr "" ++ ++#: src/modules/notifications/notifications.conf.in.in:3 ++msgid "Notification" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:54 ++msgctxt "Key name" ++msgid "NumLock" ++msgstr "" ++ ++#: src/modules/clipboard/clipboard.h:48 ++msgid "Number of entries" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:670 ++msgid "" ++"Only emoji support is found. To enable spell checking, you may need to " ++"install spell check data for the language." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:224 ++msgctxt "Key name" ++msgid "Open" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:110 ++msgctxt "Key name" ++msgid "Open URL" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:176 ++msgctxt "Key name" ++msgid "Option" ++msgstr "" ++ ++#: src/ui/classic/theme.h:120 ++msgid "Overlay Clip Margin" ++msgstr "" ++ ++#: src/ui/classic/theme.h:110 ++msgid "Overlay Image" ++msgstr "" ++ ++#: src/ui/classic/theme.h:113 ++msgid "Overlay X offset" ++msgstr "" ++ ++#: src/ui/classic/theme.h:114 ++msgid "Overlay Y offset" ++msgstr "" ++ ++#: src/ui/classic/theme.h:112 ++msgid "Overlay position" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:166 ++msgid "Override Xkb Option" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:991 ++msgid "Owner of DBus name ${1} is ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:999 ++msgid "PID of DBus name ${1} owner is ${2}." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:52 ++msgctxt "Key name" ++msgid "Page Down" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:51 ++msgctxt "Key name" ++msgid "Page Up" ++msgstr "" ++ ++#: src/ui/classic/theme.h:155 ++msgid "Page button vertical alignment" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:37 ++msgid "Page size" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:177 ++msgctxt "Key name" ++msgid "Paste" ++msgstr "" ++ ++#: src/modules/clipboard/clipboard.h:46 ++msgid "Paste Primary" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:44 ++msgctxt "Key name" ++msgid "Pause" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:178 ++msgctxt "Key name" ++msgid "Phone" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:202 ++msgctxt "Key name" ++msgid "Pictures" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:940 ++msgid "Please check ${1} for how to install fcitx5." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:962 ++msgid "" ++"Please check the Configure link of your distribution in ${1} for how to " ++"setup ${2} autostart." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:714 ++msgid "" ++"Please set environment variable ${env_name} to \"${value}\" using the tool " ++"your distribution provides or add ${1} to your ${2}. See ${link}." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:216 ++msgctxt "Key name" ++msgid "Power Down" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:135 ++msgctxt "Key name" ++msgid "Power Off" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:834 ++msgid "Preedit" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:836 ++msgid "Preedit disabled" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:835 ++msgid "Preedit enabled" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:130 src/ui/kimpanel/kimpanel.h:33 ++msgid "Prefer Text Icon" ++msgstr "" ++ ++#: src/modules/spell/spell.h:22 ++msgid "Presage" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:42 ++msgid "Prev Candidate" ++msgstr "" ++ ++#: src/ui/classic/theme.h:165 ++msgid "Prev Page Button" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:252 ++msgctxt "Key name" ++msgid "Previous Candidate" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:228 ++msgctxt "Key name" ++msgid "Print Screen" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:27 ++msgid "Program" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1249 ++msgid "Qt IM module files:" ++msgstr "" ++ ++#: src/modules/quickphrase/quickphrase.conf.in.in:3 ++msgid "Quick Phrase" ++msgstr "" ++ ++#: src/modules/quickphrase/quickphrase.cpp:472 ++msgid "Quick Phrase: " ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:219 ++msgctxt "Key name" ++msgid "Red" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:227 ++msgctxt "Key name" ++msgid "Redo" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:96 ++msgctxt "Key name" ++msgid "Refresh" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:180 ++msgctxt "Key name" ++msgid "Reload" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:179 ++msgctxt "Key name" ++msgid "Reply" ++msgstr "" ++ ++#: src/ui/classic/xcbtraywindow.cpp:39 ++#: src/modules/notificationitem/dbusmenu.cpp:259 ++msgid "Restart" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:43 ++msgctxt "Key name" ++msgid "Return" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:49 ++msgctxt "Key name" ++msgid "Right" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:31 ++msgctxt "Key name" ++msgid "Right Alt" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:35 ++msgctxt "Key name" ++msgid "Right Control" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:39 ++msgctxt "Key name" ++msgid "Right Hyper" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:33 ++msgctxt "Key name" ++msgid "Right Shift" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:37 ++msgctxt "Key name" ++msgid "Right Super" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:237 ++msgctxt "Key name" ++msgid "Romaji" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:181 ++msgctxt "Key name" ++msgid "Rotate Windows" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:183 ++msgctxt "Key name" ++msgid "Rotation KB" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:182 ++msgctxt "Key name" ++msgid "Rotation PB" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:916 ++msgid "Running as root:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:184 ++msgctxt "Key name" ++msgid "Save" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:138 ++msgctxt "Key name" ++msgid "Screensaver" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:90 ++msgctxt "Key name" ++msgid "ScrollLock" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:108 ++msgctxt "Key name" ++msgid "Search" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:233 ++msgctxt "Key name" ++msgid "Select" ++msgstr "" ++ ++#: src/modules/imselector/imselector.cpp:257 ++msgid "Select input method:" ++msgstr "" ++ ++#: src/modules/imselector/imselector.cpp:256 ++msgid "Select local input method:" ++msgstr "" ++ ++#: src/modules/imselector/imselector.conf.in.in:4 ++msgid "Select specific input method via keyboard" ++msgstr "" ++ ++#: src/ui/classic/theme.h:174 ++msgid "Selected Item text color" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:185 ++msgctxt "Key name" ++msgid "Send" ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.cpp:519 ++msgid "" ++"Sending keyboard layout configuration to wayland compositor from Fcitx is " ++"not yet supported on current desktop. You may still use Fcitx's internal " ++"layout conversion by adding layout as input method to the input method group." ++msgstr "" ++ ++#: src/ui/classic/theme.h:182 ++msgid "Separator Background" ++msgstr "" ++ ++#: src/ui/classic/theme.h:168 ++msgid "Shadow Margin" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:141 ++msgid "Share Input State" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:561 ++msgctxt "Key name" ++msgid "Shift" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:142 ++msgctxt "Key name" ++msgid "Shop" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:151 ++msgid "Show Input Method Information when changing focus" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:148 ++msgid "Show Input Method Information when switch input method" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:135 ++msgid "Show Layout Name In Icon" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:154 ++msgid "Show compact input method information" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:157 ++msgid "Show first input method information" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:139 ++msgid "" ++"Show layout name in icon if there is more than one active layout. If prefer " ++"text icon is set to true, this option will be ignored." ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:144 ++msgid "Show preedit in application" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:188 ++msgid "Show preedit text when typing password" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:77 ++msgid "" ++"Show preedit when composing, and commit dead key if there is no matching " ++"sequence." ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:64 ++msgid "Skip first input method while enumerating" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:140 ++msgctxt "Key name" ++msgid "Sleep" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:40 ++msgctxt "Key name" ++msgid "Space" ++msgstr "" ++ ++#: src/ui/classic/theme.h:176 ++msgid "Spacing" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:79 src/modules/spell/spell.conf.in.in:3 ++msgid "Spell" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:186 ++msgctxt "Key name" ++msgid "Spellchecker" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:187 ++msgctxt "Key name" ++msgid "Split Screen" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:163 ++msgctxt "Key name" ++msgid "Spreadsheet" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:109 ++msgctxt "Key name" ++msgid "Standby" ++msgstr "" ++ ++#: data/org.fcitx.Fcitx5.desktop.in.in:5 ++msgid "Start Input Method" ++msgstr "" ++ ++#: src/modules/notificationitem/notificationitem.conf.in.in:3 ++msgid "Status Notifier" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:95 ++msgctxt "Key name" ++msgid "Stop" ++msgstr "" ++ ++#: src/ui/classic/theme.h:184 ++msgid "Sub Menu" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:210 ++msgctxt "Key name" ++msgid "Subtitle" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 ++msgid "Super" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:562 ++msgctxt "Key name" ++msgid "Super" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:188 ++msgctxt "Key name" ++msgid "Support" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:217 ++msgctxt "Key name" ++msgid "Suspend" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:447 src/lib/fcitx/instance.cpp:673 ++#: src/modules/xcb/xcbconnection.cpp:522 ++msgid "Switch group" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:448 src/modules/xcb/xcbconnection.cpp:523 ++#, c++-format ++msgid "Switch group to {0}" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:674 ++#, c++-format ++msgid "Switched group to {0}" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:789 ++msgid "System Info:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:232 ++msgctxt "Key name" ++msgid "System Request" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:41 ++msgctxt "Key name" ++msgid "Tab" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:189 ++msgctxt "Key name" ++msgid "Task Panel" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:44 ++msgid "Temporally switch between first and current Input Method" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:190 ++msgctxt "Key name" ++msgid "Terminal" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1786 ++#, sh-format ++msgid "" ++"The environment variable checked by this script only shows the environment " ++"under current shell. It is still possible that you did not set the " ++"environment to the whole graphic desktop session. You may inspect the actual " ++"environment variable of a certain process by using `xargs -0 -L1 /proc/$PID/" ++"environ` for a certain process that you find not working." ++msgstr "" ++ ++#: src/modules/imselector/imselector.h:40 ++#: src/modules/imselector/imselector.h:50 ++msgid "The n-th hotkey in the list selects the n-th input method." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:895 ++msgid "The script is run as ${1} (${2})." ++msgstr "" ++ ++#: src/ui/classic/classicui.h:155 ++msgid "Theme" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:101 ++msgid "This is only effective when the tray icon is xembed." ++msgstr "" ++ ++#: src/ui/classic/theme.h:93 src/ui/classic/theme.h:101 ++msgid "This option is only effective if image is not set." ++msgstr "" ++ ++#: src/ui/classic/classicui.h:194 ++msgid "This option require support from wayland compositor." ++msgstr "" ++ ++#: src/ui/classic/classicui.h:173 ++msgid "This option will be always disabled on XWayland." ++msgstr "" ++ ++#: src/ui/classic/theme.h:109 ++msgid "This value should be less than any of margin value." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1805 ++msgid "" ++"Though such information can be helpful to developers for diagnostic purpose, " ++"please double check and remove as necessary before posting it online " ++"publicly." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:212 ++msgctxt "Key name" ++msgid "Time" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:750 ++#, sh-format ++msgid "" ++"To see some application specific problems you may have when using xim, check " ++"${link1}. For other more general problems of using XIM including application " ++"freezing, see ${link2}." ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:132 ++msgid "Toggle embedded preedit" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:191 ++msgctxt "Key name" ++msgid "Tools" ++msgstr "" ++ ++#: src/ui/classic/theme.h:48 ++msgid "Top" ++msgstr "" ++ ++#: src/ui/classic/theme.h:35 ++msgid "Top Center" ++msgstr "" ++ ++#: src/ui/classic/theme.h:35 ++msgid "Top Left" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:215 ++msgctxt "Key name" ++msgid "Top Menu" ++msgstr "" ++ ++#: src/ui/classic/theme.h:36 ++msgid "Top Right" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:268 ++msgctxt "Key name" ++msgid "Touchpad Off" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:267 ++msgctxt "Key name" ++msgid "Touchpad On" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:266 ++msgctxt "Key name" ++msgid "Touchpad Toggle" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:244 ++msgctxt "Key name" ++msgid "Touroku" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:192 ++msgctxt "Key name" ++msgid "Travel" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:124 ++msgid "Tray Font" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:126 ++msgid "Tray Label Outline Color" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:129 ++msgid "Tray Label Text Color" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:34 ++msgid "Trigger Input Method" ++msgstr "" ++ ++#: src/modules/imselector/imselector.h:25 ++#: src/modules/quickphrase/quickphrase.h:36 src/modules/unicode/unicode.h:31 ++#: src/modules/clipboard/clipboard.h:42 ++msgid "Trigger Key" ++msgstr "" ++ ++#: src/modules/imselector/imselector.h:29 ++msgid "Trigger Key for only current input context" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:62 ++msgid "Trigger hint mode" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:67 ++msgid "Trigger hint mode for one time" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:82 ++msgid "Type special characters with long press" ++msgstr "" ++ ++#: src/modules/unicode/unicode.h:36 ++msgid "Type unicode in Hex number" ++msgstr "" ++ ++#: data/org.fcitx.Fcitx5.metainfo.xml.in:22 ++msgid "Typing with Fcitx and Kimpanel" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1011 ++msgid "Unable to find a program to check dbus." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:226 ++msgctxt "Key name" ++msgid "Undo" ++msgstr "" ++ ++#: src/modules/unicode/unicode.conf.in.in:3 ++msgid "Unicode" ++msgstr "" ++ ++#: src/modules/unicode/unicode.cpp:456 ++msgid "Unicode: " ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:48 ++msgctxt "Key name" ++msgid "Up" ++msgstr "" ++ ++#: src/frontend/xim/xim.h:33 ++msgid "Use On The Spot Style (Needs restarting)" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:169 ++msgid "Use Per Screen DPI on X11" ++msgstr "" ++ ++#: src/ui/classic/theme.h:151 ++msgid "Use all horizontal space for highlight when it is vertical list" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:146 ++msgid "Use input method language to display text" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:116 ++msgid "Use mouse wheel to go to prev or next page" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:73 ++msgid "Use new compose behavior" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1677 ++msgid "User Interface:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:986 ++msgid "Using ${1} to check dbus." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:256 ++msgid "" ++"Using ${1} to check the actual im module to be used under current " ++"environment:" ++msgstr "" ++ ++#: src/ui/classic/theme.h:192 ++msgid "Version" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1405 data/fcitx5-diagnose.sh:1489 ++msgid "Version Line:" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:114 ++msgid "Vertical Candidate List" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:193 ++msgctxt "Key name" ++msgid "Video" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:214 ++msgctxt "Key name" ++msgid "View" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:97 ++msgctxt "Key name" ++msgid "Volume Down" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:98 ++msgctxt "Key name" ++msgid "Volume Mute" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:99 ++msgctxt "Key name" ++msgid "Volume Up" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:139 ++msgctxt "Key name" ++msgid "WWW" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:136 ++msgctxt "Key name" ++msgid "Wake Up" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1804 ++msgid "" ++"Warning: the output of fcitx5-diagnose contains sensitive information, " ++"including the distribution name, kernel version, name of currently running " ++"programs, etc." ++msgstr "" ++ ++#: src/modules/wayland/wayland.conf.in.in:3 ++msgid "Wayland" ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.cpp:449 ++msgid "Wayland Diagnose" ++msgstr "" ++ ++#: src/frontend/waylandim/waylandim.conf.in.in:3 ++msgid "Wayland Input method frontend" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:200 ++msgctxt "Key name" ++msgid "WebCam" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:170 ++msgid "" ++"Whether to override the xkb option from display server. It will not affect " ++"the xkb option send to display, but just the xkb options for custom xkb " ++"layout." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:926 ++msgid "Why is it bad to run as root" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:206 ++msgctxt "Key name" ++msgid "Wireless" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:194 ++msgctxt "Key name" ++msgid "Word Processor" ++msgstr "" ++ ++#: src/frontend/xim/xim.conf.in.in:3 ++msgid "X Input Method Frontend" ++msgstr "" ++ ++#: src/modules/xcb/xcb.conf.in.in:3 ++msgid "XCB" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:825 ++msgid "XDG SESSION TYPE:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:195 ++msgctxt "Key name" ++msgid "XFer" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1188 ++msgid "XIM encoding:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1183 ++msgid "XIM for Emacs:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1159 ++msgid "XIM_SERVERS on root window:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1136 ++msgid "XMODIFIERS is not set" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1157 ++msgid "Xim Server Name from Environment variable is ${1}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1169 ++msgid "Xim server name is the same with that set in the environment variable." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1171 ++msgid "" ++"Xim server name: \"${1}\" is different from that set in the environment " ++"variable: \"${2}\"." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:221 ++msgctxt "Key name" ++msgid "Yellow" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:924 ++msgid "" ++"You are probably logging in as ${1} or using ${2} to run this script. This " ++"either means you have security problems or the result of this script may not " ++"be accurate. See ${3} or ${4} for more information." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:919 ++msgid "" ++"You are probably using ${1} to run this script. This means the result of " ++"this script may not be accurate. See ${2} for more information." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1213 ++msgid "You are using xim in ${1} programs." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1218 ++msgid "You may have trouble using fcitx in ${1} programs." ++msgstr "" ++ ++#: data/fcitx5-configtool.sh:134 ++msgid "" ++"You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be " ++"found. Now it will open config directory." ++msgstr "" ++ ++#: data/fcitx5-configtool.sh:131 ++msgid "" ++"You're currently running KDE, but KCModule for fcitx couldn't be found, the " ++"package name of this KCModule is usually kcm-fcitx or kde-config-fcitx. Now " ++"it will open config directory." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1185 ++msgid "" ++"Your LC_CTYPE is set to ${1} instead of one of zh, ja, ko. You may not be " ++"able to use input method in emacs because of an really old emacs bug that " ++"upstream refuse to fix for years." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1190 ++msgid "" ++"Your LC_CTYPE is set to ${1} whose encoding is not UTF-8. You may have " ++"trouble committing strings using XIM." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:241 ++msgctxt "Key name" ++msgid "Zenkaku" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:243 ++msgctxt "Key name" ++msgid "Zenkaku Hankaku" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:196 ++msgctxt "Key name" ++msgid "Zoom In" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:197 ++msgctxt "Key name" ++msgid "Zoom Out" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:936 ++msgid "executable:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:757 ++msgid "here" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:167 ++msgctxt "Key name" ++msgid "iTouch" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:950 ++msgid "process:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:921 data/fcitx5-diagnose.sh:927 ++msgid "sudo environment variables" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:946 ++msgid "version:" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:292 ++#, c++-format ++msgid "{0} (Not Available)" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:405 ++#, c++-format ++msgid "{0} (Not available)" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:402 ++#, c++-format ++msgid "{0} ({1})" ++msgstr "" +diff --git a/po/ug.po b/po/ug.po +new file mode 100644 +index 0000000..3dd7ad7 +--- /dev/null ++++ b/po/ug.po +@@ -0,0 +1,2983 @@ ++# SOME DESCRIPTIVE TITLE. ++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER ++# This file is distributed under the same license as the fcitx5 package. ++# ++# Translators: ++# wwj402 <wwj402@gmail.com>, 2017 ++# rocka, 2023 ++# Lau YeeYu, 2023 ++# csslayer <wengxt@gmail.com>, 2023 ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: fcitx5\n" ++"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" ++"POT-Creation-Date: 2023-10-19 05:51+0000\n" ++"PO-Revision-Date: 2024-06-04 11:55+0000\n" ++"Last-Translator: KevinDuan <duankaiwen@kylinos.com>\n" ++"Language-Team: Uyghur <http://weblate.openkylin.top/projects/" ++"openkylin-nile-new/fcitx5/ug/>\n" ++"Language: ug\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Plural-Forms: nplurals=2; plural=n != 1;\n" ++"X-Generator: Weblate 4.12.1-dev\n" ++ ++#: data/fcitx5-diagnose.sh:900 ++msgid "${1} Environment Variables:" ++msgstr "{1} مۇھىت ئۆزگەرگۈچى مىقدار :" ++ ++#: data/fcitx5-diagnose.sh:886 ++msgid "${1} Settings Directory:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:960 ++msgid "${1} is not running." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:909 ++msgid "${1} is not set." ++msgstr "${1} بېكىتىلمىدى." ++ ++#: data/fcitx5-diagnose.sh:906 ++msgid "${1} is set to ${2}." ++msgstr "${1} ${2} قىلىپ بىكىتىلدى." ++ ++#: data/fcitx5-diagnose.sh:565 ++msgid "${1} not found." ++msgstr "${1} تېپىلمىدى." ++ ++#: data/fcitx5-diagnose.sh:977 ++msgid "${1} works properly." ++msgstr "${1} نىڭ خىزمىتى نورمال." ++ ++#: src/lib/fcitx/instance.cpp:407 ++msgid "(Not available)" ++msgstr "" ++ ++#: src/modules/unicode/unicode.cpp:458 ++msgid "(Type to search unicode by code or description)" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:707 ++msgid "/Beginner%27s_Guide" ++msgstr "/دەسلەپكى%27_Guide" ++ ++#: data/fcitx5-diagnose.sh:754 ++msgid "/Hall_of_Shame_for_Linux_IME_Support" ++msgstr "/Hall_of_Shame_for_Linux_IME_Support" ++ ++#: data/fcitx5-diagnose.sh:718 ++msgid "/Input_method_related_environment_variables" ++msgstr "/Input_method_related_environment_variables/zh-cn" ++ ++#: data/fcitx5-diagnose.sh:734 ++msgid "/Note_for_GNOME_Later_than_3.6" ++msgstr "/Note_for_GNOME_Later_than_3.6" ++ ++#: data/fcitx5-diagnose.sh:758 ++msgid "/XIM" ++msgstr "/XIM/zh-cn" ++ ++#: src/modules/unicode/charselectdata.cpp:215 ++msgid "<Low Surrogate>" ++msgstr "‹تۆۋەن ۋاكالەت رايونى›" ++ ++#: src/modules/unicode/charselectdata.cpp:211 ++msgid "<Non Private Use High Surrogate>" ++msgstr "‹يۇقىرى ۋاكالەت رايونى ئەمەس›" ++ ++#: src/modules/unicode/charselectdata.cpp:213 ++msgid "<Private Use High Surrogate>" ++msgstr "‹ مەخسۇس ۋاكالەت ۋاكالەت رايونى›" ++ ++#: src/modules/unicode/charselectdata.cpp:217 ++msgid "<Private Use>" ++msgstr "<مەخسۇس رايون>" ++ ++#: src/modules/unicode/charselectdata.cpp:247 ++msgid "<not assigned>" ++msgstr "< ئەۋەتىلمىدى >" ++ ++#: src/ui/virtualkeyboard/virtualkeyboard.conf.in.in:4 ++msgid "A virtual keyboard backend based on DBus" ++msgstr "" ++ ++#: src/ui/classic/theme.h:204 ++msgid "Accent Colors" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:82 ++msgid "Activate Input Method" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:138 ++msgid "Active By Default" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:144 ++msgctxt "Key name" ++msgid "Add Favorite" ++msgstr "" ++ ++#: src/modules/unicode/unicode.conf.in.in:4 ++msgid "Add Unicode Typing Support" ++msgstr "يۇنىكودلۇق كىرگۈزگۈچ قوللاش" ++ ++#: data/fcitx5-diagnose.sh:1565 ++msgid "Addon Config Dir:" ++msgstr "قىستۇرما سەپلىمە ھۆججەت مۇندەرىجىسى :" ++ ++#: data/fcitx5-diagnose.sh:1650 ++msgid "Addon Libraries:" ++msgstr "قىستۇرما ئامبىرى :" ++ ++#: data/fcitx5-diagnose.sh:1593 ++msgid "Addon List:" ++msgstr "قىستۇرما تىزىملىكى:" ++ ++#: src/lib/fcitx-utils/key.cpp:146 ++msgctxt "Key name" ++msgid "Adjust Brightness" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:26 ++msgid "All" ++msgstr "ھەممە" ++ ++#: data/fcitx5-diagnose.sh:1367 ++msgid "All found Gtk ${1} immodule files exist." ++msgstr "بارلىق Gtk ${1} كىرگۈزگۈچ مودۇل ھۆججىتى تېپىلدى." ++ ++#: data/fcitx5-diagnose.sh:1676 ++msgid "All libraries for all addons are found." ++msgstr "قىستۇرما ئېھتىياجلىق بولغان ئامبارنىڭ ھەممىسى تېپىلدى." ++ ++#: data/fcitx5-diagnose.sh:854 ++msgid "All locales:" ++msgstr "" ++ ++#: src/modules/xcb/xcbmodule.h:30 ++msgid "Allow Overriding System XKB Settings" ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.h:34 ++msgid "Allow Overriding System XKB Settings (Only support KDE 5)" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:185 ++msgid "Allow input method in the password field" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:29 ++msgid "Alt" ++msgstr "Alt" ++ ++#: src/lib/fcitx-utils/key.cpp:560 ++msgctxt "Key name" ++msgid "Alt" ++msgstr "Alt" ++ ++#: src/modules/xcb/xcbmodule.h:33 ++msgid "Always set layout to be only group layout" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:151 ++msgctxt "Key name" ++msgid "Application Left" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:152 ++msgctxt "Key name" ++msgid "Application Right" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:87 ++msgid "Applications disabled for long press" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:211 ++msgctxt "Key name" ++msgid "Audio Cycle Track" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:209 ++msgctxt "Key name" ++msgid "Audio Random Play" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:208 ++msgctxt "Key name" ++msgid "Audio Repeat" ++msgstr "" ++ ++#: src/ui/classic/theme.h:193 ++msgid "Author" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:198 ++msgctxt "Key name" ++msgid "Away" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:93 ++msgctxt "Key name" ++msgid "Back" ++msgstr "چېكىنىش" ++ ++#: src/lib/fcitx-utils/key.cpp:150 ++msgctxt "Key name" ++msgid "Back Forward" ++msgstr "" ++ ++#: src/modules/spell/spell.h:38 ++msgid "Backends" ++msgstr "" ++ ++#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 ++msgid "Background" ++msgstr "ئارقا كۆرۈنۈشى" ++ ++#: src/ui/classic/theme.h:85 ++msgid "Background Image" ++msgstr "تەگلىك رەسىم" ++ ++#: src/lib/fcitx-utils/key.cpp:42 ++msgctxt "Key name" ++msgid "Backspace" ++msgstr "ئارقا بوشلۇق" ++ ++#: data/fcitx5-diagnose.sh:827 ++msgid "Bash Version:" ++msgstr "Bash نەشىرى:" ++ ++#: src/lib/fcitx-utils/key.cpp:204 ++msgctxt "Key name" ++msgid "Battery" ++msgstr "باتارىيە" ++ ++#: data/fcitx5-diagnose.sh:706 ++msgid "Beginner's Guide" ++msgstr "دەسلەپكى ساۋات" ++ ++#: src/lib/fcitx/globalconfig.cpp:202 ++msgid "Behavior" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:222 ++msgctxt "Key name" ++msgid "Blue" ++msgstr "كۆك" ++ ++#: src/lib/fcitx-utils/key.cpp:205 ++msgctxt "Key name" ++msgid "Bluetooth" ++msgstr "كۆكچىش" ++ ++#: src/ui/classic/theme.h:148 ++msgid "Blur Margin" ++msgstr "" ++ ++#: src/ui/classic/theme.h:147 ++msgid "Blur mask" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:153 ++msgctxt "Key name" ++msgid "Book" ++msgstr "" ++ ++#: src/ui/classic/theme.h:97 ++msgid "Border Color" ++msgstr "" ++ ++#: src/ui/classic/theme.h:105 ++msgid "Border width" ++msgstr "" ++ ++#: src/ui/classic/theme.h:50 ++msgid "Bottom" ++msgstr "ئەڭ ئاستى" ++ ++#: src/ui/classic/theme.h:38 ++msgid "Bottom Center" ++msgstr "" ++ ++#: src/ui/classic/theme.h:38 ++msgid "Bottom Left" ++msgstr "" ++ ++#: src/ui/classic/theme.h:39 ++msgid "Bottom Right" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:164 ++msgctxt "Key name" ++msgid "Browser" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:154 ++msgctxt "Key name" ++msgid "CD" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:155 ++msgctxt "Key name" ++msgid "Calculator" ++msgstr "ھېسابلىغۇچ" ++ ++#: src/lib/fcitx-utils/key.cpp:264 ++msgctxt "Key name" ++msgid "Cancel" ++msgstr "ئەمەلدىن قالدۇرۇش" ++ ++#: src/im/keyboard/longpress.h:19 ++msgid "Candidates" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:975 ++msgid "Cannot connect to ${1} correctly." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:820 ++msgid "Cannot determine desktop environment." ++msgstr "ئۈستەل يۈزى مۇھىتىنى جەزىملەشتۈرگىلى بولمايدۇ." ++ ++#: data/fcitx5-diagnose.sh:1584 ++msgid "Cannot find ${1} addon config directory." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1099 ++msgid "Cannot find ${1} executable!" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1517 ++msgid "Cannot find ${1} im module for gtk ${2} in cache." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1434 ++msgid "Cannot find ${1} im module for gtk ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1288 data/fcitx5-diagnose.sh:1293 ++#: data/fcitx5-diagnose.sh:1298 ++msgid "Cannot find ${1} input method module for ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1428 ++msgid "Cannot find ${2} for gtk ${1}" ++msgstr "${1} نىڭ ${2} نى تاپالمىدى" ++ ++#: data/fcitx5-diagnose.sh:995 ++msgid "Cannot find DBus name ${1} owner." ++msgstr "DBus نامى $ {1} نىڭ ئىگىسىنى تاپالمىدىم." ++ ++#: data/fcitx5-diagnose.sh:1109 ++msgid "Cannot find a GUI config tool, please install one of ${1}, or ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1679 ++msgid "Cannot find enabled ${1} user interface!" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:938 ++msgid "Cannot find fcitx5 executable!" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1658 ++msgid "Cannot find file ${1} of addon ${2}." ++msgstr "قىستۇرما ${2}نىڭ ${1} ھۆججىتىنى تاپالمىدى." ++ ++#: data/fcitx5-diagnose.sh:1668 ++msgid "Cannot find following required libraries for ${1} of addon ${2}." ++msgstr "${2} قىستۇرمىسىنىڭ ${1} ئامبىرىنى تاپالمىدى." ++ ++#: data/fcitx5-diagnose.sh:1512 ++msgid "Cannot find immodules cache for gtk ${1}" ++msgstr "${1}gtk نىڭ كىرگۈزگۈچ مودۇلىنىڭ بۇفېرلىق ساقلىغۇچىنى تاپقىلى بولمىدى" ++ ++#: data/fcitx5-diagnose.sh:1698 ++msgid "" ++"Cannot find kimpanel dbus interface or enabled non-kimpanel user interface." ++msgstr "" ++"نۆۋەتتە kimpanel dbus نىڭ ئۇلىنىش ئېغىزى ياكى kimpanl بولمىغان ئابونت " ++"كۆرۈنمە يۈزىنى تاپقىلى بولمايدۇ." ++ ++#: data/fcitx5-diagnose.sh:1003 ++msgid "Cannot find pid of DBus name ${1} owner." ++msgstr "DBus نامى ${1} بولغان pid ئىگىسىنى تاپالمىدى." ++ ++#: data/fcitx5-diagnose.sh:1175 ++msgid "Cannot find xim_server on root window." ++msgstr "غول كۆزنەكتىنxim _ server نى تاپقىلى بولمايدۇ." ++ ++#: data/fcitx5-diagnose.sh:1149 ++msgid "Cannot interpret XMODIFIERS: ${1}." ++msgstr "نى يىشەلمىدى XMODIFIERS: ${1}." ++ ++#: src/lib/fcitx-utils/key.cpp:53 ++msgctxt "Key name" ++msgid "CapsLock" ++msgstr "بوشلۇق كونۇپكىسى" ++ ++#: src/ui/classic/theme.h:37 src/ui/classic/theme.h:49 ++msgid "Center" ++msgstr "ئوتتۇرىغا" ++ ++#: src/ui/classic/theme.h:36 ++msgid "Center Left" ++msgstr "" ++ ++#: src/ui/classic/theme.h:37 ++msgid "Center Right" ++msgstr "" ++ ++#: data/fcitx5-configtool.desktop.in.in:5 ++msgid "Change Fcitx 5 Configuration" ++msgstr "" ++ ++#: src/ui/classic/theme.h:183 ++msgid "Check box" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:56 src/modules/quickphrase/quickphrase.h:41 ++msgid "Choose key modifier" ++msgstr "سۆز تاللاش كونۇپكىسى" ++ ++#: src/ui/classic/classicui.conf.in.in:3 ++msgid "Classic User Interface" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:156 ++msgctxt "Key name" ++msgid "Clear" ++msgstr "تازىلاش" ++ ++#: src/ui/classic/theme.h:131 ++msgid "Click Margin" ++msgstr "" ++ ++#: src/modules/clipboard/clipboard.conf.in.in:3 ++msgid "Clipboard" ++msgstr "چاپلاش تاختىسى" ++ ++#: src/modules/clipboard/clipboard.cpp:353 ++msgid "Clipboard (Press BackSpace/Delete to clear history):" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:157 ++msgctxt "Key name" ++msgid "Close" ++msgstr "تاقاش" ++ ++#: src/lib/fcitx-utils/key.cpp:250 ++msgctxt "Key name" ++msgid "Code input" ++msgstr "" ++ ++#: src/ui/classic/theme.h:89 ++msgid "Color" ++msgstr "رەڭلىك" ++ ++#: src/lib/fcitx-utils/key.cpp:148 ++msgctxt "Key name" ++msgid "Community" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:685 ++msgid "Completion" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:676 ++msgid "Completion is disabled." ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:679 ++msgid "Completion is enabled temporarily." ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:681 ++msgid "Completion is enabled." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1051 ++msgid "Config GUI for gtk${1} not found." ++msgstr "${1}gtk نىڭ سەپلىمە يۈزى تېپىلمىدى." ++ ++#: data/fcitx5-diagnose.sh:1047 ++msgid "Config GUI for gtk${1}:" ++msgstr "GTK ${1} نىڭ سەپلىمە كۆرۈنمە يۈزى :" ++ ++#: data/fcitx5-diagnose.sh:1081 ++msgid "Config GUI for kde:" ++msgstr "KDE نىڭ سەپلىمە كۆرۈنىشى :" ++ ++#: data/fcitx5-diagnose.sh:1070 ++msgid "Config GUI for qt not found." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1068 ++msgid "Config GUI for qt:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1097 ++msgid "Config Tool Wrapper:" ++msgstr "سەپلەش قورالى ئوراپ پىچەتلەش :" ++ ++#: data/fcitx5-diagnose.sh:1793 ++msgid "Configuration:" ++msgstr "سەپلىمە:" ++ ++#: src/ui/classic/xcbtraywindow.cpp:38 ++#: src/modules/notificationitem/dbusmenu.cpp:251 ++msgid "Configure" ++msgstr "سەپلىمە" ++ ++#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 ++msgid "Control" ++msgstr "Control" ++ ++#: src/lib/fcitx-utils/key.cpp:559 ++msgctxt "Key name" ++msgid "Control" ++msgstr "Control" ++ ++#: src/lib/fcitx-utils/key.cpp:158 ++msgctxt "Key name" ++msgid "Copy" ++msgstr "كۆچۈرۈش" ++ ++#: data/fcitx5-diagnose.sh:888 ++msgid "Current ${1} settings directory is ${2} (${3})." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:856 ++msgid "Current locale:" ++msgstr "نۆۋەتتىكى locale:" ++ ++#: data/fcitx5-diagnose.sh:894 ++msgid "Current user:" ++msgstr "ھازىرقى ئابونېنت:" ++ ++#: data/fcitx5-diagnose.sh:882 ++msgid "Current value of ${1} is ${2} (${3})." ++msgstr "{1} نىڭ ھازىرقى قىممىتى${2} (${3})." ++ ++#: src/modules/spell/spell.h:22 ++msgid "Custom" ++msgstr "ئۆز تەڭشەك" ++ ++#: src/lib/fcitx/globalconfig.cpp:175 ++msgid "Custom Xkb Option" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:159 ++msgctxt "Key name" ++msgid "Cut" ++msgstr "كېسىش" ++ ++#: src/modules/dbus/dbus.conf.in.in:3 ++msgid "DBus" ++msgstr "DBus" ++ ++#: src/frontend/dbusfrontend/dbusfrontend.conf.in.in:3 ++msgid "DBus Frontend" ++msgstr "" ++ ++#: src/ui/virtualkeyboard/virtualkeyboard.conf.in.in:3 ++msgid "DBus Virtual Keyboard" ++msgstr "" ++ ++#: src/modules/notificationitem/notificationitem.conf.in.in:4 ++msgid "DBus based new Freedesktop.org tray icon" ++msgstr "DBus ئاساسىدىكى يېڭى Freedesktop. org ئەپ تارتمىسى سىنبەلگىسى" ++ ++#: data/fcitx5-diagnose.sh:983 ++msgid "DBus interface:" ++msgstr "DBus يۈزى:" ++ ++#: src/lib/fcitx-utils/key.cpp:161 ++msgctxt "Key name" ++msgid "DOS" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:158 ++msgid "Dark Theme" ++msgstr "قېنىق ئۇسلۇب" ++ ++#: src/lib/fcitx/globalconfig.cpp:91 ++msgid "Deactivate Input Method" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1007 ++msgid "Debug information from dbus:" ++msgstr "" ++ ++#: src/lib/fcitx/inputmethodmanager.cpp:138 src/lib/fcitx/instance.cpp:354 ++#: src/ui/classic/themes/default/theme.conf.in:3 ++msgid "Default" ++msgstr "ئالدىن بېكىتىلگەن" ++ ++#: src/ui/classic/themes/default-dark/theme-dark.conf.in:3 ++msgid "Default Dark" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:127 ++msgid "Default Next Candidate" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:111 ++msgid "Default Next page" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:121 ++msgid "Default Previous Candidate" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:99 ++msgid "Default Previous page" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:159 ++msgid "Default page size" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:230 ++msgctxt "Key name" ++msgid "Delete" ++msgstr "ئۆچۈرۈش" ++ ++#: src/ui/classic/theme.h:195 ++msgid "Description" ++msgstr "بايان قىلىش" ++ ++#: data/fcitx5-diagnose.sh:817 ++msgid "Desktop Environment:" ++msgstr "ئۈستەليۈزى مۇھىتى:" ++ ++#: data/fcitx5-diagnose.sh:822 ++msgid "Desktop environment is ${1}." ++msgstr "ئۈستەليۈزى مۇھىتى ${1}." ++ ++#: src/modules/wayland/waylandmodule.cpp:476 ++msgid "" ++"Detect GTK_IM_MODULE and QT_IM_MODULE being set and Wayland Input method " ++"frontend is working. It is recommended to unset GTK_IM_MODULE and " ++"QT_IM_MODULE and use Wayland input method frontend instead. For more details " ++"see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma" ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.cpp:504 ++msgid "" ++"Detect GTK_IM_MODULE being set and Wayland Input method frontend is working. " ++"It is recommended to unset GTK_IM_MODULE and use Wayland input method " ++"frontend instead." ++msgstr "" ++ ++#: src/frontend/waylandim/waylandim.h:27 ++msgid "Detect current running application (Need restart)" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:868 ++msgid "Directories:" ++msgstr "مۇندەرىجە:" ++ ++#: src/lib/fcitx-utils/key.cpp:160 ++msgctxt "Key name" ++msgid "Display" ++msgstr "كۆرسىتىش" ++ ++#: src/modules/notifications/notifications.cpp:204 ++msgid "Do not show again" ++msgstr "ئەمدى كۆرسەتمەڭ" ++ ++#: src/lib/fcitx-utils/key.cpp:162 ++msgctxt "Key name" ++msgid "Documents" ++msgstr "ئارخىپ" ++ ++#: src/lib/fcitx-utils/key.cpp:50 ++msgctxt "Key name" ++msgid "Down" ++msgstr "ئاستى" ++ ++#: src/modules/quickphrase/quickphrase.h:47 ++msgid "Editor" ++msgstr "تەھرىرلىگۈچ" ++ ++#: src/lib/fcitx-utils/key.cpp:248 ++msgctxt "Key name" ++msgid "Eisu Shift" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:249 ++msgctxt "Key name" ++msgid "Eisu toggle" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:137 ++msgctxt "Key name" ++msgid "Eject" ++msgstr "سەكرىتىش" ++ ++#: src/modules/emoji/emoji.conf.in.in:3 ++msgid "Emoji" ++msgstr "" ++ ++#: src/im/keyboard/longpress.h:17 ++msgid "Enable" ++msgstr "قوزغىتىش" ++ ++#: src/ui/classic/theme.h:145 ++msgid "Enable Blur on KWin" ++msgstr "" ++ ++#: src/modules/quickphrase/quickphrase.h:43 ++msgid "Enable Spell check" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:51 ++msgid "Enable emoji in hint" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:54 ++msgid "Enable emoji in quickphrase" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:190 ++msgid "Enable fractional scale under Wayland" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:59 ++msgid "Enable hint by default" ++msgstr "" ++ ++#: src/modules/spell/spell.h:23 ++msgid "Enchant" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:46 ++msgctxt "Key name" ++msgid "End" ++msgstr "ئاخىرلىشىش" ++ ++#: src/im/keyboard/longpress.h:26 ++msgid "Entries" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:58 ++msgid "Enumerate Input Method Backward" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:51 ++msgid "Enumerate Input Method Forward" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:75 ++msgid "Enumerate Input Method Group Backward" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:68 ++msgid "Enumerate Input Method Group Forward" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:40 ++msgid "Enumerate when press trigger key repeatedly" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1127 ++msgid "" ++"Environment variable ${1} is \"${2}\" instead of \"${3}\". Please check if " ++"you have exported it incorrectly in any of your init files." ++msgstr "" ++"مۇھىت ئۆزگەرگۈچى مىقدار $ {1} نىڭ قىممىتى \"${3}\"نىڭ ئورنىغا\"${2}\"قىلىپ " ++"بېكىتىلگەن، سىز مەلۇم بىر دەسلەپكى ھۆججەتتە ئۇنىڭ قىممىتىنى خاتا تەڭشەپ " ++"قويغان قويمىغانلىقىڭىزنى تەكشۈرۈپ بېقىڭ ." ++ ++#: data/fcitx5-diagnose.sh:874 ++msgid "Environment variable ${1} is not set." ++msgstr "مۇھىت ئۆزگەرگۈچى مىقدار $ {1} بېكىتىلمىگەن." ++ ++#: data/fcitx5-diagnose.sh:1121 ++msgid "Environment variable ${1} is set to \"${2}\" correctly." ++msgstr "مۇھىت ئۆزگەرگۈچى مىقدار ${1} توغىرلىنىپ، ${2}\"قىلىپ بىكىتىلدى\"." ++ ++#: data/fcitx5-diagnose.sh:878 ++msgid "Environment variable ${1} is set to ${2}." ++msgstr "مۇھىت ئۆزگەرگۈچى مىقدار ${1} ${2} قىلىپ بېكىتىلدى." ++ ++#: data/fcitx5-diagnose.sh:832 ++msgid "Environment:" ++msgstr "مۇھىت:" ++ ++#: data/fcitx5-diagnose.sh:860 ++msgid "Error occurs when running ${1}. Please check your locale settings." ++msgstr "" ++"${1} نى ئىجرا قىلغاندا خاتالىق يۈز بەردى، رايون تەڭشىكىڭىزنى تەكشۈرۈپ بېقىڭ." ++ ++#: src/lib/fcitx-utils/key.cpp:231 ++msgctxt "Key name" ++msgid "Escape" ++msgstr "Esc كۇنۇپكىسى" ++ ++#: src/lib/fcitx-utils/key.cpp:265 ++msgctxt "Key name" ++msgid "Execute" ++msgstr "ئىجرا قىلىش" ++ ++#: src/ui/classic/xcbtraywindow.cpp:40 ++#: src/modules/notificationitem/dbusmenu.cpp:265 ++msgid "Exit" ++msgstr "چىقىش ئېغىزى" ++ ++#: data/fcitx5-diagnose.sh:1506 ++msgid "Failed to find ${1} in immodule cache at ${2}" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1422 ++msgid "Failed to find ${1} in the output of ${2}" ++msgstr "" ++ ++#: src/modules/quickphrase/quickphrase.h:45 ++msgid "Fallback Spell check language" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:107 ++msgctxt "Key name" ++msgid "Favorites" ++msgstr "ياخشى كۆرىدىغانلار" ++ ++#: src/modules/wayland/waylandmodule.cpp:449 ++msgid "Fcitx" ++msgstr "كىچىك پىنگۋىن خەت كىرگۈزگۈچى" ++ ++#: data/org.fcitx.Fcitx5.desktop.in.in:3 ++#: data/org.fcitx.Fcitx5.metainfo.xml.in:6 ++msgid "Fcitx 5" ++msgstr "" ++ ++#: data/fcitx5-configtool.desktop.in.in:3 ++msgid "Fcitx 5 Configuration" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1564 ++msgid "Fcitx Addons:" ++msgstr "Fcitx قىستۇرمىسى:" ++ ++#: data/fcitx5-diagnose.sh:1096 ++msgid "Fcitx Configure UI:" ++msgstr "Fcitx سەپلىمە يۈزى:" ++ ++#: data/fcitx5-diagnose.sh:935 ++msgid "Fcitx State:" ++msgstr "Fcitx ھالىتى:" ++ ++#: data/org.fcitx.Fcitx5.metainfo.xml.in:9 ++msgid "" ++"Fcitx is an input method framework. It can help you to type your own " ++"language. It also features variant choice of addons that improve your typing " ++"experience." ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.cpp:463 ++msgid "" ++"Fcitx should be launched by KWin under KDE Wayland in order to use Wayland " ++"input method frontend. This can improve the experience when using Fcitx on " ++"Wayland. To configure this, you need to go to \"System Settings\" -> " ++"\"Virtual keyboard\" and select \"Fcitx 5\" from it. You may also need to " ++"disable tools that launches input method, such as imsettings on Fedora, or " ++"im-config on Debian/Ubuntu. For more details see https://fcitx-im.org/wiki/" ++"Using_Fcitx_5_on_Wayland#KDE_Plasma" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:949 ++msgid "Fcitx version: ${1}" ++msgstr "Fcitx نەشىرى: ${1}" ++ ++#: src/frontend/fcitx4frontend/fcitx4frontend.conf.in.in:3 ++msgid "Fcitx4 Frontend" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:147 ++msgctxt "Key name" ++msgid "Finance" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:225 ++msgctxt "Key name" ++msgid "Find" ++msgstr "ئىزدەش" ++ ++#: src/ui/classic/theme.h:49 ++msgid "First Candidate" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:164 ++msgid "Follow system accent color if it is supported by theme and desktop" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:160 ++msgid "Follow system light/dark color scheme" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1284 ++msgid "" ++"Following error may not be accurate because guessing Qt version from path " ++"depends on how your distribution packages Qt. It is not a critical error if " ++"you do not use any Qt application with certain version of Qt or you are " ++"using text-input support by Qt under Wayland." ++msgstr "" ++ ++#: src/ui/classic/classicui.h:120 ++msgid "Font" ++msgstr "خەت شەكلى" ++ ++#: src/ui/classic/classicui.h:150 ++msgid "" ++"For example, display character with Chinese variant when using Pinyin and " ++"Japanese variant when using Anthy. The font configuration needs to support " ++"this to use this feature." ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.cpp:530 ++msgid "For more details see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:178 ++msgid "Force font DPI on Wayland" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:94 ++msgctxt "Key name" ++msgid "Forward" ++msgstr "ئىلگىرىلەش" ++ ++#: data/fcitx5-diagnose.sh:1276 ++msgid "Found ${1} ${2} module: ${3}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:969 ++msgid "Found ${1} ${2} process:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:967 ++msgid "Found ${1} ${2} processes:" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1587 ++msgid "Found ${1} addon config directory: ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:944 data/fcitx5-diagnose.sh:1060 ++#: data/fcitx5-diagnose.sh:1073 data/fcitx5-diagnose.sh:1101 ++msgid "Found ${1} at ${2}." ++msgstr "${2} دىن ${1} تېپىلدى." ++ ++#: data/fcitx5-diagnose.sh:1640 ++msgid "Found ${1} disabled addons:" ++msgstr "${1} چەكلەنگەن قىستۇرما تېپىلدى :" ++ ++#: data/fcitx5-diagnose.sh:1631 ++msgid "Found ${1} enabled addons:" ++msgstr "${1} قوزغالغان قىستۇرما دېتال تېپىلدى :" ++ ++#: data/fcitx5-diagnose.sh:1681 ++msgid "Found ${1} enabled user interface addons:" ++msgstr "${1} قوزغىتىلغان ئىشلەتكۈچى كۆرۈنمە يۈزى قىستۇرمىسىنى تاپتى :" ++ ++#: data/fcitx5-diagnose.sh:1416 data/fcitx5-diagnose.sh:1500 ++msgid "Found ${1} im modules for gtk ${2}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1087 ++msgid "Found ${1} kcm module." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1408 ++msgid "Found ${2} for unknown gtk version at ${1}." ++msgstr "${1} دا نامەلۇم gtk نەشىرىنىڭ ${2} نى تاپتى." ++ ++#: data/fcitx5-diagnose.sh:1400 ++msgid "Found ${3} for gtk ${1} at ${2}." ++msgstr "${2} دا gtk ${1}دىن ${3}نى تاپتى." ++ ++#: data/fcitx5-diagnose.sh:1263 data/fcitx5-diagnose.sh:1268 ++msgid "Found ${3} im module for ${2}: ${1}." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1493 ++msgid "Found immodule cache for unknown gtk version at ${1}." ++msgstr "" ++"${1} دىن نامەلۇم gtk نەشىرىدىكى كىرگۈزگۈچ مودۇللۇق بۇفېرلىق ساقلىغۇچ تېپىلدى." ++ ++#: data/fcitx5-diagnose.sh:1485 ++msgid "Found immodules cache for gtk ${1} at ${2}." ++msgstr "${2} دىن gtk ${1} نىڭ كىرگۈزگۈچ مودۇلىنى تېپىلدى." ++ ++#: data/fcitx5-diagnose.sh:1279 ++msgid "Found unknown ${1} qt module: ${2}." ++msgstr "" ++ ++#: src/modules/notifications/notifications.conf.in.in:4 ++msgid "Freedesktop.org Notification Support" ++msgstr "Freedesktop.org ئۈستەل يۈزى ئەسكەرتىش قوللايدۇ" ++ ++#: data/fcitx5-diagnose.sh:1785 ++msgid "Frontends setup:" ++msgstr "كۆرۈنمە يۈز تەڭشىكى :" ++ ++#: src/lib/fcitx-utils/key.cpp:165 ++msgctxt "Key name" ++msgid "Game" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:166 ++msgctxt "Key name" ++msgid "Go" ++msgstr "بارماق" ++ ++#: src/lib/fcitx-utils/key.cpp:220 ++msgctxt "Key name" ++msgid "Green" ++msgstr "يېشىل" ++ ++#: src/ui/classic/xcbtraywindow.cpp:36 ++#: src/modules/notificationitem/dbusmenu.cpp:241 ++msgid "Group" ++msgstr "گۇرۇپپا" ++ ++#: src/lib/fcitx/instance.cpp:411 ++#, c++-format ++msgid "Group {0}: {1}" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:356 ++#, c++-format ++msgid "Group {}" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1361 ++msgid "Gtk ${1} immodule file ${2} does not exist." ++msgstr "${1}gtk كىرگۈزگۈچ بۆلەك ھۆججىتى ${2} مەۋجۇت ئەمەس." ++ ++#: data/fcitx5-diagnose.sh:1545 ++msgid "Gtk IM module cache:" ++msgstr "Gtk كىرگۈزۈگۈچى بۆلەك بۇففىر ساقلىغۇچى :" ++ ++#: data/fcitx5-diagnose.sh:1550 ++msgid "Gtk IM module files:" ++msgstr "Gtk كىرگۈزگۈچ بۆلەك ھۆججىتى :" ++ ++#: data/fcitx5-diagnose.sh:753 ++msgid "Hall of Shame for Linux IME Support" ++msgstr "Linuxكىرگۈزگۈچىسى قوللايدۇ" ++ ++#: src/lib/fcitx-utils/key.cpp:253 ++msgctxt "Key name" ++msgid "Hangul" ++msgstr "خاڭگۇلچە" ++ ++#: src/lib/fcitx-utils/key.cpp:260 ++msgctxt "Key name" ++msgid "Hangul Banja" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:255 ++msgctxt "Key name" ++msgid "Hangul End" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:256 ++msgctxt "Key name" ++msgid "Hangul Hanja" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:257 ++msgctxt "Key name" ++msgid "Hangul Jamo" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:259 ++msgctxt "Key name" ++msgid "Hangul Jeonja" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:262 ++msgctxt "Key name" ++msgid "Hangul PostHanja" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:261 ++msgctxt "Key name" ++msgid "Hangul PreHanja" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:258 ++msgctxt "Key name" ++msgid "Hangul Romaja" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:263 ++msgctxt "Key name" ++msgid "Hangul Special" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:254 ++msgctxt "Key name" ++msgid "Hangul Start" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:242 ++msgctxt "Key name" ++msgid "Hankaku" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:92 ++msgctxt "Key name" ++msgid "Help" ++msgstr "ياردەم" ++ ++#: src/lib/fcitx-utils/key.cpp:236 ++msgctxt "Key name" ++msgid "Henkan" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:213 ++msgctxt "Key name" ++msgid "Hibernate" ++msgstr "ئۇيقۇ ھالىتى" ++ ++#: src/modules/notifications/notifications.h:28 ++msgid "Hidden Notifications" ++msgstr "" ++ ++#: src/ui/classic/theme.h:116 ++msgid "Hide overlay if size does not fit" ++msgstr "" ++ ++#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:180 ++msgid "Highlight Background" ++msgstr "" ++ ++#: src/ui/classic/theme.h:140 ++msgid "Highlight Background color" ++msgstr "" ++ ++#: src/ui/classic/theme.h:143 ++msgid "Highlight Candidate Color" ++msgstr "" ++ ++#: src/ui/classic/theme.h:126 ++msgid "Highlight Click Margin" ++msgstr "" ++ ++#: src/ui/classic/theme.h:138 ++msgid "Highlight text color" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:238 ++msgctxt "Key name" ++msgid "Hiragana" ++msgstr "ھىراگانا" ++ ++#: src/lib/fcitx-utils/key.cpp:240 ++msgctxt "Key name" ++msgid "Hiragana Katakana" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:143 ++msgctxt "Key name" ++msgid "History" ++msgstr "قويۇش تارىخى" ++ ++#: src/lib/fcitx-utils/key.cpp:45 ++msgctxt "Key name" ++msgid "Home" ++msgstr "باشبەت" ++ ++#: src/lib/fcitx-utils/key.cpp:175 ++msgctxt "Key name" ++msgid "Home Office" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:106 ++msgctxt "Key name" ++msgid "Home Page" ++msgstr "باش بەت >" ++ ++#: data/fcitx5-diagnose.sh:870 ++msgid "Home:" ++msgstr "غول مۇدەرىجە:" ++ ++#: src/lib/fcitx-utils/key.cpp:145 ++msgctxt "Key name" ++msgid "Hot Links" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:200 ++msgid "Hotkey" ++msgstr "تېزلەتمە كۇنۇپكا" ++ ++#: src/modules/imselector/imselector.h:35 ++msgid "Hotkey for switching to the N-th input method" ++msgstr "" ++ ++#: src/modules/imselector/imselector.h:44 ++msgid "" ++"Hotkey for switching to the N-th input method for only current input context" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:564 ++msgctxt "Key name" ++msgid "Hyper" ++msgstr "Hyper" ++ ++#: src/frontend/ibusfrontend/ibusfrontend.conf.in.in:3 ++msgid "IBus Frontend" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:196 ++msgid "" ++"If value is 0, the user data may only be saved when fcitx quits (e.g. " ++"logout)." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:742 ++msgid "" ++"If you are using ${1}, you may want to uninstall ${2} or remove ${3} in " ++"order to use any input method other than ${2}. See ${link} for more detail " ++"as well as alternative solutions." ++msgstr "" ++"ئەگەر سىز ${1} ئىشلىتىۋاتقان بولسىڭىز، ${2}ياكى ${3}نى ، ئومۇمەن ئىشلىتىپ " ++"بولغان ${2} دىن باشقا ھەرقانداق كىرگۈزگۈچنى ئۆچۈرۋەتكەن بولۇشىڭىز مۇمكىن․ " ++"باشقا ھەل قىلىش ئۇسۇللىرى ئۈچۈن ${link} دىن پايدىلىنىڭ." ++ ++#: data/fcitx5-diagnose.sh:740 ++msgid "" ++"If you are using ${1}, you may want to uninstall ${2}, remove ${3} or use " ++"the command ${g36_disable_ibus} to disable IBus integration in order to use " ++"any input method other than ${2}. See ${link} for more detail." ++msgstr "" ++"ئەگەر سىز ${1} ئىشلىتىۋاتقان بولسىڭىز، بەلكىم ${2} نى تازىلاپ، ${3} نى " ++"ئۆچۈرۈشىڭىز ياكى ${g36_disable_ibus} بۇيرۇقىنى ئىشلىتىشىڭىز كېرەك․ چەكلەنگەن " ++"IBus توپلىمى ${2} دىن باشقا ھەرقانداق كىرگۈزگۈچنى ئىشلىتىدۇ. تېخىمۇ كۆپ " ++"تەپسىلاتلارنى ${link} دىن كۆرۈڭ." ++ ++#: src/ui/classic/theme.h:129 ++msgid "Image" ++msgstr "سۈرەت" ++ ++#: src/im/keyboard/keyboard.cpp:684 src/lib/fcitx/instance.cpp:446 ++#: src/lib/fcitx/instance.cpp:672 src/lib/fcitx/instance.cpp:834 ++#: src/modules/notificationitem/notificationitem.cpp:147 ++#: src/modules/notificationitem/notificationitem.cpp:235 ++#: src/modules/xcb/xcbconnection.cpp:521 data/org.fcitx.Fcitx5.desktop.in.in:4 ++#: data/org.fcitx.Fcitx5.metainfo.xml.in:7 ++msgid "Input Method" ++msgstr "كىرگۈزگۈچ" ++ ++#: data/fcitx5-configtool.desktop.in.in:4 ++msgid "Input Method Configuration" ++msgstr "كىرگۈزگۈچ سەپلىمىسى" ++ ++#: data/fcitx5-diagnose.sh:717 ++msgid "Input Method Related Environment Variables: " ++msgstr "كىرگۈزۈش ئۇسۇلىغا مۇناسىۋەتلىك مۇھىت ئۆزگەرگۈچى مىقدار : " ++ ++#: data/fcitx5-diagnose.sh:1704 ++msgid "Input Methods:" ++msgstr "كىرگۈزگۈچ:" ++ ++#: src/ui/classic/theme.h:201 ++msgid "Input Panel" ++msgstr "" ++ ++#: src/ui/classic/theme.h:65 ++msgid "Input Panel Background" ++msgstr "" ++ ++#: src/ui/classic/theme.h:65 ++msgid "Input Panel Border" ++msgstr "" ++ ++#: src/ui/classic/theme.h:67 ++msgid "Input Panel Highlight" ++msgstr "" ++ ++#: src/ui/classic/theme.h:66 ++msgid "Input Panel Highlight Candidate Background" ++msgstr "" ++ ++#: src/ui/classic/theme.h:67 ++msgid "Input Panel Highlight Candidate Border" ++msgstr "" ++ ++#: src/modules/imselector/imselector.conf.in.in:3 ++msgid "Input method selector" ++msgstr "كىرگۈگۈچ تاللىغۇچ" ++ ++#: src/lib/fcitx/globalconfig.cpp:103 src/lib/fcitx/globalconfig.cpp:115 ++msgid "" ++"Input methods may have different setup in their own configuration. This is " ++"commonly used by modules like clipboard or quickphrase." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:229 ++msgctxt "Key name" ++msgid "Insert" ++msgstr "قىستۇرۇش" ++ ++#: src/lib/fcitx/globalconfig.cpp:192 ++msgid "Interval of saving user data in minutes" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1599 ++msgid "Invalid addon config file ${1}." ++msgstr "ئىناۋەتسىز قىستۇرما سەپلىمە ھۆججەت:${1}." ++ ++#: data/fcitx5-diagnose.sh:1205 ++msgid "" ++"It is OK to use ${1} built-in Wayland im module if your compositor fully " ++"supports text-input protocol used by ${1}." ++msgstr "" ++ ++#: src/modules/wayland/waylandmodule.cpp:488 ++msgid "" ++"It is recommended to install Input Method Panel GNOME Shell Extensions to " ++"provide the input method popup. https://extensions.gnome.org/extension/261/" ++"kimpanel/ Otherwise you may not be able to see input method popup when " ++"typing in GNOME Shell's activities search box. For more details see https://" ++"fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#GNOME" ++msgstr "" ++ ++#: src/ui/kimpanel/kimpanel.conf.in.in:3 ++msgid "KDE Input Method Panel" ++msgstr "" ++ ++#: src/ui/classic/classicui.cpp:260 ++msgid "KDE Plasma (Experimental)" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:246 ++msgctxt "Key name" ++msgid "Kana Lock" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:247 ++msgctxt "Key name" ++msgid "Kana Shift" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:234 ++msgctxt "Key name" ++msgid "Kanji" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:239 ++msgctxt "Key name" ++msgid "Katakana" ++msgstr "كاتاكانا" ++ ++#: src/im/keyboard/longpress.h:16 ++msgid "Key" ++msgstr "كۇنۇپكا" ++ ++#: src/im/keyboard/keyboard.cpp:315 src/im/keyboard/keyboard.conf.in.in:3 ++msgid "Keyboard" ++msgstr "كۇنۇپكا تاختىسى" ++ ++#: src/im/keyboard/keyboard.cpp:231 ++#, c++-format ++msgid "Keyboard - {0}" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:250 ++#, c++-format ++msgid "Keyboard - {0} - {1}" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:134 ++msgctxt "Key name" ++msgid "Keyboard Brightness Down" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:132 ++msgctxt "Key name" ++msgid "Keyboard Brightness Up" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:836 ++msgid "Keyboard Layout:" ++msgstr "كۇنۇپكا قۇرۇلمىسى:" ++ ++#: src/lib/fcitx-utils/key.cpp:131 ++msgctxt "Key name" ++msgid "Keyboard Light On/Off" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:171 ++msgctxt "Key name" ++msgid "Keyboard Menu" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:74 ++msgctxt "Key name" ++msgid "Keypad *" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:75 ++msgctxt "Key name" ++msgid "Keypad +" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:76 ++msgctxt "Key name" ++msgid "Keypad ," ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:77 ++msgctxt "Key name" ++msgid "Keypad -" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:78 ++msgctxt "Key name" ++msgid "Keypad ." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:79 ++msgctxt "Key name" ++msgid "Keypad /" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:80 ++msgctxt "Key name" ++msgid "Keypad 0" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:81 ++msgctxt "Key name" ++msgid "Keypad 1" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:82 ++msgctxt "Key name" ++msgid "Keypad 2" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:83 ++msgctxt "Key name" ++msgid "Keypad 3" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:84 ++msgctxt "Key name" ++msgid "Keypad 4" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:85 ++msgctxt "Key name" ++msgid "Keypad 5" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:86 ++msgctxt "Key name" ++msgid "Keypad 6" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:87 ++msgctxt "Key name" ++msgid "Keypad 7" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:88 ++msgctxt "Key name" ++msgid "Keypad 8" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:89 ++msgctxt "Key name" ++msgid "Keypad 9" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:73 ++msgctxt "Key name" ++msgid "Keypad =" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:70 ++msgctxt "Key name" ++msgid "Keypad Begin" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:72 ++msgctxt "Key name" ++msgid "Keypad Delete" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:66 ++msgctxt "Key name" ++msgid "Keypad Down" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:69 ++msgctxt "Key name" ++msgid "Keypad End" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:57 ++msgctxt "Key name" ++msgid "Keypad Enter" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:58 ++msgctxt "Key name" ++msgid "Keypad F1" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:59 ++msgctxt "Key name" ++msgid "Keypad F2" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:60 ++msgctxt "Key name" ++msgid "Keypad F3" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:61 ++msgctxt "Key name" ++msgid "Keypad F4" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:62 ++msgctxt "Key name" ++msgid "Keypad Home" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:71 ++msgctxt "Key name" ++msgid "Keypad Insert" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:63 ++msgctxt "Key name" ++msgid "Keypad Left" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:68 ++msgctxt "Key name" ++msgid "Keypad Page Down" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:67 ++msgctxt "Key name" ++msgid "Keypad Page Up" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:65 ++msgctxt "Key name" ++msgid "Keypad Right" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:55 ++msgctxt "Key name" ++msgid "Keypad Space" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:56 ++msgctxt "Key name" ++msgid "Keypad Tab" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:64 ++msgctxt "Key name" ++msgid "Keypad Up" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1690 ++msgid "Kimpanel process:" ++msgstr "Kimpanel ئىجراچى:" ++ ++#: src/ui/classic/theme.h:50 ++msgid "Last Candidate" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:112 ++msgctxt "Key name" ++msgid "Launch (0)" ++msgstr "قوزغىتىشى (0)" ++ ++#: src/lib/fcitx-utils/key.cpp:113 ++msgctxt "Key name" ++msgid "Launch (1)" ++msgstr "قويۇپ بېرىش (1)" ++ ++#: src/lib/fcitx-utils/key.cpp:114 ++msgctxt "Key name" ++msgid "Launch (2)" ++msgstr "قويۇپ بېرىش (2)" ++ ++#: src/lib/fcitx-utils/key.cpp:115 ++msgctxt "Key name" ++msgid "Launch (3)" ++msgstr "قويۇپ بېرىش (3)" ++ ++#: src/lib/fcitx-utils/key.cpp:116 ++msgctxt "Key name" ++msgid "Launch (4)" ++msgstr "قوزغىتىشى (4)" ++ ++#: src/lib/fcitx-utils/key.cpp:117 ++msgctxt "Key name" ++msgid "Launch (5)" ++msgstr "قويۇپ بېرىش (5)" ++ ++#: src/lib/fcitx-utils/key.cpp:118 ++msgctxt "Key name" ++msgid "Launch (6)" ++msgstr "قويۇپ بېرىش (6)" ++ ++#: src/lib/fcitx-utils/key.cpp:119 ++msgctxt "Key name" ++msgid "Launch (7)" ++msgstr "قويۇپ بېرىش (7)" ++ ++#: src/lib/fcitx-utils/key.cpp:120 ++msgctxt "Key name" ++msgid "Launch (8)" ++msgstr "قويۇپ بېرىش (8)" ++ ++#: src/lib/fcitx-utils/key.cpp:121 ++msgctxt "Key name" ++msgid "Launch (9)" ++msgstr "قويۇپ بېرىش (9)" ++ ++#: src/lib/fcitx-utils/key.cpp:122 ++msgctxt "Key name" ++msgid "Launch (A)" ++msgstr "قويۇپ بېرىش (A)" ++ ++#: src/lib/fcitx-utils/key.cpp:123 ++msgctxt "Key name" ++msgid "Launch (B)" ++msgstr "قويۇپ بېرىش (ب)" ++ ++#: src/lib/fcitx-utils/key.cpp:124 ++msgctxt "Key name" ++msgid "Launch (C)" ++msgstr "قويۇپ بېرىش (C)" ++ ++#: src/lib/fcitx-utils/key.cpp:125 ++msgctxt "Key name" ++msgid "Launch (D)" ++msgstr "قويۇپ بېرىش (D)" ++ ++#: src/lib/fcitx-utils/key.cpp:126 ++msgctxt "Key name" ++msgid "Launch (E)" ++msgstr "قويۇپ بېرىش (E)" ++ ++#: src/lib/fcitx-utils/key.cpp:127 ++msgctxt "Key name" ++msgid "Launch (F)" ++msgstr "قويۇپ بېرىش (F)" ++ ++#: src/lib/fcitx-utils/key.cpp:111 ++msgctxt "Key name" ++msgid "Launch Mail" ++msgstr "پوچتا يوللانمىسىنى قوزغىتىۋىتىلدى" ++ ++#: src/lib/fcitx-utils/key.cpp:47 ++msgctxt "Key name" ++msgid "Left" ++msgstr "سول" ++ ++#: src/lib/fcitx-utils/key.cpp:30 ++msgctxt "Key name" ++msgid "Left Alt" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:34 ++msgctxt "Key name" ++msgid "Left Control" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:38 ++msgctxt "Key name" ++msgid "Left Hyper" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:32 ++msgctxt "Key name" ++msgid "Left Shift" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:36 ++msgctxt "Key name" ++msgid "Left Super" ++msgstr "سول Super" ++ ++#: src/lib/fcitx-utils/key.cpp:141 ++msgctxt "Key name" ++msgid "LightBulb" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:851 ++msgid "Locale:" ++msgstr "دائىرە بېكىتىش:" ++ ++#: data/fcitx5-diagnose.sh:1799 ++msgid "Log:" ++msgstr "خاتىرە:" ++ ++#: src/lib/fcitx-utils/key.cpp:168 ++msgctxt "Key name" ++msgid "Logoff" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:89 ++msgid "Long Press behavior" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:201 ++msgctxt "Key name" ++msgid "Mail Forward" ++msgstr "" ++ ++#: src/ui/classic/theme.h:118 ++msgid "Margin" ++msgstr "" ++ ++#: src/ui/classic/theme.h:80 ++msgid "Margin Bottom" ++msgstr "" ++ ++#: src/ui/classic/theme.h:74 ++msgid "Margin Left" ++msgstr "" ++ ++#: src/ui/classic/theme.h:76 ++msgid "Margin Right" ++msgstr "" ++ ++#: src/ui/classic/theme.h:78 ++msgid "Margin Top" ++msgstr "" ++ ++#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 ++msgid "Margin around all content" ++msgstr "" ++ ++#: src/ui/classic/theme.h:164 src/ui/classic/theme.h:188 ++msgid "Margin around text" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:169 ++msgctxt "Key name" ++msgid "Market" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:245 ++msgctxt "Key name" ++msgid "Massyo" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:207 ++msgctxt "Key name" ++msgid "Media Fast Forward" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:103 ++msgctxt "Key name" ++msgid "Media Next" ++msgstr "كېيىنكى مېدىيا" ++ ++#: src/lib/fcitx-utils/key.cpp:105 ++msgctxt "Key name" ++msgid "Media Pause" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:100 ++msgctxt "Key name" ++msgid "Media Play" ++msgstr "كۆپ ۋاسىتىلىك ئاڭلىتىش" ++ ++#: src/lib/fcitx-utils/key.cpp:102 ++msgctxt "Key name" ++msgid "Media Previous" ++msgstr "ئالدىنقى مېدىيا" ++ ++#: src/lib/fcitx-utils/key.cpp:104 ++msgctxt "Key name" ++msgid "Media Record" ++msgstr "مېدىيا خاتىرىسى" ++ ++#: src/lib/fcitx-utils/key.cpp:149 ++msgctxt "Key name" ++msgid "Media Rewind" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:101 ++msgctxt "Key name" ++msgid "Media Stop" ++msgstr "كۆپ ۋاسىتىلىك توختىتىش" ++ ++#: src/lib/fcitx-utils/key.cpp:170 ++msgctxt "Key name" ++msgid "Meeting" ++msgstr "" ++ ++#: src/ui/classic/theme.h:202 ++msgid "Menu" ++msgstr "تىزىملىك" ++ ++#: src/lib/fcitx-utils/key.cpp:91 ++msgctxt "Key name" ++msgid "Menu" ++msgstr "تىزىملىك" ++ ++#: src/ui/classic/theme.h:68 ++msgid "Menu Background" ++msgstr "" ++ ++#: src/ui/classic/theme.h:68 ++msgid "Menu Border" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:122 ++msgid "Menu Font" ++msgstr "تىزىملىك فونتى" ++ ++#: src/lib/fcitx-utils/key.cpp:172 ++msgctxt "Key name" ++msgid "Menu PB" ++msgstr "" ++ ++#: src/ui/classic/theme.h:69 ++msgid "Menu Selected Item Background" ++msgstr "" ++ ++#: src/ui/classic/theme.h:69 ++msgid "Menu Selected Item Border" ++msgstr "" ++ ++#: src/ui/classic/theme.h:70 ++msgid "Menu Separator" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:199 ++msgctxt "Key name" ++msgid "Messenger" ++msgstr "" ++ ++#: src/ui/classic/theme.h:199 ++msgid "Metadata" ++msgstr "مېتادون" ++ ++#: src/lib/fcitx-utils/key.cpp:218 ++msgctxt "Key name" ++msgid "Microphone Mute" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:130 ++msgctxt "Key name" ++msgid "Monitor Brightness Down" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:128 ++msgctxt "Key name" ++msgid "Monitor Brightness Up" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:235 ++msgctxt "Key name" ++msgid "Muhenkan" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:251 ++msgctxt "Key name" ++msgid "Multiple Candidate" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:203 ++msgctxt "Key name" ++msgid "Music" ++msgstr "ناخشا-مۇزىكا" ++ ++#: src/lib/fcitx-utils/key.cpp:173 ++msgctxt "Key name" ++msgid "My Sites" ++msgstr "مېنىڭ پونكىتىم" ++ ++#: src/ui/classic/theme.h:191 ++msgid "Name" ++msgstr "ئىسىم-فامىلىسى" ++ ++#: src/lib/fcitx-utils/key.cpp:223 ++msgctxt "Key name" ++msgid "New" ++msgstr "يېڭى" ++ ++#: src/lib/fcitx-utils/key.cpp:174 ++msgctxt "Key name" ++msgid "News" ++msgstr "ئۇچۇرنى يېڭىلاش" ++ ++#: src/im/keyboard/keyboard.h:48 ++msgid "Next Candidate" ++msgstr "" ++ ++#: src/ui/classic/theme.h:166 ++msgid "Next Page Button" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:27 ++msgid "No" ++msgstr "ياق" ++ ++#: src/modules/clipboard/clipboard.cpp:355 ++msgid "No clipboard history." ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:28 ++msgid "None" ++msgstr "يوق" ++ ++#: src/ui/classic/theme.h:135 src/ui/classic/theme.h:171 ++msgid "Normal text color" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:182 ++msgid "" ++"Normally Wayland uses 96 as font DPI in combinition with the screen scale " ++"factor. This option allows you to override the font DPI. If the value is 0, " ++"it means this option is disabled." ++msgstr "" ++ ++#: src/ui/kimpanel/kimpanel.cpp:386 ++msgid "Not available" ++msgstr "ئىشلەتكىلى بولمايدۇ" ++ ++#: data/fcitx5-diagnose.sh:733 ++msgid "Note for GNOME Later than 3.6" ++msgstr "3.6 دىن كېيىنكى نۇسخىدىكى GNOME غا ئىزاھات" ++ ++#: src/modules/notifications/notifications.conf.in.in:3 ++msgid "Notification" ++msgstr "ئۇقتۇرۇش" ++ ++#: src/lib/fcitx-utils/key.cpp:54 ++msgctxt "Key name" ++msgid "NumLock" ++msgstr "قۇلۇپلاش كونۇپكىسى" ++ ++#: src/modules/clipboard/clipboard.h:48 ++msgid "Number of entries" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.cpp:670 ++msgid "" ++"Only emoji support is found. To enable spell checking, you may need to " ++"install spell check data for the language." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:224 ++msgctxt "Key name" ++msgid "Open" ++msgstr "ئېچىش" ++ ++#: src/lib/fcitx-utils/key.cpp:110 ++msgctxt "Key name" ++msgid "Open URL" ++msgstr "URL نى ئېچىش" ++ ++#: src/lib/fcitx-utils/key.cpp:176 ++msgctxt "Key name" ++msgid "Option" ++msgstr "تاللانما" ++ ++#: src/ui/classic/theme.h:120 ++msgid "Overlay Clip Margin" ++msgstr "" ++ ++#: src/ui/classic/theme.h:110 ++msgid "Overlay Image" ++msgstr "" ++ ++#: src/ui/classic/theme.h:113 ++msgid "Overlay X offset" ++msgstr "قاپلانغان رەسىم X كە سۈرۈش" ++ ++#: src/ui/classic/theme.h:114 ++msgid "Overlay Y offset" ++msgstr "قاپلانغان رەسىم Y كە سۈرۈش" ++ ++#: src/ui/classic/theme.h:112 ++msgid "Overlay position" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:166 ++msgid "Override Xkb Option" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:991 ++msgid "Owner of DBus name ${1} is ${2}." ++msgstr "نۆۋەتتە DBus نامى ${1} نىڭ ئىگىسى ${2}." ++ ++#: data/fcitx5-diagnose.sh:999 ++msgid "PID of DBus name ${1} owner is ${2}." ++msgstr "نۆۋەتتە DBus نامى ${1} نىڭ PID ئىگىسى ${2}." ++ ++#: src/lib/fcitx-utils/key.cpp:52 ++msgctxt "Key name" ++msgid "Page Down" ++msgstr "بەتنى تۆۋەن قىلىش" ++ ++#: src/lib/fcitx-utils/key.cpp:51 ++msgctxt "Key name" ++msgid "Page Up" ++msgstr "ئۈستىنكى بەت" ++ ++#: src/ui/classic/theme.h:155 ++msgid "Page button vertical alignment" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:37 ++msgid "Page size" ++msgstr "بەت چوڭ-كىچىكلىكى" ++ ++#: src/lib/fcitx-utils/key.cpp:177 ++msgctxt "Key name" ++msgid "Paste" ++msgstr "چاپلاش" ++ ++#: src/modules/clipboard/clipboard.h:46 ++msgid "Paste Primary" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:44 ++msgctxt "Key name" ++msgid "Pause" ++msgstr "Pause" ++ ++#: src/lib/fcitx-utils/key.cpp:178 ++msgctxt "Key name" ++msgid "Phone" ++msgstr "تېلېفون" ++ ++#: src/lib/fcitx-utils/key.cpp:202 ++msgctxt "Key name" ++msgid "Pictures" ++msgstr "رەسىملەر" ++ ++#: data/fcitx5-diagnose.sh:940 ++msgid "Please check ${1} for how to install fcitx5." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:962 ++msgid "" ++"Please check the Configure link of your distribution in ${1} for how to " ++"setup ${2} autostart." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:714 ++msgid "" ++"Please set environment variable ${env_name} to \"${value}\" using the tool " ++"your distribution provides or add ${1} to your ${2}. See ${link}." ++msgstr "" ++"سىز تارقاتقان نۇسخا تەمىنلىگەن قۇرال ئارقىلىق مۇھىت ئۆزگەرگۈچى مىقدار " ++"${env_name} نى \"${value}\" غا تەڭشەڭ ياكى ${1} نى${2} غا قوشۇڭ․ {link} نى " ++"كۆرۈپ پايدىلانسىڭىز بولىدۇ." ++ ++#: src/lib/fcitx-utils/key.cpp:216 ++msgctxt "Key name" ++msgid "Power Down" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:135 ++msgctxt "Key name" ++msgid "Power Off" ++msgstr "تاقاش" ++ ++#: src/lib/fcitx/instance.cpp:834 ++msgid "Preedit" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:836 ++msgid "Preedit disabled" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:835 ++msgid "Preedit enabled" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:130 src/ui/kimpanel/kimpanel.h:33 ++msgid "Prefer Text Icon" ++msgstr "" ++ ++#: src/modules/spell/spell.h:22 ++msgid "Presage" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:42 ++msgid "Prev Candidate" ++msgstr "" ++ ++#: src/ui/classic/theme.h:165 ++msgid "Prev Page Button" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:252 ++msgctxt "Key name" ++msgid "Previous Candidate" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:228 ++msgctxt "Key name" ++msgid "Print Screen" ++msgstr "بېسىپ چىقىرىش ئېكرانى" ++ ++#: src/lib/fcitx/globalconfig.cpp:27 ++msgid "Program" ++msgstr "پىروگىرامما" ++ ++#: data/fcitx5-diagnose.sh:1249 ++msgid "Qt IM module files:" ++msgstr "Qtكىرگۈزگۈچ بۆلەك ھۆججىتى:" ++ ++#: src/modules/quickphrase/quickphrase.conf.in.in:3 ++msgid "Quick Phrase" ++msgstr "" ++ ++#: src/modules/quickphrase/quickphrase.cpp:472 ++msgid "Quick Phrase: " ++msgstr "تېز كىرگۈزۈزش: " ++ ++#: src/lib/fcitx-utils/key.cpp:219 ++msgctxt "Key name" ++msgid "Red" ++msgstr "قىزىل" ++ ++#: src/lib/fcitx-utils/key.cpp:227 ++msgctxt "Key name" ++msgid "Redo" ++msgstr "قايتا-قايتا" ++ ++#: src/lib/fcitx-utils/key.cpp:96 ++msgctxt "Key name" ++msgid "Refresh" ++msgstr "يېڭىلاش" ++ ++#: src/lib/fcitx-utils/key.cpp:180 ++msgctxt "Key name" ++msgid "Reload" ++msgstr "قايتا قاچىلاش" ++ ++#: src/lib/fcitx-utils/key.cpp:179 ++msgctxt "Key name" ++msgid "Reply" ++msgstr "" ++ ++#: src/ui/classic/xcbtraywindow.cpp:39 ++#: src/modules/notificationitem/dbusmenu.cpp:259 ++msgid "Restart" ++msgstr "قايتا قوزغىتىش" ++ ++#: src/lib/fcitx-utils/key.cpp:43 ++msgctxt "Key name" ++msgid "Return" ++msgstr "قايتىش" ++ ++#: src/lib/fcitx-utils/key.cpp:49 ++msgctxt "Key name" ++msgid "Right" ++msgstr "ئوڭ" ++ ++#: src/lib/fcitx-utils/key.cpp:31 ++msgctxt "Key name" ++msgid "Right Alt" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:35 ++msgctxt "Key name" ++msgid "Right Control" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:39 ++msgctxt "Key name" ++msgid "Right Hyper" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:33 ++msgctxt "Key name" ++msgid "Right Shift" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:37 ++msgctxt "Key name" ++msgid "Right Super" ++msgstr "ئوڭ Super" ++ ++#: src/lib/fcitx-utils/key.cpp:237 ++msgctxt "Key name" ++msgid "Romaji" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:181 ++msgctxt "Key name" ++msgid "Rotate Windows" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:183 ++msgctxt "Key name" ++msgid "Rotation KB" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:182 ++msgctxt "Key name" ++msgid "Rotation PB" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:916 ++msgid "Running as root:" ++msgstr "باشقۇرغۇچى سۈپىتىدە ئىجرا قىلىش :" ++ ++#: src/lib/fcitx-utils/key.cpp:184 ++msgctxt "Key name" ++msgid "Save" ++msgstr "ساقلاش" ++ ++#: src/lib/fcitx-utils/key.cpp:138 ++msgctxt "Key name" ++msgid "Screensaver" ++msgstr "ئېكران قوغداش" ++ ++#: src/lib/fcitx-utils/key.cpp:90 ++msgctxt "Key name" ++msgid "ScrollLock" ++msgstr "دومىلىما قۇلۇپلاش كونۇپكىسى" ++ ++#: src/lib/fcitx-utils/key.cpp:108 ++msgctxt "Key name" ++msgid "Search" ++msgstr "ئىزدە" ++ ++#: src/lib/fcitx-utils/key.cpp:233 ++msgctxt "Key name" ++msgid "Select" ++msgstr "تاللاش" ++ ++#: src/modules/imselector/imselector.cpp:257 ++msgid "Select input method:" ++msgstr "" ++ ++#: src/modules/imselector/imselector.cpp:256 ++msgid "Select local input method:" ++msgstr "" ++ ++#: src/modules/imselector/imselector.conf.in.in:4 ++msgid "Select specific input method via keyboard" ++msgstr "كۇنۇپكا تاختىسى ئارقىلىق ئالاھىدە خەت كىرگۈزگۈچنى تاللاڭ" ++ ++#: src/ui/classic/theme.h:174 ++msgid "Selected Item text color" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:185 ++msgctxt "Key name" ++msgid "Send" ++msgstr "يوللاش" ++ ++#: src/modules/wayland/waylandmodule.cpp:519 ++msgid "" ++"Sending keyboard layout configuration to wayland compositor from Fcitx is " ++"not yet supported on current desktop. You may still use Fcitx's internal " ++"layout conversion by adding layout as input method to the input method group." ++msgstr "" ++ ++#: src/ui/classic/theme.h:182 ++msgid "Separator Background" ++msgstr "" ++ ++#: src/ui/classic/theme.h:168 ++msgid "Shadow Margin" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:141 ++msgid "Share Input State" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:561 ++msgctxt "Key name" ++msgid "Shift" ++msgstr "Shift" ++ ++#: src/lib/fcitx-utils/key.cpp:142 ++msgctxt "Key name" ++msgid "Shop" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:151 ++msgid "Show Input Method Information when changing focus" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:148 ++msgid "Show Input Method Information when switch input method" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:135 ++msgid "Show Layout Name In Icon" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:154 ++msgid "Show compact input method information" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:157 ++msgid "Show first input method information" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:139 ++msgid "" ++"Show layout name in icon if there is more than one active layout. If prefer " ++"text icon is set to true, this option will be ignored." ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:144 ++msgid "Show preedit in application" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:188 ++msgid "Show preedit text when typing password" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:77 ++msgid "" ++"Show preedit when composing, and commit dead key if there is no matching " ++"sequence." ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:64 ++msgid "Skip first input method while enumerating" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:140 ++msgctxt "Key name" ++msgid "Sleep" ++msgstr "ئۇخلىتىش" ++ ++#: src/lib/fcitx-utils/key.cpp:40 ++msgctxt "Key name" ++msgid "Space" ++msgstr "بوشلۇق" ++ ++#: src/ui/classic/theme.h:176 ++msgid "Spacing" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:79 src/modules/spell/spell.conf.in.in:3 ++msgid "Spell" ++msgstr "ئىملا" ++ ++#: src/lib/fcitx-utils/key.cpp:186 ++msgctxt "Key name" ++msgid "Spellchecker" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:187 ++msgctxt "Key name" ++msgid "Split Screen" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:163 ++msgctxt "Key name" ++msgid "Spreadsheet" ++msgstr "خىزمەت جەدىۋېلى" ++ ++#: src/lib/fcitx-utils/key.cpp:109 ++msgctxt "Key name" ++msgid "Standby" ++msgstr "ساقلاش" ++ ++#: data/org.fcitx.Fcitx5.desktop.in.in:5 ++msgid "Start Input Method" ++msgstr "كىرگۈزگۈچنى قوزغىتىش" ++ ++#: src/modules/notificationitem/notificationitem.conf.in.in:3 ++msgid "Status Notifier" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:95 ++msgctxt "Key name" ++msgid "Stop" ++msgstr "باشتىن ئاخىر توساش" ++ ++#: src/ui/classic/theme.h:184 ++msgid "Sub Menu" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:210 ++msgctxt "Key name" ++msgid "Subtitle" ++msgstr "ئېكران خېتى تەڭشىكى" ++ ++#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 ++msgid "Super" ++msgstr "Super" ++ ++#: src/lib/fcitx-utils/key.cpp:562 ++msgctxt "Key name" ++msgid "Super" ++msgstr "Super" ++ ++#: src/lib/fcitx-utils/key.cpp:188 ++msgctxt "Key name" ++msgid "Support" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:217 ++msgctxt "Key name" ++msgid "Suspend" ++msgstr "ئۇخلىتىپ قويۇش ھالىتى" ++ ++#: src/lib/fcitx/instance.cpp:447 src/lib/fcitx/instance.cpp:673 ++#: src/modules/xcb/xcbconnection.cpp:522 ++msgid "Switch group" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:448 src/modules/xcb/xcbconnection.cpp:523 ++#, c++-format ++msgid "Switch group to {0}" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:674 ++#, c++-format ++msgid "Switched group to {0}" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:789 ++msgid "System Info:" ++msgstr "سېستىما ئۇچۇرى:" ++ ++#: src/lib/fcitx-utils/key.cpp:232 ++msgctxt "Key name" ++msgid "System Request" ++msgstr "سىستېما ئىلتىماسى" ++ ++#: src/lib/fcitx-utils/key.cpp:41 ++msgctxt "Key name" ++msgid "Tab" ++msgstr "Tab" ++ ++#: src/lib/fcitx-utils/key.cpp:189 ++msgctxt "Key name" ++msgid "Task Panel" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:44 ++msgid "Temporally switch between first and current Input Method" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:190 ++msgctxt "Key name" ++msgid "Terminal" ++msgstr "تېرمىنال" ++ ++#: data/fcitx5-diagnose.sh:1786 ++#, sh-format ++msgid "" ++"The environment variable checked by this script only shows the environment " ++"under current shell. It is still possible that you did not set the " ++"environment to the whole graphic desktop session. You may inspect the actual " ++"environment variable of a certain process by using `xargs -0 -L1 /proc/$PID/" ++"environ` for a certain process that you find not working." ++msgstr "" ++ ++#: src/modules/imselector/imselector.h:40 ++#: src/modules/imselector/imselector.h:50 ++msgid "The n-th hotkey in the list selects the n-th input method." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:895 ++msgid "The script is run as ${1} (${2})." ++msgstr "قوليازما ${1} (${2}) دەپ ئىجرا بولىدۇ." ++ ++#: src/ui/classic/classicui.h:155 ++msgid "Theme" ++msgstr "Theme" ++ ++#: src/ui/classic/classicui.h:101 ++msgid "This is only effective when the tray icon is xembed." ++msgstr "" ++ ++#: src/ui/classic/theme.h:93 src/ui/classic/theme.h:101 ++msgid "This option is only effective if image is not set." ++msgstr "" ++ ++#: src/ui/classic/classicui.h:194 ++msgid "This option require support from wayland compositor." ++msgstr "" ++ ++#: src/ui/classic/classicui.h:173 ++msgid "This option will be always disabled on XWayland." ++msgstr "" ++ ++#: src/ui/classic/theme.h:109 ++msgid "This value should be less than any of margin value." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1805 ++msgid "" ++"Though such information can be helpful to developers for diagnostic purpose, " ++"please double check and remove as necessary before posting it online " ++"publicly." ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:212 ++msgctxt "Key name" ++msgid "Time" ++msgstr "ۋاقتىدا" ++ ++#: data/fcitx5-diagnose.sh:750 ++#, sh-format ++msgid "" ++"To see some application specific problems you may have when using xim, check " ++"${link1}. For other more general problems of using XIM including application " ++"freezing, see ${link2}." ++msgstr "" ++"سىز ${link1} دىن xim نى ئىشلەتكەندە مەسىلە كۆرۈلىدىغان بەزى ئەپلەرنى " ++"تاپالايسىز. قوللىنىشچان پروگراممىلارنىڭ قېتىۋېلىشىنى ئۆز ئىچىگە ئالغان xim " ++"نى ئىشلىتىشتە كۆرۈلۈش ئېھتىمالى بولغان تېخىمۇ كۆپ مەسىلىلەرنى ${link2} دىن " ++"كۆرۈڭ." ++ ++#: src/lib/fcitx/globalconfig.cpp:132 ++msgid "Toggle embedded preedit" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:191 ++msgctxt "Key name" ++msgid "Tools" ++msgstr "قۇراللار" ++ ++#: src/ui/classic/theme.h:48 ++msgid "Top" ++msgstr "ئەڭ ئۈستى" ++ ++#: src/ui/classic/theme.h:35 ++msgid "Top Center" ++msgstr "چوققا كۆرۈنمىسۇن كۆرۈش مەركىزى" ++ ++#: src/ui/classic/theme.h:35 ++msgid "Top Left" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:215 ++msgctxt "Key name" ++msgid "Top Menu" ++msgstr "" ++ ++#: src/ui/classic/theme.h:36 ++msgid "Top Right" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:268 ++msgctxt "Key name" ++msgid "Touchpad Off" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:267 ++msgctxt "Key name" ++msgid "Touchpad On" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:266 ++msgctxt "Key name" ++msgid "Touchpad Toggle" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:244 ++msgctxt "Key name" ++msgid "Touroku" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:192 ++msgctxt "Key name" ++msgid "Travel" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:124 ++msgid "Tray Font" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:126 ++msgid "Tray Label Outline Color" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:129 ++msgid "Tray Label Text Color" ++msgstr "" ++ ++#: src/lib/fcitx/globalconfig.cpp:34 ++msgid "Trigger Input Method" ++msgstr "ئاكتىپلاش / ئاكتىپسىز كىرگۈزگۈچنى ئالماشتۇرۇش" ++ ++#: src/modules/imselector/imselector.h:25 ++#: src/modules/quickphrase/quickphrase.h:36 src/modules/unicode/unicode.h:31 ++#: src/modules/clipboard/clipboard.h:42 ++msgid "Trigger Key" ++msgstr "" ++ ++#: src/modules/imselector/imselector.h:29 ++msgid "Trigger Key for only current input context" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:62 ++msgid "Trigger hint mode" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:67 ++msgid "Trigger hint mode for one time" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:82 ++msgid "Type special characters with long press" ++msgstr "" ++ ++#: src/modules/unicode/unicode.h:36 ++msgid "Type unicode in Hex number" ++msgstr "" ++ ++#: data/org.fcitx.Fcitx5.metainfo.xml.in:22 ++msgid "Typing with Fcitx and Kimpanel" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1011 ++msgid "Unable to find a program to check dbus." ++msgstr "نۆۋەتتە dbus نى تەكشۈرۈش پروگراممىسىنى تاپالمىدى." ++ ++#: src/lib/fcitx-utils/key.cpp:226 ++msgctxt "Key name" ++msgid "Undo" ++msgstr "Undo" ++ ++#: src/modules/unicode/unicode.conf.in.in:3 ++msgid "Unicode" ++msgstr "بىر تۇتاش كود" ++ ++#: src/modules/unicode/unicode.cpp:456 ++msgid "Unicode: " ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:48 ++msgctxt "Key name" ++msgid "Up" ++msgstr "يۇقىرىغا" ++ ++#: src/frontend/xim/xim.h:33 ++msgid "Use On The Spot Style (Needs restarting)" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:169 ++msgid "Use Per Screen DPI on X11" ++msgstr "" ++ ++#: src/ui/classic/theme.h:151 ++msgid "Use all horizontal space for highlight when it is vertical list" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:146 ++msgid "Use input method language to display text" ++msgstr "" ++ ++#: src/ui/classic/classicui.h:116 ++msgid "Use mouse wheel to go to prev or next page" ++msgstr "" ++ ++#: src/im/keyboard/keyboard.h:73 ++msgid "Use new compose behavior" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1677 ++msgid "User Interface:" ++msgstr "ئابونېنت كۆرۈنمە يۈزى:" ++ ++#: data/fcitx5-diagnose.sh:986 ++msgid "Using ${1} to check dbus." ++msgstr "${1} نى ئىشلىتىپ dbus نى تەكشۈرۈڭ." ++ ++#: data/fcitx5-diagnose.sh:256 ++msgid "" ++"Using ${1} to check the actual im module to be used under current " ++"environment:" ++msgstr "" ++ ++#: src/ui/classic/theme.h:192 ++msgid "Version" ++msgstr "نەشرى" ++ ++#: data/fcitx5-diagnose.sh:1405 data/fcitx5-diagnose.sh:1489 ++msgid "Version Line:" ++msgstr "نەشىرى:" ++ ++#: src/ui/classic/classicui.h:114 ++msgid "Vertical Candidate List" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:193 ++msgctxt "Key name" ++msgid "Video" ++msgstr "ۋىدېئو" ++ ++#: src/lib/fcitx-utils/key.cpp:214 ++msgctxt "Key name" ++msgid "View" ++msgstr "كۆرۈش" ++ ++#: src/lib/fcitx-utils/key.cpp:97 ++msgctxt "Key name" ++msgid "Volume Down" ++msgstr "ئاۋاز تۆەنلىتىش" ++ ++#: src/lib/fcitx-utils/key.cpp:98 ++msgctxt "Key name" ++msgid "Volume Mute" ++msgstr "ئاۋاز چوڭلۇقى" ++ ++#: src/lib/fcitx-utils/key.cpp:99 ++msgctxt "Key name" ++msgid "Volume Up" ++msgstr "ئاۋازنى كۆتۈرۈش" ++ ++#: src/lib/fcitx-utils/key.cpp:139 ++msgctxt "Key name" ++msgid "WWW" ++msgstr "دۇنيا تور بىرلەشمىسى" ++ ++#: src/lib/fcitx-utils/key.cpp:136 ++msgctxt "Key name" ++msgid "Wake Up" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1804 ++msgid "" ++"Warning: the output of fcitx5-diagnose contains sensitive information, " ++"including the distribution name, kernel version, name of currently running " ++"programs, etc." ++msgstr "" ++ ++#: src/modules/wayland/wayland.conf.in.in:3 ++msgid "Wayland" ++msgstr "Wayland" ++ ++#: src/modules/wayland/waylandmodule.cpp:449 ++msgid "Wayland Diagnose" ++msgstr "" ++ ++#: src/frontend/waylandim/waylandim.conf.in.in:3 ++msgid "Wayland Input method frontend" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:200 ++msgctxt "Key name" ++msgid "WebCam" ++msgstr "تور كامىراسى" ++ ++#: src/lib/fcitx/globalconfig.cpp:170 ++msgid "" ++"Whether to override the xkb option from display server. It will not affect " ++"the xkb option send to display, but just the xkb options for custom xkb " ++"layout." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:926 ++msgid "Why is it bad to run as root" ++msgstr "روت سالاھىيىتىنىڭ ياخشى ئىشلىمەسلىكنىڭ سەۋەبى" ++ ++#: src/lib/fcitx-utils/key.cpp:206 ++msgctxt "Key name" ++msgid "Wireless" ++msgstr "سىمسىز" ++ ++#: src/lib/fcitx-utils/key.cpp:194 ++msgctxt "Key name" ++msgid "Word Processor" ++msgstr "" ++ ++#: src/frontend/xim/xim.conf.in.in:3 ++msgid "X Input Method Frontend" ++msgstr "" ++ ++#: src/modules/xcb/xcb.conf.in.in:3 ++msgid "XCB" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:825 ++msgid "XDG SESSION TYPE:" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:195 ++msgctxt "Key name" ++msgid "XFer" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1188 ++msgid "XIM encoding:" ++msgstr "XIM كودى :" ++ ++#: data/fcitx5-diagnose.sh:1183 ++msgid "XIM for Emacs:" ++msgstr "Emacs قا ئىشلىتىلىدىغان XIM :" ++ ++#: data/fcitx5-diagnose.sh:1159 ++msgid "XIM_SERVERS on root window:" ++msgstr "غول كۆزنەك ئۈستىدىكى XIM_SERVERS:" ++ ++#: data/fcitx5-diagnose.sh:1136 ++msgid "XMODIFIERS is not set" ++msgstr "XMODIFIERS بېكىتىلمىگەن" ++ ++#: data/fcitx5-diagnose.sh:1157 ++msgid "Xim Server Name from Environment variable is ${1}." ++msgstr "مۇھىت ئۆزگەرگۈچى مىقداردىن ئېرىشكەن Xim مۇلازىمەت نامى ${1}." ++ ++#: data/fcitx5-diagnose.sh:1169 ++msgid "Xim server name is the same with that set in the environment variable." ++msgstr "" ++"Xim مۇلازىمىتىنىڭ نامى مۇھىت ئۆزگەرگۈچى مىقدارىدا بەلگىلەنگىنى بىلەن ئوخشاش." ++ ++#: data/fcitx5-diagnose.sh:1171 ++msgid "" ++"Xim server name: \"${1}\" is different from that set in the environment " ++"variable: \"${2}\"." ++msgstr "" ++"Xim مۇلازىمەت نامى:${1}\"بىلەن مۇھىت ئۆزگەرگۈچى مىقدارىدا بېكىتىلگەن قىممەت\"" ++"${2}\"ئوخشىمايدۇ." ++ ++#: src/lib/fcitx-utils/key.cpp:221 ++msgctxt "Key name" ++msgid "Yellow" ++msgstr "سېرىق رەڭ" ++ ++#: data/fcitx5-diagnose.sh:924 ++msgid "" ++"You are probably logging in as ${1} or using ${2} to run this script. This " ++"either means you have security problems or the result of this script may not " ++"be accurate. See ${3} or ${4} for more information." ++msgstr "" ++"سىز ${1} ياكى ${2} ئارقىلىق بۇ قوليازمىنى ئىجرا قىلسىڭىز بولىدۇ. بۇ ئىككى " ++"خىل ئەھۋالدىن دېرەك بېرىدۇ، يا سىزدە بىخەتەرلىك مەسىلىسى بار ياكى بۇ " ++"يېزىقنىڭ نەتىجىسى توغرا بولماسلىقى مۇمكىن. تېخىمۇ كۆپ ئۇچۇرغا ئېرىشىش ئۈچۈن " ++"${3} ياكى ${4} دىن پايدىلىنىڭ." ++ ++#: data/fcitx5-diagnose.sh:919 ++msgid "" ++"You are probably using ${1} to run this script. This means the result of " ++"this script may not be accurate. See ${2} for more information." ++msgstr "" ++"سىز بەلكىم ${1} ئارقىلىق بۇ سېنارىيەنى ئىجرا قىلىۋاتقان بولۇشىڭىز مۇمكىن. بۇ " ++"سېنارىيەنىڭ نەتىجىسىنىڭ توغرا بولماسلىقى مۇمكىنلىكىدىن دېرەك بېرىدۇ. تېخىمۇ " ++"كۆپ ئۇچۇرغا ئېرىشىش ئۈچۈن ${2} دىن پايدىلىنىڭ." ++ ++#: data/fcitx5-diagnose.sh:1213 ++msgid "You are using xim in ${1} programs." ++msgstr "سىز ${1} پىروگراممىسىدا xim نى ئىشلىتىۋاتىسىز." ++ ++#: data/fcitx5-diagnose.sh:1218 ++msgid "You may have trouble using fcitx in ${1} programs." ++msgstr "" ++"سىز بەلكىم ${1} پىروگىراممىسىدا fcitx نى ئىشلەتكەندە مەسىلىگە يۇلۇققان " ++"بولىشىڭىز مۇمكىن." ++ ++#: data/fcitx5-configtool.sh:134 ++msgid "" ++"You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be " ++"found. Now it will open config directory." ++msgstr "" ++ ++#: data/fcitx5-configtool.sh:131 ++msgid "" ++"You're currently running KDE, but KCModule for fcitx couldn't be found, the " ++"package name of this KCModule is usually kcm-fcitx or kde-config-fcitx. Now " ++"it will open config directory." ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:1185 ++msgid "" ++"Your LC_CTYPE is set to ${1} instead of one of zh, ja, ko. You may not be " ++"able to use input method in emacs because of an really old emacs bug that " ++"upstream refuse to fix for years." ++msgstr "" ++"سىزنىڭ LC _ CTYPE نى ${1} قىلىپ تەڭشەپ قويغىنىڭىز بولسا، z, ja, ko دىن بىرسى " ++"ئەمەس. سىز بەلكىم Emacs دا كىرگۈزگۈچنى ئىشلىتەلمەسلىكىڭىز مۇمكىن، بۇ " ++"ئۈستىدىكى مەنبەنىڭ ئۇزۇ نۋاقىت رېمونتلانماسلىقىدىن كېلىپ چىققان كونا كاشىلا." ++ ++#: data/fcitx5-diagnose.sh:1190 ++msgid "" ++"Your LC_CTYPE is set to ${1} whose encoding is not UTF-8. You may have " ++"trouble committing strings using XIM." ++msgstr "" ++"سىزنىڭ LC _ CTYPE نى ${1} قىلىپ تەڭشىدىڭىز، ئۇنىڭ كودى UTF-8 ئەمەس. سىز " ++"بەلكىم XIM نى ئىشلىتىپ ھەرپ-بەلگە تىزىقى تاپشۇرغاندا مەسىلىگە يولۇقۇشىڭىز " ++"مۇمكىن." ++ ++#: src/lib/fcitx-utils/key.cpp:241 ++msgctxt "Key name" ++msgid "Zenkaku" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:243 ++msgctxt "Key name" ++msgid "Zenkaku Hankaku" ++msgstr "" ++ ++#: src/lib/fcitx-utils/key.cpp:196 ++msgctxt "Key name" ++msgid "Zoom In" ++msgstr "چوڭايتىش" ++ ++#: src/lib/fcitx-utils/key.cpp:197 ++msgctxt "Key name" ++msgid "Zoom Out" ++msgstr "كىچىكلىتىش" ++ ++#: data/fcitx5-diagnose.sh:936 ++msgid "executable:" ++msgstr "ئىجرا قىلىشقا بولىدىغان ھۆججەت :" ++ ++#: data/fcitx5-diagnose.sh:757 ++msgid "here" ++msgstr "بۇ يەردە" ++ ++#: src/lib/fcitx-utils/key.cpp:167 ++msgctxt "Key name" ++msgid "iTouch" ++msgstr "" ++ ++#: data/fcitx5-diagnose.sh:950 ++msgid "process:" ++msgstr "ئىجراچى :" ++ ++#: data/fcitx5-diagnose.sh:921 data/fcitx5-diagnose.sh:927 ++msgid "sudo environment variables" ++msgstr "sudoنىڭ مۇھىت ئۆگەرگۈچى مىقدارى" ++ ++#: data/fcitx5-diagnose.sh:946 ++msgid "version:" ++msgstr "نەشىرى:" ++ ++#: src/im/keyboard/keyboard.cpp:292 ++#, c++-format ++msgid "{0} (Not Available)" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:405 ++#, c++-format ++msgid "{0} (Not available)" ++msgstr "" ++ ++#: src/lib/fcitx/instance.cpp:402 ++#, c++-format ++msgid "{0} ({1})" ++msgstr "" +diff --git a/src/im/keyboard/keyboard.cpp b/src/im/keyboard/keyboard.cpp +index 9b10efa..78288ba 100644 +--- a/src/im/keyboard/keyboard.cpp ++++ b/src/im/keyboard/keyboard.cpp +@@ -254,13 +254,24 @@ std::vector<InputMethodEntry> KeyboardEngine::listInputMethods() { + if (uniqueName == "keyboard-us") { + usExists = true; + } +- result.push_back(std::move( +- InputMethodEntry(uniqueName, description, language, "keyboard") +- .setLabel(layoutInfo.shortDescription.empty() +- ? layoutInfo.name +- : layoutInfo.shortDescription) +- .setIcon("input-keyboard") +- .setConfigurable(true))); ++ if (uniqueName == "keyboard-us" && getDesktopType() == DesktopType::UKUI) { ++ result.push_back(std::move( ++ InputMethodEntry(uniqueName, description, language, "keyboard") ++ .setLabel(layoutInfo.shortDescription.empty() ++ ? layoutInfo.name ++ : layoutInfo.shortDescription) ++ .setIcon("ukui-english-en-symbolic") ++ .setConfigurable(true))); ++ } else { ++ result.push_back(std::move( ++ InputMethodEntry(uniqueName, description, language, "keyboard") ++ .setLabel(layoutInfo.shortDescription.empty() ++ ? layoutInfo.name ++ : layoutInfo.shortDescription) ++ .setIcon("input-keyboard") ++ .setConfigurable(true))); ++ } ++ + for (const auto &variantInfo : layoutInfo.variantInfos) { + auto language = findBestLanguage(isoCodes, variantInfo.description, + !variantInfo.languages.empty() +diff --git a/src/lib/fcitx/globalconfig.cpp b/src/lib/fcitx/globalconfig.cpp +index 763e728..1c976d8 100644 +--- a/src/lib/fcitx/globalconfig.cpp ++++ b/src/lib/fcitx/globalconfig.cpp +@@ -44,14 +44,17 @@ FCITX_CONFIGURATION( + this, + "AltTriggerKeys", + _("Temporally switch between first and current Input Method"), +- {Key("Shift_L")}, ++ {}, + KeyListConstrain({KeyConstrainFlag::AllowModifierLess, + KeyConstrainFlag::AllowModifierOnly})}; + KeyListOption enumerateForwardKeys{ + this, + "EnumerateForwardKeys", + _("Enumerate Input Method Forward"), +- {}, ++ { ++ Key("Control+Shift_L"), ++ Key("Control+Shift_R"), ++ }, + KeyListConstrain({KeyConstrainFlag::AllowModifierLess, + KeyConstrainFlag::AllowModifierOnly})}; + KeyListOption enumerateBackwardKeys{ +@@ -146,14 +149,13 @@ FCITX_CONFIGURATION( + OptionWithAnnotation<PropertyPropagatePolicy, + PropertyPropagatePolicyI18NAnnotation> + shareState{this, "ShareInputState", _("Share Input State"), +- isAndroid() ? PropertyPropagatePolicy::All +- : PropertyPropagatePolicy::No}; ++ PropertyPropagatePolicy::All}; + Option<bool> preeditEnabledByDefault{this, "PreeditEnabledByDefault", + _("Show preedit in application"), +- true}; ++ false}; + Option<bool> showInputMethodInformation{ + this, "ShowInputMethodInformation", +- _("Show Input Method Information when switch input method"), true}; ++ _("Show Input Method Information when switch input method"), false}; + Option<bool> showInputMethodInformationWhenFocusIn{ + this, "showInputMethodInformationWhenFocusIn", + _("Show Input Method Information when changing focus"), false}; +diff --git a/src/lib/fcitx/instance.cpp b/src/lib/fcitx/instance.cpp +index d2e9aa2..4215bf3 100644 +--- a/src/lib/fcitx/instance.cpp ++++ b/src/lib/fcitx/instance.cpp +@@ -1042,11 +1042,9 @@ Instance::Instance(int argc, char **argv) { + + activateInputMethod(icEvent); + +- if (virtualKeyboardAutoShow()) { +- auto *inputContext = icEvent.inputContext(); +- if (!inputContext->clientControlVirtualkeyboardShow()) { +- inputContext->showVirtualKeyboard(); +- } ++ auto *inputContext = icEvent.inputContext(); ++ if (!inputContext->clientControlVirtualkeyboardShow()) { ++ inputContext->showVirtualKeyboard(); + } + + if (!d->globalConfig_.showInputMethodInformationWhenFocusIn() || +@@ -1091,11 +1089,10 @@ Instance::Instance(int argc, char **argv) { + d->lastUnFocusedProgram_ = icEvent.inputContext()->program(); + d->lastUnFocusedIc_ = icEvent.inputContext()->watch(); + deactivateInputMethod(icEvent); +- if (virtualKeyboardAutoHide()) { +- auto *inputContext = icEvent.inputContext(); +- if (!inputContext->clientControlVirtualkeyboardHide()) { +- inputContext->hideVirtualKeyboard(); +- } ++ ++ auto *inputContext = icEvent.inputContext(); ++ if (!inputContext->clientControlVirtualkeyboardHide()) { ++ inputContext->hideVirtualKeyboard(); + } + })); + d->eventWatchers_.emplace_back(d->watchEvent( +diff --git a/src/lib/fcitx/instance_p.h b/src/lib/fcitx/instance_p.h +index 4676d89..541a976 100644 +--- a/src/lib/fcitx/instance_p.h ++++ b/src/lib/fcitx/instance_p.h +@@ -219,9 +219,9 @@ public: + + std::string lastGroup_; + +- bool virtualKeyboardAutoShow_ = true; ++ bool virtualKeyboardAutoShow_ = false; + +- bool virtualKeyboardAutoHide_ = true; ++ bool virtualKeyboardAutoHide_ = false; + + VirtualKeyboardFunctionMode virtualKeyboardFunctionMode_ = + VirtualKeyboardFunctionMode::Full; +diff --git a/src/lib/fcitx/userinterfacemanager.cpp b/src/lib/fcitx/userinterfacemanager.cpp +index fa9e269..19178b0 100644 +--- a/src/lib/fcitx/userinterfacemanager.cpp ++++ b/src/lib/fcitx/userinterfacemanager.cpp +@@ -333,6 +333,11 @@ bool UserInterfaceManager::isVirtualKeyboardVisible() const { + void UserInterfaceManager::showVirtualKeyboard() const { + FCITX_D(); + ++ auto *instance = d->addonManager_->instance(); ++ if (!instance->virtualKeyboardAutoShow()) { ++ return; ++ } ++ + auto *ui = d->ui_; + if (ui == nullptr || ui->addonInfo() == nullptr || + ui->addonInfo()->uiType() != UIType::OnScreenKeyboard) { +@@ -346,6 +351,11 @@ void UserInterfaceManager::showVirtualKeyboard() const { + void UserInterfaceManager::hideVirtualKeyboard() const { + FCITX_D(); + ++ auto *instance = d->addonManager_->instance(); ++ if (!instance->virtualKeyboardAutoHide()) { ++ return; ++ } ++ + auto *ui = d->ui_; + if (ui == nullptr || ui->addonInfo() == nullptr || + ui->addonInfo()->uiType() != UIType::OnScreenKeyboard) { +diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt +index 2d4ce0b..d7c72cb 100644 +--- a/src/modules/CMakeLists.txt ++++ b/src/modules/CMakeLists.txt +@@ -17,6 +17,8 @@ add_subdirectory(unicode) + add_subdirectory(clipboard) + add_subdirectory(emoji) + add_subdirectory(imselector) ++add_subdirectory(devicestatusmanager) ++add_subdirectory(commitstringdbus) + + write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/Fcitx5ModuleConfigVersion.cmake" VERSION @FCITX_VERSION@ COMPATIBILITY AnyNewerVersion) + +diff --git a/src/modules/commitstringdbus/CMakeLists.txt b/src/modules/commitstringdbus/CMakeLists.txt +new file mode 100644 +index 0000000..26f34fa +--- /dev/null ++++ b/src/modules/commitstringdbus/CMakeLists.txt +@@ -0,0 +1,14 @@ ++set(COMMITSTRINGDBUS_SOURCE commitstringdbus.cpp) ++set(LIBRARY_NAME "commitstringdbus") ++ ++add_library(${LIBRARY_NAME} SHARED ${COMMITSTRINGDBUS_SOURCE}) ++ ++target_link_libraries(${LIBRARY_NAME} ++ Fcitx5::Core ++ Fcitx5::Module::DBus ++ ) ++ ++install(TARGETS "${LIBRARY_NAME}" DESTINATION "${FCITX_INSTALL_LIBDIR}/fcitx5") ++ ++configure_file(${LIBRARY_NAME}-addon.conf.in ${LIBRARY_NAME}-addon.conf) ++install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${LIBRARY_NAME}-addon.conf" RENAME ${LIBRARY_NAME}.conf DESTINATION "${FCITX_INSTALL_PKGDATADIR}/addon") +\ No newline at end of file +diff --git a/src/modules/commitstringdbus/commitstringdbus-addon.conf.in b/src/modules/commitstringdbus/commitstringdbus-addon.conf.in +new file mode 100644 +index 0000000..5220fe2 +--- /dev/null ++++ b/src/modules/commitstringdbus/commitstringdbus-addon.conf.in +@@ -0,0 +1,13 @@ ++[Addon] ++Name[zh_CN]=fcitx5 提交字符串dbus ++Name=dbus commit string ++Type=SharedLibrary ++Library=libcommitstringdbus ++Category=Module ++Version=5.1.5 ++OnDemand=False ++Configurable=True ++ ++[Addon/Dependencies] ++0=dbus ++1=core:@PROJECT_VERSION@ +diff --git a/src/modules/commitstringdbus/commitstringdbus.cpp b/src/modules/commitstringdbus/commitstringdbus.cpp +new file mode 100644 +index 0000000..12f36a0 +--- /dev/null ++++ b/src/modules/commitstringdbus/commitstringdbus.cpp +@@ -0,0 +1,77 @@ ++/* ++ * Copyright 2024 KylinSoft Co., Ltd. ++ * ++ * This program is free software: you can redistribute it and/or modify it under ++ * the terms of the GNU General Public License as published by the Free Software ++ * Foundation, either version 3 of the License, or (at your option) any later ++ * version. ++ * ++ * This program is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS ++ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more ++ * details. ++ * ++ * You should have received a copy of the GNU General Public License along with ++ * this program. If not, see <https://www.gnu.org/licenses/>. ++ */ ++ ++#include "commitstringdbus.h" ++ ++static const char backendName_[] = "org.fcitx.Fcitx5.CommitString"; ++static const char backendPatch_[] = "/commitstring"; ++static const char backendInterface_[] = "org.fcitx.Fcitx5.CommitString"; ++ ++class CommitStringBackend ++ : public fcitx::dbus::ObjectVTable<CommitStringBackend> { ++public: ++ explicit CommitStringBackend(CommitStringDBus *parent) : parent_(parent) {} ++ ++ ~CommitStringBackend() = default; ++ ++ void commitString(const std::string &str) { parent_->commitString(str); } ++ ++private: ++ FCITX_OBJECT_VTABLE_METHOD(commitString, "CommitString", "s", ""); ++ ++private: ++ CommitStringDBus *parent_; ++}; ++ ++CommitStringDBus::CommitStringDBus(fcitx::Instance *instance) ++ : instance_(instance), bus_(dbus()->call<fcitx::IDBusModule::bus>()), ++ watcher_(*bus_) { ++ initDBusInterface(); ++} ++ ++CommitStringDBus::~CommitStringDBus() {} ++ ++void CommitStringDBus::initDBusInterface() { ++ commitStringBackend_ = std::make_unique<CommitStringBackend>(this); ++ bus_->addObjectVTable(backendPatch_, backendInterface_, ++ *commitStringBackend_); ++ ++ bus_->requestName(backendName_, ++ fcitx::Flags<fcitx::dbus::RequestNameFlag>{ ++ fcitx::dbus::RequestNameFlag::ReplaceExisting, ++ fcitx::dbus::RequestNameFlag::Queue}); ++ bus_->flush(); ++} ++ ++void CommitStringDBus::commitString(const std::string &text) { ++ commitStringToCurrentWindow(text); ++} ++ ++void CommitStringDBus::commitStringToCurrentWindow(const std::string &text) { ++ fcitx::InputContext *inputContext = instance_->mostRecentInputContext(); ++ if (inputContext == nullptr) { ++ FCITX_INFO() << "DBus Commit String Error: inputContext is null !"; ++ } ++ ++ inputContext->commitString(text); ++} ++ ++void CommitStringDBus::commitStringToLastWindow(const std::string &text) { ++ commitStringToCurrentWindow(text); ++} ++ ++FCITX_ADDON_FACTORY(CommitStringDBusFactory) +diff --git a/src/modules/commitstringdbus/commitstringdbus.h b/src/modules/commitstringdbus/commitstringdbus.h +new file mode 100644 +index 0000000..0e05914 +--- /dev/null ++++ b/src/modules/commitstringdbus/commitstringdbus.h +@@ -0,0 +1,69 @@ ++/* ++ * Copyright 2024 KylinSoft Co., Ltd. ++ * ++ * This program is free software: you can redistribute it and/or modify it under ++ * the terms of the GNU General Public License as published by the Free Software ++ * Foundation, either version 3 of the License, or (at your option) any later ++ * version. ++ * ++ * This program is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS ++ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more ++ * details. ++ * ++ * You should have received a copy of the GNU General Public License along with ++ * this program. If not, see <https://www.gnu.org/licenses/>. ++ */ ++ ++#ifndef _COMMIT_STRING_DBUS_H_ ++#define _COMMIT_STRING_DBUS_H_ ++ ++#include <iostream> ++#include <memory> ++ ++#include <dbus_public.h> ++#include <fcitx-utils/dbus/bus.h> ++#include <fcitx-utils/dbus/objectvtable.h> ++#include <fcitx-utils/dbus/servicewatcher.h> ++#include <fcitx/addonfactory.h> ++#include <fcitx/addoninstance.h> ++#include <fcitx/addonmanager.h> ++#include <fcitx/instance.h> ++ ++class CommitStringBackend; ++ ++class CommitStringDBus final : public fcitx::AddonInstance { ++public: ++ CommitStringDBus(fcitx::Instance *instance); ++ ~CommitStringDBus() override; ++ ++ fcitx::Instance *instance() { return instance_; } ++ ++ void commitString(const std::string &text); ++ void commitStringToCurrentWindow(const std::string &text); ++ void commitStringToLastWindow(const std::string &text); ++ ++private: ++ void initDBusInterface(); ++ ++private: ++ FCITX_ADDON_DEPENDENCY_LOADER(dbus, instance_->addonManager()); ++ ++private: ++ fcitx::Instance *instance_; ++ fcitx::dbus::Bus *bus_ = nullptr; ++ fcitx::dbus::ServiceWatcher watcher_; ++ std::unique_ptr<fcitx::dbus::ServiceWatcherEntry> entry_; ++ std::unique_ptr<fcitx::dbus::Slot> slot_; ++ std::unique_ptr<CommitStringBackend> commitStringBackend_ = nullptr; ++}; ++ ++class CommitStringDBusFactory : public fcitx::AddonFactory { ++public: ++ fcitx::AddonInstance *create(fcitx::AddonManager *manager) override { ++ FCITX_INFO() << "CommitStringDBusFactory ..."; ++ return new CommitStringDBus(manager->instance()); ++ } ++}; ++ ++#endif +\ No newline at end of file +diff --git a/src/modules/devicestatusmanager/CMakeLists.txt b/src/modules/devicestatusmanager/CMakeLists.txt +new file mode 100644 +index 0000000..1f5e774 +--- /dev/null ++++ b/src/modules/devicestatusmanager/CMakeLists.txt +@@ -0,0 +1,10 @@ ++if (ENABLE_DBUS) ++ add_library(devicestatusmanager MODULE devicestatusmanager.cpp statusmanagerwatcher.cpp physicalkeyboardwatcherstrategy.cpp) ++ target_link_libraries(devicestatusmanager Fcitx5::Core Fcitx5::Module::DBus) ++ install(TARGETS devicestatusmanager DESTINATION "${FCITX_INSTALL_ADDONDIR}") ++ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/devicestatusmanager.conf" DESTINATION "${FCITX_INSTALL_PKGDATADIR}/addon" ++ COMPONENT config) ++endif() ++ ++configure_file(devicestatusmanager.conf.in.in devicestatusmanager.conf.in @ONLY) ++fcitx5_translate_desktop_file(${CMAKE_CURRENT_BINARY_DIR}/devicestatusmanager.conf.in devicestatusmanager.conf) +diff --git a/src/modules/devicestatusmanager/devicestatusmanager.conf.in.in b/src/modules/devicestatusmanager/devicestatusmanager.conf.in.in +new file mode 100644 +index 0000000..0bc8961 +--- /dev/null ++++ b/src/modules/devicestatusmanager/devicestatusmanager.conf.in.in +@@ -0,0 +1,12 @@ ++[Addon] ++Name=Device Status Manager ++Comment=Device Status Manager ++Type=SharedLibrary ++Library=libdevicestatusmanager ++Category=Module ++Version=@PROJECT_VERSION@ ++OnDemand=False ++ ++[Addon/Dependencies] ++0=dbus ++1=core:@PROJECT_VERSION@ +diff --git a/src/modules/devicestatusmanager/devicestatusmanager.cpp b/src/modules/devicestatusmanager/devicestatusmanager.cpp +new file mode 100644 +index 0000000..1cf8008 +--- /dev/null ++++ b/src/modules/devicestatusmanager/devicestatusmanager.cpp +@@ -0,0 +1,50 @@ ++/* ++ * SPDX-FileCopyrightText: 2022-2023 liulinsong <liulinsong@kylinos.cn> ++ * ++ * SPDX-License-Identifier: LGPL-2.1-or-later ++ * ++ */ ++ ++#include "devicestatusmanager.h" ++#include "fcitx/addonfactory.h" ++#include "physicalkeyboardwatcherstrategy.h" ++ ++namespace fcitx { ++ ++DeviceStatusManager::DeviceStatusManager(Instance *instance) ++ : instance_(instance), ++ physicalKeyboardWatcher_(createPhysicalKeyboardWatcherStrategy(), ++ instance) {} ++ ++DeviceStatusManager::~DeviceStatusManager() = default; ++ ++std::unique_ptr<StatusManagerWatcher::Strategy> ++DeviceStatusManager::createPhysicalKeyboardWatcherStrategy() { ++ auto physicalKeyboardAvailabilityChangedCallback = [this]() { ++ const bool isPhysicalKeyboardAvailable = ++ physicalKeyboardWatcher_.isSubjectAvailable(); ++ if (isPhysicalKeyboardAvailable) { ++ instance_->setInputMethodMode(InputMethodMode::PhysicalKeyboard); ++ } else { ++ instance_->setInputMethodMode(InputMethodMode::OnScreenKeyboard); ++ } ++ ++ instance_->setVirtualKeyboardAutoShow(!isPhysicalKeyboardAvailable); ++ ++ instance_->setVirtualKeyboardAutoHide(!isPhysicalKeyboardAvailable); ++ }; ++ ++ return std::unique_ptr<StatusManagerWatcher::Strategy>( ++ new PhysicalKeyboardWatcherStrategy( ++ std::move(physicalKeyboardAvailabilityChangedCallback))); ++} ++ ++class DeviceStatusManagerFactory : public AddonFactory { ++ AddonInstance *create(AddonManager *manager) override { ++ return new DeviceStatusManager(manager->instance()); ++ } ++}; ++ ++} // namespace fcitx ++ ++FCITX_ADDON_FACTORY(fcitx::DeviceStatusManagerFactory) +diff --git a/src/modules/devicestatusmanager/devicestatusmanager.h b/src/modules/devicestatusmanager/devicestatusmanager.h +new file mode 100644 +index 0000000..59c7d74 +--- /dev/null ++++ b/src/modules/devicestatusmanager/devicestatusmanager.h +@@ -0,0 +1,33 @@ ++/* ++ * SPDX-FileCopyrightText: 2022-2023 liulinsong <liulinsong@kylinos.cn> ++ * ++ * SPDX-License-Identifier: LGPL-2.1-or-later ++ * ++ */ ++#ifndef _FCITX_MODULES_DEVICESTATUSMANAGER_DEVICESTATUSMANAGER_H_ ++#define _FCITX_MODULES_DEVICESTATUSMANAGER_DEVICESTATUSMANAGER_H_ ++ ++#include "fcitx/instance.h" ++ ++#include "statusmanagerwatcher.h" ++ ++namespace fcitx { ++ ++class DeviceStatusManager : public AddonInstance { ++public: ++ explicit DeviceStatusManager(Instance *instance); ++ ~DeviceStatusManager() override; ++ ++private: ++ std::unique_ptr<StatusManagerWatcher::Strategy> ++ createPhysicalKeyboardWatcherStrategy(); ++ ++private: ++ Instance *instance_; ++ ++ StatusManagerWatcher physicalKeyboardWatcher_; ++}; ++ ++} // namespace fcitx ++ ++#endif // _FCITX_MODULES_DEVICESTATUSMANAGER_DEVICESTATUSMANAGER_H_ +diff --git a/src/modules/devicestatusmanager/physicalkeyboardwatcher.cpp b/src/modules/devicestatusmanager/physicalkeyboardwatcher.cpp +new file mode 100644 +index 0000000..0416d60 +--- /dev/null ++++ b/src/modules/devicestatusmanager/physicalkeyboardwatcher.cpp +@@ -0,0 +1,95 @@ ++/* ++ * SPDX-FileCopyrightText: 2022-2022 liulinsong <liulinsong@kylinos.cn> ++ * ++ * SPDX-License-Identifier: LGPL-2.1-or-later ++ * ++ */ ++ ++#include "physicalkeyboardwatcher.h" ++#include "devicestatusmanager.h" ++ ++namespace fcitx { ++ ++PhysicalKeyboardWatcher::PhysicalKeyboardWatcher(Instance *instance, ++ DeviceStatusManager *parent) ++ : instance_(instance), parent_(parent), ++ bus_(dbus()->call<IDBusModule::bus>()), watcher_(*bus_) { ++ ensurePhysicalKeyboardUnavailable(); ++ ++ watchStatusManagerService(); ++ ++ connectStatusManagerSignals(); ++} ++ ++PhysicalKeyboardWatcher::~PhysicalKeyboardWatcher() = default; ++ ++void PhysicalKeyboardWatcher::watchStatusManagerService() { ++ entry_ = watcher_.watchService( ++ "com.kylin.statusmanager.interface", ++ [this](const std::string &, const std::string &, ++ const std::string &newOwner) { ++ FCITX_INFO() << "PhysicalKeyboardWatcher new owner: " << newOwner; ++ if (!newOwner.empty()) { ++ setPhysicalKeyboardAvailable(isPhysicalKeyboardAvailableDBus()); ++ } else { ++ ensurePhysicalKeyboardUnavailable(); ++ } ++ }); ++} ++void PhysicalKeyboardWatcher::connectStatusManagerSignals() { ++ slot_ = ++ bus_->addMatch(dbus::MatchRule("com.kylin.statusmanager.interface", "/", ++ "com.kylin.statusmanager.interface", ++ "inputmethod_change_signal"), ++ [this](dbus::Message &msg) { ++ bool available = true; ++ msg >> available; ++ ++ setPhysicalKeyboardAvailable(available); ++ ++ return true; ++ }); ++} ++ ++bool PhysicalKeyboardWatcher::isPhysicalKeyboardAvailable() const { ++ return isPhysicalKeyboardAvailable_; ++} ++ ++void PhysicalKeyboardWatcher::ensurePhysicalKeyboardUnavailable() { ++ updatePhysicalKeyboardAvailable(false); ++} ++ ++void PhysicalKeyboardWatcher::setPhysicalKeyboardAvailable(bool available) { ++ if (isPhysicalKeyboardAvailable_ == available) { ++ return; ++ } ++ ++ updatePhysicalKeyboardAvailable(available); ++} ++ ++void PhysicalKeyboardWatcher::updatePhysicalKeyboardAvailable(bool available) { ++ isPhysicalKeyboardAvailable_ = available; ++ if (isPhysicalKeyboardAvailable_) { ++ instance_->setInputMethodMode(InputMethodMode::PhysicalKeyboard); ++ } else { ++ instance_->setInputMethodMode(InputMethodMode::OnScreenKeyboard); ++ } ++ ++ instance_->setVirtualKeyboardAutoShow(!isPhysicalKeyboardAvailable_); ++ ++ parent_->updateVirtualKeyboardAutoHide(); ++} ++ ++bool PhysicalKeyboardWatcher::isPhysicalKeyboardAvailableDBus() { ++ auto msg = bus_->createMethodCall("com.kylin.statusmanager.interface", "/", ++ "com.kylin.statusmanager.interface", ++ "get_inputmethod_mode"); ++ ++ auto reply = msg.call(0); ++ int available = 0; ++ reply >> available; ++ ++ return static_cast<bool>(available); ++} ++ ++} // namespace fcitx +diff --git a/src/modules/devicestatusmanager/physicalkeyboardwatcherstrategy.cpp b/src/modules/devicestatusmanager/physicalkeyboardwatcherstrategy.cpp +new file mode 100644 +index 0000000..fc85427 +--- /dev/null ++++ b/src/modules/devicestatusmanager/physicalkeyboardwatcherstrategy.cpp +@@ -0,0 +1,35 @@ ++/* ++ * SPDX-FileCopyrightText: 2022-2023 liulinsong <liulinsong@kylinos.cn> ++ * ++ * SPDX-License-Identifier: LGPL-2.1-or-later ++ * ++ */ ++ ++#include "physicalkeyboardwatcherstrategy.h" ++ ++namespace fcitx { ++ ++PhysicalKeyboardWatcherStrategy::PhysicalKeyboardWatcherStrategy( ++ SubjectAvailabilityChangedCallback availabilityChangedCallback) ++ : Strategy("PhysicalKeyboardWatcherStrategy", "inputmethod_change_signal", ++ "get_inputmethod_mode", std::move(availabilityChangedCallback)) { ++} ++ ++PhysicalKeyboardWatcherStrategy::~PhysicalKeyboardWatcherStrategy() = default; ++ ++bool PhysicalKeyboardWatcherStrategy::isSubjectDefaultAvailable() const { ++ return true; ++} ++ ++bool PhysicalKeyboardWatcherStrategy::isSubjectAvailableFromMethodMessage( ++ dbus::Message &message) const { ++ int isPhysicalKeyboardAvailable = ++ static_cast<int>(isSubjectDefaultAvailable()); ++ ++ auto reply = message.call(0); ++ reply >> isPhysicalKeyboardAvailable; ++ ++ return static_cast<bool>(isPhysicalKeyboardAvailable); ++} ++ ++} // namespace fcitx +diff --git a/src/modules/devicestatusmanager/physicalkeyboardwatcherstrategy.h b/src/modules/devicestatusmanager/physicalkeyboardwatcherstrategy.h +new file mode 100644 +index 0000000..e90f435 +--- /dev/null ++++ b/src/modules/devicestatusmanager/physicalkeyboardwatcherstrategy.h +@@ -0,0 +1,27 @@ ++/* ++ * SPDX-FileCopyrightText: 2022-2023 liulinsong <liulinsong@kylinos.cn> ++ * ++ * SPDX-License-Identifier: LGPL-2.1-or-later ++ * ++ */ ++#ifndef _FCITX_MODULES_DEVICESTATUSMANAGER_PHYSICALKEYBOARDWATCHERSTRATEGY_H_ ++#define _FCITX_MODULES_DEVICESTATUSMANAGER_PHYSICALKEYBOARDWATCHERSTRATEGY_H_ ++ ++#include "statusmanagerwatcher.h" ++ ++namespace fcitx { ++ ++class PhysicalKeyboardWatcherStrategy : public StatusManagerWatcher::Strategy { ++public: ++ explicit PhysicalKeyboardWatcherStrategy( ++ SubjectAvailabilityChangedCallback availabilityChangedCallback); ++ ~PhysicalKeyboardWatcherStrategy() override; ++ ++ bool isSubjectDefaultAvailable() const override; ++ bool ++ isSubjectAvailableFromMethodMessage(dbus::Message &message) const override; ++}; ++ ++} // namespace fcitx ++ ++#endif // _FCITX_MODULES_DEVICESTATUSMANAGER_PHYSICALKEYBOARDWATCHERSTRATEGY_H_ +diff --git a/src/modules/devicestatusmanager/statusmanagerwatcher.cpp b/src/modules/devicestatusmanager/statusmanagerwatcher.cpp +new file mode 100644 +index 0000000..d0f496e +--- /dev/null ++++ b/src/modules/devicestatusmanager/statusmanagerwatcher.cpp +@@ -0,0 +1,102 @@ ++/* ++ * SPDX-FileCopyrightText: 2023-2023 liulinsong <liulinsong@kylinos.cn> ++ * ++ * SPDX-License-Identifier: LGPL-2.1-or-later ++ * ++ */ ++ ++#include "statusmanagerwatcher.h" ++ ++namespace fcitx { ++ ++StatusManagerWatcher::StatusManagerWatcher(std::unique_ptr<Strategy> strategy, ++ Instance *instance) ++ : strategy_(std::move(strategy)), instance_(instance), ++ bus_(dbus()->call<IDBusModule::bus>()), watcher_(*bus_) { ++ updateSubjectDefaultAvailable(); ++ ++ watch(); ++ ++ connectSignal(); ++} ++ ++StatusManagerWatcher::~StatusManagerWatcher() = default; ++ ++void StatusManagerWatcher::updateSubjectDefaultAvailable() { ++ updateSubjectAvailable(strategy_->isSubjectDefaultAvailable()); ++} ++ ++void StatusManagerWatcher::watch() { ++ entry_ = watcher_.watchService( ++ "com.kylin.statusmanager.interface", ++ [this](const std::string &, const std::string &, ++ const std::string &newOwner) { ++ FCITX_INFO() << "StatusManagerWatcher's strategy: " ++ << strategy_->getName() << " new owner: " << newOwner; ++ if (!newOwner.empty()) { ++ setSubjectAvailable(isSubjectAvailableDBus()); ++ } else { ++ updateSubjectDefaultAvailable(); ++ } ++ }); ++} ++ ++void StatusManagerWatcher::connectSignal() { ++ slot_ = ++ bus_->addMatch(dbus::MatchRule("com.kylin.statusmanager.interface", "/", ++ "com.kylin.statusmanager.interface", ++ strategy_->getDbusSignalName()), ++ [this](dbus::Message &message) { ++ const bool isSubjectAvailable = ++ isSubjectAvailableFromSignalMessage(message); ++ setSubjectAvailable(isSubjectAvailable); ++ ++ return true; ++ }); ++} ++ ++bool StatusManagerWatcher::isSubjectAvailableFromSignalMessage( ++ dbus::Message &message) const { ++ bool isSubjectAvailable = strategy_->isSubjectDefaultAvailable(); ++ message >> isSubjectAvailable; ++ ++ return isSubjectAvailable; ++} ++ ++void StatusManagerWatcher::setSubjectAvailable(bool available) { ++ if (isSubjectAvailable_ == available) { ++ return; ++ } ++ ++ updateSubjectAvailable(available); ++} ++ ++void StatusManagerWatcher::updateSubjectAvailable(bool available) { ++ isSubjectAvailable_ = available; ++ ++ strategy_->nofityDeviceAvailabilityChanged(); ++} ++ ++bool StatusManagerWatcher::isSubjectAvailableDBus() { ++ bool available = strategy_->isSubjectDefaultAvailable(); ++ callDBusMethod(strategy_->getDbusMethodName(), [this, &available]( ++ dbus::Message &message) { ++ available = strategy_->isSubjectAvailableFromMethodMessage(message); ++ }); ++ ++ return available; ++} ++ ++void StatusManagerWatcher::callDBusMethod( ++ const std::string &methodName, const MethodCallback &methodCallback) { ++ if (!methodCallback) { ++ return; ++ } ++ ++ auto msg = bus_->createMethodCall("com.kylin.statusmanager.interface", "/", ++ "com.kylin.statusmanager.interface", ++ methodName.c_str()); ++ methodCallback(msg); ++} ++ ++} // namespace fcitx +diff --git a/src/modules/devicestatusmanager/statusmanagerwatcher.h b/src/modules/devicestatusmanager/statusmanagerwatcher.h +new file mode 100644 +index 0000000..fe803b4 +--- /dev/null ++++ b/src/modules/devicestatusmanager/statusmanagerwatcher.h +@@ -0,0 +1,104 @@ ++/* ++ * SPDX-FileCopyrightText: 2023-2023 liulinsong <liulinsong@kylinos.cn> ++ * ++ * SPDX-License-Identifier: LGPL-2.1-or-later ++ * ++ */ ++#ifndef _FCITX_MODULES_DEVICESTATUSMANAGER_STATUSMANAGERWATCHER_H_ ++#define _FCITX_MODULES_DEVICESTATUSMANAGER_STATUSMANAGERWATCHER_H_ ++ ++#include <functional> ++#include <memory> ++#include <string> ++ ++#include "fcitx-utils/dbus/servicewatcher.h" ++#include "fcitx/addonmanager.h" ++#include "fcitx/instance.h" ++#include "dbus_public.h" ++ ++namespace fcitx { ++class StatusManagerWatcher { ++public: ++ class Strategy; ++ ++public: ++ StatusManagerWatcher(std::unique_ptr<Strategy> strategy, ++ Instance *instance); ++ ~StatusManagerWatcher(); ++ ++ bool isSubjectAvailable() const { return isSubjectAvailable_; } ++ ++private: ++ void updateSubjectDefaultAvailable(); ++ void watch(); ++ void connectSignal(); ++ ++ bool isSubjectAvailableFromSignalMessage(dbus::Message &message) const; ++ ++ void setSubjectAvailable(bool available); ++ void updateSubjectAvailable(bool available); ++ bool isSubjectAvailableDBus(); ++ ++private: ++ using MethodCallback = std::function<void(dbus::Message &)>; ++ ++private: ++ void callDBusMethod(const std::string &methodName, ++ const MethodCallback &methodCallback); ++ ++private: ++ FCITX_ADDON_DEPENDENCY_LOADER(dbus, instance_->addonManager()); ++ ++ std::unique_ptr<Strategy> strategy_; ++ ++ bool isSubjectAvailable_ = true; ++ ++ Instance *instance_ = nullptr; ++ dbus::Bus *bus_ = nullptr; ++ dbus::ServiceWatcher watcher_; ++ std::unique_ptr<dbus::ServiceWatcherEntry> entry_; ++ std::unique_ptr<dbus::Slot> slot_; ++}; ++ ++class StatusManagerWatcher::Strategy { ++public: ++ using SubjectAvailabilityChangedCallback = std::function<void()>; ++ ++public: ++ virtual ~Strategy() = default; ++ ++ void nofityDeviceAvailabilityChanged() { ++ if (!availabilityChangedCallback_) { ++ return; ++ } ++ ++ availabilityChangedCallback_(); ++ } ++ ++ const std::string &getName() const { return name_; } ++ const std::string &getDbusSignalName() const { return dbusSignalName_; } ++ const std::string &getDbusMethodName() const { return dbusMethodName_; } ++ ++ virtual bool isSubjectDefaultAvailable() const = 0; ++ virtual bool ++ isSubjectAvailableFromMethodMessage(dbus::Message &message) const = 0; ++ ++protected: ++ Strategy(const std::string &name, const std::string &dbusSignalName, ++ const std::string &dbusMethodName, ++ SubjectAvailabilityChangedCallback availabilityChangedCallback) ++ : name_(name), dbusSignalName_(dbusSignalName), ++ dbusMethodName_(dbusMethodName), ++ availabilityChangedCallback_(std::move(availabilityChangedCallback)) { ++ } ++ ++private: ++ const std::string name_; ++ const std::string dbusSignalName_; ++ const std::string dbusMethodName_; ++ ++ SubjectAvailabilityChangedCallback availabilityChangedCallback_; ++}; ++} // namespace fcitx ++ ++#endif +\ No newline at end of file +diff --git a/src/modules/spell/CMakeLists.txt b/src/modules/spell/CMakeLists.txt +index 094e1a5..83e7802 100644 +--- a/src/modules/spell/CMakeLists.txt ++++ b/src/modules/spell/CMakeLists.txt +@@ -31,12 +31,12 @@ set(SPELL_EN_DICT_VER 20121020) + set(SPELL_EN_DICT "${CMAKE_CURRENT_BINARY_DIR}/en_dict.fscd") + set(SPELL_EN_DICT_SRC "${CMAKE_CURRENT_BINARY_DIR}/en_dict.txt") + set(SPELL_EN_DICT_TAR "en_dict-${SPELL_EN_DICT_VER}.tar.gz") +-set(SPELL_EN_DICT_URL +- "https://download.fcitx-im.org/data/en_dict-${SPELL_EN_DICT_VER}.tar.gz") ++# set(SPELL_EN_DICT_URL ++# "https://download.fcitx-im.org/data/en_dict-${SPELL_EN_DICT_VER}.tar.gz") + +-fcitx5_download(spell-en-download ${SPELL_EN_DICT_URL} ${SPELL_EN_DICT_TAR} +- c44a5d7847925eea9e4d2d04748d442cd28dd9299a0b572ef7d91eac4f5a6ceb) +-fcitx5_extract(spell-en-extract "${SPELL_EN_DICT_TAR}" DEPENDS spell-en-download ++# fcitx5_download(spell-en-download ${SPELL_EN_DICT_URL} ${SPELL_EN_DICT_TAR} ++# c44a5d7847925eea9e4d2d04748d442cd28dd9299a0b572ef7d91eac4f5a6ceb) ++fcitx5_extract(spell-en-extract "${SPELL_EN_DICT_TAR}" DEPENDS ${SPELL_EN_DICT_TAR} + OUTPUT ${SPELL_EN_DICT_SRC}) + + add_custom_command( +diff --git a/src/modules/spell/en_dict-20121020.tar.gz b/src/modules/spell/en_dict-20121020.tar.gz +new file mode 100644 +index 0000000..d08e2ef +--- /dev/null ++++ b/src/modules/spell/en_dict-20121020.tar.gz +@@ -0,0 +1,2421 @@ ++�����P�Խ�r�ڒ,���9�Yђ��2��H��/iS__���I+��Թvm/�hV}���}�.����]������.K������C]Y���+��:�ue�eEU���߇�co��o��f��������.�f�������?��������OU������Ov8���n�f�c��u�s>��o{���y�f7������?y���?���v�,�e�?g�i3t��ʬ5]����:l�O<� ����O���j�?���x����Q�B��?Eq������T��z�co�?���P����S����Fc�p*�B�h.v5�?�1�s��=m>�i��K��ފ��|.N���ǡ�SѶw<�<����u���<o�����d�S������xD��l�E�a{;�Q"ـ����ʹ�s:�j]���V7;����=���;^��f�QVW� ++h����S���On�Z ++�G��q����c&�A��;ܱ>�j��C�7]�����Y�'���og�-�4R�����-L���3>�H�@k|m���2?ص9?_�`Mk��K��?��M{GL96��m`��m�w��z飳�dU�wѓ��h����%�xj�:tmn�f�#\����F?me�(6�����b��<������Լ��9�r���F�_��}j��שNX���6��l�ϧ�x�S}N�5����%?�:����ۧ@��`7`��[����v�Y��^0��,;Y;�O�{ZDퟺβ�f[���!��P��|��{Z`~@�x�E��q���`[���km_,�����6S�>��Oga��o_P�Ł���I7��XT���]��q� ��%�q�`3M?�����N������3�2 �r�{OS3\�xK"�JqNx�G�^"4�Z�q>�e`NY�怘��'�v�y�ݮ��� k�:���3��=�9��A�{�ٯ�ig��)��Ѿ���C���vU��g� Cr>��ۚ�� ��U����?��2+�5'fw�3�t:�y�7��e�#�����K�m}�/�]���֗ږã��%����[��jb{�OyY�-������}���[k'Z�<����q���g�Kw��F'��>l#����fDjkE���.�`�R|����Cl|�?aⱁ���ē���h�B�mK#�s�UEY�~:}����}��v�k"�͏ujUdx$�]Q�l]�����������A�ȀM������'o.~��h?�J��}���|Ī�=��/y�X��E͏��ch��`ho���ɝ���{<�����za��d,8O�a��6�6��5[��x�w4F{�C�ث:�G;�s~�h̝�7��f���x�^�o�ѦkQ� ++R�n��j��>���W�1A�eg���dR�s�19���9�F|����@�D�Þd�t>Q�%��t(���/��$�q���LM^o��P'����v��M�e�Am�@wӑy��m-�^�Ԝ �mg}7 m�@�[��IӠ�=�ɖ��̩h��^Z��l.�@��F����U`��CY9��/�"!���=�N��t�~a3G�8��e���Mk�Q�u5&�s�<W"���'�Np4�ۮ���c���F�$�EY�����fk���}���ۤR�ӳ�p�Cl��Ҁ��I<�|r�?>�f��Š��W�ths�8 p{<�Jx7n�yl���ڪ&�)v�OOpU����|q<��,!�V+�� �w��ǻ�s���@�9���$�Lm�S��#`^P��줩y>O��f���@�b"��}���%a��_Ne ��'��SQ��_S��Ƽ����I�8ښ-K��x㶠T��G����1 -��O�u�!�����hZ_���ĥvN�b�ؔ�s\��V�a+D\���t�%?��^�M�}�9;������A[�1_l�بRޙ/����6���k�X��g[�E����/�-��Y���;�)�H�ܓ��K���#��gx3�<;�'�XW�'�9���p!kW r1��Y�#[�9�t@�W��ثEu���t8s���Os�m�p���_4��9�Eo� ���A_6�`�<� n'�X��r)M�suH?�P�?�`9N9���d�w�������rh[��s���'����J���_���$��Ou% ++��:�z���ino~.u���ƺ���=�'= %�6@jP4N���DmĐ�\�^b���Mx�?�C$�N�9Ӈ�0��������'�-��B�1AIZ�����s�&D���/��r��t�M��|�X���8�ߦ�h^�g7�i8�/q՛Qm�ڿC�����!�n=$���e�ss��`��5�"a�|/q�D'�\#~I�*�SΣ�)��M�8�[n$�J��/�=�/Y�=����:0��a2?���]lc8�w7����T�u ++aM,��*B{�*K%�o��N�7�!����#iЀ�'� ++|��;����M�Gn�j��������j2R�I֮y8��Q�A�s�x�1F����!�ˊ�z�>Pc�6��������=�x*�O6�l���S�Y�Y�?qe�X�����&��*(������ck�_q�z��q�H��v�K����X�����Nkg�bҾ!ǜ ++�hkS|;��l`�琡� ������c�f����p�Ʀ�(�Cw��x1qq�mH6Gl�Ʒ�ex*��:;����H��1u@�x8��*����9U�_��`]���n���n�����B~4���#�N�Bط�uu���~عR���3�A���D;��� ��,�b��ɒ陯���t�ɾǸ}T��~�\�/^��/͟� ++�˥�R{Qz�u'l�.o�W�/�v�A�� AX|�'Lg�% ++T�Г�����Q����9�p���]���ӎ2K��(�m�d�F2!�tb�$�6� �P������7 �!��U˶zO���M��꣣�My\�v,�W,2{� C�o�S�#\�a�:n��\����id��~�� ++�:?V�D�=�D�|ø���4�e;��!��AfQNA� @S�yvğ�9�$hV�:�B�<���?Wz3t��8�tm.��|,v���p�oӣ!� �ݨ���!��h@y&PG���q��IEn��f�/�U��F�ݢ�(x�mp�g��0���p�=m3�Z���5M�w�8�av��0�� s�c��̇�{uT��7�I�'lߘ�k���P�mBI}-]��d�<�����\7�X,��n�݊�XO˲�@�_��"������y#8Û�����-G�}졉q��Ch���~>�+��w��@�I3�F�i_(v$n5��o ++8f��lOŬ�|+�h��� ��z�f��K���������Cq�Q ���E<�u��7�.��ݽ�K�0֓o�$��"� s�V�MH2~,��'���,K���}����X��(�y�'����"�!,�bG�5��G�&���Q��ez::�k6?9���C)���0�c�jj�N�� ++�3,Ч�Y�~4�m���P�P9�`�u0Μ{���Q0���ku�u����;�m��o2F��Ab�ń߮�t�h�/�z��ӎ�yw :�|>�7����n^��� A1Y�(��Sl���0B��|M��e}�&�5��� Z��$hrK-n{@g� �ǡ3@�ō��Xi���&s���u"l�;�K(������J��w�"���eZ��.�j]�`<�wژ��?h�쇅��S�F�T�ebxt&�����<�ԑA���<�-Q(���l���6J�7�}Oy:ix��ڋ�-�"v�Sp0���D�"���s���X��̩��d�?kv��S�A�m�R`� v�ڙ�8TY��>o0i]���=5�L��qrʴ�;!���aBM�&zqJ�bgT�7�1~�XA��8�'�q;�/��P��r)T^$��g1MD�*��e�J�:ܸ�/B~_�Z�T����'��D�܍qƟޛ����:-�l.�V���7��@Y�ɇ��G��4��/G�L�����g��'m�n)J��O�v����|� �O� �CAk^����M�&g$��uo�C�.9����,/ �{�'}�ɵ����ㇴg�Ԁ0��v�La}��v�6}eԧ�.&/�2)k I��J��ݷ�{Ӛ�ϴ������:v%���O�ť��]�L���k���Z�BM�l�I�������L��� �U��kוּ�&ٚk���˂ӽk�\��Q�K��$��Ut��H�6Ql;��5p�+�tVV}�0SܥL �̆�>�f��&����:ag��ۡ�=�x��}:��\�R5���n��]����u궙G<��f��VxGg;��a�|��I +�9��[h��2S������4m:�mP�:����f��z��m��.���gr��LR:���.��-�T��2�T趡���uY���=��(F���oBϝ�ٞ�:{WwW?��'���Գ���m��t���*�-����KG4��mo�e�1����Oc�|�mH��i�S.���C�����Rs�A:{�1��6n%� �fa;�yp$�5�tə6:w��������Qd<ʃ$���٠�Y�d^�D$[�eE��iO���>��\�p,��&׀�14R����3߶t���c�mJ�b�Ks[�����m��8=�ⰰ�T���^JTk����8t26S0����_��;ncw�ɜ� C~��!�얽�֦�^g�� )[e\[)t�{ҽ{A�G���d���/�=�c/��N�v���i_vL�fVm����%��0�o��N08i�Ϥw������`��*�4���j�9SDʔ� �*�:� p���$%��S�n�-'ES&�,�ҹ���6����)���a�g{��5�\�d�H�_y ++��.YJ�?���xPL4�Ӣ:�����ֺs����4�_&z�T�N]t�ԅ�<��Òu��V�K-��e�'#AZ���Y���8&|���-��&핎�ȓ��$��e��;��.tڷ&�e�t�O`���Ww!�(~�TcJ�I|Q{�3Yl�S=��Ʊb��}��|�`:1^®a�y�_����i��a�(t�p�Ds�vL �7���ϩ��l�NL��uVM�{70�pa͎�"P�M�M�� ����b� E�%�Y���#�D}X����x�%|F/�=Ԇ6M��q%J���n��7������}����-���Yc`|�/�,\N�M���}�/z�!h��+~y������NkN�~o��6m#uYVAwTk�.��R�~�/J�yUe b��N�����~���XxO}�����at��-u������U�"�7��Xh�<^ ++6E���C�%uؗ�c״h�8���d�cޡ�Xh�������$i]C%� n�e�;:�TB��Iy�̮vXV�=�a�Qm�[�V8Q�v�"�:�B��H-�2����p��X�'Q�Kb���>阝��S�h�`�9�l&�]��۵��� ��n~�e�7�1]���ø��=�3" PӔ��`�_V�3���cVAĆb>�se��X����|n})�:ح�"��D��:r*�H�cb��E��*���?L�#�ôU�/�eT10~u0ԝ A�M���h۸)�����H�Ҿ�@�n�+\�8����r���$�6p�i����'UW?�.��:9\\�pEAQ�g���v�К]��Z�Q� a�*�W]b�j��V����q��n�V[ne��T�_��tI�!�rO�¼��7`3Ot5#�]�:���<t���(<�@�F��Wp>������ύ/Ӿ#�`��u�1����s�I"�5I�)=��ymވ:�fs�z��t���������~��˞ �a448�C�2Z ++�����)���Ue 1�%�t������`:�(�h����3�,�X��3��R͊���'����r�vnZ?Vy����r�`Nt{s��g.���nMI�.�Np�^��II'9Z���L(�DqG4_�Z.Oz�i��H��c& ++v����n[?G�W"�A����JP�KJOoS���P=|���������U�)���E{- ��kD�i��tq��?鞮)���{c���p�^�,c1m�uZIm��NάR�m���Q������xi5Y{h\qB��{��_wDbk ����Z��1��f�����cw�ٝd@��gR�,�8�=w�;ڭl'<��i���<Ax1̐]t�0 u/��7MoeQf'�n�w����=8,�6ꓚ8�]����r�̵��*K���(�<�[���(M�����<�n�XE��]�zн�������_��;��ա�^D���x�S�E�y���94��6�U�̐����Ӌ�B[��c���wrȾ�5P���D ��ܑ�z�2@��}xGvm����\��֚��M�#�v�nm�l=qwc�3�{��Z�ݬ��ƌK��Zl�4/u�v����[�H �mTB#m��W�qf��@/�ɤ��u��1�K�I~aU�{��a"a ·|��Ft�g��^�n�yj��J��.��v�� ++���8���<��.�'�[X̆��@���:�<;'�}�[�!���}?a:Ox��� �W����/�8�H��s��.0������o8Y����]���d��b�sN�������W�- ++p5@?B�S叛�Y��p-i�c���˓���!�� ��I�|;j�Y��'��Q�;)���#^���������Z��,�j��B��dQ]������A6������~j����ԝ��ϩ:��P� ++&7�;~~}���A1>�� �$��4ױ8��\'�F���(�W3��;"= ��7����/*�}�����>��E��d�P�= �@F6���d���L� C�1po�N?(�9z�b�\��@O�c�-j'Ax<��Bw]�����:��'u�v�������� ++� F*RGd~!��=�B��h��*|�ܓ�fhb`(zO��.�� ++��|�-nY�M���S�d�i�9��F���@9���#��/���0A<���6<����a�}� �� [�F��t�+�$�!��$`?�ڿM��\GF5���H�q�n�Tr�Ǐ�6��,�؇�D;B�X�o$oL���g.� ��PӌY�NY�ߛ� �\��?r�5&��#�>������L�WlW�&�;=���T��v��h��t�8�8�T��9�E�s�H @�˚K�kwV0PA�"+���WȩU�O�LhK�,����q�N�i��:�E��F(��(���� ++`E�/%�~��KMi�٢��Aw�FF�c���z�Єq�+$���!���L����3&��O��� �z"�\_6�!�����6FkD�ȉ�I0��i{ ���x � !6h�[�d/x$��5^�Θ��Ɯs�k������#�]�����P��+�S����:���$����狜́G�_���i>��V�$;���Kp2��a�:S#��a��/�KꚂ�=|���'Z�4Z�Ơ �wn7����\��Tr��K�ni��6 ƈ 3�ñ�a����t�QRr&Q������^���.`X�D`���HD�džmn���6���}ݽ���v�e����w�l}~��e:x��א�7�㴛%�ׯ�[�5�p0�aBt���1�QYYpCJ�Q!q�B8[�͗�W�핖������r� x�_�������շ�h`b�����j�j�;�)�A �Q��a~��Җ�C^�@qs�pa���a���S"$��/O�(}���v�x1�0E�!(�����2�H�D`��C�Qf��K{��_H<�zG���Վ�0�C��˯��!n�p7��eq�HZZ�'��F�DF����;�[����I<��?�,�V��Nw��s������S�E\,�!�&CT�e�|�;^������Z��-iN�A�NR�Dx�}:�%g�l������#;?��M4h8�(��l�lZ�|�0;CyL��ݸ�yO�i�uC<r@bm:�Rh㦑��)ڧ���<�Wׇ�7^R@�z���!�KP�bg9'F��@��%�,!_ѣڀ�Rg��%��Ş�Yv���M�H��t�xM�����C�u�G�4<���wt�xqW�C��{&Cm �`�|�]�K%%�ԣ5��.W~���_�P1J!��O�X?�7� 7�����".��$A���g��&�^�&r�V����ި��7$�<T���;���C�����xe��b��t��Ŏn��B�f��p[#�������Wg�Hc ޛ ++�V�c�����(���2�<pW/15Y�'8�y�v;�3^h����llL��w�b��M�ȿ�G��a̧��Ւ�)�GC�|��9��I���orK��hï��69Q�d�lj�3 '�n��} ��% ��t�ɷ��>Ͽ�I��Sc��RG�6���$��lh��U�C���垠~<�4t{<c#a�)Xo��[�Ц۴}���pL�9��F��}�����D�L��A��ox��������eH�l_�� g�ߔ9&0B@\x�R���W'�o��^"0d;��v��38v�6C�;�����uTw��f�w�9r�p~����)N�(6R��Є��l�9�U�`�31�Q.1��Y�O��g��>���s���;�[L?j���9��z3� ++_ݚv"�T;۞x̹���}i-��Ѹ�����5.!*�q" ++�M���G��rŞB�I�o$���w��N���<�G"0`�T���Rx�(3%��8��C�z'/�#�x���Q�d{>����"��r4#��g���n���T�����Z�R���>�j��ƈxC68�&���6��<;:���"ݧ\C�އ]o���]�$��%����� ++����q9oH~+ ��OL��( ++����H+��F���U4�e��Y2іȨ�!A.�c�H������ 3���m$Zh�U8pK��g'��� ++����c�~5�6#{qb�u��N�JY���Sl��DY�� CKA�C"VԱ"9��Q�Ʀ��=eN=�쓴o�ݺ���s$Qr��?Ax�*���'����W��R�T��S$ ++�3�; !�Yy���y���P�E���=��?U9#�C<{����b� ++�j��Y����o�3 �Ӥ��&q��o���5��Tf��_/O���x�Xx*�`U�E�iF��d������ҙ9�+�� ++�7/��V��A3��Ɗ�,#&�p6j]�8��V����z�&q�m�Le\��ȩ �sj������m�{�:d�n�%�D������� ++������&�)�@��y�#���:lw��`�9w>�KS@J����&D�m#ȕ�~�侎����>;�1�Ӭg%�Ol�Cm�w���*Z4ǿ�kv�njA@��o�K�fqY�&l��?G$�'7�I����-�)o9B����k�п����rWT\�tx�}E?ǵ����/8mCh��swBk>�'�J�����>Q&x|�4�pb����`����a.@Wn�cG�~�ά�w��穻v6`�G��ε����9���}B��&7��p~ΈT�݀_���+�>��ԁ���M�� ++�$ ���@N��M�ri�6��2�}dF���~��ښ��%��e,���<ײ�ɒ�i��@��mߓ%���9���ܘB��P��ܒ 6[�����>=D������l��_���N����@�W�=�0������퍳o}7�-�m���C½�j��%u��Y�!"�@X�9/ �q��7\� }])VmG���X��&Ѓ�7z���K�9M��y��)�����q3�C�N��K�s<g]�f���[���q��,k��GUf7[��W��ߚ��V�9l�뾑�Ш�χsCڵ]sWw�2��1�������[$5��r�LL����=�9����tt�&�ո5Ɂ��|��\W�}�0o���y�X���YKW�[��ڄ3������6��|��̮�����܇��V٘�A#o��6>D�pp.vR�np��EV8H�-�$AS}���gnL�ۧ�/)2��F j��h����K��"!�_25���w���� ����n�X~2�<r�=�&I����� Gݰ��R��=�p�Q��� ��c���9G��y6җ�� )r��bw"�d�%�F�Ĺ��t�%�lh��a�L�`� Ή�E@b|�q��;�k�C2a�:'��r��.�AKb�F�ӗ)��ػ�,�����Z�=u�c~�1?m��]'bwp�WM��wCZ���X�7w��!N̲߬D���@´td�D�%�x:� L!U�W��eק�H�����8�KC]U����§�P[�#��=f��] ����͍��np�����T ++�EG��IȣmW�X�b��B�8�*��4Ҳ�"r-8�2c�f�I�$�[�o��M47�Jk&�8i�t)���!�t�& ++8z ��x��*�=Ѳ��4�������i~��L�{��U}떼�&�#�.RP[S�q��d�4G�G�ͼ^�r�d���D�;ݴ�����m����߄�!��\�BLG�N��M��i��q����(�� ��p/�1Ik�F� ++�u�o��Sc�9���v�(�HyT�a�����a,$Wvu\���J��E��[H�����J���鯮+���v��yH�b�ut�c������I8r��F��%4�9���!�ԷwL�����,M0��:�mRB��M9�J��r�"��uN�h@1��r����o��乡�0��t3/���\�E� e��%�ٖżϴ�A�(�'��Z�h�ZHh�=}q�a���<Ne��y�wR�^�̎�9I���P\�T��=���G8� ����#6u�����@�%�^�"Ә>�?n�>�w�i� ++gz�F@�I�Lyͷ%j�8�C~Ixv��� 2����=� �ƼLQM�B�X�_�6�6���6�-B����x[۰��V�>����o�5�~��B?/���Sqo>�=���z�<y�J6��Ȉ�����$����;7�;?A�o��GN�7oӯ� ++��=QB1�#����l�'N��&��}�1E�ֵ�&3��}�ڍ�ѭ�w�ރ���]�ύk��^U�Jau_}���<ʮ��J����a'�(z��$���K�o:D��Un�Lꦂj��������el�F���m�X��u6�}O����b��Gg����^���.q�_��`��O���ִ{����)äZpy�C�_Y�8��Mw���U����( ++rtni�u�����I�=�7`�2K��8ʭ�ӻ��*Y��3�J&�#.�E��JP>��^!ͯj�t.�t���Z��ێ��3�V�htc�ib+I"��l�s��&O�e����v�Gs�� � ���|����t��pr�m�e�um��������0|e����4�tl�k���:`�d�&���zv�e��O܈�9y����F���tM�N�M����.���������!�]�����Y�y���h6��Ϝ~r�.ԝ�Pƀ�0й�ߨ�v���m&M�`<��>�Ԗk��TfT 2D�M���q���+�8p�PK}����`�;i%��&%rӫ� 9�H��&w��Z�l�1"�{&�5/�l �y �E�C�Z�!��1�&Ef�T�J"�-mΩ֜���}�4%�R5AEv�����R�*��9�j�;i�)_:��g2mxE�Z"1���lC�l�>f�S{�'4�5�7g4���x�3_ qQ�4���%9�ǿP>��2��U�ՇQ£.�i��Q����ci8UY����\��-iy)�^툳���Z/�N�h�1玩��h��D�R��z1��J�������=<��2A��� ++>�~�9*�l8 �"�<�#LG�e�EKE=O���H�xe4�� %e��S[(epD �QO40nj��!�4�{ ++��'�=�Z��'��-�d3ڱ(���a����\dA#I���PB&#�����(�G^��&7�����SQE�r��ޜ�Dk�*������s�?�7��:��D��:�G�9|4s�Ƅ��f}�)��'�_�/8��ҭ����v��pw?O�ӥk!@� W��|Q�N�W�2��ֈ�4!rI<���a}�r�Aކ*��*F��F���y�-�Xf�?t���X��5?���J@wż3ꓳ�o.�~��RTw��I�l҆�4�*�y�d���i]��#]l�?�.v[kn�b�@R�S� G&C�������G&�ӧ��aAPL!�j��Xí�h��ǣ��eY�$����[{h���Vԁo?�� ���+=�& �u�'J�ڐ�2$Ug���$;���/���� ++�� \�~__�քF�(� �Kr}ÈXo>�� �y������f�)V��Z��ݹB�gJ��-9���jYt Q�m�;N�"�*�N���.�֜ھ��Fi��o��r��� ++/�k�����5n�2"���f ������;�.�|!,t�-+}������4��������7����,~8���e�&$���C����3wR�3��� ��&Q8z�V���J!��8��Y;ReX��uk�����ܡ���?;����q�r��`��YM��X�� �Z#�Yw`>v�Y���/F�\��)�G���J�� ++�^�W�`�Q��ajnN�K��x�����V�_Z߆�Z"5o/]��U�7=�ZD�6^��GW0ӌ0�#�n�IG���=���̊�wz�A�����N�q3�&��[����g�ɐ���w���Q�B����42��1��I'Z���%vk0!x��8����_���m7���7t�J�k#j�;<�#U�zA`'��Yu��>�=��T-u�ti�$��Ue�,v�+,��(���o�5C�PXO|�fv���g뾩���G��C� �ʍ"�P��@s2��r��C�o}u�H�$#��O�!�@��=�B� ��Q��3x5���0ַ�5l����I�2�]�vp�g/�q2�Åun��-���˷���l��tl�9y�^�L6����Q�@D}��yF<:��Q��>bDzx�6�w��u���Q�&��s} ��!L�����W�O^_�Y����2���۠���* ++�l���Va$�c2���%j�{�a`;%�x�s̢e�ߡ��w�M��l� .�:J4���fI���猟�)�߱��%�W������i'}N|��?�R"�?�PѰ�tR����̶M�FvN�N�lC^�oX`�iB�2��!M�'j����RȈ�4p�s�S�;�'�gp���"WQ��T��dW>���NC2��h���v�u���A����x|�j�;�z]wi��̰�L�,�h�ap%���O�0����tmg��@m؋R�ݏ|�ov��R�7OvtN=%䣒Y�{��wb�R���� }�0sxMfvi��kщ�K���P�>���J�b�Kj����Wϲ��{����G�k��v˗6;z�!Bv$%�$�=�������p��P�^��tL�q������g�|��3I���:���1��<�._��D���h��F��u��A��+�S�ߍ��ؙ ���ŀ^=�P6<��a��=.r�?4�p��ɹ�U��*D��"L��}�%��ԛ�u��4�iU�T2���tFSu�}�e8������sl{��kFL8�7L��d��jh2Kj��/��B߹ަ��h��C`���9�I���*�R��w����Ml ּ�Q��%M�)ܻWh���Fɦz)2�3����O������.eI!p<"�B����P�َ|t���`h�톐�PH"��R+Z�~=����5zǚ!S>����b>;Gznx��������f�='ElA���1S=� ++0A��A2�����B�H����Yz��3OE�_�#�m�\v}rD2I��K�/Q+K�dci�XS{'0��:� �[��?6ܩ(zU��:�SЦ!lL�Y�8�{��Yz&���u�{�����'�o����FO:���ExS�k$Un"��p7 �5�63�`C<zef�ke�&I�G"i�!�ib�=�^"���D��VU� ++��^e�|�1�|3` ++�\Oҏ��兏�Ϳ�!v�T��m8k*N����S�bK�0; Se�'fxd|v��L|�C�o�2'�cX��U ?_�^��p��n{̥�m?P ++ q�Na:������ўw� ��K�B���=]ӵE����P]���P?�H0&)���?@�i-#=�:y�J�l)�#@�m����ߌ�y�Nz}Q��f�M�:���-]$��٥�4%}�%b�w�94zA�j�6B�z(`|�w�3M�M���Gd���]bS���~@�zOp�� � ���$�]M��N�S"�\ə>Bk"���g��R�4zH�!��}�����AY7FA�+�=��/HHz�a̟Kz�M&^�B�p�]�m ++�����~���=��{�������b��b�l�� M���� 0��W���.�����Gt�"(���H�Էs���^`N�^�&⸤{/��gS@mTK�c+r\��E����E�����M 4��6x˲�@5�"kvJ�Bߘn~�oN��t�JǬ�Z��徛H嫝x��fp>����&��E���e�"�my�T>�I����,mA?�X:�5B��h����VT�+�`�G��D腃��z����Z���OB&��Ch��Db����'Za��/���Y#�[�/�RW�:d������D]�繬��i����_���\�!/}��n���x�w:���`Q����=D&��)o&��r��������2.i�v��@�����#ۏ���'Q���p�<�x���Rr�"A�������[�>G� �ccx���py[V ++>�lQ�9�:V�j ���������v�Q�!���8���>2AX{��T��n������� @��e|<�ϟ�?x� [�\�= �cҹ#Oy]���W�ޚ����fh�7�6WF%4 ���J��d�(?c�����ӧ��ڞ9H��zz��W{��>�^�G��+mkD�U���ƞg�����]�j�_ͥ ���6J�)����)O������I{�r1���{�:I�B�y�㎀�-���^1H?m�A�;���Ia��g;%��F6�(����z�C����--D$!i�Lƃ.��o�Bj*۰?��b�ْ�%�E-����.I��k;��.X�k;y�'�7/�X4���*%��e1sE���"t�s�3�Q\�F:��9��;|��73�+@%�ڂ� ,A��d���>����}�)��k��} y� ++o����:���� :�~u-�H?��V�Ҥt������i�}��i��NJ�dN�-S�m)�=!L�'\����'R�%�ʫV"1�Y��U����3#�g!~{ �~�)��1�k�Y�c}D�Y^iI9��{<�6�ʦ�T�� �Av���-�I��a���w�0�`�!���u�%�G�(�W�K��C�8'%4�/��5���I��vG�0�]g�2T�\�B�D8E��p(�ӑ.�9����N����6�QgQ��0�e�w ++��2�^���ܔ����%�+� ++���hk��z#3{Ӈ��Rg�V�k�,��"&��Mڻ��Q�o��|D����3�>�#P�:#PC�m��ǩ�v�3 @���P��ň~���l�S{���ȣ&m��<�[�F��k�t�=%����ud�|Ŷ�e<���R�}1�^�/�nb9��*�s�|���l !���Iu��I�lrFTL~�S�P��d:�nջ��6��ѰH\Wbj#��W`)W�p%~J4hF�mk�+{�LC%�ħ��>��Y3��� C��$I�=��5 �D�������!.�8��(Hj�R��S��qI+&�>G�\��T;n��3�<�`�~��VT!v]��n��y5�yz��:3�p�@B�?��ݭ��x�)"ϽW�;�|J�S��SvIE�]'���&ލ�}�u�T���ỶP�0^ק�T�Y&6��j*���|��Sn^Y�6]ғ�RӓI0�S��/���J���Ɯ�q�tG�h�T�Ze� "�mbdj�7�Pw]�x���26n� 0�[������h!��5� o�5�2����x7 ++���?*���M躛��C�wҖ`�y�bF���M�@E�i�j�Y�.��_D/er��H��;��Ȉ�W��7W��nt� ��PM�y��D��p�?{�����εHt��>�H��'J��&B�%� ݼRbUR�w ++&���V�\!O��P�ܰQ��/jXʇ��l�Ji� p���Wԁ���0�)�b�A���J�N��|��5Q*a�Y�ǞL�_�������fS6g/@�t��5�����gD��3���W8��É���Ϛi�o����{�S^T���|}���(8Ƴ�qy�b�t��H ��|,�}�6<ps��H����Iߵ�D�wE:��ڂ<o�&��]���ڃ� �|�m�Q������K`J/@F0<B�R����=/PJdJ����p��&��H=?����Гgk�?�E��R֔7��!W1 `T{�%��RV%������p4���wI���0~��� �Br�0֫>;ҙ ++�Lo7\�zD� �0�!sb�� b�da=��LDYgƾq氲�w'��J5�E)$�0Ҟ��� ��è��x��ɤ>�!���5�G���۫ ++[��UU%�t�lU��Ou�~��s&>�0��|����b��%�~|��z]ԍ�����9hK�������[،��Y��)�'�l���y����^�ހ��r����*�����8r�]�E�1���rЩ�1�\�c�����>�cC�9t�����'sհ2\�ګ�=>��,��8Q}Qwuۑ�xl�����.n�xv�c�민���-���&'������L��O�}5-��ٓ(Mv�А����h����sH7l��������Q����<�$���Qfa#_J]�?y���f���;W=Q�����T�n�E�J�����Uy �w�L;Ñ��Dl���O�U��JC�����M��.Ȋ�;�y��!��edV��s��E���Ծąh�3�P�A$\"�����W��a@�5ۮx�<W/�$�/ ԝ���CAV�"s�ϴM�G�c�ʑ�� h�5�!ٴ���R�0c�p>z���(�ĄM�!�h��fDr�=��'��1��t��8�{�A��2����>4�t@��a����Jݼ����T�O���D���OE%s�GZ�s�U�D�ȾG�ƬҨ2�Ny�M�HO�&w�L?�/�)7*��̎OVH8�"N��|��D@Q�B�(R*$�f.;X����o�,��,�m"�sz(Q�{� �X=Q�h�q���'W�o�H'�s�z��xލ� �Jg0���h�-���y<}�V��n���r�N'��z��'s��9�� �^t�߮��}ǟt����?{�����ek��+As�e���5D�Qˁ�9�h ++��g�_(�1�a�(��O�l#������Mޣ 7 ++Ɠ���}x�m�O��9�H�|�v���C�1<[��_�����y�&m��N˞�7\��>M�@̭��D;J�P乮�U�6��'m?^1�ڡ_���'_��|E��@[��bDv�Q�Tg֎B� ���\�C������#��v��=LX@��Xqj�}CuHI�����FDf�<a{����<�/�n�I{� ++�x���gM��� h���ǰ���a�˫�k�.A�&ezd� ������-��(�_��)I��R��g�=#җ�̭�=g�U��������y����=����l>�$B{f^%�o[���\Y[�����9��h�G�u9�fO��\�a�D+^����1�ڞ�Mj�g�J>2Lqpv��Sz�5�9˹<W9���(�)à]@���}�"N�o���ex�=I�5R��nx}����J��֣͗ y� ++�����|I�a��Z3�=�t���7�\�7X x����4�� ��KŶ(Y��j����Ij��Qf���n�*����6����I} 8]���}�8V����I��%6�gN"m�O��;nT�"����_i(8UA�Q�ݑ�CS�';�+:�{�����ĖVa@=��Uk�Y���C��������:����!*���C��&��j�}): [�Lî���&J�ܯ�/0�K�8w�+��.���t�7�A����&�:4*{��@Փt�9�>�{�0+v|ν��;�Ovք背��n:HCԷ�������"�O�v@P�P��Ë�8Ƿ����qL�;��85�/���1�(� 8��pNW�l��?mz$���nͱ\]�EP�̥8 _5�{���v/��)��N/�&7�7��6��ʁM`J���Żd���o�GG�1M,a� �N�N�.�"n��w�V�Qy�������>� �-9�9��b#D`�O�,[o���>��:c�)-3f��!�Ni��g:�b��)~�R�=ct�J�_��9��E$`��@+�/��kb��Hi���%�j��HB�l��ӏ�u ���`��e�N���F"0��!N��-_8�>����Q�$�-�5�#���L��� �i ++��4�8�T���f���;;l���ao絇ԛ�w]���|� �� ++��0�(u��w�i��0F�q��V%�lwE7��!�+E�@QZh�٩A}�%@ �VON�H�w������+������ O���e�܊���%%J<o�_��{,�i�C�Y(��%�'�� ��-t�=�'�5�af"�?�J+��W\Ƙ�˚N���WϘ?|4Hwǝ � td��V�T���K����UC���wQJ�����=0���!9}C#�k�����%` ����a/�_$DЅ���%���)5����ĊT⽊9�H�J3O���d{Ϋ!�R�� � EzO�a�֗�p?#P�"��[�D��*V�&���������un� � Z�܁���y��$T��}ʜ��i.J�%�J�����x<3$_�������h6�IM�%W�X��p;�F��W�B�D%��L��6ᯧ&�0���.���m�Xe�*���2,�,�j��pD�.,h�&ĨV�Z��-*�$�\��m�4\;_ ++�T{Ț�Ƃv ++��7��Q�/�)�0|��RL��PgM�sb]u�+&�(� ���x�^��P����@��u��1)"�kB��|xI��;+'���:hS��p5EiǮ b���@x{To����� Mk�]��d�<@�Fd!i%z�6D��g��46�+/晊yF�0�yH�8�ƈ����x�uC��H"ep��y��������#p���vG'�����!�w�.�9���/f�>ℳ���/�N��8]Z/h�M-t��ޝ��,{��?53] �ʒ�q�q�w���ր�1\\Aq���-L�b�c4=�ɚwm!<O�3$�4S�OxlB�@��� ++���N���\ڊM��-0��8������W?�k#�ɟp�zAH���אG�U1Y�k�c ++!�Ƿ=w��@-��^�߳� ++s�r����5�<�(��霻5��y�"�ՙ�h���vY���0�y>a���zѻ^qK(6*��QN�"�(Tx8��QK�.�E;�y{��/���9�a��;�� t�&We���B{eE23�<�u��F���/s7��_\ɭ��k�=\+�kXE ���2�������}`.�(��KQ'6 80�%:���'����H��)�Qbސd�5z���A��Ʋ7ەpH����7���D��\5�M�0��m�p}�1�ظ�'6���,K�t7.����0o�b��=��=ݎ�0E�[�s��%Q;�!@����k}�[��Pw�(���r�U%-ۡm S7�q����8n����n_���\�_��I�q�X����'�0�J�1Dz+LM�vMquSXǜg� ��m�O�E��2�c�YK��,ov�Fv���_{Y��c�1U�-�V���1 K�</np�u���jo�tu��9m9+�d_��b�E�T�wcM�#e�n��&�7����j�JMAy��I�&�=_�����/����s��TJ��[�{3=�(Gg���On-�Y�e���S;����1���UBHŵ���h�p�!�J�C��&aD1�Cd�(�q�� ��L�<E�W��䫸�0�&~ѧ��52%j?`����]Թ���?�l����e�'��l��ӱ��<�a��;���P�s6 ]=��f=� ++�×�H���!�ʊ���uPpd,,�8yu?Gsl�2��n�U%5h�.8��\��Ir�;%���< ++��Bʰ���P�b�qֆSa�!���@C���a��s�/?K؈)�V�s�%�g���6ݕ0��=���u�鈜��ĖT2i���Q2���k�otՓ�B]M���e�X���#l"P�kUE������^<�����;r�K N�l�!�ׄ(]p,���9�\2�i��L)�F��A�$��C��ڛ� ��(�1���ƿ�a����$t��A��Z�Ն!V���#�h��\` ++��&�y#k��5>�U��c�CLd��m�?��L+T�ѽ�2�I��έ:�TFpO�C�4Ϡ�F�E�k��QY�����y(t�qK�U�p� +sh3��*�t�N�1�ɍ�.TA�,�0 ~�F�Ώ�q��~k` �d�-/�#�;ÐP���)I%�MP���#<�a����=ke �)E��(i�X�El�d�H���i�M�q"0����}a2+u`���u|��l�>������������>�'�X%��WF*6���YL�5+S=���V��CH5�Xp�i#L�be�8lDt#��G��&~��4�}�i�J��3������X�>W�����=ŵV/�"��`D>��B�y�?<�[�8(�/���'N ׃Z�������7��Kq�zj�b[��+AK��T��$*�^A�9���N�&�w�0L&: �K~�Kr�?�A5=�irfS�r�V�����N�wi!��q�-(�%�;��_�+(a~�.c�>Jr�v��0�8O����:qx���J��a�yUl3Z��I;m�������$�h� ++t��K���M�,Gt�#�d��u���L���#��������ŝ;�?�=��0����@��]<[B���i������1&k�l��D��0��:�֝]�_�*C�u�����e�����uX3A�U���Q�į�F�Jv'�:��� $�� �wƬ���8 ڐ�R�E �f������L�,���\`p�+��fi��+���<�L�,wl�lK�V�K��%BD����|�%Jv;��4& _}�,[}E���Va1�1*!��s��D��N������<�dsY>� �kY�uX�Upq�T��wM5Q�ÿ��l�iO^Z;�c�3 Ā�c���)�C,A�K��%H�;�B�d�W�{ �=64�~�P��������%b��RP�)�tp�띀#"�pǼLCz�'G���Ҳ4qz����~�Su���ӕp o���]�;ͱ>��?�2P�� �Ղȭ�r��b�i;x��!6�C�� �h��̜�������O���#�0����i��9�2>�$H�'�-=]$�#m^_")�}X�9q�V6p3/k�6����t���w�E� ++|2�����%���z����gMʴ�;/ ++�����B���8�>n�9̙v ++\�({*�D��A�]ڐ1�~f���o�)�+L8 ������vQP��Lw����YP1�.���ؤ?Mͥe~\�p%�1�e��;�݀�L�c�vt����7}��͗5�<JrS%`*O�[̠0�n���[�{:5'1�4KR�/L�.ʕ%<�~����Zv�U-5��DV?��m�P�#b��X�� �t�E��Z�}�_Č�H��������)�Lv��i�&���s�e�����u�/��.q��?���jϥ��Mzݛ���I���I�O��)�.Q�jG|��N]�� �=�s8�t�3Զ����ݿ��І��ЖQeQU�C�k(��G2+�3�(W «1��M��L�ms74���[��������=�D��x ++W�)s!�isy� L�u��$l��0��D#�Z�CA8td826B�k���ʂ9SwV�L�!�;v�tk���(oLI����U�S:�7�zP/{�cХMg��8L\?�6Ғz�b|�mW�6 �F�>˶���[���hph�������;Z�zE���r��8BF*O>2���=6ˊjG�F>�D�#�gP)t*�;�d~&ʼu�(I�NXV�jOzo��}�ǡG�,�`�����t8�"�C��0?l�"-�d''�MD��i]$C��4�7վ#������_��M �gi�_���+�t�H;w�fph������&ވ(�~�4�N[)Ÿ%b#��ڎ����z�ڥc���%����0#U��J�������n~'ڼM��,S�WQ�dc��H�?�x�Ϙ�g�}�"��D�%����J��w�/L���ơ�¶1^�ϔ����jL��hy��/�Ej���+]�/��RH�0'���;�.��Ϻu�%�9;:��Hu��{����H����N��rU`|u���i7�-�i��/�]��R���W���Dm�2y����Q�u��bwtզQ�&x��B�Φ�_�O���ӄ�l拜�}"���'�^���Ѓx��O�4)�N���se���O����O�t%S�,�=���2�گ������-����Q[$���f}i��^�xj�'5�K��Զ?����e���+�8Q���a0�ߘ���9 �-���wkR "$`,�������Y���D���(`*\�Oʶ9�zTaN�]�q�����~���k�)A�}u20��&N�4~/�之iӄ��`��6��I%�|W��[�� �x�J��Ȃ�^�v�p�m�!���YȀ�"Ҿ����>�7-�_AIqi"E����L0'�}}6��@$MW|�݃��0m�7�����kۨ�a�[�Σ�<�H�?��?���7Ԯ�t��>�t�����g>Ha�od��#L����/8�������2&�����Ъ��ac:�^��uԉ�-� �i������Ѧ������4:���D��c��� �zv�m�>F�m��I~� �z!�X,�t�H�������v��FZ�����w�E�'��y��I���v�!����z�[�O|θE��eL���ˮ�������N�7E��� �un��C���xm����aL<[ߑ2I�j��a����l��n���!���|4#k<�;�ѐ<+����@���j|v�4^�V)�C�9��Rak�.�tkk�Q�W��m�XU�[�N�v�"���c�$��I �i���YB�%�`�����Ay'�A,���pۙ�T߅�E,CAO���(��A֞P����;�x��AzuH�� �F�S��u�p�N��x�]J�ݖ�4�v����f:�?��&�H��������*1�_cs��$�$\��Q$�n�1*DO�yw'�n7��e�=��a����j��!)��ì[�@4awֿPYq�iL^�1���ط@a�o�ۑ���&�s�3I�m�y��ħ���?+Eɤ0uQAu�<㤁�����@��жO�" �uXUi�0�Ё;�����}�q�6�\\�ȪV�M�ǽ�C]��N+���Wn{;��Mi�'�g�5�أ�[��S�wS� ++�u»���0ь��3�� 9� 6�ME��溑������"'cp�S���&}��[7 ++>��ʺ�S������B�Cژl�����a?�L�dz��v̉_���Yq/�4_��48�l/�t`����y�[���� � v'�l�� @�Y�lF.�����4KЌ),(�y�z�ͩ��vj���к1�3*�n��9���PK�:�N�0.��HM#�7h���U\���u��Y�9>v��\o�/���Z�ԟ��I8��J�_�6� ��;X��ۉ�"9���_��pf祝w��7Z?��9��F���}�WVo����t�C��<Z��}{^���K�7�@�nY4<L�i�wz|�FZ6�����UP�o�����%<�]�D�s�d��ܰ�A~8� B ++��)�$[��4Oy3�*��2�H�R��,�m� �6"ͮ1!��� ��S�fyK�����~!2#}���tXV��.t�Jo�$��7q���F����3'Jp�̦��\�1�kI�%��>�_-�q)Q�!�K���u�'6>�;}u)gbo���o�ƭ�9qj~7��� �9������j��{J�����7[H�&6�P�>�cG���{w�)J�$Y�Tu��]/�x8���ֶ��7lu�f�N=���U���l@�S�����H��o���y��p�?&~�Z�J��$^0M�i���i����등[We��N�閜,;Hk='�d�D����N���h�Q�|X�E���緮��<�?炻u��[�'kv���Rٙ��/$#�BК˗Ou�2Y��%Ý^�M���T �����*G]%�����E��)Qw]�� ++a6���i+�̚9���7"p�D�Ƚ����z��N���B�T�;���û��4/\v<��<qtezC��נʌU(#煊P�%�{�#9��W $�7�-��Os�4h�t&�L�6��v�v���`�/���k�Ѵe_�gS�Y3I�T�����#�_ƈ�1�_ K�0��.���jz@g\^�o��5��́M$gf��d���Xɛ�%fz`߮���|�R�/(��&���y�2��$��_`�[�[�!�� ++�/Q��s,0��.a�}�T�r7�W�M�B�j��p�%7`��:��o���%�nŠkϕ�-N�k}�Iɑ�9/.F��#��M3��癡�J �7����qǿ�=�+4� � k31�dtz���U��+W9�:������p� ��p�D{��D���m�7���yu�}��.Y&�sw^�|��X *���>��5n�����};�C�p�����朐�D@O�/T"]�'���~�F��Wٍ�E�p��K���(K6�E6LS��"�/7³��TsKJkĐ~�Jb����j^�����O�rh2p��I_��z�����_C�i?�r���<�_�;y�%�k��~��{����k��su�0�2߄S��a���� 8��,�iNJ�F�ܯ���*W�p訌@�_LB��@oT�S�Ȁ}z�`��;��j�S��������aa8n������qog�4�=��"q�� �tT�.����i0��M�!��.&`d� v��o�&��O �HEt�Z?�@Y� ј�����8�`��@2��u�i��>������'73yh���e�elJ�y%�C/ �94A����ﶲ��!.�Mh|r0}��l��:"k��\���n#��]���vO8rͭ�O���#[^H5�)#5%�_x��_:O5�����Z=�G�P�F�3���C�GVhV70���҈�o�m�; ++ŷPT�i#*�4�[ϙ9s��_Z�� �\�@��X��� �"���KL/!�G�� Ы���J#9�H��/��^� Ϝ2�����E�]<��q�Ay�oޞ6�OG`�,��z�b)�;���G/�zQ�͐d�%.P�Pm&���z$���`1-0@q��r�+ⷩ�^��:{�u �-s�I`& �A{7on�s��F��d,�HkZ'1e3����7�����S�F��*�B�7O�y�����wϔ�� �H�Ϳ�h���H��q!��p�d�q(U]��zZ� �<�T�����X�`Bi�Zr���&PI�%�D��q���꫶��w���s�A��u���|F֞ �:W�R;��h�j�D,rw֜f\P�_��i�jr������.7H�6h!v'|�1c �i���om�w& ++��������Tm����t4�ho;����B`\�.(��Hr��oC1ӊ*¨8�����D�o�EB�6�K%c�2N����<J8O����a|�rNgG�u���E��G.ZW��ܽϝ�H@�@Q��Z��c(���;��-8�W�cx��h��I�5�z�[49^"S*�#��2;A��!�W� T���o?�)��v�̣�蹶 ++�ġ��ҷ���\m{d)<G�V�fEu��6�0W�Y��$gȾb����e�omX���P��z`Q0R�c"�g�^��,}�0/ �t� ��IGN����M�=�)����at����|�C4g����+F���)�[yJ��&R�:{�Kv:/T~��:ҹ5)��#��ؠ�b��l���%�ƾr�K ++CD��c��i?$��K����.�ˑ�+7���K� ++$4$w��n�9�5�DPA�s�Q���N ��x��<�i���q��I�,()�9�`s���o�w��15�L��Y��pR���F;��oplc�%*8��A�R+c�vw�L� s�;� P?�E���*Q��<h�IA��p�w�+���َ�fu�Q2_��1��v�� ��ql�(P�1|87��_s�i���Ъ���g�{���2Ǥ"�;n!U���iطd�ؑp�T�zGñ��M�$��FR�ȓ3`���lk #��9���}�8�H����fO�-��Q�$�3��5v��s͙��'Z�(E�@��w!\Y\"Hu�ʸ���`.� ++ �c!��X;�~�l?g����+0l/�qѵI��f~V���#��l$hx+_6����'Α�/��������gC^f�o�g\�H_�j ++ ++�sT�/J�7���;�.�A��C�g�℮.�L��W���^��{�Ks�.� c��)�ᥝ]J�t.�c�z&'{��'aM�_��?�(䎌7,�4��ϿIi#���H,� ++�Y���rl�̉�s��2�2�/��RmSwQV='3MDq$t��#|Q0D�q�raO<ոY�s��GFN�uY��8�L��_Q�*I���R����]�m^���[��n��%���2�Ҫl W���W��+*�#���BZֶ����+�:�>�e[������F߿'8.j ���h"o-���r�`��"��bGr?�����#Iuc��fz�� ���Ǽ={���n7��k�� ��bl���S�ȹ�8E��p8+��ݵ��*��.�{J4�(���@��tG��/.�uY�}��$�5�T �!��DP{�8Ca6"P��W��=���Ȏ|���^��� �*^ێ[-����'����컽���G�;A?+�f@�2����2<�H�'��#��kLd�3�����6}�͐O�j�gWF���s0a*kך�����@��g�7��H�$�̄M0 )�Q�&�G�O�p��p�d`s��^5����F��h����7*䔞����m���)Nr� I�� G�5�vF�4�T8��Y���h���QwM��!W�+{��\��P=Q����(f�ݺ�ڙ�;��F�}x�u��#�F?���l�� e�9�&�o "��ކ�,��&���<��W55��>b��!@�?��t֗M1����U���a?���U�4��EQ�^�۾7�O���n��>b^|xt��Ǟ��3�9�w&�� ++�b�� ���Ё��;,�٥�Q���(��J�' ++S���Q�~6E���JX��Eο�*i�f����z#̡$t�xP!�0���� 6J$�f ++7$�s�{#�N�q���L�9м]�,�>I>���-���B`��h#6�uqgBH�N&k�9�h�k��or�9�w�L�P�|e�Xu����.Q�V�3�g���]�_��?��'�������:�U)O����ӁvD�Xý����'�.ʺԏ�V���ۥ'�ɪ�kn��P?���J���3��Pq�oAL�(�w4�7]� ++�1����Tֿi�����o�����qtu�-ܠ��G��g����TjU`fG?�@��7ܸV�=�Q����' }U3�2�B�j�k�br�LD�������o R�� ���i��1���z�U���G�G^xc�cRy��i��B/�7���; ��"~e���&��:����4�o(>�Q���_���A�"���k�T�So���d<� ��K��n��������89P'��/�Vާ9�#��Or8�"��o�Ϯ��@c�f~�����L�Af�q�`�nk_R�Gr:��,��i��g�X�����|�߄�C�9���e�{c��"ߓF�� �FA>�,.Z���ƚ�c�#hǧuf��b#B����R^�mO��f���zނ%�Rօ�� L�W��AE����ٴҷA�W�E�$c���`�V"b������S�pN���%��_��8�[&𤨳T�H�G$ ++�s��������K��Oq[ ќ��B��n{��� ++�,�2ݚ��w����M�3Wz;K��n���gg����d�բ*'�`�����c���7F�c��˚�U���x���#�ںw=Z�ʠP�J'S)MLO����ʂs�:���Z` ��o?]�͇Y Twݥg�{-���x<�iS�j���z�/�&A�htx��B1��&ZW�[�t��?S�V�/�H'ΚT����&�r��vH����4�h��j������ѣB��_�#-�OqJ�$!*uO���h�1T�I¯&,NXhLi���2'��S����t3a*8�[*��&���ȥM�Pt���%g��P�9��I��:���ӭ�H,&�18$%�tc�-Jg�'2���w@��~n-h��Zs4�e7-K��ד5�d8z����K\��WN���)���U&w���'�]I�f���m���I� ���7�<�O����H5U��Bڴ3o�/�#�S"vOӊ,����szɧF��WvN����c�As�w��sj#����Y�ܽ������8Љ^��k�,M����UYL36bC���> X�/�Zy<�}u�A�0�����a�}���DEk�ԺvYB_�+G��n�@_�J�7S�o7 �ԟ�%�l:�Q���!Ep/TCcg��[|J�~<#r�-�thN�A�^P�҈�8�.�����J��zG{�s�)NgŤD� ���S�j� ��g��|�f�l^G�hi��#(��1K��d�d��&����N\�F�= �"��Z����yݽ��v�m����Ya,*x�?B��@��\\ Ӓx0\��j��۳�6�,'. }U�� ٵ� ~uɊ���<���5�lَQ�� ++���p<���0�aO��lb�=o����+�;�;��t>�9۾�6m��S��-�iIO�TB y��<?Xőjc�b���4y�����jo�����Xן��߀�C�,�2=i���۱+>�L3N�@�Oc��;�39�[���I����^z�a��D�gx5��sYJ&���zv�^]'�L$�� ز+&��T�$�GI�}��k�C����~B>W����5�>��A�#�T��s��M.�Nت�c��I�:����!��m[�k�)��#2f�CG%̎_t)����Z�9 ++���L�S�vH(��x���q����)��k�#���|u�v�-+*�2=���q�`�6S��.`x��kt�~�Y��'�[��duD�����FO�0J�wD��]m�7'*��Vud����h ++���]�`���ؑv���TEs� �s�Ywm� ��N"�j�H)��FE$�1]�RdW��B"�ٹ8%���#�&�=+q�:lo�2Y���`�i�6D��r�h�e\��(#KT)ğ���>r7B���!ӫ��k�qޑ0�r�U�����\o�!�N������65̬v`Ux�pu"?�j�"pGײOxf�-�o��pF+ρ�������V�2�s�(���9B�FM)b�nx� ��S���&w�F�ݚ�,�Ԭ��?�5�Q�m�K=N�x ++���k���͓3��_�<��'�k��I��貙��@��%����}����P˙��b)� FSb�X�m�8Åf�F������48�t�8��K�%�Ƿܹn��������o�Ϊ�pB]���XJ�d��ώ���~?܉&*�|�6î����-gb\H���B�_P�bV������4��V�{���0�s�/��(��4?<���"�@x�,��s���k7�?���= �(��4~{�-��3:��3to�VZɀ�7� ++��m����rߏ��� �_�;q�h?�q�a���kˋ��4�G����@8(WG:�p��s�t�<Te�iI�$6� ͡-��"�9g���cV���J ������t%�5��Gg��!= ++��x&�ݪ�&՛G ++k�W�p�9�ו�1�-0[�fi?�K��p�����O�2���*�]RpnD�U�9��L��:;o �4N��:�#�i�a}�f�F��$VR�H��0������D��v�Md$�.9����m�ڔEd�R�X�u���,z��C� %�'�Y7Ete������~���F��n�)=�w��y���a{ʄ_]����~����/v�O�ZW�Y�2^�'Eɒ�![zYZ?G�v��7�e���wzy��+G�6�\�0�XŘ��0�Y�#6�&_��&�y�� 7ãL�_0g����Z×w0��G�T�#�a��r4O�kX-�@��ӎ��q�qO����n��D�g�����E %�S�)�V�$�' ++�W��.]�ʋ�����Sԇ�fe��"��Uk����\l �Gs��a�:Q�!�"{O�J[V���DT��贤Rdn�-)��i������sS � �v�����ey{����a9!�D��{�-��cxN���j�M�����O�J�UG�Q�o˖G���ީ3�E@�W�d?-��uB��l�D�����9^LX��X���|����,�P� �a ڰ�Nc�7�.���/L�|@0&cM4{<��ʿ��Wp�&�<O+�E�)?��%<�}�dTёex��:�=��ŝOޯѧ��0[E���m콱�G6C�Cݘ��I�ކ�ݾ���_�u{��O���� eN���g!���v�R�R��QC278Gx`b��%�i�g�3�l.���,k�jG�?�Cl�3����L_�t��px&�UJ�Ml��� �Xl�%w�)��� MB�)p3NҀn�v��~"8Ż��y��*�W�[��s�Xe��A����9�aI�6mε@��쐪+h,�Y���`6�7(���f�3CK*�'>Y�`�9��y��WNc�i�[C~Qeu�?tn)�/dO��4{�K���qvmӆ�YR~��9<Y�5}���ʛ0�O��%��:F�T<�Pw�'M/#��/��gx��j�ٵ�D�x��Ǘ���;輷�/O�ÊF��d`�*s$�[碐��m��=+���]ND��Г�j�ծ6�[�! ++c�=������?`g�l(OlB���`R �tP���|�ĖĦ]X�=��]Y�8���Vsg<��g�$t�ֆg��N����{���T����u�*��������a�;��ױ{B�7��ڎ�W詆��'�6�L�Õt�۷��w�v����c/����_!�Ґ��wz�ڞ6�M?<����;�u�U�;_�"yZg�l��5%%U�*�U�j�. ++�u�vL� �! �<�f�����NsOw�d����Rfj�6ڜd��V9?_�����%+�������4;��З���5[��G�!Xsޝ �9�h��2#�@�5�s���A�T�}۾t�~�� �EOɩ�g|4Ql~��CF��U9�iEXC�\����_(Ҭ��P��0�u�7Eo��`��1��re�k���ڮ�`�qw���f]�Wt�5�PN:Fk��a,d�� �P� �3+u�y���6�����_��d�圄{�/�-hGȾP�V3�f�T�m(��^w�;{w'6���j�:br�s���t[�Ȝ ++@:�����yK�u��{�{9 ++�D$�V����' ^� �M� ++��ur�iG��)�Y���j�1'��\��\���s�p��`�J�;���k�^C�/־���@7ׄ�������6���|��S!�ipc�<7�W�A��x��Î#2?$���zd�2���B�oX@< h�$L\�ܸ�1Zt��i�28cw3�tJ�gnqȳ=%X�D��DQ��:?�i��~�R!��U�v8�V[!v���@i� ++M�K��e�J�[Եc�>� ++�`��R��A�i.�U��i�eHP\P�Ps{�!��B����P�~���q̪�AT�4HA�OY�_0�;�����eP������� �(iP��d�|��N4B�����\�>n��9�6�-��AR�A�S�z2�C2�`Z������ي"���ZӦx'0�t���<����8u�4lQ���ז4'ѝM�:��q݉"Dʰ��r�˭�Gl�e.;TE�#̉�U��䋕�7�>d��Lݲ;0�_���Rf�y��BY�g�W�Um���ָ2/}�Sn��6�n��й���ps�&6�g�~���a=K�II�%�J`�6O�nv�e���Kc��<��r��褄X7�K���XpRo������\�;B$�Hr��F��<�w���:�[��_�%u@��!?�"�~�)Ώ�s��Ax�&d����Y������h#M@�i�!�u��͂� ��zσ�l"���pNJ�ԏ�${����&��Q��ۘt�C<���L ++��;�L]�ۦ��al��;c7��z�Q�KKhDQI�d�a�+O:/FO�Q��aGH��C~sl)cJ�Q�])(W�K����A��&-�'ԣcJ�a��a{�����������QQ�>��a3� ++-�-�%]5�멏]`��'�#wx�7�V��X�: ��A?�+NJ���.�D`3�N��&� ++�C��i{Y%�WG?[ ��K݆�U��u���JT�W�<��� �����I�3{U���bN��֕�������s���\�f!�{i �MqL�2��BC̮ ��e:��tx���"��) �Ī%X�Ž$�1!n�%�7�<9 � ++�u������4�X�O��+ř�����O�f���R�"ڨ�a%�kp.Bd˒E��y; ++��N/AM���V�dV��QҨ;R�R&�R�o��h*�倉��Ʋ d;���h�ў]�tS0��3�o�32��Y��!sc��pL�l�^ ++R}% ++Ӈ��F�"Ո&f\Ž��~��bT��Q���թVa���� ++�C�"p����`o��7^ �z�=�PT$C��a����\#��qg����һ:Қ�����*jƤ�*j�ۉ5�YΙ T�wv��<�K��`��aN�0~l�P�#%);ߩ�`0z'����%�Z"L��6��D~���� �K�C�ƨO�u|Ʈ�L� ��됕C4��hL�6xD���x�~F� GRS'luGvX�s��tbT��*,���{�F8��j�=)��r�<�{D����f����0B[v��#�&̴�⽃ ��oJ�^�nWd�S~|�GO�}�F��S ++�_���V��K�?vF�чi�*_���/�טʢ��l�'A��B:q��C���=pu���7�u�(�P)��:��\��[�� �y��wۻ���݅=ớ|����hY��|C��$lϑ�mWʧb�DH��w�^7Z�2�:彻�k�G�F�!�*0 �&s�Êdg������>6��6B�����2�:���vR�� r�|v����Ѳ6s�H�4PNyT���.M*�4/ٷ���_��tҫ=�� JY�iJVz��)C���4>Q M#������nBr���]E ++�>���}�X�G����|�M�{O)����|i\�0:��q�&�@����'�X>u*�l���$k��;�"*�zʋ�v!xQ]~2�Ъ�{�[��R��DJ6[?0 �q��2Z[�芲_Ŧ��,��#�ߊ~��̻KmP'�ㆤ��L��1'-�n��\�W}K�-˳@�~+"}� �ڑG͟t�>L���4N o���MϿ"��`r��M���zX�W���G����r����m�]w��v˃>�`Q�+fUUY:PνE�R.hm��D�Mk�4B��s&7�1����:��^�����W[��+��B��XY� ++����3RX,��K_-�Q�kk0���\{V�!�$��)�>h��g酵=]�b�[����ݶ�&|,�J���#嵅'<�v�S "v���9�밶��$�D��{���Fu␗��GM� O�:VOy:�Yy0-(&����.*4���n\ׇ�|Z���(��([l]e�L�Ϲ��aeU��V6Y'#�.�f��r�腮���tiT �����"�H3���e̩IZv��_ځ�v�����D�������2�����ԡ���>��������)t�4k^���(��͓"K�-�,����?�^/( �u�0�8�È+v,�m)�r�ɭ`�$�'�.�p{6-�>F�"��@RQM�%��z� -my �_�A��5��%���"����8fu�#��F`PdfgK���)�H`Y/ kz����� ��EQ���X�Ks�X�'��.�N�!I��y��䚤d��Ll{bѹ�ݔ�����SfG�JWz�����2� G���ݗҽ�������=��Rosui���4�s��Y��hz��A�J�o8��[�]���N\;$�,�l5L�p��8���f� �4 ��*}���d����\ λ�3���J����1;�(7O�s�Τ �b`�aV� Hv����<��<"@[j�Qo��Ϲ8m%>��ݙ�#��a�W�FV@NJ �e'ʘ�m`w*wB�L0����Ţ� ����=A���+$)�o�ȍӧ�+�o��Ue�c�f�j�E��rxT���(��`YP78l�i�Ҕ/W�e�m��P~U��<U"��mZ�����v�X��� ���"{��QVr�:k ���<��혗�辪�#���C�9O4��@��~�4��'̔��������3�A@Zb���1����VK�����x�����$��,�0�����D�s�~AA�������S^g{�RVU���ֽ�x�]oR� ��^>t���K�-5g�������ٲ2��P��rE ��~�2���d��g��Y�����q��g��-��� ++Z��KkV��$����'���x4� ++�NN8���E6P��~�gjM�ʼn���~���7�V�;��H,���cF+��� ++m�y��g�gԽM5Ďq`��.a��k��~ڟ�ˢ�p�����\�q�k#�KBP�в��@ �+o����"���v��˲����!��G�oj_]� ��D�l�cH�2��q�R�nxt�.���p��1�/����\�&ͮ�MaK�F�G`�Z��N�L�;(sx�o�ȼ���>�dBJp�,0N��'����j`�o����:{���r��yVt(ȒW���s�B� ���ݼ�rt�0H1m��ܳ-�Cd�O����v�o��74@/�u���pv���\iw�l㨶K��� ���z���ΕŦ���ӵ*��� $mh��cJ�ub��C#��쏀���^�q���~�+����D�ZNV�q�F(�5Og�!�+����쿥rO����'+R�h�E%2�����7�ZQ(eR*~Q<D-QP(�ЮF��&��tYŅgw�Zo����E�)���L �����H��6C��G�rn��^xer �[ϾB���2�8l�%�a�uw`����I�N��)����!�j��W>�R��6cV>�g@(�o�wg�U�\��#R�ٿ�EV|YD���]�a�e���ጱ2+J�V2N�^�!0k�9F�U�����/�i�W�lBh���H`�ǐDm+���;��� ++Y�W��3_�8]"�Q;�@7��<ߗ����/�s��Z�3�~��O��̂ڇ��*Յ�'k(2����xN�A���g�S÷����]���ua��~5��ϩg��{h��F����ٺc�A� "k�[ W�O�w��,�:�/w�~��yi�vH}������m���Hb ++Ϩ���Qe~��$F�B�����'b�S���K̎�4 +�,��5A���<'���wz�e�(o��� ;��u���� ++� ö���EP8d�0s{��a�Q۱k���W����1���s�8mz��c�v�X'�b��-T���S���P�-i��6nk⁁%ݙ0rIL�ߦ}�M�bsu�*�t��#�L~��r@L��^�ċ^.�"�h�M�%����i�����8�3�h�E=��4N���s��x:���H�C�Z� T�5���i���R�נVW�(�'4�zv�kU������DYO���ј��О ++ �\fQ�tH�H�W��Ӕ9����ZU]=�U����i�5��Q�Hs>r�r�6����8�FQ�s�]B>���[;}%��V�g��2א�q(u3�!��v���]3��=���)�F�b�F�h���Ad(��m0�{R�Y �;���'B]S�o"u6��o:T�J����c*���xT��˥����������eF�QZD��� *���h�A��{�)<j5��f�=2=k�utM�Ll���*~�q�3ē(�H-��Mۿ���T��5�I�0�z2IXS*��.["I?�#�d�[9$4�ۈP掯`hWy\�p�hҠ\5b(�1���rQ�$]��gV�L�:���e�uȲ���ij>�߈�����Xv5p��*p�:�*;l���� ++��ƻ��9ޛ�^`����<L�F#u��:D���a�2��qcR�"h&*����:Mp��I���(�͉���vE}�/� �:g�!z����'=X~��O�����5tY�P�����Eu�w؝�|�D��P6��U�c�`�H��yz N������I�K�����=�N������w@�����6��}�! !]����O �^d��v���9�;J��o��i�n��*�������0 �gb^D��i�B�h�����\Zc���t��O}�\{��+��J��}�;4aJAQKs����x�����֖�G�35W?��o�9���b ++b�o`�h]�)��$���M�����I��ݔeȵ�m�����wIhbrZ�v��˻���v�(����{q5�2�Q;~O�p#g }��'=�2���d��e���9l���-uTIņ��N7�� ����ݸZF�DQ|��[i<BF�jg�]������&"��6fdՍ��yl���ty���;������353?~�Vw��@��|��R��r�I.%e�b6�����k務dP��ށ�K�J����j��fgj��/R�,_ 76և��o����mژ!)cz+��W�g�K��C��;9@��5 �n���l_��7��'��k�f1�衿D�yj|���+\Z�Hu3���;�`]�T�hC�y��]��z�Z�d�+��ﴝ�G��I��#���+����HM�v�x�맔=`�tv��b���܋��ӗ�����wOO��̛�*R��"Bwm�V&*������5�����n�+x�/��3n�����=��� ��]|)7ו�rɥ_\�Z]�4���->#�]�)~�B�r=|EdzM�_�=پPw���J ++��brz��_�g��B�^b�1����t���S�]��頋��ͣ�9���^�����p�I3W���<x;��ݎ�t�h;����;H�me�uH6cD�[sE�b���I|P� ���)I�i0��hf��!�=�:��(�P�1�@~)f��t]_8L�f���%��5~��<~G( �)�sx*����ˑ�S[�ڳ�8}��R4��ٕA_Ƚ� ��5iO����ߍ�$�F���c�n�ah�:ѦWF� ++��]2 ����1Zװ� � ++3�`��;�8����s-Q�p�f�����ڬv�{�/�w�Z�k�<���P{����l��T�&����+>B�C1fM�j�U���@T����\B��/&����?r��F�3ֽ�������������ﶻ�uz}c+:�%/�!��iD ��B ++�"�(˴^�&�p�H�Y�\�ʗ)K�w�ˬ*�Q��-��˚�[п�lR���~��˚i'�p;���� ���滏��� �{�$��Cr~f}�|��g��;�I⿑�R1th�~|�oG�5�Ɯ��Ɋ>��Ρ"�ۺ�_�L���m=��߶���o��4O[�B`�ƿt`��?k���K��'07��*�p>{�u�����k�/�P�����.�w����'���ԕq��ӽ�є����u��}|)����n�W��1��#E��� �+��������}�oS��_t���i\1���k�?�W���;lA�;�NJy��gf��}7ww���ʈ7D�韍��4dR\0o�E�j{�ņ�-}H�f�\�8�����̯d�}��{���Z0:�ޮ|C�:�j�����գ[���բ|�/!ax��0�n�5~����x�'��Z`aÙ��F�q��8Ȭ�c�B(�����T�\~�ٯ$��v.� ��L���@a%�i���Bسָ��O���ө�7���.w��1Ёb���O� ++�$�ƣF�&S]E��z���Nd������nY��ϘjS��\�D̺wTԲޗ�x?�~��P~���=�(������~և�w�'�O���C��A�7H3���_�\�&� ++{!���? �ں�h�]��Q!�W��j�����Z�k���h>ܦ����0N�5��RG�5������h���@�tv���*�{_ej���rE���5!l ++&u ++�)#��a��]d�J�T�>e*/4{w-�`�i�W��?N�� �dg~tr)BKɋG�9^#|�ٜm�uSHM�M�|4q�ë�[s�&����'������{S�`����>^|��lޑ� t ĸC����8Ѻ"`��D����($w$��ʁq5z(�2Z�(�����=���\D������4��1O�<\!a ��mn���#�6�w$"pH?�����:ER�w��ĶF�7����iX]��>�;��kPX� LX����� ����`�ra;<�~�,�;����'8�I�;Eb%�s)��V'������F�hT'd�b�W��h���3G�j5'A�g!N�=a�,$α�p��I�!g�� ��b-��qs�0�ۋqל����h�2�RB���6K������o)���i�pt�����ט,ە��e W�!ۻ{���)�%�J�'��e \�P�y|�t|x��f��i������o0o���h��K��K���<�Ϲ���5�i���Q�Y����� �~,8�� ��@�� )�~�8N饯���p�hm�⮲��|89a|�� ��P��G�����e]��*�8V�ڡ�X�]�_�H�2� ++c���P � ++��}�L�'�x f@��|U���K~��+zm9��!Q�iWp��.��"��ǭy>bZ��oE�k��2��B���{�y�ٓ�r��!9�@��g�.#%��@v�!��>�~�N[��d�LT��Q���9�+�P4�>�fF�_�i���/�������Z������:b����{�4�^�-��ve�<�F̄B�L�y�����˳�A>»��L\�$~�� ���%=��79�;�I�H!Zu"l�s�,���p:А���P/#&�S��ϟ��bE2_�/FRV%l�Ml�C�LU�o�P�'Bj�DI���ecߦ/z�ʿ�_˺S�*��*̈́����@�}��qs�/����qb��]^���8J�o���Z�ɨ��E����D�Lhޮ�W�����wg%�J�p����%�|O�~f���g"P�ݙZ�8)��D<'f��#W�{�dh��]i�Hp�>p[�bD�w05�� ++�b4wJ�m}n��#6<�{J�D���[� ��ښ�K�g�% ++�y�&ˢ�2���3 ++¼G�������}�qz�?�����/���m$B ++��FV���G�{��j~�p:$�}�L����C���D\��!u#+��Y=Az_��F�u�����o�������J����uf���f,�f��"�S�>֘A��4�̼%8�w���R�S����A�R/&.!V���7Q�(���i|n���c���G�������z�a�=ք腃���M��1"���a��������@��Z��.,-xt����R.�H�'���´t���S����xQ=�S��^�A��~?x��;Q�e�F[XGv�w$���V�l�FJ;��})wN~>U�<\BhTyj�k峍�i�x?گ G5��Uyx}�\��.��+�ǒ�emO��vצ�釪-�z}���J�D����Bork}����Њ�&���'I8�2G����#��S� '!��zkC�v�m{Ε&hш)��$�*����1q%�{}��;�@*��g7,� 4���P$�A�+&���k�װ6|�x:@^)�ymi{m���|~*�9Zv�1gڬ�S�p��U@�|yDGR��7p[P�Ex~����e��o�3�4�5��+��.h WW����~BǾ��QZ��k����!�7��[��G�7؋\�qc�:݉5�+���qE�F7Xr�#%b���J��ĸߘ$hN��]�v��Y̵),�Y��Mk��U��7I*z��W�e:=�(���kh��}�������۫{��H0�\$4+d�az}2�uC? o3s�y[�rr�O(�Л ++%#���.�`k4WD���M��`-;���7����Ő[�.WJ��ƥ�zG�(��]U��z����N�f�����<뤁�_�j����(�N�}�cc�����H����ѡPg�fJM�������o�C]���d j�W��H���u�w>'�^5/�B�t��}q�=�2={'~�� ��M�f�%���h>#A&������v%0^E�km}��MQ�M�q+�d��PlX�J;c&��vS�\�i��cͺ��Qqwt��xց�Ѹwdt\��Ϥ&W�ݔ>�敶�.F��I&�}����R���#�>z �q y��g[�3~�#�֏V��&q� ++I9)$�j�*������� ��S��x�}��;T����w�u7�_=�h�,��|ܗ��l�����}o�� {�H�q���of=غ;�qY���z�~<�/���xFۂ�j�g�9�߶��y�>�7��:���'B���POE{D��0��8I��z���7��E����ӣq��eMF���R~���E4m?bG��s������&�bY��_Ɲ ЄG#�|����5�<ۃQ�K��.����2jOn�V��5���|M~?�P�W�8�eh_!ih�z�l�ꓒ��啥����ͥ&+̑5�7��5q��Q��k��k�q@�EM�:�:yR5o?�ç���Z=��7vmYTz3e%O��<�V3E��j�b8���M�@�6�Ñ��[K�*n���C�-f�����&�4�>�>��͜�6�'p@kh�#p��tQh�h�դY���x��Sl�� )m0��� �>$�[���ΖJ��8��*����/�Ë����?� $ED�@(����I�ŹҜ�Pe�ن����%��D�9!��d�6��o:�=��*����#w4/�k���q&��ge�ٹ��zzidz���)2����=���A7Hb���GN�@��i���Ӈ�����-<��4��������A��|CI0���c/�o��0� ��~��@�~�쳙�:�Q�y��{�������ث)&��bw�&����6o�6�o�l��Y7�%�(���ݦ���{qL�I!s��Bx�9M�4�tL� g�=.��K��t�4d&BA������7~#���e�W 8'��^��Cv�6�����~L( ++��@=63���S4s��,i�����#jQ�� la!:�h�>�* (,BؗN�H�g��ٹ�ڬ�y2���z�ѝ+���bB?B#��2̞ŵ1�%��Y/I��E�~�(�� ?Lb��s�����]K���{��Z{c����-!�Y�@� �\�t�e�Q��Ϛ�K��V_Mhブ.�~��_���~�ސ\�f���� ++U���U�g"��"�״}8!M�L<h��ӏrR(U�G�Ax�$ ��h��|~x�@\�\/j-x�I+#�6���TbԥpC{�AD��ky}�`)�]I��]fV��^zM���䄧j��9(��j뺁^!eE���+��Q�z�o�%���I�r��NY�����sqlM�}:T2��%TK3gK�=\F�fk��}�'_9�+6Lnʖ�FZ�B�`D�$+���m&9C��O��:Fs�`�|���]6� �#g�a�g��N���1��s��6�(�65�լ1h�� ++�n3*��_���@��_��a����h�n9��8\o���t���熃P ��]́�5��ܜn�/[�~떐�؞!D�Jf��9��ଥ��@�__�e鴃!i�瞕 ++�T� ���fJh7&cL«�S;�V ��_���d2<��OyAq��5��nJ�k�'�`����M�6����A��h��lE_�3���� >>�A�΄�+<XK3�d����K��1����>Q[����(ĸ�&���al<A�5�"��kX}Ws�s?��ٞT]C�(/�LZ���c|��DRFI�l��k��l��כ�Ҭ�?�ێr�����zּ��څ�ζv���J�G�h� h6���؎T|Qi�,� ����9J�T�̙��+��T���1���uu�Zyx�>"�Եy��!����g?�#�}���E��sLz��2�艼��$5�XQ�R2��~�S����[�p��}��.O��~����m����p����@��`/�dd�+�v g ^�[��EgYFO�H�+��GS��n��I�K�( �{3*90"���g�����@c��к/�f�AU��� ���=�bj[E���gH̯���9�Z��L��_�"�0�4�_-˓�u�Y�%m����Xa5 ++t��N������ur2� L�A/<�Ϙ�ˈK��H��)o� r ��#Cn�<_�'��ŏ-�BKl�ͩE�T}^��+�OZ��#��N�n�0�Y{�缛aN��nT�d9�� >l��>7�~�-��l|�AoS3Y������>J+�R�1��rE�T+/e�PL��BA�}B�� B���&���嵰Z���Y��(�7.�<8��,��5�_�� ++ͩa[�?5p���a�p ����N��DE���OEFʱ trK-Jf����L|d��!���K�9�\�$0`��$\� ��(NdH�Ü�(�Be<�D��˔(�w�)~��4�v��n��ss�H!PO͜�l���wQ���;�e��ICD;�Pl?���E�0���C%a�'����*C:\Ї�O�!��������Bs�CZ�Z��������{�6�N V�YM�8�磿 �:/����g߁��v�^oٺp���*�����Ca!�;$��Zj'f�����+y!;��F�Ff�b�FT���4V�Y����n[�![��x������'[��_��8 ��)�8��eb�P�O��y{���.;��ڠ�k��O���vH#��_��x��jƝ}j㔟Zx����jpDv����!��VF ���<���@ż��r3���G��J ��1 }v�� _�[�-�j%����r����G�)�5��S.��M`O������>�3�A��M�:}�0,C��4}2E?5Ӎ���Dpl'�-4���˷J�CA�& �������*�o��Ě�b��T��l6ԏѱ��)�:`.#RדW���������a�־��cs�.�5��OL�p�#�v�M��S�!]�F�uA��vsx�L�ErI�������P��C�a�T�G��Ę�{�&�^��>����e<�6<v���Aڡ���a ++CT��䕷�IF'w_?ǟҎhL��u>�|AZ�2N�9ɗ���p{��]NP���fDC-gc��ma�Kf�\Lߧ�m8XM�7�3IF�e}����8u��9�i��x��D�t�ұ�v9�S�|&(Ɇ����x�ujz�ML���j��ʯZ��/G=֨�j�?�P�6H���ܹ�����%�Ca����nn�e���`�{x�S.��È�l"�� uB�.w0�6���~p�P��Q49�L�g^j�)噗�F*Z�@ͷ���WhΎ)�A����a�5��彻2G�Nni|S�]��}��"��U����7������o�h�i!�S{i_L���]�6�W���@����8�E͔��&������ꌌ�U����FFB������d8L��y�:n� ++�V�F�פI,.�(�<��3kj��"��~�6yB M4F�O۞95���ʧ��S�����O� 0�PG�š�@{;� `��|1D���t��`P6�G Ɔ�q�.>P ���@#p��BI���iaώc�Z�E�M���9b��ze��`{�����Qc�м�a3^:<Jƺ��7BR� ++k�|�t�%�;Smb� ��:K��s3���1��,yZ�^Ό���{�^ �@Jf �1�O��]��'�eD'�c%���3��)ʓ�����=yz��Vۋ��bd�Qs���P��&9&c����oxKꌉ`剥��@�:ZU�̋ee�A�5�e�岔I��)4���)�-�@1x�M�E*�J��� j��O��n;������y���;����C�3�A�G�̀kr7�iAM�V0M�S`��̀�k�k���U�J;����d{�ޛ��f�·��{��p��0RC�ͯy���zy�}��R�l�Zt�!�#aJV��3 ��8����+��ڕ��1ǾB��9:3���Gg۵N'JK֤���I�qD�I���¢5�4���j���fr�u.�r�j��(�$Ź��� ƚ��)ϭB����8M�(��*����G�&i�fHA�)��!W���;�Q��Zsl'3�̈q���1�>_q�|��� R�k7%�X��|��<�����ĕ0�&_V�ID|s�.���7w��c�v!w�#'��g�ċbD ���0ֆ/[&� �������/�Pgd�f��n}�2�0�f� N�[Է��a�����f]c�\ �����R�j���M��AfqY����HkF��(�x�g�����X���9�=[u�Pt�|��^�:��18V����,��k �p��'i�D���2+��g�#8�9~��g T��cNr�F�Gu�!Hͣ���_�Sp��� 3��:?j���)b�]?k�a�dx�8�g�-��+q+TE���B��9m��Q�`6k2�b'@������#�?��=�c��9�B��.��Lz�E�?�g�w�зx�;t���N���3��H�R�,���#t-�O5�ڴ��7�C2=�3��H ++i��DN@m�E�M���C�dz�C�-L� ]:�y�E+��U���)�&?hy��֜_�RqG�%��O���$�y5j�ij,��X7��Z)"jiBe�� ��Iphn����d\��ݖ���?X'ݙ����z��j�nυ h�bKX�a�%�?X�^^2�-������݅6�ѥe�<=�g��w�%�*�3,,[[g� Ve�;tb��� s�,��G`͢�J���K���r ��n%a�ug�{$��3͚�d��T����w�=ݟ>"e��O�G鐄(�P�l\pɺ!�+� L���}Y?�"H�(�}��<@]yW\�& ��I;�����7r��I�]6V!r��w�!ws��=��#͍�3{�Rf&��5��Y�]_��E��R3%m�ֺ5�6�l�2`���& ++2�����!Ig2A�/�þ�;Ej�E�)Z�7��ܳj aZcc�չ(7�����B/��2� ++�ַ`z;�x<�>fiw�A��H��Z��1�v{�SHn���A>�? K����Sv$�)N��%�<�ѳ:��x,MU��n ++L ����X���{{ ++dX�9Ee�2v'�C���*�K@N@�6�T�<()K)�8lc��T�F��-.�m�9�a@�5�8x�|O�C�!l��%�Ξ��*ЄSvBI,?'_1������cϖ�%�,kR�-�;�����~o�H߭~")�� ++ا��b���W�$�\�m���e��R��Z�(M�\���s���4��<���g�w�c �����\�_7����)3�I_�A���K�i��W7�JI��ﰔ_��}�ɜ���b24 ++߈����9�]}_äl-JS'}����9�~��IJh҅.�%M@�X��+�}4���gRrQ{7���%Qio8K��ޘ�����om��y�i��xx���{��_��.�������'9�|#�Q��m]�}���r����`+�U��R@��j�Wܭ�-�ƀ`aX�ٯ��Q\�{\Un��9���j>g��S�x�SAn�FY���nm{��� %��[�I(�i�P���.�� uU�R�(����ƚ�d�"�]@E}fK)��m�- o�$����p3|@��/�=!���"W=�(t��q,�J'g=q��i;M�ݔ� �mL����t�g����}�mR!�ݳU ++��8����&�'Qe���S*��\o��¶��O�e�J&������c�z������ګ���#��,8Chmʧ>W/�����NOřoG�ܻ��)��ƏDP*�o�֦:֓��3�}4��m�{=�k�V�����o�W�@1��AwtMn�����4�c���St�Sn�"3J�dγPʧh���*�j-<�|HaN<53_��B6�����x�p}�\?�.�`���<D�\��iQ��.+3ݹkݰ���#�?��F�5���m��A�2;È&���E��9-�aa0��C�q���"�E?���Os'�@$z��K��P�7XROUU��� ��d��e~!L'���}����^��wo/�@;m��6ED�5?ó�ڷ�>�����b�Ц#��\�Ny�����A(RE�-u���KA{�44p ���Ů�L�h>B!�����|fS��Cr�rf���7��_�@��<����y������Q�v����%킬�+TH�X-cp��b�RL�XM ^ǎ0�x�3y?�?�k�O�R��Y�E����������L��̧q�E�H����P�_e�C��0�h�j�&�z�����*���6��Y^Ϛ!kl&���������3u**~����_vC��}��qm��G\�2j�I�ӂ�QaE�e�]u�qz��u]�}@��Qi_bFn��t.�i�爲&� ;�6Ld5��d�������������슟�+�ZfNGID�������T�/�'u�W�j���_n��7�`��s��e�� ++����W|�̋����<��TW9��N��6Ό��dͮ���Իޮ�ȄA5���5C������\�JiJ���_u��,�&l����5J!c���`N@[�M��z�YP��2iZ��T�������쉂s����/���Uq�Z(��.�8�D:�����u������y�4Aފ����0�O<�����Rp�c�>�$�r]_?섨�c��9X�+F�#R9&=5��+S����78~E��e報�)I�k���}� ++�Z��Ʌ\U3G�ʵ���$��7�[7��Oo�&k��:@�O���2�����VJ ���RL#����ӭ�����~6�g��-#�O'�a�R0�8]��?���Hwg��n�Z�3����R|t{��x�������Hxz�6��%�Q���R��-� ���V��6�gU�@U��ↇ�ujn���i��cNL�ãZ]�ݕ�u�57'��L"am"Z���^�S��^�Z�J�GB�,��39.�������GD8:u E%��W�8Z;X��g�X��Y���|M���8�$�_R�y� ++�14�ߓ�7�WYx_$X�6�M��u�m�wyl����wr �6=����V�c�3�uO�~���ؠ�� ?�:�zk�X���J�;d`�3]�@`��Š`읖 [Lx&o�~�h?$W�l?/ -�<��O�s�4��� ���ymĤ�@}��(�\ SJ�q��d�#�;�8��;j�)����>�(��{\�N�r� ++8��Qx���l�ّW��vl��>�QF�78�u?���� �[Z~jTm��_�u_�w���F��l���YI#R�f���u�M��{�;%��j�<��ydj���b�$*-}ˍ-��w��т�K��r�C���!�WtQ��{�$�D���v��2����§&ָ]<��m���Z!@�,�N�5&g�B�j�n:$���>�W�s�'�) ӧ�+~6}�:��h˄����T @d�h?��ژ7��SYѷ��Y��3�����F���a�V���>�����i��_Ma��,"����\�Pٚ�7xuX���`GV\�pgT��D08�&j���� ��%- xK�d�[��2��F�r4�4uF(��% �`����!���9G�#�<al�h�Y@^BcXk�V�E�}�k��ԑ� ++m�9��O���d�{�7L���sw�������A��� ��.��X�E ҏ���� �(��i�z��6uO��z�6�Ș*Ð��6 %��⸸Fr��;�-�{���%�$l��H�� ++��T]����1�t`" �I�A8�z���i7;�P=�{���u���:K���ԟ�a���8�PJh��sD|9۱+�#V��+���&~>0z��"N�W�4�AX|�J8� ��IJ�D�a���b/�0/j�!ջ�i�#R�{GI���Q����:e�0�x��p���>pW��O��-U��u2���WWܽ��@s{��(�?�Gd@{G��3[sd9:,�c#v���B���*;��F;�|[a�YY���8?�H�j���%��H� ���i��9����ͧ����ېZ���q�,tSêG��Ź��e�*Q��?Q���l��5 ++�~R�)CsR��c"T��"ɶ@(Y��([f����a!�O�}��7c���YZ�7���{�oT���ؾ�bv>��� j~��U���9�L��R�2ΰ�]ޭ�.k��ꜚ�]���qF�p8V��^��$/ٓ�����s�=yo7������+5<���pa�`s�H�c�9t��Oz ++��/��W<&7h(��=�u��u���v:w������MBn�m+-k���5�;�������e�Q왲�)��b9�v�� uq�����K�RV7!1��ek�Uq(��h��oj��N��hC6�y~���Y�E��>g�U\>~���T�g�ى\�`/�Н�g�P蘅�C��s�*��Ge.�_�`�1���R����\�C�[�pD�"�I��`t��n+�I�����q����ȡ�\�������s]��p�ײ�O�!Ai{a���}L�|� ���j�j��VoT!J"`�H]n�U�i�`N��Av|��!��qNҨ &��=�g�'�U=������շ�D�t(�;���#��u���f��VV8! ++�s����>��nN@���g8A��3�M&���NF�u�"�B�� ++� ++�Y�:;fu����\h��B�7���&����J�'�EZs}F� �-��~�`:����B��¨j������y�h��a�NL��jhb4��|M7�{�7LR��f|�5HS���~얘nH˔��m�#���t@� ���w@��>�b�qҝ�!���8�s.�s�ڴ{�İʦaM)^���K3�QU���{����@X�c�Z ���{��2�1ǠO�]�l!�\h|u�p�H;R��d!��'+�$�$\f���u����k{;�Tj�)���P���9�������������Lr���{�پ�P�B�M�d�E�S�%I�L�)�S���W���}b�B�ֳ�k� `�*��6��Y�-�\E8��ɥ�Z�����K�"#猲�@Ţ��{����O���7��0��g���J���+ ��ϗ��{�#���y#�-�N�c|�<����wð�"�'̄U��5�i8�����&�GB8�DP�t(�Q끂�k�4W�����1��T\���?�ڎ�y�y0Ш���e�0��y�8.�H%�Ř�3�p���=!N`P�ɻ�8\���X��>�[�{�s��qYzi����������n��q��� ,1�#� �:���S��=f�ZU�I%�L�*v�7�������$��H��v�NA�#�U�?(OU�]�/0�ÞL�`����fz�%��k��z��9��*�IKh������-�iY�z�7_��Pŀ���<Ρ5��w����B^q�76� k�=���!���@���riɇn�b��ؐ��\���!��w��8V{�V!3 ++!�,���7U;haXf��J�����:�O~��M��Tv�p�'d&�N����a���;�in4B6(�5.�l ^e���;Y�#:�0�;/��ZK{�1]�\����7��h�CX�$ ���>������,Ar �Ea�=�Qb��/x��9]�R�$C�ǚ>o}~�щ�&F�T?���d ~��PS����ae��%�5tk=种ʊj�5|`eyɟq���4�7��~�k���b҆.iOK���h������ԑ��Q�wGH6#���k*m;~���G� U�>Lmne,H�6*�:��$�s��dޫ�kDڒPo����[�6ʋ\C�T�(�h'�B�%�ٳ$N2]VR%(y�� ++9m�����\w\��G/��Z���*'�R�|Qz��%]p�� (F�)� G�`HfW�uF'�>����L��/��"KB��&Z��i�lI3�m�5����M7�!z�Np�}��Ǟ�ӭ��zlBٯ�Ğ�Z�-ڱ؞�g��ΔO����?�nTY����}��{���Y����`�����M����ƪ�i A�Md43��9@�"����� u_����Z��}�߿��Y�rIK��ʧ-��iyW�0mD����`�z-��QJF�P#Q�I�>��B�� ��bV���z���ƒ��|�����������PjL�*���86q+�`��� ++�/V���O��}t&E%a�%>���$O�OC��$G�4�vs�u�Ka�c<�(et�P<=��5�����Nl@/'�x��{P39(N��A�������?��(gw��=F��)�*� m��~�a��o=h�25T���Q��5�|1���#�#�XDRw=�}eqy^�-�K�r�Zo�� ++��w`�X�G��NY��Bg&đ�I������Q�R]�c��ߩy��q[�CZ���}[�,��ޕ�=ֽ|S�;���~�5B1j_��:�/5ro�i���<�TCzӫ�fya|�(�,*qt��\�7�e�����J׳�s�T�;b�;���ꊵ2(a�(m��ь���o�kbS����(�G��|!��,T�ю�)>Byl6�����_����E�;U�a���+��5�i�k��3�9+�<�~��Γ���������3�u1^Ԇ�[���mC-O�ٍ�*#CO~�*Q)��Ǻ�G-K�_���rE�0�_����[�(�f���S��M�2�Dg}������Ý���s]��g:%�7Ū�/9Ƙ��`Y�Kƫ�kǧ ++ȗ.��3=4&�U�]�y=Y���F�h�c\��]�*�}LP��U�C�>)�"�<ӂܨ`�\��z��[�:��1[tSd� ԁ4�Ȇ�ONR����R�C�"a�L#3�9��,�/�_���.h�غ���8����:vP����8�TF^e��n��Zo��G@��+6x���i���|,��if�}�͜�r)�8"X�a�'�`������S����gu� ++�KsR���x&n��M������]���Iw<^^yS#\�!��@��$���"J��I*M�̩��K�wU�U����b�疮�Ǹ�+�^�Nl{f�+��Q^�lJ���/@�z�..��@%�ZNfsLL��{S�������`�r��DWՍ�T�K-7˵��1�6M�-�k���������|��Ա3�>x���e��l��K$Ə�u���y��;oy�2(��I����,�Y.�?/5$���W5I�4��H�����.à*����{Ξ��ߖV�v�-�3L-j+¶�`�Ÿ�X����kz9j��� ++����Q��B��%��r���U�ϡL��c���5������{��Y3!�o���,@���K������������jZ���g'H�]�q+��D��䈼,�d��Վ����m���3 ++����>���Y�p�X�VX�eg�C�}�"�ݶg�G�dn� ++�ޚ�%o㎜eU��;��^�5�{�V����dw`hCK0�[�Oq��l��w�@��A<�Dm/hK����p8z=��'���7�*vQ��_l�x3M���ZT�����~tYۨ%A��;~�cQx���"���\�+t�o�$��-�J_��EO�{V�v�56Y�ritP R��*�@6�h Yp�-uc�F9�h�?�!���ѱ��;'��Q�E�Ԙ�ň�C �����,=��qx��I�B�Cc\����r���\�2W��u4sÃ\��:����:d�kY����,�QV�*`f1-�8��)b�+��r8�������9���]�����;�� ��t��q��HҘ��Ȏ�y��i!����!��!�?�f�n���C �ڀ\ b��.)�����c<��S6U��Ԏݬ���X��c��V�M�T���>s�9��[n���� ++q���Ƚ�YR�Q���h�"$;ت��]�Ju�(�Bl�ƭ�k��ڱ�w���c/-9�o��<�:!��� w:X@걅�cM�w�K����?c��V���4�ƸW�!$�/:`G��|��H�Qd����)'ŏ�9�??�H[�kg�q����W��~��s�^�"��|tB��V@s ����3M:�&`�Ԃԇ�ap��#�[���l��3Uz��g�/%��4[%U@TՌ�KQ�a_�˫��'�+�+��/���7(/�H5�� ++���/r��������hEmp3S.�,�s���ʪА��7dXŷK�җ<�X�9��k��(�X� `TH�'��@x�� �eI _a�a�U;��a�0,&ui����5��p������$�w�#��2M ��N�&�R���W�]����R��������rdϵ����;49����Au���Ҹ��� �`�( .�#�*-��w��R��Ş��Ꮒ��@��=��yZ����`�F��b��}�Q���`3a�����؈��fu�l���B���UЮ^��v��0�K[�����^���2��`� ++��><Ǭ�@�ک ���d'2C�����0@��Y0�R��W�܄k=1 U��C����L�=�V3-a��zI �)����U� ++~*�<D�u�q�h�g�vߎ�i���=jY���[�|[�뮃�r��i>�c:��ڜ��\�9�ϫ{��F�F�Й��8����qnU4�bj��}-����M��$�3I�W ���&��R�& ++K�c�q'����+Zf~�Y�l����0b�D3 ZE��[X��|MD�ʁG��Mo��Ds5��N'D*����KKlo��:��LD�Lޚ�A$�*U��R^�e�j�[����O����fw��Yp��`�<�s<�;�Dn�v_�������n�R� ��H��?8'k��&���� |�m������U�{X��S�x|���Q�q��b��GU�W��9�"Pyb�I�:�\���Lg��p�8~@2C���Q��q�>���(�"�e[(�riV����W2=^�"d���0TG�r����W̳��^тs�f�����q�o�8�klQ�a<pq���i(��*�wP��R�3�p[�"���o�;~3��Vv+b�����ʅTá&��2�!�I\ײހ�=�7e|@Z]#�[مX�@j����*����~�=��ï�����.cM�*Lf��2�[+�U���I��٧Ք�`it�������f2��CD��گ�oM%^��~x8/�=gm�m��=8m\[�`����i�|.uM C��8 �'�4B����@N�pG�G���s�.�٤D�l��o��Pߺn� ++�5��/ a\Z����v ���X�4�N�-��U�>=\(�b=\�[��B'�l�Q]��k^bx<+&M�h�;t��,ѽ#Q;��s�,�[�젌�U���=JV�hR���ۚx(�[ܾ����|�[=����M�֯-����y���,�C��#6/��\�Gd�a`o �@K��H�Wh���{7����_�������d��^�[�-´��cn ��oM%*�C=?�T��.���vH����.?)�=�"=��Ρ�)Q�ĹW�R������P�6��LrM��=0e8�h��6�d������ ?�y�4�s���&��� ++�yYl;g��-FW;��l��n��=c|߭�:, ��8ː��_���j��+L���f! ���=����U�i�@h�����@����-��\��"DD���3�O�uO�@-q"!D�[}���4> ܵ��p[���x��J���~���z�t���\@a��E�Ɇ�D_r�,�恂j��\+�;��ozT�K+bq�Tgk��&w�R�Lk_k�>r�C}�aT�|`E��QkV�%Ѵ<*�������u�ux�b/y@O���fX�Ç�FRI� ++�&��h(9���f�_�T*m>}��R5NU+.qX��U4�� ��mi���h�~$�p�iUy��~r���َ���VQw)Y��¡{="*aɱ�,4���F����\��{�S�X6F��[���S< ++2�B.���c����?���46_,$�����1�jIo�m�b�RS���c_�|��tM�G�Q��P�1WU�|�i3h�-�}�H�\8��7�*�}� �~��k������2�F��[�����[�D��N�(K,`jY�X� '���z<e��Oo�m̻�o��ޯ��z��%� x���U&�S�J/-� ++t�O�Z��FO:�<Jw Y�-cjYF�v�N{��҆a�t��W.h ++^S�qDўܰc{�O�8�i Uī��Cη��9H����Ƥ�;�M�^O�K��\�H�6#��'��BA��A �%2��U� |M9��PfTk~'�w�Heo�`9�N�w(.֣`�)�w���Fb«s���R��;$|�}�8a�}�y���^����a�rM�vG�.p����"��$�XXӿ*�:Ċ����8� |���y����K�B��;���Q4� ++��D�xc��C��%W4^��Y.B\�1U�����B#�t�[ ++�x�A)�k����w0�q�ģ�xsɕ T��^7��H�<��Q� ++PZow�Эu�8M*` ++��w%�d)1��M�DF���c�*��v�H%U!��YST�ɸ�WЕ݇Ʌ>���6�n�UQ�C��A-��:��Y3z�U���C/2Z��sF�������w�89@�E2���M��w�DZ��ȩ>~i��� �i�?���.�B��>�|�9u�|b�괭"���IE��Ӎ'XL��:��$��#��"'՟;����q��NN�� ++����uyq�%l����C��v����f�s~_��&٭}9}�� ++��U��)3䝋S��u����=I0�9;¹ݑW � ��y���&S�?�| 7Q�(C���nѰ0��Ve*�����a,��]!ZrY�� %������i��h�ͷ|{|��ܤ�uU���okc��^���k`����@Wp���Y��rr��q� .��)��R.s��D�T/���AU����;��b=��}�^��}��Z�86�%Ķ��%C��[0e6QM�8�J��(������������I�/F�� ��=��|Ȫ}=I�Ğ�A�U�֓�I�K����JևM|��bz\���*>�5 �ԓE�L�� =} ?�Q�̕�����v�/O,�y��ch��?ƹ�.��\M�[�1�9�*Z�:VWv3���E��mF�.�qQn�84��:��B2Fj,͡ ߝmD����/�l��#��ꆯ��w��DG����y�I�"w��b�]��(�[��hz��1��?��Q���@�=iBZV��!n��ru��@�5f2�p�PFi��ۦ>�w:�^�hw;N��`I�p��r���b3&z�ҿ�6��P���6��V�)__��4ꚿ���]>��vFcr��#��6�@ .a!o8�%єQ4��T���e�O�(�.ר3L���&4�)0�z��0|쁃K#0N��*w�x5(���vi�x6�Q�2Вw-%J�A�������N ��r�s� Ї�3̣�U��u��d�����Ncqw8���e�\!�q�O(�i����o���N�d.3$:���"�Jb���y�g�$x���6�`� ++�)IH�<�g�H�'�2ą��N�p�����6�c4<�6��q�]`Y�aR�c�g�x�mdu��:c����w�_���� ��I�o$�W:�t1c�G��:?��I��K ǷO+�.����X�9���No �Zp�XDK��Es����_r��#Gc�����z��,{����W����/ ��a�;�*jq1�01��!��&G��ȴ�'��{[���8���� �� +PY><)�NZ���cm�M�{��J0��+�)?�+��������A% vO�#���,0���+�+��/�V�DX&�� ++��2�/�K���L�ј�5�߂�b���Dy ++�H�������J(�����ʼ��C�?1�fKqYD�˺��/mgL�^�g[p�mv�of��G��J3��+/���r�e�u�X��R��_�n� ��텲K ��zp<��v�뗗�2X��o�1�5\�Al���TH�X��֓2�D�G��1[�q�T�Dtkh��:ӿ�عa���Z��"�KFƱX��r�b�#&�\��L�R��[Kqd���y��ūs�a����B\&b��L��;�Au��eP�A��@�M�飀���9��%2�W� ++%Rn���&���� ��N�l�Q��b���<�s��Zu2Tx,0�k�_y�9�%���T��÷�feu {���JM(��a���� ++,�A�(R����/��&��j�����Z�ؒ�fћ�yi{�X*�硭$c�)?.� Jw�('d��w����WT�JVG���*��������s�Ѫs�j����>�� ++�umR��%?P�,�Q�g?a.Յɒy�3VJ��)^�t��HΆ8�Xy�;u�X'W)/��h�3`�{w��?(���`�n�CP�J�+͎?O0DF�*�}0�m�E����頧���ճ����ך���������/�+��W+�_Y<�9������22��8�v�� ު���_B�$�H�? ��M�题��g�(x��'}���$:�{WA2uA���U���!�%@� P��Ƃ�R.��B~�-�(3��pf%����'}c�k~����)���S�vӉ;�4E\ۛ��b�P�O\QY%�,�9�t5�^�j�]ns;���1�Si RU�i��b ��t,�^�t,W靈@$ԧ�c���"v�Ú9� ��E,3(���H�Qߙ5qwb�δ���j�/�|���i�rq����>��d�D�ʪ�@B,�|���Q�~��1|O�y�ɂ�����&D�]zuvrHb �\��f��ԩP ++�ov͜��dBu�!�(�#ܦ#$�V]��IJtGsz= q6O�Ty��%6����QA��N����U~���a��TEyQ0�u�mf(9�L��,���z��z�^�X!C��px�ax����[˲�9v�/I(��iJ��2`��9�Z �O�ڈZ��s�9��, 0潡3������g����|�`P�r2���B��K ��9���f����b�E|���]�~!xP��獃BK�=��l�蕊s����L��yѦD���@�Ur�p�y8�c��1�M�[�`�D"�����[jC��m"l'ϛb~��o` ++r��-�ťd�����1� NB�(vJ�vjj�����A�L�)��N�[o5�k�+��b\ׁLW#��m��{�٫�&�|��m�(Q�o�2HP��F1� ��� vmt��l���F�1X4�[�FY-��+�/t�T3�V�����(y�x>-}�*Ӯ�V<��1]˛V�( ���r�R�6�D|9���Yi�_�[b*�A�˚Co�-=�B��vpζ���&<w�P$j�J&Ģ�_��`Y�UxYV 6���w�s��/������2�b;]�3� C]m�' f�n�[}��KK���� ++#9���(�ځF�'�ỉ�M��Y~x����H���Sƾ�n��x�*j�K/�]����o��*9�́�'�^�pX����e��4(bD3��3���<^�Q����&La)�܇�@11RCW��9�����r���p�u0�� �d�|���=<L�ba5�&�^���{s8��@GH\�4�L��wijc��r)��ֆq9c�`.�ҎV�ݚ`��� ���3<Hm���U#O�yVCAf��l���'������)Z�E�֙ %]m�M�;�7���LB�toG,3|��]��������B��m��W- /��0��fE��u97ֆ� ;8���o{?�C��9���Ni:h�$رX���;@������;V��7�(�T�?c��tv����R�C���ۮ���O�h�^�_�8�W�!`�Y�ѭ�_A�@2j��D�됱O�w�@9)�8�<�*O�y��X�]D�h��_��� ++�cĽ���!��6�[P�t�D<�撯ef,��� ++�:�_�O�����I�\����0��L4яP�P3T�@�\���M��_���܆���ۯ J��/s�/喳b���訅1�k�r���"��u(9��C�D�� ���6�t����P��[���S�)?bc�V��Fh��E7��NP4�>�g㇀e=��10KKc4��W�i@e�Q��EX.8�F��Ӂ�����[o�_1�������S*9��(&$��z�y� ++�s��I]4˰���U�.�M�*>�T�*>_��;����&~�YF&dְ�ۮ�>v�E�.2����ú�r�owd�uK�WE�V����e���y�(b*���h�F�6���,�\s�Q�V��<+���'��%o� ++��ST(�3�#d��g��KN�k�:�>Z�H�!�!s#.{����\��*�k���pB7��L�l◓8��Ps���wh#ئ"�1�s��J��,}SS���:, �ܹy�z�w��n����(Uc>�2���8��C��f������~N���]���0��a@��I/�_���� ++CWK�L�BJw~�@� ƫ�(���y�Gx�u���^P�@e��~ �bg��7��H�#U���U�e&��$d%h�6䗮�v ��x��J������-���V��F��8p�#�Ü��ɲ�j�x![� J�Co2C3��!%��D}j�I�y����d����� mu���D9b�:WIS�9wg�/8����#��1J:@�L]�Ō� ++�eGNn��(>-PB���^1G��QJ� #�q�:N��j��,���=��y;_lA�F ��F�U�J��k��#��BH獿�6���!���2H����G��F+�- ++.�j[!�! �s�<��G����aJއ���#l���o���:�2�k�fup�(����2 ++!��G�q#Y-�i�M����*1�:[�r�����GJ�y^�[Pܩ�E���<�㿗.��7�p ����)���Pu �O0�A:�1� ��Jn�� �E�)�5���1�zPZ6mm���1���d�VУA'�#Y����k�����ս*�V�7DLC�,�goU��OG� ++��Z�T�7e��ag�*A�2�t$ �8�����e�hW_�������&���'����2{GClb�|D�*�@�b�/���:A�����ኲ�VLi�*��i�hJn��˝`�j[{x���ϢX���s�|�|� /��)�Q�nw�o�DK�u�Er2bV�V��>�$r�N`C��!���Gy ����}�;U}D&��Xj֫�~�tt+��( �=nh��U8f�_�Rf������u&O�p�8!�J�+�A�K��Ň�*�n���*���*]�VCv����h�� 2���^�[�ӈ2\v�!B���庰mb�y���خ gZ U=|����#�V�֕h����pc�͚�|��1ԪX�t����ۙZFS&I�T>s�����wS ����J�;n7ї�e��.7w�[�w������$�Nn��z���3�m0��@�,c"����_�"�^1�D- ��}k �X��ņ~�ձ���^ ++?qw���~i���F5�����s�C*,HB��n3h��;�l�*�M��mp\W��� �O��$���YCwP�284��ε�by����'�&�a��N{3�J�#�c��ĚPC��H4��hf5�gl���9@?����/~�� ��9@�|�>��8�m�b(�/�W��c�10E����c}�y�.^��O�HP��}�b��*c>��\�*χ�`*��[���U;�#�)]���d�@�)���ެ��\�A�X=|E�ʁW?�{�� l�ǽz I�Xby7Ŗ�'1W[�r��/u �|o.��6 � ;!m�B���k?1�� >o�}�w�����@���CQ��w�}�C��b1��@3��B�ʆ��Q�U��ψpO=Ȯ�L����lyvbj�fP��������x�Ht> ++��K�7 o�*9�7!��ĝ���&����a{�W�G�ݨ�Ӈ��G�3p��lX8O��q쵴H �7�A�С�ؾ=p �H���Lء�[q�Q75B��g�����P�$�v7fmhN ++ܐ���ұ�������T��� �P����ۭ��'�уrq��!��]�0��Ӫ4�$>�>�؝���X;0DDv"������1_�Wr:�o`]���@����Pf��f�'��йÀ ++��::��h�Ȍ):����z����&�Q��:V�:���`��OI%V�o�C�)�X�x"b��� �%�%��� R�}����9�u�XE� ���"8�}�^�ۮ��X7�@�}���0��w`�St�a����ů�w�8�hh�8vp��W{_�AZJ�b��6��\6�U`�|a��M���:�9TO����X��cQ�g�~��T�{�]s�eIn-�K�d,�t ݴ��o�#z;����M��(�j�i�斄���#�����+m�D0?0�F�͓p��l[7з����ޓ gi��"��+�IJt,�G)������6[:!������=ۃnZ��}�������rG�M;#�hP*�Ф�� �`��Ծ[��5+�D�7��r���x���_'*�e�[%�'U���a�ɰ��b���Eфk�Yup�>��C �M����%JVg>j/�������0���ݽad��������1�.�GV��Yz�i�92�����51J��bW~�D� A��u�tݵ�Um�ހA�8�AA�zW���<.m$���J'�Td��B�Z���V@|H��Cd�\���9���h� ++p-���7�U�B.�z ���JN�^)G���-���'z��� +�ի�>�� �b�I7��!HM� ++d�Y�?�3�گ�A�hU�2.�"�_�g[��!�`�1N�����"�j =��P�����Wy Q���w-ݡ�7s�WPU�`��+n\��Я�gj����\��PS�/H��@y�F@��iE�tr�WeUgz����<���4���"Y��v�a�3�g@@�QS�5y` ��X����g���o����fE��<�.���zcL�X�ۯXݶ�����zX��I6�����U_.m\�<[P]�����i����l�NŸ��nR�����6�{#㠼u�2 僡\�#�W媿�Q|�\�� ++7�eÇ��L��%[;�lb��βY�*=]0� %���M���L�x����x�����c%��yp�ռ��&�6@���C|.vAp�ŷ_�j[��1�!2:��ڒ}����蟫�,M�w4�q�Vd:k���?���y�KX�Fm�^H6�RO�;��"�b�:QEx4�=�oa �`=���x2=�K<lmZ�o��Oz�^ʝ$��f�p����8� ��k���yg�%µ�"uF��S��T.�Y��)�� �kUتǞr�������C�m��%'0�f�w�at$� ++H�V�a�3Z&q�� n��r@�6��cQ�eW�������_�E< ++\��UY�!�� [�>�_���(RnL�����u��t�]�@���y'Tr@T���i���䛛m'���%?�M9�$����|���m�M|�R�.�1���}gs��7������mΔ?��S"�o[�>���+��qZ�de��^�3���6�@?��"��#�1N��Kгi���8��$�ɨ�絪�1pu��LTb��Mҋ�q,;��"� ��FZ�@M#�Z1R 89x��� ++9�D�'�����iś�M~Ǻ�H�����۠\�=��������� �?rP� �8�3mRZF���N��xC���>�,69S.SӤ4FP�~��9j��G-D$��0�7M�)@ ��[��*�{�k�D6��Il��V�|�㈀:��W!ÿ82���]�!g�<�q)����e/4,���oq��2�.Vl�a���QO�d!}Ӑ���n�6��&�9k5�[}����mH����o*���<6[F~i�(�v�i��G��ե��]�dp�>�i�x>U~f'��GXe�:F�Ȁ��r��ftC}���_�:�Dq�(���7^"�| '�Rī�'.V�{}=ZOIxM����2��ar-�uC8����Q�o$|���c^��U�S�y�{F�=i��t��m*>,5a�c��;��,��7�M���=M����۹KQ$���Վ8v���6�cs �Ȭ�IE��v�Ty��r�G��5lldk;�/ ++�0f���>93x��9��IE3�_�S��0�z����FR��rvO-GA�� �<� �$��+���*���!��zy��\٤r��>K $Z-Nz9}����0s��� ��N�#<�C��p�Xb�H�݁��������PZ�J��h�����=m�D�h���z���2\����� ++\����oi�"dAhM�Q��U-� ����Րa3TN�:�X��|�U��}�*���u36��}�����/c���\si,$Idܐ�?O�5LWZMJ��b6��|g�DA8�V�ʞz�Ãփe����{����.Ҁ�Ǭh�(9����XՁY��8����Z�o�������}�\wAB1��8H[� ̼��'p���ſ��U��D��٫���z��Q�b��,����)� cׯ2(�wZvJA�+�S�u��Qh�O_;`�l�mAzC�� ++9���!��߀�5=��|{�[v�,���h2N�]c��J��8L2��0����)�_iݧ��ݑ�ܛ�D*(G�O�O��Jʱq�I9Z��Xj�&�&�UGG(���$�nǿ���X���}w�Ӑy'r�w糿�"��h!7�?p�+�[������H�4٧����������/qJ��`LS{��L�]+a�^�����$l�L_��)�Sd>�Mp����0�Ќh����ڂ�I X�|�#j��E��IWĨU�"�����D�3���o�����khe�)������S *(�O><<�~(��i�����0����`}�%L��\��p����i�. 5Qo�͗�ׂ�[~�36k��q��H�9�vڙk�|�poS.��6̟�dz�E ���}������0�^�Hܣ��q ���b�A��>q?�U9/���kPT@�C0g֢��z ��l�O��&�����;����C��qd�=5�2G��*�hfI����M���%�O?�|���M%�q���7wQѹ���wF-F� ++TGG��!��(�P�3��D�m��Y2{�k9�eP�"�Of$=6�>��҃��g��R2y�}�hH����_fpH���;�9;u�r˨;���)��(J��ݜOnKr)��N#;W�� ++2ڞ5*\BÍ" 0kW� Z�Ljfj u�ָB��NN����@Z�-X��L�5?���|�j�6H�F�J�$v���>�� bi�:y�t���¹�H�/�W�ƫ��I��{����8�����^�ԛ����q��1%Ja:Ca+)(ƟU_@�F�8x)��%�Po�f�<k*���J�$S�a��+33��u7��R�{&.A��,P��K�%T����kʡ�����u���ar��?ٱB?��9�~xR�O��-8�I܀�]�%��{�:��n�����M�f�$�"������8�s��gծ�m �u0�lJ�=HBt��z!NZ��Ub6��?F��_'�z��y��ʷ��e���:����8��i�����s{��>�{W��8I"�AF�_l1�ſ�K'�����Sݬ��l�UB�H���O{�/-r��q��e�og �w�a���Kۈ:Cf���p�~E1��b��DW�ϩ�LƑ������ZߏI�K�����9�S��~Q�2�@F�n~� K�8�y�}�W�F���?�N2]����8C*��%�[�C'*��Ufɽ.�X�������3�@�<;Ϗbly0���=W�?K���G�*�C��H�H�������2�NG]R�/W�^,�Ξ|]&�1�����G7�`�?���B���#Cm�0x�W��]��-�P ��H67�`kU_IUh��u���J�ؘg/*��;���sË~���ZN^�����9�J-I�i=|u<�*�ux-��+��^t>�� �� ^��#)['�hq��� #D�A�D�wpȳ�� ++QP���OcU{G�����(!�d�V�.2�Ө�����:�p��_�I���@�ۀ&p��h�F���<�)-P���Yr��@Ѯ�l�`��yia72Q��>l�a\�G=����E-���Yn�����(��_�&��r������6�����I�dǵr{����;] ���8F��smM_w���dN$�& ++�*��?FS\�F��ǀ�:�-�`�aG�Ajh��/�Σo�{VG���(���̧�}�r�гTa�Z��0,P�J�_~ai�S�A�J�� �^�������z�Ş��bڏ*�i�}�>��}�S�}Q���ח-�/�A�ZzeRx$`|��G�P$(#N��^��/�rrO��yf�����G(M�����YI�h��'L��9����<�>~2�t*|���*ў)�c��`�>�u�%�D�D��.d�J+!).��c\������P��$��v$`�A`�9I�wd�w��bE�Mm� ᤷ�/(��,���G3�@q.��^a.����?�����p���%D�רX�o���Y�\gZ�zm1#DK����I�d���\i���e��� ��V5x����(�S�F~a<��Fb<�)��M�������Q��s�����ߋ��7��i������ 襽lh�~�^� ������F�z���E!8*�`>�nh�c�dj���jU�}:��u��Z�Ҷj��=�}��{�X���G�Ⱥ��o��<�V{�O�G�{EB0�~û�өFs��eX)�y����i{��c�����h��oA�*H�3!9�����dS6�'�6�v �4�ӄ"1�J@mơ ��Da\������9�m˪����{�7�D�l`,���>8`N����ձ+�ywXh���X�V+?�����<�p������"��w,ЌP�5����1��U9��������E��vNU�/�<'�G隸����gy&|��c��:�,,@Y?�`1�U�ω��sR,��V��.'��O��EV;=�̣���~�b\��)N@�EK�����>"o����nI���F��q�ߠ�D�ۀ%�Mq��m=/��Ͻ�"���w��=���J>���Z��:i��S�??Ta:L����}���H3v�f�p�SO��r�#ϗ�+-�?ș�kY��ZU<���6Z�л^ylRXt����k����=�x�=��D�W�P1��<���惂�a��.��b8 ++�<����_�LV���{M��N�8H�C0f���!C ���6�V���Ł���ǜ����Kn#�L *#�av����r�[I�{�b�l�ů`��XlP�@��>��o���x$�m��iI�� �ο,��K�V�犻��*ӎ���N{��m�Е-I�Z����d����V�"���� �Ew�è���/̷��ZE(��5�r����s!p)��QI��J[�i!~\��2���0d�GdT��\�Jt�V9��>G$��n���;������Ŕ�Z,+��M���r�!vQj�6�}e��L��d����M�u��1�^�7�d ���٤�;�q��"�$����y����� 1*o��D�{�'Pᾭ�M�:�Wo���k=��7߲��'��ĠmI;��D>o醙� �P�qC�$��c���x�8��ny�,MaA�������<9�ר� �B�E��4�jKY�T�k�#�#рH�x>Q4��O������h����"�;��kw�Kr�.��Io���=0R�h���Բ�;�CH���y^&0[(�Ő��ˆ��-� gnѢ.=aƗ6D��U�����᱆/ϱ�4"���=��0�=�[J��h*9�˔�7L�'OY�k/�|�hU��xX� �:߷n��v���sH�瀣�jFXdvˇ����=ƈ�X�v�3 ++y�S�n�-_���Q�z$�������-��w��_�4l������ Ԃ��<�l��x#����%?��P$�+�Ni�l@��[�g��_%�D?���[�CT�G\��.�0�~��}A���:`���IA��]�Ӿو�/d��d�u͘����{͘1j��v��9L�_ă.Ru �PP��C�u�89����X�w�Y����+��R�R��2ܚ�}ӡ��+�5�:��}�mğ�� ++��< ++���L�S�2܌g oCN���1�kʹ�'-��ߡR�;k=��NC���"��5��� y*lͬ��,U���={���2��������ϼNU�=�~����$��8�@,o2k�5UE��O����9�W��� ++�$F��Z��o�!m�$_>�7;������:������h���W�ru;�Z�� ϐ����2s��>珜��%\�žJ�m�C�M+ �_�p8��<��z��7�j-�H�fÂ�~�U����N������+��:dN��x���|*a�j?�j!.����!}��)eE��S�el����O�J�P��(L�ta8w�ʁ:�P|x��� ������캭�vҼz.湍��n�w�r�e�@�T���^�Z�o�������]��xf���u�[�:�C�m��\�^�H����n���F},��XZE�T��ĽWQ ���i�[�=��X�ݾ�����ɕ�ź��.�W��%{�F���2��d�;�OT��h ++�Tq�`K+Ժ&�J�BL82� ++ ���{�����7gH�|4Xv~;hCn�O�;K��vC�L�B�b��� ++��� � ++s磡g��7!���UYJ�j��#����6v��@ ;��-B��}l�Xk�L�P����zf�GKXo�P@��M�wb�Li�D�o��k����:�3ײ>>��V!�i:&l\�(`>�!��v�(�l{Z.�I?!��� ��*� �!"���o�b��oe����#0��#�Ds���I����ʷ��Ns�z�<e/�t--��=Y� �m�la���s�JΆ)�� �ܳZ��8�%ºqn���\6����D�xJ)�Xt�=������YO��� �D8�h<t֬�ϋ��ȓp�܁q�u$�)�l)�h�����m֠���x��;�G�V�و ++���~R�8M)��U.lB�Rw���Gv��T?����b��ro��ג���E���g�Cq�0�"�����RQ�a)�0""���R� ����z��1�����5tU0<`��"M˹U�@j�� *����t=Ga������3�fY�v���_O?h��@^]���K#���Ϩ���8!�ɹ`h�[ui�4|�z$X�ͭ�$_ט�!ހN� ]V�`��] ���r@"4�%�Z'��Iڰj������(Uv���NYsDrZ��"��=E̓�B-sy|�h�C� ++��;�y��o'%�l���)��9�@8����z�Ŏ�G�q*��p�%6�V�������DI���!�����*�H�uÞ��˕zv�)p{G�a ��a�#I7���I�1��ᘑhArm--8$1"���[�5�i"����(V!�e�'�xeuka؟�G_M��s|9I���#��v���� ++��_1��U-�sKua.�Hz�s�|�"X-_�i�Zi�~�q���U�һ�q�m�w�p������=;e ++ ++�62������+�lxKYC�(K��ׯb���G������ZOm�PwP� �5�X߱����v��n{�{ ��E�wX�4�Ə��qR��X���Ia�WD ++[�*�g���Ձ�ӯ��2�s�}�: �+9hP��4+Ԉ>j)�����"]��d1�{�ZDwڎ�;��B�Ct�S�@��qHY�m��0�$�WtlW��9����� ߑ%��l�z�7� X0�W�o���?[��8�Rν�v����x�=����1�Gy���/��Y���!&P��'���NЋ�'�ԃZR�!*��H{�=�Xb�ul��!�~��,*���cd���_�[x�f�J쨃�Ul9!l��%*��eʌ��[���Ԇ� ++�w���4"�U���*��2�`�)��_���v��yH��{[�5������p6�]m��dz�ʻ_�3��)���{S�Հ ++�o�1����p@��/8d�Eu7�>\N����g%�\���d�� �zh(���"$���+{�O�crbϻ�Q�����迄*K29,�v> R�ͻ3���� ++dz~ Y7@rɫނ�N6H����=���LL�/y��jT\�vT1-Eڑ��]��7 ++�i����t!X� 2}�+C�sk�Vh>^�V�Ӑ� ++Ǫ�VJSů���!�少Ճ�O�L��Ҡ�� MS�+8�9�CX�S�ߡ��.N�(���[f�&�q���`x��JۖF�!��'�!B\�>�?����BՅ�^i�;w�B�p��a7)�?�̇�.�]���{C�U��y˴����!?�*仸�Z�k�@{������Qf Y��~��B�/�\u"�hT��\}�o<,��X�d�~Yg6t"V��X!~��si��s��y���c�=�Ud!��ZvQ5HF"�[���oN�I�%��8QZo���&������[����z�#��#�@K<࢞$1B�d�Hg�m ��M�|?,a����_^,qD�w�T��A`��%x��B3�����R?���x�;hE�]n��s�-�+����~�Bz��>�2F��E��- ++�u'�ٝyc��ɢ��yp�6E4�6��k� ++H���}��s�Ug�ՠ�+UL4�0i��4�$%��KG�֝�-���A8)P�XZbo$wP�%$3cd��M�l�{`�݄�<v!M[���"�,��4?�a�A1?>��-=>"q� ++a˙�B�"����źd� ++�c��b�u-G�X �¦��b��[8� us<Ňp�9/� dܑ����9As����Z�J?��s��/��z<�[0�l����Pۣך��˽��6��M;!�\d�eX�o�"����^��+ cC~R| >c/� V�:�G�O4���Κ:vd]G��������@�1��Gp�����p�BT�^�IR��?��H�Qk�%�vQ!x�â=O�Ձo��G�t!}��?�A����v�9[^�*���4Q71�t�|$�Fupc���qwD}n��^t���(ԙv��k�|O�X��>���Ψ���?d� ��b -�/�D������+��a1���k�yE������`3�b� x�j���3�uC��׀�+Ϫ%vXѬ0�J��tڝ n6|�~�D4+m����� >���.��n-��Z9���$kr����S��F<XC���f4|�f1�vU��g� ��4zb6���_4n@�g@� ���h�&��x^O�<V88cV�#r�6�����K�Jdz!cB� ^���q8<�q� �y�gX���U邓�M�bK`�\��}G�*;�B.��@��d%�y p��}�*����Nl����R�j� G�Α�0�Y ���I�^��$bl�Q�bO������f��{�� ++�fF#��w�Rx�J����'HHj��ֈ�7�F2E�u ��n�'��:���!rt�/�G}�k�<$$]�X�)�ګ��#�Р�k�eC��B�H�5�����A����}�É��Z7��e ++�-�3����}��/�ϔ�7Xb�|�&L�s�(M�3̪Wd���7��z�]B;��Sy�2�o��7�Cu��s1)�'?1�,҅q�ҭ)�[�+���$�:�toLb�Ig�U�P���%� ڭ,��]�dr�˽�C7���0���gF���P��)w��n�9� �Eݝ8B�8�*�_M���O�8'6߃z�S��~�[+9K����/wy��U�U?� V���Lu��͔8�Ϸ�F��>F�G��&��hG�c�����Bh���ͅ��m�6��ZOx#GM�����['h�:��HV�&����8 ��2k���M������Ttڻ5�H h�x�B �[�/W�~��#h�R'M$8-/è�Bq�S�կ���[�QB{1gٓ]"��.���V�����s`DZ�1�2^���'�+��/����G��vP.�_����������GsqH��x�(��WM?=�7��aw�1����Y���ػH R7�f�"k.Cv�d���To�GWyQf姻J�uq笊LMrF�K�Q����T���)OxV�@R�_�u��P�6`�pϨ����W׆�y��CxfY=���<��No�m��ٺ�*-��� �KҨF��#C����a�Y���bi�2�"B>`Y��TPHb5ଡ଼t+A(�u<p=ڃ�S�0}�)��'od��e��s��*\l��b���G�1W�zKz������Tt�B��U�0a^�f�(f��i��Fv!,y��*!��hS�����iI��v��|�����`��m�B������'F�Vf&�]���b9$���'� ���,�U��%��^�.��!ë�pߪ0k{Q�t}���*� ++����}�VJ�Av�Z�&�Y��($<Ì%e��5҇�[���5|���7��2�����-%�ϼ�� ��� �z˵�� ++����p��� ++cru�H����J� !�A�{WPa5�įS���\��V|S;�X̧R���~��;��I��3�"�ZZrbT#X�#Q����s�l�2���z��w��J�ԩrSL��N?ṁ�:��1����G�c�z㚲O�t�0���-Y���?Z��O4YDd��q��ibԄt�0ukFYFd��tV�F�\�Q~R �!A�S��)�=�I�y\?��;.���2�Ҽg�戝g^�!b�ޝϾb�;{�r�45�� �ը ��Ƽ�iX֘��. ++�F��}���%Kt60I:v��+��2��� ��q�Wy9����[}��� U�l�A�{ �t�|�˟``�r}7a��B�w����?k&����Mc�_����-���O����>ꩇ�>Z�D�aJ��C$������%��Z�(ԕ�F�jc}�D�����Q�G=��Q������x�Q.��9O�\� �b�.��qUVd�z�#��)���?��M "w�� WqZ ++���R{����˞�v�Ϟ}�rJn�ÖA��7��^�fw��w@ ++ �Q��r��(�M\��t�� �F�C|�B���*�������3SK�#`����`����OUx7Ng��X!��*=����)*>�d>�\�m@y�A��1��C3���Uک#�A\�\�a`�[��r/�u)�x���y��n�P�L�Q�Lâ�bmoh"��� _uz߽�z��juK��] �_q�Ϝ��Uz9q��8e��s%A�lz/gU���*�g�(�&���h�wBS�O����,�w+v��kX�Z�!��0+i�q���|�_�+����u�S��܇�J�3�<�����HM���>���{ ++�˧P%_隡��SZGIީ��2���p��u�^�sɤi9��~b<U�~Z�� ++���o!>�¶�W�B�W���AË��=��a�#�a�h ++tY���Lv��t@֪��N���t�t��$�k�qv����r���j'�h"�y����<^�g8�P��|��7g�늴�Ȣ9~0�t��|s�4Aq���{�p!h�Q�@�7Uff�_Nb��x���=1��.�C �����Q�7�&�?�w�O��b�0��,��{U�-e牉Y1��=��zV}��\AYذ�<gl��ݮ�Uj�@@�}��P�6���l�i�d@��Xv/Mv���q�єxk���4)p�z�e��5djKhH#�ɏ�)-{#V\MU�I;F�a���1pz�Yj�*���$*=�*S�d�������IydX��r������g�¶*t|�/-�ekw ++�.k���T���t�q�u�M�:�%_�7]K���%�[,����LZ߮a�Яap@�W�@WP�� c��#L��/�������r���H�315D���d���*���~�]�c:G�l���y��d�}s͑9uS��MΗ�#�{Lj�mc�bҺ�4�\�Nk*_����=*�/���N~#<L�Ѥ�\�ƫ8UY�y�AD�[-�����Hu�>d�4ˣʒ�aZX�5����%q��'�%;&��o���m2p'����N#�W=vm�r�;��c��7E�T�r�?�r���2��֧�%C�l�&!��(��h�_��6�2F�V!K z���TO�d�&ʥTq^��Y��o�]Ȱ�m)�a��9`�����"#�~|�dF����ޤ�u���Ϩ�4����!Ҷ��c��i��!�Z'��E#�8ǖ8���,��8�(E�f=v�)�Ƙlf���c]�����Vއ]�*�Q��!���Y�%1�$�ʼnXp�Z���F�\ܭ�Ҥԅc������f��P��G�Q�b<�@.F8�秥K�����%s���Zr���o#��"��g���:���������K�� �V�lտ� ++'��������� �\/����I�F��Bn�B���,+�2���|���?3�n�屹(�J�m����]�^����wW�VU�v�[�s�%��N��8^� ++N��Q�D[�pm�Gp�j�'g�n�;P����E�]���k� �|TD[��௸eEw1�"S�o 8$�M���A�8�PW�&��g��|8���~O�{ 3W�a���as���V��J,)nY�!7���Tn����{Ѯ�3���ɰ�J�t��bY=m�1ָ��l�̭߱! ��El`��e�|�&to�D�R��q��g3<�!T��������S�z��������{�x:���;"��UE�s�drl����I��� �|�YBa�L* � N�|����l���3y4����[��p���zp��I]69ܻJɱ,��)1���{j���&��Y��?D˹�u�KR@l�'*kfM;���̤^%5�J؍I4%}�\t`�����j0�*J��l��)�Ng�����U�����nK�\�WΚ��sR�ݱG}���HG�'s�@�� w��V؛���Q��I���|����҈JD�"�����I�����֠�b �)�����HY�R7���G�˛Iǝ�ࢫ!u����D�͙���Nȉk�:�~8V�9���m�Wxj5� YÐ� 4�rQ��L�q!̬�Mgae�KWb � ++&����w�l�#�Q�Sc�������6��D�$sBI�L�b)y��2w�������/A�b�,���1�W��s��H�����rg� z��qw�2����n�'�zML����e�<}!d�&�;v�%�2����Wԣ�>�Oʏ��:j��䍆�0^�:5�� �Q� m� -���O�xb���2.yerq)��2r�Q~�!##6�����)&�$����&��Ub���;�rf�:���a^���5��:�̔���!��>#q�@5����?33���qb})�C+͋1�^m H�I�@�`V4Ԉ@j��r�қ�9�ŀ�=�b&��K4HP���\MUb�;�S������L�o毨���2GA� ++���W��\����7=�"4s�����_樋��(T*t�=�hb���2!��z�t����=L9�xUF�+��K:�p��/�y��)�n��5#%D�a�J��N�7G1��_�T�K/��p����C���~�=Wgk�G�u ��!sQ�ci���8���!0,���_���kt��%�NG�J_(��1���j͜�#��r�~���*8����v<@�~U ����#-��Kg������뤲"=��<2��8ԋ������G�'A��Ft�v\��'���"�z&F�꒾������{����q�S��kUl�� �T��IZj �{��h~%�`�HX��f T"eoB��5/2Jf �����f|�b=�����7ݨ�c(3�K�Vd9���@�h=�\�1?d�_�C��?�j���9I�*\�B��!���$-%P�{j�bX���mW��'=d�s걶�OJ�|Y����Cg����C���P�b^�I�h8�� {��t���l �=����Ap���;�5""ΐ���q�-J�S����ځA�� q����� ل��y®P��z��!@Qr�pc�> Sm2��8�X&���$K��p"�5l���E�G�+ ++y�.�A��+yM����(���ƭ`�]�+�߉SG�y�X��� /�W�F�^ŏ#.���W\�?�h�s5�O���굍*�ߪ&�#����-~���s�*�Wo�Z�^�2ȮC�{�� ��������qo��C������x�G��z�G=:R�<Z!3ahŎ��{� U���y�4���O�y�B}/�x��A2~h�-j���v�e�3�d�_8���x�����/�K����n��D�Hd��������<�q��Ձ?������Mj��lȭ)�����*��Ն�����x�7'!Q��eU\<[�f7�����TH��U�'I�x_����4�jr��P���}�U���օh �E�U�ȃ�8�C�6��ܔt-G_U��'^�x��P3������M&euJ̅���+�P}tVs�c�o�9&[3֩Չ���AϖɇU�r�����rs���%@���@%4��yy��� �f���v���_��R��!� �a��&��S�0�� +++��^<�>?�iV|�"���-�e1��*O�ܾ!������{Q�������,��b�z�FЭ�wHCXOY�t�7S��p��+�A!vK��S�C}�G.�W�W��x{Q��J@� ++�u�����p�R���C�>�2Ȇ�̙Ud���[?3�m��\��zūA���}���n�_zy`�./څ.�te��(ΫGoG�ܶ'5������� � ـ�oMݲ� ++,����kP<G� ՛t���*���X�P���䈅*���w��H�K�1��;�ܵ��߹��rZI$/�����w�1���dp�a}֧�7N\p|��%��������ps_M��9R��t̯�q���h�z%Ԅ�����$P���Կ�_g�s�݂��/��º�aZ�ɅJ�Oݥ U���_�#�?-�3ލZo���%�ѴL:#A��[�!l�@��oN�hr�Vy`����1�8ts�t/��0�.L].iz��n��4i|vH1�t�h�l?fF�����8�@�J���\td6�W%�Vn.ݵ�d�K�]!G�hH�59��m&szy�S� �ށ�3�㯽���4�Z��rd��_�G<�v`_�vOП耠&:���$>H|�- �H�d�n��p"W��»��9�� �W ++���-g�~P"��a���v�4/��-2GOq��8]�6χۅ���an��~�?�'E�&@T�`����3������w#�y��v��!�- ++o�ȁ]�J���-�q��$=A��q����1m� S��X}z�36@�ӷ_���gUh��̧��}�#��ɖ�oY+��v�Cw�6��ٵ��:����wJP�cHD�����YgBG�l�I-��{nE��Ǣec0LE f!��Ñ���{]�:���b�@�L�u�B����jX���'��g]�sI���ѥ!�\�9�B�);o-B�{?-���[���/�5�8���&ƏPQ��p.2m��LrD�����;J>���� %���5��z�?9�?Ӳ(Ǒ)k�9���uX���:%!�\�:g����;����}��=��:�G���(�+PK`"!ȴ�R�ɼ��N{����@�8����T���02G�`����:>/r��@����`Z�������z�r3��Gߨ9� �勒����k9�W<�0k���b/��~�d 'qpd-+�TmEX4舷W���R" ��V��FfB�H{ml����2����v�a|����w2Nbq��BߋdƜ��/�2f���c�~ps�����H1x:k&=��e�Y�h!��_S�C� ��f��Pv��1ԅ��NK�C5W��{�56Dl�L%��s��0��I�%���b�{T�f�+R����A�k��ca�����Mg�j鷒�� >���g�Rm"?0�MK�W����c/�\���͏0-R��;?�J<9�x�@ҤO�_��̈�Ӓ:O��xA"*aJ�P�4�GiΤ�|ŝ��u�E���բ�I�s��x��fkP��Y���Ǿ>��ڃ^���J��Q�v:�N�CD�-F�K[���׳�!s��h�u6���'���O�W𗁐��u�<�9��ݨG L�5�+�ǀ�ˬG���,�b�/������%��ф��1� �7�{|ԯi�U1�u��ʑ������)�[k��+Rʁ ++~\� ZG�����ô�����y��i��3C�=�w!p|��ԃ�lu4�"7����v�����=�C}��W���X6y�}Z(}6��x����X5N�=!*��sQ��z����.<ħ@Pb�@���\��B��Tr��������9�Co�<�@�r���?��K�����8�<�u� �AC�.�k�j@������� 4�XU��P���1Z��(�j����f�~}C��1ؾ��-5��8�1�1�Td���*Su��[ �8�F�9r�A��G �gt����*~�/4 yX��K��,����r#�.�0�S6p�1��-2�_34Պ�|�O��H�X�?A*a��K���o����]8��s����Bv8����'�=A�F9RU��Oտt �Y���:9�_ ++�C%b}��ܜ� Hxү~���[吋���?��!α�g�)����GV�8����7�����xaʩ"�(��s��Q! ++V�Wv�����(Ϲ���)K�]�BC��x�.�j�C ++ؽ�9���ް.� ��� uY���+|����t�[�0#*�8����"6��L}�+�������(bx���ٻ�7�Ϛ���_��mh�ZU�b�ҕ�=ϴx��Mߘ�,���8������Bu��ܑ�♶S�βo1z�<���66�^iZTz~��zd�K��/8��w�>� ++�">���¼�Y�Go�Q�����d?�ov��е�|�hB�Ǹ�_��*�х�Q;��Dz2� lK�<Q����� L���� ++��V���lO������{h����uL��:�(��u<$^�i4�o ed�#�@��48}n� ��f�~J�\��9�.��lo��q(]tuZo����z��=u"BΔ�z�����N���qܮBnY�A!�jA��6.�cZB\vs��``8�FI�y��LrD���{��a?G;C�מ���7}�\Zw���֑�&/���ߦŚ�ME���v��)\�n����>�)�X:5�����߉BQ6��aii����� �����˯���o���*&RP!`�8#�s���*�Y�k^�x���4�U~�pZ�3}Sg�w� ���()ܬ=�������G�ll�\iC3����xk{�ޗ\P��H�M(q}�e���̬~F�Q.qV�>�0� r�Z���J�R-������a��X����K���YC��.0R�)¦�TA"Z����>�;A���z: �?�3Y��SZ�T�ֻ��Y'���.��[D0֏Q�!�i��0� �-�-z4:��a�7��>Z�ɳ�/�c8H#be�[�pHF� �e���N��{e��ݑm��lX"l��QQ*�3t,xs��CƿAV�vA��ꁬP�&gx�:Uvi��j�֔B?�M8�',$*�ECQ" �՞�}������aw����8�z��T�-����ew�և@K�&nE�K��)Tb�T��x6*�o�Y)䲾x�v�C�C�d^�E���n���E�8}�@���FS�y�tR�$����������ih'�X ++����Q$/�(�q�o +++��X�V�U�m1QUDvC�0z�;�c>_�VT ++��D�GHT_�8��;��K�y��L1�'�F�b|�M���Ђ�T�7_ ++���U�^���(U� ����y|[�dB�@��)�"%�) �E�}@�h�uc 3�i (�㈱Wn�^�V��&M�:>�/B��t9@v����?���8K ����Ez�|��B�&��|������m�oM��#>�t�`m�} �,��6�t:jt�s�:9elD����+>�U�h�pQ,�QN�S��w<��ⴋ?�7 ����F��Yέh�i�`խ��+:?�����gm�?��ރ(��'�1Lg�?�������r��y1$���{e�i����|��8�t��q��� ++8�"п�&�y{�/�e�7��z�}.�8?7����3������ ++Q�3/��@����5[��R�#�k��u�1'?Y��4��I�g��B5njӺO��|@�ϖ:�X,&��������:�&���p'w���À�����VW��Y:si)~6��K�\/�rh�φ7�VO)�ǝeX�궬7�8@� ++W�V��͟K:(�l����O��g*��fRa(*�OU��?�p7��j�~�� �G���XZ�ѹ]0��֫��s��"6�`�� �٢P� 4���#eT(:�N9. ����q�u�- �{2�~q�jMQ�2Z�`���{����r���� ��[h��P2��-�%��<��M���@}h��S�V�9�+��vwk]����mᜥ�ر�:pɛ��S� ++��&j.o�J-��K��{�Z�3í��ߘ�ذ������e�-��?1[`��<ļ�:j� J���9�a"�"]3�!�����I�\74��8��:<��E��������$����܆+�>[�U�'fw�`���~��d�ŁZa#@�sﯰ�ʠ���FA��v�s�c�&�c3����y�6f���(�1А�@�M�?���� ��u��T��������`�UHp.y�Q}�2����=Y�]GƧJ�S/��8���9��E�t��a���VCɩ�U�+}�5C*ou1��F�S����&.�w�%���}�(��)(g�����|��e��E����9[��C�5�2+�j�y �&����H�6z���OB��}M�^aM 4���~}>��s�����մັ�k��MCpI�"�2���3������U`���t:,��G����a�rI�����-s��;,fQ~r����\�4��l�]��M�9 u\wx�����Oj.��y4���] �õ��m�(�Ao�@L���g������'�<�@V��TLY��L�F���!��yR]?�C�K��K����Gᖼ,�S��Un�&32'��.Ќ�w�(6u:gCZ��̉tCy�\K��;lbbGC�-c�\�6-ϷYmΆ%��+�LQ\n�*7�캣�}O#6��|�kd�����<����G�x!�S�����x MP�i���mH�Y��I�Y4�� b���%�<��[�g���my���ĉPh���Ƀ��tYe�+����r�y���8�y7��%{�'��F �$�m�7�%��ڂʺR1H!y<�y�B>��9��^��Gk]V�D�xVT��x���H��Wǣ�,d�%�2=w{!L\�v �t�_<~�������u�E���?M�9�Cu�*̺�>FE/9����rdí� ��D%�ġ� �&0��ȚU o�+�yX�{�ni��\P�w'7�.��ޝ����Y&�k'U3�?�~���brF~7�]ޙJ9.W���d��o/;"�6�s��{G� ++�z��������c�ꆏ�gkn!�#�]����5��x���@��蘹�.���-����C�7��u� ++.���Br;F,Iҵg��c��VXW�����Xٖ�)Q�|Gx�=ޯ��+]�~�8�XЀ�5w�p�S����W��A���J�����E%[x�>m4��ZD��t���I����ފ`y�x]wX{x��H]������+�AKE��7狱h�������V�_����'���O��FV�t��t�z��5^߱�z����9�2�G�g��ʯ ���u��F�dDI�1ޘO��D��XQP�6�� U�u�k���Iٽjɔ��f�ϳokHݥ��� ���� ��VD/�Mր�u�즡�舩�N<5�h]9��i�r{�.m������B��x����y'�ڪ��^�S���l�O� ++�/�Qy�r��nw8F��\�։x>d:f��m��݆PfIn����F!��v2�rI����<d�a�E������V����Jhy-����d��jj"djM��H�Z����l�>i��r��D�G��[o�1"P��(����<�� ��2� ����'b�d�'�#Q��M�H�,G��拄2���|X0�~��%�[i1���+�t�� hNp ++:���Q5}ui��C.g�1?�M�^��h~V(S0�EO�B�O1p� ���!���ʘp�s�(Vq����X�������N�c��k+w����c�� ++�� $��F�S��/$�V�=���bVq c� �����ǿ#B�F��c��bfz���ɬ4�4�TԤ���a^>���"�$fRkA���eعI������~���<�˫��:<��a���Ɇ8������n��f���sˆ\Oؒ�ˑ;���S�6J'� G7� x���$4��sY���zu8��f�]��p���ЀL�����8W!����N�U�|��z+�諵4xN�:8��z�JJ�BZ�Ʈ�s��ޝu���s�ӈ�ods���2v��m��/��rqYt���s#������ �3��֔X��L��bԪ*�S�)p����^o?S�KzmM�2���,2LGd�<�[ z �2�U�'�Z�E�|�@x�UY��Ԋz�T�N�Z�<�>xjt_�qvz=c�M�4R;�k]��W��0��2�=u���=9�������n"=#���*`�|eΎ�%r�*���<����e~��-P}�JRKNn�;yaU�aU@�}��~�sI�!=��KS*+��S]%�T��<m\��/2�"�[ߺE&��O-��ٴ����m?2(Q>�}2�u|sҬLS����ܛ$�Z�$HL��!�aA�:>��N�Ds�H��iZ�XC�E�T��9�K# �"}�t'�Х>N������7^}jqbq�7���XB{F�d֫��15}*��/C�������^φ��X#�y �� 3�J�*D�-)��n/��[�zQp}E��@%��r9(�c�}FV���� ��%T"բ�n�SWr�����9���C��̪ .p��=�{��Qr;�r�����x��v��T\�� 8q(Vs\<o�R^�ƟK�B��Lx6���_�-�����rx�HpƫA�f�՟�)O2u�a3 �F�h���٪�5���[mlV��\:���r}C��{��q�6iᆜ�1A�le��]����N]�8�+'�r��g$��%��� ++��$��U<��wA������\�v*` 9�� #O�KcMȍ� ++�1a���!7Vv2�٧����:��L�ݟ|YZ(�����Ž)D�n���>U���;dd��� Qa��|�'yY�r����!&c,��Sc�`��<��Lՠt����"�c�� �F,���2�쎯�O�r$9��~��&ĄK��T�Y�[��=������I#`��$1%k�8��p����}P��V�iq�L��si�ˣ^t�w>��B6N��HK��,m��%��h�'U��k��xi#�h� �4��0v�4��Z��)��Ί����VW�2�R�%'d�V��X�q�V�76I� E���p�i±VK˲Ǹi�gCr6�7-���2��)�X��0q����v}��=�������F.k���|��N\�1� � >��"��j�Jn�hpP�Vv���$G��bBN�$��4� ���E�$\��2����v$��R9h����8\_�����{���a��P����K�QKqi)6�Lr��qu�L�orYֹp�j������d^��]����К�fc0���@qui"�#j���J+�Ot�Ή���b^!E��Y�J�*B]�D�$S����n���A��rf�A=Yk�R�3 �le|�Z�0�U�vEX��h��Q>.w��*���!ҏ:����h�U��DtPga�uY�����1�R�:�Rɷ^�U��I�/���7J���g�m�!�I��VZ$�M}+%9W�rԇ�6a(A��U�7��_���3K@��G�踡<f`,e2�ou+���5?lZ,����FA2h}Wj`�Q��bB-/z�/w����`(�����zjk��)���W��Q։Wt�s�J��D��k�K��=���S�һtQ�>(�4F��@I�[i-��G!_�.^ڨnN�EBu&���d�di�K�E��l�,�H"��Q��I�>��%������UY���H�{�:�Vg������c|�WԈJr�� ++��Z:sEd3�k,>��N7ZW ++'�nb�fI�*� ��>��$�G`���Y�����*�1�(�)�P������� Ph}�*]���T� ++�gC��/�jA��Hw�J��e^����c����4�P)��,�V۫�cd�t��� ++u҉Ԁ)�Cc��u���QT^��� ++�k�SxM��u�B�tl�",sP��~��ÒQ^ѦfQ+�\��lJ���w�(rU�4 �&�J�DѯS3��2Y���-����U㷧��e���K��_�@-x����*>�5��,� NK+�����u���_X�kc-25���t<���vƼ�4|~b{������Q�a]�G+� ⧸#�S���9V�d���"~���1������{��`�>\�>iU@'�6�C�q���{C�ﺫ�Aq��Ӱ̠լ�A��s9��5V�Il^ �x8��ņW�Y/B9Sg��{���Ɇ�z#AF��PG��<Aj#�"�"�����o\���A�78-����{!��%�gŏIJ\k�wc:�*u�ܝ�V�:hU'��j��RԖqx�x*�祻F�;���YIs�~ �&��5��zGS���i�u!�y�]��d!��+~2�Wh\~�z#�$����;EU��1 �e��|[n0�/�<ջ���K�F��:n��;:�&�v��K��*氨��ɬPB�p��&�����O�ڲ�]����A�(n��6A�"��e�$� �G�{ Y{�a�L�Yδ� dI�t�a K��g}�44M�؝\�6 ^��cX���Ҁs��&�zcˠ����x�����m]���]��ˋ�wX�v�Xݞwč���݂�=�Ԅ��?_�ц���-S.+�R�w5qt廙�ȼZ-H?s^J��_2�o� K/��Lh#��Jw�'�=5}��r�y�q Z�Hy�O�b�,�;�1]m�;h�����6U����G@�m�Q�ƪ9��x�тq]Ы����,�6%�����n�-۫���3��'���W���<�감 e��S*��O7?s�]�J�,C,:��p�����x7��<���4Y#E���%bmx���"�=�E��1�����m���P�m��!NZ���8�DF�\�Z��(�%�P?� ߚ�Q?��6`��f��sѲ<����oO{�8��us������|:f�f/\24�xɈp ++p��w�����K$k�[W�\n� %jڸAI�'��h ++�����e4(d�p�2��(:���A�X�n7[ꥬ6�@�[E{�|v�٫e3*�3㞲'��οUrH����5X�Fܐ�*������*�O���}�Ih�>h��� ++ߧ�O>�!��9ⱦ{���K�5W�`z$�qY��"jsY��0TH݄�?-%7���\�~l��[n��W�Zǝ646���v�[D��bS�۰ں��*�d�ks*��6��w�N��+�{[Y~����|�f��)[J>֟�9z��j���>$g北ʓ���\�����;��;�/�T��J ++�N������o�� ++5�T�3J.�w����n�*�Z}���o��v ��9J�}$�zܫ �2@'�QØH�Qܽ�b��X����-��Ny�x��3��^����z��zv��C�٦G��c���ֻ�:>c��S�c��H��7� #-H0�X��g�I�p��r2�V��:]Z���gJ�p���P럢m����Lm���$Me�"+�V�E� ��bO0�ffF&l����,��2����:6q�p!~{��<�;���rd��qŻ�u������z ��.�m��1ao�B�?ߒ�e�%�#ČM� �l̷��?��X���YÆ!~� ��|�t>ӆ:ck��Z�#�� ++����#u ���?R��ώ�rz������;��Udy!7�}K�2����R�m�rgtid���9��q/���;�jy� v���[.�A���n�'�=#��g���13�f{_�ob�)��.B���{YA*`��L�BI�9���r����vﺰ�%�d�e~.���'���u� �)�D�]�f�������؎4 C�d���fV�>��./��g"f�#�&Ĭ���qz�4`��ά��:������?-X�xa~"M����A͢[�(�BG�N <%*�Q�� �j����2��.f,��\��Hא����ײ��3{}�ZJ��w�4aӃDe��i.�R��3�����k���T���hAu"�Oӳ��M�?����}*��K~��N��[�{�c-���û�p�i/� ++@L��O�QU��U�e��i�.�1��fX��ؙ^�g����Yi��i9�(�C�"��RЪޮQn�Z* Sҝ#��-�|��-�@4����ͼ�~���/>\�~�UTsƘ�j:�9n�6<���ω�����s�qt�T>O5���@�Q���� ++�9���u�ڿ�@���Qs�Rw�&��0㬑�Z)�^S ą� ���e�������ڝd�$`@5�֡*�-�P�=��I��+K�1s.�1Hr=u�i_q��x�l����f���?�1TԒZ��,ŷ�G�c77&nc�mn:?)�����֚÷��A�,vq�ǰ�7ܪu���ٳ'xÑYď�p{G�:�BX֪̚FZi�nw�e� � k4���J&yƞ�ߪ� :����R�Mk����32K%��:�;7��>���H�I�z��- J~q.CJ��־ㆯ����:��rl��o�,���24�A:*yE�'��i�~o�"~�p�&�m�G�-Hj<捘Bl�=�@�]�|�A'R���z��H������+� ++���� r|�d,c$�%��H�(4���.Fa��1��3�vZ֯P2�+��/S���v�1�"[Ũ�/�H�SG^T���5]�P�Q_�?�<�H��(�u����ࣃ����@��5�A�,�qmoI{�#���b����u�ʟ��j�J�g��n�x��0��w+J��2_{ؿ���ua��}Qbh����]�.�?2�SR@�c�s�&&��4'�����%(>/�jh�w_2�ZH~ۄ�T�.7�P�n���vy��A�(�Xn�aj�X�U0�N��@ ++����+���� ���`�P�r�Edp����`��(�s�J�a�E�0����$����l0�.�C2��� ++�?M�D>�N�ƚ�r�̧���G!]>�ṩdU8!�Y#Z �&��-���W�����^���G��Q[j_P�b�|h����>�V@B�mo�Z�0hP�A�����!����?� j8+� v ��$(4bD���,�l�E�4��*P�~,:���k��`�?R�Cec�&@�Tٕ��|3DHR;��&�)|Nȹ�i~���+ aT��]�����Us�Tw� �=ޕ���L�������$����-'c�$f�(��s�n���\I����-��EͲz����?���yɆg�\�Y�7� <���7�_��>"[3�k�#��#;��H�(��r�����i>�DT6����}Ro��c�< |4�7`����#��_�t9��)��"ɯC�f4D���S��d�oW�f��wb�k��Q���uC��y�6d�I=��[v���0p�>�*)��h�A�.5u��o�]D���v�_hl��|+QY��O�1�&$����i7������r�3�n��4�f�Z��m�7�5gC1�� B��O�*��H�.&���K�| lر��L��F�0ּ�A��1&�#z��}�އ����+��ܙ�9���X�F�6�z����y+8D@�k��f�9~��rD=�?���4Ϙ�Yr�A���� 4�T�����>��W<��+4��$�r� \��^��!}j~ky���Dڛ�_�~�Y�Tl�r�WKG�@������r*)���h��~yO�G��n qⰡ�FhBB��z<��:��K��@qxa���5�;�h�ɷ�q���"��ƿP[ ++w8�*6(��ߞ��[��f�������ז��5�+�^�g�b*,�o�bm $ ++���_C�u�� ��� ++>|�ў!\�A��T=!�����:F��n�jҘg��]�hN�<��#[����� ��)gY]�o�[��M[H� cs� �I�k�0@}���o������%���J{�ؤF=69�Y�SC%fg�E�=��Q��/p)kJ�����J)�`��U�� ++�W��B�D��� �{Z ��J�X��Ӊ*�Zb��܋�8����e��WT�P˕9��;��f�OkemvoM� ��{Sa��m4�R˵�1:J��H�p���*+�<���]�MՀ�<ͷ42F��:S��`med���|ؑ� �t��z�� R5��q��L�D��#c�'��zPW0|^���_C7���������O�FU@+���d�}ʗ�� ĩ�Hq�:U8 �������f���ά��".%Y���9k(cޭ����;���u���\����$g��Y�oJۓ�6n�j��8��.��b3����9#�b��h9K��Tx������H ++�oMɼ�]p,��`>:+BS���z��������!�H�h^��5�!6a�x� �:�z�hX��n����$h�DL6 �D������*@ ���%8� u� ++W�����خ�fpH������;Wx��;{��F�p�[�\;�%����3��ʬ�_i>�8]��e+���뻪Z�/�*V��@^���"���zRPP�{r�_��B�����\�rcK{ծ/mt��W�!v�&V�]K*�@89��2U�ğ�N��3�h�ן8l��q����^��dp���U�����z ��*7�9elz}�ڗ�+�k�n��j��qY��� �4�w��L�:�,���/�K��c�\�*Uq����������n��ҿZ��v���� ϖ�\l}�h��3��� o�NM��m�*K|^�6}��L�I�0Oʑ?V��������/�UDZ�o���w�n���ݵ�)��'V�+�zW�Sw;��Z1t��P�ݙA��9�+ ���l��5+o�3Y��\��BN����N��ju��"�C� �2ɥ��٣9�At� �]��p����������y62F#s��U��\��a�~����� m�f�q��[tGSWo�Pt�����H���G�@~ƌL��#�X�c�6Zj��x��'d`CU��مs�i@�����C�t�E�qi�/k�U��t ,۾�G�� ��d��a��X1]�=�) ו�i��.mN�����ǥ��cE}s��lv���6����Sĝő50�<@��Fڎ�e�z[�Kl�,?ږT(n�nC��׃.�J���AE��!Q9j��]}}�lz<sb����|گ �2G? V'Fޣ�w��s�bU�z����6ap��]L�f���Io���ie��y:�g\��ق�vƚ^�Z�Dڂ�����i�Z^�m�PPPڏ�_e� ++4�M�|���������vAJ�HnB��A�����[L�ZQ`<��.7e/�`�T�� ++{ц�61�U-X��B0t��~���An�J ���5�Wl1�ul�o���3 ++�ڵ&�c�k:2 "���K,p����Zp���;,�BBT�sn�߸��j1��VZrS�.����#>췚�X��f��+��.]�s�-�ΐ�t~��#����h�U&)�&Ởfh*���K� �0��Sɽ�iŤ�Z>.�Ԣ��(G�е{G����Ӂ@,��bI�+`%\ŝѻ�I4�5�����ף�d���M��F�����=�OvQ�P>��r˜���^s�=}qԧľ��2j�%r�G��^�����ί�t���2�kiX�eR�m�9�J�*|�˘���J!�=��2~�e�G��ywԪ��'�Lǜ����z3����Oe�ї�U���"�>�O���%iǻd5��F�@'�ո!�9B~�8����`���88� ��C����%8ݠ��{�_���)~wڳɍ� ʳr.���ѽ^v����{���<��Mj}ZgCc�h@�:���K���wJ\��S��M��/wQyHI�v��NDO+^�7�Q=,NN�v��`!#� ++��&F��}�gf��U��3U�ֺXdK���3��Dc���ɵ?n5w�閽_�o�}���csĘ���1�F��N�'��Y��HfL��~���D�M��4*[n��]����{Ѻ�a��7��V��"���f����:���Y���4��m�������&�̢�~�jRٟ���F>�z�v�e9��7Cmd��U�qb�`����odK�w�å��E����0rm�X��JR�;�۵OY`���[C3N=�O��Tu���.1�J�P���W�����Fg��+�*(��0� �6T�=�ux.�o⏤X�f:~e��8��>3�-�c۽�Y�d�S�#�m�����M���5�6ٰ�t��{-�@��@���߸�J�F&��.������̗��Kz�qk�ٽ�Gwo���l�w�_�F��!RZXRK}���E8,��A�����6�����[7��wؘu(��00��༿��:ɯ��a\��� �gg����(ȋND��u�_F�b��4���A�lQw�P-�!�P������ȁ#�N��<=�#cf݅����r��13��sxEŤ;xCsXs\�r0�Wk�9��r�ê�$��\�{�O�%�:��3o��3Qeۭ��@o���|�%9�7��B%'��B-��dXx^�'�o�d�U��LFf�O�u�p"+D~�2�|�1�� ��$[;�w[/��d�������"�۵�m��N�C�?�cDe0:M�h]��"w���¢%�mQ!m��Dy_���1b�%���J�%�Ǫ��K ++X��!�w3n�ך������W���z�&�A�7� ܣz[u�g�a}L� E�����ȓqS1Y���R�җk����6aC,��1��)Rz�ux�m�h"��`�[���t^O��Jo���e,/�Mt�!ܽ��>�C��It���©*���b0:.���n2�ڇ�ۃ�C���u������M�xkM�uGM��+���D�.>7�R�px��|�j�LZ3<['s�]hͨ����)8|���m�g���$Ӕ��w���e��������?�t�>D�W�Aܙ��S.���|]�i3C#ғ1s�xj�L/�]���� ++X皨�fa4�٬%C-%��F�i��k��;��>�o];��a�.��͗8.�����~�3�P�h���b�o &��5���H����^Ґ���iU�R*��z���u��{=.y>}1�Z_{1�:4ٿ˺�7U���%|d�#���D���ZԪ���k�ÕPCe��L4�XN�m��@�����$�]A����O\=�~��ط�� ������A~/y"��E���)���f��"W��Fl��5��8�}�4��#K���Ϡ������R��n���yAUr�1�Q��K��9��)ӰZ�����U�y剟��2��(ξ��������9oe˓�qq^5��2~{�0*�X�rށ�0� ++��)�b� ++jx`�?�|a��{�¯�~���b��q<�5�|H�,U�����a��UV#���t��n�ܧ(%�0,f�mv��h��4u�]�a[���4�8 �#�,��=3#7��C�jZ�O��@n#� �,���B�#�m��[��+v�yF�7O�][vd��<� tܟtp��4=\)�lf��^ץQ� ކ����#g�_ �F]�yn���� x��oqxqAT�N�]|v(�U;���>/��Kt���$���&Z��D�H���sk�6�[mx.h躩�p};5{�PD�ǍV%���U|kɢol��`��K�)S��c�6%S4���/"8Z��:!�ivw�tHiS� �)����W�ʿ�'�_����.�и X����9G<�7�.Vto�+�i�����}q�wn� �~�G�����#���������:�PC���,霖�I�m����DCx�rB���n5Yc�A���w�H��7�h�s���H����(C��Y�Uq~k��z��_R�[�8���ܐ�^S2���~�m���ڎ�]��J}�&Ʀ�!�He�1T p����sd��O���0�u�0�-M���|�,��T��ezC/���n���M���?�O4���f�j֜ģ�Ә;W�&��[c����O�+�&�cVZ�V�P�A�v�o���J�9�A5{ڦ<F rX�HX@H��w]���&�6����*�A#��~�7�^96a2�����EHp#}"�=�TE���JЂ�M����%����)c?|�����8|7�TJ��4DGַ�08�w�d��!�L̯�bX�X`������U�?�4y�=�e���7"�a;��ښg�d���E����k��Յ��(f��=3�M�[��a�SP7@�>+o[�����6���8>��0?�5Q�ީ�PMW�6����`Ր��&]�϶��C�4��g`֍ea���R"���ӢdR�����Hf�*��垤�A�)V��7��q\kck��^�����t���O��?���ׇ��m~�P7�n�j�σ��ŵz���N�v~�H�� LQ����TpX=K�5ML�.�V�jr�=D~��bj�������,���ɫ����4J�(W��`:�Ә����J��_����IC�H�` �z8�!�E�HU#���֫O{�S��#�q(�y���fW� & ++��0�� ++G+������C�j/�=�t�+,p�]ě�b�����Z @� ++{�{�#�{w��D�������2LKk&�!�u�pӢ_�jC|4�l>�����6�X���L2K~��rGE� g��2E}u6 D��cE����}D|�7�H,�,P��ȴ2����I�O��w�]BN��x��U�m��f��e?%B0��T1�c�U�S;��ȯ�H��K������W9�TC\�W� �^�U�ߝ�Ƈ���H���C`[5��J�y��co*B�U�q��v����P�j��"�����fk!9�� qoe�͒��:<'�� ++ ��-��v9����~~^�KP�,.A�!��X�G� ++��\�x������GM�8���o(�S�҆�슠�{��I�{�(Uq�������������>��,|^��C� ++��dlMEͻ�� �ˬ����t�+`I�Ym��W��� ++�"��;-�+�D�Kވ��ZS;2�)���D����6��-JR�+TA�[���*P������z>�u�<�+�]<��ġO���r���f���L���Y��_W-�`��s_�鼴��vm�@�Y����QⰖnANO_ 7[V�+�jc��&Hݺ%'�G^�-!9@ re�0��<�L��$�^��U�K��FvAҎ�3w���9�����s�C:n�>�`V�wNTr�OȪ���v,\&�b�� �˛���]��Yh�h�j��oD��=�u3�髝^�W��A��@��S�}8i���B㷻�$ョ9+F#P���0�I����zP�Yd��|��q����%���W��y�c�K��iҢ I�|3�Vc�[0qU)3`z�z�_>x��-������l����JR���]\�kQ���P�+�����\/�n�*,�'��aIu&��Uj��L�|�{����3�yܹW�đ�G�7�^���ʎQ����w�e}U��JⲎ�L2�Ͼ_\'�LcvG�(��؊@Էb�uq�4|��o�_�3B&K ++������I��.&���U�i��+T"�����1����,���/�)ɧ�5��C?܆?��τAnx���B��O,� ++���`�� ++p�9��s��?B%����0uM��D�|�Y�e#� �iS� ̖1l^�H�7�U��7�s�Q��N��� �Le�F���^�s; a�bm�Rd&��O��@i�ώ6�1ĘMYQt�O2��>&Z�:{��8���R�'��2��1��4�s�q{��%�z��,ު��K�mY��7�\j_��|R0m�*���hQ�qUN�|)�O�s��rz*��ٱU��dB��0�ȯ���9��8��+�ڲ��N�[����F #E��J�(iR���d͍����Q�}���Q�n�16�<C��N�Ť���Ǥ�{�@wݔ!~ʩ��\�=ґ��4)M?6U2���P��̢���MC���0�@.t$S�B;��5)�w� ++@�J�TDjx���%�U�;�^.�zo��{u%4�,B��r-���Y��a�!�����M�A�B���=�Eܻ��u�@�7�[����n���ݑ��v�"�t��V:�:�3�~�Fu�6<a��@�"�D�Ծ�n�дVD��as�_q�]�/B�x �:9m�o��O@�=c公�>�u�a����8�BĦ�C ��S7� ���9+����A7H�����[[�j|m@%��o�K[]��,Wy��q��bK�2�v�eC�p4���7� 1���Ⱘ艛��T۳8�3\���!6K����٬� C2�܇�X���������#������6�c�Q�2�ZT"aup��џ�ŀjq+5�m����+����i��&8M��8�in%N��Z�{�� ++�_�� H��ݷWs���4�սq����A��z8�`@IY�U�^����;����U�����99�6�D� ++���e�w��w�#�;��I�Ht�����p�Ԗ]�;��q�;��5�I-�� ���ρ`Y���%�rD��0�:k�C��C�ځR��2��u�"�Z�¾סk���WU�y�Q4��2-��6rjk� �����(��O���z|w�j�D��^�(%A�Ł,�`5�N%\�� ++�MT��Ō M]�j���3u�>����{�ph�lxy��#a�T����}�0��/X�W�7\1�V �� ++#��T̞�yB���`�2�c�� T�;�)��x���CL�v'=���=(!ڶ�A9�V��j���^����ń��aϰ�n���MU8|`�F�v/}�Q��5�s��ɫ�fr�=��#�)F؍��q k,aAZn+`�)6`N�~ʔ>�NCb�<zm2���bʵD EI���� 9bE��5v���4�(��"c�}<��[�N��Z��� �0}�T�U����>g �n@Θ`"�A=�p�����s���c�W�/��Z�o�"<Q�e�~� N��G����)@�&���|�u� *�u�%�I�`�"(@������|����5j<G��l �G`dc��ol%�F�M�c�U�}�U֑֬���������5ޛ�Jwi��[;��,[��Җ՞��%�'�����~�\�dz21���x��O�O�[�Qۮu�գ�#���X0�ލ��u�+�P-��x�"K�Lf{��ݷZs����z��CN�1�%� ���S�_I��;�� f>��"T�(�x@�S>��s��?���f��f2���Q<̇��I��T� ++u��Z�>,�3CI��0�,���a��Ϫ���_w�8!�|�� ��KP7( ��[:�(�H]�X�%�R�ӵ������� ++e ����8���+f��Tw��x�QFK�U�)1�d�wf�}7�ܲl���u��B�|4]�~qD�J,Oc���EQt~�C�AOj�/UF9c�l�o���C�H|��u�a���'�#���2�\�"["GW��l ��WD���1�]�QۄH]-���gu�}�pԇ����{"��,���G���@���0ᬭ��-/og\��8�h��D �G���1����8[��Y��f�_v�+!�1�j���^q ���A;��B�A ��"FK��h�WF?4D������� �k�HG5�;п�q���m%LEom0��I�#��m�ɚ�:�{����a�W�`U���:zN�*�^�x=�j�6� =�����ޚ_K_B�����o}]��I�4���1�6��[vH�~�!WN6`P���pYZbc'C��Q�L����J� ���>fej�}��D��l�{�|����[��v��� c�ڜ�K˒e��tG��4�6v�e�h�o��#��Î&��3}��|�x��������i�ނ�ޞ��6����1Y�����o�����Ct4�߇�l?�Ʒ�ߛh��<��>�h�k=C�9$���8qC�I�%4 ��Qg�s�ߚ�#_�y��P� >q0u54`P��j=ZT�;������d���*�u�X�Յ�Q���������͉�;��@�(ܿ覹�,D��1'<����2k�:�m��mwUیL#���E�+���ra6��S^ �,uC�]mw���_�YӜ�邝�o�}ϟ0(�$~��g2���8�P�_D~ґ���WxC篯��Ί�����V�J@����ݘ���B �D���}eH�>���*�ء�ؿ�����#� U��� MBvcb�}�V�W��'��YV�k��5[l1!j��>�h=������r��4[�Uk�j�W�C��^���4f�(��r?����o*��-�7g2X��g��B���~CK�<^�"��x Yy�`�5���!`eV��CA9�0�Gc�6�Lِ� ����(h|�v��_ ^��4w���ؤ�L�R6� Ɲ��@�+���H��_)��7�EpyY?RC���m�K�4��R#籇�}�U�_wfE�ݞ��@�}�Á��4�U�/����s��Q�}��ݞEd:G��;k�֑�M�9��Ա�d��ý� �5��/�\�/9a����:����^�k1�����B���D����W��0���z�Y��~6��� |��_�صpr�{5���/A-A`- ���z�`��}"�O؆m�2��5G ��l�{ ����ۊ,��G�w��@rݶ���&d8���:b ++̖�-V��N�r�[ģ��&j3�XzX�����.�������Qsd��=��10k.�#�����x,��W���|a��~�a/��S�D��,B����h�r���F��/�Ւ�7�pUEk,����1�k��q��"D�*0rĠ���hD<,��!�Rь +++�Қ����r��Ⱥ�&c��\� ++�d#��� r����O�_Y:��@7��-�Y�*��OHG� bGPF��v�O��Y`�Bd�����K�3И��*?.��`�%�j=l��\�ux6N�fäL�:x8���CG����8V�b^��{S�C���n�}&�MOŸ�V�F�]La���WB����~� �6,]1b�j��ؼ��A������ƈ���+F1c|\�x<��6{P�"���� 5�q[1 �^1�{�=��U>��a�ϡ�5�v�m����� �|j�t�<w�@�T�hew�G��3}���ю��_���B&/��뀅e��W����ja��R��OP�=Lp�����sy�y�`;eL �ʠ9����N8��y�D����6�LH���Մؘ:6�i���ä�EN��H� ++�M&�]m2,p�5,�F7A�b�c�^��]`� ++����*0r���۬����'̿_�b��L���`�p�l�tN48����Q�w��tZt�����m)���+�wO�x�ĎL<.]*lC4�д��a��}o-%)��m�2������_�T�v��߶\5��5��B��tSJ�Bc7\U�~�Mo_�f�3K7dC��;}R���v[fL���W�FQ����� ���h��{���Z��NeL ����9`F��ņrۏ,�����oM�4)p$�ڞ�s��F���1���u ++e6�V�le�n���M4�{FM3��k+a<�6��m4�-w2������#V��;�0�lY؞�&R�߿��T�h)���&_e��ح�;�L��9��;C��M�;փP����G�RK�z��+�hC�R�~8����C�o˵�*Lȯ�B- �A r�^m����-�NVu}��TY\��/�e苤�*� ++q��/v���Ӳ���t��!+�Y%��=���r�@� ^��}������J\�k����r֦ޮ���4=p������n7j���Ժ�־���%y*����&��h��>[��9��Hn�Z"��y����᱈��ÀƱ�T���zT ��틒��b ���r�Q�����>�mv#��3�3Ӑ��@0����גa�^ZY;��x�ʭR���Y���q�m"��H%�BfTJ�iL��IV-�?< ++nt���q���'߫#� ���^�c`�ݞ�A�{h�4H���mv�-8Ԗh�"F��G1���CY,��.�M"t����O���;QU�i ++�]ܡ�J��ra��Kc���&�J��y�`75�i3@yG(�w�O*�we쨕*�d'&&q��(�?�]>>�ڌ����}�t�v�ebXT)��@ry�I�VFK�P -�E������� �!'^������Գ��Vz7P>�m@a�����r����qvx2^�*( ���w�8�.��<�q������u��ay"��a��8����7Eʉ!�t�o����R]ݒ���f�'��Dv{A,)�=�Eф��2��������k��l��G��x:�vܒo�.lH�$I+D�$T��!���W��N����!��� �ӽW��@��=bY�����5�]_��� �[v���?�V��(Rʘ�'��.頄QZ1�&��`��7��]�×)D��Z0��@�!0�E�Q���Q�K�O�3�}�X�e{&Ct���k�<ʽ�:��A_����E7���(�BuF���o�-*�|tۗ��:U�$#��XE9����ʴ�`{�<̱�u,�Q���}�D6D������������*�L����a�����[��K��_hO6�j�3h��ʄ:�{-Y���|s�\&ѐQ��jv��c�#%W��NPcv��y�*Of&Ҫ�]X����;w<�h\��z�'ˏz��u`�����p�;��� ��F��NFa9�`F@�S]�vAe�W�*�RPU�Q�M����*9�O��c���UM���m\��B겣o��š��K� ++��|>'1�?��[JuCw�g+��Ǹ�R�XJM?�� ++�8����Jt�߶7CD~�Y�ebt��EW�;%��" �I��.M���� �xubY�m��e�*O8g����ۗg�qH�Kw��(J:�|��9���ķ�� ��D^ ���� ��`�����e,�j;^���|o��q�����S}4��(h�Ň}���%�O��L���V���9���%/�ӄC�&{�m��z�4�v�J�)]�� �X�s�1�>xhM�ݚE��p�|#�S��,,��_N#$"��&> ++w�i�-~�@���ʕ�Dn��i}^���2�qwt/��n�Ǚ �w��G�X�ʔS!���3M�L�1��|ة�:0|�ʵT1�.H�]�K^ly�;a[�v}��yDj�Sfd>R�����R�g���"�jw���炈��5!$��(�>ػ�J�XiS�a=�b�Ao6!�{Cq��[�m�u���cqgi/?q͟���X��� ++q���9-�(Q�`}Y��5����tj�@Er�xC�iS�����e ��j�Y~?tF�&(�ޱĬ���O���W~�R]7냿��$��0�V�_*���Aw��S�O$sR��Ң��e�J��W����4|^�^Trh�`��j%����3ش��Њҡ�LՋ4�_Ӑ���B� j.��ͻ�R�Ӹd����V�e����ш�).#w�T,@to'S������Y�� Õ�6(�V����xdo����oacWyp�[j��)&��=�������芧��Ⱥ���n� c�8B��-��p�����]Ѩ8X�P�� ���ĝ�&|"u��~v��\n���k�Ak��'f�T2�3�Ц��]Bg!ix�5E����'��Pl�;PhP"ю7�d����%����<�g���T8'�(|��I����ʉ�m"��6ꏟ�Ql���냿Fz��&@���e�5"~�Q�+���t�g��tUyr|F�7D��*��7_&o�D���H�\�����=�a��P�#�mZ�,k ��YI�Kxx�>h���g�'�R4�H�I��q0h,=�x��A��~C?#kVlW�_�L^\�ƌ�n]�A3{x^����!jٜ�ny��)0"^�T��0���M�"E�i 4����d�]դt��6�"�$aPI�!�� i��+�wn�o0��7k=ѷi!2���� ++�-�V>$�#PpxRV��͂��yA�������uF���7�c^���r��|���oj�����j�+�F ++a�#�:�0�����h�e�lxn9lk=*2�´�X��0����~�1N�왵�v��z���+�t�ī}�X1�Gܨ�Ղ��q�?� ���@(땜u�Q�)[�nv�S�,��E�T�qu��c�9Ρ��u?��Uk"�D��FW��B�"�0��HG�� ++{ר����ꌔ���-sDx�� �B04���G\J�[���"�-K`~�����%7[I�I[�[S�V� �[�������B9����Zi�<>��T�c��A;�J�0�E���%����w���e�ѝ|(�7:�#�@:��{�@��T�ǥ;��a�װ�:g�s��|���մC ++D�αk�i"x-�^��RߪHק�N��W� ++I.������.?$�D�m �����CO��p�xmi�ܕ��膖�̓�8@��Ou��{�U�r���ϑL��I���=Wm��`�~p-�:�� ��DR����دVn�R�r(J��U��N}[ًP\{�Gp�٤ަR��N<_q���� �V�z)��3_W]}�Q�`0>ju�.HT��ٶr�t}z�=p��k�����\��:j���y8o���6�N����.cf���������Dȳ�� \�Ӛ�b>�O�ru��xPJ��ܡB=G�pA��=�*�A~4��G~0 /t60*�|��R�:��̎���r��A��z��wQ� �I����� ++X��͌^ޠ�2��ŗ>/�+�|�7 D O�C�Q�!����Խ�ȉ#C��ΰ=����N��FX1l=˵�#���n�dՎQA���fr��[(r��(�À2(��3`�h�zQQ[��I��FT_�∡������e�x�\^C[���18�����:mU/U�#e�9��c��M~��t4M��zqԕ�_��b Ďu����ezUh������+&2 2��k���m�(�!~�{��(4�mR��X�] � ��nx�.�;��&dx��+X����?1J��{�O��Eo(y����}��Pq���b�I�y�����T�?�NP��Β�˹�A��/,5���5DƇ����!G�#F��E\w"[31��������Y����RQ�����Q�\�`nKؙ� �|<�G�~��7�JT��>�Es8C� ]@]<y�G�#|MZ��� ^ ��G��a,M�^6@�r���Z����7'8/-i�a���8��#�����N��N�B���o&;�AL��Y��� {�ClaUd*�&Ŕn�aR�8��-Lj���WR^�A�1�a� �*}���������c����CKT{��ft ++\:ޯ曌y�������ѽ?�9;�� �w��{@�^��T�+~��"����o�AYۑc��&����zΨc����Ⰽԉſ�4��`WX�5�u��`�a �ϸ�a�B��[��/�X|�_�)�w~���U�a�<�W ��/��~}Q��PΜ�9.���+��E��Z��<�:I8|�1�7߿�)7��q���Cg+qv}(�1,?�"M������8�h�<)�:e;nd����۔�$o�孿�f�`�B� ++�f�ƭ(�wo�o�4��G���9��:���W9��!iў?�]�}�R.���o���L[�+#�Y�_���U�9�ٻ*��U��6t�"�lnޭ��X��oX�A>?=Vf ++����]�L����檾�L\=���&�����f�� ��=JTu6p�3�L'�C�S�L���^�n��;��r %�(R/����z����Ĭáߩ�|�P:�� ++�z#�Y��'V�P?f��a��rw��FSIף�.�Fw�!^�珔�8�����'M��v��~� ����:�*Cن���>���\1f�@�˞�*mu��E�Ż�-JNA,����xM�N���V �yy�� ++$�S���N���vw 0��Gɳ�[m�>fT�@� ++Y���<i*+Dx�?��L�7@NU���@�w�����O�� ��+}�vyNasb�g�?l���*�# !`ɫ���$��y��[\��9>ܠ ���-π��?�4�燻�>����[�s�/6z��ծba���x�f\��I��*~�o��y�Pƻ��H��]5 �m6��V�q#$x�}z��ޯ�+�G�?r�\�mE�n��F�� (�����A�O���6m���9��n;�(�e�v� ?ȓ�JC�L6'JĆ�>�1T�۟��ҝCp�Ҟ�5�*�Z���;�[n�u���pt7 ++Ag�&��j����z믗UL�7M �>�O:�T�6�̸�zj�ק0�*��A)��;����Ǔ6�,�+sG�4&:�ޮ��U�TA��9�|͑!1�T]�Nӕ�h����mW�u_cv�'���:�J�O�Ն�-'�'J܁\�8�����ځ�8o�!�@g�y,\љ0Ȩ�7�Gz��DR�������a6QW5���1�����K�TC^T�_�J�>>X뀹 =��V���Dب70��d�ٗ �� ]���-&9<U.�+d���.6]�s�QH�dZT>��J�;^b��@��W>|n>�am�͇�q)8�6�+���Tև5�i��F��*?Y"K�}��Ԩҭ�y�餆��� 0@�6 �J�|��u(��������%��դ���+�V���H9/�7��G����8݈��.Y�,�� ++����:�+���@�i,�$8�u(�?�G������W�$[�v��x���*h��&�{�vr�G�9�^`B���PP��m1Fe�}Qp�پ?�����:փ��t���D1GF��m�!x�(ы��ո���m�����>-�M���hX����Qm ++��:4��6�&���Z�Hܡ�u���R�P�hUf��ߢapZ���ąH�R��I��DR;-�%�Q����\���n�<�2p��x�*U����m�u\g����֭����qb%ъly鐴��o������=z�ɪزD� �p{�w$���Þ�DCL�u�k�zH�bɽ`�[�35��o,`>0��I�A+Z���JL�'5�6�=�I͋�vR��ͅ�FS\�t�c֚�z�^Hz�c\�L��`�7*N�?Cs?��t��%h�}��B;����ϒ�h���َ/��g��� �9�Sk�|�ϛ�#N��nEX�A����Q�[ � ++�s�2������` ��o�!�\���͚��YC��c���E߸��*9{���H���O ++���%l�;V�}�kM�����U&���q��dj�Y�o� ���$���Lj�������DS�� ++.ݽM&V7c�)G�u��L���ff<�8�M/50�L�\6 Q�x�2�Nv���[�2ɯӧ��{�"�)qC��2�h� "_@.��pG�<v���}�h��c��~ �7Wd��{�9�����``�%m�U��b��m�p8� ++���m��8��D�#B��'tE[[S�|TΥ�6���by(A b�AHY�db^|� ��$^�N�t�a r,OA,��~��2gy�d�k�w��ʺ�c�F: k�v�� ++~�H�*�G�u�Z��4j�d1��V��T�<Y ++ WĞ��`���apV|���Xi,Z�Y�Rs��>�o>��-�TU8���4,� ֠~If� ���n�25�^&)1vfC�{��˻����ysK ++������vsa�%��H���v�aA3�i.p����0�,�M\�7��X���ꥠ���`��PL�d��}ؒF�kaͨ����3�k&�aa7D�+p�en���<6qp�b2�k�`'���|�=a$b���t�@��F��x��tܣ�2�����^�k��+� ++����p�IpC�iV�~�(Z� ���c� 3��;rD�jĪ�`v�_x�8/���`��ok^/*��(�UþX=Ȍx��ouID�����%�5�&tQ��a�Z��J� ++#��稻a���� �c��$����!{��C7*���)� K0�ni���I�ܚ�s���� m����D#AYT��ɡaƶo܈\��y�_�K�g��(�,G=G�ix�/2v�2��D�5=��������@!9D�%H���䂶1��D�Z'LI� {L��?̃r`�����"6�2���8�d� .J�J=����>X�-1�$�����1��[��߯aP�:w���$B��l�[t�zA<1yLe�20~&'d ++2N��� P�$�)-���3��S1ߛ�]�<7�S��|��9ė7Wr�&/�53�9��kNgĤ�(R������O��]��@���'~�{���_�y#��猪���������R�RjZrqL��� �5��@���Vߘ�p�g������h�2������ڻԴ���� ++O��f�c;��p�.�8�^sR���B�'/Θ��Ԏ�)���e���cD6�"� ++��4���smԴA�XV��த���j��FA��xg��2�a�P G���H����~�*>��s��舚�3��J���>�?��sƌw����N�9�"e͝\2��-m�w)/�ݒc�.� �Üf4%���;^���_�C(��-��)eۆ]���E�/��mOq���(KG����yߞ����I��ų�][��iS�c���#��U6KG�:>H6���v'~�74�e��ph�� Va�|��8��Qij�옒�}��a����kD�S�U@OB�ȗ� Uk;c'�"�+������PS ��������5�� ���t�9��.L�)�%&��(��݁���on�H<�k��n�i�ž�"��F�r�|(B��s�jAHW��:���G��]ֶ���z1f&$f6�l���l��,0���ӨN3�k���m��Ҫ�i_gA8O�g�������UI�fĩ�@CyU�ֻ,/ �O���+��k�î�J��`��Nbj��i�~��5mE&��X�W�`�� ++cj�꜂�z��n�<�%��|�r�S"�(��t�4����7=��O��A[ �D�M��}r�%��N�:8�m&�y&�Á��ox-��������h�J��Z|B�0}�vn]u}��R�u�K�Y9g�G�9������,�4���s��;8�g���E�=́�Y�41�V{a��� ! �U�f����;ɑ�=;������[��+u�?�ʚ�s��>7�L*�f z65��9�����������OKh���U8�AsLbo�������sM����ח��m�]��`B��@�ptƇ�Ѵ�LځC�S�8��&�d8i��5*�q����c�Ώ����� �g����rwpql-��R���!�`���:�pk4������=���̟ח/rp�wf�!��0�������c��I�;�M�N��=�6�f/)3|���I2e���ua>|�܇j��sQ�1yVwe�qh��s� ۸�`>CX�tj���y .aݟ̧��6�a�UAa�B��y�^3 ��}AQ<"��Z+���n��VKh�Eu�סkm2 #"�tXBt�6v�~�c6��<�t�P8�L ++�q�`�M ++��D�(�?���1���������t��;���l_ܥ�!�B"G��4���p��fh����2��;��#)��k\{~/���Efּ���\����I�њ���R������!��z����D�_Ay���̘�N6�2��3V��GF�r)7�=���&K��k�n��1c�!Fg��{���עcw�W\v\��F?�����=�=>�?H��vq��4���)��c:����z�I7��~�� C����P�B��oo���J�������qC�,%[��d�#�Fnu�l�T�zjk�?=��8�s��5GS�t_w�.�N��@��"6���D�ºB�6���x�`���^O�"$8�3���m�g��5L!@�hn���}�.m��g���鸧&S�'f"�����_���9�/h���ϋ"Sm���bt�����w�Um�^c��<�xGM��3O��N�1�c�h�ZO�{Z�����↷��Â�r�#��� [f�sH���CUCm�Y�m:��ЏmOL����a�R����܉0 ��$��)X:[��e��;>�F����Q��>�bn��9��#�%ˉ�=�3��̺�j}�N`��L���SD�L;^2 �i�3m�>��ԝ`��k�H���G 0n_�"������0/��a��:���R�I���çNJݺ4��F/������z�̗�"�.�yN���R��� �S(}s��e� ]J�����==�ȏyA�u�A��+��0'���C3�m�R�ٿ��1����Ta❶�m�qJ�g�X���>�H�iѽX34w��u8g�:-)�G��'X0؊����'���/�p/�Є�"l���i�HhUk�1��n���4� ++_*k_�c��<2��>���Y{A1&�����g����$+��[� ӟ����%ck=e��F�[�vǑej�A�x1�[��!�ю��{�͢�V�Ia�(ͻ��/�f�A�^�����g��=M����o�n�x�,2H�v���3����5D0Ҋ�Q.��M�Y�7&�N�9I�U�� �cz�7��"�(B,M����,�iŧ�����(���Z�g�U�s�{0^u8�'��5bPZ�係,?�ki�U�� q4��Y�6�l�HM�l��^pv5+5W����yv`���%`�� �0x0���i��v�3 �Oh�i����-.ևb�v�p�y�A���R�6��72 M��@s;�(:U�k�zq:����O\k�~AJ@Kp� �Cb9ħ��Sfj�"͂��!P� W�M$��b�U�h��m�q͞EPa��cG��q��M�7n������6[�<n|�ۗ ��hz���PFIOR�*��`��������iX �M����>� V_��Sc�kP���i���V�Ix�}z�2����z�� -Lx ��P� ++On\A�l��ؘ5RZPG�.ȷ�H�2�k�[;��h�;a��Lm��%���!]�8�[�v�Cپ���~��߾���Ͳ�H��U������7���+niٗ�exZ+�y8b���jX�E7��w�%�a��N4ٮ� ���L��҉�nL��*דO۞'���P�V���3��i;�z�Q:�պi���dl�y��4j��@g�A V��YIOa���K��g"Fk�x�:}��*�If�^�h��&8�<�W�D5�e2,$c©��L$���^Q� ++�>;��"V0�?������a@��T�Y.�'���Ժ&��Ϲ=�OP�� 3�;��u��Y�+X����DO�k�����Md{3�.[�}���i�� U]��P�%�g�6�m��Ό{��eS�;�Cn�Ki`z�և�KC������ ++Wwc�~R��b0�.���C��W\ O��� ++bH���JYR���p\%�/�e���O���� & -��_�ڞ�� ��I�0h���?�sאA��v��cG�bm?|:{��ZcA��-fSA;��7�M'A勄0��o�j���{�` ,j�Be�u|�Y�DX���"��fNs����4�`��(���9T�W'�Y&�<��38f8fl����?�f˞C�I:PU���j����9�/T�6��)��F9�C��p,��j�J�/�*<f<=��:J� .e"���k�#�,Ӛ@(`���`Bk�*�=z�r�pލ�.��{1���/1����-��`��H����G���E���Uf���%����b�C:|mbP�?p�u���f�U��$��:$=N���+?�ղ�ˡOu5���6�r?t�-*/X*�䞱��rf� ҂�z����uu�8�D�����O���!*�����~L�&'Ce`�DiG���)�1w�P0� �P��&i�/�c��"mH�툀9�_h�m�ȴ����n{~�j�h��F��$�i0� F���VQ�P���GzN�8��|/�3䱕���N�ȴF�(���\�7(6� �NuEB^M�"�ʹʌ9"�D�B�5�ڰ<K&GVe;�.W]]r�$�b� ����Ś�ܡ/�.u��L��U��2�ߙ�ݝA��M=�n˵'@[F��v�5�G�c(J���w�}�)��v�4�Z�u&��7%�i�5Ha��z�s�x+�i�Xe���~�{0Ru��&�� i3^soonk��X�[��?��@sh�S�ɒ��vp�6�k����(�+����������'���p�Y~����b�B-��B��m�h��7f�y�Ɓ��r��o�6ش�TU�����d�y( ++���������aDk�����>�=��2�CGb�H����W6�]������řmȝq�"#AJ�� ����j��3kX_�4�����'�r���|�����m���Ô@��3�e�\�ƱQ}t�#6�������`ֿ�ݾeV%�7{ ���8j0Z���Gr�z��OS�m�W~y{��5ȬE�%Fe��杈�7���#�ԕ��X|T���>��_�d��uw�W6o�J:g?���$.v�_~)=<,�E}<���5�< ++��B�`�1��*��|�D[-s��k�� �«���<D��!瘗��q6f��2��̽��/����Ô���8�W�,DԶ���9!���Rf֭S����J�g�s-'+l|5��s�ԁ����D������JJ!�Y<��7�}��l#0��:C��CIXذl�blٖ�Dc��4pH�:�����o�G������[�N�WnAU�~T�@-J�i{Ӭ�OE��ض]�����ߝ��7�[����n�"�pf0S��<��ʦH�Cߵ%�Z6@���ogXվ?��,��Sf�|j����K�!Ƿ�8ѥ��V�Y��-��'%3�d��D=)�hqG��+2h��{�*�q3z&�����=�<�G���%���K�l�����q!���1�\��ȫ�uA��v�x �0V��1�5�pmi�wlwx>䟍9��>>Hly��"St��mk�����2�2.8x?�����J;�`=N0rʪ�>�����F��0��Ս���o�&n��H2N����&�>q���4쩽�Xb�AhA!��X��ؐ_���q=�#������+4E�xa�J����� ) ++�|K �GJ�Y"&�9�������Օ��dE��ɱm�L��30&B-� ++����[0�<���������52�����X�bi ++�Z\xB�P�h�j�C_��B��c���ھ�*����m�s<�/�[��`�� �[=���<�k)/���(�Sr�������~�T�C[��:@�\W~J�q�,�Vѳ���P���YJ�9ޕ�$�G�"�|HHd�1��Ӣ������g�ρ�r�����1+����P?�|1��J���F �u$��ע� �\��,��A*:��z�L�ͱ�H������b}�j#4#͆�LD8�:�2���d��Ϲ� ��d(t�z����1�:dsv}��9�����s�<�����:>�諶�|�Ϋ=E_�2%�*��c�q<�[�!}w��#�ѷ�����1~�2G4]<*sGh +++sı��5��0��+x��d^�Kt���|�Y�/�o^�bI]���A��U��$$�5�tk�G�ɂz�P֗d$�(�8J��ߜ�U� ��m+?0PhX�H�sm<v|J�A�O���N��� #`�j���r*�C�6̾�Z�nK�ً�|��:��[�R�wh�h��v��j���b#Ϝ���3�x��$�y�Eb y'lb��� ++ ++sB��Y�Ů'2�Xs�Ῡ�U}>�w��TPn.�mA@S{a;h�1ۧ�E�'FĻhc~�vNv��!Qd$rj���"J���je}���g����we-�2""k�;���4@NP��}�!%�%كBҠ��\ag�z�;«+M�]l'�툾"�z1��aͶ�Qޅ%X�7Nrȇ�΄�^=�����dpa/`"��і $_f�D�8E�^,�}C��t�AL�G@��v֪� ��-&@f�tᑶ��)���e}s3����gHS����{�O�_��]�Nͥ&�ٴ�Ri$���wSM��n�'Tܶv5É��<������㞤֖�I���w����^�M�L˭#�@�[6�'�ʱ� �S�i㊅�2������@���� ��y>@�@��Z���N [�T���>��؟�X���'*]7\iE���灧3V���`�������N!���;�F��?�}����%<s2���a��{$)��%yt(��{"�_�î m��}�9.Y��+r�U�+�ܠ~"�SiA=i�:a�繪�C�Ȯ����M*2�@���_�#�{�me�e�f<Ѭ�/8�?��ug'Et�+Z:?9."(3�a%��M���N?�y��ś���5/��J�I�5w�S�?�#Ĭ*[�M;�~�v}��:�Q$`�h��;J���l��Q���� ����R�B�,�`�gO�љpy���s6]��tk�W#����N�D�K�k�{/����O��?��g���p�����C��M�C�@Ξ3�ȜS� ���n���rK8���6J.�AN���Lfq�Ġ��G��TU%g�։��]zj^���.y9� ++WKkǪ��W��!�gX��xI�#Z*�UB�_��ź`:�M�����8,���p�ݞ��a(t����t<>��o��.�y��"��ݒ7������i1�{�Ę�52�L�X�G�cXiT1�]� ���Ԉ^Z��k]Fضi���`�v���옧�}_�����%�<l��Nf�a$�� ��� >cF�Y���-�4�o�T�A�c���9���H�O�9kg�L}ND�-�Ϳ+֯m�t�>�%���*$�iڒ��d㟲�� ��Ჾz�+���KWo�K@kL�>G��8͍�8�ê �Eg��e��\`)?]k��\���x�Z`�5��}�,�r��`D��R2k�?�C^n��/5�WZ�"���}c�;�'1x�v�5���U��C����z�ӵ����)�d�Sb* ++�ns�i�\��͜��SA���+�������?�U�Ԟ��?�k���i4�D"� O/a���m�. ���]����p����OZq�6H��YL��qz'u\ �l�Mc�V��F�m�r��|��t2c���4�M�3�OL��ν��,+Xu>��`�K�J��A�4B�C>B���At eR�)m�CA1 ++�2��CN�vN�Q��)]���y������u�s��"�*;s�������WM�L�e0jp�)�?�%e��Z���vl�%cz�����Z�}I��7g^ڕ��%�Sq%��,�J*b�f�CW ��a��;R�ۢ\�knܝ�p(�Vձ����2҇s����ĄLw�*�Ȑv���}�d^��-.��jc�}Av�1��u��9��1)�|Ng�������>���(�)��q����0�0.�qi����#E��hz�`��c���v�D�&�r�E���o�Pň!X�6sk�K��k36�T҄�33w�&��%%��1��ܯO���W���_*j�$�̐T>��7gp�WPe�]0�i�n+�۴��k��͟���<�;��(+�����w��!�S��5P_������1{�95{V $y�ˑ'|��*a�������c����ݩp�ʄRPP� ++v�S�L%e[+��Ӷ�#|��9,x�x�J�:y��0������F*à���>��\'��b!pʦ��>�^v�!���O�:�nS ++"g��E��a~w�=l�0H x@��w��S�g�F��^B�I�/�9�����D�rb��H�<"4->��X+u0p�w+[�oM��c���启f��ӡͰ��|IX[�BJ��Q�g$扣����������\1i5�!��C{�g� ++><��E4��I���?�۱~��~����^���t��HD���@�:��b��SF�Nȉ� ++����"NZ�$�=3��v�ϯl�q���!}Sgٺ��Њ�x�kbcg�����i�Z#8�X�Ź��X�o{Ի�~�=�rˏ������*3�&+���O粄 �D�����d����z�cz ++��粚��y}�+cQ>�I\}�o��.H�Qg53�����=�)�n9����`ݑ��Xw����ŧt�L�q�^27��]���1�稍�2$���w�<TD$���4� ++�6b�����Da�$�;n�� �+:p���?C��Y�61;3��M�2��o�TO��ya��!� ��@];�����Y~;-%FL�?�����Ӫp8�L4�B���ԉ3���S�l���nꌷ��Y31���|�_A�� ߙ������R&y�C�w��2�u��Eݣ���Pa3�U]�H�@L5X��&����u��eX"*��Z9��<I�F���i����wp���W֮�i�3�P��C�B_g��)�`�(9v�H[��=ڛt�KĖw�F�kTJ��@;� ���p��ꅒ=��� ��D�r��7"��͠ڛY������>����=h[�w� �}R�%<?Ê�9���2���0D�Q@�u�'Nj�0�s�r.��ʠH�?�[��%�Ň�YR�!�b}&pV+˰1¡�WX-A^GwdגU������5���E��,���DCX���8�����3���ɒ� ^�~%LGotwέ^�!(��\�*d�s�k�9r���~��������Yd���k�Ӡ�ʷu}z���4)S9mep���/_��u�9r�̆Aښ����2|B�U�%'L[g:2���U���#"�����훺������,*j���wM�Joq\�J�խ{�C6u'j�-Zܻ��FR:>eE���\! MG�&���7-�>-�U��E�K����K��*j��C%d�m߳c���_��;����z*=9�!������3�BQ$<����D1(K��>������c�MZ�=� ��u;r>�ǫ����%H]�|N�\�:Pm�@\���[VGVQS�"��n�#3iLd����� ;}�1ʏӕW����O"�b�<���QzC"��,����U���Q2�W9C^���E������ �)v��(���/"��E�]���y$b/�0W ++*,��5�?dj�BZI}�o8�{6���(����qw%��-�")��~o��+�N�_�+<{�Za_��<�PB�qů&���]m;۳���}�f���������]x�a���ғ,Q� ?����oO�y�Ξ*��>tZ�m9�5��䅫Ą����Y���7-�v����I#A �\��n�N�����(8��^|"�����ED.�J���ԫ'���݂NǸ ++�'��D~O�H�p�?,���n�+KJ�F�(1t`mDPf�>u�S��m�����/o��=���� ++��c�pg���]!C��Ϳ�_�o8T-�7�<��,����X0K�{�u�(�i�b��;��w:�i��Y\�o�[Y��gK�m�I1(K���Y��Tf���kcw��sg�%:��݄5f�c�!&���4��3p͞Zw�;�p��J.���)���Ò/�,�dm���oWd�y�{:�Lؘ|.��ij�}�l��a�m?�k�p�%Ȓql ++A��@�ۓ������L����:h_.I����,V���e��;�4>w+1�!�),���1&����ZA�w/o��#�y�'�b����� �J\QP�!�ɗI�Y�1W+��ly/��;}PHq�d%���(���Z.(�ԓ��2�Dz�2�"�o�|z��wukV���<��:��CSQD8gw&0�ɣId噑�����J�����f����kIfo�r*��D<�?�H��d+�F��;y�#��ן�G-�2��Jf�)�)[��"b�#Sl�3��LIV��G��L��J�ΜCŀ�!��v/��ĭ�Dv��Io�`���}�_�N召��{�P��kڶ��`I�Le���N�>�� 2��L�ڰS� ��6�NA��|p���8)[B�b|�J�����S(Q@��L��T�Z=��ف�)���ud!� U��VK��ف���S��"�϶3�r�^b�Dy�9W�1�u{h�ѐp�n99�$0���I��s�wD\x̂�<e��,G��H(�^�HI̕�%�A��ǗY�'�r*h��//��'~~b���t֓�'�뎎�;W����'�H��\r�D�ǥ�hK�:u?�C���s]{@��� X�������>i��)5��<�ǧ�u��lX�� +�y��2F��v�Kj_�_J�)\�L-8�J�Z�q�^,T��3F�F�I̵�70�U ������R�� ��E�6[�ġ��_��z���T� aw��Kg�~������3�D_ $`�B��*]@з�����֚H���te�r��q��� ����P4��A��au�z�y��!���1�[�&"�JF��Os�Q}�= ��L�Lޮ:C��x��(G��X7M��0�c'�zg�TԾ������k1���U-È ���?1`� ++ӭ���U�F9]����&�����r�[���.�Od?:C���\�"F���+��`��YHPV ��էc�<�Y�V:g���8�\}{��9L�O�c˶&/@Q;nn�܊40z�a���x��|\�� b�c�e_��DmnAm��?;I�Ԯ�SAY���F�����b8�n�o� ϲ��)G�o>tŊ�U�B��f�����w*)�۫ڕ��߲�Z�믯�ˀ�i_z��I[�ۿ�YR���rx%�V�� �K���Ve`Z6�`�$�T|�R\��l��A�Dd�5�|��pΐ#��Ɲ�] w���K�e�;�W��Y�#�����!ޣ~��ɵS�Ok��]U�O�X��KFqcͱ�� i9�E�lTyRA�BY5�kg�MS�cu*T� C�}�}�h@�M���������8 #� G, ���}��kxq6����qHh��?�s��-��d>k((XU#�S�YwTNW��<|�Qv�p�tS۶<i�����om�@ÿY�-r�&c�������7h�|�}�;U�,r?9�(.6�!/�; ++x�-�1�=�~�� �VRbG�/�K�^0��"l��d�~3 �և�F��c��^@��i�+ ++C�� ++$l�L�Yn��5��i�c�ŗ�#�;3u�v�Q��ꅳ너(����xl�C���N��c���MA�z�A��3�V������W����Ͷ}�Q�]J�b �1���)f��ؘ1��3�5U^;���W�=��Jn��12q A>u�L��P4�="�'���7ު�ȴ�L��:�`�N0��t�9�o��ی����FE̲L��"5vu,���n=W��ՙX���@ ++$w=Uw����[LjZ� ++�a�<*�x�7��k���ޛ��E(� ��c�\����e��bvY�����ʬ10n�1VxsT�'F��Ժ���6��wv2#��������ߙk�:�QS��LZu�1�=��`r%� "�qAM�S���x���9v�s�@��>���2;�V��, ++.9��91(�$i��|�Y����2}�:q���o����h,��ND�;$�R���K�`B�� �'��e�j�m���mZD�x����&�B��VF� �e]#�֦��g��Ƴ��8�m���`p�N~� 0��m�mS�#m:�hK<����<��T��{����1�M�D�ʛje��K���\D1.�U�Ⱥ^�ͯ՛Dҳ>��%��j�@j�z�n�muza��ŧp&-o�͝�j��nê>���r������=�{��'XE[۬��_�5��2�]����l ++���ҽ���)_�cg�.�a/�W^B�z�7� ++M�uw�]K�^0;�CY���ܚsÐʃj4��0v9,\D�A��<��G2��,m"�ML6M%b��Ӝ�8e?7bFZ��A-�B8/�$�E��ЯJ���Ub��� ++�ݮĨ�r�S<�^�VCKd?%FHa���0� "~�.'_�A=c1Kp.�`���!>I��Abz����r���bFD�s� f����@H�(���J9�n�V��Q�e�o�-� ��8����Π:��P3�x�ۄ�o7�I��$-�g��r�N' �Y�@��q���!��)��l�<a��f%�z���88��:>hi�0��F99bK+��y�O�)sHq�k![T=�a�*���q�xRy�}b��y�UN����5���B|z!�<��,��x�V�D]K��pN`�&��(�"��-9��W�x��0�/T����)3�s~��� (ΰ���H��j��������lp�M��Z��x�2��{mܵ�Rqc.�h�)�K�j���7ٜ�0��Vu×#߭N�<�cg���B�PzQ�%4��[(AeQ��b(_b���co�����rΈ_�:�����Q��!X.���o�됟���6f�;�K<E}RQ6�<W�5\�������'6| �ٕ��BWmf(�C������%<�|�V�T�5���S]{������d2p�^�����C�R���T�ݐ�����Bz�d�nr��$j��ۀ���;�Ee�r̋eL�i���D3��,L��}�Ty�⏫oDg���,�I5��4�c�{�C�S��q����(�iN;Y6#ϩ��`��(F�<�N���lnc�Sc�����Sl�!���#���O�:�p6�fS��nTT���~�����[�ױ12�7�l ++a�@��%���uI�Q��D�������x �Q<?��kŧ�diM�2�ט�"lh*�lPq�D��brf4ٸ��db4�@�`�ۏ||+��DX1ܟW��Id�O���_M҇��qJ���+�Llg�P�ueL1�Fg�:���<�M������$���*S\�)[��;x��AmSId(4�����5�>�J����Nة!� pdX\��= ++7���t����?��}�$�����Sĵ�P"����'t_^�fX����^���%���P�����4���L&KY.G�敻�s�s�bseB����1n�B����{R�F�kP�.d���?�M3�US����gD��N����8S�� � ��O9�@u��Q�)9���n��8���٢L�s^ ++����ls!�R���9��f�pj��K�#\Ý�"_ۚcO�rT�4�@B�>�e@�p�L��Cݪ�����ߜ��%@�������n��������z��;��M�h�� �eU��Cm�8Kx.g��i���o���нf���}ik���&>]����-fI�5�lW�J�I�1Uݫ3 �����l��mxt���Ҫ�:I[)ai$u ++�ه6C�3�(g3��Ƭ��@���������֎mx���3O�[�C�ח?AgĈ٤��D�]�S�]B�G�ʯ�Kjf����M�ׄs��t�u�k�c��}Ьe��ʊl�,�xZ|?��QV|�I")~cə����Rw� �g?��-� W����o}�ߕ�hv%p�����Ynз��$�^6���BB�4��{���W;�L�<p��I�ǀ{����S~���-Ҿ���_-m5=��,��?��f������C��SHh�e�UEt�5��~]5b͏���?�m��-�`T����E�B�8����#�7(F);��cG�yb�->�$�G����:�J�� �����hb�jz��.=Rk��?*<����s�d��b�1���ݼB?�3��ƨ�<�Qϊ��堜�5I`���R��;O��ө��_��d���w{s{�5W/���}cn)�܈0߿�lC�R�&b��Q������w�Uq��*���&b}�E=�w�7��,c�zY��XX�F�$>�Y�һ�2��L6���Hh�y�3Yc�N�)E٘=Wd��d�A�=���`��:�y����ݶk8��9 ����>?x�u�&�_�C�����̏�X�\fr��^#��\ur�qt������<(?�xޯ� ++בL�����sT�2gŊl�����hX�hˁ`���9'��YGY�d��FEr�Y؉s���G��O�����2�]\t=̈�~�:��->��LV�J��$�pť��?.Q�>5Y��F]�}���4{�i�A�6g�?���ˢ�&;J�yzԇ�_i2���cx�>�о�PL�Γ ���&�3Z�2�?]���k\x�JA����12�!{b���xz�^�����:�c�f7<�m���k�ҳR�,0���Б��=N�)j��,o$ϝI��b\ �F��T��&���L�N�f��}<��`͋��&~՜�c�0]���H6)ӭ��Y�iuP���`a�:^=��Q��۸}w�6a��i��ߟq�1�P�}�>M@�v�x�@�ǣH�@� ++�����JT��� s��?G,��?�p�.X�we�+u챆�@���yfk��[��^��r��'�Ы. ++eE_Dq�)�.�Z��ׄ�z�yK��>��ᇝ:��(��vA�~i���Ckkx��գ� GQ�J��SG��>Ld����i$�Op��1�}����AWV�0���{p��s|�K�D�'�q�o����ċD8\;����>z*ė�{BQכx���zF���6g�J .���H�1d��Ȉ��~%]����_�H�dz� �#�&O�Uhz�ݴ��<�h�$d��Л��"�X����0�o��_;�X\�t�����>Z�τ=��5Q>:����#X]#4&w��,�Dqh��}�&rş� ++dB��x�t�E!Es�k��J���\�'ih���\��uӠ�LJ��6L�w����� 3 w@�I#g����D.v[�շ���/o�eWg��8I����&�zX��`�N�荖ж�wL!:�'l'QC�\�6�a���j���|��]���H� �\�,*5'�YX��k',�\�d�~.�̠�@�������� (����w��I �a�E��aD�.,v�b��²0ɗ+\����\��պ��^#GJ���}���C�^<�8�Z���ɟK��\E&`���mr��'����.&Iy�F�;�>��e��<��_�ǞZ���Wń0\��f�E�%���+�C7�%�����c%������Z ++iA��\,x�-ːV�ѓ-a�\�n���K,SZ��=&�u.z ��@��$�3,L�6����O�]>G���7dv4�Άv���(в��[B]W���2�{8M��z44xdaI�RNU�:�f�0܁ǧ˷��,�6/�rl��K9o� z�{����Y�d�^�#��{��"��^�����%�ߗ���7�sI0y#�;�5�����:�ܼ��r��� ����#'�e��T_c����rK!��1'���̮ �!z�|3����3��_{_���64���X#��r.��X��D���C�.��w��ھ�����e���;�.���4�-;m��2�y1V���Y�d�r�����m�*+̆C����?d��-ά�=پ�9��6[Nmӗ���ÉqW;k�x�J����JmL)֊]��ͪ�qK��=�����OJ�oNg��7���k_�Cy]7��E��mS ++�{iJ@k����nIy0����6C?�O0��Z;j�Y�7O�Q�ߎ�� ٮO�:��5f%]�7�(����w�2������YU(b���R+C ++�#��/E!,�=*K����c)���#Âդ���k�Z�V"�����l��L��/�й� ++W�Ų/��bI�H$I�D�9��zZBQ���kyK08�}��\g)Nޭ��LS��V�$�g�]��vTJ#�F���˧J���4uoSӦȘ��<CG���"���6S�}Θ��J��??��x���t���/��Q�rgY,>�4nʱ�h]�n�&0�7�ᨚ���I���<�#��K ++�?���w%�팹XS�Yo�@�2椗y,�-�6��YtL��p��ɩ�k��o^|��qFxGq@ډ��f�r�5\������@S �җ����t�!ެ����cӓ���ŗ� ��[�gE���a\T�8�W��(�+��;�OO����jJ���v�F%aP���z�mw�x]ʄ�@,֞���>}�#,r#j�4X;��j.;�k�f��җ(?�6�|\<{`wl�q �U}�|c|s ���Ǧ�� �0���h��9 $�����"|�8w�4����uSeg=Z�A�J_�%��1OLdN��� Mļd�Z�gƓ,�ؓ�h�cA�\�뻒���BKy~����̧�~�$��%\Er�v8��ٻk��\���nY,�?lj#_φ�d�H}@�KC0����>A }���w�16��1tY�B'�^<�%s���`"��3<b*�� ++&�����C0C$:J8M ��z"A�5����c���%����>B�"��0gRw��+�#�fs�V}����q5z=��_8&�a{�糦���" P$#r#�Pl<�;v͓��ee� �e�� ��ߞ;f`�"Iτ�ntϡ{��4R��,]=�ò��#�f`����%�zjNbz�u������d;~X;> ��oC��i�[xZ/��~�ۊS(=�f��J�cO�C�e쁔�`��Q�@��o!5al��<�?Q�lِ�Z;�m,�N�-���D�[-�0]wb�*�~�,�ܝ��Nj�yh3L�_� G{�"���fE���(g���0���Q��ݼ{���j�[?�~ l9��(��O��+��g��U�֝� ̞�w�X�Ws_t�}�H0��yNq~�<oo�v�pV�<�Û�%-c��<_�!�����N�0���d�� ��泭A���g�Ƶ�1�������ӟ�8%$X�?q�!B� �Ռm��1��N���ڴ�D� x���; �P�=o̪3$C^�Y����]<L��Y��V��fg�']2�&��z����J�\�㲸��Ԛ+`a��n�U� "�|���d2x�:�1`;�0]9aWS�x�[��MW�۪$l�|j^�̜��!��9e��Q��`������< �/��Z��^'h��,��9ԙ��Zi_{�_(��ɿ.e3��@��%�27VIO\�5���B�90j��c���K?�����X�Y�a]�T�J��1PV�KX�r��`���}ꪕC�a���Z.�fi:Ӓ���A�����{���4kGP��O�\����3D_��3e�%'��T�*=��b�Yd%Mm ++�E�r\��w�*�=!�@�����R�X�����"�� ��:��Kw�P�Hft ٴ!�K��yl�N�l�w�d��T7��xp�P�0��a@� ��Mm������3�m�_Vfz/"�:4.�25��,h�� ++O���?���e�f�҇��mFn���x����nP�`'���fY`��y�~\��^���2���������_�s�L��M�5�4~۞�1S��W,�_ ��0��p�p��-�N���!R�mٹj�R˭ ++��U�c�G��[��tc�l@0�����%��N2:�l�����vv����C���K�e��<;�q�n�y���vx��{��m_��~��+0�s�yH�y=c��w��I-8�*'q��[{���ޑ+W���&(�Ifܵu�/��.�iC�D�t�&��@����ek.�T�(��!m�ϹY}79�h�=�c�~R���� X<mT�dӀ"��>�)�.�A�O^��Z, ��sڌ� feB�/�m���kS�q�D{���fɤ4���<n������n��Y�̾�x �k�‹]|���\��Nf�{2`3�p��V��hf�n��d��XC( �3b5���@1)�<������ �}����2L��A�W��sG���6>a ��]u�x�cB�&b�9>�[<�����1�_uhx� ��Җ�KϷ�U�ӕ��U B&F��a��D�W�,��V�9���$�Lx��Ogl�Ҽ�T�I,��ʢ6�I_�I&��RVZ�I�� �dR� ++ ++�N۽�k���|�LL��U�W��d�S,H���-<���ߦ�Z� ++#�h��|�/�������0�?�R�K��O�����Y#僸��a�U����#���1��Yf��?�v(����`NuqVP�{"�|���=znH_�>v�E��Ԝ���8��0c��Pv����<0#���f��4+�T8��P������=�i��ȉ2�x������ےd�Rƕ��5y�/vt�&+����� ^������o��x��һ��O��}�X�@ ++zy,C$�b�b�����y�\<�/�� N����i��Ƅ�a0�^<0*���ܷk^$�lC��Jr}��$��c,e�YΤ\�p�|�����t(���B�'<m�n�iS'#7�y`珏�N+�9�Nc��-����3��<��}ӔLٷ�˚��d�b!'~��9���S�N�B9��;A��uP,/�_�5�2Q�;Zf�Z��c� ��-��^�1�-w̳Ɣ����O9-�����%t7��5,�1��U�~��҅Fd�;SK9I��r ꯉ�\`�͗Z��ŵ�U��{ s)R1t$���:����['���,AS}������ę{��Qq�n�,~z��e~��1���y!�m`}<_����J�7d�����/"���r��b���X�ȸ��eЮ�_W�>g6�.8^K��V����'6�q(���d�����^�� ++�(��¾������V>Hbv^T�Wrlٟso0���r��L�D��$�X�$�ȴ'�__�9���~�8*�0B���̸�f��8��k��8�w���Ø�����W�ED�1�����鞕�p��v}Z�Z��lC�'K��{C�mU��-W��f��yV���G��Cz?���kkW{º���}��w���4�0���!N+^���>��|EZ��C��qہ��Od%"�l�da�ͪ�����o<��ڸXw�������FX�b�{���~L��P��â��/P��vٞ[}ÆV������.�����:*FJF90#�V���N؉l�%�����A�V[�ap�_] x�x��N�ƹ��%�Z��B5�Јޙ��`\�4��i���3ks틙�t�^����ְ��8荻Y!�v���f�S�\ �,�;��i`?W�i���3���_�3�j�4nª%�����;�Ĺ�`���hL ++��I�bR�֠�5�Ө'� �CV�D{��E [ܦ�y ++��D����l��������@�K"�͇*c��F��FQ'v&�Z��a��6�t�O���̞+�&�}}�SrE_�}݄oM�ae��c�eG��B��}Y���2Ր&Rn�eJ�8x���%B8rE�?��iu��Ti~p[L`C( ����}�c?�%��V(������Y��'�!�C������%L�d~�f_CT�c����G����>�ۉ"Z�0ĥ�m�C�8S �g ++x�� �~���T'�4Y�t��A q �����)�d 2�vfK�ZF�?0P$q^��*U���s 1اV/,&�eQ ��p�_Q�1k=��q����4���N^�T�1 ڢ�e���p�����3x���"�=�o�xf�ҢAStB,�u0ED$1}�ڞ]���UˏGzHd��EFg��s�絉�t<�YpC�P��_{�X�~�1!ͦ ++�$8��_'�O�Α=K��E�$�/��֣�7��`���<�u~��%J� �Z��t��A�p�>�tC���e�.0��+�.��#0���e,���~9�4�w�}��9.��wX}��~�PC��˿����!�_&�Չ_P�t�;�S�����J�~ߓ���)�h��F���E��w$�=xb�_����/� ʱ�?����x�[�����c��Hv���2���l���e�Η}?�����+�/H��}�FP&����п�u�(F*�_:s"��|4����b�,����|�m� ++�YN���Q~�~!I�k[����wQ��I���E��u�E>��� ++zԿ����}��>��K����o���� ��բ5 ��t}�g�OK.s���'N�q��̲��,Ɗ9zZ�$q�i��)��Ꮾ��w���?C>���䊜+?]�A�g̻�?c��3�{�3*%�0��(�rG��?O�!��F�?�ƈ ��hS϶5��K�,�7�?,�72%PGs�� ��3ڋ3�f��P����|���#����Rs���I��ygElM0a|B7�:4}��(�0��;m�=n��F��߈Wk�0���i�QRu�ITzŵ�l{�W��.Vw��~�Mj��o� 60�Zr�1��q�w1h1�-�����vh2�5 ^������3r�x�acN�:�.� oͤ@D��n�1�T�Dj�e8���蒫�iG���I�囻�,����Qx����K�V ̩�����,����6��?Ё!��Z���t����V���\�M넍XDW��uy��#U�/�S���R�T��f}(~ɍ��euw��X�#���h2[�N�ik[Z������waR{)TR�����v���k�������o�����9���g1G�D ++S�&����?z5�L��J+L���?���vs�?ڋO�=�X��`�����t��1n���q �мs��Z^�"k>u4��k|��fޕ����6px��y�"��OdG�sG�u�ڎ�=�5?� 3o_]�YP�ے -V�������I�N>:l��̛���� ++8pOY���2��/�ν$� ��<�o���qy��� ��Z���8�b���o�?&f|�o��w;��_���-J��j�'�N�-i��+��1ǚ�upC�z`#�ˠ���G�,�Wt�����53���r"�S#�o����-s��/�p�<{�<�iKm8$3�!Ky��f��OZ��T=\@<.�UA0 �;�y�Lb <�k�E����+IS[Q>9����A͖o`�K�/۟Y�?젅�-X�d�/dT�Հ��3���ڧy�;��>L0k��a�/�R���j��A��`�=��Vt�.�����Z��lݾ�\�*8{U���w���@������s��b-�g��z]���p���_��U��F�� ��o1���cOr�i�Z/��ڰ��(6�`�>2Z�K�X ++S���pU�We)���<�M/E�\~.*���Y�[Js�����W�_Aa_�S����4����h6����pOB&ʏn�����L��Y����W��R�z���[�ZL�g܀Aےw�(��"BԦ���)ޞ�|ѿ�Bk�짙g`Q�.J[����=u�lMW���m ]���,�-M�B���~�Szw�6<����Nj��)�\��FL/��%���Xv�q=�Sؽ��,�j ++wL*Sn�jg�7�5Qx�avݚOb[(�Zp0��p��J��#��=���iR3(��q��P��i�\ᓎ� ?�m"�j����� ���fyF���@mjȁ*U��������u��!!@˛�e����!`m��줛�����Y�/���M =���4�P�ʰ���c��=9~��=YμI����F@qTh�խ���|��beN�����U��x���� /���&Ґe+�J֍Z�`���c�#D�~�"F�?�����P��"�X�'�A��T7Ee��{}� ++R3������N3�e+�1��X��;"�Sv\E�2 �UA�Dk��2�kQ-���"�,��G9g�j 6���6v��'�R��в����,��E@�_z,��������su���̋A0�핣�c0��&3(�LӀsL�%���;�G~|u�H���2f�\�D6����Q���t'e��EM��94�>��/��x���>O�q{����ڝv�s�q�xk��{�������9��Շ�u�4~z}|g> ++�$�v�颐�c��CTZY�l �����7��W]�vk]�s< i�p梕�~����{X�\2%�a�<�[j�hL��%�OG~��7�f� 3<0Lߩ�"n���@��Z��ɳ]qy; �9 3�T��j�a���a�I���m��7$�X#��!~<i����\���wClNdZm�28������O� �"Ү�+`O�%ƶ�]ÛQ��<Fj'�뫂�c���5��].������~��K�+� ��#�1(�����=��ȯ�2��ɑ�u��I3k�P�4�'�^'�sg���� ++�Qk�h:��y�=�G���`I�ӲѰ��Sj��|��!�`{�5ǫ�D�RU��)�S�s�h,[��z�����.D�{_x}�;�s��dl~POV}) }��]�o�ךb���Pg��?���3j��]/��roLk[,���l3TIVN���}���]�U�W �`f��P1�G������-i�&M�6l�����*߅�g"����a%�uc�6c��-�}�{�X~m�^ ip �U�G����C�{�(�%����y�C��W�(S�}�|0Z{�����֜�&,�0���*c�46 ѻ�����&��$Z�}�ކ���0�B`��A��~T2�އ�ou�v@v�,�]�:��R��ooȒ�T`��l �E�<�oOB��ߣ��1�I�4�����"#N9T�Ȼm��:5�J�#芷g�[O��g��n�o͗�i��c�&7^��S �EWsѵ32�W�Q��k_N�6��7��}�R;�L&�=�_t�}��q���-^�xøk�pi�0w(��16z�-�]�Jjc�N���{*V� O����Ar�Dl��Y�Oh�!gʣ���|��cq��+��;A���3���;^:�~κ5�Kj�d�A>��yF0 ��VzBՊ��{���8�=�H��/�Yр I�J`��7����y�����|�7�~��f`���b��vآ��Nd |#5�� ���J���2߃�i����9���^x%�m���3m��Ƕb���&�� w������z��1�v��;V��cP��5W��M������p~�U��>���x&<B;��N���sd}B\�e�kO=�n�L�1i� ��L�>�� [�/p�Ϛ�E�J����ϟ@�t��|��|��n�S�y�f��Bs������:�Yl+'��>h}�ʓ h0���P{�_����5 [�@���G��OuAEh��\⩷���l�Ⱥ�J#̭���uC ++ϚhC%j �_���04��T��T�$�1�ω��>i�yB�}@t �QF��l��1jC۷�`n���O�lHq�?�q}��� �k�5"L-��!�d�W�CM+��}(�m�y��C>������RG�,�8]�w!M�c��+��|��5��ɤ-���d{U�eC�Di�b�͞���P5\k]�Vq{�46���GwyB/�K K��s���L����7tp�z:���(C�wL�����D�J� ���c��:��!c��E|.,\a���*���)-��}CC��T�X�� ���Ad���;#��� .������q\h{&t6Փ&�����w��[�Em"C.�,��I�1`�HeX��a��r�[�Ԃ��9Ƭ�>�mp�'��m���H�ķ�ɐs�����]oA&i��]�J�q��}|����!��qj9~精�6(�s��W7|c����6�h���h��難WW4�]��/�}Dڠ`�By�VcM��3tօX�Lsfn^���I�53��뱅r��<sA�����D6�v%��u�8nV�[}/*)Y�l��#��7P������{�)# ++|� ++I�����|�0�oϘ�k^�ю/�H��f���\�7E-3�!�ŵ!�p 1h�3�k�k�i���& ++��ᙥ��������R�Hā�AVv�#�D`j�ǂ�y���N�ǰ���@�?�YU����S�]^!|�q������'����[鶲4T��n�Uwl(���!������i �d#c'0�AQv^IA���l=��B#��=��ֱ�.���_������_��@��)�ٝN�I���mW������p�=ϐ�"*�އoZ�aX��6oɓ~ �+���ċw��03K~� ��u�d�A��+�D��hp����w�A[��wL ++ulk؎�Y���j����ѷP`y��dL?ɇKn�L�'YB��#��p���k���˼��tf����G�N푆2em�Mi��ή�MIq��f$gB��BhRO�1���2�I3NfA䙆��Z�S�{�Vع|�����y����H�����mm�00�����/̯����������8�E[����1$��W�g������5l��ه��?l��#��RD<,��r�i1;�qe�O���K��@�{��bh/��P>bL����K��b������1����ׄ^f�:�g�����gM�<�����V�.)�=� ++;Xl�Yi���+ �/�X0����/��<D��$���l_�4�Ũ�l������^ˈ��j�D�g�tH s`O����(�O_b�u�m��z�;���R3h��-�f�_�C&�'��7@�����.�_��~�c��C=�r�7��l��ݎ0�cȚ����@8z�zk�>7��D��1{��G$�v�/47o�n*���eޚ]Eur�����}�9��BK�*�����5hصCǂ������m!�ؔZ�� x�ۛ4�Ԋ��âm,���f�1Bي��ae��i<�1���J?� �5�lKM���o�I�w ~��g�=�L���V���Cvd@jz��yZ��O�w&F��f(3C���~�����&,w�(�����DcVQL ����;ے�����M8�;��<�I�RN~���R]�����Ћ��l�(2�a��W����[QI[l �br�!!N����i���5X�D�ə��x>���/��i�ۘ鎌X��*G�}U��Ɓ9S5�C�-oy��rw�T=��(�vjϦ�gޝo�l�~.J���N�x�D���_�c��+c��� ++�$�����W�]g�w$d�|�d�4#�&�����P����Uқg�z�[��/�_�����=�q���*�H�[ۍ���a\fX�����"������jWQ�k�������c6���<�E��]�VK��������9��ށg<Y�v��F�Lf��W�]���7+��LM'�f���&� cB��a�C�缥7uy ������Ժ�/�s��`�O>��sy��3d��b�]��ɵ��L��wk���f!�z��R��(Q�#/�M��j���%�>���>��� ����u�M��c�tN�UX ++s�S�:^������[Q1���fA/�ޟ�Y�k�i�p�2f�o��n/���T�@���U��~����"h��@�Y�EO!=��͢.��c�!L�P�yT��vL��ʌW��xu71:���8�2�؊sU��x��``��gb����׃�����+�g���G��`4��$���tJ�/״��?�9ځ��#��e�/�� �&��˖�gs�m����1� ��M�m�KCRX�d�A���i/3J���������з5�f��m2tϰ�Ͳ�X���@����FMj0f�#�8k&�h��1�A0J�omæ ���� =�����#?g\G�������7(*@�v����4be�D6��os=�-�+�i�ُ������ߖ ���_����q�H�L48k���������N]Z�H�KIh��*�J�8J ++�ή�x��o���r'������"ܴև�șm_���vѴ�ʿ�>�l����q�s2���o�; ���0��>��w��,ǘ�@ZBw3Cu8��%����������"?�=���[����~�a��Q��1;��'V��N#�>�\,͏m��-?�]&%Rs�����c���II���L�]aS�cG��+�Q��S��ANl�g!s�:6v��RW 2�]mZ.����$������a��f�>i1ޭ������OV�@KM�r�'���V@C��V���H�#(a[Ǔv��!��J�VHȲ#�L]A�����a�M,U:����¦Z�;Sb�P����N�]�'�'��-#�����y�������m9�E��MJ}���ٚ��7�l��I��_%Xu,�O�8�����u�����Z���h+��üT��6����SC�eSk�ѕ5���n#�i�?��כDyFI� ��H�":��p�T�f����Z�<���D �U�3�j��x�g"���o�G"�gƫTĘ��on���'�Kb��G־p/��'�P��ET�p@�z�k5b�h����̣�pp3�C�P8g�eʑϹ��-��*e|ZG��h@��W�q��5����i�~b֥�B�=�o��e�|�\�pk�ힹg�H������5�b��?���ߡ"�s��Q�V)TM��NmUY���Q��;C<�Fe�qOC2�x��Qq�e1��R��t�~�?�߄����G���p�W���H�����fĨ��i�{{s����4d� $t���A��g;ڭ"�����E��~�E��J�?\�xg.(��;��8��$��x�6p�"���u��3b8�@.�Ε#��e���������' ury%��U�SM@�w� i V�J�����W�o-?[�<Lyk���נ���i:#t+��c�^��Z���5� vDc��1�|BvĬ��ڞ�j�e"� hp.`�ҵ������ ++D�<0>�1�sF�z��L�s7,,zN���B�aQ4��:�2��U�qE�̪���e�O��2n92S�1b�A<-�b��ҿ ������\WK�����<YlkW<������c�ᜰ{�~V۽�p]0��P�f{� ���I�=9�Z�%AIJ(������/2���[�S[����Ŷ,m��zC<Ub�՟��+]H�'W����z��\^P���Ť������؞ �Б�kD렭�eh�>��xx�/��;�������Vڳ��Z�N�O�>/��ԥ&65��)]�>���1���1ॎv�pd�Б�B��ƥF�r�30�=�7̓BlI�I�k���%4sC��d>711)��\���n5��;�;A��;�D[�=c��Vp��C����x P��!K�_����|n ��/�Pp(��y�L9z���{�^��u�m!-I_��>�ȧ���^��? ���v���>v�� �m �+V��wa˂�����f��6t�D��k�/�b�1}S�����a���щ'��U�Ͻ��֧�2��=�{[}:/0�$ͳ�M��;B����<@C"a�|�'�LYu��y�3���'�S���pgJ���颮Ѧ���T���{Dx��b�]��'��(Q��Źi�>�f���4�X�ևH���\�|�\mW-��%�0��oΓ�����2�V���̪��G�����cL{-o��<_S��� ++K��aw���9w���D�dN��r�D�����̙�w���pÜ�i*QL[H���d�vq �����!QqD��j��Sڭ5���B钹/? ++����xA"����ȯ��U$bc֛.#T���Ǻ}�ԆI����pU�q�^�~;/�?�(�6�a�L������(��)��cGQ��2������p�û���)W^D�R�Y�"9�6�YkYg�iͬ�|z89�<j�\���u"lV@���lज�����A������@Qv���C�+��bW���-[a��&_9�YX��=�$z �t^�F�kus�q�+*�@��@v�r�f3qR�p����b�g������*X�Ի�ׂ�蟷�3�B���3�q��U42��S���Ց���$!T] �ޥ�1���N�`�Y=�K�E`DV�CW��yMxUqa)y��(r��unn�Ml�6k��ˑ �����I+���;�Y��p�m7F�8��0���&D�6`���R7��u����D�����5�Gw��a��̩�%�zB��}�!�u�,�� pe|Ӻ�*Z�6za��"�"-B�P���6!]hŻ�hINAH�mrUl��"�S���5� �T=r]�1m��4K3a�F��춵L_���T,h�^)$�}�_�͕��=�(l/`���>�w6Z�������R�a}h�i���O�l�Bl�a ���%�^ٺ�M��Z�@����7�Y~O�kq/ii��;�vzJ$��Q����U�m��m����WR�Z[g�l�~�5�����v֎�}^to?�cGN`����f���*O�ʔ���U`��������]{�Ԟ/��s�l�[�x5Q�TI>~s~7?���4��11�2',����� !����h�&����6�y��l����)�a',|��/�I:Z�?�Ǐ!���=�.�GX��(;�KE���: ++�#�4��77�����d1İ'v� ��y������J �|��O�-�������_\#��������fN����S�ˋ#���lk[k!�?~⠙���v7?k/T��\5 LK�*�|g�ݳ�H���O}�t?0���@��",�$D�;4�LJ�K �.:5�P�ن�~�_��䈢�D� �q�����-^�؈���'f�=;���e�_DX��冬U'#�� V�V�{�[�M��˙C��.�_�&�gS��ր��g`��.�. ��{~��9�܇x��'��ys��L0b�=���U�t�>�й�Xv����������W%Hvt(5�� ++��#�a�^����w:ϛ�eJ[x�.��7؝�9�v v{�/Ǚ�O�����?g��<o�7ٷ�:�t'`�ޖ�z��~Y���'�Q�g�7���iy�;O���d�өu�B&7x����v�&Φ������Jij��H��/ϨN�`U|/?�I}��w!�:�*<a��H��v��FOZͶz(��6A�vO�ehV���md�7�Z����<b�`,%��28��ݏ��`�{.ia����b��̯�n�A��`Ǘ��X����ƀy��O�Ͱ˭�֨QcXpfV���}���JwÛ ++��6��8d�]�}~@�U$�%o�5_1}]�D�m~�JK�U'�2`�X��e~��p�O8�?3���ci%]|���F {�$G�{���U�(f�V$����Q���ϊ3X�):n�y�i;���4��˞�R�m����h�Wd�#�R��d�v>��XcT��i�NJІL���,#�I&���_K5p�2B�+��Bҿ�n��N����� ++�K�Z��`SP�R�AU�cAͬso�yM�u�6�ŌMecƩ�&9�����iӚ��7���*�\�Ϛ������0K�m��f���g�J�.I��K_/���m���NR��&5�Сָ(�ŕ�$�� ��kػW�� �A�T[�XD+?�L%�^<�wӼ���j�#l���_�w5e^���u�fM)�h�����}SR=�Z�t.I�9#u��>�e�&�5�s��5/_cZ��C:�i{N�lJ�$�Ź%��_�� ��G�x��ņ!��l��6����p�O]/��;%8&mg_ic۟�3'���(5>m��<�W�7c ����o�� _���;=�m�Df�Ը"�� �f�/cӎs�J���|�X����a9dLu�?k��S��S5�������C�nk1̰�2��jՂ�韩�Ճ��nwכ����l���O����m���!�19��$V�:I�f����=�W����i]�_V6:k����'��QA�O�-%N�^��2(�b~�l���`' ++5Z4s�,% F�K�k�4Uχ�V{�/ui�x��hS�6 �*�ٷ���5��럤-P�&�=�K��*���>`�������:��C���1D���$��ZI��Y��k!�>���sv�3����*J �j�l� �x�A�؛N���'����Gs�ѱD�nyF���|�E���Q'\���L���h%_�j�w.��td=XN⑵`��܄�?�:H<[���QWq?� ++R(+��M;A�|+1Wj]�P$�8t߳��7�(����4�MÅ�{k�An_�Jw��<�KM36��CAwO#�}�6'��6�3�^�Q)�r��,�u(��W��4�f�*> ә�d��� spj�H��}�OHt�2����@m�q�����TI����$�W۸vM��h~�k�KLg�l�]�����8�Ȇ^}U�ǁ���L�h�Es�����-]����?�{flo�������~+s-� ++������/�r�gn�ԺK��쎐��ڃ���c���'�͖� ++z�������{z�� � k�`��m�b���q��3�Lu>@�������q�Jp�%���*L��"��Dײ�(ۏ$���!3���ܕ��@y��z����M�x�v�E�*���El��sUm�����3Q��R2���'��Y2N���u��:L�YmӢ1%9#�U�p�ŀ�PSCf�6������e���_d����8���/����mD��-���9Z��]��������D��+�9���̾���w��?��Yr6 3^b�IWx�Z-o4� �PE��OX ++��A5�ѝ������/��}=��������"�~�\h#xZ�Pg`1*g�����}{E�����(X�'A��0]�;X��_� ����_��/L���UiZv4fxZ4]���z����Nq8������+f�D4 �5J�j� T��Xw��Ni��`�T�gk�v3�2ZFl�k#.��gӣ��ԧ�ɛ!"�#R4U|w�ާ�������*b�'9����}ޖ��%0�V�?X]��Paṻ:q_�d����%�jqb��z_��.��m�� ߟ��ji������}��OЋ�Z����FWFͮ��ϨR�l�^|+4c3f����ak3����>Hg��qH`�[*�|]�w��̱�xD�[34U�:�Uu�s���R��S\�r ��h�,�wv��Y�X���P�;e<���Bw��U?P���WEǡ=��K�%��n�-#8���S�-��k����֜i��5�U[�ږ��j��J����%/<Z�!C� ���\��xuV=݈o�Z��jh�4����)uOȆ�Ũg�ڦ���u�P\��&��{\*Y{-�`+� Sba.ٺ=x{���GԌ<d0�+�(��e��$Mz��1R�̜�ʋՋL��?L������$��F��x�*���[�A����-�{\"/��·H�р�$���ŷ\��t��\�j*u���䜰ڤ�2Z��9�X.�־��ܜ�,'->����lt��69�7ǖw������uy3�p���6��HkY��l�= �z�uWs(o��X~L�?U�7�/2� b�����hU^Ў�*f���3��6P��/�"pO/h���c���ԓּ��ʂm�h��8ů��i�X4��om�ςL�w'���Ѕ�o��QR�"�glC��Ã*�H�*��Eo�v�LX�R�WT��u^b;�]��2��9'��<A\�����%���;���]>,�(ҫ�T�H��t�5H����fi,u��u��F�W@�ݘ=���14*��k愫OC�N�)s�1�B��줨:C����%�� ++V���f�ٍ�W�w[���ōX��^�e�����o�p��k6#h\�����f,��XA�T�,КW{�c�a��i�}�i`o�9�ە���/pʂY�����|'��U��D�r������5ط��m�����19O���q�}|Y-��nXX%y����s�%������ ++~��C���Ζ}&�Ǽl����}oa>Ui�a��c�i�pbz�#����ǫ鷦T�b#}�N�������5ll:���a&x�-�7�w1l~�����5�q����2(�s�����,��O ��o����9�5��� �\�@6!�ާ1 ��}���"N����/rA���~�m�?%d��I���-(�Ԩ�.w�O��=O��4a�y�����ĺwIX⁞�R���*�&�+ ++��T=�Q�e��u����8Ä�-�Wk�����ܡ17���I����e�,��5]]�$8� �Q�y��[��Ă��9슼��~�m=�}u���W>㞈�RG�����c1�ߞ���0@۴�#vO���y�@��'KK�+֦�����E���V��I��ͫ�j����'L���Ú����u vv|n�+�@�3�Hm@ے���ǐu7�cB�>0�&Ħ�FDž~��'��a��,�������mO���B��Ȼ�@Dp�BX�#��Z������� VD��C�f��Qj�Y�B>����"���Ba���AF_4��z�1�����A�K�<b�+���=���ρ�>�����2d���`��H�k8R�9���~U%�6��?�j�~l���o�t1+�I��VwO��W��a)䙽١��9Fj��=�9Kj����ڶ vz�����Y&��C��G��W�$�;P�#����%�����V�N]���h�[AJ�c���Ik�[���֜�-��SҊ�2!2�M[��=���j���8���ԕ�� X ++�U-����?�ꊼ��h�)�?�sr��9���*�������A��������']�%O���͖���!�R?�J��o��cpAN��@:,NgWk�J˿�ޮ5y��`^"�!k�N��D=F�)ڪE'l_��T���;�%![��ۗ��p�����d���`���4t�8�1��C��Z{�r�q� �¡�end|�o���vy�1Ԗ(�oiL���5 N ++3G���ly����J1��OnI}U����X�j�(���~ ��;$�a�Jo>\���/��y����ի�k���5��b�OW����ם��:����U�*C��g~�PK��Ogh��Z�����4<j�a ++�k�m��ŋ$�m)hmn��7�]VO[:e�7�24�r}ـ��bN"1őcJ���%��Z�'.ߗ̬Z���73z�/X4�������*�ʏĊ��ʐ��R�_-��2�kęѕ��M�m�����I��©Op����5����F�w�9ĭ@:��\��.�dj�X�7jcY����cym"r�IpH�Q�>��Z��L�w8şq{��mL�����h�������Ѕ ++_@���7&-h��&�2�Wj��U;ĉF��u�N�wұ��"P@�m���~�B��~&��]���H�U�k����f�(�Ru�@�|�Z"��D0�2���p�wcB?}���]Z��~�oEә=���5tB�v�y����u���m@إ��HZs���4&��h�������JNۺ�d��5g9%9�iWx�dв�n�E�/U�t{0:�혰�\m�H��Ծ�q���g����-�!L4z�@!��ָ�=�_ <�bM�4�� ++�!�8DL�v>�m����J�̼��?�k��\L庴���H�6���X�)"Q�zl�*�.�$b�$�<н��/1��py��R�P}�3��2�������5�Ӿ��;���QUZ�_ ++�sC.` ++��{��?4,���Фcl�ԫ��HA��UxG$��*Q->��֗���A���M�(gDR�/^C6�k<!�C��m��㧩��2��O��3��Q���*�1��{`N���?�����L�>��e�T��z������D�yw4\}�Kg��+ӿ����Il�IB���b�\�_(_3�ʁ7S��#�i�݁�zPѣıi:��r���*g9MLGG��e+��K��*��g�\�b��i�Ht�ޝ�������^B����P��������|�`���I����0 F��S'`g1��w�g��eG�q7b�W��}h*�(2�`��NU�ZD�E�7��� h���֏w{�!�h�dHUO0���PC�"qk�A�i%l�6B�2� O����G�2�NOuۑ�b|�ɞڑ?Kk��Ii����fTHu�a���#C�,� f�sS$�L�뫧��B{kN�� �K{69�sOAX��f���qAE�2�rw�P�6�G�%t��q���n�B:�2��-����z��w>�J����y���v�}���uB`ҍ�$`1��7���U�������e��64]�P�o�hE�� 8�Q�`Vwqʏ�2��l&V73���H+�D��:~�]��x<�WmS�Кj��b�U^Ej_}�X�ĺ� ++:�4'��8�gHM�b��3�����ܞ��i��ِ�� ���1jP����J�U���FxQh��ީ�������֧���L����g�Z"�.JA�G)&�k~ǺA�7&�l3���S�?�տfo�0+jJ♱L�=�di�)i�r&̥ȞM4�!����5���E�s�Q�Ay����,˲8%�����Da�}�o�q���Vε<�����e�ܿ��f�`�&��q*���Ÿ��8s,s��={��W�K�GB�|ҀSF������Q ++r}����/O��ٿ>� v�%Wv��5�tQ���Wܐ�2L9�������&?}��Idy@�O��jx���a�@���m��n�)J='��U�Q'��м�*��J��PIf)'�0a�.�i��.J\-�FA]�[�Ycd9�ip�9"�%��)C�e��C��>,�����W�3'I��B�z���( �w�%�����a-�MO[Ĭ�UR�������ҙ@��Cf~�X��XE}�Pj�S���"_�g��)S�Gg�R�rs��oRݱX��� ��+)�����Z���p�8�!�~E�8A�D���* h�G�3�<{ntDZ;��a�K��ڠ�,2�,��0\D�'`Xթ�.2��.<�����`s���CP(9�[�a���bu���b����Љ�G�2X��!�"��k�a����z���(3�W���Ӿ���\�ny�!A�鹘ڙ7+�����Vd.�q^N����d�&4s���E�z� �������W��5�]ZU�=N�}���z�w�C\1��*��\5#(��0���&���U �V��W�Z���e������a*�6^�!DIzB��Z*�6���'��p�8�U��E�;1�(�W[e�ݙ��FN�Fߙ����{}I���UKRڵ5�c�M?�^��v�U�{$�ɣ�A������<���s��EF��鍄��\��:P_�{qc��7@�оf0���.�[�2ÍU���pbN�������ߖ!G�L�Du�G��J� ++;~�aPD�|�0� ++�N����}�G�|�LH][�O��-��G�^��`���]I��bxLOdvI,0�ju{�8�|��C@h1eLgW�/���Z><J"�Y"��l���?��lJ ��� ,�9�i�H�'� Y��p��g�z+1J��w!(�W�s��~X���֎�@��0}��@�+)� du��2���LE�������k)���ENj�|�)/��h�&�AO<>��%�->Y�7e k�����m�LX[���+[�m�ch��Z]��{�z�0(�?l醩��D�07��s��;��4��]@O\�p��@��s'VE�&�UC�K"�@Dq2�H ��1��b,Y���٩�S<I�qj��7H�6i9띈�o��H�t?4�Q ++GbT��T�۴����ǰ����X�B�k��]���*�T|n�C��i��� (�$h���i4c�9r]5��ܨ�ͳ��@b�go�~�u��p�I��+I8����P2#ix�KN��s{9��vN��3��n�r�4��6�_�Ew���6�(j��ϧ��)3٧��(��Q�UW�viM���Nb���) ��J:�� ++�R��e��N\hg>Uz���)�!2���!;xt�}py��`��>FK�F�����|��m,*��H�s����6�����Gd��^8��W��W�Y�^�U���|���ܷ��Ԁ����{",�m߉��յ�#TE�|̆ϏqX����y( [����N9����W�qzY�����/�����12��c�i)QF�[�B>��=Ӌwp��NJ�!���=y��A�gRL#�b-��!`�қ�>�O@6���ؼ��T���)����DT9qϒ���I�L�O/"��bE�p���~?�ܔ�&@�N��cr���<u7��&.6�z��Y� .1�+m�l���m��i�[ a�W�ɗ,M�I+s`Ϫ�p�p�NS�Xtg� �&���k`(���c��O������I �_��)�>�2O�"T���#�s=t?/�x&�M��6?�Xsg����^u�T���q��p�"K��[��TF!����)��A��V��[���^��ϐ�>��:q@2yg����Ú��%�υɛtߋr2��-r5e��û9�d7P\f����D�|���-�Rz��{f�b�<5y�� ++^�Vz�y��� �.C�^'v�2����[�Z��D� ++�!8,P7О�c����~��VD�U+�?�3��,ø���D��tۥ��˚��|���e���`��Ph��=�t</���lҸ�-������f$��PQ>/��OF;�����\-��r�*̩$�N�$0�+t����ʉ8�>�;�S&�Og�f�~�a��,�]��K�m^�W૫ ���"��in ��O�ˏ�PZs��[`�� )2Ǻ$�{C��:�G�Pc�k�9���)���1�w�\�Y���' ��E�2���B�~�Bn �t�o�p��i]?a�M*�3�n?w��}�.Xe������/��(�M����xx��L���?��[v��FSܠ�a�=�a*D���ª�6ɛ�����o&ֿ��{o�,;��{���J5�����cWMLE��uV���S�H�=:\�o�ef�0ix��a��F�E���Ks��9���=�>ھ.[��#H�K�ّ��8ಾᓺ�����X3S3���=�$�IF��6����k�Vr�ũ����{�������u,N������I]Ì!�cĊ1%�`� ��8v�b�dᆞ.�����}�/��q�/5E�F"��·�+=Qr��~�� ����|����������;:T��)���)\�ɏ+9?�ף�)�)9��|H��h�'�/W��Us�X��㹇��,�.O�v>c�3]~��H��{m�?=�==}7���|ؑ��4�N�1�&��L��X�L�%��Az�3�/�q�q�/��q��R�Y�z>�.>�ݠ�������Jx@H���� �,WC&8;���E"��}��8����}1�Nf�J�F��^�'F�0?�csb9�cߗ�:��� �����|�Í$�d���W��s��9�Z# ++�����z���F�p����G-Ʌi��!+,�jtzNE�9F ��A�a]�+�`;���R0���m�)Q���f$��!̾���S-��C�:���G�����:�#T��6�:�ݥ��飔eA�]�eƗA+��z�is�:F�c������3�����~��Q�1�i��8���霡�/,x�s\w�'� �ܩǸók�!b�u?�F��;�i�._���FK�(�6@���U��I��O�(S!|5�of�:��z�J�NpB_�L�q�~M�1�m"���%�G�$�*7��v7�Օ���Ӳb�Uf���?����b����(��l����J)qt�*ȘeJ�e6}0.��P��Zݔ2��Ni~�����y�!��5�<���l�0%gVi�'A�[�NmP0�j�c?�ƥ�q>f��f/hʆ?�����m������ʪc|��z6"����|`G��d�3�1�4\Q�L�Kd������4�|��\)s�ہ ~�%3����yW�ʙ���ľ4�ԼD��w��r�觬}yl(V����a���C+������75SH���`����Z�]���)�T�pa�����6�Ņ���.�?��Y�L��0 ++p��ڱs�/�<S� ����i���3|R���©M�"�M;=�� ++rMW���깣f�ӿP��y���ܭE?���z�~��TZTSa[۞��E�'ۚn�����t>����P�;��ǫOjL��g�I▁wl�ƍ�@ ++T�d"<,����yw����ֽ����Ӗ�o�\j��N���)D��k�ʯ�*����1W0c�=ˢ0���ȟ��X����/?}%��5䎩�`f�c0�=��,��e�w8���{��[�j��t*[n�q��_��fWl`q0��c$R���G틧�!CC����h�����F҆����|�@n�B�r��<�Y/�*�yjCc8��~�n��C-����w��2�u5�dS�S���ڸ1�QH5���Mf�� ++�X�w�����Wf-�!������B�ݾ�5֛`�YYPz} D�-,��|�^��"<�I�d���<D��"as�3�m\CX�k�Jܐz^�զ)��Ƕ�^�i�𨸍��9��q� �hx�pӞ�6�� k�*��Lnp_�a A�N�y�����F0���c�>�aH]!��s��!AEBQ��V�Hb���-�R�9Sڇ^�ճ98;��y~��WP(���]�/���W��x6?����}�����>��*a ���]I��s^�Ȇ��oV> ++�niTP�8��\�H�&�< %G�P.���%k�[��r:'H'>J�9�z�K���#�ZK�zݷ����xu7bŪ��/}E����8g/���uk֍����ʴ���F�{���w_��<��(��ea�f���f�-����P���*�⼦��P$f��O�8�E���=jjE��YԪm����uk$7��;;9��l��}�6�k�D��R�T:AYd@}.~�{�#@7#���y��,���� GA��P�)}V��Z(��,pi�Y�m�By-�D�+4�3�Z��+Cw(��>�Oӗ�&0��o�1�h�Q��dM�c���/E(A�������r^>V�s�p{�X7?�O�7��2�Zf��[�ڹ�� � ���&�N'�^1 ++����.�<=�*��[�<_bjSخi- ++.�1V��#�~`'/2�G���L"���E��fOV��c�!�3����)�)��dv�[��:�����r�f��=<T��E���]����/H�B��7,Wm�$�j�� ����5�_L>�$uW�lA�a���t��Z���{����/��*~�������qiA��>D�'����ѤY51�s�VF1�����W�;�B?�K��#�<���r�7�t��E3|�M���}xӘK�y�xW���<,��U�p�c�A�am�ur=cZ�2��G���4� ��շm`������k�1����,�4��,N��>~b5Q����� {54a*a�s&"A@`-���Н���+������O�1�}L;���eRO%T�^��l�?v�l�s�(�^YK2+*`��,�5��݂U��=�]��g?ۣ�c�S��X ++3�����{~,��0 ���.zԂ�`q�ai�Q��T|�4ض�S�Uqk�������fV�3�lAx�0m�+����g:����N��O0Ct/���j���xb̠k6�s@w�&�g��؉��`���p��c|Q���d�L��A�8j��<�� ++K��UQ�iw$^X�m/���_q/�Hz�� �#%���g��U���@��O�eT3a6�C�faU�����w�<�7�ze3�SH_WoLe��/��{�ITO��'��J�mp�?L~�a�:G�?M#?�7X���P3d&�J��>j�R��e(��!�-�&X�tv�̀��X���k�Y����d߉�.�%*w3!K�Â��������#�2p��ʙq+�����p@pG���x�gdP�S+������!��i�ܰ�Us=b���y�Wz����C��� 3��V!Ànm"Ή!f7f��9��i�Ȅ{7�y��K��;_ފ�? E���i�;��E(��Dj�f�s+ë�\]�|\�������4�\��0�0���*{t-����|���bUP�:d"t��ٛO�BE� �z�[E�K�hG `fN�%��+��/�q�<�O�5���"r$��Q��������\)��0�L�^��(�Ư�-.=6��V-{"D`s�0�C�3�Hؤh����AA(�쿲�ٝU�+U��<�OA�#nA��N����LPq{hx_�cp�l�Y0� �e��H����܃2�]*`Z�-��c_Sc���� .������>�uɟs�D��#�!��`K�°`��?:��)�7� �w�� ����<�C�oϝh|azXH�ܗ�\��{�LDև��*�H�z��9�>m}>���[[e����2�G�fT�I�V�ӡ?��p����<e��^fA�P �>l�p+\�?`�{�H�?3��f�sf����|�,<<h�Վѱ[x������{�86��W+k�sf�6��PU�b�jʟy�{8�A5��\BΨ��Н���K�J=�D���Й��sT�pP��gp�VJ���3Sd��}�)s�`���͏Jb��r�I@z:��:�ͥT��_����m<�3����hQk�h��P�S�fq ���Ug�sDoj����\~J��0�r��W��@��ȇ{@ �PKL���Q�/(���a�4�ڱ�úo�̕R�8�Tq�Ol���k 1t�1&o¦*p�"p"L�"p�g��r���QFw�k�H�/a��%1��fK%b�[7�x�CU@SHi�4Ŕ��=t]�����#;:S�GƦ���EƦ�y����9��՝�@�Q��5��u��H�a���)�1�~�@<��c� �HTk�)�ҪYUG7]i(�i]�xIvݲ�t���L���� ++G�D�_xwo���>��[U�3�[<��z� ���}�Rv(`�=�c�^ݴ\\vL]�";NuF3u��BE�'�v�*�,�=�y��O��pGN��<5pX��|���@�2V売\��R��Ӏ��x �Q��.��#�.K�bxar9��J|߁��K(V\)^�l�TR�� ++S�UP�ЧN�Ss���n8t�!��2 .çNi�G>��n��Kn:A�\;�5������7��C:,p�����e�(pĻ-r�����m9��-_����W�ڂ|�:�Y�t�����:� �\s�R���xaJR��-��T�2 ϋ�6L������zD~@�o�ǭ� ++�)$P��72?np�)9���P��!ƺ�y�(�4:� ++ڜ5�(�O�[pڥ3�����r��]ޖK�o����ّ"�|K��U؞"�t]���Ƌ&`ZKpV�{+��� a�p�Sf���tX��D��<�F�'����l�\����S+?�&��4?{vnn� f�dAz��ʼn;���Z�rC�����}��'�%^��X�Pcѳ ++e���t2[p�@�_ZD����sf��~hf������* ++�w�,W��E��=�g�SI1EwF��2�h���%��o?<����m'�v���Pd�\v$A��U�Pؗ��;s������^���" �PwdR����������} ����ō�A���(W�<�ʫ5����j���r��3�A.�k>r���3����&^9n\6./8AF�9��w7�W���Qat��}0�0I��͏��ݚx)o�GhGZ@����N�,2�ҩ�q�t�w��5��� ++K�����\Ձ�������P�c�yl������`�:�0�ձ��g�qe��cCv�s@>J�f��}�)&�?�D8,�|]�ٛ+��� ����o^Ӝ���2?���s %`�.����L�x� p~I7���y?_~S��wB�`�hQά�U����*��\V����ᜓ�U�z!�y*���9S�u�I���?t�3h'��Q�h�D�W�u�eu�ɭ( ?n�/M�9.�hQ��� yX��d�~uSFNM�;�z""WM�TČP&�P� f�E%��B�c{���_��N �n���=+���|> YJx��u|����\Y4��m������žYDvԱz���i� �o�`JIg���Ԕ��A���)����óS�ub{Ο`$9���a6PX炉Q"l�W���7������Rd �P�v��"�j������q�B�c�]s�����g���NM~($���Y0��)ʭ.���d� �Ђ�E? ++턉��2�5!�����V���Ƃ*ezU̖\��c�ʚn���[*��������o$";4g"�� ��wRF� S�6_��lh�����N��f����m�f"��t~/b�6�u�fSK�<�9Dyq,9A��Vw5O/���;N�缼�_T��0���]Q�>,��KUt4�5\��:F<0�|`���%Χ� lQ�!r�y�q�w�\�ԯ��F� a[�y`����� g���Ѽ�VO��8���5G�#�!�q2tA�HO��:��#�4z�c���K�Q\]�7ă��Y�� �[۠�V�CZ��v��<e%��Є�����#�g��t�-��� �8f��Y���W:aѷ���"]8�-Yͮ� ��>$f P�F0�-ߧ�ԕM��w����V����w|�&nG] �3I�i6�|>���6_e`f��]����'�0���U��� m��-�lA`�n�j�N�T21M6[��Q�[6�������gS��ӓ�w;<S@oi�o���0;���EI�m��k��iXJpF?�׆���ݡ l�2 ++�����<��bTO@c�k �} d�Ԥ���n��)v�EI�$=�L�DE� l��VAռ��@q3��g�d�SO��Ǿ�*s���`��$F�Ӊ�D�$�(�5 A��oo�$��� ++C��O{�PD�� \�-n�̎8�3� �2L)Ӽ`.>��I�uu�{�<���h�.�uf��M��N�� �g�!���ʈ�E1d�4�������� ���r8E���fe�#���6T�F���:�687�n�xĒpD�f���o#_�My�3�6O/� ��Y��?�� ++�37O���<�ݘ��M(�\�oC^Bʘ �]G���@[6�p�����1��M{���ɫ���O�%Z�ed� ++�a ++���>S�x��u�F�".,zN~�"���;0 �xr)�F�t�`"ɉ�� x�m=<��9�$����(��,�MW�3�w���է��fy�OU��oS��{:��k����Ŭ�O1pR:�E�`"�`.����o�?7�a���cK�j0/J��U���3A_����Fߔ`Wu�X�4��$U��i�$R��2� ŶeS"JyKlHD���������z�ζ7��؍�uI����k ��l2�|/}g ���Fh3�M@~��H�[�o��� �AdoA�wW��@Fykg[�!Yz�M����� R+t:k����Q�LU�z��/W�ȅ�,�� ��~,D��հݴr^m��=����<p�$u�qB�0 ++�@r�cWe��6x�r�5��);�����o�8�yWZI�W� 2���|{��}��D����[���.O ++�x������ ++���\��\f1��w?�a�^$�H&���} �7��*#ஐ�����L�l���#�-�]6`g�܋x�+�/E3�q�������r��!���?���BSs��ڄܜ!�҃��@� c��{��{i[�;�f�1�kq#��B�.��я=�� S����֍�������sw� ++CӇ�A�p��<ą�w`7��@]h�?�x�|�֎�a���w3X��36��mv�� ++;���=�«e�?�?���!��f�R�!oj���jv��� �l����~��@}n��u ��a������3�>������#��h�bx��a��Q�xi�?L�|���>_}{�\=����d��]�RϏ���)��+�*��>D�w���z�ɷX?٩%5?�<S�UV��[C��y9��c���{җ����̑�x���pjZdH�8�� ++͟Oyи ��,hi���mV"s���1V?����H9]~h,:�%�g,|�%7H���gV�Oh����Bj�Vǚ� ���dWΜ���2r�SX[~��щՃ: џ�A?8x�d�Pz�O�����ۙ��ٓ&ˏ"��ϼ� ��y��K!��������1���3�p=���ϝ�>`��u������N�Aw<gb���?H/s��U&�?��8� o�~�N��������uB���Z;*�ٮ�����3�����_+uM��ŝnS��M��ܝ�Lɢ �#���ֿo�j�$`_iY��߲��?|]�D�D���,T[c��^0�<c���S�wt�����5᰼���q�� ��C�>�tY���z$����_OOw����k� \�M���/��粚��>O������l�� ���5�X� ��P��|�&���c ��7�H3j�ꜧ���E�7v8(a�u����B�e��N�1 ��K������kn�`�����_iv�%[Kj���+)�Zz�_;�����E�+��9�٭���xy���i�n]��@����t�Ծ�k|s7*�'j��� �J�m�{+Q?���������Z�9��aB��sp�D*LQ�SK�� ++KT\�4 H��F��f���䌧+/�Aqh^���J`�o[8/�w�m��u�Ns� h�4�X�T��<m�,`�t>�#O�J����?i���^R��1H)0&�}���|I��V|�O��k)lK٩A��)Z=jm? $��F���(� �4(%�0�_�L7�Aϛ��_�Ѣ?-UG��n�9�6�uq�Ol)�S`Di�ȣ�:����9�EQ�?�D�C�G!��'}Ki���cN,��t5v"k��>s3��:~������I =q�����bQ�~����'�$F���3�'��s��>�۹wo��:�#�*� ++=Ⱥ�7�?�㟨��z����b�Z�ܕ�?�,���~��2�q A������/l��msϷ�)ң+`~l[ms��O��s���$�n23=���q�-Z�$s,a��D�)gW�� �]]�L�G�����BV�,��*Q����jԼ�b��e�LW�����[�o��^�`��x����͆�5z�@�4�l+�%��i5��"|� �/K���8}|YP����)�_���&��C3�;���||��jq�u�p���K<�^Xǫ����e�O��L��p<-�̯/4D�R�0wX۳�;1S�I��ȓ-)=E���1��['1�'_Ӧ��B�O�8�u35Eg`��&)�o"��3��ீۗ���y�(s!!���m�q�fR4�k�m0�1H�0D6���`0�5����a�����K��M[�������W�6����FH�#R$Ƿ�f��ϯ�o�_no�;S{y��}Bs�}�X�+Kw�}�:����Fj�O_�9�ګX��ؐq����yj+o�CW<�{R��b_�{u�8c#pt�F��rQM0I��z�E��[�X�I=�Qݎݯ�/�Gk%!ρLx�`x&DiOJl��0ܟُ�t?�������8'����Z����6�tS�[�� �����}\�a�2�0��{��{p':���'4�MoyËf�5al0;P�n�̂�`jA/�Ɣ��G�����Y���U���&���q��=�Ja�5�r�l��0c b�4Hx�U�"l&�tFTx��b4��.���'Μv�u��'c��Ү�_�Q�~�ϳ]n���'���F�j,,���4=6�Dv�W�i:N7|t��!3��e��58ںo��v���j�c���6�z��gU���u�_���~N��z��e�����\2�>?��P�'�=Ck��۞>|��9u���#e�>J�%c6c��8Y�f�O&k�ı\���єI�U ++��K�8�[}�t��M�����x�~ڱ�<��y����L����E��%��qsĉYZ�7 5�|N�q}�l�J��:�3^�t���Z�y���&F�8��z3�������}�.�5�a@b�/#���'3��7~�rW��<���n�a��Ы�m��5k�ڏ椯;0w}��h������5�8o�M߶���_�1P�M�?�*-U#���Mфnj�bb�;@�݈���L�Zz�Nz��_��5�AFu�����̙��6���<A��T$[yۦ:���;l�1�ij���DY2�W���<����饰��pIk�b�f�<��țd�A��5"����g1�?��p����y�T�qE?�wd���s�ݧ(3�Q`}Ōi/(TOn03 �����{���dqI�38�E�"�W����C��"�3< ++�⓸�s�)z���R�Ǩ�������ಘ���ݰ�rO����C��g����3�lXn���dv8)�B�V���[�����D~�#H3r:�}@_gDx ua�|;�%�A&MXϊ���<�����Ņ=�*G ++��;}Ggx�KJZ`O���lP%���J"�'��O����j�Ǒu�;�iltq�i;*�j�t v�'��� ��sȹ���Ц�V�/��>ytu"��� ���{1r��[���pd��:_:Ъ���������1tY|V;<֞�52,=+�CR�t�*$�?GDw���a�M�1�R�g��u�)-�3N7����0�a���@��j��VK���ȧB�de!�����n����D��st��s���L������Ayi����.7}7�#����Bv�n�5�DZXsg`����~�|�4�%ݢ�a^��=!rh*J�O%H�e G��v�_�>"� '��9�o� I2#����p]��������X�i>~���1����fl�x��I�ׂoMO�5Nd���'|w�<�N�Uz���6`�Q���i�x�ґ#x�=*n�枵�&�DPGg���&O%�x�r��z:3����U���5�lB�#��v�����p�V�{Ih�h��mб��ª���m���٦����j���g�c,�_;3ql����0��A��m������GZ�e�0O�$��G�Y�֕vX��;��T#6M���y���̾�H���ORک�N(�V���LH#�?!eO�V%�0�x������r��!�>V���7ߣ�jn��k�m�[��Q��';�5�城�� ++����1��bA���3�~3�Ly�vv����j"57�N�j6�\?��ߛ_3�n�V8m*�:j����&�0��/l��qFu�wH�EuE�U���'Z�H��� n�IL�9��s`��g@��A11��a�s+�����<�/ ++ ++���[����ǣ�l����#�-i�Q�%��7��R.��#��ǭϻk��� �3��}LQ%��g��� PU�X�K5�~G�[���4#u����Bi���_�|j-��оw7�����c5��e:�ip��� �Q�k�٬9��� �a�?�ʲ'z.�IF*Wۈ��+�� ++����vQZ$�}�z����lM�~#�*í�� AMc�وdJzM��/�|��敾��c��m%|�O��p�lL��Ӵ�v�ϟa��\b��Ԟ%JRkp�f(����8Z����l���O7߿�q�\���������û����;���W��^�,��%Ț�@�����i������x�=���,�i#ϧ�C���֝��[z)� �y ��,�@)\�ekES�}�){�?�˧�n4�ȝoɅ��>۶!?־���h{ʡ���hh�Q��x��x�Ab)���N.����sZ�/(���4� ���b����rW��q������u�yP�Y�^B�4ZE�1Αg7��I� ߡ�)�{���\QՇ�&»�x��-��hkT��I�![�PR��C�/==�8[:�!�L��_Y�|�6���I��o1͒�~��v����-���6���ʬ�`�/I:����M^�R�_��:�������쫥�ez��'�rI��yZ�Q���ty����1������ݓ�u~��'�6<*��.)�l;�w��_G�M�ߜ��$�!���� ++�8B��.���m�8Q��8���u��$\a�˟p��Ü�/�����#�~��1��/�Ȅ��a���ִ�_aB?�M9�+��M+��M���͉��ǃqX��bm�n��V{��C��u���(?NB�'�c����� �/Dh��xv���o����m"� bD���e^އ�[;�\���=߿���*�g\�`0m��e�hhlX��-�A��� ++bP�&�\_��b�V����'<���M�i�glfjdA@3��5y�f��x�T�M�`����R��:��̴�5���F H�jtʌ^j��{Djϧ�X���3�1Sc��Ɣ��Ծi�<v�`2����̬��T��+ -Q��� }p�!r�����+Լ�ԡ//zQ�%A�=Z)G��!�@Tu�/C��X\�<U*���{\�ϑe�q� �V]���ˡ29y����a��r�N�詹z$���]z��.��㣽��LZ��8�d`�Ʋ��������ee#G℟�(�&�k�Yl���UtSvR��P9ީ�W��O�v��l�w�������N�!��k&q����� �N�$�?����2z>�/�UY� ++�M���a/z��&�n7 �YZxʳ^>>(��݉�̈́Krc�i�0��� ++�Rh�_8���c���L;��(Я`|�����uV���b�-��| ++���/D���v�^�QW�i)L��a�d�谂B��c�⪄f N���l�1X"���w��q�-�� V�������@rN(�83�۽ wi�z����b��R K�^��QT���k�63��Ι�n��E̶W��\�D89g��HW�%��8D~��23ԁ��YNi߿�a"wr���X�7�X�� �_$��� 3�S�S���w�Jt8��K��[}�'ʩӤ^PcNoj�]�K�p��|B��J��*�A�!KdE�9�05�O�E��}�,�o9m^$��;o�,E�Û{"8P���fg ++Vp�P�V ��c�#�d&~K���e�s)���5VI���י��^6��\C�:keP�;8�^8zҵ"��u�4ߠ���f� +2�P��?��d��x|�#/nL<x>l��%8I����fE�ӟ8�X���B��'?9��������⪲�o���[��h#��9ߒ�3|��/��(=����/n� ��2N@�ԃ��yKsx!b����W>�.��B�N���!���,!��~㙉L����E3�] ++њ���͙0#�Dk3)O�fi�:�f�0V12����4�|��Oܰ�{B�!�E-z��I!?:�Pƃ��PZ�A�����!h]�P�=�4�d"��h�hMu�k$b��w]p*��0�a� h2�'��͆���ȇ�8��G�^7�A;�b���!�{Fc����G:%��)��+(+W�][�O�:�_��ʁ�[���j՟d�x)#m�Ǻk���/��2��'���H��%I/?��W0 ��AC��͉�0!ڰ�Y��$���0�h�L��'0hI�z�F�pؑQN������]�;���Ea�����>����}��ɔᑂe�Ғ�Qv<d���c�B���x5��_���6�qU�����܇Y\j���vΉb�&���Tw>4�e���O�Q�c��<��Ck�3�9̗�şQn(��ƂC��7��Wf��e�g�57% �C`��<����xZP ++j��y����Wd��'�,������[���n��F5�H�<�\�0�:�� ++6WMĠ�Ѕĭ�h���x(3q�)%28u�I�;�Q�q^���1��1���r^ⴙ�N��Q�����PrZ��}�fI�� �Ή�}pK�+?䵙�= ++�鞢N���Hfzz�Pc�k�i \�7"��{��5uM��"t� �m٧~��˃���<l���} �ۇbȑ�4:�j�i;i�U=�����:���s`�֙��H�x)Ȏ��Mڪk ++"M�څ *cu��;��ba>���Q�_c$I�B0Kw������f�C� O&q���M<]�B@M:�E!������@ )�+sF��rn�P�_ �EF�����ă91p�m��!�����J�����c^��np:���� ҺC�R������3X�"�CG�������[��=U� �pN��m�z��ɣ`i�Ns��悪��(_�����:"} M����S ++��uSp�k!�MP�Em������ Q<Ι����*.�'�6ƇS�Bg��[���Is�m�!����[��g^���[���-'-�1�mYB� �$~��k`�J�i��m�T'�K�թ��~���� ++E�8���`L�n�]|c�w�ұ9��*>�Þ&��#�"�}D��j�K�����4�v��V���}�O@�h����Ӽ4�N0�߹����"�~��Ȃ��a�v��D?}{�B�ZL�� ++�8T�Aa�4#Q��$J!N&���6��e��Y�����"Q��A����w������ՉBsS� ++f-�̸5>�"�n�LD���ܬ�=mF5�N�����-��������&q{�Gl+4�����z�F�mȤY�We��"K�PAG�gA����i�y����W/��sG1�V�6*`L���$�N��� ^WF��.��f��|-�|����%9�ms�Rb�f�����p�����N��z%_�k��2eU0��ǀC3Jh_��j߭J�5���U����gfuu�T��3.��a��,�������,����~W�c���3NWvP��4s"�X�l��� hi��^����Qq����V��_0&[C>Q��l��A�LJ�]̝`˙{��QK�,u���L���aYY�������j��v�r<҆b��)�Q၌��24~���1�Y�� ���~k�<ؿe|$������ n�#�����zI_�yC���`����9��S[R�*��l����+�|�_Lf��˱H}!�d���) �N�.N��9��7�Y%ؒ�S�Y~ߐ^D4Xq8�A��36����1/ʒ*D�G+�3��3��!ց)яua�6�/���H���/�I�ZJ-@�����^�o�ڰ"��Cq���#�+�Z�����k$8 �� �����dE����T�E�$��a�u�^�G>���bSr1l�����N�������}%��t��4�p1*J����\��%,s��p����b�Hd� fU�s�Lض���ʯ�/��c`�ڿ3�Q���ƪ�~�[8��q�95����N13M۾0��Y�^8�p��G�2n�.�a�q(��K�Ґ��m�|� ++f˓�Q�{K��"0��pֱ���ʉJS<�khCAa$�]��h�?!�(�Pa��g�7G* �#�<qi՝�D�������7[LPi��8w��P�(1져iHb���5TC���ҫ4M�5��K��J��<�T�|uZ$cI�7���w����E!fwX�d�v,��i�"+o��|�[���� Va_Ԉ��y͕���C�I�)�^9-`�a�����zC��6MRш$�������J���!`����gt.Nr�t�6���������a�W|�F�Y��ܡ2��>����)a:���<�n��f���]U���3��7��>����EsGl<��i�J,��Tv�JBb����!�.l���%�O�[l�=��3>��wE��:�p�����;wgɫL ++@=nO#%�X���2��?��E5����f�HW��k;�j~H0��0��z��Ji����[���t ���pW8�g�PI>^b�����\��^ ++M�@�H0X�\$e͑����nY���H<Z[����NC̝��<�4�Yp���T�H���,oް�BJ�pa��J�K��C��;M��z��<��|c|��w��{�1�h�,�3�Jɚixk�[r)ӵJVK���� ������b�P�c�P!�|(�aޯDU����J�0�Nn�o.gB®dR �N��� ;��`�:����$�+Q�a�֒`�֖�Wb���#�<b?�%ZO=��0����`')w�*\� � ��;|?\*�m��c3Z��������LW�[ �%BFX����W�(���e�R ;�N:! �A�y,F8��JS�D^�����b+��<k>m�r0���ɗ�F�� ++�B�� �2��ba(w��$�>��.?h-�D� �htu6����$�U�@�Qc;t�vmH^K���J@������T�Ύ���LB��I<� ���S�P�FK̞�NZ#rU@���#Z,��4]m�+�żn���3Z/_X2����q��#�V�-���>wk��+�0���e$͘����Z��\K����r\�G�j7 \�(`��tR$d���VB�+�N�|,�Z�����+%�� ST��Gd+�V�V��r�I$Pv�rR�|��R �y�toDv���i���kD)[F���0��'�٣=��Sa1�9$ƫ�s(� ++ա��i��p�3�o_��/cy�Ю6[�6��)C����RT�1X��O�h7MP^�S�G�Zn�w�4��-���F��K!!�Se���Z �g9�l9FKT6�EPLo c������x�E���+��0�obF|�`�ED�lw�J�`���_1w�S����=˛�Z�/���ky�E�����!�*�(ܺ��j��.gLj\W�p��ug}��<-s�q�h�e ++�RAv�� k�Q3G��gq&���I2��M-�����9����E��RlW5Z,�2o�eH0����_%��Xg���za ���A��xY�)�,c!���/��q�<��@��i�@n"����L���_I�1�6Ib��m��$�g�NZ�N��)P0z�O���P�#��bD���T� ++�i��Rf��+u�WTv�E$#��pB̅��� ++�N�"�Z ʉ��$�y=�|����h�p,�JA���sEF6�T�rG4+�t��+��a�,!��E�dK�L���A ++vDh;e�&�k��tqa�Xa��H��+&�e}7^Ej��ß�X'Z�;�tr���kl��E0K*y����̪�/)�Ի@�r�6�'::�,-�� J{�ř'^�"��˹�Nb6����jL��/������ļR$�=�HV��䶰�"d+Ңa\�o���=����{4��`x��������d8� �7� Z8� �g��ʣ��M���aͬC�}5������?��(�*��uy#�M�2w�?_1w�ٕ�/���R�%�Q1�T�e���!�>�R�:nF�mF�pH��^�)$����n\�&!X:E��<�,Z�&��� á��IݓC5�V��˝>�9Sq����s���"(����1�|�3��N���"��� \a�(�[��.�[�GxI�ʋ�~�?�[����h}s�L�=:o �W�ö^ϴ!x�������Է���!��է]���3Z���0u��Xg��.��۵ƚ��>��������c��J���-A�K4�*�,ôr0~�e~�Q���i:����6�1j��u+o��W�)�Jֲ'=�����-�:�Qm�����ĝ�� ���S@H��j^��ԐH!��tj�OE���"��M���H���2V�� ++]I�oQ��^)�Q���j���|�H����}��k�T+ .�su�>o�|;_��b��Ji#�$����_�OG��n����.�H_`�?�t�/�Zή@%����Z�B���"Zg����I�a��.읂R���.'V�r�*�4�*�G�:ˋ�Ə�ޮ��?<��&��c�?�e��o��N,��j?D�F)T ++z �HD����S�3�������=��t����71%�xM\8���'�x�f9����dA�./�1����9 ���<] ++5[I L��1y�R����ZR�*��U6}}r��(.<�7C��T'��'S���tU�QVH��"�k��ɂr`B���yO����1���w!�Q. ��f_/-�6�Z���6:�8� ++��ky�6��� �D*c� ++*�v�d�苄!��ɫ��]���"���/��Б/ԄJ�S��#�3M�����G ++���jt�\�|p6z՞�7pL�2�Ue�^K`���j���$�7�\Ѧ� �Eb� �2r���`�6��4?V\]@Kh�lBaod��[I���0�Jp�D�ռ2��W-mN�u�W��7.C���7��v6�:7�A��tO8`��r�T�!�w-ygtr�쭷� ���R��U��(D8 G�x�����vE�GĻM��{��:���B �ԝ ++��?���)y��y�ޝ��+�!�)jm�V��܌W��Y�B���r��[�Eh�N�oXMgU���gV�/G� ��G��#�ؤƥ8�/8����Dz�{'= ++�h��B���V�J�Шx�G���Xs����}��+}"D���U_���5�Vrq웚�!1;j����:�N�G��«l��E�$A��X��X~/�,�])��>����R��S Y"`��6n4-�QL�z�.�"8��0��^.�*��Ʋ�5۸����q�,1�UŴ���Y�#��^%u$�5�1�Jt˗�}5, B�HKo�yd�)���t`��Z"V���<]_��|`���S���U��=v�SZ�%�Ex�M<����J ++�Cܼ�D���#�ͼK���"(6������&���u��)sQ}1h�|-�X^ٖ���q݂�A7��!l��}|<�ZB@]��]�#��hկ�uF2�ϫ_�:��寒�f��W$�5^��XR��/E�:���+���"/Q��h%ł��A|�<};+��<i�w֬�Ǐ��)�Ph�uY"��u�]��a9:�����3dPEY�A�-��8�@^u\�w^�'�e��"��ش�|��X�^�|ޢ��5�$ɪ5����:KT�#Be�i*���Se��ib/8���u�k�om��y����� ��5T���Rh'zW J1��\�ٷ���r�?]���y�SD�e��,+p?Y3�k��).��W�_���m\�}�X3І��߮�ЎB{h{d�9E$NFH��<#����~_%�-�W�^(���9��I��?�[kz��`�fVPu%{���ކ�]�n��7�r�Qd(D�5ͤ�?w�'�8�]�M����\p�VY�ىoY�Y�hx��oo]$=����F�gd�9�l҄/J����C�b�S|x묦����Z�x��-��8�[�c뽏we��!�*VR���Cq�в}��f;n�ڼyA�LXI`�I��wD���/~J�� ��×.�ٚ�m`�D����A�õ�;�b�!t|qn0�?�Av����͠��r�d��C���������U54����iM����$�e�������E���,g�A��e�0���qSs����.>#3��m*:�\OT�-D���:\���(RD�܄:��]����vWD�}Uɋ�� ������+.��� ++q ++H5����r���K���f�LZ�x�(1��^cN�:w����q<���X6������b�8F����AO��_`���2\�cf]c�\�1N��`��G�b�L�� ++qDj��(�2p�ݸ�Qi'<C�#i8C�_=�@O��[k�B4��ɿ�O��(x�7$�W�LX���b���sr�(�]t`E�P�X��X!��ymv��*����p�%���j�e8�ixxB�+}l�an|vt��6ڄ���=�y\:��Î>�e��0��T���2 �2���w�����_?�Y*��q��A���*�&�h�w���$��0''/Q��~��j'�O2bQ.U�1�ua ++� ++�>�k"k�z`{z�hj��G�Ph��rŶ�W����������;��sS���A�1xjV�_�<�>X��- ���.f�M��{�u߆M�m�D��"�=�f�ew�免�ZY��EmDB�N��й���k�s�4!�}/����N�#�}�4�Z���4�gq��C�e{�e�d���ѹA�w��ۙ �A��6W�K'�p�[�&��L�y���M��H��#�r����\B�0����&�g�����h��6Ԭ-6�w:�HI�x��o?x�t�.>?�gT+����'���#F�3/�`d �����(�;���x������ӱs��VgM�~�cz&� IJ�E�{F��@�*��b(�����yC�M�֣ ]�G�G�L����Е��5�t���{�3k���{V�#�/A�(ҥ���?��-�#>�/Y0<=��l���v�J}�3�堇1a-Z%w��tͭka�2y��4[���L�O�Ý�`�/Qy^ E�����ь�� Pb ��B����ϑ���cf�+��X�u��$)�����Xr��Л�=7p%�8���'��Gw@�[F\w0��hǶ�6̾���$�ы�ljV��s�8�pg�f��{P�Fi��/8��2�� ʭ���|���vs�X+&D4?382$�ٮ%�'.��t(�M,���¹���s����c�\*����Y���oho�PG��H��@)�O�RRM*7M�%��2cx����|"o��P� ++s(�mS0gpMC�P����~_p�l"hMZN�XSp������J5�B��*l��6;���@k�/�<"m� ++���;$��� �I���+��)��%���}"�������~� ++�����8��݉ݡ*ni����w��[n)o3�Jf�;�CU���s`$\t�|��s���*����N�,�� �� ]xWՒ��r]x�?а;�u�!�m�)L�C���[X�����Ƞ����MӗmO\�b��׃���0�;�R�vp��\e��),����ѿ����I}�f,�yv�r���fʈ|�<��J�jyM��G dS��ܼ�=n�ܭw�XnB�/����@��Ih�]�X���O5{��n�x~��ơ���pGz�q6�h_�l?�p�z�\���w��РĊg.?�h�v��1*�"���8�&���3ƒ,%yTp�"�H�!�t_��I�~�P�T_P�F'�6F,c.�]txs$�����̦%u����m�;-�õwN�os錒�����7GF�#L�(�� �UR��,��x\�}����0|���W<��=W�e�� U��<����.���W���&$��X;�)H����ۣ����f��Zg��cA�����c?ߦa�EBT��w��:�f0���^���R�YAh��%f��|C��-sB�@#Y�}��.�GΗa|�Y�f���!Oc�A�a裭�ouι�g�#�5�儂*C&O�R�i^p��h�*�C09�@ 9}�����/��T���s��F]L����!斬���п��q9�S�}[(Xz�f.��BI7��o���k�2�F�G=OF�G�VP�[sz��u��!��^rr.q7<��ir=U��j��xæε�y*36�g��l�6�,g�g�ў�@-Pt���x.��N���N@�]��S7���q4��z;�����EPr��ˊ��������EЕ��8����Հ�J����ʱ�@u��(��"qh?BU�]�34��N7R��+��G��(j��~�s�A�K��l�ѻ�� ;˞5d\�39;7�1�e����LOlɅI�5�N��I�fD�D�|ҙ��G�Ľ+Q_���X��Հ�H^��]��VD�^� ���L��7��P@�ʀ�xiO���z=�!KAb6�T��>7���"�`P�Iֻ1�E���q}�c�ǀ% >H� �D\��S�g_�>�۲,oĊ_��>�KIJtP��{��2��sk�� �Sh;G�ĺ��T�ϙ�"} ۮ�4$����(�:]�S_�4�F��l���H��H��l�4����f���_ ���ڜC��y0��*�3�a�E%q ��G�7}M�0��C}�N�M�sd*��h���V�fಾ[� Ӓ�<PP�N�2��3�&�k��B�|�Mɗ�#N�4�ϊd&M3�VR:�y�C�hT�D���*���GR6�9�{�U��Ҫ3��RXa���3���sC���@WA�� ��9�w���A���R�MV ���ZD�����:�1�Hˏ�h�ce#�����K^�.��~)j����N�;u��t�1��b��s!�87Mh��<��j�[J���D�@�r�0���Мk������T���{n� /�*� g�ix���o8�dz*02���#<�F�M��x�8�o�8�V��*����)�%�����|/3�������Rα��ة�X�c� ++�/N���?H�6��`�.&��6�y! �iQF���hw6�W�{���ЁRArn�Q������oY��iB�� ʧ�2�����(c�c3�υ��0:�U�oz�� s�tX�U���Z���D����$5~��0��O���se)0r(�e���c�����]�L�K�wv������+#��Q���9HM�~��%�D ���6`��+�h]98���'��GV馘��v@|�233����u<�O1J[x��WƳ���J��mN������`� �\n�] � �������;��� �~��3Cԙy�g=�ڊpW�H�@�����'u�6ZW��;�V8�+,o�F�[��r[�V~�^�T��^~S�Y�+?49~��su����ܳ�|]�O��!<�EidS�^�"0�����/ �]~RD+�c�@�t�M$�p=�"H�<�19^�����-Ar2|�*3X�c��?��q�Jc������3�|md2vC>g��ѽC�E۷@�կ��2��5��(���9<O��3ĿL�l��/�x\����ǥ��Sg�)w�"�g���8�C\,��<wn��&Uw1�� �4���4�éL����(����ۮGxk�@*ybh�Ɠh�"Cd�JR��Dd�(��۪�ʙ1BZ���7�m2J��v���� u:V�(3����#��GQ>�qj�~����cZ܃���U^N�ӿ�u�['���<��Y���i����M��}v�FA(����h?C?���'�"( I����?"�q~�.��x��j��y]^/X���܆s���؎��~Ѻ"a��b����ۑ�m`�r�o$Fnt�S�|�{5^�,@���ݯ��Ĭ1B��0���ș�[�k` ��>�c:�;���i,�������qh�a�-��;�����ȇ��|9���/϶O�}���[wꕕ>r1c�+����r�P ++���n������yg�ӆ��tZJ�<��� JW�� ++�ɎhtuC��� �������Rپ��.t@Ui/Nt��ds�/L��G�A_���֒v`���`Ves�7�0#�82,�$�}89�^��)P��C�|�fwV;��2�n�y�#�����٨�C�����'Sr��C{iX��Ucx�FY�Y ++��RQ{2@I�Xzm�J�'��0��ѿ��h�,Dc~��"��;�c^r�:����^�����|h�;�!�Tk0t#%�=���|�n*A����{F4}@�C���|_���my��2+�6��ѓ� -��6�l���DdkŔ��#4;��%�K�KR<ùЫ�t�����}$£�Z�ສ*�64���2��C�6.�/�<�X)P���y,ч�������W�{{] ++p�ʐ��<�ID��PP�uυ,d���I�رQ4�^�ǜFj�˄/V"�Iv�V(�~�l'���}�WX�2�9qw�����?}0E��R'&�k���ƀK�:-��Rݞd�#.-���ܭxZ�P!��kNUWn��B�>˚m>%*��/�o�9d{3��1h8��0�i[Σ��{���w�ݎ�.����;�k ++|ӇX�/"#�B2�C�l�ߟ��uO��'%��7�F���mT��P��A�a�)Z���4MA��=�~#��)��+\���4������>���;�{��@�}�㼨s�a�G��Qmru��}'*U#ǘ-0G!p��S�|� M~К�{-8�ZG:Κ�%t(���7��4���_�[��Dc��B�#te�'�DG�Rq�Ȝ�T�%����������� ++D�F�;Y� �Qef�0�^�6M4}c�����P�y���>,�����|H��@&�ij�"�N�>[��&(��kw���}��������\`��Ȁ ++�b�2�s��+7<S�½>���::���{eۇI�>^p��Ed��0����#ל}�U?���PJs ++���%�tlN�MU�fXXR/$�!����������v�x3�+L١K�q��G�]U>�l�b ��b������*���R�����}l�ǿa�}��®T",�t��?1�"Q��?RL&BV&�X"��N�O������6�8y���0�cM�NJ�o �D��O}$��(�ω�����K՝�/̜�*PQѮ<�4���8���,V|}0.V^�t�����P�62�ۥrF1�;>S���*u�L�Wޒ�pF�5Kr+�E3J��2J@?��Ԗ�����~���0A:���VW��Lj�c&C�T~C�0��=��Nym�#Z��I�,O�L�@�C��%Q�<��+���b8�M��[/��U�u�_���l�(���ڌi�L�X��,��ڽ܍���d��ַ��=�8r�5�`g�d�Ȋ{`�"��%��V�X5ċk�<���f �ޛ��_f�n���(h�7���Z@�Ռ�-/�g���U���L���j�_4S���X� ?��DL��`?A��vWN����kȓs�G�{l3�A3o=wN�W$��WG�Ge �� jَ����mR��u v�Lj(:�W���M�CbP�j@�G0���c2x;/�tr�&$�:�T�Z/axj�,斪�?����z~+������j�x�Fo�J�gZ���PK��3�M멞ϒ�A�(g��q�L)�XW����2xq@)=]նY�ڥ{�ix\��=�W�5�~� #ؐ>r!�eH�gg1�u@���RWs?Q9���^ԩ�?3��ͪ����r'\�k�N���*�rF�a�8��;|o<���'ϛ�����c�.(�%�yd���f�����Z=юlͰ��n2bu���H� Ǹ���t��8�y������TB�eO�.�aG�P8�nВ}��B � ++;S͔�7K���<wڙS�[߬LDY ++f&�k$�����'.�]|��ԒQ��������ҹĘP���.�O�014f�o�#�)"�ƹs8Za��ͱ���e�>i�Fs%{*��c����.����Uo���n�+b1��X!F�� BmD칭�w&�XcB�D-�D8��N�ѻ)��tx���ۑl��\�5R��05���4\ey������oY g��@��)Dˎ:9�<�0�� ++��A,���Y���/���Qo�(�Ӽ ++�g2�Հ�� �,�/��x8;gFU��tz��K+LQ�s ++3�����xUo����0n|E�An�X_7�S�yM�S.�ܹ�>� 4����3ʏ��{}i=��M)?˅���JR�����.��>U�N_'�����+?�^��2D؎(\��^[���W�3���g ++�3�s�3��������Gz-�S B{����)��9ܝP���D�&�ͬ�'���;q˘i��Iwf��-O�3�����vr��&�����t3?a}���U�R���/W����%�淮�{z���� �3�������� ��i-��n�Q�g���|�)""緼�=�O��締ݟ/����ɡ5h&3��+s�?8�K�ZYf�� !z��|��'b^��g�_�D�b�g�� �����E ��K�b2��v?��1��߇���ɰ��M���b'Q�Y��0�B��3�=զ���k�r���GP�U�O�7�~a�q����v2;R����~H�W�����R���s1�}B�f�eZӯ�"���P�u��p,�a�;�n�f��{`L Z�������dpsp�̌�����EP3@2����ʄ�}4�����U0_���B�S�fF�a'�M�'j��v`3E������ �4��e�i�e�m,F\:R�t?��f��v�����ǵ���۶�������ř�k���5��ܚ*�6��-/����V��O�����`!��l{��َ�L��=�lkߚE�!������@�A�����~��V3LXͦ��CI�b'�og��7�y�!\Zl�ȷ���e7َ>��:�|�I\��������:O���S��f>g���i ++����f;�����mET�e���_��[������� ��?#à�R�WA]i��H�6y�pJ��8�p5�*����c���r�.�b����}`�2�4��~0}�J�6�X��)ks�VKs���~C�ܗ���Q`�#�kUZzV�~����"�'7����_��?�����Y%mT *����0�v�!-p�'� ���UpU�E*�����"83(�8���14�g4hr�F*�C+��ӈ]Niw��)�] ++L�ы��UL��x.M���S��(�O>��{H�������Db���?���L��d&���������2k��d��: �?#M[� ++�y2�?����$f�}0�����a��� ��Qnרl;��4�6��+��<���� ���z���wi��r�?�,������n n�F�X[����\� 9� ++��s ++M�����|NF,����=�kW�\L��n�E���@8"ys�l�2����ݾ���#��}V����f̬� �5.>n�����+E�6%��6}[��g����O�+σ��;���)�vT��A�ݗ�Ȳ��&���g�ȕ���5F��8�;j>}~���3�fr$iÓc�?��z�l �STٛ�43ۗd�˖��Yi�� ��d=�1���䤸/�l��L �_�_��lӻ��c1�8��!灼;�p�Z�Υ��',�2�C��O|�!�m��N��md��\Ah��YK�~��c��O<���g����d4K��P,j����=c�(A/�5\d!��:c��Hep�0ze�X�-��E�x�'����Z�%"�{��o���2�蘯2?&A��7�x#r统�s>��\tn��-Л��8�nv,�V���sk�G�jF�T�yEP>$*] �v����Tn�F3zn��9�z0�z8I��U���)�z��X�j�X���=�%��x;�7��՛�����EF�Y��z\2 6���q�ᝑ�ԓy4���(�a���Q�}�1[������A���ܸ�7�9{S�[P�l�@戵F�}a�I���>�t�* ++4��<s�8?�X��s��ޜ���-(���I�'�W�>�od��>k=���3�6�4��q�v��$dž֍��U�#Ul0Y��4�-u�Tj��f����=�ԅӉ�d�*�cbXӁ���XM��X�8�'�U����G�{%$���I8���<{}KuH=l�u� 9�^BҔ�K� 4�Tl��/�r`]xE'(+9II����`��P�`O�˘:W�ixc��iɺ�+�(-E(*�i�����\lf���?�;��_�HOy�P�H}?�a�+��}Z���}��j��v���a<���h��� ++�m���/�T��@��4���HV�����md��۸9�8�&t�Îr�UZ��]�[��*�?�p��ѓ�&�_���o^(�-� QPܿ��#�d<��0�Ӆ���B�����!~��g�G0a��[En��A݈�l����m�^ͦ��_`���0m^`��*�t�#�._�R|�+��Q����\&/���M�Cs(�'r:.��b���i��PΘ�gP��H�rT�M��XV��#���)��Lo���Nc4"�D�6�TވQ;�����HF��)�� E0��_�����]����+ڂ#��� ��@I���A��,�'��. ++iI�ET���p��h}�m�Ϲ��t� ++�����x��Eᕲz�j ++us�d=�������S��]���g�s��E�e�Q�tC�y�@�O�L��҆�{8n�u�T˳k8]�j�m�B��0�f=蕞��ZA�C5���|ç����]n�����t�'v/ �I�+��پPDW��Z� nB�yư+iw��yK�$�-����ޙtq��x�=����{]���/چ@_�z�z�k{*(���x/��Wu��"ؖ�%�~^ �#��#�C�Ek��liu�5����C�E{��qÏy�e�+۬�_&�ӛA��q/^Z��¦M��NM���*�TM D���[��$՞{q����2�{���r�����T[ t��mv>��ڷr[q'8�$/ ++�wΣ���pDQ\�Z�8"3�� �?�h9�[�x��c�����l����N{�ah����m�v���E[���|*&�T�)� ++8B� Y�O�*@� ?sAL�8��rA�ܾ��OTz>5�Hɱ/Й��&Z�����Ww�hp�gH���_`�Αfd�e��p��^7��ͫ;|�ѹ�=���v�Z� �����^!Iӎ|3Ϯ%kD]�;`5VQ2��X�x��%�zJ���QO ��&}�V�w�'��7����S�ޙ>���#UŘ�4z�C� �������'�M�D���m�B,�T�� ++��3ɏu��5N��@V��"���'e�@�(s�`�r�w,-�9|)s*%��Ȃ�������.9��0���� ++J��FA�Xu^�� ++�!D��(��p��T`0Ԅ���� ++3g�[���>�h �ͮ�On��廛�\�����^ot�< ��$�����իLju��P�ʥl:m�7`Ne mN@�Ȫ[���n��N<�\z3���D4�Tj�cp�ٗCߟM�#GK#�>a�oa��&S�@&��Xa���C:���_������j[���r2�=E=B@Q�q�Kә��/Z��GXD#��=+n�0c��z0!�T����%u�¹s7�/�\���6����'/K5 ++�Y3�#b��=�e�m����GLn�e�+#����W|�a�M�`���y�<�=ϲ&�Ə���3�t�h����67k�ӆ��V|�E2��]$�$狌���[$ɤ��ۛ����)(��&�~q�j���:8�\oo����z�R�����o,�o��3r�z�hAu��&5����ca�g���/7�Om�o�es�V�9#�}�#S��v�fS���,��R�^����=�Ѣ�R�<!��[D2�n���:z�H|ϗK֍U��N�,�r��qf�}����"n�)�� to�7�E����?��<ZK���$sR0�e������̕�����)J��Dɾ���?1F�{��=�Jt��EA(�壬Y���K��;B�Jq�����T��[�O��������l#���K{������1\Ηə��c;�_͂k�����˕l��h���q�@�������u�}ӡV��/g-b����8��A`��J�&��P#���M���羋n �(̆p�"��Z��#Y���<B���3�������&f�CQ���n�[�ɩ����wŹDd4�zF�k^�o/���C ++������K��}���'"Fw�M6���X��B]0���؟���A�Dm�}���n]w�YכYuWLFX�L��{nqXq`�X�Z ��eh��`+���Lg��@��^P���^ ++� �o����f��G�c��Z4���6�H�2"bAڌ��g��E��ٕ�S����df�P�;4!�T[�a~�<F�����:@��̀���.�����tj�����ig�^>��믇�Ќ���j��nb���kx�ND+�Eƺ�U�eᫌ�4��<�'�&#���H��W� t�y5p�d�Ӥ �Tv��ٻW�"�ʷC��nhe�^r�K�h"�k�iB����g���Ρ�f�z��^�6V*�B~K��.�6>α��#S"W�fw8��Gĝ���e� ++;#%�>~��}���]�Ӥ}D��������n�C>�[=1R�C����<�0;-��t/��ݟSl2F˥c�����^�bc[N.���{嫷}������P�˴�֙��T�XSN�:1+#T��EHζS�B���Jd�p�gO~3��?�+��n���.8;�����h�&�<0���^�/\�|=$kl�W�sC�������+9K�nn��ݱyu�"���S�~��k������Z�4��K�����m���n��~�_��0y�c%A"�����'ba>9��r�8���E�"�ޫS� w�jn�A���w��}oh�C�n�he����L�"�=��5����xv�n�۽��5O3�a��G��/��;�B����r-5}�=o�}YDF�����'?'�r4�9��Ɩ����,�* ++ˉ�y�3\U�[��5�ɬɦ,�z��n��]��=��Sb��MC����%� ��J?b�w���z4Y��4N_uC<�>���*��d��6��#�P������Ya��-�Y$W��E�B++Qa(,2V�ֿ���� ��鴂�42fee�H��!� ��eƶ���FL�®f����jxb�͞#a�>A�A�O����W��6ؕ��r|�Y��蔶H�g�Q<_TYh�=B�3�ڬ���L� fGT5Y�t< |��'-����#���9�R�I��1������u�J���\�&i�`��<�@v�ñ�T~�-7s�i/n��7��:��s��s�P��|]� \$�Q�ۯЃE�����U����ѵz����yt��Nr��:lA��G���m��}N�øs5��̓� (h|:�%�eO��*��Cn[�}\6��z�1�3iQ-� h�k���B�5Q��5� ��0�*̺w�I��;��1�W����^.��*��M��.��wjP�J�x ++(k����h�B�f��c}\$��&*��3�[� ���%��0���7g{&�� ++T��=t��d��.�� Aծ�K�����2~\;�ې��:?0��@~~�0]��\+�!Kw%��ͅ�q �(����+�^ߴ���:���wˋ�?�BX0��e��|ZI�Z�,���o�0K�N��i+��6��"z1��)� :�:UX>�-;�s"�7����.���b��E��"H�e!��1�����6�*p��2�����X����i4����.;��a�|�d�]C�e�7�Y"j~Z�Nn�+���rR�m�Z�e�%mf8�7=����X����_?#i��E\Ɲhۙ)4<��&Br� �2k �,�>=���5)+���U� ��o��"��. ++k3A%Y,A�̚%012��0���vV�v�J�A7U6����� ++��<�4s����σV�Zo�7yZ��Λ�+��e���fR8O����Z� ����ԠT�o��4�6��x ++����:SU����ے�.�� �&[��Jn�|�}L1Q ��ᗡq7���#��g�>��4hT�:�T7\Qt�(� �;���P��ްvK�k��B�D�p(cs,�]�]�Dm��u��n��k#)>t��m�K�o{3Ţ�2�� ++Yx�X�Lt��R.�[���S��#����ɯ^�����^K�p�����ɧ&`����E�2D*�����[0�鸖�hB6�`���� ��mY%j�: �73*�6�."��� �L\#?�z����1��E����Gx2�ː���p��Op�I-�X��1Bh��� -_+��*6����텶c� �x���K��]^|�zΩ�u�a ++�o�+l͓X:��'���J�e�����\�Q����3�>�V>�0QxPs��Z�E�ƪ�d"q��@(��ԥV��zosGV��Ta!�z� O�L��5�7��'�REh\��zy���f�nt�]K>�GV̤ ���.a��Xy�ϐ���e�OTE�L������p�����s!�/H$F�!��N߀N",8���rM�獬�&�� ���M��?P�I��9�H�'���9�#�j$l ++�tn����<�������:�l�~zU�t�d�x�- h�7o����~�9t�|>G'ѷ����UϢ��Ηre��k�F��:h������~Z�5��B�;P!��E��m����1�RL���Cq��ɗ}R��dU�?��J�n�i���m��Ll�.7U��d��sTN�2����o챌�Ȉ�DP�l�������?K��� �Oʕ�dB�Pu@u����#�����5����"�����B���+����B˓�i0��v�t�V�"(��x�cV�ɨ�U�*��Ԧ�n���x.���[��W����B�gmQ~����L�8�堉Tv�Rf4|;��mtA�A �2{6��%K��7�i�s�G<��u5�)[�wTُ�搼��_α8} �H�ru,U���^�����6Fi�"�{� �����#/���H�z����S��ȱ��U���J5��c79�흊������C��3�=�~��r�?AHS�G� ++,��A�f���Ŕ���%�VǬRC��G��GU����.B���n���c����uD��>؆�����7d��Ӯ*ij�G=K�+��>²]�4B�����&��v��n��pE=4�w�K���Z�WZW�"Bq3�-��7�Ŗ��֛E�T�C��᮰�e����������e��g�rW�!�/���l����C��b;����8�~�χ/%��f��>h�G+w��f,��J ++j������{������B���{�٥[���G�E`�"0��"�O���_��c�WR>^��{���!�Qr8�)ݺ�c���]���ڝ�t<�,sԮL�"s&����<?ν��n�?��8XN���O^돐�9�!Bu��j �̝E��5~�g�!��^t-����:G-�Ĭ�0����"��S��=����E4E$�"(�QH0�6�������'��������Ģ���T ��+s���Ȗ������R����]K]q"d�{�C���T�+O�Wﺯ�[��TM������^r:g�2����w:��cB�2��F��|�?�p�X�t ++'o<K���"00��?��^~ 9]쫱H�G�"����k����F�(�?����J�|���l)�ȟ�pU���XzJٔYt�E�vV��յ�%�V�D�I�C�1��)������h�ZK�tpB���xiUŢ)�X��z_~���32$�F��ջ� ++m)D(R�ʾ��Y����Z�Tǃ4���c���ć�@B?�� ++��� �6j�%�vY�o8�,M�j'�a��@˯��Ѯ'�t�в�3�g�)tmU��7ʜGB-�5y�stD>��e�{0:�&1H�y15F�s�;�������)c�XR�ٗ��������"��d��6�S��]͆e�\��ސ{ֈ�����/��& ++�$Djw�����®�1�I3�Y��8�.�V��&&����ݙ-�{���a�����Ĵ���$�7�ط5��=������$�EvTڽ�t��%��7�Á=$��x��1Z�F�h�N�j�9o�e�e$,��h^���d4E����":'�S�ɐ��^i���wsV�*Z��(u�v�6[���M�Rsu�@�r��X$C��,��sXPK����C[**�u�Ђ� qX����R<�x�t~��r�<20Ým��maN�N^.�$��` ��`�����A� ����h49�N��٭���uD��#�_�#h�^e����Ic�ӳ���ȯH��������Q����]'��0o7|�}����mQ�Y[�p���Iz����m����l�����$P�b� 0����DzU � ++°�r���_C����8V{B�p]�����E��T=�� ++��" }\�Sg����cU�dc�.�l@��U�a��=�$�"y���e�痘�Um�����K���z���9�T�; �,��A�.uO�Hq�pW1mq$ۮѹ���L��|²7%�?��~r���z`�~�G���y�h�m���0tIJC��i{�`��9`��Y�6~��l+$洀�$���@["���_ET5���(: �D�F�#�Q��i�I�7�9��O�]������S)�_��ܟ���7c�5���ѿ�C^=eD^n>@ʨ���/�#��g�L�*�M3�&&j��a34N�h����WRp*�"�������c�,��D��n�v� ++]������F_���#j@��~���O�CF3�r�/����%��;�*g�W!�=k��(p�\���� �'�6���&�V�����E������+`Z`~�M?_:�4�"P��3urw���Kww]z���E���-�crn>�����l�J�� �1(���s��;�N���`�i4$�����ѥ{�^�}�VX��؛���,���~� ��\Pя;u��+�p��N��m�(8���d�E2�������Z]װ'��Fv���4�,C㗀˗��!x|�(��r�6Q��G�J�/�k;����o�(�WE�����4 ++��$b|�w��y�1u�Lq����4�3���)�A�W�)�/���bW�]a��7�$�����f}%���?+������IBȊgy�8���/W#�&N˦)��9+��#��k��[Dn_Te?��U�R���bPt���06�D�Xe�1`Cv�p�ѽެ��J䚈-��c����r���R����qE!B�����Z�r=�#�Z71�=��]��C�]�XM������?���J���B0B��;�8���m /�8}+��G�a��a��oO8��"H~��˒��/i����<x���1�v�Q20C�R����t� ++���A�b�8 ++�W2 �N�W�"1��^}!�*3Эuw9H ++�躡n)�t��0�2�b�K�au�Ԉ��\V����Iv@tc�AU=��C:~�����f��G;-�Y0_>�p��<�7Gp��k����,�:q̚����1"�������YC�*���'/���f�[P餱��j7Fn��rK�u��i��zn<�P������~���%�f2UWWy��A�φ�~�ޛ-�h�@ZU���ï��竸dx��D�����B��rn��5Ë "3C�U/C2��m:�Z���/�ȭ0�F{U�ˈ��Ҷ1:/mPZ�)�wy!�5C�m�)m�&���J|lF*;��c�k�@�N��sFٚ� T�plhvR6@�ɢ�����G���D���1�����"y1:��X��J+H��uu���H��F��&U�V�C�$GP��Cͣ^�u"=(Ӛ��!�3�� ++L��J�棥��N�l[�U�rZ�s����`y�7@�Ew3O1�J�)���8�o��7�R�'��X� ��2Ił�dM��Y�ڂv�Cͨ��ŮC�%��&�f��f0 �KOA��� Ǟ}�Ƙ���"��t�K��s�0D(x��5�=O ���[��������T�w�Z3����a�q �C���c�Q�L7���&z>*ŷ�b!�)8:B߭���q�-��s?��#�����G!PP�4ޔ�%[��{;�DS���"W��߱fZ+��W���>��Fk�Q<.�ͅ�&\��5pz�-�>�o(�>h�B�exx��MyP`O��4��$=��氒8���_��8������hM� �3��\8E0X8|7�h�-Bhɖ@���z�����P���K_E#�>�#�w�*r�.ǹؓ%D�3{\�����M�1-��YS�w��t�LP`����fc 쮚��|���Nu���YӋx�j�X��p�q�?q�##i�k��-� xu�H���5̘"�/<"~(�+�o}X��L�N����7�2n2`:����㕐z�M]Ⱦ�����Q "��:��y�+%@����4 ++�:�Gac�Z��Щ�Ic<�!.p���S�TV�|�y��g�?=�W�� ��Ez7*�r�h�b@�T ��E}�$Ö�����X`K�@z!�#C���%L�52+�܊2����t�yc�Q��Ɲ��2��5��|wԘ\�c�N͂�u�����僧��P0lj[ '������c�UU�T��T�c!.�����]���_T9�X�ɑ@��*��i�:����A����g�jc��L=4�:ͨYRܩ��<>W+�0Q��؞����W�A�Λq<�YIFD1�]��DV��M��=���%�_ ++�WQt���+� %∭�i͏p8Y��:5���F�͠ ���'�-U�~I���j�T�a�~`Q��pn��Mp�#�/Ag��&�s �������@TK���8_`�C�i���?TB��H��F�%�~�Gր�b�� ++���8@�����Ӡמ e��>y�����C�� �7� 4H^���P��r�H������B@X�³#�b�^��(��-�#��D ++�"H�o���r��8{ 0�^@��HH B~T�^w}�d�l<�gY^�wk��\'�$���D�_�ꆋ$����IrƵ��&!�e>�c?�tj ++�W�=��\x���������f �P�N�^�\DNc�p��o����h�4��)�e-|ŭ}0;���0y�z�waxR>�TE ��b�/(���w�@�9��."��q_���Da���T3�zh��N�MY/�rd�j�b�q�D�lG'v ���!���(,L��k��g�x��s< ++�s��RC/��c�`��Nsl�v{�FF�Si^c\��d��$ź{��;�Dۉ(� ++C�aAW'0A�>�*C.�;����l��I�� ɔ���## �U���mc� &�)�pȨ�Z R<�@;�8,I��K��=0hs&F^�� ���*���$r�j�\k�������EC�mHћEc[�n ���]�gB��̉�lkM3a��m�4��n��x���_�&4f���Q���~E�J?Q4zT�<VoW����Z)��Ok���r����.�eU�_4 ++R��f��g%�1���Z�b����D�G�w%�JNR'�"'E��� ++�~F�x�*�@���]��H�,0�B��w�~�i�:i7|���g�7"�>�JT<TF$�ptFݙ�� T�4��A�=_Z�6'm ++�bO��1�y�i�����X']�.��6�"��m����Rsܯe�?��@M�?�J��V�����^hʋ�#H�����3�A6y�m$+*pH�f@�%>����U�n�����R�J�K�y4���+kn�WW�P^T@DJ��A�6ͮ�a6��j��!���=Fm�K�)ޒ�*³����/�<�ܠ-�%��$�e��!+�fm�b/�ay�&`Q���h�k���P��fý�z;�c�f;<�<p���s�.�d;֜������W��:�X&�]��T�ڪ'���=Ayy{\�|*�N 9��$f��6Pa��G �����h�:wX0;� ���>�ǕY�;��C$R�������?"dU0@`-%����#|-�{M� ����s�NK��SRP*"V�q���cNx�_g�>�g�a�OdA_yZ,$�T2P�_w�~��jH����̺��G��#^��s�,�R����4~�4�*-�c� ++�9�Ib,#`�F�t> ���. ^�_����f�����#�V#Tz�� ++#T���pt-a�8�o6����"Z�%E/�dt��6��*��"��P�j-��97��Ti����T�5^HaB��ֿ�sC�>�y�#2-�C4�Av�vFO���)����'����@h��|�}j=���-�a>-�i�f��g� V#��m�嚄/Ǧ?yPH�1Je1&oZ&��f��Y�,�L�������oi�G���^�c��y~�e"(]�T.���_���T^-��/��m_S, ++s��V�icظ2m]՚�.5����5_d� X��⟛�������Z����˱���ܪ{�u/�(mC'ң=�^xn��e�e���3C����`�'9��� U^@����d,���F����WG<� ŐF����G������%:�E:��.km�]�����H_bs��\(��B�h%��9�.i�����Ñ�*�m˂�tW��nTR�c�'*���vxW��F���'z���#Z�x"�x8}/V��^����=|� ++f� 밍o1��h9�ynrJ�V2 ++�È"[2��Ys��n!'��T���qx(�yӬ1�Yv�WFǝ�`�N�v�����l����>�sԟ#�Fo�� A��pߕ |!�D.��ebi�J�Q���M��;�Ƴ|�{#]fˢgEuө�$�$���y�y]�F����U����hb�ei��;;"�7E����xF�Y��s���F���A?�=ȡZ1 ݐ[6i �E�=]��d��l�vX����I%k��_U���,?��`щ��J�M�GTA�JL�Io�Q���,����m� 2�:P�_$O�E,�mU�C�������s�b�&�в��տ-3�6zc�������E?�H9��ц`5��+�U�#%��3`-H��"�a˴ �kk�F���T��ڷ�#�_���mtƘ�ϭ�Me� .3=`�Z_�^hZy�� ++rˊV�G�I&��-���٦{������A} ���tM�A�Yxc��� %ch)B(��U�Cf������O<�*�'�ݑ�.V�����Fo)ms��-�d#���NA� JbF?]�;kş�����`�V��@��g�7�z�eF�r���B���V����Nu��l[��գ?�ݕ���9�|���>�yDb��#�gw�5�>U�Z�����OJV�C!�Zϐc +8���N�����]C*H�33%f�3�� �t��p�i��6V�D�ӑHc���Yt/��kI���,fx������U��ԧ�`P\u�1g������hV4 �T��5�� ++�]Oqm�{�,�Bg�l�hC~,�X>A�5�����u=P�C<��fɝ�;3���%_����~�nL6x�{��N�2�,�:w�z��`Cм��%d����&� E������� i��V ͠����ET����܁�����!�k���a1�*�DCd��֙�&sj>��\���x2P����wnq�Y�ߙd��& �\��/a�%�{� ��L�ԝ�_aB�c'wA^Q�=䋱�~-�����8j��L�� ���tƬP����i�C�@<9ۣ| !�ࠛ�����6>V��a e��?> ��[���M1�=���fE*J¤P��3Ks���J;��5��]�_ ���)�=�k�T����.��K�Bbڔ�MbL��;OJ�1,_����>h���u����ڿ(��NX+��$�}%X���L��$\6"a�鞻��qٌ'��&���� �$�u>��\�����L&������ ++�@��h�J�H�{z���9�KT�܄3�K?��Y`_�^�0k-��3�H�g]�I�MSN�ou�P�H�h7��7r�s O���D����l��5�t nó&�i q���1!�x�g�3֣ܵə�2�����9 �$M�<����-����������T�u��o+D�7JN��V� ,B�2�:"� ++�GV�zR��.Q5lӀG����[縶�uz�@=��g��n�/����/.�dDSw- �T~axC�#<��2\H�-�#$�Cm� ++jZ�؞x:н�1��\6�;h�(�|f���� ++R�}V0X����#>��8�o�u���t�H����"C�Ο�TLa�f�`Z��xQ$#b!�ZB^�z�%iL�<뻇КU��(EU��2��WL���A�k�։Dx9iu,��8EP^m^Q�paT�%5I}o��P��N(��L�k(�Dx�2�v�a'}#0���$f4�-�VLG+�|���Ͽ����*q�|N*�V��[p�a�z�uF�<�(�7t5l�1w�[B5�dv�Jnt��1�M�ҕ�%x�R7���ܿ!��� ��֑3"ir�pƯ��H����"I�F������,*��+�p�+ڭ � �2����\�%��%��(����\$<Ъ?%�N����1N9��Q� d�P"�,N�LDH��E���N��/g%B�$����6��&���q.i�>�bX.���C} �_�$<c��:)1�:^F��R!��Ҭaԧ���R������">2�;re�e!�ai��yD��gG�Ы�8�[N+�������|/%�ࡓE�܃g�#]�Xz�q��� �>��!�G�DO;c��Qaes����_ٮ�#M���!�(�D~�n}��!�̏�l2�G�����*��m�/ߵ�����F���o������N�}��B�͉��4A����3�L%x\������>߭?٩HL>{�䌯&j�L7b̟��gA�-8��,� ++�Ma�Z���� #J(��c\�˜��±`Ap!-8�=�L�`��n�՛��P�]Ѡ�4�� ++�b�ă��=.L_�ªT�ظ$� ++;�\LD���B��)g�^q�H@�,+~>�:�Oe�#B�+V{͐���/�jģ�s�}����w&b;���։�D���Q���HH��k�d�s��u~%� ىP�8T+��b�Ja���6�����P�īr;GJ�� ���nH���(�S����'�谁tW'._�+���>����*�7�"M���hB��K���$����2�-_����J~��'F���>�� D'؆��>g�χ^#q��t��y����bFp�##Ф>b[h���b��"���V�0T�㩃�� � ++�B>ϳ�%q3�LS�E���Vt��_f<���a�y��-�Oh�_�o���[����j�t��tf�X�.xl ++콳d�^�P!�����X$Ѩ��h �<a��I�&� ++(δO2N�>?��/1�X�&��@�Yю���Ρo�� }�����W�&~�;�Ɍڊ�苀.�Y�Uf@�R�W10�JU5FS��B8��;�~�Ɛ�~}���t��#��'�c���&�A4? ++���"�����7�r��(�ٛS�K$ D�w ++��[�o��V'v<w���BM=��!��䏌�A�i+9蚹@��1ˢ�s�W��&���(qaƌ���`eF��p���PrzX\;DOY�H�cK�d���*dP���<#���峻��X���5�n�̨��|�]H�-�I� �͂S����h/=@�}�Z���?x�C���(ηDϏ��!U��i�(-�р�Sd�X�ʃ��]=��F��gן/��ݚz�h����o�����w$s$�|�u��k@���Q*C�������Nsc��L��<+]�K���JnF o��>�K��g�Dk�O��"(V �eBR˒%Z� ++���=Lg��>-.���r�XA/|X����!(o����.Šp�i��Ah<P?;�E���Z�S@�^�o��\����Jˬ��40�1�V��e|քԵ���B� �2�,�Ϋ������̥��i� XY풭�4�i�揸-ø���r%J�Y�/��Aҷm��7.����!Q=� �γ�X��TP�?217��ZKL��{9}�2���O��k�vd�)2���y��4�L���?1Ÿ1c�+ ���d�o9����`cV�N�0j�(�9�5BBP�,��F8��ߤß{�ڗ(:��ۙÏ����{"E��+�M�GvĀ2rZ��S.s�u����F<����b)O����OP뮁[�Tn��7��o�(�\n�4�]�م��5uw�:�B��v�B�<��~K�*��y��y�y�.Q���9�Y���(��F|#����mm�Ĝ�$�v�-����NI�)� A9����J��Pnt�;�p�ZЛ�a��� ++K)p�g&�A����iWۃo3bir��݃hIhXu&)pI�/I�w��]��,���� ��u���2�U���1�FI`07�"���H���x\���Yn���a/�ɫ`������v�6�5f��C���*Y$S�z�>�������m$0�Q����7�F��[S����C��j�B�*��s�n�?zZ�l�y��>����@+d��c��NФ�q��[��dɏ �8*ͥeF��O[gƩ37�=��7RW��y�xA�P!��`Z~a��O�U��ދ-*�m�T��.���"s/W*� Q^]�-gX��0��Z)� �B\�I��묧��b�b�@�%s����4'%��+��)���������#�f� R��hӵ���} x-�^x��(�ˬڮ$����ٔ̿�9>ke�T5��#k�da�]�����A�[�� ���Wm ++K�J��ZmR.("h��4��1/GZ7�{ٜ�+�[A�Erd ؆U|G2���`d ��k��J/��(��xG$ʴ�'M�X�G���̳��,�47�Y��h� ZZ�l���V���#Li�[I`��1���������� &Fy��q��k�{{���fI����na�UL!ҫ6���{� ++�灍 ���5U��+a�,uH�lp��zw�v������v��_�?x��囎(K���fxc���A�Θ:����qW�!:F��M��p��yl(�IB��W���#Z�yd8�[��v�� ��Ӱ��77�7{� �<v��vZb�JQ�I���?���Ē�\7@g^>�T�M`�n��٪˺ψ4�MW��'�W��yo�O[�G�X:v���ǥ �p���$zĵ���{��̝1�������F� ++ǥ��Y\IG�c|� ��V���MgH�YU���||�:=>�Xcw>ʻ�Z�5��������~T�U�So ǒ9 �8�F��Q�/J?#o{�#�</�첹)�bNRr2�d#��@f�A�;�&P��6`�9�}�)B��L`��UĆ����wu��$��^��mB6T��1n$V�%�j�M�KX#�у6p��=n*�+B�9'F��T[���lF��h�\��4ش���H+)T,��\�}U ����0iKx���J�5�,���Eē$m̸.�����=#S�Q �Ynd��i�[��7��c��2r4�|87�?��{Cu8�8_�L���j{���c��]x��F��R49H�'�L����U���. �SW'�,�;�X�g{"= ���N1���w�r�չ� X�� ڃ#��W��a8�x��:\��W�~�g�M�$�v-ex����}��S�0�3�A���t���ܤ�qV�U9W�a���|}�bD$s���,=!��}8A��-f��a��ubԍ�0X�7��1�S�\4!��*�R�`,cM�>L����-�f����) �1�����y�q����f�$���l��D����W�1ky'��� Ā�k"�,o�2�!� βj��Rn�\Y p��'~p�g��.����e���֯�z�I�E��@ܔB����p�(H���I{��*CFi5#kև�7�u�ex��,7{�0�w�Q�M%�;��n��c�ט�P���`l�I��ݛ=ZhO�T� ���o�R6͈�.�u���x�s�s�=�ק�@��' ++�W2]q���{-Lĝ>[�Yh�ȡ���}�a�A��>��z��O�K96���8��E?$��)I�ň���'!�D�X�%��s��\�~Ӡq��F�7�~i��a�7D����<����8%��3�,�!F�/r� 7W���������6�&�&���ҳ�мQ�t{��h&Z��} ++��u�=�HcI�.�7�Y��@���.���Zs�$�aa�s��(��XJ~(O�7�2"RX܉��guM���J������jI��JB�+�|F`MM%O�T#���SH�Xh�f�e�����4�=JE���}i�J�F*���%�_���?�G�h+R�5��˛���(=cn�'QBcԶ�����r���z��AsʋjS�j�a��jK��J��bSY�ߣdz��+��ow�?G�$��d�d� �@C����i�{eՠ�DjZn���"ʐ��ޱ�- ++~��fI��u��"8�v� �$���)c�n���!Z� ++���<��eԤlZ�b۞��np5��� ڸC�4`�>�������sDZ6��I���X��,%����(��f�KpFw|�S�0�˗/>�=[�?��y�����Lq�O���P�����Hj���NQm��iUk�wM����I��7���: �E}?c�b�v�EB����i�u�d.��a!P�E�k`��#�U91+hcK�;oP(�i�yUh�ʘhל&��F��; �9���F�5��O6�<1*�^����R�o%H�ľ�]�Ђ��Oz�c��#'�V�=����'�Q8��H�7 ++"��k���Ȑ f$�)B��4��b��eͪPs8�qv�m5gx�+�(o ��;���U� ,1�j��sN� u78ަ{|�� T���i� ��e����Sش|~?tN�$i����y<b����.��f̷7�VZ٤��|���{��YB��Kx�v|84E��]��?_���B�0� ++9U@��zG�S��_������|�'��f+?Kwk/A�5Fb �ysB�b�#���Eew`B%�E�5��"ck�F܃h��3�5۶b���,V>�,An1����7�ED�x�Um�j�w�׀�X�������0����c�;cfk��3���N1�G�z�LQ�L�Ӡf;�<i@�&�AW��I�Y`���N0ZQX ��%Q �0�C?��%���"����Y���s��Z����/�1 `jx V�/��?R�������dHR������D����`���R%��6ٕ��y����j����tM�=�bHv�ٔ��]XᯈU��Z�r6$�=���+E���z-�zZ�����Zi�?=G���p���M|�i�.�\���PX�ܶmZ.�"���I����0h9j����ǫ�A�����/�{�N@B�A�m ++�C��y��)�I"6��LT�#�����c���f����"x� ++�ݿ��y�F��3�B��#=�д�=tͽa~o[g�c��P�aQ� �r�$O(s��;5ca�;7^��i�rs�룶��p�y��>=�k ��l�89������8栨��|}q���tu#R��j�S��ʂ�5�-���?��q��ΐ��f��\0���g����~�c�O��}w5�;�p�qLu惛av����ݩ���4_s�W��{śo`�Ko���Zo���D�R�8JԎ�(a�� ;+�$)���m���'��`&��Dv4��}���9�?�g��S��V��ɮx��g�`��0}���8J���W����em^G��>+��4e�@5�k��`�O�E����.x��R�Pi�s1 �����bJ]�3��4o�c;���6-�,<_����I�~8!kq���C�|bag����6<c%d@�X.w ++Y�8t-�����w2%5��S�r���^���7��n�B\] ��1�o���/1XTCJ�،̞��j�)��@Cz��hF�.NI*u��3��u sP�9Ѳ7���ݨ�����a�6,P����֙y�F���]}m���+v/�f���BQf���~��2���M��!X{��,/2��SR��5��+Ƹ��E:o~3U��+g�l��<��������[9�ϰڟ]lN���C��*����G�L3#v���yj/S�m�A�{�_.��ѩ*P�a�R���u�T�#�6���Z�2��QӃq�X�h �Һ���u�f����(�<0p ++6t�֩�>a%6�E�c��������[X�0 ++AO!���'���?���\4Gk�l�җL� ++��S0{���+���q�#���D��5B��ᬫ�}`����}�c�_ ��16�pl(�B��~<,����x5�σ)7�ti� ��b5$�&I�B ��X��$��;@+�q�9-���/&�4���q�t�Z��X1$�.O�( ++������Kp�Q����:d[�.��H�.���������K[�\�!|�ʚ�b�sU�cX�0���H_�`�v�u~T��`87�d���Y���j�Z0��+_��y��,�Zq�%�����e��P�nR=��&@ ++&9@bƏ `���Þl��&��_g0���50|�y�Id ++J���Rq�_$z�R�����?I�����ZY7��.���>�~���>5����s��/��L�����������#g'�:���,یۼ�G2%W�>���ك?D����fŹ ++�}Fy}E����6�Cp����b���b��s�#���4o������x�ld�ý�5}�.w�J��i@����J����o�L��z{�P?4�`l�'}�N8M3�g�)�/f؟S��k�E��a��#㞜�_H�}B�r�{���A�ou�>���M����Ȗ��o�+1�w��5����ኌ���sVm�1h��3�@��Ի���PG��or����W��e}g��Ȫ���w ]���,{�+�n�,mI���.�6���6*�����hBl�L�F�ˀ`��rK@�3�0��5�ZY1L���������Rݘ��� ++j�rJ�Ȼ��)Ѝ�[��}�F6����S�d�vw�ܤ �@���?���I "@1�|}]���9���TpD8��+���$Rþ�lA�3�W��0D��(pvI*pt�X���e��#D��5|�!h�D/Z�3 ��I@ә&ȯ��K8b�X�i�*�%�� �raX%CBF�Z$�t��$����ݖ��,�u��.L]D���smH�����`XFC������-VA���TJjl����pc?� �o�����i����`|�i�iE���^�"���iH�yܮ$<���Vn��&��r�8��٫?.d|b��Ϻ��Ao� ��o��i��kF�sٶ��}����4��öޭW��-��v��(E�RH4sPYS�����lH����?�~r���2��^e���|��WYҭ��$$#���[�^9��M;K����Ҭ����z((h����-*۸�8�w,��~����&Z����?��zg}��ԇ��ť.�zR?�B����x��F>�^����ۉ~�"0����$��j�]Ł��'�:���] ��m�v������fby���Kw��H�2Ć)ʇ ++�>�>0��Y�$���A�*�<�|���Z>� �Cy_?��4����miݢ��$]�W8MA8��RU�A�8\������YA�D�I��y(DP�7�E09I' ^&w ++ ++�l��ޢ<�����@~Y�~��B�9��6�*Q@����@��GM��Q�X��N�� V2�d���Z��'$��x�/3d�s ~�̇��9g4�6�SA�~~y���ް6���4�d�|�d��~'A�0l5���� L;��>��z ++��H (E�Nz}�,@�9Q~5��r�ѡ�Q���=-�9ip|8PF'����s�ϥC}�Z_힝�Զ��̨U���n4���% ++j/��,RC ,�?F��c��{�aɤ�ah��T���r�/8��$�gx�8����d��z*@BP�vu㋭����L<���nw��� s�1ZR���j�1G�ڥn���Ƙ�I+-�=���z���F�S���hn@�iC�%CǓ��q؍l:�k���kK/��=��Z�p�u�"V ;l�;4K�!�Y�fz?@vP� >a�@�m|�S�p��u�<ZO+L]9n.YU�:��<[�7*D�[_���x�2�θ���_QN�[p�r_!b6h�75����1���u֢k,+�(�TD\���"$ �z�!\~��A�CR0 ++��E�p,8-��9���!l@�c���ưK�.8N��Н_:=��ꏊ���O���X�b&����s�#�e��z��K��{�Q��Q�B����F��#-�5�`ٗ]�e�T���P�UP��Y2�z\��ێ��d�cg�\��Y����RLMc��a{�NЯ��Ve�SǦ˼���!߱x^~ڋ9�sKD�����2�ANTz3P*KA{I�5go"��`�c�>�`� �|�tU]���J���L�"��P����GAH��[����r����$�Z�g��ob�HR��)@*��\��+�Z����ζ=槽1��";sO��.'8�����*+�(Һ ++\v�6�Q5�@�� ++� ���f$�Ҽ%d����%�/Q��\�CR��8�C�!D]C�We����`��-�<�w����H�D����@~����IZ),}�\3�1�M�x�'( �rnxu�(�1��3�Y�PC�%J��~{��)�Z��mtk�d>�#�#����5����"a�v�|��ݦC�!߁�b�r(?�]?�UK�;Iim���)٧0�2%,J Nb�1� ++;��G��ڊ�Q�I��a�%m�N?H/��!P ++����M�5��� Ne��q(B��(�ơUE���"V8b�%Q ++�@�X��"�Z� �i �����D<։�L�2���6��m�}�lx�Dy�|yĶ�r"H����f�i+�W�?��+�JR�>�B��t�a��і����?.�jl87/��.q����V�VT0�vSK8����˧�W�0F�y ++��!?�����!Q�"������� ++S �v���}�Nh��~���W/�L~U����9(�=��2[j "=��Ј�.:`ҾxL#�%���M�8��G "��r{f�Ց|?�9�4|tUj����a��l2T���M�)�w��L�����M���٘2b�� ++��Lc� �X�e`�{��d�S�Ȣ��",�$,\k�U;_��R+��|;?�����{�Nz� �ɭ�=�����?��#�q%p��O��נ.�8 ++��]���`�f�D!���B�[��v�@ ++� B�!�0��mLt:�� ++��_�o<©%%FX�W*��U?�X��_3��Qp�v��'D�Q���?0Y ���lk�"�#ǰ�pb��n��#�,�`���,h�Ym���yT��&#�oX�b>-*�0��Wj�>��O����gA�����WOyd��g'>�:\�_�u��\�nn���g*�?����1,)��L�h��B�m��dt�T2T~\�QY��'�bܳh[�K,b�!�KPP9�F?���p�ć�G��!.a@0��A�A��:nCG`�@��(X��a�" �n hS�aIM���gU~쫍���`�@��X�E�g7N���>䣞QZ#9��g��&���V���Y�م$�wI��3W ++�3�*h�Ȇ0o��P�.��J�*�J u���1xO�aJ��טe�6�q-cc�_*��.(�*i?O��y">ɴv��N� Ppx�B�h�ER�W+ @���#��䜸!�5 ++� ���� 2��Qm����z��tim#�2=�ap�r�<����8/?�XU�c��%Ӑ�����f-�_1�!�ҋW�Y�q/!��eG�xU|=�nT��陚�ѱ�i��.:�/d�<⨃f�7��W�|�]�}8x�p%��H�]]�R���x�#)�NH0t�n��\��E �G"�ƑU�g���Չ�PӤ֡� B;�vS���`��OǕ���B�>��v��G�P�� ++w~��Y U����b?�x0�F[O��x�4���k+)7�f��:�T���p���bZv���9���� w����Uo�+aσO����� �b[ǧ�� � lN*������C7�Wp�H{.;�]6 ++��)Ѱ:�L����<�v@7��uh�ynVFX��'��ڣ�H�l���ѫ>��kW�����B���nm��ٱ͆?I�/��o��7x�-�0��6ݨC!�a�P"5��Ьn��` ++����M5�x��r�8N�0B�k�0'k�)�/n��A*ۭ$_q�� 2ڿC/� �ڐ�B�h��9��w����߾�0����� WSa�Mk����t��vw ++��]\��SCX�D ++n�L>����u�[Ɋ�|мuܖ_�Ų�8��V��X!�~u8��&5�G���^7kI ++宏���p:튄oi_��(�<��?`�S:����s��d�"&%}��bWE�Y%˫q*� ++���) ��M�`ٽ�h6��4�C�Y�惜�BnA'����6�$F��z��?��V��+��d�}��S��X�l��7�1�Z��J�18{1����DV��*~B�C|�ҥ{}ʜ��n3�q�' ��h�%���o~ �� U>Ԇ+'m@�n�_��躊J*��9K�_>`��z��m/��]K�ğv����>����<�a~A9���ҳκ�� �mT��?���%Moa��P�<����՜ʕ��2P'k6S�,Y�p,�.Cր��HI�;-�E6�`��_�,}ޫ��2-���S�J���o6���w94ˍbuS�k`D�֫�@��m3p"�IK@fR�����+���}3� r�xQ�����AYBB���"�-W@����l�sOϜ ++w�� �T�'3���@ p-מ�;ɓxf���S�6���D�,R��̧r��qo���f�Ώی��r�.��tȓ�m� ݓ�)c�M� ]f�����Dzk!��#f�s8�D�"Оv�0��h���<�}Ň�/9l���N�R��G!��t����Sſ�$������<�XWά\�%*�BfrʑOLR��v���Y �X-��ei}��zg��sg�(�r*O?O����T��-��Iz���)�hrH��me�*TUp 36���l���>��Eee�9n'D���W�0D��z#���Iq@N�^� �o\c� ++�2�tZ,�r^XI�Ξ�����Z�H¬^*����4�e%$���QPI��?���JH�B�e-fůU�avň����6��[����ږ������P��w�G(�R�"�q�R1l-!e�I�G~G�tW-�գڦB��$3$yeK��jꕀ��E4�Ob��-�d��"Y�B��S�nd(�]���R��eA9\�Y��H��ۙG��#�l��h�[���� �99��!�e����d��uM���i�8�j��8� KDشm�H"@В�Oԛ�J1'�x�x���iF\Q�9�CD�S�A�%�R�ɉHv��G�DA}K�n����!23��*�^~�b���G���_X*�"f% �|�[�dzz~.-�xq�B��G_0����gЅ�_�oܥCr�y[y��d��H��Uۣ�<.��v�æ�<.K�xn�o��s�<��ܟE?��j<�ԗ�u����QGe� ++C�e����mYQ{��@�S�\�K����h�!�#"���po�s����Y��F��D(e7�Tt��-Bi�R�(��&��>�h��:�q���|�Ί�v�T�dR�����G�Z���<��Y����>�V�Z�nO���ü�,$����D��A*2L �Z�(��vyoY/*ِ!����gz�WCn�}���W�R�+W�\nB#�B*K�(C@����M��l�ƏͶ��Qu��8"XZ6�:��?bY�V��U�����eB���kK�]ð��6�W���R�As��0VoW���$!�1��!�=DZ|�����9-��E�x�$Ѩ/����f�5e�.���6�.ɓ�����Z8�7�E e�:稇D˄��ɝ���?��~��WJ�n�Q�����i�,1�Ʋ�L�;���]��)bz�Hu�� ++m�|�rg^5m�V5c�����+�0�v��X�m\�1o���@�a)�r�4� ��2F�*x \m.%�W���/Pt~1ڕ6RFڜV�6�����3�/�o��#w8�<�ofЇ��*�)�@K2�|].Ͷ����n�x�_m� �AoD���h�T����G��Ђ��!37`5�p�f'�s�b����uj弤��9�[`VҮ����y㋄�z��^���84��)��=S)�|w��j�e~h4�p���ENr���Z�H����,g��,V��[��v{6�ZngE�ӎ|���[�`�'��S����}`�2x����;����W{��q�������yյj/��1^`T�� Y�~��l�H��jo�91i_Fԫ�@�%�DW|�'�iFh�Z%ɨ/�>�Ž�*kE�����r�u�9Q} ���6|�҅}�>E?�ݧ�i�������/�}?B:<�M�{�F�/H@��kϮ�jM��a�����NuT`hj.�`ύ������ �Z�X9��&*�����rܫ�\ ++FH�$�9LҚ��b��~���P�?�������"Iz�]�vj�{�kNÐ7�W�����֫Q��U�hP��ק���f�+�6�˖RϯG���FY��T��EɾFb7����~vmV¶{��~�Y�Ǟ�����3B��6�~&KC���7N��7���b��M�G�y�vFM�hb�"V:��f��g�k�(ػJ��l��դ��<�8@�;�q)�Z�;/C�@�ܤ6�7I ++g��Yv�_�������6�n�ж\7kA��r�U�f��)�'i�� �⌡�~U�<�P�=���ȨO4$�rÇ!m�U�+��G)�܊L�yϧ�+2���M�z�o_��ƥ��K�F��v;�����r�8�s��H �'��i��ϟ�K����q'������iA��0JJ�WM&�ou+�^D�'Y�ش�m%��#V.�|���G�����[��ޥ���`=�|��iկ:Z0]�[�Z������6��ɛqO�H.�F��-���T �dNq ��O����u�%0�l����d����x�Lj�m�a>m��s�긺u[��wjָ�Lݝu��j��e�M"�W��{������TB)� �y�؇HJ������>��1Ԥ�4z�i�N�&j�¿c@�[u�t8� � �U0����9!-�Q1 ++�&7�Du�")�f�u��7���ಸnS���I�`�O'����Ӈ���7HkWs������,�Sˠ��߹%�9����N[> "^E���v2C����őw�Sn\aʆ��vI���'ОVrk��J�E��� ���:��M_&`�ʖW%M��>��\�a�bq�� ���>�M��#8uî�.�wV*����I�%��7ͷ�L�5�x�m����s:O�jG����zʢ��m�~�/�����:��э���~��_o��ʓ�n��㬽��"�-D��>-�m"�~9�7�]�/�I�f�o��a?Z9�s�ۉ�1���fS�6�ώ2��{�Q��ҊM��j�u>G��%�������(�+������������ĩ�m��6|�=�;�M���|N�Y�� ����x���ګCQ�X ++�N���R�뚨u�ϒgN���n�k0zs`�����2(a\����J([�1���t�Ց7<��F�Uޫ�k7�@�G�=��Q�mdL���˂�3�n�K��K���Pƺ�o�W���ez��tX��I`�_t#��uba��!�ł�8T#�����69w◵��H8���̾�"�����6��yA���'[��f-�K��Ŧ^�^�1�1�R��)���'+�ko�K�N�����?�y���]z���g�sf;r�b��l_&i�m����?5�Բg���� ���؎�ڋ`�WD��y!��~}��E���y�G�Ŵ�t���"�'�{�e��:�.�,���P�Xs�t�?p��]e������GY��3v3��h��}�E���Вi���g]�0v����PTχ��Qz����4��4����� ++�J�����T����t�zE~�e_U�J���^��9�XM���ߣW��?~��Ti����y*7���������o���GDK C����bx]n���>w��J�-�?��*�M��9���+�� K9މ'�Ֆ#ӡG�E+fh����.�1��Y�;V��=�I ++X�z��R�I%d_Jt7�GB�b���w��� �s~��H��9���c#��(]vb5�J�FJdAX�5�i5�@6o�'�{�P�f�ỻ#���?�:�V�Xnv,R�ԓR�p�*!�k{$�,��,�EE�Xou� ���E��g��EĄ�Ӷ`&��nڢ��}���S�j�k���=Z�f������i�5���L߮��2����j%��*��51�Z��x�"cÕ�A���j�8ἴۭ �(Z���� ++���)$�L>��Y�AV�i�r��A2a��3 ++�72��B�B*�%<�dX �P��9#�ݲ�ib���tnR��-_^�������>���m�i��w�减+����'{-����X� 1u�"@s���w��i ++�؆~�v ++�NT_�~S�X��`,�O;Y=��#�� �TnЪ�3z�����q��J��8�۲�4{!z����˛�cp�e4��]s�y�8�{$Ơ�9z(��x�I��uDAkI�\�&@�@�S�I����(�����}P0��[��r���V�����7���a[-��*aЮlʧ�o�q���c��,�^�!F� 3����K�Q���vWn�۪�C,d�oQ4r�{��l��8�����<����~�����}�1��&c�w4��:�ou�ߘ���~�G�呇n�mn�ciw��Jͨ� ��҅�c��yr��<^�����K$��3�13��r:qi�%�)��w��q+�ӥ-��@2�&��b�F�*|Z�����x�Y�k�Q,KWn~�c)e�� ++3~�����}�;s�>��@��q/�`T���w��Q���j����d�U_ݙ����)���*Q���͉;D�\����n��n��Ż��B��]��EL���#��}�-'�ֲ9����0Ż���.�s�'J ,}G�k�$W;/��7��aj���G���UY��f<Ļ�XLe鑎3B����5�z(�2؇��<Jb|����#<�h�r����q� �4Gl�^� �,k�����Fi� ��u0S�.KШ������D�җ�1�@=elR�J�eS黌*��H-qd \�93�9�{B���iT��e�sX�uN���u�T�e�`�9�ϱײ2�AN�E�; ��%���N>�6Xδ� ++����x������ˢM ����Ȑ����|up^0[p�|�zE��|y -cU��a-X�cQ^s{������釼��LkIH�r��R����A@ ++�R�z}bd����=�wI���W�/����V�D`�dI�����T~�Z���nQ���^5����͡\�5<�Ϫ��(N��q�V'���Y��<+� ++BFc{��]R��q�o��;T{���#E?����/�袐F�)C`���223Nz�4�* ���Y$Or�`t\$�BD�My�>�Q*>�=R;e�V>�v#0��:�de �ޒ_�M��+vq0�g������HG@n?��T�o���L���r�\T;﹍`dAd�7��ټ�����.�2�Nڱ�����F�F�l�w®*"��5�G�"4QJg�U�ǯ&����^n��+����.~e��~�i����q�7N �1+�2@��P��S�[�����M���=f\ND�J3� ++�˒{�����-���Y����mF )�DW��4L�DZB���l�P��9�˹�Y��L�[ ++��kf ++��P���V��ٔ����i�_LC�`OR��b0auh�U�y������ x�lߞ�;�Qt�lc�}��)�����&ݎ��V/^���y���_)�{�L����{~���?�\���C3)k��N�g�߳����n~�!2[�f�O��fЃ��|��!�m��?d��Ѹ�X�X�;���N ��5xgI��Q�y/��8���ḘO7�_;k�4�u5��k��y�Ĭ�����9� �\ g�*2e�t?Q�?'R2�dT�橝��+�@R�`�_�0;E�-�QVQ��X�s�rٙQ��������X5du�j��b�$ڦ��H�*S��p� ��EA6���r��`F�-��=�x�4��෫|%mk��Ri��$�W�&���3$�-�����< �&��9}�S�Ad˂���^��e?�L�������]��!�Pl _27>�Up��8���OD�3��D�$���"If�3㋅��G�D.3��x� ������[V�_����،��[�s��V���l/����i���~E��z�mlh���2�Ӄ�D6�� ����������g#�d�ȷ��!�:b}��N����� �(q�2����� y���+t�=ܕ$���:��_.��u�9-�Ä$���X��4&I,�x�(T*`G��X_82Zkv�K�T�T��������guh��,�t�����+I�s�(��2�ULw�)P�z��G�1��l������K˴���lA���(�RM�dǑ�w�PYK��!�3-�^R� .�d���[Cx�N�����\C���:$���<j��kI��,Qb=����7��#���K����y;i0[Zp���Ǿ�L��d��V_Ve'�,:F���WY�d�^F�x�h��!`L��2)Q�|���G)�-�LQ���]E��OQD�Ȃ�rD��H�R�}�jA���f��ႝ[Yr��_!�'HA+>:s�u�W�����rRsY��Y:'��Z�@�#�Z�=q�\��öhVxIV�ù�uv�GM>�BM�M�Z����U��s ��o���~8��mc{8Z��M��v�oګh��M��H�(y�y����i�pj��O�o^� ��zgQ�@ ++(m�Y_l��o�i`�ɑ뺱�9���Ve��m��R�s��̶�ee{t��Quyd<nc��D#$�h�R�WS�;}�4��"�}���^Pq2�E�ss��i�v<����{����n��j�䶲By��۴�g����?��&�6+�^�:Vo� ++�*d̻�þ��*���o�2�hM^�a{�@Z��|��G��rt�br4t�k�0��B�H)�mZ�< 2z��(1(�(L��� :�Al��,���J����<Wq���p��E���\\1e;}�Es,۩�Ã-��}G�ٓ�����=��Z�z�л��/hb��J�� 6NT~�Q���������c ��{�'�T\�7�ۜ�n2�Sj'�ىjC!��K�7���D-�P�T�Y��&X/��_�ڰ��!h�8���ƫ����9�ǝ�|��C�(��}{���(9�3x�lG�[�W�_ah�դR��^�Tm?��^�+��r��v�Q�;�y����1h@g�/#�(H��{�E�,�!���W巋MV(�ks���YwP�y�z�����}�Za�kû�"FКNU\ ˞�x��J$b�m\�*�VI ++Z�� ++���(��U��.�.�2�&p�#��c��1�����K��v������F��-��ʝ���V�d�&䪤����0|8�F�@0���̖�MĮIW ++C!�.��]c��L��u����k�3�G���Y)Պ�m�������\��I�B��� ++�]�m.D��]��X]���*�zȓ����d��g�ު��љ3�Wl��X���D�"x/pK�tn�Ͳ�vz�)�Fr{F�z�B���Q;��ދ�"_a+��8G��t_K1c��~D(z]x���{�Q�Ӥr�π�0�+�~]��4�l�!k ++��s| ������D%aT�9�+�*5t�[R�ւ�hB뗢�%rBz��c{��\�T�ц�������vn ��nPy ++�˄).�z yY�n:"(����w3D�>Z]�ݷ�w��1�j�?�2��0$wq�y���< ++���w�Uȭ��(�J�B;��<I�{�8�z��#T'+}�H"���m��v�6O�/0)N��M�]�+itq���b�'7�� j#s��>����S�e���8�&c��@����#�G�ސWQ+����^��� �� \/��,���rMK"�q��K��يp��8���Y42�A��TnEΎ���E�m8O�_�\#�X�.xA)ڹ�^ԉ�VH8u��;�:e?�pl�T�W��4~(�A��S���5H���V�߯I��E���F1B����h�{�}�����H��1�]�&�d�x��0��� +++V/A�W����v1��_��To�.S�x�ct��*[9��� ��~�<�5�yR@���Wԇe�����L�@�*�n�]d�"mvتtX������rπ.JC� T^1;�Q��������i�H�i��S���.��|9��Gˑ����.k��!�h0�S[Ud�&.ڣcPR9Ld�T6*mBP<e�Fҫ�b�"����n���H�؆cs��n�'�K~8�}���� ++?J�Y2�b)5�&�ƅ7��R�[b�`?%mؒ C�0,B��`1�0�h��>s�u[��Ǣ���6�N 9�p� Oڊ�&��r�������0��.+C�_��f~�(�;}k�#��Z��~�����K��3�a�v�M���v��6 ++��v �����aME�G~��n(�3�0��؞���*����_�ӡ���$��2xo����3@�f����%��O#�o���O���F��7�+�߭�K���kq82ջ��^���m���S���f��߲6��v��K�K�����;_\DJM��!��]��o]�����x ++���9.�]�Η��20��ۘyDd�&]��d�{�ᄑ�jב�B����$��na�@3o֣�"��9�~��ȸ3@pDŽ%+pZ�S�2�KQ��C�p��w�#=��ݽ �s�>6�woc�y����͎�f�z��)nv�t�a����N�{�S��'0us�Z.�H3_ ��f�"��Qn�1f�xTo�#z��!Կ���bAYe%�|F���{X� y����/�+�sHlz�� ��g~2c;({����W�m ++�`����'1���/�#C@�����5����u�����m�.�x@�g<�]��@�G��.dqR�7���VǻV*���NH��zo�5u.0�F�Ǹ����1��}�����A+je� ?8w+�u�;����: ����W��V?`�2QDa�-��UR�"t=�����H�ܴ�:ׁ)����~`��;qA��5�Td��jMZ�V�y�����Ֆ�}���D<�t�Ǵ��mG�#�OG�֤:�S��\�z�7 ++A��Б�]�@�h�(m��A���|�V;��O���, ++�vbݒC^s#�56f�6N%yh��ޯ9��X�r�%�`�+A��:�`SQ/�{��aj�W�}���p�ִ�jۤ�����?V�"��TL>���/�!�`�I}�E�I����A�F ��J?��*H�s�h(ʣ��˂��i���1� ++��A���[.�G\n3��o�Gᒃ`����v�$.��6���u\.V�'���Y���]|�| �2aU�!��U�z(�Чc#�)�a�"ӧF,��W�Ƌ˾T���X�/P��ژ��Zs�櫞��r�0Y|���z�S�-"Iċ?퓼�{��C��P�X?8Op,i���\����@f8���s;����<����=ǽ�]̛�CS���~��44��H}ǿ��Q�ݘ~B�KZ�Q�11��R�EF<)��(�X�7Έ�#������y������Au�ǥ�^ME�&��1� h|$tJ��y.�b` xO�z%蝃_Q�n��Q5ѭ�U����|v��]�"�E�8�H.p�x["��pP���)�87U����7Kg˷��Ӊ-�h����R"/�8V䦺_��/tɴ;Y@�I�Ezs�a��vic��zM@�*>zF�<���-�;6;w=�����uO�fhOFz]/�E�#�(V}mt�E���g��8��"���I"q6]F�9.���v��]v�����z'��-딭�0�ga��fAtQ���+�W��`Svy��d/"�E�[-"ԛP�wp��.jt��J�:���u{$�"1�9w�.���L����/�Ρ�*WB��IR�+VY�9P�^��|�z����V5���_��F�6�ɢ���k���1X�S�l46��Wm�qi��v���$`�~m�ߕ�hS�������=]v��;x7�_}~��э� >��KVo�=���2��w�r�d���v�cg��d�~7��fcD�@�Kz�)���ߗL���w��P3�ʛ�~�� ��J���p�Ϗ�X&B"�;v�=�qФ�a��arO�/�U����M?|uc9��.���1���u�/Z!Z�Y2<v&���TOdH4Ɓ��@dh����Uu��z�������t�@���nR��f��l����\��bN(8d6y�od��y'���6�>E������%�َ�-Nwz"�C�"� ��w���fW ++��RwA�WgBq�[����M�Wk�qT�BW��������x��R�4z �j�� ++]g�����b�G)���B�)I��4�Â�=�NQ��5F��u& ��{\�r���-�� |Q �"hT�^}�sA�}��A��Џ���+�z�@�S fک+�zp^.&����O��*BEaW�-�H��!�S�!;�3u����uX��z"�$� ++\E�?�B�|]:�|�}؏T���@�=Hw���vNEf�zo��C�~��&Ȃ�H���[���_�m��Ƿ9'*=�`$��%�T�j����0nN����z�?W��z�g>�F,*:%J���E�A�uU.J���^)�Nq��Ok�����HUVx��6�����G�ҝ���=D�I%��6�̏R��D�擖I�X�r�5�GǼ�6OB����5�>��K��.�иʓ����k6P�w���~ �l'��e펾�ip�?�����?�)������=`�����l�Yn����T� ++u��'� Ց���ŕ�(>[��S;c�ӿ<B�8G�LG.�n�PiI �`����&��z����|���_� <��;i�q�����@yp����Y�E�/V��[��a�Sn�R�uDjt=�&蠻V�q0�h����zŭ7�#�L<F��(���a�6��5� ++k�)���c���ɿ�-*���j�S���Ǡ�5��o�1*�(Ɗ��-�dZ��)��`��5��+�@d�[;1C)`��K���V���1�N��g��������>����p�6۵�5X}��*�u�?����6������Ts�k������-�IGu����zs0^k�����ی����w�hA@��H4L�yLU�{�LT>\�>#��h*���~�5{��;�q\|$���Ϟ��'���œ<�ʽ���~��o����w��8��"U+��N���4���$�� ��s��C�]��he��'�m�9��q�����8t.?,+w& ++�5�B�W��p{Z��Y�Y�M:��G�^@vC��m��7O��f�E�rykܘ�I���#�� ���j��Tū�m���5n �~�Y�<`���w?;vMZ��Cw[��"p�1h�#��C�:���D>�f�#Q%u�jv�Z?�L��:��0����{2u{n~����~UW��M]��������B�42�c�����6�9��0P���P�r�9�X��ĥ�7"���V�d�>�w�|���%d=�w�dd�g-�v/�M�v�k�}�Џc��MC&#�_�����<l����]%���V�zn��'��6�"O�N��y�')V��� �l��y�:�ȑVlL��86FL�A�Č��٣�V��v�� ��P�{�H���ڈH>�73��Iz�H��n��L�@�g�6� ��郏S�Y�H+VxР�O�gN��Į�p ��Lq!H���FD�����ƞ����=���;e:w�2�~�e&��Hx ��`�U��ſ��+F�wG*�|<�}����KP1ƞ���F��z��|Z>�6�h�{+~u�b$U�� ++�\d\�c���R"]��x/I9� ++��=�צ��d��tJ%»�����,M�rh>O�M��T˜LV?YhuG�i}ֿ��3v���� #����i�D!`�o%�&�:}+`��*7����T���B:� �6E�L%��[��Nf��Qu�H��S�I�*��$_�}Ǩ<�?k���N�#������D�]N�R/9O��I��/T��{��Ƨ���(�!���z�<�5]ef�8�X ++�''_���r'�d�H�m-O�W������e\n�<�S���?46ne�qQL��~�¦ �ǵv���3tz��?�(��O���xvr��a͓|O|G��387{��m�fY�J�4�D�}��F� ���R��m'��u�["5�H��~�<�I3����U��R�������m�s�4������~�<e����_��H���%;�n�PV�dlit5��{�'Z�J��b0�n������[���;um�ᯤ��!�����0��0�r�˥�qNmv��[T�/��Y���鄘ܽi�7��MG)Ā!s��!x�q��[�[�>�"-���{XIc��ο�d6���/�@x����UJ��1�������#�Ȼ�m���!p<�]�t��zŭ.�L� �TP�{}���n�R���(N�#����Q_*`��3ϋ�A2)�k�A ++*`2�+����)���d�bE�T��ϴ=E������#nC����T���]���5�ф��~ك�nCq���Z�3���zૠ�_�gI�f���N�kQ�>��M+fF�k��w��;�z�!w�!�pʰ��Rk�����ڸ�[[����]��;&��*�:� /z;��]b�+�c�H��`�f� @��,��*UFD#��%�����`�`S@�~��<�+-�x5�����ry�3���'�&�����+ Bj�������!r�u`�.��#��q����2O��Б����K�;��m��av��|��06�oI�Ǫ^�<.� �5F9�o�{,��G����M�oGʹ�'|����y`b�k�x=�O��n}c���L��탾�v�����K�Ã�����Hq���g��u���a;�ID����{�����Ο>1��C0��.@���T���0��;ݰk�9T��Fm���m�#J�y5G�$�砸�b��x�Ӫ��v~���'��7[c�t��B+0���ڵ��c�]R�M]�d��IXݜ>np��;���5����'?��~�q��?�?���)�����9���2W� s�W3r�x3�����aӣ,��@=�"6��y�iQb�7$h�2�%�Р�͌&���x$˓�����澏q�vٰ'��6�+��)�-�`zP�밀8����Л�3�'su�b�q����Sp�rUZ�&-H�S�%6Rh ��^ቮ1p&����;����I�Ղ���%x����)6F���hM���ˀ�1_[s�gD8����k���Զ�����<��,�n� �X��6�<�������ږ�(�w�9�ϕFӬ`�RI�lz�|�[�ٸt���͑yr�29OGC���ڑI��S�)�z�`�m��o��;� 9ހL���,'%�} Y���6�XjM������#뚂r�Q8K�tF(/`hw�w�.c����������s���NTk�r���N�q�EW�/K�7�/#���z���O�������� ����f2Tٓ���k�����XV����&��Z~�,nhÄ�|yQ=L�,RH�L��7�;u��f �Ak�w�����4k�h�zPJֱ�~�(�ۃ�����Y�'�\s�'��ih�V��-(9��AqU�d��� �K�|z�<���ٮ��O���i�'ڣ�8�����d�����+^�d�~hBҠ5JQڣoy�fL;�ŶY�ց�Ԁ�Hbח��ܺ����}5�6�7cvn���� �D�݉_o�u.7���G�h���hlX"3�^$#�}�8CO��$H.՞�^[wbk ++ ��a �D���q�3�Ũ7����)���'��#�㠷��é����K����6��`��&8@L�p'qM���D3Ta4M8�v}Z�aڊڕ*�Z�oQ���چ��CRn=�=� ++FbD3�|?�6.���1~���Nq��o4�a�u)E�ޑ�w���^��"Kݽ&�xZH�Bh�ɣ�ί_���FT����q�l�����(^���"d/�3�� "��WB"�� j4���(l�v�,,��X~�z������������U��t��e4��!M��?2V�.��u>srA��N^'�=T�݆����N�cj���,Dc�v_��Ku�Q,���pU�K�C���hA��@�"4��F9�q�Rؑ���.w]��L����to*-�1�L�2�#�Eэ��������q����;,>�{�{�䀣cz� �7���(6���D� �����0�!���T�#z }���u���wp(o=� ��,mz�kC;�8:�vd=ƾ���Wa����2H� �iAex+�P6�܆J�(�u��<��a���Zg��H��]�Z!�H1�)L�{�����;v��h" !x���ZS}�<)�Ly�Ժj8:�Y1)7����vDxs�\rC2Gj�"�]�y�h�W.���v9of �4��ڟvB�'��U�=�T����u��˭2cX��}��S�o,�p����ϨIv_�ͥvD���D7H�8��K�c����r������H- �$:Vư��E/�t���� ���$ �a�2e�>��f����?\��1�� Px)aP��' � �Ɂ~CrN�kР8�Î��w����J]?\Q����:�gE*&���-�ˠ���?�<�(�)��'p�N?��/}���i-wT��Fű���� ++��� �߱���x�%p�i+�́��K�\%HPz��+����rI�����T�Csb괌�2J�[�!\/�:���S}X b?$6эA���j���`4�>���5ѡ��/���S߱`*�AgͽLð$'���/v��p ++k�:�CYz����叹J����Z0^���o��'��R��}���t@�_C��-76�Z�-�/-ヌ���$*!��j���ԏ�g����+��r��U`���S;�G}m�`�$�v��驏�5�!��>���'K"�qT5 ��غH��pdֳ`�1D�;V��_����<Ƹa鬱��K��܋+��-$m$�@�b���\�� �3���@�k�(��`[���)l�lC��#��t�3�BP�X_���X��54:��lF��>��f�Ր¢50�E���cX�Z$m<Ϡk]�� *���+}(F#��m�6����3�3��r쥆�c�FS:����3鄼���I偝(N���q4�f�Q;v��}�x���Mi�OW���7�Ęm?ޝ4g0V쏺�i,�+��ծ�G�dYS[d��������}�G��/�k��qB�m�Η��������YHS9�bSIY��Lbnhs�r�M��>����}�@�C?��VZ�$I�q�տ�R�֎�]�$��Fo�{�[��!>~F�I���S�WE����m�B�-����f�M@v�>�=E�_"�U��Z�v�o�}Oa�Y�������ZѿY+F��w*�������S.)�s��-�#3)�|D�Ib�.�Eb�#��+�|�f)q$�fŃzX�ՔN�K��2ɰ<^HhH�m6k N/��P<g0������,�U�l��������<=C�������SA��*r���Ω��棩^6�-�VVh[�|k{��]IG`��~�ѽJ�����>x⸟yd] ��[�G�Z�d��;�H�<����YN��g�� b����2�^?�Í1߃<7y������Ox� ��,��|d?cj��1#��֩j~��WivA�$�b���h��6��n{xn��?Aņ&v�xB�����P!a���(*�� ++K,�P�,ϻ`�|����-�8� C�-Ll�������q�=]�_��)0���b@�{⩕ N]�h���Xlq�cB���76+�+6\ ++���(k@�.B f���\�<F��i���,:"!Υ��+�9n�ˁ�:�����GK�Oޕj��c{����y��r�-t_IU�����S��n��� ++�� ++b�PH��W"��vQ���QDG�g�D����ă��Z?�Bm�yk+�s��x���V���Fs�F��L����b^�������x�|�~K�5�)���#?ѧ�>k���g��yV�g� ��� �SF���.d�z��� A��/e�_o�=.^oC� �L��`�UXv^o��J��"�u9;B[������1�ŶЎ%���\���UZ���Nc�_���1�1x�� ;�_OD����J϶� ++�x�NI�r����EK�V!f�����/v�{OGl-�/����~E�,�����p�qD^� KT���ЯG>����,7b�u�9�>n�)YY�~>0��`X���q���AtPA)`W�2��e�綘=���K�v�o��&�`�Hx��[X�� ++{Aɘ�n�(6�v�>�QANKv#{���1ip�ӎN��ґ܂��T� ++�I�����C46-���bbq� [�~i恮��, X��J$�M[�Y�� �Nv�Gt�(�2�������AŨH�K�i�j�@r߭��<�����3����� �~��7Ĵp��p�%o�/�J�������"l|P��^߾�P³;A86�����A�+H ++d�a^P���:�p����G �[í+�����h$��m�L�9�f���q~�`�א_חA��O��σ���2��Җ�|W���fHzd��@��#�I�z��N�Q�)*C���3�EC�ՆG$}D= ++uo6�� 7���˚����Y�%�@�@=/JDEAȁ�R���^R���!T�-��A�r�g�8^v ��tY�����u~���˫��̨C�{J�#�C?ۉv�L��]�P���\�J��M,����5�[��hF�v�D��3 �B�i�#�:6��c ڰF0+�)i����1��);���ֻ�)�,]���*u�"n.�RJ���"�����sl"�����1�!�MdlF��� 8d�7n��niI�!_��業�ͭ��1��Wz�f(���Yn>͠�G��� ++�����_� �2˞�yd�Q���'�w�2���W�ӾM�7��v�����(t����m^NO}�O��k�W�L�y���'�X$8�����*D�`�R��mӴ�V� �S�uB#��r�yzj@�P�����&O(�cɁ��0�d�u`⯪��{��/��J�ֆ�`�`���萏�x+CYֆkw@1��3�p�f!c���^���o�Sp���q`�W�<�L�d��6� ++��.�Ֆ�MB6g.�������5G�5Z�s��%��Q^3��K.���Q�/���(`r8�������5�$#�� h���q��!��K� ++��ZǞSvDcٙ�x�4*$�(E#m5p���!���y�k��6�=��� ++���X��,�� ���σr�vQ_!�;���^��17��Fw�3���@!�&g ++��V)����6���x�r�d�]��qL<�������n`��q�Xv���y*ł��^�{��Pl�d7 }kZ'�"&XG,�T1"�n����5vđ�t��!��q&�'�P��2�P'Z�QݑE���c�8��v�0���*i��CпFK��&-��U����z���E��X`��+?�`�����8+3,yp��>�<CV�aEF�(V�cA�4={�� ĭ�|6&�ew�@�p>�(�'����).C����_)�"&3��K[�l"߉W��#�pb-/s�����([p֔�͛)�%� ++4����T ++�����W 9��cS�b���U^�x;o�0�<_��2���C��(��Z#����T6��S�9䨼K����kx F�+��8�MX'�6F9̑�c���aR�`TZ��S>��7�59d�U|��T�>�T����j.�S��R G'L~��|�"8&hm?��/A�>�r3��X��g��G8q�֏��X��ԙO2����W�.�r�����ؠ�En�,4E�Dbd�|i��o��^�� ++�>�0�D��N5�R�Ɇ��Ǭ�� �#�q ~[�2z��|����*��|��T.�����`Y�g}I�f�t��)M�L�ݣ���6N����d��*� ++�fp��Wf�i-\��v�[E+��z��HÙw_Nн^�������0�v;�?Ɖ��`ו�L�m ++ҢSo�Z�h~��:�P�kύ�]�+���$������ 1��B�O6��Q����ּR���/7}H��9utRK�x�_��Fa�_��[�W���qXƍ��y8�W@�E�?����h�i.7���čX�6�Ҋ��^������ ��~��*�2��l��:��xn�V2��a�+��)ip�r�7�+m��i,7�_�gڙr8�#�9y��&�l� \�GKK'���[� ́��1��m��!}g��A���泚��Xf�=klj�^¨_^�ݨģ�N��p�.*�G/A�����s ��b{���G|14e���5��5�_�(�kP����9�L ����aJ��" ++:�}t~�?\ݖb�=d�`���Q���\SǓG�cLeA��y��Z���X~|`��:� �D^L� Q ++W'�>�ֱ���Wp�bu��'he���m?+��>8E�S�I��|��5�c�K�a��sӴ�購3���K�*M^�s��O�ʝ�pG�j�OH ��AeR���~�`L��UG��� ++�Z��C���~o�y(�W0c>X�4�x��l�3ֶ�V��7��T���Im"+ ��_s4�`�9�;�bYc�M�e��4�fm�v���g��A�e���dM��y�UY�3Ͽ���hʂmÈ��V���EBŸ�2"�EQ��t��:��0�wJ�O�Q����SY@��(�ù\��B�ӬC6��O:��_~�B���b�>XӼ�DɮL���� ++H ++� A�:�r��>ˮ�p>?췞��#���⧿QX�m��6o1�O�`����������k�a���y`q������Y��뉷��I�9}BM�<+?�.� �E�f'[�ߒAPɉ�!�d6g�%j,�V3��x�ۺ5���N~�L���8�OPLlT��3�#�(��7��h(ޘ�t��w��������n���� ++$QtQ�<�s\���� \�u�Q������u��5��fY.���XG�45nQE���_�6�m�,���E�x�@$#�}n�H}M�`��5u�ö>��3�4,2`Z��Z�F[s�B-��}P��+��+������ufv��_"�ӝ~�mO���P�M��|De��@%�0� �2_��}�5��Ʃ�J��k��4������ M�c����Npm�k�c�����z1�Q�ATlnx�; ++���JQ��bQ�ז07��N=�f��q���~�<"o ��l.$��6�"�)`��l��Ɠ��ߣ����<�v��B��y럄/�[+�bi����N��a �m�i��^�?ovquƫ�h�^��Z��aƇҁ��l�O�Z����uL[x��U�����r0%z6��L9�?P��/���^�um��NE�~�o0�� g�ܯ晇9d������7�'V#�w[���\ʭC�F:�`T' ����]!�A6 p�7D��}��p�lv�͊��`�w�=���ܻ�W�T)�kmIe��a�P��N 'n�������U�C���Y�TM�ʠ\�p�: ��"�x��^ ��d�����-��i4�ݶ������ZcA X�ρָ� ǎ�5$$�z�%8E�gqh���L��wo�;q�y)�1��<�=3�W>5:�G�k�O���-p��e�]���k��d��Ŧ��������}�6��~�T����g�c��1Vg��ݢ�E:�p�]�)\�E2D�;8�b�g��bjY� ++�בE4�N�����,�>�p��P�?2u�°�UN�c��A�oVA����b��Q�)pq�N�!�;�\Qf��2�s�P��-����y�X��-o8xrK�8q5���*�� h���@3��x]��g����z��GҐ�=ҖauB�S�Jg�.~p��ØB'u���Nk8��[�\����?f��C�����h��I��D��m������=C��R�C����?'�>�1�dCOp�����q�J������+ت��A����A6�S�V���5!�&�����r5m���qzc�β�f���G��"��?9������%:ݫ;�L K�MIk:�/���<87�{�LE��f������F���L,o��^G�9�Ț���(����Rx��O�0���bz� -o"[�X�l���}�n���ʲ������h���B ��4�ɆU�*Z~e�>�tFP:^֝t�N�;n��d��-�K�-��c;�gq��6M�X\2�tF�}!@�����G���j�b����D�a��e�,�Ls�{#p����c}<��0� �P�V�.t��eM�^:�(>c�D>�/S�<��8��'�f����0Q���k�t�6p�t�jI��4@^�<�16�x���t���8� ���o�4���(5��}+�t�o�b�b���aR|�[3�A���D�� ͗��pL�:���x8���0e�O��ZR'L��*�d�X�Il9�[?�H��E����Uqr���S�@ ��d�A�7���j�',��?��b�!��˃@����O�GE� ��4�NO1ܚX�e�;r���0"泱�^�r�Z�|���mrf��|���A�`����1�ݒѽ�N5�^t��f�_�0۫ʐ�[^9"��p~��q���F��[�z,-��UE�T�kÿ�#�+��k��ۥe���� �F�N�H�̹\r�-;�hLw��Q��O� ����*:�� *��ď�|'7TRֲ6�]��dq��M����6����ވ�y/vl�@Y�C��[ 3���ܿ��E�=���|rY[��;�-�P;�nT��X���--d��L&�>�+���?n����Th��f�Q+��'NE'V��FF9�8�jМ�@�d^W�WL;X���]��r���+���.�HxA��Q���1�(��/�����~k<{S0s+�bn�KYNA����[)n�Z�Ϲ\>=:V��� 4 �w��a�)�&e��)�y>�O(��Q_�!6[? 0c�1��10V�H� xE��~���b�!�w�!���iy�&���f[ּZ7`�ؾ�7�d0��+��3ta"�Ok����<�:�Dl;_~���)w)^{}QgEA���y� ++ 3�H;*2q���<ܺr��B� ++z��H;h�n�^�0��p֯~Ś���|sD}xv����wC,dd���2� ++��Ǝ��5cD���q��� *���.#�12Dr2!�b,�x�<n��0y[�+��8�����×I�XN`"�y]{0v���J��ɸ/����R�-���<�oO`"���4����`m��c��{-�$��x�1-Ļ1��~o��(�M )��1��l[�P�!��9�ciѶ��ymz9r����֯����Z^�B!CQ�� �şXA���Ny���V:�D����Z7�k�eCv�Źd�Le|,W�!�u��[[f��Lr�Zc��U�3�q�G!(S4��OMV(a�ٟ7�?�b�D�Z�M���s9��j6#F}�ܭ��8a���ÿ*W��Py������tI�w��4�;��V�M�Pt���.�OBg&�֬��j�{XA��{� �1J����"��̳/E3���{cK��YD��y�B�p? ++ƺP�DPљN*U��`���������w�S��6[��`nQ�_�ZH%�~o`�,��6C���Ȇ�P{�+�1��'j�USV���Z���ڌ2F��A���b[m]`VS���:N`� �P�=� ���"2�ay"3�'B���>$�T�������*��8�1\���R��2LCg?s$N�A�Hƍߝ��ӌ7)��3&��ʍ6h#h/��x�zétc/mH�v�U��xl�� ��x\����4�����=gs8���xy��Q�{u�d'k��W 8l�`l�Q���hh��<���ܶO��;��L`|�e�B�^��Y�$�Oh��9�F6�m���uU>�bV�fE�����@��uz��2�{g%fxoH� cW4F����gDr�:+L�Wp������� ���eS��S��?��?�%f.`� ++��7"@�:���[�Z��_R=�~���a^��p�״rTz����n��[vԣZ�H�ؖ��͠i�z`���f�A� a2�pu�kE�k}� ��'9��=]�l�h�p;�ƒ����/����G߸����rˌ]� "�EZ���� �����:�V~qg������Ͳ֍���,F���{*��;QPR�JZ��'�(��m����~ �&��5`r�������n�Ke����,�0�U���??o�P�e�e܁U�$������;ٱ�I��5Gp���a*���I�r)�s]>�.�V��96��&C�>����j����u� ++wk�&+�Y�{:W��(�ɪ"��5�LޞmԊ��{f�A��Uz�%�̯ٙ~�����1�^h����P.�S b����3Zy�2R���A�ςE�Rg,��N�YT���uy4��X�_�41f_PAIQ�/�zWJ3���`�T�;&��9�̮ Ŷ�P��y�'F��B�/M�j��-P*'Z*{{�e@���l�ڪ�����'_�8����r��!��R���J�NA=l��O;%�S3�r���N ++X�u��`� ���um(N����k�6�A��CȐ����Z�1�Bzw�MN���������r�ROjb@\�`fŊ��_W��B��A�f�)h^!h2�$�߶<Ư�v�,#v��������#�5�Nƾ�-�?Cl�2Y-m�b�?mϵAKڼù@��z� ���ɶ�`?�7lӑ6�ʴ8F,�c��i�(������PTF � \5>>c��B$����3�qr���Ċ2e@�Q�/�XP���=��q�����P���f,�'�1���j��.��:�`H[̒�s�.�Q� w�G=�Xu ��/#��y��voF ++WTIs�- ++U��LI��^�����Z��F�(�@�����K?q�ܺ��ց)�]�R�QJ�%�6�&_��Af{�'�J(�d�·U���B�Oඬ�jxE�^�,f��)���Ar�(敄0Ǽ5��d^D�S��k��Ƿz�����Ͽ�:�-=^����Cju�:p�eL.�|^q9��aY�t;�NG�TE�g��WXGxrd��.Qa���NQpX���%\o�|9�������ڰNc�ZLH{�ω`� �O�/jw�p>Z�[^�8HF�M�)�,߂�w����]�P��w�sE��@n�q�ɀ.X�wFU�-����v����B�I��+��b?��B)�@�9{��J�F��<ɬ�]�klq(����$�0c��E��d+t��EN����ij�ȀT�\��p��FY�������AhFА�*�ⰵ/�Q�q�X�Z������:�&�vl��"���� ++��g��SU���N�� �Ba�L��Vq�v�14��LE�IM��c���Ǔ���Wr�^oIW=������h}}����U�y�g��LcYc���3�#2(�?a&�m�ኖ2dS��g��KNs����6���m��R�=���A�q��d���ū����v�1�R@zshN�E�3�8��=+6��Oд\�3QQ�xl��I��W��*Wм��,��ߡ\^�OL=�����* cN}b�d��l�Q (4P�F-h?C饟�=��^1�P�}�U�/��f9�,��U.<�rq���� 8=o�?�ٴ��f����"T.��"j"���`dGd��q�K�� ½�Ț���n��W��h�/��rb���Ly��J��P�3��j�P_�/�Mr�4���M�X�HE�X8��i[2�z<��h�ƺ�VaK1>�OD<̕��<\�R�v����,ȡ�.C9�,+�R��ѽ;��Y�s�s�TKnP���*p�ʣ����z����R^��]0��=���r�^*��{�������U"�&��J�x���,v}�8�m�[/:�,��5Yl��垢)�N9(/�B��ɷ�ڎ|��(eup]�]$�̢�^�����G���~�ύ��Q��� �����Y�b����Y.�CH����\�a��h?�B�RMƭ�|�@t��s�Q_���J;j�����%�ߖ���Q4�Җj�ym��C�~���)8R�g�S\��E���r�iZ�9���^���Y`�V|^G-}i���Efq�*%�t�.o��V�݆��Z#�[�;,����Y��p[�7�0��Pa��r���R!�Z�餃f��1ײ8�ů����<����Z8\��e�jl�^���������s5�Y�K��!䑱�=H;�=D�&�����ڟ�����jť|������_�w�7�������.�FUn�ʷ�_�^9��^�tP]�H��T��:�b�*��ѹ��Z��0�Ȱ���D�D3��r�l_��V��Sɾ�s�k�Ѕy�{Rki��=�HۛA7 ^M��hv�J �,��pQ.CW�Q~mHqA�iXz�;8�)��w��@�;>/�7_��W9\���7������stZ.&o7��\=i!O<@�aD������}�@8-��-Qgqy���$ٻO�L��<�����P����c��I��k��&��SX����^�y������f��\�L����Z!�8� ++��[��&��|oqX�ڤ�On�jU6����niH�^ 4�(��4����g��ڃb3�PC�Mnɂn�՚�w��-(-��;\���3b�3{�!k:L��� �� ������罉����_ͱ]�m�Wyڽ7���bk[�&7��<�����^����>I�LE� wH�#h{�#���b�D�CR��~�S�!�R���E><��k��E&�g����GZ���JZ�0�nI�A8E�P~ �8d.�g�yѤ��&'�pc�4��0j�@�b�f�X��!ts8�r�[�5�X>���x2�J�xi�>q_nA�N� ;�2�Ȝ�� ++s2�/� ��������}�0|��-�y�BYl�=�/���/Z�}�]=ė�d��h�O����"�m�T��t�;vA�Lԇ R��`]�j+����|� ++2K#��� �2�]��t��E�w�#�i��ĪF>*D:�|{�a�L��$�ʨI�'C���S�v������@R7��h`Y��S_��3�n!��2�%~�<&�(�Yha�\ݞ���J�L�����!y ++F�2�wSߺn�����kw �nc�r�:(�c���=NB� ����a��~2Ja^X�q�9)��z�]ͅ!�j�I3a�T;��e��4ɯPyL��\�Sy����JX�+�-Jo}㫫�`\P�>�.�9���p��Jcj���C�Ċ7�`y�)�KO� YS<�S(������Lvw�Vi�3�G�zGc�s)K��]&���괔�|��R(TjQ-aT1��=h��A����$���t*�(!ń�P7,��!�dTvC(B ��B��LYXz�M��4A���ܯ�K��bb���t�ڑz��|{���3g@��oѻ�� �.��ԃs�Vz�^R�PB�Q��Ꙑ[��0�s�d�e�$�Z]�R����FRّ���T ++E�6��8-'��4�Rl�)}�0G?bm*>{��0�4�7���$���<��l�w�^B}��e*f�SٺdE��檼yps���/�"�W�뗹SE���p��?F�^j�_7|�4��T5�q��%B�Q�ᴏ���U��ʯ��%��e��˰<J�5��4��~�x���־-?7����7Fqc?H\zkH$t�|�ӄ���4�%qq���[n�pKj{��C�6�ߒǷ�E��H�\��Uz(�Э2*A`K�+���]Y�:h���������S�� +�k�`��!�V�dE� ++ޚE�f��#��G% ƌ?���*E9$���2���1�L7ݣ<02����'^Lq�Y�l�3iѴ�u�.��QwS!7��x-�۫��U��*w~��&�$���'�歈��X/2c����/X���R�$β�Y��K�ǛÓ��xp��㗮��4x�k>�����c^�la���Z=~�T@�h�;�R��Ili�����JpHL�y�/�K��Z��]��|���G9���i�4�4��S��Dؙ�X��A�wc����=��f�����W�7[qf�� 0K��Z�X��쥶�;o����g?I���`�>s}~��d!PZ )KE���$@����E���6���HYj�!��k�K�u~n�_�ܻi�)���X9�o�K�P�zLC���bX�n�igD� �� ++:�5P'��]���#������:$3k���������0���!�U�@�-(�o�<Ά���N�~�ʱֈ�����<i"�H�\1����/���W7HW���P! ++�FN�ِ�Kˬ�K=F�/�:�~n���e�`����S�Ή(��6�'9%c�ͫ6�G���凖����qY�s�|<��A}^�dV`��`�Ռ�s�]��.V���~ ��$�|��K�)O�A�i�;���64�>���r��|_��B��듿�<a@GlA���= v����G/)�jm�}l�"����G�`��_�_n�C���=֖�k����b��K.���<5�z���*��֔���0#�5�zQ������N5��C}0xu̧P� ��-</aFc<!���Xi����@j��p>H��h�ljb�k"�/��6�m�s��0L^U{������o�CT�W���p�S�[C�Ih�a>����������n�?Vr�ZF�� aI�������� �F��Fx_v]���T����>$�����G���d���#P�e/1 ++z��U��s�An=�.R�����Af��,�W����І���y�ܹ�� ++��g�+_Y��d��[�p�/h�����e#� ��z[]����&�E)����߬������Y���v�ߴ-�Tz���h�n=S�F���u�ɛp���u���][�8u7˳,1�����۾�W�c*P?�0Jby�xj�� Om�/B��~M��F,�tkz[o�d-~�uu]�{�d;���OeXn�e#� �61�ZN�]|;�aS>�ЛJ�+�0tv�7�������`$pp ��w���)rb����3����PP� �j��������8��K7Y�:�.�%/���aħʟ�ִ?X�A2`�Ȗ���nL������!���/v����a���X"wcV���^!aoml���,��e���Fi�>J h�X�&��cA�ɡ֫~���h?�[|�Y�8�]n�#��p#�&أ�jۧsW�����4��H�. &�x��2.�����f��a��Ϻ�����XLWЇ4���7�b2 �0'�a.��!�hv�Z�<^^s����9r:�7$χh���ᛷ*���uRڏ�x��垩6>֥�A��e���Ζ� ��o.��<UD�>1���x��J���^V:�P�Q�O�~�e6�� �;{�ƺ��6��I�L9�>\E�B�1����zo&$[iff����C�q�����L�S�Bn���O�B��6�[C�b3xZ���D,ܙP�X��~��T��F�Q���_Ѓ����kcre���z������M/7��nZ��OFc�)��+���u�Q��a��x��^9�C����sЬ�L*7��OH��`�N���)�Ml���� �� �%�#3-��[��o��:TI���d��.sޜBN�����at���5!��X��Q@��ڐ�O ++y��A��|��A���ڷEeP��H���L��Z���.�k�*�p�`z`X��q]�,�V�Ǡ>���N#ң�6����lM��;<Vv���*�r����m��u��GV� 1Wh��0�Bf�$��g ++�u ++[��3H�<"ix#x�Y��x�N�y��D߾�� �@ʂ)��t;&FUm9���]������нȎD*/����1�B)��5�NNT�uu4��u��T���#��������9ks@e���sM8zjgBy�u�O�ԝ�d��ӵ�KE-��O�Ε5���N���e2n{���p�Lq��QCQ!x/ꀫ���3⦟_2�<4$�.��?`����c�c�쭙��L�ݤY^���UBV� Sji� ++�]�O�I;�x�w㻪�=�}��,x ++��Wʔ�Ua�Sh�SG��h�kJ�!�ɍ���3~@��h�L�9���3?�$�i�b�$�P��eRm�CU�Z8����HIJ"���L��w�ZF=��p(�& ++�-� r��V@{��d@��r?�\���q�]y�XXm��X���Ø:�$c���{���pye3�1�T�He�C_Z!���7pX"û������G&�tH��/�abN{��<b.{]m��)2�"��B��/C�@�\4��u��Õʐ�9�1�C���(r��-?7ή�D�Ч�lY�����R��/���o2[�a�����Vc���U��z�%y��2�������w.�,|8mX'�m����=�I ��!]��PV�tqx�D��[���l�QK��p��$�)i)ځ>�.bvH��C9y��x�*�˛sZ�չ����I����8�$����ξ9l7������4^�$��J��s�y䌖�%��2���R韾����}4��+�Si��t���Fڲ�� ++���l4P�m���w�{љ34=۫gSz�� %����S*}���(b�=i��gO��D���Sr&�D{� bDLB�Ka�xŹ��9SК�\�3dյ>˞C{I�ej/�*ykqK�|C� ���O��f8^���-�"�p]Ƽ7��Bj0 �?�6�R:ݔ6z�/�<���?0PO���I��|Κ��1~��F$�}�O�h��_]٬4D�÷�&�+o-��nkc�=��ݠ�]()jA>�z��F�����wU��܊� (�I�A�v����Ó1��:�����e�C�[,�xs�d斜���έ��#,�V��i'�8��b�����uǿ������'��t�㱸2+?�觃��sٖ+�,*�;3��;���+;�Fp��JZ�IM��\��2��oG���rCc�#���@Ү��LI���yWipc��N�X ɚ��>��O�w.Z͢'Y 뵴sȱxS��c�� ��(j�q�[��\;W��L�C�Q�a�Y�%��F���qCe����7��Xw���r#����S1s.<~uTX�B��/KW�K��4��7�b�E�os]"p1�3��{�7�@_h�m�9��p��I�<�� "<w��o��\���ǁ�௭9�%�2���-��ίf�_�Q�C�jKI\%i�/�־�� Z��/�^�ߢ�/���/�3��`'�L" �+�ҶԌ�aA����5�۾ps��G��4��n�Q��ڡT��e�� ��K%� q�2`臁�Ǎۧ��G�o7G�~��(����ԟ�p��������y����w4�����B��o�um&/ѯv�R�x^������9�W,</ �Ù��W��ޯ�o3t�;�e�&O~����~��WC��a���<�o�V(���ϩf��2$ʺA���)w)A�>��edI���yn�E���LTv�_�@�z�ۅ�!���e���DM�w=J�����q#���Ɲ��҈s�vm�D:^�F���[Kf� ++�k��:�{�u��X-h� g�� m? �aϲ*]S�7��k�k*�� ++�LX3� �$1� ++�|���:�qw 4�������ѶY���0� l�$����^Y��bk�`�������k,o��ї��q)7�,;*b0�JN�,m�H�'�k��rl��"��w`�� ++�o��H��_1��D�(���u��vH�9�,���?Ѿ�v7G�C|����7|����p)�-�MN�[������}�P�&,ೖdo�*�X�Rl�C�u:��ޭ=����h���W�2���}Ił9V�#p�E` �������Qrݕۀ��B������,�5�E\'���ֵ� ���*�����X�[����� g��\H�X�/��3ƊR�7�k�ʸ���r�Zۇ��z)p{��� Sԩ0K]V勩"c�D� T6>K�L������/�9���\s�>b ������J9پ��<�O�/Y���F_�N|�l�V����|������E�A�T0��OjзVe��`���Q�Io��[�X�"X��q%���)iC��"�M��zum �î^ۊ�4Rh�k�+���rb ++�D��6�M�����%�#�5�"�6[`>�^0�������J�8��"f�h�� Tr�F�hq�Zq���d���_�jme���!��Ґ\[���m[ =�h�ߙ��];4�GF��$j���X���r� +++(rw'ƁŃ���p\F�c�۷�.���H�^��v�tuد���5, ~�S�� ++С< O|+B�,�*��8�E@wp�7�[Ccһ�+���E.?(��X,$ '�a��X���J�h۸CV}�6�T0^� ++*`xj�<�1�gOV��8���� �0�������ud[��%���N�(�E������<1�:��FZ+���o�ۈ���°q���wl"ef�v@0"z�0aV�ܺ)���/������֏)-�K#�qp��� �-ݬ,c�7P�x&B��Z�:��ϔ��.e���@��D�������r��mD��H_�<��&,�YV�r^���.\�T�rlSh�x�H�A�A(6���c�z����,I;��qo��Q��AF���*�2��p���T����ܔǐL]�q��ٛ��di�Mag��h�[;�~���yŔ����O�y�뜘A����y`FR��)S���Q�50!71��L�FԻ��@GR�T6:'�v:��r�x��x=Y�Ax��h�� 0߹s��0�C��b5��1g>��u�{��ͽ��%'�z@$���q�b�z{��N5>hg�A���,�c��*6�?M�E6��O^�U"�z���"�F� ����f�"�H�}{�e[ T�5Ѱ��Ѡ"�8T�Ц-=o��]+��@�����'-�H�a9���io���3f�g.Yŭ��/�kb���Ґ|^oǫ��(�Hr�� � ���Zs̠�����HfUo*��' ������2��Au�p��@���5��}kP�����&�d)pіTd�40��P�_���\��Z?L�7�<i�o��N-�����L��S�,��^0Ӎ��{/�*� ����1F�o4����FA������Z� ++ Gy���S�; ++���!(-]I�����ԁ��,h���~Ay�s������'�d����:н5�[�;���5E��rBWU��[�:�B"P"�_��Z>,L#�\7ј�5dm1�_i ++�*�I���Ǎ�Ir`��v����(�c�{�����1vs㯸����d,� j�r� �Zd!`�0 ++ό5�{�nL�ڭh���(�D��wʈ_=i���6�vL��5(���s��Lڢ�毆X����6�3��F&�� �4�Q���99�r�k���=\R�_s{�Z\�-��00�� ++����k�NX���#��ڣ�&+�����`���� ++��2x�����(���dS���H�o�c�N�9�)G�#�Pj)G�`FPZ������Jy7�K�����tgйV ++�<�����F��C�]mHkK ++���`�ީ�QI#c���q�2k��M9�բ�S��=��Ӻ�L�`�uʽ�h ++=��%�L�bS2ݳ�K�iuBnx���������B�71���5 �}���!9�1nXkS����a��F6FK,͆߭��a�gudzo�Q�,o���PL���ݖǗ��� .f�*� �y�A{���Z�?����A�ъ���X�����otB�Cu�<B��vo1F9k�}�4 ++��մV�R��ޥ��#� ++��T�3���|C]`�a�N5�6O˵��]۬ �ˉ�$��g�����ƿ�(��FY7E��.�Nm���RE�A� �5��4`�͚~^G{�I�lc�'��鰐#FM���"�HV�S�(ƣ m�h;3&p ++M8�1������!�x�9l:p|-7醢�FK�c�-.i�W�3��T�4�H�M�B�o�/2��r�uC~s��� ��sʢ�S���:*&0�Ѻ\k.��n0�8�!G���6�e�s5�S��TkQ��>��kl�0��3��^�U�G�E�u��_x;T��b�V���my��i}��\�����;��Y�ߙ���?��n�W�/�����p��s^�<�J��pGF҆!�w(4�C�.��E�̽a'/u���| O�uߛ4�L^m�'Ö������M�1V(F���[rG��.䤸�73h܃D9�_]�eR��{3�Y�|Q.�&��9���z ����l��p������*��?Ze���8�$�f쭴P�ǢP�E=�G��R��f���(e���� Y말�*�(��,��|��{'�O�6��8��xz�n��Tn��zl����ͥ��]HSB�5!$��' �Df���L?A��S5��OG�y� ^1(�8A�2e.�@8�v�\&or'5TZ��u�>��w$��[��T��c�o�6�(ޛ�6as�9� ++��?(�'@o���/K����k��R�����_^��H�˓����%1���ޯ�/�r2OWFy��)�v"��e�!���rr��e:ԉ�.�^�|����@�y� ++�*gRt`�����q�%� ]%�+���3jc��"�M�d�:�>A�p����6y�a*#�"�;j�P�����б�Y��k��O�q����i����"���_��ȋ ++��G��'���Āu�l_�@���EǺ��}2^�N�y�!���m��BR�M�@��亽����L-V� �GsQ�c�<��w��[��R8BR%�ġC��y�6�Ƞ�9Љ]@,��WF��~��� ��̷>�O$�h|ޟ ���3���\dL*Z�/Gw���K���BK�h㞺�<��M��Z^F3̂��J��,�&sV;�b8@r�j��]'F�B��v��>u����NO˂jIq1�C�J�4,��v���թ�oV��������:��x�Bb�n�oGpT�T��!�V�uPT�|�"7��{�^!@({�[�Τ�*�����f�)������G}��@4x+�\,���%��0���<�~4�*�$�$�vy��6{�=�_�T=q�{ĝ<>��q�@�, �M��`� ++U�6>���W|���&��S��E���_o���_���4���Lߦ�#@�� ++'�5z�'3h�f֡����3�c���P�Cn��?ꍖrT%��JxJT��xeL����jp�� ++��hmx9��-���C��R�W�k�������!��A�!MF��^� ���{��<!6��È�|����̠��Q���w�<��.h�����)�1���=��X��`>��nci%+��|L��!�a(۹��5tEd���^n�JW�BM�\��ҕ?��3Q���uvH-/��=� ���n�nT���z:x�� =����>S~�,�c{Dd`7��-���M�a��k����%���i�Yb�R�V��HL�,b�Y7]����&�8q�M�q"���!�+{]7�l>�����r`My��������Z\4��gsn�~���P��3�)�_s�����؉�y{<���py��lR!q`֛�>G��I�n�vW��n ++�D7���n⏩c�Gn�J���+N(���-�j�X �v�d)����V+]D�dt�s��77�3.)ƞY�]�vt�Wj"K�{jf�'��U������3�2�2�,�Q��w�HS� ++�~�*#" MH����P��]W+�%��K7�ˌRFH� �wV�Q�}A���ʃ��|t���¬����G5�o��|��GAN�����B�iA`]��v�5� �w�����57��2�I��%)<D%"�훋0�\8$�m�@�T���Ak���q�0�@.&avFi ����T����Oѱ�؎�F �-��z%7�� �e� �l:3��?p*כZ"�A�J@��:e$q� ��Ծ-�o�h<����+��2&���EFQFtZV}��о㖴�`��J���@ � 2�5��ѯz7(+�2Z�m�A��KF�= V��#�h���^�,W�c7�ޛ^��BP ��a��W�u�ru�< ���[�#�_�z$�k�;Yt���)��ӽF'y-��vg@c��+]�(9�E���<+�H#�݈��-Q�E �%$�Ri� �g�����%�3��:�t�^�3/����F����|�&�S�7?<�G�\�����ד�-�5|�k׆�p�hIN|�N����`b�~�1J�!��TE9N��ʡ���X ܵ�"���z`���x��(,��w�p}�O���`�<�C� ++lh�*8�~n��qj�{bؚ�?��5$@���9�1N�J�V4tQh��`�0�g�s\�G���nk�@���f��z�,C"��8����,9�����+��^��N�ϲ��1����G��~����*'�a��%Z]3 ++�x�P˘���1�[P`�A.Ъ"�1d<�$��X�j$��*(R���G�D�^�#X���zP��.Y�QvZ�O���E���:�b?���z�ie`~��ːB-[m�&��B�>�1�w���_;�u ��kz��� y�����Ͳ4�Q+�h@�3��v(]�4!�9��wy�r"U��a�J݇�#S3o�b�dԇ�6����s��Ud����4�p�2���?��ă�?����ߍ.�����c~�|浰n��5��ōP`2Ѷ|`7���K��]瀑�JT�{�^�͆YF�בs�cE���OFړ�'CxK ���?�Fc��kC��O��"6kht)5a`b�����<2�Ƹ�Pr�3�90�7�� ځvz{�vY����e�\�N�Y�S�#�W��A� ^q�y����坨"=�i�m�v�.Q�?�ؗ��C(2�^�kֳP��+lw=���M�G%�.2GXߥ|�<�����Q���2�CO����G{��Wc����8h�������Y���#�*�G���f� ��� U6�����D8���`�|��+m���߸ ��d�̎�������h.������Wzl�Y���|��e�7Ə�*�^%ˈ=ܞt]j֝�R��+N�� @�S� ��\�f�N�|������mi���~|đ ++��!_����ʇ��ݬ'�M&J��r1ifP���0�U�0:Vޟ��TZ��I^u�#� P�t���G����� 1ڟ��g��x���S}?���'���6�Y��A�w;��͇�d�.�A�_�+���KK ++��C��KCTȧN�25��z<�|�'�9�j�m���T`X� ]��=6E�8DN�= ��Չ�N`����ϻ����:��b�Q����<'����vx�L�ޝρ�@w�"-��N~%E���u����0|��d�O�}Dj?��m|�#����$�Od�FV<�G��A�߳���hqY�R�\��r#n}:��5"��>i2~���[�>��o/F�Z��]LҔ� ++����[2Om���������D�A��7'�������c`}�i����+�IY��Ԍ�����g��0�͢�����~���\�[�uđbr�M������K���W������,�!C =��H��ya>�%�Ȍe�پ�\��\�����w�����m �l�����où�ŗ���{�B�o�E�Y�\�_�?H�;�d�:�p�⾚�����dX��d�V�,����R� r��đDe��� 4ͅi\N�z@@��n���_� �؆``�^�w�-/Q���6��!G�5�Xgj�g���$�ǖ��s�b�m2�X.?���m��Ȫ+�7LU�q)/ưd��%���L�����X&�*~�ui�:���&8�!486�(�� �>t�W��e5�PN�i1���m�v{RF���ܟ�������^ ����t͑��l�s������lBXV��!l8����iA��n�R@i�6�h���;��˽���3^���,F&��:f��6�+��3,����A�[���Hv�D� ++�Lhف��� b@�&1�Qަ� ��=���C���,bDV�754 ++�˻����O�H�I_�%��g��r2�]bj*�0^���Of��A�)��٬�@���;,lr��S ++e+�x���{�:I7<L�1�$�%\ <���*�'������>��V0�:6v:�Mޱ����:S�}�a�?�&;2o��fD��!(���#��e��`��Ʊ3d����x��'�Ԉ��.�������\�'0�� e@���ױa:*lY̧G�j�ؐy`�fDomk~�ae\=)G�=o'Y�,L�4�_��%q�eM_�E�| (��������I(|-}5���S� ��i�|2Ɍڈg�ݣ�#�����L���*�#"9�F�@:hd��푆�Q��j)���'t%���6�n��&Q�D����Ċ��� {���êNaYX=b#�$t5:N�Tq�*��;D�|��9�� g^mO㇏㥙���;F�\����>NF#u�����Ai;>n�;c��H��wiK�H-X�rg�x�T���=�T�6��M<z�v$DV�F�� Vo�o��g����x���&��9W�)��C��U9�-� GW�����?�>g�8a��+bj�ڏW�z������z% u��ü��:\���(1^�b�0^�u�W;O�:�3ߺA@�{=����&o�?�n�� �4�iM�ŀ*�?4����І3j#0]r�aeu��:_�6S����*?�Q�[A�c�t��9�},��{�J�<G�fl��}(�f���]f�A�Z>C�?�ї=~~��1� 1�n���4�;Z�}p� ++u���R���E�/Pv����G2�3"�j��FE5*�R�KW�W'��T�Q������ר��d4c���}�[�M�耉U/���՜g�#�~6L�$�<��}���c77,�Q��r��Bn_m�Q��:����l�0��Æ�4#N<�h`<���Y6徆�a(E�����!s��ǭ[�����v��^�Gh"k�A�U���I� C�����ͣ}�^��餟p�ʟ�Y��M�n����cH;�[�=�yD�uG�J�S� �a�s8I*���3��@r�nu�B�9��CŴ)��vD];��3_�g��'���㨖��|� ���A �ˈ�{���c�o]���m$��n�����u��7 �S�����×2wٳ������?���E�y�MBgM����ij��>���Lq�FRr��Kf@���n�;Ԉ���M���!�p���e��[K�%�J�t@�yq|p;2NS�Q&'���H�^��D�K��u'af�� ,�t&g9�ؕm:0��BW�C�Kۀ�d�����6�e#TD��|~YE3O�M�����!*�l���c�i@֢�;2���Y�:����e�ڕ%8?��h�`Mj�D)"E�1J�@��t#��)<W(�VM��JR���CW{�x-'�,�K���B���V�<����ت*�e�L=�u���O���\V���;��>��{؟ {�� Uk����$(�����f�[]뚯��wH�=�mh�Y��@�8~��%`�~ ���a��,vQ�r!��V;r�ܶ�-|#Y~N�]ӳU������>�5 ��nnؚ��L��}��oM��~����A�(�`||4��W���vQ�\�F��N�D-m��*um���0��=2�ѿϲ5�O�F@UT�d�i�=��"� �Z^��Jeȟ= ++�iy�d��@��!S���� ++�1p�c98d�� ++��x�,��#�K�冁�0��d�Q��(B���v���I�F�s��<�����G�Ďӥ %i�v/B��% ��@&)���0(��fd��Kȥw ++��8ч���p�Q���QM7���2��b�8W �Ts䀜�]/�)�����0k6`c際J�����ƀ��lK�����ր�Y&�42�j����N,aSt�Xqx0�Ps�?y��7��J�8��ZD��F�L�8�Q�������=�T����~2Lz��i�u�q�e\Sシ>�3RC;�N�%X=K`)�mR�qk�-=��B��_x�'�P �����=u�P$��/!��pGW�e���Q� �=g|J����\6�-B��Ҭ������b�T�)��� ��%>G���o�����_�/�c�+e0��1�p�d��c�gOe3�ȭ#φ"3�N'i�{XX)f#"��7��lm#u�}͵F)�br��3����9�hX��=.,O��iqyJ��T���*�#�S�~�Y��'�H�� �Dᮦ�bqQ!�Ñ�R�����"�¸�0�#�X�ZI�Ja��U�eU��,ݧ�+�����q�B�0[:�H^� h��G���Y,�Ka��"-��g���q}�s��!4V�͇X=���#]��=� �x��")�-P�Ȟ$�"�$ I۪m|\��M�K}�����-�g4�<�{m��p>�5Ҍ^nl��^ ����Z0i_�&��Cy�q"��Ok�w�ctP���U���,�i�f��!R��E7���#c�Z����m_ԁ���>�B� �ч�əqS�M}G���|�o��|������X�h�$�]���o�m@6E9~�g�,�C|�Ճ�����gф䔼4U'�뭏��_�5����6�L�Z-k �@��J�=��7|�"8�t�$��"$��]O�OBX��L80� �8�i�._L��#|1�Z�1Sc�/&� �jb�.��B��y�_�/^������v�&�XE�� (�t����d�,s���Lm��m�����Z�n�*q ++ު���=lw�8��Q������:�h� ++l���SWX�.߈�%!/���x����X���}�bV>�Rźwn��)irN�e"�M���2jy�Cz%��z���n�.�e8�9F��}��c��&RB��rD=R�B��#�v���IrS�fSsg��������z���WA(�7��ꢲ��,S�<�E���^����m���6���rsg���gqP�O/�(Ytܲ��&J����RF�X6������K@�H-y%(8��Ր���h!����J�[��q���<�"��>�w���(�������9����!�x3�'d[V�4m4u���zΡ�T�����E8<8G��y^�3����������j�F����d����K�!��'}�4^�,W�!��[��VC~ڃ�@v��)nRw��%t ���#�C@�N��F����e+�r[vK������K)�,0�i�x�2���:w���+�ﺏESh�k�h���mZ����*/eC�:*^-�g?N��0v� ���=�[ۼvx� ;��,3^3�|�0���U�)��0����*�jbX�h�=I�+_���P���s����`��s�"����s��Mo�_��듨�L]�O�mE}��n�+ '�{����v��}�< �y���X�x"w�6a9Q�wvk�)��V�ԒL9���OȨ��!���;�<]��^4��w�~N3ך�� �:ܐle,M���X��zW�p�۸a�{�x���̷v��7r����Z��C��(�g(��W4a�O�A�*\���o����0�,�uĒ�����"��ȳ�~���U.�uΝ�\�ו�L�]�Ơu`��z�o�ᰖ$�#�Ϯ�ʭ� ++��c9`~uVGκ��ltY�+l����0s�5� ���%������hH �~�h���Wυ�c��]_�ҏ�W�W����h��>.����S�t�(KJOpi��d����O@��9��m��wPޱNZ����f�l?�%��i���ԘT>���<|�>�H2�|�0�7������2,�,)��R� K=��5��UV����?3x�',�2��$؇���pֹ��N�x���g��6Z�dDT��Y�>Yp�,�q.�w���8���B|ce�}����R��AJv�n�T֬���e8=�M�/��������(�_L�:�C��{Ц|���g�vrJ�� � +�:��g���)S�f��ƪҾB)+-~�n�J��jGC��6��eQ���K�"�W��s���$�t��s�ꄮ-o���9M�&w����O��~�ep�y��o�R�ʱ�'I�TWծZ1]F{�UT���V]lnJb�m`[�!������ߌ0s1�(�cR �te-�[O���#�,I��]�s��m�lpI������ �=�Q�B"F�G�>aC��X-2fJ�f聆Z��%��]-��X����Z:%r}V�z�}'�}�g�O�s7�3��������VX1������� �f���d�g����ݠ�*Y�c��n/=4�2����Y�`~��J]��J��\����[��1T���I5n��N:�)�`XoD���F��(�ߪ�w��Pd��ַ�C�g�r\ #�"����vp��z��E�+��`,v��/���Hi�S1k}wE9�"�-~��]P_A�Z���j=����M�)�]+,p�.��m�Nԡ����a�}oA�������mq��v�Nw\�(�֔�8�O��Ta�˼by��?1Ϳɵ����af�ue�%j��䗢�C9L��Ϙf���)�3�W"E�(|�F����Kb����!>`6�a�z�^t�TG��b��x�B��j�*�Y�_a\��~�����\�fO�N��=k�I>������Jb��O���۰�=�������}�%�=�"CW��@�Y-W�K ���l���6*C���tv :Z�J0� �����!��h�Z�� ++$��;�|�o#q\�Q�[�W�D6���Dd~۪��g��>��Y��}gs�PT5M�<Ҋ��:����Z�k�d��p-M`&�Eƺ��c�.����CM� ++ ���o�Eg����a�.Z_mK�c?X+�c}�5`(|ր�@w�j3��n[�c]K=\���r�D��g�IYI`���b!�n�[깲�!:MGG6��Q��=�xE�K<u��05"�ECcS�d�1���V�W���8�9)��oW�t��6L��Y����'nͭ �p/�T:�8�Oϡ'��(!�4RU��!�~CX�e�g���*&����^���e) ++���?�F�����}_���!,Q��q�ۖ�3p�<`�.�EWm�)�j�"��(��Y�ʿ���"]"��� |� ++�~��v�x�js<���c,���Ԕ�M����c�Kg'�&����n��=������Q�����mt�B*c�?%�0���&~�f�7>������ͩ�)���4Z�Y�L�"����Jף�����<�T�b��&e=̬mKG�F{C�U��֘#A�a�f�a�5�M�U�mo��:�D{#Y��+���3��7Z� >���&-�b�o���:s�[�̊�B����A�) ++��T"`%3a{��*���0�U�%�Og4:q���6��u7= ++�l�H2͏�ݫ�綏����a3����k�b(�§o����z��m}�������%X�i-5>O&�{^_f@��/a�똓�#^�}��S�Y@�����X�7:�(�-9�܅�������|.2�O���$�xBo�X�W�1Td "���D�y�~�*�E�����?�����5��A[=-��|�ȡrQ�bD��+��]�-��I�~3�SCT�/�Q��� 3��7��?BF.�X��[p��㐉C�!�0Ӡ�� �)j=�皙4��[�3���v�`=aWV��IFس�D��F�:#��Vbr�� }:�����ʮ�*$�vF�BfL\2 ++� e;�:��F��|��m��Hֈ��h�>vH����v�����~sҠ{���<����$�I�k���}.���!f0�k�;I���&��f���_A I;���Y�bC�(t�)/�h ++u���ȯ�U;wz4���0D�\����"����.de��<�Z�� ++?mk`��i��D�0�����@kY<��Ύ�_�uCs_7����F�T��'r�5ڞy�뭮�Z��;����W��s�"09ו|K�ؖd�7m�V�N�U���#0e����:Uٖ?��1D�䋿�z터=���-��8���-P]j8#+f'g���&�vj�ϥ��|������ ++Bm0S!����e�|����a�w<[��G>\u,mKN�]�� �H������u�7G2j�6�d��U���k.��{�g<��;���&ZM�$�����Ra{��9�k�Ď+��b3����eX�Bw��RFT��,6%��aǪ���IE�h�x�\l��I=� j�����qd�P�q�|���M$�m���U+��(?:P���P��D$��$\Q�L������@���H����o�F@/9����3bfk�#�qR��=� h3��dF˟���F�=e��q'�Y���� @h��o�m�����s�ҵ� W�(l>!u��;��ĭhD(_�}�t�=�W7~�Ń2�.��b�:�����H���ڑk����2Fy�� ++�X�`1ׇJ(��> ++$.�S�Z���@F�<_�x�$�XAwc�1/�j*]���A�J'�V�C�}z�v�C��#�V�Gy��\����9�� �f���Wd&���L����"�Y�n���}L�1��o���k��F�_�%؛�8�L`4-�e�ڿ?2�b�%vf�8ݍ�0d���&��qڨ|~�8�_C��d�Y8�Y.�x\�4��IP~?�B�/Tl�D�,ϸ|�Ɠ,O8��,��K�io�d=S�(��l�7��d��0P�:���2�Y��FA���g�_ w�w�� ++��s��.J}J�ܗ���B֭��O��p���PM,��e�d��zy�W�Iu�/����zA,@w�#֯��a����T�%��C[ ~���^��7~T��{沇\�Nl�k��!� ++�Ħ�{�0�,�:�<K�@����6!<�A`Q��}�������i�'���".?c٢������M�{@��WM����_{�ww^wt�,Zs}^�x ��Lx$ad��>�9B}�&cd��E�t}����-S�[5�j�\la�܁��OL��JX�%;�3�&�3�Jg�D�x��1��&���1�-*m?}� S.w����*^J�>���T��fB�Չ�b��P��;ց������[����5��P��r�"�kqq�,|�(y�eQ��%�r��!���`W�E /a�X��"��,��,K3(c�,�\o�1�lȌ����rg@�r�+E0xߧ�'I�]�ߩ$���@}��/�z�/c���.�_jUDB��m�]{/��-Uw���v.l+y�T�����9����5s���ZlU��@�k%yӠ�u��p��ve���'�ꠟ/��'�Y�'"�g��.����#��K��ڟ�@�~���!`��������,�k�k^m��* ��E���q���Q��ux�2�!P~�O�;�k�2�r��QߙW�_,yP���j�㨰�[J�R��2N�=-�v��~��]#_@��0����q@9����S,���4��1F>[F� Z�ks�5�-ͽ�������`\�:�g룱Kd�ϋs$}��m�Sr����r�F��>.�Xpjl��h�V���D����){֖f���A�.�&���#������Æ�^�a�b^b4PW;���ڔ�^?q|��O ����.~.��W(Ӷ�?�z�����$��z��QHk-�h�[��x�Sp��o�j����N�wb�\UC��l�?3ַr�D�<��-�C��Kd�7�S�:!����o��j��LEMa.yxN���\6Xb|M�u�>���s�hHXE.p��.�w��1�(z5�1��W2h'���ϽP!������c���L7;�$\� ��iŅ ��\���,�w����Β]����Fɼ=������e��x�X.4w�B�M>��;���pW2�ił m�(ū%���Rs[����K3�h���`��WL���,���l��~!��9$cܝ�Opl�h�>��T�����Y�6[/��"��+��j7Tc!�����r��̜t_�����W`kO�gc���Yj~�D� B>"�z+�ؾ�|�� �<�v������tRZȡ��у���n���.Ö���9J��5CEaȡ��D4�PL�;�����4��b�v8���I��qf�G���|OT�7��,�"f�d��yV1� ����\8��U�b��܆`_^���D�ڂ�8�d�e�W�j��`��rs�4gc�{�5N% ++��w ++$j���� ��Y�}��Y��UI\X9�l[�2��]�%r`�=vJ-D�\�h�ET��Q���$�>� �)�� ++�Xp�W',�^�[s�H4�j@���{� �tF��~^Y���t�yH́�i~Eנ_������`�A�s�p����ׇ@�tO�X��&082�k���la�{Sm��8 �l֢�"�_C�?SX��_�'Me!"��z�@�q����(��B�;�Z[雠H�c��J6LNX�������F�1E����C�ԭ��O��~ېHP�']_�f��RcEzQ�j� ��C{R�zH����19�(�.�92����PȀ�A�к��l.d�1�n��a��-;�:K�ש�7缎;z#�_%/�TzZ�5���d̨��LEG{P�@Wa=o�� �����kAA�<� e^�,�ʗ�����X�y0ˣ/��8�J�5\:tF�m>\EF������X���R��3Ϫ�z2d�ڑlpy����>��D���\kc%|(8uO���oh�\��g��"(����(�8O�::.�'#�<����L!pLa)�\*Ԑ���x�ن�>bry�Ջa�J�-�K�g�>���`��QV[���+��/��eP�E������C��n>Ѓ� �HM�� ZŪ"��BG���Q���v�=��+ykJ@� ++���|��:��4H�Sg���tJ=����zD�6`B4��FA�Ͼ����}��߬�������:r&ݤ��Qz�:�m8�MM���S����I9���<��C�\m�Z�����X2���kW`�ˌ0�U�`�J� V�8npr�� Fp�k��� ++�n�c�Č�E����eO'�@�̯,�S�y�0�������@��L��7q���(g8�kx���շ���#b VA�^�̌��{X/�|L�K�[����L1��V�Շ7�䅈�/���w��-�%�O�g����F�<Ð�D�5R�$"ᓮr/�%ɰ��e�ZR��w)����ښ �A�LT6Usժ���E����#�r�6��Q74� ��g��i>ھ�>���� ++n'�ol�z��Sr��녡�O[��~�^t�r�͌F�/WR�,�����T�e�@)�<�HņR5�E��a?8�'��� }�O�*� �Ǐα�Lz�2+�A�xN_�h�_�3,�G1p����j�s�r,eIp�C��.Q�P�VYq�- ++>�a���"(p5=��+:� ���r�{(���~�<������ ��f��R��-q����w_�z��}�hx��Z�_^�ý�a�a^:(j���9�1K�^P�P�#a<��[��' �"#B��"� ++���\���ؓ�ݏ��=���*�S��k����1�{�����PP �E�YD�;s f�NV����\�qN���/q`$[��p��!ŝ�����x{=S(ɶ�g�3:�z�)^o�/�.����8ָۚׄ�tQ��k�H0x�і"j�'�{o���]>��J�%~�G&���ej.�x��Q`��t����t��|ɢ���ݞ��,vj����>�œ�GzR2~���=W��ռ8�x����g�T�b��./%s��l�\�/g�r� �a!F���Vd���&�W�y!�\����g]��A��œN]|uUG^�?8��l��f�ܿ�_�mhI���Fn�h�RF���=R9 ���%�W���6+p���M� �sZ�^��������*ȋ�]t����U����ϐnb��҄�������T]5�\�h��,"�<O!6)>�<�c���M��Qo�k�˸�����-�����\*�N��G�����`��ܐh�E1/�f��GSߖ�ύ��TK2�ӭO��ٱ�F�]Ǜ_1R)��s�pTQfZ4@����\�Z�H�-Ξ3�� ++�0��"��Y\K��Ƌ"p �V�E�TFHFI�`��eR�o�{sAY�k�"�xg�z��L�Z�ܓa���̷�\;�����y�L�P�vEtЬ�S;C>*�����t����+ͳ]�@���=~�a)Q,��i�9�����ץ)W�7��7આ��;�4�Sl~<�)k�7�S�a�]���mg@�[���W�k�_@)������Q�r;x�����G5M�R@��5�� ++�$9��JG���Ŏq���r�����BWP���p��dz瘹��e��2OV<��bӐ9�B)�c"'��9 w��kÕ��v���c����zZ8l�����m|.1#��z���a�v�>9��MQ3^ 6Lӝ %�h���[C���g��������I��'�m�� ���}(�Eo�3o��7��9��w`ՙ��&�͆�ľ�q��.���.�[lqI,,JO�J��1J�1b�{����x��bD.�����Y��S�}���� ++ ]Z�ԩR��F�!��}o1����W�uumi���hj]�xmzɘx�%I�����?pj�.��%>���S��F��Zuw�+���M���j����l<�/������A��[����o�Cч���w��] ���By�S%�%�����f߇��=�����8qVߵ����W�6�=Z���6�ΞCI8����{�� ++�m����Z�C7)� �~�I�j?FFf���be4��5�kUT�.�m�)�DB����Q�Gm�DɃ�`��q��?q������O�ݘI撣'����z��~����l1oZ9�(^c��Ωؒ�\n�� S�����Q-��ޡL������Ю�2�d-; =E�X�E<E�HX�A�� �g�-Y��R�Pkӹ��;f�Am,�Mͫ��d�4���1 1�H�r|3*���V�~�6`;�g��!6�n�1e=�'��|5=��[e8�jЮS�}��{�G��Y��T�`�ն��?����?k#����B�o�C��Q��W��[{��5�_�r�?}����p�����莰���AUz=�Qf�:O�|���@��V��=u��OW��ʤš����;���Б����&�_^8���R�бE�Ƈ�;�F�S�dz.��ޱ�O�n!���w�)&�����3�B�h|k�q-=�1�F����O�Q��l���)�PV�}X��G}vF�g\dvn���SVy��O'1�7���C�L�tUE`���G^�5s��h���(�I�l��r�@�.��`��_5I6���n&M"L�71Q�����2SB��IwԷ��v���´��IǮ&�#�u ++�{:�N;_3��_�����cCQvH���أ�0��,�����B�����E�Tus����#t\��G�v}��b���Fo�}�\�v:�5��P`���NoM�;m��4����?�&p�����Z\D!�T��p:��b�ƿ��LB�<�k���{�O�q�����~���z�0Di��P&�1\�����Eܰ�Wʅ��`��er�}�꼱�Ci?��AIJ���/D�D�Fz��u�1�= �q��YR���B�+����I��{#{���'�H5�S,��u`�Wl�y���民.���x�Wyd�K��g[�%::� �~��R�w�6Q�n��.0��|"����nl�����������#S���骯WC��z�]"�2 y��X1��G��CLY�LJ����|��W����O�����Ѡ�z��X9HG}f����&r9� ++��'�� �����A��YW��8T+���0t�Gz��z��kb5{�X||6s�Gׅ���3 p��8<xw���5�%��G�<ؓnA%�YA�����Å�%&O F�����.��?U��#���B"��%[��-�Ϋ��R����?��xyb:v�������4#���/uc�aЬ����r"�#ք,3_�'�p�b�\$���ҍ=ӝ��������̬�q�z��q���B�.K�����*�)�(R�ڭMIɅ,���o� ȩO\^b����{����+�1D��[Å����y��#��H�x�Ba����� ���>4T�:���pK?����W�0e[l����#e���ƈ�=i� ++��|���:\/�Z�����K�<=XR���=m��U��x���ԉv ++�H�[[�T _��g�h�j+��`pQM�����������ak'+ ���v��*I��{��+��f��O�Iw�-�E��=^y�x��(���w1]�Q�Bx�!�:�ªZ��R��^*��6�]�輸�ۙO���%�Ѽ�m��i'A4La�) �]--��Ǫ49}V���V����5�8���w�58;oP֊��F������o���3&�W;!1��%�ߛ���ĥ��-h�_��rr��Óf�b������GUWY��09������ ++�3�c<�,e���wg?KI�H�����}���<��������!�yy ++��*\L}Õ��uH!�y��K$qj�ʤ\�2�~�KJ���8\�=F�V_���8����j�I1ڞm� BF8�h:`��a�T"���� ++�Γ8��$�Ȥ��A�M<�jc�o�h& �M����HߝwN6�;�8�5XK̮��#���)C�ɻF�-+mR�����\�Kz�!ȉsVm�� <6����w��</~�-��cU����](Ȥ�����x����(s��Y<Ƿ���~�$�ە˳�e�S�L�W��¸���#�U�_Y�� ��� ++_��sd��H��%|�n\h��t2,Ϝ�UJ�.����`���Rtg}��x��ž�+�Y��娩rcg����7LJ��pX^l�FMk�f��Î��R�� O�.��K�J}֕�,��ͭ���8���e�*o$ �q�)��5�N�W�>ݽ�O��K������|�2�Dtx�'��&�A#���+�)���|I����U�!���d���)��at8o�� �\V���y� ++=� �H 4��_k�;l?�]��z����p��zHa�Rx�V������UjQ@���=��h0��iH`:ɡ85��a�3u�|J�����m#`[�tNa�/�'[]z�"��o����4�@c{���7�j{6�tG��_�O�5�i��Oe\j�疯�:�<(#��4�o�,�"Q0<��e<i��:���z�q1����h��4�C������M��������*0�xڭXuVOn��}��T�}o��%D�n���^S�6�aϒ�RϷ���ZQ\�9^b��SkT��S!){w-ƙǓ���:P���S�S���1C! D���<�a��r�Q$a��a�(�i���!BE�w�j���_�7�+Θere ++XF�!_�Gj˄P���1�!>�e|�s��1�y�1GE���#ArpHE�D0c�v)a�j�挶��0M�s27,��J�.�eԙ�ِ�z�g�����g�����wB��n�+=*:F ++�2'���kNL�2��_��^po0�KqO�����- �`�>���8��Z �}�'�6ڄ����Q�Wd�c'?ֵ~1;y� �k��UL��`��o��j����8�3M��$̈�7s(q�g�� bB%(#`I��0��ɥ�`s�����aL�a{0��ݑ�|�G�;�!�ωy{=��&X��������u%��δ-�" ++��0�)h(]�T�Q�G� e��B�my���O��7{c��$�*��\�z�;x릙^ƺ������ D�L�y��V�k� ��:V����a���P�-��œ���0�t��/���Fw��}M-x�U �O �U��ek�6����,iS�Ü���;Vt�"�Tx`iHӭ�R��f�.��&OAy �?M�)�x�i ���b[��-���vL_�}�Y�ڇ�R$�!�z&��궺p�`�v䭪g>�N���w���"s��f���0V�!|��ꩶ/��eJ��1�^'S� ++����)�Y3ԉ��sP9V�C��G3�P��c�?��)��#o��;=p��(��/����� f?Wz���������],ؗ'eNihB�\���Z!c��t7��\2B|���&E�0��Z�+0�����4���� �����i.L�4��Q��_{)��P!?��m�@g�:�)6�1qnHZ(,%a_��eϚ�U�B��F��ӟv(��=�4y��Z�$�j&�s��4�!��g�h��S��U;�QG�+��\L���E�������dR� E:�Tb����ɋ���B�C��ï�MK�ٗL��c��`������$ ++��b����~,�G����X���SQ=�����}���T�����&�f����=Ϳ���w�z���C�p� �ТFࡢ>��6� ++7�QP�)B|?��X�|y��m+�bW�(G�_.)�<�@"vDŽP{ m�p ON�І�����7�6�8���NZ?��v�R����Ck7�NF5�u2��<�Ӽ�p�NsS!�2���� ++�C�����rG����L���E���꣢��Ⱥ3�4�=��;���"���Ia�ѐ��fm���o���,�JRnk�L:���p��rC: ++YrA�G9�k=d�KC��P���z߭��H��5<E�p���M�G�>R/R:/� ++_��"#M5-�Fȭ�q���y0�tw_f�Մ�$�̐�F2�7r�<��@N��ůFQT4�$��h��^�S��Ē��j��T�6��X�&�=*+hJ ++� ++�e,j�V��U��ËH�c�~�4��:�����4��y����6Ҷ�9ZYHb�9��VW,;��0~S�OS�����>#PJ�����:�� ++<�ua��xdA���H���'Y�X�V�����g�<� bG_d0;>��W�WɆWI�/J�qh9�"���A���p�'١ա�l���e�B��X�J�X�Z��>3�/w��<|�z��;���-/�ꝭUP���"� ++f�j�oJ��Cކ&�Y��4�f�rw ++@P�Qq��Q�%�C^�<G��!FU%7�������+_F��6�=�j~v�*�u���+�ef=�ƒy�^��"mg� s��N��@ӽ�tD�K�&�Ȭpuw*����)O���m�1�"y��c�m�S����q6,�{,����A23 t8%�+0-/xj�2.�����~��i�I|�BuR���,��^�B?��I|�)\�T����O�I�����B�~g����t�T�g}ܲO���qs���:L�鳡���'�/��%]����+9�9e�T���9���+��B������`Z�Uu�۰�fq�H�)��\s���P �~7iy6]����$ �~ߚ��v�WsBs�����w�,��82~��V�o�Y�K}�D�oyp�8�.Dj���l��6%�{l��� ++� �]Dtc|��ad{ze�����ä��;r�h��?����O�����?����� g��0SR}���0w��� e,+.���QR�_g�o��pF����Ɛ�Ϻ��Uݠ\�a"NHMП�~u(�|=�*�E@���v�fIc͢c���I2C�j��O�UN��j|����[���T�[~�hR8mfj���H E0�B���9�^��j�/�P�d�{1f�ν�+������ �ʱ�""\�_���͇�)�bξ>�8��S$*2���sv�P.G痶��/o3ꞗ��D�����#�����$�]ێ�ezSA^SyS�)et-�!l�{n��b�JQ��2�J�8�휤��`/�E^^�X�e���'*j��W(�/���� ++*��Η�"���׆��ǒ j��FJ�8(\�W��y�������<Ku�ܛ��2�d�W`l�����<�* s�o���-�f4�h��m#2��+�ǯ�����қw�G̲.��⩴��/-;��f���H�*��<A�g����R�_RZ����7��A~|��;�����z ++〶�bΐ��z.�l`9�8{z�f����Cv s��n���2��)/7(-Ou ++n�Ş�ϾUM%��XN���'�������!��0wf���e�8��[�X�I>��<��[p�I� �o�6�,�dW�"�_�T���Ʒ� ++A�ܫ��\|[wP1� ++��jn�3�ak]��{*�h2��q���/`3��4E,y��x�5�0��t�d��T\��P�$�վ$��P^�ᘮ�Bx��7�H���� �:��M<:d#b��3�;7 �]�h�p�`w��C����θ<{*E��Q����8�-L���{vW?=#���24���`3!����Wp���[�i��k�>Hy���J���;�vy�P���]E�[t���6�ƾ̪�Y��z��D��]����묔�.���uۚ;lP����Th[x9u<��X���6\�2@*�����T�f̗8E�+\*���GU~���4Je`�VF��^q3������ӱ��N�����Ж9���`�Q�!��������^�J!�Ǔ�;�����罆Q�Z%:�d�6ݲ�ȶ���Ƙee���Pa�����#`��"��U|�Sfgdu�G���}�$=�y{dϨ ���̓�x�`$Gӗ���]�-w��O\����;S4��cS!m�rEz����Hiѭ}��-�v�8,A�:�����N�V�CM?�ۊo�3%s���7 k~� �V�4� q��86(Y��1fP<��VM�:m�ڤLow71���֖"�S-#zN�PղLC�Δ�����^�J$�1���[�Vn��S�¸�EI+��g�3�����c8fqZn��#��I2c{"<�����-Q�� ��Dۻ�|t��r�ٺ�mH�#�_��ޜV�EfW��VƁ@twlk�K��3j\��gn`��q��+�.�i����i�ʲ��r�A�6� Zr_�>����1�?vF��âY��d���}���5����� в7�����ȸ��ܣ�� �#o��Î�9qT'��v��2��'@����2�zQ��4f��)��=dfQ��MS���3�9Rv�(��J�',-�&�h�|A�hx��Y�@�QtD�� Θ��B�~OR�Xc����zЖ'�����_����Jdڨ�� ���C�� KY�- S����zS pL��� ++լNR�U����IhP+��!o�z�WL��Q�n�#��j����A����R���[K<����G� ��\�tQ�U�r9��b���r��G#d�2�ܑ�ʪч�� i/8+�Pq|8�Ҁ<�P�(H&�V�aJ�lE��� �@,b�h����!�m��en5�]�C��#˝b!T � ++��md�k�H5��P�!J��Æܖ����iU�^�u�xH�¬)��i2 ����e/�*�i'd���xB���iF6鴪�F�Ph�YԒ('x�zlJQi��Q�\H�x~���/-4� T��+T��p������rG�L<|���eL陋J{ ��,�7��R���O֪�&c`3P�ΧB���`G���J������B6G��s:�&�/Z�@��l���Rr�VU����@G���O�y�9���ڢ�*<� TA/����E��r��}΅��r��������t�G�_��U8Z~��۽��GU�D&<p{�H�070��>ﷁ�@0ހ�xT���a���_�mQ�d&J�w��w����붃�L���kH-3��Pi!�ƖX��vT<�٧p�iR7$�&�a%sm9��b�>��R��[������v}���x�|����YE�:yRL����Zw(��V��WH$�[�%�X9�n(�����w2�� $���0]Һ�J��L�x�����d!���3qz���߰�o��ٚx��2��b㍦s'�roqxȉ�ɺoHv�G��_G���5Ydy#*=����D @k1�\�������S0ρKFL��^=�IjejY�ԋ�Οֺ�}��V�P����z��;�4y�e�L�[�&�a���2 ���$��_���ַ6>�($��HC/ Z e���X�3�R�2"���$jk��?�����T~�[����[A9� z#�ƦT���m������|����L�Z��j�o���2x U7�r�O��*���8�el����K��dz$K��ӷ��o�}�\���2����2_Oa��}SC�dt�1�� ʑ���<�I�34���^9٤�A&��!�����E!�gݽʖ؞�ls8�������`z�(��<��U�EN�b.�y�=�����V��^�Q#2a<f�R��.*ܣN��)U,��G�&���_qt���E}8��9��1�f�cZ�\D[�(�"cw8��wS����^��-YR���,�/�ʣ-�L<5��Z�h�rͿ�x<�{���|/p�Q^��P\�r�뻴l�t�ə��n�nCqV�ܝk���; ��� ++j� Z'=>Ʋ��si#��^K��j��'�$C�I�q���쌨��(K�w�~�5��']J�rSb���b�_�F}���/i�����5��Zr�|�';��"�yW/�ҠF�3�4y�S7|u���6��w�$����]� ++�h�d�]X��k�����\k� +���x#��9��sd2b�o���wm���Z��;��䁕��@�����)#�RL7�LQ^H���b�$%�ص뢇Vm�N-�f%J��%t�]��������0_c�{P��K�lV>� ++�Gt�u��u�W��7��� �c��s�n��G��gc�A)�j��i�̸ooL��Vx�!���a|pn�����O� ��na��z�����-e[|p߹NJ��i���[�m����҃�cR�3�r�*�S��"�Ү�ӈ�Q�n�{NO��a+c-��A-M��]L���3���Bۗ ++��c�_�*w7�����o����SR������\@���Ɨ���2Bٰ�Y{�O��YU�c�o�S| �%��[���M'Z�|(_b�E��㏖8�=F���u ++��bU�/�}G�R�L��C�h䈢���/���3~����l�+�x�C�'�|�Έ��>�>����qϞfB�8=pr��82c�>�!BK��8�P�:8j7z�,����s ���7<\���e��YG���P�N[N�(�;�4�����A>\�;�+,�t�Y݁����oamjn+`��^6�V����~�(ɭ얔�V�̻9�S�B*��0��E�L7DB��gK�����d�o�<��37������rQ�{M>1���SU������,e�8�P8�s��=��~��%5��R���Þo��f�6��`�۴����Q\��f�L(���ڔ���� �r9bu��NM���'N$��'$J�h���M,ѡ�0�L[�>��@�1}C[�'�A!�x�EmjL̑�K��/���4-��k(S�|�EC��SC�v]��4�a��-U�ơ�b�3sS�V�1`&b�#J�*��l}:��>L`���Ҏ�0�� f� m�u�� ++�1��a�7,F�x�Y�>═=sxCq ̣c��M��W濉\ҚK�G,B�w׳sV_�)���<�4���al�pC?,L����t^��W���g$�d�ƫħM����fmcz8ᐪ���tܚ�Txu�����v��HM��jnn{k�!D�^r�"� sxTc^O�P@�Զ��������1 �)g�]����d�{ڰ�d����/��1j�Ք�n�d��|Rӫx���r���1��3nj���x�@��]qj��Wm9@O(��+�.WN�K��)��e֦V*"�6��P�2b��Fo����a#?�������0�3�e�0[�@�R(U��ԭ�q�Z��v�齄�ы�͓� %U(��2}u����$���lݴ ++��ܝ��>��i��� �� ��Ϭ�^�9��ߛ�Qsm+:�[Sz�Àr ���0 ++��� M�Go-L '��ښ��M)b#��mSnd!��վ4��;�J��������.��r���˜�����*���B�����)$n�NZt���D��8eĽ�P�)�� �s�� ++�&Cԕ�O�c�u#"��c����/���|��js��,���B��I+��s�������A1|4f^Ve�G;�dބG��n���7,n\���FD���x�q��b��m��߂R���L��N� Y���.]H,]~?��;|r�����4,mL�X�RyUn�?��Sֵ��>br�B���Y�7-�c9|�wC�$�1Xy,.Cj��@�$�CHYX ��wo�v�Iz��ta�yڽ��b-K佷r�&8zy2��߸��k�6���k���6~wd̶�"u"��|�J�7��s\?0G%CR��:} +�"�\�o�p���a`���j ��b��枣"R�����u\ NVD���3�Y�� tĽ���t�KB%!E�$ev��@v,�;�t�i�D��,�.LB��*<�;Ժ�����00a�5kB�0^���c�YRºMkCiy�7����uͿ�'�r�x�qYXo,����S5+�oy����;�ˇԊѺ��m�J5�ߚ���m���C�p�aʆ)�ʌ�7,0��^"6ȶ�M ���'�p�{/�T�['��H��^YԖ�]]ˇ�?��x��7�p���smD���1�۳�/2(=��k�f�<-�y�J@ g�D5�_T�� |��I���6b~_�����;BS9E� )N���j䜬({E�v�L ѭ��z�b6� l?$���,Y��cA ++:J�꼶Lr��*`$�F��n*�0Lx�ʼ��F�n��\�ㄯ��8�" ++R�d�Rx�e�MDXf5n;����B�_��zZ���:�����������i���CY9��4��22M�^�?<�o�1��b�6b!t.gl�������u��+�{{��\��8��>h|��!�7��]�b3%��O����4��|�q��1��d�����j��i]F��S��;G�gZ>�t�̅5�H��ڼܟ�����&���9�+���qΝ��doc%�c����F���K�Z������Ŭtג�9|-��x�t�1ĥ?�_�c����]��v�j�L�0�٘g�h�S���WZ`Ѱ!w�zyj:ev]�K�y�������@AeX����������2G�����e�|�B�k�!2� �yKl�����h=D+~`Gi��r1����H��9į(�T�#N���3�&���ǥkgF3�v�\(:�hUOB��+r^=;,�u�*�XW����m����r�'GV�X�=��ޠ���D��g��." ����=��*)��eH:�����y�v��]�G�;�� И�3�1NY�;�5p2���:#��h�3M���c�`�Vl��p\c$aW4<ڸ������J�1���n��G����3tiJqC���v+��Gdw�\��C-0B�K��m5�%:峡��A���5>kz������չ�*"��d�T����~9;�lǽg�)^�S97 �^�������M��[ ++!]]� ��Y��Ќ., Z�����ɩ���Y�<�֖A���M�})�(��~��84J�.� ++:��O)�;O�4�i'���~�z��3±����桫4$�a��%L��(5�W��ސY�-��t���E�I,�M��H����2:�ǣ�lԆi;�����ǁ�f���m2,���AMO�Z���J��KB�}�o��[��㮀Ƨ-������)� ++���_eB0�g�;�rv���!IH�O�ᡔ%���u���7��3�SEE��`#D;�?�J������(��39$�9B\��;p�x��������vb�8ў�"� �˝ ++��azs�v}T5�����#��-Y�1��D�L6� ����T�u-��kc�{�/2�>�!*O����[tS^�2sω6z��nXQ��v�+r�|aB��}q>���S��KAqI'7t�ӈV`��|u ++���;�Zt�S�ɝ����Z�%I�~��2�N|���ISZ���:�u�]���)�bFȆ/�"}�3��A�Ă��G�<�.���cb�}�(n^K 5)]�=c�pD"*��ek�C������փ9���G�����Ɨ�� Nf�P:�����<vzu;-��Q�4��p�BC�1��rn�X��ǟ,��i;�}B�� ++����P��+0�1 �q,w����X�7���ޡ� oTˡa�gZ�~��B������n��_�X2S��R=3,�1dp�����o�^_O� ����U6���'k��o���?�ܡcH�\3�J�h�("}��2�G7��&�����2&���j�0�����-�y,⧐�V��^-ܚ����仚����fj���L�Rf��=Ś�6�T��,��5ü{>��0�*�Ƞm`Az��Z_���)��糕�����<!^���k���������%��Ck��y<�>F9'�P7,e8�aj����iR�d��:�"��M��g�0Q�K��G܈&����W�N��s�Q�Ro��Xֆ6 ++�-v�,�Ss["۸C�C>���ʧHBq�q�y��j�Hk�B7ɓJ�J70�mO���`:�<���=/�lCK7)�KgZ�VS9�E`/""����n)�+u�(I��F����rE��M�#m�lMBy��N�c���8�%��B���|��c���O�� ����%h�����ks}����m�KpƘwd� 伹�r٩*ȉ���y�S�)�LfE�轥<����gN3��m�2t���qc<7�4���"��q�A~Z��I�Z��ԉY�E�[0.I+�[9��Q&{����c��w5�m�C�����=�Z@qK@O0jFD�v����{oe�F�I���el����_.7!n��ۜW<`�G/(D���$OtV�O��'�U���.-�wmeP��t�h��kC�~E�\���>k���kC�C����� �e�祘���k=��J�NNvbɠͿᬐ1�ƿkme�3)$���f�������/�a�Y����~?~7ӂ�B��?E��N2�����E�Z����6�FD����ي�:^�8i<ٕSp��q��T7���8:��+�t$W0:�����s|�1�u,"B���Q12h�5�f��N<��d�>Tt�v���ͦ� ��}j��TBoFÙY� ��o��J�[/m�Ql��f.�i�V'Hb�g��%�>ʭ�y���?3zA�[Vv�?SL�Z�@6ά�����2�dL"���IGʜ2�ԎNh��p-߫ӌQ�FA�f��#˟p�i�ʈ��>��"��S�|�Ԯ�!�d���)���f�e��S�wq<�o��b�����Z���G�����GF��v�3%K�v��ACS��?��xGf̮�G9 ++�,��JX�S�0۞�W�Z�S=���Y�S�}���T`p����* ++Y?n#~�b��+�'��d��G)�Vh0Y=,��)B�Ə��E$���>F��8�3�j#K#��2.�]z��ca��Rs-�Q�I 'Z�ۚ�D7��OG٤�T�}$+��n�C���D�����k9tg� �#�(�.�Ɇ����{$y�4�,uC\@��)�G'%����#��`Q�r���O\�r�Yg��C� ++?r�#���k��Et@�E���5�+�xk��Ƀu�Xn��T'$��o2V!�K�}2S[�x�ٱ�����8��\Df�!�mm���P6�qP�x���!��tg��{Kw�}��`k� �T�(^�?�~P.A�L�_����r��ֵ�G��>~5Ǡ�����vTq�`mٌ��+�R��p>)�P]��±sra��S9�Txp� ++�3�'�>����;Փ��A�I�Ư�=o웏f+1]��DŽ��y���m�(x��+F]cl@�Aի��������W�<���$�ֻZ�dHǑ聯З`%����&O�J�g�%�D8��(��@�@�"`���VG�g��;� ��j���$O���� ++�G}�,���'�^�&�/��'J�]�.���(&h6�C>3��8�ʘ�6>ʨ,��Mǚwm�@��7ޕ��S��dt���Z.���@�G�b�GEDuL���9��h̽�4~���#.D�]E�����������, ,�Bs��[ Wq&�}7]��C�h�-��Z�~���Qc�l� �(0����@$ϒJ� ++�"���l�S�/@���2G���ʁudq�6�*�?Z��_y�п��Z�3�����mtf���4����" ++�� ++�?�d�a�KF��"�o��!��>KI��K�`zj_5�)�lhgn��L^t{[ܷA?u8���9e�kz����p�v����9"�F0./<�h�(8������>C�Z��2��`aΣ�5�ܝކ ++��D(�G�Q�)xO�F�,��س�Ow#=DZ���9�P�@/��`"�V���u�J���1����N�� G��U5�I���>�P���"��G~� ++�h���C�Fbc{���s�C�k ++Z:�^�KCY�ܢ]�۽Zf�X|ɼai��28�&6�����Ȕz) �1����_گ�}�-���ъ+0�M��ɟէ�R�Q�P���g_ʓ ++����k�4�⃦% m-^���i K��ӊ�_�j��H\�2Q(�aTq ?��k4`��D4y���Ä�Ɇ˽������ V at���q��hq����g���F`L�y�k`���'�F�����;z�=Ȗ��E��31jʊ.(�j_0=���)� æpr�z�,g��}E~���h�N��X%���o�!]����y7p�̬ S�֖r�`-$I��B�n�v`��j�;�dU�� ++y:�s�h�c���Plӄ����)��������X���0�dmH.}-����ϼ J��Bw�T��A���� Z͐N_��k����!�u�-���.�"�ο���UF��][뎱x�^?��)�܈���Ղj�g�p�J�xt��4��+s�k�I�����@O��ze�����V|��e룏.B��7��d�u�K��d�@PHnZ�,�[H����r�_�S�iӑAO���d������c�X�y�^�C�,�ۦQ��=�tSk���G�|�� ��ːQz�%�a�G�ڢ`�����:��%@r?�ƨ���{\�rOnO�7\� ++���������0��� ��m�rM��z�2��21���'��#�-m���E�`��bJ���6`Ī ++�7�L�V�},��r������f�b;(z�+�j�Ù�f8~�e"��4n@z����.e𨨂��� ++�e��0�M[/b���pE�q-.�a�{��)��JW�w��?8�쏁�uEҊ��G}k}Y��y,�����F��0�e'����N��[b�)c%���t)^�S|�NM���)�;FZ�>��Cx�va�ĭ�Lb��q��*�p���Q�l|��/@�9Fp#�m�/z�5~}d�`��3�C0E�#���T��T�ʜ�#�z �s>��N��Pa�`�gFQ� ++�GۚH���D��7?~��P��Ҡ����a�6ԒB-�-��������P,�2~l��M'#s�+� �o�1)�ª�;�H��啭z�����X��4ӏ[�~��N��_y�s��'�k$T���WZ�!�%��U�M?�� p�?��:���\��W��~��Vgjk��30(�mѽ�=��[kKf���������;f5�Z_�n�f�\V��c�'LzJ�O���D��1V�����yR-tCjI��3~��J�2t.�������c��h d�4��=# ++fD��,MF ++m��Z�����zx�!�=z����j=�2š��G_u���7{:��+(ڲt_��6^��-[t����J�8lO��b����ga�� ~WVmb��rE��+#�n�n�@9��L��ra��m��qD%�/G�?�a�$a�P��8R�%aTxW���ADVjT� �'���S���ۼ?���9!P�Mé�1�.�倰,!��3"t�-�#�*� ++���0)� �L���FDx��^*x%�宮7����.EV|��w�2kFT��JFx�1�+]����KBP�m�QC���T�z/��>�/r���zF��p��J�ʫ���(9r��{��:>�0�AD@�G!��髛��R�p�������I���^z��x��+g�r��u���;�)��f�bw=�u�6n��ٖ��W�� �xq ++<ծ>�ff?�O2J��P���#�,(# ++Q��AO����o�<VP�FyZ\1 (�<".�C5�C��B�(E��n�j�a��F!����`���j����z���*��\_��Ԡ����Kq�ʩ��gG�Y>�J����w8v�S%N�g����Sؓ �J4�y��y�VgY�U�)�|�v�ʢdę��3�SO�8P�#MzDxhu����?Y�6��.g��7W�������d���x�1�|�3}��M��)�݇�9���U�%VG+ ++�_)��+�w�qX�Dv�29n���x{��V���v��V�S�;�O�2b�}������DR�M@$����h���P�҂�u���UU��=����YG�Z��K�:~8�2��9�R���j��=���s�Pdԃ��t��o�+a�� o�������JO>�s1[�?��r2�6���.O.2p� ��z��HL�ֺA��ա�{�쒪nP�;uxF��e����b����x��x��\�[�]j ��^��'�~��ܼ�yy���¡��X>�cHEि�t�����j�,+�)cV��N7M�i�'�5|( \�W��d1�kL�,b��J-HmX��iՆ��JS)Xm�O�/����$��1v�IU���П�"k��Y�m�Y~w��UO ��6��<dj?����h�=t{!�xs ++|90�I�z��!��4~{�g�E�P����U��e���_U%���+j!1����V��e8b[�á ++��������2r��i� a�w[��K��Hj��1X�`l�b�G�c��jH��Y��&G[��������p9,e���m��S;7��:����N����ݰ �"�����,G��(�ܻqO��`��)[�f����N��)�U ���^[0��z~omèRZ�I+o+��r�8�� ++I)2��Zj@�aK��BĪ��>�c�Dn���H��8���.���GP����D��,^�[lL��% ۞"ȯ��a���Ҙ�]�����P*Y:�!K�U��}�A ���И<M��-a�ߞ7���P�hE�鴥%4��P:� �U�h��[cz�W�<�jm�Q���[2$��nF>Z�ے������=����E,F���f��� ++Tf&@_N�D]�f��n��Q��JDi�"�NG��(�a���jE���[��9e�| ++a%�1R�@[�O��p�˶�DD�g�m��� ++�]/Vu9�46\�0!�Ø?J��e��ey4cP��}*n`�8I�d����:��!�`�4�B�34��}{s���>&�8�{�Tݫ��pf���%�>�����9���Yg4EY�e�����qߞE{�a4���j���eI��x_���Ɲbvg�rq*�o,���(�������M�"u�"^�8iR�Rs��ث"��+���r��9��Bf�1���r���Q��b�Җ?�]9�o�a�h&�O�k��s?XF8�� ��S ++���9BE����)�'<&ET\ �X�_@� :�l�h���L=�.$Q"����,��&��%P�����~�d%�j�XJ=��w����A&�<V����=�^�KmT���1-w e������ZJ0�R*d�J%sH��9���dm�T���S� �̇��J�%t�����NJOdո�a!T^W�$��� MKq�"��>�4���nEt����5��!�R[y�k�նs�|�+_��k��� ��ʽ�0 ��T����(���j5Գ��xi�҆PIXnhmH��"���Z������ؙ2�܀�Jy��K�c���2s���Ͷ���BlۯuT�� ����m�^pB�"��(2�f��y�A�an#��0���N2�06��M>%З�熷ц+|�ۘ� ��b_0L��)�W��&��~����F%� ++��cQ�<�M�5�a=V< ++?�g�q ++�9��B��q�>����k}y��d�m���B�b�0(i�|�%�)�3����KNǭ�λ;쏵�η�M뻄�~��VG��/.�ofn�N&��/Y�0FD7�Q�]nugeY���)߆��}�a���Ǘ��/ͻCk�$�|�]��~���Ԑp���ϕU�h���%���O���̽����!�B�C���TEV'�'��_H 9�6P���H\x#�Z`)C!�����5��'�mԀx�6u�o�r��b!���0x5q�A���N�x�ѫoC�'�V��������-L+�� �Y5G�.Z����x]����<ڧ�r������:>ւ��%Տ��>�僕���."Mt6GF|���G����e�p�g�/�ݒ�jA��֘���<= (�`��쪬#%�Qe`����wK��pD��|X����� 6jE�R�(���K;��6;~�l���ճZA�u ++��6��n@�Ef�,�sO8-.��\W�k����yV5��fd��������yE(��y��f��ॄl/�uԼI1���~�C c4���p�Y�wB�����Ĺ3��!�n���z��`��oA��x|���&c(0ˍ�D��a%��g�ݔ�|��xM�h�1q��e=e-L���ڱ5��d�^^]k^A���e���]��o��G�)���#���r�¶��z鞝��)ƭt�sL���+���]�[�d�Vڨ��_I�h�X�*n��e�sT�^d���{�Z��*���>K_�Z��4r],R������p��c!k1�H�-�Q��W�G�M5�-���[gQfA{ ��T�c� k�n���(@����M@(�5{^0R[ ++!��Q����}��K��=�1�(xk��fw���A;�N�ȉl_Rf��^���LΜ�����s%&��D�N��� �c�����"<51Й�$�=-V��<���~0k[�Ax��kٰ� gڑ��ᒡG4����N��h�>K1����*�m�N�l\mT ++�������!l��v^����v.U�C�w�I���ZhwBw�K�A���D_E�[�d�k�~���^��[�t��m�g�f���*_t�`�lT����+(������!|�%Ә���4ҡk��[�~�ѐ�a��.R�V6̯x?��yli$0�H���থ�`a�C�)���;vzź��\FJ�=0�}m�������J����>��4+H�*my��M�d�8J�B�(;j ++�%Z�r��R����жf���Y�)�m�:LM+�Qd�v ++���6�!��p ���o�Zb����G1m^�i�Ɋ�?�D�C�J�_�d����b��S����=��q����Op'�##�Zo�� ++�$����'�j4�3�P�]J5�,뭩ς�*�㻥ii�3 �o�$�/�T�D��8����ٹ�˨v��"���?�0�?my�+I�,� SX�˟1���%C-m�� Z9�3�'�3,>Y���g6��BLd� ����H���@�J~V��7��O���������ϱD�!k��*�D��Ý�~�L���D&`��&O�Rj6��6|��Ea��92r2x6`�S0���:�/��-,w�c�;���\9�g�M���]�q�(.*����JZ������'+�Ì�v�5g@+�~_Ҹp�}K������� �oY�5埲�-OWmY��p �ڂ����8ӕ�2��������PNE)�x4�F3�h��˄�+&\M��ThV)B���x�0P�y��j�ʆi��Ȭ��|�`��iS�����R ��bBH��q�%T�(�`��,���H,�t�&���1�ОXjoQ�����S���"$����w֪:��/A+�2^k!��<�D<L���0��=�d{�f@˪�ڬ�>��a}�J�-ʻT0n�j���ک���)��w�K�;�f#KT���s�i��U���߰� ���$�jF�*5��~�� ��C�-��n��_��qWQ0�,�;���-���U[�bT����qS[~."���"H��o�l�kդ�2�����V���ʉ�D�,:��y "��(�ov��//gL-it��R�gYj"{�r̝����A�zb�Cz�&@�*�[��ܗB�8���D:]<���*��6z���Ȁ[�Y�3�ѓ|�fp��9jRE\�L��X�����.�^L#(% �h��5b�5g���=��4o��m�7,�1�����(��o�]#Kw�U�8Y����8U��� �� ++�˔"n� ЈiR���c�մC#������C9Χ\[�2�W���5�� bGH��B����L%gR^�M�+��"��e�<����±��oi��-A���VԀV4:h�@k��#�˸����0_E �YP�f���ڀܓ���&[���:��uŖ���ã ��/^���ѐ����ib�2� �#�<1�>&�F6�ar�;�\j� ++]}J�'�1���£���fU0H����4�7+��e}P4���n�z��F�5HW��(��qUG���8�-�$:��G���J�EI��(�ή-�Q��A�B�{���~mZR��r�}si���j��#�sm���o�o�3��[C��PMy7NLQ-�z�WTlh�����Oo �7;���5#'���^X�N��{S9��Qխ.ސ�2v��h�(C�(�Ah��}y����1�FxX��۩��P�|ؽ7\K/+����RV�k���!��ae�=���L;�Q��(]�s��[�k�����]��[�J�z��$W��������d$���uھ7��>������+5��Gʗ[�ꕠ����.^���C=X�2���Ul��/�g]����٣�d���M��WZ��b�%{S�o����g ��) � F�8���aŪCx:�-��T�8�\���)�1S���)8�\��<D��Ê�� �s��&J;x]�qX,��'"�T٢��<q�ӕ���� ++�ܔȴh#�h��-��l��ooB���]$p��L4�4рx�T�4&F�#�9��=���?%;P������w^�(O.Z� �֗�@|��e�%�˳`�� ++}kI��Nd�[���2��z˿#���e�vhfۊe�!�4����Bf�� ������1���u�0�!B�W�!La���ےm��N��d|1� ��W�H�9�����Y�iL;�ÁNڲ0d0����da�)�'����!~��U���cp�X�Xw��r�����j�f��pC!yD1��r��� ���;W�w���}2I�!uz�CDA��h���z�>�����ʯ�s��,ϯ����"��~��X������An.3�w{r���IoJ�B ]����Ʌ瘝��lT������B7��}��p�ZK��� "��P� ��[/�&�����LA�!X���Y|U�5�]�C<�2ջ�,�Q�rs����ţ���K�̢�����Z��L���6�[�/^�G�s�Z����k_�p���+61�����d}^^�t�eln8M��Wk��Uې�XȀ�6� ++= +n�� ]��v����ӀWM"7���ynwvr��J)�+"����s���&��nm� ����z���n}%ퟹE ��_8x,֖5������*Wn�\Os@}�����-�Ŵ0@���:�E��ֿ4(�3����yr�ҵʐȽ<���`ֶ�ǻ�cy��n�쥪��6u���WSz�fZ`�0}�����U�K�v-Z�}�l���Ӵ���_(������adS�j ++���� ++-�N�˰�Ʋ{��Z�|vW��2�M��y���A᪖V�oŶ��>����hi�^��ѽ�^y��n�,�R�o�'Y�Z ++��ŭ��Go=��1#]�gw[��2;�ڮK��\�4�����ʽ(���=_y��o%yIԞV�G�����m��R�{�_�ΛXV������d>� d� ͙l�\� Ƚ����B���?��lMU%Y��軾U��q(�J�6����?��P�|=���!�!������=�i��R��t�rn�]kC�01)!��G�D�_^�#���Qjy}�|����40�YK:_e�/7ʞkVG3�9.�j�dN�sܫ��ψ�wZn(��,c�Z8IՓ֝�9,��=-��@�α�D�u��Cc���j�i'�2���Fu��������%x:+��m� ++��u]�j�E�5��+�A��+1m�fMˊz5I�g���ٰ�<o�+��1L^�U>&I8iܼ���7~s%��tXj,���N�xen�U����ih�gW}�����$mB�~���s9Ǻ���s�f̷�Ym�Y�/�h����D9�4~��r�E.2~��yd ��"�n��8�~��:���2���J���\cbt� �����C8I(��$x���;����98KQ�Z/e����'d ���U��+{��λ_��^X������Y<�e�A��>��4���,�sQf�:�2C��s<WH�r�8�j�]Us��s������b��PC���j�:��9`�(W��\�pc��{%)�k���GJ�҉{�������3��z6Q��0/3�1�Z���pb�yw2�o����C�Y���g�,V�S6�&���/�5 |�h���6�$�J=H�P]�j�� �<2j�}̸�-�Q+�K�R������_�'�����U� /+�7�����%�f���0m��(&,s�|i��,6vb^�-���z눪�����afo��nO��GY&��a��s��\]�x�d�Op~��Mutw>ìf�[����"�cB�%>�e�f0B?~h%<���jM賭����rm�����2�o��e��ƈlΤٚ�u��e"��Z����T�7K�_������ɶg���};kHZ�w�T|�L�"#��Q�U2&k#�� +++ ++fƒ�&qV��Ҽ/á����Izm����*�S�_��9� ++���k�a��h��T���AY���4Ý����x��� ���5:����TS8���.PN�s���|��}�QInHD����G0;�ڈH�4L����`J�}4v���J�H����7�u�|$]��������|��-ӿ_4l��G��i>X��p������qk�K�SM��^�_�@������ᴣ�rauP��g�FcA�o��P����*��ח"��ڂGU�I��jf��q���䇰��Ot��㉖h ++����k$�cN!^� n�=�i�����)rQRgа���?��-��'�.�C�6��.���~�L|���a�fZ6������K�Oh�lX��]��A���6�����ʷDFv����Q�/��y�����W�b��dƬ��i&����\��π�m] �}�7�_��4O �c�2З��QK<T0����*�����`<� ++;��`�>�M`��GN��/hN�=(0_w�݊Aj{^qFr��V��f`m��/��9�\�Z��VL�������~E(��;�C��G��� c T�[������7�5���[�8�(c�eB���x�=.���$��~��l��`h���>�����jn��H����&���PoXՠ�k�& ���q�*�C�q������n�a�8M�,�Ŧ�W��T�y��'#�ͅB|�Ͽ8�g�Xiܓ"�@��R��XrC�I�{_��Eq �$�Օ��~s��(x�'��8*#��X� �~`���v�0v1(��?�� ���]^��� >�������S/\�ɛ���_����b�S�631:�2�Nc�wt�<�������}�9^pWgM�:�:C3�R�Z�����#v'Ӵ���A��vW����1[�ϵ�r���ǎ������*�4���6=��^��i�,Vs>�A���k�5��7���U��=Aǀp{J�C��@�@ !.���$�(��D�6�2�p��{��I���<��L�4�7k�ۙ"k��������� V�B�0E�>��l�J���$�O)�ЃJx���o6�q�� ��n�GyJ���6�hE�Z��=i��M�5���b���0�M���^QK *U��n3��^�w�аFbwXP���z[���yo�����;m�� �/!��� ++ <ƪ{:A�[497S#���N2dR9�����wJR�(����n�I�.*���cS�8g��O%�4��C ++f�6���O�2�A�4�o���|�_�˿P&�٠ :�R3�J�Qy��)�E�O�(��S뫝�evT�E���T�8 tBp��,!vL�2�b���_�53���bB�� M����DC'(�[��Ņ�T��q"�w ��^�L���#��[����%��a"ֈ1=�T�F��X�x�g��#��2���0��mA`:��`L�R��-��a�)�{��^*Hq;��Z!���3�9cz��@�����k��B���cg�"4�^�@�ծ��b���8�����J��XD�i�m�"�?��]9����xԈ<J�G��8Ѡ;��;C������#��;Z���дVZY��ꨀD5���Z4Q�ݒ&!7j�M�;{$"�u�.�X�`�N�j�J*Mԣ�tQ>��óD�6�t�U��Z?��c_���S����1�ZV�=��LӲ;V��B�7��2�7��_4]2�d��w�cU��'G��nɄF�=��w�M�D�+���p�@^|DS�x�og �IQ�bł���h�i�Y��O�tF��U�ӿ��p/� <�3T9�dXn�G��I�<���������0£ߟ��閏��o��qSf�=U� ��DC�o<��؋��H*Ӗ@�]�MQ��pҶ�e��Noϛ�w����0�+�d[��;�ȥ�1?�$�t��yNz��H�Awb�-W����,�8�����k��`����I[jJe�������[�/7��O<��f�J� �Z�G�p���C�ٗfGܭ~V1A�k��o�|WV�̘�F[1����=�,��E�b���(�"X(����?=q.���y�@�`�5WH}ŦX8��dYX�B��S8����- ޫ��lD�9�~�BQלe�5!�$�e@���g�����Ӷ�����459nе������&jR�WӾ�K� �G�f� �]�/Ċ%�,H ++o��(UCZ��")^S�$�(���!��PmmӪ��#�4�%�����-��]�.FPU��?3�{�n��1f��Ww��/��a��δάW���'���|�BrB����ս���.cz ʀ_(~u�����]֚x|�����N��s���?���$�������& �2������ª^ޛ�Z�/M� ++�����("�]��8�Fc��.�W�#D?"���v��o��Wnn���Y�q��H F���-:�j�G4���jc���`U���%�J�;���%�B(sB�j��k�ζ v���5�_��&�h<ۚk�Èc�Y����ah�����t| N,Ճ�M��^!Kr�s��Y̦̠R�@�ة��cCI$A��v7�D$��n�A�$�1ZL=��,.�|��#�V���f��� � yc<���~oHW�Ŗ�i�q\��i#��,�h��`K�Q�qD!<�L ++���>���hƴ�+�9/*�����&��$�Y[��r���-��G��1�*�.��y�0@���#j�1� ++�` �IOF����Vک�B��JPFV�(�����|��c�d�WƖAP ++�@��{�D�E�����n̼uj���rE�R�y�|BAj����h��� ��I<�Em��u3^��n��+��O�ȋ�"�1���4h��|���|%y��Vr��G��8�!R�I�x��uX<�#W)"�\�#qf�.����F�>����>�������HD�g�ی�8� �PA��� �ޙQ���Z�Y��T7�4o���6��Q���1V=d_��:�*����1 e��K�zp"�"���X�?@�� 2����yX_r�l��}�s;�t����ή��nc���\� s���\�� ,�U+p.����&1C�"�&h�}5�UȀ��Z�G�O.�+ƥ<�v��x�:2K�����V����iij)�F�~�����x�Q�!��\�89�D�iƑW�Yc^A�m��4���<gE�)e~���Z8�;t�`b���/<�e��Wc?I�O�����O{9YI�����('��|2��Ja���~�q*�9t�f����ۄ-01����N�<3;�h�ʟW9@��ֱc�jP��mx�j�ݰcw��O��1�i0�vR��N���l��3�c2��"�ZѴ����hd}Ӄ1T��Y��nz/��n��@\k��Z`VL�CZ1":��ѕM�ZǮ� ++@�2_ ++^�_�S E����K�1�g���z���'J���,����X<+TWGiB�����ѭ�@J���#H��kb�λs0�=�6O�^y��;�<[�!��?�]n�,+}[,V��8A�/o�Vr ++��n�]`�\�]m��g�2��q���'kt{*����Z�8[ ++���MY5�3fuf\�]P0g��H��������k��.��M@���)dpƣ#��g}����O�x����;6Մg9��'-��*՝��[��>��O��\�FR_�o�-��~�Lr��,���B7�i��P�.�"��"��h���nA,G�=�Yw��>��/v����Y��+4ͥi�c�+���mk�����F>]^�T��J�������^�9�N+�2��0�z������R?���b;v��+���_�E��1�f�D4C�вp���ͪVű���#�ͳ3�u�2�}��o�phZ mY1�c�P�l�bM ++{^1"Br�q,ġ\���!��V��Y���[���v��6K�DT&�q_��1�M�������17�͐5*K�akGd��,]��]�tff뾒�,6(f}J˴M)8�r�l��4���%ȼ�q7�Yp:���.�Gf����C�y�� ++/��̉�asYg�{�xP�PM4s�����0���c��t.�=��A�c�*XchI�Ce�c���m������^�'lRg�38����~q�z�)�@I<��_�]�+j6�&95_}X����>ſ�����I�*|.�Ҽ1�h���'�&�MS��/ c��2];�G�j���c�I�T�:ߞݍ���T���D{��n�C"���<����-��Dg�@�l��"�%ב���:��1����� sk��N�Dr�4��A����6�G�${��Z�j�k����Lܨ�����}��ms<�[��k��^S�$���}�n�_<���O�k��<��C�72c��`E���k�G�]fɕ����?�\�Â�� �2�����9�OD�� ++ü���7��d�c�U� ��d����t�����Bn�ZuNL��6�a�)��Z+M� ��F���)��P����1�"ԵʊG��rR�=��Э�FhA ++�CQ���o���o��.ثΤ��e�W�� ���k�䋕�ta�q{��em^=|?�& ��x)c.����� �{&f��5 6�]��2^�CfQ�8�,���B�w�� U�=��YaN`����8�(F����\#,�b+4�^��3�7������4�g�,����~Te͢���n�>�0%��N^X� ++j�7���;�9����~GG ����p���]武����;����I�:����9�"���|�����Ffq1�Łd��������]�!l����Td�:3 ,�ySl�a� e�+�Yyr����6u}�)�W@Hf���1���0l�1o}���T>We�pa��e`^��|0��Ɋ�������C�F~Ad �e�?ұNCc��^��27����2C��.)DJ�(�k�ȀӞ�#F�r����8��9X/i2k���~��!%��qV�SYd�j�� ��1��!����Z��l4�2ح�te��튩���ś���s�����۞���N ++�zF��C�m1ۊO�q�b`#:�?!�o�ceu�:�� ���'�1Ϗ恘�b{�a�.��X�蚿I�H�e�2�x4��n��&��I�?g��i���1ǘ���bBcY�d�y���UX�;�� ++�Z�������b�o=�����.1d�4S��b#��ӝY�`O����6���c���,Qve!V�? [���� c�9T���9c�#lja�tP��$'����0���sɡ��V�K̬�S��Ŏ�)g��-��S1S3s\v���`��<�l��`�n(<d��x�Z��<fFN�4�׃4�7_Gy�QM��1�:,D��b�_&������o)-��y�ټD�>��E#�Pn��s�A:���8��/�ʀ_�3&���!�EU��3쨩(�K�� AP/7:#"�$��)�����ʙ6�9�P/�ٱ<\x����o��6OQ� �>��b�l��H�OL��ݲ��Lrʜ�Sa��r�am���͊����h��/^�<o��Ď#fFz4E�eL�.}ѝ=fʦ��e&�"����? ��쌝�����1;sz�=��o�lv3� ++�&6f�ʰ�=_��͎�PI�=�C3 N�Bf� 01�ֽñ8��ayJ��oye.!?��vŢB{ج9��h����)2/\���Ջ� Cx0[U&[�;��j^��{��*�bL�O�����&�$����@N���}~?�aT���%&�UqgO��1��z+f���EF��IM�n��9昽b��'��7Sۇ��s������97|��D�V��M���9����M��3��fNxWV�.:���<�b�51>��͗M��Ѵk+X�`1w��h��Y/�n���X�r���C�S��M��V�� Q��t����'pT���� 6���qu�|f�hf��y�%E�_��'Yb��F�R���ߓ���x�D�k����G�]�l y���T:፺���#H�G��� c�;��<�.Z���}|�����=����P�]��gVw�<aQNl�1���m#�k�m�MϪ�s��|.�+�(l���9�vň&�kޘo/���^�S��0n;�HY�98����e�]�P\ ����ٝ5t��d'�(�~�+���mXX��R�_�G[8����W�׃�^��pQ�`Y��̜��Cf�v�eW +++�y�ֶfY�ɬ��0�Qĺ� ++���S���6�V3��̏������~��F���_�;�Y�q\�2�_��;\�>�ȝO��=8P�7��,F.CL�%�v�}�<����t��F2o�H��f��S��ˌ&f�"���k&�c���M[=Z��癗�������f4�Qb�Q%.����tW2�)��>��t�ŕ�p�y���04���}�j����yʱBˁ���yTw��mό�H�ϖ\���ϱ�L�Y��ܾ�}�[ ��b+��.r�m3�JJJ��ȷ�2/3(k�� ++�5;cF�n��Mҡ�?�-8$��7*'�ƙ��g�q�5�s�͙�Ǭy*�(]����eI��O��d��M�ܭ��$l �In �`Y�b�g��]�YR�6[s���#������E̺��y��:̞@���v�8\�i�rD�r���^���_zes�ƿ� ++�?LO��m{�q��������QM�,5Ί�JJ Dc�3[%Z������n73�n鹈?�W�%���|���P��ѕYqǀ�%)��2lw��hM�X �B�!�eW�J[�GB���eB��� �4Ӷ����3�H��V_�]���������xd �/6K� �N�/���N�l�M2種������1oW�w��̛���z��#�ۮy�>�9Sd���拷{Xqy�xXq"�Q�i�G9:�O�ߥ��ȱ0��ď�R��c�ash�����_G�۴���;Xxe,�DV[O���rS݅��s���t��$^�sc�o��sbaf�D�-7ſ���s� c��y3X6�x���ov�z>���F;��E���}�q7ޝ36Ճ�bY����*�%�{���"�x[�K_��W�3=3�|Z�XS^���DY}�1�����J��0���Q0���߯���eкy�#1mx��t��,�A0�ɋ<XM$���E�����Y�E�p�[μ��!s��c�q�N/8_o�e�����Sqڮy���9�=������\f�}\s��F��*+w����r�+~��a��-7q���-�vdC���?�տ8�ݝ��L�)#/s�|�9�M�wd�-�X�<m.���ti94�p�5��j)kB�\��P��S�N6�������\ B��sx��i�9x ++�sMS���,�/��Gm�<y��e9ל��6��.���5�;��������}#�"0�O���������uZ¨a�� ++Ƹ�.f����逅@y�GM�w��f����:����YS����)�i{!̺�� 42����д�S�+eAƲ��bYL��&�ZֽFN� c֩�Ea�ਢ�A�ap��$8N�8m�k���a�U��[���տX�jW��}sV���٪y��!��֗Z��a�W���� 7��b�|f\c ++ʠ��Y��QJwp�y`a��90��1�~�x��Ȫ8�ڮ�20����Fװ -'3��9��[���+�e<H������8� ��˂����3��W��2�rTJ_�k� �Q�����k19mv&�p���ܟ, Cg|��� ++O��7ڐ�H�6)���kJH��]sD�<��ނ��Ti���d6��P�v��1!^Y���_�I�^>G�nA83�'���0����ꖇA&���������EŎ���BƂ�mA�s�K+����fol�4U'K�0y�]����c�(ʽ@�7x���k} ���8owl7�$'��-%ؠ�pn������|S�C���%v(CƦo��q߂R�>�W�,�^?�:�y�6���,���Q��dl����b�O��̅�tS����~�X �2u���~.��/��ٙ�4kOh�4�ũ�V*��~ň�����f�~��mu�L3|��?~ ��fa��zb<����i�1}tK�]Y�͋�#`���X������E��ra,o��J.?�.)P�Ǎ��j}'3F��"g5+��+P�k�'� ++��HF�2a;E��2��]�Q�����������i����N�k�$�\Jma ��T�V,�f,����v�yQ�7.�Fg�����54 ++��T����Y�i�W�ie�!�m��Rf-�ʔ����ڇ����yǮ,ogc.t�r��7-7�99�`�_�xn��fL,��V�7ϔ���>�P�Q�y��!?�_N06�̊_�5yF��#FϤ�ak�X��&�D=X��X���p�I�A2�"�>�0n}]��(���3#�?�QF ++T�G��T�d@9�r�U;Mz�گ��8(��xd�)��V����v��n�@�,Vr7'�D���>�CZƇ�b��6;�j�((�z8o��)O���|�/����6���DmQ��.O�G:�Kʤ���P�W�k�)jzWj��i��A�읇OE�6����/3���ۯ?4�`�2Kr�d^���`}�,/[� �: � ++O���2�ؠ��u$<E��p$�����kxb%<�7(a��x1̐�]�p�{&����fig^0U8x{\X�Ą���e�7�23�h���Em��3`LN��O煣�5�e��|���ՠ���#�����I�H��a�V�j�1*H�i��k�ص/��5K���']FJ�'g��I�&f^D��$�\ g���;�vǕ�zڝO�b�f¸�U��!�c����ח���[c�����g`ѕx� 4�*�%���טm��mq\���،cQg\�j�,=���fI=逸V�K�Y��9�l ++�r&�ᅵ���U ++��Tw��S�l'k�����O\Y6w/���y5�ٝ������{L0N�X��(���Uٿy�`)���?����b�����_��f�m�;i�Y�m[��]��YQv�sE�������g�Ef��J�)��5oif,�9K��bJ�>>�=y'#/[����Nw�{Q9��1�[=�[�~�_�AK^E�W��,����Km���_�\�3���Lk��dI��g$MT����4W��T���<]���Pd 9^��}�(�d���[�������W�F�N��,5#z��D�\��;f��ѣj�O�~��9�����P��c���x ��,e�]����R���w�A�:C�* ++�Ĩ�����tu5�Ȍ��E��h̉�G��2=_��mal�,��@Sֈ]-�������L�16����^-�~�C�Xn�6�I;G��و?�a�_`6�,"�]�<k�kJ�5���K)]�f�|��d�H؆Ji��L.kpQ���_��&�6�T������G"�8Y�ͯb�t�H^%�8jN�#�/=�G3s���*�w��Q ++M���|�$p��UV"�����<,fFq��_i�a7�Ɲ/�+=�I�D橨�y���+�>�0���!�)����FĂq0�ż,��خC�,|�m��V=������n p\>�x$m\��\(��S�)k8����[(/�3�d!;������/�����3�hI�8���8�1��.�ܲ/��X��cm'3�ߟ Q����9� ,Xi�Z3/�L�����R=��-k��=����D��S�bWN��kr���F��N�(ԅ�ޏ��4���p��C��xT��x�Vi��K�vq����y�+���J�c�� ++}�b��٪�=u����:E!)C��E�2� ++u���Ẩ�VpJ�]�3���5��+t�R�z��,��H�t���S��hy4Ȉ���*�[bY0� 03�o���z��i`��$�Q����ٟt�)��e%��%'���>��%�B��;_��h;�Lj�W�vfdR������@���z��U�Bf�u��i�p� `Yq���,5#� ++꿨��9��#;��\3H*~��2���V����ުy\t�;���E�p�m�U�L��6��_b��b�<^R�3B,����IK��Y���ׇ�fE0� 38��iw���Z���d��뚗<X�����I�YT����K߯�ﯜ0E������zx]�u͘x���T�eᲒܡ�Ŋ�����jw���;mc^���1��ay+���t��=^�O(ul���D�j�e������-C$�w���Q((�G<h"��G�܃1T��x��$F̗�JT��)�{�M�/E��?��H�'��M�c<t7�f�;��ҋ���ꉊGp��@Ƌs���%�A����L+��.���Iz����È���c��qF���G�N#Gh ++����3j��|V�?���)�� ø]�č�/p��uk��Y?4��p.Χ̠��)�x̣Q_":�z�S77�+3�G�=X�1��z��7�c�/��YE��:��<��\̠[�{2�`8`�p]�C�A�,?��U��R`���*>��qX��u��u2�G\ި?�����n���� J��i�!��a�T�͂����ܒ�!�U���o}�I�%U�%-l� ++^t�2�Q��x�yPF� �OEiF�7Ҩð�3v�<�����GN�,��;��ܰB�1Q��������ׅv�z�grVX�`"�&|�cNg�lg#�VQ�i�i#��Ru��&��%3*�D�xQ5u����!�6^�&��g�u��"o4f*����vvq� ++�KXm�\�43�����^�xܕ+���bDTp^Q038(�!�63b�5�����Z� ++�(���A�(�I�l�/n��bۊ7棲Y��2|-A�fD ���E�ȖvF ++�4�g�\�%���R��ש0S7IpB<b' ++M��B]�$��7��7�J�-D�"���@sE�V"wj�>,ƝNg��3��8�Dž�+2+&�m� ++<��?�q_�=/�o��"Mu�����[ݩ��;\v�m\ZeM��ƀzh�`w�݊�@���.2�;B��vq����Gy�c���)�=�}�Q�x����f�2��̼1� ++�%� �����4#��X��� ��q�k��×J�1�q�GIZ���*�b�@��\�q�G؞����.�|r.�1NJ&�����U1b�\��J�8GO�Y�K!Jz*��Xk��Cf,u�Ř �.W��j١]r0��̡���~� �O�%9A�����._F�bD)������u�Y���yo���E�ς����R"@��l�B��Q�8L����Xh�'I�±9�)E#��4����R@m���'���<x�:��ze�?p��g�l������B. �!��Dت�e<���<|c�?{$W���n���kEe�@��v��5D� �P��}~��Ε4I��'�(o ++�:e����Q+M'���81V�8��p�<1V��� �T��%m5�i�� ��U�'a7-V���K�<&�K�e�b�$s�N6���u�!2�.�L���D <;��sv٘�����ꐫf���;g����`0ӧ�>��:�$#�c����� ��,�VQ��éu�P� ��k������+���_���� ++=[t� Q9LWSi��0:jq�D�Xsh���E`I6�\��ɵ����H�1l��=��g����# ��F�$�t߲'s��" ��d��/I�˟�Ua=1�#�dQA���yWg��W[�m�u���X�_�� ��Z�P�%�)(�c�������GAQ��=,Հ��@��D1�=O�Q�H�����lD�*g� 50��V_�1~����`1!p�/+Y����`��a�m?y�������ub:'�����JB�]���{�Er��ܰ�H��Z�<��2�"G���0fJ�"�̀ɴܯ�^�����ե��O��I�2�P�n+��{#MT^����|��y� ��8�!`i�3��V���P�;����`X���j%���P�.��jx��c����zȉe�zH��&�����!Cl���~��4Մ�B_$��&�Y�`����!���j�E@)b���B�b� �,2�A�^/MSa��dĒ��v$�b|��q��a���AG�ӕ���r��:Pil�s{1s�e3еhr5)#w�M�M�j���H��!����[�d�urxf�=�G�i��f���W��V vO"K:�W�l�'��6b/W�<T ++�?ج�o\"w����D��8vM����iW[#Gޡ����}��� Lj5Q�G� ++��i|��ͬ:��A�G���"����-��8b��F��w�^d��jtr6�Ł���) l�Rn�{(ϙ�D�<�Uw�ʼn��H�-ct;n10�%&�QA�8�B�� ��7����B,�D��c�S���G��{��a�\ �M8 ����G�bv�ck�:~z�����k᥌R�m�;K,���T��B��`�qx��b���>1�����U�i���4�f���X�7���/��n���1�Q��c����|R;�{�?��MG����%8��_��Nr�N꿄�x��(���|�Q� N0��z}T�jg���+9�w=������{?6�Pޟ�3��o�>��^e|��J@�E�lź3�F{�]A5a���s ++f[%p_�N�*��өƈum��S'JAP|��:a��o���O��>Qn��Ì��� � ++2�����/��{hS�s�~HiRL�M�V"r�CAŤ��ٱ���4w=*��WNQ����u43��$%�?�GI`q�vu���A�af|KxS�,T�yex]��2�� ++r�(�nj�_�q���?��8��qW��{]����[C�Фu��e;���`A[Z��@�JI�1a�d�f�,��Gp��r%��E'�Pd0A�<iT���$�t�^�+T˒!��,��Q�ܬ�ʡ�d��f��$��GY�X�x�_����G<��Y.�<Gf�l{������(��ƱƄ/�_ε��7g����gz���B&�Ç����w1ِF�(&+�a44��Y>l�߬^�9WK8t�@cԬ��?�秃F������Q��7�J/{�\p}n����;��א!#{ ���a���&2��Uu�/�d�嘤���ӣ�0����Xu��/V�A���z��:�K�Y"E�S.��L_�V�_B��U<Z�� ��Pg;#�'v���Fc�AB8Q���/�i��s�2&j[�bj'�U��ml�/v��!�hBft��q��e�g�+ 3Kۥ�Ub�4�X��ъ��o ++f�Q��1�{y�+ڦ��;�0�v=�r�I �;w!`�ƪ�?$%�����j�8]/�W��TCl�c�0��PfFԺB�jI�զf�j��1�;�a������ᖓ^"x��[p����t?����[�1�=v�bG5�5����a�R%u���0,��� 9�U(���- �$F���=��c@@s)�!��S��(u���$��+��_8�3��� ��ɓ�q�t'�'$��A8J�cN:H"��bn��23<��2䘵�_�t�&��ku'>��_��,y�x9�;F{)�iD��9n�b�}gc�s��u�j�O���y�e�8VG�X0X���i���`�W� ++![nf��*t>��,���� ˌs/��q�0(�I���\�X���~.Ő�j�C|���[]k�̄1�� JF�dD�~�$�s0ZeKM���$�N;DC}b�v��#:&�F�ʨQ�1�6`c��j�Ѕ��i�5 v_W�X`�h(�����B���[�L�s���H6%D�� ++9(}aN��bA�T9����7��(�mv��2��UM�T<WU3�F��d�&��,��E;�������t)�x6��I�YltU��Vr�Ⱦ����aC��~_��cچ�]fL�:�T�'Sg����,�@��Q�5������ܐ�U�$Q�K�i<�vgijT�]��Ȼs�t<��K�mD���ξUMJ�s�N�8�Ў9�&��$ê�ĵ�Y?���:.t s��rsN`B��R�{c?_%VHM1#���(r�OV�;)N���+M�Ml�?�z��?s`�>-���sW�A�*�P����r��[��Ȁ8�<���D5���f��������9F^q`���4�M��&�l�:0C�\O�Υ����9��DH-��{dYp�;GU>��.-M��U6�>��q��Ƕϔ�ik����q�@ʳ̵�;�&�h��dE8����~�����Q��G7x���R�D��ҝ8Ñ�S⬶ �+��R�����:xu�zR*�Y�o���*��<<N��x˾��V �Ŗ0m�%����W�ջ��)�X�����R��gt/T��G��3%�4�T"#�sds ++��i ~�|"�i�Y&@�l�+������@����5�͗�?�uG�>�1�|�� m��d���E�)����f���h�G��ib��k�^Į9���N)�īp4bT�)��(�P$u��P2g�/�G�˧���p^\�����c��L3�ϧӂa��H<��ޓM��i��|)���5�<�3K �����e].L��<֚��F���0)�I¯����;������wd��iJ9�������]6�!�v�ibo�2C�Q�=�*Z��-6�_�P� ++����\��+��!�{ BdR����%�����6X��(v�b�4ć�6��p�2�z10���VEMO�{s���_�\y��1�<t��.��~rv�¤"_�� Ӯ��.�.�L]�y}?c$���<��g�¨���ނ�؊øh���g$X�P�9o[��Xrr]UtaB�0�����(���v�q������U��U��2����bls�h�q�SƲf)`��w�l/^� ��o�5ioE$��_gŚ����M��5�L1MƄ`�=,��'艓�o���>p�q��)y��9�-%F��W��U�d�����,.�CXƖ�o6ۣ\�#ݫa^���+m����ǟB�CF�_m���_��2�r�T� �� 氢X0�%~�rᦓ�1<���V53W,h����!W��!�9<xb���r-<�9�� � )LH�ՓO�nk��T}�M��`���:�ׂ�aZ�_K�0҉�X�NF��a��Ѕi?M5�c��M7 ���Y�Z2�p��9#[FK�����O�#NV��t��T�Q���v�К����]6�5+�3&`u�1��l�ø�b���v��BB�8�e|��:#f>�5 �>�AZ�J�- ++ɥ�Y1^��1�����`��ٿV�۔��M�9V��b�j�bF�T�~�?�5k��u7�� ��b���9�6X��Ǹ���9Oi���1g�~����U�b��P�9�1�yc���f������M��Xs�� ʜ\�1�vY� ++���g�@�S?lY=��5Ϟ��Fí_6�J!��h'�Ƙ��k����2j�67�K���n[��9�'��K`f0��,`�����]0���qU��0���h�.���C؍2t���XE�)�y�+����=Vl~* 8(�"��W���U6g��`��_�����.O�h:���۠F�L��?��*�6>�Y6G��?�ޔ��@���q��,HZǓ�s:d�8g)��ؚ��v����2�<�·FN9l�[���3r:�Ww�r��ե�.K���ew_nk��#��s��ܳ�7�Ӏ"�%�[8'�L���9ʼn4T�{�A1|T�=���Ʀ�'��z �γ�[^��"���.=3dN�ߐ[��g"'O��RQ��{.���/@�P�h�������K���5�*�1$*a ǧ}0ږA�it�d-��._m ��q� 8,r ���W,($��a���#;�B���p\3ܶ�-��xB<�� gad�l��y+��k�Ft�Q�8{�2g5�/7�V��v�HQ�w*3��T�g��Z�ĝ5����f^C[Μ��n�os��"�*���W�ol����1wA �?�Ev�+�`� �'y�����E��.I��#�c=����{Z���������/��L8�q[�^�U������Z�}w}c�9YfV�J�j̵�V�}k����Ʀ�a�� ��)�wf�����/�:��>��q�)�{��"�fJ�,���V/�x\\��ڶ�fK��$K�d��,�k��WL>�r��/#�5{�_�3wK=�`D���-���5(ן�z�v���������{0~?���ޮ����[�@.�icNe,�9� �� �q]�!{�1�8��گ�l�+�v����7P�M73Ub�xnE�K���;-����9V� ++���f�J0���A��=2���)���V���T}��O�,*���f=������uy�f�BIʏ�2����lTL��7�j~��ʮfPC��+ۖ�}u����0ǽ�^�`(�! yef*�\9��H�f��yz2(p����ƴ��Y����FOxE���ia����e��mFd�d8�qZ(�WXrO��t�|�t�E|T=:��u܄������q�;-N�]��KI�E��djW��cq` ��o��i�:�.t�e���rτ_�и��������``������Zmf�M�6���-�r�*��ʉ���K.�H˱�: k^�����B���4�j5�P���)!~��`��ɡ�.k��;I���g�~M�C�f�ln��Ѿh�(�k��31�Dz̚�J0Z� �;L�_���xj�'Z�hok�Չ��[�y�����+|]W�q������U���83V{g3*�#O&$m���6�o��D��"�F��"a�ģe�+�(?[[}�XVE� %���������2�Z�y4Z[�Yp]�U[�Q�9������z���W��u)�q�����39�Y3�k}�m>���6��Y-�U+٪]eV~z�z�������*1i�!'��x�e���EV$�;�\nH�l_�8��� ++g\=_�m�̇y=���K�2E��?����x��@G�«�����&L$j���?5�ΟG��n��%NR��ꕁ Xk�<f�nV_|g����`{T ++��H������t��W7����f͟N��{1*���b��wg\�c�d�Z]�7I�&��8ԋ&[�A� q�����d��Js�K�>�,�Yp'@b���i�m� oV���s.�A��hf�u�K���zL����9� ���(46,�ل`���PƼ����fw^�\�iaQ��e��ņ ++�����/��8n���>F���+�J�}$��³4K��!I��@g\�2�<�Q�*�و��Te����JZ��ڬ�i��'c^ ++��(Υ�@Cqd��P��;�d��_6�uU�: ������cbh�G��]~q�Hz��])��;-j��(��_�eв?�����_��%�?��9.S���/�"�E��H�^���^M���3 ++!��c�Cg��YR8���G�J{���ǘ��nO�T�(�[�v�塠V�3 �꛰&2k��Q.��3�75'�������?�zxՋ�_ж#�-�b�z+_��������q�����U]�)?u?�+��x�(˿�t��҉�t'n��J�����g%�<�VQ�b��-sV�8kW��Odb��2���f-6��ً�7�������kv�] �O�4�B?�s(��7�+����m���3}�������J����Ȑ9�<2oQ����7|����}�)��^F��̸�ƹ�[;4�b=#�=��Y�b�����8�4��U�}�6+8��/sX��s���f��s���4���`n���5�_�-XWN��?I�}h��2l.�0`�͜N�� A��oC�Q0���~.ַ���-���,D5��9���}�.�l�L����&��M��o��9�/7Zb��7W�*GlBi���7��[����E��D�C���6���HЋU�X�>� ٶ��z�9��Y8�v���Od=f��8��Ay�l�����<�66�5�0��/�\�4l��9�t��p�sH��\WfZq�\ ,X�Z�y2�G��:v�ƈ�˼W�̛�w�����S0i�8�qXh�T�~n\f�95,�C�O�v+LS(�d��-<F�sܙ�_�l��6{�������/�j�!GpR�V?8.����<�˭w+��Z f�Rr�/3�s%��6���.4Fɖ��f�\Ņ?|���s��G嶴���1����].��o�et9��/�˚�]�t�)N�'�����C¿�K���KSO�>��.�݇p\m��i~���|Ґ�g;�ӈ��EQ�9��@c����2����R�I��6]iC��Jl��M�@�� K�h�x\���<���a�@d��m�,�l��?�D�3~�1�$d��^2R�}�{}�~�Y�/��h�Y�1��v��6`����1�0iR�����f1&|� ���X�T+�^����o6 -��U�������7�͒2���*�r�.��0�*ʃ���� ++}X��C�|U9�W�]��� )��� �ύc�L�tB,�.;�Lc�\���A����Y��Hl���&f���w^��i���1/�œ,���̝������:��y��>C#�ȩ����p�2�毦�FlW���Y��LKE�J��}m��w3�y���Cu ++SX���;��2}W�,�@�����:|C�˦�o��c���o[��G��ᮊ=1~�ӮD��^uQb����+?���;�~��ve�w�(��D�}o/N�&i펵i>�k������b(�o�8ȷғ4�*�A+���]����b��b#ݤa=��A2Z6����ѥ��� ��%��gaYn��b�Q�R��<��S�VI�XDY3�� ��>~1�ǟ�y�\"[2#�U6��8�� ph����2X��T3��I�N#�����M�,5�9�L�i��$�¡=� ++[�ƸH�bM�_�ΐz#��t63��/����2���dQ�hUT �H���B�]����*�?���&�x4�̈t���0�Q������g;f�7c=��Q��ma��^�ܧRw4�`�?����Pݗ?dF�FޠMڷ��N|�� *�!� ;�+�Z�Q�U,��A��k���d3p�߬�m4����k�^��W�L��k����!�svp�6���2����d�l�[� �p����+ٳ�o��O����ŷ�|��~}�\-�&��(��V�~T�E�1�7w��Ue����jD��;����䓻L�}����x��s-Iu'�fW��'�id�%�B��C�걻�kѶ���HH��4'g�e����L���V6��+�!��~�<�m�Ϳm�n�\��� O����ôq�C%�l~�O����]�f������q��8C ��X%VX�s�p���(����T��zv���9��)���-"��-q���ڹ,��=6��25��o5���� X�z�P�S=,$�U}I�q<8��Q,��� ���X�ݵ�j^]����p��B������Z�*Y�aVJ��꿚�*�3I��-�P� ++�$�+�`�k �>>!X�p�@�ޛl�"�ˑhLm·q�����%�V�/�3u@wг3��TYW�k�U�zo'%�X1pOV�ȐX�QrtD>v��{�<��GkH,Ğ��h0�d�so�D3ZƊ���nrg�`��M�WTLL�>����p�r��L�z̬ ���`��+��ӊ� ++,Z8c�ҙ��Qz��zJ+�:$��8�ԍ��y3PFQy��L�7�q��U�m��������D��J��16�Qә�u==��y� w�8�$� niQ���yT���0(v���j=��azW����s����X%��2��X�9վ6�������R���ʌ7�z���_���fd�&3����a�:c�qX�T��x�-�K��ؠg��]ѥ�>�c������;�ε���9�O{��� Ƃ�nfB�e�q ����/V���)�r=+AZ��<�L���n���/�\���^�=�!��"Z*�.���� ��˗� H�Qd��n�0��l�k�����+4����_���ə����Err�""���~����1�6 ��[^��*��05�����n��Sf�z%Dž��q�و�\�#3U�����J������~�?�rkl!��$z�q!�a�_�}���U7_���#ȆB"��� C�ȵ�bjy>hsQR�Kݶ����y*���ρY>B��0�tߒ�q�]��*���9l१w�-!D啖b���:$�a���9�� ++1��e� ��AE��j��^� �!�0�7{�ōsҖzC�;M8����g�j,,,��x�5J��dx��ms6�Nř�`u��!Bn>=[ �a��������-���j�L�Nj�Ou�Ҍ9�kbu,gKqW�r%iz������u��26���5x8����t�+��N�KV.�������/�V8恐�w��Q�C���J@>�v��9&��[)�m�ᘓ ^L˰%����nsJ�kU��`���^������Z!mdo�>�� ++�)�|5m�t�$��\m-pt��So��,���X:q0d!��b�x���;���os3s5�+�_#�(��/du�\��7�>�m��� V� k����1��C�g��B��~�Y1��h/T[�y�#%M3�"�t��g6X�u�cç0��p��7(I��Fʽ}veF4*��M�n�B��z�zu�� Ͻ���*�/�ʫ���]�i|ӡ�7�.���K8��o�ˀ����@�Z��d�{��X2���Д�7����a�ۚ������&r�v�@W��t���֕D�̠��m�?���� ++�� ��n����I01�u��F �hQ��<������p���B��l�f�z���}2���y6����_-L:�؋'��K�C�_{v�4ݡ��V_�7V����^S�X����u� ++��gx��/�[�)���D�=P`�C�p6��/�0�4�r��C[R��hV8���L!��@�}�ӠO"��1�@�(������Ϙ�g�w倗Dun��I�|[�I�xeKړ>�.��9<�G_���9bǮ�H=�@V�U���(��%�w��P� �k��;[��w��b� ��X3�@��������֮hcqB�0zGko�X�e`дd�т��З�:L��9���U�M +��Vs]%QP3h~[�_s�,dv�V�À�pq� �]��E(È�p�"M�Ѩ@��(ݷ�,}[���}���r&�����=�`�v~}L���,J�L_�����R�&5��>�%j#��P۽�S�����x/9���f���{d�$*�YE�B�2��pI���U�F�Q8rK�a���`��m��\ _Z�z0b��@��k�C�D��,i� �PW4}�o���8�,�s�.��׃�������@��&4�2�į�Z��qJ��}o9X_����O|)�;KQ5!얿 C%��~�x����$�F���0"�䖿Y�� �i��9�ѡ`�j%u�;J���3��g�hN�<�:u�K ���b�1��(k4{?4V��13(=����7���{�G7���<��g�~�ldF�=䚀����G�x@8�1jp�����}�Y1���̈����kR{ ��+���[��2!g �wu�Zo��9`�9�+��y�����k��!'��pI+�ɂ�KM��m���ԁ5��-�z����X�7����~(�@�x�3��8D��̘$/���J��\�x`�d�;�B�~ޫ���?w�W�FT�3�m$�f��^DIC�c�s�r\`�_U�~�/�d�1�-�w��4E�` ���A�\����Ȉ��{�ӊ�f0��[ӿ�$�ip!��"U��YXs�����w��Eso�2-�˟`�W���-t5fFTm��K#���������]�3J��~���}�2�b�^�s��Mm��d2kYEO��rUЁR���6��f�m���y/Sv�^���0��"��ѐ� ++�1�.#w$�_Z�$](�,6+�z^kDq֞�Ĝ�&͢H��x��K�����f5��zE��b�=X�)$����=��YZ�������ϭ�t���/L6r�l��o�Y� ��I-���+^�R��̒���zbFtS�0��/�\���Ҁv�ek�!:oi����ebd>����G�.����6mx�CCY#L�0���7/��2fq���,<�i�_�<�'��8w���g^��ʹh�?�~��){x��Tj���f2�@]�L�>��@ڃf�'XF� ++�Ul� ++rd%� �e�>jG4�L7~�r�X]{Dvq�&@9,���є��H �A��%����1�-�#�֊AM��!gd'�� �:i�ǁ] �Բ�p��2�(�����U���Iy9���RJE6,�ŧ��À&h�F��ƥ�H�%M��N�g�x��V��Ԣ!Wy�4]}T��� ePw�m�̓Fpr ��*�N���v��q! �vA�.��R����#���h��VR�6fX�%X���H����G ++K4;��ʍTe��Ȧ���R�x|Tiy˖6"�̓��f��;�b5������v|����d�&hh ++��>Ɇ����[��sTY��J}=u����Ѻ�y[�I]c��V��<Ҷ���U=r���eE��|dH�����v~>���^����Q��Ö <sg Wj,%�?�7�XZ�)�xޗ�%�v���Fן�0]:�LՖ�>�p��Aб^�(x)���˓Y71F�"z�um"߬8Q8�~x"l����``��#���ޏ;F����c��i��b2<{Hz��Z�H�?�m�S?�\����3��"��c?^j,_h1lR_?����}Y b������l�/r���;�'"��_Wht�.�2ʓ�YB,"��� �m��מ�G"L��WxH���WY�\]�Z\������Pjp�V�0E��q����3�����cû�iv��oa٪��r+��Y*�P���kl��J`)Ǐp�`�λc�(tM�������A܆>N��?���l��q�͛���\�g�����&��*M�m���Sc��h+~�r�lS�f��"�4 �l�p�x@Z�dИ�,�;&+��mN��h�*�\�bkӉ��ȡQ�C�e��t��s��N�(���Z0QM�I���dM@^st�3F"�� A|d��TW�v��;ƄR]ON�#�O+��� ++E�D"���BMx�輑1u#B��v���Cup��a�����C��-�e�h�*aC�z�rO�n����6�����?73'�=fD}�1���`���1~�)��e���j�}v�)��]���hJ]�2���n?�Ħ�ͤ�XV����O���s^j�C��T�N�n���/ ++Bvm0��_u���jx��E����4�_��P�[А�G��Wdǀ�@�'Ζ+.��z{����� ~�I������oT���D��}����X���Ҏ��,������J�0���6��?�c����6���?�WxM���OHzP\�hvyJ҆P���4$��Q O�@�4vg��f�y�lӼ�s����[vi��J*��%�w��Y�aQ��Y|K Gٍ�p�ʗ6Z��δP1�o�����=i�~��dzi����Y��ޫ��Q+�쿪�!��������bH^��X4е��4�����߽����%�|����H��7$S�q�9�a����%lODb0�@�ު��!�t:��Pͅ�b� �8��i"��D��[��5���fx��D8Ƌ%�we�W�������h�6�G=:���)�����W�Q�����I5D<�_8��J�.C�?>ު����d���y��_�� �u��4����H; ++ ,�b������$ ++�{N���.��+�����2��`���~�=���k��7F{Y"h���np�Q��Ӆ���Z�Kr���RN6z��科�k�j�G��+Bg������3��Z�i4����eFi�S�Վ���(N�O��������+���U]Wɋ0��z"���x���ܥ���=��> �j�=��p�Y�c�=}�^�|(����}}�Ք=����#���,� ��|�Ƥ�}�7J��t�ܾn�~TH��4J���qv�uu�/!<�c0�폲�H��n�-T�:��5��'b{�A�����I��C�+*��-w���b�s�"��p�Aq�*��r��?�1v�?����0��=~�����O������sgN[=}�DU��L��ݸ ���P��A��WHc��a�3�����.L��![���UR8�r���$�t�tNC0O�@�{W>8��D�A���3����/�C]�����=> ["�6��S&���ݦ<*{�� N�U�q4�W����}�V�ʃ���� ��d��'J!��c�x�C�z<ur���������U簾?0����n���w�T�HO�'����ę�������"N`��(�~5�����!{m~P�G+�Mƨ�-��z��0��8��_cK���KT���D������fH���o��VB3�����1��|���'��$����ȍ��1�YN�NMӧ�#'EB��" U�x�c���������p(y�y���~2�ģ"��SfC�u>��0�OLD"vZY?���Kc�����/()�q�ZܫgS_��)($}�/ǩ�2���<�S��B:�ס�Cm���8�{C\�\%'q"o���{8�p\D����C#���ݗ0�Y���U[ᐻf�Cm|pk�r ++�J@z\�����UI��T�b( w;>ü��w�Y(�ɏ;5��I�x�*w������ ++�Z�B��e ��k'����[-dϣ@AC�_r�1�z��Å��7��U��m�x���Z�-��5�p�Ͽ0/C'�(�� �a"�6^���(�|K�N�c=y礯qN������M ���k���:���iK�L���[^� ++���Dr�i�]�߲��w��� +++��%p�k��$�V}��<�4z8c�߱Lޯ������ڻG�4w ++�2�g4�9D�W�??~~>z��A���c���ѿ���A�E�����W�<�I����q2��3����go������2gS��%��Ӗ�TqS��ݦtózS�����:����<������ו�TC���Edy��GC�R�'(?I4����DD���Ȯ���4$� �m̥aט�(�����N�i�2l�����m��yE�ԟ�- �#j�$��qG�0�u3T��ab �����PK��Mt��n���m��̹�*�U�}���#t������n[�9��A�|��Ϋ�*V�����?�V��hk�L�����H��@��Q�}{�I��E�2d)ᳮ��c�[!�S��[Q���/6�h��z��²�^�(��E��%B���e�dudž� 'd�nI==�3�Cz�-N�PԜ�zT(v"�-��K����]�tz'� �xM����Y�O�̉xB�@7���y$�������-��<���VY��[���4�z��L���>�Q�!|���4�����-f ++%U�z�c�(ɾ�)ĐR��휉nV|z5�R%Z���׆㟤�q?�=�$�w̋��7��Yv.���1_�b���q'��CT���O��D��^�0P��MX�ΰ=�����R)1<�?��4�yG��\9썪7*݄&�z�ǪMk ��<xv���@iK�����e:Z!*�RV�j��c�W����������,����I��@�*��H:K�Q'K^=�I��rSi��/ �=�B#v�-_�Ȅ�$q턔��Q��?;��g���7m���-)|ǩ���t�n�<x&H%��<YG�'tGn%�i��wJP�Fa��]�ӎ���-����Dk���Ϙj�q�@�@L��-8����`[���LS^ s[vA��_ϱf�e���/�_nF2���߾�nv��9U��J4�(hb%�($d���;.�*�u��8��uvib�@d�x�o@�ٞ���v���#���y�<M�)����������G�� �,�C"�U,y�~G*;k&̆Eg��o���wX]럕|D:���P;�/��zt�J��|���x���&��Fޤ�iJ��4�\���6�7a�l�R�1Zmj�ҏ��� �0� ��0M���;�??YC +++���|U}���U�JC�*�e��b"5ڄ0���ׇ���E�<�F��pY�\rx:�h���hM2iO|-$]ON��y�� ++ ++G'Z����WO�ѥAL�l 9q�5m�|e/<�8��>s�=l�>BRҡ���I?�X�̓�6�H�>��mb8W�I��D-��N�e|�7Z�U�Q�d��s*�>�s���>����Tb�E� ��p��+ �$�3�2���r��1Ż?���#7"�b�R&m�l�$���T�D���u�p� �*~Q�Z��_@�r�1�\NGN��2�-M��E#>Q{��� S ++��gi ��t��G�/�8����M�̥f����ra��G.} +X͜`:�9_��'"�� ���D��{n�"L��+2��tp0�O�pQ� ++)z��П$>����x�^H")���W���� ���B�3�0z��^{#Ǫ�����?n��������\1y��,�������.�v�* �h�t������_`����?� ++���S�� k�m5�4�/�rBE�;�0ows8�u�x彜���Dޑ�Ko)�����]S��,�No�ߜ� �)e�O�=�����fC��� ++�$[��}:�� Q�4�\_{�x0����CV(!��\ i^q�y��x����9����yVp��:*2w�$�]�[=�����o����'g�қ�d����~�0�r֓C�W���P�D"6>Be�;o�J������M�u��Oy ++�Y��,#�R�k����@,8N4"YÚ��"�K��`����yCT̠��;G�b�Ne�o\:�ل��� ��%"끰�ѡ�Sg0��1���r�ds�h ++�|�F�V��M>(A:zM�ݏ�#8�@AJm�*�@Z�0��MGQ�*[^A�G��y���ԧ-�x;Ϊ;�6�2����$�3e�'XV�u�o%�i� ++����^v�n&{X�ž���G�^��P��Q����V��x�� ��oQ/"� L&���$A���t��ܽLM�i�h�v�iޑ&w���6����{�3{�<��H���G�?1Z�bV�`�#��Zx�y�U7 �؇��*�=���:pk�"Ód��N�P�D"�CJ{!-�V��._�x��e�A2�O������R�$���� B�6��_�,�� ++�\�*��3g(s��O����y�mt���9����f�N�� ++�|S�P֥��Io�ӳe�&�,�QH.�D�D�1��N6�~�K���g��*�6!��Ĵ��6���l�ȕ����=X��ğ~�V1UVcZW�p�O �K�?�DK���u��m'�܆�Ϲ\�諅��a߾z�)Θ������5�m�J_���<�y1ƇG: �@��0ݙ�o0 ��м�(6>-�ե�qu'_��Pӗ�2�3`Z�[����44��l4�F��1��c3�WQ$�1���������w��@�[ @{������͵�D��vd��%b%���a�U)yT�$+z�2 ��H�RN/�ʧ���rw����l=��;NDL�on�r�%0���ݲ�O�7�����;$�7����������!#hC�oI�d�L�Vf�t��{�O��7�����X4 D�o�A<�I;�� V�h[(Q��F<�!JN���=�9�إ�!�1U戹�Ð;Wt�nO��� ��\�W��aZ/9��l-�_;0�?���QM��q��2���B� ++*8վj��*�lf�q��+ĩ՞�4��@��^�~����6��%��f҈���蓃����v�\�j�p�*Pμ�����kxH���@��|�ϸr(��3���qI��7;������q/�rS#�С},c�Ǘ9)���ب�R��t&�q@F���M9���ʞ��� �Lq�d���b��լ��/��C��9+�a�� �Y����i�s�%а���q':�)���!ٛU��U��xXa���K�J�p�F��s�1���k�3��OrS�W9�*�l9̲��_.���0/�IJUX@:��*�x��:��,f)�:� �X'~-����gi���NIqy�b���;�����^(��)A�j��T� ++}A�&�y�(����w�h��g���+�T� �v�X �$�*�k��裋59|����mv���*�iV-���T�ko+H6<�9?�MVOƍQ��F��?�6���gK\����:�P �wW�e����|�wټҿ��J������"D�BH+H �C�P0�sF.Z��!U���T4��<�� ��I��)���6���h�Y���ߚ&�䏺`�L�y��8tJ��3?�N���� ���I����@�8�t�A#~�V�!��A�~[��(I${QH�OZ�7$)S�5���IWF�UЌ���M�*om��4FM�f�F�� 9U�6\`zQ�"PT�~G����%a�� ++zVɡr7��.� ++*�֘�95f�kF(ٰ���n�:sNuu5�G�:�Kxڀ��oy��#N6�fY�)t�ڰhW�#yo��љ���yR*'� ��]���R��6��xI�"0�V�d)�Zf�7�#�� t���t��B�l�����"3x��uʰ)�%a�$鱦��ݛ�otwoS���x���!]8`t2W"�@h�P��u?�+8�O���q�ͯ��~:��7��]Pq�OH-��g ++��dM}������PI�PϜ�/=$D���=C����������LK�|��xI�1������c���W��,���b.ͳ���B#xO�`R�f��L�a/�Ԡ/�)?�sӏ��㴉���fG1�#�3��1���FH����4���Ռ�q���㌘%#*��nFd��9������N����W*֒�q���G^� .ʼnٚ/3��S5�T�ʿ� �����1&i��|�D'���t���t�y��I�B/R����`lQ�'qn�i� ++�rT,�m-]��㕨_�R'H��s�L���g��e�#~d����E?��l3�� �CEuX~��J��Wn�cZ;�&hX��G�8j�8��܉���{3��@�x����W��x�TX�x䳚�M2kT�,��#�����bV��sW�ݽ���ܫξ�o��04�wyA*o���щ&;��2�M�S�y ++��ї@ ++�݉�?��N�����3��<8Q6�/2�J�M��u����e��OzT��{u�b�P�L@�� Ƹ-�}�߹�z���6�3������{������sj;B�l�</r��&��@ 5� ++��> ++�2�{%���&��ϩR��HE�ܫ��� �m�Ep��v�ȹ���n�o}��o�� �]ߝ�U|<mp�����M�5��;�ژQ~�rjA"a�կ��S [���wL9Ϯ{���SD�~��J���HG�c2W�-i��7b� IHG���;����?��0� s^�h���B�ӽ� x����MRa/�dr�jX�����F~qxp�]*�`���4�Q}��(����6P4��z|֭�_{�7٢�����W��$�Y�*EzG$��ƣbΞ���]�w��#���r���k�:�2���2��Nd�}�~\S"�(���T���$y����&gn�q�;U$�nW��<�{��U�w�a�ҙ�q>�3ߨ����wd�ic�=��ʑ1 *�夑�~:qu ٝ���FJM"�̭cL���_O�K��ntl4I���[�8�]Z�k#��ь5�hCޕA+2�_IRe�D~��K"���<��|�zC�k �� ) ��<㥧i�>��~�^(���� ����JԨ��D?��_�����c|�Y�7�csw�r3Rq�#sK�&oC:��n��$�)lF� M��*���w���n�M4�ʛ����"B�F��-�՚*H���0՞mC59�3��Ԡ�=��;a���@D�f�n+�c`��푛������ݱ� <b3�XYX ��9%��\�~��c�}�M ++N��)�쎬��|����fɡR�s�H�q������e� �����������IrU��c�Ca����A���C�Hu~��&L$B�9�3}�����Qo�t ���b#�S��a��H�<�#�˚��Q 5I_�{v�d"�Q�n�nh�om����ǧ��'�!v�ՙ3��� ���q�9�d�Ӂ�D��Y��b��"2�����ֵ�<=�\%�9L����m�M�<��{���y&i���*A]���;�W���h(�qgl Ńi�����8&��@]ٷ�'(�����c�q����h�Hz�!���<;��O֒gu$�Dz�Q4�U�<)fV��s���^Ul�/խ��� _�w:�>v�N�F^��~=E"�V�� K�C���u�2F��,�@�������3���E(���3$��`�QP�t����~�����l������#-�wf ��q�2ҿ5@O�1;�gu��x6���T�D�{�!�\"�T��T$���)��ץ��ݣ��V,��j�}�7�Vm� ��cv�5d~�Fm� I��{G9�D��f��0�������Q��Y3��H�a�h�u�B�Y+w ++] I�x�h�����i�hdP8��?�b��O��Z��-:±� �O�����kD��]q0P^���⨿�*&D1? $�qB���_d1��_u����\��ކ>g��У_�+���/2��Pku�O�~�N�HKf5D��$:&K3XbNT �Ƿ���#��ŦؓVRݽ�C�OB�-y��E�v]�S$��,>B, �__�#��:�۾q1%�c^?�S�t"lo3�}���o�E���5�� �p�P!QP�Z�JG~�Ō0���qx�E��m�.A���S�T"B����/�/�a�D�#�����4�?�aP*H ++ ++N��Z!ПRc���ۇ/�H.�� ++�����&t��CD��������R"�X)�h��:Ɵ�+�t����¦ 7�����%�^%*ʰ��Y��<Dt)C 宅O߳��F��-j����f��:�ݠH�� w5�;��Z*-n��^ ��/w�Ԗ�̀�q��5P�N �H�8������}z=? �7�0�D�����V'5�=wxl<'���SE�z�<㇊�:�y�;� �_���Ӹ����Ǧ[�De�}6G�����,��u\�����P/�AS������K� ++$�jTU3F�3jV_̂���R�������F���Al�E6(����^�C��g��Nr�b�I�r��; ++�vIP�ťu9ԯIo�=���{�;�iA� �օY�D�=]+i��|����|Ҭ�,;��&'�H�ߐ�7���l� Cq{^y�W�&e�������� ++��J}��ף�7 ++zbK�4B�Z��/��8� �4&�Ѩr���'��ɄS�]��Z�KU��h~z֑�W:�FV�� � �mENtR��Y�N�k�ÄK=�X�bKYeBl�����+�,pTZ�Cl��"?5�Y/m��P3���/�jP�w++wpԾq ++b��SХr�����i!�Y�G���q�;�X�y��8R�:���bu�!��r���V����[ߺ�����;W�Ht�!�8Y��W̛��:��� 2ދ�,���C���o��It�UD��(�o��z�kա0�o1郘��A�B��+�?̚I�KC�K^ B��i��1I�����0Rl�g�J��C44RՃ�M:� .ʭj�-ܪ?���� �ty���ΞOű��ˁ�j+�Ș� �H�ڔ]������$�~J�0 ++OPR��Z���{�B$�>=L�����ƶ�[�XEP͇N�tq�ﻊ����+2�� �<��Wv���x���Zh�������w��o�?N�������4�n�>1�n�<���ya'ļh� 5��^H�[@�����C��N?zє�h�J�-�D*M@��u�9]@(�(UҨk��Ǹ����$2d�Cn�$�M������~8����c5U=�V�2�@���G�l[_Q��>�JN�@�L����������Z���HƲ 66:L�t_��?�+�z�zA���Lz ��_`�P�KFv3 �J����Mê�� kRU��?���q���Zu@HBd��#�*��YS$c�G�k��Bl7�Y� ���N��Mہ�Ȼ�E������ K�����-u��f�4��8b%���ꙿڱ��^,����¼��R�5�JwQd�b2f!�m\^�;3N�t�E�nTq�,ɱGD�z0M�B�>}p���S\r$�@}��,����U�ݷq� �$�w���PV2YJi�睴62����%s��pnh ++�{�\��oD���,Y���q䞼���KjPF}�$��~pǂEx�b�!�m}W'Ճ'����Oh ++��$�/�AKO+�qR�������[_��9Nd�.����fh�.��4"a��x�_!!�B��K�؟5-�6τ�+��Gz@��&��ӿ�b����tc�(4���?�n�����qDS�4��?�K�*�{��q�m�/x��-=g�67%t����+�흂��Ѳ+:���x�4����~�0��p��g���uP��R�"�i�G���(������2�tN��&��4�1�<����N�k��{�3O�轳��?�Ԉk?\��g9�mQFJ���c]�(�ɐa}5�~ ++4��}��a�GZ��>��ͣ�<9@�]�9�x4Q��9��0�)ٱ�%�n�\��>:&V���p���S���D��j��Ƌ?Q# ��)�yE-�z�-t���b:kau�·�� ++���[��U����s��>T�5V��g��Z!����5�B���:���h��*���z ++{��������I��ڑ�w/�!!F>1�:Gg�ADk�G-����zٵ4��P�r�wB7V���B�(�R��氠�Sa�=���+�'U�xa�%K��� z�0���f�����5V��Ӂ˯�'<��_�bm� ���'��+�m�a���c�F��H�o�1h��t������b�JO�/U��P~}`�J���O;s���1��/Q�ވ�L�0����[��}�͒�K��uw;�PA�)Μ�_h�ľD����1�D~ "V�����?���t?�������@W����NN����Nl���o��(��Dt��u��q7B��_wW��_�,sD,��¹�^�|�����v�ɻ ++�0�;���� #%����I?��A3��6u�p��#g��Ph{o%� ��ㅛ��76cC���i���:������+�먼V�8Pm96��8�eFj���n褱�m9�餅bA����s��!���U�H~N����k,���~���/~x<�"c�hq�x;h�.�΅��q(��[�Ac�fBM�B ��s�X��k;�N�3����c3}Hm ++% L#(�Q+���J;������z������#�0��JJ�F.�u�?��ޡ�)��G@jDx�st3�4�_��x�;pd���=��hv� ++�/M,8�$1�Y#���U�҃L�!=��G�k�O�@�;j�ZP�ݒ�;�UL�G��� ԃ\=M��y��G�!ӝM�,K�V�e�Gf��Kݣ�Ip�P�ؕ}�|�]�{���z��r";;���vԯ�54�8��Ӂj NK2b���f�!aN����#�0N]K-�-�u8]&Hqڀ@ް�z���l�1b�.T�g\�:ĄUECU |cg�� ++�uC����Ve�O ++�A(�;N7TԖ���n^��^s��a|�qA~7�ߍ��v�F�����Z�Z}��>'���,��p���X�ڄ�����dё���o�dx��}�5��磗&!o�-�z{�U"#��pnN&u�m]!�K��cl��Qn� ++B5�jN���g���E�U���[݂'5��c�O�V��G��b$�y|�}/��zK[�<�U�}bC��#M]^�$qk�� ֵ��&N�����x��'�6���t.AۧmrCm�z"��?�ѧU�eR��I���D��E&�_�A�)��y�+��^a����� ++8�<'�WO5� ��C�;�$�b�h�8mOF�Te|j���y��T�N�� ��s`��̴��0��5l2�mGܧ��F���ښ�l���6R�6�A�*��#5D� ��D2ɢ��C��b�@R�� ++�D�b"��*P.H�% ��܋ ���'�n�����v��t��I��rY�C����UR�36D#fp�Pd��\�YpC]m+��J7^P4�h�bɷ���;���Z%�ɵm��?'V!!���q%�S�K�ʵ�>z����,���cN#ҜfV���ʋ�)*P�Ǹu�t����Y?Y�K��:��<ԢL���O�d�#��&drH��4G�6!v��c���K`=J�#q�V#�Y0�p>���&v�t���"|�۾���X]B�vֽ�r�iZ6Nz1<huv�ڈ��An��q��+l�3�����L�5:t'��\�v�DS���ȢD"t�B_a�S�ȳ zQ���}j�HT����|��b��2�A���S�Ocׇ���r@�̈�B�g ++} �&�7�;�db#��,<�H�>Z����[��!�S�x< ��<-�&ꙷ��)�{��]?y�&�ӓ�-Am'�I~xm̽k��� 0���c�4��)v[��F���{ ++ (n�[���j$ `i��'�Ջ��{k8�FI�3Gv��)͈Лj%f���G:�DO�X8��-]����";�z߮F�1\bI��,�[F��H3�[M��_�Q�A���zǸ�s�00;�lK3\떀1n{�A��<%4�%�&���t��zx�B�J��~�ZI����h�h�������3#��#:�l�7kU{T�!{���F����M'�_lf�`B��r���B$C{ {V@��M�WV�ԩ��.���u�����#e",z�0n��A:�T{��}�xҞ�h ++J��� ++U������ް�������I��^�~����K�+��+)��ؙ�d�;���.7(���zX�A��ˍ� ��'F��k�h�sVu,r�T7�'I�Y��%o�V�!��]��o�P���(�<�%0�������t>���Hψ-�7�����sm:b��8/����bFe�w�����hl��-]� ��C)�O;g�k��D�z�J��������t���6u��}����[�2�pM�V�q���)]e��1���`{$&��?��ѷqu8�4�]�W�Y�����%����fK�YK`� LsF��&�塲%���{4{�7�a���^/�VrIG�U�k�ƥG�=���fk"�\9玾���N�q�"5B=ioL���Tf�Zz���<�����D_Ua���M[D�) ++'�t�~�>�N�� ��%GI�s|HD�D۲���3�|��F@�ߎ$������m��u��D�J7���w����[�v���rvt��Ƿ���� ++�g�HS���^*� *���C%��;L����:��CZ�Z��VQ"ƧAm� ����T����{DHmU�@�1I'a�=��� "�.H�AQ����|��3C$oU�j�����y@�_>��6�|iC���wdaj��a�D~�l큨W����m�٬���Hw�o���}�+=BY> :����8��� �5��N}Q&��k��&9���`��G�(�t��>�~�|/���k���V0�ϖ�R��C=~9 |@�. 5�zV����8O�·�N��ا�����*���v?���}�߯�E4��\�,����<��엲{ �ώ�b�6�P$ҁ�~��^�Q�������������Զ Żޖ�E��W���P^��$��XT�v���'�@~jd|�����\٥8G�5���q�Tv�g�δ^s�����qm��za��^���3�K�ys��_�=��D\̂�J�/Q�U����G��ce58��;<%\%��f���D���� ��~�ufPw�P���*%�Rmc=xn�e���}ď���"i$�;� ��7��G��W���1�&p ����y?�f��4������92f殝;���Y��� ++'�L��N��������t�$i�SL*�i���e�,)�K0s�w3<���PC-���m��{"���Vz��yp��<�^�l 3ܓ�E���fp}�=2�W5��*��a��欪���W��*Ս��jǏ�ܕ�;��Y�B$�����g"��L/��8�������ʇQ�����OE�|~�ս����7!$�[� 4_��s���1�D��w�#'l]yG��}�]9��]aVѤ�v�<�����BBR|3�nI��j�\������w�8���ڦ�ad5>v�у���ޜi:(�J;�U���O��mf���?��?���53#��:ź�����,�DTrl� D�| u}[Ħ��qZ4����� "�c ++�0S�ׅdDb��)x�+�I�܉Dj��*��Z� �3�0/����3��d: ++�vh �Y���gpç�ic�z(?fĞW��^�[p| ++2!l{�VI�s@'���/4)'2��=��*�b�����,��H�Sh�,�#���}i���'}�����sF~#��<oE�����)��c��@����5��Rt��1�4ۻ� �i����u���d0F��l�5:a�L���R�u�����'��c]� ��'B�ÃJJ�'�8.��r�ХVp����]�H!��D`s��GU�1ІMt2 ++��/��*Oҵ��~^d]oĢ��1���=�6h�LG�FWx��n1�7UW�~F�oI�e�J���J�v�f+ת �KJ�L�q� S����]$P ++[3 ++��Y8����Q�?�;T�� ��кf�����Y�ğVz|A� ++/�]�U��tpޅr �;���iFc����]$6(�n{�����Y��Fn�`�`�}�X_��$��d�Hb�å TR�H�.,�8ȤԆB��I��.L���[M��rWH�W?�ĉN�P�T {Yn3Ba���Ņ}���>���� �BBՎ�9N�%�[�F�����?<�a��q� #$�!4V�S�`۬0������`rN��/z��uHC��3iD7���^Q?]��{�n��\3��@���NXf��1�\W`�D�J��c�������+�K�U�(4�=���f^"�NN�֎�]��b���g�xW�ICo�u��U$������s�FE��n,�%zp~�H~h�=�Q��ɛ�w�������CJp���f/7M��N��T <�Ȫ��������������$��R]z�;�� ��7�-��z3FJ{�'��O���%Y9U�ɘ�_=$G2ȁ��v��a<&��$5 =ZK7N�/��r��6�Z!����y�U�0]R%8ҁ�?46�&:퉨 ++�� �}�~@��2I��垾��n�ﻘ�_�q;Hb�@��'�=��L�4����+m�(�{8�]�l��79��t�H��]P�O�[�Qn�h+R�3�}�����7Wq�o.����$z�O # #�+B�<��k��:�������=%\$�2��ջQ��f3s$1��g�y� f�G�I�^��w�w���$��i���Gk���:���i!��?�M5l���7����Z���-��|n)}�3s������Y�'͗s�WFE�+^��3�o�lZ��}���� nނҩ&� ���(0������-3w�d�(D�HK�|�3ƢE� �Һ$�>b ?��C��z�|��3�C��^`Pl I������ ++ ++b�yʺ�,�zXBt��s��iY@�/:��*��Q��w/���V��W_�,6�5gh����?Q����^��9v19si<>P�ݪp��aGRPۇ���&� �m�"�:l�(��9�)�c���#�fp�i#�r�����?5�l��3L�T���R�9�VB ++�T�W���v���&�R��e]��Z�~Xo�]�0B4�C;?�;$!��ER�����<����uI��߱���1�p��..V֊`TD��"�N��zZ���̈v�s ++��!�'�RWu�8�#"c�Y�`�1��R:�4��M���k��c^x���V�2�M�1�bz�*e#E�Zh����{�5.�Hyե0V� ++<�~ �T�F��s������B�t���T*) 2���Y��E�!�1��<���O���}�Q�ư�.o�H���^�=�o���� \p �*B�?�y��h�M�py��{�C�)��� ++7��n%U:�9n��`y��.0[l�L���=r���8����T��ث���I�}�t �lH�h�!v�����L0y5���^=������C5F8%� ++���ܛ;�;��'�,��!o��,�d�+_?q2J���[t��g��O �C�=��r:�2gq!�~x��s��2�I@���%@�7�����t,8�'b�΄�7l�z��ɚw:�A�8y<�Yq ��*0�l��^��Һm→��~��Y<t�@�}#�w�\� ++l��ѺWB3<�|8�a�����ʲ������@����hwZ8JV1�Pu��eИmuHGQ��\��g��+-®� ++dEp�п�Zc�-���Q�*e��WN����]ae���4�O��|�� ++�S���q�u��=�Y�8Lز'_��NMEP�y�<�&�����Y�]ir�.��ۀ�l�dM1�T�ݺ�a�P;0 &�R����L1�����2'v�n][�t��t_�Y�A� �1^�W�>�U��(.���s�U���r��&F��&�לot������`0�T��kn�a�%`G������6C:�˟���̐�S��`���@��ك#�.c7��@ȼ��|���Dߑ0�m�b�Z�t���$�dF����.�S����%�ٵ�ћ}+ܸx~�Vݾ�I�AU�k`Q֥�䄼�0\剉��Ѫr�c��IU�<�Ba�O����,Ofz����̟[?��@Cq���5��/*>�-w�*�&��?����A�6?���Jz�/��gM3ua��vp/`���T�����YC �k��r݉r�.=��'����l�h>�Q}6�����֢���2�c'z��2�������I��O�� ��3�?��H~>�dN���2B�ۜ���2n�[�aO�n��&��<�]�K�A��c������Izs�5� ���u:��0����P���Y�~�m�~prP�2�M�U3�]J�.uׄU�`�[ ��M`�|>;���E�A��0O�YQ���pe���d�����m �{�.J-P:�:,���z�0�^F�!�DD�C:o�7�Q��L�ѣ�����cةЕ����������R �@C��l�/�w�ǽ� ������Q���1�C;�'/`�y8����k��f��_t1���rˍe`���z���]R���Z�P�Y�_��g�p�{輏��,�@���x����S������~�W�=�RU��5�D\��^���=R>h�����q���%�;I��deY�\u�d�{��1,o@Ҝ�F=<��ڀ?�q��z��\�c��c1�?o��.�r�W6 ++7K�x��X�:�+֬���g�dv�K0&4�����:���x��dX�"%��}K��I�WW�z��� (I& �*�Q�3���#��n�6*c%@�1�L[ߖ����Bl�%�F�v?���8����AA˪cxˢ��J���H���=�`������ ��x�����w���D�J��0,3�X�6�z4�؍ºIƱ7���k0���i���p�&2��A�a�K�q�sl�%�#�����`s)��"���VևC ���8Lgi�h�'��i�Be[���`Ps�m� ȟ��[�k8�Y7U7�T��Fp�I/w{��Nah*Qy�V�#M�_Bp����ɽ-@]zK�2�ar�(T3Ho����S ����Va����{ЬP �h���1�F�<��-Ēh˛jCs�v�#(���P�8a���ϛ���r!'r��ԁ:[�&d�ݸ\��n�*{}z�����2Tm��*�X�[��f�z-�|�H�]go�z��Gx�e�%�wx��[v\L�&��s��B�mH�W�!���{���B9�`j��'�{�b؇�05��G�<}J����BH�lF�T�9��B�~��>[@O!]� ++�����y������\�i���۪�y|ic@p��T�uin?�a����K�!���FE�x�\��7g6�`%%� �.3���G�;�S?�ir��p�b2#�e���1��uҋ�"�9;�3���59�~��M� ++��hsc��5��I�BV@�+b�� �}O��B��د� ++G�L�o`�f?�|U��8A� ++IZiyĈ�XQ|���d��9f�}��ת #ɬ��|����9ˢ)��u� ��a11���/Ѽm[�����|ݢF�����4S�y�$���M��*�-x�z�����h<s�IL� �E�6U������p�E\+�%� ���P勤��OK<�QӘp�Q��K���#�����������F�mFn^|e*���D�!|%�a�al�S��3Ī��`-�����Ͳ�[��Qho��T�z�TA��b^��*��G��G������JAz�HD,v�a�LdS-|�;O���?�a��,b�}��kFI_&���f|{U ++�.�2�rV���p��X�z�J��(��2������� ++1� r�ꌆ��8M��8�</�w��2TÁ�.��/ri�~���U}�����ࣤ�U�牎�3�&��j/r��O��k�Ҁ�Iɕ/�ks��.������Ei%�W���2xi[���Nj���^�KR ++����^�C*���{�8��&�D|��O���K�$���~��V��m��{��M�@�+V�꛱�ƋeG���������Ig���G���Źx7��Q����>��=����I���b�( �@�Bߪ߶�^��f!�$��g�^��b��[:_�t}���]R� ˂���јI&��ơ8QCՀ��w�`�O)C�%_�*f����E��MG�]����(��K8;�+�c�u�j����*�=�t�˲C��[��K�/�;H ++��� ++�'�,���Y8B�D�[�GoIy �No���9�&y�UG��P��� �7�����X�8+�"1�7���6 K�ުS�!p�:@�vH$����z���훲�i+�r:���ul�ۇӡ��:�f��7$��QlDc)o8<t��4rU7�<����h�C)��V��t`�W�*])0��!��^U�~�]ewн�x$s� i]s��!~����Ö�VM� _�{~�"�FSG3�U�R��*Qz�Bc��BKz�h� �� B*�O�C�ɡ@�'�O>_~��fE/I�?ΐ?�fNMI�=Q6����y5Q��Q�4� ++�&�]Ǐ'J��o���S�K:"�wї�m�Z�4䣀��M��=uHl� @R�1M�څ��y]�b�08 ��=s$X$`���p�_X3�{{6��>�C��km��N�p��6|�o��0��1h[�s���<9�u��7��88V\n�] ++�$��$!^_�=^T��=#��E�1&�x�?!}�$�� o�$�$c� �k�d�S��z�Y�J?�U;=�'�����"!N��ɿ�2��.�%���ӟ�x���T��qY�i����A������c4�ϩ<�l�GtC�E��-�+/�R�ۢ��R�$���g���߀��l���DZg�f�kg;N����w�g��*�rj���a]��^W����۹j��W��c�܄I;�WEvD16�!��*J`D��֏#��Z�j���~��E�J�6�!|�}uᨯ��>l7Z�Is��xX3rD;Wͨ��Ɵ�4���s��J&b�= i�X $(n��:�ssw�܀{3���'��G��+�d�~����C��P��yг�P�9H�b����U}��+5B���N�������a�q�����X���d�-�I >�@����� �4b�b� ++W�����k�c̿���(+�������b����>��y���_�y"�����f��'ŖWq��wyM �C�9�2��s�4&����Z�_�p������ll�!����D`�ۻ����V�bs&`{��i�]�5�0����5�j�/��|8 ++7�^��W?�Z=�+�Z��ѽDt��m�wvn�yu���m-�Ǵ�o|y��������̄`O��+M��X��Õ be4� ��B�#=TPQ�'���ݠ���'i���������q ++C��ZK����t4��(�C���1�� ++�|�S7Ds^n���0@��������z� ��F��Jj0H��E�?�k�0��r�辋[e֡�h�[��{W�=���+��\�+:J�N'%h'��������W�̰� s��r�-7�������ҹF�o��|�a�<k�i�Xc/�R���N������d��W�=�����i�+4�n�Z]/��*�ܲѶVU-+(�� ++���48�ֶ@˻�nP����5�Xt��o�&��Zox������/�B�ch-��c��zU�ߔ����P�.-�YӖ�v�2���������!M�k�&���kG�t4֟��&�]뚟S�C�k�%,#h!z�� E�3���h ++w�P�wz >���`�UͲ�P��\�����|N��<�3� �g��|�/x[��]U�"\t#�g�j�8��"�}L���Z�"}�˴Oj�x�_�9m9\�u4H�V�X���U5��d�xG9B;�T/�,4&�T���|�?ٺe��"�]�Z��p���~N�G6�:��T/k�K��{_Z�:_J�#� ++ ���_L�>l�4~��5���ڱ�P���|�� ���/6oFh�9y�&�Z?��V�#�+�L��>@fWA-�֙�B�}���N��_.�5=�79�i��� Q�62ܘC���Fx�:���� I����D;dL�KȚ1�ϻXcLOTbT1ЌF8���Cb1���`N����g��ү0���_X�坷�5�k�T<L��fs\1p��q�N�$�lvk�c��JG��05��$��3P$��F�n�0��8�8���E�Yq�Y�0Ƙ�D*�a#��Y��fٜ'��M��1�5��k���O���������� {} I��?}��($��],��$��2�Nj4N���f�u��1�Q��z44i�H>�t���n���@��ܚ/8\Jn��U��,����h��p�2�n,v6]�vxG>�O�U���ݝ9����-�?]l����o�3\7uٍu�?�=R�$\��p����&��� ++���QNG��+����O�ȶ�#Ȥ>�z��"���@��O��Fa�|��p7�Z�L�壇��{.�A��9�a�?�'D.j��ݴ~8���4�v�����D-:ٮ��R3 ++%\3���k$93�'���x̙t��c�G�����y�U ++@�(���R�gA����O� *f�.y�dzb�H���1�3���l;7�H��ű�@�lZ�<�L�>��I�l��,C�[�Q��.�_�Ҭ�f�38md3�l����qb�W�̱���.�j��c�?�T�5QM�:�q��Յy��y��!us�0ư��v�s[htv� "/lm���f �L����4#䟮�#���t�t�"�� ��&�>�I@1js��o)��P��+�SH��J�&����5�h��IJ`,zݡlxRx)ɢ�O��s������Gݝ��y[p��Bf�p��.э4�L���hS�&j7f�(h�-��q���fl/�$FF;x7)�ڎP��~QbK!����H"���p뚇�� ++��%��^*n�tFF{K?b��ND>�H�#��YM��,��� ++P�R=R�鐑���������䤫pRu��W}�J�U�#ʤ�����枼�E-$1\GD:%!K?'0ы�_@,�g�~V���}��$������6.���B����w֓1Z"�aga�BLl-�'�3�Z��������ҎX��m�{��� Q���sH�;�����9��E=�C���n�;Խ�H$��Y��j�G��yC7f�q�9���A9M��ھY%V������cz7�t/:��h�i����Xa�Ԇ�����G[G�7D�e��)���ɩ@�����hv���܍.�u6 ��3R�M��+kDQJu�K�.���!��O��b^<��Ʊ��h*����2���1��;�@����1j����)��%o#� H��-�{�+ۻ{�w�p�u5��o ++S�3�U�xO� ����Be=����פ�'Z�'�r[M7�c��4 H�l�qݛ�U�p��C5#ER[ �퉋xg��������Ӟ��7�y�nO[ �@$9Nqb)`�<q���}gb\��x,��ɔqLzc��Z���& �&̗��ʘWu+2h�_~\�(�`Uy�6��¢�y�| ++ц6�V���2�R�yN�Gfd%4Cz�2�W�͊��������/U�v9"�Qw!��)Z��n��;yB��Ō��.������qk�|�Xd�,��^�;���P�6�.~OH�be�0L�\_���5������wߤ^,`�d�"��8v�Ę��^F#0^��ٗ��W<��%*TI`�m�ž q)F�yOE��]��Nb�j���T/j%:�_�����X�Vw�R�/R$}S|qc7���ⶅ���C7�m����4*$�v���O�Dv��(|��Îg]�j%�'���u^c.�y?'vA����F��_g��|[��J;�n+k��)�j"�&�R�C/4������d{�K�;e�4�� }���E�LV���k ���z�~5qb�h��� ����!�\1]-U�����}���ԕ<��k�;�$e#�'��/E'�)��W3ő��}X��$LU��n�}E��Di�|�ߑ�W;Y7���-e>�of��MG�#��_�h��+d�����~��d|�/-�O��K�Mc�寏1�^B}ҩ����8�r �����j��g�� ++p��!k��y8Hc�n|�ID�PE%�mr�7T�P�՛qQG�U�J�ÿi�����'.�w�����~�0��]�����i� �K��r�g�}����Y*V[gjrO,�����T��HґZ�9��TanL�EF���4(��c�a]T���t�T ++ ++�������uS�J ���5�?�x�k�_3F=����4�4���Ɍl�j��w��1�F�c�{F(6�~���/��N0;7,:�7Y��g�b�rA]�H�ڸ�# ~� �t�<�9����n��e8�Ɠ���U��CfDF���/֨>��Y���F3lǰ�� ��M)�վ���gs��q.�q���g��&u�ŏ s�`咝·��)C��W�Ib�3�������n�*F�_��%�K���;���w�CpR���_��ܝ�Lk�b z��G��pu8�eD4��95��$ �s�C塝"c��h�E�l"�.�8ԉ7�Z�ڝ M�Bq��&A��(�歁G����3��x֨ r|J���c-Ò*Y�f�b��c $�q��l]CDTj�)r����_�P�M�7����%24c�)��oPz~�v��|�x<k^�1J���X�NT��E_���#ȅ�ƈ >��#���S��U8�0���9�4d�m�1v���;XR͉���B���F�ؔ��o2ωcB��w2lݥm�HRևn1B���'S9d�aT������T��lK���"\WRcΎ�F �U�8���ͥ�����Ϛ���Sq�F����{�%t��2����{6��fӽ����>>�Dݟ3d*�����R�� ++ڟiOG�(�+4���Z������:�(r5*���K�vy�uaiߴ���X��N��7V|"֫iѱE�T�!K8��o�sۀN� ʦ��X�����֟,+�+~ť��G��7��o����ԑ��yo ߚ���pl�I5Oj�.�c~s��(W2��rf�[�"�L0"��_u<�+בh>a,�+���j@"?Z6&ޞ� "~ �'ި��L�/��Ϟr�_s� T�(�1���F��Fd��@j����!C�偛��4k���<��AVW�0�D�"�г��A�;��22G��Y��ڲ �YsV�U�O���1��ր�V��ӛU��1̃L�K��y`�@�aB��4A>�>�h�7Iɂm�F��n>{�k.Ĝ�����?�w���0`K���>'F�$��Kq?I"��zڦHc[`��QW��6_��k�[�g�\ ��� ++����"j����D[����膷�S�+�i��xV�_kY6B�<�� B�A���٨��_0MA����6�6 ++�cn?���6r�n)�����Ӓ(�MBNS�m��-4#j�$��Vğ��l��3�lnjQR�xqޜ���Y�)s��z��|��F��2�S�*�|:���̼����'N����:�婴\�xZ�ZD�u-�q8��H�k:��xʮ�T3�`�Q���>��h�J�v]?A$H|7k�Pz�t�s��suL��T�{ٺ7^�wŬƲ��|3�$��X~�[]뷆o�Jx�tL���z�o��}y�w&GB�X��N�s��$��,��m�=���LNzN�)x���;��W'4jR8Qs#Dq>��ܝ���S��K$J(���w:�8�����mFH�ٲ1{b�S�3�6���6o ++])�r�ц�΄�8�T�����]��H*�ZI�/i������7�ӵ�����i��FϙÃI�eA�-b����_B��m��Rt�jrm��� ++�d��A�e��� SY�h��h��r�f� ~�+ ��<��CH.vk�#_D��M4��B@�}:����JSӃ��<�n]�3!,�-�]� �rڰ4��e��FQ�4N9��u�D���6�����Oذv��QȂ '��"2PU�����n��3IO||(��s���ǭ�����������@'�$�s�xDˋD!rI����'J{���G}oZ������P�]G�t� ++C8J>R�"��ф�� ++av�/u��=�|�BY`z��|�X����a0c �wl�Š��Ph�![�#���ϼ]1���y�8�Ue�V�&�J8������s��������0K��o����h���ֿ�o��xe4xXm}@�P�j�.�" ��P�͂X��*3�Q���?����x��p|��IS���@��kPԭbLJ-�~�ߘG��=iZ���}��Yq�>�����>��(��\�y������Y�/���!{6�D�\�4H�=��EgoX��H�V=#s�}Q��S��5��0#`�[,[���)� ��:e���w�a���B�F<���o}1�[�Sv�C��zxy����������-]��M��(�r�HF���~�,�35�[d!'̆ͧ�i���2[��a ��?�:O��S%���1=ӓ�L*F�1c�f���_MBID{d%���Y��?V���C���5��t��H���dd�Hc��l����_bb��W��@���@WW#f���o�C]կzad�O)���8W/�N:~�];F����$�>��?�s�y��D9PN�yJ����s`�!�H����.�!�hκ��L'iY��g�h5̮��� �z�Ş�K�W�wѥ������cL���|��b�R��ݶ<�'x�XhV��$����a�k����{B�x��Q�2�:%�6(�s#��ӓ b�Fuvt9���`���P㣃uܫ�$���x��JX�ޯ��+ 3Lj�7'�!x(=�.?dc+���!��µd�vu�I���qQ�IA��c)�r��m�@:��!�s�ݦ��OI�er֔�8���!i$J��ru�4 �^���M�goW�J#�E��١3 *X)j��rɨ�����%8E/�M����hٹ;x�%̸Eڻ�~z?���0��� �^ǭ�<���P�Mu�d���7C��/BV�W�Cr���8���(j��u���R2t����z�t�}'e�[�lqȰ�hW�>g��n���>���Ùث(��"�C.?J/_@:�|;,ՃX��5:�g�@���2��"D3�a�z2��z�3�Ϩ�=rO�bwճ��)���nr$v�r�M��'���}G�[�lM�'�M�a>��4 {�$�ܒ�w �J�COK�]s��p��ș,���?�6�m�. �o4 �8+�y��c���kr-����V���� ++�[i{>�u�<�9�l�z1�n����l{�>��I���aۻ��*İ_e���&� O���ov���g������v������,�d�C8;#�1� ����xa8�R��@,5c��h.�`��4��w7��1�m���́+�8ۆe�S�Spz�a.x�ŀ��X��-���aOD8�ӡ70��5����9 �nAq>��4��������v�ٳ���c��4k�l=b2�G;`vo�'yh�X|����CҰb(�����c�ː�r2��(�ә�B ���������w���PC��"��1�+QJ=�U_�����?�R�b<��u|d�qt�(�@���69G ++J����त:��W �1NKCh�^����e���$���<;VQ!�䃟(�F���Wb����NG��,��,LЅ�V�6��6cY쥀�سf����?�JP�T5q��\�� �o ��B���(%3��{������#�m/H��'��j�j�U,ܱOSD7��<E8�����H5q��*W��n����r�R_�Ø�Ҧ%� 2h<@��3�ƴ��qu�T��#�<�C�>��>ի�Ո5&ƞ�7��rE��i@8�q�ec�5`��ۼAC��c*@�=;H���V�0Q/��q��4�����`�WzS�G�H�H'���`�<q�#�|a���0�0�+�,��ȳ���E��XqV_�1H��u~va�WOC�����}@���EguP�f�.��&xK���0]��RI�����ԍ�1HU��N������F={�4*̠:eG�3>GO&���]���&����<�:X��͞� ++�%�ӂ�S,�1l���B�)�t��������n��b;m7�RuE`�qy��p`M��M��u\�� lC�m���jR��a�wN�N>3s�,��HG�ޅ'���5Iȼ1�Me'�n�������Z���;���a�T09Q�G(�Ka��e\�|U����+�W8�pŠ�o�?����A��p������SA+�K?�_/;�ʝF������.?ﯯ���m������`t�hPl˚�jmi+]W�j^�3�1�Z�Hs�K����~�A$M�����<�~�r+� h��צ�W.�GY�2_(�[�n_�p���m��Xo/e�i?��nBpڙ�j��̒��m��H��g�s��,�Y�[��t��_�)b�xѳ�Ӌ��=K�(H��'�U��7{|��`��2 �?�����X���W���eD�3��.s��˝���4GA��A2�����WmV���� ;j�}e�c�j�ܵzU_M�^�WW�(aa�.���=˨��Y_93���K�-��sF>�x��e�G���%�_�ԫ�Y�Ty=��0�`-�ڟ9�g��-��ֈ ��x4����U7��H�y�fO|*����г���S��^����X�rǐD|��N�D0F����n�g��-�\}� �m���$�^ \ ++�PR�"� E��@L����ϵw�����>b��r�>؋�L�Jt��`(Ճ1N���z�?)��ċ}$i�̰7���8��'I߇}�!�*E6�,��([��������V��m���(6,���=��G۷�2�/��G�G/Y ,�¢=�ޚJ���R7d�]���2a��oo�=�����F�?Z&�U�T睁�b�K��rt�h�����#�������3Z�@Yxr�X�Q4�� C���c��f��: ++D�j�����8<,����)�� 8��& l�(��=�uU�L.X1ޫO�pUdžwY��b�'\h�)�+ ����U�Al�nR!e�9�@��{q����ƾx������q(�V����� ++��JW����FI�h:�E�*��}��5 ++7b�8I���̣� ++YIA@�i�5_ {e����4�x^'r�qG�ӓ�KCcG�nh���I��֟m���\��y]�w������Ql�VE��E)Y^W�s6��z�=j�ʼn�j 0�B�]�_ ++�v<Lƌa��Ǡ�q"�7��.��U[�l�,�'�\����8�w�|1|�:�t�������6������`��_��?�;�_����1������m�R9E֠I���� �W2zAsm�|�LEk(�(5e�}%�ݫeD���vZ�� 9�xj^��/�q�'g9��&#��]�q�7\���s�hcC8,A�Z�S����`.Ǖ���@����}ƥ#?M��p���?�'��2# ��F�n�u�4�-s�uN�31M��Y�B��y}�0�J�cR*�4$��K�L���T�%�]�!�����a �Ӽ� ߩo���)t�_�!Rr���7�5/Bz=Ҡ{���rŢ���'zBH]�v����,�^�nï{h>��T�����c���;iy��=��[��S�h�Z��@�����ɹH�8�E]�sҒ{���9pT}r��O�O��2I��{��ʉ;_���L>���1��O��T����u1�ɑÝ�m��H��1g��ciC�A��{�ztPW;�Ih������~���.���ٸH� ++}0��b�� u�;��p��/m��_���l(�!ܐr���(EEg�8:��wx h���8ŔT��sE%�.=#��<����`(��3���-YF�����FY��������0��2����#�z.�lՕK`>!Y!�Ka\T���[r1��0�!Q������!o2� �s|��q�C��\b�>��?ŷ�y�S�Zq�/q ��.����� �t+`q`x�K��A�Omr��@���.X��� �6�fp[s����U{���^W���f�3���!�%+��Ȋ��u���1��1<��2,�vA�3\�r8x /s��$���0Ȩ����O�w�v�K��^ ++��-�ł2G��x�x؛�!������nϪ���zV�:��#�S 8���dO��c�r0��]�6�Ԏ8A�ۢ��4��������G�D�n���D����p�S�,�� ++���|�O�8̸�w���|�}U�}�iv��N�8~yV��Eu�9�Kc�e��K�����;}ǝau������-Yvz�m`s�p.�:�Q��{؞�"�+�"�O��� ++�:�з��Ș��g�;�Oy��v����� ++�!�jH����&@ $��7'�Ғ Ew��fsdO����>@t�ة��6��XR89����Rk���?��* �uH퐀��ވ,�9Y���`q�<�%gW��ЯӪ�P0I�D"w�) ���P[���k;ܾJ�0��C�4��7�RÏ( t_�d���S-~���S���=���J��Q��aq����1��w�����Wk�d��6�q{��� ++��ƃ�܁V%��}V��p�GH���Y�Z��W5�1� `�9�P�~�US�qf�,͢�)���δ[Bn�� �bjv�t`��w����F��[;1A�� �p~h�5�>3��.�Pw]yޢ�vx�A����5{��>�1�/BԗT�O�8�Ƃsf�����3@�1`��b1�� |���\%Bsfo�q'b�a��ޑ���"9)����3�@,.�Wa��e�a{��z`�ߞ�N ++�J|� �r��N;���qW�oh��LCX!/��W0�d�զp �)� Q��WN:�;�N�F(n:���ڞ�s�.�WNt"�%�5wGZb���]܅k�>JIx�ii�&��0"���A� ++���mG��\, P�G��'�'��Ċ�r^����^q'"��q���:���;2�I����j��S�6}q�Sx�ȻX�쩻�cO��y��IO�M�����Ѹ����F��*�T#�s}����Y��!��UйYvCдں�#U��F�y$:U��ͫ~:�aa��{;|�X�?��[}T��f���-��@YOF�om�sz�53�n��-�3ף��)~��I~�T��e����]��u)�[f�������F�������`E��rc^K�Pv��0�n�~�Q�b�+[#BƢ>Hb+�hV���;[�0e�G�OXw�n��v��)�rk�a��$)Չ�`�4]�����tH�ó*s�dIR*,�?��HU���M )�u�= %��R{�S�L���+"��Z�ҋu0���G��%���G�v��']tj]��7{�6�10o�-��3 �Tg9E��a�A���)���dؓ��U�g���{�0�S��i"!,=@��T�=g�I�*��r���yv���T��Q��bM!%�6����,qV�l��������н/�Q?´���oϼ�?B�0$3�q�0��u��X;F�f�^�Exܞ�kI0�HE=���ڻ����#>o�*��ƻ ��f��1��H*Up>Y��zK��~!�F�������;�4g�d�"�b��0�����&�@��h��s�>f���d��#c~��2��� 6mn3�V6*��C��[��ʩ���xH �0BX.�cE�7Hrk�]t���4�k��d"���r�w�%��0/�%,/���-V5�$g��,�t_�g�/�{F[s��Y,�����u"��A2&���wS�l4ʾ��v�4�Fe��p�,�P��{���'CzL��ଲ���d��M��w9 �R�]��������Pm ++��~(�<>I�7��.ǝ40�������v���vM�h7��+�^�[٪7�ʜ�'�����<��П��e؆g���5}�=vR�h5��p������F�������g>�����r9w&bw��|������;��>��'�r ++��DZ�\�~t&���O � cwfO�i�2d"����\�"j�e�+0~u���Y��\�0}oI߯��>����O��L�;��<�^᧸)�",[R?�,���h9x� ���W��A��賉�A�7��#��{7���~C��&� ++V��ѐ�t�3�� �6��һb����'�Ɵ���W����g���Dm��w�q���h0o�췌�7,�̷ҟ��d&�- �����m�)=�@d�IPe�x���N3��5�����˅-:8��L�O���b����u\6�ۅ�Y�G���S3'��#L!�H.[,��t�~�20yK$<�I���_c�.�/��]�p���*0�l ++��nA�+A���H怒�]f�D�'��n�����[���Q��~� Gv�����1���:���V̌F��V.�iӝHg��dk{>oU�؞Wi>R82��4���,(s��� F����#�ʘ{���Q�W�m&�РPĻ���uM���=��n�!��s�+_3c^/��/��Y���e��J����� ++9�q�p�Ү�Uk�N�h������ϓ��i+E�1�S���|�iP�ac�jөt8�%�=m|]3 ++y�����GP�澢���Tn��)���n�^����+�r�N��k�|�W�#� ����(3w�����16���F�;{�m�O���|�Af.5[�c��AnX�S������\��^.�r��q4�vMqV�'��=�>�g�'��%������XD����w;01��|o|(4ߋ�9���@��~���߃�f�ɳj�nƴ�S����^��Mx�+��|�T�� ���*�8 ++���{�?�R? <�ݳu�lr���c�����s �g�hF�Wd���!� ++ �3$��莽ú�C����g���x�sR!��{�_�����Q�X������#��3��<<� (o`A{=EЁ���"յ�Q ++�e�t��)��Y�B"�#x+��i�m��A!T_��X�x$��_��D��E�����<�Y�<��&�Z8����@�� ++`+���I�L%���!��M0��&��@c���lt�)��!W�"��{a�G_�X}�Y,!��Ă���φ���$;H*�a��o�wz�9\�Q�<#u ++�Ee����pd:����>�t�e�C�C�7�9�A9�{��h�?_�+1�q秊�^����I?��k�g:��?� ��<���,�j+�8��bzdW�A��s3��h�꽻��f�2x���Q�^��:� e�AJ��\�q�B]W �o�� ��=�W�GL$��d7+���g���Hc,�h�w�l��®m�mD���xCX�g����Nϲ ���j�f7��B�G�#,��70�To�4�m�s0�h'4��܇�hևk>�7.��y�R���`�H��SG_A�8W�=(Zg���GTA٦ϝ5�ms��*�?lɊ(8w��{��*?�N��b9F���6E���\%~ۯ�f(�y�6�Zg�1�>���56���0�~�1x�'����hc���x�y1��2���;_؊�"!�G����0B�q�'ˡ�D��K��j~q5��1;25R]�c�mӁmT���A��S�[�K�v���] ++���ڂ0�nW�+���$�����Έ������I:�ҳon3�����'�_�y��}�Y��ỉ�q�9 ++��p>�A����ø�9i�f5#��M�tZjO0�H���MT'{������fN�����nI��91D<&X�>*�+���A�㮇�e�1r_m���a�d"�d[.�~@h�÷�1>yB�rD���J����.l}�ǹW����i���t���db콿�j�6~��ٻ~�Bo��v[��XQ�s��ʅ�M:�Q�\�m��'�ĵ1�E���pcOL�d��K1����Ø�pȥ)�k��8m����2��:@e5�ʕS���mim�cV���s��F�̘��r��b�Hf4���_����:(A���,_��{*��f�,�b�fB���.�"�� ++�X�xAL���8X���a�����q@�� �'�b���)`�4N��7�=����X-L�!Jx�y�l �ݫ ;�����D:��/+��9o�7�UYx�R�ۃ�}m�:�;�\v�P�"[��������C.���,z/.��+ӧ��̘!SΛ울�n LĴ����}����l���;�xԈolvZw߷�ޥ(ъ��h�����z��LS$V��q���2g�n�Kޖ��3��Q��y�2��$����~�2ڢ��y���!^���T��:1�����Kt}nu�3%S���ͭy:S����t��K�$<(Q"B~�l� A�� ++<�*J�y*���*�U ++�[�\_����ܖ\L�ڈ��P��P�e�C�C�̀��tpuCk��V��ަ��@�w9��d����ʴ��[�,�-��rY��E��>����R��1~[����6��6�L\v�+Z�؆C�5x���rb�{��Y�ޣu�\���u���Cw����m�?0e�Lc?�4&Gx��E�M@�r������;et�0�p|�.����w��j2Ց�E���d��;5�`;�����2�*��avTλ��>kF���V�x.Q���$�%e����!����^ �\�2Q���xG����E��J�ESM���3�۔�z��l4��V�Ux�N��GE�5�r���~���Y�8�!]D.?Yi� �b��Y(8*�iE �Km?�I��9�{�}��;�f���8c\ki�(��O�� ++��m�����u<��6��=?�%�1�A�h�w����͉݀�\g�q�Iee���z�)���G�uz�2�� J`n��]�Kp!�?ڸ��)1|4t�a9W��"ϻ���ʁV�QFVrp��� !�v�'��8��/0l�P!�h�Q���E|-sE�� ++�Gk���=�tEt^$�_��)�h���wu��_yj�nфw.���+�� k���iAqp��(�e m�[�I㲿H��m<<W3R�b��-�kX�pt�-���q-L����,���c`W�jwYK�z�����m�s%�Y�j�3;B�3�K�9N��U�9E�8�WU��R�6y*�I��[=|(��|#|JQ�1�L� X�&8�q�(�߱�g�'���jz�t�F��lp�m����-%�I>��Z�:��b�q��O|�m��_d�=�ZK��&{�r��H�v�H��� 1�0,U|�e�x�� ��W>a���噩�j�E��q���-��<�N���%)�o�;VH�$DwU�Ҟ��Ԧhӱ�w���/?4��܃��/Q�*���)D׳�JD��J�Z8 ��9t͕,�5e�[D��/ ��sn���Q0����"I�?�,�<��ظ�s&�\c�Ħp�K�R%��q)Fv.��!�L�x π�����2rɆ��8��8_�yt��_�f�3E�L��<ݶs FDW[."� ++Bep3������6��V�+�Wd�@b+���a|��uª/��"����/�-�t�!I{��)�U,�<� F���~��P��p�Óg�pTf:���fG�Ӂj�a���p#w�[�F�U��FS���ϑˤG�Gତ�V�rkd�E D��UY�����{��6s{r�3\���2���o`��NE_�<���Է�Cf��n#\.*"L5�p���6^Ng,(�Y���qcz�}�d��ߏzэ�vZ�nd�?t�>H�]nB � �[o��ۅ��YSa��;���zF$JVg��R��p�1E�8W��N�Ֆ�P��<�s#���66�QLYU�e��p#���B�J2���'��&X.c��I�z���Lz�HnBm�(�i�����㰀�xa�)��6����A^h�SAK�Q�`���Ql˚�$�aQ��?��2ƞ�BC��1�4���v�f������㊍fK��!�b4�'f�{�'�Zc��5���s�����+j;â����pZ�/�SUp���oy�C J0F�Q�[�e����$�;�"����z�\��O��2�y�bD_���ĭ�A��Ӗ[��}�l����������~�+��>E*^���2֠Ö4h��N�h����r.0�7�Ž��@�v��CZ�e�+��g���͡���ӫ�.��Jp����Ew�����{��9[��k��-s1ΰ2z�^��Ϻ<�Y�}���Ӝ�&�vCZ��,[!�y�V�"��9�Iw��|r���v�ý@e���.���9d�|/�s�Kh�3UY��?NEB�Y�X`�4?�LMT�P��x��K��D�Ρ�Y�0� �;�J V�<���}�T���?y��&�b��僆�f��,_�'�_u�/X��)T�F�I!1��?�����B4�a�-�|��|�R�Jl��as�?;� ����)|4�=%`r�ïk�\ʇB��d�mw\�pvr:֒n�P>�/w9�B>��X� ͒���=,�W�m_��(X�$�m$Nǭ� a�:�U��s�7�0P� ΐ���N�ֽ�֮�*'�Fg02��)OpI��(��� iQ��n.��;��Q�9�1Ԡ\����.B��b�+��Q���c�r�"jӣ�_%���C y����~�#k�2�<�*h:Dy� V�>8�{{�/6�=���2�:�ϣ�aE�s�� ��?@D���i� �;�^�my��0�����e�yȤ�c��T���4�<F�˹��I)����O=�D}�5� J��\B����^��(��^�ư��b�JL ++�Se�3��)� ++S{#;����N����bƱd��9�����(��>2��֝���l���pi_�rl2 uG^</�p[��D'Ygڎ<���n��*�w�"�J��o<�w���=o١Z�k��O��u��N��Wq�:\�$s��8�H*�M\�����ٖ���z^�f�ò:w���Q'B�,�J�.�<8 ��'mM�/����W���c8��k��{Dʅ����~IHh,�ۋ���w��#�)(6���mXk۾�r]��Fc/�G�L�)!��ߐ��?���?6��P=��!8�Ж(�Q�+Q�X-�RS< ++�.���� "����2p��.����1��L�9����nةV6��W�o�6}Q ` U.�\�kݵ��v���E�e;ƺc��Hwy��?��]/M�w�>a:ez���eJ�܅sq^�������mxJ�ߪ��ro���hF���y�N�o9g�D*:���l8��'��U����%@�E�f�7�% �.���-��"|��w�g8�71���H��5h�u��������DwV��E�� �0�TQ���6�WgDo�m�C��wN��j ++3�$�Po5��G�V���+o���_�h�K���/��f�x���q���0 ++1b��"��_ O��g�]zQb ++V��-���}��F��,)[=b~���m��d| ++��gR��/9?�����n�3Ha���T�R�=�} 1�}yA��A�s��t��ȅ:*���}����`p��bƗ�m�v8Bů��L�_;F<�����U��շ�5��Y�������\���D����H�^���^IB��"���a���&-�)ș��q���hXb��������A��T#p���I(����Ho�l��;�[���\v�)4漼����_���V.���o��ԩ1 @e��Y�T>���y�2N��U �x��u���6rs��gbq�4;��5�w�7G�r�M�}~ڰ��\�q�?�8^t�[T�,���ߨ�X�:Fz7ݑ�j�ݞ�xr����{��Y��B� �MX�&Qn-��jY�����[���������cSg���a�1��s�,�n�� �1�^SS`��v���E�^�54�C�j�ɺi{-�V8�Y]I�G��?�M6�b`����DZ������{��L@f�Y�$p����Dym�%W$S���BTv���{��YXz�SX�O�r*�w�i��5E�:i������Q�˪�2윏�da`�7ɓ���Ju3 �?�j���י�PX�,i]��=����C��0Ek�w�_�r.���S����A�DŽ��u%K"�P��M1-dЅ� �Q���W��F�xY�s��:k�I;�캦�W��,����nI�뷈<��)hH��`8�1�%�z?���E���eE�c\t�nI6s:kz���8 ++Ů+������"m�2���rR~W�9���7��I2��\ ++ӣ�f��n�b��H�I�.�*����̮r&��a� &�������;�lON��G�����˼4���]qGI��~�oE�:�Weh>��^�q�(�������E��W�z{н���i��I��*M8�u���O���ߐ��� ++Q��v�MK��bvt<Z�]��V�Є刁�˚89}'���3��`7 ��=�}�P�iHe���q*�=Q�tR�u�Q}���T����H�T���"�}�ai.]��Y�t�� 牬���g�p¨�S��1v(~����W9$���K��s9�� RlY� ��m����ټ��͛�2�d�z�a|�v����Y.�wT���->����r�~�䤏3���b1;Rs\\$�3�a���~鱗���Y}���P+<�־�B�ޑ����m��߂&r�,��\�)(7(��r�|��#-�T�y��>��,�M��ĽB����铞�5�zlS��'�D|�YWޣ&P���:l�+��k�} ����0��1H�����2o��,�nP�'���<�G�Ǽ��2��y_�9�~r ��&�9,�=w�~*�ӤV�wPc�Ag�����ԹpB�ޓK������n��8�SS�Lb���L�"�'1��Q'�x��ؒ0h�������/C�(i^X��m���K��B�b��L�7�=�|M0�s�Rg,��S�$ �oب6���p���W��C��e��@�֨h���1�t|.�{�w�X�o��Qli��� ��[Zd ++Z�UJ!ρd��7P�_dC@<�Ξ�b91��[�QdZU%�����}`x��l���덴��f���g9֔ڮ+�(��6�xQՁ��_EA�w�� ��;��IC1�I;i�4SVrk��r��/�KAŨz��t;f�P37fk�,��*�;�'E�Q��v#B7��)~��3?GG��k��Ɲ�X{�7z�E)����?��t�RK��)� �̞�D6Y��)��b2�^�)���`R3ܛ���w���[=Sz\ދ�,��Y!vS�f�{ׄo9�c�X�*�K]W�Pܻs�~�g=d袡PLJ�JT<P�]Y�#�$#��b�*�|��8�A���J���fM��iE����i�`7/�i�H"��a1��"S���w�ӪW���e�/z ܚA ++۸�E�����L�|U>Q��C��Bؾ�4�Z8�ƽy�]I+�#e ++�2�����n�py���I"� ��|��p�#�k�Zݞ���#`�@ ++��� ++NS�0����ݒ�0���m�vo8��g%cz ++1k��BXXv�}�0R3���V@�&�S��d�!�ib�~o�����|,�-T ++��:Eutm;�2s���{:��c�A9)w�p�N�¡�l�Ճ%�ʬC�j�6�a��k�Y�k�[H˼_�����r9�D0`����(ېW�E���ju/�p/��Z�~}�Vt��E@+J�`,�w<[X&��7$(��W�M�l��_�ى�ϓpW�9���:E:�i�Q!G1 V2;��ձ[=ݍǍ4�~Yd��H��!���a��N�2������n�"�I�/�c��Վ���-��^Kih��6�͂���x ++�J@�����a*{�hp��� \��R�������ʭv��";Y��*�_?0�����ɮ�/�\�r���±ݰ����.X�Te�Kwʐ���T� ��Heֳ̝��-I̠�j����/Ro������ټ�)�D�{m�ֈ�jIJ��)�(�/�$�=����m�[��ʟa�?�H��I�&&o�ǃ������TL��ڐo�醢�d�cY����SS��E1�Q'F3�_mS�� ++N��I��Y~4�g���v��"���+�8�E���?���Y6�i�\�7uVA�z�vYq'b�1F���^i�Q�p1����(�nu�.�Utxћ�_N��Ȼ��X@��$����纨���A�r6��o^�v�e�e�N�GU��tQ��N9ģ#�Ģw4�<z���j!ذ+�m!���B���آ��0��C���n��l���������@�k�e��Sh�(s7�9h<�Ǧoe��7��D��q�@����U�:�/�:�0� �,0D ++�&��߶[9R�'��Piň��� �����J���[{1��lz�_�n)�!�&���ۄ�S��A��6*�q�d�cy*��< +����|�W�~�%���<�_��Z_�?�@Ɨ\l�z������������x���@N@��O�f\��PvB�щ3���8�E�{_s��N�L>MM��Be3��gX��Opö���+A��Q6����qw`�7�V�����!%G��SD���8"H�3����m����S��������G�-Ҡ g�D�yk,�#������ͤ ��Lz�1��|���-|0�#�Q�|"&E��V8�~�����_�:4��|�b/-Uc8� ++��\Pí����)/�zw��T���Ŀ��`q ++�������:�|�5^@�eA��3�u)a:��(�Q�un�v ++Uiq؟�+���EMt�@���"۶)h�]m���}ڔ� �X���$�mp���tT&M�~� ++�>Jvg#P�(YDdv#0�Q]�źS��A���X���2�d{8Wg]�8�j�^�&�b��o]����6�u^֩��6qr.#TO���m� ++_a慹lh Kx���mxΌͣ���#�D 2ǃ���ڜ��{�Xq���l�b�0\�\(@~�+�8��L���,��.���Kw.�q�8�����j%�2!bEw��>�*���V�W��$ɣe��$F��_ �z�\֒[�zC���70h�2��iξy���p�_��l�@Y{�z�n:LV��{�0b�@5���s�T-c�0����µ�k��C.�O!&o"���Ƹ7�@��h���E��u�W� ����Qu����Tl�����2�Z���;�q�6��/s�n�6��� ��Q��ٝ��r���T�SO�s�C��[c/���Hdbp����-�.�����Z��7�c^��qڑ���o�D�)��4����G�Fxj�f�\����y3p�J���G�:(>�L�Z�ڡ|#�$�6�=�M덾����j�]�Z���!1Q���Y_����νi���u�a��Ǜ�T�U+NS�F8���_ehɲ3#gO�i�Ļ3~E����\.}�SJ]���� ++�C���Lcx:�A�D����x0RM��px�X�B����Q.9dλ��Lqy�U!�\FM�)��3��b�`,[9A�ɟ��6�ěO/f�qx0��&�������̧��!��:���܀�@�_�RJ�D��� ++�3�������php�R.r�sv���c���&4���8�\�[�x~)��)��c�-��ҙ�8V�<|x�`��������&ht��ʮ� _ɑ���Tg)��nk�����Ɓ^�e�E����ϙ����[}K�Վ���ɴ1�yv ++kC�c؊Q.������i|*C�Lo���{�'4�d�Z��l�a�t#�si���@�ũR�a$��Š���`� M�������G�x�g}i{4br7H�e�Je~��� (NɀSD��ML�\�7x��3r[Z���첔K�g4���Ȅ�j��Kk�#M�����08A��忒KC.+�|�CG�!�B�"��;�Ȅe�o8�?��][�Q�у6� �$�A��22X�:o�F?ѹs��X�R���3�q�i��ފ��e�m5x��ʘ���\d���Ќr��&X�Fu��Bb��ּ��f�#^`����x�v�Wڝ�EЕADD��î`�L��I���ρ�n��I���x�&�u����#�J�C�}qu|-)�/ﵠw�y�0;��횺��=�v���+ ��hfH�]�P��Bb)�#��S�ҏ0{'>q�x���Eٚ�2��2^oO=kwC��,z�V�5�VJ*)Ygك�����>�Dn6f��L1�Я E�wy̹�s��P 8�V��zKd@2�<������Ҳ~�n9a��A���E�p�w,�h��^�Y�qԹ<��\�6D$�Q��A�k�2:�͡�e�x�d���)j��IS��" 3f�@�,�6$�Sh�c�.OF:i��e�����e�t������R�-�gI��i�X0��o;3����"y�n��/j���{���,�L���e����.L �s�7�½c�C��J'��iP�n@r��@�f������Q$���iƝ���Ҙ���/�C���R�IR�wJu=����<<��b�A!1j,�l�(E�Ћ.���t-��(�±�Q�:PffZ�1n0w���Y|"���r�f ��*3���<�i� ǯ"�c�R��tk��|�ᔚ"�8�a���Z�> ��kÚ�V�vȊ��]~8���^{��PVQ�a�Π�|���ᮒ����z�m�m.���N� ++p�կf���p�A�A��p�z�ލ�t�������M���U1)�ϭ�E�h���¼����7���@���N�"�Ɛ�$�5��l����A0)���Y�臣%/I�EL�Is�KS�~�N�,���I�2���"pa� AQ� -}�"l���nZ���C��>�3����=�S�@�� ++s�qU�LL�զ�Rĝ�?�qBy���e��ׯ�˞�(�k���ȋ>1��e=�H� ~D��{،"��r֭��ӆ4�b�I�?n,/l�\N�U͋e3�G{���.�����e�y�������q�T>� ++X��~����{��Q"����7���B[�H���($��d׆�F�TăQ�`��;tB����$G�~E�(]���xJ�T�)P�?z%�+*�E�2�!3ʇ�����M����/OT�0� 6�������@Lo�`LSRB�#�j�������ㄠHx�H%LX��Q���|PrP�cJ(��S��2x�Wx�ƾ����y�U��1�_@ �Tx<�HO1�ӹ3�tO�*�K�T���?''ʌ�&���m�~~��)A���R����DЦ �QK7%�Y��$��m"pO�^�"���pr>�'�����y�繻�p9AҷU�+��>Q~� ++� �/��I�3���4��c��iB&�#A�S}G�V��9���w���/-��c�Ou0oO�O�&�>�$�)��j�>�ׇ��iʝ��k� ++�%��o9)_�8S��:n����q(�[|�&���i8n���`ZRo(tMF�����f��5"�c�y �R`ؕ�~�} ��,�Q�8є�{�p��n ++J�����8&�"BpN�o$o��j��v�0�p�5cj�<]IYd^_3~�ϖ�YX�/�1�f�)�-,i�|�`xu,�g� �T�f���[+ 5.� E�.&�V����£l�/�_2u��Jê6qEr���H��>.��]�0�I�|�UE��+�d.O��'����{�^N�W�rK�څ�u�#���,������]��M�)nȦGle��/�ü��Vl�sSl��?�=EnT�50���_Gu~�BK��~�x��[�\�9ȯ�S�J�ks==Z�sr���Hs��#r�]�R}��5�t$��[k��v|�����S#�}�`#�ɪ������)�54��+i_p .�)NM�Ք5 ;�۵D���'N��f�TaXL^�T��5���O4�S|��.E�:��A���7<H[�8E�x|auF�U=��8���%�,�C�n��1-,c!aF �Q!��x�#'#��;�l�8���W/�@j#�%3Fdf1k�l�E�f2�?��r�U��!\�P�.����g���{��"sEjx���Dk��Ks�U��s��������<���v�e��s�8�����pڨ�.\�K�?(�[��`fW��DtڽN�dz&q���Pܦ�ҞK�^8ǼK�wb�#ˢ�Ʊ���"�A�+1�Źv��د�ac̠��Zkb��~+K�`{n{e7�X��'��t���3qhJ5FT�����14�|� �/@W&m:�n ++�27�%n�d?�9���Ht[�m܇aw��AB4� O�\��(� ܘ�E��;<b����.��y�Rl�|� ����H�o�d�(>J)xf0}��bH�۠�@�A9�ϋYv^^gc��h^yPϱ��&��~}~��w�� w.Y�\.�D��H��B�k���y��R���cl���!nG��)��F`S���'��3��sΉ����9� ++VS�3�X ++�17����r��,X&����I^��#*hw9�SG0��@o�滍N�=���詏R)�Qm�|�!��AK��"Z��g�c���K���8�S�4��K�?m�����qD���~��g}�|��L�s���������ous�xWr��<�W9V�'w��)B!(�)��p23���ic�r� �$B��# ++^Fck�����m����m���M���R9��{�s<����'cj�;_<��}�Y�����]`��)����U�_ �+~���e9:ݟ��*��� G65� ++�vB+�vﺏ(�w�Z�����ƶ��g�?�P�s1N��Lۦ�}_�t��Ί�I��\� �T��e�s1K�t��U����ώ;����`� ��;���~�jr�'����;k��vc7�حWgr���8���v����� �A!۹\��I]ӞV�2�H>i~|cP����G�P*�bq�U�~ qJ�b4}/�+�zݔ�����a-o��I1���ɐ�k�ڿ�"5�/}+�p����2�.��oS\����Z}*�i������y�o(.�i�ߙ��[�;�!�s�2*�=�Ń��;�mj��?j����-�������6�J ����&F>���ן�&f��Lj�;����Ђ��������G6���ƕ���q�@����|���D���<�����)��6��j�H�H��EW�iB<��t8�a�c��x|��r�t�1�jI�w��L^�ot�Fq����^�aƽo�����@��� o��'%�ۉ��z4u��n_�Xݷ����]�n̯��\^��l7y�; �:z�+-~{ǁ�X��w�6(�G�������v��7C��.�n\�x�����"�kY$v�����>�0VG��}�N\�"1��t�2|Sa�s���~�V�Y�o�/�Z���a�3B�0��/�3�\�ۃD_�#Ն���$�ڜ�}{L�@se"�˪:��:F���Xw2`fZ��W���+~�s�|�N�>Qm�߿���v �qXzLߐԘ�m���Y0Wt�+8�S0Gݚ��_��$E�� �ZY{ϯ��dY��5<�;��f0���E��� �Vp�@�`��u=�������?�^�DH�4h���z�7�I�� !�O2&q�Q����%Z;��YS;���[S���"�l�5y���'�h��#�a�4�~����^��4<�#��!H����4Lo�F.g:� 4��z"ğ!��1��}��{�+�98�JL�w�s<(�ڈ���."��\��������@�83{�=i=�2/��A��Zԇ��"���`�>��d� v)�M�/�� �����:�U0��+�+��X����G+�N�����NMt�=T�d�������TZC,��H�Z��S�� |�]� �BY��2:��$V �ج%����D�J0������gF�|�)��z�h��3���̰��:Oq,m�:Y��y�y��z�F��FFP���>&�Ӷ����� ++���!���0�HUۂ^��x���EcvJe$MH�q�Τ��i60K!���l˚֮�8�bq�� @������W�] ++���f���.w��JP(ˋĦc����e�"LntU����GU���=-��<q�<�\Y2پp�BU�"i�#���yJ�^x��22b�!� �9���9�ZL͍ ��*C(�[�DX�u��g����g�J����!���w�����;�Ͳ�]�ݞ�u+O�߭L�7~�(ߢQb<����A�#`���9* J��&��J��Kuę�rNJ�{G.�|w��f_q�)a��M{B�Q�0��U5��>���ܜԞ�kп����+� ��LH��Ƚ]����L��;�ҟ�6���| ++�L�˲�Dh������p�H�;X��h�O�@�h���O����m�A��4��]M��iO��u�[Rt�V�4Վ�nbP;��UU`��N���4�K�ot�˵����uE"��a�VUrw%����[W� �X��� ++��r�X26Q��Z��ʐ�$�cA7�=�i)Zю0�lV�㾽R[� ++`[��|�����7�f0��3�h_��͔6H�T+ROq��bא^�6u ++������ �APz$�v����a�eZ��,��q�� ��\ :��+Ł�,�yq�����䤞�L����>��.�d6�qډ9�&�n=�&�UG��)8�6�]`�=O�����-��H�����$ It�Ƀ���ί<fE�[�� ���p8Y��bIZj%��T~�9��r�jT�&Uߔ,�C�F�ސ����I�l3j�d���G����L�-O�Lɞ)`4���7��(_�4E��R�"���3�/�LkO,����_�|�ɡ�|���Z�@4_%�_.�mOKG3~�KH��S� b0���������3�Ȳ+�;c^^t��e�(�t�E�XCv�Fg�Y:��y��Ԫ��m�b-T�������N&�p�0�|-��PrD+ s<+��04�;��D7j@��hH;�&�0��q!f��}�E2��.3�5q `�ʝnЧ�2��7�X�Zn��?�b ԕ���T R�������2l��vJ�e�r_F��ܵHb�#�F ++��5���������<6�w�z�I�|��0Zςk�i��#��"J�~C��/H*s���U`n�t�!`����lv�/f���' ++���ezȸ��t�K �zX���� �ꏯ���@��os5C��W�c�/mv]Ʌ�H����&�<bz8�j�y ++�(��n��b R�}�yJ���ƥ���nr�~�(�ק�R`�����L�瑬֭S�� ��R�_��3�<�{�٣�ɕ�y���V�v r4�ҮC�۱��%W�~���ٟ�ֹB�ʫ[!q�Iځ�auld+׀p�Z1])тؘ�/dA<�.��٨:�@�R�x���& �|s����Ig��u�O�ܓЮ��;�>3��W!����6�E'�j��������v��0������ߞB*��5��'�㋹Q.��I�d� 7��.q�S�S����d���~���s���Lp܀O�'����)_I�sy�Ǿ �I'B9a�WO��T��} �ź��gU#X���tM����nT�TI�@Z��/��:��IM��y<W� s/qsN��A��v�DwЊ��z�-?�e�� �m� b4��4�)n:��5�L���Q�#���/磯a��pP��#]R��cO���p���nf ��$@��nu��*U�r�F�^��\+�N!��O���iՂ:�-��i ++ &a��!�QT#Y��~�RʋA��dЮ:�p�;�k�{�b�E�fuO4���hEʨ{�'�� ++�'?s�A��r$�e���W��D��_��x!(F�"A��������Pk� ++�wf�3M[�2;uC)�PYb���'h��v���Jng��J�n"'�⫍`���ƌ$���2V�u{t5�υ���x۳�З�eoC��)A��?tʎ�~j�1���T�k�.���N܁f�,&�'s,��5,��C�=@�C8⑽�E|�跞%�ЕQ$<��~U����X5�LCl� �3^�:3:D�'�\R'��x��L8{<��6R�����p�E) ++��s��3�-$ꐪ�ˋ�;�g��D}msCrN��O����f��(�r�,����[E�8He�B�)�d�"�^�4���#.S��|DE�#mK�[[�H"r8�zo+P�鍱�˳����t����P�C�!�NĒ�|1Q�j���|��<ô�Ly���B@��OM_��2c#�dơW�� ++�%M�'[N���q��لP���,j�&Jj����y������x�����͔���kX�\ ++dC�W�w�<��������.��5#|Z�����ܧ S�%"����O_��tyT�xe�4�';�L�q�Ut��Yg�G�*f�m�|M�9t_^3YN1�c���?j�^� ���D�g�a�=NJDp���z�JP}�zI`w��q�0��P~1\��u�0K�g$$_d��)�2L)A:@���*�v�Y��C@����P�wC1���"��s�)s��h)�D-<5t�Wn�ۏt泠�8�G8�MG����q|�wR۹��q�'�#�����3�Q6��i)����M_��{�"O��.=��G�.9}*qĹ��ULb� ��\t�R)���K��d�!P��� B4����=0S��_<+�&�/�Q�����^B�$e���-�b���&ۿE�),���EM6)�*/���q�^��m����V�*=�y�3ݑ�=Zl���&T�\�Cy�^��������e��y)��z_��\��֙����-�Z������y��2n�;�N����^)#�\[�Ry�M� 7��\�|�����d�ғ�Ce��)�-kU>�ƾE+mZtF�m�MWt���ύ��Z��z"����Щʛ֕0��,Zl}�q��R{���S+,��c�刂f��Q> ������iL���/�$�E�?+QT]������X�F%K��2/��\9��%�m>��X���M.� "cS���:^#�ApVn��^YiT)5���F��4YIR�K` ���7Z�-�:G`�/E6���Z�8��Y��C����\-I��˰��~d��7��U�-�1��� bv�i��y����uo�u��,� ++�!xz�1���-�ǺBx-�>��5�ͱ#����f&�����d'+�kH���W��߀��sˈS�X���+Om\�$��Ŀsݞ E0���GD#3W��e`�3k�-�Fd*P�#����It[��3�l^a.��v��L:�=���z}8 S��1���g�B��N�{4>ߣ�W�$G��E��h0R�ǰ�u6Nd����9z6�T�#���Aﶄ�j/�� 0�����R��κ<I㔌6�lO�QX�F��S�#!aOO�c�������y6c��ŝHD����'{���ZbQ���C��L��UO�-�O �W,��0�m��~^M����_Sd;͂o����<��x����Q�mӀ��i ++�b�![��N����)� ++ѻ�6c���|`oZ���H�HA��)t���M��q|�@�{�r`!W_O~D+�����8ހTv���u/f�(2��w�m��7_1%�F!u��⻧�%��>��h��P>���,����q��rL��V?ˊ��B�����~FtU�h��s�a�< ++MַOd�kDJu��$�be�AJ�����̕�79��'ޓr�iP�'�)�������F��c�3*���V 9�C�7,'oƩx�J���B��x��Q;uX���V�����ӽQ{-�%ڲ����)�Rs��Sp7!�6u���3�l��R}ë̗���\GzB0�H�6��"�@�Ѣ�?��(�!���a[� 4g�EP�N�+��|�j�z����y��������S7���{� �(w,���OF(�h��]�x^��9�es;��%J�(mH*U�c��)����c���~1b���Tc:eL��"\���]] �8�CUt��vŝ,R���������)��F|S�hr(����'��2���rF$�� ��s�Q�-L^���d�"��xF8����ކ^d���� ��*��<�&�P�)JhnjPs[ࠔ��<��j�Sh9`�N�[ؿCP<�, ��IW�1�� ++K��cY���W�k�R�{�@?�ɛ��S��^�ϴ��[P<M��Ĵ.")&oH�o�{��\�|k�[�ײ�y���w�S9� ++���'v�Uצ�h�~� ����ܮ�N֢���l���T�bN�ݑ'�eu��F�$du�^�� =گ+[�bY<�p�^�'҂/���ۄr[Y�lG��9�����/�������T���$�eܢ���O��A1��ڟ�'�5�݈�J�S<X �u��p�_];�{ߚK����dفX�tm��8)+��/w�c�Eb4 �gx-�G�xW��?���[���q�^�s��'�|�qvʽ�0��y�1��R|��/��`"3�J�-�G�_�<��Ƣ��r'L�f��C�%AY�@��_��i%�f�:�A�>^��0vA�i��o�ʐ�qW/���zr�gش�������eS�yh#U2�\����k�h�<�C��w�%3M�[�ԵVӾ$��2B�X�6z�����.u�^ ��5�e�Oo�:�G��"a�q���c9`��� ++�;�e��徼 ���5K�:��d8�����.�2`fv�V���I?Ʋ��0Y��F�"~&�����/K�aL*��f��f?(���ⵆ�p�-*~�kQW�-bN�:h^�R��.�wp�Q��F�&�u���:ۋ�&�#7��xQO���� ++��b�1=�+�Y���E7,4���셟Y���VUL�i�P��*�<]��G����pC��� dT�*��<�{7|������P,.��|/�y�n{cg�,迖U�As?�4�<����� �aw�Jн�L�xD�6�� O�<�G>�}��t��N�����Y��ui1�I��k-zܗ���}�I ++'����Ã*�~�2���a0f�L�}�|NM�ӻ�~���4�����I ++��<V�+����q����M�4rs7�fu�RT�$�,��u���ˎ¢���P�(�����?p���f��t�m�3��Å'm٬k�|Szn�D �asé���D�8cu���\��N�K�������IR�9 ���r�g�/���6 /(2��pN�$MRj�����?��L�� ++1I��ƈ02�%Eː�帕7�4��8�4(S1y�ny��S�P3���Fiym`����j�O�۶��q���|��mZ�����rb�h ++߂����K^\ ++�(-MW�M���5��!/K|�Q>!ѰG��HEG�M�����ċ澅��}���e�-�1�B�&��� �g�������<I��˖�+��?�T���G�6�k�9�����?����~�����_�,���q���#�)���rLFS������`�����O"���\�#�Լ��W����?��?$p�6���N��6O��;��_u@ɩ�r� uP�Ά<�;�j�Ҍ�aɆX�Ӫ��#�g��G��X郎��퓞��l/l��n�\���Ee��=Y�L �i�'<���^(CmE�P�J��ά�V�A���,Y��2�WG�XĨ�Cu�� >t"R����$纽���k�;̀�c�,j���&ˌ��rQ7:\T�W��h��_tAN�����3�=+�+�`�"\-6��v$���@�8�l����e�l�9��-�e%�vH�j ++A ++V���� ++S<��O�8�lwj�s���.�Ւ�] ���F��/��j�]�E��l�7�L���SM:��#��l=�Â�tQ1�+�`��R1`wZ�8�]Da�^$���O�ᆵVЪ�p��FФ�*��K��A���&�����8@�"*Z�����d��hmI@MU'�{������]��e��K���Y9kmk\ vy<��2�,����g-���|(�Z��h}_I�� �`�,o)����A�T����>��>�E�(Y �ݼ�@p�_��PԾ`��d��l!X���kK�+�ͪ&%\u�H�+�wa��A������0-7� OH4"PD�ـ�1HO��%D��ȳ�5WʭY:V�ո����1�-�� ����2���^ ��N�=t���%�SO�8�c�~�m`�*�M�����v ++�/_�U B$����-{��B0�/�!YM��N��u�#$���$UZ�q���2 �^�^\扐�p��G+ ++���Q�uX��]$�ło��Ƿ>�j�K�L�zTr�R�m},_�,��=�,#�c���%$]�j�ᗽ���"�XY�p�3��e �`+o��2�|糖c�5��~�H��Y^d����1I�%%��%�+��RE:�ˋ/�6�u�ئ#�_������J�Y�Ҕ�2�y���^V8-]�^��3 �����~.��� ����+���`|��p�<��YMu ++AZFy?_�fWQI�����C����V:>��d�՛����ڭ�Ɛ�Z��m�������}�9�K�����ó��E�^=�tP��]����2ؗv~�����AZ<���c���k�y5��Fl�������_�J]s���8�>v����뿄�6�T�T�`�y�k�5?_l�iO/�k�e�A6��H���Fo-�Me�6$X�i�ZK�]�5���0v�[[����+'Do;cю��E�t�$KTwzqM�m�B)�_� c�~���������4s��Ų��R��9�Jݭ_��k�%�R8Í�ZjS�����~Z�)s�0���J�[��Q;S[/}�e&��$�ƨ�I��[��1���E��%��h:Q�f���Ύ��vy:��W5�8�R� ++ӗׇ��λ���� ӄ!/Y�^�nAO�83f�Tt�a�n�W\Mm�p#�����t4nu®��L-�����D���!�0�E�谧\����y��q��>F�j߰�� 2������V���g�[7r>+2�%��N�X�������-���9��<` S�%�Dݒ����ע^�0�V�fr�j�d&���O���u�τ X�S�ӐqU��"`�;��`9v9�S�q��F�ߌY*��iˇ��]u����R�dd*8:���U�.��q��b ++�]��L�,�v�ϱչ=��;�C{3�=�ۈ�Ɉ�㛓Z�����s�+u�m��p��5B�^�e����(}��`���'����ƀ Ţ��gބ>"�1�hrQ�Զ�~�ֽ�Y+� �t�=�2,P�.O�ڌ+}N{���aFL�}�r��=��GX$��k�g#���F[�[h7��M�LRj�ݞvj�Q�N%���.>:������(�d�w�F��UCn����7Ř{S���R�n�, e�&GVo��`�*��'�����Ƀ/�ܡ�p@cS?�G(C�~�7��g$��-U���OV�0g�)��51L����TpN��hS��fDz���27(�>��"��Y}٘l�nn?����P���Q(H��J+f���F��`G�VЍ�E��^��ތ��ni�����-K���V��,����\�^��"�Y�~��4Y�J���8yZH�h!�ۤsq����������=���~���cP�V�q���u���߶�5|n�{�]8!�_�D�X���ׂ�q�A@�;�%n������1 7� ++K�@ҝv�E�z+��|Xp���X�N�6��� e�kG������.��_�m`J<��ΰ-8;b�~Ec��ƶ�ng��7N���_��#��a\��l+nz�����}��V�V�z'hԁԵ]ya*��o�%����0��Q��M�K��)������e48S+e�3f�N��}V���d��K�@�|�-�n�1�TA��d�E%�"��%I+N��:e��i�^��w�hܝwq�lY»�!ڊ�9����bdL��+v��v�5sX�Qv���vp���3�C���Lrk�)�J!�}�j4 ++b O�6*����R%��:� =��l���y ++��M�aH�ǜW��X����q���h*a�� ++J���$�Ԕ��}� ++L� ++E幊J K\Tg[ӛ|s�WE�0��q{ ++A����J֯��ۊ�db�T�� ���N*5��#�����9�T�_mY3s�蹹,WE-{����í�KqT��/�Q�0�оN(#��!�-(���Iڼ�0,��+ ����0_?M�Q�x%�-����R=��.����A5��v���y0�F�r��5Z/ͭ����-j�k>AU�`ǐ�Y0:�&D�e;�zs�Э���ۼZ���:0��5w� �ג�3Kĉ|Y~*M�O�D�-{��2���퓸�S���<'�W���0᠘J���3�#�WtE�[ܙ1��V����_����:JJ��,� !�ɿ���p� ++#\*� �u������{�\�t�#�P��,�8/��J�J�v5�������D�� �.u+G����R3�=�2 bN�|��$T#Y��,���/���1�yD�ɭ�zkvY�e�����}Rh�j�1\ ���F���mNkI�i��$�ѷڵ�(Cڊ�h?ي���g0n����ٍd���t��PB:k�[O��4�q��C@�1��3�C��#��_~7R��A!X�[2:36��z�wX�©�#ź���lؑJ۟���i����LC���^;6��ג��e����ލ�by[���� ++%*6j������OlE�2KM���?��t<���j e�U:�{6&jq�(E�L�VsQ�ޔ.sy��W�D܆r�(�3�-ķ�Tr��r�,���89i�x��Tys�+yv!�gK�|��8 ��U������¼�扖�E�+���x�ٖ �sH���Y��^���+�S?b6zVC]���4:�ED�����I.��vy�i�P+g��W�h��e���/c���+O��=��Q��z��6(�])�����A��>�wX�!I�K�9P��/����\ѓ`I�.ڿ|�aj���r٨2n�z��c]�'��o����WQ�:N��� �6V�I�r���k1��OǍn��)N=HJ�����Ls���[��3�e�TJπ)~�1d"O*�{=���+q^��%��{�Iģ�b�P��j%�����X���NE)��x����F�:��rĔK��3��TzP{g���I�^�����X��ݺ�b]�O�a��--�{�Z3{��g��ekb,b�UG#,f�R)�ҕ1�X��.��<�����աZ������f�)�Q>�Ne��Ɇ��ׁ��K!kB�*��E��U?�Z緕R�fj?�H�l��ݖ�e:#(�Fd���ve�~U�W,B19��)��g9����*�"���,��)���7�Y�半>ѷ��m. �o��-�X���h���=�J��������x$z��T2�"P�\�D����XyFj���c��h7�}�g(�kt�}�d��}-�k�X���qs#��rI�!�����q�5�S��x�ˑx�4�'wb���ѱWX;{��=n���.���,'c^�;�0C���kJ�$��͌����TJ�j���,�axk�R�>a���.q�N[?�i2�$�Z��l2ϧ�e�݅1,��vS$��1��2�J�VG>�Na��K�)ޓ��Z��w,m�?��6q]����=t����!��(����^������%�̸�ȫ��\���*zB�hƏ��J���C�Z������w���^4�g�}?�䮪�@�����Vp���jܬ���hc0#��U�by�K�U�������ٷ�Ƶ��rf@j�6X�)܂r������ß<�u�������W���e�o7R��s���F�FH>}�Ǜ���];�>đȭ��i9F�y��go��:2�%�ML��לɼpt�+�`���T��F�g��#z�����}0|�4���U 2�쩡6e��H9'{��Y��sS��3��ڪ�5�I�����iH�H�T�̫��2L׆��l�f�c��Hѫ�h�?��Leٴ�Mh��&�$zᬞ7�pӨ6�m�T��F����CP�B %[f���! �E�t��^�4#������X���-���(ο�B4W��4tN@+��D�e���kh�x�fVD_���Y��آ��$;��DZ5�H;.�Si��v*�����]����qD�����˾lԄ`C C���d�� ++��%�4j:#>��r!�AW,�w��\����<�5�ǿ`K=��h�oR�nq��%�MO��'J�$�K ���J!t�:,�<&������$�M;�6� �����5�E�K�O���4=H3�ٮ���+���L��~% ++�,x����-��#a0� ++�ݓ�� ++��<�鬶[a�X$�����qY��E�28H�~������J��6S=�Q��G�)Ϗn���k�2S=e]��2{�"����d9]D�/���)�>���>L��n��,x�%͖�xW�1F�q2��1�e�.# <B+ ��5���G�����2,R��4)��Ώ�5L(pMa�J�t����j���Őhn�"�� G g-���L�~���n��_��IJ� �#o�Χ�$�P�r�d���M�c ��,H��rѯ�J_�"��p���N�m�bIV z7Y�9��X2̩<�2���@�0�F+!mi���u%-��~B�� ��ʋ���KS�i%[=�ܙ��k����[l|.����L��,��)���u�T��x��������l�K��8�L��]�x19&L��߇[��z>�^ *��ET�X��.�|����4����Y���k�f��y����!Ʌ\ ���)�D(-/�{�u����nd�ۇ^�ƫ�c-f�"-�m��j�5$�5�����4?��B.Z�p92Kב)��0(���.#d�*�f^��<E�Ԋ��<_I�M�����ʈG��o���>�s�|��尖щ�B�D��f�5���oH�A�磚97oK��L��/�x�%�f.��r��~nYm�2m�v�hX���ʊ�)ɒҲR�J���Պ�+��#(W�G$X��I�4�w��d���Ӛ�b�>˛+�E�tY�6YM�b���u�[���[���#����lC�� ++���$�KN�m!aq�Y�[acs�yc1&P>�q~_a&H�j��ԉ3���gK6��g�]���ne�|� ++$8ąTt.j�϶P�D��j���� ++�9����u9T�"�#豺�e�����t ����k����>|Ù��S_��Py�;f�ޤ�ǟ���|Rw&�1���$^i~`g~% V8���X-�Q���$ۍU.��ޥ\4*@P�:��$��jd*����1�2?�Q6��x�IY�̲z�����O}]�`�����jY2�L��u�H�:gI�;���%�e����q���J�<_1�3k�����%㻅�ՏV� �,gU�L��^I����?bL��x���#�EV�/W���jm�w����RW',݇��S圁Py�.�z� ������F?a`�D�5%7�,@��~�#�ԁ�ҝe���F�A�k��%%�`�̅�9��ٮ��%���D(��C��,�Dc�XBD�SA���^�ѓ�;;� ++�lS�\z5!5���9�츆�]ⵠg��K)�� �4�k�� =�T|ϒ��pϿ�|s�o���\i\@#�\j�eL3Q�l�7�aJ��9d����B�Ѷe!�����Ȼm�5W���^�l���\���k���^p��PR��C�;:���f��`@eW�ʋ��[�4�����eov� L�?��B����(D�1�6��m%)�^����g�~ $�L=������`�S jʌB��B�c���9�� |�O����GN��?Y��\�� ��8�k�C����T�^J/�����\��Ҫ���QvgktY2�>X!W"���o��8-��1�����T�� ��oP̡�@SU�X#.��P���ܢS��![i�"$�o��� ++���yVW-�Ԕ8V���i��?��a�[�]�Q.�mF�AE#���p�g��:h"J+,�� ��iI���U�Qa�G-k���d��M����9b�C���r���4�m���˷�d&�i���(����W[v !�q�|,3�n�Z�h@vh=l@���R�2�p����y&���W�4L�2�! zeE)�\�Ɨ�p�c:s��.�XJ�V��C˝��f�AgiLe۞^�ϔP_*�G��2)xA�����Y$i���E�@Ⱥ�/j4�X�2��I�(H%b+��6+�R�p�i�1���Z^3�;>o��@pB�� �b����Y�4ELj��!�̏z��U��:�W�>��e�����`�ٔ�4���M5��pH�j�`�v�R� �H��@ݦԥi���#1�|�l��!Y�Ǖ(��7� �]����:f����H�\zKE �~w��L���cAn��`G�3)7����<��b� B5z�ELW��$a�i��jA\�q��Gi�T�?��DA�շq���`z��*�4��q�\�����Ҕ��?����wIv�"D��to������X���ڜ��ˋ�B���̀}����b��_��2�'�ܶA�Ǵu:P��?��f8V�5��x����FN�'�>�%+D;=(�����(��@�!' ++�I.��5����V���M��;g��~w)����Q>m��ڍ_��%,1`���c�F8�qb�Zy�L��1�7Fz��eu1����x}��|gֽ{��ҽg�e�{�vz�^�^���z<���*�T�hSIeҊ�5+i|��,O�2�y:g6��o�j�"yH;M��p��Inz/��/b&�-'�0����4#��)�X�w9�8��:� ++o��?�-����[�#�Ƚ�S��x)~y��Yh�Y��E�k߷��*C��.a�����L�T�l�?A�F����J��3G8O.�ݿu��MX���^�m�_��Y�+v����&��ߢb�"�⊍�7�]�=����Fq��F����砢Ĩ�2��K[�f�2ܯ��:�{��E��G_C-?��y��%�:�)��P��3�B��KɉM��No�L�T�/���|��<�.m��BZQ��X,{���U���O*�j�G�!x/�*�vħs���ӕ�⌣����}�Q�w���/�v����ߧr�b�>��.K�=�G ++ 5��E?��q�3\�F6c���|�` ++��<�9�J��A���Ñ>��6�U�_r��+ �'c�>�'Y,�ˉ�٧˃�A�[u �ݧ���7�@�x�$���U��-#p����������b�a�jS|;� [�C��nu$�B��zY 7��N��/S�w`�ޔ�W�|[h#QF��IW����M�5���M)���*�Y����������^��2�Q ���x�Lg��~��R9>_��/i.�u�3������2*M�C�3��}�:|�,�0�smߟT�MMT���m�G��2 �ۗ�>a�U��x� ����/� ƒЖ�Z��aTXl�����Z0�94������)h��5!U�c�'Y����g��h-��uX�M��4�h�Y����rږW�[��T�@ǁ�hޞ,����C����r@�Q�B��;�FooR�[��e��{����r���={kb�1���q��?ϿD� �2��jb��J�Q���m� �J���7��7��QF"Ӣ' �=����gy��d���n���<8�i�͌g�3����@YȄV�!i�A��5���haۡ��y�1����}�UE0�Zp2����>`�����ܨ ��L�,�2�g�����ɋ�oAb���\�U����L�]Y��O���'c��V6�w:���hs?��ro��p�\�R����6כ��>�2u��3�W�w�G^(�Ti�8������� RO��r�g���2���.�r�S��h ++��@Vwnv�������O���KS���dG�Y�m�&j���-+?|u�4$Q��vw'�ŭ��k����6����p ++�'���$x@��|g-�d<���@}G�A�����A�`�[�#�OVHd�RK����`&��ɷQ@ھ�ȕ,�1)���aZ��Cge6=��B�"I��;$E?�����]�wa���gHj���U�aF��s� ++����V�\x�}k��O�/D�l�Q�b�,�[*Q��4.=���sN�����p��4Ye������k���w캁���W��a}Fb��}����-��z�$&Z}{����yݍ+�V�ΧHR}:Y�L/���]�uVup+�\��^��[���י;R�N�� ++FЩ��KP���fW.o"�+�2�a����h������;��?�����~^��j�\����:�`���K��lyl H�SU Vĝ:G#��r;��\�:fQ9l��%[�m]���Ǟ�ń�!}��(;6G�<�6\�][������䗨��B�^Z�o�" ++P��ܕ5��k���\[�I�(2*}9�M��^�3a�F�:��ҏ2��gKP�,xrY��=�fU�G7|�W�L÷S&�n�I���t���,��V����d]�զ���N��<�)��r PZ� ��v���r�|�� ��.� Fז��Q��,I�x3�s=&5=sz�)i�f{���| ���E)�h�&�:{��^�/�c#*�@�wc�6w:�k��3�"�f�\�A�1z�cy|:Idy����鳻����_�2f�ʉn�C�ɻg��(>Z���F��vs٧�(1{�٠� A�t�N �J��b����x}�sr1�� ���J��x��HK�^"A��*s���i�x{���a�Ѿ����s5�+«Fg5��\t$��|��Eg�-$$�8n����Y��B���v ++�@�Q�3�gD ++fO�B���Ѓ.7kJ4��7�[�ēt�|{�i�7��>Ymd��0('�N�MP��r�`D��n<����i����X�KA҄�#tӉ��hИ9���K��� "0��^��'�q�]R��,�RixY-�}BN��cR��>k�(pJ��,����)@�U�{�J����iJſ��E���F�+�I�2g������BEG���'\:���G2$i��P7�h�ޱpl7��/�#�ν�(9[�@�/ ��<�h���I� ��)z'��v�(�j�/3R��b,���zQ�:�=���H�D|�ȸ� .�a^�z����e[���9�e ++A 86zt��yuwV�ӆ}a�; R�H���v��F��_�Ų�|֎��:�j(�).~*��r�k��`�I�'�l� �7s�����������R���r�#Syx�o|"lI��8��gƾIO�|�|(�`PBLϔ�GVm�:2\����Z�K�v���d�FZ�C���$8Q�@���o1�v\&}��� � ++�|+���J�B�.i��t'r ug��`�i��g��Y�s��OeA��wn#����^ؽ,iy�7ίOX�t�X��:+B�ȇ��s��c������*�%�U�U��?3�x&�UW��b�����+��R���w��;��m��{��b ���H�;��tu)��~X�d��c�e�D5�p����GYRK:�<S�/��w?<�+� �J5?�7�����ؖ�| %/���Åo�������qo����:���,�P2ì�G"��W�sG�!��C�Ȝ�!# �7N�����QQ��S�8�hц��*CнcY�(�|�U ++Œ�k��u4�b ��e{L(����k$f,���X9SBy�@�~��Q���q3���6~��cz�],D�a�1C� k�:�R�"D���*$J� X��2�C��^�d���y�k�Q��2F�8.��Y�n���8x� ���L��x��u5NW��y��t�W ++E�f/���4�G�ʞ�G���p�*S}E�+=r�?7棉k�;��z�a��En�$ y��G�)\ � qKH�쩋$�a�ГF ����J��qB<�U*pd,�e�NHB��U��3 L�fŴ�?��1;��S9:���5\�N^~��+3�?�=�� y���a�|���*W.��~A�=x^��T31K���-S�w�1���~<7e��ao(������K�ӎ���Ǩ,$����ǝ�6��q��S��y�J��M-�n/�� �<&����G6}�u^e,����x_";�j�_�L5ҫ'��J��>�����x�x#� ��`H>��Yf�`�ݖ���e\`1�״:��r���ZD'��&���<)ZH�99���[F=��{�#�M# ~���&Kf2(i.�`��<�rD��ަ_?Ξۦz�BBq��������� ����>5X�c&ƹ�\1���y�ݵ�~V��#��{yPV����x�-�I�榩�n�[��;Ĺ�yv>����0������:�*������j�<�d|���N2=�z(%)���.g���|A�&��r�mbb�83�&M���Y���X��ހ0�*"p��v*{����x5����KsO�>� ����=�챧9o�*���@�����ҷ;��] ++$;�װM���p���4,�+I貋$�?7[���LG-�h�E'�?�ʭer`��v�ТX6��C��:CxW<��`���:����������l+�G��:"Чf(����Pyc�p��'>]T��C��f��B�nd��6������ ++^X)d�ʑ(CI�T����{�i>P� �ܚ7���22q��Nܐq������.v������#���3��H����ު3��v�����r`hB���'��;���4������\��Qh6yݤ�/�K?�E�S��q>���O�J�fMW�4���Ҵ���;�)o2�u��DA[p*���h<�1,_�w�8i0��W��_���������^�p��%�~ �Tz��m����G��dOS�WE��^�";��1�Ar���TN�=�ķ�D���^�ad�1��Q�Ƽ�!���E5�X�dC�u���>��*5��/#oρ��h����%C_.��H{6�e��'"��J���ZoK&��5\��^c���A�8US�x��2���!�v~��OaF���r1�EQD���T�z-_�z��|�l�������Ӂ �ي��h����u�0�A���::�ұbN�a\��Pn����TpA��eya(~��vv� ++�]x{>X6M�eZ_Q�b��7���S�/knVMb��*��cA����c����ݔ�hkz�AGK\1�H�|����q�qE���F�q����Uzr҂r�/)>YQp*�O���[��>g���r��na�c��%һ��5y���}n�}� Z��`d�"���n����^��sA �J��C��D��<p��'a��m�O�<r�&i�ܑG�"�%��y�)�[�ɚa�`u�T#Ye��)��);_�>��t��Ik�#���u��sk@{ʵ�:��(F����r�2b�o/��#r��=2<k��N_�*U�'����y�Qц��t��� W���A�5 ܩ����s����S:�.o9vƘ�u4����Z�����=4�o{��hq��� ���h���p� ++`8�PL�7��_1�덱ð�Ƹd�VYv���K:2%����K�m�;��h�����1R1���%}ld. ++��\~:�� �~���O���\^)���:��J ������D��c DZ� ��]�YHVӫ$L}aqlʊ����������I��(w!�4F+�$9�C�N�#-?1 3d�g��BT�Q�K�L�:!a���3����N6b� �F��R�&頇�n�:�,2��y�sd�ş�I2�����0hqBR]�rh+4#�rO*6�9��}V�O���*��3NGƩ�n7�7΅y��w��4��T��^Ӓ7�[����Crb����T�e{ � �$�O���u��5d����85OD�W�� ++��Y��}��И�łr�GXv�D�qT�)��C|i��A8L!�C+�%��i�UﴕF�3Qq��W�c���\i�"B����״G5�M�����V��:O�>��*C�a�X*��4�\a{:��g:���no�&z�=8�e����Yu�**.���Gy�C�c��ǥG��k$�p����O8=�X�����?�!�t�&5�##��8�ץry�&�;�'����xM��>��#Y�P�1�Z�% )+�� >`�-�k��b�3w��^A+�|g*���8�c��&5�0z�f�aJ�5���&�- U�IQ͒)��di �H�|����@��A���Hh����'r1�������MQ�C1�1v*���.R���%8��O�K�©�&O=�V����g�V&�q�Tb4 H@�v����C��RD�inT`�"(1��p��e�~���Q�ŕ$���H��Sܙ�|u2A%⓶���n ++L���f��[������ʏ�)�����P����d6G�X��cz�`��w���rd==��2�7��lԶ�g ++=e*�4,�0|L���Z�>���N�[U��!�'@U�~X霨V,G�!0$3� ��u�'|�LʠyD�����[�,Z�&����@�X] �X x��-�T�/�2��h�4�Zs�Y<Y���,o�<��>M�rS�N�lvj;��RL&���:4�����ǯ�z����DXo/+$���y��~NZ��N!�i0sa\ �V�Ff /�Bp�P�(�� �r}���ߋRg��%P��B,��5/�7�nZ9�ڧ�.�zʌ�t� ++12%^���Rq��{I�Q��m��=��n�w�'xaj�Z�'!:���հ�7d5�[.���R�qq�<�������ul���X����^:�\�$��4u�Ml%Τ����B�m��E�'����a��8L�:,���F��#Nf���\�ҷ�Z<��7{��Jk�LXk;&��*�]P�X��3u�R��#����82~Έ�Q�����"0Q?��tA������/��M�2��Kp(?f��"�`x����O}g��p��u3.K��JpG��ɜ$�!n�ȦlȄ�'f=Y$ ++D�nP�dp:.�����+�������!��6+��'�4�L>�J�Q`�`2a������X����*��×io ++�lda<�ŋE��8���y�b�;����(#���\f����2����j'*��Z��]�e�j9���Y����%���K��1�%�+\��B��/���.�8�#��.n ��b�By��_�%Jˣ��,�E�i���)1�ѹ�]Sf�ܚ�P����0g�����:�p:�f�b�!.���;�1J�QFU����A:/ֳr���^��w�H�c٪ϑ��� ++��:\ W� ݝ�~�W�\˺8E�f��{��r�K���؛0 ++"�Y�LH�W��N����l�|:v���r�qj��Ѳb������Lq"��t���!��}��V^��M�4}(cn��z���nc�K��k[F����#��qQ����>C��U�ڱ��qQ2$��Y߭ފ���B=�r����{�b5�w�#TE?�f��?�[*%2���n+O�}ɞ��g9����%m����O�����Ҷ�K�D���|�X�W�w�����yϵ�o��`xw�2P�m��3�M,@�i���Km����R,�+���Ő�*���]�,�U<����\�ObP��C�5�xX�Y���h.�9aБ��jF��1�Lk��u�wP���8�en��J�����$��ނ�l��4�j��ݗbL[��7p{���85 ++�?�6:Â��7����tv��'�Z�o��I8_3�T{'ςѕ��9n*����Ҟl�"���Y�F�sF仠��|UVfL峷����4߸��o��|_�=o�z��]k�B��3�nq�[l�P���Icm�,��OT.ϒ���j.�}e���uM�pϊ�U���C�0�����6�6��l�����1�`q�[G>2��1ߚk;��7:�����]��C9E]d0E_#������ser�g�g��_�7盜$κ5��Ak����/���"�X'������8��lp�h�&k_�����jG9����j��Vl�j�i�FlutTsi�3JQ� ���b�����Ag�1�a�r��N<J�I��kֱ����w�������*����� ++�K���4oT������l���$F�@ɾ`��p�Bp���D��PG�zq�r�Q�cE.��8N���+sm�����: ++��R��p�����y�A6�G�����j_UU6�qKO|�3��� "�=����:�qj�;袷u���xd�A��mǃ ���2�@�L�������-�3H["AA#�{��,e ������Y�m@;H�0�ݨ�����)�[�K��N��H�_��u⫛ˠ��y�ֿ���.�4y��3�hw&�5h�dEЕ��ig�lv�2�9>Z�w1Vu�A0�b�/XB4�djs���2�^Xw��O��Ήvr�L9]�90Ȋ����������5S�O�Ӡ�D��A�"�0 �Ǝb� ]��r��md��+�`IC�$Xh���+�3��-��k��n�*?pޣ;uA�9K#�YeM�"(�^Se�E̛���e��Z�5������3�&�YN�UصH��:G�4ƨ�&�Z����2�X�u�тW� ++�z[`*�'NKfpe��S�'��&�yR�= u�������{7����l�F���0K���qG�����LѴt4����ս}���!H��}����JiZ�)���9��71胥�ٚ`,���!a��9j��(Uq|0l��s�l�2[֓:��*�yA��}yn";�>>�d���cT�rU�-b�^��JP�Y�شD�I�}nz�c^�՛����]Ƃ1���WL��|��Dܬ&gHh}ױ/0��n �j���ڧ��A-�D�Kʊ�XpZ�8]�P�4�˂�W~O�������>��~��p��,��� ��ƃ�����e�oj�H5�AD��`\t��|��O��c 9�<Q���RlA�=�.|%���`��CC���g{��f%�X ��F'�ݖn˜P���M�{c������w�90�E�{1q�G�ؖk!.��r�0�F��(e��W˨m� �m��_�L��������f��@r�_�#a���?�)v�����x'�+O�<��D��o�U1؉㌛v��DM�cJ����V��j���a�t��?����֥����=��K�8-L�(�fr�oA�>�e%�m�j�Y�Tl����M$�-�@����X}�f=%�-di�CsR��D�g[/�F�ő�x-�-^���S�+,��+uy��B`-���u�e���SL����"H�j����k�����_5N��g��S���u,G���e1^��!���/���)ǚ����x��w�i}������;$p/�`s[�-���ft �[�"�Q�¯�a\V ++�e�ȋ����.F���G��eU��{��QD�Ў���a����pY�S��.�02g�Z��*yM��?-��o�T�[D-�"+}��^�q(C�$Ml4�Һ3��@�~x��/�sE��љ���J.�R�p�le��q�MC�V�?������0��:�J���Xv�h����zIa�[]B�o�,�ȣ���-`���%�4E��Ys�~���PE(�^MO�q6�m�z�z���S3~����&�\�(����� ++u�ґ��s��{�7i��A2������YF��71���}g<-3Z��l+�� ����&q.�cD��{�U/�|��l��x�c�!�dN2��`�������d{$H��i��c�ʢh<��%� q~4�UwA��ײ�L�WO0�+�Y���v�i���X'�-�V��ܷ�]aS��F#�KK ��Y$�2Wd��ow.5�V��pYɐo�N�V�f�2$Z���N&K��S}�y��ϓV��L��T{KU|�C���C7?W������~j(j�]��GW��Y�;hd��B�Qq�D�d(J� &H��,sb=ğJ�r�"=�ɔ�d���!�G^���[��v��؛�>�����%<�f��L��V{�7��j1�HTF�S8�\�^��a�~���3�>Ȑ��̥�U���J��x:҉2�J�V1�yb/'�tX|��d��4��N�O�>�-gO��H���t�#,�Հ���YQ(-�~G���6Nzg�ͅ:�֙Jx.��8T9H�����[�>[L��K�L�,���2(%$����?1~)��f洓w��.��@�A^q��m�gfU���",�iA��i[c)>�5$Apng� ̵ U��V^u[����Ǧ�c�b�T~99�r^Z$5��!h ++�� ++�#"m���ې��ە��;q�NH.�[_��#!�<�fg�f�������}�X��c�,�����2�D|e��q�:?���Q�!7��T��OL),�4=#�B0b5�V�r3ځ��U��1-:V3W��N��a��7Y��8;�%�����,c��Ӥ˫#�OM��C7m��Ù�������yV�8b@��y,�t(b���9~E{�_m��A� ���o�/�Bx�Tc���������Q��nB0F !�NN@�$��e�8�&_DV_��9�Q��H���m�\�Fƙ����_�V�/�`�pi��(��E?��6��^�)�s�g����Ӵ!̎|a�Kf�̅8mӴ�7�)� ��h�3��2�G�t��F��&��C{-�(6auH<�����?\��ot�眪{�f����$y������������]߆���~^ޖ0��ǖ�V���X��hb�NJ�]��'f���pv�����V��[�7������f��P�\;�;|I� �5[� M���0Q&�h��eN�&1�E�i�z6�=p���� �£�AV$��YA�.� q��6R"�l>�����-��y��q�N>�e�����z�i�7�S�� B���j�!��#"5+�fk]��1q ++�X^ Kf(�X�����k�ӘK��+��60"��J��+���6�c�-`���r#W������6�t��U�gE��}I$j8hO�6� ++��Y"���r�Ά�ft�~��zy�Ws��.�v�f9Ec|᠊:�e�����?�K��ۭ�M�T�3�S��5�HFk� ���5}�7O�4(�N��hi���MW���<c���&��v���'�L.6�TPe~�2!�@�K�5���*ؙ������[}QW�{S'U�+NJ�H�K�����j��& 1 WZ�qhs��y3b+)��s雌���/��:k��oL!D��v���� X�}�X*�A�X��t"�����|+��zy�Ė�3&�wܥ�'�bx=����%�\�Y]*L����Y5���U$fD+��ʞŧ2�2 ��Y�M$��L�:#����B͞�0�L�?K�����(��L:��hkY��ŢmēYN5�;��b��"F���U4��B Ag���'��\� iV�jeΞ��z����w<�5��%���o�uCZǤ\z?4؉�PD ��P91�]ԟ����ª>O���aA� �K�N�"�0<��JB("_�X%`>��e�=4��Q��L�ٟ��"�,�+�%�2-�ں���a��a� ++�`j�pL��bϝ��j��b����M������g�@�o&ퟪ�^ą�a��N �x ++^x�<ҽ"���)�mØ�'�����Zq��f��s~����rYP�K��e@��K.Ws�/J�LRw4.D���M3�g�teE�D�b�#������[��}�6������_��_�4a����h��|��P>�$���w0ּ��ߞ����H����`�8�������F��w�g���{x�k���T�λA"X��4�u�aj�d4 O���r�l�s�<��პ'm�A�$���Q~�^zь�}���Hj��*�Lk��:-/i�i�,8� � �Z���0���F������>E��8s7�o�g��^�����7# �����e�a@u���FŶ�㣕�ź,����2cмq �g�1�T]Y���Qb8���&�JE���mr�/B�Ԃ��P����{�u�6�K����$�w!�~��;Eu��w�(}�u)؏���ᣫ#��F���C�I�=@��z�m�N ++�&�������x�u$���_銥�#[�Z2!�$��Fhm�z���Eh�U�������aV�:qn�+2�G-� ����M�s��8��O�:?]\���7A�E���$ǮWr�K��`�����}̻�}|�X��v]�=����^}�Z�r��P��'�tS��ؒ缋�s�� f ���"�����vQT��#S2A�x��Ǩ�"�%�=N��K�M����|�?��ܭ��ޖR2q��[q���=��0$�Ҿ#�Q~ l���\h)*�8�/S�R~+��B3���aG;�[$x�PޅO��cF ,���H��X��&y�H+ ++�x���?W���U@2k(�1�0M·�P��f�X���@���]g5LJ����.)��7s T{�Hx+B,%�����qW�%�����O �$C�ls\�BRR�@R�Ӛ/K��!kLQ��i!��V# V'(����{y�(����-�����4��&#-����K3����3WF�B @x��w�Y8��s�����|��dџ��<�*�~�H���'�_Xഒ�A�7�^WA�����Y�9�$>>�!{���k���,��/�,�$ ++� C.�h�0���(�[OE�"jx����;(�P.� 8��_������+q.�űh��\Nq鬁Ѓ���b�@'�5��$�8rر�z� �3���<�� ++�eWy�橏��,}��"=��U��w ++D�%q�����(�īa���R�ٹs� c!I�S��.�?���*�R�Qx��=�s˜������e���nM���DY�D�Z�r�U`f. Y�'GX�|i��L=�/��l�|�Í��z�c��.�8u2Q�<���\d�|.�*��>�>����9�u��&w���� ++#���es87��X���.��Lf���X�I/X-JD���8}��O)ި����?l�v��Z�P(g�(n8��[�o���M��SHd�у���D���HR��mvSt|��b���k����/��[P.�odU�G��,�����8���b�� ++jF���k�i�Ӌ�d(hnϥ���H$��46�L���O�����z�W�2{��Q�[^+; ++fʸ���lw,�!/�Rv>�����/�D�2��/Yl���ɽ�i�u�gX� �UY�L:pl���p��1�����wn?�q��"譞��S�\F�V�۰1�tڣ��:���CL(H[�="z�gW;�5��{�[��v�,��qXN��zK���#5~���S������)���4����8���:h̠�Y��=��`�W�d�d�wܵ+�l�����D���4�Gx�)�06��QW�c�9�����7�dj�3-`o���(�P*��()o��AV�ݡ��"l�=���אN������S̶��w�'���B?0?�����P�k��=��Q��% �:wJz}ӫa���I��*b��3����!蚾�i�:u��y#sѕи�q��/�����@rlF����"��kp�C����Is�N^V^�:��Ոȅ�[e����B� �䨷�L+6�o֏�*�m�?��+ґ�>��E�����G��c�{��#U-m/(� 3ܹ�e�]������T!�ݚAH����Q0�|p��]Jvi����k��#� ;�T5�,�7B{}��P�5�Pψ��+`�,G��7�t��n�<�����8��-F�T�RrV;�m��'<��猣'�Q��X@l#�MzE0yZ����"L����V&����8%�9�p� ++zOFa�,&YUu��@rW�)o� ���ϙ�VoyJl� ^��� ++����r{Id� ++(�*�C.��ᇑ����'����`t�˅��淛K@�4��.�>FY���������G����l����m�^*}-����1�<���r�$�q�;&�^$ڝ8'��#)�=��9��p�}+ٛ����2}�:�X�>�s0o���~���2����pK�V\�������Y�E�^�s�,��˷���ao>�8|��� ��~�!�lD����D_�wB:���ߛ��G��.h �<�S^�_S�I����o���������KW5*�>�Ֆ4�'>w�c��VF��+����!��8��K�c�$��̝����b��5��Ώ9�2������:������.A�����#wg����\8�&p���������A; rꭴ��b�Ĺ͑��^>�*��<8���� N����}(=|���r<�V��N�V��U5��G2���WS��Wg���z$\�'�N-�/��|\=bb.}�$v����%Cj��Z�80b%�y!+fڸ�$\�6��r&���t��b]�,����v����<rf�7ʱ�y���/{W�wcB�ݮ���Eh��M���j�N�Si�o{I_d���K�V]��͉����#�t�(&�ѥ�NS�f<|�P�ѳ��8l�m3��#�Hm��LӇ �����p��<�t2ɹXQ���� "F�Ŧ�F�o�k��A6k�L�LY����BB�e�Z�23SaS4��vx�-!p ++�ҷ*�_)����h�@U�.t-�'��*!gT��G��t沴�Kf�"�q��0�俋 Ys쐛�����}��Ȏ>#���>[S ++��d(!}��M��&~����x0 ++�~~5������ֽe�X����k�3�6�ϩ���l���]��K�b�"Tj��v���4 �t�f(T�L���w2p�S��>:��>�T?��l�y��h�S����c�Zs���,�Z۾c�}ף��P�P��1n�MY.�%��m�|7�qFq ++a�oYD��.���Û�:���-�(���}�Z��%�`Y��Xί�æ0�m��9�ւ.�-}��dk�ƾ���eL�'�oPHH��?q.d=4�'�6ڿ�ua�z�u:�w����ڬ,l��i EDp�FA�Ɵx�<�U�q�&��vH[W��U4���9�8o�g���辗K��a�1���Wj���`�D����䃇��?}� ��%�>��qzH"�7����6��o�٧A��C�M�M��ĵg ��? D�����wec�!jT.���s�*� ++c�a���m.{�5@��F?��~`wn��NoL����~�#LJC��c(G$����!�,�{}^`�[n��Ⱦ�'U��g����K�Њb�&�U`�'����D��v|*�.��|4��V�.���v�&����n��,�N.;aP���e���ܵ��:}��B��?����0N���/p���u��e)|i +U܄�_y�j��[E�I�0R ���Д�>)|\�\[�ވ�r�`9VH R$̸pᰑ�h���������ᦻ�Z��� }�"5=a�"�S`�2aPH�2�3�+L���Gd�Pn�u혀���F9a4�3�.�*# ����>��fi��:�u��n�!,#��T�h`�I�N�����h:c�Ɍ�.a/:w�jn&b3�tF?e���$���ŁN�7����F��3 ++�N�B%y�;ڧ�$���bLr�Wώ� ��؎P0tvL�2\����4��q+��� G�2�� iLm��4��L^*R�تE�M ++!X��úD�V�����Cn�w7�U�" ++�d��h��:��d\�r�Ԍg�=p�B�;���(mģ*� �[A��� �8t���3�7wN��A��11�tv�M`�a@H��kh{Rl;$Ȉ��kBFhC�~�-��E�?�3�aü��F9�k=�]lւ���O��OAY�����KN�oy��VJ�ܿs��߿��2��t�ɛ��@<�j>Ͱ�K+ ++���y�R�jk�ݟz�_�tOD���ȡ"=���8R���\� ++�4��L�|ug�U�Ñ���6���Pm\��5x����@�5��r�+2��,&6,"Q��� (�P�v��\�k%�݉He�*0Ƒ�&X �dz>w�{ׂ���@��S 1�ewL{�n�+����-�^߈����P�� m�yV��L,��`=w�]�r�D���zfu8j5(��BB���~���o���-Y Z��l� ++�V��0̓6�=�"� �ě� ++*7�#�2-a:~lo��#7����ȫț��>�M�A�K�n�`�ip�p�m� j�j�/�������ʒ ��.��oy��d%����l�� ++w�8�Su�Ym�;aۻ)ϚGQ2�,�8��i�7�N����g�·83U�C*Ix����4E&����֊拡���ڄb+fEWq"z��t���[��l:%e9:@Gbr��N��K���ݕt��o�� ��3Kp�,|cN}.Ga�1���������Eq�:����4�E��IgE����Ƒܠ�D��͞��]���em{a3\�Q���)��U$�c��Eb��Z�b���܋�3h�Nj�h���e�C<�\N�84#��p[�Օ0�"�^�a����f��Wf�KQ������n�|։_��J�J�� �|a��:J�`�� �<��rYt��3V���:�V�6{��� ��8�����#���UYfd; ����EP�g��?�w�QhX��ٿ@0%?��٪ӼM`��@�h ]��[@����g�F��J�%�NX^�<�.x�`!p,"$�.Xn?6nPm܍'/@˦iHH8��N�(e����E�0*�!�xRYN_��p{��<�H�g~��ƍ�9��̯<�#�N��\/Sڣ4٥�E;X4�Cix� ++C�V��po"�Oe.��д�q���h�?e���-��O� {�,,�0��9�$n�JK9�Y8��V����V������0��j�;���w�i�x�\���G�{�\�͎��]_h�MGOF��0�6��\�/�N��i=T,�����n����ޓy}���J��R$�V����~[���%?f��J�{�8=�H��}��ٵC@��ݔ��26��'f���w�����U(�MTӷN��!F�5:�xYU��%J��\z�P��Dl>�i��Aǫ`��ۣ�j�����4~2��Bk#�=�3����<�hn?�ہ*��t���$D�T'i��I��7�< H>}�-Ao;��l{���>T�5�iA�ϗ�.��T�&�=�������`r֛�x�����Έl�4�f�x��E��+{��z�P-�݂����13S�4p�c ++%��v�=egR��g]�҉�<�o� R��$ǧ��+.�S���Q^=�_��F���L]d����gR�#3�4�f�I�B���,rG]�5� HuW��<��(�0��l��5Nt mxL���E&���2����d���:SX3�����YJ9'�7t9�>g�g݇�y�^��RݰÊ���,#~Xˊ�}�8`�?�jo$ܕ��.ke+�k��(�~�@*����?i��6k�R���P_�[j�������\��̬V+�[�L�|�yO�VB(��?"ıl�k�;6|�@b$l�EH�0���ݪ�����"�hQ���H�wh�Yvk@a7B��Y�����E��P`i�d4�"~y�����"RdS��BJqY�T\y-)}-�.� H�ڗ�W�4�G<�/h�� ����d�_O�C��3���\��R( ��4C��r�����r.���~_M��hv� ����+��8������t����{�� �D��jpPv�}ij4������ʅ�Tͯ�JP�f�[�[��q��y�nMl'IQ(!Bc.G:p[�߱/�iԿ>�Z��������Z�g&��,¥�ey�%�q���qh�Y6�7��}�!u�D�kIZF����=�"Ev�����X� 3�WdJҪ��p�&x ��cL �xǾ�TmkIR�"߱��D�`�V������_�ţ��1d��$����qh.3��}��Z�/3�x�LK��x6t]ƃvj��)�� ��=�N2ӑ*Ƨ����|�=���,LG=��О�'y��k ���<�&'{�U�:8H�G ++�hx����E�E�{"��?�;�� ++XpQ�C��C�h�ZI ̑�]yuL��_.<n0�r��y%��z�O�~�2w4�����7�)ˊ0��BOo�r� CHR�}cْ�7�>5��X�ߍ��o�kW�͌ƌ�A�)L}l�!T�P�O��Ћ �����A���|;�&J�SQ�찼�[�P������#����G�a ++� _�����叶H���>��$k�<N�h��n{�J������4��t`$£+�b�����V�����q?�";�+�GLB[]O�{��g�ߙd���'r�rcld#� ++�>F�3�{^6?�rxb��?�(����6���I����t4���^�KNw������g9�F)�ǟ�1�c�#0Q���_��F�����AkH^�j�c�VP�6v�Ē�nMݕ�S�b�� }y$���>��IJM�݉a�D~�C��?�$�ƍl����x������]c�6aX�w+A9 �I��^���*���{�o,����p裠���!�C��y!$�T�+ϗE >��i���^�B�Í�������-y{C�!��4#���d��c2M����q�e�'���$�ո�0"9g LPt���WG!�lr��I������|�?M�eUL@�A�%[���۱إ��i&�Ƣ�����&EZǠ$�'��q0�! j����p#���<LU op��4��\��(������6��?�'�?�m@ƕ#!�?���z���^;�<[g��*ǁ5��'�#�6��[� �fY̛��f���yP@����z[�߰�a����~h�n?>�L��%7��5�r���sv� pS�e�^W*�`v"�x��[�Vk့�Sp��z��K���ؾ�ᢚ̛or%Ў��H�� ����!�0u�U�\�|ɫ�a��z�Y��q��]������[39qu�u�R� ++O�}� Ϥ�ߊ�K��V�9gz� ���w���bH.�=V/B �@����X�����`g��X��p�EFf����[�]N�@�ݯ[��]��X��.*r�Tۜ�P~��Zgs�Me+}�UnY� Hݲ���G��{�}������GB"ţ��U���I5�x��q�=�2�5ODl�+ Ch�Ү��� (���x�B7������ �^R;8;�ŹE,�+I(��Gru�!�Zf��pF����N�?��xs}{;J.��-�-���{f�;h��g!��w*�@�6`��*���������y��'�- f��H�����&��;��^0w�4q�����R�����ln�K��9�������(��Q���l�����*C?�`�o�����Lp����B�E�6W����\����eNd���J�����4���#V@a{��aZ^���c"�������A ��KW�&dY4�7������z�W2\����3�K5�+O��Q�>�Q~���c��c�~�?_� ++O�1>�����s���͟�0^yG,��������ɹm�����ـF0S�!~�B99��0�2yy�.�Q ++���l�kܽ��U,RԞhZ�aDɮ�<�prW�d�`�y��8`ZaL���gJ*��̋��z�j�$�R�~�*'F���dM��b��z?u����a�����y{Ǎ4�q�\ۊ��#�~���sx�,�*�4 I� ��idsuA ++���Ų�kC����',���㜀C�g����|q��W�<�,�w�.H�׃�@ȶ����B�Ov���v4���� U{z�Os��B��*j;��代��1� �f��tܮoYI̸7�}l��4&����|���wI��sBW@1���(`��[m�3�/��ٰ�;��{����w�0��ޑ.��1QOU2�9���b�+�d�qs`�$��4��J�t"��wzi*}����ͣ�"s[���/���w|�ko���t�M�w�I��>�G�U.9����"�H���N�HS����c��@��8���-7��e/��ʊ7~��q%� ++��-�Ut�ۊ^E�V$*�����h%o��"w�Y��i%0�a˙A�����@�Q�d�>��ʦ3�v�&��r����C��̵�f����:m�[��qG1�V�ML�>3�e�@�֬�(�4��mH����\��b9����_�,�E���� ��"������4*dQ�9���w��M�]����D��(��g��i_��'��%��#�(a�z�<��z �vA�d������8�Wϝ������q�����P�)�5JP��"X�h'-Nt�+�*1�V��,&l��7ؗGdR�-8$l4VW���! 8�LAj�̴��VȎ�S�h�����,?m�ٷ3��石6&��%{�`ts���[��?LZ��Z��"I�|@�hre ���g�>��|�6����� ++���_�laQ$*f�M��t��>�o9 ��%����f{�tno��}{��Ge��u��*S����H��zA��}���H���)�,羢��Ak�L��28�ոY=��rq�)H�.��見\��_��!����1#x=� ����#�rl?h[�RW<�b0`r���{pM��|��6��Ljѯɼ��q��)N8�e X�i�b�t�NJy���)�q)y�������(�\�|�6 8j�X)�x�Hn��A��>'�\�+���J�M�7˟h���m�(9Mg?4fN`���Ѐ���/�3+��`���Γ&;o�0y��PLʰ� ��1�`_�yrhG3� ��r.h�N6�e�y��22���W��T���nax�9 ++X�r)�ےb�靑A����.�x�Y#�A��Ĵs8�N��`��`��/:&��lZ��s|F�u�'e]٧�Hcu���C< �-�a���#j���yi��[V#�PzQ�������ɍv E�z�=�3��7��7��$��t��7bg�Ef��J�[!6��\�(�o�=����D9��w,�S� ++�mVO1�Ȗ> �t�x��T5��9��4ڳ<�Q@���1S���n�)?gV�j�Fh��F�C��q�#D���E@�9��j� �(EK�sR_a�I7Wq���$?|�G��Sy ,(4�s߄��C���;{a.ـ��o�8 ��� ��$*r���tG��X�z�$�$��:�d�{�֩@46�v ++�HZO8�)�Iu/���N�.4XW3H�ۯ��T�j-eZ�2����rC>��|����.���ь��i"����Ѥ�-[�]����"K�Fި�n����*9߈�n*��$�}4��'��T�=��,���i�ւT��|һ�5����qt;X�|Sƍ��36���x��v��گ�7�8��}���~�<���ϋNF��yt9�f�km�.3L��ㄠ}�Ԩ?q (���qo�� U>~`k�����8C`g��_�utx�N_3N� ��X�ώS�N������b�����u��M��O1��Y�r*oLD�<:�?��b���H!�`dKc�lw��6d�Z+S^x����ku�������F��F���;K��^�i5�-Yx�������|�B؟X��y���@"��%�I ++�߂�+Ax����Z�ʳ((NJ �v,�o�ђ�Q�-���[8ˎy�B���.��8���>?Z����0��QW;qc�Xt2����u�3_�1�_Pn�/ёn��Q������ơ�џĝ�#��c�f,C�m����tg<��\zEo���Y���z������xjV��G�M�A=W���W;�i����> ++��bs�m�o��H�s]=2����a�?�ʩ�N�?���M��de�c4��o�{uM�-�{V��Ē�N[��n�6������q�H� �/�� O}��r �Y�Nٱ�߅@�U�,��cγj��k;��vh��εUl�wY�c ++g��, J.�"`D�C���q�F͡�C��y�~2�{�uh�+�b)�|7K���]����u����qڞZֵ�|Y4-59`�����&����_~Ԓ#�<�ѷё3��kD�#, �(9��dEx�KR� IV:P���$$ �$�0EOTǪs�Z**A�l��jy�'�qu�[$�2<$Z�~̽S��[{����M�o/B��<�-�T4�"�`�" ++^�4.��j�=_fs.5*٪cI2�i�7���`K���C�uV,��,y������<� [�����Uޛ.�˳�nj �U��P6B��c{1/����cX��[��Y�����B�i}��^�ɍJ�6Y4>�_���sug@)7�Q��:$A�-�+�T�E�|ʼȦw���f�JҕXq��73��ޕ����L�7����o_��_���yN� W��F��n����]��)S�ehraS6aӹ�l�����rA{�I���I���Y2/�:�ˢR�E��[�u[FΖ�fc��<���.����a��:%��SCȠ�����-���R���n? ++�5dë��+Y�D:�A��x�Q��}�J����n�����c�������v]ce����s F'�~Y���v!��qZ �DC���Z<"���0eo�;�#�E�X��֭]_�p��U^�Kf�7n����� nf�Oo��t�[�A�y���\[�~n�[�9��E����3��2� ++�v/+}ߓ!$M�qg�����d�-j?E�-��E���Ր,��)�+����X�"D�6qE )8űD������֤ܮ�2N��yY�{}13 sP�Z��E��7#�3����SK�)*j����6p1j��Q|L�ª�h]���4Bn-W����(�vTj°�ȵ��k�nW�m1=���3Nt�,�Gv���?��l�u����⼝W���(�b�"[ޢ�,���� He�[c�X���� �h2e�_�M�ڑ�D�AQ���|Pֳ�d�M�z���W��Զu�+�H5x]��ڹ�1?�I-��՟�wd� ����:η���B��&���tǖ�b��х�NZw�3�EJ �$���xd��.qT庐G��k��%�H���x�n#����5���z�!o���X�]S8��%�����y�Om�%�H�=�T���~�9}��ui��3��m��}^�G��PƧ���f�-�:��x��|.�%D��to!]dc����O��m���^�L��P&���Z�vk3w�����7�|�"}��Х쫅T�Y�C3k�D���� J��wBr*H��^>tB�.iVmDmY�˸���fi�Δ�3���0�-��[%y�o.��JZ~B��I�C��-�!/���~� ^@��?���!h��CK�$N�/�R�{�+1�^ʝ�����S'�(�5�,E��[?�G�K2�&�}���� ++����I/�GL�i����Hg�v]Ο��.��e�����),W揊o�������dg$���b�>�6�>!���)��f˕���p{(2���!�oqە ����>�B��0�~Jy��=��.zu`Z���:���*��@u�C?��o3��~�"�9���8�m'���z�����^:�δg�+�bA�&�LQ�DO�B̵n�;:���v�9q�:�Q�\�1v����'d�T��^�x�ߴʋ d��`^XA��N��ڤw�3�㧋 ++H��=�635Lحﰶ^\M?�7Ƞ��fZ�w�f���W��R�h"�&)7q�{�].u��w�R��A�I���g�-��$.����=�^�A ++,���;$.��j�d�LgO�����s���P��.K��Ș�2X,6g�o�3�L(&T� kPT�x�+9�-�st0@�͠{��yF�8Y2��I�>�Y��*\�hW����WU�8�=����r�|J��%�ښ��3�=EQ�ByW�)i�&�-8fgvF�ۛ/i!�ǐ���ʤNIN������乞]�P~�`Qco��M�'����?�K�QzȆs��@�I�2�v��T�R.H����]M�oB���N�m�ϩD�U�A2}Ԝ��;�T)�nP���T�:����C��.�������7��wa����3b:��P�@q�Rȓ�\X� yT��`���t��2�<�� �^��4��m�,��0�(Q?�w�|��n�6�Ö��@���pU��S�,�g2�@��,��z�j�f��v�S�8�mGО��$�V�wh]��6k�zw��2V����.C,�T�w��z�� ++de��]�2��C�lk�����_��ҧ`�zMd��<��v�8�~4\�m��h�[�P��.Pk�����{h ++�|��]S����:.�L��n�\�I�㘦�z/��@���7$���ec�d�Bh*�(?����z$O�_��!l����s�w��]����!�G(S���m����G{A�8M�U�>/�]h/`q�{��E��ˋ��>Y�7�_wK�0��i)�8Gf̑�a�$�.�!ް�r�UW�^bR�GV���8΅}haR���k�-�1dE�Y7�sŻ[}�x�I-��eJ�_���0�N(Y�dz�������/g��׳Pen�X涁c 㤬.�wZ�����s֊�qAX�vھ����Q��smY���E6Tڽ�����OR����5��i����<��x4�E ���/}[��3|�w�'���t��!-q�;|������P-*�G�E�{�s����L���>�N4||Sro�������8�|���6skۙ��֯�E����)I��)G)���I��z��[<�5-wN���ÈƗ��[��A)O��������M�C��S�(h)~��\XM_Mw�m�CB�- ��(YIH��A*�%`�� UMJ8VF=27<� ++��^�X�t��:�h�7��ڬ���V�*�\e�XH@8��xXb�eh��0E-��D(*�{�2y��9�}�2�#e���6,�*ӣx��r�bq�I7S�rh|^R��S�8���p)��l�Sx�������R�Q���Te���AT��z�$�W�O�sYǧ″-�1O�}4�6���)��P9w9u��筋9�����(��z ++��C_YVnB���cc�%��z���N��]�!���Z�(� �pap|9���f]�L� ++<愼���E[:It |a3�9iO����+�п�?��Ke.}��js�Ҽ��_���9,=��sy���N�FHOK�)�K9(�班E��w�/��L��Hyh8�(�^������Ԥ���$%8<�]Rq�!N��b>��̪o?\���xI1��[��Ǟ��>�-W$�9ҏ#������l+��ԑ���Ew!-^��]o�'`�%E;����<E��S�E��X��$��?�T_3���rx��V��37����E�%;y�Tg&�[Ne 1�e��U(�n�� υ��H�˕"p�;yf�L���#��K$���QSy~/L ��_:����w���U�K<�c�L��_u�1i����йau�F��3�B��,�R�Δ��_l��P�{^�3\�K���9�p Gۂt^�8�*�wH�_���o�x"�G�r�$���w�\��&���,��bH�0]��n� Tmel������,�.�}���)�P�W/�Պ��C�<��>�����/$P�+�=��h�K�,\����%E�l�D���N���@d����^�,���~��TC�����nA��.��ɺ ��li��xAYp>xO��c����ܾ2 ��tL�)��>�� �G,��2e��0��ȓ��G��R��������I�Bû1F��VPRs�߶^���Ij -�E����HOa�[�>�A�U��c�E�_S����E��x.6�����[��='A� J*@ȸ� F������fji\e���)�o�4>��LP��Uy�8WC�deA2p�)"e��ѭ��R�ӂ�'�M%,)�w��nXݢ��bUp!�a�+Ê�p���NfB8��^�/�toƅ�`H\:4��V�_@�Q���q}��p��>+?h!�z<e�I_%�/7k`A*��g�-D���*nނ��IX��tܞ���/�Ր����:�3$Wq?�����56�^%���r*$�˧�a]h�U���(Z)HR{����#�R� ���r�)�U+FB��CY�LvԌע�a)E�����6�)rX�9��R��Z�����_��~N�$�m\��fcD��j���\�&�:1�H��cf���x��G��X{�� ����x+v�K�ɭ4~.J���Kg�4����ňV)y{�p�_��Y\��yqtTH�;].���2���_`!J���5��+8&��,+�o�o�����K*�_Z�%'x?>���~������ �Br�ς�sϔ3������^N�<�o����>���.�n65�];�-�J���⊄���L�K� �:^�S�������{ ����{��I�Z�8�M��c�(Mɭ���B���6�/=�c�S�'�pZ\�(4� [�A��:!�����G��)���TW�����㽗b�4��¢���#��s>��?�pn��'�va.�ﳆ�>ۥK7l3Ol��Q�[ͅP^4�;8��ț�'Y4�}���-BԪ�xf+y���*�gz�~��f��1'���G���B+˦`�Ymd,��K]e�Yx�v$���utL� ��B�{G�>�_ؐ;Wg����R տ,���+��"R�P�&Ǫ��R���no���(�a�ȣMO��s;���1�����;8���f/�o8�㡧_8���[�d��V����-m$�a���n���A�?!������%z�����0W���-r1|�h�@YA��̊P#7�xt�K,ZU%X���=L�o��&�3��B?�a�f�˟=#-x& �>Ow��D1�?�OW��π|G��� �T(3���7��̓�^U�Q�*�r�.nol�G�̻��*��n����S�S]�]�Ә��QB��B�(]�fV ++7Rk�X}��ek���kP�p-���CG���Q�V��AA)�Đ%��F�r`�`���0����?�Lޏ��P�� ��+H�����O.Y8F��@�8�C��+�2j�h�ڗ:�{'G���OP���W��n��~Ha�_� ��(��шZ� F��@y��k�?ß�R�kDQj��jKmbl"�{��S���z�d�9�6��v�����p�ԊZ#��@'L��E�3K�T��3��._Ƈ}}�ՙw������jn�Q��FUG�.v��qq���P-��������x%5���{.�L��QN�+6��V3�ͪ�0nZ�Z_c�4��dU�����I"I)@U e��f�f ++9,�P^��,�-��|y1��(����Cz�{�n��j%�c|�l5�U澑���H�*3z��b �a�X�U5c��X�cL�*Ep��{�M���\\�b�3�����J�_�)����- 8�W��J3_����"3kP~��:����� X������r�#�Ӗ�n��)*��7�Z!!d"$9��a\b}F�4 sc��f�5�do���FT�T�.��ea>V0r~�^��}!)� ++n���1����'?�o�P�#u<��ofS���ȴb�'�� ++�ܰ��0"c���$��Rn�����&_�y�3겆��Ë�!�!ka��9�Y�b")n݆ə����k]yU��P0 �Ы���2�w�p�`;&D3zA������2�I�L�I�E�7b����ly"�?wT?�I��u�d�ӫ�8ňӝ�{��Hj�5]�ߙ�N�����< S�;����2<�q-��v�H��\�.|��R��!$2Tp���3\$s3�t a� X�����u@�%�g�k�#�5 H��j�&��[�O�@Q�}��uP��Wz�7Ғ�Op�ޚ�iNM��2yB�e;�Wa�ԧ�A(��8�(~`��Gh$���C(�,��28Nz�1����ln��0��N�|��ۉ��˿��r�ο\B*aHP�;�~�k����/�O����E�.0��?B��^�e��q��-{j/�|r/�8��E7Q�Ω}�>���E'*e����d����lj]���V�w��F�^�{6��=�.���z"�-w��`�1�͘:�͆"�h=�[� ��A�3��a$U�͊.���Y�������~{fMi"�V����s�n���= ++��JV��)`�����Blr��CV��G����� dM(���}A��NƟ��C�E̐�r�����g�H:��6Ι�X�,r�6f��3�sf���X�5W�S2�@���Ӏ}Η�Trpw#�K��$U��`_���|�'���Ϸ�6ZQ����י���H��v%�0�P�35����Q��g�t��X�^��m*��\U$���u�tlEB=�-?�q.�\��Ն��m���(�d������׆��;�AM�o�Lɍ���g%�A�ǃ�N^�ݰ��M7�%�^��v�0J�+��3�" ++8��^FH�ɺ� ���?/�i�S @����H��Ep�Q�b@$�%�o�1��v��V��x�7�'�;�ܹ����C��.p��W��+r�j�D�� ��|��m�Rt��sv;j�����.!R����Pn8\���2�J���,�|t�Vv��0g3�����w|�Oq����3�Z$��R�OMZ����ԟp� _ٟw�)��[��?]1��1�Я���)�G߾�d��u���/mn�}��F�_ ++��(�w�h��;��]���^JNP8X��?�K��dɶw���D��v���5��G�Y�]��y�(��g�`:�A�%Ù?�˗d�9㐢�f�u�-�q�o�4E@����Z���G#�"D�S�/����������7�Km�u��mQ�V)����J�>"1���p�8kIQB~A�k��H[��A%�3k<� ++���d���gK�d��Zr��W&*�|��L�4�3�������}�-*hw� ��܂C���]|�2�sr\�3z�_P��g�H��u�8��Um9vQn�ų��*+�~i��%fa8�pJ�;m��@<;B��;ޫ��j�s�?tV0��ُr;����t7��0Qr���_���T$���%�L$��@�~j��Ξ|��A��B���S�s��>��Ri�@�\�nf�?�Ę�&��N��XɞM��~{4�d|"'�ʤ���:ˆ~������R�1#�ς�U s��n+�*�$qi����I���Bw�� ++�d���J�"�@�\�z��K{���# ��3�8�B_`�b���@<t�g�>F�8�.4���Y�p��%R.�r$H�y�w�,ҏ+��Gw-��g&{��tP���mX1� ��3�!h{A�4EONN�5?]t�=`��`iH�|�uyv�9�]�^������&�I+�)B����LslB!xF%������ ++�����?۱+��߾�ɲi��y�`��`q��0c�'���#g��*j��A���F��y��|x6Oˢ��io�}u���]x0jG2�h�*��LP�D���:E�����g*��,��HSU8 ۱��D$�<���~0�K��N�� ++��3��!tu=q�Ѣ�|��o*a�ߜ�#Ljr�))�j��60��]��(�y�QP�f�4�4k�5]m�m��%�&��[pp��ް�4�6�p�{�o�<�m��m�H-������L kA��Y~̺O2"���KR~�5�ۉC������ȑn���)0�Ǥ�>Y���B�z��)O`�/����q�+i������|᎒�s�11�m�[��=B0��X5�O�k���,I����TXm�Ȍ@�cy�1OŵnV�p��i�&��hR�P���BWz��[�lJY�ݟ(�ME��~�9����35 K�h_mΜ�U�Oq˨`��6�n��H���<~ڿ����㠾���#�i��y��@&�X�|_Y[�����B��=F����������V<�V�U�g�T�����=k�NA�v*Wqɔ�qCw�z���o�\+�Rnd\�J����['i�fO��?�'2�#%|+x&r\���e�&�d��9/�M��������%^���"��dm�an13B�0v��jx�c������p�}���&��m����hP�h��;��z�_hi�+�x��}��d���*�m6��yझf�y�R����1Sn`�;U��{s�Ʌi��>#'�.�y�o�ѹ���qns&�W�P��-��$�~P�!����ft���*�Ԑ�� N�04�'�z8�y����J(�t��f���6*��,���mCdG�'ɰU@,]�O�W�:H��m7lC�߬WhO�8mEza�ż8�鵜k� ++��d�f~ğ����R e�s�C�?1��m�ٳ��4�����ʍ���n��4���n��k��y���䌗��O!��@����r�����~D��ܾv^����1*�@gY�ş���flEo�����9�?� ��o3���!���P0$5y@��Gx��� [ܣ�ꆿE��#sn������MЄ2u����p�����sNjr�4C%],ЅsX�֕0<�{{N�@���_�i��L�ٔ��A^��=�k�!���dm���[�s���Pj ++N96�t���@!��[�;V�i��?VmZ��T�Pi���+�$e5oE�(��}}��0��Y�] ++.�����~���-(�5�wa0�~=H��@i|]ie̝��ð�UB�T�]Pp��]���:�6��0 .�H��qCۺ��XQ�mu&�2��̐�vE���T��c�E;�$$�:sO���E6�@��7V�%#T���� v>՛�S�H��t�Hy�M���g�FC* �۴��|2�v����7H��B@��8�9�,,(�3F��*�k���ME���Ϭ�m/�S�����9cS�.��!/��� $U�.~�iy�ȕ[ ߱�L@�/��囃�9h�tJ/B����~����S�1@M�-��gf?>,����گq^���bC+C(Ze.�vf�\_z��������o���N`��-���=�SP<>H]�_H. �P(J�b�g��[qb���Ft��(DG���v�]�X������M��?���xT��4%DoK��B�ӂR�6��6/P^�F�%$�\5�ZCi���)�lh���>l�5���]�8�5�7���8���r�k*lx���<�f���~A{�!o��7��7g���::���yS M>�x(�Sv����:�M!P�_e�8�g.Y]X��iC "���f��W�l\�ӱR�^���`mqǸ�*2���^�L�#ɒ�FAD�!��E�W0�T ++�ǣ�`Pe�si_�@�yǣ>cj.�L;�&B�bF�/J���!���*����/ ++�V�� 7R�Bve�ў����.�d��%�V�,u�ZkI�mV絾 �p=O�)��v�B��јGNK�|��r(��Es��oZR�����ح���!�6w��W\|k#��Ĺ����FO�v��=�R`�9��,"�R��T�[�d� $K��)����%Hr&J�RP�8�KٳL���Zb���Γ_vv�5��h$7�50,���`��>9�7�y�kp �['�V��+$�n�ֵ����m ��( �MV��G����riX&'s'l��g6{�l��U���/���G�h�^���RJ���pPB�qIS�J��)5����Ͽ(�*寂%����'��1��H��1�\z�/X���@A�BĀ�5�O�����Br�7dA�݁wB���z�r�>)��+�U�E�T�f��8�_�_��DV79�p���_:��gQ.X�� (o7f����@l�k �sˡ��v� D�ݒ��3*w� $)*���}�鍞%�lc�X���7��O��ۮn����z�Q�ǫ�*�27�λ�f� @�[kF;��a���=�`�P�/-���kr���G��@��Np>�A�4���>d�.mm>=D�!Y]5�X%P�(����lڨ4&lı߂��BA>�y�jw�-�xq�;9'��2�ɛr��r���Ue@h5 ���]*��]���E3[��]ѽ���NbM�q�{X�t�����Å�#2�q_�K�Y4��$��H��0O��\���"A�vMofG�����^��@@e0�(�u��7��3��?p.�@� /��S-(�kN���v�[�N��#�����f�'7#"�-����C�h�:g+���\��h�E������R$9�1�*�R_2��y�rs�F���(e������@kv�1u�$���!��w��D2aF�>�lF)���[�tuL~-�1Sg�4�>hL�j^=�sl%���� v ++��AL����6woSWlq0+�=y'�6��`��k�o�+�k=�I1ѻ�&��A ,0:��v��-h&=R�^{�(禓2��x�������e��`:�{�V�L�}��e!��� ++��-Zp�l����u9*��,�\[�f�F���S�Ý ++�;���]$�QӑhR5�[�ffg���2t��:�w��u�ච���[�B����@�������a�۹d�Jy���haqS�V;� �������A@RP��G�۬��H����B<؊!L ++���B9\�Y�ĺ��cg����Y��� ��V����^�#�q{�^�q[�&Ǹg9x-Rgݥ��O�/���-�f��l�dȍ���̡UP�EdW����b�g ++g��-�k6��ٌ; ��2 ++��5��0�Ts1�����0���h���(�Nj|j��[-��l��GȎ���"��X,���x+�tWЖ���:s ��~4y�=��q��|ఊ�6`����e�-d�y=�q* x0U7��4-VE��S5�p ++� D+�*�HAY�y�i�:m*A��g ]�ڊ�I�vX��zBm�[�=Ҁ�Ȑ�w�� 9n}���i/ǵ~�q=���G#B@��*X���̮�:�j߇^Iϛ�/�Mt� �;�p�1��6���� ++P�l�0������+��F���*���}�� ��5� ++S�����S!�1�șB���1�N�}�W !�l4�$��� ++���5�]&��&�Z4*z�,��뻿��T�>?��Yk��Cs�5\@AY��q����|�s��ϱy�|�ɶ��O8��$��Ƨ�O��fB!�"�VH]$�<��0)4N�W��q��v�(g-�$?��f%��A������=�Y����'�//������D?Wt<��u)�uلZ{:| �$���(ӯEߜ�8pP�ߚ�a�8� ��x�|��]�v��n�Vn����6��;�� ++ycfyG0�p�M$�ۭ�[�H���V�ttc� OJo}�,�^p�<�Kock��b�9��j����V��m�q��F�h�N��wm|��v� ++r�߲��As�z�[S��?���g��-�<���»]���iNw��7�������8������h3��זU,����X}4��|Z��T|>�?���o����f�q�h���gwN����X�]��U�-�~#t�EMb1�X)#��9��}#���j'? ML����oK�Sε�3=���_��2��w���Ь`d��T��E��>~bz�Mn�����j,J|5Y٢�������;Է�������xs�}1P9��/�@�Z'�����2w��}Ņ\�����}!��,�RI���O��#����� �Fp���&�5ZE� u�J��l����S�o>�S�\�Ҿ!n�Cz��o�h���`4�(����h���ԎmgB��Ϭ�s�"D+cc�ݫg8�Dn�MN�_��I�C���&�Q8�P�z�7�3ވ`��'.ޞ�m4P(gTk��>�2Цı�/�rq���1E�����������W}vNK30�G���5���4ur�ь���R�u��#KZ�d ā�Hg����L�e�O��*�&f!��� t�:�i](�8��oa��'���f:��~�����iA���&`�������6�DZ�toکq7nS%�y��{���Q���>L/H.�r�|�4h9��ل��*u&��kS�����I��"�4DiwА��IU�m��-fS&"��� ̌Y8���;W�ɭ�i��/��y����2��v�n��ߥ��y�ߔ ��C"�a�d{�N���`�.��E_|c�k��6����� _�����^Q"�2�$�B�� ��� ++�Mt�S�!r�����B����l%�,6v���x��7~2���(��,S��}���"K�[���{�99���`L]�ţ�;^����]�s���%��h�z�p������1�8�V ++����|�������"�\�C�q��w���"��<-�(�?��S��Z�w����?"j9�)[��)/|�<�ؽ�װ �����T'��f�G�5��f����A����AKH{Ɂ�+�����B�:�xk|V����7���I�2P�9P�����?�0{n����#؆�1_3�<��o���> -��sJ?����^�S��P˹P&o���^�jw�.H���2!�t�7�ӶR�Ҽ�@of=���%Se�8o�b�:��"{�����J���~���#l7a�.|����X�����gcԳy�i붒7� v�;b�<?���u� ���6w�I���[:bx^�ys/6���A�u4��=/��*9� �F�Ʀ��T�@L#�Ф��b�c�������x�J��-@��q�Ra�j��P���<����w,7�0�>#w���S�(~�#�ʞv�1YC>�Y ���)ַY5��ȏ��_�a�M��08E��Au8�ᛊ��,�}h�w��>�&:w'�e�'�w�ȶ�g���SJ�A'-,>i?�g?0��vM�aC�M�sǩ%y�Sc�, �m)mWPxs��X`�ا�:*%F'��k�8<�P�浃�.4ns�>��55+�������c�RX]kX�0���dq���)��K����'H���7J!��0D���<e$Q�e���_J�̼�#��CV�Y#!�'�d�6����S>3�i2��;ZF�;B�� b���R ̆��� ++rڙ@��4υ�L��1��z��.�T�4�O��y�/C���� ++��a�XO���4��P�w�v��Y�g����ȓ?v�E<��[��,#�M�s��T}p�\0ZA�Ҫ���b��7��b�����k�������� i&c���ߑ���H�4�6=��oaX3�Ӊc�˃�v��ou�"O� ++��,��Ku��Ei#rP��+ʼ�6�����r�l%� c�a��o�`$ޝ�>�jp�ɽ�Mצ���<#��w��_�'rd�����I�pq{�Z�a��6��*� ��1�`���Y���7 ++5�b5f�#ߵ���G\� ��P�g,v�;B8x))�~�oy��b�3�ap����y�O�~������)��y�d ++_x��Y�"��}~eQz��z6�msg�l�q`"gW��"�!�M�(�{��twT�� �!��a����: �}��\m ++�y�n].��7�(g�����bg�_`�#;,��V�:�� ++�� �ÿ�8�]=����P����u��w�|C����,/� (93l�UR*��r�@pbX|j�tB�3�?$'a`������Y����N�}J��L�L�~G]�~���` ��Y�"1�w�%�G���ķ'�)���}IK���~�BfYҰ)n�U���Q�|H^��������,վ�:�v04r3�^r�U�U"+�j�y�v�p�s�v�T^b��>q؟����Ћ.j�(P�b���kHP��0�D}�+u�-Θv��F�����` ++�>V̘�m�R|�����H?�B�@@�S(�<xY�\osZ��]{\��{�[Ђ��q;\FmE�00����):�㢙�>�r�m�?#�8"(^�C���8&M��VN��a� ��7ԏ~�F���Fb8ͨ6/�3���ྪ0�V_�:�&���w�채�����[�o�=>(���C"ì��v� ++N:� �uL�\��,��iY�A��VW�;���a#��E ��������tUe!��Y�G�x]�X�������E�kDU� ++��X�6�W듁��(_�iW�Z�%yf�7�]���v��PW��j}HA$��q�!=G�날ǟ��r���qt�#L�(wU��/��ա��y���pa�j�>���,�0J�����-��ysR��Sx��04����2+f��]��|�B���vq��vc\d�i`͵��P�Β�J_ �=�D��ې[I!�ߔw8���@u�5�&�fKW��J�hq�Q�ӆ^��p�y?���fϓZ����1ғ� :�A���4�d�hW�,Z����N�)�ȸ�Ҍ ++����� � ���C6{p7W��E����P�!�{�٣���heU� B S�Ej����[x{�m�������3�U��9�����A$��'��e[ ��˛! �uG�X6{�g�7�z[��i��ќ����$1��&S��`{��)���B�\o7PE$L��Yf ay�}�K�u�%�.n�D���I����H2��{�K�w��S��V���I�ߺ �Q�q 9�&�QUB��=��z}�}��*�W9j���e�`���!U�ݑ�#���{?�/z��4�i>��b�97(03[P ++�=+|��f�BFe:���8�*�����Fx@��:V%������|�$f9�+�\9V��f�JIa�($EC�8Ri�k<��1��"�M㦴���b�l6����Tf�#*H��C\�h4�2N�g�!�˺���#��y�"@.�]\)W��G�H_��+aQ`��xe�q!��+I�э��tm��ڣ�.I� �ڿ1oj[�}䑮��e�؝�Ay�`����(��bjF���NUF|��U�EX^� <K�(�ol+(��bd����G��`��� �ş䅵�"BV ++��0��i�^z�l'�6^3��P~�佔����Xp��`�@�'�F���6��xn�C�-����5O�{������!�_�1�����z�v��ntnX4&Xܽz�R��'�y� P0С%k;[���������2'd��N��LFO��͋X��C����D��$����oҰ��J)l��V�j]=LB�D���0վ� t�xW�8�4#�Y��G����j������(����m������7 \�1ÿh*�r��"s�X����@8�"�h`Tx��BzLJ���%���y����*Yh�x$-��e����0�����<��/�Iz.F&���S.:o�W�9�����Ƞ��r�,[T]vk#k�j�J��s�2�:��#��/�uD���ܠc�98��*L�xz�X���$����;N,����)�V���2.���6�%N�2R)a֯�x��+w!��.E"��'.ă�z}�"cHm*ko�J��[k���{������� ++��E��p�s��=ڶ�,�d�q=<t���J���?s�x��Ͼy<�\��ewkN���s.��S:Fn�)# \5�+��3�����iW)�F뱾�~�fЫ ��q��[� �>��c�출��%�-8s;��`�z�N;b�>;ܬ=7�2�Lk�)�Z��&1��S��.� ++�@��[�B��wҭ��'J�ݛ�� �Jb�]��Ajth�:2� _wz�����-m͔��]ow����Z ++�?�Bn9���Y �r���g���zS([�ώ����c��'�#�U���O[�Y�p�)��>�^PR�E���W���u�4��H�GN렀�n�zL.F�ή�NxFj*u��Oq�֒���G��y��rnMw'���a�� �D�.(�#����&(�F���BC�ÿI��څ:=�k�x���:��9�X�Y!8ㇳae��Dm G�g3��S�r|=���An���x��"/8V"����tf�d�\2 Df�����G�a��-fQ���3�QX�F~��tn├�ĸ��]�ѸM<gZ�0;F����,q}_&�F�̈so@�Zu�_��q�Z���y����[�tb��M|�{���?4�i��"��b~%M�+='�+ima��O��fʻ<X~ �v'f��R3*�c`�jP�k+�O�m��������-���Zߍ��o�?����˫i�� ����/ٖ�������^���P��B�% ��͟Ξ���f������D(�@�#��y�D)Z$��#l�KA�_��M8=�у�B*��>aՎ���:�]�͡D����ﮝXJ�&�ﮗ}�v�$��6�v�/�T�m��ǝ���,%��С�3�%��PjlI �WVg�T��� I��D ++���j�� �kl'�T���fr���a�`Ip3�W _�ly���d�sS�ĉ6�eVJ8G��:b��F��4�,zA�Ӭ�r��<��A�H�/ݘ��D b����KE!��H��V�V������,©?��lG{��( ��,Ģ��1"���h�έ��ɿR^�q��5d�:gWN_x_�.�e�JT5�Ī2��.�Ip��v��Klw��{o�lT@��kD@e*�����!��T�D���l?���-��jd��𬜆��:��W3U.��:@��J�� u�ka9 ++l���$`��{��Y._ʉc�:I�������z"f���SK��c+責����{�pd�HQ�w���m\;�PW~� �ȩ���2G`��v�S�M�Ua��X�%Ѣ&HJ���m���?��?�VW ��v��x����@�� ++\�W�.Ӏ��@�.i��ܡ���w��*>g�;=��я�o.ٗ��ңq,�.���ѓ������j��2rM�7 ++��f�;^�<���H�<�]{)�B�w��Ż��+H��h ++?��(�/�����ԲQ��q�*��QWR��4�>E��Yk�K�A��BWJ3i��Y�V��vX�a���t2P��m�8w�6"R��_���.��ă�D������^���D,��]j�a��9�����< <�B��k�Q�����I?�m���q�8��hV��)����;�A�2��C����GT�Z���*E�WCKE���?���aV�#�`��lV�y*�S��c:��s�C����5ĞX ++���`rO���5���?�Ŝi*?�Sd���ﶌ ++x�Upw�\�.-�-W���9Xs����q�:�u���:���uտ�i�d�?z;����GnjCF��"˻���?XR咩x���Ov�ۭ��锵���>�(���T'9�N\x���� � �u'�2#4�ɘ[w}��LeM(P0��u(<����zT�'8j3U#�'�}�?1o>d�ln>p)'����];���\��6��J�G�9���h�W鬒:���O��vg����t*_-UƆȧ�y���a`;aJ�8E;�� �<D�����~k�V!Y�a�D�?��|o��M�����i�ff�Q�'M�G}ܞuQ�rC��y0�(b$�`f��:�ec�G-�Û�䶠D�vx�d�9����D�����%����b~��3p��L����/��{V�̄�Z=�a�1���^���^/�쀕��⍺%K�X� ++20L��"c��o����`��ȁp*��!dw�p�X�X|��;D��-R0��f������P)�e2E������fx��0N���~]k�/��Y��A�h���9D'��lB��()RUym��y���8S`��k�:�VG]�qd�!=ꮥa�ﶛ%�'����K��:�<<�4��e� ! @���h�k6Z�����p���cE��w���p����'fڑD����J�8��z/��{G|�f2��^��q�$Tr��SیϘ[h�*'TD2A� �#��<��%�Y��7����<"��'K%��L��gs)i���>F�S��'2�I�XvyD�2��J�gB��!�O���O���ҽ��Ų�j.��?v~�5���S�����f��Q<S8��\Xa�k=�o��pn�:�P|g-&��?��r�kx�?vt�\f[n����ٿcB|�����g���D>��=u3(�Y2b*Y���=�Sor;Z�)*��x�X��2Ae"��ɦP��Y�Eݟ���ׇ��f�$s:��*?��r(�Ǣ��#!����M��6���B0ł��ma�l�)ET!�ϐ�~..|>;�m~��,H��Y�����ń*}C!T��Q���3�rO�+�xm� ++=\iі����Q��+���.��2͓��Iv#�$Z�RXE�*t��9�{������',?"��h����&�C���R3�|�FD1t�p1�2B���~�Xq�m�1{%1�2����7��!�A�yEl�y���P�w��N5�'=�ѧӱ��+h�H�_D"��:�B3iQff��a���ґ����",���E��S p.mt�wI/5O����n�o�R<n��!���}�"O0)���8v4��G��9����ģ������/}0?�W�����-�P��|�� �Y���=�7犱 ++�ZG�x�7���,K�<��}Xk�xq7T��l5���r�5S�ٜy'Vb��̉��ۼڑ�-���y� ��[R1���EJ!X�:u���g���Rz���[U�y)�����b2���_C����]���v����n���d(8����E&Pt�H�,�ø�\�q��Ud5��G��^�^q�@'�"̠HPt��ʌ��\4�*�F���z�ȩ�-@�D�gcԝڟ�3]Q(T�P����%��4�LQP�?`Թ�z��;���E@e�Ǧ���R�gl��&¯�Y��w��-�x~'���Σ$�$���{t&A��[�������ݓ�n�E��@x�O���g�mL��ڝw��w��v+��%��_$܋�L�ㄍ&�8?�,-xa���y%괊,E�qn]�黓�IXv�T�R@��E�Ă�g�+��«I�XR!���T��t/I��E�&L�l ++�{M�t�Z�nVvQ/h�?�>L1��=)���s��x��e�%M��1!���7��.�n�X+��D��f+=?���G}��Н��eֵ��ک�S�J�JߔQ��2��J�e�HI��!r �"ן�Q� hQ��V�k3��&T��Lx!�s���͞��Q�Hp ++�}�eaC8����T �tG���C���1�D�^'�{`�������%q6H�=�َzF�H�]DSL5ج*�B��!!X�I��.F�R�$�t��DJ�F?�#�a�Y.� �g��&V��O���*�x�}���!ꗅ:�eu���jạa�雵/,Z���O����3?M�ֿ�rM' �!���B�"˲�k ��A(怟&��z?��nn��=��?mf�� ++��%,i��Ս2*���B�E��P]�#K�.��y���uČ��.�`,� '�z��::+�Z��K�%�*��N��ǚL/����S3ZQ�p���?��d#�wv��w�A����������Ͼ�|Buh�]Q�y|��p�#`(�.E��Zf�r�33-n��I[3/���)*�������:qgn|t����uʌx\�5�-Q����m�kuP�+G[����,0�=-)�lZP.��.&�]��]+�5#]%�v�XP"�w!�`KR�e�:/�QA*,�ݮ��v��+}�p�R��)�|������@�c�M�FoP�8!z �d<#����$(�Fn�x&'�8..��L�_k�� ^w�߸hh��+?�~0�>c�[�cv���(�^�f|,.~��C4��ֈ����MLM����N�+p��N�O�UFM�77����hz���q���x��r�|Pt��~Ht/�e�;V��,JY(h��Z_�o�)ݵ���]ѳ(k��F�Q��0���F�@o}�<��=-F�6���~�Y�3bx�u��{+�x�5�4��×�'F`�s�!��x.^O�s�[q=��s��i$�$f選͢��a�Y��3<J늻g�d����=E�B���uůIDJ]�sz�ϙ��;g���/;ow��K�h�^�H9��fB7�,K��i� ����`��f�ͨ��l��*OrɁ��d`��W�d��|����d����!gt߅! alAG�K���E���Z̤2�Цr� �̺M��ݣ��2��#��T�Yh���CvWn ��/&�H�b-�RDU�fw�l}""i�3��-??h��XҔ%�^��K�|��=�T��i\�R3�D��j�了Fڴ�Y���K��ai�u�^;��$$�z�i�:3�����#")0��̪�B��x��/��g�+��Z�ߚ"�������$����s�-���ir|�̱�z��v�R77���%b�������/5/���|!@]ۋb�,��А]"r��T��ڦ��\\���$��5"ޔ�kA^��5K���]ф�*2E�zZ/i2�b��Q�8��_�8����{��u�9#"�r��p!ŧ�� н��u���($؟���nc�1������P)'��M��sr!���,�J�w\- ۲CJ�R�R�B���D?�œt�t� _���� �>�*\��H�U�g���r2�����P���#Du���.�5�����+��<��x�cH��{h�)��ֹ�.�ÌZ橎n%���IY����L��li� : �ɕ���dLu�h����@蛏a)�aɬZ�0��j*H�;�[ɔ�����o96[Ң���뽟Y<hy,o��*$��C`�L�K��B7�iIi��amA�V�5HȚ�+�6#3��-�JZ��F�f!�W�ՆwQwٹC동�v�l�*�= D-D}� ++��v1�b�%�{�i��,�����Xe��!"^n��ݢo�����HC�`h&����*D]�S�q�H`�GT��nB�K> e���������h:�Kb��G�J#�&%-�,�=���J���kQ��g�ȓ�K���f��H��V9�w��_c<���S������/j�)U���Z$�O�ѽ�V]��S���b�R -�������o�����<�f��X0��Bշ�l��b:ʙ���)}S���T�TN���˜~��N�9�}����D�X.�:�+�壼X��t��U�J%U�i���KJ��m�m���w�/G\�s��WW�0^�&��b6�Q�YG�~J�����ze�����T��vTZ�~J筵V����P_��u!���� @v�����(�:�4~�h�~�$��$TI�p��~�h�qӹG��@���k�|a=�A`�:K�w��� ����ρ���lm�� �,.�1�Xq�B� ��~W.ױcM�z�)_Ď|+P>B��Y�_T��ny������J������P��-�d��2��4�]�MtbfF�=�sk��`¢�M)��~�RaA���#ү�|~�M��T �ŭ?�߲[���;l�P��\�3��[�s��_]�0_��ѫ}C��:L�y۽[+���amsz�Xc}2�7q�+��h�߮���O��(f��X�9�^DG��9��a�o��b���泼Vۼ��� ++�� �n��Ex�]��?��jE�a�"l'��|��5�������+�����N����z���U�l�G��w��Z�s����qw*.�3����S����F�~PTR!��S>95b���G�h��`��:��� ��6��g��aj��C0-�J�=��mP�ʗ�j�?��)|���u��#���`6���%�Z�MY�� -$_8�+�@��L��f�y0�(��t�����lG�OJ=�����qL!<���c�L���֣����ݞp2�\/���)��gBɋ�H�=�B��G[f�G͘����@�Ih�/��������XYR����.�E�z�"l�/{���ߔ:���*ay�w�g��)��v䉖�&�UVڈ3ښsx �l�b,�3 �J�MѼZ[R bd#��sLe��b�ʒ�0�y�]�0(K�4��NFZ�I/z��O ++���p�N��旱�h���P���_����#a$1��C"���e��1����1'p���`I�����k.�=���e ++�y�W���|��7�o�Ӣ{S�5 ++���Y���� {��8��$f=��_)�y}��K;��:mx�O���s����ln��嘢E����q��~� �S��r�a����?$M�_'�̍���ܜI� ل��&^s�%�9+�?�Izw����3��p�������yO��D��z����k ���f�<n~n ++$��}*�jy���O�(����������N���~e,9��8�>�� ǖ���р��aEX2�L�j�a�.$g��V���7G��"�����wy����:ƈ9B��r��eȺW��h?F����Lr�D�x�^#83Ic��h�#7��p�u5&Q���|/yvj�*��"L$���eM^c��mM�rUS�+eɰR��z@���f��bxI���Bu��0��f�Xb ��7�]S�T��'�>Y�Om�Ea������K���{/�L�w0/���XLȧ���F<$9��j,�7sp�pg�� OT/�n�# ++���qj���?����to�����}� �:��J�ș���Y���9����pOk�G�I�ѱ3�I���zgz������>��]���8]��?pM�lN:�|��i������!(���!�D���Dxr�W֥tBR��ˊx���U� "���2QB6ߪ��s�,�i�&.���\��ҫ�t�ţ�A��ka虦��p�C{+��CAYjh��.�ܫˋ�(����Q�|«f�.�יo��O��C#��t�S�+��S��J`ZY ��@�K ++%J�-U�9M!��}�ծe��2&����꾑�v�p��u7�\Iw�?G���F�����6i�c�C;z1�R� ++���A�~�K��Oݸ� 6���t�@���u�X?@"��1���`dE�ҍ�"��x�S�ϓ�b�^lCS�y����_y�}�+;(�����7�U4'���aaC�0���|���-���??���^�&�K�d�?�d)~oI������7i�?��]��vIP���5gڶ���_��k�iʆ���'�6��9��i� �S+ ++.��ʨ\�[S����!dJ�n�TtԌ$��p�"�Ոc�$��Z��8Uٝw)3Λ����#6IϺވ��s�m���D�m��u�� >"���� �k�~-:ǡ�#a\�0��������G�����'����B�Ē�Y�� 5�VZ���9D�Q&% �nr ++����1bf�('�a����A�X.S8a�"A���hc��7>��. #��ҡ\M��l)�_��P�6fx��W{;��2&��Ї6�eO���c�9�|�������U'�((X?�]�G����백��q�[����{�`(�D�� �����(���3F����$�V�5�<�v\@���<#2����Q7�c,BR��{.�����������DŶ ++c��<줨��r&11�n� &�T�k, Ƨ|)K~+J=�Gt�}�c��tB6yR�4=U�����A�϶��q��GL1C�S�c�����QK3�h�om��~FN���U��L��6�� ����S�D]�]�ª�*���ڶlǜ�n:��3��ؽ��U .�T���VA\P�8j��DK�]�F�U]�<��)1����Y�T/5D��o�S��+���P�LT��A�߶q�Yp�{Xd�#gH��3���r�2{��Q`�4v��̂�GDq���O��#W��?���NY4��O�t���`Z�����?����� ~z���aH��a*�֏Tqʐ��y�/vR���~z�?����~�C ++;B�����Q�?����y�V��ԛ�Y8���/�q����#�w��z���~2W�^�P�Os��3Y�it܀I���_y��5��?����<�>z�g��ȣD&�V����#�����\8�e�&RC0mݟ�Y���Q +��7f��?�C�}ckS����nL�ƻ�v�q�8Ni�ϝA��0�t���%K y3b������dL� ���#�Ca_����R��fR�B�T�hmm]���R v*!����+��cѨh@�0�4X�@�m��e���L��� 'm��g�ک�z��l#��?oO�wsi�w�"��J��e�����y��>l������F�V��� �=`��vjmC��',� ��0r�F�j.8u*`i?P�3���x<�zt6�C!�@ґ_�e���Y��q��m²/��FA1.�7l�����_�D7�kBG6/<�v=�%%y�~�A:� ����R�B* ++���t������f� ++k ++ں�/J��]��*7�A� ��m`���|w�S~�9��^�?�;�%Y.7�M�j���-��#�}���y�����,��Ga���)O_H&�)��̞�0�Πf��(�o|iN��vV?G�,0)�p�gGDc��>��7��D:~��l�� �~�)އ�?���s�^^��|ɕ�œ����`xD�y �h����@yy"I�����{�w��85y17y�V����<aU�j�)�$aZ���F�J�����,�u^N�VH���������o�,P['���"Pi�� d;�b7���`��mԟp{�W'd8A�u�e��h@=�_"�6酻��=��k����6=_� ��#O������(�'�.�s����5���K!B�`�,��O& fq}A ݟΚ����B���g[!(�ʔr/r�V�Q���u��ir_�/�$MtCj��Z�-���G���,;�2a@p2�֪ߧ����ڙւ�J�A;�3�����g��W���Q�F���Z�sl{�9ӝ�����8�Z�� ++/�R�j�k�A��]o8�����n༑h�$��z�Ƕ��ɯ�3ĝ �ش& `����|1����É$KfعwYYe�%��;��>z3*2��G�:�>�:�"탻jlX�B=�S{r�������C�4>�GY� ++�hi�7��{s��ms7�!D��g,�$~�zftby�����v��51���r*-�:���D3��Z�iA���?d�yd��ߦ {!��֠(�Vͧb&�$��0Y~�[ܝ�����c� �;v����ʹ�F�A�ƺ �dE��q���(��P7�=g�)sԽ�Lwە~��w�R^��+���K>e�١Q���&�f��"j�*�����,�ۨ�Cn��w�=�m�>�����X����r��_��p��s�=*(��0�h'�*�'�edW��� ++șL4�f�/�A3�_���,\�����g �J�/:�#C��<��i%��>���{Rz����o�.A�:�zb�%�m���k�L��:���s�O�u�Nm!��~��(y��2�,�"u�Ψ+f���I�ȉ�w������U)+�,�A{�%~��{���P���P%:լ�H}vغ����r���x�,qyIh����DY����Z[G�3ƽ&�� f�dû൴�;�~�"�Q��.5���,C����e�&0����O}���A���Ͱ�I����@ ����8�w���6/J-���4��v������Ī���_������)ך�A����h��G����M4����6)�|�S��#�*�,6�q"<u$Ha���i�{��7�n������{���7��Ќ-����7)���#a,s�c�^�X�r�p8TR��a_��U�T���)�5��_�<�.Z�Q]��VDX07� m鞉��iӯ*�qE��عk��R��Y��J�淫T�]��T��]�����,�;�Xl3������"�J>�z��K�y,P�e�ZM9�1��蟹���P�l^Q;D��o��<c��j����He����h�T�<�*HN���� He��å}��(dЄ���R�1nS���vh/�d˿i˷i�-,<��-����T���TK��sbL�Gs{��m�$�G���22��"�W{�^����H�� �b@Q2*��3o�;�Tf��#����J����vdsB���l�u��b�p;�|*�ug})�Ko�N�����)�.�TI���JgU�� �JF�c<<��8"z��u+t��J(jlބ��hc��xkaƔk�����@f��]R���'Ke���$���N.lȦ8!�X�����&�)zGl@��>�gH D�vϏ���1*m#��xA��ص*^Jv��gM��-��F�.A���yl��9���w�G7��2R��h_���@�I��6,q���I���!�,�?��1�}O��j����>��@�=���Q���)�hb��X�SX%�G�"�l')������ 2���37�w��;r�>��7P�/}@�7�y���6�~�3���X��JQ���*�ǟ�*�<h[����N���}>���N7Є߆���uo��� ���;w����^f�~@w�� ����2�#1��K��� v���vY�8��|E�B�:�d����5�ED�ر_����z�h��m��9.\HO�6K�}��K=�]�;y#�46p��݂�մ]o��"F��p�i\b�A;�j�;�E��'�!��O�C�ɣ�!8��Y���OmM�ӞV�T"��G�� =�1�W�k�Vk�xA6���F9ӈ��mJp��#�H�-@�!H~Ůz��d}2��E,�vv!�{��*R;�������BC]�H�?�-���&� ���L��\��#��C?���p'֣�ԉJ�S*���=�l���D��� ��ȳ���ljC�����FFh_ҳ �]��p��"^2cj��?/�� Ϫ͞�r�a��ͼS�Syu�Ft�8�@=J81#���Ȟ��S�.&������%��줌�5LEȋ�m�9VL�������e���$��C8D!��N�指'k�o�&��P[> �K�����!c�~�x�i��R�fͥk7y7C�x[��Ǜ�9uޭ?�ή����oSS����cH�N Z��2��؈��i;-�g۷�I� ���1��ZP���?�ȾC�M���r�v�����-%��zU�&AUM)����"�=��B9h^Қ�}�,U�_�n���x ��[㢌l�|�-��q��aF."��k�P�������������Cv�����(���fr~��rd�o?m1�=�~C<��7�{g���7M��u���0���p�\�燃�^0�62L��^�W��̡�v:�7�ۀc�y�����c�5����JE�(myOV��B��������ɟN��=C�}Vq$k�H�.�o/�����b��5���p/�b��>��ܟ`���^퐞��,�-�:F�U�ɷf����i$i��������-�hax/f� S���c1�r�� ++�� "��_Y��\�p ++Z���<.h�=�ޗ;V�� ����g*hj�̍����k�EK��7̫sN�:�I�^秗��$A�6����L���{�����_`��/6�Z���خ�ʷ ++������0�'�xt�\l�؉�_L�)�'C���e�S�L��y������1�z�˖ ++�dF�",���J�ح�N�%Mr��(�����;�(��� ++h���H��k��:��l�$<���%,> �)���3 ���C]{� �wyRMTу�4%�ӈ��p|�G���C�5�^7l�HY��/��e{�H���z�7;*�����&�����7��U�'4~���ũ���M��?�ѶyG�P��v�ݨ����KȞ89x�pp�ȿln1b<�ڱ6@_Χ_�H{k��H�+��^4nk1�hȍ�}k�i��{��n�ˡ��A���+YG]ss�r�_���_�8~Q��}�ɳ�p� ++��+�n�/_%�,��o� �$�,�K߽,��(q[�Kɮ�We��ˑ5 +T/���]��˽��?�ͦ����n}�k����ء��=��mq� ���Wx���=�0�Һw����K�5��L�E#������W����C�C ��2�x�Z&.�.�y�����Dw ��i8����|w�'�ߒ�\�虖w,&�^�/�)��d�Wp|�0�6�v`��݆��� ++���Z�n����7d/.&�2��۵'r{�B�`�0���|�^sQ^p�����T|}��v���������L�(7��K����jûcv� ++�c�3���X^~s>Q��vk��⤗ѐ�I��@�9KX,�FH��I�0�!#p ++xɊ]iէ"�!�� ����Q*c�|0^��Մ�x��5�L@!����&�2&gF䓇<r�ũ���\=�hC��Ǜ]��Lnw�{?��G���rV:������l���|4��x��E`�g�p{*�T���Z� ��H/����-u�#f�6�s�R���:��ʋ$pP`����X�re��l�y�c�ioD��[�hx���T1�~�f�ҿ�s۔%�s���������XFCW� �����k?���e^=�h�������_*o��p�8w��*�Lg_37�X�B�uil���t��-Ɠ��@Ss5������͍�����A�8o0����Y2ptV�d���4�I�*0��Pl7��Ei�|�����䊕���WO�H ���BZ����DR~����V- ++�Jb��m!V�пS��!�f�:�ʱި�6��'Z�V:�U�f��t(���[� �S����cT��Y+X|��Me��>�-8��~ BY@�\M2�b�,,�p�f�)u:{ ++���ڟ��`�D��b[�^���H����٭+1)������ ++�5����)��S�Zy>>�zp��|��3Q�Oۄ1����Va���dm��VF�ܑ�A����K�0����Sy��PL�<~���b)JN�&���`��>1ק���Q�)0g�j�7xee�!��C��.�8�<�P�<�O�3s��,��E�'H��I�p[��"��i�NB=9_�b9��g���i���O$H`��XB����w�����. c���QE��*ے���p*���N�w�� ++�|ڝ/�Q������L����_t�ߔ�$h(���Bx���0�sLh����L��뵸�ch�]�8NC����fIJ�n�a[\�I�ҏ$�<KH'���!� V$���7J[MKc35��V!+p1����K�c�;K՝ܙ��=�3b|�}H�fj���u���]M@��d��Ð���vII��P(��'dz���Pl���~���FP��{��(��Ԩ���$m}G+�U�U��3G.�$����h�Bq0��n�s�� ++z�2s�oc���A�B��t�|A�)�� R*�~��6�k�ꈘ�3�hQG��W��Z۹Y=��\��DM)|zW���I��^˃Z��� $�iK�pY��pqN�YI�a�&-�b���P��6�N�̂����I�l�������=�w�~ؓ+u,�ڱ�?�0.|�����i ++� ��x��9�9�%����u����0���V��%��)��nw� ++��1A~V���b����~�6�W��-���u��3�!V�4;3�}�S�߸�N~cL�v|�4�s,�����O���P��Ͼ��g�P�L��M��2���[��{��d��߰kl�F�:�|E7ʰ<�k�6��fr��mL[Fڽ⦏y�aE���Fqv���Z$Uܡ��l�{�=�.-�q����n�"߂���[b} m���qm���$D*�?~5*�f 7�hܠ�SZ6�윎Tq��u2��<����a�@i�#F��@Q@g�W�:+҉��*b�O�G�̯� >�@_?M�>$�������T��g���У+,.���{���f���%����ͺ�dP�$G:�gXӴ��U��+�|�ZX��;���E/:h%�|ow>��m�n��]i�8�]�?���^o���ȦaO �G�Ɍ)C���37��z �-�t�?>�,D��*� �!�ͳ)"���}�N�g?p������+\�Pq��_�-L������u��N����.GX���X�����Q� �~�??t��(�z�^ٶ��3��6>��xv�8iy�䯑��|¶NmE�=ߏ��]�0As<�e�˨n��� ++-������TY�ß7��{�PK�)B�Fڤ= ++hcb�uױ(\��f�f����D�5#5�8��u�I6��{�(o �b��Λ����t5�Y~%W�qD�͕��1+�aZ�*b��0�=Dm�����j���B��^��Xʩ���U�NΓ�f�R=�a�q(�Y$u4^n~BZ:H�L��rNP �R(*��y��dK] �����Y'�,`�gdS�'Ȗ�C6"�ɟe+�6�$�j�.��+o��A��568/;j60^���=5�N��I���r�Y���s�c�z�%9U��IC,HNȞ�BE6�q6��52�r���f(�:�йI?����8��h�jL�(Fb�WD�v�U�&N> J�q��'î2��3�S�Ȼ\(Y��j�&ಇ�c���H��To�\����@�����6�����E�b�K ++ ++�*j��������G�����{c��M��q^�-2�������ƺ[�<sSm^i%DJ$��ݟE�] �b��*��Z�{��<��$��,���Ky��۟��0�VJ9�����e�T�����`4N��Բ-�oI���带��p�Z���q0)-FB$��^3A���q�|0����X)X8��K ++\`W���#0��3�Yq!d�StÅc���w1^� ++�p�3�P� ++# VX��]Tg�q6���� ��ܱ���s:m*E;�z���(���=������{Uo���Λ'�,�����\F:��J2�ɿ��H��?m�O�,�����z����,1�iW�qRj.�rB-�s��1�����Ӝ��b�1*6�z�pZh/��U�źx35���s�}�v�N�������Ra��1�(�}1�E�5��4��#*(�%����[�9f��q?����=�N��y�e��t����' ,��E��7��?7��$��t5R�����UK`.�]x��4�b�wL�b�J9�SA$\op�����[��{��SM�/�����YĚ.),i�%9�Q�V)Kɬ���Jp'�0�d�7I��|2�EZ�����䬤ڒ�-�1���!��Y!�m' B��%��@�� �?�l(2�f�3|�s�����҇�E;��!+���>X�k�`lb��8�����NmH-�������LA&���q=�6���-f�Q����� ?�6��I$:�(�_�w�f��� ���9Jօ�p�M8Ng����gTՏ��]Fk����wLV�s���9���p9R< 7����b$��*�7�>*;/��Vl��r��%ߥDF�� Ö�ŀ�)�{��M��G���c��6��'Ǔ��S�<! ++i�n�o}�q@�����ur�.�A�������u�%6�s4��?L�x�˅%�{�pijJ�s�� /X�!^���=}�YDY�3o��7A���Di ++��0-���L���} U�..�6�v��4������ ++�c}J�r`k����4X�s�зWf����ģ�Q� BV�t��"xL��P�/p��$�$�QdP�� gG,��A#�<�6'&� �gc�(Mֺ�/Sr��������0�'%�������� r1��F#T�A�i ++<Շ�P"�E�+��刑pj��* %�v�]�yU���Quz Nܺ����"� ++m�gG�`xro{�3��x����:��U;�m�^K*"`�&�͇�a��؞λ E���u�Oh�;}�d�u{:��1��++ז/ C@���4�F33�����,�pR��R��i+��3�� ++8���;�� +�õ�����t��,:=1��Dg���2N�o~B��v��T���\�c���ŭ۵��y��8�� ��3�Oc�ȝ��p���������4E3B�}>!4�|g&�i� Zo�I5�?6�c\KW�N��Y#��4��\FwH��J�rp�������i���x*^��R�8,(Ձ�#�]�������YrnJ��;S��"g6�!��=�q����t/���cliY�����(-��D�+�����f�����-#=�&ѷ��?��+���g����N�!DK�;徰�� !�9k�2���H�:��I1�K�����p� #�t��&Ȱ� ��2�h ++$��DRY4꼤`jX�/�1�]�����q�랱_��G���~�/��h��L����5�u�+��~:��4��u��#y�D=9�5�Գқ%UN]���:���͵���ʣH���kց)R���*:q�=�C�Lb��{���.�x��6�j��{�-�����˄J_mdؘ��w̾.�o�<�ĺ�Kq�<��݂D�D-HS��TB��0FL�x��[u�xֻv4��V���/�8�4��j��x�KMcBt-�q��t`���^��q�l�<#䌣��qsZP$�e�s��%��$c���Vi���uQ���|�0!&� ++$�c�� ++Z9�H��s�,:�sO�ć��m��!Hڜ��A���A��9���I9'A^<r���bQ�1W�ghm���,fD� G� �`����DUXA��T6^��E8E���\��͙Lm�YUx]����;�� ++{�0�/E� ���,�n��Y���r0��4����W�~/���P���[���!��`b���H��9AV��*�q�%x[l�Bc�;��;9�9��w���u :Ax%R^p�� ++^h�Ċ���ߖ;�P���{�i�dac�����Qr���;ɝ�t�Q�爜j �4�(B#!�$�˭W� ���H��'�X�H��P��w���cb����f�'e7����h�7k�r�*��`-�3����!{��Rn����e2:�_S❙-�����8�fL��%a�S���G�hn�<kx���qH��;��E"��('��G����=�a���o~�����rV@�o�x����U�b瀈��F�z#.t[�N�{X7J ++�:PYW�d���~�'�:ſ9W�R��gf��D`�3} ��-9�7m����r��ƷK$ڏ�ۖE5S�E�ū#�����_+��7�0�%G�`1�;2R�A�1[2�Z���ﮦ��M����|k�T��v��V����0VS�ͫ����?<����T)�'/Q�%�-~bL]��<���1_19Q�?,)��X|�"K�佗��AF�S�vqz��0Y ��$�Aks3K��� ���|��!�����)�3�� �����-�����pM� uMm���7�h#�������iɉo�MG`�;/����f͎�Uy����6��G;�wk��E�Ќ]�͊��>�<Y�{�#�������\.G������1A ++�����Pۜ���ͥs�(s��^j;�xo��+Y1��<�T8���A�ڂ��hc̛������{������Zɯߐ��(���@x9m�L������R�$�=v��K�6:�Kw�>`8���e�YN�hV��@��-.x�q�d�ɧWk���c;����ն�V+*(+{I���鶥Z�b��Z�C�����_��}y��萋L�gͣyLa�`�x�e�>��gP���O��Y}�_���d<�`���il�r����7�]���� ��a�[ ݾo����u.�{K�k�OT���E�6��]pou���\�0[�铊��A�3�/edi+�ގ�dD�8n��Z���覊'�Q�m�����ʒؑ]���qmV��~�'������oM�^* �E��� ]X�Xٰ���3��}7"�K���o���d֩@?8lɬ�� �I߆��9�+d���*W�QS����m�9�mRB�)E�>�?"pO��do��G˺=�vǙH�)��������V��f���^��ݾ�ȥ�����.�͘<"a��0"ph"OQ6�e��������oQj����u{ar<�Q�m�K{�4W:R�Ų�ֹ� ++!N�@P��G��-����c��c�c���2Q���[�hQ�^��oVD���h�^�j�j��6��� R�\�Ǫ�2���d���O�B*o;�R�f���,]�/>D�8\��ų�'(\����%��V�����!(�)�]������9�hc��ym��͍v��yc&�� ++!���i0�K�9�B9@o!�� ���h21�kS"�ض����N{��u�GbW'��:�]��{A?�ω^�� ++t�?�V�Z���"Zff��wa�K�*c�m��1^1*���Z����WX��C�sp�+.!Pߗ0V����~���)�`�O�]���E�x�݊q]��!B+;J�d�Q�XK�dAD�eQ�e{��{0������p�P�S�>�U)訰 ++�|@�����(t�RF�\�Gar ++��l4c�d V�t���a�l�!%�x߇N��� ��̟ݤ4��k�t�F�-�a��0C(09cE�+�@�ǣ���h��,twӬ>O�iS`{z�בi"<[�v� �S�䶇hR,�2L���a���Ce�Ljm�l����NKihM��m�bk���=d���)O�"V��@���Q����L����!7�Q!����S���F��lC.bh��5�����~���+k�"�n�n�A��Q �ydO��Nk��v��et�𑂊�fq��F��s�j A��m�ۍև[i��Q����JYU��m��4;믷T�k�v�_sP&����U,��j��r+̬m�['�D�� T�#�dn3%<��MB֬���^l�"��R�"+�F�܄C��ڛ�l|Qx����K/�BKB �-�m���o텒��O�Qp���������1} 7Y������v�ʵ��䢗����ǐ�ך۶p]�`�w>�B�E��W����l�J�4Q^ebuh�o��_Cc�Ly��\��.��d�� ++�V�N�w�^E4��r��f�m��4�{arb}Y�F)��U��ܼ7�x ++�c�q�LK�g!{��/ ++ %��8���I���g���l��9�I�9�Yޭ���֏�ɌͲ�TE �,υ�^�sK��,Fo�T��=UM �bߌu��V.�p���o�`?�&Gy���&��҂w��+��S�B7�����I^<;V��0X���3�Fn�Q���r��S<t�"i�Ѵ����p���]�cَX�����̴p���>>Z��k�!�~d����Ș���&o���ϐ8yü!��>�pV ++>v��3ʰ�Օ��B!�?���Z�O���7�rF�˼�t)!,!k�|B����?�c����0���#�a�� ��K�LM5����;J�}��/���^k�G]��?��>�¬���:��?���@H ++������\vE��#�h�A��bm<��ML+7�^���8�*ڠŵpFi��9���_~~�ϫ�~4�W,8UL#@0�vد�����Ye$��Ea�=}8[Oi_}�=��R�U�9��``��%�����k$(���Zf��_e��n�Y��M��H���]�)B�!Ɏ�A��%QKT������[���z3��m�(����X~�&ȍ����?�1�Y��s�QH��ʬ\���hZa��O��۳~@�S</ˆ��%���s��"���Ђ�&.B%���+��-9m�1���/�M�����.og8EQ�)����zv�>_ �.����g�S�M�L�����ڨ�,��2hl;���a��Q��Y戽m�@���擌r/���s���-���=X��xۧ�d� �ys%-�Cy����/n@ϲD��Qj�d�@���Y��g �dr��(��o����R �4�ϰe��E"���=��|����p�je�Q�`w��Em"�a���>��t ++�,�d�YqT[����5� ++Ǒq��sd���Q\��$�fsX��2:R�+�3��?�m9������0�����m����8� Fv��e��<Nr�3��Bw� ++�tl�d�g�M�qo&L�{QI�L�4 Q7�� ++ M����������e�����J��ʁ��KD& �=)m� ++�����o��� ++X,w����s&c$�\�T��ѼE�?f��a�Y;��̗{��tW&ָZ8ʱ���p/ތ�g�9�.z��3̢_�k�&�0_ PP�����IŻ�82`( ϩSze+��ь��Ӡ� JJ<s�G����I��JS�C;gI�y�Z�\��Q��������H���KT���<2)���x�¥����f��@� C�D1$��R3eU�=s�"�� ���H~@n t��7� i�*�s#�60�٬/�2���fy�� ++5�u��g0��b�z��/��K3����1����x2���ll_D��I^L�ˋ� ++�N*�*��0����Y�H'�s��C����n�����O<������%�s;�Z�|�V1�hj:�����\|/�EˣT�2x}���6��.����8��-��D�w_<�Rn���9o6Yt�Y��ڱ�f��� ++�ֶ�$L��HU���r_����VBtq���6"�"�����/%�������@K +++t)xu=BÈC ++�W�� B��D� ++s�y��C�<��qDX��~C��K�J)J, ++�Uˍ���EBa)�&�x���FT�1����� @xٝ��R�_@���j���gu�}G�O�}9�J�̦��$r�@����Jȁy����q��֡=\����u�T�{�� �0w`����U=d�W.A{�8��5i�Y'x{*xh�;��D�� ++O~� _���T/��>�D3囱 ++��A�)>k��|�8�+��v] ,ĵ��!Ԭ�etfF�n7;��Y!�J�^0�p� ++)�� �0���]�h.!��� �q�z"?""I��xUP�xhF��w�23�I��Qsl�G^g��/0��c#Q�j�a�m5ɋQbl�x���H?� �F���5 ++�·����(�4��b�/$�$�LQ|'��)#�>^��b`�͝��h�S�����Jf|���u-���q�bH���?L�j Ϊ�)��C���^�8;'h"5�`�څ��J�E��zc2?��5��t'5�I��ˠ��Z�)Z�P'@~b*}oZe�$|��>�\�=��+��P�m�uI�J �$ ����]�1͚\.i��\:����j%��P�S4j#�G��1,N%�2���~��a��Ep�x��A��I�:���F�ҷȶ���:W ++�6��~II���$�Ѯ��#j�F�������d��i�Gf��V3���Y'C %=��Q��� Q�h13"��>��H�&���<R�Ζ�;���8� ++ڻt1t4I�l_#y!W�����<(�Q�o�0XL�����L�.V��.� �����{�k��4@@U����x�M\�9�.���y+ #��S���D���)ŔL�*w����Eb�J�{����7=��N+u�߆R ++ ++��0œ�HX� `����ֶvE���\ ++���»PX�G�.rO�sz���>�����] `�<^���D���?X4�d���C^�-���ccԿ��>#��ی8�� ++*��\��h��Qa!�A�qq�������*]��o���B`凍�I��;E�N���v��q��u-y���]�����g(��̿l� �EM�!��f���A��0K��xV]St�����%6þ�b��;k9�x��IO�/~ժ��0�\ɿWq���W�1��2C�w�V,^���g��B$���waY��B����18*��*<E�b�L�eX�s�K��W�� ��O[�!��f9m�a�h}U�!��6A���·l{.��I�AdwF�e�����Y�p��J<<"���!-<,�+��yG �D�m�{������l��"i�5�>���e���������q����2�~�b�@���D�e���U�"w���(��K�Z��}KP&��n�?��XP�e$TbQ�*���������l�IB��+nhg���ak� +�_��;��lz��D8�\냿R9�A ++h���#+-{�ay������>�`Fd<��&$7��BE��Vc'�3o�<��WG)($L�B�TܿC�.����L�t���h�a��I*�s �zj�2湽B��'~�Tf�,�e�gSp �����虢�����ߚY�� "����EJ2�B)�"�{�ľ-=!�`�áR �{�HO`ʷ��E��Ayʰ|{��bU�p~tX��k���8�b֟χ T�ED*XƣX���<-�+ft�Wm���0��]��`����Sf�E�â��JC��S�`p~$���"'k4�!M�҃�������d��Jx ���#�Tx�"��T N�� אF�Jwe����L��"���/x���9Q��i�pd�NWj��JJ����\)�/��%�����ZѾPh�#�I�:�߯�K ++��t�I33��ڸJ���S�^ ++��C�eA��;� ++�vW����mW�ix�z�Fb�S�iv�����wYz��� V� ++�j�B��(e$��'�0��̰�L���$���v1ڌ�{{�g�\aI�q ++�{$&DŽ�w�"߃�ځ������T�lj�8BN�s�|�W|��"X�]��E��m ++�]o�AHŤL�P���5��Bja�Q����!��[���M�b- O��{��+�aM(�7*�*+�R�� ��e:��jG.���)�W��k �y%k"7~��I�zp�=z:�<,Ʒ��sl���{�q��$����}��B��.�<�ݹ`����)y�[U ++D���п�xt��� �����ųu7��qľ��5̽,�`�ki�ɾqn��u�9ᏖY#)|V�ř�R�l+���yj�2���/�eң�!M��?0-��&>�=y�;o�!��>MmK�C�\�RS�����-Ecr�s}\�ى�n��yx:��8�c�y� t�y���N�7r��^L^v3�XNHLH��h�ۉb��N��g���0ɱ��p�oփڻ7^�b�k<B%��&ؠiED1aq&�)�-1����bqJ_�Ă8�K�gw��]��#��u�UZZS�u�v�(�EB#J��GX�@d87��#l��.��}. ++�S�KH0Қ�!%��0f,ة<���p��һ��S:2�g��yA����4S"���S$T�M��:ڞ�1�� ++�%J�(B��#��ys@�0 ��F���RyR���~[S��P_��T�:6��"�����N��'�ߎ���=AA�����^�5�p��Fa3��0an���9���UN&��&����i�8������v�Ĉ#�u�L�����v'ͳYH�<~f���Y��57�j���F�[ߋ��@>3�;�w�|5�4�ƞ�:��E�Yߒ�B"%�˙�FV�$D��f�q�n+��KV�w Sa�����ʈѝc*�[���6�E��֙�;#�j�AJ�9Rbf����X��EZS�H�l2-8I'I��]���;��yi�m�$KI�ƚ�@o)������=)'Hd�c�̓��B����\�2�<���dS�����vR�,�$��% ���x<}��h<-�d'A��w��I琢���NJS���E����@�a1�_0X�p��ر��A?(��r���u�`3On��6{�!�~�q�fv��;S���B)�4,?����*Y5)l{��4���쇁��Z�v���b��\�V�g��V���ѩE��0� AL8��8�d>�VCm[�Gz�����7�a��(��VN��x+yA�OB��!/ԍ1|ާ�:�6Së�<���ȃ4}/<�k-b�z�!��q�͘���R�C��Z�c'�4)�kՏ�J U�����y�Lb[�O{$�np��c 5���c[��h]�[h�b��P�Q5��kan~6*�*T��T.��@!���_}�X������5�Y�ۭκ�p����y�UR�rɤ��s;Bq�͔[�~�#l)p�@�k�B�R2;� � ��� ++=O2��C�E�d\��#���w�<h-7�6FvH�"0���_���xX8-f�~1��+������8$�0ލ��'n1A�n����pZ-0��Zc�[|k�Cq�j��{�}��pH���rܝtUI�1ͪ3�Uz���P5� 7(�}BҎ�B.�B��o��[d�����?~D4��g�-�L��g*}�f[2������}��'�T�K&�Ϧ��~�l?�,y�ܩ�&?�We1�ɑ�ޟ̼ϗ��;�$��ӎk�ŗM�{�^��������hp�#�� Uw%Ţ�S�_��py���)�8IEGũ��.�v �7}s�Ku�?2&���i��䑋8y�8�6�%�D�qmb߯���G��e��o�� J��@��{d�T '�Ktw�/��3ʚr��]4o�!��{ig�D����(��B�~'"zpi����U�䭯oX��huItU�_$���U%���������A &���m�Be����A���:VA�a[��yt7����Y|S���;�S��DeB�Qo���Qc�j= �"UQ��dz����D��p;��YI�C���EN1q ++ A t�M�#L>e�o�킐ʷd<\�����iэ�Ez��K��]�C�4�&�|�����ob����J�$ѽ��oY�i���4��Ӱ6ݒ��}ݫu����M�ĆA�2@��6�z�N!j��} �Z�\�4$ga��~����AXn��wO�����#��`�`��z�U������@�K��׆�T.Trƍ�x*�'lC�=����K����b�7*l.�5�F�)�������U�0�#����~�������mw�̾;oμ�|���'���c��W�L�(���I��YBö�o R�<��&�AZ �U-&�� ++�^�[���;�̘E�����=���$+?��bl�gB��I����vI�-a��4�L�oJ}o�v����%����K"V�j������b�]�gT`YR ���(z��N�A�9>59 S��L���yY}g��E��� ���a~�y��c�C��'M��nj��g[����]J��H_���('�t1W˴i��&#�VȃpWp�s#��=˝���;��J-wz��pQ:��fs�k�ef����8�B)�AQQv�����a��]pr�Ҡ(���I�}��8��b�I}T!��du:�"r��w�S��W��뀀�ZO��cЊS�^a�R�A� N��|���ꃻW�j�h��� ++u�Y�2��;��e���^!���x^�41A�yW�3�Y^"A`y��fߑ���}�䲷D��Q�ab����L�"�FO�8�������Z�c���7�%!EfU�| ++�@ ��@mY�BM���5��M�� :�Ȍ�IC��e����v�02g�zII�%u�̰5-a��cQeL^�z�w�~u4)�Xۅ�t)Jdï$��|��)���u�OcX(P�jlb�=��1�e�xZI��=OL���E^餼���u�M�"P&P���G���W�ͥJp����]�1����lK�8y��9��Gi��Y��l��! ++������zn���; ++�n9�����"�dp1_F39�B�%��Õ��Ż��������+�DB�Q���|0GGO������j��Qb;��S�E�N}xpʱ��� ��j+�>7Ytw:pBҬ��s��ϩR0(��&h1p hg��מ0�㞲����W䓑��O��)D��C�ӊ��u���dB�L��/��C��iO��l5�Ov۱H�=L���!^`@������~�&dƤ���i���>|��!(�z%�K�n����V�l�D �ƅn�����^_ZԨah�e��5&W�q����>ɍca=� �?T�P`t�i�)�H�0�� 6��_��;DqZ�yQ?f��-t�"� ��o������XE���~�]}���$��i\�wDR�06U ++��鉱$N�P5�*ȡޗ>UE�I���.8����Uh%��c�C�x�6̢�=M������q�ꥩT�3盆�y�pX�㱅R�i�2� �8��g�f�m��yhn�[@nQ_\���0�aBrF�BI��ߔ�sI,��$��X�A��82�����b5�r+%-H�P'�a�#r�3Մ��eAO�_���� ��)i�,wJ�O��������#^���/��Ӂ%!��|BF��e*E�#��g���f?�#�"��`�!��!;��-{ac���~o1����9���Q5�B�����Y^)S����jA[lu��P��6A�+Ac������Agaz�ByǎA�]�w,�v�-�������"ܻ����t��U�N�����a�ڛy\��8�[i�n��}�ʏ�xؒh/����z����ܸܤ]��Dr��z4�~6P*5/�Um�8�8E��S��"��)+��>o�t9�e�9�ma�Հ�E��߄ł�b}S7H@>�W���4ϕ��(�ٝ��A~�79A)c0I�x ++W۬�N���3\�Jx)��2v�%�2%=�MJu��$��+j�]�t��_}�W��.q�$�C�璅�'��A�Ec�O�m��XI��I����\[qC1�<�~F �z��l#���e�w��tR U|�������f�X���N��Dm��!�1� ++E^�����*�)�V�%y�� ++A����Y�j� /X���2����-v�0ۗ�O2H�9O�u�O3U/��d���OX;�VZPB��ۃn!���IJ��I1R�<m8F��.h�%(�P�l�i�g5����0I���RulJzB!#�*t������{⎂��+�N�g�6���@��[e�Ve-�����5W�k��i����5��>�oX��H��b|?��U�h]g ��&�&'.o�u��%%f�t��h&7��ހ�Nԥ��l�"��q�8���\2h��s͘��@ �<�?%��F3����]�F;GD))X��@w�L�����+eq-b�����T�gP�;���_�UV����(�t6��wK�M���-�ە�/�DZ2���i�$ ++<��+\�F�l�ޱ����E-@&b��,;��(�y4���R��n��8Yb���N��6~���h���s�v]I��\2�������eZ��֓B���d!�����B�D%���j@%�w2�-�W���}I�ٹ�h�<�P�P�ł��y}�������y:[f%�<�3�1�t�ퟹ�ǐQ��ߩ�Ѭ>a�GtP�~s����=�gY�n�O��Ŗ���Fx�䚋�V�@��|���T�PL��Gx����ͺ�̛ : %%_7�GQz~�ul�>.i��o�|N1� ++�^9�)�;)y�i�rg����뚈��!e�E�ɳ�m�pm��Q��A���o��Zm�A��-�,�da!o�*(BE���a�l{-�0�طz�����w�ݩ�"9B窋[]�G��E�=��oc���(���iB��j� ��f+p��T�68XgVq��L�S�~���\��6 ���hW���F 6�z�y���4x���=��̞p��w����S<$���"2b/T;Ύ;����������[~�}��BĔs+��Pn`����W�Ӽ���)��ۑ�U ������C�� ++��s۱��R�����t�9������<��𢶩G��Q`�A�(����O�F�/�J��̒�<�m���ʠ��E�����n�G�[�1B����G��&Op-_߷p�%��i(��$�(������wO�@���듺{؟�P��k`O�����������W~-Z���:��)�}��y�@,�A�N[�-�_a21�=����]��$�(��8V}� Sfpۙ)��f�����_��r���^���J��%�)�!?�x�,�^Z��~9�; ʖ��8��捸MUT��P ʭ�0Ö�R��,�Ւ0��]()�Ӕ���{<TR$� �Xw\XΠ��� ++P� ���:�O�H5�ed ����W�"_��v�*�R��0��h�Ǝe��Ϩ�_�E�J;9+c�z�o����.�n4��& ++K�m ST ++�ℱk?�>6)����е��g�h#���bE���&L���h+y�����c,_#�Oz�E�,}�8KȪ����Y"Ovl��f̨��.c�]{k+ҵ�dKh� ����N�j^8�s�,��U��,(rҧ��6��c�ڑ����@v�T��5��J�m ++a��m��y��#�0��d���3�< �ގ�@��m�S�l+X<:;��N'�Qp����䳌�r�.�����]�Ȍ�zۓ���T&��h� ��Fꮍ���;�Ȓ��E�Q �S��&nL��*6r#*R��Y�b�,���;v��e�y����|��8"N!l�l@%�Ir6����D)���(fC��v�ʔv��r�f����a��Ap{6uL�L���z��K�2dv����LEI�Äx>'�W8&=G�H:�;%�vڞo�ѥ��p�h,��sϼ�K*y�������w=�v�X pBт��{Ԝ��,l����mw��m|� ]���Y�X�����ps[�[�� V�nS�E���3m ++L�ioAOܶ���_M�C_���}#97$wq�3�/���C�N�TxȾP ��i_��k���ӿ�-ڹ��w��B{)S�<���xo�j�9R��1P�of�tѵh���� H7 \0��6�˽�w�']��i��UQ_'7��(f�f��Y��>�e�e�0F6�1�8P��& ++��QH?s�����N��{1�Ɇ� ++�V�J���C�y��'$k� ��O�3����"X�* ++�pF('\5H�^���":n����v�"h�%|YP����E��ßص Z����_fi(*n��c��JUֲǮ�BQD�0�B���w���{p��?��R��-��c~�dow�?&�%��y���7$�?��O�T?|��_��3=N�zZtN'���z�hq�=��x+�(�z}ޜ�W�|%�HuC�RG��0�!��m�=#���=�{5�EW4�T���1ȕ���_����ȇ+ݣS��T��~�F�Y��G-k�f����-��*�9��E��w�7W���)��̻���3��z�^Uw�+������k끺�+��CZ� �o�B����qٞZ�h��8k���{��~��=k ++z�=���K�2�n3�`jk*G�,�G�]V'�^0��pt4����=/�6����UK9Z8�2�����}����xFp#�L�d�O�'Y����>�� �6B��f�_ѩY��S��(v�T��6��r6�wn��MI|�=��3jg(��Ƶe���^��6�5Q0�u�(��n5�ݭ��[��>�i��k��k�H���#��*��<�F�t���H�(�9<8�h^Yπ�o<F)��:yӝ>9��ϼ�b�<# ����IJ�`���aGC+*�sow�fص�bvk�iU���Y�p}�P�zRഅ��!�d�����o���;�N&��a�n����1lmg��+��� �<_�?�VȆh֏�R�k����\����(or��~Cw�uYD�'R�E��}Y ��~�t��3H��5����?�����q����;�M�}���=�?E�����E���1x�,�&~��Y_�{�w,Dh�����*�Ȅ��J�Q�y6�p�� ++�4Q�J<�ȟ��g�j�ϭ�ӊ�U2�g�?�g8١զxWEcЙ=�Po�܄�k���D�G����IoFJ���p��O�*���RL�D���L����� ++����� �ܞ��� �"M掶U|�<�; ++z���6qs���`�(�Y��'�%%�H�_�����[D�y)�������H4yIhG��Ɓ�3� �F39�l��˲�A:��ϟ{u� "ك�+QWB�j`lk;ox��ޥ�yn��'�)&$l�Ja��%�zE��D���Y@N��WZ$1� ���M�(I�����3#c��w/O���s��_#���g��p�E����bj:��e9�����I.#����}|��PAm!g�8�/(��iq(/2?�A�%������ %�y�!=0[��X��>��L����vL��PÏ��S��m0��^ǗX\+'"�qf���3���e ++S�� �43�k걊_i��F�P�xI� ++�0<����-]=yy����4 ++�럹A�M��!�'�ژQ>�-}���1�����@��#�6�̊kfW���FD7r��C��H�ld<�8�شN���y�R�ۨP��9�iF��Fs�̙y��0_�Q��hC�y){2]G$���;U�bI2���Yd�1�h�6���Sdn�.�m�*z�QC�j#�X(j�B?o��t���73g��a�2\�JaiT�l����8��)�<9�}J�y��o�X�ʾ�R�N���=G;�~�6��N���7�)ɔ�CIՍ� �JG�1;* $�!?rw��-��#a�n���b�M����(`>�N4kkL�H-I��������SUoR��'�h�ֆS�`7��U�X�̔��MB�JGiIȏV.��f*�`TU���\}:E�75Æn� �1$K�2LE��r�К��p�x�A�]e���4 ��إIŶ�x%� ++���Rd ����1����d�O��I��2�N�4 lck�N��L��*GH�TaG��hѮK� 0H����*� ���Fd��ty}��X�g�������x4*Jk��M�ۧ�n�j�8�s"�Hq�N���{{q�\�w/���=����\� �і���2����t�8;u ++��L#xG�(�F�TT��4ueK(�-D|���k�k��F0�95�G�q`�,c�hBOS�PU9x$8I�W��Ց���*|�MSx"L��Ƽ�h��؉&ʿ���+��:��l�|�u<a�P> ����ibLL�w7O ȳ˕^%}vm�S���)���!�<���P�],�gNNb�2u�{���g�!�1��v���5��ع/�v6��L��|*Gq0(�N�8l�c��pi���Ւ��OQ��`����X�t�5����*'6:��i�������m���U,6��,��_�f��[dr..���L��_�a�/�"���/�����(���\�K�e�4�����K�� #�7tD�Ԧ}�)�SxBNq�)`ˆ@����@�4�s6"����|[;^�E��;��z��cpR]x#� ��ޙ��\�G`���ug�ʀ��+�������D���ni�d���9>�'��-�.��@�����=�����bƖ��ص�D�'ː������.>U�la�^��T8���6ݺ9= �HܟW��=����h�����A�kwTnC!�;~�ʗ�T픗��a�,�5n�=b �˸a�5��x�PG��X���_O` �b���߯.}�"��� �{�Mǣ���(��r��< 9��-�}��3#jWo�hB�ٟ���YfM��)j+����6�$)pN�oKZ��(t��"._��{����������]�D� ++�H"j�� v�S�l>��$���륁U'N����������]ba���bx>I?����F`̃ծ\�����|�g.�O ++�`r�m4U7ƀ3e����K���郅܊ 6#���ן�e ?U�Ǔ�'0� ++��&��xyLί[����7�b�����Ѽz�C��8� Ş�댡� [ �����_�ͦ0u�t�b��A�t��?�.[ ����.��O���<Q�]J��v���OCw�y)���x�o�"<`II��(~�����p3�a���^R��4f�|F�sf�b���Ԟ�JV̌��/� ++h��{k@s�{��b�"bX�v% ��������g��f���?��Aq0=�Y[��C��Z�5����ү������$��sL%b}g8�O�<�?D�o����3ʑeq.�M6~����y_���CY�s�lw���~���2&zJ��� 6!F 5mv����0���}���~�Zq�(�f-)蟺��#��9q��Q�J]��+�ˬBy4!'�&YeoI��8/�[�]������������]����Z���1<�x�)�RL���wT(�KS<)�?H�Y�#+����|u�(���b�{x���T�N4gκ���<Rs�ǽ�ޏ�i�^&�g����@��$��������o��n�.O�C0u�Ņ�"�D:�+H���Bz��0cE���M�}�(<!ȿ��`��ٹ^��j7s�`�p|Rmi�e���y�T���S+�Ϲ��������{��)ٮ�vj�S#Px��$LEd��d��dg��^��T����W���R(�U��fZLP1��6t"[�i؛����ħn�Yd{�V�J_���g�hD�,!�ř�;xM5��ID�E� ++;�=DC$�Q{1N땦L�NP���z��2M�v���n& ��ba�Z�����h�~���z�\sz_P�98����}�g���N�Wx��u����&E�����Sa� ���u̥����>����7ɞ�*�Zg�Q����J�x�88���@ӷ�� m p�NF[�5*@ ++(� �g�zO� {ٽ8������ ��_9�B9$_9i)g�vV(�T$����� gT�<#�$V�ޘi;��7\G�,0G�������*c��N�u?͕7O;��o�.��.�Q�v������m�甶'��r2��}�jl߷q@�,��B*���WlhBL��r3�]G��6�Lʷ�u�Ё�a����d�~E2E���c�P��3t����d�>aW`��y� c�HHk�;�i��A���i���>ߡ����혇�ax�FH��h�uQ�+]��U��w���@��e��$g���l��S��O���}�uo�3���@ӒU�0�����ۄmmz㈤/�m����儻�7d�0��z9�k`[C�JѪ�+��.\�r�`Ƽ?�4�t��x�E�b`��n��4�;�a��W�:��\XVD������b���v����_� �h��!�0��Wr��71�f��U�N�0�@#�n�(nnT�*E`[f�S!����J��s�:H&��4n;�y�u ��j�{F`^�~�ҏ�r�C& A��V�̙��^uV3]�I�ϡ �����R��p:�}/�kb^C�U�"Y1sdn5,Wx�x�G.�!���������ОJ��:�(�5%CA�Yo�K�vF� �����o)�1� �c��Π{ ��cT��B�W�S����F��ԩYL�g��i��� c&��"1�gg�a3���vx#�u�"�a�=������`�48�2��{���.�X�9l��p��N����������*��4ݳ������X~��E��xF2#��(�2gؕ��Eh�;&�|�כ�V�2š �\&�wh����^� ��7u����u2ch$��qt�� Ќ������/�\s�;̖���:|xԒ����\���b��^�EQ��HByE�C�Um�nzBnc�]�SU�/{d���bQ7����\rmAYݚ~����c��NQZ��S^<\R��՜{9�r2ҝ���p���eg�P2�N�2�o$�i>p��^>tטQ��#����Zʎvq��1�����9���'�𢫙�fd�~H%w��4ز�&�x�x/�*}Fg9��Z�sQf ++]�Hو��8Gxd�����)���{;� �� �{i��'lnѐI�9̷{tMnB3�t��ӸdT�\�t�|�?�0(0���]�l��k�~bt~���꺟�0r�))((����#)����+�w�kf�$�۹�":�c~ZwC�?o��Q��*�]�佟1�O��6�Qki湨f��3у�M�_@:hf���<�fؔ���,�[�瘤���S^�l��_5�3+�i�*g�Ҁ�<W�0�)�D�&����1#jI��h�l�b�hC�}�Lzfn��죛������ �xP�6�(�Xs��x�G~�,F����A34�ܤr$�vf!I�h#�87i�q�w�@"f�DI�;��c��ic41���7�m���s�pr�-�B�������Ь�3��|�KiS�*hy��f���`��(��/b{����ǃ� ��� ++��[��F13�'��(���r�V�u3ThP��r��,9�%<?)4n�;�kTb!��kP�_M�����WG��+�<�]�CDb�ە�(&V������YƀeA�*�崚�E��@d���)_�R��L_�R��o��B"���aW3�QJ��R��������4F��u���X�P�k�32��Q7�l�#&�UH^L��Rn;���Z���7=��3KJ�Iﵘ"uonR�;���|�k�����Rϔ���8�ѩ���c�t���6��o��q��~�P��QL���AF���:\G��%G��1�p��~�ĸ�3�����d�gK���FJ�4���-(�!23 ����`V���2�p.�xY!t��Ĩֹ:ģf�Aw��mxY���\�����#���'��֏��0�O'83�IN&=4�:�R3��Z[ �����"._n�yF�:|h6�A(� >t��q���p7\�"�Nx��6�W�/l���<s�*P?P<8�XH9��Clr'��t0A�Y�-UN�%)�����K(8�H�%wO¯g��Z��w�W$(zCE$�҇��j8��j� ++I�0\����O�Avj=�m����p�K1�O�2��Ty����i��� f�qm�6��j�T ++��"���I;������B.m�Lz�+��xq93ESy�)���[���p�xڪ#7�S�����r���0��k����[���e��ክ0�3XP��`�(s�4b3���6uv�`ӡTC��w6��j�o�DY��L������j��Wg>W��W[����%f�Y���Gr�� ����'S̍�^^Y=ƆV��̝�C�3���=�*�Q���}�x��&Oӣn�h�,��q�}J'����F�{$C:?�C��㡻=��K�dD�^b ++���ت����݄���ڱ�U]��.`�����J�Rb�����VSF|Y�B(9���PG��%��c/�.4���23����1���)P�z��K_�,|�}O�v��o{�LՌ�,B$Q�ː�>/S}�p��*���qu���_$Wr ++�6a?��!P�;<Ū�����Q��C��k�:�}�(�9tL/E��1�q�;�;RųѶ���Z�����YL�c��,� �P�`�NH*ᎀ��#��p\�mX��L���(^�}�٦t#?�1:�vg��;ƈ#.ţ�j�"��mq������������uׯМ���?3فZ���C ++ _JȨ#�p18c���&N�/80Hw�Ⓝ\t��5���߹��>s_^��k������;�R�ڿ9� ++�%tJh��௲H���� h�^P )�r� bx� ��=�&��a7��xq��*p�+/�Hj����_�f�!���a}�зqq����h� �vlll/��_��d`z��+���7"�q���"�b��d!B-�[pC∙.0�}�a�D=2�A�f�L���6�- ~[��qGG،~����m���p�M�K��$����؆QK\�j�9���������3:e҄���t�H�DB�K��0c�7�z���p���ެ��� �m�t��?lw�%�o��H���B��ə�3?�V�r0+̭ǻUj���2|w�\F�]*]��,�{f�'?N^�r*c�{��0E]�*�� ++?����t���ypx�����}N@+��}8��] �N���[y�7����e-(D=qW��B�<���۳V� ��I���J�����.1��/N�Rp ++�Ƅe�M�TY�lx��0.�c���JC8G��a�n���aw���7^ӻ̝�o-%��%}k~ɼ]���5W��`��Z�}���Z�ܑ��{zYH�{Wg�14�+�G�8Q8�tm���d�͝z��XK6�������s�������fY]=27�!�������=`r`���$'�6��#Q�)��V1�B�X��Kn�M��p�IH����Z�1؎dg@H$���T���������-���㢟&��4ݟ�����b��ٟ���nw�˱,��A�`/�� /��ޔ!���<�Q�-P,p �����C�w���f�\8q�� ����n�o�T���f�����Zz��5�+�Tf6ֲ��U�����������i��ω���߱����>���x7=*�Q>i�{����+������ِ����|o�ok�@ӽ��#�SU�0�>��tU�Es�� �V~��~\}��0KD��"�bL��_�Q3�ܛ6���ð~�E���%)J&��]`����?�=2���xE�0���|yl��<vib���y�A��.ejd,Ws���ڮ]3�}m.�;���WB���$�n������~�J������7� �{{���94u��o ˤ�WT��P�.7�<�y�� ++(=�"��� �/��=8D��@D'M���@p&FaKx���n}����E ++͙�Q�0^)�Fߖ������/˗��L�/x;��z�z�߅��M��D}������^�9D<��������x�x�dh�w��z'����Nk�p�+?m]��ܸ]��+w�%f IU4�i�AH�9K�}(]�ɏ��S�a��́9OK ;� ++%�O�T���_!�u��-/��i���{Hb�q��d �/@�(��D�����&O8+����Y�@�:@8��.��>{���]ߑ�����+�{��w�1L��3x�#M���:Lŵ㢸��e��36?>�*�?��,MudiF��(��sjh�C��T% J!��5�?���#�k?Ua�BM��;P5c���k��cō�[�0� �1�n��a�6�gU�:���5�+�k�P���4kĭ��%[P ++%��}�����W�-�-�x)�|���Ȉ���nkN��əd�h� ,�Nݶ�=KF�W>r�q����).�lk��f���B�WMKq�%�E�W0d=zлg�����p�����㴔*=���/���+��s����~�z�$C�{czgI���&�V���q�'��h�8<}I {��B�x�|�VQ��,:���E����*yǯq�9�kf���G�fWf���]��[�|ܟ�s�"��h�c���:�P�� $,2���/7�{�8>S�T`$o)ǯ�6Ncu��_r ��� ++On ��fi�����1��On*������ޭ4��^�;�>Xa%��5�w����r���W}�a���M��ܽ��556֊�R@�(��q�k�п��Tn������R&~{��g{�YwGu(�}��O�X�ϓ��y�V��<w�c�52�����Ox�o��2�gi �wymx�N��H �v�w�y�3c����W��&[]�t��B�z�qLwO�����l�r5N�v��qV!�~nY�y��Ρ����&o�mJ;.��J��y<�=�W&�5�noa��G�J��G�������m�t��)d�Y�?#a�_�^�ѱ���� ����%T���mg>\ ����q���� �w�]?n��Dl�����ד��u��<�фnS(Q}����4f�8M�r�!�?|��~�<� ��4{��2���tw�Bk��`��ݝYE���$1ە���[��:Y�����z ++�R�~<W5X��w�2)gdM��(�4{���:F��rw ++F����7d��#��M#�d�)�ǝ-b��O�7�5�o&�����Pp{ݤi�Mw�Ίp�V$����9���7i�LX[ �v�%���;�e������0}2 r�����bS�᧯��ӗ3y�P1}�,��� i�� Q��ݡ{Y����t+��e��JLl�kĻ�#ow3�+��M���1a�'���rFZ�s8���gz:�<=�}sb�S��nq����V����֘G�����Eu� ++ ++F��#�m�JOJ�����<M>˳�k��3� �Te����3h�#S�9h����|������>-�7wk�}^W��[�g�^8O�{矓�8�s�u=�UZȇ?a������Ʒ�Y{�����pe���/������|�s��a`>Y��r�$�#�-d�բ{����s���|*q���l��g@����q�3�w��_��7G���l*krD������~�5Z>r��D�&<�I��g���+��Ve�"O`p�cT�`^�<�\�h�����תB�Dvy���[q�®��l�CB��C!Z��v����i ���/'x�<'��D�7��Ҷ�\��>�ō���5P���"o�S�A������Ȅ1,o\�a�2���^J�Q֑&���Jo��')���p���ޒך�� �o,D�U�K"�֘ے�[���+��ܦ��=v����Ii����f�Z�#�v��P���M�䷃�k2���Ao4�<�z��ۿ�;��O�t�F�������*�af������ǐq�F�.��7%k����|�_���P�2dVn �cx�J ++�\2���xɻ�='��E��#��|��;��'����Z˲�P�7Sx��#6p�T|�+��q/���H$���F�/�o�=��^E�S�-���.T<�gD,C8����l� �Qf��U��3+w�r?/H�VH�����;�HA������ĉ~�[yʊ�1nq��E�����Pn��y{G�c*���bZ��Ȳ���wF��x{4j�W�,�g���Pp^��.�J���]��.d̰cr��m�:<(�' \�� �n�&�������fzt�� c�ZXgFg��;�Uǚ��H�m�����C�a�,�N�2�>�m9��O8�tǮ�N�j��6x��tQ]E9���ʙٿ-{��4t�fv"%�"*�7Zf����h������Q��c�w�1���g��Yp7�����:�)��^H�}w���F�la{� ����jm-'�H�>��7�/`YTw _zF�B�)AA��j�fA��9#Y�����n�4o���&'OCf,kz�X`�a{���KL�V�Ƈ~f��n�js��6��'�&đ���1,�v�N^��J`0�e�5�Z�M�]��Ӗk �e�Z.*m��%�g��T��9��ǞXGfB!�|�b1[j�||�����KF$�E˒Lp +++�|�x���4�W��1���X�����Z�KR\���2�I���� e�4V�[��� &nBK&�� ��/�з�M�����n�iG�KH�NQ!I<!D��أ[n� mA�7Ed J�k�? �q��#_�?� ��%�V84��@�>��E/��*p�=}�Ey;w�qq/%��1�"$/�lج� <Q�O�� ���(�k�p�u����'7�6-`Xؽ� LĞf+b���dۮ �2�b�̉�+"�8�r�k��FHay5.G'��l�]�YQ���.�.�^���˪�7{u�cA���v[�,����v]��94�Z���Тa(�ZI-9��Y�-�{����F��D#"����'�Cӷ�ܾ?We��i�̡����MmYXշ^������qzZ%f{7�L��4����79a��_`q���g7.�"�5HR"�gmF���Ӄ^ʙ�<�J �˯?�n�u�/#�R��N4-�+!�`��dl� � ++��r���e�2���2cy֙[t^���eh�8�����r��_/��uc%++�z��-O|/m��t�BJ���5��8šL���E �<�;�2�q��\���lG������6wu�N�P��`�=�q������� ++�S�W ��!���"��mo}��&��ܽ!W�Y{�2�x���y��3VX`4.����a���Xa����L�b� ���K��9�G�Q�� ��7�dJW���z���^-L�~�O���`Y���WL��R�cQ0oե_����ܾ��,�͍eIe8j����H���SWd�������)=G ++L�F\ﲗiڐW'Ի��Bǒ����J��.�=�����TK�,n~�ߟ���F��`���L�yb��h���b�F~\V+�W���ŢRȠ� E��Ry�9��(ۋv;=3b�'�Əa��'�_�|�!+�sk�&��������������2n�/��Q~�j+�ۼR ++$�9I����{ap��}�����I�@1��V�����S�ڥ���Q���`�؏z|��61��LCv��J��<̻]� ++ �稪)Ȣ��w��s/H6ɺ�h3J����r?N�m�o�V��3�(��-aFP��c��v����8g8�!���h���4_-��Y��2�i������%��2�/�<-�����7=Y=�ջ�'��S�� ++���� q�� 9����3�~�r�:3N�By��;�P�c㷜.�>��k^pK�����Fy|�xX:��<���+�ã:��D\�Y����u��ʜPl3�";�u١��ˬ}ۮk�'f����a�������ᔪ��\.�� �C���7�/����_�6��t�w|?N�z7��k~��d!�A��s�@ɫ_�OJ!�,v& 'Ơ��7��ee�m�$�$X2����M۽:@F ++���̯"ؘ���M�y^�v�8�z��j��=������-���5����m�?'���9��n�3g)9�s�(���۾χ�[��.��+�Фm[���6�<c�cS(���X��E� Q��1/��m�3�A�}��$p8%fIc���B�gw��ߖb" [��M�(x�e�]�� ++��^���T ���x�_��Rw���/���YP�? sA{C��/$����SܶKX�;��?��'a�*w!�,����0��0��%J ֤���<0 r�N�h���$<�����_X��+��F[]4��yQ�$w�%j7m�6ɻ2a0�%Dq��K�23���$��ʋ���̂���ְfr��Bߔ�3�"H1���� ++FB?�k��i,|OkA�5����EQ�&�������&�,�**�����O�_�>�|ʌ�쉢��5hݙ*��.�DJ�chZ|�p3ޒ�p�$OE:YI;��,��H�����w�*��XX�^{�[2;��[uܐ�}q.�Ҹ0�|�tB�5n;oG�����ej������i'Ɓ���˟���K�y���0|���Ls�z�����VSb�|ྵ�0#7��=��O��[?�������b��ܖx�{�_o��Zo�;S��� ��s6d�Ӳ3I6����6"����5-6���(pq��J�E�We�ͨ��r���3[q �YF�Ip���f�;#O �t���Ӳ��� ���=��ܲ��b��e����6)�*��'U�<��k��91f��hPQK�B�x�B�A�h��D +m�yO;��_U*Oy��̧�:��\nf ����o�w�u����)��CoO�].U� �;����n����� ܧ�|R[�3�dO�7��������J��^g����a�UcCy@HC��KÏ[3��0�����pD�4����t�=Da9����K%��|Y �<,���@�li�m����'�0�'����p��������9�����3˼�|��=�k�;��g�ת@��j,����ԉ�L��#i�(7��;$c1P��hI�P�I7TK0�@RlMm�}@��#hx X(��G��`���/,�\��^X���y!e����m���O�Mo�AE2���|��S������� ++��Ե���9�;�F7 /�~Ge��y+�JK1��)����I���O���b�n��)tIu��@�O6��K�:l�ȷ2���V��:i��OJz����l'�a�n��j{`�0�Ow�.��ܴ !@�����V(�G���9x�av�Sm�h(9� ��Uo����e�=A;dq��:w���l�~h� ���}��5��x�5|�j���ɱ4�Th���O�+D�W#��gԬ�ld�җ���t��cČ�mdd�^b�v(�)���nӌ7���\|��dam.�fZ2p��6*Lӎ*�|�p?k86L5��e�(��i�B�0�=lM���>m�=�24�7 ��?�_��*ϧ��O��G���`L5l�}�K���i���_�>�����Q3��*1��lA�f6�8����5���^oU�ﰕ����g�a5��y�0�l�;,U� ���z�lJ4B[N�M�ɋH�$�Y��M\�c5���v^�X�Fx�/��얍��74�G@��T��o2�̦���EEs�&��Y�L ����6J��E�2��LQF���aU�6�MȄ;�i�q����������SSҚ��st��"h�N���j�gɻ�#�|��˵��I��/��3�e-��v��Q�#�o���r ��Gy�?�i� ��0�d?���^��^n�"k�b#L?ꔏ1��z�Ԇ,gxV�Jn��m�;�2�6�7U���3�y)n��Ql,��S���i������w��ǂ�n`�0w�6Bw�D ����5E7vNJB�|��V�5����O��2���훾�/2a�@SM[д�S��� q��~��]"��)�&A.�m!A��� &�oZ�I5����2vo��d��2�jmV&�v���� ��i�)�T>�k|�u1n��s�**�4���G����CF�F�1�A�/C@[��P����4�2{�&�TO[��-N��<V�@�����]�q|����)�b��r>���c�*Dvoa%a?���:���0�W��� ++���`8�5 ��c���v,{���H�$N�ݯ�"�CP�9��S4X���(�/�;�3�Q;j���]ӈx�����nw(��]��$�M�r���h���j����ᑡ���!�ƍ��ϩϻ����]@����3�/����D_�Yn9��s.6�ɧ�O���;��H[ޱX&8Hw�w��c�������CQlšh_0���M�w�?�����T�p�r7�/�L�}s�S�?�T(Vj�T=9�W��Ͽ�\m��Ğ�3�� ++7Q���[�AA+�#Ik9�݅Jܘ��6ZN��X 3��)!���w*}!��j�~�9�8�b���|�vGyaG.?��-8��KR�A���+�Q�H ++��Pv��@�#V={���� 8gO �~d�aӷr���+Q�"�Ͱ�<U��y�i�ދ��ǔi#�y�4����W�YMo�j����ns�J�����X' ++p�������iX+5|ތNg�"8NkL�����Æ����;%L ++�� ++� �n�rd� ++�|&W F8$�]P��@~{Ԣ�����S�]����3tF�@ �K\{Vy��LR���[^䚒|���� 8>LJ����� ��)�w�{1 ͽ��'�y(1&��T�j.K��Wi��-R%n�4�,������?B͗Be���)�FPR�0R81Dz ��YK�y=} y���r���rL�@��F�,t��3��=�,ʴ�; dw� ++�(��q���wv�⬩O��_^� \���g.��E��A�D������x<�}a��7[���/�M�[Α�U'Xp&2 ��*��W"H��/��>f�K[��b��vNHd!�N�{���_�o'J��;>���P��z����7��]f�i�M�@�鄋+b��i`���[$. �w<�Yb,���G����hk�b�#n�Xkf�h��Q���('�r7+��(�~�,�5T�\&[�vǼ�oj�b�d�W;�p�t��Y��!��4{D�yy�B�����|�e>}.х�U��P��y|y����*Z�����V���H��n#����B�;����9X^�� �P/�Y"�?�,��lVÝng���O�p3Ж�hf��'ڀ�5渀�"��[и������# ���s�q�m@������E��m!�|Z��|�X�� NG3Px;Bt�F�D��B�D)V���y�<}�d�M%�Y[5�0!�:��w�T�Y&���=�7�p�z`�?�?�k@$#��VwW�N3�OΣ[;�&f)[�;�[ym6���3D�OK�B�}s<͎�㞬 �d�l"��w�.~2���BS(ta�� ����xӹxD4�Z�Z��|+�TbUm��et��x��9��������2X�_�}���WՓF���aL |�k<IJ�I�����-,=n<�����P~.��S��4H� ++㟡z�?��h<^A�Y��x�&�(e���A��n��m��B����)��BT�����@N�;�*���b!���P�}����ny�#�B^O��Ex��L��HԒɌ�5���p��5�5��1�v�>���l���&��^����i�Wg������k(^}B^��0 ++�r��R��`��<�p+��q��4D���Q�o*�9^@�=�k ++�8Z�D �M��P[���˛f2@ѥ�&h?�Z;�O���M�Y���y���Ef��'R�j�}<RCl���g���W�P.�(��r�(E���>�q��a B,��D��)��?�%e�c(tA@)�#�����bd+sḻ��L�]WIlŀ�M_ɣ�E���m��d"��0�Y3�n�OV����h��,�����1���:_�f�Y��,10�pb��q���c�v�y���և��Cn���'n�=�܆P[�N�I��@��4Vi��7�z ++� Ä�b!:�Ur��9����7��t��ɝ`���j�:�P�����c�֕DI%����؞|!-&���tS�.��'�빵f��N늅1*Ê���C�y&��1N���i�"��i¸��wN���-x�ϟ���y��cs/R��Q������+-��1Ht*k75���wKLȪ8�=����(�l�(�W���je��W���p�ޑ���#6/^fV�˺�H�1�쩍������x���6��MVaW�e�u?��z�ydT�E���S�A��s�[��8�XA�����{f�|E�������J(LG��6r� ,��X~#V�R��{��( �s� EC=N�l��Lq�ܡ��s큔�>�!J����R8ƃ���c��K���̡�x��C�4U�μ�s)!A�w�c��{�Fr�c# ++�єHg���ӟ��$-4sg��O�8F�� �0ӀP�B�f����5=)I����,�n�.�qΣ�qq� �;�#3�/�Z�J���a��0U?tզ��� �vK���2��u:G}r������F���\����e ����+�PB�S[д��ac�<�Vhq����Q���q���R�|�߮���0z �OyZ<O�@����i�?��JK�)�(���Da[�P�Z�lN���P?=K���d@�t��Ff�Q� �#�#�(2�B�FB^<�x�EZb4���dr}ӳdY�nk�C��k���Y�wh�>��mwl�^�r�j��H<Ab^3锞�J{�Dd���-%&3�>��Y�n�H�x���2<���S�~�>��>Y�? �Ѕ?�(�j���Z~><ɋPYr3JZ��B�FNŠ�^O8(�������5.�����[�i(�H��r�9�ӟ�39���1��z���<��f�Y�9N����E`}���>���� ++~o��ɿ��)���OIJ����u$X�*�]�����S�J����-�?_���Bޔ����Rf���SDr�R�x��_�> ++���5�����0�s����)>��f!bd\�H�_���oyM*fŌl5�&}���d���x$c����I��ּ!�&J,LE^���% ++�5c2���)�R��L�������+YO�*ҵp�b��Nt�� 8)�� Э}[�0�!�+��W��Ml��,�r����?ؼ<�{NI��I)���<Rc}l�d!1"[A���t{G�g1<f0@Q���0�/���;��&������1;K��: �N�)��a��azp�k�s}C�6Mv�ԓb��6m!Tg���s�n����lw���d��~S�^�>B1Bz,��-&�`�����S��xz��=`� ++���lᩤ؉��t� �"o�m��ŗ����RE���B,+��L�{J�����sΊ�c���p�C��y�@��0Ʃ;h���tD���Ü��$��ꂀ��c�;`^�]� ���Ԥ�M��P� + ++�m�R^p~)��E&dm�N�R^B���AC�P��N���u�`v�c� R������H����B��fwC�ܽ�uF� N ++?dK�zo�2���=�������g��-}���R�����6b�$�o����\52��k��hƖֱk�`(�rV�]����Q Y�Z�O/�������O��8TI��^E�u��PKba� ����i<�^�a3��?�K�����SY�D� �6\�Xٻq:}�ҜN��h�95�G(x�Ȝneg���#�B��9�ɹY�G>0�+)�k�(�,U��T� �$\�� �I���5��&�GHB^%�~ʿ�O�[�f�wa�U�� ���O���D �Kο�7:^���l��L7�HSs�n��<�7q���*wM��s� ^�8��S�c��1:-11,�`5� ++��-�4���R���L�%����;���Mgw�tY�+b4�2&B��X��U"r�\Z&�u��5 ++S�dN�\�tDJT^/�h_?<�H����[���P�`ޡ���;T�L�ڋ�)b��XI�������_�T\Iz�X''���ACo��r��-�� �l��u\�O�&�G���fW��U��������: &��E����څ���A�߮��r�G�*`}����{UMc�0��������R�=�MV��uVm�ច�0���g�_t��o'w��/bĶ������Bi�&�D��.��ǘ�,�N�������I�>PfI�x2%[�\;���t�1揼�����]M*���6�K�A@��O�f���������6��U,i���!��U�����)~���H�(��22<�?!+Y�����[�(�u��Cn�d�`��1����5��r\�%���.��T!��0 �dMJ"������7���h�1kO.��7g?� �����[�\ݺ)P8[��ϫk���2�XB�u��<7�X�-�F�ѻ毩n���a�vL�{�/K�o`��<R ���Bm���P-�u�4 "�̮J(w��v�:ѻ�{ڱw������c';������H�%=�i�t(��V_����]��w�o�?R���Vt���y�1�97�(���HP�m�azI�ڵ�c"恫W��傗'Bp��N�_ȸ����ʄ>/�{�����_�v�42�J$�����l`$X+~�cL!�1�]T�\M�&��#����@�6��b5\�20\�S~ƹ(q2�-?V���2�X�I��gk�����n�����dF!��Z�.�i �[e�x[�_7\�'U��-����e�@�d�b[��'$�oO���(�JxdHt�l)a�����u�^�E��FT8�&��QMh�'�� ++������>�l��Cf.n>h��>���?�"���.�@n40��FWf��t2�Vn8���sF9�m���Wj�ܶ���PV*h}��往$bv���?Z2��ohK���Gl�c�g��.���Ǻp��RP�tKÎQ�̥��;tf�0&AKц؍?@H5��ڸ��[��o�#� �Yíx�^-1�^�KS ++>��:^�� ���j@�c��y�����2c��)�m��;Z"uϓ`�&��6�c��9`c�1J3�~���o����r��@��^���AK�_Q��EzÝ����Z�Nw6��C��3��]�����o�'7AdNp�.D�t|G�@{jI3x��n��>l�:y�V$���$!���tg0�4+��=��s�U�AY7����W�%��z�Q�����U��x�^��f��� ++�c�?M>b�u��둜bڄF��0?�Euǂo�E��2�A@��F�����<�N�C���<1Z9[q��}6��&P����2����~ֶ }�nƩz�)��|�%���#93e�V<��v�� �ނVM{G��H�L�A@��G4x�3ǒa����ǃ���lu��L����$K�oA3���������FJru�c$&��~S\"% ��vq�!�(�{9��AD��F6E�����氹%)l��6MuAY�����'Vo��a�2���wF1���>.4���Z-*��{���~,��s�?�Z�d������QDz,�F���}�{,�����p ++u�)�R>����o�9l6Q�j/\�g�A%;VA�K��q��7h9 iAi^�ǚ�I�.�� ���Sf�s5� ��]®.��f�A/��1��/���0�c!�˧��֨���4b�>�v�#$��vVFKx��`������m�-�p�"Q��NI%��VLw��M�²�=k,�9D����-8��z`�!���� `��<L1�)�e�5�#�b�x�!K���zC��cJ6��ł ++ݰ6�In���=O�<�N�t�u{��uZ.�_ȍY6ߋ4���}:�1�L������%� ++�+�(Ie_��@�1�_ǣ��S»w��bYf��kG�S�˫I��i)E4օj1�_�Ef�)��<K�C���<���y�H�7�����e��WX���6p���K���|�w��l() ���O�%7�$n�&��w�q��RT�N�y� �����?��H"���g�#���3���S�>�O����hR:�@��� ++p�2O�:#�,E`3Ҝ�>����y�b� %u��Ut��V�8��s��h����dd����� ++3z��mێ������)�/��`�0��3����X ���"�r�&��-���n;���O���o�s��1��{Ld{�g�Yth[�╁�͓p�[�|_,#�0�k#���f��<4�6�2���p&��&@�w�I�{5��GL9�J ��1��u�3���+<9 ++��c�Ưo?��ȫ�� �2�e6�-#����B7.>۱�H ++X��c������n:���mA��ؼ��m���&�u�Ek?�2�W�q�����y��?$w��?T6]�U���^xN�M[J�����j�UD�������2��ǝ���]��M�aT^!����&��7́��N�EЍ�p������a��h�о�`R�V��,7r ++)�X;��ͫ ++i���b�t�f�t��pB��ń�6�!������� ]������-4.~����P���h>���4/Jm�!�8�z��^���'�]!�J���* ++��W�iN��P�V����t�q\?6��\�j��M��^>Ȗ�^���ҩ�9N�����L�8~��a�?�И@*�pЏ ���)��9��o� ++dz���oP����;�8=^��D�)���ξ�����s��6污G�i���R��<6.��㞪�6*��i#J�RoDT�8�� V�ɍ�i����e���;�9��4����Ŋ��j4xņ�Ў�s7�#F����;�AY�C@SxP� ��X���� Ʃu��?�KT=�C�w!��v��A��n��,.�����y�U$�������K$�^8�h�H��U0�Ug��8�t�O����ݸp��jk� �Ѵ;8i��Հg+�;У8��g�ܦ��E)�g��P<-���O�T<}[2�B�&y�=%����;h�~긵�� �X���u��($㩏�%-�~_��Gw��^1#I�b���-P�kv E��~�Y� ++~Af�ۗwf&P^'����Ì.@�5m����1�&u����ʹOڇ ��?��S��ϑw|�� �I�w��f��U���N�<�vu�Ea7}��̈́{��(���)"c�6]\������4��?WF)!!�c�4�H��"��.e������$���F�#�x��&� �k|�oXJp����z�Cug�"e�cZ*gO,9���,�"�o� Xh�u|3�>���&r���R�(�Q����OM���$/M�ɩ:Hy{:���V��Pp���3y�w�*����IPX'\=NS���m!W�cZ���0m��(��g����<���k�,���<�.H��Ef�B����5|�=�v�w'�t��c��I�:��oH��mL�����9\�pZ@&*�������j����m6����jZ�n�B0�Z�G�h�a�%ZZA�kBQ�M��8�2���G �G���T���A&n.(�}�|������zv���"��� D��2�%$ ++�m7��جz�A�2����X}�m�C�Ƕ������H���u�ׯ�c,�� @Kߗ� ��������nk�*�o�_���s ++���/�R I� 4[n'_��R<�?!�&5�@�ǵ<�I)�A����f�<��W����@�ni� J9�AA>��w ++�G�,|F����K��F�l;턆��FV'�N��x�IA��"p\� <z��b[��z�V��=nڸ��*��<h�SP�{�?��{�?{!���4�����A��b#q%w�)Nu8Y>��%4��o�~e�-�yn�5'�S�p�Q����j�y�DC%����?~��6�a�ܢ��N���?���D���P����~$w�-���Ɉl���Bhh��mZA1�B�t������V4ᅒ<�*h����t�mpB ��={�L'@}�U�7:6o�� l�ɜ��h3X#�Q�a��m7���tjCd!�T���hn��+�3�����VY�!O}7�-t6;/�oW(|�9��"x�{Bjx�������"xBi ����s��L�!����0a��4©��J����g"�����+ٻ��D36cYHaa��~Fҧޙ�^�W�\)O���jnLƒ�[�T:NB<�?1%�<�������&l����v��d.*���m[Q��8�6���g���(�~O� ��^C��ms�9R=�.��6n�H�]{(�]%~ߧ:�.`1Ped1/�#�q3���/��Ph��L�m�#:ۇ⩪�zH��ex�w;r�b�=j�ɟ��D0GJ.�{L��9�9И脋B#���6�@��%�A����tK�k���a'!4�M\[�o$v�,;U���H����1O�$]M>��֍�vs:�M��7~���eug\&$����~����nku���1=���a;���1@A��@H��]W��'��g� ++�����*�`2H�éE��$07��m��&�@�/�����&�+�1v�OL�ّ�&�G�6�BB. ++*�gȣ�gH�S�'E3y´�ƪ�@�3*Ӫ-����GV�R�/I(uJ&���݁�?}����2�,վ!��<]O&��5��{ۉ�.�KP̔Ɍ� .���SM�Žǃ�d4, �q0�N0b�aW7y��70�A��@�pi ++]���T��6�Dh���A_b����c��"E6������>����%���"��!܋�r����m�3��j"�\.B��")�i�,�hy���we�$��J�s��S� ++l�!���c�-���}v��ħW�����9*��*���Y��(Á ++�<)�Nx�=��آ^�&n���=�6q�"���#�wZ_C������Ԅ��bC�c���N=���t��鄚-b9A��~�I6=�ǿ�|+z�SU��p�8��@���t��=G�r��������% ++��`<�+ߌ%OU=d���-U��O(ٺ-�AC���]l\aKaV٨l����P��A��By *���VLePQ��7G�(2]�,�{w��%�8�� m�h�������ӳ,7Ϯ�(x����� ~�d�e�������a����p�|������i�- �|��I��&^4-(�?�_q��E���� ++F�������b�����1U��|��y�fE�Zi�u��D:�V/°[�V��+�v�-S�J+��̋u�)�.�3��h��A?"��~J���SEA���.R�O>f��SH��D���Z^���_��^��{�2v�k�T)v��P���;;z��.]'O��zc�LFW�~{*Tk��S���(�"3�~��/%��4�R�(Q����4V�e�,��5�����*�ŦZ2��&o{�u�l�KAJ"t���s)6y�A>�"C�K\%%����$�N9H�է_Iz��+��&Y�#0��V���Vq��67! � `�P}Q�M�AA���\��I"�������#�T�k����=[�"�c���Km1jB��#!�` ++����)���U\t�j�wS"j5�:�XM_9�vBi�̢�Hӥh- @�-�i�q��|ֆ�����sl_�"�4͵�R����x �i��R̊ k�n�#DqV��ߡٕ��\.�UX+(ρ�Z�r�Zh�P9��*= �����;o�������P �a�c@.��|z�I�ɥ'�L� �E�w��i�9���o�q��bu�r��Lz�[_!A�Oў�O|zȝsgHO��E|����'͟�aI�F�oQ�y=���.]2����o�`���1� �/V�]'DIk*A� ��g�㖒U2���_,��/J�&�b���"��b��Z�$�v���D���`�Dd�j*B��A� ��pB>��ِ�%�� �����^ǩp�K�d���'Tn��S� �� ++����<!�<�dt��lae7s��l�����)O9d镸��{}��d)�,55�z�i����"�iE2����Ndd�>(��m�;�a�;�* ++�}�9�˦<N�8r� ++��~[h�mN�J�������^R�-�ع�_�Ж ���aB4��h��h�ay�L�8�n�qB*�9>VVs������ ++"T�i��1�ĺ����ׇ��_̳������h� �cj��L�˺�"0.J���%�8�����EB�^C)�Hl���[Hl�0�'O�⫈�n=qrY4;`F��ɓ�dT\�����t/�� ���������k��cXҰ �i��K���x��R�3���+?��6�=3-(�J��m�_z���5<3��LmP8Q��5/?E1�aTI ++�x�L�Ӽ�g��yPX�e�J6bG5=���Rzyz���w���2WE�����n �Ѡ+�O�>���M�b�a8��r���DR���P��P8��� �~h+M�MN��y�0Io�3 D�[�N�x�ܾyT'�쇀��\,S�e�"��ѭ� ++�$�W�$'�h#�=���@��������*�fX���%����eT�Yz��2I3{�$�����$�K��z�my��!~!��1)g��]�?>�Rܳ�T4YV�9�M�0���9~�_������Ďm;p%��-��2�f��ճ�S�d�/l�m��_�K���`��L��&d��U?5�z[cð�.x!YC�a�EC�f�����]F��m�d��L1!P�xk�:b���#Kiv�J�5�Ȓw>�1�d_L��!]��5S��H�r�|U�4�ñ�υ-y1wf橚xK�]�&��>��3�c*j*G�(�-1A��x��܊�[�Q/���:g^��k�#+���r� k?�[���K���1ܦu�9��� �0��Cu�:��R��EF�B�2��k\�U0T�Ȃ��+r�v��@2�z����o�5�����d>���sB�w�²�&��T�n��Ԩ����O��.�S�r�X��?ȔT�U� ���tm7x�}�T� ~�}-T^zd'��B%?f�v���r����"p��q8RI��\B�~nak����cV�S�Ї���K^�4-���8�tc�� ,����D`2���?H�bm߶}Pb��X�n/��?�b��{:{� ++;�\�]�������K��S����[�&�Y�M\q��8;|�.��`D��C��c�F���\��wc9��[��TT�#sŶy^���O���[9@��7,g�2���FJ�,s0=��ݤI�g[F�I#����{R�P�&�Ue ~1�گu��\^�ò�e�����{���^�*�n�Ƈջw�2�@�_�����l��`0)�Qn��� ++�J��5n���P�;e��� ���c��uR8�M�O4��۠}�����2���� �R"�E�.��U~�=��w�0�Z^�x�m)o�HgbNP��L��T%6P�{�$��I�d���&���i���d�z�gTȄ*4��2Uoa�/W:y~�)$%� P��W�$�BS�iI�����:1��5��r�K�m:�Mf��5�"7��r:�.�v1<M��`%�,C,��)�����|������3X;b��.2!�:Y0S�E������K��d%!�G�o3#�7A��S��'wEB�S]f,���ȥ����?h�Zd�!!�;�]��cpҒ�f������E2k�1�c�3��V8���E�YV�EA%5����"2F ��/�'-���Y ++��Кr�_��H�9��>���/QXC�8a;û�T��,��i�E�4�IΛ��$�dE�� ++J�J�Ǘh��da"�D�$�WRޏ��=�kJ)�\S��&�6\�Ȱ�DE [t� ++��;�G�F(ߖ�!�S�]��)���W'����.����$bmMA �M������@�@�����E"�B�����1�ͯ����%�"�Y!)��)ķ�A��T$T��S�H�_�!�Ž=��l�ǠL�!��%������j^�1�L�U- ���#�TR��<3Jɳ�H�_x��}��r»z�́����ξ��\����ґz������������"(E�[W�R��A�k�Rȿ��B�l�K~������'p���`��M@)�EB�d�8"�h�o�Rev��^ySh ++Ok������EM���a�Y�'���'Rۗ�(�RhWS(S�E�Ѹ�":��� �g�{k�E/�z�<��"�b�-�_ �\��LL��KL��g���S�W��'���/o�f{�o4F��38��5IK{��6^|W���m�ֻo�p��8QL$�7袃k9}�M��|>)����$G�Ye���ţy�#�%�8�@�,�*VQ���"^/��y�����-�O��g �V��v$]� J����i�T˳��e曵DI|�n'��c/.��E�ڄY`�f�Q®�<g/ݓ��~�zZ-�ƴ��De�}o�%�j�[MBr�Nh�x���.w��.e�kn�&���R{��!�3�v����.ƬV�w[���F�d1<�$*.�樺i��7�;Fަ�q#���[9�p�&��)mt[�y �ۡ9�ө�S������P���ӗ�T�ڙ��S�o����D�q[U8du��[�{��1����}��8��� y�g�`��<>FM1�O��y��9�^I�yz���@��Z!�������L��Nn|+ӆ�yxK ��� ++\9�����~-ɾaٙ��2� ���u�b$X�@0)Z�V�hkA�=�r2�à�w\icm���T�S�)Z�͛�485�w�劊��ܦ�f�b�\�o����������q�dDۘ�~P�@k�I�<���je��KA�u�����3@���ˋ��"B r����R����ɒ{ÕG��B��}~2��6��):�p�>�ۣN14�����"�j�e��N���h�ĥ��l���0�mׂ���^-�.�t�6R=�2c���[����[�8�-R}��&_0WSH�ް^�3�8�+]!n$�d�f�����Y2J��q��.rFZ�9i �9�+d�6����g�]��W��&W,[I�\���e}( ��]6��oM��U��,��:�b�=�b�enDQw�<��(����b��u�ͷ&;Bd-����3�w��n�Xo�p�A�&G���8a/�0�3�v�L?H��(�����_·ޘ�eר-���%������o�� ++��ͼ��|f�ݴ5|3Ll�)�Z.eڞ��L��2�={�+���z��;�~�[;����rzۊ Ȥ��tp������kNYӓ��6L��HF����Y$3p�������������C�'�}U>��]��0��s��c$�� 牡�� a��l����Jㄇ&����C�;�%�i�>�K�Y����D�_�7�H({�!s0ܰ�KYr�d�ɓ��iAi�B��ug�U�I��0�qa{1s�9�Q�Q��\��n�h���e�"�.���r�*74y|?����������w�{�;���*%R�����H��ߣ�WF�v�t�n�mGO0��#HF����_&Y=���Q�-�a:��RT�od�ɣc�f��h��~88�S��G�`�)� �hI���JE�R����X�R��6NR98t�`/m_(�� �M�*8B���`�!��;��Kyw`dS��V�f�/OQ�I���ʇ#x�] K��"~��onL��*�2������Ĥ�(@e@_=ksnЕ�, �)� ++��/h�Ԗ���'��M}���3�}��&#���8�(��7�Q�!�c�XQL8�#y1srP���H�#H���GRM�PL��J�ų�� o�'T����?���푤��Q����n������>}i�{|{�4]B}|ca�Һޥ� �0!�l}��]1����=`܆{��t���"4�]�W^~`?�Q*����0���I��C�{�쑿 ++�U X�`eez��P��p�N.A<�}�k����){��<�>�[��y�3$��if ���=DS��h+��q�`,�r�����8��Bt~ZU;oO)_�0���'��e� ?�� ++;$)D{FQ�:�E�J�$wx���[Phk����eЄ�^����G}d��OX>�Ñ�;��F�'�ό���E�7^��9��W\�C��ڟO�վ�7T�?P��M������))9'/(Vr�?x�8nϡQ�^G�UPG� �$�7�K^{�1?>_,G���|A�SL��g�lB�dA�{�9T7��4��-_k��喗� ,���������f5�]���0�3o>�؎-u�,�|=��h��y8 ++��#%9�+�����¡�7_#���/�$���V W����#{v��FU�F��!y]dЊ�4�Z�P0b3�^n�������î���ޭ�;j|�̚'-w�zhF���Պ:��2&�M��z)f4MQ������zE�w��15�~@6��ƨY�n��W��D�/2���C?Q�|*��n��O�y��ܴ ++q��֖8[����VtX֎N�M�g����� V��"��S��G�3�殳U,�Y6?o!�Y�k8�1ϟ7�ƍ��3��zN����20��Ķ0r��p���uZ��v����O�J���CR�qb`�>����ˍ����:P�t���<Ӈ��n�Vp�A���Đ��k�w������ Ah��=˳c���m#wW�u�=}Ln2�{zf���щ�}����:�P:�9��9Q�y䮏����jB�'�d�����-�����d,���6fx1^P�_�ֱյ�ѱ�����6�l=7�Ҫ z�;�ꏖS��X9r�rN��Dkle}�V]�"� ;cu�d���5o��^��)��vj #�X;2`̋�i�\�3������%�H=��K�`yP:�7�d����>,�[QZ=1�X�<�������i��P�qP l�!��*Ł�r��?%�|�b����O�P�nT���ƪ{̈�U����,�D���i�8��M_���d�y����*��ۙ����ڶ\8iӗK��ˇ�o�Z�<�T���A2�Ҽ�y��_ު�hͳ%V�G%������7 ++�"�e�c��|��c`��@'�����w�mҋ��<p�Tycf� ++�ũ&��)B�a��vHݷ.��N�2K��*,tE58~ +�iW^��ӫa^a��!�a;��ĩ��e���$��`��H��2�V����� ++d9˭�<]����6�0���sɫ�O��V,�\D��f�m�}l[��$@L#��x=�=����,�VK��6�=z���^e��_�<�ͱ�IG� �l��X��B����cy/����>A��B����ϱs��Rl#�\�t�xy��faV��mYݷ��^�{�v(l�/�,�燗q��ɂ���3�-K�{�(��(���m��0���~�AQ�u���=g�=������G����ߚ��o�ߠ��?A��fVt���L�L/�Y� 4u��_��.��P����w^�� ��B+v��w�Ɋ���9�0_'"4����Z_43 ܅ɑ��L��ET���B>"���(��<�]"� ++��4dL9P�i߳s^��|���(��4Ol��w�a���X��x��Q�����=����!4�,������w�X}"�u�2a���!��Ԩd��{�Т7JQ�&2�z�3T�at�=kb��'�~��D߳Gd����q���,��~��-Q�."�x1:15�ס.}���T�y�?�L���Z�7�ݿB�Q�{��yT7�cMK>^ӟ���0�sx�Z;oQ��P�� k�C}���7��8�VT��/֗�IB���3��!b����n�`�)@�����N�7��ھË�ab۪ͤ�e(���P{[ݦ�2ֿ�ۙͿ����Y֢$���y�1��SB�i3s�{B�ڼ,s�#h�L�/�X^�G�C�O:��U����<O�/�8�]�@;��t3�1T=����|���Z��Tb9 �y��J�N7p�mk�U&�밆���[{>ѧ�mT��K����ٖ�0��������aOsL5,����v����l-X���)��g��"M��)��K &*g���C��+��렬��Z�1]��Fħ��N�FK93p��`��g9������6���zi�^���)>�x������ݽw��k��%v,��ل�ߔT=�u�Y<�!त� �>e�����l ++�"R��90u�S}?�P��Yp*���jo4���d��0�ca�o���V9��\}��4_|��ͭ'���w�!R_��??c��Q�� �Y������j�W�=36����������k07�����zm����r�]�)N�H6 ����ZR,ɭ�6��&�Iٷqo�h�a w�=БM������mk=��9s�3&T6�I�Z�u��V ��1�9�:`'=�2�C���f����������K�٧��&(�B�`nDNHH���m2;�&Ms�l�,^&�v��k����V��RF�7��w�����aG�ߍX�ֺ0�b��۽�-���3�/_0�y�!o���Bp�� ++�P�].����N^��7�F�BU��1)�Nh'�Z�)����f� T� �p�q�1�E�NA��S�j�E�d ++Ҧ������&ƉE���1b7���t�_e�rt�^����Q�A��������D�˞�̭��A��l���!�P�V|��xR~$H�cxP����U������d����~���F͖���39Y�����-v�YfJ'0x������5�,��Ap僀�ڙ7��������x�`h��wx߇��,�?0ҏp�k�s� Q=e�����c2\N�M��s��*�rL/���bJϮ��|"�v� �&eu�k��D�l�nL�dA"����Dx%�,g��oJ��IϊKF_$�|N�帏;��N�����,����?e��Q��۲��(n�kϾ^�T��66�(r�X?�I�I�����&�`�:q���;l�?���W]���Ͳ��yl� )-t�E�F_�i<��d�� ���c��~��9���y��{�H�BfR�'��~g��O�gǑsa)<�8?�PZ8^���d� ++���B�|2MzϗJL� ++8�8��u]X��"��%��(O��Ƌ�C�mgρS��p��r�k#��A�Q�tL��V��'$�i� (v�c'B�+~���Ҽ�6��戏5D;۾���u�p�k�O�8���Y<|�'��F��Ϧ��K3uζ�E�s�e�ו-��:�+�<���`;#�a˜������0�CɍP�0s���x,�y�_�X3mV6��c簊��8���vCF6���홾G��`��87�<�[v��=�6�:�5��:rk���a��f��ݝQ��`X�f ����R^ ++��GϮuF�� ����I�tB�����#��a�ek����~�_��F��;/�.�0��%0��\A�/0r�;��`�A~�� �5R�AV.$t���(;�7�X��-� �Q�o$=l�����{�c&ޔ�(jWno��Na�&H�� p�h��4d�j��b�'O`�������\|����m����|}2�X�7\+=y��£6>�������ߐ���sR����� �x�Q� ++$n��4E��-9|�����2+�=�-2h�q�a��R�Ï@�&Ҷ��g� ++���GU&HRCdp�V;s�]İi���(��(���.d~ح^6o�v�p�/�g�9��[�T\���{mԦ?^�~�����w3-�eZ�L~O�h�����$�Ӱ���Z;8e�"�� o�~�%H ++����o���zG�4 H���u��l�@���m�u��z�����7~~z�Rn�(7q���n�|E܈��ß�9n�3d�����gʲO�������ʒaoX� ��zf�pH}����0�o��E<�x�8�O~��g��c(��:à >#���R�DNCp�6)T�N��T̨bR����c�)Hb����P?\A0*u�އ�%���8ܤ�a;ѐhF�#�=�����i6�,�o�B�)v���y�z�=P%s�;G�C�l�g�Z�崺��s�t��5o>I`�(#7=�ș@���s��GEbVET|�M����2#/:��N�c���t|xi���ͫTXI-Hy� a����Å���A?��W�g�K�$)w��BR�R� ����Y���G��-G��T��|�Q��$dTGy0�x�A�'S��su��̜���Y�Fh�x��ɲ����@m�����s��������gd�L�넨\eo�T{n�FӦdY��=C�7�1���S8i:��ɭfq�e\η�xGVP��o��A��>��(�[D\�H�]���7\TUl�t��ԁ&���V�;�kqkqkO^p����dID2d�g ++�m�������)|���_̬�-Y�����R\�a��/b����w����Y��!o܍s���&�H'M��r?�Ę-g���Zkь��W07-�UW�$�Nv �Ԛa�0c�y����'����1kZ$7�i91 ++Mܴ-x9K�o�|��K�q�<yS��T��~ke=�/��1���kD�a�M;N�\����{��<�����7"�Ql�\:�s;�Or��� ),����Y v{��J��t�PO2�>hɍ�B�(7}��4 �~#��~����zЀ�6o�x��ˡk��h�,�y�� I�`���#l~��s���Bp������S�P*.�(��e-i�q>3����h)�Lf��m%�s���Ʌ�E;5�-:k^t���:�mC_��ޅF�x��a�4Yx�m%}��@6����G��<�':��ZHe�PA�У՚_�]���T"dD�f���~�;��G��'�z6��=��G�j�����tl�ּ�eIk[�o�!��w�!�N��x `!ͬ�lG&�(��x�tG��/��9����@s�n�T�H�EC#-���/�yL�%�u��?�����-�L����cF�ʯ�78*x��d�w�L!��JM�Q��#F�=�7;A����cPل��Zd'0}�������3u���7�wQq��-ƚ.����b+AI���#$�%N>�Q�lgn�����}}�-�ܼA��+��\�N*��-PyYvjz�OFPk�_A�Y:������Ϩv��|�0�jn���Ӣ9k^N3�2}�#�5i���4Ac�ōη,��L��5�D+��^0I������#tAFp~6�,������4�_Ԫ괃Z|�ȇY��,�fj BZ�����r��:�I>U���}�W���xԀ��)l�h�����7"��:�� ++�C���P�G�|��v�Z��ӂ6P�U0�g'�t�j�5Uf���m��s�Ϲ��5��[��L�+��%���k�,�n����E�55�U3T�Q�YIIjB�cVD�M�V��O�To�_�=����'�p�ݖ�=��B�^�����I�Y��S<�#y?T�|��5�ܻ�m����w�x�Q�,�P}�x��YNO�$��ض�~M�r"�GԔT:�9��r3�#x0'� ��"1�!L���D�5�).��g���j����~�w���zF�|Kt�*�l�W�s`*PS�-*BZ`*_�tz~�:GgM{��A?��?�jy�� ++�5���'�����&�i��7�+�'�?ϓOvǭ�p*=�XJ�<*L6"M��"բ�Y,0��6�~�I�y1��$M��$�k�ۚ�Vu#Yj�f�;�y[&���ϭ)^�����?�l��ś��U��vh9Y�{�X�"5LB���+�</8�?ͻ �� �L���?��9���~k�|4�E��Z�W�?���Ѧ�_�^�O�����RC�'u�P�Q�ɰ侱��.�ٟ��h�e����Oz80�3�W�0DeI�'J��%ݑ���㪽ۢ�����]黰�R�4�t ++]?N�� �\�x}8��������y��=�����?�jY�q�\��kc��[��������&͕ق�}^��juY;iȯLЖ����Ҿz6oo-'+�H핵sp��6Ky��#6���4OߌE����j���>i��2����s��$���UJkf�����ԍQ�+�<<�gp�M_gW��wdC\��Z���O�>����ō����X1Dk Ei��c͒4M�� �o{�,#� p_�M;�>���"��L�x;���@�C�L�M�s��5ȹ�*����o��|Q�Xa&�ݑ�4Ov�-@"�cΚ��Z�fò�5N1���:W4��\V@r��n�#C�v]��BM��N��G0RN?���B�R� ���a4�Y�x:-t�u�|����<����o&e3��Ǫ�d�l��O$��$��s��)rd6�<�6��+�-W�����Ƙ�!�G> ++ö���4 �.��,���q�=���n��3A��}��΄Xˏ��;e' �LI���ԝ�h|ӝp6�Ю�cQt�ȾA�-��1�_�}�� � �N$�6�>�qKf.V͉�L�}�{�gd�m���������~R���IE.��?Lc�'-HK��5���-�jH�Ln-_������Y~���k��KM�c���{�2��S�2!̚$����|�9?�mO�bQR���,@��V훳��^ ++G����#�}�,n�x��� I;��6�flM,��7��}h��ަ�B��6�R�ͷg�פV\�(�>�G���O��I�ּ��O���k����ng53�p����L�{o��hp�nu�f��B�選g�} X�k'�R� ��b��y�T:��7?�IU������俋�����������0~S��:x8�(R��&�����.uޡ���h��XH���� �^�������]�Ņ��O������{���͵y9�`$��a��������xh�Feͤ-�dy���ϫ�%�#sk�$����r�:��iYO.��J4�e��WE|�m���#�D� b�D��C�=�y��͑S�Y�ei�{�y e��WB���n�@-_Ȳ641�u:˷�@g�wJ!w77��������qr5!�R�Nvs�C��pX�a���N�5�̩��������W"2ٲ-5�4����8s��-��t~�v���\�~�h���-/k2�O��`̮���-ަF����a��`��o�~K�����v,��[_ƺ�\9��PO�{w�_����q~<.���6 ++��tw��ڡ�����I�����+���q��w'Bj����Iw�{�>��� g8S��{�\��[G�#���0�P�g�nsh���M��Efˋ�N�"��J��g>�����վ;�U|�����8ø�������� �ۃ�y\'勰��T�;]��9+S�܈���p���4����+��ߌWmٞ}n{�_�Q���w~�J6��X�4�ۨv]����6i�}q��@�A��E�||�\����\>V���A�B ����o��J2��oU�lf��*|������(��X����ZTT}�����xx�����G������k�D�T/<�]�D�.���;#���IF�꼩C���q�N�Ձ!k��߁��4�|�gd��w>�$��V��8�'˽�C:Jӌ�n��I���Y��tK��gD�e��2�S����S?����yw`���8-uގ�&�DnJ[�;�J�B��|�c0�0�5�x����������lsGI�Y�'�Ad.�@��oڅ���B;����Fb�2�$�#���: ++����mqv���Є�e�ƁYӸm:L�,O���)o?��g���E�b���r�3�F���*l���7.��<��Ee#�cO���&�H�%=aj�F���m��O&�m�F�I�߂�6�TE0�fO��ag�B��|�R�v��x� (;����f 9dRlDW1P��kE�m�E�ۋ[)�}P��\q�L懤d�#+���A.>���$ ++���)4�k ���Ø� ++�#�� �,]��p>B�������W\5J~�r���W֔K �=�<���t��Q�ˊ��i�SP]�����io(R��*LWc�g�j�9�A��b[6-N���S݆�G$���w[J~��US��7�5/q =�Zȟi)�[�=<��P�%���imW�.�GP�?>ֹI��/���\��C�yf�,� �.�P�-�I� 8ŝ��L�Y�?k`n�|��S���鍬D`d�]f*p�^C��#�{K�~���a�x˗V�b��U�d{��g�ҢϾf��|�o���K�N���QE ++ӬT ++�5{��B�Q�0Y�n��*@8#��ۃ���.&���Buj��g��w�u6-l���BI�%!uj㷰C-�E%����$͊s��G߳$x��/*�SHwF���r� WQ�I|�EN~$��00v��ng;�a���������8�͑n�ה��D�����Xx�P�Uv]���=8��r���%���gMΖ)E�,�L7��ӄ�!�G�9��Ա-q�Z~����6�˂��`��ܭ�m$�-\�2��ػ-�����I4�ѹ6/�����]����G����{y��?Iaf�c�ju��!Գ)HSS2�gEI.�e1&u7X�~t��=��B4b;$c���%��Ԭ��ee\l�ndر4p���c�g�ߝ�8�*1s͛Z�1�' ���'���X ++{�2 I�*ׂ:�`�Y��q�������E��_��t���|�����hm��"��{v�k5����Pt/cP��c�B��bdώ����'��I�"�36T���G�+���� �)����^��\����P;���B8ȆF��[������՛`��G`2���J��7�G���<�^,���r�C� ++�<F��G.;���土l0|�NR���ڍ�L��@31�<#K�N�?�������̼������۹���%��K��szSe��Њ��O���{r���_6�u� �o|/(�!׆�P����F��Lp�I���w�}S�M�1�t!���-�P8d�cn���,n܀1��eG��{�g~�@������/���KO�=�a�CzHΡ�u�/2w惕���'��b ++���k���~��m�4B�E�e*�R�ϐo���<<�����yc ��g.���U?X�Vc F8������[Z^HA�c��-��s�F�I�[نւ}3D������DD�K�S�;.4E�Bh���F�M��D�x��!qŦA�i�^�^B(Ѣ9*䅽��j��_��v��ke-15��������b%���;�lKu �јX ++��I��N�� ++�MP�#vG' 1������U�����:A��!eU�NA<t�+-��gn�|k�[�م������ښم�ڀ3�;����e������/�9�.(��7jCI�=�����oYZ,arG�L=#7�;����j9�.+��m�'�N5�6��� KIR_��?kZ�N��9��q�A%#�B]Q\�(�2��� ���/�*B,skk�C=.��ʂM��T��������5��G�<���m�AG~���{�Y���)��O����Cxwt����8ߙ��Qe-�)f�D��6�`uF/C!&cF���9���= +++�S� y?]]��& ++Mqa�|����p��� ��or���s�H u�Ѿ*�V�ƺ���%��<�]M��l_\�GS��m#<DK��YM����oK��)�g�����=�+r�[G��h���|0o�f��*;���K.�3�`��������䫮H�;}E�uڏ! �:��I�>D,owh˕�����=��ۄ��d._| '18N(*��L�V� HǮNE~�N��S�� ++��!Dd��=2zN֓�>Qo1{o��4���P����>nv�XhinߙB�Z�]G�b��;n���G�5�>}�-���q��ak�r#����-"��;p�܊FF���r�� 1Mq@�-q��s����+Ł�)���87�`���A�ӁV�&C��iZ�� aG�����48 ++�cɾ`E�ڠ������ME9Ie�%i>��[��������Sl5Z��ř8b~b(�b �)�9$XU"����C9%r�T4ʅ���Ӝ�N��I(�<)�"��wd�27��q���<=g�����o��1�R}�H��-IJ�f�zO���QMg�%/v��96s�ql��z����h��!�d���㖛����C�U\(Fǩ<K������?��ܜ�D�Gh�3�t�/����m5)�N9��/waз:ig����@������X���� %%�_��ȃ�|R;��7��c��(L�P�Ke���X)��M����M_�mn������k�"D� �t�������*)��N��%����ĺ��pg&����sDH��J؇�&� ++yȮ��E ���� ���rER�XbX��]�2���%�j�o��Y�����s#{&�� ��}`*��M�^m�&�rŏ������V��`��Խ�ի�=�>��|�1ľ�� <x\�p�9tu�����+���|����C�ݮ�V���+H��1��+��� T��0�0�C$�|��.�ѳ&��Ǻ����.V+l�+��7M�� ++u`���g��"D��Dy�nP&C� ++/8ɑ�9}#�)%���&~�T�n>���p�Yi�&*ζjƾf��n|���F��M�\:L��ڇ)���5H��'���O��E�^���[�Ce�t%��#D+�8?X���@��}�j���#����rD���#�p��6��>�� ��~B}�{D��n���(�6@ ���<��B�/�4���5�^���p��oIL�c������v����+��m��b���� P��m U��d%J�c�����4����;~5}_n�2y��-.!Y�����xC�[}LO��ӌ��ϙ��ɜV�j���)��8��$������y�a�?������")���t9����~s��\@���c�\�R ++���j�Ժ��tW�k?V%���� rQ�C�����g�M��e�pQ-SCfy��d3�+ɕ�P���Eg����+�@SC����de�Kɑk,Ux��2��R.A0��u�ˈ��I������)9!�=��e�Z�F<��S���X`j8��}>����sTqa��t!����� ��=q�8o��J�*JR���Ə���HpQ+����u EH�B�[Q�2݂xC�m��-��s�m����F5o8ŵ�p�͠�r�2�|*\���c<��˓Rx���H�z,D�]�!z�+Ú�R���71�T�]��B�|!�qD�;�²25)� Uz�B�t�H�@jD�[H{v>y�6ͱ���樏b��n����U�gw)�~��h�ϧ�ɴ)���/����G7��ϙM���>�på~;>��I���Ƨ �eɓ��n����?!D��߰s卜p|��m[!�*'��f��ґ��c�W��0 ++�v�wcw�v��J�lM:}A3dh5��w�����݁EH���B�%�S���EӤ�~�8t'�p Z4�UB����4�s��5r�l�=���~m��7��^�)I%ԃ�x��?��fB���P��n6q_К���N�M&�0��� ��(��L���e�������RĤ����X�T�)��X�&c0v^n��Y��K�n�]!�<�r�RH���v��e�ϛ/��-���9����L �%�?@uAJ�` ���B�"6�3�6��~��$*1�mu��Fw���sG�-ߖ�[���/+n�z4:.G�x�}�n/yV�F8�*�[}�O��|Q��I�㧹��#�O���À��s�8�-�u��>bL���m���w�O9���� ��V9�*�IW(� ++ ++�t��%�Tx ��\�$En�}w�V�7p2���:�k��7*'�%\�;����u�l�Xn�#��O�;}��U#�ٵ{'$�$���st6�W�� �b@�'����$^��+P�=��3����Y�3C�Iҿ_�b�|���'�=L��'�UxI`�NW`�m�#� q���xM�зt��M����/+0+���3��ߚd���X����)$h���^( u��1{��~X ++X�����>p��Ey;�.F>�N�"-�sOѻ�"�������p�镑Av^����MN{��Zm��)U>���D �xMCp���ju嚘<lˣ�p��D%6z@6-��T|��y�^M��y���-��'�r0N�2,��N`�7����0�������)X^` ++"~�Q�g�kB��a�� ++v�ڙW��_(�]`$:6�܉d�-��[AB�DJ5'��Y|�Ċ=7� e�(��#dRZ�by6�-s�0�nY�=�P��x8/��,���9�- ���� ���)�M�-���Sixz� ����91�Ky�I�� �\�8����M^y��[�X;<�9�@�o�����@S�tX$l`�o��w���cCN�1YD*^H ++�HB ++ݟ�F��FgjEd���:���:��qBf�}!�����e�H�J:p�Z�B�px�r��?���.ޓ`=��.@W��Y��U_��~Z6�x��x�u�x+�n�mw�Q4t)7�R�.��ӱx#�~s�5��2"S���}�jd��sk���G�e�/��.`����LU(t������<BnsQ���%}O+�<(�ʒi��ƙ��4� �T�-�R^d����;P��kF�eh��x�n[ #�s�-Š�6�d&5��Uo^8�~�"d��i��]Ed�(���)HE4=>��:��b� ��/���u��}A��MN� .��3������ČQ�-�� ���*�� tG�����^ ��+��>�aG ++$C��#M�7NqO���B�BR، O`����TX ̓��ǘ��1`��s-���ņ�g��WZ� ��S�JB3��7�� ����1��V*>U����}��T=���v��`?���2.(-����.qV;%)���0����'; ����#���5��/�oWӰo6� �YE��`���yQ_d�9v]����2"��Ye|@*\�c1����cB-��wZ���I` |=,ßب�i�����Զ$�q�g4�B�?=L�p����eO��|ERų^4Q�˙��u?��rF��u_�����c�:3�Hnbd-�1�9`��?_�6���k}F�~��J훳�#%UD���L;�J�GW�i�Fo�n����8��F���=�&+�R�J0�ci ��?�:^W���z���X����(�E���_�ձ��3�4L?1��1f�_O�+���v���/�?T���쏅v�"M˃�P�.�F���A���(! 0si�QI�m`���m�=��KLo�TTh��I��@0.� �Jդ�Q�ZH)��hn1'. ++`�E"�G���$bN<JN�/���;ã�y�L�)`�,7�0�� 2O?`j�������4���Xqo=�����)���;�$X`S�w�#0���ڶA��Fǖ��96N�%`�kCj������9�`��n��[}^T��M����Y�����q 6�����x]����Fu:W6ͣ:;���egYA�tUz�M��+��?�C����g��)�Nsy1b���ɪ���l��ų�gh �Z��r�M*��W��ڰ�e�����eB\��C�QV�[��=R�x9��\�T�K���LZ����bG��3�¦��uV�Lf���8�^\�b!#�����}�uV0�5�1�.��q ++�s�r��/�M�㎓0Sʺ&���ڜ-َ�!V�ۦ���k���Ӯ��s�� �����0����� ++gq�\��G ++hӆ�R ۱oA1��h��D�5�by�(q�p~�oJlB�H'g0��VJ6�Ѕ%ԅ<m��٣��@�Ў�>S'a:�����x.Ib2{�m.���${Q̤l:�H탏�0А[�Eq����ų��(ڃ�%�S.pV�+��c0w3��y�i ^OL�������Y���cR�C��N<sL]�v��=�3����.kh���;�N"�&���@�-������`��j�!�5��Vl�i�I��!j�1��f={�z8���M��cУ�]Ͽ���(���0��҅10����j7�.�,BX��ѱK�=O�* �S|��fw�ȝ2ҰH�X����%a<�{�S��*�I��>ܝ%��IvL��e0��6ଽ�����q�}g�f}Ñ>�"mK'��;L��'L��~�$T�B�D�v*|D_s�^- (/�Z:�t�$L��S��/��6��0����Ɔ�yB�^�5���}��.C�lC(BMN�V)�"ev�c�iAXf&qy*0+?xV�c�Ru��S�C�P~`�c�+4�<�� p���-�I�X]�`���$A���M��MO�$ RȮ�����'U(VE��%�W��=�k�!� ��pA*u§y�6�� g�q�����ˁ)�5���&��<i��Ͱx � ++%w���.�_F��T��֜��ˁ)��S���Q�ݡqZ����:\�s��^�+�d�"�yǼ�R��[��w���V����/�p�,uRh��I��%(�������^�gjP<OME�x�D�v��"z��_��+ﶿQ��$��_?���yC�Dm /zY�-H�8= �s�5V���5�p݆k.0��k�B��n!�9�/ɔdU[�y\�y˪�x�@�m1T ++0yk���ض��/�|�8��h���z�t���d`˻�����J0�5�b��HK���rZK�u�K<sK��.��G_�K���\0B��~��Y����ݷ^#E����������;��b�j/�6�/�aCY���i49X��5? �����w~���o�m�ώ�Ve�C���8o�{�:��BI"����<��]"/��_qs�z�'g�z�^|%�����d��s ��J�2p��;��}B%��8$6¤"/�<�Qߚ��^�=-�K]� ++�T���#��g�*?f�gt���<1}�.+�&r��Yǥ�30{8��ꚽ�*Fm=��ё�4� ys��h:��) ��C�n�d��ɗ��R����� ++��AU�k���=Dŋk��u�8�Z�p�~�+���`���������NB�+ ++ ��GX=�1���W�x-Q��n\�?�q��~NH���0������~��6S s�G��c8M���CDK�W5�-���k� .qo@bLK����r5Y���v<|;s4��X�t���b�a�!�S!�m��R�#��t��RS���&��0|�}��VM:4}���r��i��Vʐ��f�Mb�e�`9ˏHq=8�4ۆoOg5|#����?�(�p��D�l�Á�p���/X\Ն0�7U_ݒN���m�nd6�P�[�?Pr��%H�7�6���@tq� !NVu9� H�b|aɠc��y����ϯ�e���+l��Np�/�T�⸗)&�5(�l���5�����Q���;�C� j�*m�� �����]W��Z.��x$]B�c'DF��o���;��}k.���9�g7e9�(�����̆��F��\K�9! ++�\}F�N����00���O��.���p&�@P6@~��������=�1J���!b*9�w�F�"ի�c���gOy�ByE��aW���#Ë8X��bk39C��NՆ�!i�%˜Dh.� Y� ++X� a���8hU'���em��Q�@ ��u���ķ`���"�5�8^�)�&X�����M6��?�ůy���[P�mk�B\M(茦`H=�t�5�y�� ր#�8�RĬL�5�>a�W���6��ͦÀ}��(��_|���\(?Oy0�G��,�c��,��Ɵ'�kp���GX<��]v�t/U��O�}��#������lç��V�eK<Dv-��g;����,�(u�qi�5Ʃ�m��$v�9���p��IM��e��h۷��w��E%Q��K�X��-HV��z��ѯf(v�}�(u�� ++`�J����`�����s�~-����u���$�t�vS��Y��Q��oΧ}�=PS��yM��3�LN ++֖+=��F���97*�����L��7�:�Z�۵|�̺��GA��ˋ`��jrB�,Mt�U�1X ++�2�cqG��B�p�� ����Y�8y�g·'�����ZJí�Ő�ɂU�8��YFA� �A�D�Q];c�h8���æH�O2l�������O���mRּ�aT~p+ί��ڼ/d�x��Z�Op����0���}���m�[g�w 3�~:m�"�� ++uC��B�d-�Q;x[SE�!��[kAsS���c-(��z������Bv���+4�l��e?Q�o�Mc�)dg�����o0�+`�����t��w�+�6;����,����jq�v�8�R�:�9���tZ�6�)����i�������~�[���ri�Z`�)�}N�5y�=�"E&ׅ*��k ���&�"A�(3���MeQ��2�:���� �{� RۮcT˧IU?�g��?��)��8FZ�����=�7M��g��'B����b݉���0�ߞ���eUm!4ٝ�ZBl��3=6�H����M��m�����ALt�n�e�Y�9Q\� B�-Q�pl5 ����7)ا�㠷~�_W;�ŖA+�N��w����>�"*N�?SRSλο]��ʱ^.'jS�6�b#Cw�&�����=c��#�"����Ʃ���_r�*�{����,���k+G�'+ ++�f���+sfB�R���^4l����3 �d6DL�,�?+-gO�p�/�/0�̖����C�CÔI���T&DF�h���������d��:z��Q}#s������ɰ���a"D�S�5�qW���v{l*�9�t��oRl2���0����Y~F�Z6�s�\M�F۾���l�3�PbI�^���L8���j���v�b*X����!Bqx0y2OΜ�v0ܘ1�����е�6����U�i ++�����,����^8����0�g��pذ{�'P�x�~R)�*��dxU�bDe�"�{(�3~©��c PDS݆��t��L;����"c�Y�7ч�Sg�V �jͭ5�g�W�/7���������4���cf�O��}��0���b���?�U���u�f�l3N�62�+^��uY��nn���J��+��a��2�>yW$�f��p�ϕ~܆�[�veb������������!Yt��/q\���O+�5��0�궅�d�ƈx���+�v�z�{b��u���~�*��k�z`�s��ʴ۰��U����$���)�������W���]ėbv�k� ++F�ٶ��]�`/��i.�[h`Ӳ�)� ���%f�:�O�r���ҼXLY��ڎ��x��|�^���j�U �^8/gή�n����Q�[n�@��w�I^ ሺ� ++���Hr}�&����u�x������W�(h��ܙ�$�n�g;�������c�� B;3����I�,b��*J]9h�+Ճ�g��)R�F�yS5L�pfn'd�����VP^)I-��C�춅�b�$������QM�ٽQ��o� ���_�����rp��<X�e3Xcw��ZA�������/Xc6Y�)&��"�]#��g����D�K'�u�z �D3ܼ���T�a]a�"_�6Jf<�҇Bi��� {z��'q�B ���k�?w�r3n1�� ++�5�{E��x�TUp�H*� D������3a����v� v�-�����@�T��Ny{ [R0ٷ��q�x_�YDa6͟s]���������3+ ++��qW��iR%)C?⪬Y\' =b*L?�� �H�kLK�(Wt���x��7�7���Os,c�� Pf���v����k� ++.Z�2r;�p0�"���slXz����zu�;1�,Qs�`����.�-�]��b�7�cʮ'���Ҿ��-s �PPC�d���M[06��Xo��(z�4��u�ZF�!'�u,���@�N ++�u ��+_G�,�>�;r�#���~���B�XF����82�m!y�Q�$�A���"-��-F5 z�B�0� EDEI�[�i��u ++'�/���p�~Y�`��vl�_,���PY|_�υ��H E,|�'�$`�M"��l����{(A(���3�ЄW2���\p�gB����ȸ�/j���Dh_A��=i ++|%����;o�2I~M���y& �F�=��iӯ^�v_�D�GOk .�Z���<����k}Dzͯ�e�� ���\�MH�;����ژ��-��U�8���|T�wx���;Ex;�;~z��*M!:� ++ؓ��C',�e����1=ya���2���!�U�v��ۮ��L�B����!J����Ä�S��c��ƻye��[���$ � ��MP3����Z�5���c���if�.H�TP#l!r{s"��W�OE��N�" �e��wS���ϛqe�Du�M��|�1���]�z��2D&ܑ�jt��u���W���S�h>�L5]G3���[&g(dw|�O��p� � ++�{U9��=���K��o��xEu�.�����%n�%�Q!�����q'���ke�\~�#�o���]������K��Z�*\��K��愠 ����SBY�E(�q����>��I��$Q^�{- �T����ѝ�<��X�U�stEK^�G��=���Q&w�n���m��Fƫ��&��Ҏ�%���$`��#7�Ǘٳx�E��/, Q�Z �� �}�r�?14m��O�@�Q�S���g o||��5>&��� �e����(�"%9/c�~!�2��sT��H�E�,}FOx�֨�`�5$�5�8���7�(z��Ź��T�s66m�bE"�T�A� �&�#lVNz��P�+Jԗ-�S/���³_'L�Z�Ӹ䬉]��i��ӌ���LWƪ���ܯ|!�zK��:G��P�Xc+�u�S���"DE�����8h���Uދ)�13k{uG��i�rA�M��E��v��$�O��i)��E�H�Q3s�Tx4�{�B(>���t�F,� ��;( J�3�2GhH��!6Q4 z�����_����u��j�s莖/g1�� h�s��A ����/���� ��xR�����FD�`C8^Kn��R6o'�GEâ?���Szߕ��xض�)����|��x��IPc�\�OD�jA҈��>�2n8^�UP�����Ś(�7��eLi��1��Q@�U�'��Y���ă� `�;�ƭ���� '�&���&:�{����]\�/�bLK���B>�B���dea��G���L/'�v���_��?r7�G����ۈ���C`���C-!� ++>�L#"��Y����R$F6H��� ����9o`d�� ��~WP�$jF@a� a(�&5�"F�5�DhHT�� ���䑡"p���$�����P��0���%�Q��� G@�fP��Xب���T֬2?���>F����P��b@�Y@�ր)@�&��̥z;���,���K:��Kd��a]P\���Qrn�P��nV.�?f��������_�'��w�N=�M ++?�J�,�L�7��Y�� ++L�swDT_�A��o6ǀf���1���͜�+<��ߵ/��{��_�0 ++zw�m��DJm�M@3�M�E�Z2g�H���b��X&����,��?��U�1�i�(����V�9ݔG�g%�+�ߺk����N�q�"@Q��`�"�>X��i}��<�h���Ԑ��?�O��� �ڀ��V]�"��|$���ߟ`��{�G.��!M�m��6��'xn[j��=���.-��[�� �CS ++���k��á�6��H(�3`H_@�Af�d�`2#�g�;��H!�:4ES���ˋ��Tj^\�G^^����1I�}ǧ���Q7~����r�S%�����`�0q#w�?�y�S�M!���M`[�=:�?��<Ꮱ�Nr���Ϸ��"��������w�~�(A��Tw�;2g�.�!�neh��F�nn1_��; 6�=�3%�Fo��@;@�#�s��k9�F����2G8�����0���ol�Y�!��ڣ�K�4?z�#4ބ��(��9,b� �������G^hF��3�1�z�O7'�#�M��r�$y���'�@���7劕��|��:���㌑�y ��2���˭r�K Ӷ�F����<�� f��EI��I�F��I�Z�Y���'ڑ�'�mJ=�LGJ���r�v�J����7ER`��WK����1��(��%����j� Ś��+�S5�(<��1��(1���tq�k�~�]r ��ˠe��Ρ[73�j�лP���t2 �T��)��ᱫ�j��}��� ��W�iYLرs���Ĕ�W���ޅJqeY�L]=USN�2���n�ǎl�W��`S�0�� ה�\ҙ��ݛ��w+b ++ �nʃ�2bw��+_��I�@L�����,�mT�����u[�X���?���c������Yۖ(=U3*�q���x�R�J�`m� Z����O�����S�]�H���G�&��*N�B� ++���� w���tW�==��#����oTs; ++���l���<� �ѯ�xC!�r�q�(��{�"�k���.�$���pa���q�zi�Q����x�q���w?�K���qׄ%8Eŭ;ğV[P���T��{�`�0���A�N J|*��L�yG���w�!Y��3GW��B~{"շ�[Y2>�w�zE��g��eѤ ++�D���ۦ�)H���6�Mb��L2��c)u@���}y�����]��p[�7���,Ss�];7�e�J�ZA�X|���x�W37���)�;�<� Ϯf J�Ǩ����,�}�7]�����G�8���-H���a�Z���C���0�w�Y�=��!s2��N`��v��v;�#�=��hi� ��I��3 ++�&�J1x���J�UH )�k�[C��T�kH�<��Km��1R� ++��n�9�QKѰ�C2�<}M�$wJݡ�[�2��<���ƨL�݂D��zH�~�?�q0Bm3��BB-kxI�r�LR���6$Ŗ!x)��t1 �r� QC�pv!V���A�϶�[(^ +k ��M�����s�2�~��KGw� �C5�?��A�w�'����A��bL�%2>���7K��uB��%d���q�i�k#�1:$5���ЀMSA�gC �.4��뛚�W�R�fڂ\%��ս��=��L�"��A��Z#ÑL��4�;����W�O�͘Ci���oH}�]eāy�����,������0��������l������� 9�J��2̮HQ����We�N�̈�K��ń�zq?��� �^V�`߮��g�ځ�*�A=�F�����^�?��7\ޏS~᭚^���G��[�>,���gu#p�z �Ov��������m[A7��a�p nlFE}R(4�QH�֛'�{��G<�(r4=�ͣ�gާ��si�ϻ�A��^�������3��6���:�:��/�HK�8d� ��@��j��p{�3��erKL�[R�_,���C���`�f�m[h2���t�����ZI����c 3�Q�b��':������7w ++�P�i�z�����v�{���xw ?�#Tq4� ++;�Kh"�5 �<�,�-��o�07��)��ε�����{�>�R�#���ѕ0�G�6���A�������g:T\1���~L^9�2�c?���������q��it�+U�B�V����R�'��r�>���T��+�tx�7�������Q�"t�(Q)6�I�=6�����uDp ؔ!d�m�����" ���Bd�%|�|�����0��`�Q)�ew���ԾxD$�N�:,s]�s$�bᐂv�s�\��#"�+d*bz�.�l���<V��g V���N(�%*S����L�t>�O=�q��@4��[<`���Ѧ�.�"dB�$yسCL�����U��CA��`��"5���uH�X]�~�OQ����}��Pӛl"�;_Nʚ�����`+��ոj3��/����逦�Z���>�b��j_SM��]JT�\Xg� 넒 ++Z��z�����#�����|!m��8�E�O��-X ++^�i)�uO+� _k#��{�nGL��C\)��g1�웳���B:�����mn[D+���lX��m=���z�5��O� %[�zpT����9�só��W:�ì�a�;��e;2߆]��<=�-�8��'��ش��vc'�22����m'�[�o��y���0�ϓ�XN½�R�D� eU�;ӌ�NzEǗ�()�C�T��!ś� _�^��v��d�� ���>��3E���LJm#�3�W��=}��ƾ��s��/��2�8 �3`�j� m6���}.�N�Af�]�g�1 ++�S��v���4e��i��;���y��U�U�9��l=7y�o7�sa ++���, ++J;� ���vzP�&��(�sO�ٚE�l���,� yh��ah�.#)?���ndR�^<�ٓۢԤOm�Gu3ov�y��ʭL��KD��%�F&-��=˖��� K¦���y�G&6R��Pq���;y9!�������W'(T[d��PMV��"����2�>��e�Χ�؏B(�}�x�Ax~�����W3=+�M�v���1�/���f(���)��v�i>`�;�� ++��H1KQ�u�}��psrJr���0���6`�l���Y\��d��c�x��d�E������ue��u�?���<���W�F_b�;�w���H��s��v?�]Әhx�bDB�`c>A����ۊ�<����r�$��z��Z��� ��l[.@�n\7�ȟ�THf�m���1��1�h�`q,.*fKϝ���MY۷�B@,B� ��6m����2��P���}��7�Y���y+�����(�3���Y�R|ϵv5��G572J��� #S<i[�=�9��ƈ�xNU�6�7E �c����4����V:~�����r�PK��Ƽo�$Y4��W�/ź������ �˧S@��wt{�",��c@d������s۟|��08���|��O��%����2�Z� ��9:ۥ<��)xD����z��ɜ��N�F$�zA�(<�<�H��D���r,�p��v���������9���<� H֬;�>�'��zr ����L��3��i����B���s~F�FZ,�!I=�㟕�c�ӡ*%J^�b�7߮&��[����e54tjzS4*~�N@F$�$���C<�ʛVD����N}���?(�v5R3�$���?T�wj�{dfE�;�̉"�&)�� ++t���ϱ��ۦTo%w|�Mj%~*ljs{���\Uh��]�͉����#�ҳd8�YUg8�)��&���z \+�u!\�K)����� tL����+�!Ko|?x)j}�tR�������>��z%�J8��qW(�s�{��Kܙ)��y1K��r� /�-[B.�)2$B�1p�P ��6T�3��j�_&������iUON�&&�O�/O�M����#�%�m��93Cn�-��j�M��Ս@!�B��#1��R�Y��0�Q�F�c[�B��ow�Z�pvAQ��|z��B�}c��K�[��Ai�)��{�~e/{�l ++Eƾ���E2��>*N{��8(E� ++RٍD��D\�lн���]z��� Q��)���zŪ����yr�CS3a��)�۩ܺ�'g;�9OP4���K��v>�*�c!��&1��~�������X�̖�3T���zS";�S�i����'��µr�vB� �4��iDu�3aFE���+r�Z&t��W��G�^�BL��.ܡ�� L>�`g��-���&��%Lï��^��^�N�k ������+��.���#O� 'T��w������E��Y(d��A��Oc��_�Tf�pd@q�gu����.�7|����O�㲑�I 9�����t{a���5��v/�&rv*��sE���`3G��JI����5�_��m��V�7ԈG`���(�8 ++"�� a�v�S�\]\�y2B���hB��n���p�v�@ʟ�<a|���2�$��b��dy{��BW僓����F�^����jҺ�T0*��G�� ++B�A��٠�:&`���\BG pq-����g3�p$-�^)�-䛬`�_���a�̟O��p�ϧG��fYw�n0[�W/%f�k�� �t�3��rr�V���u����.%&G$cԷ�d��_��D @�:R%^�_Z�xM*J�ؒ ++!B���#J�B�����KV]�N�*ؔ�i4�He@c�b�ŭzo�n_H�����]f^b�r�U7��Q�NL�JE��t:{*���*3!�t��W]B�#qsa8��ϛ����@�DF��ӏ�)/���h{je�ϒȲ%�{WS��������7�St�QY�=#+(E���_%ê�p�3"#�n*�)~<���a��錔�~S�9������Y����«�w%�=�����Rc2h�Ӹ�p���\�E TCc��XMf��9km�r�^�tq�'ٹ�������|���t����O^�E�Q���k�����}W�-!�iM#5T�:i�6�WrB����<��&La��g��� ���i8����[�H� >��e��!��$գ��c�I�W���Zr k�Y��k�0 Byu�I�j�T�|c�]���{¶AƖ&��T}'�>�,qɽ�iX3h��Y@�p���������߀��wN0�D�>���q������l6�c����eK�[����뿃?V0��FC[! ++H{��2�*9 S���z��,�(n���-�`���Cfv��7!yRZ*��#��a~����($�Ԩ+*Jy�z��j��Qlo���n[���W���Ⱥ]�^ǻ�`ˍ��������O��ZV�k;��q���?M��j���ԫ�Ә��ː~+��f���p��i\�_���3�.��Ȏ�D�ś:�ټ��ZD��W��ps!Kk��Ε����6&kC�-0����Ŵ�"~F?44r�~�����]��L+z*bz���%~o��(���nK� C���Ol�2`eȆlO ++!{�qr�z���?�ߑ�t̻.bB�6��)�k�k���z ++�F��w-�%n������!g緵���ZR����VՕK ++ն�o��Ք�sn@�xC�LP�V�%���,�Md�QG]R��m�V��{ �M�%e�r(�� ��E�����~2>�o�D�K�εN��"=��eA��dq��}�7r]�*�c;m�0.討M ++�')yCP<�Yex�*\z{4��rRZx����E� ++�>XD�d�R�NzW�0Fdf9�����*��i)&�I(|B�YBHW���Q ++֤��o�9��o��V�b���ċÚ�c��?�]2��MD��[;YL��ts�5��EL�ny1B���,�X�qO�|�T�l�Y+�g(Lzѐ��I��������9�2A1/�ޯ�qI�Х|ūt(@ ++-0N��_KEz����N����#��k�v���� ���N�nhz�CJ��8*?��izx\<��045�K��1��p#��֊���K�>��lÈ��곹��t �4rf#��$!)��I������ˍ��"� ���{'8s��� ++�1�Xi�uZ�Eڍ��Gx�����Cz��Fb˙�i�����)�D���7�K�.�� 'O'���h��d�~>����7���FA@W���+T�mE /{�n����D�Ql�4T�:����Gq��L8wI�|�1� (C�Y'��$�9{O(� S*�� ����g�R�ı�QP}9�� ��P�wT�\�C��%/r2ߦ��t>���b�1�V�LW�� O!}�Ċ[z�I���;���D���$XE�=��x� PZi7�2vy N����,��g���, ++<��?ݾ����Q�#ѬB]�Fg�~'��<մR�:�;V$y/��eX]ы��;m��̒��ͧ��OS�EK��+�Uy�'�yTa˼S�3.�rn ++W��R�h%�"�y���3����8�x��P�MZ��t��0>�{=.V�����y���Ɓ�{,/ X�?G�6&�UaZ�̫�:%/�L�UZ^����W�瞒7o�G�`e�ݡ��:;;Q(�y��e)r�����Σl�ݴz���a���#2^&��}Gn;�����p�-�9R�<������:z�O=d������ܪT�Xz`��� ++T�P�0����^��$+�/�ա$�)��܀U����̵�'�=�_��d`�$)��I�r��)1�ȶ*|�0��E����<><�RWl�mjFֱY��WR$3��lH*��c�w��}�f����b�6��Y�^K�ŰI5Q��v�"3���q�?�&������)u���*��nOvx�t�TǪ���u�����4�s5����GZB�݆ ��b;j�2u ++�^�R�����ħBZd��I�껚j�O{�.��0<�#3d�N1����T��eC��G>�� Pk(��2O�=jcB ��K��w���mSS"0(�hPE*~�F�L��� ++iY�-F�|F�����Q>_J��B��� ���w��"��ĥ*��I���%[�0�?d��*���vO�"�S���ώ�[��v��fe�����>�BV.������i����w�c�܌�"?���^�0'����q �'�������]9��>x��p�ք��Iظ9�P���|YQ�;�����<+�� � ��[�=��śZN�v�c��fݶE�����$��y�P{� ++b�|v"y$s����f �C�.MgV�R�V�wB��R���a�Ȯ]Q�I��%*�e����S���8U����[��̧�E���eGɍ��z�o�nY�n��p�d��>��Rԥ.L���������� ++\g�C=g�^/<�T6�ȴ'G���g�Ʊi�8��e�Sm"k?��bAz:q���y�a�>%���PpT�����T�Ɵ(Q�,�J�r��nu��r��b����{9��愼�5�@����jC���l�%��~؉2x���uq}� -��Euq�_�� ++��l�Y[���X'�q�,�����J[zRm[�+�V�r.%�����b!(/~�.\jy��T��3t/$k�&h�z��<+ehZ���m�jCw���yh��Qm�B*X���8��8x�����E2�Y��|ʗN���AN_�,�e�T�����L����ѧL��4�H��d��Xg�Ja���pc��Iƶ�P����������Jڡ ++ڱ�=���<�@q~ `|����w����o����[��i�ǭ��#I&Q�"@�m�4c��e�T^`qeG�Ɵ5}�=9�e}�0�@�ŎbF�s%�������9,���D$�\U��F�-L��������<>֡��:Vh����i����? ���,Ỹ��6�ڶ"��+�������X1�Y�45!�`�K������ '��R�*<�ony�6<5�M�,�6��6� ج;�¹d�Z��VA�eb�%N�i�������K�ڄ��l�� ++��l^O��l��j��\��P�_f��Bթ GD�G6�D]3 2~0��iNdB,ky��`�t L�vG(�1��N�@E���� �6�3+C�Z�a��G�_J�0��8 ���{�i�n ++�E�p�[ ++���i���_��nWP呵��r��[�������0!J��ܙy0��ɐ�oJL�%=P�Va l`�稀y��}���� ++!2�/UT$��Hmx����ZUl\�+��� mW�T�ѵ�N,Pn�*�L_�h�͔��K��ٝS��x�} ے@@�S��X�������)��=��P�9��ϣ�S,e⧥ʤS?Q� B�E����ʄ��ǧ/@YN�����cAT�e(�V��c��c:�(���Ww�GHo����)��������!��>�=hEL�t�}��a�遌>����4�W#�G=�w��ϛ�W�!�@V���4�D.�j���Ӽ�5��--�A{E��ۦ�ML�[M�����GM��5����k�F��k�X����z�U,���g&0%��,U��e��x\�k��m�S��V�C�Un�����+�y��1d�R�% �"�x�0"���_��h�uf؏�:�P���K��~��gQސ�<{��1D9�u�!�ڏ������6D�&�6mp���D-��'�����to�`Eu镥{���QqB]�_��a�1tz�{�R�� %/g�>!������,8AŰ�j� 0�q��"^��i�^oK��odJ͕��ݖ�?i�W�������b�N�3=����n����x)����꿖� a'Ʉi��"������kM�Q"%pr7�DjC�Ku�H�n�j�݁������5��%t�O b��4䛊�v�r#��"���%�N���f���>�g���m+�ٗ��^��E's����'�Ö����pA9���E����p�j�]��\n��:} ��c��>�l�ٲ��b�G��W���0m�0i����x�ޓ,~[�݆/j��`~�}�!?����[^L�D��=�[�}6���FD���w��~!��A�l���;>�a��9���)<���O{\�Vʶ���J�<�e�y)�cw�,�Mm�����r��}�r�çzn�{и(�?��/J��m��)%k��tk��@}��MJ�5$��թ��GXUC��[m��.ѝ���?E��M��?"�0�z���)�5�gw�ݷ���vu��'���נ �Y��r�T�LIse�R�^s���a�疞"�t�"�(o4�V���hWA�u�L�u�����a�v����Ic:��݆��3}N� ֽ��,��9��o����&ˋ�cu�e/y���4�/�p�S��B����w�i� 0D0&�8�,���y�֮͆N`�$�N�} �l�����7������������Xw`WC;����Z���j�u��kL���&E��o���B��d����F;\/�xȌ�F�a��_��������l��r�����)��� ++y�r�O������-6�94�g�}�?���R�2�� �|���5�,#�E�$�\��x�}�";�W��-���&�K|��S�Ja�q8̲�J��������_Hȗe����l�={6�d'�z��!�-8="~��b� ��w�F�X^s�)��˫M��Ql�R�Yq���XD��r+6�7� H�C��U��v����[�OxM�%�F����5(ӭfd��g��P#��G�v���<���N`��������S������*�+� ++��$(������� ++� �o�נ�xZ���n���f���S�������ut���/:��:0��gM�9��;�M�*��5��0����^&#h��e�3eC�3������e(��h�{,� n�����~����tj��-�C�C[b�S�#�a���r� �Dw�:�&�@�N!aX�{���(�a!\t��`icy�X�ܩ��0^�����X��O�x~����?�������܉_,>�nj%2 ++�T��?�t���S9!��P�L���,����V~&v�v� ++ ++[�Ƚ~�]-}��i���~�t��^C<�5DL��|z����&[R2��:m�"iy�?�=z��3 먽�2jk�22˜��̶6���$�����0��/������O�o�\}?l��-�N>Z�bT6��J��wz>�':�����"pN|�>.�� s����N�٨6�_���r�x{����jr���gr!�3��Q���O���"}s��q[�,�A��6N�\ܖ�{+������Hn$j:����VR�;��`^P�| EW`m������J͎`=8V����/&��������M� ڻ�=�V�?�C�.�n>d�&(���ӥ�cY���=1�Ő�������S89�jac-i%�,����~1MLwl�C�B���X���V�o���������;�.kb츤ja�d�vM^�������J�N~�X�<��e��lk� ++�_�����H�kDo#���Az�$g��7�ou���ǚ��`��t��� Qau��g��U�U#R�:`,��<��>Fml��I��Q��9�lu�x�{��8�p� Z�%Y��_Ns�.f�痕�j�� ����Ł/y�S�������t������Eܵ����4;n����v�4�e ++i;�;�I�ek{�FnO�yB|Du�6��q�a�mM�^�d�5ʃ?����< �Ь.��Vh3˚�C�=e~av�R�n(��`���3�;�V����^_��t[�?o9�)j��=��i����K�r�s�ϭ���z��Z_ow0��t�������;�� �7D;-O���E�z?�_y�>�̡M��{��L�����ٻ�;��}�{����5A�)ZK���f�i��pd�=+~��7������2�i@�p,��O�ɥ���������t�����y2pn M����"w��2��^��B'Y�'�C�ɶ�L �G�Lւm���B�t�z�Ƶ�B����2T��Tg��Yi ++0"-.�>o�5c�3z�g&\�N�_���0�@��h���RޏHO$���sp�� K�S����h��dY��g�/N��3Kp��=���[���]�:�8Qή�V���=�37�H�k�����<�G|+���4�K�+G3��)_�Ǵ����?��a��#<�h�D{��%ۆH�� ++�C�q�n�ca��_��3=�A����R� ��pϐ��{=aq� k{�s^��4�E�\ڳ��_��|k�����Tۭڳ<�����Cl��o����Do����� 숹 �'�Q}Fפ���Xn�yD��ʲB�@�L���3h�=B�����i.�5A��.�����dM�;�'��ȬW�G���"��.�a-Ә��&�OL�bm���C��͎ͫ�!ȃ3��E��J찝\M ��rg�O ++�ͬ�]�"3NnPYN�Ъ�7���6sΆ/9�<���p�4�2_eS{�ޠ�;F�r4r��o|3"�'[����Ek��"sY ++J?o�9y�ZC�%9 ++8cn�ezJ�B@RC�szk����;�5W����tFt�9�+ű�;z}PB���['�A<(�@�U���9À<2s`f���-�A ++&h'�s/�e<5&c� �XF�8Zqv=h����<N7���|!2�/�m�~D�jha҆����4+86/"F�%����^�g��b�(��6]�����q�́��Ȍ9T�J�C�>�� �Цj�Dž�F��Qx0;r� ++Ni��Dr#)b1ȝy���hfIE�p@���n�+�?�E@Vn2��I���W���W �q?����ד , ++$��,�ֲA�3h�"�N1֞}#�^�� ++������O���;��Ϫ��:]�+ Ly��6����Da�.gǵ:��m�~���b�/�_ zWAފ�M�@O��Ԑm�p��[s�����^7�df�>!� 5W5� N�>�%���T�Xƌ����Z�o0Z�ݨ���+uZ�\]J����8H�N�%#���=O���~�x��Q����xւ(T�EKl� e(1� ��� �HIl�՜�y�Z3��u���>����'^���k�yq�!� �Z`��(64V�Y0�7Q�DŽ�� ��l�47du�Q } �N�tW�P�����/Y2\��E}��._��kܤA�W�H�������j�蝑T���d��x���2[������t��cU��+� dt�4�w����������W���?m/G^M���L�N�o���*֏V�8����%~�y��-s�j��?�qq��;�̭/˓��b���a68�[T=8�/���&3Z��y�[�*蹶#� �H�2Տ� �p��s�`㍷or�H�9%'������� $�z�W�����Vי�������������)��������*�U�&�����W0zG3Ȱӗ��,�%�XF��@E0,�o�B�0cO��)]�@�#��h9N�Ĺ���~$�5���%� ��%�jR$� FyR�8����֊@��*�Z4<��i���� ��U� <�F�;A�]�t-=ӄq�|7�ǧ�����*y���r���n˃鉄љu��� �w�GK�(Q��YQ�y!(*/��1�Ɗ%x�Tz�7�^��=����s������|N��"aMW��(&����B�� )>���́�Yۭ��Lhڼ��B{X��`i��s9S� �~h1��'�a�j���;����g���f��G���"����s�i�Y~,�!v�����z� ��Ng�籟����"��F� �C��]�S�㍳�� MU�:s��x�~��ծk1=R�v-���d���?}Ǹ�oȇθ�mR���\X?����$�K4�{����Cצo�M��檓���.̒��(�o"ɦ#6�d� ++9w�s�$�f��k�9ڋ���L:Q,%�NFk�i1BpI�R� ��M� �����5E��m�_'��*��PJ�,\e�G��=Db?��Fǝ�9DFƨ�S�p� ���+E �Ȅx�`�J�\&LA�1J�=��~��zC��#�P(�/�!�}��j��d�+p�e'���j�%0���˭[ZWC������J�ڕq����3K��q���`ǝi�tI�ϟ��_�y��=3T��~�)��{��|0�É�@������s �{S7�w��)�U��P�F!lеcOoKd5A ++/2�߬��mWT:��i�I�$�rn��ǧ�6�E���Em<"���~�`%�*5|O#��t:L��`9�$w���k0�� a�In���\ ++�P�r{�YJ��G��[9�u^��(*��L�ىDҾ��%˦��M:���~p�,�*{pxk竰P����RQr��4�\�R�+PO��+���l�����+���Y��R�����X�-���R��!���&�:�?&��Qܙծ��*VJ�/96v�HDD��])�y�J�+��Ec˨���{&�R��`��m�(���ͷ�w���F�� ++0 :s�'ܵ>�������Gw��{�<�INM�;��$�*|-���T7#��Yߙ1Uo��y{�p��^���>슌����)��~U��[�z�f���l�eq��\䏓�P|YB�"/Kfx�G���#܄@����#y�� ++���A��U2�:�p��h���'Mp�8�yj����{I�B-��S���,=}�Z�Tht$��t_�ӹ ++�$�Q�;I�e:6�;u�ds����`S,i�iL�N�@�)��q��*�̩^"z�d�������&ڌC����jm�su��yV�E�N]�� A�s�Јx(�� ӅQ��һB��vv#^��1P�]�G�#���;�g�|��[Nd�ȟ3~)���!c���_8 ++��e�"�����⍟�o�@2��T���3~� �_넔5��Uj�������;A��+h6/^&�fS�$��C/T`��8���藆��"��G=˅B�i,L��A`��JY��^�`�*K�(��H�E�nq��O����XB_�ԇ�/�M?�4y�� |��D����i�Kct88z�4 ��%�� "@L���o�B��Y�Ađ����Oa�QvFi���|C{pp���@R���o:�Q�j�3 u�h��w�q��F��jI��;�70��)1�'�_�'z�}��Ku�MЙ�q]�}�H��*�JN{�%u3�i������*���y�����r�mhAHM�)�g?��f�\X=���>҉��W'ि�>ߏ��⻆$p���H�x�L���j�D�_ۨk7��{/��N@�-���]! I�Bc��Q&��iY� ��5-Q;T$��E��@�e���N�?�D��v�ޚ�oő�<�r���q���uh�*3^��y��I�Fu�K~�����_DYq�C���i���X0�_+^������bl�N��9rT���-��O}��u�m���W����3�N2�ΐ2�� 5�r7�H1�4L$��@���ѵp�Iu���N1�Nz)��lɁ�Y}��5m�����g�z �R�8�7X0�/0vV��=LV���}A Z6˼9P�H`�ұs��Q���Ttm��r����1�G�4�!k��Fw� a)�Hnj����bH��B�}cn�gt�H�S���.�m�Oijo�Q�i��'�F��%"�l���|�� ++J4�軈rm�Z5�47�ܪ� ��/�)#�,�yx�v��Q��*z� ++�UW��;V�����0G� �c�5UP/|���$�탦�����M�J�� `��}R���V�H*�{đ]# ++�g�JX� ͟?g��;a��6�L�f���H, i����hx���)`���?�}R�&fDێ�PHE �VI�.�$ Z��Х�w�A�<�U��q`=�僞��]( �~���ߥ��c,sа�k��j��y�Ͱ}I��xF�!�%8�h�B�ꣁVizL������57,��3�cSr�?Q���!Ч�g�U�[�l�fn����n�Y'd'I�l��(�4���i{�<�&z@�I�i4�y��j�}<k��;�C�H�?c�و�L�?2��7@Oq˧Í�j�V�؇<>�>B|�Td��h�bє� ++:�þB�p�OBT-���/�f5?ࠥ����4t�;�@����5D�1��������0@a��أ�kU#rH>���u,����l�%ʃ�j�d��w�K���H%������Fi@a��(*Q�-�L{�&{R*_�`�#�B3=��긟�,�YFBJ�5r�2��)�7������{����GI���&'>lruE{�5X�&Q���y/A-���R;s`J~��谘$Աp���d�t� ;f�Z��H�3�&�`"To�(S(�t!]\��gu��7g�1�M|N��uHPAG��6*�"�M�����TW*��I˅9�̿H�l���c��S����9n9�8o��QeL�Z�u���IE���>��2��{:���ZY�����Go)�=a�amK�Cβ�i��Ιbi�{�����n!Y ӈ��I�W !��홃8G�?�γ��� <��-��dG�Q���z��D���v�;�F��쉕����zf���TA~�� ++G{J%�ydIF����:���^�$W�഼�>*��w�2`�������tV�&��3��� ++�7J�J�4Dg�6f���qZr��\�7�<O�%���>��}�������NDS�Y\(k��ё�P]�`uW���b�i�Z��Bf�������hc>s{��[�鍌��\e 9nL=&uV�S�?"�BvDz]�*���U�WL�]�w�H�ZV�^��-k'�[;�E,o~�t.7-��9�64շ(ٸp A�o�<� )��)����J���ŀ��L+�5�3f��ל͈ go�s���v��c�A�F�كʝhUPm��>�9S�����RML��O��Y)5�_��ȣe�=Z�����s���3cA��$(CC�+�Y��E@,�f���~c�`�.}=3ם��ᡢ�����9Gi,������D��&R�*|Yw�δ0e�����(�i�X���B�'��-�X���I��s�9���s�|P�B:w�?�f��^Smq5�:��}eR�����$w��%��O5ђ�ȅK�\li��9��WL;p���X�&�<�R�(�e5���}��4m�m�$�q �|�3���KvY��p^�ѵ� �!���B�m�/�fvU^蹸h�L�7�ek2�-�� �N�y�F45���(n�a b _\�Qs `�gn ++��VK��h?�'���Aԇ�z_ʷr�����qr�QNe]���G�4�K�}��q���>�SlM��"@3�d��D_�*��d(���X_�^���,�w1�9Q�Ϙ��(����E@:#HE�q?7;̀��wsZry�Cl��QBhӉ�ݝ��vr�h�\a�������iC>�m ��9���|9��u[{}�Eg������:y��2g�.��9!��HW0�N��o���+�!'��Z����/��{e����=�� � ���y�u4�Kٝ�C)ݍ�j�Mt�W��Th��{A��y�E�b3��4�W�M�F�<$&���q�� �Y�t 1���Huh�O�S��VU��.��`���_�Q��]-���O!�Y����>�"�r� ��Ii4�>�'�v�yz�!;�GR ++�h��Vڨ����G,�������q���*��˵G�U��0ꝇq}�z��)gy�!�Co�m��v~��<��I���{/�6��8�x�z�#�|]�8Lv~��dz¼��I3=���Ⱦ��L���%��ǥ��#p-�#�w\?�*R+�hYX��f}�:o������xͥ�G��K��2pƯL���hb�i}���n}c�=��"���WD���P�:�L�lX��!E��)��3��V�$'�8z�(O�*wTZ���ѯ6c�Kf�,� ++DJt߄پU^~�ݺ�W.�zM�/ܑ��W㊯�ҁ%K���y��=;�� ���K�p�S^�N/r6����@��6u���%���T�{|��x��N/���(=��A6��@�?�������z���"����/��J����{�)���?���4�����ׇ��Z'd_���m���TL72��o��*j�+�[Σ֞��O���v�8�b�V5��oe��_.�����G�`�olc�3C��7���s��;��QWnJyԕ(�J��x�&�1�MTYQu�V�|�/-�����M��$��\�;$�O��+��t@$-��: �>ܢ �D�Q���0����My�����U�I�s���*Ϥ��=y,�K��Pѹ:���U�e�uЙ� ++"<�����% y�W����~۽q���3���#�������((c݈��۷��$��ӂ�'S��@:J��_��ba�R�C���뤁Rad�G^�}NwQ֭J��M��n3į�S�eY��� ��Jr�w��(z�gS8R��� �������qVd&�5�������m"��=��y���(��>]����#�w諷�%� 2�+<W�����d�6y�6!@� �TC�˖StuE ++��}��k0��滥�@�*h�rc��o�� HZn��� ++��ӯd�|�D���=���@�L����� ++ؒ � ��㙯�N?sௌ��a��D���*N�J/�η��R��W�6��c�s�2�!�@h�G�\�l{[~u���� ++��k�J <VDs�*��� ++�D1Ta�#)�/�����0���5J����ݾJ�d��U�G�w\"���S�*`����\�Εh������@C������*`\5WE������q�W��k9%��p%q��Y~h1Y�ч�37�pן`k?M���ן/��L�k����*ð�H@:!,N����fu�6��:t� ~d{�|��PY��L$�p,%�B����,���.�kw��|��������z���Ox+�R��*�&�U�t��,�-�M�a!SV���_ؤ��Z�7MѝHgQ��aUI� ++���z����fh������R����;k� ��G4��4�x�C��th�w>!�t+��Dmj�%�1Q�����J���]�Ь|l����G%������]�2�#���&r�#����A���M����P��8�v}Я2��c>z����@P��pM1rJz�H-��,ư�S��8̴n�m��#�] #w��}<h�T�~��� D �`VL�[ht"�0�$Sy<��=��W�Q=Ɖ���������V�xk����:1�B04X�^�đ�e�$ʕ���Ӽ��dR�6XE�~���2<խ�DA�O"Wu�GD���J%I$�9vb�>!S�e�sT N� 7�\ؘ�$5ЃL60!��AYc��|ɤ%��Gj �=y�� ںf<&M�%$@8G�m�Y�u�j�{�{\�<���cR� ���qs:r�������P��n ���[܋v��� �0�o�������i�[�o��Z��atT.����$�C���ÐO@Âd���n�yO%^"�P�sUBgV"����:���w}6�\Y�-���i�ӛ;�����욛�7�^0�$����',�eIi��|X#����2���D�]��:� AQkĻO>ײ�8�B�N5��:�dR(�7"<���B�Cn��]f�S)�͑#�2u�b�oщ� ���.q�^��٪����Ic�8�4+'�]�7�Pi��)7p/sk=���Q sE���d6�E�/�c�@����\���u2�>a�y7�\����}�,h�i?#����*�9E���-���̷�G' f���y��A�+�qi���ϸy���͑uǥ�+OG��-��#d}3�Ņ�]��y�Rw,J���y�2�EL���'/VE)����t�-�Iu A��"��@��@y��&m�q�M�H+��I�6��ʱ��Uf��.Ɓ�&w[�gt]�M�W���YN(G��ˏ}l����Y`Rjb��4,N��C+��4v|��&��������:]��c��r�j+@K2� ++h�T�.Rѕ4M��J";���Y�_�t=��r]rg��\��-λK�*U~/j�\W�`���-��]�l��X�o�!��W�w�.��gkE�#��۹�fޭ�m��J��y߭S|vzz����'i���z�b�$�2�����Hp���1���G�����4����?Il�_� ͽ�� ����S ++�q�x�rX�q���]�\��?�����Xr�J] O� �~y`�4 ���ꮺ6ݹ��Wm#^��<�=P�Rٯ���6��[4WI.#>�=��j�D\������zpaY�؍�N�sD9��(c&hzeּ���I��/�lC���Ƞ�F��ނGє♀>�5��Y���Q�N�-�)a����"r�D��Ԭ�)Э�wH�D�V�H��휲`n.d���_�`_.��jΑ��>� �� U�ΰ�����r�[��g��E�L5�U�f�_��:.���ŗ[��T'r�/��4�����X~���{�+g?�F�1&D�#�#�/hA�;p�1!�cY c<5U���Od �ܻܥh���������K*/.!�M@ ++�����u͑�������y�doVp��<��`P���5z`r1(A��`a�J���nb}dL���϶E�*MD>Zt��跉�onQ��Tl >�dɳ����Z�f�l�Hr�"���J2�N�9�)M�� _ch��悘���yk��[�KUXz��w�;� )f����O�G�h��#0�#��i��y�� ���*�w~���a��7��F�#���8�� s3\nƂO��7'�pak�c|��%�4˘\�P�ΥAk[�P�����&��]u�y��^����Չ�gk}#h���?�x���#_��D�`���,�X����r����r3�p\�;�ە�g� 8�p��Y`Y��I��j��G*��k��SI)���%�I>�N"��ˎ����s��_��9�W1����s*�7���gJ��g$��Ѻ��<�Z��*�,��}4)��&�dV��II��u��D��ׇ��V�i|7(�V�Lw��':�����XX7�n�E������3��ܠ4^e���f F&d�������0�\n�q�n��$-+�w{o[U>�L`Z�ˣ�<Hs�=e�o*�v��j�E%�9^A+�h ?·��,�ȒA�@OG������h�lU3=��u�X����w^\+mn�q�a4p��q��i.du��h��hȯ��<�gL��НyPKgtn�?H���/*,���߱���q.t������W�d������oD3�13���Ŕ��J�4C l^<-��������^5̳���QnX]�55�r��Hȩ0�FYGlE��aD)��L>��)ߺ/}�m4��~T��M'��D\�S3�]"���];�{������Z��w?�����\�^9�՛F��w��DƆEo)��������vKۺ^l=�O��N��-��`����B�C�xE 3ȟ�۞�W#���!n~��h�����UU�?��yȺ�ه�LF8U�J5���Wy̞����n�;X/��-d��S=���8�u�r�?���Y�cT�)Bm� |'� �JO���H��=j�8�v�[�=z`r~�D.7������� YB��?�71h�4%� d��6�s�q>�g���e��e�K�m{B�W�߱B����{�}�� ��cE���,RKϗD5M�H g�E)��?��X.d�lj�g���;��a_� ���la�Ǜ���CU��_�5��]�T] :��D�q8��-�Q2��{�N���%-���ȷ��a�v���7K~��'���TV5�#"<+�� ++T;q��}D�����TZ���l݈�����y�T��������ܝ~�����V��5�� �'W�ĻB/>3^~w� �� � �D�C\�lG&=��s�LȄtޝ>��1:U2�Q��bоY�p�U�wM�.f�=S�A��t����Yɞl6 �Χh�&�`���t>j�v�c��#7�ŇҶ�͊�f�]��@�{��BZ瘰a�=�;_r�b���I��t4Rr��鰯��-G?�(��QjɣxK:��Y��x�&��<�?�L�S��;��oc+����k��Byk-b�Ȓ�突��ɂ�8=Y����Ӏ�T��<�lj�%�%ϸ���)����g�]�Fϭ��I��2���ۖ�?�������O{����H�xU�:z�c�36�p���}[KD��E��z�6�J7��[taj��((�8�V`tΪC�����A`�Z�jO;�G�R�;=@e����ޛ�)�~Zf*�8�4�?�Q�yv?=��B���p�|z�3��P�T���(J��g-W�n᭗�-�XCbb��}@M@Ϙ���z,�6�\�M���6�S��/t0�bVFh6Z�gHrp��IɒE�q�=�EUX��Ӽ�9& �t�t�EЇz%я��ridbd���y��������``��{y��V�H1��ҡ��%������l7��hjcX�'O�C���5��Q.�d2�lsa���C�(��]�x,χ��[�|����=x6��Y� ����$i��:�j�]���oE���D���C��&ls6���uc�j%��n�" ++��u�6�D��;O�_D��F�k�������[2!m9��~��ԠQ���엦��_Q=)B�A4�aH����o��6jB{m�ms;7���l�3x�.K� ++V&u .�H불��+��e f���n%�[[Gzi�w�O�����e��1�5#��Z����;R $�}���ھ��q��P�5Xr�!�ͭ�#�#�%3� zHWr%�i�|2��֒��l~�PܿE���4��v���s��}��6y�¨.I�d�J_>q��W:�� �w���x�<��Kc1�:���@�K�ʼn^QY�����G{�k/h9g����U��K��z%�]R@�x����f�-?���f�?<��U"}�j��l�{ ����]N%E<�sʬ���T!3xg��4Im(��g�K8�j���%]�ĕGO��IB�B�C��L�(9̥C������*�b[�ݾ��a89X�z̘� ++Z�s��ҠU�sOS�ce�yY�p-�_�6�N�bm����b�· ++*Fuh�L�9��<�7�ڶ\r�!d�JG89r ++�[���ˉF���,��nyY6G��Qm�@��,<P���>L�S�Ї% ��J���ҿ=O?�"�5c�� tP���S@����<! {_}�^ǁ]u�-1��T��0����h�Չ9�����!���&=��V�Tt=��h�b�pZN�\4�NQ/�8�Z�����B?�vݗ�����V�Įb_DK��(s�2��ORp ++i� [#B=iE�dh�� �}"�9��[�77��g��U�_r�X�������D5)���0\��W��1Թ@�f�)?QQj�,�XEKHe�����og.�w��O���'�(�כ�p�)e����g��vY���½~���5Ԕ�}i��ߨo���?�#6�`sl���ބ�%��y��:�O(>?� sV����⌲��8��!��s�<���W��+�ؓ�q�o ��������V�Z�ij��&:m5�`xr$ ++�����:�{�~�AUaxo��s腈�G�"]~xE��zw*����&^��H�m ��*�ѕ�'���d6�\�����@:�R��-��_ :������ɺ�Yh�__��@y: ��k��!z��Ad|��v9b|�Ch��|5�|3W�Y-�`H�Id�����c�b ?S�^�������v�;[�ؐ�sU<��-��XB���_�q�g�vUTFwN�����ïn���u��pP)� � ++\�H nb��Ğ���G@���*n/����6�6P8OW<-��gQ�3�f&N8e�$^Q��vj�\��}<0]�>HL�ϫ�� \"Ju�=��=���n��@v��&����vq�ܢDH�IGC�f�f�|G���9���H֙�G]X�;TQ(�Έ8���`�,e�I��!��mLۥ���tML)�+���#}�>X:C�IB�2Ƣ\F)��I� ++f�9츸B[VU�+����A^�� ++ ++S{�FOk��G�-�|"xv�Bή#�>i{���)�g�g�)�PōH��2dw!������]�3i��fI8���>7�!�����tQ�����������gZ�O��N��9ЄT��SFs�s����e��9�x(��\�r�RE5��=�K�7��o>����6`�G��4������d�P�2�tlN}*���R����#�<N!��B�����Cg"��Íf��������|[i=����au�u*� ++�p�M���1CSM�̨�����ߠ�qd;�2�����@�&Y��J�����$��@� ;��'��o���ᗀ*w R�}�x4qo�^����h��� ��`���8T��,�$,�^�I�����'��}Ylx�x�gg�0�hN��k82��Z���y�mrM-S�c��q%��9@�tIӃ��,�A�$�����C�ҍ��t;V�� ++5Q�8��p�����ɫ ++'�����$3�6N`�N�v������JL��h�CI/ԩ�gu��u�հ�A��b�^`��ye�7�YJR��8%�Y�>eL�lat�1�f��x�LyT��0MX�������d®1u��i�ۼ�6�kPpGO[�.R���/b��2���/%�`pJzlX�1]�X�$ɴ��om�D �[�2�y�M6r ��C�Q^^���T��ͷ*�t;���'�Yq,���,���JHIȷ6`��O��J砚�)���5�,����yf)��.k�&�}n��w�;d�sa�����Y3����R&�^���.rS&Ƒf+���LՉjb�M>�x��� �dv3���8_=YҢ��f?B!�,����4ag]8pӞ��}�� ����é`�#�$� ���J��/6J}�^�9��%��<����r���WS=���4�`9��B7t)����[�?�!�"��)���p'��YWG� �p�CN˜�F ++,v K�����M���)���笫#R���>��H(F���X���t�Cޘ�V��D7�4��i�6g_lm#�y�^.�i���t��˭��}��v-����R�L3 ���O�j��\���@6fzw�oV�(�~� �vX����2K�۪�%�K@C:�`�8a���6������k�b�PRk_�978���%��dj�6t&:���Àf�jO+��㏒���U��?�w�d�&���:�Dt�&Z�KX���Jo�^�0�(�j�?��C�'Բ�%�$Rn��l���w"!��"�o]�)��|j������c� �W��<KY/]ք���)�,�&:';���?�>p��j�2�'��(NRД�^���N_�CvL-��Ap�:�g�&U��^�H�F��{U�HWn78�$ٟi�/�U�P�u~�*�B�:4�)��]��Dz:��'�V�e�X�S�� ��D�5�kh��ɒ����X�M�]�����oʩ�S���qR�.N�o�Op̪��9\UҪ��n�s4"�O���B�O�H<���-Q�I`�iB��!\�� ��M����j� ��WN�G�K�0��k6��ʟ]3 '�T��SI&��??fQ��2��8�q���A��"�-�Y�� �������-Ҁ�J�/O\�$8�u��1�ee��Ú����;�H:>�)��f��W;F}8|�ù����9A�1�X�s����-SvC��f�<h#�j����L>� ����dR�c�]���?���%M%�n�8���|�� ��E, �j ++A���wn˶$��m��ي�D;�i92�P&0�P�|Y�{}Q�/.����L�6}�����pC:R�$�2���9ԅ/��^26�0���Is�uK}�}k��N��ks�z��.YE�z���yD&o�;��8-1��n��;��"i�R���U�J\a���]�T�H})�>(D��n��h��ĕ�Gɾц�OD���yG@���O���B�e��O��p�<Ky�'����P����`�>�G]��<^g������܀�����^�q�~��Y\z�*IS曵X��ߛ���ʺWwuʟYG�$O��R�����(��������ۦS�N����c�4_iߪD}a��1#�� �&��-Y$:K���|�G�:9��Q%P�� 2 S�!X.������Z��4m9R��FP��F�U�6L4t�����$���6b%��b�]y����)�8�A���!�4��j*mຉ�W��"iɂ��(@J�WQ`��U`V>h�r�&���K�p���z��GR՛�9^�}�_vNvGZ���ɟ���0m�`�ړ��pvq��c�B@6R�:#�ߗ��5��U�7��̀G*�Q(j��x:�$]�Q G�7g�&ςj��e/�F|��'�sv�F��Xw���4G��)�1��{ �_~JxzE��En_r8p>0"N��f%ґUz:���F�6�?*!� ++�BD�G4Q�-�σ�ˏZ{��&�����:ӊ|�cX��[��8🎇O|��0���h�{���-zvk��(>gg#r#��)ofm@y�n�H��2�Š ?yN�뢁Gg:e�c�e�Ŗ0_��7�\���I���ƻ]� Q��C ���P9cYY�K����7fFN�7�`u���gڒ�n���<�e#�������鮀���'�d�s����|�����Ó�Q3K�}t75�?��x��|}"�Υ�-x��N;vw �B��g�3�^���5S{ĭW�y.p;=�'��M�'N�EBܽF�����kT��4��~qA��^�*�����B�2B����z���婈Ҭ.���#�@_�н�Ĥ�� y=&r[h�s�AS�eȳކ�ma�f�$�YjN���_w*t�o�#�lho��y=���G|k�g'k�L>���&�Z)�e�Gvk �q ++�d�s��oI��ɾ���]�/�r���?�}-�*}ǾAu��$i��t�&\BD�XhO΅ =s���片x����u��c&�2P�7x�<xnP%����n-�w�<��mj��ơ����lw���K�D7-�ja�0�^EY���p��b6Uд��!�.͒߉Y�T2M(�^�Y�i�E��k��*�-�D�|���ʻ�жy�@�n�B�����T����}��UC͍n� ++�/�6%��=�֧��F�ti~[��d5�@�8�S�V6�etB�����J<k|��)��Qu!{�)��R��-�1|D�l��\�g��Z Wz�� (�^�*fe�����G����ޤti!���Q�=�&j��{m�L&t@�Ҙ��"P?��_��O@. ++���z���Y�C�"���d��\��$ �'e0BT��h��5�v��ZdVO�ӭi��V(��U-�R��M���Q��ڏ����s����6����i����j�6C{+����C���3�G�.�]��NB��ma�S�@���K�P��+�����`i\'�1�Z�Np�C����!8;0�0�g?�����������ʃ�(����~��ڶIZo��-}�s��t��!��,��frw6�㲧��9=2�7R��և@i�˪z4%[���4��P�*Lȷ�(c4�f�ֱ��@+��[Ռt:��M�?��J�%����]�S �jU�O�D�3�n�C�[kG2�Jn�IN���{�>;�/��r_�����g���I��r�ڿ�]���C�r��H�6��ze[&|��|ږ(@�a0;{22R�CN�p��ȁ����|\`�_�o�~��9f@�~'�Y���R�����S�����)�Bo;�����6� ��h#�hl�Վ����]����uݲ�R�����"g�|��<����oƿ�C1������)$��ߡ��=�e֙�`v��m@nK�� �_��)c�0��肋�Q�5rP!��o��`$�oH�M8!+�Ds�e�����K�o�X"��"{�&� 圐�+�&��'�ʵ#͔�gD�<�,��d�A���1��U\8�T� ҃�Nb��tFd��r���x�icG�\%8n,Ld,5����f�馼G��2N�u8�۟4^�͈f1�^q�_Y�i4�m���k�¦ ϖw~��E���e��3aGM���-��>��LC��I6D'�z��?�IM���Z�]�.%:Qq8���yg4�Q7��KBș����P��Ti8o���0U��G�vQOx�l��-���G����Ŭ%������>"�\T� .M���h�cNC�=(�a��HlGs�X5X��q�z���E�ҏ�w]�����:LG6mg6!7~Q�U��뻜�h�˫@x��i�{?�b�(�<�!gH(�<7x*t�іڐZ���Y��;3�e���XU�z�4���R����(Y�C�[}̾�}0������]�+xL(m����/^�m;k�a�̹�y�W9�[���VV�z"��L�m����@o�,+'t�}ѽ�j�{�WL�D�%����~5�ܞt[��� iW?�k���>3���o�m$4�Ӊ�CǹU&1ێb�Y�i{���w��1/�<�?A��CE���O`��h�s����� �[Xޏ���??P��4q>.�@Kb�I �����f��E���D�a�tD�IR(ԩ���znz�R-���4��F�=cn����[�壁�zqr���ϖP�G�8�2�Z|I-�lL=r�o5c;��*��[�:��r����M��L�{�b��i��8}��^F5.�]��FCH�f�;k��%$�n�v��P��"=d��=ˠ�n��˪��cZ{������V��9B`���a�)7x�X�&����F�YHJbٔ�nàq��YoLcFz�ר�bR$�7/�EA���Nj��o�2"���Bq�s�u.�q�|Q[���H����c��4Dž]:b�[��9�QYcD[%�k��S'W�H����^��+���]_���U�X9�W�t<ɩlVb��b-/�[ᘎ�%D�ٔL�$�e*�~�̗<����Q��s:�铞��k1��7N���y�ȿ����@]B�!�Y�P ������G_��4�0�9l*�(�,{��[>�����&e)����ѳ ��=p���l��NPR��/ֶ>>G�%����D�g���v�u��4Wk)L�?�;�'/��R$!�h�9A�4SJ�=~���T��M��&<�(e�wj/ ++:v$���U�[�7n����8��n���rS�ʑ�g��V�$����Ȓ$�+��E( ��#� �n�Yx<���u!ͪ��zs��"^���&$�$�Pvr�g�� ++�ɐ����5O���|:f�0`��N�/$V$ȩ��@ ��d-i��\�7x�r���j�("� �B;��p��A��&��]1�X�1�D[��q���-d�i��I+�:�D2}�DU�v�wpnG�1;t�c�@wm�$�5.��h� d�S,�d�R�g6��Ь��q�4�ߡTqļ�X�('EOs�d� d������8 M��WZ��Y*���U�����E��Q���G��=Sg^\�\�l���y�?����8�������d�dOd�enT̾Ft$����ׅ� �3GF����$�{�j��V� ++%~�\߂����mIbj~��L��i�h3Pզ�✞�0�������DW�އ�$+e[3���e����]���4um%ě�0+>�or�@Ȫ�}���7)*�J�O}��m�d片�6!��t_ll���E��L81��J0��1~��6=�6��@\-�F�蝧�����'�:̈́'b�";I��`��xV���_�K;�:̕�ë�q��-�����N�]���8Tx��i�"&�Z�̌����'��m[����ak�]�朷K�pO6�Q`�5�|�܅�ũ��w8ZN ���� ++� Жt�0�r�Q���Dھ�`e����6�{�(B���h ++��S-Sb�_�X��|���� ++��&J�m)72��P�c3`�aԣ��8}Lmf��(����)���|d��4���9��`[5!���z��_eʬw� �*p��pdL<���x"������Y�H�-+wN�n/�8�o-�CX|YK�}m���B�Nqt#� J�K ���÷0��VI�ʧ�D'�VB�[|y���+;���c�>C�C��&'8��lx�:�8;�w�CYqO���@p���pvA�h��UZp��?���ƕ��h���v�6�`tˏ9=a^�9;���YvRp�J��*��縎��%���LF�hjx�It�&�؞;8�z3�63,�[:�G_1��7yf/�D?�VsK��@�2�q�Y�!��H�����h�엠k�FA�hX�vQ��nQ�Q�lu=� AG']{���oWl?�dZW8\���H�;�Z�V�a{��l�A�N����n�5��rɚ�ozH�g���I���\0 !��Un��CP��i�>6�s\��N�Tꫫ��p$ �OX�H7����$��4\�&�&���^�jl���d]�y�WD��t���?��/t�=�R���I*߅NRJ�'�5�\�Wgx��dp�� m� ����[��x�&|g�2�#���p��p���~�M�@_1F �'&2�:E��`d>�T�74�wE���q'.�>��^��]A��Z����|H�@\�0�D�Kg��3ᬝ!|��yZ)�}���d�ce����犄��+��l�R��k����ⷆa��Q�5�Y��6_���|�p�#p�k�p�M4$�RQ�����Ʋ����(�8?�@-0�����r` ++��2�n�v@^�x�� o��Mϫ�/��p��82��+���V�U�ܚ��1�S�1_���yB�p���+f��\p�W*��+��3�I �>���'�'Gu ���D����9o��ڻv�H�IڝK�ˇ(�9?�W�5���ժ����4G�+�o���"z�g�8���>���$����fyd�1v�t.2�1�������k�/jı}/�NMm� ���b� J����p�Z�v�� ��U���t�w�:�Golj\�s�z���9H�����}QV�$����Ԡ����h��q~Qv��`��� .��:�f��髪C�U`6K�ę��6Ӻ���T$�R�Bs�~#e˅�0��i]X��kb�����[�I�pvN}\�!�J ++|�p�J���kAD�.�H�����%� ^��%J�'�O�ځ߱8�0d�����B�x�a]B@�� �6QW�!@��Y8���2�ɭ��(��n# 1��9 ++2�֔�vQ[�*�&ޢ��[�Y��.����F`���eCb�o���6�����/{a�T��9�u��?�@�=_ᛁ!�OF�5�����#?�A��G����ם�S��� Q���7,�Z?"h�I`��K?�C�=��F ��B�v��n6�%�A��7���iFT�D�RE�+U�)�!r.`9W�d�{]�T��H�@�����n��nq����(3���<O��X'yL��ȵ�{<T�;���j�� �t0M�9�����0șD��}b ++�S1uP��$=;���DI^��E��MbC�aXt ��4�I_��� ޜ��[3Z�<��ᤌ��'��u�_�jC�}���V�'^:���(�9�wh��H�6*�'�b9���-�V.�+0��.��</�C��,�9�҆��*â�X���2dzt������V���CKK��HؠZ����7^˸3����f<!3�]�8L�����b a������V�ٌ���d�y�s�o�i5K$�3#���� �ҹT�]�� �8�9dL����ݟ6��� ��3F<TT��["a�!,_�2�L�����'���_�*�W�q�3��H��cy�JZ|$j�%7#��������F0����%�x������U�-B�0�ZeJ:^j��pܛ��ixH���V�"�F ' N���J��6��X�{(tH�����ÿ��:kj� :|Qr�����z �x.��w�������|����{/��͆�M,�����M�y�E��ӣbt�.q`h �yi��_>��i��n��6�Y�j�����j.�������]�ǭ���*]�k�오�R��Λ�E ++s���y����`α��� �����e�W�X���Q��n���x���M{��� �($$��8x!���<Q�~c�_Ưf��X疖���jD�+Wi]j�)�ƤU�Ba��)�G�L��f�Q���~�6�5��F��-������_�j�I�ҎpA��v��>���������0�G��ZԵ�0��U���k�Rl���Z[J��n��@T���t�hY�|�5 X����MJտ;�ػ�(�(���Cu��:�P^ ��O��2%�h�P3�|[�,I��0��c�}I4D��{���D�LJ�S� A�C2�@��N�9߄��5I$��5��Vo>d��5d9���=���s��srA��4�Z�c���^�JB��1Ι�av�B���H|�j��:_�Z.� t������"3���#օ}Y(�9!&����l��U�Wo�� ++/�( s��lX�Q�� �('�)��_�c���Ü�.Z��C ��A(� W����07��42�I���1���K�>����� �Ǒ�$X־�N��s�eS�g�e��27Q[�'��5��(;��ޑR��*!��ʄ|I";0t��1�����FBzKKGiN���~��3=G�����}#�h�iO�����\V3��%WW��� ++cEd�h�6_��y�oVW [������M(��g���5<�T��@��2ĭ����+sl֥���2��=Xt�$�*���p�Wbt ��� ���#��\Kz�}���p�7���#m���<�s~U+�,�biy�^Y���!�B�IL�� ++̋q���tB��P��)A���u��:E�7\�k�4��Qk���ҧ�O��Q+��}��ت�P:9��W��a�\g8�#i���!ڷ۫ ���_��9T�n�f�?;g�S�|H:�pBi���z�"�^Z��.�Ђܨ�����{�خ#h���!�_W����2�*��)��9��8�<��ޡPs���V�:m�t�D��I�T��z�7e�*y���<pۖ ����ˢ�r0�\��Ԝ^�*>�e�ןe�(��u�h��Pp�.�$#����&MW+-)a � ++\�d/%Ӕl�����@{Q���~ȯ�B �d��9�'���=n�Y��jj��Y�R�Is�G|K�:/��a���JCb#?#�?�w՞�S��-�<�,O`gp�c�q�3\��i� �eO6��\zퟶ��n�m�Q�=����Eҧ%2RĀ��@���[Ԡ���<� �Q���C�Ѳ ++S��T�JG,d�����+m"n��}{v�����~�62~t�3��#���J3.�-$�.��趄tq�H������(*̏ ++���2�-+U��h.�b�عD>TO���+LID�3?�_�1燩�y�o ̸5?�M��SC�̑7_n���Ҝ-s�k7�Cd~�����0�-�9Ѫ�kUSuI��I��!����I?UѨ�D�R1��Y�$%��%�uPS����5�}<ꛛ�$Z�����wR���. �߈V{.�@�S�����!��s��ubM��@�8j���INz�|�9l(��9:%=䢉G=�2~1H�t`l6�b�ö �ť�䓐ۜ����Xl#����}�:�<[��3�p�v�g�{��}˲/�2:j��T�` ���6pX�H���� b�,����I�љ��Fܻ�aO{~�Ζ� ++!��"��ӻ��N�0���En�B`����֯%W��SGA�7��G���m]mU��]����u�����x���qPcKU@�%�IoCYK˛G�l�����ݝv!��,�[�d�y�����fw<��2�W~� ��d�0��c�k�?�HL&���%�LD�N7ޢ(y̸�̶]������� �>iЙ�L����`��DA�먅c��>se5.��혼&�����~� >iI�Hy��ҐR���/ �6W#�j�,CMFz+�|Η7�#գ%�I<���*=�.�~���ˠ��O�}�!��`<\9��P�Ӻf�ƩH2�� (�N߹a�s�+b��p";xns �φo���a|�/(�b��.}��,�FCD⹁:�r4�v�Y�e��P�UR�}�6:�a���X�KKI`�w��&�h�K����x�q�� <�2f�u;�F:����ia����yn Ͼ�6�"5�+̹f�B�Z�Đ�@����/�����������1����Mk�N��9�+}'�)��D����wƱ]�_�>�Q�&..=����ә��K/;���?��ݮ�,r>��=���ۀ�baH���Rn�q����6o��W�-�0 ��m�}�j�Y�{t?ʳ�K�����8J�������E�|b&Jl?.PC8� u|V=�G��q��)�R<������1��, o�K���8,�Щ%I����ܩ:�j��C�N���hNzP_�e���/ ++/������SY�}�{~����Z|ǐ���]|Mc���Ĉd��&�0P�� d�-�ވw���e�x\H�1ղs]R�7�n|6H5��~n�@:�4������0�"�8����5Cf����qr����M/����+tЗJMi��a?>-mv�Eè<������W�_j�t�,��9�۪H�[C�����mK힉�l�BZ�����϶��#��c\�����㋟����x`�$�t�F�E��\��4�� �;��D�p@NL��x~�Miх�:9�*q�8b2m�D�,������ 7�}�q�9����8�ii����ֳN�~^��ձb�{$�%v��F��e�]`�E��~<������މ��9E��&õ}�Q\��--l�dJ ++eB�DŽ�l&�-����֤��y�`�I�>�9�!<+�~��pj���g3���5D�MS�m�Б�ќ_k���m���H��oo�;� ���L}x�����+^E��Y�y���C��U��U�y�/���o>�e���'���C솣�g����(����`�s���Zy�.��B# y\#�ɮ8��h�~��W�����D0u�PЖ6z)\iE�GF�� ]�L� ++bJ�Ǥt�����y�$�g<��4���,�*g���4�~��I��F��k��{��|DI��||�,VP�+��g/q>\B�xÞ+�:ܠ;��g��O�!����� [Z�TuI��G@5�?�e��j���`��9ts��v�(c�A�� 2������r�f�9ҁ���'Q[$+�<�ptܟ� c���gM��^yk�*�϶,�|6F���Fd���������6ǖ�Ѩ���-�.v`(f��7M�y��'�Æ9��D1UGg�UO^�|v��"��n$������͌|,;�l���ve�hc5�c��1��@-D�g>�:���'��Hu8�a�E�X��=V �>�h��]�s��}g�s��� ++ ++��!7�cc�ˏ�wh��`#��jj]�1`�� �Ӭ0�]���$Yy�LC%=h���Kٵ_#������s59[Q�(>��ޑbs�o����0��O�,������V?`��{�W���(��ق�c�Y�85$�0���� ++V�T�J �tTk�V;u�¤���B>��&AGh°Vnjq�����]��!\���]G��*Tp\��]jL�Bs1JsP�K�����jX�a��T�r �I�8o�],8&����q�i� D�ڭu �ǭ�s�{k��_��]c9��K�G���ޒE]̟��ò�r��ɯ0 {.ӃA�g�ĄGs��� Ex��Fȟ������ͣ��C�v�'*���I�Ŗ8��,M6�2�`Uf��50Oڞ���57Q51�U~�����H���E@�|�>Z6Cs4�9����?.���x.>�<�H�0dP��YR�'T]�AB��(�T��� `P!��C�s|{�=Ǩ��>��} w�gV?q�����\��в' ++�Ț4O�I#Or��-�#b�l���������=�B?�2�0�db�Io�D�����x��F��ɏ�<-��ᨡ�ShxĽ���D�kb&2�fv����;� ++E�%al�U��Ѽ��!�%��_�5��w�;l�d>�[[�!�8���؉�� @��6�;������f���HYN �<�"�Hn�ٻ�5�4=,Ȕ�6�Rj��=�Z��?9�[ö��n:e���>d���9w)���3��V�=ѩ �&Kdnt��9�F#����)}�%�XjL`Ξ�,���bբH���D���'V�Ӈ�V�NԖ�q��7�b6m�t��L-siQ¢��ٮY��������.y��_ �!�@���)�e��TE�#WQI�+_���\"��r��)���.��h���Z4�3]�'\�����#b�PxYe7}�(�,��_ �8N8�>%ڞ=�n�vN�RM6�?Z)I~�6ʕ�@z+6�<��1�Uo�n(��]<61F����6�y�!r��w@:ԫ�!�m�a���=*�e�A���;�S�p�D���S�ĵ'��>�5-�mSp P��T���uu‡����LЖ�4o��%�5��vJ�N����L��t���T�1 �����|�x�� ++[1ʊX�R�1b��ʴ�6���\*�v�q�F��5X��}= ++ ++��9Q0����)o�o���S����H�jB�qwa"[@���� w�O�7�E��^���8떄匩�ZB�1�����H���|6�Y0^��g�@g�I�8�N[=.�|�>��Ւ]b������/V�%�@�C��Q��'p�a4pE�Ysvds�s`�g����P�N����i�� �^'�~�_���=�-gL��e��~�)�-�9��+�;ӓ)�� ++Q֤��hM��q��h�H����?~��_�FV��jOp]z�+G�4�`���@�]|�,���l�iK�M�i�q��B}�/Q�/ ++�h����i��L���V��`���o��A��EOƮ�3/M��/��8���_D�p�T�K�^+���%EN��,��UT�x�aU<ߛ�xUh�v��C'D�C��8$�� �Vy<����t�tu�!�z��4�-Y����B��p<�+@�YCRs �W@�溝�5$%@��/�m��pk ++}bT��ʯ��ch���~=�Z�����W��z� ��7}��m��Ϧ�}@�f�� � ++ɯ�`�;�X#��M��H3q5��gX ��X\�W=���c��?�I2ga�a�I��lQ^C��O�-���DD"ok�$v�����Ym4uYRP9Se$� e��L���"��HFU����, l�}����m �i�u| �g�Fە+ۅ�}<��ۓ#,y�/pc+21/�s첵U�rGm�O\ffCԗ�����e�%���K]S�� ��BGR'+mY���*�Y�,��.���; ++��R]1�Y{&Hy�d�q*�G�Zʒ7l�~�\�˥As�~��H�;��⮊?�kU�کY��L�<Hzi�@8��`A�ƴ�Ec�(9�+���[淙$R��A�;�b�*��Y��,��o'�6G�8͔����Db�?J��Kuj��L�� 9�N����mV��]�4���h�C�U�^O6��N%�r�JL`�5�� (�Qo_�S���MP�~N�yy@�� ++���z����sH�s���ʁ�`=��8�n"�/@ܿ� P�"\�'�>���i�Aޜ�|�Ѹ��8��l_�a�� �+վ.EO������_���F� ��(ܡ_����V�L�@���-X婉��?�1�l�7���� �i�v�39Ѡ�G���� �� ++�?ђ�T?�����| s���J���~�R�� s�g�$o�ݟ��%S�ɞEv��#�]S�ϳ;G�ز��9.������.���Z 2�9���5�Iz��E�?�ݲ���$V^��N�� �g+������8� �f��-�U"MN��i�m��1[?��ꃹr���_�ڠ�^㜎s��-ʈ�����A�3�r�sI}7���+J5���;�:� u�V{C�rj��S>�_]����� ��(L�Y�65,64఼�}��RɌ�X+������_��<,�:(vg+爔Ѥ��'�����yC�L�է�W�+*����'.��I�` 9BԈ��� ++��BҍJ4l�����&�my��Ȳ�7)��G#0���n��ӓp~�"����'�7��u��v �^eu����O:-:e�)���6T�p���!1���9v�}M`j���]��xn�5r,*8��,��/��, T�J}�w���ɸ~M�oHH���w�{�I3�u��EO���?[�����7 ��}QLHNz�ջN�^����`�&.DŽ� \� ��x��y"�:��C��� q5Q�_��t�[�R7 �^yiw���9oͽ�<�.����.aP���)/k{ HI�\��p�{@F�@�a��R��l�нe� � Y����W`�����H���p)����{r�E���A� ��gҨ.����&A����!����1T�q�,�&rF2����K����� �c���M0�D>֡C����S�^�o3����8}c��g�}��Aa��x*2�X�qg�Dn*!ֽQ�����~T�o-6�+�^pm�y�����?U�N�����B//f�QK6�'�*�:�$�g�_�]A�xVw<��{������c�I�Ǻҋ>>N�F�3��.��5�8i ����x�I ++M諉��HD]���Ϲ��R�\�C�8oQ��C����� ���r��:�bkL�w�y���%\�3�����&�ܝ6��iH� �����]Mbt`�>m�͡KY&n�\�5�9��L @y�O�L��h� !=Ǵ}�����0�;F��>j�?���0@hʍ�B���:���0�MB�S�kSY*� �2ݘƯHR:�9D� 3J��+X��h����zĺ��ğ%��}�(�0��DW�QGd�DJ0E� ����N0�pѭO���a��c�5D[���{-hw����'�U�Ε�;�R�^��)�n��x�'Ke�������?J��\��_�B�%`���oNt�+�X��B�Umv��� ++$���2�ZM���)�Аv�*�{!�bbD;�%(��Mc�F�~'`��x���&\y��R�:���&��E���S!ta}��EKꔢ��)�7�&<����(������K��k�G˜;m�noJ� ++���0�e�߂b zt�{N,�vS��]�%��PZ'�pH�� ++�Be�K2�2�t���,Nwe3��us��}�,9L��7I���xM��6��?�&Uʀ�J��&�g1�)v!���|�Ty�!0���S�=��v bg>�oO(�� ��I�k�O���xW�~��}r�({`H����2���2漈.p˜�I7uQl-�5��Kpj�@M�D��~��{���f~�fM0?Ȣ�����M ++�&����O$�vb��УEe�lSO�;C�Y���֬}0j�ŀ�;�!.��&"%r #�Q�J���%��m ++��۲�<�B�@AKR�Z����ދ����n�]G�St�|٥#Q����v�W\R��v�d�X������{�D ���Y?�6$���: ++����[��>��n�{�g��ȴ\UdP.>sk���ڢD"8�6&$���,G�Hפ�EU;UL˯l�Z�@�䲱��dW~��UN<{>g:�nI�EZk`H�� Z��!oLW+11�J��8�� qT�r���@~' ���1Î0�#�{Ø m�`5R�ؖ[�89��گ&Lu��q��#�� ���#T�Q>8���^D���ZWg�&�,Q�P���En��h$!�/�B��ɗ٘�YA����tSE-}�K�x��U�q�g��3ĹD279'���$A��}NH��N�\�lk�c�-B�&@lQH���������)��b��c�v�}R��yV5��c����Qz�z_�����pjr�M�L:B}"<��Г�����NΎv�s����h�3i��l��͖v�V���Wu�4l�uwrɘ J|�K�>o�]U������@�؇T��֦�Ƌ��7I�0�O�c.4c����D&?��g4�4 �@Ǖ}�ޡ6;3��Zd�U)2�cxCR�$%������J��jٝ������TB`�|&r��^�r9��6�Z?�m� �IL ����o�4`��l���։y�*��^���|�q���\���K&�2�������t��L4���Z|������Q� ++gC)�U�Fw�7��$����EJ� v��?u;<�f����7%�N�|��&���"!��Ԅ�:��x�z����gS�h/+Ñ�~�� ++�"�Z�ޗF����&�ߏG��{��a��u��t�QA�%������r7�N/�~���MXo-D9p�\���7�\��M���ϱ��/_�N <�9j��[|�����I������=�D��c�|�#ސ�N{�P:d�(�Z���-r��D���A�y�~�;&N<����c�I�,!��<�}3s�I�Џl���Q�L�$����'�u3=�N�1��}���13���I]��O�6��Q�}ѷ*�/?+DVyah�U9��{q 2���o��([l҉1�%t��d��r~e����N�O�(��XI���@��hᄒ��%�������]��OG+�8R$ ++���+���<�R�:�M^��Uq��!�!��9��'j�6�DM����Ç�.Y�����ۙ� ++&����[��H(8E]>_dU!����� Q��cw6����w�?_�m?�[���U��z�*x���K'.��X�c��.������u�b��<�9 �x�{�`�2]3z�'���p�R���dܺ�!tS2�+��x�_�f;ޡ�̳�m(�~�x߾_!߱�JB��t�Km�Ih���%�ɔ�����9(�oz�-<�����O��3�um�����I_{�����פ�Z��q�$����?�J!#g�t= λ+�����f�$x�~bA��,�螱�Zt�'bD��`��h q��;�� �G!�ӆJ����؝2-$��H���<%��u,��[5���]���ùnJ*��t��/bsX��(�ޠ��:�I��`��;�㽇���5Z��*�V�W�R8��,.BK���N+\��Z?{��$�_��(VE��T�]B�?��5����|y&�M5e��h�N�n����#3�'�&�yF��6rB�M���U�<����x����s^KOV-�S(g f@Y-Ï��� ;��x�̍?�ǣF�j���[�,��u�'�#����9��Z�z���S}TdaI�� ++�Ā��<K�����kw�;n�[�j^���2�yM��%kH���Ǜ�]���BUJ�[75]���e�;2�d�D71O����g-���ӠC�Cz��Q*j3Q��ݑPA�)�=r�j'�0���S����~�# ++������tВ���0�ZTM�i��ؤc�\�7��4���03�ᆖ9�z�}�2C���h� ++��"]�o�sؗ~5L�}��]�q��R��Y7��U�.��$���g� 5Fc�"%����2C���R{H3��@q���%�%o˦�H46�ex ��X�v�j��E���I������of����e���A�����˻�#a�cb%@���R)IW��]�T~CP� ++/\�tX㥉xz����:��\�|��#�0�=���ǿN�CZ|�\�A���͏5RM߆q)p'|�W��)06�9﹞��)�Ae����ˌ�a�|���7��ԉ{��Ǵ^B%]��t�>����P�o|̞q��t���~����d�H'-P*�(�����>���aC ����� �.��c���}���̧T��X��W��rHJ^0�[���8E��Q������*<Ǟ;*o��1����\0K$���T��������� =h)ے�0�F�U��||$Vge,SC�+������!$�y������$�M��!�-����v^,c>B�p���K�a�{0Pr�v�J�F� ���{�ݑ�D�2^, � j��L:�������l~bo�K,���oT\F�M� !�)��0=��oy�W8�a0a 0��QKdd�����N�~,n+�Mzy/�g�g��4{�p�U��9y|�aDoBA̫X�n�����O*>l�K�gwV.2bT%A��Q�o^Uj�T���ǧ���+ ����u ++~�Z��Z�K�X<B�i������T��Jt��tf�T�`��W:���m�Ȑ�0;�˃���&���fjY�֦RèB| �E�5�E܅o�=�;�g����!Qo)0�]�Q�f٠)���o�q�$N��0du�ӕ��9�D&�қ�3���C�lB�p���p��\F0)��;Ԇ�!7\����왹E����ҲU��gK.�ͦ��N�3$�7�yǤ<���OB��f����H�L���F�5l�-� 2?������f�gf��W��B۶$���:�,:f��x�Ə�~�R�S�j�S�β@I�5�H�w���;�#9@�,a�P`��ƨl:EZ6Oʩr��!�����У��6�^�u�Kc��h8�~��6h�S���r�m�J��m�TFB������}�S���H��"0�A:��½W'�ѧ��p��-s�qXo�%�b�tbЛ�(�9s�����k� ++�r���\x�َ�`6���öZ�q$8��� �m����!o� `-��'��bc��Z0" ++�6V�e^&@��Wm�G��k�F�h�i��p�9�Xz"��6��DI ��9-Qhɺ�<��G �W�Pޏ�1/ Y?��_��ێ�ԗ� ��qq��R;;~�����&�l�W� �XFu��������B"�1�)�p�?�"1��g͗����bŐ��y�����VCH�}QD�rJH�PzQ軑�T���cy4��qM�mo��8xX�r�]堑�ʐ�$җı��W��$���Q��ǰ��L�c�|o$`^�BHgr�P9��`"ڣ��WVZ�/�|�DZ4Fl֯g��"���x0`�c,< q���a�-P�� ++��B�H�� s>��E�+YS���$A4g�s�x�|�q؞��AdvΟ��xS�D&�4'8'�1�u&����]��T�`���d!1V l=r��/$?E�<P�a;VlJ���m�@Pv��Q$�Q)��8m�u9�J�L��Frο��|�;)��g}�}K7u8�Q���6u� ZF&s?��@�0�~;�Rߑy1�w�!���ƙ6[/��&*�G����M��+g��*O���*;>�#B1��>��j�}��6O�D����pS~�A�8���Y����d_B�v$;�a��J�$�� ++L�Y51��d=�h�ʝ��e/�4��#���Ò�i�RV>A#x��ĐĖc9� ��pN��T�Ÿ�f�I5zȅ�$}Qu�&��o\�Enw6�����7;���5��a�������0t(�J2�:/_�ZN �=��]�`IY~�����6�A���I��Jߔi�|S8}x�J��%N��P�����8��)I ++���[��],��B�f/�UnoKwq'��ᩴt�6mu����#$��>��!JU�F��UD%#�C���J��o�_��.��U F"�t�"��cĀ_͞U\ZCC���u ++��}��D#$JcN ��<�J���H`��-�C���1>dO�7���̟`k�KC$N�%w��\/I��˃����+�!O^��'}�NJ�v�I�V��2"������U�$�Ʋ2U�^ÓV�*��V��Qߓ�8/����j�3n��L^�r��Ũ���3^�ҫ�j�Qh���q&�݆���^�?:����|p^��qUһZ��@��W�ۀ4��hi�t��k��n ���y��}f�5C9u�ξ��0�"�����3��քr��띸��%�*s�+�j�h�oolm\�o�V�' ��?|�Ho�ط<��$�F�ř oo 2�i7֛�e4��,Nw��g�9 c� ++'͕���G濋7֮�a�C��O|e�@��:y��{M���ҁ�;�����M� �`8�n�H@���^>��D� �9V+R�'��CI@V}��-d� ++S�k�u_��$�����}���� W#N����Du��Ƨ�\� �����K�i�N�$^;F[u���ݥ�&$w�!�O�d��S�͒{�����D}5o'����m�EH� B�g�O5f��'�y��j���7������}Tٵ�%��4��KVNgҔ���LIDܱ3��B�"��n�w! D�d���e�,�E"�7yZ���3��=��c�n�)���B'/?H�x�e��̝�����SD'��'���l�Hua�p���NY�IӶ���+��%�fz�eT��� |1a�nE�0�8����3�P��:i�:���US#sC��4撢��W�#E@}���{����g\Q�~��ҕf�P�С�0�=Ġ�:�?���T�����y|p� ++c��5d�S�X.S�zU��^��TIշ��=�QC-k>Q�Ct�8<��l�R�<�GB�2�ę>�����)�C�����=3 �a�9��l/*��7�/�}x-����v�q��=�6�@~q��KB�C��ӹo�8��:�Y� ^��"�&>�v�B�� l|̌�8F�Sx �`�Bb�S��%��\k���+��$�$�\(�u�.�ש��>«cyH�Эu*��ڥ[0�L��:��6��sDVA_-����(�ͨ1m�iE��ǁ�|��~�S�m[t�z�k����O�9�/������]i�@�E�,D�qp��99�htȞ/��|3�����A���Ѻê�aSs )�Ž�A������+AƗE�3Z�:�H�� �]H�!�Ч#8U{H�:V1��\��O1��d0f��1[_�Km�� +2��'���хJ�b��?|gY��F�= d�Q�cp���! =/�cәO�-Z�C١��&hen���b5yz��e~��,#��Β�`���Df��a��Ck�@fD$��W��j� f�d��*M�Zw�~|O��a������[��Z�q��Q�46�X��a�p<̠��Q�!��]�x��B�0Hu?��G�~�OaF�6H��a��r�,&��<s��ڐ�\��cT����#�Y�0����و�At��p$�m# +++Q1�EG�t�R �U] �̖�3ȉ����&��:zd9hI!��=p�10�z"�r����;}h�&؞K�?N��Xx�}�B�9�·sn`Ҷ�{A5-vL,x�Sj��E�v ��>�]�(��:\HCWy�Eg�@ҲY�㪅�8=T�mT��-L�[~^�q���t�[���pښ�<��R>�Bv�M�m6���s��,�}06L6&�N n��}�C� �C}]���!���q�?�&*�6�Ʌ F��&�g��l|��O�A%s?=�?CZ�ڶ��zĝB��3H���L��~���jD��f���i��c����s�+�����Qy��v���^v"`�b���(�?և@W렄�����X�"<GL avc��j��)}�ޏ�pu�EKDK�����y����-����X�zJ�tryb�f���U�&U�77�كP�%�u�`���}������ � Y����@�E�3}m�G>.��0��u��� �� Dnx>�m�$B�U����H�ˋ�!9��6l������̶�}� &�c]�L��7s�5�=+�(de�� u{��w*��a���X��JX�+��>�4��1���C��9�4O�,�%��h8�Y�\ ++��0��������c��쇙H�y ��8%���J$����_BB띂Ւa��(�D��P��#v�2�&nk7�W)un�XP}�M��5��]��$���~��A3a����|����� l����n� x���O=R���ѯ�XW�f�"�|L�Ry+�� �DžT����� ++�� ++�[�����1����f��^���=#�01�!��+��.��X��I�KI����`��v8Z5Y�<��҆�/�����_�U�#7��Mq]��M5��_�*d�!���*���š�=ZH��H��� Cޥ�6k<rn�C��� ��17(sO���eN��T�Z��5Ψ㬇��q�~`l&����q��8�R�!SyH� ��o���V��ꓥA~(\$tZ|�}�2���~3�n �\����@�c�<|B� ++&���}����b1���c�~�@�=x�N�o>��0`�7W~<�8�V�� �mf�@��_�hs�L�X���X�ɗ>��hT6�z<�!LQ�p$�����_{���U�?�/���q2N[����lz�g�@lI���>b�2�f!�pʏ�t{��?`?V�z�F�y�.ic�\*�v��,]����8?�r2�L��Bx�Mx�q�uJ��o.3uq�v1"Z�Z� .HKOozCh�+ �u���ت�\�V˭�ܐW1��tiV ++옧20��w�4�&�G�筁���Kڛ��^y���u���T���< ;2�Ȏ��C�\��� ��q7�~L��z&��Ei+��ӉR���C�A&Bd:=bV]S9�{x?[�?yi$��9��C�� 8����#.�I ���E���R�T�C��[2���s8�zN ++�w�78�w$�@6�8�����t�tDN�+3h�=�O�c�x܇�55��(!�+̑��'��r���poݎ���.�����鬏G�f ++���i�p~nf��ʒ�I�:�:y�2a��u�+A�+]5�>Zzg�Wi���� ++�`�������u<p�M����1ж���A��2��,�G?Ԯhg�Tl'?rv�j�cĊ��������5�g�¡R�?4��/^��RLz�۶;[��oM��즜a�8��-���������p��������Ƙ��NS��BMs�2g��\3ū���p��ݝ��I��)�,$��]�����m̩��fZ>�W2�=ѡΦ�A�Db��Z�=:��]����pg/�w��x��YX]Q��0�L�#�GT�0��.<2*p�ә��Á�E��0��9-8x�e� �۴���t�ò��+ߧ��J\��o�k���IO[m�LYK�~���M@� ++���3�� ++H5j��2������A�I/{\��R*�q��\f��1Q��E��j�����%-]�HCq$f DGn ��lV]�5D6�]Y N"���y'S��;�-p%>�<����ҙ�K�T��tm¤�un)ȳ�g1�Z[���̧���B��&sĄ�͚��Q8`~�C�f����29�^爕�~���K�՞�i�$�������t�J����tvR�sJ�`�<�u�e�0��{f�M���Ua�g�y�� 3��}gI�I� t�c���}^P�.�9��9� �33��L)��በQ�f������z��l ++e��'�ٹ���b�5L��g~�A�Po >kq�22(d�Q1.�̊���BY�\�;�����lJ�<AQ�\�ٰ�0��.���y��́aRQUY��|��� ?�%�'�*K�)�"E/������OVI���?Y�]�,ͲFɏD�$P�(o'Dy2Y�"&f-��1�`�Z߹����9A���<ٹИo3x��@ni�/ ��&���儢H�`��o�r��Ӿ� ++ ++@.���ɉ;DΫ"U�G Ge2��l��9��d�X�L�4�`�1����Bo��p��[����U���h�QE3q�?��/�u�A�>����a�g��4���je��OsQ�D�`�fF�4�7ka�*{��nVi09�߿��t�'8�HDI���H�ϯ�ύ�zBY�(������ʆ�̎%qo��u�� ��Du������_���i�@�3�Y�T�w�Ӹqs�3���6��q��_���eYOT���IQ~�c?ܟ�ma,ؾ�h���??�(�{�d��;��9�p2�V�� ++�Z��B_��Vޡ��o�S0�S��O��D�mk��D��y�����]��/m���[��d��;ЊG��+2���6ʎ%�oZ���� T�H��t����vC>���{8�W�i:��=��ǚ���_Ǹ�OSvnj�]_���9�2b�(���>��+�(Yѽ}D`<E=��!�y��'�V�� ++�zWi̞��O�� �sjVP���'dZ N���".a�� �du��!6=g� �bJ ++Z53��r_Tn������\�I<��Y���E�(�(�^t wK� �hEwt�g��JOFA��*.{� j�Ҿrf�;U#����@cg r��=����]B��ʅ<6' s[�5��^�l�sT�#W>�t@���;����N�i���OUKd�$|�������G��ƹw[�;�BU͢����Et�j�:�����+�I��� G6�䨤�w����� �p���)Q,�s���Q�y}O��~�\����V��]�G����-��n����<��c�#4��r��$L��;���w��G��6WZ�aݕ8RY��2q�Ls#F�Q�|�N`�b�_�M�nc ++�� ++Fl_�2?���(��ZJ<��H!�N-�M�w��rC �O�y�D�!*P02���xPxŬ3�,��;z����o��WA?��S�*~ʑ�.�E�;�O��XY����8�L'Y�>�oܭ�tZ�3Cc�J��1}�e��"�3�5��Q��iI<��0��)�9�����=�`��)� ++{��tf�D�Ǚ���vY�� _�P�6�&+|��C=9NT�J@gE�]1ߧ������ �p���M����i����&l Ͷ �̃�ޚ̇|��xg_��C��fZwuzNcx�@�;��,���w�t���т�ػ*cV�zWhL� q���ͻ ��^�D=����N�⚩ɑ(����֙@���圙�Viwqk$W�]ƴ�4yɎ����}�f���$��1���h2N��+e�.��)��v�LDd빯}��8���rol�GO$2���AF�E���`⋊��7}�A^�2T�P�[�W��Y�\��N�ǽ� f}:�Zd~SkRy. ++}h�����2�����^ ++�[G�&0u���������B}�����}����cdk���-"��3��m��DD�����LH��z�a��� ++���Qw �ٹk�����)߯wɨ�-Ŀ�K�,�#rW�]o��})�����,�TB>�@L�w?�4�S0�c��8R�3&���7Z,�|\ck��=_�t�7'U8K�U4؈o��l�y��?mo�@xR(�"q��p��-�y��^h�p2 �ѵ��[>����Ɵ���-�7M�W���Z�6�?�g]� �]K�M��`�q(��:Z����y�����sd� �|�=G�K$Jc�������}�.�G�X<���K0���S�W�Z��{��U'�$���ݳ��&t����X���5������� �/�J��t��z5�!�d�=뛜�_��ǕNȕj%������*�餷�0 ++����#V�nQU d�)�H(\ �;gy�K�"q8u�&{���o�6|�:�}s-��'r�B�F����(��x�����O�iwp��}��9�F�W�B}*��O{�'� ++5d��|��`z����HA(A�l�����:�t�2 52�����'�B6.�����O�̈́��^*�MS�{( ,x��A��L ++�?q i�D.���4�O�����/Ik_ߛ+��M����չGu�) ++� ++QGYd� 2�s���33����D����^�J<�w� �|��� #5j���H�6��Y�!�&����q^^���;�[�-����[�i���[�JN=�[K� ��$SW��6/��� ++څ%c��溒�^E{��o�ZY@J�.�q����$��G�G�z;�_��.�Rl�;�c�5�P8|I��8�d���s3���"@�������fN��6���>��������� ϡޥ�A��8rl߱�m��s&i�O�{��_�E ����U/�$�=$���͖x�{��e�ݞ�:?�<k�$����h������/A�T��q�J/Ud��j�SKٯ���R{*�t����覍(�U��!�ĩY��rc��l�!4���/~�5�z��������e�(Y��S@z�R�@Щh�I��G*I;��e�JQ �1k�ze�M���� iKmN��I��P_b�ʸԎV4��N~�|��["�@��H4|��(���@fګ�k�$��/�>?�M)���m�;&ζ�ٶ�h����B�N̂�s�������2��^,�K������A�~�R�3O)���)��Xu�Mr�v��%7�������"@^�:Ф�8s(g�C(J��X&�P��pU}��j�������;}��͚$C&4V�!�����Z��JtYW{�¥����S��w�Ju��ԭ_}�aM��{&'b�I!��:����!���Wx�=W��s�G��J¡TP�v�~���s�$�;/���rbl@��<���j�������B[!����s�5��I�{fJ뙲`��髮N����"~�S��n�}�%��7�P�4ȘT�C�2N�Zߝ$��b�7A�D�H���s��dE��]n�}�4\��縑�rV�9����� ~-�'�������h�#�ȧ�n;�0�b�@�UO{��jv���z�͙���ߚ�^z|_�(���>�4�;!a��C�^Y�#�q8`�8 ++ig����6B��nU҂�ޭrF���� ++���<:XR37�������%����CC�((�E?z�v7<��hɊZS������������O�N� ������5��jȃ�T-�*Wbanj�8;)<�8p�<�AOfOKPk��4��V`�|| ++t�a��&�ú{*��A^h��t�$H���Y��FΐC��^���Я�Da ++�����Ϟ�O���1�z_x�_,�v��[2��kY%E@^�O��(( ++tؿ4#tؓ�#��)q�S�=�,o�Xn�q�d#(����6}��E��?�Me��\��{�~� �w�K�*�B�/�c!.�i[{n�ߏ�݂���j�G ��9�6����+�R#�k^z�ެF'�E����"]����8]G(����SU�wϣ�xYYһI�z��\V#�1�<��U�~h�����OFʒ~�la�~)j�ß���!���㔈F�1��DCc�:�*�m�9}1����Aqd5���L�d8JR�7{8�1 m�G���d�]��� �PI*j#��"w#1�^��d^�����]&���%��Q�6-ۑ:��aW�2ތhD���T����;.�A˟�-��r�����p�0�!������{l�Iꕇ=~��,ý3��p}?�p-9V�i��g�*W��sd�$�'R_����qM��B�?WF�p��sxr��osO}~P�'�EX��]�b ++�k�ayֱ�k��`4x�r���&�P:���M;���o}N��+v���4���3�w:GW�6��N+�2v:w��^�>���w���y�� ��?�`��'R��'�+���W�8~��:'d������JwG��j���4̭�P��%U��7�����`v��� gk��# ++�O�9sk�Mbi�T��TfM���{�'9O�6��^I=s�j�Zy��.��(]���D��!� �8�������"=���qH����"B��B=�����W���7}hC�`�a���PV���YfX�����U���%K���:dU�@Ik�^ 2��z*e��cަR���k}R���AO.Z���c@�)G��8iA��i�G7Õ��*O:ۜ��ը��=�H��2z����5 ++��JJ� NE��"ͻ��<���� =�� %��3�?����?�rV�im�ps�J+����5iV��s�+ ���l�ҥ*rَ�,����{%:��Y��.�0�����٫�p�2��8�@]��� ++9��}�&�B�'�� M��u��5���A��? �h�%��'� �1�K0����/���\�˞�Whyl��@�2@~����\�(���\WϊQF�#g� �=sWc�)* :N�ii«ʠ �,`N���:Ǫ���B�R�I� ae(�;#���Q�G'��*I"�Ϩ��Vv���J�:��{��j�(�Y#������Wݑ�O��Cv0�Ov�CAjC���&������wL����Q]=�ur?:I>W�-����b�[�<�o��|���H,���8 ++ڞ(���t�ʐ�o�җ��������m#��� P��C�é�s���Q8�}��N� %:���=d0و#0�{������l���"߃~3R��v�Ѷ����#��8���K� ߣ��=�����Y2I�x���sd2������A�O�t���Gv*��`5[��?T�V��r��ޕ�B,Մ����5l�����=�� ++j2KehR]���8 p�{�0�p�����F E�rW`��a��t�Y\tJ�YML�;��c��n�W��O�G�#:.�=��;�T����-{������`�����?Y����Rl�vGw��'��}���{*:7�]��� �}�b�y����o���W�M�پ�h�1���!%VN���Ä�e��Vʓ�`���~̼��(�H�a�]�Z����= �st�J�՝����X�W4���'���6=���.��D��8�R�~�83r�O~ �,�c�)SLd^G�Q ++ę���Zmـ�Ɣh�7�M~�M{�R�<P�����6.�_�b�6g?�#FW<����itΩ�,9�� ��QRE���BN��HF�y#Lf7��d�=���r�f��@@�#��c�~��k��N��(L�P6�c!Z>õ�!�<��DS����z^"w$��=��&��n~ߨ�f��vs����������*�8���c���9�ڊ}0Mו]e��>"[n�9u?{x���S+#�: ��.����'� >��0 #�J� <�j�?W�Ό!�2X�m�� E�V7���qG���t�.4Yz�M9�UE�y�}��Q(o��= M��<�X/���Zu{t�@�Ew�Ag ++�`/?��g ++�E >S�[ )��R+��F�)oH`��s� ��Yl0ȃ������O�c,-�8��@���� q�C��Wxv��w���/"P�k8�z�j���-I�|��u�@}A�Ǩ�(�ٺ!wT�$ tG� Re� ++}��lg7`�������9Ĵ���&V)>�����z�7���x�Y��!�"��4�� !�w��N�,�@���gt��Z���yM�+����d����8����c�� �=�|�'� Pj���-.� �e ?��=Y���3��qz�_X�+�sV�1���*7�b�� ++�B��ݱމ�����lyq�w<m�����&=4��8��fz�����,S�#jk�u�P�B�f �1����&�I�q`�0���Oɾ"4Y�n4G�6a��U;ÏUI��/��<��ʩJ ++%��-]}E}O;m^��Y�e۲詾�4�����f��]�ks��&��(�������H$ 8��$����\,F!��ġݶ��q�2Q�)�o��g��]��m�7��b9��l%YDNjJZ'��Oh�vv�wX��o5\:�j{|j��u�=T�)7����fn�ܮ��G�@���c"���"���7�9D��d熭�5������"�y���^��#�$��(,@0��)�4�B:b �m~P�������>F���`2��c+�5�*��X���OM�D���.y�;���m'�SZ ++ЭR}�M��:�3������o�+4�bE)��8����3kD3��� N�C �����(��\�n�=[�&Z�� �:�~� ��Uʓ�v~�m�u�`��n�N{,y���q����߉�)��(뙆.bWVP�T�D��Q=Q�>K,���<��ͫ�\{Ьa�J��eT�� �zܑb��ze��~ėѮ� �������}-�c��Dgq��^'�a�)2N��h�"�I�5 �ӳ@�\D����"1{�glL�+�����GMȒ�]�R���Ȓ�?��;>��%[c�zA�l��t%����@���Z�ߙ��#����6�����G2k�`�Y�K ���?��rc��6��`t1�tz ������V.9� :NJN�q;&��pk�i�S�!��Ɯ" ++�ԀsWCz�94���|һ�w I8e���U��g`$�� +��I�H�� ;�Ye2�D ���va`d��6l�T6��x����(Z�V,0���|���<�/��!��:�h#��R���NkE8�C� ++�`�e��W@��[�v�����__�t )�0�2�{� ct���gn�Ȧ��(=��001:%��(�,Z��.������(��^���"i�ؖ�+K+ox�|L�a&�9\z�Zl��-�IMt��!ǀT����w�7��l�<MP� ++�p)=͙_ ++��P q�������:xܫ�~s�H1xPl�I�h���j� ++4#b����B�De��r�3��}���pڦ��( ��f�.��,����XE���o��/A��v���XqOzl��8�+�/���JqYU�c���ۻn;������ZF�!�����cT�|��6�����# ++x�m�1��{����S!��MEe��?֛�r��{��K��_��o`�cK��sIP�>�. ++�*pY�OB�5��%��$h�Oq���J�Va��m�b��KQ���W�U���w��;�B6-- �an�T�^�`�a�0�����Q,�2���{͐u�ҋV.ʋoȺEZk i�����{R�FuсzHJ�o�ͪ�1#:ӡ��Nx��gfyo�\���Q�>=�,$Wj��F�N��z��(��L̹!��:8�'�tdPw��CK4y����~���7->儽#��E Y��"����Y�]���9T�$A�(\��Q9Б�(u��S��Y_�<�B�06�u=�(�y���WJ����<��Ǐ5$����R��_���ђK+ �_[<���<�pP?�8���P���(�;n.L$U��ү����=�W,�������+ �J$��*�b�H/:���LF���/������v����[y�t�{���`K�����w�f��Հt��t��8���?�\Ä��J��qs� �#�2��y���䶇x1����p�|�u0� o�2�;ߚ�a��~2���<ul/�W�|��;� ����Dz4s�3��h&��?�ջ�G^j�]ƈ#C{&Q��]��`�@��m�D{��m�$� _���G�[�?m��`k|o����2��r���MQ���a�-�_<���k�@���-�\��S�@y �2�o�^�!�/��>�xO%t�l��^"Uh�!S���@�6��[!����o/K�D�vl@+;�+okB$qt��������1:(�#�u�]�p눦�1 ++���5r� ��z�[S�U����f?h�h�+���T��Ohp���H4�aRbÈ5�4�T��mBQ�n\?�fn��M����^nC������������r�H��QF����R�xۢ%:d���y���l~�^�1ݩ<�Eb_@N���f�x�_�M�F�8l"��ݙ��g�U��Y�A>H Y����H��`0��%���MK���ѕ>�~�>6�~��r#��%>U����^��j!?�J�Bs�Kh e�Ѽ]�D��@Q��/�T�������+A)���B o]�k$�qJ:i����B�����oׇM+��;=�,$1{��Kk���k����YeŹ��(�P��P���x��P}/觤j'bxt:K�x�Z��[����jDSo�U��jb��� ++�*4!��l6K4l��p(��s�� R�,�g��پ��>�U���Qo�E���eT�ٓ�Δ�,�Rڊj�־�f[�2�d0 ���}���ϵ���:��ي�.s^�[�d�2����oV8�7x�;�F��S�bP�ӟ���uYp'���U�QǷ���g⇱S)>Z~�@䢄�U� Ǯ-��M����^ ++_�1��yÑq�o6��#��kݒ�A��]Ɠ��zajey"��z�� �}���ۋ���nK�� $a8L�O�zD6�����8�I���=bnx�D��&�Bp��ࣔB�W�f�J��Qp�,�H��?P�9����A�Ez*~�����Z<3��#���d͒醐�[��_��W]�%����$,������WQ��}f��:bv+=�!���(������5TC>�ɿDP LhW��`$D>�'0"��>�L�e"6���(_������|�P�*.z�U��K���$����vj��.(�A���糦Bj�{(��.��1��`���ɰ�C����b�q,Q�' ++9ķKL����H��0ރ�2�*=y��6?r�ӄ�֧��k��fuw�?�IP�|cxG�M&�.j��,���x�u�4�e��h�#]���~�L� ���t(���n���C�eH&��8����oj��E�PVУn�#�G�L�0��� �0�j���,�=S-*,w:h���Z�����x��>*�I��F���Y�A� o[0�1a�w��A�(����r�������� װ�%Џ�[��80��C�I8�lϹ��@���B�ۇ�>��9����2�2Zl^�a��� ��D�e�o�oh��jw��whbI��)���� ����(V�,U��1�Y,�|Z#*��D�4 &�)V�Y�ҏ����Q8R�z�KhP�l�G���C��F��}ꎱ���)�� �Pv�������M������N������lg�}�)�uͲ}�.m�ī"J����X�y�!:$4�QLs�C7&g06����6��7�n�m�ė�8}�����9��jx��J��K-/���7��.�ǘF���+ff-�|��ŒNV ++����db�In��h��@�Д1�Y����( ���MN\.�E7���}А�Ì:�Z)l{�G�2���A����/Uni��=e��_�g"�)��������c��2_#ϭ�>���J�����k��^���,yz�������m�A�٘��S�f���3�R7��5�4ݬO�O��Hb�[��q8|4͑��-��:;���"��V���hbG��V�L�^��;#�x�3��.��Y���XK������aH�����iZ�7#�mZ)��Q���N��%� c����<�T�T�.7PE��G��67@��a�M����7��숡G��c�p�@�B,���1��z:�a�rQ�Q�`#W(/%)�{p��� T ���Q�S�� ++�A!�<�b�I~����e��@'l.3 ++���s��o��J�;BFA��`E��.�7��F�Z���D1���<�%�" 'aNǓ�R�&e&N���#U��h��҆���&� f�i��p�ICxP�N"|��g}���f��#������&z�EGKqm=�`ŵ� U:��~�h"�%4+w� ++���t� ++�Ǟ:�ۦV �Ӟ�>r��u��[�L���{AI�����C>jNkb�m�G7e��4�Gi3*���D$)k�9��C+�u|c��%��3:����pG��(��0���xg��^ ++QRe"U#��)��%f� 8��=�`�[z����4G|6�e(� -=s���jrt+E����沑Ԫ��hM���=?��h���K:2�rQ� n��h�"��;�4]��)Z�`_��>òV[�{��Ϧ������;�!k ++��P�3��a�$�%�`m`���0f�B��}��X�q����� 4>a*��-H�r;O|}�O��9,b��?�U�{�z��ZWL��x�+��ҡ�X����4�=���Ȥ՛����(��O5�\�K����5}a�$zI�/���0_�$��^�\Ʃ@8ǀE� ++b�o��R#P�z�c��X7N�.�j �6 0�M�^u�q]g�s�ӑ(.ɍdj�%�� ++]��B������p�J�OX�]�$Gd�dd�93g�������sKg'�&�.z#{͏Sl����2\,��ځ�>�4����쩪�i���O�h���:���|t�!�14��eW[���LI�C'���-�R�(5���M�y���'���%��t���2-a���<ח�s�;��O��Vyw���X��C�t~��Ӟr4��v}���b�;�RX�8=:��҉��<qRG��1'&�s���y���ÒC7@n&f�Gnj#�wn�U�hC�A����F� �(��G�&_W��_�(1=��]�����x��L;��j�D@�q�ʹ��ٴ�1c���|]R"9[�>�@�2Je�2�����; �^+S.Ԃc ++ʽc��ڠ`&�qsZY ++Lq��\�����M?,�$g]� ��E�)]���LA��f�E�gS?�Ys&�]��$p�[Y*��h��)�χ K@�v>�钚O����ő`��W������!���{��h��{�$w����8ڣ2�6J��RJ?kvuL�mp��+W'���y~�(�=/���� ��n>{��Ij�1N��z����!�OD�ȹ�pI\�-?��\�k��HK�g7m�g�]fC^h�搥.���9ϊ�ɯ+�ӱ�MLP�/���G�5����k�tI?Q�lS�&:���|8։����y^��s��C9��N�_ `���z�vێ~��A�#*����a}��6s�E$�M�_2�5���Z#�J�$B/HM���u�傖4��>0�/���d�mm�h�Y}�;"���J� 3���A���y�����?1�����g[,��#�ij�Gc��F�Iհ*�$%Y�UÛY���Z�C��h�*w���y{�i�A��n�Kz�ذ��c�{������kQ��� ��1�۳y�l �HBSdRҮ@`��_��R��K��e=��g���C�����H����|�#���%ѷ��`���83�b��������,���ǃ�h�9U}4���>Mg����3�#�۵�QF��<�q�O��g���9�����~�F��BO�ܹ���F�i��Wr+�_9P��T�����kɟ�����Ua�:�Y��<�G_��z�ՙE�wȝ�t�L���{�@���&B�k��G�;RqDy!����_��N��φ�q ++5���ʀ�F����o�������ݽ�{wC7y��"��."��{ ++-�O:�S�0qc�,���)�9|����'���SA�O����d~Ĉ ��D�ϧP/.M �OPX�U��?fѢX˺�Zĸ���+J{���$��6EdK@�b��F���'����e��j�Li<�§��b��&)�>��x8B�A�UO��g_�'��՚V���A�U�V'�g%��\��y�\�$��V��^cq�s?�3�^�����Ϧ]�S�*��tPH��� !=ΓLMCo#�3�p�0xg5гA����Oi��ޭ�y6��x6��e�/H匤����#��v��U�X=�o�U�gfdx61𧊲ŊS��B}�7�GʥZ�e��_k21�Cs�]:?s����U��?��@CK��ќ����0!H�> ++���u��JE�9FwPp�#�w<'�IN�k��͗E�ǡ�sY���@�Q���g�2§���IO1{���7� ��6����h����;2$0�(y2M ��n��n��s{�)�J�9��� ��h�Z=BA�23����**s��2*���Jn�9��=錹��%ab����t�5/&��(+lH[�3��#��>�ǥ�<צ����Rw���2\��t���q>�H��x����I�!4��k4G@�pL�DKcU2DJ qL �?�r��c!Ot�̙�O$�����y�k�k����<��Fj�8����td*Z T����K;�[\-��� 3cYҩt�� ����eVb�~�9"!I�Kp�i�1vZ��l�$�o��n��59���D��g3G��D>�>����#^׳�A3��xW�w\@Y(T?m������7�͘Qj���N$�Y�m�pU{R��i�l��N�Bْ��1!l�^9K�i��_��ո|�4}��6��q }�c�����7~��r��g)�*f�Ocm���+;ȭ�yfUQ����*�_x�md�a����^s�E+:k�= ++��U{!E�'��1����Lty���^��� ��F�i�{��/ɼ4@�7�d=�띝ܟ2����eҿ�c��ㄿd�%n��R� ++w�t*��P���Y�������g�ws�6Nq�zly~�n��K*�'S1U�j��M�n�t�_N�Y�DYͬ�p���fm�L"���0u��nk�o����̭ �9�B�ٽ�*$&�%�����W�ČW}�����K:��)dK4j�����I����l���A�<���l# ++�Ns����l7�0|��@�3�O�٨B���1�n��_���OSn���*lsL�K0D��f���Ē����>�����v���<�*��[>�g�:h@����k��'�{�G|wN��e˖���"C��Ӿ��&��O�m��w��%������7�oσ�p_�+�Tk�L������.fDN�����T�g%��w{0v��@<�����'���s_���]���{��L�� ��!�8nj�6�����9*0��w,U�@������'�� <���y�ΞSl���߫V�Vć3��h���5ٛ� KT��l�r�8}^<N�UE-l4�xU|`0ުb�;�a���S�r�$��ʞO?�����sh���/����͋�lo��m�e�X�$���S�9��ϖ��:ۏ�{��6o�4��9|tF��)��h�u:��g�h��X�H���]LՒ6��w�o߳��F�������y�-�x_��s����wl���5��:��[TGaW��~��4�QYgk}3�g4�z����AT ++)Bk��c^��|����R�e�=V̶�q4��y��s���r����gn��Q�[�o���г^��2t{aU����ٰ>��d���!�/��OnW�ab'�����P) �<����N��-��Qb �,D�S���$�*��G�h����|"i�3��tUn�]�xL��Y E�fE{e�s雁��+�,EAB��Veq�����^ګ#J_�uS/% U�>X~{�BZ�,��7�}j�R��^���4���n������s�sT"d����D��?����������<���V��ږV��vC7W�"����m��0orKđ~4/U�����_�p �T(L���hQ6������j�eLM��O����맃/��Z˥W]�t����1�<jO���U5-�#��wh�|X��Wj�Ea0Y�@:�\�AQ�\�y�b��k0�᪃�N�0<>���ʺ4�R?Bd6��8�����h������;�с��s����V6ѭ�{���sj�[�Sךy�#�G:E�$V��� .������~^��F����xy/�p�h|���Gh��b4 ����@f�dk��䦿c��}����&I���L �����::#��ٯa�h�,��k{��Y�$Q�����mدl�h_����^��!2�oO�^�'�� fg�y�R�͗5D��v��K�l�7�۳����Dφ�5b�\���pVڧ".�bGQ�X؟N�"�B�>b�ՠ���/��ŗ��%Wf��M`�H]��/Qr' �p�\���!g�1D�����r�L4��k>�< �r���m�����Ay,����{jڡ�,pcyp��-B_�k�����(eq���*�w��g�7��r�U��EO���?d��w��ҠD��d��R�p ��ٔҬU���ci+�K����AC �� �p��6�L�u�ٽ�(JS�P�p�]"x�_�� ++���^}�Q7c�f2ծ�%�������9�B�^ն�)�>��2&<i��%��:d]Y���R�1�SنɄ�#�J)�}���m`@����)�5� [�p�L[������~q���� �A2h�{RQKǾSy�E۫d�fn� ~�{��0��Y܂��S>;;t�Ȅ ++�����:C�c�քBrb���N���$�7`��@�����Q@��S>��哽��f�J"~�̐b��a�� ��<1�"64�����L�%�.$5�5K傟0G�; ++4�b�k@�ϥJN �����������b�B1F�mD��s���A�P?��Z��������k�����"A:��DF���?D�A�9��2���i���m�c�w��ߜ�bَ��A��"m���!�VI�K,6!>���C�z���e�.����G ++���˘��*� �a0�̼�q�w�[ډa~�W���1gr���|��oNda�l?��/�aB��C�p$����n�:b�:|����b�t��g,c\����d�t7���L���I::m� ���Ԑ��$?'*� ++�P(�"�5Q��%�lQ��'[,���>,�[!$E��n���S���/�M��D��@��P�җ�����b|�����$8UR������=XL4_�!��nC���E�#d�?�Q���^�LJ���x�1��ŞB�5[�j�|��y�ˮ��16�� erSN��y]$Z� ���p�l̎"[��?����ln�-�EZJQ#����H��M�e �!:ke�v�� Ncp� �ޖ6/�9���I��T.�D��BԏY2wM�4w�#c�P�S� �G�Ny��[�5�#9�X|��%o�K.=�X�]����J5ƀ����M�KJ(w��E�Mt�z�0{�^rD�hz!T��W{?{�l$�1-���1����ܛ��XN��v�Z��������B��,������:8&��B!�G�W+A�ͺ��F� -���O�Q��d���ʋ�0�2�zzb�� ++���pN%���4�ly�5�o�+e�Dy��L�/]po[���/3�|+ _���6:�6�o�҉�Ra���C/c�xA/k�3=utG1��ob�=낺W�����eaB]��J�Y!O��8�t�mc������avn��4�`�y��21�������x�Y��3��i�@��W_�Ӥ^���c���}��%�����9E��B9s{� ++��as�)ɩ�!�Od�$�W����Q���U��ٸA��%[V���A(xY�����~�g�<�Q�4_B���L�ڝv��n�-4�eʦ�~Dĺ���e��J�qX$~G�g�XLg�k���SA� �@�< ��n�V��n?��詾.��:^��� ������Ձ���(�$ZD�y��د��ï�9�/����v���7�8I���s���N��L�'K؞ݨУCIOń�����~��p��:����0X�������/kR�iBԭ'���8��5��[��<��&��8�kD@*��?\�H�z/#�� �!'���x�0uks�7���},�O�@ڎF"阔�6�㧽`��z�j��Z����OV�����ƶZ9:�L(v�=f 6�����ge�:�Va�J#�E�)-�+��H�����+� ��*�0�˩>�]?�_;\�Uٶ�y������q�U�ܢ-f_�?[�;�"�;�����u#�7lQ�f�������٣��+渣��N�`�>O7�R�y�b�:�c��W������,��;����c����,��T��/���� oJ���Fu�8|u}��b�_Jsfq�����4}���c%��7ky"��qf?i4�@� ���O�-:�S�)iF�v�lFG8���+��P!4� �����.�٬��OEt�-F�2���3¯�DdF��[°�$��ō|��LaF#����ɿ띺I ~=q�nƢ�w�a�+`+�<��[�@�O[��ʳ[�l�S������� Y���<E5�sU�Mr%�_���?�8��� ����rCN�����h����~h�@�ȳ��F�?�ZM{w������}���ό��dRs�ȯ@91>Z漜ܤ-�%H�*��q�ׇ��.��S8x�H_{A���� ���n0+ ��ý�/@i�R�#ިk2��G���7(Ď ;�W���e1�$�HW���P]3�D�5+�{�<�-�t�����P��Y0�WwI�- &T�C�(���O!W���QX��T���s�S>�(w�Ll�� W���Ϛ8��?�Y�Y��`;pI`������H�@��a���������P��Y����]E�F%��"�&!u ��j=�Z�������`����JG��M:T����Wa�:8$�=��&Z�(��og �9;Lv]��x���pn ++D���9���-q�@�;^��iG�m������dGkeIq��x��f����zM�3e� �:%�Y�a�B �P����9��pϯG������`��Ohr���Y� ++�yG@�j�� c����MB ++`$1�?m-�OJ��X�n{�����u�q@/��.A�-�=��A�lx5�ޝa�XTy�Rűz�]�r�T�z��s��,�ҶǪ�0�tv�cn�Y��7?���짎��]�w!�:��O:��r��D����8��J��>N,����[����Z��:iw�2�F���<�1��"�����(\¬����p��Y.�T4���ɅB<Sp���b ++e���F��d���OD_h_Vr��d:�륍�h�W'�'��� l'�i�|`��Dol{E�KEKN���ި4$�5x��2 �%^�{c� �|}�O���G��<��WY�j�wx��C��5 �6���l)'�<�7EX$H�u���V�'��uR����BY]-�h5��U.U�NC�T����.``�<�T������I������(�I��"�9�L���@��RЬQ�u�\��ӫ \��TcM'X^�]XZI�+)f�V�\��.ɣ�uI���K�}���_ӺD����f-��Vy��o*�&�� ++��+�|ߐ�z~���!�C��V�&Px��om�ª������ߔ���z�|A���� � ��A#���u�8%4>"dx��C��E�0��Q���G$����F)��<��V���,�9��i��j�D?48�l�$��� e0o����أ�;.>9�$H��" )��@=�3ކ� ���\��7������9N��X���F{�FC.�J� 鏙ڭW�|��J�<�W��}�O��u���� '�ʃ.ێ�%�!��� -�K�z`)@z4���� ++�* dj�� )��j����W�9�ڗ���Ч-�n 7�֥��4ؓ�u�7j�6��~���X,�� ��Ӊ��H��H5���G�Q_7P����-�ئ�1���?��Ld��|G]4PRA����g�p��mc���Ϡ �XWB,�^�o�9�dA���x������,H_?Av0�ܧm�*�MEG���8!;@L?T�(㻅qܹ�ڿ�,J���!� }=�8=��gG� ++�D�mu�����{<�/m��G�dHǔ?�s�?��pz����fY�(WG���ڹ��b���� ++�Y�ݸ�s ���*���ԍ��r[��cK~�T�u�?gH��k��Dd�� 0��qM�mw��W�eh��P ++��oW4��Ѡ��\)�3��ö��s7p̞����Y̍>��Y>)E��>�OdWByX����8Ε@]��z��DP��EeR�����b���T�=�R�~��P�]��@�����d'®KH�0|�'�l���9���b�.�,}vw�H7�&w��̣�]�1FH�i�8��ct��i ++"��nS,F}o-ö.%� Z��Іk�hk�t)�Qu��T���J�h�: ++��X�m�Q�[hJ�:����댻1�x�����\��/��dVʎ)�r7�]� :X��h������ ++�&N�._?ڤuFW)���U������]&�mu! +W(�N���2_�$�pX]:���<}4�������?���J�֗%es��r�^�>�G���nd�?9�2��6c�7v�Uy�\��>�?�����aY=3��fS���vW�27�-x̧U���,�N�;��oY�+`�=���u��D���T&���T���G~ ��N��G`"�������G����nB���f��װƗqr�RBε�P�+ n��P�#�@��H���Z�+��Y��������i@:���� �R�|��"�=�S�� ++$�.��#����kj%��0t9u��.&Vu�Vr�����k ++�.̸#b���D���U��y1�(ʀ����IP��aF*E8!1Q�t�?"W�tis4�x�5xZf�T+� ���v^�UL�Ɇ�z���G:f��B8�p��o�mZ�Zj�(_/8��6-0���`�c���u&z-3�m�Z����;����&��7� ��F��d_���PoN.� x���!}v �o2�E���t>�-����ˈ�������K u���:1�x���9�Hr��R�Li�ߪ�îwR�?bZ����pA��Q�Ȳ8B.ʧ��_�L'�T��7)}{�ݫ6 �;M��6�R;Wk�/���M�O��C���Cؐ�7}��&r�.4���:����ӛ��9��X7�V?<�S>8{(�߄���},����>����Ɂ��$��E�5���<�,�C���� �nC�����2L�`�P��>S�.O��,��o��AG=�ǥ!�\F����>a8U�`�ѷ+�RZ�&Eλ��K�P�k��0������0Z�O�)��B�#��n�^ c.`ģS� ++j 8��C��(��pV�Z��/�M���̢[�H�%����6h���gM��S� �ɫ�I��w�X���j��;�����ch�7����&�>�ѿc�olg�ȥ�q���C�=?Kk[��uK�opX� n���T�_v����_�Я���ݪpY˚4��d�S|�d�^ޠ��hϳ/��Z�DŽ�7X�0��h8��4�Mn�]c���E� �m`��枤���-曂�W���!���^b���<d��ca�>�7�� �M�S��I� 1�݉��Qs�2��L������N��EJI쏯h,��M"�TJE!RU�.�r�120�Ř%��ٗ�NK�����FA��KQDy�G ++�e���[�p�^�(��gx��g'�[�90�G{L���뫾��G���^8���UY�!%H7�=H�~-7�� �5�%g����|�GC~��>�Kkm��Ӑ���$kE��wt���l��I����Q�#܊�N�k��B��xʯS@�\ �u�AS�vs�KWZ�7�7(�` ��K@3(E�3]�q����&�I$s�ʕ�H�m��8�j~��b�s�|�o�w\^�s ��&����/�/�o6�����6�����=��z ++�ҢԻi���b7�>Ħ���h�u@t�N>��Awu�[,�w'�~��)�EaK��!cw���bn�5�l8�R�lZ��-�?�~s)L�'�b��rc�hA]V?˷�j@�ح +m%�E�`�3̽�&�N�`��#ҜM�oJ��lp�y����w�r<xc���z�Ĥ ++�!�\O�}���7�@����շ����Y%�~�9��8��� �*�=�}/���C<�ı������ڶ�aQ�R���������Vf[ݹ���ك�ϢS������I�Bv���R0r��a�!�g���E���5�&�VM�L:5�����P״�_�G��ebVSc,O���� @�QU:�v�K&;�U����% ++U�xt�U��ӴB{��$G�䬤Q-��kh�nj��~㿳w��q[/�w��<]t�w8�y�|��Kṕ��!U�uo������&����:H>���"k�j3Ep�6ր�hkV�xd\�Z�)s [�`�i�|��,�a;��.�p���ui; \߾�b끲�Ҫ���D�;�0%H~.�����w�t"��*�XP�"�}`wIY��{�g�V'O�Bj��ea���e�9�גG2���''[�RB{�;ec�0�D��irs7�T�@��=7Qk�K��4+��y�$�Ri�v�s�M�t�>W��E'm��on�H��aaw[�4�rgfx/���)�XV"�����g�7���� ++��<�I�[G�����c(����l�U�L����5uw9�i.9���T�=��g�;K���k�'�gQN�����`���Oz���пzp�D�̷����j�ǜ��i�Z�@�g߲�U��_��}/ ++��2F��,���']�Od\��C�[�9w|>\u�{B��,xB�0k41�zm���S"�X��.��s���4,_~&�ٷ�E�G/~�s�_��LtR��������<E�N�$���. �V�L�#�:K��CBu�V�=�8ݙCq�Y��9�$H_��p��l���9FF�,�c��%H�K�;8��70�]�|0Q���!!!��?0m����v��T|h��ql)���v��x�?"����'[�|�]h����G�N)���SANI��-��� ++Iz��`��80f���2W�{�S�s[C�H�Rd2P�WPp_� &-!�'P���R��<Zu�_�x ++Hc�^��c�8�Gm��~<T��}�h��!�rв����G.1Dc�c�9�o%۩Fꚿ'��x���tH�X)�`k��<�+�]�8}����a��D��FԜ�L��E�5�H�{��[ ++�I7���:8��dY-���P� ���h��D�^�ŋ��j����!`¾�o�l���W��#H���Kd] �X�(��+�8���E�bx|��W��V��10-Hk�t첩�"'Xy2jaw�<*[sCK{u�2���O��x�R���0�@-�gd�(�O���O���\��D>1fd�h�f��<�t�u�\�n����Ƒ��l��y���Ͽ�`��xN�i��Bu�ۉ����A���>���v�د�m�e����蠀F{Z�-�%췥����܁������>xyJ�N�0��4��?�5��E��(x"�("��"o��t@�@����c��4��%"D�x��=IM��J�4ϗ���1A͓���Q��`Q�4aB��0�LH�/�]*Q��D<�S�\\څW��Pz��c����z����k+I·]�{�d'�w�zh�gkFCT=�>�I ޚQ�Lg٦�*��QRQ�H�ޥ>@C}��l���,��z�����Ѯ�ER��Gf�<p�t�^���=�IS2:>�J���)*u�"Pe<���?�Jv7Ug-�l)n^w!�'wFbj�>�#"0 �ǽ�ȡ^Z�g�21 ++rC�o�z\n�7O�j�k=0��Ag����n��8=�o�/�)�����Z�m�_���Kfc�h�W3�������a"?U�5�mT�=M��A꾣9�Q,��fH��x�tW�`��H��h�r���\(?t��=R�~��W��}~��Dm��sl���^:�����TOtא���r�s��5�����ˤ��<�K��νS4�l����v�˶#럔� ���1�t8PU��W�<��v"�h�e�^y#S�@�|����=������-���臲}A>�{du�t���q��RT���K w�Z n��ꖖDN��ط� ++��n��ߢ4*�����v�-���Ǔ�����|)X:g)�Ρrʗ��ֻ*q��y~V��>�����\N�S�����3��Kss!J��<,��ؠ��R�=�w)>�^��F��l�#��ٌcqE��)��.졣6)o��_��PV��]}\��� a۽�M{�a�ys^���)��h^f�1�0)����nU{�$t4�Ƞk$a ,�@���y���4�+��葝 q�̩V�w�PgB��4F���.>q��GB����f� KE� �����9�s."��Nu�qpG����e�h��E��a͟��u���*.�&,S1�j ++#�H8��H`�� ++�Ѩ���L/+��E�]�n��\���@}n�)ѝ�R���+�Hx���Se�A�JۏN�Tt۫-R��M4���Z�(��п��qu��nK��������x�>bsXa_���@��B��b(��u���9r��rrV��ʕT��m{U� �sGJ�K��YT��_�̄�M�,���\Xn��:pg�-Y@����'�L��6@/�,Go+�&��(˛�i4����!d�a�3T?a�?r�v:k�b�.ϥ������"*�(�Ɍ�����AՂ���䝇���Ot��"L�헐�Q�;��� ��?c�Ⱥu�e���eEKT��0 ++F��1u��0�Y���U�F�m���[�n����l�({eQsn%K3$S8���.D�F�Sy<*�Wf�E�;u�C�^�!Çւ4��Q�ٳ&h ��A_�� ; �G��{���}!���%�'�D�{%�q��(�t����zgI?t�G�Ɯ[SϕQ8͠����Ǔ��%�3u�2 �J��2�59(���:/1�rRL$)��̹�����l{}��>@,�.F��Ჲk(����;��/�l"���� ���ZalIΛ ��y{Xa�{�~:�T�ʩ�H����j���B?~�4ZYRVtE�Z�/�3OI7��Uk�+�g�Z ++�ML3%v��W+@�u��+%=��{b�#����v(��LdG ��Έ�n�ذWo��õ@��&6��}���Bt;�{6#%�i2���^��Y[��w�\���){��+:2AZ�Z&�s�L����7�@�w�@7��+@����z,� ++˩:��Hhu�k�a\*���6.�a�������W���%��sd4�g�.�u��uq�����}|f%r�D��B~�Wz����#ݯ b�M�;� ��d�h_o����+x�Dx�eb~-�͝��+��W�ҵ�(;\�-z�HKQ��cM��㗌����5 �Cnl�����_������t2E'Q�b,�$��Z���tpj�ắu��NK�@��R�""�6���t��=L����v��to�cc�S�,�&��e�Ǚǔ�����J�;�C��d�щJ�s�/�����>�H�&�2���WiU$�3����� V�b� �b��ڹ��[�����*�˓�l�б���P�%���H4Z=c��_�j�厾#���O!� ++s��BO�4�[�_��%�c�t�lhFp띟�t(̌3K{����^�٘���d���d������u�38q�Q�n*���[ё�ZiO�]� �ڕ�0f�>f���������5�J?�Ԍ�?;��+��y9�W������K�<��R_m��)w+Jw�=,j�]z�<�-H �[� ��Nk�� ����%V�1��'��9G�U�L-��iPTȘ$���˦ڎj*~��e����Kz�2�P����SEv��%�%E���,�O��&8&h҃7A�O�dG׀z0$E3'\��J��"fU���Y�p���� ���bHk����Hϭ��.�Gtt�Ĺ�`CA��+0��>L(� 0+������ʞ�Iѿ��H]U�'Or����MV�k��]s���0��T`Q/i�H���l�����]�y�O�?H�<Cұ!����5�&�,��=�ģ�cx��+��t'���J��W�|�<��[d���ȉ����;���c�5��x <,�!<�ZaI�g!�\@�Ь� (4t8/hպ$�S2(A�f�� ++��r��B�>�%f��Ы2���w��l@�b�و��K3�M<[���-�Y����8��{Z��kz���ٝ��M��*�k~��gK���k�$$7V��zt�C��H����s���u��u�5W.Fn�Wv�W*d��*�D)]^���+�����_v�8�AF�0)e��\`���,�:�������H�IB�(���ˁ%A� ++����cE���R�f&C' GM����_8����R9��ET�tρU��.I������H��?���s�k�+�z`ޗ�R��I����� �7��l^2l��!��nv��i� H��SUC|�j�gE7(%r��_y�Y����GC��w~�����2]�˲����Y9wc"����c� �j��>�nO�l1�n���Z��G���<<,]�;yz��6�m���s��,@�^j�7��詊�:>�18�r��~���rv^��yL����h�!I�ӻ`�N�{1���U'�ܛyH���V�xO�I,ƲE{��z����8���T�n&ēj��q�[�~��3�VM��b;��3^�/[O݁�N�.8)����e��?��+x�O����(�(n:1�Un-��lofw陆���9�U��`Yfdk�3�KȘ�$�]Dl��d4��&���bi������� �u ++ 3��L�Ƥq�q|d��^����be.���y�(�$��1�E���Ln;�{�#��<����3#�cl��C �H���.C����t�.�Mxk��d(c+���[�t��V<m��()8�_`�:���8%�l�=�^+���n�@?�C��B2�ۛ��nT�#a�J�����-��SW2Ʌ ���>!�E����o�T24�i����i�I��,����fΑ_Br�o��+�������iG�k���9�k�[��c!�Ӹ�$�}x��Z!�ot؞ξ��lȣ��L��`��$"�`y/cfW㯕�n;�W�����5��� �ӱE���"�-�>���խUC�}���L0�pH���3?8��g��rGR��d���vw踘�ɸ��ĥc�o��/Z��l��P�õY@��U\#c荻j{���O�����<5�>B ++����t/��+�Q$ #�ѸL"4����x��C����8fb�[�������JBr�Z�y�#�X(�'��yƄ w���ڂI>��߿M�h]�tx��1��Υ=9�: �U�%�U���g8O����gB��(�Wjj�`7�?}��\1)I�%T���M�+�c|K0��ڂ�]1����mwX�;:=�U���Em�D���y�_Cq|5��R��Nm��N�Y�)Z�x$M'd�1� ����� ++`���NO���H��V��k�;�|�D��쯳��J�y��n�M������2�����O��V �+D!10��.�u=u�'Iu��~J�8����@���|����7�1 ���E��Q�ƿ���w����3��/�XϪ��v��tH:�F�A�u#� �mE�րׯl`��~կ�T�DK>LA3�x�*���8O���²�z�����2�=/���T E��b{M�\d���J��=�УY��)*o9)��܆V��@�&�Ք�����{�*��G%#'�@��B�P��#��&�0��evR�� �R�5��s�#bHn��V�4�[>H.�P���%TOw���Q'�:�c���͍�d�%|��)n�#���?&*�$bɲ�����)�k��@{ɖ�QK/�'��� B(ɵB<C��bvA��{o��J��z}Ñ������1��V������Y���/۞J�̏����Pd�RԆCRJ�P"�JS_�&_���k��`�S�q-k�����s�'�cƒH�K�iq�6��m�'�CW���H�#{���v^I ++@��|^�H��������)�!o�&Jh��/���J���mv�EO]�I����r=�Nn &%�*M}� ++�9�"�oh~rn�!�ݏ��GQ`*�����dGZ�B{i����,?�9Zz��Hp[]F fA{�a�F�면�Zgo��#�� �������.�d�?f�vIIo��m��sn��) �r`�6�W��� ���IHP���c ��]���.�^J��E�?'����A�V����J��J!���ҡՃ[��{>l�9��m^b��0�G�B�9=���E�j�����>`��t���w#iܼ`kv�^�u0d��^ ,o�S���[�?�-�][���{�MRԍ���ʭ���':��E���k�S�C���2�»!Iݥ� �� ++ 2O�J2�Gl$����������� ���N[U��c�keB�Wye��W��x��ߕ���������UtS �0ڢ�r������� �A��W�?sۧd!�Cw ++���,}g�z-����,؆K/�J-�ׄA��\f��-5��O�X����� ߟ]�em�Ը�-Vft���o�,[������I1c��*�!؋�]����p���4�����B��x�s���ҁ�-$��,���.�~�i�7�����Ѯ)m�vP>߮ ++k����bP���3s��Xq�>��E�D��8Uʏ��y��X��Y����m���l|ۏy\n���)��������]�8Mx��l�P����Z��t�=�9�c�O k�M�2�G���M�z>Ȫ����sR����&����+�����5�;c�=e���Q��6��~zy���Ɵ'�V�,CqT ���9���m�p|�=�41���JN��'�~J��Ey� 9�%K�j3sq��F�,��?�4oO./�)?�"����������G=���JC��Z�Y̏��"Ó����O�Cη����2mG��f�v� ++��г� �W�>58�uL�Z��7G�pП��_��;3~=T���C\�M�]�v|5q�%0�{���]�v����9�=K�ϙ�m�.cr�I�k��t2�V�1MKU�H���fO�N,�V���;�T�K�>���>s��9Ͱ�px���IY��]J�:43冺z)���3+��~{�13���]g%2�s,3���'��g{�J���, �S�tE��@3Ӏ�G*��v�g���z탼���t�%~�،�L�M�W���(�?��;C͵oq)\�".z��z���2���̎�pn�G�?�|���X����Q&��n�6��r�}�[���� ++}���;�g=G����C�eN*���TJCU�1p��b�cF�'1Ub��^����� �t����: 㩼���{�Y�,��ψz��&�#q�2wA��6�jA<���Nc�����,I�oN>�����S<~Y� CI"|��$��ce韟���G6���Z����U�eD-���*1m.�S���΅)읺��6�R���ZA3�c��-���1��b��S܌U0�L�DeD(�w�n� k�����>q�y�7]~�"�N� [��+&`���n'�j"���p�xЁ������-y�,~ֹ�VZqA�<џz��VQ�b�t� �w,�7��Ş���VCy:���EA��EҦ�H(|3��ax X������E�;�0C(T�W{��1�I�D-e�1T��2#hj}��w{T�/pd<%��O�1���[D�u�x{�KW{�b1p��y���=�6O���������jh�^v��c�*������Z ݜ����h��fw.�h/�!N鏢�5R����LЧF��P+ȳ�/��&��eg�J/>��4E�־ᨢ�~#_f��F�����RԎ�?t�>a�8�}�q����:��ʼn�����i1t�3�������ȉ+�CY��+I,�I�����V��h٘��oi�<U�����^�ŕA���Mn���x>Zړ���ی�-�)��tc����mV� ++Sέ� ��U�F�*D��g�Q�K�X��l�+�������u��~�i ++��$>#<;m�{#�i:Ͽ����<���W����$��|�{_el����OD��Y�PN���5��K�r��}h�1���[4�9�7���9�e� j��!��*��neIW����28/��e��T�w�����F��(��v:$�Gܘ��*�X�,��}0�̼�&r!l�9��ڰ�@rU��^���;�8])hh�M����>R$H������Ò��P�'����k�uڝ��9?��;:nL�����q����[<���a� �~,�ƯZ�'�,��pM]p�T�v�^�������������^��v�K�Z��H{$�����hj�O[ҌƼ��n��=���t�R�K7f{_��Z˿Q�wZ�@D�Ys%���˥[��>�l�� ��e�s� ���K�� ++��h��y�^��S\<� h�QY�v�s�ʺ�xYXIr�B2wRU���m%���5v�p߉����dVdȺ�*s����V�P�V"��UQM�x�+2����l@E��-:��kג�f���XE��kY��/���"R�Q��p��g�Z�d���V����"�,�2i��]XH��(xj� �Ϡ]�iB���1���\@��'ܚWѓ4�x��@��ȿ�5���R�v@ ++N�ߢwN���|��(�4�Ec����xl�٬qd�䏎�h� ��N0f#�сGk���6 8����O��"Z�����,gz05�M��_`�\�{�=�j�wPL a�<o�N=�����e^��4�,�&&�p�>{�g���e��ka�sE��.PE�W;ݛ�j�n�`�\�u�:g���SC�?N�D�&��x��Z&���ں�h��G�=��(����}�g���������Eġ2��teh��d�.h@_��]���W���_1�����W[�@�a��P�GWI�5B�Up�}D�m-�������nӻ9�c6�Ϲ�Q��b�-h"��eAߒx�~SP{������|��!w�k��?K'��-�ک���o|��^�̫Qo���-�I�ďR;�B���ѕ^lS�oYLg�]���y�<���|�S�˰�¼���V�0'��`��I��Ԧ)}��"������+�+5�"��$:Ǩj�FH�w���&���/��un�[h��*H���Aڌ$��߿,{l��o=�Q�ш��u���H/���B����D����愇���8���~y�<�h��MQ3���ht�}�+d����2�L*����v�1���n%��!���(j���|3ߜP�� ���;��x4n����xQ(�Z#��<R���,U4@�5�2!�A\�/�c�.��,�����6g��qD���Mo̴�����G� O0�71��n60��z�?m�u$\����r��+8ީ�����z+_�)-�$���9�֓��y�J���|�C�K��?snz��`�BARt��ٲ��hp�hD�p=揕^l�����_LÓ�]�`0®V�'���$��t�VIa���m����tS����`B�j��E�ۭ$2r�+�"�2A0�L�J&���M¯�h���GI+��&�o��>0_���E�� ++����9U9m�89j����(!v�n5���b�ݓ���ΩN���2���h��F���t$W���y �e���������w�E�gg�{�Z�r`Zp'_[$�H���FS��D�1�����z��y��6k�c�f��z�(e߅G3p�Vo��2d����^��������Ŵͺ6�z�b*�}�y���j��q/�1�6��c��c~�m��Gu�W���þ8]��^�o�KP4��XQ���.%9߿zޞԩ^}�W�y���ʵ���^���З9�-&��܂�r$^.�lF��v)��P��������e�b�ujh��L#�k��]h@�����<�r<T�`&S���k$N��b�-��ĺ'�����⮊���i ++&���_��L��`Ɖg_��nG��o�2������ ֱ��NWd�x�J� ++{��Ó��HZy{춿D9*$Y���L�*^�g����[��?�q�-FZ;�;- �|��F��ҫ�R��w�H��J ++��66kcKA���C0��T��"Po�+���_�����Xծ��9p�;|��+�ew�CM���h���I#}���ϡ-g4��B�:K`��G�̇��ߠʟ�!�и�Lu�VGu����;�EH�]v�����?z�{��J콫v��t�:7Q���������6����m�iՍ����5P&�m8��GpV-�o�z�M�t���6+ӯ��M�HMCf� G��ѐd�-��"�����˛/�1%cVQ"V+��!��y�4DK�'��k��F埏9�H�J烎�F'�/�WK����1��DcX>������)���$;S1�ċ�2(/r�[�ni�JѲ��\G��O�*����I���"�B�\n�$M!C�Q���<JEz�o���a�ܘY��D5���|�� �2Ħڬ�RnW2DX�8��a���~%A��>/Z���H�����H�m�a(���t��%�ӄ�oT�2�@���k����e<?��R�Xd�C�����4Z� ѯ��=l�)��\B��Q��� �k�&��}i+��8�0E{|�H��DƁSw�.�w��(g�(�e9\ʙi��G=��m�j.z�I���Zs]�d��W�oØ ++ ++�9cw>Ծ�0\�f9���g�թ����gS!�k��?��,H����x�7���F�]D ���̰Z���K�#�?8��c7:!#G@�q_,}��<�q��5�x\�;97�;��Hźm�<�o��Z�>����7M���KHiV�]�x��f��D4�&`�'���@g<I�Ա�R�mE#k��*��2�=�İ���E(���O�pϟ2y�Y^�� ���2�?ߠ�4I?��>I����XYj��jE��&�Qj����"�-}��9� ++�C� ҽ�>����-l,=��T���iLM� -�1WtIb�sr틙X��n��$����ݜt�W`N �(j9 0�ĩ���I�-g�㌓tJ01W�|�c�X�)'�&�+z��U0�[-���c���r�*����~������foYG���+#%p*?�ؐH�a���I9"=PX����~�P��~xd�&X������d�ԣ��+RϽ^/w����q������ؔD��0��0��#��H�o�b�+�����B��֩1���͡Z �&Y��G:�p�O�K�,8!��4[H� ++�=�2������Sq�/x���rU�ԑ� ++6?|������9@�~\�=������?�(�� ��B���L��T��g �����a�;���Ve��T+��W�6�[@0e� R�i$}Ϗ��k`qR�B�%jWV�� ^,%�S��ѱ���4�'��{!APe�������a�,/�X���5��Uw�z�w#�)/���3䜕aFK�q��t1r���(cO�u\yZ�a��G�C��^ \��z�&�t¶����c�$.L�ً㙜�3�U�g�!�h�l(7c� �>;��|by@���� �l�ۍi��ܠ@/8��E�'���i�m�dS��1֞<���n��K齍�A�1#�K&|���J1� ��,��F�aF��Mp��؝������z��."�c�#%���Qtv�cb�N�� �����HM�DCL��$���\��iD���d�����(�u��q'4�@�����a�8㐀�M]4�w�p0@�� ��'��7O{2�Eh�������<G:��T��h�EP�u��l���y��>�=~~�/�qz@�D�EԪ�É�A)Hm�����y����V3sAV���ȷ;��ңh�)���m� ++ڜ������E_vf�*���)%1�� ++<#�s�,���<���FAB��:&2j�{:�r�a�V^$V�-�����ǚ�V ++��? $B�����h�_8��È��w���?�� ^�S���p`����aG��h��`~Gg ,�,$�V�u�}�qBٲs>�q���1���D��bّ0l�_��f� ��Ĕ�x�}��R���D�71��\&��s���� ���.�":��툐�����٩mmZv��O=��Y�,*���P����D��js��{�� ++ے����f���T�Z_Z1m��a m�tD*/^u--��~D��?1���1��]k�w��|�~���%���>�(*v�s���j|�A�8?.���4c��ё����{|^\�R���� ++����?qU%�Z!�4���VdS�dY�p ��p��)_K�I=A6��2�V 6;�ϢP�y{W�x�J��}���� ++ʑ5����f���]��|���������|0�� ++�N4�<dMf$�b����m��� �A�ߡS��ʥ��d9�u�3�����^� ++⦲���;���;��_��u(�����D���)l+F��.1@җv<-}<ڈ�g&��:ԣ�C ++��Y�P�RT$3����,2.��� �z�%��S|B4Gv(��[�g��y�x�i���;��|��rF�M�y����9�5��lۄ�uC��V�c m��n=�8� ���ˎ�4o����G$�n�K��37���4\� ���]Ϗ9w��`�C�� )i��!�����3�\�"���q�~�J�ޫ����,D�� ++��at ++A��.��'��o I�|$��v�n�a���_��suu\��.�:��"o�S��<�[�O��'���U�?��@�8��L����d���͔(Sc�wF�]�]�P^<�!I����MH:+�~ �hR�bw��2�wΧ�јY���=��V��������v�S�,�%A���j��.Oؓ�����[���� '+�!���$�*I�)JFx��'��H������(�G2�!z� ����� �c;��[��I�#)چԢ���>+�Ϣ�$����E��>.�2xZe+%0 �������cD��{�E '�^�}�\ӧM�����R���h��C� � ++b�M���͢�}ץ��d���L���:�O�����Ma�#�P�4rsw����!�d��neT�=�鱍c�������/�&�jT&���VQ������{qG�57ϭ��9�1֟�1~��H��z3��8F�C�X��K�ј�/p��ǰPw720z ++Z��^�� ++P��_���g��AJ�X��d�)�M��+ج�͠]��V�ʯ�ʮ����z��R��G�q��O���rf���l���ov��/�k�����ے�o%�]'���b:1�F�( �m<��u�����{t�{�:y�t�[�|�)ׁNi�\�%���T��(�T. ++�a�w��yT[�.̳�I�{��5l��ҏH��@���#p]+��" �?�t���{7ʣI��Qo%��I`�qZ�3�E������4��G m9ufQ��ɿ�N��;��NWc&r,_G&Wm����k�eB�K+8wZ*��ߵ]P9Ĝ�6I��W/�ʷT�R�Rv�wӾ�3YV��qg����4��TV:�j��Q�0Gh9����a��Wlr���%�b8:t��5w�ܽ����6���H@�ԣ ++m���2�R^�ھ`���C���0�* a��Cr�����-�{��IS�J⦇�tFj�sa¤���xZ.�Zh�����?p�� A�͗d�Z$��t4�MCA%?F�����ޠ|�5�5=��(k�^��E�?�佪�G��X����yMx��M�иz�<��1�@pI�� ++��*8$)�JJ���\/p��Ӻ���V6 oKS]�[n�5����+��"�w�_@��Ȁ��<I��;����d\���dٓ�p�Z��ɼ����'-Y*$\��߫�b����\�e�\���m�}���"I�@�xK�|%#����s%���J�~��F��]D�jZ��=�/!c��-�~��Z6�ZB�UC�ݧ�wW�>���h9z�ыGbǟ�.��WF>?�?bʞ�xq) ++�V�����*ǽ�J���ð�.�u�����}}�_��<���I0�]�`n�A��rH6���pʔ��H,{��yc��\�3��D���_��q�R�!�V�n����Ц{�D��g���ِ�օ�K��E��L�����NQ!�����J��z�7����]|���dK��@Xޗf$�-��(�����Z�'�� a �q�{�$ \�λ��4ޑ��(U 2�@�X�@2�չ��������eJ�-��5�������wt���|�ݲ�����06�W*p����e��$zĂmV8=��n�I�Z�o�n9փ���J�3�%K?��Ӻ<�����`cQ�����5����Ӛ�Y���H�m�B$W_���6�D�4����F�P��Շ�jtB"yQDw��}����h�9S��M,!�"%�/�jXHFsWٺ�u�~X�O8����Z=�����9>A�k��/����oi�>ۋh��?��X'��1�#��F�h���7u�x���Q;��ܳJSB�|��c�FǬ��g$y/���e�z^� ��Zb�>��F��/0��lVwy��V>�OI���a��F���iu�A�{�y�x��]�)x._� ��;y��[*�9{Qw����� ++�����w�S�2F�-��%��<�G�������/1NO��\��N!���Y������2�&��WM���A��_���3����D��?�_4��\t�%�3� ++����×�n��H�Z��?��Lj���9���R��O��`u����O�#�uG��_U|=.ݢk�z � �1R~��.]�X���ԋ������U��/ZҲ��gP ++�%��7���eG/��ZY��qHK����(��UG�<39"|=k=�G.>��h�9�+Bm�}��� [���x2c�V�n���XqGn��i�7��W/9j�_n�)��V�I�ͪQ?���(K]F�P`����h��ٞТ��ߥ�e� ++OD`2#*L��z0��R�*�7{4��^. �J��� �%||����{j����紬(c�� ��v5U�XL����N��~%W�@>��.�ބs�OޘNఫQ�߄�fU�ihc�C�*b��e��7u���|��a}۞�kټ2f�$h��2/�Ȭ���,Y+��^ݘ���Y�V=HQC���,d�6C&�7���魤ͪ-G����z��?Md%|?� ��Cx�-˃��ls,��|�x�+�˸��譹�đ�2 M�A=]a/Y#��dW��7�8ȿ��`k��f������ZV�v�V�zs�!��G�9�b�� =�m��vsަ�>~��/�\�3A߮NQ?,���{����%c��H����Sf�龲o�+��:2���p�s6�o�����Ӳ�d���曺�9��:�%��[��w�\2�E}��y^�r[��V.���q�_>0w_+����[� ���:<�,�v�!�&��l: �H��/��Å���gu�o����`����H_��)s4�vsXI�llv���!��J6�z�r����c�Ə��z� ��Chw*�� ���~>�C�Ң& ������y��H�$ �ûC<�9>���5w��S���ֈ1AW[� b���y�%^�i��D�ŰV;�]��!�|��1|�`�Wy�Hw�c ++�[oW��XK,�w��|���dZI�\��ܿ��� ++!hg�9'�-�p�?���aA%G�W���='��m>�k��Nck���Y��f���q/�~����릉��a��|{_�^�G U�mV�m��8��ORxI��Шz���uJ��J�w9x�*l"X�`�~��>\B�.$�����o5����f��Of�Kz�{=�&b�Z���倠�we�e�^=��q5���q-��O�5Al�BV���d��Y��R��+���o]ne"�V�%X�� ��!�^�����9\"T�'�����=����Y�\�;?��������N$���w]����d��"��f<(BX|�@i,�����\�{�c��)�J!��K)T�!{�p ���U��6G��8%�C�,o��1v9�����s�R� ++�|I�X��eb�R�l�$�,�lGr��F�hҳp�������y[�!O��Y+�1���2(�y�M� ��MA?r��t�� ++}z��j�P���p��0��"�"��/`��a6�����}�1���G�{���Y��nvV�P f�@� �V��pFh� ++E���d�:K�>�����dڥi�J���ϰL�m���:ɯ.{��n��"���$�;0WĬSY���ZM���(��(.���yO!c�5B��F~ �J���� ;�a�N�L�j�����R����g�㔽����0T<l��Yv\�srԩ�ȝ��k�LG��o'�;��Om%�<<E��D�H�M��{�u�#��������|ͧ,#�zTG^粚���+'�M��e���"���Ņ?�2֥̩Yے(]�f�P�1/�G�qy.��L6$�]�+E�'lʏ s����$�0I�2�;��}�ov"`�_�.��/�N��jX�Jc(>q��mOz �p� �֗E��*f���Q5%Ί��x>l�/�`�3�z�H��.%�V�9���-��Y��"�I���b��b|Y������R�p�H-����ro6^�\GUe���Li[tr�Be2��)��IXH�ܷI4�t0]¬�b3&� KÄ�v�4 �ߜ7��hy�MA��S�b������!~A�,��8�l��ԮU���Pr� H�ȓkAY*�?�Aph�D���k �[;V+逜��N�$�;6{v��D�Vow��p�8*�����|uVڇ���G���Z�Yc�r}V8)w��JC�Hw�z˯0^���ve�ڭ�O�8"�۔��/�v��Ɩ�Ak7��&�2���u+��X�̽��"7tU��d|��g�OO��Bq�nİNm'-�H���s!ZI��<���E�TX,����lb� ++��ܮ�M�\Ҕe��$�b+��^d�ݬn��@ͫ! g�鼒�IV/�ss緷�j�r�� -�5��-��x�1N�<�2gehe��w���YG�ɔ4�S�06mFc��R@Cr�W�dv��(��~6��)�bR�]b���������EhfDž��כ'�Y�q�5���<����6TAn�d)�yoz,�3(���L�H�2 p�d92`�I�4]���TT=�N)sdM@�-��OB���694�*}�#�L��h��Սq '��?��b�i��� D ���3x;��\M^BG���E--� ����V�2�~`�6Cp u�2]2�Y��4���S��8�������|C�>�e%��JF�8�Qq<�����".�E��R�QUe�1�|�@���v���f6Q�u���g!?� O���<��K��� �A��K.�$|^B;�G?��k�ʗ�<|Q5�\�eǛ�\���?��<�ј#A����pݨ�$�����,r��䬔$�S�L����J�S�*�nAB+� �"I#��=K���e�v)��q�=_H�� ++0o�N�ϴ���J���vW�틣\.�Ǡ|�a@�v��M1�����g�v���TnF�Դ���f�WLj߳Z��K�i��e���"�C�������I�:�{S"J��u/`S�#�Z@�P7�����y�D��!���r�����ٗ���V�zy�����ڮ�0��0(����[�� �N�cx����?K��j1<=v�@�1'S�x��˝���P������#-!T��V� �s�@$�>ľ��ub%M���e$�w��(�ԥ��첾Agv�&�u���/z�"�Q�"��u<���x�Ul"��G��'���G���8�O�??���7E��υ����BQ�G�!>���i�H�����zG{�?8[�]�����l�hk��_��˿��$�z> ���-�QD�D1D_� ���>_@�����Vk��C���Ą{j�17}�&��B>�e>��FC03 ��7i� �>�& ++�Z�U��=������%�̸������[�����5(�r��)��X���HCx\�=�'A�IĈ<��g$[�k�>���@�uَ@,~�tƖ�?�ojw���]�8P�5>P��g#h�TI ++@~��"> ������ �;�C��0���i�`�|{� ���^��;J�.yq����d� d�C��Ns;�8�1���q�q�£yȅ5��w���~�t�u��JViU)��\�U��Z��9]6awӭzl#BO��P�Λ��Dv(?1�t�xs�**/m\�j@������S*��>�Q���~8B���nM��Ҩ<`'Ҕ"c �a�p��\j������3�ϖ���do9T�=5�2�"���%<���O�%Lw��k���&^t��^�g Ҵ�#x�>����_�42����a��rh$-���1v?��dp34A���0��T��57��g��w��.q�2���ě|9���b�m�fkKd�g]6:V�<�qO}^�����ܵ��*��A��O���R0���ؖe3ՙ=�e�4��"� �����s�)ʘcO��(�����Py��v~{4����B<` ++f^����Md�S�L��R�/n�a�^U ++%�>F����+��F�E����0�9��lG��J:@����3"�ft-�8�Q�a+j¢ًt�������fVy�s�|������Жߵ��/�է���{�q�����vxТ�I���ۊ�r����Pg M�?d���Ed����0�A������^� m�3kA���%y,ʌ?�� emIbC���f6̽v��Q�� ++��^���0j1H�sK�,)��ngQ���4���p��B���V�����h{��H3p���P����������})�� ��ܛ�~��FL%D��L�T���SV���Gظ�������=�����Y�i�T�?���O��ߣ��2ܑ���I0e�IJfF�c��~�#��2;����?�[E�O4��w<Hq*e����P�h�T�d)�c�U>zvf�Q��)@���*��??.v ++;�����VR��A��Ͼ�y�Ǫ¹�_�v�[j�s� �e���W��V6(�#s�֤qDv����vnum�ܽ��}���靓�}?3�!��נ�Gٮ m$�6��A�I�g�M�?�Gp���n���g�z��Y���������ij2�������H!Ă�j�0�����؞x��|��q�0����˙��|*��S�U��%֏�2�hQ�������gh�Y"Da�ϧ���|D����G�L�#]���_<�0� ���%���`y?^w��د�+�3����%�l�;g�c��hsV�O��Ch�@)�a�y}$G��E2�6:��m�_�ֆ���_��@�S �ٍ������p��ɑ���*1�B�y@���"��O�#��F�� �<m �����s ++�MA�,�^B���n�TB�Q�<=��b�l<�D0�����%�t��ɇ�gPv���zX������I%���>���0Be]/��{�~-x�E���� �9�G����<�|ҷ~�l�x�M�� 著�h��)���Щ��B÷o��i��̟��$���7�)���p�A�Z��'�e�7:l�+�;��ñ�a�p������{Ȯ �Gr�l�rwQt�� i��زUݕ,q�B�۟ꐘC �����G\fo_��̗�9hB�D��?!]�]1p��;�u�����T �U�LH����&�i[t�����.e�+JOԠ"��f�2A`Gm����zi/t,z ++D��V� ~�)�WB�U����U�߲,�i�����wʥ�S]�+{Mb�qb��xh!B^OD��S7ڧ$貑�f�)�XqP+�RBR&:-��5c�*d���d�Oa�,;��Z�H�E�M� ++{��HF��J��*�U����]�"`�}I���9��^�Y���/z��v��s�w�G�п"7����}�f(E�Y�ͻ?���cJ@0p���"8>�"�S�� >�k A�� ���#K��Tk<�w��uz��ݨ h��n9�xy�`"�,쉧���RTFR���鶛���[d�A���(����.p�WxRq�8�&`X������T�������BDZ��i?K�z��&ji��qL� #fu- �dwhl�����{�b�h^w�\��Yz@(EtJ�4��� 4����Tc��n%��kYd�����Cx17kE�U�Ϲy�ԇr�l���%5���d���ߍ��X�$���[|��q�(/��y��uH����wQ��q ��P��C �����J�69CAZH*�A��r�k����w��S�S��}'����X��fo.�tȚ�'��V�:� ��"�zF@�b��U��qdE*c���Vv�����{l:t�(���>,;D�FEmٝ���?Y�-\ R2��і�˜"�����ta����Q������09K�bDa�����JuCfiJ_<L��`�(�ىhZ�D0�&(ne]�!�=\����{���ފ�P�J�q�X1pY�4��+$;�h�5�pBj��1P�X���mOhV��qY_j�tbW`0��4���'2 ++����Sr�8�p��{�ܞ�yD�8u�F)6�+�;�I�yR��\r_�\QI�D��5[#d�_�A3���� �!�|c4Y�0r-�[�S�ߏb�Ր ͥ�q��e��!��T��J[��/6�F�����y��B07�x��I�(��V?�I��i(>ƿ��o�xo�n�ʺ7��M�C�e�*�ؿ/��<���j[�����s�t���������w�|H%(���������nNjv��l�8qM�w�d��Y�H��Ϗ�_N~�xT�>e N�g�����8 ��C}N�(O���DĒ\�����Y���~,@��=��ܥE�V�2���`t~ÿXĶ���A~��:�8��|�V\�A�)������\��"�o˵mH'�Oh$�SB�V��px'���}f�da�6I� ��-Ķ<�L�3@z�F����$�2Q#4ڑ_xTp���~$�f�텊�ٵ9��Z����5Z�s�c)+��r���L8.�I�X�ė���rq�7�E�i��-w��<��@.�.e;h)���D�a�]�?����g,R��/�)�X�u��:�6�J����!�{�ٷ��!����4�;�0�uS�X��v(5nk*�;h�Ȑ������ ++�ʎa��cTcs�y�z_˔�5��>�Ų '��[�_|�{U$���㴔����`|ר`��f,�i�_��]�:���ՄL̇���)nE�L�J���϶����E����,LE5�D�̕;=�AS��dpk����s�A��pt.j"����#v��D�_��0�r �#��^䟀rVi�S<-=~��w)q�h��P��s<r��d��� ++�n��y]�������q�]P�n��V��d�&U�*�l�B�&�� O�:��P��N7~�d��BfV���yikAq6Y��a;2D�����i�˿e��.��L��D���́sQ�Ff�,���;����m�fYK����n�+D:>�.5z���2�>�X�~_�rL��>d1�k�O,O</�;d�.�ˣ�r-Q6�@�Q��3&�/ƫ�_ �f��MG��0���F8��}_OB�L�so��_�G���ţU��h��(����0���a���)�Q�5_<��N�0]��A��R*�r�H\6) ++�P���������v)�b���ۘhۢ��g�7l����nI�v�Y�+V�eQ(>ZAlT��v�MƘ������p�8m s�+E�Rih9���϶��2��3g���������f�Fh�?P�U�&�\���@����1�1�(D8����ji��ywU���DD'��$�So��������������(Z������j*o���2�co�jt�h�V��� ٯw�Jc̮��j��@�]DŇ`i1�7����]�)R�$c�Pp��<m����s�C�����b,%�}���F��TԻ� ���Y�!:36��KN0*�����\ZM��Pd��D��G�/z���#֭�&�*�9?����&�d�ݑ�u����*ʔ���Eu�����Pn�s~7r���hT>�����p��&��6`�@������P8�r�2�����/�R���8�Xƣ�G�+7ME��;�g�*}�e��s8��V:���4�|��'���q���z�+C��Խm��Gg+�$0����z1y\��n��N�lܶ|`���h�R�#T�]�!����d�(�L�@I�˔��� E�%C�f�Ԇ���jwҳ[:�x�)�M��dQ�חlT<& ��E���{|�D5�w�#�|"��������'�i��uس&n&<�}�&�7��OF���X0fG'<�,��zw<#�v�ς��W��2C��%*�Us ��F��oO,3����O��k�t��I��(�yN���֢��&���`;���1�J��w+A��IJP�K�[2�M����4���a~�Ui~=84�R*��2 ⨔��HS�vf2~����ڊ��}�e�֧�u Ɏ;S��~8.vw����ܪD���R7国.b|)E��,��/���<�Z ++�ς������C,69�<9�x���E{��`��<I�뷿����ڰ�e���X�H�����_n����* ++�(v��C`\j��us�r���|D��?0Q���Uq�g7C�XxT��<��=���z) 2j�x\_M��j0�ܠ�*P1@�?6�'N$U�BJ(u��&���6�"�o��#��\�~�&:͓S̹���D�A�S�l��I�J�t ++G������h�́� ++|�C�|��O�>n9z�� �5������Pi:f���O&�nϛ���(Fl��SW�,�K��t�@�*]���y=y��Rs��5����o~D���CY���K�~t�]�~?�:�3����xh�(JZ��M����-��$����v]�����T%���~�H��6Z�cJ�~�L32�X�#p��k�8\4.���h0|5uJ��� �I��䅂�ʂ>s�d���j���"3_U�r�N���ϻ�֓s)?F}��<�ؚ ++�1(��]@�y�P��)�0�� ++m� �ʶiW���R��Uep��2xȜyI�D���$�.��'���2w���ӏ����q��_�/(��{�W�L�2�Y٠�� �K�=]�+N��wl���M�;$Ϝx:�8c��1N�|��ORs����ן��(��7 �tj��v]DgF1�d��R�e� ���J�i�v��Ntj�N�_1R�`T�'��J+�T���u���ȴ�i�w:���.�Q4wt]�ξb��5#J����F��/2�˥�p�[<Ap��`�I~w\�.�fuZ�L]����R���+A���L�<<�6NY:�gh��1��/k�mR(��Ku� ��7��@ٓ1�V���7c�Ei}��{1���� ���t&ӥ���,���,On�^�?e$�6���=r�x�1�����U8M�z}yaZ��;^���Ř��x`�~� �հ��O�ˑ��������b��UX?�T$/�n����^͘O 83�iѲ��e�W�mzi��6e�{Ɓ��i���m�~e4��cX]^m��i��a�+Ř�^m�;� ��T�Wv�R��8����Vly��n�H1q�m"���܋���%�&��Tz� 0Y�cq����Ӕ�,����s��4� ���� �/[|����p���4�[��&m�A�� � l��u^ Ś� ++�`�͇˔�C�.?Ϡ�寎���+v����j�R�3��!7���0�r\�����fk�pk�B��Ⲉ�b���s�q�!��ȴ�� ��@A�Q�ei����5�z54�w fۛ.C���<T� ++�5+�`T�4~^���(���p�������؛l�~i_�Ċ����"��s�32`�l�4�K����g�H�X�F#]O����m^ȃ�!H�7Z��]{���xH8���ބ��H�8�m�F���VFW�;�����`W$��/��qV��h���C/^ Fs�مV�1t�����3���J�._}6��8=��J��]�P+�y֗�f�P9�郦lu�J-2��+o�����{��r�4�n)VbX����6���D��c۬���퉖"�����d�4TM�Su/��8V��g�+��5G��>V��cE�H�7`^��I�:L���t?&��$����j�"�}R7�x9z��i6�Ⱥ7.3w�>#�w������}���.١��Q*��BO/�����7G�إ�$F�����F��Dj���������w����m�^�(E��i@OrU��)��9B�J!:WÛ�K�Ea�#!�t�yu�00��#�I(� ����Г�8��"�|��u?���� ��g��_�+�S��&�Cž8��,��]��':�vC:��l4E�X:��#���~��N7~%���8&����M_�>k�y�*��H�ҕ��h�$��EY����fk�U���a�9q����x'9��6���?v��p�m>�/�:�3h|�"M�R�胑LOS��ǹ��}۩���T���L��Nc� ��4�H>�iK�C�фܢϲ_���&�I\��y4vZ�EUdՈ�o?Vd������5��jݚ�jj�i! ++H��uD-�Ps�@A�{W�42,��6� >PR�¶��,|���`�G��j�[F���� �T��3��3�3S��T�v����+j/�j�g���9����Rc8垍�9��WBc8�̯8_��=����f�i�<���c��x �C�O2as/�[Xdk-Þy�X�f��4���Щ�<���b�Qd��x��Ql��2�S�^?3��2Zb-șƢ4� ++��X��9"ʴ����Г#��?�S(�?���Pf9�"�44�e����c��*�y���������6p�я�4�1�6��������A��������O4Y���ٿ�{� �����3��Y�t�)�o�D�j����d�ׄm,a�-�����mE ����'���!%�@W��Ռ�X��a۔����6q�rk- �o��+�m��۳��j��sA�ۦ��o��j�c����(6Y�o�[Tw��?������bU�R'6�La)X\�$j��F��Q�� ++sP�o2a��v�&�0��BA�J�=�}�?ݟy��Ç�ji����]��L:��ç��b��Rj��]�Zq�����z������0};0kn��5�77��vv?��G9IJ�z1���������Wo�Q��/��$Pqj��᛭2 �i�yR��cRA�l�Z����%�K8��R����e�G�G��Oi�)`n��R��^��Q��R��t�o�T���-�Z�XL&'B�k@o��h5�K�����)�W��`�+��h�_?�]�χ:!�� ++Qsa`@�Q� ++G��2�����xA�n:�#�+����y<�/Ct���'��i`���G�x�Vg���nbd�5@�mֺ�^�e�I�P7#� ++�įX$T��c���EY�,���o1,����P��a��� ݼ\~����R&�恝l�1�$��/8t�����U�^�L[S��C����_���7 biQ^%�����"x�����D��^�)��IL���FT�5�f�+�E�p�O�Y�A>� ��hW�w��\DX�q]�6������LU��a��@ � O�N�j���`���5*|[�U+�{}���(�[�st��[$hy�J;D ++����0�KЇ��ag۱��%��g��C<��f6�[��qT_��Q?.f���D�q���!��AML�nz��V+��c�5_�_K���:�~��7wki3��1%�w��_�L��_�Ŕ(�j���{�;=b:�`�-�?�[��{)h�U\���`\�~I]��*��;�Rz{�AX��tюi�k`+�Ds]�#� ���"�9�h�3@����0��Q$(��Z����ю0~S�nnȟp�bv���e;�E��v�!wS��!��;:�5R�g6`@�gG�������=vC?ߵy�Z������R"��� ++X�,��m��5t���*R��k�2��� ++B#/ �*����&,b��۰3���O�Y��}���o�R��Ύ'@���f��<ܱMV��d����84�,�V��Q�*s���r�+�D�(���Q��Ɯq,5Qer=�t#Z9y��@��w���F�� ++ڨcܚ��?�I^����?�$/f��χ#4����������IJ57�O�ί�=5_���/����X��<"<��>��L��6���!P ++ahZ*��>�c?�v@X�h]�_g�����&��=�X?d9�oPo�AeOeӮ��Þ>���&�G��=e1���9��;=�}F56�-���R�^��� ��a9SB@6;_���m��s��d�S�_B��G0N���):d�P�R0ض��اj����=_�8�H)�h�[1Q�Y�3��W�=�/Y�u����B6c��6�h'=X��]�M��4Mn����Jh��0�y����qgxFR��ļ�~�c0�����_���ۚ�P�*��F���!��g�[J㷇� Ҋ����nb��<�j;|{o�pC+ҋ�|��J���4��7 ���B���^T%xg�J?x��>#�hw' �&5��f�&E�������0�Un�P�������Ѡ�-�Pp�,X�ЖQ�Ѯʆo�)TC�z�Ỹ�]���j%�-���2(/���šS`���:�����N}�0��u�c3Z��1c\�w 2&{�y��o�`��T ��O<*�!��?_�'όL���=���;C��o+A�)[�ʬ�J��6�,b�#t�g��cv���;eW�b~y���Z����0���������v��g���rBY�(DS��W�1��m�)&�)@�Btb��,%�% h��h�A�4T��̞n�)XKY�s8�Cѯ�7/��z�ߥ)����<�*���֥��e���#�**ϲ�ќ�p�s��r��̻My��y�Vl�rIN$�/[25�J�o:N�g�<�s7~��q���\Ԁ����1,��Yo4etMv���qu)>�+�F�-S�W��֚-��<j�a������' 9l9��c�K�3VO��1���A��jP�)vs�a��h��d���Z��BexV,�#��������ӹ��X���x�R� ����g�k�#��b8�P�&�C'ɢ^F%.��M�i�[3I��=춛j-�窎�3�6�-u�I��F.�;&~! ++.N�Q��F�X�k���EԆ ����H�4ĂB@��2�w�9/�qv��u�G�a(����+�� �ŐQ�g8���FF�=BJ ��x��ܪ4V�lʲ�5d�d�<p�HүVx���|�,��}};[�l��W5&W�[��&��� ;�4���[����j���H2=|��4��b�:7���7;�db�=�Kuy��@��c���e9^O��]�U�(�TV.!����A�����u�F{��2�j�C�#.V��L�X�6��G7C~ON��ʢ(���DX.G���L�� 3b�lN:_����4�Q�/���Zo�]t���6$��!�.�(q�bn��2�ƴP��@5;��z�{7�S�(����qнHԕw�y�8�t4�ԍ0����!s�0�xZ%�7�[�0|�(`��3Z�D����(�O�-�cf��00�ΚAɔ��4¬��Í'v��ĵЁ[�x�A�9��,c>@�� �+���R�Ҟ]\楥C�od�`)s�DǸ�U��}d?H4����~@f ++�0�u�9���ծ�.9� ++�u�'t]c����� ��z��M7e��N \��Y�}�2YІ�}��8uD��f{u�pC-�Px�:��`���gn *"��K{!�`�SA ���a�.�|������8/(��ݽG�6�,J:N�]�#4�`����.��v:��x���㼸��y���4���)�6��L�BU����a�v�[M74רI)���g�̰+u9{w�Q�p\泱1Q���,�d+�:�!��:eS�-p@Q�$o9[���������9:�w� ���w���0a�_����5Lk�^hs�H#3-�SN�#��c��>&ꩬ�ngo/�'�a"�ZL7D�����w��xX�ݍ�MKʲ~��~X���`G~�8ע��j}����{���kA/�[�ђ�DC�dR�䜟� ++����t��&�[�:;[.h�!¨[�(q�L��ܦ�kw�^�QݵͧK]Wՙs}��Y@���7�����K6_���M����~�F�8����B94{�bu�H��'�O�c�x�~Ŵ1��:��הM���/���������*[.M�����t�|��*��U(������#P�h�;�{3L��5�K�� i�F�^a����������]���a��g�4y8 ++Ğ{��Q�&���<��+��Z�J�|�����]{y�=�t>�&f)c1���� C�ђ�� �O(��� K��8UY�5� �L��X���~Z��W>�t��v~Z&�f��j�Sb �H7������ca��y��[�~�0�_�δ��jxϰ�p� ++a$,��6�<�F����r�,�;�/$�6Z~B�O��n�����q8��#����oRo����,��$X*��N�����zQh��9� �˟W�kɐ25�,V!�Y9k�|�gK�pd�������@r��a�k���{3�C����e3t�P ��E�9��4D.���3��@9^_c{�G���F��f�A/�QJ�N~ٝ�{?�����S(��r�.�O�IJ�1d4�� ++�u�0U��(r�n���>��6<����y!�}n@ء� ;�^f�c�|`6wKX���{����?�N��@wzCƐ^bא��R�����ġ���0}W �U�������I�=Ӭ�ĩ�"���h�Y��� ���|�ȀH�u�XB�O�DT+� ����o�5��Uw8}g{��fz���lY�Rd��B)&͵���|��nu!5�>�$�@��w�-�l:*x٦�'��r;� wu��J� y�`O���7I���#��~s���z�� ��R���u+د�ː��Z�Uܿா��E|�̝7%V�'QǜxƴSS�&� ++z�CY)ݤ4B0(�I��DtPDɕ��D��fxch��5`4�LJP�u�vt� c��*�Ǻ,�F�mzq,S3@��d�,_��ǃ�6e0&S6�Im?-�i�@\B�*��mٙ���¼d�������Y��d��j��<��ْ�G�4�!X�w��~ȆB�R�7���i#�5s�S��#<��P����5�,E���_����~T���n�9�u����;������P�54E�Ej+��e�=��3�V�`��VՇC�ڎ6�6�c���=5Y�T-���>i���)q�\Ak��:��")��ҋ`���r'��8�>T���>:;���3\4�$a��Dҷ�q ��h%a"��.���t�C���{�.�V".�w�x������v^{! ��>�Ԣ�8{i��4��a�å�N��p��Ђ���P�;Bn��dHz܌3�.xg�IqAP�Vb -P�`\v���<�օ>!��%�������eJ�Ԅ��m1�~؈j���'%6�"(;^��������a����~���`y�Ƌ��:n4ׁ{M�%PN|�f��yV�%��� /�*����k'�%`����p�A�?(������i(U������� �_�S�B ++s�� ++�:=q�R��t0O��T.�̘jݟ�L���Į�'���6|c0tv�������I<2��$���e�m:��K ++M���PŁ�w���o����%�Ѭ�L<\���$��� MY����N�aW-H��%�� ++�z��z�ߠ�����9�Eo809C��ǯe�p���7D1��e^$�E�D���1J����Ca+�Cp�z����.�R�P�"�o[�Lj����l��_�glj�6�`0mN��I`/͓���*$�� m��o;��%�Ң�;]P���"��}���ǭ"1�W)���?1�!���b���|P}I^T��'W�J���]�Mw�~m��ռ�!A8��ɲ��T"�_�+ݽ��'�C�f��T{�A!Վ�"���h�\C˪��%n��^��$X۸�6[��w�c���LO�����]t%!�71��a���3^ؽ*>��1�Ƥ�'�{�ߚ[2��V�N�L������Ճ ���'�gή���� ��&nf�+Al�S�ƄѾ4��Se���#G5���4��ov�1�k�lޛ�T�7��*��_����͞58�Ļ�*�'�D�#��W�'��~x� A�5�r�8�RO�1�:QO�U|��l���(Uh���:a�`@N���YD�i�ɿ%�w%l��Rr���s^���,�JetN��-�xA�7T���� �DV�S��!e��'n�rG@�s��B�p���g���!���-{@��k�w x����O{��Ak���Ԓ'�w�L ��3�) _���X��3:Y���}9�NQ���rL��x�SeTm�[��l���k<}��#��ͻw���0eu~ALȼK��#�vwyysK��'i65�E�nɘ��m���?Z��2�@���0ѯ���CRq[EOߤ$2R�q�����}��Z:)��^�y�[�h����q J̒�w�&�,���E��D]|������eY�hWP�������� GĔa`���]��r��mϋ,�c�5Y��s�\bƖZ����jG�ʻ}�}�3�o@܌�U��>�'d��5�~C7C��CS}�������Є�N`̑�+���P��xܞ��Kp"6:m�+��� �d��0D��A甎�-&�0���J� ��1�fBO��QR�g���lu���a����e��$#�Rc8s첲��Ng���;� ++Z�NK4t����QŒw̭e��m�~����,*g���r������*��6��P���0��z�I ���IWOb�e̛{�\� �i�|�����w���<ُ!1�`4���D"��ɗ|�s�01����0�� ��.K�+�Ɗ������L�r6dݟ�o��� ++���ُ��X���|$D�� ��h^�Yi����4����Yƾ��/�o��?mY&��6��T���*�,v(��ʿIrj0�ُU�,7K-�ǚQ�g� ++�|sr��sWq���qZ��t'�d�>&�R�ޛ`�!�\�+)$�g��f�,��G��A���,�k�ν/�c,kE�<.RP�hQs]��+Q�����h����h� 8���Q��u*I~=J!W��FU�"���'�=6���N�c�"1^��T�]?��I�I�Ğ�!��_l�t��ф��-Z1�$���mɯ�z��'���Fl%�}����dw,C�K����B1�B���as�w���M��4�EC��YcW�'��v/u"2�eK��Ug�@�,]��4F���{oh ++# ʰ���4�v�X��/8� ++Y��]��r8�G�G{s�<3Ŭ:B��"�/��P��W�l�F��G�J4-��#��㮠(�5��u��b?���F�d���a���Tk!~� �������=>u���������E� *6��g����7�ȴ�y��KL 14��?&qe�hq��2���1��0��"Q o�b�1rTJ�ɛ��k)�l#Ҋ[�v^߀��;��lKb�� � ��D��*���z��� ��qb��o}Syk�`h��p�f�&1ʽm>}M٬ҟN��m��)�[|O�hn z6w@�T�Q��V�{�uϏ�ug�3?G�,�G|�_淇I������A��g��)�^L �.�`e���:W�����v�(�������\��C��8R3>a��E��,�ڇ�0\-�o��8�"�m����%q�3siȄт�����m/ř��c0��Ɂ$�#Wj��i���oǢ�^�ǗѩǑ�����"o�}~K�h����� �LA�_�\ޝ M^+Z��������1�����9+��nQ��J)�婡��'W� �Lp��?Hx��<���v�����E;��M�.�h0�gT�$��c���@�e�n�'�(̚�0��n�2�4�;��4,Jou��zc�N�{��_{&~G��"=�uTI��S{da*[pyU�U��mGy�)Q&���7������pS2���^m�����EeAL�F{��e�����JzDj���9q��œuBI;}N�`�{�m�.:;o,袢��?_pЯ��V��q���,0��������=H,՛{f��pP�MN�=h��R�P���������.��������-�#�P��J&���|�w��E�� ++Enij���;6���'�֭sm�08�t���I�DZx�Fi3,ˢ�8�^*|DpZ �:�H{]�.�;��T��C��Y/������#���F+���������d�ː��?�S}�%�a��2 ++��aSup����ou�W��J�ɏ�ʠ��8��h��rd�D�.�Pߑ$�����όq�x�r9'�����I݅x@ud���R�, ���B}�R.�G.i)��Ⱦ���8�f�(ʜ����d�%�"H�pJ%$p����S3![Pk���4\7����r��.E�i�_ �{���V��A^.�]hw�p�������(�| ++�SOL��@�A0���ʝB���ٕ>�'��Q7���9� z��}f;@�9p�@��D:��9�ց�9.��A�7yZ}��Ԇ��s��К`�+ �bUuL���N۵�n>���1��9T*��m�k�T�m��(� K�F�)�x�nK�L ++�gЌ�^�% ���]�\��#��^%��t���@N�e0��4ݞ�q�Q�n���-��y�`�3���nP{��eB2MiC�9�7)�E�@HRu~�%y7�cE�N�2���Z��[����][x읙�@q��F5��E/b��7$��!�-�< ̾W�/壨�c�şeȱ����:��=���t9��YR�H�����hӁ��I�� �%z[k��>�=����cu�d8ܟ��&�K <CG�5ҿ�<��N��S��~�1=���������6N� �a���)��Х�b%#E���7O2����^6����;BHX�~�(P��I��JJ<�2J�N6sA�N��� �ʛE�b���d�Se<��З��Xfڂzg��p�s\ ��{ ++yt��������~�� c��_uS�7!��q���t�D�t�M ++^s�c�1ۧ`�<���a�Xw$7�n�S����V�Q"�]i��Is}tj8f���Fc�7���F<�#n7gA��������4}�a�c>�!�{U)>#t��Iyg�2��ݕ�ȓ��Æ���S(�6���|Q;�R�P����3�W�G�16+ü��X���}����4g��f'�R�2/�,�el0N�s�|cǤ�����UVC{T0���|1/����i�������u�|U�9�<J���[���F���e�c����-^�����D�}G�u�G�"+��j���.�Ì��e��y H}n�20��I��ZP�b ��8H*!���Y�! ��Ejb�?LUmd1�AU���3�4/lN��ٹM�4�p�7|�jh/s����!}�2q����*�<���$ l&��Zc������s��7�\ț��5A�~N�~��g��Y������LnJSI�7[v�_5�S��7��!�8��~S���7r��������A��Y�*�J�|�&���W��iCsT�p�ar��(�c�h�#˸$])��ɩJ�;Ԍ�^����Ɉ�vs��������@�i��&�y������|W�=���v!g��VX6������_���D1��?r���������cMK�υG��ʿɜrcp�2�7�ʣ�١|C��D���>|+�C��~ :0v�}����P���~@Ƅ7O��C3�~�lo+?��s1�����.��������(䯠���A'̮����c�C-�u����(��5,�1S<l��o��:9AA{������Y��z�0���Eʛ�(��I��J�K�*�-E0":?0����|��/]ҡ�Z$�����U�ií��<���=��ϥ�A�<�'��s{�#�u��JE��J�)�Y�~ o��������q�H��_Zdc���Pf�8�ۏ�C ��&�p�g��9ȝ����Ij,U�]���,[�N�$��"|�5ȴ��U� kL\g�56����Չ.���l9�˼r: ^aY�H#���|&��C�� M<R����P�*b�f��qY51�b-'0��ʑ��h�d $N~���� :�+mu�������)kP ��q���;���6���9�z2ֳ�1�F����ne�9� �!gF�����B�1s��".��(a� ++�gݲ��X�&�Rb���P ~�<�<���-�'6��U5C�x�,�l)��Q��B����%�W��EJ����e���`�-J�L��sj#Ѩ��l_�`*#�o�p�R�.��ͭO,چ{�j);�� S���ڗ�֘��3�&�p�#Oh�j�..(m�J��G���������.�r:h�d��L�U���@�ʼnn�$�AӲ�q���C��% ++`�썮�O��io�����u1f$X�h?n}��~5�������ߦX�h��e���-���o�2��+��4y�`�r�p���B�4�5�\�\#A���j�Y�,��!n7�ԓ�����>�qZ&�"����<l�c:JՕ/w�B���j��my��Ҩ��*�?�^XC%j!�nkU����K�5������qm��_�%���g߸.���2i���������mx1���%Sl��hU�sK��U ++��QV*8 l��<nN�PJ����nT;%�"����|*���C�f��d�::��q�UJ�$;B+;�J[S����I��E0���@_aqx"zN���9�X;ݛdmb��S�z4Կ=�d��LL�I�いۢ?�iTg�4�n�4K���m8;�B隵rݴ�)����I?K&��(���x:�cZ��c��_t��7�M����Rb"�2�v��y�}^�`�����<"y��98���G~>o}_�� ��R����']f�!|�d�xX���m��>#M��"d�x\Մ��Vh���b�z~�3Dζ@M>`hy��E� ���/`��戓C�!M�抖^6;��M�z>�o��%�u���J�u��V�g$[U0�q�L���= �$��:0�M��1�FՅ�s��ڗ��z� ++��+#�����S�#�ڧ�l�GU �QD&��HB�/��a����JApt�.���~ �1�0ͽ�����//�m�����jw���w>�UWk���K��LliD��a��U��m.�ԧ���`��I>�z�����cwjUH�~"d{{���N��X.M���h�>�+�VC��l� {l�=_������8�/����>�kY�h�(e�Q�F�3;J�4E���M\�����jj�Rz\l�(�)�L�[1`�� ++�b�(=�D�z��&~C���K֭i��u ++�V-��Qc)�6�z�2Us��t�}��]'-�ZT;�`'���<���Y��6��]�B�i�s:�Fט��eu�<؈B��J�)�{��t��]�ێn*j9����J��y��%Zg��G*��=C���3��h��sF0�ԧ��j*�㞿�7|���g���E��M,,���~g��G6s-���aS�=Ө�1��:Sg�I����f!�1PNFO;�ŲV�D�1��89�S9��N����H��=�On���\-�����(D��1>"=L`L��U���i]� �̆<��x)݆���#\��������h� ++gܧ��A�Z�d�Q:d�c�Iv� �n�/�qz� �ͫ�)N�jC=~���}�ss|�eǥ�DK��� ++�e��ȶLv��.�I]����W��tLaB9�"ٌ"M��Xwҝ㔇El��˱��o�i���Q�^����e�ͪaL�͵�5F�b�^�3-�Ú�~o��%�U�h ++�uŻ�`&pT�*��hx���~��kF�9�w��P�<X��g=_�1��F��I?j�/��t8(d��̀4ݵ᪺��]�����2k�K����44k��C��n�<Q�Bn����H�u&� �\4� ++0���G��R;��Co��RJ�}u)��㥳0�L�?���J��A�P��Ξ�"��5�;K��N�4V&g���*#\v{�?9�D�K��A�V��pv.�!"~m@E�����o� N�g��K+6��td�PVx�z�2I��l�X9�I{D����Z{��y�в��{��E�|h�����6��I�j�����;���c��pX^�9�� �{B���]�_�*���⼧Q����%4��Ğ˦��Z��&����g«�D��GRֵO�� �'���ԧs#���v�衲�3��釋�����ra|w-��"�����lt�W�\e�r�ym� �s�P���/Z�|�#��4��$�H �2���лw{��*���7����<����������.黷g;�K+���)�k���X���0��=��yx =t�1�S��loOF~��n��;�ɖU���c��Yo������(�����Wr��w*S��9D�$:��Wh�K��)=I��;�9~�ԍt���*2f�g�������Dž���7<*s3��`s�H���� ++��m8ANW���It�DǗ���� ++o[���5���k'�SX��륨p�+�Ľ +~�L؛�,���� ++�����擤�v�@���6㢬��n���^IY�O�7���Q�2|����h�k��V�%�>WQ�o7�|Ƶ�@��z�J�oNT��h���O�<��χ>�����w��(�F-#M�>C�����,r�P� F�H�6��ㄱ�|��% �B�K����E���Ǫ->'�Y�v�����<aU���GL�в�_d��C����W�<�s�ү<�ro�η���|� ++N�ח� ����˾�����_������=k��r�Y�S����TÔ���(�w���Lϲr�4=����ة�E��yk$�}�?�>G�;.1hј!�0�d�`/1#�W���G�P7(%��zu�Xx�l� �?���ӕf9�� ++zLj���������7��������Ōh$�;{�B7�*�L�'_�ĒS��xd����wp�8lx���{�YGj�����#���^����N�k:3��*����:��3����0W�|�TXg�!�%��W��k�>�~l�l�s��+��7��F_���=ԙ3iW �z��KԎ���LJ�&Vm�5/o�����ƽR����i'���Ah>���wn>~�ǃd8nzo#�Ss� ++�����~��}\)�'3n��d�dSR��)kT�S�N#�8�X,_:w����2!��Y�`&3:>JAOg� �ё�7�x��|�����M��e�[Ѽ=�?�f%l��:�����c�6��\��Î�ML�h ++����Bb˿8��#���҈p����G�Æ���[�$���s%�<���4F��^�;E��<�![>����<�7ἂr�X(Oi=/$�;n���eLJy��'�?�a`�F���X"��#!rP����5�+��~����;����=��x��Ix��W���B���8y'�E�B�z�w�|��py�~��fL�������Y'���.y�8��� 1"�Ż�wO�@�R�G8��]n����z�n}�/��_ ++��+l��%�����wi��Փi}dRN��T�ua,�mM�� ��g�����P5�B�a]'�{�e�!���տS�m�`����ʡ���x�bxT��k�QW@ ++���fi�ݑ���*Aq�'��X�˰]V)�?�!�(4��ik��<�༾��D�}_ʄ���>���L'���η�T\�'��Z���t�߆RY���:�`q���+r�.@B�r��cK�#}�]�Y�o�����X:�%�pn��pa�)��R?�Ì� p�m�`�P�j)�a�i9�����i�c��&���,�������K�m��j���9��դ;�� ++�'���� �p���wKe�������� ���!��w��i����/� n*^�(ޣ�T���ŭ��_�`�^�>s����f��|�EF�A�}��h���_Y�l���/������P��cG���T9C@͓�x����@�iDa�%@�����mݾ^���!��A�,c����_0$ؕ51LA�x��W�&S-8fW�j��e���6���`w*�Gl�)���և^�:���R�fP�7��@@]�ֈ�9I�.���Du����@<�p��9ѳ�@���jW�v��o�e��p\�_I����R^�N�����ɏ��(��?�a�(�������l/Ν��r����̀(��κ$XR�s�$j�6nIo^����=�����w��XTe�/N�����j��I��>��|�<����+J������t��<�z7 r�����j��)�8����<(�T���%lN�+��i�K����+D�g��66��$���Z�hjX��F3��,�Jx(�]���O���zs��ξ��0I3�k�SA[Lx�Ӏ^GE1�R�c=3p q���g�9�[��V�9�t�#=w�w�j�T@^�}ě�4$y�E�<x���7��7�e����*�e�5�By�E����88 LC��|��%OC� ���73����4��2\neI��M��{L#�����ߘ2�A?Em�:=�����GQy3\kD?�@�e���r�@yh~:F��R�ǯ��Qn�����>��\uAO���> ++ ++�7��Ҧ�\��i��¯l"�K�� S���Xb?�z[�P�.���<��:���W��m]e)�g����ћ+i�.c�̳��S1]���b�?���zۧ�^�9�꩐��Ic�����#���a�h�.7�+3~��[�)��7��,���{�Wǝ�ޡw�0(H��PY���TB��أ�w�Z}�;UM?uvE:��@���_�LAmva���3mAУ�5�wd(��v�8�����!>6�" a�(�$�ʃcXe+j�m'!�ܥ>S�I�K$�/��ec�(� �b�(�R$�⎻���j5��%���c�P[=o��ɹq��a(��o .@���r�{)�����2�s)�W��@�E'uH�T����k*?���w�@��R$����^jSZ�L�=���1]����.?9/���X����#��Anr>�"�hq�r����t�2<D���$�Ѩz��d?��'���H�@ӂSx���F��~WE�W̢���n���� G�!E�Z����N��ʻhI'�(���8�<G�hb�Q�v��r��JC&1�O�r�CQ��f�͞,l;�c��9Qs�,,��"��_H�e*z ++����һ�/o�yiƼ6�����u���&�\ow�g�8�P ����|u�M�클���T&���117�Q�'?�;is�%-C)?��"�t~"�G�E;������whs*#uƧ�: ;�Pr�r��=6����e�v�-����2�Pw�ˠ��;b��#�Ƞ�OS�*�'Xsݲ7�|$��F�f�����y�k��`u�=M�q��1���K0��<�詿�c�/E�[��DS�!#hβ�'��h��12L@��i��o�r96�қ�&�Oə���˱�L���L�[| �0- [b)��]���<�Őxq��t._��ѻ ++���eb�:af G��J33�ʑg�&�R����P��#F�v���G&���9����QmQ��� � 8%��ĤɶV��3���_��и[XV����?û2�3p���lC�<|@�������ϭ�%?I���y�)�.��,߹͙���t%�!��Q-R)��1��h�:�o�Ǡ:��c��a�ɀ�� c�10$j".e�g�w��� � ++U^����~uS4�RW���N�r���E˛�.0O ��8�Pyl*K8�n둆%�2�Ƽ�(��Ξ� ����٘g����Kt� QdU��_����u�����ӏ{�WS�$��� ��]>`�R��Lfov�����?�#���Ik:BY�� Gg�N{s)?����hi��m�?�#*�}����<��s{�\B��'86����3K���yx����?d�ʏ�])qzh�ʪ8�!�G��m'T3V���J)�P��g����؟�N�V��gM�Cc�gs����Y��O�Aƥ�x1i#?]Zl耏c!=,��R�^^1��/�IД�yS_�:˸��T�����øP`;5Y����h!�x[|50�wt�O��R���O���r$�^�Ƀ��l�n����Q<���G��q��u_�K^x������_&�++$��/81��� ��1P�s�PZ�� ++Y�,���� ����C��S��9^>S` ++����ǵ0ÀW�1b}C#'y/������4W)* B����QT����e���.���6�o��6 �ҿ��ࢿ�0ͱ���#�7������B� ++�ԽߢiҦ��s �:}��y���o��I��I�����=�{�O�omM:�ry�/���醇�G��KQ��U������Q`�<�!���!J�}cH��aHn�se|[��ޚ�h�>!d��δ��o/��y�?E r�6+'��$x�eO�T<� ���5��J�j�~W6�=r'P?�d!c�����)zے����rO%O�0S2�Wy6^�Pe���Y[S�NF�/�6D���Yk�C�)�}k����9W�oi�3��p� �2���.]�ؓ��w�d�L�j=�3C�Wȋ <��QM��2�0���&�d��^��7��������i}1M>'F��skOR~��l�p�T�a�D�.��}��������A_�f��������m���s�G�A�B����A�0kR��E4�+pK��.!HC����G�[�^� ++����3�A�C VH�jb�S�} ++\-����w� ++{�4o�d\�7�}�\^��|Xp��Y��l��aL|+ 3�5WbL�dS��fR&��ׅ4m�j;dKs��&z=ʷ��|]������Z������4\Uj��Of5!յ�w�t� )0:�yw�$��_|�{��/ؿ���Ws��#Tz?��C@���icc%�3 ++��K/$ a$��! ���E���s� b�����| �d�x��Vl�R ӧ;��GFs���:���q�q�o�����q��B��W��qy/������� S�m�d0�� ��qtOn�Rr�2���3Em�X�,|��&���J@������v����&5��/��iQ?N�@�$@�._.��앿휎c�;)2�pJ4����8������_�{���2c>��;�3����J�x)����4 ++p��Q�D��1�A�x��J���8[@F�� ++��RD���?�hm���T�Gnw+�Y��͝��<�������#��&~�lقO�,�C=eҠ9���G�(���+��k�1�B�+(� �e�y�Ç�c�G]'��کW=�z��Ѻ�ݧ�h�n<yо����2�����)�+�O�=h`<_cj��W�=��T��R$��[Nn�ǃ�n�Ż+Mٻ��{��g�r���mnW9*�q��}G_����gVB͉0rO���E�w�G�`�D�3�N�2\�^�>�Wp ++#��v�E�Y�V��ԤH�K��dv�?����$"��'�F���7B���E��{ҷ����v- ~õ-��q-c������x\����4]�HW2�~�xbS�&�:�my-�*X�K�]�[�1��n���̐X�~����2_/̐�X�5�g�=G��7��RcWE�cU����J�@����$�tHJO�mO�dS��W"Lx�:YF.�Z<-��x���W��u%�둵b ��r<�^p�*}w{�Ov�;S�T�\�X���f��-��#'C.L!}.�,���H8E���*E�`�K�^�s�e�CQn{�"����-Υ7De'Tw�n%s1/��1�$e�P���5}rTAvS>�쬩�} (���&ƫIfY�N�4������%M����0M���ݼ��7 /�Ɓ>?���-p��E4ؗ�(�.� �4|>C�XZpl��]p�$��;�$Jܱ�%WU ǎXy R=�!��/���!�x��@��>�%Xz��R��t�����Q�)kr��TB��,���?Ũ�l��Jz�����`)x�%Ʒ�b�1ik>���O�=)|4��B��u��;n����������8�~_��O!M{����PW�k 6�E�h�,c!W��NP�b�+�y\�R��e�,�A��j�pb�cՑ$�^ �jH���d��E�NE%�o,c�2��ۨ����m�n��(�}JX��6\2|1��\�"W�"���!Ymv-�S��J��z��2��Ig-�ڸ�}���ץ�Oex�wj9Gx�*X��]Sτ`�8�V^��B�'�V6�)P�K�Tg:������]���G;e�1~s:jIX�~+���Sڦ�Nd��Z��V]-���j%R&���F�og���V'�Y}�oy�8�K�8����/�����qI���Q�d(�hU������yK��ŧ4�~S/����S�<�wǵ�A��03r�����z��-�`4]Hn�̲6bVV2�����a�2���~���/��4㬌�)��kѴz��;�a89�Z�)�����]uQN�n���0E� ++(ɯZ�h\�ӳ-�G.2�f-��f�ٟV2�GU�5k=A��Q�?�����9��'����6�6�y����m�h5/ �E4�{�$��RI|��e{̞�4o�~�W%����~��bY���"Z�E�����z��=�_��s��??eP��X� ��� �ֲq��Y��[���M��V�����4�ۂ.�lB�+��sr#��U��=W�mDƦ ++�g�y��巯b��\���%��t�E��D�}���8�;m��MvK\w�ڈ���_�W;�<�D��~�2������ ���7�^�o�z\����W��̋�N�c E\p� �����_�R+,�J���j�����v ++z�R��#N��U��i�2��^�����Λ���ԝ"|��GR��|>�~N������_@��+DkM�>��!V�����\Ks�Ma�HZ�o�Տ>8b���e���T:C�~���,_c\�"uc��E���3�K�$�9�M��|"�ʼ%ϙc(��oKM&$� =��_7�q4��<_L��͙�~�������)�Ku��Ɯ�����,�1���!9s�Y\�"�5��ߍ.��D���<��SxJ�_���Ox[��>B�ɝ,Lp�t�O$iV���jY�`e���5㤳��a%��Fs%�4���lE,�r�Z�to�n���������Ѹ�^Ϳ�s��,u�<PLN�Ѱ����G�����8ಘ ++/F'E^z��t:Pf?�u��:Y�e��]��|L넺��9 W��ZΘYn�� ��]u]�,����� ++���z�+k�k�HJ���"*���r�czaG��X�x����L�)0Nˏ�c�mB ++E�t�# �q��s�߰�������s&�.���[X_��1�����Ky�t�m8`{�&�)�9%�b�^V �gj��q*bJ2�t�`A�h�1����)���������5���M�z*�He{��<�H��.�b�8G����8���±�����Z��B<8�I�q����������"�7n87yf�]b7˞̩��w�����@���n�w��N�<�`GT�1�τ�R��9�h�\P9���VV�]���D�G��?m��r��-�N�����r����4S��B+����G��>,~GӼ�0�"s��V�߹��������0�Z1M�8�JB����<���^~���fB��K�0�+K���z�3m��Q�`� �E��tT^���S5-�Ʉ!:�7\��6�4Z�w�&^��+!� �S|?U*V�Y��Æ9o$A��� ����.��n@XVIQj��H��b���q�P��%�o(`��*t�Yc��C��Q<Z}Zt�Ɖ�����^~(K]eH:;f'%�RG��x�ec(�j�a���Әv}7�D�⓯�����Ef�����|$� �ij���O��'>���n6�4�(��ã�������qn�6qf�4�"Oئa�o5k�8#+��{�(�96�Ms7���Q) �ߠ�o��e���lc/X�'�<�� WVm��T��*2.�Ǯ�m +K�g̮ �XHr�7����N��yw��N}��?���7=H�08�T�TY�(ŀi! ++�E ++ ��1�/��mÑ�hY9 3!��IT�"j�"?��t���N�<"G� ++`&�/W��R��_�]�Ch^���?�7��ߘxcs�7� rA+fh��}L7(�wg�?!<{��{��������SM��M� ++���4��ݔ,Cg�.T~�`k���d�=���y���W���8��A���-,�r(X@�R�t�F�$R�=���m<�_ݡ��_�G�����f��F��.�<�Dgﲁ�Z��Y�e-�<��sC�!��ʵ�+>])w�D ����� ӿ�G.O�o+����aST՛��ʼnUvkSū(E�v="���^_{|]����� �����Ӄǂ1�)�<����S�w� �/�Ֆn}:�s��D�*�kJ�$�9���oc���A�r3Fk��~���rˇ�A?d��!�D�m����ߥ]4��r��88��� ++ڒ�ܼ]������Q+\��XC�[�櫉�R�c��I���v�B�V/j/O$}0���d>�2��C��{6V�S�� ����h8}|K`Z�~n��S0:�'%qv��j1�$�9B�l̒ ��^��u��)~P*��e`~�l���Cq�^�r���iY�� ++��@z����Y�)������M2�����%����#n�A��fq�V�#v ++(c��XCOƱ����� ��uǢ��O�y�eH�])2��s3�w��Sঋ��~�~�p�w��(+c�f�����!"��uL%����Q�"2��^3GJ�a���j���@̛�B/pW)8]# �t���$�1�iX�'푁c��Ё�'X����l���aA�H5�)�̑zĵy�Ko��f��y��+8� ++�h�KЅJE��̲�3�m��>>��k3�'�e�t牧v����h" �=ݾ�GjW<�I|��^���^�����,�w�K^��[bf�^�>ݱGHJQ����('�>�}�2�^�3��Fe����7����hj����!��i���o���nJ�x�5��C"[��;<��*�֓d8r�GY5���|ٕ?��=+���λ�a�C�u���k�l� L����ȻΒ�{~��P��9G��e�dd�)��5l`lh�(DN�e�k&Ѹ�`qAC�4(79��`�^��4\L:W�<��I|���&�U�1�)���!Zz�{�ڨ��rE>$9ٷ��a&����wܾ�-3�����f��eag�ⅶ���L�t�x<�� ��ƝJ#z�(8�~�1��<Ʒ��2��kM���γ��#5_�S��T��vn@������}* Ɲ��1�h��cM����>A8�*K�08?�� @��<\3{M@f摥�� ++Ÿ�j�r1��n�#�/��i(MDL�RƉVzH�ߥ�~.#��Q�6���N�m+�io�7�es�� @g��W�k�Ǿz���2߆����$3Ҵ��Lľ^T��_Y�5�k���, ��N{߆<l�B�A0�Z��^~��#~�O���ύ��~����Y�q&��-C���H�����LRa 5�N�`F>[1aЌ QlJ�y��P�*E�h�r���|�c���������Q��H-���jGS�S0?c���<����jqO���}�A^lYV #��5����?&7��t���ː�/�ݻȄ-�$ �k&U�����O���PI�'��W���ĚV��>�>+�8�!g��3���Uy��������<���o�߲�<�� ++IYI�Y�=r���b�rzh�E�1�G�Z��%rqe�t���ɀ�=X�킂��~���)2ٯ�;'������H� �J�����<k��m���~\D^����TG�� ++mT��HF��>���O��j��j^��������~��?�/��D\`?QN=�;��W���}èS�C$�=���2�m��ieeP�#�����K$|OkʮڇdQ��&����.�&2��1." �����؞���IcZ�V���/����A���r'�B�&+�/%���L0�((�T 0��r:_� ���N��z�Hԇ"��z ++��;+��⡤l�a� m�~��(1m�!�������l�Fc�O��L��y��a.�[���x�Z\�ZG�Xk���b�oR��Bd���9�S4+�amb� ԅ� S�6+�45�.�n����@�'�U���2l�w�>8n6�S�mj�.S�e���ǔ�$�K2�1e��fA`��T����9�EyQ������K�k֭'�B�˽�����p��"+H+9+�d�g�`$D�2����p\ �+]�ˁ�I�>jK��f-G��i�s��;w��sG�#uȹ[�V�?�E�����i��E8���J����P<"����A��$����cS�dMNƷ��Q3�g�:K��=[�2.~��;�;ڿ�������{�&p�c���3�Z㴿�/��\s{����0f����S��=�e�QqD^м��;�w�l��v3�$e���=!p�1�#L����/��kߗ��}�Q�/D��LM�#[�Г�(ޑ����I��G9�l�uZ���}��L�����i^��g+�ŗAy流���`��k��L~{f`r�R(q�ZPb��[��'Z�W��^�9�G]�ʙ�gD�M���u�3��1�~�z�5[��������i��:�V Elwd�$*KXф�@���J[`jJ�8�F���B1#�m���9�K����8}� N� �&�y�Kv�4z��&P4�}H��" ++�?��>�q ++�*m��@�{�2��a{�s�Ba�\�>hȤ>7Ƅ�ᡫ�@䵱(��Nu�d���l_����1���<C�� ++x]U���� /:m������ uI�+��7�ܠd*�i))����$1��mjuԠ�E�|�eYU�O��gڨAT�������rf�u/�?�r_�y�"8qL|.'u�Y�-�&��`f�Y���:�C�+�eAktg��_I�µh4��J�xg.���-��ɓI�f�_c��mv![�s�"�C`��vn����&}��CԮ�Jg�^�$2����zf|p|�ٴ&H�OV$b`��=sމ }~�Ƣ��Gy�賍�/@�T숔����W�Q?�}D.,�(���"���Z���~����H�L����6���D*,�����k�^Է���{E :$���@�P��_�>3����|�f^�B^�1�����̀0�]3�l�6����<���� �=p��b��Ȍ3�aWˋe6��ݴ?�u�5/�̳�x��c1��>�����������j�F*4j���|�� =�p�2��0߾��[L3�����H\�(�ਪw��;��|�l�O� �S��<�_�f�[N:��������d�)�� �e h� Uf��S%p��V�g�3�7ԃ�]=��2[�ɖ$ƿ���˴X�O��T���W��3��fR����_�=u%@���!.�j��T"<Ġ5$7 �Z)X�՝�)o?:_���¤R��pt��7�LV�R �c�݂�.� �E���4�s�p\���()� ++�a���xt��n�W JUHΞ�H���R��K�1�д��S�z w��[:��c�ψw��L��^5�<��U�-�Q�G�5�RR���f�>f\W"0g.�3ɷ�j�;�:��K��ٞQ�G �w.���r^�N�.�� �]�bG=˝{UF��#��ٙ䏇t�9W�������䠈�2��������(dM`v�m4��;��u!$��x xw�xX]�ϴ����n��&8bk :��~�2�Ƣ o��l���� �5u�������&��qt������ ��j��_ܑʢ^@H>HIc99��&�+xP�ͤU@z�x���o�GP���{D����i���@yߝ�HB5�x�e ++2It�j��~i˥\�iC�#�m�m`$���~���4�y�x���\L*^c��i���p��ȑ�O³��yU�0�(=��?��z�<�"���S���/Ccg��2]g����q��1�t#L+3��0����o)zQ�?>Z-�(1��R����x��-��9X���<�C.*5ݰ���7�{r�h���ç��ms��k���N�f�v-o�����֬���]j�M���F>!a,QH�^K�礳�?���cT�3�x���>���_t�3/����M��E�gq1�Y�������N���M�:->zj����#��'��z}���G�����V�j�������y2���U?���>���o�uwb2���Zʠ��m�����%e���;_�p�-���9��.ܲglU��RhF$�:֘��9��ޡbn)�.�+>^L�^4;����F�K�����{� ��99�r)řp)r��{fA�N�Ry�2�P�2�N���/&J�AV����� �ՙ��3��m�S����(b�{���I������QT�E|-�8W�Y���[s�n��r~�z)=�ҋ s�Y�6��bM4�O�k�L���ni���#� �]y~�+�W\۾�n��]�V��|U���w>W�K�!eyE������@382���VJ���1;�����Po�1���' i�`g�&�벌!~��0����5+l�M��h�]$�8�����Cc��c&( �S��Qf�R��\[d��p,��xTNz#�)n���f�}�͞2��nF�������{���%k�ë�hA���-r�y���.s�Np��L��k�&[�`���wBV��Ϩ���XL�r����$DD�l0���)�ҵ}��v��N���#A���&����F��#�W�%.��0Ts�u7p�s:E����O)�;�L�fF��VK}����d7�$]��m�(�^u�@3��H�@�#���m"��ڷu�u�Q� l"MdX�%�6�+(Fu���G�K�y)wf�'�:��J�Y���M�FQ�'����2{@Ζ�f�W�Dsk��}\�h�DQ�d���$`����k�/�8j4:��<�����g�#[1S�%Ě�k]y�AQ�������x�t@#<�J�^/� ��ڸ,i@O��e��� ++�;q!#���@�@�!���*����8!j0_��t��#i�~J�M�= ++�F��Yi|E2M<���l�:3��ۇ�Br�Fs��y��p!:�Xh�'mG=��+����x������It��B�#%�Ú��� �I���ڊ���;�|釷͢�t��%M�\�(�^� Pi���+�F$.��_�0�x���ߟN0'�������1�N⥥81�]�Q`�M�U������v<xOX��?0�D@L��86��A�}�n��B��d.s�Ә����;��<\��eF�)��Ep/5J2����R��f���>=ֆO(U���ס�%hL��V�����k�lWw��ח����$�k�wS�����+v���܈duUF�CT���&a��9Q�B�>_x]m�M�t_N� ��Q�O�J<<t��-�70B)�@�Z"�����k��W x�-t� ++!��~�s����������/��RB ����<�Gv��R҉�>�����ωT�tw�ݪ�z�_c+��4B�7>�� ++}���E��n�Wd��|��j�_.����?<T�Q���!ż��ǐ��;/_Bc��ʟqYUw����`q����Q�C�����"�m�hZE�#� ++��{>n�! ++-�N�*y�6�GF:"Uh&m�O�kqE�:<dmZsrWz���5���0s0b����"�۲��!>�Q���TY_ n��+X��i�c��qj�!��&8�vu%J?��P:�}bH�*'����X�}"��`�M]�<<9��OG�D�l��6�'byW�p��Y���Gh���y�z`q�B����3���S�r���@���'�5^�@��"Y1`�| �6^�6D�2i�� ++a+0`6+sBP�.���w��ǚ��Vv����LB��f9���d�� ++Īp�<�$;3'�tq̼�Yn�냏� �%��e���[%pm��0���|A�응�h��<������ҏV�,��pT�G�Ib� Qc� ?,@z�W��������yT�ehJ�y�aO4�.���*���Z�?1�'M��l���\������%�V�Q�}��#i_�u(tb��&ѭ�O(�&��~�iv�Z�"�rF��ԺL4��/�����2@��d�̡����"��A�A-���������#�e��U_.,�u�j*^uD<�XE�3�������V��i^\oE6�8�q�n[�� dr�.X���iãY����a֢t���V ++����1�O���]�_(>s�bQѡ�ʷǠ/M�u��<B�/R�H��5$�Q��O��4�0r�]C�Ey0��FO2�+^@�!wXC����XW ��q&�r��D�:��dd�&����I(v�@R�q��t�i�V�E<���Ԕ �K`��l�W~`@\vǤH��h�D��*TC��Ф�{DP��jY0m�F P�͂�,��ڋ�3�� ��<�\Da�!xǔ�j�K�����S{ ���TJ�w#/,U ++�{�]�"�9BL8ٛ��8ߦ+ϮݹڜA5�8:T����k���O9�Ë5����H~�1�rDK�"�7҈�����*�z�%�e)d�X�&����z/ȬP����J� ���, ++�@�#~��uM�Y��(_K����4�;��KmX��F�cP�� �U���*Hj|�CN}:�>HK�F���ܸV�]��z�D>�1����A(}S���9ŭ�uƒ U`��1� }��q���U�٪�XE�K]k��B���A��|K�0�:r_��fAc�)'�xFІ[H����7sV�h'|�Z�j���LЩ����_�nS3��@d�Y��n���������XN�R�|\,k�ϔ�C;��ԫ��$����s� ++��3WM<�^������C�Ru�o���_(=:�G�K6w٧_6���S�:�\��u�=��[O�pB߬��G���0XA��蔄o�&��c�{7!C���xc��c��<1��]��f̥Ri"��G�e&)y���wG�W^�\���r�p!h�6"�T��ꂨG1��$�"�9'�aa���8����q���}�Z;�qޏ����R�5�������L�G@�V{6g�pQ���dՔ�p��r��D~����F����4�_�St��Y,�o��a�R��#3NF3�Kp�� ++,��~2㛉��T����*F�[�m^���^��A�zt2:}�筎�'\M�W���� ++�r���e��cn�����ՠ�������}ȓ@Tm��� e���{z�ʧҧ=�:���K=����i�*�P�����͌���I����~:�;�eý�<ƫ��8�?tqu���A��|[��.�`��;�C�,�&��]�u��f�ˆ�E��ȑu�����fN�f &M����cS%��� �.�sce3�e��Xϑ}�0F��g^^ŜpBo��;I��b4ۛٗ��J0:S�{��=hc�K�9ICz譪JT8�D������bMV:|,g�*h繐��{nҥ"�<�c��_�a�-k���r������?�y~�Dw0�&r���-�N�_�6�d��� � 8l͙r���]��0�\�Pa�[/<��ۜ٭���6�;�7�/�+����֞����9���Mb��:��r��^?Ms$rk��H� ++U��g�~��F*hc2� Uе���v�N��R�V�!6 M�'�VMC��� @��r���E���V���ois=_%��Wŏ�+0o���ۧ�����\$s�:�J_SiD������)���ix��� !>%��o��e�RG4�Φ .�B�H��U��f^�P�Q~��V����A&��Jz 8�ݹ��D��?(�)�����4|;Y�p Z3��X�]��+v���H�2#������}73���uR���ؑF/ɻ=i�����g�]玞�'���s�l����;U��A��� ����kA�F�V���s�ȳ"���\��ٶ�� l�.\���=��9��ƚd�4�r�=M*�}��c����I%ql����>��;����\�x�F��qju����Q;ϓ��椝���o�?����@��}ߕ�\��ظ�%ؠ�w.8b���9!#�yܝ�z��j:B��ٻ�i�'U��I�IIpM���W���i�(ʹ��554�ֈ�P^���|h?it����%��|�A-�u��q�����Q���wpr_�"�#���g�#�Y�+��T?���+&Y��#u��:0r�_�_����IN���?����r�x����O������(��*��`û+Q�9��w2��r��\9B� �Y����e����Oa#H���t�1u�r��9���ݸQ�M�"��Ó"�!���=��H�!|�/���#n2?�����*�؊(7?pO"�W#�ʛ�YG�y.\�x.�9M ++�b�n��M{l�����9U��߂�4+�����x%��W��r���b�-���l�s>�B_����FΎ���Y\��,�9wo�TT؏���+�����L�9��������F��$�ؖ]`���� ++'0FGl��a"5���!�Ш�?)�z���*Pc����(���ѫ��2��A��<�'x��k# q�d������+���E@�S��)��Y�OhM͘�G4����]�\�̳��&�{[�qa�w���O�QH�3��^�O������������-��C4�jvm��t0�Շ@��v���W��a<YP,?թ��md�����8�7��7SU�9T�>Tw ����r¥[@QVȥ^�x�D�媲T�� N�� �Ț�_�F��9 ���<éP��0V�yL��[��k ++T��i����j��x�3�<X��Cx��]�R����H���K�4�� �����#�"i�,��W��bx,X� �h�<xo��©���G�Z֖磭�q���,r���nm��O����j��r�z��r K<x�G����y��)|=`� ���/Ι��21���;���k+�%/}\m�X~D�r���b��EK]�P�Z�J��k��1��Ѫ��NM���7�U����t�l��a�if@��?-8����v�rl}~�9Tͳ>����Z�J���)(���抽��E �N�U/ /Y}/=� ++���jUb�q�Hp��c̤�9�^ #�`㗣���i���$.~������R�ͷZ'3Z����j<i��e���qn�3/R� ���w� ++�&�4���0��q5�;�q��������M��&�� ++����Tbi��>�p$4���ݜ�/�m�#��@>�g�>� ++�<�/|���D��~z0�q�������-�qm:+��������O�� ++��+�tfl�#𣟔5k�9�Q·Cu�)��_j�?�%�j���w�X�>�2��^?��n;MAT�r�W��3���0]�ӯ�|&!S]���&�v�'s�L6d�c��kr廚Q����5��D�P���V�W<���\�".�ٷX���p���#8ρh�g�"J�tP�z��uV�p��ϓ`���ac��x��#��c"_ �܈o=�/�1������}����4����͖"����Z3��)_.��y��on�q��.�T���욘���/��G`���:� ++E�Vp�֊��k�iW ++f�{]�pZ��*̅"������#cN�Тs��A��*��,�of��fzV(`��%�i�U�Ew��*�qҷ�:RH�Y��+����箴L�W&R��,�����m֕C�kX�S��Ѷdep1�U����|)�4�p����|�K��'����%G���0xƻ�f�UK9g�ʖ8ߋ��;l����O���c#� ��n�פ� &.��v��G���jX�>u��C��C��F�_����<�?�+xɏ:/Q��e+z���唺�X�[YI3�4�%YЎY��앿އ+ ��ԋ�?��;`e�C�!^~�ߞZ[}��_>QC������Vα��nO����b����&�$�k#��z������@���I`�-NY�..�iG�Xs�i ++�p~ĺ��`��p�����nw�ݓ ���GXW���#�qf�c ��`W� �(�y�M�^i���6>P9*N}\"�f�$'l�����RO��?�@�z�������]�ڙb����'�R>U�N�m��d��m�h��1��au���4��(�!U�6��u���n�c2�o�}b|������X��46fܽ����-� ��D������D�_�0j��f���mV�حO��cybߖ����AI� ++�2>X\��1&�^/��eZ�W�n���N�J�������|�Ը�4�rL:+-��Ͷr�J��t�q�7�b���+�?e�1Id��a���P]�]7�K�&��Y��fpr�@�Ɵ�5���� �y��GE��PHib���P�B-|v7�*�a�0������W�?ǐf����W�RqP�81OtH �e����~�#�'Ӌ��웂�����`��e��1��e���9y����TP�S�e*�?IQ����f���� e�`��J��y`��:.ЖN�X3% _��AD�nC^e����-���[�<{M��~� �7(�!�V�L{���V�'���+7� Ů������i?���&��<�ΐ;�,^'xIS���<CLȻG"JJ���7��&:�z��n3��S�~���g��uB��,��$�G��U���ϵ]��\wv�W@j��J�'D�)組��M�M���K��p�K�y2=�b�'7({p��k��˛cw��/1<���<�D��(�K��� ��]�;#���}u�yiG�1CCD���_�����scy�*rN�f�}���q��[�"��4X*����n�;s�kیٿN~tr\j���,x����!M�?͍�+�@��@e>#̓ݙ�����vG=zp/!�lI�b�Y\Qf,�ᐹ?fV���! �x0��l���E�:�݃��ʼ��\�}��o^;#4^K,P;�&�4�dM�ޙ�Zh2[^mk����D���� �|���&2R,?Vzv�5��%��룛�Yl�z-�[��o�UE�6��X�LYq��������hq�x�P[�XN�,h\NHC�yyM�1����ԏ|�3&A�`T?;����~��R7 x���ѫ���mVHeF�'�Bavn�Q�X*"��^箾�ט��{7EW��Q��_�09R�O�r��g�����b���(@��<�2>�fq�g^n ++`�{��c�I�!�# ��˴ �EM�*8r�[��4Λg��@Q|�����*+H��S�� ���:Qy4ߒU��2��ca�"n����1 |�bY�\�ë03<�'w}�kY^c�'R� ++X6�c~�~\�dT۪e�a����KU�&�g��?)��GSd��\��_Z�/m��[��;�8�h�����o�3�d���㟵5c��������s������� ++�i�$X��DO��x�̗���?����6U�RkI()x����?//��^?�-u�0�)x`���$iӎ)Ib���I[��g�t��{�a셁��H��q��-Lv,� 2n�!Dtb>L�gQ� �55������-��Ù�wn�gg$>Y��{ЕE�fZ6"mV{��4�-�N����!�u1�0vi�S/�o���Fe��w����⭇�.�52,y�v��˚+0�C�A�x�N�2���rEB�îi��[�/�=�������ҺX��Q��n����2�ӒY��ę������v*��?>U�2�s0��7�G\b�̔���-��%>��d�d~)-FqWO4�2<�3_m̮�>� '��g[4c�k�A�3�_#՚���sn�n��&m�q��<h�?<m.�q��<,�-p�QB�X��~���K��-�eC�}�Pj���́�K��N�I�Ìv�����?\J�kOf�h����:;��rIK^�e�¸�d�)�`��r�K�^v��������-F�gns�3�4䲟ьEw�xX����lׅ��@$Ơ�9xh�7�����7Q6&m���_�ew�x��%fsY|%�6���W!�U�m��fS���G?�������:� ++-$�ǷZh]��پ[����,38&����`JKV@��>Fn_Vg {��YG*�7�^?\bk��b�����Ի�HeMN?(�%<� Y��8}h���J��8�G?�ˮ3�s*mK��5��Y��q�0` 0p��E����q_���\�L��|���Bs�;c��~�bN8p�8�ͪ62��Z��ժ ++���>m�6ǝv~�m�!aF[_eq&���ل���l<�0���H�"��!\�Xҭ\bNz`��z�>p�z��x1� �����a��i�w��nyZ�ll#�$��wrC_�p�5?H�LFQo����A.��®5gVû��Bv0���b�-�r��>����4Xƻ���erU]�$Q�]�Qy�� }�L��V�|/&u9s�ټw$�4�L'Z���3���K�E�yP[}��I��y���i�"�K���`�&k��O ++�![�3�7��A�-��I�R�녊�Rߋ0v���-/L�#w��Q?K�:nu�y!���%r_���J�F��A}��[7k��,¥9��r��ܔ��Q��$�����g-N��4�1�.Č�%���� �F�Η��aq�$���y����tod���gX���Ye'��ޘ��?]�)O%u?�G���:8y^I(�ٺ?�E�^�4l�d؆őޒ�"�`jp� ++F+�����Xm�d�K��ԕ8�-P�8Č�\�#,Zw ++k��ڞ����';�| 2c���'yf��_��.�(�}�j�wB�O�]�CJ,l�ݓ��h���xc����m ޟ����%<qh7"tA���p�;�s�rˉv>�m`�m�㾰C��o7���r)jJ2"8Jhjw���<f.�f�/2�r��Ȝ[��q=�0���f6�y��a�(��11�6�� �.���@��q������Ǜ&c,���lQ&�QYPHo���*�1��6��K�2�Of5ˋ�i��~����Kf0,lŋ I�ԦFe�FF�y���z��-1�/������!�����z��ˢ_�S\���$��|G$Sf��k���M��B�>ZI�D���*CK��ɗ��Qޱꦍ�G�N���w�##�]m ++G�{�w���_]��� �_��������D���t\/�rl���_�-KȒ$�g���E�D~�r�����m�z^x��?Ǎ�.��v�xh���u�H��$�����C��h��AY�S�ƈ]_0i��f0�Ǣ�~��Is�� ++�Q���3�z7�U�sy�g�X�����[��>䀙'�Ϯg2����nv�J�o��PM��>1=+Mc�M�2c9�/���)lj��AO��痜��#�.��w\��P�áp��!pW;b���W����k�de������Y���k��re��)�'!hYb�,_f@���t���1�c�뿼���⥔��<�@'Ʀ�^,-/~C9��eo�`��"����j�Z I����1ޮ}|.]�3'�癕�;��Y��K�F��; 0v����� �L�<]�B.��ȑP���Raa�wJ��|F�҃��vJO�����VU!�tv��➊�:�A����Jr��2�#���e���3d��$��UU3�Y__�+,�GV���0�F��W:n$L�BfR�,U�*z�];�өZ0���s��J�x�{?���syO2Z�� ��`u�[�R��%y�x�ӠC���T�z�,Y!w���c��<UHu���1�b��w~J�� K�o�=��Y\y�k�/b�B|L�Q��ۇ��b�:��tR�Mj��ָ�<���dz��9��H|�(�ߡy4\l��k�c�����?�y�Ei��˜��h�8C���=����2�*�A�e�@8�9X��S��>��������ˈ.����,���I'�O��w�#(0o�h� 1]��ܭ��y�Y����e�I2�85m�y�*�'�?��j,ΘU`��l�w��=T��ўY���>Þ���XӜ�+��Lߥ�.0�6KNN@�z�-Ǧ.See}R�D"�au����X�4w�Ѧ���`Dr{3��[�;��ٗ�������� ��0-D#���Wuq�/�9���cy�oX�-�\�!؆�B7Qhy�mA{�_\� JR��1�a*��Bl;Wb5�}j�[HiW�;�?-w��9�(���8՟�Ec�7�$�ǥl� �_�~=���b�v���^< XL�y��,�Ϋ�a���>����s���D1����c�a{�.��VZ��>� �$�6���i��Q-�Ĩ�;,߷�)e����!(o�����1��ק�) ++����:��"'�)��8͌�(qFU1̜�b��|32�L9��g�������v���/F|Ƽ�X�n���x�o3�~V��N��~�qƲN��S��r�.���{U���t��_�:V�(6a�� ���$l��Lܝ���,���pj�>,7��(T�����k�X��8���/�n�|�� x,��^��(�ǿ�O�f������� ++���1Ѿj���1F *��Tl�^�D�h�!3Oe�H�-��a?p�'|ݚ��"��C�=��ן���UŚ*�:,��/g�ɓ9kM��Z,���M���4��L��R!>�6z*3��q�C1�g���@N���1�n����U2�+��~�,��*,�=Ų�Sz������W�|a�."38��c����4Xs��`,6�c;�]�'�LXl�ʘea��d,��4CRc���_��r��Q��,'�t�)�`�t�rk�}�z�:ƕq�Ө��a�����b��0I�R�o�=�.m}E�Zy��E¼��a?Ovc^K��6i�n��� 6p-C�`M�ULRgk��) ��If��y8L� V�͊�P�ؒ*�<�.-��~Of�8�>�^��^m�*�ۆ�~���������İ9 |��j��-w�㉷t$��;�)�e�-�b�;T���É�L� �l���[�Y�M����8pܬ���e�UOiǴA�͛��#L?0;����7�U�G���6��%����CN�x\⇳ ++ħA�ǖ3B����d?0����Í+~p�i`[)H<9xص��b�����|�ca��������.�td��m���8|�Q���M�����YU���9�l���sX���j8���f �P�+ T� � }x��Vk� ++L�+?�������E�Q�E�-T6n����X�ӗ�V�l��,3����|%�̐�h]N�"� u�ւ^�v��fD�0Ie% �Tt��9�*����b�p,NL9��X��v���5����{0�.vr����6!��N�bb���x�p�ƍ�S�t�v�c1MF�e����٭7�mN�0<�:]BX��G3��F1�p�$ �f�Uら�5M@/��9��H��w����l(}e)J�Imʈ���;�J*?2�j�1��X��\��H߇#�tF+2����ƣ�b8����v�k����+ n����0 "Q�l.Nϭ�_�l�{�i֠O3��pF��5]^��| ���M�^%�7�R|!�Jp��F�A�!铁�L��(�� �ye�(G�2j�4��N�Z�3�A����2.�"�pb*��]9�a�L?Z6Pj��V�n�*Si�F)������B�- \gx;ݢK�iG�9r���*&�|8D ++��}�X��%�q��,y�^� ��ύ�Ҭ ++'6{�㺐Z����y�d�t�}�� �u�=������)�Q�@V��vv�_���]i�R*��9�e�En�yl���ҙ�~!o�%O�Ҿ�,�����5���ڨ=e����$h�o!c$���3�z(Ǭ$� 7�9���l��W'/�� ��̉%�����,�$��[J� / n��`�6ls{D���Ay[ܻ���Y6�8��m�Q��G3�\�������'�'�5��6X�֕��P�F� HN��I�.�љ�L1���0c��|K��?ȃ�p�ٚw_x��!V����\/�� �j�dI`�͔��%�f�`��4��9��m�l�����Do^k�(C�9ϋ����q��Z�����]b��M����������}4��)������a�.�����/�.'��c5e6�/����=r�;�g\�o��nΰlXyz�/!�*sK>#��!c�����Y�������#(a�d����1���9_!�Ӝ�?�c�hꂕ)��Y�T#$ ��w:�u��Pͥ]����C�ŧ�} S}����cq�&�P�68������������y6���qO��g�]��_�-��O�ˊ��%FN`���\������a����_��G�O�p�n��X ++�8Z�1�m�����,��]�Ԍ��k��wMKm���b�3�Ua�%�g�p9�1 �Fd�������B��f4�!�i�va����RA��tQ���P��H��d!�S�����f�0]�e`�m�@��,���pv�b��ګE"�0�P9lk�a ++☨ᖥWJ��v!�$p�D-�:��� f�F�rY������=ΐ���g>}[R���&ﳝbYJ�4�� ++[�w��e�L���ڟ����2P=����� :N��ͩ|f�*1�����P�����Ĕ0*h��m\"��{yf�ɹ�K�o[�w��,�~:7w�i���G]�uR�3#/ҟΖ���g������o ����\��{��v�M%�ǝ>a�=%+��s�m�f���c������ع�SY�,��U"Ŷ��>a�o�eg�u^�� ��w`�k2�M��x�gbW�ϻ������V�����Đz���z�<����/��uQ/�h�:Vy;,c��[�⎎�.��1��,@��n퓦��zHr���`�여� ��N�)= �� O�j�Kg �ӨyI�Ƣ�K �7�g�i��,�C3��O%&�/-�:���2D��:S�)K�o��Χ��1./��z��Ų0��eQ�xX��9���X��.����E4��f�b,�31���cݰ@���(�zʘ�p�= �̾�� ++0����3�L?a�Y�0�%����C6���t���OꊴU���)�^��J�qE���Yf_�Z��w�@L�>���B�t�2�����%�:`��\��7�˱輥���!'����U����s�T��Vx�E�Դ�C���]����J�k׳me`J�D�]a%w��r�1���G/w�_0�ǎ�� ++Ï ��Tg��*���y+ ��g���d���9ܠH���:�x�¡D����].=z�4�\���f@McX^�qEq(�.�����yЛ8�W:�����rj�o��`�j7��0�$*���<?�A:E�?�a�*\�:�Mlv�������L'x�I��xs3.���:+�z+lbx��;%���3#��1T�I?͋�xC��;�-*<8����a�sDk�r�m�Yq@'rV�οE�ܐ����Z�.�, &W20��=}?����:��ηq�̵%�[�����"����˧aY�o��~��g� ����[�j�ݜF���V��8t_����Nm�<��9�P��qq�r�k;�7q�!�z�S�8�$�@�����7 �,��\o�\8Ϩ%�� 7�QU�&1��w͉��� �B�pkh��}A��i�3L���χ�-��x?#�L�����0��� I�.�sC>�(� �3'��VK1��2�'��X�؛�hx��e�����������<z���B�@�� ++�ȝ@$O��.��#%�[�g^�B�+Ŗ���{��)�Jn��/�7ms�K���M�&n ++�n�@@���CZ�x���%�W�Ej��L�˝h�%HA���X�9���BO'����lOC,X,?F�x�fU��X~_�ԙ�ʷ���,����ذ�5�gm���?T��U��f�tƝ�-�ڦ�:\�[��t��U�`��{"d��+�.AY�jq�&n��s�x0�KT�E�.c��>i��v�ER�*��v'��Ib��� ++Zh/H�5:}��ui�cSh+��N�Z��-�D3���:]�(h�7�F�ʢ<{u<Q ����uAE�a�Q����/2R,M���IG�=`z��i���ǭ�eժ�����UB������X���N�*G�B� �N���m�N��.N{}X��?C�`%V��#*c`aE���b�^�rf (���_�ȜOM����-��'~���,g��S@��̿�v���k{:R�i�Z�C�<�9i��p;l�T��-8x��Y�s���C��w�[]�Y/V�6r���L,���U��s���2�J<^�rQ�T6gɢ,�j���c��OF��AvD��m���f���S'S�R��iU��m#�9�`�]�����x�9x9ӶH��쇅��l(�@N����v��.��](��ڣ�wh�l��g�6wƄou��>�yNԡ���F=�.���to�`���ı�M�|����weu���3g�c�2*�gt� ++���~�ڥ$l[�eE0�Wm��Z�1G�� %v%5��7.Zf3�E�-���%3�D3ĔF�Y��h�}�:���Y�=Q^����FS�\�s^}�i�,�kH��%�prI����$mp��~��;�dSZ;�g�NP��s�9���ʄJ��qG�ӂ����ֿ:��DZ8�W����ӒG�M�ɳC�ԉN�^� #�[{���� ++�䮑z'���s�H��2)]�8߮O_���`{�s�o�;9H](���W*��n^�xT��J����ۇ�B�=B,����Y�0��z�v�8��KE�Ν�}!h�ݛ�IZ��c�ш@�&�����jK@y�GyW����3cd�o������&�ᵢ�����.av�#$w�F�*U����/~ �m�]��$��S��O��wNZ��y��ṙ�3����m3h�X'l���A#��@����[�q�B�3"G�:·���@���M_���9�A��P�B8T E�����8�s�f��k�v��v��9sZM��m�������,���H�s�w}FX � ���)��t���:�|3�\��`����,t���t�����w��s75R��s:H�5�M�Mps�d�����D�`1�bu�,��N��@�z�r`)k� ��v�M���T��ʮ���HNa� �Wj�}�� �b���S_��=�?J0�fyv���� ++a��GI�M�=Y�F���$v��u�NC����~��U�W�~���6�������EɩFN��\)�}p���kn���Q$Y�}�XB'�0���}�o s�M��KT6�����{�K���@2(�9<�W��ی���x�*�u��#�q5sm��~� ^;_=��#iZj��T� �� A�H�C�p��X١BvS�] U��ޥ���H������-JސΫc-n��B����Hz�"�v�l5�v#�MW���K�PncA}� �[���*,X/IR�'v�.t�6k�:B�+M��7x�VQ�_8���ċ�!5�\��']kw�h�i.:��y~�Ҿ!����i;�<���k?U+�+83��~Y��"�O��ҹ�:�c�}�!HIP*I�1Đ�`[mW� ++3@쁲x�C��ݮ��)�n����\����\��a�7(��9w����7�64��"+L�J�����'����^<' �i�U�F2�mU�M+8�t/�o��|���l�6�kY`p�����}�����6t� �Ҫ8��ktąXA.��8Г~����E_a�B��Y�����*2�z����ݴ�.�r7�2����"��H�� �+!}S��g+ػ���Q ++�lR�'�$�@�Mj&�+�T����z�r����׳��n���.}~,2�E���k]�����T<Υ�ޞ���搹�4Nf3�n�x��C�p�y!�G X�E^���?����rli��#)÷��DV�h���h����Y!ՙ���.��W���<3oԮ��B�W��U�ک��J,P�-ehZX��ȶ�{���٬���,�3/{ �G���M�� ++ � ��d����M�Ä/��3��vM�_�qN�f^�e���k~�����r���n���k�ʲ�yY��j-r���0��eb\��(���rq�{��ԍ ��fʇ��ޟd�X ++'�)�FO�H�w{i��'!ϩ��2���e<{*5bL.�v^��Y�FPfP�"˗�W\����Pw:p���?E��tzƄ�Y}��r,1�B-E�<Y�x� �;�WA�)��N|�`����S2���'Y[�J���J�2I�Pa���F����(�5�d�˖�'�9ԬwHw���ι{�Iی�^N1'�J-���|�_�gx���>_.Ez�??s��}ϋ�� .�v��¥�>/��>�����[B��o�N��-Kg)$�pv�ߣ����(�2��3.�L'��4v�mf~W16F��jS��({����|�� ���U�n&��.�p1~ح�/�@i�vV�@ڐ�~��͎�@j�4����p�(�`D#�X� )[��v�I^����sL�:σN�V�<d�\�3�C�c.q��-{(��+{�Ǭ�<�|�(�e��c^�?�c�kq��Q�z������72a�{Y��p�0Q���O��fO����eb��?J��-&���.ќ9�#su��ou�$�����,kz���j9A�ŎYO��E��P�-98Wu���ן��RI5I�����2�l���ti��Q��$�Xrr��~����Z�bo��tumY����0#[�̘�����Zo���gN����?��?"x�*�\���l/Q� =�O{��� HG^�Y���.� ++<=�`P�P�M@?i�GϜ����|��U"މ &�q�I�B�r9��o�3��g ?=+g��3/���3��=�7\�(C)q.{������X�9��RRr�����U@K�R�<,��gh?|'~�2刡�z���LY1��%�a�0M�_';����Y��³~/�Aط��I�o�Cɒ����˩����\��~Dfx_���qE�g�3������E������噆p�8����z�iy�q�:�_��V�R�����[�9݈���$my�ڴ�ퟹB�\�U�x{K�F�Mm8@�+��#D�o ++�\� ++Dj���(��e��b*�9�������q�G��v`s�Q��m�Efr)�h�Վ.-�� ++H_�84�i�F#��"6�yP}l���Æ˅8�շ�x7���)8���i��_�s k�cW6]�r�y����$;�>��V��Ք�"�k���;�kV��?w�c���j�n����DOGP|�=�bY�q�|ɾ����`��Ơ��w��u���!��(�V��MvH�O�-P��C�L�e����ci���|�S��_���Ges�36�G��8�$3p�����$I�"qu��j_/� u�J&K�Je6c4�UX�PI���eh>��+C�ۭ|���>�%�Ĺ3�\F�;?���z0�?����S�oh���?ċ��.��!�i� ܺvVt�aY]2��(�i�Xm|�R�/����੪���1�(���y�3����,��5B����>�0��th�a��izN�2�u.y��9�V�Ӳ�/����h�2]��4Y�QXE��x��r�*w6�h_�h�¢���b�2��P���SW=3�����Y4Rb��+����٣�j<t.�j�&XOi�&iw�8/�����-�Tb��A�EGg=�3Ƨ��<}���6�[��:���}gʓډ�3�\�҄� ��)�@3���4����f���HN����`�YH��v^�{��z�O�Z�������T�Q�����I���Չ�+y��tSOLA?���p>*���O�(��eFh1�9�<������¦ +�}�|�&�My�� 6��,��q(�wn�)���F�Q���>��u�u��"NNi6�4��ͰH)�����iʂ�Pk�� 7]�p�:i�VVh�zxQ�[��(%P ���4d�Su��8�����ԘWZs��%B �� ++2���6��b�b�6H�oeQ�,l��V��&�je�N2�.�aȣS�Qa�b䪦��z�uŀ�!\�㍲�Z�*��j��>��e���[aH�\�ءL�ɶS�<e �b1r�-�1O�nԜ��c�s��c��y@���_&fP$�����Ԗ8���� ++�;�33�]`�e�~r��@���u +"ѥ�����H��w�L�Ѱ�an���Aʂ�*���O�4#�M�!�D ++�hz�0r��i��՞5����E�����?�� .m��q}bE��� ?������ԁ5m]r��6704��5�m��N��'�A�^������'�z�i�8���1O[wMQ�՛�mD�-�dM���� ��yH�"2��xѼ=�}_N�k7UE�U�(30z��][�WU��P�<�tm�ퟷ���l�l�Z�� ���]k��:�N+�K�;�C��Fm�� �� ᛊ��6����$"1��s�X��*��`|/�] Ϗf��99�`H�絈�H��^D�,5d��e*��_w�P�E�|6K�0_Z�s`<TO��x��<#�b����gݔ˝��}��9�sU�em�h��Q�g���.��B7|~�$��d�ϻ������qѱ����؎�92�F������&X�����~�ˬq�]3���<Y�ֻ�������8�a8��01N�bJQ�z� o��s=1��Cք����Ѯ=�`�=��d=gB�x����5Yy�H�6ߋ!1�ßr��4Q�;�za.�݁�LK�wۼ�� ++x�Ǿ� NNsC:tX�Q^,a�w֒"�ct��̸d+æ*�)��0���/�UO�^]��%�І���6��Z�`Ⱁ1� �w�X������.���k���Q�^��T��u��h�1Ci�����Dpi��i���x��ϲ�*;��/#ӆt��9�j_}��Ԛ�t��Ҧ<�t�[�c҇ٞ;�ՆZ�a.3����V�n�� �I�M5|��fO��\ �n"u����3>"��^ �A}�1����:4h��k��Hϗ�w��h荑�ѷyd!Q�dq�қF%Ep\WBr��j��Z9�jGG��\2������������w���WAq�Zw�H�z^! ����d�]&}�J��f���s��dL�eװ��~ҳ&#��dz��6�j�_���O�F�M(�H �iq.�� CK���5�jD��b1�s���s�]0���V���P���_����yC\j0���V�G����o������&16�iP>�nj�0N��F��e�d�`�Oe���ӛ������fZK������ݷ�h�Zn�sc�Q{4�s�DE&0�^A� �ɵ�Dzc���X����9���#��x�8Jt��;�ޭ;rBa�J�3�A��qkά�=m���U�B�&��O��( �6��/R;��I�PJr&O�[�=�;�E�ѱ)ډщ��sy��n���0.�}���>��>/\���m�ο��-܀9�����2�[��j<����r%�'�A��&��5'�a�"�^L~�!��S�X ��ǝ�E��"�U"��j{�ð`�D�Rja"G�.��A�r9ĵ' O����16��#ҙD+���Y@'>�*z[*��������?P���,VRqۼ��R� ���,�ɈJu ,�K��ޜ�ƾ/�YVxF�H��W��7.j�tN����M��5Z����?/6��vd9Id�-Ot����m�����O����a1�o�Q���q}�3�<r+��=J���Ѣ�+�s��q �N��f7�=��e&��nn��(�Syu�bYF����'t:m*^]��?v��/p����Ǐ��9R�:F �hO�O'���_�B�'*)��.��j���˾���;vM�\|��inK���p��tY(;���[V�<�32vh���L�Fe��Ӕ�;���t|�`�0(�g��A���>>����.�1��b�Mzq�a�n}����sV�9O�"?�t�[�����* ���vΙ�b��J�ӱg ++��T�<��#�}����Q��M����Q<\����ƌ��Q�G>i^d<'R����r�W.�2>��Kl�<��MQ7��Q��*L4�<6���`j�$���gxM�-�9��[&��&��RԩK��Q���t�Y<�� �����e�'f�(�F��x:~2Dʡ���}�wM(-�;y�%�Xt�UZ��O���/bOl$�� `'[o��f�?���ڕ�xd�K��I��DU���� �������k��i���mĿ��+ҥ &;Ez(�0k>������T|%$�Wp�[.����e��pCp�� F=�x(0�lu�8�]�s��6�|)NS�*#���^~'N�>�.p{��L_��bE�rR���bF� N�1�������yt�1�^�?��Dp��껜[yT�ҸF�Dy*�68A���y2��T��B�^� ++ЁF2��NV�z�H��T xq�;�˶���K�q?�u�^�\�b�f�Ke�rr �K������"f�i[<��R�� tT��ug�X>-a,#�,0L�n�'��F>�(O���e.#��/1耵H�V8JkKX�n?�£�}��1� ?�|>sk��U��!�}�����|c6����I��]� �lO���ϋEyV� ++ǒ��.m��~�b4��� ��&�e���R;��gm#r����%V�������O&���� ++F��\ŝ��ƓyG��2��aB�y��]��6�� ���&�q�-N8���S:��`��9mu�E��G��(�/������EN��F���\;v��f�h�1�8hZTl_�L�V���U/�դ}�f������0rAș(��x����⌯�EG�⾰s���wX[�*�9�nM)#��,"'���|��Ǚ�G�P�Т_f,��M�˫�O:�߾X*�>՝���gL�U��)��� 5��T/�Q��V�D9-i����m�뵄���PY��i�[��g�ϧ�E\"�T/����E�Z�_�'���>�6,O�W� nI��Sva�����4�:j�_��L&�����Z�=�6i������@����O �!4� �%���X�Ks��;-�� 21�q�M�W?�xu���M�X,R�&|_��C1���D�B��D�T�y&�:��F�9���0�\~���<ݴc��I���>��)o�˶C24#x�N1|N��BL��M\J�(�R�$=��K%� �.S��\���K�q~����Q��+�Z�5���(%%�Q����c���-ᠤxҡh ���o{`)��2y�P�c�ښ��*ΘS��]����J�A�&]�I�l&�ڤ��ԁ��j���c��XE��j�&�_�_��/���5���$'K?-�,w�S��%1��1!��B�3)�}a��eJ��@��Wv!�fe_o��SA���z��Y'�H/�, ++��x��M�=��o�S��E��u����U�k"�t ++Q;*OC�����zh�����Q��sU�cmp/=z�CJ�$>NO����h�"��ߞ�xs�0�F���M�v㡳Z�N��k��%�)�W��͋2e����s�̰D�gM ++��w����K}�����ސL�PEL�E6Y�����Z(F.�ٗF���e��ӢE[(�J��������!�����]x�i"tm�$VP<�sP�,���K��#3��Ќ�˹� ��9Jv�NKճ��`�;�`��$���|�,�l��sFIM�(1�]Ã������w���pf��,���Ib�˪b��9�M��I��V�?��1�rX6�Fc$]�wX���l*���ae��'+��#N���q�,S+|��{����� ++�wE����4��GH��S�dS�w����ܝ�L���^�崱{ �z�����WC^ʔ��N� ��`A%������0B2��o�����b��W��0��v���=-�.^��V�%}��Mx.��T/J��R��.ᔯ^�����9G*��\I���/��K�^2bk�}!9����^>��I����;cR�d�JH6amf��w��EQn����d��x�z�>2�"<��[��! �;����b�z���Ay� 1��Ӝ�Ӷ��.�y!����� ++ ?���h'VO0�߬�X�oڎ,�uڨ�c.+:��wX[���P��9v�X���@:�^y�<��G�� di쵨���߯b���_C�.*K��]���f �]�~�Л�h�$h�q��T'ny- ���M��e��2�����^+sދ�̕r��B��"��fڨ��6S�k�+8�݆X�ݽ��h1e ��YS�̺�k����v,����0���sD��P���1�����@���z$h!�WaRs�?u�gͲ�����M�<8�ж���pؑt������T� ++�E�{�,��q�Z|��bC�ޟ���Ϗ�US�e�i�y#.$���iNǑ�F����e��dȚ7O����QB�c�����yf�GGMhBM^�rO�+�D���y)�`���D�fq%��[��.��4�ᢂ'���Kd�H?1H���|���N���O4��"'��}L�퉺�~��.O֧ܤ���>��o�Rc9] sh��o�a�hۄ�l �*ۭ��|�r��0���u��Dq#x��M�&C�>��}~}���V�F΅Κ��9�^�+=��8Ip�9ƏT��+�p��'D�H�%�eƠY��Gf��V�1ҨZ��;>�W�<1�B7�� V����'H�9��)��=����l��N!<����3,c���q���g��ڇ&8Ƴ ��\�A�79��O��V��E3�L)�ܧ�_���t�J��T�K KdD9'O�J��#��Zcz�i�������H�ӑ��yD�}ݗ���`v7K\o��$+��&c�F�3��t�Ft�I68V|T��0y>9�h%x�Y4�YzW`��C| ]�҂��#�g�!| ++���7C>#>&���N�Db8���ȮI�9L��l\'�L���H�谲'\��� ++���n�l�LJ%����1 O8��oW!��v3Z��tr�Z�X@���r=Ox�]��c@�L����\ ��O��Oȓ~dqV��y�$����b!�>�!�z�I�Mzt���(��Y�@�Rl�qT� ϱ럍U=�_�:0O;P����D|��: lB��,^���b�Nq���7��m�s}8]j� ��k �5�H�1�?�y��A�*���X~�RO�����e����Lw]��e��E"ٲ�զґ�EG���0��L���8�'������Ɣ��#E����'�$$D�+b-�wB4��<�ի�ֹ=} V����9�6��� �Mp ��%�����0T<�u�Tf辧�Alz �N��{�'�y���K�r����L]�"`�1T^v�9��F3�Qȕ��,[.���9�۠n2Ԛ�X���EV)���iu�D��Z��s�`z��5Df'T�:{� ��Ї�����Y�tZl*�I@�]�4�=��5\<�#��$����H]1?P$�c�`���� ��lx��A�'@;�� ː8w�6�l�3@����N�b��S���b`)��LՄ.�@qAz��jA4�s��,�������p>�I�M��Ē��GFl��+.�%�4i��,�X�sY W�:�m����F���^Ԥ/��m��"��W��R����9��mՀ���n� &��q!H�$��g�����?��Kk'Y|���º�H��Z�U홂p�����z���@� ++W��|2�5��+�ӁY�u�j��X�1�Z��Xq��Mq�c������)�[�ɾ/5�����ȱ��l���_�U�w)���u�2��*�isXUG=�]P>o�C�FR�$��s�W�0�t��z�}�����9S;�c`��)>�2��l9�(:���A�!t1�j���LZÆ<�~O,�����9�1}��7��غ���{�D?��NPD��/���Y������I���g +�I����8!� ���<#�9vK�|��� ���s�}��t���Ȑ����)����ǜM@��d��z�?Ө9®3B��X�q���{�!�xN+��5^jWo,��.RQa6zs���/ߘ��wG~RB�iΪ�`A��/��� ��>���~ƆIG5o�%�'ޓ���P0�r�q�ic�ژ4:������}o���IG��S�� 4��h����Ǜ$q�Dc�V� ���Y�atxNz������#*g��D|�� ++,(����}��D�QmW_{|�)kI���f5^3��0���5Ο��Ԫl0c.�H��ڠ%��hA�����z���t�ӓU#g1���ր ++��H{@X��0���KZ�OtN���|s��?a�F�$���H�Xry� �g�дch����{p#�Kc��MԦ����m�쇦�D���M��7���A��R/�?i���0up?e�d�:G�J���!�[� d[YW��H��`��=����ʆk���<���J�v:T�`�#�G��¹i����N,a�M��v�X90�!�s��S���#���?[��?����X�K���@{"�!@*����s8�T��Қ�KЪ�1�2/2�]�k�H�N%�;q�,�(��hbn7{���c�t�H�}�C����K�$6���Y0����Z�.6MsL�Z��1�0��wC K��o�o|�o�-M�%��^�O^ݫ?c>��h��"�M3/6I�ء����r���?��9ג�R;��YY��~[h�9|oZ3�hg�B�J0&A�lv�=�V�u�P6k��ʉP�j��$���` � �'3��s̘�Q�ג��f�˼1^$m;M�) �&�n ���Ydᦰ.S�d� ++k�oև�Ɋ�G�J0X�1;����4�5N������y� �1࿑�M���خv�&1�@{_d�1p֭f�-.�G�����������$K�=1�.{z6Kz��E4�6��%��q�Fe]4��a��ڼ��J!S��� ㅺ��\`$��/�o�*���?���An�h�1Z�*�}M�,�FD]��JTkw�� o����l=���#�����ǀ�;����yt����wM� &a~����]���u����Ӷ�H�^ UF�PD��I��4k@H8�迲�(]wF�X}�-*����W�$P���L�q=~����8��Y�3���o�u���H��YA��w���g�}�/H$p`��;.bw*�p��i�W���4��&M]�TS�E�k�Ab��l�l͉L������;�Z�h���|��n��YV+#�VBM��{�И�k���x,t��v�ի��������K�b�n�s�&�R,���*ZG�ғ��廰!45��uI�̨Y���������� �'��"9��h^φp���x��L�D�\��z�[l���ຆ�i�Gi1@����vps|ЁL�6M��v�i3<�A%��|�Z�� F������^,E��c0��79���ֺ����T��Orѩ� u_o6~��M����9��x�F�n�;j�&f�N�#�u#h����&@�[��=lA>�q���c���]��� ++#�=f�m��!P%�˶.�c~7V�a0�%ڜh���m�Zo��W���~��Ċ �����P�v�-=�X{^��&F�*����f���7�c!!zG3 �p\v+�h�s�w����\"���N��y8W�S����I[�p��]����z��;f�D%n��Pr����m �$o�v�߶ہ���\�NygeB]�ʄ�#�н?=a*�NL�e�8�B��DFY�r�0h9��3�=���O��]����S���?������9]l��&�ḫ�\8���u%��m���JT.�Ir�w,I9�3���t�%m��@�+V�~�/�\��,���CX�w��v�R��ǹ:>Z7������p3<{�y��=.o%��|�(.��]����4���8>י��JN�>��ٷ-������}P� ++0 ��T8d�+�)N�cy7䀣��eU= ++t.wazkO[ݒS~�U�G���T`�Vj�~�!��a�D"a�A�����<��l�D0Ɵ��v̻�G8r?h��+��LR �YhN�q�Q�m��6^�ن�#i��;U�'�}� l1���J'ؗe��E�A﹊��2�� ++sG5���9�����Kk��p�#{z �����d����W=�R��;��cID��^��X�*�A���* ++"V�D]cn���R�Me��<<d�r�ؿ�[���8��r�����\#�k��!��>QF�����K���,��-yn�������^�3�߶�j��� )S_Czjby'�x�c��~c�.�f����pF���{o���(�>�+_��]�c ++�?Ő��t�}�f����_�]~���S��Ob<��SWJ��UG�43}m������e�<iJ��L��n}WzH+Z/���0�zdF�;7A(�`#��x�A�F������0�wf��rG0J����@�K�ۑ%*Q�L,�����Ǥ�f�����C���h�����}��l�����E�&�%��-� �[y���w�����b������v�yb�^Ջ��߰��J�9.� ˯9���q�cy](�����Dmd������4dj�JOD�;~V�qxZ ++�Rz�p�9M3�ػz�O+�|��bK�w�_�p�Z 5��_�S�9�,y���h�gN?�2�9{&M'h&!LG3d�� ژY��a����Y'�D3��K��:� ++� ++���P�%���$�Sn�������܄}�2.l�Z�)��qb��n�Rv8]x��}4�Q1��N��4_�o�o[�a']*��k���� ++�p;���q�;\��2���La��l�RK���FŎSB���_��)k��.'��ICkx�/e�%���A�N���3�g-���P�Px�p~���{�� ++��[o�/���lⷽ@#�R���%��������ij}��\����FOj8�*� ���I�'F�D��'e-L[��{�D%���(��nI0�V�Х�̺:AF]�y����_�#�xM�%�i��d�U�F�M=�fv&v8��}���Jgg��@r�g+�Bvl'ZTu�P��}뻁�YU�� *�۠ZU|i L�̾ �{����B����6����K��qo$�\L ++�;B�r1L�(���!�l6�a�a���`f�)�����4c(�������;a��`���<vT�67$w��r͗�)��v[� ++� ++�ٿ��<���G �j�¤�u�ݨM��9�;�gc�l��`Dvnd�j�a��ԇw7My�A�7h�P:���*���R}"ӊ��R�$��wCU�lAj�Vo�RZ��7���Go�.q�~@�$$0ɐ��B��3P\Bsh����*�;��N3*����c�$uѭ*ѽ�E�:�S�d�l.V"e8Z�'c��4Q4^ppБ} <I�I0��@�������j��]�d�_�<�[sO��\��&� �ke�L(�i�Ҵ���&�j.^O���7�����? ;B��cZғ=j����8W�p��Ҹ���']\c�1,xp��*k<�p"���%���l�v��be��@~�����{]C�6�n�b������a�;�i1�J�&?���� ++M��ܣQ���{֝ ��}�Yˮ����;{�|G���Yh�VjN�d�S��j���'7��%Z�m���;����ߧ�rA�4�B)=+f�k ���>��6��D��ңǠݚ1crQ�������5���/*��7L���8��p�/#}�':�,����˹������ �i�4��N(]��1�� z̓� ���Q1ucu��ٌS�w.&㽾?_j��W5�h�^�6l�j=�T���C\L�Z�ܯ�-�X�Z���=��N����^�u&o",;�Ff��]��Õ��1I������V�DB2$�l@�^C�6k��N�fhE�Ӂ�ר� q���,#J}Ua��۩�s�4�+��`��,��\������i��S愥��L�i�S˹J�ʞz\�i���w��]�擼�����CG�l� ++�^�1�L2%f� _3+��~����M�������T������=Qm�<\�����V�m���]D�j�g�l�i�@�#�5��Y�a�a�Ee-JN� �� ++ܼ.�J�dh�V����D�f[�}���1b6k�Iț}�:�!��K{Ē��:�Fc�á�jic�iW���3=��)=�g�[��G��]�@X�5FH��-���L0k`������!�u3j��"�(A�`��r���H+*���d��u#]��p���2�(�|�K�����&�"��� ���� ++Q�+z�?����L��1 �C�͐=g���m����H)�0D���pE��^�r-�|����F�;�Υ��i��a�q�=���s^-���Nt<�~l�*�bo����\.�C�\cn#@�AM0 �QV�q��-`(?`��AI(f�ӜetZ���=�2���pʕ.����Yy� V�A<���e ++�i^~�)���mW_�o;�;�e�����M�x�/���b��{���[.7�VC������!���|�:in�#�=?C���a&�HB�{��'��۔��Ƽz�5r�_������"dt19<�4�II 6���[mЉl�r�6\M F�3�?i��>sx�~�H��/�#$�A�}:64�Sr<���S�)�h�p�!�JW����a>�/AK����a�����ʽ�>ci�������?�ј�N`���n��t,�/'r'!���r V'���в��H�pٞRF�U��JR�}�>�����@X�7z��� �Ec��;��B�5�y�LV<"^�96N8�yD�3���m��-!D�iE�"��?0miBcT%�ĭ���-�+���� Mh&�0L�m1�\58���"���w�c�40�P�n�-t�?_� ++�}�Bܶ�a)z[/9��)��dd�tFI����ӓ��yg���!y��/��r2%<�ϭ;Ci'�_��j����t���tt�;��*%?�.���7�{FN�?�.5�Ib���O3��J��E܌&fxC� ��)'�J��Io�>Q��6�f���c*�<m�q���z�蹥?�=��W�mF!����x�[O��o#�īoh�$�Q���E3:�9Om����1�4V'�4����|;�����I�}�CO�(E�Ҝ����Iw�1<�&�[�¢�)g��1�M�Ő�I ++n�$����$ݙ�� U��|�\A��n�2��F��o�8�ϏȂ���MtȟЍ�XD�u�h��� �O��~h�V������ZO�I�'����&��:<ؑ[�?�[/� �m�"�m�BN[_}��%�i���j#�y� ���vn*R�Z�rF��,���%�ɾ-*�V��$��Y�,f�J�W���i����0�� #=�4��"�̹�{���%������R;�^FX8�(}��*#4ױ ++(��!DK+M��.�*���O��b�5��b�IC����^B3�1�A8=��8���kx �`{��bM�ղ�NI+�� ++����r�q�t�s�`�#��m��'"my\N��tx�CB�UB����s�ޥm�n�I@�1�rZz�����-<�A�c��m�=+T�#�^�M!mP�@��ؾ���ֻ@��{�R�N}���ToQ4}DJ�� �E���Q�c�ڮ��vG*��aҿ+�V���/�.rؚ��p5��\���;�L��cƃ�2��-�h��8gC_�*a)����6N���H�!�W��Q��m���}BT�h0��x^?|�UOʩօJ1�ԁ�#��6c���]vw�뽽IH`��/Q�Ǥ�{�*p���j��r�&��u@�6dj���f�֖do�F�gZ��X֜%+<M���X�`Q���1���~��Y<D���fb̍�m�F��g�E `�%�qpT�+3���)Ȱ�x~ ++7qu��O'�����{0�����m�"���e��?�y�yi���^f�hG>��-d���}� ���E,?\��3hf���]��+�u��5��IDι��M.�WlG�|d��SKwޢ�#_�����F�@?=j*�½�����e{{$�M-��5\�+�L�s��`0��J����N���lU2�����7P녩Qz ��S���F���7M3�Mb�U�ōG�ݷ�Li��l������1N�WE��,��Zc��a�G�e�(�S�a�6�k�ù8�U��v�(���m�� ++N_D��A.�07�����v�k8����^�=7�6�s��f?�}�u�R]i|ѬeԆ��`(v�q}� nw��`ۆ�]��$����p_J0ƺ�Y�ޢP�Ow�0~8MvM$s-���oBm�9d�!յ1�uE��F��W;�eprX�\�h�DV�*�̼f��N���0�%�HG'ElA���#CY�;�ރ�ΖGAz�����:C� v�S>b���-����6N&��r ++N��]�H�P����G���6�"Cv� ++s�cYĐ�Xڿ�!\t���O4v��/JR�s��M0T�Zw�z�S����|Z�3#����*��k����2�˗8���ER.��;ZI5�9)�6�P���{1�K-26%iD~�}\�LH�tm��ˊ/?��_�N ++>�Ɯ]�;v1s��\���f`�`RC1�ִ�'ث�Ep�5%Il|a@u�$���_4�L�:�6y��AN���MG�"�[:T��^����u�7�Wv���L�J��'�|Z�9 o�B�?�91d*Nh� �VJt�7tw�s^{��+kWu:�Eb�PhU�8��H(0(1�A~p��9�G��h�w��+ԍ?m���#`Tv8�D��p;ڰ�1 ++w�Z��t��2�x���`�@Uahz�+�+����F�;��{�c��m��#��8�)���NG��D�[Px�x ++��.x�js�=3}�oPs�b��tx��(Ĭ���#�!zD����0�i0�8пE��Z��0�R<xFwN���S=���:}\���MW���;��T��/ʹA�7�u�r�Y��FB����F����V[A��Z�X�N8�E�tlw��_/�1���t�8(��%�.#��T�m���^�t�^�/Pc�n����O��K��O�47\�YgS.@㆚�� q�/BŌ�C��u�^|@���:g�|�ӁykU�YtB0,P��74�Ί2���Ӡ5'�4�_������%7%̼ܔ�� ��X�Z�%��|\�c�aV�h2z�8���W~(�#�SFa�5����GgYf�=�Ou���]fu��qO'ޘivz:wh�H�݆k%���+-�4ʉ�-|�W:(��gz��$�i�q��g.i�uJ�(�s ++���x� ++g���P�ʵ##��^c�\�_�����Y�A,@ϧ}�Thl|��#����A��(7��ˋCPd�d��,!H1Gk�%V-�[���q��#%�Ԉ��B0�]�t�'��a��B�����k��NۀT�$��!q����ZG���9�m��g�.G3�(턦�Y�dz�@�� ++�ƓM�� %��߇��0JLOᵡ����ui�qL���|����?����r%8�2cq�^[��VKi�����~2=���:-���I�i�,�n�Hki]�����H��v��1���� ++cB�m ��i�����.�i�$/X(��92�xƗ��Y�m<�Ä����u*)�j����*�r6���W�h��J,�N�m'�qi#0�5�OrΫA�=*c{�\.U��Z[�)�-�a'���@� ܮ}S��� Un+��G���W�b���rb�f�g���K�=�ԇ R�x��Y+�L��j�u�U!��Q�e��P�x��E~��7KN~Tcv5_/s�� �k��²I�{��Z�pc���� S���3-��FL����ϓ�uԞx'�F=+�b�a�/���z빦A�Y��Tg���C�Pu�vz�.;��� ++�`}7�s��i��]�Z�]��c�wxW��FY�4VvH����� �KZ�ozɬD�����{��e��.�;3gl�cѲ��N�{ ++(�w�7���� ����T���[|/���LZ���5�}�o�E2�Мq� ++��M��f��?����'�_Y��sLg��t��f�z;��0QpR��D�i��3�o�f8 ��~��n�_f.)!J�li�i%J�.���*�cW/H��t����=�K{o'����Ӻ��u��?4��p��W��w�7�Y��F�g�F����,���(����}��f�/8�0W - ����`Q:;r1rj�mRr�:O��r�v[P8 2�1�u�D�����;���~T� ++ywZ@�Z�Y]N�Շ��Zj��&@��l��1Ԧ0�]Ʈ%��ʼnv�{hnw�����S$�Ԕ� �/}8?�Ċ��y��v�%�Ÿ��W׀IT�!�5�ꢞ��^��@��jV��̤�@zD���dSU�:����a�>� ++��R`N+LbK�= ++d��`��Ŵ�8j�|�Cq8,wǑIJ7�̾:�H����G�f�E7kU ++iO��>*b�������G���65���a�&�oCw��,XU��J����Qқ��V��,2�SW?�/M�}���9���=)�u7�=r���f���ђ���"�lfYo���$��FQ��@�w��f�� ���舘a%[�p�Ӻ���Cё �^����ϋ���߂�m1F%:�n3=�r!�ݵ�h�¯�}תe4wQ��M��b��vG8��_�+IU(G��^Y�v�!@4B��a�2��jD h��A�@McU���{���n�o>aÿ��*�`�����GF44����5hh�NH���:�iت���Q�����2{/�~��Ao:c#�G�E"�?����*��S� (P�@��u{���큘0�����n�/���x�Y�5�c(O����)z����v|��[c�U�yAE����p*�;R�dVzxn ++k̍�(E�`���5��D.��*WP-qf/L�Y�'����6����P)�h�.rt��f83��j�$��%��`��N��^���Ӿ�!�'�䡜���?��Ne!��<��Y��a�����}Z��I@�.j��G�KJd�����9P����\��x�z:l�k�nB����Z�A���Bg��Bзы���z�/�����1�a/t�}N��(��N'l�{�sv�n+���Hz&Q�n�v��i$xъ:q��V%�����G��O�(�:i�v�S!�"�`�� *7��g� R@�����mI�-Zn��4'TG��㔫��i�V����=�e��cH�ڭ F'���{�4��f[��并 �D��@ ���oa�!����bG������O��&͙l�V�� c/k�8t����}S~ L�ā �BH�rB�6��u�%c̱��!��թ��W���T��b�e�����?��Xw���`����uz�٭�]�Y{2(k�*h��CX9�� m�����(9^Yy�r,���^�H�q�E�@�q�L��9_�~PYw��Z�g^��c��'�{*���ӸL$�>i��7u^�m�ʲ�����?����T<Q:wJ�O�zk���{��z�\M��#��v���a>p�y��d��K�W]_��IT7���I;����a��%�zHIfEoI$TH�b~~��Κ�B�5V���dk�C�#U�;�Tq��z��H�~��Ҵ�mMO�{$���]|��;�H���]d��#��t�'!k����t阈�7p�O��;��Rp'���]bV.!/���2*���3{��,7��l]>��J�\%_L��w�o������c�,G���7�n'��$BJ!�<�%��c3���>�NTE�b8ʌ�f�#���ggL�����#G��3��TՐ-�:�L� R����>]�j�&����fCI�5�����GWf�ޑ���)S���&��ݮ.w�&".�����q�4%����q� �rN\��F]67i�b���b�ٝ��/1���GE ++.��c9�A���V��~��>�Ŗ�=��\C�b�J��ʰ��A$S���jo8�]���HY9j�^�Z� �����!���f�f�Ott��剛m��n�����/���e^"c���['p��E*����L���O�Foo�ܡ���2��]��H����Qp�\�$�l<�Acs|�ܥ�M�'�]�(&>j3^�"�hlˇl��@��K[�ZǂC��v��QWz���Z=`|�e���%�<�N�?�[���6?b2�}=��g8z�o�)H�r�� (� �(*c��x�!�zNt�Z�R0!��Q$*�;ѩ9{}7���q�5�<ǡ�=�z�nwk��N�q��+�"՚�gcT��!��b'd��rT#�)�x�O�Q�K��i�2 ++o�ɩd�%�r����Uվ�W��z��_(q��B��t}��P}$���E�x�w'L����F��5���R���=G�f_9U��x��fS$��HG������W��Ghy�����5����i���� 8� Q(�"���]��[�?ZdhX�;�-���t�]�fԭg�X��쑮�`z�� ++�=CO�]����}^�����L\Zh)shN�|q��B)M(��\�8�/�y@I��yV��'G��}$��fKIF�� �귿���X`.���M�V��P ��YZ�[d�&��~�=�2�_&30W~<>�&Y��km߶R�&��k�1�v_�����.�]��ڮׁB���JK?��펔Q����G�}�@[tA�4ܳ:��t}��cw�@��2߾C��30�1F��n��q� `0�w�u,�ڇJ�L��̈́1�.�5��i��q�F�����0't�G�Ϯq�:x�۴�!G�q��o؎��w�:���s�I��Ѵ��S�(���IH���?D���'��)b�N�bP[#��v���9�2t ��yz�99������H����4���)���M��Bö�(+6�OԜ]� ��1s�h���u'9�HOx��I�V������!���@5�J-0��/9�StLZӯ��u�Q�p����G�w���M���1_g9$�P��+��Y?zT�Z�����yEA<�Ã�Q?U�e�c뼗�@���R�� ++8(�/��{�|�\6�;4�Q ++���f�p�:�J�-F�Dž��Y�^�������M]ls,��N�Ri�tٱx\c�\#��ؾ>�a+#M1�E l]S>�_�Q��<1?8�s>xp&��%��5�0�`�vm��xK���h<zdE�]̫���1�K>��˒.;.��ir��W��U���ڭu ����wl�����p2��|�O��1��<�����,b �,�<�=��[!- ,����}Q������Q�\�����î� � ++6�%x���'����(�6(��S�x�����˄���:���u�Aߕ�z�{����z@�$����U~jnN��C��D�R��Q��9in=� ++�Ȝ��FX��6b�]�0��>̠ܲ^�g�A+́�)|hF�M�>��t�O<�WI�D40�<�̙��K�h��P�T@��D��b) �K���*M�'���+�"� ������]�m�'AL�4�D(�$�dm\HK1�V�c�'�j��@w��A�d�Il�3��J���`ڃP�W�ܛ����8�7ۃ.�I��N�0 ��{�&�Ԏ� ��bv�m�+0W�ʜ1o��3��w$��T?ܓL��7�P�������\Ã�f>ȃ���u�$���jPIo����r�sv�:l ���p"���O��ZkL� ��r�_�t2S��ΙP�:.=�͡�Q _�B{�/��*V{}�AS��0Qhf�B�@Ȩk�.3#��+Sh�w��M�S~�� ++��y�j���D��3~M8V�a��u���Pmv�>j@i�<t�h���%�8�F>��JJ��]c�Jo�V�D�]k@4��;@C2�"k�b�.Z��6h�<M������lu�iQ~��*1�N ��6_�q��5�X��Ȣ�A]xͩ�B��I�z$ϡ�Ͻ�EJ��}f�*��?G� ]Z��^wd#N�+a�|��0�������Vu����pZ�s�xf'�0� ++��R[gK2O �/���}������p�U�J�{��z�,-�1�7���O��L�T���r��;��V����j^,��M�S�?dm�����>q�:7%�gR:�7n�5!�$0������;nZ�-�5p��n���o��� !�1���P�xD��lH��߈A\st� �n�'�"��f�@e�_����ƚDҜ��P���XjFd�pA:ku���"��8���[N!�cw��G�Sn�^95i8|5Y�����jmM�6� @�:OH�R��m��,���������E�Ǚ��p?Z�}_l��&�#Ku��$a�H3�8 p�T��A[n<&OT�}$w�;�$��D��E�Q��Q|��,ٳK����!�\m��X_U�����j���f%��DW�]��{�s�f���j,�aBT���ky��Neg�4>D����8�=a75���<��K�p�x�IZ�M4�$-�5��t����_K����t�Qy��=!����[`\�vӒ�h���&7cx4��g���-F�t7=P:O8�ln������C������i�)3��9�x��9�����(�Fq��K����h���ڷ�ꙉ��|;nl�J�I���A��:E�r=]�e�Кye3Dž6q������L��}���qwd�`�D�vO2c�NbbAI��m�k����6U��g� �����,�J��n�73ޡ"|Īl4z��_]5;�5*-f�4��}�>�S��"��t���J����I���ZkΘ�}�c�-q��Z��v�`�!;��(��伀�A�L��gh��K��bt�^pr��Zy�[�-{�8��Z*�%!���x*�[��=9���_j�jC�&$g�uƏ�=>!�NE8*--�y2!ԛI d��z��Ķ�D��M�;��ۭi�� �r�W;.F� �^��5�.'��}��*���0��Fk��cf�З)Wn�8%yr/*��L�%w�͈��I4�y�Ӡ��||�5�������qc���6ی�k�M�N'��`��w4�wC�` X�|��.rO���4i �7%�5��*d8���ws��ݼ�7��/�THJ��������8W��b4�lM0.%V��c�`5���̀ o�������&{�ܐ-��Q�[%����[�D�8����n���m����b9HBfo���;<�^V���Q��u�'�� ;%�z�"�M��L��r��a�-� ++4[O���G�|�͟���H�P�qEҟ�b]�Q^4���:8?`���E��4>��4?oftƻ�-�묛����x ����M�"�5 Ŋ�]������ͥV���N�k�]��Ɋ&����HC�@~�Dʆ@�]�/o�C�x��M�����F;/\�ҹ�cb[i����]��5͑�)��ar�X�hD�4gQw�����j�}����;5�$rp��D~;�����{�E�Ɩd��G^�� ��$���*�Fn U�#}0������"e��m���休@WrF0T�� ��� ++Q8�ׇ�p�HX�G���Yh�@>OG��a�7h���V���jl���2��'�p�*Hg�'9�m�8ƝR#�F�}t��ж�ek�aE�&L ��@� d�v*2=`��#�jDU\�at%!d=�z�l��\�c�Vg�'1�/��Y�G��I�� ��Fa�cuW���.Ra�'��Nos�B"M�;�� w��,�_#q�ȍ�n����qA���'��'�h�C��Q���1zņ�n�h���i�ozٌc�_���S��%�..s��a�8�4���� ���v�ˏZ\�����ek|���c�]�kq�*������zX_o��nh/�r 1»�<Iާ��� ���m�"k3g��^���}�gόgvS�.��bp����B@q�6�$Um�1=|{���T+�B����?c�� ���;��_����_H��+���)~N��[�dl�z[>n>�,�Ɖ�h�%�o�N�*�,Iz`, ��4ԠpJ��.�9��Ͼ���52�Q�K�;iJ�[�8��'b�لi ++�:*z����U��� ++O�C��?N� ��惲�D�挸��������PcRЎ�z����C�� /��/ ��Ұ�\`�:�"�� �H�㑏z�F*I�mH�s�@[M��˕�";�7�?�R7:`���(~����0tdOK.�e���T ++� ++�1��K����8O�Ź���j����� Π��y�/���/<gzlN)D�]������[���4N��c}���>�����:�����ZG�%@xR����Ӂ�J���y�5��f�6Ү�����E{Ӊ���xT�\Lb%_?&���'$�i�6&l��z���E% a� D� /�f>��|��;��q�LqE��ϤA��|�7SН����9Р �Z�4}�]���憮���i%�7��{%)�����o�^�z�Σ4�-��N��8���x *��.~��9�a{�Ā�0p��,��e$y]:Js�yZ��78E����>-X�@��)�c��xtH_�o�{=ĺ �b'�22~��=Ҥ�Mс���� ++ZwD� �ꦑEn�y�u����љ���wW�%4ڔ���o�8/��z�j�{��1@���ݐ:qK�m�)��<n� �&�|ز�s��tg[fAe������w�R�̎6�4��wgȖ�˱�]�D�Hɑ"1�<���sHK f��piJ��MZ}6$�0�6�.4�pQ�4m���G�D�3h��� �6q�����w�L���q3�7�Tȣ��d��S� ++0��];O���u��Oߞ���>�q�o=�e����}暮s�������a#r*��wX�u�.�7�n��j�LztmE"�m��g۰<��q��Z�Eu�vt�6�� ��M!-����t0z��=.pLv]�jeg����@;�y<����ى�k�e�����7��:���u�>4)U8���<��y���bA�����Df���%��=Yj�+�ܻ\�i�/���D��6�������]���|(�<r\�f�������,�� �NG.����,#]��J������Wz�?�Y�B��Γ���z�E#�٣�7O�����I�T�������9�ʌ壢\3X-�����F���G��`���ֱ�̺���W�Ư�B��C���r~��K+�YQ�έ3Lyr�ډ.¸*�Y�zp[ �r,h�1��P�>�Fr/,#��SVM�~��})���4�3�h�\�2 љ 8 ����sb��!�(,�YM��gFȬƲz��y���M�m�vz��'E�hw��2V�gS�qR��i�֝�\tӎ����x��C,��[�1[�� �RЂ��k�ZoՈ�!���r(�$�}Zlp�I%�^�x�Yb����:��-Þ���M�I�^�:l��&yJXtb�*��&(��,��&�ƹuM��Q�)�L찓R�ʻW�&BԠ!EzV�ԟ�B�g�5�:j�?=�N8ɳVf�$���Y�ۼ�!͛c�ٿPQ��{o�k%*5ܦ�e4�7��r�GW�$,��7W�D��Q@ �HBJ����8A�ʺ��cܲC���Gf�����~������rmɹ��sG$B��٫�h�1�k�d�������MR��Օ�%H���C������玒��l�Kd��� O���a T,s�cE�Nɷ��Q������y خ~C}�-������y���c��I�u�3�^m=0�1-<i�#Q�έ4E�ѯ�^#�G���t�M�&���v�س��O�Р��PK�C��ZMғg{d0��tO��(E9 k�A2=�߫��8`�B�f��t��t�h��c䄾�I��Mխq"P�n ���AR5�َH��J�u������}Ga`�;n�5*'RF�2m�\�b��4F���W+s��l����D��p����Qx`�ц��9���E[r����(۷V��z�#ywm�v�i5&|��_�+% �Y���������.������oЃ$�o������/q�_�û���� ++Kg�B*w㸷E���c��~H�� s�u���=��@��S����ݼ{fK%����k-��!=!�/��GAA��!���(�պ��c$�9I��_�1���<C��A��$W��#��W��pq����Q��U���b��q��S�I��&�IM8��>�K��'�:o*�n�x�s:WH�<c �9yEK��ϭ�H�9�FF�D�ȝ@��|��Uv�!�Tj���&���pm����i-� +��cx�VbE�sg"bf�������'2�@�OXN4�', $'��}Y�m�!{��Ь��fZ� ++y{�k�d�0?$��N�;6-r^Z&b� *8U��c���J���q;����?�B��A`t `F��*=�]���b�-�}ą��w<���j�p�K�fĔ�4��{{bnʪ��;^�N�G�tp��a*� ���Ao7]��"u7i�Q������30b� ++�%��QH?�l�6T�{<�#GE���U���'��N� ++U�#]��4=��s?���<�^��H��K'!�����/��}>k\�p��QD�6�����އ}���K�^���K�p��W��o��I5d��������i� /Vf��e��7~@Z0�+�a� ��z@�^�z?�����xF}� �g,����~pK���谳^�)Ah��4�CW��Jth�I��:���G_H��^c^5�Ԫ~�]_�S�D��cx���s��Z�b�b�1&��5�EʸO���,.�18cH*��~��4�"/ѭB4�jH��p�艁j�!mO[u�Cy�D�-��U���D�mpJ��q[;D�wnd��T�8��!�\Zcn,���xL�Lk5���\��%5A�Jk8DWR�M0ڜ�+c�z[�SFkX��T�Q�qa����@�Pr�$ �f�Ux,�(s��&��4N�b��S���[�F3����ⵧs��*���M�� �G�%Z �H2����\?��2r)\A8vчf�!O4�&��I56��]��T!��R��� �خ�c�7z×��g�I˒`�z 3Pכ*��x;x����7�1��Aız:��n�k>��1���?����c`~���5h<�Yz��v�PA�O�N%���Dc*�8�=�CW�P�������f ��)?��l�g�1o ����qJ�qpl��Z���M`h���_\&`�!��f`���t��+;�K��o�������ʰ�wz�[�Aκ��Uf�U�0h��)��t_��e�#za9w�c��VM���_�;x�=�ң�|�8?�%��Nt?�#�-8�K*zo<�D�[��D���n*O���F�CpN�,@�+\�$�|�ÖB���~?��.��ᅯ�d�`!���D���W��宂[D�Po��#�4�h6}�iE���T U ������b�J��hA@F��3z,X�[p|��4xnU���A�j��ym�"p"8UՂao��c �N�ON���J�̹Gf�Ħ{*�n��A�)���TGN��,n\i7O(�� ++/C�eUJ�������ނt�{���-�E�h�u$U��X�Mz����h�f��N������j3$� l�c�9� {MIZ'�"0��fo�K~{��G&�!Bs�K�7;�F ɞ�4�����H2��~��!� ++K.�s>�u�n2�_�P��| IX:������m3 ����R�ѿ��� s����/�F�1+���ܛ@����|�ْ���A@�N:ߟ沷Y���1���g�9f~5�H�rC�]��Dv\��1��/���}k�@�F�.��e�j�(b̉�ÎO��@�G͇��y�_m�n�4�*�p'����n[�"_�&c�ni�����'�sQ7cz>q��P��"��`x��1l�VF�]fS�)U�����DRK���V���ϸi��^�]ѩ���^�5�-= �. 1�:k��W�DŽ������g�\��I�0Eq��� �:�$Aޓ�v��R����5�O��Rjg��ҟ��}��$Eow>tG� ��{\��e?Ր��F8>H��m���Gh/�&��5hZ������� ++��tG�T��$�ƢHn��u0�-&� ��.�d<�Ӱ��D�^ �&�$�6n�l����:L=M�BXn�!��{H]E�C�B��� �!IЭ���$�|�n��ǣ��������[Q�QΊԲ��5��&7��gt����q�H�O���+�l�8�+)3�b1N�h=a"���%����'�Y�ZH�)������e`�Z�ٍ� �NU�$���WD�0�B��|�Yb��Zu���[� �urc�^�-|��ƊGR%� ��mai�]�����R�+\�w�c����#���}�"۳@������^t?l�sl��y�0�v�>rǂ�Ar@���Ŷ�D���Z�1����i�MD�.��\'̶��L]��"5X�P�U��пqu2�H��t�M�{=���/�$��d�l�v��"�oŤ�������i��ϐ0c��]�����3�Q<N,�SF�W�v|� bh��m�f`'��F����2�;+��j�І���(����ч�� m�I���c�S��mu��)MQ��#r�n��6�+�>yvΫ�.��|fo���<�w_��V<iZ}4\�r�7��r��z@t�b�7�u���"1���3����k����rZ�c~'\MK�H�Ӝ��R��I�M��� ++ԅ�L�QGu��MCi9��v�4d�����֨�KF��k�J�W���+�z��[B>���a�\<|�� �$�_O�YΙ_���ڀ�A��z�H�g��{��".� ���Z.����D������0���|ыx�9�C�ϭ? �-S*���?z���.]�Y��$���H�c��X��/0*�6}t^s ++O�V>�� ++�ܹ՝�TG�yn�tgj:��a�eRM5w��]�Q�M[���"h��+_��{�ٟ@=��2���C<E>JV��p�SRv."�C���FD�L����BHjh�ڇTu������r�{�օ�頛�� q��J���=ª�I����4I ��L4w�GN ++��n�(��Sə�G}uK������#31� H�Mp@$� ++�el7�%#�����$� ++0 ����ެ�e4=Yv��9wz�, 9T�� �@E˒�+�n��b���5���=.�H�^���J�aUc߂y�v0��[��Jk 0:KTB��Ә���=�#-�!:�����B�<UA�1=.������P��d��!�a�Z2MUr�"��Q���$͊�&��$J(�Џ��8��������3M�1n�ib����|�����c���>�|7���� ++�T�a�p��6�Z{w�AҏG ���Jlߪ�n3:� ++�)�c@ R�y�=�ć-Pn��2(F,[����Iʎ�Q�����M����Xz�8��{@�u�N�M8G��-��r+���A����~�X@ ���1րj�N���m�c�L�����W�ݶ����o�n�;�̴\l�W����i�6^��=o7�ٚ'36�0ߋ~�E��n���q��R����gtB�a-�^�C� �W���k�Z �n�woh�ޖ~B̪�]��W[���mM�1�^�&���*�?���@�����ҜD��砫�YP\��j�e9p�' ���� �e�K��x��+~�~Ф���/͟^��,�e�]#�n%��+l]���^�q}G���ѲY��M&IZU߁�쨣��sc!1w��)�ۇJ`�*�*;�{��hs��.T /����'��J݁��6��N� ]wC��p�Hc��|M�#�w�c�Ph����L_H�Һ�`M��Ƅ^R�<��vo��\���gs��h��/D��75����A��cOzX�c^�j�&`9����_�5����U����� ++jDi#�n���M�71�ڈR7ZƩϣqB��T&!䦳S��rs�!���l�p�����ո`8����7��'���� <�ONoP�������^�I'�kxD)��^�&�T�D�T�^�D��m��G[����ixg����z#�}��Tl'��Km���T���8I_�NR�M��t�)�k{�L�]���rm����ⷱרv��Fe�ס�� a�c"�EM4G�"<��A�u��������O=^���z��Mi�P��3+ �L����sQ�3��SY��r�=�+��t�*�z�7��0#�|���?��W���<m�8/��ɖ=2�=��o��cS�������8��al�e�e�(R�d���U��p8���16�>�����o���Ԅ-3��}�9فѺE�.��������V6=F�������IM�R�]n� �ᤨh��T%6�uoY�+�}Zj�ƈVI��J}1����T�v�Z����|�O���j~Qm�}��4>���������i��2��V'�0Ftm�d�>7��q1����aQBz7)�WG_#`F�0FU��n�������%p��G����*e��b�&(�#!��}�7+��&�E.i��@V=�49D�H��ґ,6~���o��MV}0]k��0�^�Jk�Q�r%�N̑��e�_��l��Y������C�_�ڧ̐ҒFxs��|`�� p�'�A���t ����Z'J�zo�F:�@���9c� ��j�n,rv<q�'�#��F��`q����8���f^$[5i�ȷ̣e�)s_�|%��wsm�� =��Akk���o�.x{�b{Z��#-��B��������C��_;9��6�D�e��t� )�q\�Ӵ�kU����(��6�U,A%�̔�mI�9"K.ν�a��ٟ�r��ttC��؉\�Yi���0�������b��Q�����ko��ܦh��ZT��/6��Ă��|��!< ����Њ��FfN}����p�r�ޞn�+8���ۭ$�h)$�yT�h���_A��[ �m��N�PW5M�<�`�� J���z�ʝ������!�9ꙸܖ��y���A6���KD���_1��GzBօ�Y��ȷ�j"���r��W�b0����I;L<>�KD��Pb�Ԅ[p@�K}6N�rX���[B���϶^�p#ܰ�X�W�r�S%���)� ++=_¥���?'�ܭN�j@5lB��V:��5խ �� �J��O!�� ++���{}�Ib��Ѹ���}U��xd����ߟfGl����A 2TAk@���OV�p��wGk �0���@��� �V��̿��&_mDti��Ƙ�cI#r��]dB ']�����+v��G���g�_ =�Y>�sZW�s�����.��@�;�`|��W<��}���� ++��)}ږz�o�����=M��A�R�������Z180gB���f{��Dý^@��渉��M�� ~��ic���IId��ܘ3F�S �Q{F\��̯�)��# ����[�����4q�>,�,��B���HS7�}�3����N&.N�٪|��RG�G�QB���F��Ҫ����~7��Ol��7_n( �����=��F��S��&�f#+� "�P2p�8��2���$!�BS^�3��X.�Ǎ8�v�xC��I�>�(�F�� "�M�{I0���#֏��y��ƏTd$#�5��ߐ�H����nt>�{��J���BJvU�� �v��G<s�t���a@����c��ek@7�b�~j��J�φ�h���8�ׁ�vθd��r��ܐ4��w�o _�ն����4 ����*� o!\��ό���sBNkAx[݄a�^́���B4�H"��p�V�i���$��qU���(7����" =(��͈f��c������˵a۩Z~�ب�H�*�q��jr���a�@Bu�Ϙ*J�Q������#N<��!�$�����ؾ�'��D"��b��_�M�c�fY ߲��<���xC]$W�-d[�9?�q��C�T��Vm'Mda�4=�v���H��>�Br�ޛ�������.W���Qg&>H�ï��A�~�ߐ ����oo4S��=���R��2�##ΎH�D�xo F��v ++N�U$��Yj<?m�4Q���{��6]t��U@2�`�p!� �亪 <��|����.�%+��c�[���?�;h� HO�xw��rt�7�b�%'g8��<i��n��h ���jٯ�6k�/���8;(-�J ++�x�\��@)�j���H��U�X�h�%,`3Ʒ�Rb�2s�hr�j��H�T0B��j�W�;y:�^���T���4'���RKRJY_�8x@�w��R�ˮ|(:��U���;����{�]����g�U����k� ��|p��*q43be&p�67���#�\��n�Uې��������㗕��a����،m>aj��`/�cޕq�}��!opUL��*�gۜ���DP�2�<�T�ˁ=K&4��mq�wdi7�S���0 n5{|����䞀�q�(\|��ⶐ�:�*E'�N�����]=1�ZN_S8��:q�J���@y���eJ�� ��<�蟐 ��z BUBX��lBYl���]���Sw��ܝI����e�ys:��0�ǧ{?�Y)1���Hٿ=�J�IRT�-4��A��9}�`xD�8W+g��\�Y�U!)=+���/�éH�QdK�U��R�pW5��V ~�ZL��ƻ���f�O^��*y<^9�w�a��h�h��G@�c(}o͍%�\�-�=���ը�9mצ�m� B�Y�ӳ�Pvu�0S8�ƶl{@�]� �O��p����~u�,���Q!j����Ch�az V��Lb/9�tL�|E�a��b�<���`D�h3� _0�p�Ip ++-�����Tìvz����ڰ7x�V� ++�����[�[�l��"�t���Fo=9,�u" ��N)}��V<Mua��sI��S����e�J��֖eP ���љ:�):�T����~��J�(�+�.��qO8y�K4S�K����ߜ�kf:<j~"�t�'~�92�ӏ^������I�J����w�U�E�C� I�y�D����hm��yV�?[^1�etUv��݆��"�����Xw�)�S�2gQ�Ĭ%��[:�FA0Gx�q6+l���U�7����3�ԺG��7(��H�{�}>�hk]��g�=�z���?�l%�P��K ���<��MǦ,;6���� Hjܷ���Y�䕫4�t��������6y�:g?gY�J���S��6p�� ++��c� l�iJ�Dc˒dӀM����Pd�`�f͚倾?eCO��F�!��I�כͯ�=q��p��7�ْ(�`�i�= ��cȜ�hp�Դ\�I��㰭N�������1� ++æ�_���\��À�54�?3�����h��g%�Fy��X60��Aqb��(�'��0m���2Pp���}��#�O%J�o{��s����W����;�N]ۡ�U+� ߹$M��4��V���Foj���[�!��Q�!d&H,�,.u=HU��q��%#���$.S�& ++�G�.�T���T7�#��泩����)n0Y�L���/:��/�F&�h$����Y| 1ӝ8v��ķ�LL�}О�0�K~h�?�;� ++��T.��& c>����?(��~�������E3������ݡ?w�T��:��S���ϐV��d��s�uG�p���Aq���ԣ�z@�4m6�悝�Z\X�t���}"�R�<��V~2�D�x�#��+���Ƞ:�����THOB�=�����f3�̬�l����[�aGVhu��㚙�v�Rc��17�/C�ԉ��z3#���ϐw�X�JZ��3��<?u��̳RrQ�7Cʔc�w���$.�`o���ͣg���'7Ή̑���[��Ґp��9g���\$ ++�x{N}�a��?��L�n�u�ɛ�4����Čo�q� ++�t�nP� O����[�*|���ꀢ�x;��Ms^������{?��9Q�D�Uāc�=��w��G��x3q��+�&��b4�G���2Q��Q��a��%蟷�\LP�\��O���~X���<�jNR��iP���љ�?�yK��������c�2;��.��7QO����B��j.e����=�ؗ�8S"��U��/3��0����n��]���H糟�T5�5_�h�ðY�Q�Rz�3�ƌ�z������ql��z�r�:�G�@I��Y�q#�'��<j�H�-�O�����4"~ZMY?T��ָD�&�Yr�r0�0.�>ε� /`��^A�\A���GF!����_����?�*�� ����{�����:�y?߭�q$�U.P� ++���Gfb�<�2��I�y�۩]x?�?�"��?�$u"?�&��89�$��+� ++��^��Z���3����P��05�-��TZ @T]!g&�c��kNk���C'�������� ͈=�T;����/�o. eCͩ:$�FvƷ�L���I��R��/�����\�sK5Q�}m���7��rU'O�tt�rD$L"Ӻ����'�j��$��o�Ez#�eM��t~�ቾ�7�W��V�&��k����W��C�/�k�| mj�l���,þk'�O�<�;�2 ++�#ෆ� ++_� ��r�IDW++X"�Q��D��[~#9�wcu�ӧ(��C��w#���C��[!��.rW,&B����h���(<_���d����{�J�����XNj�mՆT/��7�ޯӨZ��~���_��U`T�ƯR�*��d��3�ШY���z����r�9����X�-~��H>�q�kI��KW��S�J)��6�!T���W �*�7S0b�~�xh�H=j���A�x">z����P��d?�''-_���.FZ;}�%��\ 4�=���@~�z�ۥA�lY僎\VD�DP��� k=.��}I���#�_�w�t641����{��j.��F�@L �A,�U�2����Tt� I�)��_�+J�O�e����~�H_1�M��P�1��V$c�L�/�d���B�z�yj=E}�i�9�H=k8�opї?�+T�oyjS)����yAPC�b��`���<0����z��'rL�K�i�do6�m����'�4�i��Px������M�AZ�t X5��ƨ%��;wT��h�5��ډ�*�߆ন4P�� U�H{�F�#~�D�o�x<Wj����,64jór�Tw�p4�ɗ����Aנ���|8� imME��x��)����A���Q�+B�uIW�y7��@�oN�����a�����������i�H��J*��w�VI�վ�ݜa ++_�6����K��E\R��ws�*=�;��U�������I2s#�� ++��/6JY��3��u���>X�L�'f�e�~$����8+G>U�{�K[��},.t�j�`0W-�Έ!�J5#C3�B¯r����ƪ@A��(���ⱕ��Nň,����C$_=���נ&�)G����;���^�!�{w�`�F5 y(�UNb�C�����{�C��7�L��0�r�`��fɞt�I�4���z�0����4�i���[p��8�:S���15��M/#U"���g� ���T��3M�\_�DA�>jw�H咨/9@�r�+���p��ߚ�E�<�E#�������q��}�v{L��HKi" C�D`��(\�|�={��3��ޤ医�D�n�i�&�ݼ���aۨw�7����j-��*u$ T���h��ҝU����p�9��+�~�P��rHokh��w�� �[�@ވ��.e�x˧�`o��j���Zh�@�lUaId Q���3����S�%b�Uk������������� �V�*�D�b��%���L��;�sq҄�Y��(�)�c����i�*) 4��@��,�����m�=����Ve�A���^������ʛnЌ�x�_y���3̲�= ++i4:�O����� ����o��ʹ�A],]���Ҿ��-6��@h��(x�v��g��x���N�>�l����k��=p��n�z�����ox%jN���l���[Ѻ�ϭ����<�����=�~pf�7���Y�Dl�$f�z��dlW�e5Z�&=�<ț^A�+��Qu� ++�`MH"�[�<b�p&�p��w?6w��tHx�Η����;�Β����w����w����=4��3��&%p��÷��F5�R�P�P���X�WǠ��GyA�1��>3҈d�^F�?�l?�� ��ew:`FN�T,�Gט0�٘V>y����P=�������4�T��ٮ�<8��Da>؝8,�>!{n�,��)Qږѥ.#諳�~~�yʱ�����D8;Г�ߙ)^W����Ǝa�C�Z���"�NV��cj�G3ʫ�(h)*8L^J��F݇���F�����cۥM~����+5/>���n1M�$c��V��p���|�y�5Ix�h4g�_@�M1���=L7W�އΪ���m��؊��/��,e��:�c�[i�YU�� ++�3�Tُ]�턲�Z�����x�7�ؽ�/�7'�b�L���/�Wj~���/�}F��_.s�;��Cj�a���]3��-���@����XLT�i��+���N�%��h���N���yViFط��C� ++o����" yr�EN��la�;u�{�\�u/�L�@롰�I������[>�y�=����\��R�G���~����c���^(rJ�|#�)]o����Ư��ߚ��o�Q�9�w� `뺛�nէ��~�3�5�G6��3�z=�o_G/�[~֮�詵&�������\����l��-���|��������u���K\;���a���q��@�v]����5��|A�T�ny����j��2j�o�uE�FSԈ~(�������$�+���Ra@^�������n�HR ++ ++��7Z]���&i�A�o�LM\zB��4G����JT����'�M�7DS ++��N����nQ�,��Ӕ���}�(1s-�4����騳�B�2�?���Co�k��N�R�4;W|�Aq����o�VP7U_5�����D��MW��l��������:85��4L��ہB��#zV"��5����E�I,��������s��~FYрZ��1�f� ���6C�m-��(IG�@!Y�D�.�T���nP_$0k�'�- U'm���^��V��W+�os�PwK#��|�F��$r}EA���9�*�_�F�×�i%J�K㴐0�w_}��r���J�S�.��֯�6�q��!(��%�JD�^<�%:�T扼�Ha�m��RD֝������+�*�Kt��{̾^ߵ�!��Z~�ޟf�D�$2��m�R�8�"�ϙ�E�}�FGi!�;7�3�Qk[����5��< }bg{���C�\^H3�4�t'�V'��U��~���ۄ�������SE}%2��i�b�ˊ��${�,�)���x��%9_���`M`�5��6���m9%����^����x�a�`�Y�.<�[�<�:�:�ț�`Fd#���sJ�"���^��b���q�#r���o���SH��RO�����tG�e�guS�AЈ���*Z�!c��Q+��Q���d͉��/�r+�4�Teq�a =������qƞ� �ć{)���OK�'fFU�h�D�|�[�{�A-]���������kG@�)x��M;Ư}՛�ֵ�Q̳�g������j�P=J�������O$D8�X ˱*v ++�]�EB~ۧ?��n��n��~�ڭ�\�4�H[��]K���QM4��$�V���!�~�������Z[��b���͆�,H�`n�2H��5� NsA"t�o;ŷf�����pIl�.I�Q;���)V��_ٟ�z��ޒd�����o_ˏ�����%Ϳ���f��j�#/m�t�E _!�l4�/�{���a#��i蟚@{ �x��j)�o-@�%M[�u���_���K������ �Q� $�Ȗȷ�����(+3<Ӂ�lϊ~���M�P�@)1�![>Q�x�ꬠy��G{���>��!Ť?;����#�m̭H����ӈ�Ӕ�U|j��SP��F5�j��#5��详��{�.p��$1:h��k1u�1K��;A%$��kL5�e�)��e�4���M�k�=��FH,B5�/���H1�&��!??@k�ݫt|��<�\�a4��A�<x=�wj���{��M���7~�]?��o���U��&'zDW遇^6u�v�c�aVxq�H�p��U���=��L��ԍ%�~�����-��iǯ��c`��4��h�zFY����w�@t���Nj���̌h=c��3�ַ7�t2__��v��]�"g�[��f�����5� �$f/N�Іl ��r/숮N5��ނ�t�����4g�3���uc�V�O���M��������->`mxK��M��| �>7�ϊ>52��@�I �ӧ�q����������?����Ͽ���������?����Ͽ���������?����Ͽ�������?r.U���� +\ No newline at end of file +diff --git a/src/ui/virtualkeyboard/virtualkeyboard.cpp b/src/ui/virtualkeyboard/virtualkeyboard.cpp +index 787ba43..a41184c 100644 +--- a/src/ui/virtualkeyboard/virtualkeyboard.cpp ++++ b/src/ui/virtualkeyboard/virtualkeyboard.cpp +@@ -32,7 +32,7 @@ public: + + void showVirtualKeyboard() { parent_->showVirtualKeyboardForcibly(); } + +- void hideVirtualKeyboard() { parent_->hideVirtualKeyboard(); } ++ void hideVirtualKeyboard() { parent_->hideVirtualKeyboardForcibly(); } + + void toggleVirtualKeyboard() { parent_->toggleVirtualKeyboard(); } + +@@ -323,13 +323,25 @@ void VirtualKeyboard::showVirtualKeyboardForcibly() { + showVirtualKeyboard(); + } + ++void VirtualKeyboard::hideVirtualKeyboardForcibly() { ++ if (!available_) { ++ return; ++ } ++ ++ hideVirtualKeyboard(); ++ ++ if (!instance_->virtualKeyboardAutoShow()) { ++ instance_->setInputMethodMode(InputMethodMode::PhysicalKeyboard); ++ } ++} ++ + void VirtualKeyboard::toggleVirtualKeyboard() { + if (!available_) { + return; + } + + if (visible_) { +- hideVirtualKeyboard(); ++ hideVirtualKeyboardForcibly(); + } else { + showVirtualKeyboardForcibly(); + } +diff --git a/src/ui/virtualkeyboard/virtualkeyboard.h b/src/ui/virtualkeyboard/virtualkeyboard.h +index 92bff2f..a94e096 100644 +--- a/src/ui/virtualkeyboard/virtualkeyboard.h ++++ b/src/ui/virtualkeyboard/virtualkeyboard.h +@@ -40,6 +40,7 @@ public: + void hideVirtualKeyboard() override; + + void showVirtualKeyboardForcibly(); ++ void hideVirtualKeyboardForcibly(); + void toggleVirtualKeyboard(); + + void updateInputPanel(InputContext *inputContext); Binary files /tmp/tmpol338pzz/6tHJZntjDv/fcitx5-5.1.7/debian/patches/0001-update-changelog.patch and /tmp/tmpol338pzz/NHXSvxDBno/fcitx5-5.1.11/debian/patches/0001-update-changelog.patch differ diff -Nru fcitx5-5.1.7/debian/patches/0002-update-changelog-optimize-code.patch fcitx5-5.1.11/debian/patches/0002-update-changelog-optimize-code.patch --- fcitx5-5.1.7/debian/patches/0002-update-changelog-optimize-code.patch 1970-01-01 08:00:00.000000000 +0800 +++ fcitx5-5.1.11/debian/patches/0002-update-changelog-optimize-code.patch 2025-03-20 13:50:02.000000000 +0800 @@ -0,0 +1,172 @@ +From: hantengc <hanteng@kylinos.cn> +Date: Tue, 10 Dec 2024 09:53:40 +0800 +Subject: update changelog : optimize code + +--- + src/modules/notificationitem/notificationitem.cpp | 23 +++++++++++++++------- + src/modules/notificationitem/notificationitem.h | 4 +++- + .../notificationitem/notificationitem_public.h | 4 ++++ + src/ui/classic/xcbui.cpp | 15 ++++---------- + src/ui/classic/xcbui.h | 2 -- + 5 files changed, 27 insertions(+), 21 deletions(-) + +diff --git a/src/modules/notificationitem/notificationitem.cpp b/src/modules/notificationitem/notificationitem.cpp +index b94f778..1182d32 100644 +--- a/src/modules/notificationitem/notificationitem.cpp ++++ b/src/modules/notificationitem/notificationitem.cpp +@@ -27,6 +27,7 @@ + + FCITX_DEFINE_LOG_CATEGORY(notificationitem, "notificationitem"); + #define SNI_DEBUG() FCITX_LOGC(::notificationitem, Debug) ++#define SNI_ERROR() FCITX_LOGC(::notificationitem, Error) + + namespace fcitx { + +@@ -363,7 +364,8 @@ void NotificationItem::maybeScheduleRegister() { + } + + void NotificationItem::enable() { +- if (enabled_) { ++ enabled_ += 1; ++ if (enabled_ > 1) { + return; + } + +@@ -373,13 +375,20 @@ void NotificationItem::enable() { + } + + void NotificationItem::disable() { +- if (!enabled_) { +- return; +- } ++ instance_->eventDispatcher().scheduleWithContext( ++ lifeTimeTracker_.watch(), [this]() { ++ if (enabled_ == 0) { ++ SNI_ERROR() ++ << "NotificationItem::disable called without enable."; ++ return; ++ } + +- SNI_DEBUG() << "Disable SNI"; +- enabled_ = false; +- setRegistered(false); ++ SNI_DEBUG() << "Disable SNI"; ++ enabled_ -= 1; ++ if (enabled_ == 0) { ++ setRegistered(false); ++ } ++ }); + } + + void NotificationItem::cleanUp() { +diff --git a/src/modules/notificationitem/notificationitem.h b/src/modules/notificationitem/notificationitem.h +index def6b0d..34c1f35 100644 +--- a/src/modules/notificationitem/notificationitem.h ++++ b/src/modules/notificationitem/notificationitem.h +@@ -10,6 +10,7 @@ + #include <memory> + #include <fcitx/addonmanager.h> + #include "fcitx-utils/dbus/servicewatcher.h" ++#include "fcitx-utils/trackableobject.h" + #include "fcitx/addoninstance.h" + #include "fcitx/instance.h" + #include "dbus_public.h" +@@ -60,10 +61,11 @@ private: + eventHandlers_; + std::unique_ptr<dbus::Slot> pendingRegisterCall_; + std::string sniWatcherName_; +- bool enabled_ = false; ++ uint32_t enabled_ = 0; + bool registered_ = false; + std::unique_ptr<EventSourceTime> scheduleRegister_; + HandlerTable<NotificationItemCallback> handlers_; ++ TrackableObject<void> lifeTimeTracker_; + }; + + } // namespace fcitx +diff --git a/src/modules/notificationitem/notificationitem_public.h b/src/modules/notificationitem/notificationitem_public.h +index ab06e6a..0403914 100644 +--- a/src/modules/notificationitem/notificationitem_public.h ++++ b/src/modules/notificationitem/notificationitem_public.h +@@ -7,6 +7,7 @@ + #ifndef _FCITX_MODULES_NOTIFICATIONITEM_NOTIFICATIONITEM_PUBLIC_H_ + #define _FCITX_MODULES_NOTIFICATIONITEM_NOTIFICATIONITEM_PUBLIC_H_ + ++#include <fcitx-utils/handlertable.h> + #include <fcitx/addoninstance.h> + + namespace fcitx { +@@ -15,12 +16,15 @@ using NotificationItemCallback = std::function<void(bool)>; + + } // namespace fcitx + ++// When enable is called + FCITX_ADDON_DECLARE_FUNCTION(NotificationItem, enable, void()); ++// Callback will be called when registered changed. + FCITX_ADDON_DECLARE_FUNCTION( + NotificationItem, watch, + std::unique_ptr<HandlerTableEntry<NotificationItemCallback>>( + NotificationItemCallback)); + FCITX_ADDON_DECLARE_FUNCTION(NotificationItem, disable, void()); ++// Can be used to query current state. + FCITX_ADDON_DECLARE_FUNCTION(NotificationItem, registered, bool()); + + #endif // _FCITX_MODULES_NOTIFICATIONITEM_NOTIFICATIONITEM_PUBLIC_H_ +diff --git a/src/ui/classic/xcbui.cpp b/src/ui/classic/xcbui.cpp +index 5a29edb..cdb2dd4 100644 +--- a/src/ui/classic/xcbui.cpp ++++ b/src/ui/classic/xcbui.cpp +@@ -742,15 +742,15 @@ int XCBUI::scaledDPI(int dpi) { + return targetDPI; + } + +-void XCBUI::resume() { updateTray(); } ++void XCBUI::resume() {} + + void XCBUI::suspend() { + inputWindow_->update(nullptr); +- updateTray(); ++ trayWindow_->suspend(); + } + +-void XCBUI::updateTray() { +- bool enableTray = enableTray_ && !parent_->suspended(); ++void XCBUI::setEnableTray(bool enable) { ++ bool enableTray = enable && !parent_->suspended(); + if (enableTray) { + trayWindow_->resume(); + } else { +@@ -758,13 +758,6 @@ void XCBUI::updateTray() { + } + } + +-void XCBUI::setEnableTray(bool enable) { +- if (enable != enableTray_) { +- enableTray_ = enable; +- updateTray(); +- } +-} +- + void XCBUI::scheduleUpdateScreen() { + initScreenEvent_->setNextInterval(100000); + initScreenEvent_->setOneShot(); +diff --git a/src/ui/classic/xcbui.h b/src/ui/classic/xcbui.h +index d381ab9..b2e90ed 100644 +--- a/src/ui/classic/xcbui.h ++++ b/src/ui/classic/xcbui.h +@@ -73,7 +73,6 @@ private: + void refreshManager(); + void readXSettings(); + void initScreen(); +- void updateTray(); + void scheduleUpdateScreen(); + + static void destroyCairoDevice(cairo_device_t *device); +@@ -90,7 +89,6 @@ private: + bool needFreeColorMap_ = false; + std::unique_ptr<XCBInputWindow> inputWindow_; + std::unique_ptr<XCBTrayWindow> trayWindow_; +- bool enableTray_ = false; + + std::string iconThemeName_; + diff -Nru fcitx5-5.1.7/debian/patches/0002-update-changelog.patch fcitx5-5.1.11/debian/patches/0002-update-changelog.patch --- fcitx5-5.1.7/debian/patches/0002-update-changelog.patch 2024-08-28 10:05:23.000000000 +0800 +++ fcitx5-5.1.11/debian/patches/0002-update-changelog.patch 1970-01-01 08:00:00.000000000 +0800 @@ -1,3211 +0,0 @@ -From: hanteng <hanteng@kylinos.cn> -Date: Thu, 19 Oct 2023 10:28:52 +0800 -Subject: update changelog - ---- - data/default/zh_CN | 5 +- - data/fcitx5-configtool.desktop.in.in | 1 + - data/org.fcitx.Fcitx5.desktop.in.in | 1 + - po/LINGUAS | 1 + - po/bo_CN.po | 2568 ++++++++++++++++++++ - src/lib/fcitx/globalconfig.cpp | 5 +- - src/modules/CMakeLists.txt | 1 + - src/modules/devicestatusmanager/CMakeLists.txt | 10 + - .../devicestatusmanager.conf.in.in | 12 + - .../devicestatusmanager/devicestatusmanager.cpp | 79 + - .../devicestatusmanager/devicestatusmanager.h | 40 + - .../physicalkeyboardwatcherstrategy.cpp | 35 + - .../physicalkeyboardwatcherstrategy.h | 27 + - .../devicestatusmanager/statusmanagerwatcher.cpp | 102 + - .../devicestatusmanager/statusmanagerwatcher.h | 104 + - .../tabletmodewatcherstrategy.cpp | 34 + - .../tabletmodewatcherstrategy.h | 27 + - 17 files changed, 3047 insertions(+), 5 deletions(-) - create mode 100644 po/bo_CN.po - create mode 100644 src/modules/devicestatusmanager/CMakeLists.txt - create mode 100644 src/modules/devicestatusmanager/devicestatusmanager.conf.in.in - create mode 100644 src/modules/devicestatusmanager/devicestatusmanager.cpp - create mode 100644 src/modules/devicestatusmanager/devicestatusmanager.h - create mode 100644 src/modules/devicestatusmanager/physicalkeyboardwatcherstrategy.cpp - create mode 100644 src/modules/devicestatusmanager/physicalkeyboardwatcherstrategy.h - create mode 100644 src/modules/devicestatusmanager/statusmanagerwatcher.cpp - create mode 100644 src/modules/devicestatusmanager/statusmanagerwatcher.h - create mode 100644 src/modules/devicestatusmanager/tabletmodewatcherstrategy.cpp - create mode 100644 src/modules/devicestatusmanager/tabletmodewatcherstrategy.h - -diff --git a/data/default/zh_CN b/data/default/zh_CN -index b58579e..3d74c47 100644 ---- a/data/default/zh_CN -+++ b/data/default/zh_CN -@@ -1,3 +1,4 @@ - [DefaultInputMethod] --0=pinyin --1=rime -+0=sogou-ime-ng-fcitx5-kylin-desktop -+1=pinyin -+2=rime -diff --git a/data/fcitx5-configtool.desktop.in.in b/data/fcitx5-configtool.desktop.in.in -index f0b0908..2eec222 100644 ---- a/data/fcitx5-configtool.desktop.in.in -+++ b/data/fcitx5-configtool.desktop.in.in -@@ -10,3 +10,4 @@ X-KDE-StartupNotify=false - StartupNotify=false - X-AppStream-Ignore=true - NotShowIn=KDE -+NoDisplay=true -diff --git a/data/org.fcitx.Fcitx5.desktop.in.in b/data/org.fcitx.Fcitx5.desktop.in.in -index 58793b4..c1ecc68 100644 ---- a/data/org.fcitx.Fcitx5.desktop.in.in -+++ b/data/org.fcitx.Fcitx5.desktop.in.in -@@ -14,3 +14,4 @@ X-KDE-autostart-after=panel - X-KDE-StartupNotify=false - X-KDE-Wayland-VirtualKeyboard=true - X-KDE-Wayland-Interfaces=org_kde_plasma_window_management -+NoDisplay=true -\ No newline at end of file -diff --git a/po/LINGUAS b/po/LINGUAS -index d22d08f..6641003 100644 ---- a/po/LINGUAS -+++ b/po/LINGUAS -@@ -10,4 +10,5 @@ ko - ru - vi - zh_CN -+bo_CN - zh_TW -diff --git a/po/bo_CN.po b/po/bo_CN.po -new file mode 100644 -index 0000000..59bf845 ---- /dev/null -+++ b/po/bo_CN.po -@@ -0,0 +1,2568 @@ -+msgid "" -+msgstr "" -+"Project-Id-Version: fcitx5\n" -+"Language: bo_CN\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"Plural-Forms: nplurals=1; plural=0;\n" -+ -+#: data/fcitx5-diagnose.sh:883 -+msgid "${1} Environment Variables:" -+msgstr "${1} 环境变量:" -+ -+#: data/fcitx5-diagnose.sh:869 -+msgid "${1} Settings Directory:" -+msgstr "${1} 设置目录:" -+ -+#: data/fcitx5-diagnose.sh:943 -+msgid "${1} is not running." -+msgstr "${1} 没有在运行。" -+ -+#: data/fcitx5-diagnose.sh:892 -+msgid "${1} is not set." -+msgstr "${1} 没有设定。" -+ -+#: data/fcitx5-diagnose.sh:889 -+msgid "${1} is set to ${2}." -+msgstr "${1} 设定为 ${2}。" -+ -+#: data/fcitx5-diagnose.sh:548 -+msgid "${1} not found." -+msgstr "${1} 未找到." -+ -+#: data/fcitx5-diagnose.sh:960 -+msgid "${1} works properly." -+msgstr "${1} 工作正常。" -+ -+#: src/lib/fcitx/instance.cpp:382 -+msgid "(Not available)" -+msgstr "(不可用)" -+ -+#: src/modules/unicode/unicode.cpp:329 -+msgid "(Type to search unicode by code or description)" -+msgstr "(输入编码或者描述来搜索 Unicode 字符)" -+ -+#: data/fcitx5-diagnose.sh:690 -+msgid "/Beginner%27s_Guide" -+msgstr "/Beginner%27s_Guide/zh-cn" -+ -+#: data/fcitx5-diagnose.sh:737 -+msgid "/Hall_of_Shame_for_Linux_IME_Support" -+msgstr "/Hall_of_Shame_for_Linux_IME_Support" -+ -+#: data/fcitx5-diagnose.sh:701 -+msgid "/Input_method_related_environment_variables" -+msgstr "/Input_method_related_environment_variables/zh-cn" -+ -+#: data/fcitx5-diagnose.sh:717 -+msgid "/Note_for_GNOME_Later_than_3.6" -+msgstr "/Note_for_GNOME_Later_than_3.6" -+ -+#: data/fcitx5-diagnose.sh:741 -+msgid "/XIM" -+msgstr "/XIM/zh-cn" -+ -+#: src/modules/unicode/charselectdata.cpp:221 -+msgid "<Low Surrogate>" -+msgstr "<低半代理区>" -+ -+#: src/modules/unicode/charselectdata.cpp:217 -+msgid "<Non Private Use High Surrogate>" -+msgstr "<非专用高半代理区>" -+ -+#: src/modules/unicode/charselectdata.cpp:219 -+msgid "<Private Use High Surrogate>" -+msgstr "<专用高半代理区>" -+ -+#: src/modules/unicode/charselectdata.cpp:223 -+msgid "<Private Use>" -+msgstr "<专用区>" -+ -+#: src/modules/unicode/charselectdata.cpp:253 -+msgid "<not assigned>" -+msgstr "<未指派>" -+ -+#: src/lib/fcitx/globalconfig.cpp:81 -+msgid "Activate Input Method" -+msgstr "激活输入法" -+ -+#: src/lib/fcitx/globalconfig.cpp:137 -+msgid "Active By Default" -+msgstr "默认状态为激活" -+ -+#: src/lib/fcitx-utils/key.cpp:109 -+msgctxt "Key name" -+msgid "Add Favorite" -+msgstr "添加收藏" -+ -+#: src/modules/unicode/unicode.conf.in.in:4 -+msgid "Add Unicode Typing Support" -+msgstr "添加 Unicode 输入支持" -+ -+#: data/fcitx5-diagnose.sh:1571 -+msgid "Addon Config Dir:" -+msgstr "插件配置文件目录:" -+ -+#: data/fcitx5-diagnose.sh:1656 -+msgid "Addon Libraries:" -+msgstr "插件库: " -+ -+#: data/fcitx5-diagnose.sh:1599 -+msgid "Addon List:" -+msgstr "插件列表:" -+ -+#: src/lib/fcitx-utils/key.cpp:111 -+msgctxt "Key name" -+msgid "Adjust Brightness" -+msgstr "调整亮度" -+ -+#: src/lib/fcitx/globalconfig.cpp:25 -+msgid "All" -+msgstr "所有" -+ -+#: data/fcitx5-diagnose.sh:1334 -+msgid "All found Gtk ${1} immodule files exist." -+msgstr "找到的全部 Gtk ${1} 输入法模块文件均存在。" -+ -+#: data/fcitx5-diagnose.sh:1682 -+msgid "All libraries for all addons are found." -+msgstr "所有插件所需的库都被找到。" -+ -+#: data/fcitx5-diagnose.sh:837 -+msgid "All locales:" -+msgstr "全部可用 locale:" -+ -+#: src/modules/xcb/xcbmodule.h:30 -+msgid "Allow Overriding System XKB Settings" -+msgstr "允许重写系统 XKB 设置" -+ -+#: src/modules/wayland/waylandmodule.h:31 -+msgid "Allow Overriding System XKB Settings (Only support KDE 5)" -+msgstr "允许重写系统 XKB 设置 (仅支持 KDE 5)" -+ -+#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:29 -+msgid "Alt" -+msgstr "Alt" -+ -+#: src/lib/fcitx-utils/key.cpp:480 -+msgctxt "Key name" -+msgid "Alt" -+msgstr "Alt" -+ -+#: src/modules/xcb/xcbmodule.h:33 -+msgid "Always set layout to be only group layout" -+msgstr "总是设置布局为只有分组布局" -+ -+#: src/lib/fcitx-utils/key.cpp:116 -+msgctxt "Key name" -+msgid "Application Left" -+msgstr "应用程序左" -+ -+#: src/lib/fcitx-utils/key.cpp:117 -+msgctxt "Key name" -+msgid "Application Right" -+msgstr "应用程序右" -+ -+#: src/im/keyboard/keyboard.h:87 -+msgid "Applications disabled for long press" -+msgstr "禁用长按的程序" -+ -+#: src/lib/fcitx-utils/key.cpp:176 -+msgctxt "Key name" -+msgid "Audio Cycle Track" -+msgstr "音频循环音轨" -+ -+#: src/lib/fcitx-utils/key.cpp:174 -+msgctxt "Key name" -+msgid "Audio Random Play" -+msgstr "音频随机播放" -+ -+#: src/lib/fcitx-utils/key.cpp:173 -+msgctxt "Key name" -+msgid "Audio Repeat" -+msgstr "音频重复" -+ -+#: src/ui/classic/theme.h:153 -+msgid "Author" -+msgstr "作者" -+ -+#: src/lib/fcitx-utils/key.cpp:163 -+msgctxt "Key name" -+msgid "Away" -+msgstr "离开" -+ -+#: src/lib/fcitx-utils/key.cpp:58 -+msgctxt "Key name" -+msgid "Back" -+msgstr "后退" -+ -+#: src/lib/fcitx-utils/key.cpp:115 -+msgctxt "Key name" -+msgid "Back Forward" -+msgstr "向后" -+ -+#: src/modules/spell/spell.h:38 -+msgid "Backends" -+msgstr "后端" -+ -+#: src/ui/classic/theme.h:118 src/ui/classic/theme.h:138 -+msgid "Background" -+msgstr "背景" -+ -+#: src/ui/classic/theme.h:49 -+msgid "Background Image" -+msgstr "背景图片" -+ -+#: src/lib/fcitx-utils/key.cpp:42 -+msgctxt "Key name" -+msgid "Backspace" -+msgstr "退格" -+ -+#: data/fcitx5-diagnose.sh:810 -+msgid "Bash Version:" -+msgstr "Bash 版本:" -+ -+#: src/lib/fcitx-utils/key.cpp:169 -+msgctxt "Key name" -+msgid "Battery" -+msgstr "电池" -+ -+#: data/fcitx5-diagnose.sh:689 -+msgid "Beginner's Guide" -+msgstr "入门指南" -+ -+#: src/lib/fcitx/globalconfig.cpp:186 -+msgid "Behavior" -+msgstr "行为" -+ -+#: src/lib/fcitx-utils/key.cpp:187 -+msgctxt "Key name" -+msgid "Blue" -+msgstr "蓝" -+ -+#: src/lib/fcitx-utils/key.cpp:170 -+msgctxt "Key name" -+msgid "Bluetooth" -+msgstr "蓝牙" -+ -+#: src/ui/classic/theme.h:107 -+msgid "Blur Margin" -+msgstr "模糊区域边距" -+ -+#: src/ui/classic/theme.h:106 -+msgid "Blur mask" -+msgstr "模糊遮罩" -+ -+#: src/lib/fcitx-utils/key.cpp:118 -+msgctxt "Key name" -+msgid "Book" -+msgstr "书" -+ -+#: src/ui/classic/theme.h:61 -+msgid "Border Color" -+msgstr "边框颜色" -+ -+#: src/ui/classic/theme.h:69 -+msgid "Border width" -+msgstr "边框宽度" -+ -+#: src/ui/classic/theme.h:33 -+msgid "Bottom Center" -+msgstr "底部居中" -+ -+#: src/ui/classic/theme.h:33 -+msgid "Bottom Left" -+msgstr "左下" -+ -+#: src/ui/classic/theme.h:34 -+msgid "Bottom Right" -+msgstr "右下" -+ -+#: src/lib/fcitx-utils/key.cpp:129 -+msgctxt "Key name" -+msgid "Browser" -+msgstr "浏览器" -+ -+#: src/lib/fcitx-utils/key.cpp:119 -+msgctxt "Key name" -+msgid "CD" -+msgstr "CD" -+ -+#: src/lib/fcitx-utils/key.cpp:120 -+msgctxt "Key name" -+msgid "Calculator" -+msgstr "计算器" -+ -+#: src/lib/fcitx-utils/key.cpp:229 -+msgctxt "Key name" -+msgid "Cancel" -+msgstr "取消" -+ -+#: src/im/keyboard/longpress.h:19 -+msgid "Candidates" -+msgstr "候选" -+ -+#: data/fcitx5-diagnose.sh:958 -+msgid "Cannot connect to ${1} correctly." -+msgstr "无法连接到 ${1}。" -+ -+#: data/fcitx5-diagnose.sh:803 -+msgid "Cannot determine desktop environment." -+msgstr "无法确定桌面环境。" -+ -+#: data/fcitx5-diagnose.sh:1590 -+msgid "Cannot find ${1} addon config directory." -+msgstr "无法找到 ${1} 的插件配置目录。" -+ -+#: data/fcitx5-diagnose.sh:1082 -+msgid "Cannot find ${1} executable!" -+msgstr "无法找到 ${1} 的可执行文件!" -+ -+#: data/fcitx5-diagnose.sh:1484 data/fcitx5-diagnose.sh:1537 -+msgid "Cannot find ${1} im module for gtk ${2} in cache." -+msgstr "无法在缓存中找到 gtk ${2} 的 ${1} 输入法模块。" -+ -+#: data/fcitx5-diagnose.sh:1401 -+msgid "Cannot find ${1} im module for gtk ${2}." -+msgstr "无法找到 gtk ${2} 的 ${1} 输入法模块。" -+ -+#: data/fcitx5-diagnose.sh:1260 data/fcitx5-diagnose.sh:1265 -+msgid "Cannot find ${1} input method module for ${2}." -+msgstr "无法找到 ${2} 的 ${1} 输入法模块。" -+ -+#: data/fcitx5-diagnose.sh:1395 -+msgid "Cannot find ${2} for gtk ${1}" -+msgstr "无法找到 gtk ${1} 的 ${2}。" -+ -+#: data/fcitx5-diagnose.sh:978 -+msgid "Cannot find DBus name ${1} owner." -+msgstr "找不到 DBus 名称 ${1} 的所有者。" -+ -+#: data/fcitx5-diagnose.sh:1092 -+msgid "Cannot find a GUI config tool, please install one of ${1}, or ${2}." -+msgstr "无法找到一个图形界面的配置工具,请安装 ${1} 或 ${2}。" -+ -+#: data/fcitx5-diagnose.sh:1685 -+msgid "Cannot find enabled ${1} user interface!" -+msgstr "无法找到启用的 ${1} 用户界面!" -+ -+#: data/fcitx5-diagnose.sh:921 -+msgid "Cannot find fcitx5 executable!" -+msgstr "无法找到 fcitx5 可执行文件!" -+ -+#: data/fcitx5-diagnose.sh:1664 -+msgid "Cannot find file ${1} of addon ${2}." -+msgstr "无法找到插件 ${2} 的文件 ${1}。" -+ -+#: data/fcitx5-diagnose.sh:1674 -+msgid "Cannot find following required libraries for ${1} of addon ${2}." -+msgstr "无法找到插件 ${2} 所需的库 ${1}。" -+ -+#: data/fcitx5-diagnose.sh:1479 data/fcitx5-diagnose.sh:1532 -+msgid "Cannot find immodules cache for gtk ${1}" -+msgstr "无法找到 gtk ${1} 的输入法模块缓存" -+ -+#: data/fcitx5-diagnose.sh:1704 -+msgid "" -+"Cannot find kimpanel dbus interface or enabled non-kimpanel user interface." -+msgstr "无法找到 kimpanel dbus 接口或非 kimpanel 用户界面." -+ -+#: data/fcitx5-diagnose.sh:986 -+msgid "Cannot find pid of DBus name ${1} owner." -+msgstr "找不到 DBus 名称 ${1} 的 pid 所有者。" -+ -+#: data/fcitx5-diagnose.sh:1158 -+msgid "Cannot find xim_server on root window." -+msgstr "无法在根窗口找到 xim_server。" -+ -+#: data/fcitx5-diagnose.sh:1132 -+msgid "Cannot interpret XMODIFIERS: ${1}." -+msgstr "无法解析 XMODIFIERS: ${1}." -+ -+#: src/lib/fcitx-utils/key.cpp:53 -+msgctxt "Key name" -+msgid "CapsLock" -+msgstr "大写锁定" -+ -+#: src/ui/classic/theme.h:32 -+msgid "Center" -+msgstr "居中" -+ -+#: src/ui/classic/theme.h:31 -+msgid "Center Left" -+msgstr "左侧居中" -+ -+#: src/ui/classic/theme.h:32 -+msgid "Center Right" -+msgstr "右侧居中" -+ -+#: data/fcitx5-configtool.desktop.in.in:5 -+msgid "Change Fcitx 5 Configuration" -+msgstr "བཟོ་བཅོས་རྒྱག་དགོས། Fcitx 5 བཀོད་སྒྲིག་བཅས་བྱ་དགོས།" -+ -+#: src/ui/classic/theme.h:143 -+msgid "Check box" -+msgstr "复选框" -+ -+#: src/im/keyboard/keyboard.h:56 src/modules/quickphrase/quickphrase.h:41 -+msgid "Choose key modifier" -+msgstr "选词修饰键" -+ -+#: src/ui/classic/classicui.conf.in.in:3 -+msgid "Classic User Interface" -+msgstr "经典用户界面" -+ -+#: src/lib/fcitx-utils/key.cpp:121 -+msgctxt "Key name" -+msgid "Clear" -+msgstr "清空" -+ -+#: src/ui/classic/theme.h:95 -+msgid "Click Margin" -+msgstr "点击区域边距" -+ -+#: src/modules/clipboard/clipboard.conf.in.in:3 -+msgid "Clipboard" -+msgstr "剪贴板" -+ -+#: src/modules/clipboard/clipboard.cpp:345 -+msgid "Clipboard (Press BackSpace/Delete to clear history):" -+msgstr "剪贴板 (按退格/删除键清空历史): " -+ -+#: src/lib/fcitx-utils/key.cpp:122 -+msgctxt "Key name" -+msgid "Close" -+msgstr "关闭" -+ -+#: src/lib/fcitx-utils/key.cpp:215 -+msgctxt "Key name" -+msgid "Code input" -+msgstr "代码输入" -+ -+#: src/ui/classic/theme.h:53 -+msgid "Color" -+msgstr "颜色" -+ -+#: src/lib/fcitx-utils/key.cpp:113 -+msgctxt "Key name" -+msgid "Community" -+msgstr "社区" -+ -+#: src/im/keyboard/keyboard.cpp:641 -+msgid "Completion" -+msgstr "补全" -+ -+#: src/im/keyboard/keyboard.cpp:632 -+msgid "Completion is disabled." -+msgstr "补全已禁用。" -+ -+#: src/im/keyboard/keyboard.cpp:635 -+msgid "Completion is enabled temporarily." -+msgstr "已暂时启用补全。" -+ -+#: src/im/keyboard/keyboard.cpp:637 -+msgid "Completion is enabled." -+msgstr "已启用补全。" -+ -+#: data/fcitx5-diagnose.sh:1034 -+msgid "Config GUI for gtk${1} not found." -+msgstr "未找到 gtk${1} 的配置界面." -+ -+#: data/fcitx5-diagnose.sh:1030 -+msgid "Config GUI for gtk${1}:" -+msgstr "用于 gtk${1} 的配置界面:" -+ -+#: data/fcitx5-diagnose.sh:1064 -+msgid "Config GUI for kde:" -+msgstr "KDE 的配置界面:" -+ -+#: data/fcitx5-diagnose.sh:1053 -+msgid "Config GUI for qt not found." -+msgstr "未找到 qt 的配置界面。" -+ -+#: data/fcitx5-diagnose.sh:1051 -+msgid "Config GUI for qt:" -+msgstr "Qt 的配置界面:" -+ -+#: data/fcitx5-diagnose.sh:1080 -+msgid "Config Tool Wrapper:" -+msgstr "配置工具封装:" -+ -+#: data/fcitx5-diagnose.sh:1798 -+msgid "Configuration:" -+msgstr "配置:" -+ -+#: src/ui/classic/xcbtraywindow.cpp:38 -+#: src/modules/notificationitem/dbusmenu.cpp:247 -+msgid "Configure" -+msgstr "配置" -+ -+#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 -+msgid "Control" -+msgstr "Control" -+ -+#: src/lib/fcitx-utils/key.cpp:479 -+msgctxt "Key name" -+msgid "Control" -+msgstr "Control" -+ -+#: src/lib/fcitx-utils/key.cpp:123 -+msgctxt "Key name" -+msgid "Copy" -+msgstr "复制" -+ -+#: data/fcitx5-diagnose.sh:871 -+msgid "Current ${1} settings directory is ${2} (${3})." -+msgstr "当前 ${1} 设置目录是 ${2} (${3})。" -+ -+#: data/fcitx5-diagnose.sh:839 -+msgid "Current locale:" -+msgstr "当前 locale:" -+ -+#: data/fcitx5-diagnose.sh:877 -+msgid "Current user:" -+msgstr "当前用户:" -+ -+#: data/fcitx5-diagnose.sh:865 -+msgid "Current value of ${1} is ${2} (${3})." -+msgstr "${1} 的当前值是 ${2} (${3})。" -+ -+#: src/modules/spell/spell.h:22 -+msgid "Custom" -+msgstr "自定义" -+ -+#: src/lib/fcitx/globalconfig.cpp:174 -+msgid "Custom Xkb Option" -+msgstr "自定义 Xkb 选项" -+ -+#: src/lib/fcitx-utils/key.cpp:124 -+msgctxt "Key name" -+msgid "Cut" -+msgstr "剪切" -+ -+#: src/modules/dbus/dbus.conf.in.in:3 -+msgid "DBus" -+msgstr "DBus" -+ -+#: src/frontend/dbusfrontend/dbusfrontend.conf.in.in:3 -+msgid "DBus Frontend" -+msgstr "DBus 前端" -+ -+#: src/modules/notificationitem/notificationitem.conf.in.in:4 -+msgid "DBus based new Freedesktop.org tray icon" -+msgstr "基于 DBus 的新 Freedesktop.org 托盘图标" -+ -+#: data/fcitx5-diagnose.sh:966 -+msgid "DBus interface:" -+msgstr "DBus 界面:" -+ -+#: src/lib/fcitx-utils/key.cpp:126 -+msgctxt "Key name" -+msgid "DOS" -+msgstr "DOS" -+ -+#: src/lib/fcitx/globalconfig.cpp:90 -+msgid "Deactivate Input Method" -+msgstr "取消激活输入法" -+ -+#: data/fcitx5-diagnose.sh:990 -+msgid "Debug information from dbus:" -+msgstr "来自 dbus 的调试信息:" -+ -+#: src/lib/fcitx/inputmethodmanager.cpp:138 src/lib/fcitx/instance.cpp:329 -+#: src/ui/classic/themes/default/theme.conf.in:3 -+msgid "Default" -+msgstr "默认" -+ -+#: src/lib/fcitx/globalconfig.cpp:126 -+msgid "Default Next Candidate" -+msgstr "默认跳转下一个候选词" -+ -+#: src/lib/fcitx/globalconfig.cpp:110 -+msgid "Default Next page" -+msgstr "默认下一页" -+ -+#: src/lib/fcitx/globalconfig.cpp:120 -+msgid "Default Previous Candidate" -+msgstr "默认跳转前一个候选词" -+ -+#: src/lib/fcitx/globalconfig.cpp:98 -+msgid "Default Previous page" -+msgstr "默认上一页" -+ -+#: src/lib/fcitx/globalconfig.cpp:158 -+msgid "Default page size" -+msgstr "默认页大小" -+ -+#: src/lib/fcitx-utils/key.cpp:195 -+msgctxt "Key name" -+msgid "Delete" -+msgstr "删除" -+ -+#: src/ui/classic/theme.h:155 -+msgid "Description" -+msgstr "描述" -+ -+#: data/fcitx5-diagnose.sh:800 -+msgid "Desktop Environment:" -+msgstr "桌面环境:" -+ -+#: data/fcitx5-diagnose.sh:805 -+msgid "Desktop environment is ${1}." -+msgstr "桌面环境为 ${1}。" -+ -+#: data/fcitx5-diagnose.sh:851 -+msgid "Directories:" -+msgstr "目录:" -+ -+#: src/lib/fcitx-utils/key.cpp:125 -+msgctxt "Key name" -+msgid "Display" -+msgstr "显示" -+ -+#: src/modules/notifications/notifications.cpp:203 -+msgid "Do not show again" -+msgstr "不要再显示" -+ -+#: src/lib/fcitx-utils/key.cpp:127 -+msgctxt "Key name" -+msgid "Documents" -+msgstr "文档" -+ -+#: src/lib/fcitx-utils/key.cpp:50 -+msgctxt "Key name" -+msgid "Down" -+msgstr "下" -+ -+#: src/modules/quickphrase/quickphrase.h:47 -+msgid "Editor" -+msgstr "编辑器" -+ -+#: src/lib/fcitx-utils/key.cpp:213 -+msgctxt "Key name" -+msgid "Eisu Shift" -+msgstr "英数 Shift" -+ -+#: src/lib/fcitx-utils/key.cpp:214 -+msgctxt "Key name" -+msgid "Eisu toggle" -+msgstr "英数切换" -+ -+#: src/lib/fcitx-utils/key.cpp:102 -+msgctxt "Key name" -+msgid "Eject" -+msgstr "弹出" -+ -+#: src/modules/emoji/emoji.conf.in.in:3 -+msgid "Emoji" -+msgstr "颜文字" -+ -+#: src/im/keyboard/longpress.h:17 -+msgid "Enable" -+msgstr "启用" -+ -+#: src/ui/classic/theme.h:104 -+msgid "Enable Blur on KWin" -+msgstr "KWin 下启用模糊" -+ -+#: src/modules/quickphrase/quickphrase.h:43 -+msgid "Enable Spell check" -+msgstr "启用拼写检查" -+ -+#: src/im/keyboard/keyboard.h:51 -+msgid "Enable emoji in hint" -+msgstr "在输入提示中启用 Emoji" -+ -+#: src/im/keyboard/keyboard.h:54 -+msgid "Enable emoji in quickphrase" -+msgstr "在快速输入中启用颜文字" -+ -+#: src/im/keyboard/keyboard.h:59 -+msgid "Enable hint by default" -+msgstr "默认启用提示" -+ -+#: src/modules/spell/spell.h:23 -+msgid "Enchant" -+msgstr "Enchant" -+ -+#: src/lib/fcitx-utils/key.cpp:46 -+msgctxt "Key name" -+msgid "End" -+msgstr "行尾" -+ -+#: src/im/keyboard/longpress.h:26 -+msgid "Entries" -+msgstr "项目" -+ -+#: src/lib/fcitx/globalconfig.cpp:57 -+msgid "Enumerate Input Method Backward" -+msgstr "向后切换输入法" -+ -+#: src/lib/fcitx/globalconfig.cpp:50 -+msgid "Enumerate Input Method Forward" -+msgstr "向前切换输入法" -+ -+#: src/lib/fcitx/globalconfig.cpp:74 -+msgid "Enumerate Input Method Group Backward" -+msgstr "向后切换输入法分组" -+ -+#: src/lib/fcitx/globalconfig.cpp:67 -+msgid "Enumerate Input Method Group Forward" -+msgstr "向前切换输入分组" -+ -+#: src/lib/fcitx/globalconfig.cpp:39 -+msgid "Enumerate when press trigger key repeatedly" -+msgstr "反复按切换键时进行轮换" -+ -+#: data/fcitx5-diagnose.sh:1110 -+msgid "" -+"Environment variable ${1} is \"${2}\" instead of \"${3}\". Please check if " -+"you have exported it incorrectly in any of your init files." -+msgstr "" -+"环境变量 ${1} 的值被设为了“${2}”而不是“${3}”。请检查您是否在某个初始化文件中" -+"错误的设置了它的值。" -+ -+#: data/fcitx5-diagnose.sh:857 -+msgid "Environment variable ${1} is not set." -+msgstr "环境变量 ${1} 没有设定。" -+ -+#: data/fcitx5-diagnose.sh:1104 -+msgid "Environment variable ${1} is set to \"${2}\" correctly." -+msgstr "环境变量 ${1} 已经正确地设为了“${2}”。" -+ -+#: data/fcitx5-diagnose.sh:861 -+msgid "Environment variable ${1} is set to ${2}." -+msgstr "环境变量 ${1} 是设定为 ${2} 。" -+ -+#: data/fcitx5-diagnose.sh:815 -+msgid "Environment:" -+msgstr "环境:" -+ -+#: data/fcitx5-diagnose.sh:843 -+msgid "Error occurs when running ${1}. Please check your locale settings." -+msgstr "运行 ${1} 时发生错误. 请检查您的区域设置." -+ -+#: src/lib/fcitx-utils/key.cpp:196 -+msgctxt "Key name" -+msgid "Escape" -+msgstr "Escape" -+ -+#: src/lib/fcitx-utils/key.cpp:230 -+msgctxt "Key name" -+msgid "Execute" -+msgstr "执行" -+ -+#: src/ui/classic/xcbtraywindow.cpp:40 -+#: src/modules/notificationitem/dbusmenu.cpp:261 -+msgid "Exit" -+msgstr "退出" -+ -+#: data/fcitx5-diagnose.sh:1473 data/fcitx5-diagnose.sh:1526 -+msgid "Failed to find ${1} in immodule cache at ${2}" -+msgstr "无法输入法模块缓存 ${2} 中找到 ${1}" -+ -+#: data/fcitx5-diagnose.sh:1389 -+msgid "Failed to find ${1} in the output of ${2}" -+msgstr "无法在 ${2} 的输出中找到 ${1}。" -+ -+#: src/modules/quickphrase/quickphrase.h:45 -+msgid "Fallback Spell check language" -+msgstr "备选拼写检查语言" -+ -+#: src/lib/fcitx-utils/key.cpp:72 -+msgctxt "Key name" -+msgid "Favorites" -+msgstr "收藏" -+ -+#: data/org.fcitx.Fcitx5.desktop.in.in:3 -+#: data/org.fcitx.Fcitx5.metainfo.xml.in:6 -+msgid "Fcitx 5" -+msgstr "Fcitx 5" -+ -+#: data/fcitx5-configtool.desktop.in.in:3 -+msgid "Fcitx 5 Configuration" -+msgstr "Fcitx 5 བཀོད་སྒྲིག་བཅས་བྱ་དགོས།" -+ -+#: data/fcitx5-diagnose.sh:1570 -+msgid "Fcitx Addons:" -+msgstr "Fcitx 插件:" -+ -+#: data/fcitx5-diagnose.sh:1079 -+msgid "Fcitx Configure UI:" -+msgstr "Fcitx 配置界面:" -+ -+#: data/fcitx5-diagnose.sh:918 -+msgid "Fcitx State:" -+msgstr "Fcitx 状态:" -+ -+#: data/org.fcitx.Fcitx5.metainfo.xml.in:9 -+msgid "" -+"Fcitx is an input method framework. It can help you to type your own " -+"language. It also features variant choice of addons that improve your typing " -+"experience." -+msgstr "" -+"Fcitx 是一个输入法框架。它可以帮助您输入您需要的语言。它也支持许多不同的附加" -+"组件来改善输入体验。" -+ -+#: data/fcitx5-diagnose.sh:932 -+msgid "Fcitx version: ${1}" -+msgstr "Fcitx 版本: ${1}" -+ -+#: src/frontend/fcitx4frontend/fcitx4frontend.conf.in.in:3 -+msgid "Fcitx4 Frontend" -+msgstr "Fcitx4 前端" -+ -+#: src/lib/fcitx-utils/key.cpp:112 -+msgctxt "Key name" -+msgid "Finance" -+msgstr "金融" -+ -+#: src/lib/fcitx-utils/key.cpp:190 -+msgctxt "Key name" -+msgid "Find" -+msgstr "查找" -+ -+#: src/ui/classic/classicui.h:100 -+msgid "Font" -+msgstr "字体" -+ -+#: src/ui/classic/classicui.h:130 -+msgid "" -+"For example, display character with Chinese variant when using Pinyin and " -+"Japanese variant when using Anthy. The font configuration needs to support " -+"this to use this feature." -+msgstr "" -+"例如,用拼音时显示中文的异体字,用 Anthy 时显示日语的异体字。字体配置需要支持" -+"这个功能。" -+ -+#: src/ui/classic/classicui.h:140 -+msgid "Force font DPI on Wayland" -+msgstr "固定 Wayland 的字体 DPI" -+ -+#: src/lib/fcitx-utils/key.cpp:59 -+msgctxt "Key name" -+msgid "Forward" -+msgstr "向前" -+ -+#: data/fcitx5-diagnose.sh:1249 -+msgid "Found ${1} ${2} module: ${3}." -+msgstr "找到了 ${1} ${2} 模块:${3}。" -+ -+#: data/fcitx5-diagnose.sh:952 -+msgid "Found ${1} ${2} process:" -+msgstr "找到了 ${1} 个 ${2} 进程:" -+ -+#: data/fcitx5-diagnose.sh:950 -+msgid "Found ${1} ${2} processes:" -+msgstr "找到了 ${1} 个 ${2} 进程:" -+ -+#: data/fcitx5-diagnose.sh:1593 -+msgid "Found ${1} addon config directory: ${2}." -+msgstr "找到了 ${1} 的插件配置目录:${2}。" -+ -+#: data/fcitx5-diagnose.sh:927 data/fcitx5-diagnose.sh:1043 -+#: data/fcitx5-diagnose.sh:1056 data/fcitx5-diagnose.sh:1084 -+msgid "Found ${1} at ${2}." -+msgstr "在 ${2} 找到了 ${1}。" -+ -+#: data/fcitx5-diagnose.sh:1646 -+msgid "Found ${1} disabled addons:" -+msgstr "找到了 ${1} 个被禁用的插件:" -+ -+#: data/fcitx5-diagnose.sh:1637 -+msgid "Found ${1} enabled addons:" -+msgstr "找到了 ${1} 个已启用的插件:" -+ -+#: data/fcitx5-diagnose.sh:1687 -+msgid "Found ${1} enabled user interface addons:" -+msgstr "找到了 ${1} 个已启用的用户界面插件:" -+ -+#: data/fcitx5-diagnose.sh:1383 data/fcitx5-diagnose.sh:1467 -+#: data/fcitx5-diagnose.sh:1520 -+msgid "Found ${1} im modules for gtk ${2}." -+msgstr "已找到 gtk ${2} 的 ${1} 输入法模块。" -+ -+#: data/fcitx5-diagnose.sh:1070 -+msgid "Found ${1} kcm module." -+msgstr "找到了 ${1} 的 kcm 模块。" -+ -+#: data/fcitx5-diagnose.sh:1375 -+msgid "Found ${2} for unknown gtk version at ${1}." -+msgstr "在 ${1} 找到了未知 gtk 版本的 ${2}。" -+ -+#: data/fcitx5-diagnose.sh:1367 -+msgid "Found ${3} for gtk ${1} at ${2}." -+msgstr "在 ${2} 找到了 gtk ${1} 的 ${3}。" -+ -+#: data/fcitx5-diagnose.sh:1238 data/fcitx5-diagnose.sh:1243 -+msgid "Found ${3} im module for ${2}: ${1}." -+msgstr "找到了 ${3} 的 ${2} 输入法模块:${1}。" -+ -+#: data/fcitx5-diagnose.sh:1460 -+msgid "Found immodule cache for unknown gtk version at ${1}." -+msgstr "在 ${1} 找到了未知 gtk 版本的输入法模块缓存." -+ -+#: data/fcitx5-diagnose.sh:1452 data/fcitx5-diagnose.sh:1513 -+msgid "Found immodules cache for gtk ${1} at ${2}." -+msgstr "在 ${2} 找到了 gtk ${1} 的输入法模块缓存。" -+ -+#: data/fcitx5-diagnose.sh:1252 -+msgid "Found unknown ${1} qt module: ${2}." -+msgstr "找到了未知的 ${1} qt 模块:${2}。" -+ -+#: src/modules/notifications/notifications.conf.in.in:4 -+msgid "Freedesktop.org Notification Support" -+msgstr "Freedesktop.org 桌面通知支持" -+ -+#: data/fcitx5-diagnose.sh:1791 -+msgid "Frontends setup:" -+msgstr "前端设置:" -+ -+#: src/lib/fcitx-utils/key.cpp:130 -+msgctxt "Key name" -+msgid "Game" -+msgstr "游戏" -+ -+#: src/lib/fcitx-utils/key.cpp:131 -+msgctxt "Key name" -+msgid "Go" -+msgstr "去" -+ -+#: src/lib/fcitx-utils/key.cpp:185 -+msgctxt "Key name" -+msgid "Green" -+msgstr "绿" -+ -+#: src/ui/classic/xcbtraywindow.cpp:36 -+#: src/modules/notificationitem/dbusmenu.cpp:237 -+msgid "Group" -+msgstr "分组" -+ -+#: src/lib/fcitx/instance.cpp:386 -+msgid "Group {0}: {1}" -+msgstr "分组 {0}:{1}" -+ -+#: src/lib/fcitx/instance.cpp:331 -+msgid "Group {}" -+msgstr "分组 {}" -+ -+#: data/fcitx5-diagnose.sh:1328 -+msgid "Gtk ${1} immodule file ${2} does not exist." -+msgstr "Gtk ${1} 输入法模块文件 ${2} 不存在。" -+ -+#: data/fcitx5-diagnose.sh:1550 -+msgid "Gtk IM module cache:" -+msgstr "Gtk 输入法模块缓存:" -+ -+#: data/fcitx5-diagnose.sh:1556 -+msgid "Gtk IM module files:" -+msgstr "Gtk 输入法模块文件:" -+ -+#: data/fcitx5-diagnose.sh:736 -+msgid "Hall of Shame for Linux IME Support" -+msgstr "Linux 输入法支持耻辱堂" -+ -+#: src/lib/fcitx-utils/key.cpp:218 -+msgctxt "Key name" -+msgid "Hangul" -+msgstr "韩文" -+ -+#: src/lib/fcitx-utils/key.cpp:225 -+msgctxt "Key name" -+msgid "Hangul Banja" -+msgstr "韩文半角" -+ -+#: src/lib/fcitx-utils/key.cpp:220 -+msgctxt "Key name" -+msgid "Hangul End" -+msgstr "谚文结束" -+ -+#: src/lib/fcitx-utils/key.cpp:221 -+msgctxt "Key name" -+msgid "Hangul Hanja" -+msgstr "谚文汉字" -+ -+#: src/lib/fcitx-utils/key.cpp:222 -+msgctxt "Key name" -+msgid "Hangul Jamo" -+msgstr "谚文字母" -+ -+#: src/lib/fcitx-utils/key.cpp:224 -+msgctxt "Key name" -+msgid "Hangul Jeonja" -+msgstr "韩文前" -+ -+#: src/lib/fcitx-utils/key.cpp:227 -+msgctxt "Key name" -+msgid "Hangul PostHanja" -+msgstr "韩文后汉字" -+ -+#: src/lib/fcitx-utils/key.cpp:226 -+msgctxt "Key name" -+msgid "Hangul PreHanja" -+msgstr "韩文预汉字" -+ -+#: src/lib/fcitx-utils/key.cpp:223 -+msgctxt "Key name" -+msgid "Hangul Romaja" -+msgstr "韩文罗马字" -+ -+#: src/lib/fcitx-utils/key.cpp:228 -+msgctxt "Key name" -+msgid "Hangul Special" -+msgstr "韩文特殊" -+ -+#: src/lib/fcitx-utils/key.cpp:219 -+msgctxt "Key name" -+msgid "Hangul Start" -+msgstr "韩文开始" -+ -+#: src/lib/fcitx-utils/key.cpp:207 -+msgctxt "Key name" -+msgid "Hankaku" -+msgstr "半角" -+ -+#: src/lib/fcitx-utils/key.cpp:57 -+msgctxt "Key name" -+msgid "Help" -+msgstr "帮助" -+ -+#: src/lib/fcitx-utils/key.cpp:201 -+msgctxt "Key name" -+msgid "Henkan" -+msgstr "变换" -+ -+#: src/lib/fcitx-utils/key.cpp:178 -+msgctxt "Key name" -+msgid "Hibernate" -+msgstr "休眠" -+ -+#: src/modules/notifications/notifications.h:28 -+msgid "Hidden Notifications" -+msgstr "隐藏通知" -+ -+#: src/ui/classic/theme.h:80 -+msgid "Hide overlay if size does not fit" -+msgstr "显示区域不足时隐藏覆盖图片" -+ -+#: src/ui/classic/theme.h:120 src/ui/classic/theme.h:140 -+msgid "Highlight Background" -+msgstr "高亮背景" -+ -+#: src/ui/classic/theme.h:115 -+msgid "Highlight Background color" -+msgstr "高亮背景颜色" -+ -+#: src/ui/classic/theme.h:102 src/ui/classic/theme.h:134 -+msgid "Highlight Candidate Color" -+msgstr "高亮候选词颜色" -+ -+#: src/ui/classic/theme.h:90 -+msgid "Highlight Click Margin" -+msgstr "高亮点击边距" -+ -+#: src/ui/classic/theme.h:113 -+msgid "Highlight text color" -+msgstr "高亮文字颜色" -+ -+#: src/lib/fcitx-utils/key.cpp:203 -+msgctxt "Key name" -+msgid "Hiragana" -+msgstr "平假名" -+ -+#: src/lib/fcitx-utils/key.cpp:205 -+msgctxt "Key name" -+msgid "Hiragana Katakana" -+msgstr "平假名片假名" -+ -+#: src/lib/fcitx-utils/key.cpp:108 -+msgctxt "Key name" -+msgid "History" -+msgstr "历史" -+ -+#: src/lib/fcitx-utils/key.cpp:45 -+msgctxt "Key name" -+msgid "Home" -+msgstr "行首" -+ -+#: src/lib/fcitx-utils/key.cpp:140 -+msgctxt "Key name" -+msgid "Home Office" -+msgstr "主办公室" -+ -+#: src/lib/fcitx-utils/key.cpp:71 -+msgctxt "Key name" -+msgid "Home Page" -+msgstr "主页" -+ -+#: data/fcitx5-diagnose.sh:853 -+msgid "Home:" -+msgstr "主目录:" -+ -+#: src/lib/fcitx-utils/key.cpp:110 -+msgctxt "Key name" -+msgid "Hot Links" -+msgstr "热门链接" -+ -+#: src/lib/fcitx/globalconfig.cpp:184 -+msgid "Hotkey" -+msgstr "快捷键" -+ -+#: src/modules/imselector/imselector.h:35 -+msgid "Hotkey for switching to the N-th input method" -+msgstr "切换到当前输入法到第...个输入法的按键" -+ -+#: src/modules/imselector/imselector.h:44 -+msgid "" -+"Hotkey for switching to the N-th input method for only current input context" -+msgstr "切换到当前局部输入法到第...个输入法的按键" -+ -+#: src/lib/fcitx-utils/key.cpp:483 -+msgctxt "Key name" -+msgid "Hyper" -+msgstr "Hyper" -+ -+#: src/frontend/ibusfrontend/ibusfrontend.conf.in.in:3 -+msgid "IBus Frontend" -+msgstr "IBus 前端" -+ -+#: data/fcitx5-diagnose.sh:725 -+msgid "" -+"If you are using ${1}, you may want to uninstall ${2} or remove ${3} in " -+"order to use any input method other than ${2}. See ${link} for more detail " -+"as well as alternative solutions." -+msgstr "" -+"如果您正在使用 ${1}, 您可能需要卸载 ${2} 或者删除 ${3} 已使用除 ${2} 之外的任" -+"何输入法. 更多细节和其它的解决方法参见 ${link}。" -+ -+#: data/fcitx5-diagnose.sh:723 -+msgid "" -+"If you are using ${1}, you may want to uninstall ${2}, remove ${3} or use " -+"the command ${g36_disable_ibus} to disable IBus integration in order to use " -+"any input method other than ${2}. See ${link} for more detail." -+msgstr "" -+"如果您正在使用 ${1}, 您可能需要卸载 ${2}, 删除 ${3} 或者使用命令 " -+"${g36_disable_ibus} 禁用 IBus 集成已使用除 ${2} 之外的任何输入法. 更多细节参" -+"见 ${link}。" -+ -+#: src/ui/classic/theme.h:93 -+msgid "Image" -+msgstr "图片" -+ -+#: src/im/keyboard/keyboard.cpp:640 src/lib/fcitx/instance.cpp:420 -+#: src/lib/fcitx/instance.cpp:638 src/lib/fcitx/instance.cpp:804 -+#: src/modules/notificationitem/notificationitem.cpp:115 -+#: src/modules/xcb/xcbconnection.cpp:406 data/org.fcitx.Fcitx5.desktop.in.in:4 -+#: data/org.fcitx.Fcitx5.metainfo.xml.in:7 -+msgid "Input Method" -+msgstr "ནང་འཇུག་བཅའ་ཁྲིམས།" -+ -+#: data/fcitx5-configtool.desktop.in.in:4 -+msgid "Input Method Configuration" -+msgstr "འཇུག་ཐབས་བཀོད་སྒྲིག" -+ -+#: data/fcitx5-diagnose.sh:700 -+msgid "Input Method Related Environment Variables: " -+msgstr "输入法相关的环境变量:" -+ -+#: data/fcitx5-diagnose.sh:1710 -+msgid "Input Methods:" -+msgstr "输入法:" -+ -+#: src/ui/classic/theme.h:161 -+msgid "Input Panel" -+msgstr "输入面板" -+ -+#: src/modules/imselector/imselector.conf.in.in:3 -+msgid "Input method selector" -+msgstr "输入法选择器" -+ -+#: src/lib/fcitx/globalconfig.cpp:102 src/lib/fcitx/globalconfig.cpp:114 -+msgid "" -+"Input methods may have different setup in their own configuration. This is " -+"commonly used by modules like clipboard or quickphrase." -+msgstr "" -+"输入法也许在自身配置中有不同的设置。 这个选项主要用于模块例如剪贴板和快速输" -+"入。" -+ -+#: src/lib/fcitx-utils/key.cpp:194 -+msgctxt "Key name" -+msgid "Insert" -+msgstr "插入" -+ -+#: data/fcitx5-diagnose.sh:1605 -+msgid "Invalid addon config file ${1}." -+msgstr "无效的插件配置文件: ${1}。" -+ -+#: src/ui/kimpanel/kimpanel.conf.in.in:3 -+msgid "KDE Input Method Panel" -+msgstr "KDE 输入法面板" -+ -+#: src/ui/classic/classicui.cpp:144 -+msgid "KDE Plasma (Experimental)" -+msgstr "KDE Plasma (实验性)" -+ -+#: src/lib/fcitx-utils/key.cpp:211 -+msgctxt "Key name" -+msgid "Kana Lock" -+msgstr "假名锁定" -+ -+#: src/lib/fcitx-utils/key.cpp:212 -+msgctxt "Key name" -+msgid "Kana Shift" -+msgstr "假名 Shift" -+ -+#: src/lib/fcitx-utils/key.cpp:199 -+msgctxt "Key name" -+msgid "Kanji" -+msgstr "汉字" -+ -+#: src/lib/fcitx-utils/key.cpp:204 -+msgctxt "Key name" -+msgid "Katakana" -+msgstr "片假名" -+ -+#: src/im/keyboard/longpress.h:16 -+msgid "Key" -+msgstr "按键" -+ -+#: src/im/keyboard/keyboard.cpp:288 src/im/keyboard/keyboard.conf.in.in:3 -+msgid "Keyboard" -+msgstr "键盘" -+ -+#: src/im/keyboard/keyboard.cpp:214 -+msgid "Keyboard - {0}" -+msgstr "键盘 - {0}" -+ -+#: src/im/keyboard/keyboard.cpp:233 -+msgid "Keyboard - {0} - {1}" -+msgstr "键盘 - {0} - {1}" -+ -+#: src/lib/fcitx-utils/key.cpp:99 -+msgctxt "Key name" -+msgid "Keyboard Brightness Down" -+msgstr "减小键盘背光亮度" -+ -+#: src/lib/fcitx-utils/key.cpp:97 -+msgctxt "Key name" -+msgid "Keyboard Brightness Up" -+msgstr "增加键盘背光亮度" -+ -+#: data/fcitx5-diagnose.sh:819 -+msgid "Keyboard Layout:" -+msgstr "键盘布局:" -+ -+#: src/lib/fcitx-utils/key.cpp:96 -+msgctxt "Key name" -+msgid "Keyboard Light On/Off" -+msgstr "键盘背光开关" -+ -+#: src/lib/fcitx-utils/key.cpp:136 -+msgctxt "Key name" -+msgid "Keyboard Menu" -+msgstr "键盘菜单" -+ -+#: data/fcitx5-diagnose.sh:1696 -+msgid "Kimpanel process:" -+msgstr "Kimpanel 进程:" -+ -+#: src/lib/fcitx-utils/key.cpp:77 -+msgctxt "Key name" -+msgid "Launch (0)" -+msgstr "启动 (0)" -+ -+#: src/lib/fcitx-utils/key.cpp:78 -+msgctxt "Key name" -+msgid "Launch (1)" -+msgstr "启动 (1)" -+ -+#: src/lib/fcitx-utils/key.cpp:79 -+msgctxt "Key name" -+msgid "Launch (2)" -+msgstr "启动 (2)" -+ -+#: src/lib/fcitx-utils/key.cpp:80 -+msgctxt "Key name" -+msgid "Launch (3)" -+msgstr "启动 (3)" -+ -+#: src/lib/fcitx-utils/key.cpp:81 -+msgctxt "Key name" -+msgid "Launch (4)" -+msgstr "启动 (4)" -+ -+#: src/lib/fcitx-utils/key.cpp:82 -+msgctxt "Key name" -+msgid "Launch (5)" -+msgstr "启动 (5)" -+ -+#: src/lib/fcitx-utils/key.cpp:83 -+msgctxt "Key name" -+msgid "Launch (6)" -+msgstr "启动 (6)" -+ -+#: src/lib/fcitx-utils/key.cpp:84 -+msgctxt "Key name" -+msgid "Launch (7)" -+msgstr "启动 (7)" -+ -+#: src/lib/fcitx-utils/key.cpp:85 -+msgctxt "Key name" -+msgid "Launch (8)" -+msgstr "启动 (8)" -+ -+#: src/lib/fcitx-utils/key.cpp:86 -+msgctxt "Key name" -+msgid "Launch (9)" -+msgstr "启动 (9)" -+ -+#: src/lib/fcitx-utils/key.cpp:87 -+msgctxt "Key name" -+msgid "Launch (A)" -+msgstr "启动 (A)" -+ -+#: src/lib/fcitx-utils/key.cpp:88 -+msgctxt "Key name" -+msgid "Launch (B)" -+msgstr "启动 (B)" -+ -+#: src/lib/fcitx-utils/key.cpp:89 -+msgctxt "Key name" -+msgid "Launch (C)" -+msgstr "启动 (C)" -+ -+#: src/lib/fcitx-utils/key.cpp:90 -+msgctxt "Key name" -+msgid "Launch (D)" -+msgstr "启动 (D)" -+ -+#: src/lib/fcitx-utils/key.cpp:91 -+msgctxt "Key name" -+msgid "Launch (E)" -+msgstr "启动 (E)" -+ -+#: src/lib/fcitx-utils/key.cpp:92 -+msgctxt "Key name" -+msgid "Launch (F)" -+msgstr "启动 (F)" -+ -+#: src/lib/fcitx-utils/key.cpp:76 -+msgctxt "Key name" -+msgid "Launch Mail" -+msgstr "启动邮件" -+ -+#: src/lib/fcitx-utils/key.cpp:47 -+msgctxt "Key name" -+msgid "Left" -+msgstr "左" -+ -+#: src/lib/fcitx-utils/key.cpp:30 -+msgctxt "Key name" -+msgid "Left Alt" -+msgstr "左 Alt" -+ -+#: src/lib/fcitx-utils/key.cpp:34 -+msgctxt "Key name" -+msgid "Left Control" -+msgstr "左 Control" -+ -+#: src/lib/fcitx-utils/key.cpp:38 -+msgctxt "Key name" -+msgid "Left Hyper" -+msgstr "左 Hyper" -+ -+#: src/lib/fcitx-utils/key.cpp:32 -+msgctxt "Key name" -+msgid "Left Shift" -+msgstr "左 Shift" -+ -+#: src/lib/fcitx-utils/key.cpp:36 -+msgctxt "Key name" -+msgid "Left Super" -+msgstr "左 Super" -+ -+#: src/lib/fcitx-utils/key.cpp:106 -+msgctxt "Key name" -+msgid "LightBulb" -+msgstr "灯泡" -+ -+#: data/fcitx5-diagnose.sh:834 -+msgid "Locale:" -+msgstr "Locale:" -+ -+#: data/fcitx5-diagnose.sh:1804 -+msgid "Log:" -+msgstr "日志:" -+ -+#: src/lib/fcitx-utils/key.cpp:133 -+msgctxt "Key name" -+msgid "Logoff" -+msgstr "注销" -+ -+#: src/im/keyboard/keyboard.h:89 -+msgid "Long Press behavior" -+msgstr "长按行为" -+ -+#: src/lib/fcitx-utils/key.cpp:166 -+msgctxt "Key name" -+msgid "Mail Forward" -+msgstr "转发邮件" -+ -+#: src/ui/classic/theme.h:82 -+msgid "Margin" -+msgstr "边距" -+ -+#: src/ui/classic/theme.h:44 -+msgid "Margin Bottom" -+msgstr "底部边距" -+ -+#: src/ui/classic/theme.h:38 -+msgid "Margin Left" -+msgstr "左侧边距" -+ -+#: src/ui/classic/theme.h:40 -+msgid "Margin Right" -+msgstr "右侧边距" -+ -+#: src/ui/classic/theme.h:42 -+msgid "Margin Top" -+msgstr "顶部边距" -+ -+#: src/ui/classic/theme.h:122 src/ui/classic/theme.h:146 -+msgid "Margin around all content" -+msgstr "内容周围边界" -+ -+#: src/ui/classic/theme.h:124 src/ui/classic/theme.h:148 -+msgid "Margin around text" -+msgstr "文本周围边距" -+ -+#: src/lib/fcitx-utils/key.cpp:134 -+msgctxt "Key name" -+msgid "Market" -+msgstr "市场" -+ -+#: src/lib/fcitx-utils/key.cpp:210 -+msgctxt "Key name" -+msgid "Massyo" -+msgstr "抹消" -+ -+#: src/lib/fcitx-utils/key.cpp:172 -+msgctxt "Key name" -+msgid "Media Fast Forward" -+msgstr "媒体快进" -+ -+#: src/lib/fcitx-utils/key.cpp:68 -+msgctxt "Key name" -+msgid "Media Next" -+msgstr "媒体下一首" -+ -+#: src/lib/fcitx-utils/key.cpp:70 -+msgctxt "Key name" -+msgid "Media Pause" -+msgstr "媒体暂停" -+ -+#: src/lib/fcitx-utils/key.cpp:65 -+msgctxt "Key name" -+msgid "Media Play" -+msgstr "媒体播放" -+ -+#: src/lib/fcitx-utils/key.cpp:67 -+msgctxt "Key name" -+msgid "Media Previous" -+msgstr "媒体上一首" -+ -+#: src/lib/fcitx-utils/key.cpp:69 -+msgctxt "Key name" -+msgid "Media Record" -+msgstr "媒体录制" -+ -+#: src/lib/fcitx-utils/key.cpp:114 -+msgctxt "Key name" -+msgid "Media Rewind" -+msgstr "媒体倒带" -+ -+#: src/lib/fcitx-utils/key.cpp:66 -+msgctxt "Key name" -+msgid "Media Stop" -+msgstr "媒体停止" -+ -+#: src/lib/fcitx-utils/key.cpp:135 -+msgctxt "Key name" -+msgid "Meeting" -+msgstr "会议" -+ -+#: src/ui/classic/theme.h:162 -+msgid "Menu" -+msgstr "菜单" -+ -+#: src/lib/fcitx-utils/key.cpp:56 -+msgctxt "Key name" -+msgid "Menu" -+msgstr "菜单" -+ -+#: src/ui/classic/classicui.h:102 -+msgid "Menu Font" -+msgstr "菜单字体" -+ -+#: src/lib/fcitx-utils/key.cpp:137 -+msgctxt "Key name" -+msgid "Menu PB" -+msgstr "菜单 PB" -+ -+#: src/lib/fcitx-utils/key.cpp:164 -+msgctxt "Key name" -+msgid "Messenger" -+msgstr "即时通信" -+ -+#: src/ui/classic/theme.h:159 -+msgid "Metadata" -+msgstr "元数据" -+ -+#: src/lib/fcitx-utils/key.cpp:183 -+msgctxt "Key name" -+msgid "Microphone Mute" -+msgstr "麦克风静音" -+ -+#: src/lib/fcitx-utils/key.cpp:95 -+msgctxt "Key name" -+msgid "Monitor Brightness Down" -+msgstr "减小屏幕亮度" -+ -+#: src/lib/fcitx-utils/key.cpp:93 -+msgctxt "Key name" -+msgid "Monitor Brightness Up" -+msgstr "增加屏幕亮度" -+ -+#: src/lib/fcitx-utils/key.cpp:200 -+msgctxt "Key name" -+msgid "Muhenkan" -+msgstr "无变换" -+ -+#: src/lib/fcitx-utils/key.cpp:216 -+msgctxt "Key name" -+msgid "Multiple Candidate" -+msgstr "多个候选" -+ -+#: src/lib/fcitx-utils/key.cpp:168 -+msgctxt "Key name" -+msgid "Music" -+msgstr "音乐" -+ -+#: src/lib/fcitx-utils/key.cpp:138 -+msgctxt "Key name" -+msgid "My Sites" -+msgstr "我的站点" -+ -+#: src/ui/classic/theme.h:151 -+msgid "Name" -+msgstr "名称" -+ -+#: src/lib/fcitx-utils/key.cpp:188 -+msgctxt "Key name" -+msgid "New" -+msgstr "新建" -+ -+#: src/lib/fcitx-utils/key.cpp:139 -+msgctxt "Key name" -+msgid "News" -+msgstr "新闻" -+ -+#: src/im/keyboard/keyboard.h:48 -+msgid "Next Candidate" -+msgstr "下一个候选词" -+ -+#: src/ui/classic/theme.h:126 -+msgid "Next Page Button" -+msgstr "下一页按钮" -+ -+#: src/lib/fcitx/globalconfig.cpp:26 -+msgid "No" -+msgstr "否" -+ -+#: src/modules/clipboard/clipboard.cpp:347 -+msgid "No clipboard history." -+msgstr "无剪贴板历史。" -+ -+#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:28 -+msgid "None" -+msgstr "无" -+ -+#: src/ui/classic/theme.h:99 src/ui/classic/theme.h:131 -+msgid "Normal text color" -+msgstr "一般文字颜色" -+ -+#: src/ui/classic/classicui.h:144 -+msgid "" -+"Normally Wayland uses 96 as font DPI in combinition with the screen scale " -+"factor. This option allows you to override the font DPI. If the value is 0, " -+"it means this option is disabled." -+msgstr "" -+"通常 Wayland 使用 96 作为字体 DPI,同时和屏幕的缩放倍数组合调整文字大小。这个" -+"选项允许你覆盖字体的 DPI。如果设置为 0,这个选项将被禁用。" -+ -+#: src/ui/kimpanel/kimpanel.cpp:367 -+msgid "Not available" -+msgstr "不可用" -+ -+#: data/fcitx5-diagnose.sh:716 -+msgid "Note for GNOME Later than 3.6" -+msgstr "有关 3.6 之后版本 GNOME 的备注" -+ -+#: src/modules/notifications/notifications.conf.in.in:3 -+msgid "Notification" -+msgstr "通知" -+ -+#: src/lib/fcitx-utils/key.cpp:54 -+msgctxt "Key name" -+msgid "NumLock" -+msgstr "数字锁定" -+ -+#: src/modules/clipboard/clipboard.h:48 -+msgid "Number of entries" -+msgstr "项目个数" -+ -+#: src/im/keyboard/keyboard.cpp:626 -+msgid "" -+"Only emoji support is found. To enable spell checking, you may need to " -+"install spell check data for the language." -+msgstr "" -+"只找到了颜文字支持。想要启用拼写检查,您需要安装语言对应的拼写检查数据。" -+ -+#: src/lib/fcitx-utils/key.cpp:189 -+msgctxt "Key name" -+msgid "Open" -+msgstr "打开" -+ -+#: src/lib/fcitx-utils/key.cpp:75 -+msgctxt "Key name" -+msgid "Open URL" -+msgstr "打开 URL" -+ -+#: src/lib/fcitx-utils/key.cpp:141 -+msgctxt "Key name" -+msgid "Option" -+msgstr "选项" -+ -+#: src/ui/classic/theme.h:84 -+msgid "Overlay Clip Margin" -+msgstr "覆盖图片裁剪边界" -+ -+#: src/ui/classic/theme.h:74 -+msgid "Overlay Image" -+msgstr "覆盖图片" -+ -+#: src/ui/classic/theme.h:77 -+msgid "Overlay X offset" -+msgstr "覆盖图片 X 偏移" -+ -+#: src/ui/classic/theme.h:78 -+msgid "Overlay Y offset" -+msgstr "覆盖图片 Y 偏移" -+ -+#: src/ui/classic/theme.h:76 -+msgid "Overlay position" -+msgstr "覆盖图片位置" -+ -+#: src/lib/fcitx/globalconfig.cpp:165 -+msgid "Override Xkb Option" -+msgstr "覆盖 Xkb 选项" -+ -+#: data/fcitx5-diagnose.sh:974 -+msgid "Owner of DBus name ${1} is ${2}." -+msgstr "DBus 名称 ${1} 的所有者是 ${2}。" -+ -+#: data/fcitx5-diagnose.sh:982 -+msgid "PID of DBus name ${1} owner is ${2}." -+msgstr "DBus 名称 ${1} 的 PID 所有者是 ${2}。" -+ -+#: src/im/keyboard/keyboard.h:37 -+msgid "Page size" -+msgstr "页大小" -+ -+#: src/lib/fcitx-utils/key.cpp:142 -+msgctxt "Key name" -+msgid "Paste" -+msgstr "粘贴" -+ -+#: src/modules/clipboard/clipboard.h:46 -+msgid "Paste Primary" -+msgstr "粘贴主选区" -+ -+#: src/lib/fcitx-utils/key.cpp:44 -+msgctxt "Key name" -+msgid "Pause" -+msgstr "暂停" -+ -+#: src/lib/fcitx-utils/key.cpp:52 -+msgctxt "Key name" -+msgid "PgDown" -+msgstr "下一页" -+ -+#: src/lib/fcitx-utils/key.cpp:51 -+msgctxt "Key name" -+msgid "PgUp" -+msgstr "上一页" -+ -+#: src/lib/fcitx-utils/key.cpp:143 -+msgctxt "Key name" -+msgid "Phone" -+msgstr "电话" -+ -+#: src/lib/fcitx-utils/key.cpp:167 -+msgctxt "Key name" -+msgid "Pictures" -+msgstr "图片" -+ -+#: data/fcitx5-diagnose.sh:923 -+msgid "Please check ${1} for how to install fcitx5." -+msgstr "请访问 ${1} 查看如何安装 fcitx5。" -+ -+#: data/fcitx5-diagnose.sh:945 -+msgid "" -+"Please check the Configure link of your distribution in ${1} for how to " -+"setup ${2} autostart." -+msgstr "请访问 ${1} 页面上对应您发行版的配置链接查看如何配置 ${2} 的自动启动." -+ -+#: data/fcitx5-diagnose.sh:697 -+msgid "" -+"Please set environment variable ${env_name} to \"${value}\" using the tool " -+"your distribution provides or add ${1} to your ${2}. See ${link}." -+msgstr "" -+"请使用您发行版提供的工具将环境变量 ${env_name} 设为 \"${value}\" 或者将 ${1} " -+"添加到您的 ${2} 中。参见 ${link}。" -+ -+#: src/lib/fcitx-utils/key.cpp:181 -+msgctxt "Key name" -+msgid "Power Down" -+msgstr "关机" -+ -+#: src/lib/fcitx-utils/key.cpp:100 -+msgctxt "Key name" -+msgid "Power Off" -+msgstr "关机" -+ -+#: src/lib/fcitx/instance.cpp:804 -+msgid "Preedit" -+msgstr "预编辑" -+ -+#: src/lib/fcitx/instance.cpp:806 -+msgid "Preedit disabled" -+msgstr "预编辑已禁用" -+ -+#: src/lib/fcitx/instance.cpp:805 -+msgid "Preedit enabled" -+msgstr "预编辑已启用" -+ -+#: src/ui/classic/classicui.h:110 -+msgid "Prefer Text Icon" -+msgstr "优先使用文字图标" -+ -+#: src/modules/spell/spell.h:22 -+msgid "Presage" -+msgstr "Presage" -+ -+#: src/im/keyboard/keyboard.h:42 -+msgid "Prev Candidate" -+msgstr "上一个候选词" -+ -+#: src/ui/classic/theme.h:125 -+msgid "Prev Page Button" -+msgstr "上一页按钮" -+ -+#: src/lib/fcitx-utils/key.cpp:217 -+msgctxt "Key name" -+msgid "Previous Candidate" -+msgstr "上一个候选词" -+ -+#: src/lib/fcitx-utils/key.cpp:193 -+msgctxt "Key name" -+msgid "Print Screen" -+msgstr "截屏" -+ -+#: src/lib/fcitx/globalconfig.cpp:26 -+msgid "Program" -+msgstr "程序" -+ -+#: data/fcitx5-diagnose.sh:1224 -+msgid "Qt IM module files:" -+msgstr "Qt 输入法模块文件:" -+ -+#: src/modules/quickphrase/quickphrase.conf.in.in:3 -+msgid "Quick Phrase" -+msgstr "快速输入" -+ -+#: src/modules/quickphrase/quickphrase.cpp:403 -+msgid "Quick Phrase: " -+msgstr "快速输入: " -+ -+#: src/lib/fcitx-utils/key.cpp:184 -+msgctxt "Key name" -+msgid "Red" -+msgstr "红" -+ -+#: src/lib/fcitx-utils/key.cpp:192 -+msgctxt "Key name" -+msgid "Redo" -+msgstr "重做" -+ -+#: src/lib/fcitx-utils/key.cpp:61 -+msgctxt "Key name" -+msgid "Refresh" -+msgstr "刷新" -+ -+#: src/lib/fcitx-utils/key.cpp:145 -+msgctxt "Key name" -+msgid "Reload" -+msgstr "重载" -+ -+#: src/lib/fcitx-utils/key.cpp:144 -+msgctxt "Key name" -+msgid "Reply" -+msgstr "回复" -+ -+#: src/ui/classic/xcbtraywindow.cpp:39 -+#: src/modules/notificationitem/dbusmenu.cpp:255 -+msgid "Restart" -+msgstr "重新启动" -+ -+#: src/lib/fcitx-utils/key.cpp:43 -+msgctxt "Key name" -+msgid "Return" -+msgstr "回车" -+ -+#: src/lib/fcitx-utils/key.cpp:49 -+msgctxt "Key name" -+msgid "Right" -+msgstr "右" -+ -+#: src/lib/fcitx-utils/key.cpp:31 -+msgctxt "Key name" -+msgid "Right Alt" -+msgstr "右 Alt" -+ -+#: src/lib/fcitx-utils/key.cpp:35 -+msgctxt "Key name" -+msgid "Right Control" -+msgstr "右 Control" -+ -+#: src/lib/fcitx-utils/key.cpp:39 -+msgctxt "Key name" -+msgid "Right Hyper" -+msgstr "右 Hyper" -+ -+#: src/lib/fcitx-utils/key.cpp:33 -+msgctxt "Key name" -+msgid "Right Shift" -+msgstr "右 Shift" -+ -+#: src/lib/fcitx-utils/key.cpp:37 -+msgctxt "Key name" -+msgid "Right Super" -+msgstr "右 Super" -+ -+#: src/lib/fcitx-utils/key.cpp:202 -+msgctxt "Key name" -+msgid "Romaji" -+msgstr "罗马字" -+ -+#: src/lib/fcitx-utils/key.cpp:146 -+msgctxt "Key name" -+msgid "Rotate Windows" -+msgstr "旋转窗口" -+ -+#: src/lib/fcitx-utils/key.cpp:148 -+msgctxt "Key name" -+msgid "Rotation KB" -+msgstr "Rotation KB" -+ -+#: src/lib/fcitx-utils/key.cpp:147 -+msgctxt "Key name" -+msgid "Rotation PB" -+msgstr "Rotation PB" -+ -+#: data/fcitx5-diagnose.sh:899 -+msgid "Running as root:" -+msgstr "以管理员运行:" -+ -+#: src/lib/fcitx-utils/key.cpp:149 -+msgctxt "Key name" -+msgid "Save" -+msgstr "保存" -+ -+#: src/lib/fcitx-utils/key.cpp:103 -+msgctxt "Key name" -+msgid "Screensaver" -+msgstr "屏保" -+ -+#: src/lib/fcitx-utils/key.cpp:55 -+msgctxt "Key name" -+msgid "ScrollLock" -+msgstr "滚动锁定" -+ -+#: src/lib/fcitx-utils/key.cpp:73 -+msgctxt "Key name" -+msgid "Search" -+msgstr "搜索" -+ -+#: src/lib/fcitx-utils/key.cpp:198 -+msgctxt "Key name" -+msgid "Select" -+msgstr "选择" -+ -+#: src/modules/imselector/imselector.cpp:257 -+msgid "Select input method:" -+msgstr "选择输入法:" -+ -+#: src/modules/imselector/imselector.cpp:256 -+msgid "Select local input method:" -+msgstr "选择局部输入法:" -+ -+#: src/modules/imselector/imselector.conf.in.in:4 -+msgid "Select specific input method via keyboard" -+msgstr "通过键盘选择特定的输入法" -+ -+#: src/lib/fcitx-utils/key.cpp:150 -+msgctxt "Key name" -+msgid "Send" -+msgstr "发送" -+ -+#: src/ui/classic/theme.h:142 -+msgid "Separator Background" -+msgstr "分隔符背景" -+ -+#: src/ui/classic/theme.h:128 -+msgid "Shadow Margin" -+msgstr "阴影边距" -+ -+#: src/lib/fcitx/globalconfig.cpp:140 -+msgid "Share Input State" -+msgstr "共享输入状态" -+ -+#: src/lib/fcitx-utils/key.cpp:481 -+msgctxt "Key name" -+msgid "Shift" -+msgstr "Shift" -+ -+#: src/lib/fcitx-utils/key.cpp:107 -+msgctxt "Key name" -+msgid "Shop" -+msgstr "购物" -+ -+#: src/lib/fcitx/globalconfig.cpp:150 -+msgid "Show Input Method Information when changing focus" -+msgstr "在焦点更改时显示输入法信息" -+ -+#: src/lib/fcitx/globalconfig.cpp:147 -+msgid "Show Input Method Information when switch input method" -+msgstr "切换输入法时显示输入法信息" -+ -+#: src/ui/classic/classicui.h:115 -+msgid "Show Layout Name In Icon" -+msgstr "在图标中显示布局名称" -+ -+#: src/lib/fcitx/globalconfig.cpp:153 -+msgid "Show compact input method information" -+msgstr "显示紧凑的输入法信息" -+ -+#: src/lib/fcitx/globalconfig.cpp:156 -+msgid "Show first input method information" -+msgstr "显示第一个输入法的信息" -+ -+#: src/ui/classic/classicui.h:119 -+msgid "" -+"Show layout name in icon if there is more than one active layout. If prefer " -+"text icon is set to true, this option will be ignored." -+msgstr "" -+"如果有超过一个活动布局,则在图标中显示布局名称。如果优先使用文字图标已启用," -+"这个选项将会被忽略" -+ -+#: src/lib/fcitx/globalconfig.cpp:143 -+msgid "Show preedit in application" -+msgstr "在程序中显示预编辑文本" -+ -+#: src/im/keyboard/keyboard.h:77 -+msgid "" -+"Show preedit when composing, and commit dead key if there is no matching " -+"sequence." -+msgstr "使用组合键时显示预编辑,并且在没有匹配序列时提交死键对应符号" -+ -+#: src/lib/fcitx/globalconfig.cpp:63 -+msgid "Skip first input method while enumerating" -+msgstr "轮换输入法时跳过第一个输入法" -+ -+#: src/lib/fcitx-utils/key.cpp:105 -+msgctxt "Key name" -+msgid "Sleep" -+msgstr "睡眠" -+ -+#: src/lib/fcitx-utils/key.cpp:40 -+msgctxt "Key name" -+msgid "Space" -+msgstr "空格" -+ -+#: src/ui/classic/theme.h:136 -+msgid "Spacing" -+msgstr "间隔" -+ -+#: src/im/keyboard/keyboard.h:79 src/modules/spell/spell.conf.in.in:3 -+msgid "Spell" -+msgstr "拼写" -+ -+#: src/lib/fcitx-utils/key.cpp:151 -+msgctxt "Key name" -+msgid "Spellchecker" -+msgstr "拼写检查" -+ -+#: src/lib/fcitx-utils/key.cpp:152 -+msgctxt "Key name" -+msgid "Split Screen" -+msgstr "分割屏幕" -+ -+#: src/lib/fcitx-utils/key.cpp:128 -+msgctxt "Key name" -+msgid "Spreadsheet" -+msgstr "电子表格" -+ -+#: src/lib/fcitx-utils/key.cpp:74 -+msgctxt "Key name" -+msgid "Standby" -+msgstr "待机" -+ -+#: data/org.fcitx.Fcitx5.desktop.in.in:5 -+msgid "Start Input Method" -+msgstr "འཇུག་ཐབས་སྤྱོད་འགོ་འཛུགས་དགོས།" -+ -+#: src/modules/notificationitem/notificationitem.conf.in.in:3 -+msgid "Status Notifier" -+msgstr "状态提示器" -+ -+#: src/lib/fcitx-utils/key.cpp:60 -+msgctxt "Key name" -+msgid "Stop" -+msgstr "停止" -+ -+#: src/ui/classic/theme.h:144 -+msgid "Sub Menu" -+msgstr "子菜单" -+ -+#: src/lib/fcitx-utils/key.cpp:175 -+msgctxt "Key name" -+msgid "Subtitle" -+msgstr "副标题" -+ -+#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 -+msgid "Super" -+msgstr "Super" -+ -+#: src/lib/fcitx-utils/key.cpp:482 -+msgctxt "Key name" -+msgid "Super" -+msgstr "Super" -+ -+#: src/lib/fcitx-utils/key.cpp:153 -+msgctxt "Key name" -+msgid "Support" -+msgstr "支持" -+ -+#: src/lib/fcitx-utils/key.cpp:182 -+msgctxt "Key name" -+msgid "Suspend" -+msgstr "睡眠" -+ -+#: src/lib/fcitx/instance.cpp:421 src/lib/fcitx/instance.cpp:639 -+#: src/modules/xcb/xcbconnection.cpp:407 -+msgid "Switch group" -+msgstr "切换分组" -+ -+#: src/lib/fcitx/instance.cpp:422 src/modules/xcb/xcbconnection.cpp:408 -+msgid "Switch group to {0}" -+msgstr "切换到分组 {0}" -+ -+#: src/lib/fcitx/instance.cpp:640 -+msgid "Switched group to {0}" -+msgstr "已切换到分组 {0}" -+ -+#: data/fcitx5-diagnose.sh:772 -+msgid "System Info:" -+msgstr "系统信息:" -+ -+#: src/lib/fcitx-utils/key.cpp:197 -+msgctxt "Key name" -+msgid "System Request" -+msgstr "系统请求" -+ -+#: src/lib/fcitx-utils/key.cpp:41 -+msgctxt "Key name" -+msgid "Tab" -+msgstr "Tab" -+ -+#: src/lib/fcitx-utils/key.cpp:154 -+msgctxt "Key name" -+msgid "Task Panel" -+msgstr "任务栏" -+ -+#: src/lib/fcitx/globalconfig.cpp:43 -+msgid "Temporally switch between first and current Input Method" -+msgstr "临时在当前和第一个输入法之间切换" -+ -+#: src/lib/fcitx-utils/key.cpp:155 -+msgctxt "Key name" -+msgid "Terminal" -+msgstr "终端" -+ -+#: src/modules/imselector/imselector.h:40 -+#: src/modules/imselector/imselector.h:50 -+msgid "The n-th hotkey in the list selects the n-th input method." -+msgstr "列表中第 n 个按键选择第 n 个对应输入法。" -+ -+#: data/fcitx5-diagnose.sh:878 -+msgid "The script is run as ${1} (${2})." -+msgstr "脚本作为 ${1} (${2}) 运行。" -+ -+#: src/ui/classic/classicui.h:135 -+msgid "Theme" -+msgstr "主题" -+ -+#: src/ui/classic/classicui.h:79 -+msgid "This is only effective when the tray icon is xembed." -+msgstr "这只在托盘为 xembed 时有效。" -+ -+#: src/ui/classic/theme.h:57 src/ui/classic/theme.h:65 -+msgid "This option is only effective if image is not set." -+msgstr "此选项仅在图片没有设置时生效。" -+ -+#: src/ui/classic/theme.h:73 -+msgid "This value should be less than any of margin value." -+msgstr "这个值应该小于任何边距。" -+ -+#: data/fcitx5-diagnose.sh:1810 -+msgid "" -+"Though such information can be helpful to developers for diagnostic purpose, " -+"please double check and remove as necessary before posting it online " -+"publicly." -+msgstr "" -+"尽管这些信息对于开发者诊断问题有帮助,请在公开发送到在线网站前检查并且根据需" -+"要移除的对应信息。" -+ -+#: src/lib/fcitx-utils/key.cpp:177 -+msgctxt "Key name" -+msgid "Time" -+msgstr "时间" -+ -+#: data/fcitx5-diagnose.sh:733 -+#, sh-format -+msgid "" -+"To see some application specific problems you may have when using xim, check " -+"${link1}. For other more general problems of using XIM including application " -+"freezing, see ${link2}." -+msgstr "" -+"您可以在 ${link1} 找到一些会在使用 xim 时出现问题的应用程序。包括应用程序卡死" -+"在内的更多使用 xim 可能出现的普遍问题请参见 ${link2}。" -+ -+#: src/lib/fcitx/globalconfig.cpp:131 -+msgid "Toggle embedded preedit" -+msgstr "切换是否使用嵌入预编辑" -+ -+#: src/lib/fcitx-utils/key.cpp:156 -+msgctxt "Key name" -+msgid "Tools" -+msgstr "工具" -+ -+#: src/ui/classic/theme.h:30 -+msgid "Top Center" -+msgstr "顶部居中" -+ -+#: src/ui/classic/theme.h:30 -+msgid "Top Left" -+msgstr "左上" -+ -+#: src/lib/fcitx-utils/key.cpp:180 -+msgctxt "Key name" -+msgid "Top Menu" -+msgstr "顶部菜单" -+ -+#: src/ui/classic/theme.h:31 -+msgid "Top Right" -+msgstr "右上" -+ -+#: src/lib/fcitx-utils/key.cpp:233 -+msgctxt "Key name" -+msgid "Touchpad Off" -+msgstr "关闭触摸板" -+ -+#: src/lib/fcitx-utils/key.cpp:232 -+msgctxt "Key name" -+msgid "Touchpad On" -+msgstr "启用触摸板" -+ -+#: src/lib/fcitx-utils/key.cpp:231 -+msgctxt "Key name" -+msgid "Touchpad Toggle" -+msgstr "切换触摸板" -+ -+#: src/lib/fcitx-utils/key.cpp:209 -+msgctxt "Key name" -+msgid "Touroku" -+msgstr "注册" -+ -+#: src/lib/fcitx-utils/key.cpp:157 -+msgctxt "Key name" -+msgid "Travel" -+msgstr "旅行" -+ -+#: src/ui/classic/classicui.h:104 -+msgid "Tray Font" -+msgstr "托盘字体" -+ -+#: src/ui/classic/classicui.h:106 -+msgid "Tray Label Outline Color" -+msgstr "托盘标签轮廓颜色" -+ -+#: src/ui/classic/classicui.h:109 -+msgid "Tray Label Text Color" -+msgstr "托盘标签文本颜色" -+ -+#: src/lib/fcitx/globalconfig.cpp:33 -+msgid "Trigger Input Method" -+msgstr "切换启用/禁用输入法" -+ -+#: src/modules/imselector/imselector.h:25 -+#: src/modules/quickphrase/quickphrase.h:36 src/modules/unicode/unicode.h:31 -+#: src/modules/clipboard/clipboard.h:42 -+msgid "Trigger Key" -+msgstr "触发键" -+ -+#: src/modules/imselector/imselector.h:29 -+msgid "Trigger Key for only current input context" -+msgstr "当前输入上下文的触发键" -+ -+#: src/im/keyboard/keyboard.h:62 -+msgid "Trigger hint mode" -+msgstr "切换提示模式" -+ -+#: src/im/keyboard/keyboard.h:67 -+msgid "Trigger hint mode for one time" -+msgstr "触发一次提示模式" -+ -+#: src/im/keyboard/keyboard.h:82 -+msgid "Type special characters with long press" -+msgstr "用长按来输入特殊字符" -+ -+#: data/org.fcitx.Fcitx5.metainfo.xml.in:20 -+msgid "Typing with Fcitx and Kimpanel" -+msgstr "用 Fcitx 和 Kimpanel 输入" -+ -+#: data/fcitx5-diagnose.sh:994 -+msgid "Unable to find a program to check dbus." -+msgstr "无法找到程序检查 dbus。" -+ -+#: src/lib/fcitx-utils/key.cpp:191 -+msgctxt "Key name" -+msgid "Undo" -+msgstr "撤销" -+ -+#: src/modules/unicode/unicode.conf.in.in:3 -+msgid "Unicode" -+msgstr "Unicode" -+ -+#: src/modules/unicode/unicode.cpp:327 -+msgid "Unicode: " -+msgstr "Unicode:" -+ -+#: src/lib/fcitx-utils/key.cpp:48 -+msgctxt "Key name" -+msgid "Up" -+msgstr "上" -+ -+#: src/frontend/xim/xim.h:33 -+msgid "Use On The Spot Style (Needs restarting)" -+msgstr "使用 On The Spot 风格 (需要重启)" -+ -+#: src/ui/classic/classicui.h:93 -+msgid "Use Per Screen DPI" -+msgstr "按每个屏幕 DPI 显示" -+ -+#: src/ui/classic/theme.h:110 -+msgid "Use all horizontal space for highlight when it is vertical list" -+msgstr "竖排列表时使用所有横向空间高亮" -+ -+#: src/ui/classic/classicui.h:126 -+msgid "Use input method language to display text" -+msgstr "使用输入法的语言来显示文字" -+ -+#: src/ui/classic/classicui.h:96 -+msgid "Use mouse wheel to go to prev or next page" -+msgstr "使用鼠标滚轮翻页" -+ -+#: src/im/keyboard/keyboard.h:73 -+msgid "Use new compose behavior" -+msgstr "使用新的组合键行为" -+ -+#: data/fcitx5-diagnose.sh:1683 -+msgid "User Interface:" -+msgstr "用户界面:" -+ -+#: data/fcitx5-diagnose.sh:969 -+msgid "Using ${1} to check dbus." -+msgstr "使用 ${1} 来检查 dbus。" -+ -+#: src/ui/classic/theme.h:152 -+msgid "Version" -+msgstr "版本" -+ -+#: data/fcitx5-diagnose.sh:1372 data/fcitx5-diagnose.sh:1456 -+msgid "Version Line:" -+msgstr "版本行:" -+ -+#: src/ui/classic/classicui.h:92 -+msgid "Vertical Candidate List" -+msgstr "垂直候选列表" -+ -+#: src/lib/fcitx-utils/key.cpp:158 -+msgctxt "Key name" -+msgid "Video" -+msgstr "视频" -+ -+#: src/lib/fcitx-utils/key.cpp:179 -+msgctxt "Key name" -+msgid "View" -+msgstr "查看" -+ -+#: src/lib/fcitx-utils/key.cpp:62 -+msgctxt "Key name" -+msgid "Volume Down" -+msgstr "音量减小" -+ -+#: src/lib/fcitx-utils/key.cpp:63 -+msgctxt "Key name" -+msgid "Volume Mute" -+msgstr "静音" -+ -+#: src/lib/fcitx-utils/key.cpp:64 -+msgctxt "Key name" -+msgid "Volume Up" -+msgstr "音量增大" -+ -+#: src/lib/fcitx-utils/key.cpp:104 -+msgctxt "Key name" -+msgid "WWW" -+msgstr "WWW" -+ -+#: src/lib/fcitx-utils/key.cpp:101 -+msgctxt "Key name" -+msgid "Wake Up" -+msgstr "唤醒" -+ -+#: data/fcitx5-diagnose.sh:1809 -+msgid "" -+"Warning: the output of fcitx5-diagnose contains sensitive information, " -+"including the distribution name, kernel version, name of currently running " -+"programs, etc." -+msgstr "" -+"警告:fcitx5-diagnose 的输出可能包含敏感信息,包括发行版名称,内核版本,正在" -+"运行的程序名称等。" -+ -+#: src/modules/wayland/wayland.conf.in.in:3 -+msgid "Wayland" -+msgstr "Wayland" -+ -+#: src/frontend/waylandim/waylandim.conf.in.in:3 -+msgid "Wayland Input method frontend" -+msgstr "Wayland 输入法前端" -+ -+#: src/lib/fcitx-utils/key.cpp:165 -+msgctxt "Key name" -+msgid "WebCam" -+msgstr "摄像头" -+ -+#: src/lib/fcitx/globalconfig.cpp:169 -+msgid "" -+"Whether to override the xkb option from display server. It will not affect " -+"the xkb option send to display, but just the xkb options for custom xkb " -+"layout." -+msgstr "" -+"是否覆盖来自显示服务器的 Xkb 选项。它不会影响发送给显示服务的 Xkb 选项,仅会" -+"影响自定义的 Xkb 布局" -+ -+#: data/fcitx5-diagnose.sh:909 -+msgid "Why is it bad to run as root" -+msgstr "以 root 身份运行不好的原因" -+ -+#: src/lib/fcitx-utils/key.cpp:171 -+msgctxt "Key name" -+msgid "Wireless" -+msgstr "无线" -+ -+#: src/lib/fcitx-utils/key.cpp:159 -+msgctxt "Key name" -+msgid "Word Processor" -+msgstr "文字处理器" -+ -+#: src/frontend/xim/xim.conf.in.in:3 -+msgid "X Input Method Frontend" -+msgstr "X 输入法前端" -+ -+#: src/modules/xcb/xcb.conf.in.in:3 -+msgid "XCB" -+msgstr "XCB" -+ -+#: data/fcitx5-diagnose.sh:808 -+msgid "XDG SESSION TYPE:" -+msgstr "XDG 会话类型:" -+ -+#: src/lib/fcitx-utils/key.cpp:160 -+msgctxt "Key name" -+msgid "XFer" -+msgstr "XFer" -+ -+#: data/fcitx5-diagnose.sh:1171 -+msgid "XIM encoding:" -+msgstr "XIM 编码:" -+ -+#: data/fcitx5-diagnose.sh:1166 -+msgid "XIM for Emacs:" -+msgstr "用于 Emacs 的 XIM:" -+ -+#: data/fcitx5-diagnose.sh:1142 -+msgid "XIM_SERVERS on root window:" -+msgstr "根窗口上的 XIM_SERVERS:" -+ -+#: data/fcitx5-diagnose.sh:1119 -+msgid "XMODIFIERS is not set" -+msgstr "XMODIFIERS 没有设置" -+ -+#: data/fcitx5-diagnose.sh:1140 -+msgid "Xim Server Name from Environment variable is ${1}." -+msgstr "从环境变量中获取的 Xim 服务名称为 ${1}." -+ -+#: data/fcitx5-diagnose.sh:1152 -+msgid "Xim server name is the same with that set in the environment variable." -+msgstr "Xim 服务的名称与环境变量中设置的相同。" -+ -+#: data/fcitx5-diagnose.sh:1154 -+msgid "" -+"Xim server name: \"${1}\" is different from that set in the environment " -+"variable: \"${2}\"." -+msgstr "Xim 服务名称:“${1}”与环境变量中设置的值“${2}”不同。" -+ -+#: src/lib/fcitx-utils/key.cpp:186 -+msgctxt "Key name" -+msgid "Yellow" -+msgstr "黄" -+ -+#: data/fcitx5-diagnose.sh:907 -+msgid "" -+"You are probably logging in as ${1} or using ${2} to run this script. This " -+"either means you have security problems or the result of this script may not " -+"be accurate. See ${3} or ${4} for more information." -+msgstr "" -+"你可能以 ${1} 或者 ${2} 登录运行此脚本。这意味着两种情况,要么你有安全问题或" -+"该脚本的结果可能不准确。有关更多信息,请参见 ${3} 或者 ${4} 。" -+ -+#: data/fcitx5-diagnose.sh:902 -+msgid "" -+"You are probably using ${1} to run this script. This means the result of " -+"this script may not be accurate. See ${2} for more information." -+msgstr "" -+"你可能正在使用 ${1} 运行此脚本。这意味着这个脚本的结果可能不准确。见 ${2} 以" -+"获取更多信息。" -+ -+#: data/fcitx5-diagnose.sh:1193 -+msgid "You are using xim in ${1} programs." -+msgstr "您正在 ${1} 程序中使用 xim。" -+ -+#: data/fcitx5-diagnose.sh:1198 -+msgid "You may have trouble using fcitx in ${1} programs." -+msgstr "您可能会在 ${1} 程序中使用 fcitx 时遇到问题." -+ -+#: data/fcitx5-configtool.sh:134 -+msgid "" -+"You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be " -+"found. Now it will open config directory." -+msgstr "" -+"您当前正在使用图形界面运行 Fcitx,但是无法找到 fcitx5-config-qt。现在将打开配" -+"置目录。" -+ -+#: data/fcitx5-configtool.sh:131 -+msgid "" -+"You're currently running KDE, but KCModule for fcitx couldn't be found, the " -+"package name of this KCModule is usually kcm-fcitx or kde-config-fcitx. Now " -+"it will open config directory." -+msgstr "" -+"您正在运行 KDE,但是 fcitx 的 KCModule 未被找到,此 KCModule 的软件包名通常" -+"为 kcm-fcitx 或 kde-config-fcitx。现在将打开配置目录。" -+ -+#: data/fcitx5-diagnose.sh:1168 -+msgid "" -+"Your LC_CTYPE is set to ${1} instead of one of zh, ja, ko. You may not be " -+"able to use input method in emacs because of an really old emacs bug that " -+"upstream refuse to fix for years." -+msgstr "" -+"您的 LC_CTYPE 设置为 ${1} 而不是 zh, ja, ko 之一。您可能无法在 Emacs 中使用输" -+"入法,其根本是源自上游拒绝修复多年的一个超老的故障。" -+ -+#: data/fcitx5-diagnose.sh:1173 -+msgid "" -+"Your LC_CTYPE is set to ${1} whose encoding is not UTF-8. You may have " -+"trouble committing strings using XIM." -+msgstr "" -+"您的 LC_CTYPE 设置为 ${1},它的编码不是 UTF-8。您可能会在使用 XIM 提交字符串" -+"时遇到问题。" -+ -+#: src/lib/fcitx-utils/key.cpp:206 -+msgctxt "Key name" -+msgid "Zenkaku" -+msgstr "全角" -+ -+#: src/lib/fcitx-utils/key.cpp:208 -+msgctxt "Key name" -+msgid "Zenkaku Hankaku" -+msgstr "全角半角" -+ -+#: src/lib/fcitx-utils/key.cpp:161 -+msgctxt "Key name" -+msgid "Zoom In" -+msgstr "放大" -+ -+#: src/lib/fcitx-utils/key.cpp:162 -+msgctxt "Key name" -+msgid "Zoom Out" -+msgstr "缩小" -+ -+#: data/fcitx5-diagnose.sh:919 -+msgid "executable:" -+msgstr "可执行文件:" -+ -+#: data/fcitx5-diagnose.sh:740 -+msgid "here" -+msgstr "这里" -+ -+#: src/lib/fcitx-utils/key.cpp:132 -+msgctxt "Key name" -+msgid "iTouch" -+msgstr "iTouch" -+ -+#: data/fcitx5-diagnose.sh:933 -+msgid "process:" -+msgstr "进程:" -+ -+#: data/fcitx5-diagnose.sh:904 data/fcitx5-diagnose.sh:910 -+msgid "sudo environment variables" -+msgstr "sudo 的环境变量" -+ -+#: data/fcitx5-diagnose.sh:929 -+msgid "version:" -+msgstr "版本:" -+ -+#: src/im/keyboard/keyboard.cpp:265 -+msgid "{0} (Not Available)" -+msgstr "{0} (不可用)" -+ -+#: src/lib/fcitx/instance.cpp:380 -+msgid "{0} (Not available)" -+msgstr "{0} (不可用)" -+ -+#: src/lib/fcitx/instance.cpp:377 -+msgid "{0} ({1})" -+msgstr "{0} ({1})" -diff --git a/src/lib/fcitx/globalconfig.cpp b/src/lib/fcitx/globalconfig.cpp -index 361860d..22373aa 100644 ---- a/src/lib/fcitx/globalconfig.cpp -+++ b/src/lib/fcitx/globalconfig.cpp -@@ -139,11 +139,10 @@ FCITX_CONFIGURATION( - OptionWithAnnotation<PropertyPropagatePolicy, - PropertyPropagatePolicyI18NAnnotation> - shareState{this, "ShareInputState", _("Share Input State"), -- isAndroid() ? PropertyPropagatePolicy::All -- : PropertyPropagatePolicy::No}; -+ PropertyPropagatePolicy::All}; - Option<bool> preeditEnabledByDefault{this, "PreeditEnabledByDefault", - _("Show preedit in application"), -- true}; -+ false}; - Option<bool> showInputMethodInformation{ - this, "ShowInputMethodInformation", - _("Show Input Method Information when switch input method"), true}; -diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt -index 2d4ce0b..64a9d66 100644 ---- a/src/modules/CMakeLists.txt -+++ b/src/modules/CMakeLists.txt -@@ -17,6 +17,7 @@ add_subdirectory(unicode) - add_subdirectory(clipboard) - add_subdirectory(emoji) - add_subdirectory(imselector) -+add_subdirectory(devicestatusmanager) - - write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/Fcitx5ModuleConfigVersion.cmake" VERSION @FCITX_VERSION@ COMPATIBILITY AnyNewerVersion) - -diff --git a/src/modules/devicestatusmanager/CMakeLists.txt b/src/modules/devicestatusmanager/CMakeLists.txt -new file mode 100644 -index 0000000..35be75b ---- /dev/null -+++ b/src/modules/devicestatusmanager/CMakeLists.txt -@@ -0,0 +1,10 @@ -+if (ENABLE_DBUS) -+ add_library(devicestatusmanager MODULE devicestatusmanager.cpp statusmanagerwatcher.cpp physicalkeyboardwatcherstrategy.cpp tabletmodewatcherstrategy.cpp) -+ target_link_libraries(devicestatusmanager Fcitx5::Core Fcitx5::Module::DBus) -+ install(TARGETS devicestatusmanager DESTINATION "${FCITX_INSTALL_ADDONDIR}") -+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/devicestatusmanager.conf" DESTINATION "${FCITX_INSTALL_PKGDATADIR}/addon" -+ COMPONENT config) -+endif() -+ -+configure_file(devicestatusmanager.conf.in.in devicestatusmanager.conf.in @ONLY) -+fcitx5_translate_desktop_file(${CMAKE_CURRENT_BINARY_DIR}/devicestatusmanager.conf.in devicestatusmanager.conf) -diff --git a/src/modules/devicestatusmanager/devicestatusmanager.conf.in.in b/src/modules/devicestatusmanager/devicestatusmanager.conf.in.in -new file mode 100644 -index 0000000..0bc8961 ---- /dev/null -+++ b/src/modules/devicestatusmanager/devicestatusmanager.conf.in.in -@@ -0,0 +1,12 @@ -+[Addon] -+Name=Device Status Manager -+Comment=Device Status Manager -+Type=SharedLibrary -+Library=libdevicestatusmanager -+Category=Module -+Version=@PROJECT_VERSION@ -+OnDemand=False -+ -+[Addon/Dependencies] -+0=dbus -+1=core:@PROJECT_VERSION@ -diff --git a/src/modules/devicestatusmanager/devicestatusmanager.cpp b/src/modules/devicestatusmanager/devicestatusmanager.cpp -new file mode 100644 -index 0000000..bfd2bb5 ---- /dev/null -+++ b/src/modules/devicestatusmanager/devicestatusmanager.cpp -@@ -0,0 +1,79 @@ -+/* -+ * SPDX-FileCopyrightText: 2022-2023 liulinsong <liulinsong@kylinos.cn> -+ * -+ * SPDX-License-Identifier: LGPL-2.1-or-later -+ * -+ */ -+ -+#include "devicestatusmanager.h" -+#include "fcitx/addonfactory.h" -+#include "physicalkeyboardwatcherstrategy.h" -+#include "tabletmodewatcherstrategy.h" -+ -+namespace fcitx { -+ -+DeviceStatusManager::DeviceStatusManager(Instance *instance) -+ : instance_(instance), -+ physicalKeyboardWatcher_(createPhysicalKeyboardWatcherStrategy(), -+ instance), -+ tabletModeWatcher_(createTabletModeWatcherStrategy(), instance) {} -+ -+DeviceStatusManager::~DeviceStatusManager() = default; -+ -+std::unique_ptr<StatusManagerWatcher::Strategy> -+DeviceStatusManager::createPhysicalKeyboardWatcherStrategy() { -+ auto physicalKeyboardAvailabilityChangedCallback = [this]() { -+ const bool isPhysicalKeyboardAvailable = -+ physicalKeyboardWatcher_.isSubjectAvailable(); -+ if (isPhysicalKeyboardAvailable) { -+ instance_->setInputMethodMode(InputMethodMode::PhysicalKeyboard); -+ } else { -+ instance_->setInputMethodMode(InputMethodMode::OnScreenKeyboard); -+ } -+ -+ instance_->setVirtualKeyboardAutoShow(!isPhysicalKeyboardAvailable); -+ -+ updateVirtualKeyboardAutoHide(); -+ }; -+ -+ return std::unique_ptr<StatusManagerWatcher::Strategy>( -+ new PhysicalKeyboardWatcherStrategy( -+ std::move(physicalKeyboardAvailabilityChangedCallback))); -+} -+ -+std::unique_ptr<StatusManagerWatcher::Strategy> -+DeviceStatusManager::createTabletModeWatcherStrategy() { -+ auto tabletModeAvailabilityChangedCallback = [this]() { -+ updateVirtualKeyboardAutoHide(); -+ }; -+ -+ return std::unique_ptr<StatusManagerWatcher::Strategy>( -+ new TabletModeWatcherStrategy( -+ std::move(tabletModeAvailabilityChangedCallback))); -+} -+ -+bool DeviceStatusManager::shouldVirtualKeyboardAutoHide() const { -+ const bool isTabletModeAvailable = tabletModeWatcher_.isSubjectAvailable(); -+ if (isTabletModeAvailable) { -+ return true; -+ } -+ -+ const bool isPhysicalKeyboardUnavailable = -+ !physicalKeyboardWatcher_.isSubjectAvailable(); -+ -+ return isPhysicalKeyboardUnavailable; -+} -+ -+void DeviceStatusManager::updateVirtualKeyboardAutoHide() { -+ instance_->setVirtualKeyboardAutoHide(shouldVirtualKeyboardAutoHide()); -+} -+ -+class DeviceStatusManagerFactory : public AddonFactory { -+ AddonInstance *create(AddonManager *manager) override { -+ return new DeviceStatusManager(manager->instance()); -+ } -+}; -+ -+} // namespace fcitx -+ -+FCITX_ADDON_FACTORY(fcitx::DeviceStatusManagerFactory) -diff --git a/src/modules/devicestatusmanager/devicestatusmanager.h b/src/modules/devicestatusmanager/devicestatusmanager.h -new file mode 100644 -index 0000000..3f0f28e ---- /dev/null -+++ b/src/modules/devicestatusmanager/devicestatusmanager.h -@@ -0,0 +1,40 @@ -+/* -+ * SPDX-FileCopyrightText: 2022-2023 liulinsong <liulinsong@kylinos.cn> -+ * -+ * SPDX-License-Identifier: LGPL-2.1-or-later -+ * -+ */ -+#ifndef _FCITX_MODULES_DEVICESTATUSMANAGER_DEVICESTATUSMANAGER_H_ -+#define _FCITX_MODULES_DEVICESTATUSMANAGER_DEVICESTATUSMANAGER_H_ -+ -+#include "fcitx/instance.h" -+ -+#include "statusmanagerwatcher.h" -+ -+namespace fcitx { -+ -+class DeviceStatusManager : public AddonInstance { -+public: -+ explicit DeviceStatusManager(Instance *instance); -+ ~DeviceStatusManager() override; -+ -+private: -+ std::unique_ptr<StatusManagerWatcher::Strategy> -+ createPhysicalKeyboardWatcherStrategy(); -+ std::unique_ptr<StatusManagerWatcher::Strategy> -+ createTabletModeWatcherStrategy(); -+ -+ bool shouldVirtualKeyboardAutoHide() const; -+ void updateVirtualKeyboardAutoHide(); -+ -+private: -+ Instance *instance_; -+ -+ StatusManagerWatcher physicalKeyboardWatcher_; -+ -+ StatusManagerWatcher tabletModeWatcher_; -+}; -+ -+} // namespace fcitx -+ -+#endif // _FCITX_MODULES_DEVICESTATUSMANAGER_DEVICESTATUSMANAGER_H_ -diff --git a/src/modules/devicestatusmanager/physicalkeyboardwatcherstrategy.cpp b/src/modules/devicestatusmanager/physicalkeyboardwatcherstrategy.cpp -new file mode 100644 -index 0000000..3ee1b3f ---- /dev/null -+++ b/src/modules/devicestatusmanager/physicalkeyboardwatcherstrategy.cpp -@@ -0,0 +1,35 @@ -+/* -+ * SPDX-FileCopyrightText: 2022-2023 liulinsong <liulinsong@kylinos.cn> -+ * -+ * SPDX-License-Identifier: LGPL-2.1-or-later -+ * -+ */ -+ -+#include "physicalkeyboardwatcherstrategy.h" -+ -+namespace fcitx { -+ -+PhysicalKeyboardWatcherStrategy::PhysicalKeyboardWatcherStrategy( -+ SubjectAvailabilityChangedCallback availabilityChangedCallback) -+ : Strategy("PhysicalKeyboardWatcherStrategy", "inputmethod_change_signal", -+ "get_inputmethod_mode", std::move(availabilityChangedCallback)) { -+} -+ -+PhysicalKeyboardWatcherStrategy::~PhysicalKeyboardWatcherStrategy() = default; -+ -+bool PhysicalKeyboardWatcherStrategy::isSubjectDefaultAvailable() const { -+ return false; -+} -+ -+bool PhysicalKeyboardWatcherStrategy::isSubjectAvailableFromMethodMessage( -+ dbus::Message &message) const { -+ int isPhysicalKeyboardAvailable = -+ static_cast<int>(isSubjectDefaultAvailable()); -+ -+ auto reply = message.call(0); -+ reply >> isPhysicalKeyboardAvailable; -+ -+ return static_cast<bool>(isPhysicalKeyboardAvailable); -+} -+ -+} // namespace fcitx -diff --git a/src/modules/devicestatusmanager/physicalkeyboardwatcherstrategy.h b/src/modules/devicestatusmanager/physicalkeyboardwatcherstrategy.h -new file mode 100644 -index 0000000..e90f435 ---- /dev/null -+++ b/src/modules/devicestatusmanager/physicalkeyboardwatcherstrategy.h -@@ -0,0 +1,27 @@ -+/* -+ * SPDX-FileCopyrightText: 2022-2023 liulinsong <liulinsong@kylinos.cn> -+ * -+ * SPDX-License-Identifier: LGPL-2.1-or-later -+ * -+ */ -+#ifndef _FCITX_MODULES_DEVICESTATUSMANAGER_PHYSICALKEYBOARDWATCHERSTRATEGY_H_ -+#define _FCITX_MODULES_DEVICESTATUSMANAGER_PHYSICALKEYBOARDWATCHERSTRATEGY_H_ -+ -+#include "statusmanagerwatcher.h" -+ -+namespace fcitx { -+ -+class PhysicalKeyboardWatcherStrategy : public StatusManagerWatcher::Strategy { -+public: -+ explicit PhysicalKeyboardWatcherStrategy( -+ SubjectAvailabilityChangedCallback availabilityChangedCallback); -+ ~PhysicalKeyboardWatcherStrategy() override; -+ -+ bool isSubjectDefaultAvailable() const override; -+ bool -+ isSubjectAvailableFromMethodMessage(dbus::Message &message) const override; -+}; -+ -+} // namespace fcitx -+ -+#endif // _FCITX_MODULES_DEVICESTATUSMANAGER_PHYSICALKEYBOARDWATCHERSTRATEGY_H_ -diff --git a/src/modules/devicestatusmanager/statusmanagerwatcher.cpp b/src/modules/devicestatusmanager/statusmanagerwatcher.cpp -new file mode 100644 -index 0000000..d0f496e ---- /dev/null -+++ b/src/modules/devicestatusmanager/statusmanagerwatcher.cpp -@@ -0,0 +1,102 @@ -+/* -+ * SPDX-FileCopyrightText: 2023-2023 liulinsong <liulinsong@kylinos.cn> -+ * -+ * SPDX-License-Identifier: LGPL-2.1-or-later -+ * -+ */ -+ -+#include "statusmanagerwatcher.h" -+ -+namespace fcitx { -+ -+StatusManagerWatcher::StatusManagerWatcher(std::unique_ptr<Strategy> strategy, -+ Instance *instance) -+ : strategy_(std::move(strategy)), instance_(instance), -+ bus_(dbus()->call<IDBusModule::bus>()), watcher_(*bus_) { -+ updateSubjectDefaultAvailable(); -+ -+ watch(); -+ -+ connectSignal(); -+} -+ -+StatusManagerWatcher::~StatusManagerWatcher() = default; -+ -+void StatusManagerWatcher::updateSubjectDefaultAvailable() { -+ updateSubjectAvailable(strategy_->isSubjectDefaultAvailable()); -+} -+ -+void StatusManagerWatcher::watch() { -+ entry_ = watcher_.watchService( -+ "com.kylin.statusmanager.interface", -+ [this](const std::string &, const std::string &, -+ const std::string &newOwner) { -+ FCITX_INFO() << "StatusManagerWatcher's strategy: " -+ << strategy_->getName() << " new owner: " << newOwner; -+ if (!newOwner.empty()) { -+ setSubjectAvailable(isSubjectAvailableDBus()); -+ } else { -+ updateSubjectDefaultAvailable(); -+ } -+ }); -+} -+ -+void StatusManagerWatcher::connectSignal() { -+ slot_ = -+ bus_->addMatch(dbus::MatchRule("com.kylin.statusmanager.interface", "/", -+ "com.kylin.statusmanager.interface", -+ strategy_->getDbusSignalName()), -+ [this](dbus::Message &message) { -+ const bool isSubjectAvailable = -+ isSubjectAvailableFromSignalMessage(message); -+ setSubjectAvailable(isSubjectAvailable); -+ -+ return true; -+ }); -+} -+ -+bool StatusManagerWatcher::isSubjectAvailableFromSignalMessage( -+ dbus::Message &message) const { -+ bool isSubjectAvailable = strategy_->isSubjectDefaultAvailable(); -+ message >> isSubjectAvailable; -+ -+ return isSubjectAvailable; -+} -+ -+void StatusManagerWatcher::setSubjectAvailable(bool available) { -+ if (isSubjectAvailable_ == available) { -+ return; -+ } -+ -+ updateSubjectAvailable(available); -+} -+ -+void StatusManagerWatcher::updateSubjectAvailable(bool available) { -+ isSubjectAvailable_ = available; -+ -+ strategy_->nofityDeviceAvailabilityChanged(); -+} -+ -+bool StatusManagerWatcher::isSubjectAvailableDBus() { -+ bool available = strategy_->isSubjectDefaultAvailable(); -+ callDBusMethod(strategy_->getDbusMethodName(), [this, &available]( -+ dbus::Message &message) { -+ available = strategy_->isSubjectAvailableFromMethodMessage(message); -+ }); -+ -+ return available; -+} -+ -+void StatusManagerWatcher::callDBusMethod( -+ const std::string &methodName, const MethodCallback &methodCallback) { -+ if (!methodCallback) { -+ return; -+ } -+ -+ auto msg = bus_->createMethodCall("com.kylin.statusmanager.interface", "/", -+ "com.kylin.statusmanager.interface", -+ methodName.c_str()); -+ methodCallback(msg); -+} -+ -+} // namespace fcitx -diff --git a/src/modules/devicestatusmanager/statusmanagerwatcher.h b/src/modules/devicestatusmanager/statusmanagerwatcher.h -new file mode 100644 -index 0000000..9a6dd36 ---- /dev/null -+++ b/src/modules/devicestatusmanager/statusmanagerwatcher.h -@@ -0,0 +1,104 @@ -+/* -+ * SPDX-FileCopyrightText: 2023-2023 liulinsong <liulinsong@kylinos.cn> -+ * -+ * SPDX-License-Identifier: LGPL-2.1-or-later -+ * -+ */ -+#ifndef _FCITX_MODULES_DEVICESTATUSMANAGER_STATUSMANAGERWATCHER_H_ -+#define _FCITX_MODULES_DEVICESTATUSMANAGER_STATUSMANAGERWATCHER_H_ -+ -+#include <functional> -+#include <memory> -+#include <string> -+ -+#include "fcitx-utils/dbus/servicewatcher.h" -+#include "fcitx/addonmanager.h" -+#include "fcitx/instance.h" -+#include "dbus_public.h" -+ -+namespace fcitx { -+class StatusManagerWatcher { -+public: -+ class Strategy; -+ -+public: -+ StatusManagerWatcher(std::unique_ptr<Strategy> strategy, -+ Instance *instance); -+ ~StatusManagerWatcher(); -+ -+ bool isSubjectAvailable() const { return isSubjectAvailable_; } -+ -+private: -+ void updateSubjectDefaultAvailable(); -+ void watch(); -+ void connectSignal(); -+ -+ bool isSubjectAvailableFromSignalMessage(dbus::Message &message) const; -+ -+ void setSubjectAvailable(bool available); -+ void updateSubjectAvailable(bool available); -+ bool isSubjectAvailableDBus(); -+ -+private: -+ using MethodCallback = std::function<void(dbus::Message &)>; -+ -+private: -+ void callDBusMethod(const std::string &methodName, -+ const MethodCallback &methodCallback); -+ -+private: -+ FCITX_ADDON_DEPENDENCY_LOADER(dbus, instance_->addonManager()); -+ -+ std::unique_ptr<Strategy> strategy_; -+ -+ bool isSubjectAvailable_; -+ -+ Instance *instance_ = nullptr; -+ dbus::Bus *bus_ = nullptr; -+ dbus::ServiceWatcher watcher_; -+ std::unique_ptr<dbus::ServiceWatcherEntry> entry_; -+ std::unique_ptr<dbus::Slot> slot_; -+}; -+ -+class StatusManagerWatcher::Strategy { -+public: -+ using SubjectAvailabilityChangedCallback = std::function<void()>; -+ -+public: -+ virtual ~Strategy() = default; -+ -+ void nofityDeviceAvailabilityChanged() { -+ if (!availabilityChangedCallback_) { -+ return; -+ } -+ -+ availabilityChangedCallback_(); -+ } -+ -+ const std::string &getName() const { return name_; } -+ const std::string &getDbusSignalName() const { return dbusSignalName_; } -+ const std::string &getDbusMethodName() const { return dbusMethodName_; } -+ -+ virtual bool isSubjectDefaultAvailable() const = 0; -+ virtual bool -+ isSubjectAvailableFromMethodMessage(dbus::Message &message) const = 0; -+ -+protected: -+ Strategy(const std::string &name, const std::string &dbusSignalName, -+ const std::string &dbusMethodName, -+ SubjectAvailabilityChangedCallback availabilityChangedCallback) -+ : name_(name), dbusSignalName_(dbusSignalName), -+ dbusMethodName_(dbusMethodName), -+ availabilityChangedCallback_(std::move(availabilityChangedCallback)) { -+ } -+ -+private: -+ const std::string name_; -+ const std::string dbusSignalName_; -+ const std::string dbusMethodName_; -+ -+ SubjectAvailabilityChangedCallback availabilityChangedCallback_; -+}; -+} // namespace fcitx -+ -+#endif -\ No newline at end of file -diff --git a/src/modules/devicestatusmanager/tabletmodewatcherstrategy.cpp b/src/modules/devicestatusmanager/tabletmodewatcherstrategy.cpp -new file mode 100644 -index 0000000..abd2989 ---- /dev/null -+++ b/src/modules/devicestatusmanager/tabletmodewatcherstrategy.cpp -@@ -0,0 +1,34 @@ -+/* -+ * SPDX-FileCopyrightText: 2022-2023 liulinsong <liulinsong@kylinos.cn> -+ * -+ * SPDX-License-Identifier: LGPL-2.1-or-later -+ * -+ */ -+ -+#include "tabletmodewatcherstrategy.h" -+ -+namespace fcitx { -+ -+TabletModeWatcherStrategy::TabletModeWatcherStrategy( -+ SubjectAvailabilityChangedCallback availabilityChangedCallback) -+ : Strategy("TabletModeWatcherStrategy", "mode_change_signal", -+ "get_current_tabletmode", -+ std::move(availabilityChangedCallback)) {} -+ -+TabletModeWatcherStrategy::~TabletModeWatcherStrategy() = default; -+ -+bool TabletModeWatcherStrategy::isSubjectDefaultAvailable() const { -+ return true; -+} -+ -+bool TabletModeWatcherStrategy::isSubjectAvailableFromMethodMessage( -+ dbus::Message &message) const { -+ bool isTabletModeAvailable = isSubjectDefaultAvailable(); -+ -+ auto reply = message.call(0); -+ reply >> isTabletModeAvailable; -+ -+ return isTabletModeAvailable; -+} -+ -+} // namespace fcitx -\ No newline at end of file -diff --git a/src/modules/devicestatusmanager/tabletmodewatcherstrategy.h b/src/modules/devicestatusmanager/tabletmodewatcherstrategy.h -new file mode 100644 -index 0000000..651fb37 ---- /dev/null -+++ b/src/modules/devicestatusmanager/tabletmodewatcherstrategy.h -@@ -0,0 +1,27 @@ -+/* -+ * SPDX-FileCopyrightText: 2022-2023 liulinsong <liulinsong@kylinos.cn> -+ * -+ * SPDX-License-Identifier: LGPL-2.1-or-later -+ * -+ */ -+#ifndef _FCITX_MODULES_DEVICESTATUSMANAGER_TABLETMODEWATCHERSTRATEGY_H_ -+#define _FCITX_MODULES_DEVICESTATUSMANAGER_TABLETMODEWATCHERSTRATEGY_H_ -+ -+#include "statusmanagerwatcher.h" -+ -+namespace fcitx { -+ -+class TabletModeWatcherStrategy : public StatusManagerWatcher::Strategy { -+public: -+ explicit TabletModeWatcherStrategy( -+ SubjectAvailabilityChangedCallback availabilityChangedCallback); -+ ~TabletModeWatcherStrategy() override; -+ -+ bool isSubjectDefaultAvailable() const override; -+ bool -+ isSubjectAvailableFromMethodMessage(dbus::Message &message) const override; -+}; -+ -+} // namespace fcitx -+ -+#endif // _FCITX_MODULES_DEVICESTATUSMANAGER_TABLETMODEWATCHERSTRATEGY_H_ diff -Nru fcitx5-5.1.7/debian/patches/0003-update-changelog.patch fcitx5-5.1.11/debian/patches/0003-update-changelog.patch --- fcitx5-5.1.7/debian/patches/0003-update-changelog.patch 2024-08-28 10:05:23.000000000 +0800 +++ fcitx5-5.1.11/debian/patches/0003-update-changelog.patch 2025-03-20 13:50:02.000000000 +0800 @@ -1,21 +1,102 @@ -From: hantengc <hanteng@kylinos.cn> -Date: Mon, 4 Dec 2023 13:38:13 +0800 +From: hantengc <1341910529@qq.com> +Date: Thu, 20 Mar 2025 13:51:56 +0800 Subject: update changelog --- - src/lib/fcitx/globalconfig.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + data/fcitx5-configtool.sh | 17 +++++++++++++++++ + src/modules/dbus/dbusmodule.cpp | 26 ++++++++++++++++++++++++++ + 2 files changed, 43 insertions(+) -diff --git a/src/lib/fcitx/globalconfig.cpp b/src/lib/fcitx/globalconfig.cpp -index 22373aa..a9273b0 100644 ---- a/src/lib/fcitx/globalconfig.cpp -+++ b/src/lib/fcitx/globalconfig.cpp -@@ -145,7 +145,7 @@ FCITX_CONFIGURATION( - false}; - Option<bool> showInputMethodInformation{ - this, "ShowInputMethodInformation", -- _("Show Input Method Information when switch input method"), true}; -+ _("Show Input Method Information when switch input method"), false}; - Option<bool> showInputMethodInformationWhenFocusIn{ - this, "showInputMethodInformationWhenFocusIn", - _("Show Input Method Information when changing focus"), false}; +diff --git a/data/fcitx5-configtool.sh b/data/fcitx5-configtool.sh +index 8f0a0d8..0e7aabe 100755 +--- a/data/fcitx5-configtool.sh ++++ b/data/fcitx5-configtool.sh +@@ -65,6 +65,10 @@ detectDE() { + XFCE) + DE=xfce + break ++ ;; ++ UKUI) ++ DE=ukui ++ break + esac + done + fi +@@ -133,6 +137,9 @@ run_xdg() { + kde) + message "$(_ "You're currently running KDE, but KCModule for fcitx couldn't be found. The package name of this KCModule is usually kcm-fcitx5, kde-config-fcitx5, or fcitx5-configtool. Now it will open the configuration directory.")" + ;; ++ ukui) ++ message "$(_ "You're currently running UKUI, but ukui control center for fcitx couldn't be found. The package name of this Module is usually ukui-control-center, or fcitx5-configtool. Now it will open the configuration directory.")" ++ ;; + *) + message "$(_ "You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be found. The package name provides this binary is usually fcitx5-configtool. Now it will open the configuration directory.")" + ;; +@@ -148,6 +155,13 @@ run_xdg() { + fi + } + ++run_ukui() { ++ if command -v ukui-control-center -m keyboard inputmethod > /dev/null 2>&1; then ++ exec ukui-control-center -m keyboard inputmethod ++ fi ++ return 1 ++} ++ + _which_cmdline() { + cmd="$(command -v "$1")" || return 1 + shift +@@ -164,6 +178,9 @@ case "$DE" in + kde) + order="kde qt xdg" + ;; ++ ukui) ++ order="ukui qt xdg" ++ ;; + *) + order="qt kde xdg" + ;; +diff --git a/src/modules/dbus/dbusmodule.cpp b/src/modules/dbus/dbusmodule.cpp +index 23e69bf..6e9ad8c 100644 +--- a/src/modules/dbus/dbusmodule.cpp ++++ b/src/modules/dbus/dbusmodule.cpp +@@ -681,6 +681,30 @@ public: + + void setLogRule(const std::string &rule) { Log::setLogRule(rule); } + ++ std::tuple<std::string, std::string, std::string, std::string, std::string, ++ std::string, std::string, bool, std::string, DBusVariantMap> ++ currentInputMethodInfo() { ++ const auto &inputMethodManager = instance_->inputMethodManager(); ++ const auto &group = inputMethodManager.currentGroup(); ++ ++ std::string currentIM = instance_->currentInputMethod(); ++ const auto *entry = instance_->inputMethodManager().entry(currentIM); ++ if (entry == nullptr) { ++ return {}; ++ } ++ ++ return {entry->uniqueName(), ++ entry->name(), ++ entry->nativeName(), ++ entry->icon(), ++ entry->label(), ++ entry->languageCode(), ++ entry->addon(), ++ entry->isConfigurable(), ++ group.layoutFor(currentIM), ++ {}}; ++ } ++ + private: + DBusModule *module_; + Instance *instance_; +@@ -750,6 +774,8 @@ private: + FCITX_OBJECT_VTABLE_METHOD(save, "Save", "", ""); + FCITX_OBJECT_VTABLE_METHOD(setLogRule, "SetLogRule", "s", ""); + FCITX_OBJECT_VTABLE_METHOD(canRestart, "CanRestart", "", "b"); ++ FCITX_OBJECT_VTABLE_METHOD(currentInputMethodInfo, "CurrentInputMethodInfo", ++ "", "sssssssbsa{sv}"); + }; + + DBusModule::DBusModule(Instance *instance) diff -Nru fcitx5-5.1.7/debian/patches/0004-update-changelog.patch fcitx5-5.1.11/debian/patches/0004-update-changelog.patch --- fcitx5-5.1.7/debian/patches/0004-update-changelog.patch 2024-08-28 10:05:23.000000000 +0800 +++ fcitx5-5.1.11/debian/patches/0004-update-changelog.patch 1970-01-01 08:00:00.000000000 +0800 @@ -1,40 +0,0 @@ -From: hantengc <hanteng@kylinos.cn> -Date: Mon, 4 Dec 2023 15:20:28 +0800 -Subject: update changelog - ---- - data/default/zh_CN | 4 ++-- - data/default/zh_HK | 3 ++- - data/default/zh_TW | 2 ++ - 3 files changed, 6 insertions(+), 3 deletions(-) - -diff --git a/data/default/zh_CN b/data/default/zh_CN -index 3d74c47..1052eee 100644 ---- a/data/default/zh_CN -+++ b/data/default/zh_CN -@@ -1,4 +1,4 @@ - [DefaultInputMethod] --0=sogou-ime-ng-fcitx5-kylin-desktop --1=pinyin -+0=okpinyininputmethod -+1=sogou-ime-ng-fcitx5-kylin-desktop - 2=rime -diff --git a/data/default/zh_HK b/data/default/zh_HK -index bc9b8fb..875f1dc 100644 ---- a/data/default/zh_HK -+++ b/data/default/zh_HK -@@ -1,3 +1,4 @@ - [DefaultInputMethod] - 0=cangjie --1=rime -+1=okpinyininputmethod -+2=sogou-ime-ng-fcitx5-kylin-desktop -diff --git a/data/default/zh_TW b/data/default/zh_TW -index 28ce08f..d7444e2 100644 ---- a/data/default/zh_TW -+++ b/data/default/zh_TW -@@ -1,2 +1,4 @@ - [DefaultInputMethod] - 0=chewing -+1=okpinyininputmethod -+2=sogou-ime-ng-fcitx5-kylin-desktop diff -Nru fcitx5-5.1.7/debian/patches/0005-windows-shift.patch fcitx5-5.1.11/debian/patches/0005-windows-shift.patch --- fcitx5-5.1.7/debian/patches/0005-windows-shift.patch 2024-08-28 10:05:23.000000000 +0800 +++ fcitx5-5.1.11/debian/patches/0005-windows-shift.patch 1970-01-01 08:00:00.000000000 +0800 @@ -1,23 +0,0 @@ -From: hantengc <hanteng@kylinos.cn> -Date: Tue, 23 Jan 2024 13:47:57 +0800 -Subject: =?utf-8?b?5oyJ54Wnd2luZG93c+eUqOaIt+S9v+eUqOS5oOaDr++8jOaMieS4i3No?= - =?utf-8?b?aWZ05LiN5Lya5Zyo56ys5LiA5Liq5ZKM56ys5LqM5Liq6L6T5YWl5rOV5LmL6Ze0?= - =?utf-8?b?6L+b6KGM5YiH5o2i?= - ---- - src/lib/fcitx/globalconfig.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/lib/fcitx/globalconfig.cpp b/src/lib/fcitx/globalconfig.cpp -index a9273b0..50212e5 100644 ---- a/src/lib/fcitx/globalconfig.cpp -+++ b/src/lib/fcitx/globalconfig.cpp -@@ -42,7 +42,7 @@ FCITX_CONFIGURATION( - this, - "AltTriggerKeys", - _("Temporally switch between first and current Input Method"), -- {Key("Shift_L")}, -+ {}, - KeyListConstrain({KeyConstrainFlag::AllowModifierLess, - KeyConstrainFlag::AllowModifierOnly})}; - KeyListOption enumerateForwardKeys{ diff -Nru fcitx5-5.1.7/debian/patches/0006-update-changelog.patch fcitx5-5.1.11/debian/patches/0006-update-changelog.patch --- fcitx5-5.1.7/debian/patches/0006-update-changelog.patch 2024-08-28 10:05:23.000000000 +0800 +++ fcitx5-5.1.11/debian/patches/0006-update-changelog.patch 1970-01-01 08:00:00.000000000 +0800 @@ -1,24 +0,0 @@ -From: hantengc <hanteng@kylinos.cn> -Date: Wed, 21 Feb 2024 09:57:04 +0800 -Subject: update changelog - ---- - src/lib/fcitx/globalconfig.cpp | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/src/lib/fcitx/globalconfig.cpp b/src/lib/fcitx/globalconfig.cpp -index 50212e5..089cba5 100644 ---- a/src/lib/fcitx/globalconfig.cpp -+++ b/src/lib/fcitx/globalconfig.cpp -@@ -49,7 +49,10 @@ FCITX_CONFIGURATION( - this, - "EnumerateForwardKeys", - _("Enumerate Input Method Forward"), -- {}, -+ { -+ Key("Control+Shift_L"), -+ Key("Control+Shift_R"), -+ }, - KeyListConstrain({KeyConstrainFlag::AllowModifierLess, - KeyConstrainFlag::AllowModifierOnly})}; - KeyListOption enumerateBackwardKeys{ diff -Nru fcitx5-5.1.7/debian/patches/0007-update-changelog.patch fcitx5-5.1.11/debian/patches/0007-update-changelog.patch --- fcitx5-5.1.7/debian/patches/0007-update-changelog.patch 2024-08-28 10:05:23.000000000 +0800 +++ fcitx5-5.1.11/debian/patches/0007-update-changelog.patch 1970-01-01 08:00:00.000000000 +0800 @@ -1,228 +0,0 @@ -From: hantengc <hanteng@kylinos.cn> -Date: Mon, 22 Apr 2024 14:16:22 +0800 -Subject: update changelog - ---- - src/modules/CMakeLists.txt | 1 + - src/modules/commitstringdbus/CMakeLists.txt | 14 ++++ - .../commitstringdbus-addon.conf.in | 13 ++++ - src/modules/commitstringdbus/commitstringdbus.cpp | 77 ++++++++++++++++++++++ - src/modules/commitstringdbus/commitstringdbus.h | 69 +++++++++++++++++++ - 5 files changed, 174 insertions(+) - create mode 100644 src/modules/commitstringdbus/CMakeLists.txt - create mode 100644 src/modules/commitstringdbus/commitstringdbus-addon.conf.in - create mode 100644 src/modules/commitstringdbus/commitstringdbus.cpp - create mode 100644 src/modules/commitstringdbus/commitstringdbus.h - -diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt -index 64a9d66..d7c72cb 100644 ---- a/src/modules/CMakeLists.txt -+++ b/src/modules/CMakeLists.txt -@@ -18,6 +18,7 @@ add_subdirectory(clipboard) - add_subdirectory(emoji) - add_subdirectory(imselector) - add_subdirectory(devicestatusmanager) -+add_subdirectory(commitstringdbus) - - write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/Fcitx5ModuleConfigVersion.cmake" VERSION @FCITX_VERSION@ COMPATIBILITY AnyNewerVersion) - -diff --git a/src/modules/commitstringdbus/CMakeLists.txt b/src/modules/commitstringdbus/CMakeLists.txt -new file mode 100644 -index 0000000..26f34fa ---- /dev/null -+++ b/src/modules/commitstringdbus/CMakeLists.txt -@@ -0,0 +1,14 @@ -+set(COMMITSTRINGDBUS_SOURCE commitstringdbus.cpp) -+set(LIBRARY_NAME "commitstringdbus") -+ -+add_library(${LIBRARY_NAME} SHARED ${COMMITSTRINGDBUS_SOURCE}) -+ -+target_link_libraries(${LIBRARY_NAME} -+ Fcitx5::Core -+ Fcitx5::Module::DBus -+ ) -+ -+install(TARGETS "${LIBRARY_NAME}" DESTINATION "${FCITX_INSTALL_LIBDIR}/fcitx5") -+ -+configure_file(${LIBRARY_NAME}-addon.conf.in ${LIBRARY_NAME}-addon.conf) -+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${LIBRARY_NAME}-addon.conf" RENAME ${LIBRARY_NAME}.conf DESTINATION "${FCITX_INSTALL_PKGDATADIR}/addon") -\ No newline at end of file -diff --git a/src/modules/commitstringdbus/commitstringdbus-addon.conf.in b/src/modules/commitstringdbus/commitstringdbus-addon.conf.in -new file mode 100644 -index 0000000..8070bfb ---- /dev/null -+++ b/src/modules/commitstringdbus/commitstringdbus-addon.conf.in -@@ -0,0 +1,13 @@ -+[Addon] -+Name[zh_CN]=fcitx5 提交字符串dbus -+Name=dbus commit string -+Type=SharedLibrary -+Library=libcommitstringdbus -+Category=Module -+Version=5.1.5 -+OnDemand=False -+Configurable=True -+ -+[Addon/OptionalDependencies] -+0=xcb -+1=wayland -\ No newline at end of file -diff --git a/src/modules/commitstringdbus/commitstringdbus.cpp b/src/modules/commitstringdbus/commitstringdbus.cpp -new file mode 100644 -index 0000000..12f36a0 ---- /dev/null -+++ b/src/modules/commitstringdbus/commitstringdbus.cpp -@@ -0,0 +1,77 @@ -+/* -+ * Copyright 2024 KylinSoft Co., Ltd. -+ * -+ * This program is free software: you can redistribute it and/or modify it under -+ * the terms of the GNU General Public License as published by the Free Software -+ * Foundation, either version 3 of the License, or (at your option) any later -+ * version. -+ * -+ * This program is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -+ * details. -+ * -+ * You should have received a copy of the GNU General Public License along with -+ * this program. If not, see <https://www.gnu.org/licenses/>. -+ */ -+ -+#include "commitstringdbus.h" -+ -+static const char backendName_[] = "org.fcitx.Fcitx5.CommitString"; -+static const char backendPatch_[] = "/commitstring"; -+static const char backendInterface_[] = "org.fcitx.Fcitx5.CommitString"; -+ -+class CommitStringBackend -+ : public fcitx::dbus::ObjectVTable<CommitStringBackend> { -+public: -+ explicit CommitStringBackend(CommitStringDBus *parent) : parent_(parent) {} -+ -+ ~CommitStringBackend() = default; -+ -+ void commitString(const std::string &str) { parent_->commitString(str); } -+ -+private: -+ FCITX_OBJECT_VTABLE_METHOD(commitString, "CommitString", "s", ""); -+ -+private: -+ CommitStringDBus *parent_; -+}; -+ -+CommitStringDBus::CommitStringDBus(fcitx::Instance *instance) -+ : instance_(instance), bus_(dbus()->call<fcitx::IDBusModule::bus>()), -+ watcher_(*bus_) { -+ initDBusInterface(); -+} -+ -+CommitStringDBus::~CommitStringDBus() {} -+ -+void CommitStringDBus::initDBusInterface() { -+ commitStringBackend_ = std::make_unique<CommitStringBackend>(this); -+ bus_->addObjectVTable(backendPatch_, backendInterface_, -+ *commitStringBackend_); -+ -+ bus_->requestName(backendName_, -+ fcitx::Flags<fcitx::dbus::RequestNameFlag>{ -+ fcitx::dbus::RequestNameFlag::ReplaceExisting, -+ fcitx::dbus::RequestNameFlag::Queue}); -+ bus_->flush(); -+} -+ -+void CommitStringDBus::commitString(const std::string &text) { -+ commitStringToCurrentWindow(text); -+} -+ -+void CommitStringDBus::commitStringToCurrentWindow(const std::string &text) { -+ fcitx::InputContext *inputContext = instance_->mostRecentInputContext(); -+ if (inputContext == nullptr) { -+ FCITX_INFO() << "DBus Commit String Error: inputContext is null !"; -+ } -+ -+ inputContext->commitString(text); -+} -+ -+void CommitStringDBus::commitStringToLastWindow(const std::string &text) { -+ commitStringToCurrentWindow(text); -+} -+ -+FCITX_ADDON_FACTORY(CommitStringDBusFactory) -diff --git a/src/modules/commitstringdbus/commitstringdbus.h b/src/modules/commitstringdbus/commitstringdbus.h -new file mode 100644 -index 0000000..0e05914 ---- /dev/null -+++ b/src/modules/commitstringdbus/commitstringdbus.h -@@ -0,0 +1,69 @@ -+/* -+ * Copyright 2024 KylinSoft Co., Ltd. -+ * -+ * This program is free software: you can redistribute it and/or modify it under -+ * the terms of the GNU General Public License as published by the Free Software -+ * Foundation, either version 3 of the License, or (at your option) any later -+ * version. -+ * -+ * This program is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -+ * details. -+ * -+ * You should have received a copy of the GNU General Public License along with -+ * this program. If not, see <https://www.gnu.org/licenses/>. -+ */ -+ -+#ifndef _COMMIT_STRING_DBUS_H_ -+#define _COMMIT_STRING_DBUS_H_ -+ -+#include <iostream> -+#include <memory> -+ -+#include <dbus_public.h> -+#include <fcitx-utils/dbus/bus.h> -+#include <fcitx-utils/dbus/objectvtable.h> -+#include <fcitx-utils/dbus/servicewatcher.h> -+#include <fcitx/addonfactory.h> -+#include <fcitx/addoninstance.h> -+#include <fcitx/addonmanager.h> -+#include <fcitx/instance.h> -+ -+class CommitStringBackend; -+ -+class CommitStringDBus final : public fcitx::AddonInstance { -+public: -+ CommitStringDBus(fcitx::Instance *instance); -+ ~CommitStringDBus() override; -+ -+ fcitx::Instance *instance() { return instance_; } -+ -+ void commitString(const std::string &text); -+ void commitStringToCurrentWindow(const std::string &text); -+ void commitStringToLastWindow(const std::string &text); -+ -+private: -+ void initDBusInterface(); -+ -+private: -+ FCITX_ADDON_DEPENDENCY_LOADER(dbus, instance_->addonManager()); -+ -+private: -+ fcitx::Instance *instance_; -+ fcitx::dbus::Bus *bus_ = nullptr; -+ fcitx::dbus::ServiceWatcher watcher_; -+ std::unique_ptr<fcitx::dbus::ServiceWatcherEntry> entry_; -+ std::unique_ptr<fcitx::dbus::Slot> slot_; -+ std::unique_ptr<CommitStringBackend> commitStringBackend_ = nullptr; -+}; -+ -+class CommitStringDBusFactory : public fcitx::AddonFactory { -+public: -+ fcitx::AddonInstance *create(fcitx::AddonManager *manager) override { -+ FCITX_INFO() << "CommitStringDBusFactory ..."; -+ return new CommitStringDBus(manager->instance()); -+ } -+}; -+ -+#endif -\ No newline at end of file diff -Nru fcitx5-5.1.7/debian/patches/0008-Added-translation-using-Weblate-Kazakh.patch fcitx5-5.1.11/debian/patches/0008-Added-translation-using-Weblate-Kazakh.patch --- fcitx5-5.1.7/debian/patches/0008-Added-translation-using-Weblate-Kazakh.patch 2024-08-28 10:05:23.000000000 +0800 +++ fcitx5-5.1.11/debian/patches/0008-Added-translation-using-Weblate-Kazakh.patch 1970-01-01 08:00:00.000000000 +0800 @@ -1,2957 +0,0 @@ -From: KevinDuan <duankaiwen@kylinos.com> -Date: Tue, 14 May 2024 17:29:05 +0800 -Subject: Added translation using Weblate (Kazakh) - ---- - po/kk.po | 2942 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 2942 insertions(+) - create mode 100644 po/kk.po - -diff --git a/po/kk.po b/po/kk.po -new file mode 100644 -index 0000000..7b950dd ---- /dev/null -+++ b/po/kk.po -@@ -0,0 +1,2942 @@ -+# SOME DESCRIPTIVE TITLE. -+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -+# This file is distributed under the same license as the fcitx5 package. -+# -+# Translators: -+# wwj402 <wwj402@gmail.com>, 2017 -+# rocka, 2023 -+# Lau YeeYu, 2023 -+# csslayer <wengxt@gmail.com>, 2023 -+# -+msgid "" -+msgstr "" -+"Project-Id-Version: fcitx5\n" -+"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" -+"POT-Creation-Date: 2023-10-19 05:51+0000\n" -+"PO-Revision-Date: 2017-11-23 04:14+0000\n" -+"Last-Translator: Automatically generated\n" -+"Language-Team: none\n" -+"Language: kk\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"Plural-Forms: nplurals=2; plural=n != 1;\n" -+ -+#: data/fcitx5-diagnose.sh:900 -+msgid "${1} Environment Variables:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:886 -+msgid "${1} Settings Directory:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:960 -+msgid "${1} is not running." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:909 -+msgid "${1} is not set." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:906 -+msgid "${1} is set to ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:565 -+msgid "${1} not found." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:977 -+msgid "${1} works properly." -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:407 -+msgid "(Not available)" -+msgstr "" -+ -+#: src/modules/unicode/unicode.cpp:458 -+msgid "(Type to search unicode by code or description)" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:707 -+msgid "/Beginner%27s_Guide" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:754 -+msgid "/Hall_of_Shame_for_Linux_IME_Support" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:718 -+msgid "/Input_method_related_environment_variables" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:734 -+msgid "/Note_for_GNOME_Later_than_3.6" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:758 -+msgid "/XIM" -+msgstr "" -+ -+#: src/modules/unicode/charselectdata.cpp:215 -+msgid "<Low Surrogate>" -+msgstr "" -+ -+#: src/modules/unicode/charselectdata.cpp:211 -+msgid "<Non Private Use High Surrogate>" -+msgstr "" -+ -+#: src/modules/unicode/charselectdata.cpp:213 -+msgid "<Private Use High Surrogate>" -+msgstr "" -+ -+#: src/modules/unicode/charselectdata.cpp:217 -+msgid "<Private Use>" -+msgstr "" -+ -+#: src/modules/unicode/charselectdata.cpp:247 -+msgid "<not assigned>" -+msgstr "" -+ -+#: src/ui/virtualkeyboard/virtualkeyboard.conf.in.in:4 -+msgid "A virtual keyboard backend based on DBus" -+msgstr "" -+ -+#: src/ui/classic/theme.h:204 -+msgid "Accent Colors" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:82 -+msgid "Activate Input Method" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:138 -+msgid "Active By Default" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:144 -+msgctxt "Key name" -+msgid "Add Favorite" -+msgstr "" -+ -+#: src/modules/unicode/unicode.conf.in.in:4 -+msgid "Add Unicode Typing Support" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1565 -+msgid "Addon Config Dir:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1650 -+msgid "Addon Libraries:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1593 -+msgid "Addon List:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:146 -+msgctxt "Key name" -+msgid "Adjust Brightness" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:26 -+msgid "All" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1367 -+msgid "All found Gtk ${1} immodule files exist." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1676 -+msgid "All libraries for all addons are found." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:854 -+msgid "All locales:" -+msgstr "" -+ -+#: src/modules/xcb/xcbmodule.h:30 -+msgid "Allow Overriding System XKB Settings" -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.h:34 -+msgid "Allow Overriding System XKB Settings (Only support KDE 5)" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:185 -+msgid "Allow input method in the password field" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:29 -+msgid "Alt" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:560 -+msgctxt "Key name" -+msgid "Alt" -+msgstr "" -+ -+#: src/modules/xcb/xcbmodule.h:33 -+msgid "Always set layout to be only group layout" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:151 -+msgctxt "Key name" -+msgid "Application Left" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:152 -+msgctxt "Key name" -+msgid "Application Right" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:87 -+msgid "Applications disabled for long press" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:211 -+msgctxt "Key name" -+msgid "Audio Cycle Track" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:209 -+msgctxt "Key name" -+msgid "Audio Random Play" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:208 -+msgctxt "Key name" -+msgid "Audio Repeat" -+msgstr "" -+ -+#: src/ui/classic/theme.h:193 -+msgid "Author" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:198 -+msgctxt "Key name" -+msgid "Away" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:93 -+msgctxt "Key name" -+msgid "Back" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:150 -+msgctxt "Key name" -+msgid "Back Forward" -+msgstr "" -+ -+#: src/modules/spell/spell.h:38 -+msgid "Backends" -+msgstr "" -+ -+#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 -+msgid "Background" -+msgstr "" -+ -+#: src/ui/classic/theme.h:85 -+msgid "Background Image" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:42 -+msgctxt "Key name" -+msgid "Backspace" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:827 -+msgid "Bash Version:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:204 -+msgctxt "Key name" -+msgid "Battery" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:706 -+msgid "Beginner's Guide" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:202 -+msgid "Behavior" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:222 -+msgctxt "Key name" -+msgid "Blue" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:205 -+msgctxt "Key name" -+msgid "Bluetooth" -+msgstr "" -+ -+#: src/ui/classic/theme.h:148 -+msgid "Blur Margin" -+msgstr "" -+ -+#: src/ui/classic/theme.h:147 -+msgid "Blur mask" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:153 -+msgctxt "Key name" -+msgid "Book" -+msgstr "" -+ -+#: src/ui/classic/theme.h:97 -+msgid "Border Color" -+msgstr "" -+ -+#: src/ui/classic/theme.h:105 -+msgid "Border width" -+msgstr "" -+ -+#: src/ui/classic/theme.h:50 -+msgid "Bottom" -+msgstr "" -+ -+#: src/ui/classic/theme.h:38 -+msgid "Bottom Center" -+msgstr "" -+ -+#: src/ui/classic/theme.h:38 -+msgid "Bottom Left" -+msgstr "" -+ -+#: src/ui/classic/theme.h:39 -+msgid "Bottom Right" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:164 -+msgctxt "Key name" -+msgid "Browser" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:154 -+msgctxt "Key name" -+msgid "CD" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:155 -+msgctxt "Key name" -+msgid "Calculator" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:264 -+msgctxt "Key name" -+msgid "Cancel" -+msgstr "" -+ -+#: src/im/keyboard/longpress.h:19 -+msgid "Candidates" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:975 -+msgid "Cannot connect to ${1} correctly." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:820 -+msgid "Cannot determine desktop environment." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1584 -+msgid "Cannot find ${1} addon config directory." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1099 -+msgid "Cannot find ${1} executable!" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1517 -+msgid "Cannot find ${1} im module for gtk ${2} in cache." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1434 -+msgid "Cannot find ${1} im module for gtk ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1288 data/fcitx5-diagnose.sh:1293 -+#: data/fcitx5-diagnose.sh:1298 -+msgid "Cannot find ${1} input method module for ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1428 -+msgid "Cannot find ${2} for gtk ${1}" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:995 -+msgid "Cannot find DBus name ${1} owner." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1109 -+msgid "Cannot find a GUI config tool, please install one of ${1}, or ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1679 -+msgid "Cannot find enabled ${1} user interface!" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:938 -+msgid "Cannot find fcitx5 executable!" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1658 -+msgid "Cannot find file ${1} of addon ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1668 -+msgid "Cannot find following required libraries for ${1} of addon ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1512 -+msgid "Cannot find immodules cache for gtk ${1}" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1698 -+msgid "" -+"Cannot find kimpanel dbus interface or enabled non-kimpanel user interface." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1003 -+msgid "Cannot find pid of DBus name ${1} owner." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1175 -+msgid "Cannot find xim_server on root window." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1149 -+msgid "Cannot interpret XMODIFIERS: ${1}." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:53 -+msgctxt "Key name" -+msgid "CapsLock" -+msgstr "" -+ -+#: src/ui/classic/theme.h:37 src/ui/classic/theme.h:49 -+msgid "Center" -+msgstr "" -+ -+#: src/ui/classic/theme.h:36 -+msgid "Center Left" -+msgstr "" -+ -+#: src/ui/classic/theme.h:37 -+msgid "Center Right" -+msgstr "" -+ -+#: data/fcitx5-configtool.desktop.in.in:5 -+msgid "Change Fcitx 5 Configuration" -+msgstr "" -+ -+#: src/ui/classic/theme.h:183 -+msgid "Check box" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:56 src/modules/quickphrase/quickphrase.h:41 -+msgid "Choose key modifier" -+msgstr "" -+ -+#: src/ui/classic/classicui.conf.in.in:3 -+msgid "Classic User Interface" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:156 -+msgctxt "Key name" -+msgid "Clear" -+msgstr "" -+ -+#: src/ui/classic/theme.h:131 -+msgid "Click Margin" -+msgstr "" -+ -+#: src/modules/clipboard/clipboard.conf.in.in:3 -+msgid "Clipboard" -+msgstr "" -+ -+#: src/modules/clipboard/clipboard.cpp:353 -+msgid "Clipboard (Press BackSpace/Delete to clear history):" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:157 -+msgctxt "Key name" -+msgid "Close" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:250 -+msgctxt "Key name" -+msgid "Code input" -+msgstr "" -+ -+#: src/ui/classic/theme.h:89 -+msgid "Color" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:148 -+msgctxt "Key name" -+msgid "Community" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:685 -+msgid "Completion" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:676 -+msgid "Completion is disabled." -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:679 -+msgid "Completion is enabled temporarily." -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:681 -+msgid "Completion is enabled." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1051 -+msgid "Config GUI for gtk${1} not found." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1047 -+msgid "Config GUI for gtk${1}:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1081 -+msgid "Config GUI for kde:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1070 -+msgid "Config GUI for qt not found." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1068 -+msgid "Config GUI for qt:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1097 -+msgid "Config Tool Wrapper:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1793 -+msgid "Configuration:" -+msgstr "" -+ -+#: src/ui/classic/xcbtraywindow.cpp:38 -+#: src/modules/notificationitem/dbusmenu.cpp:251 -+msgid "Configure" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 -+msgid "Control" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:559 -+msgctxt "Key name" -+msgid "Control" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:158 -+msgctxt "Key name" -+msgid "Copy" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:888 -+msgid "Current ${1} settings directory is ${2} (${3})." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:856 -+msgid "Current locale:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:894 -+msgid "Current user:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:882 -+msgid "Current value of ${1} is ${2} (${3})." -+msgstr "" -+ -+#: src/modules/spell/spell.h:22 -+msgid "Custom" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:175 -+msgid "Custom Xkb Option" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:159 -+msgctxt "Key name" -+msgid "Cut" -+msgstr "" -+ -+#: src/modules/dbus/dbus.conf.in.in:3 -+msgid "DBus" -+msgstr "" -+ -+#: src/frontend/dbusfrontend/dbusfrontend.conf.in.in:3 -+msgid "DBus Frontend" -+msgstr "" -+ -+#: src/ui/virtualkeyboard/virtualkeyboard.conf.in.in:3 -+msgid "DBus Virtual Keyboard" -+msgstr "" -+ -+#: src/modules/notificationitem/notificationitem.conf.in.in:4 -+msgid "DBus based new Freedesktop.org tray icon" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:983 -+msgid "DBus interface:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:161 -+msgctxt "Key name" -+msgid "DOS" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:158 -+msgid "Dark Theme" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:91 -+msgid "Deactivate Input Method" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1007 -+msgid "Debug information from dbus:" -+msgstr "" -+ -+#: src/lib/fcitx/inputmethodmanager.cpp:138 src/lib/fcitx/instance.cpp:354 -+#: src/ui/classic/themes/default/theme.conf.in:3 -+msgid "Default" -+msgstr "" -+ -+#: src/ui/classic/themes/default-dark/theme-dark.conf.in:3 -+msgid "Default Dark" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:127 -+msgid "Default Next Candidate" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:111 -+msgid "Default Next page" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:121 -+msgid "Default Previous Candidate" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:99 -+msgid "Default Previous page" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:159 -+msgid "Default page size" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:230 -+msgctxt "Key name" -+msgid "Delete" -+msgstr "" -+ -+#: src/ui/classic/theme.h:195 -+msgid "Description" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:817 -+msgid "Desktop Environment:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:822 -+msgid "Desktop environment is ${1}." -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:476 -+msgid "" -+"Detect GTK_IM_MODULE and QT_IM_MODULE being set and Wayland Input method " -+"frontend is working. It is recommended to unset GTK_IM_MODULE and " -+"QT_IM_MODULE and use Wayland input method frontend instead. For more details " -+"see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma" -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:504 -+msgid "" -+"Detect GTK_IM_MODULE being set and Wayland Input method frontend is working. " -+"It is recommended to unset GTK_IM_MODULE and use Wayland input method " -+"frontend instead." -+msgstr "" -+ -+#: src/frontend/waylandim/waylandim.h:27 -+msgid "Detect current running application (Need restart)" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:868 -+msgid "Directories:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:160 -+msgctxt "Key name" -+msgid "Display" -+msgstr "" -+ -+#: src/modules/notifications/notifications.cpp:204 -+msgid "Do not show again" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:162 -+msgctxt "Key name" -+msgid "Documents" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:50 -+msgctxt "Key name" -+msgid "Down" -+msgstr "" -+ -+#: src/modules/quickphrase/quickphrase.h:47 -+msgid "Editor" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:248 -+msgctxt "Key name" -+msgid "Eisu Shift" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:249 -+msgctxt "Key name" -+msgid "Eisu toggle" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:137 -+msgctxt "Key name" -+msgid "Eject" -+msgstr "" -+ -+#: src/modules/emoji/emoji.conf.in.in:3 -+msgid "Emoji" -+msgstr "" -+ -+#: src/im/keyboard/longpress.h:17 -+msgid "Enable" -+msgstr "" -+ -+#: src/ui/classic/theme.h:145 -+msgid "Enable Blur on KWin" -+msgstr "" -+ -+#: src/modules/quickphrase/quickphrase.h:43 -+msgid "Enable Spell check" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:51 -+msgid "Enable emoji in hint" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:54 -+msgid "Enable emoji in quickphrase" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:190 -+msgid "Enable fractional scale under Wayland" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:59 -+msgid "Enable hint by default" -+msgstr "" -+ -+#: src/modules/spell/spell.h:23 -+msgid "Enchant" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:46 -+msgctxt "Key name" -+msgid "End" -+msgstr "" -+ -+#: src/im/keyboard/longpress.h:26 -+msgid "Entries" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:58 -+msgid "Enumerate Input Method Backward" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:51 -+msgid "Enumerate Input Method Forward" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:75 -+msgid "Enumerate Input Method Group Backward" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:68 -+msgid "Enumerate Input Method Group Forward" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:40 -+msgid "Enumerate when press trigger key repeatedly" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1127 -+msgid "" -+"Environment variable ${1} is \"${2}\" instead of \"${3}\". Please check if " -+"you have exported it incorrectly in any of your init files." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:874 -+msgid "Environment variable ${1} is not set." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1121 -+msgid "Environment variable ${1} is set to \"${2}\" correctly." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:878 -+msgid "Environment variable ${1} is set to ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:832 -+msgid "Environment:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:860 -+msgid "Error occurs when running ${1}. Please check your locale settings." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:231 -+msgctxt "Key name" -+msgid "Escape" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:265 -+msgctxt "Key name" -+msgid "Execute" -+msgstr "" -+ -+#: src/ui/classic/xcbtraywindow.cpp:40 -+#: src/modules/notificationitem/dbusmenu.cpp:265 -+msgid "Exit" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1506 -+msgid "Failed to find ${1} in immodule cache at ${2}" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1422 -+msgid "Failed to find ${1} in the output of ${2}" -+msgstr "" -+ -+#: src/modules/quickphrase/quickphrase.h:45 -+msgid "Fallback Spell check language" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:107 -+msgctxt "Key name" -+msgid "Favorites" -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:449 -+msgid "Fcitx" -+msgstr "" -+ -+#: data/org.fcitx.Fcitx5.desktop.in.in:3 -+#: data/org.fcitx.Fcitx5.metainfo.xml.in:6 -+msgid "Fcitx 5" -+msgstr "" -+ -+#: data/fcitx5-configtool.desktop.in.in:3 -+msgid "Fcitx 5 Configuration" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1564 -+msgid "Fcitx Addons:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1096 -+msgid "Fcitx Configure UI:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:935 -+msgid "Fcitx State:" -+msgstr "" -+ -+#: data/org.fcitx.Fcitx5.metainfo.xml.in:9 -+msgid "" -+"Fcitx is an input method framework. It can help you to type your own " -+"language. It also features variant choice of addons that improve your typing " -+"experience." -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:463 -+msgid "" -+"Fcitx should be launched by KWin under KDE Wayland in order to use Wayland " -+"input method frontend. This can improve the experience when using Fcitx on " -+"Wayland. To configure this, you need to go to \"System Settings\" -> " -+"\"Virtual keyboard\" and select \"Fcitx 5\" from it. You may also need to " -+"disable tools that launches input method, such as imsettings on Fedora, or " -+"im-config on Debian/Ubuntu. For more details see https://fcitx-im.org/wiki/" -+"Using_Fcitx_5_on_Wayland#KDE_Plasma" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:949 -+msgid "Fcitx version: ${1}" -+msgstr "" -+ -+#: src/frontend/fcitx4frontend/fcitx4frontend.conf.in.in:3 -+msgid "Fcitx4 Frontend" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:147 -+msgctxt "Key name" -+msgid "Finance" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:225 -+msgctxt "Key name" -+msgid "Find" -+msgstr "" -+ -+#: src/ui/classic/theme.h:49 -+msgid "First Candidate" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:164 -+msgid "Follow system accent color if it is supported by theme and desktop" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:160 -+msgid "Follow system light/dark color scheme" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1284 -+msgid "" -+"Following error may not be accurate because guessing Qt version from path " -+"depends on how your distribution packages Qt. It is not a critical error if " -+"you do not use any Qt application with certain version of Qt or you are " -+"using text-input support by Qt under Wayland." -+msgstr "" -+ -+#: src/ui/classic/classicui.h:120 -+msgid "Font" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:150 -+msgid "" -+"For example, display character with Chinese variant when using Pinyin and " -+"Japanese variant when using Anthy. The font configuration needs to support " -+"this to use this feature." -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:530 -+msgid "For more details see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:178 -+msgid "Force font DPI on Wayland" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:94 -+msgctxt "Key name" -+msgid "Forward" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1276 -+msgid "Found ${1} ${2} module: ${3}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:969 -+msgid "Found ${1} ${2} process:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:967 -+msgid "Found ${1} ${2} processes:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1587 -+msgid "Found ${1} addon config directory: ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:944 data/fcitx5-diagnose.sh:1060 -+#: data/fcitx5-diagnose.sh:1073 data/fcitx5-diagnose.sh:1101 -+msgid "Found ${1} at ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1640 -+msgid "Found ${1} disabled addons:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1631 -+msgid "Found ${1} enabled addons:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1681 -+msgid "Found ${1} enabled user interface addons:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1416 data/fcitx5-diagnose.sh:1500 -+msgid "Found ${1} im modules for gtk ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1087 -+msgid "Found ${1} kcm module." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1408 -+msgid "Found ${2} for unknown gtk version at ${1}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1400 -+msgid "Found ${3} for gtk ${1} at ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1263 data/fcitx5-diagnose.sh:1268 -+msgid "Found ${3} im module for ${2}: ${1}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1493 -+msgid "Found immodule cache for unknown gtk version at ${1}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1485 -+msgid "Found immodules cache for gtk ${1} at ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1279 -+msgid "Found unknown ${1} qt module: ${2}." -+msgstr "" -+ -+#: src/modules/notifications/notifications.conf.in.in:4 -+msgid "Freedesktop.org Notification Support" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1785 -+msgid "Frontends setup:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:165 -+msgctxt "Key name" -+msgid "Game" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:166 -+msgctxt "Key name" -+msgid "Go" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:220 -+msgctxt "Key name" -+msgid "Green" -+msgstr "" -+ -+#: src/ui/classic/xcbtraywindow.cpp:36 -+#: src/modules/notificationitem/dbusmenu.cpp:241 -+msgid "Group" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:411 -+#, c++-format -+msgid "Group {0}: {1}" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:356 -+#, c++-format -+msgid "Group {}" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1361 -+msgid "Gtk ${1} immodule file ${2} does not exist." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1545 -+msgid "Gtk IM module cache:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1550 -+msgid "Gtk IM module files:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:753 -+msgid "Hall of Shame for Linux IME Support" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:253 -+msgctxt "Key name" -+msgid "Hangul" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:260 -+msgctxt "Key name" -+msgid "Hangul Banja" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:255 -+msgctxt "Key name" -+msgid "Hangul End" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:256 -+msgctxt "Key name" -+msgid "Hangul Hanja" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:257 -+msgctxt "Key name" -+msgid "Hangul Jamo" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:259 -+msgctxt "Key name" -+msgid "Hangul Jeonja" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:262 -+msgctxt "Key name" -+msgid "Hangul PostHanja" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:261 -+msgctxt "Key name" -+msgid "Hangul PreHanja" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:258 -+msgctxt "Key name" -+msgid "Hangul Romaja" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:263 -+msgctxt "Key name" -+msgid "Hangul Special" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:254 -+msgctxt "Key name" -+msgid "Hangul Start" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:242 -+msgctxt "Key name" -+msgid "Hankaku" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:92 -+msgctxt "Key name" -+msgid "Help" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:236 -+msgctxt "Key name" -+msgid "Henkan" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:213 -+msgctxt "Key name" -+msgid "Hibernate" -+msgstr "" -+ -+#: src/modules/notifications/notifications.h:28 -+msgid "Hidden Notifications" -+msgstr "" -+ -+#: src/ui/classic/theme.h:116 -+msgid "Hide overlay if size does not fit" -+msgstr "" -+ -+#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:180 -+msgid "Highlight Background" -+msgstr "" -+ -+#: src/ui/classic/theme.h:140 -+msgid "Highlight Background color" -+msgstr "" -+ -+#: src/ui/classic/theme.h:143 -+msgid "Highlight Candidate Color" -+msgstr "" -+ -+#: src/ui/classic/theme.h:126 -+msgid "Highlight Click Margin" -+msgstr "" -+ -+#: src/ui/classic/theme.h:138 -+msgid "Highlight text color" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:238 -+msgctxt "Key name" -+msgid "Hiragana" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:240 -+msgctxt "Key name" -+msgid "Hiragana Katakana" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:143 -+msgctxt "Key name" -+msgid "History" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:45 -+msgctxt "Key name" -+msgid "Home" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:175 -+msgctxt "Key name" -+msgid "Home Office" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:106 -+msgctxt "Key name" -+msgid "Home Page" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:870 -+msgid "Home:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:145 -+msgctxt "Key name" -+msgid "Hot Links" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:200 -+msgid "Hotkey" -+msgstr "" -+ -+#: src/modules/imselector/imselector.h:35 -+msgid "Hotkey for switching to the N-th input method" -+msgstr "" -+ -+#: src/modules/imselector/imselector.h:44 -+msgid "" -+"Hotkey for switching to the N-th input method for only current input context" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:564 -+msgctxt "Key name" -+msgid "Hyper" -+msgstr "" -+ -+#: src/frontend/ibusfrontend/ibusfrontend.conf.in.in:3 -+msgid "IBus Frontend" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:196 -+msgid "" -+"If value is 0, the user data may only be saved when fcitx quits (e.g. " -+"logout)." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:742 -+msgid "" -+"If you are using ${1}, you may want to uninstall ${2} or remove ${3} in " -+"order to use any input method other than ${2}. See ${link} for more detail " -+"as well as alternative solutions." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:740 -+msgid "" -+"If you are using ${1}, you may want to uninstall ${2}, remove ${3} or use " -+"the command ${g36_disable_ibus} to disable IBus integration in order to use " -+"any input method other than ${2}. See ${link} for more detail." -+msgstr "" -+ -+#: src/ui/classic/theme.h:129 -+msgid "Image" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:684 src/lib/fcitx/instance.cpp:446 -+#: src/lib/fcitx/instance.cpp:672 src/lib/fcitx/instance.cpp:834 -+#: src/modules/notificationitem/notificationitem.cpp:147 -+#: src/modules/notificationitem/notificationitem.cpp:235 -+#: src/modules/xcb/xcbconnection.cpp:521 data/org.fcitx.Fcitx5.desktop.in.in:4 -+#: data/org.fcitx.Fcitx5.metainfo.xml.in:7 -+msgid "Input Method" -+msgstr "" -+ -+#: data/fcitx5-configtool.desktop.in.in:4 -+msgid "Input Method Configuration" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:717 -+msgid "Input Method Related Environment Variables: " -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1704 -+msgid "Input Methods:" -+msgstr "" -+ -+#: src/ui/classic/theme.h:201 -+msgid "Input Panel" -+msgstr "" -+ -+#: src/ui/classic/theme.h:65 -+msgid "Input Panel Background" -+msgstr "" -+ -+#: src/ui/classic/theme.h:65 -+msgid "Input Panel Border" -+msgstr "" -+ -+#: src/ui/classic/theme.h:67 -+msgid "Input Panel Highlight" -+msgstr "" -+ -+#: src/ui/classic/theme.h:66 -+msgid "Input Panel Highlight Candidate Background" -+msgstr "" -+ -+#: src/ui/classic/theme.h:67 -+msgid "Input Panel Highlight Candidate Border" -+msgstr "" -+ -+#: src/modules/imselector/imselector.conf.in.in:3 -+msgid "Input method selector" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:103 src/lib/fcitx/globalconfig.cpp:115 -+msgid "" -+"Input methods may have different setup in their own configuration. This is " -+"commonly used by modules like clipboard or quickphrase." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:229 -+msgctxt "Key name" -+msgid "Insert" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:192 -+msgid "Interval of saving user data in minutes" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1599 -+msgid "Invalid addon config file ${1}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1205 -+msgid "" -+"It is OK to use ${1} built-in Wayland im module if your compositor fully " -+"supports text-input protocol used by ${1}." -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:488 -+msgid "" -+"It is recommended to install Input Method Panel GNOME Shell Extensions to " -+"provide the input method popup. https://extensions.gnome.org/extension/261/" -+"kimpanel/ Otherwise you may not be able to see input method popup when " -+"typing in GNOME Shell's activities search box. For more details see https://" -+"fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#GNOME" -+msgstr "" -+ -+#: src/ui/kimpanel/kimpanel.conf.in.in:3 -+msgid "KDE Input Method Panel" -+msgstr "" -+ -+#: src/ui/classic/classicui.cpp:260 -+msgid "KDE Plasma (Experimental)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:246 -+msgctxt "Key name" -+msgid "Kana Lock" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:247 -+msgctxt "Key name" -+msgid "Kana Shift" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:234 -+msgctxt "Key name" -+msgid "Kanji" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:239 -+msgctxt "Key name" -+msgid "Katakana" -+msgstr "" -+ -+#: src/im/keyboard/longpress.h:16 -+msgid "Key" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:315 src/im/keyboard/keyboard.conf.in.in:3 -+msgid "Keyboard" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:231 -+#, c++-format -+msgid "Keyboard - {0}" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:250 -+#, c++-format -+msgid "Keyboard - {0} - {1}" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:134 -+msgctxt "Key name" -+msgid "Keyboard Brightness Down" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:132 -+msgctxt "Key name" -+msgid "Keyboard Brightness Up" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:836 -+msgid "Keyboard Layout:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:131 -+msgctxt "Key name" -+msgid "Keyboard Light On/Off" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:171 -+msgctxt "Key name" -+msgid "Keyboard Menu" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:74 -+msgctxt "Key name" -+msgid "Keypad *" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:75 -+msgctxt "Key name" -+msgid "Keypad +" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:76 -+msgctxt "Key name" -+msgid "Keypad ," -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:77 -+msgctxt "Key name" -+msgid "Keypad -" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:78 -+msgctxt "Key name" -+msgid "Keypad ." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:79 -+msgctxt "Key name" -+msgid "Keypad /" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:80 -+msgctxt "Key name" -+msgid "Keypad 0" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:81 -+msgctxt "Key name" -+msgid "Keypad 1" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:82 -+msgctxt "Key name" -+msgid "Keypad 2" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:83 -+msgctxt "Key name" -+msgid "Keypad 3" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:84 -+msgctxt "Key name" -+msgid "Keypad 4" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:85 -+msgctxt "Key name" -+msgid "Keypad 5" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:86 -+msgctxt "Key name" -+msgid "Keypad 6" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:87 -+msgctxt "Key name" -+msgid "Keypad 7" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:88 -+msgctxt "Key name" -+msgid "Keypad 8" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:89 -+msgctxt "Key name" -+msgid "Keypad 9" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:73 -+msgctxt "Key name" -+msgid "Keypad =" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:70 -+msgctxt "Key name" -+msgid "Keypad Begin" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:72 -+msgctxt "Key name" -+msgid "Keypad Delete" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:66 -+msgctxt "Key name" -+msgid "Keypad Down" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:69 -+msgctxt "Key name" -+msgid "Keypad End" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:57 -+msgctxt "Key name" -+msgid "Keypad Enter" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:58 -+msgctxt "Key name" -+msgid "Keypad F1" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:59 -+msgctxt "Key name" -+msgid "Keypad F2" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:60 -+msgctxt "Key name" -+msgid "Keypad F3" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:61 -+msgctxt "Key name" -+msgid "Keypad F4" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:62 -+msgctxt "Key name" -+msgid "Keypad Home" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:71 -+msgctxt "Key name" -+msgid "Keypad Insert" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:63 -+msgctxt "Key name" -+msgid "Keypad Left" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:68 -+msgctxt "Key name" -+msgid "Keypad Page Down" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:67 -+msgctxt "Key name" -+msgid "Keypad Page Up" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:65 -+msgctxt "Key name" -+msgid "Keypad Right" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:55 -+msgctxt "Key name" -+msgid "Keypad Space" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:56 -+msgctxt "Key name" -+msgid "Keypad Tab" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:64 -+msgctxt "Key name" -+msgid "Keypad Up" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1690 -+msgid "Kimpanel process:" -+msgstr "" -+ -+#: src/ui/classic/theme.h:50 -+msgid "Last Candidate" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:112 -+msgctxt "Key name" -+msgid "Launch (0)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:113 -+msgctxt "Key name" -+msgid "Launch (1)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:114 -+msgctxt "Key name" -+msgid "Launch (2)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:115 -+msgctxt "Key name" -+msgid "Launch (3)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:116 -+msgctxt "Key name" -+msgid "Launch (4)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:117 -+msgctxt "Key name" -+msgid "Launch (5)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:118 -+msgctxt "Key name" -+msgid "Launch (6)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:119 -+msgctxt "Key name" -+msgid "Launch (7)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:120 -+msgctxt "Key name" -+msgid "Launch (8)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:121 -+msgctxt "Key name" -+msgid "Launch (9)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:122 -+msgctxt "Key name" -+msgid "Launch (A)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:123 -+msgctxt "Key name" -+msgid "Launch (B)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:124 -+msgctxt "Key name" -+msgid "Launch (C)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:125 -+msgctxt "Key name" -+msgid "Launch (D)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:126 -+msgctxt "Key name" -+msgid "Launch (E)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:127 -+msgctxt "Key name" -+msgid "Launch (F)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:111 -+msgctxt "Key name" -+msgid "Launch Mail" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:47 -+msgctxt "Key name" -+msgid "Left" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:30 -+msgctxt "Key name" -+msgid "Left Alt" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:34 -+msgctxt "Key name" -+msgid "Left Control" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:38 -+msgctxt "Key name" -+msgid "Left Hyper" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:32 -+msgctxt "Key name" -+msgid "Left Shift" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:36 -+msgctxt "Key name" -+msgid "Left Super" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:141 -+msgctxt "Key name" -+msgid "LightBulb" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:851 -+msgid "Locale:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1799 -+msgid "Log:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:168 -+msgctxt "Key name" -+msgid "Logoff" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:89 -+msgid "Long Press behavior" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:201 -+msgctxt "Key name" -+msgid "Mail Forward" -+msgstr "" -+ -+#: src/ui/classic/theme.h:118 -+msgid "Margin" -+msgstr "" -+ -+#: src/ui/classic/theme.h:80 -+msgid "Margin Bottom" -+msgstr "" -+ -+#: src/ui/classic/theme.h:74 -+msgid "Margin Left" -+msgstr "" -+ -+#: src/ui/classic/theme.h:76 -+msgid "Margin Right" -+msgstr "" -+ -+#: src/ui/classic/theme.h:78 -+msgid "Margin Top" -+msgstr "" -+ -+#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 -+msgid "Margin around all content" -+msgstr "" -+ -+#: src/ui/classic/theme.h:164 src/ui/classic/theme.h:188 -+msgid "Margin around text" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:169 -+msgctxt "Key name" -+msgid "Market" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:245 -+msgctxt "Key name" -+msgid "Massyo" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:207 -+msgctxt "Key name" -+msgid "Media Fast Forward" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:103 -+msgctxt "Key name" -+msgid "Media Next" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:105 -+msgctxt "Key name" -+msgid "Media Pause" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:100 -+msgctxt "Key name" -+msgid "Media Play" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:102 -+msgctxt "Key name" -+msgid "Media Previous" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:104 -+msgctxt "Key name" -+msgid "Media Record" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:149 -+msgctxt "Key name" -+msgid "Media Rewind" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:101 -+msgctxt "Key name" -+msgid "Media Stop" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:170 -+msgctxt "Key name" -+msgid "Meeting" -+msgstr "" -+ -+#: src/ui/classic/theme.h:202 -+msgid "Menu" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:91 -+msgctxt "Key name" -+msgid "Menu" -+msgstr "" -+ -+#: src/ui/classic/theme.h:68 -+msgid "Menu Background" -+msgstr "" -+ -+#: src/ui/classic/theme.h:68 -+msgid "Menu Border" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:122 -+msgid "Menu Font" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:172 -+msgctxt "Key name" -+msgid "Menu PB" -+msgstr "" -+ -+#: src/ui/classic/theme.h:69 -+msgid "Menu Selected Item Background" -+msgstr "" -+ -+#: src/ui/classic/theme.h:69 -+msgid "Menu Selected Item Border" -+msgstr "" -+ -+#: src/ui/classic/theme.h:70 -+msgid "Menu Separator" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:199 -+msgctxt "Key name" -+msgid "Messenger" -+msgstr "" -+ -+#: src/ui/classic/theme.h:199 -+msgid "Metadata" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:218 -+msgctxt "Key name" -+msgid "Microphone Mute" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:130 -+msgctxt "Key name" -+msgid "Monitor Brightness Down" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:128 -+msgctxt "Key name" -+msgid "Monitor Brightness Up" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:235 -+msgctxt "Key name" -+msgid "Muhenkan" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:251 -+msgctxt "Key name" -+msgid "Multiple Candidate" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:203 -+msgctxt "Key name" -+msgid "Music" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:173 -+msgctxt "Key name" -+msgid "My Sites" -+msgstr "" -+ -+#: src/ui/classic/theme.h:191 -+msgid "Name" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:223 -+msgctxt "Key name" -+msgid "New" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:174 -+msgctxt "Key name" -+msgid "News" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:48 -+msgid "Next Candidate" -+msgstr "" -+ -+#: src/ui/classic/theme.h:166 -+msgid "Next Page Button" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:27 -+msgid "No" -+msgstr "" -+ -+#: src/modules/clipboard/clipboard.cpp:355 -+msgid "No clipboard history." -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:28 -+msgid "None" -+msgstr "" -+ -+#: src/ui/classic/theme.h:135 src/ui/classic/theme.h:171 -+msgid "Normal text color" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:182 -+msgid "" -+"Normally Wayland uses 96 as font DPI in combinition with the screen scale " -+"factor. This option allows you to override the font DPI. If the value is 0, " -+"it means this option is disabled." -+msgstr "" -+ -+#: src/ui/kimpanel/kimpanel.cpp:386 -+msgid "Not available" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:733 -+msgid "Note for GNOME Later than 3.6" -+msgstr "" -+ -+#: src/modules/notifications/notifications.conf.in.in:3 -+msgid "Notification" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:54 -+msgctxt "Key name" -+msgid "NumLock" -+msgstr "" -+ -+#: src/modules/clipboard/clipboard.h:48 -+msgid "Number of entries" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:670 -+msgid "" -+"Only emoji support is found. To enable spell checking, you may need to " -+"install spell check data for the language." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:224 -+msgctxt "Key name" -+msgid "Open" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:110 -+msgctxt "Key name" -+msgid "Open URL" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:176 -+msgctxt "Key name" -+msgid "Option" -+msgstr "" -+ -+#: src/ui/classic/theme.h:120 -+msgid "Overlay Clip Margin" -+msgstr "" -+ -+#: src/ui/classic/theme.h:110 -+msgid "Overlay Image" -+msgstr "" -+ -+#: src/ui/classic/theme.h:113 -+msgid "Overlay X offset" -+msgstr "" -+ -+#: src/ui/classic/theme.h:114 -+msgid "Overlay Y offset" -+msgstr "" -+ -+#: src/ui/classic/theme.h:112 -+msgid "Overlay position" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:166 -+msgid "Override Xkb Option" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:991 -+msgid "Owner of DBus name ${1} is ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:999 -+msgid "PID of DBus name ${1} owner is ${2}." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:52 -+msgctxt "Key name" -+msgid "Page Down" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:51 -+msgctxt "Key name" -+msgid "Page Up" -+msgstr "" -+ -+#: src/ui/classic/theme.h:155 -+msgid "Page button vertical alignment" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:37 -+msgid "Page size" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:177 -+msgctxt "Key name" -+msgid "Paste" -+msgstr "" -+ -+#: src/modules/clipboard/clipboard.h:46 -+msgid "Paste Primary" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:44 -+msgctxt "Key name" -+msgid "Pause" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:178 -+msgctxt "Key name" -+msgid "Phone" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:202 -+msgctxt "Key name" -+msgid "Pictures" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:940 -+msgid "Please check ${1} for how to install fcitx5." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:962 -+msgid "" -+"Please check the Configure link of your distribution in ${1} for how to " -+"setup ${2} autostart." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:714 -+msgid "" -+"Please set environment variable ${env_name} to \"${value}\" using the tool " -+"your distribution provides or add ${1} to your ${2}. See ${link}." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:216 -+msgctxt "Key name" -+msgid "Power Down" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:135 -+msgctxt "Key name" -+msgid "Power Off" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:834 -+msgid "Preedit" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:836 -+msgid "Preedit disabled" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:835 -+msgid "Preedit enabled" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:130 src/ui/kimpanel/kimpanel.h:33 -+msgid "Prefer Text Icon" -+msgstr "" -+ -+#: src/modules/spell/spell.h:22 -+msgid "Presage" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:42 -+msgid "Prev Candidate" -+msgstr "" -+ -+#: src/ui/classic/theme.h:165 -+msgid "Prev Page Button" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:252 -+msgctxt "Key name" -+msgid "Previous Candidate" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:228 -+msgctxt "Key name" -+msgid "Print Screen" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:27 -+msgid "Program" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1249 -+msgid "Qt IM module files:" -+msgstr "" -+ -+#: src/modules/quickphrase/quickphrase.conf.in.in:3 -+msgid "Quick Phrase" -+msgstr "" -+ -+#: src/modules/quickphrase/quickphrase.cpp:472 -+msgid "Quick Phrase: " -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:219 -+msgctxt "Key name" -+msgid "Red" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:227 -+msgctxt "Key name" -+msgid "Redo" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:96 -+msgctxt "Key name" -+msgid "Refresh" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:180 -+msgctxt "Key name" -+msgid "Reload" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:179 -+msgctxt "Key name" -+msgid "Reply" -+msgstr "" -+ -+#: src/ui/classic/xcbtraywindow.cpp:39 -+#: src/modules/notificationitem/dbusmenu.cpp:259 -+msgid "Restart" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:43 -+msgctxt "Key name" -+msgid "Return" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:49 -+msgctxt "Key name" -+msgid "Right" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:31 -+msgctxt "Key name" -+msgid "Right Alt" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:35 -+msgctxt "Key name" -+msgid "Right Control" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:39 -+msgctxt "Key name" -+msgid "Right Hyper" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:33 -+msgctxt "Key name" -+msgid "Right Shift" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:37 -+msgctxt "Key name" -+msgid "Right Super" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:237 -+msgctxt "Key name" -+msgid "Romaji" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:181 -+msgctxt "Key name" -+msgid "Rotate Windows" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:183 -+msgctxt "Key name" -+msgid "Rotation KB" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:182 -+msgctxt "Key name" -+msgid "Rotation PB" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:916 -+msgid "Running as root:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:184 -+msgctxt "Key name" -+msgid "Save" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:138 -+msgctxt "Key name" -+msgid "Screensaver" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:90 -+msgctxt "Key name" -+msgid "ScrollLock" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:108 -+msgctxt "Key name" -+msgid "Search" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:233 -+msgctxt "Key name" -+msgid "Select" -+msgstr "" -+ -+#: src/modules/imselector/imselector.cpp:257 -+msgid "Select input method:" -+msgstr "" -+ -+#: src/modules/imselector/imselector.cpp:256 -+msgid "Select local input method:" -+msgstr "" -+ -+#: src/modules/imselector/imselector.conf.in.in:4 -+msgid "Select specific input method via keyboard" -+msgstr "" -+ -+#: src/ui/classic/theme.h:174 -+msgid "Selected Item text color" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:185 -+msgctxt "Key name" -+msgid "Send" -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:519 -+msgid "" -+"Sending keyboard layout configuration to wayland compositor from Fcitx is " -+"not yet supported on current desktop. You may still use Fcitx's internal " -+"layout conversion by adding layout as input method to the input method group." -+msgstr "" -+ -+#: src/ui/classic/theme.h:182 -+msgid "Separator Background" -+msgstr "" -+ -+#: src/ui/classic/theme.h:168 -+msgid "Shadow Margin" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:141 -+msgid "Share Input State" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:561 -+msgctxt "Key name" -+msgid "Shift" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:142 -+msgctxt "Key name" -+msgid "Shop" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:151 -+msgid "Show Input Method Information when changing focus" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:148 -+msgid "Show Input Method Information when switch input method" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:135 -+msgid "Show Layout Name In Icon" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:154 -+msgid "Show compact input method information" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:157 -+msgid "Show first input method information" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:139 -+msgid "" -+"Show layout name in icon if there is more than one active layout. If prefer " -+"text icon is set to true, this option will be ignored." -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:144 -+msgid "Show preedit in application" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:188 -+msgid "Show preedit text when typing password" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:77 -+msgid "" -+"Show preedit when composing, and commit dead key if there is no matching " -+"sequence." -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:64 -+msgid "Skip first input method while enumerating" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:140 -+msgctxt "Key name" -+msgid "Sleep" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:40 -+msgctxt "Key name" -+msgid "Space" -+msgstr "" -+ -+#: src/ui/classic/theme.h:176 -+msgid "Spacing" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:79 src/modules/spell/spell.conf.in.in:3 -+msgid "Spell" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:186 -+msgctxt "Key name" -+msgid "Spellchecker" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:187 -+msgctxt "Key name" -+msgid "Split Screen" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:163 -+msgctxt "Key name" -+msgid "Spreadsheet" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:109 -+msgctxt "Key name" -+msgid "Standby" -+msgstr "" -+ -+#: data/org.fcitx.Fcitx5.desktop.in.in:5 -+msgid "Start Input Method" -+msgstr "" -+ -+#: src/modules/notificationitem/notificationitem.conf.in.in:3 -+msgid "Status Notifier" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:95 -+msgctxt "Key name" -+msgid "Stop" -+msgstr "" -+ -+#: src/ui/classic/theme.h:184 -+msgid "Sub Menu" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:210 -+msgctxt "Key name" -+msgid "Subtitle" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 -+msgid "Super" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:562 -+msgctxt "Key name" -+msgid "Super" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:188 -+msgctxt "Key name" -+msgid "Support" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:217 -+msgctxt "Key name" -+msgid "Suspend" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:447 src/lib/fcitx/instance.cpp:673 -+#: src/modules/xcb/xcbconnection.cpp:522 -+msgid "Switch group" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:448 src/modules/xcb/xcbconnection.cpp:523 -+#, c++-format -+msgid "Switch group to {0}" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:674 -+#, c++-format -+msgid "Switched group to {0}" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:789 -+msgid "System Info:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:232 -+msgctxt "Key name" -+msgid "System Request" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:41 -+msgctxt "Key name" -+msgid "Tab" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:189 -+msgctxt "Key name" -+msgid "Task Panel" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:44 -+msgid "Temporally switch between first and current Input Method" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:190 -+msgctxt "Key name" -+msgid "Terminal" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1786 -+#, sh-format -+msgid "" -+"The environment variable checked by this script only shows the environment " -+"under current shell. It is still possible that you did not set the " -+"environment to the whole graphic desktop session. You may inspect the actual " -+"environment variable of a certain process by using `xargs -0 -L1 /proc/$PID/" -+"environ` for a certain process that you find not working." -+msgstr "" -+ -+#: src/modules/imselector/imselector.h:40 -+#: src/modules/imselector/imselector.h:50 -+msgid "The n-th hotkey in the list selects the n-th input method." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:895 -+msgid "The script is run as ${1} (${2})." -+msgstr "" -+ -+#: src/ui/classic/classicui.h:155 -+msgid "Theme" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:101 -+msgid "This is only effective when the tray icon is xembed." -+msgstr "" -+ -+#: src/ui/classic/theme.h:93 src/ui/classic/theme.h:101 -+msgid "This option is only effective if image is not set." -+msgstr "" -+ -+#: src/ui/classic/classicui.h:194 -+msgid "This option require support from wayland compositor." -+msgstr "" -+ -+#: src/ui/classic/classicui.h:173 -+msgid "This option will be always disabled on XWayland." -+msgstr "" -+ -+#: src/ui/classic/theme.h:109 -+msgid "This value should be less than any of margin value." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1805 -+msgid "" -+"Though such information can be helpful to developers for diagnostic purpose, " -+"please double check and remove as necessary before posting it online " -+"publicly." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:212 -+msgctxt "Key name" -+msgid "Time" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:750 -+#, sh-format -+msgid "" -+"To see some application specific problems you may have when using xim, check " -+"${link1}. For other more general problems of using XIM including application " -+"freezing, see ${link2}." -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:132 -+msgid "Toggle embedded preedit" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:191 -+msgctxt "Key name" -+msgid "Tools" -+msgstr "" -+ -+#: src/ui/classic/theme.h:48 -+msgid "Top" -+msgstr "" -+ -+#: src/ui/classic/theme.h:35 -+msgid "Top Center" -+msgstr "" -+ -+#: src/ui/classic/theme.h:35 -+msgid "Top Left" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:215 -+msgctxt "Key name" -+msgid "Top Menu" -+msgstr "" -+ -+#: src/ui/classic/theme.h:36 -+msgid "Top Right" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:268 -+msgctxt "Key name" -+msgid "Touchpad Off" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:267 -+msgctxt "Key name" -+msgid "Touchpad On" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:266 -+msgctxt "Key name" -+msgid "Touchpad Toggle" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:244 -+msgctxt "Key name" -+msgid "Touroku" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:192 -+msgctxt "Key name" -+msgid "Travel" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:124 -+msgid "Tray Font" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:126 -+msgid "Tray Label Outline Color" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:129 -+msgid "Tray Label Text Color" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:34 -+msgid "Trigger Input Method" -+msgstr "" -+ -+#: src/modules/imselector/imselector.h:25 -+#: src/modules/quickphrase/quickphrase.h:36 src/modules/unicode/unicode.h:31 -+#: src/modules/clipboard/clipboard.h:42 -+msgid "Trigger Key" -+msgstr "" -+ -+#: src/modules/imselector/imselector.h:29 -+msgid "Trigger Key for only current input context" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:62 -+msgid "Trigger hint mode" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:67 -+msgid "Trigger hint mode for one time" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:82 -+msgid "Type special characters with long press" -+msgstr "" -+ -+#: src/modules/unicode/unicode.h:36 -+msgid "Type unicode in Hex number" -+msgstr "" -+ -+#: data/org.fcitx.Fcitx5.metainfo.xml.in:22 -+msgid "Typing with Fcitx and Kimpanel" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1011 -+msgid "Unable to find a program to check dbus." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:226 -+msgctxt "Key name" -+msgid "Undo" -+msgstr "" -+ -+#: src/modules/unicode/unicode.conf.in.in:3 -+msgid "Unicode" -+msgstr "" -+ -+#: src/modules/unicode/unicode.cpp:456 -+msgid "Unicode: " -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:48 -+msgctxt "Key name" -+msgid "Up" -+msgstr "" -+ -+#: src/frontend/xim/xim.h:33 -+msgid "Use On The Spot Style (Needs restarting)" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:169 -+msgid "Use Per Screen DPI on X11" -+msgstr "" -+ -+#: src/ui/classic/theme.h:151 -+msgid "Use all horizontal space for highlight when it is vertical list" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:146 -+msgid "Use input method language to display text" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:116 -+msgid "Use mouse wheel to go to prev or next page" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:73 -+msgid "Use new compose behavior" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1677 -+msgid "User Interface:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:986 -+msgid "Using ${1} to check dbus." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:256 -+msgid "" -+"Using ${1} to check the actual im module to be used under current " -+"environment:" -+msgstr "" -+ -+#: src/ui/classic/theme.h:192 -+msgid "Version" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1405 data/fcitx5-diagnose.sh:1489 -+msgid "Version Line:" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:114 -+msgid "Vertical Candidate List" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:193 -+msgctxt "Key name" -+msgid "Video" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:214 -+msgctxt "Key name" -+msgid "View" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:97 -+msgctxt "Key name" -+msgid "Volume Down" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:98 -+msgctxt "Key name" -+msgid "Volume Mute" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:99 -+msgctxt "Key name" -+msgid "Volume Up" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:139 -+msgctxt "Key name" -+msgid "WWW" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:136 -+msgctxt "Key name" -+msgid "Wake Up" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1804 -+msgid "" -+"Warning: the output of fcitx5-diagnose contains sensitive information, " -+"including the distribution name, kernel version, name of currently running " -+"programs, etc." -+msgstr "" -+ -+#: src/modules/wayland/wayland.conf.in.in:3 -+msgid "Wayland" -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:449 -+msgid "Wayland Diagnose" -+msgstr "" -+ -+#: src/frontend/waylandim/waylandim.conf.in.in:3 -+msgid "Wayland Input method frontend" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:200 -+msgctxt "Key name" -+msgid "WebCam" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:170 -+msgid "" -+"Whether to override the xkb option from display server. It will not affect " -+"the xkb option send to display, but just the xkb options for custom xkb " -+"layout." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:926 -+msgid "Why is it bad to run as root" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:206 -+msgctxt "Key name" -+msgid "Wireless" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:194 -+msgctxt "Key name" -+msgid "Word Processor" -+msgstr "" -+ -+#: src/frontend/xim/xim.conf.in.in:3 -+msgid "X Input Method Frontend" -+msgstr "" -+ -+#: src/modules/xcb/xcb.conf.in.in:3 -+msgid "XCB" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:825 -+msgid "XDG SESSION TYPE:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:195 -+msgctxt "Key name" -+msgid "XFer" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1188 -+msgid "XIM encoding:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1183 -+msgid "XIM for Emacs:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1159 -+msgid "XIM_SERVERS on root window:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1136 -+msgid "XMODIFIERS is not set" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1157 -+msgid "Xim Server Name from Environment variable is ${1}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1169 -+msgid "Xim server name is the same with that set in the environment variable." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1171 -+msgid "" -+"Xim server name: \"${1}\" is different from that set in the environment " -+"variable: \"${2}\"." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:221 -+msgctxt "Key name" -+msgid "Yellow" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:924 -+msgid "" -+"You are probably logging in as ${1} or using ${2} to run this script. This " -+"either means you have security problems or the result of this script may not " -+"be accurate. See ${3} or ${4} for more information." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:919 -+msgid "" -+"You are probably using ${1} to run this script. This means the result of " -+"this script may not be accurate. See ${2} for more information." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1213 -+msgid "You are using xim in ${1} programs." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1218 -+msgid "You may have trouble using fcitx in ${1} programs." -+msgstr "" -+ -+#: data/fcitx5-configtool.sh:134 -+msgid "" -+"You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be " -+"found. Now it will open config directory." -+msgstr "" -+ -+#: data/fcitx5-configtool.sh:131 -+msgid "" -+"You're currently running KDE, but KCModule for fcitx couldn't be found, the " -+"package name of this KCModule is usually kcm-fcitx or kde-config-fcitx. Now " -+"it will open config directory." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1185 -+msgid "" -+"Your LC_CTYPE is set to ${1} instead of one of zh, ja, ko. You may not be " -+"able to use input method in emacs because of an really old emacs bug that " -+"upstream refuse to fix for years." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1190 -+msgid "" -+"Your LC_CTYPE is set to ${1} whose encoding is not UTF-8. You may have " -+"trouble committing strings using XIM." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:241 -+msgctxt "Key name" -+msgid "Zenkaku" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:243 -+msgctxt "Key name" -+msgid "Zenkaku Hankaku" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:196 -+msgctxt "Key name" -+msgid "Zoom In" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:197 -+msgctxt "Key name" -+msgid "Zoom Out" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:936 -+msgid "executable:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:757 -+msgid "here" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:167 -+msgctxt "Key name" -+msgid "iTouch" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:950 -+msgid "process:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:921 data/fcitx5-diagnose.sh:927 -+msgid "sudo environment variables" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:946 -+msgid "version:" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:292 -+#, c++-format -+msgid "{0} (Not Available)" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:405 -+#, c++-format -+msgid "{0} (Not available)" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:402 -+#, c++-format -+msgid "{0} ({1})" -+msgstr "" diff -Nru fcitx5-5.1.7/debian/patches/0009-Added-translation-using-Weblate-Uyghur.patch fcitx5-5.1.11/debian/patches/0009-Added-translation-using-Weblate-Uyghur.patch --- fcitx5-5.1.7/debian/patches/0009-Added-translation-using-Weblate-Uyghur.patch 2024-08-28 10:05:23.000000000 +0800 +++ fcitx5-5.1.11/debian/patches/0009-Added-translation-using-Weblate-Uyghur.patch 1970-01-01 08:00:00.000000000 +0800 @@ -1,5907 +0,0 @@ -From: KevinDuan <duankaiwen@kylinos.com> -Date: Tue, 14 May 2024 17:29:27 +0800 -Subject: Added translation using Weblate (Uyghur) - ---- - po/ky.po | 2942 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - po/ug.po | 2942 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 5884 insertions(+) - create mode 100644 po/ky.po - create mode 100644 po/ug.po - -diff --git a/po/ky.po b/po/ky.po -new file mode 100644 -index 0000000..19cd76e ---- /dev/null -+++ b/po/ky.po -@@ -0,0 +1,2942 @@ -+# SOME DESCRIPTIVE TITLE. -+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -+# This file is distributed under the same license as the fcitx5 package. -+# -+# Translators: -+# wwj402 <wwj402@gmail.com>, 2017 -+# rocka, 2023 -+# Lau YeeYu, 2023 -+# csslayer <wengxt@gmail.com>, 2023 -+# -+msgid "" -+msgstr "" -+"Project-Id-Version: fcitx5\n" -+"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" -+"POT-Creation-Date: 2023-10-19 05:51+0000\n" -+"PO-Revision-Date: 2017-11-23 04:14+0000\n" -+"Last-Translator: Automatically generated\n" -+"Language-Team: none\n" -+"Language: ky\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"Plural-Forms: nplurals=2; plural=n != 1;\n" -+ -+#: data/fcitx5-diagnose.sh:900 -+msgid "${1} Environment Variables:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:886 -+msgid "${1} Settings Directory:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:960 -+msgid "${1} is not running." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:909 -+msgid "${1} is not set." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:906 -+msgid "${1} is set to ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:565 -+msgid "${1} not found." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:977 -+msgid "${1} works properly." -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:407 -+msgid "(Not available)" -+msgstr "" -+ -+#: src/modules/unicode/unicode.cpp:458 -+msgid "(Type to search unicode by code or description)" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:707 -+msgid "/Beginner%27s_Guide" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:754 -+msgid "/Hall_of_Shame_for_Linux_IME_Support" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:718 -+msgid "/Input_method_related_environment_variables" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:734 -+msgid "/Note_for_GNOME_Later_than_3.6" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:758 -+msgid "/XIM" -+msgstr "" -+ -+#: src/modules/unicode/charselectdata.cpp:215 -+msgid "<Low Surrogate>" -+msgstr "" -+ -+#: src/modules/unicode/charselectdata.cpp:211 -+msgid "<Non Private Use High Surrogate>" -+msgstr "" -+ -+#: src/modules/unicode/charselectdata.cpp:213 -+msgid "<Private Use High Surrogate>" -+msgstr "" -+ -+#: src/modules/unicode/charselectdata.cpp:217 -+msgid "<Private Use>" -+msgstr "" -+ -+#: src/modules/unicode/charselectdata.cpp:247 -+msgid "<not assigned>" -+msgstr "" -+ -+#: src/ui/virtualkeyboard/virtualkeyboard.conf.in.in:4 -+msgid "A virtual keyboard backend based on DBus" -+msgstr "" -+ -+#: src/ui/classic/theme.h:204 -+msgid "Accent Colors" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:82 -+msgid "Activate Input Method" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:138 -+msgid "Active By Default" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:144 -+msgctxt "Key name" -+msgid "Add Favorite" -+msgstr "" -+ -+#: src/modules/unicode/unicode.conf.in.in:4 -+msgid "Add Unicode Typing Support" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1565 -+msgid "Addon Config Dir:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1650 -+msgid "Addon Libraries:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1593 -+msgid "Addon List:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:146 -+msgctxt "Key name" -+msgid "Adjust Brightness" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:26 -+msgid "All" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1367 -+msgid "All found Gtk ${1} immodule files exist." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1676 -+msgid "All libraries for all addons are found." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:854 -+msgid "All locales:" -+msgstr "" -+ -+#: src/modules/xcb/xcbmodule.h:30 -+msgid "Allow Overriding System XKB Settings" -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.h:34 -+msgid "Allow Overriding System XKB Settings (Only support KDE 5)" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:185 -+msgid "Allow input method in the password field" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:29 -+msgid "Alt" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:560 -+msgctxt "Key name" -+msgid "Alt" -+msgstr "" -+ -+#: src/modules/xcb/xcbmodule.h:33 -+msgid "Always set layout to be only group layout" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:151 -+msgctxt "Key name" -+msgid "Application Left" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:152 -+msgctxt "Key name" -+msgid "Application Right" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:87 -+msgid "Applications disabled for long press" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:211 -+msgctxt "Key name" -+msgid "Audio Cycle Track" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:209 -+msgctxt "Key name" -+msgid "Audio Random Play" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:208 -+msgctxt "Key name" -+msgid "Audio Repeat" -+msgstr "" -+ -+#: src/ui/classic/theme.h:193 -+msgid "Author" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:198 -+msgctxt "Key name" -+msgid "Away" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:93 -+msgctxt "Key name" -+msgid "Back" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:150 -+msgctxt "Key name" -+msgid "Back Forward" -+msgstr "" -+ -+#: src/modules/spell/spell.h:38 -+msgid "Backends" -+msgstr "" -+ -+#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 -+msgid "Background" -+msgstr "" -+ -+#: src/ui/classic/theme.h:85 -+msgid "Background Image" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:42 -+msgctxt "Key name" -+msgid "Backspace" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:827 -+msgid "Bash Version:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:204 -+msgctxt "Key name" -+msgid "Battery" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:706 -+msgid "Beginner's Guide" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:202 -+msgid "Behavior" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:222 -+msgctxt "Key name" -+msgid "Blue" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:205 -+msgctxt "Key name" -+msgid "Bluetooth" -+msgstr "" -+ -+#: src/ui/classic/theme.h:148 -+msgid "Blur Margin" -+msgstr "" -+ -+#: src/ui/classic/theme.h:147 -+msgid "Blur mask" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:153 -+msgctxt "Key name" -+msgid "Book" -+msgstr "" -+ -+#: src/ui/classic/theme.h:97 -+msgid "Border Color" -+msgstr "" -+ -+#: src/ui/classic/theme.h:105 -+msgid "Border width" -+msgstr "" -+ -+#: src/ui/classic/theme.h:50 -+msgid "Bottom" -+msgstr "" -+ -+#: src/ui/classic/theme.h:38 -+msgid "Bottom Center" -+msgstr "" -+ -+#: src/ui/classic/theme.h:38 -+msgid "Bottom Left" -+msgstr "" -+ -+#: src/ui/classic/theme.h:39 -+msgid "Bottom Right" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:164 -+msgctxt "Key name" -+msgid "Browser" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:154 -+msgctxt "Key name" -+msgid "CD" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:155 -+msgctxt "Key name" -+msgid "Calculator" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:264 -+msgctxt "Key name" -+msgid "Cancel" -+msgstr "" -+ -+#: src/im/keyboard/longpress.h:19 -+msgid "Candidates" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:975 -+msgid "Cannot connect to ${1} correctly." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:820 -+msgid "Cannot determine desktop environment." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1584 -+msgid "Cannot find ${1} addon config directory." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1099 -+msgid "Cannot find ${1} executable!" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1517 -+msgid "Cannot find ${1} im module for gtk ${2} in cache." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1434 -+msgid "Cannot find ${1} im module for gtk ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1288 data/fcitx5-diagnose.sh:1293 -+#: data/fcitx5-diagnose.sh:1298 -+msgid "Cannot find ${1} input method module for ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1428 -+msgid "Cannot find ${2} for gtk ${1}" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:995 -+msgid "Cannot find DBus name ${1} owner." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1109 -+msgid "Cannot find a GUI config tool, please install one of ${1}, or ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1679 -+msgid "Cannot find enabled ${1} user interface!" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:938 -+msgid "Cannot find fcitx5 executable!" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1658 -+msgid "Cannot find file ${1} of addon ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1668 -+msgid "Cannot find following required libraries for ${1} of addon ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1512 -+msgid "Cannot find immodules cache for gtk ${1}" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1698 -+msgid "" -+"Cannot find kimpanel dbus interface or enabled non-kimpanel user interface." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1003 -+msgid "Cannot find pid of DBus name ${1} owner." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1175 -+msgid "Cannot find xim_server on root window." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1149 -+msgid "Cannot interpret XMODIFIERS: ${1}." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:53 -+msgctxt "Key name" -+msgid "CapsLock" -+msgstr "" -+ -+#: src/ui/classic/theme.h:37 src/ui/classic/theme.h:49 -+msgid "Center" -+msgstr "" -+ -+#: src/ui/classic/theme.h:36 -+msgid "Center Left" -+msgstr "" -+ -+#: src/ui/classic/theme.h:37 -+msgid "Center Right" -+msgstr "" -+ -+#: data/fcitx5-configtool.desktop.in.in:5 -+msgid "Change Fcitx 5 Configuration" -+msgstr "" -+ -+#: src/ui/classic/theme.h:183 -+msgid "Check box" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:56 src/modules/quickphrase/quickphrase.h:41 -+msgid "Choose key modifier" -+msgstr "" -+ -+#: src/ui/classic/classicui.conf.in.in:3 -+msgid "Classic User Interface" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:156 -+msgctxt "Key name" -+msgid "Clear" -+msgstr "" -+ -+#: src/ui/classic/theme.h:131 -+msgid "Click Margin" -+msgstr "" -+ -+#: src/modules/clipboard/clipboard.conf.in.in:3 -+msgid "Clipboard" -+msgstr "" -+ -+#: src/modules/clipboard/clipboard.cpp:353 -+msgid "Clipboard (Press BackSpace/Delete to clear history):" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:157 -+msgctxt "Key name" -+msgid "Close" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:250 -+msgctxt "Key name" -+msgid "Code input" -+msgstr "" -+ -+#: src/ui/classic/theme.h:89 -+msgid "Color" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:148 -+msgctxt "Key name" -+msgid "Community" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:685 -+msgid "Completion" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:676 -+msgid "Completion is disabled." -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:679 -+msgid "Completion is enabled temporarily." -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:681 -+msgid "Completion is enabled." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1051 -+msgid "Config GUI for gtk${1} not found." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1047 -+msgid "Config GUI for gtk${1}:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1081 -+msgid "Config GUI for kde:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1070 -+msgid "Config GUI for qt not found." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1068 -+msgid "Config GUI for qt:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1097 -+msgid "Config Tool Wrapper:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1793 -+msgid "Configuration:" -+msgstr "" -+ -+#: src/ui/classic/xcbtraywindow.cpp:38 -+#: src/modules/notificationitem/dbusmenu.cpp:251 -+msgid "Configure" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 -+msgid "Control" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:559 -+msgctxt "Key name" -+msgid "Control" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:158 -+msgctxt "Key name" -+msgid "Copy" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:888 -+msgid "Current ${1} settings directory is ${2} (${3})." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:856 -+msgid "Current locale:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:894 -+msgid "Current user:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:882 -+msgid "Current value of ${1} is ${2} (${3})." -+msgstr "" -+ -+#: src/modules/spell/spell.h:22 -+msgid "Custom" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:175 -+msgid "Custom Xkb Option" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:159 -+msgctxt "Key name" -+msgid "Cut" -+msgstr "" -+ -+#: src/modules/dbus/dbus.conf.in.in:3 -+msgid "DBus" -+msgstr "" -+ -+#: src/frontend/dbusfrontend/dbusfrontend.conf.in.in:3 -+msgid "DBus Frontend" -+msgstr "" -+ -+#: src/ui/virtualkeyboard/virtualkeyboard.conf.in.in:3 -+msgid "DBus Virtual Keyboard" -+msgstr "" -+ -+#: src/modules/notificationitem/notificationitem.conf.in.in:4 -+msgid "DBus based new Freedesktop.org tray icon" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:983 -+msgid "DBus interface:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:161 -+msgctxt "Key name" -+msgid "DOS" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:158 -+msgid "Dark Theme" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:91 -+msgid "Deactivate Input Method" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1007 -+msgid "Debug information from dbus:" -+msgstr "" -+ -+#: src/lib/fcitx/inputmethodmanager.cpp:138 src/lib/fcitx/instance.cpp:354 -+#: src/ui/classic/themes/default/theme.conf.in:3 -+msgid "Default" -+msgstr "" -+ -+#: src/ui/classic/themes/default-dark/theme-dark.conf.in:3 -+msgid "Default Dark" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:127 -+msgid "Default Next Candidate" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:111 -+msgid "Default Next page" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:121 -+msgid "Default Previous Candidate" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:99 -+msgid "Default Previous page" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:159 -+msgid "Default page size" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:230 -+msgctxt "Key name" -+msgid "Delete" -+msgstr "" -+ -+#: src/ui/classic/theme.h:195 -+msgid "Description" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:817 -+msgid "Desktop Environment:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:822 -+msgid "Desktop environment is ${1}." -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:476 -+msgid "" -+"Detect GTK_IM_MODULE and QT_IM_MODULE being set and Wayland Input method " -+"frontend is working. It is recommended to unset GTK_IM_MODULE and " -+"QT_IM_MODULE and use Wayland input method frontend instead. For more details " -+"see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma" -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:504 -+msgid "" -+"Detect GTK_IM_MODULE being set and Wayland Input method frontend is working. " -+"It is recommended to unset GTK_IM_MODULE and use Wayland input method " -+"frontend instead." -+msgstr "" -+ -+#: src/frontend/waylandim/waylandim.h:27 -+msgid "Detect current running application (Need restart)" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:868 -+msgid "Directories:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:160 -+msgctxt "Key name" -+msgid "Display" -+msgstr "" -+ -+#: src/modules/notifications/notifications.cpp:204 -+msgid "Do not show again" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:162 -+msgctxt "Key name" -+msgid "Documents" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:50 -+msgctxt "Key name" -+msgid "Down" -+msgstr "" -+ -+#: src/modules/quickphrase/quickphrase.h:47 -+msgid "Editor" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:248 -+msgctxt "Key name" -+msgid "Eisu Shift" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:249 -+msgctxt "Key name" -+msgid "Eisu toggle" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:137 -+msgctxt "Key name" -+msgid "Eject" -+msgstr "" -+ -+#: src/modules/emoji/emoji.conf.in.in:3 -+msgid "Emoji" -+msgstr "" -+ -+#: src/im/keyboard/longpress.h:17 -+msgid "Enable" -+msgstr "" -+ -+#: src/ui/classic/theme.h:145 -+msgid "Enable Blur on KWin" -+msgstr "" -+ -+#: src/modules/quickphrase/quickphrase.h:43 -+msgid "Enable Spell check" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:51 -+msgid "Enable emoji in hint" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:54 -+msgid "Enable emoji in quickphrase" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:190 -+msgid "Enable fractional scale under Wayland" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:59 -+msgid "Enable hint by default" -+msgstr "" -+ -+#: src/modules/spell/spell.h:23 -+msgid "Enchant" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:46 -+msgctxt "Key name" -+msgid "End" -+msgstr "" -+ -+#: src/im/keyboard/longpress.h:26 -+msgid "Entries" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:58 -+msgid "Enumerate Input Method Backward" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:51 -+msgid "Enumerate Input Method Forward" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:75 -+msgid "Enumerate Input Method Group Backward" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:68 -+msgid "Enumerate Input Method Group Forward" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:40 -+msgid "Enumerate when press trigger key repeatedly" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1127 -+msgid "" -+"Environment variable ${1} is \"${2}\" instead of \"${3}\". Please check if " -+"you have exported it incorrectly in any of your init files." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:874 -+msgid "Environment variable ${1} is not set." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1121 -+msgid "Environment variable ${1} is set to \"${2}\" correctly." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:878 -+msgid "Environment variable ${1} is set to ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:832 -+msgid "Environment:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:860 -+msgid "Error occurs when running ${1}. Please check your locale settings." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:231 -+msgctxt "Key name" -+msgid "Escape" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:265 -+msgctxt "Key name" -+msgid "Execute" -+msgstr "" -+ -+#: src/ui/classic/xcbtraywindow.cpp:40 -+#: src/modules/notificationitem/dbusmenu.cpp:265 -+msgid "Exit" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1506 -+msgid "Failed to find ${1} in immodule cache at ${2}" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1422 -+msgid "Failed to find ${1} in the output of ${2}" -+msgstr "" -+ -+#: src/modules/quickphrase/quickphrase.h:45 -+msgid "Fallback Spell check language" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:107 -+msgctxt "Key name" -+msgid "Favorites" -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:449 -+msgid "Fcitx" -+msgstr "" -+ -+#: data/org.fcitx.Fcitx5.desktop.in.in:3 -+#: data/org.fcitx.Fcitx5.metainfo.xml.in:6 -+msgid "Fcitx 5" -+msgstr "" -+ -+#: data/fcitx5-configtool.desktop.in.in:3 -+msgid "Fcitx 5 Configuration" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1564 -+msgid "Fcitx Addons:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1096 -+msgid "Fcitx Configure UI:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:935 -+msgid "Fcitx State:" -+msgstr "" -+ -+#: data/org.fcitx.Fcitx5.metainfo.xml.in:9 -+msgid "" -+"Fcitx is an input method framework. It can help you to type your own " -+"language. It also features variant choice of addons that improve your typing " -+"experience." -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:463 -+msgid "" -+"Fcitx should be launched by KWin under KDE Wayland in order to use Wayland " -+"input method frontend. This can improve the experience when using Fcitx on " -+"Wayland. To configure this, you need to go to \"System Settings\" -> " -+"\"Virtual keyboard\" and select \"Fcitx 5\" from it. You may also need to " -+"disable tools that launches input method, such as imsettings on Fedora, or " -+"im-config on Debian/Ubuntu. For more details see https://fcitx-im.org/wiki/" -+"Using_Fcitx_5_on_Wayland#KDE_Plasma" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:949 -+msgid "Fcitx version: ${1}" -+msgstr "" -+ -+#: src/frontend/fcitx4frontend/fcitx4frontend.conf.in.in:3 -+msgid "Fcitx4 Frontend" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:147 -+msgctxt "Key name" -+msgid "Finance" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:225 -+msgctxt "Key name" -+msgid "Find" -+msgstr "" -+ -+#: src/ui/classic/theme.h:49 -+msgid "First Candidate" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:164 -+msgid "Follow system accent color if it is supported by theme and desktop" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:160 -+msgid "Follow system light/dark color scheme" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1284 -+msgid "" -+"Following error may not be accurate because guessing Qt version from path " -+"depends on how your distribution packages Qt. It is not a critical error if " -+"you do not use any Qt application with certain version of Qt or you are " -+"using text-input support by Qt under Wayland." -+msgstr "" -+ -+#: src/ui/classic/classicui.h:120 -+msgid "Font" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:150 -+msgid "" -+"For example, display character with Chinese variant when using Pinyin and " -+"Japanese variant when using Anthy. The font configuration needs to support " -+"this to use this feature." -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:530 -+msgid "For more details see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:178 -+msgid "Force font DPI on Wayland" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:94 -+msgctxt "Key name" -+msgid "Forward" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1276 -+msgid "Found ${1} ${2} module: ${3}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:969 -+msgid "Found ${1} ${2} process:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:967 -+msgid "Found ${1} ${2} processes:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1587 -+msgid "Found ${1} addon config directory: ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:944 data/fcitx5-diagnose.sh:1060 -+#: data/fcitx5-diagnose.sh:1073 data/fcitx5-diagnose.sh:1101 -+msgid "Found ${1} at ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1640 -+msgid "Found ${1} disabled addons:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1631 -+msgid "Found ${1} enabled addons:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1681 -+msgid "Found ${1} enabled user interface addons:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1416 data/fcitx5-diagnose.sh:1500 -+msgid "Found ${1} im modules for gtk ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1087 -+msgid "Found ${1} kcm module." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1408 -+msgid "Found ${2} for unknown gtk version at ${1}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1400 -+msgid "Found ${3} for gtk ${1} at ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1263 data/fcitx5-diagnose.sh:1268 -+msgid "Found ${3} im module for ${2}: ${1}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1493 -+msgid "Found immodule cache for unknown gtk version at ${1}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1485 -+msgid "Found immodules cache for gtk ${1} at ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1279 -+msgid "Found unknown ${1} qt module: ${2}." -+msgstr "" -+ -+#: src/modules/notifications/notifications.conf.in.in:4 -+msgid "Freedesktop.org Notification Support" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1785 -+msgid "Frontends setup:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:165 -+msgctxt "Key name" -+msgid "Game" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:166 -+msgctxt "Key name" -+msgid "Go" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:220 -+msgctxt "Key name" -+msgid "Green" -+msgstr "" -+ -+#: src/ui/classic/xcbtraywindow.cpp:36 -+#: src/modules/notificationitem/dbusmenu.cpp:241 -+msgid "Group" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:411 -+#, c++-format -+msgid "Group {0}: {1}" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:356 -+#, c++-format -+msgid "Group {}" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1361 -+msgid "Gtk ${1} immodule file ${2} does not exist." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1545 -+msgid "Gtk IM module cache:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1550 -+msgid "Gtk IM module files:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:753 -+msgid "Hall of Shame for Linux IME Support" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:253 -+msgctxt "Key name" -+msgid "Hangul" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:260 -+msgctxt "Key name" -+msgid "Hangul Banja" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:255 -+msgctxt "Key name" -+msgid "Hangul End" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:256 -+msgctxt "Key name" -+msgid "Hangul Hanja" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:257 -+msgctxt "Key name" -+msgid "Hangul Jamo" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:259 -+msgctxt "Key name" -+msgid "Hangul Jeonja" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:262 -+msgctxt "Key name" -+msgid "Hangul PostHanja" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:261 -+msgctxt "Key name" -+msgid "Hangul PreHanja" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:258 -+msgctxt "Key name" -+msgid "Hangul Romaja" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:263 -+msgctxt "Key name" -+msgid "Hangul Special" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:254 -+msgctxt "Key name" -+msgid "Hangul Start" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:242 -+msgctxt "Key name" -+msgid "Hankaku" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:92 -+msgctxt "Key name" -+msgid "Help" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:236 -+msgctxt "Key name" -+msgid "Henkan" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:213 -+msgctxt "Key name" -+msgid "Hibernate" -+msgstr "" -+ -+#: src/modules/notifications/notifications.h:28 -+msgid "Hidden Notifications" -+msgstr "" -+ -+#: src/ui/classic/theme.h:116 -+msgid "Hide overlay if size does not fit" -+msgstr "" -+ -+#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:180 -+msgid "Highlight Background" -+msgstr "" -+ -+#: src/ui/classic/theme.h:140 -+msgid "Highlight Background color" -+msgstr "" -+ -+#: src/ui/classic/theme.h:143 -+msgid "Highlight Candidate Color" -+msgstr "" -+ -+#: src/ui/classic/theme.h:126 -+msgid "Highlight Click Margin" -+msgstr "" -+ -+#: src/ui/classic/theme.h:138 -+msgid "Highlight text color" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:238 -+msgctxt "Key name" -+msgid "Hiragana" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:240 -+msgctxt "Key name" -+msgid "Hiragana Katakana" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:143 -+msgctxt "Key name" -+msgid "History" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:45 -+msgctxt "Key name" -+msgid "Home" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:175 -+msgctxt "Key name" -+msgid "Home Office" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:106 -+msgctxt "Key name" -+msgid "Home Page" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:870 -+msgid "Home:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:145 -+msgctxt "Key name" -+msgid "Hot Links" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:200 -+msgid "Hotkey" -+msgstr "" -+ -+#: src/modules/imselector/imselector.h:35 -+msgid "Hotkey for switching to the N-th input method" -+msgstr "" -+ -+#: src/modules/imselector/imselector.h:44 -+msgid "" -+"Hotkey for switching to the N-th input method for only current input context" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:564 -+msgctxt "Key name" -+msgid "Hyper" -+msgstr "" -+ -+#: src/frontend/ibusfrontend/ibusfrontend.conf.in.in:3 -+msgid "IBus Frontend" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:196 -+msgid "" -+"If value is 0, the user data may only be saved when fcitx quits (e.g. " -+"logout)." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:742 -+msgid "" -+"If you are using ${1}, you may want to uninstall ${2} or remove ${3} in " -+"order to use any input method other than ${2}. See ${link} for more detail " -+"as well as alternative solutions." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:740 -+msgid "" -+"If you are using ${1}, you may want to uninstall ${2}, remove ${3} or use " -+"the command ${g36_disable_ibus} to disable IBus integration in order to use " -+"any input method other than ${2}. See ${link} for more detail." -+msgstr "" -+ -+#: src/ui/classic/theme.h:129 -+msgid "Image" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:684 src/lib/fcitx/instance.cpp:446 -+#: src/lib/fcitx/instance.cpp:672 src/lib/fcitx/instance.cpp:834 -+#: src/modules/notificationitem/notificationitem.cpp:147 -+#: src/modules/notificationitem/notificationitem.cpp:235 -+#: src/modules/xcb/xcbconnection.cpp:521 data/org.fcitx.Fcitx5.desktop.in.in:4 -+#: data/org.fcitx.Fcitx5.metainfo.xml.in:7 -+msgid "Input Method" -+msgstr "" -+ -+#: data/fcitx5-configtool.desktop.in.in:4 -+msgid "Input Method Configuration" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:717 -+msgid "Input Method Related Environment Variables: " -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1704 -+msgid "Input Methods:" -+msgstr "" -+ -+#: src/ui/classic/theme.h:201 -+msgid "Input Panel" -+msgstr "" -+ -+#: src/ui/classic/theme.h:65 -+msgid "Input Panel Background" -+msgstr "" -+ -+#: src/ui/classic/theme.h:65 -+msgid "Input Panel Border" -+msgstr "" -+ -+#: src/ui/classic/theme.h:67 -+msgid "Input Panel Highlight" -+msgstr "" -+ -+#: src/ui/classic/theme.h:66 -+msgid "Input Panel Highlight Candidate Background" -+msgstr "" -+ -+#: src/ui/classic/theme.h:67 -+msgid "Input Panel Highlight Candidate Border" -+msgstr "" -+ -+#: src/modules/imselector/imselector.conf.in.in:3 -+msgid "Input method selector" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:103 src/lib/fcitx/globalconfig.cpp:115 -+msgid "" -+"Input methods may have different setup in their own configuration. This is " -+"commonly used by modules like clipboard or quickphrase." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:229 -+msgctxt "Key name" -+msgid "Insert" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:192 -+msgid "Interval of saving user data in minutes" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1599 -+msgid "Invalid addon config file ${1}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1205 -+msgid "" -+"It is OK to use ${1} built-in Wayland im module if your compositor fully " -+"supports text-input protocol used by ${1}." -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:488 -+msgid "" -+"It is recommended to install Input Method Panel GNOME Shell Extensions to " -+"provide the input method popup. https://extensions.gnome.org/extension/261/" -+"kimpanel/ Otherwise you may not be able to see input method popup when " -+"typing in GNOME Shell's activities search box. For more details see https://" -+"fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#GNOME" -+msgstr "" -+ -+#: src/ui/kimpanel/kimpanel.conf.in.in:3 -+msgid "KDE Input Method Panel" -+msgstr "" -+ -+#: src/ui/classic/classicui.cpp:260 -+msgid "KDE Plasma (Experimental)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:246 -+msgctxt "Key name" -+msgid "Kana Lock" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:247 -+msgctxt "Key name" -+msgid "Kana Shift" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:234 -+msgctxt "Key name" -+msgid "Kanji" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:239 -+msgctxt "Key name" -+msgid "Katakana" -+msgstr "" -+ -+#: src/im/keyboard/longpress.h:16 -+msgid "Key" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:315 src/im/keyboard/keyboard.conf.in.in:3 -+msgid "Keyboard" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:231 -+#, c++-format -+msgid "Keyboard - {0}" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:250 -+#, c++-format -+msgid "Keyboard - {0} - {1}" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:134 -+msgctxt "Key name" -+msgid "Keyboard Brightness Down" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:132 -+msgctxt "Key name" -+msgid "Keyboard Brightness Up" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:836 -+msgid "Keyboard Layout:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:131 -+msgctxt "Key name" -+msgid "Keyboard Light On/Off" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:171 -+msgctxt "Key name" -+msgid "Keyboard Menu" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:74 -+msgctxt "Key name" -+msgid "Keypad *" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:75 -+msgctxt "Key name" -+msgid "Keypad +" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:76 -+msgctxt "Key name" -+msgid "Keypad ," -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:77 -+msgctxt "Key name" -+msgid "Keypad -" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:78 -+msgctxt "Key name" -+msgid "Keypad ." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:79 -+msgctxt "Key name" -+msgid "Keypad /" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:80 -+msgctxt "Key name" -+msgid "Keypad 0" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:81 -+msgctxt "Key name" -+msgid "Keypad 1" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:82 -+msgctxt "Key name" -+msgid "Keypad 2" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:83 -+msgctxt "Key name" -+msgid "Keypad 3" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:84 -+msgctxt "Key name" -+msgid "Keypad 4" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:85 -+msgctxt "Key name" -+msgid "Keypad 5" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:86 -+msgctxt "Key name" -+msgid "Keypad 6" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:87 -+msgctxt "Key name" -+msgid "Keypad 7" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:88 -+msgctxt "Key name" -+msgid "Keypad 8" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:89 -+msgctxt "Key name" -+msgid "Keypad 9" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:73 -+msgctxt "Key name" -+msgid "Keypad =" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:70 -+msgctxt "Key name" -+msgid "Keypad Begin" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:72 -+msgctxt "Key name" -+msgid "Keypad Delete" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:66 -+msgctxt "Key name" -+msgid "Keypad Down" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:69 -+msgctxt "Key name" -+msgid "Keypad End" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:57 -+msgctxt "Key name" -+msgid "Keypad Enter" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:58 -+msgctxt "Key name" -+msgid "Keypad F1" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:59 -+msgctxt "Key name" -+msgid "Keypad F2" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:60 -+msgctxt "Key name" -+msgid "Keypad F3" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:61 -+msgctxt "Key name" -+msgid "Keypad F4" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:62 -+msgctxt "Key name" -+msgid "Keypad Home" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:71 -+msgctxt "Key name" -+msgid "Keypad Insert" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:63 -+msgctxt "Key name" -+msgid "Keypad Left" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:68 -+msgctxt "Key name" -+msgid "Keypad Page Down" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:67 -+msgctxt "Key name" -+msgid "Keypad Page Up" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:65 -+msgctxt "Key name" -+msgid "Keypad Right" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:55 -+msgctxt "Key name" -+msgid "Keypad Space" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:56 -+msgctxt "Key name" -+msgid "Keypad Tab" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:64 -+msgctxt "Key name" -+msgid "Keypad Up" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1690 -+msgid "Kimpanel process:" -+msgstr "" -+ -+#: src/ui/classic/theme.h:50 -+msgid "Last Candidate" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:112 -+msgctxt "Key name" -+msgid "Launch (0)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:113 -+msgctxt "Key name" -+msgid "Launch (1)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:114 -+msgctxt "Key name" -+msgid "Launch (2)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:115 -+msgctxt "Key name" -+msgid "Launch (3)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:116 -+msgctxt "Key name" -+msgid "Launch (4)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:117 -+msgctxt "Key name" -+msgid "Launch (5)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:118 -+msgctxt "Key name" -+msgid "Launch (6)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:119 -+msgctxt "Key name" -+msgid "Launch (7)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:120 -+msgctxt "Key name" -+msgid "Launch (8)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:121 -+msgctxt "Key name" -+msgid "Launch (9)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:122 -+msgctxt "Key name" -+msgid "Launch (A)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:123 -+msgctxt "Key name" -+msgid "Launch (B)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:124 -+msgctxt "Key name" -+msgid "Launch (C)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:125 -+msgctxt "Key name" -+msgid "Launch (D)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:126 -+msgctxt "Key name" -+msgid "Launch (E)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:127 -+msgctxt "Key name" -+msgid "Launch (F)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:111 -+msgctxt "Key name" -+msgid "Launch Mail" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:47 -+msgctxt "Key name" -+msgid "Left" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:30 -+msgctxt "Key name" -+msgid "Left Alt" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:34 -+msgctxt "Key name" -+msgid "Left Control" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:38 -+msgctxt "Key name" -+msgid "Left Hyper" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:32 -+msgctxt "Key name" -+msgid "Left Shift" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:36 -+msgctxt "Key name" -+msgid "Left Super" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:141 -+msgctxt "Key name" -+msgid "LightBulb" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:851 -+msgid "Locale:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1799 -+msgid "Log:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:168 -+msgctxt "Key name" -+msgid "Logoff" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:89 -+msgid "Long Press behavior" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:201 -+msgctxt "Key name" -+msgid "Mail Forward" -+msgstr "" -+ -+#: src/ui/classic/theme.h:118 -+msgid "Margin" -+msgstr "" -+ -+#: src/ui/classic/theme.h:80 -+msgid "Margin Bottom" -+msgstr "" -+ -+#: src/ui/classic/theme.h:74 -+msgid "Margin Left" -+msgstr "" -+ -+#: src/ui/classic/theme.h:76 -+msgid "Margin Right" -+msgstr "" -+ -+#: src/ui/classic/theme.h:78 -+msgid "Margin Top" -+msgstr "" -+ -+#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 -+msgid "Margin around all content" -+msgstr "" -+ -+#: src/ui/classic/theme.h:164 src/ui/classic/theme.h:188 -+msgid "Margin around text" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:169 -+msgctxt "Key name" -+msgid "Market" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:245 -+msgctxt "Key name" -+msgid "Massyo" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:207 -+msgctxt "Key name" -+msgid "Media Fast Forward" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:103 -+msgctxt "Key name" -+msgid "Media Next" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:105 -+msgctxt "Key name" -+msgid "Media Pause" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:100 -+msgctxt "Key name" -+msgid "Media Play" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:102 -+msgctxt "Key name" -+msgid "Media Previous" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:104 -+msgctxt "Key name" -+msgid "Media Record" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:149 -+msgctxt "Key name" -+msgid "Media Rewind" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:101 -+msgctxt "Key name" -+msgid "Media Stop" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:170 -+msgctxt "Key name" -+msgid "Meeting" -+msgstr "" -+ -+#: src/ui/classic/theme.h:202 -+msgid "Menu" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:91 -+msgctxt "Key name" -+msgid "Menu" -+msgstr "" -+ -+#: src/ui/classic/theme.h:68 -+msgid "Menu Background" -+msgstr "" -+ -+#: src/ui/classic/theme.h:68 -+msgid "Menu Border" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:122 -+msgid "Menu Font" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:172 -+msgctxt "Key name" -+msgid "Menu PB" -+msgstr "" -+ -+#: src/ui/classic/theme.h:69 -+msgid "Menu Selected Item Background" -+msgstr "" -+ -+#: src/ui/classic/theme.h:69 -+msgid "Menu Selected Item Border" -+msgstr "" -+ -+#: src/ui/classic/theme.h:70 -+msgid "Menu Separator" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:199 -+msgctxt "Key name" -+msgid "Messenger" -+msgstr "" -+ -+#: src/ui/classic/theme.h:199 -+msgid "Metadata" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:218 -+msgctxt "Key name" -+msgid "Microphone Mute" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:130 -+msgctxt "Key name" -+msgid "Monitor Brightness Down" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:128 -+msgctxt "Key name" -+msgid "Monitor Brightness Up" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:235 -+msgctxt "Key name" -+msgid "Muhenkan" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:251 -+msgctxt "Key name" -+msgid "Multiple Candidate" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:203 -+msgctxt "Key name" -+msgid "Music" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:173 -+msgctxt "Key name" -+msgid "My Sites" -+msgstr "" -+ -+#: src/ui/classic/theme.h:191 -+msgid "Name" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:223 -+msgctxt "Key name" -+msgid "New" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:174 -+msgctxt "Key name" -+msgid "News" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:48 -+msgid "Next Candidate" -+msgstr "" -+ -+#: src/ui/classic/theme.h:166 -+msgid "Next Page Button" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:27 -+msgid "No" -+msgstr "" -+ -+#: src/modules/clipboard/clipboard.cpp:355 -+msgid "No clipboard history." -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:28 -+msgid "None" -+msgstr "" -+ -+#: src/ui/classic/theme.h:135 src/ui/classic/theme.h:171 -+msgid "Normal text color" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:182 -+msgid "" -+"Normally Wayland uses 96 as font DPI in combinition with the screen scale " -+"factor. This option allows you to override the font DPI. If the value is 0, " -+"it means this option is disabled." -+msgstr "" -+ -+#: src/ui/kimpanel/kimpanel.cpp:386 -+msgid "Not available" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:733 -+msgid "Note for GNOME Later than 3.6" -+msgstr "" -+ -+#: src/modules/notifications/notifications.conf.in.in:3 -+msgid "Notification" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:54 -+msgctxt "Key name" -+msgid "NumLock" -+msgstr "" -+ -+#: src/modules/clipboard/clipboard.h:48 -+msgid "Number of entries" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:670 -+msgid "" -+"Only emoji support is found. To enable spell checking, you may need to " -+"install spell check data for the language." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:224 -+msgctxt "Key name" -+msgid "Open" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:110 -+msgctxt "Key name" -+msgid "Open URL" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:176 -+msgctxt "Key name" -+msgid "Option" -+msgstr "" -+ -+#: src/ui/classic/theme.h:120 -+msgid "Overlay Clip Margin" -+msgstr "" -+ -+#: src/ui/classic/theme.h:110 -+msgid "Overlay Image" -+msgstr "" -+ -+#: src/ui/classic/theme.h:113 -+msgid "Overlay X offset" -+msgstr "" -+ -+#: src/ui/classic/theme.h:114 -+msgid "Overlay Y offset" -+msgstr "" -+ -+#: src/ui/classic/theme.h:112 -+msgid "Overlay position" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:166 -+msgid "Override Xkb Option" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:991 -+msgid "Owner of DBus name ${1} is ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:999 -+msgid "PID of DBus name ${1} owner is ${2}." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:52 -+msgctxt "Key name" -+msgid "Page Down" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:51 -+msgctxt "Key name" -+msgid "Page Up" -+msgstr "" -+ -+#: src/ui/classic/theme.h:155 -+msgid "Page button vertical alignment" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:37 -+msgid "Page size" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:177 -+msgctxt "Key name" -+msgid "Paste" -+msgstr "" -+ -+#: src/modules/clipboard/clipboard.h:46 -+msgid "Paste Primary" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:44 -+msgctxt "Key name" -+msgid "Pause" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:178 -+msgctxt "Key name" -+msgid "Phone" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:202 -+msgctxt "Key name" -+msgid "Pictures" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:940 -+msgid "Please check ${1} for how to install fcitx5." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:962 -+msgid "" -+"Please check the Configure link of your distribution in ${1} for how to " -+"setup ${2} autostart." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:714 -+msgid "" -+"Please set environment variable ${env_name} to \"${value}\" using the tool " -+"your distribution provides or add ${1} to your ${2}. See ${link}." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:216 -+msgctxt "Key name" -+msgid "Power Down" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:135 -+msgctxt "Key name" -+msgid "Power Off" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:834 -+msgid "Preedit" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:836 -+msgid "Preedit disabled" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:835 -+msgid "Preedit enabled" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:130 src/ui/kimpanel/kimpanel.h:33 -+msgid "Prefer Text Icon" -+msgstr "" -+ -+#: src/modules/spell/spell.h:22 -+msgid "Presage" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:42 -+msgid "Prev Candidate" -+msgstr "" -+ -+#: src/ui/classic/theme.h:165 -+msgid "Prev Page Button" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:252 -+msgctxt "Key name" -+msgid "Previous Candidate" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:228 -+msgctxt "Key name" -+msgid "Print Screen" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:27 -+msgid "Program" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1249 -+msgid "Qt IM module files:" -+msgstr "" -+ -+#: src/modules/quickphrase/quickphrase.conf.in.in:3 -+msgid "Quick Phrase" -+msgstr "" -+ -+#: src/modules/quickphrase/quickphrase.cpp:472 -+msgid "Quick Phrase: " -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:219 -+msgctxt "Key name" -+msgid "Red" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:227 -+msgctxt "Key name" -+msgid "Redo" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:96 -+msgctxt "Key name" -+msgid "Refresh" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:180 -+msgctxt "Key name" -+msgid "Reload" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:179 -+msgctxt "Key name" -+msgid "Reply" -+msgstr "" -+ -+#: src/ui/classic/xcbtraywindow.cpp:39 -+#: src/modules/notificationitem/dbusmenu.cpp:259 -+msgid "Restart" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:43 -+msgctxt "Key name" -+msgid "Return" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:49 -+msgctxt "Key name" -+msgid "Right" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:31 -+msgctxt "Key name" -+msgid "Right Alt" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:35 -+msgctxt "Key name" -+msgid "Right Control" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:39 -+msgctxt "Key name" -+msgid "Right Hyper" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:33 -+msgctxt "Key name" -+msgid "Right Shift" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:37 -+msgctxt "Key name" -+msgid "Right Super" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:237 -+msgctxt "Key name" -+msgid "Romaji" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:181 -+msgctxt "Key name" -+msgid "Rotate Windows" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:183 -+msgctxt "Key name" -+msgid "Rotation KB" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:182 -+msgctxt "Key name" -+msgid "Rotation PB" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:916 -+msgid "Running as root:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:184 -+msgctxt "Key name" -+msgid "Save" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:138 -+msgctxt "Key name" -+msgid "Screensaver" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:90 -+msgctxt "Key name" -+msgid "ScrollLock" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:108 -+msgctxt "Key name" -+msgid "Search" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:233 -+msgctxt "Key name" -+msgid "Select" -+msgstr "" -+ -+#: src/modules/imselector/imselector.cpp:257 -+msgid "Select input method:" -+msgstr "" -+ -+#: src/modules/imselector/imselector.cpp:256 -+msgid "Select local input method:" -+msgstr "" -+ -+#: src/modules/imselector/imselector.conf.in.in:4 -+msgid "Select specific input method via keyboard" -+msgstr "" -+ -+#: src/ui/classic/theme.h:174 -+msgid "Selected Item text color" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:185 -+msgctxt "Key name" -+msgid "Send" -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:519 -+msgid "" -+"Sending keyboard layout configuration to wayland compositor from Fcitx is " -+"not yet supported on current desktop. You may still use Fcitx's internal " -+"layout conversion by adding layout as input method to the input method group." -+msgstr "" -+ -+#: src/ui/classic/theme.h:182 -+msgid "Separator Background" -+msgstr "" -+ -+#: src/ui/classic/theme.h:168 -+msgid "Shadow Margin" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:141 -+msgid "Share Input State" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:561 -+msgctxt "Key name" -+msgid "Shift" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:142 -+msgctxt "Key name" -+msgid "Shop" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:151 -+msgid "Show Input Method Information when changing focus" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:148 -+msgid "Show Input Method Information when switch input method" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:135 -+msgid "Show Layout Name In Icon" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:154 -+msgid "Show compact input method information" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:157 -+msgid "Show first input method information" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:139 -+msgid "" -+"Show layout name in icon if there is more than one active layout. If prefer " -+"text icon is set to true, this option will be ignored." -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:144 -+msgid "Show preedit in application" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:188 -+msgid "Show preedit text when typing password" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:77 -+msgid "" -+"Show preedit when composing, and commit dead key if there is no matching " -+"sequence." -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:64 -+msgid "Skip first input method while enumerating" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:140 -+msgctxt "Key name" -+msgid "Sleep" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:40 -+msgctxt "Key name" -+msgid "Space" -+msgstr "" -+ -+#: src/ui/classic/theme.h:176 -+msgid "Spacing" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:79 src/modules/spell/spell.conf.in.in:3 -+msgid "Spell" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:186 -+msgctxt "Key name" -+msgid "Spellchecker" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:187 -+msgctxt "Key name" -+msgid "Split Screen" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:163 -+msgctxt "Key name" -+msgid "Spreadsheet" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:109 -+msgctxt "Key name" -+msgid "Standby" -+msgstr "" -+ -+#: data/org.fcitx.Fcitx5.desktop.in.in:5 -+msgid "Start Input Method" -+msgstr "" -+ -+#: src/modules/notificationitem/notificationitem.conf.in.in:3 -+msgid "Status Notifier" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:95 -+msgctxt "Key name" -+msgid "Stop" -+msgstr "" -+ -+#: src/ui/classic/theme.h:184 -+msgid "Sub Menu" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:210 -+msgctxt "Key name" -+msgid "Subtitle" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 -+msgid "Super" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:562 -+msgctxt "Key name" -+msgid "Super" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:188 -+msgctxt "Key name" -+msgid "Support" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:217 -+msgctxt "Key name" -+msgid "Suspend" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:447 src/lib/fcitx/instance.cpp:673 -+#: src/modules/xcb/xcbconnection.cpp:522 -+msgid "Switch group" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:448 src/modules/xcb/xcbconnection.cpp:523 -+#, c++-format -+msgid "Switch group to {0}" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:674 -+#, c++-format -+msgid "Switched group to {0}" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:789 -+msgid "System Info:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:232 -+msgctxt "Key name" -+msgid "System Request" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:41 -+msgctxt "Key name" -+msgid "Tab" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:189 -+msgctxt "Key name" -+msgid "Task Panel" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:44 -+msgid "Temporally switch between first and current Input Method" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:190 -+msgctxt "Key name" -+msgid "Terminal" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1786 -+#, sh-format -+msgid "" -+"The environment variable checked by this script only shows the environment " -+"under current shell. It is still possible that you did not set the " -+"environment to the whole graphic desktop session. You may inspect the actual " -+"environment variable of a certain process by using `xargs -0 -L1 /proc/$PID/" -+"environ` for a certain process that you find not working." -+msgstr "" -+ -+#: src/modules/imselector/imselector.h:40 -+#: src/modules/imselector/imselector.h:50 -+msgid "The n-th hotkey in the list selects the n-th input method." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:895 -+msgid "The script is run as ${1} (${2})." -+msgstr "" -+ -+#: src/ui/classic/classicui.h:155 -+msgid "Theme" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:101 -+msgid "This is only effective when the tray icon is xembed." -+msgstr "" -+ -+#: src/ui/classic/theme.h:93 src/ui/classic/theme.h:101 -+msgid "This option is only effective if image is not set." -+msgstr "" -+ -+#: src/ui/classic/classicui.h:194 -+msgid "This option require support from wayland compositor." -+msgstr "" -+ -+#: src/ui/classic/classicui.h:173 -+msgid "This option will be always disabled on XWayland." -+msgstr "" -+ -+#: src/ui/classic/theme.h:109 -+msgid "This value should be less than any of margin value." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1805 -+msgid "" -+"Though such information can be helpful to developers for diagnostic purpose, " -+"please double check and remove as necessary before posting it online " -+"publicly." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:212 -+msgctxt "Key name" -+msgid "Time" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:750 -+#, sh-format -+msgid "" -+"To see some application specific problems you may have when using xim, check " -+"${link1}. For other more general problems of using XIM including application " -+"freezing, see ${link2}." -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:132 -+msgid "Toggle embedded preedit" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:191 -+msgctxt "Key name" -+msgid "Tools" -+msgstr "" -+ -+#: src/ui/classic/theme.h:48 -+msgid "Top" -+msgstr "" -+ -+#: src/ui/classic/theme.h:35 -+msgid "Top Center" -+msgstr "" -+ -+#: src/ui/classic/theme.h:35 -+msgid "Top Left" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:215 -+msgctxt "Key name" -+msgid "Top Menu" -+msgstr "" -+ -+#: src/ui/classic/theme.h:36 -+msgid "Top Right" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:268 -+msgctxt "Key name" -+msgid "Touchpad Off" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:267 -+msgctxt "Key name" -+msgid "Touchpad On" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:266 -+msgctxt "Key name" -+msgid "Touchpad Toggle" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:244 -+msgctxt "Key name" -+msgid "Touroku" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:192 -+msgctxt "Key name" -+msgid "Travel" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:124 -+msgid "Tray Font" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:126 -+msgid "Tray Label Outline Color" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:129 -+msgid "Tray Label Text Color" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:34 -+msgid "Trigger Input Method" -+msgstr "" -+ -+#: src/modules/imselector/imselector.h:25 -+#: src/modules/quickphrase/quickphrase.h:36 src/modules/unicode/unicode.h:31 -+#: src/modules/clipboard/clipboard.h:42 -+msgid "Trigger Key" -+msgstr "" -+ -+#: src/modules/imselector/imselector.h:29 -+msgid "Trigger Key for only current input context" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:62 -+msgid "Trigger hint mode" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:67 -+msgid "Trigger hint mode for one time" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:82 -+msgid "Type special characters with long press" -+msgstr "" -+ -+#: src/modules/unicode/unicode.h:36 -+msgid "Type unicode in Hex number" -+msgstr "" -+ -+#: data/org.fcitx.Fcitx5.metainfo.xml.in:22 -+msgid "Typing with Fcitx and Kimpanel" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1011 -+msgid "Unable to find a program to check dbus." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:226 -+msgctxt "Key name" -+msgid "Undo" -+msgstr "" -+ -+#: src/modules/unicode/unicode.conf.in.in:3 -+msgid "Unicode" -+msgstr "" -+ -+#: src/modules/unicode/unicode.cpp:456 -+msgid "Unicode: " -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:48 -+msgctxt "Key name" -+msgid "Up" -+msgstr "" -+ -+#: src/frontend/xim/xim.h:33 -+msgid "Use On The Spot Style (Needs restarting)" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:169 -+msgid "Use Per Screen DPI on X11" -+msgstr "" -+ -+#: src/ui/classic/theme.h:151 -+msgid "Use all horizontal space for highlight when it is vertical list" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:146 -+msgid "Use input method language to display text" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:116 -+msgid "Use mouse wheel to go to prev or next page" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:73 -+msgid "Use new compose behavior" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1677 -+msgid "User Interface:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:986 -+msgid "Using ${1} to check dbus." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:256 -+msgid "" -+"Using ${1} to check the actual im module to be used under current " -+"environment:" -+msgstr "" -+ -+#: src/ui/classic/theme.h:192 -+msgid "Version" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1405 data/fcitx5-diagnose.sh:1489 -+msgid "Version Line:" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:114 -+msgid "Vertical Candidate List" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:193 -+msgctxt "Key name" -+msgid "Video" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:214 -+msgctxt "Key name" -+msgid "View" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:97 -+msgctxt "Key name" -+msgid "Volume Down" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:98 -+msgctxt "Key name" -+msgid "Volume Mute" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:99 -+msgctxt "Key name" -+msgid "Volume Up" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:139 -+msgctxt "Key name" -+msgid "WWW" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:136 -+msgctxt "Key name" -+msgid "Wake Up" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1804 -+msgid "" -+"Warning: the output of fcitx5-diagnose contains sensitive information, " -+"including the distribution name, kernel version, name of currently running " -+"programs, etc." -+msgstr "" -+ -+#: src/modules/wayland/wayland.conf.in.in:3 -+msgid "Wayland" -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:449 -+msgid "Wayland Diagnose" -+msgstr "" -+ -+#: src/frontend/waylandim/waylandim.conf.in.in:3 -+msgid "Wayland Input method frontend" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:200 -+msgctxt "Key name" -+msgid "WebCam" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:170 -+msgid "" -+"Whether to override the xkb option from display server. It will not affect " -+"the xkb option send to display, but just the xkb options for custom xkb " -+"layout." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:926 -+msgid "Why is it bad to run as root" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:206 -+msgctxt "Key name" -+msgid "Wireless" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:194 -+msgctxt "Key name" -+msgid "Word Processor" -+msgstr "" -+ -+#: src/frontend/xim/xim.conf.in.in:3 -+msgid "X Input Method Frontend" -+msgstr "" -+ -+#: src/modules/xcb/xcb.conf.in.in:3 -+msgid "XCB" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:825 -+msgid "XDG SESSION TYPE:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:195 -+msgctxt "Key name" -+msgid "XFer" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1188 -+msgid "XIM encoding:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1183 -+msgid "XIM for Emacs:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1159 -+msgid "XIM_SERVERS on root window:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1136 -+msgid "XMODIFIERS is not set" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1157 -+msgid "Xim Server Name from Environment variable is ${1}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1169 -+msgid "Xim server name is the same with that set in the environment variable." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1171 -+msgid "" -+"Xim server name: \"${1}\" is different from that set in the environment " -+"variable: \"${2}\"." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:221 -+msgctxt "Key name" -+msgid "Yellow" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:924 -+msgid "" -+"You are probably logging in as ${1} or using ${2} to run this script. This " -+"either means you have security problems or the result of this script may not " -+"be accurate. See ${3} or ${4} for more information." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:919 -+msgid "" -+"You are probably using ${1} to run this script. This means the result of " -+"this script may not be accurate. See ${2} for more information." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1213 -+msgid "You are using xim in ${1} programs." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1218 -+msgid "You may have trouble using fcitx in ${1} programs." -+msgstr "" -+ -+#: data/fcitx5-configtool.sh:134 -+msgid "" -+"You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be " -+"found. Now it will open config directory." -+msgstr "" -+ -+#: data/fcitx5-configtool.sh:131 -+msgid "" -+"You're currently running KDE, but KCModule for fcitx couldn't be found, the " -+"package name of this KCModule is usually kcm-fcitx or kde-config-fcitx. Now " -+"it will open config directory." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1185 -+msgid "" -+"Your LC_CTYPE is set to ${1} instead of one of zh, ja, ko. You may not be " -+"able to use input method in emacs because of an really old emacs bug that " -+"upstream refuse to fix for years." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1190 -+msgid "" -+"Your LC_CTYPE is set to ${1} whose encoding is not UTF-8. You may have " -+"trouble committing strings using XIM." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:241 -+msgctxt "Key name" -+msgid "Zenkaku" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:243 -+msgctxt "Key name" -+msgid "Zenkaku Hankaku" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:196 -+msgctxt "Key name" -+msgid "Zoom In" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:197 -+msgctxt "Key name" -+msgid "Zoom Out" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:936 -+msgid "executable:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:757 -+msgid "here" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:167 -+msgctxt "Key name" -+msgid "iTouch" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:950 -+msgid "process:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:921 data/fcitx5-diagnose.sh:927 -+msgid "sudo environment variables" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:946 -+msgid "version:" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:292 -+#, c++-format -+msgid "{0} (Not Available)" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:405 -+#, c++-format -+msgid "{0} (Not available)" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:402 -+#, c++-format -+msgid "{0} ({1})" -+msgstr "" -diff --git a/po/ug.po b/po/ug.po -new file mode 100644 -index 0000000..7ee8982 ---- /dev/null -+++ b/po/ug.po -@@ -0,0 +1,2942 @@ -+# SOME DESCRIPTIVE TITLE. -+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -+# This file is distributed under the same license as the fcitx5 package. -+# -+# Translators: -+# wwj402 <wwj402@gmail.com>, 2017 -+# rocka, 2023 -+# Lau YeeYu, 2023 -+# csslayer <wengxt@gmail.com>, 2023 -+# -+msgid "" -+msgstr "" -+"Project-Id-Version: fcitx5\n" -+"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" -+"POT-Creation-Date: 2023-10-19 05:51+0000\n" -+"PO-Revision-Date: 2017-11-23 04:14+0000\n" -+"Last-Translator: Automatically generated\n" -+"Language-Team: none\n" -+"Language: ug\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"Plural-Forms: nplurals=2; plural=n != 1;\n" -+ -+#: data/fcitx5-diagnose.sh:900 -+msgid "${1} Environment Variables:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:886 -+msgid "${1} Settings Directory:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:960 -+msgid "${1} is not running." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:909 -+msgid "${1} is not set." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:906 -+msgid "${1} is set to ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:565 -+msgid "${1} not found." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:977 -+msgid "${1} works properly." -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:407 -+msgid "(Not available)" -+msgstr "" -+ -+#: src/modules/unicode/unicode.cpp:458 -+msgid "(Type to search unicode by code or description)" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:707 -+msgid "/Beginner%27s_Guide" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:754 -+msgid "/Hall_of_Shame_for_Linux_IME_Support" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:718 -+msgid "/Input_method_related_environment_variables" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:734 -+msgid "/Note_for_GNOME_Later_than_3.6" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:758 -+msgid "/XIM" -+msgstr "" -+ -+#: src/modules/unicode/charselectdata.cpp:215 -+msgid "<Low Surrogate>" -+msgstr "" -+ -+#: src/modules/unicode/charselectdata.cpp:211 -+msgid "<Non Private Use High Surrogate>" -+msgstr "" -+ -+#: src/modules/unicode/charselectdata.cpp:213 -+msgid "<Private Use High Surrogate>" -+msgstr "" -+ -+#: src/modules/unicode/charselectdata.cpp:217 -+msgid "<Private Use>" -+msgstr "" -+ -+#: src/modules/unicode/charselectdata.cpp:247 -+msgid "<not assigned>" -+msgstr "" -+ -+#: src/ui/virtualkeyboard/virtualkeyboard.conf.in.in:4 -+msgid "A virtual keyboard backend based on DBus" -+msgstr "" -+ -+#: src/ui/classic/theme.h:204 -+msgid "Accent Colors" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:82 -+msgid "Activate Input Method" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:138 -+msgid "Active By Default" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:144 -+msgctxt "Key name" -+msgid "Add Favorite" -+msgstr "" -+ -+#: src/modules/unicode/unicode.conf.in.in:4 -+msgid "Add Unicode Typing Support" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1565 -+msgid "Addon Config Dir:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1650 -+msgid "Addon Libraries:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1593 -+msgid "Addon List:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:146 -+msgctxt "Key name" -+msgid "Adjust Brightness" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:26 -+msgid "All" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1367 -+msgid "All found Gtk ${1} immodule files exist." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1676 -+msgid "All libraries for all addons are found." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:854 -+msgid "All locales:" -+msgstr "" -+ -+#: src/modules/xcb/xcbmodule.h:30 -+msgid "Allow Overriding System XKB Settings" -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.h:34 -+msgid "Allow Overriding System XKB Settings (Only support KDE 5)" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:185 -+msgid "Allow input method in the password field" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:29 -+msgid "Alt" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:560 -+msgctxt "Key name" -+msgid "Alt" -+msgstr "" -+ -+#: src/modules/xcb/xcbmodule.h:33 -+msgid "Always set layout to be only group layout" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:151 -+msgctxt "Key name" -+msgid "Application Left" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:152 -+msgctxt "Key name" -+msgid "Application Right" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:87 -+msgid "Applications disabled for long press" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:211 -+msgctxt "Key name" -+msgid "Audio Cycle Track" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:209 -+msgctxt "Key name" -+msgid "Audio Random Play" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:208 -+msgctxt "Key name" -+msgid "Audio Repeat" -+msgstr "" -+ -+#: src/ui/classic/theme.h:193 -+msgid "Author" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:198 -+msgctxt "Key name" -+msgid "Away" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:93 -+msgctxt "Key name" -+msgid "Back" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:150 -+msgctxt "Key name" -+msgid "Back Forward" -+msgstr "" -+ -+#: src/modules/spell/spell.h:38 -+msgid "Backends" -+msgstr "" -+ -+#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 -+msgid "Background" -+msgstr "" -+ -+#: src/ui/classic/theme.h:85 -+msgid "Background Image" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:42 -+msgctxt "Key name" -+msgid "Backspace" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:827 -+msgid "Bash Version:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:204 -+msgctxt "Key name" -+msgid "Battery" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:706 -+msgid "Beginner's Guide" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:202 -+msgid "Behavior" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:222 -+msgctxt "Key name" -+msgid "Blue" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:205 -+msgctxt "Key name" -+msgid "Bluetooth" -+msgstr "" -+ -+#: src/ui/classic/theme.h:148 -+msgid "Blur Margin" -+msgstr "" -+ -+#: src/ui/classic/theme.h:147 -+msgid "Blur mask" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:153 -+msgctxt "Key name" -+msgid "Book" -+msgstr "" -+ -+#: src/ui/classic/theme.h:97 -+msgid "Border Color" -+msgstr "" -+ -+#: src/ui/classic/theme.h:105 -+msgid "Border width" -+msgstr "" -+ -+#: src/ui/classic/theme.h:50 -+msgid "Bottom" -+msgstr "" -+ -+#: src/ui/classic/theme.h:38 -+msgid "Bottom Center" -+msgstr "" -+ -+#: src/ui/classic/theme.h:38 -+msgid "Bottom Left" -+msgstr "" -+ -+#: src/ui/classic/theme.h:39 -+msgid "Bottom Right" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:164 -+msgctxt "Key name" -+msgid "Browser" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:154 -+msgctxt "Key name" -+msgid "CD" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:155 -+msgctxt "Key name" -+msgid "Calculator" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:264 -+msgctxt "Key name" -+msgid "Cancel" -+msgstr "" -+ -+#: src/im/keyboard/longpress.h:19 -+msgid "Candidates" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:975 -+msgid "Cannot connect to ${1} correctly." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:820 -+msgid "Cannot determine desktop environment." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1584 -+msgid "Cannot find ${1} addon config directory." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1099 -+msgid "Cannot find ${1} executable!" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1517 -+msgid "Cannot find ${1} im module for gtk ${2} in cache." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1434 -+msgid "Cannot find ${1} im module for gtk ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1288 data/fcitx5-diagnose.sh:1293 -+#: data/fcitx5-diagnose.sh:1298 -+msgid "Cannot find ${1} input method module for ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1428 -+msgid "Cannot find ${2} for gtk ${1}" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:995 -+msgid "Cannot find DBus name ${1} owner." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1109 -+msgid "Cannot find a GUI config tool, please install one of ${1}, or ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1679 -+msgid "Cannot find enabled ${1} user interface!" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:938 -+msgid "Cannot find fcitx5 executable!" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1658 -+msgid "Cannot find file ${1} of addon ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1668 -+msgid "Cannot find following required libraries for ${1} of addon ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1512 -+msgid "Cannot find immodules cache for gtk ${1}" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1698 -+msgid "" -+"Cannot find kimpanel dbus interface or enabled non-kimpanel user interface." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1003 -+msgid "Cannot find pid of DBus name ${1} owner." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1175 -+msgid "Cannot find xim_server on root window." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1149 -+msgid "Cannot interpret XMODIFIERS: ${1}." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:53 -+msgctxt "Key name" -+msgid "CapsLock" -+msgstr "" -+ -+#: src/ui/classic/theme.h:37 src/ui/classic/theme.h:49 -+msgid "Center" -+msgstr "" -+ -+#: src/ui/classic/theme.h:36 -+msgid "Center Left" -+msgstr "" -+ -+#: src/ui/classic/theme.h:37 -+msgid "Center Right" -+msgstr "" -+ -+#: data/fcitx5-configtool.desktop.in.in:5 -+msgid "Change Fcitx 5 Configuration" -+msgstr "" -+ -+#: src/ui/classic/theme.h:183 -+msgid "Check box" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:56 src/modules/quickphrase/quickphrase.h:41 -+msgid "Choose key modifier" -+msgstr "" -+ -+#: src/ui/classic/classicui.conf.in.in:3 -+msgid "Classic User Interface" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:156 -+msgctxt "Key name" -+msgid "Clear" -+msgstr "" -+ -+#: src/ui/classic/theme.h:131 -+msgid "Click Margin" -+msgstr "" -+ -+#: src/modules/clipboard/clipboard.conf.in.in:3 -+msgid "Clipboard" -+msgstr "" -+ -+#: src/modules/clipboard/clipboard.cpp:353 -+msgid "Clipboard (Press BackSpace/Delete to clear history):" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:157 -+msgctxt "Key name" -+msgid "Close" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:250 -+msgctxt "Key name" -+msgid "Code input" -+msgstr "" -+ -+#: src/ui/classic/theme.h:89 -+msgid "Color" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:148 -+msgctxt "Key name" -+msgid "Community" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:685 -+msgid "Completion" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:676 -+msgid "Completion is disabled." -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:679 -+msgid "Completion is enabled temporarily." -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:681 -+msgid "Completion is enabled." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1051 -+msgid "Config GUI for gtk${1} not found." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1047 -+msgid "Config GUI for gtk${1}:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1081 -+msgid "Config GUI for kde:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1070 -+msgid "Config GUI for qt not found." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1068 -+msgid "Config GUI for qt:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1097 -+msgid "Config Tool Wrapper:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1793 -+msgid "Configuration:" -+msgstr "" -+ -+#: src/ui/classic/xcbtraywindow.cpp:38 -+#: src/modules/notificationitem/dbusmenu.cpp:251 -+msgid "Configure" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 -+msgid "Control" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:559 -+msgctxt "Key name" -+msgid "Control" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:158 -+msgctxt "Key name" -+msgid "Copy" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:888 -+msgid "Current ${1} settings directory is ${2} (${3})." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:856 -+msgid "Current locale:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:894 -+msgid "Current user:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:882 -+msgid "Current value of ${1} is ${2} (${3})." -+msgstr "" -+ -+#: src/modules/spell/spell.h:22 -+msgid "Custom" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:175 -+msgid "Custom Xkb Option" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:159 -+msgctxt "Key name" -+msgid "Cut" -+msgstr "" -+ -+#: src/modules/dbus/dbus.conf.in.in:3 -+msgid "DBus" -+msgstr "" -+ -+#: src/frontend/dbusfrontend/dbusfrontend.conf.in.in:3 -+msgid "DBus Frontend" -+msgstr "" -+ -+#: src/ui/virtualkeyboard/virtualkeyboard.conf.in.in:3 -+msgid "DBus Virtual Keyboard" -+msgstr "" -+ -+#: src/modules/notificationitem/notificationitem.conf.in.in:4 -+msgid "DBus based new Freedesktop.org tray icon" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:983 -+msgid "DBus interface:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:161 -+msgctxt "Key name" -+msgid "DOS" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:158 -+msgid "Dark Theme" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:91 -+msgid "Deactivate Input Method" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1007 -+msgid "Debug information from dbus:" -+msgstr "" -+ -+#: src/lib/fcitx/inputmethodmanager.cpp:138 src/lib/fcitx/instance.cpp:354 -+#: src/ui/classic/themes/default/theme.conf.in:3 -+msgid "Default" -+msgstr "" -+ -+#: src/ui/classic/themes/default-dark/theme-dark.conf.in:3 -+msgid "Default Dark" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:127 -+msgid "Default Next Candidate" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:111 -+msgid "Default Next page" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:121 -+msgid "Default Previous Candidate" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:99 -+msgid "Default Previous page" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:159 -+msgid "Default page size" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:230 -+msgctxt "Key name" -+msgid "Delete" -+msgstr "" -+ -+#: src/ui/classic/theme.h:195 -+msgid "Description" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:817 -+msgid "Desktop Environment:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:822 -+msgid "Desktop environment is ${1}." -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:476 -+msgid "" -+"Detect GTK_IM_MODULE and QT_IM_MODULE being set and Wayland Input method " -+"frontend is working. It is recommended to unset GTK_IM_MODULE and " -+"QT_IM_MODULE and use Wayland input method frontend instead. For more details " -+"see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma" -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:504 -+msgid "" -+"Detect GTK_IM_MODULE being set and Wayland Input method frontend is working. " -+"It is recommended to unset GTK_IM_MODULE and use Wayland input method " -+"frontend instead." -+msgstr "" -+ -+#: src/frontend/waylandim/waylandim.h:27 -+msgid "Detect current running application (Need restart)" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:868 -+msgid "Directories:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:160 -+msgctxt "Key name" -+msgid "Display" -+msgstr "" -+ -+#: src/modules/notifications/notifications.cpp:204 -+msgid "Do not show again" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:162 -+msgctxt "Key name" -+msgid "Documents" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:50 -+msgctxt "Key name" -+msgid "Down" -+msgstr "" -+ -+#: src/modules/quickphrase/quickphrase.h:47 -+msgid "Editor" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:248 -+msgctxt "Key name" -+msgid "Eisu Shift" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:249 -+msgctxt "Key name" -+msgid "Eisu toggle" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:137 -+msgctxt "Key name" -+msgid "Eject" -+msgstr "" -+ -+#: src/modules/emoji/emoji.conf.in.in:3 -+msgid "Emoji" -+msgstr "" -+ -+#: src/im/keyboard/longpress.h:17 -+msgid "Enable" -+msgstr "" -+ -+#: src/ui/classic/theme.h:145 -+msgid "Enable Blur on KWin" -+msgstr "" -+ -+#: src/modules/quickphrase/quickphrase.h:43 -+msgid "Enable Spell check" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:51 -+msgid "Enable emoji in hint" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:54 -+msgid "Enable emoji in quickphrase" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:190 -+msgid "Enable fractional scale under Wayland" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:59 -+msgid "Enable hint by default" -+msgstr "" -+ -+#: src/modules/spell/spell.h:23 -+msgid "Enchant" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:46 -+msgctxt "Key name" -+msgid "End" -+msgstr "" -+ -+#: src/im/keyboard/longpress.h:26 -+msgid "Entries" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:58 -+msgid "Enumerate Input Method Backward" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:51 -+msgid "Enumerate Input Method Forward" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:75 -+msgid "Enumerate Input Method Group Backward" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:68 -+msgid "Enumerate Input Method Group Forward" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:40 -+msgid "Enumerate when press trigger key repeatedly" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1127 -+msgid "" -+"Environment variable ${1} is \"${2}\" instead of \"${3}\". Please check if " -+"you have exported it incorrectly in any of your init files." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:874 -+msgid "Environment variable ${1} is not set." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1121 -+msgid "Environment variable ${1} is set to \"${2}\" correctly." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:878 -+msgid "Environment variable ${1} is set to ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:832 -+msgid "Environment:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:860 -+msgid "Error occurs when running ${1}. Please check your locale settings." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:231 -+msgctxt "Key name" -+msgid "Escape" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:265 -+msgctxt "Key name" -+msgid "Execute" -+msgstr "" -+ -+#: src/ui/classic/xcbtraywindow.cpp:40 -+#: src/modules/notificationitem/dbusmenu.cpp:265 -+msgid "Exit" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1506 -+msgid "Failed to find ${1} in immodule cache at ${2}" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1422 -+msgid "Failed to find ${1} in the output of ${2}" -+msgstr "" -+ -+#: src/modules/quickphrase/quickphrase.h:45 -+msgid "Fallback Spell check language" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:107 -+msgctxt "Key name" -+msgid "Favorites" -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:449 -+msgid "Fcitx" -+msgstr "" -+ -+#: data/org.fcitx.Fcitx5.desktop.in.in:3 -+#: data/org.fcitx.Fcitx5.metainfo.xml.in:6 -+msgid "Fcitx 5" -+msgstr "" -+ -+#: data/fcitx5-configtool.desktop.in.in:3 -+msgid "Fcitx 5 Configuration" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1564 -+msgid "Fcitx Addons:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1096 -+msgid "Fcitx Configure UI:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:935 -+msgid "Fcitx State:" -+msgstr "" -+ -+#: data/org.fcitx.Fcitx5.metainfo.xml.in:9 -+msgid "" -+"Fcitx is an input method framework. It can help you to type your own " -+"language. It also features variant choice of addons that improve your typing " -+"experience." -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:463 -+msgid "" -+"Fcitx should be launched by KWin under KDE Wayland in order to use Wayland " -+"input method frontend. This can improve the experience when using Fcitx on " -+"Wayland. To configure this, you need to go to \"System Settings\" -> " -+"\"Virtual keyboard\" and select \"Fcitx 5\" from it. You may also need to " -+"disable tools that launches input method, such as imsettings on Fedora, or " -+"im-config on Debian/Ubuntu. For more details see https://fcitx-im.org/wiki/" -+"Using_Fcitx_5_on_Wayland#KDE_Plasma" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:949 -+msgid "Fcitx version: ${1}" -+msgstr "" -+ -+#: src/frontend/fcitx4frontend/fcitx4frontend.conf.in.in:3 -+msgid "Fcitx4 Frontend" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:147 -+msgctxt "Key name" -+msgid "Finance" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:225 -+msgctxt "Key name" -+msgid "Find" -+msgstr "" -+ -+#: src/ui/classic/theme.h:49 -+msgid "First Candidate" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:164 -+msgid "Follow system accent color if it is supported by theme and desktop" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:160 -+msgid "Follow system light/dark color scheme" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1284 -+msgid "" -+"Following error may not be accurate because guessing Qt version from path " -+"depends on how your distribution packages Qt. It is not a critical error if " -+"you do not use any Qt application with certain version of Qt or you are " -+"using text-input support by Qt under Wayland." -+msgstr "" -+ -+#: src/ui/classic/classicui.h:120 -+msgid "Font" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:150 -+msgid "" -+"For example, display character with Chinese variant when using Pinyin and " -+"Japanese variant when using Anthy. The font configuration needs to support " -+"this to use this feature." -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:530 -+msgid "For more details see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:178 -+msgid "Force font DPI on Wayland" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:94 -+msgctxt "Key name" -+msgid "Forward" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1276 -+msgid "Found ${1} ${2} module: ${3}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:969 -+msgid "Found ${1} ${2} process:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:967 -+msgid "Found ${1} ${2} processes:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1587 -+msgid "Found ${1} addon config directory: ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:944 data/fcitx5-diagnose.sh:1060 -+#: data/fcitx5-diagnose.sh:1073 data/fcitx5-diagnose.sh:1101 -+msgid "Found ${1} at ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1640 -+msgid "Found ${1} disabled addons:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1631 -+msgid "Found ${1} enabled addons:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1681 -+msgid "Found ${1} enabled user interface addons:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1416 data/fcitx5-diagnose.sh:1500 -+msgid "Found ${1} im modules for gtk ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1087 -+msgid "Found ${1} kcm module." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1408 -+msgid "Found ${2} for unknown gtk version at ${1}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1400 -+msgid "Found ${3} for gtk ${1} at ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1263 data/fcitx5-diagnose.sh:1268 -+msgid "Found ${3} im module for ${2}: ${1}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1493 -+msgid "Found immodule cache for unknown gtk version at ${1}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1485 -+msgid "Found immodules cache for gtk ${1} at ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1279 -+msgid "Found unknown ${1} qt module: ${2}." -+msgstr "" -+ -+#: src/modules/notifications/notifications.conf.in.in:4 -+msgid "Freedesktop.org Notification Support" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1785 -+msgid "Frontends setup:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:165 -+msgctxt "Key name" -+msgid "Game" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:166 -+msgctxt "Key name" -+msgid "Go" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:220 -+msgctxt "Key name" -+msgid "Green" -+msgstr "" -+ -+#: src/ui/classic/xcbtraywindow.cpp:36 -+#: src/modules/notificationitem/dbusmenu.cpp:241 -+msgid "Group" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:411 -+#, c++-format -+msgid "Group {0}: {1}" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:356 -+#, c++-format -+msgid "Group {}" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1361 -+msgid "Gtk ${1} immodule file ${2} does not exist." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1545 -+msgid "Gtk IM module cache:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1550 -+msgid "Gtk IM module files:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:753 -+msgid "Hall of Shame for Linux IME Support" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:253 -+msgctxt "Key name" -+msgid "Hangul" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:260 -+msgctxt "Key name" -+msgid "Hangul Banja" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:255 -+msgctxt "Key name" -+msgid "Hangul End" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:256 -+msgctxt "Key name" -+msgid "Hangul Hanja" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:257 -+msgctxt "Key name" -+msgid "Hangul Jamo" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:259 -+msgctxt "Key name" -+msgid "Hangul Jeonja" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:262 -+msgctxt "Key name" -+msgid "Hangul PostHanja" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:261 -+msgctxt "Key name" -+msgid "Hangul PreHanja" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:258 -+msgctxt "Key name" -+msgid "Hangul Romaja" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:263 -+msgctxt "Key name" -+msgid "Hangul Special" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:254 -+msgctxt "Key name" -+msgid "Hangul Start" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:242 -+msgctxt "Key name" -+msgid "Hankaku" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:92 -+msgctxt "Key name" -+msgid "Help" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:236 -+msgctxt "Key name" -+msgid "Henkan" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:213 -+msgctxt "Key name" -+msgid "Hibernate" -+msgstr "" -+ -+#: src/modules/notifications/notifications.h:28 -+msgid "Hidden Notifications" -+msgstr "" -+ -+#: src/ui/classic/theme.h:116 -+msgid "Hide overlay if size does not fit" -+msgstr "" -+ -+#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:180 -+msgid "Highlight Background" -+msgstr "" -+ -+#: src/ui/classic/theme.h:140 -+msgid "Highlight Background color" -+msgstr "" -+ -+#: src/ui/classic/theme.h:143 -+msgid "Highlight Candidate Color" -+msgstr "" -+ -+#: src/ui/classic/theme.h:126 -+msgid "Highlight Click Margin" -+msgstr "" -+ -+#: src/ui/classic/theme.h:138 -+msgid "Highlight text color" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:238 -+msgctxt "Key name" -+msgid "Hiragana" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:240 -+msgctxt "Key name" -+msgid "Hiragana Katakana" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:143 -+msgctxt "Key name" -+msgid "History" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:45 -+msgctxt "Key name" -+msgid "Home" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:175 -+msgctxt "Key name" -+msgid "Home Office" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:106 -+msgctxt "Key name" -+msgid "Home Page" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:870 -+msgid "Home:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:145 -+msgctxt "Key name" -+msgid "Hot Links" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:200 -+msgid "Hotkey" -+msgstr "" -+ -+#: src/modules/imselector/imselector.h:35 -+msgid "Hotkey for switching to the N-th input method" -+msgstr "" -+ -+#: src/modules/imselector/imselector.h:44 -+msgid "" -+"Hotkey for switching to the N-th input method for only current input context" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:564 -+msgctxt "Key name" -+msgid "Hyper" -+msgstr "" -+ -+#: src/frontend/ibusfrontend/ibusfrontend.conf.in.in:3 -+msgid "IBus Frontend" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:196 -+msgid "" -+"If value is 0, the user data may only be saved when fcitx quits (e.g. " -+"logout)." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:742 -+msgid "" -+"If you are using ${1}, you may want to uninstall ${2} or remove ${3} in " -+"order to use any input method other than ${2}. See ${link} for more detail " -+"as well as alternative solutions." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:740 -+msgid "" -+"If you are using ${1}, you may want to uninstall ${2}, remove ${3} or use " -+"the command ${g36_disable_ibus} to disable IBus integration in order to use " -+"any input method other than ${2}. See ${link} for more detail." -+msgstr "" -+ -+#: src/ui/classic/theme.h:129 -+msgid "Image" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:684 src/lib/fcitx/instance.cpp:446 -+#: src/lib/fcitx/instance.cpp:672 src/lib/fcitx/instance.cpp:834 -+#: src/modules/notificationitem/notificationitem.cpp:147 -+#: src/modules/notificationitem/notificationitem.cpp:235 -+#: src/modules/xcb/xcbconnection.cpp:521 data/org.fcitx.Fcitx5.desktop.in.in:4 -+#: data/org.fcitx.Fcitx5.metainfo.xml.in:7 -+msgid "Input Method" -+msgstr "" -+ -+#: data/fcitx5-configtool.desktop.in.in:4 -+msgid "Input Method Configuration" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:717 -+msgid "Input Method Related Environment Variables: " -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1704 -+msgid "Input Methods:" -+msgstr "" -+ -+#: src/ui/classic/theme.h:201 -+msgid "Input Panel" -+msgstr "" -+ -+#: src/ui/classic/theme.h:65 -+msgid "Input Panel Background" -+msgstr "" -+ -+#: src/ui/classic/theme.h:65 -+msgid "Input Panel Border" -+msgstr "" -+ -+#: src/ui/classic/theme.h:67 -+msgid "Input Panel Highlight" -+msgstr "" -+ -+#: src/ui/classic/theme.h:66 -+msgid "Input Panel Highlight Candidate Background" -+msgstr "" -+ -+#: src/ui/classic/theme.h:67 -+msgid "Input Panel Highlight Candidate Border" -+msgstr "" -+ -+#: src/modules/imselector/imselector.conf.in.in:3 -+msgid "Input method selector" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:103 src/lib/fcitx/globalconfig.cpp:115 -+msgid "" -+"Input methods may have different setup in their own configuration. This is " -+"commonly used by modules like clipboard or quickphrase." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:229 -+msgctxt "Key name" -+msgid "Insert" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:192 -+msgid "Interval of saving user data in minutes" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1599 -+msgid "Invalid addon config file ${1}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1205 -+msgid "" -+"It is OK to use ${1} built-in Wayland im module if your compositor fully " -+"supports text-input protocol used by ${1}." -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:488 -+msgid "" -+"It is recommended to install Input Method Panel GNOME Shell Extensions to " -+"provide the input method popup. https://extensions.gnome.org/extension/261/" -+"kimpanel/ Otherwise you may not be able to see input method popup when " -+"typing in GNOME Shell's activities search box. For more details see https://" -+"fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#GNOME" -+msgstr "" -+ -+#: src/ui/kimpanel/kimpanel.conf.in.in:3 -+msgid "KDE Input Method Panel" -+msgstr "" -+ -+#: src/ui/classic/classicui.cpp:260 -+msgid "KDE Plasma (Experimental)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:246 -+msgctxt "Key name" -+msgid "Kana Lock" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:247 -+msgctxt "Key name" -+msgid "Kana Shift" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:234 -+msgctxt "Key name" -+msgid "Kanji" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:239 -+msgctxt "Key name" -+msgid "Katakana" -+msgstr "" -+ -+#: src/im/keyboard/longpress.h:16 -+msgid "Key" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:315 src/im/keyboard/keyboard.conf.in.in:3 -+msgid "Keyboard" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:231 -+#, c++-format -+msgid "Keyboard - {0}" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:250 -+#, c++-format -+msgid "Keyboard - {0} - {1}" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:134 -+msgctxt "Key name" -+msgid "Keyboard Brightness Down" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:132 -+msgctxt "Key name" -+msgid "Keyboard Brightness Up" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:836 -+msgid "Keyboard Layout:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:131 -+msgctxt "Key name" -+msgid "Keyboard Light On/Off" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:171 -+msgctxt "Key name" -+msgid "Keyboard Menu" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:74 -+msgctxt "Key name" -+msgid "Keypad *" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:75 -+msgctxt "Key name" -+msgid "Keypad +" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:76 -+msgctxt "Key name" -+msgid "Keypad ," -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:77 -+msgctxt "Key name" -+msgid "Keypad -" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:78 -+msgctxt "Key name" -+msgid "Keypad ." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:79 -+msgctxt "Key name" -+msgid "Keypad /" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:80 -+msgctxt "Key name" -+msgid "Keypad 0" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:81 -+msgctxt "Key name" -+msgid "Keypad 1" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:82 -+msgctxt "Key name" -+msgid "Keypad 2" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:83 -+msgctxt "Key name" -+msgid "Keypad 3" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:84 -+msgctxt "Key name" -+msgid "Keypad 4" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:85 -+msgctxt "Key name" -+msgid "Keypad 5" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:86 -+msgctxt "Key name" -+msgid "Keypad 6" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:87 -+msgctxt "Key name" -+msgid "Keypad 7" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:88 -+msgctxt "Key name" -+msgid "Keypad 8" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:89 -+msgctxt "Key name" -+msgid "Keypad 9" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:73 -+msgctxt "Key name" -+msgid "Keypad =" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:70 -+msgctxt "Key name" -+msgid "Keypad Begin" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:72 -+msgctxt "Key name" -+msgid "Keypad Delete" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:66 -+msgctxt "Key name" -+msgid "Keypad Down" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:69 -+msgctxt "Key name" -+msgid "Keypad End" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:57 -+msgctxt "Key name" -+msgid "Keypad Enter" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:58 -+msgctxt "Key name" -+msgid "Keypad F1" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:59 -+msgctxt "Key name" -+msgid "Keypad F2" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:60 -+msgctxt "Key name" -+msgid "Keypad F3" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:61 -+msgctxt "Key name" -+msgid "Keypad F4" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:62 -+msgctxt "Key name" -+msgid "Keypad Home" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:71 -+msgctxt "Key name" -+msgid "Keypad Insert" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:63 -+msgctxt "Key name" -+msgid "Keypad Left" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:68 -+msgctxt "Key name" -+msgid "Keypad Page Down" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:67 -+msgctxt "Key name" -+msgid "Keypad Page Up" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:65 -+msgctxt "Key name" -+msgid "Keypad Right" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:55 -+msgctxt "Key name" -+msgid "Keypad Space" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:56 -+msgctxt "Key name" -+msgid "Keypad Tab" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:64 -+msgctxt "Key name" -+msgid "Keypad Up" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1690 -+msgid "Kimpanel process:" -+msgstr "" -+ -+#: src/ui/classic/theme.h:50 -+msgid "Last Candidate" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:112 -+msgctxt "Key name" -+msgid "Launch (0)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:113 -+msgctxt "Key name" -+msgid "Launch (1)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:114 -+msgctxt "Key name" -+msgid "Launch (2)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:115 -+msgctxt "Key name" -+msgid "Launch (3)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:116 -+msgctxt "Key name" -+msgid "Launch (4)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:117 -+msgctxt "Key name" -+msgid "Launch (5)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:118 -+msgctxt "Key name" -+msgid "Launch (6)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:119 -+msgctxt "Key name" -+msgid "Launch (7)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:120 -+msgctxt "Key name" -+msgid "Launch (8)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:121 -+msgctxt "Key name" -+msgid "Launch (9)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:122 -+msgctxt "Key name" -+msgid "Launch (A)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:123 -+msgctxt "Key name" -+msgid "Launch (B)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:124 -+msgctxt "Key name" -+msgid "Launch (C)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:125 -+msgctxt "Key name" -+msgid "Launch (D)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:126 -+msgctxt "Key name" -+msgid "Launch (E)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:127 -+msgctxt "Key name" -+msgid "Launch (F)" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:111 -+msgctxt "Key name" -+msgid "Launch Mail" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:47 -+msgctxt "Key name" -+msgid "Left" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:30 -+msgctxt "Key name" -+msgid "Left Alt" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:34 -+msgctxt "Key name" -+msgid "Left Control" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:38 -+msgctxt "Key name" -+msgid "Left Hyper" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:32 -+msgctxt "Key name" -+msgid "Left Shift" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:36 -+msgctxt "Key name" -+msgid "Left Super" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:141 -+msgctxt "Key name" -+msgid "LightBulb" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:851 -+msgid "Locale:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1799 -+msgid "Log:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:168 -+msgctxt "Key name" -+msgid "Logoff" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:89 -+msgid "Long Press behavior" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:201 -+msgctxt "Key name" -+msgid "Mail Forward" -+msgstr "" -+ -+#: src/ui/classic/theme.h:118 -+msgid "Margin" -+msgstr "" -+ -+#: src/ui/classic/theme.h:80 -+msgid "Margin Bottom" -+msgstr "" -+ -+#: src/ui/classic/theme.h:74 -+msgid "Margin Left" -+msgstr "" -+ -+#: src/ui/classic/theme.h:76 -+msgid "Margin Right" -+msgstr "" -+ -+#: src/ui/classic/theme.h:78 -+msgid "Margin Top" -+msgstr "" -+ -+#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 -+msgid "Margin around all content" -+msgstr "" -+ -+#: src/ui/classic/theme.h:164 src/ui/classic/theme.h:188 -+msgid "Margin around text" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:169 -+msgctxt "Key name" -+msgid "Market" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:245 -+msgctxt "Key name" -+msgid "Massyo" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:207 -+msgctxt "Key name" -+msgid "Media Fast Forward" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:103 -+msgctxt "Key name" -+msgid "Media Next" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:105 -+msgctxt "Key name" -+msgid "Media Pause" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:100 -+msgctxt "Key name" -+msgid "Media Play" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:102 -+msgctxt "Key name" -+msgid "Media Previous" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:104 -+msgctxt "Key name" -+msgid "Media Record" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:149 -+msgctxt "Key name" -+msgid "Media Rewind" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:101 -+msgctxt "Key name" -+msgid "Media Stop" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:170 -+msgctxt "Key name" -+msgid "Meeting" -+msgstr "" -+ -+#: src/ui/classic/theme.h:202 -+msgid "Menu" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:91 -+msgctxt "Key name" -+msgid "Menu" -+msgstr "" -+ -+#: src/ui/classic/theme.h:68 -+msgid "Menu Background" -+msgstr "" -+ -+#: src/ui/classic/theme.h:68 -+msgid "Menu Border" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:122 -+msgid "Menu Font" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:172 -+msgctxt "Key name" -+msgid "Menu PB" -+msgstr "" -+ -+#: src/ui/classic/theme.h:69 -+msgid "Menu Selected Item Background" -+msgstr "" -+ -+#: src/ui/classic/theme.h:69 -+msgid "Menu Selected Item Border" -+msgstr "" -+ -+#: src/ui/classic/theme.h:70 -+msgid "Menu Separator" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:199 -+msgctxt "Key name" -+msgid "Messenger" -+msgstr "" -+ -+#: src/ui/classic/theme.h:199 -+msgid "Metadata" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:218 -+msgctxt "Key name" -+msgid "Microphone Mute" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:130 -+msgctxt "Key name" -+msgid "Monitor Brightness Down" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:128 -+msgctxt "Key name" -+msgid "Monitor Brightness Up" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:235 -+msgctxt "Key name" -+msgid "Muhenkan" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:251 -+msgctxt "Key name" -+msgid "Multiple Candidate" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:203 -+msgctxt "Key name" -+msgid "Music" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:173 -+msgctxt "Key name" -+msgid "My Sites" -+msgstr "" -+ -+#: src/ui/classic/theme.h:191 -+msgid "Name" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:223 -+msgctxt "Key name" -+msgid "New" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:174 -+msgctxt "Key name" -+msgid "News" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:48 -+msgid "Next Candidate" -+msgstr "" -+ -+#: src/ui/classic/theme.h:166 -+msgid "Next Page Button" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:27 -+msgid "No" -+msgstr "" -+ -+#: src/modules/clipboard/clipboard.cpp:355 -+msgid "No clipboard history." -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:28 -+msgid "None" -+msgstr "" -+ -+#: src/ui/classic/theme.h:135 src/ui/classic/theme.h:171 -+msgid "Normal text color" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:182 -+msgid "" -+"Normally Wayland uses 96 as font DPI in combinition with the screen scale " -+"factor. This option allows you to override the font DPI. If the value is 0, " -+"it means this option is disabled." -+msgstr "" -+ -+#: src/ui/kimpanel/kimpanel.cpp:386 -+msgid "Not available" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:733 -+msgid "Note for GNOME Later than 3.6" -+msgstr "" -+ -+#: src/modules/notifications/notifications.conf.in.in:3 -+msgid "Notification" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:54 -+msgctxt "Key name" -+msgid "NumLock" -+msgstr "" -+ -+#: src/modules/clipboard/clipboard.h:48 -+msgid "Number of entries" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:670 -+msgid "" -+"Only emoji support is found. To enable spell checking, you may need to " -+"install spell check data for the language." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:224 -+msgctxt "Key name" -+msgid "Open" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:110 -+msgctxt "Key name" -+msgid "Open URL" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:176 -+msgctxt "Key name" -+msgid "Option" -+msgstr "" -+ -+#: src/ui/classic/theme.h:120 -+msgid "Overlay Clip Margin" -+msgstr "" -+ -+#: src/ui/classic/theme.h:110 -+msgid "Overlay Image" -+msgstr "" -+ -+#: src/ui/classic/theme.h:113 -+msgid "Overlay X offset" -+msgstr "" -+ -+#: src/ui/classic/theme.h:114 -+msgid "Overlay Y offset" -+msgstr "" -+ -+#: src/ui/classic/theme.h:112 -+msgid "Overlay position" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:166 -+msgid "Override Xkb Option" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:991 -+msgid "Owner of DBus name ${1} is ${2}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:999 -+msgid "PID of DBus name ${1} owner is ${2}." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:52 -+msgctxt "Key name" -+msgid "Page Down" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:51 -+msgctxt "Key name" -+msgid "Page Up" -+msgstr "" -+ -+#: src/ui/classic/theme.h:155 -+msgid "Page button vertical alignment" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:37 -+msgid "Page size" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:177 -+msgctxt "Key name" -+msgid "Paste" -+msgstr "" -+ -+#: src/modules/clipboard/clipboard.h:46 -+msgid "Paste Primary" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:44 -+msgctxt "Key name" -+msgid "Pause" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:178 -+msgctxt "Key name" -+msgid "Phone" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:202 -+msgctxt "Key name" -+msgid "Pictures" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:940 -+msgid "Please check ${1} for how to install fcitx5." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:962 -+msgid "" -+"Please check the Configure link of your distribution in ${1} for how to " -+"setup ${2} autostart." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:714 -+msgid "" -+"Please set environment variable ${env_name} to \"${value}\" using the tool " -+"your distribution provides or add ${1} to your ${2}. See ${link}." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:216 -+msgctxt "Key name" -+msgid "Power Down" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:135 -+msgctxt "Key name" -+msgid "Power Off" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:834 -+msgid "Preedit" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:836 -+msgid "Preedit disabled" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:835 -+msgid "Preedit enabled" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:130 src/ui/kimpanel/kimpanel.h:33 -+msgid "Prefer Text Icon" -+msgstr "" -+ -+#: src/modules/spell/spell.h:22 -+msgid "Presage" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:42 -+msgid "Prev Candidate" -+msgstr "" -+ -+#: src/ui/classic/theme.h:165 -+msgid "Prev Page Button" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:252 -+msgctxt "Key name" -+msgid "Previous Candidate" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:228 -+msgctxt "Key name" -+msgid "Print Screen" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:27 -+msgid "Program" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1249 -+msgid "Qt IM module files:" -+msgstr "" -+ -+#: src/modules/quickphrase/quickphrase.conf.in.in:3 -+msgid "Quick Phrase" -+msgstr "" -+ -+#: src/modules/quickphrase/quickphrase.cpp:472 -+msgid "Quick Phrase: " -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:219 -+msgctxt "Key name" -+msgid "Red" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:227 -+msgctxt "Key name" -+msgid "Redo" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:96 -+msgctxt "Key name" -+msgid "Refresh" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:180 -+msgctxt "Key name" -+msgid "Reload" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:179 -+msgctxt "Key name" -+msgid "Reply" -+msgstr "" -+ -+#: src/ui/classic/xcbtraywindow.cpp:39 -+#: src/modules/notificationitem/dbusmenu.cpp:259 -+msgid "Restart" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:43 -+msgctxt "Key name" -+msgid "Return" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:49 -+msgctxt "Key name" -+msgid "Right" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:31 -+msgctxt "Key name" -+msgid "Right Alt" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:35 -+msgctxt "Key name" -+msgid "Right Control" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:39 -+msgctxt "Key name" -+msgid "Right Hyper" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:33 -+msgctxt "Key name" -+msgid "Right Shift" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:37 -+msgctxt "Key name" -+msgid "Right Super" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:237 -+msgctxt "Key name" -+msgid "Romaji" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:181 -+msgctxt "Key name" -+msgid "Rotate Windows" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:183 -+msgctxt "Key name" -+msgid "Rotation KB" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:182 -+msgctxt "Key name" -+msgid "Rotation PB" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:916 -+msgid "Running as root:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:184 -+msgctxt "Key name" -+msgid "Save" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:138 -+msgctxt "Key name" -+msgid "Screensaver" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:90 -+msgctxt "Key name" -+msgid "ScrollLock" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:108 -+msgctxt "Key name" -+msgid "Search" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:233 -+msgctxt "Key name" -+msgid "Select" -+msgstr "" -+ -+#: src/modules/imselector/imselector.cpp:257 -+msgid "Select input method:" -+msgstr "" -+ -+#: src/modules/imselector/imselector.cpp:256 -+msgid "Select local input method:" -+msgstr "" -+ -+#: src/modules/imselector/imselector.conf.in.in:4 -+msgid "Select specific input method via keyboard" -+msgstr "" -+ -+#: src/ui/classic/theme.h:174 -+msgid "Selected Item text color" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:185 -+msgctxt "Key name" -+msgid "Send" -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:519 -+msgid "" -+"Sending keyboard layout configuration to wayland compositor from Fcitx is " -+"not yet supported on current desktop. You may still use Fcitx's internal " -+"layout conversion by adding layout as input method to the input method group." -+msgstr "" -+ -+#: src/ui/classic/theme.h:182 -+msgid "Separator Background" -+msgstr "" -+ -+#: src/ui/classic/theme.h:168 -+msgid "Shadow Margin" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:141 -+msgid "Share Input State" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:561 -+msgctxt "Key name" -+msgid "Shift" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:142 -+msgctxt "Key name" -+msgid "Shop" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:151 -+msgid "Show Input Method Information when changing focus" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:148 -+msgid "Show Input Method Information when switch input method" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:135 -+msgid "Show Layout Name In Icon" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:154 -+msgid "Show compact input method information" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:157 -+msgid "Show first input method information" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:139 -+msgid "" -+"Show layout name in icon if there is more than one active layout. If prefer " -+"text icon is set to true, this option will be ignored." -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:144 -+msgid "Show preedit in application" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:188 -+msgid "Show preedit text when typing password" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:77 -+msgid "" -+"Show preedit when composing, and commit dead key if there is no matching " -+"sequence." -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:64 -+msgid "Skip first input method while enumerating" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:140 -+msgctxt "Key name" -+msgid "Sleep" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:40 -+msgctxt "Key name" -+msgid "Space" -+msgstr "" -+ -+#: src/ui/classic/theme.h:176 -+msgid "Spacing" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:79 src/modules/spell/spell.conf.in.in:3 -+msgid "Spell" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:186 -+msgctxt "Key name" -+msgid "Spellchecker" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:187 -+msgctxt "Key name" -+msgid "Split Screen" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:163 -+msgctxt "Key name" -+msgid "Spreadsheet" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:109 -+msgctxt "Key name" -+msgid "Standby" -+msgstr "" -+ -+#: data/org.fcitx.Fcitx5.desktop.in.in:5 -+msgid "Start Input Method" -+msgstr "" -+ -+#: src/modules/notificationitem/notificationitem.conf.in.in:3 -+msgid "Status Notifier" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:95 -+msgctxt "Key name" -+msgid "Stop" -+msgstr "" -+ -+#: src/ui/classic/theme.h:184 -+msgid "Sub Menu" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:210 -+msgctxt "Key name" -+msgid "Subtitle" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 -+msgid "Super" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:562 -+msgctxt "Key name" -+msgid "Super" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:188 -+msgctxt "Key name" -+msgid "Support" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:217 -+msgctxt "Key name" -+msgid "Suspend" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:447 src/lib/fcitx/instance.cpp:673 -+#: src/modules/xcb/xcbconnection.cpp:522 -+msgid "Switch group" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:448 src/modules/xcb/xcbconnection.cpp:523 -+#, c++-format -+msgid "Switch group to {0}" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:674 -+#, c++-format -+msgid "Switched group to {0}" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:789 -+msgid "System Info:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:232 -+msgctxt "Key name" -+msgid "System Request" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:41 -+msgctxt "Key name" -+msgid "Tab" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:189 -+msgctxt "Key name" -+msgid "Task Panel" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:44 -+msgid "Temporally switch between first and current Input Method" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:190 -+msgctxt "Key name" -+msgid "Terminal" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1786 -+#, sh-format -+msgid "" -+"The environment variable checked by this script only shows the environment " -+"under current shell. It is still possible that you did not set the " -+"environment to the whole graphic desktop session. You may inspect the actual " -+"environment variable of a certain process by using `xargs -0 -L1 /proc/$PID/" -+"environ` for a certain process that you find not working." -+msgstr "" -+ -+#: src/modules/imselector/imselector.h:40 -+#: src/modules/imselector/imselector.h:50 -+msgid "The n-th hotkey in the list selects the n-th input method." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:895 -+msgid "The script is run as ${1} (${2})." -+msgstr "" -+ -+#: src/ui/classic/classicui.h:155 -+msgid "Theme" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:101 -+msgid "This is only effective when the tray icon is xembed." -+msgstr "" -+ -+#: src/ui/classic/theme.h:93 src/ui/classic/theme.h:101 -+msgid "This option is only effective if image is not set." -+msgstr "" -+ -+#: src/ui/classic/classicui.h:194 -+msgid "This option require support from wayland compositor." -+msgstr "" -+ -+#: src/ui/classic/classicui.h:173 -+msgid "This option will be always disabled on XWayland." -+msgstr "" -+ -+#: src/ui/classic/theme.h:109 -+msgid "This value should be less than any of margin value." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1805 -+msgid "" -+"Though such information can be helpful to developers for diagnostic purpose, " -+"please double check and remove as necessary before posting it online " -+"publicly." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:212 -+msgctxt "Key name" -+msgid "Time" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:750 -+#, sh-format -+msgid "" -+"To see some application specific problems you may have when using xim, check " -+"${link1}. For other more general problems of using XIM including application " -+"freezing, see ${link2}." -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:132 -+msgid "Toggle embedded preedit" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:191 -+msgctxt "Key name" -+msgid "Tools" -+msgstr "" -+ -+#: src/ui/classic/theme.h:48 -+msgid "Top" -+msgstr "" -+ -+#: src/ui/classic/theme.h:35 -+msgid "Top Center" -+msgstr "" -+ -+#: src/ui/classic/theme.h:35 -+msgid "Top Left" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:215 -+msgctxt "Key name" -+msgid "Top Menu" -+msgstr "" -+ -+#: src/ui/classic/theme.h:36 -+msgid "Top Right" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:268 -+msgctxt "Key name" -+msgid "Touchpad Off" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:267 -+msgctxt "Key name" -+msgid "Touchpad On" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:266 -+msgctxt "Key name" -+msgid "Touchpad Toggle" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:244 -+msgctxt "Key name" -+msgid "Touroku" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:192 -+msgctxt "Key name" -+msgid "Travel" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:124 -+msgid "Tray Font" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:126 -+msgid "Tray Label Outline Color" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:129 -+msgid "Tray Label Text Color" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:34 -+msgid "Trigger Input Method" -+msgstr "" -+ -+#: src/modules/imselector/imselector.h:25 -+#: src/modules/quickphrase/quickphrase.h:36 src/modules/unicode/unicode.h:31 -+#: src/modules/clipboard/clipboard.h:42 -+msgid "Trigger Key" -+msgstr "" -+ -+#: src/modules/imselector/imselector.h:29 -+msgid "Trigger Key for only current input context" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:62 -+msgid "Trigger hint mode" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:67 -+msgid "Trigger hint mode for one time" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:82 -+msgid "Type special characters with long press" -+msgstr "" -+ -+#: src/modules/unicode/unicode.h:36 -+msgid "Type unicode in Hex number" -+msgstr "" -+ -+#: data/org.fcitx.Fcitx5.metainfo.xml.in:22 -+msgid "Typing with Fcitx and Kimpanel" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1011 -+msgid "Unable to find a program to check dbus." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:226 -+msgctxt "Key name" -+msgid "Undo" -+msgstr "" -+ -+#: src/modules/unicode/unicode.conf.in.in:3 -+msgid "Unicode" -+msgstr "" -+ -+#: src/modules/unicode/unicode.cpp:456 -+msgid "Unicode: " -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:48 -+msgctxt "Key name" -+msgid "Up" -+msgstr "" -+ -+#: src/frontend/xim/xim.h:33 -+msgid "Use On The Spot Style (Needs restarting)" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:169 -+msgid "Use Per Screen DPI on X11" -+msgstr "" -+ -+#: src/ui/classic/theme.h:151 -+msgid "Use all horizontal space for highlight when it is vertical list" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:146 -+msgid "Use input method language to display text" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:116 -+msgid "Use mouse wheel to go to prev or next page" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.h:73 -+msgid "Use new compose behavior" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1677 -+msgid "User Interface:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:986 -+msgid "Using ${1} to check dbus." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:256 -+msgid "" -+"Using ${1} to check the actual im module to be used under current " -+"environment:" -+msgstr "" -+ -+#: src/ui/classic/theme.h:192 -+msgid "Version" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1405 data/fcitx5-diagnose.sh:1489 -+msgid "Version Line:" -+msgstr "" -+ -+#: src/ui/classic/classicui.h:114 -+msgid "Vertical Candidate List" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:193 -+msgctxt "Key name" -+msgid "Video" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:214 -+msgctxt "Key name" -+msgid "View" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:97 -+msgctxt "Key name" -+msgid "Volume Down" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:98 -+msgctxt "Key name" -+msgid "Volume Mute" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:99 -+msgctxt "Key name" -+msgid "Volume Up" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:139 -+msgctxt "Key name" -+msgid "WWW" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:136 -+msgctxt "Key name" -+msgid "Wake Up" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1804 -+msgid "" -+"Warning: the output of fcitx5-diagnose contains sensitive information, " -+"including the distribution name, kernel version, name of currently running " -+"programs, etc." -+msgstr "" -+ -+#: src/modules/wayland/wayland.conf.in.in:3 -+msgid "Wayland" -+msgstr "" -+ -+#: src/modules/wayland/waylandmodule.cpp:449 -+msgid "Wayland Diagnose" -+msgstr "" -+ -+#: src/frontend/waylandim/waylandim.conf.in.in:3 -+msgid "Wayland Input method frontend" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:200 -+msgctxt "Key name" -+msgid "WebCam" -+msgstr "" -+ -+#: src/lib/fcitx/globalconfig.cpp:170 -+msgid "" -+"Whether to override the xkb option from display server. It will not affect " -+"the xkb option send to display, but just the xkb options for custom xkb " -+"layout." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:926 -+msgid "Why is it bad to run as root" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:206 -+msgctxt "Key name" -+msgid "Wireless" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:194 -+msgctxt "Key name" -+msgid "Word Processor" -+msgstr "" -+ -+#: src/frontend/xim/xim.conf.in.in:3 -+msgid "X Input Method Frontend" -+msgstr "" -+ -+#: src/modules/xcb/xcb.conf.in.in:3 -+msgid "XCB" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:825 -+msgid "XDG SESSION TYPE:" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:195 -+msgctxt "Key name" -+msgid "XFer" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1188 -+msgid "XIM encoding:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1183 -+msgid "XIM for Emacs:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1159 -+msgid "XIM_SERVERS on root window:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1136 -+msgid "XMODIFIERS is not set" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1157 -+msgid "Xim Server Name from Environment variable is ${1}." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1169 -+msgid "Xim server name is the same with that set in the environment variable." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1171 -+msgid "" -+"Xim server name: \"${1}\" is different from that set in the environment " -+"variable: \"${2}\"." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:221 -+msgctxt "Key name" -+msgid "Yellow" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:924 -+msgid "" -+"You are probably logging in as ${1} or using ${2} to run this script. This " -+"either means you have security problems or the result of this script may not " -+"be accurate. See ${3} or ${4} for more information." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:919 -+msgid "" -+"You are probably using ${1} to run this script. This means the result of " -+"this script may not be accurate. See ${2} for more information." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1213 -+msgid "You are using xim in ${1} programs." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1218 -+msgid "You may have trouble using fcitx in ${1} programs." -+msgstr "" -+ -+#: data/fcitx5-configtool.sh:134 -+msgid "" -+"You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be " -+"found. Now it will open config directory." -+msgstr "" -+ -+#: data/fcitx5-configtool.sh:131 -+msgid "" -+"You're currently running KDE, but KCModule for fcitx couldn't be found, the " -+"package name of this KCModule is usually kcm-fcitx or kde-config-fcitx. Now " -+"it will open config directory." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1185 -+msgid "" -+"Your LC_CTYPE is set to ${1} instead of one of zh, ja, ko. You may not be " -+"able to use input method in emacs because of an really old emacs bug that " -+"upstream refuse to fix for years." -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:1190 -+msgid "" -+"Your LC_CTYPE is set to ${1} whose encoding is not UTF-8. You may have " -+"trouble committing strings using XIM." -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:241 -+msgctxt "Key name" -+msgid "Zenkaku" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:243 -+msgctxt "Key name" -+msgid "Zenkaku Hankaku" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:196 -+msgctxt "Key name" -+msgid "Zoom In" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:197 -+msgctxt "Key name" -+msgid "Zoom Out" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:936 -+msgid "executable:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:757 -+msgid "here" -+msgstr "" -+ -+#: src/lib/fcitx-utils/key.cpp:167 -+msgctxt "Key name" -+msgid "iTouch" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:950 -+msgid "process:" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:921 data/fcitx5-diagnose.sh:927 -+msgid "sudo environment variables" -+msgstr "" -+ -+#: data/fcitx5-diagnose.sh:946 -+msgid "version:" -+msgstr "" -+ -+#: src/im/keyboard/keyboard.cpp:292 -+#, c++-format -+msgid "{0} (Not Available)" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:405 -+#, c++-format -+msgid "{0} (Not available)" -+msgstr "" -+ -+#: src/lib/fcitx/instance.cpp:402 -+#, c++-format -+msgid "{0} ({1})" -+msgstr "" diff -Nru fcitx5-5.1.7/debian/patches/0010-update-changelog.patch fcitx5-5.1.11/debian/patches/0010-update-changelog.patch --- fcitx5-5.1.7/debian/patches/0010-update-changelog.patch 2024-08-28 10:05:23.000000000 +0800 +++ fcitx5-5.1.11/debian/patches/0010-update-changelog.patch 1970-01-01 08:00:00.000000000 +0800 @@ -1,20 +0,0 @@ -From: hantengc <hanteng@kylinos.cn> -Date: Mon, 20 May 2024 14:59:18 +0800 -Subject: update changelog - ---- - src/modules/commitstringdbus/commitstringdbus-addon.conf.in | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/src/modules/commitstringdbus/commitstringdbus-addon.conf.in b/src/modules/commitstringdbus/commitstringdbus-addon.conf.in -index 8070bfb..27d945a 100644 ---- a/src/modules/commitstringdbus/commitstringdbus-addon.conf.in -+++ b/src/modules/commitstringdbus/commitstringdbus-addon.conf.in -@@ -2,7 +2,6 @@ - Name[zh_CN]=fcitx5 提交字符串dbus - Name=dbus commit string - Type=SharedLibrary --Library=libcommitstringdbus - Category=Module - Version=5.1.5 - OnDemand=False diff -Nru fcitx5-5.1.7/debian/patches/0011-Translated-using-Weblate-Uyghur.patch fcitx5-5.1.11/debian/patches/0011-Translated-using-Weblate-Uyghur.patch --- fcitx5-5.1.7/debian/patches/0011-Translated-using-Weblate-Uyghur.patch 2024-08-28 10:05:23.000000000 +0800 +++ fcitx5-5.1.11/debian/patches/0011-Translated-using-Weblate-Uyghur.patch 1970-01-01 08:00:00.000000000 +0800 @@ -1,987 +0,0 @@ -From: KevinDuan <duankaiwen@kylinos.com> -Date: Mon, 20 May 2024 08:59:13 +0000 -Subject: Translated using Weblate (Uyghur) - -Currently translated at 19.1% (122 of 638 strings) - -Translation: openkylin-nile-new/fcitx5 -Translate-URL: http://weblate.openkylin.top/projects/openkylin-nile-new/fcitx5/ug/ ---- - po/ug.po | 252 ++++++++++++++++++++++++++++++++------------------------------- - 1 file changed, 127 insertions(+), 125 deletions(-) - -diff --git a/po/ug.po b/po/ug.po -index 7ee8982..aaca223 100644 ---- a/po/ug.po -+++ b/po/ug.po -@@ -13,14 +13,16 @@ msgstr "" - "Project-Id-Version: fcitx5\n" - "Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" - "POT-Creation-Date: 2023-10-19 05:51+0000\n" --"PO-Revision-Date: 2017-11-23 04:14+0000\n" --"Last-Translator: Automatically generated\n" --"Language-Team: none\n" -+"PO-Revision-Date: 2024-05-20 09:09+0000\n" -+"Last-Translator: KevinDuan <duankaiwen@kylinos.com>\n" -+"Language-Team: Uyghur <http://weblate.openkylin.top/projects/" -+"openkylin-nile-new/fcitx5/ug/>\n" - "Language: ug\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" - "Plural-Forms: nplurals=2; plural=n != 1;\n" -+"X-Generator: Weblate 4.12.1-dev\n" - - #: data/fcitx5-diagnose.sh:900 - msgid "${1} Environment Variables:" -@@ -142,7 +144,7 @@ msgstr "" - - #: src/lib/fcitx/globalconfig.cpp:26 - msgid "All" --msgstr "" -+msgstr "ھەممە ئادەم" - - #: data/fcitx5-diagnose.sh:1367 - msgid "All found Gtk ${1} immodule files exist." -@@ -170,12 +172,12 @@ msgstr "" - - #: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:29 - msgid "Alt" --msgstr "" -+msgstr "ئالىت" - - #: src/lib/fcitx-utils/key.cpp:560 - msgctxt "Key name" - msgid "Alt" --msgstr "" -+msgstr "ئالىت" - - #: src/modules/xcb/xcbmodule.h:33 - msgid "Always set layout to be only group layout" -@@ -222,7 +224,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:93 - msgctxt "Key name" - msgid "Back" --msgstr "" -+msgstr "كەينىگە يېنىش" - - #: src/lib/fcitx-utils/key.cpp:150 - msgctxt "Key name" -@@ -244,7 +246,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:42 - msgctxt "Key name" - msgid "Backspace" --msgstr "" -+msgstr "ئارقا بوشلۇق" - - #: data/fcitx5-diagnose.sh:827 - msgid "Bash Version:" -@@ -253,7 +255,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:204 - msgctxt "Key name" - msgid "Battery" --msgstr "" -+msgstr "باتارېيە" - - #: data/fcitx5-diagnose.sh:706 - msgid "Beginner's Guide" -@@ -271,7 +273,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:205 - msgctxt "Key name" - msgid "Bluetooth" --msgstr "" -+msgstr "كۆكچىش" - - #: src/ui/classic/theme.h:148 - msgid "Blur Margin" -@@ -296,7 +298,7 @@ msgstr "" - - #: src/ui/classic/theme.h:50 - msgid "Bottom" --msgstr "" -+msgstr "ئاستىنقى" - - #: src/ui/classic/theme.h:38 - msgid "Bottom Center" -@@ -328,7 +330,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:264 - msgctxt "Key name" - msgid "Cancel" --msgstr "" -+msgstr "ئەمەلدىن قالدۇرۇش" - - #: src/im/keyboard/longpress.h:19 - msgid "Candidates" -@@ -415,7 +417,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:53 - msgctxt "Key name" - msgid "CapsLock" --msgstr "" -+msgstr "بوشلۇق كونۇپكىسى" - - #: src/ui/classic/theme.h:37 src/ui/classic/theme.h:49 - msgid "Center" -@@ -448,7 +450,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:156 - msgctxt "Key name" - msgid "Clear" --msgstr "" -+msgstr "تازىلاش" - - #: src/ui/classic/theme.h:131 - msgid "Click Margin" -@@ -465,7 +467,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:157 - msgctxt "Key name" - msgid "Close" --msgstr "" -+msgstr "يېپىش" - - #: src/lib/fcitx-utils/key.cpp:250 - msgctxt "Key name" -@@ -474,7 +476,7 @@ msgstr "" - - #: src/ui/classic/theme.h:89 - msgid "Color" --msgstr "" -+msgstr "رەڭ" - - #: src/lib/fcitx-utils/key.cpp:148 - msgctxt "Key name" -@@ -528,7 +530,7 @@ msgstr "" - #: src/ui/classic/xcbtraywindow.cpp:38 - #: src/modules/notificationitem/dbusmenu.cpp:251 - msgid "Configure" --msgstr "" -+msgstr "سەپلىمە" - - #: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 - msgid "Control" -@@ -542,7 +544,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:158 - msgctxt "Key name" - msgid "Copy" --msgstr "" -+msgstr "كۆچۈرۈش" - - #: data/fcitx5-diagnose.sh:888 - msgid "Current ${1} settings directory is ${2} (${3})." -@@ -562,7 +564,7 @@ msgstr "" - - #: src/modules/spell/spell.h:22 - msgid "Custom" --msgstr "" -+msgstr "ئۆرپ-ئادەت" - - #: src/lib/fcitx/globalconfig.cpp:175 - msgid "Custom Xkb Option" -@@ -571,7 +573,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:159 - msgctxt "Key name" - msgid "Cut" --msgstr "" -+msgstr "كېسىش" - - #: src/modules/dbus/dbus.conf.in.in:3 - msgid "DBus" -@@ -600,7 +602,7 @@ msgstr "" - - #: src/ui/classic/classicui.h:158 - msgid "Dark Theme" --msgstr "" -+msgstr "قېنىق ئۇسلۇب" - - #: src/lib/fcitx/globalconfig.cpp:91 - msgid "Deactivate Input Method" -@@ -613,7 +615,7 @@ msgstr "" - #: src/lib/fcitx/inputmethodmanager.cpp:138 src/lib/fcitx/instance.cpp:354 - #: src/ui/classic/themes/default/theme.conf.in:3 - msgid "Default" --msgstr "" -+msgstr "ئەسلىدىكى" - - #: src/ui/classic/themes/default-dark/theme-dark.conf.in:3 - msgid "Default Dark" -@@ -642,11 +644,11 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:230 - msgctxt "Key name" - msgid "Delete" --msgstr "" -+msgstr "ئۆچۈرۈش" - - #: src/ui/classic/theme.h:195 - msgid "Description" --msgstr "" -+msgstr "چۈشەندۈرۈش" - - #: data/fcitx5-diagnose.sh:817 - msgid "Desktop Environment:" -@@ -682,25 +684,25 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:160 - msgctxt "Key name" - msgid "Display" --msgstr "" -+msgstr "كۆرسىتىش" - - #: src/modules/notifications/notifications.cpp:204 - msgid "Do not show again" --msgstr "" -+msgstr "قايتا كۆرسەتمەسلىك" - - #: src/lib/fcitx-utils/key.cpp:162 - msgctxt "Key name" - msgid "Documents" --msgstr "" -+msgstr "ئارخىپ" - - #: src/lib/fcitx-utils/key.cpp:50 - msgctxt "Key name" - msgid "Down" --msgstr "" -+msgstr "تۆۋەنگە" - - #: src/modules/quickphrase/quickphrase.h:47 - msgid "Editor" --msgstr "" -+msgstr "تەھرىرلىگۈچ" - - #: src/lib/fcitx-utils/key.cpp:248 - msgctxt "Key name" -@@ -715,7 +717,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:137 - msgctxt "Key name" - msgid "Eject" --msgstr "" -+msgstr "سەكرەپ چىقىش" - - #: src/modules/emoji/emoji.conf.in.in:3 - msgid "Emoji" -@@ -723,7 +725,7 @@ msgstr "" - - #: src/im/keyboard/longpress.h:17 - msgid "Enable" --msgstr "" -+msgstr "قوزغىتىش" - - #: src/ui/classic/theme.h:145 - msgid "Enable Blur on KWin" -@@ -756,7 +758,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:46 - msgctxt "Key name" - msgid "End" --msgstr "" -+msgstr "ئاخىرلىشىش" - - #: src/im/keyboard/longpress.h:26 - msgid "Entries" -@@ -811,17 +813,17 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:231 - msgctxt "Key name" - msgid "Escape" --msgstr "" -+msgstr "قۇتۇلۇش" - - #: src/lib/fcitx-utils/key.cpp:265 - msgctxt "Key name" - msgid "Execute" --msgstr "" -+msgstr "ئىجرا قىلىش" - - #: src/ui/classic/xcbtraywindow.cpp:40 - #: src/modules/notificationitem/dbusmenu.cpp:265 - msgid "Exit" --msgstr "" -+msgstr "چىقىش ئېغىزى" - - #: data/fcitx5-diagnose.sh:1506 - msgid "Failed to find ${1} in immodule cache at ${2}" -@@ -838,7 +840,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:107 - msgctxt "Key name" - msgid "Favorites" --msgstr "" -+msgstr "ياخشى كۆرىدىغانلار" - - #: src/modules/wayland/waylandmodule.cpp:449 - msgid "Fcitx" -@@ -899,7 +901,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:225 - msgctxt "Key name" - msgid "Find" --msgstr "" -+msgstr "ئىزدەش" - - #: src/ui/classic/theme.h:49 - msgid "First Candidate" -@@ -923,7 +925,7 @@ msgstr "" - - #: src/ui/classic/classicui.h:120 - msgid "Font" --msgstr "" -+msgstr "خەت نۇسخىسى" - - #: src/ui/classic/classicui.h:150 - msgid "" -@@ -943,7 +945,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:94 - msgctxt "Key name" - msgid "Forward" --msgstr "" -+msgstr "ئالدىغا" - - #: data/fcitx5-diagnose.sh:1276 - msgid "Found ${1} ${2} module: ${3}." -@@ -1026,7 +1028,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:166 - msgctxt "Key name" - msgid "Go" --msgstr "" -+msgstr "بارماق" - - #: src/lib/fcitx-utils/key.cpp:220 - msgctxt "Key name" -@@ -1127,7 +1129,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:92 - msgctxt "Key name" - msgid "Help" --msgstr "" -+msgstr "ياردەم" - - #: src/lib/fcitx-utils/key.cpp:236 - msgctxt "Key name" -@@ -1137,7 +1139,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:213 - msgctxt "Key name" - msgid "Hibernate" --msgstr "" -+msgstr "ئۇخلادش" - - #: src/modules/notifications/notifications.h:28 - msgid "Hidden Notifications" -@@ -1180,12 +1182,12 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:143 - msgctxt "Key name" - msgid "History" --msgstr "" -+msgstr "قويۇش تارىخى" - - #: src/lib/fcitx-utils/key.cpp:45 - msgctxt "Key name" - msgid "Home" --msgstr "" -+msgstr "باش بەت" - - #: src/lib/fcitx-utils/key.cpp:175 - msgctxt "Key name" -@@ -1195,7 +1197,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:106 - msgctxt "Key name" - msgid "Home Page" --msgstr "" -+msgstr "باش بەت >" - - #: data/fcitx5-diagnose.sh:870 - msgid "Home:" -@@ -1310,7 +1312,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:229 - msgctxt "Key name" - msgid "Insert" --msgstr "" -+msgstr "قىستۇرۇش" - - #: src/lib/fcitx/globalconfig.cpp:192 - msgid "Interval of saving user data in minutes" -@@ -1365,11 +1367,11 @@ msgstr "" - - #: src/im/keyboard/longpress.h:16 - msgid "Key" --msgstr "" -+msgstr "ئاچقۇچ" - - #: src/im/keyboard/keyboard.cpp:315 src/im/keyboard/keyboard.conf.in.in:3 - msgid "Keyboard" --msgstr "" -+msgstr "كۇنۇپكا تاختىسى" - - #: src/im/keyboard/keyboard.cpp:231 - #, c++-format -@@ -1591,92 +1593,92 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:112 - msgctxt "Key name" - msgid "Launch (0)" --msgstr "" -+msgstr "قوزغىتىشى (0)" - - #: src/lib/fcitx-utils/key.cpp:113 - msgctxt "Key name" - msgid "Launch (1)" --msgstr "" -+msgstr "قويۇپ بېرىش (1)" - - #: src/lib/fcitx-utils/key.cpp:114 - msgctxt "Key name" - msgid "Launch (2)" --msgstr "" -+msgstr "قويۇپ بېرىش (2)" - - #: src/lib/fcitx-utils/key.cpp:115 - msgctxt "Key name" - msgid "Launch (3)" --msgstr "" -+msgstr "قويۇپ بېرىش (3)" - - #: src/lib/fcitx-utils/key.cpp:116 - msgctxt "Key name" - msgid "Launch (4)" --msgstr "" -+msgstr "قوزغىتىشى (4)" - - #: src/lib/fcitx-utils/key.cpp:117 - msgctxt "Key name" - msgid "Launch (5)" --msgstr "" -+msgstr "قويۇپ بېرىش (5)" - - #: src/lib/fcitx-utils/key.cpp:118 - msgctxt "Key name" - msgid "Launch (6)" --msgstr "" -+msgstr "قويۇپ بېرىش (6)" - - #: src/lib/fcitx-utils/key.cpp:119 - msgctxt "Key name" - msgid "Launch (7)" --msgstr "" -+msgstr "قويۇپ بېرىش (7)" - - #: src/lib/fcitx-utils/key.cpp:120 - msgctxt "Key name" - msgid "Launch (8)" --msgstr "" -+msgstr "قويۇپ بېرىش (8)" - - #: src/lib/fcitx-utils/key.cpp:121 - msgctxt "Key name" - msgid "Launch (9)" --msgstr "" -+msgstr "قويۇپ بېرىش (9)" - - #: src/lib/fcitx-utils/key.cpp:122 - msgctxt "Key name" - msgid "Launch (A)" --msgstr "" -+msgstr "قويۇپ بېرىش (A)" - - #: src/lib/fcitx-utils/key.cpp:123 - msgctxt "Key name" - msgid "Launch (B)" --msgstr "" -+msgstr "قويۇپ بېرىش (ب)" - - #: src/lib/fcitx-utils/key.cpp:124 - msgctxt "Key name" - msgid "Launch (C)" --msgstr "" -+msgstr "قويۇپ بېرىش (C)" - - #: src/lib/fcitx-utils/key.cpp:125 - msgctxt "Key name" - msgid "Launch (D)" --msgstr "" -+msgstr "قويۇپ بېرىش (D)" - - #: src/lib/fcitx-utils/key.cpp:126 - msgctxt "Key name" - msgid "Launch (E)" --msgstr "" -+msgstr "قويۇپ بېرىش (E)" - - #: src/lib/fcitx-utils/key.cpp:127 - msgctxt "Key name" - msgid "Launch (F)" --msgstr "" -+msgstr "قويۇپ بېرىش (F)" - - #: src/lib/fcitx-utils/key.cpp:111 - msgctxt "Key name" - msgid "Launch Mail" --msgstr "" -+msgstr "پوچتا يوللانمىسىنى قوزغىتىۋىتىلدى" - - #: src/lib/fcitx-utils/key.cpp:47 - msgctxt "Key name" - msgid "Left" --msgstr "" -+msgstr "سول" - - #: src/lib/fcitx-utils/key.cpp:30 - msgctxt "Key name" -@@ -1776,7 +1778,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:103 - msgctxt "Key name" - msgid "Media Next" --msgstr "" -+msgstr "كېيىنكى مېدىيا" - - #: src/lib/fcitx-utils/key.cpp:105 - msgctxt "Key name" -@@ -1786,17 +1788,17 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:100 - msgctxt "Key name" - msgid "Media Play" --msgstr "" -+msgstr "كۆپ ۋاسىتىلىك ئاڭلىتىش" - - #: src/lib/fcitx-utils/key.cpp:102 - msgctxt "Key name" - msgid "Media Previous" --msgstr "" -+msgstr "ئالدىنقى مېدىيا" - - #: src/lib/fcitx-utils/key.cpp:104 - msgctxt "Key name" - msgid "Media Record" --msgstr "" -+msgstr "مېدىيا خاتىرىسى" - - #: src/lib/fcitx-utils/key.cpp:149 - msgctxt "Key name" -@@ -1806,7 +1808,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:101 - msgctxt "Key name" - msgid "Media Stop" --msgstr "" -+msgstr "كۆپ ۋاسىتىلىك توختىتىش" - - #: src/lib/fcitx-utils/key.cpp:170 - msgctxt "Key name" -@@ -1815,12 +1817,12 @@ msgstr "" - - #: src/ui/classic/theme.h:202 - msgid "Menu" --msgstr "" -+msgstr "تىزىملىك" - - #: src/lib/fcitx-utils/key.cpp:91 - msgctxt "Key name" - msgid "Menu" --msgstr "" -+msgstr "تىزىملىك" - - #: src/ui/classic/theme.h:68 - msgid "Menu Background" -@@ -1858,7 +1860,7 @@ msgstr "" - - #: src/ui/classic/theme.h:199 - msgid "Metadata" --msgstr "" -+msgstr "مېتادون" - - #: src/lib/fcitx-utils/key.cpp:218 - msgctxt "Key name" -@@ -1888,7 +1890,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:203 - msgctxt "Key name" - msgid "Music" --msgstr "" -+msgstr "ناخشا-مۇزىكا" - - #: src/lib/fcitx-utils/key.cpp:173 - msgctxt "Key name" -@@ -1897,12 +1899,12 @@ msgstr "" - - #: src/ui/classic/theme.h:191 - msgid "Name" --msgstr "" -+msgstr "ئىسىم-فامىلىسى" - - #: src/lib/fcitx-utils/key.cpp:223 - msgctxt "Key name" - msgid "New" --msgstr "" -+msgstr "يېڭى" - - #: src/lib/fcitx-utils/key.cpp:174 - msgctxt "Key name" -@@ -1919,7 +1921,7 @@ msgstr "" - - #: src/lib/fcitx/globalconfig.cpp:27 - msgid "No" --msgstr "" -+msgstr "ياق" - - #: src/modules/clipboard/clipboard.cpp:355 - msgid "No clipboard history." -@@ -1927,7 +1929,7 @@ msgstr "" - - #: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:28 - msgid "None" --msgstr "" -+msgstr "يوق" - - #: src/ui/classic/theme.h:135 src/ui/classic/theme.h:171 - msgid "Normal text color" -@@ -1955,7 +1957,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:54 - msgctxt "Key name" - msgid "NumLock" --msgstr "" -+msgstr "قۇلۇپلاش كونۇپكىسى" - - #: src/modules/clipboard/clipboard.h:48 - msgid "Number of entries" -@@ -1970,17 +1972,17 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:224 - msgctxt "Key name" - msgid "Open" --msgstr "" -+msgstr "ئېچىش" - - #: src/lib/fcitx-utils/key.cpp:110 - msgctxt "Key name" - msgid "Open URL" --msgstr "" -+msgstr "URL نى ئېچىش" - - #: src/lib/fcitx-utils/key.cpp:176 - msgctxt "Key name" - msgid "Option" --msgstr "" -+msgstr "تاللاش" - - #: src/ui/classic/theme.h:120 - msgid "Overlay Clip Margin" -@@ -2017,12 +2019,12 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:52 - msgctxt "Key name" - msgid "Page Down" --msgstr "" -+msgstr "بەتنى تۆۋەن قىلىش" - - #: src/lib/fcitx-utils/key.cpp:51 - msgctxt "Key name" - msgid "Page Up" --msgstr "" -+msgstr "ئۈستىنكى بەت" - - #: src/ui/classic/theme.h:155 - msgid "Page button vertical alignment" -@@ -2035,7 +2037,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:177 - msgctxt "Key name" - msgid "Paste" --msgstr "" -+msgstr "چاپلاش" - - #: src/modules/clipboard/clipboard.h:46 - msgid "Paste Primary" -@@ -2044,7 +2046,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:44 - msgctxt "Key name" - msgid "Pause" --msgstr "" -+msgstr "توختاش" - - #: src/lib/fcitx-utils/key.cpp:178 - msgctxt "Key name" -@@ -2054,7 +2056,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:202 - msgctxt "Key name" - msgid "Pictures" --msgstr "" -+msgstr "رەسىملەر" - - #: data/fcitx5-diagnose.sh:940 - msgid "Please check ${1} for how to install fcitx5." -@@ -2080,7 +2082,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:135 - msgctxt "Key name" - msgid "Power Off" --msgstr "" -+msgstr "توكسىز" - - #: src/lib/fcitx/instance.cpp:834 - msgid "Preedit" -@@ -2118,7 +2120,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:228 - msgctxt "Key name" - msgid "Print Screen" --msgstr "" -+msgstr "بېسىپ چىقىرىش ئېكرانى" - - #: src/lib/fcitx/globalconfig.cpp:27 - msgid "Program" -@@ -2144,17 +2146,17 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:227 - msgctxt "Key name" - msgid "Redo" --msgstr "" -+msgstr "قايتا-قايتا" - - #: src/lib/fcitx-utils/key.cpp:96 - msgctxt "Key name" - msgid "Refresh" --msgstr "" -+msgstr "يېڭىلاش" - - #: src/lib/fcitx-utils/key.cpp:180 - msgctxt "Key name" - msgid "Reload" --msgstr "" -+msgstr "قايتا قاچىلاش" - - #: src/lib/fcitx-utils/key.cpp:179 - msgctxt "Key name" -@@ -2164,17 +2166,17 @@ msgstr "" - #: src/ui/classic/xcbtraywindow.cpp:39 - #: src/modules/notificationitem/dbusmenu.cpp:259 - msgid "Restart" --msgstr "" -+msgstr "قايتا قوزغىتىش" - - #: src/lib/fcitx-utils/key.cpp:43 - msgctxt "Key name" - msgid "Return" --msgstr "" -+msgstr "قايتىش" - - #: src/lib/fcitx-utils/key.cpp:49 - msgctxt "Key name" - msgid "Right" --msgstr "" -+msgstr "توغرىسى" - - #: src/lib/fcitx-utils/key.cpp:31 - msgctxt "Key name" -@@ -2228,7 +2230,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:184 - msgctxt "Key name" - msgid "Save" --msgstr "" -+msgstr "ساقلاش" - - #: src/lib/fcitx-utils/key.cpp:138 - msgctxt "Key name" -@@ -2238,17 +2240,17 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:90 - msgctxt "Key name" - msgid "ScrollLock" --msgstr "" -+msgstr "دومىلىما قۇلۇپلاش كونۇپكىسى" - - #: src/lib/fcitx-utils/key.cpp:108 - msgctxt "Key name" - msgid "Search" --msgstr "" -+msgstr "ئىزدە" - - #: src/lib/fcitx-utils/key.cpp:233 - msgctxt "Key name" - msgid "Select" --msgstr "" -+msgstr "تاللاش" - - #: src/modules/imselector/imselector.cpp:257 - msgid "Select input method:" -@@ -2269,7 +2271,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:185 - msgctxt "Key name" - msgid "Send" --msgstr "" -+msgstr "يوللاش" - - #: src/modules/wayland/waylandmodule.cpp:519 - msgid "" -@@ -2293,7 +2295,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:561 - msgctxt "Key name" - msgid "Shift" --msgstr "" -+msgstr "شېفىت" - - #: src/lib/fcitx-utils/key.cpp:142 - msgctxt "Key name" -@@ -2352,7 +2354,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:40 - msgctxt "Key name" - msgid "Space" --msgstr "" -+msgstr "بوشلۇق" - - #: src/ui/classic/theme.h:176 - msgid "Spacing" -@@ -2380,7 +2382,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:109 - msgctxt "Key name" - msgid "Standby" --msgstr "" -+msgstr "ساقلاش" - - #: data/org.fcitx.Fcitx5.desktop.in.in:5 - msgid "Start Input Method" -@@ -2393,7 +2395,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:95 - msgctxt "Key name" - msgid "Stop" --msgstr "" -+msgstr "توختاش" - - #: src/ui/classic/theme.h:184 - msgid "Sub Menu" -@@ -2402,7 +2404,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:210 - msgctxt "Key name" - msgid "Subtitle" --msgstr "" -+msgstr "ئېكران خېتى تەڭشىكى" - - #: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 - msgid "Super" -@@ -2421,7 +2423,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:217 - msgctxt "Key name" - msgid "Suspend" --msgstr "" -+msgstr "توختىتىپ قويۇش" - - #: src/lib/fcitx/instance.cpp:447 src/lib/fcitx/instance.cpp:673 - #: src/modules/xcb/xcbconnection.cpp:522 -@@ -2445,12 +2447,12 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:232 - msgctxt "Key name" - msgid "System Request" --msgstr "" -+msgstr "سىستېما ئىلتىماسى" - - #: src/lib/fcitx-utils/key.cpp:41 - msgctxt "Key name" - msgid "Tab" --msgstr "" -+msgstr "تاختا" - - #: src/lib/fcitx-utils/key.cpp:189 - msgctxt "Key name" -@@ -2464,7 +2466,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:190 - msgctxt "Key name" - msgid "Terminal" --msgstr "" -+msgstr "تېرمىنال" - - #: data/fcitx5-diagnose.sh:1786 - #, sh-format -@@ -2487,7 +2489,7 @@ msgstr "" - - #: src/ui/classic/classicui.h:155 - msgid "Theme" --msgstr "" -+msgstr "Theme" - - #: src/ui/classic/classicui.h:101 - msgid "This is only effective when the tray icon is xembed." -@@ -2519,7 +2521,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:212 - msgctxt "Key name" - msgid "Time" --msgstr "" -+msgstr "ۋاقتىدا" - - #: data/fcitx5-diagnose.sh:750 - #, sh-format -@@ -2536,11 +2538,11 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:191 - msgctxt "Key name" - msgid "Tools" --msgstr "" -+msgstr "قورال ساندۇقى" - - #: src/ui/classic/theme.h:48 - msgid "Top" --msgstr "" -+msgstr "ئەڭ ئۈستى" - - #: src/ui/classic/theme.h:35 - msgid "Top Center" -@@ -2637,11 +2639,11 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:226 - msgctxt "Key name" - msgid "Undo" --msgstr "" -+msgstr "Undo" - - #: src/modules/unicode/unicode.conf.in.in:3 - msgid "Unicode" --msgstr "" -+msgstr "Unicode" - - #: src/modules/unicode/unicode.cpp:456 - msgid "Unicode: " -@@ -2650,7 +2652,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:48 - msgctxt "Key name" - msgid "Up" --msgstr "" -+msgstr "يۇقىرىغا" - - #: src/frontend/xim/xim.h:33 - msgid "Use On The Spot Style (Needs restarting)" -@@ -2692,7 +2694,7 @@ msgstr "" - - #: src/ui/classic/theme.h:192 - msgid "Version" --msgstr "" -+msgstr "ئاساسى تاختا نۇسخىسى" - - #: data/fcitx5-diagnose.sh:1405 data/fcitx5-diagnose.sh:1489 - msgid "Version Line:" -@@ -2705,27 +2707,27 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:193 - msgctxt "Key name" - msgid "Video" --msgstr "" -+msgstr "ۋىدېئو" - - #: src/lib/fcitx-utils/key.cpp:214 - msgctxt "Key name" - msgid "View" --msgstr "" -+msgstr "كۆرۈش" - - #: src/lib/fcitx-utils/key.cpp:97 - msgctxt "Key name" - msgid "Volume Down" --msgstr "" -+msgstr "ئاۋازنى تۆۋەنگە چۈشۈر" - - #: src/lib/fcitx-utils/key.cpp:98 - msgctxt "Key name" - msgid "Volume Mute" --msgstr "" -+msgstr "ئاۋاز چوڭلۇقى" - - #: src/lib/fcitx-utils/key.cpp:99 - msgctxt "Key name" - msgid "Volume Up" --msgstr "" -+msgstr "ئاۋاز چوڭلۇقى" - - #: src/lib/fcitx-utils/key.cpp:139 - msgctxt "Key name" -@@ -2775,7 +2777,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:206 - msgctxt "Key name" - msgid "Wireless" --msgstr "" -+msgstr "سىمسىز" - - #: src/lib/fcitx-utils/key.cpp:194 - msgctxt "Key name" -@@ -2924,7 +2926,7 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:946 - msgid "version:" --msgstr "" -+msgstr "نەشرى:" - - #: src/im/keyboard/keyboard.cpp:292 - #, c++-format diff -Nru fcitx5-5.1.7/debian/patches/0012-update-changelog.patch fcitx5-5.1.11/debian/patches/0012-update-changelog.patch --- fcitx5-5.1.7/debian/patches/0012-update-changelog.patch 2024-08-28 10:05:23.000000000 +0800 +++ fcitx5-5.1.11/debian/patches/0012-update-changelog.patch 1970-01-01 08:00:00.000000000 +0800 @@ -1,29 +0,0 @@ -From: hantengc <hanteng@kylinos.cn> -Date: Mon, 20 May 2024 17:08:41 +0800 -Subject: update changelog - ---- - src/modules/commitstringdbus/commitstringdbus-addon.conf.in | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git a/src/modules/commitstringdbus/commitstringdbus-addon.conf.in b/src/modules/commitstringdbus/commitstringdbus-addon.conf.in -index 27d945a..5220fe2 100644 ---- a/src/modules/commitstringdbus/commitstringdbus-addon.conf.in -+++ b/src/modules/commitstringdbus/commitstringdbus-addon.conf.in -@@ -2,11 +2,12 @@ - Name[zh_CN]=fcitx5 提交字符串dbus - Name=dbus commit string - Type=SharedLibrary -+Library=libcommitstringdbus - Category=Module - Version=5.1.5 - OnDemand=False - Configurable=True - --[Addon/OptionalDependencies] --0=xcb --1=wayland -\ No newline at end of file -+[Addon/Dependencies] -+0=dbus -+1=core:@PROJECT_VERSION@ diff -Nru fcitx5-5.1.7/debian/patches/0013-Translated-using-Weblate-Uyghur.patch fcitx5-5.1.11/debian/patches/0013-Translated-using-Weblate-Uyghur.patch --- fcitx5-5.1.7/debian/patches/0013-Translated-using-Weblate-Uyghur.patch 2024-08-28 10:05:23.000000000 +0800 +++ fcitx5-5.1.11/debian/patches/0013-Translated-using-Weblate-Uyghur.patch 1970-01-01 08:00:00.000000000 +0800 @@ -1,1473 +0,0 @@ -From: KevinDuan <duankaiwen@kylinos.com> -Date: Tue, 4 Jun 2024 11:55:16 +0000 -Subject: Translated using Weblate (Uyghur) - -Currently translated at 44.6% (285 of 638 strings) - -Translation: openkylin-nile-new/fcitx5 -Translate-URL: http://weblate.openkylin.top/projects/openkylin-nile-new/fcitx5/ug/ ---- - po/ug.po | 405 ++++++++++++++++++++++++++++++++++----------------------------- - 1 file changed, 222 insertions(+), 183 deletions(-) - -diff --git a/po/ug.po b/po/ug.po -index aaca223..3dd7ad7 100644 ---- a/po/ug.po -+++ b/po/ug.po -@@ -13,7 +13,7 @@ msgstr "" - "Project-Id-Version: fcitx5\n" - "Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" - "POT-Creation-Date: 2023-10-19 05:51+0000\n" --"PO-Revision-Date: 2024-05-20 09:09+0000\n" -+"PO-Revision-Date: 2024-06-04 11:55+0000\n" - "Last-Translator: KevinDuan <duankaiwen@kylinos.com>\n" - "Language-Team: Uyghur <http://weblate.openkylin.top/projects/" - "openkylin-nile-new/fcitx5/ug/>\n" -@@ -26,7 +26,7 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:900 - msgid "${1} Environment Variables:" --msgstr "" -+msgstr "{1} مۇھىت ئۆزگەرگۈچى مىقدار :" - - #: data/fcitx5-diagnose.sh:886 - msgid "${1} Settings Directory:" -@@ -38,19 +38,19 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:909 - msgid "${1} is not set." --msgstr "" -+msgstr "${1} بېكىتىلمىدى." - - #: data/fcitx5-diagnose.sh:906 - msgid "${1} is set to ${2}." --msgstr "" -+msgstr "${1} ${2} قىلىپ بىكىتىلدى." - - #: data/fcitx5-diagnose.sh:565 - msgid "${1} not found." --msgstr "" -+msgstr "${1} تېپىلمىدى." - - #: data/fcitx5-diagnose.sh:977 - msgid "${1} works properly." --msgstr "" -+msgstr "${1} نىڭ خىزمىتى نورمال." - - #: src/lib/fcitx/instance.cpp:407 - msgid "(Not available)" -@@ -62,43 +62,43 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:707 - msgid "/Beginner%27s_Guide" --msgstr "" -+msgstr "/دەسلەپكى%27_Guide" - - #: data/fcitx5-diagnose.sh:754 - msgid "/Hall_of_Shame_for_Linux_IME_Support" --msgstr "" -+msgstr "/Hall_of_Shame_for_Linux_IME_Support" - - #: data/fcitx5-diagnose.sh:718 - msgid "/Input_method_related_environment_variables" --msgstr "" -+msgstr "/Input_method_related_environment_variables/zh-cn" - - #: data/fcitx5-diagnose.sh:734 - msgid "/Note_for_GNOME_Later_than_3.6" --msgstr "" -+msgstr "/Note_for_GNOME_Later_than_3.6" - - #: data/fcitx5-diagnose.sh:758 - msgid "/XIM" --msgstr "" -+msgstr "/XIM/zh-cn" - - #: src/modules/unicode/charselectdata.cpp:215 - msgid "<Low Surrogate>" --msgstr "" -+msgstr "‹تۆۋەن ۋاكالەت رايونى›" - - #: src/modules/unicode/charselectdata.cpp:211 - msgid "<Non Private Use High Surrogate>" --msgstr "" -+msgstr "‹يۇقىرى ۋاكالەت رايونى ئەمەس›" - - #: src/modules/unicode/charselectdata.cpp:213 - msgid "<Private Use High Surrogate>" --msgstr "" -+msgstr "‹ مەخسۇس ۋاكالەت ۋاكالەت رايونى›" - - #: src/modules/unicode/charselectdata.cpp:217 - msgid "<Private Use>" --msgstr "" -+msgstr "<مەخسۇس رايون>" - - #: src/modules/unicode/charselectdata.cpp:247 - msgid "<not assigned>" --msgstr "" -+msgstr "< ئەۋەتىلمىدى >" - - #: src/ui/virtualkeyboard/virtualkeyboard.conf.in.in:4 - msgid "A virtual keyboard backend based on DBus" -@@ -123,19 +123,19 @@ msgstr "" - - #: src/modules/unicode/unicode.conf.in.in:4 - msgid "Add Unicode Typing Support" --msgstr "" -+msgstr "يۇنىكودلۇق كىرگۈزگۈچ قوللاش" - - #: data/fcitx5-diagnose.sh:1565 - msgid "Addon Config Dir:" --msgstr "" -+msgstr "قىستۇرما سەپلىمە ھۆججەت مۇندەرىجىسى :" - - #: data/fcitx5-diagnose.sh:1650 - msgid "Addon Libraries:" --msgstr "" -+msgstr "قىستۇرما ئامبىرى :" - - #: data/fcitx5-diagnose.sh:1593 - msgid "Addon List:" --msgstr "" -+msgstr "قىستۇرما تىزىملىكى:" - - #: src/lib/fcitx-utils/key.cpp:146 - msgctxt "Key name" -@@ -144,15 +144,15 @@ msgstr "" - - #: src/lib/fcitx/globalconfig.cpp:26 - msgid "All" --msgstr "ھەممە ئادەم" -+msgstr "ھەممە" - - #: data/fcitx5-diagnose.sh:1367 - msgid "All found Gtk ${1} immodule files exist." --msgstr "" -+msgstr "بارلىق Gtk ${1} كىرگۈزگۈچ مودۇل ھۆججىتى تېپىلدى." - - #: data/fcitx5-diagnose.sh:1676 - msgid "All libraries for all addons are found." --msgstr "" -+msgstr "قىستۇرما ئېھتىياجلىق بولغان ئامبارنىڭ ھەممىسى تېپىلدى." - - #: data/fcitx5-diagnose.sh:854 - msgid "All locales:" -@@ -172,12 +172,12 @@ msgstr "" - - #: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:29 - msgid "Alt" --msgstr "ئالىت" -+msgstr "Alt" - - #: src/lib/fcitx-utils/key.cpp:560 - msgctxt "Key name" - msgid "Alt" --msgstr "ئالىت" -+msgstr "Alt" - - #: src/modules/xcb/xcbmodule.h:33 - msgid "Always set layout to be only group layout" -@@ -224,7 +224,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:93 - msgctxt "Key name" - msgid "Back" --msgstr "كەينىگە يېنىش" -+msgstr "چېكىنىش" - - #: src/lib/fcitx-utils/key.cpp:150 - msgctxt "Key name" -@@ -237,11 +237,11 @@ msgstr "" - - #: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 - msgid "Background" --msgstr "" -+msgstr "ئارقا كۆرۈنۈشى" - - #: src/ui/classic/theme.h:85 - msgid "Background Image" --msgstr "" -+msgstr "تەگلىك رەسىم" - - #: src/lib/fcitx-utils/key.cpp:42 - msgctxt "Key name" -@@ -250,16 +250,16 @@ msgstr "ئارقا بوشلۇق" - - #: data/fcitx5-diagnose.sh:827 - msgid "Bash Version:" --msgstr "" -+msgstr "Bash نەشىرى:" - - #: src/lib/fcitx-utils/key.cpp:204 - msgctxt "Key name" - msgid "Battery" --msgstr "باتارېيە" -+msgstr "باتارىيە" - - #: data/fcitx5-diagnose.sh:706 - msgid "Beginner's Guide" --msgstr "" -+msgstr "دەسلەپكى ساۋات" - - #: src/lib/fcitx/globalconfig.cpp:202 - msgid "Behavior" -@@ -268,7 +268,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:222 - msgctxt "Key name" - msgid "Blue" --msgstr "" -+msgstr "كۆك" - - #: src/lib/fcitx-utils/key.cpp:205 - msgctxt "Key name" -@@ -298,7 +298,7 @@ msgstr "" - - #: src/ui/classic/theme.h:50 - msgid "Bottom" --msgstr "ئاستىنقى" -+msgstr "ئەڭ ئاستى" - - #: src/ui/classic/theme.h:38 - msgid "Bottom Center" -@@ -325,7 +325,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:155 - msgctxt "Key name" - msgid "Calculator" --msgstr "" -+msgstr "ھېسابلىغۇچ" - - #: src/lib/fcitx-utils/key.cpp:264 - msgctxt "Key name" -@@ -342,7 +342,7 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:820 - msgid "Cannot determine desktop environment." --msgstr "" -+msgstr "ئۈستەل يۈزى مۇھىتىنى جەزىملەشتۈرگىلى بولمايدۇ." - - #: data/fcitx5-diagnose.sh:1584 - msgid "Cannot find ${1} addon config directory." -@@ -367,11 +367,11 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:1428 - msgid "Cannot find ${2} for gtk ${1}" --msgstr "" -+msgstr "${1} نىڭ ${2} نى تاپالمىدى" - - #: data/fcitx5-diagnose.sh:995 - msgid "Cannot find DBus name ${1} owner." --msgstr "" -+msgstr "DBus نامى $ {1} نىڭ ئىگىسىنى تاپالمىدىم." - - #: data/fcitx5-diagnose.sh:1109 - msgid "Cannot find a GUI config tool, please install one of ${1}, or ${2}." -@@ -387,32 +387,34 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:1658 - msgid "Cannot find file ${1} of addon ${2}." --msgstr "" -+msgstr "قىستۇرما ${2}نىڭ ${1} ھۆججىتىنى تاپالمىدى." - - #: data/fcitx5-diagnose.sh:1668 - msgid "Cannot find following required libraries for ${1} of addon ${2}." --msgstr "" -+msgstr "${2} قىستۇرمىسىنىڭ ${1} ئامبىرىنى تاپالمىدى." - - #: data/fcitx5-diagnose.sh:1512 - msgid "Cannot find immodules cache for gtk ${1}" --msgstr "" -+msgstr "${1}gtk نىڭ كىرگۈزگۈچ مودۇلىنىڭ بۇفېرلىق ساقلىغۇچىنى تاپقىلى بولمىدى" - - #: data/fcitx5-diagnose.sh:1698 - msgid "" - "Cannot find kimpanel dbus interface or enabled non-kimpanel user interface." - msgstr "" -+"نۆۋەتتە kimpanel dbus نىڭ ئۇلىنىش ئېغىزى ياكى kimpanl بولمىغان ئابونت " -+"كۆرۈنمە يۈزىنى تاپقىلى بولمايدۇ." - - #: data/fcitx5-diagnose.sh:1003 - msgid "Cannot find pid of DBus name ${1} owner." --msgstr "" -+msgstr "DBus نامى ${1} بولغان pid ئىگىسىنى تاپالمىدى." - - #: data/fcitx5-diagnose.sh:1175 - msgid "Cannot find xim_server on root window." --msgstr "" -+msgstr "غول كۆزنەكتىنxim _ server نى تاپقىلى بولمايدۇ." - - #: data/fcitx5-diagnose.sh:1149 - msgid "Cannot interpret XMODIFIERS: ${1}." --msgstr "" -+msgstr "نى يىشەلمىدى XMODIFIERS: ${1}." - - #: src/lib/fcitx-utils/key.cpp:53 - msgctxt "Key name" -@@ -421,7 +423,7 @@ msgstr "بوشلۇق كونۇپكىسى" - - #: src/ui/classic/theme.h:37 src/ui/classic/theme.h:49 - msgid "Center" --msgstr "" -+msgstr "ئوتتۇرىغا" - - #: src/ui/classic/theme.h:36 - msgid "Center Left" -@@ -441,7 +443,7 @@ msgstr "" - - #: src/im/keyboard/keyboard.h:56 src/modules/quickphrase/quickphrase.h:41 - msgid "Choose key modifier" --msgstr "" -+msgstr "سۆز تاللاش كونۇپكىسى" - - #: src/ui/classic/classicui.conf.in.in:3 - msgid "Classic User Interface" -@@ -458,7 +460,7 @@ msgstr "" - - #: src/modules/clipboard/clipboard.conf.in.in:3 - msgid "Clipboard" --msgstr "" -+msgstr "چاپلاش تاختىسى" - - #: src/modules/clipboard/clipboard.cpp:353 - msgid "Clipboard (Press BackSpace/Delete to clear history):" -@@ -467,7 +469,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:157 - msgctxt "Key name" - msgid "Close" --msgstr "يېپىش" -+msgstr "تاقاش" - - #: src/lib/fcitx-utils/key.cpp:250 - msgctxt "Key name" -@@ -476,7 +478,7 @@ msgstr "" - - #: src/ui/classic/theme.h:89 - msgid "Color" --msgstr "رەڭ" -+msgstr "رەڭلىك" - - #: src/lib/fcitx-utils/key.cpp:148 - msgctxt "Key name" -@@ -501,15 +503,15 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:1051 - msgid "Config GUI for gtk${1} not found." --msgstr "" -+msgstr "${1}gtk نىڭ سەپلىمە يۈزى تېپىلمىدى." - - #: data/fcitx5-diagnose.sh:1047 - msgid "Config GUI for gtk${1}:" --msgstr "" -+msgstr "GTK ${1} نىڭ سەپلىمە كۆرۈنمە يۈزى :" - - #: data/fcitx5-diagnose.sh:1081 - msgid "Config GUI for kde:" --msgstr "" -+msgstr "KDE نىڭ سەپلىمە كۆرۈنىشى :" - - #: data/fcitx5-diagnose.sh:1070 - msgid "Config GUI for qt not found." -@@ -521,11 +523,11 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:1097 - msgid "Config Tool Wrapper:" --msgstr "" -+msgstr "سەپلەش قورالى ئوراپ پىچەتلەش :" - - #: data/fcitx5-diagnose.sh:1793 - msgid "Configuration:" --msgstr "" -+msgstr "سەپلىمە:" - - #: src/ui/classic/xcbtraywindow.cpp:38 - #: src/modules/notificationitem/dbusmenu.cpp:251 -@@ -534,12 +536,12 @@ msgstr "سەپلىمە" - - #: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 - msgid "Control" --msgstr "" -+msgstr "Control" - - #: src/lib/fcitx-utils/key.cpp:559 - msgctxt "Key name" - msgid "Control" --msgstr "" -+msgstr "Control" - - #: src/lib/fcitx-utils/key.cpp:158 - msgctxt "Key name" -@@ -552,19 +554,19 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:856 - msgid "Current locale:" --msgstr "" -+msgstr "نۆۋەتتىكى locale:" - - #: data/fcitx5-diagnose.sh:894 - msgid "Current user:" --msgstr "" -+msgstr "ھازىرقى ئابونېنت:" - - #: data/fcitx5-diagnose.sh:882 - msgid "Current value of ${1} is ${2} (${3})." --msgstr "" -+msgstr "{1} نىڭ ھازىرقى قىممىتى${2} (${3})." - - #: src/modules/spell/spell.h:22 - msgid "Custom" --msgstr "ئۆرپ-ئادەت" -+msgstr "ئۆز تەڭشەك" - - #: src/lib/fcitx/globalconfig.cpp:175 - msgid "Custom Xkb Option" -@@ -577,7 +579,7 @@ msgstr "كېسىش" - - #: src/modules/dbus/dbus.conf.in.in:3 - msgid "DBus" --msgstr "" -+msgstr "DBus" - - #: src/frontend/dbusfrontend/dbusfrontend.conf.in.in:3 - msgid "DBus Frontend" -@@ -589,11 +591,11 @@ msgstr "" - - #: src/modules/notificationitem/notificationitem.conf.in.in:4 - msgid "DBus based new Freedesktop.org tray icon" --msgstr "" -+msgstr "DBus ئاساسىدىكى يېڭى Freedesktop. org ئەپ تارتمىسى سىنبەلگىسى" - - #: data/fcitx5-diagnose.sh:983 - msgid "DBus interface:" --msgstr "" -+msgstr "DBus يۈزى:" - - #: src/lib/fcitx-utils/key.cpp:161 - msgctxt "Key name" -@@ -615,7 +617,7 @@ msgstr "" - #: src/lib/fcitx/inputmethodmanager.cpp:138 src/lib/fcitx/instance.cpp:354 - #: src/ui/classic/themes/default/theme.conf.in:3 - msgid "Default" --msgstr "ئەسلىدىكى" -+msgstr "ئالدىن بېكىتىلگەن" - - #: src/ui/classic/themes/default-dark/theme-dark.conf.in:3 - msgid "Default Dark" -@@ -648,15 +650,15 @@ msgstr "ئۆچۈرۈش" - - #: src/ui/classic/theme.h:195 - msgid "Description" --msgstr "چۈشەندۈرۈش" -+msgstr "بايان قىلىش" - - #: data/fcitx5-diagnose.sh:817 - msgid "Desktop Environment:" --msgstr "" -+msgstr "ئۈستەليۈزى مۇھىتى:" - - #: data/fcitx5-diagnose.sh:822 - msgid "Desktop environment is ${1}." --msgstr "" -+msgstr "ئۈستەليۈزى مۇھىتى ${1}." - - #: src/modules/wayland/waylandmodule.cpp:476 - msgid "" -@@ -679,7 +681,7 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:868 - msgid "Directories:" --msgstr "" -+msgstr "مۇندەرىجە:" - - #: src/lib/fcitx-utils/key.cpp:160 - msgctxt "Key name" -@@ -688,7 +690,7 @@ msgstr "كۆرسىتىش" - - #: src/modules/notifications/notifications.cpp:204 - msgid "Do not show again" --msgstr "قايتا كۆرسەتمەسلىك" -+msgstr "ئەمدى كۆرسەتمەڭ" - - #: src/lib/fcitx-utils/key.cpp:162 - msgctxt "Key name" -@@ -698,7 +700,7 @@ msgstr "ئارخىپ" - #: src/lib/fcitx-utils/key.cpp:50 - msgctxt "Key name" - msgid "Down" --msgstr "تۆۋەنگە" -+msgstr "ئاستى" - - #: src/modules/quickphrase/quickphrase.h:47 - msgid "Editor" -@@ -717,7 +719,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:137 - msgctxt "Key name" - msgid "Eject" --msgstr "سەكرەپ چىقىش" -+msgstr "سەكرىتىش" - - #: src/modules/emoji/emoji.conf.in.in:3 - msgid "Emoji" -@@ -789,31 +791,35 @@ msgid "" - "Environment variable ${1} is \"${2}\" instead of \"${3}\". Please check if " - "you have exported it incorrectly in any of your init files." - msgstr "" -+"مۇھىت ئۆزگەرگۈچى مىقدار $ {1} نىڭ قىممىتى \"${3}\"نىڭ ئورنىغا\"${2}\"قىلىپ " -+"بېكىتىلگەن، سىز مەلۇم بىر دەسلەپكى ھۆججەتتە ئۇنىڭ قىممىتىنى خاتا تەڭشەپ " -+"قويغان قويمىغانلىقىڭىزنى تەكشۈرۈپ بېقىڭ ." - - #: data/fcitx5-diagnose.sh:874 - msgid "Environment variable ${1} is not set." --msgstr "" -+msgstr "مۇھىت ئۆزگەرگۈچى مىقدار $ {1} بېكىتىلمىگەن." - - #: data/fcitx5-diagnose.sh:1121 - msgid "Environment variable ${1} is set to \"${2}\" correctly." --msgstr "" -+msgstr "مۇھىت ئۆزگەرگۈچى مىقدار ${1} توغىرلىنىپ، ${2}\"قىلىپ بىكىتىلدى\"." - - #: data/fcitx5-diagnose.sh:878 - msgid "Environment variable ${1} is set to ${2}." --msgstr "" -+msgstr "مۇھىت ئۆزگەرگۈچى مىقدار ${1} ${2} قىلىپ بېكىتىلدى." - - #: data/fcitx5-diagnose.sh:832 - msgid "Environment:" --msgstr "" -+msgstr "مۇھىت:" - - #: data/fcitx5-diagnose.sh:860 - msgid "Error occurs when running ${1}. Please check your locale settings." - msgstr "" -+"${1} نى ئىجرا قىلغاندا خاتالىق يۈز بەردى، رايون تەڭشىكىڭىزنى تەكشۈرۈپ بېقىڭ." - - #: src/lib/fcitx-utils/key.cpp:231 - msgctxt "Key name" - msgid "Escape" --msgstr "قۇتۇلۇش" -+msgstr "Esc كۇنۇپكىسى" - - #: src/lib/fcitx-utils/key.cpp:265 - msgctxt "Key name" -@@ -844,7 +850,7 @@ msgstr "ياخشى كۆرىدىغانلار" - - #: src/modules/wayland/waylandmodule.cpp:449 - msgid "Fcitx" --msgstr "" -+msgstr "كىچىك پىنگۋىن خەت كىرگۈزگۈچى" - - #: data/org.fcitx.Fcitx5.desktop.in.in:3 - #: data/org.fcitx.Fcitx5.metainfo.xml.in:6 -@@ -857,15 +863,15 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:1564 - msgid "Fcitx Addons:" --msgstr "" -+msgstr "Fcitx قىستۇرمىسى:" - - #: data/fcitx5-diagnose.sh:1096 - msgid "Fcitx Configure UI:" --msgstr "" -+msgstr "Fcitx سەپلىمە يۈزى:" - - #: data/fcitx5-diagnose.sh:935 - msgid "Fcitx State:" --msgstr "" -+msgstr "Fcitx ھالىتى:" - - #: data/org.fcitx.Fcitx5.metainfo.xml.in:9 - msgid "" -@@ -887,7 +893,7 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:949 - msgid "Fcitx version: ${1}" --msgstr "" -+msgstr "Fcitx نەشىرى: ${1}" - - #: src/frontend/fcitx4frontend/fcitx4frontend.conf.in.in:3 - msgid "Fcitx4 Frontend" -@@ -925,7 +931,7 @@ msgstr "" - - #: src/ui/classic/classicui.h:120 - msgid "Font" --msgstr "خەت نۇسخىسى" -+msgstr "خەت شەكلى" - - #: src/ui/classic/classicui.h:150 - msgid "" -@@ -945,7 +951,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:94 - msgctxt "Key name" - msgid "Forward" --msgstr "ئالدىغا" -+msgstr "ئىلگىرىلەش" - - #: data/fcitx5-diagnose.sh:1276 - msgid "Found ${1} ${2} module: ${3}." -@@ -966,19 +972,19 @@ msgstr "" - #: data/fcitx5-diagnose.sh:944 data/fcitx5-diagnose.sh:1060 - #: data/fcitx5-diagnose.sh:1073 data/fcitx5-diagnose.sh:1101 - msgid "Found ${1} at ${2}." --msgstr "" -+msgstr "${2} دىن ${1} تېپىلدى." - - #: data/fcitx5-diagnose.sh:1640 - msgid "Found ${1} disabled addons:" --msgstr "" -+msgstr "${1} چەكلەنگەن قىستۇرما تېپىلدى :" - - #: data/fcitx5-diagnose.sh:1631 - msgid "Found ${1} enabled addons:" --msgstr "" -+msgstr "${1} قوزغالغان قىستۇرما دېتال تېپىلدى :" - - #: data/fcitx5-diagnose.sh:1681 - msgid "Found ${1} enabled user interface addons:" --msgstr "" -+msgstr "${1} قوزغىتىلغان ئىشلەتكۈچى كۆرۈنمە يۈزى قىستۇرمىسىنى تاپتى :" - - #: data/fcitx5-diagnose.sh:1416 data/fcitx5-diagnose.sh:1500 - msgid "Found ${1} im modules for gtk ${2}." -@@ -990,11 +996,11 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:1408 - msgid "Found ${2} for unknown gtk version at ${1}." --msgstr "" -+msgstr "${1} دا نامەلۇم gtk نەشىرىنىڭ ${2} نى تاپتى." - - #: data/fcitx5-diagnose.sh:1400 - msgid "Found ${3} for gtk ${1} at ${2}." --msgstr "" -+msgstr "${2} دا gtk ${1}دىن ${3}نى تاپتى." - - #: data/fcitx5-diagnose.sh:1263 data/fcitx5-diagnose.sh:1268 - msgid "Found ${3} im module for ${2}: ${1}." -@@ -1003,10 +1009,11 @@ msgstr "" - #: data/fcitx5-diagnose.sh:1493 - msgid "Found immodule cache for unknown gtk version at ${1}." - msgstr "" -+"${1} دىن نامەلۇم gtk نەشىرىدىكى كىرگۈزگۈچ مودۇللۇق بۇفېرلىق ساقلىغۇچ تېپىلدى." - - #: data/fcitx5-diagnose.sh:1485 - msgid "Found immodules cache for gtk ${1} at ${2}." --msgstr "" -+msgstr "${2} دىن gtk ${1} نىڭ كىرگۈزگۈچ مودۇلىنى تېپىلدى." - - #: data/fcitx5-diagnose.sh:1279 - msgid "Found unknown ${1} qt module: ${2}." -@@ -1014,11 +1021,11 @@ msgstr "" - - #: src/modules/notifications/notifications.conf.in.in:4 - msgid "Freedesktop.org Notification Support" --msgstr "" -+msgstr "Freedesktop.org ئۈستەل يۈزى ئەسكەرتىش قوللايدۇ" - - #: data/fcitx5-diagnose.sh:1785 - msgid "Frontends setup:" --msgstr "" -+msgstr "كۆرۈنمە يۈز تەڭشىكى :" - - #: src/lib/fcitx-utils/key.cpp:165 - msgctxt "Key name" -@@ -1033,12 +1040,12 @@ msgstr "بارماق" - #: src/lib/fcitx-utils/key.cpp:220 - msgctxt "Key name" - msgid "Green" --msgstr "" -+msgstr "يېشىل" - - #: src/ui/classic/xcbtraywindow.cpp:36 - #: src/modules/notificationitem/dbusmenu.cpp:241 - msgid "Group" --msgstr "" -+msgstr "گۇرۇپپا" - - #: src/lib/fcitx/instance.cpp:411 - #, c++-format -@@ -1052,24 +1059,24 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:1361 - msgid "Gtk ${1} immodule file ${2} does not exist." --msgstr "" -+msgstr "${1}gtk كىرگۈزگۈچ بۆلەك ھۆججىتى ${2} مەۋجۇت ئەمەس." - - #: data/fcitx5-diagnose.sh:1545 - msgid "Gtk IM module cache:" --msgstr "" -+msgstr "Gtk كىرگۈزۈگۈچى بۆلەك بۇففىر ساقلىغۇچى :" - - #: data/fcitx5-diagnose.sh:1550 - msgid "Gtk IM module files:" --msgstr "" -+msgstr "Gtk كىرگۈزگۈچ بۆلەك ھۆججىتى :" - - #: data/fcitx5-diagnose.sh:753 - msgid "Hall of Shame for Linux IME Support" --msgstr "" -+msgstr "Linuxكىرگۈزگۈچىسى قوللايدۇ" - - #: src/lib/fcitx-utils/key.cpp:253 - msgctxt "Key name" - msgid "Hangul" --msgstr "" -+msgstr "خاڭگۇلچە" - - #: src/lib/fcitx-utils/key.cpp:260 - msgctxt "Key name" -@@ -1139,7 +1146,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:213 - msgctxt "Key name" - msgid "Hibernate" --msgstr "ئۇخلادش" -+msgstr "ئۇيقۇ ھالىتى" - - #: src/modules/notifications/notifications.h:28 - msgid "Hidden Notifications" -@@ -1172,7 +1179,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:238 - msgctxt "Key name" - msgid "Hiragana" --msgstr "" -+msgstr "ھىراگانا" - - #: src/lib/fcitx-utils/key.cpp:240 - msgctxt "Key name" -@@ -1187,7 +1194,7 @@ msgstr "قويۇش تارىخى" - #: src/lib/fcitx-utils/key.cpp:45 - msgctxt "Key name" - msgid "Home" --msgstr "باش بەت" -+msgstr "باشبەت" - - #: src/lib/fcitx-utils/key.cpp:175 - msgctxt "Key name" -@@ -1201,7 +1208,7 @@ msgstr "باش بەت >" - - #: data/fcitx5-diagnose.sh:870 - msgid "Home:" --msgstr "" -+msgstr "غول مۇدەرىجە:" - - #: src/lib/fcitx-utils/key.cpp:145 - msgctxt "Key name" -@@ -1210,7 +1217,7 @@ msgstr "" - - #: src/lib/fcitx/globalconfig.cpp:200 - msgid "Hotkey" --msgstr "" -+msgstr "تېزلەتمە كۇنۇپكا" - - #: src/modules/imselector/imselector.h:35 - msgid "Hotkey for switching to the N-th input method" -@@ -1224,7 +1231,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:564 - msgctxt "Key name" - msgid "Hyper" --msgstr "" -+msgstr "Hyper" - - #: src/frontend/ibusfrontend/ibusfrontend.conf.in.in:3 - msgid "IBus Frontend" -@@ -1242,6 +1249,9 @@ msgid "" - "order to use any input method other than ${2}. See ${link} for more detail " - "as well as alternative solutions." - msgstr "" -+"ئەگەر سىز ${1} ئىشلىتىۋاتقان بولسىڭىز، ${2}ياكى ${3}نى ، ئومۇمەن ئىشلىتىپ " -+"بولغان ${2} دىن باشقا ھەرقانداق كىرگۈزگۈچنى ئۆچۈرۋەتكەن بولۇشىڭىز مۇمكىن․ " -+"باشقا ھەل قىلىش ئۇسۇللىرى ئۈچۈن ${link} دىن پايدىلىنىڭ." - - #: data/fcitx5-diagnose.sh:740 - msgid "" -@@ -1249,10 +1259,14 @@ msgid "" - "the command ${g36_disable_ibus} to disable IBus integration in order to use " - "any input method other than ${2}. See ${link} for more detail." - msgstr "" -+"ئەگەر سىز ${1} ئىشلىتىۋاتقان بولسىڭىز، بەلكىم ${2} نى تازىلاپ، ${3} نى " -+"ئۆچۈرۈشىڭىز ياكى ${g36_disable_ibus} بۇيرۇقىنى ئىشلىتىشىڭىز كېرەك․ چەكلەنگەن " -+"IBus توپلىمى ${2} دىن باشقا ھەرقانداق كىرگۈزگۈچنى ئىشلىتىدۇ. تېخىمۇ كۆپ " -+"تەپسىلاتلارنى ${link} دىن كۆرۈڭ." - - #: src/ui/classic/theme.h:129 - msgid "Image" --msgstr "" -+msgstr "سۈرەت" - - #: src/im/keyboard/keyboard.cpp:684 src/lib/fcitx/instance.cpp:446 - #: src/lib/fcitx/instance.cpp:672 src/lib/fcitx/instance.cpp:834 -@@ -1261,19 +1275,19 @@ msgstr "" - #: src/modules/xcb/xcbconnection.cpp:521 data/org.fcitx.Fcitx5.desktop.in.in:4 - #: data/org.fcitx.Fcitx5.metainfo.xml.in:7 - msgid "Input Method" --msgstr "" -+msgstr "كىرگۈزگۈچ" - - #: data/fcitx5-configtool.desktop.in.in:4 - msgid "Input Method Configuration" --msgstr "" -+msgstr "كىرگۈزگۈچ سەپلىمىسى" - - #: data/fcitx5-diagnose.sh:717 - msgid "Input Method Related Environment Variables: " --msgstr "" -+msgstr "كىرگۈزۈش ئۇسۇلىغا مۇناسىۋەتلىك مۇھىت ئۆزگەرگۈچى مىقدار : " - - #: data/fcitx5-diagnose.sh:1704 - msgid "Input Methods:" --msgstr "" -+msgstr "كىرگۈزگۈچ:" - - #: src/ui/classic/theme.h:201 - msgid "Input Panel" -@@ -1301,7 +1315,7 @@ msgstr "" - - #: src/modules/imselector/imselector.conf.in.in:3 - msgid "Input method selector" --msgstr "" -+msgstr "كىرگۈگۈچ تاللىغۇچ" - - #: src/lib/fcitx/globalconfig.cpp:103 src/lib/fcitx/globalconfig.cpp:115 - msgid "" -@@ -1320,7 +1334,7 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:1599 - msgid "Invalid addon config file ${1}." --msgstr "" -+msgstr "ئىناۋەتسىز قىستۇرما سەپلىمە ھۆججەت:${1}." - - #: data/fcitx5-diagnose.sh:1205 - msgid "" -@@ -1363,11 +1377,11 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:239 - msgctxt "Key name" - msgid "Katakana" --msgstr "" -+msgstr "كاتاكانا" - - #: src/im/keyboard/longpress.h:16 - msgid "Key" --msgstr "ئاچقۇچ" -+msgstr "كۇنۇپكا" - - #: src/im/keyboard/keyboard.cpp:315 src/im/keyboard/keyboard.conf.in.in:3 - msgid "Keyboard" -@@ -1395,7 +1409,7 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:836 - msgid "Keyboard Layout:" --msgstr "" -+msgstr "كۇنۇپكا قۇرۇلمىسى:" - - #: src/lib/fcitx-utils/key.cpp:131 - msgctxt "Key name" -@@ -1584,7 +1598,7 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:1690 - msgid "Kimpanel process:" --msgstr "" -+msgstr "Kimpanel ئىجراچى:" - - #: src/ui/classic/theme.h:50 - msgid "Last Candidate" -@@ -1703,7 +1717,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:36 - msgctxt "Key name" - msgid "Left Super" --msgstr "" -+msgstr "سول Super" - - #: src/lib/fcitx-utils/key.cpp:141 - msgctxt "Key name" -@@ -1712,11 +1726,11 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:851 - msgid "Locale:" --msgstr "" -+msgstr "دائىرە بېكىتىش:" - - #: data/fcitx5-diagnose.sh:1799 - msgid "Log:" --msgstr "" -+msgstr "خاتىرە:" - - #: src/lib/fcitx-utils/key.cpp:168 - msgctxt "Key name" -@@ -1834,7 +1848,7 @@ msgstr "" - - #: src/ui/classic/classicui.h:122 - msgid "Menu Font" --msgstr "" -+msgstr "تىزىملىك فونتى" - - #: src/lib/fcitx-utils/key.cpp:172 - msgctxt "Key name" -@@ -1895,7 +1909,7 @@ msgstr "ناخشا-مۇزىكا" - #: src/lib/fcitx-utils/key.cpp:173 - msgctxt "Key name" - msgid "My Sites" --msgstr "" -+msgstr "مېنىڭ پونكىتىم" - - #: src/ui/classic/theme.h:191 - msgid "Name" -@@ -1909,7 +1923,7 @@ msgstr "يېڭى" - #: src/lib/fcitx-utils/key.cpp:174 - msgctxt "Key name" - msgid "News" --msgstr "" -+msgstr "ئۇچۇرنى يېڭىلاش" - - #: src/im/keyboard/keyboard.h:48 - msgid "Next Candidate" -@@ -1944,15 +1958,15 @@ msgstr "" - - #: src/ui/kimpanel/kimpanel.cpp:386 - msgid "Not available" --msgstr "" -+msgstr "ئىشلەتكىلى بولمايدۇ" - - #: data/fcitx5-diagnose.sh:733 - msgid "Note for GNOME Later than 3.6" --msgstr "" -+msgstr "3.6 دىن كېيىنكى نۇسخىدىكى GNOME غا ئىزاھات" - - #: src/modules/notifications/notifications.conf.in.in:3 - msgid "Notification" --msgstr "" -+msgstr "ئۇقتۇرۇش" - - #: src/lib/fcitx-utils/key.cpp:54 - msgctxt "Key name" -@@ -1982,7 +1996,7 @@ msgstr "URL نى ئېچىش" - #: src/lib/fcitx-utils/key.cpp:176 - msgctxt "Key name" - msgid "Option" --msgstr "تاللاش" -+msgstr "تاللانما" - - #: src/ui/classic/theme.h:120 - msgid "Overlay Clip Margin" -@@ -1994,11 +2008,11 @@ msgstr "" - - #: src/ui/classic/theme.h:113 - msgid "Overlay X offset" --msgstr "" -+msgstr "قاپلانغان رەسىم X كە سۈرۈش" - - #: src/ui/classic/theme.h:114 - msgid "Overlay Y offset" --msgstr "" -+msgstr "قاپلانغان رەسىم Y كە سۈرۈش" - - #: src/ui/classic/theme.h:112 - msgid "Overlay position" -@@ -2010,11 +2024,11 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:991 - msgid "Owner of DBus name ${1} is ${2}." --msgstr "" -+msgstr "نۆۋەتتە DBus نامى ${1} نىڭ ئىگىسى ${2}." - - #: data/fcitx5-diagnose.sh:999 - msgid "PID of DBus name ${1} owner is ${2}." --msgstr "" -+msgstr "نۆۋەتتە DBus نامى ${1} نىڭ PID ئىگىسى ${2}." - - #: src/lib/fcitx-utils/key.cpp:52 - msgctxt "Key name" -@@ -2032,7 +2046,7 @@ msgstr "" - - #: src/im/keyboard/keyboard.h:37 - msgid "Page size" --msgstr "" -+msgstr "بەت چوڭ-كىچىكلىكى" - - #: src/lib/fcitx-utils/key.cpp:177 - msgctxt "Key name" -@@ -2046,12 +2060,12 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:44 - msgctxt "Key name" - msgid "Pause" --msgstr "توختاش" -+msgstr "Pause" - - #: src/lib/fcitx-utils/key.cpp:178 - msgctxt "Key name" - msgid "Phone" --msgstr "" -+msgstr "تېلېفون" - - #: src/lib/fcitx-utils/key.cpp:202 - msgctxt "Key name" -@@ -2073,6 +2087,9 @@ msgid "" - "Please set environment variable ${env_name} to \"${value}\" using the tool " - "your distribution provides or add ${1} to your ${2}. See ${link}." - msgstr "" -+"سىز تارقاتقان نۇسخا تەمىنلىگەن قۇرال ئارقىلىق مۇھىت ئۆزگەرگۈچى مىقدار " -+"${env_name} نى \"${value}\" غا تەڭشەڭ ياكى ${1} نى${2} غا قوشۇڭ․ {link} نى " -+"كۆرۈپ پايدىلانسىڭىز بولىدۇ." - - #: src/lib/fcitx-utils/key.cpp:216 - msgctxt "Key name" -@@ -2082,7 +2099,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:135 - msgctxt "Key name" - msgid "Power Off" --msgstr "توكسىز" -+msgstr "تاقاش" - - #: src/lib/fcitx/instance.cpp:834 - msgid "Preedit" -@@ -2124,11 +2141,11 @@ msgstr "بېسىپ چىقىرىش ئېكرانى" - - #: src/lib/fcitx/globalconfig.cpp:27 - msgid "Program" --msgstr "" -+msgstr "پىروگىرامما" - - #: data/fcitx5-diagnose.sh:1249 - msgid "Qt IM module files:" --msgstr "" -+msgstr "Qtكىرگۈزگۈچ بۆلەك ھۆججىتى:" - - #: src/modules/quickphrase/quickphrase.conf.in.in:3 - msgid "Quick Phrase" -@@ -2136,12 +2153,12 @@ msgstr "" - - #: src/modules/quickphrase/quickphrase.cpp:472 - msgid "Quick Phrase: " --msgstr "" -+msgstr "تېز كىرگۈزۈزش: " - - #: src/lib/fcitx-utils/key.cpp:219 - msgctxt "Key name" - msgid "Red" --msgstr "" -+msgstr "قىزىل" - - #: src/lib/fcitx-utils/key.cpp:227 - msgctxt "Key name" -@@ -2176,7 +2193,7 @@ msgstr "قايتىش" - #: src/lib/fcitx-utils/key.cpp:49 - msgctxt "Key name" - msgid "Right" --msgstr "توغرىسى" -+msgstr "ئوڭ" - - #: src/lib/fcitx-utils/key.cpp:31 - msgctxt "Key name" -@@ -2201,7 +2218,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:37 - msgctxt "Key name" - msgid "Right Super" --msgstr "" -+msgstr "ئوڭ Super" - - #: src/lib/fcitx-utils/key.cpp:237 - msgctxt "Key name" -@@ -2225,7 +2242,7 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:916 - msgid "Running as root:" --msgstr "" -+msgstr "باشقۇرغۇچى سۈپىتىدە ئىجرا قىلىش :" - - #: src/lib/fcitx-utils/key.cpp:184 - msgctxt "Key name" -@@ -2235,7 +2252,7 @@ msgstr "ساقلاش" - #: src/lib/fcitx-utils/key.cpp:138 - msgctxt "Key name" - msgid "Screensaver" --msgstr "" -+msgstr "ئېكران قوغداش" - - #: src/lib/fcitx-utils/key.cpp:90 - msgctxt "Key name" -@@ -2262,7 +2279,7 @@ msgstr "" - - #: src/modules/imselector/imselector.conf.in.in:4 - msgid "Select specific input method via keyboard" --msgstr "" -+msgstr "كۇنۇپكا تاختىسى ئارقىلىق ئالاھىدە خەت كىرگۈزگۈچنى تاللاڭ" - - #: src/ui/classic/theme.h:174 - msgid "Selected Item text color" -@@ -2295,7 +2312,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:561 - msgctxt "Key name" - msgid "Shift" --msgstr "شېفىت" -+msgstr "Shift" - - #: src/lib/fcitx-utils/key.cpp:142 - msgctxt "Key name" -@@ -2349,7 +2366,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:140 - msgctxt "Key name" - msgid "Sleep" --msgstr "" -+msgstr "ئۇخلىتىش" - - #: src/lib/fcitx-utils/key.cpp:40 - msgctxt "Key name" -@@ -2362,7 +2379,7 @@ msgstr "" - - #: src/im/keyboard/keyboard.h:79 src/modules/spell/spell.conf.in.in:3 - msgid "Spell" --msgstr "" -+msgstr "ئىملا" - - #: src/lib/fcitx-utils/key.cpp:186 - msgctxt "Key name" -@@ -2377,7 +2394,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:163 - msgctxt "Key name" - msgid "Spreadsheet" --msgstr "" -+msgstr "خىزمەت جەدىۋېلى" - - #: src/lib/fcitx-utils/key.cpp:109 - msgctxt "Key name" -@@ -2386,7 +2403,7 @@ msgstr "ساقلاش" - - #: data/org.fcitx.Fcitx5.desktop.in.in:5 - msgid "Start Input Method" --msgstr "" -+msgstr "كىرگۈزگۈچنى قوزغىتىش" - - #: src/modules/notificationitem/notificationitem.conf.in.in:3 - msgid "Status Notifier" -@@ -2395,7 +2412,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:95 - msgctxt "Key name" - msgid "Stop" --msgstr "توختاش" -+msgstr "باشتىن ئاخىر توساش" - - #: src/ui/classic/theme.h:184 - msgid "Sub Menu" -@@ -2408,12 +2425,12 @@ msgstr "ئېكران خېتى تەڭشىكى" - - #: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 - msgid "Super" --msgstr "" -+msgstr "Super" - - #: src/lib/fcitx-utils/key.cpp:562 - msgctxt "Key name" - msgid "Super" --msgstr "" -+msgstr "Super" - - #: src/lib/fcitx-utils/key.cpp:188 - msgctxt "Key name" -@@ -2423,7 +2440,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:217 - msgctxt "Key name" - msgid "Suspend" --msgstr "توختىتىپ قويۇش" -+msgstr "ئۇخلىتىپ قويۇش ھالىتى" - - #: src/lib/fcitx/instance.cpp:447 src/lib/fcitx/instance.cpp:673 - #: src/modules/xcb/xcbconnection.cpp:522 -@@ -2442,7 +2459,7 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:789 - msgid "System Info:" --msgstr "" -+msgstr "سېستىما ئۇچۇرى:" - - #: src/lib/fcitx-utils/key.cpp:232 - msgctxt "Key name" -@@ -2452,7 +2469,7 @@ msgstr "سىستېما ئىلتىماسى" - #: src/lib/fcitx-utils/key.cpp:41 - msgctxt "Key name" - msgid "Tab" --msgstr "تاختا" -+msgstr "Tab" - - #: src/lib/fcitx-utils/key.cpp:189 - msgctxt "Key name" -@@ -2485,7 +2502,7 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:895 - msgid "The script is run as ${1} (${2})." --msgstr "" -+msgstr "قوليازما ${1} (${2}) دەپ ئىجرا بولىدۇ." - - #: src/ui/classic/classicui.h:155 - msgid "Theme" -@@ -2530,6 +2547,10 @@ msgid "" - "${link1}. For other more general problems of using XIM including application " - "freezing, see ${link2}." - msgstr "" -+"سىز ${link1} دىن xim نى ئىشلەتكەندە مەسىلە كۆرۈلىدىغان بەزى ئەپلەرنى " -+"تاپالايسىز. قوللىنىشچان پروگراممىلارنىڭ قېتىۋېلىشىنى ئۆز ئىچىگە ئالغان xim " -+"نى ئىشلىتىشتە كۆرۈلۈش ئېھتىمالى بولغان تېخىمۇ كۆپ مەسىلىلەرنى ${link2} دىن " -+"كۆرۈڭ." - - #: src/lib/fcitx/globalconfig.cpp:132 - msgid "Toggle embedded preedit" -@@ -2538,7 +2559,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:191 - msgctxt "Key name" - msgid "Tools" --msgstr "قورال ساندۇقى" -+msgstr "قۇراللار" - - #: src/ui/classic/theme.h:48 - msgid "Top" -@@ -2546,7 +2567,7 @@ msgstr "ئەڭ ئۈستى" - - #: src/ui/classic/theme.h:35 - msgid "Top Center" --msgstr "" -+msgstr "چوققا كۆرۈنمىسۇن كۆرۈش مەركىزى" - - #: src/ui/classic/theme.h:35 - msgid "Top Left" -@@ -2600,7 +2621,7 @@ msgstr "" - - #: src/lib/fcitx/globalconfig.cpp:34 - msgid "Trigger Input Method" --msgstr "" -+msgstr "ئاكتىپلاش / ئاكتىپسىز كىرگۈزگۈچنى ئالماشتۇرۇش" - - #: src/modules/imselector/imselector.h:25 - #: src/modules/quickphrase/quickphrase.h:36 src/modules/unicode/unicode.h:31 -@@ -2634,7 +2655,7 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:1011 - msgid "Unable to find a program to check dbus." --msgstr "" -+msgstr "نۆۋەتتە dbus نى تەكشۈرۈش پروگراممىسىنى تاپالمىدى." - - #: src/lib/fcitx-utils/key.cpp:226 - msgctxt "Key name" -@@ -2643,7 +2664,7 @@ msgstr "Undo" - - #: src/modules/unicode/unicode.conf.in.in:3 - msgid "Unicode" --msgstr "Unicode" -+msgstr "بىر تۇتاش كود" - - #: src/modules/unicode/unicode.cpp:456 - msgid "Unicode: " -@@ -2680,11 +2701,11 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:1677 - msgid "User Interface:" --msgstr "" -+msgstr "ئابونېنت كۆرۈنمە يۈزى:" - - #: data/fcitx5-diagnose.sh:986 - msgid "Using ${1} to check dbus." --msgstr "" -+msgstr "${1} نى ئىشلىتىپ dbus نى تەكشۈرۈڭ." - - #: data/fcitx5-diagnose.sh:256 - msgid "" -@@ -2694,11 +2715,11 @@ msgstr "" - - #: src/ui/classic/theme.h:192 - msgid "Version" --msgstr "ئاساسى تاختا نۇسخىسى" -+msgstr "نەشرى" - - #: data/fcitx5-diagnose.sh:1405 data/fcitx5-diagnose.sh:1489 - msgid "Version Line:" --msgstr "" -+msgstr "نەشىرى:" - - #: src/ui/classic/classicui.h:114 - msgid "Vertical Candidate List" -@@ -2717,7 +2738,7 @@ msgstr "كۆرۈش" - #: src/lib/fcitx-utils/key.cpp:97 - msgctxt "Key name" - msgid "Volume Down" --msgstr "ئاۋازنى تۆۋەنگە چۈشۈر" -+msgstr "ئاۋاز تۆەنلىتىش" - - #: src/lib/fcitx-utils/key.cpp:98 - msgctxt "Key name" -@@ -2727,12 +2748,12 @@ msgstr "ئاۋاز چوڭلۇقى" - #: src/lib/fcitx-utils/key.cpp:99 - msgctxt "Key name" - msgid "Volume Up" --msgstr "ئاۋاز چوڭلۇقى" -+msgstr "ئاۋازنى كۆتۈرۈش" - - #: src/lib/fcitx-utils/key.cpp:139 - msgctxt "Key name" - msgid "WWW" --msgstr "" -+msgstr "دۇنيا تور بىرلەشمىسى" - - #: src/lib/fcitx-utils/key.cpp:136 - msgctxt "Key name" -@@ -2748,7 +2769,7 @@ msgstr "" - - #: src/modules/wayland/wayland.conf.in.in:3 - msgid "Wayland" --msgstr "" -+msgstr "Wayland" - - #: src/modules/wayland/waylandmodule.cpp:449 - msgid "Wayland Diagnose" -@@ -2761,7 +2782,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:200 - msgctxt "Key name" - msgid "WebCam" --msgstr "" -+msgstr "تور كامىراسى" - - #: src/lib/fcitx/globalconfig.cpp:170 - msgid "" -@@ -2772,7 +2793,7 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:926 - msgid "Why is it bad to run as root" --msgstr "" -+msgstr "روت سالاھىيىتىنىڭ ياخشى ئىشلىمەسلىكنىڭ سەۋەبى" - - #: src/lib/fcitx-utils/key.cpp:206 - msgctxt "Key name" -@@ -2803,38 +2824,41 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:1188 - msgid "XIM encoding:" --msgstr "" -+msgstr "XIM كودى :" - - #: data/fcitx5-diagnose.sh:1183 - msgid "XIM for Emacs:" --msgstr "" -+msgstr "Emacs قا ئىشلىتىلىدىغان XIM :" - - #: data/fcitx5-diagnose.sh:1159 - msgid "XIM_SERVERS on root window:" --msgstr "" -+msgstr "غول كۆزنەك ئۈستىدىكى XIM_SERVERS:" - - #: data/fcitx5-diagnose.sh:1136 - msgid "XMODIFIERS is not set" --msgstr "" -+msgstr "XMODIFIERS بېكىتىلمىگەن" - - #: data/fcitx5-diagnose.sh:1157 - msgid "Xim Server Name from Environment variable is ${1}." --msgstr "" -+msgstr "مۇھىت ئۆزگەرگۈچى مىقداردىن ئېرىشكەن Xim مۇلازىمەت نامى ${1}." - - #: data/fcitx5-diagnose.sh:1169 - msgid "Xim server name is the same with that set in the environment variable." - msgstr "" -+"Xim مۇلازىمىتىنىڭ نامى مۇھىت ئۆزگەرگۈچى مىقدارىدا بەلگىلەنگىنى بىلەن ئوخشاش." - - #: data/fcitx5-diagnose.sh:1171 - msgid "" - "Xim server name: \"${1}\" is different from that set in the environment " - "variable: \"${2}\"." - msgstr "" -+"Xim مۇلازىمەت نامى:${1}\"بىلەن مۇھىت ئۆزگەرگۈچى مىقدارىدا بېكىتىلگەن قىممەت\"" -+"${2}\"ئوخشىمايدۇ." - - #: src/lib/fcitx-utils/key.cpp:221 - msgctxt "Key name" - msgid "Yellow" --msgstr "" -+msgstr "سېرىق رەڭ" - - #: data/fcitx5-diagnose.sh:924 - msgid "" -@@ -2842,20 +2866,29 @@ msgid "" - "either means you have security problems or the result of this script may not " - "be accurate. See ${3} or ${4} for more information." - msgstr "" -+"سىز ${1} ياكى ${2} ئارقىلىق بۇ قوليازمىنى ئىجرا قىلسىڭىز بولىدۇ. بۇ ئىككى " -+"خىل ئەھۋالدىن دېرەك بېرىدۇ، يا سىزدە بىخەتەرلىك مەسىلىسى بار ياكى بۇ " -+"يېزىقنىڭ نەتىجىسى توغرا بولماسلىقى مۇمكىن. تېخىمۇ كۆپ ئۇچۇرغا ئېرىشىش ئۈچۈن " -+"${3} ياكى ${4} دىن پايدىلىنىڭ." - - #: data/fcitx5-diagnose.sh:919 - msgid "" - "You are probably using ${1} to run this script. This means the result of " - "this script may not be accurate. See ${2} for more information." - msgstr "" -+"سىز بەلكىم ${1} ئارقىلىق بۇ سېنارىيەنى ئىجرا قىلىۋاتقان بولۇشىڭىز مۇمكىن. بۇ " -+"سېنارىيەنىڭ نەتىجىسىنىڭ توغرا بولماسلىقى مۇمكىنلىكىدىن دېرەك بېرىدۇ. تېخىمۇ " -+"كۆپ ئۇچۇرغا ئېرىشىش ئۈچۈن ${2} دىن پايدىلىنىڭ." - - #: data/fcitx5-diagnose.sh:1213 - msgid "You are using xim in ${1} programs." --msgstr "" -+msgstr "سىز ${1} پىروگراممىسىدا xim نى ئىشلىتىۋاتىسىز." - - #: data/fcitx5-diagnose.sh:1218 - msgid "You may have trouble using fcitx in ${1} programs." - msgstr "" -+"سىز بەلكىم ${1} پىروگىراممىسىدا fcitx نى ئىشلەتكەندە مەسىلىگە يۇلۇققان " -+"بولىشىڭىز مۇمكىن." - - #: data/fcitx5-configtool.sh:134 - msgid "" -@@ -2876,12 +2909,18 @@ msgid "" - "able to use input method in emacs because of an really old emacs bug that " - "upstream refuse to fix for years." - msgstr "" -+"سىزنىڭ LC _ CTYPE نى ${1} قىلىپ تەڭشەپ قويغىنىڭىز بولسا، z, ja, ko دىن بىرسى " -+"ئەمەس. سىز بەلكىم Emacs دا كىرگۈزگۈچنى ئىشلىتەلمەسلىكىڭىز مۇمكىن، بۇ " -+"ئۈستىدىكى مەنبەنىڭ ئۇزۇ نۋاقىت رېمونتلانماسلىقىدىن كېلىپ چىققان كونا كاشىلا." - - #: data/fcitx5-diagnose.sh:1190 - msgid "" - "Your LC_CTYPE is set to ${1} whose encoding is not UTF-8. You may have " - "trouble committing strings using XIM." - msgstr "" -+"سىزنىڭ LC _ CTYPE نى ${1} قىلىپ تەڭشىدىڭىز، ئۇنىڭ كودى UTF-8 ئەمەس. سىز " -+"بەلكىم XIM نى ئىشلىتىپ ھەرپ-بەلگە تىزىقى تاپشۇرغاندا مەسىلىگە يولۇقۇشىڭىز " -+"مۇمكىن." - - #: src/lib/fcitx-utils/key.cpp:241 - msgctxt "Key name" -@@ -2896,20 +2935,20 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:196 - msgctxt "Key name" - msgid "Zoom In" --msgstr "" -+msgstr "چوڭايتىش" - - #: src/lib/fcitx-utils/key.cpp:197 - msgctxt "Key name" - msgid "Zoom Out" --msgstr "" -+msgstr "كىچىكلىتىش" - - #: data/fcitx5-diagnose.sh:936 - msgid "executable:" --msgstr "" -+msgstr "ئىجرا قىلىشقا بولىدىغان ھۆججەت :" - - #: data/fcitx5-diagnose.sh:757 - msgid "here" --msgstr "" -+msgstr "بۇ يەردە" - - #: src/lib/fcitx-utils/key.cpp:167 - msgctxt "Key name" -@@ -2918,15 +2957,15 @@ msgstr "" - - #: data/fcitx5-diagnose.sh:950 - msgid "process:" --msgstr "" -+msgstr "ئىجراچى :" - - #: data/fcitx5-diagnose.sh:921 data/fcitx5-diagnose.sh:927 - msgid "sudo environment variables" --msgstr "" -+msgstr "sudoنىڭ مۇھىت ئۆگەرگۈچى مىقدارى" - - #: data/fcitx5-diagnose.sh:946 - msgid "version:" --msgstr "نەشرى:" -+msgstr "نەشىرى:" - - #: src/im/keyboard/keyboard.cpp:292 - #, c++-format diff -Nru fcitx5-5.1.7/debian/patches/0014-update-changelog.patch fcitx5-5.1.11/debian/patches/0014-update-changelog.patch --- fcitx5-5.1.7/debian/patches/0014-update-changelog.patch 2024-08-28 10:05:23.000000000 +0800 +++ fcitx5-5.1.11/debian/patches/0014-update-changelog.patch 1970-01-01 08:00:00.000000000 +0800 @@ -1,40 +0,0 @@ -From: hantengc <hanteng@kylinos.cn> -Date: Tue, 4 Jun 2024 19:58:14 +0800 -Subject: update changelog - ---- - data/default/zh_CN | 2 +- - data/default/zh_HK | 2 +- - data/default/zh_TW | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/data/default/zh_CN b/data/default/zh_CN -index 1052eee..414f306 100644 ---- a/data/default/zh_CN -+++ b/data/default/zh_CN -@@ -1,4 +1,4 @@ - [DefaultInputMethod] - 0=okpinyininputmethod --1=sogou-ime-ng-fcitx5-kylin-desktop -+1=com.sogou.ime.ng.fcitx5.kylin - 2=rime -diff --git a/data/default/zh_HK b/data/default/zh_HK -index 875f1dc..56d6670 100644 ---- a/data/default/zh_HK -+++ b/data/default/zh_HK -@@ -1,4 +1,4 @@ - [DefaultInputMethod] - 0=cangjie - 1=okpinyininputmethod --2=sogou-ime-ng-fcitx5-kylin-desktop -+2=com.sogou.ime.ng.fcitx5.kylin -diff --git a/data/default/zh_TW b/data/default/zh_TW -index d7444e2..9eb3129 100644 ---- a/data/default/zh_TW -+++ b/data/default/zh_TW -@@ -1,4 +1,4 @@ - [DefaultInputMethod] - 0=chewing - 1=okpinyininputmethod --2=sogou-ime-ng-fcitx5-kylin-desktop -+2=com.sogou.ime.ng.fcitx5.kylin diff -Nru fcitx5-5.1.7/debian/patches/0015-update-changelog.patch fcitx5-5.1.11/debian/patches/0015-update-changelog.patch --- fcitx5-5.1.7/debian/patches/0015-update-changelog.patch 2024-08-28 10:05:23.000000000 +0800 +++ fcitx5-5.1.11/debian/patches/0015-update-changelog.patch 1970-01-01 08:00:00.000000000 +0800 @@ -1,20 +0,0 @@ -From: liulinsong <liulinsong@kylinos.cn> -Date: Tue, 11 Jun 2024 17:29:48 +0800 -Subject: update changelog - ---- - src/ui/classic/xcbinputwindow.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/ui/classic/xcbinputwindow.cpp b/src/ui/classic/xcbinputwindow.cpp -index 6e7b46f..301dee2 100644 ---- a/src/ui/classic/xcbinputwindow.cpp -+++ b/src/ui/classic/xcbinputwindow.cpp -@@ -93,6 +93,7 @@ void XCBInputWindow::updatePosition(InputContext *inputContext) { - if ((newX + static_cast<int>(actualWidth)) > closestScreen->right()) { - newX = closestScreen->right() - actualWidth; - } -+ newX = std::max(newX, closestScreen->left()); - - if ((newY + static_cast<int>(actualHeight)) > closestScreen->bottom()) { - if (newY > closestScreen->bottom()) { diff -Nru fcitx5-5.1.7/debian/patches/0016-Translated-using-Weblate-Uyghur.patch fcitx5-5.1.11/debian/patches/0016-Translated-using-Weblate-Uyghur.patch --- fcitx5-5.1.7/debian/patches/0016-Translated-using-Weblate-Uyghur.patch 2024-08-28 10:05:23.000000000 +0800 +++ fcitx5-5.1.11/debian/patches/0016-Translated-using-Weblate-Uyghur.patch 1970-01-01 08:00:00.000000000 +0800 @@ -1,54 +0,0 @@ -From: KevinDuan <duankaiwen@kylinos.cn> -Date: Tue, 18 Jun 2024 01:32:32 +0000 -Subject: Translated using Weblate (Uyghur) - -Currently translated at 45.1% (288 of 638 strings) - -Translation: openkylin-nile-new/fcitx5 -Translate-URL: http://weblate.openkylin.top/projects/openkylin-nile-new/fcitx5/ug/ ---- - po/ug.po | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/po/ug.po b/po/ug.po -index 3dd7ad7..84a4179 100644 ---- a/po/ug.po -+++ b/po/ug.po -@@ -13,8 +13,8 @@ msgstr "" - "Project-Id-Version: fcitx5\n" - "Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" - "POT-Creation-Date: 2023-10-19 05:51+0000\n" --"PO-Revision-Date: 2024-06-04 11:55+0000\n" --"Last-Translator: KevinDuan <duankaiwen@kylinos.com>\n" -+"PO-Revision-Date: 2024-06-18 09:53+0000\n" -+"Last-Translator: KevinDuan <duankaiwen@kylinos.cn>\n" - "Language-Team: Uyghur <http://weblate.openkylin.top/projects/" - "openkylin-nile-new/fcitx5/ug/>\n" - "Language: ug\n" -@@ -315,7 +315,7 @@ msgstr "" - #: src/lib/fcitx-utils/key.cpp:164 - msgctxt "Key name" - msgid "Browser" --msgstr "" -+msgstr "تور كۆرگۈچ" - - #: src/lib/fcitx-utils/key.cpp:154 - msgctxt "Key name" -@@ -483,7 +483,7 @@ msgstr "رەڭلىك" - #: src/lib/fcitx-utils/key.cpp:148 - msgctxt "Key name" - msgid "Community" --msgstr "" -+msgstr "مەھەللە" - - #: src/im/keyboard/keyboard.cpp:685 - msgid "Completion" -@@ -2435,7 +2435,7 @@ msgstr "Super" - #: src/lib/fcitx-utils/key.cpp:188 - msgctxt "Key name" - msgid "Support" --msgstr "" -+msgstr "قوللاش" - - #: src/lib/fcitx-utils/key.cpp:217 - msgctxt "Key name" diff -Nru fcitx5-5.1.7/debian/patches/0017-Translated-using-Weblate-Kazakh.patch fcitx5-5.1.11/debian/patches/0017-Translated-using-Weblate-Kazakh.patch --- fcitx5-5.1.7/debian/patches/0017-Translated-using-Weblate-Kazakh.patch 2024-08-28 10:05:23.000000000 +0800 +++ fcitx5-5.1.11/debian/patches/0017-Translated-using-Weblate-Kazakh.patch 1970-01-01 08:00:00.000000000 +0800 @@ -1,45 +0,0 @@ -From: KevinDuan <duankaiwen@kylinos.cn> -Date: Wed, 24 Jul 2024 03:23:45 +0000 -Subject: Translated using Weblate (Kazakh) - -Currently translated at 0.1% (1 of 638 strings) - -Translation: openkylin-nile-new/fcitx5 -Translate-URL: http://weblate.openkylin.top/projects/openkylin-nile-new/fcitx5/kk/ ---- - po/kk.po | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - -diff --git a/po/kk.po b/po/kk.po -index 7b950dd..f2b4468 100644 ---- a/po/kk.po -+++ b/po/kk.po -@@ -13,14 +13,16 @@ msgstr "" - "Project-Id-Version: fcitx5\n" - "Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" - "POT-Creation-Date: 2023-10-19 05:51+0000\n" --"PO-Revision-Date: 2017-11-23 04:14+0000\n" --"Last-Translator: Automatically generated\n" --"Language-Team: none\n" -+"PO-Revision-Date: 2024-07-24 05:53+0000\n" -+"Last-Translator: KevinDuan <duankaiwen@kylinos.cn>\n" -+"Language-Team: Kazakh <http://weblate.openkylin.top/projects/" -+"openkylin-nile-new/fcitx5/kk/>\n" - "Language: kk\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" - "Plural-Forms: nplurals=2; plural=n != 1;\n" -+"X-Generator: Weblate 4.12.1-dev\n" - - #: data/fcitx5-diagnose.sh:900 - msgid "${1} Environment Variables:" -@@ -562,7 +564,7 @@ msgstr "" - - #: src/modules/spell/spell.h:22 - msgid "Custom" --msgstr "" -+msgstr "عۇرىپ-ادەت" - - #: src/lib/fcitx/globalconfig.cpp:175 - msgid "Custom Xkb Option" diff -Nru fcitx5-5.1.7/debian/patches/0018-Determine-whether-the-obtained-IC-is-the-currently-a.patch fcitx5-5.1.11/debian/patches/0018-Determine-whether-the-obtained-IC-is-the-currently-a.patch --- fcitx5-5.1.7/debian/patches/0018-Determine-whether-the-obtained-IC-is-the-currently-a.patch 2024-08-28 10:05:23.000000000 +0800 +++ fcitx5-5.1.11/debian/patches/0018-Determine-whether-the-obtained-IC-is-the-currently-a.patch 1970-01-01 08:00:00.000000000 +0800 @@ -1,26 +0,0 @@ -From: hantengc <hanteng@kylinos.cn> -Date: Mon, 26 Aug 2024 20:03:20 +0800 -Subject: Determine whether the obtained IC is the currently active IC, - and then determine whether the engine needs to be inactivated - -1. In most cases, focus out should be called first, and then focus in. -2. Before the input method engine deactivates, determine whether the obtained IC is the currently activated IC, and then decide whether to inactivate the engine. If it is not the currently activated IC, it does not need to deactivate the engine to avoid the inactivation of the input method engine ---- - src/lib/fcitx/instance.cpp | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/lib/fcitx/instance.cpp b/src/lib/fcitx/instance.cpp -index e7198ce..4d7b80f 100644 ---- a/src/lib/fcitx/instance.cpp -+++ b/src/lib/fcitx/instance.cpp -@@ -2407,6 +2407,10 @@ void Instance::deactivateInputMethod(InputContextEvent &event) { - if (!engine || !entry) { - return; - } -+ -+ if (ic != mostRecentInputContext()) { -+ return; -+ } - inputState->overrideDeactivateIM_ = entry->uniqueName(); - engine->deactivate(*entry, event); - inputState->overrideDeactivateIM_.clear(); diff -Nru fcitx5-5.1.7/debian/patches/series fcitx5-5.1.11/debian/patches/series --- fcitx5-5.1.7/debian/patches/series 2024-08-28 10:05:23.000000000 +0800 +++ fcitx5-5.1.11/debian/patches/series 2025-03-20 13:50:02.000000000 +0800 @@ -1,18 +1,3 @@ -0001-update-changelog.patch -0002-update-changelog.patch +0001-update-changelog-potimize-show-hide-logic.patch +0002-update-changelog-optimize-code.patch 0003-update-changelog.patch -0004-update-changelog.patch -0005-windows-shift.patch -0006-update-changelog.patch -0007-update-changelog.patch -0008-Added-translation-using-Weblate-Kazakh.patch -0009-Added-translation-using-Weblate-Uyghur.patch -0010-update-changelog.patch -0011-Translated-using-Weblate-Uyghur.patch -0012-update-changelog.patch -0013-Translated-using-Weblate-Uyghur.patch -0014-update-changelog.patch -0015-update-changelog.patch -0016-Translated-using-Weblate-Uyghur.patch -0017-Translated-using-Weblate-Kazakh.patch -0018-Determine-whether-the-obtained-IC-is-the-currently-a.patch diff -Nru fcitx5-5.1.7/debian/source/include-binaries fcitx5-5.1.11/debian/source/include-binaries --- fcitx5-5.1.7/debian/source/include-binaries 2024-08-28 10:05:23.000000000 +0800 +++ fcitx5-5.1.11/debian/source/include-binaries 1970-01-01 08:00:00.000000000 +0800 @@ -1 +0,0 @@ -debian/patches/0001-update-changelog.patch diff -Nru fcitx5-5.1.7/po/ca.po fcitx5-5.1.11/po/ca.po --- fcitx5-5.1.7/po/ca.po 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/po/ca.po 2024-10-09 03:48:05.000000000 +0800 @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: fcitx5\n" "Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" -"POT-Creation-Date: 2024-01-14 20:24+0000\n" +"POT-Creation-Date: 2024-06-11 20:24+0000\n" "PO-Revision-Date: 2017-11-23 04:14+0000\n" "Last-Translator: Robert Antoni Buj i Gelonch <rbuj@fedoraproject.org>, 2020\n" "Language-Team: Catalan (https://app.transifex.com/fcitx/teams/12005/ca/)\n" @@ -48,11 +48,11 @@ msgid "${1} works properly." msgstr "" -#: src/lib/fcitx/instance.cpp:411 +#: src/lib/fcitx/instance.cpp:419 msgid "(Not available)" msgstr "(no disponible)" -#: src/modules/unicode/unicode.cpp:458 +#: src/modules/unicode/unicode.cpp:457 msgid "(Type to search unicode by code or description)" msgstr "" @@ -76,23 +76,31 @@ msgid "/XIM" msgstr "" -#: src/modules/unicode/charselectdata.cpp:215 +#: src/modules/clipboard/clipboard.h:80 +msgid "0 means never clear password." +msgstr "" + +#: src/modules/unicode/charselectdata.cpp:213 msgid "<Low Surrogate>" msgstr "<Succedani baix>" -#: src/modules/unicode/charselectdata.cpp:211 +#: src/modules/unicode/charselectdata.cpp:209 msgid "<Non Private Use High Surrogate>" msgstr "<Succedani alt d'ús no privat>" -#: src/modules/unicode/charselectdata.cpp:213 +#: src/modules/clipboard/clipboard.cpp:116 +msgid "<Passowrd>" +msgstr "" + +#: src/modules/unicode/charselectdata.cpp:211 msgid "<Private Use High Surrogate>" msgstr " <Succedani alt d'ús privat>" -#: src/modules/unicode/charselectdata.cpp:217 +#: src/modules/unicode/charselectdata.cpp:215 msgid "<Private Use>" msgstr "<Ús privat>" -#: src/modules/unicode/charselectdata.cpp:247 +#: src/modules/unicode/charselectdata.cpp:245 msgid "<not assigned>" msgstr "<no assignat>" @@ -100,15 +108,15 @@ msgid "A virtual keyboard backend based on DBus" msgstr "" -#: src/ui/classic/theme.h:204 +#: src/ui/classic/theme.h:202 msgid "Accent Colors" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:82 +#: src/lib/fcitx/globalconfig.cpp:83 msgid "Activate Input Method" msgstr "Activa el mètode d'entrada" -#: src/lib/fcitx/globalconfig.cpp:138 +#: src/lib/fcitx/globalconfig.cpp:139 msgid "Active By Default" msgstr "Activa per defecte" @@ -138,7 +146,7 @@ msgid "Adjust Brightness" msgstr "Ajusta la brillantor" -#: src/lib/fcitx/globalconfig.cpp:26 +#: src/lib/fcitx/globalconfig.cpp:27 msgid "All" msgstr "" @@ -154,19 +162,19 @@ msgid "All locales:" msgstr "" -#: src/modules/xcb/xcbmodule.h:30 +#: src/modules/xcb/xcbmodule.h:26 msgid "Allow Overriding System XKB Settings" msgstr "" -#: src/modules/wayland/waylandmodule.h:36 +#: src/modules/wayland/waylandmodule.h:35 msgid "Allow Overriding System XKB Settings (Only support KDE 5)" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:186 +#: src/lib/fcitx/globalconfig.cpp:192 msgid "Allow input method in the password field" msgstr "" -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:25 msgid "Alt" msgstr "Alt" @@ -175,7 +183,7 @@ msgid "Alt" msgstr "Alt" -#: src/modules/xcb/xcbmodule.h:33 +#: src/modules/xcb/xcbmodule.h:29 msgid "Always set layout to be only group layout" msgstr "" @@ -189,7 +197,7 @@ msgid "Application Right" msgstr "" -#: src/im/keyboard/keyboard.h:87 +#: src/im/keyboard/keyboard.h:99 msgid "Applications disabled for long press" msgstr "" @@ -208,7 +216,7 @@ msgid "Audio Repeat" msgstr "Repetició de l'àudio" -#: src/ui/classic/theme.h:193 +#: src/ui/classic/theme.h:191 msgid "Author" msgstr "" @@ -231,11 +239,11 @@ msgid "Backends" msgstr "" -#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 +#: src/ui/classic/theme.h:156 src/ui/classic/theme.h:176 msgid "Background" msgstr "" -#: src/ui/classic/theme.h:85 +#: src/ui/classic/theme.h:83 msgid "Background Image" msgstr "" @@ -257,7 +265,7 @@ msgid "Beginner's Guide" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:203 +#: src/lib/fcitx/globalconfig.cpp:209 msgid "Behavior" msgstr "Comportament" @@ -271,11 +279,11 @@ msgid "Bluetooth" msgstr "Bluetooth" -#: src/ui/classic/theme.h:148 +#: src/ui/classic/theme.h:146 msgid "Blur Margin" msgstr "" -#: src/ui/classic/theme.h:147 +#: src/ui/classic/theme.h:145 msgid "Blur mask" msgstr "" @@ -284,27 +292,27 @@ msgid "Book" msgstr "Llibre" -#: src/ui/classic/theme.h:97 +#: src/ui/classic/theme.h:95 msgid "Border Color" msgstr "" -#: src/ui/classic/theme.h:105 +#: src/ui/classic/theme.h:103 msgid "Border width" msgstr "" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Bottom" msgstr "" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Center" msgstr "" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Left" msgstr "" -#: src/ui/classic/theme.h:39 +#: src/ui/classic/theme.h:37 msgid "Bottom Right" msgstr "" @@ -328,7 +336,7 @@ msgid "Cancel" msgstr "Cancel·la" -#: src/im/keyboard/longpress.h:19 +#: src/im/keyboard/longpress.h:23 msgid "Candidates" msgstr "" @@ -415,15 +423,15 @@ msgid "CapsLock" msgstr "Bloq Maj" -#: src/ui/classic/theme.h:37 src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:35 src/ui/classic/theme.h:47 msgid "Center" msgstr "" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Center Left" msgstr "" -#: src/ui/classic/theme.h:37 +#: src/ui/classic/theme.h:35 msgid "Center Right" msgstr "" @@ -431,11 +439,11 @@ msgid "Change Fcitx 5 Configuration" msgstr "" -#: src/ui/classic/theme.h:183 +#: src/ui/classic/theme.h:181 msgid "Check box" msgstr "" -#: src/im/keyboard/keyboard.h:56 src/modules/quickphrase/quickphrase.h:41 +#: src/im/keyboard/keyboard.h:68 src/modules/quickphrase/quickphrase.h:37 msgid "Choose key modifier" msgstr "Escolliu el modificador de tecla" @@ -448,7 +456,7 @@ msgid "Clear" msgstr "Neteja" -#: src/ui/classic/theme.h:131 +#: src/ui/classic/theme.h:129 msgid "Click Margin" msgstr "" @@ -456,7 +464,7 @@ msgid "Clipboard" msgstr "Porta-retalls" -#: src/modules/clipboard/clipboard.cpp:353 +#: src/modules/clipboard/clipboard.cpp:369 msgid "Clipboard (Press BackSpace/Delete to clear history):" msgstr "" @@ -470,7 +478,7 @@ msgid "Code input" msgstr "" -#: src/ui/classic/theme.h:89 +#: src/ui/classic/theme.h:87 msgid "Color" msgstr "" @@ -479,19 +487,19 @@ msgid "Community" msgstr "Comunitat" -#: src/im/keyboard/keyboard.cpp:685 +#: src/im/keyboard/keyboard.cpp:706 msgid "Completion" msgstr "" -#: src/im/keyboard/keyboard.cpp:676 +#: src/im/keyboard/keyboard.cpp:697 msgid "Completion is disabled." msgstr "" -#: src/im/keyboard/keyboard.cpp:679 +#: src/im/keyboard/keyboard.cpp:700 msgid "Completion is enabled temporarily." msgstr "" -#: src/im/keyboard/keyboard.cpp:681 +#: src/im/keyboard/keyboard.cpp:702 msgid "Completion is enabled." msgstr "" @@ -528,7 +536,7 @@ msgid "Configure" msgstr "Configura" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:25 msgid "Control" msgstr "Control" @@ -562,7 +570,7 @@ msgid "Custom" msgstr "Personalitzat" -#: src/lib/fcitx/globalconfig.cpp:176 +#: src/lib/fcitx/globalconfig.cpp:182 msgid "Custom Xkb Option" msgstr "" @@ -596,11 +604,11 @@ msgid "DOS" msgstr "DOS" -#: src/ui/classic/classicui.h:158 +#: src/ui/classic/classicui.h:155 msgid "Dark Theme" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:91 +#: src/lib/fcitx/globalconfig.cpp:92 msgid "Deactivate Input Method" msgstr "Desactiva el mètode d'entrada" @@ -608,7 +616,7 @@ msgid "Debug information from dbus:" msgstr "" -#: src/lib/fcitx/inputmethodmanager.cpp:138 src/lib/fcitx/instance.cpp:358 +#: src/lib/fcitx/inputmethodmanager.cpp:153 src/lib/fcitx/instance.cpp:366 #: src/ui/classic/themes/default/theme.conf.in:3 msgid "Default" msgstr "Per defecte" @@ -617,23 +625,23 @@ msgid "Default Dark" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:127 +#: src/lib/fcitx/globalconfig.cpp:128 msgid "Default Next Candidate" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:111 +#: src/lib/fcitx/globalconfig.cpp:112 msgid "Default Next page" msgstr "Av Pàg predeterminat" -#: src/lib/fcitx/globalconfig.cpp:121 +#: src/lib/fcitx/globalconfig.cpp:122 msgid "Default Previous Candidate" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:99 +#: src/lib/fcitx/globalconfig.cpp:100 msgid "Default Previous page" msgstr "Re Pàg predeterminat" -#: src/lib/fcitx/globalconfig.cpp:160 +#: src/lib/fcitx/globalconfig.cpp:166 msgid "Default page size" msgstr "Mida de pàgina predeterminada" @@ -642,7 +650,7 @@ msgid "Delete" msgstr "" -#: src/ui/classic/theme.h:195 +#: src/ui/classic/theme.h:193 msgid "Description" msgstr "" @@ -654,7 +662,7 @@ msgid "Desktop environment is ${1}." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:586 +#: src/modules/wayland/waylandmodule.cpp:616 msgid "" "Detect GTK_IM_MODULE and QT_IM_MODULE being set and Wayland Input method " "frontend is working. It is recommended to unset GTK_IM_MODULE and " @@ -662,7 +670,7 @@ "see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma" msgstr "" -#: src/modules/wayland/waylandmodule.cpp:615 +#: src/modules/wayland/waylandmodule.cpp:645 msgid "" "Detect GTK_IM_MODULE being set and Wayland Input method frontend is working. " "It is recommended to unset GTK_IM_MODULE and use Wayland input method " @@ -682,10 +690,14 @@ msgid "Display" msgstr "" -#: src/modules/notifications/notifications.cpp:204 +#: src/modules/notifications/notifications.cpp:201 msgid "Do not show again" msgstr "No ho mostris un altre cop" +#: src/modules/clipboard/clipboard.h:61 +msgid "Do not show password from password managers" +msgstr "" + #: src/lib/fcitx-utils/key.cpp:162 msgctxt "Key name" msgid "Documents" @@ -696,7 +708,7 @@ msgid "Down" msgstr "Avall" -#: src/modules/quickphrase/quickphrase.h:47 +#: src/modules/quickphrase/quickphrase.h:43 msgid "Editor" msgstr "" @@ -719,31 +731,31 @@ msgid "Emoji" msgstr "" -#: src/im/keyboard/longpress.h:17 +#: src/im/keyboard/longpress.h:21 msgid "Enable" msgstr "" -#: src/ui/classic/theme.h:145 +#: src/ui/classic/theme.h:143 msgid "Enable Blur on KWin" msgstr "" -#: src/modules/quickphrase/quickphrase.h:43 +#: src/modules/quickphrase/quickphrase.h:39 msgid "Enable Spell check" msgstr "" -#: src/im/keyboard/keyboard.h:51 +#: src/im/keyboard/keyboard.h:63 msgid "Enable emoji in hint" msgstr "" -#: src/im/keyboard/keyboard.h:54 +#: src/im/keyboard/keyboard.h:66 msgid "Enable emoji in quickphrase" msgstr "" -#: src/ui/classic/classicui.h:190 +#: src/ui/classic/classicui.h:187 msgid "Enable fractional scale under Wayland" msgstr "" -#: src/im/keyboard/keyboard.h:59 +#: src/im/keyboard/keyboard.h:71 msgid "Enable hint by default" msgstr "" @@ -756,27 +768,27 @@ msgid "End" msgstr "Fi" -#: src/im/keyboard/longpress.h:26 +#: src/im/keyboard/longpress.h:30 msgid "Entries" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:58 +#: src/lib/fcitx/globalconfig.cpp:59 msgid "Enumerate Input Method Backward" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:51 +#: src/lib/fcitx/globalconfig.cpp:52 msgid "Enumerate Input Method Forward" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:75 +#: src/lib/fcitx/globalconfig.cpp:76 msgid "Enumerate Input Method Group Backward" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:68 +#: src/lib/fcitx/globalconfig.cpp:69 msgid "Enumerate Input Method Group Forward" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:40 +#: src/lib/fcitx/globalconfig.cpp:41 msgid "Enumerate when press trigger key repeatedly" msgstr "" @@ -829,7 +841,7 @@ msgid "Failed to find ${1} in the output of ${2}" msgstr "" -#: src/modules/quickphrase/quickphrase.h:45 +#: src/modules/quickphrase/quickphrase.h:41 msgid "Fallback Spell check language" msgstr "" @@ -838,7 +850,7 @@ msgid "Favorites" msgstr "Preferits" -#: src/modules/wayland/waylandmodule.cpp:558 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Fcitx" msgstr "" @@ -851,7 +863,7 @@ msgid "Fcitx 5 Configuration" msgstr "Configuració de fcitx 5" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:3 +#: data/fcitx5-wayland-launcher.desktop.in.in:3 msgid "Fcitx 5 Wayland Launcher (Experimental)" msgstr "" @@ -867,14 +879,14 @@ msgid "Fcitx State:" msgstr "" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:9 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:12 msgid "" "Fcitx is an input method framework. It can help you to type your own " "language. It also features variant choice of addons that improve your typing " "experience." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:573 +#: src/modules/wayland/waylandmodule.cpp:603 msgid "" "Fcitx should be launched by KWin under KDE Wayland in order to use Wayland " "input method frontend. This can improve the experience when using Fcitx on " @@ -903,15 +915,15 @@ msgid "Find" msgstr "Troba" -#: src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:47 msgid "First Candidate" msgstr "" -#: src/ui/classic/classicui.h:164 +#: src/ui/classic/classicui.h:161 msgid "Follow system accent color if it is supported by theme and desktop" msgstr "" -#: src/ui/classic/classicui.h:160 +#: src/ui/classic/classicui.h:157 msgid "Follow system light/dark color scheme" msgstr "" @@ -923,22 +935,22 @@ "using text-input support by Qt under Wayland." msgstr "" -#: src/ui/classic/classicui.h:120 +#: src/ui/classic/classicui.h:117 msgid "Font" msgstr "" -#: src/ui/classic/classicui.h:150 +#: src/ui/classic/classicui.h:147 msgid "" "For example, display character with Chinese variant when using Pinyin and " "Japanese variant when using Anthy. The font configuration needs to support " "this to use this feature." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:641 +#: src/modules/wayland/waylandmodule.cpp:671 msgid "For more details see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland" msgstr "" -#: src/ui/classic/classicui.h:178 +#: src/ui/classic/classicui.h:175 msgid "Force font DPI on Wayland" msgstr "" @@ -1044,12 +1056,12 @@ msgid "Group" msgstr "Grup" -#: src/lib/fcitx/instance.cpp:415 +#: src/lib/fcitx/instance.cpp:423 #, c++-format msgid "Group {0}: {1}" msgstr "Grup {0}: {1}" -#: src/lib/fcitx/instance.cpp:360 +#: src/lib/fcitx/instance.cpp:368 #, c++-format msgid "Group {}" msgstr "" @@ -1145,31 +1157,35 @@ msgid "Hibernate" msgstr "" -#: src/modules/notifications/notifications.h:28 +#: src/modules/notifications/notifications.h:26 msgid "Hidden Notifications" msgstr "" -#: src/ui/classic/theme.h:116 +#: src/modules/clipboard/clipboard.h:70 +msgid "Hidden clipboard content that contains a password" +msgstr "" + +#: src/ui/classic/theme.h:114 msgid "Hide overlay if size does not fit" msgstr "" -#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:180 +#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 msgid "Highlight Background" msgstr "" -#: src/ui/classic/theme.h:140 +#: src/ui/classic/theme.h:138 msgid "Highlight Background color" msgstr "" -#: src/ui/classic/theme.h:143 +#: src/ui/classic/theme.h:141 msgid "Highlight Candidate Color" msgstr "" -#: src/ui/classic/theme.h:126 +#: src/ui/classic/theme.h:124 msgid "Highlight Click Margin" msgstr "" -#: src/ui/classic/theme.h:138 +#: src/ui/classic/theme.h:136 msgid "Highlight text color" msgstr "" @@ -1212,7 +1228,7 @@ msgid "Hot Links" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:201 +#: src/lib/fcitx/globalconfig.cpp:207 msgid "Hotkey" msgstr "Drecera de teclat" @@ -1234,7 +1250,7 @@ msgid "IBus Frontend" msgstr "Frontal DBus" -#: src/lib/fcitx/globalconfig.cpp:197 +#: src/lib/fcitx/globalconfig.cpp:203 msgid "" "If value is 0, the user data may only be saved when fcitx quits (e.g. " "logout)." @@ -1254,17 +1270,16 @@ "any input method other than ${2}. See ${link} for more detail." msgstr "" -#: src/ui/classic/theme.h:129 +#: src/ui/classic/theme.h:127 msgid "Image" msgstr "" -#: src/im/keyboard/keyboard.cpp:684 src/lib/fcitx/instance.cpp:450 -#: src/lib/fcitx/instance.cpp:677 src/lib/fcitx/instance.cpp:839 -#: src/modules/notificationitem/notificationitem.cpp:147 -#: src/modules/notificationitem/notificationitem.cpp:235 -#: src/modules/xcb/xcbconnection.cpp:555 -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:4 -#: data/org.fcitx.Fcitx5.desktop.in.in:4 +#: src/im/keyboard/keyboard.cpp:705 src/lib/fcitx/instance.cpp:458 +#: src/lib/fcitx/instance.cpp:686 src/lib/fcitx/instance.cpp:848 +#: src/modules/notificationitem/notificationitem.cpp:142 +#: src/modules/notificationitem/notificationitem.cpp:230 +#: src/modules/xcb/xcbconnection.cpp:555 data/org.fcitx.Fcitx5.desktop.in.in:4 +#: data/fcitx5-wayland-launcher.desktop.in.in:4 #: data/org.fcitx.Fcitx5.metainfo.xml.in:7 msgid "Input Method" msgstr "Mètode d'entrada" @@ -1281,27 +1296,27 @@ msgid "Input Methods:" msgstr "" -#: src/ui/classic/theme.h:201 +#: src/ui/classic/theme.h:199 msgid "Input Panel" msgstr "" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Background" msgstr "" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Border" msgstr "" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight" msgstr "" -#: src/ui/classic/theme.h:66 +#: src/ui/classic/theme.h:64 msgid "Input Panel Highlight Candidate Background" msgstr "" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight Candidate Border" msgstr "" @@ -1309,7 +1324,7 @@ msgid "Input method selector" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:103 src/lib/fcitx/globalconfig.cpp:115 +#: src/lib/fcitx/globalconfig.cpp:104 src/lib/fcitx/globalconfig.cpp:116 msgid "" "Input methods may have different setup in their own configuration. This is " "commonly used by modules like clipboard or quickphrase." @@ -1320,7 +1335,7 @@ msgid "Insert" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:193 +#: src/lib/fcitx/globalconfig.cpp:199 msgid "Interval of saving user data in minutes" msgstr "" @@ -1334,7 +1349,7 @@ "supports text-input protocol used by ${1}." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:598 +#: src/modules/wayland/waylandmodule.cpp:628 msgid "" "It is recommended to install Input Method Panel GNOME Shell Extensions to " "provide the input method popup. https://extensions.gnome.org/extension/261/" @@ -1347,7 +1362,7 @@ msgid "KDE Input Method Panel" msgstr "Tauler del mètode d'entrada de KDE" -#: src/ui/classic/classicui.cpp:280 +#: src/ui/classic/classicui.cpp:278 msgid "KDE Plasma (Experimental)" msgstr "" @@ -1371,20 +1386,20 @@ msgid "Katakana" msgstr "" -#: src/im/keyboard/longpress.h:16 +#: src/im/keyboard/longpress.h:20 msgid "Key" msgstr "" -#: src/im/keyboard/keyboard.cpp:315 src/im/keyboard/keyboard.conf.in.in:3 +#: src/im/keyboard/keyboard.cpp:335 src/im/keyboard/keyboard.conf.in.in:3 msgid "Keyboard" msgstr "Teclat" -#: src/im/keyboard/keyboard.cpp:231 +#: src/im/keyboard/keyboard.cpp:251 #, c++-format msgid "Keyboard - {0}" msgstr "Teclat - {0}" -#: src/im/keyboard/keyboard.cpp:250 +#: src/im/keyboard/keyboard.cpp:270 #, c++-format msgid "Keyboard - {0} - {1}" msgstr "Teclat - {0} - {1}" @@ -1592,7 +1607,7 @@ msgid "Kimpanel process:" msgstr "" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Last Candidate" msgstr "" @@ -1729,7 +1744,7 @@ msgid "Logoff" msgstr "" -#: src/im/keyboard/keyboard.h:89 +#: src/im/keyboard/keyboard.h:102 msgid "Long Press behavior" msgstr "" @@ -1738,31 +1753,31 @@ msgid "Mail Forward" msgstr "" -#: src/ui/classic/theme.h:118 +#: src/ui/classic/theme.h:116 msgid "Margin" msgstr "" -#: src/ui/classic/theme.h:80 +#: src/ui/classic/theme.h:78 msgid "Margin Bottom" msgstr "" -#: src/ui/classic/theme.h:74 +#: src/ui/classic/theme.h:72 msgid "Margin Left" msgstr "" -#: src/ui/classic/theme.h:76 +#: src/ui/classic/theme.h:74 msgid "Margin Right" msgstr "" -#: src/ui/classic/theme.h:78 +#: src/ui/classic/theme.h:76 msgid "Margin Top" msgstr "" -#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 +#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:184 msgid "Margin around all content" msgstr "" -#: src/ui/classic/theme.h:164 src/ui/classic/theme.h:188 +#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 msgid "Margin around text" msgstr "" @@ -1821,7 +1836,7 @@ msgid "Meeting" msgstr "" -#: src/ui/classic/theme.h:202 +#: src/ui/classic/theme.h:200 msgid "Menu" msgstr "" @@ -1830,15 +1845,15 @@ msgid "Menu" msgstr "Menú" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Background" msgstr "" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Border" msgstr "" -#: src/ui/classic/classicui.h:122 +#: src/ui/classic/classicui.h:119 msgid "Menu Font" msgstr "" @@ -1847,15 +1862,15 @@ msgid "Menu PB" msgstr "" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Background" msgstr "" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Border" msgstr "" -#: src/ui/classic/theme.h:70 +#: src/ui/classic/theme.h:68 msgid "Menu Separator" msgstr "" @@ -1864,7 +1879,7 @@ msgid "Messenger" msgstr "" -#: src/ui/classic/theme.h:199 +#: src/ui/classic/theme.h:197 msgid "Metadata" msgstr "" @@ -1903,7 +1918,7 @@ msgid "My Sites" msgstr "Els meus llocs" -#: src/ui/classic/theme.h:191 +#: src/ui/classic/theme.h:189 msgid "Name" msgstr "" @@ -1917,31 +1932,31 @@ msgid "News" msgstr "" -#: src/im/keyboard/keyboard.h:48 +#: src/im/keyboard/keyboard.h:60 msgid "Next Candidate" msgstr "Següent candidat" -#: src/ui/classic/theme.h:166 +#: src/ui/classic/theme.h:164 msgid "Next Page Button" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "No" msgstr "" -#: src/modules/clipboard/clipboard.cpp:355 +#: src/modules/clipboard/clipboard.cpp:371 msgid "No clipboard history." msgstr "" -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:28 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:24 msgid "None" msgstr "Cap" -#: src/ui/classic/theme.h:135 src/ui/classic/theme.h:171 +#: src/ui/classic/theme.h:133 src/ui/classic/theme.h:169 msgid "Normal text color" msgstr "" -#: src/ui/classic/classicui.h:182 +#: src/ui/classic/classicui.h:179 msgid "" "Normally Wayland uses 96 as font DPI in combinition with the screen scale " "factor. This option allows you to override the font DPI. If the value is 0, " @@ -1965,11 +1980,11 @@ msgid "NumLock" msgstr "Bloq Núm" -#: src/modules/clipboard/clipboard.h:48 +#: src/modules/clipboard/clipboard.h:54 msgid "Number of entries" msgstr "" -#: src/im/keyboard/keyboard.cpp:670 +#: src/im/keyboard/keyboard.cpp:691 msgid "" "Only emoji support is found. To enable spell checking, you may need to " "install spell check data for the language." @@ -1990,27 +2005,27 @@ msgid "Option" msgstr "Opció" -#: src/ui/classic/theme.h:120 +#: src/ui/classic/theme.h:118 msgid "Overlay Clip Margin" msgstr "" -#: src/ui/classic/theme.h:110 +#: src/ui/classic/theme.h:108 msgid "Overlay Image" msgstr "" -#: src/ui/classic/theme.h:113 +#: src/ui/classic/theme.h:111 msgid "Overlay X offset" msgstr "" -#: src/ui/classic/theme.h:114 +#: src/ui/classic/theme.h:112 msgid "Overlay Y offset" msgstr "" -#: src/ui/classic/theme.h:112 +#: src/ui/classic/theme.h:110 msgid "Overlay position" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:167 +#: src/lib/fcitx/globalconfig.cpp:173 msgid "Override Xkb Option" msgstr "" @@ -2032,11 +2047,11 @@ msgid "Page Up" msgstr "" -#: src/ui/classic/theme.h:155 +#: src/ui/classic/theme.h:153 msgid "Page button vertical alignment" msgstr "" -#: src/im/keyboard/keyboard.h:37 +#: src/im/keyboard/keyboard.h:49 msgid "Page size" msgstr "Mida de pàgina" @@ -2045,7 +2060,7 @@ msgid "Paste" msgstr "Enganxa" -#: src/modules/clipboard/clipboard.h:46 +#: src/modules/clipboard/clipboard.h:52 msgid "Paste Primary" msgstr "" @@ -2090,19 +2105,19 @@ msgid "Power Off" msgstr "Apaga" -#: src/lib/fcitx/instance.cpp:839 +#: src/lib/fcitx/instance.cpp:848 msgid "Preedit" msgstr "" -#: src/lib/fcitx/instance.cpp:841 +#: src/lib/fcitx/instance.cpp:850 msgid "Preedit disabled" msgstr "" -#: src/lib/fcitx/instance.cpp:840 +#: src/lib/fcitx/instance.cpp:849 msgid "Preedit enabled" msgstr "" -#: src/ui/classic/classicui.h:130 src/ui/kimpanel/kimpanel.h:33 +#: src/ui/classic/classicui.h:127 src/ui/kimpanel/kimpanel.h:28 msgid "Prefer Text Icon" msgstr "" @@ -2110,11 +2125,11 @@ msgid "Presage" msgstr "" -#: src/im/keyboard/keyboard.h:42 +#: src/im/keyboard/keyboard.h:54 msgid "Prev Candidate" msgstr "" -#: src/ui/classic/theme.h:165 +#: src/ui/classic/theme.h:163 msgid "Prev Page Button" msgstr "" @@ -2128,7 +2143,7 @@ msgid "Print Screen" msgstr "Impr Pant" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "Program" msgstr "" @@ -2140,7 +2155,7 @@ msgid "Quick Phrase" msgstr "Frase ràpida" -#: src/modules/quickphrase/quickphrase.cpp:471 +#: src/modules/quickphrase/quickphrase.cpp:470 msgid "Quick Phrase: " msgstr "Frase ràpida:" @@ -2169,6 +2184,10 @@ msgid "Reply" msgstr "Respon" +#: src/lib/fcitx/globalconfig.cpp:143 +msgid "Reset state on Focus In" +msgstr "" + #: src/ui/classic/xcbtraywindow.cpp:39 #: src/modules/notificationitem/dbusmenu.cpp:261 msgid "Restart" @@ -2253,6 +2272,10 @@ msgid "Search" msgstr "Cerca" +#: src/modules/clipboard/clipboard.h:76 +msgid "Seconds before clearing password" +msgstr "" + #: src/lib/fcitx-utils/key.cpp:233 msgctxt "Key name" msgid "Select" @@ -2270,7 +2293,7 @@ msgid "Select specific input method via keyboard" msgstr "" -#: src/ui/classic/theme.h:174 +#: src/ui/classic/theme.h:172 msgid "Selected Item text color" msgstr "" @@ -2279,22 +2302,22 @@ msgid "Send" msgstr "Envia" -#: src/modules/wayland/waylandmodule.cpp:630 +#: src/modules/wayland/waylandmodule.cpp:660 msgid "" "Sending keyboard layout configuration to wayland compositor from Fcitx is " "not yet supported on current desktop. You may still use Fcitx's internal " "layout conversion by adding layout as input method to the input method group." msgstr "" -#: src/ui/classic/theme.h:182 +#: src/ui/classic/theme.h:180 msgid "Separator Background" msgstr "" -#: src/ui/classic/theme.h:168 +#: src/ui/classic/theme.h:166 msgid "Shadow Margin" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:141 +#: src/lib/fcitx/globalconfig.cpp:147 msgid "Share Input State" msgstr "" @@ -2308,47 +2331,47 @@ msgid "Shop" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:152 +#: src/lib/fcitx/globalconfig.cpp:158 msgid "Show Input Method Information when changing focus" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:149 +#: src/lib/fcitx/globalconfig.cpp:155 msgid "Show Input Method Information when switch input method" msgstr "" -#: src/ui/classic/classicui.h:135 +#: src/ui/classic/classicui.h:132 msgid "Show Layout Name In Icon" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:155 +#: src/lib/fcitx/globalconfig.cpp:161 msgid "Show compact input method information" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:158 +#: src/lib/fcitx/globalconfig.cpp:164 msgid "Show first input method information" msgstr "" -#: src/ui/classic/classicui.h:139 +#: src/ui/classic/classicui.h:136 msgid "" "Show layout name in icon if there is more than one active layout. If prefer " "text icon is set to true, this option will be ignored." msgstr "" -#: src/lib/fcitx/globalconfig.cpp:145 +#: src/lib/fcitx/globalconfig.cpp:151 msgid "Show preedit in application" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:189 +#: src/lib/fcitx/globalconfig.cpp:195 msgid "Show preedit text when typing password" msgstr "" -#: src/im/keyboard/keyboard.h:77 +#: src/im/keyboard/keyboard.h:89 msgid "" "Show preedit when composing, and commit dead key if there is no matching " "sequence." msgstr "" -#: src/lib/fcitx/globalconfig.cpp:64 +#: src/lib/fcitx/globalconfig.cpp:65 msgid "Skip first input method while enumerating" msgstr "" @@ -2362,11 +2385,11 @@ msgid "Space" msgstr "Espai" -#: src/ui/classic/theme.h:176 +#: src/ui/classic/theme.h:174 msgid "Spacing" msgstr "" -#: src/im/keyboard/keyboard.h:79 src/modules/spell/spell.conf.in.in:3 +#: src/im/keyboard/keyboard.h:91 src/modules/spell/spell.conf.in.in:3 msgid "Spell" msgstr "Ortografia" @@ -2390,8 +2413,8 @@ msgid "Standby" msgstr "" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:5 #: data/org.fcitx.Fcitx5.desktop.in.in:5 +#: data/fcitx5-wayland-launcher.desktop.in.in:5 msgid "Start Input Method" msgstr "Mètode d'entrada estàndard" @@ -2404,7 +2427,7 @@ msgid "Stop" msgstr "Atura" -#: src/ui/classic/theme.h:184 +#: src/ui/classic/theme.h:182 msgid "Sub Menu" msgstr "" @@ -2413,7 +2436,7 @@ msgid "Subtitle" msgstr "Subtítol" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:25 msgid "Super" msgstr "" @@ -2432,17 +2455,17 @@ msgid "Suspend" msgstr "Suspèn" -#: src/lib/fcitx/instance.cpp:451 src/lib/fcitx/instance.cpp:678 +#: src/lib/fcitx/instance.cpp:459 src/lib/fcitx/instance.cpp:687 #: src/modules/xcb/xcbconnection.cpp:556 msgid "Switch group" msgstr "" -#: src/lib/fcitx/instance.cpp:452 src/modules/xcb/xcbconnection.cpp:557 +#: src/lib/fcitx/instance.cpp:460 src/modules/xcb/xcbconnection.cpp:557 #, c++-format msgid "Switch group to {0}" msgstr "" -#: src/lib/fcitx/instance.cpp:679 +#: src/lib/fcitx/instance.cpp:688 #, c++-format msgid "Switched group to {0}" msgstr "" @@ -2466,7 +2489,7 @@ msgid "Task Panel" msgstr "Tauler de tasques" -#: src/lib/fcitx/globalconfig.cpp:44 +#: src/lib/fcitx/globalconfig.cpp:45 msgid "Temporally switch between first and current Input Method" msgstr "" @@ -2494,27 +2517,27 @@ msgid "The script is run as ${1} (${2})." msgstr "" -#: src/ui/classic/classicui.h:155 +#: src/ui/classic/classicui.h:152 msgid "Theme" msgstr "" -#: src/ui/classic/classicui.h:101 +#: src/ui/classic/classicui.h:98 msgid "This is only effective when the tray icon is xembed." msgstr "" -#: src/ui/classic/theme.h:93 src/ui/classic/theme.h:101 +#: src/ui/classic/theme.h:91 src/ui/classic/theme.h:99 msgid "This option is only effective if image is not set." msgstr "" -#: src/ui/classic/classicui.h:194 +#: src/ui/classic/classicui.h:191 msgid "This option require support from wayland compositor." msgstr "" -#: src/ui/classic/classicui.h:173 +#: src/ui/classic/classicui.h:170 msgid "This option will be always disabled on XWayland." msgstr "" -#: src/ui/classic/theme.h:109 +#: src/ui/classic/theme.h:107 msgid "This value should be less than any of margin value." msgstr "" @@ -2538,7 +2561,7 @@ "freezing, see ${link2}." msgstr "" -#: src/lib/fcitx/globalconfig.cpp:132 +#: src/lib/fcitx/globalconfig.cpp:133 msgid "Toggle embedded preedit" msgstr "" @@ -2547,15 +2570,15 @@ msgid "Tools" msgstr "Eines" -#: src/ui/classic/theme.h:48 +#: src/ui/classic/theme.h:46 msgid "Top" msgstr "" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Center" msgstr "" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Left" msgstr "" @@ -2564,7 +2587,7 @@ msgid "Top Menu" msgstr "" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Top Right" msgstr "" @@ -2593,25 +2616,25 @@ msgid "Travel" msgstr "" -#: src/ui/classic/classicui.h:124 +#: src/ui/classic/classicui.h:121 msgid "Tray Font" msgstr "" -#: src/ui/classic/classicui.h:126 +#: src/ui/classic/classicui.h:123 msgid "Tray Label Outline Color" msgstr "" -#: src/ui/classic/classicui.h:129 +#: src/ui/classic/classicui.h:126 msgid "Tray Label Text Color" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:34 +#: src/lib/fcitx/globalconfig.cpp:35 msgid "Trigger Input Method" msgstr "Activa el mètode d'entrada" #: src/modules/imselector/imselector.h:28 -#: src/modules/quickphrase/quickphrase.h:36 src/modules/unicode/unicode.h:31 -#: src/modules/clipboard/clipboard.h:42 +#: src/modules/quickphrase/quickphrase.h:32 src/modules/unicode/unicode.h:28 +#: src/modules/clipboard/clipboard.h:48 msgid "Trigger Key" msgstr "" @@ -2619,23 +2642,23 @@ msgid "Trigger Key for only current input context" msgstr "" -#: src/im/keyboard/keyboard.h:62 +#: src/im/keyboard/keyboard.h:74 msgid "Trigger hint mode" msgstr "" -#: src/im/keyboard/keyboard.h:67 +#: src/im/keyboard/keyboard.h:79 msgid "Trigger hint mode for one time" msgstr "" -#: src/im/keyboard/keyboard.h:82 +#: src/im/keyboard/keyboard.h:94 msgid "Type special characters with long press" msgstr "" -#: src/modules/unicode/unicode.h:36 +#: src/modules/unicode/unicode.h:33 msgid "Type unicode in Hex number" msgstr "" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:22 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:26 msgid "Typing with Fcitx and Kimpanel" msgstr "" @@ -2652,7 +2675,7 @@ msgid "Unicode" msgstr "Unicode" -#: src/modules/unicode/unicode.cpp:456 +#: src/modules/unicode/unicode.cpp:455 msgid "Unicode: " msgstr "Unicode: " @@ -2661,27 +2684,27 @@ msgid "Up" msgstr "Amunt" -#: src/frontend/xim/xim.h:33 +#: src/frontend/xim/xim.h:27 msgid "Use On The Spot Style (Needs restarting)" msgstr "" -#: src/ui/classic/classicui.h:169 +#: src/ui/classic/classicui.h:166 msgid "Use Per Screen DPI on X11" msgstr "" -#: src/ui/classic/theme.h:151 +#: src/ui/classic/theme.h:149 msgid "Use all horizontal space for highlight when it is vertical list" msgstr "" -#: src/ui/classic/classicui.h:146 +#: src/ui/classic/classicui.h:143 msgid "Use input method language to display text" msgstr "" -#: src/ui/classic/classicui.h:116 +#: src/ui/classic/classicui.h:113 msgid "Use mouse wheel to go to prev or next page" msgstr "" -#: src/im/keyboard/keyboard.h:73 +#: src/im/keyboard/keyboard.h:85 msgid "Use new compose behavior" msgstr "" @@ -2699,7 +2722,7 @@ "environment:" msgstr "" -#: src/ui/classic/theme.h:192 +#: src/ui/classic/theme.h:190 msgid "Version" msgstr "" @@ -2707,7 +2730,7 @@ msgid "Version Line:" msgstr "" -#: src/ui/classic/classicui.h:114 +#: src/ui/classic/classicui.h:111 msgid "Vertical Candidate List" msgstr "" @@ -2762,7 +2785,7 @@ msgid "Wayland" msgstr "Wayland" -#: src/modules/wayland/waylandmodule.cpp:558 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Wayland Diagnose" msgstr "" @@ -2775,7 +2798,14 @@ msgid "WebCam" msgstr "Webcam" -#: src/lib/fcitx/globalconfig.cpp:171 +#: src/modules/clipboard/clipboard.h:65 +msgid "" +"When copying password from a password manager, if the password manager " +"supports marking the clipboard content as password, this clipboard update " +"will be ignored." +msgstr "" + +#: src/lib/fcitx/globalconfig.cpp:177 msgid "" "Whether to override the xkb option from display server. It will not affect " "the xkb option send to display, but just the xkb options for custom xkb " @@ -2872,14 +2902,15 @@ #: data/fcitx5-configtool.sh:137 msgid "" "You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be " -"found. Now it will open config directory." +"found. The package name provides this binary is usually fcitx5-configtool. " +"Now it will open the configuration directory." msgstr "" #: data/fcitx5-configtool.sh:134 msgid "" -"You're currently running KDE, but KCModule for fcitx couldn't be found, the " -"package name of this KCModule is usually kcm-fcitx or kde-config-fcitx. Now " -"it will open config directory." +"You're currently running KDE, but KCModule for fcitx couldn't be found. The " +"package name of this KCModule is usually kcm-fcitx5, kde-config-fcitx5, or " +"fcitx5-configtool. Now it will open the configuration directory." msgstr "" #: data/fcitx5-diagnose.sh:1185 @@ -2940,17 +2971,17 @@ msgid "version:" msgstr "" -#: src/im/keyboard/keyboard.cpp:292 +#: src/im/keyboard/keyboard.cpp:312 #, c++-format msgid "{0} (Not Available)" msgstr "" -#: src/lib/fcitx/instance.cpp:409 +#: src/lib/fcitx/instance.cpp:417 #, c++-format msgid "{0} (Not available)" msgstr "{0} (no disponible)" -#: src/lib/fcitx/instance.cpp:406 +#: src/lib/fcitx/instance.cpp:414 #, c++-format msgid "{0} ({1})" msgstr "{0} ({1})" diff -Nru fcitx5-5.1.7/po/da.po fcitx5-5.1.11/po/da.po --- fcitx5-5.1.7/po/da.po 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/po/da.po 2024-10-09 03:48:05.000000000 +0800 @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: fcitx5\n" "Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" -"POT-Creation-Date: 2024-01-14 20:24+0000\n" +"POT-Creation-Date: 2024-06-11 20:24+0000\n" "PO-Revision-Date: 2017-11-23 04:14+0000\n" "Last-Translator: scootergrisen, 2021\n" "Language-Team: Danish (https://app.transifex.com/fcitx/teams/12005/da/)\n" @@ -48,11 +48,11 @@ msgid "${1} works properly." msgstr "${1} virker korrekt." -#: src/lib/fcitx/instance.cpp:411 +#: src/lib/fcitx/instance.cpp:419 msgid "(Not available)" msgstr "(ikke tilgængelig)" -#: src/modules/unicode/unicode.cpp:458 +#: src/modules/unicode/unicode.cpp:457 msgid "(Type to search unicode by code or description)" msgstr "(skriv for at søge i unicode efter kode eller beskrivelse)" @@ -76,23 +76,31 @@ msgid "/XIM" msgstr "/XIM" -#: src/modules/unicode/charselectdata.cpp:215 +#: src/modules/clipboard/clipboard.h:80 +msgid "0 means never clear password." +msgstr "" + +#: src/modules/unicode/charselectdata.cpp:213 msgid "<Low Surrogate>" msgstr "<Lav surrogat>" -#: src/modules/unicode/charselectdata.cpp:211 +#: src/modules/unicode/charselectdata.cpp:209 msgid "<Non Private Use High Surrogate>" msgstr "<Høj surrogat for ikke privat brug>" -#: src/modules/unicode/charselectdata.cpp:213 +#: src/modules/clipboard/clipboard.cpp:116 +msgid "<Passowrd>" +msgstr "" + +#: src/modules/unicode/charselectdata.cpp:211 msgid "<Private Use High Surrogate>" msgstr "<Høj surrogat for privat brug>" -#: src/modules/unicode/charselectdata.cpp:217 +#: src/modules/unicode/charselectdata.cpp:215 msgid "<Private Use>" msgstr "<Privat brug>" -#: src/modules/unicode/charselectdata.cpp:247 +#: src/modules/unicode/charselectdata.cpp:245 msgid "<not assigned>" msgstr "<ikke tildelt>" @@ -100,15 +108,15 @@ msgid "A virtual keyboard backend based on DBus" msgstr "" -#: src/ui/classic/theme.h:204 +#: src/ui/classic/theme.h:202 msgid "Accent Colors" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:82 +#: src/lib/fcitx/globalconfig.cpp:83 msgid "Activate Input Method" msgstr "Aktivér inputmetode" -#: src/lib/fcitx/globalconfig.cpp:138 +#: src/lib/fcitx/globalconfig.cpp:139 msgid "Active By Default" msgstr "Aktivér som standard" @@ -138,7 +146,7 @@ msgid "Adjust Brightness" msgstr "Juster lysstyrke" -#: src/lib/fcitx/globalconfig.cpp:26 +#: src/lib/fcitx/globalconfig.cpp:27 msgid "All" msgstr "" @@ -154,19 +162,19 @@ msgid "All locales:" msgstr "" -#: src/modules/xcb/xcbmodule.h:30 +#: src/modules/xcb/xcbmodule.h:26 msgid "Allow Overriding System XKB Settings" msgstr "Tillad tilsidesættelse af systemets XKB-indstillinger" -#: src/modules/wayland/waylandmodule.h:36 +#: src/modules/wayland/waylandmodule.h:35 msgid "Allow Overriding System XKB Settings (Only support KDE 5)" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:186 +#: src/lib/fcitx/globalconfig.cpp:192 msgid "Allow input method in the password field" msgstr "" -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:25 msgid "Alt" msgstr "Alt" @@ -175,7 +183,7 @@ msgid "Alt" msgstr "Alt" -#: src/modules/xcb/xcbmodule.h:33 +#: src/modules/xcb/xcbmodule.h:29 msgid "Always set layout to be only group layout" msgstr "" @@ -189,7 +197,7 @@ msgid "Application Right" msgstr "Program højre" -#: src/im/keyboard/keyboard.h:87 +#: src/im/keyboard/keyboard.h:99 msgid "Applications disabled for long press" msgstr "Programmer deaktiveret for langt tryk" @@ -208,7 +216,7 @@ msgid "Audio Repeat" msgstr "Lyd gentag" -#: src/ui/classic/theme.h:193 +#: src/ui/classic/theme.h:191 msgid "Author" msgstr "Forfatter" @@ -231,11 +239,11 @@ msgid "Backends" msgstr "" -#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 +#: src/ui/classic/theme.h:156 src/ui/classic/theme.h:176 msgid "Background" msgstr "Baggrund" -#: src/ui/classic/theme.h:85 +#: src/ui/classic/theme.h:83 msgid "Background Image" msgstr "Baggrundsbillede" @@ -257,7 +265,7 @@ msgid "Beginner's Guide" msgstr "Begyndervejledning" -#: src/lib/fcitx/globalconfig.cpp:203 +#: src/lib/fcitx/globalconfig.cpp:209 msgid "Behavior" msgstr "Opførsel" @@ -271,11 +279,11 @@ msgid "Bluetooth" msgstr "Bluetooth" -#: src/ui/classic/theme.h:148 +#: src/ui/classic/theme.h:146 msgid "Blur Margin" msgstr "Sløringsmargen" -#: src/ui/classic/theme.h:147 +#: src/ui/classic/theme.h:145 msgid "Blur mask" msgstr "" @@ -284,27 +292,27 @@ msgid "Book" msgstr "Bog" -#: src/ui/classic/theme.h:97 +#: src/ui/classic/theme.h:95 msgid "Border Color" msgstr "" -#: src/ui/classic/theme.h:105 +#: src/ui/classic/theme.h:103 msgid "Border width" msgstr "" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Bottom" msgstr "" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Center" msgstr "Nederst i midten" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Left" msgstr "Nederst til venstre" -#: src/ui/classic/theme.h:39 +#: src/ui/classic/theme.h:37 msgid "Bottom Right" msgstr "Nederst til højre" @@ -328,7 +336,7 @@ msgid "Cancel" msgstr "Annuller" -#: src/im/keyboard/longpress.h:19 +#: src/im/keyboard/longpress.h:23 msgid "Candidates" msgstr "Kandidater" @@ -420,15 +428,15 @@ msgid "CapsLock" msgstr "CapsLock" -#: src/ui/classic/theme.h:37 src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:35 src/ui/classic/theme.h:47 msgid "Center" msgstr "I midten" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Center Left" msgstr "I midten til venstre" -#: src/ui/classic/theme.h:37 +#: src/ui/classic/theme.h:35 msgid "Center Right" msgstr "I midten til højre" @@ -436,11 +444,11 @@ msgid "Change Fcitx 5 Configuration" msgstr "Skift Fcitx 5-konfiguration" -#: src/ui/classic/theme.h:183 +#: src/ui/classic/theme.h:181 msgid "Check box" msgstr "Afkrydsningsboks" -#: src/im/keyboard/keyboard.h:56 src/modules/quickphrase/quickphrase.h:41 +#: src/im/keyboard/keyboard.h:68 src/modules/quickphrase/quickphrase.h:37 msgid "Choose key modifier" msgstr "Vælg ændringstast" @@ -453,7 +461,7 @@ msgid "Clear" msgstr "Ryd" -#: src/ui/classic/theme.h:131 +#: src/ui/classic/theme.h:129 msgid "Click Margin" msgstr "Klikmargen" @@ -461,7 +469,7 @@ msgid "Clipboard" msgstr "Udklipsholder" -#: src/modules/clipboard/clipboard.cpp:353 +#: src/modules/clipboard/clipboard.cpp:369 msgid "Clipboard (Press BackSpace/Delete to clear history):" msgstr "" @@ -475,7 +483,7 @@ msgid "Code input" msgstr "Kodeinput" -#: src/ui/classic/theme.h:89 +#: src/ui/classic/theme.h:87 msgid "Color" msgstr "" @@ -484,19 +492,19 @@ msgid "Community" msgstr "Fællesskab" -#: src/im/keyboard/keyboard.cpp:685 +#: src/im/keyboard/keyboard.cpp:706 msgid "Completion" msgstr "Fuldførsel" -#: src/im/keyboard/keyboard.cpp:676 +#: src/im/keyboard/keyboard.cpp:697 msgid "Completion is disabled." msgstr "Fuldførsel er deaktiveret." -#: src/im/keyboard/keyboard.cpp:679 +#: src/im/keyboard/keyboard.cpp:700 msgid "Completion is enabled temporarily." msgstr "" -#: src/im/keyboard/keyboard.cpp:681 +#: src/im/keyboard/keyboard.cpp:702 msgid "Completion is enabled." msgstr "Fuldførsel er aktiveret." @@ -533,7 +541,7 @@ msgid "Configure" msgstr "Konfigurer" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:25 msgid "Control" msgstr "Styring" @@ -567,7 +575,7 @@ msgid "Custom" msgstr "Tilpasset" -#: src/lib/fcitx/globalconfig.cpp:176 +#: src/lib/fcitx/globalconfig.cpp:182 msgid "Custom Xkb Option" msgstr "" @@ -601,11 +609,11 @@ msgid "DOS" msgstr "DOS" -#: src/ui/classic/classicui.h:158 +#: src/ui/classic/classicui.h:155 msgid "Dark Theme" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:91 +#: src/lib/fcitx/globalconfig.cpp:92 msgid "Deactivate Input Method" msgstr "Deaktivér inputmetode" @@ -613,7 +621,7 @@ msgid "Debug information from dbus:" msgstr "" -#: src/lib/fcitx/inputmethodmanager.cpp:138 src/lib/fcitx/instance.cpp:358 +#: src/lib/fcitx/inputmethodmanager.cpp:153 src/lib/fcitx/instance.cpp:366 #: src/ui/classic/themes/default/theme.conf.in:3 msgid "Default" msgstr "Standard" @@ -622,23 +630,23 @@ msgid "Default Dark" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:127 +#: src/lib/fcitx/globalconfig.cpp:128 msgid "Default Next Candidate" msgstr "Standard næste kandidat" -#: src/lib/fcitx/globalconfig.cpp:111 +#: src/lib/fcitx/globalconfig.cpp:112 msgid "Default Next page" msgstr "Standard-næste side" -#: src/lib/fcitx/globalconfig.cpp:121 +#: src/lib/fcitx/globalconfig.cpp:122 msgid "Default Previous Candidate" msgstr "Standard forrige kandidat" -#: src/lib/fcitx/globalconfig.cpp:99 +#: src/lib/fcitx/globalconfig.cpp:100 msgid "Default Previous page" msgstr "Standard-forrige side" -#: src/lib/fcitx/globalconfig.cpp:160 +#: src/lib/fcitx/globalconfig.cpp:166 msgid "Default page size" msgstr "Standardsidestørrelse" @@ -647,7 +655,7 @@ msgid "Delete" msgstr "Slet" -#: src/ui/classic/theme.h:195 +#: src/ui/classic/theme.h:193 msgid "Description" msgstr "Beskrivelse" @@ -659,7 +667,7 @@ msgid "Desktop environment is ${1}." msgstr "Skrivebordsmiljø er ${1}." -#: src/modules/wayland/waylandmodule.cpp:586 +#: src/modules/wayland/waylandmodule.cpp:616 msgid "" "Detect GTK_IM_MODULE and QT_IM_MODULE being set and Wayland Input method " "frontend is working. It is recommended to unset GTK_IM_MODULE and " @@ -667,7 +675,7 @@ "see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma" msgstr "" -#: src/modules/wayland/waylandmodule.cpp:615 +#: src/modules/wayland/waylandmodule.cpp:645 msgid "" "Detect GTK_IM_MODULE being set and Wayland Input method frontend is working. " "It is recommended to unset GTK_IM_MODULE and use Wayland input method " @@ -687,10 +695,14 @@ msgid "Display" msgstr "Vis" -#: src/modules/notifications/notifications.cpp:204 +#: src/modules/notifications/notifications.cpp:201 msgid "Do not show again" msgstr "Vis ikke igen" +#: src/modules/clipboard/clipboard.h:61 +msgid "Do not show password from password managers" +msgstr "" + #: src/lib/fcitx-utils/key.cpp:162 msgctxt "Key name" msgid "Documents" @@ -701,7 +713,7 @@ msgid "Down" msgstr "Ned" -#: src/modules/quickphrase/quickphrase.h:47 +#: src/modules/quickphrase/quickphrase.h:43 msgid "Editor" msgstr "Redigering" @@ -724,31 +736,31 @@ msgid "Emoji" msgstr "Emoji" -#: src/im/keyboard/longpress.h:17 +#: src/im/keyboard/longpress.h:21 msgid "Enable" msgstr "Aktivér" -#: src/ui/classic/theme.h:145 +#: src/ui/classic/theme.h:143 msgid "Enable Blur on KWin" msgstr "Aktivér sløring i KWin" -#: src/modules/quickphrase/quickphrase.h:43 +#: src/modules/quickphrase/quickphrase.h:39 msgid "Enable Spell check" msgstr "Aktivér stavekontrol" -#: src/im/keyboard/keyboard.h:51 +#: src/im/keyboard/keyboard.h:63 msgid "Enable emoji in hint" msgstr "Aktivér emoji i tip" -#: src/im/keyboard/keyboard.h:54 +#: src/im/keyboard/keyboard.h:66 msgid "Enable emoji in quickphrase" msgstr "Aktivér emoji i hurtigfrase" -#: src/ui/classic/classicui.h:190 +#: src/ui/classic/classicui.h:187 msgid "Enable fractional scale under Wayland" msgstr "" -#: src/im/keyboard/keyboard.h:59 +#: src/im/keyboard/keyboard.h:71 msgid "Enable hint by default" msgstr "" @@ -761,27 +773,27 @@ msgid "End" msgstr "End" -#: src/im/keyboard/longpress.h:26 +#: src/im/keyboard/longpress.h:30 msgid "Entries" msgstr "Poster" -#: src/lib/fcitx/globalconfig.cpp:58 +#: src/lib/fcitx/globalconfig.cpp:59 msgid "Enumerate Input Method Backward" msgstr "Gennemløb inputmetode baglæns" -#: src/lib/fcitx/globalconfig.cpp:51 +#: src/lib/fcitx/globalconfig.cpp:52 msgid "Enumerate Input Method Forward" msgstr "Gennemløb inputmetode forlæns" -#: src/lib/fcitx/globalconfig.cpp:75 +#: src/lib/fcitx/globalconfig.cpp:76 msgid "Enumerate Input Method Group Backward" msgstr "Gennemløb inputmetode-gruppe baglæns" -#: src/lib/fcitx/globalconfig.cpp:68 +#: src/lib/fcitx/globalconfig.cpp:69 msgid "Enumerate Input Method Group Forward" msgstr "Gennemløb inputmetode-gruppe forlæns" -#: src/lib/fcitx/globalconfig.cpp:40 +#: src/lib/fcitx/globalconfig.cpp:41 msgid "Enumerate when press trigger key repeatedly" msgstr "Gennemløb når der trykkes på udløsertast gentagne gange" @@ -838,7 +850,7 @@ msgid "Failed to find ${1} in the output of ${2}" msgstr "Kunne ikke finde ${1} i outputtet af ${2}" -#: src/modules/quickphrase/quickphrase.h:45 +#: src/modules/quickphrase/quickphrase.h:41 msgid "Fallback Spell check language" msgstr "Reserve sprog for stavekontrol" @@ -847,7 +859,7 @@ msgid "Favorites" msgstr "Favoritter" -#: src/modules/wayland/waylandmodule.cpp:558 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Fcitx" msgstr "" @@ -860,7 +872,7 @@ msgid "Fcitx 5 Configuration" msgstr "Fcitx 5-konfiguration" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:3 +#: data/fcitx5-wayland-launcher.desktop.in.in:3 msgid "Fcitx 5 Wayland Launcher (Experimental)" msgstr "" @@ -876,7 +888,7 @@ msgid "Fcitx State:" msgstr "Fcitx-tilstand:" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:9 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:12 msgid "" "Fcitx is an input method framework. It can help you to type your own " "language. It also features variant choice of addons that improve your typing " @@ -886,7 +898,7 @@ "sprog du kender. Det har også en vifte af tilføjelser som forbedre din " "skriveoplevelse." -#: src/modules/wayland/waylandmodule.cpp:573 +#: src/modules/wayland/waylandmodule.cpp:603 msgid "" "Fcitx should be launched by KWin under KDE Wayland in order to use Wayland " "input method frontend. This can improve the experience when using Fcitx on " @@ -915,15 +927,15 @@ msgid "Find" msgstr "Find" -#: src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:47 msgid "First Candidate" msgstr "" -#: src/ui/classic/classicui.h:164 +#: src/ui/classic/classicui.h:161 msgid "Follow system accent color if it is supported by theme and desktop" msgstr "" -#: src/ui/classic/classicui.h:160 +#: src/ui/classic/classicui.h:157 msgid "Follow system light/dark color scheme" msgstr "" @@ -935,22 +947,22 @@ "using text-input support by Qt under Wayland." msgstr "" -#: src/ui/classic/classicui.h:120 +#: src/ui/classic/classicui.h:117 msgid "Font" msgstr "Skrifttype" -#: src/ui/classic/classicui.h:150 +#: src/ui/classic/classicui.h:147 msgid "" "For example, display character with Chinese variant when using Pinyin and " "Japanese variant when using Anthy. The font configuration needs to support " "this to use this feature." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:641 +#: src/modules/wayland/waylandmodule.cpp:671 msgid "For more details see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland" msgstr "" -#: src/ui/classic/classicui.h:178 +#: src/ui/classic/classicui.h:175 msgid "Force font DPI on Wayland" msgstr "" @@ -1056,12 +1068,12 @@ msgid "Group" msgstr "Gruppe" -#: src/lib/fcitx/instance.cpp:415 +#: src/lib/fcitx/instance.cpp:423 #, c++-format msgid "Group {0}: {1}" msgstr "Gruppe {0}: {1}" -#: src/lib/fcitx/instance.cpp:360 +#: src/lib/fcitx/instance.cpp:368 #, c++-format msgid "Group {}" msgstr "Gruppe {}" @@ -1157,31 +1169,35 @@ msgid "Hibernate" msgstr "Dvale" -#: src/modules/notifications/notifications.h:28 +#: src/modules/notifications/notifications.h:26 msgid "Hidden Notifications" msgstr "Skjulte underretninger" -#: src/ui/classic/theme.h:116 +#: src/modules/clipboard/clipboard.h:70 +msgid "Hidden clipboard content that contains a password" +msgstr "" + +#: src/ui/classic/theme.h:114 msgid "Hide overlay if size does not fit" msgstr "Skjul overlægningen hvis størrelsen ikke passer" -#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:180 +#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 msgid "Highlight Background" msgstr "Baggrund for fremhævning" -#: src/ui/classic/theme.h:140 +#: src/ui/classic/theme.h:138 msgid "Highlight Background color" msgstr "Baggrundsfarve for fremhævning" -#: src/ui/classic/theme.h:143 +#: src/ui/classic/theme.h:141 msgid "Highlight Candidate Color" msgstr "Kandidatfarve for fremhævning" -#: src/ui/classic/theme.h:126 +#: src/ui/classic/theme.h:124 msgid "Highlight Click Margin" msgstr "Fremhæv klikmargen" -#: src/ui/classic/theme.h:138 +#: src/ui/classic/theme.h:136 msgid "Highlight text color" msgstr "Tekstfarve for fremhævning" @@ -1224,7 +1240,7 @@ msgid "Hot Links" msgstr "Hotlinks" -#: src/lib/fcitx/globalconfig.cpp:201 +#: src/lib/fcitx/globalconfig.cpp:207 msgid "Hotkey" msgstr "Hottast" @@ -1248,7 +1264,7 @@ msgid "IBus Frontend" msgstr "IBus-frontend" -#: src/lib/fcitx/globalconfig.cpp:197 +#: src/lib/fcitx/globalconfig.cpp:203 msgid "" "If value is 0, the user data may only be saved when fcitx quits (e.g. " "logout)." @@ -1274,17 +1290,16 @@ "bruger kommandoen ${g36_disable_ibus} til at deaktivere IBus-integration for " "at kunne bruge andre inputmetoder end ${2}. Se ${link} for flere detaljer." -#: src/ui/classic/theme.h:129 +#: src/ui/classic/theme.h:127 msgid "Image" msgstr "Billede" -#: src/im/keyboard/keyboard.cpp:684 src/lib/fcitx/instance.cpp:450 -#: src/lib/fcitx/instance.cpp:677 src/lib/fcitx/instance.cpp:839 -#: src/modules/notificationitem/notificationitem.cpp:147 -#: src/modules/notificationitem/notificationitem.cpp:235 -#: src/modules/xcb/xcbconnection.cpp:555 -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:4 -#: data/org.fcitx.Fcitx5.desktop.in.in:4 +#: src/im/keyboard/keyboard.cpp:705 src/lib/fcitx/instance.cpp:458 +#: src/lib/fcitx/instance.cpp:686 src/lib/fcitx/instance.cpp:848 +#: src/modules/notificationitem/notificationitem.cpp:142 +#: src/modules/notificationitem/notificationitem.cpp:230 +#: src/modules/xcb/xcbconnection.cpp:555 data/org.fcitx.Fcitx5.desktop.in.in:4 +#: data/fcitx5-wayland-launcher.desktop.in.in:4 #: data/org.fcitx.Fcitx5.metainfo.xml.in:7 msgid "Input Method" msgstr "Inputmetode" @@ -1301,27 +1316,27 @@ msgid "Input Methods:" msgstr "" -#: src/ui/classic/theme.h:201 +#: src/ui/classic/theme.h:199 msgid "Input Panel" msgstr "Inputpanel" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Background" msgstr "" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Border" msgstr "" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight" msgstr "" -#: src/ui/classic/theme.h:66 +#: src/ui/classic/theme.h:64 msgid "Input Panel Highlight Candidate Background" msgstr "" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight Candidate Border" msgstr "" @@ -1329,7 +1344,7 @@ msgid "Input method selector" msgstr "Valg af inputmetode" -#: src/lib/fcitx/globalconfig.cpp:103 src/lib/fcitx/globalconfig.cpp:115 +#: src/lib/fcitx/globalconfig.cpp:104 src/lib/fcitx/globalconfig.cpp:116 msgid "" "Input methods may have different setup in their own configuration. This is " "commonly used by modules like clipboard or quickphrase." @@ -1340,7 +1355,7 @@ msgid "Insert" msgstr "Indsæt" -#: src/lib/fcitx/globalconfig.cpp:193 +#: src/lib/fcitx/globalconfig.cpp:199 msgid "Interval of saving user data in minutes" msgstr "" @@ -1354,7 +1369,7 @@ "supports text-input protocol used by ${1}." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:598 +#: src/modules/wayland/waylandmodule.cpp:628 msgid "" "It is recommended to install Input Method Panel GNOME Shell Extensions to " "provide the input method popup. https://extensions.gnome.org/extension/261/" @@ -1367,7 +1382,7 @@ msgid "KDE Input Method Panel" msgstr "Panel til KDE-inputmetode" -#: src/ui/classic/classicui.cpp:280 +#: src/ui/classic/classicui.cpp:278 msgid "KDE Plasma (Experimental)" msgstr "" @@ -1391,20 +1406,20 @@ msgid "Katakana" msgstr "Katakana" -#: src/im/keyboard/longpress.h:16 +#: src/im/keyboard/longpress.h:20 msgid "Key" msgstr "Tast" -#: src/im/keyboard/keyboard.cpp:315 src/im/keyboard/keyboard.conf.in.in:3 +#: src/im/keyboard/keyboard.cpp:335 src/im/keyboard/keyboard.conf.in.in:3 msgid "Keyboard" msgstr "Tastatur" -#: src/im/keyboard/keyboard.cpp:231 +#: src/im/keyboard/keyboard.cpp:251 #, c++-format msgid "Keyboard - {0}" msgstr "Tastatur - {0}" -#: src/im/keyboard/keyboard.cpp:250 +#: src/im/keyboard/keyboard.cpp:270 #, c++-format msgid "Keyboard - {0} - {1}" msgstr "Tastatur - {0} - {1}" @@ -1612,7 +1627,7 @@ msgid "Kimpanel process:" msgstr "Kimpanel-proces:" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Last Candidate" msgstr "" @@ -1749,7 +1764,7 @@ msgid "Logoff" msgstr "Log ud" -#: src/im/keyboard/keyboard.h:89 +#: src/im/keyboard/keyboard.h:102 msgid "Long Press behavior" msgstr "Opførsel for langt tryk" @@ -1758,31 +1773,31 @@ msgid "Mail Forward" msgstr "Mail videresend" -#: src/ui/classic/theme.h:118 +#: src/ui/classic/theme.h:116 msgid "Margin" msgstr "Margen" -#: src/ui/classic/theme.h:80 +#: src/ui/classic/theme.h:78 msgid "Margin Bottom" msgstr "Margen nederst" -#: src/ui/classic/theme.h:74 +#: src/ui/classic/theme.h:72 msgid "Margin Left" msgstr "Margen til venstre" -#: src/ui/classic/theme.h:76 +#: src/ui/classic/theme.h:74 msgid "Margin Right" msgstr "Margen til højre" -#: src/ui/classic/theme.h:78 +#: src/ui/classic/theme.h:76 msgid "Margin Top" msgstr "Margen øverst" -#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 +#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:184 msgid "Margin around all content" msgstr "Margen omkring al indholdet" -#: src/ui/classic/theme.h:164 src/ui/classic/theme.h:188 +#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 msgid "Margin around text" msgstr "Margen omkring tekst" @@ -1841,7 +1856,7 @@ msgid "Meeting" msgstr "Møde" -#: src/ui/classic/theme.h:202 +#: src/ui/classic/theme.h:200 msgid "Menu" msgstr "Menu" @@ -1850,15 +1865,15 @@ msgid "Menu" msgstr "Menu" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Background" msgstr "" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Border" msgstr "" -#: src/ui/classic/classicui.h:122 +#: src/ui/classic/classicui.h:119 msgid "Menu Font" msgstr "Menuens skrifttype" @@ -1867,15 +1882,15 @@ msgid "Menu PB" msgstr "Menu-PB" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Background" msgstr "" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Border" msgstr "" -#: src/ui/classic/theme.h:70 +#: src/ui/classic/theme.h:68 msgid "Menu Separator" msgstr "" @@ -1884,7 +1899,7 @@ msgid "Messenger" msgstr "Messenger" -#: src/ui/classic/theme.h:199 +#: src/ui/classic/theme.h:197 msgid "Metadata" msgstr "Metadata" @@ -1923,7 +1938,7 @@ msgid "My Sites" msgstr "Mine steder" -#: src/ui/classic/theme.h:191 +#: src/ui/classic/theme.h:189 msgid "Name" msgstr "Navn" @@ -1937,31 +1952,31 @@ msgid "News" msgstr "Nyheder" -#: src/im/keyboard/keyboard.h:48 +#: src/im/keyboard/keyboard.h:60 msgid "Next Candidate" msgstr "Næste kandidat" -#: src/ui/classic/theme.h:166 +#: src/ui/classic/theme.h:164 msgid "Next Page Button" msgstr "Knap for næste side" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "No" msgstr "" -#: src/modules/clipboard/clipboard.cpp:355 +#: src/modules/clipboard/clipboard.cpp:371 msgid "No clipboard history." msgstr "Ingen udklipsholderhistorik." -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:28 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:24 msgid "None" msgstr "Ingen" -#: src/ui/classic/theme.h:135 src/ui/classic/theme.h:171 +#: src/ui/classic/theme.h:133 src/ui/classic/theme.h:169 msgid "Normal text color" msgstr "Normal tekstfarve" -#: src/ui/classic/classicui.h:182 +#: src/ui/classic/classicui.h:179 msgid "" "Normally Wayland uses 96 as font DPI in combinition with the screen scale " "factor. This option allows you to override the font DPI. If the value is 0, " @@ -1985,11 +2000,11 @@ msgid "NumLock" msgstr "NumLock" -#: src/modules/clipboard/clipboard.h:48 +#: src/modules/clipboard/clipboard.h:54 msgid "Number of entries" msgstr "Antal poster" -#: src/im/keyboard/keyboard.cpp:670 +#: src/im/keyboard/keyboard.cpp:691 msgid "" "Only emoji support is found. To enable spell checking, you may need to " "install spell check data for the language." @@ -2012,27 +2027,27 @@ msgid "Option" msgstr "Valgmulighed" -#: src/ui/classic/theme.h:120 +#: src/ui/classic/theme.h:118 msgid "Overlay Clip Margin" msgstr "Klikmargen for overlægning" -#: src/ui/classic/theme.h:110 +#: src/ui/classic/theme.h:108 msgid "Overlay Image" msgstr "Billede for overlægning" -#: src/ui/classic/theme.h:113 +#: src/ui/classic/theme.h:111 msgid "Overlay X offset" msgstr "X-forskydning for overlægning" -#: src/ui/classic/theme.h:114 +#: src/ui/classic/theme.h:112 msgid "Overlay Y offset" msgstr "Y-forskydning for overlægning" -#: src/ui/classic/theme.h:112 +#: src/ui/classic/theme.h:110 msgid "Overlay position" msgstr "Placering for overlægning" -#: src/lib/fcitx/globalconfig.cpp:167 +#: src/lib/fcitx/globalconfig.cpp:173 msgid "Override Xkb Option" msgstr "" @@ -2054,11 +2069,11 @@ msgid "Page Up" msgstr "" -#: src/ui/classic/theme.h:155 +#: src/ui/classic/theme.h:153 msgid "Page button vertical alignment" msgstr "" -#: src/im/keyboard/keyboard.h:37 +#: src/im/keyboard/keyboard.h:49 msgid "Page size" msgstr "Sidestørrelse" @@ -2067,7 +2082,7 @@ msgid "Paste" msgstr "Indsæt" -#: src/modules/clipboard/clipboard.h:46 +#: src/modules/clipboard/clipboard.h:52 msgid "Paste Primary" msgstr "Indsæt primære" @@ -2117,19 +2132,19 @@ msgid "Power Off" msgstr "Sluk" -#: src/lib/fcitx/instance.cpp:839 +#: src/lib/fcitx/instance.cpp:848 msgid "Preedit" msgstr "Preedit" -#: src/lib/fcitx/instance.cpp:841 +#: src/lib/fcitx/instance.cpp:850 msgid "Preedit disabled" msgstr "Preedit deaktiveret" -#: src/lib/fcitx/instance.cpp:840 +#: src/lib/fcitx/instance.cpp:849 msgid "Preedit enabled" msgstr "Preedit aktiveret" -#: src/ui/classic/classicui.h:130 src/ui/kimpanel/kimpanel.h:33 +#: src/ui/classic/classicui.h:127 src/ui/kimpanel/kimpanel.h:28 msgid "Prefer Text Icon" msgstr "" @@ -2137,11 +2152,11 @@ msgid "Presage" msgstr "Varsel" -#: src/im/keyboard/keyboard.h:42 +#: src/im/keyboard/keyboard.h:54 msgid "Prev Candidate" msgstr "Forrige kandidat" -#: src/ui/classic/theme.h:165 +#: src/ui/classic/theme.h:163 msgid "Prev Page Button" msgstr "Knap for forrige side" @@ -2155,7 +2170,7 @@ msgid "Print Screen" msgstr "Print Screen" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "Program" msgstr "" @@ -2167,7 +2182,7 @@ msgid "Quick Phrase" msgstr "Hurtigfrase" -#: src/modules/quickphrase/quickphrase.cpp:471 +#: src/modules/quickphrase/quickphrase.cpp:470 msgid "Quick Phrase: " msgstr "Hurtigfrase: " @@ -2196,6 +2211,10 @@ msgid "Reply" msgstr "Svar" +#: src/lib/fcitx/globalconfig.cpp:143 +msgid "Reset state on Focus In" +msgstr "" + #: src/ui/classic/xcbtraywindow.cpp:39 #: src/modules/notificationitem/dbusmenu.cpp:261 msgid "Restart" @@ -2280,6 +2299,10 @@ msgid "Search" msgstr "Søg" +#: src/modules/clipboard/clipboard.h:76 +msgid "Seconds before clearing password" +msgstr "" + #: src/lib/fcitx-utils/key.cpp:233 msgctxt "Key name" msgid "Select" @@ -2297,7 +2320,7 @@ msgid "Select specific input method via keyboard" msgstr "Vælg bestemt inputmetode via tastatur" -#: src/ui/classic/theme.h:174 +#: src/ui/classic/theme.h:172 msgid "Selected Item text color" msgstr "" @@ -2306,22 +2329,22 @@ msgid "Send" msgstr "Send" -#: src/modules/wayland/waylandmodule.cpp:630 +#: src/modules/wayland/waylandmodule.cpp:660 msgid "" "Sending keyboard layout configuration to wayland compositor from Fcitx is " "not yet supported on current desktop. You may still use Fcitx's internal " "layout conversion by adding layout as input method to the input method group." msgstr "" -#: src/ui/classic/theme.h:182 +#: src/ui/classic/theme.h:180 msgid "Separator Background" msgstr "Baggrund for separator" -#: src/ui/classic/theme.h:168 +#: src/ui/classic/theme.h:166 msgid "Shadow Margin" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:141 +#: src/lib/fcitx/globalconfig.cpp:147 msgid "Share Input State" msgstr "Del inputtilstand" @@ -2335,47 +2358,47 @@ msgid "Shop" msgstr "Butik" -#: src/lib/fcitx/globalconfig.cpp:152 +#: src/lib/fcitx/globalconfig.cpp:158 msgid "Show Input Method Information when changing focus" msgstr "Vis information om inputmetode når der skiftes fokus" -#: src/lib/fcitx/globalconfig.cpp:149 +#: src/lib/fcitx/globalconfig.cpp:155 msgid "Show Input Method Information when switch input method" msgstr "Vis information om inputmetode når der skiftes inputmetode" -#: src/ui/classic/classicui.h:135 +#: src/ui/classic/classicui.h:132 msgid "Show Layout Name In Icon" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:155 +#: src/lib/fcitx/globalconfig.cpp:161 msgid "Show compact input method information" msgstr "Vis kompakt information om inputmetode" -#: src/lib/fcitx/globalconfig.cpp:158 +#: src/lib/fcitx/globalconfig.cpp:164 msgid "Show first input method information" msgstr "Vis første information om inputmetode" -#: src/ui/classic/classicui.h:139 +#: src/ui/classic/classicui.h:136 msgid "" "Show layout name in icon if there is more than one active layout. If prefer " "text icon is set to true, this option will be ignored." msgstr "" -#: src/lib/fcitx/globalconfig.cpp:145 +#: src/lib/fcitx/globalconfig.cpp:151 msgid "Show preedit in application" msgstr "Vis preedit i program" -#: src/lib/fcitx/globalconfig.cpp:189 +#: src/lib/fcitx/globalconfig.cpp:195 msgid "Show preedit text when typing password" msgstr "" -#: src/im/keyboard/keyboard.h:77 +#: src/im/keyboard/keyboard.h:89 msgid "" "Show preedit when composing, and commit dead key if there is no matching " "sequence." msgstr "" -#: src/lib/fcitx/globalconfig.cpp:64 +#: src/lib/fcitx/globalconfig.cpp:65 msgid "Skip first input method while enumerating" msgstr "Spring over første inputmetode under gennemløb" @@ -2389,11 +2412,11 @@ msgid "Space" msgstr "Mellemrum" -#: src/ui/classic/theme.h:176 +#: src/ui/classic/theme.h:174 msgid "Spacing" msgstr "Afstand" -#: src/im/keyboard/keyboard.h:79 src/modules/spell/spell.conf.in.in:3 +#: src/im/keyboard/keyboard.h:91 src/modules/spell/spell.conf.in.in:3 msgid "Spell" msgstr "Stav" @@ -2417,8 +2440,8 @@ msgid "Standby" msgstr "Standby" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:5 #: data/org.fcitx.Fcitx5.desktop.in.in:5 +#: data/fcitx5-wayland-launcher.desktop.in.in:5 msgid "Start Input Method" msgstr "Start inputmetode" @@ -2431,7 +2454,7 @@ msgid "Stop" msgstr "Stop" -#: src/ui/classic/theme.h:184 +#: src/ui/classic/theme.h:182 msgid "Sub Menu" msgstr "Undermenu" @@ -2440,7 +2463,7 @@ msgid "Subtitle" msgstr "Undertekst" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:25 msgid "Super" msgstr "Super" @@ -2459,17 +2482,17 @@ msgid "Suspend" msgstr "Hvile" -#: src/lib/fcitx/instance.cpp:451 src/lib/fcitx/instance.cpp:678 +#: src/lib/fcitx/instance.cpp:459 src/lib/fcitx/instance.cpp:687 #: src/modules/xcb/xcbconnection.cpp:556 msgid "Switch group" msgstr "Skift gruppe" -#: src/lib/fcitx/instance.cpp:452 src/modules/xcb/xcbconnection.cpp:557 +#: src/lib/fcitx/instance.cpp:460 src/modules/xcb/xcbconnection.cpp:557 #, c++-format msgid "Switch group to {0}" msgstr "Skift gruppe til {0}" -#: src/lib/fcitx/instance.cpp:679 +#: src/lib/fcitx/instance.cpp:688 #, c++-format msgid "Switched group to {0}" msgstr "Skiftede gruppe til {0}" @@ -2493,7 +2516,7 @@ msgid "Task Panel" msgstr "Opgavepanel" -#: src/lib/fcitx/globalconfig.cpp:44 +#: src/lib/fcitx/globalconfig.cpp:45 msgid "Temporally switch between first and current Input Method" msgstr "Skift midlertidigt mellem første og nuværende inputmetode" @@ -2521,27 +2544,27 @@ msgid "The script is run as ${1} (${2})." msgstr "Scriptet køres som ${1} (${2})." -#: src/ui/classic/classicui.h:155 +#: src/ui/classic/classicui.h:152 msgid "Theme" msgstr "Tema" -#: src/ui/classic/classicui.h:101 +#: src/ui/classic/classicui.h:98 msgid "This is only effective when the tray icon is xembed." msgstr "Anvendes kun når bakkeikonet er xembed." -#: src/ui/classic/theme.h:93 src/ui/classic/theme.h:101 +#: src/ui/classic/theme.h:91 src/ui/classic/theme.h:99 msgid "This option is only effective if image is not set." msgstr "" -#: src/ui/classic/classicui.h:194 +#: src/ui/classic/classicui.h:191 msgid "This option require support from wayland compositor." msgstr "" -#: src/ui/classic/classicui.h:173 +#: src/ui/classic/classicui.h:170 msgid "This option will be always disabled on XWayland." msgstr "" -#: src/ui/classic/theme.h:109 +#: src/ui/classic/theme.h:107 msgid "This value should be less than any of margin value." msgstr "" @@ -2568,7 +2591,7 @@ "når du bruger xim. Se ${link2}, for andre generelle problemer med at bruge " "XIM, inklusiv programfrysninger." -#: src/lib/fcitx/globalconfig.cpp:132 +#: src/lib/fcitx/globalconfig.cpp:133 msgid "Toggle embedded preedit" msgstr "Indlejret preedit til/fra" @@ -2577,15 +2600,15 @@ msgid "Tools" msgstr "Værktøjer" -#: src/ui/classic/theme.h:48 +#: src/ui/classic/theme.h:46 msgid "Top" msgstr "" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Center" msgstr "Øverst i midten" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Left" msgstr "Øverst til venstre" @@ -2594,7 +2617,7 @@ msgid "Top Menu" msgstr "Topmenu" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Top Right" msgstr "Øverst til højre" @@ -2623,25 +2646,25 @@ msgid "Travel" msgstr "Rejse" -#: src/ui/classic/classicui.h:124 +#: src/ui/classic/classicui.h:121 msgid "Tray Font" msgstr "Skrifttype for bakke" -#: src/ui/classic/classicui.h:126 +#: src/ui/classic/classicui.h:123 msgid "Tray Label Outline Color" msgstr "" -#: src/ui/classic/classicui.h:129 +#: src/ui/classic/classicui.h:126 msgid "Tray Label Text Color" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:34 +#: src/lib/fcitx/globalconfig.cpp:35 msgid "Trigger Input Method" msgstr "Udløs inputmetode" #: src/modules/imselector/imselector.h:28 -#: src/modules/quickphrase/quickphrase.h:36 src/modules/unicode/unicode.h:31 -#: src/modules/clipboard/clipboard.h:42 +#: src/modules/quickphrase/quickphrase.h:32 src/modules/unicode/unicode.h:28 +#: src/modules/clipboard/clipboard.h:48 msgid "Trigger Key" msgstr "Tast til at udløse" @@ -2649,23 +2672,23 @@ msgid "Trigger Key for only current input context" msgstr "Udløsertast kun til nuværende inputkontekst" -#: src/im/keyboard/keyboard.h:62 +#: src/im/keyboard/keyboard.h:74 msgid "Trigger hint mode" msgstr "Udløs tipstilstand" -#: src/im/keyboard/keyboard.h:67 +#: src/im/keyboard/keyboard.h:79 msgid "Trigger hint mode for one time" msgstr "" -#: src/im/keyboard/keyboard.h:82 +#: src/im/keyboard/keyboard.h:94 msgid "Type special characters with long press" msgstr "Skriv specialtegn med langt tryk" -#: src/modules/unicode/unicode.h:36 +#: src/modules/unicode/unicode.h:33 msgid "Type unicode in Hex number" msgstr "" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:22 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:26 msgid "Typing with Fcitx and Kimpanel" msgstr "Skriver med Fcitx og Kimpanel" @@ -2682,7 +2705,7 @@ msgid "Unicode" msgstr "Unicode" -#: src/modules/unicode/unicode.cpp:456 +#: src/modules/unicode/unicode.cpp:455 msgid "Unicode: " msgstr "Unicode: " @@ -2691,27 +2714,27 @@ msgid "Up" msgstr "Op" -#: src/frontend/xim/xim.h:33 +#: src/frontend/xim/xim.h:27 msgid "Use On The Spot Style (Needs restarting)" msgstr "Brug her-og-nu-stil (kræver genstart)" -#: src/ui/classic/classicui.h:169 +#: src/ui/classic/classicui.h:166 msgid "Use Per Screen DPI on X11" msgstr "" -#: src/ui/classic/theme.h:151 +#: src/ui/classic/theme.h:149 msgid "Use all horizontal space for highlight when it is vertical list" msgstr "Brug al vandret plads til fremhævning når det er en lodret liste" -#: src/ui/classic/classicui.h:146 +#: src/ui/classic/classicui.h:143 msgid "Use input method language to display text" msgstr "" -#: src/ui/classic/classicui.h:116 +#: src/ui/classic/classicui.h:113 msgid "Use mouse wheel to go to prev or next page" msgstr "Brug musehjulet for at gå til forrige eller næste side" -#: src/im/keyboard/keyboard.h:73 +#: src/im/keyboard/keyboard.h:85 msgid "Use new compose behavior" msgstr "" @@ -2729,7 +2752,7 @@ "environment:" msgstr "" -#: src/ui/classic/theme.h:192 +#: src/ui/classic/theme.h:190 msgid "Version" msgstr "Version" @@ -2737,7 +2760,7 @@ msgid "Version Line:" msgstr "Versionslinje:" -#: src/ui/classic/classicui.h:114 +#: src/ui/classic/classicui.h:111 msgid "Vertical Candidate List" msgstr "Lodret kandidatliste" @@ -2792,7 +2815,7 @@ msgid "Wayland" msgstr "Wayland" -#: src/modules/wayland/waylandmodule.cpp:558 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Wayland Diagnose" msgstr "" @@ -2805,7 +2828,14 @@ msgid "WebCam" msgstr "Webcam" -#: src/lib/fcitx/globalconfig.cpp:171 +#: src/modules/clipboard/clipboard.h:65 +msgid "" +"When copying password from a password manager, if the password manager " +"supports marking the clipboard content as password, this clipboard update " +"will be ignored." +msgstr "" + +#: src/lib/fcitx/globalconfig.cpp:177 msgid "" "Whether to override the xkb option from display server. It will not affect " "the xkb option send to display, but just the xkb options for custom xkb " @@ -2910,20 +2940,16 @@ #: data/fcitx5-configtool.sh:137 msgid "" "You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be " -"found. Now it will open config directory." +"found. The package name provides this binary is usually fcitx5-configtool. " +"Now it will open the configuration directory." msgstr "" -"Du kører i øjeblikket Fcitx med grafisk brugerflade, men fcitx5-config-qt " -"blev ikke fundet. Den vil nu åbne konfigurationsmappen." #: data/fcitx5-configtool.sh:134 msgid "" -"You're currently running KDE, but KCModule for fcitx couldn't be found, the " -"package name of this KCModule is usually kcm-fcitx or kde-config-fcitx. Now " -"it will open config directory." -msgstr "" -"Du kører i øjeblikket KDE, men KCModule til fcitx blev ikke fundet, " -"pakkenavnet for KCModule er typisk kcm-fcitx eller kde-config-fcitx. Den vil " -"nu åbne konfigurationsmappen." +"You're currently running KDE, but KCModule for fcitx couldn't be found. The " +"package name of this KCModule is usually kcm-fcitx5, kde-config-fcitx5, or " +"fcitx5-configtool. Now it will open the configuration directory." +msgstr "" #: data/fcitx5-diagnose.sh:1185 msgid "" @@ -2988,17 +3014,17 @@ msgid "version:" msgstr "version:" -#: src/im/keyboard/keyboard.cpp:292 +#: src/im/keyboard/keyboard.cpp:312 #, c++-format msgid "{0} (Not Available)" msgstr "{0} (ikke tilgængelig)" -#: src/lib/fcitx/instance.cpp:409 +#: src/lib/fcitx/instance.cpp:417 #, c++-format msgid "{0} (Not available)" msgstr "{0} (ikke tilgængelig)" -#: src/lib/fcitx/instance.cpp:406 +#: src/lib/fcitx/instance.cpp:414 #, c++-format msgid "{0} ({1})" msgstr "{0} ({1})" diff -Nru fcitx5-5.1.7/po/de.po fcitx5-5.1.11/po/de.po --- fcitx5-5.1.7/po/de.po 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/po/de.po 2024-10-09 03:48:05.000000000 +0800 @@ -12,7 +12,7 @@ msgstr "" "Project-Id-Version: fcitx5\n" "Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" -"POT-Creation-Date: 2024-01-14 20:24+0000\n" +"POT-Creation-Date: 2024-06-11 20:24+0000\n" "PO-Revision-Date: 2017-11-23 04:14+0000\n" "Last-Translator: mar well <m.wellendorf@gmx.de>, 2023\n" "Language-Team: German (https://app.transifex.com/fcitx/teams/12005/de/)\n" @@ -50,11 +50,11 @@ msgid "${1} works properly." msgstr "${1} funktioniert ordnungsgemäß." -#: src/lib/fcitx/instance.cpp:411 +#: src/lib/fcitx/instance.cpp:419 msgid "(Not available)" msgstr "(nicht vorhanden)" -#: src/modules/unicode/unicode.cpp:458 +#: src/modules/unicode/unicode.cpp:457 msgid "(Type to search unicode by code or description)" msgstr "" @@ -78,23 +78,31 @@ msgid "/XIM" msgstr "/XIM" -#: src/modules/unicode/charselectdata.cpp:215 +#: src/modules/clipboard/clipboard.h:80 +msgid "0 means never clear password." +msgstr "" + +#: src/modules/unicode/charselectdata.cpp:213 msgid "<Low Surrogate>" msgstr "<Low Surrogate>" -#: src/modules/unicode/charselectdata.cpp:211 +#: src/modules/unicode/charselectdata.cpp:209 msgid "<Non Private Use High Surrogate>" msgstr "<Non Private Use High Surrogate>" -#: src/modules/unicode/charselectdata.cpp:213 +#: src/modules/clipboard/clipboard.cpp:116 +msgid "<Passowrd>" +msgstr "" + +#: src/modules/unicode/charselectdata.cpp:211 msgid "<Private Use High Surrogate>" msgstr "<Private Use High Surrogate>" -#: src/modules/unicode/charselectdata.cpp:217 +#: src/modules/unicode/charselectdata.cpp:215 msgid "<Private Use>" msgstr "<Private Use>" -#: src/modules/unicode/charselectdata.cpp:247 +#: src/modules/unicode/charselectdata.cpp:245 msgid "<not assigned>" msgstr "<not assigned>" @@ -102,15 +110,15 @@ msgid "A virtual keyboard backend based on DBus" msgstr "Eine virtuelle Tastatur basierend auf DBus" -#: src/ui/classic/theme.h:204 +#: src/ui/classic/theme.h:202 msgid "Accent Colors" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:82 +#: src/lib/fcitx/globalconfig.cpp:83 msgid "Activate Input Method" msgstr "Eingabemethode aktivieren" -#: src/lib/fcitx/globalconfig.cpp:138 +#: src/lib/fcitx/globalconfig.cpp:139 msgid "Active By Default" msgstr "Per Voreinstellung aktiviert" @@ -140,7 +148,7 @@ msgid "Adjust Brightness" msgstr "Helligkeit einstellen" -#: src/lib/fcitx/globalconfig.cpp:26 +#: src/lib/fcitx/globalconfig.cpp:27 msgid "All" msgstr "Alle" @@ -156,19 +164,19 @@ msgid "All locales:" msgstr "Alle Sprachumgebungen:" -#: src/modules/xcb/xcbmodule.h:30 +#: src/modules/xcb/xcbmodule.h:26 msgid "Allow Overriding System XKB Settings" msgstr "Erlauben, die XKB-Einstellungen außer Kraft zu setzen" -#: src/modules/wayland/waylandmodule.h:36 +#: src/modules/wayland/waylandmodule.h:35 msgid "Allow Overriding System XKB Settings (Only support KDE 5)" msgstr "Übergehen der XKB-Einstellungen erlauben (nur für KDE5 unterstützt)" -#: src/lib/fcitx/globalconfig.cpp:186 +#: src/lib/fcitx/globalconfig.cpp:192 msgid "Allow input method in the password field" msgstr "" -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:25 msgid "Alt" msgstr "Alt" @@ -177,7 +185,7 @@ msgid "Alt" msgstr "Alt" -#: src/modules/xcb/xcbmodule.h:33 +#: src/modules/xcb/xcbmodule.h:29 msgid "Always set layout to be only group layout" msgstr "" @@ -191,7 +199,7 @@ msgid "Application Right" msgstr "Anwendung Rechts" -#: src/im/keyboard/keyboard.h:87 +#: src/im/keyboard/keyboard.h:99 msgid "Applications disabled for long press" msgstr "" @@ -210,7 +218,7 @@ msgid "Audio Repeat" msgstr "Audio Wiederhohlung" -#: src/ui/classic/theme.h:193 +#: src/ui/classic/theme.h:191 msgid "Author" msgstr "Autor" @@ -233,11 +241,11 @@ msgid "Backends" msgstr "Backends" -#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 +#: src/ui/classic/theme.h:156 src/ui/classic/theme.h:176 msgid "Background" msgstr "Hintergrund" -#: src/ui/classic/theme.h:85 +#: src/ui/classic/theme.h:83 msgid "Background Image" msgstr "Hintergrundbild" @@ -259,7 +267,7 @@ msgid "Beginner's Guide" msgstr "Anleitung für Anfänger" -#: src/lib/fcitx/globalconfig.cpp:203 +#: src/lib/fcitx/globalconfig.cpp:209 msgid "Behavior" msgstr "Verhalten" @@ -273,11 +281,11 @@ msgid "Bluetooth" msgstr "Bluetooth" -#: src/ui/classic/theme.h:148 +#: src/ui/classic/theme.h:146 msgid "Blur Margin" msgstr "Unscharfer Rand" -#: src/ui/classic/theme.h:147 +#: src/ui/classic/theme.h:145 msgid "Blur mask" msgstr "Unschärfemaske" @@ -286,27 +294,27 @@ msgid "Book" msgstr "Buch" -#: src/ui/classic/theme.h:97 +#: src/ui/classic/theme.h:95 msgid "Border Color" msgstr "Rahmenfarbe" -#: src/ui/classic/theme.h:105 +#: src/ui/classic/theme.h:103 msgid "Border width" msgstr "Rahmenbreite" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Bottom" msgstr "Grund" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Center" msgstr "" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Left" msgstr "Unten links" -#: src/ui/classic/theme.h:39 +#: src/ui/classic/theme.h:37 msgid "Bottom Right" msgstr "Unten rechts" @@ -330,7 +338,7 @@ msgid "Cancel" msgstr "Abbrechen" -#: src/im/keyboard/longpress.h:19 +#: src/im/keyboard/longpress.h:23 msgid "Candidates" msgstr "Kandidaten" @@ -422,15 +430,15 @@ msgid "CapsLock" msgstr "CapsLock" -#: src/ui/classic/theme.h:37 src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:35 src/ui/classic/theme.h:47 msgid "Center" msgstr "Zentrum" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Center Left" msgstr "Zentrum links" -#: src/ui/classic/theme.h:37 +#: src/ui/classic/theme.h:35 msgid "Center Right" msgstr "Zentrum rehts" @@ -438,11 +446,11 @@ msgid "Change Fcitx 5 Configuration" msgstr "Fcitx 5 Konfiguration ändern" -#: src/ui/classic/theme.h:183 +#: src/ui/classic/theme.h:181 msgid "Check box" msgstr "Checkbox" -#: src/im/keyboard/keyboard.h:56 src/modules/quickphrase/quickphrase.h:41 +#: src/im/keyboard/keyboard.h:68 src/modules/quickphrase/quickphrase.h:37 msgid "Choose key modifier" msgstr "Funktionstaste wählen" @@ -455,7 +463,7 @@ msgid "Clear" msgstr "Löschen" -#: src/ui/classic/theme.h:131 +#: src/ui/classic/theme.h:129 msgid "Click Margin" msgstr "Rand Clickbereich" @@ -463,7 +471,7 @@ msgid "Clipboard" msgstr "Clipboard" -#: src/modules/clipboard/clipboard.cpp:353 +#: src/modules/clipboard/clipboard.cpp:369 msgid "Clipboard (Press BackSpace/Delete to clear history):" msgstr "Clipboard (BackSpace/Delete drücken, um den Verlauf zu löschen):" @@ -477,7 +485,7 @@ msgid "Code input" msgstr "Codeeingabe" -#: src/ui/classic/theme.h:89 +#: src/ui/classic/theme.h:87 msgid "Color" msgstr "Farbe" @@ -486,19 +494,19 @@ msgid "Community" msgstr "Gemeinschaft" -#: src/im/keyboard/keyboard.cpp:685 +#: src/im/keyboard/keyboard.cpp:706 msgid "Completion" msgstr "Vervollständigung" -#: src/im/keyboard/keyboard.cpp:676 +#: src/im/keyboard/keyboard.cpp:697 msgid "Completion is disabled." msgstr "Vervollständigung ist deaktiviert." -#: src/im/keyboard/keyboard.cpp:679 +#: src/im/keyboard/keyboard.cpp:700 msgid "Completion is enabled temporarily." msgstr "Vervollständigung ist vorübergehend aktiviert." -#: src/im/keyboard/keyboard.cpp:681 +#: src/im/keyboard/keyboard.cpp:702 msgid "Completion is enabled." msgstr "Vervollständigung ist aktiviert." @@ -535,7 +543,7 @@ msgid "Configure" msgstr "Konfigurieren" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:25 msgid "Control" msgstr "Kontrolle" @@ -569,7 +577,7 @@ msgid "Custom" msgstr "Anwenderspezifisch" -#: src/lib/fcitx/globalconfig.cpp:176 +#: src/lib/fcitx/globalconfig.cpp:182 msgid "Custom Xkb Option" msgstr "Benutzerdefinierte xkb Option" @@ -603,11 +611,11 @@ msgid "DOS" msgstr "DOS" -#: src/ui/classic/classicui.h:158 +#: src/ui/classic/classicui.h:155 msgid "Dark Theme" msgstr "Dunkles Thema" -#: src/lib/fcitx/globalconfig.cpp:91 +#: src/lib/fcitx/globalconfig.cpp:92 msgid "Deactivate Input Method" msgstr "Eingabemethode deaktivieren" @@ -615,7 +623,7 @@ msgid "Debug information from dbus:" msgstr "Debug Informationen vom dbus:" -#: src/lib/fcitx/inputmethodmanager.cpp:138 src/lib/fcitx/instance.cpp:358 +#: src/lib/fcitx/inputmethodmanager.cpp:153 src/lib/fcitx/instance.cpp:366 #: src/ui/classic/themes/default/theme.conf.in:3 msgid "Default" msgstr "Standard" @@ -624,23 +632,23 @@ msgid "Default Dark" msgstr "Standard Dunkel" -#: src/lib/fcitx/globalconfig.cpp:127 +#: src/lib/fcitx/globalconfig.cpp:128 msgid "Default Next Candidate" msgstr "Nächster Standardkandidat" -#: src/lib/fcitx/globalconfig.cpp:111 +#: src/lib/fcitx/globalconfig.cpp:112 msgid "Default Next page" msgstr "Vorgabe für nächste Seite" -#: src/lib/fcitx/globalconfig.cpp:121 +#: src/lib/fcitx/globalconfig.cpp:122 msgid "Default Previous Candidate" msgstr "Vorheriger Standardkandidat" -#: src/lib/fcitx/globalconfig.cpp:99 +#: src/lib/fcitx/globalconfig.cpp:100 msgid "Default Previous page" msgstr "Vorgabe für vorherige Seite" -#: src/lib/fcitx/globalconfig.cpp:160 +#: src/lib/fcitx/globalconfig.cpp:166 msgid "Default page size" msgstr "Standard Seitengröße" @@ -649,7 +657,7 @@ msgid "Delete" msgstr "Löschen" -#: src/ui/classic/theme.h:195 +#: src/ui/classic/theme.h:193 msgid "Description" msgstr "Beschreibung" @@ -661,7 +669,7 @@ msgid "Desktop environment is ${1}." msgstr "Desktopumgebung ist ${1}." -#: src/modules/wayland/waylandmodule.cpp:586 +#: src/modules/wayland/waylandmodule.cpp:616 msgid "" "Detect GTK_IM_MODULE and QT_IM_MODULE being set and Wayland Input method " "frontend is working. It is recommended to unset GTK_IM_MODULE and " @@ -669,7 +677,7 @@ "see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma" msgstr "" -#: src/modules/wayland/waylandmodule.cpp:615 +#: src/modules/wayland/waylandmodule.cpp:645 msgid "" "Detect GTK_IM_MODULE being set and Wayland Input method frontend is working. " "It is recommended to unset GTK_IM_MODULE and use Wayland input method " @@ -689,10 +697,14 @@ msgid "Display" msgstr "Zeigen" -#: src/modules/notifications/notifications.cpp:204 +#: src/modules/notifications/notifications.cpp:201 msgid "Do not show again" msgstr "Nicht mehr zeigen" +#: src/modules/clipboard/clipboard.h:61 +msgid "Do not show password from password managers" +msgstr "" + #: src/lib/fcitx-utils/key.cpp:162 msgctxt "Key name" msgid "Documents" @@ -703,7 +715,7 @@ msgid "Down" msgstr "Runter" -#: src/modules/quickphrase/quickphrase.h:47 +#: src/modules/quickphrase/quickphrase.h:43 msgid "Editor" msgstr "Editor" @@ -726,31 +738,31 @@ msgid "Emoji" msgstr "Emoji" -#: src/im/keyboard/longpress.h:17 +#: src/im/keyboard/longpress.h:21 msgid "Enable" msgstr "Aktivieren" -#: src/ui/classic/theme.h:145 +#: src/ui/classic/theme.h:143 msgid "Enable Blur on KWin" msgstr "Unschärfe für KWin einschalten" -#: src/modules/quickphrase/quickphrase.h:43 +#: src/modules/quickphrase/quickphrase.h:39 msgid "Enable Spell check" msgstr "Rechtschreibprüfung aktivieren" -#: src/im/keyboard/keyboard.h:51 +#: src/im/keyboard/keyboard.h:63 msgid "Enable emoji in hint" msgstr "Emoji für Hinweise einschalten" -#: src/im/keyboard/keyboard.h:54 +#: src/im/keyboard/keyboard.h:66 msgid "Enable emoji in quickphrase" msgstr "" -#: src/ui/classic/classicui.h:190 +#: src/ui/classic/classicui.h:187 msgid "Enable fractional scale under Wayland" msgstr "" -#: src/im/keyboard/keyboard.h:59 +#: src/im/keyboard/keyboard.h:71 msgid "Enable hint by default" msgstr "Hinweise standardmäßig einschalten" @@ -763,27 +775,27 @@ msgid "End" msgstr "Ende" -#: src/im/keyboard/longpress.h:26 +#: src/im/keyboard/longpress.h:30 msgid "Entries" msgstr "Einträge" -#: src/lib/fcitx/globalconfig.cpp:58 +#: src/lib/fcitx/globalconfig.cpp:59 msgid "Enumerate Input Method Backward" msgstr "Eingabemethoden umgekehrt nummerieren" -#: src/lib/fcitx/globalconfig.cpp:51 +#: src/lib/fcitx/globalconfig.cpp:52 msgid "Enumerate Input Method Forward" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:75 +#: src/lib/fcitx/globalconfig.cpp:76 msgid "Enumerate Input Method Group Backward" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:68 +#: src/lib/fcitx/globalconfig.cpp:69 msgid "Enumerate Input Method Group Forward" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:40 +#: src/lib/fcitx/globalconfig.cpp:41 msgid "Enumerate when press trigger key repeatedly" msgstr "" @@ -838,7 +850,7 @@ msgid "Failed to find ${1} in the output of ${2}" msgstr "Finde ${1} nicht in der Ausgabe von ${2}" -#: src/modules/quickphrase/quickphrase.h:45 +#: src/modules/quickphrase/quickphrase.h:41 msgid "Fallback Spell check language" msgstr "Fallback Rechtschreibprüfungssprache" @@ -847,7 +859,7 @@ msgid "Favorites" msgstr "Favoriten" -#: src/modules/wayland/waylandmodule.cpp:558 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Fcitx" msgstr "" @@ -860,7 +872,7 @@ msgid "Fcitx 5 Configuration" msgstr "Fcitx 5 Konfiguration" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:3 +#: data/fcitx5-wayland-launcher.desktop.in.in:3 msgid "Fcitx 5 Wayland Launcher (Experimental)" msgstr "" @@ -876,7 +888,7 @@ msgid "Fcitx State:" msgstr "Fcitx-Status:" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:9 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:12 msgid "" "Fcitx is an input method framework. It can help you to type your own " "language. It also features variant choice of addons that improve your typing " @@ -886,7 +898,7 @@ "einzugeben. Es stellt weiter verschiedene Addons zur Verfügung, die die " "Eingabe verbessern können." -#: src/modules/wayland/waylandmodule.cpp:573 +#: src/modules/wayland/waylandmodule.cpp:603 msgid "" "Fcitx should be launched by KWin under KDE Wayland in order to use Wayland " "input method frontend. This can improve the experience when using Fcitx on " @@ -915,15 +927,15 @@ msgid "Find" msgstr "Finden" -#: src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:47 msgid "First Candidate" msgstr "Erster Kandidat" -#: src/ui/classic/classicui.h:164 +#: src/ui/classic/classicui.h:161 msgid "Follow system accent color if it is supported by theme and desktop" msgstr "" -#: src/ui/classic/classicui.h:160 +#: src/ui/classic/classicui.h:157 msgid "Follow system light/dark color scheme" msgstr "Dunkles/Helles Farbschema" @@ -935,22 +947,22 @@ "using text-input support by Qt under Wayland." msgstr "" -#: src/ui/classic/classicui.h:120 +#: src/ui/classic/classicui.h:117 msgid "Font" msgstr "Schriftart" -#: src/ui/classic/classicui.h:150 +#: src/ui/classic/classicui.h:147 msgid "" "For example, display character with Chinese variant when using Pinyin and " "Japanese variant when using Anthy. The font configuration needs to support " "this to use this feature." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:641 +#: src/modules/wayland/waylandmodule.cpp:671 msgid "For more details see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland" msgstr "" -#: src/ui/classic/classicui.h:178 +#: src/ui/classic/classicui.h:175 msgid "Force font DPI on Wayland" msgstr "" @@ -1056,12 +1068,12 @@ msgid "Group" msgstr "Gruppe" -#: src/lib/fcitx/instance.cpp:415 +#: src/lib/fcitx/instance.cpp:423 #, c++-format msgid "Group {0}: {1}" msgstr "Gruppe {0}: {1}" -#: src/lib/fcitx/instance.cpp:360 +#: src/lib/fcitx/instance.cpp:368 #, c++-format msgid "Group {}" msgstr "Gruppe {}" @@ -1157,31 +1169,35 @@ msgid "Hibernate" msgstr "Hibernate" -#: src/modules/notifications/notifications.h:28 +#: src/modules/notifications/notifications.h:26 msgid "Hidden Notifications" msgstr "Verborgene Hinweise" -#: src/ui/classic/theme.h:116 +#: src/modules/clipboard/clipboard.h:70 +msgid "Hidden clipboard content that contains a password" +msgstr "" + +#: src/ui/classic/theme.h:114 msgid "Hide overlay if size does not fit" msgstr "" -#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:180 +#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 msgid "Highlight Background" msgstr "" -#: src/ui/classic/theme.h:140 +#: src/ui/classic/theme.h:138 msgid "Highlight Background color" msgstr "" -#: src/ui/classic/theme.h:143 +#: src/ui/classic/theme.h:141 msgid "Highlight Candidate Color" msgstr "" -#: src/ui/classic/theme.h:126 +#: src/ui/classic/theme.h:124 msgid "Highlight Click Margin" msgstr "" -#: src/ui/classic/theme.h:138 +#: src/ui/classic/theme.h:136 msgid "Highlight text color" msgstr "" @@ -1224,7 +1240,7 @@ msgid "Hot Links" msgstr "Wichtige Links" -#: src/lib/fcitx/globalconfig.cpp:201 +#: src/lib/fcitx/globalconfig.cpp:207 msgid "Hotkey" msgstr "Kurzbefehl" @@ -1246,7 +1262,7 @@ msgid "IBus Frontend" msgstr "IBus Schnittstelle" -#: src/lib/fcitx/globalconfig.cpp:197 +#: src/lib/fcitx/globalconfig.cpp:203 msgid "" "If value is 0, the user data may only be saved when fcitx quits (e.g. " "logout)." @@ -1266,17 +1282,16 @@ "any input method other than ${2}. See ${link} for more detail." msgstr "" -#: src/ui/classic/theme.h:129 +#: src/ui/classic/theme.h:127 msgid "Image" msgstr "Bild" -#: src/im/keyboard/keyboard.cpp:684 src/lib/fcitx/instance.cpp:450 -#: src/lib/fcitx/instance.cpp:677 src/lib/fcitx/instance.cpp:839 -#: src/modules/notificationitem/notificationitem.cpp:147 -#: src/modules/notificationitem/notificationitem.cpp:235 -#: src/modules/xcb/xcbconnection.cpp:555 -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:4 -#: data/org.fcitx.Fcitx5.desktop.in.in:4 +#: src/im/keyboard/keyboard.cpp:705 src/lib/fcitx/instance.cpp:458 +#: src/lib/fcitx/instance.cpp:686 src/lib/fcitx/instance.cpp:848 +#: src/modules/notificationitem/notificationitem.cpp:142 +#: src/modules/notificationitem/notificationitem.cpp:230 +#: src/modules/xcb/xcbconnection.cpp:555 data/org.fcitx.Fcitx5.desktop.in.in:4 +#: data/fcitx5-wayland-launcher.desktop.in.in:4 #: data/org.fcitx.Fcitx5.metainfo.xml.in:7 msgid "Input Method" msgstr "Eingabemethode" @@ -1293,27 +1308,27 @@ msgid "Input Methods:" msgstr "Eingabemethoden:" -#: src/ui/classic/theme.h:201 +#: src/ui/classic/theme.h:199 msgid "Input Panel" msgstr "Eingabeleiste" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Background" msgstr "" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Border" msgstr "" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight" msgstr "" -#: src/ui/classic/theme.h:66 +#: src/ui/classic/theme.h:64 msgid "Input Panel Highlight Candidate Background" msgstr "" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight Candidate Border" msgstr "" @@ -1321,7 +1336,7 @@ msgid "Input method selector" msgstr "Auswahl Eingabemethode" -#: src/lib/fcitx/globalconfig.cpp:103 src/lib/fcitx/globalconfig.cpp:115 +#: src/lib/fcitx/globalconfig.cpp:104 src/lib/fcitx/globalconfig.cpp:116 msgid "" "Input methods may have different setup in their own configuration. This is " "commonly used by modules like clipboard or quickphrase." @@ -1332,7 +1347,7 @@ msgid "Insert" msgstr "Einfügen" -#: src/lib/fcitx/globalconfig.cpp:193 +#: src/lib/fcitx/globalconfig.cpp:199 msgid "Interval of saving user data in minutes" msgstr "" @@ -1346,7 +1361,7 @@ "supports text-input protocol used by ${1}." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:598 +#: src/modules/wayland/waylandmodule.cpp:628 msgid "" "It is recommended to install Input Method Panel GNOME Shell Extensions to " "provide the input method popup. https://extensions.gnome.org/extension/261/" @@ -1359,7 +1374,7 @@ msgid "KDE Input Method Panel" msgstr "Einstellungen KDE Eingabemethode" -#: src/ui/classic/classicui.cpp:280 +#: src/ui/classic/classicui.cpp:278 msgid "KDE Plasma (Experimental)" msgstr "" @@ -1383,20 +1398,20 @@ msgid "Katakana" msgstr "Katakana" -#: src/im/keyboard/longpress.h:16 +#: src/im/keyboard/longpress.h:20 msgid "Key" msgstr "Taste" -#: src/im/keyboard/keyboard.cpp:315 src/im/keyboard/keyboard.conf.in.in:3 +#: src/im/keyboard/keyboard.cpp:335 src/im/keyboard/keyboard.conf.in.in:3 msgid "Keyboard" msgstr "Tastatur" -#: src/im/keyboard/keyboard.cpp:231 +#: src/im/keyboard/keyboard.cpp:251 #, c++-format msgid "Keyboard - {0}" msgstr "Tastatur - {0}" -#: src/im/keyboard/keyboard.cpp:250 +#: src/im/keyboard/keyboard.cpp:270 #, c++-format msgid "Keyboard - {0} - {1}" msgstr "Tastatur - {0} - {1}" @@ -1604,7 +1619,7 @@ msgid "Kimpanel process:" msgstr "" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Last Candidate" msgstr "" @@ -1741,7 +1756,7 @@ msgid "Logoff" msgstr "Ausloggen" -#: src/im/keyboard/keyboard.h:89 +#: src/im/keyboard/keyboard.h:102 msgid "Long Press behavior" msgstr "" @@ -1750,31 +1765,31 @@ msgid "Mail Forward" msgstr "Mail weiterleiten" -#: src/ui/classic/theme.h:118 +#: src/ui/classic/theme.h:116 msgid "Margin" msgstr "" -#: src/ui/classic/theme.h:80 +#: src/ui/classic/theme.h:78 msgid "Margin Bottom" msgstr "" -#: src/ui/classic/theme.h:74 +#: src/ui/classic/theme.h:72 msgid "Margin Left" msgstr "" -#: src/ui/classic/theme.h:76 +#: src/ui/classic/theme.h:74 msgid "Margin Right" msgstr "" -#: src/ui/classic/theme.h:78 +#: src/ui/classic/theme.h:76 msgid "Margin Top" msgstr "" -#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 +#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:184 msgid "Margin around all content" msgstr "Rand um alle Inhalte" -#: src/ui/classic/theme.h:164 src/ui/classic/theme.h:188 +#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 msgid "Margin around text" msgstr "" @@ -1833,7 +1848,7 @@ msgid "Meeting" msgstr "Treffen" -#: src/ui/classic/theme.h:202 +#: src/ui/classic/theme.h:200 msgid "Menu" msgstr "Menü" @@ -1842,15 +1857,15 @@ msgid "Menu" msgstr "Menü" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Background" msgstr "" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Border" msgstr "" -#: src/ui/classic/classicui.h:122 +#: src/ui/classic/classicui.h:119 msgid "Menu Font" msgstr "Menüschriftart" @@ -1859,15 +1874,15 @@ msgid "Menu PB" msgstr "Menü PB" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Background" msgstr "" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Border" msgstr "" -#: src/ui/classic/theme.h:70 +#: src/ui/classic/theme.h:68 msgid "Menu Separator" msgstr "" @@ -1876,7 +1891,7 @@ msgid "Messenger" msgstr "Messenger" -#: src/ui/classic/theme.h:199 +#: src/ui/classic/theme.h:197 msgid "Metadata" msgstr "Metadaten" @@ -1915,7 +1930,7 @@ msgid "My Sites" msgstr "Meine Seiten" -#: src/ui/classic/theme.h:191 +#: src/ui/classic/theme.h:189 msgid "Name" msgstr "Name" @@ -1929,31 +1944,31 @@ msgid "News" msgstr "Neuigkeiten" -#: src/im/keyboard/keyboard.h:48 +#: src/im/keyboard/keyboard.h:60 msgid "Next Candidate" msgstr "Nächster Kandidat" -#: src/ui/classic/theme.h:166 +#: src/ui/classic/theme.h:164 msgid "Next Page Button" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "No" msgstr "Nein" -#: src/modules/clipboard/clipboard.cpp:355 +#: src/modules/clipboard/clipboard.cpp:371 msgid "No clipboard history." msgstr "Kein Zwischenablageverlauf" -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:28 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:24 msgid "None" msgstr "Nicht beibehalten" -#: src/ui/classic/theme.h:135 src/ui/classic/theme.h:171 +#: src/ui/classic/theme.h:133 src/ui/classic/theme.h:169 msgid "Normal text color" msgstr "Normale Textfarbe" -#: src/ui/classic/classicui.h:182 +#: src/ui/classic/classicui.h:179 msgid "" "Normally Wayland uses 96 as font DPI in combinition with the screen scale " "factor. This option allows you to override the font DPI. If the value is 0, " @@ -1980,11 +1995,11 @@ msgid "NumLock" msgstr "NumLock" -#: src/modules/clipboard/clipboard.h:48 +#: src/modules/clipboard/clipboard.h:54 msgid "Number of entries" msgstr "Anzahl der Einträge" -#: src/im/keyboard/keyboard.cpp:670 +#: src/im/keyboard/keyboard.cpp:691 msgid "" "Only emoji support is found. To enable spell checking, you may need to " "install spell check data for the language." @@ -2005,27 +2020,27 @@ msgid "Option" msgstr "Option" -#: src/ui/classic/theme.h:120 +#: src/ui/classic/theme.h:118 msgid "Overlay Clip Margin" msgstr "" -#: src/ui/classic/theme.h:110 +#: src/ui/classic/theme.h:108 msgid "Overlay Image" msgstr "" -#: src/ui/classic/theme.h:113 +#: src/ui/classic/theme.h:111 msgid "Overlay X offset" msgstr "" -#: src/ui/classic/theme.h:114 +#: src/ui/classic/theme.h:112 msgid "Overlay Y offset" msgstr "" -#: src/ui/classic/theme.h:112 +#: src/ui/classic/theme.h:110 msgid "Overlay position" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:167 +#: src/lib/fcitx/globalconfig.cpp:173 msgid "Override Xkb Option" msgstr "" @@ -2047,11 +2062,11 @@ msgid "Page Up" msgstr "" -#: src/ui/classic/theme.h:155 +#: src/ui/classic/theme.h:153 msgid "Page button vertical alignment" msgstr "" -#: src/im/keyboard/keyboard.h:37 +#: src/im/keyboard/keyboard.h:49 msgid "Page size" msgstr "Seitengröße" @@ -2060,7 +2075,7 @@ msgid "Paste" msgstr "Einfügen" -#: src/modules/clipboard/clipboard.h:46 +#: src/modules/clipboard/clipboard.h:52 msgid "Paste Primary" msgstr "" @@ -2105,19 +2120,19 @@ msgid "Power Off" msgstr "Ausschalten" -#: src/lib/fcitx/instance.cpp:839 +#: src/lib/fcitx/instance.cpp:848 msgid "Preedit" msgstr "" -#: src/lib/fcitx/instance.cpp:841 +#: src/lib/fcitx/instance.cpp:850 msgid "Preedit disabled" msgstr "" -#: src/lib/fcitx/instance.cpp:840 +#: src/lib/fcitx/instance.cpp:849 msgid "Preedit enabled" msgstr "" -#: src/ui/classic/classicui.h:130 src/ui/kimpanel/kimpanel.h:33 +#: src/ui/classic/classicui.h:127 src/ui/kimpanel/kimpanel.h:28 msgid "Prefer Text Icon" msgstr "" @@ -2125,11 +2140,11 @@ msgid "Presage" msgstr "Vorhersage" -#: src/im/keyboard/keyboard.h:42 +#: src/im/keyboard/keyboard.h:54 msgid "Prev Candidate" msgstr "Vorheriger Kandidat" -#: src/ui/classic/theme.h:165 +#: src/ui/classic/theme.h:163 msgid "Prev Page Button" msgstr "" @@ -2143,7 +2158,7 @@ msgid "Print Screen" msgstr "Bildschirm drucken" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "Program" msgstr "Programm" @@ -2155,7 +2170,7 @@ msgid "Quick Phrase" msgstr "Quick Phrase" -#: src/modules/quickphrase/quickphrase.cpp:471 +#: src/modules/quickphrase/quickphrase.cpp:470 msgid "Quick Phrase: " msgstr "Quick Phrase: " @@ -2184,6 +2199,10 @@ msgid "Reply" msgstr "Antworten" +#: src/lib/fcitx/globalconfig.cpp:143 +msgid "Reset state on Focus In" +msgstr "" + #: src/ui/classic/xcbtraywindow.cpp:39 #: src/modules/notificationitem/dbusmenu.cpp:261 msgid "Restart" @@ -2268,6 +2287,10 @@ msgid "Search" msgstr "Suche" +#: src/modules/clipboard/clipboard.h:76 +msgid "Seconds before clearing password" +msgstr "" + #: src/lib/fcitx-utils/key.cpp:233 msgctxt "Key name" msgid "Select" @@ -2285,7 +2308,7 @@ msgid "Select specific input method via keyboard" msgstr "" -#: src/ui/classic/theme.h:174 +#: src/ui/classic/theme.h:172 msgid "Selected Item text color" msgstr "" @@ -2294,22 +2317,22 @@ msgid "Send" msgstr "Senden" -#: src/modules/wayland/waylandmodule.cpp:630 +#: src/modules/wayland/waylandmodule.cpp:660 msgid "" "Sending keyboard layout configuration to wayland compositor from Fcitx is " "not yet supported on current desktop. You may still use Fcitx's internal " "layout conversion by adding layout as input method to the input method group." msgstr "" -#: src/ui/classic/theme.h:182 +#: src/ui/classic/theme.h:180 msgid "Separator Background" msgstr "" -#: src/ui/classic/theme.h:168 +#: src/ui/classic/theme.h:166 msgid "Shadow Margin" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:141 +#: src/lib/fcitx/globalconfig.cpp:147 msgid "Share Input State" msgstr "" @@ -2323,47 +2346,47 @@ msgid "Shop" msgstr "Shop" -#: src/lib/fcitx/globalconfig.cpp:152 +#: src/lib/fcitx/globalconfig.cpp:158 msgid "Show Input Method Information when changing focus" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:149 +#: src/lib/fcitx/globalconfig.cpp:155 msgid "Show Input Method Information when switch input method" msgstr "Hinweis zur Eingabemethode zeigen, nachdem sie gewechselt wurde" -#: src/ui/classic/classicui.h:135 +#: src/ui/classic/classicui.h:132 msgid "Show Layout Name In Icon" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:155 +#: src/lib/fcitx/globalconfig.cpp:161 msgid "Show compact input method information" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:158 +#: src/lib/fcitx/globalconfig.cpp:164 msgid "Show first input method information" msgstr "" -#: src/ui/classic/classicui.h:139 +#: src/ui/classic/classicui.h:136 msgid "" "Show layout name in icon if there is more than one active layout. If prefer " "text icon is set to true, this option will be ignored." msgstr "" -#: src/lib/fcitx/globalconfig.cpp:145 +#: src/lib/fcitx/globalconfig.cpp:151 msgid "Show preedit in application" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:189 +#: src/lib/fcitx/globalconfig.cpp:195 msgid "Show preedit text when typing password" msgstr "" -#: src/im/keyboard/keyboard.h:77 +#: src/im/keyboard/keyboard.h:89 msgid "" "Show preedit when composing, and commit dead key if there is no matching " "sequence." msgstr "" -#: src/lib/fcitx/globalconfig.cpp:64 +#: src/lib/fcitx/globalconfig.cpp:65 msgid "Skip first input method while enumerating" msgstr "" @@ -2377,11 +2400,11 @@ msgid "Space" msgstr "Leerzeichen" -#: src/ui/classic/theme.h:176 +#: src/ui/classic/theme.h:174 msgid "Spacing" msgstr "Abstand" -#: src/im/keyboard/keyboard.h:79 src/modules/spell/spell.conf.in.in:3 +#: src/im/keyboard/keyboard.h:91 src/modules/spell/spell.conf.in.in:3 msgid "Spell" msgstr "Rechtschreibung" @@ -2405,8 +2428,8 @@ msgid "Standby" msgstr "Standby" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:5 #: data/org.fcitx.Fcitx5.desktop.in.in:5 +#: data/fcitx5-wayland-launcher.desktop.in.in:5 msgid "Start Input Method" msgstr "Eingabemethode starten" @@ -2419,7 +2442,7 @@ msgid "Stop" msgstr "Stop" -#: src/ui/classic/theme.h:184 +#: src/ui/classic/theme.h:182 msgid "Sub Menu" msgstr "Untermenü" @@ -2428,7 +2451,7 @@ msgid "Subtitle" msgstr "Untertitel" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:25 msgid "Super" msgstr "Super" @@ -2447,17 +2470,17 @@ msgid "Suspend" msgstr "Suspend" -#: src/lib/fcitx/instance.cpp:451 src/lib/fcitx/instance.cpp:678 +#: src/lib/fcitx/instance.cpp:459 src/lib/fcitx/instance.cpp:687 #: src/modules/xcb/xcbconnection.cpp:556 msgid "Switch group" msgstr "Gruppe umschalten" -#: src/lib/fcitx/instance.cpp:452 src/modules/xcb/xcbconnection.cpp:557 +#: src/lib/fcitx/instance.cpp:460 src/modules/xcb/xcbconnection.cpp:557 #, c++-format msgid "Switch group to {0}" msgstr "Gruppe auf {0} umschalten" -#: src/lib/fcitx/instance.cpp:679 +#: src/lib/fcitx/instance.cpp:688 #, c++-format msgid "Switched group to {0}" msgstr "Gruppe auf {0} umgeschaltet" @@ -2481,7 +2504,7 @@ msgid "Task Panel" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:44 +#: src/lib/fcitx/globalconfig.cpp:45 msgid "Temporally switch between first and current Input Method" msgstr "" @@ -2509,27 +2532,27 @@ msgid "The script is run as ${1} (${2})." msgstr "" -#: src/ui/classic/classicui.h:155 +#: src/ui/classic/classicui.h:152 msgid "Theme" msgstr "Theme" -#: src/ui/classic/classicui.h:101 +#: src/ui/classic/classicui.h:98 msgid "This is only effective when the tray icon is xembed." msgstr "" -#: src/ui/classic/theme.h:93 src/ui/classic/theme.h:101 +#: src/ui/classic/theme.h:91 src/ui/classic/theme.h:99 msgid "This option is only effective if image is not set." msgstr "" -#: src/ui/classic/classicui.h:194 +#: src/ui/classic/classicui.h:191 msgid "This option require support from wayland compositor." msgstr "" -#: src/ui/classic/classicui.h:173 +#: src/ui/classic/classicui.h:170 msgid "This option will be always disabled on XWayland." msgstr "" -#: src/ui/classic/theme.h:109 +#: src/ui/classic/theme.h:107 msgid "This value should be less than any of margin value." msgstr "" @@ -2553,7 +2576,7 @@ "freezing, see ${link2}." msgstr "" -#: src/lib/fcitx/globalconfig.cpp:132 +#: src/lib/fcitx/globalconfig.cpp:133 msgid "Toggle embedded preedit" msgstr "" @@ -2562,15 +2585,15 @@ msgid "Tools" msgstr "Werkzeuge" -#: src/ui/classic/theme.h:48 +#: src/ui/classic/theme.h:46 msgid "Top" msgstr "" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Center" msgstr "" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Left" msgstr "Oben links" @@ -2579,7 +2602,7 @@ msgid "Top Menu" msgstr "Menü oben" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Top Right" msgstr "Oben rechts" @@ -2608,25 +2631,25 @@ msgid "Travel" msgstr "Reisen" -#: src/ui/classic/classicui.h:124 +#: src/ui/classic/classicui.h:121 msgid "Tray Font" msgstr "" -#: src/ui/classic/classicui.h:126 +#: src/ui/classic/classicui.h:123 msgid "Tray Label Outline Color" msgstr "" -#: src/ui/classic/classicui.h:129 +#: src/ui/classic/classicui.h:126 msgid "Tray Label Text Color" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:34 +#: src/lib/fcitx/globalconfig.cpp:35 msgid "Trigger Input Method" msgstr "Eingabemethode aktivieren" #: src/modules/imselector/imselector.h:28 -#: src/modules/quickphrase/quickphrase.h:36 src/modules/unicode/unicode.h:31 -#: src/modules/clipboard/clipboard.h:42 +#: src/modules/quickphrase/quickphrase.h:32 src/modules/unicode/unicode.h:28 +#: src/modules/clipboard/clipboard.h:48 msgid "Trigger Key" msgstr "Auslösetaste" @@ -2634,23 +2657,23 @@ msgid "Trigger Key for only current input context" msgstr "" -#: src/im/keyboard/keyboard.h:62 +#: src/im/keyboard/keyboard.h:74 msgid "Trigger hint mode" msgstr "Hinweismodus anschalten" -#: src/im/keyboard/keyboard.h:67 +#: src/im/keyboard/keyboard.h:79 msgid "Trigger hint mode for one time" msgstr "" -#: src/im/keyboard/keyboard.h:82 +#: src/im/keyboard/keyboard.h:94 msgid "Type special characters with long press" msgstr "" -#: src/modules/unicode/unicode.h:36 +#: src/modules/unicode/unicode.h:33 msgid "Type unicode in Hex number" msgstr "Unicode als HEX-Code eingeben" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:22 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:26 msgid "Typing with Fcitx and Kimpanel" msgstr "" @@ -2667,7 +2690,7 @@ msgid "Unicode" msgstr "Unicode" -#: src/modules/unicode/unicode.cpp:456 +#: src/modules/unicode/unicode.cpp:455 msgid "Unicode: " msgstr "Unicode: " @@ -2676,27 +2699,27 @@ msgid "Up" msgstr "Hoch" -#: src/frontend/xim/xim.h:33 +#: src/frontend/xim/xim.h:27 msgid "Use On The Spot Style (Needs restarting)" msgstr "" -#: src/ui/classic/classicui.h:169 +#: src/ui/classic/classicui.h:166 msgid "Use Per Screen DPI on X11" msgstr "" -#: src/ui/classic/theme.h:151 +#: src/ui/classic/theme.h:149 msgid "Use all horizontal space for highlight when it is vertical list" msgstr "" -#: src/ui/classic/classicui.h:146 +#: src/ui/classic/classicui.h:143 msgid "Use input method language to display text" msgstr "" -#: src/ui/classic/classicui.h:116 +#: src/ui/classic/classicui.h:113 msgid "Use mouse wheel to go to prev or next page" msgstr "" -#: src/im/keyboard/keyboard.h:73 +#: src/im/keyboard/keyboard.h:85 msgid "Use new compose behavior" msgstr "" @@ -2714,7 +2737,7 @@ "environment:" msgstr "" -#: src/ui/classic/theme.h:192 +#: src/ui/classic/theme.h:190 msgid "Version" msgstr "Version" @@ -2722,7 +2745,7 @@ msgid "Version Line:" msgstr "Versionszeile:" -#: src/ui/classic/classicui.h:114 +#: src/ui/classic/classicui.h:111 msgid "Vertical Candidate List" msgstr "Senkrechte Kandidatenliste" @@ -2777,7 +2800,7 @@ msgid "Wayland" msgstr "Wayland" -#: src/modules/wayland/waylandmodule.cpp:558 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Wayland Diagnose" msgstr "" @@ -2790,7 +2813,14 @@ msgid "WebCam" msgstr "WebCam" -#: src/lib/fcitx/globalconfig.cpp:171 +#: src/modules/clipboard/clipboard.h:65 +msgid "" +"When copying password from a password manager, if the password manager " +"supports marking the clipboard content as password, this clipboard update " +"will be ignored." +msgstr "" + +#: src/lib/fcitx/globalconfig.cpp:177 msgid "" "Whether to override the xkb option from display server. It will not affect " "the xkb option send to display, but just the xkb options for custom xkb " @@ -2887,14 +2917,15 @@ #: data/fcitx5-configtool.sh:137 msgid "" "You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be " -"found. Now it will open config directory." +"found. The package name provides this binary is usually fcitx5-configtool. " +"Now it will open the configuration directory." msgstr "" #: data/fcitx5-configtool.sh:134 msgid "" -"You're currently running KDE, but KCModule for fcitx couldn't be found, the " -"package name of this KCModule is usually kcm-fcitx or kde-config-fcitx. Now " -"it will open config directory." +"You're currently running KDE, but KCModule for fcitx couldn't be found. The " +"package name of this KCModule is usually kcm-fcitx5, kde-config-fcitx5, or " +"fcitx5-configtool. Now it will open the configuration directory." msgstr "" #: data/fcitx5-diagnose.sh:1185 @@ -2955,17 +2986,17 @@ msgid "version:" msgstr "Version:" -#: src/im/keyboard/keyboard.cpp:292 +#: src/im/keyboard/keyboard.cpp:312 #, c++-format msgid "{0} (Not Available)" msgstr "{0} (Nicht verfügbar)" -#: src/lib/fcitx/instance.cpp:409 +#: src/lib/fcitx/instance.cpp:417 #, c++-format msgid "{0} (Not available)" msgstr "{0} (Nicht verfügbar)" -#: src/lib/fcitx/instance.cpp:406 +#: src/lib/fcitx/instance.cpp:414 #, c++-format msgid "{0} ({1})" msgstr "{0} ({1})" diff -Nru fcitx5-5.1.7/po/es.po fcitx5-5.1.11/po/es.po --- fcitx5-5.1.7/po/es.po 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/po/es.po 2024-10-09 03:48:05.000000000 +0800 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: fcitx5\n" "Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" -"POT-Creation-Date: 2024-01-14 20:23+0000\n" +"POT-Creation-Date: 2024-06-11 20:22+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: csslayer <wengxt@gmail.com>, 2017\n" "Language-Team: Spanish (https://www.transifex.com/fcitx/teams/12005/es/)\n" @@ -46,11 +46,11 @@ msgid "${1} works properly." msgstr "" -#: src/lib/fcitx/instance.cpp:411 +#: src/lib/fcitx/instance.cpp:419 msgid "(Not available)" msgstr "" -#: src/modules/unicode/unicode.cpp:458 +#: src/modules/unicode/unicode.cpp:457 msgid "(Type to search unicode by code or description)" msgstr "" @@ -74,23 +74,31 @@ msgid "/XIM" msgstr "" -#: src/modules/unicode/charselectdata.cpp:215 +#: src/modules/clipboard/clipboard.h:80 +msgid "0 means never clear password." +msgstr "" + +#: src/modules/unicode/charselectdata.cpp:213 msgid "<Low Surrogate>" msgstr "" -#: src/modules/unicode/charselectdata.cpp:211 +#: src/modules/unicode/charselectdata.cpp:209 msgid "<Non Private Use High Surrogate>" msgstr "" -#: src/modules/unicode/charselectdata.cpp:213 +#: src/modules/clipboard/clipboard.cpp:116 +msgid "<Passowrd>" +msgstr "" + +#: src/modules/unicode/charselectdata.cpp:211 msgid "<Private Use High Surrogate>" msgstr "" -#: src/modules/unicode/charselectdata.cpp:217 +#: src/modules/unicode/charselectdata.cpp:215 msgid "<Private Use>" msgstr "" -#: src/modules/unicode/charselectdata.cpp:247 +#: src/modules/unicode/charselectdata.cpp:245 msgid "<not assigned>" msgstr "" @@ -98,15 +106,15 @@ msgid "A virtual keyboard backend based on DBus" msgstr "" -#: src/ui/classic/theme.h:204 +#: src/ui/classic/theme.h:202 msgid "Accent Colors" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:82 +#: src/lib/fcitx/globalconfig.cpp:83 msgid "Activate Input Method" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:138 +#: src/lib/fcitx/globalconfig.cpp:139 msgid "Active By Default" msgstr "" @@ -136,7 +144,7 @@ msgid "Adjust Brightness" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:26 +#: src/lib/fcitx/globalconfig.cpp:27 msgid "All" msgstr "" @@ -152,19 +160,19 @@ msgid "All locales:" msgstr "" -#: src/modules/xcb/xcbmodule.h:30 +#: src/modules/xcb/xcbmodule.h:26 msgid "Allow Overriding System XKB Settings" msgstr "" -#: src/modules/wayland/waylandmodule.h:36 +#: src/modules/wayland/waylandmodule.h:35 msgid "Allow Overriding System XKB Settings (Only support KDE 5)" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:186 +#: src/lib/fcitx/globalconfig.cpp:192 msgid "Allow input method in the password field" msgstr "" -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:25 msgid "Alt" msgstr "" @@ -173,7 +181,7 @@ msgid "Alt" msgstr "" -#: src/modules/xcb/xcbmodule.h:33 +#: src/modules/xcb/xcbmodule.h:29 msgid "Always set layout to be only group layout" msgstr "" @@ -187,7 +195,7 @@ msgid "Application Right" msgstr "" -#: src/im/keyboard/keyboard.h:87 +#: src/im/keyboard/keyboard.h:99 msgid "Applications disabled for long press" msgstr "" @@ -206,7 +214,7 @@ msgid "Audio Repeat" msgstr "" -#: src/ui/classic/theme.h:193 +#: src/ui/classic/theme.h:191 msgid "Author" msgstr "" @@ -229,11 +237,11 @@ msgid "Backends" msgstr "" -#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 +#: src/ui/classic/theme.h:156 src/ui/classic/theme.h:176 msgid "Background" msgstr "" -#: src/ui/classic/theme.h:85 +#: src/ui/classic/theme.h:83 msgid "Background Image" msgstr "" @@ -255,7 +263,7 @@ msgid "Beginner's Guide" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:203 +#: src/lib/fcitx/globalconfig.cpp:209 msgid "Behavior" msgstr "" @@ -269,11 +277,11 @@ msgid "Bluetooth" msgstr "" -#: src/ui/classic/theme.h:148 +#: src/ui/classic/theme.h:146 msgid "Blur Margin" msgstr "" -#: src/ui/classic/theme.h:147 +#: src/ui/classic/theme.h:145 msgid "Blur mask" msgstr "" @@ -282,27 +290,27 @@ msgid "Book" msgstr "" -#: src/ui/classic/theme.h:97 +#: src/ui/classic/theme.h:95 msgid "Border Color" msgstr "" -#: src/ui/classic/theme.h:105 +#: src/ui/classic/theme.h:103 msgid "Border width" msgstr "" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Bottom" msgstr "" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Center" msgstr "" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Left" msgstr "" -#: src/ui/classic/theme.h:39 +#: src/ui/classic/theme.h:37 msgid "Bottom Right" msgstr "" @@ -326,7 +334,7 @@ msgid "Cancel" msgstr "" -#: src/im/keyboard/longpress.h:19 +#: src/im/keyboard/longpress.h:23 msgid "Candidates" msgstr "" @@ -413,15 +421,15 @@ msgid "CapsLock" msgstr "" -#: src/ui/classic/theme.h:37 src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:35 src/ui/classic/theme.h:47 msgid "Center" msgstr "" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Center Left" msgstr "" -#: src/ui/classic/theme.h:37 +#: src/ui/classic/theme.h:35 msgid "Center Right" msgstr "" @@ -429,11 +437,11 @@ msgid "Change Fcitx 5 Configuration" msgstr "" -#: src/ui/classic/theme.h:183 +#: src/ui/classic/theme.h:181 msgid "Check box" msgstr "" -#: src/im/keyboard/keyboard.h:56 src/modules/quickphrase/quickphrase.h:41 +#: src/im/keyboard/keyboard.h:68 src/modules/quickphrase/quickphrase.h:37 msgid "Choose key modifier" msgstr "" @@ -446,7 +454,7 @@ msgid "Clear" msgstr "" -#: src/ui/classic/theme.h:131 +#: src/ui/classic/theme.h:129 msgid "Click Margin" msgstr "" @@ -454,7 +462,7 @@ msgid "Clipboard" msgstr "" -#: src/modules/clipboard/clipboard.cpp:353 +#: src/modules/clipboard/clipboard.cpp:369 msgid "Clipboard (Press BackSpace/Delete to clear history):" msgstr "" @@ -468,7 +476,7 @@ msgid "Code input" msgstr "" -#: src/ui/classic/theme.h:89 +#: src/ui/classic/theme.h:87 msgid "Color" msgstr "" @@ -477,19 +485,19 @@ msgid "Community" msgstr "" -#: src/im/keyboard/keyboard.cpp:685 +#: src/im/keyboard/keyboard.cpp:706 msgid "Completion" msgstr "" -#: src/im/keyboard/keyboard.cpp:676 +#: src/im/keyboard/keyboard.cpp:697 msgid "Completion is disabled." msgstr "" -#: src/im/keyboard/keyboard.cpp:679 +#: src/im/keyboard/keyboard.cpp:700 msgid "Completion is enabled temporarily." msgstr "" -#: src/im/keyboard/keyboard.cpp:681 +#: src/im/keyboard/keyboard.cpp:702 msgid "Completion is enabled." msgstr "" @@ -527,7 +535,7 @@ msgid "Configure" msgstr "Configurar" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:25 msgid "Control" msgstr "" @@ -561,7 +569,7 @@ msgid "Custom" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:176 +#: src/lib/fcitx/globalconfig.cpp:182 msgid "Custom Xkb Option" msgstr "" @@ -595,11 +603,11 @@ msgid "DOS" msgstr "" -#: src/ui/classic/classicui.h:158 +#: src/ui/classic/classicui.h:155 msgid "Dark Theme" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:91 +#: src/lib/fcitx/globalconfig.cpp:92 msgid "Deactivate Input Method" msgstr "" @@ -607,7 +615,7 @@ msgid "Debug information from dbus:" msgstr "" -#: src/lib/fcitx/inputmethodmanager.cpp:138 src/lib/fcitx/instance.cpp:358 +#: src/lib/fcitx/inputmethodmanager.cpp:153 src/lib/fcitx/instance.cpp:366 #: src/ui/classic/themes/default/theme.conf.in:3 msgid "Default" msgstr "" @@ -616,23 +624,23 @@ msgid "Default Dark" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:127 +#: src/lib/fcitx/globalconfig.cpp:128 msgid "Default Next Candidate" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:111 +#: src/lib/fcitx/globalconfig.cpp:112 msgid "Default Next page" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:121 +#: src/lib/fcitx/globalconfig.cpp:122 msgid "Default Previous Candidate" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:99 +#: src/lib/fcitx/globalconfig.cpp:100 msgid "Default Previous page" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:160 +#: src/lib/fcitx/globalconfig.cpp:166 msgid "Default page size" msgstr "" @@ -641,7 +649,7 @@ msgid "Delete" msgstr "" -#: src/ui/classic/theme.h:195 +#: src/ui/classic/theme.h:193 msgid "Description" msgstr "" @@ -653,7 +661,7 @@ msgid "Desktop environment is ${1}." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:586 +#: src/modules/wayland/waylandmodule.cpp:616 msgid "" "Detect GTK_IM_MODULE and QT_IM_MODULE being set and Wayland Input method " "frontend is working. It is recommended to unset GTK_IM_MODULE and " @@ -661,7 +669,7 @@ "see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma" msgstr "" -#: src/modules/wayland/waylandmodule.cpp:615 +#: src/modules/wayland/waylandmodule.cpp:645 msgid "" "Detect GTK_IM_MODULE being set and Wayland Input method frontend is working. " "It is recommended to unset GTK_IM_MODULE and use Wayland input method " @@ -681,10 +689,14 @@ msgid "Display" msgstr "" -#: src/modules/notifications/notifications.cpp:204 +#: src/modules/notifications/notifications.cpp:201 msgid "Do not show again" msgstr "" +#: src/modules/clipboard/clipboard.h:61 +msgid "Do not show password from password managers" +msgstr "" + #: src/lib/fcitx-utils/key.cpp:162 msgctxt "Key name" msgid "Documents" @@ -695,7 +707,7 @@ msgid "Down" msgstr "" -#: src/modules/quickphrase/quickphrase.h:47 +#: src/modules/quickphrase/quickphrase.h:43 msgid "Editor" msgstr "" @@ -718,31 +730,31 @@ msgid "Emoji" msgstr "" -#: src/im/keyboard/longpress.h:17 +#: src/im/keyboard/longpress.h:21 msgid "Enable" msgstr "" -#: src/ui/classic/theme.h:145 +#: src/ui/classic/theme.h:143 msgid "Enable Blur on KWin" msgstr "" -#: src/modules/quickphrase/quickphrase.h:43 +#: src/modules/quickphrase/quickphrase.h:39 msgid "Enable Spell check" msgstr "" -#: src/im/keyboard/keyboard.h:51 +#: src/im/keyboard/keyboard.h:63 msgid "Enable emoji in hint" msgstr "" -#: src/im/keyboard/keyboard.h:54 +#: src/im/keyboard/keyboard.h:66 msgid "Enable emoji in quickphrase" msgstr "" -#: src/ui/classic/classicui.h:190 +#: src/ui/classic/classicui.h:187 msgid "Enable fractional scale under Wayland" msgstr "" -#: src/im/keyboard/keyboard.h:59 +#: src/im/keyboard/keyboard.h:71 msgid "Enable hint by default" msgstr "" @@ -755,27 +767,27 @@ msgid "End" msgstr "" -#: src/im/keyboard/longpress.h:26 +#: src/im/keyboard/longpress.h:30 msgid "Entries" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:58 +#: src/lib/fcitx/globalconfig.cpp:59 msgid "Enumerate Input Method Backward" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:51 +#: src/lib/fcitx/globalconfig.cpp:52 msgid "Enumerate Input Method Forward" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:75 +#: src/lib/fcitx/globalconfig.cpp:76 msgid "Enumerate Input Method Group Backward" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:68 +#: src/lib/fcitx/globalconfig.cpp:69 msgid "Enumerate Input Method Group Forward" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:40 +#: src/lib/fcitx/globalconfig.cpp:41 msgid "Enumerate when press trigger key repeatedly" msgstr "" @@ -828,7 +840,7 @@ msgid "Failed to find ${1} in the output of ${2}" msgstr "" -#: src/modules/quickphrase/quickphrase.h:45 +#: src/modules/quickphrase/quickphrase.h:41 msgid "Fallback Spell check language" msgstr "" @@ -837,7 +849,7 @@ msgid "Favorites" msgstr "" -#: src/modules/wayland/waylandmodule.cpp:558 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Fcitx" msgstr "" @@ -850,7 +862,7 @@ msgid "Fcitx 5 Configuration" msgstr "" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:3 +#: data/fcitx5-wayland-launcher.desktop.in.in:3 msgid "Fcitx 5 Wayland Launcher (Experimental)" msgstr "" @@ -867,14 +879,14 @@ msgid "Fcitx State:" msgstr "" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:9 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:12 msgid "" "Fcitx is an input method framework. It can help you to type your own " "language. It also features variant choice of addons that improve your typing " "experience." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:573 +#: src/modules/wayland/waylandmodule.cpp:603 msgid "" "Fcitx should be launched by KWin under KDE Wayland in order to use Wayland " "input method frontend. This can improve the experience when using Fcitx on " @@ -903,15 +915,15 @@ msgid "Find" msgstr "" -#: src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:47 msgid "First Candidate" msgstr "" -#: src/ui/classic/classicui.h:164 +#: src/ui/classic/classicui.h:161 msgid "Follow system accent color if it is supported by theme and desktop" msgstr "" -#: src/ui/classic/classicui.h:160 +#: src/ui/classic/classicui.h:157 msgid "Follow system light/dark color scheme" msgstr "" @@ -923,22 +935,22 @@ "using text-input support by Qt under Wayland." msgstr "" -#: src/ui/classic/classicui.h:120 +#: src/ui/classic/classicui.h:117 msgid "Font" msgstr "" -#: src/ui/classic/classicui.h:150 +#: src/ui/classic/classicui.h:147 msgid "" "For example, display character with Chinese variant when using Pinyin and " "Japanese variant when using Anthy. The font configuration needs to support " "this to use this feature." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:641 +#: src/modules/wayland/waylandmodule.cpp:671 msgid "For more details see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland" msgstr "" -#: src/ui/classic/classicui.h:178 +#: src/ui/classic/classicui.h:175 msgid "Force font DPI on Wayland" msgstr "" @@ -1044,12 +1056,12 @@ msgid "Group" msgstr "" -#: src/lib/fcitx/instance.cpp:415 +#: src/lib/fcitx/instance.cpp:423 #, c++-format msgid "Group {0}: {1}" msgstr "" -#: src/lib/fcitx/instance.cpp:360 +#: src/lib/fcitx/instance.cpp:368 #, c++-format msgid "Group {}" msgstr "" @@ -1145,31 +1157,35 @@ msgid "Hibernate" msgstr "" -#: src/modules/notifications/notifications.h:28 +#: src/modules/notifications/notifications.h:26 msgid "Hidden Notifications" msgstr "" -#: src/ui/classic/theme.h:116 +#: src/modules/clipboard/clipboard.h:70 +msgid "Hidden clipboard content that contains a password" +msgstr "" + +#: src/ui/classic/theme.h:114 msgid "Hide overlay if size does not fit" msgstr "" -#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:180 +#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 msgid "Highlight Background" msgstr "" -#: src/ui/classic/theme.h:140 +#: src/ui/classic/theme.h:138 msgid "Highlight Background color" msgstr "" -#: src/ui/classic/theme.h:143 +#: src/ui/classic/theme.h:141 msgid "Highlight Candidate Color" msgstr "" -#: src/ui/classic/theme.h:126 +#: src/ui/classic/theme.h:124 msgid "Highlight Click Margin" msgstr "" -#: src/ui/classic/theme.h:138 +#: src/ui/classic/theme.h:136 msgid "Highlight text color" msgstr "" @@ -1212,7 +1228,7 @@ msgid "Hot Links" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:201 +#: src/lib/fcitx/globalconfig.cpp:207 msgid "Hotkey" msgstr "" @@ -1234,7 +1250,7 @@ msgid "IBus Frontend" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:197 +#: src/lib/fcitx/globalconfig.cpp:203 msgid "" "If value is 0, the user data may only be saved when fcitx quits (e.g. " "logout)." @@ -1254,17 +1270,16 @@ "any input method other than ${2}. See ${link} for more detail." msgstr "" -#: src/ui/classic/theme.h:129 +#: src/ui/classic/theme.h:127 msgid "Image" msgstr "" -#: src/im/keyboard/keyboard.cpp:684 src/lib/fcitx/instance.cpp:450 -#: src/lib/fcitx/instance.cpp:677 src/lib/fcitx/instance.cpp:839 -#: src/modules/notificationitem/notificationitem.cpp:147 -#: src/modules/notificationitem/notificationitem.cpp:235 -#: src/modules/xcb/xcbconnection.cpp:555 -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:4 -#: data/org.fcitx.Fcitx5.desktop.in.in:4 +#: src/im/keyboard/keyboard.cpp:705 src/lib/fcitx/instance.cpp:458 +#: src/lib/fcitx/instance.cpp:686 src/lib/fcitx/instance.cpp:848 +#: src/modules/notificationitem/notificationitem.cpp:142 +#: src/modules/notificationitem/notificationitem.cpp:230 +#: src/modules/xcb/xcbconnection.cpp:555 data/org.fcitx.Fcitx5.desktop.in.in:4 +#: data/fcitx5-wayland-launcher.desktop.in.in:4 #: data/org.fcitx.Fcitx5.metainfo.xml.in:7 msgid "Input Method" msgstr "" @@ -1281,27 +1296,27 @@ msgid "Input Methods:" msgstr "" -#: src/ui/classic/theme.h:201 +#: src/ui/classic/theme.h:199 msgid "Input Panel" msgstr "" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Background" msgstr "" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Border" msgstr "" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight" msgstr "" -#: src/ui/classic/theme.h:66 +#: src/ui/classic/theme.h:64 msgid "Input Panel Highlight Candidate Background" msgstr "" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight Candidate Border" msgstr "" @@ -1309,7 +1324,7 @@ msgid "Input method selector" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:103 src/lib/fcitx/globalconfig.cpp:115 +#: src/lib/fcitx/globalconfig.cpp:104 src/lib/fcitx/globalconfig.cpp:116 msgid "" "Input methods may have different setup in their own configuration. This is " "commonly used by modules like clipboard or quickphrase." @@ -1320,7 +1335,7 @@ msgid "Insert" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:193 +#: src/lib/fcitx/globalconfig.cpp:199 msgid "Interval of saving user data in minutes" msgstr "" @@ -1334,7 +1349,7 @@ "supports text-input protocol used by ${1}." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:598 +#: src/modules/wayland/waylandmodule.cpp:628 msgid "" "It is recommended to install Input Method Panel GNOME Shell Extensions to " "provide the input method popup. https://extensions.gnome.org/extension/261/" @@ -1347,7 +1362,7 @@ msgid "KDE Input Method Panel" msgstr "" -#: src/ui/classic/classicui.cpp:280 +#: src/ui/classic/classicui.cpp:278 msgid "KDE Plasma (Experimental)" msgstr "" @@ -1371,20 +1386,20 @@ msgid "Katakana" msgstr "" -#: src/im/keyboard/longpress.h:16 +#: src/im/keyboard/longpress.h:20 msgid "Key" msgstr "" -#: src/im/keyboard/keyboard.cpp:315 src/im/keyboard/keyboard.conf.in.in:3 +#: src/im/keyboard/keyboard.cpp:335 src/im/keyboard/keyboard.conf.in.in:3 msgid "Keyboard" msgstr "" -#: src/im/keyboard/keyboard.cpp:231 +#: src/im/keyboard/keyboard.cpp:251 #, c++-format msgid "Keyboard - {0}" msgstr "" -#: src/im/keyboard/keyboard.cpp:250 +#: src/im/keyboard/keyboard.cpp:270 #, c++-format msgid "Keyboard - {0} - {1}" msgstr "" @@ -1592,7 +1607,7 @@ msgid "Kimpanel process:" msgstr "" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Last Candidate" msgstr "" @@ -1729,7 +1744,7 @@ msgid "Logoff" msgstr "" -#: src/im/keyboard/keyboard.h:89 +#: src/im/keyboard/keyboard.h:102 msgid "Long Press behavior" msgstr "" @@ -1738,31 +1753,31 @@ msgid "Mail Forward" msgstr "" -#: src/ui/classic/theme.h:118 +#: src/ui/classic/theme.h:116 msgid "Margin" msgstr "" -#: src/ui/classic/theme.h:80 +#: src/ui/classic/theme.h:78 msgid "Margin Bottom" msgstr "" -#: src/ui/classic/theme.h:74 +#: src/ui/classic/theme.h:72 msgid "Margin Left" msgstr "" -#: src/ui/classic/theme.h:76 +#: src/ui/classic/theme.h:74 msgid "Margin Right" msgstr "" -#: src/ui/classic/theme.h:78 +#: src/ui/classic/theme.h:76 msgid "Margin Top" msgstr "" -#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 +#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:184 msgid "Margin around all content" msgstr "" -#: src/ui/classic/theme.h:164 src/ui/classic/theme.h:188 +#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 msgid "Margin around text" msgstr "" @@ -1821,7 +1836,7 @@ msgid "Meeting" msgstr "" -#: src/ui/classic/theme.h:202 +#: src/ui/classic/theme.h:200 msgid "Menu" msgstr "" @@ -1830,15 +1845,15 @@ msgid "Menu" msgstr "" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Background" msgstr "" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Border" msgstr "" -#: src/ui/classic/classicui.h:122 +#: src/ui/classic/classicui.h:119 msgid "Menu Font" msgstr "" @@ -1847,15 +1862,15 @@ msgid "Menu PB" msgstr "" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Background" msgstr "" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Border" msgstr "" -#: src/ui/classic/theme.h:70 +#: src/ui/classic/theme.h:68 msgid "Menu Separator" msgstr "" @@ -1864,7 +1879,7 @@ msgid "Messenger" msgstr "" -#: src/ui/classic/theme.h:199 +#: src/ui/classic/theme.h:197 msgid "Metadata" msgstr "" @@ -1903,7 +1918,7 @@ msgid "My Sites" msgstr "" -#: src/ui/classic/theme.h:191 +#: src/ui/classic/theme.h:189 msgid "Name" msgstr "" @@ -1917,31 +1932,31 @@ msgid "News" msgstr "" -#: src/im/keyboard/keyboard.h:48 +#: src/im/keyboard/keyboard.h:60 msgid "Next Candidate" msgstr "" -#: src/ui/classic/theme.h:166 +#: src/ui/classic/theme.h:164 msgid "Next Page Button" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "No" msgstr "" -#: src/modules/clipboard/clipboard.cpp:355 +#: src/modules/clipboard/clipboard.cpp:371 msgid "No clipboard history." msgstr "" -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:28 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:24 msgid "None" msgstr "" -#: src/ui/classic/theme.h:135 src/ui/classic/theme.h:171 +#: src/ui/classic/theme.h:133 src/ui/classic/theme.h:169 msgid "Normal text color" msgstr "" -#: src/ui/classic/classicui.h:182 +#: src/ui/classic/classicui.h:179 msgid "" "Normally Wayland uses 96 as font DPI in combinition with the screen scale " "factor. This option allows you to override the font DPI. If the value is 0, " @@ -1965,11 +1980,11 @@ msgid "NumLock" msgstr "" -#: src/modules/clipboard/clipboard.h:48 +#: src/modules/clipboard/clipboard.h:54 msgid "Number of entries" msgstr "" -#: src/im/keyboard/keyboard.cpp:670 +#: src/im/keyboard/keyboard.cpp:691 msgid "" "Only emoji support is found. To enable spell checking, you may need to " "install spell check data for the language." @@ -1990,27 +2005,27 @@ msgid "Option" msgstr "" -#: src/ui/classic/theme.h:120 +#: src/ui/classic/theme.h:118 msgid "Overlay Clip Margin" msgstr "" -#: src/ui/classic/theme.h:110 +#: src/ui/classic/theme.h:108 msgid "Overlay Image" msgstr "" -#: src/ui/classic/theme.h:113 +#: src/ui/classic/theme.h:111 msgid "Overlay X offset" msgstr "" -#: src/ui/classic/theme.h:114 +#: src/ui/classic/theme.h:112 msgid "Overlay Y offset" msgstr "" -#: src/ui/classic/theme.h:112 +#: src/ui/classic/theme.h:110 msgid "Overlay position" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:167 +#: src/lib/fcitx/globalconfig.cpp:173 msgid "Override Xkb Option" msgstr "" @@ -2032,11 +2047,11 @@ msgid "Page Up" msgstr "" -#: src/ui/classic/theme.h:155 +#: src/ui/classic/theme.h:153 msgid "Page button vertical alignment" msgstr "" -#: src/im/keyboard/keyboard.h:37 +#: src/im/keyboard/keyboard.h:49 msgid "Page size" msgstr "" @@ -2045,7 +2060,7 @@ msgid "Paste" msgstr "" -#: src/modules/clipboard/clipboard.h:46 +#: src/modules/clipboard/clipboard.h:52 msgid "Paste Primary" msgstr "" @@ -2090,19 +2105,19 @@ msgid "Power Off" msgstr "" -#: src/lib/fcitx/instance.cpp:839 +#: src/lib/fcitx/instance.cpp:848 msgid "Preedit" msgstr "" -#: src/lib/fcitx/instance.cpp:841 +#: src/lib/fcitx/instance.cpp:850 msgid "Preedit disabled" msgstr "" -#: src/lib/fcitx/instance.cpp:840 +#: src/lib/fcitx/instance.cpp:849 msgid "Preedit enabled" msgstr "" -#: src/ui/classic/classicui.h:130 src/ui/kimpanel/kimpanel.h:33 +#: src/ui/classic/classicui.h:127 src/ui/kimpanel/kimpanel.h:28 msgid "Prefer Text Icon" msgstr "" @@ -2110,11 +2125,11 @@ msgid "Presage" msgstr "" -#: src/im/keyboard/keyboard.h:42 +#: src/im/keyboard/keyboard.h:54 msgid "Prev Candidate" msgstr "" -#: src/ui/classic/theme.h:165 +#: src/ui/classic/theme.h:163 msgid "Prev Page Button" msgstr "" @@ -2128,7 +2143,7 @@ msgid "Print Screen" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "Program" msgstr "" @@ -2140,7 +2155,7 @@ msgid "Quick Phrase" msgstr "" -#: src/modules/quickphrase/quickphrase.cpp:471 +#: src/modules/quickphrase/quickphrase.cpp:470 msgid "Quick Phrase: " msgstr "" @@ -2169,6 +2184,10 @@ msgid "Reply" msgstr "" +#: src/lib/fcitx/globalconfig.cpp:143 +msgid "Reset state on Focus In" +msgstr "" + #: src/ui/classic/xcbtraywindow.cpp:39 #: src/modules/notificationitem/dbusmenu.cpp:261 msgid "Restart" @@ -2253,6 +2272,10 @@ msgid "Search" msgstr "" +#: src/modules/clipboard/clipboard.h:76 +msgid "Seconds before clearing password" +msgstr "" + #: src/lib/fcitx-utils/key.cpp:233 msgctxt "Key name" msgid "Select" @@ -2270,7 +2293,7 @@ msgid "Select specific input method via keyboard" msgstr "" -#: src/ui/classic/theme.h:174 +#: src/ui/classic/theme.h:172 msgid "Selected Item text color" msgstr "" @@ -2279,22 +2302,22 @@ msgid "Send" msgstr "" -#: src/modules/wayland/waylandmodule.cpp:630 +#: src/modules/wayland/waylandmodule.cpp:660 msgid "" "Sending keyboard layout configuration to wayland compositor from Fcitx is " "not yet supported on current desktop. You may still use Fcitx's internal " "layout conversion by adding layout as input method to the input method group." msgstr "" -#: src/ui/classic/theme.h:182 +#: src/ui/classic/theme.h:180 msgid "Separator Background" msgstr "" -#: src/ui/classic/theme.h:168 +#: src/ui/classic/theme.h:166 msgid "Shadow Margin" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:141 +#: src/lib/fcitx/globalconfig.cpp:147 msgid "Share Input State" msgstr "" @@ -2308,47 +2331,47 @@ msgid "Shop" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:152 +#: src/lib/fcitx/globalconfig.cpp:158 msgid "Show Input Method Information when changing focus" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:149 +#: src/lib/fcitx/globalconfig.cpp:155 msgid "Show Input Method Information when switch input method" msgstr "" -#: src/ui/classic/classicui.h:135 +#: src/ui/classic/classicui.h:132 msgid "Show Layout Name In Icon" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:155 +#: src/lib/fcitx/globalconfig.cpp:161 msgid "Show compact input method information" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:158 +#: src/lib/fcitx/globalconfig.cpp:164 msgid "Show first input method information" msgstr "" -#: src/ui/classic/classicui.h:139 +#: src/ui/classic/classicui.h:136 msgid "" "Show layout name in icon if there is more than one active layout. If prefer " "text icon is set to true, this option will be ignored." msgstr "" -#: src/lib/fcitx/globalconfig.cpp:145 +#: src/lib/fcitx/globalconfig.cpp:151 msgid "Show preedit in application" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:189 +#: src/lib/fcitx/globalconfig.cpp:195 msgid "Show preedit text when typing password" msgstr "" -#: src/im/keyboard/keyboard.h:77 +#: src/im/keyboard/keyboard.h:89 msgid "" "Show preedit when composing, and commit dead key if there is no matching " "sequence." msgstr "" -#: src/lib/fcitx/globalconfig.cpp:64 +#: src/lib/fcitx/globalconfig.cpp:65 msgid "Skip first input method while enumerating" msgstr "" @@ -2362,11 +2385,11 @@ msgid "Space" msgstr "" -#: src/ui/classic/theme.h:176 +#: src/ui/classic/theme.h:174 msgid "Spacing" msgstr "" -#: src/im/keyboard/keyboard.h:79 src/modules/spell/spell.conf.in.in:3 +#: src/im/keyboard/keyboard.h:91 src/modules/spell/spell.conf.in.in:3 msgid "Spell" msgstr "" @@ -2390,8 +2413,8 @@ msgid "Standby" msgstr "" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:5 #: data/org.fcitx.Fcitx5.desktop.in.in:5 +#: data/fcitx5-wayland-launcher.desktop.in.in:5 msgid "Start Input Method" msgstr "" @@ -2404,7 +2427,7 @@ msgid "Stop" msgstr "" -#: src/ui/classic/theme.h:184 +#: src/ui/classic/theme.h:182 msgid "Sub Menu" msgstr "" @@ -2413,7 +2436,7 @@ msgid "Subtitle" msgstr "" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:25 msgid "Super" msgstr "" @@ -2432,17 +2455,17 @@ msgid "Suspend" msgstr "" -#: src/lib/fcitx/instance.cpp:451 src/lib/fcitx/instance.cpp:678 +#: src/lib/fcitx/instance.cpp:459 src/lib/fcitx/instance.cpp:687 #: src/modules/xcb/xcbconnection.cpp:556 msgid "Switch group" msgstr "" -#: src/lib/fcitx/instance.cpp:452 src/modules/xcb/xcbconnection.cpp:557 +#: src/lib/fcitx/instance.cpp:460 src/modules/xcb/xcbconnection.cpp:557 #, c++-format msgid "Switch group to {0}" msgstr "" -#: src/lib/fcitx/instance.cpp:679 +#: src/lib/fcitx/instance.cpp:688 #, c++-format msgid "Switched group to {0}" msgstr "" @@ -2466,7 +2489,7 @@ msgid "Task Panel" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:44 +#: src/lib/fcitx/globalconfig.cpp:45 msgid "Temporally switch between first and current Input Method" msgstr "" @@ -2494,27 +2517,27 @@ msgid "The script is run as ${1} (${2})." msgstr "" -#: src/ui/classic/classicui.h:155 +#: src/ui/classic/classicui.h:152 msgid "Theme" msgstr "" -#: src/ui/classic/classicui.h:101 +#: src/ui/classic/classicui.h:98 msgid "This is only effective when the tray icon is xembed." msgstr "" -#: src/ui/classic/theme.h:93 src/ui/classic/theme.h:101 +#: src/ui/classic/theme.h:91 src/ui/classic/theme.h:99 msgid "This option is only effective if image is not set." msgstr "" -#: src/ui/classic/classicui.h:194 +#: src/ui/classic/classicui.h:191 msgid "This option require support from wayland compositor." msgstr "" -#: src/ui/classic/classicui.h:173 +#: src/ui/classic/classicui.h:170 msgid "This option will be always disabled on XWayland." msgstr "" -#: src/ui/classic/theme.h:109 +#: src/ui/classic/theme.h:107 msgid "This value should be less than any of margin value." msgstr "" @@ -2538,7 +2561,7 @@ "freezing, see ${link2}." msgstr "" -#: src/lib/fcitx/globalconfig.cpp:132 +#: src/lib/fcitx/globalconfig.cpp:133 msgid "Toggle embedded preedit" msgstr "" @@ -2547,15 +2570,15 @@ msgid "Tools" msgstr "" -#: src/ui/classic/theme.h:48 +#: src/ui/classic/theme.h:46 msgid "Top" msgstr "" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Center" msgstr "" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Left" msgstr "" @@ -2564,7 +2587,7 @@ msgid "Top Menu" msgstr "" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Top Right" msgstr "" @@ -2593,25 +2616,25 @@ msgid "Travel" msgstr "" -#: src/ui/classic/classicui.h:124 +#: src/ui/classic/classicui.h:121 msgid "Tray Font" msgstr "" -#: src/ui/classic/classicui.h:126 +#: src/ui/classic/classicui.h:123 msgid "Tray Label Outline Color" msgstr "" -#: src/ui/classic/classicui.h:129 +#: src/ui/classic/classicui.h:126 msgid "Tray Label Text Color" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:34 +#: src/lib/fcitx/globalconfig.cpp:35 msgid "Trigger Input Method" msgstr "" #: src/modules/imselector/imselector.h:28 -#: src/modules/quickphrase/quickphrase.h:36 src/modules/unicode/unicode.h:31 -#: src/modules/clipboard/clipboard.h:42 +#: src/modules/quickphrase/quickphrase.h:32 src/modules/unicode/unicode.h:28 +#: src/modules/clipboard/clipboard.h:48 msgid "Trigger Key" msgstr "" @@ -2619,23 +2642,23 @@ msgid "Trigger Key for only current input context" msgstr "" -#: src/im/keyboard/keyboard.h:62 +#: src/im/keyboard/keyboard.h:74 msgid "Trigger hint mode" msgstr "" -#: src/im/keyboard/keyboard.h:67 +#: src/im/keyboard/keyboard.h:79 msgid "Trigger hint mode for one time" msgstr "" -#: src/im/keyboard/keyboard.h:82 +#: src/im/keyboard/keyboard.h:94 msgid "Type special characters with long press" msgstr "" -#: src/modules/unicode/unicode.h:36 +#: src/modules/unicode/unicode.h:33 msgid "Type unicode in Hex number" msgstr "" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:22 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:26 msgid "Typing with Fcitx and Kimpanel" msgstr "" @@ -2652,7 +2675,7 @@ msgid "Unicode" msgstr "" -#: src/modules/unicode/unicode.cpp:456 +#: src/modules/unicode/unicode.cpp:455 msgid "Unicode: " msgstr "" @@ -2661,27 +2684,27 @@ msgid "Up" msgstr "" -#: src/frontend/xim/xim.h:33 +#: src/frontend/xim/xim.h:27 msgid "Use On The Spot Style (Needs restarting)" msgstr "" -#: src/ui/classic/classicui.h:169 +#: src/ui/classic/classicui.h:166 msgid "Use Per Screen DPI on X11" msgstr "" -#: src/ui/classic/theme.h:151 +#: src/ui/classic/theme.h:149 msgid "Use all horizontal space for highlight when it is vertical list" msgstr "" -#: src/ui/classic/classicui.h:146 +#: src/ui/classic/classicui.h:143 msgid "Use input method language to display text" msgstr "" -#: src/ui/classic/classicui.h:116 +#: src/ui/classic/classicui.h:113 msgid "Use mouse wheel to go to prev or next page" msgstr "" -#: src/im/keyboard/keyboard.h:73 +#: src/im/keyboard/keyboard.h:85 msgid "Use new compose behavior" msgstr "" @@ -2699,7 +2722,7 @@ "environment:" msgstr "" -#: src/ui/classic/theme.h:192 +#: src/ui/classic/theme.h:190 msgid "Version" msgstr "" @@ -2707,7 +2730,7 @@ msgid "Version Line:" msgstr "" -#: src/ui/classic/classicui.h:114 +#: src/ui/classic/classicui.h:111 msgid "Vertical Candidate List" msgstr "" @@ -2762,7 +2785,7 @@ msgid "Wayland" msgstr "" -#: src/modules/wayland/waylandmodule.cpp:558 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Wayland Diagnose" msgstr "" @@ -2775,7 +2798,14 @@ msgid "WebCam" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:171 +#: src/modules/clipboard/clipboard.h:65 +msgid "" +"When copying password from a password manager, if the password manager " +"supports marking the clipboard content as password, this clipboard update " +"will be ignored." +msgstr "" + +#: src/lib/fcitx/globalconfig.cpp:177 msgid "" "Whether to override the xkb option from display server. It will not affect " "the xkb option send to display, but just the xkb options for custom xkb " @@ -2872,14 +2902,15 @@ #: data/fcitx5-configtool.sh:137 msgid "" "You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be " -"found. Now it will open config directory." +"found. The package name provides this binary is usually fcitx5-configtool. " +"Now it will open the configuration directory." msgstr "" #: data/fcitx5-configtool.sh:134 msgid "" -"You're currently running KDE, but KCModule for fcitx couldn't be found, the " -"package name of this KCModule is usually kcm-fcitx or kde-config-fcitx. Now " -"it will open config directory." +"You're currently running KDE, but KCModule for fcitx couldn't be found. The " +"package name of this KCModule is usually kcm-fcitx5, kde-config-fcitx5, or " +"fcitx5-configtool. Now it will open the configuration directory." msgstr "" #: data/fcitx5-diagnose.sh:1185 @@ -2940,17 +2971,17 @@ msgid "version:" msgstr "" -#: src/im/keyboard/keyboard.cpp:292 +#: src/im/keyboard/keyboard.cpp:312 #, c++-format msgid "{0} (Not Available)" msgstr "" -#: src/lib/fcitx/instance.cpp:409 +#: src/lib/fcitx/instance.cpp:417 #, c++-format msgid "{0} (Not available)" msgstr "" -#: src/lib/fcitx/instance.cpp:406 +#: src/lib/fcitx/instance.cpp:414 #, c++-format msgid "{0} ({1})" msgstr "" diff -Nru fcitx5-5.1.7/po/fcitx5.pot fcitx5-5.1.11/po/fcitx5.pot --- fcitx5-5.1.7/po/fcitx5.pot 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/po/fcitx5.pot 2024-10-09 03:48:05.000000000 +0800 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: fcitx5\n" "Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" -"POT-Creation-Date: 2024-01-14 20:24+0000\n" +"POT-Creation-Date: 2024-06-11 20:24+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -43,11 +43,11 @@ msgid "${1} works properly." msgstr "" -#: src/lib/fcitx/instance.cpp:411 +#: src/lib/fcitx/instance.cpp:419 msgid "(Not available)" msgstr "" -#: src/modules/unicode/unicode.cpp:458 +#: src/modules/unicode/unicode.cpp:457 msgid "(Type to search unicode by code or description)" msgstr "" @@ -71,23 +71,31 @@ msgid "/XIM" msgstr "" -#: src/modules/unicode/charselectdata.cpp:215 +#: src/modules/clipboard/clipboard.h:80 +msgid "0 means never clear password." +msgstr "" + +#: src/modules/unicode/charselectdata.cpp:213 msgid "<Low Surrogate>" msgstr "" -#: src/modules/unicode/charselectdata.cpp:211 +#: src/modules/unicode/charselectdata.cpp:209 msgid "<Non Private Use High Surrogate>" msgstr "" -#: src/modules/unicode/charselectdata.cpp:213 +#: src/modules/clipboard/clipboard.cpp:116 +msgid "<Passowrd>" +msgstr "" + +#: src/modules/unicode/charselectdata.cpp:211 msgid "<Private Use High Surrogate>" msgstr "" -#: src/modules/unicode/charselectdata.cpp:217 +#: src/modules/unicode/charselectdata.cpp:215 msgid "<Private Use>" msgstr "" -#: src/modules/unicode/charselectdata.cpp:247 +#: src/modules/unicode/charselectdata.cpp:245 msgid "<not assigned>" msgstr "" @@ -95,15 +103,15 @@ msgid "A virtual keyboard backend based on DBus" msgstr "" -#: src/ui/classic/theme.h:204 +#: src/ui/classic/theme.h:202 msgid "Accent Colors" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:82 +#: src/lib/fcitx/globalconfig.cpp:83 msgid "Activate Input Method" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:138 +#: src/lib/fcitx/globalconfig.cpp:139 msgid "Active By Default" msgstr "" @@ -133,7 +141,7 @@ msgid "Adjust Brightness" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:26 +#: src/lib/fcitx/globalconfig.cpp:27 msgid "All" msgstr "" @@ -149,19 +157,19 @@ msgid "All locales:" msgstr "" -#: src/modules/xcb/xcbmodule.h:30 +#: src/modules/xcb/xcbmodule.h:26 msgid "Allow Overriding System XKB Settings" msgstr "" -#: src/modules/wayland/waylandmodule.h:36 +#: src/modules/wayland/waylandmodule.h:35 msgid "Allow Overriding System XKB Settings (Only support KDE 5)" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:186 +#: src/lib/fcitx/globalconfig.cpp:192 msgid "Allow input method in the password field" msgstr "" -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:25 msgid "Alt" msgstr "" @@ -170,7 +178,7 @@ msgid "Alt" msgstr "" -#: src/modules/xcb/xcbmodule.h:33 +#: src/modules/xcb/xcbmodule.h:29 msgid "Always set layout to be only group layout" msgstr "" @@ -184,7 +192,7 @@ msgid "Application Right" msgstr "" -#: src/im/keyboard/keyboard.h:87 +#: src/im/keyboard/keyboard.h:99 msgid "Applications disabled for long press" msgstr "" @@ -203,7 +211,7 @@ msgid "Audio Repeat" msgstr "" -#: src/ui/classic/theme.h:193 +#: src/ui/classic/theme.h:191 msgid "Author" msgstr "" @@ -226,11 +234,11 @@ msgid "Backends" msgstr "" -#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 +#: src/ui/classic/theme.h:156 src/ui/classic/theme.h:176 msgid "Background" msgstr "" -#: src/ui/classic/theme.h:85 +#: src/ui/classic/theme.h:83 msgid "Background Image" msgstr "" @@ -252,7 +260,7 @@ msgid "Beginner's Guide" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:203 +#: src/lib/fcitx/globalconfig.cpp:209 msgid "Behavior" msgstr "" @@ -266,11 +274,11 @@ msgid "Bluetooth" msgstr "" -#: src/ui/classic/theme.h:148 +#: src/ui/classic/theme.h:146 msgid "Blur Margin" msgstr "" -#: src/ui/classic/theme.h:147 +#: src/ui/classic/theme.h:145 msgid "Blur mask" msgstr "" @@ -279,27 +287,27 @@ msgid "Book" msgstr "" -#: src/ui/classic/theme.h:97 +#: src/ui/classic/theme.h:95 msgid "Border Color" msgstr "" -#: src/ui/classic/theme.h:105 +#: src/ui/classic/theme.h:103 msgid "Border width" msgstr "" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Bottom" msgstr "" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Center" msgstr "" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Left" msgstr "" -#: src/ui/classic/theme.h:39 +#: src/ui/classic/theme.h:37 msgid "Bottom Right" msgstr "" @@ -323,7 +331,7 @@ msgid "Cancel" msgstr "" -#: src/im/keyboard/longpress.h:19 +#: src/im/keyboard/longpress.h:23 msgid "Candidates" msgstr "" @@ -410,15 +418,15 @@ msgid "CapsLock" msgstr "" -#: src/ui/classic/theme.h:37 src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:35 src/ui/classic/theme.h:47 msgid "Center" msgstr "" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Center Left" msgstr "" -#: src/ui/classic/theme.h:37 +#: src/ui/classic/theme.h:35 msgid "Center Right" msgstr "" @@ -426,11 +434,11 @@ msgid "Change Fcitx 5 Configuration" msgstr "" -#: src/ui/classic/theme.h:183 +#: src/ui/classic/theme.h:181 msgid "Check box" msgstr "" -#: src/im/keyboard/keyboard.h:56 src/modules/quickphrase/quickphrase.h:41 +#: src/im/keyboard/keyboard.h:68 src/modules/quickphrase/quickphrase.h:37 msgid "Choose key modifier" msgstr "" @@ -443,7 +451,7 @@ msgid "Clear" msgstr "" -#: src/ui/classic/theme.h:131 +#: src/ui/classic/theme.h:129 msgid "Click Margin" msgstr "" @@ -451,7 +459,7 @@ msgid "Clipboard" msgstr "" -#: src/modules/clipboard/clipboard.cpp:353 +#: src/modules/clipboard/clipboard.cpp:369 msgid "Clipboard (Press BackSpace/Delete to clear history):" msgstr "" @@ -465,7 +473,7 @@ msgid "Code input" msgstr "" -#: src/ui/classic/theme.h:89 +#: src/ui/classic/theme.h:87 msgid "Color" msgstr "" @@ -474,19 +482,19 @@ msgid "Community" msgstr "" -#: src/im/keyboard/keyboard.cpp:685 +#: src/im/keyboard/keyboard.cpp:706 msgid "Completion" msgstr "" -#: src/im/keyboard/keyboard.cpp:676 +#: src/im/keyboard/keyboard.cpp:697 msgid "Completion is disabled." msgstr "" -#: src/im/keyboard/keyboard.cpp:679 +#: src/im/keyboard/keyboard.cpp:700 msgid "Completion is enabled temporarily." msgstr "" -#: src/im/keyboard/keyboard.cpp:681 +#: src/im/keyboard/keyboard.cpp:702 msgid "Completion is enabled." msgstr "" @@ -523,7 +531,7 @@ msgid "Configure" msgstr "" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:25 msgid "Control" msgstr "" @@ -557,7 +565,7 @@ msgid "Custom" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:176 +#: src/lib/fcitx/globalconfig.cpp:182 msgid "Custom Xkb Option" msgstr "" @@ -591,11 +599,11 @@ msgid "DOS" msgstr "" -#: src/ui/classic/classicui.h:158 +#: src/ui/classic/classicui.h:155 msgid "Dark Theme" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:91 +#: src/lib/fcitx/globalconfig.cpp:92 msgid "Deactivate Input Method" msgstr "" @@ -603,7 +611,7 @@ msgid "Debug information from dbus:" msgstr "" -#: src/lib/fcitx/inputmethodmanager.cpp:138 src/lib/fcitx/instance.cpp:358 +#: src/lib/fcitx/inputmethodmanager.cpp:153 src/lib/fcitx/instance.cpp:366 #: src/ui/classic/themes/default/theme.conf.in:3 msgid "Default" msgstr "" @@ -612,23 +620,23 @@ msgid "Default Dark" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:127 +#: src/lib/fcitx/globalconfig.cpp:128 msgid "Default Next Candidate" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:111 +#: src/lib/fcitx/globalconfig.cpp:112 msgid "Default Next page" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:121 +#: src/lib/fcitx/globalconfig.cpp:122 msgid "Default Previous Candidate" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:99 +#: src/lib/fcitx/globalconfig.cpp:100 msgid "Default Previous page" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:160 +#: src/lib/fcitx/globalconfig.cpp:166 msgid "Default page size" msgstr "" @@ -637,7 +645,7 @@ msgid "Delete" msgstr "" -#: src/ui/classic/theme.h:195 +#: src/ui/classic/theme.h:193 msgid "Description" msgstr "" @@ -649,7 +657,7 @@ msgid "Desktop environment is ${1}." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:586 +#: src/modules/wayland/waylandmodule.cpp:616 msgid "" "Detect GTK_IM_MODULE and QT_IM_MODULE being set and Wayland Input method " "frontend is working. It is recommended to unset GTK_IM_MODULE and " @@ -657,7 +665,7 @@ "see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma" msgstr "" -#: src/modules/wayland/waylandmodule.cpp:615 +#: src/modules/wayland/waylandmodule.cpp:645 msgid "" "Detect GTK_IM_MODULE being set and Wayland Input method frontend is working. " "It is recommended to unset GTK_IM_MODULE and use Wayland input method " @@ -677,10 +685,14 @@ msgid "Display" msgstr "" -#: src/modules/notifications/notifications.cpp:204 +#: src/modules/notifications/notifications.cpp:201 msgid "Do not show again" msgstr "" +#: src/modules/clipboard/clipboard.h:61 +msgid "Do not show password from password managers" +msgstr "" + #: src/lib/fcitx-utils/key.cpp:162 msgctxt "Key name" msgid "Documents" @@ -691,7 +703,7 @@ msgid "Down" msgstr "" -#: src/modules/quickphrase/quickphrase.h:47 +#: src/modules/quickphrase/quickphrase.h:43 msgid "Editor" msgstr "" @@ -714,31 +726,31 @@ msgid "Emoji" msgstr "" -#: src/im/keyboard/longpress.h:17 +#: src/im/keyboard/longpress.h:21 msgid "Enable" msgstr "" -#: src/ui/classic/theme.h:145 +#: src/ui/classic/theme.h:143 msgid "Enable Blur on KWin" msgstr "" -#: src/modules/quickphrase/quickphrase.h:43 +#: src/modules/quickphrase/quickphrase.h:39 msgid "Enable Spell check" msgstr "" -#: src/im/keyboard/keyboard.h:51 +#: src/im/keyboard/keyboard.h:63 msgid "Enable emoji in hint" msgstr "" -#: src/im/keyboard/keyboard.h:54 +#: src/im/keyboard/keyboard.h:66 msgid "Enable emoji in quickphrase" msgstr "" -#: src/ui/classic/classicui.h:190 +#: src/ui/classic/classicui.h:187 msgid "Enable fractional scale under Wayland" msgstr "" -#: src/im/keyboard/keyboard.h:59 +#: src/im/keyboard/keyboard.h:71 msgid "Enable hint by default" msgstr "" @@ -751,27 +763,27 @@ msgid "End" msgstr "" -#: src/im/keyboard/longpress.h:26 +#: src/im/keyboard/longpress.h:30 msgid "Entries" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:58 +#: src/lib/fcitx/globalconfig.cpp:59 msgid "Enumerate Input Method Backward" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:51 +#: src/lib/fcitx/globalconfig.cpp:52 msgid "Enumerate Input Method Forward" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:75 +#: src/lib/fcitx/globalconfig.cpp:76 msgid "Enumerate Input Method Group Backward" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:68 +#: src/lib/fcitx/globalconfig.cpp:69 msgid "Enumerate Input Method Group Forward" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:40 +#: src/lib/fcitx/globalconfig.cpp:41 msgid "Enumerate when press trigger key repeatedly" msgstr "" @@ -824,7 +836,7 @@ msgid "Failed to find ${1} in the output of ${2}" msgstr "" -#: src/modules/quickphrase/quickphrase.h:45 +#: src/modules/quickphrase/quickphrase.h:41 msgid "Fallback Spell check language" msgstr "" @@ -833,7 +845,7 @@ msgid "Favorites" msgstr "" -#: src/modules/wayland/waylandmodule.cpp:558 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Fcitx" msgstr "" @@ -846,7 +858,7 @@ msgid "Fcitx 5 Configuration" msgstr "" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:3 +#: data/fcitx5-wayland-launcher.desktop.in.in:3 msgid "Fcitx 5 Wayland Launcher (Experimental)" msgstr "" @@ -862,14 +874,14 @@ msgid "Fcitx State:" msgstr "" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:9 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:12 msgid "" "Fcitx is an input method framework. It can help you to type your own " "language. It also features variant choice of addons that improve your typing " "experience." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:573 +#: src/modules/wayland/waylandmodule.cpp:603 msgid "" "Fcitx should be launched by KWin under KDE Wayland in order to use Wayland " "input method frontend. This can improve the experience when using Fcitx on " @@ -898,15 +910,15 @@ msgid "Find" msgstr "" -#: src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:47 msgid "First Candidate" msgstr "" -#: src/ui/classic/classicui.h:164 +#: src/ui/classic/classicui.h:161 msgid "Follow system accent color if it is supported by theme and desktop" msgstr "" -#: src/ui/classic/classicui.h:160 +#: src/ui/classic/classicui.h:157 msgid "Follow system light/dark color scheme" msgstr "" @@ -918,22 +930,22 @@ "using text-input support by Qt under Wayland." msgstr "" -#: src/ui/classic/classicui.h:120 +#: src/ui/classic/classicui.h:117 msgid "Font" msgstr "" -#: src/ui/classic/classicui.h:150 +#: src/ui/classic/classicui.h:147 msgid "" "For example, display character with Chinese variant when using Pinyin and " "Japanese variant when using Anthy. The font configuration needs to support " "this to use this feature." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:641 +#: src/modules/wayland/waylandmodule.cpp:671 msgid "For more details see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland" msgstr "" -#: src/ui/classic/classicui.h:178 +#: src/ui/classic/classicui.h:175 msgid "Force font DPI on Wayland" msgstr "" @@ -1039,12 +1051,12 @@ msgid "Group" msgstr "" -#: src/lib/fcitx/instance.cpp:415 +#: src/lib/fcitx/instance.cpp:423 #, c++-format msgid "Group {0}: {1}" msgstr "" -#: src/lib/fcitx/instance.cpp:360 +#: src/lib/fcitx/instance.cpp:368 #, c++-format msgid "Group {}" msgstr "" @@ -1140,31 +1152,35 @@ msgid "Hibernate" msgstr "" -#: src/modules/notifications/notifications.h:28 +#: src/modules/notifications/notifications.h:26 msgid "Hidden Notifications" msgstr "" -#: src/ui/classic/theme.h:116 +#: src/modules/clipboard/clipboard.h:70 +msgid "Hidden clipboard content that contains a password" +msgstr "" + +#: src/ui/classic/theme.h:114 msgid "Hide overlay if size does not fit" msgstr "" -#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:180 +#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 msgid "Highlight Background" msgstr "" -#: src/ui/classic/theme.h:140 +#: src/ui/classic/theme.h:138 msgid "Highlight Background color" msgstr "" -#: src/ui/classic/theme.h:143 +#: src/ui/classic/theme.h:141 msgid "Highlight Candidate Color" msgstr "" -#: src/ui/classic/theme.h:126 +#: src/ui/classic/theme.h:124 msgid "Highlight Click Margin" msgstr "" -#: src/ui/classic/theme.h:138 +#: src/ui/classic/theme.h:136 msgid "Highlight text color" msgstr "" @@ -1207,7 +1223,7 @@ msgid "Hot Links" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:201 +#: src/lib/fcitx/globalconfig.cpp:207 msgid "Hotkey" msgstr "" @@ -1229,7 +1245,7 @@ msgid "IBus Frontend" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:197 +#: src/lib/fcitx/globalconfig.cpp:203 msgid "" "If value is 0, the user data may only be saved when fcitx quits (e.g. " "logout)." @@ -1249,17 +1265,16 @@ "any input method other than ${2}. See ${link} for more detail." msgstr "" -#: src/ui/classic/theme.h:129 +#: src/ui/classic/theme.h:127 msgid "Image" msgstr "" -#: src/im/keyboard/keyboard.cpp:684 src/lib/fcitx/instance.cpp:450 -#: src/lib/fcitx/instance.cpp:677 src/lib/fcitx/instance.cpp:839 -#: src/modules/notificationitem/notificationitem.cpp:147 -#: src/modules/notificationitem/notificationitem.cpp:235 -#: src/modules/xcb/xcbconnection.cpp:555 -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:4 -#: data/org.fcitx.Fcitx5.desktop.in.in:4 +#: src/im/keyboard/keyboard.cpp:705 src/lib/fcitx/instance.cpp:458 +#: src/lib/fcitx/instance.cpp:686 src/lib/fcitx/instance.cpp:848 +#: src/modules/notificationitem/notificationitem.cpp:142 +#: src/modules/notificationitem/notificationitem.cpp:230 +#: src/modules/xcb/xcbconnection.cpp:555 data/org.fcitx.Fcitx5.desktop.in.in:4 +#: data/fcitx5-wayland-launcher.desktop.in.in:4 #: data/org.fcitx.Fcitx5.metainfo.xml.in:7 msgid "Input Method" msgstr "" @@ -1276,27 +1291,27 @@ msgid "Input Methods:" msgstr "" -#: src/ui/classic/theme.h:201 +#: src/ui/classic/theme.h:199 msgid "Input Panel" msgstr "" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Background" msgstr "" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Border" msgstr "" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight" msgstr "" -#: src/ui/classic/theme.h:66 +#: src/ui/classic/theme.h:64 msgid "Input Panel Highlight Candidate Background" msgstr "" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight Candidate Border" msgstr "" @@ -1304,7 +1319,7 @@ msgid "Input method selector" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:103 src/lib/fcitx/globalconfig.cpp:115 +#: src/lib/fcitx/globalconfig.cpp:104 src/lib/fcitx/globalconfig.cpp:116 msgid "" "Input methods may have different setup in their own configuration. This is " "commonly used by modules like clipboard or quickphrase." @@ -1315,7 +1330,7 @@ msgid "Insert" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:193 +#: src/lib/fcitx/globalconfig.cpp:199 msgid "Interval of saving user data in minutes" msgstr "" @@ -1329,7 +1344,7 @@ "supports text-input protocol used by ${1}." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:598 +#: src/modules/wayland/waylandmodule.cpp:628 msgid "" "It is recommended to install Input Method Panel GNOME Shell Extensions to " "provide the input method popup. https://extensions.gnome.org/extension/261/" @@ -1342,7 +1357,7 @@ msgid "KDE Input Method Panel" msgstr "" -#: src/ui/classic/classicui.cpp:280 +#: src/ui/classic/classicui.cpp:278 msgid "KDE Plasma (Experimental)" msgstr "" @@ -1366,20 +1381,20 @@ msgid "Katakana" msgstr "" -#: src/im/keyboard/longpress.h:16 +#: src/im/keyboard/longpress.h:20 msgid "Key" msgstr "" -#: src/im/keyboard/keyboard.cpp:315 src/im/keyboard/keyboard.conf.in.in:3 +#: src/im/keyboard/keyboard.cpp:335 src/im/keyboard/keyboard.conf.in.in:3 msgid "Keyboard" msgstr "" -#: src/im/keyboard/keyboard.cpp:231 +#: src/im/keyboard/keyboard.cpp:251 #, c++-format msgid "Keyboard - {0}" msgstr "" -#: src/im/keyboard/keyboard.cpp:250 +#: src/im/keyboard/keyboard.cpp:270 #, c++-format msgid "Keyboard - {0} - {1}" msgstr "" @@ -1587,7 +1602,7 @@ msgid "Kimpanel process:" msgstr "" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Last Candidate" msgstr "" @@ -1724,7 +1739,7 @@ msgid "Logoff" msgstr "" -#: src/im/keyboard/keyboard.h:89 +#: src/im/keyboard/keyboard.h:102 msgid "Long Press behavior" msgstr "" @@ -1733,31 +1748,31 @@ msgid "Mail Forward" msgstr "" -#: src/ui/classic/theme.h:118 +#: src/ui/classic/theme.h:116 msgid "Margin" msgstr "" -#: src/ui/classic/theme.h:80 +#: src/ui/classic/theme.h:78 msgid "Margin Bottom" msgstr "" -#: src/ui/classic/theme.h:74 +#: src/ui/classic/theme.h:72 msgid "Margin Left" msgstr "" -#: src/ui/classic/theme.h:76 +#: src/ui/classic/theme.h:74 msgid "Margin Right" msgstr "" -#: src/ui/classic/theme.h:78 +#: src/ui/classic/theme.h:76 msgid "Margin Top" msgstr "" -#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 +#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:184 msgid "Margin around all content" msgstr "" -#: src/ui/classic/theme.h:164 src/ui/classic/theme.h:188 +#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 msgid "Margin around text" msgstr "" @@ -1816,7 +1831,7 @@ msgid "Meeting" msgstr "" -#: src/ui/classic/theme.h:202 +#: src/ui/classic/theme.h:200 msgid "Menu" msgstr "" @@ -1825,15 +1840,15 @@ msgid "Menu" msgstr "" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Background" msgstr "" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Border" msgstr "" -#: src/ui/classic/classicui.h:122 +#: src/ui/classic/classicui.h:119 msgid "Menu Font" msgstr "" @@ -1842,15 +1857,15 @@ msgid "Menu PB" msgstr "" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Background" msgstr "" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Border" msgstr "" -#: src/ui/classic/theme.h:70 +#: src/ui/classic/theme.h:68 msgid "Menu Separator" msgstr "" @@ -1859,7 +1874,7 @@ msgid "Messenger" msgstr "" -#: src/ui/classic/theme.h:199 +#: src/ui/classic/theme.h:197 msgid "Metadata" msgstr "" @@ -1898,7 +1913,7 @@ msgid "My Sites" msgstr "" -#: src/ui/classic/theme.h:191 +#: src/ui/classic/theme.h:189 msgid "Name" msgstr "" @@ -1912,31 +1927,31 @@ msgid "News" msgstr "" -#: src/im/keyboard/keyboard.h:48 +#: src/im/keyboard/keyboard.h:60 msgid "Next Candidate" msgstr "" -#: src/ui/classic/theme.h:166 +#: src/ui/classic/theme.h:164 msgid "Next Page Button" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "No" msgstr "" -#: src/modules/clipboard/clipboard.cpp:355 +#: src/modules/clipboard/clipboard.cpp:371 msgid "No clipboard history." msgstr "" -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:28 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:24 msgid "None" msgstr "" -#: src/ui/classic/theme.h:135 src/ui/classic/theme.h:171 +#: src/ui/classic/theme.h:133 src/ui/classic/theme.h:169 msgid "Normal text color" msgstr "" -#: src/ui/classic/classicui.h:182 +#: src/ui/classic/classicui.h:179 msgid "" "Normally Wayland uses 96 as font DPI in combinition with the screen scale " "factor. This option allows you to override the font DPI. If the value is 0, " @@ -1960,11 +1975,11 @@ msgid "NumLock" msgstr "" -#: src/modules/clipboard/clipboard.h:48 +#: src/modules/clipboard/clipboard.h:54 msgid "Number of entries" msgstr "" -#: src/im/keyboard/keyboard.cpp:670 +#: src/im/keyboard/keyboard.cpp:691 msgid "" "Only emoji support is found. To enable spell checking, you may need to " "install spell check data for the language." @@ -1985,27 +2000,27 @@ msgid "Option" msgstr "" -#: src/ui/classic/theme.h:120 +#: src/ui/classic/theme.h:118 msgid "Overlay Clip Margin" msgstr "" -#: src/ui/classic/theme.h:110 +#: src/ui/classic/theme.h:108 msgid "Overlay Image" msgstr "" -#: src/ui/classic/theme.h:113 +#: src/ui/classic/theme.h:111 msgid "Overlay X offset" msgstr "" -#: src/ui/classic/theme.h:114 +#: src/ui/classic/theme.h:112 msgid "Overlay Y offset" msgstr "" -#: src/ui/classic/theme.h:112 +#: src/ui/classic/theme.h:110 msgid "Overlay position" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:167 +#: src/lib/fcitx/globalconfig.cpp:173 msgid "Override Xkb Option" msgstr "" @@ -2027,11 +2042,11 @@ msgid "Page Up" msgstr "" -#: src/ui/classic/theme.h:155 +#: src/ui/classic/theme.h:153 msgid "Page button vertical alignment" msgstr "" -#: src/im/keyboard/keyboard.h:37 +#: src/im/keyboard/keyboard.h:49 msgid "Page size" msgstr "" @@ -2040,7 +2055,7 @@ msgid "Paste" msgstr "" -#: src/modules/clipboard/clipboard.h:46 +#: src/modules/clipboard/clipboard.h:52 msgid "Paste Primary" msgstr "" @@ -2085,19 +2100,19 @@ msgid "Power Off" msgstr "" -#: src/lib/fcitx/instance.cpp:839 +#: src/lib/fcitx/instance.cpp:848 msgid "Preedit" msgstr "" -#: src/lib/fcitx/instance.cpp:841 +#: src/lib/fcitx/instance.cpp:850 msgid "Preedit disabled" msgstr "" -#: src/lib/fcitx/instance.cpp:840 +#: src/lib/fcitx/instance.cpp:849 msgid "Preedit enabled" msgstr "" -#: src/ui/classic/classicui.h:130 src/ui/kimpanel/kimpanel.h:33 +#: src/ui/classic/classicui.h:127 src/ui/kimpanel/kimpanel.h:28 msgid "Prefer Text Icon" msgstr "" @@ -2105,11 +2120,11 @@ msgid "Presage" msgstr "" -#: src/im/keyboard/keyboard.h:42 +#: src/im/keyboard/keyboard.h:54 msgid "Prev Candidate" msgstr "" -#: src/ui/classic/theme.h:165 +#: src/ui/classic/theme.h:163 msgid "Prev Page Button" msgstr "" @@ -2123,7 +2138,7 @@ msgid "Print Screen" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "Program" msgstr "" @@ -2135,7 +2150,7 @@ msgid "Quick Phrase" msgstr "" -#: src/modules/quickphrase/quickphrase.cpp:471 +#: src/modules/quickphrase/quickphrase.cpp:470 msgid "Quick Phrase: " msgstr "" @@ -2164,6 +2179,10 @@ msgid "Reply" msgstr "" +#: src/lib/fcitx/globalconfig.cpp:143 +msgid "Reset state on Focus In" +msgstr "" + #: src/ui/classic/xcbtraywindow.cpp:39 #: src/modules/notificationitem/dbusmenu.cpp:261 msgid "Restart" @@ -2248,6 +2267,10 @@ msgid "Search" msgstr "" +#: src/modules/clipboard/clipboard.h:76 +msgid "Seconds before clearing password" +msgstr "" + #: src/lib/fcitx-utils/key.cpp:233 msgctxt "Key name" msgid "Select" @@ -2265,7 +2288,7 @@ msgid "Select specific input method via keyboard" msgstr "" -#: src/ui/classic/theme.h:174 +#: src/ui/classic/theme.h:172 msgid "Selected Item text color" msgstr "" @@ -2274,22 +2297,22 @@ msgid "Send" msgstr "" -#: src/modules/wayland/waylandmodule.cpp:630 +#: src/modules/wayland/waylandmodule.cpp:660 msgid "" "Sending keyboard layout configuration to wayland compositor from Fcitx is " "not yet supported on current desktop. You may still use Fcitx's internal " "layout conversion by adding layout as input method to the input method group." msgstr "" -#: src/ui/classic/theme.h:182 +#: src/ui/classic/theme.h:180 msgid "Separator Background" msgstr "" -#: src/ui/classic/theme.h:168 +#: src/ui/classic/theme.h:166 msgid "Shadow Margin" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:141 +#: src/lib/fcitx/globalconfig.cpp:147 msgid "Share Input State" msgstr "" @@ -2303,47 +2326,47 @@ msgid "Shop" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:152 +#: src/lib/fcitx/globalconfig.cpp:158 msgid "Show Input Method Information when changing focus" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:149 +#: src/lib/fcitx/globalconfig.cpp:155 msgid "Show Input Method Information when switch input method" msgstr "" -#: src/ui/classic/classicui.h:135 +#: src/ui/classic/classicui.h:132 msgid "Show Layout Name In Icon" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:155 +#: src/lib/fcitx/globalconfig.cpp:161 msgid "Show compact input method information" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:158 +#: src/lib/fcitx/globalconfig.cpp:164 msgid "Show first input method information" msgstr "" -#: src/ui/classic/classicui.h:139 +#: src/ui/classic/classicui.h:136 msgid "" "Show layout name in icon if there is more than one active layout. If prefer " "text icon is set to true, this option will be ignored." msgstr "" -#: src/lib/fcitx/globalconfig.cpp:145 +#: src/lib/fcitx/globalconfig.cpp:151 msgid "Show preedit in application" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:189 +#: src/lib/fcitx/globalconfig.cpp:195 msgid "Show preedit text when typing password" msgstr "" -#: src/im/keyboard/keyboard.h:77 +#: src/im/keyboard/keyboard.h:89 msgid "" "Show preedit when composing, and commit dead key if there is no matching " "sequence." msgstr "" -#: src/lib/fcitx/globalconfig.cpp:64 +#: src/lib/fcitx/globalconfig.cpp:65 msgid "Skip first input method while enumerating" msgstr "" @@ -2357,11 +2380,11 @@ msgid "Space" msgstr "" -#: src/ui/classic/theme.h:176 +#: src/ui/classic/theme.h:174 msgid "Spacing" msgstr "" -#: src/im/keyboard/keyboard.h:79 src/modules/spell/spell.conf.in.in:3 +#: src/im/keyboard/keyboard.h:91 src/modules/spell/spell.conf.in.in:3 msgid "Spell" msgstr "" @@ -2385,8 +2408,8 @@ msgid "Standby" msgstr "" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:5 #: data/org.fcitx.Fcitx5.desktop.in.in:5 +#: data/fcitx5-wayland-launcher.desktop.in.in:5 msgid "Start Input Method" msgstr "" @@ -2399,7 +2422,7 @@ msgid "Stop" msgstr "" -#: src/ui/classic/theme.h:184 +#: src/ui/classic/theme.h:182 msgid "Sub Menu" msgstr "" @@ -2408,7 +2431,7 @@ msgid "Subtitle" msgstr "" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:25 msgid "Super" msgstr "" @@ -2427,17 +2450,17 @@ msgid "Suspend" msgstr "" -#: src/lib/fcitx/instance.cpp:451 src/lib/fcitx/instance.cpp:678 +#: src/lib/fcitx/instance.cpp:459 src/lib/fcitx/instance.cpp:687 #: src/modules/xcb/xcbconnection.cpp:556 msgid "Switch group" msgstr "" -#: src/lib/fcitx/instance.cpp:452 src/modules/xcb/xcbconnection.cpp:557 +#: src/lib/fcitx/instance.cpp:460 src/modules/xcb/xcbconnection.cpp:557 #, c++-format msgid "Switch group to {0}" msgstr "" -#: src/lib/fcitx/instance.cpp:679 +#: src/lib/fcitx/instance.cpp:688 #, c++-format msgid "Switched group to {0}" msgstr "" @@ -2461,7 +2484,7 @@ msgid "Task Panel" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:44 +#: src/lib/fcitx/globalconfig.cpp:45 msgid "Temporally switch between first and current Input Method" msgstr "" @@ -2489,27 +2512,27 @@ msgid "The script is run as ${1} (${2})." msgstr "" -#: src/ui/classic/classicui.h:155 +#: src/ui/classic/classicui.h:152 msgid "Theme" msgstr "" -#: src/ui/classic/classicui.h:101 +#: src/ui/classic/classicui.h:98 msgid "This is only effective when the tray icon is xembed." msgstr "" -#: src/ui/classic/theme.h:93 src/ui/classic/theme.h:101 +#: src/ui/classic/theme.h:91 src/ui/classic/theme.h:99 msgid "This option is only effective if image is not set." msgstr "" -#: src/ui/classic/classicui.h:194 +#: src/ui/classic/classicui.h:191 msgid "This option require support from wayland compositor." msgstr "" -#: src/ui/classic/classicui.h:173 +#: src/ui/classic/classicui.h:170 msgid "This option will be always disabled on XWayland." msgstr "" -#: src/ui/classic/theme.h:109 +#: src/ui/classic/theme.h:107 msgid "This value should be less than any of margin value." msgstr "" @@ -2533,7 +2556,7 @@ "freezing, see ${link2}." msgstr "" -#: src/lib/fcitx/globalconfig.cpp:132 +#: src/lib/fcitx/globalconfig.cpp:133 msgid "Toggle embedded preedit" msgstr "" @@ -2542,15 +2565,15 @@ msgid "Tools" msgstr "" -#: src/ui/classic/theme.h:48 +#: src/ui/classic/theme.h:46 msgid "Top" msgstr "" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Center" msgstr "" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Left" msgstr "" @@ -2559,7 +2582,7 @@ msgid "Top Menu" msgstr "" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Top Right" msgstr "" @@ -2588,25 +2611,25 @@ msgid "Travel" msgstr "" -#: src/ui/classic/classicui.h:124 +#: src/ui/classic/classicui.h:121 msgid "Tray Font" msgstr "" -#: src/ui/classic/classicui.h:126 +#: src/ui/classic/classicui.h:123 msgid "Tray Label Outline Color" msgstr "" -#: src/ui/classic/classicui.h:129 +#: src/ui/classic/classicui.h:126 msgid "Tray Label Text Color" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:34 +#: src/lib/fcitx/globalconfig.cpp:35 msgid "Trigger Input Method" msgstr "" #: src/modules/imselector/imselector.h:28 -#: src/modules/quickphrase/quickphrase.h:36 src/modules/unicode/unicode.h:31 -#: src/modules/clipboard/clipboard.h:42 +#: src/modules/quickphrase/quickphrase.h:32 src/modules/unicode/unicode.h:28 +#: src/modules/clipboard/clipboard.h:48 msgid "Trigger Key" msgstr "" @@ -2614,23 +2637,23 @@ msgid "Trigger Key for only current input context" msgstr "" -#: src/im/keyboard/keyboard.h:62 +#: src/im/keyboard/keyboard.h:74 msgid "Trigger hint mode" msgstr "" -#: src/im/keyboard/keyboard.h:67 +#: src/im/keyboard/keyboard.h:79 msgid "Trigger hint mode for one time" msgstr "" -#: src/im/keyboard/keyboard.h:82 +#: src/im/keyboard/keyboard.h:94 msgid "Type special characters with long press" msgstr "" -#: src/modules/unicode/unicode.h:36 +#: src/modules/unicode/unicode.h:33 msgid "Type unicode in Hex number" msgstr "" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:22 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:26 msgid "Typing with Fcitx and Kimpanel" msgstr "" @@ -2647,7 +2670,7 @@ msgid "Unicode" msgstr "" -#: src/modules/unicode/unicode.cpp:456 +#: src/modules/unicode/unicode.cpp:455 msgid "Unicode: " msgstr "" @@ -2656,27 +2679,27 @@ msgid "Up" msgstr "" -#: src/frontend/xim/xim.h:33 +#: src/frontend/xim/xim.h:27 msgid "Use On The Spot Style (Needs restarting)" msgstr "" -#: src/ui/classic/classicui.h:169 +#: src/ui/classic/classicui.h:166 msgid "Use Per Screen DPI on X11" msgstr "" -#: src/ui/classic/theme.h:151 +#: src/ui/classic/theme.h:149 msgid "Use all horizontal space for highlight when it is vertical list" msgstr "" -#: src/ui/classic/classicui.h:146 +#: src/ui/classic/classicui.h:143 msgid "Use input method language to display text" msgstr "" -#: src/ui/classic/classicui.h:116 +#: src/ui/classic/classicui.h:113 msgid "Use mouse wheel to go to prev or next page" msgstr "" -#: src/im/keyboard/keyboard.h:73 +#: src/im/keyboard/keyboard.h:85 msgid "Use new compose behavior" msgstr "" @@ -2694,7 +2717,7 @@ "environment:" msgstr "" -#: src/ui/classic/theme.h:192 +#: src/ui/classic/theme.h:190 msgid "Version" msgstr "" @@ -2702,7 +2725,7 @@ msgid "Version Line:" msgstr "" -#: src/ui/classic/classicui.h:114 +#: src/ui/classic/classicui.h:111 msgid "Vertical Candidate List" msgstr "" @@ -2757,7 +2780,7 @@ msgid "Wayland" msgstr "" -#: src/modules/wayland/waylandmodule.cpp:558 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Wayland Diagnose" msgstr "" @@ -2770,7 +2793,14 @@ msgid "WebCam" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:171 +#: src/modules/clipboard/clipboard.h:65 +msgid "" +"When copying password from a password manager, if the password manager " +"supports marking the clipboard content as password, this clipboard update " +"will be ignored." +msgstr "" + +#: src/lib/fcitx/globalconfig.cpp:177 msgid "" "Whether to override the xkb option from display server. It will not affect " "the xkb option send to display, but just the xkb options for custom xkb " @@ -2867,14 +2897,15 @@ #: data/fcitx5-configtool.sh:137 msgid "" "You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be " -"found. Now it will open config directory." +"found. The package name provides this binary is usually fcitx5-configtool. " +"Now it will open the configuration directory." msgstr "" #: data/fcitx5-configtool.sh:134 msgid "" -"You're currently running KDE, but KCModule for fcitx couldn't be found, the " -"package name of this KCModule is usually kcm-fcitx or kde-config-fcitx. Now " -"it will open config directory." +"You're currently running KDE, but KCModule for fcitx couldn't be found. The " +"package name of this KCModule is usually kcm-fcitx5, kde-config-fcitx5, or " +"fcitx5-configtool. Now it will open the configuration directory." msgstr "" #: data/fcitx5-diagnose.sh:1185 @@ -2935,17 +2966,17 @@ msgid "version:" msgstr "" -#: src/im/keyboard/keyboard.cpp:292 +#: src/im/keyboard/keyboard.cpp:312 #, c++-format msgid "{0} (Not Available)" msgstr "" -#: src/lib/fcitx/instance.cpp:409 +#: src/lib/fcitx/instance.cpp:417 #, c++-format msgid "{0} (Not available)" msgstr "" -#: src/lib/fcitx/instance.cpp:406 +#: src/lib/fcitx/instance.cpp:414 #, c++-format msgid "{0} ({1})" msgstr "" diff -Nru fcitx5-5.1.7/po/fr.po fcitx5-5.1.11/po/fr.po --- fcitx5-5.1.7/po/fr.po 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/po/fr.po 2024-10-09 03:48:05.000000000 +0800 @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: fcitx5\n" "Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" -"POT-Creation-Date: 2024-01-14 20:24+0000\n" +"POT-Creation-Date: 2024-06-11 20:24+0000\n" "PO-Revision-Date: 2017-11-23 04:14+0000\n" "Last-Translator: csslayer <wengxt@gmail.com>, 2022\n" "Language-Team: French (https://app.transifex.com/fcitx/teams/12005/fr/)\n" @@ -49,11 +49,11 @@ msgid "${1} works properly." msgstr "${1} fonctionne correctement." -#: src/lib/fcitx/instance.cpp:411 +#: src/lib/fcitx/instance.cpp:419 msgid "(Not available)" msgstr "(Non disponible)" -#: src/modules/unicode/unicode.cpp:458 +#: src/modules/unicode/unicode.cpp:457 msgid "(Type to search unicode by code or description)" msgstr "(Taper pour rechercher unicode par code ou description)" @@ -77,23 +77,31 @@ msgid "/XIM" msgstr "/XIM" -#: src/modules/unicode/charselectdata.cpp:215 +#: src/modules/clipboard/clipboard.h:80 +msgid "0 means never clear password." +msgstr "" + +#: src/modules/unicode/charselectdata.cpp:213 msgid "<Low Surrogate>" msgstr "<Substitut faible>" -#: src/modules/unicode/charselectdata.cpp:211 +#: src/modules/unicode/charselectdata.cpp:209 msgid "<Non Private Use High Surrogate>" msgstr "<Usage non privé haut substitut>" -#: src/modules/unicode/charselectdata.cpp:213 +#: src/modules/clipboard/clipboard.cpp:116 +msgid "<Passowrd>" +msgstr "" + +#: src/modules/unicode/charselectdata.cpp:211 msgid "<Private Use High Surrogate>" msgstr "<Usage privé haut substitut>" -#: src/modules/unicode/charselectdata.cpp:217 +#: src/modules/unicode/charselectdata.cpp:215 msgid "<Private Use>" msgstr "<Usage privé>" -#: src/modules/unicode/charselectdata.cpp:247 +#: src/modules/unicode/charselectdata.cpp:245 msgid "<not assigned>" msgstr "<non attribué>" @@ -101,15 +109,15 @@ msgid "A virtual keyboard backend based on DBus" msgstr "" -#: src/ui/classic/theme.h:204 +#: src/ui/classic/theme.h:202 msgid "Accent Colors" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:82 +#: src/lib/fcitx/globalconfig.cpp:83 msgid "Activate Input Method" msgstr "Activer la méthode de saisie" -#: src/lib/fcitx/globalconfig.cpp:138 +#: src/lib/fcitx/globalconfig.cpp:139 msgid "Active By Default" msgstr "Actif par défaut" @@ -139,7 +147,7 @@ msgid "Adjust Brightness" msgstr "Ajuster la luminosité" -#: src/lib/fcitx/globalconfig.cpp:26 +#: src/lib/fcitx/globalconfig.cpp:27 msgid "All" msgstr "Tout" @@ -155,21 +163,21 @@ msgid "All locales:" msgstr "Tous les paramètres régionaux :" -#: src/modules/xcb/xcbmodule.h:30 +#: src/modules/xcb/xcbmodule.h:26 msgid "Allow Overriding System XKB Settings" msgstr "Autoriser le remplacement des paramètres système XKB" -#: src/modules/wayland/waylandmodule.h:36 +#: src/modules/wayland/waylandmodule.h:35 msgid "Allow Overriding System XKB Settings (Only support KDE 5)" msgstr "" "Autoriser le remplacement des paramètres système XKB (uniquement compatible " "avec KDE 5)" -#: src/lib/fcitx/globalconfig.cpp:186 +#: src/lib/fcitx/globalconfig.cpp:192 msgid "Allow input method in the password field" msgstr "" -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:25 msgid "Alt" msgstr "Alt" @@ -178,7 +186,7 @@ msgid "Alt" msgstr "Alt" -#: src/modules/xcb/xcbmodule.h:33 +#: src/modules/xcb/xcbmodule.h:29 msgid "Always set layout to be only group layout" msgstr "" "Toujours définir la mise en page comme étant uniquement la mise en page de " @@ -194,7 +202,7 @@ msgid "Application Right" msgstr "Droit d'application" -#: src/im/keyboard/keyboard.h:87 +#: src/im/keyboard/keyboard.h:99 msgid "Applications disabled for long press" msgstr "Applications désactivées pour un appui long" @@ -213,7 +221,7 @@ msgid "Audio Repeat" msgstr "Répétition audio" -#: src/ui/classic/theme.h:193 +#: src/ui/classic/theme.h:191 msgid "Author" msgstr "Auteur" @@ -236,11 +244,11 @@ msgid "Backends" msgstr "Backends" -#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 +#: src/ui/classic/theme.h:156 src/ui/classic/theme.h:176 msgid "Background" msgstr "Arrière-plan" -#: src/ui/classic/theme.h:85 +#: src/ui/classic/theme.h:83 msgid "Background Image" msgstr "Image d'arrière-plan" @@ -262,7 +270,7 @@ msgid "Beginner's Guide" msgstr "Guide du débutant" -#: src/lib/fcitx/globalconfig.cpp:203 +#: src/lib/fcitx/globalconfig.cpp:209 msgid "Behavior" msgstr "Comportement" @@ -276,11 +284,11 @@ msgid "Bluetooth" msgstr "Bluetooth" -#: src/ui/classic/theme.h:148 +#: src/ui/classic/theme.h:146 msgid "Blur Margin" msgstr "Marge floue" -#: src/ui/classic/theme.h:147 +#: src/ui/classic/theme.h:145 msgid "Blur mask" msgstr "" @@ -289,27 +297,27 @@ msgid "Book" msgstr "Réserver" -#: src/ui/classic/theme.h:97 +#: src/ui/classic/theme.h:95 msgid "Border Color" msgstr "Couleur de bordure" -#: src/ui/classic/theme.h:105 +#: src/ui/classic/theme.h:103 msgid "Border width" msgstr "Largeur de la bordure" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Bottom" msgstr "" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Center" msgstr "En bas au centre" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Left" msgstr "En bas à gauche" -#: src/ui/classic/theme.h:39 +#: src/ui/classic/theme.h:37 msgid "Bottom Right" msgstr "En bas à droite" @@ -333,7 +341,7 @@ msgid "Cancel" msgstr "Annuler" -#: src/im/keyboard/longpress.h:19 +#: src/im/keyboard/longpress.h:23 msgid "Candidates" msgstr "Candidats" @@ -427,15 +435,15 @@ msgid "CapsLock" msgstr "Verr Maj" -#: src/ui/classic/theme.h:37 src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:35 src/ui/classic/theme.h:47 msgid "Center" msgstr "Centre" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Center Left" msgstr "Centre gauche" -#: src/ui/classic/theme.h:37 +#: src/ui/classic/theme.h:35 msgid "Center Right" msgstr "Centre droit" @@ -443,11 +451,11 @@ msgid "Change Fcitx 5 Configuration" msgstr "Modifier la configuration de Fcitx 5" -#: src/ui/classic/theme.h:183 +#: src/ui/classic/theme.h:181 msgid "Check box" msgstr "Case à cocher" -#: src/im/keyboard/keyboard.h:56 src/modules/quickphrase/quickphrase.h:41 +#: src/im/keyboard/keyboard.h:68 src/modules/quickphrase/quickphrase.h:37 msgid "Choose key modifier" msgstr "Choisir le modificateur de clé" @@ -460,7 +468,7 @@ msgid "Clear" msgstr "Effacer" -#: src/ui/classic/theme.h:131 +#: src/ui/classic/theme.h:129 msgid "Click Margin" msgstr "Cliquer sur la marge" @@ -468,7 +476,7 @@ msgid "Clipboard" msgstr "Presse-papiers" -#: src/modules/clipboard/clipboard.cpp:353 +#: src/modules/clipboard/clipboard.cpp:369 msgid "Clipboard (Press BackSpace/Delete to clear history):" msgstr "" "Presse-papiers (appuyer sur Retour arrière/Suppr pour effacer l'historique) :" @@ -483,7 +491,7 @@ msgid "Code input" msgstr "Entrée de code" -#: src/ui/classic/theme.h:89 +#: src/ui/classic/theme.h:87 msgid "Color" msgstr "Couleur" @@ -492,19 +500,19 @@ msgid "Community" msgstr "Communauté" -#: src/im/keyboard/keyboard.cpp:685 +#: src/im/keyboard/keyboard.cpp:706 msgid "Completion" msgstr "Achèvement" -#: src/im/keyboard/keyboard.cpp:676 +#: src/im/keyboard/keyboard.cpp:697 msgid "Completion is disabled." msgstr "La complétion est désactivée." -#: src/im/keyboard/keyboard.cpp:679 +#: src/im/keyboard/keyboard.cpp:700 msgid "Completion is enabled temporarily." msgstr "La complétion est activée temporairement." -#: src/im/keyboard/keyboard.cpp:681 +#: src/im/keyboard/keyboard.cpp:702 msgid "Completion is enabled." msgstr "La complétion est activée." @@ -541,7 +549,7 @@ msgid "Configure" msgstr "Configurer" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:25 msgid "Control" msgstr "Contrôle" @@ -575,7 +583,7 @@ msgid "Custom" msgstr "Personnalisé" -#: src/lib/fcitx/globalconfig.cpp:176 +#: src/lib/fcitx/globalconfig.cpp:182 msgid "Custom Xkb Option" msgstr "Option Xkb personnalisée" @@ -610,11 +618,11 @@ msgid "DOS" msgstr "DOS" -#: src/ui/classic/classicui.h:158 +#: src/ui/classic/classicui.h:155 msgid "Dark Theme" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:91 +#: src/lib/fcitx/globalconfig.cpp:92 msgid "Deactivate Input Method" msgstr "Désactiver la méthode de saisie" @@ -622,7 +630,7 @@ msgid "Debug information from dbus:" msgstr "Informations de débogage de dbus :" -#: src/lib/fcitx/inputmethodmanager.cpp:138 src/lib/fcitx/instance.cpp:358 +#: src/lib/fcitx/inputmethodmanager.cpp:153 src/lib/fcitx/instance.cpp:366 #: src/ui/classic/themes/default/theme.conf.in:3 msgid "Default" msgstr "Par défaut" @@ -631,23 +639,23 @@ msgid "Default Dark" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:127 +#: src/lib/fcitx/globalconfig.cpp:128 msgid "Default Next Candidate" msgstr "Candidat suivant par défaut" -#: src/lib/fcitx/globalconfig.cpp:111 +#: src/lib/fcitx/globalconfig.cpp:112 msgid "Default Next page" msgstr "Page suivante par défaut" -#: src/lib/fcitx/globalconfig.cpp:121 +#: src/lib/fcitx/globalconfig.cpp:122 msgid "Default Previous Candidate" msgstr "Candidat précédent par défaut" -#: src/lib/fcitx/globalconfig.cpp:99 +#: src/lib/fcitx/globalconfig.cpp:100 msgid "Default Previous page" msgstr "Page précédente par défaut" -#: src/lib/fcitx/globalconfig.cpp:160 +#: src/lib/fcitx/globalconfig.cpp:166 msgid "Default page size" msgstr "Taille de page par défaut" @@ -656,7 +664,7 @@ msgid "Delete" msgstr "Supprimer" -#: src/ui/classic/theme.h:195 +#: src/ui/classic/theme.h:193 msgid "Description" msgstr "Description" @@ -668,7 +676,7 @@ msgid "Desktop environment is ${1}." msgstr "L'environnement de bureau est ${1}." -#: src/modules/wayland/waylandmodule.cpp:586 +#: src/modules/wayland/waylandmodule.cpp:616 msgid "" "Detect GTK_IM_MODULE and QT_IM_MODULE being set and Wayland Input method " "frontend is working. It is recommended to unset GTK_IM_MODULE and " @@ -676,7 +684,7 @@ "see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma" msgstr "" -#: src/modules/wayland/waylandmodule.cpp:615 +#: src/modules/wayland/waylandmodule.cpp:645 msgid "" "Detect GTK_IM_MODULE being set and Wayland Input method frontend is working. " "It is recommended to unset GTK_IM_MODULE and use Wayland input method " @@ -696,10 +704,14 @@ msgid "Display" msgstr "Afficher" -#: src/modules/notifications/notifications.cpp:204 +#: src/modules/notifications/notifications.cpp:201 msgid "Do not show again" msgstr "Ne plus afficher" +#: src/modules/clipboard/clipboard.h:61 +msgid "Do not show password from password managers" +msgstr "" + #: src/lib/fcitx-utils/key.cpp:162 msgctxt "Key name" msgid "Documents" @@ -710,7 +722,7 @@ msgid "Down" msgstr "En bas" -#: src/modules/quickphrase/quickphrase.h:47 +#: src/modules/quickphrase/quickphrase.h:43 msgid "Editor" msgstr "Éditeur" @@ -733,31 +745,31 @@ msgid "Emoji" msgstr "Emoji" -#: src/im/keyboard/longpress.h:17 +#: src/im/keyboard/longpress.h:21 msgid "Enable" msgstr "Activer" -#: src/ui/classic/theme.h:145 +#: src/ui/classic/theme.h:143 msgid "Enable Blur on KWin" msgstr "Activer le flou sur KWin" -#: src/modules/quickphrase/quickphrase.h:43 +#: src/modules/quickphrase/quickphrase.h:39 msgid "Enable Spell check" msgstr "Activer la vérification orthographique" -#: src/im/keyboard/keyboard.h:51 +#: src/im/keyboard/keyboard.h:63 msgid "Enable emoji in hint" msgstr "Activer les emoji dans l'indice" -#: src/im/keyboard/keyboard.h:54 +#: src/im/keyboard/keyboard.h:66 msgid "Enable emoji in quickphrase" msgstr "Activer les emoji dans la phrase rapide" -#: src/ui/classic/classicui.h:190 +#: src/ui/classic/classicui.h:187 msgid "Enable fractional scale under Wayland" msgstr "" -#: src/im/keyboard/keyboard.h:59 +#: src/im/keyboard/keyboard.h:71 msgid "Enable hint by default" msgstr "Activer l'indice par défaut" @@ -770,27 +782,27 @@ msgid "End" msgstr "Fin" -#: src/im/keyboard/longpress.h:26 +#: src/im/keyboard/longpress.h:30 msgid "Entries" msgstr "Entrées" -#: src/lib/fcitx/globalconfig.cpp:58 +#: src/lib/fcitx/globalconfig.cpp:59 msgid "Enumerate Input Method Backward" msgstr "Énumérer la méthode d'entrée vers l'arrière" -#: src/lib/fcitx/globalconfig.cpp:51 +#: src/lib/fcitx/globalconfig.cpp:52 msgid "Enumerate Input Method Forward" msgstr "Énumérer la méthode d'entrée vers l'avant" -#: src/lib/fcitx/globalconfig.cpp:75 +#: src/lib/fcitx/globalconfig.cpp:76 msgid "Enumerate Input Method Group Backward" msgstr "Énumérer le groupe de méthodes d'entrée vers l'arrière" -#: src/lib/fcitx/globalconfig.cpp:68 +#: src/lib/fcitx/globalconfig.cpp:69 msgid "Enumerate Input Method Group Forward" msgstr "Énumérer le groupe de méthodes d'entrée vers l'avant" -#: src/lib/fcitx/globalconfig.cpp:40 +#: src/lib/fcitx/globalconfig.cpp:41 msgid "Enumerate when press trigger key repeatedly" msgstr "" "Énumérer lorsque vous appuyez plusieurs fois sur la touche de déclenchement" @@ -850,7 +862,7 @@ msgid "Failed to find ${1} in the output of ${2}" msgstr "Impossible de trouver ${1} dans la sortie de ${2}" -#: src/modules/quickphrase/quickphrase.h:45 +#: src/modules/quickphrase/quickphrase.h:41 msgid "Fallback Spell check language" msgstr "Langue de vérification orthographique de secours" @@ -859,7 +871,7 @@ msgid "Favorites" msgstr "Favoris" -#: src/modules/wayland/waylandmodule.cpp:558 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Fcitx" msgstr "" @@ -872,7 +884,7 @@ msgid "Fcitx 5 Configuration" msgstr "Configuration Fcitx 5" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:3 +#: data/fcitx5-wayland-launcher.desktop.in.in:3 msgid "Fcitx 5 Wayland Launcher (Experimental)" msgstr "" @@ -888,7 +900,7 @@ msgid "Fcitx State:" msgstr "État Fcitx :" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:9 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:12 msgid "" "Fcitx is an input method framework. It can help you to type your own " "language. It also features variant choice of addons that improve your typing " @@ -898,7 +910,7 @@ "propre langue. Il propose également un choix de variantes des extensions qui " "améliorent votre expérience de frappe." -#: src/modules/wayland/waylandmodule.cpp:573 +#: src/modules/wayland/waylandmodule.cpp:603 msgid "" "Fcitx should be launched by KWin under KDE Wayland in order to use Wayland " "input method frontend. This can improve the experience when using Fcitx on " @@ -927,15 +939,15 @@ msgid "Find" msgstr "Rechercher" -#: src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:47 msgid "First Candidate" msgstr "" -#: src/ui/classic/classicui.h:164 +#: src/ui/classic/classicui.h:161 msgid "Follow system accent color if it is supported by theme and desktop" msgstr "" -#: src/ui/classic/classicui.h:160 +#: src/ui/classic/classicui.h:157 msgid "Follow system light/dark color scheme" msgstr "" @@ -947,11 +959,11 @@ "using text-input support by Qt under Wayland." msgstr "" -#: src/ui/classic/classicui.h:120 +#: src/ui/classic/classicui.h:117 msgid "Font" msgstr "Police" -#: src/ui/classic/classicui.h:150 +#: src/ui/classic/classicui.h:147 msgid "" "For example, display character with Chinese variant when using Pinyin and " "Japanese variant when using Anthy. The font configuration needs to support " @@ -962,11 +974,11 @@ "d'Anthy. La configuration de la police doit le prendre en charge pour " "utiliser cette fonctionnalité." -#: src/modules/wayland/waylandmodule.cpp:641 +#: src/modules/wayland/waylandmodule.cpp:671 msgid "For more details see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland" msgstr "" -#: src/ui/classic/classicui.h:178 +#: src/ui/classic/classicui.h:175 msgid "Force font DPI on Wayland" msgstr "" @@ -1072,12 +1084,12 @@ msgid "Group" msgstr "Groupe" -#: src/lib/fcitx/instance.cpp:415 +#: src/lib/fcitx/instance.cpp:423 #, c++-format msgid "Group {0}: {1}" msgstr "Groupe {0} : {1}" -#: src/lib/fcitx/instance.cpp:360 +#: src/lib/fcitx/instance.cpp:368 #, c++-format msgid "Group {}" msgstr "Groupe {}" @@ -1173,31 +1185,35 @@ msgid "Hibernate" msgstr "Hibernation" -#: src/modules/notifications/notifications.h:28 +#: src/modules/notifications/notifications.h:26 msgid "Hidden Notifications" msgstr "Notifications masquées" -#: src/ui/classic/theme.h:116 +#: src/modules/clipboard/clipboard.h:70 +msgid "Hidden clipboard content that contains a password" +msgstr "" + +#: src/ui/classic/theme.h:114 msgid "Hide overlay if size does not fit" msgstr "Masquer la superposition si la taille ne convient pas" -#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:180 +#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 msgid "Highlight Background" msgstr "Mettre l'arrière-plan en surbrillance" -#: src/ui/classic/theme.h:140 +#: src/ui/classic/theme.h:138 msgid "Highlight Background color" msgstr "Mettre en surbrillance la couleur d'arrière-plan" -#: src/ui/classic/theme.h:143 +#: src/ui/classic/theme.h:141 msgid "Highlight Candidate Color" msgstr "Mettre en surbrillance la couleur du candidat" -#: src/ui/classic/theme.h:126 +#: src/ui/classic/theme.h:124 msgid "Highlight Click Margin" msgstr "Mettre en surbrillance la marge de clic" -#: src/ui/classic/theme.h:138 +#: src/ui/classic/theme.h:136 msgid "Highlight text color" msgstr "Mettre en surbrillance la couleur du texte" @@ -1240,7 +1256,7 @@ msgid "Hot Links" msgstr "Liens dynamiques" -#: src/lib/fcitx/globalconfig.cpp:201 +#: src/lib/fcitx/globalconfig.cpp:207 msgid "Hotkey" msgstr "Raccourci clavier" @@ -1264,7 +1280,7 @@ msgid "IBus Frontend" msgstr "Interface IBus" -#: src/lib/fcitx/globalconfig.cpp:197 +#: src/lib/fcitx/globalconfig.cpp:203 msgid "" "If value is 0, the user data may only be saved when fcitx quits (e.g. " "logout)." @@ -1291,17 +1307,16 @@ "afin d'utiliser une méthode de saisie autre que ${2}. Voir ${link} pour plus " "de détails." -#: src/ui/classic/theme.h:129 +#: src/ui/classic/theme.h:127 msgid "Image" msgstr "Image" -#: src/im/keyboard/keyboard.cpp:684 src/lib/fcitx/instance.cpp:450 -#: src/lib/fcitx/instance.cpp:677 src/lib/fcitx/instance.cpp:839 -#: src/modules/notificationitem/notificationitem.cpp:147 -#: src/modules/notificationitem/notificationitem.cpp:235 -#: src/modules/xcb/xcbconnection.cpp:555 -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:4 -#: data/org.fcitx.Fcitx5.desktop.in.in:4 +#: src/im/keyboard/keyboard.cpp:705 src/lib/fcitx/instance.cpp:458 +#: src/lib/fcitx/instance.cpp:686 src/lib/fcitx/instance.cpp:848 +#: src/modules/notificationitem/notificationitem.cpp:142 +#: src/modules/notificationitem/notificationitem.cpp:230 +#: src/modules/xcb/xcbconnection.cpp:555 data/org.fcitx.Fcitx5.desktop.in.in:4 +#: data/fcitx5-wayland-launcher.desktop.in.in:4 #: data/org.fcitx.Fcitx5.metainfo.xml.in:7 msgid "Input Method" msgstr "Méthode de saisie" @@ -1318,27 +1333,27 @@ msgid "Input Methods:" msgstr "Méthodes de saisie :" -#: src/ui/classic/theme.h:201 +#: src/ui/classic/theme.h:199 msgid "Input Panel" msgstr "Panneau de saisie" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Background" msgstr "" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Border" msgstr "" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight" msgstr "" -#: src/ui/classic/theme.h:66 +#: src/ui/classic/theme.h:64 msgid "Input Panel Highlight Candidate Background" msgstr "" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight Candidate Border" msgstr "" @@ -1346,7 +1361,7 @@ msgid "Input method selector" msgstr "Sélecteur de méthode d'entrée" -#: src/lib/fcitx/globalconfig.cpp:103 src/lib/fcitx/globalconfig.cpp:115 +#: src/lib/fcitx/globalconfig.cpp:104 src/lib/fcitx/globalconfig.cpp:116 msgid "" "Input methods may have different setup in their own configuration. This is " "commonly used by modules like clipboard or quickphrase." @@ -1360,7 +1375,7 @@ msgid "Insert" msgstr "Insérer" -#: src/lib/fcitx/globalconfig.cpp:193 +#: src/lib/fcitx/globalconfig.cpp:199 msgid "Interval of saving user data in minutes" msgstr "" @@ -1374,7 +1389,7 @@ "supports text-input protocol used by ${1}." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:598 +#: src/modules/wayland/waylandmodule.cpp:628 msgid "" "It is recommended to install Input Method Panel GNOME Shell Extensions to " "provide the input method popup. https://extensions.gnome.org/extension/261/" @@ -1387,7 +1402,7 @@ msgid "KDE Input Method Panel" msgstr "Panneau de méthode de saisie KDE" -#: src/ui/classic/classicui.cpp:280 +#: src/ui/classic/classicui.cpp:278 msgid "KDE Plasma (Experimental)" msgstr "" @@ -1411,20 +1426,20 @@ msgid "Katakana" msgstr "Katakana" -#: src/im/keyboard/longpress.h:16 +#: src/im/keyboard/longpress.h:20 msgid "Key" msgstr "Clé" -#: src/im/keyboard/keyboard.cpp:315 src/im/keyboard/keyboard.conf.in.in:3 +#: src/im/keyboard/keyboard.cpp:335 src/im/keyboard/keyboard.conf.in.in:3 msgid "Keyboard" msgstr "Clavier" -#: src/im/keyboard/keyboard.cpp:231 +#: src/im/keyboard/keyboard.cpp:251 #, c++-format msgid "Keyboard - {0}" msgstr "Clavier - {0}" -#: src/im/keyboard/keyboard.cpp:250 +#: src/im/keyboard/keyboard.cpp:270 #, c++-format msgid "Keyboard - {0} - {1}" msgstr "Clavier - {0} - {1}" @@ -1632,7 +1647,7 @@ msgid "Kimpanel process:" msgstr "Processus Kimpanel :" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Last Candidate" msgstr "" @@ -1769,7 +1784,7 @@ msgid "Logoff" msgstr "Déconnexion" -#: src/im/keyboard/keyboard.h:89 +#: src/im/keyboard/keyboard.h:102 msgid "Long Press behavior" msgstr "Comportement d'appui long" @@ -1778,31 +1793,31 @@ msgid "Mail Forward" msgstr "Transfert de courrier" -#: src/ui/classic/theme.h:118 +#: src/ui/classic/theme.h:116 msgid "Margin" msgstr "Marge" -#: src/ui/classic/theme.h:80 +#: src/ui/classic/theme.h:78 msgid "Margin Bottom" msgstr "Marge inférieure" -#: src/ui/classic/theme.h:74 +#: src/ui/classic/theme.h:72 msgid "Margin Left" msgstr "Marge à gauche" -#: src/ui/classic/theme.h:76 +#: src/ui/classic/theme.h:74 msgid "Margin Right" msgstr "Marge droite" -#: src/ui/classic/theme.h:78 +#: src/ui/classic/theme.h:76 msgid "Margin Top" msgstr "Marge supérieure" -#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 +#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:184 msgid "Margin around all content" msgstr "Marge autour de tout le contenu" -#: src/ui/classic/theme.h:164 src/ui/classic/theme.h:188 +#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 msgid "Margin around text" msgstr "Marge autour du texte" @@ -1861,7 +1876,7 @@ msgid "Meeting" msgstr "Réunion" -#: src/ui/classic/theme.h:202 +#: src/ui/classic/theme.h:200 msgid "Menu" msgstr "Menu" @@ -1870,15 +1885,15 @@ msgid "Menu" msgstr "Menu" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Background" msgstr "" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Border" msgstr "" -#: src/ui/classic/classicui.h:122 +#: src/ui/classic/classicui.h:119 msgid "Menu Font" msgstr "Police du menu" @@ -1887,15 +1902,15 @@ msgid "Menu PB" msgstr "Menu PB" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Background" msgstr "" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Border" msgstr "" -#: src/ui/classic/theme.h:70 +#: src/ui/classic/theme.h:68 msgid "Menu Separator" msgstr "" @@ -1904,7 +1919,7 @@ msgid "Messenger" msgstr "Messager" -#: src/ui/classic/theme.h:199 +#: src/ui/classic/theme.h:197 msgid "Metadata" msgstr "Métadonnées" @@ -1943,7 +1958,7 @@ msgid "My Sites" msgstr "Mes sites" -#: src/ui/classic/theme.h:191 +#: src/ui/classic/theme.h:189 msgid "Name" msgstr "Nom" @@ -1957,31 +1972,31 @@ msgid "News" msgstr "Actualités" -#: src/im/keyboard/keyboard.h:48 +#: src/im/keyboard/keyboard.h:60 msgid "Next Candidate" msgstr "Candidat suivant" -#: src/ui/classic/theme.h:166 +#: src/ui/classic/theme.h:164 msgid "Next Page Button" msgstr "Bouton de page suivante" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "No" msgstr "Non" -#: src/modules/clipboard/clipboard.cpp:355 +#: src/modules/clipboard/clipboard.cpp:371 msgid "No clipboard history." msgstr "Aucun historique du presse-papiers." -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:28 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:24 msgid "None" msgstr "Aucun" -#: src/ui/classic/theme.h:135 src/ui/classic/theme.h:171 +#: src/ui/classic/theme.h:133 src/ui/classic/theme.h:169 msgid "Normal text color" msgstr "Couleur normale du texte" -#: src/ui/classic/classicui.h:182 +#: src/ui/classic/classicui.h:179 msgid "" "Normally Wayland uses 96 as font DPI in combinition with the screen scale " "factor. This option allows you to override the font DPI. If the value is 0, " @@ -2005,11 +2020,11 @@ msgid "NumLock" msgstr "NumLock" -#: src/modules/clipboard/clipboard.h:48 +#: src/modules/clipboard/clipboard.h:54 msgid "Number of entries" msgstr "Nombre d'entrées" -#: src/im/keyboard/keyboard.cpp:670 +#: src/im/keyboard/keyboard.cpp:691 msgid "" "Only emoji support is found. To enable spell checking, you may need to " "install spell check data for the language." @@ -2033,27 +2048,27 @@ msgid "Option" msgstr "Option" -#: src/ui/classic/theme.h:120 +#: src/ui/classic/theme.h:118 msgid "Overlay Clip Margin" msgstr "Superposer la marge du clip" -#: src/ui/classic/theme.h:110 +#: src/ui/classic/theme.h:108 msgid "Overlay Image" msgstr "Image de superposition" -#: src/ui/classic/theme.h:113 +#: src/ui/classic/theme.h:111 msgid "Overlay X offset" msgstr "Superposer le décalage X" -#: src/ui/classic/theme.h:114 +#: src/ui/classic/theme.h:112 msgid "Overlay Y offset" msgstr "Superposer le décalage Y" -#: src/ui/classic/theme.h:112 +#: src/ui/classic/theme.h:110 msgid "Overlay position" msgstr "Position de superposition" -#: src/lib/fcitx/globalconfig.cpp:167 +#: src/lib/fcitx/globalconfig.cpp:173 msgid "Override Xkb Option" msgstr "Ignorer l'option Xkb" @@ -2075,11 +2090,11 @@ msgid "Page Up" msgstr "" -#: src/ui/classic/theme.h:155 +#: src/ui/classic/theme.h:153 msgid "Page button vertical alignment" msgstr "" -#: src/im/keyboard/keyboard.h:37 +#: src/im/keyboard/keyboard.h:49 msgid "Page size" msgstr "Taille de la page" @@ -2088,7 +2103,7 @@ msgid "Paste" msgstr "Coller" -#: src/modules/clipboard/clipboard.h:46 +#: src/modules/clipboard/clipboard.h:52 msgid "Paste Primary" msgstr "Coller le primaire" @@ -2138,19 +2153,19 @@ msgid "Power Off" msgstr "Éteindre" -#: src/lib/fcitx/instance.cpp:839 +#: src/lib/fcitx/instance.cpp:848 msgid "Preedit" msgstr "Pré-éditer" -#: src/lib/fcitx/instance.cpp:841 +#: src/lib/fcitx/instance.cpp:850 msgid "Preedit disabled" msgstr "Pré-édition désactivée" -#: src/lib/fcitx/instance.cpp:840 +#: src/lib/fcitx/instance.cpp:849 msgid "Preedit enabled" msgstr "Pré-édition activée" -#: src/ui/classic/classicui.h:130 src/ui/kimpanel/kimpanel.h:33 +#: src/ui/classic/classicui.h:127 src/ui/kimpanel/kimpanel.h:28 msgid "Prefer Text Icon" msgstr "Préférer l'icône de texte" @@ -2158,11 +2173,11 @@ msgid "Presage" msgstr "Présage" -#: src/im/keyboard/keyboard.h:42 +#: src/im/keyboard/keyboard.h:54 msgid "Prev Candidate" msgstr "Candidat précédent" -#: src/ui/classic/theme.h:165 +#: src/ui/classic/theme.h:163 msgid "Prev Page Button" msgstr "Bouton de page précédente" @@ -2176,7 +2191,7 @@ msgid "Print Screen" msgstr "Impression d'écran" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "Program" msgstr "Programme" @@ -2188,7 +2203,7 @@ msgid "Quick Phrase" msgstr "Expression rapide" -#: src/modules/quickphrase/quickphrase.cpp:471 +#: src/modules/quickphrase/quickphrase.cpp:470 msgid "Quick Phrase: " msgstr "Expression rapide : " @@ -2217,6 +2232,10 @@ msgid "Reply" msgstr "Répondre" +#: src/lib/fcitx/globalconfig.cpp:143 +msgid "Reset state on Focus In" +msgstr "" + #: src/ui/classic/xcbtraywindow.cpp:39 #: src/modules/notificationitem/dbusmenu.cpp:261 msgid "Restart" @@ -2301,6 +2320,10 @@ msgid "Search" msgstr "Rechercher" +#: src/modules/clipboard/clipboard.h:76 +msgid "Seconds before clearing password" +msgstr "" + #: src/lib/fcitx-utils/key.cpp:233 msgctxt "Key name" msgid "Select" @@ -2318,7 +2341,7 @@ msgid "Select specific input method via keyboard" msgstr "Sélectionner une méthode de saisie spécifique via le clavier" -#: src/ui/classic/theme.h:174 +#: src/ui/classic/theme.h:172 msgid "Selected Item text color" msgstr "" @@ -2327,22 +2350,22 @@ msgid "Send" msgstr "Envoyer" -#: src/modules/wayland/waylandmodule.cpp:630 +#: src/modules/wayland/waylandmodule.cpp:660 msgid "" "Sending keyboard layout configuration to wayland compositor from Fcitx is " "not yet supported on current desktop. You may still use Fcitx's internal " "layout conversion by adding layout as input method to the input method group." msgstr "" -#: src/ui/classic/theme.h:182 +#: src/ui/classic/theme.h:180 msgid "Separator Background" msgstr "Arrière-plan du séparateur" -#: src/ui/classic/theme.h:168 +#: src/ui/classic/theme.h:166 msgid "Shadow Margin" msgstr "Marge d'ombre" -#: src/lib/fcitx/globalconfig.cpp:141 +#: src/lib/fcitx/globalconfig.cpp:147 msgid "Share Input State" msgstr "Partager l'état de l'entrée" @@ -2356,30 +2379,30 @@ msgid "Shop" msgstr "Boutique" -#: src/lib/fcitx/globalconfig.cpp:152 +#: src/lib/fcitx/globalconfig.cpp:158 msgid "Show Input Method Information when changing focus" msgstr "" "Afficher les informations sur la méthode d'entrée lors du changement de focus" -#: src/lib/fcitx/globalconfig.cpp:149 +#: src/lib/fcitx/globalconfig.cpp:155 msgid "Show Input Method Information when switch input method" msgstr "" "Afficher les informations sur la méthode d'entrée lors du changement de " "méthode d'entrée" -#: src/ui/classic/classicui.h:135 +#: src/ui/classic/classicui.h:132 msgid "Show Layout Name In Icon" msgstr "Afficher le nom de la mise en page dans l'icône" -#: src/lib/fcitx/globalconfig.cpp:155 +#: src/lib/fcitx/globalconfig.cpp:161 msgid "Show compact input method information" msgstr "Afficher les informations sur la méthode d'entrée compacte" -#: src/lib/fcitx/globalconfig.cpp:158 +#: src/lib/fcitx/globalconfig.cpp:164 msgid "Show first input method information" msgstr "Afficher les informations de la première méthode d'entrée" -#: src/ui/classic/classicui.h:139 +#: src/ui/classic/classicui.h:136 msgid "" "Show layout name in icon if there is more than one active layout. If prefer " "text icon is set to true, this option will be ignored." @@ -2388,15 +2411,15 @@ "page active. Si l'icône de texte préféré est définie sur true, cette option " "sera ignorée." -#: src/lib/fcitx/globalconfig.cpp:145 +#: src/lib/fcitx/globalconfig.cpp:151 msgid "Show preedit in application" msgstr "Afficher la pré-édition dans l'application" -#: src/lib/fcitx/globalconfig.cpp:189 +#: src/lib/fcitx/globalconfig.cpp:195 msgid "Show preedit text when typing password" msgstr "" -#: src/im/keyboard/keyboard.h:77 +#: src/im/keyboard/keyboard.h:89 msgid "" "Show preedit when composing, and commit dead key if there is no matching " "sequence." @@ -2404,7 +2427,7 @@ "Afficher la pré-édition lors de la composition et valider la clé morte s'il " "n'y a pas de séquence correspondante." -#: src/lib/fcitx/globalconfig.cpp:64 +#: src/lib/fcitx/globalconfig.cpp:65 msgid "Skip first input method while enumerating" msgstr "Ignorer la première méthode de saisie lors de l'énumération" @@ -2418,11 +2441,11 @@ msgid "Space" msgstr "Espace" -#: src/ui/classic/theme.h:176 +#: src/ui/classic/theme.h:174 msgid "Spacing" msgstr "Espacement" -#: src/im/keyboard/keyboard.h:79 src/modules/spell/spell.conf.in.in:3 +#: src/im/keyboard/keyboard.h:91 src/modules/spell/spell.conf.in.in:3 msgid "Spell" msgstr "Épeler" @@ -2446,8 +2469,8 @@ msgid "Standby" msgstr "Veille" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:5 #: data/org.fcitx.Fcitx5.desktop.in.in:5 +#: data/fcitx5-wayland-launcher.desktop.in.in:5 msgid "Start Input Method" msgstr "Démarrer la méthode de saisie" @@ -2460,7 +2483,7 @@ msgid "Stop" msgstr "Arrêter" -#: src/ui/classic/theme.h:184 +#: src/ui/classic/theme.h:182 msgid "Sub Menu" msgstr "Sous-menu" @@ -2469,7 +2492,7 @@ msgid "Subtitle" msgstr "Sous-titre" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:25 msgid "Super" msgstr "Super" @@ -2488,17 +2511,17 @@ msgid "Suspend" msgstr "Suspendre" -#: src/lib/fcitx/instance.cpp:451 src/lib/fcitx/instance.cpp:678 +#: src/lib/fcitx/instance.cpp:459 src/lib/fcitx/instance.cpp:687 #: src/modules/xcb/xcbconnection.cpp:556 msgid "Switch group" msgstr "Changer de groupe" -#: src/lib/fcitx/instance.cpp:452 src/modules/xcb/xcbconnection.cpp:557 +#: src/lib/fcitx/instance.cpp:460 src/modules/xcb/xcbconnection.cpp:557 #, c++-format msgid "Switch group to {0}" msgstr "Basculer le groupe vers {0}" -#: src/lib/fcitx/instance.cpp:679 +#: src/lib/fcitx/instance.cpp:688 #, c++-format msgid "Switched group to {0}" msgstr "Groupe basculé vers {0}" @@ -2522,7 +2545,7 @@ msgid "Task Panel" msgstr "Panneau de tâches" -#: src/lib/fcitx/globalconfig.cpp:44 +#: src/lib/fcitx/globalconfig.cpp:45 msgid "Temporally switch between first and current Input Method" msgstr "" "Basculer temporairement entre la première méthode de saisie et la méthode de " @@ -2554,27 +2577,27 @@ msgid "The script is run as ${1} (${2})." msgstr "Le script est exécuté en tant que ${1} (${2})." -#: src/ui/classic/classicui.h:155 +#: src/ui/classic/classicui.h:152 msgid "Theme" msgstr "Thème" -#: src/ui/classic/classicui.h:101 +#: src/ui/classic/classicui.h:98 msgid "This is only effective when the tray icon is xembed." msgstr "Ceci n'est efficace que lorsque l'icône de la barre d'état est xembed." -#: src/ui/classic/theme.h:93 src/ui/classic/theme.h:101 +#: src/ui/classic/theme.h:91 src/ui/classic/theme.h:99 msgid "This option is only effective if image is not set." msgstr "Cette option n'est efficace que si l'image n'est pas définie." -#: src/ui/classic/classicui.h:194 +#: src/ui/classic/classicui.h:191 msgid "This option require support from wayland compositor." msgstr "" -#: src/ui/classic/classicui.h:173 +#: src/ui/classic/classicui.h:170 msgid "This option will be always disabled on XWayland." msgstr "" -#: src/ui/classic/theme.h:109 +#: src/ui/classic/theme.h:107 msgid "This value should be less than any of margin value." msgstr "Cette valeur doit être inférieure à n'importe quelle valeur de marge." @@ -2605,7 +2628,7 @@ "problèmes plus généraux liés à l'utilisation de XIM, notamment le gel des " "applications, consultez ${link2}." -#: src/lib/fcitx/globalconfig.cpp:132 +#: src/lib/fcitx/globalconfig.cpp:133 msgid "Toggle embedded preedit" msgstr "Basculer la pré-édition intégrée" @@ -2614,15 +2637,15 @@ msgid "Tools" msgstr "Outils" -#: src/ui/classic/theme.h:48 +#: src/ui/classic/theme.h:46 msgid "Top" msgstr "" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Center" msgstr "En haut au centre" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Left" msgstr "En haut à gauche" @@ -2631,7 +2654,7 @@ msgid "Top Menu" msgstr "Menu principal" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Top Right" msgstr "En haut à droite" @@ -2660,25 +2683,25 @@ msgid "Travel" msgstr "Voyage" -#: src/ui/classic/classicui.h:124 +#: src/ui/classic/classicui.h:121 msgid "Tray Font" msgstr "Police du bac" -#: src/ui/classic/classicui.h:126 +#: src/ui/classic/classicui.h:123 msgid "Tray Label Outline Color" msgstr "Couleur du contour de l'étiquette du plateau" -#: src/ui/classic/classicui.h:129 +#: src/ui/classic/classicui.h:126 msgid "Tray Label Text Color" msgstr "Couleur du texte de l'étiquette du plateau" -#: src/lib/fcitx/globalconfig.cpp:34 +#: src/lib/fcitx/globalconfig.cpp:35 msgid "Trigger Input Method" msgstr "Méthode d'entrée du déclencheur" #: src/modules/imselector/imselector.h:28 -#: src/modules/quickphrase/quickphrase.h:36 src/modules/unicode/unicode.h:31 -#: src/modules/clipboard/clipboard.h:42 +#: src/modules/quickphrase/quickphrase.h:32 src/modules/unicode/unicode.h:28 +#: src/modules/clipboard/clipboard.h:48 msgid "Trigger Key" msgstr "Clé de déclenchement" @@ -2686,23 +2709,23 @@ msgid "Trigger Key for only current input context" msgstr "Clé de déclenchement pour le contexte d'entrée actuel uniquement" -#: src/im/keyboard/keyboard.h:62 +#: src/im/keyboard/keyboard.h:74 msgid "Trigger hint mode" msgstr "Déclencher le mode indice" -#: src/im/keyboard/keyboard.h:67 +#: src/im/keyboard/keyboard.h:79 msgid "Trigger hint mode for one time" msgstr "Déclencher le mode indice pour une fois" -#: src/im/keyboard/keyboard.h:82 +#: src/im/keyboard/keyboard.h:94 msgid "Type special characters with long press" msgstr "Saisir des caractères spéciaux en appuyant longuement" -#: src/modules/unicode/unicode.h:36 +#: src/modules/unicode/unicode.h:33 msgid "Type unicode in Hex number" msgstr "" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:22 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:26 msgid "Typing with Fcitx and Kimpanel" msgstr "Saisie avec Fcitx et Kimpanel" @@ -2719,7 +2742,7 @@ msgid "Unicode" msgstr "Unicode" -#: src/modules/unicode/unicode.cpp:456 +#: src/modules/unicode/unicode.cpp:455 msgid "Unicode: " msgstr "Unicode : " @@ -2728,30 +2751,30 @@ msgid "Up" msgstr "Haut" -#: src/frontend/xim/xim.h:33 +#: src/frontend/xim/xim.h:27 msgid "Use On The Spot Style (Needs restarting)" msgstr "Utiliser le style On The Spot (nécessite un redémarrage)" -#: src/ui/classic/classicui.h:169 +#: src/ui/classic/classicui.h:166 msgid "Use Per Screen DPI on X11" msgstr "" -#: src/ui/classic/theme.h:151 +#: src/ui/classic/theme.h:149 msgid "Use all horizontal space for highlight when it is vertical list" msgstr "" "Utiliser tout l'espace horizontal pour la surbrillance lorsqu'il s'agit " "d'une liste verticale" -#: src/ui/classic/classicui.h:146 +#: src/ui/classic/classicui.h:143 msgid "Use input method language to display text" msgstr "Utiliser la langue de la méthode de saisie pour afficher le texte" -#: src/ui/classic/classicui.h:116 +#: src/ui/classic/classicui.h:113 msgid "Use mouse wheel to go to prev or next page" msgstr "" "Utiliser la molette de la souris pour aller à la page précédente ou suivante" -#: src/im/keyboard/keyboard.h:73 +#: src/im/keyboard/keyboard.h:85 msgid "Use new compose behavior" msgstr "Utiliser le nouveau comportement de composition" @@ -2769,7 +2792,7 @@ "environment:" msgstr "" -#: src/ui/classic/theme.h:192 +#: src/ui/classic/theme.h:190 msgid "Version" msgstr "Version" @@ -2777,7 +2800,7 @@ msgid "Version Line:" msgstr "Ligne de version :" -#: src/ui/classic/classicui.h:114 +#: src/ui/classic/classicui.h:111 msgid "Vertical Candidate List" msgstr "Liste verticale des candidats" @@ -2835,7 +2858,7 @@ msgid "Wayland" msgstr "Wayland" -#: src/modules/wayland/waylandmodule.cpp:558 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Wayland Diagnose" msgstr "" @@ -2848,7 +2871,14 @@ msgid "WebCam" msgstr "WebCam" -#: src/lib/fcitx/globalconfig.cpp:171 +#: src/modules/clipboard/clipboard.h:65 +msgid "" +"When copying password from a password manager, if the password manager " +"supports marking the clipboard content as password, this clipboard update " +"will be ignored." +msgstr "" + +#: src/lib/fcitx/globalconfig.cpp:177 msgid "" "Whether to override the xkb option from display server. It will not affect " "the xkb option send to display, but just the xkb options for custom xkb " @@ -2960,21 +2990,16 @@ #: data/fcitx5-configtool.sh:137 msgid "" "You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be " -"found. Now it will open config directory." +"found. The package name provides this binary is usually fcitx5-configtool. " +"Now it will open the configuration directory." msgstr "" -"Vous utilisez actuellement Fcitx avec une interface graphique, mais fcitx5-" -"config-qt est introuvable. Maintenant, il ouvrira le répertoire de " -"configuration." #: data/fcitx5-configtool.sh:134 msgid "" -"You're currently running KDE, but KCModule for fcitx couldn't be found, the " -"package name of this KCModule is usually kcm-fcitx or kde-config-fcitx. Now " -"it will open config directory." -msgstr "" -"Vous utilisez actuellement KDE, mais KCModule pour fcitx est introuvable, le " -"nom du package de ce KCModule est généralement kcm-fcitx ou kde-config-" -"fcitx. Maintenant, il ouvrira le répertoire de configuration." +"You're currently running KDE, but KCModule for fcitx couldn't be found. The " +"package name of this KCModule is usually kcm-fcitx5, kde-config-fcitx5, or " +"fcitx5-configtool. Now it will open the configuration directory." +msgstr "" #: data/fcitx5-diagnose.sh:1185 msgid "" @@ -3039,17 +3064,17 @@ msgid "version:" msgstr "version :" -#: src/im/keyboard/keyboard.cpp:292 +#: src/im/keyboard/keyboard.cpp:312 #, c++-format msgid "{0} (Not Available)" msgstr "{0} (Non disponible)" -#: src/lib/fcitx/instance.cpp:409 +#: src/lib/fcitx/instance.cpp:417 #, c++-format msgid "{0} (Not available)" msgstr "{0} (Non disponible)" -#: src/lib/fcitx/instance.cpp:406 +#: src/lib/fcitx/instance.cpp:414 #, c++-format msgid "{0} ({1})" msgstr "{0} ({1})" diff -Nru fcitx5-5.1.7/po/he.po fcitx5-5.1.11/po/he.po --- fcitx5-5.1.7/po/he.po 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/po/he.po 2024-10-09 03:48:05.000000000 +0800 @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: fcitx5\n" "Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" -"POT-Creation-Date: 2024-01-14 20:24+0000\n" +"POT-Creation-Date: 2024-06-11 20:24+0000\n" "PO-Revision-Date: 2017-11-23 04:14+0000\n" "Last-Translator: 63f334ffc0709ba0fc2361b80bf3c0f0_00ffd1e " "<ab96c93ca0ac55ba7fa06385427e60dd_878890>, 2021\n" @@ -18,8 +18,8 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % " -"1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n" +"Plural-Forms: nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % " +"1 == 0) ? 1: 2;\n" #: data/fcitx5-diagnose.sh:900 msgid "${1} Environment Variables:" @@ -49,11 +49,11 @@ msgid "${1} works properly." msgstr "" -#: src/lib/fcitx/instance.cpp:411 +#: src/lib/fcitx/instance.cpp:419 msgid "(Not available)" msgstr "" -#: src/modules/unicode/unicode.cpp:458 +#: src/modules/unicode/unicode.cpp:457 msgid "(Type to search unicode by code or description)" msgstr "" @@ -77,23 +77,31 @@ msgid "/XIM" msgstr "" -#: src/modules/unicode/charselectdata.cpp:215 +#: src/modules/clipboard/clipboard.h:80 +msgid "0 means never clear password." +msgstr "" + +#: src/modules/unicode/charselectdata.cpp:213 msgid "<Low Surrogate>" msgstr "" -#: src/modules/unicode/charselectdata.cpp:211 +#: src/modules/unicode/charselectdata.cpp:209 msgid "<Non Private Use High Surrogate>" msgstr "" -#: src/modules/unicode/charselectdata.cpp:213 +#: src/modules/clipboard/clipboard.cpp:116 +msgid "<Passowrd>" +msgstr "" + +#: src/modules/unicode/charselectdata.cpp:211 msgid "<Private Use High Surrogate>" msgstr "" -#: src/modules/unicode/charselectdata.cpp:217 +#: src/modules/unicode/charselectdata.cpp:215 msgid "<Private Use>" msgstr "<שימוש פרטי>" -#: src/modules/unicode/charselectdata.cpp:247 +#: src/modules/unicode/charselectdata.cpp:245 msgid "<not assigned>" msgstr "" @@ -101,15 +109,15 @@ msgid "A virtual keyboard backend based on DBus" msgstr "" -#: src/ui/classic/theme.h:204 +#: src/ui/classic/theme.h:202 msgid "Accent Colors" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:82 +#: src/lib/fcitx/globalconfig.cpp:83 msgid "Activate Input Method" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:138 +#: src/lib/fcitx/globalconfig.cpp:139 msgid "Active By Default" msgstr "" @@ -139,7 +147,7 @@ msgid "Adjust Brightness" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:26 +#: src/lib/fcitx/globalconfig.cpp:27 msgid "All" msgstr "" @@ -155,19 +163,19 @@ msgid "All locales:" msgstr "" -#: src/modules/xcb/xcbmodule.h:30 +#: src/modules/xcb/xcbmodule.h:26 msgid "Allow Overriding System XKB Settings" msgstr "" -#: src/modules/wayland/waylandmodule.h:36 +#: src/modules/wayland/waylandmodule.h:35 msgid "Allow Overriding System XKB Settings (Only support KDE 5)" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:186 +#: src/lib/fcitx/globalconfig.cpp:192 msgid "Allow input method in the password field" msgstr "" -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:25 msgid "Alt" msgstr "" @@ -176,7 +184,7 @@ msgid "Alt" msgstr "Alt" -#: src/modules/xcb/xcbmodule.h:33 +#: src/modules/xcb/xcbmodule.h:29 msgid "Always set layout to be only group layout" msgstr "" @@ -190,7 +198,7 @@ msgid "Application Right" msgstr "" -#: src/im/keyboard/keyboard.h:87 +#: src/im/keyboard/keyboard.h:99 msgid "Applications disabled for long press" msgstr "" @@ -209,7 +217,7 @@ msgid "Audio Repeat" msgstr "" -#: src/ui/classic/theme.h:193 +#: src/ui/classic/theme.h:191 msgid "Author" msgstr "" @@ -232,11 +240,11 @@ msgid "Backends" msgstr "" -#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 +#: src/ui/classic/theme.h:156 src/ui/classic/theme.h:176 msgid "Background" msgstr "" -#: src/ui/classic/theme.h:85 +#: src/ui/classic/theme.h:83 msgid "Background Image" msgstr "" @@ -258,7 +266,7 @@ msgid "Beginner's Guide" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:203 +#: src/lib/fcitx/globalconfig.cpp:209 msgid "Behavior" msgstr "" @@ -272,11 +280,11 @@ msgid "Bluetooth" msgstr "Bluetooth" -#: src/ui/classic/theme.h:148 +#: src/ui/classic/theme.h:146 msgid "Blur Margin" msgstr "" -#: src/ui/classic/theme.h:147 +#: src/ui/classic/theme.h:145 msgid "Blur mask" msgstr "" @@ -285,27 +293,27 @@ msgid "Book" msgstr "" -#: src/ui/classic/theme.h:97 +#: src/ui/classic/theme.h:95 msgid "Border Color" msgstr "" -#: src/ui/classic/theme.h:105 +#: src/ui/classic/theme.h:103 msgid "Border width" msgstr "" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Bottom" msgstr "" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Center" msgstr "" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Left" msgstr "" -#: src/ui/classic/theme.h:39 +#: src/ui/classic/theme.h:37 msgid "Bottom Right" msgstr "" @@ -329,7 +337,7 @@ msgid "Cancel" msgstr "ביטול" -#: src/im/keyboard/longpress.h:19 +#: src/im/keyboard/longpress.h:23 msgid "Candidates" msgstr "" @@ -416,15 +424,15 @@ msgid "CapsLock" msgstr "" -#: src/ui/classic/theme.h:37 src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:35 src/ui/classic/theme.h:47 msgid "Center" msgstr "" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Center Left" msgstr "" -#: src/ui/classic/theme.h:37 +#: src/ui/classic/theme.h:35 msgid "Center Right" msgstr "" @@ -432,11 +440,11 @@ msgid "Change Fcitx 5 Configuration" msgstr "" -#: src/ui/classic/theme.h:183 +#: src/ui/classic/theme.h:181 msgid "Check box" msgstr "" -#: src/im/keyboard/keyboard.h:56 src/modules/quickphrase/quickphrase.h:41 +#: src/im/keyboard/keyboard.h:68 src/modules/quickphrase/quickphrase.h:37 msgid "Choose key modifier" msgstr "" @@ -449,7 +457,7 @@ msgid "Clear" msgstr "ניקוי" -#: src/ui/classic/theme.h:131 +#: src/ui/classic/theme.h:129 msgid "Click Margin" msgstr "" @@ -457,7 +465,7 @@ msgid "Clipboard" msgstr "לוח הגזירים" -#: src/modules/clipboard/clipboard.cpp:353 +#: src/modules/clipboard/clipboard.cpp:369 msgid "Clipboard (Press BackSpace/Delete to clear history):" msgstr "" @@ -471,7 +479,7 @@ msgid "Code input" msgstr "" -#: src/ui/classic/theme.h:89 +#: src/ui/classic/theme.h:87 msgid "Color" msgstr "" @@ -480,19 +488,19 @@ msgid "Community" msgstr "" -#: src/im/keyboard/keyboard.cpp:685 +#: src/im/keyboard/keyboard.cpp:706 msgid "Completion" msgstr "" -#: src/im/keyboard/keyboard.cpp:676 +#: src/im/keyboard/keyboard.cpp:697 msgid "Completion is disabled." msgstr "" -#: src/im/keyboard/keyboard.cpp:679 +#: src/im/keyboard/keyboard.cpp:700 msgid "Completion is enabled temporarily." msgstr "" -#: src/im/keyboard/keyboard.cpp:681 +#: src/im/keyboard/keyboard.cpp:702 msgid "Completion is enabled." msgstr "" @@ -529,7 +537,7 @@ msgid "Configure" msgstr "הגדרה" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:25 msgid "Control" msgstr "" @@ -563,7 +571,7 @@ msgid "Custom" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:176 +#: src/lib/fcitx/globalconfig.cpp:182 msgid "Custom Xkb Option" msgstr "" @@ -597,11 +605,11 @@ msgid "DOS" msgstr "DOS" -#: src/ui/classic/classicui.h:158 +#: src/ui/classic/classicui.h:155 msgid "Dark Theme" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:91 +#: src/lib/fcitx/globalconfig.cpp:92 msgid "Deactivate Input Method" msgstr "" @@ -609,7 +617,7 @@ msgid "Debug information from dbus:" msgstr "" -#: src/lib/fcitx/inputmethodmanager.cpp:138 src/lib/fcitx/instance.cpp:358 +#: src/lib/fcitx/inputmethodmanager.cpp:153 src/lib/fcitx/instance.cpp:366 #: src/ui/classic/themes/default/theme.conf.in:3 msgid "Default" msgstr "" @@ -618,23 +626,23 @@ msgid "Default Dark" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:127 +#: src/lib/fcitx/globalconfig.cpp:128 msgid "Default Next Candidate" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:111 +#: src/lib/fcitx/globalconfig.cpp:112 msgid "Default Next page" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:121 +#: src/lib/fcitx/globalconfig.cpp:122 msgid "Default Previous Candidate" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:99 +#: src/lib/fcitx/globalconfig.cpp:100 msgid "Default Previous page" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:160 +#: src/lib/fcitx/globalconfig.cpp:166 msgid "Default page size" msgstr "" @@ -643,7 +651,7 @@ msgid "Delete" msgstr "מחיקה" -#: src/ui/classic/theme.h:195 +#: src/ui/classic/theme.h:193 msgid "Description" msgstr "" @@ -655,7 +663,7 @@ msgid "Desktop environment is ${1}." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:586 +#: src/modules/wayland/waylandmodule.cpp:616 msgid "" "Detect GTK_IM_MODULE and QT_IM_MODULE being set and Wayland Input method " "frontend is working. It is recommended to unset GTK_IM_MODULE and " @@ -663,7 +671,7 @@ "see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma" msgstr "" -#: src/modules/wayland/waylandmodule.cpp:615 +#: src/modules/wayland/waylandmodule.cpp:645 msgid "" "Detect GTK_IM_MODULE being set and Wayland Input method frontend is working. " "It is recommended to unset GTK_IM_MODULE and use Wayland input method " @@ -683,10 +691,14 @@ msgid "Display" msgstr "" -#: src/modules/notifications/notifications.cpp:204 +#: src/modules/notifications/notifications.cpp:201 msgid "Do not show again" msgstr "לא להציג שוב" +#: src/modules/clipboard/clipboard.h:61 +msgid "Do not show password from password managers" +msgstr "" + #: src/lib/fcitx-utils/key.cpp:162 msgctxt "Key name" msgid "Documents" @@ -697,7 +709,7 @@ msgid "Down" msgstr "" -#: src/modules/quickphrase/quickphrase.h:47 +#: src/modules/quickphrase/quickphrase.h:43 msgid "Editor" msgstr "" @@ -720,31 +732,31 @@ msgid "Emoji" msgstr "" -#: src/im/keyboard/longpress.h:17 +#: src/im/keyboard/longpress.h:21 msgid "Enable" msgstr "" -#: src/ui/classic/theme.h:145 +#: src/ui/classic/theme.h:143 msgid "Enable Blur on KWin" msgstr "" -#: src/modules/quickphrase/quickphrase.h:43 +#: src/modules/quickphrase/quickphrase.h:39 msgid "Enable Spell check" msgstr "" -#: src/im/keyboard/keyboard.h:51 +#: src/im/keyboard/keyboard.h:63 msgid "Enable emoji in hint" msgstr "" -#: src/im/keyboard/keyboard.h:54 +#: src/im/keyboard/keyboard.h:66 msgid "Enable emoji in quickphrase" msgstr "" -#: src/ui/classic/classicui.h:190 +#: src/ui/classic/classicui.h:187 msgid "Enable fractional scale under Wayland" msgstr "" -#: src/im/keyboard/keyboard.h:59 +#: src/im/keyboard/keyboard.h:71 msgid "Enable hint by default" msgstr "" @@ -757,27 +769,27 @@ msgid "End" msgstr "" -#: src/im/keyboard/longpress.h:26 +#: src/im/keyboard/longpress.h:30 msgid "Entries" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:58 +#: src/lib/fcitx/globalconfig.cpp:59 msgid "Enumerate Input Method Backward" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:51 +#: src/lib/fcitx/globalconfig.cpp:52 msgid "Enumerate Input Method Forward" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:75 +#: src/lib/fcitx/globalconfig.cpp:76 msgid "Enumerate Input Method Group Backward" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:68 +#: src/lib/fcitx/globalconfig.cpp:69 msgid "Enumerate Input Method Group Forward" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:40 +#: src/lib/fcitx/globalconfig.cpp:41 msgid "Enumerate when press trigger key repeatedly" msgstr "" @@ -830,7 +842,7 @@ msgid "Failed to find ${1} in the output of ${2}" msgstr "" -#: src/modules/quickphrase/quickphrase.h:45 +#: src/modules/quickphrase/quickphrase.h:41 msgid "Fallback Spell check language" msgstr "" @@ -839,7 +851,7 @@ msgid "Favorites" msgstr "מועדפים" -#: src/modules/wayland/waylandmodule.cpp:558 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Fcitx" msgstr "" @@ -852,7 +864,7 @@ msgid "Fcitx 5 Configuration" msgstr "" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:3 +#: data/fcitx5-wayland-launcher.desktop.in.in:3 msgid "Fcitx 5 Wayland Launcher (Experimental)" msgstr "" @@ -868,14 +880,14 @@ msgid "Fcitx State:" msgstr "" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:9 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:12 msgid "" "Fcitx is an input method framework. It can help you to type your own " "language. It also features variant choice of addons that improve your typing " "experience." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:573 +#: src/modules/wayland/waylandmodule.cpp:603 msgid "" "Fcitx should be launched by KWin under KDE Wayland in order to use Wayland " "input method frontend. This can improve the experience when using Fcitx on " @@ -904,15 +916,15 @@ msgid "Find" msgstr "" -#: src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:47 msgid "First Candidate" msgstr "" -#: src/ui/classic/classicui.h:164 +#: src/ui/classic/classicui.h:161 msgid "Follow system accent color if it is supported by theme and desktop" msgstr "" -#: src/ui/classic/classicui.h:160 +#: src/ui/classic/classicui.h:157 msgid "Follow system light/dark color scheme" msgstr "" @@ -924,22 +936,22 @@ "using text-input support by Qt under Wayland." msgstr "" -#: src/ui/classic/classicui.h:120 +#: src/ui/classic/classicui.h:117 msgid "Font" msgstr "" -#: src/ui/classic/classicui.h:150 +#: src/ui/classic/classicui.h:147 msgid "" "For example, display character with Chinese variant when using Pinyin and " "Japanese variant when using Anthy. The font configuration needs to support " "this to use this feature." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:641 +#: src/modules/wayland/waylandmodule.cpp:671 msgid "For more details see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland" msgstr "" -#: src/ui/classic/classicui.h:178 +#: src/ui/classic/classicui.h:175 msgid "Force font DPI on Wayland" msgstr "" @@ -1045,12 +1057,12 @@ msgid "Group" msgstr "" -#: src/lib/fcitx/instance.cpp:415 +#: src/lib/fcitx/instance.cpp:423 #, c++-format msgid "Group {0}: {1}" msgstr "" -#: src/lib/fcitx/instance.cpp:360 +#: src/lib/fcitx/instance.cpp:368 #, c++-format msgid "Group {}" msgstr "" @@ -1146,31 +1158,35 @@ msgid "Hibernate" msgstr "תרדמת" -#: src/modules/notifications/notifications.h:28 +#: src/modules/notifications/notifications.h:26 msgid "Hidden Notifications" msgstr "" -#: src/ui/classic/theme.h:116 +#: src/modules/clipboard/clipboard.h:70 +msgid "Hidden clipboard content that contains a password" +msgstr "" + +#: src/ui/classic/theme.h:114 msgid "Hide overlay if size does not fit" msgstr "" -#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:180 +#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 msgid "Highlight Background" msgstr "" -#: src/ui/classic/theme.h:140 +#: src/ui/classic/theme.h:138 msgid "Highlight Background color" msgstr "" -#: src/ui/classic/theme.h:143 +#: src/ui/classic/theme.h:141 msgid "Highlight Candidate Color" msgstr "" -#: src/ui/classic/theme.h:126 +#: src/ui/classic/theme.h:124 msgid "Highlight Click Margin" msgstr "" -#: src/ui/classic/theme.h:138 +#: src/ui/classic/theme.h:136 msgid "Highlight text color" msgstr "" @@ -1213,7 +1229,7 @@ msgid "Hot Links" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:201 +#: src/lib/fcitx/globalconfig.cpp:207 msgid "Hotkey" msgstr "" @@ -1235,7 +1251,7 @@ msgid "IBus Frontend" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:197 +#: src/lib/fcitx/globalconfig.cpp:203 msgid "" "If value is 0, the user data may only be saved when fcitx quits (e.g. " "logout)." @@ -1255,17 +1271,16 @@ "any input method other than ${2}. See ${link} for more detail." msgstr "" -#: src/ui/classic/theme.h:129 +#: src/ui/classic/theme.h:127 msgid "Image" msgstr "" -#: src/im/keyboard/keyboard.cpp:684 src/lib/fcitx/instance.cpp:450 -#: src/lib/fcitx/instance.cpp:677 src/lib/fcitx/instance.cpp:839 -#: src/modules/notificationitem/notificationitem.cpp:147 -#: src/modules/notificationitem/notificationitem.cpp:235 -#: src/modules/xcb/xcbconnection.cpp:555 -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:4 -#: data/org.fcitx.Fcitx5.desktop.in.in:4 +#: src/im/keyboard/keyboard.cpp:705 src/lib/fcitx/instance.cpp:458 +#: src/lib/fcitx/instance.cpp:686 src/lib/fcitx/instance.cpp:848 +#: src/modules/notificationitem/notificationitem.cpp:142 +#: src/modules/notificationitem/notificationitem.cpp:230 +#: src/modules/xcb/xcbconnection.cpp:555 data/org.fcitx.Fcitx5.desktop.in.in:4 +#: data/fcitx5-wayland-launcher.desktop.in.in:4 #: data/org.fcitx.Fcitx5.metainfo.xml.in:7 msgid "Input Method" msgstr "" @@ -1282,27 +1297,27 @@ msgid "Input Methods:" msgstr "" -#: src/ui/classic/theme.h:201 +#: src/ui/classic/theme.h:199 msgid "Input Panel" msgstr "" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Background" msgstr "" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Border" msgstr "" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight" msgstr "" -#: src/ui/classic/theme.h:66 +#: src/ui/classic/theme.h:64 msgid "Input Panel Highlight Candidate Background" msgstr "" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight Candidate Border" msgstr "" @@ -1310,7 +1325,7 @@ msgid "Input method selector" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:103 src/lib/fcitx/globalconfig.cpp:115 +#: src/lib/fcitx/globalconfig.cpp:104 src/lib/fcitx/globalconfig.cpp:116 msgid "" "Input methods may have different setup in their own configuration. This is " "commonly used by modules like clipboard or quickphrase." @@ -1321,7 +1336,7 @@ msgid "Insert" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:193 +#: src/lib/fcitx/globalconfig.cpp:199 msgid "Interval of saving user data in minutes" msgstr "" @@ -1335,7 +1350,7 @@ "supports text-input protocol used by ${1}." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:598 +#: src/modules/wayland/waylandmodule.cpp:628 msgid "" "It is recommended to install Input Method Panel GNOME Shell Extensions to " "provide the input method popup. https://extensions.gnome.org/extension/261/" @@ -1348,7 +1363,7 @@ msgid "KDE Input Method Panel" msgstr "" -#: src/ui/classic/classicui.cpp:280 +#: src/ui/classic/classicui.cpp:278 msgid "KDE Plasma (Experimental)" msgstr "" @@ -1372,20 +1387,20 @@ msgid "Katakana" msgstr "" -#: src/im/keyboard/longpress.h:16 +#: src/im/keyboard/longpress.h:20 msgid "Key" msgstr "" -#: src/im/keyboard/keyboard.cpp:315 src/im/keyboard/keyboard.conf.in.in:3 +#: src/im/keyboard/keyboard.cpp:335 src/im/keyboard/keyboard.conf.in.in:3 msgid "Keyboard" msgstr "" -#: src/im/keyboard/keyboard.cpp:231 +#: src/im/keyboard/keyboard.cpp:251 #, c++-format msgid "Keyboard - {0}" msgstr "" -#: src/im/keyboard/keyboard.cpp:250 +#: src/im/keyboard/keyboard.cpp:270 #, c++-format msgid "Keyboard - {0} - {1}" msgstr "" @@ -1593,7 +1608,7 @@ msgid "Kimpanel process:" msgstr "" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Last Candidate" msgstr "" @@ -1730,7 +1745,7 @@ msgid "Logoff" msgstr "" -#: src/im/keyboard/keyboard.h:89 +#: src/im/keyboard/keyboard.h:102 msgid "Long Press behavior" msgstr "" @@ -1739,31 +1754,31 @@ msgid "Mail Forward" msgstr "" -#: src/ui/classic/theme.h:118 +#: src/ui/classic/theme.h:116 msgid "Margin" msgstr "" -#: src/ui/classic/theme.h:80 +#: src/ui/classic/theme.h:78 msgid "Margin Bottom" msgstr "" -#: src/ui/classic/theme.h:74 +#: src/ui/classic/theme.h:72 msgid "Margin Left" msgstr "" -#: src/ui/classic/theme.h:76 +#: src/ui/classic/theme.h:74 msgid "Margin Right" msgstr "" -#: src/ui/classic/theme.h:78 +#: src/ui/classic/theme.h:76 msgid "Margin Top" msgstr "" -#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 +#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:184 msgid "Margin around all content" msgstr "" -#: src/ui/classic/theme.h:164 src/ui/classic/theme.h:188 +#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 msgid "Margin around text" msgstr "" @@ -1822,7 +1837,7 @@ msgid "Meeting" msgstr "" -#: src/ui/classic/theme.h:202 +#: src/ui/classic/theme.h:200 msgid "Menu" msgstr "" @@ -1831,15 +1846,15 @@ msgid "Menu" msgstr "" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Background" msgstr "" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Border" msgstr "" -#: src/ui/classic/classicui.h:122 +#: src/ui/classic/classicui.h:119 msgid "Menu Font" msgstr "" @@ -1848,15 +1863,15 @@ msgid "Menu PB" msgstr "" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Background" msgstr "" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Border" msgstr "" -#: src/ui/classic/theme.h:70 +#: src/ui/classic/theme.h:68 msgid "Menu Separator" msgstr "" @@ -1865,7 +1880,7 @@ msgid "Messenger" msgstr "" -#: src/ui/classic/theme.h:199 +#: src/ui/classic/theme.h:197 msgid "Metadata" msgstr "" @@ -1904,7 +1919,7 @@ msgid "My Sites" msgstr "" -#: src/ui/classic/theme.h:191 +#: src/ui/classic/theme.h:189 msgid "Name" msgstr "" @@ -1918,31 +1933,31 @@ msgid "News" msgstr "" -#: src/im/keyboard/keyboard.h:48 +#: src/im/keyboard/keyboard.h:60 msgid "Next Candidate" msgstr "" -#: src/ui/classic/theme.h:166 +#: src/ui/classic/theme.h:164 msgid "Next Page Button" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "No" msgstr "" -#: src/modules/clipboard/clipboard.cpp:355 +#: src/modules/clipboard/clipboard.cpp:371 msgid "No clipboard history." msgstr "" -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:28 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:24 msgid "None" msgstr "" -#: src/ui/classic/theme.h:135 src/ui/classic/theme.h:171 +#: src/ui/classic/theme.h:133 src/ui/classic/theme.h:169 msgid "Normal text color" msgstr "" -#: src/ui/classic/classicui.h:182 +#: src/ui/classic/classicui.h:179 msgid "" "Normally Wayland uses 96 as font DPI in combinition with the screen scale " "factor. This option allows you to override the font DPI. If the value is 0, " @@ -1966,11 +1981,11 @@ msgid "NumLock" msgstr "NumLock" -#: src/modules/clipboard/clipboard.h:48 +#: src/modules/clipboard/clipboard.h:54 msgid "Number of entries" msgstr "" -#: src/im/keyboard/keyboard.cpp:670 +#: src/im/keyboard/keyboard.cpp:691 msgid "" "Only emoji support is found. To enable spell checking, you may need to " "install spell check data for the language." @@ -1991,27 +2006,27 @@ msgid "Option" msgstr "" -#: src/ui/classic/theme.h:120 +#: src/ui/classic/theme.h:118 msgid "Overlay Clip Margin" msgstr "" -#: src/ui/classic/theme.h:110 +#: src/ui/classic/theme.h:108 msgid "Overlay Image" msgstr "" -#: src/ui/classic/theme.h:113 +#: src/ui/classic/theme.h:111 msgid "Overlay X offset" msgstr "" -#: src/ui/classic/theme.h:114 +#: src/ui/classic/theme.h:112 msgid "Overlay Y offset" msgstr "" -#: src/ui/classic/theme.h:112 +#: src/ui/classic/theme.h:110 msgid "Overlay position" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:167 +#: src/lib/fcitx/globalconfig.cpp:173 msgid "Override Xkb Option" msgstr "" @@ -2033,11 +2048,11 @@ msgid "Page Up" msgstr "" -#: src/ui/classic/theme.h:155 +#: src/ui/classic/theme.h:153 msgid "Page button vertical alignment" msgstr "" -#: src/im/keyboard/keyboard.h:37 +#: src/im/keyboard/keyboard.h:49 msgid "Page size" msgstr "" @@ -2046,7 +2061,7 @@ msgid "Paste" msgstr "" -#: src/modules/clipboard/clipboard.h:46 +#: src/modules/clipboard/clipboard.h:52 msgid "Paste Primary" msgstr "" @@ -2091,19 +2106,19 @@ msgid "Power Off" msgstr "כיבוי" -#: src/lib/fcitx/instance.cpp:839 +#: src/lib/fcitx/instance.cpp:848 msgid "Preedit" msgstr "" -#: src/lib/fcitx/instance.cpp:841 +#: src/lib/fcitx/instance.cpp:850 msgid "Preedit disabled" msgstr "" -#: src/lib/fcitx/instance.cpp:840 +#: src/lib/fcitx/instance.cpp:849 msgid "Preedit enabled" msgstr "" -#: src/ui/classic/classicui.h:130 src/ui/kimpanel/kimpanel.h:33 +#: src/ui/classic/classicui.h:127 src/ui/kimpanel/kimpanel.h:28 msgid "Prefer Text Icon" msgstr "" @@ -2111,11 +2126,11 @@ msgid "Presage" msgstr "" -#: src/im/keyboard/keyboard.h:42 +#: src/im/keyboard/keyboard.h:54 msgid "Prev Candidate" msgstr "" -#: src/ui/classic/theme.h:165 +#: src/ui/classic/theme.h:163 msgid "Prev Page Button" msgstr "" @@ -2129,7 +2144,7 @@ msgid "Print Screen" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "Program" msgstr "" @@ -2141,7 +2156,7 @@ msgid "Quick Phrase" msgstr "" -#: src/modules/quickphrase/quickphrase.cpp:471 +#: src/modules/quickphrase/quickphrase.cpp:470 msgid "Quick Phrase: " msgstr "" @@ -2170,6 +2185,10 @@ msgid "Reply" msgstr "" +#: src/lib/fcitx/globalconfig.cpp:143 +msgid "Reset state on Focus In" +msgstr "" + #: src/ui/classic/xcbtraywindow.cpp:39 #: src/modules/notificationitem/dbusmenu.cpp:261 msgid "Restart" @@ -2254,6 +2273,10 @@ msgid "Search" msgstr "חיפוש" +#: src/modules/clipboard/clipboard.h:76 +msgid "Seconds before clearing password" +msgstr "" + #: src/lib/fcitx-utils/key.cpp:233 msgctxt "Key name" msgid "Select" @@ -2271,7 +2294,7 @@ msgid "Select specific input method via keyboard" msgstr "" -#: src/ui/classic/theme.h:174 +#: src/ui/classic/theme.h:172 msgid "Selected Item text color" msgstr "" @@ -2280,22 +2303,22 @@ msgid "Send" msgstr "שליחה" -#: src/modules/wayland/waylandmodule.cpp:630 +#: src/modules/wayland/waylandmodule.cpp:660 msgid "" "Sending keyboard layout configuration to wayland compositor from Fcitx is " "not yet supported on current desktop. You may still use Fcitx's internal " "layout conversion by adding layout as input method to the input method group." msgstr "" -#: src/ui/classic/theme.h:182 +#: src/ui/classic/theme.h:180 msgid "Separator Background" msgstr "" -#: src/ui/classic/theme.h:168 +#: src/ui/classic/theme.h:166 msgid "Shadow Margin" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:141 +#: src/lib/fcitx/globalconfig.cpp:147 msgid "Share Input State" msgstr "" @@ -2309,47 +2332,47 @@ msgid "Shop" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:152 +#: src/lib/fcitx/globalconfig.cpp:158 msgid "Show Input Method Information when changing focus" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:149 +#: src/lib/fcitx/globalconfig.cpp:155 msgid "Show Input Method Information when switch input method" msgstr "" -#: src/ui/classic/classicui.h:135 +#: src/ui/classic/classicui.h:132 msgid "Show Layout Name In Icon" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:155 +#: src/lib/fcitx/globalconfig.cpp:161 msgid "Show compact input method information" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:158 +#: src/lib/fcitx/globalconfig.cpp:164 msgid "Show first input method information" msgstr "" -#: src/ui/classic/classicui.h:139 +#: src/ui/classic/classicui.h:136 msgid "" "Show layout name in icon if there is more than one active layout. If prefer " "text icon is set to true, this option will be ignored." msgstr "" -#: src/lib/fcitx/globalconfig.cpp:145 +#: src/lib/fcitx/globalconfig.cpp:151 msgid "Show preedit in application" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:189 +#: src/lib/fcitx/globalconfig.cpp:195 msgid "Show preedit text when typing password" msgstr "" -#: src/im/keyboard/keyboard.h:77 +#: src/im/keyboard/keyboard.h:89 msgid "" "Show preedit when composing, and commit dead key if there is no matching " "sequence." msgstr "" -#: src/lib/fcitx/globalconfig.cpp:64 +#: src/lib/fcitx/globalconfig.cpp:65 msgid "Skip first input method while enumerating" msgstr "" @@ -2363,11 +2386,11 @@ msgid "Space" msgstr "" -#: src/ui/classic/theme.h:176 +#: src/ui/classic/theme.h:174 msgid "Spacing" msgstr "" -#: src/im/keyboard/keyboard.h:79 src/modules/spell/spell.conf.in.in:3 +#: src/im/keyboard/keyboard.h:91 src/modules/spell/spell.conf.in.in:3 msgid "Spell" msgstr "" @@ -2391,8 +2414,8 @@ msgid "Standby" msgstr "" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:5 #: data/org.fcitx.Fcitx5.desktop.in.in:5 +#: data/fcitx5-wayland-launcher.desktop.in.in:5 msgid "Start Input Method" msgstr "" @@ -2405,7 +2428,7 @@ msgid "Stop" msgstr "" -#: src/ui/classic/theme.h:184 +#: src/ui/classic/theme.h:182 msgid "Sub Menu" msgstr "" @@ -2414,7 +2437,7 @@ msgid "Subtitle" msgstr "" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:25 msgid "Super" msgstr "" @@ -2433,17 +2456,17 @@ msgid "Suspend" msgstr "השהיה" -#: src/lib/fcitx/instance.cpp:451 src/lib/fcitx/instance.cpp:678 +#: src/lib/fcitx/instance.cpp:459 src/lib/fcitx/instance.cpp:687 #: src/modules/xcb/xcbconnection.cpp:556 msgid "Switch group" msgstr "" -#: src/lib/fcitx/instance.cpp:452 src/modules/xcb/xcbconnection.cpp:557 +#: src/lib/fcitx/instance.cpp:460 src/modules/xcb/xcbconnection.cpp:557 #, c++-format msgid "Switch group to {0}" msgstr "" -#: src/lib/fcitx/instance.cpp:679 +#: src/lib/fcitx/instance.cpp:688 #, c++-format msgid "Switched group to {0}" msgstr "" @@ -2467,7 +2490,7 @@ msgid "Task Panel" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:44 +#: src/lib/fcitx/globalconfig.cpp:45 msgid "Temporally switch between first and current Input Method" msgstr "" @@ -2495,27 +2518,27 @@ msgid "The script is run as ${1} (${2})." msgstr "" -#: src/ui/classic/classicui.h:155 +#: src/ui/classic/classicui.h:152 msgid "Theme" msgstr "" -#: src/ui/classic/classicui.h:101 +#: src/ui/classic/classicui.h:98 msgid "This is only effective when the tray icon is xembed." msgstr "" -#: src/ui/classic/theme.h:93 src/ui/classic/theme.h:101 +#: src/ui/classic/theme.h:91 src/ui/classic/theme.h:99 msgid "This option is only effective if image is not set." msgstr "" -#: src/ui/classic/classicui.h:194 +#: src/ui/classic/classicui.h:191 msgid "This option require support from wayland compositor." msgstr "" -#: src/ui/classic/classicui.h:173 +#: src/ui/classic/classicui.h:170 msgid "This option will be always disabled on XWayland." msgstr "" -#: src/ui/classic/theme.h:109 +#: src/ui/classic/theme.h:107 msgid "This value should be less than any of margin value." msgstr "" @@ -2539,7 +2562,7 @@ "freezing, see ${link2}." msgstr "" -#: src/lib/fcitx/globalconfig.cpp:132 +#: src/lib/fcitx/globalconfig.cpp:133 msgid "Toggle embedded preedit" msgstr "" @@ -2548,15 +2571,15 @@ msgid "Tools" msgstr "כלים" -#: src/ui/classic/theme.h:48 +#: src/ui/classic/theme.h:46 msgid "Top" msgstr "" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Center" msgstr "" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Left" msgstr "" @@ -2565,7 +2588,7 @@ msgid "Top Menu" msgstr "" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Top Right" msgstr "" @@ -2594,25 +2617,25 @@ msgid "Travel" msgstr "מסע" -#: src/ui/classic/classicui.h:124 +#: src/ui/classic/classicui.h:121 msgid "Tray Font" msgstr "" -#: src/ui/classic/classicui.h:126 +#: src/ui/classic/classicui.h:123 msgid "Tray Label Outline Color" msgstr "" -#: src/ui/classic/classicui.h:129 +#: src/ui/classic/classicui.h:126 msgid "Tray Label Text Color" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:34 +#: src/lib/fcitx/globalconfig.cpp:35 msgid "Trigger Input Method" msgstr "" #: src/modules/imselector/imselector.h:28 -#: src/modules/quickphrase/quickphrase.h:36 src/modules/unicode/unicode.h:31 -#: src/modules/clipboard/clipboard.h:42 +#: src/modules/quickphrase/quickphrase.h:32 src/modules/unicode/unicode.h:28 +#: src/modules/clipboard/clipboard.h:48 msgid "Trigger Key" msgstr "" @@ -2620,23 +2643,23 @@ msgid "Trigger Key for only current input context" msgstr "" -#: src/im/keyboard/keyboard.h:62 +#: src/im/keyboard/keyboard.h:74 msgid "Trigger hint mode" msgstr "" -#: src/im/keyboard/keyboard.h:67 +#: src/im/keyboard/keyboard.h:79 msgid "Trigger hint mode for one time" msgstr "" -#: src/im/keyboard/keyboard.h:82 +#: src/im/keyboard/keyboard.h:94 msgid "Type special characters with long press" msgstr "" -#: src/modules/unicode/unicode.h:36 +#: src/modules/unicode/unicode.h:33 msgid "Type unicode in Hex number" msgstr "" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:22 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:26 msgid "Typing with Fcitx and Kimpanel" msgstr "" @@ -2653,7 +2676,7 @@ msgid "Unicode" msgstr "" -#: src/modules/unicode/unicode.cpp:456 +#: src/modules/unicode/unicode.cpp:455 msgid "Unicode: " msgstr "" @@ -2662,27 +2685,27 @@ msgid "Up" msgstr "" -#: src/frontend/xim/xim.h:33 +#: src/frontend/xim/xim.h:27 msgid "Use On The Spot Style (Needs restarting)" msgstr "" -#: src/ui/classic/classicui.h:169 +#: src/ui/classic/classicui.h:166 msgid "Use Per Screen DPI on X11" msgstr "" -#: src/ui/classic/theme.h:151 +#: src/ui/classic/theme.h:149 msgid "Use all horizontal space for highlight when it is vertical list" msgstr "" -#: src/ui/classic/classicui.h:146 +#: src/ui/classic/classicui.h:143 msgid "Use input method language to display text" msgstr "" -#: src/ui/classic/classicui.h:116 +#: src/ui/classic/classicui.h:113 msgid "Use mouse wheel to go to prev or next page" msgstr "" -#: src/im/keyboard/keyboard.h:73 +#: src/im/keyboard/keyboard.h:85 msgid "Use new compose behavior" msgstr "" @@ -2700,7 +2723,7 @@ "environment:" msgstr "" -#: src/ui/classic/theme.h:192 +#: src/ui/classic/theme.h:190 msgid "Version" msgstr "" @@ -2708,7 +2731,7 @@ msgid "Version Line:" msgstr "" -#: src/ui/classic/classicui.h:114 +#: src/ui/classic/classicui.h:111 msgid "Vertical Candidate List" msgstr "" @@ -2763,7 +2786,7 @@ msgid "Wayland" msgstr "" -#: src/modules/wayland/waylandmodule.cpp:558 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Wayland Diagnose" msgstr "" @@ -2776,7 +2799,14 @@ msgid "WebCam" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:171 +#: src/modules/clipboard/clipboard.h:65 +msgid "" +"When copying password from a password manager, if the password manager " +"supports marking the clipboard content as password, this clipboard update " +"will be ignored." +msgstr "" + +#: src/lib/fcitx/globalconfig.cpp:177 msgid "" "Whether to override the xkb option from display server. It will not affect " "the xkb option send to display, but just the xkb options for custom xkb " @@ -2873,14 +2903,15 @@ #: data/fcitx5-configtool.sh:137 msgid "" "You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be " -"found. Now it will open config directory." +"found. The package name provides this binary is usually fcitx5-configtool. " +"Now it will open the configuration directory." msgstr "" #: data/fcitx5-configtool.sh:134 msgid "" -"You're currently running KDE, but KCModule for fcitx couldn't be found, the " -"package name of this KCModule is usually kcm-fcitx or kde-config-fcitx. Now " -"it will open config directory." +"You're currently running KDE, but KCModule for fcitx couldn't be found. The " +"package name of this KCModule is usually kcm-fcitx5, kde-config-fcitx5, or " +"fcitx5-configtool. Now it will open the configuration directory." msgstr "" #: data/fcitx5-diagnose.sh:1185 @@ -2941,17 +2972,17 @@ msgid "version:" msgstr "" -#: src/im/keyboard/keyboard.cpp:292 +#: src/im/keyboard/keyboard.cpp:312 #, c++-format msgid "{0} (Not Available)" msgstr "" -#: src/lib/fcitx/instance.cpp:409 +#: src/lib/fcitx/instance.cpp:417 #, c++-format msgid "{0} (Not available)" msgstr "" -#: src/lib/fcitx/instance.cpp:406 +#: src/lib/fcitx/instance.cpp:414 #, c++-format msgid "{0} ({1})" msgstr "" diff -Nru fcitx5-5.1.7/po/ja.po fcitx5-5.1.11/po/ja.po --- fcitx5-5.1.7/po/ja.po 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/po/ja.po 2024-10-09 03:48:05.000000000 +0800 @@ -6,15 +6,15 @@ # csslayer <wengxt@gmail.com>, 2017 # ABE Tsunehiko, 2017 # Takuro Onoue <kusanaginoturugi@gmail.com>, 2022 -# UTUMI Hirosi <utuhiro78@yahoo.co.jp>, 2023 +# UTUMI Hirosi <utuhiro78@yahoo.co.jp>, 2024 # msgid "" msgstr "" "Project-Id-Version: fcitx5\n" "Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" -"POT-Creation-Date: 2024-01-14 20:24+0000\n" +"POT-Creation-Date: 2024-06-12 20:24+0000\n" "PO-Revision-Date: 2017-11-23 04:14+0000\n" -"Last-Translator: UTUMI Hirosi <utuhiro78@yahoo.co.jp>, 2023\n" +"Last-Translator: UTUMI Hirosi <utuhiro78@yahoo.co.jp>, 2024\n" "Language-Team: Japanese (https://app.transifex.com/fcitx/teams/12005/ja/)\n" "Language: ja\n" "MIME-Version: 1.0\n" @@ -50,11 +50,11 @@ msgid "${1} works properly." msgstr "${1} は正常に動作しています。" -#: src/lib/fcitx/instance.cpp:411 +#: src/lib/fcitx/instance.cpp:419 msgid "(Not available)" msgstr "(使用不可)" -#: src/modules/unicode/unicode.cpp:458 +#: src/modules/unicode/unicode.cpp:457 msgid "(Type to search unicode by code or description)" msgstr "(コードまたは説明からUnicodeを検索する)" @@ -78,23 +78,31 @@ msgid "/XIM" msgstr "/XIM" -#: src/modules/unicode/charselectdata.cpp:215 +#: src/modules/clipboard/clipboard.h:80 +msgid "0 means never clear password." +msgstr "0 の場合はパスワードをクリアしません。" + +#: src/modules/unicode/charselectdata.cpp:213 msgid "<Low Surrogate>" msgstr "<Low Surrogate>" -#: src/modules/unicode/charselectdata.cpp:211 +#: src/modules/unicode/charselectdata.cpp:209 msgid "<Non Private Use High Surrogate>" msgstr "<Non Private Use High Surrogate>" -#: src/modules/unicode/charselectdata.cpp:213 +#: src/modules/clipboard/clipboard.cpp:116 +msgid "<Passowrd>" +msgstr "<Passowrd>" + +#: src/modules/unicode/charselectdata.cpp:211 msgid "<Private Use High Surrogate>" msgstr "<Private Use High Surrogate>" -#: src/modules/unicode/charselectdata.cpp:217 +#: src/modules/unicode/charselectdata.cpp:215 msgid "<Private Use>" msgstr "<Private Use>" -#: src/modules/unicode/charselectdata.cpp:247 +#: src/modules/unicode/charselectdata.cpp:245 msgid "<not assigned>" msgstr "<not assigned>" @@ -102,15 +110,15 @@ msgid "A virtual keyboard backend based on DBus" msgstr "DBus ベースの仮想キーボードバックエンド" -#: src/ui/classic/theme.h:204 +#: src/ui/classic/theme.h:202 msgid "Accent Colors" msgstr "アクセントカラー" -#: src/lib/fcitx/globalconfig.cpp:82 +#: src/lib/fcitx/globalconfig.cpp:83 msgid "Activate Input Method" msgstr "入力メソッドを有効にする" -#: src/lib/fcitx/globalconfig.cpp:138 +#: src/lib/fcitx/globalconfig.cpp:139 msgid "Active By Default" msgstr "デフォルトで有効にする" @@ -140,7 +148,7 @@ msgid "Adjust Brightness" msgstr "明るさ調整" -#: src/lib/fcitx/globalconfig.cpp:26 +#: src/lib/fcitx/globalconfig.cpp:27 msgid "All" msgstr "すべて" @@ -156,19 +164,19 @@ msgid "All locales:" msgstr "すべてのロケール:" -#: src/modules/xcb/xcbmodule.h:30 +#: src/modules/xcb/xcbmodule.h:26 msgid "Allow Overriding System XKB Settings" msgstr "システム XKB 設定のオーバーライドを許可する" -#: src/modules/wayland/waylandmodule.h:36 +#: src/modules/wayland/waylandmodule.h:35 msgid "Allow Overriding System XKB Settings (Only support KDE 5)" msgstr "システムの XKB 設定より優先する (KDE 5 のみサポート)" -#: src/lib/fcitx/globalconfig.cpp:186 +#: src/lib/fcitx/globalconfig.cpp:192 msgid "Allow input method in the password field" msgstr "パスワード欄に入力メソッドを許可する" -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:25 msgid "Alt" msgstr "Alt" @@ -177,7 +185,7 @@ msgid "Alt" msgstr "Alt" -#: src/modules/xcb/xcbmodule.h:33 +#: src/modules/xcb/xcbmodule.h:29 msgid "Always set layout to be only group layout" msgstr "常にレイアウトをグループレイアウトのみにする" @@ -191,7 +199,7 @@ msgid "Application Right" msgstr "右側のアプリケーション" -#: src/im/keyboard/keyboard.h:87 +#: src/im/keyboard/keyboard.h:99 msgid "Applications disabled for long press" msgstr "長押しを無効にするアプリケーション" @@ -210,7 +218,7 @@ msgid "Audio Repeat" msgstr "オーディオリピート" -#: src/ui/classic/theme.h:193 +#: src/ui/classic/theme.h:191 msgid "Author" msgstr "作者" @@ -233,11 +241,11 @@ msgid "Backends" msgstr "バックエンド" -#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 +#: src/ui/classic/theme.h:156 src/ui/classic/theme.h:176 msgid "Background" msgstr "背景" -#: src/ui/classic/theme.h:85 +#: src/ui/classic/theme.h:83 msgid "Background Image" msgstr "背景画像" @@ -259,7 +267,7 @@ msgid "Beginner's Guide" msgstr "ビギナーズガイド" -#: src/lib/fcitx/globalconfig.cpp:203 +#: src/lib/fcitx/globalconfig.cpp:209 msgid "Behavior" msgstr "動作" @@ -273,11 +281,11 @@ msgid "Bluetooth" msgstr "Bluetooth" -#: src/ui/classic/theme.h:148 +#: src/ui/classic/theme.h:146 msgid "Blur Margin" msgstr "ブラーのマージン" -#: src/ui/classic/theme.h:147 +#: src/ui/classic/theme.h:145 msgid "Blur mask" msgstr "ブラーマスク" @@ -286,27 +294,27 @@ msgid "Book" msgstr "Book" -#: src/ui/classic/theme.h:97 +#: src/ui/classic/theme.h:95 msgid "Border Color" msgstr "ボーダーの色" -#: src/ui/classic/theme.h:105 +#: src/ui/classic/theme.h:103 msgid "Border width" msgstr "ボーダーの幅" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Bottom" msgstr "下" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Center" msgstr "中央下" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Left" msgstr "左下" -#: src/ui/classic/theme.h:39 +#: src/ui/classic/theme.h:37 msgid "Bottom Right" msgstr "右下" @@ -330,7 +338,7 @@ msgid "Cancel" msgstr "キャンセル" -#: src/im/keyboard/longpress.h:19 +#: src/im/keyboard/longpress.h:23 msgid "Candidates" msgstr "候補" @@ -420,15 +428,15 @@ msgid "CapsLock" msgstr "CapsLock" -#: src/ui/classic/theme.h:37 src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:35 src/ui/classic/theme.h:47 msgid "Center" msgstr "中央" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Center Left" msgstr "中央左" -#: src/ui/classic/theme.h:37 +#: src/ui/classic/theme.h:35 msgid "Center Right" msgstr "中央右" @@ -436,11 +444,11 @@ msgid "Change Fcitx 5 Configuration" msgstr "Fcitx5 設定を変更" -#: src/ui/classic/theme.h:183 +#: src/ui/classic/theme.h:181 msgid "Check box" msgstr "チェックボックス" -#: src/im/keyboard/keyboard.h:56 src/modules/quickphrase/quickphrase.h:41 +#: src/im/keyboard/keyboard.h:68 src/modules/quickphrase/quickphrase.h:37 msgid "Choose key modifier" msgstr "キーモディファイアーを選択" @@ -453,7 +461,7 @@ msgid "Clear" msgstr "クリア" -#: src/ui/classic/theme.h:131 +#: src/ui/classic/theme.h:129 msgid "Click Margin" msgstr "クリックマージン" @@ -461,7 +469,7 @@ msgid "Clipboard" msgstr "クリップボード" -#: src/modules/clipboard/clipboard.cpp:353 +#: src/modules/clipboard/clipboard.cpp:369 msgid "Clipboard (Press BackSpace/Delete to clear history):" msgstr "クリップボード (BackSpace/Delete で履歴をクリア)" @@ -475,7 +483,7 @@ msgid "Code input" msgstr "コード入力" -#: src/ui/classic/theme.h:89 +#: src/ui/classic/theme.h:87 msgid "Color" msgstr "色" @@ -484,19 +492,19 @@ msgid "Community" msgstr "コミュニティ" -#: src/im/keyboard/keyboard.cpp:685 +#: src/im/keyboard/keyboard.cpp:706 msgid "Completion" msgstr "補完" -#: src/im/keyboard/keyboard.cpp:676 +#: src/im/keyboard/keyboard.cpp:697 msgid "Completion is disabled." msgstr "補完は無効です。" -#: src/im/keyboard/keyboard.cpp:679 +#: src/im/keyboard/keyboard.cpp:700 msgid "Completion is enabled temporarily." msgstr "補完は一時的に有効です。" -#: src/im/keyboard/keyboard.cpp:681 +#: src/im/keyboard/keyboard.cpp:702 msgid "Completion is enabled." msgstr "補完は有効です。" @@ -533,7 +541,7 @@ msgid "Configure" msgstr "設定" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:25 msgid "Control" msgstr "Control" @@ -567,7 +575,7 @@ msgid "Custom" msgstr "カスタム" -#: src/lib/fcitx/globalconfig.cpp:176 +#: src/lib/fcitx/globalconfig.cpp:182 msgid "Custom Xkb Option" msgstr "カスタム XKB オプション" @@ -601,11 +609,11 @@ msgid "DOS" msgstr "DOS" -#: src/ui/classic/classicui.h:158 +#: src/ui/classic/classicui.h:155 msgid "Dark Theme" msgstr "ダークテーマ" -#: src/lib/fcitx/globalconfig.cpp:91 +#: src/lib/fcitx/globalconfig.cpp:92 msgid "Deactivate Input Method" msgstr "入力メソッドをオフにする" @@ -613,7 +621,7 @@ msgid "Debug information from dbus:" msgstr "dbus からのデバッグ情報:" -#: src/lib/fcitx/inputmethodmanager.cpp:138 src/lib/fcitx/instance.cpp:358 +#: src/lib/fcitx/inputmethodmanager.cpp:153 src/lib/fcitx/instance.cpp:366 #: src/ui/classic/themes/default/theme.conf.in:3 msgid "Default" msgstr "デフォルト" @@ -622,23 +630,23 @@ msgid "Default Dark" msgstr "デフォルトのダーク" -#: src/lib/fcitx/globalconfig.cpp:127 +#: src/lib/fcitx/globalconfig.cpp:128 msgid "Default Next Candidate" msgstr "デフォルトの次候補" -#: src/lib/fcitx/globalconfig.cpp:111 +#: src/lib/fcitx/globalconfig.cpp:112 msgid "Default Next page" msgstr "デフォルトの次ページ" -#: src/lib/fcitx/globalconfig.cpp:121 +#: src/lib/fcitx/globalconfig.cpp:122 msgid "Default Previous Candidate" msgstr "デフォルトの前候補" -#: src/lib/fcitx/globalconfig.cpp:99 +#: src/lib/fcitx/globalconfig.cpp:100 msgid "Default Previous page" msgstr "デフォルトの前ページ" -#: src/lib/fcitx/globalconfig.cpp:160 +#: src/lib/fcitx/globalconfig.cpp:166 msgid "Default page size" msgstr "デフォルトのページサイズ" @@ -647,7 +655,7 @@ msgid "Delete" msgstr "削除" -#: src/ui/classic/theme.h:195 +#: src/ui/classic/theme.h:193 msgid "Description" msgstr "詳細" @@ -659,7 +667,7 @@ msgid "Desktop environment is ${1}." msgstr "デスクトップ環境は ${1} です。" -#: src/modules/wayland/waylandmodule.cpp:586 +#: src/modules/wayland/waylandmodule.cpp:616 msgid "" "Detect GTK_IM_MODULE and QT_IM_MODULE being set and Wayland Input method " "frontend is working. It is recommended to unset GTK_IM_MODULE and " @@ -672,7 +680,7 @@ "詳しくは https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma をご覧" "ください。" -#: src/modules/wayland/waylandmodule.cpp:615 +#: src/modules/wayland/waylandmodule.cpp:645 msgid "" "Detect GTK_IM_MODULE being set and Wayland Input method frontend is working. " "It is recommended to unset GTK_IM_MODULE and use Wayland input method " @@ -695,10 +703,14 @@ msgid "Display" msgstr "ディスプレイ" -#: src/modules/notifications/notifications.cpp:204 +#: src/modules/notifications/notifications.cpp:201 msgid "Do not show again" msgstr "次回から表示しない" +#: src/modules/clipboard/clipboard.h:61 +msgid "Do not show password from password managers" +msgstr "パスワードマネージャーからのパスワードを表示しない" + #: src/lib/fcitx-utils/key.cpp:162 msgctxt "Key name" msgid "Documents" @@ -709,7 +721,7 @@ msgid "Down" msgstr "下" -#: src/modules/quickphrase/quickphrase.h:47 +#: src/modules/quickphrase/quickphrase.h:43 msgid "Editor" msgstr "エディタ" @@ -732,31 +744,31 @@ msgid "Emoji" msgstr "絵文字" -#: src/im/keyboard/longpress.h:17 +#: src/im/keyboard/longpress.h:21 msgid "Enable" msgstr "有効" -#: src/ui/classic/theme.h:145 +#: src/ui/classic/theme.h:143 msgid "Enable Blur on KWin" msgstr "KWin でブラーを有効にする" -#: src/modules/quickphrase/quickphrase.h:43 +#: src/modules/quickphrase/quickphrase.h:39 msgid "Enable Spell check" msgstr "スペルチェックを有効にする" -#: src/im/keyboard/keyboard.h:51 +#: src/im/keyboard/keyboard.h:63 msgid "Enable emoji in hint" msgstr "絵文字のヒントを有効にする" -#: src/im/keyboard/keyboard.h:54 +#: src/im/keyboard/keyboard.h:66 msgid "Enable emoji in quickphrase" msgstr "絵文字のクイックフレーズを有効にする" -#: src/ui/classic/classicui.h:190 +#: src/ui/classic/classicui.h:187 msgid "Enable fractional scale under Wayland" msgstr "Wayland で分数スケールを有効にする" -#: src/im/keyboard/keyboard.h:59 +#: src/im/keyboard/keyboard.h:71 msgid "Enable hint by default" msgstr "デフォルトでヒントを有効にする" @@ -769,27 +781,27 @@ msgid "End" msgstr "End" -#: src/im/keyboard/longpress.h:26 +#: src/im/keyboard/longpress.h:30 msgid "Entries" msgstr "エントリー" -#: src/lib/fcitx/globalconfig.cpp:58 +#: src/lib/fcitx/globalconfig.cpp:59 msgid "Enumerate Input Method Backward" msgstr "前の入力メソッドに切り替える" -#: src/lib/fcitx/globalconfig.cpp:51 +#: src/lib/fcitx/globalconfig.cpp:52 msgid "Enumerate Input Method Forward" msgstr "次の入力メソッドに切り替える" -#: src/lib/fcitx/globalconfig.cpp:75 +#: src/lib/fcitx/globalconfig.cpp:76 msgid "Enumerate Input Method Group Backward" msgstr "前の入力メソッドグループに切り替える" -#: src/lib/fcitx/globalconfig.cpp:68 +#: src/lib/fcitx/globalconfig.cpp:69 msgid "Enumerate Input Method Group Forward" msgstr "次の入力メソッドグループに切り替える" -#: src/lib/fcitx/globalconfig.cpp:40 +#: src/lib/fcitx/globalconfig.cpp:41 msgid "Enumerate when press trigger key repeatedly" msgstr "トリガーキーを押すたびに切り替える" @@ -844,7 +856,7 @@ msgid "Failed to find ${1} in the output of ${2}" msgstr "${1} の出力に ${2} が見つかりません。" -#: src/modules/quickphrase/quickphrase.h:45 +#: src/modules/quickphrase/quickphrase.h:41 msgid "Fallback Spell check language" msgstr "フォールバック時のスペルチェック言語" @@ -853,7 +865,7 @@ msgid "Favorites" msgstr "お気に入り" -#: src/modules/wayland/waylandmodule.cpp:558 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Fcitx" msgstr "Fcitx" @@ -866,9 +878,9 @@ msgid "Fcitx 5 Configuration" msgstr "Fcitx5 設定" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:3 +#: data/fcitx5-wayland-launcher.desktop.in.in:3 msgid "Fcitx 5 Wayland Launcher (Experimental)" -msgstr "" +msgstr "Fcitx 5 Wayland ランチャー(実験的)" #: data/fcitx5-diagnose.sh:1564 msgid "Fcitx Addons:" @@ -882,7 +894,7 @@ msgid "Fcitx State:" msgstr "Fcitx 状態:" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:9 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:12 msgid "" "Fcitx is an input method framework. It can help you to type your own " "language. It also features variant choice of addons that improve your typing " @@ -891,7 +903,7 @@ "Fcitx は入力メソッドフレームワークです。自分の言語を入力するのに役立ちます。" "また、タイピング体験を向上させるさまざまなアドオンの選択肢も備えています。" -#: src/modules/wayland/waylandmodule.cpp:573 +#: src/modules/wayland/waylandmodule.cpp:603 msgid "" "Fcitx should be launched by KWin under KDE Wayland in order to use Wayland " "input method frontend. This can improve the experience when using Fcitx on " @@ -927,17 +939,17 @@ msgid "Find" msgstr "Find" -#: src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:47 msgid "First Candidate" msgstr "最初の候補" -#: src/ui/classic/classicui.h:164 +#: src/ui/classic/classicui.h:161 msgid "Follow system accent color if it is supported by theme and desktop" msgstr "" "テーマとデスクトップでサポートされている場合は、システムのアクセントカラーに" -"従います" +"従う" -#: src/ui/classic/classicui.h:160 +#: src/ui/classic/classicui.h:157 msgid "Follow system light/dark color scheme" msgstr "システムのライト/ダーク配色に従う" @@ -954,11 +966,11 @@ "によるテキスト入力サポートを使用している場合は、これは重大なエラーではありま" "せん。" -#: src/ui/classic/classicui.h:120 +#: src/ui/classic/classicui.h:117 msgid "Font" msgstr "フォント" -#: src/ui/classic/classicui.h:150 +#: src/ui/classic/classicui.h:147 msgid "" "For example, display character with Chinese variant when using Pinyin and " "Japanese variant when using Anthy. The font configuration needs to support " @@ -968,13 +980,13 @@ "ている場合は日本語の書体で文字を表示します。この機能を使用するには多言語フォ" "ントを指定する必要があります。" -#: src/modules/wayland/waylandmodule.cpp:641 +#: src/modules/wayland/waylandmodule.cpp:671 msgid "For more details see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland" msgstr "" "詳細については、https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland を参照して" "ください。" -#: src/ui/classic/classicui.h:178 +#: src/ui/classic/classicui.h:175 msgid "Force font DPI on Wayland" msgstr "フォント DPI を Wayland で強制する" @@ -1082,12 +1094,12 @@ msgid "Group" msgstr "グループ" -#: src/lib/fcitx/instance.cpp:415 +#: src/lib/fcitx/instance.cpp:423 #, c++-format msgid "Group {0}: {1}" msgstr "グループ {0}: {1}" -#: src/lib/fcitx/instance.cpp:360 +#: src/lib/fcitx/instance.cpp:368 #, c++-format msgid "Group {}" msgstr "グループ {}" @@ -1183,31 +1195,35 @@ msgid "Hibernate" msgstr "ハイバネート" -#: src/modules/notifications/notifications.h:28 +#: src/modules/notifications/notifications.h:26 msgid "Hidden Notifications" msgstr "隠す通知" -#: src/ui/classic/theme.h:116 +#: src/modules/clipboard/clipboard.h:70 +msgid "Hidden clipboard content that contains a password" +msgstr "パスワードを含んでいる、非表示のクリップボードの内容" + +#: src/ui/classic/theme.h:114 msgid "Hide overlay if size does not fit" msgstr "サイズが合わない場合はオーバーレイを非表示にする" -#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:180 +#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 msgid "Highlight Background" msgstr "ハイライト背景" -#: src/ui/classic/theme.h:140 +#: src/ui/classic/theme.h:138 msgid "Highlight Background color" msgstr "ハイライト背景色" -#: src/ui/classic/theme.h:143 +#: src/ui/classic/theme.h:141 msgid "Highlight Candidate Color" msgstr "ハイライト候補色" -#: src/ui/classic/theme.h:126 +#: src/ui/classic/theme.h:124 msgid "Highlight Click Margin" msgstr "ハイライトクリックマージン" -#: src/ui/classic/theme.h:138 +#: src/ui/classic/theme.h:136 msgid "Highlight text color" msgstr "ハイライトテキスト色" @@ -1250,7 +1266,7 @@ msgid "Hot Links" msgstr "ホットリンク" -#: src/lib/fcitx/globalconfig.cpp:201 +#: src/lib/fcitx/globalconfig.cpp:207 msgid "Hotkey" msgstr "ホットキー" @@ -1272,7 +1288,7 @@ msgid "IBus Frontend" msgstr "IBus フロントエンド" -#: src/lib/fcitx/globalconfig.cpp:197 +#: src/lib/fcitx/globalconfig.cpp:203 msgid "" "If value is 0, the user data may only be saved when fcitx quits (e.g. " "logout)." @@ -1301,17 +1317,16 @@ "${g36_disable_ibus} コマンドを実行してください。詳細は ${link} で確認してくだ" "さい。" -#: src/ui/classic/theme.h:129 +#: src/ui/classic/theme.h:127 msgid "Image" msgstr "画像" -#: src/im/keyboard/keyboard.cpp:684 src/lib/fcitx/instance.cpp:450 -#: src/lib/fcitx/instance.cpp:677 src/lib/fcitx/instance.cpp:839 -#: src/modules/notificationitem/notificationitem.cpp:147 -#: src/modules/notificationitem/notificationitem.cpp:235 -#: src/modules/xcb/xcbconnection.cpp:555 -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:4 -#: data/org.fcitx.Fcitx5.desktop.in.in:4 +#: src/im/keyboard/keyboard.cpp:705 src/lib/fcitx/instance.cpp:458 +#: src/lib/fcitx/instance.cpp:686 src/lib/fcitx/instance.cpp:848 +#: src/modules/notificationitem/notificationitem.cpp:142 +#: src/modules/notificationitem/notificationitem.cpp:230 +#: src/modules/xcb/xcbconnection.cpp:555 data/org.fcitx.Fcitx5.desktop.in.in:4 +#: data/fcitx5-wayland-launcher.desktop.in.in:4 #: data/org.fcitx.Fcitx5.metainfo.xml.in:7 msgid "Input Method" msgstr "入力メソッド" @@ -1328,27 +1343,27 @@ msgid "Input Methods:" msgstr "入力メソッド:" -#: src/ui/classic/theme.h:201 +#: src/ui/classic/theme.h:199 msgid "Input Panel" msgstr "入力パネル" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Background" msgstr "入力パネルの背景" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Border" msgstr "入力パネルの枠線" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight" msgstr "入力パネルのハイライト" -#: src/ui/classic/theme.h:66 +#: src/ui/classic/theme.h:64 msgid "Input Panel Highlight Candidate Background" msgstr "入力パネルのハイライト候補の背景" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight Candidate Border" msgstr "入力パネルのハイライト候補の枠線" @@ -1356,7 +1371,7 @@ msgid "Input method selector" msgstr "入力メソッドセレクター" -#: src/lib/fcitx/globalconfig.cpp:103 src/lib/fcitx/globalconfig.cpp:115 +#: src/lib/fcitx/globalconfig.cpp:104 src/lib/fcitx/globalconfig.cpp:116 msgid "" "Input methods may have different setup in their own configuration. This is " "commonly used by modules like clipboard or quickphrase." @@ -1369,7 +1384,7 @@ msgid "Insert" msgstr "挿入" -#: src/lib/fcitx/globalconfig.cpp:193 +#: src/lib/fcitx/globalconfig.cpp:199 msgid "Interval of saving user data in minutes" msgstr "ユーザーデータを保存する間隔(分)" @@ -1385,7 +1400,7 @@ "コンポジターが ${1} で使用されるテキスト入力プロトコルを完全にサポートしてい" "る場合は、${1} に組み込まれた Wayland IM モジュールを使用してもかまいません。" -#: src/modules/wayland/waylandmodule.cpp:598 +#: src/modules/wayland/waylandmodule.cpp:628 msgid "" "It is recommended to install Input Method Panel GNOME Shell Extensions to " "provide the input method popup. https://extensions.gnome.org/extension/261/" @@ -1404,7 +1419,7 @@ msgid "KDE Input Method Panel" msgstr "KDE 入力メソッドパネル" -#: src/ui/classic/classicui.cpp:280 +#: src/ui/classic/classicui.cpp:278 msgid "KDE Plasma (Experimental)" msgstr "KDE Plasma(実験的)" @@ -1428,20 +1443,20 @@ msgid "Katakana" msgstr "カタカナ" -#: src/im/keyboard/longpress.h:16 +#: src/im/keyboard/longpress.h:20 msgid "Key" msgstr "キー" -#: src/im/keyboard/keyboard.cpp:315 src/im/keyboard/keyboard.conf.in.in:3 +#: src/im/keyboard/keyboard.cpp:335 src/im/keyboard/keyboard.conf.in.in:3 msgid "Keyboard" msgstr "キーボード" -#: src/im/keyboard/keyboard.cpp:231 +#: src/im/keyboard/keyboard.cpp:251 #, c++-format msgid "Keyboard - {0}" msgstr "キーボード - {0}" -#: src/im/keyboard/keyboard.cpp:250 +#: src/im/keyboard/keyboard.cpp:270 #, c++-format msgid "Keyboard - {0} - {1}" msgstr "キーボード - {0} - {1}" @@ -1649,7 +1664,7 @@ msgid "Kimpanel process:" msgstr "Kimpanel のプロセス:" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Last Candidate" msgstr "最後の候補" @@ -1786,7 +1801,7 @@ msgid "Logoff" msgstr "ログオフ" -#: src/im/keyboard/keyboard.h:89 +#: src/im/keyboard/keyboard.h:102 msgid "Long Press behavior" msgstr "長押し時の動作" @@ -1795,31 +1810,31 @@ msgid "Mail Forward" msgstr "メール転送" -#: src/ui/classic/theme.h:118 +#: src/ui/classic/theme.h:116 msgid "Margin" msgstr "マージン " -#: src/ui/classic/theme.h:80 +#: src/ui/classic/theme.h:78 msgid "Margin Bottom" msgstr "下マージン" -#: src/ui/classic/theme.h:74 +#: src/ui/classic/theme.h:72 msgid "Margin Left" msgstr "左マージン" -#: src/ui/classic/theme.h:76 +#: src/ui/classic/theme.h:74 msgid "Margin Right" msgstr "右マージン" -#: src/ui/classic/theme.h:78 +#: src/ui/classic/theme.h:76 msgid "Margin Top" msgstr "上マージン" -#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 +#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:184 msgid "Margin around all content" msgstr "全コンテンツの周りのマージン" -#: src/ui/classic/theme.h:164 src/ui/classic/theme.h:188 +#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 msgid "Margin around text" msgstr "テキストの周りのマージン" @@ -1878,7 +1893,7 @@ msgid "Meeting" msgstr "ミーティング" -#: src/ui/classic/theme.h:202 +#: src/ui/classic/theme.h:200 msgid "Menu" msgstr "メニュー" @@ -1887,15 +1902,15 @@ msgid "Menu" msgstr "メニュー" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Background" msgstr "メニューの背景" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Border" msgstr "メニューの枠線" -#: src/ui/classic/classicui.h:122 +#: src/ui/classic/classicui.h:119 msgid "Menu Font" msgstr "メニューフォント" @@ -1904,15 +1919,15 @@ msgid "Menu PB" msgstr "PB メニュー" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Background" msgstr "メニュー選択項目の背景" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Border" msgstr "メニュー選択項目の枠線" -#: src/ui/classic/theme.h:70 +#: src/ui/classic/theme.h:68 msgid "Menu Separator" msgstr "メニューの区切り" @@ -1921,7 +1936,7 @@ msgid "Messenger" msgstr "Messenger" -#: src/ui/classic/theme.h:199 +#: src/ui/classic/theme.h:197 msgid "Metadata" msgstr "メタデータ" @@ -1960,7 +1975,7 @@ msgid "My Sites" msgstr "個人用サイト" -#: src/ui/classic/theme.h:191 +#: src/ui/classic/theme.h:189 msgid "Name" msgstr "名前" @@ -1974,31 +1989,31 @@ msgid "News" msgstr "ニュース" -#: src/im/keyboard/keyboard.h:48 +#: src/im/keyboard/keyboard.h:60 msgid "Next Candidate" msgstr "次の候補" -#: src/ui/classic/theme.h:166 +#: src/ui/classic/theme.h:164 msgid "Next Page Button" msgstr "次ページボタン" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "No" msgstr "いいえ" -#: src/modules/clipboard/clipboard.cpp:355 +#: src/modules/clipboard/clipboard.cpp:371 msgid "No clipboard history." msgstr "クリップボード履歴がありません。" -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:28 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:24 msgid "None" msgstr "なし" -#: src/ui/classic/theme.h:135 src/ui/classic/theme.h:171 +#: src/ui/classic/theme.h:133 src/ui/classic/theme.h:169 msgid "Normal text color" msgstr "ノーマルテキスト色" -#: src/ui/classic/classicui.h:182 +#: src/ui/classic/classicui.h:179 msgid "" "Normally Wayland uses 96 as font DPI in combinition with the screen scale " "factor. This option allows you to override the font DPI. If the value is 0, " @@ -2025,11 +2040,11 @@ msgid "NumLock" msgstr "NumLock" -#: src/modules/clipboard/clipboard.h:48 +#: src/modules/clipboard/clipboard.h:54 msgid "Number of entries" msgstr "エントリー数" -#: src/im/keyboard/keyboard.cpp:670 +#: src/im/keyboard/keyboard.cpp:691 msgid "" "Only emoji support is found. To enable spell checking, you may need to " "install spell check data for the language." @@ -2052,27 +2067,27 @@ msgid "Option" msgstr "オプション" -#: src/ui/classic/theme.h:120 +#: src/ui/classic/theme.h:118 msgid "Overlay Clip Margin" msgstr "クリップマージンのオーバーレイ" -#: src/ui/classic/theme.h:110 +#: src/ui/classic/theme.h:108 msgid "Overlay Image" msgstr "オーバーレイ画像" -#: src/ui/classic/theme.h:113 +#: src/ui/classic/theme.h:111 msgid "Overlay X offset" msgstr "Xオフセットのオーバーレイ" -#: src/ui/classic/theme.h:114 +#: src/ui/classic/theme.h:112 msgid "Overlay Y offset" msgstr "Yオフセットのオーバーレイ" -#: src/ui/classic/theme.h:112 +#: src/ui/classic/theme.h:110 msgid "Overlay position" msgstr "オーバーレイの位置" -#: src/lib/fcitx/globalconfig.cpp:167 +#: src/lib/fcitx/globalconfig.cpp:173 msgid "Override Xkb Option" msgstr "XKB オプションより優先する" @@ -2094,11 +2109,11 @@ msgid "Page Up" msgstr "Page Up" -#: src/ui/classic/theme.h:155 +#: src/ui/classic/theme.h:153 msgid "Page button vertical alignment" msgstr "ページボタンの垂直方向の配置" -#: src/im/keyboard/keyboard.h:37 +#: src/im/keyboard/keyboard.h:49 msgid "Page size" msgstr "ページサイズ" @@ -2107,7 +2122,7 @@ msgid "Paste" msgstr "Paste" -#: src/modules/clipboard/clipboard.h:46 +#: src/modules/clipboard/clipboard.h:52 msgid "Paste Primary" msgstr "プライマリの貼り付け" @@ -2157,19 +2172,19 @@ msgid "Power Off" msgstr "電源オフ" -#: src/lib/fcitx/instance.cpp:839 +#: src/lib/fcitx/instance.cpp:848 msgid "Preedit" msgstr "プリエディット" -#: src/lib/fcitx/instance.cpp:841 +#: src/lib/fcitx/instance.cpp:850 msgid "Preedit disabled" msgstr "プリエディット無効" -#: src/lib/fcitx/instance.cpp:840 +#: src/lib/fcitx/instance.cpp:849 msgid "Preedit enabled" msgstr "プリエディット有効" -#: src/ui/classic/classicui.h:130 src/ui/kimpanel/kimpanel.h:33 +#: src/ui/classic/classicui.h:127 src/ui/kimpanel/kimpanel.h:28 msgid "Prefer Text Icon" msgstr "テキストアイコンを優先する" @@ -2177,11 +2192,11 @@ msgid "Presage" msgstr "Presage" -#: src/im/keyboard/keyboard.h:42 +#: src/im/keyboard/keyboard.h:54 msgid "Prev Candidate" msgstr "前の候補" -#: src/ui/classic/theme.h:165 +#: src/ui/classic/theme.h:163 msgid "Prev Page Button" msgstr "前ページのボタン" @@ -2195,7 +2210,7 @@ msgid "Print Screen" msgstr "プリントスクリーン" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "Program" msgstr "プログラム" @@ -2207,7 +2222,7 @@ msgid "Quick Phrase" msgstr "クイックフレーズ" -#: src/modules/quickphrase/quickphrase.cpp:471 +#: src/modules/quickphrase/quickphrase.cpp:470 msgid "Quick Phrase: " msgstr "クイックフレーズ:" @@ -2236,6 +2251,10 @@ msgid "Reply" msgstr "リプライ" +#: src/lib/fcitx/globalconfig.cpp:143 +msgid "Reset state on Focus In" +msgstr "フォーカス時に状態をリセット" + #: src/ui/classic/xcbtraywindow.cpp:39 #: src/modules/notificationitem/dbusmenu.cpp:261 msgid "Restart" @@ -2320,6 +2339,10 @@ msgid "Search" msgstr "検索" +#: src/modules/clipboard/clipboard.h:76 +msgid "Seconds before clearing password" +msgstr "パスワードをクリアするまでの秒数" + #: src/lib/fcitx-utils/key.cpp:233 msgctxt "Key name" msgid "Select" @@ -2337,7 +2360,7 @@ msgid "Select specific input method via keyboard" msgstr "キーボードで指定の入力メソッドを選択" -#: src/ui/classic/theme.h:174 +#: src/ui/classic/theme.h:172 msgid "Selected Item text color" msgstr "選択した項目の文字色" @@ -2346,7 +2369,7 @@ msgid "Send" msgstr "送信" -#: src/modules/wayland/waylandmodule.cpp:630 +#: src/modules/wayland/waylandmodule.cpp:660 msgid "" "Sending keyboard layout configuration to wayland compositor from Fcitx is " "not yet supported on current desktop. You may still use Fcitx's internal " @@ -2357,15 +2380,15 @@ "ドとしてレイアウトを追加することで、Fcitx の内部レイアウト変換を引き続き使用" "できます。" -#: src/ui/classic/theme.h:182 +#: src/ui/classic/theme.h:180 msgid "Separator Background" msgstr "セパレーターの背景" -#: src/ui/classic/theme.h:168 +#: src/ui/classic/theme.h:166 msgid "Shadow Margin" msgstr "影のマージン" -#: src/lib/fcitx/globalconfig.cpp:141 +#: src/lib/fcitx/globalconfig.cpp:147 msgid "Share Input State" msgstr "入力状態を共有する" @@ -2379,27 +2402,27 @@ msgid "Shop" msgstr "ショップ" -#: src/lib/fcitx/globalconfig.cpp:152 +#: src/lib/fcitx/globalconfig.cpp:158 msgid "Show Input Method Information when changing focus" msgstr "フォーカスを変更する際に入力メソッドの情報を表示する" -#: src/lib/fcitx/globalconfig.cpp:149 +#: src/lib/fcitx/globalconfig.cpp:155 msgid "Show Input Method Information when switch input method" msgstr "入力メソッドを切り替える際に入力メソッドの情報を表示する" -#: src/ui/classic/classicui.h:135 +#: src/ui/classic/classicui.h:132 msgid "Show Layout Name In Icon" msgstr "アイコンにレイアウト名を表示する" -#: src/lib/fcitx/globalconfig.cpp:155 +#: src/lib/fcitx/globalconfig.cpp:161 msgid "Show compact input method information" msgstr "入力メソッドの情報をコンパクトに表示する" -#: src/lib/fcitx/globalconfig.cpp:158 +#: src/lib/fcitx/globalconfig.cpp:164 msgid "Show first input method information" msgstr "第1入力メソッドの情報を表示する" -#: src/ui/classic/classicui.h:139 +#: src/ui/classic/classicui.h:136 msgid "" "Show layout name in icon if there is more than one active layout. If prefer " "text icon is set to true, this option will be ignored." @@ -2407,15 +2430,15 @@ "アクティブなレイアウトが複数ある場合はアイコンにレイアウト名を表示します。オ" "プションでテキストアイコンを優先している場合はこのオプションを無視します。" -#: src/lib/fcitx/globalconfig.cpp:145 +#: src/lib/fcitx/globalconfig.cpp:151 msgid "Show preedit in application" msgstr "アプリケーションにプリエディットを表示する" -#: src/lib/fcitx/globalconfig.cpp:189 +#: src/lib/fcitx/globalconfig.cpp:195 msgid "Show preedit text when typing password" msgstr "パスワード入力時にプリエディットテキストを表示する" -#: src/im/keyboard/keyboard.h:77 +#: src/im/keyboard/keyboard.h:89 msgid "" "Show preedit when composing, and commit dead key if there is no matching " "sequence." @@ -2423,7 +2446,7 @@ "入力時にプリエディットを表示し、一致するシーケンスがない場合はデッドキーをコ" "ミットします。" -#: src/lib/fcitx/globalconfig.cpp:64 +#: src/lib/fcitx/globalconfig.cpp:65 msgid "Skip first input method while enumerating" msgstr "切り替え時は第1入力メソッドをスキップする" @@ -2437,11 +2460,11 @@ msgid "Space" msgstr "スペース" -#: src/ui/classic/theme.h:176 +#: src/ui/classic/theme.h:174 msgid "Spacing" msgstr "間隔" -#: src/im/keyboard/keyboard.h:79 src/modules/spell/spell.conf.in.in:3 +#: src/im/keyboard/keyboard.h:91 src/modules/spell/spell.conf.in.in:3 msgid "Spell" msgstr "スペル" @@ -2465,8 +2488,8 @@ msgid "Standby" msgstr "スタンバイ" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:5 #: data/org.fcitx.Fcitx5.desktop.in.in:5 +#: data/fcitx5-wayland-launcher.desktop.in.in:5 msgid "Start Input Method" msgstr "入力メソッドを開始" @@ -2479,7 +2502,7 @@ msgid "Stop" msgstr "停止" -#: src/ui/classic/theme.h:184 +#: src/ui/classic/theme.h:182 msgid "Sub Menu" msgstr "サブメニュー" @@ -2488,7 +2511,7 @@ msgid "Subtitle" msgstr "サブタイトル" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:25 msgid "Super" msgstr "Super" @@ -2507,17 +2530,17 @@ msgid "Suspend" msgstr "サスペンド" -#: src/lib/fcitx/instance.cpp:451 src/lib/fcitx/instance.cpp:678 +#: src/lib/fcitx/instance.cpp:459 src/lib/fcitx/instance.cpp:687 #: src/modules/xcb/xcbconnection.cpp:556 msgid "Switch group" msgstr "グループの切り替え" -#: src/lib/fcitx/instance.cpp:452 src/modules/xcb/xcbconnection.cpp:557 +#: src/lib/fcitx/instance.cpp:460 src/modules/xcb/xcbconnection.cpp:557 #, c++-format msgid "Switch group to {0}" msgstr "{0} にグループを切り替える" -#: src/lib/fcitx/instance.cpp:679 +#: src/lib/fcitx/instance.cpp:688 #, c++-format msgid "Switched group to {0}" msgstr "{0} にグループを切り替えました" @@ -2541,7 +2564,7 @@ msgid "Task Panel" msgstr "タスクパネル" -#: src/lib/fcitx/globalconfig.cpp:44 +#: src/lib/fcitx/globalconfig.cpp:45 msgid "Temporally switch between first and current Input Method" msgstr "一時的に第1入力メソッドに切り替える" @@ -2573,27 +2596,27 @@ msgid "The script is run as ${1} (${2})." msgstr "${1} (${2})としてスクリプトを実行" -#: src/ui/classic/classicui.h:155 +#: src/ui/classic/classicui.h:152 msgid "Theme" msgstr "テーマ" -#: src/ui/classic/classicui.h:101 +#: src/ui/classic/classicui.h:98 msgid "This is only effective when the tray icon is xembed." msgstr "これはトレイアイコンが XEmbed の場合のみ有効です。" -#: src/ui/classic/theme.h:93 src/ui/classic/theme.h:101 +#: src/ui/classic/theme.h:91 src/ui/classic/theme.h:99 msgid "This option is only effective if image is not set." msgstr "このオプションは画像が設定されていない場合にのみ有効です。" -#: src/ui/classic/classicui.h:194 +#: src/ui/classic/classicui.h:191 msgid "This option require support from wayland compositor." msgstr "このオプションには Wayland コンポジターのサポートが必要です。" -#: src/ui/classic/classicui.h:173 +#: src/ui/classic/classicui.h:170 msgid "This option will be always disabled on XWayland." msgstr "このオプションは、XWayland では常に無効になります。" -#: src/ui/classic/theme.h:109 +#: src/ui/classic/theme.h:107 msgid "This value should be less than any of margin value." msgstr "この値はどのマージンの値よりも小さくする必要があります。" @@ -2622,24 +2645,24 @@ "あります。 ${link1} を参照してください。 アプリケーションのフリーズを含むXIM" "による一般的な問題については ${link2} を参照してください。" -#: src/lib/fcitx/globalconfig.cpp:132 +#: src/lib/fcitx/globalconfig.cpp:133 msgid "Toggle embedded preedit" -msgstr "プリエディットの埋め込みを切り替える" +msgstr "埋め込みプリエディットの切り替え" #: src/lib/fcitx-utils/key.cpp:191 msgctxt "Key name" msgid "Tools" msgstr "ツール" -#: src/ui/classic/theme.h:48 +#: src/ui/classic/theme.h:46 msgid "Top" msgstr "上" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Center" msgstr "中央上" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Left" msgstr "左上" @@ -2648,7 +2671,7 @@ msgid "Top Menu" msgstr "トップメニュー" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Top Right" msgstr "右上" @@ -2677,25 +2700,25 @@ msgid "Travel" msgstr "トラベル" -#: src/ui/classic/classicui.h:124 +#: src/ui/classic/classicui.h:121 msgid "Tray Font" msgstr "トレイフォント" -#: src/ui/classic/classicui.h:126 +#: src/ui/classic/classicui.h:123 msgid "Tray Label Outline Color" msgstr "トレイラベルのアウトライン色" -#: src/ui/classic/classicui.h:129 +#: src/ui/classic/classicui.h:126 msgid "Tray Label Text Color" msgstr "トレイラベルのテキスト色" -#: src/lib/fcitx/globalconfig.cpp:34 +#: src/lib/fcitx/globalconfig.cpp:35 msgid "Trigger Input Method" msgstr "入力メソッドの切り替え" #: src/modules/imselector/imselector.h:28 -#: src/modules/quickphrase/quickphrase.h:36 src/modules/unicode/unicode.h:31 -#: src/modules/clipboard/clipboard.h:42 +#: src/modules/quickphrase/quickphrase.h:32 src/modules/unicode/unicode.h:28 +#: src/modules/clipboard/clipboard.h:48 msgid "Trigger Key" msgstr "トリガーキー" @@ -2703,23 +2726,23 @@ msgid "Trigger Key for only current input context" msgstr "現在の入力コンテキストのみのトリガーキー" -#: src/im/keyboard/keyboard.h:62 +#: src/im/keyboard/keyboard.h:74 msgid "Trigger hint mode" msgstr "ヒントモードの切り替え" -#: src/im/keyboard/keyboard.h:67 +#: src/im/keyboard/keyboard.h:79 msgid "Trigger hint mode for one time" msgstr "ヒントモードに一時的に切り替え" -#: src/im/keyboard/keyboard.h:82 +#: src/im/keyboard/keyboard.h:94 msgid "Type special characters with long press" msgstr "長押しで特殊文字を入力する" -#: src/modules/unicode/unicode.h:36 +#: src/modules/unicode/unicode.h:33 msgid "Type unicode in Hex number" msgstr "Unicode を16進数で入力" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:22 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:26 msgid "Typing with Fcitx and Kimpanel" msgstr "Fcitx と Kimpanel で入力する" @@ -2736,7 +2759,7 @@ msgid "Unicode" msgstr "Unicode" -#: src/modules/unicode/unicode.cpp:456 +#: src/modules/unicode/unicode.cpp:455 msgid "Unicode: " msgstr "Unicode:" @@ -2745,27 +2768,27 @@ msgid "Up" msgstr "上" -#: src/frontend/xim/xim.h:33 +#: src/frontend/xim/xim.h:27 msgid "Use On The Spot Style (Needs restarting)" msgstr "XIM で On The Spot スタイルを使う(再起動が必要)" -#: src/ui/classic/classicui.h:169 +#: src/ui/classic/classicui.h:166 msgid "Use Per Screen DPI on X11" msgstr "X11 で Per Screen DPI を使用する" -#: src/ui/classic/theme.h:151 +#: src/ui/classic/theme.h:149 msgid "Use all horizontal space for highlight when it is vertical list" msgstr "候補リストが縦の場合は、ハイライト時にすべての水平スペースを使用します" -#: src/ui/classic/classicui.h:146 +#: src/ui/classic/classicui.h:143 msgid "Use input method language to display text" msgstr "入力メソッドの言語を使用してテキストを表示する" -#: src/ui/classic/classicui.h:116 +#: src/ui/classic/classicui.h:113 msgid "Use mouse wheel to go to prev or next page" msgstr "マウスホイールを使用して前または次のページに移動する" -#: src/im/keyboard/keyboard.h:73 +#: src/im/keyboard/keyboard.h:85 msgid "Use new compose behavior" msgstr "新規入力時の動作を使用する" @@ -2783,7 +2806,7 @@ "environment:" msgstr "${1} を使用して、現在の環境で使用される実際の IM モジュールを確認する:" -#: src/ui/classic/theme.h:192 +#: src/ui/classic/theme.h:190 msgid "Version" msgstr "バージョン" @@ -2791,7 +2814,7 @@ msgid "Version Line:" msgstr "バージョンライン:" -#: src/ui/classic/classicui.h:114 +#: src/ui/classic/classicui.h:111 msgid "Vertical Candidate List" msgstr "候補ウィンドウを縦にする" @@ -2848,9 +2871,9 @@ msgid "Wayland" msgstr "Wayland" -#: src/modules/wayland/waylandmodule.cpp:558 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Wayland Diagnose" -msgstr "ウェイランド診断" +msgstr "Wayland 診断" #: src/frontend/waylandim/waylandim.conf.in.in:3 msgid "Wayland Input method frontend" @@ -2861,7 +2884,17 @@ msgid "WebCam" msgstr "ウェブカメラ" -#: src/lib/fcitx/globalconfig.cpp:171 +#: src/modules/clipboard/clipboard.h:65 +msgid "" +"When copying password from a password manager, if the password manager " +"supports marking the clipboard content as password, this clipboard update " +"will be ignored." +msgstr "" +"パスワードマネージャーからパスワードをコピーしたときに、パスワードマネー" +"ジャーがクリップボードの内容をパスワードとしてマークした場合は、クリップボー" +"ドの更新が無視されます。" + +#: src/lib/fcitx/globalconfig.cpp:177 msgid "" "Whether to override the xkb option from display server. It will not affect " "the xkb option send to display, but just the xkb options for custom xkb " @@ -2966,20 +2999,22 @@ #: data/fcitx5-configtool.sh:137 msgid "" "You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be " -"found. Now it will open config directory." +"found. The package name provides this binary is usually fcitx5-configtool. " +"Now it will open the configuration directory." msgstr "" -"現在 fcitx を GUI で使用していますが、fcitx5-configtool が見つかりません。今" -"回は既定のテキストエディタで設定ファイルを開きます。" +"現在 GUI で Fcitx を実行していますが、fcitx5-config-qt が見つかりません。この" +"バイナリを提供するパッケージ名は、通常 fcitx5-configtool です。これで設定ディ" +"レクトリが開きます。" #: data/fcitx5-configtool.sh:134 msgid "" -"You're currently running KDE, but KCModule for fcitx couldn't be found, the " -"package name of this KCModule is usually kcm-fcitx or kde-config-fcitx. Now " -"it will open config directory." -msgstr "" -"現在 KDE を使用していますが、fcitx 用の KC モジュールが見つかりません。KC モ" -"ジュールのパッケージ名は、たいていの場合 kcm-fcitx か kde-config-fcitx です。" -"今回は設定ディレクトリを開きます。" +"You're currently running KDE, but KCModule for fcitx couldn't be found. The " +"package name of this KCModule is usually kcm-fcitx5, kde-config-fcitx5, or " +"fcitx5-configtool. Now it will open the configuration directory." +msgstr "" +"現在 KDE を実行していますが、Fcitx 用の KCModule が見つかりません。この " +"KCModule のパッケージ名は、通常 kcm-fcitx5、kde-config-fcitx5、または fcitx5-" +"configtool です。これで設定ディレクトリが開きます。" #: data/fcitx5-diagnose.sh:1185 msgid "" @@ -3044,17 +3079,17 @@ msgid "version:" msgstr "バージョン:" -#: src/im/keyboard/keyboard.cpp:292 +#: src/im/keyboard/keyboard.cpp:312 #, c++-format msgid "{0} (Not Available)" msgstr "{0} (利用できません)" -#: src/lib/fcitx/instance.cpp:409 +#: src/lib/fcitx/instance.cpp:417 #, c++-format msgid "{0} (Not available)" msgstr "{0} (使用不可)" -#: src/lib/fcitx/instance.cpp:406 +#: src/lib/fcitx/instance.cpp:414 #, c++-format msgid "{0} ({1})" msgstr "{0} ({1})" diff -Nru fcitx5-5.1.7/po/ko.po fcitx5-5.1.11/po/ko.po --- fcitx5-5.1.7/po/ko.po 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/po/ko.po 2024-10-09 03:48:05.000000000 +0800 @@ -13,7 +13,7 @@ msgstr "" "Project-Id-Version: fcitx5\n" "Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" -"POT-Creation-Date: 2024-01-14 20:24+0000\n" +"POT-Creation-Date: 2024-06-11 20:24+0000\n" "PO-Revision-Date: 2017-11-23 04:14+0000\n" "Last-Translator: Junghee Lee <daemul72@gmail.com>, 2023\n" "Language-Team: Korean (https://app.transifex.com/fcitx/teams/12005/ko/)\n" @@ -51,11 +51,11 @@ msgid "${1} works properly." msgstr "${1}이(가) 제대로 작동합니다." -#: src/lib/fcitx/instance.cpp:411 +#: src/lib/fcitx/instance.cpp:419 msgid "(Not available)" msgstr "(사용할 수 없음)" -#: src/modules/unicode/unicode.cpp:458 +#: src/modules/unicode/unicode.cpp:457 msgid "(Type to search unicode by code or description)" msgstr "(코드 또는 설명으로 유니코드를 검색하는 유형)" @@ -79,23 +79,31 @@ msgid "/XIM" msgstr "/XIM" -#: src/modules/unicode/charselectdata.cpp:215 +#: src/modules/clipboard/clipboard.h:80 +msgid "0 means never clear password." +msgstr "" + +#: src/modules/unicode/charselectdata.cpp:213 msgid "<Low Surrogate>" msgstr "<하위 확장코드>" -#: src/modules/unicode/charselectdata.cpp:211 +#: src/modules/unicode/charselectdata.cpp:209 msgid "<Non Private Use High Surrogate>" msgstr "<비 개인용 상위 확장코드>" -#: src/modules/unicode/charselectdata.cpp:213 +#: src/modules/clipboard/clipboard.cpp:116 +msgid "<Passowrd>" +msgstr "" + +#: src/modules/unicode/charselectdata.cpp:211 msgid "<Private Use High Surrogate>" msgstr "<개인용 상위 확장코드>" -#: src/modules/unicode/charselectdata.cpp:217 +#: src/modules/unicode/charselectdata.cpp:215 msgid "<Private Use>" msgstr "<Private Use>" -#: src/modules/unicode/charselectdata.cpp:247 +#: src/modules/unicode/charselectdata.cpp:245 msgid "<not assigned>" msgstr "<할당 안됨>" @@ -103,15 +111,15 @@ msgid "A virtual keyboard backend based on DBus" msgstr "" -#: src/ui/classic/theme.h:204 +#: src/ui/classic/theme.h:202 msgid "Accent Colors" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:82 +#: src/lib/fcitx/globalconfig.cpp:83 msgid "Activate Input Method" msgstr "입력기 활성화" -#: src/lib/fcitx/globalconfig.cpp:138 +#: src/lib/fcitx/globalconfig.cpp:139 msgid "Active By Default" msgstr "기본적으로 활성화" @@ -141,7 +149,7 @@ msgid "Adjust Brightness" msgstr "밝기 조절" -#: src/lib/fcitx/globalconfig.cpp:26 +#: src/lib/fcitx/globalconfig.cpp:27 msgid "All" msgstr "모두" @@ -157,19 +165,19 @@ msgid "All locales:" msgstr "모든 로케일:" -#: src/modules/xcb/xcbmodule.h:30 +#: src/modules/xcb/xcbmodule.h:26 msgid "Allow Overriding System XKB Settings" msgstr "시스템 XKB 설정을 덮어쓰도록 허용" -#: src/modules/wayland/waylandmodule.h:36 +#: src/modules/wayland/waylandmodule.h:35 msgid "Allow Overriding System XKB Settings (Only support KDE 5)" msgstr "시스템 XKB 설정 무시 허용(KDE 5만 지원)" -#: src/lib/fcitx/globalconfig.cpp:186 +#: src/lib/fcitx/globalconfig.cpp:192 msgid "Allow input method in the password field" msgstr "" -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:25 msgid "Alt" msgstr "Alt" @@ -178,7 +186,7 @@ msgid "Alt" msgstr "Alt" -#: src/modules/xcb/xcbmodule.h:33 +#: src/modules/xcb/xcbmodule.h:29 msgid "Always set layout to be only group layout" msgstr "항상 자판을 그룹 자판으로만 지정" @@ -192,7 +200,7 @@ msgid "Application Right" msgstr "오른쪽 응용 프로그램" -#: src/im/keyboard/keyboard.h:87 +#: src/im/keyboard/keyboard.h:99 msgid "Applications disabled for long press" msgstr "길게 누르면 응용프로그램이 비활성화됨" @@ -211,7 +219,7 @@ msgid "Audio Repeat" msgstr "음원 반복 듣기" -#: src/ui/classic/theme.h:193 +#: src/ui/classic/theme.h:191 msgid "Author" msgstr "작성자" @@ -234,11 +242,11 @@ msgid "Backends" msgstr "백엔드" -#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 +#: src/ui/classic/theme.h:156 src/ui/classic/theme.h:176 msgid "Background" msgstr "배경" -#: src/ui/classic/theme.h:85 +#: src/ui/classic/theme.h:83 msgid "Background Image" msgstr "배경 이미지" @@ -260,7 +268,7 @@ msgid "Beginner's Guide" msgstr "초보자 가이드" -#: src/lib/fcitx/globalconfig.cpp:203 +#: src/lib/fcitx/globalconfig.cpp:209 msgid "Behavior" msgstr "동작방식" @@ -274,11 +282,11 @@ msgid "Bluetooth" msgstr "블루투스" -#: src/ui/classic/theme.h:148 +#: src/ui/classic/theme.h:146 msgid "Blur Margin" msgstr "블러 여백" -#: src/ui/classic/theme.h:147 +#: src/ui/classic/theme.h:145 msgid "Blur mask" msgstr "" @@ -287,27 +295,27 @@ msgid "Book" msgstr "책" -#: src/ui/classic/theme.h:97 +#: src/ui/classic/theme.h:95 msgid "Border Color" msgstr "테두리 색상" -#: src/ui/classic/theme.h:105 +#: src/ui/classic/theme.h:103 msgid "Border width" msgstr "테두리 너비" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Bottom" msgstr "" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Center" msgstr "하단 중앙" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Left" msgstr "왼쪽 하단" -#: src/ui/classic/theme.h:39 +#: src/ui/classic/theme.h:37 msgid "Bottom Right" msgstr "오른쪽 하단" @@ -331,7 +339,7 @@ msgid "Cancel" msgstr "취소" -#: src/im/keyboard/longpress.h:19 +#: src/im/keyboard/longpress.h:23 msgid "Candidates" msgstr "후보" @@ -420,15 +428,15 @@ msgid "CapsLock" msgstr "캡스락" -#: src/ui/classic/theme.h:37 src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:35 src/ui/classic/theme.h:47 msgid "Center" msgstr "중앙" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Center Left" msgstr "왼쪽 중앙" -#: src/ui/classic/theme.h:37 +#: src/ui/classic/theme.h:35 msgid "Center Right" msgstr "오른쪽 중앙" @@ -436,11 +444,11 @@ msgid "Change Fcitx 5 Configuration" msgstr "Fcitx5 구성 변경" -#: src/ui/classic/theme.h:183 +#: src/ui/classic/theme.h:181 msgid "Check box" msgstr "체크 박스" -#: src/im/keyboard/keyboard.h:56 src/modules/quickphrase/quickphrase.h:41 +#: src/im/keyboard/keyboard.h:68 src/modules/quickphrase/quickphrase.h:37 msgid "Choose key modifier" msgstr "변환 키 선택" @@ -453,7 +461,7 @@ msgid "Clear" msgstr "지우기" -#: src/ui/classic/theme.h:131 +#: src/ui/classic/theme.h:129 msgid "Click Margin" msgstr "여백 클릭" @@ -461,7 +469,7 @@ msgid "Clipboard" msgstr "클립보드" -#: src/modules/clipboard/clipboard.cpp:353 +#: src/modules/clipboard/clipboard.cpp:369 msgid "Clipboard (Press BackSpace/Delete to clear history):" msgstr "클립보드(기록을 지우려면 BackSpace/Delete 키 누르기):" @@ -475,7 +483,7 @@ msgid "Code input" msgstr "코드 입력" -#: src/ui/classic/theme.h:89 +#: src/ui/classic/theme.h:87 msgid "Color" msgstr "색상" @@ -484,19 +492,19 @@ msgid "Community" msgstr "커뮤니티" -#: src/im/keyboard/keyboard.cpp:685 +#: src/im/keyboard/keyboard.cpp:706 msgid "Completion" msgstr "완성" -#: src/im/keyboard/keyboard.cpp:676 +#: src/im/keyboard/keyboard.cpp:697 msgid "Completion is disabled." msgstr "완성이 비활성화되었습니다." -#: src/im/keyboard/keyboard.cpp:679 +#: src/im/keyboard/keyboard.cpp:700 msgid "Completion is enabled temporarily." msgstr "완성이 일시적으로 활성화되었습니다." -#: src/im/keyboard/keyboard.cpp:681 +#: src/im/keyboard/keyboard.cpp:702 msgid "Completion is enabled." msgstr "완성이 활성화되었습니다." @@ -533,7 +541,7 @@ msgid "Configure" msgstr "구성하기" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:25 msgid "Control" msgstr "Control" @@ -567,7 +575,7 @@ msgid "Custom" msgstr "사용자 지정" -#: src/lib/fcitx/globalconfig.cpp:176 +#: src/lib/fcitx/globalconfig.cpp:182 msgid "Custom Xkb Option" msgstr "사용자 지정 Xkb 옵션" @@ -601,11 +609,11 @@ msgid "DOS" msgstr "DOS" -#: src/ui/classic/classicui.h:158 +#: src/ui/classic/classicui.h:155 msgid "Dark Theme" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:91 +#: src/lib/fcitx/globalconfig.cpp:92 msgid "Deactivate Input Method" msgstr "입력기 비활성화" @@ -613,7 +621,7 @@ msgid "Debug information from dbus:" msgstr "dbus의 디버그 정보:" -#: src/lib/fcitx/inputmethodmanager.cpp:138 src/lib/fcitx/instance.cpp:358 +#: src/lib/fcitx/inputmethodmanager.cpp:153 src/lib/fcitx/instance.cpp:366 #: src/ui/classic/themes/default/theme.conf.in:3 msgid "Default" msgstr "기본값" @@ -622,23 +630,23 @@ msgid "Default Dark" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:127 +#: src/lib/fcitx/globalconfig.cpp:128 msgid "Default Next Candidate" msgstr "기본 다음 후보" -#: src/lib/fcitx/globalconfig.cpp:111 +#: src/lib/fcitx/globalconfig.cpp:112 msgid "Default Next page" msgstr "기본 다음 페이지" -#: src/lib/fcitx/globalconfig.cpp:121 +#: src/lib/fcitx/globalconfig.cpp:122 msgid "Default Previous Candidate" msgstr "기본 이전 후보" -#: src/lib/fcitx/globalconfig.cpp:99 +#: src/lib/fcitx/globalconfig.cpp:100 msgid "Default Previous page" msgstr "기본 이전 페이지" -#: src/lib/fcitx/globalconfig.cpp:160 +#: src/lib/fcitx/globalconfig.cpp:166 msgid "Default page size" msgstr "페이지 크기 기본값" @@ -647,7 +655,7 @@ msgid "Delete" msgstr "삭제" -#: src/ui/classic/theme.h:195 +#: src/ui/classic/theme.h:193 msgid "Description" msgstr "설명" @@ -659,7 +667,7 @@ msgid "Desktop environment is ${1}." msgstr "데스크톱 환경은 ${1}입니다." -#: src/modules/wayland/waylandmodule.cpp:586 +#: src/modules/wayland/waylandmodule.cpp:616 msgid "" "Detect GTK_IM_MODULE and QT_IM_MODULE being set and Wayland Input method " "frontend is working. It is recommended to unset GTK_IM_MODULE and " @@ -667,7 +675,7 @@ "see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma" msgstr "" -#: src/modules/wayland/waylandmodule.cpp:615 +#: src/modules/wayland/waylandmodule.cpp:645 msgid "" "Detect GTK_IM_MODULE being set and Wayland Input method frontend is working. " "It is recommended to unset GTK_IM_MODULE and use Wayland input method " @@ -687,10 +695,14 @@ msgid "Display" msgstr "표시" -#: src/modules/notifications/notifications.cpp:204 +#: src/modules/notifications/notifications.cpp:201 msgid "Do not show again" msgstr "다시 표시 안함" +#: src/modules/clipboard/clipboard.h:61 +msgid "Do not show password from password managers" +msgstr "" + #: src/lib/fcitx-utils/key.cpp:162 msgctxt "Key name" msgid "Documents" @@ -701,7 +713,7 @@ msgid "Down" msgstr "아래쪽" -#: src/modules/quickphrase/quickphrase.h:47 +#: src/modules/quickphrase/quickphrase.h:43 msgid "Editor" msgstr "편집기" @@ -724,31 +736,31 @@ msgid "Emoji" msgstr "에모지" -#: src/im/keyboard/longpress.h:17 +#: src/im/keyboard/longpress.h:21 msgid "Enable" msgstr "활성화" -#: src/ui/classic/theme.h:145 +#: src/ui/classic/theme.h:143 msgid "Enable Blur on KWin" msgstr "KWin에서 블러 활성화" -#: src/modules/quickphrase/quickphrase.h:43 +#: src/modules/quickphrase/quickphrase.h:39 msgid "Enable Spell check" msgstr "철자 검사 활성화" -#: src/im/keyboard/keyboard.h:51 +#: src/im/keyboard/keyboard.h:63 msgid "Enable emoji in hint" msgstr "힌트에 에모지 보이기" -#: src/im/keyboard/keyboard.h:54 +#: src/im/keyboard/keyboard.h:66 msgid "Enable emoji in quickphrase" msgstr "상용구에 에모지 활성화" -#: src/ui/classic/classicui.h:190 +#: src/ui/classic/classicui.h:187 msgid "Enable fractional scale under Wayland" msgstr "" -#: src/im/keyboard/keyboard.h:59 +#: src/im/keyboard/keyboard.h:71 msgid "Enable hint by default" msgstr "기본적으로 힌트 사용" @@ -761,27 +773,27 @@ msgid "End" msgstr "종료" -#: src/im/keyboard/longpress.h:26 +#: src/im/keyboard/longpress.h:30 msgid "Entries" msgstr "항목" -#: src/lib/fcitx/globalconfig.cpp:58 +#: src/lib/fcitx/globalconfig.cpp:59 msgid "Enumerate Input Method Backward" msgstr "입력기 역순으로 전환" -#: src/lib/fcitx/globalconfig.cpp:51 +#: src/lib/fcitx/globalconfig.cpp:52 msgid "Enumerate Input Method Forward" msgstr "입력기 전환" -#: src/lib/fcitx/globalconfig.cpp:75 +#: src/lib/fcitx/globalconfig.cpp:76 msgid "Enumerate Input Method Group Backward" msgstr "입력기 그룹 역순으로 전환" -#: src/lib/fcitx/globalconfig.cpp:68 +#: src/lib/fcitx/globalconfig.cpp:69 msgid "Enumerate Input Method Group Forward" msgstr "입력기 그룹 전환" -#: src/lib/fcitx/globalconfig.cpp:40 +#: src/lib/fcitx/globalconfig.cpp:41 msgid "Enumerate when press trigger key repeatedly" msgstr "트리거 키를 반복해서 누를 때 열거하기" @@ -836,7 +848,7 @@ msgid "Failed to find ${1} in the output of ${2}" msgstr "${1}을 ${2}의 출력 내용에서 찾을 수 없음" -#: src/modules/quickphrase/quickphrase.h:45 +#: src/modules/quickphrase/quickphrase.h:41 msgid "Fallback Spell check language" msgstr "예비 맞춤법 검사 언어" @@ -845,7 +857,7 @@ msgid "Favorites" msgstr "즐겨찾기" -#: src/modules/wayland/waylandmodule.cpp:558 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Fcitx" msgstr "" @@ -858,7 +870,7 @@ msgid "Fcitx 5 Configuration" msgstr "Fcitx 5 설정" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:3 +#: data/fcitx5-wayland-launcher.desktop.in.in:3 msgid "Fcitx 5 Wayland Launcher (Experimental)" msgstr "" @@ -874,7 +886,7 @@ msgid "Fcitx State:" msgstr "Fcitx 상태:" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:9 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:12 msgid "" "Fcitx is an input method framework. It can help you to type your own " "language. It also features variant choice of addons that improve your typing " @@ -883,7 +895,7 @@ "Fcitx는 입력기 프레임워크입니다. 자신의 언어를 입력하는데 도움이 될 수 있습니" "다. 또한 타이핑 경험을 향상시키는 다양한 애드온을 선택할 수 있습니다." -#: src/modules/wayland/waylandmodule.cpp:573 +#: src/modules/wayland/waylandmodule.cpp:603 msgid "" "Fcitx should be launched by KWin under KDE Wayland in order to use Wayland " "input method frontend. This can improve the experience when using Fcitx on " @@ -912,15 +924,15 @@ msgid "Find" msgstr "찾기" -#: src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:47 msgid "First Candidate" msgstr "" -#: src/ui/classic/classicui.h:164 +#: src/ui/classic/classicui.h:161 msgid "Follow system accent color if it is supported by theme and desktop" msgstr "" -#: src/ui/classic/classicui.h:160 +#: src/ui/classic/classicui.h:157 msgid "Follow system light/dark color scheme" msgstr "" @@ -932,11 +944,11 @@ "using text-input support by Qt under Wayland." msgstr "" -#: src/ui/classic/classicui.h:120 +#: src/ui/classic/classicui.h:117 msgid "Font" msgstr "글꼴" -#: src/ui/classic/classicui.h:150 +#: src/ui/classic/classicui.h:147 msgid "" "For example, display character with Chinese variant when using Pinyin and " "Japanese variant when using Anthy. The font configuration needs to support " @@ -946,11 +958,11 @@ "일본어 변형으로 문자를 표시합니다. 이 기능을 사용하려면 글꼴 구성에서 이를 지" "원해야 합니다." -#: src/modules/wayland/waylandmodule.cpp:641 +#: src/modules/wayland/waylandmodule.cpp:671 msgid "For more details see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland" msgstr "" -#: src/ui/classic/classicui.h:178 +#: src/ui/classic/classicui.h:175 msgid "Force font DPI on Wayland" msgstr "" @@ -1056,12 +1068,12 @@ msgid "Group" msgstr "그룹" -#: src/lib/fcitx/instance.cpp:415 +#: src/lib/fcitx/instance.cpp:423 #, c++-format msgid "Group {0}: {1}" msgstr "그룹 {0}: {1}" -#: src/lib/fcitx/instance.cpp:360 +#: src/lib/fcitx/instance.cpp:368 #, c++-format msgid "Group {}" msgstr "그룹 {}" @@ -1157,31 +1169,35 @@ msgid "Hibernate" msgstr "하이버네이트" -#: src/modules/notifications/notifications.h:28 +#: src/modules/notifications/notifications.h:26 msgid "Hidden Notifications" msgstr "숨은 알림" -#: src/ui/classic/theme.h:116 +#: src/modules/clipboard/clipboard.h:70 +msgid "Hidden clipboard content that contains a password" +msgstr "" + +#: src/ui/classic/theme.h:114 msgid "Hide overlay if size does not fit" msgstr "크기가 맞지 않으면 오버레이 숨기기" -#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:180 +#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 msgid "Highlight Background" msgstr "배경 강조표시" -#: src/ui/classic/theme.h:140 +#: src/ui/classic/theme.h:138 msgid "Highlight Background color" msgstr "배경 색상 강조표시" -#: src/ui/classic/theme.h:143 +#: src/ui/classic/theme.h:141 msgid "Highlight Candidate Color" msgstr "강조 후보 색상" -#: src/ui/classic/theme.h:126 +#: src/ui/classic/theme.h:124 msgid "Highlight Click Margin" msgstr "클릭 여백 강조표시" -#: src/ui/classic/theme.h:138 +#: src/ui/classic/theme.h:136 msgid "Highlight text color" msgstr "텍스트 색상 강조표시" @@ -1224,7 +1240,7 @@ msgid "Hot Links" msgstr "핫 링크" -#: src/lib/fcitx/globalconfig.cpp:201 +#: src/lib/fcitx/globalconfig.cpp:207 msgid "Hotkey" msgstr "단축키" @@ -1246,7 +1262,7 @@ msgid "IBus Frontend" msgstr "IBus 전처리기" -#: src/lib/fcitx/globalconfig.cpp:197 +#: src/lib/fcitx/globalconfig.cpp:203 msgid "" "If value is 0, the user data may only be saved when fcitx quits (e.g. " "logout)." @@ -1271,17 +1287,16 @@ "${g36_disable_ibus} 명령을 사용하여 ${2} 이외의 입력기를 사용하기 위해 IBus " "통합을 비활성화할 수 있습니다.. 자세한 내용은 ${link}를 참조합니다." -#: src/ui/classic/theme.h:129 +#: src/ui/classic/theme.h:127 msgid "Image" msgstr "이미지" -#: src/im/keyboard/keyboard.cpp:684 src/lib/fcitx/instance.cpp:450 -#: src/lib/fcitx/instance.cpp:677 src/lib/fcitx/instance.cpp:839 -#: src/modules/notificationitem/notificationitem.cpp:147 -#: src/modules/notificationitem/notificationitem.cpp:235 -#: src/modules/xcb/xcbconnection.cpp:555 -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:4 -#: data/org.fcitx.Fcitx5.desktop.in.in:4 +#: src/im/keyboard/keyboard.cpp:705 src/lib/fcitx/instance.cpp:458 +#: src/lib/fcitx/instance.cpp:686 src/lib/fcitx/instance.cpp:848 +#: src/modules/notificationitem/notificationitem.cpp:142 +#: src/modules/notificationitem/notificationitem.cpp:230 +#: src/modules/xcb/xcbconnection.cpp:555 data/org.fcitx.Fcitx5.desktop.in.in:4 +#: data/fcitx5-wayland-launcher.desktop.in.in:4 #: data/org.fcitx.Fcitx5.metainfo.xml.in:7 msgid "Input Method" msgstr "입력기" @@ -1298,27 +1313,27 @@ msgid "Input Methods:" msgstr "입력기:" -#: src/ui/classic/theme.h:201 +#: src/ui/classic/theme.h:199 msgid "Input Panel" msgstr "입력 패널" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Background" msgstr "" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Border" msgstr "" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight" msgstr "" -#: src/ui/classic/theme.h:66 +#: src/ui/classic/theme.h:64 msgid "Input Panel Highlight Candidate Background" msgstr "" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight Candidate Border" msgstr "" @@ -1326,7 +1341,7 @@ msgid "Input method selector" msgstr "입력기 선택" -#: src/lib/fcitx/globalconfig.cpp:103 src/lib/fcitx/globalconfig.cpp:115 +#: src/lib/fcitx/globalconfig.cpp:104 src/lib/fcitx/globalconfig.cpp:116 msgid "" "Input methods may have different setup in their own configuration. This is " "commonly used by modules like clipboard or quickphrase." @@ -1339,7 +1354,7 @@ msgid "Insert" msgstr "삽입" -#: src/lib/fcitx/globalconfig.cpp:193 +#: src/lib/fcitx/globalconfig.cpp:199 msgid "Interval of saving user data in minutes" msgstr "" @@ -1353,7 +1368,7 @@ "supports text-input protocol used by ${1}." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:598 +#: src/modules/wayland/waylandmodule.cpp:628 msgid "" "It is recommended to install Input Method Panel GNOME Shell Extensions to " "provide the input method popup. https://extensions.gnome.org/extension/261/" @@ -1366,7 +1381,7 @@ msgid "KDE Input Method Panel" msgstr "KDE 입력기 패널" -#: src/ui/classic/classicui.cpp:280 +#: src/ui/classic/classicui.cpp:278 msgid "KDE Plasma (Experimental)" msgstr "KDE 플라즈마 (실험용)" @@ -1390,20 +1405,20 @@ msgid "Katakana" msgstr "가타카나" -#: src/im/keyboard/longpress.h:16 +#: src/im/keyboard/longpress.h:20 msgid "Key" msgstr "키" -#: src/im/keyboard/keyboard.cpp:315 src/im/keyboard/keyboard.conf.in.in:3 +#: src/im/keyboard/keyboard.cpp:335 src/im/keyboard/keyboard.conf.in.in:3 msgid "Keyboard" msgstr "키보드" -#: src/im/keyboard/keyboard.cpp:231 +#: src/im/keyboard/keyboard.cpp:251 #, c++-format msgid "Keyboard - {0}" msgstr "키보드 - {0}" -#: src/im/keyboard/keyboard.cpp:250 +#: src/im/keyboard/keyboard.cpp:270 #, c++-format msgid "Keyboard - {0} - {1}" msgstr "키보드 - {0} - {1}" @@ -1611,7 +1626,7 @@ msgid "Kimpanel process:" msgstr "Kimpanel 프로세스:" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Last Candidate" msgstr "" @@ -1748,7 +1763,7 @@ msgid "Logoff" msgstr "로그오프" -#: src/im/keyboard/keyboard.h:89 +#: src/im/keyboard/keyboard.h:102 msgid "Long Press behavior" msgstr "길게 누르기 동작" @@ -1757,31 +1772,31 @@ msgid "Mail Forward" msgstr "이메일 전달" -#: src/ui/classic/theme.h:118 +#: src/ui/classic/theme.h:116 msgid "Margin" msgstr "여백" -#: src/ui/classic/theme.h:80 +#: src/ui/classic/theme.h:78 msgid "Margin Bottom" msgstr "하단 여백" -#: src/ui/classic/theme.h:74 +#: src/ui/classic/theme.h:72 msgid "Margin Left" msgstr "왼쪽 여백" -#: src/ui/classic/theme.h:76 +#: src/ui/classic/theme.h:74 msgid "Margin Right" msgstr "오른쪽 여백" -#: src/ui/classic/theme.h:78 +#: src/ui/classic/theme.h:76 msgid "Margin Top" msgstr "상단 여백" -#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 +#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:184 msgid "Margin around all content" msgstr "모든 콘텐츠 주변의 여백" -#: src/ui/classic/theme.h:164 src/ui/classic/theme.h:188 +#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 msgid "Margin around text" msgstr "텍스트 주변 여백" @@ -1840,7 +1855,7 @@ msgid "Meeting" msgstr "미팅" -#: src/ui/classic/theme.h:202 +#: src/ui/classic/theme.h:200 msgid "Menu" msgstr "메뉴" @@ -1849,15 +1864,15 @@ msgid "Menu" msgstr "메뉴" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Background" msgstr "" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Border" msgstr "" -#: src/ui/classic/classicui.h:122 +#: src/ui/classic/classicui.h:119 msgid "Menu Font" msgstr "메뉴 글꼴" @@ -1866,15 +1881,15 @@ msgid "Menu PB" msgstr "메뉴 PB" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Background" msgstr "" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Border" msgstr "" -#: src/ui/classic/theme.h:70 +#: src/ui/classic/theme.h:68 msgid "Menu Separator" msgstr "" @@ -1883,7 +1898,7 @@ msgid "Messenger" msgstr "메신저" -#: src/ui/classic/theme.h:199 +#: src/ui/classic/theme.h:197 msgid "Metadata" msgstr "메타데이터" @@ -1922,7 +1937,7 @@ msgid "My Sites" msgstr "내 사이트" -#: src/ui/classic/theme.h:191 +#: src/ui/classic/theme.h:189 msgid "Name" msgstr "이름" @@ -1936,31 +1951,31 @@ msgid "News" msgstr "뉴스" -#: src/im/keyboard/keyboard.h:48 +#: src/im/keyboard/keyboard.h:60 msgid "Next Candidate" msgstr "다음 후보" -#: src/ui/classic/theme.h:166 +#: src/ui/classic/theme.h:164 msgid "Next Page Button" msgstr "다음 페이지 버튼" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "No" msgstr "아니오" -#: src/modules/clipboard/clipboard.cpp:355 +#: src/modules/clipboard/clipboard.cpp:371 msgid "No clipboard history." msgstr "클립보드 기록이 없습니다." -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:28 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:24 msgid "None" msgstr "없음" -#: src/ui/classic/theme.h:135 src/ui/classic/theme.h:171 +#: src/ui/classic/theme.h:133 src/ui/classic/theme.h:169 msgid "Normal text color" msgstr "일반 텍스트 색상" -#: src/ui/classic/classicui.h:182 +#: src/ui/classic/classicui.h:179 msgid "" "Normally Wayland uses 96 as font DPI in combinition with the screen scale " "factor. This option allows you to override the font DPI. If the value is 0, " @@ -1984,11 +1999,11 @@ msgid "NumLock" msgstr "NumLock" -#: src/modules/clipboard/clipboard.h:48 +#: src/modules/clipboard/clipboard.h:54 msgid "Number of entries" msgstr "항목 수" -#: src/im/keyboard/keyboard.cpp:670 +#: src/im/keyboard/keyboard.cpp:691 msgid "" "Only emoji support is found. To enable spell checking, you may need to " "install spell check data for the language." @@ -2011,27 +2026,27 @@ msgid "Option" msgstr "선택사항" -#: src/ui/classic/theme.h:120 +#: src/ui/classic/theme.h:118 msgid "Overlay Clip Margin" msgstr "오버레이 클립 여백" -#: src/ui/classic/theme.h:110 +#: src/ui/classic/theme.h:108 msgid "Overlay Image" msgstr "오버레이 이미지" -#: src/ui/classic/theme.h:113 +#: src/ui/classic/theme.h:111 msgid "Overlay X offset" msgstr "오버레이 X 오프셋" -#: src/ui/classic/theme.h:114 +#: src/ui/classic/theme.h:112 msgid "Overlay Y offset" msgstr "오버레이 Y 오프셋" -#: src/ui/classic/theme.h:112 +#: src/ui/classic/theme.h:110 msgid "Overlay position" msgstr "오버레이 위치" -#: src/lib/fcitx/globalconfig.cpp:167 +#: src/lib/fcitx/globalconfig.cpp:173 msgid "Override Xkb Option" msgstr "Xkb 옵션 재정의" @@ -2053,11 +2068,11 @@ msgid "Page Up" msgstr "" -#: src/ui/classic/theme.h:155 +#: src/ui/classic/theme.h:153 msgid "Page button vertical alignment" msgstr "" -#: src/im/keyboard/keyboard.h:37 +#: src/im/keyboard/keyboard.h:49 msgid "Page size" msgstr "페이지 크기" @@ -2066,7 +2081,7 @@ msgid "Paste" msgstr "붙이기" -#: src/modules/clipboard/clipboard.h:46 +#: src/modules/clipboard/clipboard.h:52 msgid "Paste Primary" msgstr "기본 붙여 넣기" @@ -2114,19 +2129,19 @@ msgid "Power Off" msgstr "전원 끄기" -#: src/lib/fcitx/instance.cpp:839 +#: src/lib/fcitx/instance.cpp:848 msgid "Preedit" msgstr "사전편집" -#: src/lib/fcitx/instance.cpp:841 +#: src/lib/fcitx/instance.cpp:850 msgid "Preedit disabled" msgstr "사전편집 비활성화" -#: src/lib/fcitx/instance.cpp:840 +#: src/lib/fcitx/instance.cpp:849 msgid "Preedit enabled" msgstr "사전편집 활성화" -#: src/ui/classic/classicui.h:130 src/ui/kimpanel/kimpanel.h:33 +#: src/ui/classic/classicui.h:127 src/ui/kimpanel/kimpanel.h:28 msgid "Prefer Text Icon" msgstr "텍스트 아이콘 선호" @@ -2134,11 +2149,11 @@ msgid "Presage" msgstr "사전 설정" -#: src/im/keyboard/keyboard.h:42 +#: src/im/keyboard/keyboard.h:54 msgid "Prev Candidate" msgstr "이전 후보" -#: src/ui/classic/theme.h:165 +#: src/ui/classic/theme.h:163 msgid "Prev Page Button" msgstr "이전 페이지 버튼" @@ -2152,7 +2167,7 @@ msgid "Print Screen" msgstr "화면 출력" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "Program" msgstr "프로그램" @@ -2164,7 +2179,7 @@ msgid "Quick Phrase" msgstr "상용구" -#: src/modules/quickphrase/quickphrase.cpp:471 +#: src/modules/quickphrase/quickphrase.cpp:470 msgid "Quick Phrase: " msgstr "상용구:" @@ -2193,6 +2208,10 @@ msgid "Reply" msgstr "답장" +#: src/lib/fcitx/globalconfig.cpp:143 +msgid "Reset state on Focus In" +msgstr "" + #: src/ui/classic/xcbtraywindow.cpp:39 #: src/modules/notificationitem/dbusmenu.cpp:261 msgid "Restart" @@ -2277,6 +2296,10 @@ msgid "Search" msgstr "검색" +#: src/modules/clipboard/clipboard.h:76 +msgid "Seconds before clearing password" +msgstr "" + #: src/lib/fcitx-utils/key.cpp:233 msgctxt "Key name" msgid "Select" @@ -2294,7 +2317,7 @@ msgid "Select specific input method via keyboard" msgstr "키보드를 이용하여 특정 입력기 선택" -#: src/ui/classic/theme.h:174 +#: src/ui/classic/theme.h:172 msgid "Selected Item text color" msgstr "" @@ -2303,22 +2326,22 @@ msgid "Send" msgstr "보내기" -#: src/modules/wayland/waylandmodule.cpp:630 +#: src/modules/wayland/waylandmodule.cpp:660 msgid "" "Sending keyboard layout configuration to wayland compositor from Fcitx is " "not yet supported on current desktop. You may still use Fcitx's internal " "layout conversion by adding layout as input method to the input method group." msgstr "" -#: src/ui/classic/theme.h:182 +#: src/ui/classic/theme.h:180 msgid "Separator Background" msgstr "구분자 배경" -#: src/ui/classic/theme.h:168 +#: src/ui/classic/theme.h:166 msgid "Shadow Margin" msgstr "그림자 여백" -#: src/lib/fcitx/globalconfig.cpp:141 +#: src/lib/fcitx/globalconfig.cpp:147 msgid "Share Input State" msgstr "입력 상태 공유" @@ -2332,27 +2355,27 @@ msgid "Shop" msgstr "숍" -#: src/lib/fcitx/globalconfig.cpp:152 +#: src/lib/fcitx/globalconfig.cpp:158 msgid "Show Input Method Information when changing focus" msgstr "포커스를 변경할 때 입력기 정보 표시" -#: src/lib/fcitx/globalconfig.cpp:149 +#: src/lib/fcitx/globalconfig.cpp:155 msgid "Show Input Method Information when switch input method" msgstr "입력기 변경시 입력기 정보 표시" -#: src/ui/classic/classicui.h:135 +#: src/ui/classic/classicui.h:132 msgid "Show Layout Name In Icon" msgstr "아이콘에 자판 이름 표시" -#: src/lib/fcitx/globalconfig.cpp:155 +#: src/lib/fcitx/globalconfig.cpp:161 msgid "Show compact input method information" msgstr "간결한 입력기 정보 표시" -#: src/lib/fcitx/globalconfig.cpp:158 +#: src/lib/fcitx/globalconfig.cpp:164 msgid "Show first input method information" msgstr "첫 번째 입력기 정보 표시" -#: src/ui/classic/classicui.h:139 +#: src/ui/classic/classicui.h:136 msgid "" "Show layout name in icon if there is more than one active layout. If prefer " "text icon is set to true, this option will be ignored." @@ -2360,21 +2383,21 @@ "활성 자판이 두 개 이상 있는 경우, 아이콘에 자판 이름을 표시합니다. 텍스트 선" "호 아이콘이 참으로 설정된 경우, 이 옵션은 무시됩니다." -#: src/lib/fcitx/globalconfig.cpp:145 +#: src/lib/fcitx/globalconfig.cpp:151 msgid "Show preedit in application" msgstr "응용프로그램에서 사전편집 표시" -#: src/lib/fcitx/globalconfig.cpp:189 +#: src/lib/fcitx/globalconfig.cpp:195 msgid "Show preedit text when typing password" msgstr "" -#: src/im/keyboard/keyboard.h:77 +#: src/im/keyboard/keyboard.h:89 msgid "" "Show preedit when composing, and commit dead key if there is no matching " "sequence." msgstr "" -#: src/lib/fcitx/globalconfig.cpp:64 +#: src/lib/fcitx/globalconfig.cpp:65 msgid "Skip first input method while enumerating" msgstr "열거하는 동안 첫 번째 입력기 건너뛰기" @@ -2388,11 +2411,11 @@ msgid "Space" msgstr "공백" -#: src/ui/classic/theme.h:176 +#: src/ui/classic/theme.h:174 msgid "Spacing" msgstr "간격" -#: src/im/keyboard/keyboard.h:79 src/modules/spell/spell.conf.in.in:3 +#: src/im/keyboard/keyboard.h:91 src/modules/spell/spell.conf.in.in:3 msgid "Spell" msgstr "철자" @@ -2416,8 +2439,8 @@ msgid "Standby" msgstr "대기" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:5 #: data/org.fcitx.Fcitx5.desktop.in.in:5 +#: data/fcitx5-wayland-launcher.desktop.in.in:5 msgid "Start Input Method" msgstr "입력기 시작" @@ -2430,7 +2453,7 @@ msgid "Stop" msgstr "중지" -#: src/ui/classic/theme.h:184 +#: src/ui/classic/theme.h:182 msgid "Sub Menu" msgstr "하위 메뉴" @@ -2439,7 +2462,7 @@ msgid "Subtitle" msgstr "부제" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:25 msgid "Super" msgstr "Super" @@ -2458,17 +2481,17 @@ msgid "Suspend" msgstr "중단" -#: src/lib/fcitx/instance.cpp:451 src/lib/fcitx/instance.cpp:678 +#: src/lib/fcitx/instance.cpp:459 src/lib/fcitx/instance.cpp:687 #: src/modules/xcb/xcbconnection.cpp:556 msgid "Switch group" msgstr "그룹 전환" -#: src/lib/fcitx/instance.cpp:452 src/modules/xcb/xcbconnection.cpp:557 +#: src/lib/fcitx/instance.cpp:460 src/modules/xcb/xcbconnection.cpp:557 #, c++-format msgid "Switch group to {0}" msgstr "{0}(으)로 그룹 전환" -#: src/lib/fcitx/instance.cpp:679 +#: src/lib/fcitx/instance.cpp:688 #, c++-format msgid "Switched group to {0}" msgstr "{0}(으)로 그룹 전환됨" @@ -2492,7 +2515,7 @@ msgid "Task Panel" msgstr "작업 패널" -#: src/lib/fcitx/globalconfig.cpp:44 +#: src/lib/fcitx/globalconfig.cpp:45 msgid "Temporally switch between first and current Input Method" msgstr "첫 번째 입력기와 현재 입력기 사이의 임시 전환" @@ -2520,27 +2543,27 @@ msgid "The script is run as ${1} (${2})." msgstr "스크립트는 ${1} (${2}) 계정으로 실행됩니다." -#: src/ui/classic/classicui.h:155 +#: src/ui/classic/classicui.h:152 msgid "Theme" msgstr "테마" -#: src/ui/classic/classicui.h:101 +#: src/ui/classic/classicui.h:98 msgid "This is only effective when the tray icon is xembed." msgstr "트레이 아이콘이 xembed인 경우에만 유효합니다." -#: src/ui/classic/theme.h:93 src/ui/classic/theme.h:101 +#: src/ui/classic/theme.h:91 src/ui/classic/theme.h:99 msgid "This option is only effective if image is not set." msgstr "이 옵션은 이미지가 설정되지 않은 경우에만 유효합니다." -#: src/ui/classic/classicui.h:194 +#: src/ui/classic/classicui.h:191 msgid "This option require support from wayland compositor." msgstr "" -#: src/ui/classic/classicui.h:173 +#: src/ui/classic/classicui.h:170 msgid "This option will be always disabled on XWayland." msgstr "" -#: src/ui/classic/theme.h:109 +#: src/ui/classic/theme.h:107 msgid "This value should be less than any of margin value." msgstr "이 값은 여백 값보다 작아야 합니다." @@ -2569,7 +2592,7 @@ "확인합니다. 응용 프로그램 멈춤을 포함하여 XIM을 사용하는 다른 일반적인 문제" "는 ${link2}를 참조합니다." -#: src/lib/fcitx/globalconfig.cpp:132 +#: src/lib/fcitx/globalconfig.cpp:133 msgid "Toggle embedded preedit" msgstr "내장된 사전편집 전환" @@ -2578,15 +2601,15 @@ msgid "Tools" msgstr "도구" -#: src/ui/classic/theme.h:48 +#: src/ui/classic/theme.h:46 msgid "Top" msgstr "" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Center" msgstr "상단 중앙" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Left" msgstr "왼쪽 상단" @@ -2595,7 +2618,7 @@ msgid "Top Menu" msgstr "최상위 메뉴" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Top Right" msgstr "오른쪽 상단" @@ -2624,25 +2647,25 @@ msgid "Travel" msgstr "여행" -#: src/ui/classic/classicui.h:124 +#: src/ui/classic/classicui.h:121 msgid "Tray Font" msgstr "트레이 글꼴" -#: src/ui/classic/classicui.h:126 +#: src/ui/classic/classicui.h:123 msgid "Tray Label Outline Color" msgstr "트레이 라벨 윤곽선 색상" -#: src/ui/classic/classicui.h:129 +#: src/ui/classic/classicui.h:126 msgid "Tray Label Text Color" msgstr "트레이 레이블 텍스트 색상" -#: src/lib/fcitx/globalconfig.cpp:34 +#: src/lib/fcitx/globalconfig.cpp:35 msgid "Trigger Input Method" msgstr "트리거 입력기" #: src/modules/imselector/imselector.h:28 -#: src/modules/quickphrase/quickphrase.h:36 src/modules/unicode/unicode.h:31 -#: src/modules/clipboard/clipboard.h:42 +#: src/modules/quickphrase/quickphrase.h:32 src/modules/unicode/unicode.h:28 +#: src/modules/clipboard/clipboard.h:48 msgid "Trigger Key" msgstr "트리거 키" @@ -2650,23 +2673,23 @@ msgid "Trigger Key for only current input context" msgstr "현재 입력 컨텍스트에 대한 트리거 키" -#: src/im/keyboard/keyboard.h:62 +#: src/im/keyboard/keyboard.h:74 msgid "Trigger hint mode" msgstr "트리거 힌트 모드" -#: src/im/keyboard/keyboard.h:67 +#: src/im/keyboard/keyboard.h:79 msgid "Trigger hint mode for one time" msgstr "힌트 모드를 한 번만 트리거" -#: src/im/keyboard/keyboard.h:82 +#: src/im/keyboard/keyboard.h:94 msgid "Type special characters with long press" msgstr "길게 눌러 특수 문자 입력" -#: src/modules/unicode/unicode.h:36 +#: src/modules/unicode/unicode.h:33 msgid "Type unicode in Hex number" msgstr "" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:22 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:26 msgid "Typing with Fcitx and Kimpanel" msgstr "Fcitx 및 Kimpanel로 입력" @@ -2683,7 +2706,7 @@ msgid "Unicode" msgstr "유니코드" -#: src/modules/unicode/unicode.cpp:456 +#: src/modules/unicode/unicode.cpp:455 msgid "Unicode: " msgstr "유니코드:" @@ -2692,27 +2715,27 @@ msgid "Up" msgstr "위쪽" -#: src/frontend/xim/xim.h:33 +#: src/frontend/xim/xim.h:27 msgid "Use On The Spot Style (Needs restarting)" msgstr "스팟 스타일에서 사용(다시 시작 필요)" -#: src/ui/classic/classicui.h:169 +#: src/ui/classic/classicui.h:166 msgid "Use Per Screen DPI on X11" msgstr "" -#: src/ui/classic/theme.h:151 +#: src/ui/classic/theme.h:149 msgid "Use all horizontal space for highlight when it is vertical list" msgstr "세로 목록 일 때 강조 표시에 모든 가로 공간 사용" -#: src/ui/classic/classicui.h:146 +#: src/ui/classic/classicui.h:143 msgid "Use input method language to display text" msgstr "텍스트 표시할 때 입력기 언어 사용" -#: src/ui/classic/classicui.h:116 +#: src/ui/classic/classicui.h:113 msgid "Use mouse wheel to go to prev or next page" msgstr "마우스 휠을 사용하여 이전 또는 다음 페이지로 이동" -#: src/im/keyboard/keyboard.h:73 +#: src/im/keyboard/keyboard.h:85 msgid "Use new compose behavior" msgstr "" @@ -2730,7 +2753,7 @@ "environment:" msgstr "" -#: src/ui/classic/theme.h:192 +#: src/ui/classic/theme.h:190 msgid "Version" msgstr "버전" @@ -2738,7 +2761,7 @@ msgid "Version Line:" msgstr "버전 줄:" -#: src/ui/classic/classicui.h:114 +#: src/ui/classic/classicui.h:111 msgid "Vertical Candidate List" msgstr "세로 후보 목록" @@ -2795,7 +2818,7 @@ msgid "Wayland" msgstr "Wayland" -#: src/modules/wayland/waylandmodule.cpp:558 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Wayland Diagnose" msgstr "" @@ -2808,7 +2831,14 @@ msgid "WebCam" msgstr "웹캠" -#: src/lib/fcitx/globalconfig.cpp:171 +#: src/modules/clipboard/clipboard.h:65 +msgid "" +"When copying password from a password manager, if the password manager " +"supports marking the clipboard content as password, this clipboard update " +"will be ignored." +msgstr "" + +#: src/lib/fcitx/globalconfig.cpp:177 msgid "" "Whether to override the xkb option from display server. It will not affect " "the xkb option send to display, but just the xkb options for custom xkb " @@ -2913,20 +2943,16 @@ #: data/fcitx5-configtool.sh:137 msgid "" "You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be " -"found. Now it will open config directory." +"found. The package name provides this binary is usually fcitx5-configtool. " +"Now it will open the configuration directory." msgstr "" -"현재 Fcitx를 GUI로 실행하고 있지만 Fcitx5-config-qt를 찾을 수 없습니다. 대신 " -"설정 디렉토리를 엽니다." #: data/fcitx5-configtool.sh:134 msgid "" -"You're currently running KDE, but KCModule for fcitx couldn't be found, the " -"package name of this KCModule is usually kcm-fcitx or kde-config-fcitx. Now " -"it will open config directory." -msgstr "" -"현재 KDE를 실행하고 있지만 Fcitx용 KCModule을 찾을 수 없습니다. 이 KCModule" -"의 패키지 이름은 일반적으로 kcm-fcitx 또는 kde-config-fcitx입니다. 대신 설정 " -"디렉토리를 엽니다." +"You're currently running KDE, but KCModule for fcitx couldn't be found. The " +"package name of this KCModule is usually kcm-fcitx5, kde-config-fcitx5, or " +"fcitx5-configtool. Now it will open the configuration directory." +msgstr "" #: data/fcitx5-diagnose.sh:1185 msgid "" @@ -2991,17 +3017,17 @@ msgid "version:" msgstr "버전:" -#: src/im/keyboard/keyboard.cpp:292 +#: src/im/keyboard/keyboard.cpp:312 #, c++-format msgid "{0} (Not Available)" msgstr "{0} (사용할 수 없음)" -#: src/lib/fcitx/instance.cpp:409 +#: src/lib/fcitx/instance.cpp:417 #, c++-format msgid "{0} (Not available)" msgstr "{0} (사용할 수 없음)" -#: src/lib/fcitx/instance.cpp:406 +#: src/lib/fcitx/instance.cpp:414 #, c++-format msgid "{0} ({1})" msgstr "{0} ({1})" diff -Nru fcitx5-5.1.7/po/ru.po fcitx5-5.1.11/po/ru.po --- fcitx5-5.1.7/po/ru.po 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/po/ru.po 2024-10-09 03:48:05.000000000 +0800 @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: fcitx5\n" "Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" -"POT-Creation-Date: 2024-01-15 20:25+0000\n" +"POT-Creation-Date: 2024-07-26 20:24+0000\n" "PO-Revision-Date: 2017-11-23 04:14+0000\n" "Last-Translator: Dmitry <dmitrydmitry761@gmail.com>, 2024\n" "Language-Team: Russian (https://app.transifex.com/fcitx/teams/12005/ru/)\n" @@ -51,11 +51,11 @@ msgid "${1} works properly." msgstr "${1} работает правильно." -#: src/lib/fcitx/instance.cpp:411 +#: src/lib/fcitx/instance.cpp:419 msgid "(Not available)" msgstr "(Недоступно)" -#: src/modules/unicode/unicode.cpp:458 +#: src/modules/unicode/unicode.cpp:457 msgid "(Type to search unicode by code or description)" msgstr "(Введите для поиска юникода по коду или описанию)" @@ -79,23 +79,31 @@ msgid "/XIM" msgstr "/XIM" -#: src/modules/unicode/charselectdata.cpp:215 +#: src/modules/clipboard/clipboard.h:80 +msgid "0 means never clear password." +msgstr "0 означает, что пароль никогда не будет сброшен." + +#: src/modules/unicode/charselectdata.cpp:213 msgid "<Low Surrogate>" msgstr "<Низкий заменитель>" -#: src/modules/unicode/charselectdata.cpp:211 +#: src/modules/unicode/charselectdata.cpp:209 msgid "<Non Private Use High Surrogate>" msgstr "<Не лично использовать высокий заменитель>" -#: src/modules/unicode/charselectdata.cpp:213 +#: src/modules/clipboard/clipboard.cpp:116 +msgid "<Passowrd>" +msgstr "<Пароль>" + +#: src/modules/unicode/charselectdata.cpp:211 msgid "<Private Use High Surrogate>" msgstr "<Лично использовать высокий заменитель>" -#: src/modules/unicode/charselectdata.cpp:217 +#: src/modules/unicode/charselectdata.cpp:215 msgid "<Private Use>" msgstr "<Для личного использования>" -#: src/modules/unicode/charselectdata.cpp:247 +#: src/modules/unicode/charselectdata.cpp:245 msgid "<not assigned>" msgstr "<не назначен>" @@ -103,15 +111,15 @@ msgid "A virtual keyboard backend based on DBus" msgstr "Серверная часть виртуальной клавиатуры на основе DBus" -#: src/ui/classic/theme.h:204 +#: src/ui/classic/theme.h:202 msgid "Accent Colors" msgstr "Акцентные цвета" -#: src/lib/fcitx/globalconfig.cpp:82 +#: src/lib/fcitx/globalconfig.cpp:83 msgid "Activate Input Method" msgstr "Активировать метод ввода" -#: src/lib/fcitx/globalconfig.cpp:138 +#: src/lib/fcitx/globalconfig.cpp:139 msgid "Active By Default" msgstr "Активен по умолчанию" @@ -141,7 +149,7 @@ msgid "Adjust Brightness" msgstr "Отрегулировать яркость" -#: src/lib/fcitx/globalconfig.cpp:26 +#: src/lib/fcitx/globalconfig.cpp:27 msgid "All" msgstr "Все" @@ -157,21 +165,21 @@ msgid "All locales:" msgstr "Все локали:" -#: src/modules/xcb/xcbmodule.h:30 +#: src/modules/xcb/xcbmodule.h:26 msgid "Allow Overriding System XKB Settings" msgstr "Разрешить переопределение системных настроек XKB" -#: src/modules/wayland/waylandmodule.h:36 +#: src/modules/wayland/waylandmodule.h:35 msgid "Allow Overriding System XKB Settings (Only support KDE 5)" msgstr "" "Разрешить переопределение системных настроек XKB (поддерживается только KDE " "5)" -#: src/lib/fcitx/globalconfig.cpp:186 +#: src/lib/fcitx/globalconfig.cpp:192 msgid "Allow input method in the password field" msgstr "Разрешить метод ввода в поле пароля" -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:31 msgid "Alt" msgstr "Alt" @@ -180,21 +188,21 @@ msgid "Alt" msgstr "Alt" -#: src/modules/xcb/xcbmodule.h:33 +#: src/modules/xcb/xcbmodule.h:29 msgid "Always set layout to be only group layout" msgstr "Всегда устанавливайте раскладку только для групповой раскладки" #: src/lib/fcitx-utils/key.cpp:151 msgctxt "Key name" msgid "Application Left" -msgstr "Application Left" +msgstr "Приложение слева" #: src/lib/fcitx-utils/key.cpp:152 msgctxt "Key name" msgid "Application Right" -msgstr "Application Right" +msgstr "Приложение справа" -#: src/im/keyboard/keyboard.h:87 +#: src/im/keyboard/keyboard.h:99 msgid "Applications disabled for long press" msgstr "Отключение приложений при длительном нажатии" @@ -213,7 +221,7 @@ msgid "Audio Repeat" msgstr "Повтор аудио" -#: src/ui/classic/theme.h:193 +#: src/ui/classic/theme.h:191 msgid "Author" msgstr "Автор" @@ -236,18 +244,18 @@ msgid "Backends" msgstr "Бэкенды" -#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 +#: src/ui/classic/theme.h:156 src/ui/classic/theme.h:176 msgid "Background" msgstr "Фон" -#: src/ui/classic/theme.h:85 +#: src/ui/classic/theme.h:83 msgid "Background Image" msgstr "Фоновое изображение" #: src/lib/fcitx-utils/key.cpp:42 msgctxt "Key name" msgid "Backspace" -msgstr "BackSpace" +msgstr "Backspace" #: data/fcitx5-diagnose.sh:827 msgid "Bash Version:" @@ -262,7 +270,7 @@ msgid "Beginner's Guide" msgstr "Руководство для начинающих" -#: src/lib/fcitx/globalconfig.cpp:203 +#: src/lib/fcitx/globalconfig.cpp:209 msgid "Behavior" msgstr "Поведение" @@ -276,11 +284,11 @@ msgid "Bluetooth" msgstr "Блютус" -#: src/ui/classic/theme.h:148 +#: src/ui/classic/theme.h:146 msgid "Blur Margin" msgstr "Размытый Край" -#: src/ui/classic/theme.h:147 +#: src/ui/classic/theme.h:145 msgid "Blur mask" msgstr "Размытая маска" @@ -289,27 +297,27 @@ msgid "Book" msgstr "Книга" -#: src/ui/classic/theme.h:97 +#: src/ui/classic/theme.h:95 msgid "Border Color" msgstr "Цвет границы" -#: src/ui/classic/theme.h:105 +#: src/ui/classic/theme.h:103 msgid "Border width" msgstr "Ширина рамки" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Bottom" msgstr "Bottom" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Center" msgstr "Bottom Center" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Left" msgstr "Bottom Left" -#: src/ui/classic/theme.h:39 +#: src/ui/classic/theme.h:37 msgid "Bottom Right" msgstr "Bottom Right" @@ -333,7 +341,7 @@ msgid "Cancel" msgstr "Отменить" -#: src/im/keyboard/longpress.h:19 +#: src/im/keyboard/longpress.h:23 msgid "Candidates" msgstr "Кандидаты" @@ -425,15 +433,15 @@ msgid "CapsLock" msgstr "CapsLock" -#: src/ui/classic/theme.h:37 src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:35 src/ui/classic/theme.h:47 msgid "Center" msgstr "Center" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Center Left" msgstr "Center Left" -#: src/ui/classic/theme.h:37 +#: src/ui/classic/theme.h:35 msgid "Center Right" msgstr "Center Right" @@ -441,11 +449,11 @@ msgid "Change Fcitx 5 Configuration" msgstr "Изменить конфигурацию Fcitx 5" -#: src/ui/classic/theme.h:183 +#: src/ui/classic/theme.h:181 msgid "Check box" msgstr "Флажок" -#: src/im/keyboard/keyboard.h:56 src/modules/quickphrase/quickphrase.h:41 +#: src/im/keyboard/keyboard.h:68 src/modules/quickphrase/quickphrase.h:43 msgid "Choose key modifier" msgstr "Выбрать клавишу-модификатор" @@ -458,7 +466,7 @@ msgid "Clear" msgstr "Очистить" -#: src/ui/classic/theme.h:131 +#: src/ui/classic/theme.h:129 msgid "Click Margin" msgstr "Нажмите на Поле" @@ -466,7 +474,7 @@ msgid "Clipboard" msgstr "Буфер обмена" -#: src/modules/clipboard/clipboard.cpp:353 +#: src/modules/clipboard/clipboard.cpp:369 msgid "Clipboard (Press BackSpace/Delete to clear history):" msgstr "Буфер обмена (нажмите BackSpace/Delete, чтобы очистить историю):" @@ -480,7 +488,7 @@ msgid "Code input" msgstr "Ввести код" -#: src/ui/classic/theme.h:89 +#: src/ui/classic/theme.h:87 msgid "Color" msgstr "Цвет" @@ -489,19 +497,19 @@ msgid "Community" msgstr "Сообщество" -#: src/im/keyboard/keyboard.cpp:685 +#: src/im/keyboard/keyboard.cpp:708 msgid "Completion" msgstr "Завершение" -#: src/im/keyboard/keyboard.cpp:676 +#: src/im/keyboard/keyboard.cpp:699 msgid "Completion is disabled." msgstr "Завершение отключено." -#: src/im/keyboard/keyboard.cpp:679 +#: src/im/keyboard/keyboard.cpp:702 msgid "Completion is enabled temporarily." msgstr "Завершение временно включено." -#: src/im/keyboard/keyboard.cpp:681 +#: src/im/keyboard/keyboard.cpp:704 msgid "Completion is enabled." msgstr "Завершение включено." @@ -534,11 +542,11 @@ msgstr "Настройка:" #: src/ui/classic/xcbtraywindow.cpp:38 -#: src/modules/notificationitem/dbusmenu.cpp:254 +#: src/modules/notificationitem/dbusmenu.cpp:253 msgid "Configure" msgstr "Настроить" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:31 msgid "Control" msgstr "Control" @@ -572,7 +580,7 @@ msgid "Custom" msgstr "Пользовательский" -#: src/lib/fcitx/globalconfig.cpp:176 +#: src/lib/fcitx/globalconfig.cpp:182 msgid "Custom Xkb Option" msgstr "Пользовательский вариант Xkb" @@ -606,11 +614,11 @@ msgid "DOS" msgstr "DOS" -#: src/ui/classic/classicui.h:158 +#: src/ui/classic/classicui.h:155 msgid "Dark Theme" msgstr "Тёмная тема" -#: src/lib/fcitx/globalconfig.cpp:91 +#: src/lib/fcitx/globalconfig.cpp:92 msgid "Deactivate Input Method" msgstr "Деактивация метода ввода" @@ -618,7 +626,7 @@ msgid "Debug information from dbus:" msgstr "Отладочная информация от dbus:" -#: src/lib/fcitx/inputmethodmanager.cpp:138 src/lib/fcitx/instance.cpp:358 +#: src/lib/fcitx/inputmethodmanager.cpp:153 src/lib/fcitx/instance.cpp:366 #: src/ui/classic/themes/default/theme.conf.in:3 msgid "Default" msgstr "По умолчанию" @@ -627,23 +635,23 @@ msgid "Default Dark" msgstr "Тёмная по умолчанию" -#: src/lib/fcitx/globalconfig.cpp:127 +#: src/lib/fcitx/globalconfig.cpp:128 msgid "Default Next Candidate" -msgstr "Следующий кандидат по умолчанию" +msgstr "Следующее слово-кандидат по умолчанию" -#: src/lib/fcitx/globalconfig.cpp:111 +#: src/lib/fcitx/globalconfig.cpp:112 msgid "Default Next page" msgstr "Следующая страница по умолчанию" -#: src/lib/fcitx/globalconfig.cpp:121 +#: src/lib/fcitx/globalconfig.cpp:122 msgid "Default Previous Candidate" -msgstr "Предыдущий кандидат по умолчанию" +msgstr "Предыдущее слово-кандидат по умолчанию" -#: src/lib/fcitx/globalconfig.cpp:99 +#: src/lib/fcitx/globalconfig.cpp:100 msgid "Default Previous page" msgstr "Предыдущая страница по умолчанию" -#: src/lib/fcitx/globalconfig.cpp:160 +#: src/lib/fcitx/globalconfig.cpp:166 msgid "Default page size" msgstr "Размер страницы по умолчанию" @@ -652,7 +660,7 @@ msgid "Delete" msgstr "Удалить" -#: src/ui/classic/theme.h:195 +#: src/ui/classic/theme.h:193 msgid "Description" msgstr "Описание" @@ -664,7 +672,7 @@ msgid "Desktop environment is ${1}." msgstr "Среда рабочего стола: ${1}." -#: src/modules/wayland/waylandmodule.cpp:590 +#: src/modules/wayland/waylandmodule.cpp:616 msgid "" "Detect GTK_IM_MODULE and QT_IM_MODULE being set and Wayland Input method " "frontend is working. It is recommended to unset GTK_IM_MODULE and " @@ -677,7 +685,7 @@ "более подробной информации см. https://fcitx-im.org/wiki/" "Using_Fcitx_5_on_Wayland#KDE_Plasma" -#: src/modules/wayland/waylandmodule.cpp:619 +#: src/modules/wayland/waylandmodule.cpp:645 msgid "" "Detect GTK_IM_MODULE being set and Wayland Input method frontend is working. " "It is recommended to unset GTK_IM_MODULE and use Wayland input method " @@ -700,10 +708,14 @@ msgid "Display" msgstr "Дисплей" -#: src/modules/notifications/notifications.cpp:204 +#: src/modules/notifications/notifications.cpp:201 msgid "Do not show again" msgstr "Больше не показывать" +#: src/modules/clipboard/clipboard.h:61 +msgid "Do not show password from password managers" +msgstr "Не показывать пароль от менеджеров паролей" + #: src/lib/fcitx-utils/key.cpp:162 msgctxt "Key name" msgid "Documents" @@ -714,7 +726,7 @@ msgid "Down" msgstr "Вниз" -#: src/modules/quickphrase/quickphrase.h:47 +#: src/modules/quickphrase/quickphrase.h:49 msgid "Editor" msgstr "Редактор" @@ -737,31 +749,31 @@ msgid "Emoji" msgstr "Эмодзи" -#: src/im/keyboard/longpress.h:17 +#: src/im/keyboard/longpress.h:21 msgid "Enable" msgstr "Включить" -#: src/ui/classic/theme.h:145 +#: src/ui/classic/theme.h:143 msgid "Enable Blur on KWin" msgstr "Включить размытие на KWin" -#: src/modules/quickphrase/quickphrase.h:43 +#: src/modules/quickphrase/quickphrase.h:45 msgid "Enable Spell check" msgstr "Включить проверку орфографии" -#: src/im/keyboard/keyboard.h:51 +#: src/im/keyboard/keyboard.h:63 msgid "Enable emoji in hint" msgstr "Включить эмодзи в подсказке" -#: src/im/keyboard/keyboard.h:54 +#: src/im/keyboard/keyboard.h:66 msgid "Enable emoji in quickphrase" msgstr "Включить эмодзи в быстрой фразе" -#: src/ui/classic/classicui.h:190 +#: src/ui/classic/classicui.h:187 msgid "Enable fractional scale under Wayland" msgstr "Включить дробную шкалу в Wayland" -#: src/im/keyboard/keyboard.h:59 +#: src/im/keyboard/keyboard.h:71 msgid "Enable hint by default" msgstr "Включить подсказку по умолчанию" @@ -774,27 +786,27 @@ msgid "End" msgstr "Окончание" -#: src/im/keyboard/longpress.h:26 +#: src/im/keyboard/longpress.h:30 msgid "Entries" msgstr "Записи" -#: src/lib/fcitx/globalconfig.cpp:58 +#: src/lib/fcitx/globalconfig.cpp:59 msgid "Enumerate Input Method Backward" msgstr "Перечислить методы ввода в обратном порядке" -#: src/lib/fcitx/globalconfig.cpp:51 +#: src/lib/fcitx/globalconfig.cpp:52 msgid "Enumerate Input Method Forward" msgstr "Перечислить методы ввода в прямом порядке" -#: src/lib/fcitx/globalconfig.cpp:75 +#: src/lib/fcitx/globalconfig.cpp:76 msgid "Enumerate Input Method Group Backward" msgstr "Перечислить группы методов ввода в обратном порядке" -#: src/lib/fcitx/globalconfig.cpp:68 +#: src/lib/fcitx/globalconfig.cpp:69 msgid "Enumerate Input Method Group Forward" msgstr "Перечислить группы методов ввода в прямом порядке" -#: src/lib/fcitx/globalconfig.cpp:40 +#: src/lib/fcitx/globalconfig.cpp:41 msgid "Enumerate when press trigger key repeatedly" msgstr "Перечислять при повторном нажатии клавиши-триггера" @@ -839,7 +851,7 @@ msgstr "Выполнить" #: src/ui/classic/xcbtraywindow.cpp:40 -#: src/modules/notificationitem/dbusmenu.cpp:268 +#: src/modules/notificationitem/dbusmenu.cpp:267 msgid "Exit" msgstr "Выход" @@ -851,7 +863,7 @@ msgid "Failed to find ${1} in the output of ${2}" msgstr "Не удалось найти ${1} в выводе ${2}" -#: src/modules/quickphrase/quickphrase.h:45 +#: src/modules/quickphrase/quickphrase.h:47 msgid "Fallback Spell check language" msgstr "Резервный язык проверки орфографии" @@ -860,7 +872,7 @@ msgid "Favorites" msgstr "Избранное" -#: src/modules/wayland/waylandmodule.cpp:562 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Fcitx" msgstr "Fcitx" @@ -873,7 +885,7 @@ msgid "Fcitx 5 Configuration" msgstr "Конфигурация Fcitx 5" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:3 +#: data/fcitx5-wayland-launcher.desktop.in.in:3 msgid "Fcitx 5 Wayland Launcher (Experimental)" msgstr "Fcitx 5 Wayland Launcher (Экспериментально)" @@ -889,7 +901,7 @@ msgid "Fcitx State:" msgstr "Состояние Fcitx:" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:9 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:12 msgid "" "Fcitx is an input method framework. It can help you to type your own " "language. It also features variant choice of addons that improve your typing " @@ -899,7 +911,7 @@ "собственный язык. Она также предлагает различные варианты дополнений, " "которые улучшают удобство набора текста." -#: src/modules/wayland/waylandmodule.cpp:577 +#: src/modules/wayland/waylandmodule.cpp:603 msgid "" "Fcitx should be launched by KWin under KDE Wayland in order to use Wayland " "input method frontend. This can improve the experience when using Fcitx on " @@ -935,17 +947,17 @@ msgid "Find" msgstr "Найти" -#: src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:47 msgid "First Candidate" -msgstr "Первый кандидат" +msgstr "Первое слово-кандидат" -#: src/ui/classic/classicui.h:164 +#: src/ui/classic/classicui.h:161 msgid "Follow system accent color if it is supported by theme and desktop" msgstr "" "Следовать цветовому акценту системы, если он поддерживается темой и рабочим " "столом" -#: src/ui/classic/classicui.h:160 +#: src/ui/classic/classicui.h:157 msgid "Follow system light/dark color scheme" msgstr "Следовать системной светлой/темной цветовой схеме" @@ -961,11 +973,11 @@ "ошибка, если вы не используете какое-либо приложение Qt с определенной " "версией Qt или используете поддержку ввода текста Qt под Wayland." -#: src/ui/classic/classicui.h:120 +#: src/ui/classic/classicui.h:117 msgid "Font" msgstr "Шрифт" -#: src/ui/classic/classicui.h:150 +#: src/ui/classic/classicui.h:147 msgid "" "For example, display character with Chinese variant when using Pinyin and " "Japanese variant when using Anthy. The font configuration needs to support " @@ -975,13 +987,13 @@ "и японским вариантом при использовании Anthy. Конфигурация шрифта должна " "поддерживать это, чтобы использовать эту функцию." -#: src/modules/wayland/waylandmodule.cpp:645 +#: src/modules/wayland/waylandmodule.cpp:671 msgid "For more details see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland" msgstr "" "Для получения более подробной информации см. https://fcitx-im.org/wiki/" "Using_Fcitx_5_on_Wayland" -#: src/ui/classic/classicui.h:178 +#: src/ui/classic/classicui.h:175 msgid "Force font DPI on Wayland" msgstr "Принудительное изменение DPI шрифта на Wayland" @@ -1085,16 +1097,16 @@ msgstr "Зеленый" #: src/ui/classic/xcbtraywindow.cpp:36 -#: src/modules/notificationitem/dbusmenu.cpp:244 +#: src/modules/notificationitem/dbusmenu.cpp:243 msgid "Group" msgstr "Группа" -#: src/lib/fcitx/instance.cpp:415 +#: src/lib/fcitx/instance.cpp:423 #, c++-format msgid "Group {0}: {1}" msgstr "Группа {0}: {1}" -#: src/lib/fcitx/instance.cpp:360 +#: src/lib/fcitx/instance.cpp:368 #, c++-format msgid "Group {}" msgstr "Группа {}" @@ -1190,31 +1202,35 @@ msgid "Hibernate" msgstr "Гибернация" -#: src/modules/notifications/notifications.h:28 +#: src/modules/notifications/notifications.h:26 msgid "Hidden Notifications" msgstr "Скрытые уведомления" -#: src/ui/classic/theme.h:116 +#: src/modules/clipboard/clipboard.h:70 +msgid "Hidden clipboard content that contains a password" +msgstr "Скрытое содержимое буфера обмена, содержащее пароль" + +#: src/ui/classic/theme.h:114 msgid "Hide overlay if size does not fit" msgstr "Скрыть наложение, если размер не подходит" -#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:180 +#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 msgid "Highlight Background" msgstr "Выделить фон" -#: src/ui/classic/theme.h:140 +#: src/ui/classic/theme.h:138 msgid "Highlight Background color" msgstr "Цвет фона выделения" -#: src/ui/classic/theme.h:143 +#: src/ui/classic/theme.h:141 msgid "Highlight Candidate Color" -msgstr "Выделить цветом кандидат" +msgstr "Выделить цветом слово-кандидат" -#: src/ui/classic/theme.h:126 +#: src/ui/classic/theme.h:124 msgid "Highlight Click Margin" msgstr "Выделить поле клика" -#: src/ui/classic/theme.h:138 +#: src/ui/classic/theme.h:136 msgid "Highlight text color" msgstr "Выделить цветом текст" @@ -1257,7 +1273,7 @@ msgid "Hot Links" msgstr "Горячие ссылки" -#: src/lib/fcitx/globalconfig.cpp:201 +#: src/lib/fcitx/globalconfig.cpp:207 msgid "Hotkey" msgstr "Горячая клавиша" @@ -1281,7 +1297,7 @@ msgid "IBus Frontend" msgstr "Интерфейс IBus" -#: src/lib/fcitx/globalconfig.cpp:197 +#: src/lib/fcitx/globalconfig.cpp:203 msgid "" "If value is 0, the user data may only be saved when fcitx quits (e.g. " "logout)." @@ -1311,17 +1327,16 @@ "интеграции с IBus, чтобы использовать любой метод ввода, отличный от ${2}. " "Для получения подробной информации см. ${link}." -#: src/ui/classic/theme.h:129 +#: src/ui/classic/theme.h:127 msgid "Image" msgstr "Изображение" -#: src/im/keyboard/keyboard.cpp:684 src/lib/fcitx/instance.cpp:450 -#: src/lib/fcitx/instance.cpp:677 src/lib/fcitx/instance.cpp:839 -#: src/modules/notificationitem/notificationitem.cpp:147 -#: src/modules/notificationitem/notificationitem.cpp:235 -#: src/modules/xcb/xcbconnection.cpp:555 -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:4 -#: data/org.fcitx.Fcitx5.desktop.in.in:4 +#: src/im/keyboard/keyboard.cpp:707 src/lib/fcitx/instance.cpp:458 +#: src/lib/fcitx/instance.cpp:686 src/lib/fcitx/instance.cpp:848 +#: src/modules/notificationitem/notificationitem.cpp:142 +#: src/modules/notificationitem/notificationitem.cpp:230 +#: src/modules/xcb/xcbconnection.cpp:555 data/org.fcitx.Fcitx5.desktop.in.in:4 +#: data/fcitx5-wayland-launcher.desktop.in.in:4 #: data/org.fcitx.Fcitx5.metainfo.xml.in:7 msgid "Input Method" msgstr "Метод ввода" @@ -1338,27 +1353,27 @@ msgid "Input Methods:" msgstr "Методы ввода:" -#: src/ui/classic/theme.h:201 +#: src/ui/classic/theme.h:199 msgid "Input Panel" msgstr "Поле ввода" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Background" msgstr "Фон поля ввода" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Border" msgstr "Граница поля ввода" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight" msgstr "Поле ввода выделено" -#: src/ui/classic/theme.h:66 +#: src/ui/classic/theme.h:64 msgid "Input Panel Highlight Candidate Background" msgstr "В поле ввода выделен фон слова-кандидата" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight Candidate Border" msgstr "Выделение границы слова-кандидата в поле ввода" @@ -1366,7 +1381,7 @@ msgid "Input method selector" msgstr "Выбор метода ввода" -#: src/lib/fcitx/globalconfig.cpp:103 src/lib/fcitx/globalconfig.cpp:115 +#: src/lib/fcitx/globalconfig.cpp:104 src/lib/fcitx/globalconfig.cpp:116 msgid "" "Input methods may have different setup in their own configuration. This is " "commonly used by modules like clipboard or quickphrase." @@ -1380,7 +1395,7 @@ msgid "Insert" msgstr "Вставка" -#: src/lib/fcitx/globalconfig.cpp:193 +#: src/lib/fcitx/globalconfig.cpp:199 msgid "Interval of saving user data in minutes" msgstr "Интервал сохранения пользовательских данных в минутах" @@ -1396,7 +1411,7 @@ "Можно использовать ${1} встроенный модуль Wayland im, если составитель " "полностью поддерживает протокол ввода текста, используемый ${1}." -#: src/modules/wayland/waylandmodule.cpp:602 +#: src/modules/wayland/waylandmodule.cpp:628 msgid "" "It is recommended to install Input Method Panel GNOME Shell Extensions to " "provide the input method popup. https://extensions.gnome.org/extension/261/" @@ -1414,7 +1429,7 @@ msgid "KDE Input Method Panel" msgstr "Панель метода ввода KDE" -#: src/ui/classic/classicui.cpp:280 +#: src/ui/classic/classicui.cpp:278 msgid "KDE Plasma (Experimental)" msgstr "KDE Plasma (экспериментально)" @@ -1438,20 +1453,20 @@ msgid "Katakana" msgstr "Катакана" -#: src/im/keyboard/longpress.h:16 +#: src/im/keyboard/longpress.h:20 msgid "Key" msgstr "Клавиша" -#: src/im/keyboard/keyboard.cpp:315 src/im/keyboard/keyboard.conf.in.in:3 +#: src/im/keyboard/keyboard.cpp:335 src/im/keyboard/keyboard.conf.in.in:3 msgid "Keyboard" msgstr "Клавиатура" -#: src/im/keyboard/keyboard.cpp:231 +#: src/im/keyboard/keyboard.cpp:251 #, c++-format msgid "Keyboard - {0}" msgstr "Клавиатура - {0}" -#: src/im/keyboard/keyboard.cpp:250 +#: src/im/keyboard/keyboard.cpp:270 #, c++-format msgid "Keyboard - {0} - {1}" msgstr "Клавиатура - {0} - {1}" @@ -1659,9 +1674,9 @@ msgid "Kimpanel process:" msgstr "Процесс Kimpanel:" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Last Candidate" -msgstr "Последний кандидат" +msgstr "Последнее слово-кандидат" #: src/lib/fcitx-utils/key.cpp:112 msgctxt "Key name" @@ -1796,7 +1811,7 @@ msgid "Logoff" msgstr "Выйти" -#: src/im/keyboard/keyboard.h:89 +#: src/im/keyboard/keyboard.h:102 msgid "Long Press behavior" msgstr "Поведение при длительном нажатии" @@ -1805,31 +1820,31 @@ msgid "Mail Forward" msgstr "Пересылка почты" -#: src/ui/classic/theme.h:118 +#: src/ui/classic/theme.h:116 msgid "Margin" msgstr "Поле" -#: src/ui/classic/theme.h:80 +#: src/ui/classic/theme.h:78 msgid "Margin Bottom" msgstr "Поле внизу" -#: src/ui/classic/theme.h:74 +#: src/ui/classic/theme.h:72 msgid "Margin Left" msgstr "Поле слева" -#: src/ui/classic/theme.h:76 +#: src/ui/classic/theme.h:74 msgid "Margin Right" msgstr "Поле справа" -#: src/ui/classic/theme.h:78 +#: src/ui/classic/theme.h:76 msgid "Margin Top" msgstr "Поле сверху" -#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 +#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:184 msgid "Margin around all content" msgstr "Поля вокруг всего содержимого" -#: src/ui/classic/theme.h:164 src/ui/classic/theme.h:188 +#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 msgid "Margin around text" msgstr "Поле вокруг текста" @@ -1888,7 +1903,7 @@ msgid "Meeting" msgstr "Встреча" -#: src/ui/classic/theme.h:202 +#: src/ui/classic/theme.h:200 msgid "Menu" msgstr "Меню" @@ -1897,15 +1912,15 @@ msgid "Menu" msgstr "Меню" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Background" msgstr "Фон меню" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Border" msgstr "Граница меню" -#: src/ui/classic/classicui.h:122 +#: src/ui/classic/classicui.h:119 msgid "Menu Font" msgstr "Шрифт меню" @@ -1914,15 +1929,15 @@ msgid "Menu PB" msgstr "Menu PB" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Background" msgstr "Фон выбранного пункта меню" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Border" msgstr "Граница выбранного пункта меню" -#: src/ui/classic/theme.h:70 +#: src/ui/classic/theme.h:68 msgid "Menu Separator" msgstr "Разделитель меню" @@ -1931,7 +1946,7 @@ msgid "Messenger" msgstr "Мессенджер" -#: src/ui/classic/theme.h:199 +#: src/ui/classic/theme.h:197 msgid "Metadata" msgstr "Метаданные" @@ -1958,7 +1973,7 @@ #: src/lib/fcitx-utils/key.cpp:251 msgctxt "Key name" msgid "Multiple Candidate" -msgstr "Несколько кандидатов" +msgstr "Несколько слов-кандидатов" #: src/lib/fcitx-utils/key.cpp:203 msgctxt "Key name" @@ -1970,7 +1985,7 @@ msgid "My Sites" msgstr "Мои сайты" -#: src/ui/classic/theme.h:191 +#: src/ui/classic/theme.h:189 msgid "Name" msgstr "Имя" @@ -1984,31 +1999,31 @@ msgid "News" msgstr "Новости" -#: src/im/keyboard/keyboard.h:48 +#: src/im/keyboard/keyboard.h:60 msgid "Next Candidate" -msgstr "Следующий кандидат" +msgstr "Следующее слово-кандидат" -#: src/ui/classic/theme.h:166 +#: src/ui/classic/theme.h:164 msgid "Next Page Button" msgstr "Кнопка следующей страницы" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "No" msgstr "Нет" -#: src/modules/clipboard/clipboard.cpp:355 +#: src/modules/clipboard/clipboard.cpp:371 msgid "No clipboard history." msgstr "История буфера обмена отсутствует." -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:28 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:30 msgid "None" msgstr "Нет" -#: src/ui/classic/theme.h:135 src/ui/classic/theme.h:171 +#: src/ui/classic/theme.h:133 src/ui/classic/theme.h:169 msgid "Normal text color" msgstr "Обычный цвет текста" -#: src/ui/classic/classicui.h:182 +#: src/ui/classic/classicui.h:179 msgid "" "Normally Wayland uses 96 as font DPI in combinition with the screen scale " "factor. This option allows you to override the font DPI. If the value is 0, " @@ -2035,11 +2050,11 @@ msgid "NumLock" msgstr "NumLock" -#: src/modules/clipboard/clipboard.h:48 +#: src/modules/clipboard/clipboard.h:54 msgid "Number of entries" msgstr "Количество входов" -#: src/im/keyboard/keyboard.cpp:670 +#: src/im/keyboard/keyboard.cpp:693 msgid "" "Only emoji support is found. To enable spell checking, you may need to " "install spell check data for the language." @@ -2062,27 +2077,27 @@ msgid "Option" msgstr "Выбор" -#: src/ui/classic/theme.h:120 +#: src/ui/classic/theme.h:118 msgid "Overlay Clip Margin" msgstr "Наложение поля клипа" -#: src/ui/classic/theme.h:110 +#: src/ui/classic/theme.h:108 msgid "Overlay Image" msgstr "Наложенное изображение" -#: src/ui/classic/theme.h:113 +#: src/ui/classic/theme.h:111 msgid "Overlay X offset" msgstr "Смещение X" -#: src/ui/classic/theme.h:114 +#: src/ui/classic/theme.h:112 msgid "Overlay Y offset" msgstr "Смещение Y" -#: src/ui/classic/theme.h:112 +#: src/ui/classic/theme.h:110 msgid "Overlay position" msgstr "Позиция наложения" -#: src/lib/fcitx/globalconfig.cpp:167 +#: src/lib/fcitx/globalconfig.cpp:173 msgid "Override Xkb Option" msgstr "Переопределить параметр Xkb" @@ -2104,11 +2119,11 @@ msgid "Page Up" msgstr "Страница Вверх" -#: src/ui/classic/theme.h:155 +#: src/ui/classic/theme.h:153 msgid "Page button vertical alignment" msgstr "Выравнивание кнопки страницы по вертикали" -#: src/im/keyboard/keyboard.h:37 +#: src/im/keyboard/keyboard.h:49 msgid "Page size" msgstr "Размер страницы" @@ -2117,7 +2132,7 @@ msgid "Paste" msgstr "Вставить" -#: src/modules/clipboard/clipboard.h:46 +#: src/modules/clipboard/clipboard.h:52 msgid "Paste Primary" msgstr "Вставить основное" @@ -2167,19 +2182,19 @@ msgid "Power Off" msgstr "Выключение" -#: src/lib/fcitx/instance.cpp:839 +#: src/lib/fcitx/instance.cpp:848 msgid "Preedit" msgstr "Предварительное редактирование" -#: src/lib/fcitx/instance.cpp:841 +#: src/lib/fcitx/instance.cpp:850 msgid "Preedit disabled" msgstr "Предварительное редактирование отключено" -#: src/lib/fcitx/instance.cpp:840 +#: src/lib/fcitx/instance.cpp:849 msgid "Preedit enabled" msgstr "Предварительное редактирование включено" -#: src/ui/classic/classicui.h:130 src/ui/kimpanel/kimpanel.h:33 +#: src/ui/classic/classicui.h:127 src/ui/kimpanel/kimpanel.h:28 msgid "Prefer Text Icon" msgstr "Иконка предпочтительного текста" @@ -2187,25 +2202,25 @@ msgid "Presage" msgstr "Presage" -#: src/im/keyboard/keyboard.h:42 +#: src/im/keyboard/keyboard.h:54 msgid "Prev Candidate" -msgstr "Предыдущий кандидат" +msgstr "Предыдущее слово-кандидат" -#: src/ui/classic/theme.h:165 +#: src/ui/classic/theme.h:163 msgid "Prev Page Button" msgstr "Кнопка предыдущей страницы" #: src/lib/fcitx-utils/key.cpp:252 msgctxt "Key name" msgid "Previous Candidate" -msgstr "Предыдущий кандидат" +msgstr "Предыдущее слово-кандидат" #: src/lib/fcitx-utils/key.cpp:228 msgctxt "Key name" msgid "Print Screen" msgstr "Снимок экрана" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "Program" msgstr "Программа" @@ -2217,7 +2232,7 @@ msgid "Quick Phrase" msgstr "Быстрая фраза" -#: src/modules/quickphrase/quickphrase.cpp:471 +#: src/modules/quickphrase/quickphrase.cpp:488 msgid "Quick Phrase: " msgstr "Быстрая фраза: " @@ -2246,8 +2261,12 @@ msgid "Reply" msgstr "Ответить" +#: src/lib/fcitx/globalconfig.cpp:143 +msgid "Reset state on Focus In" +msgstr "Сбросить состояние при фокусировке" + #: src/ui/classic/xcbtraywindow.cpp:39 -#: src/modules/notificationitem/dbusmenu.cpp:262 +#: src/modules/notificationitem/dbusmenu.cpp:261 msgid "Restart" msgstr "Перезапустить" @@ -2330,6 +2349,10 @@ msgid "Search" msgstr "Поиск" +#: src/modules/clipboard/clipboard.h:76 +msgid "Seconds before clearing password" +msgstr "Секунд до сброса пароля" + #: src/lib/fcitx-utils/key.cpp:233 msgctxt "Key name" msgid "Select" @@ -2347,7 +2370,7 @@ msgid "Select specific input method via keyboard" msgstr "Выберите конкретный метод ввода с клавиатуры" -#: src/ui/classic/theme.h:174 +#: src/ui/classic/theme.h:172 msgid "Selected Item text color" msgstr "Цвет текста выбранного элемента" @@ -2356,7 +2379,7 @@ msgid "Send" msgstr "Отправить" -#: src/modules/wayland/waylandmodule.cpp:634 +#: src/modules/wayland/waylandmodule.cpp:660 msgid "" "Sending keyboard layout configuration to wayland compositor from Fcitx is " "not yet supported on current desktop. You may still use Fcitx's internal " @@ -2367,15 +2390,15 @@ "использовать внутреннее преобразование раскладки Fcitx, добавив раскладку в " "качестве метода ввода в группу методов ввода." -#: src/ui/classic/theme.h:182 +#: src/ui/classic/theme.h:180 msgid "Separator Background" msgstr "Фон разделителя" -#: src/ui/classic/theme.h:168 +#: src/ui/classic/theme.h:166 msgid "Shadow Margin" msgstr "Затенённое поле" -#: src/lib/fcitx/globalconfig.cpp:141 +#: src/lib/fcitx/globalconfig.cpp:147 msgid "Share Input State" msgstr "Поделиться состоянием ввода" @@ -2389,27 +2412,27 @@ msgid "Shop" msgstr "Магазин" -#: src/lib/fcitx/globalconfig.cpp:152 +#: src/lib/fcitx/globalconfig.cpp:158 msgid "Show Input Method Information when changing focus" msgstr "Показывать информацию о способе ввода при изменении фокуса" -#: src/lib/fcitx/globalconfig.cpp:149 +#: src/lib/fcitx/globalconfig.cpp:155 msgid "Show Input Method Information when switch input method" msgstr "Показывать информацию о методе ввода при переключении" -#: src/ui/classic/classicui.h:135 +#: src/ui/classic/classicui.h:132 msgid "Show Layout Name In Icon" msgstr "Показать имя раскладки в значке" -#: src/lib/fcitx/globalconfig.cpp:155 +#: src/lib/fcitx/globalconfig.cpp:161 msgid "Show compact input method information" msgstr "Показать информацию о компактном методе ввода" -#: src/lib/fcitx/globalconfig.cpp:158 +#: src/lib/fcitx/globalconfig.cpp:164 msgid "Show first input method information" msgstr "Показать информацию о первом методе ввода" -#: src/ui/classic/classicui.h:139 +#: src/ui/classic/classicui.h:136 msgid "" "Show layout name in icon if there is more than one active layout. If prefer " "text icon is set to true, this option will be ignored." @@ -2418,15 +2441,15 @@ "для значка предпочтительного текста установлено значение true, этот параметр " "будет игнорироваться." -#: src/lib/fcitx/globalconfig.cpp:145 +#: src/lib/fcitx/globalconfig.cpp:151 msgid "Show preedit in application" msgstr "Показать предварительное редактирование в приложении" -#: src/lib/fcitx/globalconfig.cpp:189 +#: src/lib/fcitx/globalconfig.cpp:195 msgid "Show preedit text when typing password" msgstr "Показывать предварительно редактируемый текст при вводе пароля" -#: src/im/keyboard/keyboard.h:77 +#: src/im/keyboard/keyboard.h:89 msgid "" "Show preedit when composing, and commit dead key if there is no matching " "sequence." @@ -2434,7 +2457,7 @@ "Показывать предварительное редактирование при составлении и фиксировать " "мертвую клавишу, если нет подходящей последовательности." -#: src/lib/fcitx/globalconfig.cpp:64 +#: src/lib/fcitx/globalconfig.cpp:65 msgid "Skip first input method while enumerating" msgstr "Пропустить первый метод ввода при перечислении" @@ -2448,11 +2471,11 @@ msgid "Space" msgstr "Space" -#: src/ui/classic/theme.h:176 +#: src/ui/classic/theme.h:174 msgid "Spacing" msgstr "Расстояние" -#: src/im/keyboard/keyboard.h:79 src/modules/spell/spell.conf.in.in:3 +#: src/im/keyboard/keyboard.h:91 src/modules/spell/spell.conf.in.in:3 msgid "Spell" msgstr "Подсказки" @@ -2476,8 +2499,8 @@ msgid "Standby" msgstr "Режим ожидания" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:5 #: data/org.fcitx.Fcitx5.desktop.in.in:5 +#: data/fcitx5-wayland-launcher.desktop.in.in:5 msgid "Start Input Method" msgstr "Запустить метод ввода" @@ -2490,7 +2513,7 @@ msgid "Stop" msgstr "Остановить" -#: src/ui/classic/theme.h:184 +#: src/ui/classic/theme.h:182 msgid "Sub Menu" msgstr "Подменю" @@ -2499,7 +2522,7 @@ msgid "Subtitle" msgstr "Подзаголовок" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:31 msgid "Super" msgstr "Super" @@ -2518,17 +2541,17 @@ msgid "Suspend" msgstr "Приостановить" -#: src/lib/fcitx/instance.cpp:451 src/lib/fcitx/instance.cpp:678 +#: src/lib/fcitx/instance.cpp:459 src/lib/fcitx/instance.cpp:687 #: src/modules/xcb/xcbconnection.cpp:556 msgid "Switch group" msgstr "Сменить группу" -#: src/lib/fcitx/instance.cpp:452 src/modules/xcb/xcbconnection.cpp:557 +#: src/lib/fcitx/instance.cpp:460 src/modules/xcb/xcbconnection.cpp:557 #, c++-format msgid "Switch group to {0}" msgstr "Переключить группу на {0}" -#: src/lib/fcitx/instance.cpp:679 +#: src/lib/fcitx/instance.cpp:688 #, c++-format msgid "Switched group to {0}" msgstr "Группа переключена на {0}" @@ -2552,7 +2575,7 @@ msgid "Task Panel" msgstr "Панель задач" -#: src/lib/fcitx/globalconfig.cpp:44 +#: src/lib/fcitx/globalconfig.cpp:45 msgid "Temporally switch between first and current Input Method" msgstr "Временное переключение между основным и текущим методом ввода" @@ -2587,28 +2610,28 @@ msgid "The script is run as ${1} (${2})." msgstr "Сценарий запущен пользователем ${1} (${2})." -#: src/ui/classic/classicui.h:155 +#: src/ui/classic/classicui.h:152 msgid "Theme" msgstr "Тема" -#: src/ui/classic/classicui.h:101 +#: src/ui/classic/classicui.h:98 msgid "This is only effective when the tray icon is xembed." msgstr "Это эффективно только тогда, когда значок в трее встроен." -#: src/ui/classic/theme.h:93 src/ui/classic/theme.h:101 +#: src/ui/classic/theme.h:91 src/ui/classic/theme.h:99 msgid "This option is only effective if image is not set." msgstr "" "Этот параметр эффективен только в том случае, если имидж не установлен." -#: src/ui/classic/classicui.h:194 +#: src/ui/classic/classicui.h:191 msgid "This option require support from wayland compositor." msgstr "Для этого параметра требуется поддержка wayland compositor." -#: src/ui/classic/classicui.h:173 +#: src/ui/classic/classicui.h:170 msgid "This option will be always disabled on XWayland." msgstr "Этот параметр всегда будет отключен в XWayland." -#: src/ui/classic/theme.h:109 +#: src/ui/classic/theme.h:107 msgid "This value should be less than any of margin value." msgstr "Это значение должно быть меньше любого значения разницы." @@ -2639,7 +2662,7 @@ "Для других более общих проблем, связанных с использованием XIM, включая " "замораживание приложений, см. ${link2}." -#: src/lib/fcitx/globalconfig.cpp:132 +#: src/lib/fcitx/globalconfig.cpp:133 msgid "Toggle embedded preedit" msgstr "Переключение встроенного предварительного редактирования" @@ -2648,15 +2671,15 @@ msgid "Tools" msgstr "Инструменты" -#: src/ui/classic/theme.h:48 +#: src/ui/classic/theme.h:46 msgid "Top" msgstr "Top" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Center" msgstr "Top Center" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Left" msgstr "Top Left" @@ -2665,7 +2688,7 @@ msgid "Top Menu" msgstr "Верхнее меню" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Top Right" msgstr "Top Right" @@ -2694,25 +2717,25 @@ msgid "Travel" msgstr "Ход" -#: src/ui/classic/classicui.h:124 +#: src/ui/classic/classicui.h:121 msgid "Tray Font" msgstr "Шрифт в лотке" -#: src/ui/classic/classicui.h:126 +#: src/ui/classic/classicui.h:123 msgid "Tray Label Outline Color" msgstr "Цвет контура лейбла лотка" -#: src/ui/classic/classicui.h:129 +#: src/ui/classic/classicui.h:126 msgid "Tray Label Text Color" msgstr "Цвет текста лейбла лотка" -#: src/lib/fcitx/globalconfig.cpp:34 +#: src/lib/fcitx/globalconfig.cpp:35 msgid "Trigger Input Method" msgstr "Активация метода ввода" #: src/modules/imselector/imselector.h:28 -#: src/modules/quickphrase/quickphrase.h:36 src/modules/unicode/unicode.h:31 -#: src/modules/clipboard/clipboard.h:42 +#: src/modules/quickphrase/quickphrase.h:38 src/modules/unicode/unicode.h:28 +#: src/modules/clipboard/clipboard.h:48 msgid "Trigger Key" msgstr "Клавиша-триггер" @@ -2720,23 +2743,23 @@ msgid "Trigger Key for only current input context" msgstr "Клавиша-триггер только для текущего контекста ввода" -#: src/im/keyboard/keyboard.h:62 +#: src/im/keyboard/keyboard.h:74 msgid "Trigger hint mode" msgstr "Активировать режим подсказки" -#: src/im/keyboard/keyboard.h:67 +#: src/im/keyboard/keyboard.h:79 msgid "Trigger hint mode for one time" msgstr "Активировать режим подсказки один раз" -#: src/im/keyboard/keyboard.h:82 +#: src/im/keyboard/keyboard.h:94 msgid "Type special characters with long press" msgstr "Вводить специальные символы долгим нажатием" -#: src/modules/unicode/unicode.h:36 +#: src/modules/unicode/unicode.h:33 msgid "Type unicode in Hex number" msgstr "Вводить Юникод в шестнадцатеричном формате" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:22 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:26 msgid "Typing with Fcitx and Kimpanel" msgstr "Печатание с помощью Fcitx и Kimpanel" @@ -2753,7 +2776,7 @@ msgid "Unicode" msgstr "Юникод" -#: src/modules/unicode/unicode.cpp:456 +#: src/modules/unicode/unicode.cpp:455 msgid "Unicode: " msgstr "Юникод: " @@ -2762,29 +2785,29 @@ msgid "Up" msgstr "Вверх" -#: src/frontend/xim/xim.h:33 +#: src/frontend/xim/xim.h:27 msgid "Use On The Spot Style (Needs restarting)" msgstr "Использовать стиль On The Spot (требуется перезапуск программы)" -#: src/ui/classic/classicui.h:169 +#: src/ui/classic/classicui.h:166 msgid "Use Per Screen DPI on X11" msgstr "Использовать DPI для каждого экрана на X11" -#: src/ui/classic/theme.h:151 +#: src/ui/classic/theme.h:149 msgid "Use all horizontal space for highlight when it is vertical list" msgstr "" "Используйте все горизонтальное пространство для выделения, когда это " "вертикальный список" -#: src/ui/classic/classicui.h:146 +#: src/ui/classic/classicui.h:143 msgid "Use input method language to display text" msgstr "Использовать язык метода ввода для отображения текста" -#: src/ui/classic/classicui.h:116 +#: src/ui/classic/classicui.h:113 msgid "Use mouse wheel to go to prev or next page" msgstr "Используйте колёсико мыши, для перелистывания страниц" -#: src/im/keyboard/keyboard.h:73 +#: src/im/keyboard/keyboard.h:85 msgid "Use new compose behavior" msgstr "Использовать новое поведение при написании" @@ -2804,7 +2827,7 @@ "Использование ${1} для проверки фактического модуля im, который будет " "использоваться в текущей среде:" -#: src/ui/classic/theme.h:192 +#: src/ui/classic/theme.h:190 msgid "Version" msgstr "Версия" @@ -2812,9 +2835,9 @@ msgid "Version Line:" msgstr "Версия Line:" -#: src/ui/classic/classicui.h:114 +#: src/ui/classic/classicui.h:111 msgid "Vertical Candidate List" -msgstr "Вертикальный список кандидатов" +msgstr "Вертикальный список слов-кандидатов" #: src/lib/fcitx-utils/key.cpp:193 msgctxt "Key name" @@ -2870,7 +2893,7 @@ msgid "Wayland" msgstr "Wayland" -#: src/modules/wayland/waylandmodule.cpp:562 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Wayland Diagnose" msgstr "Wayland Диагностика" @@ -2883,7 +2906,17 @@ msgid "WebCam" msgstr "Веб-камера" -#: src/lib/fcitx/globalconfig.cpp:171 +#: src/modules/clipboard/clipboard.h:65 +msgid "" +"When copying password from a password manager, if the password manager " +"supports marking the clipboard content as password, this clipboard update " +"will be ignored." +msgstr "" +"В случае если при копировании пароля из менеджера паролей он поддерживает " +"пометку содержимого буфера обмена как пароля, это обновление буфера обмена " +"будет игнорироваться." + +#: src/lib/fcitx/globalconfig.cpp:177 msgid "" "Whether to override the xkb option from display server. It will not affect " "the xkb option send to display, but just the xkb options for custom xkb " @@ -2993,20 +3026,22 @@ #: data/fcitx5-configtool.sh:137 msgid "" "You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be " -"found. Now it will open config directory." +"found. The package name provides this binary is usually fcitx5-configtool. " +"Now it will open the configuration directory." msgstr "" -"В настоящее время вы используете Fcitx с графическим интерфейсом, но не " -"удалось найти fcitx5-config-qt. Сейчас будет открыт конфигурационный каталог." +"В настоящее время вы используете Fcitx с графическим интерфейсом, но fcitx5-" +"config-qt не найден. Имя пакета, предоставляющего этот двоичный файл, обычно " +"fcitx5-configtool. Сейчас откроется каталог конфигурации." #: data/fcitx5-configtool.sh:134 msgid "" -"You're currently running KDE, but KCModule for fcitx couldn't be found, the " -"package name of this KCModule is usually kcm-fcitx or kde-config-fcitx. Now " -"it will open config directory." -msgstr "" -"В настоящее время вы используете KDE, но KCModule для fcitx не может быть " -"найден, имя пакета этого KCModule обычно kcm-fcitx или kde-config-fcitx. " -"Сейчас будет открыт конфигурационный каталог." +"You're currently running KDE, but KCModule for fcitx couldn't be found. The " +"package name of this KCModule is usually kcm-fcitx5, kde-config-fcitx5, or " +"fcitx5-configtool. Now it will open the configuration directory." +msgstr "" +"В настоящее время вы используете KDE, но KCModule для fcitx не найден. Имя " +"пакета этого KCModule обычно — kcm-fcitx5, kde-config-fcitx5 или fcitx5-" +"configtool. Сейчас откроется каталог конфигурации." #: data/fcitx5-diagnose.sh:1185 msgid "" @@ -3072,17 +3107,17 @@ msgid "version:" msgstr "версия:" -#: src/im/keyboard/keyboard.cpp:292 +#: src/im/keyboard/keyboard.cpp:312 #, c++-format msgid "{0} (Not Available)" msgstr "{0} (Недоступно)" -#: src/lib/fcitx/instance.cpp:409 +#: src/lib/fcitx/instance.cpp:417 #, c++-format msgid "{0} (Not available)" msgstr "{0} (Недоступно)" -#: src/lib/fcitx/instance.cpp:406 +#: src/lib/fcitx/instance.cpp:414 #, c++-format msgid "{0} ({1})" msgstr "{0} ({1})" diff -Nru fcitx5-5.1.7/po/vi.po fcitx5-5.1.11/po/vi.po --- fcitx5-5.1.7/po/vi.po 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/po/vi.po 2024-10-09 03:48:05.000000000 +0800 @@ -3,15 +3,15 @@ # This file is distributed under the same license as the fcitx5 package. # # Translators: -# Zen Fas, 2023 +# zenfas, 2024 # msgid "" msgstr "" "Project-Id-Version: fcitx5\n" "Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" -"POT-Creation-Date: 2024-01-14 20:24+0000\n" +"POT-Creation-Date: 2024-06-11 20:24+0000\n" "PO-Revision-Date: 2017-11-23 04:14+0000\n" -"Last-Translator: Zen Fas, 2023\n" +"Last-Translator: zenfas, 2024\n" "Language-Team: Vietnamese (https://app.transifex.com/fcitx/teams/12005/vi/)\n" "Language: vi\n" "MIME-Version: 1.0\n" @@ -47,11 +47,11 @@ msgid "${1} works properly." msgstr "${1} chạy bình thường." -#: src/lib/fcitx/instance.cpp:411 +#: src/lib/fcitx/instance.cpp:419 msgid "(Not available)" msgstr "(Không khả dụng)" -#: src/modules/unicode/unicode.cpp:458 +#: src/modules/unicode/unicode.cpp:457 msgid "(Type to search unicode by code or description)" msgstr "(Nhập để tìm kiếm theo mã unicode hoặc mô tả)" @@ -75,23 +75,31 @@ msgid "/XIM" msgstr "/XIM" -#: src/modules/unicode/charselectdata.cpp:215 +#: src/modules/clipboard/clipboard.h:80 +msgid "0 means never clear password." +msgstr "" + +#: src/modules/unicode/charselectdata.cpp:213 msgid "<Low Surrogate>" msgstr "<Low Surrogate>" -#: src/modules/unicode/charselectdata.cpp:211 +#: src/modules/unicode/charselectdata.cpp:209 msgid "<Non Private Use High Surrogate>" msgstr "<Non Private Use High Surrogate>" -#: src/modules/unicode/charselectdata.cpp:213 +#: src/modules/clipboard/clipboard.cpp:116 +msgid "<Passowrd>" +msgstr "" + +#: src/modules/unicode/charselectdata.cpp:211 msgid "<Private Use High Surrogate>" msgstr "<Private Use High Surrogate>" -#: src/modules/unicode/charselectdata.cpp:217 +#: src/modules/unicode/charselectdata.cpp:215 msgid "<Private Use>" msgstr "<Private Use>" -#: src/modules/unicode/charselectdata.cpp:247 +#: src/modules/unicode/charselectdata.cpp:245 msgid "<not assigned>" msgstr "<not assigned>" @@ -99,15 +107,15 @@ msgid "A virtual keyboard backend based on DBus" msgstr "" -#: src/ui/classic/theme.h:204 +#: src/ui/classic/theme.h:202 msgid "Accent Colors" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:82 +#: src/lib/fcitx/globalconfig.cpp:83 msgid "Activate Input Method" msgstr "Kích hoạt kiểu gõ" -#: src/lib/fcitx/globalconfig.cpp:138 +#: src/lib/fcitx/globalconfig.cpp:139 msgid "Active By Default" msgstr "Kích hoạt mặc định" @@ -137,7 +145,7 @@ msgid "Adjust Brightness" msgstr "Điều chỉnh độ sáng" -#: src/lib/fcitx/globalconfig.cpp:26 +#: src/lib/fcitx/globalconfig.cpp:27 msgid "All" msgstr "Tất cả" @@ -153,19 +161,19 @@ msgid "All locales:" msgstr "Tất cả ngôn ngữ:" -#: src/modules/xcb/xcbmodule.h:30 +#: src/modules/xcb/xcbmodule.h:26 msgid "Allow Overriding System XKB Settings" msgstr "Cho phép ghi đè cài đặt hệ thống XKB" -#: src/modules/wayland/waylandmodule.h:36 +#: src/modules/wayland/waylandmodule.h:35 msgid "Allow Overriding System XKB Settings (Only support KDE 5)" msgstr "Cho phép ghi đè cài đặt hệ thống XKB (chỉ hỗ trợ KDE 5)" -#: src/lib/fcitx/globalconfig.cpp:186 +#: src/lib/fcitx/globalconfig.cpp:192 msgid "Allow input method in the password field" msgstr "" -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:25 msgid "Alt" msgstr "Alt" @@ -174,7 +182,7 @@ msgid "Alt" msgstr "Alt" -#: src/modules/xcb/xcbmodule.h:33 +#: src/modules/xcb/xcbmodule.h:29 msgid "Always set layout to be only group layout" msgstr "Luôn cài đặt bố cục thành bố cục nhóm" @@ -188,7 +196,7 @@ msgid "Application Right" msgstr "Quyền ứng dụng" -#: src/im/keyboard/keyboard.h:87 +#: src/im/keyboard/keyboard.h:99 msgid "Applications disabled for long press" msgstr "Các ứng dụng bị vô hiệu hóa khi nhấn lâu" @@ -207,7 +215,7 @@ msgid "Audio Repeat" msgstr "Lặp lại âm thanh" -#: src/ui/classic/theme.h:193 +#: src/ui/classic/theme.h:191 msgid "Author" msgstr "Tác giả" @@ -230,11 +238,11 @@ msgid "Backends" msgstr "Phụ trợ" -#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 +#: src/ui/classic/theme.h:156 src/ui/classic/theme.h:176 msgid "Background" msgstr "Nền" -#: src/ui/classic/theme.h:85 +#: src/ui/classic/theme.h:83 msgid "Background Image" msgstr "Hình nền" @@ -256,7 +264,7 @@ msgid "Beginner's Guide" msgstr "Hướng dẫn sử dụng cho người mới" -#: src/lib/fcitx/globalconfig.cpp:203 +#: src/lib/fcitx/globalconfig.cpp:209 msgid "Behavior" msgstr "Hành vi" @@ -270,11 +278,11 @@ msgid "Bluetooth" msgstr "Bluetooth" -#: src/ui/classic/theme.h:148 +#: src/ui/classic/theme.h:146 msgid "Blur Margin" msgstr "Lề mờ" -#: src/ui/classic/theme.h:147 +#: src/ui/classic/theme.h:145 msgid "Blur mask" msgstr "Mặt nạ làm mờ" @@ -283,27 +291,27 @@ msgid "Book" msgstr "Sách" -#: src/ui/classic/theme.h:97 +#: src/ui/classic/theme.h:95 msgid "Border Color" msgstr "Màu viền" -#: src/ui/classic/theme.h:105 +#: src/ui/classic/theme.h:103 msgid "Border width" msgstr "Chiều rộng biên" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Bottom" msgstr "" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Center" msgstr "Trung tâm ở đáy" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Left" msgstr "Trái dưới đáy" -#: src/ui/classic/theme.h:39 +#: src/ui/classic/theme.h:37 msgid "Bottom Right" msgstr "Phải ở đáy" @@ -327,7 +335,7 @@ msgid "Cancel" msgstr "Hủy bỏ" -#: src/im/keyboard/longpress.h:19 +#: src/im/keyboard/longpress.h:23 msgid "Candidates" msgstr "Ứng cử viên" @@ -417,15 +425,15 @@ msgid "CapsLock" msgstr "CapsLock" -#: src/ui/classic/theme.h:37 src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:35 src/ui/classic/theme.h:47 msgid "Center" msgstr "Trung tâm" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Center Left" msgstr "Trung tâm bên trái" -#: src/ui/classic/theme.h:37 +#: src/ui/classic/theme.h:35 msgid "Center Right" msgstr "Trung tâm bên phải" @@ -433,11 +441,11 @@ msgid "Change Fcitx 5 Configuration" msgstr "Thay đổi cấu hình Fctix 5" -#: src/ui/classic/theme.h:183 +#: src/ui/classic/theme.h:181 msgid "Check box" msgstr "Hộp kiểm" -#: src/im/keyboard/keyboard.h:56 src/modules/quickphrase/quickphrase.h:41 +#: src/im/keyboard/keyboard.h:68 src/modules/quickphrase/quickphrase.h:37 msgid "Choose key modifier" msgstr "Chọn phím để sửa đổi" @@ -450,7 +458,7 @@ msgid "Clear" msgstr "Xóa" -#: src/ui/classic/theme.h:131 +#: src/ui/classic/theme.h:129 msgid "Click Margin" msgstr "Nhấp vào lề" @@ -458,7 +466,7 @@ msgid "Clipboard" msgstr "Bảng nhớ tạm" -#: src/modules/clipboard/clipboard.cpp:353 +#: src/modules/clipboard/clipboard.cpp:369 msgid "Clipboard (Press BackSpace/Delete to clear history):" msgstr "Bảng nhớ tạm (Nhấn BackSpace/Delete để xóa lịch sử):" @@ -472,7 +480,7 @@ msgid "Code input" msgstr "Nhập mã" -#: src/ui/classic/theme.h:89 +#: src/ui/classic/theme.h:87 msgid "Color" msgstr "Màu" @@ -481,19 +489,19 @@ msgid "Community" msgstr "Cộng đồng" -#: src/im/keyboard/keyboard.cpp:685 +#: src/im/keyboard/keyboard.cpp:706 msgid "Completion" msgstr "Hoàn thành" -#: src/im/keyboard/keyboard.cpp:676 +#: src/im/keyboard/keyboard.cpp:697 msgid "Completion is disabled." msgstr "Hoàn thành bị vô hiệu hóa." -#: src/im/keyboard/keyboard.cpp:679 +#: src/im/keyboard/keyboard.cpp:700 msgid "Completion is enabled temporarily." msgstr "Hoàn thành tạm thời được kích hoạt." -#: src/im/keyboard/keyboard.cpp:681 +#: src/im/keyboard/keyboard.cpp:702 msgid "Completion is enabled." msgstr "Hoàn thành được kích hoạt." @@ -530,7 +538,7 @@ msgid "Configure" msgstr "Cấu hình" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:25 msgid "Control" msgstr "Điều khiển" @@ -564,7 +572,7 @@ msgid "Custom" msgstr "Tùy chỉnh" -#: src/lib/fcitx/globalconfig.cpp:176 +#: src/lib/fcitx/globalconfig.cpp:182 msgid "Custom Xkb Option" msgstr "Tùy chỉnh Xkb" @@ -598,11 +606,11 @@ msgid "DOS" msgstr "DOS" -#: src/ui/classic/classicui.h:158 +#: src/ui/classic/classicui.h:155 msgid "Dark Theme" -msgstr "" +msgstr "Chủ đề tối" -#: src/lib/fcitx/globalconfig.cpp:91 +#: src/lib/fcitx/globalconfig.cpp:92 msgid "Deactivate Input Method" msgstr "Vô hiệu hóa bộ gõ" @@ -610,32 +618,32 @@ msgid "Debug information from dbus:" msgstr "Thông tin gỡ lỗi từ dbus:" -#: src/lib/fcitx/inputmethodmanager.cpp:138 src/lib/fcitx/instance.cpp:358 +#: src/lib/fcitx/inputmethodmanager.cpp:153 src/lib/fcitx/instance.cpp:366 #: src/ui/classic/themes/default/theme.conf.in:3 msgid "Default" msgstr "Mặc định" #: src/ui/classic/themes/default-dark/theme-dark.conf.in:3 msgid "Default Dark" -msgstr "" +msgstr "Mặc định tối" -#: src/lib/fcitx/globalconfig.cpp:127 +#: src/lib/fcitx/globalconfig.cpp:128 msgid "Default Next Candidate" msgstr "Ứng viên mặc định tiếp theo" -#: src/lib/fcitx/globalconfig.cpp:111 +#: src/lib/fcitx/globalconfig.cpp:112 msgid "Default Next page" msgstr "Trang mặc định tiếp theo" -#: src/lib/fcitx/globalconfig.cpp:121 +#: src/lib/fcitx/globalconfig.cpp:122 msgid "Default Previous Candidate" msgstr "Ứng viên mặc định trước đó" -#: src/lib/fcitx/globalconfig.cpp:99 +#: src/lib/fcitx/globalconfig.cpp:100 msgid "Default Previous page" msgstr "Trang mặc định trước đó" -#: src/lib/fcitx/globalconfig.cpp:160 +#: src/lib/fcitx/globalconfig.cpp:166 msgid "Default page size" msgstr "Kích thướng trang mặc định" @@ -644,7 +652,7 @@ msgid "Delete" msgstr "Xóa" -#: src/ui/classic/theme.h:195 +#: src/ui/classic/theme.h:193 msgid "Description" msgstr "Mô tả" @@ -656,7 +664,7 @@ msgid "Desktop environment is ${1}." msgstr "Môi trường Desktop là ${1}." -#: src/modules/wayland/waylandmodule.cpp:586 +#: src/modules/wayland/waylandmodule.cpp:616 msgid "" "Detect GTK_IM_MODULE and QT_IM_MODULE being set and Wayland Input method " "frontend is working. It is recommended to unset GTK_IM_MODULE and " @@ -664,7 +672,7 @@ "see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma" msgstr "" -#: src/modules/wayland/waylandmodule.cpp:615 +#: src/modules/wayland/waylandmodule.cpp:645 msgid "" "Detect GTK_IM_MODULE being set and Wayland Input method frontend is working. " "It is recommended to unset GTK_IM_MODULE and use Wayland input method " @@ -673,7 +681,7 @@ #: src/frontend/waylandim/waylandim.h:28 msgid "Detect current running application (Need restart)" -msgstr "" +msgstr "Xác định ứng dụng đang chạy (Cần khởi động lại)" #: data/fcitx5-diagnose.sh:868 msgid "Directories:" @@ -684,10 +692,14 @@ msgid "Display" msgstr "Hiển thị" -#: src/modules/notifications/notifications.cpp:204 +#: src/modules/notifications/notifications.cpp:201 msgid "Do not show again" msgstr "Không hiển thị lại" +#: src/modules/clipboard/clipboard.h:61 +msgid "Do not show password from password managers" +msgstr "" + #: src/lib/fcitx-utils/key.cpp:162 msgctxt "Key name" msgid "Documents" @@ -698,7 +710,7 @@ msgid "Down" msgstr "Xuống" -#: src/modules/quickphrase/quickphrase.h:47 +#: src/modules/quickphrase/quickphrase.h:43 msgid "Editor" msgstr "Biên tập" @@ -721,31 +733,31 @@ msgid "Emoji" msgstr "Emoji" -#: src/im/keyboard/longpress.h:17 +#: src/im/keyboard/longpress.h:21 msgid "Enable" msgstr "Cho phép" -#: src/ui/classic/theme.h:145 +#: src/ui/classic/theme.h:143 msgid "Enable Blur on KWin" msgstr "Cho phép mờ trên KWin" -#: src/modules/quickphrase/quickphrase.h:43 +#: src/modules/quickphrase/quickphrase.h:39 msgid "Enable Spell check" msgstr "Bật kiểm tra chính tả" -#: src/im/keyboard/keyboard.h:51 +#: src/im/keyboard/keyboard.h:63 msgid "Enable emoji in hint" msgstr "Bật gợi ý emoji" -#: src/im/keyboard/keyboard.h:54 +#: src/im/keyboard/keyboard.h:66 msgid "Enable emoji in quickphrase" msgstr "Bật emoji trong cụm từ nhanh" -#: src/ui/classic/classicui.h:190 +#: src/ui/classic/classicui.h:187 msgid "Enable fractional scale under Wayland" msgstr "" -#: src/im/keyboard/keyboard.h:59 +#: src/im/keyboard/keyboard.h:71 msgid "Enable hint by default" msgstr "Bật gợi ý mặc định" @@ -758,27 +770,27 @@ msgid "End" msgstr "Kết thúc" -#: src/im/keyboard/longpress.h:26 +#: src/im/keyboard/longpress.h:30 msgid "Entries" msgstr "Các mục" -#: src/lib/fcitx/globalconfig.cpp:58 +#: src/lib/fcitx/globalconfig.cpp:59 msgid "Enumerate Input Method Backward" msgstr "Liệt kê phương thức nhập liệu trước" -#: src/lib/fcitx/globalconfig.cpp:51 +#: src/lib/fcitx/globalconfig.cpp:52 msgid "Enumerate Input Method Forward" msgstr "Liệt kê phương thức nhập sau" -#: src/lib/fcitx/globalconfig.cpp:75 +#: src/lib/fcitx/globalconfig.cpp:76 msgid "Enumerate Input Method Group Backward" msgstr "Liệt kê nhóm phương thức nhập liệu trước" -#: src/lib/fcitx/globalconfig.cpp:68 +#: src/lib/fcitx/globalconfig.cpp:69 msgid "Enumerate Input Method Group Forward" msgstr "Liệt kê nhóm phương thức nhập liệu sau" -#: src/lib/fcitx/globalconfig.cpp:40 +#: src/lib/fcitx/globalconfig.cpp:41 msgid "Enumerate when press trigger key repeatedly" msgstr "Liệt kê khi nhấn phím kích hoạt nhiều lần" @@ -831,7 +843,7 @@ msgid "Failed to find ${1} in the output of ${2}" msgstr "Không thể tìm ${1} trong đầu ra của ${2}" -#: src/modules/quickphrase/quickphrase.h:45 +#: src/modules/quickphrase/quickphrase.h:41 msgid "Fallback Spell check language" msgstr "Kiểm tra chính tả ngôn ngữ dự phòng" @@ -840,7 +852,7 @@ msgid "Favorites" msgstr "Yêu thích" -#: src/modules/wayland/waylandmodule.cpp:558 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Fcitx" msgstr "" @@ -853,7 +865,7 @@ msgid "Fcitx 5 Configuration" msgstr "Cấu hình Fcitx 5" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:3 +#: data/fcitx5-wayland-launcher.desktop.in.in:3 msgid "Fcitx 5 Wayland Launcher (Experimental)" msgstr "" @@ -869,7 +881,7 @@ msgid "Fcitx State:" msgstr "Trạng thái Fcitx:" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:9 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:12 msgid "" "Fcitx is an input method framework. It can help you to type your own " "language. It also features variant choice of addons that improve your typing " @@ -879,7 +891,7 @@ "riêng bạn. Nó cũng có tính năng lựa chọn biến thể của addon giúp cải thiện " "trải nghiệm đánh máy của bạn." -#: src/modules/wayland/waylandmodule.cpp:573 +#: src/modules/wayland/waylandmodule.cpp:603 msgid "" "Fcitx should be launched by KWin under KDE Wayland in order to use Wayland " "input method frontend. This can improve the experience when using Fcitx on " @@ -908,15 +920,15 @@ msgid "Find" msgstr "Tìm" -#: src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:47 msgid "First Candidate" msgstr "" -#: src/ui/classic/classicui.h:164 +#: src/ui/classic/classicui.h:161 msgid "Follow system accent color if it is supported by theme and desktop" msgstr "" -#: src/ui/classic/classicui.h:160 +#: src/ui/classic/classicui.h:157 msgid "Follow system light/dark color scheme" msgstr "" @@ -932,11 +944,11 @@ "nếu bạn không sử dụng bất kỳ ứng dụng Qt nào với phiên bản Qt nhất định hoặc " "bạn đang sử dụng hỗ trợ nhập văn bản của Qt trong Wayland." -#: src/ui/classic/classicui.h:120 +#: src/ui/classic/classicui.h:117 msgid "Font" msgstr "Font" -#: src/ui/classic/classicui.h:150 +#: src/ui/classic/classicui.h:147 msgid "" "For example, display character with Chinese variant when using Pinyin and " "Japanese variant when using Anthy. The font configuration needs to support " @@ -946,11 +958,11 @@ "thể tiếng Nhật khi sử dụng Anthy. Cấu hình phông chữ cần hỗ trợ điều này để " "sử dụng tính năng này." -#: src/modules/wayland/waylandmodule.cpp:641 +#: src/modules/wayland/waylandmodule.cpp:671 msgid "For more details see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland" msgstr "" -#: src/ui/classic/classicui.h:178 +#: src/ui/classic/classicui.h:175 msgid "Force font DPI on Wayland" msgstr "Bắt buộc font DPI trên Wayland" @@ -1056,12 +1068,12 @@ msgid "Group" msgstr "Nhóm" -#: src/lib/fcitx/instance.cpp:415 +#: src/lib/fcitx/instance.cpp:423 #, c++-format msgid "Group {0}: {1}" msgstr "Nhóm {0}: {1}" -#: src/lib/fcitx/instance.cpp:360 +#: src/lib/fcitx/instance.cpp:368 #, c++-format msgid "Group {}" msgstr "Nhóm {}" @@ -1157,43 +1169,47 @@ msgid "Hibernate" msgstr "Hibernate" -#: src/modules/notifications/notifications.h:28 +#: src/modules/notifications/notifications.h:26 msgid "Hidden Notifications" msgstr "" -#: src/ui/classic/theme.h:116 +#: src/modules/clipboard/clipboard.h:70 +msgid "Hidden clipboard content that contains a password" +msgstr "" + +#: src/ui/classic/theme.h:114 msgid "Hide overlay if size does not fit" msgstr "" -#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:180 +#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 msgid "Highlight Background" msgstr "" -#: src/ui/classic/theme.h:140 +#: src/ui/classic/theme.h:138 msgid "Highlight Background color" msgstr "" -#: src/ui/classic/theme.h:143 +#: src/ui/classic/theme.h:141 msgid "Highlight Candidate Color" msgstr "" -#: src/ui/classic/theme.h:126 +#: src/ui/classic/theme.h:124 msgid "Highlight Click Margin" msgstr "" -#: src/ui/classic/theme.h:138 +#: src/ui/classic/theme.h:136 msgid "Highlight text color" msgstr "" #: src/lib/fcitx-utils/key.cpp:238 msgctxt "Key name" msgid "Hiragana" -msgstr "" +msgstr "Hiragana" #: src/lib/fcitx-utils/key.cpp:240 msgctxt "Key name" msgid "Hiragana Katakana" -msgstr "" +msgstr "Hiragana Katakana" #: src/lib/fcitx-utils/key.cpp:143 msgctxt "Key name" @@ -1224,7 +1240,7 @@ msgid "Hot Links" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:201 +#: src/lib/fcitx/globalconfig.cpp:207 msgid "Hotkey" msgstr "Phím tắt" @@ -1247,7 +1263,7 @@ msgid "IBus Frontend" msgstr "IBus Frontend" -#: src/lib/fcitx/globalconfig.cpp:197 +#: src/lib/fcitx/globalconfig.cpp:203 msgid "" "If value is 0, the user data may only be saved when fcitx quits (e.g. " "logout)." @@ -1267,17 +1283,16 @@ "any input method other than ${2}. See ${link} for more detail." msgstr "" -#: src/ui/classic/theme.h:129 +#: src/ui/classic/theme.h:127 msgid "Image" msgstr "Hình ảnh" -#: src/im/keyboard/keyboard.cpp:684 src/lib/fcitx/instance.cpp:450 -#: src/lib/fcitx/instance.cpp:677 src/lib/fcitx/instance.cpp:839 -#: src/modules/notificationitem/notificationitem.cpp:147 -#: src/modules/notificationitem/notificationitem.cpp:235 -#: src/modules/xcb/xcbconnection.cpp:555 -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:4 -#: data/org.fcitx.Fcitx5.desktop.in.in:4 +#: src/im/keyboard/keyboard.cpp:705 src/lib/fcitx/instance.cpp:458 +#: src/lib/fcitx/instance.cpp:686 src/lib/fcitx/instance.cpp:848 +#: src/modules/notificationitem/notificationitem.cpp:142 +#: src/modules/notificationitem/notificationitem.cpp:230 +#: src/modules/xcb/xcbconnection.cpp:555 data/org.fcitx.Fcitx5.desktop.in.in:4 +#: data/fcitx5-wayland-launcher.desktop.in.in:4 #: data/org.fcitx.Fcitx5.metainfo.xml.in:7 msgid "Input Method" msgstr "Kiểu Gõ" @@ -1294,27 +1309,27 @@ msgid "Input Methods:" msgstr "Kiểu Gõ:" -#: src/ui/classic/theme.h:201 +#: src/ui/classic/theme.h:199 msgid "Input Panel" msgstr "Bảng điều khiển nhập liệu" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Background" msgstr "" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Border" msgstr "" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight" msgstr "" -#: src/ui/classic/theme.h:66 +#: src/ui/classic/theme.h:64 msgid "Input Panel Highlight Candidate Background" msgstr "" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight Candidate Border" msgstr "" @@ -1322,7 +1337,7 @@ msgid "Input method selector" msgstr "Chọn kiểu gõ" -#: src/lib/fcitx/globalconfig.cpp:103 src/lib/fcitx/globalconfig.cpp:115 +#: src/lib/fcitx/globalconfig.cpp:104 src/lib/fcitx/globalconfig.cpp:116 msgid "" "Input methods may have different setup in their own configuration. This is " "commonly used by modules like clipboard or quickphrase." @@ -1336,7 +1351,7 @@ msgid "Insert" msgstr "Chèn" -#: src/lib/fcitx/globalconfig.cpp:193 +#: src/lib/fcitx/globalconfig.cpp:199 msgid "Interval of saving user data in minutes" msgstr "" @@ -1350,7 +1365,7 @@ "supports text-input protocol used by ${1}." msgstr "" -#: src/modules/wayland/waylandmodule.cpp:598 +#: src/modules/wayland/waylandmodule.cpp:628 msgid "" "It is recommended to install Input Method Panel GNOME Shell Extensions to " "provide the input method popup. https://extensions.gnome.org/extension/261/" @@ -1363,7 +1378,7 @@ msgid "KDE Input Method Panel" msgstr "Bảng điều khiển kiểu gõ KDE" -#: src/ui/classic/classicui.cpp:280 +#: src/ui/classic/classicui.cpp:278 msgid "KDE Plasma (Experimental)" msgstr "KDE Plasma (Thử nghiệm)" @@ -1387,20 +1402,20 @@ msgid "Katakana" msgstr "" -#: src/im/keyboard/longpress.h:16 +#: src/im/keyboard/longpress.h:20 msgid "Key" msgstr "" -#: src/im/keyboard/keyboard.cpp:315 src/im/keyboard/keyboard.conf.in.in:3 +#: src/im/keyboard/keyboard.cpp:335 src/im/keyboard/keyboard.conf.in.in:3 msgid "Keyboard" msgstr "Bàn phím" -#: src/im/keyboard/keyboard.cpp:231 +#: src/im/keyboard/keyboard.cpp:251 #, c++-format msgid "Keyboard - {0}" msgstr "Bàn phím - {0}" -#: src/im/keyboard/keyboard.cpp:250 +#: src/im/keyboard/keyboard.cpp:270 #, c++-format msgid "Keyboard - {0} - {1}" msgstr "Bàn phím - {0} - {1}" @@ -1608,7 +1623,7 @@ msgid "Kimpanel process:" msgstr "" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Last Candidate" msgstr "" @@ -1745,7 +1760,7 @@ msgid "Logoff" msgstr "" -#: src/im/keyboard/keyboard.h:89 +#: src/im/keyboard/keyboard.h:102 msgid "Long Press behavior" msgstr "" @@ -1754,31 +1769,31 @@ msgid "Mail Forward" msgstr "" -#: src/ui/classic/theme.h:118 +#: src/ui/classic/theme.h:116 msgid "Margin" msgstr "" -#: src/ui/classic/theme.h:80 +#: src/ui/classic/theme.h:78 msgid "Margin Bottom" msgstr "" -#: src/ui/classic/theme.h:74 +#: src/ui/classic/theme.h:72 msgid "Margin Left" msgstr "" -#: src/ui/classic/theme.h:76 +#: src/ui/classic/theme.h:74 msgid "Margin Right" msgstr "" -#: src/ui/classic/theme.h:78 +#: src/ui/classic/theme.h:76 msgid "Margin Top" msgstr "" -#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 +#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:184 msgid "Margin around all content" msgstr "" -#: src/ui/classic/theme.h:164 src/ui/classic/theme.h:188 +#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 msgid "Margin around text" msgstr "" @@ -1837,7 +1852,7 @@ msgid "Meeting" msgstr "" -#: src/ui/classic/theme.h:202 +#: src/ui/classic/theme.h:200 msgid "Menu" msgstr "" @@ -1846,15 +1861,15 @@ msgid "Menu" msgstr "" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Background" msgstr "" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Border" msgstr "" -#: src/ui/classic/classicui.h:122 +#: src/ui/classic/classicui.h:119 msgid "Menu Font" msgstr "" @@ -1863,15 +1878,15 @@ msgid "Menu PB" msgstr "" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Background" msgstr "" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Border" msgstr "" -#: src/ui/classic/theme.h:70 +#: src/ui/classic/theme.h:68 msgid "Menu Separator" msgstr "" @@ -1880,7 +1895,7 @@ msgid "Messenger" msgstr "" -#: src/ui/classic/theme.h:199 +#: src/ui/classic/theme.h:197 msgid "Metadata" msgstr "" @@ -1919,7 +1934,7 @@ msgid "My Sites" msgstr "" -#: src/ui/classic/theme.h:191 +#: src/ui/classic/theme.h:189 msgid "Name" msgstr "" @@ -1933,31 +1948,31 @@ msgid "News" msgstr "" -#: src/im/keyboard/keyboard.h:48 +#: src/im/keyboard/keyboard.h:60 msgid "Next Candidate" msgstr "" -#: src/ui/classic/theme.h:166 +#: src/ui/classic/theme.h:164 msgid "Next Page Button" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "No" msgstr "" -#: src/modules/clipboard/clipboard.cpp:355 +#: src/modules/clipboard/clipboard.cpp:371 msgid "No clipboard history." msgstr "" -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:28 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:24 msgid "None" msgstr "" -#: src/ui/classic/theme.h:135 src/ui/classic/theme.h:171 +#: src/ui/classic/theme.h:133 src/ui/classic/theme.h:169 msgid "Normal text color" msgstr "" -#: src/ui/classic/classicui.h:182 +#: src/ui/classic/classicui.h:179 msgid "" "Normally Wayland uses 96 as font DPI in combinition with the screen scale " "factor. This option allows you to override the font DPI. If the value is 0, " @@ -1974,18 +1989,18 @@ #: src/modules/notifications/notifications.conf.in.in:3 msgid "Notification" -msgstr "" +msgstr "Thông báo" #: src/lib/fcitx-utils/key.cpp:54 msgctxt "Key name" msgid "NumLock" -msgstr "" +msgstr "NumLock" -#: src/modules/clipboard/clipboard.h:48 +#: src/modules/clipboard/clipboard.h:54 msgid "Number of entries" msgstr "" -#: src/im/keyboard/keyboard.cpp:670 +#: src/im/keyboard/keyboard.cpp:691 msgid "" "Only emoji support is found. To enable spell checking, you may need to " "install spell check data for the language." @@ -2006,27 +2021,27 @@ msgid "Option" msgstr "" -#: src/ui/classic/theme.h:120 +#: src/ui/classic/theme.h:118 msgid "Overlay Clip Margin" msgstr "" -#: src/ui/classic/theme.h:110 +#: src/ui/classic/theme.h:108 msgid "Overlay Image" msgstr "" -#: src/ui/classic/theme.h:113 +#: src/ui/classic/theme.h:111 msgid "Overlay X offset" msgstr "" -#: src/ui/classic/theme.h:114 +#: src/ui/classic/theme.h:112 msgid "Overlay Y offset" msgstr "" -#: src/ui/classic/theme.h:112 +#: src/ui/classic/theme.h:110 msgid "Overlay position" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:167 +#: src/lib/fcitx/globalconfig.cpp:173 msgid "Override Xkb Option" msgstr "" @@ -2048,11 +2063,11 @@ msgid "Page Up" msgstr "" -#: src/ui/classic/theme.h:155 +#: src/ui/classic/theme.h:153 msgid "Page button vertical alignment" msgstr "" -#: src/im/keyboard/keyboard.h:37 +#: src/im/keyboard/keyboard.h:49 msgid "Page size" msgstr "" @@ -2061,7 +2076,7 @@ msgid "Paste" msgstr "" -#: src/modules/clipboard/clipboard.h:46 +#: src/modules/clipboard/clipboard.h:52 msgid "Paste Primary" msgstr "" @@ -2106,19 +2121,19 @@ msgid "Power Off" msgstr "" -#: src/lib/fcitx/instance.cpp:839 +#: src/lib/fcitx/instance.cpp:848 msgid "Preedit" msgstr "" -#: src/lib/fcitx/instance.cpp:841 +#: src/lib/fcitx/instance.cpp:850 msgid "Preedit disabled" msgstr "" -#: src/lib/fcitx/instance.cpp:840 +#: src/lib/fcitx/instance.cpp:849 msgid "Preedit enabled" msgstr "" -#: src/ui/classic/classicui.h:130 src/ui/kimpanel/kimpanel.h:33 +#: src/ui/classic/classicui.h:127 src/ui/kimpanel/kimpanel.h:28 msgid "Prefer Text Icon" msgstr "" @@ -2126,11 +2141,11 @@ msgid "Presage" msgstr "" -#: src/im/keyboard/keyboard.h:42 +#: src/im/keyboard/keyboard.h:54 msgid "Prev Candidate" msgstr "" -#: src/ui/classic/theme.h:165 +#: src/ui/classic/theme.h:163 msgid "Prev Page Button" msgstr "" @@ -2144,7 +2159,7 @@ msgid "Print Screen" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "Program" msgstr "" @@ -2156,7 +2171,7 @@ msgid "Quick Phrase" msgstr "" -#: src/modules/quickphrase/quickphrase.cpp:471 +#: src/modules/quickphrase/quickphrase.cpp:470 msgid "Quick Phrase: " msgstr "" @@ -2185,10 +2200,14 @@ msgid "Reply" msgstr "" +#: src/lib/fcitx/globalconfig.cpp:143 +msgid "Reset state on Focus In" +msgstr "" + #: src/ui/classic/xcbtraywindow.cpp:39 #: src/modules/notificationitem/dbusmenu.cpp:261 msgid "Restart" -msgstr "" +msgstr "Khởi động lại" #: src/lib/fcitx-utils/key.cpp:43 msgctxt "Key name" @@ -2252,7 +2271,7 @@ #: src/lib/fcitx-utils/key.cpp:184 msgctxt "Key name" msgid "Save" -msgstr "" +msgstr "Lưu" #: src/lib/fcitx-utils/key.cpp:138 msgctxt "Key name" @@ -2269,6 +2288,10 @@ msgid "Search" msgstr "" +#: src/modules/clipboard/clipboard.h:76 +msgid "Seconds before clearing password" +msgstr "" + #: src/lib/fcitx-utils/key.cpp:233 msgctxt "Key name" msgid "Select" @@ -2286,7 +2309,7 @@ msgid "Select specific input method via keyboard" msgstr "" -#: src/ui/classic/theme.h:174 +#: src/ui/classic/theme.h:172 msgid "Selected Item text color" msgstr "" @@ -2295,22 +2318,22 @@ msgid "Send" msgstr "" -#: src/modules/wayland/waylandmodule.cpp:630 +#: src/modules/wayland/waylandmodule.cpp:660 msgid "" "Sending keyboard layout configuration to wayland compositor from Fcitx is " "not yet supported on current desktop. You may still use Fcitx's internal " "layout conversion by adding layout as input method to the input method group." msgstr "" -#: src/ui/classic/theme.h:182 +#: src/ui/classic/theme.h:180 msgid "Separator Background" msgstr "" -#: src/ui/classic/theme.h:168 +#: src/ui/classic/theme.h:166 msgid "Shadow Margin" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:141 +#: src/lib/fcitx/globalconfig.cpp:147 msgid "Share Input State" msgstr "" @@ -2324,47 +2347,47 @@ msgid "Shop" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:152 +#: src/lib/fcitx/globalconfig.cpp:158 msgid "Show Input Method Information when changing focus" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:149 +#: src/lib/fcitx/globalconfig.cpp:155 msgid "Show Input Method Information when switch input method" msgstr "" -#: src/ui/classic/classicui.h:135 +#: src/ui/classic/classicui.h:132 msgid "Show Layout Name In Icon" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:155 +#: src/lib/fcitx/globalconfig.cpp:161 msgid "Show compact input method information" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:158 +#: src/lib/fcitx/globalconfig.cpp:164 msgid "Show first input method information" msgstr "" -#: src/ui/classic/classicui.h:139 +#: src/ui/classic/classicui.h:136 msgid "" "Show layout name in icon if there is more than one active layout. If prefer " "text icon is set to true, this option will be ignored." msgstr "" -#: src/lib/fcitx/globalconfig.cpp:145 +#: src/lib/fcitx/globalconfig.cpp:151 msgid "Show preedit in application" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:189 +#: src/lib/fcitx/globalconfig.cpp:195 msgid "Show preedit text when typing password" msgstr "" -#: src/im/keyboard/keyboard.h:77 +#: src/im/keyboard/keyboard.h:89 msgid "" "Show preedit when composing, and commit dead key if there is no matching " "sequence." msgstr "" -#: src/lib/fcitx/globalconfig.cpp:64 +#: src/lib/fcitx/globalconfig.cpp:65 msgid "Skip first input method while enumerating" msgstr "" @@ -2378,11 +2401,11 @@ msgid "Space" msgstr "" -#: src/ui/classic/theme.h:176 +#: src/ui/classic/theme.h:174 msgid "Spacing" msgstr "" -#: src/im/keyboard/keyboard.h:79 src/modules/spell/spell.conf.in.in:3 +#: src/im/keyboard/keyboard.h:91 src/modules/spell/spell.conf.in.in:3 msgid "Spell" msgstr "" @@ -2406,8 +2429,8 @@ msgid "Standby" msgstr "" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:5 #: data/org.fcitx.Fcitx5.desktop.in.in:5 +#: data/fcitx5-wayland-launcher.desktop.in.in:5 msgid "Start Input Method" msgstr "" @@ -2420,7 +2443,7 @@ msgid "Stop" msgstr "" -#: src/ui/classic/theme.h:184 +#: src/ui/classic/theme.h:182 msgid "Sub Menu" msgstr "" @@ -2429,7 +2452,7 @@ msgid "Subtitle" msgstr "" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:25 msgid "Super" msgstr "" @@ -2448,29 +2471,29 @@ msgid "Suspend" msgstr "" -#: src/lib/fcitx/instance.cpp:451 src/lib/fcitx/instance.cpp:678 +#: src/lib/fcitx/instance.cpp:459 src/lib/fcitx/instance.cpp:687 #: src/modules/xcb/xcbconnection.cpp:556 msgid "Switch group" msgstr "" -#: src/lib/fcitx/instance.cpp:452 src/modules/xcb/xcbconnection.cpp:557 +#: src/lib/fcitx/instance.cpp:460 src/modules/xcb/xcbconnection.cpp:557 #, c++-format msgid "Switch group to {0}" msgstr "" -#: src/lib/fcitx/instance.cpp:679 +#: src/lib/fcitx/instance.cpp:688 #, c++-format msgid "Switched group to {0}" msgstr "" #: data/fcitx5-diagnose.sh:789 msgid "System Info:" -msgstr "" +msgstr "Thông tin hệ thống:" #: src/lib/fcitx-utils/key.cpp:232 msgctxt "Key name" msgid "System Request" -msgstr "" +msgstr "Yêu cầu hệ thống" #: src/lib/fcitx-utils/key.cpp:41 msgctxt "Key name" @@ -2482,7 +2505,7 @@ msgid "Task Panel" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:44 +#: src/lib/fcitx/globalconfig.cpp:45 msgid "Temporally switch between first and current Input Method" msgstr "" @@ -2510,27 +2533,27 @@ msgid "The script is run as ${1} (${2})." msgstr "" -#: src/ui/classic/classicui.h:155 +#: src/ui/classic/classicui.h:152 msgid "Theme" msgstr "" -#: src/ui/classic/classicui.h:101 +#: src/ui/classic/classicui.h:98 msgid "This is only effective when the tray icon is xembed." msgstr "" -#: src/ui/classic/theme.h:93 src/ui/classic/theme.h:101 +#: src/ui/classic/theme.h:91 src/ui/classic/theme.h:99 msgid "This option is only effective if image is not set." msgstr "" -#: src/ui/classic/classicui.h:194 +#: src/ui/classic/classicui.h:191 msgid "This option require support from wayland compositor." msgstr "" -#: src/ui/classic/classicui.h:173 +#: src/ui/classic/classicui.h:170 msgid "This option will be always disabled on XWayland." msgstr "" -#: src/ui/classic/theme.h:109 +#: src/ui/classic/theme.h:107 msgid "This value should be less than any of margin value." msgstr "" @@ -2554,7 +2577,7 @@ "freezing, see ${link2}." msgstr "" -#: src/lib/fcitx/globalconfig.cpp:132 +#: src/lib/fcitx/globalconfig.cpp:133 msgid "Toggle embedded preedit" msgstr "" @@ -2563,15 +2586,15 @@ msgid "Tools" msgstr "" -#: src/ui/classic/theme.h:48 +#: src/ui/classic/theme.h:46 msgid "Top" msgstr "" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Center" msgstr "" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Left" msgstr "" @@ -2580,7 +2603,7 @@ msgid "Top Menu" msgstr "" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Top Right" msgstr "" @@ -2609,25 +2632,25 @@ msgid "Travel" msgstr "" -#: src/ui/classic/classicui.h:124 +#: src/ui/classic/classicui.h:121 msgid "Tray Font" msgstr "" -#: src/ui/classic/classicui.h:126 +#: src/ui/classic/classicui.h:123 msgid "Tray Label Outline Color" msgstr "" -#: src/ui/classic/classicui.h:129 +#: src/ui/classic/classicui.h:126 msgid "Tray Label Text Color" msgstr "" -#: src/lib/fcitx/globalconfig.cpp:34 +#: src/lib/fcitx/globalconfig.cpp:35 msgid "Trigger Input Method" msgstr "" #: src/modules/imselector/imselector.h:28 -#: src/modules/quickphrase/quickphrase.h:36 src/modules/unicode/unicode.h:31 -#: src/modules/clipboard/clipboard.h:42 +#: src/modules/quickphrase/quickphrase.h:32 src/modules/unicode/unicode.h:28 +#: src/modules/clipboard/clipboard.h:48 msgid "Trigger Key" msgstr "" @@ -2635,25 +2658,25 @@ msgid "Trigger Key for only current input context" msgstr "" -#: src/im/keyboard/keyboard.h:62 +#: src/im/keyboard/keyboard.h:74 msgid "Trigger hint mode" msgstr "" -#: src/im/keyboard/keyboard.h:67 +#: src/im/keyboard/keyboard.h:79 msgid "Trigger hint mode for one time" msgstr "" -#: src/im/keyboard/keyboard.h:82 +#: src/im/keyboard/keyboard.h:94 msgid "Type special characters with long press" msgstr "" -#: src/modules/unicode/unicode.h:36 +#: src/modules/unicode/unicode.h:33 msgid "Type unicode in Hex number" msgstr "" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:22 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:26 msgid "Typing with Fcitx and Kimpanel" -msgstr "" +msgstr "Gõ với Fcitx và Kimpanel" #: data/fcitx5-diagnose.sh:1011 msgid "Unable to find a program to check dbus." @@ -2662,42 +2685,42 @@ #: src/lib/fcitx-utils/key.cpp:226 msgctxt "Key name" msgid "Undo" -msgstr "" +msgstr "Hoàn tác" #: src/modules/unicode/unicode.conf.in.in:3 msgid "Unicode" -msgstr "" +msgstr "Unicode" -#: src/modules/unicode/unicode.cpp:456 +#: src/modules/unicode/unicode.cpp:455 msgid "Unicode: " -msgstr "" +msgstr "Unicode:" #: src/lib/fcitx-utils/key.cpp:48 msgctxt "Key name" msgid "Up" msgstr "" -#: src/frontend/xim/xim.h:33 +#: src/frontend/xim/xim.h:27 msgid "Use On The Spot Style (Needs restarting)" msgstr "" -#: src/ui/classic/classicui.h:169 +#: src/ui/classic/classicui.h:166 msgid "Use Per Screen DPI on X11" msgstr "" -#: src/ui/classic/theme.h:151 +#: src/ui/classic/theme.h:149 msgid "Use all horizontal space for highlight when it is vertical list" msgstr "" -#: src/ui/classic/classicui.h:146 +#: src/ui/classic/classicui.h:143 msgid "Use input method language to display text" msgstr "" -#: src/ui/classic/classicui.h:116 +#: src/ui/classic/classicui.h:113 msgid "Use mouse wheel to go to prev or next page" msgstr "" -#: src/im/keyboard/keyboard.h:73 +#: src/im/keyboard/keyboard.h:85 msgid "Use new compose behavior" msgstr "" @@ -2715,7 +2738,7 @@ "environment:" msgstr "" -#: src/ui/classic/theme.h:192 +#: src/ui/classic/theme.h:190 msgid "Version" msgstr "" @@ -2723,7 +2746,7 @@ msgid "Version Line:" msgstr "" -#: src/ui/classic/classicui.h:114 +#: src/ui/classic/classicui.h:111 msgid "Vertical Candidate List" msgstr "" @@ -2760,7 +2783,7 @@ #: src/lib/fcitx-utils/key.cpp:139 msgctxt "Key name" msgid "WWW" -msgstr "" +msgstr "WWW" #: src/lib/fcitx-utils/key.cpp:136 msgctxt "Key name" @@ -2776,9 +2799,9 @@ #: src/modules/wayland/wayland.conf.in.in:3 msgid "Wayland" -msgstr "" +msgstr "Wayland" -#: src/modules/wayland/waylandmodule.cpp:558 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Wayland Diagnose" msgstr "" @@ -2789,9 +2812,16 @@ #: src/lib/fcitx-utils/key.cpp:200 msgctxt "Key name" msgid "WebCam" +msgstr "WebCam" + +#: src/modules/clipboard/clipboard.h:65 +msgid "" +"When copying password from a password manager, if the password manager " +"supports marking the clipboard content as password, this clipboard update " +"will be ignored." msgstr "" -#: src/lib/fcitx/globalconfig.cpp:171 +#: src/lib/fcitx/globalconfig.cpp:177 msgid "" "Whether to override the xkb option from display server. It will not affect " "the xkb option send to display, but just the xkb options for custom xkb " @@ -2888,14 +2918,15 @@ #: data/fcitx5-configtool.sh:137 msgid "" "You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be " -"found. Now it will open config directory." +"found. The package name provides this binary is usually fcitx5-configtool. " +"Now it will open the configuration directory." msgstr "" #: data/fcitx5-configtool.sh:134 msgid "" -"You're currently running KDE, but KCModule for fcitx couldn't be found, the " -"package name of this KCModule is usually kcm-fcitx or kde-config-fcitx. Now " -"it will open config directory." +"You're currently running KDE, but KCModule for fcitx couldn't be found. The " +"package name of this KCModule is usually kcm-fcitx5, kde-config-fcitx5, or " +"fcitx5-configtool. Now it will open the configuration directory." msgstr "" #: data/fcitx5-diagnose.sh:1185 @@ -2956,17 +2987,17 @@ msgid "version:" msgstr "phiên bản:" -#: src/im/keyboard/keyboard.cpp:292 +#: src/im/keyboard/keyboard.cpp:312 #, c++-format msgid "{0} (Not Available)" msgstr "{0} (Không khả dụng)" -#: src/lib/fcitx/instance.cpp:409 +#: src/lib/fcitx/instance.cpp:417 #, c++-format msgid "{0} (Not available)" msgstr "{0} (Không khả dụng)" -#: src/lib/fcitx/instance.cpp:406 +#: src/lib/fcitx/instance.cpp:414 #, c++-format msgid "{0} ({1})" msgstr "{0} ({1})" diff -Nru fcitx5-5.1.7/po/zh_CN.po fcitx5-5.1.11/po/zh_CN.po --- fcitx5-5.1.7/po/zh_CN.po 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/po/zh_CN.po 2024-10-09 03:48:05.000000000 +0800 @@ -5,16 +5,16 @@ # Translators: # wwj402 <wwj402@gmail.com>, 2017 # rocka, 2023 -# Lau YeeYu, 2023 # csslayer <wengxt@gmail.com>, 2024 +# Yiyu Liu, 2024 # msgid "" msgstr "" "Project-Id-Version: fcitx5\n" "Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" -"POT-Creation-Date: 2024-01-15 20:25+0000\n" +"POT-Creation-Date: 2024-06-13 20:24+0000\n" "PO-Revision-Date: 2017-11-23 04:14+0000\n" -"Last-Translator: csslayer <wengxt@gmail.com>, 2024\n" +"Last-Translator: Yiyu Liu, 2024\n" "Language-Team: Chinese (China) (https://app.transifex.com/fcitx/teams/12005/" "zh_CN/)\n" "Language: zh_CN\n" @@ -51,11 +51,11 @@ msgid "${1} works properly." msgstr "${1} 工作正常。" -#: src/lib/fcitx/instance.cpp:411 +#: src/lib/fcitx/instance.cpp:419 msgid "(Not available)" msgstr "(不可用)" -#: src/modules/unicode/unicode.cpp:458 +#: src/modules/unicode/unicode.cpp:457 msgid "(Type to search unicode by code or description)" msgstr "(输入编码或者描述来搜索 Unicode 字符)" @@ -79,23 +79,31 @@ msgid "/XIM" msgstr "/XIM/zh-cn" -#: src/modules/unicode/charselectdata.cpp:215 +#: src/modules/clipboard/clipboard.h:80 +msgid "0 means never clear password." +msgstr "0 表示永不清除密码。" + +#: src/modules/unicode/charselectdata.cpp:213 msgid "<Low Surrogate>" msgstr "<低半代理区>" -#: src/modules/unicode/charselectdata.cpp:211 +#: src/modules/unicode/charselectdata.cpp:209 msgid "<Non Private Use High Surrogate>" msgstr "<非专用高半代理区>" -#: src/modules/unicode/charselectdata.cpp:213 +#: src/modules/clipboard/clipboard.cpp:116 +msgid "<Passowrd>" +msgstr "<Passowrd>" + +#: src/modules/unicode/charselectdata.cpp:211 msgid "<Private Use High Surrogate>" msgstr "<专用高半代理区>" -#: src/modules/unicode/charselectdata.cpp:217 +#: src/modules/unicode/charselectdata.cpp:215 msgid "<Private Use>" msgstr "<专用区>" -#: src/modules/unicode/charselectdata.cpp:247 +#: src/modules/unicode/charselectdata.cpp:245 msgid "<not assigned>" msgstr "<未指派>" @@ -103,15 +111,15 @@ msgid "A virtual keyboard backend based on DBus" msgstr "一个基于 DBus 的虚拟键盘后端" -#: src/ui/classic/theme.h:204 +#: src/ui/classic/theme.h:202 msgid "Accent Colors" msgstr "重点色" -#: src/lib/fcitx/globalconfig.cpp:82 +#: src/lib/fcitx/globalconfig.cpp:83 msgid "Activate Input Method" msgstr "激活输入法" -#: src/lib/fcitx/globalconfig.cpp:138 +#: src/lib/fcitx/globalconfig.cpp:139 msgid "Active By Default" msgstr "默认状态为激活" @@ -141,7 +149,7 @@ msgid "Adjust Brightness" msgstr "调整亮度" -#: src/lib/fcitx/globalconfig.cpp:26 +#: src/lib/fcitx/globalconfig.cpp:27 msgid "All" msgstr "所有" @@ -157,19 +165,19 @@ msgid "All locales:" msgstr "全部可用 locale:" -#: src/modules/xcb/xcbmodule.h:30 +#: src/modules/xcb/xcbmodule.h:26 msgid "Allow Overriding System XKB Settings" msgstr "允许重写系统 XKB 设置" -#: src/modules/wayland/waylandmodule.h:36 +#: src/modules/wayland/waylandmodule.h:35 msgid "Allow Overriding System XKB Settings (Only support KDE 5)" msgstr "允许重写系统 XKB 设置 (仅支持 KDE 5)" -#: src/lib/fcitx/globalconfig.cpp:186 +#: src/lib/fcitx/globalconfig.cpp:192 msgid "Allow input method in the password field" msgstr "允许在密码框中使用输入法" -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:25 msgid "Alt" msgstr "Alt" @@ -178,7 +186,7 @@ msgid "Alt" msgstr "Alt" -#: src/modules/xcb/xcbmodule.h:33 +#: src/modules/xcb/xcbmodule.h:29 msgid "Always set layout to be only group layout" msgstr "总是设置布局为只有分组布局" @@ -192,7 +200,7 @@ msgid "Application Right" msgstr "应用程序右" -#: src/im/keyboard/keyboard.h:87 +#: src/im/keyboard/keyboard.h:99 msgid "Applications disabled for long press" msgstr "禁用长按的程序" @@ -211,7 +219,7 @@ msgid "Audio Repeat" msgstr "音频重复" -#: src/ui/classic/theme.h:193 +#: src/ui/classic/theme.h:191 msgid "Author" msgstr "作者" @@ -234,11 +242,11 @@ msgid "Backends" msgstr "后端" -#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 +#: src/ui/classic/theme.h:156 src/ui/classic/theme.h:176 msgid "Background" msgstr "背景" -#: src/ui/classic/theme.h:85 +#: src/ui/classic/theme.h:83 msgid "Background Image" msgstr "背景图片" @@ -260,7 +268,7 @@ msgid "Beginner's Guide" msgstr "入门指南" -#: src/lib/fcitx/globalconfig.cpp:203 +#: src/lib/fcitx/globalconfig.cpp:209 msgid "Behavior" msgstr "行为" @@ -274,11 +282,11 @@ msgid "Bluetooth" msgstr "蓝牙" -#: src/ui/classic/theme.h:148 +#: src/ui/classic/theme.h:146 msgid "Blur Margin" msgstr "模糊区域边距" -#: src/ui/classic/theme.h:147 +#: src/ui/classic/theme.h:145 msgid "Blur mask" msgstr "模糊遮罩" @@ -287,27 +295,27 @@ msgid "Book" msgstr "书" -#: src/ui/classic/theme.h:97 +#: src/ui/classic/theme.h:95 msgid "Border Color" msgstr "边框颜色" -#: src/ui/classic/theme.h:105 +#: src/ui/classic/theme.h:103 msgid "Border width" msgstr "边框宽度" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Bottom" msgstr "按钮" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Center" msgstr "底部居中" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Left" msgstr "左下" -#: src/ui/classic/theme.h:39 +#: src/ui/classic/theme.h:37 msgid "Bottom Right" msgstr "右下" @@ -331,7 +339,7 @@ msgid "Cancel" msgstr "取消" -#: src/im/keyboard/longpress.h:19 +#: src/im/keyboard/longpress.h:23 msgid "Candidates" msgstr "候选" @@ -418,15 +426,15 @@ msgid "CapsLock" msgstr "大写锁定" -#: src/ui/classic/theme.h:37 src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:35 src/ui/classic/theme.h:47 msgid "Center" msgstr "居中" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Center Left" msgstr "左侧居中" -#: src/ui/classic/theme.h:37 +#: src/ui/classic/theme.h:35 msgid "Center Right" msgstr "右侧居中" @@ -434,11 +442,11 @@ msgid "Change Fcitx 5 Configuration" msgstr "修改 Fcitx 5 配置" -#: src/ui/classic/theme.h:183 +#: src/ui/classic/theme.h:181 msgid "Check box" msgstr "复选框" -#: src/im/keyboard/keyboard.h:56 src/modules/quickphrase/quickphrase.h:41 +#: src/im/keyboard/keyboard.h:68 src/modules/quickphrase/quickphrase.h:37 msgid "Choose key modifier" msgstr "选词修饰键" @@ -451,7 +459,7 @@ msgid "Clear" msgstr "清空" -#: src/ui/classic/theme.h:131 +#: src/ui/classic/theme.h:129 msgid "Click Margin" msgstr "点击区域边距" @@ -459,7 +467,7 @@ msgid "Clipboard" msgstr "剪贴板" -#: src/modules/clipboard/clipboard.cpp:353 +#: src/modules/clipboard/clipboard.cpp:369 msgid "Clipboard (Press BackSpace/Delete to clear history):" msgstr "剪贴板 (按退格/删除键清空历史): " @@ -473,7 +481,7 @@ msgid "Code input" msgstr "代码输入" -#: src/ui/classic/theme.h:89 +#: src/ui/classic/theme.h:87 msgid "Color" msgstr "颜色" @@ -482,19 +490,19 @@ msgid "Community" msgstr "社区" -#: src/im/keyboard/keyboard.cpp:685 +#: src/im/keyboard/keyboard.cpp:706 msgid "Completion" msgstr "补全" -#: src/im/keyboard/keyboard.cpp:676 +#: src/im/keyboard/keyboard.cpp:697 msgid "Completion is disabled." msgstr "补全已禁用。" -#: src/im/keyboard/keyboard.cpp:679 +#: src/im/keyboard/keyboard.cpp:700 msgid "Completion is enabled temporarily." msgstr "已暂时启用补全。" -#: src/im/keyboard/keyboard.cpp:681 +#: src/im/keyboard/keyboard.cpp:702 msgid "Completion is enabled." msgstr "已启用补全。" @@ -527,11 +535,11 @@ msgstr "配置:" #: src/ui/classic/xcbtraywindow.cpp:38 -#: src/modules/notificationitem/dbusmenu.cpp:254 +#: src/modules/notificationitem/dbusmenu.cpp:253 msgid "Configure" msgstr "配置" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:25 msgid "Control" msgstr "Control" @@ -565,7 +573,7 @@ msgid "Custom" msgstr "自定义" -#: src/lib/fcitx/globalconfig.cpp:176 +#: src/lib/fcitx/globalconfig.cpp:182 msgid "Custom Xkb Option" msgstr "自定义 Xkb 选项" @@ -599,11 +607,11 @@ msgid "DOS" msgstr "DOS" -#: src/ui/classic/classicui.h:158 +#: src/ui/classic/classicui.h:155 msgid "Dark Theme" msgstr "深色主题" -#: src/lib/fcitx/globalconfig.cpp:91 +#: src/lib/fcitx/globalconfig.cpp:92 msgid "Deactivate Input Method" msgstr "取消激活输入法" @@ -611,7 +619,7 @@ msgid "Debug information from dbus:" msgstr "来自 dbus 的调试信息:" -#: src/lib/fcitx/inputmethodmanager.cpp:138 src/lib/fcitx/instance.cpp:358 +#: src/lib/fcitx/inputmethodmanager.cpp:153 src/lib/fcitx/instance.cpp:366 #: src/ui/classic/themes/default/theme.conf.in:3 msgid "Default" msgstr "默认" @@ -620,23 +628,23 @@ msgid "Default Dark" msgstr "默认深色" -#: src/lib/fcitx/globalconfig.cpp:127 +#: src/lib/fcitx/globalconfig.cpp:128 msgid "Default Next Candidate" msgstr "默认跳转下一个候选词" -#: src/lib/fcitx/globalconfig.cpp:111 +#: src/lib/fcitx/globalconfig.cpp:112 msgid "Default Next page" msgstr "默认下一页" -#: src/lib/fcitx/globalconfig.cpp:121 +#: src/lib/fcitx/globalconfig.cpp:122 msgid "Default Previous Candidate" msgstr "默认跳转前一个候选词" -#: src/lib/fcitx/globalconfig.cpp:99 +#: src/lib/fcitx/globalconfig.cpp:100 msgid "Default Previous page" msgstr "默认上一页" -#: src/lib/fcitx/globalconfig.cpp:160 +#: src/lib/fcitx/globalconfig.cpp:166 msgid "Default page size" msgstr "默认页大小" @@ -645,7 +653,7 @@ msgid "Delete" msgstr "删除" -#: src/ui/classic/theme.h:195 +#: src/ui/classic/theme.h:193 msgid "Description" msgstr "描述" @@ -657,7 +665,7 @@ msgid "Desktop environment is ${1}." msgstr "桌面环境为 ${1}。" -#: src/modules/wayland/waylandmodule.cpp:590 +#: src/modules/wayland/waylandmodule.cpp:616 msgid "" "Detect GTK_IM_MODULE and QT_IM_MODULE being set and Wayland Input method " "frontend is working. It is recommended to unset GTK_IM_MODULE and " @@ -668,7 +676,7 @@ "作。推荐不设置 GTK_IM_MODULE 和 QT_IM_MODULE 从而使用 Wayland 输入法前端。更" "多信息请参见 https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma" -#: src/modules/wayland/waylandmodule.cpp:619 +#: src/modules/wayland/waylandmodule.cpp:645 msgid "" "Detect GTK_IM_MODULE being set and Wayland Input method frontend is working. " "It is recommended to unset GTK_IM_MODULE and use Wayland input method " @@ -690,10 +698,14 @@ msgid "Display" msgstr "显示" -#: src/modules/notifications/notifications.cpp:204 +#: src/modules/notifications/notifications.cpp:201 msgid "Do not show again" msgstr "不要再显示" +#: src/modules/clipboard/clipboard.h:61 +msgid "Do not show password from password managers" +msgstr "不要显示密码管理工具中的密码" + #: src/lib/fcitx-utils/key.cpp:162 msgctxt "Key name" msgid "Documents" @@ -704,7 +716,7 @@ msgid "Down" msgstr "下" -#: src/modules/quickphrase/quickphrase.h:47 +#: src/modules/quickphrase/quickphrase.h:43 msgid "Editor" msgstr "编辑器" @@ -727,31 +739,31 @@ msgid "Emoji" msgstr "颜文字" -#: src/im/keyboard/longpress.h:17 +#: src/im/keyboard/longpress.h:21 msgid "Enable" msgstr "启用" -#: src/ui/classic/theme.h:145 +#: src/ui/classic/theme.h:143 msgid "Enable Blur on KWin" msgstr "KWin 下启用模糊" -#: src/modules/quickphrase/quickphrase.h:43 +#: src/modules/quickphrase/quickphrase.h:39 msgid "Enable Spell check" msgstr "启用拼写检查" -#: src/im/keyboard/keyboard.h:51 +#: src/im/keyboard/keyboard.h:63 msgid "Enable emoji in hint" msgstr "在输入提示中启用 Emoji" -#: src/im/keyboard/keyboard.h:54 +#: src/im/keyboard/keyboard.h:66 msgid "Enable emoji in quickphrase" msgstr "在快速输入中启用颜文字" -#: src/ui/classic/classicui.h:190 +#: src/ui/classic/classicui.h:187 msgid "Enable fractional scale under Wayland" msgstr "在 Wayland 下启用分数缩放" -#: src/im/keyboard/keyboard.h:59 +#: src/im/keyboard/keyboard.h:71 msgid "Enable hint by default" msgstr "默认启用提示" @@ -764,27 +776,27 @@ msgid "End" msgstr "行尾" -#: src/im/keyboard/longpress.h:26 +#: src/im/keyboard/longpress.h:30 msgid "Entries" msgstr "项目" -#: src/lib/fcitx/globalconfig.cpp:58 +#: src/lib/fcitx/globalconfig.cpp:59 msgid "Enumerate Input Method Backward" msgstr "向后切换输入法" -#: src/lib/fcitx/globalconfig.cpp:51 +#: src/lib/fcitx/globalconfig.cpp:52 msgid "Enumerate Input Method Forward" msgstr "向前切换输入法" -#: src/lib/fcitx/globalconfig.cpp:75 +#: src/lib/fcitx/globalconfig.cpp:76 msgid "Enumerate Input Method Group Backward" msgstr "向后切换输入法分组" -#: src/lib/fcitx/globalconfig.cpp:68 +#: src/lib/fcitx/globalconfig.cpp:69 msgid "Enumerate Input Method Group Forward" msgstr "向前切换输入分组" -#: src/lib/fcitx/globalconfig.cpp:40 +#: src/lib/fcitx/globalconfig.cpp:41 msgid "Enumerate when press trigger key repeatedly" msgstr "反复按切换键时进行轮换" @@ -827,7 +839,7 @@ msgstr "执行" #: src/ui/classic/xcbtraywindow.cpp:40 -#: src/modules/notificationitem/dbusmenu.cpp:268 +#: src/modules/notificationitem/dbusmenu.cpp:267 msgid "Exit" msgstr "退出" @@ -839,7 +851,7 @@ msgid "Failed to find ${1} in the output of ${2}" msgstr "无法在 ${2} 的输出中找到 ${1}。" -#: src/modules/quickphrase/quickphrase.h:45 +#: src/modules/quickphrase/quickphrase.h:41 msgid "Fallback Spell check language" msgstr "备选拼写检查语言" @@ -848,7 +860,7 @@ msgid "Favorites" msgstr "收藏" -#: src/modules/wayland/waylandmodule.cpp:562 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Fcitx" msgstr "Fcitx" @@ -861,7 +873,7 @@ msgid "Fcitx 5 Configuration" msgstr "Fcitx 5 配置" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:3 +#: data/fcitx5-wayland-launcher.desktop.in.in:3 msgid "Fcitx 5 Wayland Launcher (Experimental)" msgstr "Fcitx 5 Wayland 启动器 (实验性)" @@ -877,7 +889,7 @@ msgid "Fcitx State:" msgstr "Fcitx 状态:" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:9 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:12 msgid "" "Fcitx is an input method framework. It can help you to type your own " "language. It also features variant choice of addons that improve your typing " @@ -886,7 +898,7 @@ "Fcitx 是一个输入法框架。它可以帮助您输入您需要的语言。它也支持许多不同的附加" "组件来改善输入体验。" -#: src/modules/wayland/waylandmodule.cpp:577 +#: src/modules/wayland/waylandmodule.cpp:603 msgid "" "Fcitx should be launched by KWin under KDE Wayland in order to use Wayland " "input method frontend. This can improve the experience when using Fcitx on " @@ -920,15 +932,15 @@ msgid "Find" msgstr "查找" -#: src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:47 msgid "First Candidate" msgstr "第一候选词" -#: src/ui/classic/classicui.h:164 +#: src/ui/classic/classicui.h:161 msgid "Follow system accent color if it is supported by theme and desktop" msgstr "当被主题和桌面支持时使用系统的重点色" -#: src/ui/classic/classicui.h:160 +#: src/ui/classic/classicui.h:157 msgid "Follow system light/dark color scheme" msgstr "跟随系统浅色/深色设置" @@ -943,11 +955,11 @@ "Qt。如果您不使用任何对应版本的 Qt 程序,或者在 Wayland 下使用 Qt 的 text-" "input 支持,下列错误也不是严重问题。" -#: src/ui/classic/classicui.h:120 +#: src/ui/classic/classicui.h:117 msgid "Font" msgstr "字体" -#: src/ui/classic/classicui.h:150 +#: src/ui/classic/classicui.h:147 msgid "" "For example, display character with Chinese variant when using Pinyin and " "Japanese variant when using Anthy. The font configuration needs to support " @@ -956,11 +968,11 @@ "例如,用拼音时显示中文的异体字,用 Anthy 时显示日语的异体字。字体配置需要支持" "这个功能。" -#: src/modules/wayland/waylandmodule.cpp:645 +#: src/modules/wayland/waylandmodule.cpp:671 msgid "For more details see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland" msgstr "更多细节请参见 https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland" -#: src/ui/classic/classicui.h:178 +#: src/ui/classic/classicui.h:175 msgid "Force font DPI on Wayland" msgstr "固定 Wayland 的字体 DPI" @@ -1062,16 +1074,16 @@ msgstr "绿" #: src/ui/classic/xcbtraywindow.cpp:36 -#: src/modules/notificationitem/dbusmenu.cpp:244 +#: src/modules/notificationitem/dbusmenu.cpp:243 msgid "Group" msgstr "分组" -#: src/lib/fcitx/instance.cpp:415 +#: src/lib/fcitx/instance.cpp:423 #, c++-format msgid "Group {0}: {1}" msgstr "分组 {0}:{1}" -#: src/lib/fcitx/instance.cpp:360 +#: src/lib/fcitx/instance.cpp:368 #, c++-format msgid "Group {}" msgstr "分组 {}" @@ -1167,31 +1179,35 @@ msgid "Hibernate" msgstr "休眠" -#: src/modules/notifications/notifications.h:28 +#: src/modules/notifications/notifications.h:26 msgid "Hidden Notifications" msgstr "隐藏通知" -#: src/ui/classic/theme.h:116 +#: src/modules/clipboard/clipboard.h:70 +msgid "Hidden clipboard content that contains a password" +msgstr "隐藏剪贴板中包含密码的内容" + +#: src/ui/classic/theme.h:114 msgid "Hide overlay if size does not fit" msgstr "显示区域不足时隐藏覆盖图片" -#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:180 +#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 msgid "Highlight Background" msgstr "高亮背景" -#: src/ui/classic/theme.h:140 +#: src/ui/classic/theme.h:138 msgid "Highlight Background color" msgstr "高亮背景颜色" -#: src/ui/classic/theme.h:143 +#: src/ui/classic/theme.h:141 msgid "Highlight Candidate Color" msgstr "高亮候选词颜色" -#: src/ui/classic/theme.h:126 +#: src/ui/classic/theme.h:124 msgid "Highlight Click Margin" msgstr "高亮点击边距" -#: src/ui/classic/theme.h:138 +#: src/ui/classic/theme.h:136 msgid "Highlight text color" msgstr "高亮文字颜色" @@ -1234,7 +1250,7 @@ msgid "Hot Links" msgstr "热门链接" -#: src/lib/fcitx/globalconfig.cpp:201 +#: src/lib/fcitx/globalconfig.cpp:207 msgid "Hotkey" msgstr "快捷键" @@ -1256,7 +1272,7 @@ msgid "IBus Frontend" msgstr "IBus 前端" -#: src/lib/fcitx/globalconfig.cpp:197 +#: src/lib/fcitx/globalconfig.cpp:203 msgid "" "If value is 0, the user data may only be saved when fcitx quits (e.g. " "logout)." @@ -1281,17 +1297,16 @@ "${g36_disable_ibus} 禁用 IBus 集成已使用除 ${2} 之外的任何输入法. 更多细节参" "见 ${link}。" -#: src/ui/classic/theme.h:129 +#: src/ui/classic/theme.h:127 msgid "Image" msgstr "图片" -#: src/im/keyboard/keyboard.cpp:684 src/lib/fcitx/instance.cpp:450 -#: src/lib/fcitx/instance.cpp:677 src/lib/fcitx/instance.cpp:839 -#: src/modules/notificationitem/notificationitem.cpp:147 -#: src/modules/notificationitem/notificationitem.cpp:235 -#: src/modules/xcb/xcbconnection.cpp:555 -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:4 -#: data/org.fcitx.Fcitx5.desktop.in.in:4 +#: src/im/keyboard/keyboard.cpp:705 src/lib/fcitx/instance.cpp:458 +#: src/lib/fcitx/instance.cpp:686 src/lib/fcitx/instance.cpp:848 +#: src/modules/notificationitem/notificationitem.cpp:142 +#: src/modules/notificationitem/notificationitem.cpp:230 +#: src/modules/xcb/xcbconnection.cpp:555 data/org.fcitx.Fcitx5.desktop.in.in:4 +#: data/fcitx5-wayland-launcher.desktop.in.in:4 #: data/org.fcitx.Fcitx5.metainfo.xml.in:7 msgid "Input Method" msgstr "输入法" @@ -1308,27 +1323,27 @@ msgid "Input Methods:" msgstr "输入法:" -#: src/ui/classic/theme.h:201 +#: src/ui/classic/theme.h:199 msgid "Input Panel" msgstr "输入面板" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Background" msgstr "输入框背景" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Border" msgstr "输入框边框" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight" msgstr "输入框高亮" -#: src/ui/classic/theme.h:66 +#: src/ui/classic/theme.h:64 msgid "Input Panel Highlight Candidate Background" msgstr "输入框高亮候选词背景" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight Candidate Border" msgstr "输入框高亮候选词边框" @@ -1336,7 +1351,7 @@ msgid "Input method selector" msgstr "输入法选择器" -#: src/lib/fcitx/globalconfig.cpp:103 src/lib/fcitx/globalconfig.cpp:115 +#: src/lib/fcitx/globalconfig.cpp:104 src/lib/fcitx/globalconfig.cpp:116 msgid "" "Input methods may have different setup in their own configuration. This is " "commonly used by modules like clipboard or quickphrase." @@ -1349,7 +1364,7 @@ msgid "Insert" msgstr "插入" -#: src/lib/fcitx/globalconfig.cpp:193 +#: src/lib/fcitx/globalconfig.cpp:199 msgid "Interval of saving user data in minutes" msgstr "保存用户数据的时间间隔(以分钟为单位)" @@ -1365,7 +1380,7 @@ "如果您的混成器完全支持 ${1} 使用的 text-input 协议,您也可以使用 ${1} 内置的 " "Wayland 模块。" -#: src/modules/wayland/waylandmodule.cpp:602 +#: src/modules/wayland/waylandmodule.cpp:628 msgid "" "It is recommended to install Input Method Panel GNOME Shell Extensions to " "provide the input method popup. https://extensions.gnome.org/extension/261/" @@ -1381,7 +1396,7 @@ msgid "KDE Input Method Panel" msgstr "KDE 输入法面板" -#: src/ui/classic/classicui.cpp:280 +#: src/ui/classic/classicui.cpp:278 msgid "KDE Plasma (Experimental)" msgstr "KDE Plasma (实验性)" @@ -1405,20 +1420,20 @@ msgid "Katakana" msgstr "片假名" -#: src/im/keyboard/longpress.h:16 +#: src/im/keyboard/longpress.h:20 msgid "Key" msgstr "按键" -#: src/im/keyboard/keyboard.cpp:315 src/im/keyboard/keyboard.conf.in.in:3 +#: src/im/keyboard/keyboard.cpp:335 src/im/keyboard/keyboard.conf.in.in:3 msgid "Keyboard" msgstr "键盘" -#: src/im/keyboard/keyboard.cpp:231 +#: src/im/keyboard/keyboard.cpp:251 #, c++-format msgid "Keyboard - {0}" msgstr "键盘 - {0}" -#: src/im/keyboard/keyboard.cpp:250 +#: src/im/keyboard/keyboard.cpp:270 #, c++-format msgid "Keyboard - {0} - {1}" msgstr "键盘 - {0} - {1}" @@ -1626,7 +1641,7 @@ msgid "Kimpanel process:" msgstr "Kimpanel 进程:" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Last Candidate" msgstr "上一个候选词" @@ -1763,7 +1778,7 @@ msgid "Logoff" msgstr "注销" -#: src/im/keyboard/keyboard.h:89 +#: src/im/keyboard/keyboard.h:102 msgid "Long Press behavior" msgstr "长按行为" @@ -1772,31 +1787,31 @@ msgid "Mail Forward" msgstr "转发邮件" -#: src/ui/classic/theme.h:118 +#: src/ui/classic/theme.h:116 msgid "Margin" msgstr "边距" -#: src/ui/classic/theme.h:80 +#: src/ui/classic/theme.h:78 msgid "Margin Bottom" msgstr "底部边距" -#: src/ui/classic/theme.h:74 +#: src/ui/classic/theme.h:72 msgid "Margin Left" msgstr "左侧边距" -#: src/ui/classic/theme.h:76 +#: src/ui/classic/theme.h:74 msgid "Margin Right" msgstr "右侧边距" -#: src/ui/classic/theme.h:78 +#: src/ui/classic/theme.h:76 msgid "Margin Top" msgstr "顶部边距" -#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 +#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:184 msgid "Margin around all content" msgstr "内容周围边界" -#: src/ui/classic/theme.h:164 src/ui/classic/theme.h:188 +#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 msgid "Margin around text" msgstr "文本周围边距" @@ -1855,7 +1870,7 @@ msgid "Meeting" msgstr "会议" -#: src/ui/classic/theme.h:202 +#: src/ui/classic/theme.h:200 msgid "Menu" msgstr "菜单" @@ -1864,15 +1879,15 @@ msgid "Menu" msgstr "菜单" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Background" msgstr "菜单背景" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Border" msgstr "菜单边框" -#: src/ui/classic/classicui.h:122 +#: src/ui/classic/classicui.h:119 msgid "Menu Font" msgstr "菜单字体" @@ -1881,15 +1896,15 @@ msgid "Menu PB" msgstr "菜单 PB" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Background" msgstr "菜单选中项背景" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Border" msgstr "菜单选中项边框" -#: src/ui/classic/theme.h:70 +#: src/ui/classic/theme.h:68 msgid "Menu Separator" msgstr "菜单分隔符" @@ -1898,7 +1913,7 @@ msgid "Messenger" msgstr "即时通信" -#: src/ui/classic/theme.h:199 +#: src/ui/classic/theme.h:197 msgid "Metadata" msgstr "元数据" @@ -1937,7 +1952,7 @@ msgid "My Sites" msgstr "我的站点" -#: src/ui/classic/theme.h:191 +#: src/ui/classic/theme.h:189 msgid "Name" msgstr "名称" @@ -1951,31 +1966,31 @@ msgid "News" msgstr "新闻" -#: src/im/keyboard/keyboard.h:48 +#: src/im/keyboard/keyboard.h:60 msgid "Next Candidate" msgstr "下一个候选词" -#: src/ui/classic/theme.h:166 +#: src/ui/classic/theme.h:164 msgid "Next Page Button" msgstr "下一页按钮" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "No" msgstr "否" -#: src/modules/clipboard/clipboard.cpp:355 +#: src/modules/clipboard/clipboard.cpp:371 msgid "No clipboard history." msgstr "无剪贴板历史。" -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:28 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:24 msgid "None" msgstr "无" -#: src/ui/classic/theme.h:135 src/ui/classic/theme.h:171 +#: src/ui/classic/theme.h:133 src/ui/classic/theme.h:169 msgid "Normal text color" msgstr "一般文字颜色" -#: src/ui/classic/classicui.h:182 +#: src/ui/classic/classicui.h:179 msgid "" "Normally Wayland uses 96 as font DPI in combinition with the screen scale " "factor. This option allows you to override the font DPI. If the value is 0, " @@ -2001,11 +2016,11 @@ msgid "NumLock" msgstr "数字锁定" -#: src/modules/clipboard/clipboard.h:48 +#: src/modules/clipboard/clipboard.h:54 msgid "Number of entries" msgstr "项目个数" -#: src/im/keyboard/keyboard.cpp:670 +#: src/im/keyboard/keyboard.cpp:691 msgid "" "Only emoji support is found. To enable spell checking, you may need to " "install spell check data for the language." @@ -2027,27 +2042,27 @@ msgid "Option" msgstr "选项" -#: src/ui/classic/theme.h:120 +#: src/ui/classic/theme.h:118 msgid "Overlay Clip Margin" msgstr "覆盖图片裁剪边界" -#: src/ui/classic/theme.h:110 +#: src/ui/classic/theme.h:108 msgid "Overlay Image" msgstr "覆盖图片" -#: src/ui/classic/theme.h:113 +#: src/ui/classic/theme.h:111 msgid "Overlay X offset" msgstr "覆盖图片 X 偏移" -#: src/ui/classic/theme.h:114 +#: src/ui/classic/theme.h:112 msgid "Overlay Y offset" msgstr "覆盖图片 Y 偏移" -#: src/ui/classic/theme.h:112 +#: src/ui/classic/theme.h:110 msgid "Overlay position" msgstr "覆盖图片位置" -#: src/lib/fcitx/globalconfig.cpp:167 +#: src/lib/fcitx/globalconfig.cpp:173 msgid "Override Xkb Option" msgstr "覆盖 Xkb 选项" @@ -2069,11 +2084,11 @@ msgid "Page Up" msgstr "上一页" -#: src/ui/classic/theme.h:155 +#: src/ui/classic/theme.h:153 msgid "Page button vertical alignment" msgstr "页面按钮垂直对齐" -#: src/im/keyboard/keyboard.h:37 +#: src/im/keyboard/keyboard.h:49 msgid "Page size" msgstr "页大小" @@ -2082,7 +2097,7 @@ msgid "Paste" msgstr "粘贴" -#: src/modules/clipboard/clipboard.h:46 +#: src/modules/clipboard/clipboard.h:52 msgid "Paste Primary" msgstr "粘贴主选区" @@ -2129,19 +2144,19 @@ msgid "Power Off" msgstr "关机" -#: src/lib/fcitx/instance.cpp:839 +#: src/lib/fcitx/instance.cpp:848 msgid "Preedit" msgstr "预编辑" -#: src/lib/fcitx/instance.cpp:841 +#: src/lib/fcitx/instance.cpp:850 msgid "Preedit disabled" msgstr "预编辑已禁用" -#: src/lib/fcitx/instance.cpp:840 +#: src/lib/fcitx/instance.cpp:849 msgid "Preedit enabled" msgstr "预编辑已启用" -#: src/ui/classic/classicui.h:130 src/ui/kimpanel/kimpanel.h:33 +#: src/ui/classic/classicui.h:127 src/ui/kimpanel/kimpanel.h:28 msgid "Prefer Text Icon" msgstr "优先使用文字图标" @@ -2149,11 +2164,11 @@ msgid "Presage" msgstr "Presage" -#: src/im/keyboard/keyboard.h:42 +#: src/im/keyboard/keyboard.h:54 msgid "Prev Candidate" msgstr "上一个候选词" -#: src/ui/classic/theme.h:165 +#: src/ui/classic/theme.h:163 msgid "Prev Page Button" msgstr "上一页按钮" @@ -2167,7 +2182,7 @@ msgid "Print Screen" msgstr "截屏" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "Program" msgstr "程序" @@ -2179,7 +2194,7 @@ msgid "Quick Phrase" msgstr "快速输入" -#: src/modules/quickphrase/quickphrase.cpp:471 +#: src/modules/quickphrase/quickphrase.cpp:470 msgid "Quick Phrase: " msgstr "快速输入: " @@ -2208,8 +2223,12 @@ msgid "Reply" msgstr "回复" +#: src/lib/fcitx/globalconfig.cpp:143 +msgid "Reset state on Focus In" +msgstr "重新聚焦时重置状态" + #: src/ui/classic/xcbtraywindow.cpp:39 -#: src/modules/notificationitem/dbusmenu.cpp:262 +#: src/modules/notificationitem/dbusmenu.cpp:261 msgid "Restart" msgstr "重新启动" @@ -2292,6 +2311,10 @@ msgid "Search" msgstr "搜索" +#: src/modules/clipboard/clipboard.h:76 +msgid "Seconds before clearing password" +msgstr "自动清除密码的秒数" + #: src/lib/fcitx-utils/key.cpp:233 msgctxt "Key name" msgid "Select" @@ -2309,7 +2332,7 @@ msgid "Select specific input method via keyboard" msgstr "通过键盘选择特定的输入法" -#: src/ui/classic/theme.h:174 +#: src/ui/classic/theme.h:172 msgid "Selected Item text color" msgstr "选中项文本颜色" @@ -2318,7 +2341,7 @@ msgid "Send" msgstr "发送" -#: src/modules/wayland/waylandmodule.cpp:634 +#: src/modules/wayland/waylandmodule.cpp:660 msgid "" "Sending keyboard layout configuration to wayland compositor from Fcitx is " "not yet supported on current desktop. You may still use Fcitx's internal " @@ -2327,15 +2350,15 @@ "当前桌面不支持由 Fcitx 将键盘布局配置发送给 wayland 混成器。您仍可以通过将布" "局作为输入法添加到输入法分组来使用 Fcitx 内部的布局转换。" -#: src/ui/classic/theme.h:182 +#: src/ui/classic/theme.h:180 msgid "Separator Background" msgstr "分隔符背景" -#: src/ui/classic/theme.h:168 +#: src/ui/classic/theme.h:166 msgid "Shadow Margin" msgstr "阴影边距" -#: src/lib/fcitx/globalconfig.cpp:141 +#: src/lib/fcitx/globalconfig.cpp:147 msgid "Share Input State" msgstr "共享输入状态" @@ -2349,27 +2372,27 @@ msgid "Shop" msgstr "购物" -#: src/lib/fcitx/globalconfig.cpp:152 +#: src/lib/fcitx/globalconfig.cpp:158 msgid "Show Input Method Information when changing focus" msgstr "在焦点更改时显示输入法信息" -#: src/lib/fcitx/globalconfig.cpp:149 +#: src/lib/fcitx/globalconfig.cpp:155 msgid "Show Input Method Information when switch input method" msgstr "切换输入法时显示输入法信息" -#: src/ui/classic/classicui.h:135 +#: src/ui/classic/classicui.h:132 msgid "Show Layout Name In Icon" msgstr "在图标中显示布局名称" -#: src/lib/fcitx/globalconfig.cpp:155 +#: src/lib/fcitx/globalconfig.cpp:161 msgid "Show compact input method information" msgstr "显示紧凑的输入法信息" -#: src/lib/fcitx/globalconfig.cpp:158 +#: src/lib/fcitx/globalconfig.cpp:164 msgid "Show first input method information" msgstr "显示第一个输入法的信息" -#: src/ui/classic/classicui.h:139 +#: src/ui/classic/classicui.h:136 msgid "" "Show layout name in icon if there is more than one active layout. If prefer " "text icon is set to true, this option will be ignored." @@ -2377,21 +2400,21 @@ "如果有超过一个活动布局,则在图标中显示布局名称。如果优先使用文字图标已启用," "这个选项将会被忽略" -#: src/lib/fcitx/globalconfig.cpp:145 +#: src/lib/fcitx/globalconfig.cpp:151 msgid "Show preedit in application" msgstr "在程序中显示预编辑文本" -#: src/lib/fcitx/globalconfig.cpp:189 +#: src/lib/fcitx/globalconfig.cpp:195 msgid "Show preedit text when typing password" msgstr "输入密码时显示预编辑文本" -#: src/im/keyboard/keyboard.h:77 +#: src/im/keyboard/keyboard.h:89 msgid "" "Show preedit when composing, and commit dead key if there is no matching " "sequence." msgstr "使用组合键时显示预编辑,并且在没有匹配序列时提交死键对应符号" -#: src/lib/fcitx/globalconfig.cpp:64 +#: src/lib/fcitx/globalconfig.cpp:65 msgid "Skip first input method while enumerating" msgstr "轮换输入法时跳过第一个输入法" @@ -2405,11 +2428,11 @@ msgid "Space" msgstr "空格" -#: src/ui/classic/theme.h:176 +#: src/ui/classic/theme.h:174 msgid "Spacing" msgstr "间隔" -#: src/im/keyboard/keyboard.h:79 src/modules/spell/spell.conf.in.in:3 +#: src/im/keyboard/keyboard.h:91 src/modules/spell/spell.conf.in.in:3 msgid "Spell" msgstr "拼写" @@ -2433,8 +2456,8 @@ msgid "Standby" msgstr "待机" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:5 #: data/org.fcitx.Fcitx5.desktop.in.in:5 +#: data/fcitx5-wayland-launcher.desktop.in.in:5 msgid "Start Input Method" msgstr "启动输入法" @@ -2447,7 +2470,7 @@ msgid "Stop" msgstr "停止" -#: src/ui/classic/theme.h:184 +#: src/ui/classic/theme.h:182 msgid "Sub Menu" msgstr "子菜单" @@ -2456,7 +2479,7 @@ msgid "Subtitle" msgstr "副标题" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:25 msgid "Super" msgstr "Super" @@ -2475,17 +2498,17 @@ msgid "Suspend" msgstr "睡眠" -#: src/lib/fcitx/instance.cpp:451 src/lib/fcitx/instance.cpp:678 +#: src/lib/fcitx/instance.cpp:459 src/lib/fcitx/instance.cpp:687 #: src/modules/xcb/xcbconnection.cpp:556 msgid "Switch group" msgstr "切换分组" -#: src/lib/fcitx/instance.cpp:452 src/modules/xcb/xcbconnection.cpp:557 +#: src/lib/fcitx/instance.cpp:460 src/modules/xcb/xcbconnection.cpp:557 #, c++-format msgid "Switch group to {0}" msgstr "切换到分组 {0}" -#: src/lib/fcitx/instance.cpp:679 +#: src/lib/fcitx/instance.cpp:688 #, c++-format msgid "Switched group to {0}" msgstr "已切换到分组 {0}" @@ -2509,7 +2532,7 @@ msgid "Task Panel" msgstr "任务栏" -#: src/lib/fcitx/globalconfig.cpp:44 +#: src/lib/fcitx/globalconfig.cpp:45 msgid "Temporally switch between first and current Input Method" msgstr "临时在当前和第一个输入法之间切换" @@ -2540,27 +2563,27 @@ msgid "The script is run as ${1} (${2})." msgstr "脚本作为 ${1} (${2}) 运行。" -#: src/ui/classic/classicui.h:155 +#: src/ui/classic/classicui.h:152 msgid "Theme" msgstr "主题" -#: src/ui/classic/classicui.h:101 +#: src/ui/classic/classicui.h:98 msgid "This is only effective when the tray icon is xembed." msgstr "这只在托盘为 xembed 时有效。" -#: src/ui/classic/theme.h:93 src/ui/classic/theme.h:101 +#: src/ui/classic/theme.h:91 src/ui/classic/theme.h:99 msgid "This option is only effective if image is not set." msgstr "此选项仅在图片没有设置时生效。" -#: src/ui/classic/classicui.h:194 +#: src/ui/classic/classicui.h:191 msgid "This option require support from wayland compositor." msgstr "此选项需要 Wayland 混成器 (Wayland compositor) 支持。" -#: src/ui/classic/classicui.h:173 +#: src/ui/classic/classicui.h:170 msgid "This option will be always disabled on XWayland." msgstr "在 XWayland 上,此选项将始终被禁用。" -#: src/ui/classic/theme.h:109 +#: src/ui/classic/theme.h:107 msgid "This value should be less than any of margin value." msgstr "这个值应该小于任何边距。" @@ -2588,7 +2611,7 @@ "您可以在 ${link1} 找到一些会在使用 xim 时出现问题的应用程序。包括应用程序卡死" "在内的更多使用 xim 可能出现的普遍问题请参见 ${link2}。" -#: src/lib/fcitx/globalconfig.cpp:132 +#: src/lib/fcitx/globalconfig.cpp:133 msgid "Toggle embedded preedit" msgstr "切换是否使用嵌入预编辑" @@ -2597,15 +2620,15 @@ msgid "Tools" msgstr "工具" -#: src/ui/classic/theme.h:48 +#: src/ui/classic/theme.h:46 msgid "Top" msgstr "顶部" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Center" msgstr "顶部居中" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Left" msgstr "左上" @@ -2614,7 +2637,7 @@ msgid "Top Menu" msgstr "顶部菜单" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Top Right" msgstr "右上" @@ -2643,25 +2666,25 @@ msgid "Travel" msgstr "旅行" -#: src/ui/classic/classicui.h:124 +#: src/ui/classic/classicui.h:121 msgid "Tray Font" msgstr "托盘字体" -#: src/ui/classic/classicui.h:126 +#: src/ui/classic/classicui.h:123 msgid "Tray Label Outline Color" msgstr "托盘标签轮廓颜色" -#: src/ui/classic/classicui.h:129 +#: src/ui/classic/classicui.h:126 msgid "Tray Label Text Color" msgstr "托盘标签文本颜色" -#: src/lib/fcitx/globalconfig.cpp:34 +#: src/lib/fcitx/globalconfig.cpp:35 msgid "Trigger Input Method" msgstr "切换启用/禁用输入法" #: src/modules/imselector/imselector.h:28 -#: src/modules/quickphrase/quickphrase.h:36 src/modules/unicode/unicode.h:31 -#: src/modules/clipboard/clipboard.h:42 +#: src/modules/quickphrase/quickphrase.h:32 src/modules/unicode/unicode.h:28 +#: src/modules/clipboard/clipboard.h:48 msgid "Trigger Key" msgstr "触发键" @@ -2669,23 +2692,23 @@ msgid "Trigger Key for only current input context" msgstr "当前输入上下文的触发键" -#: src/im/keyboard/keyboard.h:62 +#: src/im/keyboard/keyboard.h:74 msgid "Trigger hint mode" msgstr "切换提示模式" -#: src/im/keyboard/keyboard.h:67 +#: src/im/keyboard/keyboard.h:79 msgid "Trigger hint mode for one time" msgstr "触发一次提示模式" -#: src/im/keyboard/keyboard.h:82 +#: src/im/keyboard/keyboard.h:94 msgid "Type special characters with long press" msgstr "用长按来输入特殊字符" -#: src/modules/unicode/unicode.h:36 +#: src/modules/unicode/unicode.h:33 msgid "Type unicode in Hex number" msgstr "使用十六进制数字输入 Unicode 字符" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:22 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:26 msgid "Typing with Fcitx and Kimpanel" msgstr "用 Fcitx 和 Kimpanel 输入" @@ -2702,7 +2725,7 @@ msgid "Unicode" msgstr "Unicode" -#: src/modules/unicode/unicode.cpp:456 +#: src/modules/unicode/unicode.cpp:455 msgid "Unicode: " msgstr "Unicode:" @@ -2711,27 +2734,27 @@ msgid "Up" msgstr "上" -#: src/frontend/xim/xim.h:33 +#: src/frontend/xim/xim.h:27 msgid "Use On The Spot Style (Needs restarting)" msgstr "使用 On The Spot 风格 (需要重启)" -#: src/ui/classic/classicui.h:169 +#: src/ui/classic/classicui.h:166 msgid "Use Per Screen DPI on X11" msgstr "在 X11 上针对不同屏幕使用单独的 DPI" -#: src/ui/classic/theme.h:151 +#: src/ui/classic/theme.h:149 msgid "Use all horizontal space for highlight when it is vertical list" msgstr "竖排列表时使用所有横向空间高亮" -#: src/ui/classic/classicui.h:146 +#: src/ui/classic/classicui.h:143 msgid "Use input method language to display text" msgstr "使用输入法的语言来显示文字" -#: src/ui/classic/classicui.h:116 +#: src/ui/classic/classicui.h:113 msgid "Use mouse wheel to go to prev or next page" msgstr "使用鼠标滚轮翻页" -#: src/im/keyboard/keyboard.h:73 +#: src/im/keyboard/keyboard.h:85 msgid "Use new compose behavior" msgstr "使用新的组合键行为" @@ -2749,7 +2772,7 @@ "environment:" msgstr "使用 ${1} 来检查在当前环境下将被实际使用的输入法模块:" -#: src/ui/classic/theme.h:192 +#: src/ui/classic/theme.h:190 msgid "Version" msgstr "版本" @@ -2757,7 +2780,7 @@ msgid "Version Line:" msgstr "版本行:" -#: src/ui/classic/classicui.h:114 +#: src/ui/classic/classicui.h:111 msgid "Vertical Candidate List" msgstr "垂直候选列表" @@ -2814,7 +2837,7 @@ msgid "Wayland" msgstr "Wayland" -#: src/modules/wayland/waylandmodule.cpp:562 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Wayland Diagnose" msgstr "Wayland 诊断" @@ -2827,7 +2850,14 @@ msgid "WebCam" msgstr "摄像头" -#: src/lib/fcitx/globalconfig.cpp:171 +#: src/modules/clipboard/clipboard.h:65 +msgid "" +"When copying password from a password manager, if the password manager " +"supports marking the clipboard content as password, this clipboard update " +"will be ignored." +msgstr "如果密码管理工具支持,那么剪贴板会忽略从密码管理工具复制的密码。" + +#: src/lib/fcitx/globalconfig.cpp:177 msgid "" "Whether to override the xkb option from display server. It will not affect " "the xkb option send to display, but just the xkb options for custom xkb " @@ -2930,19 +2960,20 @@ #: data/fcitx5-configtool.sh:137 msgid "" "You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be " -"found. Now it will open config directory." +"found. The package name provides this binary is usually fcitx5-configtool. " +"Now it will open the configuration directory." msgstr "" -"您当前正在使用图形界面运行 Fcitx,但是无法找到 fcitx5-config-qt。现在将打开配" -"置目录。" +"您正在 GUI 下运行 Fcitx,但是 fcitx-config-qt 未被找到。该软件包名称通常为 " +"fcitx5-configtool。现在将打开配置目录。" #: data/fcitx5-configtool.sh:134 msgid "" -"You're currently running KDE, but KCModule for fcitx couldn't be found, the " -"package name of this KCModule is usually kcm-fcitx or kde-config-fcitx. Now " -"it will open config directory." +"You're currently running KDE, but KCModule for fcitx couldn't be found. The " +"package name of this KCModule is usually kcm-fcitx5, kde-config-fcitx5, or " +"fcitx5-configtool. Now it will open the configuration directory." msgstr "" -"您正在运行 KDE,但是 fcitx 的 KCModule 未被找到,此 KCModule 的软件包名通常" -"为 kcm-fcitx 或 kde-config-fcitx。现在将打开配置目录。" +"您正在使用 KDE,但是 fcitx 的 KCModule 未被找到,此 KCModule 的软件包名称通常" +"是 kcm-fcitx5、kde-config-fcitx5 或 fcitx5-configtool。现在将打开配置目录。" #: data/fcitx5-diagnose.sh:1185 msgid "" @@ -3006,17 +3037,17 @@ msgid "version:" msgstr "版本:" -#: src/im/keyboard/keyboard.cpp:292 +#: src/im/keyboard/keyboard.cpp:312 #, c++-format msgid "{0} (Not Available)" msgstr "{0} (不可用)" -#: src/lib/fcitx/instance.cpp:409 +#: src/lib/fcitx/instance.cpp:417 #, c++-format msgid "{0} (Not available)" msgstr "{0} (不可用)" -#: src/lib/fcitx/instance.cpp:406 +#: src/lib/fcitx/instance.cpp:414 #, c++-format msgid "{0} ({1})" msgstr "{0} ({1})" diff -Nru fcitx5-5.1.7/po/zh_TW.po fcitx5-5.1.11/po/zh_TW.po --- fcitx5-5.1.7/po/zh_TW.po 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/po/zh_TW.po 2024-10-09 03:48:05.000000000 +0800 @@ -3,6 +3,7 @@ # This file is distributed under the same license as the fcitx5 package. # # Translators: +# csslayer <wengxt@gmail.com>, 2017 # 黃柏諺 <s8321414@gmail.com>, 2017 # pan93412 <pan93412@gmail.com>, 2019 # bruh, 2020 @@ -10,16 +11,16 @@ # 菘菘 <rrt467778@gmail.com>, 2022 # yan12125, 2022 # Neko ◣ 0xFF, 2022 -# csslayer <wengxt@gmail.com>, 2023 -# Lau YeeYu, 2023 +# Yiyu Liu, 2024 +# Kisaragi Hiu <flyingfeather1501@gmail.com>, 2024 # msgid "" msgstr "" "Project-Id-Version: fcitx5\n" "Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n" -"POT-Creation-Date: 2024-01-14 20:24+0000\n" +"POT-Creation-Date: 2024-07-08 20:24+0000\n" "PO-Revision-Date: 2017-11-23 04:14+0000\n" -"Last-Translator: Lau YeeYu, 2023\n" +"Last-Translator: Kisaragi Hiu <flyingfeather1501@gmail.com>, 2024\n" "Language-Team: Chinese (Taiwan) (https://app.transifex.com/fcitx/teams/12005/" "zh_TW/)\n" "Language: zh_TW\n" @@ -56,11 +57,11 @@ msgid "${1} works properly." msgstr "${1} 運作正常。" -#: src/lib/fcitx/instance.cpp:411 +#: src/lib/fcitx/instance.cpp:419 msgid "(Not available)" msgstr "(無法使用)" -#: src/modules/unicode/unicode.cpp:458 +#: src/modules/unicode/unicode.cpp:457 msgid "(Type to search unicode by code or description)" msgstr "(輸入編碼或者描述來搜尋 Unicode 字元)" @@ -84,23 +85,31 @@ msgid "/XIM" msgstr "/XIM" -#: src/modules/unicode/charselectdata.cpp:215 +#: src/modules/clipboard/clipboard.h:80 +msgid "0 means never clear password." +msgstr "0 表示永不清除密碼。" + +#: src/modules/unicode/charselectdata.cpp:213 msgid "<Low Surrogate>" msgstr "<低半代理區>" -#: src/modules/unicode/charselectdata.cpp:211 +#: src/modules/unicode/charselectdata.cpp:209 msgid "<Non Private Use High Surrogate>" msgstr "<非專用高半代理區>" -#: src/modules/unicode/charselectdata.cpp:213 +#: src/modules/clipboard/clipboard.cpp:116 +msgid "<Passowrd>" +msgstr "<Passowrd>" + +#: src/modules/unicode/charselectdata.cpp:211 msgid "<Private Use High Surrogate>" msgstr "<專用高半代理區>" -#: src/modules/unicode/charselectdata.cpp:217 +#: src/modules/unicode/charselectdata.cpp:215 msgid "<Private Use>" msgstr "<專用區>" -#: src/modules/unicode/charselectdata.cpp:247 +#: src/modules/unicode/charselectdata.cpp:245 msgid "<not assigned>" msgstr "<未指定>" @@ -108,15 +117,15 @@ msgid "A virtual keyboard backend based on DBus" msgstr "一個基於 DBus 的虛擬鍵盤後端" -#: src/ui/classic/theme.h:204 +#: src/ui/classic/theme.h:202 msgid "Accent Colors" -msgstr "重點色" +msgstr "強調色" -#: src/lib/fcitx/globalconfig.cpp:82 +#: src/lib/fcitx/globalconfig.cpp:83 msgid "Activate Input Method" msgstr "啟用輸入法" -#: src/lib/fcitx/globalconfig.cpp:138 +#: src/lib/fcitx/globalconfig.cpp:139 msgid "Active By Default" msgstr "預設啟用" @@ -146,7 +155,7 @@ msgid "Adjust Brightness" msgstr "調整亮度" -#: src/lib/fcitx/globalconfig.cpp:26 +#: src/lib/fcitx/globalconfig.cpp:27 msgid "All" msgstr "全部" @@ -162,19 +171,19 @@ msgid "All locales:" msgstr "全部可用 locale:" -#: src/modules/xcb/xcbmodule.h:30 +#: src/modules/xcb/xcbmodule.h:26 msgid "Allow Overriding System XKB Settings" msgstr "允許覆寫系統 XKB 設定" -#: src/modules/wayland/waylandmodule.h:36 +#: src/modules/wayland/waylandmodule.h:35 msgid "Allow Overriding System XKB Settings (Only support KDE 5)" msgstr "允許覆寫系統 XKB 設定 (僅支援 KDE 5)" -#: src/lib/fcitx/globalconfig.cpp:186 +#: src/lib/fcitx/globalconfig.cpp:192 msgid "Allow input method in the password field" msgstr "允許在密碼輸入框中使用輸入法" -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:31 msgid "Alt" msgstr "Alt" @@ -183,7 +192,7 @@ msgid "Alt" msgstr "Alt" -#: src/modules/xcb/xcbmodule.h:33 +#: src/modules/xcb/xcbmodule.h:29 msgid "Always set layout to be only group layout" msgstr "總是設定佈局為僅有分組佈局" @@ -197,7 +206,7 @@ msgid "Application Right" msgstr "應用程式右" -#: src/im/keyboard/keyboard.h:87 +#: src/im/keyboard/keyboard.h:99 msgid "Applications disabled for long press" msgstr "禁用長按的應用程式" @@ -216,7 +225,7 @@ msgid "Audio Repeat" msgstr "音訊重複" -#: src/ui/classic/theme.h:193 +#: src/ui/classic/theme.h:191 msgid "Author" msgstr "作者" @@ -239,11 +248,11 @@ msgid "Backends" msgstr "後端" -#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 +#: src/ui/classic/theme.h:156 src/ui/classic/theme.h:176 msgid "Background" msgstr "背景" -#: src/ui/classic/theme.h:85 +#: src/ui/classic/theme.h:83 msgid "Background Image" msgstr "背景圖片" @@ -265,7 +274,7 @@ msgid "Beginner's Guide" msgstr "新手指南" -#: src/lib/fcitx/globalconfig.cpp:203 +#: src/lib/fcitx/globalconfig.cpp:209 msgid "Behavior" msgstr "行為" @@ -279,11 +288,11 @@ msgid "Bluetooth" msgstr "藍牙" -#: src/ui/classic/theme.h:148 +#: src/ui/classic/theme.h:146 msgid "Blur Margin" msgstr "模糊邊緣" -#: src/ui/classic/theme.h:147 +#: src/ui/classic/theme.h:145 msgid "Blur mask" msgstr "遮罩模糊" @@ -292,27 +301,27 @@ msgid "Book" msgstr "書籍" -#: src/ui/classic/theme.h:97 +#: src/ui/classic/theme.h:95 msgid "Border Color" msgstr "邊框顏色" -#: src/ui/classic/theme.h:105 +#: src/ui/classic/theme.h:103 msgid "Border width" msgstr "邊框寬度" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Bottom" msgstr "按鈕" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Center" msgstr "底部居中" -#: src/ui/classic/theme.h:38 +#: src/ui/classic/theme.h:36 msgid "Bottom Left" msgstr "左下" -#: src/ui/classic/theme.h:39 +#: src/ui/classic/theme.h:37 msgid "Bottom Right" msgstr "右下" @@ -336,7 +345,7 @@ msgid "Cancel" msgstr "取消" -#: src/im/keyboard/longpress.h:19 +#: src/im/keyboard/longpress.h:23 msgid "Candidates" msgstr "候選" @@ -423,15 +432,15 @@ msgid "CapsLock" msgstr "大寫鎖定 (CapsLock)" -#: src/ui/classic/theme.h:37 src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:35 src/ui/classic/theme.h:47 msgid "Center" msgstr "正中" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Center Left" msgstr "左側居中" -#: src/ui/classic/theme.h:37 +#: src/ui/classic/theme.h:35 msgid "Center Right" msgstr "右側居中" @@ -439,11 +448,11 @@ msgid "Change Fcitx 5 Configuration" msgstr "變更 Fcitx 5 設定" -#: src/ui/classic/theme.h:183 +#: src/ui/classic/theme.h:181 msgid "Check box" msgstr "複選框" -#: src/im/keyboard/keyboard.h:56 src/modules/quickphrase/quickphrase.h:41 +#: src/im/keyboard/keyboard.h:68 src/modules/quickphrase/quickphrase.h:43 msgid "Choose key modifier" msgstr "選擇輔助按鍵" @@ -456,7 +465,7 @@ msgid "Clear" msgstr "清空" -#: src/ui/classic/theme.h:131 +#: src/ui/classic/theme.h:129 msgid "Click Margin" msgstr "按區域邊距" @@ -464,7 +473,7 @@ msgid "Clipboard" msgstr "剪貼簿" -#: src/modules/clipboard/clipboard.cpp:353 +#: src/modules/clipboard/clipboard.cpp:369 msgid "Clipboard (Press BackSpace/Delete to clear history):" msgstr "剪貼簿(按 BackSpace/Delete 清除歷史記錄):" @@ -478,7 +487,7 @@ msgid "Code input" msgstr "字碼輸入" -#: src/ui/classic/theme.h:89 +#: src/ui/classic/theme.h:87 msgid "Color" msgstr "顏色" @@ -487,19 +496,19 @@ msgid "Community" msgstr "社群" -#: src/im/keyboard/keyboard.cpp:685 +#: src/im/keyboard/keyboard.cpp:708 msgid "Completion" msgstr "補全" -#: src/im/keyboard/keyboard.cpp:676 +#: src/im/keyboard/keyboard.cpp:699 msgid "Completion is disabled." msgstr "補全已停用。" -#: src/im/keyboard/keyboard.cpp:679 +#: src/im/keyboard/keyboard.cpp:702 msgid "Completion is enabled temporarily." msgstr "補全暫時啟用。" -#: src/im/keyboard/keyboard.cpp:681 +#: src/im/keyboard/keyboard.cpp:704 msgid "Completion is enabled." msgstr "已啟用補全。" @@ -536,7 +545,7 @@ msgid "Configure" msgstr "設定" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:31 msgid "Control" msgstr "控制" @@ -570,7 +579,7 @@ msgid "Custom" msgstr "自訂" -#: src/lib/fcitx/globalconfig.cpp:176 +#: src/lib/fcitx/globalconfig.cpp:182 msgid "Custom Xkb Option" msgstr "自定 Xkb 選項" @@ -604,11 +613,11 @@ msgid "DOS" msgstr "DOS" -#: src/ui/classic/classicui.h:158 +#: src/ui/classic/classicui.h:155 msgid "Dark Theme" msgstr "深色模式" -#: src/lib/fcitx/globalconfig.cpp:91 +#: src/lib/fcitx/globalconfig.cpp:92 msgid "Deactivate Input Method" msgstr "停用輸入法" @@ -616,7 +625,7 @@ msgid "Debug information from dbus:" msgstr "來自 dbus 的除錯訊息:" -#: src/lib/fcitx/inputmethodmanager.cpp:138 src/lib/fcitx/instance.cpp:358 +#: src/lib/fcitx/inputmethodmanager.cpp:153 src/lib/fcitx/instance.cpp:366 #: src/ui/classic/themes/default/theme.conf.in:3 msgid "Default" msgstr "預設" @@ -625,23 +634,23 @@ msgid "Default Dark" msgstr "預設深色" -#: src/lib/fcitx/globalconfig.cpp:127 +#: src/lib/fcitx/globalconfig.cpp:128 msgid "Default Next Candidate" msgstr "預設下一個候選字" -#: src/lib/fcitx/globalconfig.cpp:111 +#: src/lib/fcitx/globalconfig.cpp:112 msgid "Default Next page" msgstr "預設下一頁" -#: src/lib/fcitx/globalconfig.cpp:121 +#: src/lib/fcitx/globalconfig.cpp:122 msgid "Default Previous Candidate" msgstr "預設上一個候選字" -#: src/lib/fcitx/globalconfig.cpp:99 +#: src/lib/fcitx/globalconfig.cpp:100 msgid "Default Previous page" msgstr "預設上一頁" -#: src/lib/fcitx/globalconfig.cpp:160 +#: src/lib/fcitx/globalconfig.cpp:166 msgid "Default page size" msgstr "預設頁面大小" @@ -650,7 +659,7 @@ msgid "Delete" msgstr "刪除" -#: src/ui/classic/theme.h:195 +#: src/ui/classic/theme.h:193 msgid "Description" msgstr "說明" @@ -662,7 +671,7 @@ msgid "Desktop environment is ${1}." msgstr "桌面環境為 ${1}。" -#: src/modules/wayland/waylandmodule.cpp:586 +#: src/modules/wayland/waylandmodule.cpp:616 msgid "" "Detect GTK_IM_MODULE and QT_IM_MODULE being set and Wayland Input method " "frontend is working. It is recommended to unset GTK_IM_MODULE and " @@ -674,7 +683,7 @@ "Wayland 輸入法前端。更多信息請參見 https://fcitx-im.org/wiki/" "Using_Fcitx_5_on_Wayland#KDE_Plasma" -#: src/modules/wayland/waylandmodule.cpp:615 +#: src/modules/wayland/waylandmodule.cpp:645 msgid "" "Detect GTK_IM_MODULE being set and Wayland Input method frontend is working. " "It is recommended to unset GTK_IM_MODULE and use Wayland input method " @@ -697,10 +706,14 @@ msgid "Display" msgstr "顯示" -#: src/modules/notifications/notifications.cpp:204 +#: src/modules/notifications/notifications.cpp:201 msgid "Do not show again" msgstr "不再顯示" +#: src/modules/clipboard/clipboard.h:61 +msgid "Do not show password from password managers" +msgstr "不要顯示密碼管理工具中的密碼" + #: src/lib/fcitx-utils/key.cpp:162 msgctxt "Key name" msgid "Documents" @@ -711,7 +724,7 @@ msgid "Down" msgstr "下" -#: src/modules/quickphrase/quickphrase.h:47 +#: src/modules/quickphrase/quickphrase.h:49 msgid "Editor" msgstr "編輯器" @@ -734,31 +747,31 @@ msgid "Emoji" msgstr "顏文字" -#: src/im/keyboard/longpress.h:17 +#: src/im/keyboard/longpress.h:21 msgid "Enable" msgstr "啟用" -#: src/ui/classic/theme.h:145 +#: src/ui/classic/theme.h:143 msgid "Enable Blur on KWin" msgstr "在 KWin 啟用模糊" -#: src/modules/quickphrase/quickphrase.h:43 +#: src/modules/quickphrase/quickphrase.h:45 msgid "Enable Spell check" msgstr "啟用拼字檢查" -#: src/im/keyboard/keyboard.h:51 +#: src/im/keyboard/keyboard.h:63 msgid "Enable emoji in hint" msgstr "在提示中啟用表情符號" -#: src/im/keyboard/keyboard.h:54 +#: src/im/keyboard/keyboard.h:66 msgid "Enable emoji in quickphrase" msgstr "在快速片語中啟用表情符號" -#: src/ui/classic/classicui.h:190 +#: src/ui/classic/classicui.h:187 msgid "Enable fractional scale under Wayland" msgstr "在 Wayland 下啟用分數縮放" -#: src/im/keyboard/keyboard.h:59 +#: src/im/keyboard/keyboard.h:71 msgid "Enable hint by default" msgstr "預設啟用提示" @@ -771,27 +784,27 @@ msgid "End" msgstr "End 鍵" -#: src/im/keyboard/longpress.h:26 +#: src/im/keyboard/longpress.h:30 msgid "Entries" msgstr "項目" -#: src/lib/fcitx/globalconfig.cpp:58 +#: src/lib/fcitx/globalconfig.cpp:59 msgid "Enumerate Input Method Backward" msgstr "枚舉輸入法向後" -#: src/lib/fcitx/globalconfig.cpp:51 +#: src/lib/fcitx/globalconfig.cpp:52 msgid "Enumerate Input Method Forward" msgstr "枚舉輸入法向前" -#: src/lib/fcitx/globalconfig.cpp:75 +#: src/lib/fcitx/globalconfig.cpp:76 msgid "Enumerate Input Method Group Backward" msgstr "枚舉輸入法群組向後" -#: src/lib/fcitx/globalconfig.cpp:68 +#: src/lib/fcitx/globalconfig.cpp:69 msgid "Enumerate Input Method Group Forward" msgstr "枚舉輸入法群組向前" -#: src/lib/fcitx/globalconfig.cpp:40 +#: src/lib/fcitx/globalconfig.cpp:41 msgid "Enumerate when press trigger key repeatedly" msgstr "重複觸發鍵時枚舉輸入法" @@ -846,7 +859,7 @@ msgid "Failed to find ${1} in the output of ${2}" msgstr "無法在 ${2} 的輸出中找到 ${1}。" -#: src/modules/quickphrase/quickphrase.h:45 +#: src/modules/quickphrase/quickphrase.h:47 msgid "Fallback Spell check language" msgstr "備用拼字檢查語言" @@ -855,7 +868,7 @@ msgid "Favorites" msgstr "收藏" -#: src/modules/wayland/waylandmodule.cpp:558 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Fcitx" msgstr "Fcitx" @@ -868,9 +881,9 @@ msgid "Fcitx 5 Configuration" msgstr "Fcitx 5 設定" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:3 +#: data/fcitx5-wayland-launcher.desktop.in.in:3 msgid "Fcitx 5 Wayland Launcher (Experimental)" -msgstr "" +msgstr "Fcitx 5 Wayland 啟動器(實驗性)" #: data/fcitx5-diagnose.sh:1564 msgid "Fcitx Addons:" @@ -884,7 +897,7 @@ msgid "Fcitx State:" msgstr "Fcitx 狀態:" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:9 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:12 msgid "" "Fcitx is an input method framework. It can help you to type your own " "language. It also features variant choice of addons that improve your typing " @@ -893,7 +906,7 @@ "Fcitx 是輸入法框架。它能幫助您輸入自己的語言。它還具有多種插件選擇,可改善您" "的打字體驗。" -#: src/modules/wayland/waylandmodule.cpp:573 +#: src/modules/wayland/waylandmodule.cpp:603 msgid "" "Fcitx should be launched by KWin under KDE Wayland in order to use Wayland " "input method frontend. This can improve the experience when using Fcitx on " @@ -927,15 +940,15 @@ msgid "Find" msgstr "尋找" -#: src/ui/classic/theme.h:49 +#: src/ui/classic/theme.h:47 msgid "First Candidate" msgstr "第一候選詞" -#: src/ui/classic/classicui.h:164 +#: src/ui/classic/classicui.h:161 msgid "Follow system accent color if it is supported by theme and desktop" -msgstr "在主題與桌面支援時使用系統重點色" +msgstr "在主題與桌面支援時使用系統強調色" -#: src/ui/classic/classicui.h:160 +#: src/ui/classic/classicui.h:157 msgid "Follow system light/dark color scheme" msgstr "跟隨系統淺色/深色設定" @@ -946,39 +959,39 @@ "you do not use any Qt application with certain version of Qt or you are " "using text-input support by Qt under Wayland." msgstr "" -"下列錯誤也許並不准確,因為對 Qt 版本的猜測取決於發行版如何打包 Qt。如果您不使" -"用任何對應版本的 Qt 程序,或者在 Wayland 下使用 Qt 的 text-input 支持,下列錯" -"誤也不是嚴重問題。" +"下列錯誤也許並不準確,因為對 Qt 版本的猜測取決於發行版如何打包 Qt。如果您不使" +"用任何對應版本的 Qt 應用程式,或者您在 Wayland 下使用 Qt 的 text-input 支援," +"那麼下列錯誤不是嚴重問題。" -#: src/ui/classic/classicui.h:120 +#: src/ui/classic/classicui.h:117 msgid "Font" -msgstr "字體" +msgstr "字型" -#: src/ui/classic/classicui.h:150 +#: src/ui/classic/classicui.h:147 msgid "" "For example, display character with Chinese variant when using Pinyin and " "Japanese variant when using Anthy. The font configuration needs to support " "this to use this feature." msgstr "" -"例如,使用拼音時顯示中文異體字,使用 Anthy 時顯示日文異體字。 字體配置需要支" +"例如,使用拼音時顯示中文異體字,使用 Anthy 時顯示日文異體字。 字型配置需要支" "持此功能才能使用此功能。" -#: src/modules/wayland/waylandmodule.cpp:641 +#: src/modules/wayland/waylandmodule.cpp:671 msgid "For more details see https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland" msgstr "更多細節請參見 https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland" -#: src/ui/classic/classicui.h:178 +#: src/ui/classic/classicui.h:175 msgid "Force font DPI on Wayland" msgstr "在 Wayland 上強制使用字型 DPI" #: src/lib/fcitx-utils/key.cpp:94 msgctxt "Key name" msgid "Forward" -msgstr "往前" +msgstr "轉遞按鍵事件" #: src/frontend/waylandim/waylandim.h:31 msgid "Forward key event instead of commiting text if it is not handled" -msgstr "在按鍵事件未處理時轉發按鍵而非提交文本" +msgstr "在按鍵事件未處理時轉遞按鍵事件而非提交文本" #: data/fcitx5-diagnose.sh:1276 msgid "Found ${1} ${2} module: ${3}." @@ -1073,12 +1086,12 @@ msgid "Group" msgstr "群組" -#: src/lib/fcitx/instance.cpp:415 +#: src/lib/fcitx/instance.cpp:423 #, c++-format msgid "Group {0}: {1}" msgstr "群組 {0}:{1}" -#: src/lib/fcitx/instance.cpp:360 +#: src/lib/fcitx/instance.cpp:368 #, c++-format msgid "Group {}" msgstr "群組 {}" @@ -1174,31 +1187,35 @@ msgid "Hibernate" msgstr "休眠" -#: src/modules/notifications/notifications.h:28 +#: src/modules/notifications/notifications.h:26 msgid "Hidden Notifications" msgstr "隱藏通知" -#: src/ui/classic/theme.h:116 +#: src/modules/clipboard/clipboard.h:70 +msgid "Hidden clipboard content that contains a password" +msgstr "隱藏剪貼簿中包含密碼的內容" + +#: src/ui/classic/theme.h:114 msgid "Hide overlay if size does not fit" msgstr "如果尺寸不合適,隱藏疊加層" -#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:180 +#: src/ui/classic/theme.h:158 src/ui/classic/theme.h:178 msgid "Highlight Background" msgstr "高亮背景" -#: src/ui/classic/theme.h:140 +#: src/ui/classic/theme.h:138 msgid "Highlight Background color" msgstr "高亮背景顏色" -#: src/ui/classic/theme.h:143 +#: src/ui/classic/theme.h:141 msgid "Highlight Candidate Color" msgstr "高亮候選詞顏色" -#: src/ui/classic/theme.h:126 +#: src/ui/classic/theme.h:124 msgid "Highlight Click Margin" msgstr "高亮點擊邊距" -#: src/ui/classic/theme.h:138 +#: src/ui/classic/theme.h:136 msgid "Highlight text color" msgstr "高亮文字顏色" @@ -1241,7 +1258,7 @@ msgid "Hot Links" msgstr "熱門連結" -#: src/lib/fcitx/globalconfig.cpp:201 +#: src/lib/fcitx/globalconfig.cpp:207 msgid "Hotkey" msgstr "快捷鍵" @@ -1263,7 +1280,7 @@ msgid "IBus Frontend" msgstr "IBus 前端" -#: src/lib/fcitx/globalconfig.cpp:197 +#: src/lib/fcitx/globalconfig.cpp:203 msgid "" "If value is 0, the user data may only be saved when fcitx quits (e.g. " "logout)." @@ -1288,17 +1305,16 @@ "${g36_disable_ibus} 指令停用 IBus 整合以使用 ${2} 以外的任何輸入法。更多細節" "參見 ${link}。" -#: src/ui/classic/theme.h:129 +#: src/ui/classic/theme.h:127 msgid "Image" msgstr "圖片" -#: src/im/keyboard/keyboard.cpp:684 src/lib/fcitx/instance.cpp:450 -#: src/lib/fcitx/instance.cpp:677 src/lib/fcitx/instance.cpp:839 -#: src/modules/notificationitem/notificationitem.cpp:147 -#: src/modules/notificationitem/notificationitem.cpp:235 -#: src/modules/xcb/xcbconnection.cpp:555 -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:4 -#: data/org.fcitx.Fcitx5.desktop.in.in:4 +#: src/im/keyboard/keyboard.cpp:707 src/lib/fcitx/instance.cpp:458 +#: src/lib/fcitx/instance.cpp:686 src/lib/fcitx/instance.cpp:848 +#: src/modules/notificationitem/notificationitem.cpp:142 +#: src/modules/notificationitem/notificationitem.cpp:230 +#: src/modules/xcb/xcbconnection.cpp:555 data/org.fcitx.Fcitx5.desktop.in.in:4 +#: data/fcitx5-wayland-launcher.desktop.in.in:4 #: data/org.fcitx.Fcitx5.metainfo.xml.in:7 msgid "Input Method" msgstr "輸入法" @@ -1315,27 +1331,27 @@ msgid "Input Methods:" msgstr "輸入法:" -#: src/ui/classic/theme.h:201 +#: src/ui/classic/theme.h:199 msgid "Input Panel" msgstr "輸入面板" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Background" msgstr "輸入框背景" -#: src/ui/classic/theme.h:65 +#: src/ui/classic/theme.h:63 msgid "Input Panel Border" msgstr "輸入框邊框" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight" msgstr "輸入框高亮" -#: src/ui/classic/theme.h:66 +#: src/ui/classic/theme.h:64 msgid "Input Panel Highlight Candidate Background" msgstr "輸入框高亮候選詞背景" -#: src/ui/classic/theme.h:67 +#: src/ui/classic/theme.h:65 msgid "Input Panel Highlight Candidate Border" msgstr "輸入框高亮候選詞邊框" @@ -1343,7 +1359,7 @@ msgid "Input method selector" msgstr "輸入法選擇器" -#: src/lib/fcitx/globalconfig.cpp:103 src/lib/fcitx/globalconfig.cpp:115 +#: src/lib/fcitx/globalconfig.cpp:104 src/lib/fcitx/globalconfig.cpp:116 msgid "" "Input methods may have different setup in their own configuration. This is " "commonly used by modules like clipboard or quickphrase." @@ -1356,7 +1372,7 @@ msgid "Insert" msgstr "插入" -#: src/lib/fcitx/globalconfig.cpp:193 +#: src/lib/fcitx/globalconfig.cpp:199 msgid "Interval of saving user data in minutes" msgstr "儲存使用者數據的時間間隔(以分鐘為單位)" @@ -1372,7 +1388,7 @@ "如果您的混成器完全支持 ${1}使用的 text-input 協議,您也可以使用 ${1} 內置的 " "Wayland 模塊。" -#: src/modules/wayland/waylandmodule.cpp:598 +#: src/modules/wayland/waylandmodule.cpp:628 msgid "" "It is recommended to install Input Method Panel GNOME Shell Extensions to " "provide the input method popup. https://extensions.gnome.org/extension/261/" @@ -1389,7 +1405,7 @@ msgid "KDE Input Method Panel" msgstr "KDE 輸入法面板" -#: src/ui/classic/classicui.cpp:280 +#: src/ui/classic/classicui.cpp:278 msgid "KDE Plasma (Experimental)" msgstr "KDE Plasma (實驗性)" @@ -1413,20 +1429,20 @@ msgid "Katakana" msgstr "片假名" -#: src/im/keyboard/longpress.h:16 +#: src/im/keyboard/longpress.h:20 msgid "Key" msgstr "按鍵" -#: src/im/keyboard/keyboard.cpp:315 src/im/keyboard/keyboard.conf.in.in:3 +#: src/im/keyboard/keyboard.cpp:335 src/im/keyboard/keyboard.conf.in.in:3 msgid "Keyboard" msgstr "鍵盤" -#: src/im/keyboard/keyboard.cpp:231 +#: src/im/keyboard/keyboard.cpp:251 #, c++-format msgid "Keyboard - {0}" msgstr "鍵盤 - {0}" -#: src/im/keyboard/keyboard.cpp:250 +#: src/im/keyboard/keyboard.cpp:270 #, c++-format msgid "Keyboard - {0} - {1}" msgstr "鍵盤 - {0} - {1}" @@ -1634,7 +1650,7 @@ msgid "Kimpanel process:" msgstr "Kimpanel 程序:" -#: src/ui/classic/theme.h:50 +#: src/ui/classic/theme.h:48 msgid "Last Candidate" msgstr "上一個候選詞" @@ -1771,7 +1787,7 @@ msgid "Logoff" msgstr "登出" -#: src/im/keyboard/keyboard.h:89 +#: src/im/keyboard/keyboard.h:102 msgid "Long Press behavior" msgstr "長按行為" @@ -1780,31 +1796,31 @@ msgid "Mail Forward" msgstr "轉寄信件" -#: src/ui/classic/theme.h:118 +#: src/ui/classic/theme.h:116 msgid "Margin" msgstr "邊距" -#: src/ui/classic/theme.h:80 +#: src/ui/classic/theme.h:78 msgid "Margin Bottom" msgstr "底部邊距" -#: src/ui/classic/theme.h:74 +#: src/ui/classic/theme.h:72 msgid "Margin Left" msgstr "左側邊距" -#: src/ui/classic/theme.h:76 +#: src/ui/classic/theme.h:74 msgid "Margin Right" msgstr "右側邊距" -#: src/ui/classic/theme.h:78 +#: src/ui/classic/theme.h:76 msgid "Margin Top" msgstr "頂部邊距" -#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 +#: src/ui/classic/theme.h:160 src/ui/classic/theme.h:184 msgid "Margin around all content" msgstr "內容周圍邊界" -#: src/ui/classic/theme.h:164 src/ui/classic/theme.h:188 +#: src/ui/classic/theme.h:162 src/ui/classic/theme.h:186 msgid "Margin around text" msgstr "內容周圍邊界" @@ -1863,7 +1879,7 @@ msgid "Meeting" msgstr "會議" -#: src/ui/classic/theme.h:202 +#: src/ui/classic/theme.h:200 msgid "Menu" msgstr "選單" @@ -1872,15 +1888,15 @@ msgid "Menu" msgstr "選單" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Background" msgstr "選單背景" -#: src/ui/classic/theme.h:68 +#: src/ui/classic/theme.h:66 msgid "Menu Border" msgstr "選單邊框" -#: src/ui/classic/classicui.h:122 +#: src/ui/classic/classicui.h:119 msgid "Menu Font" msgstr "功能表字體" @@ -1889,15 +1905,15 @@ msgid "Menu PB" msgstr "選單 PB" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Background" msgstr "選單選中項背景" -#: src/ui/classic/theme.h:69 +#: src/ui/classic/theme.h:67 msgid "Menu Selected Item Border" msgstr "選單選中項邊框" -#: src/ui/classic/theme.h:70 +#: src/ui/classic/theme.h:68 msgid "Menu Separator" msgstr "選單分隔符" @@ -1906,7 +1922,7 @@ msgid "Messenger" msgstr "即時通訊工具" -#: src/ui/classic/theme.h:199 +#: src/ui/classic/theme.h:197 msgid "Metadata" msgstr "元數據" @@ -1945,7 +1961,7 @@ msgid "My Sites" msgstr "個人站台" -#: src/ui/classic/theme.h:191 +#: src/ui/classic/theme.h:189 msgid "Name" msgstr "名稱" @@ -1959,31 +1975,31 @@ msgid "News" msgstr "新聞" -#: src/im/keyboard/keyboard.h:48 +#: src/im/keyboard/keyboard.h:60 msgid "Next Candidate" msgstr "下一個候選字" -#: src/ui/classic/theme.h:166 +#: src/ui/classic/theme.h:164 msgid "Next Page Button" msgstr "下一頁按鈕" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "No" msgstr "否" -#: src/modules/clipboard/clipboard.cpp:355 +#: src/modules/clipboard/clipboard.cpp:371 msgid "No clipboard history." msgstr "沒有輸入法歷史" -#: src/im/keyboard/keyboard.h:32 src/modules/quickphrase/quickphrase.h:28 +#: src/im/keyboard/keyboard.h:44 src/modules/quickphrase/quickphrase.h:30 msgid "None" msgstr "無" -#: src/ui/classic/theme.h:135 src/ui/classic/theme.h:171 +#: src/ui/classic/theme.h:133 src/ui/classic/theme.h:169 msgid "Normal text color" msgstr "一般文字顏色" -#: src/ui/classic/classicui.h:182 +#: src/ui/classic/classicui.h:179 msgid "" "Normally Wayland uses 96 as font DPI in combinition with the screen scale " "factor. This option allows you to override the font DPI. If the value is 0, " @@ -2009,11 +2025,11 @@ msgid "NumLock" msgstr "數字鎖定 (NumLock)" -#: src/modules/clipboard/clipboard.h:48 +#: src/modules/clipboard/clipboard.h:54 msgid "Number of entries" msgstr "項目數" -#: src/im/keyboard/keyboard.cpp:670 +#: src/im/keyboard/keyboard.cpp:693 msgid "" "Only emoji support is found. To enable spell checking, you may need to " "install spell check data for the language." @@ -2034,27 +2050,27 @@ msgid "Option" msgstr "選項" -#: src/ui/classic/theme.h:120 +#: src/ui/classic/theme.h:118 msgid "Overlay Clip Margin" msgstr "覆蓋圖片裁剪邊界" -#: src/ui/classic/theme.h:110 +#: src/ui/classic/theme.h:108 msgid "Overlay Image" msgstr "覆蓋圖片" -#: src/ui/classic/theme.h:113 +#: src/ui/classic/theme.h:111 msgid "Overlay X offset" msgstr "覆蓋 X 位移" -#: src/ui/classic/theme.h:114 +#: src/ui/classic/theme.h:112 msgid "Overlay Y offset" msgstr "覆蓋 Y 位移" -#: src/ui/classic/theme.h:112 +#: src/ui/classic/theme.h:110 msgid "Overlay position" msgstr "覆蓋圖片位置" -#: src/lib/fcitx/globalconfig.cpp:167 +#: src/lib/fcitx/globalconfig.cpp:173 msgid "Override Xkb Option" msgstr "覆蓋 Xkb 選項" @@ -2076,11 +2092,11 @@ msgid "Page Up" msgstr "上一頁" -#: src/ui/classic/theme.h:155 +#: src/ui/classic/theme.h:153 msgid "Page button vertical alignment" msgstr "頁面按鈕垂直對齊" -#: src/im/keyboard/keyboard.h:37 +#: src/im/keyboard/keyboard.h:49 msgid "Page size" msgstr "頁面大小" @@ -2089,7 +2105,7 @@ msgid "Paste" msgstr "貼上" -#: src/modules/clipboard/clipboard.h:46 +#: src/modules/clipboard/clipboard.h:52 msgid "Paste Primary" msgstr "貼上主選區" @@ -2136,19 +2152,19 @@ msgid "Power Off" msgstr "關機" -#: src/lib/fcitx/instance.cpp:839 +#: src/lib/fcitx/instance.cpp:848 msgid "Preedit" msgstr "預編輯" -#: src/lib/fcitx/instance.cpp:841 +#: src/lib/fcitx/instance.cpp:850 msgid "Preedit disabled" msgstr "預編輯已停用" -#: src/lib/fcitx/instance.cpp:840 +#: src/lib/fcitx/instance.cpp:849 msgid "Preedit enabled" msgstr "預編輯已啟用" -#: src/ui/classic/classicui.h:130 src/ui/kimpanel/kimpanel.h:33 +#: src/ui/classic/classicui.h:127 src/ui/kimpanel/kimpanel.h:28 msgid "Prefer Text Icon" msgstr "首選文字圖示" @@ -2156,11 +2172,11 @@ msgid "Presage" msgstr "Presage" -#: src/im/keyboard/keyboard.h:42 +#: src/im/keyboard/keyboard.h:54 msgid "Prev Candidate" msgstr "上一個候選字" -#: src/ui/classic/theme.h:165 +#: src/ui/classic/theme.h:163 msgid "Prev Page Button" msgstr "上一頁按鈕" @@ -2174,7 +2190,7 @@ msgid "Print Screen" msgstr "截圖 (PrtSc)" -#: src/lib/fcitx/globalconfig.cpp:27 +#: src/lib/fcitx/globalconfig.cpp:28 msgid "Program" msgstr "程式" @@ -2186,7 +2202,7 @@ msgid "Quick Phrase" msgstr "快速片語" -#: src/modules/quickphrase/quickphrase.cpp:471 +#: src/modules/quickphrase/quickphrase.cpp:488 msgid "Quick Phrase: " msgstr "快速輸入:" @@ -2215,6 +2231,10 @@ msgid "Reply" msgstr "回覆" +#: src/lib/fcitx/globalconfig.cpp:143 +msgid "Reset state on Focus In" +msgstr "重新聚焦時重設狀態" + #: src/ui/classic/xcbtraywindow.cpp:39 #: src/modules/notificationitem/dbusmenu.cpp:261 msgid "Restart" @@ -2299,6 +2319,10 @@ msgid "Search" msgstr "搜尋" +#: src/modules/clipboard/clipboard.h:76 +msgid "Seconds before clearing password" +msgstr "自動清除密碼的時間間隔(單位:秒)" + #: src/lib/fcitx-utils/key.cpp:233 msgctxt "Key name" msgid "Select" @@ -2316,7 +2340,7 @@ msgid "Select specific input method via keyboard" msgstr "通過鍵盤選擇特定的輸入法" -#: src/ui/classic/theme.h:174 +#: src/ui/classic/theme.h:172 msgid "Selected Item text color" msgstr "選中項文本顏色" @@ -2325,7 +2349,7 @@ msgid "Send" msgstr "傳送" -#: src/modules/wayland/waylandmodule.cpp:630 +#: src/modules/wayland/waylandmodule.cpp:660 msgid "" "Sending keyboard layout configuration to wayland compositor from Fcitx is " "not yet supported on current desktop. You may still use Fcitx's internal " @@ -2334,15 +2358,15 @@ "目前桌面不支援由 Fcitx 將鍵盤佈局配置傳送給 wayland 混成器。您仍可以透過將佈" "局作為輸入法添加至輸入法分組以使用 Fcitx 內的佈局轉換。" -#: src/ui/classic/theme.h:182 +#: src/ui/classic/theme.h:180 msgid "Separator Background" msgstr "分隔符背景" -#: src/ui/classic/theme.h:168 +#: src/ui/classic/theme.h:166 msgid "Shadow Margin" msgstr "陰影邊緣" -#: src/lib/fcitx/globalconfig.cpp:141 +#: src/lib/fcitx/globalconfig.cpp:147 msgid "Share Input State" msgstr "共享輸入法狀態" @@ -2356,27 +2380,27 @@ msgid "Shop" msgstr "商店" -#: src/lib/fcitx/globalconfig.cpp:152 +#: src/lib/fcitx/globalconfig.cpp:158 msgid "Show Input Method Information when changing focus" msgstr "當切換輸入焦點時顯示輸入法資訊" -#: src/lib/fcitx/globalconfig.cpp:149 +#: src/lib/fcitx/globalconfig.cpp:155 msgid "Show Input Method Information when switch input method" msgstr "當切換輸入法時顯示輸入法資訊" -#: src/ui/classic/classicui.h:135 +#: src/ui/classic/classicui.h:132 msgid "Show Layout Name In Icon" msgstr "在圖示顯示佈局名稱" -#: src/lib/fcitx/globalconfig.cpp:155 +#: src/lib/fcitx/globalconfig.cpp:161 msgid "Show compact input method information" msgstr "顯示緊湊的輸入法訊息" -#: src/lib/fcitx/globalconfig.cpp:158 +#: src/lib/fcitx/globalconfig.cpp:164 msgid "Show first input method information" msgstr "顯示第一個輸入法資訊" -#: src/ui/classic/classicui.h:139 +#: src/ui/classic/classicui.h:136 msgid "" "Show layout name in icon if there is more than one active layout. If prefer " "text icon is set to true, this option will be ignored." @@ -2384,21 +2408,21 @@ "如果有多個活動佈局,則在圖示中顯示佈局名稱。如果首選文字圖示設定為 true,則此" "選項將被忽略。" -#: src/lib/fcitx/globalconfig.cpp:145 +#: src/lib/fcitx/globalconfig.cpp:151 msgid "Show preedit in application" msgstr "在應用程式中顯示預編輯" -#: src/lib/fcitx/globalconfig.cpp:189 +#: src/lib/fcitx/globalconfig.cpp:195 msgid "Show preedit text when typing password" msgstr "輸入密碼時顯示預編輯文本" -#: src/im/keyboard/keyboard.h:77 +#: src/im/keyboard/keyboard.h:89 msgid "" "Show preedit when composing, and commit dead key if there is no matching " "sequence." msgstr "使用組合鍵時顯示預編輯,並且在沒有匹配序列時提交死鍵對應符號" -#: src/lib/fcitx/globalconfig.cpp:64 +#: src/lib/fcitx/globalconfig.cpp:65 msgid "Skip first input method while enumerating" msgstr "枚舉時略過第一個輸入法" @@ -2412,11 +2436,11 @@ msgid "Space" msgstr "空格" -#: src/ui/classic/theme.h:176 +#: src/ui/classic/theme.h:174 msgid "Spacing" msgstr "間隔" -#: src/im/keyboard/keyboard.h:79 src/modules/spell/spell.conf.in.in:3 +#: src/im/keyboard/keyboard.h:91 src/modules/spell/spell.conf.in.in:3 msgid "Spell" msgstr "拼寫" @@ -2440,8 +2464,8 @@ msgid "Standby" msgstr "待機" -#: data/org.fcitx.Fcitx5.WaylandLauncher.desktop.in.in:5 #: data/org.fcitx.Fcitx5.desktop.in.in:5 +#: data/fcitx5-wayland-launcher.desktop.in.in:5 msgid "Start Input Method" msgstr "啟動輸入法" @@ -2454,7 +2478,7 @@ msgid "Stop" msgstr "停止" -#: src/ui/classic/theme.h:184 +#: src/ui/classic/theme.h:182 msgid "Sub Menu" msgstr "子功能表" @@ -2463,7 +2487,7 @@ msgid "Subtitle" msgstr "副標題" -#: src/im/keyboard/keyboard.h:33 src/modules/quickphrase/quickphrase.h:29 +#: src/im/keyboard/keyboard.h:45 src/modules/quickphrase/quickphrase.h:31 msgid "Super" msgstr "超級" @@ -2482,17 +2506,17 @@ msgid "Suspend" msgstr "暫停" -#: src/lib/fcitx/instance.cpp:451 src/lib/fcitx/instance.cpp:678 +#: src/lib/fcitx/instance.cpp:459 src/lib/fcitx/instance.cpp:687 #: src/modules/xcb/xcbconnection.cpp:556 msgid "Switch group" msgstr "切換分組" -#: src/lib/fcitx/instance.cpp:452 src/modules/xcb/xcbconnection.cpp:557 +#: src/lib/fcitx/instance.cpp:460 src/modules/xcb/xcbconnection.cpp:557 #, c++-format msgid "Switch group to {0}" msgstr "切換分組到 {0}" -#: src/lib/fcitx/instance.cpp:679 +#: src/lib/fcitx/instance.cpp:688 #, c++-format msgid "Switched group to {0}" msgstr "已切換分組到 {0}" @@ -2516,7 +2540,7 @@ msgid "Task Panel" msgstr "工作列" -#: src/lib/fcitx/globalconfig.cpp:44 +#: src/lib/fcitx/globalconfig.cpp:45 msgid "Temporally switch between first and current Input Method" msgstr "臨時在第一個與當前輸入法中切換" @@ -2547,27 +2571,27 @@ msgid "The script is run as ${1} (${2})." msgstr "此腳本以 ${1} (${2}) 執行。" -#: src/ui/classic/classicui.h:155 +#: src/ui/classic/classicui.h:152 msgid "Theme" msgstr "主題" -#: src/ui/classic/classicui.h:101 +#: src/ui/classic/classicui.h:98 msgid "This is only effective when the tray icon is xembed." msgstr "這只在托盤圖示為 xembed 時有效。" -#: src/ui/classic/theme.h:93 src/ui/classic/theme.h:101 +#: src/ui/classic/theme.h:91 src/ui/classic/theme.h:99 msgid "This option is only effective if image is not set." msgstr "此選項僅在圖片沒有設定時有效。" -#: src/ui/classic/classicui.h:194 +#: src/ui/classic/classicui.h:191 msgid "This option require support from wayland compositor." msgstr "此選項需要 Wayland 混成器 (Wayland compositor) 支援。" -#: src/ui/classic/classicui.h:173 +#: src/ui/classic/classicui.h:170 msgid "This option will be always disabled on XWayland." msgstr "在 XWayland 上,此選項將始終被禁用。" -#: src/ui/classic/theme.h:109 +#: src/ui/classic/theme.h:107 msgid "This value should be less than any of margin value." msgstr "這個值應該小於任何邊距值。" @@ -2595,7 +2619,7 @@ "若要查看您在使用 xim 時,一些應用程式的特定問題,請檢查 ${link1}。使用 XIM 的" "其他一般性的問題包括應用程式凍結,請參閱 ${link2}。" -#: src/lib/fcitx/globalconfig.cpp:132 +#: src/lib/fcitx/globalconfig.cpp:133 msgid "Toggle embedded preedit" msgstr "切換內嵌預編輯區域" @@ -2604,15 +2628,15 @@ msgid "Tools" msgstr "工具" -#: src/ui/classic/theme.h:48 +#: src/ui/classic/theme.h:46 msgid "Top" msgstr "頂部" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Center" msgstr "頂部居中" -#: src/ui/classic/theme.h:35 +#: src/ui/classic/theme.h:33 msgid "Top Left" msgstr "左上" @@ -2621,7 +2645,7 @@ msgid "Top Menu" msgstr "頂部選單" -#: src/ui/classic/theme.h:36 +#: src/ui/classic/theme.h:34 msgid "Top Right" msgstr "右上" @@ -2650,25 +2674,25 @@ msgid "Travel" msgstr "旅行" -#: src/ui/classic/classicui.h:124 +#: src/ui/classic/classicui.h:121 msgid "Tray Font" msgstr "托盤字體" -#: src/ui/classic/classicui.h:126 +#: src/ui/classic/classicui.h:123 msgid "Tray Label Outline Color" msgstr "托盤標簽輪廓顏色" -#: src/ui/classic/classicui.h:129 +#: src/ui/classic/classicui.h:126 msgid "Tray Label Text Color" msgstr "托盤標簽文字顏色" -#: src/lib/fcitx/globalconfig.cpp:34 +#: src/lib/fcitx/globalconfig.cpp:35 msgid "Trigger Input Method" msgstr "切換啟用或非啟用輸入法" #: src/modules/imselector/imselector.h:28 -#: src/modules/quickphrase/quickphrase.h:36 src/modules/unicode/unicode.h:31 -#: src/modules/clipboard/clipboard.h:42 +#: src/modules/quickphrase/quickphrase.h:38 src/modules/unicode/unicode.h:28 +#: src/modules/clipboard/clipboard.h:48 msgid "Trigger Key" msgstr "觸發鍵" @@ -2676,23 +2700,23 @@ msgid "Trigger Key for only current input context" msgstr "只針對當前輸入環境的觸發鍵" -#: src/im/keyboard/keyboard.h:62 +#: src/im/keyboard/keyboard.h:74 msgid "Trigger hint mode" msgstr "切換提示模式" -#: src/im/keyboard/keyboard.h:67 +#: src/im/keyboard/keyboard.h:79 msgid "Trigger hint mode for one time" msgstr "一次性觸發提示模式" -#: src/im/keyboard/keyboard.h:82 +#: src/im/keyboard/keyboard.h:94 msgid "Type special characters with long press" msgstr "使用長按來輸入特殊字元" -#: src/modules/unicode/unicode.h:36 +#: src/modules/unicode/unicode.h:33 msgid "Type unicode in Hex number" msgstr "使用十六進制數值來輸入 Unicode 字符" -#: data/org.fcitx.Fcitx5.metainfo.xml.in:22 +#: data/org.fcitx.Fcitx5.metainfo.xml.in:26 msgid "Typing with Fcitx and Kimpanel" msgstr "使用 Fcitx 和 Kimpanel 輸入" @@ -2709,7 +2733,7 @@ msgid "Unicode" msgstr "Unicode" -#: src/modules/unicode/unicode.cpp:456 +#: src/modules/unicode/unicode.cpp:455 msgid "Unicode: " msgstr "Unicode:" @@ -2718,27 +2742,27 @@ msgid "Up" msgstr "上" -#: src/frontend/xim/xim.h:33 +#: src/frontend/xim/xim.h:27 msgid "Use On The Spot Style (Needs restarting)" msgstr "使用 On The Spot 風格 (需要重新啟動)" -#: src/ui/classic/classicui.h:169 +#: src/ui/classic/classicui.h:166 msgid "Use Per Screen DPI on X11" msgstr "在 X11 上對不同螢幕使用單獨的 DPI" -#: src/ui/classic/theme.h:151 +#: src/ui/classic/theme.h:149 msgid "Use all horizontal space for highlight when it is vertical list" msgstr "當它是垂直列表時,使用所有橫向空間高亮顯示" -#: src/ui/classic/classicui.h:146 +#: src/ui/classic/classicui.h:143 msgid "Use input method language to display text" msgstr "使用輸入法語言來顯示文字" -#: src/ui/classic/classicui.h:116 +#: src/ui/classic/classicui.h:113 msgid "Use mouse wheel to go to prev or next page" msgstr "使用滑鼠滾輪到上一頁或下一頁" -#: src/im/keyboard/keyboard.h:73 +#: src/im/keyboard/keyboard.h:85 msgid "Use new compose behavior" msgstr "使用新的撰寫行為" @@ -2756,7 +2780,7 @@ "environment:" msgstr "使用 ${1} 檢查目前環境下將被實際使用的輸入法模塊:" -#: src/ui/classic/theme.h:192 +#: src/ui/classic/theme.h:190 msgid "Version" msgstr "版本" @@ -2764,7 +2788,7 @@ msgid "Version Line:" msgstr "版本行:" -#: src/ui/classic/classicui.h:114 +#: src/ui/classic/classicui.h:111 msgid "Vertical Candidate List" msgstr "垂直候選字列表" @@ -2821,7 +2845,7 @@ msgid "Wayland" msgstr "Wayland" -#: src/modules/wayland/waylandmodule.cpp:558 +#: src/modules/wayland/waylandmodule.cpp:588 msgid "Wayland Diagnose" msgstr "Wayland 診斷" @@ -2834,7 +2858,14 @@ msgid "WebCam" msgstr "網路攝影機" -#: src/lib/fcitx/globalconfig.cpp:171 +#: src/modules/clipboard/clipboard.h:65 +msgid "" +"When copying password from a password manager, if the password manager " +"supports marking the clipboard content as password, this clipboard update " +"will be ignored." +msgstr "密碼管理員支援時,讓剪貼簿忽略從密碼管理員複製的密碼。" + +#: src/lib/fcitx/globalconfig.cpp:177 msgid "" "Whether to override the xkb option from display server. It will not affect " "the xkb option send to display, but just the xkb options for custom xkb " @@ -2936,19 +2967,20 @@ #: data/fcitx5-configtool.sh:137 msgid "" "You're currently running Fcitx with GUI, but fcitx5-config-qt couldn't be " -"found. Now it will open config directory." +"found. The package name provides this binary is usually fcitx5-configtool. " +"Now it will open the configuration directory." msgstr "" -"您目前在圖形介面執行 Fcitx,但是找不到 fcitx5-config-qt。現在它將打開設定目" -"錄。" +"您正在 GUI 下運行 Fcitx,但是 fcitx5-config-qt 未被找到。該軟體包名稱通常為 " +"fcitx5-configtool。現在將打開設定目錄。" #: data/fcitx5-configtool.sh:134 msgid "" -"You're currently running KDE, but KCModule for fcitx couldn't be found, the " -"package name of this KCModule is usually kcm-fcitx or kde-config-fcitx. Now " -"it will open config directory." +"You're currently running KDE, but KCModule for fcitx couldn't be found. The " +"package name of this KCModule is usually kcm-fcitx5, kde-config-fcitx5, or " +"fcitx5-configtool. Now it will open the configuration directory." msgstr "" -"您正在執行 KDE,但是找不到 fcitx 的 KCModule,此 KCModule 的套件名稱通常是 " -"kcm-fcitx 或 kde-config-fcitx。現在將打開設定目錄。" +"您正在使用 KDE,但是 fcitx 的 KCModule 未被找到。此 KCModule 軟體包的名稱通常" +"是 kcm-fcitx5、kde-config-fcitx5 或 fcitx5-configtool。現在將打開設定目錄。" #: data/fcitx5-diagnose.sh:1185 msgid "" @@ -3012,17 +3044,17 @@ msgid "version:" msgstr "版本:" -#: src/im/keyboard/keyboard.cpp:292 +#: src/im/keyboard/keyboard.cpp:312 #, c++-format msgid "{0} (Not Available)" msgstr "{0} (無法使用)" -#: src/lib/fcitx/instance.cpp:409 +#: src/lib/fcitx/instance.cpp:417 #, c++-format msgid "{0} (Not available)" msgstr "{0}(不可用)" -#: src/lib/fcitx/instance.cpp:406 +#: src/lib/fcitx/instance.cpp:414 #, c++-format msgid "{0} ({1})" msgstr "{0} ({1})" diff -Nru fcitx5-5.1.7/src/frontend/dbusfrontend/dbusfrontend.cpp fcitx5-5.1.11/src/frontend/dbusfrontend/dbusfrontend.cpp --- fcitx5-5.1.7/src/frontend/dbusfrontend/dbusfrontend.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/dbusfrontend/dbusfrontend.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -194,11 +194,10 @@ } void updateClientSideUIImpl() override { - auto preedit = - im_->instance()->outputFilter(this, inputPanel().preedit()); - auto auxUp = im_->instance()->outputFilter(this, inputPanel().auxUp()); - auto auxDown = - im_->instance()->outputFilter(this, inputPanel().auxDown()); + auto instance = im_->instance(); + auto preedit = instance->outputFilter(this, inputPanel().preedit()); + auto auxUp = instance->outputFilter(this, inputPanel().auxUp()); + auto auxDown = instance->outputFilter(this, inputPanel().auxDown()); auto candidateList = inputPanel().candidateList(); int cursorIndex = 0; @@ -220,9 +219,9 @@ Text labelText = candidate.hasCustomLabel() ? candidate.customLabel() : candidateList->label(i); - labelText = im_->instance()->outputFilter(this, labelText); + labelText = instance->outputFilter(this, labelText); Text candidateText = - im_->instance()->outputFilter(this, candidate.text()); + instance->outputFilter(this, candidate.textWithComment()); candidates.emplace_back(std::make_tuple( labelText.toString(), candidateText.toString())); } diff -Nru fcitx5-5.1.7/src/frontend/dbusfrontend/dbusfrontend.h fcitx5-5.1.11/src/frontend/dbusfrontend/dbusfrontend.h --- fcitx5-5.1.7/src/frontend/dbusfrontend/dbusfrontend.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/dbusfrontend/dbusfrontend.h 2024-10-09 03:48:05.000000000 +0800 @@ -8,17 +8,13 @@ #define _FCITX_FRONTEND_DBUSFRONTEND_DBUSFRONTEND_H_ #include "fcitx-utils/dbus/servicewatcher.h" -#include "fcitx-utils/event.h" #include "fcitx/addonfactory.h" #include "fcitx/addoninstance.h" #include "fcitx/addonmanager.h" -#include "fcitx/focusgroup.h" #include "fcitx/instance.h" namespace fcitx { -class AddonInstance; -class Instance; class InputMethod1; class DBusFrontendModule : public AddonInstance { diff -Nru fcitx5-5.1.7/src/frontend/fcitx4frontend/fcitx4frontend.cpp fcitx5-5.1.11/src/frontend/fcitx4frontend/fcitx4frontend.cpp --- fcitx5-5.1.7/src/frontend/fcitx4frontend/fcitx4frontend.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/fcitx4frontend/fcitx4frontend.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,16 +6,15 @@ */ #include "fcitx4frontend.h" -#include <fstream> #include "fcitx-utils/dbus/message.h" #include "fcitx-utils/dbus/objectvtable.h" #include "fcitx-utils/dbus/servicewatcher.h" -#include "fcitx-utils/log.h" #include "fcitx-utils/metastring.h" #include "fcitx-utils/standardpath.h" #include "fcitx/inputcontext.h" #include "fcitx/inputmethodentry.h" #include "fcitx/inputmethodmanager.h" +#include "fcitx/inputpanel.h" #include "fcitx/instance.h" #include "fcitx/misc_p.h" #include "dbus_public.h" @@ -102,7 +101,7 @@ } } - ~Fcitx4InputMethod() { + ~Fcitx4InputMethod() override { if (!pathWrote_.empty()) { unlink(pathWrote_.data()); } @@ -145,7 +144,7 @@ created(); } - ~Fcitx4InputContext() { InputContext::destroy(); } + ~Fcitx4InputContext() override { InputContext::destroy(); } const char *frontend() const override { return "fcitx4"; } diff -Nru fcitx5-5.1.7/src/frontend/fcitx4frontend/fcitx4frontend.h fcitx5-5.1.11/src/frontend/fcitx4frontend/fcitx4frontend.h --- fcitx5-5.1.7/src/frontend/fcitx4frontend/fcitx4frontend.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/fcitx4frontend/fcitx4frontend.h 2024-10-09 03:48:05.000000000 +0800 @@ -9,11 +9,9 @@ #define _FCITX5_FRONTEND_FCITX4FRONTEND_FCITX4FRONTEND_H_ #include "fcitx-utils/dbus/servicewatcher.h" -#include "fcitx-utils/event.h" #include "fcitx/addonfactory.h" #include "fcitx/addoninstance.h" #include "fcitx/addonmanager.h" -#include "fcitx/focusgroup.h" #include "fcitx/instance.h" #include "config.h" @@ -23,8 +21,6 @@ namespace fcitx { -class AddonInstance; -class Instance; class Fcitx4InputMethod; class Fcitx4FrontendModule : public AddonInstance { diff -Nru fcitx5-5.1.7/src/frontend/ibusfrontend/ibusfrontend.cpp fcitx5-5.1.11/src/frontend/ibusfrontend/ibusfrontend.cpp --- fcitx5-5.1.7/src/frontend/ibusfrontend/ibusfrontend.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/ibusfrontend/ibusfrontend.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -7,25 +7,50 @@ #include "ibusfrontend.h" #include <fcntl.h> -#include <signal.h> #include <sys/stat.h> #include <sys/wait.h> #include <unistd.h> -#include <fstream> -#include <mutex> +#include <cerrno> +#include <csignal> +#include <cstddef> +#include <cstdint> +#include <cstdio> +#include <cstdlib> +#include <memory> +#include <optional> +#include <set> +#include <string> +#include <tuple> +#include <utility> +#include <vector> +#include <fmt/core.h> #include <fmt/format.h> #include "fcitx-config/iniparser.h" +#include "fcitx-config/rawconfig.h" +#include "fcitx-utils/capabilityflags.h" +#include "fcitx-utils/dbus/bus.h" #include "fcitx-utils/dbus/message.h" #include "fcitx-utils/dbus/objectvtable.h" #include "fcitx-utils/dbus/servicewatcher.h" #include "fcitx-utils/dbus/variant.h" +#include "fcitx-utils/event.h" +#include "fcitx-utils/flags.h" +#include "fcitx-utils/handlertable.h" +#include "fcitx-utils/key.h" #include "fcitx-utils/log.h" -#include "fcitx-utils/metastring.h" +#include "fcitx-utils/macros.h" +#include "fcitx-utils/misc.h" +#include "fcitx-utils/rect.h" #include "fcitx-utils/standardpath.h" #include "fcitx-utils/stringutils.h" +#include "fcitx-utils/textformatflags.h" #include "fcitx-utils/utf8.h" #include "fcitx-utils/uuid_p.h" +#include "fcitx/addonfactory.h" +#include "fcitx/addoninstance.h" +#include "fcitx/event.h" #include "fcitx/inputcontext.h" +#include "fcitx/inputpanel.h" #include "fcitx/instance.h" #include "fcitx/misc_p.h" #include "dbus_public.h" @@ -89,9 +114,10 @@ hostname, "-", displaynumber)); } -std::string getFullSocketPath(bool isWayland) { +std::string getFullSocketPath(const StandardPath &standardPath, + bool isWayland) { return stringutils::joinPath( - StandardPath::global().userDirectory(StandardPath::Type::Config), + standardPath.userDirectory(StandardPath::Type::Config), getSocketPath(isWayland)); } @@ -130,8 +156,8 @@ } pid_t runIBusExit() { - pid_t child_pid; - if ((child_pid = fork()) == -1) { + pid_t child_pid = fork(); + if (child_pid == -1) { perror("fork"); return -1; } @@ -248,7 +274,7 @@ created(); } - ~IBusInputContext() { InputContext::destroy(); } + ~IBusInputContext() override { InputContext::destroy(); } const char *frontend() const override { return "ibus"; } @@ -407,8 +433,11 @@ void enable() {} void disable() {} static bool isEnabled() { return true; } - void propertyActivate(const std::string &, int32_t) {} - void setEngine(const std::string &) {} + void propertyActivate(const std::string &name, int32_t state) { + FCITX_UNUSED(name); + FCITX_UNUSED(state); + } + void setEngine(const std::string &engine) { FCITX_UNUSED(engine); } static dbus::Variant getEngine() { return dbus::Variant(0); } void setSurroundingText(const dbus::Variant &text, uint32_t cursor, uint32_t anchor) { @@ -509,7 +538,7 @@ #define CASE_PURPOSE(_PURPOSE, _CAPABILITY) \ case _PURPOSE: \ - flag |= _CAPABILITY; \ + flag |= (_CAPABILITY); \ break; switch (purpose) { @@ -545,8 +574,8 @@ }; #define CHECK_HINTS(_HINTS, _CAPABILITY) \ - if (hints & _HINTS) { \ - flag |= _CAPABILITY; \ + if (hints & (_HINTS)) { \ + flag |= (_CAPABILITY); \ } CHECK_HINTS(GTK_INPUT_HINT_SPELLCHECK, @@ -568,9 +597,7 @@ } FCITX_OBJECT_VTABLE_WRITABLE_PROPERTY( contentType, "ContentType", "(uu)", - ([]() -> dbus::DBusStruct<uint32_t, uint32_t> { - return {0, 0}; - }), + ([]() -> dbus::DBusStruct<uint32_t, uint32_t> { return {0, 0}; }), ([this](dbus::DBusStruct<uint32_t, uint32_t> type) { setContentType(std::get<0>(type), std::get<1>(type)); }), @@ -625,13 +652,13 @@ return ic->path(); } -std::set<std::string> allSocketPaths() { +std::set<std::string> allSocketPaths(const StandardPath &standardPath) { std::set<std::string> paths; if (isInFlatpak()) { // Flatpak always use DISPLAY=:99, which means we will need to guess // what files are available. - auto map = StandardPath::global().multiOpenFilter( - StandardPath::Type::Config, "ibus/bus", O_RDONLY, + auto map = standardPath.locateWithFilter( + StandardPath::Type::Config, "ibus/bus", [](const std::string &path, const std::string &, bool user) { if (!user) { return false; @@ -640,14 +667,14 @@ }); for (const auto &item : map) { - paths.insert(item.second.path()); + paths.insert(item.second); } // Make the guess that display is 0, it is the most common value that // people would have. if (paths.empty()) { - auto configHome = StandardPath::global().userDirectory( - StandardPath::Type::Config); + auto configHome = + standardPath.userDirectory(StandardPath::Type::Config); if (!configHome.empty()) { paths.insert(stringutils::joinPath( configHome, "ibus/bus", @@ -655,20 +682,20 @@ } } } else { - if (auto path = getFullSocketPath(false); !path.empty()) { + if (auto path = getFullSocketPath(standardPath, false); !path.empty()) { paths.insert(std::move(path)); } } // Also add wayland. - if (auto path = getFullSocketPath(true); !path.empty()) { + if (auto path = getFullSocketPath(standardPath, true); !path.empty()) { paths.insert(std::move(path)); } return paths; } IBusFrontendModule::IBusFrontendModule(Instance *instance) - : instance_(instance), socketPaths_(allSocketPaths()) { + : instance_(instance), socketPaths_(allSocketPaths(standardPath_)) { dbus::VariantTypeRegistry::defaultRegistry().registerType<IBusText>(); dbus::VariantTypeRegistry::defaultRegistry().registerType<IBusAttribute>(); dbus::VariantTypeRegistry::defaultRegistry().registerType<IBusAttrList>(); @@ -718,17 +745,17 @@ portalBus_->releaseName(IBUS_PORTAL_DBUS_SERVICE); } - if (addressWrote_.empty()) { + if (addressWrote_.empty() || socketPaths_.empty()) { return; } + // Writeback an empty invalid address file. + RawConfig config; + config.setValueByPath("IBUS_ADDRESS", ""); + config.setValueByPath("IBUS_DAEMON_PID", ""); for (const auto &path : socketPaths_) { auto address = getAddress(path); if (address.first == addressWrote_ && address.second == pidWrote_) { - // Writeback an empty invalid address file. - RawConfig config; - config.setValueByPath("IBUS_ADDRESS", ""); - config.setValueByPath("IBUS_DAEMON_PID", ""); - StandardPath::global().safeSave( + standardPath_.safeSave( StandardPath::Type::Config, path, [&config](int fd) { return writeAsIni(config, fd); }); } @@ -818,13 +845,13 @@ return; } } else if (auto optionalAddress = readIBusInfo(socketPaths_)) { - auto address = *optionalAddress; auto pid = runIBusExit(); if (pid > 0) { FCITX_IBUS_DEBUG() << "Running ibus exit."; timeEvent_ = instance()->eventLoop().addTimeEvent( CLOCK_MONOTONIC, now(CLOCK_MONOTONIC) + 1000000, 0, - [this, pid, address, recheck](EventSourceTime *, uint64_t) { + [this, pid, address = std::move(*optionalAddress), + recheck](EventSourceTime *, uint64_t) { int stat = -1; pid_t ret; while ((ret = waitpid(pid, &stat, WNOHANG)) <= 0) { @@ -880,10 +907,9 @@ auto address = bus()->address(); if (isInFlatpak()) { if (address.find("/run/flatpak/bus") != std::string::npos) { - auto userBus = - stringutils::joinPath(StandardPath::global().userDirectory( - StandardPath::Type::Runtime), - "bus"); + auto userBus = stringutils::joinPath( + standardPath_.userDirectory(StandardPath::Type::Runtime), + "bus"); struct stat statbuf; @@ -918,14 +944,14 @@ FCITX_IBUS_DEBUG() << "Writing ibus daemon info."; for (const auto &path : socketPaths_) { - if (!StandardPath::global().safeSave( + if (!standardPath_.safeSave( StandardPath::Type::Config, path, [&config](int fd) { return writeAsIni(config, fd); })) { return; } } - addressWrote_ = address; + addressWrote_ = std::move(address); pidWrote_ = pidToWrite; if (!recheck) { diff -Nru fcitx5-5.1.7/src/frontend/ibusfrontend/ibusfrontend.h fcitx5-5.1.11/src/frontend/ibusfrontend/ibusfrontend.h --- fcitx5-5.1.7/src/frontend/ibusfrontend/ibusfrontend.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/ibusfrontend/ibusfrontend.h 2024-10-09 03:48:05.000000000 +0800 @@ -8,24 +8,20 @@ #define _FCITX_FRONTEND_IBUSFRONTEND_IBUSFRONTEND_H_ #include <unistd.h> -#include "fcitx-utils/dbus/servicewatcher.h" -#include "fcitx-utils/event.h" -#include "fcitx/addonfactory.h" +#include "fcitx-utils/dbus/bus.h" +#include "fcitx-utils/standardpath.h" #include "fcitx/addoninstance.h" #include "fcitx/addonmanager.h" -#include "fcitx/focusgroup.h" #include "fcitx/instance.h" namespace fcitx { -class AddonInstance; -class Instance; class IBusFrontend; class IBusFrontendModule : public AddonInstance { public: IBusFrontendModule(Instance *instance); - ~IBusFrontendModule(); + ~IBusFrontendModule() override; dbus::Bus *bus(); Instance *instance() { return instance_; } @@ -39,6 +35,7 @@ // Check if org.freedesktop.IBus is owned by us and socket file is ours. void ensureIsIBus(); + const StandardPath &standardPath_ = StandardPath::global(); Instance *instance_; std::unique_ptr<dbus::Bus> portalBus_; std::unique_ptr<IBusFrontend> inputMethod1_; diff -Nru fcitx5-5.1.7/src/frontend/waylandim/appmonitor.cpp fcitx5-5.1.11/src/frontend/waylandim/appmonitor.cpp --- fcitx5-5.1.7/src/frontend/waylandim/appmonitor.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/waylandim/appmonitor.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,9 +6,6 @@ */ #include "appmonitor.h" #include <algorithm> -#include "fcitx/misc_p.h" -#include "display.h" -#include "plasmaappmonitor.h" namespace fcitx { diff -Nru fcitx5-5.1.7/src/frontend/waylandim/appmonitor.h fcitx5-5.1.11/src/frontend/waylandim/appmonitor.h --- fcitx5-5.1.7/src/frontend/waylandim/appmonitor.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/waylandim/appmonitor.h 2024-10-09 03:48:05.000000000 +0800 @@ -9,15 +9,10 @@ #include <optional> #include <string> -#include <unordered_set> #include "fcitx-utils/signals.h" namespace fcitx { -namespace wayland { -class Display; -} - class AppMonitor { public: virtual ~AppMonitor() = default; diff -Nru fcitx5-5.1.7/src/frontend/waylandim/plasmaappmonitor.cpp fcitx5-5.1.11/src/frontend/waylandim/plasmaappmonitor.cpp --- fcitx5-5.1.7/src/frontend/waylandim/plasmaappmonitor.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/waylandim/plasmaappmonitor.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,12 +6,8 @@ */ #include "plasmaappmonitor.h" #include <string> -#include <unordered_set> -#include "fcitx-utils/stringutils.h" -#include "fcitx/addoninstance.h" #include "plasma-window-management/org_kde_plasma_window.h" #include "plasma-window-management/org_kde_plasma_window_management.h" -#include "wayland_public.h" namespace fcitx { class PlasmaWindow { diff -Nru fcitx5-5.1.7/src/frontend/waylandim/plasmaappmonitor.h fcitx5-5.1.11/src/frontend/waylandim/plasmaappmonitor.h --- fcitx5-5.1.7/src/frontend/waylandim/plasmaappmonitor.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/waylandim/plasmaappmonitor.h 2024-10-09 03:48:05.000000000 +0800 @@ -16,7 +16,6 @@ class OrgKdePlasmaWindowManagement; class OrgKdePlasmaWindow; } // namespace wayland -class AddonInstance; class PlasmaWindow; class PlasmaAppMonitor : public AppMonitor { diff -Nru fcitx5-5.1.7/src/frontend/waylandim/virtualinputcontext.cpp fcitx5-5.1.11/src/frontend/waylandim/virtualinputcontext.cpp --- fcitx5-5.1.7/src/frontend/waylandim/virtualinputcontext.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/waylandim/virtualinputcontext.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -7,9 +7,7 @@ #include "virtualinputcontext.h" #include <string> #include "fcitx-utils/misc_p.h" -#include "fcitx/focusgroup.h" #include "fcitx/inputcontext.h" -#include "fcitx/inputcontextmanager.h" namespace fcitx { @@ -128,7 +126,7 @@ } } - focus_ = focus; + focus_ = std::move(focus); updateFocus(); } diff -Nru fcitx5-5.1.7/src/frontend/waylandim/virtualinputcontext.h fcitx5-5.1.11/src/frontend/waylandim/virtualinputcontext.h --- fcitx5-5.1.7/src/frontend/waylandim/virtualinputcontext.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/waylandim/virtualinputcontext.h 2024-10-09 03:48:05.000000000 +0800 @@ -11,7 +11,6 @@ #include <fcitx/inputcontext.h> #include "fcitx-utils/capabilityflags.h" #include "fcitx-utils/signals.h" -#include "fcitx/event.h" #include "appmonitor.h" namespace fcitx { diff -Nru fcitx5-5.1.7/src/frontend/waylandim/waylandim.cpp fcitx5-5.1.11/src/frontend/waylandim/waylandim.cpp --- fcitx5-5.1.7/src/frontend/waylandim/waylandim.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/waylandim/waylandim.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -5,18 +5,11 @@ * */ #include "waylandim.h" -#include <unistd.h> -#include <algorithm> -#include <cassert> -#include <cstring> #include <memory> -#include "fcitx-utils/event.h" #include "fcitx-utils/misc_p.h" -#include "fcitx-utils/utf8.h" #include "fcitx/inputcontext.h" #include "fcitx/misc_p.h" #include "appmonitor.h" -#include "display.h" #include "plasmaappmonitor.h" #include "virtualinputcontext.h" #include "wayland_public.h" diff -Nru fcitx5-5.1.7/src/frontend/waylandim/waylandim.h fcitx5-5.1.11/src/frontend/waylandim/waylandim.h --- fcitx5-5.1.7/src/frontend/waylandim/waylandim.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/waylandim/waylandim.h 2024-10-09 03:48:05.000000000 +0800 @@ -31,8 +31,7 @@ _("Forward key event instead of commiting text if it is not handled"), true};); -constexpr int32_t repeatHackDelay = 1000; -class WaylandIMModule; +constexpr int32_t repeatHackDelay = 3000; class WaylandIMServer; class WaylandIMServerV2; diff -Nru fcitx5-5.1.7/src/frontend/waylandim/waylandimserver.cpp fcitx5-5.1.11/src/frontend/waylandim/waylandimserver.cpp --- fcitx5-5.1.7/src/frontend/waylandim/waylandimserver.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/waylandim/waylandimserver.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,12 +6,15 @@ */ #include "waylandimserver.h" #include <sys/mman.h> +#include <algorithm> #include <memory> -#include <fcitx-utils/utf8.h> -#include "appmonitor.h" +#include "fcitx-utils/macros.h" +#include "fcitx-utils/utf8.h" #include "virtualinputcontext.h" #include "wayland-text-input-unstable-v1-client-protocol.h" +#include "wayland_public.h" #include "waylandim.h" +#include "wl_seat.h" #ifdef __linux__ #include <linux/input-event-codes.h> @@ -24,11 +27,13 @@ namespace fcitx { -constexpr CapabilityFlags baseFlags{CapabilityFlag::Preedit, - CapabilityFlag::FormattedPreedit, - CapabilityFlag::SurroundingText}; +namespace { -static inline unsigned int waylandFormat(TextFormatFlags flags) { +constexpr CapabilityFlags baseFlags{ + CapabilityFlag::Preedit, CapabilityFlag::FormattedPreedit, + CapabilityFlag::SurroundingText, CapabilityFlag::ClientUnfocusCommit}; + +inline unsigned int waylandFormat(TextFormatFlags flags) { if (flags & TextFormatFlag::HighLight) { return ZWP_TEXT_INPUT_V1_PREEDIT_STYLE_HIGHLIGHT; } @@ -44,6 +49,8 @@ return ZWP_TEXT_INPUT_V1_PREEDIT_STYLE_NONE; } +} // namespace + WaylandIMServer::WaylandIMServer(wl_display *display, FocusGroup *group, const std::string &name, WaylandIMModule *waylandim) @@ -72,7 +79,7 @@ auto im = display_->getGlobal<wayland::ZwpInputMethodV1>(); if (im && !inputMethodV1_) { WAYLANDIM_DEBUG() << "WAYLANDIM V1"; - inputMethodV1_ = im; + inputMethodV1_ = std::move(im); auto *globalIc = new WaylandIMInputContextV1( parent_->instance()->inputContextManager(), this); globalIc->setFocusGroup(group_); @@ -117,7 +124,7 @@ InputContextManager &inputContextManager, WaylandIMServer *server) : VirtualInputContextGlue(inputContextManager), server_(server) { timeEvent_ = server_->instance()->eventLoop().addTimeEvent( - CLOCK_MONOTONIC, now(CLOCK_MONOTONIC), 0, + CLOCK_MONOTONIC, now(CLOCK_MONOTONIC), 1, [this](EventSourceTime *, uint64_t) { repeat(); return true; @@ -170,7 +177,6 @@ keyboard_->repeatInfo().connect([this](int32_t rate, int32_t delay) { repeatInfoCallback(rate, delay); }); - repeatInfoCallback(repeatRate_, repeatDelay_); wl_array array; wl_array_init(&array); constexpr char data[] = "Shift\0Control\0Mod1\0Mod4"; @@ -189,6 +195,7 @@ if (ic_.get() == ic) { ic_.reset(); keyboard_.reset(); + repeatInfo_.reset(); // This is the only place we update wayland display mask, so it is ok to // reset it to 0. This breaks the caps lock or num lock. But we have no // other option until we can listen to the mod change globally. @@ -218,7 +225,7 @@ sendKeyToVK(repeatTime_, event.rawKey(), WL_KEYBOARD_KEY_STATE_PRESSED); } - uint64_t interval = 1000000 / repeatRate_; + uint64_t interval = 1000000 / repeatRate(); timeEvent_->setTime(timeEvent_->time() + interval); timeEvent_->setOneShot(); } @@ -247,7 +254,7 @@ break; } surroundingText().setText(text, cursorByChar, anchorByChar); - } while (0); + } while (false); updateSurroundingTextWrapper(); } void WaylandIMInputContextV1::resetCallback() { @@ -431,8 +438,9 @@ server_->parent_->wayland()->call<IWaylandModule::reloadXkbOption>(); } -void WaylandIMInputContextV1::keyCallback(uint32_t, uint32_t time, uint32_t key, - uint32_t state) { +void WaylandIMInputContextV1::keyCallback(uint32_t serial, uint32_t time, + uint32_t key, uint32_t state) { + FCITX_UNUSED(serial); time_ = time; if (!server_->state_) { return; @@ -455,13 +463,14 @@ timeEvent_->setEnabled(false); } else if (state == WL_KEYBOARD_KEY_STATE_PRESSED && xkb_keymap_key_repeats(server_->keymap_.get(), code)) { - if (repeatRate_) { + if (repeatRate() > 0) { repeatKey_ = key; repeatTime_ = time; repeatSym_ = event.rawKey().sym(); // Let's trick the key event system by fake our first. // Remove 100 from the initial interval. - timeEvent_->setNextInterval(repeatDelay_ * 1000 - repeatHackDelay); + timeEvent_->setNextInterval(std::max( + 0, std::max(0, repeatDelay() * 1000 - repeatHackDelay))); timeEvent_->setOneShot(); } } @@ -481,7 +490,7 @@ WAYLANDIM_DEBUG() << "Engine handling speed can not keep up with key " "repetition rate."; timeEvent_->setNextInterval( - std::min(1000, repeatDelay_ * 1000 - repeatHackDelay)); + std::clamp(repeatDelay() * 1000 - repeatHackDelay, 0, 1000)); } } void WaylandIMInputContextV1::modifiersCallback(uint32_t serial, @@ -539,9 +548,10 @@ } } +// This is not sent by either kwin/weston, but since it's unclear whether any +// one would send it, so keep it as is. void WaylandIMInputContextV1::repeatInfoCallback(int32_t rate, int32_t delay) { - repeatRate_ = rate; - repeatDelay_ = delay; + repeatInfo_ = std::make_tuple(rate, delay); } void WaylandIMInputContextV1::sendKey(uint32_t time, uint32_t sym, @@ -621,4 +631,13 @@ ic_->deleteSurroundingText(startBytes - cursorBytes, sizeBytes); ic_->commitString(serial_, ""); } + +int32_t WaylandIMInputContextV1::repeatRate() const { + return server_->repeatRate(nullptr, repeatInfo_); +} + +int32_t WaylandIMInputContextV1::repeatDelay() const { + return server_->repeatDelay(nullptr, repeatInfo_); +} + } // namespace fcitx diff -Nru fcitx5-5.1.7/src/frontend/waylandim/waylandimserver.h fcitx5-5.1.11/src/frontend/waylandim/waylandimserver.h --- fcitx5-5.1.7/src/frontend/waylandim/waylandimserver.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/waylandim/waylandimserver.h 2024-10-09 03:48:05.000000000 +0800 @@ -8,15 +8,11 @@ #define _FCITX5_FRONTEND_WAYLANDIM_WAYLANDIMSERVER_H_ #include <memory> -#include <wayland-client.h> -#include <xkbcommon/xkbcommon.h> #include "fcitx-utils/event.h" #include "fcitx-utils/key.h" #include "fcitx-utils/keysymgen.h" -#include "fcitx/focusgroup.h" -#include "fcitx/inputcontext.h" -#include "fcitx/inputcontextmanager.h" -#include "fcitx/instance.h" +#include "fcitx-utils/macros.h" +#include "fcitx-utils/signals.h" #include "virtualinputcontext.h" #include "waylandimserverbase.h" #include "wl_keyboard.h" @@ -25,7 +21,6 @@ namespace fcitx { class WaylandIMModule; -class WaylandIMInputContextV1; class WaylandIMServer : public WaylandIMServerBase { friend class WaylandIMInputContextV1; @@ -34,7 +29,7 @@ WaylandIMServer(wl_display *display, FocusGroup *group, const std::string &name, WaylandIMModule *waylandim); - ~WaylandIMServer(); + ~WaylandIMServer() override; InputContextManager &inputContextManager(); @@ -71,17 +66,18 @@ public: WaylandIMInputContextV1(InputContextManager &inputContextManager, WaylandIMServer *server); - ~WaylandIMInputContextV1(); + ~WaylandIMInputContextV1() override; const char *frontend() const override { return "wayland"; } - void activate(wayland::ZwpInputMethodContextV1 *id); - void deactivate(wayland::ZwpInputMethodContextV1 *id); + void activate(wayland::ZwpInputMethodContextV1 *ic); + void deactivate(wayland::ZwpInputMethodContextV1 *ic); bool hasKeyboardGrab() const { return keyboard_.get(); } protected: - void commitStringDelegate(const InputContext *, + void commitStringDelegate(const InputContext *ic, const std::string &text) const override { + FCITX_UNUSED(ic); if (!ic_) { return; } @@ -89,8 +85,9 @@ } void deleteSurroundingTextDelegate(InputContext *ic, int offset, unsigned int size) const override; - void forwardKeyDelegate(InputContext *, + void forwardKeyDelegate(InputContext *ic, const ForwardKeyEvent &key) const override { + FCITX_UNUSED(ic); if (!ic_) { return; } @@ -156,6 +153,9 @@ return modifiers; } + int32_t repeatRate() const; + int32_t repeatDelay() const; + WaylandIMServer *server_; std::unique_ptr<wayland::ZwpInputMethodContextV1> ic_; std::unique_ptr<wayland::WlKeyboard> keyboard_; @@ -168,7 +168,7 @@ uint32_t repeatTime_ = 0; KeySym repeatSym_ = FcitxKey_None; - int32_t repeatRate_ = 40, repeatDelay_ = 400; + std::optional<std::tuple<int32_t, int32_t>> repeatInfo_; }; } // namespace fcitx diff -Nru fcitx5-5.1.7/src/frontend/waylandim/waylandimserverbase.cpp fcitx5-5.1.11/src/frontend/waylandim/waylandimserverbase.cpp --- fcitx5-5.1.7/src/frontend/waylandim/waylandimserverbase.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/waylandim/waylandimserverbase.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -8,16 +8,16 @@ #include <optional> #include <string> #include <wayland-client-core.h> -#include "fcitx-utils/event.h" #include "fcitx-utils/utf8.h" #include "waylandim.h" +#include "wl_seat.h" namespace fcitx { WaylandIMServerBase::WaylandIMServerBase(wl_display *display, FocusGroup *group, - const std::string &name, + std::string name, WaylandIMModule *waylandim) - : group_(group), name_(name), parent_(waylandim), + : group_(group), name_(std::move(name)), parent_(waylandim), display_( static_cast<wayland::Display *>(wl_display_get_user_data(display))) {} @@ -37,4 +37,42 @@ return std::nullopt; } +std::optional<std::tuple<int32_t, int32_t>> WaylandIMServerBase::repeatInfo( + const std::shared_ptr<wayland::WlSeat> &seat, + const std::optional<std::tuple<int32_t, int32_t>> &defaultValue) const { + if (defaultValue) { + return defaultValue; + } + auto seatPtr = seat; + if (!seatPtr) { + seatPtr = display_->getGlobal<wayland::WlSeat>(); + } + if (seatPtr) { + auto repeatInfo = parent_->wayland()->call<IWaylandModule::repeatInfo>( + name_, *seatPtr); + if (repeatInfo) { + return repeatInfo; + } + } + return std::nullopt; +} + +int32_t WaylandIMServerBase::repeatRate( + const std::shared_ptr<wayland::WlSeat> &seat, + const std::optional<std::tuple<int32_t, int32_t>> &defaultValue) const { + if (auto info = repeatInfo(seat, defaultValue)) { + return std::get<0>(info.value()); + } + return 25; +} + +int32_t WaylandIMServerBase::repeatDelay( + const std::shared_ptr<wayland::WlSeat> &seat, + const std::optional<std::tuple<int32_t, int32_t>> &defaultValue) const { + if (auto info = repeatInfo(seat, defaultValue)) { + return std::get<1>(info.value()); + } + return 600; +} + } // namespace fcitx diff -Nru fcitx5-5.1.7/src/frontend/waylandim/waylandimserverbase.h fcitx5-5.1.11/src/frontend/waylandim/waylandimserverbase.h --- fcitx5-5.1.7/src/frontend/waylandim/waylandimserverbase.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/waylandim/waylandimserverbase.h 2024-10-09 03:48:05.000000000 +0800 @@ -8,27 +8,33 @@ #define _FCITX5_FRONTEND_WAYLANDIM_WAYLANDIMSERVERBASE_H_ #include <string> -#include <wayland-client-core.h> #include <xkbcommon/xkbcommon.h> -#include "fcitx-utils/event.h" #include "fcitx-utils/misc.h" -#include "fcitx/focusgroup.h" #include "display.h" #include "waylandim.h" +#include "wl_seat.h" namespace fcitx { class WaylandIMServerBase { public: WaylandIMServerBase(wl_display *display, FocusGroup *group, - const std::string &name, WaylandIMModule *waylandim); + std::string name, WaylandIMModule *waylandim); virtual ~WaylandIMServerBase() = default; auto *parent() { return parent_; } + auto *display() { return display_; } std::optional<std::string> mayCommitAsText(const Key &key, uint32_t state) const; + int32_t repeatRate( + const std::shared_ptr<wayland::WlSeat> &seat, + const std::optional<std::tuple<int32_t, int32_t>> &defaultValue) const; + int32_t repeatDelay( + const std::shared_ptr<wayland::WlSeat> &seat, + const std::optional<std::tuple<int32_t, int32_t>> &defaultValue) const; + protected: FocusGroup *group_; std::string name_; @@ -40,6 +46,11 @@ UniqueCPtr<struct xkb_state, xkb_state_unref> state_; KeyStates modifiers_; + +private: + std::optional<std::tuple<int32_t, int32_t>> repeatInfo( + const std::shared_ptr<wayland::WlSeat> &seat, + const std::optional<std::tuple<int32_t, int32_t>> &defaultValue) const; }; } // namespace fcitx diff -Nru fcitx5-5.1.7/src/frontend/waylandim/waylandimserverv2.cpp fcitx5-5.1.11/src/frontend/waylandim/waylandimserverv2.cpp --- fcitx5-5.1.7/src/frontend/waylandim/waylandimserverv2.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/waylandim/waylandimserverv2.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,6 +6,7 @@ */ #include "waylandimserverv2.h" #include <sys/mman.h> +#include <ctime> #include "fcitx-utils/keysymgen.h" #include "fcitx-utils/unixfd.h" #include "fcitx-utils/utf8.h" @@ -17,9 +18,9 @@ namespace fcitx { -constexpr CapabilityFlags baseFlags{CapabilityFlag::Preedit, - CapabilityFlag::FormattedPreedit, - CapabilityFlag::SurroundingText}; +constexpr CapabilityFlags baseFlags{ + CapabilityFlag::Preedit, CapabilityFlag::FormattedPreedit, + CapabilityFlag::SurroundingText, CapabilityFlag::ClientUnfocusCommit}; WaylandIMServerV2::WaylandIMServerV2(wl_display *display, FocusGroup *group, const std::string &name, @@ -49,11 +50,11 @@ }); if (auto im = display_->getGlobal<wayland::ZwpInputMethodManagerV2>()) { - inputMethodManagerV2_ = im; + inputMethodManagerV2_ = std::move(im); } if (auto vk = display_->getGlobal<wayland::ZwpVirtualKeyboardManagerV1>()) { - virtualKeyboardManagerV1_ = vk; + virtualKeyboardManagerV1_ = std::move(vk); } init(); } @@ -107,12 +108,13 @@ } } -void WaylandIMServerV2::add(WaylandIMInputContextV2 *ic, wayland::WlSeat *id) { - icMap_[id] = ic; +void WaylandIMServerV2::add(WaylandIMInputContextV2 *ic, + wayland::WlSeat *seat) { + icMap_[seat] = ic; } -void WaylandIMServerV2::remove(wayland::WlSeat *id) { - auto iter = icMap_.find(id); +void WaylandIMServerV2::remove(wayland::WlSeat *seat) { + auto iter = icMap_.find(seat); if (iter != icMap_.end()) { icMap_.erase(iter); } @@ -144,6 +146,7 @@ if (pendingDeactivate_) { pendingDeactivate_ = false; keyboardGrab_.reset(); + repeatInfo_.reset(); // This is the only place we update wayland xkb mask, so it is ok to // reset it to 0. This breaks the caps lock or num lock. But we have // no other option until we can listen to the mod change globally. @@ -197,7 +200,6 @@ [this](int32_t rate, int32_t delay) { repeatInfoCallback(rate, delay); }); - repeatInfoCallback(repeatRate_, repeatDelay_); focusInWrapper(); } } @@ -211,7 +213,7 @@ }); ic_->unavailable().connect([]() { WAYLANDIM_DEBUG() << "UNAVAILABLE"; }); timeEvent_ = server_->instance()->eventLoop().addTimeEvent( - CLOCK_MONOTONIC, now(CLOCK_MONOTONIC), 0, + CLOCK_MONOTONIC, now(CLOCK_MONOTONIC), 1, [this](EventSourceTime *, uint64_t) { repeat(); return true; @@ -244,7 +246,7 @@ if (!ic->keyEvent(event)) { sendKeyToVK(repeatTime_, event.rawKey(), WL_KEYBOARD_KEY_STATE_PRESSED); } - uint64_t interval = 1000000 / repeatRate_; + uint64_t interval = 1000000 / repeatRate(); timeEvent_->setTime(timeEvent_->time() + interval); timeEvent_->setOneShot(); } @@ -273,7 +275,7 @@ break; } surroundingText().setText(text, cursorByChar, anchorByChar); - } while (0); + } while (false); updateSurroundingTextWrapper(); } void WaylandIMInputContextV2::resetCallback() { @@ -426,8 +428,9 @@ server_->parent_->wayland()->call<IWaylandModule::reloadXkbOption>(); } -void WaylandIMInputContextV2::keyCallback(uint32_t, uint32_t time, uint32_t key, - uint32_t state) { +void WaylandIMInputContextV2::keyCallback(uint32_t serial, uint32_t time, + uint32_t key, uint32_t state) { + FCITX_UNUSED(serial); time_ = time; if (!server_->state_) { return; @@ -451,13 +454,13 @@ timeEvent_->setEnabled(false); } else if (state == WL_KEYBOARD_KEY_STATE_PRESSED && xkb_keymap_key_repeats(server_->keymap_.get(), code)) { - if (repeatRate_) { + if (repeatRate() > 0) { repeatKey_ = key; repeatTime_ = time; repeatSym_ = event.rawKey().sym(); // Let's trick the key event system by fake our first. // Remove 100 from the initial interval. - timeEvent_->setNextInterval(repeatDelay_ * 1000 - repeatHackDelay); + timeEvent_->setNextInterval(repeatDelay() * 1000 - repeatHackDelay); timeEvent_->setOneShot(); } } @@ -479,10 +482,10 @@ WAYLANDIM_DEBUG() << "Engine handling speed can not keep up with key " "repetition rate."; timeEvent_->setNextInterval( - std::min(1000, repeatDelay_ * 1000 - repeatHackDelay)); + std::clamp(repeatDelay() * 1000 - repeatHackDelay, 0, 1000)); } } -void WaylandIMInputContextV2::modifiersCallback(uint32_t, +void WaylandIMInputContextV2::modifiersCallback(uint32_t /*serial*/, uint32_t mods_depressed, uint32_t mods_latched, uint32_t mods_locked, @@ -533,8 +536,7 @@ } void WaylandIMInputContextV2::repeatInfoCallback(int32_t rate, int32_t delay) { - repeatRate_ = rate; - repeatDelay_ = delay; + repeatInfo_ = std::make_tuple(rate, delay); } void WaylandIMInputContextV2::sendKeyToVK(uint32_t time, const Key &key, @@ -550,21 +552,22 @@ } // Erase old to ensure order, and released ones can the be removed. pressedVKKey_.erase(code); - if (state == WL_KEYBOARD_KEY_STATE_PRESSED) { + if (state == WL_KEYBOARD_KEY_STATE_PRESSED && + xkb_keymap_key_repeats(server_->keymap_.get(), key.code())) { pressedVKKey_[code] = time; } vk_->key(time, code, state); } void WaylandIMInputContextV2::forwardKeyDelegate( - InputContext *, const ForwardKeyEvent &key) const { + InputContext * /*ic*/, const ForwardKeyEvent &key) const { uint32_t code = 0; if (key.rawKey().code()) { code = key.rawKey().code(); - } else if (auto xkbState = server_->xkbState()) { + } else if (auto *xkbState = server_->xkbState()) { auto *map = xkb_state_get_keymap(xkbState); - auto min = xkb_keymap_min_keycode(map), - max = xkb_keymap_max_keycode(map); + auto min = xkb_keymap_min_keycode(map); + auto max = xkb_keymap_max_keycode(map); for (auto keyCode = min; keyCode < max; keyCode++) { if (xkb_state_key_get_one_sym(xkbState, keyCode) == static_cast<uint32_t>(key.rawKey().sym())) { @@ -591,8 +594,10 @@ auto preedit = server_->instance()->outputFilter(ic, ic->inputPanel().clientPreedit()); - int highlightStart = -1, highlightEnd = -1; - int start = 0, end = 0; + int highlightStart = -1; + int highlightEnd = -1; + int start = 0; + int end = 0; bool multipleHighlight = false; for (int i = 0, e = preedit.size(); i < e; i++) { if (!utf8::validate(preedit.stringAt(i))) { @@ -663,4 +668,13 @@ startBytes + sizeBytes - cursorBytes); ic_->commit(serial_); } + +int32_t WaylandIMInputContextV2::repeatRate() const { + return server_->repeatRate(seat_, repeatInfo_); +} + +int32_t WaylandIMInputContextV2::repeatDelay() const { + return server_->repeatDelay(seat_, repeatInfo_); +} + } // namespace fcitx diff -Nru fcitx5-5.1.7/src/frontend/waylandim/waylandimserverv2.h fcitx5-5.1.11/src/frontend/waylandim/waylandimserverv2.h --- fcitx5-5.1.7/src/frontend/waylandim/waylandimserverv2.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/waylandim/waylandimserverv2.h 2024-10-09 03:48:05.000000000 +0800 @@ -8,13 +8,8 @@ #define _FCITX5_FRONTEND_WAYLANDIM_WAYLANDIMSERVERV2_H_ #include <cstdint> -#include <fcitx-utils/event.h> -#include <fcitx/focusgroup.h> -#include <fcitx/instance.h> -#include <xkbcommon/xkbcommon.h> +#include "fcitx-utils/event.h" #include "fcitx-utils/misc_p.h" -#include "fcitx/inputcontext.h" -#include "display.h" #include "virtualinputcontext.h" #include "waylandimserverbase.h" #include "zwp_input_method_keyboard_grab_v2.h" @@ -34,7 +29,7 @@ WaylandIMServerV2(wl_display *display, FocusGroup *group, const std::string &name, WaylandIMModule *waylandim); - ~WaylandIMServerV2(); + ~WaylandIMServerV2() override; InputContextManager &inputContextManager(); @@ -79,7 +74,7 @@ WaylandIMServerV2 *server, std::shared_ptr<wayland::WlSeat> seat, wayland::ZwpVirtualKeyboardV1 *vk); - ~WaylandIMInputContextV2(); + ~WaylandIMInputContextV2() override; const char *frontend() const override { return "wayland_v2"; } @@ -88,7 +83,7 @@ bool hasKeyboardGrab() const { return keyboardGrab_.get(); } protected: - void commitStringDelegate(const InputContext *, + void commitStringDelegate(const InputContext * /*ic*/, const std::string &text) const override { if (!ic_) { return; @@ -98,7 +93,7 @@ } void deleteSurroundingTextDelegate(InputContext *ic, int offset, unsigned int size) const override; - void forwardKeyDelegate(InputContext *, + void forwardKeyDelegate(InputContext * /*ic*/, const ForwardKeyEvent &key) const override; void updatePreeditDelegate(InputContext *ic) const override; @@ -120,6 +115,9 @@ void repeatInfoCallback(int32_t rate, int32_t delay); void sendKeyToVK(uint32_t time, const Key &key, uint32_t state) const; + int32_t repeatRate() const; + int32_t repeatDelay() const; + WaylandIMServerV2 *server_; std::shared_ptr<wayland::WlSeat> seat_; std::unique_ptr<wayland::ZwpInputMethodV2> ic_; @@ -139,7 +137,7 @@ uint32_t repeatTime_ = 0; KeySym repeatSym_ = FcitxKey_None; - int32_t repeatRate_ = 40, repeatDelay_ = 400; + std::optional<std::tuple<int32_t, int32_t>> repeatInfo_; mutable OrderedMap<uint32_t, uint32_t> pressedVKKey_; }; diff -Nru fcitx5-5.1.7/src/frontend/waylandim/wlrappmonitor.cpp fcitx5-5.1.11/src/frontend/waylandim/wlrappmonitor.cpp --- fcitx5-5.1.7/src/frontend/waylandim/wlrappmonitor.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/waylandim/wlrappmonitor.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,8 +6,6 @@ */ #include "wlrappmonitor.h" #include <wayland-client-core.h> -#include "fcitx/addoninstance.h" -#include "wayland_public.h" #include "zwlr_foreign_toplevel_handle_v1.h" #include "zwlr_foreign_toplevel_manager_v1.h" diff -Nru fcitx5-5.1.7/src/frontend/waylandim/wlrappmonitor.h fcitx5-5.1.11/src/frontend/waylandim/wlrappmonitor.h --- fcitx5-5.1.7/src/frontend/waylandim/wlrappmonitor.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/waylandim/wlrappmonitor.h 2024-10-09 03:48:05.000000000 +0800 @@ -16,7 +16,6 @@ class ZwlrForeignToplevelManagerV1; class ZwlrForeignToplevelHandleV1; } // namespace wayland -class AddonInstance; class WlrWindow; class WlrAppMonitor : public AppMonitor { diff -Nru fcitx5-5.1.7/src/frontend/xim/CMakeLists.txt fcitx5-5.1.11/src/frontend/xim/CMakeLists.txt --- fcitx5-5.1.7/src/frontend/xim/CMakeLists.txt 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/xim/CMakeLists.txt 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,6 @@ add_library(xim MODULE xim.cpp) target_link_libraries(xim Fcitx5::Core XCBImdkit::XCBImdkit XCB::XCB XCB::AUX XCB::EWMH XKBCommon::XKBCommon Fcitx5::Module::XCB) +target_compile_definitions(xim PRIVATE -DFCITX_XCB_EWMH) install(TARGETS xim DESTINATION "${FCITX_INSTALL_ADDONDIR}") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/xim.conf" DESTINATION "${FCITX_INSTALL_PKGDATADIR}/addon" COMPONENT config) diff -Nru fcitx5-5.1.7/src/frontend/xim/xim.cpp fcitx5-5.1.11/src/frontend/xim/xim.cpp --- fcitx5-5.1.7/src/frontend/xim/xim.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/xim/xim.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -4,21 +4,49 @@ * SPDX-License-Identifier: LGPL-2.1-or-later * */ + #include "xim.h" +#include <sys/types.h> #include <unistd.h> #include <cstdarg> +#include <cstdint> #include <cstdio> +#include <cstdlib> +#include <cstring> +#include <iterator> +#include <memory> +#include <string> +#include <unordered_map> +#include <unordered_set> +#include <vector> #include <xcb-imdkit/encoding.h> +#include <xcb-imdkit/imdkit.h> +#include <xcb-imdkit/ximproto.h> +#include <xcb/xcb.h> #include <xcb/xcb_aux.h> +#include <xcb/xcb_ewmh.h> +#include <xcb/xproto.h> #include <xkbcommon/xkbcommon.h> +#include "fcitx-config/iniparser.h" +#include "fcitx-utils/capabilityflags.h" +#include "fcitx-utils/handlertable.h" +#include "fcitx-utils/key.h" +#include "fcitx-utils/keysym.h" +#include "fcitx-utils/log.h" +#include "fcitx-utils/macros.h" #include "fcitx-utils/misc.h" #include "fcitx-utils/misc_p.h" +#include "fcitx-utils/rect.h" #include "fcitx-utils/stringutils.h" +#include "fcitx-utils/textformatflags.h" #include "fcitx-utils/utf8.h" -#include "fcitx/focusgroup.h" +#include "fcitx/addonfactory.h" +#include "fcitx/addoninstance.h" +#include "fcitx/event.h" #include "fcitx/inputcontext.h" #include "fcitx/instance.h" #include "fcitx/userinterface.h" +#include "xcb_public.h" FCITX_DEFINE_LOG_CATEGORY(xim, "xim") FCITX_DEFINE_LOG_CATEGORY(xim_key, "xim_key") @@ -104,7 +132,7 @@ conn, XCB_COPY_FROM_PARENT, serverWindow_, screen->root, 0, 0, 1, 1, 1, XCB_WINDOW_CLASS_INPUT_OUTPUT, screen->root_visual, 0, nullptr); - auto inputStyles = + auto *inputStyles = (*parent_->config().useOnTheSpot ? &onthespot_styles : &styles); for (uint32_t i = 0; i < inputStyles->nStyles; i++) { supportedStyles_.insert(inputStyles->styles[i]); @@ -152,7 +180,7 @@ } } - static void callback(xcb_im_t *, xcb_im_client_t *client, + static void callback(xcb_im_t * /*unused*/, xcb_im_client_t *client, xcb_im_input_context_t *xic, const xcb_im_packet_header_fr_t *hdr, void *frame, void *arg, void *user_data) { @@ -378,7 +406,8 @@ xcb_im_commit_string(server_->im(), xic_, XCB_XIM_LOOKUP_CHARS, commit, length, 0); } - void deleteSurroundingTextImpl(int, unsigned int) override {} + void deleteSurroundingTextImpl(int /*offset*/, + unsigned int /*size*/) override {} void forwardKeyImpl(const ForwardKeyEvent &key) override { xcb_key_press_event_t xcbEvent; memset(&xcbEvent, 0, sizeof(xcb_key_press_event_t)); @@ -392,8 +421,8 @@ xkb_state *xkbState = server_->xkbState(); if (xkbState) { auto *map = xkb_state_get_keymap(xkbState); - auto min = xkb_keymap_min_keycode(map), - max = xkb_keymap_max_keycode(map); + auto min = xkb_keymap_min_keycode(map); + auto max = xkb_keymap_max_keycode(map); for (auto keyCode = min; keyCode < max; keyCode++) { if (xkb_state_key_get_one_sym(xkbState, keyCode) == static_cast<uint32_t>(key.rawKey().sym())) { @@ -405,8 +434,7 @@ } xcbEvent.root = server_->root(); xcbEvent.event = xcb_im_input_context_get_focus_window(xic_); - if ((xcbEvent.event = xcb_im_input_context_get_focus_window(xic_)) == - XCB_WINDOW_NONE) { + if (xcbEvent.event == XCB_WINDOW_NONE) { xcbEvent.event = xcb_im_input_context_get_client_window(xic_); } xcbEvent.child = XCB_WINDOW_NONE; @@ -532,6 +560,8 @@ XIM_DEBUG() << "Client disconnect: " << client; clientEncodingMapping_.erase(client); return; + default: + break; } if (!xic) { @@ -551,7 +581,7 @@ switch (hdr->major_opcode) { case XCB_XIM_CREATE_IC: { bool useUtf8 = false; - if (auto entry = findValue(clientEncodingMapping_, client); + if (auto *entry = findValue(clientEncodingMapping_, client); entry && *entry) { useUtf8 = true; } @@ -576,14 +606,22 @@ xkb_state_get_keymap(state)) { localState_.reset(xkb_state_new(keymap)); } - xcb_key_press_event_t *xevent = - static_cast<xcb_key_press_event_t *>(arg); + auto *xevent = static_cast<xcb_key_press_event_t *>(arg); auto layout = xkb_state_serialize_layout(state, XKB_STATE_LAYOUT_EFFECTIVE); // Always use the state that is forwarded by client. // For xkb_state_key_get_one_sym, no need to distinguish // depressed/latched/locked. - xkb_state_update_mask(localState_.get(), xevent->state, 0, 0, 0, 0, + + // Remove all button mask before send to XKB. + // XKB May have internal virtual state bit, which collides with this + // bits. See: https://github.com/fcitx/fcitx5/issues/1106 + constexpr uint16_t button_mask = XCB_BUTTON_MASK_1 | XCB_BUTTON_MASK_2 | + XCB_BUTTON_MASK_3 | XCB_BUTTON_MASK_4 | + XCB_BUTTON_MASK_5; + + xkb_state_update_mask(localState_.get(), + (xevent->state & (~button_mask)), 0, 0, 0, 0, layout); KeyEvent event(ic, Key(static_cast<KeySym>(xkb_state_key_get_one_sym( @@ -593,7 +631,10 @@ xevent->time); XIM_KEY_DEBUG() << "XIM Key Event: " << static_cast<int>(xevent->response_type) << " " - << event.rawKey().toString(); + << event.rawKey().toString() << " time:" << xevent->time + << " detail: " << static_cast<int>(xevent->detail) + << " state: " << xevent->state + << " sequence:" << xevent->sequence; if (!ic->hasFocus()) { ic->focusIn(); } @@ -619,6 +660,8 @@ ic->resetAutoRepeatState(); ic->focusOut(); break; + default: + break; } } @@ -641,10 +684,10 @@ EventType::InputContextFlushUI, EventWatcherPhase::PreInputMethod, [](Event &event) { auto &uiEvent = static_cast<InputContextFlushUIEvent &>(event); - auto ic = uiEvent.inputContext(); + auto *ic = uiEvent.inputContext(); if (uiEvent.component() == UserInterfaceComponent::InputPanel && ic->frontendName() == "xim") { - auto xic = static_cast<XIMInputContext *>(ic); + auto *xic = static_cast<XIMInputContext *>(ic); xic->maybeUpdateCursorLocationForRootStyle(); } }); diff -Nru fcitx5-5.1.7/src/frontend/xim/xim.h fcitx5-5.1.11/src/frontend/xim/xim.h --- fcitx5-5.1.7/src/frontend/xim/xim.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/frontend/xim/xim.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,24 +7,18 @@ #ifndef _FCITX_FRONTEND_XIM_XIM_H_ #define _FCITX_FRONTEND_XIM_XIM_H_ -#include <xcb-imdkit/imdkit.h> - -#include <list> #include <unordered_map> -#include <vector> +#include <xcb-imdkit/imdkit.h> #include "fcitx-config/iniparser.h" -#include "fcitx-utils/event.h" #include "fcitx-utils/i18n.h" #include "fcitx/addonfactory.h" #include "fcitx/addoninstance.h" #include "fcitx/addonmanager.h" -#include "fcitx/focusgroup.h" #include "fcitx/instance.h" #include "xcb_public.h" namespace fcitx { -class XIMModule; class XIMServer; FCITX_CONFIGURATION(XIMConfig, diff -Nru fcitx5-5.1.7/src/im/keyboard/compose.cpp fcitx5-5.1.11/src/im/keyboard/compose.cpp --- fcitx5-5.1.7/src/im/keyboard/compose.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/im/keyboard/compose.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,7 +6,18 @@ */ #include "compose.h" -#include <fcitx-utils/utf8.h> +#include <cassert> +#include <cstddef> +#include <deque> +#include <iterator> +#include <string> +#include <tuple> +#include "fcitx-utils/key.h" +#include "fcitx-utils/keysymgen.h" +#include "fcitx-utils/log.h" +#include "fcitx-utils/utf8.h" +#include "fcitx/inputcontext.h" +#include "fcitx/instance.h" namespace fcitx { @@ -101,15 +112,18 @@ // check compose first. auto composeResult = instance_->processComposeString(inputContext_, sym); if (!composeResult) { + assert(!composeBuffer_.empty()); if (instance_->isComposing(inputContext_)) { return true; } // If compose is invalid, and we are not in composing state before, // ignore this. if (!wasComposing) { + assert(composeBuffer_.size() == 1); composeBuffer_.clear(); return false; } + assert(composeBuffer_.size() > 1); // Check for dead key prefix. size_t numDeadPrefix = 0; @@ -155,6 +169,8 @@ reset(); return true; } + // Unreachable. + return true; } // Empty string but composing, means ignored if (instance_->isComposing(inputContext_)) { diff -Nru fcitx5-5.1.7/src/im/keyboard/compose.h fcitx5-5.1.11/src/im/keyboard/compose.h --- fcitx5-5.1.7/src/im/keyboard/compose.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/im/keyboard/compose.h 2024-10-09 03:48:05.000000000 +0800 @@ -8,9 +8,10 @@ #define _FCITX_IM_KEYBOARD_COMPOSE_H_ #include <deque> -#include <fcitx-utils/keysym.h> -#include <fcitx/inputcontext.h> -#include <fcitx/instance.h> +#include <string> +#include <tuple> +#include "fcitx-utils/key.h" +#include "fcitx/instance.h" namespace fcitx { class ComposeState { diff -Nru fcitx5-5.1.7/src/im/keyboard/isocodes.cpp fcitx5-5.1.11/src/im/keyboard/isocodes.cpp --- fcitx5-5.1.7/src/im/keyboard/isocodes.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/im/keyboard/isocodes.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -7,10 +7,10 @@ #include "isocodes.h" #include <cstring> -#include <memory> -#include <fcitx-utils/log.h> +#include <string> #include <json-c/json.h> #include "fcitx-utils/metastring.h" +#include "fcitx-utils/misc.h" namespace fcitx { @@ -114,7 +114,8 @@ if (!alpha2 || json_object_get_type(alpha2) != json_type_string) { return; } - std::string alpha_2_code, name; + std::string alpha_2_code; + std::string name; name.assign(json_object_get_string(nameObj), json_object_get_string_len(nameObj)); alpha_2_code.assign(json_object_get_string(alpha2), diff -Nru fcitx5-5.1.7/src/im/keyboard/isocodes.h fcitx5-5.1.11/src/im/keyboard/isocodes.h --- fcitx5-5.1.7/src/im/keyboard/isocodes.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/im/keyboard/isocodes.h 2024-10-09 03:48:05.000000000 +0800 @@ -10,7 +10,7 @@ #include <string> #include <unordered_map> #include <vector> -#include "fcitx/misc_p.h" +#include "fcitx-utils/misc_p.h" namespace fcitx { @@ -21,9 +21,6 @@ std::string name; }; -class IsoCodes639Parser; -class IsoCodes3166Parser; - class IsoCodes { friend class IsoCodes639Parser; friend class IsoCodes3166Parser; diff -Nru fcitx5-5.1.7/src/im/keyboard/keyboard.cpp fcitx5-5.1.11/src/im/keyboard/keyboard.cpp --- fcitx5-5.1.7/src/im/keyboard/keyboard.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/im/keyboard/keyboard.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,40 +6,60 @@ */ #include "keyboard.h" -#include <fcntl.h> -#include <algorithm> -#include <cstring> +#include <strings.h> +#include <cstddef> +#include <functional> +#include <iterator> +#include <memory> +#include <optional> +#include <set> +#include <string> +#include <string_view> +#include <tuple> +#include <utility> +#include <vector> +#include <fmt/core.h> #include <fmt/format.h> -#include <libintl.h> #include <xkbcommon/xkbcommon.h> #include "fcitx-config/iniparser.h" -#include "fcitx-utils/charutils.h" -#include "fcitx-utils/cutf8.h" +#include "fcitx-config/rawconfig.h" +#include "fcitx-utils/capabilityflags.h" +#include "fcitx-utils/event.h" #include "fcitx-utils/i18n.h" -#include "fcitx-utils/log.h" -#include "fcitx-utils/standardpath.h" +#include "fcitx-utils/key.h" +#include "fcitx-utils/keysym.h" +#include "fcitx-utils/keysymgen.h" +#include "fcitx-utils/macros.h" +#include "fcitx-utils/misc.h" +#include "fcitx-utils/misc_p.h" #include "fcitx-utils/stringutils.h" +#include "fcitx-utils/textformatflags.h" #include "fcitx-utils/utf8.h" +#include "fcitx/candidatelist.h" +#include "fcitx/event.h" #include "fcitx/inputcontext.h" #include "fcitx/inputcontextmanager.h" #include "fcitx/inputcontextproperty.h" #include "fcitx/inputmethodentry.h" #include "fcitx/inputpanel.h" #include "fcitx/instance.h" +#include "fcitx/misc_p.h" +#include "fcitx/text.h" +#include "fcitx/userinterface.h" #include "chardata.h" #include "config.h" +#include "emoji_public.h" +#include "isocodes.h" #include "longpress.h" #include "notifications_public.h" #include "quickphrase_public.h" #include "spell_public.h" #ifdef ENABLE_X11 +#define FCITX_NO_XCB #include "xcb_public.h" #endif -#include <fcitx/inputcontext.h> -#include "emoji_public.h" - const char imNamePrefix[] = "keyboard-"; #define FCITX_KEYBOARD_MAX_BUFFER 20 @@ -138,7 +158,7 @@ const std::string &str() const { return text_; } void select(InputContext *inputContext) const override { - auto state = inputContext->propertyFor(engine_->factory()); + auto *state = inputContext->propertyFor(engine_->factory()); state->mode_ = CandidateMode::Hint; // Make sure the candidate is from not from long press mode. inputContext->inputPanel().setCandidateList(nullptr); @@ -365,7 +385,7 @@ static KeyList FCITX_HYPHEN_APOS = Key::keyListFromString("minus apostrophe"); bool KeyboardEngineState::updateBuffer(std::string_view chr) { - auto *entry = engine_->instance()->inputMethodEntry(inputContext_); + const auto *entry = engine_->instance()->inputMethodEntry(inputContext_); if (!entry) { return false; } @@ -406,7 +426,9 @@ } // and by pass all modifier - if (event.key().isModifier()) { + if (event.key().isModifier() || + event.key().sym() == FcitxKey_ISO_Level3_Shift || + event.key().sym() == FcitxKey_ISO_Level5_Shift) { return; } @@ -479,7 +501,7 @@ return hasSpell || hasEmoji; } -void KeyboardEngineState::setPreedit() { +void KeyboardEngineState::setPreedit() const { const bool useClientPreedit = inputContext_->capabilityFlags().test(CapabilityFlag::Preedit); auto preeditText = preeditString(); @@ -506,7 +528,7 @@ void KeyboardEngineState::updateCandidate(const InputMethodEntry &entry) { inputContext_->inputPanel().reset(); std::vector<std::pair<std::string, std::string>> results; - if (auto spell = engine_->spell()) { + if (auto *spell = engine_->spell()) { results = spell->call<ISpell::hintForDisplay>( entry.languageCode(), SpellProvider::Default, buffer_.userInput(), engine_->config().pageSize.value()); @@ -547,7 +569,7 @@ state->reset(); } -void KeyboardEngine::deactivate(const InputMethodEntry &, +void KeyboardEngine::deactivate(const InputMethodEntry & /*entry*/, InputContextEvent &event) { auto *inputContext = event.inputContext(); auto *state = inputContext->propertyFor(&factory_); @@ -563,7 +585,8 @@ inputContext->updateUserInterface(UserInterfaceComponent::InputPanel); } -void KeyboardEngine::reset(const InputMethodEntry &, InputContextEvent &event) { +void KeyboardEngine::reset(const InputMethodEntry & /*entry*/, + InputContextEvent &event) { auto *inputContext = event.inputContext(); auto *state = inputContext->propertyFor(&factory_); state->reset(); @@ -572,7 +595,7 @@ inputContext->updateUserInterface(UserInterfaceComponent::InputPanel); } -void KeyboardEngine::invokeActionImpl(const InputMethodEntry &, +void KeyboardEngine::invokeActionImpl(const InputMethodEntry & /*entry*/, InvokeActionEvent &event) { auto *inputContext = event.inputContext(); auto *state = inputContext->propertyFor(&factory_); @@ -692,14 +715,14 @@ event.rawKey().states().test(KeyState::Repeat) && *engine_->config().enableLongPress && !engine_->isBlockedForLongPress(inputContext->program())) { - if (auto results = findValue(engine_->longPressData(), keystr)) { + if (const auto *results = findValue(engine_->longPressData(), keystr)) { if (repeatStarted_) { return true; } repeatStarted_ = true; mode_ = CandidateMode::LongPress; - origKeyString_ = keystr; + origKeyString_ = std::move(keystr); if (buffer_.empty()) { if (inputContext->capabilityFlags().test( CapabilityFlag::SurroundingText)) { @@ -759,7 +782,8 @@ return false; } -bool KeyboardEngineState::handleCandidateSelection(const KeyEvent &event) { +bool KeyboardEngineState::handleCandidateSelection( + const KeyEvent &event) const { // check if we can select candidate. auto candList = inputContext_->inputPanel().candidateList(); if (!candList) { @@ -828,7 +852,8 @@ } } return buffer_.userInput(); - } else if (mode_ == CandidateMode::LongPress) { + } + if (mode_ == CandidateMode::LongPress) { if (candidateList && candidateList->cursorIndex() >= 0) { if (const auto *candidate = dynamic_cast<const LongPressCandidateWord *>( diff -Nru fcitx5-5.1.7/src/im/keyboard/keyboard.h fcitx5-5.1.11/src/im/keyboard/keyboard.h --- fcitx5-5.1.7/src/im/keyboard/keyboard.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/im/keyboard/keyboard.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,18 +7,32 @@ #ifndef _FCITX_IM_KEYBOARD_KEYBOARD_H_ #define _FCITX_IM_KEYBOARD_KEYBOARD_H_ +#include <functional> +#include <memory> +#include <string> +#include <string_view> +#include <tuple> +#include <unordered_map> +#include <unordered_set> +#include <vector> #include "fcitx-config/configuration.h" +#include "fcitx-config/enum.h" #include "fcitx-config/iniparser.h" +#include "fcitx-config/option.h" +#include "fcitx-config/rawconfig.h" #include "fcitx-utils/event.h" +#include "fcitx-utils/handlertable.h" #include "fcitx-utils/i18n.h" #include "fcitx-utils/inputbuffer.h" +#include "fcitx-utils/key.h" #include "fcitx/addonfactory.h" +#include "fcitx/addoninstance.h" #include "fcitx/addonmanager.h" +#include "fcitx/event.h" #include "fcitx/inputcontextproperty.h" #include "fcitx/inputmethodengine.h" #include "fcitx/instance.h" #include "compose.h" -#include "isocodes.h" #include "keyboard_public.h" #include "longpress.h" #include "quickphrase_public.h" @@ -26,8 +40,6 @@ namespace fcitx { -class Instance; - enum class ChooseModifier { NoModifier, Alt, Control, Super }; FCITX_CONFIG_ENUM_NAME_WITH_I18N(ChooseModifier, N_("None"), N_("Alt"), N_("Control"), N_("Super")); @@ -78,16 +90,18 @@ "matching sequence.")}}; SubConfigOption spell{this, "Spell", _("Spell"), "fcitx://config/addon/spell"}; - Option<bool> enableLongPress{this, "EnableLongPress", - _("Type special characters with long press"), - false}; - Option<std::vector<std::string>> blocklistApplicationForLongPress{ - this, - "LongPressBlocklist", - _("Applications disabled for long press"), - {"konsole"}}; - SubConfigOption longPress{this, "LongPress", _("Long Press behavior"), - "fcitx://config/addon/keyboard/longpress"};); + ConditionalHidden<isApple(), Option<bool>> enableLongPress{ + this, "EnableLongPress", _("Type special characters with long press"), + false}; + ConditionalHidden<isApple(), Option<std::vector<std::string>>> + blocklistApplicationForLongPress{ + this, + "LongPressBlocklist", + _("Applications disabled for long press"), + {"konsole"}}; + ConditionalHidden<isApple(), SubConfigOption> longPress{ + this, "LongPress", _("Long Press behavior"), + "fcitx://config/addon/keyboard/longpress"};); class KeyboardEngine; @@ -114,7 +128,7 @@ bool handleLongPress(const KeyEvent &event); bool handleSpellModeTrigger(const InputMethodEntry &entry, const KeyEvent &event); - bool handleCandidateSelection(const KeyEvent &event); + bool handleCandidateSelection(const KeyEvent &event) const; std::tuple<std::string, bool> handleCompose(const KeyEvent &event); bool handleBackspace(const InputMethodEntry &entry); @@ -127,7 +141,7 @@ void updateCandidate(const InputMethodEntry &entry); // Update preedit and send ui update. - void setPreedit(); + void setPreedit() const; // Return true if chr is pushed to buffer. // Return false if chr will be skipped by buffer, usually this means caller @@ -135,8 +149,6 @@ bool updateBuffer(std::string_view chr); }; -class KeyboardEnginePrivate; - class KeyboardEngine final : public InputMethodEngineV3 { public: KeyboardEngine(Instance *instance); @@ -156,7 +168,8 @@ const Configuration *getSubConfig(const std::string &path) const override; - void setSubConfig(const std::string &, const fcitx::RawConfig &) override; + void setSubConfig(const std::string & /*unused*/, + const fcitx::RawConfig & /*unused*/) override; void reset(const InputMethodEntry &entry, InputContextEvent &event) override; diff -Nru fcitx5-5.1.7/src/im/keyboard/keyboard_public.h fcitx5-5.1.11/src/im/keyboard/keyboard_public.h --- fcitx5-5.1.7/src/im/keyboard/keyboard_public.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/im/keyboard/keyboard_public.h 2024-10-09 03:48:05.000000000 +0800 @@ -8,6 +8,8 @@ #define _FCITX_IM_KEYBOARD_KEYBOARD_PUBLIC_H_ #include <functional> +#include <string> +#include <vector> #include <fcitx/addoninstance.h> FCITX_ADDON_DECLARE_FUNCTION( diff -Nru fcitx5-5.1.7/src/im/keyboard/longpress.cpp fcitx5-5.1.11/src/im/keyboard/longpress.cpp --- fcitx5-5.1.7/src/im/keyboard/longpress.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/im/keyboard/longpress.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,6 +6,11 @@ * */ #include "longpress.h" +#include <list> +#include <string> +#include <unordered_map> +#include <utility> +#include <vector> namespace fcitx { @@ -132,7 +137,7 @@ {"$", {"¢", "€", "£", "¥", "₹", "₽", "₺", "₩", "₱", "₿"}}, }; { - auto value = config.entries.mutableValue(); + auto *value = config.entries.mutableValue(); for (const auto &[key, candidates] : data) { LongPressEntryConfig entry; entry.key.setValue(key); diff -Nru fcitx5-5.1.7/src/im/keyboard/longpress.h fcitx5-5.1.11/src/im/keyboard/longpress.h --- fcitx5-5.1.7/src/im/keyboard/longpress.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/im/keyboard/longpress.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,7 +7,11 @@ #ifndef _FCITX5_IM_KEYBOARD_LONGPRESSDATA_H_ #define _FCITX5_IM_KEYBOARD_LONGPRESSDATA_H_ +#include <string> +#include <unordered_map> +#include <vector> #include "fcitx-config/configuration.h" +#include "fcitx-config/option.h" #include "fcitx-utils/i18n.h" namespace fcitx { diff -Nru fcitx5-5.1.7/src/im/keyboard/xkbrules.cpp fcitx5-5.1.11/src/im/keyboard/xkbrules.cpp --- fcitx5-5.1.7/src/im/keyboard/xkbrules.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/im/keyboard/xkbrules.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,8 +6,15 @@ */ #include "xkbrules.h" +#include <algorithm> +#include <cstddef> #include <cstring> +#include <initializer_list> +#include <iterator> #include <list> +#include <string> +#include <utility> +#include <vector> #include "fcitx-utils/stringutils.h" #include "xmlparser.h" @@ -34,8 +41,8 @@ array.begin()); } - void startElement(const XML_Char *name, const XML_Char **attrs) override { - parseStack_.emplace_back(reinterpret_cast<const char *>(name)); + void startElement(const char *name, const char **attrs) override { + parseStack_.emplace_back(std::string(name)); textBuff_.clear(); if (match({"layoutList", "layout", "configItem"})) { @@ -46,8 +53,8 @@ modelInfos_.emplace_back(); } else if (match({"optionList", "group"})) { optionGroupInfos_.emplace_back(); - int i = 0; - while (attrs && attrs[i * 2] != 0) { + ptrdiff_t i = 0; + while (attrs && attrs[i * 2] != nullptr) { if (strcmp(reinterpret_cast<const char *>(attrs[i * 2]), "allowMultipleSelection") == 0) { optionGroupInfos_.back().exclusive = @@ -60,8 +67,8 @@ } else if (match({"optionList", "group", "option"})) { optionGroupInfos_.back().optionInfos.emplace_back(); } else if (match({"xkbConfigRegistry"})) { - int i = 0; - while (attrs && attrs[i * 2] != 0) { + ptrdiff_t i = 0; + while (attrs && attrs[i * 2] != nullptr) { if (strcmp(reinterpret_cast<const char *>(attrs[i * 2]), "version") == 0 && strlen(reinterpret_cast<const char *>(attrs[i * 2 + 1])) != @@ -72,7 +79,7 @@ } } } - void endElement(const XML_Char *) override { + void endElement(const char * /*name*/) override { auto text = stringutils::trimView(textBuff_); if (!text.empty()) { if (match({"layoutList", "layout", "configItem", "name"})) { @@ -123,7 +130,7 @@ textBuff_.clear(); parseStack_.pop_back(); } - void characterData(const XML_Char *ch, int len) override { + void characterData(const char *ch, int len) override { textBuff_.append(reinterpret_cast<const char *>(ch), len); } diff -Nru fcitx5-5.1.7/src/im/keyboard/xkbrules.h fcitx5-5.1.11/src/im/keyboard/xkbrules.h --- fcitx5-5.1.7/src/im/keyboard/xkbrules.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/im/keyboard/xkbrules.h 2024-10-09 03:48:05.000000000 +0800 @@ -47,7 +47,6 @@ bool exclusive; }; -struct XkbRulesParseState; class XkbRules { public: friend struct XkbRulesParseState; diff -Nru fcitx5-5.1.7/src/im/keyboard/xmlparser.cpp fcitx5-5.1.11/src/im/keyboard/xmlparser.cpp --- fcitx5-5.1.7/src/im/keyboard/xmlparser.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/im/keyboard/xmlparser.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,11 +6,15 @@ */ #include "xmlparser.h" -#include <memory> +#include <cstdio> +#include <string> +#include <expat.h> #include "fcitx-utils/misc.h" #define XML_BUFFER_SIZE 4096 -bool fcitx::XMLParser::parse(const std::string &name) { +namespace fcitx { + +bool XMLParser::parse(const std::string &name) { UniqueCPtr<XML_ParserStruct, XML_ParserFree> parser( XML_ParserCreate(nullptr)); UniqueFilePtr input(std::fopen(name.c_str(), "r")); @@ -26,12 +30,12 @@ auto *ctx = static_cast<XMLParser *>(data); ctx->startElement(element_name, atts); }, - [](void *data, const XML_Char *name) { + [](void *data, const char *name) { auto *ctx = static_cast<XMLParser *>(data); ctx->endElement(name); }); XML_SetCharacterDataHandler(parser.get(), - [](void *data, const XML_Char *s, int len) { + [](void *data, const char *s, int len) { auto *ctx = static_cast<XMLParser *>(data); ctx->characterData(s, len); }); @@ -50,3 +54,5 @@ return true; } + +} // namespace fcitx diff -Nru fcitx5-5.1.7/src/im/keyboard/xmlparser.h fcitx5-5.1.11/src/im/keyboard/xmlparser.h --- fcitx5-5.1.7/src/im/keyboard/xmlparser.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/im/keyboard/xmlparser.h 2024-10-09 03:48:05.000000000 +0800 @@ -18,9 +18,9 @@ bool parse(const std::string &name); protected: - virtual void startElement(const XML_Char *, const XML_Char **) {} - virtual void endElement(const XML_Char *) {} - virtual void characterData(const XML_Char *, int) {} + virtual void startElement(const char *name, const char **attrs) = 0; + virtual void endElement(const char *) = 0; + virtual void characterData(const char *ch, int len) = 0; }; } // namespace fcitx diff -Nru fcitx5-5.1.7/src/lib/fcitx/CMakeLists.txt fcitx5-5.1.11/src/lib/fcitx/CMakeLists.txt --- fcitx5-5.1.7/src/lib/fcitx/CMakeLists.txt 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/CMakeLists.txt 2024-10-09 03:48:05.000000000 +0800 @@ -23,6 +23,7 @@ statusarea.cpp inputpanel.cpp candidatelist.cpp + candidateaction.cpp icontheme.cpp inputmethodengine.cpp ) @@ -38,6 +39,7 @@ inputcontextproperty.h inputpanel.h candidatelist.h + candidateaction.h focusgroup.h surroundingtext.h addonloader.h diff -Nru fcitx5-5.1.7/src/lib/fcitx/action.cpp fcitx5-5.1.11/src/lib/fcitx/action.cpp --- fcitx5-5.1.7/src/lib/fcitx/action.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/action.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -18,6 +18,7 @@ int id_ = 0; bool checkable_ = false; bool separator_ = false; + KeyList hotkey_; FCITX_DEFINE_SIGNAL_PRIVATE(Action, Update); }; @@ -92,6 +93,16 @@ void Action::update(InputContext *ic) { emit<Update>(ic); } +const KeyList &Action::hotkey() const { + FCITX_D(); + return d->hotkey_; +} + +void Action::setHotkey(const KeyList &hotkey) { + FCITX_D(); + d->hotkey_ = hotkey; +} + class SimpleActionPrivate : public QPtrHolder<Action> { public: SimpleActionPrivate(SimpleAction *q) : QPtrHolder(q) {} diff -Nru fcitx5-5.1.7/src/lib/fcitx/action.h fcitx5-5.1.11/src/lib/fcitx/action.h --- fcitx5-5.1.7/src/lib/fcitx/action.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/action.h 2024-10-09 03:48:05.000000000 +0800 @@ -9,8 +9,8 @@ #include <memory> #include <fcitx-utils/element.h> +#include <fcitx-utils/key.h> #include <fcitx-utils/macros.h> -#include <fcitx-utils/signals.h> #include "fcitxcore_export.h" namespace fcitx { @@ -140,6 +140,24 @@ FCITX_DECLARE_SIGNAL(Action, Update, void(InputContext *)); + /** + * Hotkey bound to the action. + * This is only for display purpose when UI implementation supports it, + * and it has nothing to do with the key handling logic. + * + * @return key list. + * @since 5.1.11 + */ + const KeyList &hotkey() const; + + /** + * Set associated hotkey for display. + * + * @param hotkey keys that trigger the action. + * @since 5.1.11 + */ + void setHotkey(const KeyList &hotkey); + private: void setName(const std::string &name); void setId(int id); diff -Nru fcitx5-5.1.7/src/lib/fcitx/addonfactory.h fcitx5-5.1.11/src/lib/fcitx/addonfactory.h --- fcitx5-5.1.7/src/lib/fcitx/addonfactory.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/addonfactory.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,7 +7,6 @@ #ifndef _FCITX_ADDONFACTORY_H_ #define _FCITX_ADDONFACTORY_H_ -#include <string> #include <fcitx/addoninstance.h> #include "fcitxcore_export.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx/addoninfo.cpp fcitx5-5.1.11/src/lib/fcitx/addoninfo.cpp --- fcitx5-5.1.7/src/lib/fcitx/addoninfo.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/addoninfo.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,7 +6,19 @@ */ #include "addoninfo.h" + +#include <memory> +#include <string> +#include <tuple> +#include <utility> +#include <vector> #include "fcitx-config/configuration.h" +#include "fcitx-config/option.h" +#include "fcitx-config/rawconfig.h" +#include "fcitx-utils/i18nstring.h" +#include "fcitx-utils/macros.h" +#include "fcitx-utils/semver.h" +#include "fcitx-utils/stringutils.h" namespace fcitx { FCITX_CONFIGURATION( @@ -57,7 +69,7 @@ class AddonInfoPrivate : public AddonConfig { public: - AddonInfoPrivate(const std::string &name) : uniqueName_(name) {} + AddonInfoPrivate(std::string name) : uniqueName_(std::move(name)) {} bool valid_ = false; std::string uniqueName_; diff -Nru fcitx5-5.1.7/src/lib/fcitx/addoninfo.h fcitx5-5.1.11/src/lib/fcitx/addoninfo.h --- fcitx5-5.1.7/src/lib/fcitx/addoninfo.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/addoninfo.h 2024-10-09 03:48:05.000000000 +0800 @@ -8,8 +8,11 @@ #define _FCITX_ADDON_H_ #include <memory> +#include <string> +#include <tuple> #include <vector> #include <fcitx-config/enum.h> +#include <fcitx-config/rawconfig.h> #include <fcitx-utils/i18nstring.h> #include <fcitx-utils/macros.h> #include <fcitx-utils/semver.h> diff -Nru fcitx5-5.1.7/src/lib/fcitx/addoninstance.cpp fcitx5-5.1.11/src/lib/fcitx/addoninstance.cpp --- fcitx5-5.1.7/src/lib/fcitx/addoninstance.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/addoninstance.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,7 +6,6 @@ */ #include "addoninstance.h" -#include "fcitx/addoninfo.h" #include "addoninstance_p.h" namespace fcitx { diff -Nru fcitx5-5.1.7/src/lib/fcitx/addoninstance.h fcitx5-5.1.11/src/lib/fcitx/addoninstance.h --- fcitx5-5.1.7/src/lib/fcitx/addoninstance.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/addoninstance.h 2024-10-09 03:48:05.000000000 +0800 @@ -9,13 +9,13 @@ #include <functional> #include <memory> -#include <type_traits> -#include <unordered_map> +#include <string> #include <fcitx-config/configuration.h> -#include <fcitx-utils/library.h> +#include <fcitx-config/rawconfig.h> +#include <fcitx-utils/macros.h> #include <fcitx-utils/metastring.h> #include <fcitx/addoninfo.h> -#include <fcitx/addoninstance_details.h> +#include <fcitx/addoninstance_details.h> // IWYU pragma: export #include "fcitxcore_export.h" /// \addtogroup FcitxCore @@ -103,7 +103,8 @@ return erasureAdaptor->callback(std::forward<Args>(args)...); } template <typename MetaSignatureString, typename... Args> - auto callWithMetaString(Args &&...args) { + AddonFunctionSignatureReturnType<MetaSignatureString> + callWithMetaString(Args &&...args) { return callWithSignature< AddonFunctionSignatureType<MetaSignatureString>>( MetaSignatureString::data(), std::forward<Args>(args)...); @@ -111,7 +112,8 @@ /// Call an exported function for this addon. template <typename MetaType, typename... Args> - auto call(Args &&...args) { + AddonFunctionSignatureReturnType<typename MetaType::Name> + call(Args &&...args) { return callWithSignature<typename MetaType::Signature>( MetaType::Name::data(), std::forward<Args>(args)...); } @@ -163,26 +165,29 @@ namespace fcitx { \ template <> \ struct AddonFunctionSignature<fcitxMakeMetaString(#NAME "::" #FUNCTION)> { \ - typedef std::remove_reference_t<decltype(std::declval<SIGNATURE>())> \ - type; \ + using type = \ + std::remove_reference_t<decltype(std::declval<SIGNATURE>())>; \ }; \ namespace I##NAME { \ struct FUNCTION { \ - typedef fcitxMakeMetaString(#NAME "::" #FUNCTION) Name; \ + using Name = fcitxMakeMetaString(#NAME "::" #FUNCTION); \ using Signature = AddonFunctionSignatureType<Name>; \ }; \ } \ } #define FCITX_ADDON_EXPORT_FUNCTION(CLASS, FUNCTION) \ + static_assert(std::is_same_v<::fcitx::I##CLASS::FUNCTION::Name, \ + fcitxMakeMetaString(#CLASS "::" #FUNCTION)>, \ + ""); \ decltype(::fcitx::MakeAddonFunctionAdaptor( \ &CLASS::FUNCTION)) FUNCTION##Adaptor{#CLASS "::" #FUNCTION, this, \ &CLASS::FUNCTION}; \ static_assert( \ - std::is_same<decltype(::fcitx::MakeAddonFunctionAdaptor( \ - &CLASS::FUNCTION))::Signature, \ - ::fcitx::AddonFunctionSignatureType<fcitxMakeMetaString( \ - #CLASS "::" #FUNCTION)>>::value, \ + std::is_same_v<decltype(::fcitx::MakeAddonFunctionAdaptor( \ + &CLASS::FUNCTION))::Signature, \ + ::fcitx::AddonFunctionSignatureType< \ + fcitxMakeMetaString(#CLASS "::" #FUNCTION)>>, \ "Signature doesn't match"); #define FCITX_ADDON_FACTORY(ClassName) \ diff -Nru fcitx5-5.1.7/src/lib/fcitx/addoninstance_details.h fcitx5-5.1.11/src/lib/fcitx/addoninstance_details.h --- fcitx5-5.1.7/src/lib/fcitx/addoninstance_details.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/addoninstance_details.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,6 +7,10 @@ #ifndef _FCITX_ADDONINSTANCE_DETAILS_H_ #define _FCITX_ADDONINSTANCE_DETAILS_H_ +#include <functional> +#include <string> +#include <utility> + namespace fcitx { class AddonInstance; @@ -33,6 +37,10 @@ using AddonFunctionSignatureType = typename AddonFunctionSignature<Signature>::type; +template <typename Signature> +using AddonFunctionSignatureReturnType = + typename std::function<AddonFunctionSignatureType<Signature>>::result_type; + template <typename CallbackType> class AddonFunctionAdaptor; @@ -51,7 +59,7 @@ } Ret callback(Args... args) override { - return (addon_->*pCallback_)(args...); + return (addon_->*pCallback_)(std::forward<Args>(args)...); } private: @@ -74,7 +82,7 @@ } Ret callback(Args... args) override { - return (addon_->*pCallback_)(args...); + return (addon_->*pCallback_)(std::forward<Args>(args)...); } private: diff -Nru fcitx5-5.1.7/src/lib/fcitx/addonloader.cpp fcitx5-5.1.11/src/lib/fcitx/addonloader.cpp --- fcitx5-5.1.7/src/lib/fcitx/addonloader.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/addonloader.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -45,6 +45,8 @@ info.uniqueName(), std::make_unique<SharedLibraryFactory>(std::move(lib))); } catch (const std::exception &e) { + FCITX_ERROR() << "Failed to initialize addon factory for addon " + << info.uniqueName() << ". Error: " << e.what(); } break; } diff -Nru fcitx5-5.1.7/src/lib/fcitx/addonmanager.cpp fcitx5-5.1.11/src/lib/fcitx/addonmanager.cpp --- fcitx5-5.1.7/src/lib/fcitx/addonmanager.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/addonmanager.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -7,18 +7,29 @@ #include "addonmanager.h" #include <fcntl.h> -#include <unistd.h> +#include <cstdint> +#include <memory> +#include <stdexcept> +#include <string> #include <unordered_map> #include <unordered_set> +#include <utility> +#include <vector> #include "fcitx-config/iniparser.h" +#include "fcitx-config/rawconfig.h" #include "fcitx-utils/log.h" +#include "fcitx-utils/macros.h" #include "fcitx-utils/misc_p.h" -#include "fcitx/addoninstance.h" +#include "fcitx-utils/semver.h" +#include "fcitx-utils/standardpath.h" +#include "fcitx-utils/unixfd.h" +#include "addoninfo.h" +#include "addoninstance.h" #include "addoninstance_p.h" #include "addonloader.h" #include "addonloader_p.h" +#include "config.h" #include "instance.h" -#include "misc_p.h" namespace fcitx { @@ -62,7 +73,7 @@ class AddonManagerPrivate { public: - AddonManagerPrivate() : instance_(nullptr) {} + AddonManagerPrivate() {} Addon *addon(const std::string &name) const { auto iter = addons_.find(name); @@ -78,9 +89,8 @@ if (dependency == "core") { if (depVersion <= version_) { continue; - } else { - return DependencyCheckStatus::Failed; } + return DependencyCheckStatus::Failed; } Addon *dep = addon(dependency); if (!dep || !dep->isLoadable()) { @@ -252,12 +262,11 @@ const auto &path = StandardPath::global(); d->timestamp_ = path.timestamp(StandardPath::Type::PkgData, d->addonConfigDir_); - auto fileMap = - path.multiOpen(StandardPath::Type::PkgData, d->addonConfigDir_, - O_RDONLY, filter::Suffix(".conf")); + auto fileNames = path.locate(StandardPath::Type::PkgData, + d->addonConfigDir_, filter::Suffix(".conf")); bool enableAll = enabled.count("all"); bool disableAll = disabled.count("all"); - for (const auto &[fileName, file] : fileMap) { + for (const auto &[fileName, fullName] : fileNames) { // remove .conf std::string name = fileName.substr(0, fileName.size() - 5); if (name == "core") { @@ -269,7 +278,8 @@ } RawConfig config; - readFromIni(config, file.fd()); + UnixFD fd = UnixFD::own(open(fullName.c_str(), O_RDONLY)); + readFromIni(config, fd.fd()); // override configuration auto addon = std::make_unique<Addon>(name, config); @@ -405,7 +415,7 @@ std::vector<std::string> AddonManager::addonOptions(const std::string &name) { FCITX_D(); - if (auto options = findValue(d->options_, name)) { + if (auto *options = findValue(d->options_, name)) { return *options; } return {}; diff -Nru fcitx5-5.1.7/src/lib/fcitx/addonmanager.h fcitx5-5.1.11/src/lib/fcitx/addonmanager.h --- fcitx5-5.1.7/src/lib/fcitx/addonmanager.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/addonmanager.h 2024-10-09 03:48:05.000000000 +0800 @@ -12,8 +12,6 @@ #include <unordered_set> #include <vector> #include <fcitx-utils/macros.h> -#include <fcitx-utils/semver.h> -#include <fcitx/addoninfo.h> #include <fcitx/addonloader.h> #include "fcitxcore_export.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx/candidateaction.cpp fcitx5-5.1.11/src/lib/fcitx/candidateaction.cpp --- fcitx5-5.1.7/src/lib/fcitx/candidateaction.cpp 1970-01-01 08:00:00.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/candidateaction.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -0,0 +1,38 @@ +/* + * SPDX-FileCopyrightText: 2024-2024 CSSlayer <wengxt@gmail.com> + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + */ +#include "candidateaction.h" +#include "fcitx-utils/macros.h" + +namespace fcitx { + +class CandidateActionPrivate { +public: + CandidateActionPrivate() = default; + FCITX_INLINE_DEFINE_DEFAULT_DTOR_COPY_AND_MOVE_WITHOUT_SPEC( + CandidateActionPrivate); + + int id_ = 0; + std::string text_; + bool isSeparator_ = false; + std::string icon_; + bool isCheckable_ = false; + bool isChecked_ = false; +}; + +CandidateAction::CandidateAction() + : d_ptr(std::make_unique<CandidateActionPrivate>()) {} + +FCITX_DEFINE_DPTR_COPY_AND_DEFAULT_DTOR_AND_MOVE(CandidateAction); + +FCITX_DEFINE_PROPERTY_PRIVATE(CandidateAction, int, id, setId); +FCITX_DEFINE_PROPERTY_PRIVATE(CandidateAction, std::string, text, setText); +FCITX_DEFINE_PROPERTY_PRIVATE(CandidateAction, bool, isSeparator, setSeparator); +FCITX_DEFINE_PROPERTY_PRIVATE(CandidateAction, std::string, icon, setIcon); +FCITX_DEFINE_PROPERTY_PRIVATE(CandidateAction, bool, isCheckable, setCheckable); +FCITX_DEFINE_PROPERTY_PRIVATE(CandidateAction, bool, isChecked, setChecked); + +} // namespace fcitx diff -Nru fcitx5-5.1.7/src/lib/fcitx/candidateaction.h fcitx5-5.1.11/src/lib/fcitx/candidateaction.h --- fcitx5-5.1.7/src/lib/fcitx/candidateaction.h 1970-01-01 08:00:00.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/candidateaction.h 2024-10-09 03:48:05.000000000 +0800 @@ -0,0 +1,39 @@ +/* + * SPDX-FileCopyrightText: 2024-2024 CSSlayer <wengxt@gmail.com> + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + */ +#ifndef _FCITX_CANDIDATEACTION_H_ +#define _FCITX_CANDIDATEACTION_H_ + +#include <memory> +#include <string> +#include <fcitx-utils/macros.h> +#include "fcitxcore_export.h" + +namespace fcitx { + +class CandidateActionPrivate; + +class FCITXCORE_EXPORT CandidateAction { +public: + CandidateAction(); + virtual ~CandidateAction(); + FCITX_DECLARE_COPY_AND_MOVE(CandidateAction); + + FCITX_DECLARE_PROPERTY(int, id, setId); + FCITX_DECLARE_PROPERTY(std::string, text, setText); + FCITX_DECLARE_PROPERTY(bool, isSeparator, setSeparator); + FCITX_DECLARE_PROPERTY(std::string, icon, setIcon); + FCITX_DECLARE_PROPERTY(bool, isCheckable, setCheckable); + FCITX_DECLARE_PROPERTY(bool, isChecked, setChecked); + +private: + FCITX_DECLARE_PRIVATE(CandidateAction); + std::unique_ptr<CandidateActionPrivate> d_ptr; +}; + +} // namespace fcitx + +#endif // _FCITX_CANDIDATEACTION_H_ diff -Nru fcitx5-5.1.7/src/lib/fcitx/candidatelist.cpp fcitx5-5.1.11/src/lib/fcitx/candidatelist.cpp --- fcitx5-5.1.7/src/lib/fcitx/candidatelist.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/candidatelist.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,8 +6,10 @@ */ #include "candidatelist.h" +#include <functional> #include <stdexcept> #include <unordered_set> +#include <fcitx-utils/macros.h> #include <fcitx-utils/utf8.h> namespace fcitx { @@ -29,14 +31,63 @@ } } +template <typename CandidateListType, typename InterfaceType> +class CandidateListInterfaceAdapter : public QPtrHolder<CandidateListType>, + public InterfaceType { +public: + CandidateListInterfaceAdapter(CandidateListType *q) + : QPtrHolder<CandidateListType>(q) {} +}; + +#define FCITX_COMMA_IF_2 , +#define FCITX_COMMA_IF_1 +#define FCITX_COMMA_IF(X) FCITX_EXPAND(FCITX_CONCATENATE(FCITX_COMMA_IF_, X)) + +#define FCITX_FORWARD_METHOD_ARG(N, ARG) ARG arg##N FCITX_COMMA_IF(N) + +#define FCITX_FORWARD_METHOD_ARG_NAME(N, ARG) arg##N FCITX_COMMA_IF(N) + +#define FCITX_FORWARD_METHOD(RETURN_TYPE, METHOD_NAME, ARGS, ...) \ + RETURN_TYPE METHOD_NAME(FCITX_FOR_EACH_IDX(FCITX_FORWARD_METHOD_ARG, \ + FCITX_REMOVE_PARENS(ARGS))) \ + __VA_ARGS__ override { \ + FCITX_Q(); \ + return q->METHOD_NAME(FCITX_FOR_EACH_IDX( \ + FCITX_FORWARD_METHOD_ARG_NAME, FCITX_REMOVE_PARENS(ARGS))); \ + } + +class BulkCursorAdaptorForCommonCandidateList + : public CandidateListInterfaceAdapter<CommonCandidateList, + BulkCursorCandidateList> { +public: + using CandidateListInterfaceAdapter::CandidateListInterfaceAdapter; + + FCITX_FORWARD_METHOD(void, setGlobalCursorIndex, (int)); + FCITX_FORWARD_METHOD(int, globalCursorIndex, (), const); +}; + +class CursorModifiableAdaptorForCommonCandidateList + : public CandidateListInterfaceAdapter<CommonCandidateList, + CursorModifiableCandidateList> { +public: + using CandidateListInterfaceAdapter::CandidateListInterfaceAdapter; + + FCITX_FORWARD_METHOD(void, setCursorIndex, (int)); +}; + } // namespace +ActionableCandidateList::~ActionableCandidateList() = default; + class CandidateListPrivate { public: BulkCandidateList *bulk_ = nullptr; ModifiableCandidateList *modifiable_ = nullptr; PageableCandidateList *pageable_ = nullptr; CursorMovableCandidateList *cursorMovable_ = nullptr; + BulkCursorCandidateList *bulkCursor_ = nullptr; + CursorModifiableCandidateList *cursorModifiable_ = nullptr; + ActionableCandidateList *actionable_ = nullptr; }; CandidateList::CandidateList() @@ -66,6 +117,21 @@ return d->cursorMovable_; } +CursorModifiableCandidateList *CandidateList::toCursorModifiable() const { + FCITX_D(); + return d->cursorModifiable_; +} + +BulkCursorCandidateList *CandidateList::toBulkCursor() const { + FCITX_D(); + return d->bulkCursor_; +} + +ActionableCandidateList *CandidateList::toActionable() const { + FCITX_D(); + return d->actionable_; +} + void CandidateList::setBulk(BulkCandidateList *list) { FCITX_D(); d->bulk_ = list; @@ -86,6 +152,21 @@ d->cursorMovable_ = list; } +void CandidateList::setCursorModifiable(CursorModifiableCandidateList *list) { + FCITX_D(); + d->cursorModifiable_ = list; +} + +void CandidateList::setBulkCursor(BulkCursorCandidateList *list) { + FCITX_D(); + d->bulkCursor_ = list; +} + +void CandidateList::setActionable(ActionableCandidateList *list) { + FCITX_D(); + d->actionable_ = list; +} + class CandidateWordPrivate { public: CandidateWordPrivate(Text &&text) : text_(std::move(text)) {} @@ -93,6 +174,7 @@ bool isPlaceHolder_ = false; Text customLabel_; bool hasCustomLabel_ = false; + Text comment_; }; CandidateWord::CandidateWord(Text text) @@ -110,6 +192,26 @@ d->text_ = std::move(text); } +const Text &CandidateWord::comment() const { + FCITX_D(); + return d->comment_; +} + +void CandidateWord::setComment(Text comment) { + FCITX_D(); + d->comment_ = std::move(comment); +} + +Text CandidateWord::textWithComment(std::string separator) const { + FCITX_D(); + auto text = d->text_; + if (!d->comment_.empty()) { + text.append(std::move(separator)); + text.append(d->comment_); + } + return text; +} + bool CandidateWord::isPlaceHolder() const { FCITX_D(); return d->isPlaceHolder_; @@ -224,6 +326,11 @@ class CommonCandidateListPrivate { public: + CommonCandidateListPrivate(CommonCandidateList *q) + : bulkCursor_(q), cursorModifiable_(q) {} + + BulkCursorAdaptorForCommonCandidateList bulkCursor_; + CursorModifiableAdaptorForCommonCandidateList cursorModifiable_; bool usedNextBefore_ = false; int cursorIndex_ = -1; int currentPage_ = 0; @@ -236,6 +343,7 @@ bool cursorKeepInSamePage_ = false; CursorPositionAfterPaging cursorPositionAfterPaging_ = CursorPositionAfterPaging::DonotChange; + std::unique_ptr<ActionableCandidateList> actionable_; int size() const { auto start = currentPage_ * pageSize_; @@ -286,11 +394,14 @@ }; CommonCandidateList::CommonCandidateList() - : d_ptr(std::make_unique<CommonCandidateListPrivate>()) { + : d_ptr(std::make_unique<CommonCandidateListPrivate>(this)) { + FCITX_D(); setPageable(this); setModifiable(this); setBulk(this); setCursorMovable(this); + setBulkCursor(&d->bulkCursor_); + setCursorModifiable(&d->cursorModifiable_); setLabels(); } @@ -471,6 +582,13 @@ } } +void CommonCandidateList::setCursorIndex(int index) { + FCITX_D(); + d->checkIndex(index); + auto globalIndex = d->toGlobalIndex(index); + setGlobalCursorIndex(globalIndex); +} + int CommonCandidateList::globalCursorIndex() const { FCITX_D(); return d->cursorIndex_; @@ -607,4 +725,12 @@ } } } + +void CommonCandidateList::setActionableImpl( + std::unique_ptr<ActionableCandidateList> actionable) { + FCITX_D(); + d->actionable_ = std::move(actionable); + setActionable(d->actionable_.get()); +} + } // namespace fcitx diff -Nru fcitx5-5.1.7/src/lib/fcitx/candidatelist.h fcitx5-5.1.11/src/lib/fcitx/candidatelist.h --- fcitx5-5.1.7/src/lib/fcitx/candidatelist.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/candidatelist.h 2024-10-09 03:48:05.000000000 +0800 @@ -8,16 +8,21 @@ #define _FCITX_CANDIDATELIST_H_ #include <fcitx-utils/key.h> +#include <fcitx-utils/macros.h> +#include <fcitx/candidateaction.h> #include <fcitx/text.h> +#include "fcitxcore_export.h" namespace fcitx { class InputContext; -class CandidateList; class PageableCandidateList; class BulkCandidateList; class ModifiableCandidateList; class CursorMovableCandidateList; +class CursorModifiableCandidateList; +class BulkCursorCandidateList; +class ActionableCandidateList; class CandidateListPrivate; @@ -47,12 +52,28 @@ bool isPlaceHolder() const; bool hasCustomLabel() const; const Text &customLabel() const; + /** + * Return comment corresponding to the candidate. + * + * @return value of comment. + * @since 5.1.9 + */ + const Text &comment() const; + /** + * Return text with comment. + * + * @param separator separator between text and comment. + * @return value of comment. + * @since 5.1.9 + */ + Text textWithComment(std::string separator = " ") const; protected: void setText(Text text); void setPlaceHolder(bool placeHolder); void resetCustomLabel(); void setCustomLabel(Text text); + void setComment(Text comment); private: std::unique_ptr<CandidateWordPrivate> d_ptr; @@ -77,12 +98,18 @@ BulkCandidateList *toBulk() const; ModifiableCandidateList *toModifiable() const; CursorMovableCandidateList *toCursorMovable() const; + CursorModifiableCandidateList *toCursorModifiable() const; + BulkCursorCandidateList *toBulkCursor() const; + ActionableCandidateList *toActionable() const; protected: void setPageable(PageableCandidateList *list); void setBulk(BulkCandidateList *list); void setModifiable(ModifiableCandidateList *list); void setCursorMovable(CursorMovableCandidateList *list); + void setCursorModifiable(CursorModifiableCandidateList *list); + void setBulkCursor(BulkCursorCandidateList *list); + void setActionable(ActionableCandidateList *list); private: std::unique_ptr<CandidateListPrivate> d_ptr; @@ -112,6 +139,11 @@ virtual void nextCandidate() = 0; }; +class FCITXCORE_EXPORT CursorModifiableCandidateList { +public: + virtual void setCursorIndex(int index) = 0; +}; + // useful for virtual keyboard class FCITXCORE_EXPORT BulkCandidateList { public: @@ -155,6 +187,41 @@ void select(InputContext *) const override {} }; +class FCITXCORE_EXPORT BulkCursorCandidateList { +public: + virtual int globalCursorIndex() const = 0; + virtual void setGlobalCursorIndex(int index) = 0; +}; + +/** + * Interface for trigger actions on candidates. + * + * @since 5.1.10 + */ +class FCITXCORE_EXPORT ActionableCandidateList { +public: + virtual ~ActionableCandidateList(); + + /** + * Check whether this candidate has action. + * + * This function should be fast and guarantee that candidateActions return a + * not empty vector. + */ + virtual bool hasAction(const CandidateWord &candidate) const = 0; + + /** + * Return a list of actions. + */ + virtual std::vector<CandidateAction> + candidateActions(const CandidateWord &candidate) const = 0; + + /** + * Trigger the action based on the index returned from candidateActions. + */ + virtual void triggerAction(const CandidateWord &candidate, int id) = 0; +}; + class DisplayOnlyCandidateListPrivate; class FCITXCORE_EXPORT DisplayOnlyCandidateList : public CandidateList { @@ -229,6 +296,14 @@ */ int globalCursorIndex() const; + /** + * Set cursor index on current page. + * + * @param index index on current page; + * @since 5.1.9 + */ + void setCursorIndex(int index); + // CandidateList const fcitx::Text &label(int idx) const override; const CandidateWord &candidate(int idx) const override; @@ -268,6 +343,13 @@ void setCursorKeepInSamePage(bool); void setCursorPositionAfterPaging(CursorPositionAfterPaging afterPaging); + /** + * Set an optional implemenation of actionable candidate list + * + * @since 5.1.10 + */ + void setActionableImpl(std::unique_ptr<ActionableCandidateList> actionable); + private: void fixAfterUpdate(); void moveCursor(bool prev); diff -Nru fcitx5-5.1.7/src/lib/fcitx/event.h fcitx5-5.1.11/src/lib/fcitx/event.h --- fcitx5-5.1.7/src/lib/fcitx/event.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/event.h 2024-10-09 03:48:05.000000000 +0800 @@ -10,7 +10,6 @@ #include <cstdint> #include <fcitx-utils/capabilityflags.h> #include <fcitx-utils/key.h> -#include <fcitx-utils/keysym.h> #include <fcitx/userinterface.h> #include "fcitxcore_export.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx/globalconfig.cpp fcitx5-5.1.11/src/lib/fcitx/globalconfig.cpp --- fcitx5-5.1.7/src/lib/fcitx/globalconfig.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/globalconfig.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -7,6 +7,7 @@ #include "globalconfig.h" #include "fcitx-config/configuration.h" +#include "fcitx-config/enum.h" #include "fcitx-config/iniparser.h" #include "fcitx-config/option.h" #include "fcitx-utils/i18n.h" @@ -32,7 +33,8 @@ this, "TriggerKeys", _("Trigger Input Method"), - {Key("Control+space"), Key("Zenkaku_Hankaku"), Key("Hangul")}, + {isApple() ? Key("Control+Shift_L") : Key("Control+space"), + Key("Zenkaku_Hankaku"), Key("Hangul")}, KeyListConstrain({KeyConstrainFlag::AllowModifierLess, KeyConstrainFlag::AllowModifierOnly})}; Option<bool> enumerateWithTriggerKeys{ @@ -138,6 +140,11 @@ _("Active By Default")}; OptionWithAnnotation<PropertyPropagatePolicy, PropertyPropagatePolicyI18NAnnotation> + resetStateWhenFocusIn{this, "resetStateWhenFocusIn", + _("Reset state on Focus In"), + PropertyPropagatePolicy::No}; + OptionWithAnnotation<PropertyPropagatePolicy, + PropertyPropagatePolicyI18NAnnotation> shareState{this, "ShareInputState", _("Share Input State"), isAndroid() ? PropertyPropagatePolicy::All : PropertyPropagatePolicy::No}; @@ -284,6 +291,11 @@ return d->behavior->activeByDefault.value(); } +PropertyPropagatePolicy GlobalConfig::resetStateWhenFocusIn() const { + FCITX_D(); + return d->behavior->resetStateWhenFocusIn.value(); +} + bool GlobalConfig::showInputMethodInformation() const { FCITX_D(); return d->behavior->showInputMethodInformation.value(); diff -Nru fcitx5-5.1.7/src/lib/fcitx/globalconfig.h fcitx5-5.1.11/src/lib/fcitx/globalconfig.h --- fcitx5-5.1.7/src/lib/fcitx/globalconfig.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/globalconfig.h 2024-10-09 03:48:05.000000000 +0800 @@ -9,7 +9,6 @@ #include <memory> #include <vector> -#include <fcitx-config/configuration.h> #include <fcitx-config/rawconfig.h> #include <fcitx-utils/key.h> #include <fcitx-utils/macros.h> @@ -37,6 +36,16 @@ const KeyList &togglePreeditKeys() const; bool activeByDefault() const; + + /** + * Reset active state to the value of activeByDefault on Focus In. + * + * @see activeByDefault + * @return the reset policy, no for disable, all for always reset, program + * for only reset on program changes. + * @since 5.1.8 + */ + PropertyPropagatePolicy resetStateWhenFocusIn() const; bool showInputMethodInformation() const; bool showInputMethodInformationWhenFocusIn() const; bool compactInputMethodInformation() const; diff -Nru fcitx5-5.1.7/src/lib/fcitx/icontheme.cpp fcitx5-5.1.11/src/lib/fcitx/icontheme.cpp --- fcitx5-5.1.7/src/lib/fcitx/icontheme.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/icontheme.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -8,7 +8,6 @@ #include <fcntl.h> #include <sys/mman.h> #include <sys/stat.h> -#include <ctime> #include <fstream> #include <limits> #include <stdexcept> @@ -16,9 +15,7 @@ #include "fcitx-config/iniparser.h" #include "fcitx-config/marshallfunction.h" #include "fcitx-utils/fs.h" -#include "fcitx-utils/log.h" #include "fcitx-utils/mtime_p.h" -#include "config.h" #include "misc_p.h" namespace fcitx { @@ -553,9 +550,9 @@ } auto distance = dir.sizeDistance(size, scale); if (distance < minSize) { - auto path = checkDirectory(dir, baseDir.first); - if (!path.empty()) { - closestFilename = path; + if (auto path = checkDirectory(dir, baseDir.first); + !path.empty()) { + closestFilename = std::move(path); minSize = distance; } } @@ -800,7 +797,13 @@ /// Rename fcitx-* icon to org.fcitx.Fcitx5.fcitx-* if in flatpak std::string IconTheme::iconName(const std::string &icon, bool inFlatpak) { - if (inFlatpak && stringutils::startsWith(icon, "fcitx-")) { + constexpr std::string_view fcitxIconPrefix = "fcitx"; + if (inFlatpak && stringutils::startsWith(icon, fcitxIconPrefix)) { + // Map "fcitx" to org.fcitx.Fcitx5 + // And map fcitx* to org.fcitx.Fcitx5.fcitx* + if (icon.size() == fcitxIconPrefix.size()) { + return "org.fcitx.Fcitx5"; + } return stringutils::concat("org.fcitx.Fcitx5.", icon); } return icon; diff -Nru fcitx5-5.1.7/src/lib/fcitx/icontheme.h fcitx5-5.1.11/src/lib/fcitx/icontheme.h --- fcitx5-5.1.7/src/lib/fcitx/icontheme.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/icontheme.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,7 +7,6 @@ #ifndef _FCITX_UTILS_ICONTHEME_H_ #define _FCITX_UTILS_ICONTHEME_H_ -#include <cstdlib> #include <memory> #include <fcitx-config/enum.h> #include <fcitx-config/rawconfig.h> diff -Nru fcitx5-5.1.7/src/lib/fcitx/inputcontext.cpp fcitx5-5.1.11/src/lib/fcitx/inputcontext.cpp --- fcitx5-5.1.7/src/lib/fcitx/inputcontext.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/inputcontext.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -8,11 +8,9 @@ #include "inputcontext.h" #include <cassert> #include <chrono> -#include <exception> #include <regex> #include <stdexcept> #include <string> -#include "fcitx-utils/event.h" #include "fcitx-utils/utf8.h" #include "focusgroup.h" #include "inputcontext_p.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx/inputcontext.h fcitx5-5.1.11/src/lib/fcitx/inputcontext.h --- fcitx5-5.1.7/src/lib/fcitx/inputcontext.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/inputcontext.h 2024-10-09 03:48:05.000000000 +0800 @@ -13,16 +13,12 @@ #include <memory> #include <string> #include <fcitx-utils/capabilityflags.h> -#include <fcitx-utils/flags.h> -#include <fcitx-utils/key.h> #include <fcitx-utils/macros.h> #include <fcitx-utils/rect.h> #include <fcitx-utils/trackableobject.h> #include <fcitx/event.h> #include <fcitx/inputcontextproperty.h> #include <fcitx/surroundingtext.h> -#include <fcitx/text.h> -#include <fcitx/userinterface.h> #include "fcitxcore_export.h" /// \addtogroup FcitxCore @@ -31,7 +27,7 @@ /// \brief Input Context for Fcitx. namespace fcitx { -typedef std::array<uint8_t, 16> ICUUID; +using ICUUID = std::array<uint8_t, 16>; class InputContextManager; class FocusGroup; diff -Nru fcitx5-5.1.7/src/lib/fcitx/inputcontextmanager.h fcitx5-5.1.11/src/lib/fcitx/inputcontextmanager.h --- fcitx5-5.1.7/src/lib/fcitx/inputcontextmanager.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/inputcontextmanager.h 2024-10-09 03:48:05.000000000 +0800 @@ -11,7 +11,6 @@ #include <fcitx-config/enum.h> #include <fcitx-utils/macros.h> #include <fcitx/inputcontext.h> -#include <fcitx/inputcontextproperty.h> #include "fcitxcore_export.h" namespace fcitx { diff -Nru fcitx5-5.1.7/src/lib/fcitx/inputcontextproperty.h fcitx5-5.1.11/src/lib/fcitx/inputcontextproperty.h --- fcitx5-5.1.7/src/lib/fcitx/inputcontextproperty.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/inputcontextproperty.h 2024-10-09 03:48:05.000000000 +0800 @@ -51,7 +51,6 @@ }; class InputContext; -class InputContextManager; class InputContextPropertyFactoryPrivate; /** @@ -95,7 +94,7 @@ public: typedef Ret PropertyType; LambdaInputContextPropertyFactory(std::function<Ret *(InputContext &)> f) - : func_(f) {} + : func_(std::move(f)) {} InputContextProperty *create(InputContext &ic) override { return func_(ic); diff -Nru fcitx5-5.1.7/src/lib/fcitx/inputmethodconfig_p.h fcitx5-5.1.11/src/lib/fcitx/inputmethodconfig_p.h --- fcitx5-5.1.7/src/lib/fcitx/inputmethodconfig_p.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/inputmethodconfig_p.h 2024-10-09 03:48:05.000000000 +0800 @@ -38,7 +38,8 @@ Option<std::string> label{this, "Label", "Label"}; Option<std::string> languageCode{this, "LangCode", "Language Code"}; Option<std::string> addon{this, "Addon", "Addon"}; - Option<bool> configurable{this, "Configurable", "Configurable", false};) + Option<bool> configurable{this, "Configurable", "Configurable", false}; + Option<bool> enable{this, "Enable", "Enable", true};) FCITX_CONFIGURATION(InputMethodInfo, Option<InputMethodInfoBase> im{ this, "InputMethod", "Input Method"};) diff -Nru fcitx5-5.1.7/src/lib/fcitx/inputmethodgroup.h fcitx5-5.1.11/src/lib/fcitx/inputmethodgroup.h --- fcitx5-5.1.7/src/lib/fcitx/inputmethodgroup.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/inputmethodgroup.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,7 +7,6 @@ #ifndef _FCITX_INPUTMETHODGROUP_H_ #define _FCITX_INPUTMETHODGROUP_H_ -#include <list> #include <memory> #include <string> #include <vector> diff -Nru fcitx5-5.1.7/src/lib/fcitx/inputmethodmanager.cpp fcitx5-5.1.11/src/lib/fcitx/inputmethodmanager.cpp --- fcitx5-5.1.7/src/lib/fcitx/inputmethodmanager.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/inputmethodmanager.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -7,20 +7,35 @@ #include "inputmethodmanager.h" #include <fcntl.h> -#include <unistd.h> +#include <algorithm> #include <cassert> +#include <cstdint> +#include <functional> +#include <iterator> #include <list> +#include <memory> +#include <stdexcept> +#include <string> #include <unordered_map> +#include <unordered_set> +#include <utility> +#include <vector> #include "fcitx-config/iniparser.h" #include "fcitx-config/rawconfig.h" +#include "fcitx-utils/connectableobject.h" +#include "fcitx-utils/handlertable.h" #include "fcitx-utils/i18n.h" #include "fcitx-utils/log.h" +#include "fcitx-utils/macros.h" +#include "fcitx-utils/misc_p.h" #include "fcitx-utils/standardpath.h" +#include "fcitx-utils/unixfd.h" +#include "addoninfo.h" #include "addonmanager.h" #include "inputmethodconfig_p.h" #include "inputmethodengine.h" +#include "inputmethodgroup.h" #include "instance.h" -#include "misc_p.h" namespace fcitx { @@ -142,7 +157,7 @@ InputMethodGroupItem("keyboard-us")); group.setDefaultInputMethod(""); group.setDefaultLayout("us"); - setGroupOrder({name}); + setGroupOrder({std::move(name)}); } assert(!groups_.empty()); assert(!groupOrder_.empty()); @@ -152,18 +167,22 @@ const std::unordered_set<std::string> &addonNames) { const auto &path = StandardPath::global(); timestamp_ = path.timestamp(StandardPath::Type::PkgData, "inputmethod"); - auto filesMap = path.multiOpen(StandardPath::Type::PkgData, "inputmethod", - O_RDONLY, filter::Suffix(".conf")); - for (const auto &[fileName, file] : filesMap) { + auto filesMap = path.locate(StandardPath::Type::PkgData, "inputmethod", + filter::Suffix(".conf")); + for (const auto &[fileName, fullName] : filesMap) { std::string name = fileName.substr(0, fileName.size() - 5); if (entries_.count(name) != 0) { continue; } RawConfig config; - readFromIni(config, file.fd()); + UnixFD fd = UnixFD::own(open(fullName.c_str(), O_RDONLY)); + readFromIni(config, fd.fd()); InputMethodInfo imInfo; imInfo.load(config); + if (!*imInfo.im->enable) { + continue; + } // Remove ".conf" InputMethodEntry entry = toInputMethodEntry(name, imInfo); if (checkEntry(entry, addonNames)) { diff -Nru fcitx5-5.1.7/src/lib/fcitx/inputpanel.h fcitx5-5.1.11/src/lib/fcitx/inputpanel.h --- fcitx5-5.1.7/src/lib/fcitx/inputpanel.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/inputpanel.h 2024-10-09 03:48:05.000000000 +0800 @@ -8,9 +8,7 @@ #define _FCITX_INPUTPANEL_H_ #include <functional> -#include <fcitx-utils/element.h> #include <fcitx/candidatelist.h> -#include <fcitx/text.h> #include "fcitxcore_export.h" /// \addtogroup FcitxCore diff -Nru fcitx5-5.1.7/src/lib/fcitx/instance.cpp fcitx5-5.1.11/src/lib/fcitx/instance.cpp --- fcitx5-5.1.7/src/lib/fcitx/instance.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/instance.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -10,7 +10,11 @@ #include <signal.h> #include <sys/wait.h> #include <unistd.h> +#include <cstdint> +#include <ctime> +#include <memory> #include <stdexcept> +#include <string> #include <unordered_map> #include <utility> #include <fmt/format.h> @@ -18,13 +22,16 @@ #include "fcitx-config/iniparser.h" #include "fcitx-utils/capabilityflags.h" #include "fcitx-utils/event.h" +#include "fcitx-utils/eventdispatcher.h" #include "fcitx-utils/i18n.h" #include "fcitx-utils/log.h" +#include "fcitx-utils/macros.h" #include "fcitx-utils/misc.h" #include "fcitx-utils/standardpath.h" #include "fcitx-utils/stringutils.h" #include "fcitx-utils/utf8.h" #include "fcitx/event.h" +#include "fcitx/inputmethodgroup.h" #include "../../modules/notifications/notifications_public.h" #include "addonmanager.h" #include "focusgroup.h" @@ -40,6 +47,7 @@ #include "userinterfacemanager.h" #ifdef ENABLE_X11 +#define FCITX_NO_XCB #include <../modules/xcb/xcb_public.h> #endif @@ -139,7 +147,7 @@ "disconnected.\n" << " -r, --replace\t\t\tReplace the existing instance.\n" << " -o --option <option>\t\tPass the option to addons\n" - << "\t\t\t\t<option> is in format like:" + << "\t\t\t\t<option> is in format like:\n" << "\t\t\t\tname1=opt1a:opt1b,name2=opt2a:opt2b... .\n" << " -v, --version\t\t\tShow version and quit.\n" << " -h, --help\t\t\tShow this help message and quit.\n"; @@ -399,9 +407,9 @@ : entry->name(); if (globalConfig_.compactInputMethodInformation() && !subModeLabel.empty()) { - display = subModeLabel; + display = std::move(subModeLabel); } else if (subMode.empty()) { - display = name; + display = std::move(name); } else { display = fmt::format(_("{0} ({1})"), name, subMode); } @@ -500,13 +508,13 @@ #ifdef ENABLE_KEYBOARD xkb_state *InputState::customXkbState(bool refresh) { auto *instance = d_ptr->q_func(); - auto defaultLayout = d_ptr->imManager_.currentGroup().defaultLayout(); - auto im = instance->inputMethod(ic_); - auto layout = d_ptr->imManager_.currentGroup().layoutFor(im); + const InputMethodGroup &group = d_ptr->imManager_.currentGroup(); + const auto im = instance->inputMethod(ic_); + auto layout = group.layoutFor(im); if (layout.empty() && stringutils::startsWith(im, "keyboard-")) { layout = im.substr(9); } - if (layout == defaultLayout || layout.empty()) { + if (layout.empty() || layout == group.defaultLayout()) { // Use system one. xkbState_.reset(); modsAllReleased_ = false; @@ -519,7 +527,7 @@ } lastXkbLayout_ = layout; - auto layoutAndVariant = parseLayout(layout); + const auto layoutAndVariant = parseLayout(layout); if (auto *keymap = d_ptr->keymap(ic_->display(), layoutAndVariant.first, layoutAndVariant.second)) { xkbState_.reset(xkb_state_new(keymap)); @@ -639,9 +647,10 @@ } // we need fork before this - d_ptr.reset(new InstancePrivate(this)); + d_ptr = std::make_unique<InstancePrivate>(this); FCITX_D(); d->arg_ = arg; + d->eventDispatcher_.attach(&d->eventLoop_); d->addonManager_.setInstance(this); d->addonManager_.setAddonOptions(arg.addonOptions_); d->icManager_.setInstance(this); @@ -969,6 +978,13 @@ #ifdef ENABLE_KEYBOARD if (keyEvent.forward()) { FCITX_D(); + // Always let the release key go through, since it shouldn't + // produce character. Otherwise it may wrongly trigger wayland + // client side repetition. + if (keyEvent.isRelease()) { + keyEvent.filter(); + return; + } auto *inputState = ic->propertyFor(&d->inputStateFactory_); if (auto *xkbState = inputState->customXkbState()) { if (auto utf32 = xkb_state_key_get_utf32( @@ -984,10 +1000,8 @@ keyEvent.origKey().sym()) { return; } - if (!keyEvent.isRelease()) { - FCITX_KEYTRACE() << "Will commit char: " << utf32; - ic->commitString(utf8::UCS4ToUTF8(utf32)); - } + FCITX_KEYTRACE() << "Will commit char: " << utf32; + ic->commitString(utf8::UCS4ToUTF8(utf32)); keyEvent.filterAndAccept(); } else if (!keyEvent.key().states().test(KeyState::Ctrl) && keyEvent.rawKey().sym() != @@ -1006,6 +1020,26 @@ EventType::InputContextFocusIn, EventWatcherPhase::ReservedFirst, [this, d](Event &event) { auto &icEvent = static_cast<InputContextEvent &>(event); + auto isSameProgram = [&icEvent, d]() { + // Check if they are same IC, or they are same program. + return (icEvent.inputContext() == d->lastUnFocusedIc_.get()) || + (!icEvent.inputContext()->program().empty() && + (icEvent.inputContext()->program() == + d->lastUnFocusedProgram_)); + }; + + if (d->globalConfig_.resetStateWhenFocusIn() == + PropertyPropagatePolicy::All || + (d->globalConfig_.resetStateWhenFocusIn() == + PropertyPropagatePolicy::Program && + !isSameProgram())) { + if (d->globalConfig_.activeByDefault()) { + activate(icEvent.inputContext()); + } else { + deactivate(icEvent.inputContext()); + } + } + activateInputMethod(icEvent); if (virtualKeyboardAutoShow()) { @@ -1052,8 +1086,10 @@ })); d->eventWatchers_.emplace_back(d->watchEvent( EventType::InputContextFocusOut, EventWatcherPhase::InputMethod, - [this](Event &event) { + [this, d](Event &event) { auto &icEvent = static_cast<InputContextEvent &>(event); + d->lastUnFocusedProgram_ = icEvent.inputContext()->program(); + d->lastUnFocusedIc_ = icEvent.inputContext()->watch(); deactivateInputMethod(icEvent); if (virtualKeyboardAutoHide()) { auto *inputContext = icEvent.inputContext(); @@ -1329,6 +1365,9 @@ exit(); } else if (signo == SIGUSR1) { reloadConfig(); + } else if (signo == SIGCHLD) { + d->zombieReaper_->setNextInterval(2000000); + d->zombieReaper_->setOneShot(); } } } @@ -1379,6 +1418,15 @@ } return false; }); + d->zombieReaper_ = d->eventLoop_.addTimeEvent( + CLOCK_MONOTONIC, now(CLOCK_MONOTONIC), 0, + [](EventSourceTime *, uint64_t) { + pid_t res; + while ((res = waitpid(-1, nullptr, WNOHANG)) > 0) { + } + return false; + }); + d->zombieReaper_->setEnabled(false); d->exitEvent_ = d->eventLoop_.addExitEvent([this](EventSource *) { FCITX_DEBUG() << "Running save..."; @@ -1495,6 +1543,11 @@ return d->eventLoop_; } +EventDispatcher &Instance::eventDispatcher() { + FCITX_D(); + return d->eventDispatcher_; +} + InputContextManager &Instance::inputContextManager() { FCITX_D(); return d->icManager_; @@ -1626,8 +1679,8 @@ if (ic->capabilityFlags().test(CapabilityFlag::Disable) || (ic->capabilityFlags().test(CapabilityFlag::Password) && !d->globalConfig_.allowInputMethodForPassword())) { - auto defaultLayout = group.defaultLayout(); - auto defaultLayoutIM = stringutils::concat("keyboard-", defaultLayout); + auto defaultLayoutIM = + stringutils::concat("keyboard-", group.defaultLayout()); const auto *entry = d->imManager_.entry(defaultLayoutIM); if (!entry) { entry = d->imManager_.entry("keyboard-us"); @@ -1679,16 +1732,18 @@ } std::string Instance::inputMethodIcon(InputContext *ic) { - std::string icon = "input-keyboard"; - + std::string icon; const auto *entry = inputMethodEntry(ic); - auto *engine = inputMethodEngine(ic); - - if (engine) { - icon = engine->subModeIcon(*entry, *ic); - } - if (icon.empty()) { - icon = entry->icon(); + if (entry) { + auto *engine = inputMethodEngine(ic); + if (engine) { + icon = engine->subModeIcon(*entry, *ic); + } + if (icon.empty()) { + icon = entry->icon(); + } + } else { + icon = "input-keyboard"; } return icon; } @@ -2267,7 +2322,7 @@ dot += "\xe2\x80\xa2"; length -= 1; } - newText.append(dot, + newText.append(std::move(dot), result.formatAt(i) | TextFormatFlag::DontCommit); } result = std::move(newText); @@ -2436,6 +2491,14 @@ d->showInputMethodInformation(ic); } +void Instance::showCustomInputMethodInformation(InputContext *ic, + const std::string &message) { + FCITX_DEBUG() << "Input method switched"; + FCITX_D(); + auto *inputState = ic->propertyFor(&d->inputStateFactory_); + inputState->showInputMethodInformation(message); +} + bool Instance::checkUpdate() const { FCITX_D(); return (isInFlatpak() && fs::isreg("/app/.updated")) || diff -Nru fcitx5-5.1.7/src/lib/fcitx/instance.h fcitx5-5.1.11/src/lib/fcitx/instance.h --- fcitx5-5.1.7/src/lib/fcitx/instance.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/instance.h 2024-10-09 03:48:05.000000000 +0800 @@ -8,12 +8,13 @@ #define _FCITX_INSTANCE_H_ #include <memory> +#include <string> #include <fcitx-utils/connectableobject.h> -#include <fcitx-utils/handlertable.h> #include <fcitx-utils/macros.h> #include <fcitx/event.h> #include <fcitx/globalconfig.h> #include <fcitx/text.h> +#include "fcitx-utils/eventdispatcher.h" #include "fcitxcore_export.h" #define FCITX_INVALID_COMPOSE_RESULT 0xffffffff @@ -21,7 +22,6 @@ namespace fcitx { class InputContext; -class KeyEvent; class InstancePrivate; class EventLoop; class AddonManager; @@ -33,7 +33,7 @@ class GlobalConfig; class FocusGroup; -typedef std::function<void(Event &event)> EventHandler; +using EventHandler = std::function<void(Event &event)>; /** * The function mode of virtual keyboard. @@ -156,6 +156,15 @@ /// Get the fcitx event loop. EventLoop &eventLoop(); + /** + * Return a shared event dispatcher that is already attached to instance's + * event loop. + * + * @return shared event dispatcher. + * @since 5.1.9 + */ + EventDispatcher &eventDispatcher(); + /// Get the addon manager. AddonManager &addonManager(); @@ -433,14 +442,35 @@ * Show a small popup with input popup window with current input method * information. * + * The popup will be hidden after certain amount of time. + * * This is useful for input method that has multiple sub modes. It can be * called with switching sub modes within the input method. * + * The behavior is controlled by global config. + * * @param ic input context. */ void showInputMethodInformation(InputContext *ic); /** + * Show a small popup with input popup window with current input method + * information. + * + * The popup will be hidden after certain amount of time. The popup will + * always be displayed, regardless of the showInputMethodInformation in + * global config. + * + * This is useful for input method that has internal switches. + * + * @param ic input context. + * @param message message string to be displayed + * @since 5.1.11 + */ + void showCustomInputMethodInformation(InputContext *ic, + const std::string &message); + + /** * Check if need to invoke Instance::refresh. * * @return need update diff -Nru fcitx5-5.1.7/src/lib/fcitx/instance_p.h fcitx5-5.1.11/src/lib/fcitx/instance_p.h --- fcitx5-5.1.7/src/lib/fcitx/instance_p.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/instance_p.h 2024-10-09 03:48:05.000000000 +0800 @@ -12,8 +12,10 @@ #include <string> #include <unordered_map> #include "fcitx-utils/event.h" +#include "fcitx-utils/eventdispatcher.h" #include "fcitx-utils/handlertable.h" #include "fcitx-utils/misc.h" +#include "fcitx-utils/trackableobject.h" #include "config.h" #include "inputcontextproperty.h" #include "inputmethodmanager.h" @@ -160,8 +162,10 @@ : InputMethodMode::PhysicalKeyboard; EventLoop eventLoop_; + EventDispatcher eventDispatcher_; std::unique_ptr<EventSourceIO> signalPipeEvent_; std::unique_ptr<EventSourceTime> preloadInputMethodEvent_; + std::unique_ptr<EventSourceTime> zombieReaper_; std::unique_ptr<EventSource> exitEvent_; InputContextManager icManager_; AddonManager addonManager_; @@ -223,6 +227,9 @@ VirtualKeyboardFunctionMode::Full; bool binaryMode_ = false; + + std::string lastUnFocusedProgram_; + TrackableObjectReference<InputContext> lastUnFocusedIc_; }; } // namespace fcitx diff -Nru fcitx5-5.1.7/src/lib/fcitx/menu.cpp fcitx5-5.1.11/src/lib/fcitx/menu.cpp --- fcitx5-5.1.7/src/lib/fcitx/menu.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/menu.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,7 +6,6 @@ */ #include "menu.h" -#include <algorithm> namespace fcitx { diff -Nru fcitx5-5.1.7/src/lib/fcitx/text.cpp fcitx5-5.1.11/src/lib/fcitx/text.cpp --- fcitx5-5.1.7/src/lib/fcitx/text.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/text.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,6 +6,7 @@ */ #include "text.h" +#include <iterator> #include <stdexcept> #include <tuple> #include <vector> @@ -55,6 +56,13 @@ d->texts_.emplace_back(std::move(str), flag); } +void Text::append(Text text) { + FCITX_D(); + std::copy(std::make_move_iterator(text.d_ptr->texts_.begin()), + std::make_move_iterator(text.d_ptr->texts_.end()), + std::back_inserter(d->texts_)); +} + const std::string &Text::stringAt(int idx) const { FCITX_D(); return std::get<std::string>(d->texts_[idx]); diff -Nru fcitx5-5.1.7/src/lib/fcitx/text.h fcitx5-5.1.11/src/lib/fcitx/text.h --- fcitx5-5.1.7/src/lib/fcitx/text.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/text.h 2024-10-09 03:48:05.000000000 +0800 @@ -11,7 +11,6 @@ #include <ostream> #include <string> #include <vector> -#include <fcitx-utils/flags.h> #include <fcitx-utils/macros.h> #include <fcitx-utils/textformatflags.h> #include "fcitxcore_export.h" @@ -38,6 +37,13 @@ void setCursor(int pos = -1); void clear(); void append(std::string str, TextFormatFlags flag = TextFormatFlag::NoFlag); + /** + * Append another text. + * + * @param text text to append + * @since 5.1.9 + */ + void append(Text text); const std::string &stringAt(int idx) const; TextFormatFlags formatAt(int idx) const; size_t size() const; diff -Nru fcitx5-5.1.7/src/lib/fcitx/userinterface.h fcitx5-5.1.11/src/lib/fcitx/userinterface.h --- fcitx5-5.1.7/src/lib/fcitx/userinterface.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/userinterface.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,8 +7,6 @@ #ifndef _FCITX_USERINTERFACE_H_ #define _FCITX_USERINTERFACE_H_ -#include <memory> -#include <fcitx-utils/macros.h> #include <fcitx/addoninstance.h> /// \addtogroup FcitxCore diff -Nru fcitx5-5.1.7/src/lib/fcitx/userinterfacemanager.cpp fcitx5-5.1.11/src/lib/fcitx/userinterfacemanager.cpp --- fcitx5-5.1.7/src/lib/fcitx/userinterfacemanager.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx/userinterfacemanager.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -84,9 +84,8 @@ actions_; std::unordered_map<int, Action *> idToAction_; - typedef std::list<std::pair< - InputContext *, std::unordered_set<UserInterfaceComponent, EnumHash>>> - UIUpdateList; + using UIUpdateList = std::list<std::pair< + InputContext *, std::unordered_set<UserInterfaceComponent, EnumHash>>>; UIUpdateList updateList_; std::unordered_map<InputContext *, UIUpdateList::iterator> updateIndex_; AddonManager *addonManager_; @@ -140,7 +139,7 @@ UserInterfaceManager::UserInterfaceManager(AddonManager *addonManager) : d_ptr(std::make_unique<UserInterfaceManagerPrivate>(addonManager)) {} -UserInterfaceManager::~UserInterfaceManager() {} +UserInterfaceManager::~UserInterfaceManager() = default; void UserInterfaceManager::load(const std::string &uiName) { FCITX_D(); @@ -158,8 +157,8 @@ d->uis_.insert(d->uis_.end(), names.begin(), names.end()); std::sort(d->uis_.begin(), d->uis_.end(), [d](const std::string &lhs, const std::string &rhs) { - auto linfo = d->addonManager_->addonInfo(lhs); - auto rinfo = d->addonManager_->addonInfo(rhs); + const auto *linfo = d->addonManager_->addonInfo(lhs); + const auto *rinfo = d->addonManager_->addonInfo(rhs); if (!linfo) { return false; } @@ -312,7 +311,7 @@ newUI->resume(); } d->ui_ = newUI; - d->uiName_ = newUIName; + d->uiName_ = std::move(newUIName); if (instance) { instance->postEvent(UIChangedEvent()); } diff -Nru fcitx5-5.1.7/src/lib/fcitx-config/configuration.cpp fcitx5-5.1.11/src/lib/fcitx-config/configuration.cpp --- fcitx5-5.1.7/src/lib/fcitx-config/configuration.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-config/configuration.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,13 +6,13 @@ */ #include "configuration.h" +#include <algorithm> #include <cassert> -#include <exception> #include <list> #include <memory> #include <stdexcept> #include <unordered_map> -#include "fcitx-utils/standardpath.h" +#include "fcitx-utils/stringutils.h" namespace fcitx { class ConfigurationPrivate { @@ -24,7 +24,7 @@ Configuration::Configuration() : d_ptr(std::make_unique<ConfigurationPrivate>()) {} -Configuration::~Configuration() {} +Configuration::~Configuration() = default; void Configuration::dumpDescription(RawConfig &config) const { return dumpDescriptionImpl(config, {}); @@ -55,7 +55,7 @@ auto subConfigPath = parentPaths; subConfigPath.push_back(option->path()); std::string subTypeName = subConfig->typeName(); - auto oldTypeName = descConfigPtr->valueByPath("Type"); + const auto *oldTypeName = descConfigPtr->valueByPath("Type"); // Replace the "Type" with the full name we want. // Path$To$Value$TypeName if (oldTypeName && @@ -65,7 +65,7 @@ newTypeName.append(stringutils::join(subConfigPath, '$')); newTypeName.append("$"); newTypeName.append(subTypeName); - descConfigPtr->setValueByPath("Type", newTypeName); + descConfigPtr->setValueByPath("Type", std::move(newTypeName)); } subConfigs.emplace_back(subConfigPath, std::move(subConfig)); } @@ -79,14 +79,15 @@ bool Configuration::compareHelper(const Configuration &other) const { FCITX_D(); - for (const auto &path : d->optionsOrder_) { - auto optionIter = d->options_.find(path); - assert(optionIter != d->options_.end()); - auto otherOptionIter = other.d_func()->options_.find(path); - if (*optionIter->second != *otherOptionIter->second) { - return false; - } - } + return std::all_of( + d->optionsOrder_.begin(), d->optionsOrder_.end(), + [d, &other](const auto &path) { + auto optionIter = d->options_.find(path); + assert(optionIter != d->options_.end()); + auto otherOptionIter = other.d_func()->options_.find(path); + assert(otherOptionIter != other.d_func()->options_.end()); + return *optionIter->second == *otherOptionIter->second; + }); return true; } @@ -150,9 +151,10 @@ // Unfortunately on certain system OptionBaseV2 doesn't have key // function emit type info, so we have to add OptionBaseV3 with a // non-abstract virtual funciton. - if (auto optionV3 = dynamic_cast<OptionBaseV3 *>(iter->second)) { + if (auto *optionV3 = dynamic_cast<OptionBaseV3 *>(iter->second)) { optionV3->syncDefaultValueToCurrent(); - } else if (auto optionV2 = dynamic_cast<OptionBaseV2 *>(iter->second)) { + } else if (auto *optionV2 = + dynamic_cast<OptionBaseV2 *>(iter->second)) { optionV2->syncDefaultValueToCurrent(); } } diff -Nru fcitx5-5.1.7/src/lib/fcitx-config/configuration.h fcitx5-5.1.11/src/lib/fcitx-config/configuration.h --- fcitx5-5.1.7/src/lib/fcitx-config/configuration.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-config/configuration.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,12 +7,15 @@ #ifndef _FCITX_CONFIG_CONFIGURATION_H_ #define _FCITX_CONFIG_CONFIGURATION_H_ +#include <memory> +#include <string> +#include <vector> #include <fcitx-config/option.h> +#include <fcitx-config/optiontypename.h> +#include <fcitx-config/rawconfig.h> #include <fcitx-utils/macros.h> #include "fcitxconfig_export.h" -#include <memory> - #define FCITX_CONFIGURATION_EXTEND(NAME, SUBCLASS, ...) \ class NAME; \ FCITX_SPECIALIZE_TYPENAME(NAME, #NAME) \ @@ -58,7 +61,7 @@ void load(const RawConfig &config, bool partial = false); void save(RawConfig &config) const; void dumpDescription(RawConfig &config) const; - virtual const char *typeName() const = 0; + FCITX_NODISCARD virtual const char *typeName() const = 0; /** * Set default value to current value. diff -Nru fcitx5-5.1.7/src/lib/fcitx-config/iniparser.cpp fcitx5-5.1.11/src/lib/fcitx-config/iniparser.cpp --- fcitx5-5.1.7/src/lib/fcitx-config/iniparser.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-config/iniparser.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -7,7 +7,13 @@ #include "iniparser.h" #include <fcntl.h> #include <cstdio> +#include <functional> +#include <string> +#include <string_view> +#include "fcitx-config/rawconfig.h" #include "fcitx-utils/fs.h" +#include "fcitx-utils/macros.h" +#include "fcitx-utils/misc.h" #include "fcitx-utils/standardpath.h" #include "fcitx-utils/stringutils.h" #include "fcitx-utils/unixfd.h" @@ -42,26 +48,20 @@ } void readFromIni(RawConfig &config, FILE *fin) { - std::string lineBuf, currentGroup; + std::string currentGroup; UniqueCPtr<char> clineBuf; size_t bufSize = 0; unsigned int line = 0; while (getline(clineBuf, &bufSize, fin) >= 0) { line++; - lineBuf = clineBuf.get(); - auto pair = stringutils::trimInplace(lineBuf); - std::string::size_type start = pair.first, end = pair.second; - if (start == end || lineBuf[start] == '#') { + std::string_view lineBuf = stringutils::trimView(clineBuf.get()); + if (lineBuf.empty() || lineBuf.front() == '#') { continue; } - lineBuf.resize(end); - - std::string::size_type equalPos; - - if (lineBuf[start] == '[' && lineBuf[end - 1] == ']') { - currentGroup = lineBuf.substr(start + 1, end - start - 2); + if (lineBuf.front() == '[' && lineBuf.back() == ']') { + currentGroup = lineBuf.substr(1, lineBuf.size() - 2); config.visitItemsOnPath( [line](RawConfig &config, const std::string &) { if (!config.lineNumber()) { @@ -69,9 +69,9 @@ } }, currentGroup); - } else if ((equalPos = lineBuf.find_first_of('=', start)) != - std::string::npos) { - auto name = lineBuf.substr(start, equalPos - start); + } else if (std::string::size_type equalPos = lineBuf.find_first_of('='); + equalPos != std::string::npos) { + auto name = lineBuf.substr(0, equalPos); auto valueStart = equalPos + 1; auto value = stringutils::unescapeForValue( @@ -87,7 +87,7 @@ s += name; subConfig = config.get(s, true); } else { - subConfig = config.get(name, true); + subConfig = config.get(std::string(name), true); } subConfig->setValue(*value); subConfig->setLineNumber(line); @@ -95,7 +95,7 @@ } } -bool writeAsIni(const RawConfig &root, FILE *fout) { +bool writeAsIni(const RawConfig &config, FILE *fout) { std::function<bool(const RawConfig &, const std::string &path)> callback; callback = [fout, &callback](const RawConfig &config, @@ -122,13 +122,12 @@ return true; }, "", false, path); - auto valueString = values; - if (!valueString.empty()) { + if (!values.empty()) { if (!path.empty()) { FCITX_RETURN_IF(fprintf(fout, "[%s]\n", path.c_str()) < 0, false); } - FCITX_RETURN_IF(fprintf(fout, "%s\n", valueString.c_str()) < 0, + FCITX_RETURN_IF(fprintf(fout, "%s\n", values.c_str()) < 0, false); } } @@ -136,7 +135,7 @@ return true; }; - return callback(root, ""); + return callback(config, ""); } void readAsIni(RawConfig &rawConfig, const std::string &path) { diff -Nru fcitx5-5.1.7/src/lib/fcitx-config/iniparser.h fcitx5-5.1.11/src/lib/fcitx-config/iniparser.h --- fcitx5-5.1.7/src/lib/fcitx-config/iniparser.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-config/iniparser.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,6 +7,8 @@ #ifndef _FCITX_CONFIG_INIPARSER_H_ #define _FCITX_CONFIG_INIPARSER_H_ +#include <cstdio> +#include <string> #include <fcitx-config/rawconfig.h> #include <fcitx-utils/standardpath.h> #include "fcitxconfig_export.h" @@ -17,22 +19,25 @@ FCITXCONFIG_EXPORT bool writeAsIni(const RawConfig &config, int fd); FCITXCONFIG_EXPORT void readFromIni(RawConfig &config, FILE *fin); FCITXCONFIG_EXPORT bool writeAsIni(const RawConfig &config, FILE *fout); -FCITXCONFIG_EXPORT void readAsIni(Configuration &, const std::string &name); -FCITXCONFIG_EXPORT void readAsIni(RawConfig &, const std::string &name); -FCITXCONFIG_EXPORT void readAsIni(Configuration &, StandardPath::Type type, - const std::string &name); -FCITXCONFIG_EXPORT void readAsIni(RawConfig &, StandardPath::Type type, - const std::string &name); -FCITXCONFIG_EXPORT bool safeSaveAsIni(const Configuration &, - const std::string &name); -FCITXCONFIG_EXPORT bool safeSaveAsIni(const RawConfig &, - const std::string &name); -FCITXCONFIG_EXPORT bool safeSaveAsIni(const Configuration &, +FCITXCONFIG_EXPORT void readAsIni(Configuration &configuration, + const std::string &path); +FCITXCONFIG_EXPORT void readAsIni(RawConfig &rawConfig, + const std::string &path); +FCITXCONFIG_EXPORT void readAsIni(Configuration &configuration, + StandardPath::Type type, + const std::string &path); +FCITXCONFIG_EXPORT void readAsIni(RawConfig &rawConfig, StandardPath::Type type, + const std::string &path); +FCITXCONFIG_EXPORT bool safeSaveAsIni(const Configuration &configuration, + const std::string &path); +FCITXCONFIG_EXPORT bool safeSaveAsIni(const RawConfig &rawConfig, + const std::string &path); +FCITXCONFIG_EXPORT bool safeSaveAsIni(const Configuration &configuration, StandardPath::Type type, - const std::string &name); -FCITXCONFIG_EXPORT bool safeSaveAsIni(const RawConfig &, + const std::string &path); +FCITXCONFIG_EXPORT bool safeSaveAsIni(const RawConfig &rawConfig, StandardPath::Type type, - const std::string &name); + const std::string &path); } // namespace fcitx #endif // _FCITX_CONFIG_INIPARSER_H_ diff -Nru fcitx5-5.1.7/src/lib/fcitx-config/marshallfunction.h fcitx5-5.1.11/src/lib/fcitx-config/marshallfunction.h --- fcitx5-5.1.7/src/lib/fcitx-config/marshallfunction.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-config/marshallfunction.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,11 +7,9 @@ #ifndef _FCITX_CONFIG_INTOPTION_H_ #define _FCITX_CONFIG_INTOPTION_H_ -#include <type_traits> #include <vector> #include <fcitx-utils/color.h> #include <fcitx-utils/i18nstring.h> -#include <fcitx-utils/key.h> #include <fcitx-utils/semver.h> #include "rawconfig.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-config/option.h fcitx5-5.1.11/src/lib/fcitx-config/option.h --- fcitx5-5.1.7/src/lib/fcitx-config/option.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-config/option.h 2024-10-09 03:48:05.000000000 +0800 @@ -9,12 +9,11 @@ #include "fcitxconfig_export.h" -#include <functional> #include <limits> #include <string> #include <type_traits> #include <fcitx-config/marshallfunction.h> -#include <fcitx-config/option_details.h> +#include <fcitx-config/option_details.h> // IWYU pragma: export #include <fcitx-config/optiontypename.h> #include <fcitx-config/rawconfig.h> @@ -233,11 +232,12 @@ /// Default marshaller that write the config RawConfig. template <typename T> struct DefaultMarshaller { - virtual void marshall(RawConfig &config, const T &value) const { + DefaultMarshaller() = default; + + void marshall(RawConfig &config, const T &value) const { return marshallOption(config, value); } - virtual bool unmarshall(T &value, const RawConfig &config, - bool partial) const { + bool unmarshall(T &value, const RawConfig &config, bool partial) const { return unmarshallOption(value, config, partial); } }; @@ -294,8 +294,8 @@ Annotation annotation = Annotation()) : OptionBaseV3(parent, std::move(path), std::move(description)), defaultValue_(defaultValue), value_(defaultValue), - marshaller_(marshaller), constrain_(constrain), - annotation_(annotation) { + marshaller_(std::move(marshaller)), constrain_(std::move(constrain)), + annotation_(std::move(annotation)) { if (!constrain_.check(defaultValue_)) { throw std::invalid_argument( "defaultValue doesn't satisfy constrain"); @@ -423,7 +423,7 @@ /// Shorthand for create a key list constrain. static inline ListConstrain<KeyConstrain> KeyListConstrain(KeyConstrainFlags flags = KeyConstrainFlags()) { - return ListConstrain<KeyConstrain>(KeyConstrain(flags)); + return {KeyConstrain(flags)}; } /// Shorthand for option that will not show in UI. @@ -450,6 +450,21 @@ using OptionType = HiddenOption<T, Constrain, Marshaller, Annotation>; }; +template <> +struct ConditionalHiddenHelper<false, SubConfigOption> { + using OptionType = SubConfigOption; +}; + +template <> +struct ConditionalHiddenHelper<true, SubConfigOption> { + class HiddenSubConfigOption : public SubConfigOption { + public: + using SubConfigOption::SubConfigOption; + bool skipDescription() const { return true; } + }; + using OptionType = HiddenSubConfigOption; +}; + template <bool hidden, typename T> using ConditionalHidden = typename ConditionalHiddenHelper<hidden, T>::OptionType; diff -Nru fcitx5-5.1.7/src/lib/fcitx-config/option_details.h fcitx5-5.1.11/src/lib/fcitx-config/option_details.h --- fcitx5-5.1.7/src/lib/fcitx-config/option_details.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-config/option_details.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,6 +7,10 @@ #ifndef _FCITX_CONFIG_OPTION_DETAILS_H_ #define _FCITX_CONFIG_OPTION_DETAILS_H_ +#include <string> +#include <fcitx-config/rawconfig.h> +#include "fcitxconfig_export.h" + namespace fcitx { class Configuration; @@ -58,12 +62,12 @@ template <typename T> struct RemoveVector { - typedef T type; + using type = T; }; template <typename T> struct RemoveVector<std::vector<T>> { - typedef typename RemoveVector<T>::type type; + using type = typename RemoveVector<T>::type; }; template <typename T> diff -Nru fcitx5-5.1.7/src/lib/fcitx-config/optiontypename.h fcitx5-5.1.11/src/lib/fcitx-config/optiontypename.h --- fcitx5-5.1.7/src/lib/fcitx-config/optiontypename.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-config/optiontypename.h 2024-10-09 03:48:05.000000000 +0800 @@ -8,9 +8,12 @@ #define _FCITX_CONFIG_TYPENAME_H_ #include <string> +#include <type_traits> +#include <vector> #include <fcitx-utils/color.h> #include <fcitx-utils/i18nstring.h> #include <fcitx-utils/key.h> +#include <fcitx-utils/macros.h> #include <fcitx-utils/semver.h> namespace fcitx { @@ -42,8 +45,7 @@ }; template <typename T> -struct OptionTypeName<T, - typename std::enable_if<std::is_enum<T>::value>::type> { +struct OptionTypeName<T, std::enable_if_t<std::is_enum_v<T>>> { static std::string get() { return "Enum"; } }; } // namespace fcitx diff -Nru fcitx5-5.1.7/src/lib/fcitx-config/rawconfig.cpp fcitx5-5.1.11/src/lib/fcitx-config/rawconfig.cpp --- fcitx5-5.1.7/src/lib/fcitx-config/rawconfig.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-config/rawconfig.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,10 +6,8 @@ */ #include "rawconfig.h" #include <list> -#include <unordered_map> #include <utility> #include "fcitx-utils/misc_p.h" -#include "fcitx-utils/stringutils.h" namespace fcitx { diff -Nru fcitx5-5.1.7/src/lib/fcitx-config/rawconfig.h fcitx5-5.1.11/src/lib/fcitx-config/rawconfig.h --- fcitx5-5.1.7/src/lib/fcitx-config/rawconfig.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-config/rawconfig.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,7 +7,6 @@ #ifndef _FCITX_CONFIG_RAWCONFIG_H_ #define _FCITX_CONFIG_RAWCONFIG_H_ -#include <algorithm> #include <functional> #include <memory> #include <string> diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/capabilityflags.h fcitx5-5.1.11/src/lib/fcitx-utils/capabilityflags.h --- fcitx5-5.1.7/src/lib/fcitx-utils/capabilityflags.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/capabilityflags.h 2024-10-09 03:48:05.000000000 +0800 @@ -49,25 +49,25 @@ // 25 ~ 31 are reserved for fcitx 4 compatibility. // New addition in fcitx 5. - Terminal = (1ull << 32), - Date = (1ull << 33), - Time = (1ull << 34), - Multiline = (1ull << 35), - Sensitive = (1ull << 36), - KeyEventOrderFix = (1ull << 37), + Terminal = (1ULL << 32), + Date = (1ULL << 33), + Time = (1ULL << 34), + Multiline = (1ULL << 35), + Sensitive = (1ULL << 36), + KeyEventOrderFix = (1ULL << 37), /** * Whether client will set KeyState::Repeat on the key event. * * @see KeyState::Repeat * @since 5.0.4 */ - ReportKeyRepeat = (1ull << 38), + ReportKeyRepeat = (1ULL << 38), /** * @brief Whether client display input panel by itself. * * @since 5.0.5 */ - ClientSideInputPanel = (1ull << 39), + ClientSideInputPanel = (1ULL << 39), /** * Whether client request input method to be disabled. @@ -76,18 +76,18 @@ * * @since 5.0.20 */ - Disable = (1ull << 40), + Disable = (1ULL << 40), /** * Whether client support commit string with cursor location. * @since 5.1.2 */ - CommitStringWithCursor = (1ull << 41), + CommitStringWithCursor = (1ULL << 41), PasswordOrSensitive = Password | Sensitive, }; -typedef Flags<CapabilityFlag> CapabilityFlags; +using CapabilityFlags = Flags<CapabilityFlag>; } // namespace fcitx #endif // _FCITX_UTILS_CAPABILITYFLAGS_H_ diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/color.cpp fcitx5-5.1.11/src/lib/fcitx-utils/color.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/color.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/color.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,9 +6,9 @@ */ #include "color.h" -#include <array> #include <climits> #include <cmath> +#include <cstdint> #include <cstdio> #include "charutils.h" #include "stringutils.h" @@ -18,7 +18,9 @@ return c <= 255 ? c : 255; } -static float roundColorF(float f) { return f < 0 ? 0.0f : (f > 1.0 ? 1.0 : f); } +static float roundColorF(float f) { + return f < 0 ? 0.0F : (f > 1.0 ? 1.0F : f); +} static unsigned short extendColor(unsigned short c) { c = roundColor(c); @@ -32,7 +34,8 @@ static inline unsigned short to_hex_digit(char hi, char lo) { hi = charutils::tolower(hi); lo = charutils::tolower(lo); - int dhi = 0, dlo = 0; + int dhi = 0; + int dlo = 0; if (hi >= '0' && hi <= '9') { dhi = hi - '0'; } else { @@ -81,7 +84,10 @@ throw ColorParseException(); } - unsigned short r, g, b, a; + uint16_t r; + uint16_t g; + uint16_t b; + uint16_t a; r = to_hex_digit(digits[0], digits[1]); digits += 2; g = to_hex_digit(digits[0], digits[1]); @@ -99,7 +105,9 @@ blue_ = extendColor(b); alpha_ = extendColor(a); } else { - unsigned short r, g, b; + uint16_t r; + uint16_t g; + uint16_t b; if (sscanf(str, "%hu %hu %hu", &r, &g, &b) != 3) { throw ColorParseException(); } @@ -115,10 +123,10 @@ std::string result; result.push_back('#'); unsigned short v[] = { - static_cast<unsigned short>(red_ >> 8u), - static_cast<unsigned short>(green_ >> 8u), - static_cast<unsigned short>(blue_ >> 8u), - static_cast<unsigned short>(alpha_ >> 8u), + static_cast<unsigned short>(red_ >> 8U), + static_cast<unsigned short>(green_ >> 8U), + static_cast<unsigned short>(blue_ >> 8U), + static_cast<unsigned short>(alpha_ >> 8U), }; for (auto value : v) { diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/color.h fcitx5-5.1.11/src/lib/fcitx-utils/color.h --- fcitx5-5.1.7/src/lib/fcitx-utils/color.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/color.h 2024-10-09 03:48:05.000000000 +0800 @@ -10,7 +10,6 @@ #include <ostream> #include <string> -#include <type_traits> #include <fcitx-utils/macros.h> #include "fcitxutils_export.h" @@ -21,7 +20,7 @@ namespace fcitx { struct FCITXUTILS_EXPORT ColorParseException : public std::exception { - virtual const char *what() const noexcept { return "Color parse error"; } + const char *what() const noexcept override { return "Color parse error"; } }; /// \brief Color class for handling color. @@ -38,7 +37,11 @@ std::string toString() const; bool operator==(const Color &other) const; - bool operator!=(const Color &other) { return !operator==(other); } + // FIXME: remove this + bool operator!=(const Color &other) { + return !operator==(other); + } // NOLINT(readability-make-member-function-const) + bool operator!=(const Color &other) const { return !operator==(other); } void setFromString(const char *s); inline void setFromString(const std::string &s) { diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/connectableobject.cpp fcitx5-5.1.11/src/lib/fcitx-utils/connectableobject.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/connectableobject.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/connectableobject.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -11,7 +11,7 @@ class ConnectableObjectPrivate { public: - ConnectableObjectPrivate() {} + ConnectableObjectPrivate() = default; std::unordered_map<std::string, std::unique_ptr<fcitx::SignalBase>> signals_; bool destroyed_ = false; diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/cutf8.cpp fcitx5-5.1.11/src/lib/fcitx-utils/cutf8.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/cutf8.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/cutf8.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -8,11 +8,10 @@ #include "cutf8.h" #include <cstdint> #include <cstring> -#include "fcitxutils_export.h" #include "utf8.h" /** check utf8 character */ -#define FCITX_ISUTF8_CB(c) (((c)&0xc0) == 0x80) +#define FCITX_ISUTF8_CB(c) (((c) & 0xc0) == 0x80) #define CONT(i) FCITX_ISUTF8_CB(in[i]) #define VAL(i, s) ((in[i] & 0x3f) << s) @@ -28,10 +27,8 @@ : ((Char) < 0x4000000 ? 5 : 6))))) #define UNICODE_VALID(Char) \ - ((Char) < 0x110000 && (((Char)&0xFFFFF800) != 0xD800) && \ - ((Char) < 0xFDD0 || (Char) > 0xFDEF) && ((Char)&0xFFFE) != 0xFFFE) + ((Char) < 0x110000 && (((Char) & 0xFFFFF800) != 0xD800)) -FCITXUTILS_EXPORT size_t fcitx_utf8_strlen(const char *s) { size_t l = 0; @@ -45,7 +42,6 @@ return l; } -FCITXUTILS_EXPORT unsigned int fcitx_utf8_char_len(const char *in) { if (!(in[0] & 0x80)) { return 1; @@ -80,7 +76,6 @@ return 1; } -FCITXUTILS_EXPORT int fcitx_ucs4_char_len(uint32_t c) { if (c < 0x00080) { return 1; @@ -101,7 +96,6 @@ return 6; } -FCITXUTILS_EXPORT int fcitx_ucs4_to_utf8(uint32_t c, char *output) { if (c < 0x00080) { output[0] = (char)(c & 0xFF); @@ -149,9 +143,8 @@ return 6; } -FCITXUTILS_EXPORT char *fcitx_utf8_get_char(const char *i, uint32_t *chr) { - const unsigned char *in = (const unsigned char *)i; + const auto *in = reinterpret_cast<const unsigned char *>(i); if (!(in[0] & 0x80)) { *(chr) = *(in); return (char *)in + 1; @@ -195,7 +188,6 @@ return (char *)in + 1; } -FCITXUTILS_EXPORT char *fcitx_utf8_get_nth_char(const char *s, uint32_t n) { size_t l = 0; @@ -211,9 +203,9 @@ static uint32_t fcitx_utf8_get_char_extended(const char *s, int max_len, int *plen) { - const unsigned char *p = (const unsigned char *)s; + const auto *p = reinterpret_cast<const unsigned char *>(s); int i, len; - uint32_t wc = (unsigned char)*p; + uint32_t wc = static_cast<unsigned char>(*p); if (wc < 0x80) { if (plen) { @@ -279,7 +271,6 @@ return wc; } -FCITXUTILS_EXPORT uint32_t fcitx_utf8_get_char_validated(const char *p, int max_len, int *plen) { uint32_t result; @@ -303,7 +294,6 @@ return result; } -FCITXUTILS_EXPORT bool fcitx_utf8_check_string(const char *s) { while (*s) { uint32_t chr; @@ -321,7 +311,6 @@ return true; } -FCITXUTILS_EXPORT void fcitx_utf8_strncpy(char *str, const char *s, size_t byte) { while (*s) { uint32_t chr; @@ -344,7 +333,6 @@ } } -FCITXUTILS_EXPORT size_t fcitx_utf8_strnlen_validated(const char *str, size_t byte) { size_t len = 0; while (byte && *str) { @@ -363,7 +351,6 @@ return len; } -FCITXUTILS_EXPORT size_t fcitx_utf8_strnlen(const char *str, size_t byte) { size_t len = 0; // if byte is zero no need to go further. diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/cutf8.h fcitx5-5.1.11/src/lib/fcitx-utils/cutf8.h --- fcitx5-5.1.7/src/lib/fcitx-utils/cutf8.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/cutf8.h 2024-10-09 03:48:05.000000000 +0800 @@ -15,47 +15,59 @@ #include <cstdint> #include <cstdlib> +#include "fcitxutils_export.h" //// Max length of a utf8 character #define FCITX_UTF8_MAX_LENGTH 6 /// \brief Get utf8 string length +FCITXUTILS_EXPORT size_t fcitx_utf8_strlen(const char *s); /// \brief Get UCS-4 char in the utf8 string +FCITXUTILS_EXPORT char *fcitx_utf8_get_char(const char *in, uint32_t *chr); /// \brief Get the number of bytes of next character. +FCITXUTILS_EXPORT unsigned int fcitx_utf8_char_len(const char *in); /// \brief Get the pointer to the nth character. /// /// This function will not touch the content for s, so const pointer /// can be safely passed and converted. +FCITXUTILS_EXPORT char *fcitx_utf8_get_nth_char(const char *s, uint32_t n); /// \brief Check if the string is valid utf8 string. +FCITXUTILS_EXPORT bool fcitx_utf8_check_string(const char *s); /// \brief Get validated character. /// /// Returns the UCS-4 value if its valid character. Returns (uint32_t) -1 if /// it is not a valid char, (uint32_t)-2 if length is not enough. +FCITXUTILS_EXPORT uint32_t fcitx_utf8_get_char_validated(const char *p, int max_len, int *plen); /// \brief Copy most byte length, but keep utf8 valid. +FCITXUTILS_EXPORT void fcitx_utf8_strncpy(char *str, const char *s, size_t byte); /// \brief Count most byte length, utf8 string length. +FCITXUTILS_EXPORT size_t fcitx_utf8_strnlen(const char *str, size_t byte); /// \brief Count most byte length, utf8 string length and validates the string +FCITXUTILS_EXPORT size_t fcitx_utf8_strnlen_validated(const char *str, size_t byte); /// \brief Return the utf8 bytes of a UCS4 char. +FCITXUTILS_EXPORT int fcitx_ucs4_char_len(uint32_t c); /// \brief Convert ucs4 char to utf8, need to have enough memory for it. +FCITXUTILS_EXPORT int fcitx_ucs4_to_utf8(uint32_t c, char *output); #endif diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/dbus/bus.h fcitx5-5.1.11/src/lib/fcitx-utils/dbus/bus.h --- fcitx5-5.1.7/src/lib/fcitx-utils/dbus/bus.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/dbus/bus.h 2024-10-09 03:48:05.000000000 +0800 @@ -13,15 +13,14 @@ #include <fcitx-utils/dbus/message.h> #include <fcitx-utils/dbus/objectvtable.h> #include <fcitx-utils/event.h> +#include "fcitx-utils/macros.h" /// \addtogroup FcitxUtils /// \{ /// \file /// \brief API for DBus bus. -namespace fcitx { - -namespace dbus { +namespace fcitx::dbus { /** * Virtual base class represent some internal registration of the bus. @@ -59,7 +58,7 @@ Bus(Bus &&other) noexcept; /// Check if the connection is open. - bool isOpen() const; + FCITX_NODISCARD bool isOpen() const; /// Attach this bus to an event loop. void attachEventLoop(EventLoop *loop); @@ -75,7 +74,7 @@ * * @since 5.0.22 */ - EventLoop *eventLoop() const; + FCITX_NODISCARD EventLoop *eventLoop() const; FCITX_NODISCARD std::unique_ptr<Slot> addMatch(const MatchRule &rule, MessageCallback callback); @@ -113,7 +112,7 @@ * * @return internal pointer */ - void *nativeHandle() const; + FCITX_NODISCARD void *nativeHandle() const; /** * Request the dbus name on the bus. @@ -162,7 +161,6 @@ std::unique_ptr<BusPrivate> d_ptr; FCITX_DECLARE_PRIVATE(Bus); }; -} // namespace dbus -} // namespace fcitx +} // namespace fcitx::dbus #endif // _FCITX_UTILS_DBUS_BUS_H_ diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/dbus/libdbus/message.cpp fcitx5-5.1.11/src/lib/fcitx-utils/dbus/libdbus/message.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/dbus/libdbus/message.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/dbus/libdbus/message.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -502,26 +502,22 @@ } FCITX_D(); auto type = peekType(); - if (type.first == 'v') { - auto helper = - VariantTypeRegistry::defaultRegistry().lookupType(type.second); - if (helper) { - if (*this >> - Container(Container::Type::Variant, Signature(type.second))) { - auto data = helper->copy(nullptr); - helper->deserialize(*this, data.get()); - if (*this) { - variant.setRawData(data, helper); - *this >> ContainerEnd(); - } + if (type.first != 'v') { + d->lastError_ = -EINVAL; + return *this; + } + if (auto helper = lookupVariantType(type.second)) { + if (*this >> + Container(Container::Type::Variant, Signature(type.second))) { + auto data = helper->copy(nullptr); + helper->deserialize(*this, data.get()); + if (*this) { + variant.setRawData(std::move(data), std::move(helper)); + *this >> ContainerEnd(); } - return *this; } - } - if (dbus_message_iter_get_arg_type(d->iterator()) == DBUS_TYPE_VARIANT) { - dbus_message_iter_next(d->iterator()); } else { - d->lastError_ = -EINVAL; + dbus_message_iter_next(d->iterator()); } return *this; } diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/dbus/libdbus/objectvtable_libdbus.cpp fcitx5-5.1.11/src/lib/fcitx-utils/dbus/libdbus/objectvtable_libdbus.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/dbus/libdbus/objectvtable_libdbus.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/dbus/libdbus/objectvtable_libdbus.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -50,8 +50,7 @@ p->xml_ += stringutils::concat("<signal name=\"", sig->name(), "\">"); for (auto &type : splitDBusSignature(sig->signature())) { - p->xml_ += stringutils::concat("<arg direction=\"in\" type=\"", - type, "\"/>"); + p->xml_ += stringutils::concat("<arg type=\"", type, "\"/>"); } p->xml_ += "</signal>"; } diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/dbus/matchrule.cpp fcitx5-5.1.11/src/lib/fcitx-utils/dbus/matchrule.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/dbus/matchrule.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/dbus/matchrule.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -22,10 +22,11 @@ std::string destination, std::string path, std::string interface, std::string name, std::vector<std::string> argumentMatch, bool eavesdrop) - : type_(type), service_(std::move(service)), destination_(destination), - path_(std::move(path)), interface_(std::move(interface)), - name_(std::move(name)), argumentMatch_(std::move(argumentMatch)), - eavesdrop_(eavesdrop), rule_(buildRule()) {} + : type_(type), service_(std::move(service)), + destination_(std::move(destination)), path_(std::move(path)), + interface_(std::move(interface)), name_(std::move(name)), + argumentMatch_(std::move(argumentMatch)), eavesdrop_(eavesdrop), + rule_(buildRule()) {} FCITX_INLINE_DEFINE_DEFAULT_DTOR_COPY_AND_MOVE_WITHOUT_SPEC( MatchRulePrivate) @@ -133,8 +134,9 @@ MatchRule::MatchRule(std::string service, std::string path, std::string interface, std::string name, std::vector<std::string> argumentMatch) - : MatchRule(MessageType::Signal, service, "", path, interface, name, - argumentMatch, false) {} + : MatchRule(MessageType::Signal, std::move(service), "", std::move(path), + std::move(interface), std::move(name), std::move(argumentMatch), + false) {} MatchRule::MatchRule(MessageType type, std::string service, std::string destination, std::string path, diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/dbus/message.h fcitx5-5.1.11/src/lib/fcitx-utils/dbus/message.h --- fcitx5-5.1.7/src/lib/fcitx-utils/dbus/message.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/dbus/message.h 2024-10-09 03:48:05.000000000 +0800 @@ -15,7 +15,7 @@ #include <tuple> #include <type_traits> #include <vector> -#include <fcitx-utils/dbus/message_details.h> +#include <fcitx-utils/dbus/message_details.h> // IWYU pragma: export #include <fcitx-utils/log.h> #include <fcitx-utils/macros.h> #include <fcitx-utils/metastring.h> diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/dbus/sdbus/message.cpp fcitx5-5.1.11/src/lib/fcitx-utils/dbus/sdbus/message.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/dbus/sdbus/message.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/dbus/sdbus/message.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -11,6 +11,7 @@ #include <atomic> #include <shared_mutex> #include <stdexcept> +#include <asm-generic/errno-base.h> #include "../../misc_p.h" #include "../../unixfd.h" #include "../variant.h" @@ -435,23 +436,24 @@ } FCITX_D(); auto type = peekType(); - if (type.first == 'v') { - auto helper = - VariantTypeRegistry::defaultRegistry().lookupType(type.second); - if (helper) { - if (*this >> - Container(Container::Type::Variant, Signature(type.second))) { - auto data = helper->copy(nullptr); - helper->deserialize(*this, data.get()); - if (*this) { - variant.setRawData(data, helper); - *this >> ContainerEnd(); - } + if (type.first != 'v') { + d->lastError_ = -EINVAL; + return *this; + } + if (auto helper = lookupVariantType(type.second)) { + if (*this >> + Container(Container::Type::Variant, Signature(type.second))) { + auto data = helper->copy(nullptr); + helper->deserialize(*this, data.get()); + if (*this) { + variant.setRawData(std::move(data), std::move(helper)); + *this >> ContainerEnd(); } - return *this; } + return *this; + } else { + d->lastError_ = sd_bus_message_skip(d->msg_, "v"); } - d->lastError_ = sd_bus_message_skip(d->msg_, "v"); return *this; } } // namespace fcitx::dbus diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/dbus/servicewatcher.cpp fcitx5-5.1.11/src/lib/fcitx-utils/dbus/servicewatcher.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/dbus/servicewatcher.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/dbus/servicewatcher.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -40,6 +40,11 @@ std::string newName; if (msg.type() != dbus::MessageType::Error) { msg >> newName; + } else { + if (msg.errorName() != + "org.freedesktop.DBus.Error.NameHasNoOwner") { + return false; + } } for (auto &entry : watcherMap_.view(pivotKey)) { entry(pivotKey, "", newName); diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/dbus/variant.cpp fcitx5-5.1.11/src/lib/fcitx-utils/dbus/variant.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/dbus/variant.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/dbus/variant.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -57,6 +57,11 @@ return registry; } +std::shared_ptr<VariantHelperBase> +lookupVariantType(const std::string &signature) { + return VariantTypeRegistry::defaultRegistry().lookupType(signature); +} + void Variant::writeToMessage(dbus::Message &msg) const { helper_->serialize(msg, data_.get()); } diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/dbus/variant.h fcitx5-5.1.11/src/lib/fcitx-utils/dbus/variant.h --- fcitx5-5.1.7/src/lib/fcitx-utils/dbus/variant.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/dbus/variant.h 2024-10-09 03:48:05.000000000 +0800 @@ -48,6 +48,14 @@ FCITX_DECLARE_PRIVATE(VariantTypeRegistry); }; +std::shared_ptr<VariantHelperBase> + FCITXUTILS_EXPORT lookupVariantType(const std::string &signature); + +template <typename TypeName> +inline void registerVariantType() { + VariantTypeRegistry::defaultRegistry().registerType<TypeName>(); +} + /// Variant type to be used to box or unbox the dbus variant type. class FCITXUTILS_EXPORT Variant { public: diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/element.cpp fcitx5-5.1.11/src/lib/fcitx-utils/element.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/element.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/element.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -13,7 +13,7 @@ namespace fcitx { class ElementPrivate { - typedef std::list<Element *> ElementList; + using ElementList = std::list<Element *>; public: OrderedSet<Element *> parents_, childs_; diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/element.h fcitx5-5.1.11/src/lib/fcitx-utils/element.h --- fcitx5-5.1.7/src/lib/fcitx-utils/element.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/element.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,7 +7,6 @@ #ifndef _FCITX_UTILS_ELEMENT_H_ #define _FCITX_UTILS_ELEMENT_H_ -#include <unordered_set> #include <fcitx-utils/connectableobject.h> #include "fcitxutils_export.h" @@ -24,7 +23,7 @@ class FCITXUTILS_EXPORT Element : public ConnectableObject { public: Element(); - ~Element(); + ~Element() override; /// \brief Enable query between different elements. bool isChild(const Element *element) const; diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/endian_p.h fcitx5-5.1.11/src/lib/fcitx-utils/endian_p.h --- fcitx5-5.1.7/src/lib/fcitx-utils/endian_p.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/endian_p.h 2024-10-09 03:48:05.000000000 +0800 @@ -34,7 +34,7 @@ #endif enum { BYTE_ORDER_MSB_FIRST = 1, BYTE_ORDER_LSB_FIRST = 0 }; -inline uint8_t hostByteOrder() { +inline char hostByteOrder() { const uint16_t endian = 1; uint8_t byteOrder = 0; if (*reinterpret_cast<const char *>(&endian)) { diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/event.h fcitx5-5.1.11/src/lib/fcitx-utils/event.h --- fcitx5-5.1.7/src/lib/fcitx-utils/event.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/event.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,8 +7,7 @@ #ifndef _FCITX_UTILS_EVENT_H_ #define _FCITX_UTILS_EVENT_H_ -#include <time.h> -#include <cstring> +#include <cstdint> #include <functional> #include <memory> #include <stdexcept> @@ -26,13 +25,13 @@ EdgeTrigger = (1 << 4), }; -typedef Flags<IOEventFlag> IOEventFlags; +using IOEventFlags = Flags<IOEventFlag>; class FCITXUTILS_EXPORT EventLoopException : public std::runtime_error { public: EventLoopException(int error); - int error() const { return errno_; } + FCITX_NODISCARD int error() const { return errno_; } private: int errno_; @@ -40,33 +39,33 @@ struct FCITXUTILS_EXPORT EventSource { virtual ~EventSource(); - virtual bool isEnabled() const = 0; + FCITX_NODISCARD virtual bool isEnabled() const = 0; virtual void setEnabled(bool enabled) = 0; - virtual bool isOneShot() const = 0; + FCITX_NODISCARD virtual bool isOneShot() const = 0; virtual void setOneShot() = 0; }; struct FCITXUTILS_EXPORT EventSourceIO : public EventSource { - virtual int fd() const = 0; + FCITX_NODISCARD virtual int fd() const = 0; virtual void setFd(int fd) = 0; - virtual IOEventFlags events() const = 0; + FCITX_NODISCARD virtual IOEventFlags events() const = 0; virtual void setEvents(IOEventFlags flags) = 0; - virtual IOEventFlags revents() const = 0; + FCITX_NODISCARD virtual IOEventFlags revents() const = 0; }; struct FCITXUTILS_EXPORT EventSourceTime : public EventSource { virtual void setNextInterval(uint64_t time); - virtual uint64_t time() const = 0; + FCITX_NODISCARD virtual uint64_t time() const = 0; virtual void setTime(uint64_t time) = 0; - virtual uint64_t accuracy() const = 0; + FCITX_NODISCARD virtual uint64_t accuracy() const = 0; virtual void setAccuracy(uint64_t accuracy) = 0; - virtual clockid_t clock() const = 0; + FCITX_NODISCARD virtual clockid_t clock() const = 0; }; -typedef std::function<bool(EventSourceIO *, int fd, IOEventFlags flags)> - IOCallback; -typedef std::function<bool(EventSourceTime *, uint64_t usec)> TimeCallback; -typedef std::function<bool(EventSource *)> EventCallback; +using IOCallback = + std::function<bool(EventSourceIO *, int fd, IOEventFlags flags)>; +using TimeCallback = std::function<bool(EventSourceTime *, uint64_t usec)>; +using EventCallback = std::function<bool(EventSource *)>; FCITXUTILS_EXPORT uint64_t now(clockid_t clock); diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/event_common.cpp fcitx5-5.1.11/src/lib/fcitx-utils/event_common.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/event_common.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/event_common.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -9,12 +9,16 @@ #include <cstring> #include "event.h" -#define USEC_INFINITY ((uint64_t)-1) -#define USEC_PER_SEC ((uint64_t)1000000ULL) -#define NSEC_PER_USEC ((uint64_t)1000ULL) - namespace fcitx { +namespace { + +constexpr uint64_t USEC_INFINITY = static_cast<uint64_t>(-1); +constexpr uint64_t USEC_PER_SEC = 1000000ULL; +constexpr uint64_t NSEC_PER_USEC = 1000ULL; + +} // namespace + // From systemd :) uint64_t timespec_load(const struct timespec *ts) { if (ts->tv_sec == (time_t)-1 && ts->tv_nsec == (long)-1) { @@ -44,5 +48,5 @@ setTime(now(clock()) + time); } -EventSource::~EventSource() {} +EventSource::~EventSource() = default; } // namespace fcitx diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/event_libuv.cpp fcitx5-5.1.11/src/lib/fcitx-utils/event_libuv.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/event_libuv.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/event_libuv.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -67,7 +67,7 @@ if (!handle_) { return; } - auto handle = handle_; + auto *handle = handle_; handle_->data = nullptr; handle_ = nullptr; uv_close(handle, [](uv_handle_t *handle) { free(handle); }); diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/event_sdevent.cpp fcitx5-5.1.11/src/lib/fcitx-utils/event_sdevent.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/event_sdevent.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/event_sdevent.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -5,9 +5,15 @@ * */ +#include <cstdint> +#include <cstdlib> #include <exception> #include <functional> +#include <memory> #include <mutex> +#include <stdexcept> +#include <utility> +#include <sys/epoll.h> #if defined(__COVERITY__) && !defined(__INCLUDE_LEVEL__) #define __INCLUDE_LEVEL__ 2 @@ -15,10 +21,13 @@ #include <systemd/sd-event.h> #include "event.h" #include "log.h" +#include "macros.h" +#include "stringutils.h" namespace fcitx { -static uint32_t IOEventFlagsToEpollFlags(IOEventFlags flags) { +namespace { +uint32_t IOEventFlagsToEpollFlags(IOEventFlags flags) { uint32_t result = 0; if (flags & IOEventFlag::In) { result |= EPOLLIN; @@ -38,7 +47,7 @@ return result; } -static IOEventFlags EpollFlagsToIOEventFlags(uint32_t flags) { +IOEventFlags EpollFlagsToIOEventFlags(uint32_t flags) { return ((flags & EPOLLIN) ? IOEventFlag::In : IOEventFlags()) | ((flags & EPOLLOUT) ? IOEventFlag::Out : IOEventFlags()) | ((flags & EPOLLERR) ? IOEventFlag::Err : IOEventFlags()) | @@ -46,10 +55,12 @@ ((flags & EPOLLET) ? IOEventFlag::EdgeTrigger : IOEventFlags()); } +} // namespace + template <typename Interface> struct SDEventSourceBase : public Interface { public: - ~SDEventSourceBase() { + ~SDEventSourceBase() override { if (eventSource_) { sd_event_source_set_enabled(eventSource_, SD_EVENT_OFF); sd_event_source_set_userdata(eventSource_, nullptr); @@ -60,8 +71,9 @@ void setEventSource(sd_event_source *event) { eventSource_ = event; } bool isEnabled() const override { - int result = 0, err; - if ((err = sd_event_source_get_enabled(eventSource_, &result)) < 0) { + int result = 0; + if (int err = sd_event_source_get_enabled(eventSource_, &result); + err < 0) { throw EventLoopException(err); } return result != SD_EVENT_OFF; @@ -73,8 +85,9 @@ } bool isOneShot() const override { - int result = 0, err; - if ((err = sd_event_source_get_enabled(eventSource_, &result)) < 0) { + int result = 0; + if (int err = sd_event_source_get_enabled(eventSource_, &result); + err < 0) { throw EventLoopException(err); } return result == SD_EVENT_ONESHOT; @@ -194,20 +207,21 @@ class EventLoopPrivate { public: EventLoopPrivate() { - if (sd_event_new(&event_) < 0) { - throw std::runtime_error("Create sd_event failed."); + if (int rc = sd_event_new(&event_); rc < 0) { + throw std::runtime_error(stringutils::concat( + "Create sd_event failed. error code: ", rc)); } } ~EventLoopPrivate() { sd_event_unref(event_); } std::mutex mutex_; - sd_event *event_; + sd_event *event_ = nullptr; }; EventLoop::EventLoop() : d_ptr(std::make_unique<EventLoopPrivate>()) {} -EventLoop::~EventLoop() {} +EventLoop::~EventLoop() = default; const char *EventLoop::impl() { return "sd-event"; } @@ -227,7 +241,7 @@ sd_event_exit(d->event_, 0); } -int IOEventCallback(sd_event_source *, int fd, uint32_t revents, +int IOEventCallback(sd_event_source * /*unused*/, int fd, uint32_t revents, void *userdata) { auto *source = static_cast<SDEventSourceIO *>(userdata); if (!source) { @@ -249,17 +263,18 @@ FCITX_D(); auto source = std::make_unique<SDEventSourceIO>(std::move(callback)); sd_event_source *sdEventSource; - int err; - if ((err = sd_event_add_io(d->event_, &sdEventSource, fd, - IOEventFlagsToEpollFlags(flags), IOEventCallback, - source.get())) < 0) { + if (int err = sd_event_add_io(d->event_, &sdEventSource, fd, + IOEventFlagsToEpollFlags(flags), + IOEventCallback, source.get()); + err < 0) { throw EventLoopException(err); } source->setEventSource(sdEventSource); return source; } -int TimeEventCallback(sd_event_source *, uint64_t usec, void *userdata) { +int TimeEventCallback(sd_event_source * /*unused*/, uint64_t usec, + void *userdata) { auto *source = static_cast<SDEventSourceTime *>(userdata); if (!source) { return 0; @@ -282,17 +297,16 @@ FCITX_D(); auto source = std::make_unique<SDEventSourceTime>(std::move(callback)); sd_event_source *sdEventSource; - int err; - if ((err = sd_event_add_time(d->event_, &sdEventSource, clock, usec, - accuracy, TimeEventCallback, source.get())) < - 0) { + if (int err = sd_event_add_time(d->event_, &sdEventSource, clock, usec, + accuracy, TimeEventCallback, source.get()); + err < 0) { throw EventLoopException(err); } source->setEventSource(sdEventSource); return source; } -int StaticEventCallback(sd_event_source *, void *userdata) { +int StaticEventCallback(sd_event_source * /*unused*/, void *userdata) { auto *source = static_cast<SDEventSource *>(userdata); if (!source) { return 0; @@ -313,9 +327,9 @@ FCITX_D(); auto source = std::make_unique<SDEventSource>(std::move(callback)); sd_event_source *sdEventSource; - int err; - if ((err = sd_event_add_exit(d->event_, &sdEventSource, StaticEventCallback, - source.get())) < 0) { + if (int err = sd_event_add_exit(d->event_, &sdEventSource, + StaticEventCallback, source.get()); + err < 0) { throw EventLoopException(err); } source->setEventSource(sdEventSource); @@ -326,9 +340,9 @@ FCITX_D(); auto source = std::make_unique<SDEventSource>(std::move(callback)); sd_event_source *sdEventSource; - int err; - if ((err = sd_event_add_defer(d->event_, &sdEventSource, - StaticEventCallback, source.get())) < 0) { + if (int err = sd_event_add_defer(d->event_, &sdEventSource, + StaticEventCallback, source.get()); + err < 0) { throw EventLoopException(err); } source->setEventSource(sdEventSource); @@ -339,9 +353,9 @@ FCITX_D(); auto source = std::make_unique<SDEventSource>(std::move(callback)); sd_event_source *sdEventSource; - int err; - if ((err = sd_event_add_post(d->event_, &sdEventSource, StaticEventCallback, - source.get())) < 0) { + if (int err = sd_event_add_post(d->event_, &sdEventSource, + StaticEventCallback, source.get()); + err < 0) { throw EventLoopException(err); } source->setEventSource(sdEventSource); diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/eventdispatcher.cpp fcitx5-5.1.11/src/lib/fcitx-utils/eventdispatcher.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/eventdispatcher.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/eventdispatcher.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -5,8 +5,6 @@ * */ #include "eventdispatcher.h" -#include <fcntl.h> -#include <unistd.h> #include <mutex> #include <queue> #include <stdexcept> @@ -53,7 +51,7 @@ d->fd_[1].give(selfpipe[1]); } -EventDispatcher::~EventDispatcher() {} +EventDispatcher::~EventDispatcher() = default; void EventDispatcher::attach(EventLoop *event) { FCITX_D(); diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/eventdispatcher.h fcitx5-5.1.11/src/lib/fcitx-utils/eventdispatcher.h --- fcitx5-5.1.7/src/lib/fcitx-utils/eventdispatcher.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/eventdispatcher.h 2024-10-09 03:48:05.000000000 +0800 @@ -11,6 +11,7 @@ #include <functional> #include <memory> #include <fcitx-utils/macros.h> +#include <fcitx-utils/trackableobject.h> #include "fcitxutils_export.h" namespace fcitx { @@ -43,6 +44,7 @@ * thread from event loop. */ void detach(); + /** * A thread-safe function to schedule a functor to be call from event loop. * @@ -55,6 +57,33 @@ void schedule(std::function<void()> functor); /** + * A helper function that allows to only invoke certain function if the + * reference is still valid. + * + * If context object is not valid when calling scheduleWithContext, it won't + * be scheduled at all. + * + * @param context the context object. + * @param functor function to be scheduled + * + * @since 5.1.8 + */ + template <typename T> + void scheduleWithContext(TrackableObjectReference<T> context, + std::function<void()> functor) { + if (!context.isValid()) { + return; + } + + schedule( + [context = std::move(context), functor = std::move(functor)]() { + if (context.isValid()) { + functor(); + } + }); + } + + /** * Return the currently attached event loop * * @since 5.0.11 diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/flags.h fcitx5-5.1.11/src/lib/fcitx-utils/flags.h --- fcitx5-5.1.7/src/lib/fcitx-utils/flags.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/flags.h 2024-10-09 03:48:05.000000000 +0800 @@ -32,7 +32,7 @@ template <typename Enum> class Flags { public: - typedef typename std::underlying_type_t<Enum> storage_type; + using storage_type = typename std::underlying_type_t<Enum>; constexpr Flags(Enum f) : flags_(static_cast<storage_type>(f)) {} explicit Flags(storage_type i = 0) : flags_(i) {} constexpr Flags(const std::initializer_list<Enum> &l) : flags_(0) { diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/fs.cpp fcitx5-5.1.11/src/lib/fcitx-utils/fs.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/fs.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/fs.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,10 +6,10 @@ */ #include "fs.h" -#include <errno.h> #include <sys/stat.h> #include <unistd.h> #include <algorithm> +#include <cerrno> #include "mtime_p.h" #include "standardpath.h" #include "stringutils.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/handlertable.h fcitx5-5.1.11/src/lib/fcitx-utils/handlertable.h --- fcitx5-5.1.7/src/lib/fcitx-utils/handlertable.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/handlertable.h 2024-10-09 03:48:05.000000000 +0800 @@ -9,7 +9,7 @@ #include <functional> #include <unordered_map> -#include <fcitx-utils/handlertable_details.h> +#include <fcitx-utils/handlertable_details.h> // IWYU pragma: export #include <fcitx-utils/intrusivelist.h> namespace fcitx { @@ -48,14 +48,14 @@ template <typename Key, typename T> class MultiHandlerTable { friend class MultiHandlerTableEntry<Key, T>; - typedef std::unordered_map<Key, - IntrusiveListFor<MultiHandlerTableEntry<Key, T>>> - map_type; + using map_type = + std::unordered_map<Key, + IntrusiveListFor<MultiHandlerTableEntry<Key, T>>>; public: MultiHandlerTable(std::function<bool(const Key &)> addKey = {}, std::function<void(const Key &)> removeKey = {}) - : addKey_(addKey), removeKey_(removeKey) {} + : addKey_(std::move(addKey)), removeKey_(std::move(removeKey)) {} FCITX_INLINE_DEFINE_DEFAULT_DTOR_AND_MOVE(MultiHandlerTable) diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/handlertable_details.h fcitx5-5.1.11/src/lib/fcitx-utils/handlertable_details.h --- fcitx5-5.1.7/src/lib/fcitx-utils/handlertable_details.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/handlertable_details.h 2024-10-09 03:48:05.000000000 +0800 @@ -34,7 +34,7 @@ HandlerTableEntry(Args &&...args) : handler_(std::make_shared<std::unique_ptr<T>>( std::make_unique<T>(std::forward<Args>(args)...))) {} - virtual ~HandlerTableEntry() { handler_->reset(); } + ~HandlerTableEntry() override { handler_->reset(); } HandlerTableData<T> handler() const { return handler_; } @@ -49,9 +49,9 @@ ListHandlerTableEntry<T>, &ListHandlerTableEntry<T>::node_>; public: - typedef struct IntrusiveListMemberNodeGetter<ListHandlerTableEntry, - &ListHandlerTableEntry::node_> - node_getter_type; + using node_getter_type = + struct IntrusiveListMemberNodeGetter<ListHandlerTableEntry, + &ListHandlerTableEntry::node_>; template <typename... Args> ListHandlerTableEntry(Args &&...args) @@ -64,7 +64,7 @@ template <typename Key, typename T> class MultiHandlerTableEntry : public HandlerTableEntry<T> { - typedef MultiHandlerTable<Key, T> table_type; + using table_type = MultiHandlerTable<Key, T>; private: table_type *table_; @@ -74,11 +74,12 @@ &MultiHandlerTableEntry::node_>; public: - typedef struct IntrusiveListMemberNodeGetter<MultiHandlerTableEntry, - &MultiHandlerTableEntry::node_> - node_getter_type; + using node_getter_type = + struct IntrusiveListMemberNodeGetter<MultiHandlerTableEntry, + &MultiHandlerTableEntry::node_>; MultiHandlerTableEntry(table_type *table, Key key, T handler) - : HandlerTableEntry<T>(std::move(handler)), table_(table), key_(key) {} + : HandlerTableEntry<T>(std::move(handler)), table_(table), + key_(std::move(key)) {} ~MultiHandlerTableEntry(); }; @@ -106,11 +107,11 @@ class iterator { public: - typedef std::input_iterator_tag iterator_category; - typedef T value_type; - typedef std::ptrdiff_t difference_type; - typedef value_type &reference; - typedef value_type *pointer; + using iterator_category = std::input_iterator_tag; + using value_type = T; + using difference_type = std::ptrdiff_t; + using reference = value_type &; + using pointer = value_type *; iterator(typename container_type::const_iterator iter, typename container_type::const_iterator end) diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/i18n.cpp fcitx5-5.1.11/src/lib/fcitx-utils/i18n.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/i18n.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/i18n.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -9,7 +9,6 @@ #include <string> #include <unordered_set> #include <libintl.h> -#include "fcitxutils_export.h" #include "log.h" #include "standardpath.h" @@ -39,18 +38,15 @@ static GettextManager gettextManager; -FCITXUTILS_EXPORT std::string translate(const std::string &s) { - return translate(s.c_str()); -} +std::string translate(const std::string &s) { return translate(s.c_str()); } -FCITXUTILS_EXPORT const char *translate(const char *s) { return ::gettext(s); } +const char *translate(const char *s) { return ::gettext(s); } -FCITXUTILS_EXPORT std::string translateCtx(const char *ctx, - const std::string &s) { +std::string translateCtx(const char *ctx, const std::string &s) { return translateCtx(ctx, s.c_str()); } -FCITXUTILS_EXPORT const char *translateCtx(const char *ctx, const char *s) { +const char *translateCtx(const char *ctx, const char *s) { auto str = stringutils::concat(ctx, "\004", s); const auto *p = str.c_str(); const auto *result = ::gettext(str.c_str()); @@ -60,24 +56,22 @@ return result; } -FCITXUTILS_EXPORT std::string translateDomain(const char *domain, - const std::string &s) { +std::string translateDomain(const char *domain, const std::string &s) { return translateDomain(domain, s.c_str()); } -FCITXUTILS_EXPORT const char *translateDomain(const char *domain, - const char *s) { +const char *translateDomain(const char *domain, const char *s) { gettextManager.addDomain(domain); return ::dgettext(domain, s); } -FCITXUTILS_EXPORT std::string -translateDomainCtx(const char *domain, const char *ctx, const std::string &s) { +std::string translateDomainCtx(const char *domain, const char *ctx, + const std::string &s) { return translateDomainCtx(domain, ctx, s.c_str()); } -FCITXUTILS_EXPORT const char * -translateDomainCtx(const char *domain, const char *ctx, const char *s) { +const char *translateDomainCtx(const char *domain, const char *ctx, + const char *s) { gettextManager.addDomain(domain); auto str = stringutils::concat(ctx, "\004", s); const auto *p = str.c_str(); @@ -88,7 +82,7 @@ return result; } -FCITXUTILS_EXPORT void registerDomain(const char *domain, const char *dir) { +void registerDomain(const char *domain, const char *dir) { gettextManager.addDomain(domain, dir); } } // namespace fcitx diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/i18n.h fcitx5-5.1.11/src/lib/fcitx-utils/i18n.h --- fcitx5-5.1.7/src/lib/fcitx-utils/i18n.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/i18n.h 2024-10-09 03:48:05.000000000 +0800 @@ -8,21 +8,31 @@ #define _FCITX_UTILS_I18N_H_ #include <string> +#include "fcitxutils_export.h" namespace fcitx { +FCITXUTILS_EXPORT std::string translate(const std::string &s); +FCITXUTILS_EXPORT const char *translate(const char *s); +FCITXUTILS_EXPORT std::string translateCtx(const char *ctx, const std::string &s); +FCITXUTILS_EXPORT const char *translateCtx(const char *ctx, const char *s); +FCITXUTILS_EXPORT std::string translateDomain(const char *domain, const std::string &s); +FCITXUTILS_EXPORT const char *translateDomain(const char *domain, const char *s); +FCITXUTILS_EXPORT std::string translateDomainCtx(const char *domain, const char *ctx, const std::string &s); +FCITXUTILS_EXPORT const char *translateDomainCtx(const char *domain, const char *ctx, const char *s); +FCITXUTILS_EXPORT void registerDomain(const char *domain, const char *dir); } // namespace fcitx diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/i18nstring.cpp fcitx5-5.1.11/src/lib/fcitx-utils/i18nstring.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/i18nstring.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/i18nstring.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -14,9 +14,10 @@ std::string locale = locale_; if (locale == "system") { char *lc = nullptr; - if constexpr (isAndroid()) { + if constexpr (isAndroid() || isApple()) { // bionic doesn't recognize locale other than C or C.UTF-8 // https://android.googlesource.com/platform/bionic/+/refs/tags/android-11.0.0_r48/libc/bionic/locale.cpp#175 + // macOS returns C for setlocale(LC_MESSAGES, nullptr) lc = getenv("FCITX_LOCALE"); } else { lc = setlocale(LC_MESSAGES, nullptr); @@ -40,7 +41,8 @@ size_t languageLength = 0; size_t territoryLength = 0; bool failed = false; - auto i = locale.begin(), e = locale.end(); + auto i = locale.begin(); + auto e = locale.end(); do { while (i != e && !charutils::isspace(*i) && *i != '_' && *i != '.' && *i != '@') { @@ -82,7 +84,7 @@ i++; } } - } while (0); + } while (false); if (failed) { normalizedLocale.clear(); diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/i18nstring.h fcitx5-5.1.11/src/lib/fcitx-utils/i18nstring.h --- fcitx5-5.1.7/src/lib/fcitx-utils/i18nstring.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/i18nstring.h 2024-10-09 03:48:05.000000000 +0800 @@ -15,8 +15,8 @@ namespace fcitx { class FCITXUTILS_EXPORT I18NString { public: - I18NString() {} - virtual ~I18NString() {} + I18NString() = default; + virtual ~I18NString() = default; void set(const std::string &str, const std::string &locale = "") { if (!locale.empty()) { diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/inputbuffer.cpp fcitx5-5.1.11/src/lib/fcitx-utils/inputbuffer.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/inputbuffer.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/inputbuffer.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -5,10 +5,8 @@ * */ #include "inputbuffer.h" -#include <exception> -#include <functional> -#include <numeric> #include <stdexcept> +#include <string_view> #include <vector> #include "fcitx-utils/utf8.h" @@ -73,33 +71,27 @@ bool InputBuffer::typeImpl(const char *s, size_t length) { FCITX_D(); - auto utf8Length = fcitx::utf8::lengthValidated(s, s + length); + std::string_view view(s, length); + auto utf8Length = fcitx::utf8::lengthValidated(view); if (utf8Length == fcitx::utf8::INVALID_LENGTH) { throw std::invalid_argument("Invalid UTF-8 string"); } - if (d->isAsciiOnly() && utf8Length != length) { + if (d->isAsciiOnly() && utf8Length != view.size()) { throw std::invalid_argument( "ascii only buffer only accept ascii only string"); } if (d->maxSize_ && (utf8Length + size() > d->maxSize_)) { return false; } - d->input_.insert(std::next(d->input_.begin(), cursorByChar()), s, - s + length); + d->input_.insert(std::next(d->input_.begin(), cursorByChar()), view.begin(), + view.end()); if (!d->isAsciiOnly()) { - const auto *iter = s; - auto func = [&iter]() { - const auto *next = fcitx::utf8::nextChar(iter); - auto diff = std::distance(iter, next); - iter = next; - return diff; - }; - auto pos = d->cursor_; - while (iter < s + length) { - d->sz_.insert(std::next(d->sz_.begin(), pos), func()); + for (auto chrView : utf8::MakeUTF8StringViewRange(view)) { + d->sz_.insert(std::next(d->sz_.begin(), pos), chrView.size()); pos++; } + d->acc_.resize(d->sz_.size() + 1); auto newDirty = d->cursor_ > 0 ? d->cursor_ - 1 : 0; if (d->accDirty_ > newDirty) { @@ -201,6 +193,11 @@ return {d->acc_[i], d->acc_[i] + d->sz_[i]}; } +std::string_view InputBuffer::viewAt(size_t i) const { + auto [start, end] = rangeAt(i); + return std::string_view(userInput()).substr(start, end - start); +} + uint32_t InputBuffer::charAt(size_t i) const { FCITX_D(); if (i >= size()) { @@ -211,7 +208,7 @@ } d->ensureAccTill(i); return utf8::getChar(d->input_.begin() + d->acc_[i], - d->input_.begin() + d->sz_[i]); + d->input_.begin() + d->acc_[i] + d->sz_[i]); } size_t InputBuffer::sizeAt(size_t i) const { diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/inputbuffer.h fcitx5-5.1.11/src/lib/fcitx-utils/inputbuffer.h --- fcitx5-5.1.7/src/lib/fcitx-utils/inputbuffer.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/inputbuffer.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,9 +7,11 @@ #ifndef _FCITX_UTILS_INPUTBUFFER_H_ #define _FCITX_UTILS_INPUTBUFFER_H_ +#include <cstdint> #include <cstring> #include <memory> #include <string> +#include <string_view> #include <fcitx-utils/flags.h> #include <fcitx-utils/macros.h> #include "fcitxutils_export.h" @@ -83,6 +85,9 @@ /// Byte range for character at position i. std::pair<size_t, size_t> rangeAt(size_t i) const; + // String view for char + std::string_view viewAt(size_t i) const; + /// Byte size at position i. size_t sizeAt(size_t i) const; diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/intrusivelist.h fcitx5-5.1.11/src/lib/fcitx-utils/intrusivelist.h --- fcitx5-5.1.7/src/lib/fcitx-utils/intrusivelist.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/intrusivelist.h 2024-10-09 03:48:05.000000000 +0800 @@ -21,7 +21,7 @@ friend class IntrusiveListBase; public: - IntrusiveListNode() {} + IntrusiveListNode() = default; IntrusiveListNode(const IntrusiveListNode &) = delete; virtual ~IntrusiveListNode() { remove(); } @@ -166,22 +166,21 @@ template <typename T, typename NodeGetter, bool isConst> class IntrusiveListIterator { - typedef IntrusiveList<T, NodeGetter> list_type; - typedef std::conditional_t<isConst, const IntrusiveListNode *, - IntrusiveListNode *> - node_ptr; + using list_type = IntrusiveList<T, NodeGetter>; + using node_ptr = std::conditional_t<isConst, const IntrusiveListNode *, + IntrusiveListNode *>; struct enabler {}; public: - typedef std::bidirectional_iterator_tag iterator_category; - typedef T value_type; - typedef std::ptrdiff_t difference_type; - typedef std::conditional_t<isConst, typename list_type::const_reference, - typename list_type::reference> - reference; - typedef std::conditional_t<isConst, typename list_type::const_pointer, - typename list_type::pointer> - pointer; + using iterator_category = std::bidirectional_iterator_tag; + using value_type = T; + using difference_type = std::ptrdiff_t; + using reference = + std::conditional_t<isConst, typename list_type::const_reference, + typename list_type::reference>; + using pointer = + std::conditional_t<isConst, typename list_type::const_pointer, + typename list_type::pointer>; IntrusiveListIterator() : node(nullptr), nodeGetter(nullptr) {} IntrusiveListIterator(node_ptr node_, const NodeGetter &nodeGetter_) @@ -229,16 +228,16 @@ template <typename T, typename NodeGetter = IntrusiveListTrivialNodeGetter<T>> class IntrusiveList : public IntrusiveListBase { public: - typedef T value_type; - typedef value_type *pointer; - typedef const value_type *const_pointer; - typedef value_type &reference; - typedef const value_type &const_reference; - typedef IntrusiveListIterator<T, NodeGetter, false> iterator; - typedef IntrusiveListIterator<T, NodeGetter, true> const_iterator; - typedef std::reverse_iterator<iterator> reverse_iterator; - typedef std::reverse_iterator<const_iterator> const_reverse_iterator; - typedef std::size_t size_type; + using value_type = T; + using pointer = value_type *; + using const_pointer = const value_type *; + using reference = value_type &; + using const_reference = const value_type &; + using iterator = IntrusiveListIterator<T, NodeGetter, false>; + using const_iterator = IntrusiveListIterator<T, NodeGetter, true>; + using reverse_iterator = std::reverse_iterator<iterator>; + using const_reverse_iterator = std::reverse_iterator<const_iterator>; + using size_type = std::size_t; IntrusiveList(NodeGetter nodeGetter_ = NodeGetter()) : nodeGetter(nodeGetter_) {} diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/key.cpp fcitx5-5.1.11/src/lib/fcitx-utils/key.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/key.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/key.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -470,6 +470,11 @@ Key Key::normalize() const { Key key(*this); + + if (key.sym_ == FcitxKey_ISO_Left_Tab) { + key.sym_ = FcitxKey_Tab; + } + /* key state != 0 */ key.states_ = key.states_ & KeyStates({KeyState::Ctrl_Alt_Shift, KeyState::Super, @@ -495,17 +500,14 @@ if ((key.states_ & KeyState::Shift) && (((Key(key.sym_).isSimple() || keySymToUnicode(key.sym_) != 0) && - key.sym_ != FcitxKey_space && key.sym_ != FcitxKey_Return) || + key.sym_ != FcitxKey_space && key.sym_ != FcitxKey_Return && + key.sym_ != FcitxKey_Tab) || (key.sym_ >= FcitxKey_KP_0 && key.sym_ <= FcitxKey_KP_9))) { key.states_ ^= KeyState::Shift; } } } - if (key.sym_ == FcitxKey_ISO_Left_Tab) { - key.sym_ = FcitxKey_Tab; - } - return key; } @@ -749,7 +751,11 @@ * go well, so it stays as it is. */ if (0x01000000 <= sym && sym <= 0x0110ffff) { - return sym - 0x01000000; + const uint32_t code = sym - 0x01000000; + if (utf8::UCS4IsValid(code)) { + return code; + } + return 0; } /* binary search in table */ @@ -770,7 +776,11 @@ } std::string Key::keySymToUTF8(KeySym sym) { - return utf8::UCS4ToUTF8(keySymToUnicode(sym)); + auto code = keySymToUnicode(sym); + if (!utf8::UCS4IsValid(code)) { + return ""; + } + return utf8::UCS4ToUTF8(code); } std::vector<Key> Key::keyListFromString(const std::string &str) { diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/key.h fcitx5-5.1.11/src/lib/fcitx-utils/key.h --- fcitx5-5.1.7/src/lib/fcitx-utils/key.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/key.h 2024-10-09 03:48:05.000000000 +0800 @@ -24,9 +24,9 @@ namespace fcitx { class Key; -typedef FcitxKeySym KeySym; -typedef Flags<KeyState> KeyStates; -typedef std::vector<Key> KeyList; +using KeySym = FcitxKeySym; +using KeyStates = Flags<KeyState>; +using KeyList = std::vector<Key>; /// Control the behavior of toString function. enum class KeyStringFormat { @@ -200,7 +200,7 @@ /// Convert a key list to string. template <typename Container> static std::string - keyListToString(Container container, + keyListToString(const Container &container, KeyStringFormat format = KeyStringFormat::Portable) { std::string result; bool first = true; @@ -239,7 +239,7 @@ if (idx == c.size()) { return -1; } - return idx; + return static_cast<int>(idx); } private: diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/keynametable.h fcitx5-5.1.11/src/lib/fcitx-utils/keynametable.h --- fcitx5-5.1.7/src/lib/fcitx-utils/keynametable.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/keynametable.h 2024-10-09 03:48:05.000000000 +0800 @@ -8,7 +8,7 @@ #ifndef _FCITX_UTILS_KEYNAMETABLE_H_ #define _FCITX_UTILS_KEYNAMETABLE_H_ - +#include <cstdint> #include <fcitx-utils/macros.h> FCITX_C_DECL_BEGIN diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/keysym.h fcitx5-5.1.11/src/lib/fcitx-utils/keysym.h --- fcitx5-5.1.7/src/lib/fcitx-utils/keysym.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/keysym.h 2024-10-09 03:48:05.000000000 +0800 @@ -14,47 +14,47 @@ /// \brief Key sym related types. #include <cstdint> -#include <fcitx-utils/keysymgen.h> +#include <fcitx-utils/keysymgen.h> // IWYU pragma: export #include <fcitx-utils/macros.h> namespace fcitx { /// \brief KeyState to represent modifier keys. enum class KeyState : uint32_t { NoState = 0, - Shift = 1 << 0, - CapsLock = 1 << 1, - Ctrl = 1 << 2, - Alt = 1 << 3, + Shift = 1U << 0, + CapsLock = 1U << 1, + Ctrl = 1U << 2, + Alt = 1U << 3, Mod1 = Alt, Alt_Shift = Alt | Shift, Ctrl_Shift = Ctrl | Shift, Ctrl_Alt = Ctrl | Alt, Ctrl_Alt_Shift = Ctrl | Alt | Shift, - NumLock = 1 << 4, + NumLock = 1U << 4, Mod2 = NumLock, - Hyper = 1 << 5, + Hyper = 1U << 5, Mod3 = Hyper, - Super = 1 << 6, + Super = 1U << 6, Mod4 = Super, - Mod5 = 1 << 7, - MousePressed = 1 << 8, - HandledMask = 1 << 24, - IgnoredMask = 1 << 25, - Super2 = 1 << 26, // Gtk virtual Super - Hyper2 = 1 << 27, // Gtk virtual Hyper - Meta = 1 << 28, + Mod5 = 1U << 7, + MousePressed = 1U << 8, + HandledMask = 1U << 24, + IgnoredMask = 1U << 25, + Super2 = 1U << 26, // Gtk virtual Super + Hyper2 = 1U << 27, // Gtk virtual Hyper + Meta = 1U << 28, /* * Key state that used internally for virtual key board. * * @since 5.1.0 */ - Virtual = 1u << 29, + Virtual = 1U << 29, /** * Whether a Key Press is from key repetition. * * @since 5.0.4 */ - Repeat = 1u << 31, + Repeat = 1U << 31, UsedMask = 0x5c001fff, SimpleMask = Ctrl_Alt_Shift | Super | Super2 | Hyper | Meta, }; diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/keysymgen.h fcitx5-5.1.11/src/lib/fcitx-utils/keysymgen.h --- fcitx5-5.1.7/src/lib/fcitx-utils/keysymgen.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/keysymgen.h 2024-10-09 03:48:05.000000000 +0800 @@ -13,7 +13,7 @@ FCITX_C_DECL_BEGIN -typedef enum _FcitxKeySym +typedef enum _FcitxKeySym // NOLINT(modernize-use-using) { FcitxKey_None = 0x0, FcitxKey_VoidSymbol = 0xffffff, /* Void symbol */ diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/library.cpp fcitx5-5.1.11/src/lib/fcitx-utils/library.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/library.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/library.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -7,11 +7,11 @@ #include "library.h" #include <dlfcn.h> -#include <errno.h> #include <fcntl.h> #include <sys/mman.h> #include <sys/stat.h> #include <unistd.h> +#include <cerrno> #include <cstring> #include "config.h" #include "misc.h" @@ -21,7 +21,7 @@ class LibraryPrivate { public: - LibraryPrivate(const std::string &path) : path_(path), handle_(nullptr) {} + LibraryPrivate(std::string path) : path_(std::move(path)) {} ~LibraryPrivate() { unload(); } bool unload() { @@ -38,7 +38,7 @@ } std::string path_; - void *handle_; + void *handle_ = nullptr; std::string error_; }; @@ -137,7 +137,7 @@ } void *needunmap = nullptr; void *data = needunmap = - mmap(0, statbuf.st_size, PROT_READ, MAP_PRIVATE, fd, 0); + mmap(nullptr, statbuf.st_size, PROT_READ, MAP_PRIVATE, fd, 0); if (!data) { data = malloc(statbuf.st_size); needfree.reset(data); @@ -160,7 +160,7 @@ if (needunmap) { munmap(needunmap, statbuf.st_size); } - } while (0); + } while (false); close(fd); diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/log.cpp fcitx5-5.1.11/src/lib/fcitx-utils/log.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/log.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/log.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,16 +6,15 @@ */ #include "log.h" -#include <chrono> #include <mutex> #include <type_traits> #include <unordered_set> #include <fmt/format.h> +#include "stringutils.h" + #if FMT_VERSION >= 50300 #include <fmt/chrono.h> #endif -#include "fs.h" -#include "stringutils.h" namespace fcitx { @@ -158,21 +157,20 @@ if (rule == "notimedate") { globalLogConfig.showTimeDate = false; continue; - } else { - auto ruleItem = stringutils::split(rule, "="); - if (ruleItem.size() != 2) { - continue; - } - auto &name = ruleItem[0]; - try { - auto level = std::stoi(ruleItem[1]); - if (validateLogLevel(level)) { - parsedRules.emplace_back(name, - static_cast<LogLevel>(level)); - } - } catch (const std::exception &) { - continue; + } + + auto ruleItem = stringutils::split(rule, "="); + if (ruleItem.size() != 2) { + continue; + } + auto &name = ruleItem[0]; + try { + auto level = std::stoi(ruleItem[1]); + if (validateLogLevel(level)) { + parsedRules.emplace_back(name, static_cast<LogLevel>(level)); } + } catch (const std::exception &) { + continue; } } LogRegistry::instance().setLogRules(parsedRules); @@ -209,12 +207,16 @@ #if FMT_VERSION >= 50300 if (globalLogConfig.showTimeDate) { - auto now = std::chrono::system_clock::now(); - auto floor = std::chrono::floor<std::chrono::seconds>(now); - auto micro = - std::chrono::duration_cast<std::chrono::microseconds>(now - floor); - auto t = fmt::localtime(std::chrono::system_clock::to_time_t(now)); - out_ << fmt::format("{:%F %T}.{:06d}", t, micro.count()) << " "; + try { + auto now = std::chrono::system_clock::now(); + auto floor = std::chrono::floor<std::chrono::seconds>(now); + auto micro = std::chrono::duration_cast<std::chrono::microseconds>( + now - floor); + auto t = fmt::localtime(std::chrono::system_clock::to_time_t(now)); + auto timeString = fmt::format("{:%F %T}.{:06d}", t, micro.count()); + out_ << timeString << " "; + } catch (...) { + } } #endif out_ << filename << ":" << lineNumber << "] "; diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/log.h fcitx5-5.1.11/src/lib/fcitx-utils/log.h --- fcitx5-5.1.7/src/lib/fcitx-utils/log.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/log.h 2024-10-09 03:48:05.000000000 +0800 @@ -12,7 +12,6 @@ /// \file /// \brief Log utilities. -#include <cstdlib> #include <iostream> #include <list> #include <map> diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/macros.h fcitx5-5.1.11/src/lib/fcitx-utils/macros.h --- fcitx5-5.1.7/src/lib/fcitx-utils/macros.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/macros.h 2024-10-09 03:48:05.000000000 +0800 @@ -46,6 +46,8 @@ #define FCITX_WHITESPACE "\f\n\r\t\v " #define FCITX_EXPAND(x) x +#define FCITX_REMOVE_PARENS_(...) __VA_ARGS__ +#define FCITX_REMOVE_PARENS(X) FCITX_REMOVE_PARENS_ X #define FCITX_FOR_EACH_0(...) #define FCITX_FOR_EACH_1(what, x, ...) what(x) @@ -150,15 +152,15 @@ } #define FCITX_DECLARE_READ_ONLY_PROPERTY(TYPE, GETTER) \ - std::conditional_t<std::is_class<TYPE>::value, const TYPE &, TYPE> \ - GETTER() const; + std::conditional_t<std::is_class_v<TYPE>, const TYPE &, TYPE> GETTER() \ + const; #define FCITX_DECLARE_PROPERTY(TYPE, GETTER, SETTER) \ FCITX_DECLARE_READ_ONLY_PROPERTY(TYPE, GETTER) \ void SETTER(TYPE); #define FCITX_DEFINE_READ_ONLY_PROPERTY_PRIVATE(THIS, TYPE, GETTER) \ - std::conditional_t<std::is_class<TYPE>::value, const TYPE &, TYPE> \ + std::conditional_t<std::is_class_v<TYPE>, const TYPE &, TYPE> \ THIS::GETTER() const { \ FCITX_TYPED_D(const THIS##Private); \ return d->GETTER##_; \ diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/metastring.h fcitx5-5.1.11/src/lib/fcitx-utils/metastring.h --- fcitx5-5.1.7/src/lib/fcitx-utils/metastring.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/metastring.h 2024-10-09 03:48:05.000000000 +0800 @@ -19,7 +19,7 @@ template <char... c> struct MetaString final { public: - typedef char const (&array_type)[sizeof...(c) + 1]; + using array_type = char const (&)[sizeof...(c) + 1]; static constexpr std::size_t size() { return size_; } static constexpr const char *data() { return str_; } @@ -45,21 +45,21 @@ template <char... c> struct MetaStringCombine<MetaString<c...>> { - typedef MetaString<c...> type; + using type = MetaString<c...>; }; template <> struct MetaStringCombine<MetaString<'\0'>> { - typedef MetaString<> type; + using type = MetaString<>; }; template <char... c, typename... Rem> struct MetaStringCombine<MetaString<c...>, MetaString<'\0'>, Rem...> { - typedef typename MetaStringCombine<MetaString<c...>>::type type; + using type = typename MetaStringCombine<MetaString<c...>>::type; }; template <char... c, char c2, typename... Rem> struct MetaStringCombine<MetaString<c...>, MetaString<c2>, Rem...> { - typedef typename MetaStringCombine<MetaString<c..., c2>, Rem...>::type type; + using type = typename MetaStringCombine<MetaString<c..., c2>, Rem...>::type; }; template <typename...> @@ -67,18 +67,18 @@ template <> struct ConcatMetaString<MetaString<>> { - typedef MetaString<> type; + using type = MetaString<>; }; template <char... c> struct ConcatMetaString<MetaString<c...>> { - typedef MetaString<c...> type; + using type = MetaString<c...>; }; template <char... c1s, char... c2s, typename... _Rem> struct ConcatMetaString<MetaString<c1s...>, MetaString<c2s...>, _Rem...> { - typedef typename ConcatMetaString<MetaString<c1s..., c2s...>, _Rem...>::type - type; + using type = + typename ConcatMetaString<MetaString<c1s..., c2s...>, _Rem...>::type; }; template <typename... Args> @@ -91,13 +91,13 @@ template <char first, char... next> struct RemoveMetaStringTail<MetaString<first, next...>> { - typedef ConcatMetaStringType<MetaString<first>, - RemoveMetaStringTailType<MetaString<next...>>> - type; + using type = + ConcatMetaStringType<MetaString<first>, + RemoveMetaStringTailType<MetaString<next...>>>; }; template <char first> struct RemoveMetaStringTail<MetaString<first>> { - typedef MetaString<> type; + using type = MetaString<>; }; template <typename... T> @@ -109,27 +109,27 @@ template <> struct MetaStringBasenameHelper<> { - typedef MetaString<> type; + using type = MetaString<>; }; template <char... c> struct MetaStringBasenameHelper<MetaString<c...>> { - typedef MetaString<c...> type; + using type = MetaString<c...>; }; template <char... c> struct MetaStringBasenameHelper<MetaString<'/', c...>> { - typedef MetaStringBasenameHelperType<MetaString<c...>> type; + using type = MetaStringBasenameHelperType<MetaString<c...>>; }; template <char... c, char c2, typename... Rem> struct MetaStringBasenameHelper<MetaString<c...>, MetaString<c2>, Rem...> { - typedef MetaStringBasenameHelperType<MetaString<c..., c2>, Rem...> type; + using type = MetaStringBasenameHelperType<MetaString<c..., c2>, Rem...>; }; template <char... c, typename... Rem> struct MetaStringBasenameHelper<MetaString<c...>, MetaString<'/'>, Rem...> { - typedef MetaStringBasenameHelperType<Rem...> type; + using type = MetaStringBasenameHelperType<Rem...>; }; template <typename T> @@ -145,7 +145,7 @@ template <char... c> struct MetaStringTrim { - typedef typename MetaStringCombine<MetaString<c>...>::type type; + using type = typename MetaStringCombine<MetaString<c>...>::type; }; template <char... c> diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/misc.cpp fcitx5-5.1.11/src/lib/fcitx-utils/misc.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/misc.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/misc.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -10,7 +10,6 @@ #include <fmt/format.h> #include "fcitx-utils/fs.h" #include "fcitx-utils/misc_p.h" -#include "config.h" #include "log.h" #if defined(LIBKVM_FOUND) diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/misc.h fcitx5-5.1.11/src/lib/fcitx-utils/misc.h --- fcitx5-5.1.7/src/lib/fcitx-utils/misc.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/misc.h 2024-10-09 03:48:05.000000000 +0800 @@ -8,7 +8,6 @@ #define _FCITX_UTILS_MISC_H_ #include <unistd.h> -#include <cstdint> #include <cstdio> #include <cstdlib> #include <memory> @@ -49,11 +48,11 @@ template <typename Iter> class KeyIterator { public: - typedef typename Iter::iterator_category iterator_category; - typedef typename Iter::value_type::first_type value_type; - typedef typename Iter::difference_type difference_type; - typedef typename Iter::value_type::first_type &reference; - typedef typename Iter::value_type::first_type *pointer; + using iterator_category = typename Iter::iterator_category; + using value_type = typename Iter::value_type::first_type; + using difference_type = typename Iter::difference_type; + using reference = typename Iter::value_type::first_type &; + using pointer = typename Iter::value_type::first_type *; KeyIterator(Iter iter) : iter_(iter) {} FCITX_INLINE_DEFINE_DEFAULT_DTOR_AND_COPY(KeyIterator) @@ -120,8 +119,9 @@ }; template <typename T, auto FreeFunction = std::free> using UniqueCPtr = std::unique_ptr<T, FunctionDeleter<FreeFunction>>; -static_assert(sizeof(char *) == sizeof(UniqueCPtr<char>), - ""); // ensure no overhead +static_assert( + sizeof(char *) == sizeof(UniqueCPtr<char>), + "UniqueCPtr size is not same as raw pointer."); // ensure no overhead using UniqueFilePtr = std::unique_ptr<FILE, FunctionDeleter<std::fclose>>; diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/misc_p.h fcitx5-5.1.11/src/lib/fcitx-utils/misc_p.h --- fcitx5-5.1.7/src/lib/fcitx-utils/misc_p.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/misc_p.h 2024-10-09 03:48:05.000000000 +0800 @@ -38,7 +38,7 @@ template <typename T> class OrderedSet { - typedef std::list<T> OrderList; + using OrderList = std::list<T>; public: auto begin() { return order_.begin(); } @@ -51,6 +51,7 @@ bool empty() const { return order_.empty(); } const T &front() const { return order_.front(); } + T &front() { return order_.front(); } void clear() { dict_.clear(); @@ -134,20 +135,20 @@ std::unordered_map<K, typename decltype(order_)::iterator, Hash, Pred> map_; public: - typedef decltype(map_) map_type; - typedef decltype(order_) list_type; - typedef typename map_type::key_type key_type; - typedef typename list_type::value_type value_type; - typedef typename value_type::second_type mapped_type; - - typedef typename list_type::pointer pointer; - typedef typename list_type::const_pointer const_pointer; - typedef typename list_type::reference reference; - typedef typename list_type::const_reference const_reference; - typedef typename list_type::iterator iterator; - typedef typename list_type::const_iterator const_iterator; - typedef typename list_type::size_type size_type; - typedef typename list_type::difference_type difference_type; + using map_type = decltype(map_); + using list_type = decltype(order_); + using key_type = typename map_type::key_type; + using value_type = typename list_type::value_type; + using mapped_type = typename value_type::second_type; + + using pointer = typename list_type::pointer; + using const_pointer = typename list_type::const_pointer; + using reference = typename list_type::reference; + using const_reference = typename list_type::const_reference; + using iterator = typename list_type::iterator; + using const_iterator = typename list_type::const_iterator; + using size_type = typename list_type::size_type; + using difference_type = typename list_type::difference_type; OrderedMap() = default; OrderedMap(const OrderedMap &other) : order_(other.order_) { fillMap(); } @@ -308,7 +309,7 @@ template <typename T> static inline uint32_t FromLittleEndian32(const T *d) { - const uint8_t *data = reinterpret_cast<const uint8_t *>(d); + const auto *data = reinterpret_cast<const uint8_t *>(d); uint32_t t; memcpy(&t, data, sizeof(t)); return le32toh(t); diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/rect.h fcitx5-5.1.11/src/lib/fcitx-utils/rect.h --- fcitx5-5.1.7/src/lib/fcitx-utils/rect.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/rect.h 2024-10-09 03:48:05.000000000 +0800 @@ -14,6 +14,7 @@ #include <algorithm> #include <ostream> +#include <utility> #include "fcitxutils_export.h" namespace fcitx { @@ -54,7 +55,12 @@ return *this; } + // FIXME: remove this. inline Rect intersected(const Rect &rect) noexcept { + return std::as_const(*this).intersected(rect); + } + + inline Rect intersected(const Rect &rect) const noexcept { Rect tmp; tmp.x1_ = std::max(x1_, rect.x1_); tmp.x2_ = std::min(x2_, rect.x2_); diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/semver.cpp fcitx5-5.1.11/src/lib/fcitx-utils/semver.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/semver.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/semver.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -7,6 +7,7 @@ #include "semver.h" #include <charconv> +#include <string> #include <fmt/format.h> #include "charutils.h" #include "misc.h" @@ -14,13 +15,15 @@ namespace fcitx { +namespace { + bool isIdChar(char c) { return charutils::islower(c) || charutils::isupper(c) || c == '-' || charutils::isdigit(c) || c == '.'; } std::optional<uint32_t> consumeNumericIdentifier(std::string_view &str) { - auto endOfNum = + const auto *endOfNum = std::find_if_not(str.begin(), str.end(), charutils::isdigit); auto length = std::distance(str.begin(), endOfNum); if (length == 0) { @@ -44,7 +47,8 @@ std::optional<std::vector<PreReleaseId>> consumePrereleaseIds(std::string_view &data) { std::vector<PreReleaseId> preReleaseIds; - auto endOfVersion = std::find_if_not(data.begin(), data.end(), isIdChar); + std::string_view::const_iterator endOfVersion = + std::find_if_not(data.begin(), data.end(), isIdChar); auto length = std::distance(data.begin(), endOfVersion); auto idString = data.substr(0, length); auto ids = stringutils::split(idString, ".", @@ -85,6 +89,10 @@ return std::nullopt; } +const std::string kEmptyString; + +} // namespace + PreReleaseId::PreReleaseId(uint32_t id) : value_(id) {} PreReleaseId::PreReleaseId(std::string id) : value_(std::move(id)) {} @@ -104,19 +112,30 @@ return isNum ? -1 : 1; } if (isNum && otherIsNum) { - return numericId() - other.numericId(); + if (numericId() == other.numericId()) { + return 0; + } + return numericId() < other.numericId() ? -1 : 1; } return id().compare(other.id()); } -const std::string &PreReleaseId::id() const { - return std::get<std::string>(value_); +const std::string &PreReleaseId::id() const noexcept { + if (const auto *value = std::get_if<std::string>(&value_)) { + return *value; + } + return kEmptyString; } -uint32_t PreReleaseId::numericId() const { return std::get<uint32_t>(value_); } +uint32_t PreReleaseId::numericId() const noexcept { + if (const auto *value = std::get_if<uint32_t>(&value_)) { + return *value; + } + return 0; +} -bool PreReleaseId::isNumeric() const { +bool PreReleaseId::isNumeric() const noexcept { return std::holds_alternative<uint32_t>(value_); } @@ -234,15 +253,15 @@ int SemanticVersion::compare(const SemanticVersion &other) const noexcept { if (major_ != other.major_) { - return major_ - other.major_; + return major_ < other.major_ ? -1 : 1; } if (minor_ != other.minor_) { - return minor_ - other.minor_; + return minor_ < other.minor_ ? -1 : 1; } if (patch_ != other.patch_) { - return patch_ - other.patch_; + return patch_ < other.patch_ ? -1 : 1; } bool preRelease = isPreRelease(); @@ -265,8 +284,10 @@ } } - return static_cast<ssize_t>(preReleaseIds_.size()) - - static_cast<ssize_t>(other.preReleaseIds_.size()); + if (preReleaseIds_.size() == other.preReleaseIds_.size()) { + return 0; + } + return preReleaseIds_.size() < other.preReleaseIds_.size() ? -1 : 1; } } // namespace fcitx diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/semver.h fcitx5-5.1.11/src/lib/fcitx-utils/semver.h --- fcitx5-5.1.7/src/lib/fcitx-utils/semver.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/semver.h 2024-10-09 03:48:05.000000000 +0800 @@ -27,9 +27,9 @@ std::string toString() const; - bool isNumeric() const; - uint32_t numericId() const; - const std::string &id() const; + bool isNumeric() const noexcept; + uint32_t numericId() const noexcept; + const std::string &id() const noexcept; int compare(const PreReleaseId &other) const noexcept; diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/signals.h fcitx5-5.1.11/src/lib/fcitx-utils/signals.h --- fcitx5-5.1.7/src/lib/fcitx-utils/signals.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/signals.h 2024-10-09 03:48:05.000000000 +0800 @@ -16,7 +16,7 @@ #include <fcitx-utils/handlertable.h> #include <fcitx-utils/intrusivelist.h> #include <fcitx-utils/macros.h> -#include <fcitx-utils/signals_details.h> +#include <fcitx-utils/signals_details.h> // IWYU pragma: export #include <fcitx-utils/trackableobject.h> #include <fcitx-utils/tuplehelpers.h> @@ -44,7 +44,7 @@ template <> class LastValue<void> { public: - LastValue() {} + LastValue() = default; template <typename InputIterator> void operator()(InputIterator begin, InputIterator end) { for (; begin != end; begin++) { @@ -57,7 +57,7 @@ /// connection. class Connection { public: - Connection() {} + Connection() = default; explicit Connection(TrackableObjectReference<ConnectionBody> body) : body_(std::move(body)) {} @@ -92,7 +92,7 @@ ScopedConnection(Connection &&other) noexcept : Connection(std::move(other)) {} ScopedConnection(const ScopedConnection &) = delete; - ScopedConnection() {} + ScopedConnection() = default; ScopedConnection &operator=(ScopedConnection &&other) noexcept { if (&other == this) { @@ -134,11 +134,11 @@ }; public: - typedef Ret return_type; - typedef Ret function_type(Args...); + using return_type = Ret; + using function_type = Ret(Args...); Signal(Combiner combiner = Combiner()) : d_ptr(std::make_unique<SignalData>(std::move(combiner))) {} - virtual ~Signal() { + ~Signal() override { if (d_ptr) { disconnectAll(); } diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/signals_details.h fcitx5-5.1.11/src/lib/fcitx-utils/signals_details.h --- fcitx5-5.1.7/src/lib/fcitx-utils/signals_details.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/signals_details.h 2024-10-09 03:48:05.000000000 +0800 @@ -23,7 +23,7 @@ Invoker(Args &...args) : args_(args...) {} template <typename Func> - Ret operator()(Func &func) { + Ret operator()(const Func &func) { return callWithTuple(func, args_); } @@ -37,14 +37,14 @@ template <typename Ret, typename... Args> class SlotInvokeIterator<std::function<Ret(Args...)>> { public: - typedef std::input_iterator_tag iterator_category; - typedef std::function<Ret(Args...)> function_type; - typedef typename function_type::result_type value_type; - typedef std::ptrdiff_t difference_type; - typedef value_type reference; - typedef typename HandlerTableView<function_type>::iterator super_iterator; - typedef SlotInvokeIterator iterator; - typedef Invoker<Ret, Args...> invoker_type; + using iterator_category = std::input_iterator_tag; + using function_type = std::function<Ret(Args...)>; + using value_type = typename function_type::result_type; + using difference_type = std::ptrdiff_t; + using reference = value_type; + using super_iterator = typename HandlerTableView<function_type>::iterator; + using iterator = SlotInvokeIterator; + using invoker_type = Invoker<Ret, Args...>; SlotInvokeIterator(invoker_type &invoker, super_iterator iter) : parentIter_(iter), invoker_(invoker) {} @@ -91,7 +91,7 @@ ConnectionBody(std::unique_ptr<HandlerTableEntry<T>> entry) : entry_(std::move(entry)) {} - virtual ~ConnectionBody() { remove(); } + ~ConnectionBody() override { remove(); } private: std::unique_ptr<HandlerTableEntryBase> entry_; diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/standardpath.cpp fcitx5-5.1.11/src/lib/fcitx-utils/standardpath.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/standardpath.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/standardpath.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -8,17 +8,31 @@ #include "standardpath.h" #include <dirent.h> #include <fcntl.h> -#include <string.h> #include <sys/stat.h> +#include <sys/types.h> #include <unistd.h> #include <algorithm> #include <atomic> +#include <cstdint> +#include <cstdio> +#include <cstdlib> +#include <cstring> +#include <exception> +#include <functional> +#include <map> +#include <memory> #include <stdexcept> +#include <string> +#include <string_view> +#include <tuple> #include <unordered_map> #include <unordered_set> +#include <utility> #include <vector> #include "config.h" #include "fs.h" +#include "macros.h" +#include "misc.h" #include "misc_p.h" #include "stringutils.h" @@ -26,6 +40,10 @@ #include <paths.h> #endif +#ifndef O_ACCMODE +#define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR) +#endif + namespace fcitx { namespace { @@ -34,16 +52,16 @@ } std::string constructPath(const std::string &basepath, - const std::string &path) { + const std::string &subpath) { if (basepath.empty()) { return {}; } - return fs::cleanPath(stringutils::joinPath(basepath, path)); + return fs::cleanPath(stringutils::joinPath(basepath, subpath)); } } // namespace -StandardPathFile::~StandardPathFile() {} +StandardPathFile::~StandardPathFile() = default; int StandardPathFile::release() { return fd_.release(); } @@ -72,40 +90,51 @@ class StandardPathPrivate { public: - StandardPathPrivate(bool skipFcitxPath, bool skipUserPath) - : skipUserPath_(skipUserPath) { + StandardPathPrivate( + const std::string &packageName, + const std::unordered_map<std::string, std::string> &builtInPathMap, + bool skipBuiltInPath, bool skipUserPath) + : skipBuiltInPath_(skipBuiltInPath), skipUserPath_(skipUserPath) { + bool isFcitx = (packageName == "fcitx5"); // initialize user directory configHome_ = defaultPath("XDG_CONFIG_HOME", ".config"); - pkgconfigHome_ = defaultPath( - "FCITX_CONFIG_HOME", constructPath(configHome_, "fcitx5").c_str()); - configDirs_ = defaultPaths("XDG_CONFIG_DIRS", "/etc/xdg", nullptr); + pkgconfigHome_ = + defaultPath((isFcitx ? "FCITX_CONFIG_HOME" : nullptr), + constructPath(configHome_, packageName).c_str()); + configDirs_ = defaultPaths("XDG_CONFIG_DIRS", "/etc/xdg", + builtInPathMap, nullptr); auto pkgconfigDirFallback = configDirs_; for (auto &path : pkgconfigDirFallback) { - path = constructPath(path, "fcitx5"); + path = constructPath(path, packageName); } - pkgconfigDirs_ = defaultPaths( - "FCITX_CONFIG_DIRS", - stringutils::join(pkgconfigDirFallback, ":").c_str(), nullptr); + pkgconfigDirs_ = + defaultPaths((isFcitx ? "FCITX_CONFIG_DIRS" : nullptr), + stringutils::join(pkgconfigDirFallback, ":").c_str(), + builtInPathMap, nullptr); dataHome_ = defaultPath("XDG_DATA_HOME", ".local/share"); - pkgdataHome_ = defaultPath("FCITX_DATA_HOME", - constructPath(dataHome_, "fcitx5").c_str()); + pkgdataHome_ = + defaultPath((isFcitx ? "FCITX_DATA_HOME" : nullptr), + constructPath(dataHome_, packageName).c_str()); dataDirs_ = defaultPaths("XDG_DATA_DIRS", "/usr/local/share:/usr/share", - skipFcitxPath ? nullptr : "datadir"); + builtInPathMap, + skipBuiltInPath_ ? nullptr : "datadir"); auto pkgdataDirFallback = dataDirs_; for (auto &path : pkgdataDirFallback) { - path = constructPath(path, "fcitx5"); + path = constructPath(path, packageName); } - pkgdataDirs_ = - defaultPaths("FCITX_DATA_DIRS", - stringutils::join(pkgdataDirFallback, ":").c_str(), - skipFcitxPath ? nullptr : "pkgdatadir"); + pkgdataDirs_ = defaultPaths( + (isFcitx ? "FCITX_DATA_DIRS" : nullptr), + stringutils::join(pkgdataDirFallback, ":").c_str(), builtInPathMap, + skipBuiltInPath_ ? nullptr : "pkgdatadir"); cacheHome_ = defaultPath("XDG_CACHE_HOME", ".cache"); const char *tmpdir = getenv("TMPDIR"); runtimeDir_ = defaultPath("XDG_RUNTIME_DIR", !tmpdir || !tmpdir[0] ? "/tmp" : tmpdir); - addonDirs_ = - defaultPaths("FCITX_ADDON_DIRS", FCITX_INSTALL_ADDONDIR, nullptr); + // Though theoratically, this is also fcitxPath, we just simply don't + // use it here. + addonDirs_ = defaultPaths("FCITX_ADDON_DIRS", FCITX_INSTALL_ADDONDIR, + builtInPathMap, nullptr); syncUmask(); } @@ -150,6 +179,7 @@ } bool skipUser() const { return skipUserPath_; } + bool skipBuiltIn() const { return skipBuiltInPath_; } void syncUmask() { // read umask, use 022 which is likely the default value, so less likely @@ -165,7 +195,10 @@ private: // http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html static std::string defaultPath(const char *env, const char *defaultPath) { - char *cdir = getenv(env); + char *cdir = nullptr; + if (env) { + cdir = getenv(env); + } std::string dir; if (cdir && cdir[0]) { dir = cdir; @@ -178,7 +211,7 @@ } dir = stringutils::joinPath(home, defaultPath); } else { - if (strcmp(env, "XDG_RUNTIME_DIR") == 0) { + if (env && strcmp(env, "XDG_RUNTIME_DIR") == 0) { dir = stringutils::joinPath( defaultPath, stringutils::concat("fcitx-runtime-", geteuid())); @@ -193,7 +226,7 @@ } } - if (!dir.empty() && strcmp(env, "XDG_RUNTIME_DIR") == 0) { + if (!dir.empty() && env && strcmp(env, "XDG_RUNTIME_DIR") == 0) { struct stat buf; if (stat(dir.c_str(), &buf) != 0 || buf.st_uid != geteuid() || (buf.st_mode & 0777) != S_IRWXU) { @@ -203,12 +236,16 @@ return dir; } - static std::vector<std::string> defaultPaths(const char *env, - const char *defaultPath, - const char *fcitxPath) { + static std::vector<std::string> defaultPaths( + const char *env, const char *defaultPath, + const std::unordered_map<std::string, std::string> &builtInPathMap, + const char *builtInPathType) { std::vector<std::string> dirs; - const char *dir = getenv(env); + const char *dir = nullptr; + if (env) { + dir = getenv(env); + } if (!dir) { dir = defaultPath; } @@ -227,9 +264,15 @@ dirs.push_back(s); } } - if (fcitxPath) { - std::string path = - fs::cleanPath(StandardPath::fcitxPath(fcitxPath)); + if (builtInPathType) { + std::string builtInPath; + if (const auto *value = + findValue(builtInPathMap, builtInPathType)) { + builtInPath = *value; + } else { + builtInPath = StandardPath::fcitxPath(builtInPathType); + } + std::string path = fs::cleanPath(builtInPath); if (!path.empty() && std::find(dirs.begin(), dirs.end(), path) == dirs.end()) { dirs.push_back(path); @@ -239,6 +282,7 @@ return dirs; } + bool skipBuiltInPath_; bool skipUserPath_; std::string configHome_; std::vector<std::string> configDirs_; @@ -254,14 +298,20 @@ std::atomic<mode_t> umask_; }; +StandardPath::StandardPath( + const std::string &packageName, + const std::unordered_map<std::string, std::string> &builtInPath, + bool skipBuiltInPath, bool skipUserPath) + : d_ptr(std::make_unique<StandardPathPrivate>( + packageName, builtInPath, skipBuiltInPath, skipUserPath)) {} + StandardPath::StandardPath(bool skipFcitxPath, bool skipUserPath) - : d_ptr( - std::make_unique<StandardPathPrivate>(skipFcitxPath, skipUserPath)) {} + : StandardPath("fcitx5", {}, skipFcitxPath, skipUserPath) {} StandardPath::StandardPath(bool skipFcitxPath) : StandardPath(skipFcitxPath, false) {} -StandardPath::~StandardPath() {} +StandardPath::~StandardPath() = default; const StandardPath &StandardPath::global() { bool skipFcitx = checkBoolEnvVar("SKIP_FCITX_PATH"); @@ -404,11 +454,11 @@ } else { scanDirectories(type, [&retPath, &path](const std::string &dirPath, bool) { - auto fullPath = constructPath(dirPath, path); + std::string fullPath = constructPath(dirPath, path); if (!fs::isreg(fullPath)) { return true; } - retPath = fullPath; + retPath = std::move(fullPath); return false; }); } @@ -454,7 +504,7 @@ return true; } retFD = fd; - fdPath = fullPath; + fdPath = std::move(fullPath); return false; }); } @@ -510,7 +560,7 @@ return true; } retFD = fd; - fdPath = fullPath; + fdPath = std::move(fullPath); return false; }); } @@ -544,9 +594,10 @@ StandardPathTempFile StandardPath::openUserTemp(Type type, const std::string &pathOrig) const { std::string path = pathOrig + "_XXXXXX"; - std::string fullPath, fullPathOrig; + std::string fullPath; + std::string fullPathOrig; if (isAbsolutePath(pathOrig)) { - fullPath = path; + fullPath = std::move(path); fullPathOrig = pathOrig; } else { auto dirPath = userDirectory(type); @@ -557,10 +608,11 @@ fullPathOrig = constructPath(dirPath, pathOrig); } if (fs::makePath(fs::dirName(fullPath))) { - auto cPath = makeUniqueCPtr(strdup(fullPath.c_str())); - int fd = mkstemp(cPath.get()); + std::vector<char> cPath(fullPath.data(), + fullPath.data() + fullPath.size() + 1); + int fd = mkstemp(cPath.data()); if (fd >= 0) { - return {fd, fullPathOrig, cPath.get()}; + return {fd, fullPathOrig, cPath.data()}; } } return {}; @@ -586,6 +638,27 @@ return false; } +std::map<std::string, std::string> StandardPath::locateWithFilter( + Type type, const std::string &path, + std::function<bool(const std::string &path, const std::string &dir, + bool user)> + filter) const { + std::map<std::string, std::string> result; + scanFiles(type, path, + [&result, &filter](const std::string &path, + const std::string &dir, bool isUser) { + if (!result.count(path) && filter(path, dir, isUser)) { + auto fullPath = constructPath(dir, path); + if (fs::isreg(fullPath)) { + result.emplace(path, std::move(fullPath)); + } + } + return true; + }); + + return result; +} + StandardPathFileMap StandardPath::multiOpenFilter( Type type, const std::string &path, int flags, std::function<bool(const std::string &path, const std::string &dir, @@ -691,4 +764,14 @@ void StandardPath::syncUmask() const { d_ptr->syncUmask(); } +bool StandardPath::skipBuiltInPath() const { + FCITX_D(); + return d->skipBuiltIn(); +} + +bool StandardPath::skipUserPath() const { + FCITX_D(); + return d->skipUser(); +} + } // namespace fcitx diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/standardpath.h fcitx5-5.1.11/src/lib/fcitx-utils/standardpath.h --- fcitx5-5.1.7/src/lib/fcitx-utils/standardpath.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/standardpath.h 2024-10-09 03:48:05.000000000 +0800 @@ -19,12 +19,14 @@ /// \endcode /// Open all files under $XDG_CONFIG_{HOME,DIRS}/fcitx5/inputmethod/*.conf. +#include <cstdint> #include <functional> #include <map> #include <memory> #include <string> +#include <unordered_map> #include <vector> -#include <fcitx-utils/flags.h> +#include <fcitx-utils/log.h> #include <fcitx-utils/macros.h> #include <fcitx-utils/stringutils.h> #include <fcitx-utils/unixfd.h> @@ -41,17 +43,19 @@ template <> class Chainer<> { public: - bool operator()(const std::string &, const std::string &, bool) { + bool operator()(const std::string & /*unused*/, + const std::string & /*unused*/, bool /*unused*/) { return true; } }; template <typename First, typename... Rest> class Chainer<First, Rest...> : Chainer<Rest...> { - typedef Chainer<Rest...> super_class; + using super_class = Chainer<Rest...>; public: - Chainer(First first, Rest... rest) : super_class(rest...), filter(first) {} + Chainer(First first, Rest... rest) + : super_class(std::move(rest)...), filter(std::move(first)) {} bool operator()(const std::string &path, const std::string &dir, bool user) { @@ -86,7 +90,8 @@ /// \brief Filter class that filters based on user file. struct FCITXUTILS_EXPORT User { - bool operator()(const std::string &, const std::string &, bool isUser) { + bool operator()(const std::string & /*unused*/, + const std::string & /*unused*/, bool isUser) { return isUser; } }; @@ -95,7 +100,8 @@ struct FCITXUTILS_EXPORT Prefix { Prefix(const std::string &prefix_) : prefix(prefix_) {} - bool operator()(const std::string &path, const std::string &, bool) const { + bool operator()(const std::string &path, const std::string & /*unused*/, + bool /*unused*/) const { return stringutils::startsWith(path, prefix); } @@ -106,7 +112,8 @@ struct FCITXUTILS_EXPORT Suffix { Suffix(const std::string &suffix_) : suffix(suffix_) {} - bool operator()(const std::string &path, const std::string &, bool) const { + bool operator()(const std::string &path, const std::string & /*unused*/, + bool /*unused*/) const { return stringutils::endsWith(path, suffix); } @@ -165,9 +172,9 @@ class StandardPathPrivate; -typedef std::map<std::string, StandardPathFile> StandardPathFileMap; -typedef std::map<std::string, std::vector<StandardPathFile>> - StandardPathFilesMap; +using StandardPathFileMap = std::map<std::string, StandardPathFile>; +using StandardPathFilesMap = + std::map<std::string, std::vector<StandardPathFile>>; /// \brief Utility class to open, locate, list files based on XDG standard. class FCITXUTILS_EXPORT StandardPath { @@ -190,6 +197,20 @@ PkgData }; + /** + * Allow to construct a StandardPath with customized internal value. + * + * @param packageName the sub directory under other paths. + * @param builtInPath this will override the value from fcitxPath. + * @param skipBuiltInPath skip built-in path + * @param skipUserPath skip user path, useful when doing readonly-test. + * @since 5.1.9 + */ + StandardPath( + const std::string &packageName, + const std::unordered_map<std::string, std::string> &builtInPath, + bool skipBuiltInPath, bool skipUserPath); + StandardPath(bool skipFcitxPath, bool skipUserPath); StandardPath(bool skipFcitxPath = false); virtual ~StandardPath(); @@ -283,9 +304,41 @@ bool safeSave(Type type, const std::string &pathOrig, const std::function<bool(int)> &callback) const; + /** + * \brief Locate all files match the filter under first [directory]/[path]. + * + * Prefer this function over multiOpenFilter, if there could be too many + * files that exceeds the systems file descriptor limit. + * @since 5.1.10 + * @see multiOpenFilter + */ + std::map<std::string, std::string> + locateWithFilter(Type type, const std::string &path, + std::function<bool(const std::string &path, + const std::string &dir, bool user)> + filter) const; + + /** + * \brief Locate all files match the filter under first [directory]/[path]. + * + * You may pass multiple filter to it. + * Prefer this function over multiOpen, if there could be too many + * files that exceeds the systems file descriptor limit. + * @since 5.1.10 + * @see multiOpen + */ + template <typename Arg1, typename... Args> + std::map<std::string, std::string> + locate(Type type, const std::string &path, Arg1 arg1, Args... args) const { + return locateWithFilter(type, path, + filter::Chainer<Arg1, Args...>( + std::move(arg1), std::move(args)...)); + } + /// \brief Open all files match the first [directory]/[path]. std::vector<StandardPathFile> openAll(Type type, const std::string &path, int flags) const; + /// \brief Open all files match the filter under first [directory]/[path]. StandardPathFileMap multiOpenFilter(Type type, const std::string &path, int flags, @@ -300,7 +353,7 @@ StandardPathFileMap multiOpen(Type type, const std::string &path, int flags, Args... args) const { return multiOpenFilter(type, path, flags, - filter::Chainer<Args...>(args...)); + filter::Chainer<Args...>(std::move(args)...)); } /// \brief Open all files match the filter under all [directory]/[path]. @@ -349,6 +402,24 @@ */ void syncUmask() const; + /** + * Whether this StandardPath is configured to Skip built-in path. + * + * Built-in path is usually configured at build time, hardcoded. + * In portable environment (Install prefix is not fixed), this should be + * set to false. + * + * @since 5.1.9 + */ + bool skipBuiltInPath() const; + + /** + * Whether this StandardPath is configured to Skip user path. + * + * @since 5.1.9 + */ + bool skipUserPath() const; + private: std::unique_ptr<StandardPathPrivate> d_ptr; FCITX_DECLARE_PRIVATE(StandardPath); diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/stringutils.cpp fcitx5-5.1.11/src/lib/fcitx-utils/stringutils.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/stringutils.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/stringutils.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -125,14 +125,11 @@ } FCITXUTILS_DEPRECATED_EXPORT -std::string trim(const std::string &str) { - auto pair = trimInplaceImpl(str); - return std::string(str.begin() + pair.first, str.begin() + pair.second); -} +std::string trim(const std::string &str) { return trim(std::string_view(str)); } std::string trim(std::string_view str) { auto pair = trimInplaceImpl(str); - return std::string(str.begin() + pair.first, str.begin() + pair.second); + return {str.begin() + pair.first, str.begin() + pair.second}; } std::string_view trimView(std::string_view str) { @@ -149,7 +146,8 @@ std::vector<std::string> split(std::string_view str, std::string_view delim, SplitBehavior behavior) { std::vector<std::string> strings; - std::string::size_type lastPos, pos; + std::string::size_type lastPos; + std::string::size_type pos; if (behavior == SplitBehavior::SkipEmpty) { lastPos = str.find_first_not_of(delim, 0); } else { @@ -284,7 +282,8 @@ const unsigned int ol_minus_1 = ol - 1; const char *n = needle + ol_minus_1; const char *h = haystack + ol_minus_1; - unsigned int hashNeedle = 0, hashHaystack = 0; + unsigned int hashNeedle = 0; + unsigned int hashHaystack = 0; size_t idx; for (idx = 0; idx < ol; ++idx) { hashNeedle = ((hashNeedle << 1) + *(n - idx)); diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/stringutils.h fcitx5-5.1.11/src/lib/fcitx-utils/stringutils.h --- fcitx5-5.1.7/src/lib/fcitx-utils/stringutils.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/stringutils.h 2024-10-09 03:48:05.000000000 +0800 @@ -22,8 +22,7 @@ #include "fcitxutils_export.h" #include "stringutils_details.h" -namespace fcitx { -namespace stringutils { +namespace fcitx::stringutils { /// \brief Check if a string starts with a prefix. FCITXUTILS_EXPORT bool startsWith(std::string_view str, @@ -183,7 +182,6 @@ */ FCITXUTILS_EXPORT std::string escapeForValue(std::string_view str); -} // namespace stringutils -} // namespace fcitx +} // namespace fcitx::stringutils #endif // _FCITX_UTILS_STRINGUTILS_H_ diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/testing.cpp fcitx5-5.1.11/src/lib/fcitx-utils/testing.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/testing.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/testing.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -9,9 +9,11 @@ #include "standardpath.h" #include "stringutils.h" -void fcitx::setupTestingEnvironment(const std::string &testBinaryDir, - const std::vector<std::string> &addonDirs, - const std::vector<std::string> &dataDirs) { +namespace fcitx { + +void setupTestingEnvironment(const std::string &testBinaryDir, + const std::vector<std::string> &addonDirs, + const std::vector<std::string> &dataDirs) { // Skip resolution with fcitxPath setenv("SKIP_FCITX_PATH", "1", 1); setenv("SKIP_FCITX_USER_PATH", "1", 1); @@ -53,3 +55,5 @@ fullDataDirs.push_back(StandardPath::fcitxPath("pkgdatadir", "testing")); setenv("FCITX_DATA_DIRS", stringutils::join(fullDataDirs, ":").data(), 1); } + +} // namespace fcitx \ No newline at end of file diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/textformatflags.h fcitx5-5.1.11/src/lib/fcitx-utils/textformatflags.h --- fcitx5-5.1.7/src/lib/fcitx-utils/textformatflags.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/textformatflags.h 2024-10-09 03:48:05.000000000 +0800 @@ -27,7 +27,7 @@ NoFlag = 0, }; -typedef Flags<TextFormatFlag> TextFormatFlags; +using TextFormatFlags = Flags<TextFormatFlag>; } // namespace fcitx #endif // _FCITX_UTILS_TEXTFORMATFLAGS_H_ diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/trackableobject.h fcitx5-5.1.11/src/lib/fcitx-utils/trackableobject.h --- fcitx5-5.1.7/src/lib/fcitx-utils/trackableobject.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/trackableobject.h 2024-10-09 03:48:05.000000000 +0800 @@ -71,7 +71,7 @@ : self_(std::make_unique<std::shared_ptr<bool>>( std::make_shared<bool>())) {} TrackableObject(const TrackableObject &) = delete; - virtual ~TrackableObject() {} + virtual ~TrackableObject() = default; TrackableObjectReference<T> watch() { return TrackableObjectReference<T>(*self_, static_cast<T *>(this)); diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/tuplehelpers.h fcitx5-5.1.11/src/lib/fcitx-utils/tuplehelpers.h --- fcitx5-5.1.7/src/lib/fcitx-utils/tuplehelpers.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/tuplehelpers.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,6 +7,7 @@ #ifndef _FCITX_UTILS_COMBINETUPLES_H_ #define _FCITX_UTILS_COMBINETUPLES_H_ +#include <functional> #include <tuple> namespace fcitx { @@ -16,23 +17,23 @@ template <> struct CombineTuples<> { - typedef std::tuple<> type; + using type = std::tuple<>; }; template <typename _T1, typename... _Rem> struct CombineTuples<_T1, _Rem...> { - typedef typename CombineTuples<std::tuple<_T1>, _Rem...>::type type; + using type = typename CombineTuples<std::tuple<_T1>, _Rem...>::type; }; template <typename... _Ts> struct CombineTuples<std::tuple<_Ts...>> { - typedef std::tuple<_Ts...> type; + using type = std::tuple<_Ts...>; }; template <typename... _T1s, typename... _T2s, typename... _Rem> struct CombineTuples<std::tuple<_T1s...>, std::tuple<_T2s...>, _Rem...> { - typedef typename CombineTuples<std::tuple<_T1s..., _T2s...>, _Rem...>::type - type; + using type = + typename CombineTuples<std::tuple<_T1s..., _T2s...>, _Rem...>::type; }; template <typename... Args> @@ -46,11 +47,12 @@ template <int... S> struct MakeSequence<0, S...> { - typedef Sequence<S...> type; + using type = Sequence<S...>; }; template <typename... Args, typename F, int... S> -auto callWithIndices(F func, Sequence<S...>, std::tuple<Args...> &tuple) { +auto callWithIndices(const F &func, Sequence<S...>, + std::tuple<Args...> &tuple) { return func(std::get<S>(tuple)...); } diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/unixfd.cpp fcitx5-5.1.11/src/lib/fcitx-utils/unixfd.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/unixfd.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/unixfd.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,9 +6,9 @@ */ #include "unixfd.h" -#include <errno.h> #include <fcntl.h> #include <unistd.h> +#include <cerrno> #include <stdexcept> namespace fcitx { diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/unixfd.h fcitx5-5.1.11/src/lib/fcitx-utils/unixfd.h --- fcitx5-5.1.7/src/lib/fcitx-utils/unixfd.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/unixfd.h 2024-10-09 03:48:05.000000000 +0800 @@ -12,15 +12,12 @@ /// \file /// \brief Utility class to handle unix file decriptor. -#include <memory> #include <fcitx-utils/log.h> #include <fcitx-utils/macros.h> #include "fcitxutils_export.h" namespace fcitx { -class UnixFDPrivate; - /// \brief Class wrap around the unix fd. class FCITXUTILS_EXPORT UnixFD { public: diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/utf8.cpp fcitx5-5.1.11/src/lib/fcitx-utils/utf8.cpp --- fcitx5-5.1.7/src/lib/fcitx-utils/utf8.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/utf8.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -11,8 +11,7 @@ namespace fcitx::utf8 { bool UCS4IsValid(uint32_t code) { - return ((code) < 0x110000 && (((code)&0xFFFFF800) != 0xD800) && - ((code) < 0xFDD0 || (code) > 0xFDEF) && ((code)&0xFFFE) != 0xFFFE); + return ((code) < 0x110000 && (((code) & 0xFFFFF800) != 0xD800)); } std::string UCS4ToUTF8(uint32_t code) { diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/utf8.h fcitx5-5.1.11/src/lib/fcitx-utils/utf8.h --- fcitx5-5.1.7/src/lib/fcitx-utils/utf8.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/utf8.h 2024-10-09 03:48:05.000000000 +0800 @@ -12,14 +12,15 @@ /// \file /// \brief C++ Utility functions for handling utf8 strings. +#include <iterator> #include <stdexcept> #include <string> +#include <string_view> #include <fcitx-utils/cutf8.h> #include <fcitx-utils/misc.h> #include "fcitxutils_export.h" -namespace fcitx { -namespace utf8 { +namespace fcitx::utf8 { /// \brief Return the number UTF-8 characters in the string iterator range. /// \see lengthValidated() @@ -119,10 +120,9 @@ /// This function has no error check on invalid string or end of string. Check /// the string before use it. template <typename Iter> -inline int ncharByteLength(Iter iter, size_t n) { +inline ssize_t ncharByteLength(Iter iter, size_t n) { const char *c = &(*iter); - int diff = fcitx_utf8_get_nth_char(c, n) - c; - return diff; + return fcitx_utf8_get_nth_char(c, n) - c; } /// \brief Move iter over next n character. @@ -159,11 +159,11 @@ template <typename Iter> class UTF8CharIterator { public: - typedef std::input_iterator_tag iterator_category; - typedef uint32_t value_type; - typedef std::ptrdiff_t difference_type; - typedef const value_type &reference; - typedef const value_type *pointer; + using iterator_category = std::input_iterator_tag; + using value_type = uint32_t; + using difference_type = std::ptrdiff_t; + using reference = const value_type &; + using pointer = const value_type *; UTF8CharIterator(Iter iter, Iter end) : iter_(iter), end_(end) { update(); } FCITX_INLINE_DEFINE_DEFAULT_DTOR_AND_COPY(UTF8CharIterator) @@ -223,7 +223,76 @@ return MakeIterRange(MakeUTF8CharIterator(std::begin(str), std::end(str)), MakeUTF8CharIterator(std::end(str), std::end(str))); } -} // namespace utf8 -} // namespace fcitx + +template <typename Iter> +class UTF8StringViewIter { +public: + using iterator_category = std::input_iterator_tag; + using value_type = std::string_view; + using difference_type = std::ptrdiff_t; + using reference = const value_type &; + using pointer = const value_type *; + + UTF8StringViewIter(Iter iter, Iter end) : iter_(iter), end_(end) { + update(); + } + FCITX_INLINE_DEFINE_DEFAULT_DTOR_AND_COPY(UTF8StringViewIter) + + reference operator*() const { return currentView_; } + + pointer operator->() const { return ¤tView_; } + + size_t charLength() const { return currentView_.size(); } + + uint32_t chr() const { return currentChar_; } + + UTF8StringViewIter &operator++() { + iter_ = next_; + update(); + return *this; + } + + UTF8StringViewIter operator++(int) { + auto old = *this; + ++(*this); + return old; + } + + bool operator==(const UTF8StringViewIter &other) { + return iter_ == other.iter_; + } + bool operator!=(const UTF8StringViewIter &other) { + return !operator==(other); + } + +private: + void update() { + next_ = getNextChar(iter_, end_, ¤tChar_); + if (iter_ != end_ && iter_ == next_) { + throw std::runtime_error("Invalid UTF8 character."); + } + currentView_ = std::string_view(&*iter_, std::distance(iter_, next_)); + } + + std::string_view currentView_; + uint32_t currentChar_ = 0; + Iter iter_; + Iter next_; + Iter end_; +}; + +template <typename Iter> +auto MakeUTF8StringViewIterator(Iter iter, Iter end) { + return UTF8StringViewIter<Iter>(iter, end); +} + +template <typename T> +auto MakeUTF8StringViewRange(const T &str) { + return MakeIterRange( + MakeUTF8StringViewIterator(std::begin(str), std::end(str)), + MakeUTF8StringViewIterator(std::end(str), std::end(str))); +} + +} // namespace fcitx::utf8 #endif // _FCITX_UTILS_UTF8_H_ diff -Nru fcitx5-5.1.7/src/lib/fcitx-utils/uuid_p.h fcitx5-5.1.11/src/lib/fcitx-utils/uuid_p.h --- fcitx5-5.1.7/src/lib/fcitx-utils/uuid_p.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-utils/uuid_p.h 2024-10-09 03:48:05.000000000 +0800 @@ -12,6 +12,7 @@ #include <fcntl.h> #include <unistd.h> #include <cstdint> +#include <cstring> #include "charutils.h" #include "event.h" #include "unixfd.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/blur/org_kde_kwin_blur.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/blur/org_kde_kwin_blur.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/blur/org_kde_kwin_blur.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/blur/org_kde_kwin_blur.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,4 @@ #include "org_kde_kwin_blur.h" -#include <cassert> #include "wl_region.h" namespace fcitx::wayland { OrgKdeKwinBlur::OrgKdeKwinBlur(org_kde_kwin_blur *data) diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/blur/org_kde_kwin_blur.h fcitx5-5.1.11/src/lib/fcitx-wayland/blur/org_kde_kwin_blur.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/blur/org_kde_kwin_blur.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/blur/org_kde_kwin_blur.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ORG_KDE_KWIN_BLUR #define ORG_KDE_KWIN_BLUR -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-blur-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/blur/org_kde_kwin_blur_manager.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/blur/org_kde_kwin_blur_manager.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/blur/org_kde_kwin_blur_manager.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/blur/org_kde_kwin_blur_manager.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,4 @@ #include "org_kde_kwin_blur_manager.h" -#include <cassert> #include "org_kde_kwin_blur.h" #include "wl_surface.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/blur/org_kde_kwin_blur_manager.h fcitx5-5.1.11/src/lib/fcitx-wayland/blur/org_kde_kwin_blur_manager.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/blur/org_kde_kwin_blur_manager.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/blur/org_kde_kwin_blur_manager.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ORG_KDE_KWIN_BLUR_MANAGER #define ORG_KDE_KWIN_BLUR_MANAGER -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-blur-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/display.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/core/display.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/display.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/display.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -8,9 +8,6 @@ #include "display.h" #include <errno.h> #include <poll.h> -#include <cassert> -#include <cstring> -#include <fcitx-utils/log.h> #include "wl_output.h" #include "wl_registry.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/display.h fcitx5-5.1.11/src/lib/fcitx-wayland/core/display.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/display.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/display.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,14 +7,12 @@ #ifndef _FCITX_WAYLAND_CORE_DISPLAY_H_ #define _FCITX_WAYLAND_CORE_DISPLAY_H_ -#include <algorithm> #include <list> #include <memory> #include <set> #include <string> #include <tuple> #include <unordered_map> -#include <wayland-client.h> #include "fcitx-utils/signals.h" #include "outputinformation.h" #include "wl_registry.h" @@ -23,7 +21,6 @@ namespace wayland { class WlOutput; -class WlCallback; class GlobalsFactoryBase { public: @@ -77,8 +74,11 @@ std::vector<std::shared_ptr<T>> results; for (uint32_t item : items) { auto iter = globals_.find(item); - results.push_back(std::static_pointer_cast<T>( - std::get<std::shared_ptr<void>>(iter->second))); + // This should always be true. + if (iter != globals_.end()) { + results.push_back(std::static_pointer_cast<T>( + std::get<std::shared_ptr<void>>(iter->second))); + } } return results; diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_buffer.h fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_buffer.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_buffer.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_buffer.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WL_BUFFER #define WL_BUFFER -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_callback.h fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_callback.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_callback.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_callback.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WL_CALLBACK #define WL_CALLBACK -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_compositor.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_compositor.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_compositor.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_compositor.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,4 @@ #include "wl_compositor.h" -#include <cassert> #include "wl_region.h" #include "wl_surface.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_compositor.h fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_compositor.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_compositor.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_compositor.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WL_COMPOSITOR #define WL_COMPOSITOR -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_data_device.h fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_data_device.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_data_device.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_data_device.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WL_DATA_DEVICE #define WL_DATA_DEVICE -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_data_device_manager.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_data_device_manager.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_data_device_manager.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_data_device_manager.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,4 @@ #include "wl_data_device_manager.h" -#include <cassert> #include "wl_data_device.h" #include "wl_data_source.h" #include "wl_seat.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_data_device_manager.h fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_data_device_manager.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_data_device_manager.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_data_device_manager.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WL_DATA_DEVICE_MANAGER #define WL_DATA_DEVICE_MANAGER -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_data_offer.h fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_data_offer.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_data_offer.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_data_offer.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WL_DATA_OFFER #define WL_DATA_OFFER -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_data_source.h fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_data_source.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_data_source.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_data_source.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WL_DATA_SOURCE #define WL_DATA_SOURCE -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_keyboard.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_keyboard.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_keyboard.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_keyboard.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #include "wl_keyboard.h" #include <cassert> -#include "wl_surface.h" namespace fcitx::wayland { const struct wl_keyboard_listener WlKeyboard::listener = { [](void *data, wl_keyboard *wldata, uint32_t format, int32_t fd, diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_keyboard.h fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_keyboard.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_keyboard.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_keyboard.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WL_KEYBOARD #define WL_KEYBOARD -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_output.h fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_output.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_output.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_output.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WL_OUTPUT #define WL_OUTPUT -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_pointer.h fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_pointer.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_pointer.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_pointer.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WL_POINTER #define WL_POINTER -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_region.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_region.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_region.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_region.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,4 @@ #include "wl_region.h" -#include <cassert> namespace fcitx::wayland { WlRegion::WlRegion(wl_region *data) : version_(wl_region_get_version(data)), data_(data) { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_region.h fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_region.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_region.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_region.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WL_REGION #define WL_REGION -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_registry.h fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_registry.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_registry.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_registry.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WL_REGISTRY #define WL_REGISTRY -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_seat.h fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_seat.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_seat.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_seat.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WL_SEAT #define WL_SEAT -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_shell_surface.h fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_shell_surface.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_shell_surface.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_shell_surface.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WL_SHELL_SURFACE #define WL_SHELL_SURFACE -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_shm.h fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_shm.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_shm.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_shm.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WL_SHM #define WL_SHM -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_shm_pool.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_shm_pool.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_shm_pool.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_shm_pool.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,4 @@ #include "wl_shm_pool.h" -#include <cassert> #include "wl_buffer.h" namespace fcitx::wayland { WlShmPool::WlShmPool(wl_shm_pool *data) diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_shm_pool.h fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_shm_pool.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_shm_pool.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_shm_pool.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WL_SHM_POOL #define WL_SHM_POOL -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_subcompositor.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_subcompositor.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_subcompositor.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_subcompositor.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,4 @@ #include "wl_subcompositor.h" -#include <cassert> #include "wl_subsurface.h" #include "wl_surface.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_subcompositor.h fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_subcompositor.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_subcompositor.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_subcompositor.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WL_SUBCOMPOSITOR #define WL_SUBCOMPOSITOR -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_subsurface.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_subsurface.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_subsurface.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_subsurface.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,4 @@ #include "wl_subsurface.h" -#include <cassert> #include "wl_surface.h" namespace fcitx::wayland { WlSubsurface::WlSubsurface(wl_subsurface *data) diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_subsurface.h fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_subsurface.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_subsurface.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_subsurface.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WL_SUBSURFACE #define WL_SUBSURFACE -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_surface.h fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_surface.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_surface.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_surface.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WL_SURFACE #define WL_SURFACE -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_touch.h fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_touch.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/core/wl_touch.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/core/wl_touch.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WL_TOUCH #define WL_TOUCH -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/cursor-shape/wp_cursor_shape_device_v1.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/cursor-shape/wp_cursor_shape_device_v1.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/cursor-shape/wp_cursor_shape_device_v1.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/cursor-shape/wp_cursor_shape_device_v1.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,4 @@ #include "wp_cursor_shape_device_v1.h" -#include <cassert> namespace fcitx::wayland { WpCursorShapeDeviceV1::WpCursorShapeDeviceV1(wp_cursor_shape_device_v1 *data) : version_(wp_cursor_shape_device_v1_get_version(data)), data_(data) { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/cursor-shape/wp_cursor_shape_device_v1.h fcitx5-5.1.11/src/lib/fcitx-wayland/cursor-shape/wp_cursor_shape_device_v1.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/cursor-shape/wp_cursor_shape_device_v1.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/cursor-shape/wp_cursor_shape_device_v1.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WP_CURSOR_SHAPE_DEVICE_V1 #define WP_CURSOR_SHAPE_DEVICE_V1 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-cursor-shape-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/cursor-shape/wp_cursor_shape_manager_v1.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/cursor-shape/wp_cursor_shape_manager_v1.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/cursor-shape/wp_cursor_shape_manager_v1.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/cursor-shape/wp_cursor_shape_manager_v1.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,4 @@ #include "wp_cursor_shape_manager_v1.h" -#include <cassert> #include "wl_pointer.h" #include "wp_cursor_shape_device_v1.h" #include "zwp_tablet_tool_v2.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/cursor-shape/wp_cursor_shape_manager_v1.h fcitx5-5.1.11/src/lib/fcitx-wayland/cursor-shape/wp_cursor_shape_manager_v1.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/cursor-shape/wp_cursor_shape_manager_v1.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/cursor-shape/wp_cursor_shape_manager_v1.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WP_CURSOR_SHAPE_MANAGER_V1 #define WP_CURSOR_SHAPE_MANAGER_V1 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-cursor-shape-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/fractional-scale-v1/wp_fractional_scale_manager_v1.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/fractional-scale-v1/wp_fractional_scale_manager_v1.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/fractional-scale-v1/wp_fractional_scale_manager_v1.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/fractional-scale-v1/wp_fractional_scale_manager_v1.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,4 @@ #include "wp_fractional_scale_manager_v1.h" -#include <cassert> #include "wl_surface.h" #include "wp_fractional_scale_v1.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/fractional-scale-v1/wp_fractional_scale_manager_v1.h fcitx5-5.1.11/src/lib/fcitx-wayland/fractional-scale-v1/wp_fractional_scale_manager_v1.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/fractional-scale-v1/wp_fractional_scale_manager_v1.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/fractional-scale-v1/wp_fractional_scale_manager_v1.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WP_FRACTIONAL_SCALE_MANAGER_V1 #define WP_FRACTIONAL_SCALE_MANAGER_V1 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-fractional-scale-v1-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/fractional-scale-v1/wp_fractional_scale_v1.h fcitx5-5.1.11/src/lib/fcitx-wayland/fractional-scale-v1/wp_fractional_scale_v1.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/fractional-scale-v1/wp_fractional_scale_v1.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/fractional-scale-v1/wp_fractional_scale_v1.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WP_FRACTIONAL_SCALE_V1 #define WP_FRACTIONAL_SCALE_V1 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-fractional-scale-v1-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/input-method/zwp_input_method_context_v1.h fcitx5-5.1.11/src/lib/fcitx-wayland/input-method/zwp_input_method_context_v1.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/input-method/zwp_input_method_context_v1.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/input-method/zwp_input_method_context_v1.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWP_INPUT_METHOD_CONTEXT_V1 #define ZWP_INPUT_METHOD_CONTEXT_V1 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-input-method-unstable-v1-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/input-method/zwp_input_method_v1.h fcitx5-5.1.11/src/lib/fcitx-wayland/input-method/zwp_input_method_v1.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/input-method/zwp_input_method_v1.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/input-method/zwp_input_method_v1.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWP_INPUT_METHOD_V1 #define ZWP_INPUT_METHOD_V1 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-input-method-unstable-v1-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/input-method/zwp_input_panel_surface_v1.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/input-method/zwp_input_panel_surface_v1.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/input-method/zwp_input_panel_surface_v1.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/input-method/zwp_input_panel_surface_v1.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,4 @@ #include "zwp_input_panel_surface_v1.h" -#include <cassert> #include "wl_output.h" namespace fcitx::wayland { ZwpInputPanelSurfaceV1::ZwpInputPanelSurfaceV1(zwp_input_panel_surface_v1 *data) diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/input-method/zwp_input_panel_surface_v1.h fcitx5-5.1.11/src/lib/fcitx-wayland/input-method/zwp_input_panel_surface_v1.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/input-method/zwp_input_panel_surface_v1.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/input-method/zwp_input_panel_surface_v1.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWP_INPUT_PANEL_SURFACE_V1 #define ZWP_INPUT_PANEL_SURFACE_V1 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-input-method-unstable-v1-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/input-method/zwp_input_panel_v1.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/input-method/zwp_input_panel_v1.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/input-method/zwp_input_panel_v1.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/input-method/zwp_input_panel_v1.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,4 @@ #include "zwp_input_panel_v1.h" -#include <cassert> #include "wl_surface.h" #include "zwp_input_panel_surface_v1.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/input-method/zwp_input_panel_v1.h fcitx5-5.1.11/src/lib/fcitx-wayland/input-method/zwp_input_panel_v1.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/input-method/zwp_input_panel_v1.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/input-method/zwp_input_panel_v1.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWP_INPUT_PANEL_V1 #define ZWP_INPUT_PANEL_V1 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-input-method-unstable-v1-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/input-method-v2/zwp_input_method_manager_v2.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/input-method-v2/zwp_input_method_manager_v2.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/input-method-v2/zwp_input_method_manager_v2.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/input-method-v2/zwp_input_method_manager_v2.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,4 @@ #include "zwp_input_method_manager_v2.h" -#include <cassert> #include "wl_seat.h" #include "zwp_input_method_v2.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/input-method-v2/zwp_input_method_manager_v2.h fcitx5-5.1.11/src/lib/fcitx-wayland/input-method-v2/zwp_input_method_manager_v2.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/input-method-v2/zwp_input_method_manager_v2.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/input-method-v2/zwp_input_method_manager_v2.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWP_INPUT_METHOD_MANAGER_V2 #define ZWP_INPUT_METHOD_MANAGER_V2 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-input-method-unstable-v2-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/input-method-v2/zwp_input_method_v2.h fcitx5-5.1.11/src/lib/fcitx-wayland/input-method-v2/zwp_input_method_v2.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/input-method-v2/zwp_input_method_v2.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/input-method-v2/zwp_input_method_v2.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWP_INPUT_METHOD_V2 #define ZWP_INPUT_METHOD_V2 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-input-method-unstable-v2-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/input-method-v2/zwp_input_popup_surface_v2.h fcitx5-5.1.11/src/lib/fcitx-wayland/input-method-v2/zwp_input_popup_surface_v2.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/input-method-v2/zwp_input_popup_surface_v2.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/input-method-v2/zwp_input_popup_surface_v2.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWP_INPUT_POPUP_SURFACE_V2 #define ZWP_INPUT_POPUP_SURFACE_V2 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-input-method-unstable-v2-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/input-method-v2/zwp_virtual_keyboard_manager_v1.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/input-method-v2/zwp_virtual_keyboard_manager_v1.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/input-method-v2/zwp_virtual_keyboard_manager_v1.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/input-method-v2/zwp_virtual_keyboard_manager_v1.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,4 @@ #include "zwp_virtual_keyboard_manager_v1.h" -#include <cassert> #include "wl_seat.h" #include "zwp_virtual_keyboard_v1.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/input-method-v2/zwp_virtual_keyboard_manager_v1.h fcitx5-5.1.11/src/lib/fcitx-wayland/input-method-v2/zwp_virtual_keyboard_manager_v1.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/input-method-v2/zwp_virtual_keyboard_manager_v1.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/input-method-v2/zwp_virtual_keyboard_manager_v1.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWP_VIRTUAL_KEYBOARD_MANAGER_V1 #define ZWP_VIRTUAL_KEYBOARD_MANAGER_V1 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-virtual-keyboard-unstable-v1-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/input-method-v2/zwp_virtual_keyboard_v1.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/input-method-v2/zwp_virtual_keyboard_v1.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/input-method-v2/zwp_virtual_keyboard_v1.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/input-method-v2/zwp_virtual_keyboard_v1.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,4 @@ #include "zwp_virtual_keyboard_v1.h" -#include <cassert> namespace fcitx::wayland { ZwpVirtualKeyboardV1::ZwpVirtualKeyboardV1(zwp_virtual_keyboard_v1 *data) : version_(zwp_virtual_keyboard_v1_get_version(data)), data_(data) { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/input-method-v2/zwp_virtual_keyboard_v1.h fcitx5-5.1.11/src/lib/fcitx-wayland/input-method-v2/zwp_virtual_keyboard_v1.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/input-method-v2/zwp_virtual_keyboard_v1.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/input-method-v2/zwp_virtual_keyboard_v1.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWP_VIRTUAL_KEYBOARD_V1 #define ZWP_VIRTUAL_KEYBOARD_V1 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-virtual-keyboard-unstable-v1-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/plasma-window-management/org_kde_plasma_window.h fcitx5-5.1.11/src/lib/fcitx-wayland/plasma-window-management/org_kde_plasma_window.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/plasma-window-management/org_kde_plasma_window.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/plasma-window-management/org_kde_plasma_window.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ORG_KDE_PLASMA_WINDOW #define ORG_KDE_PLASMA_WINDOW -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-plasma-window-management-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/plasma-window-management/org_kde_plasma_window_management.h fcitx5-5.1.11/src/lib/fcitx-wayland/plasma-window-management/org_kde_plasma_window_management.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/plasma-window-management/org_kde_plasma_window_management.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/plasma-window-management/org_kde_plasma_window_management.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ORG_KDE_PLASMA_WINDOW_MANAGEMENT #define ORG_KDE_PLASMA_WINDOW_MANAGEMENT -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-plasma-window-management-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_manager_v2.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_manager_v2.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_manager_v2.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_manager_v2.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,4 @@ #include "zwp_tablet_manager_v2.h" -#include <cassert> #include "wl_seat.h" #include "zwp_tablet_seat_v2.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_manager_v2.h fcitx5-5.1.11/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_manager_v2.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_manager_v2.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_manager_v2.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWP_TABLET_MANAGER_V2 #define ZWP_TABLET_MANAGER_V2 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-tablet-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_pad_group_v2.h fcitx5-5.1.11/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_pad_group_v2.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_pad_group_v2.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_pad_group_v2.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWP_TABLET_PAD_GROUP_V2 #define ZWP_TABLET_PAD_GROUP_V2 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-tablet-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_pad_ring_v2.h fcitx5-5.1.11/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_pad_ring_v2.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_pad_ring_v2.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_pad_ring_v2.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWP_TABLET_PAD_RING_V2 #define ZWP_TABLET_PAD_RING_V2 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-tablet-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_pad_strip_v2.h fcitx5-5.1.11/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_pad_strip_v2.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_pad_strip_v2.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_pad_strip_v2.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWP_TABLET_PAD_STRIP_V2 #define ZWP_TABLET_PAD_STRIP_V2 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-tablet-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_pad_v2.h fcitx5-5.1.11/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_pad_v2.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_pad_v2.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_pad_v2.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWP_TABLET_PAD_V2 #define ZWP_TABLET_PAD_V2 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-tablet-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_seat_v2.h fcitx5-5.1.11/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_seat_v2.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_seat_v2.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_seat_v2.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWP_TABLET_SEAT_V2 #define ZWP_TABLET_SEAT_V2 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-tablet-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_tool_v2.h fcitx5-5.1.11/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_tool_v2.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_tool_v2.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_tool_v2.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWP_TABLET_TOOL_V2 #define ZWP_TABLET_TOOL_V2 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-tablet-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_v2.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_v2.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_v2.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_v2.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,4 @@ #include "zwp_tablet_v2.h" -#include <cassert> namespace fcitx::wayland { const struct zwp_tablet_v2_listener ZwpTabletV2::listener = { [](void *data, zwp_tablet_v2 *wldata, const char *name) { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_v2.h fcitx5-5.1.11/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_v2.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_v2.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/tablet-v2/zwp_tablet_v2.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWP_TABLET_V2 #define ZWP_TABLET_V2 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-tablet-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/viewporter/wp_viewport.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/viewporter/wp_viewport.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/viewporter/wp_viewport.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/viewporter/wp_viewport.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,4 @@ #include "wp_viewport.h" -#include <cassert> namespace fcitx::wayland { WpViewport::WpViewport(wp_viewport *data) : version_(wp_viewport_get_version(data)), data_(data) { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/viewporter/wp_viewport.h fcitx5-5.1.11/src/lib/fcitx-wayland/viewporter/wp_viewport.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/viewporter/wp_viewport.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/viewporter/wp_viewport.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WP_VIEWPORT #define WP_VIEWPORT -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-viewporter-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/viewporter/wp_viewporter.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/viewporter/wp_viewporter.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/viewporter/wp_viewporter.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/viewporter/wp_viewporter.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,4 @@ #include "wp_viewporter.h" -#include <cassert> #include "wl_surface.h" #include "wp_viewport.h" namespace fcitx::wayland { diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/viewporter/wp_viewporter.h fcitx5-5.1.11/src/lib/fcitx-wayland/viewporter/wp_viewporter.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/viewporter/wp_viewporter.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/viewporter/wp_viewporter.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef WP_VIEWPORTER #define WP_VIEWPORTER -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-viewporter-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/wlr-data-control/zwlr_data_control_device_v1.h fcitx5-5.1.11/src/lib/fcitx-wayland/wlr-data-control/zwlr_data_control_device_v1.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/wlr-data-control/zwlr_data_control_device_v1.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/wlr-data-control/zwlr_data_control_device_v1.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWLR_DATA_CONTROL_DEVICE_V1 #define ZWLR_DATA_CONTROL_DEVICE_V1 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-wlr-data-control-unstable-v1-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/wlr-data-control/zwlr_data_control_manager_v1.cpp fcitx5-5.1.11/src/lib/fcitx-wayland/wlr-data-control/zwlr_data_control_manager_v1.cpp --- fcitx5-5.1.7/src/lib/fcitx-wayland/wlr-data-control/zwlr_data_control_manager_v1.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/wlr-data-control/zwlr_data_control_manager_v1.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,5 +1,4 @@ #include "zwlr_data_control_manager_v1.h" -#include <cassert> #include "wl_seat.h" #include "zwlr_data_control_device_v1.h" #include "zwlr_data_control_source_v1.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/wlr-data-control/zwlr_data_control_manager_v1.h fcitx5-5.1.11/src/lib/fcitx-wayland/wlr-data-control/zwlr_data_control_manager_v1.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/wlr-data-control/zwlr_data_control_manager_v1.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/wlr-data-control/zwlr_data_control_manager_v1.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWLR_DATA_CONTROL_MANAGER_V1 #define ZWLR_DATA_CONTROL_MANAGER_V1 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-wlr-data-control-unstable-v1-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/wlr-data-control/zwlr_data_control_offer_v1.h fcitx5-5.1.11/src/lib/fcitx-wayland/wlr-data-control/zwlr_data_control_offer_v1.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/wlr-data-control/zwlr_data_control_offer_v1.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/wlr-data-control/zwlr_data_control_offer_v1.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWLR_DATA_CONTROL_OFFER_V1 #define ZWLR_DATA_CONTROL_OFFER_V1 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-wlr-data-control-unstable-v1-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/wlr-data-control/zwlr_data_control_source_v1.h fcitx5-5.1.11/src/lib/fcitx-wayland/wlr-data-control/zwlr_data_control_source_v1.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/wlr-data-control/zwlr_data_control_source_v1.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/wlr-data-control/zwlr_data_control_source_v1.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWLR_DATA_CONTROL_SOURCE_V1 #define ZWLR_DATA_CONTROL_SOURCE_V1 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-wlr-data-control-unstable-v1-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/wlr-foreign-toplevel-management-unstable-v1/zwlr_foreign_toplevel_handle_v1.h fcitx5-5.1.11/src/lib/fcitx-wayland/wlr-foreign-toplevel-management-unstable-v1/zwlr_foreign_toplevel_handle_v1.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/wlr-foreign-toplevel-management-unstable-v1/zwlr_foreign_toplevel_handle_v1.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/wlr-foreign-toplevel-management-unstable-v1/zwlr_foreign_toplevel_handle_v1.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1 #define ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-wlr-foreign-toplevel-management-client-protocol.h" diff -Nru fcitx5-5.1.7/src/lib/fcitx-wayland/wlr-foreign-toplevel-management-unstable-v1/zwlr_foreign_toplevel_manager_v1.h fcitx5-5.1.11/src/lib/fcitx-wayland/wlr-foreign-toplevel-management-unstable-v1/zwlr_foreign_toplevel_manager_v1.h --- fcitx5-5.1.7/src/lib/fcitx-wayland/wlr-foreign-toplevel-management-unstable-v1/zwlr_foreign_toplevel_manager_v1.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/lib/fcitx-wayland/wlr-foreign-toplevel-management-unstable-v1/zwlr_foreign_toplevel_manager_v1.h 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,5 @@ #ifndef ZWLR_FOREIGN_TOPLEVEL_MANAGER_V1 #define ZWLR_FOREIGN_TOPLEVEL_MANAGER_V1 -#include <memory> #include <wayland-client.h> #include "fcitx-utils/signals.h" #include "wayland-wlr-foreign-toplevel-management-client-protocol.h" diff -Nru fcitx5-5.1.7/src/modules/clipboard/CMakeLists.txt fcitx5-5.1.11/src/modules/clipboard/CMakeLists.txt --- fcitx5-5.1.7/src/modules/clipboard/CMakeLists.txt 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/clipboard/CMakeLists.txt 2024-10-09 03:48:05.000000000 +0800 @@ -1,16 +1,18 @@ -set(CLIPBOARD_SOURCES clipboard.cpp) -if (WAYLAND_FOUND) -set(CLIPBOARD_SOURCES ${CLIPBOARD_SOURCES} waylandclipboard.cpp) -endif() -add_library(clipboard MODULE ${CLIPBOARD_SOURCES}) +add_library(clipboard MODULE) +target_sources(clipboard PRIVATE clipboard.cpp) target_link_libraries(clipboard Fcitx5::Core) + if (ENABLE_X11) + target_sources(clipboard PRIVATE xcbclipboard.cpp) target_link_libraries(clipboard Fcitx5::Module::XCB XCB::XCB) endif() + if (WAYLAND_FOUND) + target_sources(clipboard PRIVATE waylandclipboard.cpp) target_link_libraries(clipboard Fcitx5::Module::Wayland Fcitx5::Wayland::WLRDataControl Pthread::Pthread) endif() + install(TARGETS clipboard DESTINATION "${FCITX_INSTALL_ADDONDIR}") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/clipboard.conf" DESTINATION "${FCITX_INSTALL_PKGDATADIR}/addon" COMPONENT config) diff -Nru fcitx5-5.1.7/src/modules/clipboard/clipboard.conf.in.in fcitx5-5.1.11/src/modules/clipboard/clipboard.conf.in.in --- fcitx5-5.1.7/src/modules/clipboard/clipboard.conf.in.in 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/clipboard/clipboard.conf.in.in 2024-10-09 03:48:05.000000000 +0800 @@ -8,5 +8,5 @@ Configurable=True [Addon/OptionalDependencies] -0=xcb -1=wayland +0=xcb:@PROJECT_VERSION@ +1=wayland:@PROJECT_VERSION@ diff -Nru fcitx5-5.1.7/src/modules/clipboard/clipboard.cpp fcitx5-5.1.11/src/modules/clipboard/clipboard.cpp --- fcitx5-5.1.7/src/modules/clipboard/clipboard.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/clipboard/clipboard.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -4,22 +4,40 @@ * SPDX-License-Identifier: LGPL-2.1-or-later * */ -#include <fcntl.h> - -#include "fcitx-config/iniparser.h" +#include "clipboard.h" +#include <cstdint> +#include <limits> +#include <unordered_set> +#include "fcitx-utils/event.h" #include "fcitx-utils/i18n.h" -#include "fcitx-utils/inputbuffer.h" #include "fcitx-utils/log.h" #include "fcitx-utils/misc_p.h" #include "fcitx-utils/utf8.h" +#include "fcitx/addonfactory.h" #include "fcitx/addonmanager.h" #include "fcitx/inputcontext.h" #include "fcitx/inputcontextmanager.h" #include "fcitx/inputpanel.h" -#include "clipboard.h" +#include "clipboardentry.h" namespace fcitx { +namespace { + +constexpr uint64_t oneSecond = 1000000ULL; + +bool shouldClearPassword(const ClipboardEntry &entry, uint64_t life) { + if (entry.passwordTimestamp == 0 || life == 0) { + // Not password. + return false; + } + // Allow 0.5 second skew. + return (entry.passwordTimestamp + life * oneSecond - oneSecond / 2) <= + now(CLOCK_MONOTONIC); +} + +} // namespace + FCITX_DEFINE_LOG_CATEGORY(clipboard_log, "clipboard"); class ClipboardState : public InputContextProperty { @@ -82,18 +100,30 @@ class ClipboardCandidateWord : public CandidateWord { public: - ClipboardCandidateWord(Clipboard *q, const std::string &str) + ClipboardCandidateWord(Clipboard *q, const std::string &str, bool password) : q_(q), str_(str) { Text text; - text.append(ClipboardSelectionStrip(str)); + if (password && !*q->config().showPassword) { + auto length = utf8::length(str); + length = std::min(length, static_cast<size_t>(8)); + std::string dot; + dot.reserve(length * 3); + while (length != 0) { + dot += "\xe2\x80\xa2"; + length -= 1; + } + text.append(dot); + setComment(Text{_("<Passowrd>")}); + } else { + text.append(ClipboardSelectionStrip(str)); + } setText(std::move(text)); } void select(InputContext *inputContext) const override { - auto commit = str_; auto *state = inputContext->propertyFor(&q_->factory()); + inputContext->commitString(str_); state->reset(inputContext); - inputContext->commitString(commit); } Clipboard *q_; @@ -106,42 +136,21 @@ instance_->inputContextManager().registerProperty("clipboardState", &factory_); #ifdef ENABLE_X11 - if (auto xcb = this->xcb()) { + if (auto *xcb = this->xcb()) { xcbCreatedCallback_ = xcb->call<IXCBModule::addConnectionCreatedCallback>( [this](const std::string &name, xcb_connection_t *, int, FocusGroup *) { - auto &callbacks = selectionCallbacks_[name]; - - // Ensure that atom exists. See: - // https://github.com/fcitx/fcitx5/issues/610 PRIMARY / - // CLIPBOARD is not guaranteed to exist if fcitx5 is - // launched at an very early stage. We should try to create - // atom ourselves. - this->xcb()->call<IXCBModule::atom>(name, "PRIMARY", false); - this->xcb()->call<IXCBModule::atom>(name, "CLIPBOARD", - false); - callbacks.emplace_back( - this->xcb()->call<IXCBModule::addSelection>( - name, "PRIMARY", [this, name](xcb_atom_t) { - primaryChanged(name); - })); - callbacks.emplace_back( - this->xcb()->call<IXCBModule::addSelection>( - name, "CLIPBOARD", [this, name](xcb_atom_t) { - clipboardChanged(name); - })); - primaryChanged(name); - clipboardChanged(name); + xcbClipboards_[name].reset(new XcbClipboard(this, name)); }); xcbClosedCallback_ = xcb->call<IXCBModule::addConnectionClosedCallback>( [this](const std::string &name, xcb_connection_t *) { - selectionCallbacks_.erase(name); + xcbClipboards_.erase(name); }); } #endif #ifdef WAYLAND_FOUND - if (auto wayland = this->wayland()) { + if (auto *wayland = this->wayland()) { waylandCreatedCallback_ = wayland->call<IWaylandModule::addConnectionCreatedCallback>( [this](const std::string &name, wl_display *display, @@ -231,7 +240,7 @@ keyEvent.key().check(FcitxKey_Return) || keyEvent.key().check(FcitxKey_KP_Enter)) { keyEvent.accept(); - if (candidateList->size() > 0 && + if (!candidateList->empty() && candidateList->cursorIndex() >= 0) { candidateList->candidate(candidateList->cursorIndex()) .select(inputContext); @@ -305,11 +314,22 @@ updateUI(inputContext); })); + clearPasswordTimer_ = instance_->eventLoop().addTimeEvent( + CLOCK_MONOTONIC, now(CLOCK_MONOTONIC), 0, + [this](EventSourceTime *, uint64_t) { + refreshPasswordTimer(); + return true; + }); reloadConfig(); } Clipboard::~Clipboard() {} +void Clipboard::reloadConfig() { + readAsIni(config_, configFile); + refreshPasswordTimer(); +} + void Clipboard::trigger(InputContext *inputContext) { auto *state = inputContext->propertyFor(&factory_); state->enabled_ = true; @@ -324,20 +344,15 @@ // Append first item from history_. auto iter = history_.begin(); if (iter != history_.end()) { - candidateList->append<ClipboardCandidateWord>(this, *iter); + candidateList->append<ClipboardCandidateWord>(this, iter->text, + iter->passwordTimestamp); iter++; } // Append primary_, but check duplication first. if (!primary_.empty()) { - bool dup = false; - for (const auto &s : history_) { - if (s == primary_) { - dup = true; - break; - } - } - if (!dup) { - candidateList->append<ClipboardCandidateWord>(this, primary_); + if (!history_.contains(primary_)) { + candidateList->append<ClipboardCandidateWord>( + this, primary_.text, primary_.passwordTimestamp); } } // If primary_ is appended, it might squeeze one space out. @@ -345,7 +360,8 @@ if (candidateList->totalSize() >= config_.numOfEntries.value()) { break; } - candidateList->append<ClipboardCandidateWord>(this, *iter); + candidateList->append<ClipboardCandidateWord>(this, iter->text, + iter->passwordTimestamp); } candidateList->setSelectionKey(selectionKeys_); candidateList->setLayoutHint(CandidateLayoutHint::Vertical); @@ -363,72 +379,116 @@ inputContext->updateUserInterface(UserInterfaceComponent::InputPanel); } -void Clipboard::primaryChanged(const std::string &name) { - FCITX_UNUSED(name); -#ifdef ENABLE_X11 - primaryCallback_ = xcb()->call<IXCBModule::convertSelection>( - name, "PRIMARY", "", - [this, name](xcb_atom_t, const char *data, size_t length) { - if (!data) { - setPrimary(name, ""); - } else { - std::string str(data, length); - setPrimary(name, str); - } - primaryCallback_.reset(); - }); -#endif +void Clipboard::setPrimary(const std::string &name, const std::string &str) { + setPrimaryV2(name, str, false); } -void Clipboard::clipboardChanged(const std::string &name) { - FCITX_UNUSED(name); -#ifdef ENABLE_X11 - clipboardCallback_ = xcb()->call<IXCBModule::convertSelection>( - name, "CLIPBOARD", "", - [this, name](xcb_atom_t, const char *data, size_t length) { - if (!data || !length) { - return; - } - std::string str(data, length); - setClipboard(name, str); - clipboardCallback_.reset(); - }); -#endif +void Clipboard::setClipboard(const std::string &name, const std::string &str) { + setClipboardV2(name, str, false); } -void Clipboard::setPrimary(const std::string &name, const std::string &str) { +void Clipboard::setPrimaryV2(const std::string &name, const std::string &str, + bool password) { + setPrimaryEntry(name, + ClipboardEntry{.text = str, + .passwordTimestamp = + (password ? now(CLOCK_MONOTONIC) : 0)}); +} + +void Clipboard::setClipboardV2(const std::string &name, const std::string &str, + bool password) { + setClipboardEntry( + name, ClipboardEntry{.text = str, + .passwordTimestamp = + (password ? now(CLOCK_MONOTONIC) : 0)}); +} + +void Clipboard::setPrimaryEntry(const std::string &name, ClipboardEntry entry) { FCITX_UNUSED(name); - if (!utf8::validate(str)) { + if (!utf8::validate(entry.text)) { return; } - primary_ = str; + primary_ = std::move(entry); + if (entry.passwordTimestamp) { + refreshPasswordTimer(); + } } -void Clipboard::setClipboard(const std::string &name, const std::string &str) { +void Clipboard::setClipboardEntry(const std::string &name, + const ClipboardEntry &entry) { FCITX_UNUSED(name); - if (!utf8::validate(str)) { + if (entry.text.empty() || !utf8::validate(entry.text)) { return; } - if (!history_.pushFront(str)) { - history_.moveToTop(str); + + if (!history_.pushFront(entry)) { + history_.moveToTop(entry); + } + if (history_.front().passwordTimestamp || entry.passwordTimestamp) { + history_.front().passwordTimestamp = std::max( + entry.passwordTimestamp, history_.front().passwordTimestamp); } while (!history_.empty() && static_cast<int>(history_.size()) > config_.numOfEntries.value()) { history_.pop(); } + if (entry.passwordTimestamp) { + refreshPasswordTimer(); + } } -std::string Clipboard::primary(const InputContext *) { +std::string Clipboard::primary(const InputContext * /*unused*/) const { // TODO: per ic - return primary_; + return primary_.text; } -std::string Clipboard::clipboard(const InputContext *) { +std::string Clipboard::clipboard(const InputContext * /*unused*/) const { // TODO: per ic if (history_.empty()) { return ""; } - return history_.front(); + return history_.front().text; +} + +void Clipboard::refreshPasswordTimer() { + if (*config_.clearPasswordAfter == 0) { + FCITX_CLIPBOARD_DEBUG() << "Disable Password Clearing Timer."; + clearPasswordTimer_->setEnabled(false); + return; + } + + uint64_t minTimestamp = std::numeric_limits<uint64_t>::max(); + + if (shouldClearPassword(primary_, *config_.clearPasswordAfter)) { + FCITX_CLIPBOARD_DEBUG() << "Clear password in primary."; + primary_.clear(); + } else if (primary_.passwordTimestamp) { + minTimestamp = std::min(minTimestamp, primary_.passwordTimestamp); + } + + // Not efficient, but we don't have lots of entries anyway. + std::unordered_set<ClipboardEntry> needRemove; + for (const auto &entry : history_) { + if (shouldClearPassword(entry, *config_.clearPasswordAfter)) { + needRemove.insert(entry); + } else if (entry.passwordTimestamp) { + minTimestamp = std::min(minTimestamp, entry.passwordTimestamp); + } + } + FCITX_CLIPBOARD_DEBUG() << "Clear " << needRemove.size() + << " password(s) in clipboard history."; + for (const auto &entry : needRemove) { + history_.remove(entry); + } + + if (minTimestamp != std::numeric_limits<uint64_t>::max()) { + clearPasswordTimer_->setTime(minTimestamp + + oneSecond * (*config_.clearPasswordAfter)); + FCITX_CLIPBOARD_DEBUG() + << "Password Clearing Timer will be triggered after: " + << clearPasswordTimer_->time() - now(CLOCK_MONOTONIC); + clearPasswordTimer_->setOneShot(); + } } class ClipboardModuleFactory : public AddonFactory { diff -Nru fcitx5-5.1.7/src/modules/clipboard/clipboard.h fcitx5-5.1.11/src/modules/clipboard/clipboard.h --- fcitx5-5.1.7/src/modules/clipboard/clipboard.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/clipboard/clipboard.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,34 +7,40 @@ #ifndef _FCITX_MODULES_CLIPBOARD_CLIPBOARD_H_ #define _FCITX_MODULES_CLIPBOARD_CLIPBOARD_H_ -#include <map> +#include <cstddef> +#include <memory> +#include <string> +#include <vector> #include "fcitx-config/configuration.h" -#include "fcitx-config/enum.h" #include "fcitx-config/iniparser.h" +#include "fcitx-config/option.h" +#include "fcitx-utils/event.h" +#include "fcitx-utils/handlertable.h" #include "fcitx-utils/i18n.h" #include "fcitx-utils/key.h" #include "fcitx-utils/log.h" +#include "fcitx-utils/misc.h" #include "fcitx-utils/misc_p.h" -#include "fcitx-utils/standardpath.h" -#include "fcitx/addonfactory.h" #include "fcitx/addoninstance.h" #include "fcitx/addonmanager.h" #include "fcitx/inputcontextproperty.h" #include "fcitx/instance.h" #include "clipboard_public.h" +#include "clipboardentry.h" #ifdef ENABLE_X11 #include "xcb_public.h" +#include "xcbclipboard.h" #endif #ifdef WAYLAND_FOUND #include "wayland_public.h" #include "waylandclipboard.h" -#include "zwlr_data_control_manager_v1.h" #endif namespace fcitx { constexpr size_t MAX_CLIPBOARD_SIZE = 4096; +constexpr char PASSWORD_MIME_TYPE[] = "x-kde-passwordManagerHint"; FCITX_CONFIGURATION( ClipboardConfig, KeyListOption triggerKey{this, @@ -46,7 +52,32 @@ this, "PastePrimaryKey", _("Paste Primary"), {}, KeyListConstrain()}; Option<int, IntConstrain> numOfEntries{this, "Number of entries", _("Number of entries"), 5, - IntConstrain(3, 30)};); + IntConstrain(3, 30)}; + ConditionalHidden<isAndroid(), + OptionWithAnnotation<bool, ToolTipAnnotation>> + ignorePasswordFromPasswordManager{ + this, + "IgnorePasswordFromPasswordManager", + _("Do not show password from password managers"), + false, + {}, + {}, + {_("When copying password from a password manager, if the password " + "manager supports marking the clipboard content as password, " + "this clipboard update will be ignored.")}}; + ConditionalHidden<isAndroid(), Option<bool>> showPassword{ + this, "ShowPassword", + _("Hidden clipboard content that contains a password"), false}; + ConditionalHidden< + isAndroid(), + Option<int, IntConstrain, DefaultMarshaller<int>, ToolTipAnnotation>> + clearPasswordAfter{this, + "ClearPasswordAfter", + _("Seconds before clearing password"), + 30, + IntConstrain(0, 300), + {}, + {_("0 means never clear password.")}};); class ClipboardState; class Clipboard final : public AddonInstance { @@ -62,7 +93,7 @@ void updateUI(InputContext *inputContext); auto &factory() { return factory_; } - void reloadConfig() override { readAsIni(config_, configFile); } + void reloadConfig() override; const Configuration *getConfig() const override { return &config_; } void setConfig(const RawConfig &config) override { @@ -70,26 +101,37 @@ safeSaveAsIni(config_, configFile); } - std::string primary(const InputContext *ic); - std::string clipboard(const InputContext *ic); + std::string primary(const InputContext *ic) const; + std::string clipboard(const InputContext *ic) const; void setPrimary(const std::string &name, const std::string &str); void setClipboard(const std::string &name, const std::string &str); + void setPrimaryV2(const std::string &name, const std::string &str, + bool password); + void setClipboardV2(const std::string &name, const std::string &str, + bool password); + const auto &config() const { return config_; } + +#ifdef ENABLE_X11 + FCITX_ADDON_DEPENDENCY_LOADER(xcb, instance_->addonManager()); +#endif private: - void primaryChanged(const std::string &name); - void clipboardChanged(const std::string &name); FCITX_ADDON_EXPORT_FUNCTION(Clipboard, primary); FCITX_ADDON_EXPORT_FUNCTION(Clipboard, clipboard); FCITX_ADDON_EXPORT_FUNCTION(Clipboard, setPrimary); FCITX_ADDON_EXPORT_FUNCTION(Clipboard, setClipboard); -#ifdef ENABLE_X11 - FCITX_ADDON_DEPENDENCY_LOADER(xcb, instance_->addonManager()); -#endif + FCITX_ADDON_EXPORT_FUNCTION(Clipboard, setPrimaryV2); + FCITX_ADDON_EXPORT_FUNCTION(Clipboard, setClipboardV2); #ifdef WAYLAND_FOUND FCITX_ADDON_DEPENDENCY_LOADER(wayland, instance_->addonManager()); #endif + void refreshPasswordTimer(); + void setPrimaryEntry(const std::string &name, ClipboardEntry entry); + void setClipboardEntry(const std::string &name, + const ClipboardEntry &entry); + Instance *instance_; std::vector<std::unique_ptr<fcitx::HandlerTableEntry<fcitx::EventHandler>>> eventHandlers_; @@ -101,12 +143,8 @@ std::unique_ptr<HandlerTableEntry<XCBConnectionCreated>> xcbCreatedCallback_; std::unique_ptr<HandlerTableEntry<XCBConnectionClosed>> xcbClosedCallback_; - std::unordered_map<std::string, - std::vector<std::unique_ptr<HandlerTableEntryBase>>> - selectionCallbacks_; - - std::unique_ptr<HandlerTableEntryBase> primaryCallback_; - std::unique_ptr<HandlerTableEntryBase> clipboardCallback_; + std::unordered_map<std::string, std::unique_ptr<XcbClipboard>> + xcbClipboards_; #endif #ifdef WAYLAND_FOUND @@ -117,8 +155,9 @@ std::unordered_map<std::string, std::unique_ptr<WaylandClipboard>> waylandClipboards_; #endif - OrderedSet<std::string> history_; - std::string primary_; + OrderedSet<ClipboardEntry> history_; + ClipboardEntry primary_; + std::unique_ptr<EventSourceTime> clearPasswordTimer_; }; FCITX_DECLARE_LOG_CATEGORY(clipboard_log); diff -Nru fcitx5-5.1.7/src/modules/clipboard/clipboard_public.h fcitx5-5.1.11/src/modules/clipboard/clipboard_public.h --- fcitx5-5.1.7/src/modules/clipboard/clipboard_public.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/clipboard/clipboard_public.h 2024-10-09 03:48:05.000000000 +0800 @@ -21,5 +21,11 @@ FCITX_ADDON_DECLARE_FUNCTION(Clipboard, setClipboard, void(const std::string &name, const std::string &str)); +FCITX_ADDON_DECLARE_FUNCTION(Clipboard, setPrimaryV2, + void(const std::string &name, + const std::string &str, bool password)); +FCITX_ADDON_DECLARE_FUNCTION(Clipboard, setClipboardV2, + void(const std::string &name, + const std::string &str, bool password)); #endif // _FCITX_MODULES_CLIPBOARD_CLIPBOARD_PUBLIC_H_ diff -Nru fcitx5-5.1.7/src/modules/clipboard/clipboardentry.h fcitx5-5.1.11/src/modules/clipboard/clipboardentry.h --- fcitx5-5.1.7/src/modules/clipboard/clipboardentry.h 1970-01-01 08:00:00.000000000 +0800 +++ fcitx5-5.1.11/src/modules/clipboard/clipboardentry.h 2024-10-09 03:48:05.000000000 +0800 @@ -0,0 +1,52 @@ +/* + * SPDX-FileCopyrightText: 2024~2024 CSSlayer <wengxt@gmail.com> + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + */ +#ifndef _FCITX5_MODULES_CLIPBOARD_CLIPBOARDENTRY_H_ +#define _FCITX5_MODULES_CLIPBOARD_CLIPBOARDENTRY_H_ + +#include <cstdint> +#include <string> +#include "fcitx-utils/log.h" + +namespace fcitx { + +struct ClipboardEntry { + std::string text; + uint64_t passwordTimestamp = 0; + + bool operator==(const ClipboardEntry &other) const { + return text == other.text; + } + + bool operator!=(const ClipboardEntry &other) const { + return !operator==(other); + } + + void clear() { + passwordTimestamp = 0; + text = std::string(); + } + + bool empty() const { return text.empty(); } +}; + +inline LogMessageBuilder &operator<<(LogMessageBuilder &builder, + const ClipboardEntry &entry) { + builder << "ClipboardEntry(" << entry.text + << ",pass=" << entry.passwordTimestamp << ")"; + return builder; +} + +} // namespace fcitx + +template <> +struct std::hash<fcitx::ClipboardEntry> { + size_t operator()(const fcitx::ClipboardEntry &entry) const noexcept { + return std::hash<std::string>()(entry.text); + } +}; + +#endif // _FCITX5_MODULES_CLIPBOARD_CLIPBOARDENTRY_H_ \ No newline at end of file diff -Nru fcitx5-5.1.7/src/modules/clipboard/waylandclipboard.cpp fcitx5-5.1.11/src/modules/clipboard/waylandclipboard.cpp --- fcitx5-5.1.7/src/modules/clipboard/waylandclipboard.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/clipboard/waylandclipboard.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -5,8 +5,9 @@ * */ #include "waylandclipboard.h" -#include <cstring> #include <unordered_set> +#include "fcitx-utils/event.h" +#include "fcitx-utils/trackableobject.h" #include "clipboard.h" #include "wl_seat.h" #include "zwlr_data_control_manager_v1.h" @@ -14,82 +15,99 @@ namespace fcitx { -uint64_t DataReaderThread::addTask(std::shared_ptr<UnixFD> fd, - DataOfferCallback callback) { +uint64_t DataReaderThread::addTask(DataOffer *offer, std::shared_ptr<UnixFD> fd, + DataOfferDataCallback callback) { auto id = nextId_++; if (id == 0) { id = nextId_++; } FCITX_CLIPBOARD_DEBUG() << "Add task: " << id << " " << fd; - dispatcherToWorker_.schedule([this, id, fd, - dispatcher = &dispatcherToWorker_, - callback = std::move(callback)]() { - auto &task = ((*tasks_)[id] = std::make_unique<DataOfferTask>()); - task->fd_ = fd; - task->callback_ = std::move(callback); - try { - task->ioEvent_ = dispatcher->eventLoop()->addIOEvent( - fd->fd(), {IOEventFlag::In, IOEventFlag::Err}, - [this, id, task = task.get()](EventSource *, int fd, - IOEventFlags flags) { - if (flags.test(IOEventFlag::Err)) { - tasks_->erase(id); - return true; - } - char buf[4096]; - auto n = fs::safeRead(fd, buf, sizeof(buf)); - if (n == 0) { - dispatcherToMain_.schedule( - [data = std::move(task->data_), - callback = std::move(task->callback_)]() { - callback(data); - }); - tasks_->erase(id); - } else if (n < 0) { - tasks_->erase(id); - } else { - if (task->data_.size() + n > MAX_CLIPBOARD_SIZE) { - tasks_->erase(id); - return true; - } - task->data_.insert(task->data_.end(), buf, buf + n); - } - return true; - }); - FCITX_CLIPBOARD_DEBUG() << "Add watch to fd: " << fd->fd(); - // 1 sec timeout in case it takes forever. - task->timeEvent_ = dispatcher->eventLoop()->addTimeEvent( - CLOCK_MONOTONIC, now(CLOCK_MONOTONIC) + 1000000, 0, - [this, id](EventSource *, uint64_t) { - FCITX_CLIPBOARD_DEBUG() << "Reading data timeout."; - tasks_->erase(id); - return true; - }); - } catch (const EventLoopException &) { - // This may happen if fd is already closed. - tasks_->erase(id); - } - }); + dispatcherToWorker_.scheduleWithContext( + offer->watch(), + [this, id, fd = std::move(fd), offerRef = offer->watch(), + callback = std::move(callback)]() mutable { + addTaskOnWorker(id, std::move(offerRef), std::move(fd), + std::move(callback)); + }); return id; } void DataReaderThread::removeTask(uint64_t token) { FCITX_CLIPBOARD_DEBUG() << "Remove task: " << token; - dispatcherToWorker_.schedule([this, token]() { tasks_->erase(token); }); + dispatcherToWorker_.schedule([this, token]() { tasks_.erase(token); }); } void DataReaderThread::realRun() { EventLoop loop; - std::unordered_map<uint64_t, std::unique_ptr<DataOfferTask>> tasks; - tasks_ = &tasks; dispatcherToWorker_.attach(&loop); loop.exec(); + dispatcherToWorker_.detach(); FCITX_DEBUG() << "Ending DataReaderThread"; - tasks.clear(); - tasks_ = nullptr; + tasks_.clear(); +} + +void DataReaderThread::addTaskOnWorker( + uint64_t id, TrackableObjectReference<DataOffer> offer, + std::shared_ptr<UnixFD> fd, DataOfferDataCallback callback) { + // std::unordered_map's ref/pointer to element is stable. + auto &task = tasks_[id]; + task.id_ = id; + task.offer_ = std::move(offer); + task.fd_ = std::move(fd); + task.callback_ = std::move(callback); + try { + task.ioEvent_ = dispatcherToWorker_.eventLoop()->addIOEvent( + task.fd_->fd(), {IOEventFlag::In, IOEventFlag::Err}, + [this, taskPtr = &task](EventSource *, int, IOEventFlags flags) { + handleTaskIO(taskPtr, flags); + return true; + }); + FCITX_CLIPBOARD_DEBUG() << "Add watch to fd: " << task.fd_->fd(); + // 1 sec timeout in case it takes forever. + task.timeEvent_ = dispatcherToWorker_.eventLoop()->addTimeEvent( + CLOCK_MONOTONIC, now(CLOCK_MONOTONIC) + 1000000, 0, + [this, taskPtr = &task](EventSource *, uint64_t) { + handleTaskTimeout(taskPtr); + return true; + }); + } catch (const EventLoopException &) { + // This may happen if fd is already closed. + tasks_.erase(id); + } +} + +void DataReaderThread::handleTaskIO(DataOfferTask *task, IOEventFlags flags) { + if (flags.test(IOEventFlag::Err) || !task->offer_.isValid()) { + tasks_.erase(task->id_); + return; + } + char buf[4096]; + auto n = fs::safeRead(task->fd_->fd(), buf, sizeof(buf)); + if (n == 0) { + dispatcherToMain_.scheduleWithContext( + task->offer_, + [data = std::move(task->data_), + callback = std::move(task->callback_)]() { callback(data); }); + tasks_.erase(task->id_); + } else if (n < 0) { + tasks_.erase(task->id_); + } else { + if (task->data_.size() + n > MAX_CLIPBOARD_SIZE) { + tasks_.erase(task->id_); + return; + } + task->data_.insert(task->data_.end(), buf, buf + n); + } } -DataOffer::DataOffer(wayland::ZwlrDataControlOfferV1 *offer) : offer_(offer) { +void DataReaderThread::handleTaskTimeout(DataOfferTask *task) { + FCITX_CLIPBOARD_DEBUG() << "Reading data timeout."; + tasks_.erase(task->id_); +} + +DataOffer::DataOffer(wayland::ZwlrDataControlOfferV1 *offer, + bool ignorePassword) + : offer_(offer), ignorePassword_(ignorePassword) { offer_->setUserData(this); conns_.emplace_back(offer_->offer().connect( [this](const char *offer) { mimeTypes_.insert(offer); })); @@ -106,9 +124,39 @@ if (thread_) { return; } + + auto callbackWrapper = + [this, callback = std::move(callback)](const std::vector<char> &data) { + return callback(data, isPassword_); + }; + + thread_ = &thread; + static const std::string passwordHint = PASSWORD_MIME_TYPE; + if (mimeTypes_.count(passwordHint)) { + receiveDataForMime(passwordHint, [this, callbackWrapper]( + const std::vector<char> &data) { + if (std::string_view(data.data(), data.size()) == "secret" && + ignorePassword_) { + FCITX_CLIPBOARD_DEBUG() + << "Wayland clipboard contains password, ignore."; + return; + } + isPassword_ = true; + receiveRealData(callbackWrapper); + }); + } else { + receiveRealData(callbackWrapper); + } +} + +void DataOffer::receiveRealData(DataOfferDataCallback callback) { + if (!thread_) { + return; + } std::string mime; static const std::string utf8Mime = "text/plain;charset=utf-8"; static const std::string textMime = "text/plain"; + if (mimeTypes_.count(utf8Mime)) { mime = utf8Mime; } else if (mimeTypes_.count(textMime)) { @@ -117,6 +165,14 @@ return; } + receiveDataForMime(mime, std::move(callback)); +} + +void DataOffer::receiveDataForMime(const std::string &mime, + DataOfferDataCallback callback) { + if (!thread_) { + return; + } // Create a pipe for sending data. int pipeFds[2]; if (safePipe(pipeFds) != 0) { @@ -126,16 +182,21 @@ offer_->receive(mime.data(), pipeFds[1]); close(pipeFds[1]); - thread_ = &thread; taskId_ = thread_->addTask( - std::make_shared<UnixFD>(UnixFD::own(pipeFds[0])), std::move(callback)); + this, std::make_shared<UnixFD>(UnixFD::own(pipeFds[0])), + std::move(callback)); } DataDevice::DataDevice(WaylandClipboard *clipboard, wayland::ZwlrDataControlDeviceV1 *device) - : clipboard_(clipboard), device_(device), thread_(clipboard_->eventLoop()) { + : clipboard_(clipboard), device_(device), + thread_(clipboard_->parent()->instance()->eventDispatcher()) { conns_.emplace_back(device_->dataOffer().connect( - [](wayland::ZwlrDataControlOfferV1 *offer) { new DataOffer(offer); })); + [this](wayland::ZwlrDataControlOfferV1 *offer) { + new DataOffer(offer, *clipboard_->parent() + ->config() + .ignorePasswordFromPasswordManager); + })); conns_.emplace_back(device_->selection().connect( [this](wayland::ZwlrDataControlOfferV1 *offer) { clipboardOffer_.reset( @@ -144,9 +205,9 @@ return; } clipboardOffer_->receiveData( - thread_, [this](std::vector<char> data) { + thread_, [this](std::vector<char> data, bool password) { data.push_back('\0'); - clipboard_->setClipboard(data.data()); + clipboard_->setClipboard(data.data(), password); clipboardOffer_.reset(); }); })); @@ -155,14 +216,15 @@ primaryOffer_.reset( offer ? static_cast<DataOffer *>(offer->userData()) : nullptr); if (!primaryOffer_) { - clipboard_->setPrimary(""); + clipboard_->setPrimary("", false); return; } - primaryOffer_->receiveData(thread_, [this](std::vector<char> data) { - data.push_back('\0'); - clipboard_->setPrimary(data.data()); - primaryOffer_.reset(); - }); + primaryOffer_->receiveData( + thread_, [this](std::vector<char> data, bool password) { + data.push_back('\0'); + clipboard_->setPrimary(data.data(), password); + primaryOffer_.reset(); + }); })); conns_.emplace_back(device_->finished().connect([this]() { conns_.clear(); @@ -173,10 +235,11 @@ thread_.start(); } -WaylandClipboard::WaylandClipboard(Clipboard *clipboard, - const std::string &name, wl_display *display) - : parent_(clipboard), name_(name), display_(static_cast<wayland::Display *>( - wl_display_get_user_data(display))) { +WaylandClipboard::WaylandClipboard(Clipboard *clipboard, std::string name, + wl_display *display) + : parent_(clipboard), name_(std::move(name)), + display_( + static_cast<wayland::Display *>(wl_display_get_user_data(display))) { display_->requestGlobals<wayland::ZwlrDataControlManagerV1>(); globalConn_ = display_->globalCreated().connect( [this](const std::string &interface, std::shared_ptr<void> ptr) { @@ -206,7 +269,7 @@ if (auto manager = display_->getGlobal<wayland::ZwlrDataControlManagerV1>()) { - manager_ = manager; + manager_ = std::move(manager); } refreshSeat(); } @@ -222,22 +285,18 @@ continue; } - auto device = manager_->getDataDevice(seat.get()); + auto *device = manager_->getDataDevice(seat.get()); deviceMap_.emplace(seat.get(), std::make_unique<DataDevice>(this, device)); } } -EventLoop *WaylandClipboard::eventLoop() { - return &parent_->instance()->eventLoop(); -} - -void WaylandClipboard::setClipboard(const std::string &str) { - parent_->setClipboard(name_, str); +void WaylandClipboard::setClipboard(const std::string &str, bool password) { + parent_->setClipboardV2(name_, str, password); } -void WaylandClipboard::setPrimary(const std::string &str) { - parent_->setPrimary(name_, str); +void WaylandClipboard::setPrimary(const std::string &str, bool password) { + parent_->setPrimaryV2(name_, str, password); } } // namespace fcitx diff -Nru fcitx5-5.1.7/src/modules/clipboard/waylandclipboard.h fcitx5-5.1.11/src/modules/clipboard/waylandclipboard.h --- fcitx5-5.1.7/src/modules/clipboard/waylandclipboard.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/clipboard/waylandclipboard.h 2024-10-09 03:48:05.000000000 +0800 @@ -11,15 +11,13 @@ #include <thread> #include <fcitx-utils/event.h> #include <fcitx-utils/eventdispatcher.h> -#include <fcitx-utils/log.h> -#include <fcitx-utils/misc_p.h> #include <fcitx-utils/signals.h> +#include <fcitx-utils/trackableobject.h> #include <fcitx-utils/unixfd.h> +#include "fcitx-utils/macros.h" #include "display.h" -#include "wl_seat.h" #include "zwlr_data_control_device_v1.h" #include "zwlr_data_control_manager_v1.h" -#include "zwlr_data_control_offer_v1.h" namespace fcitx { @@ -28,11 +26,24 @@ // Upon receive DataOffer, DataReaderThread::addTask will be used to // initiate a reading task and call the callback if it suceeds. -using DataOfferCallback = std::function<void(const std::vector<char> &)>; +using DataOfferDataCallback = + std::function<void(const std::vector<char> &data)>; +using DataOfferCallback = + std::function<void(const std::vector<char> &data, bool password)>; class DataOffer; + struct DataOfferTask { - DataOfferCallback callback_; + DataOfferTask() = default; + DataOfferTask(const DataOfferTask &) = delete; + DataOfferTask(DataOfferTask &&) = delete; + + DataOfferTask &operator=(const DataOfferTask &) = delete; + DataOfferTask &operator=(DataOfferTask &&) = delete; + + uint64_t id_ = 0; + TrackableObjectReference<DataOffer> offer_; + DataOfferDataCallback callback_; std::shared_ptr<UnixFD> fd_; std::vector<char> data_; std::unique_ptr<EventSourceIO> ioEvent_; @@ -41,12 +52,13 @@ class DataReaderThread { public: - DataReaderThread(EventLoop *main) { dispatcherToMain_.attach(main); } + DataReaderThread(EventDispatcher &dispatcherToMain) + : dispatcherToMain_(dispatcherToMain) {} ~DataReaderThread() { if (thread_ && thread_->joinable()) { dispatcherToWorker_.schedule([this]() { - if (auto loop = dispatcherToWorker_.eventLoop()) { + if (auto *loop = dispatcherToWorker_.eventLoop()) { loop->exit(); } }); @@ -60,32 +72,46 @@ static void run(DataReaderThread *self) { self->realRun(); } - uint64_t addTask(std::shared_ptr<UnixFD> fd, DataOfferCallback callback); + uint64_t addTask(DataOffer *offer, std::shared_ptr<UnixFD> fd, + DataOfferDataCallback callback); void removeTask(uint64_t token); private: + // Function that run on reader thread void realRun(); + void addTaskOnWorker(uint64_t id, TrackableObjectReference<DataOffer> offer, + std::shared_ptr<UnixFD> fd, + DataOfferDataCallback callback); + void handleTaskIO(DataOfferTask *task, IOEventFlags flags); + void handleTaskTimeout(DataOfferTask *task); + // End of function that run on reader thread - EventDispatcher dispatcherToMain_; - EventDispatcher dispatcherToWorker_; + EventDispatcher &dispatcherToMain_; std::unique_ptr<std::thread> thread_; - // Value only handled by the reader thread. uint64_t nextId_ = 1; - std::unordered_map<uint64_t, std::unique_ptr<DataOfferTask>> *tasks_ = - nullptr; + + // Value only read/write by the reader thread. + EventDispatcher dispatcherToWorker_; + std::unordered_map<uint64_t, DataOfferTask> tasks_; }; -class DataOffer { +class DataOffer : public TrackableObject<DataOffer> { public: - DataOffer(wayland::ZwlrDataControlOfferV1 *offer); + DataOffer(wayland::ZwlrDataControlOfferV1 *offer, bool ignorePassword); ~DataOffer(); void receiveData(DataReaderThread &thread, DataOfferCallback callback); private: + void receiveDataForMime(const std::string &mime, + DataOfferDataCallback callback); + void receiveRealData(DataOfferDataCallback callback); + std::list<ScopedConnection> conns_; std::unordered_set<std::string> mimeTypes_; std::unique_ptr<wayland::ZwlrDataControlOfferV1> offer_; + bool ignorePassword_ = true; + bool isPassword_ = false; UnixFD fd_; DataReaderThread *thread_ = nullptr; uint64_t taskId_ = 0; @@ -111,13 +137,13 @@ class WaylandClipboard { public: - WaylandClipboard(Clipboard *parent, const std::string &name, + WaylandClipboard(Clipboard *clipboard, std::string name, wl_display *display); - void setClipboard(const std::string &str); - void setPrimary(const std::string &str); - EventLoop *eventLoop(); + void setClipboard(const std::string &str, bool password); + void setPrimary(const std::string &str, bool password); auto display() const { return display_; } + auto parent() const { return parent_; } private: void refreshSeat(); diff -Nru fcitx5-5.1.7/src/modules/clipboard/xcbclipboard.cpp fcitx5-5.1.11/src/modules/clipboard/xcbclipboard.cpp --- fcitx5-5.1.7/src/modules/clipboard/xcbclipboard.cpp 1970-01-01 08:00:00.000000000 +0800 +++ fcitx5-5.1.11/src/modules/clipboard/xcbclipboard.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -0,0 +1,164 @@ +/* + * SPDX-FileCopyrightText: 2024~2024 CSSlayer <wengxt@gmail.com> + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + */ +#include "xcbclipboard.h" +#include <ctime> +#include <string_view> +#include <xcb/xproto.h> +#include "clipboard.h" + +namespace fcitx { + +XcbClipboardData::XcbClipboardData(XcbClipboard *xcbClip, XcbClipboardMode mode) + : xcbClip_(xcbClip), mode_(mode) {} + +void XcbClipboardData::request() { + // + reset(); + callback_ = xcbClip_->xcb()->call<IXCBModule::convertSelection>( + xcbClip_->name(), modeString(), "TARGETS", + [this](xcb_atom_t type, const char *data, size_t length) { + checkMime(type, data, length); + }); +} + +void XcbClipboardData::reset() { + callback_.reset(); + password_ = false; +} + +const char *XcbClipboardData::modeString() const { + if (mode_ == XcbClipboardMode::Primary) { + return "PRIMARY"; + } + return "CLIPBOARD"; +} + +std::unique_ptr<HandlerTableEntryBase> XcbClipboardData::convertSelection( + const char *type, XcbClipboardData::ConvertSelectionFunction fn) { + return xcbClip_->xcb()->call<IXCBModule::convertSelection>( + xcbClip_->name(), modeString(), type, + [this, fn](xcb_atom_t type, const char *data, size_t length) { + (this->*fn)(type, data, length); + }); +} + +bool XcbClipboardData::isValidTextType(xcb_atom_t type) const { + if (type == XCB_ATOM_STRING) { + return true; + } + auto utf8Atom = xcbClip_->utf8StringAtom(); + return utf8Atom != XCB_ATOM_NONE && type == utf8Atom; +} + +void XcbClipboardData::checkMime(xcb_atom_t type, const char *data, + size_t length) { + if (type != XCB_ATOM_ATOM) { + reset(); + return; + } + + const auto *atoms = reinterpret_cast<const xcb_atom_t *>(data); + bool maybePassword = false; + bool isText = false; + size_t size = length / sizeof(xcb_atom_t); + for (size_t i = 0; i < size; i++) { + if (xcbClip_->passwordAtom() != XCB_ATOM_NONE && + atoms[i] == xcbClip_->passwordAtom()) { + maybePassword = true; + } else if (isValidTextType(atoms[i])) { + isText = true; + } + } + + if (!isText) { + reset(); + return; + } + + if (maybePassword) { + callback_ = convertSelection(PASSWORD_MIME_TYPE, + &XcbClipboardData::checkPassword); + } else { + callback_ = convertSelection("", &XcbClipboardData::readData); + } +} + +void XcbClipboardData::checkPassword(xcb_atom_t /*type*/, const char *data, + size_t length) { + std::string_view str(data, length); + if (str == "secret") { + if (*xcbClip_->parent()->config().ignorePasswordFromPasswordManager) { + FCITX_CLIPBOARD_DEBUG() + << "XCB display:" << xcbClip_->name() << " " << modeString() + << " contains password, ignore."; + reset(); + return; + } + password_ = true; + } + callback_ = convertSelection("", &XcbClipboardData::readData); +} + +void XcbClipboardData::readData(xcb_atom_t type, const char *data, + size_t length) { + + switch (mode_) { + case XcbClipboardMode::Primary: + if (!data || !isValidTextType(type)) { + xcbClip_->setPrimary("", /*password=*/false); + } else { + std::string str(data, length); + xcbClip_->setPrimary(str, /*password=*/password_); + } + break; + case XcbClipboardMode::Clipboard: + if (isValidTextType(type) && data) { + std::string str(data, length); + xcbClip_->setClipboard(str, /*password=*/password_); + } + break; + } + reset(); +} + +XcbClipboard::XcbClipboard(Clipboard *clipboard, std::string name) + : parent_(clipboard), name_(std::move(name)), xcb_(clipboard->xcb()), + primary_(this, XcbClipboardMode::Primary), + clipboard_(this, XcbClipboardMode::Clipboard) { + + // Ensure that atom exists. See: + // https://github.com/fcitx/fcitx5/issues/610 PRIMARY / + // CLIPBOARD is not guaranteed to exist if fcitx5 is + // launched at an very early stage. We should try to create + // atom ourselves. + xcb_->call<IXCBModule::atom>(name_, "PRIMARY", false); + xcb_->call<IXCBModule::atom>(name_, "CLIPBOARD", false); + xcb_->call<IXCBModule::atom>(name_, "TARGETS", false); + passwordAtom_ = + xcb_->call<IXCBModule::atom>(name_, PASSWORD_MIME_TYPE, false); + utf8StringAtom_ = xcb_->call<IXCBModule::atom>(name_, "UTF8_STRING", false); + selectionCallbacks_.emplace_back(xcb_->call<IXCBModule::addSelection>( + name_, "PRIMARY", [this](xcb_atom_t) { primaryChanged(); })); + selectionCallbacks_.emplace_back(xcb_->call<IXCBModule::addSelection>( + name_, "CLIPBOARD", [this](xcb_atom_t) { clipboardChanged(); })); + primaryChanged(); + clipboardChanged(); +} + +void XcbClipboard::primaryChanged() { primary_.request(); } + +void XcbClipboard::clipboardChanged() { clipboard_.request(); } + +void XcbClipboard::setClipboard(const std::string &str, bool password) { + parent_->setClipboardV2(name_, str, password); +} + +void XcbClipboard::setPrimary(const std::string &str, bool password) { + parent_->setPrimaryV2(name_, str, password); +} + +} // namespace fcitx diff -Nru fcitx5-5.1.7/src/modules/clipboard/xcbclipboard.h fcitx5-5.1.11/src/modules/clipboard/xcbclipboard.h --- fcitx5-5.1.7/src/modules/clipboard/xcbclipboard.h 1970-01-01 08:00:00.000000000 +0800 +++ fcitx5-5.1.11/src/modules/clipboard/xcbclipboard.h 2024-10-09 03:48:05.000000000 +0800 @@ -0,0 +1,83 @@ +/* + * SPDX-FileCopyrightText: 2024~2024 CSSlayer <wengxt@gmail.com> + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + */ +#ifndef _FCITX5_MODULES_CLIPBOARD_XCBCLIPBOARD_H_ +#define _FCITX5_MODULES_CLIPBOARD_XCBCLIPBOARD_H_ + +#include <string> +#include <xcb/xproto.h> +#include "fcitx-utils/handlertable.h" +#include "fcitx/addoninstance.h" + +namespace fcitx { + +class Clipboard; +class XcbClipboard; + +enum class XcbClipboardMode { + Primary, + Clipboard, +}; + +class XcbClipboardData { +public: + XcbClipboardData(XcbClipboard *xcbClip, XcbClipboardMode mode); + XcbClipboardData(const XcbClipboardData &) = delete; + XcbClipboardData(XcbClipboardData &&) = delete; + + void request(); + +private: + using ConvertSelectionFunction = void (XcbClipboardData::*)( + xcb_atom_t type, const char *data, size_t length); + std::unique_ptr<HandlerTableEntryBase> + convertSelection(const char *type, ConvertSelectionFunction fn); + bool isValidTextType(xcb_atom_t type) const; + void checkMime(xcb_atom_t type, const char *data, size_t length); + void checkPassword(xcb_atom_t type, const char *data, size_t length); + void readData(xcb_atom_t type, const char *data, size_t length); + void reset(); + + const char *modeString() const; + + XcbClipboard *xcbClip_ = nullptr; + XcbClipboardMode mode_; + std::unique_ptr<HandlerTableEntryBase> callback_; + bool password_ = false; +}; + +class XcbClipboard { + +public: + XcbClipboard(Clipboard *clipboard, std::string name); + + void setClipboard(const std::string &str, bool password); + void setPrimary(const std::string &str, bool password); + + AddonInstance *xcb() const { return xcb_; } + const std::string &name() const { return name_; } + + xcb_atom_t passwordAtom() const { return passwordAtom_; } + xcb_atom_t utf8StringAtom() const { return utf8StringAtom_; } + auto parent() const { return parent_; } + +private: + void primaryChanged(); + void clipboardChanged(); + Clipboard *parent_; + std::string name_; + AddonInstance *xcb_; + std::vector<std::unique_ptr<HandlerTableEntryBase>> selectionCallbacks_; + xcb_atom_t passwordAtom_ = XCB_ATOM_NONE; + xcb_atom_t utf8StringAtom_ = XCB_ATOM_NONE; + + XcbClipboardData primary_; + XcbClipboardData clipboard_; +}; + +} // namespace fcitx + +#endif // _FCITX5_MODULES_CLIPBOARD_XCBCLIPBOARD_H_ \ No newline at end of file diff -Nru fcitx5-5.1.7/src/modules/dbus/dbusmodule.cpp fcitx5-5.1.11/src/modules/dbus/dbusmodule.cpp --- fcitx5-5.1.7/src/modules/dbus/dbusmodule.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/dbus/dbusmodule.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -8,7 +8,6 @@ #include "config.h" #include <pwd.h> -#include <sys/types.h> #include <fstream> #include <set> #include <sstream> @@ -785,9 +784,11 @@ }); selfWatcher_ = serviceWatcher_->watchService( - FCITX_DBUS_SERVICE, - [uniqueName, instance](const std::string &, const std::string &, - const std::string &newName) { + FCITX_DBUS_SERVICE, [uniqueName, instance](const std::string &service, + const std::string &oldName, + const std::string &newName) { + FCITX_INFO() << "Service name change: " << service << " " << oldName + << " " << newName; if (newName != uniqueName) { instance->exit(); } diff -Nru fcitx5-5.1.7/src/modules/dbus/dbusmodule.h fcitx5-5.1.11/src/modules/dbus/dbusmodule.h --- fcitx5-5.1.7/src/modules/dbus/dbusmodule.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/dbus/dbusmodule.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,11 +7,9 @@ #ifndef _FCITX_MODULES_DBUS_DBUSMODULE_H_ #define _FCITX_MODULES_DBUS_DBUSMODULE_H_ -#include "fcitx-utils/dbus/bus.h" #include "fcitx-utils/dbus/servicewatcher.h" #include "fcitx/addonfactory.h" #include "fcitx/addoninstance.h" -#include "fcitx/addonmanager.h" #include "fcitx/instance.h" #include "dbus_public.h" diff -Nru fcitx5-5.1.7/src/modules/emoji/emoji.cpp fcitx5-5.1.11/src/modules/emoji/emoji.cpp --- fcitx5-5.1.7/src/modules/emoji/emoji.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/emoji/emoji.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -14,7 +14,6 @@ #include "fcitx-utils/stringutils.h" #include "fcitx-utils/utf8.h" #include "fcitx/addonfactory.h" -#include "config.h" namespace fcitx { @@ -75,7 +74,8 @@ } try { - const auto *cur = data.data(), *end = data.data() + data.size(); + const auto *cur = data.data(); + const auto *end = data.data() + data.size(); uint32_t nEmoji = readInt32(&cur, end); for (uint32_t i = 0; i < nEmoji; i++) { std::string_view emoji = readString(&cur, end); diff -Nru fcitx5-5.1.7/src/modules/emoji/emoji.h fcitx5-5.1.11/src/modules/emoji/emoji.h --- fcitx5-5.1.7/src/modules/emoji/emoji.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/emoji/emoji.h 2024-10-09 03:48:05.000000000 +0800 @@ -8,7 +8,6 @@ #define _FCITX5_MODULES_EMOJI_EMOJI_H_ #include <map> -#include <set> #include <vector> #include "fcitx/addoninstance.h" #include "emoji_public.h" diff -Nru fcitx5-5.1.7/src/modules/notificationitem/dbusmenu.cpp fcitx5-5.1.11/src/modules/notificationitem/dbusmenu.cpp --- fcitx5-5.1.7/src/modules/notificationitem/dbusmenu.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/notificationitem/dbusmenu.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -5,7 +5,6 @@ * */ #include "dbusmenu.h" -#include "fcitx-utils/log.h" #include "fcitx/action.h" #include "fcitx/inputcontext.h" #include "fcitx/inputmethodentry.h" diff -Nru fcitx5-5.1.7/src/modules/notificationitem/dbusmenu.h fcitx5-5.1.11/src/modules/notificationitem/dbusmenu.h --- fcitx5-5.1.7/src/modules/notificationitem/dbusmenu.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/notificationitem/dbusmenu.h 2024-10-09 03:48:05.000000000 +0800 @@ -8,14 +8,11 @@ #define _FCITX_MODULES_NOTIFICATIONITEM_DBUSMENU_H_ #include <unordered_set> -#include <fcitx-utils/stringutils.h> #include "fcitx-utils/dbus/message.h" #include "fcitx-utils/dbus/objectvtable.h" #include "fcitx-utils/dbus/variant.h" #include "fcitx-utils/event.h" -#include "fcitx-utils/fs.h" #include "fcitx-utils/i18n.h" -#include "fcitx-utils/log.h" #include "fcitx/icontheme.h" #include "fcitx/inputcontext.h" diff -Nru fcitx5-5.1.7/src/modules/notificationitem/notificationitem.cpp fcitx5-5.1.11/src/modules/notificationitem/notificationitem.cpp --- fcitx5-5.1.7/src/modules/notificationitem/notificationitem.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/notificationitem/notificationitem.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -7,18 +7,13 @@ #include "notificationitem.h" #include <unistd.h> -#include <fmt/format.h> #include "fcitx-utils/charutils.h" #include "fcitx-utils/dbus/message.h" #include "fcitx-utils/dbus/objectvtable.h" #include "fcitx-utils/endian_p.h" -#include "fcitx-utils/fs.h" #include "fcitx-utils/i18n.h" #include "fcitx/addonfactory.h" #include "fcitx/addonmanager.h" -#include "fcitx/inputmethodengine.h" -#include "fcitx/inputmethodentry.h" -#include "fcitx/inputmethodmanager.h" #include "fcitx/misc_p.h" #include "classicui_public.h" #include "dbusmenu.h" @@ -105,8 +100,8 @@ newOverlayIcon(); } } - lastIconName_ = icon; - lastLabel_ = label; + lastIconName_ = std::move(icon); + lastLabel_ = std::move(label); } void reset() { diff -Nru fcitx5-5.1.7/src/modules/notificationitem/notificationitem.h fcitx5-5.1.11/src/modules/notificationitem/notificationitem.h --- fcitx5-5.1.7/src/modules/notificationitem/notificationitem.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/notificationitem/notificationitem.h 2024-10-09 03:48:05.000000000 +0800 @@ -9,10 +9,7 @@ #include <memory> #include <fcitx/addonmanager.h> -#include "fcitx-config/configuration.h" -#include "fcitx-config/iniparser.h" #include "fcitx-utils/dbus/servicewatcher.h" -#include "fcitx-utils/i18n.h" #include "fcitx/addoninstance.h" #include "fcitx/instance.h" #include "dbus_public.h" diff -Nru fcitx5-5.1.7/src/modules/notifications/notifications.cpp fcitx5-5.1.11/src/modules/notifications/notifications.cpp --- fcitx5-5.1.7/src/modules/notifications/notifications.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/notifications/notifications.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -7,11 +7,8 @@ */ #include "notifications.h" -#include <fcntl.h> #include "fcitx-config/iniparser.h" #include "fcitx-utils/i18n.h" -#include "fcitx-utils/misc.h" -#include "fcitx-utils/standardpath.h" #include "fcitx/addonfactory.h" #include "fcitx/addonmanager.h" #include "fcitx/icontheme.h" diff -Nru fcitx5-5.1.7/src/modules/notifications/notifications.h fcitx5-5.1.11/src/modules/notifications/notifications.h --- fcitx5-5.1.7/src/modules/notifications/notifications.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/notifications/notifications.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,14 +7,12 @@ #ifndef _FCITX_MODULES_NOTIFICATIONS_NOTIFICATIONS_H_ #define _FCITX_MODULES_NOTIFICATIONS_NOTIFICATIONS_H_ -#include <functional> #include <unordered_set> #include <utility> #include "fcitx-config/configuration.h" #include "fcitx-config/iniparser.h" #include "fcitx-utils/dbus/bus.h" #include "fcitx-utils/dbus/servicewatcher.h" -#include "fcitx-utils/fs.h" #include "fcitx-utils/i18n.h" #include "fcitx/addoninstance.h" #include "fcitx/instance.h" diff -Nru fcitx5-5.1.7/src/modules/quickphrase/quickphrase.cpp fcitx5-5.1.11/src/modules/quickphrase/quickphrase.cpp --- fcitx5-5.1.7/src/modules/quickphrase/quickphrase.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/quickphrase/quickphrase.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -5,19 +5,31 @@ * */ #include "quickphrase.h" -#include <fcntl.h> +#include <array> +#include <memory> +#include <string> #include <utility> #include "fcitx-config/iniparser.h" -#include "fcitx-utils/charutils.h" +#include "fcitx-utils/capabilityflags.h" +#include "fcitx-utils/handlertable.h" #include "fcitx-utils/i18n.h" #include "fcitx-utils/inputbuffer.h" -#include "fcitx-utils/standardpath.h" -#include "fcitx-utils/utf8.h" +#include "fcitx-utils/key.h" +#include "fcitx-utils/keysym.h" +#include "fcitx-utils/textformatflags.h" +#include "fcitx/addonfactory.h" +#include "fcitx/addoninstance.h" #include "fcitx/addonmanager.h" #include "fcitx/candidatelist.h" +#include "fcitx/event.h" #include "fcitx/inputcontextmanager.h" #include "fcitx/inputpanel.h" +#include "fcitx/instance.h" +#include "fcitx/text.h" +#include "fcitx/userinterface.h" +#include "quickphrase_public.h" +#include "quickphraseprovider.h" namespace fcitx { @@ -121,7 +133,7 @@ } if (keyEvent.key().check(FcitxKey_space) && - candidateList->size()) { + !candidateList->empty()) { keyEvent.accept(); if (candidateList->cursorIndex() >= 0) { candidateList->candidate(candidateList->cursorIndex()) @@ -164,7 +176,7 @@ } } - if (candidateList->size() && + if (!candidateList->empty() && keyEvent.key().checkKeyList( instance_->globalConfig().defaultPrevCandidate())) { keyEvent.filterAndAccept(); @@ -174,7 +186,7 @@ return; } - if (candidateList->size() && + if (!candidateList->empty() && keyEvent.key().checkKeyList( instance_->globalConfig().defaultNextCandidate())) { keyEvent.filterAndAccept(); @@ -245,21 +257,21 @@ state->buffer_.setCursor(0); keyEvent.accept(); return updateUI(inputContext); - } else if (key.check(FcitxKey_End) || - key.check(FcitxKey_KP_End)) { + } + if (key.check(FcitxKey_End) || key.check(FcitxKey_KP_End)) { state->buffer_.setCursor(state->buffer_.size()); keyEvent.accept(); return updateUI(inputContext); - } else if (key.check(FcitxKey_Left) || - key.check(FcitxKey_KP_Left)) { + } + if (key.check(FcitxKey_Left) || key.check(FcitxKey_KP_Left)) { auto cursor = state->buffer_.cursor(); if (cursor > 0) { state->buffer_.setCursor(cursor - 1); } keyEvent.accept(); return updateUI(inputContext); - } else if (key.check(FcitxKey_Right) || - key.check(FcitxKey_KP_Right)) { + } + if (key.check(FcitxKey_Right) || key.check(FcitxKey_KP_Right)) { auto cursor = state->buffer_.cursor(); if (cursor < state->buffer_.size()) { state->buffer_.setCursor(cursor + 1); @@ -329,9 +341,12 @@ public: QuickPhraseCandidateWord(QuickPhrase *q, std::string commit, const std::string &display, + const std::string &comment, QuickPhraseAction action) : CandidateWord(Text(display)), q_(q), commit_(std::move(commit)), - action_(action) {} + action_(action) { + setComment(Text(comment)); + } void select(InputContext *inputContext) const override { auto *state = inputContext->propertyFor(&q_->factory()); @@ -402,6 +417,8 @@ inputContext->inputPanel().reset(); if (!state->buffer_.empty()) { auto candidateList = std::make_unique<CommonCandidateList>(); + candidateList->setCursorPositionAfterPaging( + CursorPositionAfterPaging::ResetToFirst); candidateList->setPageSize(instance_->globalConfig().defaultPageSize()); QuickPhraseProvider *providers[] = {&callbackProvider_, &builtinProvider_, &spellProvider_}; @@ -413,9 +430,9 @@ if (!provider->populate( inputContext, state->buffer_.userInput(), [this, &candidateList, &selectionKeyAction, &autoCommit, - &autoCommitSet](const std::string &word, - const std::string &aux, - QuickPhraseAction action) { + &autoCommitSet]( + const std::string &word, const std::string &aux, + const std::string &comment, QuickPhraseAction action) { if (!autoCommitSet && action == QuickPhraseAction::AutoCommit) { autoCommit = word; @@ -427,7 +444,7 @@ } if (!word.empty()) { candidateList->append<QuickPhraseCandidateWord>( - this, word, aux, action); + this, word, aux, comment, action); } else { if (action == QuickPhraseAction::DigitSelection || action == QuickPhraseAction::AlphaSelection || @@ -486,11 +503,17 @@ builtinProvider_.reloadConfig(); readAsIni(config_, "conf/quickphrase.conf"); } + std::unique_ptr<HandlerTableEntry<QuickPhraseProviderCallback>> QuickPhrase::addProvider(QuickPhraseProviderCallback callback) { return callbackProvider_.addCallback(std::move(callback)); } +std::unique_ptr<HandlerTableEntry<QuickPhraseProviderCallbackV2>> +QuickPhrase::addProviderV2(QuickPhraseProviderCallbackV2 callback) { + return callbackProvider_.addCallback(std::move(callback)); +} + void QuickPhrase::trigger(InputContext *ic, const std::string &text, const std::string &prefix, const std::string &str, const std::string &alt, const Key &key) { diff -Nru fcitx5-5.1.7/src/modules/quickphrase/quickphrase.d/emoji.mb fcitx5-5.1.11/src/modules/quickphrase/quickphrase.d/emoji.mb --- fcitx5-5.1.7/src/modules/quickphrase/quickphrase.d/emoji.mb 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/quickphrase/quickphrase.d/emoji.mb 2024-10-09 03:48:05.000000000 +0800 @@ -36,4 +36,4 @@ ah (´_>`) ah ╮( ̄▽ ̄)╭ ah ●﹏● -shrug ¯\_(ツ)_/¯ +shrug ¯\\_(ツ)_/¯ diff -Nru fcitx5-5.1.7/src/modules/quickphrase/quickphrase.d/latex.mb fcitx5-5.1.11/src/modules/quickphrase/quickphrase.d/latex.mb --- fcitx5-5.1.7/src/modules/quickphrase/quickphrase.d/latex.mb 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/quickphrase/quickphrase.d/latex.mb 2024-10-09 03:48:05.000000000 +0800 @@ -1,4 +1,4 @@ -\backslash \ +\backslash \\ \hat ^ \grave ` \tilde ~ diff -Nru fcitx5-5.1.7/src/modules/quickphrase/quickphrase.h fcitx5-5.1.11/src/modules/quickphrase/quickphrase.h --- fcitx5-5.1.7/src/modules/quickphrase/quickphrase.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/quickphrase/quickphrase.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,16 +7,18 @@ #ifndef _FCITX_MODULES_QUICKPHRASE_QUICKPHRASE_H_ #define _FCITX_MODULES_QUICKPHRASE_QUICKPHRASE_H_ -#include <map> +#include <memory> +#include <string> +#include <vector> #include "fcitx-config/configuration.h" #include "fcitx-config/enum.h" #include "fcitx-config/iniparser.h" +#include "fcitx-config/option.h" +#include "fcitx-config/rawconfig.h" +#include "fcitx-utils/handlertable.h" #include "fcitx-utils/i18n.h" #include "fcitx-utils/key.h" -#include "fcitx-utils/standardpath.h" -#include "fcitx/addonfactory.h" #include "fcitx/addoninstance.h" -#include "fcitx/addonmanager.h" #include "fcitx/inputcontextproperty.h" #include "fcitx/instance.h" #include "quickphrase_public.h" @@ -62,7 +64,7 @@ safeSaveAsIni(config_, "conf/quickphrase.conf"); } void setSubConfig(const std::string &path, - const fcitx::RawConfig &) override { + const fcitx::RawConfig & /*unused*/) override { if (path == "editor") { reloadConfig(); } @@ -80,9 +82,13 @@ std::unique_ptr<HandlerTableEntry<QuickPhraseProviderCallback>> addProvider(QuickPhraseProviderCallback); + std::unique_ptr<HandlerTableEntry<QuickPhraseProviderCallbackV2>> + addProviderV2(QuickPhraseProviderCallbackV2); + private: FCITX_ADDON_EXPORT_FUNCTION(QuickPhrase, trigger); FCITX_ADDON_EXPORT_FUNCTION(QuickPhrase, addProvider); + FCITX_ADDON_EXPORT_FUNCTION(QuickPhrase, addProviderV2); FCITX_ADDON_EXPORT_FUNCTION(QuickPhrase, setBuffer); void setSelectionKeys(QuickPhraseAction action); diff -Nru fcitx5-5.1.7/src/modules/quickphrase/quickphrase_public.h fcitx5-5.1.11/src/modules/quickphrase/quickphrase_public.h --- fcitx5-5.1.7/src/modules/quickphrase/quickphrase_public.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/quickphrase/quickphrase_public.h 2024-10-09 03:48:05.000000000 +0800 @@ -8,7 +8,9 @@ #define _FCITX_MODULES_QUICKPHRASE_QUICKPHRASE_PUBLIC_H_ #include <functional> +#include <memory> #include <string> +#include <fcitx-utils/handlertable.h> #include <fcitx-utils/key.h> #include <fcitx-utils/metastring.h> #include <fcitx/addoninstance.h> @@ -32,6 +34,13 @@ std::function<bool(InputContext *ic, const std::string &, const QuickPhraseAddCandidateCallback &)>; +using QuickPhraseAddCandidateCallbackV2 = + std::function<void(const std::string &, const std::string &, + const std::string &, QuickPhraseAction action)>; +using QuickPhraseProviderCallbackV2 = + std::function<bool(InputContext *ic, const std::string &, + const QuickPhraseAddCandidateCallbackV2 &)>; + } // namespace fcitx /// Trigger quickphrase, with following format: @@ -49,4 +58,9 @@ std::unique_ptr<HandlerTableEntry<QuickPhraseProviderCallback>>( QuickPhraseProviderCallback)); +FCITX_ADDON_DECLARE_FUNCTION( + QuickPhrase, addProviderV2, + std::unique_ptr<HandlerTableEntry<QuickPhraseProviderCallbackV2>>( + QuickPhraseProviderCallbackV2)); + #endif // _FCITX_MODULES_QUICKPHRASE_QUICKPHRASE_PUBLIC_H_ diff -Nru fcitx5-5.1.7/src/modules/quickphrase/quickphraseprovider.cpp fcitx5-5.1.11/src/modules/quickphrase/quickphraseprovider.cpp --- fcitx5-5.1.7/src/modules/quickphrase/quickphraseprovider.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/quickphrase/quickphraseprovider.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,19 +6,27 @@ */ #include "quickphraseprovider.h" #include <fcntl.h> +#include <cstddef> +#include <string> +#include <string_view> +#include <utility> #include <fcitx-utils/utf8.h> #include <fcitx/inputmethodentry.h> #include "fcitx-utils/fs.h" +#include "fcitx-utils/macros.h" +#include "fcitx-utils/misc.h" #include "fcitx-utils/standardpath.h" #include "fcitx-utils/stringutils.h" +#include "fcitx/inputcontext.h" #include "quickphrase.h" +#include "quickphrase_public.h" #include "spell_public.h" namespace fcitx { bool BuiltInQuickPhraseProvider::populate( InputContext *, const std::string &userInput, - const QuickPhraseAddCandidateCallback &addCandidate) { + const QuickPhraseAddCandidateCallbackV2 &addCandidate) { auto start = map_.lower_bound(userInput); auto end = map_.end(); @@ -26,9 +34,7 @@ if (!stringutils::startsWith(start->first, userInput)) { break; } - addCandidate(start->second, - stringutils::concat(start->second, " ", - start->first.substr(userInput.size())), + addCandidate(start->second, start->second, start->first, QuickPhraseAction::Commit); } return true; @@ -36,28 +42,28 @@ void BuiltInQuickPhraseProvider::reloadConfig() { map_.clear(); - auto file = StandardPath::global().open(StandardPath::Type::PkgData, - "data/QuickPhrase.mb", O_RDONLY); - auto files = StandardPath::global().multiOpen( - StandardPath::Type::PkgData, "data/quickphrase.d/", O_RDONLY, - filter::Suffix(".mb")); - auto disableFiles = StandardPath::global().multiOpen( - StandardPath::Type::PkgData, "data/quickphrase.d/", O_RDONLY, - filter::Suffix(".mb.disable")); - if (file.fd() >= 0) { - load(file); + if (auto file = StandardPath::global().open( + StandardPath::Type::PkgData, "data/QuickPhrase.mb", O_RDONLY); + file.fd() >= 0) { + load(fs::openFD(file, "rb")); } + auto files = StandardPath::global().locate(StandardPath::Type::PkgData, + "data/quickphrase.d/", + filter::Suffix(".mb")); + auto disableFiles = StandardPath::global().locate( + StandardPath::Type::PkgData, "data/quickphrase.d/", + filter::Suffix(".mb.disable")); for (auto &p : files) { if (disableFiles.count(stringutils::concat(p.first, ".disable"))) { continue; } - load(p.second); + UnixFD fd = UnixFD::own(open(p.second.c_str(), O_RDONLY)); + load(fs::openFD(fd, "rb")); } } -void BuiltInQuickPhraseProvider::load(StandardPathFile &file) { - UniqueFilePtr fp = fs::openFD(file, "rb"); +void BuiltInQuickPhraseProvider::load(UniqueFilePtr fp) { if (!fp) { return; } @@ -65,13 +71,10 @@ UniqueCPtr<char> buf; size_t len = 0; while (getline(buf, &len, fp.get()) != -1) { - std::string strBuf(buf.get()); - - auto [start, end] = stringutils::trimInplace(strBuf); - if (start == end) { + std::string_view text = stringutils::trimView(buf.get()); + if (text.empty()) { continue; } - std::string_view text(strBuf.data() + start, end - start); if (!utf8::validate(text)) { continue; } @@ -87,8 +90,7 @@ } std::string key(text.begin(), text.begin() + pos); - auto wordString = - stringutils::unescapeForValue(std::string_view(text.substr(word))); + auto wordString = stringutils::unescapeForValue(text.substr(word)); if (!wordString) { continue; @@ -97,21 +99,21 @@ } } -SpellQuickPhraseProvider::SpellQuickPhraseProvider(QuickPhrase *quickPhrase) - : parent_(quickPhrase), instance_(parent_->instance()) {} +SpellQuickPhraseProvider::SpellQuickPhraseProvider(QuickPhrase *parent) + : parent_(parent), instance_(parent_->instance()) {} bool SpellQuickPhraseProvider::populate( InputContext *ic, const std::string &userInput, - const QuickPhraseAddCandidateCallback &addCandidate) { + const QuickPhraseAddCandidateCallbackV2 &addCandidate) { if (!*parent_->config().enableSpell) { return true; } - auto spell = this->spell(); + auto *spell = this->spell(); if (!spell) { return true; } std::string lang = *parent_->config().fallbackSpellLanguage; - if (auto entry = instance_->inputMethodEntry(ic)) { + if (const auto *entry = instance_->inputMethodEntry(ic)) { if (spell->call<ISpell::checkDict>(entry->languageCode())) { lang = entry->languageCode(); } else if (!spell->call<ISpell::checkDict>(lang)) { @@ -121,19 +123,29 @@ const auto result = spell->call<ISpell::hint>( lang, userInput, instance_->globalConfig().defaultPageSize()); for (const auto &word : result) { - addCandidate(word, word, QuickPhraseAction::Commit); + addCandidate(word, word, "", QuickPhraseAction::Commit); } return true; } bool CallbackQuickPhraseProvider::populate( InputContext *ic, const std::string &userInput, - const QuickPhraseAddCandidateCallback &addCandidate) { - for (const auto &callback : callback_.view()) { + const QuickPhraseAddCandidateCallbackV2 &addCandidate) { + for (const auto &callback : callbackV2_.view()) { if (!callback(ic, userInput, addCandidate)) { return false; } } + for (const auto &callback : callback_.view()) { + if (!callback(ic, userInput, + [&addCandidate](const std::string &word, + const std::string &aux, + QuickPhraseAction action) { + return addCandidate(word, aux, "", action); + })) { + return false; + } + } return true; } diff -Nru fcitx5-5.1.7/src/modules/quickphrase/quickphraseprovider.h fcitx5-5.1.11/src/modules/quickphrase/quickphraseprovider.h --- fcitx5-5.1.7/src/modules/quickphrase/quickphraseprovider.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/quickphrase/quickphraseprovider.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,11 +7,14 @@ #ifndef _FCITX5_MODULES_QUICKPHRASE_QUICKPHRASEPROVIDER_H_ #define _FCITX5_MODULES_QUICKPHRASE_QUICKPHRASEPROVIDER_H_ -#include <functional> #include <map> +#include <memory> #include <string> +#include <utility> #include "fcitx-utils/connectableobject.h" -#include "fcitx-utils/standardpath.h" +#include "fcitx-utils/handlertable.h" +#include "fcitx-utils/misc.h" +#include "fcitx/addoninstance.h" #include "fcitx/addonmanager.h" #include "fcitx/instance.h" #include "quickphrase_public.h" @@ -25,17 +28,18 @@ virtual ~QuickPhraseProvider() = default; virtual bool populate(InputContext *ic, const std::string &userInput, - const QuickPhraseAddCandidateCallback &addCandidate) = 0; + const QuickPhraseAddCandidateCallbackV2 &addCandidate) = 0; }; class BuiltInQuickPhraseProvider : public QuickPhraseProvider { public: - bool populate(InputContext *ic, const std::string &userInput, - const QuickPhraseAddCandidateCallback &addCandidate) override; + bool + populate(InputContext *ic, const std::string &userInput, + const QuickPhraseAddCandidateCallbackV2 &addCandidate) override; void reloadConfig(); private: - void load(StandardPathFile &file); + void load(UniqueFilePtr fp); std::multimap<std::string, std::string> map_; }; @@ -44,8 +48,9 @@ SpellQuickPhraseProvider(QuickPhrase *parent); FCITX_ADDON_DEPENDENCY_LOADER(spell, instance_->addonManager()); - bool populate(InputContext *ic, const std::string &userInput, - const QuickPhraseAddCandidateCallback &addCandidate) override; + bool + populate(InputContext *ic, const std::string &userInput, + const QuickPhraseAddCandidateCallbackV2 &addCandidate) override; private: QuickPhrase *parent_; @@ -55,16 +60,23 @@ class CallbackQuickPhraseProvider : public QuickPhraseProvider, public ConnectableObject { public: - bool populate(InputContext *ic, const std::string &userInput, - const QuickPhraseAddCandidateCallback &addCandidate) override; + bool + populate(InputContext *ic, const std::string &userInput, + const QuickPhraseAddCandidateCallbackV2 &addCandidate) override; std::unique_ptr<HandlerTableEntry<QuickPhraseProviderCallback>> addCallback(QuickPhraseProviderCallback callback) { return callback_.add(std::move(callback)); } + std::unique_ptr<HandlerTableEntry<QuickPhraseProviderCallbackV2>> + addCallback(QuickPhraseProviderCallbackV2 callback) { + return callbackV2_.add(std::move(callback)); + } + private: HandlerTable<QuickPhraseProviderCallback> callback_; + HandlerTable<QuickPhraseProviderCallbackV2> callbackV2_; }; } // namespace fcitx diff -Nru fcitx5-5.1.7/src/modules/spell/spell-custom-dict.cpp fcitx5-5.1.11/src/modules/spell/spell-custom-dict.cpp --- fcitx5-5.1.7/src/modules/spell/spell-custom-dict.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/spell/spell-custom-dict.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -239,7 +239,7 @@ } auto fullPath = stringutils::joinPath(dirPath, templatePath); if (fs::isreg(fullPath)) { - path = fullPath; + path = std::move(fullPath); return false; } return true; diff -Nru fcitx5-5.1.7/src/modules/spell/spell-custom.cpp fcitx5-5.1.11/src/modules/spell/spell-custom.cpp --- fcitx5-5.1.7/src/modules/spell/spell-custom.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/spell/spell-custom.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -7,7 +7,6 @@ */ #include "spell-custom.h" -#include "fcitx-utils/cutf8.h" #include "spell-custom-dict.h" fcitx::SpellCustom::SpellCustom(fcitx::Spell *spell) diff -Nru fcitx5-5.1.7/src/modules/spell/spell-enchant.cpp fcitx5-5.1.11/src/modules/spell/spell-enchant.cpp --- fcitx5-5.1.7/src/modules/spell/spell-enchant.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/spell/spell-enchant.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -7,9 +7,6 @@ */ #include "spell-enchant.h" -#include <dlfcn.h> -#include <fcntl.h> -#include <sys/stat.h> #include <time.h> #include <stdexcept> #include <enchant.h> diff -Nru fcitx5-5.1.7/src/modules/spell/spell.cpp fcitx5-5.1.11/src/modules/spell/spell.cpp --- fcitx5-5.1.7/src/modules/spell/spell.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/spell/spell.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,9 +6,7 @@ */ #include "spell.h" -#include <fcntl.h> #include "fcitx-config/iniparser.h" -#include "fcitx-utils/standardpath.h" #include "fcitx/addonmanager.h" #include "config.h" #include "spell-custom.h" diff -Nru fcitx5-5.1.7/src/modules/spell/spell.h fcitx5-5.1.11/src/modules/spell/spell.h --- fcitx5-5.1.7/src/modules/spell/spell.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/spell/spell.h 2024-10-09 03:48:05.000000000 +0800 @@ -40,7 +40,6 @@ SpellProvider::Custom, SpellProvider::Enchant}};); -class Spell; class SpellBackend; class Spell final : public AddonInstance { Binary files /tmp/tmpol338pzz/6tHJZntjDv/fcitx5-5.1.7/src/modules/unicode/charselectdata and /tmp/tmpol338pzz/NHXSvxDBno/fcitx5-5.1.11/src/modules/unicode/charselectdata differ diff -Nru fcitx5-5.1.7/src/modules/unicode/charselectdata.cpp fcitx5-5.1.11/src/modules/unicode/charselectdata.cpp --- fcitx5-5.1.7/src/modules/unicode/charselectdata.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/unicode/charselectdata.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -19,12 +19,10 @@ #include <algorithm> #include <cstring> #include <iomanip> -#include <iostream> #include <set> -#include <stdexcept> +#include <sstream> #include <fmt/format.h> #include "fcitx-utils/charutils.h" -#include "fcitx-utils/endian_p.h" #include "fcitx-utils/fs.h" #include "fcitx-utils/i18n.h" #include "fcitx-utils/misc_p.h" diff -Nru fcitx5-5.1.7/src/modules/unicode/charselectdata.h fcitx5-5.1.11/src/modules/unicode/charselectdata.h --- fcitx5-5.1.7/src/modules/unicode/charselectdata.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/unicode/charselectdata.h 2024-10-09 03:48:05.000000000 +0800 @@ -9,7 +9,6 @@ #include <cstdint> #include <set> -#include <sstream> #include <string> #include <unordered_map> #include <vector> diff -Nru fcitx5-5.1.7/src/modules/unicode/gen.py fcitx5-5.1.11/src/modules/unicode/gen.py --- fcitx5-5.1.7/src/modules/unicode/gen.py 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/unicode/gen.py 2024-10-09 03:48:05.000000000 +0800 @@ -91,15 +91,19 @@ sectiondata = ''' SECTION European Scripts Armenian +Carian Caucasian Albanian Cypriot Syllabary +Cypro-Minoan Cyrillic Cyrillic Supplement Cyrillic Extended-A Cyrillic Extended-B Cyrillic Extended-C +Cyrillic Extended-D Elbasan Georgian +Georgian Extended Georgian Supplement Glagolitic Glagolitic Supplement @@ -114,6 +118,8 @@ Latin Extended-C Latin Extended-D Latin Extended-E +Latin Extended-F +Latin Extended-G Latin Extended Additional IPA Extensions Phonetic Extensions @@ -122,6 +128,8 @@ Linear B Syllabary Linear B Ideograms Aegean Numbers +Lycian +Lydian Ogham Old Hungarian Old Italic @@ -129,6 +137,7 @@ Phaistos Disc Runic Shavian +Vithkuqi SECTION Modifier Letters Modifier Tone Letters @@ -142,6 +151,10 @@ Combining Diacritical Marks for Symbols Combining Half Marks +SECTION Miscellaneous +Alphabetic Presentation Forms +Halfwidth and Fullwidth Forms + SECTION African Scripts Adlam Bamum @@ -150,10 +163,13 @@ Coptic Coptic Epact Numbers Egyptian Hieroglyphs +Egyptian Hieroglyph Format Controls Ethiopic Ethiopic Supplement Ethiopic Extended Ethiopic Extended-A +Ethiopic Extended-B +Medefaidrin Mende Kikakui Meroitic Cursive Meroitic Hieroglyphs @@ -167,20 +183,21 @@ Arabic Arabic Supplement Arabic Extended-A +Arabic Extended-B +Arabic Extended-C Arabic Presentation Forms-A Arabic Presentation Forms-B Imperial Aramaic Avestan -Carian +Chorasmian Cuneiform Cuneiform Numbers and Punctuation Early Dynastic Cuneiform Old Persian Ugaritic +Elymaic Hatran Hebrew -Lycian -Lydian Mandaic Nabataean Old North Arabian @@ -192,15 +209,22 @@ Phoenician Samaritan Syriac +Syriac Supplement +Yezidi SECTION Central Asian Scripts Manichaean Marchen Mongolian Mongolian Supplement +Old Sogdian Old Turkic +Old Uyghur Phags-pa +Sogdian +Soyombo Tibetan +Zanabazar Square SECTION South Asian Scripts Ahom @@ -210,8 +234,12 @@ Chakma Devanagari Devanagari Extended +Devanagari Extended-A +Dives Akuru +Dogra Grantha Gujarati +Gunjala Gondi Gurmukhi Kaithi Kannada @@ -222,11 +250,14 @@ Limbu Mahajani Malayalam +Masaram Gondi Meetei Mayek Meetei Mayek Extensions Modi Mro Multani +Nag Mundari +Nandinagari Newa Ol Chiki Oriya @@ -239,14 +270,18 @@ Syloti Nagri Takri Tamil +Tamil Supplement Telugu Thaana Tirhuta +Toto Vedic Extensions +Wancho Warang Citi SECTION Southeast Asian Scripts Cham +Hanifi Rohingya Kayah Li Khmer Khmer Symbols @@ -255,11 +290,13 @@ Myanmar Extended-A Myanmar Extended-B New Tai Lue +Nyiakeng Puachue Hmong Pahawh Hmong Pau Cin Hau Tai Le Tai Tham Tai Viet +Tangsa Thai SECTION Indonesia & Oceania Scripts @@ -269,6 +306,8 @@ Buhid Hanunoo Javanese +Kawi +Makasar Rejang Sundanese Sundanese Supplement @@ -284,6 +323,10 @@ CJK Unified Ideographs Extension C CJK Unified Ideographs Extension D CJK Unified Ideographs Extension E +CJK Unified Ideographs Extension F +CJK Unified Ideographs Extension G +CJK Unified Ideographs Extension H +CJK Unified Ideographs Extension I CJK Compatibility Ideographs CJK Compatibility Ideographs Supplement Kangxi Radicals @@ -296,14 +339,21 @@ Hangul Compatibility Jamo Hangul Syllables Hiragana -Katakana -Katakana Phonetic Extensions +Kana Extended-A +Kana Extended-B Kana Supplement +Small Kana Extension Kanbun +Katakana +Katakana Phonetic Extensions +Khitan Small Script Lisu +Lisu Supplement Miao +Nushu Tangut Tangut Components +Tangut Supplement Yi Syllables Yi Radicals @@ -314,16 +364,14 @@ Osage Unified Canadian Aboriginal Syllabics Unified Canadian Aboriginal Syllabics Extended - -SECTION Other -Alphabetic Presentation Forms -Halfwidth and Fullwidth Forms +Unified Canadian Aboriginal Syllabics Extended-A SECTION Notational Systems Braille Patterns Musical Symbols Ancient Greek Musical Notation Byzantine Musical Symbols +Znamenny Musical Notation Duployan Shorthand Format Controls Sutton SignWriting @@ -358,7 +406,11 @@ Coptic Epact Numbers Counting Rod Numerals Cuneiform Numbers and Punctuation +Indic Siyaq Numbers +Kaktovik Numerals +Mayan Numerals Number Forms +Ottoman Siyaq Numbers Rumi Numeral Symbols Sinhala Archaic Numbers @@ -387,16 +439,19 @@ Miscellaneous Symbols Miscellaneous Symbols and Pictographs Supplemental Symbols and Pictographs +Symbols and Pictographs Extended-A Transport and Map Symbols SECTION Other Symbols Alchemical Symbols Ancient Symbols Currency Symbols +Chess Symbols Domino Tiles Mahjong Tiles Playing Cards Miscellaneous Symbols and Arrows +Symbols for Legacy Computing Yijing Hexagram Symbols Tai Xuan Jing Symbols diff -Nru fcitx5-5.1.7/src/modules/unicode/unicode.cpp fcitx5-5.1.11/src/modules/unicode/unicode.cpp --- fcitx5-5.1.7/src/modules/unicode/unicode.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/unicode/unicode.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -51,10 +51,9 @@ } void select(InputContext *inputContext) const override { - auto commit = text().stringAt(0); + inputContext->commitString(text().stringAt(0)); auto *state = inputContext->propertyFor(&q_->factory()); state->reset(inputContext); - inputContext->commitString(commit); } Unicode *q_; @@ -429,7 +428,7 @@ utf8::UCS4ToUTF8(chr), chr); } candidateList->append<DisplayOnlyCandidateWord>( - Text(display)); + Text(std::move(display))); if (counter >= limit) { break; } diff -Nru fcitx5-5.1.7/src/modules/unicode/unicode.h fcitx5-5.1.11/src/modules/unicode/unicode.h --- fcitx5-5.1.7/src/modules/unicode/unicode.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/unicode/unicode.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,13 +7,10 @@ #ifndef _FCITX_MODULES_UNICODE_UNICODE_H_ #define _FCITX_MODULES_UNICODE_UNICODE_H_ -#include <map> #include "fcitx-config/configuration.h" -#include "fcitx-config/enum.h" #include "fcitx-config/iniparser.h" #include "fcitx-utils/i18n.h" #include "fcitx-utils/key.h" -#include "fcitx-utils/standardpath.h" #include "fcitx/addonfactory.h" #include "fcitx/addoninstance.h" #include "fcitx/addonmanager.h" diff -Nru fcitx5-5.1.7/src/modules/wayland/wayland.conf.in.in fcitx5-5.1.11/src/modules/wayland/wayland.conf.in.in --- fcitx5-5.1.7/src/modules/wayland/wayland.conf.in.in 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/wayland/wayland.conf.in.in 2024-10-09 03:48:05.000000000 +0800 @@ -4,3 +4,4 @@ Library=libwayland Category=Module Version=@PROJECT_VERSION@ +Configurable=True diff -Nru fcitx5-5.1.7/src/modules/wayland/wayland_public.h fcitx5-5.1.11/src/modules/wayland/wayland_public.h --- fcitx5-5.1.7/src/modules/wayland/wayland_public.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/wayland/wayland_public.h 2024-10-09 03:48:05.000000000 +0800 @@ -13,15 +13,15 @@ #include <fcitx-utils/metastring.h> #include <fcitx/addoninstance.h> #include <fcitx/focusgroup.h> +#include <wayland-client-protocol.h> #include <wayland-client.h> namespace fcitx { -typedef std::function<void(const std::string &name, wl_display *display, - FocusGroup *group)> - WaylandConnectionCreated; -typedef std::function<void(const std::string &name, wl_display *display)> - WaylandConnectionClosed; +using WaylandConnectionCreated = + std::function<void(const std::string &, wl_display *, FocusGroup *)>; +using WaylandConnectionClosed = + std::function<void(const std::string &, wl_display *)>; } // namespace fcitx FCITX_ADDON_DECLARE_FUNCTION( @@ -38,5 +38,8 @@ FCITX_ADDON_DECLARE_FUNCTION(WaylandModule, openConnectionSocket, bool(int fd)); FCITX_ADDON_DECLARE_FUNCTION(WaylandModule, reopenConnectionSocket, bool(const std::string &name, int fd)); +FCITX_ADDON_DECLARE_FUNCTION(WaylandModule, repeatInfo, + std::optional<std::tuple<int32_t, int32_t>>( + const std::string &name, wl_seat *)); #endif // _FCITX_MODULES_WAYLAND_WAYLAND_PUBLIC_H_ diff -Nru fcitx5-5.1.7/src/modules/wayland/waylandeventreader.cpp fcitx5-5.1.11/src/modules/wayland/waylandeventreader.cpp --- fcitx5-5.1.7/src/modules/wayland/waylandeventreader.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/wayland/waylandeventreader.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -13,7 +13,8 @@ namespace fcitx { WaylandEventReader::WaylandEventReader(WaylandConnection *conn) - : module_(conn->parent()), conn_(conn), display_(*conn_->display()) { + : module_(conn->parent()), conn_(conn), display_(*conn_->display()), + dispatcherToMain_(module_->instance()->eventDispatcher()) { postEvent_ = module_->instance()->eventLoop().addPostEvent( [this](EventSource *source) { if (wl_display_get_error(display_)) { @@ -24,17 +25,14 @@ display_.flush(); return true; }); - dispatcherToMain_.attach(&conn->parent()->instance()->eventLoop()); // Actively trigger an initial dispatch so we can make sure: // 1. depending even before this WaylandEventReader are handled. // 2. prepare_read is called. - dispatcherToMain_.schedule([this]() { dispatch(); }); + dispatcherToMain_.scheduleWithContext(watch(), [this]() { dispatch(); }); thread_ = std::make_unique<std::thread>(&WaylandEventReader::runThread, this); } WaylandEventReader::~WaylandEventReader() { - // Prevent that dispatcherToMain_ to deliver removeConnection. - dispatcherToMain_.detach(); if (thread_->joinable()) { quit(); thread_->join(); @@ -59,7 +57,7 @@ ioEvent.reset(); dispatcherToWorker_.detach(); { - std::lock_guard lock(mutex_); + const std::lock_guard lock(mutex_); if (isReading_) { wl_display_cancel_read(display_); } @@ -70,7 +68,12 @@ { // Make sure previous dispatch ended. std::unique_lock lock(mutex_); - condition_.wait(lock, [this] { return quitting_ || isReading_; }); + condition_.wait(lock, [this, &lock] { + assert(lock.owns_lock()); + return quitting_ || isReading_; + }); + + assert(lock.owns_lock()); if (quitting_) { return false; @@ -88,7 +91,7 @@ } wl_display_read_events(display_); - dispatcherToMain_.schedule([this]() { dispatch(); }); + dispatcherToMain_.scheduleWithContext(watch(), [this]() { dispatch(); }); return true; } @@ -105,9 +108,10 @@ // Make sure the connection will be removed. // The destructor will join the reader thread so it's ok. - dispatcherToMain_.schedule([module = module_, name = conn_->name()]() { - module->removeConnection(name); - }); + dispatcherToMain_.scheduleWithContext( + watch(), [module = module_, name = conn_->name()]() { + module->removeConnection(name); + }); } void WaylandEventReader::dispatch() { diff -Nru fcitx5-5.1.7/src/modules/wayland/waylandeventreader.h fcitx5-5.1.11/src/modules/wayland/waylandeventreader.h --- fcitx5-5.1.7/src/modules/wayland/waylandeventreader.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/wayland/waylandeventreader.h 2024-10-09 03:48:05.000000000 +0800 @@ -12,6 +12,7 @@ #include <thread> #include "fcitx-utils/event.h" #include "fcitx-utils/eventdispatcher.h" +#include "fcitx-utils/trackableobject.h" #include "display.h" namespace fcitx { @@ -19,7 +20,7 @@ class WaylandConnection; class WaylandModule; -class WaylandEventReader { +class WaylandEventReader : public TrackableObject<WaylandEventReader> { public: WaylandEventReader(WaylandConnection *conn); ~WaylandEventReader(); @@ -34,7 +35,7 @@ WaylandModule *module_; WaylandConnection *conn_; wayland::Display &display_; - EventDispatcher dispatcherToMain_; + EventDispatcher &dispatcherToMain_; EventDispatcher dispatcherToWorker_; std::unique_ptr<EventSource> postEvent_; diff -Nru fcitx5-5.1.7/src/modules/wayland/waylandmodule.cpp fcitx5-5.1.11/src/modules/wayland/waylandmodule.cpp --- fcitx5-5.1.7/src/modules/wayland/waylandmodule.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/wayland/waylandmodule.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -9,12 +9,12 @@ #include <fcntl.h> #include <algorithm> #include <cstdlib> -#include <ctime> #include <memory> +#include <optional> #include <stdexcept> #include <string> #include <gio/gio.h> -#include <wayland-client.h> +#include <wayland-client-protocol.h> #include "fcitx-config/iniparser.h" #include "fcitx-utils/event.h" #include "fcitx-utils/log.h" @@ -23,6 +23,7 @@ #include "fcitx-utils/standardpath.h" #include "fcitx-utils/stringutils.h" #include "fcitx-utils/trackableobject.h" +#include "fcitx/addonfactory.h" #include "fcitx/inputcontext.h" #include "fcitx/instance.h" #include "fcitx/misc_p.h" @@ -158,6 +159,14 @@ }); } +std::optional<std::tuple<int32_t, int32_t>> +WaylandConnection::repeatInfo(wayland::WlSeat *seat) const { + if (const auto *keyboard = findValue(keyboards_, seat)) { + return keyboard->get()->repeatInfo(); + } + return std::nullopt; +} + WaylandModule::WaylandModule(fcitx::Instance *instance) : instance_(instance), isWaylandSession_(isSessionType("wayland")) { @@ -283,11 +292,11 @@ std::string name = displayName; auto iter = conns_.find(name); - if (iter == conns_.end() && !name.empty()) { + if (iter == conns_.end()) { do { // If it's in flatpak, WAYLAND_DISPLAY may be overrrided, so don't // compare it with default connection. - if (!isInFlatpak()) { + if (!isInFlatpak() && !name.empty()) { iter = conns_.find(""); if (iter != conns_.end() && iter->second->realName() == name) { name = ""; @@ -335,7 +344,7 @@ onConnectionCreated(*iter->second); // Transfer it to new connection's IC group, we do create two focus // group with same name, but well, ic manager doesn't check that. - for (auto icRef : ics) { + for (const auto &icRef : ics) { if (auto ic = icRef.get()) { if (!ic->focusGroup()) { ic->setFocusGroup(iter->second->focusGroup()); @@ -549,7 +558,8 @@ bool isWaylandIM = false; if (isInFlatpak()) { - // In flatpak, ReopenWaylandConnection will not replace existing connection. + // In flatpak, ReopenWaylandConnection will not replace existing + // connection. for (const auto &[_, conn] : conns_) { conn->focusGroup()->foreach([&isWaylandIM](InputContext *ic) { if (stringutils::startsWith(ic->frontendName(), "wayland")) { @@ -667,6 +677,23 @@ } } +std::optional<std::tuple<int32_t, int32_t>> +WaylandModule::repeatInfo(const std::string &name, wl_seat *seat) const { + if (!seat) { + return std::nullopt; + } + auto *wlSeat = static_cast<wayland::WlSeat *>(wl_seat_get_user_data(seat)); + if (!wlSeat) { + return std::nullopt; + } + conns_.find(name); + auto iter = conns_.find(name); + if (iter == conns_.end()) { + return std::nullopt; + } + return iter->second->repeatInfo(wlSeat); +} + class WaylandModuleFactory : public AddonFactory { public: AddonInstance *create(AddonManager *manager) override { diff -Nru fcitx5-5.1.7/src/modules/wayland/waylandmodule.h fcitx5-5.1.11/src/modules/wayland/waylandmodule.h --- fcitx5-5.1.7/src/modules/wayland/waylandmodule.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/wayland/waylandmodule.h 2024-10-09 03:48:05.000000000 +0800 @@ -10,14 +10,13 @@ #include <cstdint> #include <memory> #include <string> +#include <wayland-client-protocol.h> #include "fcitx-config/iniparser.h" #include "fcitx-utils/event.h" #include "fcitx-utils/i18n.h" #include "fcitx-utils/log.h" -#include "fcitx/addonfactory.h" #include "fcitx/addoninstance.h" #include "fcitx/addonmanager.h" -#include "fcitx/focusgroup.h" #include "fcitx/instance.h" #include "display.h" #include "wayland_public.h" @@ -50,16 +49,24 @@ auto &updateKeymap() { return updateKeymap_; } + const std::optional<std::tuple<int32_t, int32_t>> &repeatInfo() const { + return repeatInfo_; + } + private: void init() { keyboard_->keymap().connect([this](uint32_t, int32_t fd, uint32_t) { close(fd); updateKeymap_(); }); + keyboard_->repeatInfo().connect([this](int32_t rate, int32_t delay) { + repeatInfo_ = std::make_tuple(rate, delay); + }); } ScopedConnection capConn_; std::unique_ptr<wayland::WlKeyboard> keyboard_; Signal<void()> updateKeymap_; + std::optional<std::tuple<int32_t, int32_t>> repeatInfo_; }; class WaylandConnection { @@ -79,6 +86,9 @@ bool isWaylandSocket() const { return isWaylandSocket_; } + std::optional<std::tuple<int32_t, int32_t>> + repeatInfo(wayland::WlSeat *seat) const; + private: void init(wl_display *display); void finish(); @@ -91,7 +101,6 @@ std::unique_ptr<wayland::Display> display_; std::unique_ptr<WaylandEventReader> eventReader_; std::unique_ptr<FocusGroup> group_; - int error_ = 0; ScopedConnection panelConn_, panelRemovedConn_; std::unordered_map<wayland::WlSeat *, std::unique_ptr<WaylandKeyboard>> keyboards_; @@ -125,6 +134,9 @@ void selfDiagnose(); + std::optional<std::tuple<int32_t, int32_t>> + repeatInfo(const std::string &name, wl_seat *seat) const; + private: void onConnectionCreated(WaylandConnection &conn); void onConnectionClosed(WaylandConnection &conn); @@ -149,6 +161,7 @@ FCITX_ADDON_EXPORT_FUNCTION(WaylandModule, openConnection); FCITX_ADDON_EXPORT_FUNCTION(WaylandModule, openConnectionSocket); FCITX_ADDON_EXPORT_FUNCTION(WaylandModule, reopenConnectionSocket); + FCITX_ADDON_EXPORT_FUNCTION(WaylandModule, repeatInfo); std::vector<std::unique_ptr<HandlerTableEntry<EventHandler>>> eventHandlers_; diff -Nru fcitx5-5.1.7/src/modules/xcb/CMakeLists.txt fcitx5-5.1.11/src/modules/xcb/CMakeLists.txt --- fcitx5-5.1.7/src/modules/xcb/CMakeLists.txt 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/xcb/CMakeLists.txt 2024-10-09 03:48:05.000000000 +0800 @@ -1,6 +1,7 @@ if (ENABLE_X11) add_library(xcb MODULE xcbmodule.cpp xcbconnection.cpp xcbconvertselection.cpp xcbkeyboard.cpp xcbeventreader.cpp) +target_compile_definitions(xcb PRIVATE -DFCITX_XCB_EWMH) target_link_libraries(xcb Fcitx5::Core XCB::XCB XCB::AUX XCB::XKB XCB::XFIXES XCB::EWMH XCB::RANDR XCB::KEYSYMS XKBCommon::XKBCommon XKBCommon::X11 PkgConfig::XkbFile Pthread::Pthread ${FMT_TARGET} Fcitx5::Module::Notifications) if (ENABLE_DBUS) diff -Nru fcitx5-5.1.7/src/modules/xcb/xcb_public.h fcitx5-5.1.11/src/modules/xcb/xcb_public.h --- fcitx5-5.1.7/src/modules/xcb/xcb_public.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/xcb/xcb_public.h 2024-10-09 03:48:05.000000000 +0800 @@ -16,25 +16,27 @@ #ifndef FCITX_NO_XCB #include <xcb/xcb.h> +#ifdef FCITX_XCB_EWMH #include <xcb/xcb_ewmh.h> #endif +#endif struct xkb_state; namespace fcitx { -typedef std::array<std::string, 5> XkbRulesNames; +using XkbRulesNames = std::array<std::string, 5>; #ifndef FCITX_NO_XCB -typedef std::function<bool(xcb_connection_t *conn, xcb_generic_event_t *event)> - XCBEventFilter; -typedef std::function<void(const std::string &name, xcb_connection_t *conn, - int screen, FocusGroup *group)> - XCBConnectionCreated; -typedef std::function<void(const std::string &name, xcb_connection_t *conn)> - XCBConnectionClosed; -typedef std::function<void(xcb_atom_t selection)> XCBSelectionNotifyCallback; -typedef std::function<void(xcb_atom_t, const char *, size_t)> - XCBConvertSelectionCallback; +using XCBEventFilter = + std::function<bool(xcb_connection_t *conn, xcb_generic_event_t *event)>; +using XCBConnectionCreated = + std::function<void(const std::string &name, xcb_connection_t *conn, + int screen, FocusGroup *group)>; +using XCBConnectionClosed = + std::function<void(const std::string &name, xcb_connection_t *conn)>; +using XCBSelectionNotifyCallback = std::function<void(xcb_atom_t selection)>; +using XCBConvertSelectionCallback = + std::function<void(xcb_atom_t, const char *, size_t)>; #endif } // namespace fcitx @@ -65,8 +67,10 @@ XCBModule, addConnectionClosedCallback, std::unique_ptr<HandlerTableEntry<XCBConnectionClosed>>( XCBConnectionClosed)); +#if !defined(FCITX_NO_XCB) && defined(FCITX_XCB_EWMH) FCITX_ADDON_DECLARE_FUNCTION(XCBModule, ewmh, xcb_ewmh_connection_t *(const std::string &)); +#endif FCITX_ADDON_DECLARE_FUNCTION(XCBModule, atom, xcb_atom_t(const std::string &, const std::string &, bool)); diff -Nru fcitx5-5.1.7/src/modules/xcb/xcbconnection.h fcitx5-5.1.11/src/modules/xcb/xcbconnection.h --- fcitx5-5.1.7/src/modules/xcb/xcbconnection.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/xcb/xcbconnection.h 2024-10-09 03:48:05.000000000 +0800 @@ -10,7 +10,6 @@ #include <string> #include <fcitx/instance.h> #include <xcb/xcb_keysyms.h> -#include "fcitx-utils/event.h" #include "fcitx-utils/handlertable.h" #include "fcitx-utils/key.h" #include "xcb_public.h" diff -Nru fcitx5-5.1.7/src/modules/xcb/xcbconvertselection.cpp fcitx5-5.1.11/src/modules/xcb/xcbconvertselection.cpp --- fcitx5-5.1.7/src/modules/xcb/xcbconvertselection.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/xcb/xcbconvertselection.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -5,6 +5,7 @@ * */ #include "xcbconvertselection.h" +#include "xcb_public.h" #include "xcbconnection.h" #include "xcbmodule.h" @@ -45,7 +46,7 @@ const char *data, size_t length) { // Make a copy to real callback, because it might delete the this. - auto realCallback = realCallback_; + XCBConvertSelectionCallback realCallback = realCallback_; cleanUp(); if (realCallback) { realCallback(type, data, length); @@ -64,7 +65,7 @@ fallbacks_.pop_back(); if (fallbacks_.empty()) { - return invokeCallbackAndCleanUp(XCB_ATOM_NONE, nullptr, 0); + return invokeCallbackAndCleanUp(type, data, length); } xcb_delete_property(conn_->connection(), conn_->serverWindow(), property_); diff -Nru fcitx5-5.1.7/src/modules/xcb/xcbconvertselection.h fcitx5-5.1.11/src/modules/xcb/xcbconvertselection.h --- fcitx5-5.1.7/src/modules/xcb/xcbconvertselection.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/xcb/xcbconvertselection.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,7 +7,6 @@ #ifndef _FCITX_MODULES_XCB_XCBCONVERTSELECTION_H_ #define _FCITX_MODULES_XCB_XCBCONVERTSELECTION_H_ -#include <xcb/xcb.h> #include "fcitx-utils/event.h" #include "xcb_public.h" diff -Nru fcitx5-5.1.7/src/modules/xcb/xcbeventreader.cpp fcitx5-5.1.11/src/modules/xcb/xcbeventreader.cpp --- fcitx5-5.1.7/src/modules/xcb/xcbeventreader.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/xcb/xcbeventreader.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -11,7 +11,8 @@ #include "xcbmodule.h" namespace fcitx { -XCBEventReader::XCBEventReader(XCBConnection *conn) : conn_(conn) { +XCBEventReader::XCBEventReader(XCBConnection *conn) + : conn_(conn), dispatcherToMain_(conn->instance()->eventDispatcher()) { postEvent_ = conn->instance()->eventLoop().addPostEvent([this](EventSource *source) { if (xcb_connection_has_error(conn_->connection())) { @@ -22,7 +23,6 @@ xcb_flush(conn_->connection()); return true; }); - dispatcherToMain_.attach(&conn->instance()->eventLoop()); thread_ = std::make_unique<std::thread>(&XCBEventReader::runThread, this); } @@ -50,7 +50,7 @@ hadError_ = true; FCITX_WARN() << "XCB connection \"" << conn_->name() << "\" got error: " << err; - dispatcherToMain_.schedule([this]() { + dispatcherToMain_.scheduleWithContext(watch(), [this]() { deferEvent_ = conn_->parent()->instance()->eventLoop().addDeferEvent( [this](EventSource *) { @@ -72,7 +72,8 @@ hasEvent = !events_.empty(); } if (hasEvent) { - dispatcherToMain_.schedule([this]() { conn_->processEvent(); }); + dispatcherToMain_.scheduleWithContext( + watch(), [this]() { conn_->processEvent(); }); } return true; } diff -Nru fcitx5-5.1.7/src/modules/xcb/xcbeventreader.h fcitx5-5.1.11/src/modules/xcb/xcbeventreader.h --- fcitx5-5.1.7/src/modules/xcb/xcbeventreader.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/xcb/xcbeventreader.h 2024-10-09 03:48:05.000000000 +0800 @@ -11,6 +11,7 @@ #include <thread> #include <fcitx-utils/event.h> #include <fcitx-utils/eventdispatcher.h> +#include <fcitx-utils/trackableobject.h> #include <xcb/xcb.h> #include "xcb_public.h" @@ -18,7 +19,7 @@ class XCBConnection; -class XCBEventReader { +class XCBEventReader : public TrackableObject<XCBEventReader> { public: XCBEventReader(XCBConnection *conn); ~XCBEventReader(); @@ -37,7 +38,7 @@ void run(); bool onIOEvent(IOEventFlags flags); XCBConnection *conn_; - EventDispatcher dispatcherToMain_; + EventDispatcher &dispatcherToMain_; EventDispatcher dispatcherToWorker_; bool hadError_ = false; std::unique_ptr<EventSource> deferEvent_; diff -Nru fcitx5-5.1.7/src/modules/xcb/xcbkeyboard.cpp fcitx5-5.1.11/src/modules/xcb/xcbkeyboard.cpp --- fcitx5-5.1.7/src/modules/xcb/xcbkeyboard.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/xcb/xcbkeyboard.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -592,7 +592,7 @@ if (waitingForRefresh_) { waitingForRefresh_ = false; if (auto path = xmodmapFile(); !path.empty()) { - startProcess({"xmodmap", path}); + startProcess({"xmodmap", std::move(path)}); } } return true; diff -Nru fcitx5-5.1.7/src/modules/xcb/xcbmodule.h fcitx5-5.1.11/src/modules/xcb/xcbmodule.h --- fcitx5-5.1.7/src/modules/xcb/xcbmodule.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/modules/xcb/xcbmodule.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,17 +7,13 @@ #ifndef _FCITX_MODULES_XCB_XCBMODULE_H_ #define _FCITX_MODULES_XCB_XCBMODULE_H_ -#include <list> #include <unordered_map> -#include <vector> #include "fcitx-config/iniparser.h" -#include "fcitx-utils/event.h" #include "fcitx-utils/handlertable.h" #include "fcitx-utils/i18n.h" #include "fcitx/addonfactory.h" #include "fcitx/addoninstance.h" #include "fcitx/addonmanager.h" -#include "fcitx/focusgroup.h" #include "fcitx/instance.h" #include "xcb_public.h" #include "xcbconnection.h" @@ -32,8 +28,6 @@ this, "AlwaysSetToGroupLayout", _("Always set layout to be only group layout"), true};); -class XCBConnection; - class XCBModule final : public AddonInstance { public: XCBModule(Instance *instance); diff -Nru fcitx5-5.1.7/src/server/errorhandler.cpp fcitx5-5.1.11/src/server/errorhandler.cpp --- fcitx5-5.1.7/src/server/errorhandler.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/server/errorhandler.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -11,11 +11,13 @@ #include <fcntl.h> #include <signal.h> #include <string.h> +#include <sys/wait.h> #include <time.h> #include <unistd.h> +#include <cstdint> +#include <string> #include "fcitx-utils/fs.h" -#include "fcitx/instance.h" #include "errorhandler.h" #if defined(EXECINFO_FOUND) @@ -32,12 +34,12 @@ extern int selfpipe[2]; extern std::string crashlog; -typedef struct _MinimalBuffer { +struct MinimalBuffer { char buffer[MINIMAL_BUFFER_SIZE]; int offset; -} MinimalBuffer; +}; -void SetMyExceptionHandler(void) { +void SetMyExceptionHandler() { int signo; for (signo = SIGHUP; signo < SIGUNUSED; signo++) { @@ -112,6 +114,9 @@ void OnException(int signo) { if (signo == SIGCHLD) { + uint8_t sig = (signo & 0xff); + fcitx::fs::safeWrite(selfpipe[1], &sig, 1); + signal(signo, OnException); return; } diff -Nru fcitx5-5.1.7/src/server/main.cpp fcitx5-5.1.11/src/server/main.cpp --- fcitx5-5.1.7/src/server/main.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/server/main.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -5,18 +5,23 @@ * */ -#include <fcntl.h> #include <locale.h> #include <sys/stat.h> -#include <unistd.h> +#include <cstdio> +#include <cstdlib> #include <exception> #include <iostream> -#include <libintl.h> +#include <string> +#include <utility> +#include <vector> #include "fcitx-utils/fs.h" +#include "fcitx-utils/log.h" #include "fcitx-utils/misc.h" #include "fcitx-utils/misc_p.h" #include "fcitx-utils/standardpath.h" +#include "fcitx-utils/stringutils.h" #include "fcitx/addonfactory.h" +#include "fcitx/addonloader.h" #include "fcitx/addonmanager.h" #include "fcitx/instance.h" #include "errorhandler.h" @@ -81,17 +86,19 @@ canRestart = instance.canRestart(); } catch (const InstanceQuietQuit &) { } catch (const std::exception &e) { - std::cerr << "Received exception: " << e.what() << std::endl; + std::cerr << "Received exception: " << e.what() << '\n'; return 1; } if (restart && canRestart) { - auto fcitxBinary = StandardPath::fcitxPath("bindir", "fcitx5"); + std::vector<std::string> args; if (isInFlatpak()) { - startProcess({"flatpak-spawn", fcitxBinary, "-rd"}); + args = {"flatpak-spawn", + StandardPath::fcitxPath("bindir", "fcitx5"), "-rd"}; } else { - startProcess({fcitxBinary, "-r"}); + args = {StandardPath::fcitxPath("bindir", "fcitx5"), "-r"}; } + startProcess(args); } return ret; } diff -Nru fcitx5-5.1.7/src/tools/remote.cpp fcitx5-5.1.11/src/tools/remote.cpp --- fcitx5-5.1.7/src/tools/remote.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/tools/remote.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -27,7 +27,7 @@ "\t-o\t\tactivate input method\n" "\t-r\t\treload fcitx config\n" "\t-t,-T\t\tswitch Active/Inactive\n" - "\t-e\t\tAsk fcitx to exit\n" + "\t-e\t\tRequest fcitx to exit\n" "\t-a\t\tprint fcitx's dbus address\n" "\t-m <imname>\tprint corresponding addon name for im\n" "\t-g <group>\tset current input method group\n" @@ -35,9 +35,13 @@ "\t-n\t\tGet current input method name\n" "\t-s <imname>\tswitch to the input method uniquely identified " "by <imname>\n" - "\t-x\tOpen a new X11 connection with current DISPLAY environment.\n" - "\t--check\tCheck if Fcitx is already running, if not, return 1.\n" + "\t-x\t\tRequest fcitx to open a new X11 connection with the value " + "of DISPLAY in the environment variable.\n" + "\t--check\t\tCheck if Fcitx is already running, if not, return 1.\n" "\t\t\tCan be used with other options.\n" + "\t\t\tThe check will be done before sending DBus call to Fcitx.\n" + "\t\t\tThis can be used to send DBus call only when Fcitx is " + "running.\n" "\t[no option]\tdisplay fcitx state, 0 for close, 1 for " "inactive, 2 for active\n" "\t-h\t\tdisplay this help and exit\n"; @@ -81,13 +85,12 @@ case 0: switch (optionIndex) { case 0: { - auto name = bus.serviceOwner(serviceName, defaultTimeout); - if (name.empty()) { - return 1; - } // Make sure we use the unique name to send request to avoid any // race, otherwise it may trigger dbus activation. - serviceName = name; + serviceName = bus.serviceOwner(serviceName, defaultTimeout); + if (serviceName.empty()) { + return 1; + } } break; } break; diff -Nru fcitx5-5.1.7/src/ui/classic/CMakeLists.txt fcitx5-5.1.11/src/ui/classic/CMakeLists.txt --- fcitx5-5.1.7/src/ui/classic/CMakeLists.txt 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/CMakeLists.txt 2024-10-09 03:48:05.000000000 +0800 @@ -35,6 +35,10 @@ classicui.cpp window.cpp theme.cpp inputwindow.cpp plasmathemewatchdog.cpp colorhelper.cpp ${CLASSICUI_SRCS} ) +if (ENABLE_X11) +target_compile_definitions(classicui PRIVATE -DFCITX_XCB_EWMH) +endif() + target_link_libraries(classicui Fcitx5::Core PkgConfig::Cairo PkgConfig::Pango diff -Nru fcitx5-5.1.7/src/ui/classic/buffer.cpp fcitx5-5.1.11/src/ui/classic/buffer.cpp --- fcitx5-5.1.7/src/ui/classic/buffer.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/buffer.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -7,15 +7,12 @@ #include "buffer.h" #include <fcntl.h> #include <stdlib.h> -#include <string.h> #include <sys/mman.h> #include <unistd.h> -#include <cassert> #include <stdexcept> #include <vector> #include <cairo.h> #include <sys/syscall.h> -#include <wayland-client.h> #include "fcitx-utils/stringutils.h" #include "theme.h" #include "wl_buffer.h" diff -Nru fcitx5-5.1.7/src/ui/classic/classicui.cpp fcitx5-5.1.11/src/ui/classic/classicui.cpp --- fcitx5-5.1.7/src/ui/classic/classicui.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/classicui.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -14,12 +14,10 @@ #include "fcitx-utils/dbus/message_details.h" #include "fcitx-utils/misc_p.h" #include "fcitx-utils/standardpath.h" -#include "fcitx-utils/utf8.h" #include "fcitx/event.h" #include "fcitx/inputcontext.h" #include "fcitx/inputcontextmanager.h" #include "fcitx/instance.h" -#include "fcitx/userinterfacemanager.h" #include "common.h" #include "notificationitem_public.h" #include "plasmathemewatchdog.h" @@ -492,7 +490,7 @@ std::vector<unsigned char> ClassicUI::labelIcon(const std::string &label, unsigned int size) { std::vector<unsigned char> data; - auto stride = cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, size); + size_t stride = cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, size); data.resize(stride * size); UniqueCPtr<cairo_surface_t, cairo_surface_destroy> image; image.reset(cairo_image_surface_create_for_data( diff -Nru fcitx5-5.1.7/src/ui/classic/classicui.h fcitx5-5.1.11/src/ui/classic/classicui.h --- fcitx5-5.1.7/src/ui/classic/classicui.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/classicui.h 2024-10-09 03:48:05.000000000 +0800 @@ -13,13 +13,10 @@ #include "fcitx-config/configuration.h" #include "fcitx-config/iniparser.h" #include "fcitx-config/option.h" -#include "fcitx-utils/event.h" #include "fcitx-utils/i18n.h" -#include "fcitx-utils/log.h" #include "fcitx/addonfactory.h" #include "fcitx/addoninstance.h" #include "fcitx/addonmanager.h" -#include "fcitx/focusgroup.h" #include "fcitx/instance.h" #include "fcitx/userinterface.h" #include "classicui_public.h" @@ -43,7 +40,7 @@ class UIInterface { public: - UIInterface(std::string name) : name_(name) {} + UIInterface(std::string name) : name_(std::move(name)) {} const std::string &name() const { return name_; } diff -Nru fcitx5-5.1.7/src/ui/classic/inputwindow.cpp fcitx5-5.1.11/src/ui/classic/inputwindow.cpp --- fcitx5-5.1.7/src/ui/classic/inputwindow.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/inputwindow.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -15,7 +15,6 @@ #include <pango/pango-layout.h> #include <pango/pangocairo.h> #include "fcitx-utils/color.h" -#include "fcitx-utils/log.h" #include "fcitx/inputmethodentry.h" #include "fcitx/inputpanel.h" #include "fcitx/instance.h" @@ -340,8 +339,8 @@ labelText = instance->outputFilter(inputContext, labelText); setTextToMultilineLayout(inputContext, labelLayouts_[localIndex], labelText); - auto candidateText = - instance->outputFilter(inputContext, candidate.text()); + auto candidateText = instance->outputFilter( + inputContext, candidate.textWithComment()); setTextToMultilineLayout( inputContext, candidateLayouts_[localIndex], candidateText); localIndex++; diff -Nru fcitx5-5.1.7/src/ui/classic/plasmathemewatchdog.cpp fcitx5-5.1.11/src/ui/classic/plasmathemewatchdog.cpp --- fcitx5-5.1.7/src/ui/classic/plasmathemewatchdog.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/plasmathemewatchdog.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -5,12 +5,22 @@ * */ #include "plasmathemewatchdog.h" +#include <fcntl.h> +#include <sys/types.h> #include <sys/wait.h> #include <unistd.h> +#include <cassert> +#include <cerrno> +#include <csignal> +#include <cstdint> +#include <functional> #include <stdexcept> +#include <string> +#include <utility> #include "fcitx-utils/event.h" -#include "fcitx-utils/misc_p.h" +#include "fcitx-utils/fs.h" #include "fcitx-utils/standardpath.h" +#include "fcitx-utils/unixfd.h" #include "common.h" #if defined(__FreeBSD__) diff -Nru fcitx5-5.1.7/src/ui/classic/plasmathemewatchdog.h fcitx5-5.1.11/src/ui/classic/plasmathemewatchdog.h --- fcitx5-5.1.7/src/ui/classic/plasmathemewatchdog.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/plasmathemewatchdog.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,7 +7,10 @@ #ifndef _FCITX5_UI_CLASSIC_PLASMATHEMEWATCHDOG_H_ #define _FCITX5_UI_CLASSIC_PLASMATHEMEWATCHDOG_H_ +#include <sys/types.h> +#include <unistd.h> #include <functional> +#include <memory> #include "fcitx-utils/event.h" #include "fcitx-utils/unixfd.h" diff -Nru fcitx5-5.1.7/src/ui/classic/portalsettingmonitor.h fcitx5-5.1.11/src/ui/classic/portalsettingmonitor.h --- fcitx5-5.1.7/src/ui/classic/portalsettingmonitor.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/portalsettingmonitor.h 2024-10-09 03:48:05.000000000 +0800 @@ -10,7 +10,6 @@ #include <memory> #include <string> #include <unordered_map> -#include "fcitx-utils/connectableobject.h" #include "fcitx-utils/dbus/bus.h" #include "fcitx-utils/dbus/servicewatcher.h" #include "fcitx-utils/dbus/variant.h" diff -Nru fcitx5-5.1.7/src/ui/classic/theme.cpp fcitx5-5.1.11/src/ui/classic/theme.cpp --- fcitx5-5.1.7/src/ui/classic/theme.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/theme.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -348,14 +348,13 @@ void ThemeImage::drawTextIcon(cairo_surface_t *surface, const std::string &rawLabel, uint32_t size, const ClassicUIConfig &config) { - auto [label, textWidth] = extractTextForLabel(rawLabel); auto *cr = cairo_create(surface); cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE); cairoSetSourceColor(cr, Color("#00000000")); cairo_paint(cr); - int pixelSize = size * 0.75 * (textWidth >= 3 ? (2.0 / textWidth) : 1.0); + int pixelSize = size * 0.7 * (textWidth >= 3 ? (2.0 / textWidth) : 1.0); if (pixelSize < 0) { pixelSize = 1; } @@ -865,7 +864,7 @@ inputPanelBackground_ = *inputPanel->background->color; inputPanelBorder_ = *inputPanel->background->borderColor; inputPanelHighlightCandidateBackground_ = *inputPanel->highlight->color; - inputPanelHighlightCandidateBorder_ = *inputPanel->background->borderColor; + inputPanelHighlightCandidateBorder_ = *inputPanel->highlight->borderColor; inputPanelHighlight_ = *inputPanel->highlightBackgroundColor; inputPanelText_ = *inputPanel->normalColor; inputPanelHighlightText_ = *inputPanel->highlightColor; @@ -874,7 +873,7 @@ menuBackground_ = *menu->background->color; menuBorder_ = *menu->background->borderColor; menuSelectedItemBackground_ = *menu->highlight->color; - menuSelectedItemBorder_ = *menu->background->borderColor; + menuSelectedItemBorder_ = *menu->highlight->borderColor; menuSeparator_ = *menu->separator->color; menuText_ = *menu->normalColor; menuSelectedItemText_ = *menu->highlightTextColor; diff -Nru fcitx5-5.1.7/src/ui/classic/theme.h fcitx5-5.1.11/src/ui/classic/theme.h --- fcitx5-5.1.7/src/ui/classic/theme.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/theme.h 2024-10-09 03:48:05.000000000 +0800 @@ -15,10 +15,8 @@ #include "fcitx-config/enum.h" #include "fcitx-config/option.h" #include "fcitx-utils/i18n.h" -#include "fcitx-utils/log.h" #include "fcitx-utils/rect.h" #include "fcitx/icontheme.h" -#include "fcitx/inputpanel.h" namespace fcitx::classicui { enum class Gravity { diff -Nru fcitx5-5.1.7/src/ui/classic/themes/default/theme.conf.in fcitx5-5.1.11/src/ui/classic/themes/default/theme.conf.in --- fcitx5-5.1.7/src/ui/classic/themes/default/theme.conf.in 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/themes/default/theme.conf.in 2024-10-09 03:48:05.000000000 +0800 @@ -24,7 +24,6 @@ Bottom=2 [InputPanel/Background] -Image= Color=#ffffff BorderColor=#c0c0c0 BorderWidth=2 @@ -36,7 +35,6 @@ Bottom=2 [InputPanel/Highlight] -Image= Color=#808080 [InputPanel/Highlight/Margin] @@ -64,7 +62,6 @@ Bottom=4 [Menu/Background] -Image= Color=#ffffff BorderColor=#c0c0c0 BorderWidth=2 @@ -88,7 +85,6 @@ Image=arrow.png [Menu/Highlight] -Image= Color=#808080 [Menu/Highlight/Margin] diff -Nru fcitx5-5.1.7/src/ui/classic/themes/default-dark/theme-dark.conf.in fcitx5-5.1.11/src/ui/classic/themes/default-dark/theme-dark.conf.in --- fcitx5-5.1.7/src/ui/classic/themes/default-dark/theme-dark.conf.in 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/themes/default-dark/theme-dark.conf.in 2024-10-09 03:48:05.000000000 +0800 @@ -26,7 +26,6 @@ Bottom=2 [InputPanel/Background] -Image= Color=#000000 BorderColor=#404040 BorderWidth=2 @@ -38,7 +37,6 @@ Bottom=2 [InputPanel/Highlight] -Image= Color=#606060 [InputPanel/Highlight/Margin] @@ -70,7 +68,6 @@ HighlightCandidateColor=#e0e0e0 [Menu/Background] -Image= Color=#000000 BorderColor=#404040 BorderWidth=2 @@ -94,7 +91,6 @@ Image=arrow.png [Menu/Highlight] -Image= Color=#606060 [Menu/Highlight/Margin] diff -Nru fcitx5-5.1.7/src/ui/classic/waylandcursor.cpp fcitx5-5.1.11/src/ui/classic/waylandcursor.cpp --- fcitx5-5.1.7/src/ui/classic/waylandcursor.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/waylandcursor.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -88,6 +88,9 @@ } void WaylandCursor::update() { + if (!pointer_->enterSerial()) { + return; + } if (cursorShape_) { cursorShape_->setShape(pointer_->enterSerial(), WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_DEFAULT); @@ -125,9 +128,10 @@ return; } - pointer_->pointer()->setCursor(pointer_->enterSerial(), surface, - cursor->images[frame]->hotspot_x, - cursor->images[frame]->hotspot_y); + pointer_->pointer()->setCursor( + pointer_->enterSerial(), surface, + cursor->images[frame]->hotspot_x / bufferScale, + cursor->images[frame]->hotspot_y / bufferScale); surface->setBufferScale(bufferScale); frameCalled_ = false; @@ -166,4 +170,4 @@ } } -} // namespace fcitx::classicui \ No newline at end of file +} // namespace fcitx::classicui diff -Nru fcitx5-5.1.7/src/ui/classic/waylandcursor.h fcitx5-5.1.11/src/ui/classic/waylandcursor.h --- fcitx5-5.1.7/src/ui/classic/waylandcursor.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/waylandcursor.h 2024-10-09 03:48:05.000000000 +0800 @@ -16,7 +16,6 @@ #include "wl_callback.h" #include "wl_surface.h" #include "wp_cursor_shape_device_v1.h" -#include "wp_cursor_shape_manager_v1.h" namespace fcitx::classicui { diff -Nru fcitx5-5.1.7/src/ui/classic/waylandcursortheme.cpp fcitx5-5.1.11/src/ui/classic/waylandcursortheme.cpp --- fcitx5-5.1.7/src/ui/classic/waylandcursortheme.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/waylandcursortheme.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -1,12 +1,10 @@ #include "waylandcursortheme.h" #include <memory> #include <wayland-cursor.h> -#include "fcitx-utils/misc.h" #include "fcitx-utils/misc_p.h" #include "dbus_public.h" #include "portalsettingmonitor.h" #include "waylandui.h" -#include "wl_compositor.h" #include "wl_shm.h" namespace fcitx::classicui { @@ -54,7 +52,7 @@ void WaylandCursorTheme::setCursorSize(int cursorSize) { // Add some simple validation. int newCursorSize = 24; - if (cursorSize < 0 || cursorSize > 2048) { + if (cursorSize > 0 && cursorSize < 2048) { newCursorSize = cursorSize; } @@ -94,4 +92,4 @@ return themePtr; } -} // namespace fcitx::classicui \ No newline at end of file +} // namespace fcitx::classicui diff -Nru fcitx5-5.1.7/src/ui/classic/waylandcursortheme.h fcitx5-5.1.11/src/ui/classic/waylandcursortheme.h --- fcitx5-5.1.7/src/ui/classic/waylandcursortheme.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/waylandcursortheme.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,17 +7,12 @@ #ifndef _FCITX_UI_CLASSIC_WAYLANDCURSORTHEME_H_ #define _FCITX_UI_CLASSIC_WAYLANDCURSORTHEME_H_ -#include <cstdint> #include <memory> #include <unordered_map> #include <wayland-cursor.h> -#include "fcitx-utils/misc.h" #include "config.h" -#include "display.h" #include "portalsettingmonitor.h" -#include "wl_compositor.h" #include "wl_shm.h" -#include "wl_surface.h" namespace fcitx::classicui { class WaylandUI; diff -Nru fcitx5-5.1.7/src/ui/classic/waylandinputwindow.cpp fcitx5-5.1.11/src/ui/classic/waylandinputwindow.cpp --- fcitx5-5.1.7/src/ui/classic/waylandinputwindow.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/waylandinputwindow.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -92,7 +92,7 @@ void WaylandInputWindow::setBlurManager( std::shared_ptr<wayland::OrgKdeKwinBlurManager> blur) { - blurManager_ = blur; + blurManager_ = std::move(blur); updateBlur(); } diff -Nru fcitx5-5.1.7/src/ui/classic/waylandinputwindow.h fcitx5-5.1.11/src/ui/classic/waylandinputwindow.h --- fcitx5-5.1.7/src/ui/classic/waylandinputwindow.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/waylandinputwindow.h 2024-10-09 03:48:05.000000000 +0800 @@ -11,8 +11,6 @@ #include "inputwindow.h" #include "org_kde_kwin_blur.h" #include "org_kde_kwin_blur_manager.h" -#include "wp_fractional_scale_manager_v1.h" -#include "wp_viewporter.h" #include "zwp_input_panel_surface_v1.h" #include "zwp_input_popup_surface_v2.h" diff -Nru fcitx5-5.1.7/src/ui/classic/waylandpointer.h fcitx5-5.1.11/src/ui/classic/waylandpointer.h --- fcitx5-5.1.7/src/ui/classic/waylandpointer.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/waylandpointer.h 2024-10-09 03:48:05.000000000 +0800 @@ -8,7 +8,6 @@ #define _FCITX_UI_CLASSIC_WAYLANDPOINTER_H_ #include <memory> -#include "display.h" #include "waylandcursor.h" #include "wl_pointer.h" #include "wl_seat.h" @@ -47,7 +46,7 @@ TrackableObjectReference<WaylandWindow> touchFocus_; int touchFocusX_ = 0, touchFocusY_ = 0; ScopedConnection capConn_; - uint32_t enterSerial_; + uint32_t enterSerial_ = 0; std::unique_ptr<WaylandCursor> cursor_; }; diff -Nru fcitx5-5.1.7/src/ui/classic/waylandshmwindow.h fcitx5-5.1.11/src/ui/classic/waylandshmwindow.h --- fcitx5-5.1.7/src/ui/classic/waylandshmwindow.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/waylandshmwindow.h 2024-10-09 03:48:05.000000000 +0800 @@ -9,10 +9,7 @@ #include <cairo/cairo.h> #include "buffer.h" -#include "waylandui.h" #include "waylandwindow.h" -#include "wl_callback.h" -#include "wl_shm.h" namespace fcitx { namespace classicui { diff -Nru fcitx5-5.1.7/src/ui/classic/waylandui.cpp fcitx5-5.1.11/src/ui/classic/waylandui.cpp --- fcitx5-5.1.7/src/ui/classic/waylandui.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/waylandui.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -7,25 +7,17 @@ #include "waylandui.h" #include <algorithm> -#include "fcitx-utils/charutils.h" -#include "fcitx-utils/stringutils.h" -#include "config.h" #include "display.h" -#include "org_kde_kwin_blur.h" #include "org_kde_kwin_blur_manager.h" #include "waylandcursortheme.h" #include "waylandinputwindow.h" #include "waylandshmwindow.h" #include "wl_compositor.h" #include "wl_seat.h" -#include "wl_shell.h" #include "wl_shm.h" #include "wp_fractional_scale_manager_v1.h" -#include "wp_fractional_scale_v1.h" -#include "wp_viewport.h" #include "wp_viewporter.h" #include "zwp_input_panel_v1.h" -#include "zwp_input_popup_surface_v2.h" namespace fcitx::classicui { diff -Nru fcitx5-5.1.7/src/ui/classic/waylandui.h fcitx5-5.1.11/src/ui/classic/waylandui.h --- fcitx5-5.1.7/src/ui/classic/waylandui.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/waylandui.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,13 +7,9 @@ #ifndef _FCITX_UI_CLASSIC_WAYLANDUI_H_ #define _FCITX_UI_CLASSIC_WAYLANDUI_H_ -#include <cairo/cairo.h> #include "classicui.h" -#include "config.h" -#include "display.h" #include "waylandcursortheme.h" #include "waylandpointer.h" -#include "wl_pointer.h" namespace fcitx { namespace classicui { diff -Nru fcitx5-5.1.7/src/ui/classic/waylandwindow.h fcitx5-5.1.11/src/ui/classic/waylandwindow.h --- fcitx5-5.1.7/src/ui/classic/waylandwindow.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/waylandwindow.h 2024-10-09 03:48:05.000000000 +0800 @@ -8,11 +8,9 @@ #define _FCITX_UI_CLASSIC_WAYLANDWINDOW_H_ #include <cstdint> -#include <cairo/cairo.h> #include "fcitx-utils/rect.h" #include "waylandui.h" #include "window.h" -#include "wl_surface.h" #include "wp_fractional_scale_manager_v1.h" #include "wp_fractional_scale_v1.h" #include "wp_viewport.h" diff -Nru fcitx5-5.1.7/src/ui/classic/window.h fcitx5-5.1.11/src/ui/classic/window.h --- fcitx5-5.1.7/src/ui/classic/window.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/window.h 2024-10-09 03:48:05.000000000 +0800 @@ -8,7 +8,6 @@ #define _FCITX_UI_CLASSIC_WINDOW_H_ #include <cairo/cairo.h> -#include "fcitx/userinterface.h" namespace fcitx { namespace classicui { diff -Nru fcitx5-5.1.7/src/ui/classic/xcbinputwindow.cpp fcitx5-5.1.11/src/ui/classic/xcbinputwindow.cpp --- fcitx5-5.1.7/src/ui/classic/xcbinputwindow.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/xcbinputwindow.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,7 +6,6 @@ */ #include "xcbinputwindow.h" -#include <pango/pangocairo.h> #include <xcb/xcb_aux.h> #include <xcb/xcb_icccm.h> #include "fcitx-utils/rect.h" @@ -41,77 +40,105 @@ XCB_EVENT_MASK_LEAVE_WINDOW); } -void XCBInputWindow::updatePosition(InputContext *inputContext) { - if (!visible()) { - return; - } - int x, y, h; - - // add support of input panel offset here. - // TODO: RTL support. - auto &theme = parent_->theme(); - int leftSW, rightSW, topSW, bottomSW, actualWidth, actualHeight; - leftSW = theme.inputPanel->shadowMargin->marginLeft.value(); - rightSW = theme.inputPanel->shadowMargin->marginRight.value(); - topSW = theme.inputPanel->shadowMargin->marginTop.value(); - bottomSW = theme.inputPanel->shadowMargin->marginBottom.value(); - - x = inputContext->cursorRect().left(); - y = inputContext->cursorRect().top(); - h = inputContext->cursorRect().height(); - - actualWidth = width() - leftSW - rightSW; - actualWidth = actualWidth <= 0 ? width() : actualWidth; - actualHeight = height() - topSW - bottomSW; - actualHeight = actualHeight <= 0 ? height() : actualHeight; - +const Rect *XCBInputWindow::getClosestScreen(const Rect &cursorRect) const { const Rect *closestScreen = nullptr; + int shortestDistance = INT_MAX; for (const auto &rect : ui_->screenRects()) { - int thisDistance = rect.first.distance(x, y); + int thisDistance = + rect.first.distance(cursorRect.left(), cursorRect.top()); if (thisDistance < shortestDistance) { shortestDistance = thisDistance; closestScreen = &rect.first; } } - if (closestScreen) { - int newX, newY; + return closestScreen; +} - if (x < closestScreen->left()) { - newX = closestScreen->left(); - } else { - newX = x; +int XCBInputWindow::calculatePositionX(const Rect &cursorRect, + const Rect *closestScreen) const { + // TODO: RTL support. + int x = cursorRect.left(); + + auto &theme = parent_->theme(); + int leftSW = theme.inputPanel->shadowMargin->marginLeft.value(); + int rightSW = theme.inputPanel->shadowMargin->marginRight.value(); + + int actualWidth = width() - leftSW - rightSW; + actualWidth = actualWidth <= 0 ? width() : actualWidth; + + if (closestScreen != nullptr) { + int newX = std::max(x, closestScreen->left()); + + if (newX + actualWidth > closestScreen->right()) { + newX = closestScreen->right() - actualWidth; } + x = std::max(newX, closestScreen->left()); + } + + // exclude shadow border width + x -= leftSW; + + return x; +} + +int XCBInputWindow::calculatePositionY(const Rect &cursorRect, + const Rect *closestScreen) const { + // TODO: RTL support. + int y = cursorRect.top(); + + auto &theme = parent_->theme(); + int topSW = theme.inputPanel->shadowMargin->marginTop.value(); + int bottomSW = theme.inputPanel->shadowMargin->marginBottom.value(); + + int actualHeight = height() - topSW - bottomSW; + actualHeight = actualHeight <= 0 ? height() : actualHeight; + + if (closestScreen != nullptr) { + int h = cursorRect.height(); + int newY; if (y < closestScreen->top()) { newY = closestScreen->top(); } else { newY = y + (h ? h : (10 * ((dpi_ < 0 ? 96.0 : dpi_) / 96.0))); } - if ((newX + static_cast<int>(actualWidth)) > closestScreen->right()) { - newX = closestScreen->right() - actualWidth; - } - - if ((newY + static_cast<int>(actualHeight)) > closestScreen->bottom()) { + // Try flip y. + if (newY + actualHeight > closestScreen->bottom()) { if (newY > closestScreen->bottom()) { newY = closestScreen->bottom() - actualHeight - 40; } else { /* better position the window */ newY = newY - actualHeight - ((h == 0) ? 40 : h); } + + // If after flip, top is out of the screen, we still prefer the top + // edge to be always with in screen. + if (newY < closestScreen->top()) { + newY = closestScreen->top(); + } } - x = newX; + y = newY; } // exclude shadow border width - x -= leftSW; y -= topSW; + return y; +} + +void XCBInputWindow::updatePosition(InputContext *inputContext) { + if (!visible()) { + return; + } + + const Rect &cursorRect = inputContext->cursorRect(); + const Rect *closestScreen = getClosestScreen(cursorRect); xcb_params_configure_window_t wc; - wc.x = x; - wc.y = y; + wc.x = calculatePositionX(cursorRect, closestScreen); + wc.y = calculatePositionY(cursorRect, closestScreen); wc.stack_mode = XCB_STACK_MODE_ABOVE; xcb_aux_configure_window(ui_->connection(), wid_, XCB_CONFIG_WINDOW_STACK_MODE | diff -Nru fcitx5-5.1.7/src/ui/classic/xcbinputwindow.h fcitx5-5.1.11/src/ui/classic/xcbinputwindow.h --- fcitx5-5.1.7/src/ui/classic/xcbinputwindow.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/xcbinputwindow.h 2024-10-09 03:48:05.000000000 +0800 @@ -27,6 +27,12 @@ private: void repaint(); + const Rect *getClosestScreen(const Rect &cursorRect) const; + int calculatePositionX(const Rect &cursorRect, + const Rect *closestScreen) const; + int calculatePositionY(const Rect &cursorRect, + const Rect *closestScreen) const; + xcb_atom_t atomBlur_; int dpi_ = -1; }; diff -Nru fcitx5-5.1.7/src/ui/classic/xcbmenu.cpp fcitx5-5.1.11/src/ui/classic/xcbmenu.cpp --- fcitx5-5.1.7/src/ui/classic/xcbmenu.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/xcbmenu.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -5,14 +5,12 @@ * */ #include "xcbmenu.h" +#include <optional> #include <pango/pangocairo.h> #include <xcb/xcb.h> #include <xcb/xcb_aux.h> -#include <xcb/xcb_keysyms.h> - -#include <optional> -#include <utility> #include <xcb/xcb_icccm.h> +#include <xcb/xcb_keysyms.h> #include "fcitx-utils/log.h" #include "fcitx/inputcontext.h" #include "fcitx/userinterfacemanager.h" @@ -163,13 +161,12 @@ } auto id = actions[i]->id(); - auto icRef = ic->watch(); // Why we need to delay the event, because we // want to make ic has focus. activateTimer_ = ui_->parent()->instance()->eventLoop().addTimeEvent( CLOCK_MONOTONIC, now(CLOCK_MONOTONIC) + 30000, 0, - [this, that = this->watch(), icRef, id](EventSourceTime *, - uint64_t) { + [this, that = this->watch(), icRef = ic->watch(), + id](EventSourceTime *, uint64_t) { if (!that.isValid()) { return true; } @@ -282,7 +279,6 @@ void XCBMenu::hideTillMenuHasMouseOrTopLevelHelper() { if (parent_.isNull() || hasMouse_) { update(); - setFocus(); return; } auto *parent = parent_.get(); @@ -317,7 +313,6 @@ } if (hoveredIndex_ >= 0) { - setFocus(); // FCITX_INFO() << this << " in timer branch 1"; // The current subMenu anyway is not the hovered one. hideChilds(); @@ -635,11 +630,6 @@ return ui_->parent()->instance()->mostRecentInputContext(); } -void XCBMenu::setFocus() { - xcb_set_input_focus(ui_->connection(), XCB_INPUT_FOCUS_PARENT, wid_, - XCB_CURRENT_TIME); -} - void XCBMenu::show(Rect rect, ConstrainAdjustment adjustY) { // FCITX_INFO() << this << " show() " << hoveredIndex_; if (visible_) { @@ -698,7 +688,6 @@ &wc); xcb_map_window(ui_->connection(), wid_); - setFocus(); if (parent_.isNull()) { ui_->grabPointer(this); } diff -Nru fcitx5-5.1.7/src/ui/classic/xcbmenu.h fcitx5-5.1.11/src/ui/classic/xcbmenu.h --- fcitx5-5.1.7/src/ui/classic/xcbmenu.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/xcbmenu.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,8 +7,6 @@ #ifndef _FCITX_UI_CLASSIC_XCBMENU_H_ #define _FCITX_UI_CLASSIC_XCBMENU_H_ -#include <pango/pango.h> -#include <xcb/xproto.h> #include "fcitx/menu.h" #include "common.h" #include "xcbwindow.h" @@ -79,7 +77,6 @@ void update(); void setHoveredIndex(int idx); void setChild(XCBMenu *child); - void setFocus(); void updateDPI(int x, int y); std::pair<MenuItem *, Action *> actionAt(size_t index); diff -Nru fcitx5-5.1.7/src/ui/classic/xcbtraywindow.cpp fcitx5-5.1.11/src/ui/classic/xcbtraywindow.cpp --- fcitx5-5.1.7/src/ui/classic/xcbtraywindow.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/xcbtraywindow.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -467,19 +467,19 @@ void XCBTrayWindow::updateGroupMenu() { auto &imManager = ui_->parent()->instance()->inputMethodManager(); - const auto &list = imManager.groups(); + std::vector<std::string> list = imManager.groups(); groupActions_.clear(); for (size_t i = 0; i < list.size(); i++) { - auto groupName = list[i]; + const std::string &groupName = list[i]; groupActions_.emplace_back(); auto &groupAction = groupActions_.back(); - groupAction.setShortText(list[i]); + groupAction.setShortText(groupName); groupAction.connect<SimpleAction::Activated>( [&imManager, groupName](InputContext *) { imManager.setCurrentGroup(groupName); }); groupAction.setCheckable(true); - groupAction.setChecked(list[i] == imManager.currentGroup().name()); + groupAction.setChecked(groupName == imManager.currentGroup().name()); auto &uiManager = ui_->parent()->instance()->userInterfaceManager(); uiManager.registerAction(&groupAction); @@ -498,17 +498,17 @@ return; } inputMethodActions_.emplace_back(); - auto imName = entry->uniqueName(); auto &inputMethodAction = inputMethodActions_.back(); inputMethodAction.setShortText(entry->name()); inputMethodAction.connect<SimpleAction::Activated>( - [this, imName](InputContext *ic) { + [this, imName = entry->uniqueName()](InputContext *ic) { ui_->parent()->instance()->setCurrentInputMethod(ic, imName, false); }); inputMethodAction.setCheckable(true); inputMethodAction.setChecked( - ic ? (ui_->parent()->instance()->inputMethod(ic) == imName) + ic ? (ui_->parent()->instance()->inputMethod(ic) == + entry->uniqueName()) : false); auto &uiManager = ui_->parent()->instance()->userInterfaceManager(); diff -Nru fcitx5-5.1.7/src/ui/classic/xcbui.cpp fcitx5-5.1.11/src/ui/classic/xcbui.cpp --- fcitx5-5.1.7/src/ui/classic/xcbui.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/classic/xcbui.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -13,7 +13,6 @@ #include <xcb/xproto.h> #include "fcitx-utils/endian_p.h" #include "fcitx-utils/misc.h" -#include "fcitx-utils/stringutils.h" #include "xcbinputwindow.h" #include "xcbtraywindow.h" #include "xcbwindow.h" @@ -599,6 +598,9 @@ if (!readCard32(&nSettings)) { return; } + if (static_cast<uint64_t>(nSettings) * 8 + 8 > data.size()) { + return; + } for (uint32_t i = 0; i < nSettings; i++) { // 1 SETTING_TYPE type // 1 unused @@ -623,7 +625,7 @@ if (!readCard16(&nameLen)) { return; } -#define XSETTINGS_PAD(n, m) ((n + m - 1) & (~(m - 1))) +#define XSETTINGS_PAD(n, m) (((n) + (m) - 1) & (~((m) - 1))) uint32_t namePad = XSETTINGS_PAD(nameLen, 4); if (std::distance(iter, data.cend()) < namePad) { return; @@ -691,7 +693,10 @@ inputWindow_->updatePosition(inputContext); } -void XCBUI::updateCurrentInputMethod(InputContext *) { trayWindow_->update(); } +void XCBUI::updateCurrentInputMethod(InputContext *inputContext) { + FCITX_UNUSED(inputContext); + trayWindow_->update(); +} int XCBUI::dpiByPosition(int x, int y) { int shortestDistance = INT_MAX; @@ -713,7 +718,8 @@ // CLASSICUI_DEBUG() << "Use font option dpi: " << fontOption_.dpi; if (fontOption_.dpi > 0) { return fontOption_.dpi; - } else if (screenDpi_ >= 96) { + } + if (screenDpi_ >= 96) { // Nowadays their should not be tiny dpi screen I assume. // In ancient days, there used to be invalid DPI value that make // font extremely tiny. diff -Nru fcitx5-5.1.7/src/ui/kimpanel/kimpanel.cpp fcitx5-5.1.11/src/ui/kimpanel/kimpanel.cpp --- fcitx5-5.1.7/src/ui/kimpanel/kimpanel.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/kimpanel/kimpanel.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -359,8 +359,8 @@ labelText = instance->outputFilter(inputContext, labelText); labels.push_back(labelText.toString()); - auto candidateText = - instance->outputFilter(inputContext, candidate.text()); + auto candidateText = instance->outputFilter( + inputContext, candidate.textWithComment()); texts.push_back(candidateText.toString()); attrs.emplace_back(""); } @@ -409,13 +409,9 @@ std::string icon = "input-keyboard"; if (ic) { icon = instance_->inputMethodIcon(ic); + label = instance_->inputMethodLabel(ic); if (auto entry = instance_->inputMethodEntry(ic)) { - label = entry->label(); if (auto engine = instance_->inputMethodEngine(ic)) { - auto subModeLabel = engine->subModeLabel(*entry, *ic); - if (!subModeLabel.empty()) { - label = subModeLabel; - } altDescription = engine->subMode(*entry, *ic); } description = entry->name(); @@ -473,10 +469,10 @@ } proxy_->execMenu(menuitems); } else if (stringutils::startsWith(property, "/Fcitx/im/")) { - auto imName = property.substr(10); timeEvent_ = instance_->eventLoop().addTimeEvent( CLOCK_MONOTONIC, now(CLOCK_MONOTONIC) + 30000, 0, - [this, imName](EventSourceTime *, uint64_t) { + [this, imName = property.substr(10)](EventSourceTime *, + uint64_t) { instance_->setCurrentInputMethod(imName); timeEvent_.reset(); return true; @@ -506,7 +502,8 @@ // make ic has focus. timeEvent_ = instance_->eventLoop().addTimeEvent( CLOCK_MONOTONIC, now(CLOCK_MONOTONIC) + 30000, 0, - [this, actionName](EventSourceTime *, uint64_t) { + [this, actionName = std::move(actionName)]( + EventSourceTime *, uint64_t) { if (auto *action = instance_->userInterfaceManager().lookupAction( actionName)) { diff -Nru fcitx5-5.1.7/src/ui/kimpanel/kimpanel.h fcitx5-5.1.11/src/ui/kimpanel/kimpanel.h --- fcitx5-5.1.7/src/ui/kimpanel/kimpanel.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/kimpanel/kimpanel.h 2024-10-09 03:48:05.000000000 +0800 @@ -9,16 +9,11 @@ #include "fcitx-config/configuration.h" #include "fcitx-config/iniparser.h" -#include "fcitx-utils/dbus/bus.h" #include "fcitx-utils/dbus/servicewatcher.h" -#include "fcitx-utils/event.h" -#include "fcitx-utils/fs.h" #include "fcitx-utils/i18n.h" -#include "fcitx-utils/misc.h" #include "fcitx/addonfactory.h" #include "fcitx/addoninstance.h" #include "fcitx/addonmanager.h" -#include "fcitx/focusgroup.h" #include "fcitx/icontheme.h" #include "fcitx/instance.h" #include "fcitx/userinterface.h" diff -Nru fcitx5-5.1.7/src/ui/virtualkeyboard/virtualkeyboard.cpp fcitx5-5.1.11/src/ui/virtualkeyboard/virtualkeyboard.cpp --- fcitx5-5.1.7/src/ui/virtualkeyboard/virtualkeyboard.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/virtualkeyboard/virtualkeyboard.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -9,20 +9,13 @@ #include "fcitx-utils/dbus/message.h" #include "fcitx-utils/dbus/objectvtable.h" #include "fcitx-utils/dbus/servicewatcher.h" -#include "fcitx-utils/event.h" -#include "fcitx-utils/i18n.h" #include "fcitx-utils/key.h" #include "fcitx-utils/log.h" -#include "fcitx-utils/stringutils.h" #include "fcitx-utils/utf8.h" #include "fcitx/addonmanager.h" #include "fcitx/candidatelist.h" #include "fcitx/inputcontext.h" -#include "fcitx/inputmethodengine.h" -#include "fcitx/inputmethodentry.h" -#include "fcitx/inputmethodmanager.h" #include "fcitx/instance.h" -#include "fcitx/misc_p.h" #include "fcitx/userinterfacemanager.h" #include "dbus_public.h" #include "notificationitem_public.h" @@ -427,7 +420,7 @@ } auto candidateText = - instance_->outputFilter(inputContext, candidate.text()); + instance_->outputFilter(inputContext, candidate.textWithComment()); candidateTextList.push_back(candidateText.toString()); } @@ -453,7 +446,7 @@ continue; } - candidateText = candidate.text(); + candidateText = candidate.textWithComment(); } catch (...) { break; } @@ -466,13 +459,12 @@ int VirtualKeyboard::globalCursorIndex( std::shared_ptr<CandidateList> candidateList) const { - auto *commonCandidateList = - dynamic_cast<CommonCandidateList *>(candidateList.get()); - if (commonCandidateList == nullptr) { + auto *bulkCursor = candidateList->toBulkCursor(); + if (bulkCursor == nullptr) { return -1; } - return commonCandidateList->globalCursorIndex(); + return bulkCursor->globalCursorIndex(); } void VirtualKeyboard::updateCandidateArea( diff -Nru fcitx5-5.1.7/src/ui/virtualkeyboard/virtualkeyboard.h fcitx5-5.1.11/src/ui/virtualkeyboard/virtualkeyboard.h --- fcitx5-5.1.7/src/ui/virtualkeyboard/virtualkeyboard.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/src/ui/virtualkeyboard/virtualkeyboard.h 2024-10-09 03:48:05.000000000 +0800 @@ -7,10 +7,7 @@ #ifndef _FCITX_UI_VIRTUALKEYBOARD_VIRTUALKEYBOARD_H_ #define _FCITX_UI_VIRTUALKEYBOARD_VIRTUALKEYBOARD_H_ -#include "fcitx-utils/dbus/bus.h" -#include "fcitx-utils/dbus/message.h" #include "fcitx-utils/dbus/servicewatcher.h" -#include "fcitx-utils/event.h" #include "fcitx/addonfactory.h" #include "fcitx/addoninstance.h" #include "fcitx/addonmanager.h" diff -Nru fcitx5-5.1.7/test/addon/CMakeLists.txt fcitx5-5.1.11/test/addon/CMakeLists.txt --- fcitx5-5.1.7/test/addon/CMakeLists.txt 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/addon/CMakeLists.txt 2024-10-09 03:48:05.000000000 +0800 @@ -1,7 +1,11 @@ add_library(dummyaddon MODULE dummyaddon.cpp) target_link_libraries(dummyaddon Fcitx5::Core) -set(COPY_ADDON_DEPENDS unicode.conf.in-fmt quickphrase.conf.in-fmt xcb.conf.in-fmt) +set(COPY_ADDON_DEPENDS unicode.conf.in-fmt quickphrase.conf.in-fmt xcb.conf.in-fmt spell.conf.in-fmt) + +if (ENABLE_KEYBOARD) + list(APPEND COPY_ADDON_DEPENDS keyboard.conf.in-fmt) +endif() if (ENABLE_X11) list(APPEND COPY_ADDON_DEPENDS xim.conf.in-fmt) @@ -12,11 +16,14 @@ add_custom_command(TARGET copy-addon COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/src/modules/quickphrase/quickphrase.conf ${CMAKE_CURRENT_BINARY_DIR}/quickphrase.conf) add_custom_command(TARGET copy-addon COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/src/modules/xcb/xcb.conf ${CMAKE_CURRENT_BINARY_DIR}/xcb.conf) add_custom_command(TARGET copy-addon COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/src/modules/spell/spell.conf ${CMAKE_CURRENT_BINARY_DIR}/spell.conf) -add_custom_command(TARGET copy-addon COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/src/im/keyboard/keyboard.conf ${CMAKE_CURRENT_BINARY_DIR}/keyboard.conf) add_custom_command(TARGET copy-addon COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/testing/testfrontend/testfrontend.conf ${CMAKE_CURRENT_BINARY_DIR}/testfrontend.conf) add_custom_command(TARGET copy-addon COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/testing/testim/testim.conf ${CMAKE_CURRENT_BINARY_DIR}/testim.conf) add_custom_command(TARGET copy-addon COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/testing/testui/testui.conf ${CMAKE_CURRENT_BINARY_DIR}/testui.conf) +if (ENABLE_KEYBOARD) + add_custom_command(TARGET copy-addon COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/src/im/keyboard/keyboard.conf ${CMAKE_CURRENT_BINARY_DIR}/keyboard.conf) +endif() + if (ENABLE_X11) add_custom_command(TARGET copy-addon COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/src/frontend/xim/xim.conf ${CMAKE_CURRENT_BINARY_DIR}/xim.conf) endif() diff -Nru fcitx5-5.1.7/test/addon/dummyaddon.cpp fcitx5-5.1.11/test/addon/dummyaddon.cpp --- fcitx5-5.1.7/test/addon/dummyaddon.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/addon/dummyaddon.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -14,7 +14,13 @@ public: int addOne(int a) { return a + 1; } + const Data &testCopy() { return data_; } + FCITX_ADDON_EXPORT_FUNCTION(DummyAddon, addOne); + FCITX_ADDON_EXPORT_FUNCTION(DummyAddon, testCopy); + +private: + Data data_; }; class DummyAddonFactory : public fcitx::AddonFactory { diff -Nru fcitx5-5.1.7/test/addon/dummyaddon_public.h fcitx5-5.1.11/test/addon/dummyaddon_public.h --- fcitx5-5.1.7/test/addon/dummyaddon_public.h 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/addon/dummyaddon_public.h 2024-10-09 03:48:05.000000000 +0800 @@ -10,6 +10,18 @@ #include "fcitx-utils/metastring.h" #include "fcitx/addoninstance.h" +class Data { +public: + Data() {} + Data(const Data &) : copy_(true) {} + + bool isCopy() const { return copy_; } + +private: + const bool copy_ = false; +}; + FCITX_ADDON_DECLARE_FUNCTION(DummyAddon, addOne, int(int)); +FCITX_ADDON_DECLARE_FUNCTION(DummyAddon, testCopy, const Data &()); #endif // _DUMMYADDON_PUBLIC_H_ diff -Nru fcitx5-5.1.7/test/dbus_wrapper.sh fcitx5-5.1.11/test/dbus_wrapper.sh --- fcitx5-5.1.7/test/dbus_wrapper.sh 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/dbus_wrapper.sh 2024-10-09 03:48:05.000000000 +0800 @@ -5,19 +5,30 @@ if [ -n "$DBUS_SESSION_BUS_PID" ]; then kill "$DBUS_SESSION_BUS_PID" || exit 1 fi - rm -f dbus-session-bus-pid - rm -f dbus-session-bus-address + if [ -n "$ADDRESS_FILE" ]; then + rm -f -- "$ADDRESS_FILE" + fi + if [ -n "$PID_FILE" ]; then + rm -f -- "$PID_FILE" + fi } +ADDRESS_FILE= +PID_FILE= + trap finish EXIT + +ADDRESS_FILE=$(mktemp -p "$PWD" dbus-session-bus-address.XXXXXX) +PID_FILE=$(mktemp -p "$PWD" dbus-session-bus-pid.XXXXXX) + DBUS_DAEMON=$1 shift "$DBUS_DAEMON" --fork --session --print-address=3 --print-pid=4 \ - 3> dbus-session-bus-address 4> dbus-session-bus-pid || exit 1 + 3> "$ADDRESS_FILE" 4> "$PID_FILE" || exit 1 -DBUS_SESSION_BUS_ADDRESS="$(cat dbus-session-bus-address)" -DBUS_SESSION_BUS_PID="$(cat dbus-session-bus-pid)" +DBUS_SESSION_BUS_ADDRESS=$(cat "$ADDRESS_FILE") +DBUS_SESSION_BUS_PID=$(cat "$PID_FILE") export DBUS_SESSION_BUS_ADDRESS diff -Nru fcitx5-5.1.7/test/testaddon.cpp fcitx5-5.1.11/test/testaddon.cpp --- fcitx5-5.1.7/test/testaddon.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/testaddon.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -34,6 +34,9 @@ FCITX_ASSERT(result); auto result2 = 8 == addon->call<fcitx::IDummyAddon::addOne>(7); FCITX_ASSERT(result2); + + FCITX_ASSERT(!addon->call<fcitx::IDummyAddon::testCopy>().isCopy()); + auto *addon2 = manager.addon("dummyaddon2"); FCITX_ASSERT(addon2); auto *addon3 = manager.addon("dummyaddon3"); diff -Nru fcitx5-5.1.7/test/testcandidatelist.cpp fcitx5-5.1.11/test/testcandidatelist.cpp --- fcitx5-5.1.7/test/testcandidatelist.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/testcandidatelist.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -7,6 +7,7 @@ #include <stdexcept> #include "fcitx-utils/log.h" +#include "fcitx/candidateaction.h" #include "fcitx/candidatelist.h" using namespace fcitx; @@ -14,8 +15,10 @@ class TestCandidateWord : public CandidateWord { public: - TestCandidateWord(int number) - : CandidateWord(Text(std::to_string(number))), number_(number) {} + TestCandidateWord(int number, Text comment = {}) + : CandidateWord(Text(std::to_string(number))), number_(number) { + setComment(std::move(comment)); + } void select(InputContext *) const override { selected = number_; } private: @@ -303,9 +306,65 @@ FCITX_ASSERT(candidatelist.label(9).toString() == ",. "); } +void test_comment() { + TestCandidateWord candidate(1, Text("comment")); + FCITX_ASSERT(candidate.text().toString() == "1"); + FCITX_ASSERT(candidate.comment().toString() == "comment"); + FCITX_ASSERT(candidate.textWithComment().toString() == "1 comment"); +} + +void test_cursor() { + CommonCandidateList candidatelist; + candidatelist.setPageSize(5); + candidatelist.setSelectionKey( + Key::keyListFromString("1 2 3 4 5 6 7 8 9 0")); + for (int i = 0; i < 10; i++) { + candidatelist.append<TestCandidateWord>(i); + } + candidatelist.setPage(1); + candidatelist.toCursorModifiable()->setCursorIndex(3); + FCITX_ASSERT(candidatelist.toBulkCursor()->globalCursorIndex(), 8); + candidatelist.setCursorIndex(0); + FCITX_ASSERT(candidatelist.toBulkCursor()->globalCursorIndex(), 5); +} + +void test_candidateaction() { + CandidateAction action; + action.setText("Test"); + action.setId(1); + action.setCheckable(true); + action.setChecked(false); + action.setSeparator(false); + action.setIcon("Icon"); + + CandidateAction action2; + action2 = std::move(action); + + FCITX_ASSERT(action2.text() == "Test"); + FCITX_ASSERT(action2.id() == 1); + FCITX_ASSERT(action2.isCheckable()); + FCITX_ASSERT(!action2.isChecked()); + FCITX_ASSERT(!action2.isSeparator()); + FCITX_ASSERT(action2.icon() == "Icon"); + + CandidateAction action3(action2); + + for (const auto &action : {action2, action3}) { + FCITX_ASSERT(action.text() == "Test"); + FCITX_ASSERT(action.id() == 1); + FCITX_ASSERT(action.isCheckable()); + FCITX_ASSERT(!action.isChecked()); + FCITX_ASSERT(!action.isSeparator()); + FCITX_ASSERT(action.icon() == "Icon"); + } +} + int main() { test_basic(); test_faulty_placeholder(); test_label(); + test_comment(); + test_cursor(); + test_candidateaction(); return 0; } diff -Nru fcitx5-5.1.7/test/testconfig.cpp fcitx5-5.1.11/test/testconfig.cpp --- fcitx5-5.1.7/test/testconfig.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/testconfig.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -195,6 +195,14 @@ FCITX_ASSERT(*ext.newOption == expect); } +void testCopyConfiguration() { + TestConfigExt origin; + origin.intValue.setValue(7); + + TestConfigExt copy(origin); + FCITX_ASSERT(*copy.intValue == 7); +} + int main() { testBasics(); testMove(); @@ -202,5 +210,6 @@ testRecursiveAssign(); testSyncDefaultToCurrent(); testExtend(); + testCopyConfiguration(); return 0; } diff -Nru fcitx5-5.1.7/test/testdbus.cpp fcitx5-5.1.11/test/testdbus.cpp --- fcitx5-5.1.7/test/testdbus.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/testdbus.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -5,7 +5,6 @@ * */ -#include <stdexcept> #include <thread> #include "fcitx-utils/dbus/bus.h" #include "fcitx-utils/dbus/variant.h" diff -Nru fcitx5-5.1.7/test/testdbusmessage.cpp fcitx5-5.1.11/test/testdbusmessage.cpp --- fcitx5-5.1.7/test/testdbusmessage.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/testdbusmessage.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -8,7 +8,6 @@ #include "fcitx-utils/dbus/bus.h" #include "fcitx-utils/dbus/message.h" #include "fcitx-utils/dbus/variant.h" -#include "fcitx-utils/event.h" #include "fcitx-utils/log.h" #include "fcitx-utils/metastring.h" diff -Nru fcitx5-5.1.7/test/testemoji.cpp fcitx5-5.1.11/test/testemoji.cpp --- fcitx5-5.1.7/test/testemoji.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/testemoji.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -5,7 +5,6 @@ * */ #include <fcntl.h> -#include <iostream> #include <fcitx-utils/log.h> #include <fcitx-utils/standardpath.h> #include <fcitx-utils/testing.h> diff -Nru fcitx5-5.1.7/test/testevent.cpp fcitx5-5.1.11/test/testevent.cpp --- fcitx5-5.1.7/test/testevent.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/testevent.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -5,7 +5,6 @@ * */ -#include <fcntl.h> #include <unistd.h> #include <ctime> #include <thread> diff -Nru fcitx5-5.1.7/test/testeventdispatcher.cpp fcitx5-5.1.11/test/testeventdispatcher.cpp --- fcitx5-5.1.7/test/testeventdispatcher.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/testeventdispatcher.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -7,9 +7,11 @@ #include <unistd.h> #include <atomic> #include <thread> +#include <vector> #include "fcitx-utils/event.h" #include "fcitx-utils/eventdispatcher.h" #include "fcitx-utils/log.h" +#include "fcitx-utils/trackableobject.h" using namespace fcitx; @@ -38,6 +40,22 @@ thread.join(); } +void testOrder() { + EventLoop loop; + EventDispatcher dispatcher; + dispatcher.attach(&loop); + std::vector<int> value; + for (int i = 0; i < 100; i++) { + dispatcher.schedule([i, &value]() { value.push_back(i); }); + } + dispatcher.schedule([&loop]() { loop.exit(); }); + loop.exec(); + FCITX_ASSERT(value.size() == 100); + for (int i = 0; i < 100; i++) { + FCITX_ASSERT(i == value[i]) << i << " " << value[i]; + } +} + void recursiveSchedule() { EventDispatcher dispatcher; EventLoop loop; @@ -59,8 +77,35 @@ FCITX_ASSERT(counter == 100); } +class TestObject : public TrackableObject<TestObject> {}; + +void withContext() { + EventDispatcher dispatcher; + EventLoop loop; + dispatcher.attach(&loop); + bool called = false; + bool invalidCalled = false; + TestObject validObject; + { + TestObject invalidObject; + dispatcher.scheduleWithContext(validObject.watch(), + [&called]() { called = true; }); + dispatcher.scheduleWithContext( + invalidObject.watch(), + [&invalidCalled]() { invalidCalled = true; }); + } + + dispatcher.schedule([&loop]() { loop.exit(); }); + loop.exec(); + + FCITX_ASSERT(called); + FCITX_ASSERT(!invalidCalled); +} + int main() { basicTest(); + testOrder(); recursiveSchedule(); + withContext(); return 0; } diff -Nru fcitx5-5.1.7/test/testfallbackuuid.cpp fcitx5-5.1.11/test/testfallbackuuid.cpp --- fcitx5-5.1.7/test/testfallbackuuid.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/testfallbackuuid.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,11 +6,16 @@ */ #define TEST_DISABLE_LIBUUID +#include <cstdint> +#include <cstring> +#include "fcitx-utils/log.h" #include "fcitx-utils/uuid_p.h" #include "testdir.h" int main() { - uint8_t t[16], t2[16], t3[16]; + uint8_t t[16]; + uint8_t t2[16]; + uint8_t t3[16]; FCITX_ASSERT(!fcitx::parseUUID("ff4d1624ze568-4f86-9def-302c73959c1d", t)); FCITX_ASSERT(!fcitx::parseUUID("ff4d1624-m568-4f86-9def-302c73959c1d", t)); FCITX_ASSERT(fcitx::parseUUID("ff4d1624-e568-4f86-9def-302c73959c1d", t)); diff -Nru fcitx5-5.1.7/test/testfs.cpp fcitx5-5.1.11/test/testfs.cpp --- fcitx5-5.1.7/test/testfs.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/testfs.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,7 +6,6 @@ */ #include <libgen.h> -#include <sys/stat.h> #include <unistd.h> #include <fcitx-utils/stringutils.h> #include "fcitx-utils/fs.h" diff -Nru fcitx5-5.1.7/test/testicontheme.cpp fcitx5-5.1.11/test/testicontheme.cpp --- fcitx5-5.1.7/test/testicontheme.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/testicontheme.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -21,6 +21,9 @@ FCITX_ASSERT(IconTheme::iconName("fcitx-pinyin", false) == "fcitx-pinyin"); FCITX_ASSERT(IconTheme::iconName("fcitx-pinyin", true) == "org.fcitx.Fcitx5.fcitx-pinyin"); + FCITX_ASSERT(IconTheme::iconName("fcitx_mozc", true) == + "org.fcitx.Fcitx5.fcitx_mozc"); + FCITX_ASSERT(IconTheme::iconName("fcitx", true) == "org.fcitx.Fcitx5"); for (const auto &inheritTheme : theme.inherits()) { FCITX_INFO() << inheritTheme.name().match(); diff -Nru fcitx5-5.1.7/test/testinputbuffer.cpp fcitx5-5.1.11/test/testinputbuffer.cpp --- fcitx5-5.1.7/test/testinputbuffer.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/testinputbuffer.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,6 +6,7 @@ */ #include "fcitx-utils/inputbuffer.h" #include "fcitx-utils/log.h" +#include "fcitx-utils/utf8.h" void test_basic(bool ascii) { using namespace fcitx; @@ -98,9 +99,24 @@ FCITX_ASSERT(buffer.userInput().empty()); } +void test_utf8_issue_965() { + using namespace fcitx; + InputBuffer buffer{{fcitx::InputBufferOption::NoOption}}; + buffer.type('a'); + buffer.type('a'); + buffer.type("\xe4\xbd\xa0\xe5\xa5\xbd"); + size_t i = 0; + FCITX_ASSERT(buffer.userInput() == "aa\xe4\xbd\xa0\xe5\xa5\xbd"); + for (uint32_t c : utf8::MakeUTF8CharRange(buffer.userInput())) { + FCITX_ASSERT(c == buffer.charAt(i)); + i++; + } +} + int main() { test_basic(true); test_basic(false); test_utf8(); + test_utf8_issue_965(); return 0; } diff -Nru fcitx5-5.1.7/test/testinputcontext.cpp fcitx5-5.1.11/test/testinputcontext.cpp --- fcitx5-5.1.7/test/testinputcontext.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/testinputcontext.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -12,7 +12,6 @@ #include "fcitx-utils/log.h" #include "fcitx-utils/testing.h" #include "fcitx/addonmanager.h" -#include "fcitx/event.h" #include "fcitx/focusgroup.h" #include "fcitx/inputcontext.h" #include "fcitx/inputcontextmanager.h" diff -Nru fcitx5-5.1.7/test/testisocodes.cpp fcitx5-5.1.11/test/testisocodes.cpp --- fcitx5-5.1.7/test/testisocodes.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/testisocodes.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -4,6 +4,7 @@ * SPDX-License-Identifier: LGPL-2.1-or-later * */ +#include <fcitx-utils/log.h> #include "config.h" #include "im/keyboard/isocodes.h" diff -Nru fcitx5-5.1.7/test/testkey.cpp fcitx5-5.1.11/test/testkey.cpp --- fcitx5-5.1.7/test/testkey.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/testkey.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,7 +6,6 @@ */ #include <cstdio> -#include <cstdlib> #include <cstring> #include "fcitx-utils/key.h" #include "fcitx-utils/keydata.h" @@ -76,6 +75,12 @@ FCITX_ASSERT( fcitx::Key("Shift+F4").check(fcitx::Key("Shift+F4").normalize())); FCITX_ASSERT( + fcitx::Key("Shift+Tab").check(fcitx::Key("Shift+Tab").normalize())); + FCITX_ASSERT(fcitx::Key("Shift+Return") + .check(fcitx::Key("Shift+Return").normalize())); + FCITX_ASSERT( + fcitx::Key("Shift+space").check(fcitx::Key("Shift+space").normalize())); + FCITX_ASSERT( fcitx::Key("Control+A").check(fcitx::Key("Control+a").normalize())); FCITX_ASSERT(fcitx::Key("Alt+exclam") .check(fcitx::Key("Alt+Shift+exclam").normalize())); @@ -150,6 +155,10 @@ FCITX_INFO() << fcitx::Key::keySymToString( FcitxKey_Insert, fcitx::KeyStringFormat::Localized); + FCITX_ASSERT(fcitx::Key::keySymToUnicode( + static_cast<fcitx::KeySym>(0x100fdd7)) == 0xfdd7); + FCITX_ASSERT(fcitx::Key::keySymToUnicode( + static_cast<fcitx::KeySym>(0x120fdd7)) == 0); return 0; } diff -Nru fcitx5-5.1.7/test/testquickphrase.cpp fcitx5-5.1.11/test/testquickphrase.cpp --- fcitx5-5.1.7/test/testquickphrase.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/testquickphrase.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -4,11 +4,18 @@ * SPDX-License-Identifier: LGPL-2.1-or-later * */ +#include <memory> +#include <string> #include "fcitx-utils/eventdispatcher.h" +#include "fcitx-utils/handlertable.h" +#include "fcitx-utils/key.h" +#include "fcitx-utils/keysym.h" +#include "fcitx-utils/log.h" +#include "fcitx-utils/macros.h" #include "fcitx-utils/testing.h" #include "fcitx/addonmanager.h" -#include "fcitx/inputmethodmanager.h" #include "fcitx/instance.h" +#include "fcitx/userinterface.h" #include "quickphrase_public.h" #include "testdir.h" #include "testfrontend_public.h" @@ -17,8 +24,8 @@ std::unique_ptr<HandlerTableEntry<QuickPhraseProviderCallback>> handle; -void scheduleEvent(EventDispatcher *dispatcher, Instance *instance) { - dispatcher->schedule([instance]() { +void testInit(Instance *instance) { + instance->eventDispatcher().schedule([instance]() { auto *quickphrase = instance->addonManager().addon("quickphrase", true); handle = quickphrase->call<IQuickPhrase::addProvider>( [](InputContext *, const std::string &text, @@ -32,7 +39,10 @@ }); FCITX_ASSERT(quickphrase); }); - dispatcher->schedule([dispatcher, instance]() { +} + +void testBasic(Instance *instance) { + instance->eventDispatcher().schedule([instance]() { auto *testfrontend = instance->addonManager().addon("testfrontend"); for (const auto *expectation : {"TEST", "abc", "abcd", "DEF", "abcd", "DEF1", "test1", "CALLBACK", @@ -151,12 +161,36 @@ testfrontend->call<ITestFrontend::keyEvent>(uuid, Key("u"), false); testfrontend->call<ITestFrontend::keyEvent>(uuid, Key("t"), false); testfrontend->call<ITestFrontend::keyEvent>(uuid, Key("o"), false); + }); +} - dispatcher->schedule([dispatcher, instance]() { - handle.reset(); - dispatcher->detach(); - instance->exit(); - }); +void testProviderV2(Instance *instance) { + instance->eventDispatcher().schedule([instance]() { + auto *testfrontend = instance->addonManager().addon("testfrontend"); + testfrontend->call<ITestFrontend::pushCommitExpectation>("PROVIDERV2"); + auto uuid = + testfrontend->call<ITestFrontend::createInputContext>("testapp"); + testfrontend->call<ITestFrontend::keyEvent>( + uuid, Key(FcitxKey_BackSpace), false); + auto *quickphrase = instance->addonManager().addon("quickphrase", true); + auto handleV2 = quickphrase->call<IQuickPhrase::addProviderV2>( + [](InputContext *, const std::string &text, + const QuickPhraseAddCandidateCallbackV2 &callback) { + FCITX_INFO() << "Quickphrase text: " << text; + if (text == "PVD") { + callback("PROVIDERV2", "V2", "COMMENT", + QuickPhraseAction::Commit); + return false; + } + return true; + }); + + testfrontend->call<ITestFrontend::keyEvent>(uuid, Key("Super+grave"), + false); + testfrontend->call<ITestFrontend::keyEvent>(uuid, Key("P"), false); + testfrontend->call<ITestFrontend::keyEvent>(uuid, Key("V"), false); + testfrontend->call<ITestFrontend::keyEvent>(uuid, Key("D"), false); + testfrontend->call<ITestFrontend::keyEvent>(uuid, Key("1"), false); }); } @@ -173,9 +207,13 @@ char *argv[] = {arg0, arg1, arg2}; Instance instance(FCITX_ARRAY_SIZE(argv), argv); instance.addonManager().registerDefaultLoader(nullptr); - EventDispatcher dispatcher; - dispatcher.attach(&instance.eventLoop()); - scheduleEvent(&dispatcher, &instance); + testInit(&instance); + testBasic(&instance); + testProviderV2(&instance); + instance.eventDispatcher().schedule([&instance]() { + handle.reset(); + instance.exit(); + }); instance.exec(); return 0; } diff -Nru fcitx5-5.1.7/test/testsignals.cpp fcitx5-5.1.11/test/testsignals.cpp --- fcitx5-5.1.7/test/testsignals.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/testsignals.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -148,6 +148,19 @@ FCITX_ASSERT(!connection.connected()); } +void test_self_removal() { + fcitx::Signal<void()> signal; + int number = 0; + fcitx::Connection connection = signal.connect([&connection, &number]() { + connection.disconnect(); + number = 1234; + }); + + signal(); + FCITX_ASSERT(number == 1234); + FCITX_ASSERT(!connection.connected()); +} + int main() { test_simple_signal(); test_combiner(); @@ -156,6 +169,7 @@ test_connectable_object(); test_reference(); test_move(); + test_self_removal(); return 0; } diff -Nru fcitx5-5.1.7/test/teststandardpath.cpp fcitx5-5.1.11/test/teststandardpath.cpp --- fcitx5-5.1.7/test/teststandardpath.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/teststandardpath.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -6,8 +6,10 @@ */ #include <fcntl.h> -#include <unistd.h> +#include <cstdlib> #include <set> +#include <string> +#include <vector> #include "fcitx-utils/fs.h" #include "fcitx-utils/log.h" #include "fcitx-utils/standardpath.h" @@ -35,8 +37,9 @@ auto result = standardPath.multiOpen( StandardPath::Type::PkgData, "addon", O_RDONLY, filter::Not(filter::User()), filter::Suffix(".conf")); - std::set<std::string> names, - expect_names = {"testim.conf", "testfrontend.conf"}; + std::set<std::string> names; + std::set<std::string> expect_names = {"testim.conf", + "testfrontend.conf"}; for (auto &p : result) { names.insert(p.first); FCITX_ASSERT(p.second.fd() >= 0); @@ -46,10 +49,25 @@ } { + auto result = standardPath.locate(StandardPath::Type::PkgData, "addon", + filter::Not(filter::User()), + filter::Suffix(".conf")); + std::set<std::string> names; + std::set<std::string> expect_names = {"testim.conf", + "testfrontend.conf"}; + for (auto &p : result) { + names.insert(p.first); + } + + FCITX_ASSERT(names == expect_names); + } + + { auto result = standardPath.multiOpen( StandardPath::Type::PkgData, "addon", O_RDONLY, filter::Not(filter::User()), filter::Suffix("im.conf")); - std::set<std::string> names, expect_names = {"testim.conf"}; + std::set<std::string> names; + std::set<std::string> expect_names = {"testim.conf"}; for (auto &p : result) { names.insert(p.first); FCITX_ASSERT(p.second.fd() >= 0); @@ -83,8 +101,9 @@ auto result = standardPath.multiOpen( StandardPath::Type::PkgData, "addon", O_RDONLY, filter::Not(filter::User()), filter::Suffix(".conf")); - std::set<std::string> names, - expect_names = {"testim.conf", "testfrontend.conf"}; + std::set<std::string> names; + std::set<std::string> expect_names = {"testim.conf", + "testfrontend.conf"}; for (auto &p : result) { names.insert(p.first); FCITX_ASSERT(p.second.fd() >= 0); @@ -97,7 +116,8 @@ auto result = standardPath.multiOpen( StandardPath::Type::PkgData, "addon", O_RDONLY, filter::Not(filter::User()), filter::Suffix("im.conf")); - std::set<std::string> names, expect_names = {"testim.conf"}; + std::set<std::string> names; + std::set<std::string> expect_names = {"testim.conf"}; for (auto &p : result) { names.insert(p.first); FCITX_ASSERT(p.second.fd() >= 0); @@ -116,8 +136,22 @@ FCITX_ASSERT(file2.fd() == -1); } +void test_custom() { + FCITX_ASSERT(setenv("XDG_CONFIG_HOME", "/TEST/PATH", 1) == 0); + FCITX_ASSERT(setenv("XDG_CONFIG_DIRS", "/TEST/PATH1:/TEST/PATH2", 1) == 0); + FCITX_ASSERT(setenv("XDG_DATA_DIRS", TEST_ADDON_DIR, 1) == 0); + StandardPath path("mypackage", {{"datadir", "/TEST/PATH3"}}, false, false); + FCITX_ASSERT(path.directories(fcitx::StandardPath::Type::PkgConfig) == + std::vector<std::string>{"/TEST/PATH1/mypackage", + "/TEST/PATH2/mypackage"}); + FCITX_ASSERT(path.directories(fcitx::StandardPath::Type::Data) == + std::vector<std::string>{TEST_ADDON_DIR, "/TEST/PATH3"}) + << path.directories(fcitx::StandardPath::Type::Data); +} + int main() { test_basic(); test_nouser(); + test_custom(); return 0; } diff -Nru fcitx5-5.1.7/test/teststringutils.cpp fcitx5-5.1.11/test/teststringutils.cpp --- fcitx5-5.1.7/test/teststringutils.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/teststringutils.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -5,7 +5,6 @@ * */ -#include <tuple> #include "fcitx-utils/charutils.h" #include "fcitx-utils/log.h" #include "fcitx-utils/macros.h" diff -Nru fcitx5-5.1.7/test/testtext.cpp fcitx5-5.1.11/test/testtext.cpp --- fcitx5-5.1.7/test/testtext.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/testtext.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -5,6 +5,7 @@ * */ #include <fcitx-utils/log.h> +#include <fcitx-utils/textformatflags.h> #include <fcitx/text.h> using namespace fcitx; @@ -33,6 +34,14 @@ FCITX_ASSERT(lines[2].toStringForCommit() == ""); FCITX_ASSERT(lines[3].toStringForCommit() == "Z"); FCITX_ASSERT(lines[4].toStringForCommit() == "1"); + + text = Text("ABC"); + Text another = Text("DEF", TextFormatFlag::Bold); + another.append("GHI", TextFormatFlag::Italic); + text.append(another); + FCITX_ASSERT(text.toString() == "ABCDEFGHI"); + FCITX_ASSERT(text.formatAt(1) == TextFormatFlag::Bold); + FCITX_ASSERT(text.formatAt(2) == TextFormatFlag::Italic); } void test_normalize() { diff -Nru fcitx5-5.1.7/test/testunicode.cpp fcitx5-5.1.11/test/testunicode.cpp --- fcitx5-5.1.7/test/testunicode.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/testunicode.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -7,7 +7,6 @@ #include "fcitx-utils/eventdispatcher.h" #include "fcitx-utils/testing.h" #include "fcitx/addonmanager.h" -#include "fcitx/inputmethodmanager.h" #include "fcitx/instance.h" #include "testdir.h" #include "testfrontend_public.h" diff -Nru fcitx5-5.1.7/test/testutf8.cpp fcitx5-5.1.11/test/testutf8.cpp --- fcitx5-5.1.7/test/testutf8.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/testutf8.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -70,6 +70,14 @@ FCITX_ASSERT(iter.view() == expectCharStr[i]); } + auto rangeView = fcitx::utf8::MakeUTF8StringViewRange(str); + i = 0; + for (auto iter = std::begin(rangeView), end = std::end(rangeView); + iter != end; ++iter, ++i) { + FCITX_ASSERT(iter->size() == expectLength[i]); + FCITX_ASSERT(*iter == expectCharStr[i]); + } + FCITX_ASSERT(fcitx::utf8::getLastChar(str) == 0xa); std::string invalidStr = "\xe4\xff"; @@ -85,5 +93,9 @@ FCITX_ASSERT(counter == 7); + FCITX_ASSERT(fcitx::utf8::UCS4IsValid(0xfdd7)); + FCITX_ASSERT(fcitx::utf8::UCS4IsValid(0xffff)); + FCITX_ASSERT(!fcitx::utf8::UCS4IsValid(0x200000)); + return 0; } diff -Nru fcitx5-5.1.7/test/testxim.cpp fcitx5-5.1.11/test/testxim.cpp --- fcitx5-5.1.7/test/testxim.cpp 2024-01-17 07:24:20.000000000 +0800 +++ fcitx5-5.1.11/test/testxim.cpp 2024-10-09 03:48:05.000000000 +0800 @@ -5,7 +5,6 @@ * SPDX-License-Identifier: LGPL-2.1-or-later * */ -#include <atomic> #include <condition_variable> #include <cstdarg> #include <future> @@ -17,7 +16,6 @@ #include "fcitx-utils/eventdispatcher.h" #include "fcitx-utils/testing.h" #include "fcitx/addonmanager.h" -#include "fcitx/inputmethodmanager.h" #include "fcitx/instance.h" #include "testdir.h"