From 92c8b9c3e849027eb74ba664bdb1412ff62381cf Mon Sep 17 00:00:00 2001 From: groverlynn Date: Mon, 17 Jun 2024 06:56:41 +0200 Subject: [PATCH] minor fix & boost 1.85.0 --- .../Symbols/lock.fill.symbolset/lock.fill.svg | 4 +- .../lock.vertical.fill.svg | 4 +- .../rectangle.compress.vertical.svg | 4 +- INSTALL.md | 2 +- Info.plist | 39 +- InfoPlist.xcstrings | 24 +- ...nMenu.xcstrings => Notifications.xcstrings | 105 +- Sparkle | 2 +- Squirrel.xcodeproj/project.pbxproj | 61 +- .../xcshareddata/xcschemes/Squirrel.xcscheme | 2 +- SquirrelApplicationDelegate.hh | 2 +- SquirrelApplicationDelegate.mm | 38 +- SquirrelConfig.hh | 8 +- SquirrelConfig.mm | 43 +- SquirrelInputController.hh | 2 + SquirrelInputController.mm | 316 ++-- SquirrelPanel.hh | 25 +- SquirrelPanel.mm | 1664 ++++++++--------- Localizable.xcstrings => Tooltips.xcstrings | 213 +-- autobuild.sh | 2 +- input_source.mm | 168 +- librime | 2 +- main.mm | 55 +- package/sign_update | Bin 0 -> 1402960 bytes 24 files changed, 1298 insertions(+), 1487 deletions(-) rename mul.lproj/MainMenu.xcstrings => Notifications.xcstrings (54%) rename Localizable.xcstrings => Tooltips.xcstrings (62%) create mode 100755 package/sign_update diff --git a/Assets.xcassets/Symbols/lock.fill.symbolset/lock.fill.svg b/Assets.xcassets/Symbols/lock.fill.symbolset/lock.fill.svg index 56b1c665e..fd807ca09 100644 --- a/Assets.xcassets/Symbols/lock.fill.symbolset/lock.fill.svg +++ b/Assets.xcassets/Symbols/lock.fill.symbolset/lock.fill.svg @@ -71,8 +71,8 @@ PUBLIC "-//W3C//DTD SVG 1.1//EN" - - + + diff --git a/Assets.xcassets/Symbols/lock.vertical.fill.symbolset/lock.vertical.fill.svg b/Assets.xcassets/Symbols/lock.vertical.fill.symbolset/lock.vertical.fill.svg index fef0094d6..d25c206dd 100644 --- a/Assets.xcassets/Symbols/lock.vertical.fill.symbolset/lock.vertical.fill.svg +++ b/Assets.xcassets/Symbols/lock.vertical.fill.symbolset/lock.vertical.fill.svg @@ -71,8 +71,8 @@ PUBLIC "-//W3C//DTD SVG 1.1//EN" - - + + diff --git a/Assets.xcassets/Symbols/rectangle.compress.vertical.symbolset/rectangle.compress.vertical.svg b/Assets.xcassets/Symbols/rectangle.compress.vertical.symbolset/rectangle.compress.vertical.svg index ea10765e2..0ffb00f70 100644 --- a/Assets.xcassets/Symbols/rectangle.compress.vertical.symbolset/rectangle.compress.vertical.svg +++ b/Assets.xcassets/Symbols/rectangle.compress.vertical.symbolset/rectangle.compress.vertical.svg @@ -71,8 +71,8 @@ PUBLIC "-//W3C//DTD SVG 1.1//EN" - - + + diff --git a/INSTALL.md b/INSTALL.md index d66c83a42..d72ad044f 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -63,7 +63,7 @@ export BUILD_UNIVERSAL=1 bash librime/install-boost.sh -export BOOST_ROOT="$(pwd)/librime/deps/boost-1.84.0" +export BOOST_ROOT="$(pwd)/librime/deps/boost_1_85_0" ``` Let's set `BUILD_UNIVERSAL` to tell `make` that we are building Boost as diff --git a/Info.plist b/Info.plist index c168cbf5f..1e4d16ceb 100644 --- a/Info.plist +++ b/Info.plist @@ -7,13 +7,15 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIconFile - RimeIcon.icns + $(ASSETCATALOG_COMPILER_APPICON_NAME) CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName ${PRODUCT_NAME} + CFBundleDisplayName + ${INFOPLIST_KEY_CFBundleDisplayName} CFBundlePackageType APPL CFBundleSignature @@ -30,8 +32,13 @@ im.rime.inputmethod.Squirrel.Hans + TISIconLabels + + Primary + ㄓ⃣ + TISInputSourceID - ${PRODUCT_BUNDLE_IDENTIFIER}.Hans + im.rime.inputmethod.Squirrel.Hans TISIntendedLanguage zh-Hans tsInputModeCharacterRepertoireKey @@ -42,8 +49,6 @@ tsInputModeIsVisibleKey - tsInputModeKeyEquivalentModifiersKey - 4608 tsInputModeMenuIconFileKey rime.pdf tsInputModePaletteIconFileKey @@ -51,12 +56,17 @@ tsInputModePrimaryInScriptKey tsInputModeScriptKey - smUnicodeScript + smSimpChinese im.rime.inputmethod.Squirrel.Hant + TISIconLabels + + Primary + ㄓ⃣ + TISInputSourceID - ${PRODUCT_BUNDLE_IDENTIFIER}.Hant + im.rime.inputmethod.Squirrel.Hant TISIntendedLanguage zh-Hant tsInputModeCharacterRepertoireKey @@ -67,8 +77,6 @@ tsInputModeIsVisibleKey - tsInputModeKeyEquivalentModifiersKey - 4608 tsInputModeMenuIconFileKey rime.pdf tsInputModePaletteIconFileKey @@ -76,12 +84,17 @@ tsInputModePrimaryInScriptKey tsInputModeScriptKey - smUnicodeScript + smTradChinese im.rime.inputmethod.Squirrel.Cant + TISIconLabels + + Primary + ㄓ⃣ + TISInputSourceID - ${PRODUCT_BUNDLE_IDENTIFIER}.Cant + im.rime.inputmethod.Squirrel.Cant TISIntendedLanguage yue-Hant tsInputModeCharacterRepertoireKey @@ -92,8 +105,6 @@ tsInputModeIsVisibleKey - tsInputModeKeyEquivalentModifiersKey - 4608 tsInputModeMenuIconFileKey rime.pdf tsInputModePaletteIconFileKey @@ -101,7 +112,7 @@ tsInputModePrimaryInScriptKey tsInputModeScriptKey - smUnicodeScript + smTradChinese tsVisibleInputModeOrderedArrayKey @@ -121,6 +132,8 @@ LSUIElement 1 + NSSupportsSuddenTermination + NSMainNibFile MainMenu NSPrincipalClass diff --git a/InfoPlist.xcstrings b/InfoPlist.xcstrings index f8d6aa418..85300a162 100644 --- a/InfoPlist.xcstrings +++ b/InfoPlist.xcstrings @@ -2,36 +2,36 @@ "sourceLanguage" : "en", "strings" : { "CFBundleDisplayName" : { - "extractionState" : "stale", + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { "state" : "translated", - "value" : "Squirrel" + "value" : "Squirrel Input Method" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "鼠须管" + "value" : "鼠须管输入法" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "鼠鬚管" + "value" : "鼠鬚管輸入法" } }, "zh-HK" : { "stringUnit" : { "state" : "translated", - "value" : "鼠鬚筆" + "value" : "鼠鬚筆輸入法" } } } }, "CFBundleName" : { - "comment" : "Bundle name", + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { @@ -60,7 +60,7 @@ } }, "im.rime.inputmethod.Squirrel" : { - "extractionState" : "stale", + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { @@ -89,7 +89,7 @@ } }, "im.rime.inputmethod.Squirrel.Cant" : { - "extractionState" : "stale", + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { @@ -118,7 +118,7 @@ } }, "im.rime.inputmethod.Squirrel.Hans" : { - "extractionState" : "stale", + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { @@ -147,7 +147,7 @@ } }, "im.rime.inputmethod.Squirrel.Hant" : { - "extractionState" : "stale", + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { @@ -176,7 +176,7 @@ } }, "NSHumanReadableCopyright" : { - "extractionState" : "stale", + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { @@ -206,4 +206,4 @@ } }, "version" : "1.0" -} \ No newline at end of file +} diff --git a/mul.lproj/MainMenu.xcstrings b/Notifications.xcstrings similarity index 54% rename from mul.lproj/MainMenu.xcstrings rename to Notifications.xcstrings index a695a6408..dc18f0729 100644 --- a/mul.lproj/MainMenu.xcstrings +++ b/Notifications.xcstrings @@ -1,212 +1,205 @@ { "sourceLanguage" : "en", "strings" : { - "774.title" : { - "comment" : "Class = \"NSMenuItem\"; title = \"Deploy\"; ObjectID = \"774\";", - "extractionState" : "extracted_with_value", + "deploy_failure" : { + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { - "state" : "new", - "value" : "Deploy" + "state" : "translated", + "value" : "Error occurred. See log file $TMPDIR/rime.squirrel.INFO." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新部署" + "value" : "有错误!请查看日志 $TMPDIR/rime.squirrel.INFO" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新部署" + "value" : "有錯誤!請查看日誌 $TMPDIR/rime.squirrel.INFO" } }, "zh-HK" : { "stringUnit" : { "state" : "translated", - "value" : "重新部署" + "value" : "有錯誤!請查看日誌 $TMPDIR/rime.squirrel.INFO" } } } }, - "776.title" : { - "comment" : "Class = \"NSMenuItem\"; title = \"Check for updates…\"; ObjectID = \"776\";", - "extractionState" : "extracted_with_value", + "deploy_start" : { + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { - "state" : "new", - "value" : "Check for updates…" + "state" : "translated", + "value" : "Deploying Rime input method engine…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "检查更新…" + "value" : "部署输入法引擎…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢查更新項目⋯" + "value" : "部署輸入法引擎⋯" } }, "zh-HK" : { "stringUnit" : { "state" : "translated", - "value" : "檢查更新項目⋯" + "value" : "部署輸入法引擎⋯" } } } }, - "780.title" : { - "comment" : "Class = \"NSMenuItem\"; title = \"ㄓ⃣Squirrel Switcher\"; ObjectID = \"780\";", - "extractionState" : "extracted_with_value", + "deploy_success" : { + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { - "state" : "new", - "value" : "ㄓ⃣Squirrel Switcher" + "state" : "translated", + "value" : "Squirrel is ready." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "ㄓ⃣鼠须管〔方案菜单〕" + "value" : "部署完成。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "ㄓ⃣鼠鬚管〔方案選單〕" + "value" : "部署完成。" } }, "zh-HK" : { "stringUnit" : { "state" : "translated", - "value" : "ㄓ⃣鼠鬚筆〔方案選單〕" + "value" : "部署完成。" } } } }, - "797.title" : { - "comment" : "Class = \"NSMenuItem\"; title = \"Rime Wiki…\"; ObjectID = \"797\";", - "extractionState" : "extracted_with_value", + "deploy_update" : { + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { - "state" : "new", - "value" : "Rime Wiki…" + "state" : "translated", + "value" : "Deploying Rime for updates…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在线帮助…" + "value" : "更新输入法引擎…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "線上輔助說明⋯" + "value" : "更新輸入法引擎⋯" } }, "zh-HK" : { "stringUnit" : { "state" : "translated", - "value" : "線上輔助説明⋯" + "value" : "更新輸入法引擎⋯" } } } }, - "802.title" : { - "comment" : "Class = \"NSMenuItem\"; title = \"Settings…\"; ObjectID = \"802\";", - "extractionState" : "extracted_with_value", + "problematic_launch" : { + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { - "state" : "new", - "value" : "Settings…" + "state" : "translated", + "value" : "Problematic launch detected!\nSquirrel may be suffering a crash due to improper configurations.\nRevert previous modifications to see if the problem recurs." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户设置…" + "value" : "检测到启动有问题!\n“鼠须管”可能因错误设置而崩溃。\n请尝试撤销之前的修改,然后查看问题是否仍旧存在。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者設定⋯" + "value" : "啟動時偵測到問題!\n「鼠鬚管」可能因設定不當而崩潰。\n請嘗試回退先前的修改,然後查看問題是否依然存在。" } }, "zh-HK" : { "stringUnit" : { "state" : "translated", - "value" : "用户設定⋯" + "value" : "啟動時偵測到錯誤!\n「鼠鬚筆」可能由於設定不當而崩潰。\n請嘗試回退先前的改動,然後查看問題是否仍然存在。" } } } }, - "804.title" : { - "comment" : "Class = \"NSMenuItem\"; title = \"Sync user data\"; ObjectID = \"804\";", - "extractionState" : "extracted_with_value", + "say_voice" : { + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { - "state" : "new", - "value" : "Sync user data" + "state" : "translated", + "value" : "Alex" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "同步用户数据" + "value" : "TingTing" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同步使用者資料" + "value" : "MeiJia" } }, "zh-HK" : { "stringUnit" : { "state" : "translated", - "value" : "同步用户資料" + "value" : "Sinji" } } } }, - "809.title" : { - "comment" : "Class = \"NSMenuItem\"; title = \"Error and warning logs\"; ObjectID = \"809\";", - "extractionState" : "extracted_with_value", + "Squirrel" : { + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { - "state" : "new", - "value" : "Error and warning logs" + "state" : "translated", + "value" : "Squirrel" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "错误和警告日志" + "value" : "鼠须管" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "錯誤和警告記錄" + "value" : "鼠鬚管" } }, "zh-HK" : { "stringUnit" : { "state" : "translated", - "value" : "錯誤與警告記錄" + "value" : "鼠鬚筆" } } } diff --git a/Sparkle b/Sparkle index 47d3d90ae..41847a58c 160000 --- a/Sparkle +++ b/Sparkle @@ -1 +1 @@ -Subproject commit 47d3d90aee3c52b6f61d04ceae426e607df62347 +Subproject commit 41847a58cdef7506b257591fcca6f9495df591d4 diff --git a/Squirrel.xcodeproj/project.pbxproj b/Squirrel.xcodeproj/project.pbxproj index 19fb287c4..7d5e3e223 100644 --- a/Squirrel.xcodeproj/project.pbxproj +++ b/Squirrel.xcodeproj/project.pbxproj @@ -80,7 +80,6 @@ A4B8E1B30F645B870094E08B /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4B8E1B20F645B870094E08B /* Carbon.framework */; }; E93074B70A5C264700470842 /* InputMethodKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E93074B60A5C264700470842 /* InputMethodKit.framework */; }; F42760AE2C07A2F60050B08A /* InfoPlist.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F42760AD2C07A2F60050B08A /* InfoPlist.xcstrings */; }; - F42760B02C07A2F60050B08A /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F42760AF2C07A2F60050B08A /* Localizable.xcstrings */; }; F48CFB6B2B327A2E00DB9CF9 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 447765C725C30E6B002415AF /* Sparkle.framework */; }; F493BF7B2B76F28A008BD7D0 /* UserNotifications.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F493BF7A2B76F27E008BD7D0 /* UserNotifications.framework */; }; F49FEC632B8FA4E0009DDC32 /* EmojiCategoryEN.ocd2 in Copy opencc Files */ = {isa = PBXBuildFile; fileRef = F49FEC412B8FA3FB009DDC32 /* EmojiCategoryEN.ocd2 */; }; @@ -105,6 +104,8 @@ F4EC47A32B323223004862A4 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97324FDCFA39411CA2CEA /* AppKit.framework */; }; F4EC47A42B32322F004862A4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97325FDCFA39411CA2CEA /* Foundation.framework */; }; F4EC47A82B3233D4004862A4 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F4EC47A72B3233D0004862A4 /* IOKit.framework */; }; + F4FDF9262C25653200A8E629 /* Notifications.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F4FDF9242C25653100A8E629 /* Notifications.xcstrings */; }; + F4FDF9272C25653200A8E629 /* Tooltips.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F4FDF9252C25653100A8E629 /* Tooltips.xcstrings */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -317,7 +318,6 @@ A4B8E1B20F645B870094E08B /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; E93074B60A5C264700470842 /* InputMethodKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = InputMethodKit.framework; path = System/Library/Frameworks/InputMethodKit.framework; sourceTree = SDKROOT; }; F42760AD2C07A2F60050B08A /* InfoPlist.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = InfoPlist.xcstrings; sourceTree = ""; }; - F42760AF2C07A2F60050B08A /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = ""; }; F42760B12C07A2F60050B08A /* mul */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; name = mul; path = mul.lproj/MainMenu.xcstrings; sourceTree = ""; }; F493BF7A2B76F27E008BD7D0 /* UserNotifications.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UserNotifications.framework; path = System/Library/Frameworks/UserNotifications.framework; sourceTree = SDKROOT; }; F49FEC412B8FA3FB009DDC32 /* EmojiCategoryEN.ocd2 */ = {isa = PBXFileReference; lastKnownFileType = file; path = EmojiCategoryEN.ocd2; sourceTree = ""; }; @@ -340,6 +340,8 @@ F4EC479F2B323203004862A4 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; F4EC47A12B32320B004862A4 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; F4EC47A72B3233D0004862A4 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; + F4FDF9242C25653100A8E629 /* Notifications.xcstrings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json.xcstrings; path = Notifications.xcstrings; sourceTree = ""; }; + F4FDF9252C25653100A8E629 /* Tooltips.xcstrings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json.xcstrings; path = Tooltips.xcstrings; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -434,7 +436,8 @@ 44986A93184B421700B3278D /* LICENSE.txt */, 44986A94184B421700B3278D /* README.md */, 44F7708E152B3334005CF491 /* dsa_pub.pem */, - F42760AF2C07A2F60050B08A /* Localizable.xcstrings */, + F4FDF9242C25653100A8E629 /* Notifications.xcstrings */, + F4FDF9252C25653100A8E629 /* Tooltips.xcstrings */, 8D1107310486CEB800E47090 /* Info.plist */, F42760AD2C07A2F60050B08A /* InfoPlist.xcstrings */, A45578F41146A75200592C6E /* MainMenu.xib */, @@ -599,7 +602,7 @@ isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1540; + LastUpgradeCheck = 1600; }; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Squirrel" */; compatibilityVersion = "Xcode 15.0"; @@ -630,11 +633,12 @@ files = ( A45578F51146A75200592C6E /* MainMenu.xib in Resources */, 446C01D71F767BD400A6C23E /* Assets.xcassets in Resources */, + F4FDF9272C25653200A8E629 /* Tooltips.xcstrings in Resources */, 44986A95184B421700B3278D /* LICENSE.txt in Resources */, 44986A96184B421700B3278D /* README.md in Resources */, + F4FDF9262C25653200A8E629 /* Notifications.xcstrings in Resources */, F42760AE2C07A2F60050B08A /* InfoPlist.xcstrings in Resources */, 44F7708F152B3334005CF491 /* dsa_pub.pem in Resources */, - F42760B02C07A2F60050B08A /* Localizable.xcstrings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -677,19 +681,14 @@ CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES; CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES; CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_OBJC_ARC = YES; CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES; CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; - CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; + CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGER = YES; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 0.18.0t; - DEAD_CODE_STRIPPING = YES; - DEVELOPMENT_TEAM = ""; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", @@ -705,6 +704,7 @@ INFOPLIST_FILE = Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Squirrel Input Method"; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; + INFOPLIST_KEY_NSPrincipalClass = NSApplication; INSTALL_PATH = "\"/Library/Input Methods\""; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -714,7 +714,7 @@ "$(inherited)", "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", ); - MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)"; + MACOSX_DEPLOYMENT_TARGET = 10.14; OTHER_CODE_SIGN_FLAGS = "--deep"; OTHER_CPLUSPLUSFLAGS = ( "-DLEOPARD", @@ -725,8 +725,8 @@ OTHER_LDFLAGS = "-lrime.1"; PRODUCT_BUNDLE_IDENTIFIER = im.rime.inputmethod.Squirrel; PRODUCT_NAME = Squirrel; - PROVISIONING_PROFILE_SPECIFIER = ""; SDKROOT = macosx; + STRINGS_FILE_OUTPUT_ENCODING = "UTF-8"; SWIFT_EMIT_LOC_STRINGS = YES; WRAPPER_EXTENSION = app; }; @@ -739,18 +739,13 @@ CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES; CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES; CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_OBJC_ARC = YES; CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES; CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; - CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; + CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGER = YES; CURRENT_PROJECT_VERSION = 0.18.0t; - DEAD_CODE_STRIPPING = YES; - DEVELOPMENT_TEAM = ""; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", @@ -765,6 +760,7 @@ INFOPLIST_FILE = Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Squirrel Input Method"; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; + INFOPLIST_KEY_NSPrincipalClass = NSApplication; INSTALL_PATH = "\"/Library/Input Methods\""; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -774,7 +770,7 @@ "$(inherited)", "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", ); - MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)"; + MACOSX_DEPLOYMENT_TARGET = 10.14; OTHER_CODE_SIGN_FLAGS = "--deep"; OTHER_CPLUSPLUSFLAGS = ( "-DLEOPARD", @@ -785,8 +781,8 @@ OTHER_LDFLAGS = "-lrime.1"; PRODUCT_BUNDLE_IDENTIFIER = im.rime.inputmethod.Squirrel; PRODUCT_NAME = Squirrel; - PROVISIONING_PROFILE_SPECIFIER = ""; SDKROOT = macosx; + STRINGS_FILE_OUTPUT_ENCODING = "UTF-8"; SWIFT_EMIT_LOC_STRINGS = YES; WRAPPER_EXTENSION = app; }; @@ -802,10 +798,13 @@ CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES; CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES; CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_ARC_EXCEPTIONS = YES; CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES; CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; + CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGER = YES; + CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES; CLANG_WARN_ASSIGN_ENUM = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; @@ -820,7 +819,6 @@ CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; @@ -831,11 +829,7 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - DEAD_CODE_STRIPPING = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_INPUT_FILETYPE = automatic; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_MISSING_NEWLINE = YES; @@ -866,6 +860,8 @@ MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)"; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; + STRINGS_FILE_OUTPUT_ENCODING = "UTF-8"; + SWIFT_EMIT_LOC_STRINGS = YES; SYSTEM_HEADER_SEARCH_PATHS = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Tk.framework/Headers; }; name = Debug; @@ -880,10 +876,13 @@ CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES; CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES; CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_ARC_EXCEPTIONS = YES; CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES; CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; + CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGER = YES; + CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES; CLANG_WARN_ASSIGN_ENUM = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; @@ -898,7 +897,6 @@ CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; @@ -910,10 +908,7 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/Release"; - DEAD_CODE_STRIPPING = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_INPUT_FILETYPE = automatic; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_MISSING_NEWLINE = YES; @@ -941,6 +936,8 @@ MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)"; ONLY_ACTIVE_ARCH = NO; SDKROOT = macosx; + STRINGS_FILE_OUTPUT_ENCODING = "UTF-8"; + SWIFT_EMIT_LOC_STRINGS = YES; SYSTEM_HEADER_SEARCH_PATHS = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Tk.framework/Headers; }; name = Release; diff --git a/Squirrel.xcodeproj/xcshareddata/xcschemes/Squirrel.xcscheme b/Squirrel.xcodeproj/xcshareddata/xcschemes/Squirrel.xcscheme index 36681daf7..40582026c 100644 --- a/Squirrel.xcodeproj/xcshareddata/xcschemes/Squirrel.xcscheme +++ b/Squirrel.xcodeproj/xcshareddata/xcschemes/Squirrel.xcscheme @@ -1,6 +1,6 @@ * keys = [hotkey componentsSeparatedByString:@"+"]; @@ -219,7 +221,11 @@ - (void)loadSettings { } else { _showNotifications = kShowNotificationsWhenAppropriate; } + CGFloat chordDuration = [[config nullableDoubleForOption:@"chord_duration"] doubleValue]; + SquirrelInputController.chordDuration = isnormal(chordDuration) ? chordDuration : 0.1; + _panel.optionSwitcher = SquirrelOptionSwitcher.alloc.init; [_panel loadConfig:config]; + [config close]; } - (void)loadSchemaSpecificSettings:(NSString*)schemaId @@ -228,7 +234,7 @@ - (void)loadSchemaSpecificSettings:(NSString*)schemaId return; } // update the list of switchers that change styles and color-themes - SquirrelConfig* baseConfig = [SquirrelConfig.alloc initWithArg:@"squirrel"]; + SquirrelConfig* baseConfig = [SquirrelConfig.alloc initWithType:@".base"]; SquirrelConfig* schema = SquirrelConfig.alloc.init; if ([schema openWithSchemaId:schemaId baseConfig:baseConfig]) { _panel.optionSwitcher = schema.optionSwitcherForSchema; @@ -244,21 +250,19 @@ - (void)loadSchemaSpecificSettings:(NSString*)schemaId } - (void)loadSchemaSpecificLabels:(NSString*)schemaId { - SquirrelConfig* defaultConfig = SquirrelConfig.alloc.init; - [defaultConfig openWithConfigId:@"default"]; + SquirrelConfig* defaultConfig = [SquirrelConfig.alloc initWithType:@".default"]; if (schemaId.length == 0 || [schemaId hasPrefix:@"."]) { [_panel loadLabelConfig:defaultConfig directUpdate:YES]; - [defaultConfig close]; - return; - } - SquirrelConfig* schema = SquirrelConfig.alloc.init; - if ([schema openWithSchemaId:schemaId baseConfig:defaultConfig] && - [schema hasSection:@"menu"]) { - [_panel loadLabelConfig:schema directUpdate:NO]; } else { - [_panel loadLabelConfig:defaultConfig directUpdate:NO]; + SquirrelConfig* schema = SquirrelConfig.alloc.init; + if ([schema openWithSchemaId:schemaId baseConfig:defaultConfig] && + [schema hasSection:@"menu"]) { + [_panel loadLabelConfig:schema directUpdate:NO]; + } else { + [_panel loadLabelConfig:defaultConfig directUpdate:NO]; + } + [schema close]; } - [schema close]; [defaultConfig close]; } @@ -355,7 +359,7 @@ - (void)dealloc { @implementation NSApplication (SquirrelApp) -- (SquirrelApplicationDelegate*)squirrelAppDelegate { +- (SquirrelApplicationDelegate*)SquirrelAppDelegate { return (SquirrelApplicationDelegate*)self.delegate; } diff --git a/SquirrelConfig.hh b/SquirrelConfig.hh index 4fd09d11c..a4485aef0 100644 --- a/SquirrelConfig.hh +++ b/SquirrelConfig.hh @@ -33,9 +33,9 @@ __attribute__((objc_direct_members)) __attribute__((objc_direct_members)) @interface SquirrelAppOptions : NSDictionary -- (bool)boolValueForKey:(NSString* _Nonnull)key; -- (int)intValueForKey:(NSString* _Nonnull)key; -- (double)doubleValueForKey:(NSString* _Nonnull)key; +- (bool)boolValueForOption:(NSString* _Nonnull)option; +- (int)intValueForOption:(NSString* _Nonnull)option; +- (double)doubleValueForOption:(NSString* _Nonnull)option; @end // SquirrelAppOptions @@ -46,7 +46,7 @@ __attribute__((objc_direct_members)) @property(nonatomic, strong, readonly, nullable) NSString* schemaId; @property(nonatomic, strong, nonnull) NSString* colorSpace; -- (instancetype _Nonnull)initWithArg:(NSString* _Nonnull)arg; +- (instancetype _Nonnull)initWithType:(NSString* _Nonnull)arg; - (BOOL)openBaseConfig; - (BOOL)openWithSchemaId:(NSString* _Nonnull)schemaId baseConfig:(SquirrelConfig* _Nullable)config; diff --git a/SquirrelConfig.mm b/SquirrelConfig.mm index df2ca582a..94d5e55ed 100644 --- a/SquirrelConfig.mm +++ b/SquirrelConfig.mm @@ -121,24 +121,24 @@ - (void)updateWithRimeSession:(RimeSessionId)session { @implementation SquirrelAppOptions -- (bool)boolValueForKey:(NSString*)key { - if (NSNumber* value = self[key]; +- (bool)boolValueForOption:(NSString*)option { + if (NSNumber* value = self[option]; value != nil && strcmp(value.objCType, @encode(BOOL)) == 0) { return value.boolValue; } return NO; } -- (int)intValueForKey:(NSString*)key { - if (NSNumber* value = self[key]; +- (int)intValueForOption:(NSString*)option { + if (NSNumber* value = self[option]; value != nil && strcmp(value.objCType, @encode(int)) == 0) { return value.intValue; } return 0; } -- (double)doubleValueForKey:(NSString*)key { - if (NSNumber* value = self[key]; +- (double)doubleValueForOption:(NSString*)option { + if (NSNumber* value = self[option]; value != nil && strcmp(value.objCType, @encode(double)) == 0) { return value.doubleValue; } @@ -192,19 +192,19 @@ - (instancetype)init { return self; } -- (instancetype)initWithArg:(NSString*)arg { +- (instancetype)initWithType:(NSString*)type { if (self = [super init]) { _cache = NSCache.alloc.init; _colorSpace = NSColorSpace.sRGBColorSpace; _colorSpaceName = @"sRGB"; - if ([arg isEqualToString:@"squirrel"]) { + if ([type isEqualToString:@".squirrel"] || [type isEqualToString:@".base"]) { [self openBaseConfig]; - } else if ([arg isEqualToString:@"default"]) { - [self openWithConfigId:arg]; - } else if ([arg isEqualToString:@"user"] || [arg isEqualToString:@"installation"]) { - [self openUserConfig:arg]; + } else if ([type isEqualToString:@".default"]) { + [self openWithConfigId:@"default"]; + } else if ([type isEqualToString:@".user"] || [type isEqualToString:@".installation"]) { + [self openUserConfig:[type substringFromIndex:1]]; } else { - [self openWithSchemaId:arg baseConfig:nil]; + [self openWithSchemaId:type baseConfig:[SquirrelConfig.alloc initWithType:@".base"]]; } } return self; @@ -222,11 +222,7 @@ - (BOOL)openWithSchemaId:(NSString*)schemaId _isOpen = rime_get_api_stdbool()->schema_open(schemaId.UTF8String, &_config); if (_isOpen) { _schemaId = schemaId; - if (baseConfig == nil) { - _baseConfig = [SquirrelConfig.alloc initWithArg:@"squirrel"]; - } else { - _baseConfig = baseConfig; - } + _baseConfig = baseConfig; } return _isOpen; } @@ -245,10 +241,10 @@ - (BOOL)openWithConfigId:(NSString*)configId { - (void)close { if (_isOpen && rime_get_api_stdbool()->config_close(&_config)) { - _baseConfig = nil; - _schemaId = nil; _isOpen = NO; } + _baseConfig = nil; + _schemaId = nil; } - (void)dealloc { @@ -572,13 +568,14 @@ - (SquirrelOptionSwitcher*)optionSwitcherForSchema { } - (SquirrelAppOptions*)appOptionsForApp:(NSString*)bundleId { - if (SquirrelAppOptions* cachedValue = [self cachedValueOfClass:SquirrelAppOptions.class forKey:bundleId]) { + NSString* rootKey = [@"app_options/" append:bundleId]; + if (SquirrelAppOptions* cachedValue = [self cachedValueOfClass:SquirrelAppOptions.class forKey:rootKey]) { return cachedValue; } - NSString* rootKey = [@"app_options/" append:bundleId]; NSMutableDictionary* appOptions = NSMutableDictionary.alloc.init; RimeConfigIterator iterator; if (!rime_get_api_stdbool()->config_begin_map(&iterator, &_config, rootKey.UTF8String)) { + [_cache setObject:appOptions forKey:rootKey]; return appOptions.copy; } while (rime_get_api_stdbool()->config_next(&iterator)) { @@ -590,7 +587,7 @@ - (SquirrelAppOptions*)appOptionsForApp:(NSString*)bundleId { } } rime_get_api_stdbool()->config_end(&iterator); - [_cache setObject:appOptions forKey:bundleId]; + [_cache setObject:appOptions forKey:rootKey]; return appOptions.copy; } diff --git a/SquirrelInputController.hh b/SquirrelInputController.hh index 13c19966a..0604e20b0 100644 --- a/SquirrelInputController.hh +++ b/SquirrelInputController.hh @@ -32,6 +32,8 @@ typedef NS_ENUM(NSUInteger, SquirrelIndex) { }; @property(nonatomic, readonly, weak, nullable, direct, class) SquirrelInputController* currentController; +@property(nonatomic, direct, class) NSTimeInterval chordDuration; +@property(nonatomic, direct, class) BOOL goodOldCapsLock; @property(nonatomic, readonly, strong, nonnull) NSAppearance* viewEffectiveAppearance API_AVAILABLE(macos(10.14)); @property(nonatomic, readonly, strong, nonnull, direct) NSMutableArray* candidateTexts; @property(nonatomic, readonly, strong, nonnull, direct) NSMutableArray* candidateComments; diff --git a/SquirrelInputController.mm b/SquirrelInputController.mm index 891a9601e..14310339e 100644 --- a/SquirrelInputController.mm +++ b/SquirrelInputController.mm @@ -12,12 +12,14 @@ static NSString* const kFullWidthSpace = @" "; static const int N_KEY_ROLL_OVER = 50; +static const NSTimeInterval kStatusDelay = 0.2; @implementation SquirrelInputController { NSMutableAttributedString* _inlineString; NSString* _originalString; NSString* _composedString; NSString* _schemaId; + NSTimer* _statusTimer; NSRange _selSegment; NSRange _candidateIndices; NSRange _inlineSelRange; @@ -28,16 +30,16 @@ @implementation SquirrelInputController { RimeSessionId _session; BOOL _inlinePreedit; BOOL _inlineCandidate; - BOOL _goodOldCapsLock; BOOL _showingSwitcherMenu; + BOOL _showingInitialStatus; // app-specific options and bug fix SquirrelAppOptions* _appOptions; - BOOL _inlinePlaceholder; - BOOL _panellessCommitFix; - int _inlineOffset; + bool _inlinePlaceholder; + bool _panellessCommitFix; + double _inlineOffset; // for chord-typing NSTimer* _chordTimer; - NSTimeInterval _chordDuration; + int _chordKeyCodes[N_KEY_ROLL_OVER]; int _chordModifiers[N_KEY_ROLL_OVER]; int _chordKeyCount; @@ -45,17 +47,35 @@ @implementation SquirrelInputController { static SquirrelInputController* __weak _currentController = nil; static NSString* _currentApp; +static NSTimeInterval _chordDuration = 0.1; static int _asciiMode = -1; +static BOOL _goodOldCapsLock = NO; + (void)setCurrentController:(SquirrelInputController*)controller { _currentController = controller; - NSApp.squirrelAppDelegate.panel.IbeamRect = NSZeroRect; + NSApp.SquirrelAppDelegate.panel.IbeamRect = NSZeroRect; } + (SquirrelInputController*)currentController { return _currentController; } ++ (void)setChordDuration:(NSTimeInterval)chordDuration { + _chordDuration = chordDuration; +} + ++ (NSTimeInterval)chordDuration { + return _chordDuration; +} + ++ (void)setGoodOldCapsLock:(BOOL)goodOldCapsLock { + _goodOldCapsLock = goodOldCapsLock; +} + ++ (BOOL)goodOldCapsLock { + return _goodOldCapsLock; +} + - (NSAppearance*)viewEffectiveAppearance API_AVAILABLE(macos(10.14)) { return [self.client performSelector: @selector(viewEffectiveAppearance)] ? : NSApp.effectiveAppearance; @@ -65,17 +85,13 @@ - (NSAppearance*)viewEffectiveAppearance API_AVAILABLE(macos(10.14)) { return [NSSet setWithObjects:@"client.viewEffectiveAppearance", nil]; } -/*! - @method - @abstract Receive incoming event - @discussion This method receives key events from the client application. - */ +/** - Receive incoming event: + - Return `YES` to indicate the the key input was received and dealt with. + Key processing will not continue in that case. In other words, + the system will not deliver a key-down event to the application. + - Returning `NO` means the original key down will be passed on to the client. */ - (BOOL)handleEvent:(NSEvent*)event client:(id)sender { - // Return YES to indicate the the key input was received and dealt with. - // Key processing will not continue in that case. In other words the - // system will not deliver a key down event to the application. - // Returning NO means the original key down will be passed on to the client. BOOL handled = NO; @autoreleasepool { @@ -111,6 +127,9 @@ - (BOOL)handleEvent:(NSEvent*)event rime_modifiers = ascii_mode ? rime_modifiers | kLockMask : rime_modifiers & ~kLockMask; } else { rime_modifiers ^= kLockMask; + if (@available(macOS 14.0, *)) { // avoid overlapping with capslock accessory view + NSApp.SquirrelAppDelegate.panel.IbeamRect = NSZeroRect; + } } handled = [self processKey:rime_keycode modifiers:rime_modifiers]; break; @@ -128,7 +147,7 @@ - (BOOL)handleEvent:(NSEvent*)event break; case kVK_Option: case kVK_RightOption: - if (modifiers == NSEventModifierFlagOption && NSApp.squirrelAppDelegate.panel.showToolTip) { + if (modifiers == NSEventModifierFlagOption && NSApp.SquirrelAppDelegate.panel.showToolTip) { _lastEventCount = eventCount; return YES; } @@ -148,7 +167,7 @@ - (BOOL)handleEvent:(NSEvent*)event handled = [self processKey:rime_keycode modifiers:(rime_modifiers | release_mask)]; break; } - if (NSApp.squirrelAppDelegate.panel.statusMessage != nil || handled) { + if (NSApp.SquirrelAppDelegate.panel.statusMessage != nil || handled) { [self rimeUpdate]; handled = YES; } @@ -211,12 +230,12 @@ - (BOOL)mouseDownOnCharacterIndex:(NSUInteger)index lineHeightRectangle:NULL][@"IMKBaseline"] pointValue]; NSPoint tail = [[sender attributesForCharacterIndex:markedRange.length - 1 lineHeightRectangle:NULL][@"IMKBaseline"] pointValue]; - if (point.x > tail.x || index >= markedRange.length) { + if (point.x > nexttoward(tail.x, INFINITY) || index >= markedRange.length) { if (_inlineCandidate && !_inlinePreedit) { return NO; } [self performAction:kPROCESS onIndex:kEndKey]; - } else if (point.x < head.x || index <= 0) { + } else if (point.x < nexttoward(head.x, -INFINITY) || index <= 0) { [self performAction:kPROCESS onIndex:kHomeKey]; } else { [self moveCursor:_inlineCaretPos @@ -242,7 +261,7 @@ static void set_CapsLock_LED_state(bool target_state) { - (BOOL)processKey:(int)rime_keycode modifiers:(int)rime_modifiers __attribute__((objc_direct)) { - SquirrelPanel* panel = NSApp.squirrelAppDelegate.panel; + SquirrelPanel* panel = NSApp.SquirrelAppDelegate.panel; // with linear candidate list, arrow keys may behave differently. bool is_linear = panel.linear; if (is_linear != rime_get_api_stdbool()->get_option(_session, "_linear")) { @@ -316,7 +335,7 @@ - (void)moveCursor:(NSUInteger)cursorPosition toPosition:(NSUInteger)targetPosition inlinePreedit:(BOOL)inlinePreedit inlineCandidate:(BOOL)inlineCandidate __attribute__((objc_direct)); { - BOOL vertical = NSApp.squirrelAppDelegate.panel.vertical; + BOOL vertical = NSApp.SquirrelAppDelegate.panel.vertical; @autoreleasepool { NSString* composition = !inlinePreedit && !inlineCandidate ? _composedString : _inlineString.string; @@ -403,18 +422,18 @@ - (void)performAction:(SquirrelAction)action - (void)onChordTimer:(NSTimer*)timer { // chord release triggered by timer - int processed_keys = 0; + int processedKeyCount = 0; if (_chordKeyCount > 0 && _session != 0) { // simulate key-ups for (int i = 0; i < _chordKeyCount; ++i) { if (rime_get_api_stdbool()->process_key(_session, _chordKeyCodes[i], - (_chordModifiers[i] | kReleaseMask))) { - ++processed_keys; + _chordModifiers[i] | kReleaseMask)) { + ++processedKeyCount; } } } [self clearChord]; - if (processed_keys > 0) { + if (processedKeyCount > 0) { [self rimeUpdate]; } } @@ -471,11 +490,18 @@ - (NSUInteger)recognizedEvents:(id)sender { } } +- (void)onDelayedStatus:(NSTimer*)timer { + [self rimeUpdate]; + if (@available(macOS 14.0, *)) { + NSApp.SquirrelAppDelegate.panel.IbeamRect = NSZeroRect; + } + _statusTimer = nil; +} + - (void)showInitialStatus __attribute__((objc_direct)) { RIME_STRUCT(RimeStatus_stdbool, status); if (_session != 0 && rime_get_api_stdbool()->get_status(_session, &status)) { - _schemaId = @(status.schema_id); - NSString* schemaName = status.schema_name ? @(status.schema_name) : @(status.schema_id); + NSString* schemaName = @(status.schema_name ? : status.schema_id); NSMutableArray* options = [NSMutableArray.alloc initWithCapacity:3]; if (NSString* asciiMode = getOptionLabel(_session, "ascii_mode", status.is_ascii_mode)) { [options addObject:asciiMode]; @@ -488,24 +514,28 @@ - (void)showInitialStatus __attribute__((objc_direct)) { } rime_get_api_stdbool()->free_status(&status); NSString* foldedOptions = options.count == 0 ? schemaName : - [NSString stringWithFormat:@"%@|%@", schemaName, [options componentsJoinedByString:@" "]]; - [NSApp.squirrelAppDelegate.panel updateStatusLong:foldedOptions statusShort:schemaName]; + [NSString stringWithFormat:@"%@ │ %@", schemaName, [options componentsJoinedByString:@" "]]; + [NSApp.SquirrelAppDelegate.panel updateStatusLong:foldedOptions statusShort:schemaName]; if (@available(macOS 14.0, *)) { - _lastModifiers |= NSEventModifierFlagHelp; + _showingInitialStatus = YES; } - [self rimeUpdate]; + _statusTimer = [NSTimer scheduledTimerWithTimeInterval:kStatusDelay + target:self + selector:@selector(onDelayedStatus:) + userInfo:nil + repeats:NO]; } } - (void)activateServer:(id)sender { // NSLog(@"activateServer:"); [SquirrelInputController setCurrentController:self]; - [self addObserver:NSApp.squirrelAppDelegate.panel + [self addObserver:NSApp.SquirrelAppDelegate.panel forKeyPath:@"viewEffectiveAppearance" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionInitial context:nil]; - SquirrelConfig* baseConfig = [SquirrelConfig.alloc initWithArg:@"squirrel"]; + SquirrelConfig* baseConfig = [SquirrelConfig.alloc initWithType:@".base"]; NSString* keyboardLayout = [baseConfig stringForOption:@"keyboard_layout"]; if ([@"last" caseInsensitiveCompare:keyboardLayout] == NSOrderedSame || [keyboardLayout isEqualToString:@""]) { @@ -520,22 +550,22 @@ - (void)activateServer:(id)sender { } [baseConfig close]; - SquirrelConfig* defaultConfig = [SquirrelConfig.alloc initWithArg:@"default"]; + SquirrelConfig* defaultConfig = [SquirrelConfig.alloc initWithType:@".default"]; if ([defaultConfig hasSection:@"ascii_composer"]) { _goodOldCapsLock = [defaultConfig boolValueForOption: @"ascii_composer/good_old_caps_lock"]; } [defaultConfig close]; - if (!NSApp.squirrelAppDelegate.isCurrentInputMethod) { - NSApp.squirrelAppDelegate.isCurrentInputMethod = YES; - if (NSApp.squirrelAppDelegate.showNotifications == kShowNotificationsAlways) { + if (!NSApp.SquirrelAppDelegate.isCurrentInputMethod) { + NSApp.SquirrelAppDelegate.isCurrentInputMethod = YES; + if (NSApp.SquirrelAppDelegate.showNotifications == kShowNotificationsAlways) { [self showInitialStatus]; } } _lastModifiers = 0; _lastEventCount = 0; - NSApp.squirrelAppDelegate.panel.IbeamRect = NSZeroRect; + NSApp.SquirrelAppDelegate.panel.IbeamRect = NSZeroRect; [super activateServer:sender]; } @@ -557,7 +587,8 @@ - (void)deactivateServer:(id)sender { // NSLog(@"deactivateServer:"); _asciiMode = (int)rime_get_api_stdbool()->get_option(_session, "ascii_mode"); [self commitComposition:sender]; - [self removeObserver:NSApp.squirrelAppDelegate.panel + [self destroySession]; + [self removeObserver:NSApp.SquirrelAppDelegate.panel forKeyPath:@"viewEffectiveAppearance"]; [super deactivateServer:sender]; } @@ -583,7 +614,7 @@ - (void)commitComposition:(id)sender { } - (void)clearBuffer __attribute__((objc_direct)) { - NSApp.squirrelAppDelegate.panel.IbeamRect = NSZeroRect; + NSApp.SquirrelAppDelegate.panel.IbeamRect = NSZeroRect; _inlineString = nil; _originalString = nil; _composedString = nil; @@ -592,37 +623,37 @@ - (void)clearBuffer __attribute__((objc_direct)) { // Though we specify AppDelegate as the menu action receiver, Inputcontroller // is the one that actually receives the event. Here we relay these messages. - (void)showSwitcher:(id)sender { - [NSApp.squirrelAppDelegate showSwitcher:@(_session)]; + [NSApp.SquirrelAppDelegate showSwitcher:@(_session)]; [self rimeUpdate]; } - (void)deploy:(id)sender { - [NSApp.squirrelAppDelegate deploy:sender]; + [NSApp.SquirrelAppDelegate deploy:sender]; } - (void)syncUserData:(id)sender { - [NSApp.squirrelAppDelegate syncUserData:sender]; + [NSApp.SquirrelAppDelegate syncUserData:sender]; } - (void)configure:(id)sender { - [NSApp.squirrelAppDelegate configure:sender]; + [NSApp.SquirrelAppDelegate configure:sender]; } - (void)checkForUpdates:(id)sender { - [NSApp.squirrelAppDelegate.updater performSelector:@selector(checkForUpdates:) + [NSApp.SquirrelAppDelegate.updater performSelector:@selector(checkForUpdates:) withObject:sender]; } - (void)openWiki:(id)sender { - [NSApp.squirrelAppDelegate openWiki:sender]; + [NSApp.SquirrelAppDelegate openWiki:sender]; } - (void)openLogFolder:(id)sender { - [NSApp.squirrelAppDelegate openLogFolder:sender]; + [NSApp.SquirrelAppDelegate openLogFolder:sender]; } - (NSMenu*)menu { - return NSApp.squirrelAppDelegate.menu; + return NSApp.SquirrelAppDelegate.menu; } - (NSAttributedString*)originalString:(id)sender { @@ -639,29 +670,23 @@ - (NSArray*)candidates:(id)sender { } - (void)hidePalettes { - [NSApp.squirrelAppDelegate.panel hide]; + [NSApp.SquirrelAppDelegate.panel hide]; [super hidePalettes]; } -- (void)dealloc { - // NSLog(@"dealloc"); - [self destroySession]; - [self clearBuffer]; -} - - (NSRange)selectionRange { return NSMakeRange(_inlineCaretPos, 0); } - (NSRange)replacementRange { - return NSMakeRange(NSNotFound, NSNotFound); + return NSMakeRange(NSNotFound, 0); } - (void)commitString:(id)string { // NSLog(@"commitString:"); if (string != nil) { [self.client insertText:string - replacementRange:NSMakeRange(NSNotFound, NSNotFound)]; + replacementRange:NSMakeRange(NSNotFound, 0)]; } [self clearBuffer]; } @@ -675,9 +700,9 @@ - (void)cancelComposition { } - (void)updateComposition { - [self.client setMarkedText:_inlineString + [self.client setMarkedText:_inlineString ? : @"" selectionRange:NSMakeRange(_inlineCaretPos, 0) - replacementRange:NSMakeRange(NSNotFound, NSNotFound)]; + replacementRange:NSMakeRange(NSNotFound, 0)]; } - (void)showPlaceholder:(NSString*)placeholder __attribute__((objc_direct)) { @@ -708,87 +733,92 @@ - (void)showInlineString:(NSString*)inlineString if (selRange.location > 0) { [_inlineString addAttributes:[self markForStyle:kTSMHiliteConvertedText atRange:NSMakeRange(0, selRange.location)] - range:NSMakeRange(0, selRange.location)]; + range:NSMakeRange(0, selRange.location)]; } if (selRange.location < caretPos) { [_inlineString addAttributes:[self markForStyle:kTSMHiliteSelectedRawText atRange:selRange] - range:selRange]; + range:selRange]; } [self updateComposition]; } -- (CGRect)getIbeamRect __attribute__((objc_direct)) { - NSRect IbeamRect = NSZeroRect; - [self.client attributesForCharacterIndex:0 - lineHeightRectangle:&IbeamRect]; - if (NSEqualRects(IbeamRect, NSZeroRect) && _inlineString.length == 0) { - if (self.client.selectedRange.length == 0) { - // activate inline session, in e.g. table cells, by fake inputs - [self.client setMarkedText:@" " - selectionRange:NSMakeRange(0, 0) - replacementRange:NSMakeRange(NSNotFound, NSNotFound)]; +NS_INLINE NSRect NSMakeRect(NSPoint origin, NSSize size) { + NSRect r; + r.origin = origin; + r.size = size; + return r; +} + +static inline BOOL reset(BOOL* var) { + if (*var) { + *var = NO; + return YES; + } + return NO; +} + +- (void)showPanelWithPreedit:(NSString*)preedit + selRange:(NSRange)selRange + caretPos:(NSUInteger)caretPos + candidateIndices:(NSRange)candidateIndices + hilitedCandidate:(NSUInteger)hilitedCandidate + pageNum:(NSUInteger)pageNum + finalPage:(BOOL)finalPage + didCompose:(BOOL)didCompose __attribute__((objc_direct)) { + // NSLog(@"showPanelWithPreedit:...:"); + SquirrelPanel* panel = NSApp.SquirrelAppDelegate.panel; + if (NSEqualRects(panel.IbeamRect, NSZeroRect)) { + NSRect IbeamRect = NSZeroRect; + NSRange selectedRange = self.client.selectedRange; + if (_inlinePreedit || _inlineCandidate || _inlinePlaceholder || selectedRange.length > 0) { [self.client attributesForCharacterIndex:0 lineHeightRectangle:&IbeamRect]; - [self.client setMarkedText:@"" - selectionRange:NSMakeRange(0, 0) - replacementRange:NSMakeRange(NSNotFound, NSNotFound)]; - } else { - [self.client attributesForCharacterIndex:self.client.selectedRange.location - lineHeightRectangle:&IbeamRect]; } - } - if (NSIsEmptyRect(IbeamRect)) { - return IbeamRect; - } - NSWidth(IbeamRect) > NSHeight(IbeamRect) ? IbeamRect.origin.x += _inlineOffset - : IbeamRect.origin.y += _inlineOffset; - if (@available(macOS 14.0, *)) { // avoid overlapping with cursor effects view - if ((_goodOldCapsLock && (_lastModifiers & NSEventModifierFlagCapsLock) != 0) || - (_lastModifiers & NSEventModifierFlagHelp) != 0) { - _lastModifiers &= ~NSEventModifierFlagHelp; - NSRect screenRect = NSScreen.mainScreen.frame; - if (NSIntersectsRect(IbeamRect, screenRect)) { - screenRect = NSScreen.mainScreen.visibleFrame; - if (NSWidth(IbeamRect) > NSHeight(IbeamRect)) { - NSRect capslockAccessory = NSMakeRect(NSMinX(IbeamRect) - 30, NSMinY(IbeamRect), - 27, NSHeight(IbeamRect)); - if (NSMinX(capslockAccessory) < NSMinX(screenRect)) { + if (NSIsEmptyRect(IbeamRect)) { + if (selectedRange.length == 0) { + // activate inline session, in e.g. table cells, by fake inputs + [self showPlaceholder:@" "]; + [self.client attributesForCharacterIndex:0 + lineHeightRectangle:&IbeamRect]; + [self showPlaceholder:@""]; + } else { + IbeamRect = [self.client firstRectForCharacterRange:NSMakeRange(selectedRange.location, 1) + actualRange:NULL]; + } + } + BOOL sweepVertical = NSWidth(IbeamRect) > NSHeight(IbeamRect); + if (isnormal(_inlineOffset)) { + IbeamRect = NSOffsetRect(IbeamRect, sweepVertical ? _inlineOffset : 0.0, sweepVertical ? 0.0 : _inlineOffset); + } + if (@available(macOS 14.0, *)) { + // avoid overlapping with cursor effects view + if ((_goodOldCapsLock && (_lastModifiers & NSEventModifierFlagCapsLock) != 0) || + (reset(&_showingInitialStatus) && preedit.length == 0 && candidateIndices.length == 0)) { + NSRect screenRect = NSScreen.mainScreen.visibleFrame; + NSRect capslockAccessory = sweepVertical ? NSMakeRect(NSMinX(IbeamRect) - 30, NSMinY(IbeamRect), 27, NSHeight(IbeamRect)) + : NSMakeRect(NSMinX(IbeamRect), NSMinY(IbeamRect) - 26, NSWidth(IbeamRect), 23); + if (sweepVertical) { + if (NSMinX(capslockAccessory) < nexttoward(NSMinX(screenRect), INFINITY)) { capslockAccessory.origin.x = NSMinX(screenRect); } - if (NSMaxX(capslockAccessory) > NSMaxX(screenRect)) { + if (NSMaxX(capslockAccessory) > nexttoward(NSMaxX(screenRect), -INFINITY)) { capslockAccessory.origin.x = NSMaxX(screenRect) - NSWidth(capslockAccessory); } - IbeamRect = NSUnionRect(IbeamRect, capslockAccessory); } else { - NSRect capslockAccessory = NSMakeRect(NSMinX(IbeamRect), NSMinY(IbeamRect) - 26, - NSWidth(IbeamRect), 23); - if (NSMinY(capslockAccessory) < NSMinY(screenRect)) { + if (NSMinY(capslockAccessory) < nexttoward(NSMinY(screenRect), INFINITY)) { capslockAccessory.origin.y = NSMaxY(screenRect) + 3; } - if (NSMaxY(capslockAccessory) > NSMaxY(screenRect)) { + if (NSMaxY(capslockAccessory) > nexttoward(NSMaxY(screenRect), -INFINITY)) { capslockAccessory.origin.y = NSMaxY(screenRect) - NSHeight(capslockAccessory); } - IbeamRect = NSUnionRect(IbeamRect, capslockAccessory); } + IbeamRect = NSUnionRect(IbeamRect, capslockAccessory); } } + panel.IbeamRect = IbeamRect; } - return IbeamRect; -} - -- (void)showPanelWithPreedit:(NSString*)preedit - selRange:(NSRange)selRange - caretPos:(NSUInteger)caretPos - candidateIndices:(NSRange)candidateIndices - hilitedCandidate:(NSUInteger)hilitedCandidate - pageNum:(NSUInteger)pageNum - finalPage:(BOOL)finalPage - didCompose:(BOOL)didCompose __attribute__((objc_direct)) { - // NSLog(@"showPanelWithPreedit:...:"); - SquirrelPanel* panel = NSApp.squirrelAppDelegate.panel; - panel.IbeamRect = [self getIbeamRect]; - if (NSIsEmptyRect(panel.IbeamRect) && panel.statusMessage.length > 0) { + if (NSIsEmptyRect(panel.IbeamRect) && panel.statusMessage != nil) { [panel updateStatusLong:nil statusShort:nil]; } else { [panel showPreedit:preedit @@ -808,17 +838,22 @@ - (void)createSession __attribute__((objc_direct)) { NSString* app = self.client.bundleIdentifier; // NSLog(@"createSession: %@", app); _session = rime_get_api_stdbool()->create_session(); - _schemaId = nil; + SquirrelPanel* panel = NSApp.SquirrelAppDelegate.panel; + _schemaId = panel.optionSwitcher.schemaId.copy; if (_session != 0) { - SquirrelConfig* config = [SquirrelConfig.alloc initWithArg:@"squirrel"]; + SquirrelConfig* config = [SquirrelConfig.alloc initWithType:@".base"]; _appOptions = [config appOptionsForApp:app]; - CGFloat chordDuration = [[config nullableDoubleForOption:@"chord_duration"] doubleValue]; - _chordDuration = chordDuration > 0 ? chordDuration : 0.1; [config close]; - _panellessCommitFix = [_appOptions boolValueForKey:@"panelless_commit_fix"]; - _inlinePlaceholder = [_appOptions boolValueForKey:@"inline_placeholder"]; - _inlineOffset = [_appOptions intValueForKey:@"inline_offset"]; - if ([app isEqualToString:_currentApp] && _asciiMode >= 0) { + _inlinePreedit = (panel.inlinePreedit && ![_appOptions boolValueForOption:@"no_inline"]) || + [_appOptions boolValueForOption:@"inline"]; + _inlineCandidate = panel.inlineCandidate && ![_appOptions boolValueForOption:@"no_inline"]; + rime_get_api_stdbool()->set_option(_session, "soft_cursor", !_inlinePreedit); + _panellessCommitFix = [_appOptions boolValueForOption:@"panelless_commit_fix"]; + _inlinePlaceholder = [_appOptions boolValueForOption:@"inline_placeholder"]; + _inlineOffset = [_appOptions intValueForOption:@"inline_offset"]; + // restore ascii mode if client app has not changed + if ([app isEqualToString:_currentApp] && _asciiMode >= 0 && + _asciiMode != rime_get_api_stdbool()->get_option(_session, "ascii_mode")) { rime_get_api_stdbool()->set_option(_session, "ascii_mode", _asciiMode); } _currentApp = app; @@ -829,6 +864,9 @@ - (void)createSession __attribute__((objc_direct)) { - (void)destroySession __attribute__((objc_direct)) { // NSLog(@"destroySession:"); + if (_statusTimer.valid) { + [_statusTimer invalidate]; + } if (_session != 0) { rime_get_api_stdbool()->destroy_session(_session); _session = 0; @@ -860,38 +898,30 @@ static inline NSUInteger UnicharCount(const char* cString, int length) { encoding:NSUTF8StringEncoding].length; } -static inline NSUInteger fmin(NSUInteger x, NSUInteger y) { - return x < y ? x : y; -} - -static inline NSUInteger fmax(NSUInteger x, NSUInteger y) { - return x < y ? y : x; -} - - (void)rimeUpdate __attribute__((objc_direct)) { // NSLog(@"rimeUpdate"); BOOL didCommit = self.rimeConsumeCommittedText; BOOL didCompose = didCommit; - SquirrelPanel* panel = NSApp.squirrelAppDelegate.panel; + SquirrelPanel* panel = NSApp.SquirrelAppDelegate.panel; RIME_STRUCT(RimeStatus_stdbool, status); if (rime_get_api_stdbool()->get_status(_session, &status)) { // enable schema specific ui style - if (_schemaId == nil || strcmp(_schemaId.UTF8String, status.schema_id) != 0) { + if (strcmp(_schemaId.UTF8String, status.schema_id) != 0) { _schemaId = @(status.schema_id); _showingSwitcherMenu = rime_get_api_stdbool()->get_option(_session, "dumb"); if (!_showingSwitcherMenu) { - [NSApp.squirrelAppDelegate loadSchemaSpecificLabels:_schemaId]; - [NSApp.squirrelAppDelegate loadSchemaSpecificSettings:_schemaId + [NSApp.SquirrelAppDelegate loadSchemaSpecificLabels:_schemaId]; + [NSApp.SquirrelAppDelegate loadSchemaSpecificSettings:_schemaId withRimeSession:_session]; // inline preedit - _inlinePreedit = (panel.inlinePreedit && ![_appOptions boolValueForKey:@"no_inline"]) || - [_appOptions boolValueForKey:@"inline"]; - _inlineCandidate = panel.inlineCandidate && ![_appOptions boolValueForKey:@"no_inline"]; + _inlinePreedit = (panel.inlinePreedit && ![_appOptions boolValueForOption:@"no_inline"]) || + [_appOptions boolValueForOption:@"inline"]; + _inlineCandidate = panel.inlineCandidate && ![_appOptions boolValueForOption:@"no_inline"]; // if not inline, embed soft cursor in preedit string rime_get_api_stdbool()->set_option(_session, "soft_cursor", !_inlinePreedit); } else { - [NSApp.squirrelAppDelegate loadSchemaSpecificLabels:@""]; + [NSApp.SquirrelAppDelegate loadSchemaSpecificLabels:@""]; } didCompose = YES; } @@ -900,7 +930,7 @@ - (void)rimeUpdate __attribute__((objc_direct)) { RIME_STRUCT(RimeContext_stdbool, ctx); if (rime_get_api_stdbool()->get_context(_session, &ctx)) { - BOOL showingStatus = panel.statusMessage.length > 0; + BOOL showingStatus = panel.statusMessage != nil; // update preedit text const char* preedit = ctx.composition.preedit; NSString* preeditText = @(preedit ? : ""); @@ -975,9 +1005,7 @@ - (void)rimeUpdate __attribute__((objc_direct)) { numCandidates + extraCandidates); _currentIndex = hilitedCandidate + _candidateIndices.location; - if (showingStatus) { - [self clearBuffer]; - } else if (_showingSwitcherMenu) { + if (_showingSwitcherMenu) { if (_inlinePlaceholder) { [self updateComposition]; } diff --git a/SquirrelPanel.hh b/SquirrelPanel.hh index 5dfff5de5..62d6b2d0f 100644 --- a/SquirrelPanel.hh +++ b/SquirrelPanel.hh @@ -5,27 +5,27 @@ @interface SquirrelPanel : NSPanel -// Show preedit text inline. +/// Show preedit text inline. @property(nonatomic, readonly, direct) BOOL inlinePreedit; -// Show primary candidate inline +/// Show primary candidate inline. @property(nonatomic, readonly, direct) BOOL inlineCandidate; -// Vertical text orientation, as opposed to horizontal text orientation. +/// Vertical text orientation, as opposed to horizontal text orientation. @property(nonatomic, readonly, direct) BOOL vertical; -// Linear candidate list layout, as opposed to stacked candidate list layout. +/// Linear candidate list layout, as opposed to stacked candidate list layout. @property(nonatomic, readonly, direct) BOOL linear; -// Tabular candidate list layout, initializes as tab-aligned linear layout, -// expandable to stack 5 (3 for vertical) pages/sections of candidates +/// Tabular candidate list layout, initializes as tab-aligned linear layout, +/// expandable to stack 5 (3 for vertical) pages/sections of candidates. @property(nonatomic, readonly, direct) BOOL tabular; @property(nonatomic, readonly, direct) BOOL locked; @property(nonatomic, readonly, direct) BOOL firstLine; @property(nonatomic, direct) BOOL expanded; @property(nonatomic, direct) NSUInteger sectionNum; -// position of the text input I-beam cursor on screen. +/// Position of the text input I-beam cursor on screen. @property(nonatomic, direct) NSRect IbeamRect; @property(nonatomic, readonly, strong, nullable) NSScreen* screen; -// Status message before pop-up is displayed; nil before normal panel is displayed +/// Status message before pop-up is displayed; nil before normal panel is displayed. @property(nonatomic, readonly, strong, nullable, direct) NSString* statusMessage; -// Store switch options that change style (color theme) settings +/// Stores switch options that change style (color theme) settings. @property(nonatomic, strong, nonnull, direct) SquirrelOptionSwitcher* optionSwitcher; // query @@ -51,3 +51,10 @@ - (void)updateScriptVariant __attribute__((objc_direct)); @end // SquirrelPanel + +extern inline NSUInteger fmin(NSUInteger x, NSUInteger y) { + return x < y ? x : y; +} +extern inline NSUInteger fmax(NSUInteger x, NSUInteger y) { + return x < y ? y : x; +} diff --git a/SquirrelPanel.mm b/SquirrelPanel.mm index be8ea4de9..e8dc249ee 100644 --- a/SquirrelPanel.mm +++ b/SquirrelPanel.mm @@ -4,9 +4,9 @@ #import "SquirrelConfig.hh" #import -static NSString* const kDefaultCandidateFormat = @"%c. %@"; -static NSString* const kTipSpecifier = @"%s"; +static NSString* const kDefaultCandidateFormat = @"%c. %@ %s"; static NSString* const kFullWidthSpace = @" "; +static NSString* const kControlCharacterSizeAttributeName = @"ControlCharacterSize"; static const NSTimeInterval kShowStatusDuration = 2.0; static const CGFloat kBlendedBackgroundColorFraction = 0.2; static const CGFloat kDefaultFontSize = 24; @@ -25,9 +25,8 @@ static void rectVertices(NSRect rect, NSPointArray vertices) { } typedef struct SquirrelTextPolygon { - NSRect head; - NSRect body; - NSRect tail; + NSRect head, body, tail; + inline NSPoint origin() { return (NSIsEmptyRect(head) ? body : head).origin; } @@ -39,17 +38,15 @@ inline CGFloat maxY() { } inline BOOL separated() { return !NSIsEmptyRect(head) && NSIsEmptyRect(body) && - !NSIsEmptyRect(tail) && NSMaxX(tail) < NSMinX(head) - 0.1; + !NSIsEmptyRect(tail) && NSMaxX(tail) < nexttoward(NSMinX(head), -INFINITY); } inline BOOL mouseInPolygon(NSPoint point, BOOL flipped) { return (!NSIsEmptyRect(body) && NSMouseInRect(point, body, flipped)) || - (!NSIsEmptyRect(head) && NSMouseInRect(point, head, flipped)) || - (!NSIsEmptyRect(tail) && NSMouseInRect(point, tail, flipped)); + (!NSIsEmptyRect(head) && NSMouseInRect(point, head, flipped)) || + (!NSIsEmptyRect(tail) && NSMouseInRect(point, tail, flipped)); } void getVertices(NSPointArray vertices) { - switch ((NSIsEmptyRect(head) << 2) | - (NSIsEmptyRect(body) << 1) | - (NSIsEmptyRect(tail) << 0)) { + switch ((NSIsEmptyRect(head) << 2) | (NSIsEmptyRect(body) << 1) | (NSIsEmptyRect(tail) << 0)) { case 0b011: rectVertices(head, vertices); break; @@ -120,6 +117,27 @@ void getVertices(NSPointArray vertices) { } SquirrelTextPolygon; +__attribute__((objc_direct_members)) +@interface NSCharacterSet (FullWidthCharacterSets) + +@property(nonatomic, readonly, copy, nonnull, class) NSCharacterSet *fullWidthDigitCharacterSet; +@property(nonatomic, readonly, copy, nonnull, class) NSCharacterSet *fullWidthLatinCapitalCharacterSet; + +@end + +@implementation NSCharacterSet (FullWidthCharacterSets) + ++ (NSCharacterSet *)fullWidthDigitCharacterSet { + return [NSCharacterSet characterSetWithRange:NSMakeRange(0xFF10, 10)]; +} + ++ (NSCharacterSet *)fullWidthLatinCapitalCharacterSet { + return [NSCharacterSet characterSetWithRange:NSMakeRange(0xFF21, 26)]; +} + +@end // NSCharacterSet (FullWidthCharacterSets) + + __attribute__((objc_direct_members)) @interface NSAffineTransform (NSCGAffinTransformConversion) @@ -150,8 +168,6 @@ - (CGPathRef)quartzPath { if (@available(macOS 14.0, *)) { return self.CGPath; } - // Need to begin a path here. - CGPathRef immutablePath = NULL; // Then draw the path elements. if (NSInteger numElements = self.elementCount; numElements > 0) { CGMutablePathRef path = CGPathCreateMutable(); @@ -165,92 +181,56 @@ - (CGPathRef)quartzPath { CGPathAddLineToPoint(path, NULL, points[0].x, points[0].y); break; case NSBezierPathElementCurveTo: - CGPathAddCurveToPoint(path, NULL, points[0].x, points[0].y, - points[1].x, points[1].y, points[2].x, points[2].y); + CGPathAddCurveToPoint(path, NULL, points[0].x, points[0].y, points[1].x, points[1].y, points[2].x, points[2].y); break; case NSBezierPathElementQuadraticCurveTo: - CGPathAddQuadCurveToPoint(path, NULL, points[0].x, points[0].y, - points[1].x, points[1].y); + CGPathAddQuadCurveToPoint(path, NULL, points[0].x, points[0].y, points[1].x, points[1].y); break; case NSBezierPathElementClosePath: CGPathCloseSubpath(path); break; } } - immutablePath = (CGPathRef)CFAutorelease(CGPathCreateCopy(path)); + CGPathRef immutablePath = CGPathCreateCopy(path); CGPathRelease(path); + return (CGPathRef)CFAutorelease(immutablePath); } - return immutablePath; + return NULL; } // Bezier squircle curves, whose rounded corners are smooth (continously differentiable) + (NSBezierPath*)squirclePathWithVertices:(NSPointArray)vertices - count:(NSUInteger)numVert - cornerRadius:(CGFloat)radius { - if (vertices == NULL || numVert < 4) { + count:(NSUInteger)numVertex + cornerRadius:(CGFloat)cornerRadius { + if (vertices == NULL || (numVertex != 4 && numVertex != 6 && numVertex != 8)) { return nil; } NSBezierPath* path = NSBezierPath.bezierPath; // Always start from the topleft origin going along y axis - NSPoint point = vertices[numVert - 1]; - NSPoint nextPoint = vertices[0]; - CGVector nextDiff = CGVectorMake(nextPoint.x - point.x, nextPoint.y - point.y); + NSPoint vertex = vertices[numVertex - 1]; + NSPoint nextVertex = vertices[0]; + CGVector nextDiff = CGVectorMake(nextVertex.x - vertex.x, nextVertex.y - vertex.y); CGVector lastDiff; - CGFloat arcRadius = fmin(radius, fabs(nextDiff.dx) * 0.3); + CGFloat arcRadius; NSPoint startPoint; - NSPoint relayPointA, relayPointB; - NSPoint controlPointA1, controlPointA2, controlPointB1, controlPointB2; - NSPoint controlPoint1, controlPoint2; - NSPoint endPoint = NSMakePoint(point.x + copysign(arcRadius * 1.528664, nextDiff.dx), nextPoint.y); + NSPoint endPoint = NSMakePoint(vertex.x + nextDiff.dx * 0.5, vertex.y); [path moveToPoint:endPoint]; - for (NSUInteger i = 0; i < numVert; ++i) { + for (NSUInteger i = 0; i < numVertex; ++i) { lastDiff = nextDiff; - point = nextPoint; - nextPoint = vertices[(i + 1) % numVert]; - nextDiff = CGVectorMake(nextPoint.x - point.x, nextPoint.y - point.y); + vertex = nextVertex; + nextVertex = vertices[(i + 1) % numVertex]; + nextDiff = CGVectorMake(nextVertex.x - vertex.x, nextVertex.y - vertex.y); if (fabs(nextDiff.dx) >= fabs(nextDiff.dy)) { - arcRadius = fmin(radius, fmin(fabs(nextDiff.dx), fabs(lastDiff.dy)) * 0.3); - startPoint = NSMakePoint(point.x, fma(copysign(arcRadius, lastDiff.dy), -1.528664, nextPoint.y)); - relayPointA = NSMakePoint(fma(copysign(arcRadius, nextDiff.dx), 0.074911, point.x), - fma(copysign(arcRadius, lastDiff.dy), -0.631494, nextPoint.y)); - controlPointA1 = NSMakePoint(point.x, fma(copysign(arcRadius, lastDiff.dy), -1.088493, nextPoint.y)); - controlPointA2 = NSMakePoint(point.x, fma(copysign(arcRadius, lastDiff.dy), -0.868407, nextPoint.y)); - relayPointB = NSMakePoint(fma(copysign(arcRadius, nextDiff.dx), 0.631494, point.x), - fma(copysign(arcRadius, lastDiff.dy), -0.074911, nextPoint.y)); - controlPointB1 = NSMakePoint(fma(copysign(arcRadius, nextDiff.dx), 0.372824, point.x), - fma(copysign(arcRadius, lastDiff.dy), -0.169060, nextPoint.y)); - controlPointB2 = NSMakePoint(fma(copysign(arcRadius, nextDiff.dx), 0.169060, point.x), - fma(copysign(arcRadius, lastDiff.dy), -0.372824, nextPoint.y)); - endPoint = NSMakePoint(fma(copysign(arcRadius, nextDiff.dx), 1.528664, point.x), nextPoint.y); - controlPoint1 = NSMakePoint(fma(copysign(arcRadius, nextDiff.dx), 0.868407, point.x), nextPoint.y); - controlPoint2 = NSMakePoint(fma(copysign(arcRadius, nextDiff.dx), 1.088493, point.x), nextPoint.y); + arcRadius = floor(fmin(fabs(cornerRadius), fmin(fabs(nextDiff.dx), fabs(lastDiff.dy)) * 0.5)); + startPoint = NSMakePoint(vertex.x, vertex.y - copysign(arcRadius, lastDiff.dy)); + endPoint = NSMakePoint(vertex.x + copysign(arcRadius, nextDiff.dx), vertex.y); } else { - arcRadius = fmin(radius, fmin(fabs(nextDiff.dy), fabs(lastDiff.dx)) * 0.3); - startPoint = NSMakePoint(fma(copysign(arcRadius, lastDiff.dx), -1.528664, nextPoint.x), point.y); - relayPointA = NSMakePoint(fma(copysign(arcRadius, lastDiff.dx), -0.631494, nextPoint.x), - fma(copysign(arcRadius, nextDiff.dy), 0.074911, point.y)); - controlPointA1 = NSMakePoint(fma(copysign(arcRadius, lastDiff.dx), -1.088493, nextPoint.x), point.y); - controlPointA2 = NSMakePoint(fma(copysign(arcRadius, lastDiff.dx), -0.868407, nextPoint.x), point.y); - relayPointB = NSMakePoint(fma(copysign(arcRadius, lastDiff.dx), -0.074911, nextPoint.x), - fma(copysign(arcRadius, nextDiff.dy), 0.631494, point.y)); - controlPointB1 = NSMakePoint(fma(copysign(arcRadius, lastDiff.dx), -0.169060, nextPoint.x), - fma(copysign(arcRadius, nextDiff.dy), 0.372824, point.y)); - controlPointB2 = NSMakePoint(fma(copysign(arcRadius, lastDiff.dx), -0.372824, nextPoint.x), - fma(copysign(arcRadius, nextDiff.dy), 0.169060, point.y)); - endPoint = NSMakePoint(nextPoint.x, fma(copysign(arcRadius, nextDiff.dy), 1.528664, point.y)); - controlPoint1 = NSMakePoint(nextPoint.x, fma(copysign(arcRadius, nextDiff.dy), 0.868407, point.y)); - controlPoint2 = NSMakePoint(nextPoint.x, fma(copysign(arcRadius, nextDiff.dy), 1.088493, point.y)); + arcRadius = floor(fmin(fabs(cornerRadius), fmin(fabs(nextDiff.dy), fabs(lastDiff.dx)) * 0.5)); + startPoint = NSMakePoint(vertex.x - copysign(arcRadius, lastDiff.dx), vertex.y); + endPoint = NSMakePoint(vertex.x, vertex.y + copysign(arcRadius, nextDiff.dy)); } [path lineToPoint:startPoint]; - [path curveToPoint:relayPointA - controlPoint1:controlPointA1 - controlPoint2:controlPointA2]; - [path curveToPoint:relayPointB - controlPoint1:controlPointB1 - controlPoint2:controlPointB2]; - [path curveToPoint:endPoint - controlPoint1:controlPoint1 - controlPoint2:controlPoint2]; + [path curveToPoint:endPoint controlPoint1:vertex controlPoint2:vertex]; } [path closePath]; return path; @@ -260,8 +240,7 @@ + (NSBezierPath*)squirclePathForRect:(NSRect)rect cornerRadius:(CGFloat)cornerRadius { NSPoint vertices[4]; rectVertices(rect, vertices); - return [NSBezierPath squirclePathWithVertices:vertices - count:4 + return [NSBezierPath squirclePathWithVertices:vertices count:4 cornerRadius:cornerRadius]; } @@ -272,21 +251,18 @@ + (NSBezierPath*)squirclePathForPolygon:(SquirrelTextPolygon)polygon NSPoint headVertices[4], tailVertices[4]; rectVertices(polygon.head, headVertices); rectVertices(polygon.tail, tailVertices); - path = [NSBezierPath squirclePathWithVertices:headVertices - count:4 + path = [NSBezierPath squirclePathWithVertices:headVertices count:4 cornerRadius:cornerRadius]; [path appendBezierPath: - [NSBezierPath squirclePathWithVertices:tailVertices - count:4 + [NSBezierPath squirclePathWithVertices:tailVertices count:4 cornerRadius:cornerRadius]]; } else { - NSUInteger numVert = clamp((NSIsEmptyRect(polygon.head) ? 0 : 4UL) + - (NSIsEmptyRect(polygon.body) ? 0 : 2UL) + - (NSIsEmptyRect(polygon.tail) ? 0 : 4UL), 4UL, 8UL); - NSPoint vertices[numVert]; + NSUInteger numVertex = clamp((NSIsEmptyRect(polygon.head) ? 0 : 4UL) + + (NSIsEmptyRect(polygon.body) ? 0 : 2UL) + + (NSIsEmptyRect(polygon.tail) ? 0 : 4UL), 4UL, 8UL); + NSPoint vertices[numVertex]; polygon.getVertices(vertices); - path = [NSBezierPath squirclePathWithVertices:vertices - count:numVert + path = [NSBezierPath squirclePathWithVertices:vertices count:numVertex cornerRadius:cornerRadius]; } return path; @@ -295,6 +271,78 @@ + (NSBezierPath*)squirclePathForPolygon:(SquirrelTextPolygon)polygon @end // NSBezierPath (BezierPathQuartzUtilities) +__attribute__((objc_direct_members)) +@implementation NSFontDescriptor (NSFontDescriptorWithFallbackFonts) + +static NSArray*>* const features = + @[@{NSFontFeatureTypeIdentifierKey: @(kVerticalSubstitutionType), + NSFontFeatureSelectorIdentifierKey: @(kSubstituteVerticalFormsOnSelector)}, + @{NSFontFeatureTypeIdentifierKey: @(kCJKVerticalRomanPlacementType), + NSFontFeatureSelectorIdentifierKey: @(kCJKVerticalRomanCenteredSelector)}, + @{NSFontFeatureTypeIdentifierKey: @(kRubyKanaType), + NSFontFeatureSelectorIdentifierKey: @(kRubyKanaOffSelector)}]; + ++ (NSFontDescriptor*)createWithFullname:(NSString*)fullname { + if (fullname.length == 0) { + return nil; + } + NSArray* fontNames = [fullname componentsSeparatedByString:@","]; + NSMutableArray* validFontDescriptors = + [NSMutableArray.alloc initWithCapacity:fontNames.count]; + for (NSString* fontName in fontNames) { + if (NSFont* font = [NSFont fontWithName:[fontName stringByTrimmingCharactersInSet: + NSCharacterSet.whitespaceAndNewlineCharacterSet] + size:0.0]) { + /* If the font name is not valid, NSFontDescriptor will still create something for us. + However, when we draw the actual text, Squirrel will crash if there is any font descriptor + with invalid font name. */ + NSFontDescriptor* fontDescriptor = [font.fontDescriptor fontDescriptorByAddingAttributes: + @{NSFontFeatureSettingsAttribute: features}]; + NSFontDescriptor* UIFontDescriptor = [fontDescriptor fontDescriptorWithSymbolicTraits: + NSFontDescriptorTraitUIOptimized]; + [validFontDescriptors addObject:[NSFont fontWithDescriptor:UIFontDescriptor size:0.0] != nil ? + UIFontDescriptor : fontDescriptor]; + } + } + if (validFontDescriptors.count == 0) { + return nil; + } + NSFontDescriptor* initialFontDescriptor = validFontDescriptors[0]; + NSFontDescriptor* emojiFontDescriptor = + [[NSFontDescriptor fontDescriptorWithName:@"AppleColorEmoji" size:0.0] + fontDescriptorByAddingAttributes:@{NSFontFeatureSettingsAttribute: features}]; + NSArray* fallbackDescriptors = + [[validFontDescriptors subarrayWithRange:NSMakeRange(1, validFontDescriptors.count - 1)] + arrayByAddingObject:emojiFontDescriptor]; + return [initialFontDescriptor fontDescriptorByAddingAttributes: + @{NSFontCascadeListAttribute: fallbackDescriptors}]; +} + +@end // NSFontDescriptor (NSFontDescriptorWithFallbackFonts) + + +__attribute__((objc_direct_members)) +@implementation NSFont (NSFontGetLineHeight) + +- (CGFloat)lineHeightAsVerticalFont:(BOOL)vertical { + NSFont* font = vertical ? self.verticalFont : self; + CGFloat lineHeight = ceil(font.ascender - font.descender); + NSArray* fallbackList = + [font.fontDescriptor objectForKey:NSFontCascadeListAttribute]; + for (NSFontDescriptor* fallback in fallbackList) { + NSFont* fallbackFont = [NSFont fontWithDescriptor:fallback + size:font.pointSize]; + if (vertical) { + fallbackFont = fallbackFont.verticalFont; + } + lineHeight = fmax(lineHeight, ceil(fallbackFont.ascender - fallbackFont.descender)); + } + return lineHeight; +} + +@end // NSFont (NSFontGetLineHeight) + + __attribute__((objc_direct_members)) @implementation NSMutableAttributedString (NSMutableAttributedStringMarkDownFormatting) @@ -306,7 +354,6 @@ - (void)superscriptionRange:(NSRange)range { NSFont* font = [NSFont fontWithDescriptor:value.fontDescriptor size:floor(value.pointSize * 0.55)]; [self addAttributes:@{NSFontAttributeName: font, - (id)kCTBaselineClassAttributeName: (id)kCTBaselineClassIdeographicCentered, NSSuperscriptAttributeName: @1} range:subRange]; }]; @@ -320,7 +367,6 @@ - (void)subscriptionRange:(NSRange)range { NSFont* font = [NSFont fontWithDescriptor:value.fontDescriptor size:floor(value.pointSize * 0.55)]; [self addAttributes:@{NSFontAttributeName: font, - (id)kCTBaselineClassAttributeName: (id)kCTBaselineClassIdeographicCentered, NSSuperscriptAttributeName: @-1} range:subRange]; }]; @@ -335,8 +381,7 @@ - (void)formatMarkDown { options:NSRegularExpressionUseUnicodeWordBoundaries error:nil]; NSInteger __block offset = 0; - [regex enumerateMatchesInString:self.mutableString - options:0 + [regex enumerateMatchesInString:self.mutableString options:0 range:NSMakeRange(0, self.length) usingBlock:^(NSTextCheckingResult* _Nullable result, NSMatchingFlags flags, BOOL* _Nonnull stop) { @@ -372,7 +417,7 @@ - (void)formatMarkDown { } } -static NSString* const kRubyPattern = @"(\uFFF9\\s*)(\\S+?)(\\s*\uFFFA(.+?)\uFFFB)"; +static NSString* const kRubyPattern = @"(\\x{FFF9}\\s*)(\\S+?)(\\s*\\x{FFFA}(.+?)\\x{FFFB})"; - (CGFloat)annotateRubyInRange:(NSRange)range verticalOrientation:(BOOL)isVertical @@ -381,50 +426,56 @@ - (CGFloat)annotateRubyInRange:(NSRange)range NSRegularExpression* regex = [NSRegularExpression.alloc initWithPattern:kRubyPattern options:0 error:nil]; CGFloat __block rubyLineHeight; - [regex enumerateMatchesInString:self.mutableString - options:0 - range:range + [regex enumerateMatchesInString:self.mutableString options:0 range:range usingBlock:^(NSTextCheckingResult* _Nullable result, NSMatchingFlags flags, BOOL* _Nonnull stop) { NSRange baseRange = [result rangeAtIndex:2]; // no ruby annotation if the base string includes line breaks - if ([self attributedSubstringFromRange:NSMakeRange(0, NSMaxRange(baseRange))].size.width > maxLength - 0.1) { + if ([self attributedSubstringFromRange:NSMakeRange(0, NSMaxRange(baseRange))].size.width > nexttoward(maxLength, -INFINITY)) { [self deleteCharactersInRange:NSMakeRange(NSMaxRange(result.range) - 1, 1)]; [self deleteCharactersInRange:NSMakeRange([result rangeAtIndex:3].location, 1)]; [self deleteCharactersInRange:NSMakeRange([result rangeAtIndex:1].location, 1)]; } else { - /* base string must use only one font so that all fall within one glyph run and - the ruby annotation is aligned with no duplicates */ + // base string must use only one font so that all fall within one glyph run + // and the ruby annotation is aligned with no duplicates NSFont* baseFont = [self attribute:NSFontAttributeName atIndex:baseRange.location effectiveRange:NULL]; + NSString* baseString = [self.mutableString substringWithRange:baseRange]; baseFont = CFBridgingRelease(CTFontCreateForStringWithLanguage - ((CTFontRef)baseFont, (CFStringRef)self.mutableString, - CFRangeMake((CFIndex)baseRange.location, (CFIndex)baseRange.length), + ((CTFontRef)baseFont, (CFStringRef)baseString, + CFRangeMake(0, (CFIndex)baseRange.length), (CFStringRef)scriptVariant)); - CFStringRef rubyString = (__bridge CFStringRef)[self.mutableString substringWithRange: - [result rangeAtIndex:4]]; - NSFont* rubyFont = [self attribute:NSFontAttributeName atIndex:[result rangeAtIndex:4].location effectiveRange:NULL]; - rubyFont = [NSFont fontWithDescriptor:rubyFont.fontDescriptor size:ceil(rubyFont.pointSize * 0.5)]; - rubyLineHeight = isVertical ? rubyFont.verticalFont.ascender - rubyFont.verticalFont.descender + 1.0 : rubyFont.ascender - rubyFont.descender + 1.0; - CFDictionaryRef rubyAttrs = CFDictionaryCreate(NULL, (CFTypeRef[]){kCTFontAttributeName}, (CFTypeRef[]){(__bridge CTFontRef)rubyFont}, 1, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); - CTRubyAnnotationRef rubyAnnotation = CTRubyAnnotationCreateWithAttributes(kCTRubyAlignmentDistributeSpace, kCTRubyOverhangNone, kCTRubyPositionBefore, rubyString, rubyAttrs); - - [self deleteCharactersInRange:[result rangeAtIndex:3]]; + NSString* rubyString = [self.mutableString substringWithRange:[result rangeAtIndex:4]]; + NSFont* rubyFont = [NSFont fontWithDescriptor:baseFont.fontDescriptor size:baseFont.pointSize * 0.5]; + rubyLineHeight = [rubyFont lineHeightAsVerticalFont:isVertical]; + CFStringRef rubyText[kCTRubyPositionCount] = {(__bridge CFStringRef)rubyString, NULL, NULL, NULL}; + CTRubyAnnotationRef rubyAnnotation = CTRubyAnnotationCreate(kCTRubyAlignmentDistributeSpace, + kCTRubyOverhangNone, 0.5, rubyText); + [self addAttributes:@{NSFontAttributeName: baseFont, + NSVerticalGlyphFormAttributeName: @(isVertical)} + range:result.range]; + if (@available(macOS 12.0, *)) { + [self deleteCharactersInRange:[result rangeAtIndex:3]]; } else { // use U+008B as placeholder for line-forward spaces in case ruby is wider than base + NSSize baseSize = [self attributedSubstringFromRange:baseRange].size; + CGFloat rubyWidth = [self attributedSubstringFromRange:[result rangeAtIndex:4]].size.width * 0.5; + [self deleteCharactersInRange:[result rangeAtIndex:3]]; [self replaceCharactersInRange:NSMakeRange(NSMaxRange(baseRange), 0) withString:[NSString stringWithFormat:@"%C", 0x8B]]; + [self addAttribute:kControlCharacterSizeAttributeName + value:[NSValue valueWithSize:NSMakeSize(fdim(ceil(rubyWidth), floor(baseSize.width)), baseSize.height)] + range:NSMakeRange(NSMaxRange(baseRange), 1)]; } - [self addAttributes:@{(id)kCTRubyAnnotationAttributeName: CFBridgingRelease(rubyAnnotation), - NSFontAttributeName: baseFont, - NSVerticalGlyphFormAttributeName: @(isVertical)} - range:baseRange]; + [self addAttribute:(id)kCTRubyAnnotationAttributeName + value:CFBridgingRelease(rubyAnnotation) + range:baseRange]; [self deleteCharactersInRange:[result rangeAtIndex:1]]; } }]; - [self.mutableString replaceOccurrencesOfString:@"[\uFFF9-\uFFFB]" - withString:@"" + [self.mutableString replaceOccurrencesOfString:@"(.)?[\\x{FFF9}-\\x{FFFB}]" + withString:@"$1" options:NSRegularExpressionSearch range:NSMakeRange(0, self.length)]; return ceil(rubyLineHeight); @@ -440,26 +491,28 @@ - (NSAttributedString*)attributedStringHorizontalInVerticalForms { NSMutableDictionary* attrs = [[self attributesAtIndex:0 effectiveRange:NULL] mutableCopy]; NSFont* font = attrs[NSFontAttributeName]; - CGFloat stringWidth = floor(self.size.width); - CGFloat height = floor(font.ascender - font.descender); + NSAttributedString* attrString = [NSAttributedString.alloc + initWithString:self.string + attributes:[self fontAttributesInRange:NSMakeRange(0, self.length)]]; + CGFloat stringWidth = ceil(attrString.size.width); + CGFloat height = ceil(attrString.size.height); CGFloat width = fmax(height, stringWidth); - NSImage* image = [NSImage imageWithSize:NSMakeSize(height, width) - flipped:YES + NSImage* image = [NSImage imageWithSize:NSMakeSize(height, height) flipped:YES drawingHandler:^BOOL(NSRect dstRect) { [NSGraphicsContext saveGraphicsState]; NSAffineTransform* transform = NSAffineTransform.transform; + [transform scaleXBy:1.0 yBy:height / width]; + [transform translateXBy:ceil(height * 0.5) yBy:ceil(width * 0.5)]; [transform rotateByDegrees:-90.0]; [transform concat]; - CGPoint origin = CGPointMake(floor((width - stringWidth) * 0.5 - dstRect.size.height), 0); - [self drawAtPoint:origin]; + [attrString drawWithRect:NSMakeRect(-ceil(stringWidth * 0.5), -ceil(height * 0.5), stringWidth, height) + options:NSStringDrawingUsesLineFragmentOrigin]; [NSGraphicsContext restoreGraphicsState]; return YES; }]; - image.resizingMode = NSImageResizingModeStretch; - image.size = NSMakeSize(height, height); NSTextAttachment* attm = NSTextAttachment.alloc.init; attm.image = image; - attm.bounds = NSMakeRect(0, floor(font.descender), height, height); + attm.bounds = NSMakeRect(0, ceil(font.descender), height, height); attrs[NSAttachmentAttributeName] = attm; return [NSAttributedString.alloc initWithString: [NSString stringWithCharacters:(unichar[]){NSAttachmentCharacter} length:1] @@ -501,9 +554,7 @@ - (NSColor*)hooverColor { if (@available(macOS 10.14, *)) { return [self colorWithSystemEffect:NSColorSystemEffectRollover]; } else { - return [[NSAppearance.currentAppearance bestMatchFromAppearancesWithNames: - @[NSAppearanceNameAqua, NSAppearanceNameDarkAqua]] - isEqualToString:NSAppearanceNameDarkAqua] ? + return [NSAppearance.currentAppearance.name isEqualToString:NSAppearanceNameVibrantDark] ? [self highlightWithLevel:0.3] : [self shadowWithLevel:0.3]; } } @@ -512,9 +563,7 @@ - (NSColor*)disabledColor { if (@available(macOS 10.14, *)) { return [self colorWithSystemEffect:NSColorSystemEffectDisabled]; } else { - return [[NSAppearance.currentAppearance bestMatchFromAppearancesWithNames: - @[NSAppearanceNameAqua, NSAppearanceNameDarkAqua]] - isEqualToString:NSAppearanceNameDarkAqua] ? + return [NSAppearance.currentAppearance.name isEqualToString:NSAppearanceNameVibrantDark] ? [self shadowWithLevel:0.3] : [self highlightWithLevel:0.3]; } } @@ -544,9 +593,9 @@ + (NSColor*)colorWithLabLStar:(CGFloat)lStar bStar:(CGFloat)bStar alpha:(CGFloat)alpha { CGFloat components[4]; - components[0] = clamp(lStar, 0.0, 100.0); - components[1] = clamp(aStar, -127.0, 127.0); - components[2] = clamp(bStar, -127.0, 127.0); + components[0] = clamp(lStar, 0.0, 100.0); // luminance + components[1] = clamp(aStar, -127.0, 127.0); // green-red + components[2] = clamp(bStar, -127.0, 127.0); // blue-yellow components[3] = clamp(alpha, 0.0, 1.0); return [NSColor colorWithColorSpace:NSColorSpace.labColorSpace components:components count:4]; @@ -616,67 +665,6 @@ - (NSColor*)colorByInvertingLuminanceToExtent:(ColorInversionExtent)extent { @end // NSColor (colorWithLabColorSpace) -@implementation NSFontDescriptor (NSFontDescriptorWithFallbackFonts) - -+ (NSFontDescriptor*)createWithFullname:(NSString*)fullname { - if (fullname.length == 0) { - return nil; - } - NSArray* fontNames = [fullname componentsSeparatedByString:@","]; - NSMutableArray* validFontDescriptors = - [NSMutableArray.alloc initWithCapacity:fontNames.count]; - for (NSString* fontName in fontNames) { - if (NSFont* font = [NSFont fontWithName:[fontName stringByTrimmingCharactersInSet: - NSCharacterSet.whitespaceAndNewlineCharacterSet] - size:0.0]) { - /* If the font name is not valid, NSFontDescriptor will still create something for us. - However, when we draw the actual text, Squirrel will crash if there is any font descriptor - with invalid font name. */ - NSFontDescriptor* fontDescriptor = font.fontDescriptor; - NSFontDescriptor* UIFontDescriptor = [fontDescriptor fontDescriptorWithSymbolicTraits: - NSFontDescriptorTraitUIOptimized]; - [validFontDescriptors addObject:[NSFont fontWithDescriptor:UIFontDescriptor - size:0.0] != nil ? - UIFontDescriptor : fontDescriptor]; - } - } - if (validFontDescriptors.count == 0) { - return nil; - } - NSFontDescriptor* initialFontDescriptor = validFontDescriptors[0]; - NSFontDescriptor* emojiFontDescriptor = - [NSFontDescriptor fontDescriptorWithName:@"AppleColorEmoji" size:0.0]; - NSArray* fallbackDescriptors = - [[validFontDescriptors subarrayWithRange:NSMakeRange(1, validFontDescriptors.count - 1)] - arrayByAddingObject:emojiFontDescriptor]; - return [initialFontDescriptor fontDescriptorByAddingAttributes: - @{NSFontCascadeListAttribute: fallbackDescriptors}]; -} - -@end // NSFontDescriptor (NSFontDescriptorWithFallbackFonts) - - -@implementation NSFont (NSFontGetLineHeight) - -- (CGFloat)lineHeightAsVerticalFont:(BOOL)vertical { - NSFont* font = vertical ? self.verticalFont : self; - CGFloat lineHeight = ceil(font.ascender - font.descender); - NSArray* fallbackList = - [font.fontDescriptor objectForKey:NSFontCascadeListAttribute]; - for (NSFontDescriptor* fallback in fallbackList) { - NSFont* fallbackFont = [NSFont fontWithDescriptor:fallback - size:font.pointSize]; - if (vertical) { - fallbackFont = fallbackFont.verticalFont; - } - lineHeight = fmax(lineHeight, ceil(fallbackFont.ascender - fallbackFont.descender)); - } - return lineHeight; -} - -@end // NSFont (NSFontGetLineHeight) - - #pragma mark - Color scheme and other user configurations typedef NS_CLOSED_ENUM(BOOL, SquirrelStyle) { @@ -691,6 +679,34 @@ typedef NS_CLOSED_ENUM(NSUInteger, SquirrelStatusMessageType) { kStatusMessageTypeLong = 2 }; +typedef NS_CLOSED_ENUM(NSUInteger, SquirrelContentBlock) { + kPreeditBlock, + kLinearCandidateBlock, + kStackedCandidateBlock, + kPagingBlock, + kStatusBlock +}; + +__attribute__((objc_direct_members)) +@interface NSFlippedView : NSView +@end + +__attribute__((objc_direct_members)) +@interface SquirrelTextView : NSTextView + +@property(nonatomic) SquirrelContentBlock contentBlock; + +- (instancetype)initWithContentBlock:(SquirrelContentBlock)contentBlock + storage:(NSTextStorage*)textStorage; +- (NSTextRange*)textRangeFromCharRange:(NSRange)charRange API_AVAILABLE(macos(12.0)); +- (NSRange)charRangeFromTextRange:(NSTextRange*)textRange API_AVAILABLE(macos(12.0)); +- (NSRect)layoutText; +- (NSRect)blockRectForRange:(NSRange)charRange; +- (SquirrelTextPolygon)textPolygonForRange:(NSRange)charRange; + +@end + + __attribute__((objc_direct_members)) @interface SquirrelTheme : NSObject @@ -753,12 +769,14 @@ @interface SquirrelTheme : NSObject @property(nonatomic, readonly, strong, nullable) NSAttributedString* symbolExpand; @property(nonatomic, readonly, strong, nullable) NSAttributedString* symbolLock; -@property(nonatomic, readonly, strong, nonnull) NSArray* labels; +@property(nonatomic, readonly, strong, nonnull) NSArray* rawLabels; +@property(nonatomic, readonly, strong, nullable) NSArray* labels; @property(nonatomic, readonly, strong, nonnull) NSAttributedString* candidateTemplate; @property(nonatomic, readonly, strong, nonnull) NSAttributedString* candidateHilitedTemplate; @property(nonatomic, readonly, strong, nullable) NSAttributedString* candidateDimmedTemplate; @property(nonatomic, readonly, strong, nonnull) NSString* selectKeys; -@property(nonatomic, readonly, strong, nonnull) NSString* candidateFormat; +@property(nonatomic, readonly, strong, nonnull) NSString* rawCandidateFormat; +@property(nonatomic, readonly, strong, nullable) NSString* candidateFormat; @property(nonatomic, readonly, strong, nonnull) NSString* scriptVariant; @property(nonatomic, readonly) SquirrelStatusMessageType statusMessageType; @property(nonatomic, readonly) NSUInteger pageSize; @@ -767,16 +785,16 @@ @interface SquirrelTheme : NSObject - (instancetype)initWithStyle:(SquirrelStyle)style NS_DESIGNATED_INITIALIZER; - (void)updateLabelsWithConfig:(SquirrelConfig* _Nonnull)config directUpdate:(BOOL)update; -- (void)setSelectKeys:(NSString* _Nonnull)selectKeys - labels:(NSArray* _Nonnull)labels - directUpdate:(BOOL)update; -- (void)setCandidateFormat:(NSString* _Nonnull)candidateFormat; -- (void)setStatusMessageType:(NSString* _Nullable)type; +- (void)updateSelectKeys:(NSString* _Nonnull)selectKeys + labels:(NSArray* _Nonnull)rawLabels + directUpdate:(BOOL)update; +- (void)updateCandidateFormat:(NSString* _Nonnull)rawCandidateFormat; +- (void)updateStatusMessageType:(NSString* _Nullable)type; - (void)updateWithConfig:(SquirrelConfig* _Nonnull)config styleOptions:(NSSet* _Nonnull)styleOptions scriptVariant:(NSString* _Nonnull)scriptVariant; - (void)setAnnotationHeight:(CGFloat)height; -- (void)setScriptVariant:(NSString* _Nonnull)scriptVariant; +- (void)updateScriptVariant:(NSString* _Nonnull)scriptVariant; @end @@ -792,16 +810,16 @@ - (instancetype)initWithStyle:(SquirrelStyle)style { if (self = [super init]) { _style = style; _selectKeys = @"12345"; - _labels = @[@"1", @"2", @"3", @"4", @"5"]; + _rawLabels = @[@"1", @"2", @"3", @"4", @"5"]; _pageSize = 5UL; - _candidateFormat = kDefaultCandidateFormat; + _rawCandidateFormat = kDefaultCandidateFormat; _scriptVariant = @"zh"; NSMutableParagraphStyle* candidateParagraphStyle = NSMutableParagraphStyle.alloc.init; candidateParagraphStyle.alignment = NSTextAlignmentLeft; candidateParagraphStyle.lineBreakStrategy = NSLineBreakStrategyNone; - /* Use left-to-right marks to declare the default writing direction and prevent strong right-to-left - characters from setting the writing direction in case the label are direction-less symbols */ + // Use left-to-right marks to declare the default writing direction and prevent strong right-to-left + // characters from setting the writing direction in case the label are direction-less symbols candidateParagraphStyle.baseWritingDirection = NSWritingDirectionLeftToRight; NSMutableParagraphStyle* preeditParagraphStyle = candidateParagraphStyle.mutableCopy; NSMutableParagraphStyle* pagingParagraphStyle = candidateParagraphStyle.mutableCopy; @@ -810,8 +828,10 @@ - (instancetype)initWithStyle:(SquirrelStyle)style { preeditParagraphStyle.lineBreakMode = NSLineBreakByWordWrapping; statusParagraphStyle.lineBreakMode = NSLineBreakByTruncatingTail; - NSFontDescriptor* userFontDesc = [NSFontDescriptor createWithFullname:[NSFont userFontOfSize:0.0].fontName]; - NSFontDescriptor* monoFontDesc = [NSFontDescriptor createWithFullname:[NSFont userFixedPitchFontOfSize:0.0].fontName]; + NSFontDescriptor* userFontDesc = [NSFontDescriptor createWithFullname: + [NSFont userFontOfSize:0.0].fontName]; + NSFontDescriptor* monoFontDesc = [NSFontDescriptor createWithFullname: + [NSFont userFixedPitchFontOfSize:0.0].fontName]; NSFont* userFont = [NSFont fontWithDescriptor:userFontDesc size:kDefaultFontSize]; NSFont* userMonoFont = [NSFont fontWithDescriptor:monoFontDesc size:kDefaultFontSize]; NSFont* monoDigitFont = [NSFont monospacedDigitSystemFontOfSize:kDefaultFontSize @@ -820,6 +840,7 @@ - (instancetype)initWithStyle:(SquirrelStyle)style { NSMutableDictionary* textAttrs = NSMutableDictionary.alloc.init; textAttrs[NSForegroundColorAttributeName] = NSColor.controlTextColor; textAttrs[NSFontAttributeName] = userFont; + textAttrs[NSKernAttributeName] = @0; // Use left-to-right embedding to prevent right-to-left text from changing the layout of the candidate. textAttrs[NSWritingDirectionAttributeName] = @[@0]; textAttrs[NSParagraphStyleAttributeName] = candidateParagraphStyle; @@ -827,12 +848,13 @@ - (instancetype)initWithStyle:(SquirrelStyle)style { NSMutableDictionary* labelAttrs = textAttrs.mutableCopy; labelAttrs[NSForegroundColorAttributeName] = NSColor.secondaryLabelColor; labelAttrs[NSFontAttributeName] = userMonoFont; - labelAttrs[NSStrokeWidthAttributeName] = @(-2.0 / kDefaultFontSize); + labelAttrs[NSKernAttributeName] = @0; labelAttrs[NSParagraphStyleAttributeName] = candidateParagraphStyle; NSMutableDictionary* commentAttrs = NSMutableDictionary.alloc.init; commentAttrs[NSForegroundColorAttributeName] = NSColor.secondaryLabelColor; commentAttrs[NSFontAttributeName] = userFont; + commentAttrs[NSKernAttributeName] = @0; commentAttrs[NSParagraphStyleAttributeName] = candidateParagraphStyle; NSMutableDictionary* preeditAttrs = NSMutableDictionary.alloc.init; @@ -870,7 +892,10 @@ - (instancetype)initWithStyle:(SquirrelStyle)style { _hilitedCommentForeColor = NSColor.alternateSelectedControlTextColor; _hilitedLabelForeColor = NSColor.alternateSelectedControlTextColor; - [self updateCandidateFormatForAttributesOnly:NO]; + CGGlyph glyphs[1]; + CTFontGetGlyphsForCharacters((__bridge CTFontRef)userFont, (unichar[1]){0x3000}, glyphs, 1); + _fullWidth = ceil([kFullWidthSpace sizeWithAttributes:@{NSFontAttributeName: userFont}].width); + [self updateCandidatetemplates]; [self updateSeperatorAndSymbolAttrs]; } return self; @@ -975,79 +1000,80 @@ - (void)updateSeperatorAndSymbolAttrs { - (void)updateLabelsWithConfig:(SquirrelConfig*)config directUpdate:(BOOL)update { NSUInteger menuSize = (NSUInteger)[config intValueForOption:@"menu/page_size"] ? : 5; - NSMutableArray* labels = [NSMutableArray.alloc initWithCapacity:menuSize]; - NSString* selectKeys = [config stringForOption:@"menu/alternative_select_keys"]; + NSString* selectKeys = [([config stringForOption:@"menu/alternative_select_keys"] ? : @"1234567890") substringToIndex:menuSize]; NSArray* selectLabels = [config listForOption:@"menu/alternative_select_labels"]; - if (selectLabels.count > 0) { - [labels addObjectsFromArray: - [selectLabels subarrayWithRange:NSMakeRange(0, menuSize)]]; - } - if (selectKeys != nil) { - if (selectLabels.count == 0) { - NSString* keyCaps = [selectKeys.uppercaseString stringByApplyingTransform: - NSStringTransformFullwidthToHalfwidth reverse:YES]; - for (NSUInteger i = 0; i < menuSize; ++i) { - labels[i] = [keyCaps substringWithRange:NSMakeRange(i, 1)]; - } + NSMutableArray* rawLabels = [NSMutableArray.alloc initWithCapacity:menuSize]; + if (selectLabels == nil) { + NSString* labelString = [selectKeys.uppercaseString + stringByApplyingTransform:NSStringTransformFullwidthToHalfwidth + reverse:YES]; + for (NSUInteger i = 0; i < menuSize; ++i) { + rawLabels[i] = [labelString substringWithRange:NSMakeRange(i, 1)]; } } else { - selectKeys = [@"1234567890" substringToIndex:menuSize]; - if (selectLabels.count == 0) { - NSString* numerals = [selectKeys stringByApplyingTransform: - NSStringTransformFullwidthToHalfwidth reverse:YES]; - for (NSUInteger i = 0; i < menuSize; ++i) { - labels[i] = [numerals substringWithRange:NSMakeRange(i, 1)]; - } + for (NSUInteger i = 0; i < menuSize; ++i) { + rawLabels[i] = selectLabels[i]; } } - [self setSelectKeys:selectKeys - labels:labels - directUpdate:update]; + [self updateSelectKeys:selectKeys labels:rawLabels directUpdate:update]; } -- (void)setSelectKeys:(NSString*)selectKeys - labels:(NSArray*)labels - directUpdate:(BOOL)update { +- (void)updateSelectKeys:(NSString*)selectKeys + labels:(NSArray*)rawLabels + directUpdate:(BOOL)update { + if ([_selectKeys isEqualToString:selectKeys] && [_rawLabels isEqualToArray:rawLabels]) { + return; + } _selectKeys = selectKeys; - _labels = labels; - _pageSize = labels.count; + _rawLabels = rawLabels; + _pageSize = rawLabels.count; + _labels = nil; if (update) { - [self updateCandidateFormatForAttributesOnly:YES]; + [self updateCandidatetemplates]; } } -- (void)setCandidateFormat:(NSString*)candidateFormat { - BOOL attrsOnly = [candidateFormat isEqualToString:_candidateFormat]; - if (!attrsOnly) { - _candidateFormat = candidateFormat; +- (void)updateCandidateFormat:(NSString*)rawCandidateFormat { + if (![_rawCandidateFormat isEqualToString:rawCandidateFormat]) { + _rawCandidateFormat = rawCandidateFormat; + _candidateFormat = nil; } - [self updateCandidateFormatForAttributesOnly:attrsOnly]; + [self updateCandidatetemplates]; [self updateSeperatorAndSymbolAttrs]; } -- (void)updateCandidateFormatForAttributesOnly:(BOOL)attrsOnly { - NSMutableAttributedString* candidateTemplate; - if (!attrsOnly) { +- (void)updateCandidatetemplates { + if (_candidateFormat.length == 0 || _labels.count == 0) { // validate candidate format: must have enumerator '%c' before candidate '%@' - NSMutableString* candidateFormat = _candidateFormat.mutableCopy; - if (![candidateFormat containsString:@"%@"]) { + NSMutableString* candidateFormat = _rawCandidateFormat.mutableCopy; + NSRange textRange = [candidateFormat rangeOfString:@"%@" options:NSLiteralSearch]; + if (textRange.length == 0) { [candidateFormat appendString:@"%@"]; } NSRange labelRange = [candidateFormat rangeOfString:@"%c" options:NSLiteralSearch]; if (labelRange.length == 0) { [candidateFormat insertString:@"%c" atIndex:0]; + labelRange = [candidateFormat rangeOfString:@"%c" options:NSLiteralSearch]; } - NSRange textRange = [candidateFormat rangeOfString:@"%@" options:NSLiteralSearch]; + textRange = [candidateFormat rangeOfString:@"%@" options:NSLiteralSearch]; if (labelRange.location > textRange.location) { candidateFormat.string = kDefaultCandidateFormat; } + textRange = [candidateFormat rangeOfString:@"(\\x{FFF9})?%@" options:NSRegularExpressionSearch]; + NSRange commentRange = NSMakeRange(NSMaxRange(textRange), candidateFormat.length - NSMaxRange(textRange)); + if (commentRange.length == 0 || ![[candidateFormat substringWithRange:commentRange] containsString:@"%s"]) { + [candidateFormat insertString:@"%s" atIndex:commentRange.location]; + } + if (!_linear) { + [candidateFormat insertString:@"\t" atIndex:textRange.location]; + } + _candidateFormat = candidateFormat; - NSMutableArray* labels = _labels.mutableCopy; + NSMutableArray* labels = _rawLabels.mutableCopy; NSRange enumRange = NSMakeRange(0, 0); NSCharacterSet* labelCharacters = [NSCharacterSet characterSetWithCharactersInString: [labels componentsJoinedByString:@""]]; - if ([[NSCharacterSet characterSetWithRange:NSMakeRange(0xFF10, 10)] - isSupersetOfSet:labelCharacters]) { // 01..9 + if ([NSCharacterSet.fullWidthDigitCharacterSet isSupersetOfSet:labelCharacters]) { // 01..9 if ((enumRange = [candidateFormat rangeOfString:@"%c\u20E3" options:NSLiteralSearch]).length > 0) { // 1︎⃣...9︎⃣0︎⃣ for (NSUInteger i = 0; i < labels.count; ++i) { @@ -1058,15 +1084,15 @@ - (void)updateCandidateFormatForAttributesOnly:(BOOL)attrsOnly { options:NSLiteralSearch]).length > 0) { // ①...⑨⓪ for (NSUInteger i = 0; i < labels.count; ++i) { labels[i] = [NSString stringWithFormat:@"%C", - (unichar)([labels[i] characterAtIndex:0] == 0xFF10 ? 0x24EA : - [labels[i] characterAtIndex:0] - 0xFF11 + 0x2460)]; + (unichar)([labels[i] characterAtIndex:0] == 0xFF10 ? 0x24EA : + [labels[i] characterAtIndex:0] - 0xFF11 + 0x2460)]; } } else if ((enumRange = [candidateFormat rangeOfString:@"(%c)" options:NSLiteralSearch]).length > 0) { // ⑴...⑼⑽ for (NSUInteger i = 0; i < labels.count; ++i) { labels[i] = [NSString stringWithFormat:@"%C", - (unichar)([labels[i] characterAtIndex:0] == 0xFF10 ? 0x247D : - [labels[i] characterAtIndex:0] - 0xFF11 + 0x2474)]; + (unichar)([labels[i] characterAtIndex:0] == 0xFF10 ? 0x247D : + [labels[i] characterAtIndex:0] - 0xFF11 + 0x2474)]; } } else if ((enumRange = [candidateFormat rangeOfString:@"%c." options:NSLiteralSearch]).length > 0) { // ⒈...⒐🄀 @@ -1081,8 +1107,7 @@ - (void)updateCandidateFormatForAttributesOnly:(BOOL)attrsOnly { (const unichar[2]){0xD83C, (unichar)([labels[i] characterAtIndex:0] - 0xFF10 + 0xDD01)}]; } } - } else if ([[NSCharacterSet characterSetWithRange:NSMakeRange(0xFF21, 26)] - isSupersetOfSet:labelCharacters]) { // A..Z + } else if ([NSCharacterSet.fullWidthLatinCapitalCharacterSet isSupersetOfSet:labelCharacters]) { // A..Z if ((enumRange = [candidateFormat rangeOfString:@"%c\u20DD" options:NSLiteralSearch]).length > 0) { // Ⓐ...Ⓩ for (NSUInteger i = 0; i < labels.count; ++i) { @@ -1105,85 +1130,53 @@ - (void)updateCandidateFormatForAttributesOnly:(BOOL)attrsOnly { } if (enumRange.length > 0) { [candidateFormat replaceCharactersInRange:enumRange withString:@"%c"]; - _labels = labels; } - candidateTemplate = [NSMutableAttributedString.alloc initWithString:candidateFormat]; - } else { - candidateTemplate = _candidateTemplate.mutableCopy; + _labels = labels; } + // make sure label font can render all label strings - NSString* labelString = [_labels componentsJoinedByString:@""]; + NSMutableDictionary* textAttrs = _textAttrs.mutableCopy; + NSMutableDictionary* commentAttrs = _commentAttrs.mutableCopy; NSMutableDictionary* labelAttrs = _labelAttrs.mutableCopy; + NSString* labelString = [_rawLabels componentsJoinedByString:@""]; NSFont* labelFont = labelAttrs[NSFontAttributeName]; NSFont* substituteFont = CFBridgingRelease(CTFontCreateForString((CTFontRef)labelFont, (CFStringRef)labelString, CFRangeMake(0, (CFIndex)labelString.length))); if ([substituteFont isNotEqualTo:labelFont]) { - NSDictionary* monoDigitAttrs = - @{NSFontFeatureSettingsAttribute: @[@{NSFontFeatureTypeIdentifierKey: @(kNumberSpacingType), - NSFontFeatureSelectorIdentifierKey: @(kMonospacedNumbersSelector)}, - @{NSFontFeatureTypeIdentifierKey: @(kTextSpacingType), - NSFontFeatureSelectorIdentifierKey: @(kHalfWidthTextSelector)}]}; - NSFontDescriptor* substituteFontDescriptor = [substituteFont.fontDescriptor - fontDescriptorByAddingAttributes:monoDigitAttrs]; - substituteFont = [NSFont fontWithDescriptor:substituteFontDescriptor size:labelFont.pointSize]; - labelAttrs[NSFontAttributeName] = substituteFont; - } - - NSRange textRange = [candidateTemplate.mutableString rangeOfString:@"%@" options:NSLiteralSearch]; - NSRange labelRange = NSMakeRange(0, textRange.location); - NSRange commentRange = NSMakeRange(NSMaxRange(textRange), - candidateTemplate.length - NSMaxRange(textRange)); - [candidateTemplate setAttributes:_labelAttrs range:labelRange]; - [candidateTemplate setAttributes:_textAttrs range:textRange]; - if (commentRange.length > 0) { - [candidateTemplate setAttributes:_commentAttrs range:commentRange]; + labelAttrs[NSFontAttributeName] = CFBridgingRelease(CTFontCreateForString((CTFontRef)substituteFont, + (CFStringRef)labelString, CFRangeMake(0, (CFIndex)labelString.length))); } + // parse markdown formats - if (!attrsOnly) { - [candidateTemplate formatMarkDown]; - // add placeholder for comment '%s' - textRange = [candidateTemplate.mutableString rangeOfString:@"%@" options:NSLiteralSearch]; - labelRange = NSMakeRange(0, textRange.location); - commentRange = NSMakeRange(NSMaxRange(textRange), - candidateTemplate.length - NSMaxRange(textRange)); - if (commentRange.length > 0) { - [candidateTemplate replaceCharactersInRange:commentRange - withString:[kTipSpecifier append:[candidateTemplate.mutableString - substringWithRange:commentRange]]]; - } else { - [candidateTemplate appendAttributedString: - [NSAttributedString.alloc initWithString:kTipSpecifier - attributes:_commentAttrs]]; - } - commentRange.length += kTipSpecifier.length; - if (!_linear) { - [candidateTemplate replaceCharactersInRange:NSMakeRange(textRange.location, 0) - withString:@"\t"]; - labelRange.length += 1; - textRange.location += 1; - commentRange.location += 1; - } - } + NSMutableAttributedString* candidateTemplate = [NSMutableAttributedString.alloc initWithString:_candidateFormat]; + NSRange textRange = [candidateTemplate.mutableString rangeOfString:@"(\\x{FFF9})?%@" options:NSRegularExpressionSearch]; + NSRange labelRange = NSMakeRange(0, textRange.location); + NSRange commentRange = NSMakeRange(NSMaxRange(textRange), candidateTemplate.length - NSMaxRange(textRange)); + [candidateTemplate setAttributes:labelAttrs range:labelRange]; + [candidateTemplate setAttributes:textAttrs range:textRange]; + [candidateTemplate setAttributes:commentAttrs range:commentRange]; + [candidateTemplate formatMarkDown]; + textRange = [candidateTemplate.mutableString rangeOfString:@"(\\x{FFF9})?%@" options:NSRegularExpressionSearch]; + labelRange = NSMakeRange(0, textRange.location); + commentRange = NSMakeRange(NSMaxRange(textRange), candidateTemplate.length - NSMaxRange(textRange)); + // for stacked layout, calculate head indent NSMutableParagraphStyle* candidateParagraphStyle = _candidateParagraphStyle.mutableCopy; if (!_linear) { - CGFloat indent = 0.0; - NSAttributedString* labelFormat = [candidateTemplate attributedSubstringFromRange: - NSMakeRange(0, labelRange.length - 1)]; + NSRange enumRange = [candidateTemplate.mutableString rangeOfString:@"%c" options:NSLiteralSearch]; + NSTextStorage* textStorage = NSTextStorage.alloc.init; + SquirrelTextView* textView = [SquirrelTextView.alloc initWithContentBlock:kStackedCandidateBlock storage:textStorage]; + textView.layoutOrientation = _vertical ? NSTextLayoutOrientationVertical : NSTextLayoutOrientationHorizontal; for (NSString* label in _labels) { - NSMutableAttributedString* enumString = labelFormat.mutableCopy; - NSRange enumRange = [enumString.mutableString rangeOfString:@"%c" options:NSLiteralSearch]; - [enumString.mutableString replaceCharactersInRange:enumRange withString:label]; - [enumString addAttribute:NSVerticalGlyphFormAttributeName - value:@(_vertical) - range:NSMakeRange(enumRange.location, label.length)]; - indent = fmax(indent, enumString.size.width); + NSMutableAttributedString* labelString = [candidateTemplate attributedSubstringFromRange:NSMakeRange(0, labelRange.length - 1)].mutableCopy; + [labelString replaceCharactersInRange:enumRange withString:label]; + [textStorage appendAttributedString:labelString]; + [textStorage appendAttributedString:[NSAttributedString.alloc initWithString:@"\n"]]; } - indent = floor(indent) + 1.0; - candidateParagraphStyle.tabStops = @[[NSTextTab.alloc - initWithTextAlignment:NSTextAlignmentLeft - location:indent - options:@{}]]; + CGFloat indent = floor(NSMaxX(textView.layoutText)) + 1.0; + candidateParagraphStyle.tabStops = @[[NSTextTab.alloc initWithTextAlignment:NSTextAlignmentLeft + location:indent + options:@{}]]; candidateParagraphStyle.headIndent = indent; _candidateParagraphStyle = candidateParagraphStyle; _truncatedParagraphStyle = nil; @@ -1197,8 +1190,6 @@ - (void)updateCandidateFormatForAttributesOnly:(BOOL)attrsOnly { _truncatedParagraphStyle = truncatedParagraphStyle; } - NSMutableDictionary* textAttrs = _textAttrs.mutableCopy; - NSMutableDictionary* commentAttrs = _commentAttrs.mutableCopy; textAttrs[NSParagraphStyleAttributeName] = candidateParagraphStyle; commentAttrs[NSParagraphStyleAttributeName] = candidateParagraphStyle; labelAttrs[NSParagraphStyleAttributeName] = candidateParagraphStyle; @@ -1210,6 +1201,7 @@ - (void)updateCandidateFormatForAttributesOnly:(BOOL)attrsOnly { value:candidateParagraphStyle range:NSMakeRange(0, candidateTemplate.length)]; _candidateTemplate = candidateTemplate; + NSMutableAttributedString* candidateHilitedTemplate = candidateTemplate.mutableCopy; [candidateHilitedTemplate addAttribute:NSForegroundColorAttributeName value:_hilitedLabelForeColor @@ -1221,6 +1213,7 @@ - (void)updateCandidateFormatForAttributesOnly:(BOOL)attrsOnly { value:_hilitedCommentForeColor range:commentRange]; _candidateHilitedTemplate = candidateHilitedTemplate; + if (_tabular) { NSMutableAttributedString* candidateDimmedTemplate = candidateTemplate.mutableCopy; [candidateDimmedTemplate addAttribute:NSForegroundColorAttributeName @@ -1232,7 +1225,7 @@ - (void)updateCandidateFormatForAttributesOnly:(BOOL)attrsOnly { } } -- (void)setStatusMessageType:(NSString*)type { +- (void)updateStatusMessageType:(NSString*)type { if ([@"long" caseInsensitiveCompare:type] == NSOrderedSame) { _statusMessageType = kStatusMessageTypeLong; } else if ([@"short" caseInsensitiveCompare:type] == NSOrderedSame) { @@ -1283,10 +1276,16 @@ static void updateTextOrientation(BOOL* isVertical, SquirrelConfig* config, NSSt if (newValue != nil) *existing = newValue; } +static NSArray*>* monoDigitFeatures = + @[@{NSFontFeatureTypeIdentifierKey: @(kNumberSpacingType), + NSFontFeatureSelectorIdentifierKey: @(kMonospacedNumbersSelector)}, + @{NSFontFeatureTypeIdentifierKey: @(kTextSpacingType), + NSFontFeatureSelectorIdentifierKey: @(kHalfWidthTextSelector)}]; + - (void)updateWithConfig:(SquirrelConfig*)config styleOptions:(NSSet*)styleOptions scriptVariant:(NSString*)scriptVariant { - /*** INTERFACE ***/ + /* INTERFACE */ BOOL linear = NO; BOOL tabular = NO; BOOL vertical = NO; @@ -1297,8 +1296,8 @@ - (void)updateWithConfig:(SquirrelConfig*)config NSNumber* showPaging = [config nullableBoolForOption:@"style/show_paging"]; NSNumber* rememberSize = [config nullableBoolForOption:@"style/remember_size" alias:@"memorize_size"]; NSString* statusMessageType = [config stringForOption:@"style/status_message_type"]; - NSString* candidateFormat = [config stringForOption:@"style/candidate_format"]; - /*** TYPOGRAPHY ***/ + NSString* rawCandidateFormat = [config stringForOption:@"style/candidate_format"]; + /* TYPOGRAPHY */ NSString* fontName = [config stringForOption:@"style/font_face"]; NSNumber* fontSize = [config nullableDoubleForOption:@"style/font_point" constraint:pos_round]; NSString* labelFontName = [config stringForOption:@"style/label_font_face"]; @@ -1317,7 +1316,7 @@ - (void)updateWithConfig:(SquirrelConfig*)config NSNumber* baseOffset = [config nullableDoubleForOption:@"style/base_offset"]; NSNumber* lineLength = [config nullableDoubleForOption:@"style/line_length"]; NSNumber* shadowSize = [config nullableDoubleForOption:@"style/shadow_size" constraint:positive]; - /*** CHROMATICS ***/ + /* CHROMATICS */ NSColor* backColor; NSColor* borderColor; NSColor* preeditBackColor; @@ -1359,7 +1358,7 @@ - (void)updateWithConfig:(SquirrelConfig*)config } // get color scheme and then check possible overrides from styleSwitcher for (NSString* prefix in configPrefixes) { - /*** CHROMATICS override ***/ + /* CHROMATICS override */ if (NSString* colorSpace = [config stringForOption:[prefix append:@"/color_space"]]) { config.colorSpace = colorSpace; } @@ -1380,9 +1379,9 @@ - (void)updateWithConfig:(SquirrelConfig*)config update(&hilitedLabelForeColor, [config colorForOption:[prefix append:@"/label_hilited_color"] alias:@"hilited_candidate_label_color"]); update(&backImage, [config imageForOption:[prefix append:@"/back_image"]]); - /* the following per-color-scheme configurations, if exist, will - override configurations with the same name under the global 'style' section */ - /*** INTERFACE override ***/ + // the following per-color-scheme configurations, if exist, will + // override configurations with the same name under the global 'style' section + /* INTERFACE override */ updateCandidateListLayout(&linear, &tabular, config, prefix); updateTextOrientation(&vertical, config, prefix); update(&inlinePreedit, [config nullableBoolForOption:[prefix append:@"/inline_preedit"]]); @@ -1390,8 +1389,8 @@ - (void)updateWithConfig:(SquirrelConfig*)config update(&showPaging, [config nullableBoolForOption:[prefix append:@"/show_paging"]]); update(&rememberSize, [config nullableBoolForOption:[prefix append:@"/remember_size"] alias:@"memorize_size"]); update(&statusMessageType, [config stringForOption:[prefix append:@"/status_message_type"]]); - update(&candidateFormat, [config stringForOption:[prefix append:@"/candidate_format"]]); - /*** TYPOGRAPHY override ***/ + update(&rawCandidateFormat, [config stringForOption:[prefix append:@"/candidate_format"]]); + /* TYPOGRAPHY override */ update(&fontName, [config stringForOption:[prefix append:@"/font_face"]]); update(&fontSize, [config nullableDoubleForOption:[prefix append:@"/font_point"] constraint:pos_round]); update(&labelFontName, [config stringForOption:[prefix append:@"/label_font_face"]]); @@ -1412,46 +1411,45 @@ - (void)updateWithConfig:(SquirrelConfig*)config update(&shadowSize, [config nullableDoubleForOption:[prefix append:@"/shadow_size"] constraint:positive]); } - /*** TYPOGRAPHY refinement ***/ + /* FORMAT reset */ + rawCandidateFormat = rawCandidateFormat ? : kDefaultCandidateFormat; + if (_linear != linear) { + _candidateFormat = @""; // reset format after switching between linear and stacked + } + + /* TYPOGRAPHY refinement */ fontSize = fontSize ? : @(kDefaultFontSize); labelFontSize = labelFontSize ? : fontSize; commentFontSize = commentFontSize ? : fontSize; - NSDictionary* monoDigitAttrs = - @{NSFontFeatureSettingsAttribute: @[@{NSFontFeatureTypeIdentifierKey: @(kNumberSpacingType), - NSFontFeatureSelectorIdentifierKey: @(kMonospacedNumbersSelector)}, - @{NSFontFeatureTypeIdentifierKey: @(kTextSpacingType), - NSFontFeatureSelectorIdentifierKey: @(kHalfWidthTextSelector)}]}; - - NSFontDescriptor* fontDescriptor = [NSFontDescriptor createWithFullname:fontName]; - NSFont* font = [NSFont fontWithDescriptor:fontDescriptor ? : [NSFontDescriptor createWithFullname:[NSFont userFontOfSize:0].fontName] - size:fontSize.doubleValue]; + NSFontDescriptor* fontDescriptor = [NSFontDescriptor createWithFullname:fontName] ? : + [NSFontDescriptor createWithFullname:[NSFont userFontOfSize:0].fontName]; + NSFont* font = [NSFont fontWithDescriptor:fontDescriptor + size:fontSize.doubleValue]; NSFontDescriptor* labelFontDescriptor = [([NSFontDescriptor createWithFullname:labelFontName] ? : fontDescriptor) - fontDescriptorByAddingAttributes:monoDigitAttrs]; - NSFont* labelFont = labelFontDescriptor ? [NSFont fontWithDescriptor:labelFontDescriptor - size:labelFontSize.doubleValue] - : [NSFont monospacedDigitSystemFontOfSize:labelFontSize.doubleValue - weight:NSFontWeightRegular]; - - NSFontDescriptor* commentFontDescriptor = [NSFontDescriptor createWithFullname:commentFontName]; - NSFont* commentFont = [NSFont fontWithDescriptor:commentFontDescriptor ? : fontDescriptor + fontDescriptorByAddingAttributes:@{NSFontFeatureSettingsAttribute: monoDigitFeatures}]; + NSFont* labelFont = [NSFont fontWithDescriptor:labelFontDescriptor + size:labelFontSize.doubleValue]; + NSFont* commentFont = [NSFont fontWithDescriptor:[NSFontDescriptor createWithFullname:commentFontName] ? : fontDescriptor size:commentFontSize.doubleValue]; - - NSFont* pagingFont = [NSFont monospacedDigitSystemFontOfSize:labelFontSize.doubleValue - weight:NSFontWeightRegular]; + NSFont* systemFont = [NSFont systemFontOfSize:labelFontSize.doubleValue]; + NSFontDescriptor* pagingFontDescriptor = [labelFont.fontDescriptor fontDescriptorByAddingAttributes: + @{NSFontCascadeListAttribute: @[systemFont.fontDescriptor]}]; + NSFont* pagingFont = [NSFont fontWithDescriptor:pagingFontDescriptor + size:labelFontSize.doubleValue]; CGFloat fontHeight = [font lineHeightAsVerticalFont:vertical]; CGFloat labelFontHeight = [labelFont lineHeightAsVerticalFont:vertical]; CGFloat commentFontHeight = [commentFont lineHeightAsVerticalFont:vertical]; + CGFloat pagingFontHeight = [pagingFont lineHeightAsVerticalFont:NO]; CGFloat lineHeight = fmax(fontHeight, fmax(labelFontHeight, commentFontHeight)); - CGFloat fullWidth = ceil([kFullWidthSpace sizeWithAttributes: - @{NSFontAttributeName : commentFont}].width); + CGFloat fullWidth = ceil([kFullWidthSpace sizeWithAttributes:@{NSFontAttributeName: commentFont}].width); NSMutableParagraphStyle* candidateParagraphStyle = _candidateParagraphStyle.mutableCopy; candidateParagraphStyle.minimumLineHeight = lineHeight; candidateParagraphStyle.maximumLineHeight = lineHeight; - candidateParagraphStyle.paragraphSpacingBefore = linear ? 0.0 : ceil(lineSpacing.doubleValue * 0.5); - candidateParagraphStyle.paragraphSpacing = linear ? 0.0 : floor(lineSpacing.doubleValue * 0.5); + candidateParagraphStyle.paragraphSpacingBefore = linear ? 0.0 : floor(lineSpacing.doubleValue * 0.5); + candidateParagraphStyle.paragraphSpacing = linear ? 0.0 : ceil(lineSpacing.doubleValue * 0.5); candidateParagraphStyle.lineSpacing = linear ? lineSpacing.doubleValue : 0.0; candidateParagraphStyle.tabStops = @[]; candidateParagraphStyle.defaultTabInterval = fullWidth * 2; @@ -1459,12 +1457,11 @@ - (void)updateWithConfig:(SquirrelConfig*)config NSMutableParagraphStyle* preeditParagraphStyle = _preeditParagraphStyle.mutableCopy; preeditParagraphStyle.minimumLineHeight = fontHeight; preeditParagraphStyle.maximumLineHeight = fontHeight; - preeditParagraphStyle.paragraphSpacing = spacing.doubleValue; preeditParagraphStyle.tabStops = @[]; NSMutableParagraphStyle* pagingParagraphStyle = _pagingParagraphStyle.mutableCopy; - pagingParagraphStyle.minimumLineHeight = ceil(pagingFont.ascender - pagingFont.descender); - pagingParagraphStyle.maximumLineHeight = ceil(pagingFont.ascender - pagingFont.descender); + pagingParagraphStyle.minimumLineHeight = pagingFontHeight; + pagingParagraphStyle.maximumLineHeight = pagingFontHeight; pagingParagraphStyle.tabStops = @[]; NSMutableParagraphStyle* statusParagraphStyle = _statusParagraphStyle.mutableCopy; @@ -1484,7 +1481,9 @@ - (void)updateWithConfig:(SquirrelConfig*)config preeditAttrs[NSFontAttributeName] = font; pagingAttrs[NSFontAttributeName] = pagingFont; statusAttrs[NSFontAttributeName] = commentFont; - labelAttrs[NSStrokeWidthAttributeName] = @(-2.0 / labelFontSize.doubleValue); + textAttrs[NSKernAttributeName] = vertical ? @(0.1 * fontSize.doubleValue) : @(0.0); + labelAttrs[NSKernAttributeName] = vertical ? @(0.1 * labelFontSize.doubleValue) : @(0.0); + commentAttrs[NSKernAttributeName] = vertical ? @(0.1 * commentFontSize.doubleValue) : @(0.0); NSFont* zhFont = CFBridgingRelease(CTFontCreateUIFontForLanguage (kCTFontUIFontSystem, fontSize.doubleValue, (CFStringRef)scriptVariant)); @@ -1509,7 +1508,7 @@ - (void)updateWithConfig:(SquirrelConfig*)config labelAttrs[(id)kCTBaselineReferenceInfoAttributeName] = baselineRefInfo; commentAttrs[(id)kCTBaselineReferenceInfoAttributeName] = baselineRefInfo; preeditAttrs[(id)kCTBaselineReferenceInfoAttributeName] = @{(id)kCTBaselineReferenceFont : zhFont}; - pagingAttrs[(id)kCTBaselineReferenceInfoAttributeName] = @{(id)kCTBaselineReferenceFont : pagingFont}; + pagingAttrs[(id)kCTBaselineReferenceInfoAttributeName] = @{(id)kCTBaselineReferenceFont : systemFont}; statusAttrs[(id)kCTBaselineReferenceInfoAttributeName] = @{(id)kCTBaselineReferenceFont : zhCommentFont}; textAttrs[(id)kCTBaselineClassAttributeName] = @@ -1521,7 +1520,7 @@ - (void)updateWithConfig:(SquirrelConfig*)config vertical ? (id)kCTBaselineClassIdeographicCentered : (id)kCTBaselineClassRoman; statusAttrs[(id)kCTBaselineClassAttributeName] = vertical ? (id)kCTBaselineClassIdeographicCentered : (id)kCTBaselineClassRoman; - pagingAttrs[(id)kCTBaselineClassAttributeName] = (id)kCTBaselineClassIdeographicCentered; + pagingAttrs[(id)kCTBaselineClassAttributeName] = (id)kCTBaselineClassRoman; textAttrs[(id)kCTLanguageAttributeName] = scriptVariant; labelAttrs[(id)kCTLanguageAttributeName] = scriptVariant; @@ -1539,15 +1538,12 @@ - (void)updateWithConfig:(SquirrelConfig*)config preeditAttrs[NSParagraphStyleAttributeName] = preeditParagraphStyle; pagingAttrs[NSParagraphStyleAttributeName] = pagingParagraphStyle; statusAttrs[NSParagraphStyleAttributeName] = statusParagraphStyle; - - labelAttrs[NSVerticalGlyphFormAttributeName] = @(vertical); pagingAttrs[NSVerticalGlyphFormAttributeName] = @NO; /*** CHROMATICS refinement ***/ if (@available(macOS 10.14, *)) { - if (translucency.floatValue > 0.001f && !isNative && backColor != nil && - (_style == kDarkStyle ? backColor.lStarComponent > 0.6 - : backColor.lStarComponent < 0.4)) { + if (isnormal(translucency.floatValue) && !isNative && backColor != nil && + (_style == kDarkStyle ? backColor.lStarComponent > 0.6 : backColor.lStarComponent < 0.4)) { backColor = [backColor colorByInvertingLuminanceToExtent:kStandardColorInversion]; borderColor = [borderColor colorByInvertingLuminanceToExtent:kStandardColorInversion]; preeditBackColor = [preeditBackColor colorByInvertingLuminanceToExtent:kStandardColorInversion]; @@ -1595,7 +1591,7 @@ - (void)updateWithConfig:(SquirrelConfig*)config _lineSpacing = lineSpacing.doubleValue; _preeditSpacing = spacing.doubleValue; _opacity = opacity ? opacity.doubleValue : 1.0; - _lineLength = lineLength.doubleValue > 0.1 ? fmax(ceil(lineLength.doubleValue), fullWidth * 5) : 0.0; + _lineLength = isnormal(lineLength.doubleValue) ? fmax(ceil(lineLength.doubleValue), fullWidth * 5) : 0.0; _shadowSize = shadowSize.doubleValue; _translucency = translucency.floatValue; _stackColors = stackColors.boolValue; @@ -1636,14 +1632,16 @@ - (void)updateWithConfig:(SquirrelConfig*)config _hilitedLabelForeColor = hilitedLabelForeColor; _dimmedLabelForeColor = tabular ? [labelForeColor colorWithAlphaComponent: labelForeColor.alphaComponent * 0.2] : nil; - _scriptVariant = scriptVariant; - [self setCandidateFormat:candidateFormat ? : kDefaultCandidateFormat]; - [self setStatusMessageType:statusMessageType]; + + [self updateStatusMessageType:statusMessageType]; + [self updateCandidateFormat:rawCandidateFormat]; + [self updateSeperatorAndSymbolAttrs]; + } - (void)setAnnotationHeight:(CGFloat)height { - if (height > 0.1 && _lineSpacing < height * 2) { + if (isnormal(height) && _lineSpacing < height * 2) { _lineSpacing = height * 2; NSMutableParagraphStyle* candidateParagraphStyle = _candidateParagraphStyle.mutableCopy; if (_linear) { @@ -1688,7 +1686,7 @@ - (void)setAnnotationHeight:(CGFloat)height { } } -- (void)setScriptVariant:(NSString*)scriptVariant { +- (void)updateScriptVariant:(NSString*)scriptVariant { if ([scriptVariant isEqualToString:_scriptVariant]) { return; } @@ -1740,30 +1738,20 @@ - (void)setScriptVariant:(NSString*)scriptVariant { _statusAttrs = statusAttrs; NSMutableAttributedString* candidateTemplate = _candidateTemplate.mutableCopy; - NSRange textRange = [candidateTemplate.mutableString rangeOfString:@"%@" options:NSLiteralSearch]; - NSRange labelRange = NSMakeRange(0, textRange.location); - NSRange commentRange = NSMakeRange(NSMaxRange(textRange), - candidateTemplate.length - NSMaxRange(textRange)); - [candidateTemplate addAttributes:labelAttrs range:labelRange]; - [candidateTemplate addAttributes:textAttrs range:textRange]; - [candidateTemplate addAttributes:commentAttrs range:commentRange]; + NSRange templateRange = NSMakeRange(0, candidateTemplate.length); + [candidateTemplate addAttribute:(id)kCTBaselineReferenceInfoAttributeName value:baselineRefInfo range:templateRange]; + [candidateTemplate addAttribute:(id)kCTLanguageAttributeName value:scriptVariant range:templateRange]; _candidateTemplate = candidateTemplate; + NSMutableAttributedString* candidateHilitedTemplate = candidateTemplate.mutableCopy; - [candidateHilitedTemplate addAttribute:NSForegroundColorAttributeName - value:_hilitedLabelForeColor - range:labelRange]; - [candidateHilitedTemplate addAttribute:NSForegroundColorAttributeName - value:_hilitedTextForeColor - range:textRange]; - [candidateHilitedTemplate addAttribute:NSForegroundColorAttributeName - value:_hilitedCommentForeColor - range:commentRange]; + [candidateHilitedTemplate addAttribute:(id)kCTBaselineReferenceInfoAttributeName value:baselineRefInfo range:templateRange]; + [candidateHilitedTemplate addAttribute:(id)kCTLanguageAttributeName value:scriptVariant range:templateRange]; _candidateHilitedTemplate = candidateHilitedTemplate; + if (_tabular) { NSMutableAttributedString* candidateDimmedTemplate = candidateTemplate.mutableCopy; - [candidateDimmedTemplate addAttribute:NSForegroundColorAttributeName - value:_dimmedLabelForeColor - range:labelRange]; + [candidateDimmedTemplate addAttribute:(id)kCTBaselineReferenceInfoAttributeName value:baselineRefInfo range:templateRange]; + [candidateDimmedTemplate addAttribute:(id)kCTLanguageAttributeName value:scriptVariant range:templateRange]; _candidateDimmedTemplate = candidateDimmedTemplate; } } @@ -1773,14 +1761,6 @@ - (void)setScriptVariant:(NSString*)scriptVariant { #pragma mark - Auxiliary structs and views -typedef NS_CLOSED_ENUM(NSUInteger, SquirrelContentBlock) { - kPreeditBlock, - kLinearCandidatesBlock, - kStackedCandidatesBlock, - kPagingBlock, - kStatusBlock -}; - typedef struct SquirrelTabularIndex { NSUInteger index; NSUInteger lineNum; @@ -1814,41 +1794,15 @@ inline NSRange commentRange() { } } SquirrelCandidateInfo; -__attribute__((objc_direct_members)) -@interface NSFlippedView : NSView -@end - -__attribute__((objc_direct_members)) -@interface SquirrelTextView : NSTextView - -@property(nonatomic) SquirrelContentBlock contentBlock; - -- (instancetype)initWithContentBlock:(SquirrelContentBlock)contentBlock - storage:(NSTextStorage*)textStorage; -- (NSTextRange*)textRangeFromCharRange:(NSRange)charRange API_AVAILABLE(macos(12.0)); -- (NSRange)charRangeFromTextRange:(NSTextRange*)textRange API_AVAILABLE(macos(12.0)); -- (NSRect)layoutText; -- (NSRect)blockRectForRange:(NSRange)charRange; -- (SquirrelTextPolygon)textPolygonForRange:(NSRange)charRange; - -@end - #pragma mark - Typesetting extensions for TextKit 1 (Mac OSX 10.9 to MacOS 11) __attribute__((objc_direct_members)) @interface SquirrelLayoutManager : NSLayoutManager - -@property(nonatomic, readonly) SquirrelContentBlock contentBlock; - @end @implementation SquirrelLayoutManager -- (SquirrelContentBlock)contentBlock { - return ((SquirrelTextView*)self.firstTextView).contentBlock; -} - - (void)drawGlyphsForGlyphRange:(NSRange)glyphsToShow atPoint:(NSPoint)origin { NSTextContainer* textContainer = [self textContainerForGlyphAtIndex:glyphsToShow.location @@ -1862,60 +1816,52 @@ - (void)drawGlyphsForGlyphRange:(NSRange)glyphsToShow NSRange charRange = [self characterRangeForGlyphRange:lineRange actualGlyphRange:NULL]; [self.textStorage enumerateAttributesInRange:charRange options:NSAttributedStringEnumerationLongestEffectiveRangeNotRequired usingBlock:^(NSDictionary * _Nonnull attrs, NSRange runRange, BOOL * _Nonnull stop) { NSRange runGlyphRange = [self glyphRangeForCharacterRange:runRange actualCharacterRange:NULL]; - if (attrs[(id)kCTRubyAnnotationAttributeName] != nil) { + NSFont* runFont = attrs[NSFontAttributeName]; + if (attrs[(id)kCTRubyAnnotationAttributeName] != nil || (verticalOrientation && [runFont.fontName isEqualToString:@"AppleColorEmoji"] && runFont.pointSize < 24)) { CGContextSaveGState(context); CGContextScaleCTM(context, 1.0, -1.0); - NSUInteger glyphIndex = runGlyphRange.location; - CTLineRef line = CTLineCreateWithAttributedString((CFAttributedStringRef) - [self.textStorage attributedSubstringFromRange:runRange]); + CGPoint position = [self locationForGlyphAtIndex:runGlyphRange.location]; + position.x += lineRect.origin.x + origin.x; + position.y += lineRect.origin.y + origin.y; + CTLineRef line; + if (attrs[(id)kCTRubyAnnotationAttributeName] == nil) { + NSMutableAttributedString* subString = [self.textStorage attributedSubstringFromRange:runRange].mutableCopy; + [subString addAttribute:NSVerticalGlyphFormAttributeName value:@1 range:NSMakeRange(0, runRange.length)]; + line = CTLineCreateWithAttributedString((CFAttributedStringRef)subString); + if (NSInteger superscript = [attrs[NSSuperscriptAttributeName] integerValue] != 0) { + position.y -= runFont.descender + superscript * 0.5; + } + } else { + line = CTLineCreateWithAttributedString + ((CFAttributedStringRef)[self.textStorage attributedSubstringFromRange:runRange]); + } CFArrayRef runs = CTLineGetGlyphRuns((CTLineRef)CFAutorelease(line)); for (CFIndex i = 0; i < CFArrayGetCount(runs); ++i) { - CGPoint position = [self locationForGlyphAtIndex:glyphIndex]; CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(runs, i); - CFIndex glyphCount = CTRunGetGlyphCount(run); CGAffineTransform matrix = CTRunGetTextMatrix(run); - CGPoint glyphOrigin = [textContainer.textView convertPointToBacking: - CGPointMake(origin.x + lineRect.origin.x + position.x, - -origin.y - lineRect.origin.y - position.y)]; - glyphOrigin = [textContainer.textView convertPointFromBacking: - CGPointMake(round(glyphOrigin.x), round(glyphOrigin.y))]; + CGPoint glyphOrigin = CGContextConvertPointToDeviceSpace(context, position); + glyphOrigin = CGContextConvertPointToUserSpace(context, CGPointMake(ceil(glyphOrigin.x), ceil(glyphOrigin.y))); matrix.tx = glyphOrigin.x; - matrix.ty = glyphOrigin.y; + matrix.ty = -glyphOrigin.y; CGContextSetTextMatrix(context, matrix); - CTRunDraw(run, context, CFRangeMake(0, glyphCount)); - glyphIndex += (NSUInteger)glyphCount; + CTRunDraw(run, context, CFRangeMake(0, 0)); + if (i < CFArrayGetCount(runs) - 1) { + position.x += CTRunGetTypographicBounds(run, CFRangeMake(0, 0), NULL, NULL, NULL); + } } CGContextRestoreGState(context); } else { - NSPoint position = [self locationForGlyphAtIndex:runGlyphRange.location]; - position.x += origin.x; - position.y += origin.y; - NSFont* runFont = attrs[NSFontAttributeName]; - NSString* baselineClass = attrs[(id)kCTBaselineClassAttributeName]; - NSPoint offset = NSZeroPoint; - if (!verticalOrientation && - ([baselineClass isEqualToString:(id)kCTBaselineClassIdeographicCentered] || - [baselineClass isEqualToString:(id)kCTBaselineClassMath])) { + NSPoint glyphOrigin = origin; + if (!verticalOrientation) { NSFont* refFont = attrs[(id)kCTBaselineReferenceInfoAttributeName][(id)kCTBaselineReferenceFont]; - offset.y += (runFont.ascender + runFont.descender - refFont.ascender - refFont.descender) * 0.5; - } else if (verticalOrientation && runFont.pointSize < 24 && - [runFont.fontName isEqualToString:@"AppleColorEmoji"]) { - NSInteger superscript = [attrs[NSSuperscriptAttributeName] integerValue]; - offset.x += runFont.capHeight - runFont.pointSize; - offset.y += (runFont.capHeight - runFont.pointSize) * - (superscript == 0 ? 0.25 : (superscript == 1 ? 0.5 / 0.55 : 0.0)); + glyphOrigin.y += (runFont.ascender + runFont.descender - refFont.ascender - refFont.descender) * 0.5; } - NSPoint glyphOrigin = [textContainer.textView convertPointToBacking: - NSMakePoint(position.x + offset.x, position.y + offset.y)]; - glyphOrigin = [textContainer.textView convertPointFromBacking: - NSMakePoint(round(glyphOrigin.x), round(glyphOrigin.y))]; - [super drawGlyphsForGlyphRange:runGlyphRange - atPoint:NSMakePoint(glyphOrigin.x - position.x, - glyphOrigin.y - position.y)]; + glyphOrigin = CGContextConvertPointToDeviceSpace(context, glyphOrigin); + glyphOrigin = CGContextConvertPointToUserSpace(context, NSMakePoint(ceil(glyphOrigin.x), ceil(glyphOrigin.y))); + [super drawGlyphsForGlyphRange:runGlyphRange atPoint:glyphOrigin]; } }]; }]; - CGContextClipToRect(context, textContainer.textView.superview.bounds); } - (BOOL) layoutManager:(NSLayoutManager*)layoutManager @@ -1924,12 +1870,14 @@ - (BOOL) layoutManager:(NSLayoutManager*)layoutManager baselineOffset:(inout CGFloat*)baselineOffset inTextContainer:(NSTextContainer*)textContainer forGlyphRange:(NSRange)glyphRange { + NSParagraphStyle* rulerAttrs = textContainer.textView.defaultParagraphStyle; + if (rulerAttrs == nil) { + return NO; + } BOOL didModify = NO; BOOL verticalOrientation = textContainer.layoutOrientation == NSTextLayoutOrientationVertical; NSRange charRange = [layoutManager characterRangeForGlyphRange:glyphRange actualGlyphRange:NULL]; - NSParagraphStyle* rulerAttrs = textContainer.textView.defaultParagraphStyle; - CGFloat lineSpacing = rulerAttrs.lineSpacing; CGFloat lineHeight = rulerAttrs.minimumLineHeight; CGFloat baseline = lineHeight * 0.5; if (!verticalOrientation) { @@ -1939,16 +1887,10 @@ - (BOOL) layoutManager:(NSLayoutManager*)layoutManager effectiveRange:NULL][(id)kCTBaselineReferenceFont]; baseline += (refFont.ascender + refFont.descender) * 0.5; } - CGFloat lineHeightDelta = lineFragmentUsedRect->size.height - lineHeight - lineSpacing; - if (fabs(lineHeightDelta) > 0.1) { - lineFragmentUsedRect->size.height = round(lineFragmentUsedRect->size.height - lineHeightDelta); - lineFragmentRect->size.height = round(lineFragmentRect->size.height - lineHeightDelta); - didModify |= YES; - } - CGFloat newBaselineOffset = floor(lineFragmentUsedRect->origin.y - lineFragmentRect->origin.y + baseline); - if (fabs(*baselineOffset - newBaselineOffset) > 0.1) { + CGFloat newBaselineOffset = round(lineFragmentUsedRect->origin.y - lineFragmentRect->origin.y + baseline); + if (isnormal(*baselineOffset - newBaselineOffset)) { *baselineOffset = newBaselineOffset; - didModify |= YES; + didModify = YES; } return didModify; } @@ -1960,8 +1902,9 @@ - (BOOL) layoutManager:(NSLayoutManager*)layoutManager } else { unichar charBeforeIndex = [layoutManager.textStorage.mutableString characterAtIndex:charIndex - 1]; - return self.contentBlock == kLinearCandidatesBlock ? charBeforeIndex == 0x1D - : charBeforeIndex != '\t'; + SquirrelTextView* textView = (SquirrelTextView*)layoutManager.firstTextView; + return textView.contentBlock == kLinearCandidateBlock ? charBeforeIndex == 0x1D + : charBeforeIndex != '\t'; } } @@ -1985,24 +1928,13 @@ - (NSRect) layoutManager:(NSLayoutManager*)layoutManager proposedLineFragment:(NSRect)proposedRect glyphPosition:(NSPoint)glyphPosition characterIndex:(NSUInteger)charIndex { - CGFloat width = 0.0; - if (charIndex > 0 && [layoutManager.textStorage.mutableString - characterAtIndex:charIndex] == 0x8B) { - NSRange rubyRange; - id rubyAnnotation = - [layoutManager.textStorage attribute:(id)kCTRubyAnnotationAttributeName - atIndex:charIndex - 1 - effectiveRange:&rubyRange]; - if (rubyAnnotation != nil) { - NSAttributedString* rubyString = [layoutManager.textStorage - attributedSubstringFromRange:rubyRange]; - CTLineRef line = CTLineCreateWithAttributedString((CFAttributedStringRef)rubyString); - CGRect rubyRect = CTLineGetBoundsWithOptions((CTLineRef)CFAutorelease(line), 0); - width = fdim(rubyRect.size.width, rubyString.size.width); + NSRect rect = {glyphPosition, NSZeroSize}; + if ([layoutManager.textStorage.mutableString characterAtIndex:charIndex] == 0x8B) { + if (NSValue* controlCharacterSize = [layoutManager.textStorage attribute:kControlCharacterSizeAttributeName atIndex:charIndex effectiveRange:NULL]) { + rect.size = controlCharacterSize.sizeValue; } } - return NSMakeRect(glyphPosition.x, glyphPosition.y, width, - NSMaxY(proposedRect) - glyphPosition.y); + return rect; } @end // SquirrelLayoutManager @@ -2011,11 +1943,36 @@ - (NSRect) layoutManager:(NSLayoutManager*)layoutManager #pragma mark - Typesetting extensions for TextKit 2 (MacOS 12 or higher) API_AVAILABLE(macos(12.0)) -@interface SquirrelTextLayoutFragment : NSTextLayoutFragment +@interface SquirrelTextLayoutFragment : NSTextLayoutFragment @end @implementation SquirrelTextLayoutFragment +- (NSTextLayoutOrientation)layoutOrientation { + return self.textLayoutManager.textContainer.layoutOrientation; +} + +- (CGRect)renderingSurfaceBounds { + CGRect bounds = super.renderingSurfaceBounds; + if (self.state == NSTextLayoutFragmentStateLayoutAvailable) { + SquirrelContentBlock contentBlock = ((SquirrelTextView*)self.textLayoutManager.textContainer.textView).contentBlock; + if (contentBlock == kLinearCandidateBlock || contentBlock == kStackedCandidateBlock) { + NSParagraphStyle* rulerStyle = self.textLayoutManager.textContainer.textView.defaultParagraphStyle; + if ([self.rangeInElement.location isEqual:self.textLayoutManager.documentRange.location]) { + CGFloat spacing = contentBlock == kStackedCandidateBlock ? + rulerStyle.paragraphSpacingBefore : floor(rulerStyle.lineSpacing * 0.5); + bounds.origin.y -= spacing; + bounds.size.height += spacing; + } + if ([self.rangeInElement.endLocation isEqual:self.textLayoutManager.documentRange.endLocation]) { + bounds.size.height += contentBlock == kStackedCandidateBlock ? + rulerStyle.paragraphSpacing : ceil(rulerStyle.lineSpacing * 0.5); + } + } + } + return bounds; +} + - (void)drawAtPoint:(CGPoint)point inContext:(CGContextRef)context { if (@available(macOS 14.0, *)) { @@ -2023,11 +1980,11 @@ - (void)drawAtPoint:(CGPoint)point point.x -= self.layoutFragmentFrame.origin.x; point.y -= self.layoutFragmentFrame.origin.y; } - BOOL verticalOrientation = self.textLayoutManager.textContainer.layoutOrientation == NSTextLayoutOrientationVertical; + CGContextResetClip(context); for (NSTextLineFragment* lineFrag in self.textLineFragments) { CGRect lineRect = CGRectOffset(lineFrag.typographicBounds, point.x, point.y); CGFloat baseline = CGRectGetMidY(lineRect); - if (!verticalOrientation) { + if (self.layoutOrientation == NSTextLayoutOrientationHorizontal) { NSFont* refFont = [lineFrag.attributedString attribute:(id)kCTBaselineReferenceInfoAttributeName atIndex:lineFrag.characterRange.location @@ -2035,10 +1992,10 @@ - (void)drawAtPoint:(CGPoint)point baseline += (refFont.ascender + refFont.descender) * 0.5; } CGPoint renderOrigin = CGPointMake(NSMinX(lineRect) + lineFrag.glyphOrigin.x, - floor(baseline) - lineFrag.glyphOrigin.y); - CGPoint deviceOrigin = CGContextConvertPointToDeviceSpace(context, renderOrigin); - renderOrigin = CGContextConvertPointToUserSpace(context, - CGPointMake(round(deviceOrigin.x), round(deviceOrigin.y))); + round(baseline) - lineFrag.glyphOrigin.y); + renderOrigin = CGContextConvertPointToDeviceSpace(context, renderOrigin); + renderOrigin = CGContextConvertPointToUserSpace(context, CGPointMake(ceil(renderOrigin.x), + ceil(renderOrigin.y))); [lineFrag drawAtPoint:renderOrigin inContext:context]; } } @@ -2048,17 +2005,10 @@ - (void)drawAtPoint:(CGPoint)point __attribute__((objc_direct_members)) API_AVAILABLE(macos(12.0)) @interface SquirrelTextLayoutManager : NSTextLayoutManager - -@property(nonatomic, readonly) SquirrelContentBlock contentBlock; - @end @implementation SquirrelTextLayoutManager -- (SquirrelContentBlock)contentBlock { - return ((SquirrelTextView*)self.textContainer.textView).contentBlock; -} - - (BOOL) textLayoutManager:(NSTextLayoutManager*)textLayoutManager shouldBreakLineBeforeLocation:(id)location hyphenating:(BOOL)hyphenating { @@ -2071,18 +2021,20 @@ - (BOOL) textLayoutManager:(NSTextLayoutManager*)textLayoutManager } else { unichar charBeforeIndex = [contentStorage.textStorage.mutableString characterAtIndex:charIndex - 1]; - return self.contentBlock == kLinearCandidatesBlock ? charBeforeIndex == 0x1D - : charBeforeIndex != '\t'; + SquirrelTextView* textView = (SquirrelTextView*)textLayoutManager.textContainer.textView; + return textView.contentBlock == kLinearCandidateBlock ? charBeforeIndex == 0x1D + : charBeforeIndex != '\t'; } } - (NSTextLayoutFragment*)textLayoutManager:(NSTextLayoutManager*)textLayoutManager textLayoutFragmentForLocation:(id)location inTextElement:(NSTextElement*)textElement { - NSTextRange* textRange = [NSTextRange.alloc initWithLocation:location - endLocation:textElement.elementRange.endLocation]; - return [SquirrelTextLayoutFragment.alloc - initWithTextElement:textElement range:textRange]; + NSTextRange* textRange = [NSTextRange.alloc + initWithLocation:location + endLocation:textElement.elementRange.endLocation]; + return [SquirrelTextLayoutFragment.alloc initWithTextElement:textElement + range:textRange]; } @end // SquirrelTextLayoutManager @@ -2190,7 +2142,7 @@ - (NSRect)blockRectForRange:(NSRange)charRange { usingBlock:^BOOL(NSTextRange* _Nullable segRange, CGRect segFrame, CGFloat baseline, NSTextContainer* _Nonnull textContainer) { if (!CGRectIsEmpty(segFrame)) { - if (NSIsEmptyRect(firstLineRect) || CGRectGetMinY(segFrame) < NSMaxY(firstLineRect) - 0.1) { + if (NSIsEmptyRect(firstLineRect) || CGRectGetMinY(segFrame) < nexttoward(NSMaxY(firstLineRect), -INFINITY)) { firstLineRect = NSUnionRect(segFrame, firstLineRect); } else { finalLineRect = NSUnionRect(segFrame, finalLineRect); @@ -2199,13 +2151,12 @@ - (NSRect)blockRectForRange:(NSRange)charRange { return YES; }]; - if (_contentBlock == kLinearCandidatesBlock && self.defaultParagraphStyle.lineSpacing > 0.1) { + if (_contentBlock == kLinearCandidateBlock && isnormal(self.defaultParagraphStyle.lineSpacing)) { firstLineRect.size.height += self.defaultParagraphStyle.lineSpacing; if (!NSIsEmptyRect(finalLineRect)) finalLineRect.size.height += self.defaultParagraphStyle.lineSpacing; } - if (NSIsEmptyRect(finalLineRect)) { return firstLineRect; } else { @@ -2217,29 +2168,37 @@ - (NSRect)blockRectForRange:(NSRange)charRange { NSRange glyphRange = [self.layoutManager glyphRangeForCharacterRange:charRange actualCharacterRange:NULL]; NSRange firstLineRange = NSMakeRange(NSNotFound, 0); - NSRect firstLineRect = [self.layoutManager - lineFragmentUsedRectForGlyphAtIndex:glyphRange.location - effectiveRange:&firstLineRange]; + NSRect firstLineRect = [self.layoutManager lineFragmentUsedRectForGlyphAtIndex:glyphRange.location + effectiveRange:&firstLineRange]; if (NSMaxRange(glyphRange) <= NSMaxRange(firstLineRange)) { CGFloat leading = [self.layoutManager locationForGlyphAtIndex:glyphRange.location].x; - CGFloat trailing = NSMaxRange(glyphRange) < NSMaxRange(firstLineRange) - ? [self.layoutManager locationForGlyphAtIndex:NSMaxRange(glyphRange)].x - : NSMaxX(firstLineRect); - return NSMakeRect(NSMinX(firstLineRect) + leading, NSMinY(firstLineRect), - trailing - leading, NSHeight(firstLineRect)); + CGFloat trailing = NSMaxRange(glyphRange) < NSMaxRange(firstLineRange) ? + [self.layoutManager locationForGlyphAtIndex:NSMaxRange(glyphRange)].x : NSMaxX(firstLineRect); + CGFloat height = NSHeight(firstLineRect); + if (self.contentBlock == kLinearCandidateBlock && + NSMaxRange(firstLineRange) == self.layoutManager.numberOfGlyphs && + isnormal(self.defaultParagraphStyle.lineSpacing)) { + height += self.defaultParagraphStyle.lineSpacing; + } + return NSMakeRect(NSMinX(firstLineRect) + leading, NSMinY(firstLineRect), trailing - leading, height); } else { - NSRect finalLineRect = [self.layoutManager - lineFragmentUsedRectForGlyphAtIndex:NSMaxRange(glyphRange) - 1 - effectiveRange:NULL]; + NSRange finalLineRange = NSMakeRange(NSNotFound, 0); + NSRect finalLineRect = [self.layoutManager lineFragmentUsedRectForGlyphAtIndex:NSMaxRange(glyphRange) - 1 + effectiveRange:&finalLineRange]; CGFloat containerWidth = NSWidth([self.layoutManager usedRectForTextContainer:self.textContainer]); - return NSMakeRect(0.0, NSMinY(firstLineRect), containerWidth, - NSMaxY(finalLineRect) - NSMinY(firstLineRect)); + CGFloat height = NSMaxY(finalLineRect) - NSMinY(firstLineRect); + if (self.contentBlock == kLinearCandidateBlock && + NSMaxRange(finalLineRange) == self.layoutManager.numberOfGlyphs && + isnormal(self.defaultParagraphStyle.lineSpacing)) { + height += self.defaultParagraphStyle.lineSpacing; + } + return NSMakeRect(0.0, NSMinY(firstLineRect), containerWidth, height); } } } -/* Calculate 3 rectangles encloding the text in range. TextPolygon.head & .tail are incomplete line fragments - TextPolygon.body is the complete line fragment in the middle if the range spans no less than one full line */ +/** Calculate 3 rectangles enclosing the text in range. `textPolygon.head` & `.tail` are incomplete line fragments + `textPolygon.body` is the complete line fragment in the middle if the range spans no less than one full line */ - (SquirrelTextPolygon)textPolygonForRange:(NSRange)charRange { SquirrelTextPolygon textPolygon = {.head = NSZeroRect, .body = NSZeroRect, .tail = NSZeroRect}; @@ -2259,7 +2218,7 @@ - (SquirrelTextPolygon)textPolygonForRange:(NSRange)charRange { usingBlock:^BOOL(NSTextRange* _Nullable segRange, CGRect segFrame, CGFloat baseline, NSTextContainer* _Nonnull textContainer) { if (!CGRectIsEmpty(segFrame)) { - if (NSIsEmptyRect(headLineRect) || CGRectGetMinY(segFrame) < NSMaxY(headLineRect) - 0.1) { + if (NSIsEmptyRect(headLineRect) || CGRectGetMinY(segFrame) < nexttoward(NSMaxY(headLineRect), -INFINITY)) { headLineRect = NSUnionRect(segFrame, headLineRect); headLineRange = [headLineRange textRangeByFormingUnionWithTextRange:segRange]; } else { @@ -2269,7 +2228,7 @@ - (SquirrelTextPolygon)textPolygonForRange:(NSRange)charRange { } return YES; }]; - if (_contentBlock == kLinearCandidatesBlock && self.defaultParagraphStyle.lineSpacing > 0.1) { + if (_contentBlock == kLinearCandidateBlock && isnormal(self.defaultParagraphStyle.lineSpacing)) { headLineRect.size.height += self.defaultParagraphStyle.lineSpacing; if (!NSIsEmptyRect(tailLineRect)) tailLineRect.size.height += self.defaultParagraphStyle.lineSpacing; @@ -2305,25 +2264,31 @@ - (SquirrelTextPolygon)textPolygonForRange:(NSRange)charRange { NSRange glyphRange = [self.layoutManager glyphRangeForCharacterRange:charRange actualCharacterRange:NULL]; NSRange headLineRange = NSMakeRange(NSNotFound, 0); - NSRect headLineRect = [self.layoutManager - lineFragmentUsedRectForGlyphAtIndex:glyphRange.location - effectiveRange:&headLineRange]; + NSRect headLineRect = [self.layoutManager lineFragmentUsedRectForGlyphAtIndex:glyphRange.location + effectiveRange:&headLineRange]; CGFloat leading = [self.layoutManager locationForGlyphAtIndex:glyphRange.location].x; if (NSMaxRange(headLineRange) >= NSMaxRange(glyphRange)) { - CGFloat trailing = NSMaxRange(glyphRange) < NSMaxRange(headLineRange) - ? [self.layoutManager locationForGlyphAtIndex:NSMaxRange(glyphRange)].x - : NSMaxX(headLineRect); - textPolygon.body = NSMakeRect(leading, NSMinY(headLineRect), - trailing - leading, NSHeight(headLineRect)); + CGFloat trailing = NSMaxRange(glyphRange) < NSMaxRange(headLineRange) ? + [self.layoutManager locationForGlyphAtIndex:NSMaxRange(glyphRange)].x : NSMaxX(headLineRect); + CGFloat height = NSHeight(headLineRect); + if (self.contentBlock == kLinearCandidateBlock && + NSMaxRange(headLineRange) == self.layoutManager.numberOfGlyphs && + isnormal(self.defaultParagraphStyle.lineSpacing)) { + height += self.defaultParagraphStyle.lineSpacing; + } + textPolygon.body = NSMakeRect(leading, NSMinY(headLineRect), trailing - leading, height); } else { CGFloat containerWidth = NSWidth([self.layoutManager usedRectForTextContainer:self.textContainer]); NSRange tailLineRange = NSMakeRange(NSNotFound, 0); - NSRect tailLineRect = [self.layoutManager - lineFragmentUsedRectForGlyphAtIndex:NSMaxRange(glyphRange) - 1 - effectiveRange:&tailLineRange]; - CGFloat trailing = NSMaxRange(glyphRange) < NSMaxRange(tailLineRange) - ? [self.layoutManager locationForGlyphAtIndex:NSMaxRange(glyphRange)].x - : NSMaxX(tailLineRect); + NSRect tailLineRect = [self.layoutManager lineFragmentUsedRectForGlyphAtIndex:NSMaxRange(glyphRange) - 1 + effectiveRange:&tailLineRange]; + if (self.contentBlock == kLinearCandidateBlock && + NSMaxRange(tailLineRange) == self.layoutManager.numberOfGlyphs && + isnormal(self.defaultParagraphStyle.lineSpacing)) { + tailLineRect.size.height += self.defaultParagraphStyle.lineSpacing; + } + CGFloat trailing = NSMaxRange(glyphRange) < NSMaxRange(tailLineRange) ? + [self.layoutManager locationForGlyphAtIndex:NSMaxRange(glyphRange)].x : NSMaxX(tailLineRect); if (NSMaxRange(tailLineRange) == NSMaxRange(glyphRange)) { if (glyphRange.location == headLineRange.location) { textPolygon.body = NSMakeRect(0.0, NSMinY(headLineRect), containerWidth, @@ -2360,8 +2325,7 @@ - (SquirrelTextPolygon)textPolygonForRange:(NSRange)charRange { @interface SquirrelView : NSView @property(nonatomic, readonly, strong, nonnull, class) SquirrelTheme* defaultTheme; -@property(nonatomic, readonly, strong, nonnull, class) API_AVAILABLE(macosx(10.14)) SquirrelTheme* darkTheme; -@property(nonatomic, readonly, strong, nonnull) SquirrelTheme* theme; +@property(nonatomic, readonly, strong, nonnull, class) API_AVAILABLE(macos(10.14)) SquirrelTheme* darkTheme; @property(nonatomic, readonly, strong, nonnull) SquirrelTextView* candidateView; @property(nonatomic, readonly, strong, nonnull) SquirrelTextView* preeditView; @property(nonatomic, readonly, strong, nonnull) SquirrelTextView* pagingView; @@ -2373,18 +2337,19 @@ @interface SquirrelView : NSView @property(nonatomic, readonly, strong, nonnull) NSTextStorage* pagingContents; @property(nonatomic, readonly, strong, nonnull) NSTextStorage* statusContents; @property(nonatomic, readonly, strong, nonnull) API_AVAILABLE(macos(10.14)) CAShapeLayer* shape; -@property(nonatomic, readonly, strong, nonnull) CALayer* logoLayer; @property(nonatomic, readonly, strong, nonnull) CAShapeLayer* backImageLayer; @property(nonatomic, readonly, strong, nonnull) CAShapeLayer* backColorLayer; @property(nonatomic, readonly, strong, nonnull) CAShapeLayer* borderLayer; -@property(nonatomic, readonly, strong, nonnull) CAShapeLayer* hilitedPreeditLayer; -@property(nonatomic, readonly, strong, nonnull) CAShapeLayer* functionButtonLayer; @property(nonatomic, readonly, strong, nonnull) CAShapeLayer* documentLayer; @property(nonatomic, readonly, strong, nonnull) CAShapeLayer* activePageLayer; @property(nonatomic, readonly, strong, nonnull) CAShapeLayer* gridLayer; @property(nonatomic, readonly, strong, nonnull) CAShapeLayer* nonHilitedCandidateLayer; @property(nonatomic, readonly, strong, nonnull) CAShapeLayer* hilitedCandidateLayer; @property(nonatomic, readonly, strong, nonnull) CAShapeLayer* clipLayer; +@property(nonatomic, readonly, strong, nonnull) CAShapeLayer* hilitedPreeditLayer; +@property(nonatomic, readonly, strong, nonnull) CAShapeLayer* functionButtonLayer; +@property(nonatomic, readonly, strong, nonnull) CALayer* logoLayer; +@property(nonatomic, readonly, strong, nonnull) SquirrelTheme* theme; @property(nonatomic, readonly, nullable) SquirrelTabularIndex* tabularIndices; @property(nonatomic, readonly, nullable) SquirrelTextPolygon* candidatePolygons; @property(nonatomic, readonly, nullable) NSRectArray sectionRects; @@ -2406,7 +2371,6 @@ @interface SquirrelView : NSView @property(nonatomic, readonly) SquirrelStyle style; @property(nonatomic) BOOL expanded; -- (void)updateColors; - (void)estimateBoundsOnScreen:(NSRect)screen withPreedit:(BOOL)hasPreedit candidates:(SquirrelCandidateInfo*)candidateInfos @@ -2442,7 +2406,6 @@ - (void)setStyle:(SquirrelStyle)style { forKey:@"theme"]; [self setValue:style == kDarkStyle ? @(NSScrollerKnobStyleLight) : @(NSScrollerKnobStyleDark) forKeyPath:@"scrollView.scrollerKnobStyle"]; - [self updateColors]; } } } @@ -2457,7 +2420,7 @@ - (instancetype)init { _preeditContents = NSTextStorage.alloc.init; _pagingContents = NSTextStorage.alloc.init; _statusContents = NSTextStorage.alloc.init; - _candidateView = [SquirrelTextView.alloc initWithContentBlock:kStackedCandidatesBlock storage:_candidateContents]; + _candidateView = [SquirrelTextView.alloc initWithContentBlock:kStackedCandidateBlock storage:_candidateContents]; _preeditView = [SquirrelTextView.alloc initWithContentBlock:kPreeditBlock storage:_preeditContents]; _pagingView = [SquirrelTextView.alloc initWithContentBlock:kPagingBlock storage:_pagingContents]; _statusView = [SquirrelTextView.alloc initWithContentBlock:kStatusBlock storage:_statusContents]; @@ -2475,8 +2438,9 @@ - (instancetype)init { _scrollView.hasVerticalScroller = YES; _scrollView.scrollerStyle = NSScrollerStyleOverlay; _scrollView.scrollerKnobStyle = NSScrollerKnobStyleDark; - _scrollView.contentView.wantsLayer = YES; - _scrollView.contentView.layer.geometryFlipped = YES; + _scrollView.wantsLayer = YES; + _scrollView.layer.geometryFlipped = YES; + _scrollView.layerContentsRedrawPolicy = NSViewLayerContentsRedrawOnSetNeedsDisplay; _style = kDefaultStyle; _theme = _defaultTheme; @@ -2494,9 +2458,10 @@ - (instancetype)init { _functionButtonLayer = CAShapeLayer.alloc.init; _logoLayer = CALayer.alloc.init; _borderLayer = CAShapeLayer.alloc.init; - _backImageLayer.actions = @{@"transform": NSNull.null}; _backColorLayer.fillRule = kCAFillRuleEvenOdd; _borderLayer.fillRule = kCAFillRuleEvenOdd; + _backImageLayer.actions = @{@"transform": NSNull.null}; + self.layer.actions = @{@"sublayers": NSNull.null}; [self.layer addSublayer:_backImageLayer]; [self.layer addSublayer:_backColorLayer]; [self.layer addSublayer:_hilitedPreeditLayer]; @@ -2510,72 +2475,26 @@ - (instancetype)init { _clipLayer = CAShapeLayer.alloc.init; _nonHilitedCandidateLayer = CAShapeLayer.alloc.init; _hilitedCandidateLayer = CAShapeLayer.alloc.init; - _documentLayer.fillRule = kCAFillRuleEvenOdd; _documentLayer.allowsGroupOpacity = YES; + _documentLayer.fillRule = kCAFillRuleEvenOdd; _activePageLayer.fillRule = kCAFillRuleEvenOdd; + _gridLayer.lineCap = kCALineCapRound; _gridLayer.lineWidth = 1.0; _clipLayer.fillColor = CGColorGetConstantColor(kCGColorWhite); + _documentView.layer.actions = @{@"sublayers": NSNull.null}; [_documentView.layer addSublayer:_documentLayer]; [_documentLayer addSublayer:_activePageLayer]; [_documentView.layer addSublayer:_gridLayer]; [_documentView.layer addSublayer:_nonHilitedCandidateLayer]; [_documentView.layer addSublayer:_hilitedCandidateLayer]; - _scrollView.contentView.layer.mask = _clipLayer; + _scrollView.layer.mask = _clipLayer; } return self; } -- (void)updateColors { - _backColorLayer.fillColor = (_theme.preeditBackColor ? : _theme.backColor).CGColor; - _borderLayer.fillColor = (_theme.borderColor ? : _theme.backColor).CGColor; - _documentLayer.fillColor = _theme.backColor.CGColor; - if (_theme.backImage.valid) { - _backImageLayer.fillColor = [NSColor colorWithPatternImage:_theme.backImage].CGColor; - _backImageLayer.hidden = NO; - } else { - _backImageLayer.hidden = YES; - } - if (_theme.hilitedPreeditBackColor != nil) { - _hilitedPreeditLayer.fillColor = _theme.hilitedPreeditBackColor.CGColor; - } else { - _hilitedPreeditLayer.hidden = YES; - } - if (_theme.candidateBackColor != nil) { - _nonHilitedCandidateLayer.fillColor = _theme.candidateBackColor.CGColor; - } else { - _nonHilitedCandidateLayer.hidden = YES; - } - if (_theme.hilitedCandidateBackColor != nil) { - _hilitedCandidateLayer.fillColor = _theme.hilitedCandidateBackColor.CGColor; - if (_theme.shadowSize > 0.1) { - _hilitedCandidateLayer.shadowOffset = CGSizeMake(_theme.shadowSize, _theme.shadowSize); - _hilitedCandidateLayer.shadowOpacity = 1.0; - } else { - _hilitedCandidateLayer.shadowOpacity = 0.0; - } - } else { - _hilitedCandidateLayer.hidden = YES; - } - if (_theme.tabular) { - _activePageLayer.fillColor = _theme.backColor.hooverColor.CGColor; - _gridLayer.strokeColor = [_theme.commentForeColor blendedColorWithFraction:0.8 - ofColor:_theme.backColor].CGColor; - } else { - _activePageLayer.hidden = YES; - _gridLayer.hidden = YES; - } - if (@available(macOS 10.14, *)) { - _backImageLayer.opacity = 1.0f - _theme.translucency; - _backColorLayer.opacity = 1.0f - _theme.translucency; - _borderLayer.opacity = 1.0f - _theme.translucency; - _documentLayer.opacity = 1.0f - _theme.translucency; - } -} - static BOOL anyTruncated(SquirrelCandidateInfo* array, NSUInteger count) { for (NSUInteger i = 0; i < count; ++i) { - if (array[i].truncated) - return YES; + if (array[i].truncated) return YES; } return NO; } @@ -2608,12 +2527,7 @@ - (void)estimateBoundsOnScreen:(NSRect)screen } if (candidateCount > 0) { _documentRect = _candidateView.layoutText; - if (@available(macOS 12.0, *)) { - _documentRect.size.height += _theme.lineSpacing; - } else { - _documentRect.size.height += _theme.linear ? 0.0 : _theme.lineSpacing; - } - + _documentRect.size.height += _theme.lineSpacing; if (_theme.linear && !anyTruncated(candidateInfos, candidateCount)) { _documentRect.size.width -= _theme.fullWidth; } @@ -2647,7 +2561,8 @@ - (void)layoutContents { NSPoint origin = NSMakePoint(_theme.borderInsets.width, _theme.borderInsets.height); if (!_statusView.hidden) { // status - _contentRect.origin = NSMakePoint(origin.x + ceil(_theme.fullWidth * 0.5), origin.y); + _contentRect.origin = NSMakePoint(origin.x + ceil(_theme.fullWidth * 0.5), + origin.y); return; } if (!_preeditView.hidden) { @@ -2657,8 +2572,6 @@ - (void)layoutContents { _contentRect = _preeditRect; } if (!_scrollView.hidden) { - _clipRect.size.width = NSWidth(_documentRect); - _clipRect.size.height = NSHeight(_documentRect) - _clippedHeight; if (!_preeditView.hidden) { _clipRect.origin.x = origin.x; _clipRect.origin.y = NSMaxY(_preeditRect) + _theme.preeditSpacing; @@ -2693,8 +2606,8 @@ - (void)drawViewWithHilitedCandidate:(NSUInteger)hilitedCandidate _preeditView.needsDisplayInRect = _preeditView.bounds; // invalidate Rect beyond bound of textview to clear any out-of-bound drawing from last round if (!_scrollView.hidden) - _candidateView.needsDisplayInRect = [_candidateView convertRect:_documentView.bounds - fromView:_documentView]; + _candidateView.needsDisplayInRect = [_documentView convertRect:_documentView.bounds + toView:_candidateView]; if (!_pagingView.hidden) _pagingView.needsDisplayInRect = _pagingView.bounds; } @@ -2713,40 +2626,48 @@ - (void)highlightCandidate:(NSUInteger)hilitedCandidate { NSUInteger priorActivePage = _hilitedCandidate / _theme.pageSize; NSUInteger newActivePage = hilitedCandidate / _theme.pageSize; if (newActivePage != priorActivePage) { - self.needsDisplayInRect = [_documentView convertRect:_sectionRects[priorActivePage] toView:self]; - _candidateView.needsDisplayInRect = [_documentView convertRect:_sectionRects[priorActivePage] toView:_candidateView]; + self.needsDisplayInRect = [_documentView convertRect:_sectionRects[priorActivePage] + toView:self]; + _candidateView.needsDisplayInRect = [_documentView convertRect:_sectionRects[priorActivePage] + toView:_candidateView]; } - self.needsDisplayInRect = [_documentView convertRect:_sectionRects[newActivePage] toView:self]; - _candidateView.needsDisplayInRect = [_documentView convertRect:_sectionRects[newActivePage] toView:_candidateView]; + self.needsDisplayInRect = [_documentView convertRect:_sectionRects[newActivePage] + toView:self]; + _candidateView.needsDisplayInRect = [_documentView convertRect:_sectionRects[newActivePage] + toView:_candidateView]; } else { self.needsDisplayInRect = _clipRect; - _candidateView.needsDisplayInRect = [_documentView convertRect:_documentView.bounds toView:_candidateView]; + _candidateView.needsDisplayInRect = [_documentView convertRect:_documentView.bounds + toView:_candidateView]; } _hilitedCandidate = hilitedCandidate; [self unclipHighlightedCandidate]; } - (void)unclipHighlightedCandidate { + if (!isnormal(_clippedHeight)) { + return; + } if (_expanded) { NSUInteger activePage = _hilitedCandidate / _theme.pageSize; - if (NSMinY(_sectionRects[activePage]) < NSMinY(_scrollView.documentVisibleRect) - 0.1) { + if (NSMinY(_sectionRects[activePage]) < nexttoward(NSMinY(_scrollView.documentVisibleRect), -INFINITY)) { NSPoint origin = _scrollView.contentView.bounds.origin; origin.y -= NSMinY(_scrollView.documentVisibleRect) - NSMinY(_sectionRects[activePage]); [_scrollView.contentView scrollToPoint:origin]; _scrollView.verticalScroller.doubleValue = NSMinY(_scrollView.documentVisibleRect) / _clippedHeight; - } else if (NSMaxY(_sectionRects[activePage]) > NSMaxY(_scrollView.documentVisibleRect) + 0.1) { + } else if (NSMaxY(_sectionRects[activePage]) > nexttoward(NSMaxY(_scrollView.documentVisibleRect), INFINITY)) { NSPoint origin = _scrollView.contentView.bounds.origin; origin.y += NSMaxY(_sectionRects[activePage]) - NSMaxY(_scrollView.documentVisibleRect); [_scrollView.contentView scrollToPoint:origin]; _scrollView.verticalScroller.doubleValue = NSMinY(_scrollView.documentVisibleRect) / _clippedHeight; } } else { - if (NSMinY(_scrollView.documentVisibleRect) > _candidatePolygons[_hilitedCandidate].minY() + 0.1) { + if (NSMinY(_scrollView.documentVisibleRect) > nexttoward(_candidatePolygons[_hilitedCandidate].minY(), INFINITY)) { NSPoint origin = _scrollView.contentView.bounds.origin; origin.y -= NSMinY(_scrollView.documentVisibleRect) - _candidatePolygons[_hilitedCandidate].minY(); [_scrollView.contentView scrollToPoint:origin]; _scrollView.verticalScroller.doubleValue = NSMinY(_scrollView.documentVisibleRect) / _clippedHeight; - } else if (NSMaxY(_scrollView.documentVisibleRect) < _candidatePolygons[_hilitedCandidate].maxY() - 0.1) { + } else if (NSMaxY(_scrollView.documentVisibleRect) < nexttoward(_candidatePolygons[_hilitedCandidate].maxY(), -INFINITY)) { NSPoint origin = _scrollView.contentView.bounds.origin; origin.y += _candidatePolygons[_hilitedCandidate].maxY() - NSMaxY(_scrollView.documentVisibleRect); [_scrollView.contentView scrollToPoint:origin]; @@ -2832,6 +2753,13 @@ - (NSBezierPath*)updateFunctionButtonLayer { NSBezierPath* buttonPath = [NSBezierPath squirclePathForRect:buttonRect cornerRadius:cornerRadius]; _functionButtonLayer.path = buttonPath.quartzPath; _functionButtonLayer.fillColor = buttonColor.CGColor; + if (isnormal(_theme.shadowSize)) { + _functionButtonLayer.shadowOffset = CGSizeMake(_theme.shadowSize, _theme.shadowSize); + _functionButtonLayer.shadowOpacity = 1.0; + _functionButtonLayer.shadowColor = [buttonColor shadowWithLevel:0.7].CGColor; + } else { + _functionButtonLayer.shadowOpacity = 0.0; + } _functionButtonLayer.hidden = NO; return buttonPath; } else { @@ -2849,10 +2777,11 @@ - (void)updateLayer { CGFloat hilitedCornerRadius = fmin(_theme.hilitedCornerRadius, _theme.candidateParagraphStyle.minimumLineHeight * 0.5); - /*** Preedit Rects **/ + /* Preedit */ _deleteBackRect = NSZeroRect; NSBezierPath* hilitedPreeditPath; if (!_preeditView.hidden) { + _preeditRect.origin = backgroundRect.origin; _preeditRect.size.width = NSWidth(backgroundRect); _preeditRect = [self backingAlignedRect:_preeditRect options:NSAlignAllEdgesNearest]; // Draw the highlighted part of preedit text @@ -2878,6 +2807,9 @@ - (void)updateLayer { NSMaxRange(_hilitedPreeditRange) + 2 == _preeditContents.length) { textPolygon.body.size.width += padding; } + if (NSMaxX(textPolygon.body) > NSMaxX(innerBox) - 2) { + textPolygon.body.size.width = NSMaxX(innerBox) - NSMinX(textPolygon.body); + } textPolygon.body = [self backingAlignedRect:NSIntersectionRect(textPolygon.body, innerBox) options:NSAlignAllEdgesNearest]; } @@ -2891,42 +2823,40 @@ - (void)updateLayer { textPolygon.tail = [self backingAlignedRect:NSIntersectionRect(textPolygon.tail, innerBox) options:NSAlignAllEdgesNearest]; } - hilitedPreeditPath = [NSBezierPath squirclePathForPolygon:textPolygon cornerRadius:hilitedCornerRadius]; + CGFloat cornerRadius = fmin(hilitedCornerRadius, fabs([_theme.preeditAttrs[NSFontAttributeName] descender])); + hilitedPreeditPath = [NSBezierPath squirclePathForPolygon:textPolygon cornerRadius:cornerRadius]; } _deleteBackRect = [_preeditView blockRectForRange:NSMakeRange(_preeditContents.length - 1, 1)]; _deleteBackRect.size.width += _theme.fullWidth; - _deleteBackRect.origin.x = NSMaxX(backgroundRect) - NSWidth(_deleteBackRect); - _deleteBackRect.origin.y += _theme.borderInsets.height; + _deleteBackRect.origin.x = NSMaxX(_preeditRect) - NSWidth(_deleteBackRect); + _deleteBackRect.origin.y = NSMaxY(_preeditRect) - NSHeight(_deleteBackRect); _deleteBackRect = [self backingAlignedRect:NSIntersectionRect(_deleteBackRect, _preeditRect) options:NSAlignAllEdgesNearest]; } - /*** Candidates Rects, all in documentView coordinates (except for `candidatesRect`) ***/ - _candidatePolygons = NULL; - _sectionRects = NULL; - _tabularIndices = NULL; + /* Candidates (in documentView coordinates, except for `clipRect`) */ + _candidatePolygons = new SquirrelTextPolygon[_candidateCount]; + _sectionRects = new NSRect[_theme.tabular ? _candidateCount / _theme.pageSize + 1 : 0]; + _tabularIndices = new SquirrelTabularIndex[_theme.tabular ? _candidateCount : 0]; NSBezierPath* clipPath; NSBezierPath* documentPath; NSBezierPath* gridPath; if (!_scrollView.hidden) { _clipRect.size.width = NSWidth(backgroundRect); _clipRect = [self backingAlignedRect:NSIntersectionRect(_clipRect, backgroundRect) - options:NSAlignAllEdgesNearest]; + options:NSAlignAllEdgesNearest]; _documentRect.size.width = NSWidth(backgroundRect); _documentRect = [_documentView backingAlignedRect:_documentRect options:NSAlignAllEdgesNearest]; clipPath = [NSBezierPath squirclePathForRect:_clipRect cornerRadius:hilitedCornerRadius]; documentPath = [NSBezierPath squirclePathForRect:_documentRect cornerRadius:hilitedCornerRadius]; // Store candidate enclosing polygons and draw the ones highlighted - _candidatePolygons = new SquirrelTextPolygon[_candidateCount]; if (_theme.linear) { // linear layout CGFloat gridOriginY; CGFloat tabInterval; NSUInteger lineNum = 0; NSRect sectionRect = _documentRect; if (_theme.tabular) { - _tabularIndices = new SquirrelTabularIndex[_candidateCount]; - _sectionRects = new NSRect[_candidateCount / _theme.pageSize + 1]; gridPath = NSBezierPath.bezierPath; gridOriginY = NSMinY(_documentRect); tabInterval = _theme.fullWidth * 2; @@ -2948,6 +2878,8 @@ - (void)updateLayer { candidatePolygon.body.size.width = NSWidth(_documentRect); } else if (!NSIsEmptyRect(candidatePolygon.tail)) { candidatePolygon.body.size.width += _theme.fullWidth; + } else if (NSMaxX(candidatePolygon.body) > NSMaxX(_documentRect) - 2) { + candidatePolygon.body.size.width = NSMaxX(_documentRect) - NSMinX(candidatePolygon.body); } candidatePolygon.body = [_documentView backingAlignedRect:NSIntersectionRect(candidatePolygon.body, _documentRect) options:NSAlignAllEdgesNearest]; @@ -2998,7 +2930,7 @@ - (void)updateLayer { } } - /*** Paging Rects ***/ + /* Paging */ _pageUpRect = NSZeroRect; _pageDownRect = NSZeroRect; _expanderRect = NSZeroRect; @@ -3011,33 +2943,30 @@ - (void)updateLayer { _pagingRect = [self backingAlignedRect:NSIntersectionRect(_pagingRect, backgroundRect) options:NSAlignAllEdgesNearest]; if (_theme.showPaging) { - _pageUpRect = [_pagingView blockRectForRange:NSMakeRange(0, 1)]; - _pageDownRect = [_pagingView blockRectForRange:NSMakeRange(_pagingContents.length - 1, 1)]; - _pageDownRect.origin.x += NSMinX(_pagingRect); + _pageUpRect = NSOffsetRect([_pagingView blockRectForRange:NSMakeRange(0, 1)], + NSMinX(_pagingRect), NSMinY(_pagingRect)); + _pageDownRect = NSOffsetRect([_pagingView blockRectForRange:NSMakeRange(_pagingContents.length - 1, 1)], + NSMinX(_pagingRect), NSMinY(_pagingRect)); _pageDownRect.size.width += _theme.fullWidth; - _pageDownRect.origin.y += NSMinY(_pagingRect); - _pageUpRect.origin.x += NSMinX(_pagingRect); // bypass the bug of getting wrong glyph position when tab is presented - _pageUpRect.size.width = NSWidth(_pageDownRect); - _pageUpRect.origin.y += NSMinY(_pagingRect); + _pageUpRect.size = _pageDownRect.size; _pageUpRect = [self backingAlignedRect:NSIntersectionRect(_pageUpRect, _pagingRect) options:NSAlignAllEdgesNearest]; _pageDownRect = [self backingAlignedRect:NSIntersectionRect(_pageDownRect, _pagingRect) options:NSAlignAllEdgesNearest]; } if (_theme.tabular) { - _expanderRect = [_pagingView blockRectForRange:NSMakeRange(_pagingContents.length / 2, 1)]; - _expanderRect.origin.x += NSMinX(_pagingRect); + _expanderRect = NSOffsetRect([_pagingView blockRectForRange:NSMakeRange(_pagingContents.length / 2, 1)], + NSMinX(_pagingRect), NSMinY(_pagingRect)); _expanderRect.size.width += _theme.fullWidth; - _expanderRect.origin.y += NSMinY(_pagingRect); _expanderRect = [self backingAlignedRect:NSIntersectionRect(_expanderRect, _pagingRect) options:NSAlignAllEdgesNearest]; } } - /*** Border Rects ***/ + /* Border */ CGFloat outerCornerRadius = fmin(_theme.cornerRadius, NSHeight(panelRect) * 0.5); - CGFloat innerCornerRadius = clamp(_theme.hilitedCornerRadius, + CGFloat innerCornerRadius = clamp(hilitedCornerRadius, outerCornerRadius - fmin(_theme.borderInsets.width, _theme.borderInsets.height), NSHeight(backgroundRect) * 0.5); NSBezierPath* panelPath; @@ -3050,10 +2979,12 @@ - (void)updateLayer { mainPanelRect.size.height -= NSHeight(_pagingRect); NSRect tailPanelRect = NSInsetRect(NSOffsetRect(_pagingRect, 0, _theme.borderInsets.height), -_theme.borderInsets.width, 0); - panelPath = [NSBezierPath squirclePathForPolygon:(SquirrelTextPolygon){mainPanelRect, tailPanelRect, NSZeroRect} cornerRadius:outerCornerRadius]; + panelPath = [NSBezierPath squirclePathForPolygon:(SquirrelTextPolygon){mainPanelRect, tailPanelRect, NSZeroRect} + cornerRadius:outerCornerRadius]; NSRect mainBackgroundRect = backgroundRect; mainBackgroundRect.size.height -= NSHeight(_pagingRect); - backgroundPath = [NSBezierPath squirclePathForPolygon:(SquirrelTextPolygon){mainBackgroundRect, _pagingRect, NSZeroRect} cornerRadius:innerCornerRadius]; + backgroundPath = [NSBezierPath squirclePathForPolygon:(SquirrelTextPolygon){mainBackgroundRect, _pagingRect, NSZeroRect} + cornerRadius:innerCornerRadius]; } NSBezierPath* borderPath = panelPath.copy; [borderPath appendBezierPath:backgroundPath]; @@ -3063,32 +2994,30 @@ - (void)updateLayer { [flip scaleXBy:1 yBy:-1]; NSBezierPath* shapePath = [flip transformBezierPath:panelPath]; - /*** Draw into layers ***/ + /* Draw into layers */ if (@available(macOS 10.14, *)) { _shape.path = shapePath.quartzPath; } // highlighted preedit layer if (hilitedPreeditPath != nil && _theme.hilitedPreeditBackColor != nil) { _hilitedPreeditLayer.path = hilitedPreeditPath.quartzPath; + _hilitedPreeditLayer.fillColor = _theme.hilitedPreeditBackColor.CGColor; _hilitedPreeditLayer.hidden = NO; } else { _hilitedPreeditLayer.hidden = YES; } // highlighted candidate layer if (!_scrollView.hidden) { - NSAffineTransform* translate = NSAffineTransform.transform; - [translate translateXBy:-NSMinX(_clipRect) yBy:-NSMinY(_clipRect)]; - _clipLayer.path = [translate transformBezierPath:clipPath].quartzPath; + _clipLayer.path = [NSBezierPath squirclePathForRect:_scrollView.bounds cornerRadius:hilitedCornerRadius].quartzPath; NSBezierPath* activePagePath; - BOOL expanded = _candidateCount > _theme.pageSize; - if (expanded) { + if (_expanded) { NSRect activePageRect = _sectionRects[_hilitedCandidate / _theme.pageSize]; activePagePath = [NSBezierPath squirclePathForRect:activePageRect cornerRadius:hilitedCornerRadius]; [documentPath appendBezierPath:activePagePath]; } if (_theme.candidateBackColor != nil) { NSBezierPath* nonHilitedCandidatePath = NSBezierPath.bezierPath; - BOOL stackColors = _theme.stackColors && _theme.candidateBackColor.alphaComponent < 0.999; + BOOL stackColors = _theme.stackColors && _theme.candidateBackColor.alphaComponent < nexttoward(1.0, 0.0); for (NSUInteger i = 0; i < _candidateCount; ++i) { if (i != _hilitedCandidate) { NSBezierPath* candidatePath = _theme.linear @@ -3096,11 +3025,12 @@ - (void)updateLayer { : [NSBezierPath squirclePathForRect:_candidatePolygons[i].body cornerRadius:hilitedCornerRadius]; [nonHilitedCandidatePath appendBezierPath:candidatePath]; if (stackColors) - [(expanded && i / _theme.pageSize == _hilitedCandidate / _theme.pageSize + [(_expanded && i / _theme.pageSize == _hilitedCandidate / _theme.pageSize ? activePagePath : documentPath) appendBezierPath:candidatePath]; } } _nonHilitedCandidateLayer.path = nonHilitedCandidatePath.quartzPath; + _nonHilitedCandidateLayer.fillColor = _theme.candidateBackColor.CGColor; _nonHilitedCandidateLayer.hidden = NO; } else { _nonHilitedCandidateLayer.hidden = YES; @@ -3109,22 +3039,35 @@ - (void)updateLayer { NSBezierPath* hilitedCandidatePath = _theme.linear ? [NSBezierPath squirclePathForPolygon:_candidatePolygons[_hilitedCandidate] cornerRadius:hilitedCornerRadius] : [NSBezierPath squirclePathForRect:_candidatePolygons[_hilitedCandidate].body cornerRadius:hilitedCornerRadius]; - if (_theme.stackColors && _theme.hilitedCandidateBackColor.alphaComponent < 0.999) - [(expanded ? activePagePath : documentPath) appendBezierPath:hilitedCandidatePath]; + if (_theme.stackColors && _theme.hilitedCandidateBackColor.alphaComponent < nexttoward(1.0, 0.0)) + [(_expanded ? activePagePath : documentPath) appendBezierPath:hilitedCandidatePath]; _hilitedCandidateLayer.path = hilitedCandidatePath.quartzPath; + _hilitedCandidateLayer.fillColor = _theme.hilitedCandidateBackColor.CGColor; _hilitedCandidateLayer.hidden = NO; + if (isnormal(_theme.shadowSize)) { + _hilitedCandidateLayer.shadowOffset = CGSizeMake(_theme.shadowSize, _theme.shadowSize); + _hilitedCandidateLayer.shadowOpacity = 1.0; + _hilitedCandidateLayer.shadowColor = [_theme.hilitedCandidateBackColor shadowWithLevel:0.7].CGColor; + } else { + _hilitedCandidateLayer.shadowOpacity = 0.0; + } } else { _hilitedCandidateLayer.hidden = YES; } - if (expanded) { + if (_expanded) { _activePageLayer.path = activePagePath.quartzPath; + _activePageLayer.fillColor = _theme.backColor.hooverColor.CGColor; _activePageLayer.hidden = NO; } else { _activePageLayer.hidden = YES; } _documentLayer.path = documentPath.quartzPath; + _documentLayer.fillColor = _theme.backColor.CGColor; if (gridPath != nil) { _gridLayer.path = gridPath.quartzPath; + _gridLayer.strokeColor = [_theme.commentForeColor + blendedColorWithFraction:0.8 + ofColor:_theme.backColor].CGColor; _gridLayer.hidden = NO; } else { _gridLayer.hidden = YES; @@ -3146,7 +3089,7 @@ - (void)updateLayer { _logoLayer.hidden = YES; } // background image (pattern style) layer - if (_theme.backImage != nil) { + if (_theme.backImage != nil && _theme.backImage.valid) { NSAffineTransform* transform = NSAffineTransform.transform; if (_theme.vertical) { [transform rotateByDegrees:90.0]; @@ -3154,14 +3097,17 @@ - (void)updateLayer { [transform translateXBy:-NSMinX(backgroundRect) yBy:-NSMinY(backgroundRect)]; _backImageLayer.path = [transform transformBezierPath:backgroundPath].quartzPath; _backImageLayer.affineTransform = CGAffineTransformInvert(transform.transformMatrix); + _backImageLayer.hidden = NO; + } else { + _backImageLayer.hidden = YES; } // background color layer - if (!NSIsEmptyRect(_preeditRect) || !NSIsEmptyRect(_pagingRect)) { + if (!_statusView.hidden || !NSIsEmptyRect(_preeditRect) || !NSIsEmptyRect(_pagingRect)) { if (clipPath != nil) { NSBezierPath* nonCandidatePath = backgroundPath.copy; [nonCandidatePath appendBezierPath:clipPath]; if (_theme.stackColors && _theme.hilitedPreeditBackColor != nil && - _theme.hilitedPreeditBackColor.alphaComponent < 0.999) { + _theme.hilitedPreeditBackColor.alphaComponent < nexttoward(1.0, 0.0)) { if (hilitedPreeditPath != nil) [nonCandidatePath appendBezierPath:hilitedPreeditPath]; if (functionButtonPath != nil) @@ -3171,12 +3117,16 @@ - (void)updateLayer { } else { _backColorLayer.path = backgroundPath.quartzPath; } + _backColorLayer.fillColor = (_theme.preeditBackColor ? : _theme.backColor).CGColor; _backColorLayer.hidden = NO; } else { _backColorLayer.hidden = YES; } // border layer _borderLayer.path = borderPath.quartzPath; + _borderLayer.fillColor = (_theme.borderColor ? : _theme.backColor).CGColor; + + [self unclipHighlightedCandidate]; } - (SquirrelIndex)indexForMouseSpot:(NSPoint)spot { @@ -3203,10 +3153,10 @@ - (SquirrelIndex)indexForMouseSpot:(NSPoint)spot { @end // SquirrelView -/* In order to put SquirrelPanel above client app windows, - SquirrelPanel needs to be assigned a window level higher - than kCGHelpWindowLevelKey that the system tooltips use. - This class makes system-alike tooltips above SquirrelPanel */ +/** In order to put SquirrelPanel above client app windows, + SquirrelPanel needs to be assigned a window level higher + than `kCGHelpWindowLevelKey` that the system tooltips use. + This class makes system-alike tooltips above SquirrelPanel */ @interface SquirrelToolTip : NSWindow typedef NS_CLOSED_ENUM(NSInteger, SquirrelDisplayType) { @@ -3215,8 +3165,8 @@ typedef NS_CLOSED_ENUM(NSInteger, SquirrelDisplayType) { @property(nonatomic, readonly, direct) BOOL empty; -- (void)showWithToolTip:(NSString* _Nullable)toolTip - display:(SquirrelDisplayType)display __attribute__((objc_direct)); +- (void)showToolTip:(NSString* _Nullable)toolTip + display:(SquirrelDisplayType)display __attribute__((objc_direct)); - (void)delayedShow:(NSTimer* _Nonnull)timer; - (void)delayedHide:(NSTimer* _Nonnull)timer; - (void)hide __attribute__((objc_direct)); @@ -3241,13 +3191,17 @@ - (instancetype)init { self.opaque = YES; self.hasShadow = YES; NSView* contentView = NSView.alloc.init; - _backView = NSVisualEffectView.alloc.init; - _backView.material = NSVisualEffectMaterialToolTip; - [contentView addSubview:_backView]; - _textView = NSTextField.alloc.init; - _textView.bezeled = YES; - _textView.bezelStyle = NSTextFieldSquareBezel; - _textView.selectable = NO; + if (@available(macOS 10.14, *)) { + _backView = NSVisualEffectView.alloc.init; + _backView.material = NSVisualEffectMaterialToolTip; + [contentView addSubview:_backView]; + _textView = NSTextField.alloc.init; + _textView.bezeled = YES; + _textView.bezelStyle = NSTextFieldSquareBezel; + _textView.selectable = NO; + _textView.usesSingleLineMode = NO; + _textView.lineBreakMode = NSLineBreakByWordWrapping; + } [contentView addSubview:_textView]; self.contentView = contentView; _empty = YES; @@ -3255,21 +3209,24 @@ - (instancetype)init { return self; } -- (void)showWithToolTip:(NSString*)toolTip - display:(SquirrelDisplayType)display { +- (void)showToolTip:(NSString*)toolTip + display:(SquirrelDisplayType)display { if (display == kDisplayNone || toolTip.length == 0) { [self clear]; return; } - SquirrelPanel* panel = NSApp.squirrelAppDelegate.panel; + SquirrelPanel* panel = NSApp.SquirrelAppDelegate.panel; self.level = panel.level + 1; _empty = NO; _textView.stringValue = toolTip; + _textView.preferredMaxLayoutWidth = NSWidth(panel.screen.visibleFrame) * 0.25; _textView.font = [NSFont toolTipsFontOfSize:0]; _textView.textColor = NSColor.windowFrameTextColor; [_textView sizeToFit]; NSSize contentSize = _textView.fittingSize; + contentSize.width += 3; + contentSize.height += 3; NSPoint spot = NSEvent.mouseLocation; NSCursor* cursor = NSCursor.currentSystemCursor; @@ -3279,10 +3236,10 @@ - (void)showWithToolTip:(NSString*)toolTip contentSize.width, contentSize.height); NSRect screenRect = panel.screen.visibleFrame; - if (NSMaxX(windowRect) > NSMaxX(screenRect) - 0.1) { + if (NSMaxX(windowRect) > nexttoward(NSMaxX(screenRect), -INFINITY)) { windowRect.origin.x = NSMaxX(screenRect) - NSWidth(windowRect); } - if (NSMinY(windowRect) < NSMinY(screenRect) + 0.1) { + if (NSMinY(windowRect) < nexttoward(NSMinY(screenRect), INFINITY)) { windowRect.origin.y = NSMinY(screenRect); } windowRect = [panel.screen backingAlignedRect:windowRect @@ -3439,8 +3396,10 @@ - (void)getLocked __attribute__((objc_direct)) { - (void)setIbeamRect:(NSRect)IbeamRect { if (!NSEqualRects(_IbeamRect, IbeamRect)) { _IbeamRect = IbeamRect; - _needsRedraw |= YES; - if (!NSIntersectsRect(IbeamRect, _screen.frame)) { + _needsRedraw = YES; + if (NSEqualRects(IbeamRect, NSZeroRect)) { + _initPosition = YES; + } else if (!NSIntersectsRect(_screen.frame, IbeamRect) && !NSContainsRect(_screen.frame, IbeamRect)) { [self willChangeValueForKey:@"screen"]; [self updateScreen]; [self didChangeValueForKey:@"screen"]; @@ -3450,8 +3409,10 @@ - (void)setIbeamRect:(NSRect)IbeamRect { } - (void)windowDidChangeBackingProperties:(NSNotification*)notification { - if ([notification.object isEqualTo:self]) - [self updateDisplayParameters]; + if ([notification.object isMemberOfClass:SquirrelPanel.class]) { + SquirrelPanel* panel = notification.object; + [panel updateDisplayParameters]; + } } - (void)observeValueForKeyPath:(NSString*)keyPath @@ -3493,11 +3454,15 @@ - (instancetype)init { self.backgroundColor = NSColor.clearColor; self.delegate = self; self.acceptsMouseMovedEvents = YES; + self.displaysWhenScreenProfileChanges = YES; + self.worksWhenModal = YES; NSFlippedView* contentView = NSFlippedView.alloc.init; contentView.autoresizesSubviews = NO; _view = SquirrelView.alloc.init; + _toolTip = SquirrelToolTip.alloc.init; if (@available(macOS 10.14, *)) { + _toolTip.appearanceSource = self; _back = NSVisualEffectView.alloc.init; _back.blendingMode = NSVisualEffectBlendingModeBehindWindow; _back.material = NSVisualEffectMaterialHUDWindow; @@ -3515,8 +3480,7 @@ - (instancetype)init { self.contentView = contentView; _optionSwitcher = SquirrelOptionSwitcher.alloc.init; - _toolTip = SquirrelToolTip.alloc.init; - _toolTip.appearanceSource = self; + self.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua]; [self updateDisplayParameters]; } @@ -3545,7 +3509,7 @@ - (void)updateDisplayParameters __attribute__((objc_direct)) { _view.statusView.boundsOrigin = NSZeroPoint; _view.scrollView.lineScroll = _view.theme.candidateParagraphStyle.minimumLineHeight; - _view.candidateView.contentBlock = _view.theme.linear ? kLinearCandidatesBlock : kStackedCandidatesBlock; + _view.candidateView.contentBlock = _view.theme.linear ? kLinearCandidateBlock : kStackedCandidateBlock; _view.candidateView.defaultParagraphStyle = _view.theme.candidateParagraphStyle; _view.preeditView.defaultParagraphStyle = _view.theme.preeditParagraphStyle; _view.pagingView.defaultParagraphStyle = _view.theme.pagingParagraphStyle; @@ -3557,12 +3521,11 @@ - (void)updateDisplayParameters __attribute__((objc_direct)) { [_view.theme.textAttrs[NSFontAttributeName] pointSize] / 144.0); _textWidthLimit = ceil((_view.theme.vertical ? NSHeight(screenRect) : NSWidth(screenRect)) * textWidthRatio - _view.theme.borderInsets.width * 2 - _view.theme.fullWidth); - if (_view.theme.lineLength > 0.1) { - _textWidthLimit = fmin(_view.theme.lineLength, _textWidthLimit); + if (isnormal(_view.theme.lineLength) && _view.theme.lineLength < _textWidthLimit) { + _textWidthLimit = _view.theme.lineLength; } if (_view.theme.tabular) { - _textWidthLimit = floor((_textWidthLimit + _view.theme.fullWidth) / (_view.theme.fullWidth * 2)) * - (_view.theme.fullWidth * 2) - _view.theme.fullWidth; + _textWidthLimit = floor(_textWidthLimit / (_view.theme.fullWidth * 2)) * (_view.theme.fullWidth * 2); } _view.candidateView.textContainer.size = NSMakeSize(_textWidthLimit, CGFLOAT_MAX); _view.preeditView.textContainer.size = NSMakeSize(_textWidthLimit, CGFLOAT_MAX); @@ -3581,24 +3544,31 @@ - (void)updateDisplayParameters __attribute__((objc_direct)) { _view.logoLayer.contents = logoImage; _view.logoLayer.affineTransform = _view.theme.vertical ? CGAffineTransformMakeRotation(-M_PI_2) : CGAffineTransformIdentity; - if (NSImage* defaultBackImage = SquirrelView.defaultTheme.backImage; defaultBackImage.valid) { + if (NSImage* backImage = _view.theme.backImage; backImage.valid) { CGFloat widthLimit = _textWidthLimit + SquirrelView.defaultTheme.fullWidth; - defaultBackImage.resizingMode = NSImageResizingModeStretch; - defaultBackImage.size = SquirrelView.defaultTheme.vertical - ? NSMakeSize(defaultBackImage.size.width / defaultBackImage.size.height * widthLimit, widthLimit) - : NSMakeSize(widthLimit, defaultBackImage.size.height / defaultBackImage.size.width * widthLimit); + backImage.resizingMode = NSImageResizingModeStretch; + backImage.size = _view.theme.vertical + ? NSMakeSize(backImage.size.width / backImage.size.height * widthLimit, widthLimit) + : NSMakeSize(widthLimit, backImage.size.height / backImage.size.width * widthLimit); + _view.backImageLayer.fillColor = [NSColor colorWithPatternImage:backImage].CGColor; } if (@available(macOS 10.14, *)) { - _back.hidden = _view.theme.translucency < 0.001f; - if (NSImage* darkBackImage = SquirrelView.darkTheme.backImage; darkBackImage.valid) { - CGFloat widthLimit = _textWidthLimit + SquirrelView.darkTheme.fullWidth; - darkBackImage.resizingMode = NSImageResizingModeStretch; - darkBackImage.size = SquirrelView.darkTheme.vertical - ? NSMakeSize(darkBackImage.size.width / darkBackImage.size.height * widthLimit, widthLimit) - : NSMakeSize(widthLimit, darkBackImage.size.height / darkBackImage.size.width * widthLimit); - } + _back.hidden = isfinite(_view.theme.translucency) && !isnormal(_view.theme.translucency); + _view.backImageLayer.opacity = 1.0f - _view.theme.translucency; + _view.backColorLayer.opacity = 1.0f - _view.theme.translucency; + _view.borderLayer.opacity = 1.0f - _view.theme.translucency; + _view.documentLayer.opacity = 1.0f - _view.theme.translucency; + } + if (self.isVisible) { + [self showPreedit:[_view.preeditContents.string substringToIndex:fmax(0UL, _view.preeditContents.length - 2)] + selRange:_view.hilitedPreeditRange + caretPos:_caretPos + candidateIndices:_indexRange + hilitedCandidate:_hilitedCandidate + pageNum:_pageNum + finalPage:_finalPage + didCompose:YES]; } - [_view updateColors]; } - (NSUInteger)candidateIndexOnDirection:(SquirrelIndex)arrowKey { @@ -3735,11 +3705,12 @@ - (void)sendEvent:(NSEvent*)event { if (cursorIndex >= 0 && cursorIndex < _indexRange.length && _hilitedCandidate != cursorIndex) { [self highlightFunctionButton:kVoidSymbol displayToolTip:kDisplayNone]; if (_view.theme.linear && _view.candidateInfos[cursorIndex].truncated) { - [_toolTip showWithToolTip:[_view.candidateContents.mutableString substringWithRange: - _view.candidateInfos[cursorIndex].candidateRange()] - display:kDisplayNow]; + [_toolTip showToolTip:[_view.candidateContents.mutableString substringWithRange: + _view.candidateInfos[cursorIndex].candidateRange()] + display:kDisplayNow]; } else { - [_toolTip showWithToolTip:NSLocalizedString(@"candidate", nil) display:kDisplayOnRequest]; + [_toolTip showToolTip:[NSBundle.mainBundle localizedStringForKey:@"candidate" value:nil table:@"Tooltips"] + display:kDisplayOnRequest]; } self.sectionNum = cursorIndex / _view.theme.pageSize; [_inputController performAction:kHIGHLIGHT @@ -3766,7 +3737,7 @@ - (void)sendEvent:(NSEvent*)event { scrollLocus = NSZeroPoint; scrollByLine = NO; } else if ((event.phase == NSEventPhaseNone || event.momentumPhase == NSEventPhaseNone) && - !isnan(scrollLocus.x) && !isnan(scrollLocus.y)) { + isfinite(scrollLocus.x) && isfinite(scrollLocus.y)) { CGFloat scrollDistance = 0.0; // determine scrolling direction by confining to sectors within ±30º of any axis if (fabs(event.scrollingDeltaX) > fabs(event.scrollingDeltaY) * sqrt(3.0)) { @@ -3779,7 +3750,7 @@ - (void)sendEvent:(NSEvent*)event { // compare accumulated locus length against threshold and limit paging to max once if (scrollLocus.x > scrollThreshold) { if (_view.theme.vertical && - NSMaxY(_view.scrollView.documentVisibleRect) < NSMaxY(_view.documentRect) - 0.1) { + NSMaxY(_view.scrollView.documentVisibleRect) < nexttoward(NSMaxY(_view.documentRect), -INFINITY)) { scrollByLine = YES; NSPoint origin = _view.scrollView.contentView.bounds.origin; origin.y += fmin(scrollDistance, @@ -3792,7 +3763,7 @@ - (void)sendEvent:(NSEvent*)event { scrollLocus = NSMakePoint(INFINITY, INFINITY); } } else if (scrollLocus.y > scrollThreshold) { - if (NSMinY(_view.scrollView.documentVisibleRect) > NSMinY(_view.documentRect) + 0.1) { + if (NSMinY(_view.scrollView.documentVisibleRect) > nexttoward(NSMinY(_view.documentRect), INFINITY)) { scrollByLine = YES; NSPoint origin = _view.scrollView.contentView.bounds.origin; origin.y -= fmin(scrollDistance, @@ -3805,7 +3776,7 @@ - (void)sendEvent:(NSEvent*)event { } } else if (scrollLocus.x < -scrollThreshold) { if (_view.theme.vertical && - NSMinY(_view.scrollView.documentVisibleRect) > NSMinY(_view.documentRect) + 0.1) { + NSMinY(_view.scrollView.documentVisibleRect) > nexttoward(NSMinY(_view.documentRect), INFINITY)) { scrollByLine = YES; NSPoint origin = _view.scrollView.contentView.bounds.origin; origin.y += fmax(scrollDistance, @@ -3818,7 +3789,7 @@ - (void)sendEvent:(NSEvent*)event { scrollLocus = NSMakePoint(INFINITY, INFINITY); } } else if (scrollLocus.y < -scrollThreshold) { - if (NSMaxY(_view.scrollView.documentVisibleRect) < NSMaxY(_view.documentRect) - 0.1) { + if (NSMaxY(_view.scrollView.documentVisibleRect) < nexttoward(NSMaxY(_view.documentRect), -INFINITY)) { scrollByLine = YES; NSPoint origin = _view.scrollView.contentView.bounds.origin; origin.y -= fmax(scrollDistance, @@ -3860,15 +3831,15 @@ - (void)highlightCandidate:(NSUInteger)hilitedCandidate __attribute__((objc_dire NSColor* labelColor = priorCandidate == priorHilitedCandidate && _sectionNum == priorSectionNum ? _view.theme.labelForeColor : _view.theme.dimmedLabelForeColor; [_view.candidateContents addAttribute:NSForegroundColorAttributeName - value:labelColor - range:priorRange.labelRange()]; + value:labelColor + range:priorRange.labelRange()]; if (priorCandidate == priorHilitedCandidate) { [_view.candidateContents addAttribute:NSForegroundColorAttributeName - value:_view.theme.textForeColor - range:priorRange.textRange()]; + value:_view.theme.textForeColor + range:priorRange.textRange()]; [_view.candidateContents addAttribute:NSForegroundColorAttributeName - value:_view.theme.commentForeColor - range:priorRange.commentRange()]; + value:_view.theme.commentForeColor + range:priorRange.commentRange()]; } } NSUInteger newCandidate = i + _sectionNum * _view.theme.pageSize; @@ -3878,15 +3849,15 @@ - (void)highlightCandidate:(NSUInteger)hilitedCandidate __attribute__((objc_dire NSColor* labelColor = newCandidate == hilitedCandidate ? _view.theme.hilitedLabelForeColor : _view.theme.labelForeColor; [_view.candidateContents addAttribute:NSForegroundColorAttributeName - value:labelColor - range:newRange.labelRange()]; + value:labelColor + range:newRange.labelRange()]; if (newCandidate == hilitedCandidate) { [_view.candidateContents addAttribute:NSForegroundColorAttributeName - value:_view.theme.hilitedTextForeColor - range:newRange.textRange()]; + value:_view.theme.hilitedTextForeColor + range:newRange.textRange()]; [_view.candidateContents addAttribute:NSForegroundColorAttributeName - value:_view.theme.hilitedCommentForeColor - range:newRange.commentRange()]; + value:_view.theme.hilitedCommentForeColor + range:newRange.commentRange()]; } } } @@ -3926,32 +3897,45 @@ - (void)highlightFunctionButton:(SquirrelIndex)functionButton value:_view.theme.hilitedPreeditForeColor range:NSMakeRange(0, 1)]; functionButton = _pageNum == 0 ? kHomeKey : kPageUpKey; - [_toolTip showWithToolTip:NSLocalizedString(_pageNum == 0 ? @"home" : @"page_up", nil) display:display]; break; case kPageDownKey: [_view.pagingContents addAttribute:NSForegroundColorAttributeName value:_view.theme.hilitedPreeditForeColor range:NSMakeRange(_view.pagingContents.length - 1, 1)]; functionButton = _finalPage ? kEndKey : kPageDownKey; - [_toolTip showWithToolTip:NSLocalizedString(_finalPage ? @"end" : @"page_down", nil) display:display]; break; case kExpandButton: [_view.pagingContents addAttribute:NSForegroundColorAttributeName value:_view.theme.hilitedPreeditForeColor range:NSMakeRange(_view.pagingContents.length / 2, 1)]; functionButton = _locked ? kLockButton : _view.expanded ? kCompressButton : kExpandButton; - [_toolTip showWithToolTip:NSLocalizedString(_locked ? @"unlock" : _view.expanded ? - @"compress" : @"expand", nil) display:display]; break; case kBackSpaceKey: [_view.preeditContents addAttribute:NSForegroundColorAttributeName value:_view.theme.hilitedPreeditForeColor range:NSMakeRange(_view.preeditContents.length - 1, 1)]; functionButton = _caretPos == NSNotFound || _caretPos == 0 ? kEscapeKey : kBackSpaceKey; - [_toolTip showWithToolTip:NSLocalizedString(_caretPos == NSNotFound || _caretPos == 0 ? - @"escape" : @"delete", nil) display:display]; break; } + NSString* toolTipKey; + switch (functionButton) { + case kHomeKey: toolTipKey = @"home"; break; + case kPageUpKey: toolTipKey = @"page_up"; break; + case kEndKey: toolTipKey = @"end"; break; + case kPageDownKey: toolTipKey = @"page_down"; break; + case kLockButton: toolTipKey = @"unlock"; break; + case kCompressButton: toolTipKey = @"compress"; break; + case kExpandButton: toolTipKey = @"expand"; break; + case kEscapeKey: toolTipKey = @"escape"; break; + case kBackSpaceKey: toolTipKey = @"delete"; break; + default: toolTipKey = nil; break; + } + if (toolTipKey != nil) { + [_toolTip showToolTip:[NSBundle.mainBundle localizedStringForKey:toolTipKey + value:nil + table:@"Tooltips"] + display:display]; + } [_view highlightFunctionButton:functionButton]; [self displayIfNeeded]; } @@ -3983,31 +3967,34 @@ - (void)show __attribute__((objc_direct)) { BOOL sweepVertical = NSWidth(_IbeamRect) > NSHeight(_IbeamRect); NSRect contentRect = _view.contentRect; // fixed line length (text width), but not applicable to status message - if (theme.lineLength > 0.1 && _statusMessage == nil) { + if (isnormal(theme.lineLength) && _statusMessage == nil) { contentRect.size.width = _textWidthLimit; } - /* remember panel size (fix the top leading anchor of the panel in screen coordiantes) - but only when the text would expand on the side of upstream (i.e. towards the beginning of text) */ + // remember panel size (fix the top leading anchor of the panel in screen coordiantes) + // but only when the text would expand on the side of upstream (i.e. towards the beginning of text) if (theme.rememberSize && _view.statusView.hidden) { - if (theme.lineLength < 0.1 && theme.vertical + if (isfinite(theme.lineLength) && !isnormal(theme.lineLength)) { + BOOL attained = theme.vertical ? sweepVertical ? (NSMinY(_IbeamRect) - fmax(NSWidth(contentRect), _maxSizeAttained.width) - - border.width - floor(theme.fullWidth * 0.5) < NSMinY(screenRect) + 0.1) + - border.width - floor(theme.fullWidth * 0.5) < nexttoward(NSMinY(screenRect), INFINITY)) : (NSMinY(_IbeamRect) - kOffsetGap - NSHeight(screenRect) * textWidthRatio - - border.width * 2 - theme.fullWidth < NSMinY(screenRect) + 0.1) + - border.width * 2 - theme.fullWidth < nexttoward(NSMinY(screenRect), INFINITY)) : sweepVertical ? (NSMinX(_IbeamRect) - kOffsetGap - NSWidth(screenRect) * textWidthRatio - - border.width * 2 - theme.fullWidth > NSMinX(screenRect) + 0.1) + - border.width * 2 - theme.fullWidth > nexttoward(NSMinX(screenRect), INFINITY)) : (NSMaxX(_IbeamRect) + fmax(NSWidth(contentRect), _maxSizeAttained.width) - + border.width + floor(theme.fullWidth * 0.5) > NSMaxX(screenRect) - 0.1)) { - if (NSWidth(contentRect) > _maxSizeAttained.width + 0.1) { - _maxSizeAttained.width = NSWidth(contentRect); - } else { - contentRect.size.width = _maxSizeAttained.width; + + border.width + floor(theme.fullWidth * 0.5) > nexttoward(NSMaxX(screenRect), -INFINITY)); + if (attained) { + if (NSWidth(contentRect) > nexttoward(_maxSizeAttained.width, INFINITY)) { + _maxSizeAttained.width = NSWidth(contentRect); + } else { + contentRect.size.width = _maxSizeAttained.width; + } } } CGFloat textHeight = fmax(NSHeight(contentRect), _maxSizeAttained.height) + border.height * 2; - if (theme.vertical ? (NSMinX(_IbeamRect) - textHeight - (sweepVertical ? kOffsetGap : 0) < NSMinX(screenRect) + 0.1) - : (NSMinY(_IbeamRect) - textHeight - (sweepVertical ? 0 : kOffsetGap) < NSMinY(screenRect) + 0.1)) { - if (NSHeight(contentRect) > _maxSizeAttained.height + 0.1) { + if (theme.vertical ? (NSMinX(_IbeamRect) - textHeight - (sweepVertical ? kOffsetGap : 0) < nexttoward(NSMinX(screenRect), INFINITY)) + : (NSMinY(_IbeamRect) - textHeight - (sweepVertical ? 0 : kOffsetGap) < nexttoward(NSMinY(screenRect), INFINITY))) { + if (NSHeight(contentRect) > nexttoward(_maxSizeAttained.height, INFINITY)) { _maxSizeAttained.height = NSHeight(contentRect); } else { contentRect.size.height = _maxSizeAttained.height; @@ -4019,22 +4006,15 @@ but only when the text would expand on the side of upstream (i.e. towards the be if (_statusMessage != nil) { // following system UI, middle-align status message with cursor _initPosition = YES; - if (theme.vertical) { - windowRect.size.width = NSHeight(contentRect) + border.height * 2; - windowRect.size.height = NSWidth(contentRect) + border.width * 2 + theme.fullWidth; - } else { - windowRect.size.width = NSWidth(contentRect) + border.width * 2 + theme.fullWidth; - windowRect.size.height = NSHeight(contentRect) + border.height * 2; - } - if (sweepVertical) { - // vertically centre-align (MidY) in screen coordinates - windowRect.origin.x = NSMinX(_IbeamRect) - kOffsetGap - NSWidth(windowRect); - windowRect.origin.y = NSMidY(_IbeamRect) - NSHeight(windowRect) * 0.5; - } else { - // horizontally centre-align (MidX) in screen coordinates - windowRect.origin.x = NSMidX(_IbeamRect) - NSWidth(windowRect) * 0.5; - windowRect.origin.y = NSMinY(_IbeamRect) - kOffsetGap - NSHeight(windowRect); - } + windowRect.size = theme.vertical ? NSMakeSize(NSHeight(contentRect) + border.height * 2, + NSWidth(contentRect) + border.width * 2 + theme.fullWidth) + : NSMakeSize(NSWidth(contentRect) + border.width * 2 + theme.fullWidth, + NSHeight(contentRect) + border.height * 2); + // vertically/horizontally centre-align (midY/midX) in screen coordinates + windowRect.origin = sweepVertical ? NSMakePoint(NSMinX(_IbeamRect) - kOffsetGap - NSWidth(windowRect), + NSMidY(_IbeamRect) - NSHeight(windowRect) * 0.5) + : NSMakePoint(NSMidX(_IbeamRect) - NSWidth(windowRect) * 0.5, + NSMinY(_IbeamRect) - kOffsetGap - NSHeight(windowRect)); } else { if (theme.vertical) { // anchor is the top right corner in screen coordinates (MaxX, MaxY) @@ -4042,24 +4022,21 @@ but only when the text would expand on the side of upstream (i.e. towards the be NSMaxY(self.frame) - NSWidth(contentRect) - border.width * 2 - theme.fullWidth, NSHeight(contentRect) + border.height * 2, NSWidth(contentRect) + border.width * 2 + theme.fullWidth); - _initPosition |= NSIntersectsRect(windowRect, _IbeamRect) || !NSContainsRect(screenRect, windowRect); + _initPosition |= NSIntersectsRect(windowRect, _IbeamRect) || NSContainsRect(windowRect, _IbeamRect) || + (!NSContainsRect(screenRect, windowRect) && !NSIntersectsRect(screenRect, windowRect)); if (_initPosition) { if (!sweepVertical) { // To avoid jumping up and down while typing, use the lower screen when typing on upper, and vice versa - if (NSMinY(_IbeamRect) - kOffsetGap - NSHeight(screenRect) * textWidthRatio - - border.width * 2 - theme.fullWidth < NSMinY(screenRect) + 0.1) { - windowRect.origin.y = NSMaxY(_IbeamRect) + kOffsetGap; - } else { - windowRect.origin.y = NSMinY(_IbeamRect) - kOffsetGap - NSHeight(windowRect); - } + BOOL isOnLower = NSMinY(_IbeamRect) - kOffsetGap - NSHeight(screenRect) * textWidthRatio - + border.width * 2 - theme.fullWidth < nexttoward(NSMinY(screenRect), INFINITY); + windowRect.origin.y = isOnLower ? NSMaxY(_IbeamRect) + kOffsetGap + : NSMinY(_IbeamRect) - kOffsetGap - NSHeight(windowRect); // Make the right edge of candidate block fixed at the left of cursor windowRect.origin.x = NSMinX(_IbeamRect) + border.height - NSWidth(windowRect); } else { - if (NSMinX(_IbeamRect) - kOffsetGap - NSWidth(windowRect) < NSMinX(screenRect) + 0.1) { - windowRect.origin.x = NSMaxX(_IbeamRect) + kOffsetGap; - } else { - windowRect.origin.x = NSMinX(_IbeamRect) - kOffsetGap - NSWidth(windowRect); - } + BOOL isOnLefter = NSMinX(_IbeamRect) - kOffsetGap - NSWidth(windowRect) < nexttoward(NSMinX(screenRect), INFINITY); + windowRect.origin.x = isOnLefter ? NSMaxX(_IbeamRect) + kOffsetGap + : NSMinX(_IbeamRect) - kOffsetGap - NSWidth(windowRect); windowRect.origin.y = NSMinY(_IbeamRect) + border.width + ceil(theme.fullWidth * 0.5) - NSHeight(windowRect); } } @@ -4069,22 +4046,20 @@ but only when the text would expand on the side of upstream (i.e. towards the be NSMaxY(self.frame) - NSHeight(contentRect) - border.height * 2, NSWidth(contentRect) + border.width * 2 + theme.fullWidth, NSHeight(contentRect) + border.height * 2); - _initPosition |= NSIntersectsRect(windowRect, _IbeamRect) || !NSContainsRect(screenRect, windowRect); + _initPosition |= NSIntersectsRect(windowRect, _IbeamRect) || NSContainsRect(windowRect, _IbeamRect) || + (!NSContainsRect(screenRect, windowRect) && !NSIntersectsRect(screenRect, windowRect)); if (_initPosition) { if (sweepVertical) { // To avoid jumping left and right while typing, use the lefter screen when typing on righter, and vice versa - if (NSMinX(_IbeamRect) - kOffsetGap - NSWidth(screenRect) * textWidthRatio - border.width * 2 - theme.fullWidth > NSMinX(screenRect) + 0.1) { - windowRect.origin.x = NSMinX(_IbeamRect) - kOffsetGap - NSWidth(windowRect); - } else { - windowRect.origin.x = NSMaxX(_IbeamRect) + kOffsetGap; - } + BOOL isOnLefter = NSMinX(_IbeamRect) - kOffsetGap - NSWidth(screenRect) * textWidthRatio - + border.width * 2 - theme.fullWidth > nexttoward(NSMinX(screenRect), INFINITY); + windowRect.origin.x = isOnLefter ? NSMinX(_IbeamRect) - kOffsetGap - NSWidth(windowRect) + : NSMaxX(_IbeamRect) + kOffsetGap; windowRect.origin.y = NSMinY(_IbeamRect) + border.height - NSHeight(windowRect); } else { - if (NSMinY(_IbeamRect) - kOffsetGap - NSHeight(windowRect) < NSMinY(screenRect) + 0.1) { - windowRect.origin.y = NSMaxY(_IbeamRect) + kOffsetGap; - } else { - windowRect.origin.y = NSMinY(_IbeamRect) - kOffsetGap - NSHeight(windowRect); - } + BOOL isOnLower = NSMinY(_IbeamRect) - kOffsetGap - NSHeight(windowRect) < nexttoward(NSMinY(screenRect), INFINITY); + windowRect.origin.y = isOnLower ? NSMaxY(_IbeamRect) + kOffsetGap + : NSMinY(_IbeamRect) - kOffsetGap - NSHeight(windowRect); windowRect.origin.x = NSMaxX(_IbeamRect) - border.width - ceil(theme.fullWidth * 0.5); } } @@ -4106,19 +4081,19 @@ but only when the text would expand on the side of upstream (i.e. towards the be } } - if (NSMaxX(windowRect) > NSMaxX(screenRect) - 0.1) { + if (NSMaxX(windowRect) > nexttoward(NSMaxX(screenRect), -INFINITY)) { windowRect.origin.x = (_initPosition && sweepVertical ? fmin(NSMinX(_IbeamRect) - kOffsetGap, NSMaxX(screenRect)) : NSMaxX(screenRect)) - NSWidth(windowRect); } - if (NSMinX(windowRect) < NSMinX(screenRect) + 0.1) { + if (NSMinX(windowRect) < nexttoward(NSMinX(screenRect), INFINITY)) { windowRect.origin.x = _initPosition && sweepVertical ? fmax(NSMaxX(_IbeamRect) + kOffsetGap, NSMinX(screenRect)) : NSMinX(screenRect); } - if (NSMinY(windowRect) < NSMinY(screenRect) + 0.1) { + if (NSMinY(windowRect) < nexttoward(NSMinY(screenRect), INFINITY)) { windowRect.origin.y = _initPosition && !sweepVertical ? fmax(NSMaxY(_IbeamRect) + kOffsetGap, NSMinY(screenRect)) : NSMinY(screenRect); } - if (NSMaxY(windowRect) > NSMaxY(screenRect) - 0.1) { + if (NSMaxY(windowRect) > nexttoward(NSMaxY(screenRect), -INFINITY)) { windowRect.origin.y = (_initPosition && !sweepVertical ? fmin(NSMinY(_IbeamRect) - kOffsetGap, NSMaxY(screenRect)) : NSMaxY(screenRect)) - NSHeight(windowRect); } @@ -4138,27 +4113,23 @@ but only when the text would expand on the side of upstream (i.e. towards the be NSRect viewRect = NSIntegralRectWithOptions(self.contentView.bounds, NSAlignAllEdgesNearest); _view.frame = viewRect; if (!_view.statusView.hidden) { - _view.statusView.frame = NSMakeRect(NSMinX(viewRect) + border.width + ceil(theme.fullWidth * 0.5) - - _view.statusView.textContainerOrigin.x, + _view.statusView.frame = NSMakeRect(NSMinX(viewRect) + border.width + ceil(theme.fullWidth * 0.5) - _view.statusView.textContainerOrigin.x, NSMinY(viewRect) + border.height - _view.statusView.textContainerOrigin.y, NSWidth(viewRect) - border.width * 2 - theme.fullWidth, NSHeight(viewRect) - border.height * 2); } if (!_view.preeditView.hidden) { - _view.preeditView.frame = NSMakeRect(NSMinX(viewRect) + border.width + ceil(theme.fullWidth * 0.5) - - _view.preeditView.textContainerOrigin.x, + _view.preeditView.frame = NSMakeRect(NSMinX(viewRect) + border.width + ceil(theme.fullWidth * 0.5) - _view.preeditView.textContainerOrigin.x, NSMinY(viewRect) + border.height - _view.preeditView.textContainerOrigin.y, NSWidth(viewRect) - border.width * 2 - theme.fullWidth, NSHeight(_view.preeditRect)); } if (!_view.pagingView.hidden) { CGFloat leadOrigin = theme.linear ? NSMaxX(viewRect) - NSWidth(_view.pagingRect) - border.width + ceil(theme.fullWidth * 0.5) - : NSMinX(viewRect) + border.width + ceil(theme.fullWidth * 0.5); + : NSMinX(viewRect) + border.width + ceil(theme.fullWidth * 0.5); _view.pagingView.frame = NSMakeRect(leadOrigin - _view.pagingView.textContainerOrigin.x, - NSMaxY(viewRect) - border.height - NSHeight(_view.pagingRect) - - _view.pagingView.textContainerOrigin.y, - (theme.linear ? NSWidth(_view.pagingRect) - : NSWidth(viewRect) - border.width * 2) - theme.fullWidth, + NSMaxY(viewRect) - border.height - NSHeight(_view.pagingRect) - _view.pagingView.textContainerOrigin.y, + (theme.linear ? NSWidth(_view.pagingRect) : NSWidth(viewRect) - border.width * 2) - theme.fullWidth, NSHeight(_view.pagingRect)); } if (!_view.scrollView.hidden) { @@ -4168,9 +4139,9 @@ but only when the text would expand on the side of upstream (i.e. towards the be NSHeight(_view.clipRect)); _view.documentView.frame = NSMakeRect(0.0, 0.0, NSWidth(viewRect) - border.width * 2, NSHeight(_view.documentRect)); _view.candidateView.frame = NSMakeRect(ceil(theme.fullWidth * 0.5) - _view.candidateView.textContainerOrigin.x, - ceil(theme.lineSpacing * 0.5) - _view.candidateView.textContainerOrigin.y, - NSWidth(viewRect) - border.width * 2 - theme.fullWidth, - NSHeight(_view.documentRect) - theme.lineSpacing); + floor(theme.lineSpacing * 0.5) - _view.candidateView.textContainerOrigin.y, + NSWidth(viewRect) - border.width * 2 - theme.fullWidth, + NSHeight(_view.documentRect) - theme.lineSpacing); } if (!_back.hidden) { _back.frame = viewRect; @@ -4190,22 +4161,11 @@ - (void)hide { [_toolTip hide]; [self orderOut:nil]; _maxSizeAttained = NSZeroSize; - _initPosition = YES; + _IbeamRect = NSZeroRect; self.expanded = NO; self.sectionNum = 0; } -static CGFloat textWidth(NSAttributedString* string, BOOL vertical) { - if (vertical) { - NSMutableAttributedString* verticalString = string.mutableCopy; - [verticalString addAttribute:NSVerticalGlyphFormAttributeName - value:@YES range:NSMakeRange(0, verticalString.length)]; - return ceil(verticalString.size.width); - } else { - return ceil(string.size.width); - } -} - // Main function to add attributes to text output from librime - (void)showPreedit:(NSString*)preedit selRange:(NSRange)selRange @@ -4252,7 +4212,7 @@ - (void)showPreedit:(NSString*)preedit SquirrelCandidateInfo* candidateInfos; if (updateCandidates) { [_view.candidateContents deleteCharactersInRange:NSMakeRange(0, _view.candidateContents.length)]; - if (theme.lineLength > 0.1) { + if (isnormal(theme.lineLength)) { _maxSizeAttained.width = fmin(theme.lineLength, _textWidthLimit); } _indexRange = indexRange; @@ -4276,7 +4236,7 @@ - (void)showPreedit:(NSString*)preedit value:padding range:NSMakeRange(selRange.location - 1, 1)]; } - if (NSMaxRange(selRange) < _view.preeditContents.length) { + if (NSMaxRange(selRange) < _view.preeditContents.length - 1) { [_view.preeditContents addAttribute:NSKernAttributeName value:padding range:NSMakeRange(NSMaxRange(selRange) - 1, 1)]; @@ -4324,13 +4284,13 @@ - (void)showPreedit:(NSString*)preedit ? theme.candidateHilitedTemplate.mutableCopy : theme.candidateTemplate.mutableCopy; // plug in enumerator, candidate text and comment into the template NSRange enumRange = [candidate.mutableString rangeOfString:@"%c"]; - [candidate replaceCharactersInRange:enumRange withString:theme.labels[col]]; + [candidate replaceCharactersInRange:enumRange withString:theme.rawLabels[col]]; NSRange textRange = [candidate.mutableString rangeOfString:@"%@"]; NSString* text = _inputController.candidateTexts[idx + indexRange.location]; [candidate replaceCharactersInRange:textRange withString:text]; - NSRange commentRange = [candidate.mutableString rangeOfString:kTipSpecifier]; + NSRange commentRange = [candidate.mutableString rangeOfString:@"%s"]; NSString* comment = _inputController.candidateComments[idx + indexRange.location]; if (comment.length > 0) { [candidate replaceCharactersInRange:commentRange withString:[@"\u00A0" append:comment]]; @@ -4355,9 +4315,9 @@ - (void)showPreedit:(NSString*)preedit for (NSUInteger i = 1; i <= idx; ++i) { if (i == idx || candidateInfos[i].truncated != truncated) { [_view.candidateContents addAttribute:NSParagraphStyleAttributeName - value:truncated ? theme.truncatedParagraphStyle - : theme.candidateParagraphStyle - range:NSMakeRange(location, candidateInfos[i - 1].maxRange() - location)]; + value:truncated ? theme.truncatedParagraphStyle + : theme.candidateParagraphStyle + range:NSMakeRange(location, candidateInfos[i - 1].maxRange() - location)]; if (i < idx) { truncated = candidateInfos[i].truncated; location = candidateInfos[i].location; @@ -4366,8 +4326,8 @@ - (void)showPreedit:(NSString*)preedit } } else { [_view.candidateContents addAttribute:NSParagraphStyleAttributeName - value:theme.candidateParagraphStyle - range:NSMakeRange(0, _view.candidateContents.length)]; + value:theme.candidateParagraphStyle + range:NSMakeRange(0, _view.candidateContents.length)]; } } } @@ -4378,20 +4338,24 @@ - (void)showPreedit:(NSString*)preedit [_view.candidateContents.mutableString appendString:@"\n"]; } NSUInteger candidateStart = _view.candidateContents.length; - SquirrelCandidateInfo info = {.location = candidateStart, .text = textRange.location, .comment = NSMaxRange(textRange), .idx = idx, .col = col}; + SquirrelCandidateInfo info = {.location = candidateStart, .text = textRange.location, + .comment = NSMaxRange(textRange), .idx = idx, .col = col}; [_view.candidateContents appendAttributedString:candidate]; // for linear layout, middle-truncate candidates that are longer than one line - if (theme.linear && textWidth(candidate, theme.vertical) > + if (theme.linear && NSWidth([_view.candidateView blockRectForRange:NSMakeRange(candidateStart, candidate.length)]) > _textWidthLimit - theme.fullWidth * (theme.tabular ? 3 : 2)) { + if (col > 0 && !candidateInfos[idx - 1].truncated) { + [_view.candidateContents.mutableString insertString:@"\n" atIndex:candidateStart++]; + } info.length = _view.candidateContents.length - candidateStart; info.truncated = YES; candidateInfos[idx] = info; - if (idx < indexRange.length - 1 || theme.tabular || theme.showPaging) { + if (idx < indexRange.length - 1) { [_view.candidateContents.mutableString appendString:@"\n"]; } [_view.candidateContents addAttribute:NSParagraphStyleAttributeName - value:theme.truncatedParagraphStyle - range:NSMakeRange(candidateStart, _view.candidateContents.length - candidateStart)]; + value:theme.truncatedParagraphStyle + range:NSMakeRange(candidateStart, _view.candidateContents.length - candidateStart)]; } else { if (theme.linear || idx < indexRange.length - 1) { // separator: linear = "\u3000\x1D"; tabular = "\u3000\t\x1D"; stacked = "\n" @@ -4436,14 +4400,16 @@ - (void)showPreedit:(NSString*)preedit paging:indexRange.length > 0 && (theme.tabular || theme.showPaging)]; CGFloat textWidth = clamp(NSWidth(_view.contentRect), _maxSizeAttained.width, _textWidthLimit); // right-align the backward delete symbol - if (preedit.length > 0 && rulerAttrsPreedit == nil) { - [_view.preeditContents replaceCharactersInRange:NSMakeRange(_view.preeditContents.length - 2, 1) - withString:@"\t"]; + if (preedit.length > 0 && + (rulerAttrsPreedit == nil || rulerAttrsPreedit.tabStops[0].location < nexttoward(textWidth, 0.0))) { + if (rulerAttrsPreedit == nil) { + [_view.preeditContents replaceCharactersInRange:NSMakeRange(_view.preeditContents.length - 2, 1) + withString:@"\t"]; + } NSMutableParagraphStyle* rulerAttrs = theme.preeditParagraphStyle.mutableCopy; - rulerAttrs.tabStops = @[[NSTextTab.alloc - initWithTextAlignment:NSTextAlignmentRight - location:textWidth - options:@{}]]; + rulerAttrs.tabStops = @[[NSTextTab.alloc initWithTextAlignment:NSTextAlignmentRight + location:textWidth + options:@{}]]; [_view.preeditContents addAttribute:NSParagraphStyleAttributeName value:rulerAttrs range:NSMakeRange(0, _view.preeditContents.length)]; @@ -4508,7 +4474,6 @@ - (void)showStatus:(NSString*)message __attribute__((objc_direct)) { paging:NO]; // disable remember_size and fixed line_length for status messages - _initPosition = YES; _maxSizeAttained = NSZeroSize; if (_statusTimer.valid) { [_statusTimer invalidate]; @@ -4565,11 +4530,10 @@ - (void)loadConfig:(SquirrelConfig*)config { } - (void)updateScriptVariant { - [SquirrelView.defaultTheme setScriptVariant:_optionSwitcher.currentScriptVariant]; + [SquirrelView.defaultTheme updateScriptVariant:_optionSwitcher.currentScriptVariant]; if (@available(macOS 10.14, *)) { - [SquirrelView.darkTheme setScriptVariant:_optionSwitcher.currentScriptVariant]; + [SquirrelView.darkTheme updateScriptVariant:_optionSwitcher.currentScriptVariant]; } } @end // SquirrelPanel - diff --git a/Localizable.xcstrings b/Tooltips.xcstrings similarity index 62% rename from Localizable.xcstrings rename to Tooltips.xcstrings index c3cf5fc66..c1b8e1010 100644 --- a/Localizable.xcstrings +++ b/Tooltips.xcstrings @@ -2,6 +2,7 @@ "sourceLanguage" : "en", "strings" : { "candidate" : { + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { @@ -30,7 +31,7 @@ } }, "compress" : { - "extractionState" : "stale", + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { @@ -59,7 +60,7 @@ } }, "delete" : { - "extractionState" : "stale", + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { @@ -87,124 +88,8 @@ } } }, - "deploy_failure" : { - "extractionState" : "stale", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Error occurred. See log file $TMPDIR/rime.squirrel.INFO." - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "有错误!请查看日志 $TMPDIR/rime.squirrel.INFO" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "有錯誤!請查看日誌 $TMPDIR/rime.squirrel.INFO" - } - }, - "zh-HK" : { - "stringUnit" : { - "state" : "translated", - "value" : "有錯誤!請查看日誌 $TMPDIR/rime.squirrel.INFO" - } - } - } - }, - "deploy_start" : { - "extractionState" : "stale", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Deploying Rime input method engine…" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "部署输入法引擎…" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "部署輸入法引擎⋯" - } - }, - "zh-HK" : { - "stringUnit" : { - "state" : "translated", - "value" : "部署輸入法引擎⋯" - } - } - } - }, - "deploy_success" : { - "extractionState" : "stale", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Squirrel is ready." - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "部署完成。" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "部署完成。" - } - }, - "zh-HK" : { - "stringUnit" : { - "state" : "translated", - "value" : "部署完成。" - } - } - } - }, - "deploy_update" : { - "extractionState" : "stale", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Deploying Rime for updates…" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "更新输入法引擎…" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "更新輸入法引擎⋯" - } - }, - "zh-HK" : { - "stringUnit" : { - "state" : "translated", - "value" : "更新輸入法引擎⋯" - } - } - } - }, "end" : { - "extractionState" : "stale", + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { @@ -233,7 +118,7 @@ } }, "escape" : { - "extractionState" : "stale", + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { @@ -262,7 +147,7 @@ } }, "expand" : { - "extractionState" : "stale", + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { @@ -291,7 +176,7 @@ } }, "home" : { - "extractionState" : "stale", + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { @@ -320,7 +205,7 @@ } }, "page_down" : { - "extractionState" : "stale", + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { @@ -349,7 +234,7 @@ } }, "page_up" : { - "extractionState" : "stale", + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { @@ -377,86 +262,8 @@ } } }, - "problematic_launch" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Problematic launch detected!\nSquirrel may be suffering a crash due to improper configurations.\nRevert previous modifications to see if the problem recurs." - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "检测到启动有问题!\n“鼠须管”可能因错误设置而崩溃。\n请尝试撤销之前的修改,然后查看问题是否仍旧存在。" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "啟動時偵測到問題!\n「鼠鬚管」可能因設定不當而崩潰。\n請嘗試回退先前的修改,然後查看問題是否依然存在。" - } - }, - "zh-HK" : { - "stringUnit" : { - "state" : "translated", - "value" : "啟動時偵測到錯誤!\n「鼠鬚筆」可能由於設定不當而崩潰。\n請嘗試回退先前的改動,然後查看問題是否仍然存在。" - } - } - } - }, - "say_voice" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Alex" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "TingTing" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "MeiJia" - } - }, - "zh-HK" : { - "stringUnit" : { - "state" : "translated", - "value" : "Sinji" - } - } - } - }, - "Squirrel" : { - "localizations" : { - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "鼠须管" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "鼠鬚管" - } - }, - "zh-HK" : { - "stringUnit" : { - "state" : "translated", - "value" : "鼠鬚筆" - } - } - } - }, "unlock" : { - "extractionState" : "stale", + "extractionState" : "manual", "localizations" : { "en" : { "stringUnit" : { diff --git a/autobuild.sh b/autobuild.sh index 399906800..1aeeeb0b1 100644 --- a/autobuild.sh +++ b/autobuild.sh @@ -8,7 +8,7 @@ bash librime/install-plugins.sh lotem/librime-octagram hchunhui/librime-lua rime export CMAKE_GENERATOR=Ninja export BUILD_UNIVERSAL=1 bash librime/install-boost.sh -export BOOST_ROOT="$(pwd)/librime/deps/boost-1.84.0" +export BOOST_ROOT="$(pwd)/librime/deps/boost_1_85_0" make -C librime deps # export PATH="/opt/homebrew/opt/llvm/bin:/usr/local/opt/llvm/bin:$PATH" diff --git a/input_source.mm b/input_source.mm index 9cefff264..794f4f81e 100644 --- a/input_source.mm +++ b/input_source.mm @@ -14,7 +14,7 @@ typedef CF_OPTIONS(CFIndex, RimeInputMode) { CANT_INPUT_MODE = 1 << 2 }; -RimeInputMode GetEnabledInputModes(void); +RimeInputMode GetEnabledInputModes(Boolean includeAllInstalled); CFArrayRef GetPreferredLocale(void) { CFTypeRef locales[] = {CFSTR("zh-Hans"), CFSTR("zh-Hant"), CFSTR("zh-HK")}; @@ -27,76 +27,61 @@ CFArrayRef GetPreferredLocale(void) { CFArrayRef GetInputSourceList(Boolean includeAllInstalled) { CFTypeRef keys[] = {kTISPropertyBundleID}; CFTypeRef values[] = {CFBundleGetIdentifier(CFBundleGetMainBundle())}; - CFDictionaryRef property = CFDictionaryCreate(NULL, keys, values, 1, - &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); + CFDictionaryRef property = CFDictionaryCreate(NULL, keys, values, 1, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); CFArrayRef sourceList = TISCreateInputSourceList(property, includeAllInstalled); CFRelease(property); return sourceList; } void RegisterInputSource(void) { - if (GetEnabledInputModes() != 0) { // Already registered + if (GetEnabledInputModes(true) != 0) { // Already registered NSLog(@"Squirrel is already registered."); return; } CFStringRef installPath = CFSTR("/Library/Input Methods/Squirrel.app"); - if (CFURLRef installURL = CFURLCreateWithFileSystemPath - (NULL, installPath, kCFURLPOSIXPathStyle, false)) { - OSStatus registerError = TISRegisterInputSource((CFURLRef)CFAutorelease(installURL)); - if (registerError == noErr) { - NSLog(@"Squirrel has been successfully registered at %@", installPath); + if (CFURLRef installURL = CFURLCreateWithFileSystemPath(NULL, installPath, kCFURLPOSIXPathStyle, false)) { + if (OSStatus error = TISRegisterInputSource((CFURLRef)CFAutorelease(installURL)) != noErr) { + NSLog(@"Squirrel failed to register at %@ (error code: %d)", installPath, error); } else { - NSLog(@"Squirrel failed to register at %@ (%@)", installPath, - [NSError errorWithDomain:NSOSStatusErrorDomain - code:registerError userInfo:nil]); + NSLog(@"Squirrel has been successfully registered at %@", installPath); } } } -void EnableInputSource(void) { - if (GetEnabledInputModes() != 0) { +void EnableInputSource(RimeInputMode modesToEnable) { + if (GetEnabledInputModes(false) != 0) { // keep user's manually enabled input modes NSLog(@"Squirrel input method(s) is already enabled."); return; } - RimeInputMode input_modes_to_enable = 0; - CFArrayRef preferred = GetPreferredLocale(); - if (CFArrayGetCount(preferred) > 0) { - CFStringRef language = (CFStringRef)CFArrayGetValueAtIndex(preferred, 0); - if (CFStringCompare(language, CFSTR("zh-Hans"), - kCFCompareCaseInsensitive) == kCFCompareEqualTo) { - input_modes_to_enable |= HANS_INPUT_MODE; - } else if (CFStringCompare(language, CFSTR("zh-Hant"), - kCFCompareCaseInsensitive) == kCFCompareEqualTo) { - input_modes_to_enable |= HANT_INPUT_MODE; - } else if (CFStringCompare(language, CFSTR("zh-HK"), - kCFCompareCaseInsensitive) == kCFCompareEqualTo) { - input_modes_to_enable |= CANT_INPUT_MODE; + if (modesToEnable == 0) { + CFArrayRef preferred = GetPreferredLocale(); + if (CFArrayGetCount(preferred) > 0) { + CFStringRef language = (CFStringRef)CFArrayGetValueAtIndex(preferred, 0); + if (CFStringCompare(language, CFSTR("zh-Hans"), kCFCompareCaseInsensitive) == kCFCompareEqualTo) { + modesToEnable = HANS_INPUT_MODE; + } else if (CFStringCompare(language, CFSTR("zh-Hant"), kCFCompareCaseInsensitive) == kCFCompareEqualTo) { + modesToEnable = HANT_INPUT_MODE; + } else if (CFStringCompare(language, CFSTR("zh-HK"), kCFCompareCaseInsensitive) == kCFCompareEqualTo) { + modesToEnable = CANT_INPUT_MODE; + } + } else { + modesToEnable = HANS_INPUT_MODE; } - } else { - input_modes_to_enable = HANS_INPUT_MODE; + CFRelease(preferred); } - CFRelease(preferred); CFArrayRef sourceList = GetInputSourceList(true); for (CFIndex i = 0; i < CFArrayGetCount(sourceList); ++i) { - TISInputSourceRef inputSource = (TISInputSourceRef) - CFArrayGetValueAtIndex(sourceList, i); - CFStringRef sourceID = (CFStringRef)TISGetInputSourceProperty - (inputSource, kTISPropertyInputSourceID); + TISInputSourceRef inputSource = (TISInputSourceRef)CFArrayGetValueAtIndex(sourceList, i); + CFStringRef sourceID = (CFStringRef)TISGetInputSourceProperty(inputSource, kTISPropertyInputSourceID); // NSLog(@"Examining input source: %@", sourceID); - if ((CFStringCompare(sourceID, kHansInputModeID, 0) == kCFCompareEqualTo && - (input_modes_to_enable & HANS_INPUT_MODE)) || - (CFStringCompare(sourceID, kHantInputModeID, 0) == kCFCompareEqualTo && - (input_modes_to_enable & HANT_INPUT_MODE)) || - (CFStringCompare(sourceID, kCantInputModeID, 0) == kCFCompareEqualTo && - (input_modes_to_enable & CANT_INPUT_MODE))) { - CFBooleanRef isEnabled = (CFBooleanRef)TISGetInputSourceProperty - (inputSource, kTISPropertyInputSourceIsEnabled); + if ((CFStringCompare(sourceID, kHansInputModeID, 0) == kCFCompareEqualTo && (modesToEnable & HANS_INPUT_MODE)) || + (CFStringCompare(sourceID, kHantInputModeID, 0) == kCFCompareEqualTo && (modesToEnable & HANT_INPUT_MODE)) || + (CFStringCompare(sourceID, kCantInputModeID, 0) == kCFCompareEqualTo && (modesToEnable & CANT_INPUT_MODE))) { + CFBooleanRef isEnabled = (CFBooleanRef)TISGetInputSourceProperty(inputSource, kTISPropertyInputSourceIsEnabled); if (!CFBooleanGetValue(isEnabled)) { - if (OSStatus enableError = TISEnableInputSource(inputSource) != noErr) { - NSLog(@"Failed to enable input source: %@ (%@)", sourceID, - [NSError errorWithDomain:NSOSStatusErrorDomain - code:enableError userInfo:nil]); + if (OSStatus error = TISEnableInputSource(inputSource) != noErr) { + NSLog(@"Failed to enable input source: %@ (error code: %d)", sourceID, error); } else { NSLog(@"Enabled input source: %@", sourceID); } @@ -106,54 +91,47 @@ void EnableInputSource(void) { CFRelease(sourceList); } -void SelectInputSource(void) { - RimeInputMode enabled_input_modes = GetEnabledInputModes(); - RimeInputMode input_mode_to_select = 0; - CFArrayRef preferred = GetPreferredLocale(); - for (CFIndex i = 0; i < CFArrayGetCount(preferred); ++i) { - CFStringRef language = (CFStringRef)CFArrayGetValueAtIndex(preferred, i); - if (CFStringCompare(language, CFSTR("zh-Hans"), kCFCompareCaseInsensitive) - == kCFCompareEqualTo && (enabled_input_modes & HANS_INPUT_MODE)) { - input_mode_to_select = HANS_INPUT_MODE; - break; - } else if (CFStringCompare(language, CFSTR("zh-Hant"), kCFCompareCaseInsensitive) - == kCFCompareEqualTo && (enabled_input_modes & HANT_INPUT_MODE)) { - input_mode_to_select = HANT_INPUT_MODE; - break; - } else if (CFStringCompare(language, CFSTR("zh-HK"), kCFCompareCaseInsensitive) - == kCFCompareEqualTo && (enabled_input_modes & CANT_INPUT_MODE)) { - input_mode_to_select = CANT_INPUT_MODE; - break; +void SelectInputSource(RimeInputMode modeToSelect) { + RimeInputMode enabledModes = GetEnabledInputModes(false); + modeToSelect &= enabledModes; + if (modeToSelect == 0) { + CFArrayRef preferred = GetPreferredLocale(); + for (CFIndex i = 0; i < CFArrayGetCount(preferred); ++i) { + CFStringRef language = (CFStringRef)CFArrayGetValueAtIndex(preferred, i); + if (CFStringCompare(language, CFSTR("zh-Hans"), kCFCompareCaseInsensitive) == kCFCompareEqualTo && + (enabledModes & HANS_INPUT_MODE)) { + modeToSelect = HANS_INPUT_MODE; + break; + } else if (CFStringCompare(language, CFSTR("zh-Hant"), kCFCompareCaseInsensitive) == kCFCompareEqualTo && + (enabledModes & HANT_INPUT_MODE)) { + modeToSelect = HANT_INPUT_MODE; + break; + } else if (CFStringCompare(language, CFSTR("zh-HK"), kCFCompareCaseInsensitive) == kCFCompareEqualTo && + (enabledModes & CANT_INPUT_MODE)) { + modeToSelect = CANT_INPUT_MODE; + break; + } } + CFRelease(preferred); } - CFRelease(preferred); - if (input_mode_to_select == 0) { + if (modeToSelect == 0) { NSLog(@"No enabled input sources."); return; } CFArrayRef sourceList = GetInputSourceList(false); for (CFIndex i = 0; i < CFArrayGetCount(sourceList); ++i) { - TISInputSourceRef inputSource = (TISInputSourceRef) - CFArrayGetValueAtIndex(sourceList, i); - CFStringRef sourceID = (CFStringRef)TISGetInputSourceProperty( - inputSource, kTISPropertyInputSourceID); + TISInputSourceRef inputSource = (TISInputSourceRef)CFArrayGetValueAtIndex(sourceList, i); + CFStringRef sourceID = (CFStringRef)TISGetInputSourceProperty(inputSource, kTISPropertyInputSourceID); // NSLog(@"Examining input source: %@", sourceID); - if ((CFStringCompare(sourceID, kHansInputModeID, 0) == kCFCompareEqualTo && - ((input_mode_to_select & HANS_INPUT_MODE) != 0)) || - (CFStringCompare(sourceID, kHantInputModeID, 0) == kCFCompareEqualTo && - ((input_mode_to_select & HANT_INPUT_MODE) != 0)) || - (CFStringCompare(sourceID, kCantInputModeID, 0) == kCFCompareEqualTo && - ((input_mode_to_select & CANT_INPUT_MODE) != 0))) { + if ((CFStringCompare(sourceID, kHansInputModeID, 0) == kCFCompareEqualTo && (modeToSelect & HANS_INPUT_MODE)) || + (CFStringCompare(sourceID, kHantInputModeID, 0) == kCFCompareEqualTo && (modeToSelect & HANT_INPUT_MODE)) || + (CFStringCompare(sourceID, kCantInputModeID, 0) == kCFCompareEqualTo && (modeToSelect & CANT_INPUT_MODE))) { // select the first enabled input mode in Squirrel. - CFBooleanRef isSelectable = (CFBooleanRef)TISGetInputSourceProperty( - inputSource, kTISPropertyInputSourceIsSelectCapable); - CFBooleanRef isSelected = (CFBooleanRef)TISGetInputSourceProperty( - inputSource, kTISPropertyInputSourceIsSelected); + CFBooleanRef isSelectable = (CFBooleanRef)TISGetInputSourceProperty(inputSource, kTISPropertyInputSourceIsSelectCapable); + CFBooleanRef isSelected = (CFBooleanRef)TISGetInputSourceProperty(inputSource, kTISPropertyInputSourceIsSelected); if (!CFBooleanGetValue(isSelected) && CFBooleanGetValue(isSelectable)) { - if (OSStatus selectError = TISSelectInputSource(inputSource) != 0) { - NSLog(@"Failed to select input source: %@ (%@)", sourceID, - [NSError errorWithDomain:NSOSStatusErrorDomain - code:selectError userInfo:nil]); + if (OSStatus error = TISSelectInputSource(inputSource) != noErr) { + NSLog(@"Failed to select input source: %@ (error code: %d)", sourceID, error); } else { NSLog(@"Selected input source: %@", sourceID); break; @@ -167,18 +145,14 @@ void SelectInputSource(void) { void DisableInputSource(void) { CFArrayRef sourceList = GetInputSourceList(false); for (CFIndex i = CFArrayGetCount(sourceList); i > 0; --i) { - TISInputSourceRef inputSource = (TISInputSourceRef) - CFArrayGetValueAtIndex(sourceList, i - 1); - CFStringRef sourceID = (CFStringRef)TISGetInputSourceProperty - (inputSource, kTISPropertyInputSourceID); + TISInputSourceRef inputSource = (TISInputSourceRef)CFArrayGetValueAtIndex(sourceList, i - 1); + CFStringRef sourceID = (CFStringRef)TISGetInputSourceProperty(inputSource, kTISPropertyInputSourceID); // NSLog(@"Examining input source: %@", sourceID); if (CFStringCompare(sourceID, kHansInputModeID, 0) == kCFCompareEqualTo || CFStringCompare(sourceID, kHantInputModeID, 0) == kCFCompareEqualTo || CFStringCompare(sourceID, kCantInputModeID, 0) == kCFCompareEqualTo) { - if (OSStatus disableError = TISDisableInputSource(inputSource) != 0) { - NSLog(@"Failed to disable input source: %@ (%@)", sourceID, - [NSError errorWithDomain:NSOSStatusErrorDomain - code:disableError userInfo:nil]); + if (OSStatus error = TISDisableInputSource(inputSource) != noErr) { + NSLog(@"Failed to disable input source: %@ (error code: %d)", sourceID, error); } else { NSLog(@"Disabled input source: %@", sourceID); } @@ -187,14 +161,12 @@ void DisableInputSource(void) { CFRelease(sourceList); } -RimeInputMode GetEnabledInputModes(void) { +RimeInputMode GetEnabledInputModes(Boolean includeAllInstalled) { RimeInputMode input_modes = 0; - CFArrayRef sourceList = GetInputSourceList(false); + CFArrayRef sourceList = GetInputSourceList(includeAllInstalled); for (CFIndex i = 0; i < CFArrayGetCount(sourceList); ++i) { - TISInputSourceRef inputSource = (TISInputSourceRef) - CFArrayGetValueAtIndex(sourceList, i); - CFStringRef sourceID = (CFStringRef)TISGetInputSourceProperty - (inputSource, kTISPropertyInputSourceID); + TISInputSourceRef inputSource = (TISInputSourceRef)CFArrayGetValueAtIndex(sourceList, i); + CFStringRef sourceID = (CFStringRef)TISGetInputSourceProperty(inputSource, kTISPropertyInputSourceID); // NSLog(@"Examining input source: %@", sourceID); if (CFStringCompare(sourceID, kHansInputModeID, 0) == kCFCompareEqualTo) { input_modes |= HANS_INPUT_MODE; diff --git a/librime b/librime index db7de83d9..0384fcbc1 160000 --- a/librime +++ b/librime @@ -1 +1 @@ -Subproject commit db7de83d9158156d758c10bee761543e26628a2c +Subproject commit 0384fcbc1c91a4bd9dd3b4939cde6e74d77aef18 diff --git a/main.mm b/main.mm index ee36e306d..0b487270e 100644 --- a/main.mm +++ b/main.mm @@ -5,14 +5,17 @@ #import #import +typedef CF_OPTIONS(CFIndex, RimeInputMode) { + DEFAULT_INPUT_MODE = 1 << 0, + HANS_INPUT_MODE = 1 << 0, + HANT_INPUT_MODE = 1 << 1, + CANT_INPUT_MODE = 1 << 2 +}; + void RegisterInputSource(void); void DisableInputSource(void); -void EnableInputSource(void); -void SelectInputSource(void); - -// Each input method needs a unique connection name. -// Note that periods and spaces are not allowed in the connection name. -static NSString* const kConnectionName = @"Squirrel_1_Connection"; +void EnableInputSource(RimeInputMode modesToEnable); +void SelectInputSource(RimeInputMode modeToSelect); int main(int argc, char* argv[]) { if (argc > 1 && strcmp("--quit", argv[1]) == 0) { @@ -39,7 +42,19 @@ int main(int argc, char* argv[]) { } if (argc > 1 && strcmp("--enable-input-source", argv[1]) == 0) { - EnableInputSource(); + RimeInputMode modesToEnable = 0; + if (argc > 2) { + for (int i = 2; i < argc; ++i) { + if (strcmp("Hans", argv[i]) == 0 || strcmp("hans", argv[i]) == 0 || strcmp("HANS", argv[i])) { + modesToEnable |= HANS_INPUT_MODE; + } else if (strcmp("Hant", argv[i]) == 0 || strcmp("hant", argv[i]) == 0 || strcmp("HANT", argv[i])) { + modesToEnable |= HANT_INPUT_MODE; + } else if (strcmp("Cant", argv[i]) == 0 || strcmp("cant", argv[i]) == 0 || strcmp("CANT", argv[i])) { + modesToEnable |= CANT_INPUT_MODE; + } + } + } + EnableInputSource(modesToEnable); return 0; } @@ -49,7 +64,19 @@ int main(int argc, char* argv[]) { } if (argc > 1 && strcmp("--select-input-source", argv[1]) == 0) { - SelectInputSource(); + RimeInputMode modeToSelect = 0; + if (argc > 2) { + for (int i = 2; i < argc; ++i) { + if (strcmp("Hans", argv[i]) == 0 || strcmp("hans", argv[i]) == 0 || strcmp("HANS", argv[i])) { + modeToSelect |= HANS_INPUT_MODE; + } else if (strcmp("Hant", argv[i]) == 0 || strcmp("hant", argv[i]) == 0 || strcmp("HANT", argv[i])) { + modeToSelect |= HANT_INPUT_MODE; + } else if (strcmp("Cant", argv[i]) == 0 || strcmp("cant", argv[i]) == 0 || strcmp("CANT", argv[i])) { + modeToSelect |= CANT_INPUT_MODE; + } + } + } + SelectInputSource(modeToSelect); return 0; } @@ -87,10 +114,10 @@ int main(int argc, char* argv[]) { [NSFileManager.defaultManager changeCurrentDirectoryPath:NSBundle.mainBundle.sharedSupportPath]; - if (NSApp.squirrelAppDelegate.problematicLaunchDetected) { + if (NSApp.SquirrelAppDelegate.problematicLaunchDetected) { NSLog(@"Problematic launch detected!"); - NSArray* args = @[@"-v", NSLocalizedString(@"say_voice", nil), - NSLocalizedString(@"problematic_launch", nil)]; + NSArray* args = @[@"-v", [NSBundle.mainBundle localizedStringForKey:@"say_voice" value:nil table:@"Notifications"], + [NSBundle.mainBundle localizedStringForKey:@"problematic_launch" value:nil table:@"Notifications"]]; if (@available(macOS 10.13, *)) { NSURL* say = [NSURL fileURLWithPath:@"/usr/bin/say" isDirectory:NO]; [NSTask launchedTaskWithExecutableURL:say @@ -102,9 +129,9 @@ int main(int argc, char* argv[]) { arguments:args]; } } else { - [NSApp.squirrelAppDelegate setupRime]; - [NSApp.squirrelAppDelegate startRimeWithFullCheck:false]; - [NSApp.squirrelAppDelegate loadSettings]; + [NSApp.SquirrelAppDelegate setupRime]; + [NSApp.SquirrelAppDelegate startRimeWithFullCheck:false]; + [NSApp.SquirrelAppDelegate loadSettings]; NSLog(@"Squirrel reporting!"); } diff --git a/package/sign_update b/package/sign_update new file mode 100755 index 0000000000000000000000000000000000000000..06779e730a2bf55cf53b18bee5a8155f4dee45ce GIT binary patch literal 1402960 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

Hn_jm}iL57vuETaN6{Tp}IzY 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 ykp}ccO%JQX`BEoN8ir>2ZpTw zFUQj77xVvpR=>A@U;aP&{pA0%WkR1hqR-Ju|6f1f|A&5F=XEH!F-y+BRAT4+>y{7y z8~-1^zaiDbt?w^B$T|M(5Tale`A?wdr6>2GXP@5A_I7tjL8=~T8XnfTMo59IPjkI{ zDlqfhO_BMwyQwf2yPG-Y8}6pc1l`SiQ*3Xn!`+MgrHM{Qe!Prdb0eyu7qPQcd{|{a ztk#ES_d!;lBjeZ$l+jxrq}$JV$yt-L{MK{mO_C*^SSRvJ1(Mj_XlfZDhMpH@e+j#F z{N#KVtD!b5VzrB=&?gr%5njafcM%4v4Sq3olq9udp}lT3^SQ>4V``b>i;3n~dtPBv z1sj=Vr>4Zar@|@IqfC#fy9(-L#*@htCQhhx4t368|zu1)p&^{3a%BX_Ohi8BQ56?W|4x<$o2?uwDGfMS$} zVw5Bpd04nZO}Vw1YhYNtF6Ib;<@i5s;D;FN_-OT;6h8fUhY&GejudNH5t>5m2qE_C zX)g%v*<_xCtL$#<{o_2JVP1R))PUVH%#+*+Y4>vl>PX4SD0qugZ+3hHe?=Y=5A1^#a{VrT@<5U$(&EIee3r0w z@;ExN@LWuc$UoFYZx6ICH+g1^r<+gl(~qAeheKq_9&C{0c-yBwWsT>`*v|X=o_|h` z12uTT2YCcyNVV!8AE7u-pDl-q^UmW#NV1k6^Np6COg0zw(TyM%Kp+U;)@pz@#=tszv4bN`vjQKfske@Do9dO&Ooa?H30F@dz07e`Wr$WOLl;M# zexTC%j+8~5N+!vi6wvCI)sXx!#-92&y3B}$teTl#m8LB+Wsx3W+daYDO37K(&q|^9 zV{ChuXXlqMWqx^X=KQj{6d3j;r_2LKg zq1dP%`VcwJWKNe-uDh_leZZL3rJtdPW(9t1Z?dwYp{#yZHOF$P-!q{45GOU>uP_PIy?&(~PX+KD8!ubhJ^)mNcecfH5^cpz zrz!35i7xFeUUpYvbJO%}oZubWJBzL#TwK>afOM7X?Hj$T*;cteJY8z4{bdKQWlX>( zp5h;`BU)P`v6KJx{NK+1I{pp+UHnU)(OGq_jymmlPdOR(maWYH4nDGb;sg1XIsgCH zZt3YGG^0FUpIw44PwMOae<3-MG3H)(Q)qtcZanidcQecU*xk%A-*-1vz5=?4$6oeY zPkqI29ihsqP#PxkcQXHr&?H=l9s_zl+8)XSa*nV|w7x>LJ|x%LDMd|)wxg*?QtA+U z-D(cxYBkIpG)xHS^EJ$3$}DF1^{5j~6Pbm)qRv^=iKaPs4t1evUW2Cj-73{NzX_rA z`#-xne`T**&7JnT-Ta7aasbH);r8w2zWX1FEG&)Xpk@(t`~e@-@i%RP zG@a`e|HEVMLlrry$Wdil{SSZOnnZtZ3@7D};%C;LJHKiA{QuuD_Due^^pYOm79Q+~ zWiAe4$E8vctm|DW0(hGy+~t~2{+Lc2=*Gzaw|Cr!0`U@A3;6(1OfED}@F7VIUs^@@ zBhu{4s0cppP>(I{CVOU@YnP9+v@p3--G@1(oI^wBm=W$px6Y93w_L2*V>IsJ4@-^5 zbM`$RcQ1IkHmmxD%)xjc<8d*9zBFSz-e+W2GX9>}dyTnIv`@WO1MbvoHGuprIoi&_ zAB{Z!-O)Y9*Pi|^{ITVeQC%4=UA$4^Sp-mY{GOxGf0y4YVKne05+LhU-hY3A@&;y< z7kJK=H;0U-%$4_#Nv=GNPkprK?|klV&o5ki@|Ay}%m0VZ&%Zn){}NaKX7%T>HMT$1 zpP#=nBmWJq{#DA~=<=VLmLF#`ytAviB)qepExGGI8?fMXCS_W+x4>7~#s6j24(E^A zW#=2%tos8tbmG9&;D|k;Kv_ph5rlsld)d7#f|A?)~B-R$y( z*tRRbd_-q;|MGCB9twg(TG{%Q2$7K9hIq>hJ`}nP$+SwQEx)?c{))8mmA%H-%Gj-M zWX5~#+MOQn)d#-Dm!$CZ2s%=h8O0B?G%vnS3^_LKagZrW601KeE9?!?$V4F zWH^AMk>KHvL(%bZUWK9)Hyl1N%a*KJCN}qcfeky^sFGQ*=aeTh^e=Jkb#1>DsBX;& zZDIMRIcGIh6Wcr_6}|~MN68ewGd2HkzNQS&3y&rmi)vjLuB8gRsA~SQd(`~?{^Vj$ z{!NX?Op{6z4wv7dO&OVBb-@GWtC(+O5(qo8rii(X&37SHbwseN%JLS^o#w~kO2xRC zn4s~e6WQ%_G&_w&T{H-5rTwW#`g~Rql(_T7PZHfTR+^6){d=0(QJgEsE!R9;GxVUg zj+wW7ie7;~s+A}*BFH9w0z4ls;=2nq+x|OpM#?esJd}s>POi+rm9OHOZ)48r067`_ zbsp^0T-vM{J%J}ulc%)Xpg{nkA} zEyavZyqn6+VyYAdBV|Rwuy*TY_D(l><=O8t_a$6L{Iljb#<;8{QIXH3Zd!Q2natvL zX;yMtc=4I&JGJ?4kIOl>6BFBZ66JP0pkQxglsrMbAUyLAri879$+gPtCor)Kui3QK zzQG$+16S-a&uo;bT?UNqE2ej}v=;jh;=0)=0JE{ezPzuHOF2{F;rE!9%wx|)lk;0U z9XdDgJ)353U`bgWh+YTj5sN4U0x8X&vxvtYILS;LX7!{!9J9d}7h+n$C|ceUid>t+ z1Te>+G6@O^vz*WGLxeu8i}`&x-S$B+MrCE5SUNwhYh(jy{vAo7dZWpj%*u5G*oQERIwRgZzg_s2Tjg=)_ZLpoLU;muq7i z?*%qZw8m{Q9LY+^Y^1Ce4IyW4V0-I_fhCi3^^>ok!uH9AwVH^HGj+x{yTLUnbbUjBQG4 zmPzp3)k>7kdHN6;IBAQ3QMQ`no|=e0i2AHF{LZn+>1gdTVqVQI_S*%{8xbR7rcl_P zcoYh+nZr|iqZoz*cM_%vzEVT#bd9caX$jtW!^}7(+ctGuwL&3ksb~BIDljJ@w3|7- z=3m642pXvffb`x58g8W{KMh)xvcu%^W206t;*;GJs#$Gd*R{Er&&u8|l9xy5!?OkP2p^c-Qw; z*1B1ASZupeq)CO2YAWl5j?gllUnMGsBy-q08CnzZ#}?w0 z+6OxCrX-QlFH~Z5{ORKznqtLdDcs0OTaav^aVmaq;E|JTk~)vLS%vegf`9;;VBb*f z?@~}MgKcV8!0D~+Wt~=lO!ezJTUUgYz^5h;r^)L0n)wnRRK-qDbo}aW%DS?v=OK0rgzxZu^L1epoaAVcEuLI!M~kV- ztxzs+b0|y{+QJ>7FyV17X6tT-IZt6_oO6a|(<;poFt-q~b@eDeVk`W5>}OVBt@G54 z6a|@A5gCjjEa%Rg#Tu1R7$n;Oi&ZWFd^n>2QO!f4waI!2{v7jBpg zG<*n1z-$*7ZU)mR%2ClfZ4hmlmw)bP`x&l+h_uSb+55+ioEw!lHI`U4QiJDJ4+!|X z&42lMZ&TiSJ0dcoJSQCFx?yBk<6in3D6nHjpumkF1^#%lT>O9x6Wow!7D&-`dJ08P zKI$Z~jI9#2)m#t4#De!e&cucrNTfreF}O5#OxbHrw!J9d7>Znlj{eNJ?7&*kzT2u# z^f-@krzG*Bvj;Xg1hVF!F&}^=fY7EfPSbM9faB`WWJ5-I>CBlHVLvTnKZB=|AEFtL+9r08C zLjvLVkFdCaez#aXI)0K9{t~3IT7(@jKBOeJ@Qg z01c6qmmCwvPaAFJf|R7yjVaM!hb1Q(ib$TRQJM+=<1jEr*OWSG#lnE&oLKnTcc|1K zl9%aTeuQ1I*BJo7jARVGZLw-p_I9gA9XnhNacb1B?)*Y(6tqA>OAB1p*I(%BS9=)M zN{70KR>rQ@$kW6Bs94O(*rdh8z;(xKt#>=F*XEe1w(PN9$K)JftA%H{T+-vw+~UdZ zc&BE(e(B#ez7elR$Tnq)h0Gxr%G-i^xZA}3+qL*Du55&8=V_9=ulVy5TJKdJDa)yh z9Z3ChFZE@wC}MKywvD7Mgy#>TO6ZW{ zMcm0ucAX!Z%N!7+^92ycc6bR}8$w~^Vau+ZzDArl{vIeoe0y$W_SnL6BBf)CIPhg` zvD`4a@wjO|H*)pZigP22$IhC>o`hrPG?l-2PUMcUGUbr?tIvttK322Be7s|<%(teQ zt>^M?6}RU`8pf{XIz`_!#cLD&iJPXGFQ^dNa+3nNw~y`O=EF&W@0E_t=Xv(nDt>2- zT}b-BjqT*yIg!7PZB?4dfh7aRg;-ZKJv@6{F519~Y2ngwV)Pc>z^P@;x+y^I>6{+E zdK}`>b`e!*+4S(@aYc$7e{pKl;&H{31H)#I^Z1=HZWj4gD__;LaA@3oM*P;vO{L=& zP7mKcu8w-Aha1MJ$5Wf`7^mKn;DyOe4dWD`G%b9`ICXql_^;zuah=@sw{hw<1>ZhS zy$(&VyYDj?S(U{p7G8L{M#^H2c0yIE<0RvkL*eo!>>)9BV6;^!{aq3!*fX;N4ewAG zPKldYg;U;Y3SY9*@EwF)BcE0weO4fxV8-%hv=)Yt@@3{E(#Q=XK`=LH-5GjR6~1@F zjQuGT9I0JxPINb|W&}4~1My+jjR1ZWJv()?Rm;uX4@kZ9awd(c6ps zI?{S;I#h;RWg841T^?rZ6lB5D4Pxi+=yLY)lz%_SCjVhhB759i_QU@B^8ea3ee?0` zZ7dHzT^@eSx=Sn34F>Lf(K-~m+RIvSj<7s0I{e&`QfFA|wq}VG8LOnT#HS9LU)^5T zj0bCz2`zU>E#=CnV)4i8BaU&#%3r=MLC?C6==dy3GaoX2k5fruvh!0;11Dc~emKoe ztrtk@|MlBw?>luL^$RrAk)m9&>VK!*b#J3o3_RU$b`umDuG#3f{ElP&mVbD&TJAeI zYf>$ji2czWuI1m?HEKJ@Yv^L5sXW@*E&ske)%r=4XvWj}Ad64Z8{bEJiyeHQvGDyY z7`+HZ8x;XfO>0PUsIM$CJr@fAl4CszWFzHFdY&b?D>j= z3Xz!aP@4wP%k0%zFE(i3TyV9oa#v79x5|xiVBf(U7Hy!T=OEshrR~w z)<2pPiky7Q^D@wDTa(r~Qx!4uiv-+&8e!T&Dlx#3zDAKAxC)zbxU3mctWVXDiIvxHt}?xZkf8C|CT zEOkfWOcQ+**)QE7 z%1O~$vQN_~KmKzac-MQrsaxJ8SK$AfnIHJ})n}c!VXdD=Yx-hE&TI0PN#vXkpwKuZ zPguMMMO9jnBgTDYncBU{JgaNB$XR{36FJ3mQcN4wRA$|ceTkfX=}Xd&M&@HcVpNB0AH|PA?IVZEn6@4UwK|m#|?PbT45`xdF-}*Y9EOzBtH^@+qeTI^HMD zexppR2APzI88t6IfeFA#V$da&H?xRYi;~0z-Rso&MoMb4>#vgQ)Ha$;?^x7k?bnUk zy8jZ!+9BFjFMK*>ud)tD)se{DKUxTmZ`0*0Grr)Ag#!<)h07p5>_fN zD(QRlRxSzg7o$(tk?PMTQwaWC>l$b2OQf>U3%gw?Z1-xL+RK(@oAp0%RPm6m(Umr- z^_=CJALKd8IQ|m5tWF4|svPLoHX}Oz3aT=*ZV;W+Ffe8=YD>n8bjwelKI)(k3|PTW z(~DN`f=Gb4)oXH@Bbohu;ek2GS$j~aQ_do2Avjtz&^_B&Z%Msh4YO{V>}%0v-}wv+ zGjmzXwuhINEc|tgH5X~53jZ^4evadL=kfiPz}_S8b>wvhe2SL#vw{z{>XAPd-~-@A z{jFRr`D}hG$tCP)xtR=BbI>aY-01kl1DGeabjs9kdDtg5Hu;FIDFjE_6a9Z8c9!T) zF6M52P_fR0Lc?IaOFrHP*?b^M30;TlTb^*D$HjG=UYZqX+@MA# z)_Wt!`HFvV{nN_%%5|?uI@Cl(t2G-Hf)$)_b6&s(fg=4I&r-jm4DUBDmHt<=F?LeV z4*ylM!;+)z@CEshqYN1~11VuPm62ze@DqO3+wCnfVLscu<$&ehlo-RLx!4e7?I0eVwsPe|?T; zOSf&-jE@~38uO^vs-rK1eJ6A7(>gBCwHB#hrCHd{o0wxnAxvp5}8&7jAbghZclj~8VXq_it zLF(dmp-ooS$*vc5C6TF3@Wv`z>eOb2$z^yj5tEH8+$-3ntd&=AP}wSocIw8avId?v z^W4nUa9vF)JHm~wO@n!{f)9HrV;NN zu*lR0a~{tk!JvEJVv0pNYiBmtVHZbxcxHn+RpsDwL@uw6ELTs=_jm=Nu88@U&{`2VXd3tKC#INqDT&N#n_-=LXxckn_X2C#(d+Yi7_si^3Ui;$ zpib>Jx83G?V{W!L*2izIb1z%WRqm#hX0M9SjeE!$SZmv#?2Xx~(iFRJFl`Dh?P!Ih z(0wf-CH@|0WM@RauM>s%11&++DbBR+x=h zG%ZusY_?vdmhJId+GkG!w;xXPbLzHPxh(Y9q4)`JCbr zD3EiEL#+aZoJ|`j3Pr9C6mzs&z|%)gG6)4`A$4I9!3&$Nz+QGBtS7D}Xl-6I#``J? zUQvBU{bpWtScm>Lh8%N|x?*)ql+q8_l?!Xs+(IW}njOiIhfPv=r0HmCW@VL_21ggQ z&bM@X-$Hv?S7$G4nz#fbCFm8JI_xkz8vTk;Gwj|eeqD!97pC7bOutKQ&YCXPrnGGt{Me3Jd+K^(oWTn3iAa5bNW%LkZP(1h(^lY)>H`i#k^9?FwxofdO-Pvy zPg6W}mr>kf>|Y0NG$@(fO9jP&H$4GHv~wPB*aV%Ej(m(>9#<vmFBu*?+p;C={U?^#Dmhp+dY=Q)4wJXU2N9OE8ODQ!QVutB*}qUg8fJl{ z&mY`uKf`hVHe0wiAMyjJI8dVFQSg(H#*4E=&`PseI;_nSs3)?64o@wFQkK>2#DQw5 z&Gso$-WoqaXsMZ=njcCk*l&7m{{-mOyH(7a3#M{j(;E&@qIe7@;p$DURX%eIZh2zXi47nc@3?A zpi{69H2ji;<>9@tgSdJL%nfV0S&Jijo3%I&SuA2E0wCgS9J(LTMvgno!?kIUy`KjQ z*?YN3(O)-cf9k$l&_=j7EBFb9U+Hm3R&U_8S>P_1$JkL=8s00o`mK*2FDeW)ZW)Ns zMxOPA=S~Mt_Hpk6o&!?we9)V)I1Qe$pHf`1ioR@}Hf)`eLK&l>@Bl`>#X3=SW=j)? zsAXR-Rl0@HcEdD_sTmxsvZwkzO>aafyUdAR=}?NOP=*`6zn0~4|8I!Qve7M*(AA?>R zh^YBrSPx!fGdMkXi7g0c$Mvqnjr7BO$GvPZ-*Pv=-RZ%Lw(9EppCi_{WamwmZjkla?SoBu zs8JH!2v_((H%X0}BLFHu2ISW;I=jt@!q1y?{z;=FQU|x2CR1T|Uofu#*a?d=<}y zcp=kwz+$gst3sJSTnbJ2?QedN%FukJfgI?dXL$&iY`Td`ostfS6cT>Wt(IrZ1NuUW zbzG&K=>D`bEh(Cn`i4`+++lC5L1CKQeU)&uSedNrY_*1G=3!zrB2uZ}KA~RZk}p*9 za^3rl?XSlAo!EMb2zzC+v8UQ($t`l#*tw0au?Of24b0`5Z0z^XaE;w@quH&eSP~-A_GY<$iQkfojPO!LPwe}Q;erHSrR{ILX4u}7fJgJSEyvhZUi zZSUjkwYDYX+>DxH?y(?fl)1?(0NGgKZd-}$o#k#hsZuUP_81eonA4rM=n zp+>OwUK%KSVzTF2K614aJF8A>I!bYrmo_adEUAB&3A?H>%092lS2%Z@EJ_NjwL6lq zxcTQrz~oKPD2Z zi6Z}li~|>J_TUIhC$$Aw){OwMWOqjvM9yBMq$v&Wso$JEmr@(&DNB8A9bYcft>y(H zvvQFl*erf1Sol@*AX|ZIGMY1|u}1sT<=OoUL>eW%g56G*x%IZ=zT>= zoQ}L$)iioZoW3$p-`Cmi(fd{jr-dXDPV??{I9-c@*9T7jME6oSy_Ga+IK4qx98Ry+ z?LKh2C1)Qvy^^xiaXRsjec^Px1#kvVz4^UyT0ycTPW#y`DVzp!)wm3t&RCGdX$5z} zsmB$ZmT)oW^7F-Unn>dG$fUi}6Q6Hr4$~2Mw&D{MwP|k@fO|g1CK`!-Ul9kLD}hetXb0+ z9_Lx0X5g{zn%;P9B3TlTr`s$kJU-Z)H*dc-iN_}HgvUCr;PFN-=2m{bI39nM#N()B zJl($Vx$q0(Q~Y@g@+Wox6sSdK5xX9U?s*E#h+MHM@ng;Um51N8_PjH)jOH@&X?YJZ zlIm{>_-xhSA#v>y%?C+z=~*OkuP_!}XTPJvh$Lo`#1wN-sbqC_p1#}Q;dEL33ZO~R zL%~7pYf`^8+gU${^W>95K({G!(Db3d-zgF}Fi_-x3$UlCUPjUB=jo435wn;?RB2AtmEhK3Jtq(b8eTXUl8?wHPfZIpd@o4{ zb=(1{7IOnP5W;*erj{QS(9`lxm(n;Xp0QF|!$P2b^H)^KbWHEsmiV;)jJ$^5!n-s! zb_y9Y2q$TXBiJMQ)?2W9Jq3I07y+Kpa{ISLJLx+oD41U;;UIk@VjZFJ<9nvFQXkEu zJKZdMizfbW3miG1Hqpyg#!{*ArQwgv58p=Pw42Hf;21y`z5M~!G1g%-!D>ujE1sC~ z8k(Ki_0BTSN`cAc+;jq<%(jygmcqwDNBt%jPdR79=3EFlm%X}p$O#yl!dmlpfbjnWW zs@&CFNyJuL`Rrs!5h+T;AGfj5r;jlBlvd9xfXq=^yXZsx zJK1gTaH`4LmxsLSMOWsF62cg1wafq#NV;5s9?{`n>!%>1`!-sl-DHk&f_RS}5yTB6 z;05R!-P2BbVX|%J6Y(@_jFLp`5;hWa@@id-S0!y*b0$X*J_U0E^MB~oYuR= zeEhuL9o)NjEVaz&-2;bN++CMtd)K74(!0xN+TOuJ>Rt6!e$VXZ$jW8BR?k-GbHty# zb$I)4UhSi2n||ziW<*}#E&QDxJqs`uWWo>2vY+^Stp)Xc9w(B}M)Sz2fzJa`8ont9 z%0s`uE*GJ^0$)d-4TG4JPas`k+GgK_2$Xs0^-qYX+-8b^Mr{k>kChBz zZI&f3guJM0g5Sz(P#e_BcaRP-DS)4sX@H;U1hjl*x>uRpjL^PodgezC9-IA4H!4#? zcESky=@ghq<3`JCTJN)FGq>^^RY+jjS(2WE)V9~U2LrlAF>hkuyHN^FVjf|2F-E9m z8WG$ml^PBHB(jnNahJJZwMt<$e67j~%dVJgRSS0wVW;V{QfgqyH{OZzX}%Ggp)@^4 zWIJR;8nZ+vFgAV2;Z}XP-4^W+w2J&>X;2LV?FXiyuReUF*&Z7-Fb{ur?>@X_N3^4o zefZ4$=x)Cchq^v=###hfXT#nrvoX`&`S#qT9G}CTIm`n7I#q?iPS6(pP z+OT;UYEH_2T`;D%2xqSY=ohPDrWD2x*Ln4Q1$Zrx>-`O2hWtAqShqOG&5xX!qxOb!a_ip8u4Wc* zx4GYf?!$Pw9)52hcAMGs0p5|mip*#YC3RBvYOoOpgp-+Xe?x*~rP6qh@T0#aOpcg~ zEZ}RIJ+prYCN-xX{vqbcB?s*}3a0dT4J&q39fFsDBIa}|(1i=OBWyf2h8=Vo~&^P@B>VKvd^`b%f zdvfIO@oBIvcBRtolgH~WOLk&0cj`nnS2{6|i@8bfz6_}Uk9hnRfEUwd4n27MISAE( z{Aupg+IFtA_7N`TDZTp=AYU-sg8TTM^T+=ye($hg^!fck`>@+wEn@f&{9b+TKKT7A zi-gbN_dBOJet&eT+wqkwfsS~;hyoKt>kIaF_j6yex4R~% z_jV!JQg8oxsqL+_e{%=#V)d3M>Fou6ij7K<(c2IQGx@#!qduy)ccqmRQaM_7BY6C` z`_Ol9`+d>g4*9aZ&B^HP_rbJ!o8=lKYrx#ayV!C&G|}5CKgD~O^z7{=`KjKv>7#nv zqMPVCTh1lqj9bj1#)DXH|InQPP1Cy)`z z^f$Wnow1*y^ILx!^Y+47prHvw_He76JUc0*M{`F#Ehe8Er1W82%<=quVYgbK{sdcr z?^5gK1F*p=_{g+xMelL^*J-L)S<-L$A z9jV}AD)p|9;btF>jA^#~&vRt3Peosy=;g=|Ly2)vhtVAIn)<;sZVgOyd_}Qi%Y`M5BR-;wj3n3oj~z*VWG_P(=;G7w zwHJy?DzT$DIw++*0;xVUM>m=*b2gS6O#%%%=*`@wYNF$>JKL|7RzNlz&G&5ej3{#j zYJxDB6v9%n2on%4w)re;`JF}JC;Pf#f|ZqiUz1ugA)-a!nH_d_ncwn(9I~D7)NSKyfu22%@gVkOo;|37klpG*vsjr8wF8W*9Dsu3lI_o`Pth4*P>tlWVi<3LlAUU~ zfIGqXyIh&v*j3HysW>O{*p<6Brp=|BW@(>j1Foh*nJ66JL3w(ZUJqgLcRN|I;JZWu z6GpbnMlmXWY*(Q1bT}b>e%Hn?61e!OvUDsc>K(W!`*?!l@f5U3{MhX7fW-%6almNT z1N*zZ+13+=%?OoubEUy3mglkZ6H&tuA)kV>Us%@~M zp&Csf3r}Q&QADXVN>%()6-CV|UZSB%>~7a>)2jXD+txO{*ix%)Y?a3QBA7(28oWT% zeg(C{tWiO&T(pw^`!n{VRz5e0FKJ&~o*E8pwIdkUB8QCRHaNp`J=C3#Nc$)K- z@IUQspgC?U&GmSa3XeuGL1cE!=mUoJcmBWW@54j;t95Qf0|GWfj+mtAYEWzao-#Ej zFbPNe^F>N|=x3!ogp{bjp7rS+c7mJ8U#Ly^DzX+T~?ktmbb9Fg*y zM~h-tiJFtg!+S7vv5g~NmpRif)Vw;+0eN_VtrVEP5U;W30i{Sz{WTFnrlSNJaSEb& zW?0tYG>nr&L%0m=7%Clv%Uo^~Z#LJuCm<5bx_5z!vMj6DobJjqr}#;y^Rxyo|3YtH zLK=9&HmAF<9`_-jvFduZCU2WqSRkiOt+SBCQLR?3++3vnO=)gHiSFug+pQ|whuKmK zvp;fdFEVX=;Fh^s1^_&a+u(T1iMGJoYVJ@_%!6vN=IODis6wGpL2xf_MpG(JzwbN`rv%Ej%FLqaliFhc3+R z7&$>v%LzkKyQL<5gPN2aYUepI#@?A?`jJ zXMg7W>##FJ8}MU=`!_uPSszPg*73rWR=W+=n!0wMe8wb?!}`Exft@P?Ex#73CLZY} zk|EG`PGCh}d|t}O?jNt#e(h%Sx6{;a@fKcXJGHeMUAXksn;ISWm~0KMHD3xM5N-&`gqo*~w9yeAzGt-|*F=LipU;LL-+{GRh+$kziCE0f_{o<`d|&%r8A!uJ# z+&1c7CabE%Eu%VllBkaOz=|imm2VVrCp`vXT{V1cvL9=k$lfxlj~7Z{B?w1*cvOs6 zpJHkg_l;_^uhAHi!7ZcOZ9eP9O~rJ$*CpiC>vH=l+2)o}UGCEY|5M7n&i7yY-K)oI zIC1Hy1>wZ6NA(gHiQg$>#;WGO7gFC7Y%rwE!1w++SRFq~lM4LbDs&P0YTMa60HbR= z&D$j4BWGdjG@$HU+vhg($*CGGdy?2}CJZvDso*N*FoxC-oq5$}cMh52xOlUcnes)O zum?`fp5IsT&gaB3N)D9TqoK9&4A+7Y4GziruQzYL(x>DH`jj}e$h)L(J~o-fr7(vYp|t)ML?(7;UqX>- z-GLU{Y)&hzXeh3WM_+{Mi!0@WgfoT30O_3KGIolJ0Uh=yi3^KM*fqJKxR~GS;$S2( zz8G`cPAn#iiy-!{8fNTT_AukKg7(5)JQTjH^Mli;$gtu?JdTI(&)cCZeMxZXBr-`a zXb;AAF;7O~uj_mRQ-gVqERJsQfSx!t)Ad$_7u|m?*bN2qAw%!i1HRiyBggiMqYt=U zX9qT$8w5)hb3cu+hno!3D|f;yZoRO2$r*|fk_&^k^6ynU8n& z532%~vuK0s+9e+6#V;Mh;T5}BOFD+edaafSF3>q+%zOm28^$bvvz{@An{$Haj9FTn z_~{sNRrulTdH7t6hhWcgvOhl^_-vZJ=FKBtEabI@b8oP`76C z--f8#3xnzkw5S?+_`(g-U(Gk-`A*GZ(nKfj5gf2-6PK&S=_>5m%q3mcwO7uuSs5ua zj?Kcl3p1IVTV0OoIJM1YkoGAwPZi1#@RGrmHv=N$C^_cya#@Nm;L*aw=M0( z`#3v%vbXZ%(O%)>px5VW_l7c@l6ti8Z@a-1ZYNT)jEkh%LWp)Ga&U4$% z-_c>5@Jnv-7K0=-o%tgQH)*m%+C-}Ckb3y4Yt?LR9k}HWYqNT`Ica}!yGG-d=@ z1-txCT}K@?Jxo8M8hPleC&I!*^h!<*U52f4xlh8eq9%EthA&I(Lk<##28xNOjk#Mq zlEOJ%XiqSwHR z^FlEh=P5xir~l@|+l0~&(iSg?L&?iaHGZ4T?}*sCO3P&oIOB|xB5$*)!YNYrRt>(W zsHmc3P|^B)pyg~knxjWjs8k2Zr6DV(F6_{Ro#nU8%7Iqh;()`+-80;8P!2ObYm@d} z_^vtlz7YipuPpGFx?|ypW4-3rx1W+cc89&I1x9OT&>+@{1ZNS{K_b|0O>_4quQe43 z)NH9)xpO3J^*GdYTy1BCSSIjEB{gf_^|}}){oPc9KxcVs17H z@^h9lPD$?bF8wGlo2TcYKexpUa9d2Mb}~D%o6Ov5h8wrttjaqi_ty+QyX5+s_d*K6I{!$YYm=8w3b6wr zzThoeB`L(NGE({D%@VE@n6k|w+3mx?<%v38y+pI+3Gr}~m$+54hL=bV!%n+mL$(HjfD5J`LkRG!iAkbTC6Sa=;@UXO*51!kB) za3l=qg6)ySRcN3ZQ(DoAQmbPN*JdOif5t@oLay;AI4dL|I>m7FDjBGZJh*nPRvJjPaN|zaEkvG(;_)f9#=W60FvQRWNP5Ew5o45mq(MN1~14#irg!*rtm(<40 zNhB3FRW;Vzt8;&<>L^in*_d#Z(1BC5C%Qnp`6>aikRy5eOdH&aE;k`c^Vxc*6^739 zi&xJx=zhM>+ZyNW{y{fI*w5r=kW#i1>TLk-U&4jpo- z#G&_hD-P9GiXO3f>oIqqtPX4xY5rS@s9_Q!kuFuDK{adMgAA{h6keM=YE(`06QO*~ z53&$zqj@R2r7JJ^al3X8w5(^0yyP4Rd1FRu@W%mBNO*{wTQRvjQRoKVHKsl0`Wy2l z3((cA4y^Xs&QO`Lypn|3u^c)x=Z|NU&fD?4)CJnj1vcPj=CcS78PkZZ-ik+VOcO*P z4b4}xTQ8@X)`}t1FW2Ut#@)5qt=#brqKCkrwTJK9m8zmK8?aMaiofCJJiY^2gL!_cv zM2Hj6c8#7lSerrxCAJu7I+20&WuU4+aTp8`0;bRy%DEtEHm-60G6K`!2eV~jY=!Bv0 zx~f>KlZL`C5_IB_t~YCS;!wDYUZ)rUpG~;(ulG z3$zYMCW=1|FxXJ(*fzjGS1A9;UH`BMr^H)SJ9tR?FtpBLs+6g)_zk+&sbqxXPXKF^6=&Z)s^C!sH2=oCPrs%DFv?v3l7uT6){2mI($5T-l9U2@zphP+4TOVxz;uZ5E&M?ZC_xMORIJu*O&(!>FUbz+0fJ$i%D z@@jHconCcD)md|^&NP4hKFOL_gL-$^95}7!b`SiONwv_%CIN4lu4QhUQR>YC@(60Z&%&stG}(#J=6r zZ{HTvlcXwTevc8{?t*R3y>lb$&DKgAWu5Qw=GnJ!yF0KR4|i~0{WRiY&QozBb9j9@ zX&1P(y@}REgshvq)+IL1>AoOSmx2wTN7@y1=MurUy}OwxHy#Ge<9EzgXYgleA9r@x zhxPInNgn<*6KW)R4?7BEene2PMt*OYyOh_RQUN;g(<)*`U(4lD;dL>)Rujm` zz_%hjI3!0t%mGS$~uEquzfas!#@x{;@(mZ*KwnT@*JZZXN2mzMJd#Ou}G>|HKr zr#Wnz@P6t6_PxGDh1?iY->1$3a{s)xS!njPpbiNtB{(T8EI0dAP9vJ z?6SbDSgI_E3E#R#l;2vZ{<;(4tW3pT5!i$BD)GTr#jx+}B7wN69+O*}G@6M!Jmr$M z*g7CFKZl$}YzdyO|5wvQ=O9rm8L`1JklP*SuzM!#5{Ose$xBRP(7NX}N7{_KED*m_ zo{FR2m9E&BIo<`@%$Er`T4pRa+HnM&Um!CYQ43902{>benzb`Ej}IhQ3~%3ADyaK7 zkr|3ZiBzRrVqsPvr*1fRC0#b$$VBt0x!Z>EGDe#^Ts%B<>R%Wl^Trpns9V@1Fx;#$ zjaj%kKrAzA( z6c|ZRM^K<7IG^Amf-!Fap%NFlC=y??grU?Jq90fqi7(fL=f&IIWG5wnCO8xX9g4R) zhM1-{6bZ4ICbhr{>xd^7lLFT16=Gd32)tt{o1}JKEY@oy{o6cZeJ%+k66;qGDfovK zY^AdhxAT&JuOzG%|F;^4M=WnZUjv?jgG+>NnS-xZ&4x0s$$q;(=DxM*;jT3$<#PKL z?jV?QA1sVAhtzzhk8TT92dxvW8(fZdf?HfLMNo84E1L*f+J@J$M@?kHT_+b_&fy=R z%aX~op$)Y+YH0^`qrYK>mw22=g5yg_HP_r?(+Itt$awa#7Sq%?GslIODm>kWQ5sHj z0a_SsPt03xu2%tWo@z?WiNmh!1OpXbxQo(Y$mnl4iVn==HdJz>kL0jdhBW@kzO~G?ziV_T^(FBkabR%KVTV zs7Uv-kt9`HSEK9kjUwt<*e-@2yR}p6A;?ck_bBP0^yC%d91E>r@%{lK_^F?}UaEm@ zra|12l(&%*9zfy+BsNbg6`$wX&*+ToXWx85T=wE`iw+!4Bkk1K?|7l$i4mYvL_9oN zh2Rs#ls9h()C3;fRN)0?tjetZ7?p|a`)l`NvvZ`iFS)(M=&P?|@I+&Yic1KZJ{yfO zQSzoTx8GBn_@6B`iSxFzP4kuNxWV&spheq_a^BgpjzDDGo7}ENpsMLpsGz>nca&|< zFt=b1qbWitE56r01>-Z0HB%|}@^6>}j;0y$RrY}Lye_45C3;M z;kcd|-b_47S@5yLj^Ek{H))#xwK3Q{lT}50Rh3XL9h8;q8>Z+Idk#7UC+WZu3>TCt zS%GSDgwi3+J%_ONrX-XUd1Y6qY$=nTFH^Pa%~L#;`*FP|=0SG#?E~|3`a7lh6W<=Q z9eC6>pAOIrRq*8tMo@~jb?2qnmU)SifQ0!@{L{gz)LUZ*rafr0J(S7z*wN}nrj*xJ z#82kuicn?KsEqw>8rf?;B#axquQQ#azm(uxhgh(N9o(AaIg<(_(_X*&OcE}KD1x(- z<1eHGH06xm5CNcbMsKN*p*nVHZ<$6CC0vPJlWb!?NJqeQ7&^Fe1@5)Gr#MqlGy5Mq z2M2!04Ta4gkEjgX%BZ~NZzQiYU(vVkf$3LYX2lrDf)nNY2_+8y1nEM6tf$Q)i^i|$ z$pv*&Ye;PFQz|~6#AolZg_nKv{7bQ5&4Oa1vtEj)YvTAF*kPhfSw4|uiQ>1iYx!@8 zqQEvms;Et-o3KD-DIt$P{!4mzJwp%uL+C-&;m-88U>loH53w%~rH4JfBrMCPhqFoH zbzS(at1JK*p0+GifI3;K*mJTn=2JzpjahH@rvP>6U{yu!^vY4i2miA>s(4!zIg~0s zEgeo3UsTzmiia)zt~dAbR3&%Y+&)#DW9?f((O)X|v1}hQ=)B1%iv1VlFglMYuDsbN zij%wtvw1U=v1vDyv20$h98tz0RGXoUmkC1|VE<=Q26x2&_muH2lrb=MH)L__`=I{q zyC;hhefxo9#7!`m0SL8Xph2t{B97Q*V_fx!rrWBmJ=pf#*6np&^vz4Jf&>a4Xt*-E z&Sp+xO1F+|T~#s4TvZmIo4vQQqr z#)5E`61yFhthjh+xr=Qgj+#r4G7F{Ud924T4<*94;3-#yp8fz6(5Gi240nL0*=^#f zwmsYxQyGMwHNTgjVg>!|jEKS`M3E_;r3h3``kf2+vZrmayFn(l7EPGnRI;9sOpMiy zhrH$4;OsiglIm=5?tIqK_3Nr*-&kNxd1fr4WccF@)W(mOh{x$bq5^yB`D=Ynq%f=HM z^u4Fq@UV0nzjcdZ;(y+59}g)u5^pZDkA%)oM&h?>Zmy2~B*cTZl)FbMkL)TS;pr{j ztgDl{o9FYZlnZ#$>LonX>d~WYtD2Yct{cyJbT`NN)whx#Niu70O{aUTXs&q$jO_!|7L@Vj3+y-P-m!jZ`zvPhT6h_7*plhJ(;w(h*b30q^SI<3YBZkC&Byi7x4F+OUQ_BIXFl(Pp< z2xtsejlH#n+nDa=r*EPML-uD9@~<$RX>_HXMz3ZTeLryXYb2BF1!V_II!=jKA7c?w z0WdM#sQ`EwZd0I~MU~bM)3HK2rjpop#nvJBOz*BfW_}@6S9*g_2U=uXQPp&EVf0;& zS@qT=uE9F+tbUvfZIE5fEaPq=2)DCGV+&+c?Vl~T^BV`|Fc+BCpIP1?H(ORNEo09YG zeU6PC_@4$8R|ASO0mYmRwTYPkV&)du6!9~+^Xy~d7!wPx2NZxI$~uxsC~hwwV7IE> zOa)`mMX0H|$NQM(zMFJiqra@M?j>vWe=Bum)Drb?(SVFhpL-c9zxj^e7 z^mAZxKBSq!*IGE6y>HU={0gcR3*UN@!pa1hfzP21e)uxMbG`Wj;FeUi2Tyv%iVTy( zQM&kMn0EeXp0C2lVq zG3yRT`~0M@J)?p?`a7^+o_ypDt`vc^*dzbRQ8n6(@|sa%N8e&RQUXtM{K%#UmeUTb z@8_$kL}X+UAG`FCaL{QaBO@U?j2VcbdVf#mhLNRm`iQFb(vhh3fqsnPAW0ob=35v= zMlK+188z{X2ru&Emk`z}8(XoFZPXvDMTdFINNMk5wd=jaEhC!ZpB^TH|nN&RdaMn7ATf}_LnRAP+jn4S}r4*~B zfBYUTZqX;3Q^}iI_%EKM0d+es-*jQM-OO`g_0`l6W=E!jbgs$wtEm_*o2e>^1(P*K zb*BF23Rk+OK(k4uaFS1H{G$NoG`>60J?SoWN#0+_kZ?ZZxx=XEkS6+xm+keV8peAr zh56Y_0+g@rOcqgc##;1trh-875{q39|F8{ZdwW!IV8uDbx}T>BlTO-TGY490NvTaO zY$fnm$CdGP-rA{qCsbi2euN@8$dJ)hCHCPC$lFD2phF>kn<|?BG77_+o5CIDfjR2C zeD;^{-E`A8-k}+BIXSgRM*`!onAg4_ zpm7mzV+hlfQb|d$op4z^oI)qi&JsB~#pi3*lL1Dkfr-eVEf^&?c1DkNN2^8 z&`9i4Q_BmZ2f7bwB4D8%0~7M-35;4pym^hEq5ebFr)|&IOk@$sSrWrERK2P^68Mz~ zG=E1JnV7+uv-fdbE~{^j%A^KxTBybZT7|J3EwOpu%Q_Y%?|WCx#azUiZE(KUcLe`e zIf8e-@pm-zI)CtcOD>H*q~=;r=F!f9ixkzceBj(6_AIJcd}==M^cgTPdv@jPI%TtN z+*62LDN5;t+jgJ|%gjdeCJ3=C>&v+?H?@F{#O>xFm6m9AasmgaFk0TqNzk423n9;; zMI)w_*b^*fC2YlnLHSp zd>Oi0Mx^JP|3ulp8~O%4%OC>UAmT>I6lLQf!IHHl-|wnApR8|mVX-Q6r3+iKzQ~31 zNLqUTUs8(NUN&{eWU zB=RZY-F5dSs-V053;wI_K1p)AXuJCp^kbRse&2;{cbi?g>66n z=)%MLF>sz$ee8lthvoIB*0nP`v}5@;a3J-S3pLKN<@$5^dQKgwuNILJswFXJodM(w z;68J|SF4E#w=!7SOfPI_Af7G0NGy({!Ov2eK=$6jJd=z2G6LE@S4%w9(Qi&sB`?A^ zaSNGQr=|FTYPX9OYrAcu*>RAH*lZ?#13k{AfCEO^Wml#|M(V|!DJOB&5Gm|T$<M^OR;o(K7AFV;~IlLln8S^5wzYFo_^y%P5JJ; z*?&_0qof~F{skPW8B+e~MC8icT)rpsSoM}k(2wb`l5xaEbuTgjd0ne7k@4i?~dpm>oqvPs!#tCjLyNI zG1|#)NBxh464STSk-@r9UL!N~kZE5g{SW`c^jq8zt4kg*(7_uF{6d3$xjM4r?ZfM) zkU8-HVR8minepPpcgXDE6M-^QLLlcu9>T0oe}yPtp0glmey0pN3)TV#4orkg_^D<0 zfOUf|%Xajy{MNqqjJa%WQACvU^N5t@)qTaLmTqUZ zKd&y{zpbx2c|oXZ;%eGd;%)0;f*ouaZLZ&6t(;YhFDFF#oBJW*ZlO@*@+vb77-CNM^LEcMREgAbAzJ4bF0p) zPansZUGYinSL@MSE!=>P0c}AImyyC_(9Q2nKXlD*V1-u~e`?$F%_~E=D$sqqg}s=g zK&~6M*CghZL<-ZjiR#hp$wWp2tb;gmqXx4Xw80$zT?@97Z`f9>8jjCZXI9zUimCri zaS>q17Dzv6n%e@|0E9NccKXdRpJ(ubVSEo1kC7d4^J>biuR2#_;^>vW=d^S6=_)u2 z%9df{HBaY9=`-wyDF9O&L|TYIcPK8zns6~9t{wF-7`V->hryvscN4Of$efx&pmLR; zqv`=K4Y22-gr8e>kIxvXaxcMLB-4E+<>U6y_6Z(!8DNBi0Hg%H4Kh6@J2i27eP)sC zd6D1qq5J_pl(nbM(BmiS#m}e1C=#Bi7tfl5r!h`B+R4Gk!#G57ZIiYapaZ}3x}$pUvmOi%mRS?@vcvEOe?Q`$_tv8 z$!rVW4ua?Ozqa52--hys&u%Xz7nrN56kPDzD{8V><;B-wg`0)B=r{iO;Ax;4yU!M3 z-TArv^q*Ajl3si^KRt9jq(7PY!yIjC_4*>3!W5eR01Uwpk8R{;a(!(*;R;UGjHNkthBKM-1f@; zsd2pn`*bOGU_uk#&l_IS%S|K44yGLbv~FFx2h;vUyl@;|ziL@Gz-#j2$9p}qiZpty z&tIGFo)s*tU&U_$mA%RtltPB;`1)0CsCy^gJgQ*I^Q+qIpHEN7FLCbBna@!6m>=5? zXDDe``VgN%va=%0clUPCVxnV`n+u)I4l&W8)tOxu2+lyOHp7EK)KxS4z?*!+Fi#w1 z5v&x!XxH-X{NwX8&(`Bc_C`h)k3Wfvf|0~!qG%8)oZ?AikVx_P$+LrJInQ>Ul|1`+ zQV83iiL2p3n2o>rIgKOCe4{(ymEy2bmvnfnFRRWRjA8_cI2&!p`tLnF!HN!;pE}t% zp#BSjk@zLlO}%cbqDxy9oUJGW>&i8c@m|TZmnRy;@bcJ3NJNfo4u;8&w^%g$md1Cbt_;_(<>p69?Q|ki3 znU#U!S(Sm{m_Tq&Fc3U56bPPM7AQWC|7V2)#izn|#}1z_oHP*1Ko-r)$w=eoxu76A z(?id5W}PTL1A*Z<%+U)E5o%5m=e$vK1m_?@&6ZF#2YG6CsRHE$0Q(GpRaYIGTPG9# zNch9Si)Yc`SzwM>geMl! zJ*!S^;`#1br&%^}n%KnZ9Gl3^xA2QAzHRwMZobRm>#}zw)znJVUKLNC1DmpELO!yL z)tVdc^HT(7%#HbE@1H@-W7Uez5Qw)RU(gzA_03y}dt2n*Lhfyednn^r9#7t&4RDm}(il-ce8_6YS=YBk09Rtd{-?25m>7L14=?F1 zu}*Tn_8;RM6gP}_eOIGd5zwbZ{flUU50H9U8^g`D%M1T?t*%BlcK~-X-!WU6D|Vhi zmoBi~lUee5Gu6g7wrP8Ewv9*2Io$5Z?dGR0 zkTSO_Ab->rM@r1fuNPo{@ppU55nrf#3apzVIqsDGBN0ZB9O0>hwwk2*hGgM-t;;y;0_IMjdT5H1Z25hn#l&tvSe1L|>8XOjJ z3eD+r&$Y!3n!mcDT<@n@)MU-GhY(lC{s+zPT^%!3$Ilf`PJJUY8ZX;|9fa;tWU}Js zcG68bZn$CZwruFg5xY{4Od(e`_J(ta>efb5^~Uxy3z11-m8Yta|O4 z-}x9bbK%<(XT4Clh%LxoJ}>3jfn9AA#DU>%Of-_1aKq^!Oxzyn?QUu(PF;mYtzmB@ zZV&JRzF516Dq&f*Z_}HcVDA@-XUuw2zFBW~Q!h!mfObOrSyU0v*z~p&?B|Ol#Yc;= z1ON}w1}@KH+mjj}-PN~*Ky_TsDmG)l@vjl#LYt}Leu&o`2c}a%n>pGAI?N;jD0~mL zB;X_U`O1;3NZ4B|qA7;}ceuLS%~LijEkklaYo`Y1ix)%Ilezh<`JF|`Q0>T5P4TDM z&5y9P4!3oi@r~+cN1)|>xKq6TZji2K<>qpnj0L>FgBvR%ff=;SXSA(F!nMOUihdyy zkJi*A>&rM@4&Sntr~Z13-RmvL9ou2-M>=~th@z3a2DTEhfxKKm$_s)x;wbb&(+nl!jvs9D8YAh2ARKY0U=fpxX5Rkv>m;K{F5; zw>?@eYtiU2){0AVRz|b>y4`+fi{1SBDNew44ca zsWAmtFw@3n%<1gD=LhD&5nzU2f)b1;LDh;%|Bzz(Jyd*LEi)fS3wzrSqP+Ed9qte-MWjD#FxokH zFxqa;+6rKI@o&T2CT1~I2i1lSD)yMx-{uzr?qjnTUK{$NQe}qlEu}D{3e~#$l-lvj z(YB?K!)xZ90>Z?7TXD(JkBos0WpXxo$t6g((%u!{>WzW(A77aw7+Q)5_p1@`=`^`Y#GLP8d+Wb+cUfRQyT_gW!<`>Y+e zY-n&8F53r0G<%!pygu{BC_$YINa8!Du#2h+viu+;gK`b|3C_hr%d;|+b@mc?Evd8? z5Q#Hni7>Cu{#-09k1 zSj|*|(O_hqsVz5mkVd%#b$dX)#~!K`;3>o&Q2(_sQ~r&AVgt^ir71~@lSvgNQhepm-W?k*8dDrM@|sAMYKbEGPCSKc1zD(^L) zvjI0;IJb+8`xqHEg;|>V>)eVo+2x9JF9KJQQIp3oSwA8$FY77ivu$IJV|ZD=qCUG>NUEoD>8Y~xY;w<;OL&>NKtFZ*snk!IenR>Q z@?&-C%T|k1WcO87$r{Uz>QVf_B-mCQh_T1I>v`HmF(O zI@0l-GA2}AK(~r!!P>Unf)q32sNrkRuUTGcOs4Xf(m@{bfDB!(Y zDPZN1ngJ$UsWTnPM}nfnq;=<5)n&K5;*XmXZ71xBP7Z3#7j^m`T1u^{0uK4gY@|iH zn)nw46;v3-b5LItpNZxS0}7hxPldL->>ZH5;P(L^;VbJ!RB{@-dl;ZAekvXeF@9#Iz4L^!?8 zebg|TzvyGK;_dI!y^kgj@7~e+`X6=A>#0JjgIvx^(Jwk)g`%sfjQ^Dv^;FgERhWK& z&v;GAw3;hl%xdg?LCJ;#XrB6KUjH=L)RzbkMA&9PMhq8e>w;0SP;hr~V0z)8;A>~r zvvp@a!0uKuSGx)VA=-Faq%Q@E5nSXs?3EO{N=cFxr9YtOpOk7d9_y_MlVvhG1d)C8 zxSHe`^Dj`=Z!4>>6>{es11sG0s&m?L)P7b+BsA7pYdfklO9RZW+^}UFf?Sa;$5RMf?B>uDs)rnzLR9%g}?nyp(WUiZg=#vrP2L_Lt>Bxyd zFM~Ri)4F{weq~W4es<7{pMuKrx{wz?o7o}U#0_+1k@)${4B-^v%IesaUgrcnOyYi% z2DGYigmBd9x6Qije3xd+P>HxMM^>Ho@yK!;>EEnpPgMGz`0(096_EA(A{1FPqqUc$ zC}r6kZd_g?1=K5mLz?+i)ft0PK(Uae%0JOMnmKzztJ2Sd{LWm;yoxMq?fy89@}9r? zpx5?PsITBpq2Q++Q@M|y+a3#GicG4J%yTrv&W@0UZ@cd4YrFdzBB;)j5I`k6Tx=P^ zB`y|_IpbHi!e8oQJzQ;d#=N@j%F_xnn0VXApwhC{nq=};rk#tCNKWtU`Ag&ZcB_ zIRwXRdL%{)+l4^u2r(f}a1(|iZQSvy#$J#j-}QBATDb@ct}lJ)DlKkbD0JFv+p^|~ZM z@K;&WijhkrM*(gm#yYLv&Pedb8PQ&dib31{c^ywp~0AOgJ@h;m(lw-}SVkX0RvFB%aDeNjP?vo}mG+Vw`(C zvqb0CPJn+fYic#{bVH?>4MWIODtTW)P*XFg%VpXlT|r}V)qf%l0px*Jkauc z`UOg&FE276gTOBM_I`HdaDqc)7e*1BsU>L zHtpUC*3n&{^+*ONeV&E>hhA3>`m3t8b{EzJ!kmoV_NYK>E~glcz&BMKZNBG2J+V>V zW~M8OL212&(gw}|cnsbZd5R44!NW3y3-_kE#~@FQ0bs2fLpjW|nKYIfeOiOW(|@FT zHNzsp-xvTvMI)R!%PUOn{Jd-eal>#w32b*;T!Yc0^7#k$GZJ%h>P#JO!^+nrR8;(a zL!-?Pju8uSi_~Pr1&fAok&{#;SAdcbE&_5bDCw>YQHa%Pg6DQVH5ExsVRo99cH!Cj zor7XB>2;XB(pzowdTDF}b;HdbfJ z31xip9+)W@6chx9C>>5j>2R`U{GN^jc>UZA$$JM6r2FF6aL1XG{KPNoH{@_TD0uS1DA z#+>>O!LhLqw!)niVbo(RLl3DYQR}M>2Y%=U9_A+J8JG!xEF25x492*=bR&hxC=tJm zO?@ix1T1(ElLAS*ddIZNON{D69TJ_Q<0E_xByV(iD7=M`mf6*7Jtf&gNv5rhzBh2L z*ZlYhnLc9CI965n4UB%UlC;#;e{l1pqqjMO`1fawiExSxZ_tWO=J+6CyM4r7% zefq*-?+b>#pET_KYs20r4SNp_d*8VwzrM`)FMDSTP(adRFgX&FYli2VFt6>JOgduvMdb) zv~_VsDDzi;pyeOJ4CF7`X=0QVaTgCUQ}wc*=8I;LefMJElh)N9-!+pe_VTZiRjQOa z^3kYunxLOL$X_s2Y*@zYL%jM@K(eueTp|-;Jq+A!8=K?E-I9v#t=3Ntck;gjU1y4R z3{4?2S2itv*AUU)NQ|NKP1{?&}P5Yjcxj8(gu8)F60FA{6Y?dz)Yn!#t__Ow0y zk?XT*Ctup=CF$(rCn#ys9_uoNgzZJDJxZXt2eHw+B!zegJ4hacS<@;Lp+!UVk6Omr zMTL2N{O(|O!ZBzJtW@MCXkiZW<^q~!j;1;P9uQAbuBvtU%>fjMR!%bp^jm7@u|ZQ! zEd8a4y^#|b$!}l4cUY`I?6fw%IgeivxWxCKyle>F@P+8 z$_#YL6b(AkLBIy==xKTn?U@}wFInHA39S(>;p0k9w9OmAOK3ME_<4uQO>|DQ0yei% zaTc@2+Jg7(z{bEYEK~k7)0E1&Y@`JzsX8GtqOoO2?s|uY^RwCRC{g*e?1D3y{MCt5 zY!j`YK6PTY;zgq!?*h_htLrGhX9yEHg>13&`Brl{sc=D=ewlawtODA!>iqi(q_6MO zfW{Xx64-CzRT~~*RcZ;HG-ov`!7Q<)h{=8R7bSK+p=rn=fVHAV&}C>Ked~mBVZXWO zd~uS6{Ze(vLf3r!jwpGv`9RMEH7#4MO0#38-8IfFNs54xw9$f?l|d3;52B@*LY*&} z?dPfP?ngZ`W(`LgDUde8dIrre{7U}U#;rF$uz;O;4@V)jRZ7P_-a##n!7$#~1@$gBKSr$pR!SAwdM}D`FX@|}Sb(F-v>cQH`Ne6FHRi#v z73(c`J!{nrk+go7oUAIBWAz*K@7pdZqA;Mom@W(Iqftcw@u1yb{8Tj!_Ij7}0^&3F ztV4gS8I%R+o|q&?_AKK9j6Ex}w@M^~`sij()GY8Cs=;R_vCzM`C{tB|(v-TSrMHJ{ z4tpjxFgdA(6ZxfDV-X}&f~DJ@`Q4?1P0xT(Vo}L^+&XKsdG{to-J$iFn1^2%6og@y z>0FaVKxm-P$H1i3-$7k!jyY$Pa?)4;aiMX57_TjYA*b$Zlh=TLI|4Tc?C!x;I(aYD zbNzFuXL}cPy$ibD4Mn}0INRK=c5^t@T3SeyTZV@Q#)``^#z3qiwu}IDTvRg+pQ0kz z`WT1QL61Q5B0l-6Bn}ggEkkdVy^3--_fqa5oZ>z;RzXh&Vn^FS#*LCTc2773P0hhJ zreQ2Z9qnL6Gq#jKy8`7>yn1n;LsgHh1o&;p?VNV2-h<@Q$W`w_a`Cb2rOT1R$}+6l zjiM*wvU(h^6&;E8^)sHiJ&k|sp@{a_zj_aB=aoOF)sdQ18ro0H=WRip+QncQEj`P6 z7!}84qnwuAV)lAU__f|_dCQV-%51U$vPzHj7;I$9t12mP|2wM$qQqVgMG#JC*PFLI zI~{Y)%oT^FKc!8X^&83F2PO^Ku`*etC_|+ zWwhWf)+a43h7&3CwKqo;#AJrK*?g6DZVk6#1M`uaBRb9YOw*^Wg3T=tw4Mey;6c4k zsWH}mMtQOQ@3yZNBH3g5I|Pl6UdOAL{9>poE6EQL3C_9xvnfK$#f{A`4z<&rWh@c9 zsB7$J%%Iz==ni7~9rDA90?(?wEQQPoLQz~c%P_Odk!D!pO7h?_)-T&D=F7-dZk^G| zH&t?wq^-=!XW*l8IgZL|k~axqmShm-AbN%0wjl_!%AI7 zzU@!s6|F)}$>+7MYM98BsJUv)EGKOZ_FOS3&B?;td6zkfOFyyW+o}dg>&I>hEe`k9 zObZ7a?5A`2gwihhtF#=*4dveqP|Q?lNHQ%tmlly9?b9N$;(;3(j$Xdv$<3UoZ(1=9 z3~)}Tk?2oMsf#lqJ(Ip8(tc2&%WVFkP-wl`#>`Ffl=9>7k1{h0Ujr?7;mJ9Ds?d?NEnFFiP?xsuoi!B? zneo=%m~wh0N#w@$T86Mr zUvKs%O2gVZ83Y-)K=O3H=CP8a`(7XnWM0n!WLNgE`3Vb@Ueo82rA&_kDxa!^i>-fS zc1{0C(|Tt7ent{=|5PD*#oBM=R&{3*uZ_Ncx2iME8YDMsnOZ#CYBFB7T2p&gN*8`; zL&#}svCU1CYh3`rz|19zjy^>5z~37}l1C*$o>v0Q&4vWc69;M7 zR+)nlFlqPCu=~ttKYq5swL8vMX_$$GrKmPqr?b&IosHJ%$VJmDyQkNU*ZSsUP$j#* zLE-5B<=GDnl~70@T@!M=W z(y|Tn$HVl*+sB@QzBPD}R7#4MNWtPvazR1EzJNiZfjMN7=%T(qeF?w?%gpyEfbRFW z?wi1PK}EZO^O(mFWs`O(g25NiZ)}&9wCJGx1M#sp1@C~6<28_D%ByLut0?SiZ0nkR zZHp#crh=2G(UaEwZ)S=6xVe=qlA(U8Ja$77!ynmtuh0>6X#zXU!~+WoTF`*6fy6*0 za|KL^@;{J0cf8w9n;*O;^h5{xHD)*#JKDLtIOxVJtFdCds+@Xzv)M)lLF^&nv*g!5 zxj>g$W4{2r_gHPNJrw2SNz`k8N{C7ix8}6n=3O?u?fi|d76|p_Ae5q5=>`sbKMS1k z0?taxo$~6yObQ8I4rD$Vr?HywqI!{Jg)kg4*OH#i@6R_iwxNF6SL}t&S1i#1NffMy ztL-ESfnM{G3-p@PTWo5?dR9Ph#wH3P@HNMzx7 zjDy_}ji2CW>%G~P*=rhIpwIkN`Pexymt^WaKU42AJ_#Oo65(_uLrrdyqwjrnSIzw5 z^;R>#_O+3prI|ko&HRA_CwZJh*-ieVUH*;#_nG-?$iKfi@)a7MGbhZ=_oCNM&cI~k z8K-ZS5vtR_TY8>X2aRHXyx*&~l%lG7WoQDI{qu+y4M|U1@7zFx9#jJUn!It3dtD{& zrO%#t%i0^N{JC{vO<-IB?#4&bO!*7QD}PGrPqZ-Cp6&wM;3gHA$^VHt|4TyE^$f8q zA^jwMw)%6G|B0DC{QIx+zppZn!z0+|#bZNJ)9Zz?*(`%>Lx#@hst z-mdUOgdPG!o?>`+e4BlU-@;rF|aQOGHX1?3?tUax*fp@CDtme8q+$RP!iS0A< z*l6*NspbMvZjX7M0h59vQSmdD1=5!&_8nry;{MLlONuLQ(+t`C6g+}+`e#s9%I%rDUipMilx=*5e( z@{%-wAB@k_!hHR?rB}}XyVLOY=!Cx|z_vhJcQ~b9_Rs-y{wNFF+2=dpMg;(-mc-Pm zi2|AIKCx5wRb`afd!dbMGn@)|M!yi?yU&g#@DK?YjrpQo2C5o%^7`7^E-8D-L$Hu*Voe_^WF$x zZqMdcZs*y7?yRx~3C_O;q-HY9!GDtY2t2!(l}enP`eT29UZg(O3tr;jjzctL^_^-)1%!s{35)UD2xTx8&5D?PK3B9z$!B6AI9T`z0R zA}!_bUO@7fE)(B8SSN-%aG$|Spy5bK2)6Pai&YEvq}fJnM?55-mt43ZD_&D-rxsA0 zVo1fp{hUvLfglO79=+vcgay#r+)Hj1Y3`!9?B{!sDX?SeANWn){IuKgzTgr%ytCjx z8}H-ba9HHp@qT-OMz_cOod&q^?mRd*-aFMSI=5BN+<4#qrCrCn$4|QH#q4#G$%Qo=88Pom>e@y?6X4)}bdr97yjsxQ|W9s}jh=1nJ-{U3$l&Co1AbNC@ zt)EW4CN}t(r&TC=*B*(j__=;GqorctATcx;y6R-JmEF%4jE1PZYFc{&trN*wJCRF` z|0l?}K8i@ey=oe<_<9xHqVq=PIP@x7`6eq)6leJD&QFHfaIJq{IeH>V8K!NTvelGO z1bp!h#BRAK=74PpyrA8E+-#dN)jMz$q;!p1nR;*{^{A;&ntLfrJpWcZsDmcK)BJrp z6<{#y#qm0n>7_TZFXxtht+(dATCNa95xOyObE_?GNpMd5h7BPtiOer47T~vwpIk!R32x|kz!D*Xq>7XgLPkgUGCn&6z zH1Gi^mF|-E2m{HFN63>q>tJ_C&iq)~o-o`$*AX_;d(*R7G}cHfsJ{)~L!WaYanTML zXbn&(V^F6tIPB9;G$hDvUuROGhsyyYspLOPGsQ1Rs}GX}$~x5Ftfc|DdSQx8B^$Tp%WGH$0*o0h-YL1ARK+fJ^9Maa$8r7qr#P}4Z9 zMgcosWKA&+72bL?hp$pO!kaY*4L)yI8!-|LvHqEy_U*qqTsb{q9ZvuWq)gpp{?SL> ztcf4nS53a|8QbLLG?^}so=ssxPCO~4>VE!dwRmBQalL6Dm`7rCjE7LcZqj{VzCl6R zoUcFjWfgu0nP@N@g|Po*#T?h*buSES@R2NP4mD@00Jo?aA|GY=@v?WC5YuS`t9e;4 z0%EBbJE+L_h48?_hHqVdSwX?O-h)RUee?yFFJ5w~m$)f}hO^Y0w$7d98L!d&IaMt$ zY*?g@{fYq)eOv`t>{_0)icH5{(YfYlhlzz(JXRw-c1!k?Nv%2WU#f+mi!L)uV2*D~ z->QX3qJDY${}DhCW90CGi?#DZunIhVahv(UsyCu7Up!z@Qh~XQeAL))&Ld!LLrx)!3`iHZx%Em;KMQwk zmW(M8o=!M&m6NE&cmn`HZ6wEHbY~O)Y~=U-upz zgC$3QLlu&=%Xz#ch#k1A*3W!X45-rcUvf z9}4$SEe#;{WBNa6mMH@4xYmB4i%VRf*PN_EG>rC$5jWw1hg`qidJNnt{iHl|4%1$W z&tW%7&j+0X^!QAfrG6z1Pl?fCdNpXq5hX~ruAn&Ouz=pd0Gi-Li;Yue<*@NyF@*mB z8~cq-DYWd&^y3-=(r~PDPjr?dudGmI`=u^UTPdj`(DEKyQ!W{2I3mfbMntA<34Hro zym-_412>_6eBfG*^O}M&?+m@8_;$^+$_=nk|;3+Hv9*A;9JMok~#U>sv<$s-7a z*&cBlE$(zDPOR;=i#`0ow+-&iZZ#%aje9ExSNZ1d!?U~Iytym!GWQV`PzTV9@uA2D z?FCP~1>M^gJ+c=dZg+1X_f315d@FTtMeeQ4y#?J{rF$!JZ)~4YnccW%N4idL33nYH z_d?mX)Am27U@u7JZ1t@I zzO`LF(hfk}9T&0sVt2!rU1K>v!O1%oxB~@k769Ov-AFWdT}|%fzJESflkNQ*+}4G; zkMmF{$aU!<*w_ep&QVj6kA#%KrL(?I%^tm)-&;FGz3wD0E@pJ8Ud)~f_1N~K!btM| zE{ke#sjcR?J)C$xXD?f(8fLDv;rqLk7}VdJBu$U>@&*{X?L+|qB;5DJJt=iUMmg3X zsj;(aaIMG^i)q!8thiggJO22gWG>E9RouxdqRwyhNbGxZkscE~9ws4>%fwWFuSYNi zpn%8r;KdnDnio;@QHZ=7(5$C=V3eBq?Yc8qwb+2a=v-wyG5rdLv00fwQ> zv+Ef~lLTb2nV30)K>BBVG`G1T@2|=gIh7*+6W-fpDqMNJ>CF@s*b|$-bq=-7;v#&| zmb%tE-T!IXud5YW*DiN~4muh(01LwG86x{jdGpcu(!l^&SA+@z{*oj zh?E8!PS@=NwjX~|8T98uvT+p(UGiiSg^tiiiAeJLLT}p3SI@4Ev$?zS%~7}z2&bsw zrs^+*Y)(qBuCxs6wMBUgdn_ufM{eH}N!pCJUF;tCSw4DX9F@Fp-etB2>H|N@$p2Y= zHy&p*=M(Oi=2uD06|GR(i~>n5`rJ(7|oyiIwUggUIPLtrU?^ zZ#f^aO-L2{h5~W!K%Lf4`mR9hLtqK8O_}eJjX($B=2myjQ?gSOB2LiUiVRC#Y&MkU z?T;f};@06fFKJI*XSTlG>0Kny$ruG=!^jNXAfcf#m77J6djXq@|XbqM@)XyI@@4#nE|S2-f;+bfud_z6DOb+i;&t zdq!bMYtvHT0seFGjokBcg zFMajxDYy;mn;vr>k-j;m6w6%? zz~NN#*dQP&v*YD1T^}ezGnyTlO#}vtY&Z}c`ChWNPw5y@m<-t6vr?% ztzU?4$iOr*ZF6)*R%Nh>Gd9uRW)b~5djrEN^ZXGonq%~rk@cJ`=kWgb zpha?OIiNQ83xngM?8;E^8SGr+GybzFFPSUvF*r(r*{95oUixp!&~46h zrC#Jp9R^R}1B@!SC%n3CD+>xn6hzgm#L0mbYm%n~<7>CAo%pOba!IAv{M6X`^koz^ zbUa=E6E_u^MW5Bak7OQ_?eFF{ZGS^$^!EvyWwh)^GW`{NhNSIOEJZBwtYTjHjl3mebCxM?%9)o!I*TcW zRjT_Su>tB^3j1r~xrAqo=OUhMJQwh6=Lt$m)(cni?BH3(lRc`&5MhwivQF?a+}HdD ztB!eWh3Vec8s@Y;{`m=B=1!a>hGel38?m(YIHVJ?n&UQ^mw6J=Y5H8C z!}PcSt%%Yhu2?Q|d1$U<(ku>4wT*KY*UhV!=BDuU0>NxZ6fTX2(6i_#F_z(tBHOT& zx<=-DiG5$*fp;^DjO(y8w+ozZvsR6XkMy@w9Xm9d-sx~<3|qj$4hxHO;mqR{fzbu?Jvw*hl`#5 zSp8LdZ2rLR^IQ7IUIj&O;-2^5b^%neq@ zX3(SVK`1seBkpFrhubHy8(+3;rzrc%K+{dd1r6i6cJeZE?7$ZSD`o}bE0?{mk6g!S zMclxQl>?)lu$%JDV}|mN;pH#esp78Lf7!>jj#1sSisirgOO;z+tBhR}lndxWaowCt zcsYX4OPy!$20lG7IS-$BUz7iykrzHO+6+WW;MD4H`!wit9^2!&`77}^=#%@YNuD#`ybswBInHCXxu2Qq-pb7>F5sCe0y)boE8fi~O7PFg zU);a&`}JA*DIAUX4rQMMEi1B)+CLbQZ{Xg6O@-NZ; zc~r`H-A#hbc#-~|{Pa_QtGC3yMgL&yGdbbwKl|sPo5uofCD0`e7DCk?uBa<)QF;8? z!sE0*J9rq+1e zAnk7WF`nlIlbU20-*Cb3B3-V5*Q-(iDV&(M)Vih5-HKzRXk%YB(|;;0G1t2Gl$!QG z?IMT&k*K`>$x#Gi3*P5&BEwIuofolBuJ*6p*^fO7D&X23E58aJxhr(aDU6tq`HBma znIlwVIpk-J@@z*dY>m|g7C)#DMMf<zM0qNm~f6yEt|^h~K`u+_qXz^w`}0Vg8` zBkb`k7+u%izn=e@ywO zy8Q1{|I7Bj#OEA+{1MAS^Etn#AY5X=@r0siSXk+eUCJH^@Yb zx2`OVuJsagio9v37TxgXz*CBNV&Ih_@*{$sEMw}^m-D+D`KYt7ighy-6%A~A+&*y& zwWE<1P}x7LROEPM?&$k9)3)63_Q2bczuz3l@dL`AXUqRA`7IJpMG}WZ5@$(fJQXQ! zuSf#_fGf@o23DL^yz-5rYI`y1oZ>3oQ#$VDh^#8seuG<}EdF&C`ppVv+DZGK%d}4| zn_wIHeq>s=+NYO>HwNCw$hU$aD-#D#j`pUS}V)Zo^cdGI_Hc+UAucxL5cnYnYw zRY%*4(DN+}^0T-YlUy$uZo~3w*cj;^cQQDTdlxNk})rHZ$bKm9@ zR~z3sFj6l3$syHmHF4%NWg2R6md{^Zd*-5MMPJ*rlnyez>2OvV;9eSZ6@T(Ot*^J4 z4|!Ux;&>PTChu@Jj+w4E>j>xeGP3-BNPqEe#`IUO{x+(=3yalR^CPl`TmBwBD%YJj zQL1qnPg`R!_iZt8s#P(nxt@1(F+an)X~!SQzgRR8Jq8cOM`^B_Ha0pbO9XohLH89A zbfV=ywWwjwfw7&1iiBx9_CJ*W+f~GI_31K@*2-_XkB&K4US!Q|)aly8rBQS2c$`F& zxcAInxHf!$XW2Varl{I&ftGrtE7@&HLw~}|V4(FBBIJ$A`Tu(1jf~T&9*iisHhPWs z!bWWWa6q*d2UJ_U!>%dEv(w4m%D2a$LBYIiI#;lTJ8Mr_Mvs$^DP_c074bRvk-eu*DJIAa2F2@p>1&j+IWVH z)*%dPP-#OINh(MJ37jJ*Koyi$Q5;ZPMGQ%*YK=oJ?mM|*qSS$ z5$JkdYaahDZ5@cL7ZWGv#{P#8tFyd*&MV=s`zTw)Bh61CS6f3T`Oow99Pg)izjS|D zg*iNS15_52$p{TbkgLGpHUnNq?_f0aTyem=ugRaB zBV7q!uA%G8mH@HA2(NcYU$!im6^M;_l8+hnm^-SMmVmKsfs&I;%Dj6T%WIpJ%ee$1 zLoR1<^G}Gt)`m*TOL9?u^)-^UR`Hl*Oo2R%3B$V^2T~77bjJw(Aq&fjO+vS{Y-{7X zocKEyfjx`ANzemhb0rg4l;#vt6TPX zc$?q(oH=;(xxR&?d$-8wbvbn}gmY(YgqQqyWMloL<1+Yp+s}LZH6f|Ijf&E&?s7}Jp99}7=CB*4@cnFKDr>2-x(^)(AcOovKa66?}B@;7b!r^ z34TumDxH7s2=(2cRo^pyeeJ66!GE**?#`%B*6JC#FB{+KT{YcXzd_ot*_a(~wI$P_ zfBCN+q-@VLkeR#HvR1euYp6Kde~asZma5kqy2#oN^~P)Nr@v%7DN$W!Gn%YxNBlT@ zMztwz(RS4@Jhyf5rhA4@4S%CE+QH#`+yAo9FX{C(txURF%S#xmSOsnQC0L7guMzFu zxnx$?kj^cu-jzcGt9+tVLy2@p(ESPDX?vAZm@L#}%iTqyGylLu{7``!IqfmJq~4?pjw`xlCi z4n=QZWa!DK-^EAh--YS^ov8jD$F_^g59U7%;sl00tf$ANdwOi5 zr#)1>dOx0MN9yhW5j=m*vAHWee`wDPo?ZG|5A`@&f3FdC`;fhyV&YjZQSpDgzn=%+ zy%tFVRLGovd-etAU$~x_e~|@xc|X@9Lo~HNB==us_CF8$g`aRN*h@WY+%L&+vS~SVdnMF-71-B}D-*<3 zc5hAZ4UoYbyck!kjUw2lh#x;2zEs9>(klLlDMnk_7XN0K^RK@a#V-2}l$ZWoP$tOO zE;p5L#AZ$sdN6*k79^%d43XRbg5_Wv_b7cxj3!8&<_Gw?;Km^D3?#m+Bz~Y8uD)tto;6Ecb6#y0D5!W|u5-9S^Ljr&g(w zEpVVK-BcBqwb0!LX`&UXl&s|7PZ=a*-Q~{LvxL<KK60N~3q@UK@;@t^6hcx;or!14m(vS?}|7 zyE3xLO#v5xXtL;bcP$<-epf)~_(JOkqwoR17&-`hSVu>ev|kwOS61`>9W@7+`3l1EhbaiN;9GNO*`nb!A1|Mu)C7)>?AgDyrhRFX>)y1p z*YG{v8vVmW{Up=?HO+T+Vf~Yzq83cZLnh_Hwuwo#@mAlEH_nbQ3HhRWIxMHOacA$+ z+-6_nnBs3ZFO&>C?7VQshe>|_VNNsMI>xZ(_#{!E^joMfOe3)4syt^p5D%&10 z$#>0xaf{By;*#yXvD8@jXs;W$qkr;$IunXjwqrdZs=WP)<|lc24xYRbc+b@!2&`_2K9Hesc1%7%7SNzg#xB zIhb?Eol6Hpkq_eEDfb@o%MXbcc@GVs{KW2MP3?JQeOs-XW8+^gk6MWZdE;aK6nwZ_ zP0OJzyUO|=D647gULI+|(#o(P=>DSb)IzBx`?mWiCp&P-J=4WK%`1+pbCMW3nl`k-+8vcI7 z-_Q8_BY(;HN%1q&G)%D~%>6nKxz!wq}*8lkh+l6YqLkhM|lrfKc4W`_v;gRdc|JZGf7ikbFjNNVFL`vLw(|T z>>JuP*bw`+#=A%R^xe}-$O!zhu^T{rDExgl=@K>bA0d+sf<5^oZZ+KeMOdcjDjjKbxKPnflnY8*{lO zFeB<^S?25V`b1l2XFi=+KkVH2u@fWw+v|E=x=>#4*xi8RP5$2D5B%$Vi@!PiweaIg zu6n+JzpnHN-X$^RrM3+w`4^%M_Vl#-%!K23L{sRE-;A6(VBI?5CxM*3ojbhsCyFyU zBmPzIA-g*n*8HK-D3Wd0*{hd*;{&65x8N9YEg3uCtc~ht6MxU}_Y!}Ozpnl3DvwW` zZ-lI3Tat^}?|h0a-BWWYXHoBo^<&PB-&zLyXNWRLh(roEo8*0W8@9x!CD8(z$QD=j zC|zJpzg4#X#frh7_U!I68urB|zA&`lya8IA09p)<57fV9P46^B#^!K${@j)El`>7t{v-Ng94OF?%`ra zV}Z!Md6dH>C={`rm7&Pf?uRiukV;b2>>~C$k!)5}PJn6j0yXU%Q2!bjjt%e|a-!Pj zMn_;1BMEnJMVRs<>t}pGuqi*tl>fn7jGt27)Zgel_@;@es)LcYgTsk1@NOVxNjEv_ zZgsZ|GY8K*q=*>Oz$q`*|8jB*1!5MhKbfY)FCW?9R#SZ~Vw|TyFakRV)J!Ci5?&sZ z<~fa|g9uCnVzS`gB%LCGiFr74yN25}pj0xCMWF?A$GNcDE1ZQV<7)Xn6J)&FF0pxb zshiD(E}3I^Y|sxBEz1uU>fXzRcqGDv5*BvhL*PGGfhj@tJOr_RH800 z5nvT^?+=g(xleu|k(12~aSn=kr}_E;#YU!L^_F!aiQ4UcJw$VF-ukZjyw6Z{+)}`& z(`-@^xGQFKStlvu9}`$5t~1?+9?@dd5R+&JbJ69ziSUdaD@{?86rqCILr%swWu2E5BqefcS0*D z=R1!_zKOU{5crG&_TgRzZ1(jDEgjO9C3hblRrSOlsEhq)^D6N0I0nXlZCMeIE>Kie zH>i$!F?2QO?^-J+ep2!+h-$HdENWCQyWWh7&N4tB56uL;;|FvrE&rGBI0^4JB^%_s zTuK}T-ai(tO2b=iroTVcMB^{J*6$zndy;`?rI$MdttdwTV=k~zxCfsT>Y$x{G5L8VTYX9V0;C5XHxMWv4y{tgPU%PY}M`pGl>GGwk*pAMG^~{hmw4Zqjl zv||3IRcC{XJ!U~aVuRj*WDa6RT3Rd7Mh21?PpSW_$iLWl zhTG_x4H&dPN^!mDhIRH@Al~tY^=s6LHVFUuWS;xgtAA9#$L52O_pz~~>9~9C54J(+ zZE^xwXlzg&ZdNT*8lA*K+=kQnb%`yBH|zq8X{(z~0ra>e2JnZ(crfF^>V~;r>n}VT zr0qcAHHvhtFQOHz^b$vFD9uW+r`oohIa}jrrZ<~JGpu@LUdC~mZ3fx@R<}`AWD?%4 z{H^%G?Dc$xX*ynZ2WpPGo@*d633?#w^e9OdBU1{zygptYW;6q*@P|a&c-FFMYx7DYg=W!uKA zjvw;VFE73#Tb?aO{=z_n++_>VDlEu#b15vH>KxUP-Ch!2*2UsI#xhyOfcMoZ126@tNcbNo|FTt z{~Q(z7N0H~V59CJyxG)k?f{qezxL%uj@>6T=xH2{MP9e6m-OR~9%i}Zf4}&cx)&A? zMxt=KoR0uTb%u(e?uFYsa6m%4AU7l$dmZDW9PB=@Uth@%_C9`)S@uQ18v}w!pFm7$ zk6Mhf0Wu%zW`2;ZUrNjm{;Qu>1FM=Pg}7V=VoUPeA;cxXt|&2Kf8jOAdL(?c{T}-j zy2Z>{>i{i)R~x|{Ff2vk6uqU;{RcJ3w|`J5a+CZm4%i~wsYR9-KLI&U&td$76C|*n zs(<Q0NtLTyXxM|Tyo$fe@PpA>?rIO`$ z1z_lujgNKvY(1RAdceiUUk};>22LWQ<|O=pl!$3`^Q7W#ER8ptCzaUJDACerODv5= znEDw%%lh~xC(Nw%;h(n^|7FFy^1|letj#LqA9rC`Ia3FC5QKS9aK8JshY^8=020es zzUNC(`{puD>2CKjS7SqWy3OS9lj;503a}9DQBfR-g;#3*EoN_y7upCa9_GBq0kwjY zX~oL;&?7ul?Ny1|Z`M_zUt)uLpcN!y2MgX}gt?)ourJpM?uB?J<`5hP-xE>HI1k0;Z?h$V+Xq%o74>H2KDSXFK? z1>iEPn=9&b;IsT!gRVVBV-VoBxpAtZX4%?qRp|32p!l{r6dm**o8Y->HgIaQ1d1x2 z-1?i`jdY9Mekg}TV-+wH*R5*19qn691J?R3?0~-^>S#7#WuD zJ|DY{U-Z!+8;ag9ROz%3N>uk?UwTVVpCkq_mJNKNZvGEn0Jp^&Y{UjeZPlD4g;grP zW{C=HbEhh@a4LZgl?&6{jlBf9ZLZs7IIb0&grXTX#kOFw^w*jAe52uWWdq1uXpJeh zl4T1syGWRpaGu}Ei>#9hB4Awfs!T3AfL)B(bBlEc+nxMPbjHZD1RpU)vIP|=E!DfE zILW>dfHJ;GBr$t7#gHc?Td4&_aGXZaOR%Xb(YWvYo)B!e`<`8?>rEHtxT3Z7jr7_| zNQqk9m+xhHmD)D_e#0MeWj0$CxC)*F25wC#vZJi? z71rSr!g7IksuO%($;GWAs5eVd960@6wzg`voS=sJ@;S@1<43RuEGS<(VX+_J(GRw041c69d-cwvi|$&=GT6lGH33H`HsarU zW5Di%#d`COTVmzNNcNjg68t&5^*VaPdt=kLyY;N<^K!iPdw6ObRKhH)^OEAkdIK90 zlh8@rny4km@y{SI-(YaXDpbHcNTg%f(Rqp4ruLPg64qXE-eHouvvUSQLq!9{0mxsL zzF5hs+Cep~ozn_97_6hQM6H^}&Ui#m8 zc7{J~(!M+43l)YXQ<7Ds4!I*NjNk7(z7UWjq`ThhM$Gr0{%s+i8C4Wv^A98puaB@_ zC;9JBWGyUTE8*H>e9LeQ3qE$Q-=-Snw430yJN}9HDSq3xKkwQy?DRTZ4oeCc)p8hbQ)EKlmwIoxgV65YCiOm5FL5XU1c5G@BYdE z!syaob*PzO34++os$#_^O-l9-c;x+$bQ!zLA}?}s)2tzLBqCPjAw0SEZT8k5tl5-n7 z8;+uzMK3_bW#!N1%pkydQOR+SA0?QisD?o=3rVJ%Gm|? zbR%uMZ%5e{l}$ccRx~9-xd`R>Q4EKq0&qy$XuZ4{^gi$ioR_R8UkyB(2~Xi$zzX3}&OAr^HK_>~|A`xIlc`8vm2GjRa+^Edo(Ob2 zW%JLDqNNzNUG}${cSUasVA9-u|r#ge**W~ zTrSw0MR0u8$Ce$Rk93toZ^=YD0y(}FuRI#QZBLLJ+97hsr6Mta=j5j$BSnG87#5d= zzbCi4KDUYjZgZV<3iJp!fEr%4Y(YQ^Xvz~lTC`=M#e^hUP~aCnT2LT?7H1^Uf|n~Y zUK(ngo3`gY3VxW~IX=NTo57S0St}*cqjlLR&9E9W^mt4JH?`h`AEUsJ)@8yEW#W6#ZRY{uCvXKFrNA+KQkLoP}57pAp^yUS9StBmy%DJrJ z*!?;T;#eICuZ-W2HGcV46K#KcW1uhRQzm=aT5B}Y6u^O-e=z_L_MQGbyUx_2Kbs2L4_(W(k0q$gm|$z_L|dY%gntsUU2s`E75Ce}zmsIl+<_y_iz^$|+m4#H;<0 zekD;N?S%a;wWm{$+{AIdj`a*`*Cbq*P#WJCG*Qu|2s|Q0USD6nA+NsT6>Nd`1fo6h zL#upU>35LiHNDpxHz90b!Xds4zoNWjz6azA zUi$|uzMj$QcFi%t-ywGkFXF`le;WVrs~DL1`w2kN&0W}~ig&5PU7%*gtOQy%X!>n} zHV5`^4h*)b!$dw9t!gp<`YrFt*}e`7-0(`T?nJ2N!_vD3hHut{k~5@}*k7`DC-7*% zD{m?F?rAQ~-Rpl}bEuQp({guj4R4c_;I$61;ePp=eVsmmelFhY;ZoHJ%2){0oYsye zqU*PBA@Jc#rEk1$%ufNtfoaP_xme-LgxAw>x?w7Eb<`-GwAVE8OuAb8~eb|?$Pp= zkfl5_XA|M*w7hS=-nuE%k{UD?Sah($S&d{oOY@$A*d%{1XlbMICD631cc3rg;O35>&^z1jwf?b& zAZkMel>d;e?lc{SA8n3L4qz8)k$z)urrw8|jGOox?_ef~0vy|r@y_tB_BNi_a!aqb zqY(?#chC8n^pu|M4Gq z?9TUz$v;E{yt;j?%WMK*A@Ke6AN0zb|K9rl(56e}kFfs3srCOW+F?TA%EF0l7b4K4 zZP%;2lNEmbO7fC>)n?(PBFFiRbU(1=sj9a+t}-I9Ng{vNvKZ^np#$2jBRO&6qYymx zCVzpsYjs6G93PoU2Po3!ZoJNarNuIaVu6+kMhnEooWpP8I39j9HcHUde=L(8)FJn>YZCkY(qSS8`&a;qk`L_*4NILS{?2X> z`)l+fIP?l`(vehP@d&45Ayl;G&sk#`Fp~5)v4_1(2ZU=ca&_DJ=O5i!@D63@hm)6v zqq7hA4>lP&QFe>S3C1V{B6~PutP!;sc4TIO{kWmylNA1mUhLFLH+pepYR&t6+k8Zz z9c!(yFCXZF^me5D*PZT`GuV?MY(?Ss>i+Hep zXn`K)Qrm7fMXe+FNrhdn4n*)5YD2DvaKWUDC;knP;m|AIhQqzDU9?TR+5L_##OH!W zic4ez7Aw3n*thB>c;HI51=}ORW%kD^?T?kksshb#AO56dXD{F%Z3b7cU1o2NgkjW? z<8<;J!X)o^I{^sJo}tLu*#fVQCSD}Zo0jieI}|2ti>~4WWMh6pYP0vaWSYe=JcKso z!B^4bLC{8RXZjOLeFad-hF{7aBR01DJxJ89Xv%KI*CKR&v%vJ}_~v!lKMnq=?-l>^ z@Ne^y-zMbI>Yv%i+>tK(dG;}W`7EOc_qc|g9#GbJe4o6Plt}p3s(%?)6CpflWjWz) zr-*<)$FIz6PL43XtoAb$|6k4SgV6`y-sB(A*Q4?NV*2`j*nUMydi3)pTf6AzyZSE& zqP@Z&fhVbWnSEpf92?b*58c~W3edf#Q-H}gc?a+qlBiB-*u?9k9!z{1AJfMj!XUg&e5y-j4Sznrjovqc(!TbB2){EKWOf13f zq$JxerwF?o{xa-xe0dw|Stz8~UYC|~+P*T7@N_>?9C=oIsh2mv8+fc){0yAT=rP>1|8h~Zv5;OhxEDPWm}zi$p>X?Gs=&b9gvBRQZkv2Xj1WEW;y{py;2{dd^>D^ zjP~JJiPB;~&A|cqLmx)}d5}dvYYq*Ve{xOpUW|bJHggkZK{5|2E?qwWpL%-b^Fy&- zw~=8s%l>Cp$9HFD`p?hmnBL|0v@XBDn)Tc0EiQHFn0wCe6~%+8C#0#5ZHQ2`8dTm@ zx!Tp97|*Vzl+Dr&&Fc8Yw-WZ=mnLk}FlnW8Mhmu=P12!VT_5U9*dF8Utg^3>zAQ3M?@ObzOz$1bI zjj+buLghz-$4JAGg;bStWK2z9R|L?^#V7uKJQSitA0McIz3z06TnKC~(RWW^yJpG0r04(QED z(VMUN^u|mAUm){fjXYw!p`CWU;G>*sY z*BCm3A!A!ti+RS3efXvDiG<7>**S6_HtMbSe41V@qY%x16 zA5coaSGm1Y#prg@R`?h3F_Lln{U9S-w1OkhG}631?cMnT&q5`8y}RY37%X|tyL*G(yo{`0ujpgb zPR`!wEShJIY+M;EdD)A}m%RGIZs7sS*;vzDN(JGa@$2mKI^G4Mmu^i3M4YWqrlK4A zuRt>H61YW2fVg%zFgUL3+q}Gqd$1>k?*S+~-OSNCVJilon^nMA3M<+yL|r_0WFvEk zMvV;t@}37T#oS$6Ag)zxpN0PNMM%C#IYGa&`PaiCcG+o3h=s=>R?1a=qk4%tIM<@& zpDUxFyvmYY-ktL15C}_Jyt@^rrm|$GcXzSf915R_?{}(yaIcyD%jC?!S%$jXefwgY zW}Rj)ik-|ZyRjhtl`iKagYd>u^psWSSC$;|Vow4^W5XguBy(fe_NaQJro9Ka7Cu+p zrnpYdw_-%yx>48-KCYJD`lf`{iOwPGYXf~dE@MIIWeYFCiM&ur`_lOgXz8s40b52Q z_)GFWXA-9*TMKcTj$WG!n|Ko{?+Jx65Kc_wkLZ9IOQ*9@UDtBg{W&cUu6dVp(j9q0 zSd+Vd!zwg%Sgo7LC%A_OhhqRQxn8&}d_su)pa0^UdOr-g?%2X`y}Ra9n0*8?G@`_R zEAqUG0@_I$rleM=S^37s3)YIiQ{ew~+DU%C)1QLsh_UcX zOug!vc=ZR?6IE|>IqIs`T5LhV)Y!0bvK`^^zDkW?w|md7X8h%!Ucr7hu0+&KF(TZC zM7c+}>i6UNZE^4RyFc1Hso1nv$!+@55z@*b1;jzI)7_Q$cDY@5xrJO+$1V1I57ar6 z`X%uBFncn2GvwK9%wZRw(a1cAO+d4i-~qfxc52&4tJR(dPLaTIHB)Gk00m4$Y+d%4 zG6WFyoxPn&ZHrG``3OCwGuRd%QZ~p}E`lZXd)*e|mavQ3cfHz4*79y3$N)Luqk*0z zmBEvcpg>ccc#N|eaG*{^BHZhW0($!jvo<2NjJAjWDM-}Hy91Hu-F#|~|CgctK6f8g zX?_=kF-q9bE~(EVa@WkJYnIYQ(w9^CK+Uz33J7RRO7l@tFn5a!LXmleDN0;`B(uop zKJd_hZ{T+z*itc#!rjW6D`w_sfpt!%MRYnHyQsvgn@N>4JxNV}_pqjaP2nRnO(WjG z(t=dWrD_?b=P1oubBk&22~C1oE(?|lz3BE#q&p?E8oWCX;wr}zFvl`^x-miTkzE&f zKi*KV0ZNbIK%KIfn6X1&kP9Z@W7o#lm1Ha@M1>mhYPEFvMZ`>P(xP>B|K^Wy&NfC^ zzpyKC8=3Yaj1cg(F{lFeDCirxnHs2A{}udQAiLF6*&*)9{q`4f;2it3oH`P54KCs( zh+_%V=YNiWdr!^PC8}w(-~WGmlm54cyY|1^k^3*yRSg5xT+EzP845t(=YAs}jHm_8 zK!Gg1iDs^Vdzp3X9?M0dgdG`yI^7?GbV_dsDC^Hy&!aD7Epvd&Dn#~d$% z_5a@Ifz6%97pn7Eu4?ORK)~`-yn#+p3n&%H8d^|KKdS+Tx-7zxauFb^eALX6MLf8j z=@(eb?QH*cO(6D|eHMGr!Lzu>Mu?-a+{K7<7hjCAFD3LU5L?}*3+Ae=D&$)SiVQx? zPdun)1Q=;Y>V7sCgS+O$$z(tdY_4JaPJEqT=GydyBU6(<}yNKx+RiE@Xa zJMmB=sDnY>&q-+q364xi5?#Y1Kv<^hhbklcD#Yf7#H$cjB7j#9+n-T=F3&moIwsCR;H>*P<_XNgv zD}@5x*+T{xh9RBq8j(Xq6Oge!s06j$B8j zKFe0Q&qQWoqug2P5#D{Cp>W3n2oqRW@j64faemjKtl`5W(+6Vfiau08A1VsDHi$BC zUCUMEcMaF0ucDi&SF?K^*N!WstXK9^;!(UtH@4r_wHsglU+4z#D9(V#Qo=hiL!6tp zxz{QLt_gum{t90M7N2rlFK*`?i|~7~NT~Q$_xf-~Wkg5W zAzkEEts9&~ihA+rzzsHP0Oz@5#S?5_`1# ztyJkP|$)(hnccgRz{H~4hNO+ zt4~o4N3(!eLHH0%>4}MKdR;;zZ}#r|h(TC!TlSGxDZHFckhkW*wwzieI)ViACuqy*8ld|6ez0$eOtjmR>%zCHING+ z`(|z+LY%qCw^$k9kvt-sAdN_ zrGq zr0{aa)->YMOq(IE+eB3c_kHeR-D;~RYDxT?)@ciQW1Y^9$sRwY>uc+bhQNQ@H71S3 zUGG=fXmeuWstJ&jlAjW8tk)S3pjiL+@|C7+Cf{bs`)43ZcXQ|Jn1W`uejVWBs4|it5YlT3=FrLA5hOk!Qf^Agd{+ck}(I8SuS z4-VIZlE`Ta<<#%3zr0w(g-`6q2nfJ`CRp_fCK|1wk~xjxFY}}?DXuo=R1Js^;1VX` zRb>h8RYZiyjs|Y}MIuK;hyEiJ{=RqIGwEXT!T}#xzuzmW2e{&VTmHnn6ZF9%9*FGV6CYBx;|d+UIwzJwyKO_rFizg5KWG zk>Q*EQ`+_m`gp6;zwLd-Z+o9n-rnDnET19omQA`cndOoI&ClraXHZp1o(5_PeFNr3 z9w{Cf546bto1gA+VRV-4_q6I1KFmOp<180jt`g6^9`DbV?AKML@2KQvuJFJz8W%68CN>|IoE8hsvz|4DYPm>N|3C z!ond^QIS$e7h*XNP%1NT>2AwXl+u@=-^i_APWj&8-GF!=S=jo?exandpMy^xkD2Qg z{Pye5DzB_n(kI#t8WUEx=UXwxWT%05>3-vwX63P1ZE{ej3hcM{)IopZ5Eo z(R>E7Cz?NU|1aq6XBZ@)PI8@89q+Fba6gr5@Nc$Ky1*~ZFRpmkK@^OQSY2SW{!Mq% zY2p`Bf&Pxw&!~m0GKY|kvHO~OR8`dwxKw<@g*xITv}>Ke^pBjjYedZ@J`go0w?Mp=%QmX)#oV)twWWBYLYhpCv0nTJ zaT=m{(X>>o6Dds%qn%+iq}VXCvs}xYT%~r*uj2M&Cad-e`bE^~kOBRb97t z0u5Dj=Fk1kEmv1{d}j4CBl<7FG{G>@c^pLO#2U^?Yuz|B(fH=TRR+{}KX-Ry9GK&gV3!4&z2)lttb(p-&w zNf+bhq<(S#tcmpXu&rtM!I3pS@l|?R8F||cRp+IcOMi8RePxamk(X7bbEL{_bN8Na z1NC9|6p74Z@JN(s;|3v*828nseEeQdL>ljY@D6{Bu$S?@jsPc1c&Yr z8)EdTTxDCt{<1I-y$v?53^opx&O2lGZRp|EO7&W^qX&5tyt>}P%$AC_%QaO=?JHA- z&SgDJ`Ycdoqx-`l;sQkuA;;FJ?QHh4JBdMpAc&6K{i7H{a#jEJiCL_F_eqh#06cDW zySXy0a<8`*vM2^9-T&&lk-4mto?`5y0JabHg2 zt2;>ieJvrKL|=B7`~7q81OATwp9clE&IB@BGRA&t;^PN2cgcajMY|(LxbAvq$Ck>i z9gPBO^qct{cQ^|L3v_5cD!APw8p)SKnuMR>6}u4;sF@x9*A6&t5B*nn@Uqc(`^1b ziLbLdE*z9_@X6x$q@($~czu!0f6PfFfUY7>Jrc(X!cvr>wrgB^tHh``he{f&z7>pY z2%?>=#HF;RX=cKIf;Y=11xs$=>GNCd2sP@p2FTk*wp4klCv-+RjPa#X8=&iZIl8=@XUs^0~iunpgKJ{vc2%jP! zR7S^`py3i|YGq{1Fp0EI<&{ZecJ@ZxEK1xaf2&~0U%VK3-%(Az?)~rsZb;C9F7Fw_ z0eCfU^Lui1>FD;!(W=pIa&-FWJ(HuM(FZ0Fk!`dhY)y^!96dQ&J~~g-YZB>eM}u1GbnQF2b3z!0oyZq#V(=ot6vl&c`v z`Q*GIm64l=<#s&8(oTY13wp$_B}Z!Mc)@?3w$C-2L=Xeyz*;4`7)Ac`-rd&;-Z(SW z&(clFL9h0=jEuu{F!J1j(m-qx%c?afhk~5OU`=Cy$0lA&<8Nh@*?hI?ggX{g#-`*@ z29(%W8F>zSm8*j#hn8I-OuEJ_SF~pvIo;8_dTHKFrOt*1exe3D&1fcNNb?fUQWi8% z>oZxExnNrrR(fy11MS5&5ZXm-Mj|5w`v8pI?IL!N@nf}ckJty6MidHviLw4 z;ag@MC)1_m1Z7b$dS=*?^;MMlBu6__` z`fKk%4>no0OrIaXu*HjQqZ8UEez=tza1asJ>^w66%DSdT;UqC9Y{#Ua-asqUz%!P>t{ie4%ygF?CzfPmBYlLDHp(!k?(1N_mVx?@QUIiBnK!gD zvMe`=>_&Z{&~5I_U*-U!infjpTLzi*D}5gG;eDf#n=l~9_Gc_m6lmoNtJSpSs|g4< zYPa=jC+a=TOP2u`wpHfUgR#iqqeG0f)qnkpgN1q~ot<^8)!P=FbBbif9)t5sm6*6iKQ6lp#hnF4?UPYmP(!#|l<5X^aV-YF=Sa#>0@W>EM{ z^cQqjU`Qfb^`A^q3V!MNk-fqi28RI(NOM_{War-cMa8Anhfu)-Q(#zHAKn%oSV^9b z`mgt-=modu%|D0GI?=200-_T7Z+4(=3po(cBv?7ZnOQlnhNwDB4%r~v@erP#Q$PcZ zZfQ;-@NRUcoWn``xkZ-ddh~sSvt}xpw+$}0P|N{>ip7PYm__^38UE6W!oe`>WmLc6!nXIjaLF!;-Nc@-|ig#k&9^B8(s>5{VxOuBg2%D2I`vfjm07F zzC8=7SeCG-%eF-hR=;6%p?o(4Kw^n#d+ecWHZPAtA&?)o$FN-&&R zk_p6t!;?Vl&z*qSi|bK<_>Sfw1BkEj+wJ0?F9<}hrd{Jd43NVCWccEwJnYEu^J=v0 z4u|1pgW)qi3?IsZ;d<1PyVszW+;b*fJeK2zqKCl^Z%GK2udQWG>RgQ}kN=1dU_IBNv|Hr{QMO|&Y_VoShyn_k zmaSYt2X+`X^_{-4Si_$j>$flz83P@=xiz=6erao7b9w7PK?Xhw@6?wCCaghIMr_sY zLxVjuEJE)q=>q}O6pe=PK~Thc4ySAQD8=qVA=mmNGWAo%8U}_Ukb${RVQ6enGM!rM zV&r5)DeqenSdi7!F=4xcj`|DES9xq6Y6t+(_PHnh`!%X00S7Xfx&hRVaK^9BOb`?} z1h6%B6nvWIoHEvnFRxY}$MktRP_jI4X`et{=VFY*Ma8<5PxH4c-nAW;({k)VX+hoJ z=m5DU&|DI&3M!>Ddmv_E)+y3WMLt#^V-L=>j%{;)($7Q+5wCtQ>yGmFGG;j`+|yS6 zF@1{|XRUjL-)s}h8puWik??B8)L~-a)zxsr!(rpZq$%%Bk?`ct+4<(xLs zh%1Y*SNBKzqFrCGerGf?sjY#ME#Y3USBh{98e!hq==Ka#T4AqNZpGqTD~diXdoV{~ z(mV@N(D5B!1RtY|`tJ^?Y-q4!UIho{L!e<2s<|!jZ|e!RU&L)9c4G!Ses`=sS$(6* z!Qw|eYG&E{g zD))X0Wv}i*%}vQGUY!Udp#Z(Qcex>Ba@oEXS+T8x6XS6;7Fx?s10 zLS}&Wbb4LAtgUqZsQA^NSMIZ8g#Hq$Rc~*sK3E+-Hw*Rv6(&>Qf4+)v(vr0Z{I`Ma zi1Pcyb4leqADhy@m6H`}#U>$N#)j)>Zw|LJsATuUy%<>4c)mbBp{mZHD$ES1?a}zz z$Q4$a;clZF;5YFf)qljA#8 z-|77*y}$eM6cvwF(xupgxfFJf_02#K1?!PC)vLXSfh8rXp9r-crLg|{C3<)8N(cq& zs0vma+=`Y)wKl7ptwJbOQbvQhd{c@yD3Id3u0^&psz*%O3^1#*UQq96(0`r;K6;-5 z{)end4elPE1|O#>{YO9cB>Djws2_}IF^r9i^Mm_V?$w_+^fOwwRX@{Rs%!P?%B&Zv z#a_l9vrl3VD*UTc$|ovTjT)J|m*3#rN+T*Vnn!S3O*4uk=GOX!^&yV}bjHomqZ*?l z-MspjeX6226wtbJRsJ{n-l)oT{LZ2(8)(F+%3ItVfvTt$zHD@7`Cn#G6)`0uF@KM$ z{ItNQDo9Qbqbg_ctm9Pv2`0rxrO7Fd^r2;tG6SB2n`G-!_a0r9$#&h_+hs4|vO4nPoH2+C-TSC4vk5iJ|B}(XGJXt-=d-wQ9D~dfI^%_oe-I zu3n`K6-dH4~I9E{~wPueLDHL7FAcaRcUr0~E z2Er6qu7Qz)bzq0o;X!HBG0A~6GDBnUxDnB_j@<2FsKl8H{QV}LR2SYZPpY|XGFtcf z1s%s>j#pJi7qteXi(r_;4M?PLg_;V1slZ>bm5!_%5HV{W0{CqA|C|I*!&%_ zX`aL*?$^Kpyj*Mu3E@PM!m!{7E#BziW@HP`k_p-5SkHxcZ9Q2)e9k8e z@#K24NEZ6w)+$6+o`qMBU!v1grnMJGNDSTaS@*5JfTr88W0tQTfl-k+I|rK8q3DR- zH<(Ju-3V^S`%_(>N?`^r|mctFeAq zJ)owEO;s;T+Ps*=4;Y~ce@N4tH?fsC;9}-_gyD~u|*gR9$a`%FftEg!CgHkN2V7SU@cf&NViMn zJE-xMY+)N(<<*r_X}p-ZUYDM0Ru(I2h95zPpeC-fN?v(8X;4@S<1`1xsiH0Zb9GFP zc|Si{;7o9+WAlH@ap@}o8QX4jmt4X%N&B&{vXl1{1IrV$S2rG=6U4aK1mHP+nN&& zn6+TaD)~E!X4@!WL@RZwJ>YU}zVQFhd_7Jv}!FY^XNdL3(ZP{PQw7rj(r>f-k{_dG>(E>Lm*UZ-Gq z_|y!}MHuJQ&OZCpD*jhhY?J8A0Xp4}Rgb?55#(NRvu*?8L0TbbNAF12q+`rRv|$)qu{N z41ki2Vz)w(!a!tZu4D^=$h3Tt<`uBRuu9)RzL>UwNiOQ6o;M_2pIs@FTcoxlem`3~ z3lbNIo|x#`h~W`2bFB+w@8-RG-^M$uArPBT9E?qc4ppwTqtmiA@uI|jZ;Ba=?iiQ0 z60i0gDndhpZUI@yvNe?@yS>^6Y#pe?Ob3d9Nb~jp4A)?bXdBys5J_-B?c)MZYtu&m zgPUxfv?h=>`YHr3;vCZDO?^)QS+$!psBy3>DF+PnPnnvE6PH*IJhLEd1H(DJ!q# zw69?>c9k|v@2)7Xd<%P`Lqg!u?u{*&8mSta;s2y(@-mYSaBMNdYMmUpVr+oje{xIt z*lFqs7WQL(XS2IR9b`%ZN}1rb1fP7Mh69Oq-O|G??O)yoW^hLRHt*B>F_W6Iw0|H` z;u1;#eSe^5C!jd;g^vGWe*7h63o0c~_T^(!1ZK zDNsV1IYPKm-1+8sC_3WJD||k&6iA`fXbhD+gF|Y>iNgRB=A|&9QsD}>^2P7%3u5X@ zf`knajEf%+hIsLL8S=eQ$;PVnAyE77e-_S^Z1iHH6i^?9@17c6I;0S_@fAa)8m_2) zJ^T$;9><3lszz3pEH9{H&OXkmI{k6H#S-!NV#_~8AnsL{QA=gXn0-|kTQw{D#M|Zd zv$mm&9>T)4118GkAt;zbL-J8D56PPx9Ww-V^N?JatW{d$THjElYEt=#ad#{BD+K3m zcM4P=bZ@I|41c8yYKYlB=4SuQ0t10kD%(foQu&A&0PzLz)>m#@I6D}bk?<9%SOwO~ zSEOR4ZVI`n*G&;O)w%(XttYxKl_yDn2lMEf9!#519~w0i0J2PxqTK_2b$pwDGSO4| zm$1(+iYazi-DF%eQDrM3B6uhGhZj2^bSQwkFy(Okl&*V^#nBp<3>cLR7DcKZ3x-6v z9pAn*5bHHK)+Ig%-(!WE&X4!bajd`8XNR{(oVu4jI@CF>0FA?@wdS zkNo~4zQ^qShgMBJ#gg>M)|>eBDFuPZR6;)adEb(G-h6xNSpOOJ;qD{XPrgOAhxB@y z)p1wWZxj%Du!`f5d0TzeH=KA!mi(Ldr#FGYtmtupzOdMfQu1-&cl+I4;0HYJ{ZQlm z8l3Nu$NQ4Kmm}*D-lyd0%wwx<*XJK0mROs%LAequRv1SAeyD+rz-CPK1c2tpaZ4MT zScBR0EY`n*{s8|sKTx-GZL#|ML7M*f`r>?13%bSGAQZij;2ODvXUhvjugp(`Xrm*n z!kuETBd>P01xYqZib_$1V0218(NGEq4OtnvKDRP*OI|QSICV}y!N|mdPQ@ydGk1Q* zQ6)LQ71pt%z)Se+q6O_=<5BO8(51LCoG-Ek{pqL*5gDT%S?Pe zynf5)H;jCKh1vQ1EN~ZLyvXCXvw2b>cIy1ASU+3$zZuy>Pil6ygOok+Yo2KC)O`Y^ zFHy9wO#GE)A3GMpWXX^lyVo4-Zehfd@&fSvmzm}9gPwnSO*4nT(Sepp!iKapW~nt` z$p&d7(4b|(f7OAZT0=O{CznUUzKZqH5jlK)gx?pU9c4ZPk+u*nAE*bj!V5;8pVirZ z7(V*v)GS<_0+U<`k+hJ3X?%3EX*2`*Ks?ZRVhRBjTm%z*n0a1K ztOvpf*b>cH3rB0e9qDo+c1k9GhREU?xi(h;UDPF3t#wJO*H!X~?|(A^qXzlkD43a_ z>C<1@nX4t0FAAZPo!+D4x-LE}TNoombOL6v11ILW`0hjG4w-;`>_B3gp$-KksMb>u z@Ple*t&jhs^*~z7qpgSkn|zjEU>%6yrTPy(ZvK83d>q-xh>oegV<5H)QOi1;E-!rJ z?U%`$nO+UbGrKN_U`+TR!RmZGvax;=PAC@toP4ug>pyC~-}{ddV~Z6*BK{pe)m~Tn zkcf|F`F;s}nF|s?br(X)7Ua1wAL)27S9K)B=N&aG1M>88kCO?v$ z-RVhxeS`e^?)jYhm=C!~)#D%%#Y5Jk-4y-{ACmaq_vrY3A~0y_Bg)>) z1`rwD72Eq}?icuCb*t*_ubd} z7n$&0;KOH?;Qdh_gZEMj939?Y`lt*1`F-?wxbIk%J|9J$S@cBk)Y>9wtufmKwQ{Xz zifzYS&|lUqy)C%i5%{UZnoMk7s2gu#O^bUfkG$jl8I4F{x2mWYi?t-5Wts14sm|Y- zSdJ<4;Y|J_%|B*sPF?E%I`t=Zqr?tG-^=T7%5%B&p9Kj=C)>Lv`EH;!x!--(ORzl> zLz#tNseI^cRP@{Spv1mY1|P`Qn&*CVhF~-yU+riUcE6(T&B`#RcljEouJ{bR_Eza4Ev`@U9N7UryO4?dE+)0Hh7p7jmY~Cdm_0U39B({ zYy7MX_@MPK;6u!`bo9M~QlSgXuEwh!Pb;X|^jexKSx5$=F~6Df&?%BmE)co*Mr(F@ z4l`}KwS*~PLKik&)_^hzn4VK)=WT9^xmgJ^EzK#_bCB52_RIZj?tQK9^qd>HpPi_D z9-pl8*58w}62R8aXw3eb{TjD492|(`2S>^vMP5fNr|1`C2 zv^GboU7%N}w-KDL_BUhorF=KhQ(7ncpgaqx#E$@A|s<^~Cj3t1JJ^AcrV?((17oUG%!_@E>`cK53q5U!~k8hwRX zLwqZtdk8Un&IexgYrx%omqJo#VIw*q7!BkrT4>3u%TBuZ?1-`u?0o{?Ww-EUQO^u&aJ`fx94a6z|-$qaY&#pZl z{46vY>J`S+4X@Dhb`$!jh+hVa`xmQwIItu%!=&xeypk$bl!%xGRnr;&y5&8(JzfZG zEI69$(V0W<=jEYgfe0!9`|JYr2F%cYcOvib%u~pae!8vetQx83A3-N5+W=i_jh_vZ z_`pj7XGJ3c40vq+w%WgI<0oZ4BU}=t&*$W;(oj()uOGXdvAU6G5wE8x*)1tMzH`Vd z#Jk39qoW0M63RSlr5QKOsb^~_tJaFCSfg|()Lk9&D#ELvUQeP^eVDDFn^(~qseFJY z=j4|)zSSMO#hx_1WEsFHNVe+seWoU#q@tBL8NidzQbxp`QTq2!!|7jpvZVU=6ot{R z9oD~=QdOuJbA?F2G;Jc@1bZvu)+S_NX(_jw6rN5~aEST|vrU3A;YQj9t`in>g;dv6 zQ$r~7Cv6I$=-3Y{gmQnu$1}hqQ(Z)TuYq{NOx6A5%mB7gwV)QZLm0LOXQ;@6Ey=Kqw zlENlZG@=eMCzO{&}p84Ozx8+$4u6F0cfPztHoTx=_` zN{J1+o;+iL7<$D)mSNks3W}`uu|B+}xneD@0lVGRpK4yVxo>e5wtiE;W2@&e2rc>O z+^ufdU3TvtRo|(R<4RvDch7>EQo_NzrnLqc{6_LTnaX#NQXsws+|>K%*lFe3cQF_G zZ?$jcLXa8Eg*q=0iq67ZsJSp9ACkSs0X!QU`8q9SY6pQ^i6OU!uJI>D=%8aRpw?*r zACCh8qP>33#oc~DlY{-YVTvNtTnl|gd}6^bgR!b%$n&=^JSD(E8FfX^iz3s97EFnh z50wcA4nWU`tK;L+yAZT=9ShnQz;j%7Q`KLz@JbFLpJTcn{~s8OTPJ9M+uUYsF;M9dPn=UA%rip!KUgPFO3@vuezv-b2gEa3?`Fv7;*HQ7R{Q)%l`a7h4m%-9=nA|AauU*z#GY zJQ>e6znLC{8Y6MGmh`(P;Gj@wE0L_*xJdH{HLX~Alyug+oI?gGq-*C2iY`H$z^rj_ ze$Y1Rn@(U}Ys_4`Th&FN*|!q~+|{f}a@eXAIc#(3x0iQszFk%i)@8U)E0PJmjXm`S zu2v%O`0c>_fX;iL4AUwx#skZlt>StZ@>SNUPIsBE(GkyKT&g}62m-NDuh`Z?^sG1g z(YeTKk)%-M-)3^5+oDPgkhR^a zCegDi)w8SBv*@6cXq&*j#6U65MSw1A(1BK)?(1MMoBmL&b_EBvu9elx>T{}w#mngD zB5Qzto^S2TOsUh=@`=iXPYXp)f4fuz+vO%D#(Oz0(Gjksqc#hns2SFE-YZO@#?w_J z-F^F5+DGk8U;kK3UmqN5P!u5n9vUB5TP@l#$ZFj0e*7?NA!eWw4n+;o++SAc15PU~ ze7|CourupWdRTlR)+Xi$qefW2_q!h@YOlx@JX+k(_N)KswRx_3|ApUN6-@TmnDUu@ z6Rq)7JG8drlNrK8^$cO}5OJ#%dD6Z5q3xUEQN}(adI8u@x0Z0xiphp#|Ks$un|qUH z)!Z;OgK>#6Y9DvFTs1&mq*p1D%->}Ei}bNYz#2oD=TO8#RZTYnGeaBNxhfhV73DOq zf&4q4tEJ|BTw}c|j-lZg&ML%vh=vQa`eh9@H_si5Uxq&Tj&%tlTCXoK_=7wYrT8j{ zLoEa762EDhuNQ7J<;S?zCp+#x6)q zyz()ax?M4*urhLnNioub2K?)W;TMyR6};VTZ4fuQDgNtBQu^K_f-pH--NT93KTpc@ z0xi9Ah?98ZoSWyRqCC76i1a!@)Iw37;l1{87ibu4Bkb13tB>>`*6XVu!-OU+E~+iX zZT}s5)zWJl7yXy2v7OIe_TOzuzKisFk=y28FYzy1|JZ*YtJxX*JU?l*jSDsDrT&}M z@jjHg%lS$BU)Oj+e!K}54AbdG;`#PL4yQ5~C$(n3uo z_CwoWEq+C!KKJQftL+mmE;pmL^!^ZNSP;JE+FR$&y*lv7E!Qnj-{YC`Iqe^p&?M3W z&}?Ji@noUE6R8hNJ`NujEZIk*bgg;T4}rJiCt=1XYvdf-F0+t*?qhmTR=qz5>u6k6 zFYuAWJdo4<8QJ(pq$cU#&E5E!F+P)*x#Rk3$!}8tbYD((JFS?$&wszyNJ7T@OOo$X z`ypc@0qfXT2%LiNpS*kn(OyrJ^@@e}j9vOa%Y_Z#&-QE3bN1`>=ec<6N443nQJd}3 zYX=ulVu9Wj_PUM>DiNI2`roGatZJTK=|7#67mQ3Q2u7|d3`V9FRYqe>95Ug&<#uc5w6;m{%F@-?mz9iA4;d^_$x@@ zo|N!)+|5&HU3>}MjE#B#GU3KC867xybf(Y8hCk%biO$M*E59w0J$B$6zDQWG4Wtqy zq9@rFj{)1j@%j7}@>d*a86ObxG>@N#*m#>eiNcr?xv$d<*Hr!_!zZX;G00@=6${JZ z6|CEebg1t$94fA%D*uG_tM{!{sPU+82$qZU0L=%gq+K(7OUKtr;G@t7%}VNRH4kk60;xu^!yvk=>aL7zW1k-a8H$Zsb1U0U z9b<#ioIru3y!i{%_cz$ZbbbHf*Edb|jq>YzmIBH8@OaO2EA{}xDCc+fyc695|5uUw zu76YNuI7f*Ud8M&omEiyWz#Tyndz->b3cU{P0t1RHml<*%4V#`V5|~3>Y%-9!$$Qw3YBpi;kcvk}?fLF~j4jgVMyocLYK4EGMnQlS1n~A1D5J}V zHvCabAes5r|BR8^|Hs;!07h9| z{r?FF1QjRLYOyX2iZ#|PXjKr=L4X(HnaN)*rL2Ut1$^Y{`_n9SuE^mMTwDLUj-2L3M-E+@9m%App zZ=I8->$r${UH(1m+&F1Iv|OPI*c4o3losDI*%oFgfS9jugF3~e)-&OFO3YhGItcmg;>orNAdPdpB}=S4h@S3UtbU7YDH6N z2_`=0rXQob)A^p%cO1m)T1zVK)e%9izj-QBe;oCW=H4A(*@&m7!>15fMz;gVh0%aE zDw`-qKS~>_HUL%}EamJh&)X?e1y+Jh>5Kd#`8xMGrSx8_wb;YS_O0z0!|FB{#(K{! zj?}&etShh@4WBz`?kGYHVq4=3_DQvV5tQHS)fk4UpmtNCP7@UlYp*__^EZ_4zCPbt zxxTRalCXOU-ycbQf?_V6ki(^ZYF}b%WBn&Q%A69bSr_^E*=w^!Vsb(ob31WE!-O`l zR6(3|wq|cm!1$>x)6{l8B5hw?-HYW+`bTuM+5Hkc3_bS7W;H#{BRD(yyWs2t?`U4t z;coUct2w~hI<{y^XIfiZ-P4U9Nv=QrC9Oy_5fZCi3MwnL(mR9Y(NA{277g;wTp4*_ zCs*g)CAtfKf!#VkAgQyjHY+bsVY!3{<(ho}R9+s#1-Y)3@HZV>Vn?!T@poOi&at2p zGBEE%1)w}}+P<((i|I$*JIs;fd@yqR2~;@+Ao2dL-mgjXo*Fsl2NEh<6vTw<0JzkM z1$(PJ(m(8!;My!HFot|>gwAqL?5{38>>jpiTT#`U1r9k}%W;-S^PjoJSUV{vBvhm$fMM>j_f?L+QNuHiTf$R z3g{?G(14pyA?{9Do5$axL7&&==gWsWPS+rB8ZV`h{j8Bb50W7xA7FEsJ^K9Fm#H~! zWfx;}7Y$a=2BeRqrexK2I=S#`yrw2H6KmX4pi(s1XRgYG+`X1kyR6qHXSv0rq-vj& zb+`Cu-F{jAdFkd1|14<~EK>y6!+uNEZpI$00qiu@G+3*cr+a*L$SW66;lJRO$?#s@ z?7j8=US0;UFjCwrQhXN92IFuD{MNs^m-nQQkB&7SdLcYii^5};4;An~aK%8uGu3Xf zagBB6(L>f=O&DJff+~Ta_KTXysoM!OGQ^|xD$sf(X#EsujTF%WHB!H)w3yV$Ln$H} za4{A03)Ql>H4ByPLb2$@G#^|#htjh2P>#Jy6^|*g6cbrcrz4lY{I_br+8kmuK zlD-Q9 zmQAy)$5S!syEg_3%QlOHKK_Q$r_M)UH35S+xJO$(WcUMUtEG?|w{WI72(=Hhp=w|^`K zjn?@)*$^m*+^!dhB^58|WkkbOfZVuQy^k(I8xXk{_a=F{1a@7ce4TpAV_d=pcde$r z9hv%e^sG;QFG;zb?T2%8xzIXun`wE&$y#F!I6eR4ntm|*Bng+;Kl03(^04>MK`)n{ z$Nk`4kMZAT{$tm!>ka<<8~<^XrfWU_>H7x$6aJ|8nfcals_mvvJsjExL7lJAM4O_p)gNrC|M%eqz77<{u{@rx9&Fd`NEeZ#5R&w;A zu>a@JNpjXj`$jt3ZL3LqYqwY71P{v&uMi`+(EW^%KW1|9x?G%%SmH%cVUzKgMu=7}Q<$y`W+W&|K_ApMK z0cyeug~@&&BCJ9;Q@bK-zbktLd}HiE0HMDQS41B*J-%;uJqb;YDSY}Qj*bbQx`J4^3^=N}D zB_)I>{tdQI;)z1uRxi2W%MzZM-MUX-*F-HdI`rqXHH;7S)mOf9PoR+7`*TOrijdF` z(mg;<@XETGOjv}IOn9b*m_)i*&H|RehLpa5n&J+wH?*mcL!U9UDh@d$%>&3FreF=u z6zvnA|Eg$Xn>$&9N_i)tP9=qX_MHS}EPTTiCy8k+4o9PAL^Ivw8UA_5anxw9FIisO zM95Q_GDqdT%H+?=+XljfQ!@lpb8q^Je3dED;Sr&g$NgfaA^4;_y>w!zJ1tNu&{E#8 zo9SN|e5|xK^YzyOz|{9F&Tj0yQtlby@b^4W^x~cGf;q6JnWgMw`59olopBYD)izX9 zCoY}^{MZinZZYoti2_}h`)LUs0gIk0LYZJYS~Hsb$UUuOlwmCmxx}(kQ)f`r9TljR z((QhPgka}oZyBt-ThG-8D9Ay+Lr-ysTVd`AGdUwh;Kh4YbyCkjeIgb8c53fY%`XKrQl9 zKt#&{z8`oMiXW;U(bO4*<_VIjDWf0d>Id7ITU?aB=<2NQ+c;#!j%*jgX>Rg&V=PLM zXY|EP*UFX ze2$RihI>IuUE!CeA|&qoVTWDyZLb_ih3!^66USGaSqV$ac64(*wM=8eTH&62UP5pl^30&ZLmTPtLRFhus&`|{wifYHJup%1 zj!{85T|Ec(3zBZ*mqd5`|7}$~n{?Ybq^6!sZ4zlrnwU9b_so2!tMFe#YBj*HNIc5w z>2j-Hq6`DRkEiPWvwjERor1RQkFjE(L#2Q9C+-IqsM-e6?V zIJ)-F&Ogc@+kMm8%$c}G_q1<>`k%SyvI0kMt4}glkTOy6=X5DFW<2$Ed>7XYil?Tv zpl8QN%x#O*5rYM&8)t-<2o8v?EH5bqnm{q0I_47gL6Gb2f4?CwNBuecn2-!F39)y*{ggZ}Ss`DicDrBMP-NP5fOjrPvC~yUi_ACVzQk z=W3;;=C-(J(3f*CRRwu4o!b;ooj8d75twsp$eh1H0gd4ro~nIlZ)46&42M5*$Llju z|4<66tK-JBx49~P++{q1(FsSW7GgVWb5W~siY;9CxA9=M>+J_qGh9vmUA%#wxPz?` z*0{UDRmEZTfLKH&`b9Oj*=zUpR=&L>8m+sgxFAx$%|P~qOxxO|_$(S+gV-W&(RH+XJOcLN@nRoaOrGXtEF|Z=9E`Qqig23TfslwBZU%cH9D9< zE9@Me;_)YjMI*miHG3v!hs$sY`bsTb$~Ju-yA+n2>#N@QDl!KAGw6lkwq0hSsdvI(jG(RwLHS`{Ki|A6is%Pr9#uR{z1D2*Cmp%_IAs>+2l6 z=D)j8P5BrQESH!;4mlz2Z%|lOlj+25xc^x+*x+O$5Ep6kMunVhggsGgbp#$q+D&d^ zyMRbg9soIzRDxJx8u}iVq0MeUHa8?|xsUL<+m!kS&?I*WF@&_{a2pKds=LK9y53p#0zPyV~<#HYCi=~Mic*b zKZai2k4?7kDyZ`4ex=b7bDL_onW|<<^`SJ_gvF0&AguswA?8K*>N>TH84F|1!s-MU z8aLPUjgP2ls~!T>fdXZk72Jd}GQj`I@AdJlXa{OzYP~poS7x;DSoRHW8vu^8b%T_ES}L1#V2-8ypohLJKx#fvMLu!k_EGK9 z2`9F2{23UYQ>t^ynWf?j(UlC5Kd^T2PA*j3sN1L4Xo+~yL-;iEci~YZ}l{f z7crFF=2u)9{bi$D`8Orut-Q^RBbUS&Jpky|(Ir{N*OC6B=75w8E9{_`pnY~B8{XKX zu04@;xG9Mxo@VLwFkQrU*W|-evV3K3T?tKdvFn#reehcRgvlcb0;)xYc_^*Zbm59_nm8k1o+cGoVrd=6c^EEv;8ae)hPB*Eg*L zo86RbGX31-uC?UN?i5Sj=1$8dGuEO6Z_&{#v2$ z0B#}q7c71^#PW-Hx+{EVv~7)*x5xgozh9B!bD^|H-B6#`yxu%~eeAjX`d#0!cF~0! z*rWEI_2aKn0NXr}_^dTY=X~IzE#pJKI4tV-n_nDZK%*@cv%Xg|W7_4_`U+Ff-)5{x zGpoOU#pSbQrS4IGWO=_+`r4Izx%2<>{$%CNx)XQS(}j=!%Y+khW-q<><=P7^u2@(Q zHw&z;S`SKh0A{>J|L$woycX*q495J9~7N<|BO1wAc zn(Aryqb=FlF`}_?(ekVA_`TFAU8kOovPBwvQDr}H?*aQ*%JT~`M#j)46A1hVy8A>W zhuLu6z!*@>o0WQ2bf16?D@Yk6#if9dR2V$GCw#rU&fa&BTs#%2$l6-^n+ZQVQ5OyR zY};3>9E-6N53bdYeB_6H;OnvA5RAYtk?KyPyF+1I7EfI3wbbRhS(KxJ3nQs{xP;|v zJi)1KM^1QHw;NVJjHQD(@WIhfpdvj{B=#6tKKhB`$nq^jZPL}m=c%P0m#2NfzU8;B8`Cna@9kT+y|(05bzsM-)*rEV#TW{x zH&hUq)2j8HAY!l>S*F`0RMl3G*BCF_{TO?U#A+N)jefvr9y&EKV8Z|#hvVVyCeCnr z#Q$L&2uawZZh&iduTxlp52=Y;1_In7d*fs@qqb&0rn#ngtp!}tWMFAZ4?^_?zdxyH z5w^SGYYPi}Y$;*(aUruk!k%*VXcK&Hk&Q2G6fM_XYrlzpp1QnOe8f_LC6c-g1rn$= zU>$gv^>cZ4zl9Yn+bvh=Y~>*Y>=4r%< z?!#_z2~m2+2#$C1$)~Be2<4amc-7R0f&$GwF^QC zd1&t0Q`FoHnnTCZe*aDZXNA5BMR%r8%ay0HEb1HbQT}!-Z{3x$%si<4Tq{o%TxGy~ z?n7U4$S0(&Y)q~PILRrs)f0qwSN!LAw`z4yy!+l>Htd-^+{vV-qm8>kyhHN&k)`i4 zo(w)%r@u)}yC9)LW7jm+aK+8en!TidZc7i6K9)ni2fmH-^F82qX)ZUbt z(!KlUV_&WNtk0)i$J@y*U6cG}7IdK7AdDx%Lu5fDaf@C4hQ3_0aH}Cdj(DE?)&Gcr zaMxJm)+mfG^21tw=Ci-l9*;T^d1~)}kivpz?-Rg3 z5E&WKd+I)ovJN{AC~P)N>LQe9&#;8yy)dz6jU;AK zRp)8O44xP97~!8Sn^<56M740}1;1r?xxP`9fqz==up}FQItUcG>2@O;otNCqwNRA{ z+5R5EnaRsWlyWd^j@k?CSY8x|Q@K@}p^}>!ND284>nV2Yq{F#$AXKkYMiRdkW+&}z z8TuLq6I9yw1=3q5Z-r#zgeuJ2?bg<7`>kdc=p08?xm|7)7t>vpO+$m3tXb|!5*v;tbs&2^O47V(Y zDjv+f8@~_iRCZL1Y>yEzt`<1hh$3E^VQAGO#Lz~Fp)JwN7G7G#)JAxw_9Wz8eZ4U< z;nD8NJ40+zj%OTil#w0P6n^iH{NG~AJx3!e>(yXD(A&uWCp_Hwq^2*==_AL`bY|yn zQ~E!X?XY%)R^t$pXipqM`ZCVs#?xwk%cM^h9%8?(o-Fn@ zd-vn-F+SHnJGKmKyStZ-t%Zl1cOPSmXXV-d8-H_)sLk^>`89J&R|@n}bzAK1AKVj{ zVQ(K+c%8Y=gJN&!(I2>-D>Mn)+*Y3Xs5tra?x+~$_twfr*c&vsp*!fFQM>fP z4TP7A;nnlCDtR)RI7hc$l^HN&KPNy0cFR3x@6W%zBZ*f*TP(FDL$?Z{%HddShiu&A zoFG2bopV%tXh)>BL@lJwE8z?i>&k6WW0ZU28h-sLMbRUlj?@y&12}Q-Z~4wD_M&ki zJtvs(<)U+r`r?-(+$l)u!W|KgBhjVdkH?ZPM^ej0EUVte{yyQP(&&+oM{40eG;#xt zM7cj%caZLZR?)BMtfRi(FH-wEl})aTSI)K27UEOk{$oRjG`sQ76`(WCZ0 zEmAwuDqJ`B_|Cm~%jXwyBE!>hwu_Ee-s2;+U$VSUU*Eeb*FPMfWt^E;kQ%gYw57(kJM*ujUdpM4g7U6?GRN3J#om6AK#radt6xC8%v zmm)sroy*M$hTXr3e13*;pUu-w;t&g^?Qb{x7sBsy;kIpPogS^5C-go9=$hc-US-AQ z-|3Ehz@zwqma-*A+}1rTbe>C|-v@T6WZ)z&Iouht>UUa>5*JH8d1{3?- z`sY)Eb_ytAU=#{qaD5!&PGg; zO$m!%_X&r2C$5j&d9 zMgN%lJYy^V_y_y@nzp02y@yqY_@wOOoE}}Zvsbi`6D&0iRXWJB#Ztqh9VD%W27&An zt@7C=Yl@_>P>Ifa$3f!w@W*QU6PRltOP;I0N{Abx(pGU(dh!`A33Tt=t5I^Ag%vcH z8gigS;ENSL&fN%uBDa3Zf-XLyvLRCUq25?aLpHiUB^C^e1v88A_MBN94~7F%4kJ}y z#cEGZlyp{qh;z}%fmW6tP?W`cGQ|$ASZf9?e~fMS!b=jeg+Mj3LL^_8BJu}*^%Q9* z{l&yJW&%-EFyQr169zLXJwK& zeAQSTi4-#j1f)t7tYdlF1BgehSQ1VEEIQAh)#OiiJ5^3@N;j1Ebn4F9w{hEJ z!DLqz%+ZhX?N}`w1OZuidXR#SIY8VkX$BV*WGT&~iThDKT?{`lPpopc_Br?4BT!@w z_KMy3Q-1Y8C{r8{Y4%7ZC)pjK)SB%^7fN_#ECpC|m95PH_QbVWD$$~Rml zGbKa}jHd?5@@V1)%$mW5u;jOdSlUfUi+yWrej92Mr=q&lso$~Yp zt!JZx{ME%nyM{h9rITGD6uzwfkX`SxUz@}|X{V0u9GkNvaP!67gRF?acS6=G^eS#(){9LZH-Q)YMty%;gy@3U7`q0<^@zj(7T%cC<$MU4qrQ~NZYrs zKseF0qlzg}khU)m>kB50?=vPG7c#rHY%z7ycdWm}Ltsy3_|ACboNai?R!{ba_$F7f zzIx!*9bGZ0-sm`X;vByOObqTl>JNSF;%X`t?LcMuAewkA8i}zc*uF=!u$B1ru(&aU z5dLo3$|4A>F^cPI&{3{*v>y>WsOb__H=lR@j>30s?C0+W7&hX}i^o|Dm;+9pU zdo%1t(+J@@FI{NaLzOnKR)@P%u(!=WBh-mi= zUzbfIjnPI%arw^35*P@)cfFerpe3SyZLFrIsVa4O8Eb=Ls%Q+?YlH~cf(L;1SEg`t zExgRsmO;j!rEgXwHz+nqMeWn&>He2A>SycbepKJ4-AlV_d8_MNL?kzJ9N6aGr!g%N zJB5w7@@T<=jz6f|`Ig8{j%0WMd!ARaQ@DrDe78lD6IKB=3<129j&8Vq6&C6;JvF&^K?20eLc!7^LQdSONRZpyy|gEd*!F*? zW|eWI+Y)-2v(9u-Uo$L!$;y-X>~8o2^{qU6+BGG3W9A&5-%<{@5&I~OA)+_9dDgHz zcwTpp={w&p)VEZhpWn5MPxoL#f(>|Tqb?8^V}S(yLsOurh-qWmCK50COqteK{Q;|sy>a-u~Ve*c;t3OcL) zq-V{NSZYjZ`pRznO2JXiO6?sw<#B5pt6+;RFrlaqeF-0epfm1}&O zn=I??04Iy0EN&ZNTPy|Uva|7Yr2b;-v97nAvz`2n@t_QI2N=C*jwV&tzI_hDXb+l@ zH(l!l*!3?W4$U>au==iSdIbk)si9Rf2#N|#Q4Hp?PrB6hrjqYRQwPte(2o7fZt)PI z^9NBb1vV^Ze~>R&Bkd=?8^_0nudO*Iy0WD7yVEZDPR(V}hpLa%mV!Rd5UmN~=l;>-$N+{yC)c~}eBfBdX;ij89!xJL zcmktY#|aIBq+$v0jNE)>NC`W7l}BzzChWuvARw=DcW_^4=Qtw*96JISLN*?jyN5e$6N;!sx&>p z>{n{~Dr0UN+~s-(D;h|37uoxwTHeE=SiuP$9yXD_@!l)cwM5q&NB3vAj0>*Qva=>UDYf%!WieZ_(6> z={(}8#T|O+M8SzePQ*0K>UY9m^H+?nfVHPY?H`prDVTOv@d2VIc+ojG@iH2f#0ICDo2 ztFQjg`d;;>`kvqC19#KsetgSf?P7HuFj=1;plAB)U>76A{}0^uH+G=xy_r3&*@4~8 z9rhg!<{A8RR|}XLX=L=XY>10In7(J(RCiCUWBSUeFQe(YzA#oAh1@HB-mJPk^)Rs~TS@9Zmk8Cdm~O&+WM$WzYH9#yi) z5n>C(Bfb<5ma1?h^*28_(J46uTC}ZvdWzMN?bdB##;LO~pBPt(j(|7Ry~#&T(W;_o z>Yx~kE#Cdc2eGRTnvPb>*nFKMW)?>h$Eqy?^ecZdwGd3!+GR98NNTrwgra2;!=4-A0I+d@* zzUXvb+mvDXs5uRZ8`PQQb&X7VL*fqoD7FC36rE|A>V9lV^GIUfdS*1JtK|cAIIFp? z!T;*;zZUvm>;11L|Erx}L7mjkWFl^zxKp$3-r2YV8_zP_KX`n72m-|*9vC{KLfFuC zU{A&tv9V?HZ1F!!p6I%(gff&a}X2`FwA?~&yTG*C+V zAuLnh-BMqf@A)$8@&a|%y{QDq{DR+zRt$-R#Y6e2#mh6$%Rjk}lXEMOv)xuc56z&j zLU7X*hKA97K$w(98%xIfl<__`d>>YotnO3J2Mt+?D3U1+TJK|d_hcRKGdV~Ja1{;l zK2sIYJ5%v=e$-}u%%Oll5=-9N$0mxilvdZReKg~dLqY~q5HAfn7oq*7Lp z(NE1CnFTgw)&hv1!U_HSv(GHhDYNF5vI3!gw(>Jb36yNSDSI0q=;Tb&0Y!bEcFUg- znduJe5ndlrE&A)o$gRYIaOY0+c+S>5Rk3myX=zSOXV(X!xo3XqX>N*g5i-WY&m}1r zt9!pNa^nm86cn5tTt9Lv&)^_q~|u*$y0bV4ZjG5 zrN}LSW0`ARr;}v%4z>o*O@8;Z5_&!pc#6})+COklQwM_PBIya!ocA58 z4c23o$WPa+I~_msnXV#}>}O@K1FQKDx2kQe?P_@m^(_t|z3!S8nJT0~NuIBIe^^D` z+ibI?4B+=8(fMQC`GG2;iS~G8G=UB`yC1)@!){gZtw-tyl6$3=(zz*dRdmS=3fcXf zV9`uEFIM%mHIGoiosKSOE_i5F5G*!LjF~5EHAe=|9yatDuir$wR!3@=vlwUdO3Ha+ zjKtOaRjq1w`0APs>3vaGOkk^USQVK4%3B_@M;dTGa8qbq>j(xij#nZ19wgPbGO-Pm zjMU#p&D;&$4cDjG((k4RN%FY<7Aq-J4M6i_xyAUq$07qwlW-sW!sbeqxi@%MQ?J;w z%ROt)WtvAY`&`14xN)#RVfHPk&~^wd2gWRB8!p^_hg32Qwp|`zY0jMa`U%%}$1(@TU}}q(sE1iHYW2S~B*|wU zNU(PMwP?NlTH0ZcWzHU(-PSu9cxtH%LLfRO^(`(pvtYrS-QP&8*t!;_qmn3{j6zGg zc*;)uYX$YA*8oYlfLlslVa;MyNbeWvHwz$Pj=Y7Js;6$oJOy(w-Pm2B9KniOa=45A zd!ybbSq(I2S0A~rsgXK6;to>T>Z7_E^|hAz)ZqJM7wg*_hC(yeMY*DBdue=V6NsfQ z05Lv{+{C3!^l~z(4~KUu?Li28jh+zp0u&+a1)<2m3BAiB1LM8R5VO5YI`zxQZORmLC_U9!c%H6OA9b zvM|S?-Ex4lq450B?Gxs>`(uF%B*@xzH1wuv-XHM=uvjg4!%#-}$}n^TIXYjJ-6EW> z?zW)|tpc0s&R)Bf;9)s;VqVU|-R2a?E{ zk69>sy|`3&iD5q@tIUr%{Y4=`YRe_+i4@O(h)`BJ$ zNnA#aw4*Vp&g)cXuuLQE+(bc)VJ~m+rZGD;{3UvhDeEbHJT*3JLPH;u5A( zax0$(yYY1q?}{eD_jCp!CdRvDpCTdN^1k*u7V8ttd^!(w(z1-aM*W&;DT^C;aD;se zA%(W%K61q9WQTT&FX#PD+g&jQJ5OE8>c*ksq`BU_0E-Onmw7q@-4VgNLw_vBj)=gr zET53aUqWC9eV*mve%=_KNn!uk^s(+|obnpDi3Si4c}AeeDa&pUhk^AqUDX|*Gxe!U znGSPACA0`_a3}3j-?h}|>l)3*#}h~`@{Ww3p-m!W+E*PJ zOA-J`8;fTrCwv`CMD^E+g`_Lc4Bi%wv=*}Euri!vdoP)onQGO{C^)|Cd6J(>x8_}} zuz{tr8ye1L`WHwP&1d=x@!;@RUX}i{*^RUTb-8c+M8hy+5*oVBw$>h-WDSCPQ?#-<1J5|B)mWZ174y5Kd$%G$SOkby0H(jC|XD-vevf- zQn9DY`i917);Abf!J6_CDlj=g2)!Ytv9+Uzl<^%SSM`u#6>CNhDKF5!(O$x`u}Yqt zNuH{N>6Sc`t^VtW%!#e7A5yDi{;HCH9ik<8#hUsdT6?RX!*#?xfQ~BZ&%;b z#?q(eWuVIbgE85AC`X)!T^Ot#@67ny>4`Mc4ENX}`Q`-@qc-=Q+e1<62_U=2;>)?? z@^XG?QnjZ@9$+~h?mQb|v3rr6o`Og|i)1$v!rouuHN#cwpU}PtF3Na&!-J>5#o)oR3%Uoy=unBh*tS4xeLKa2 zm+2GR)vZ;j?`7htWW}tZ7mfs$$s$9t2kk@BX5y$Pd$olfO8-8)aNQU-55oT9AQ1Lf4|s<0;u>QZ zs>fC?s7xWJ*nCU=T4fm!rsmdY-5ivJ`iYXHIH0n9-xdu+uf+xarWHorvFO4r^fL255q2PsnBj3Y=5o0+ZPcdxj(7g z=CU_U8G|1n?ccL|j-LJs-Q1II!hTo?E>Ku_rnj{a#=n`pZUMd@HJEzM{Tv0_ZQATU!U*DlYbQD7yoNqpP$^P* z#P$X^xE4PI*KE%ZTsvj(dTo~wk`jlaVY=Mh7DDQ@-0KjM7$9|p&Hf2ff2oWQw!fvht>}+*o?pDt-OXx8w#$oga z0fPQE;vZAjRZ??6eE1uL8Kc4>CPwInZ)PfqGS~I8-#pSh2_gDD%qM0kxy4;n}fgp4oU8myE00Io$(whV`{9lyA zpX~yiwPEW_uM5bbvV+Ny#$%3QEZj*o@?;^UuwXeKk8KwYtbC=*O7B$8TuHGEI+`J zl6TYEn8s#qF^T5Zm(VsF);d8j3cri%I`BDjx@!en%l3G10(yaG7U97;JGMrdTI6g4 zx#Yd#ydUxmi4+{3Xn)3cKyg1ara|PizvsoawXEpM`FOy?412>^ZHir}|!% zxG#2uU?m3bf=31wv_5=#1u*>*Qa zS7suih&;Y#ZNuYV6z+TmCaItFL)3LHiJFkNgkTv~uxaHfP_R3JG-(--8wvo=Fj~^1 zVHLoGUT<}KSsnQNsScX>nVwb-Ev4>}Ir(VMc`Wl!RlG)ghR&>=S5nCRPIYUs$@cR~ z#{y!T>vT@_*Z4e^({ASOki$QYN6y^0b{-j?v~qZyziaW(_wx4V&|frkw$%M6_rTM- z$B!?8$CI6+%uf|>veS6UF7YO_=_~$a`n)3d3uOqd8{}^HFW{SQXX&ixXI}q8 ze^A=wJO@W$ZYYW-uPch`U=l}!GIw zb=IjfjL+`G`B>jW84m1dWc zq13Ii4BOmNp4~fO`gt_DJwHy-KtdP|B$UxWV(okVJsaOY9RC=`J`bKbrpSFuRkD-K zk7AyK)G>MJx(c6A!jBRXO4T9WOI@jT#{2Jje_eLj2haIxG&r{?YV-`5cSQ$3j>iG} z4%=QnptXNn`io}mN)M==S5{E{oPNyf-LDJeGxI|Z--J(zt#kHFJTvF$#MYX!DG$$I z15Vc3^=oHx_1c*L_2lT`VlcV7ND-MvL%pd! zg?)O&H!aN?I79})M08Epkiom5} za0#4Zes%p?a7jr#c`-P3IXLx$QnxiE-}ggS@U}fSyVvdcfqQ{xc8W81+4Z<@pgX>u z77sXgJi`4Vtg(S7XlC7E(&!53)-edU>%t7*vkZCocTt#dj!&So*MWoAmAF`#aH3Dh zA!L~)Y;yt9Nh z1SXFvam(~2&ZW{U9NKLq1+V zPvAz(c(FKxpSz(SPD_|T{#U}$jijuE;fboUyFBlH-Xc?rB38tbHx#+vR4`8Tp-uP(SZhX`cL=?<+ICqX+)}-|(sAKgFj~ zO}wEBy9SiJVUh-ZIY#B+G$-ZKl?E-FqR=0))_fqqx-x2l5^uaUyGy4KIr z2Sk=zrZge^Qqj*j;ct1l&_|*=Lyx+t$67C`Tdmf2WLoE?d+YOe>cslh2PIh-4w$Rq zWv=a6b7mnhs5v2BIe$$rw1MP@t2&FiR&kq;^6od%=e;pn*xuFAaBd;)oNFl|uzj(- zc1EMf4J7F{O9}u`X=Hd+wRqef(g|JYt3^+Jo!W{`IJIy zU3{IV?DKi*yxGUlqMgV(ix0b_9}e21D$&JTXQDQoTN=zOOPjqEpi;6HlXepd09-M@}gzj_+%F5-`B@s~B8YciS$FAFgF=ffh=aPF2 zf&H+G(uNM6U5a-cPo991RfK|t()9xrcuc7%@U|REjw%f*pKFl&r6AMehOqzt`*XX@ zplD*jY=ANzpq$M>w3s-XLHz4(jw&0?HKC&$#+NZjckP|Bl=tj&hChV!pZt{LxaXCz zh=QZ;(xAlhKms9o%_^ft1+&Yn4Q)}car^EvW9_A~NpX zFMSC7p)9#-{)f4PxSea3mgz~jXl= z`@Di8@}BslPT3I9_l+KRp=5%Pq@c=L91n6 zAX{=I@z*`n*Y;@t_IPr2bgu>KO0+*wN*;^ul~Vb5|Ch8S-~Xd%{~eL~MPCGb@E1m+ zY9fhh%18II5k&j9ML8WEnKJPciL;?sHAS79{?mB-fg zRoS|@*YD|?TRSi1JWS5aW%m9T{N@r)(PR&M@4ljLE67&pMP==#e~IB$$m9B2r|h;T znFl_v5z-C#=mWzt4F@dqz}X}$TS>YsTLx2Z6$Z<+DXM(Qgdsv0t16l3pcACY`WK=B zzh?ShLK1$>@xO!x@Y7ndX`s9|@Y?QQ8+kQ^P$Vv#-uXIOKuwKIpcA`ByrH|>fZM7y zg}c~*%>cjE&Ad&VZ&V4lkC(dMukj-_vVOC0V2!SNboG=Lr6s=%gls^`YvFy%Y&6MP z2#-aEk;!i%3Jlq!$+O_V2@N8iJcIRXN`r_e&w_LMK_t%@77q-oR5?DA+3(d4(H zz_Cr^X}ET5Jo$3Pr12Hw#=6TDKMl)pG-dY|nOTo`sUNvz2x#o=qGf6}TILX$stOi) zk~Swk(n69pGzgZ8q~YX?MbivwAthWyKne#K4lY=rfrW$049E|rYni&)wM_l)TBh0P zTGp;=KFahpyh^KOworT%m8f6rQg8}}T`W2{hu@tC+Gz`8N;EFCayL|Q$~&c zcu6KfL$WVIOnVV5?4={~MaW=ZH1f{Z5Kdvs(6aA}f!5~BcuWxJvF+q?x-MJtuciUuLSHF+c6u^o852tl0!&$R)=BT zAYoLv1-#a{08lA#gDz9%1>y=TW$cwIu&2JYOq~6l?@c?UgfE_FWcEll^I@v5Ojx0X z+E8n8--%j#Tjk#RfzZb8hf8HQsDFAF zj4)+!)x47DhR`SB$^A2#lw#|Vyy#R(csCjJrS7CWube;)zq>5}!j4H^`@m78z@kPtn8eTuQB_)@)>;ol)!|tKbsTtxpFBExp*n7wR!=fmc&g zMDNx1dY<9FEpe~~8yF1s4=@M4JQUQ?V^&LwuLO&7AHI}j~ zSRSyT-Qf1LQTajoNn2T>ac8lT%536sOQEp)==(P1s1_axHn=x0*X(X~E`0vEA$Jy2?U;@2d_WwC z3r3Un2)Po`gAkPke7|&WFrZycPJmyEGgVBaWz|?Q&docBDKReyG$?wDc5?LEU9=PY z|HzK$k&^OdvembO*p6?J`UCq@L&z|n78}YcES}VDCQ;HnIvE8rZ;g~C=XC3MLbbbJ zdVY}`Up(oM0qSv<(Rb(Jm+tME_*h10)gpBZpTQiDAv;41p&LRC96B;+5#q#v z-AKO)+^}G%km2Ic*9P~{OUUJ}ha_m+JvXaqJVKt$P4Ys`U}}XP?zSby!9@&kaDj&u zgVHda+sW#ujXp&WcL8NcnIk&lc&Sg(!;Q9-%340x`pA-Nrx?)Adu%C126m7Eedf5oZ=hZr;K|EF0H=IFZ8!xhp)=QMcU1 zyyLSZcFyu?^KXO=TspL%nF`%>{29Rp5e1`b(t~^T-pDE9pHBA--7kKkNn$I)1#N*4 zPhN^4XOUP-JozomGU4k*sN|;cM3ZNr1;PRRFNC=P5#>B-Eyk1AmI>vOA@ZSKd)RsQ zL;b@-x{h(E*{@+k9u-esR8F~ebr^Rw9t~%p$G<$bVglx-Nv^pz#8J)eqN&Peg3ks$ zo(L+qK-n!x+g!j1@%7^D*=O`?rm|*GrGxWc9W-OGPmR1-M?r#Rf|4y#HhfR8A-ud1 zRWx}@mh%#s$+KQo8pT<@t2l553Kl4=Rs5Pdc@}GxEI1g9_!y95t+GhN1GMD~T0yZvh#AK?FG2~YNd`>FMS zyTE);+-dd%*g*H4aOj!I3Rz*{ZpihT5dI9ZRkU`xRr4WX#5#XtMvqXX3YR3_!#}jT z*m6mW6Tfb$vJjV2uP4;W!eNw8zPsgJmG*0l ztSA@PXI!eXO1^#mHkB;TZ?G0KeBQTjyj>Mz+isw&W?vVRB{zg9lu>j%T*8T~N`81L zN>ZrPfEc2z@!=9~Wp0cM`Ro$k&7ta0-XWe0dUAS@9RIutyu-puFU?hI=ul>rdR5qq ze!3&bFo7C>h^(Ern3d3o0hqT7lm2nB`d|*gS{uE~PgJgJI5-@NN(@4i$r$Qdcae^+ zyfw%pF-%@S^x{^$782Q^DNniq`6G<5lP&sX%6{Z$k{wA z%W93-9L3)Al}B&Us5sAEgux+yz1)702G`|^HL6Ul;qdcS)gBbMw<=$(4#DHkb9?7% zHFj{VYW29%Mb_oimEQ9N6JjEME?=%JzBUU~9L^FDJAU=g zG?ts5&(~N?X-KWm!~Kae)D~(iQ+;iExZ5nnu)58E*27)LXYkH_@*RO^v->^I{{wjT z*$p39f34>ORAU(VORBW^$7Ts4FeK-IhqexV27N%J#u3<|&%~35MU!V2vE9O!^e72) zqe8h$;nu>|1%~q4-%AvRhaMV;F%nHp!|^NY#bSm~EtjH6Vll3A<$uu1JgmsC7$M%| zqAfHU@;dlbPa0e7NUlnDR3$&Tl;%txj)y9QXrQg=xnfdCd+%S99jOuYU#A-In#tp) z@~#c-$^M%)+Osv9$t;8l#%F6?n5)&`cL6o%=ro7Ms5m6!o&d~{^ZPizbp4NLHe4;8 z=gtpn0wzYVk6qwl!cbiwYQCqJLigO4SpWf6>`JC?ftQ^e`^-Y~M^@5XGv{e3>@DHu zi(7%Lk3O)SO8FE07z#}BZOybwvTLKx>!c0avi=56igKzemV6SBSvHG807{BeyI-}M z&KPac0*Aly_~1`tiM8x{*s_+R{E1ekqLI9j`o~T7FP(0Ujr{iiGO@67x-;|@vJvca zJ#ARG{y?`v#>6gy9f+y9mp;{5uL~j#U!!`k%@+=HX7;CB7`gsh=}0xSx&ixvTh19Q z)?VoW`0s8g5!R2P4ext(q!FOLeO2uyty-{*i)@FWrk;V1q7NPvnw^e`c5&EZmRX*# zjS1z?;Oz9FCDGw#JV%3$Bx)E}=L2*lw+(_CWws~x`{iPRW`a!rg{jamq~d&Oikdez zDGJz!pR7B6@OM_aV;bNTDW5a7%=l?i!7XG_X#2L`_Ap9_)E_G;m&v-wWBco_5^eoWIr9vis9{w5cHPql7Qmghx<0l5qQs)KzUi zzJ;>j_h}zXj(N#7 zhwu0Fs#qyp=N4mc7=+mg0Xn~j#}h#%Zu(6xrf{2c;EDlVhJ#i`UXhwlZ4E}^e7jKWO!egZhXO}W+z@KP!*Q~W*mU_x9cTAGtlRkRaPn;h>9be$V z$H|dz2_uc!ggS%yajC^K-EsV^c34Ks5mc_PGe_x zmrnarG0<)%vs?Ym9*tyIAXUj+)hzikmG#b5WY7L9@BB`#qtZFY;vo>N%J)u={(#8+ub z7b;gbz3$|-Ilb;ESQ8i^TnOzQlou?*q3f((Xd(T#q#8~qnBGAJ6%*YLMV3ZOnf1*= zkw9qSYF?19FB%sMwZiih#V5PkY4m0EaMx2Nr!O}66g}KUmQq>EU~2tmJ>1#$*>i(O zCmBLDXslib#@Msx>AFJ55BcAX)q6&`d!e^{7I8TB0xrQ2oNl)2ZB^pNlVVY1KJ2{z zA8OUB9)A~a40*~s@5{PmXhvaU5g~`!U)@bD8*8IkFpP(IwHg7t4)$ZwSH@D#!%LG- zjO{+meau7EODT|RT&wYM>|$}a6;+n`DhH`b>RM-ItpC*IzrF!C@My52MA?GHr97&F zGYRTYUe209P>kXHTGtvOK=+o|kqC`G;8c1mCIZ>#=8-cL}p{BB}}u{kFK%od;2-wIML=c5cgXV^DE>iQoI-B}D zM8e+WRLkt3ce66l{b%{zdJt&dgNq@=j*TIdJ$d?HMybAl_#-+%t>8JaNF_M1!F7Ct z7zx+m{}| z5XAq^ZntgHAXc)iUEtPL2}?If>s!NX=i78rP6KipoYE4uL9Ugly!M1yT*-D^Yf5_>%=R7Dk*^KzWiZxYuA^T5l&d=^%+Db@ z0kMrUeeF_0?#ktDVy2h4k70GaMl7S`etS8m72ICb(8_nek>%g+|&P_{>FH?`L8D6cup?m_Kpt8qG0 z!nws#(r1^Y_pMk?5C{cjO@ApKT(cz}d`A)LIj?6-^kzlCVGJwaD>$mK7#W@XQ2q6H zfA{qNtDRfgRo!<=XZ!TeyS#f~&i_mPfSL3TZbsW(dNk-WfH;55cFlpD*6ieXy1U<4 z8fVb$+2=jnkhtB!pQq9_tATDQKZgSl{@VC~It0--bKXk+trNx*ptK;iZ4Er9i$iz8 z!QWS;4Mz0@Ri?ROf+&LLYJ4BdDPE{{6oK6gntA@Rz-u_ShlcPxJqu4&^h=6o8aRyx zioymiRiEpwD=w&J^I>)d?AMj0*?_n*18a5ySn|B>4qUyXD}A7PbAH$xm8@A)aW6Bp zRcmir`nn};v5EL3I}sUwaIYmO`gRHQh)G!6d^&ST1Yrhmyyma4O*_X5sYO#40=&6x zy1@imb(`QLM3@J!KN;GZ9?}h;5O{-B2N&Fpu-YQ^Pl*E)|5~3@T&6{gPHrXdJ)OGX zKy0lL)zF%Krg{~Z>?&kyJEB~9NSj!z7Z$Y>;gA!0(~*gddMV{)p(futr71SL6f zNo4ti-sQYBM~X-Hj#5&NhMbCgl!UpC76u2QI zm{}SpM!bc#orm+L+4Wl8w6n9oUQ$?d2}T70i-@rPToel~}rFv^tcAlbolXlhPC6Oy^DlUmeZdmJn9Z2b| zY{uysdBwEUFe93bs)b-f6E`O?1rCcNWyCa;Ee$>Sd&Id)C16RyKzviJ*ou)1xo5cnPm6^%$e@&SRieL&?=j$%!Ot1|4gK86Rq5 z^|PkIy`}fMxec712yX(ZxeJ>_EA*>*za+7v%N62>&jdsM&+6N4H&cY5EH{}JM<2Ov zV`NouMX_9UgGqyW+_o_aN|kYS*V{I(*^>xPLr9JRpj<>o_`kb=Bu1NFBD>9nzWeTC zo}Hfp17B|t)2bnO`)oraZbx*!>ll{g#3?Qjcb2^UZV9&wM) zOv?Yr0GxC!kdL%esgOEB>*ZMJ7^mjN+)9ebdXZ1LvP)|`ED@#tj zVrKRCuedz=&}D#Aeu zR5^ormoDcwOoQk97NZYcKKryOB?SfVflg>fuen35O|BeHjXa(BA?}PTee8>CuLn=m z0sS#2Ga5t4TI`FP$^}+-*u=q9%`1FR*RP~$LHhgl+~&Tcr(JljE^d*N?)*nYjd_H- z3;&(}E;cr}&bw?KR2K11l@4%E)KTpz!$O6KTRcpP9BF4+B1bMN0Tq>B+LJUCy-Ry4 z58tQrE|JUvppw}3Q+bW1R%~a6A-7sRAg;g9XVj@>E%tMRdrLp-Z2PjH`U_hVj_-vv z{fE9X^qJ1@OFvBcwIu!|6rOaG74|}LgNy2CxOPTXd?^>Z#iYhJhrZHzxawG2*}99U zXk$6(&a}IqBq~556BRY53%c9fUU1N?sF=z}FrXE!rmYjI$dS?})$(ikY{}Dd4s47K zqCXo6E|z-8Dr5xVYEY6Fx?hMXr)Dh7I1azV!L4|}@fAY;AWMlt#hM{|o-G!9dk7bP zRS(g6YL6k2AXM;U~9= zy2EeOluZPby1QC&pk^%81rV{I62_?gshAHreAQsZ?hoTgo~SsICo1UMAiG~|16V>_ z7cgggFCRd%riDRCy*Fc`!0c}Mxh$?EV9XGl(|5sIYTZyVyTE2A%Mmwe^?J;Y@zf9l z|2X7W{gg8aYNSTq^b`Bf?BL7#ZTFCaC zkPR(?>rS$|0iJA?J3wG+SJpq1Rh6GfH6DkvT*fW1v~BJvHKB-ZDC+6n!iMB}_=dPb z9^c5rN3Fl}<^3>nBI`L{rz7Vq0^L`w*CT`H0M!MT8INP*d+!H8|I`Yj_f!o^kR7CZ z6=tSzmde~jeDJjy>y?6ykw-Cix`ZU@{ zyBzZ@-^7N|{uGag>C$3|k-5d}IY?xgTp(t~9;sAqRE}1*qQ%m1TF}}7C`#MFSS;R# z^NW@P95CS&D|i-0AG4JZn@r+!qZ`Z=sB5WTGY-<_o;Rk!Eyjq#U|KEG63Zv+p(QwG z0r|%9T{R6|HSJwB3th*g(4Q-1{d6V9P{MOu3&ck>opVCgG*eGbXYmd6ZZ)$Or-7=Z z$u2QRhpLwGNQ4Hql(02%OWk;P*W|DTUq)M8frSfGxv)%EO{10QeA6a{89hfsPz*yP zUR3X?0W1F8Z8||5ZQTwaQPa7`N+$etRyOQ1oy?Cv=$4sI^Pj zxu0CkD3c3zEGjTqOlb`k71>*EUY9mo*)YWViY4}Iv7hB>EGz6HANBw>%gn20nR(Up zRwe(YOQD%b&2rD_HK%@n(AZ#t$n6~IiEFDp@p6GiGt_9suCeNaGm zsJ-iwQ1+xI(xJZ_q9B!%PHakUqeR9hd}?qzPtiyfMs$PQuJ_b{8B4oOf5=Z(kf`a$3xSgU6j-vd7EBOpv8AD@j39(Z zfzU9x!lS^ld;t*(2QL_e2?cbKS<1r%W&vK{k-_du(4F$&M5*PhWa7LAC!}6 z6;JVqpIfMftf?#{x9g;ML2x7?aGU)C8G(4Ptp3FZJA#KH2bPY{ssCLPvd%;IQ zf;RbaRkn{smI>Nm^K^SW>=u5bJ5mTC-Uk_~wA_Cw#D}^G9v?tLa6m=fA?iVh4_~l% zRx8Bo*6;(nXU`lWX25pD*bp+GTuO}NDNS&;He`%DcU%@9YF#^gg6YoIAWc(v?5tR( z$U$L|&R-g%fJ@jgs<0s4sR}@m+j*k=63>tr5{$)gT&FlypEw>Kf#se|9i7yfdtzCSnt!K-@h~6zpbwIbG8l)D%?(Xz{_^K~({F;RRDl zxn-!VDwsA5GgM7^ESMOr3MP(?1yz$-0ZfICjGt-&Srt@Ghbo1jyv_`juozc#C%UQ! zj!teX=eFaTA~_F!inqp)!g7VC{SyE7iX>*kWnD5Y!TM*mby_Rbi4+L|pwM)KO^ zU!l^fwu&GnyJ@lt8^-^~+?mHmSzZ4>L6(5v6ZhD<1VsT?sG>wblbYy^&L~w;tm0C| z<*O)#jM7RplEh{@PMg-Hbg`vYTiU8kZKWwyNo0$Aa6z=n;sSRZD+o%0DEYlV=XqvH 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

TwKO$Pm*HGcgznu(_=_L`;*ZyoNtMiuq@^=K-& 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ô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

  • @=o#ly4hbV+r~KCpLaQ} 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 literal 0 HcmV?d00001