From baf8f4e973856654eda23813b526fc6250a4f405 Mon Sep 17 00:00:00 2001 From: hirotake111 Date: Wed, 16 Aug 2023 04:59:38 +0900 Subject: [PATCH 1/3] Japanese tranlation added --- src/gui/pages/settings_language_page.rs | 5 +- src/translations/translations.rs | 82 ++++++++++++++++++++++++- src/translations/translations_2.rs | 23 ++++++- src/translations/types/language.rs | 7 ++- 4 files changed, 111 insertions(+), 6 deletions(-) diff --git a/src/gui/pages/settings_language_page.rs b/src/gui/pages/settings_language_page.rs index d55b72a8..495a0352 100644 --- a/src/gui/pages/settings_language_page.rs +++ b/src/gui/pages/settings_language_page.rs @@ -26,12 +26,15 @@ pub fn settings_language_page(sniffer: &Sniffer) -> Container { language_radios(language_active, &Language::ROW3, font, sniffer.style); let row_language_radio_4 = language_radios(language_active, &Language::ROW4, font, sniffer.style); + let row_language_radio_5 = + language_radios(language_active, &Language::ROW5, font, sniffer.style); let col_language_radio_all = Column::new() .spacing(10) .push(row_language_radio_1) .push(row_language_radio_2) .push(row_language_radio_3) - .push(row_language_radio_4); + .push(row_language_radio_4) + .push(row_language_radio_5); let mut content = Column::new() .align_items(Alignment::Center) diff --git a/src/translations/translations.rs b/src/translations/translations.rs index 84944b46..2fe79733 100644 --- a/src/translations/translations.rs +++ b/src/translations/translations.rs @@ -21,6 +21,7 @@ pub fn choose_adapters_translation(language: Language) -> Text<'static> { // Language::FA => "مبدل شبکه را برای بازرسی انتخاب کنید", Language::SV => "Välj nätverksadapter att inspektera", Language::FI => "Valitse tarkasteltava verkkosovitin", + Language::JP => "使用するネットワーク アダプターを選択してください", }) } @@ -43,6 +44,7 @@ pub fn application_protocol_translation(language: Language) -> &'static str { // Language::FA => "پیوندنامهٔ درخواست", Language::SV => "Applikationsprotokoll", Language::FI => "Sovellusprotokolla", + Language::JP => "アプリケーション プロトコル", } } @@ -65,6 +67,7 @@ pub fn select_filters_translation(language: Language) -> Text<'static> { // Language::FA => "صافی ها را جهت اعمال بر آمد و شد شبکه انتخاب کنید", Language::SV => "Välj filtren som ska appliceras på nätverkstrafiken", Language::FI => "Valitse suodattimet verkkoliikenteelle", + Language::JP => "トラフィックに適用するフィルターを選択してください", }) } @@ -84,6 +87,7 @@ pub fn start_translation(language: Language) -> &'static str { // Language::FA => "شروع!", Language::SV => "Starta!", Language::FI => "Aloita!", + Language::JP => "開始!", } } @@ -104,6 +108,7 @@ pub fn address_translation(language: Language) -> &'static str { // Language::FA => "نشانی", Language::SV => "Adress", Language::FI => "Osoite", + Language::JP => "アドレス", } } @@ -126,6 +131,7 @@ pub fn addresses_translation(language: Language) -> &'static str { // Language::FA => "نشانی ها", Language::SV => "Adresser", Language::FI => "Osoitteet", + Language::JP => "アドレス", } } @@ -148,6 +154,7 @@ pub fn ip_version_translation(language: Language) -> Text<'static> { // Language::FA => "نسخهٔ IP", Language::SV => "IP-version", Language::FI => "IP-versio", + Language::JP => "IP バージョン", }) } @@ -169,6 +176,7 @@ pub fn transport_protocol_translation(language: Language) -> &'static str { // Language::FA => "پیوندنامهٔ ترابرد", Language::SV => "Transportprotokoll", Language::FI => "Kuljetusprotokolla", + Language::JP => "トランスポート プロトコル", } } @@ -191,6 +199,7 @@ pub fn traffic_rate_translation(language: Language) -> Text<'static> { // Language::FA => "نرخ آمد و شد", Language::SV => "Datafrekvens", Language::FI => "Liikennemäärä", + Language::JP => "トラフィック レート", }) } @@ -234,6 +243,7 @@ pub fn settings_translation(language: Language) -> &'static str { // Language::FA => "پیکربندی", Language::SV => "Inställningar", Language::FI => "Asetukset", + Language::JP => "設定", } } @@ -255,6 +265,7 @@ pub fn yes_translation(language: Language) -> Text<'static> { Language::EL => "Ναι", // Language::FA => "بله", Language::FI => "Kyllä", + Language::JP => "はい", }) } @@ -277,6 +288,7 @@ pub fn ask_quit_translation(language: Language) -> Text<'static> { // Language::FA => "آیا مطمئن هستید می خواهید از این تحلیل خارج شوید؟", Language::SV => "Är du säker på att du vill avsluta analysen?", Language::FI => "Haluatko varmasti lopettaa analyysin?", + Language::JP => "分析を終了しますか?", }) } @@ -299,6 +311,7 @@ pub fn quit_analysis_translation(language: Language) -> String { // Language::FA => "خروج از تحلیل".to_string(), Language::SV => "Avsluta analys".to_string(), Language::FI => "Lopeta analyysi".to_string(), + Language::JP => "分析の終了".to_string(), } } @@ -321,6 +334,7 @@ pub fn ask_clear_all_translation(language: Language) -> Text<'static> { // Language::FA => "آیا مطمئن هستید می خواهید اعلان ها را پاک کنید؟", Language::SV => "Är du säker på att du vill radera notifikationerna?", Language::FI => "Haluatko varmasti tyhjentää ilmoitukset?", + Language::JP => "すべての通知を削除します。よろしいですか?", }) } @@ -343,6 +357,7 @@ pub fn clear_all_translation(language: Language) -> String { // Language::FA => "پاک کردن همه".to_string(), Language::SV => "Radera alla".to_string(), Language::FI => "Tyhjennä kaikki".to_string(), + Language::JP => "すべて削除".to_string(), } } @@ -365,6 +380,7 @@ pub fn hide_translation(language: Language) -> &'static str { // Language::FA => "پنهان کردن", Language::SV => "Göm", Language::FI => "Piilota", + Language::JP => "隠す", } } @@ -387,6 +403,7 @@ pub fn network_adapter_translation(language: Language) -> &'static str { // Language::FA => "مبدل شبکه", Language::SV => "Nätverksadapter", Language::FI => "Verkkosovitin", + Language::JP => "ネットワーク アダプター", } } @@ -443,6 +460,9 @@ pub fn no_addresses_translation(language: Language, adapter: &str) -> Text<'stat Language::FI => format!("Liikennettä ei voitu havainnoida, koska valitulla sovittimella ei ole aktiivista osoitetta...\n\n\ Verkkosovitin: {adapter}\n\n\ Jos olet varma että sinulla on internet-yhteys, kokeile valita toinen verkkosovitin."), + Language::JP => format!("選択されたアダプターが有効なアドレスを持っていないため、トラフィックを観測できていません...\n\n\ + ネットワーク アダプター: {adapter}\n\n\ + インターネットに接続しているか確認し、別のネットワーク アダプターを試してください。"), }) } @@ -499,6 +519,9 @@ pub fn waiting_translation(language: Language, adapter: &str) -> Text<'static> { Language::FI => format!("Ei vielä havaittua liikennettä. Odotetaan verkkopaketteja...\n\n\ Verkkosovitin: {adapter}\n\n\ Onhan sinulla varmasti internet-yhteys ja olet valinnut oikean verkkosovittimen."), + Language::JP => format!("トラフィックがまだ観測できていません。ネットワーク パケットを待っています...\n\n\ + ネットワーク アダプター: {adapter}\n\n\ + インターネットに接続していて、正しいアダプターを選択していますか?"), }) } @@ -555,6 +578,9 @@ pub fn some_observed_translation(language: Language, observed: u128) -> Text<'st Language::FI => format!("Siepattuja paketteja yhteensä: {observed}\n\n\ Suodatettuja paketteja: 0\n\n\ Joitakin paketteja on siepattu, mutta yhtäkään ei ole valittu määrittämiesi suodattimien mukaan..."), + Language::JP => format!("取得したパケット数: {observed}\n\n\ + フィルター後のパケット数: 0\n\n\ + パケットは取得できていますが、設定されたフィルタリングにより表示されません..."), }) } @@ -577,6 +603,7 @@ pub fn filtered_packets_translation(language: Language) -> &'static str { // Language::FA => "بسته های صاف شده", Language::SV => "Filtrerade paket", Language::FI => "Suodatettuja paketteja", + Language::JP => "フィルタリングされたパケット", } } @@ -598,6 +625,7 @@ pub fn filtered_bytes_translation(language: Language) -> &'static str { // Language::FA => "بایت های صاف شده", Language::SV => "Filtrerade bytes", Language::FI => "Suodatettuja tavuja", + Language::JP => "フィルタリングされたバイト数", } } @@ -634,6 +662,7 @@ pub fn of_total_translation(language: Language, percentage: &str) -> String { // Language::FA => format!("({percentage} از مجموع)"), Language::SV => format!("({percentage} av totalen)"), Language::FI => format!("({percentage} kokonaismäärästä)"), + Language::JP => format!("(トータル: {percentage} )"), } } @@ -765,6 +794,10 @@ pub fn error_translation(language: Language, error: &str) -> Text<'static> { "Tapahtui virhe! \n\n\ {error}" ), + Language::JP => format!( + "エラーが発生しました! \n\n\ + {error}" + ), }) } @@ -786,6 +819,7 @@ pub fn both_translation(language: Language) -> &'static str { // Language::FA => "هر دو", Language::SV => "båda", Language::FI => "molemmat", + Language::JP => "両方", } } @@ -821,6 +855,7 @@ pub fn all_translation(language: Language) -> &'static str { // Language::FA => "همه", Language::SV => "Alla", Language::FI => "Kaikki", + Language::JP => "すべて", } } @@ -842,6 +877,7 @@ pub fn packets_translation(language: Language) -> &'static str { Language::EL => "πακέτα", // Language::FA => "بسته ها", Language::FI => "paketit", + Language::JP => "パケット数", } } @@ -864,6 +900,7 @@ pub fn packets_chart_translation(language: Language) -> &'static str { // Language::FA => "بسته در ثانیه", Language::SV => "paket per sekund", Language::FI => "pakettia sekunnissa", + Language::JP => "1 秒あたりのパケット数", } } @@ -883,6 +920,7 @@ pub fn bytes_translation(language: Language) -> &'static str { Language::RU => "байтов", // Language::FA => "بایت ها", Language::FI => "tavua", + Language::JP => "バイト", } } @@ -904,6 +942,7 @@ pub fn bytes_chart_translation(language: Language) -> &'static str { // Language::FA => "بایت در ثانیه", Language::SV => "bytes per sekund", Language::FI => "tavua sekunnissa", + Language::JP => "1 秒あたりのバイト量", } } @@ -926,6 +965,7 @@ pub fn recent_report_translation(language: Language) -> &'static str { // Language::FA => "آخرین", Language::SV => "senaste", Language::FI => "viimeisin", + Language::JP => "最新", } } @@ -948,6 +988,7 @@ pub fn packets_report_translation(language: Language) -> &'static str { // Language::FA => "بیشترین بسته ها", Language::SV => "flest paket", Language::FI => "eniten paketteja", + Language::JP => "パケット数の多い順", } } @@ -970,6 +1011,7 @@ pub fn bytes_report_translation(language: Language) -> &'static str { // Language::FA => "بیشترین بایت ها", Language::SV => "flest bytes", Language::FI => "eniten tavuja", + Language::JP => "バイト量の多い順", } } @@ -1012,6 +1054,7 @@ pub fn notifications_title_translation(language: Language) -> Text<'static> { // Language::FA => "اعلان های خود را سفارشی کنید", Language::SV => "Anpassa dina notifikationer", Language::FI => "Muokkaa ilmoituksiasi", + Language::JP => "通知のカスタマイズ", }) } @@ -1034,6 +1077,7 @@ pub fn appearance_title_translation(language: Language) -> Text<'static> { // Language::FA => "زمینه دلخواه خود را انتخاب کنید", Language::SV => "Välj ditt favorittema", Language::FI => "Valitse suosikkiteemasi", + Language::JP => "テーマを選択してください", }) } @@ -1056,6 +1100,7 @@ pub fn languages_title_translation(language: Language) -> Text<'static> { // Language::FA => "زبان خود را انتخاب کنید", Language::SV => "Välj ditt språk", Language::FI => "Valitse kielesi", + Language::JP => "表示言語を選択してください", }) } @@ -1078,6 +1123,7 @@ pub fn active_filters_translation(language: Language) -> &'static str { // Language::FA => "صافی های فعال", Language::SV => "Aktiva filter", Language::FI => "Aktiiviset suodattimet", + Language::JP => "適用されているフィルター", } } @@ -1100,6 +1146,7 @@ pub fn none_translation(language: Language) -> String { // Language::FA => "هیچ کدام", Language::SV => "inga", Language::FI => "ei mitään", + Language::JP => "なし", } .to_string() } @@ -1123,6 +1170,7 @@ pub fn yeti_night_translation(language: Language) -> &'static str { // Language::FA => "زمینه تاریک اصلی Sniffnet", Language::SV => "Sniffnets ursprungliga mörka tema", Language::FI => "Sniffnetin alkuperäinen tumma teema", + Language::JP => "Sniffnet のオリジナル テーマ", } } @@ -1144,6 +1192,7 @@ pub fn yeti_day_translation(language: Language) -> &'static str { // Language::FA => "زمینه روشن اصلی Sniffnet", Language::SV => "Sniffnets ursprungliga ljusa tema", Language::FI => "Sniffnetin alkuperäinen vaalea teema", + Language::JP => "Sniffnet のオリジナル ライト テーマ", } } @@ -1166,6 +1215,7 @@ pub fn deep_sea_translation(language: Language) -> &'static str { // Language::FA => "شیرجه رفتن در آمد و شد شبکه", Language::SV => "För att dyka ned i nätverkstrafiken", Language::FI => "Sukeltaaksesi verkkoliikenteeseen", + Language::JP => "ネットワーク トラフィックにダイブする", } } @@ -1188,6 +1238,7 @@ pub fn mon_amour_translation(language: Language) -> &'static str { // Language::FA => "زمینه دلپذیر ساخته شده برای رویا پردازان", Language::SV => "Ljuvligt tema gjort för drömmare", Language::FI => "Ihana teema unelmoijille", + Language::JP => "ドリーマーのためのテーマ", } } @@ -1210,6 +1261,7 @@ pub fn incoming_translation(language: Language) -> &'static str { // Language::FA => "ورودی", Language::SV => "Inkommande", Language::FI => "Saapuva", + Language::JP => "受信", } } @@ -1232,6 +1284,7 @@ pub fn outgoing_translation(language: Language) -> &'static str { // Language::FA => "خروجی", Language::SV => "Utgående", Language::FI => "Lähtevä", + Language::JP => "送信", } } @@ -1253,6 +1306,7 @@ pub fn notifications_translation(language: Language) -> &'static str { // Language::FA => "اعلان ها", Language::SV => "Notifikationer", Language::FI => "Ilmoitukset", + Language::JP => "通知", } } @@ -1269,6 +1323,7 @@ pub fn style_translation(language: Language) -> &'static str { Language::EL => "Στυλ", // Language::FA => "شیوه", Language::FI => "Tyyli", + Language::JP => "スタイル", } } @@ -1291,6 +1346,7 @@ pub fn language_translation(language: Language) -> &'static str { // Language::FA => "زبان", Language::SV => "Språk", Language::FI => "Kieli", + Language::JP => "表示言語", } } @@ -1313,6 +1369,7 @@ pub fn overview_translation(language: Language) -> &'static str { // Language::FA => "نمای کلی", Language::SV => "Översikt", Language::FI => "Yleiskatsaus", + Language::JP => "概要", } } @@ -1335,6 +1392,7 @@ pub fn packets_threshold_translation(language: Language) -> &'static str { // Language::FA => "به من اطلاع بده وقتی آستانه یک بسته فراتر رفت", Language::SV => "Notifiera mig när en paketgräns har överstigits", Language::FI => "Ilmoita minulle, kun pakettiraja on ylittynyt", + Language::JP => "パケット数の閾値を超過した場合に通知する", } } @@ -1357,6 +1415,7 @@ pub fn bytes_threshold_translation(language: Language) -> &'static str { // Language::FA => "به من اطلاع بده وقتی آستانه یک بایت فراتر رفت", Language::SV => "Notifiera mig när en gräns för bytes har överstigits", Language::FI => "Ilmoita minulle, kun tavuraja on ylittynyt", + Language::JP => "バイト量の閾値を調査した場合に通知する", } } @@ -1369,7 +1428,7 @@ pub fn per_second_translation(language: Language) -> &'static str { Language::PL => "(na sekundę)", Language::DE => "(pro Sekunde)", Language::UK => "(на секунду)", - Language::ZH => "(每秒) ", + Language::ZH | Language::JP => "(每秒) ", Language::RO => "(pe secundă)", Language::KO => "(초당)", Language::TR => "(her saniye)", @@ -1400,6 +1459,7 @@ pub fn specify_multiples_translation(language: Language) -> &'static str { // Language::FA => "؛ شما همچنین می توانید 'M'، 'K' و 'G' را تعیین کنید", Language::SV => "; du kan också ange 'K', 'M' och 'G'", Language::FI => "; voit myös määrittää 'K', 'M' tai 'G'", + Language::JP => "; 'K', 'M', 'G' を選択できます", } } @@ -1424,6 +1484,7 @@ pub fn favorite_notification_translation(language: Language) -> &'static str { // Language::FA => "به من اطلاع بده وقتی داده جدید از پسندیده های من مبادله شد", Language::SV => "Notifiera mig när ny data utbyts av mina favoriter", Language::FI => "Ilmoita minulle, kun suosikkini vaihtavat uusia tietoja", + Language::JP => "お気に入りに指定したホストに関してデータ送受信があった場合に通知する", } } @@ -1446,6 +1507,7 @@ pub fn threshold_translation(language: Language) -> String { // Language::FA => "آستانه".to_string(), Language::SV => "Gräns".to_string(), Language::FI => "Raja".to_string(), + Language::JP => "閾値".to_string(), } } @@ -1456,7 +1518,7 @@ pub fn volume_translation(language: Language) -> &'static str { Language::PL => "Głośność", Language::DE => "Lautstärke", Language::UK => "Гучність", - Language::ZH => "通知音量", + Language::ZH | Language::JP => "通知音量", Language::RO => "Volum", Language::KO => "볼륨", Language::TR => "Ses", @@ -1477,7 +1539,7 @@ pub fn sound_translation(language: Language) -> &'static str { Language::PL => "Dźwięk", Language::DE => "Ton", Language::UK | Language::RU => "Звук", - Language::ZH => "通知音", + Language::ZH | Language::JP => "通知音", Language::RO => "Sunet", Language::KO => "사운드", Language::TR => "Ses", @@ -1508,6 +1570,7 @@ pub fn open_report_translation(language: Language) -> &'static str { // Language::FA => "گزارش کامل را باز کن", Language::SV => "Öppna fullständig rapport", Language::FI => "Avaa koko raportti", + Language::JP => "詳細なレポートを開く", } } @@ -1530,6 +1593,7 @@ pub fn bytes_exceeded_translation(language: Language) -> &'static str { // Language::FA => "آستانه بایت فراتر رفت!", Language::SV => "Gräns för bytes överskriden!", Language::FI => "Tavuraja ylitetty!", + Language::JP => "バイト量の閾値を調査しました!", } } @@ -1552,6 +1616,7 @@ pub fn bytes_exceeded_value_translation(language: Language, value: &str) -> Stri // Language::FA => format!("{value} بایت مبادله شده است"), Language::SV => format!("{value} har utbytts"), Language::FI => format!("{value} on vaihdettu"), + Language::JP => format!("{value} の送受信が発生しました"), } } @@ -1574,6 +1639,7 @@ pub fn packets_exceeded_translation(language: Language) -> &'static str { // Language::FA => "آستانه بسته فراتر رفت!", Language::SV => "Paketgräns överskriden!", Language::FI => "Pakettiraja ylitetty!", + Language::JP => "パケット数のしきい値を超過しました!", } } @@ -1617,6 +1683,7 @@ pub fn packets_exceeded_value_translation(language: Language, value: u32) -> Str 1 => "1 paketti vaihdettu".to_owned(), npackets => format!("{npackets} pakettia vaihdettu"), }, + Language::JP => format!("{value} パケットの送受信が発生しました"), } } @@ -1639,6 +1706,7 @@ pub fn favorite_transmitted_translation(language: Language) -> &'static str { // Language::FA => "مبادله داده جدید از پسندیده ها!", Language::SV => "Ny data utbytt av favoriter!", Language::FI => "Uusia tietoja vaihdettu suosikeista!", + Language::JP => "お気に入りのホストで新しいデータ送受信が発生しました!", } } @@ -1695,6 +1763,9 @@ pub fn no_notifications_set_translation(language: Language) -> Text<'static> { Language::FI => "Et ole vielä ottanut ilmoituksia käyttöön!\n\n\ Kun olet ottanut ne käyttöön, tällä sivulla näkyy loki ilmoituksistasi\n\n\ Voit ottaa ilmoitukset käyttöön asetuksista:", + Language::JP => "まだ通知を有効にしていません!\n\n\ + 有効化後、このページ上で通知のログが確認できます。\n\n\ + 通知設定は設定画面から変更可能です:", }) } @@ -1768,6 +1839,10 @@ pub fn no_notifications_received_translation(language: Language) -> Text<'static "Ei mitään nähtävää tällä hetkellä...\n\n\ Kun saat ilmoituksen, se näkyy tässä" } + Language::JP => { + "通知はまだ何もありません...\n\n\ + 通知があると、ここに表示されます" + } }) } @@ -1790,5 +1865,6 @@ pub fn only_last_30_translation(language: Language) -> &'static str { // Language::FA => "تنها ۳۰ اعلان آخر نمایش داده شده اند", Language::SV => "Endast de senaste 30 notifikationerna visas", Language::FI => "Vain viimeiset 30 ilmoitusta näytetään", + Language::JP => "最新の通知 30 件のみ表示されます", } } diff --git a/src/translations/translations_2.rs b/src/translations/translations_2.rs index a1ad3ccf..d57406ca 100644 --- a/src/translations/translations_2.rs +++ b/src/translations/translations_2.rs @@ -20,6 +20,7 @@ pub fn new_version_available_translation(language: Language) -> &'static str { Language::RO => "O versiune nouă este disponibilă!", Language::PL => "Nowsza wersja jest dostępna!", Language::FR => "Une nouvelle version est disponible!", + Language::JP => "新しいバージョンが利用可能になりました!", _ => "A newer version is available!", } } @@ -62,6 +63,7 @@ pub fn connection_details_translation(language: Language) -> &'static str { Language::RO => "Detalii conexiune", Language::PL => "Szczegóły połączenia", Language::FR => "Détails de la connexion", + Language::JP => "接続の詳細", _ => "Connection details", } } @@ -83,6 +85,7 @@ pub fn dropped_packets_translation(language: Language) -> &'static str { Language::RO => "Pachete pierdute", Language::PL => "Utracone pakiety", Language::FR => "Packets perdus", + Language::JP => "ドロップしたパケット", _ => "Dropped packets", } } @@ -104,6 +107,7 @@ pub fn data_representation_translation(language: Language) -> &'static str { Language::RO => "Reprezentarea datelor", Language::PL => "Reprezentacja danych", Language::FR => "Représentation de données", + Language::JP => "データ表示", _ => "Data representation", } } @@ -125,6 +129,7 @@ pub fn host_translation(language: Language) -> &'static str { Language::RO => "Host rețea", Language::PL => "Host sieciowy", Language::FR => "Host réseaux", + Language::JP => "ネットワーク ホスト", _ => "Network host", } } @@ -146,6 +151,7 @@ pub fn only_top_30_hosts_translation(language: Language) -> &'static str { Language::RO => "Doar primele 30 de host-uri sunt afișate aici", Language::PL => "Tylko 30 pierwszych hostów jest wyświetlanych", Language::FR => "Seuls les 30 premiers hôtes sont affichés ici", + Language::JP => "上位 30 件のホストのみが表示されます", _ => "Only the top 30 hosts are displayed here", } } @@ -210,6 +216,7 @@ pub fn unknown_translation(language: Language) -> String { Language::RO => "Locație necunoscută", Language::PL => "Nieznana lokalizacja", Language::FR => "Localisation inconnue", + Language::JP => "不明なロケーション", _ => "Unknown location", } .to_string() @@ -232,6 +239,7 @@ pub fn your_network_adapter_translation(language: Language) -> String { Language::RO => "Adaptorul dvs. de rețea", Language::PL => "Twój adapter sieciowy", Language::FR => "Votre carte réseau", + Language::JP => "自身のネットワーク アダプター", _ => "Your network adapter", } .to_string() @@ -254,6 +262,7 @@ pub fn socket_address_translation(language: Language) -> &'static str { Language::RO => "Adresa socket-ului", Language::PL => "Adres gniazda", Language::FR => "Adresse du socket", + Language::JP => "ソケット アドレス", _ => "Socket address", } } @@ -275,6 +284,7 @@ pub fn mac_address_translation(language: Language) -> &'static str { Language::RO => "Adresa MAC", Language::PL => "Adres MAC", Language::FR => "Adresse MAC", + Language::JP => "MAC アドレス", _ => "MAC address", } } @@ -296,6 +306,7 @@ pub fn source_translation(language: Language) -> &'static str { Language::RO => "Sursă", Language::PL => "Źródło", Language::FR => "Source", + Language::JP => "送信元", _ => "Source", } } @@ -316,6 +327,7 @@ pub fn destination_translation(language: Language) -> &'static str { Language::RO => "Destinație", Language::PL => "Miejsce docelowe", // Depending on context these two are also valid: "Przeznaczenie" / "Cel" Language::FR => "Destination", + Language::JP => "送信先", _ => "Destination", } } @@ -332,7 +344,7 @@ pub fn fqdn_translation(language: Language) -> &'static str { // Language::FA => "نام دامنه جامع الشرایط", Language::ES => "Nombre de dominio completo", Language::KO => "절대 도메인 네임", - Language::ZH => "FQDN", + Language::ZH | Language::JP => "FQDN", Language::UK => "Повністю визначене доменне ім'я", Language::RO => "Nume de domeniu complet calificat", Language::PL => "Pełna nazwa domeny", @@ -358,6 +370,7 @@ pub fn administrative_entity_translation(language: Language) -> &'static str { Language::RO => "Numele sistemului autonom", Language::PL => "Nazwa autonomicznego systemu", Language::FR => "Nom du système autonome", + Language::JP => "AS 名", _ => "Autonomous System name", } } @@ -379,6 +392,7 @@ pub fn transmitted_data_translation(language: Language) -> &'static str { Language::RO => "Date transmise", Language::PL => "Przesłane dane", Language::FR => "Données transmises", + Language::JP => "転送データ", _ => "Transmitted data", } } @@ -400,6 +414,7 @@ pub fn country_translation(language: Language) -> &'static str { Language::RO => "Țară", Language::PL => "Kraj", Language::FR => "Pays", + Language::JP => "国", _ => "Country", } } @@ -421,6 +436,7 @@ pub fn domain_name_translation(language: Language) -> &'static str { Language::RO => "Nume domeniu", Language::PL => "Nazwa domeny", Language::FR => "Nom de domaine", + Language::JP => "ドメイン名", _ => "Domain name", } } @@ -442,6 +458,7 @@ pub fn only_show_favorites_translation(language: Language) -> &'static str { Language::RO => "Arată doar favorite", Language::PL => "Pokaż tylko ulubione", Language::FR => "Afficher uniquement les favoris", + Language::JP => "お気に入りのみを表示する", _ => "Only show favorites", } } @@ -463,6 +480,7 @@ pub fn search_filters_translation(language: Language) -> &'static str { Language::RO => "Filtre de căutare", Language::PL => "Filtry wyszukiwania", Language::FR => "Filtres de recherche", + Language::JP => "検索フィルター", _ => "Search filters", } } @@ -484,6 +502,7 @@ pub fn no_search_results_translation(language: Language) -> &'static str { Language::RO => "Niciun rezultat disponibil conform filtrelor de căutare specificate", Language::PL => "Brak wyników zgodnych z określonymi filtrami wyszukiwania", Language::FR => "Aucun résultat disponible selon les filtres de recherche spécifiés", + Language::JP => "指定されたフィルター条件で表示できる結果はありません", _ => "No result available according to the specified search filters", } } @@ -510,6 +529,7 @@ pub fn showing_results_translation( Language::RO => format!("Se afișează {start}-{end} din {total} rezultate"), Language::PL => format!("Wyświetlanie {start}-{end} z {total} wyników"), Language::FR => format!("Affichage de {start}-{end} de {total} résultats totaux"), + Language::JP => format!("{start} から {end} までの結果の合計: {total}"), _ => format!("Showing {start}-{end} of {total} total results"), } } @@ -532,6 +552,7 @@ pub fn color_gradients_translation(language: Language) -> &'static str { Language::RO => "Aplicați gradient de culoare", Language::PL => "Zastosuj gradient kolorów", Language::FR => "Appliquer des gradients de couleur", + Language::JP => "グラデーションを適用する", _ => "Apply color gradients", } } diff --git a/src/translations/types/language.rs b/src/translations/types/language.rs index 72f4e369..7337b203 100644 --- a/src/translations/types/language.rs +++ b/src/translations/types/language.rs @@ -4,7 +4,7 @@ use iced::{Length, Renderer}; use serde::{Deserialize, Serialize}; use crate::countries::flags_pictures::{ - CN, DE, ES, FI, FLAGS_WIDTH_SMALL, FR, GB, GR, IT, KR, PL, PT, RO, RU, SE, TR, UA, + CN, DE, ES, FI, FLAGS_WIDTH_SMALL, FR, GB, GR, IT, JP, KR, PL, PT, RO, RU, SE, TR, UA, }; /// This enum defines the available languages. @@ -44,6 +44,8 @@ pub enum Language { SV, /// Finnish FI, + /// Japanese + JP, } impl Default for Language { @@ -57,6 +59,7 @@ impl Language { pub(crate) const ROW2: [Language; 4] = [Language::FI, Language::FR, Language::IT, Language::KO]; pub(crate) const ROW3: [Language; 4] = [Language::PL, Language::PT, Language::RO, Language::RU]; pub(crate) const ROW4: [Language; 4] = [Language::SV, Language::TR, Language::UK, Language::ZH]; + pub(crate) const ROW5: [Language; 1] = [Language::JP]; pub fn get_radio_label(&self) -> &str { match self { @@ -77,6 +80,7 @@ impl Language { // Language::FA => "فارسی", Language::SV => "Svenska", Language::FI => "Suomi", + Language::JP => "日本語", } } @@ -99,6 +103,7 @@ impl Language { // Language::FA => IR, Language::SV => SE, Language::FI => FI, + Language::JP => JP, }))) .width(Length::Fixed(FLAGS_WIDTH_SMALL)) } From 71229c8b869327312a8fb44606debd4af8ca081f Mon Sep 17 00:00:00 2001 From: Giuliano Bellini s294739 Date: Fri, 18 Aug 2023 12:21:11 +0200 Subject: [PATCH 2/3] fixes to Japanese language --- resources/fonts/full/subset_characters.txt | 138 ++++++++++++++++++ .../subset/sarasa-mono-sc-bold.subset.ttf | Bin 127708 -> 175668 bytes .../subset/sarasa-mono-sc-regular.subset.ttf | Bin 129016 -> 177672 bytes src/gui/pages/settings_language_page.rs | 4 +- src/translations/translations.rs | 131 +++++++++-------- src/translations/translations_2.rs | 44 +++--- src/translations/types/language.rs | 16 +- 7 files changed, 236 insertions(+), 97 deletions(-) diff --git a/resources/fonts/full/subset_characters.txt b/resources/fonts/full/subset_characters.txt index f3089365..1ecb3014 100644 --- a/resources/fonts/full/subset_characters.txt +++ b/resources/fonts/full/subset_characters.txt @@ -292,7 +292,90 @@ z ⏎ ✔ ❤ +、 +。 +あ +い +お +か +が +き +く +こ +さ +し +す +せ +た +だ +っ +て +で +と +な +に +の +は +べ +ま +み +め +も +よ +ら +り +る +れ +ろ +を +ん +ア +ィ +イ +エ +オ +カ +ク +グ +ケ +コ +シ +ジ +ス +ズ +ソ +タ +ダ +ッ +テ +デ +ト +ド +ナ +ネ +バ +パ +フ +ブ +プ +ペ +ホ +ポ +マ +メ +ョ +ラ +リ +ル +レ +ロ +ワ +ン +ー 一 +上 +不 +両 丢 个 中 @@ -312,28 +395,39 @@ z 会 传 但 +位 体 何 你 使 侧 信 +値 值 +元 +先 入 其 内 出 击 分 +別 +利 到 +削 前 功 动 +効 包 +化 协 占 即 发 +取 +受 变 可 右 @@ -353,7 +447,10 @@ z 地 址 域 +場 士 +変 +多 夹 套 如 @@ -377,6 +474,8 @@ z 开 当 待 +後 +得 志 总 息 @@ -387,8 +486,10 @@ z 我 所 打 +択 报 择 +持 指 按 换 @@ -402,30 +503,37 @@ z 整 文 新 +方 无 日 时 +明 星 是 显 暂 暗 +更 最 有 未 本 机 条 +析 果 查 +査 标 梦 检 +検 概 欢 正 此 每 +気 没 洋 活 @@ -435,6 +543,7 @@ z 海 清 渐 +測 源 滤 潜 @@ -443,12 +552,15 @@ z 率 生 用 +画 +発 的 皆 监 目 知 确 +確 示 秒 空 @@ -460,18 +572,31 @@ z 类 索 累 +細 +終 +結 +続 络 网 置 联 +能 自 色 节 藏 表 要 +観 览 言 +計 +設 +試 +詳 +認 +語 +調 计 议 设 @@ -482,6 +607,8 @@ z 请 贴 超 +身 +転 输 达 过 @@ -490,21 +617,30 @@ z 这 连 退 +送 适 选 通 速 +過 +適 +選 配 里 量 错 +開 +関 +閾 间 阈 除 隐 +隠 需 面 音 +順 页 题 黑 @@ -707,4 +843,6 @@ z 환 활 효 +! , +? diff --git a/resources/fonts/subset/sarasa-mono-sc-bold.subset.ttf b/resources/fonts/subset/sarasa-mono-sc-bold.subset.ttf index 212d39be156e1200a2fbc9d20876674ecacfc445..16d844f99f35e3a98bffc0366c789605ad2e5b39 100644 GIT binary patch delta 57554 zcmbrm2Yegnkq3%z7rg_!z@qm;^j=s1_TD>1Qlcn|MWWawsu!ra%5o7b_ntUTaY+uB z#5J*#vmM)Uiyfyq?Hnh$Bu?|?66Z|t%`PZePPx4Idn5s3Q5MtZKl9DEZ@@>+@ zS=rtFq3HLHyeMX2+u-f2ty2q=%MZTW`yd=|Ww8{0ot@mXyuQxD;q%MzI)8T8!5P(E zb1f_ug3nZaa&CGuw>|dT=dWO4-A}?Bl5_Bk=774Ng-yN<$Bwy$)dTr=|NBvR{lDRa zKi{=9HOb-bX0fo$YjFIVg~e4P$dgn9fvplad~Oa>iX-f zC=k#?zrGL7ul=&@E*AE%oId})1?lR6dtQHF9}Bx*0|fq0UW|TJ_%(VL6<)_Tp}dcC z6^>YyH(z@z(&k_13~S&3InZP1G%&>?5>{0uI))rux901(H3r0ruCJi4;VJq>3dK+q znRXZd^E&*w4=eKbaPP=xc-H&`@4Ec&crWLl;ztU<<4>VNzwjX}k0j2#TjDHqN?t;F zt?Y*U=VbThJLQEuQv5mpf#Qbz8Rcx@ePu5yG?ITp`AW4lzgazze@gvo{w(Frf04Q@ zU#a=uLP{G#g;`wy70&B#MEN^<_4!6)bN;NcP^dMju)?tA4=CSiE6<;@-JUnw-T7ww zck*V3wovYPf{n2~`Tr^VQ{gwBS8$AdApc~*RQN$)49lm&-$3`Ci%{BoS$}0^*4Nkn z9TfN&UM;t=J_ELc|5IWre^o48cszC=mfxJ* zbo1SZ(GLpw6tMm0bO7a@6`A~0#Z=+>3LaK?wW=BAsqDRl$Fk>9p}S@fE8Jh_M){ZP z_vafMhVpkbe6mp6h@*UC(<=qCc@E`|wixrbw{+xx*)o)`ZhavyXuB$(Z##eUOUIBm z-`^g|d(7wax{gS`qvN^!6SjE1x$|KDna*eOr@ChIzwX+UZ|uG||BLRw=Kr(jF%Z_9 z`IWwV3d;U}!wSz1zQ-;UMi;Pxb@S&?;pHv$SV1xQJ(U0Twp00~sq6CVQ~7*;`dOc2yfUsy6X6p#-P^s_*j)I{(ogWh%X@A?IX26;eh>a6 zJ^)tDV~JUnzyQ#mfjbWTPjO<37?4YGc`-#YMFAr!k_-IU8D^sJS_X01yddVLnZoWa z-i5Yp+&Wcj4;+78DCeA2QEN8SoMSMgu~@dX;2N#)x``r5UPuI@I|sIj}p%)(ff^?yfGtiP~iEIo^r zikgs$1XgT8l!#{$6-_4MF1wAZBGu0X+I+sYfWOrbf3A4kBKyD7K1aoL1?r|z<;~VMSoK&nWDcmgiKf^ z0&8%CTxEzBbLoF2{g^fypoGdI+EAoGYAlMqrySmyz5a0B0+XJ(a7aEYhUJzuykY4 zhdE+~lf%uYCWsxP+VM!Bot(KnL^zdpk5b*(QG0BMwKjv{Xcgyjl2WS#m+3_*wu)Gl zDA{9tq0E*O-G{^iJlN}Uj(%YPu#$INbSw4^mkk3_9CM*`sV!$Ov zv+oWv(&3nJiWkJ)h|S?4oXyku%u0)1&D(CRYbr}^ZIE&}2&oOBOoxVN11;ef8MiIj2ahUQ4Ui9d%DEFf zo6C*8?%p!2t5Rm0>#5=`!L-gMkt$#C*Xt_~hGSP_91Nf7!+lc`6x;6UJlZ<5-&Su5 z+NyP#fxg<{)*xFSwL1Em164B_l!(^ou&0&rI58vhc%7o+otg@rOfOexF+Ll|dPO#y zK$0Yz#hN2RS&lpElt^OR8b?l;cs%R`&K6};v2v;OtJwy2R}1$E zhm?#%RtD?G>70!Hhzcn*jU7!|os!TS#^+~Td%Xdwb#TBIH9DiFj-D2++9$?dS30Fc zsXHT`HEs{O)_2OpGjvF~uXeC}m9 z7b0=-ZGBi5&Z>yB@|<#M*56`)Z@X^&S$qc`1+CIqoK9mGluAe1WD4S3iUuLHzJOgi znP1f6MJ2l2XgIPk+jm)l=evA-=6s()+rIL2H_4?{r;;S+LUPyUkUC6A43ey2^Q<=~ zbPiGKm}=9vj-$Gk>gsZ-@EBhXQLZJpDTdMzzB7ubR$kWa;%lVGL`q&{SWj4Gqo5{y zC#cCW5#=Ev=;>SQU%}7gdY1iyo=WkVp%mXp(m0(@(H=GrLmV7;X5Ia{+*Ze!rfdGp zP~X9N4977p57(MoOl5md9tuS(wdI?Wi;kWqe{|Pi+0NYyBRYGN31l_0{w4eY+yz-7 z3tzX9^+8-H3g1TyDJI2a^Z}SSvQugR3K#@El%kbY!V9q|e=$&g z)13_%#>H+xICyPr_mmC=uAM;+OY7nB`Hq}NNQqrN$<$aW9O||LB;;fTn-L^A4 zxmu~hP`x}DkYEZ(>eJ?gUK_G()vgc~GI5IB1?dnwOh@?gB}{hrMg9N_Rc+{;w~h1D+-9_I-9 zJM4`nbQNB1NGrr-xxxibbX2I|9*-Z%?Focj3&)Pe2SD>j*f@*Bs(_&Ub==PI=7Fkq zQ;EO-lRd~vIhuV2_0s=2|C(R)XYX{R#BY4dNBsJxfnO09HA{>JL66KwJ}WIHIMv#1 z7i1s-84P*?+oL9_)8|)RLq)=6IS_)gf|0?`I2@1xA7r5RgA9bi9G8|slM%z{L}WMj z7`l`(NNbiZ!{xM8lwwu6!nq-p6B|-lJX(^c8YK(Rn%0{~j2C;|1i44R8gK0J;W!}@D8tc3*j`U59`l_v| z#Mo+esOwyAwLaKrweQ%s?8iQjaKskL_*@}6j&Zp1k-b%!p_Bo?iW43@(%W)yObf3n z1z^aH0K`6x{R+N2Oc#v|Yya2xa~N_;v76R&qbVu%UIz5snoDdDlm>!oLfz+RdTb?n z&WTM%K?h;iJWfR9?W9YCJzS!Y#}i;cAx}QCT9qA2{vCxzWh6q{JT&%(`c4L5OR7VWvtviF+&e!65 zcl)uLySGiplSm8d(h4sYRa0)9$B@lX4K|e8hyojN z5nnV8kJ@VVjm;UNcsJou`Qiaj+_eb7kXt+Fs@FAmoP*8T>B_`Zqtd1jEjV({MkCuc z7S%NNcn+3z)~e&?tVLjHHBbRcBtz&iDjAhciEVDDw0M%kvFi->ga>Ug*I09!M*F;` zLMsfm`<<<+NLLWUeu7e0@#KP4fs)^J`?>OLENFIi)EQxZ>{d(a%(#3_toN& zBZDW73HbZjLIK8+%S9L_(g?FsBgKVqg;r%6xr&4F5cUL@lS5q22@Z$NEq+_;Cao@s zi3q#f%HpqX`_7%j99Ev_@aaPULE=QKO~OtT0?JG^hi|`%;@zO-CP? z+GCt7V zF@a&Boe9LN$bFXC4RhipKV~+>Fn#!8QFkaJB->SiK$fOm6SWw=^le~QQlCS6D;l% z>tDwga1SI~XdOE*4IWSxLsNzZd8Pgg1E{!6dxq93v;`QomN)}skt4Ym)JnPOkGav? zgjba)PsGc@#Wyu|O&KzboaWInEAANIWOC#96@aa>N9$1JbZf_nO#RUo-o&-Oma>^D zv~B9Zk<)uDCU)F7yvh1$obAvVtR^4Y$A-dxmLp*A<_ftXsYhz`dT@zo4_D02&9cS( zeLNAiUq9klcD3o9HNzv_9b56uIF}8aM%N$3pT>C*D}YlP3vL8PctnRkpqEh#!vpXJ zetUR&5R_S&rP3^I| zk>T67tGo)bx{i_sNlw6J?CGKihoncS!!M8a%5m#BhTp?hyujYz5g6_Swo9~6jw88@)-Iar+O?N%%H-3~UnbbWNnTjalvwp6BSBj4z>@1Im zi;`RHZ2xFR!3*t(;NFo?8NzetcPu5MXQQE^yBE6-HnQ>5WEpx$PH?W`C?$KO1gF>T zlJoUmvJU?w&hG*z$Ebgb5g=lYd#Ge;o;i`@x)?80r}n^k|~ zn-E#S5t$C+#kiUS?k?%#LRAJztAg$#IO5~rh!ypX@vu9`W+PNKwcW$^PEUC-4twIx zc&Bfv9yvA-H1BV!Iyi1NU>t-voUh_+m&IucM6t`&b;ec%)%JeyBotUl8z#d0ef?&; zzb9hvX^0O-@yfkrx!|D1nIVAgI{=;RgyxzU!23pXjSZ5g0mnv14N5FE7#-7P1`UA4 z;VIPR*tKtm)npo+81JN99Fd5RH{94ga=5PYn+rhp*_d>$IK3@S*bk_ohfCzs-y)`@h}Qr*ITT-MQlW;)eU?eD2}f+?^M zvjs{aAGd2dyA3&adwA%c#j{^o(yU4XorlL(k5p`#kCHJv-#8L&dZ;tw2ic5(FD~K& zKrQ_r(<#6-2s1cz#F;2_iL5TEv%!eLNa-NGAv5@ZtrVp&XO12B7;LGax%e$rL?y53 z>8(>_WVH&1f=pLeYP3Pk;1%6H_a1CqstNQavZF~}e`-r*$KmN zYb{9z6qS(*BVn*%UxV@;I;H?^Hi^^{sXrDbxSZPEt=-2v%G#oyW`D3V>>m#_xME|u z%oaFBLa7Kw0>2*S`{liN0D(v3=`!{Qv@;=wRB zVnf#%vCWOTZlEu%;(SS>cI(tx3--D?Kyg&9p|HeHs_l)z!Rk1aT!hYLJ8SWFwWN+6 z3^<*Mfk1EOc(Wv=Pz1zphom_E9v3rwW8zV+8Yv22a$LwdG-7!7X zd15)axol=(rca})YpqcdAqDn6lrW$i1Wr7{BY8Phw#mxp)GRhlU7eMkRBHR`D!VJU zq^8V0n}%Dp2oMmc1P6MX!3HnK1GEK}dLleV$QM-sRMYtza50@0nMOD5qBIzAxf3Q- ziAq)q&(QR985Y$!8d$?0ez~SmXX_8L4`5iTvZb}=wmPP!_QqihVf>rnhB1pmpi9|~m zx=Cn=(V7edPR7qbh3+he<_xRlDfpVIDy^Z?kglbLk2|&g z+Mslou6K85F4gJ;ZGc8hdRt{gDKTmJXNgo@LpCB2>Ll1Ngj%s>&wC3pa?Z%(rYj{-0cx0}uJuQ)S&+pyUEjOp_#;jT1zjA1~Msa4aLLm7n()x=_z}^wxJQ$OwX{n7#n|m^Ji{8nVR71N&oDLzCZv3 zIlumCJb;~K!88E@v@n?n>R$!Ok#<)F2zS2riv8}$M2~jLeyAR2--zLLchn-IG?Lbs z+B+?i?kRuqGrD@2tX_xs)*2GdnuR{ZK?oJvi`bcVAqA{X!C5iptl7)o?vL--Y}r+Q zrWHuL3%X~WkB+0u?3-gbOaCVKYE@g771^CoNhj+)Rjna zL2_0A0IDDW0L8{5yA@>G77G`jA=3nzRACk>qE<)MZyB zu1%{ZKX@bWc6#~yS_q;?wHc)*L7otxbot1T$kwK{WByaOb>AJ_cdQ)4 zF2mU^mMB4`sFoZDzYJl;ns9=9lFRiXS;f)aG#ct(e**xjjg?`{M{FA!)Fm1pJ0|h^>6f_C32N%`P_wznsTYC^e%CyUI>Ke{0PaMbzB* z&~AjE!r8-$a-|}v9EBbrVl_bz{1jfr^jK)DLyK)Ao`Olx_D@Uq!b5P)j3Q?j;4i?! z#SEX|O2Q3+=BLl@o4Ik(XRGw^i@%5-Z(ANY(5)5edAL|tsele;wbV`cR}Q9!&!l&n zJ4Yk#scp{MT(m#Ay5J)+TJSyh`UCj4@T~xx>4gNS;s6%_@V`J0gDc_55@ER#kojB6 z@Ds2;CV=%ZRq;KgosWNm3d?yiH_=VE7uyC)#0HzcN)x-_-yrq`5PPs&Lle98LZh&~ zL^a#gqPNgpM01>>|3G@AM1L;o-o`L6kXT*xDS-jR@~*#t-;M|A&K^X18MY?`j!r}z15&iQ9#1=u>QRRdyX!S0b9qciiV zVg})H*y1J;#+NBWMxP}SM=^5NLQ zy#b$XxKG<^=o_%%8f7A>Tp|+*<=UsEi9qwS^Hf zLP80Hfyh}o9m@l4l8bf%+%op!-1y>uOb+&asm&r9R=f2-q!P+Ojn`1rT8H~|Z5ssk z9)Gd2v+YjYt1Hytfz5suYS`t-37n$vP)qAi&d~`$HVKmYM!<)>g;K+Rqu|R zZtnit>}>BXCqve%fJof1X;Xv5+$_&Y{Q;T0Wo)cTVoA%ePx0Ndit`PY&hBRYR71YL z|HjBJ)5K!jH8f=BqH7^=^Eu#RX~0ge;!_|&x`(&nVl-9%ny?fUIHi6+eoSgII0t>PM6|+Qbrrw3}YSF2|=zOU+$|e;2sq6*rb>-`;RzegFCJ-_R}=XriQ*fF3^G zwwnN%F6FR4z=|Vn<|Vr;Rht{E;Ea$l_kSPyR5BeE^SS6gft*9srYb(W{~973@kvi> zGgVYY>{@{68GAjUHrA;}3Ik(zRp1(3*I<{fJ-KJv0{W|BB4gtP{ap->4@T zrximC(m?3pLcDYlnOoW^pK^r=XqyiEr_1(a9krSKNGfx%A>l0SYDL!G%qe5Y-Y?D2(`sxb@}En3zK_}ln21ZgYCtotKEX+Tt>lUE9s zAN55472Qw5vH?-o(^IQR=8`nswLLv`gtn5xMw#V1xsQBqV?Kpk6J5$nn)oNYyw7Iy zPtZ92xr=LcbX=er)YB@m*;wsWSDj zaHN2$?F?>)=|mYTLdVKddbyBhQ0||9EB0AcLNTm%8NLG$c0l7X6l+Ultgg=3(s7y$ z4t6JpgZ^ZhNs?yi%b=8)0vN9m-j3LPo7EP**y%3Rx zp+dP2?4KT3pl#23k@=78jfNY5HNet_sR|Qfb9r~O**~>c$mKPrpW^XDyN+yIO|aLk zptwqmv#4vJsAkOq2VIHq?O(X1c06$SrU4uSQ%|iwk3RtuI|AC$ozPCF#~g9mo^z#+ z0n{HEx~gU14NB4G4@XSZdI?=AeAd^|;qMEzw1uY#kHWQ>g?7dDIH&Q>-p(7ItF0JO z%iFhXZk8w`A-S8}Y5U_2t8P+cZ-dtFkA#bOlRsDiP+ zj~TMf42CQjcwxe%&M53VS3=>rt**-KO~Z*JyInqG-`J?bwrO(Q8Q%2ei-b2rpwqL0 ztXd$PnWkZSG+bUh3&?z{ZHU zqv#WqK5C&)P`q-3mE6DJ1+h-j^(9Opl?E|4R$(^c^vBC-z&rj>oD0hS2z7m|pl4dojBn$o=()Ilxt|R2L>!u=`WG%GX?%mE zoSLR-f~HBJl}L=zKGH97;@g$su+m}fFnm!8L^3q`4^YjcG4Hl1AJ7Psun5MCZH7+0 z3~1c}w0;{O1bsvI{GaOD{SSnfyV#5X={anglCBs-b=Oof&s_VKNrecrJVo4uz=sloNIIH%V{NZ=z5lMs(X>wuom zZ3i~Mv1!|M0)&*|jVG(1qK80>wkaa1 zIJsbJt|l=v5ej={dsP*c+O=mO4HmiBjnEAIrMjG?lB)lL_0$2E#F8OMSg0>TMn}7? zU0wC+Hp|FXFRrO?Yu4BJrZ=0B0^{_MNeRzlm-MjlQy9{2-o1N^))!-Qa)-Gb1tF;H zA0Ma|gJw9aGRRn8z_&56!v#5O_FpLH|0~BIXE?{hc~&)LHdAVA#+GLF@xTXx5&lqM9NXzY)f3|4UUtYLeuyVu`Xrm)Md~l5$!Q&;k0b+G1hO z3TL9vO5Yc6wRSVo*);KybaGov2O5>l1vbBMOsmL zePePZxjQ=_@4mNjx-!4XH%+g{ytw{FT!ST8WZ__9v0kOm%QJQ9UPn(q?F+#^s@iJ9hGKio( zhV~)sAnXS?NVm?B&?6T%ZC{@6C&gZA8HOPIodT1+k^$0?>iz+c=3NT#8T5QHapagr zZ0g4r0Iy4h;27%rS;%&V)JFr8)LT#z=jCwHupKKw}`85dBcAU>LGFSrI zCdRKK=>USm(y>17v~=A?_&mLka04ur zU^rhDG3nY`we#0ac^v67@uH$C;_6-K(zP_HE4+M#LnEmh9Bxt&F@-d)Rx}L{)Jdd4 z1uKVv!@rKdfUN<-p%*Nn5quGn(y9aNhVD9D9>Gg=-?4;|f$Y*a#Gi54_;4O^JtKqG zPS5JGw4CIx{iv>AC4y-@HYbm`7*{M*kJqTBWu#> zA6`t(4H*S8?m*~xjb(CqF<|l$?6f(sdT7BlctbfD-PhOO!tcdCpy4WHf=g*+tFkz3 z@u54Uysrz`T+W?rZsyE2$HL9C#W%kov?$65qk`y~TUi`67^~IBw9&eB^5`~7Sv|a? zBDZq5P{9_{3%5tte}}JN&jMfq=Vq)3TJ%h}i?QI64O4bNPxQA}Ap*K$$IK~GIk0?a zc|b`d^z>lM)u?EKJD5Cur)b2UrJqvADOvmU!uEEVED*3@$s``B(UhK%=2WS*KcTyU z!A0o$U5@>L_9_|)m&D899KgdIyMZ2DVEXisDL@AhM(HI4$l8~)#h5@FbZ4JEu-tIw zklPjH$y>JW*w(JZFlgxFn5M=qY}h(K-KEqB)7f1#=S|)T-!%HnX+ANr=`474#XfVwX*_I}~ zdG9l=LuYrIyUL$F*zwd(>@UhhRRuMts>r5^wHFo5zSxOt>(5UAM{BT??rM#rXbwMv zUM-#cLgVVAx^i5Z&gkqbr;g9+?bU>`-lCs9erm<;8#SO;VUU7@?u1badb!fK{$2bl zcq5R>LNNvG{Gx9OE6SfhQ^h;cXFps(b9iI%CkKo7A3O-}x57%utGEotaC0mI-U^(k zQX45-VW$^D0NjJ+TWj&T;`0)tyd9!vuYSfnw=a3B;hr&RgdD%`vS4uummQ`;)Q)On zV_TDHvuo=%&)T2SuUm5=O%3TkcD@t7E3*Dc{4rcgH^u3%0@|28Id1p{6H1Ln6Yzzx z1W>JrsbcWht^mp-_?5*KG_5uo2P)W<*x4dh|E^_cF|@t$-MwhEcodhePOQD-4T~i_ zL}g%D8IkC7#Xmh${0@q~h(v4O!)~4^{C>Xy%Zpee}}dxEIRHnvBjbM+}hRkD?~_t z&|=|GI$?0I6@93!yXj0QW{qEW3p!(P3|dU9tCrz4Tiqu<(@M7AdrS2ye%ukAiL5oF zHLpz;4od?EVb9E|M+^0*??i>4UiK8q-+jera{}o5{|DX+pp3_W7dyj)Dwg2E4TqaE zMsHV4QM{N6#z+)aoG}%Z{Q?`b+G#$p#RC0P{LxnK2e3}NpZ9}b@cyGX|KJjatreGM zR*0}+x7@BM(cglO#p9>rapdO5VngYfG49|@x~M@970t6j`~gRNF1pr%VQP=^0_9Ct z76^=GUjGdK0xkk->1YGOJ-4jROMl7DDeQo#X!C>3mDgi0t|iCt6U9GEv^>d;P$gYW~n*9zg+H>b>@nwTt+u9;Ga7U*-#)b+M@4EKT zl#{BE8+#^KvS5?$^?UKB@IGb;9rU>I3pHW|mhZaXluKA)dFg@^&`OS>M-QP`@nv+f z_<@At*_{HJjE5=fHC$sVBnpK@=?ry_Z>?P#76!=nEwFdxJ#^whgQesX? zL^7U8##vPM^hkoLXvQMNw`1R3dl9?+!~adBWl{mswP+C%NwJexU%jLFi9Va~;4S?M z0!AwkqAJyFSdbGh9GHE)K^>KOb{sffO)~?Adk@~lutnEz5CtwURobW;gOr2Vv>x)u zU)Sdn7gU2)t**ZJaoUS#2AxB}&wUOS54^%gqTICC+T|6%1Zz`P{lHg!10FUhYCV5B z(EJK^>xX}h(=_W^wGco=Qk)!z?UCn~l2VV~!JngQ%*9WknTA7t*otf4vNOJPgfHW$ zl59d`ap%8u=2tl$Y~^?WzZVRN)`*eiVpX&1OGfn%S=i`$IcZM7&*fALsAG|J|l`3U+Wo9|xvXUUIuwqblBd$NqZ>y{;{R5h7!SQ2EMk zRP)L!ulz$MvDd8roi4X~VML!=bZHIEZEqrF@waP#^u(leFs)NV##Z!y8&%ZQ++ST? zxaXQ1Q6X_HLa|XuqScYs+tqa9hADpjuaA8 zLaG)EB|?0V>mBPAhg2;+PR_)(BCBm!C*Q1&QSHS$UJzNNlcYx!cypgF9gz+42$950 zn&ZlTiJKZc&et2nb-T(^%#ep{p6M{T8X=-S(X`T?#G1fw>cHwHi8@((TXR zd*YqPo10WoY2`g%Us){vsD3C@t+6#3(>rzL8n3BYr`~C9ZPM3Et;*nFnXT5)O(hM- zd&E|Yz_qJ3iyCac(O$F2?hrY)=abj{8ZJj*1k3p*KEyOEm^1=z3B~~T`OIN`j_C%1 z#2~xS*3P6C!yz(i2u(&#RxSGXG<{}NZW2bqLNz7AsU{uIT%Qqm!exR?qrq5ikOWjY z!b$K9CUI<{7auAMZwnP~pvrCNjpF&#k;d-HPd7a6*Vs1oDXhH7eFx{xIRfLtr zFJUsZz^jx6L(;&3GkMGPKQHiZKv<5;vO)ZL1NQH5062tUgg?!+hU}ocB!avG%d_yX zM@ip%%id=IK)Ou0?3iT6Q7fL4VA^8p+T};-kP$HB#E#z(rfFQ zllX|`UVlbqD>~{@=*7xh7k6N9@%=lO=^yOCz#UCjBO{yqRPj%9<>OWvZ2cIB>}XQQ z<@G1W-#$__@-f@|d{HXeE_>?JLF~@i*_Rg<-q<6bg7%<${qq2qhG9A-0z3?ZCDT-c zLDFQ>N#32>$UyY-v~5BJBAuxV2SLET@N5=2^O18z{^$}v2Z8k6oZP86yLav2%Jn>* zWaK8K;7`5!+!q>q`<|MX>Da9gEA7Qswp8b`N;5C=6kGj`;(r=Df}Z-~BKlC(XWN!- z{q$zSCtiHIZ|J#su0}7}@=$xQ$7T&-FPO|({SWr+`2m&IXgKN&fr}NCWD=&!O)Wa5 zy_c^Fz^J#rS|imp6_41;wVH|>*pb$~0j-U%s@F>6Wn~GO%;Odd?Rr~xP*ULM-$MBx z-*{bq>HH@O#7*y`0`HbzWBK=Qd#~`*+YwfH=gu9d(0Mlm88%A|7e{yzuw@BWYz1Kf z5OUHtK$&#w6toNYO$Fjpr9dV$#@M)g!iAY}=_R3oPClj3@bO1XwgmxWB#eU;;g&~l z7ah6cg09*=J-s|W-mTV!lq=Z5;u257N4LTho1BzNt)wDhMlzAcB_xC*CErEXba-T8 zs(hQJQr9`+m-$HOzj9^v*GZuP^iE7VDZNStrY23o_lWPH})YaX`G%G zYeZ(zgzC%<&l?@ zo|fP4l^BF@A%+2KT?Mg4nW{D&UUg0i37B6{b=f8=TOXVv%0!1=>L2^oGS4R8TIfpp zY6rwYV&zU>;zM+Vr}SxS++~e=Y^R}Oms9E%S~ejVgo>-@HYcgd3aUX{S*6K6f>gy{ zlVXjS9m`C*)LIUhiZJMQg(OrR!8dBWagUQsNIZ+>NHwRhuRUapkYvONRZ#-ieG=NO z4iWi)!oKPi52Jy$P1_~QwmcZy1A zq63z9GS?3Y{lx9BzROl-E|+^qeS^o>Zc(M>k*o8|_dK5W-MgOm-S@@9Pw(r*@}c{mD!h09 zVRm81XCFfa`-3W!FMsHK;njyef%1DE`DuRe^S|mM!C$@ukU+$mV=Y2`MO(v0E+m+Y zMgy=5*^N$>wEXDjnE!O_*+`3YQjOgl;UZ1G{hR!cN)w*SSkLPMbQZw6nch8T+lz7xs8I?@(RFda} zD)F;qyRIvmI@UyZMR)J3zP^iZmDe9l1daiq0T5pZi6=^H%UY`tI#}}$l*Nh34KKE zPok^c<{Hb|>*#)^RVwlNB%!NWT$UK}>617tIWpA`1q*HThKWl;RS8niWi3I6DEb%t zl8#yo0K14Z0fEsGAN-P5$VEZtpf2JgZt<^hy8`{OD1B(Rb!2Nu;E=j|8Xs*xi!O#Br;h11Ue85 zZtgRyvV^9-Wvx9rlis#1J#(EWB$jYA85)am1=kpw_0=+CH>UHOYs_nJqkGgIMLzL` zcke7@#5m#(*cV zF(w8BsK65`$i@i3CdBakV^8UG=xOw;hqd$Ls)%H1zp0yTt}PeX9g<)|$2;)BhrhV- z^yxhZ5AGM8Bz3y(3QQ%kRf|M|L%6Qkz4x)8vRae<)tw#p-%=sAn0cW+hYqEF_S$R3 zhjm|Adghs>+cgWu-vlC337@K=fHQ&k4J~A24NN7x3UqS8Wio}iC-|6^t_eN`S*I6P zpQ6mnc?mjWu=-7FESA6W^G0rrrrMdW{F*+;Fn~TiVX2kR@@?Kv?tbZ|Kkr*wB8`UL zBu3jkMiiBO|28{sNha*U(7mZLIO+~>5X+1Ft zaxw-QLx~e7PAs8`-!EZ*{O)&)|AwB`7>%2%p=R@RNwmKqMg|2|hoq*>Awpf>#qb}Z zFWu;4t)D&n*R|V*vGLq**Lb0XOv;B)hau_7COm&0AMsZ!{-gF&Sd6zE3f z1k(b2C6JxozL-beVh&#^UJG^fSA=%swhwNVn>e2=zPAv$Vi*ee>-!9GYJ7h8m(kIh zr=Bdn_~@}Gi-kLUNi{TyE9U1birZYx7BkG(H<)ls*ceujwJOR%rESjpYHjA)TFVo) z@KgMH+(G&ax4i|EUoBmH|mH770<}1+X;}E1Q=;uFoHP-IRMf zdt}Ko)BL#sboj*nQ%J1!S%prw)Luq#i$B{$nT6LVv=MvMNfX~LwUh^Chpxch z5u2Ul7E?fRb_LoUzbrp-@?b=uQFEgEj~+^(TV7ppD&nbta6(gKE%u|!YL-2^8g<#y zk*XEI&lEFfWQVy6XMX&RYx4i~#)CNxZ1s8tXtRLO%UFJtfDhzLlNvHL&V{V7A*2za{x&Whsu==d(w zSA6)wZ4nEf+`QkvjC=c*=hCA(ML9(pil=w%KsmWVM5Yz`iHf|^V`{G^q zrM4E%y-8w)2i|f400(?{FaARyyBC1;I249Z7J^?g_&_fZb!)9`a4JU=eMCZaX@XhbsfeJgmw+4empxc`vbPd6RebWXM1c#w7 zDF#BZa^WgUAPq(suw4OjTN9-^7pI?tDw)gF8xW#Pf=Q-a?;Yccd06k-DIHd|_GBo9 zokkqFUM&(Jg_q#@%2Q2l1-ACCK;-et+Qygb2HnHHm}9TMI^1WR(02waFKZH5Y?5o2 zhVdaiTpDUBJUP&n9=&s49cs;x9_g0BhC`p++Rqmm41)467dhRkh`y@P)z@aNHH{hT zZK)Bf*lri4Cn^gwZ$nFc$B$kul>az~3XlDy87rW7_M-g$pS@q0e>aIbMF53A0hi{W zJ0f%!QUyH`FI0+I=IUC5bVmNDAIT(G1`tBa=VJVW4ni^ktw}q|KlDQ?=iETfI9+Yr zvW@(BDxm7M z2?*~b_La3KvG!q+#V+3}cRAKKiA)yRBy4Fdl4U#hS7du1X!~-EN+(t2s&pmx{k4_C zJwMN)!jFIPEMB<(*TWbzimIXA`5>;|5Q_|EE}5Y#y75T?XLJ^(L*<2#>16uhbbU~b zFMODP4*jrb-!?QmT>K5(t-W>_n>cuI&4sI%dyDBW55mvq={s{VhF)Jg7XXM(0SbK+ z;LtACGK&RJ8?5P42LvZ%x}D4(4EhDk?q#;m(3$6Ad6u~7$sdFDbPpNM2c-+s$=QIe zaF#68Owekc9x*pr?cF|ASlW;ted{d|Y_hdjcoMh>4p|M&+k{`__luI1>dQqH%bP_( zVs2Xb+;;}6o5X&_a5s_Ewo?gGX_0&rRwa7$0|~UNV$8Nnq>*XE@-cJ0S)>-5GsVfH z*sB>s1!V{-2$+WSTUQo$8Duc|B-3&0+AaFp^g?24(5$MITVkWp#T9GFs!GZo4P=nW z%FC3hAT`T&bYGFGxnsm+Na(1Ds@jmIBzlRiy!f4!mBNSboyPJfeqSgg{t!Sp4oeCl z`>Rm&!00yAc%#gfsUVcWrS|At&BQp!<_X%nY3b121m=YeDKW5xj(yAxK18n?(ES~F z1aB`@22AIVqR$F)#2#N>URy!kd-y78?#`;M_LiCN!xG^#N5uWX{7o_|(Z`eWwo7&V z`Qv-w=jP&>6|I)1l|HbYrx0+|T2Z2gn8&W8+a*O!4I-PcnuW+jAnI9Z==&11mMMq@ z|JG%zHY#jVmnKb3)sHldG;edGCsYb)fGnPCLLxCGlKOp;2JttRi!asJ|4%dO{NRK9 zwm*JYn0UVv6(0KUGkBr=FM5<8{NTMp{a@=*;fntqLOB5>+Q;z%-VH%O0j=r|0OJFY z9k#Nzvsl#^h5$D*0KJzNjE9y6{DJu3kG_1*#=$=-kl@{JDb7jQ;ToR_I|3XA^7$C6^}^3gTxSN-MvYXZbHSDIn~W$f5RxGj=^9S36X+6>-X>xctpT-kQ4f?3Amoj7S>r`>Jcq~%y z=xWk5QcayVG}c~oJlN#Voh=pyK<^hdWHA_9`kN_6Lbp3WfNH%-90pH~tk+NX*?l3NsmZ{ZRdk91H%D_QOrvDHG@ z5i5idiFretyN-0qw;LK=En*5TV<@N}jA(z~E^(D9`w5@t{sBcUp4M(LR3$D`#1HzF z{zG-L`qLo+0eY&{`=*^{=N$So+mO=f(&py~w~OO#IhN@3DB$9Q&HkZ?)L|ETJJmsL znTrUCs_!V?sd5vdt3+!gCaRT235>p%5VuBXS678V+yb~@p(qd~b{g8!oxj0A{d7 zeiKi~h)=JUb%6M)k0v=#)n?ky*NREELTBxSokAgzOvDGd(WT+{0Zi~<$R`RLRU06Z zjI+)Fi~x71T^{lzoyTC&0c5k0$B>;K>I4YE%xKU8#uJ=>Xg5H2V9p)IPj5&5d9IM7;qU}(B(G3&sGQF(E))9#@=qp_hp4^{M^)va zfvgm{65hg8yoL%dy7VzADG?Oj{*aI5-!1+k!DWSD>HKx(DzsWy2CD}v zzY25&dF*cs+tT_L0og5Ib=ZaoSnIInE|~U4q^FyMrSW1A@s{)Fiyy+35Ovz702{WJ z#e_oc`K6`v=#L#0SJcT3{6I)3hgD%^R?9V|f&!P{C8(&@?2B#nbyu8iP#6Tkuu!QG zUlmcy`Efgq3`9D{-LujGx_xJfHek@tzea|^}pL_0kdZ)^)^!#u%mhbjs z=AtXrFjq{~Lv&tYA(zr)3aE;WQkl;yH3-V<&Bn4knsrd^jdd=t=3>$!Rpx}G24QVm zY6{*d-lGY=Ey?i6cpAAlyV_~h8>Ep0!&+MFWgsdc!WG&f5c7A&r?PC2qrjcyQfhO?ni3XYlI#xyWE-kf1*sNn_ zu7MP`@qG?>s8LF6(~-?Oc(@QMd7dM_6601s$o`!gT_%>EI!zYJpNu5RMSWwvy?uS- zIZia_moo@LKZ~>V)Rpu>yI-BTuim zwmbfBy}{HVNh+)AS8BQtzmr~GenmwE%_%Rx%wVxB(gl_%(v>}#?a0;Oc2Cw~;q%km zm5H)ojzlY{ZZzp~e0MZ#9dt@lWj;D7RwX8O^rLNe-pQr*`ugafyw)a@ zb6~(!8zZq7GQXOd;#`MfKi$9_1{)w#8rsbZaY?dpSaUHMWYMNfk|h`Pzpp1W`(Hl=ni%UNH6 zx#hFN_~_z{^oo?~C4U&EAN}6jR7o%Iqkn%xtK{(zmn-0z%d=MmNBZruEP1F`mr_=l zy8Ig}91>U;9n25vR22qWl|7_X2i1;D+WUEuL!Z7VR}UZD&i2w`luH`M&d5vODx@0b z2>frw6z}I*LqPQ9?0_({%C^N%GQ+_TcXpyBV6zHFY^U1Thg28)z|*hJOs+Z-yX&$f zM-esLKQuHi!Wr9jf#jynJ9rYcL8{;>gKCjE=nj;*RQ%ZQsEJ!oX-ASbR&M>}W?OR}FTR{OtKzZ>8mvQCUlj88uO z^yE06*yq`NX^R~Oos)%BSx=wj{R&fB*5+hL2k3<>bOF3Y`@YdDzDR|5XX<){iOtrg zqHn4fWj=!xk3$t8Eh_Ft3irq(WjLZ@teevk&$##7_B&`&vjvO*%YX;cL^Do-|g zlCbq6mI(TiLd$x@Ze`>AjKl|`@S(_Bll;b$ZF;XGp@*NGC@}cliGII0JFH$V)ry>H z2~w$u%5pSv_l#|~D1*!GxrX+m!HBidSH_Z4vX(BiJMz#}-VAKXLN~I*CZ0Ob zDp$?~))Z=ZR3J)THraCE9IrYgwGFH;icN*xI3iCsjxCKfQ8cNjZOmWwO?SwAHpQfz?OmZSV*kIVSIj$Wg360Wm$Aq)Or_n%LH(KtAW;uxI3Kg<+aleu|Ti7dFAsh2aYywkH&9UDzaMW%wCD2oHowhQF z2pmgTEEdI{5NSOQu~YHTA}-w3);19Pq`$ej`>R{$&FejNU$;6Ms1mUj3){rH&3R z&u48iJ5WcePhB@P67S=x5#U&S6ahV_qu4F~dGwV8`r`D>iF7SDosx`$ zTNnnJ$zF=b3)bQ2MjLup772mE7JO?;j1e&I+`vv{e9DbpCO*cTnWN45E-)jHcQ|vt zEH{jVx)A0R^iXUvmc8$qYbLI~`rx7Klhnyc5tm1GA${XheYg21fE?mliHhu&CuNqlHsb?Z>L5&U&jW zv}WAvQD$hxQgMPn;>nUDD*X8IvBCpI_;&&Og^tGzC){s%3sKY6)AJ;BF^%3Kg{_Xs z=+oTvm=fnirnji!i>T!hJ~nP%#mXZQ@yG+HMc-O(pXK90<2Wmf3EfTHOmPEdMc>g< zXQXs>Uh3&-4aPqgUG?8KYaGm z7D?K%B!evHqMp2c`*K7I2~Fu*HkdxNFW-TDBCa%LS6YjGHBX&yuC6kcrBv5vr`tQs zdiNr?(_U*GAIIsLa^w88k(`1tuTPyTH&xa<@v6Bl_El^G*PrZddh`Pb zUP1`(H-22S8@9I6g<1WH&qowG79Cc~ML&^JHR3$Ob-nuhuzZOum`5+7qI7BOz-SY_ zt5K%YmSu3VglM;}x%sWPu36d}Tb&j%gjzS~N-JXfenpc%jonD^XAzsRI~^Ix$$YgR5$!wL+utZT{$fqdtFdKp8Or$y zVv#)HXJ+8R4C(G7>)PHFDxJg_Y&m^99H;}(+K)Xu7VkFojn=B@qcUoWUadp|>G+%* z$L5h_9d!Y5wP!rput0dGDY2lB_z;X1l!nejlgGlIXYG>NXDSZKh9rT4pC+4?p$oh6 zFW3_j%93bG_p(9v(tY{%kV0a&%UZ3arYY`*dlIEwBtdffBCDQCHaH{a$@TgwFDFg7 zs-u7X`U9&r@TCcgJ(Nf{4Y*~OZG3GN_i42@H&@@JD=3V89J@0?h54T_NhI@n z@<+zMBFm&BEPH+OU4>hwa9!ne`4-j1x?Gu(WTC>RN_{=QAr!0UR0@ZTzsL|xg634Wa zO<|&c)lq#Um+j~Z@FC_2b+hT(?1-HkpVi^yHQd!{aew*uy$c_Jx6fQ0mJdm@3!l{b z9Y%SE!rN*2;jvAdR;?M|zWw?KvwF>=DU1AhKWVZr_4`(p2hKSsD^bH4nzhHNs zGgqa|$~JVCS4?sVYhqt7n5Oy%lGH+*BLU?j^<(=bE79i_m;33lML(wIhm$ozhf^d= z;-mqU$mf&Hb%Pn_r-B(iauS{t-JVuqcvcPO;RjSx~wlgnxLzvMpOzq<0%_ zrD~a&Uz{M&R%zME7OhF?bmUr=<=MZU+)!Fd_xpSe4=Yq+sa~w$hg`n$y>l-Z5|#WM zm&)&%mK*8Ss3W8eJ^XQ`CPL&U94M^yW+C2?#q7ZBHdZy6VdFy_eAQ>%{&P!00p4Rv z!@Su#&D^sXG*NYJiVTWh4$jiwAA5PMm%g`na&pChz=VytEM+iDw0!mP$noRcvg@zE z{+)c4$<$WJ(!3n8@sY{JEPm+6^+jCqWVW=&s|(k4NI#pL!~;Ezk4ysdS%2B2tId*~WUi ztJl zD~j~$c#(=QGWCG4W`GP~)rfFhws+)4VX8v95PT>Rw(dXE7a@C6+$yt1i61n_ehnMR zvBb1u?^UadFPMa)c;CcKGt)BR9sW+!(At`dfBow}^>bx6) zPgj^}0iE7rp^tIcGs&lB9Tq8P~%K!rp;k(P`VN)q09cN^GKT|J|lW3i%q0RqOt<5(BN~3 zGcv`&9MupAADk!YWwBkc>)%q;2$Bx zq{5UbvnIEXaX+w`YK&>d`j{%+yWCZ1?bEtFW9iKYn$&o@@!y=tRFZy#`b+-=s_ z1GrH={4&GJ1Wfoff?!y!4f|Fm$b_~oH+@-DvJRz5!8fLs9n6o~Z1g?!RZ2uF z{Te9}ct}d5hV4!0ufn7PqX@Qwu^p_&&;Y|>#?I!pBfAba?OY&8Vu{C_{V%KDjxXmJ4vc%WhbRhX&`rDKG6S4W+ z?@zUI|BN*+yy0+}!Xuvd^EI}Lic8?4a#d8EI$fyrc~#{~f1tg@)ufZyrF!1z*FV#i zak-Vl!=QMA>r>5H;x9gV)?r+L$o0R1tI z{vt?!K7A;gN@(=z5M3YDD26n;68dQL^%8pR^p;ZEN2gyy3QHP&yPWn!^D5}$ z(_dB4U+|}&sKu#_=vQ^LFWOU2$D>cw)0NR+13eIZw1NIIdRZeb|9&I#)J?0JX%81& z*$PQQZFCWxJ~WShMx%Q==-B&~>k zK1qwBq17;cWHlX`et$JH!N*f{B-*nEzaCx#TRyy&Mx#CJ=#|rdUq?UUqHk}ccTFEU zhvH?yX8J?~(I6TGCDvelid^?>07BM}4)5BW5y!kn1EpcI!YoUS+#yjCjgxD{6PXIRYf}U_2~t97*&$b2b~bII-SD`di2WnzP7i{i31ndO zHC*ClUM037Sw^C8z%;dGr^X zX(0k~QgNNvaEQ~0E`_MROMc$Bc*?A;%`V0Cf_dYRSa+~mAoLVuuWh?E7KDU+bo$lF2jZ_Nu z%_4m20q$M7owsp%$9Afu(Muw9?2@%DEz?aqsD_I!-9?W@Pw%3aM=w8@I-(DqOSeUf z&ZBol|9l<|M;*KA1<{kc>6Ouj^QmKc{Cw7c-rIx9J^kzjw2MX^`{`HH)(h!28a;Lq zHAJT`qGdBYnY@9scrtlT3ZBfU{9>9PZMYbfe?R;6?8Vd{J#{fnkER{Kg>Q}?KLDS? zEzwsGP#bRf#Q|CsEj~!c@%+R=+7kWZAT5YyA3~ttmC>Ia!i@jQ=pPQDTU&P+0$myH zzl2^G{ooRsp{J*}Qs=_r3f z`0zv2$({4fhpV_B$3L8UIkiN~E~mce_~q0b-G4c4i@tF=-5FhU1@wwuLEX`ZuR!Oh zxRN@fxmVKXqJpc?t=xDO-gx#Zx)A51hH!-WQeG-%*d6~HlOS6VVXqQdEoZ0%XA+vv z%p_RO`hTSoWRrwAli(i}-6JIzol`NeJ{SCL_hp9Ni%h^2EK@wbS|s`b3T<5R?gMhPw((f{yYh6}-G^pNF%DOxwF_b}UwnB$f9D zd=08)NBk}j^!6Znt z+Fj1R7Z;7VmS->`!F8uU<=upQ5od@5S<+hOc#Y3`nDXwdc;5CiDaXVDa4Cq48CIN` z)rgj*R@9`27gx^m2u2(w0V{up(BLUf=YE#bp!Tl{*RCvf6;+ud8@rZ!Ymc4hTh?n) z7wGh!?FTL_2o_y@V22NriiIGec^KKfS)P(U^kQ-E6=(~YJ(*VmA!m5VV|l9CM!`3H zj@VL}>Ev*j1*i7n=O=Ogob`V?%t=@bU!01g1es)!XqbC8ZBZA91dD4cbg^rEc?LTO z^Pccl7z>eQY!BlR3@mnY8G`|uJ(%9SxnbFQdxgbkD>W3&pI6~q>=UE}ZO*njZ}CuZ zI9O`re#EjMEt9!3oJp}8bonzpf;5JOVJiaT6D47FjYyfaSu7VudK}4;(30w&?Pjno zML0oHNjN)CBK>i3mC>AC?e=sv7^^#w!4RcVar#a4=oSR%v79ZInPct$2O`0^`cfW7 z0A4(qGS8;ViG(tfwkJCMVdJSIDWMcyr3*ZQhruJLHe||j=7C30V`$Gam4i{QUWHJ9 z@CXL{$##u2Bd6HD!&#E;mdw{wYPow;M>kBm3w>)g4BLuu3I|8r^T)EJDz9oe$2mIc z3ifREgxm?jU7!)vn|jBBg;tKszu-V*Z*F#A!}fEs#aK(A#0!zs_8DFu#$Gd7G*{x_ z?O-K8t1(;s%xay>W{|AZ=Q2Z~w9n2ri$c!A3#bHVX}uLWjuKkr9!*-ZB_)y=&<3;8 zm<_UWQWi>`ic>q79jaVf?l6cAHQ$(FUVhvR4Jtj%piIzaTH|&IF*_8)4xQQx9j{NB z9Z=dVEv95861iy{gDaQX3p2;pF0;AJ<+|tMmf^2iB!gj=F~dY)nQfWOGCLEJ6?#+O zSiqfzls0)69Ne253T)WMEECUOc@>hIFU1;Cc{YC_D@Q2&J@kRIiyJFD@5NR*SRS$! zViwC}HbWnn7ID)BO2hJ{7mbNRk&;VpW%PkaKHr|Ks=Z~AsOM;vNS<(>FgbgPU!L9{ zlqrh)oN9ZUS7MNeHIm|#js;G!wN@)jN$&mKBs%r5HP5fvE)p*q^Eca{1%05s5cGko z#X=6DYtr1HP$OHNq!MN^`oQ%GGLbIgRmpS`5YvhIi+MuMn5`F5Mj&{{=^t_*Vqt-? zpM^Q0{N@M*S>MBRpT!{fy3VIW+MpV}QK2-NdPkSL)@VFhZGC5_Jz#bP%}s5!22Ex% z_q4((RfUW4G+L8cr)%i$ajwv1MYOughB{MbRdu?)q_R}6@iGp2~x7XXpceh14(?A(;=XG*e1! z^~{2LaIP#a|4il;P^pN(V8G{E3fi|Vb}rO6uh=_((*g8qIG-xyDUi}Rea-fBe2s;9 z{o!#(Yc=vtx<^;9=r%ZN*vYkCX=ZgCGHQFTO{Q`hh^qG7cQgD)cQ@mV~yL>#oA<7TR7Ys)+p)Zo4s_6QjzAi zyF+vehvF@ktVEH+o?uzW@h{113ycnR7)BL2UXGVOuQ;zGi&r_r8JLAsd{OX5G0wp6 zrVNb411B|UXvS=$Vyzh!9L;m~%s*Z;q19qv99G5lDI2+FI0LgZ6|P1;Kc1vGNx<#K zD9<&h!>V#iKuEzsx!+V z7A1-Hpoh|hy32nr;)KE(%D~r<_1_V1KaA~^bVz{7L(__F)`VL?J(TlVs>AY)n4)?G=$Pdz@wa&bolpbgCEO!qF$ z7ReGM&P=cR0&O5GU8*j3FwVR@`Ux5%f1@BlC^$Ew@hVb1V)1q`2R7QP&2%TPASF+p zq%M%Tgfj6KFb7)8Euqa@r@UFNRa-Xaw8PF@z>+5*O{bsXJr<|BQDCAJLWtX$gnKjo zjd-TTvlRzD=uE-J%Q@b>BmYj8_+5&hPBy0`w#qWqk0SeULaWTHj=i3-EHG<}P`^J{ zqALsshjRoOLq%K9g)O{3Mxl5_0Qx}K!ZR3Tws2*7)ca;_;mn6EawFU)3PyTsX*IQA z#8TLhy)X7YsKsC(kw9>+-=VRqnR&#WjgD#)-NnmK$(JYLq$M-Y<{9(kY=U|Gu9aIh zhcH!%n}?FGNhj|%ZUs#9EfPUgXcpQRAD7`ki+pV;(dwG}7H2fCsTlnE(O}D-;X-p! zmUqR9ehVk&%Y-7mUS7Dos(W`w!Uj&~tIxLN+6-xK2?mLl)4$=3BOMz1{3lRciw&mVr@UNz*f-wUZuNcGZ%lSM@Hcwb$Bt+UEWFjuN#z zMZQLY_`0k-b9zr`l~^G@AeLqfcC~NKDLdMVLxYW2YMsO!MvP=VAr=@!Bk{=yxCGhc zbf#MXm7v->7hBE}jj=9~&DL2{a`PZBE9DunnIBd(OKrdkpEqLaUSKavsj4kj#cp(Z zGIMDNlc*F`A3c~~64sO{1A30LmnpDuuIY3i^J19RKycX-Fp0RJZrL6jJBOEAKaH2SlW zMdhj4rqtqyMPa-^oTBk;o0r>{TfOCmfxg3|dGl}F+KAZu<;APG2}x9`{ymYewBKiP%NuiSwDO+?7JN6#fLE7y0P7jGYj9vA&Aj* z#(=DGhEe}u?K2f`b_t0BIWt#gn^H67!Kxpc#Mu;rseEw)C^v(Vvh5T=1}4KM7k>34f;ULszto}xp%P2iYVeI7UK)+ z8CNH)_{{=T;18r{AP5eN^hOB`wfqq`WS5+LOBU-jq|hnHjp$Dobct*j`s- z_HU^jwKp}SS}IEP20OBr=4<3ODR-;7pg@-f|6;E?FJGIHRqu+#mRfzf=K0RT#Bge7 zhc#z=**aTim&-Y?$zT?w=o_0%pd>+6y9s=aHGs^%r*rpvlZV zie@xn%w@v40@b-O|6uyQ4%X37KAbZC*soLjdW?RDb-}_^o};(N;^O${qwKhnt>rYh zvyL`JifPrRI?h~KJZF8mBF&|=G-Q|ebRQj5XDC!<#Q@P`O2dk|b4$e$b&CljfScWX^Lc-Ex0f*z0TWGWt177)Msh!F0(Numoo~?>a2FNe-#xP{Mr(;i3@1* zKp$A5OjGn-&^>ZluY65n!>W>wwW_Y`%H?Khn>#n;TTnLt=AyQ6FlKTL=4A}|9G(nJ zU;0s{BkNG7*?t*DWLC6nVUALo^J~P{_cP>y!vDe@IOHD;C_>A;LeE$(;||=lSRwL_2Kep$X&iTGWK~XJUodO_RjXPyR`Dae@Dg{NI`DjfDtSt(6tp^=a#2c# zx)I~UdcI({5dDVMDc#ahoIT*Plunj4uC4G7cPO)GnFDvhFR`9yM8m`a_FJr;U=9Rz z=gdawH;s>Vr*q>u*5C0w!>kFupw845R#fKrJsYr6bT1vs5M(SLN*51Y6>9RVuA=q@ zowaLgiZ=A7T3H@xEGHl3^Bt*9i#Nz^(v+L)k?EZef%)`>ltqCJo=%I?(;Be1RpxXA zd1X7(oefrJ5u*&e4n!);;%>A6!68e_j313S zPzYp|jTBX_nP->mRGYg>1Et0J7Gp}pIlOi?qq%w-OX(2m0)pDvu=QW*0`usGI9*`f zqP*&f@|BP7YV6oMlv`KoX)SePIm_R~Pf#RbFiO!kwV2Wx0$s;e?fcOx{glMpa?Zl3 z%?14{0_vbWF=FlxR-b4t^1v{Q;fh!ePotP6;W(=#F-<|ga)vMPY?`@miW2qqU-$yK zIA5Sp#5wq(bdxRDXNmnv988Ibe+3f+Kz3k9xwCF%PCn9 z7GW+>*mTZVxYt-!Q>rnwHtSVo^<`?0tI}U+R+?I7^8f#lC{QCf zfUdjtmWnbYBIE7@Kx@hKFZ z?W+v6t<9Di-FB?iXNUs(LFhS%%(F<$ioPXYe(_mke71k4qSFX!I?4^RZ#F$E z<D9ziauQsN3`1l*(S1qWk zD?3`wPaPQbw`{6Ok5sj1fF>|~zDesftY}$bOR^4Rqz$@26SxyJfwhS4tv%5uG0Bj? z(pxJ}E3=xzCi(-B9z22STean>)?!yWcmgAgC$O%}-%_3fp1@3_HaE4kZg(XQ!Ymr5)VTY;MDr+C# zINlE0U-M{*Y>7}cJk zZS!;)VE>|ogm@QmuObQs4kyfB*}%gn{o?tD(IsQJ57b&^8 zlwK(Hg|w!cI!m9kH$C>4zEmnL)qiTiXaPRI)4v62wdFq%1vZ}ha!2;^-qf+YJ#~o9 zyaIhw)7=Z{Zd+frwY@8CC~v|a+oTD3lasw64Gn`X8rSV1>AXYS%@LLe{eK_|?8(mh z^Z`{K@-?fuB)D$z^AzPFno6CkIJHxYl%omAG|rumM#Y`a(byg#=*y5{8+U5OBJDh$ z23hk6Gs>B?=WdL;p@~OCHDVX|avn5&!RI}G(!ORZ@iWIu>6@Tc8&t~S}4kh)~`0Ml_ucr5(#B0UC+u<_l`#| zEA3MREY-J6aJ(HnUMCXDE5eFyAw=%LOlKo6`+p}2ELPeRc#rFR@*$B*An{jvYkqXW znxTU$GHnIvqSz;aZS~`kuJtXtWTS}3GZe}NLSd;SP3f6fpWC%3Z`9J*6G&S!;4I%9 zY|oimnV~3VM1eV{??=Mm`IsO74@7~iD`jnymHXUNbch=ymXw4RnMWOqe5SA`#$^;q z)0EB3%~;k|XDyXACMr^Yas)Gk1D7J4(Y!wJ8Ay+4w4-ypGS`&Cy3=pLZ@u zGD+Rz(dFT(v_@lXqs3lp$_e297oYx&*TFrA;97#ob|i#|QEU)`v?s(E3sDolVF|q0 zSZbq>#G0)&YGaLoexS)oW-Ngh(O8YCL4Ohsl|vl1hcS%FbF{HUL!~YhX9*mDZ}14R zB>xX2ff2B66xrs_Gc=^MwWp4^pJ?0qcwtl3lN*B@r#zYLjrx?f4jV5?krPs`QsLLB zA4zjOH4l%TxBT9klx&BH>r{k7%5ill#8?75VBPyLwP9{a18OSLG|#!x*wTV6?!QG6 zi2aB7T9Fg+;ywV*&HYl7BcHELOZk;9r0mpXro`N{Vzj4Dbo`)g>rc9#wwYF+K-F6;_aI7K*0t6ZsqWTzfr@;)+h?(%zTO+iNjH(wFTR*vH>1xh2b;Pl(* zwO?bs)9lb6mxHa_=4x)7RtzOHmuj7tFVu((t--)ZpLx>1v%2NM<;&VG*`AeJ$S4AP z7J%2dN+I$1q_X;6@CByk%DAgUY4U;tl^G+0j-{0cDmxDNM=kv;LawgJd^?}pgOF_z zW6xn6i;v+v(swch&Yo`mUa^>SDDL>@tpkA)nwJ+0f!{A^Rd;t)vNcjImwLQXS>3{( zDkf=CvPse+F{dQt@w!}%>0Le_r4n59gR0sDr zw_aInt5j-C6`HQwJ9@6n=ONC%v&qwQ({huXs%CctUOC=&}$ z-;0=nu5XtrBiF#V7nxafqip|oxp~`X$`{?|=jc6urcRejZF2OTro{aE1f@{bkdvCL zU8D-fRf(J^^7lcN-mJ7j@vJK6Fja)SE@dz>Q^e(lA{n2bQlhgefKLIcR!l8F=KE_Y#f)Qq%mXzsItAy9DUCq4jRIyUTOrM94wc^7i-VLE#Tu`=q`HW)0}jKbag_Tzx}N`$91!t0vsHxE4Rpk> z=?e79c|$`j3PYa3kZV-53=Op@4F$R>ZBQp^TDfJ*%BEy_u1Xcu{8r#hv5r)%$r-R& zt$but2x+*#^Y}bIb2M>VFy8aFbF_JLcHvT6r@AiS9WMb_5RY`9eiWy~ScVTTi7*e_ zY>yKUGC`fiRA`nWkc|p6yrhg1=|8d>^7hVDicGazV!~dX*d#UN8WffDI;tSOR+n#3 zR&~s)R2aer-KmQ;bGk&DBr>Lq`kjAMM$PMq_W+jWlw>xx+Tifr!Zh2)bacetV+uw% z+VqWrt4b)AQ#2nlzJ6XZ+m`=N{D2jFK{Ub>2G>k2wdG}R*%k&f-%-9`Oxd-1)0!T& zvC3d5wO%Ak%S@N=F^2ufH!ek7xVaT|&WJU@PM$J8%&?w&c4(O!V(1w%mVaX<$}57l;9S%ngpg$S{?;0C=9r0!F9E%mm5zowV<7=lGe!wAZ zLBw)OD7u_4c+;LQmzSE~cab8$*%oJl^866=m~$we?v8$_%+{ zWicPrN&Kp4TjPa~l;!tm<@No2H4;T2OO{e^xLL5D5Yb(8r_qIoWuN{#?+IQhYCJS@kK%@Pncp;C=f=r*VjQmS7zsEcFEGx zT@r~kHAQ?-ox@YIj?HFnH8sr*Yq6B}$NM8DO|jfQGLhw9w#Zdbe0Y9n)1)iI)V8q4 zVe47c>&)uD`;6p8=;HnxGay`xbJ0%F;5(Ht*mOD@LoqnEBB^s!Tc`f~ziGn#TyL}K z*%eYj`Ndej@DsZPy8I8SP;x2eI~%y?X8e3Oh{&Xzol?XZb7tqFvn)9q7&D-&Aie6b zU874c8chr2i)B@PgZ&LkTbWu{t5??d4=${dNIfdK1_L%zLkb%`HbKgt@~TnH z@QBlRjL57HHop5i6JGC$`$+zS&GcuN?@aOXMc-${$XQkdl_B@SOw~Z)&eaRkcNrDl z1|H@-Qr;choAFxt|4If3Cii#+;GS_B7^9!TS#B?|I}7ag0w4)YYD;Qu-roG| zF|Vz&+qEjSq1J4wEmb1-iz+u)Ew@RyMFuCn?sOVwzUU~h*$QIss_ck@>vHFa!&&2g z$HM;fbr}o0?Dm#wg^p*`H#DSZgDRG-q7qf|Bpd|)uWW$KTacTFE}upB&|!HXoUI?oM><@|sYRd~q5r_}P1mG0 zHCJfst=;_@d|hRIbxK+0P_KoGdHfbtSRzbyB)7!JJbmxvWS`y>;PcNB3S_Fp!g&ij zO0YP?3aA7_(=AvZv%ccLGXbLh!ST;#NdGhW;f%UxxDUD0R;|{`P;3oZ&-}!$R>bX) zS_3=Cl>cf6?!b&4B6EglPfM~EDiQ4fL*%HrcjK3|ShUuV#lkL&-?8iFtg|SCr>khF zHkM}&_M7LdBeKS=vxDQ})-hxT1>dp`#w>~n+Ea+id61FE$NP3LIqIPN8D_azdal_u zVSHHU=xwI97W1%qVOHKiqgK;CGO@f>Wv-H|s|>Q{v9*(ZMw4H@1RI3*(QVZkou;+w zvf8W6b(QK)ZGDDkaEV*UUBnj%`E5y>gn~W0^D}xJeWnIBS}!{td4sos2abxFSs3Pk z`1!t>IJLWb7pA9$R2Xg!iFFCu3Qzet!R4W`qVn6fjBmWVK4)(uw^3hQW+_^iuMR1* z<#~$2eU&*A;nl^Xp_VJFmKGf7$r!|L3vDG0ylvb~Bp=x_TqsZ+>&uKY_u^S5Zcqms8iZB&}UKly~z@fUuju9w%DS`0vX_z*fp9^ z@_UrqNLN#C0-kv=0)h$9tw^jKSh2iKm7JF3#{3N(->%ay@K(cFZzJWbl_+=l5zLld{=y91KsioRt_TD8gw zi=|knh%_u6TiPfO>bNhlJ;K8rhl9sen^3#IxMS2fq3bP3@5tZ~%onEud>U=b$bAjp zNj?e;z7odohOT&KoQ0Pu&IHIdoWFw#&%Q4)r&TF?P^LepXB5b$dAR;h1 z?rV+TY-p&}kM3WR?#y*3uT&QKU2S8{hT3Y4*{?|ek&L9QbAGj46;w!rT6xXS`_!pHj>}F}wU12>H^~$w^ZYAwmUo#%azVR)YpHed zs+HIPSK^4HXKKSr*G;QY&7Z}5{0R5w?_vRroJ9lpYyv{=Fc&S_vu8_I?XuXLw~4VF zRGQ_g=4F#B7Nn$Z+y@v2jBF_|vnJ-T4rXRw03v>AtgergYlc+C zHPtEBwLh-yykNxIocH7Pjnkvt2a24+eC@D0zc^2M>J3G;C%AoY#onQx)OnlWx1z^S zf5jDG%tXiKD&}&FHvqZZ^Cw*x};Dp!ge1Y(JyKtcS2D&FtW5& zV{EnAT5*WHb?L}JokCh%YxNIB(~i*%9Dj54_%URDBeVZn@raa5rDFD(_@^1j}w?GGAUt2HQRT zNm#EZ{RDWAkYq97$KGi2JA_DZL&-l0ks^Pi%nKX@egwQthjBys!l?vnoD}Y_V6~Ns9BzFA{ zfR)meKqgQL^a5*ueZX}9td{l?@F5{?4ln}QKqD{+Yz7VkCxFL*$gc@WzXy04_&p&R zA^rl?3GqQV zAGFQV0(${i(_aT%hVu8{g(trNP=5X|2?;2G4gk^yV4c9Dz(<4xag(4Mz=@q8%pTkZ z+zmjBASzTgDq!{|00M_H04NcH5+Mi{!fQGBI}B@t*AkM8V#&kvyt`2T`M6>JTZ9y# zmKQVu+kvkMDa1x`Q96L)D1t`Cc)$1=LP~J+k~;_~H2|IfOR#%Vc8-#9)5;6~#nKus@1#TjwJqdu| z?LQ@?<0(QqAwVbU!F&{1R}~@MJm6YFdWL|f30Z*Ri7bF53mXaPttF&ynvniYge-yp zi&0q?L%0E$Z3%9;6lNQwz(GQW9KaDmmIVL^y&O$%Io@9miwzGDGEzjyXdQ5hkg?AR zSs?;+fEySFAk<3SeC1^*|5ZXlR>9<}?k8m20HEB*-y~#W9U+sr@Z`@3SA-T-Abyi3SN;2asSoRCc$fzyO+fkn2UNViD9I}!ohZ0AFS?1~a{?yZEJCjfR3vO62Nmyq)zhJZo)Ng&H;Wx$St`5t{wToI3Xuct|x9HO64MKhfGyeQ$LY~CUeu3AYLgjlJ&!55Po`vb3!{?rZ z1)moZ@`3{R6(KKvM951hwqG_x@aqvmUTy=>W?xxN$g42Xt1#hfu*_>85c0YMc!7{# zqh7p$i@yo&--HQ&gWCQUYV_NvaKA-)zO$K--=XFFK828XjllDSyoa0oVH+Xun*h{- zKkgyq16=3BrwRG!dP4pbfnce zq|Tx(geG_po02$1sCapKH1|dxTa(^Qvq@t5*?Pa{^k| zK168UuL!Mwg3!hULYo#7+6=8)`w4BkiqQ6aLOYHV+F3^EdkLeW{#wdWJM4zI1pg*V(v=*B-2x+$H| z&CqB|n9!{o3Egf$x!M3+d&e}PJ1-=3*B(O8eTmTXh6vpaLC^mqp?jfdWFN|L-}8j- zhlUs8rWf%6eCQ%bdT}EFAr3(61E@>~t-v_&8$u63>q8Le&_{$Gh7}G!K+I>I7a9R0niHIyC+T)dMm7R8v&L9uM&E42k>h`Z-=FBkK9e@ z9jFj@JVof8K>%O6YZySyzB>!JoX~sHf%Ac{2)!3pxc4za?}M=Sp{(yi`QP71=yVD2 z9HBpiB_5Cfc<+I~5&EOs2>mfM{V^=@;40wvgg%7k`4cJd9?JjWc0wQiC83X?tRF#* zd=%0?`T?Pj;f9YJ0ciJA5df*5fM!p?tWSJQ=+8!gzY_X$T>Qyg;3%QLK)L<`H+;$j z947Q>4R8;k&%naZ;PF`0#NjM6UzU2Nc#LcguZ|azK9#VxDEItp)c(r^q0xN zW1`J1JLy29zs7!07`(L z5&BmM{nzsd{o7&y3jO^O;66e>MVUxcEOS09far`++NglK`yv&-VaW z;44_*D_GzwSm3K#pc@zlHUQ_N{J(;RU)==U4?vTzDWCvQeqW zKdl1-0Hi&=8i0_e?*yRv>Aw>Wr=d8+-Eau;j;agn=3W!ibgw7Xr{IA(?QAIK-WJ1L4GX5-#a5;ga!v$q|C>0bm>9WCg(0gpnEHYR&)q~W5C}C=WGNZpsODEl5lC;3Fj^W9wb~kiYEPNgm4*k zz%L1xd6aM-9&i)kyfBwf3fxV&ER<^&E(S77&i@(V0?;yun`Nf~D2h-S04wF-M&TWV z%e{(lc~BtlTEgXL0k06QU=`sC#lT7cLKkfTUMF0!CL6yXRWSw~0I1d4%9 zpcZfgnZQAy17J692AI$T0Q;;HxEx^Dtmpla1^@+b;E$vSFXRF20}Q)>QD6*k0674& zNG~u5JO!K!JO;4W9|yJp6Tmv4A7ECr0m10j6SOVD6qW#bAaVA&>a4%jcy0xl9&?6d za>79If?(g%03m?A?*ohgbch?%fJZaHzJEU81=#iN0A7n)ZUw)D7Jrz4aCG!m+9zQ5 zOpZQsEA=O`%d^XAqMzJ~gT2gp%naRUXNaU8`VUwzK!b5WwW1Xz$2?4?AyxO*QC)WZ=;@e zCcxP@W;bGHVmDxdvpUO6$H2bM-p>OHfV5e#8#AyvZ;i@NBA(eA%|A&U?R>n#uFl?J zYBMAQ%q;8{Z(KKv z)ag6#q@S?2$q=v(SO~D|u$FZda0hSVD&N!V4rIOz6M%mpWlv0CdUN8mn*x!*uE0fs zO9D3pZVB8PxGQi^;75Un0*?e94?GokHt=HLwZI#Jw*v13-Vgja@NwYpfv;OhtGHDX zz2b+|9cpRoZ0l-U(iUmEx$T{K&UwY{Rqgfd%iA}!?{5F9L)hW!$mj@kG$PHi;nKI#$WEcj?);zDCo`T+HtFC2&tytbrh$>fq-mOQcK?}LiL^1;r*|g!Bn)a`MskT?7ZNf3!dCZ{=e3)1iGfH-|v0)PGm4d z5+sokH78Ovv>Benhe}jpOi@*on1djOYA+#%#1MpoqzQsXDuWxJq$xqn!F6MZ80(9v zh)^`N#eTni?oIgKdhc87t<`ncKKJbZyodAO!`Wx=c&m8t_{jJf@hjs~;}0fmO~_6t zO1PA8FX3^*lZ2NmJFSdc_2a6F)$3Lltv<23boG_hHxrda>qM7CkHoOV35j#o^j&ji z&AIi?>l4;*TVJ&P#RjVlV>Z|(ZrGv{b+r0?qovxV5c|tHc!hxt;i zoJ0SuoWDXjNBU0mjY2tp=ey8%neSTPZ7AnV-yD>4KFawZ%K13T+30)8_p0v=t(+gc zU(R7(YDxk9An-qx^q>EGNe>JkIC9{Ofu#e>)XD-^^*{UHCIi)Rhh@ZB*)5+Mu+4scorEsdcGUX`NDDs+1C=FupOqFg`Ut zF+McjGnN}K87~@3jYi{H<7s1w@ucy%@u;!bc+hyjxZhZ4{HJlRG0&K5%*YGMOU~Pr zwhI`p=+Eg-=@04m>r?fc^fUFkDE$Qec>M@{kluOE ztv#uGmgX+Z{Wj-%Zok~_Ifk60IXiRGbH2}6oD-Y#VNRPI=WIiEQTCGTnCvmxb+TF3 zkeIb!EOcD&fpX~)eS`*k~h-mz665`fUrheY0))wvJoRZB5xa zW^3=QP18hLY1+ZGS!q+#+NU*2vrB7`nxDEmb$ROS)R=iLl<4FY$&tyU zQ@m3er&uPxOn#8OGkI-tm*jTI&68QOvibMT=QeNMykT?L=1(^JY)afTdz0%%UB2qH zp?pKshF0rS*LPlTxt=DyP5L9rkQAKMHOY0|PwOJrK3TIa(PGt!6>U~{t#nK%OE{Zw zCLuO{c>L7m_m`(EYq%_K>CL4JmUdd&VX4EC8*#Ve0^>f6^Ne#?T(W5S!oOl)#X2mU zr2874=KlQTd2G(3IfZj}&JLe5Zq7gE*v=NZ+4p9b&E6MtDdtp6Va)cJq?lDPD`S?- z3Z409^o|*+(N)n$qxVPWMQ26tie45S8yy`T6&)1aGTLc+kEwCfj!c<1#d`Ad$>o#N zCnrwsJlST_Uz1WMJe@FdqB_20qUGpC5or;L5vwDXL^O}^ig1pw94rRE8hm$f$>5y9 zy9a+cICzjQf6(4R3kOB^U)}%P{(=26`!(<95dK?uS@?zUBjE?av%soRLUbY1LPmv*2Mu*Q<5UKYCX8eBN`KuIH5Qy}EzY-MhO> z@b%!U!Iy(i2OkUG8LS4+48}G(L6t!_f<^}o2x=eHCa7iLiNNB(!-4w(a{`A44h{S) zuuou*z~I2Pfvo~t1Ud&)2RsQ_7BDj)DqvE;pa8c3#s9wlE&nV22LC+&T>mWpo&M?m zDgMj+WBq;n+xxfick^%JH#W!b6TgmrZT(t(vg?z1UF&ucUE;fR?b5vS-Okyaf9O=% zX=tZjojQF~+3`llbsZBrPV4C2k$sr!yUBO7Z@Uireg5zn;M2#asZS#x#anp4_I~00 z(EAH-?6mG}>uuHk0H4T5@-WOG={meD7FRj*4ub% z%v{gqbF~hD>;%|g7teX>`Qz9R0^I4>9ahWnIdJ^%BnS}e6G1Ep(ChgU# z)3gb80OjCwu^3`0w`!M6n7#mvSYeQdcwO`pv)L{7nz!bIcobjD3-}%W*1`o;6D1u^ z*D#P8*EZ>beFiETkU(jXkzG>DF%i)lQ~pn6(Bi|H9!M(@yS`dYD30+hwdXoOWd zB}36G`<3I$8Re>SOSz|1;`gUqjhJI$MjTy2m&2G9_+q7Jyn67);YBEYzU0#Zh?+GSgk8FwjX@Wn@i1 z2X-jJaD*=r#)_jbq7t+QIvrsSlv7YulR6rHltxogqmE8Md=jt<{Q_L0P|#G$Li}sQ z$AB9vutsZ40$`mZqh~EQ46WfJ%*XCH|8kZ43U>HJY`Et<&z70~Qa-3JO72h_ql9P!c0Wi-{wR zLy$47VS|}lzxNoPJsam44^y;%A=q>3d(YbHsGOc zEFVkk9qo$ehT(-*p)7Y8IZFBi`MkjNDRc@TD%Gh#)vz2VFU&0EFiNsu&de+>vsTWnyFI;5KLntN@SLUG^Pfne2m3Q zCXC6LiNH`i{a;>wK4AYIHD)C;i3QOu^9aV!3Zv6#-LYk@VHfsq-hkM)l&>1TlW zz{g^J5Q!kebvQq9Jc%MR@k(+rSw)h_W|Ben;kTa@6C=SKG_mI$crfq5KjVG*06q|I zcqspZ59eR#Daf-$mf}7cC}xnR;ugX+VkLAhal+Ow#93S>Z2<7Ze^*g} zLwrx;{uEBN{so7qKO?DcF{>gDk`{QF?8F279|PSX(jIh9;vV@D)8USwZ6-<~&qy4^ zWAMGeDMJrPb8!-KZsTaw^N@Lg*x>oG5>E&R?RPrifpa5|k#=G$X#`>qago@HD?F>@&;c<1l=w@$!Mf3nSiA(w#)uBY1qAM3=qgSiq=V@Y1RcN!*XhWe zy;`QWMKvR8`x7*_HTobM$xD{PQfM=_i|wM#nV#us3mgcrpMHSzNKRvl=nA`%Uv>hg z4A{zIko}Wb+B?6b1gDo^i~G-UCf881mz=~g0|B%L9e@?W*|b_IXT8~O9?IwN?Yz<= z!s4OjoH|x@M%MY&YNB-~>jG)Y7bH|*VTbi+9f*ETG-x3u@P?_%H2 zev7@q!Omf(!wW|j$B!K=8a-^%qlwYU-f4(av9pzPv~#6Pl8avFa>(Vp%N>`uO+RiL z)AXWiu4}RDMb`?~r*4W{W4G3B0dD==qTH6b?Q^^3-qwAHd$jvT_hR?g9wR*PDhWw3 zb(1WWSgn>lu7xS+4mD!a*mM@nX0VxT7K>rC*&H^P&12uN`RrTv9n;~{`Z^0)EL+4D ztNbkWQ`k&3=qz3hY0- z3Pqy;j%8776Wf%ZdlpU*8^)%np66)Dr<++aOMw`ym;j+8mM$|OO|UxfN|vM!rk1=& zAU2$)1PeTHwSSMsOs(dgqoXvbjz)B$GSzKH%)=j0ON{usEK~i}NV_@gVn4FoESK#; zB{;+mW0RQ^s$Z$Lss6B1+HK%Pc8Og^rML=1n5-zU7-!%S(~Z$w718?jApo( zet;s)wbHQv_d5xcon&X!%2FB}F2PbPG7H3-VjxeU7D}-uq3A0s^=pN`qkG58Yk1W8 z=jmYUTCM8U^R#J`+QdPI1?u`g**;dtepc&Vz|ORJ*s#pNjB4lwI<#vUlT8tq0GvT* znxKyWEgCNkiE+HR2-e+7nukot)*d zJOJ}qKCT9aZU6`+1~E;PELTZa#EJkbX2tK*spl`!FKm$tO?we5RzJQ(+u#_7(U<5{ zukTSwOf?a`2`qdc1S-6zHYbF#@AIEsqT`eXKVVrd#kVwg&xtPsbJX$Ww4DZ2G@zmZ zx0Tbe)<3WxOq8nK73yW3p)rCb-|q@ekg$HpuwsEdW>xBtYqYBtRkY~FYcvbdhZ^>= z8g?Dbk2K;c5QDj$ntq*@V*+*l4H`^eszogL03U-IRgxQRxviq2#x4DT! z4ANA;o1lEH&c8`pbx0!?wJDYDj6K>ItRMuF42-3-9qhGsm&UfRC;8`ZVo>2-fE{d( zuw$UN#7D?(z&=FIaWTJUL1PH zZMl7Z%YV^aioGd$9rbDj4N&l@s?%+p@{V}#+q9VtugB}5k#pm2>df0T)|1;on8{!# z2#SDE87Mb3p7qqmcW863KNw#4a%b)=QQG4!tAv6(Jo*e+b=V#1)dz0_VX!1tYKSEx ze(&JTd2_^Nb&!2NnMtzYeWzDb!JDhcrQT{*4ZV$cBTa}*u}QBT91mr{sy26_7sC|j zmBdO7v1Bw6o8j(U_9y>uy_yQ{uEyMj-dF4u^g3}TO-NvkD7ZS@Gho%iyL51?SDIc) ztke)oM*O5bCU`U6Ozm=y4%3;0anl1SowI@wGQ)U$5q{FL`XrQ^{EX(h@p9x{gP|w| zkeJT4gVOXsDfkLUL8Zc5{u&5cNd?Ek;!%QZH&mo|7#Gst290f|=4Z1oEYE?r&18E( z0w(kg8sMuhH*~o@h$r>O%kX!suEZA2vp?L#Ud?soqjvtJIk1uUsdMM|N!#PK+kR{$ zT7<(Vq#G|rQfQeb_6h_`%ry;n7%C4z{&CQh!ITq_aR|~R z#0bZRt~6d#BjNRs?@dt;O^NSDzCy zjVWXqsBg17wGgT5GGaIdvlb?EP+|Aj{aT2mD$%Iqg8*Z6S{?L69eltvzgcUJte2J2 zZGuqN%YUy+vX(tzPk~c_GYivXIbwU%RQ8;`V8659*fVW@sSaj=QknFi@SK_#t;q+S zJuIqbFY%!K!Tw}_L7*j`Yj@e90E=|EHKfh(_VhL0@xCD*oG_dR!l`By3}b@JhPu9H zCh9NF3*4f4TeEM4snYM(NP>wt{xl5^(y}cM-L>M@K-SSxqSXMfzfX>|;!F=)HR>U4 ztmAdzJ?rxZTxPQccFVq#i~o20RoN@Hv*^tT=%& z#Tg8gti%!VRPj+-i&q$Fy}&r5NIVgEKPsv)2KkdT5Y^%hwL?d<3t<=}HO4ngSdvPfq03ZF?UIc zHB?=~LZnZ{evHffz*K}WMm_Qf{aYt|+R_Tg==8)4U4M-98WMZevx>Irc1WCu{pVr* zIV~75&N7Hngmd^^5x0T6g4k(sQ`{2Ak{tkVZ579Be-g_%Xy!!Mfw%msF3Df|KHu4!4J4!c9$}RQ60Os1hiVKdG!lTtKc} zg954e253x4KLHV!py)gjdKNir!2Lz>t9Css9*O5rVi3P;ze}JghJ;ekJpts3xT^i~ z_dKCXactN%@I4eaNhigJw9fbY4fC^j5Qbo|s=)N$F&Yj-vDZV5Y>a^^!}NzAwnno- z(YxWUG3kb?fZ-3WmZ+QftVz5kt-#H(4Ol23bI}IaAbZc?fU+?tz}F;1l%NJwq8>~o w-WbU{!nFV{Dlm{9fIPVFO7N+@I0JGQ%)PWCEik3`5n}zYp}noDe@5H>H)=FM8UO$Q delta 9856 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 diff --git a/resources/fonts/subset/sarasa-mono-sc-regular.subset.ttf b/resources/fonts/subset/sarasa-mono-sc-regular.subset.ttf index b35c1a5d686df967ad3a9eae78e0e6f01fc123b5..327ce6cb2d3968274b62ff9382c9a9891fc3a72b 100644 GIT binary patch delta 58175 zcmb5W2Vi7nxjsJMIn&FT-h1!8W|Em?l4+Ury4lTcve}Ys?-h0#c9#{Gz6_{<^dd+R z904hU2#R{KAc76Wa#2K)Yr86vlmC0pB+G){`@8>aW-~3Bx4+N(eBXEe{x0X^zvtH( zh{0e;;6EmVQ7M+nDuMF98Cbm^p50a%9vb5wM%&==7a0s;s4_Ou{X^cs5CgmXEe6BN z92yJ9emMMMfPrm&0p7oU9X%G^bQ!@CR>$$Br#K4;*Ry+`b)N2LYtN z-m!b*982}uFas-H2akWhbMD9<<`b;l@c00{-?D3N=jKw!)LsU5%)(&c%sspJA6R;s z5d#50Aco}-{C(}`#9w1zkNzk1_YdtP4jg$*|MZs_*aN=@0sp%pM6Wl0i{3=d@8B%d zc$K-o(aSo6BSzOJuek+j8}G8#H3rz)#sa&u@fo)9lS_4Ue`7Dl+GudDZrHisY5bWR zZ8~`asJWm2JZh$eR@7K6ayIHBXY+2+w@_oh_=bi^a%XV^gkMZjQJZ0nXfS` zn`=BLiy9DPJy_>y>gSeUmBe}*Yhv3PQmG$IaiFoSWNe&@XBtn(6OBK{H#Q~`k>o5wqEMh$)8mrb(pC~AD6=k4aLMK{)X zu{_q$S2i~4m2J(pE5}e{q4&9_x3&s3PxK+w_^SElhGihy932Ru#)-j^#w&vxo9Ur% zpavRwukrrKb6~;mHyUHNH522X$C|&He23Y5b$Tb(?3uYAHQ$}>!J6?6KSB-Brc;fx zo33tHH#ZuOZruXgKDJ+$-?elI@A z$bh-hCZy(Al~w|AtPwVcz&LP^?Q(~Z+l1n=R638Pt?(>7&f{ro(i%eOi&dqMUqSaQ zE@5mIdH`X3m0ltB8g*-9NGwRrDx^xjSS{z0H%fXA&vGr|xqVp`lYAF_k>|!^hLC;C zWbXA0dkoyG9-dLi2@FF_saMRzSsc;e*}bdpzC1?Q`H{=-`TS(BX|nO&o_iX%@4de< zu z{@dy0@tKl<1VacDh`%`Bh>2W6&ymr_$wT{^e?4Ty>WGn8`Z}6m{G7pMFjyc_+Jvc* zG;$snUGQe8rec9naCq`ER{^S>^8Pi zq56uyD0xjh2dg zOBfr^DRb>gOqMGsi(G`EaV8rR&VHdE4L!3KXJJ#rPMpa`M%!we_*;@zwGkeqp}QHlx^fcgpWlWwfSzSK-)##Z|A_5ynJ)IGc$E2rUoe zYXto)g{&r0u#9<&7V!l((R2FYDQ{kD5xAx;?)102s{@5z#n3yOvUNAp>l!aR;AK)%B>;F=Nz?y4Z_1iP$Zd# z`z|;3vSVsQ|uE_rRdURl2YahAoE1I@bI0lWLF}U;# z{HwT%Az%Q6K(x(qH%k?x!Y+@J%kkLK8?>fF7s9nw>FVdyCvb>yJWUw}C)CM=Pc$fS zMU(o)GiskkI~o)c>u@%%vv~BD33syK9(8r6 zJfgZZsle_qty`G0JKY-=rp?0$LDfm^jq^no;%b~}=q*?8dC{-?~Lbmb~ss2xTuc%$; zoUb=Sor?Q~0|GbbJs~m~`Dt-TahJ$q;-w@Z<@^5(2DKw0fp{&>#&q^}S+EumYL%K= z#8?1Bl$3@b7=o{hfFUe|CsFW>EE^&v$F4W6onKEGV)GjF=cUoOLSq^+7rg#aDrGYQ=WSHdY>MoG*}DY1@P-+nhdoO{X<}5^N))Y=bdwTly|Ojhi49 zD4a*7fQqU#El;~$sWhVPgVc0}B93{bJV76V}L{1p7T~vsqQBgYdVh}<-CkD*l>$S~#8FAALM5lv!PN-* z_%g1g(J~k z9VkJ#JA|N><5W0cUzT`8+P=|#gGr&Z*k-qG@>C=?xo&WEeU&||cLWVXlLK0@m52RO zWEH6LJ$bd(X4e}ARF982x+*<7v5Nq!Ke+T8ya#)hK`?Ak23zT* zB%uDe+*DC)`2doSZWO8X?^2icRj*0erZOO*lJ;P!1 zSfdzpWhVKoDPw4>D&>=6#l{&|*$kg{%hGH34DI8N6(6gid{I88`d=yy1uqR6(~eyB zGr07ecQMMlY?~WpRN7;^2TmlIp%Y_Q-K(!F`**!GYGR2v6Kt(GbtujY?T)E)27yZ8 z)vTIvunnDUGGn)H^{aqZP*B8TuaWrW0{hwkS0f!1DLL7l zZbB!@u=zZ!2fz~MzcA0`gS*~Y`WAi?7cwlM0MuWcHc_3H6<_Y+kd-bs8s}gblZmaX ztUW#FXw&u0UouwRna7zp&cX%JgzwnpXELKb9kYp|W1!m?*f5g0^6YW9A)x|0tzY^k zemky#I#Ga+p$mJ<6$n5bWuG{KiBUX@RB?zBKdP%$fFdv`eTXXgEi4g_sogfHgIGow zHo5a1zCfI`W3h9-=VICo&J2KlbsMPL>~@xZE{O_!P+abI6JG7@%}QU9&i zccKF}Q(H8Yte{!MWTI|`lg-j;IR#Y1@VgWJ@rCt6y6(DqvZ#0UrDB62!DbeR1$GK9 zy^G(7<5XXh$5NeGtA{B$AR%QQx}Q-&t#q;NU`GnQ(oGjqmTB+VE0Kiva)RoVelNoDRR~A5`e%l5Yy!|Iwp-zm2_y1w0eUryW4Fr^5dzb-No6t& z0LH+*0N)YUQZ1zRY_#Ck4LjniHpitH+OEzj&|h$zf4SPNmU`8fa>Sggr9qL%FS!Ez zhz0@qF&#r?ja9?qU?nz(FV(IMvnAa4#(sq-Q@4vb0`>&XWvQYg9jc)XF(J;yp~G)p zdL6$4*E2*AFN5I9JSYdqi}ol-4JeP&cDcq;@sB9nPBpx9089zGQgKGNwU&G7qK0Wb zvys4R59XQ-gzIa=N-qjRC?wj?1FxqN=b zlsX)A6C4pc>bGX}xT6jIlF4GS`oVLo`{Hi3U#}Qpb9-yXtQj4`FsJOoy2nUTfFweX4$w7tiqA-{s*&sf7vW- z*1aoc;nirfkosY>#yo83lE-3lP2DK#{akf%1*OY2Woc>}mUJ(=_MxaB5`feSe}0hnqZ_CtnmrPatG-x!5qq z=1NOz)(3j)n>vix815aqV0`fOCOwlU6cHQ<|DmOy;J0Dl0|DX;sQ4{S{}&-xAAvzb z|2Ls7sS8aeeq8EP-zKzJ1PPg6ja|DUD2I1W&|vSze2Qyj+(hk5=p4E&Z-$q z_l>3h#Cvf*Wja6*YACy4Cg_8$N<|lAcme{GuC{eZU8u?^VX9ce8z%HBt0W+Gscc&h zM9V{m52X+7aJSt(Gjr|ux?x+t9p{gJy4{!vh($_Kg|8GylbzP!rnY=9Pt0G<7kk(A z4P2DT-!%$=aR$20UAPS<1SKN@lN~ez3gy6T>1qv$P%D#iqK?dzlu%dP>hq>as@A|$ zIEej$^e_U_W5GG_jMDgF{ph64>zE!>li!S_)5UByAMJul$ti4c`z<3;R`aoVPqLP&H6T@K#tHi)yc3pCyB;nJF5 zgN}*$racf&$Clo}Pho$DwrFMmF$gNRd|<0DqZPWEet=de#pw>Mrq!o1n2q@HEoo<{b94_n9PV`fehp^3U+v0O}J8dIoi+$CgMxf(z zFsraaG* zKrTSQQL@4O38p*`rX=O`Xxj1)2O@JhI9pT)P!2G_Qjy64n3)8p(U5?##1vp0nV8QP zT0~xPdy8{7eBzsuBD+_YoI zhL|7Yp!NQdfPXYNgJIbFA}?W|-@nsWD%(cE5#s||zK+LHfFthMoIZMR&J3Pde2mKt zI9=Y3D7M37QgqvyLe2n(hxcFGsVUog?CmP0w-)N}>73$aFUw&}ybr+LF_B#awhGr7 zGW;RzHHMQBVx*Vr991!ZQJ}u5(FDF-%Q%PA8uUMCcwxC!p)XdAf$^xRR5qJO*9N;> zqr)~!xl?U+>(t%dIrG8?%ZjbY0=8-X*b=9=D z>R7$T?HujbIye@?_@r48kf3*EZ8?q3J!R{cwzX>vo(UU7-eXJO!#4nBBxH;+7|!$E z2LiSOxklACiV|uEFE2wj8mx1SRN_%BxuqSdFPEKV&$_8!bfdqhquNS;q2})-UvR8j zV@(C@>(^P3b!NRagaKRw?|%GJ)P8xj_p%}?f4su!**$3p1upEvYy*WI`!3uO@G#qK ztEU~GXR#u7TiBjJ+t@s&_&A%3*Vue^MdXATT$N)h>%ANy^I{=R@cVc|>_%C-T~qOn z>GSq3Z(p@I!TvZCMlFm{U3vlk0`@MW#+YhF^m16zS%py*d>MzHBgLQxQ!i3=1;RYF z(gEQ2s4PTonh;aP>l9+a@L`uWoRnlm_aA)_>*1V+i?4Udlkn20#>Avw#ZqTLG z;&fM=RN|2_6&|sov)C>%Dq{e}2&Yfke_01WY=D~N;okX_LnGBoWKJiBCD#WO9_ggQ zBcHoAmA0+flCsA*flX@+E_1E3cBq2Y+b;|u48R32IzY5QbRwMVY7d1?++Y(r z`QZ*d7*g|(8)~qdeyugCV5aQ$nA|HCbFs*oz$?zK7lu>@{6CuU66rR0UU3j)$>>VmMo{8@vf__an|S0pUj!A4|1bNCSB12aGM<_BX`p zyOOH(-Y_$KFfD)~WDSdr5!rb^7MaO$RPy-N1QuN%cd*AM_FbAvPbFfb*KaKD?q)JG z+e7GjshssFOD60U%a~hrW`eD-N*CCiJ|^o?Hm9G(>TvgtuN#Q%2+7)Z7HT`%{2NA< z?RJ)wn%*x0MONWbMqR+jeJF(i6CjQfLRJkC4YIEk;18n%D8b1NYNT?b?`fjifr;Vj z&KeY2&%%x%9@w$X%Vw^>Jr#+3Y!Gt{_mp;YruIzweZYe#1Ex}!Qr|8Dp+65J!Z1N(6Ge33 zZVKGzAvtZI3DdX*9-H5O`gjtV~3D=G%8Xb1Xb^ z<+gT5IT>D64zOTxY=FrT5C9htu5@f!u)Btf-til^UjFF3x+;uLo|+lDu-q}bGiuDZ z*v64)!11??N;lsWLofZc*F(#JfD+ENct4kx~ z<+c@vj}(UU_I5{fIHF#aiw*`us|)SAd}mrFO|~VZ@C#75Fp3IGE&UkiQ5}tQAt)*J zsEP{<5ilOn3W-a(OPT|Al>NCbYDXMS4CHLkwrp@|9b=Ooe^=hOVSdILaHXfBo#|kI zUr=Nt2&*vCH-O$viaie~es`gwC=)Pm=Kk#wvw~Q>*Bq%lKIT#}GqlrN& zO{vFBw;ELaExljTGcj3_i!6c&U&nQB*yQt8O=A~TE_mx6)#cyXw{Lx6Vf92f7ua=h z*J`bLY-UIHkmvW(7I%NnE)-kg;yyc1Zk)Mb(aP~t_1W%DnzLQ=gzaJnt|DYagan(F@jt*l{{NzCEzT>9mD$2nxtM>eAGn z^)+QgIoPKG(eL6Yxwef9o}_+c!pxoq5(R6{-+%SNNC!tP4j;dMOlFsZ882A+JWgPn z85#;P16-!M72-&tTTw|Yh5HwDUwYURS>3PAJC7DId@Y7`-aUaZNg}H?mU}H7-uVFe zX?0Rq7bevxW~=JpuTH`|H46-sav6ui*v|gYADuk;^RdCJ6FvKH!to6lbLeYZ&{q4V zMD$obe`JANW9SkS1q0d_oV37S8)ta%>#&}dwm`fdy$%D%OLN2veu84>iw=06`Q*87ShD|}G#HKKeOfa!&DhFx7 z{}Y&HF(U~d1?f-yIr@_*P!(q@)s%PWkEFmDWYO{fpTw#7o9w^h=sFYmxHhC#h1F;W z;4FL{8@pK%6HCLgTOrA(-Q!MmiHqWnhfNVRL-UOf_r|D?668Z>TfzMG0b!L*x}j$I7dYjjAXqE&3s|#x!i`l+g=y1BL=XXCKc) zOPwD3c(U7ja+s33>*7>AapB1^^<81Owy1_qniN@pfyENqyOFKwy8G zO|Up}A^M>_snR5+_i+bKOim~RlIZ#(XNjT64!760poWT zb}9)NI(jY6)B>h>E2gQ+1Ulo(&!V6z*O``tW$9eIYU^12;r`>#aAmdUrPafZ<4a|(-u)9Vy19w9pXl`m}@-TY+57-V5S9t2+b#t1d>t$g ze-7{umm!7a;Q&P?e3U9^?MA@e9~P_Lk_&TVFNth+L7P0ReUh--g>8zcj^wY1n$N1X zjy^(5TKM{r*rArBX-QB!JZ8q;mZh^m5lq-B(sWj>gPzBuMK2Mqmgw#N$}`)>Ha%G} zMeVfc9=otCOUA_vRA+300&xm^fht~fs9+pZi}zSbs#c?cM@iUaLA9DRZedDT(nO~t zxogf+wyxP6AAWIn*U0s!;xCW-QB-`eAj*=@awYN2W%yyr>SlnXQKf+l63o z=T=WgaA8Yu^3$<;k7agmn|s41FCe#R7=pRr&|$zRPvRrAH7oyWNh+MdqyJAavA@C+ zIxi&-D()f7^b)$l^-;m=|3-3|?<11qA;>;hFds5zSJLovY(3w+zhioD zas$Q)>*OS^6 zNzLz!R>kB)k<;Tnll2KTSHZ-kP>>va58omz-94ZVDoTowwstz4cc18W_nFe|{e@5F zdalSOQuPahL`V*Jreo=8D5-NlV(|~fFE?T*aq2lcRM6T!ZY&=!Jkk$@oJhJpCVBapNMn-Cb(#n_&jiTl8 zl}^>F2X)+ye#KU6l&l(40pl)evN*V+m?}Lu-km+X-J7flNG4Zf&~W>m6YRL4ijn#g$iV9nEu}c{|^-iUS2g> zmVnfh;3c>Zf-A5xwXtToADim1vnHro6e#`=+9RtLJK7_LwR;U0StYu(jYy}4RU*3YvXar|%z*w>U2e-Lx-p$+RVUrg= z$Hb?I@q?!>Sf^BWsMT5ZonlWgsF+ZN{7w=1n7XXhbTe?|1;$|k&=S>t;{RGO(MLZO zcQ0dgtbUEiYJ;{D)IKb-+k_cKSVzv{tc^Gm1lj7bdp7Ub>|tD|k88>rkPR{BVC1?Hv|rw(Vm+rnjY#Sg{9axhNm9^Y zP6Fh(o5kD+?VhiV31L1U|CTyBKX}y%@+XG41hXRMrRtnmoL7GgM-v#@_4sw|*`A-? zh%gBFA=svJ3vLBww2Pu%S}Sh!ViN2sTOLmUb*unKAFF;2@}856hP&JRef{A?xK;~o z6q$w2BPD9*1&CDs%;v~d&liJ3d8x2-a%QqqpsT4hRqYEftEQhgV8iT|z;F}1KU~EM^p&C&n zl1gQ;?iH;TI{modU*lPlxcGEdF7Zg!wW-yv(zP9qd}DLs&`zh`vEy(udeH?zWBl;Z zWx=1reKh_GQHF=zt6)ShC}rG4{u~Daqt8cmsDDHWTR$ZE z|4WaS8rT!`@4DRvGyF33ZR#fP_}}!Xf1n6roLzbwUxz&hMQ8;I(V;>QxYV%S8tYoq zHoguDwZN106raAVICsrPC-dXAzc=! z^z@kziL`A%Y=pr!-4dxL;46jT*0j)Q;MZOFYH1ku0Gj)CkMp(SmX!WJO=WGeCFN?0 z88r3)BMWbnE=&7Eyc66_ZE^Y^T@A$W`7_#w?3Z@oPVh1Ksjhd^j;7tEkYRjJJ8jWx zAIm#ZcJ{wBsD*`n`(ND57OY6_I5zx&;8H-7NrnNxAGR_GVB7Y;NDS*AA26`6&z?eP z|I7Lx_GQ1>&#?~4 z4i@awhfqe7l5jd%SC(wO1vz?45sCQ3HFSdTM38*RyHX{4S0!NCE+p3l{6IC6MK<@Vsr zAvViJ6xVK=?iO-kW@EwOkXP~B0OG^?hZa_x=2WfhG!6NQW>&<__@CB(KEFzr;i*U4a zM-R^^Jsu`L%w~f@)@`h>?H0l&TEtj@ndf%wL5kvYhTzN%)O2v|hq7jc_-K`T^i5U1 zyIoO`=c~5b1=Cv9?1iTejf;(0u`;a_jUBq=qK#U=s#C&qY`<*G)YYcwmE}sesxxh2 zA|Z-(nA7zmK_*sT13Tm6GEw%*YdTFmd2Lo#?gwf10c6<*`!(#XdPHT#xf2B+nIvG> zyVk#HqdQtqv4r?quAHsyixn?QcBT&$%FmuEo%(XkIXfT0HtI_ibNTWvv0q{l1ti^{ z?oA)amg-%*(-Zd<^ZDDSO_hoXKKhlVufskSCq<{zgaM5TXgV!PVOFSz^c+e9S++uH zU{Q-?c8Wl-zak83QG@)XE-EHsTC|N{S-){mD)PE{e3w@w?OiuFs+HRKz}ycZa+fA7 zg!LEv^9T(f>>hY>kltCzH4?nyhTYr8l|r+?LxGAbmwtfn0)k&d^)_m!?T1k`=X_{S z8*15Ws%2vKH!w6v1~+dSmT96gSwtrt+O&C48uenAGC6fjQO*o~aW=pG(XLR3NI10X z=$=urEUC}b?Qmj@hH-I^p^1nXQ6Z~D*brwTkGK&^9jFTI6-5&HwMchoXxD%rta##u@On_A_pQ_Gy-Q+hOpEp7B>g_h*7 z|5XU5Le?TYv~AuM_U}KQ6-rqo>RhdYU2KSnuZ0y2j*zcf*QwN4_{EI}4$jv^MmL-7 zHi~*T@7pt*=P0XlnPPV9gpng)MS~aj+NjMWYMX@TQTz5?u+ueMzbXMS_p_xx;Fn`> zQQ@8j8CNhm6sZ)ltd1?R|Dp5m&67PU??y7&0ubs9xRERU%) zGlwtQGbEA~*6ipgAAKx^ak*fGvw-Z@LT(4CxttClny{x_QHSt_l~agcpw2PsqdSls zNV02GKk?@2X zbe=~;_zCm~bx!L8b5q^0m6`MEnomBy`^fGIS>2VAh_g0$baeN)+}o!{k5HSXH$Zq% zI68v2k^j+0?(6FV%>uA6@@4o<0ku68 z4*JoWQD@^oBdMKQ7y;A)M*6?Fg=Z3OdgPiY z*@J!-F%+vsW7b&itDx=yLt3}E4GXXOM4E7mqF3BC0Rpzcxx$Cxv?_HJ3O)t|q|e#8 z;bTlF4Io@Jda&w`O}x4t1ZJ@sX8EKBy0Ir4^^(@Oc(QdokO5{l=hEmfwdvV5_plikx%U9lYc@AZXa)v{HNfD z7FI+jilTRVu(1jfeBjE^Jf$Vhg)XP!0JGfsNY-K3}|iZ?*= z#Nrw(Y3tN4OTPZh6LO3ZS!&|XVDEv*05GUXX%KtOb({`IJZ*1aUt7#h;rq!qWk!zO z=j16BJVbaUOl3I0@kYIzU{vuXj;U++Dz-s1yeX|^FJbRhzgr`3(u;M21AIAia@M7Y z`qBKz+2b4SB0Jx-de_BeP%FH2KXAEKMlY2?RDiaE6sim!Z)o=_&dC4WmTT+YJ;~7%!}D1qoBSs_`)zqZ zCvp+?v`^U2kqaKdtDmlZvzPp_N~G*6@FlGNF^fFxMXuh9w~w1NgiD~UPVdb3e$zi_ z;i_2vU5649L%XS=x$Lve=P#3DFrrx@%g*9Su$~g&Dy@ptE|0fz&ECp2STdts4>?B3 z9)ZO+y0d-cV6PpXrD^~e9UJNG{cE2}tzA`OO1Q}hF(F)>VJwkPqbptoqUlY<7D@@B zsjimyIFSI3;E6;MHcupA-6Qapk~|X;?{Y|)yRh#rzKUJ*{u^!=pT`mhB~)V&5ZLq2 zJ=a5iQJ>OlILB`sl1K!=N+UQr1g8c${QQL*doMc_AdFn^zSCD0K{5T(=RidulR(8D zy4tNMSf@|zs$y|UL&`78xY7=XJ0L|d_jxIqwkPAs6$kzs-N;Ka&UNwUo|C1raBxc; z&FE^LO>wrC?-{9Ro_jeu7luP!wVN-)US9kmcEz$jaCSFBse^~w#CpLKs0(%;S3jiL z`HC&q94Dn9RA}l5GyFSuXqi@@I^b+aNvqNcH*BG|_m?%=d$@#`nji?#`+v%-{rqm8 z7hS&4uZpTW3A3I&eP7>0Vx_X&h6y>YfD1$Uh(%`G=3HN;~dvs=#))&b@O$ zk=X5)>npV%ASL;`#h;j{T1T_Z0!9nc^v|AIV3U4gQ(5llfboGX{DV<$jBAjYVS{9dt4O5qM zO~UE{zp(?0ILwuzHlQ!}6;-*50s=eVy$$L1?l5w1`SF=PiCjW0HcLDNj#zv__k~|R zbLzLxltdC>iK(OB5942fsuiIif8*FO=+hKzX_L9XvtruX`VsY`eM3?j% zPbaXOuDIe`XV1QJv+fk|0SV|&Ux2u!06_?P)F_Cq27ZGsm8|oV6N(QdJr$hv-cOD- zk8mrsnB{Ez;%0q4ZO0RdzNcP#c>@x#=Dzi{hsdXUWM*cWX+*^VWmNq@Z81~1jq6er zlwNK-dR&v}B#-qTYo8;-n1hJ957vgC-Xhd-_kMF?`rEtMI>G#NWBCO)--pAlIjx*v z5-t%Fwl5qL+s2GC<3vL39JIZ3*<~*oYG%2)=F%%%v*gKzihc4z+%kMT?2L#+9;q}R z3gu*kS4hO1zAZUsBXix~o6+m{qUN2S_zh}a{;8)>vvOkrHO}1hxn|p^cf(abZoU+2 zL~q;Lyy-RxTE}A8mL9;L!@HoIQJ`ahF$Wf+payjVSo*IQl(4zMLNKk;2eHq~amaQT zg+W)EElM|@y-ijBBkCrff!hV>B{H!AJ4DU_O$cZhait1EXpl)#M#SYB!h9u*-@Z0fObEyDJ#jw{F?7)tJg2P->v%uD)j?!vRNv}{>Rt0TYHP6Ix zY{@+-FiTN;^}FA#l5d8(T?1wao6ypOV3cvX++~5?n*eZguFOFpqYGc-^_z{2`uF)< z*!m1KhE?8}yG~yJWzn!Iz;}v5!|3fcTd7^%A?qlTUl(3E za^0(YSSrDm7bZqCuE{9ZDBOD&mfM(GVTdE!$W7h46>zy7Mjs9IYk-z1_(ACi_;NWxP@3M{Oe?oirR1=D8gJbD17jVb zuaAkXGQ<)^BcFWY>l;`~{`iB#$*#1eq;H>hlE01~Eb>gEqmO)V%;fkB5lejTjiu8} z8Smo%-lpv|=1oOiVY`!jH-GaC#~}RFt9VT&b4YR1_{ZieO0h>MPPrpaw=ANzjf6Z^ zi^$B2eVqJ-%;{p9ci+0LQ=*ah31K>-O{yF~iaTes@ii`}Z0Q@DpS}Gg)(qY?jWy5Q zb34}b-**&m-2K2ijmCpV8={Bcia8J6)a?D77He#LRpJ^2mU?XEI z;|T5T7M{Z7t>O$0UT$YJlS>&Yz06&~L5XwwcBp|q-uUUy)b*8qMqp|>JP@_%?A)k^ z{!%pbjd?jbo~yt6I3iezlwDf%^$l3L7{MXTGErN}Q1;J+pR{$G3sX<5Mcq<|ENkgX zN%CBstZ9GZY?S7 zaYw7LpBp-9cO9?le5;1c0vlgn86YPGei5cq@_a^|&0-4u1f~%4lf5o;blS<*B@K?= zi()dhUv9Dv_M4nCpPEql6u7#3yT57@x(L@qAg3VQLUF>?)*Ev|`*iIpFgdIX>VsKh z(TxskD&33UL$B$h3PC`SxDJYp3h>htczL}=Q8U}OCiWevt59OK0 zi07dv@ByHwkIp~nm#E%HK8pIt9q0|xiY4ted7ID|e!OBFSsmnPc%G5+EV_<7g$*$r|6+IgYkRdxySdZiSLI=+wjAZoO8p^-_@|~afMD@&>Gn{K=G*~3K z-fq5-e+@1scdY*OL94(m$^Yr*{(El93oM-2!Q;m=h#=oXY;up|$K{t^Du2UTgjBZK zcsv#X`=+RAo$CPKS(YAZa=&ClP5(0(u$>G8J-b$*V#cZ6+AB3u4)g$c?caGWmIBXF zUWI?4lC$+r01qEf4S%ggjC z(QJEGgf%PAJ%=@UFHE4u>{tKRT=lhopytTet<1*$mp)Zz!{(#=U}eHchrI~a)5G+( zKL}`P(yqiQ0?1AgI?!{^5APV*Xu0&_(2uFB9a+)nQ%^lrK~-|8g0soDkcPY!-7nW@ z#|xO08yypA$sbB5C%JZESD#aW=E%1&W(2l1JpUpRJo_wSF5W+b)gS!x`~PisgHt6w zP+9Y{)em+HE!@b#i|W~6$lPsf^1t<6)cDD_ml{9$&R2k12}9C;1Ganm0RpxG=USjy zbhmd^!F(^7mU}S8d?v`h=@bg`9bv=N+t{v9yTD7v3FQ{DV8EG4(jm zsfl87f;=8t!5F=Fr zJOQ`%SN_(Ff8UL~7zA|7n?`!E6mSfs1{Jtav_a^VLex0+in;#Fu2ToSUF9dHQRCX$ z<6M>B!FLfMpOAdF_qyvuUca3a5hZlJhN_FL=GzJ>$yJ}gek`;&|Yxd=r+qX~Xfu2znSB1Ml;>Mk?z0*AVgD%X#WSD@ec?Dz~gG)cm zF}6T?i$gMlb={2bH(q-qU_?C{C_|hxOI}@`5+LB{tdqSWDSE+9Q#f!$;Y*wUW zPn`_vE~%dY{%dMiPWVmIFd0W<@#&vjhfoQjThO!X!h~L+=kyDs=@7qNJLUvJ?0ch) z2talJ@oS2e*ItwA`zCzR>8e`f6btl3Y#m8<48;{fh?&hZJxBaP2hUI%@?sU=l*_e> z{OlQ#PBgJfq!FC~BbfkoJl*`^kKV$X&%OREwPx>v>z_S?*Puwq7#`|GGexP<$P<1p zBMRIK2lc7VBrt)2J#4_1P!uPI}Bnz5*mdpOE{LZ5i{80mo=%-h6q68YPvTyV`(=}CkxjPa&5%z7l$`sL!Brq zRfklC%cl5dZpRnNpU>TMtT@yKo8x8%Q1QagE^LozJ1mYNzh?cAXULwh4|{T(TmmP* zc)*r#Ui`BZYCitP?Wno>7vI90?l%{(=GDJ}YsCma?+5XlAVgY2h#1H)JA`r@oI|Wp zM^Obt= zfBHzKt_-*Z9ekJn(`DVDm+ut1dog}Vu2lBrp{)d~LZRTH?(W6={QhZOP?GGZdV{k% zzivjOj7Ak5hKdCdZ5(&+FMoB6u1kVd_N*?l;5#08ECpQ|;{wBccr4qciiSPoPWi!QK`&C5GRsaS@; z0xXgd>H~ftW1DdKW)pyFTvhAA`n&InwcJRQFOhICkz2x4_?#T4-^uZXWsh=G`!;Zl z!ii0B-p}9KRvUn8`0bce7tIk!_gd-DBvEwa*jAABW=kN+KK^gvo8`Yp% zxei@w624O)Q~xq9w{g=P>-#vtmN-_FDL(uehv_)^dj}(OTsuX<$)vZg04%# zED>C8-}=~v>7E#J4+R}A|AGd{_ktk7 zwChDV59LUKpTLb8%8$m%Rc$;=+2&gH*^*KhQ;BT@6}=pWdZC2Rfq1vUH1!xbjSDzH z2d8Z)-gW!AsK?;)iXRPoKtrvf0Q5Sbt2j&)bUagNk0K}_^y!pnCCkdux_`+C+F38O z2_$$2xaDvs58UDs$u&Pq$|$#3QL+E+x4%QyUC+M$`u*s>D*5Y51?k9NlP;V9dP5_O z7}8lCmo~pd7;RG)ZDamj3YVl1JD9&0%-=@nRbYM&Yhp`A_a%PnqL9!$I2I7}oC&jq z%pFL4YzP(cuMC)?2nziH9j$LQYr;R@cNm zMU@tIWLpQSIwjarBoT1Hf;PYwFTr{Z2QUS7(V;S2cWZ`D07!Q#<(+^XKHA9OtfmVf z#5vrLCt2sG2W&4sFFoY6#gpee@c$z@AT`h(7|}x>>_X`xPt4Nl*?c|=37iBju^QMm z8z*Xgq$KhT_3$jBd=2X9C!jFZVTG5=pYPzCrF@4_p?@hRb8=H0`&Hj~=bg%%Z$3{3 z$vOsA%BB*A4JoKnltZ*4fj{#9k@g<&ZB|$R_`Q#YwfB}hG^{OKk}cb^y!Re)?8LF- z#EG-_BohH)gc(MHSRr90lsyV&wd}UcmQpCI?6#Cu3WW}^^8a4R4uQh^_Wl3z$ybs! zp6A?i*SY7Od%l`_Tf2LW)}^d2-jFze86YON=mc?j&seF6{`RLQofJtwuR+*HOswSB zHd{SqG+O5wSvb!v&6PO&2DJHX z)GOy>1gi_=u!fHTEYG0qU0G&pIk!?$&|oi^dsB-U2OpIAZ4G8kxl$t+-CcHU5j}7@ zy(X2Q^pltnN96A0J)W5*%{cSWgbr|ScAh+Ojhx4#5ny6q(NB29m9N}v`C`Ui8;7O`1+7n z6iI|d7~wnWcb7*h4|nOEqF}5@s@IEQj41hrBEKkF6%mEY^c_uSPMLYCoTSt!7Z>_f zJ(l`{H&lh%YDnyftE6Qe9#eGO zE6YuoO?D~Vb$K$YB1e)Vob+<^Q<^gJ>5Hk4`1GB65tbgeAT&6eXjuxE=NhtsY$0cS z*VN85`EN}PW_Dlm+%YrScIeZdS?A)%#e(W4yNkN zxW)B&6$6D>v5tQTcOXwk`X&)z6LHa zF>z?g5?Z}@@%ws1RA1R#-d5fn^PfJzIi}uxMI~03$HfXkeXF%F`by`?<93-{EH9%M zI90InOoUFoo&2W!$5V+-4H8TOkUxcm9%yPtT1vsASuXk*Rud3kMCr?orH@+DLK;v+}6iS&IPX&L={ z2L`}m2=j{*gkcM-ak4DCbYNbB6UEVH?Q+BP1e2{UW?5!3Zeu^dDL_BdUUKJ~{^T(A zrGHQT>6iUX8mMn+|htmJP z{&8Bumk7;ff!Hj;i8irSA+%bBk^CdZ+NzvbR!p5wB*Tr zNu{RR>#NcsNwlOBG^nnEk_QnKq6PJM?XBC6V|86_$ro6xqc%JK&GScqXy>^k%3& z(<6qd9Ht-Or|s#v3M#Y9 z1^UALK()^-M0k`NX@DNzv65O>pO-W1Xd{>WUiAy|Y^@fjr6X<0Gy~{ib97O0%gHZY zHPkm7na?}sxF+uY^z4@6#Z%#2DsF1}hpQeZt}rqBpp2iNpbXYr5z_F#G}nv~a^moS zWlGlgV9%KW7Y1bs_5^29NBT_$A6=c^zoEkDmsLpu^Qr$Y_4P+NQMakgc*YwKKm75> z?eD&O-+jN`A}g{~TT5i&cS@0_@jqHXwv`__vVc3u7MO2u-q&(v%WJRUVPCUz#BFtt zIm`xAO)aum`HnpR+qdU$@6BfVyG%x)wgO@H(Up8KDj>s!z5jv|}9x901LZN!4 zO<3S{h*ZiPD#ci*aodINqC#PnZ=hVLvuG;RHr?e>d$LwpDs~3$FEs_7;<(5jm@-h; z`*n5K@1t*1zEp+a6rH-tPQ{}9GO1K4%#n%tXG=>ahOpn$J1-=DdParM*>l^iZfjS! zEHdFJv<{_D`${iUm%*UmH?-OOiO+Ptu{rkK{MqvsJ3Qls9&=4y$m$wO&a&s*XU#2} zX;wW((UuE46iOK~8!26K1OV}J#FZOI`}gng%L>HK)u%S$EI|;%&ST$eRLp@{oyoF< zVdwip&$lCC`3c4=ucSQ5%rraZl}zvmn}P(Hkgh>m$d-}m*L~P2y>LUOTS)_>H1L;( zhNI`v2int^(`g|6QrF4qqZ~})NjrZsYILT+^aF$?al#l$*56=tm@5x8iS0eMfzB+k zZd#dvCJML({>#nN~{`99!4?lc))uPHJ>0@}{{@I#Nn4=q3 z2dvtFi7guha-<~p=4Q zFqxo&O#BZkFAKcTXWyIIN*l-km71jmPLWv2Goe#=Sga`NSKmX}J>QxN7OI$$ZA`cmOAMbDaBbM|S`93{05 zFJIzbw6`q3M1`}UrgC4GBgqSzT|>EfdBYl)wGR0?&2BPw%BTm$n0ExDVUeaq9oPj3-hmH8ThM4*alSj@A*p$`;RJKKsIWwbJ-G|?|6 zd1mYz_T&&V8p^M6?n{jLA~y+U*199;OEU^#Ud-cthnf4V@4#up#V`!m(Keu|>CRG^ z8dpdrf(1l#x4(bda5i}%LzBN;uE_`2*}joofimMUGx4H{xOo^k zD&qMyrOIkWN%di+%Mv|pZtdP=Scnb(dCM2O#?Q4w?1d zDs_RBTCO%?w<0Ci>S{x9ggeS4%12VE)i0MXKXBl_=Cg%5h4UvgPiH>F6Zj4BN;8h9 zCepu7|6G!b3KC$y7%`)$dZSavs=h8zulRS%zYQfiv7sVm(ngS`(HzyMd#nW__zMb| zGF5bQQ)x-t&7R-3l{BU6={GnWF0OW_6$pYy=G|lWL22$x-?3ueA*bn-z*M|Z6bJBQ<+}uPj8@PoYro{JDu?9af=R-{cvf!V}ew~MD0oL zig03UVV!;TOLd;LC0LM`E>Dlg^QvR28mO3C*nGhS_e`z3WAEOk>#n;l{lva!sq}e; zDW^ChR?9d^o}6#@3Y|fhu&j`tcJXhh>bFX>u)yO)b`(yMFBjN-nEltPE*|Kiwu_|@b&HhP4nB6;+Sq=*b-DBGXe(9VZv#X|z9 zlBUf0K{QM|YmiLY(?j>S8v1XDBVHp`bm=ChSz-T=_%KA80cHVjEyOV3^ z-!|>t+js%b8V@6G(;qeQb|)`=goi_Nn*K zzGjM6bUfg3fDB`-W`XxkY)|N&GyD=W%UKrUnu*LfZuX+{{zyq#VE6Y+x~REy>+2u= zA-Xg_sHe*N6(<^dJ(n@7+j`bRa_4VmuCt0~wdTnzQJ=0k&k%+!6 z_jCGL74`DCv&RAuG-kzQ_zxk4d zIPewTObjr6lD4EDntB<7(;QTBYC2}2A7LFM$lksfE5|h~zXt0t(1f}|n4U$o(d*IxU&n!j3I zq<324NtLPR*8+{iSSYX1mO0d3qXn7IC1Pc(GW`PGCf91K0#qar>t)_rV|5plSrSke zDAYz#`W^Ty-;7<{%cVa*`1adxbGQHb&wrl!jIK+++D3VE<^*n~^Ewq4iBn=%*h)*s z+|Dk)ymD!<(8sNis0DR)s-|zySjjh^<+@vl&H{KOzwfHd3{V-@JQgj}>r^fqS;N9Hvr~tiO(?8wqE|xGCFRDN>=_um zr${~Rpw8rlaidFAljFRuN}DUJ6WCTZV8^WpZYTv7CoTnFN;-Hr*TIk3i;Yin+y?)tdNSY2z$4a_e{zo-gmqWTi8E8a-& z=H+6Qq?MMct!lokKw5J_Rn4kmZ?!^+L~B&xMzg0h^^}vogH0z3Lb0AlUNE-Js>9h# z8!5oh7MnS|z_yhEmRbU;!#*<$l$|-BlW}sfw~sFvDRYWtMnZO8hpwuv-5ZbZtq~VE zMftLz9)W7Q^v7BJwa&eEK@{;8j^?Vv6}H++O{KcLF8y&zAmu+p-*_bNab(c&d~*v= zGPRg{KfQY7XsStK%^7`thkntb%O@sibbLH*br-f9r8eY@4}sq$6x8}P#l_sPF@luQ z3#PuByvaqqbn?YQdW@!C^w4B#z)J^HKk?FAQ*(T@H+9rUpGj?knl*T8g zqSy>hB}(b;)cvJ2HQ66yfA1@!+f(9l`q$LI%IW>7yDR8|ls1lsO>w#*^~X4Vy`+*h zPu^UKgW{<>6SQ}dR$*r=m0L}pOMO&L`%~35bUbyahF&vSUyH6Z`L8-ywJAXZZA`T{ zAjn{1e^=LC)GU;id^LeQ=+Uc^%Pud}Ls<4wTPMzIJw@e=Eq+iq2 z*WDEPk9ycg=l7!cJNqEys($>QH;evy^2J$n3r)4prjMqigY@^Q_Xg>v$vH#xD4jeu zhbCzX9FH$#;(u0%j^XaKH^~@NG*13QtC!bk>lZ2Dj#Z(L- zCg{4`|Fi-O{#hoYT}ty^yuWK)${;O ziPzGzQFV>u7|RdS)Y?GwIxfOoXZ4&GfBQ@fOr;atmH9*owNoXDe+@ zO>Kn^mYhVFK&Wk~n8n-ac3$cayXfty^LNubQ?)0fj408QN$ygvkaria0*f5RJCkvu z^VWyA#Oj>AU3pw#VoRXH*4gVK9Ctnphx>WOSsptYJuxeC&3Ab0cus$l*W2XxHG92a zw5zQ2`4S0Uv9Ag2cA0mYeE+WWv-kbUN?dq9Y3Av8Ww4vo5Q66^$>AYSd?sf+a=;3? zyLH@JPG`3kx-B?7kG699)~)GX|8V8y6&B{@K{WanuJAaoaXOKkyM~Vw!ANq6{+mrB z%Qt@Kf(J#W;)+s7XZO$(S>}y)deVi4#{6B<#^*b_u{(X@tIqTQ~+Cfs!C22ItAwcV`VYidMGIUz=AP4d{QS2iAX3? zd4lXbQo-moxj(}TSVU?GNvTeuS1{tt)V@<`PwLH6>E6_`)98bj9CC~)K+9T(um6;L zU*+JPGrm%rgf>Q zi>WDPxP(@udM}~%sf*adi^RtO$!ViE5f8fn29M)m<$b;1W+6Z;?)JP0N4JVyN2T9jIMHO)<(e>M95AFjrrG=2z0z48$C z@hE6$6^E!f_0AzWFI9Dz{xtQs!_aB;8hSYO;x%*_5xrZH^XN2$d`jRhU5tLm^3<>+ z-I&l=a>{J?W?hJ#uE%tUEZBHrt0ko7VH?Z;Xa2}>W$|o;;YMa($WMYka&$%g1snZm zT;A5=T~{wrbf`Ro-bh2kx&}_bPv{c~9jB|R*4K$~)?+qbz)9!d)=9e`80HDNp&n<3 zJ@UP9SFpm?Tqu#zNsY`E84VQecvxbW@lCsDwd|U!X;7ZBpkhS3>`=MKtB;v-t7~d^ zE`{r?2?1CD=TnUj$t1KDWIMQ&Mba5P#pSeqq}3l!`4R<6P1X*peRalNE?N&t0N%KI4m9 z9mp$&1hz;sTeiZ_1y+}F73;!n>uc96DX0Z|WR*40SrqCjE?*Jj7khJC>U>p;E2!7* zuQYQvYf59fT4P0tI(?I^+ioZ{6({Kw*dx~}{W5u>dO65t7<=UDcC{ulCoy-E2|O#k zoIvcZ4*BD`I?YQ>rIt{_?(1tYm7jvuD=K6NIhP(o?p$`H3A)Ip0uUHjyF`m+Mlt@+ zlsxknTJG`mwH)$S;8;IeJY1CQP%Zm5Pi!oU1!O&-Q7p4e9S8 zuq_}p>y7QjHsm?aYt~x>N|jDxE-KKJ7sx#&b)J5AUCbljr7qQRSLZF-u+r`FuUbEz z*8}TQ$d9dyh~@bTL${aX+uD+im1pemMGC;3C&9wqKCv+t3Mu(q?DPxHttp5m&q_uz zEQx&5e(X;fKPyWlYs2~sg`GC_GtNU$svIx;G<9ZXt?)mVK32-|r+u&VIT}!BDMGr# zawNTsse<}OW9(aXTx#^0GWvjtmBT?Hj!HFCh-q3O@_Z=7uliOYUMQrmurB76?NrCK zyaG#a9x`Df?_DIKH5Md0ZHMy~u3J`E=v}dPVO~>KMQbA>dA?GgRZ&($b_pLGo8M}P z7u$2ec{TQohFG1UDcp!maf3L(sL2qCvV`Pp!wxly8vijG$;{ps6q(T_OZRr1Mlz3{ zKqFbMF}~BhKE^NESa;z;N{uS2$g)W0#FiFGeG?@HW7UL1=A2goT1JsZ;}0Li{w+sp5lIsgzWzXi{wKpx7^&` z-)YU&>GK`)mo4(NCRGlNrF+hxv&iBM+InVpniUQa_lC?aF;vx88_jmR)!H>@uBSoc z(pp=(+H9UgqR?2^++bF^S%%2FLH1Y8J@DVMNPZSOqrLU~n0s67c5Nl9|kmZf)> z)7YIW4jciC-i+(RZx+RbMVz^B~sqvCR>2aCOvJWtAEv zUgOYwm(Vw6wbh&F{AM$aI~$x$_3#IS1QhGZB@@2h0QG=Ha<0m+m4*hqBIN3kYenU& z+zN{%v|HB@b!XY`-5TF$AIwuTKu4dZ+A91$;gBzueDBkH*7l4`oanO7bz zDrrJeTTF&^I%ke3D5(XFBzKKDS?7u@9qYE#8wU`v+YyU&hos{IA>)xOL+0m;xG6Tr zX@8hUQlB}R2Oh~BHiWTk37H8PotSle6a*U936Yr}eqQ{AuVgmvXNV-rjHTA(TBIpr zOp>kF_wczvOl_;RUbVDXYbY;Mo_h zj1EpjKqR@`7-vM1oMf-D(4g`f_kc+9ToogdRPIIaC{ji-jvi-sv$4PoCdn3Ij#y=y zmn;%0MbU+wT5p+MnIp+CN$Mkg34PDPur$jgxeNn8f+29U+5Y29k~8Dnk5fsq)|Q#$ zYAH*J#->0{<4!Ip3J!U>!r8&1k&s?tYHa~uB+t9BY}0NrvUZzFZ5b*_x&RDa%HoB= z@bVHyn&|TT!6jJ~!gvz)6;xO_XE~T8!3GZo1%cp(sN3kbNX7jEaeKS1BA>3~IBQU; z4}l@ESkW%jNEt<9K|?|5&g9N@-aPlJ?b}M1BU4m&hDmZ5$;a>IiLeq?BkOT#X7_A* zj?23Kk-asupktmcHhW=~&+=*hpcb+`MyP*1Q^EJNkYsB3hdj?FK^g+xVMRX6upZK< zU-FC<2j+NrOfmC{3^^ibCcG%CnO&lcW~@S_q64vrgr^KI2o^6d%~6Tuh2JWsC}1zM zLNVMsYMdW1Ar~;_yfE03yKL$Acmh5jtee85;CfR?XYgAj;yxkMRy?1s1)pR{sVh>7 znYIw>)FaUdGTPd;)|(4uZ7*F0W%VF$7o`PcCGQ9~m*q#NX!B_4#|?I@9hrX6F=#EtZY{ZZA4fwu8V8#kNh?b$x7`?PT@Pa;#u*)a%45PmWD zOvY!5tZv`2d)%IE<}cRUe?%zmx9W(hMC~&il;!11qpsqq`rP1*n8_cKb8c{2PQJO< zZgjQf*Qkn-o2$KU3;Hon%;f%`#Rdf?C66FWRSZM@|41a6%-Sc}*$ayY8pv(UFIqTY zG1!sl&SkK#*br{+-mAhIhwPh2g}gPl+Igc=^HHYxaQ6>rk@X&lr>buYeEee>vC$A;iO(~ znD&j94aZ7{%OfH26`sBh&NDA!YU%fM`+A!Ufn>mzunEc1&8hQa-f;2^Mj6>5@L(==ZbCm;d6q0B@J7yoHvv_cX8>Q z8#afG0d?)BwwkTnnc~{fWzp(h_sU&0dz+gtYED02x3#}--@3Yr#d|uITs@&|2V10~ zecSAgU478=4v;6@%6)^p0%0-%J%3-1!f(~c@}kCAqdVT_gc<&z>7jYX3dgAuP7HB0Kig7@9y88P{ul?V-+wnjvw;S&S;O13>}X ztE~d%8!Sud@!!b0njZXl`G>qhM&*)9xA?cDwpJ%}!x~ZD1f@horF_{F|@w=J7P> zNXV&DctY(V(eRH_MY5?jLlwzhWJ@zcP@DDV8mE~elb?qoEgd!Of$H=#&UwQHv4DMS zG@llXjunKEY6XPjQSx3%@GhUU{-a_ZL%T8jcFb#RWZx|Qp0*JHFW(^)@!LTY*(`TSb+=i0eyzQ&%dzRFwYLe%7YyAPOx!PUcHtUjwmY6{qt0`Bj zJZiqyqtsP5RVo!`NmLll_=r{NT$2z&kgPzF12%D5p>R4f%TrDNS0rWagBdk6)@R=%iL`B80I8GOf-1%lDUjyW?5-0FIsP0NRI1*sjdQMEQFO)i(UDqPhfk5G zs+Ad~p|SGves@zSFGnrDXP>TBou^VO5qljt(Z{>le93jK$h?VWE9-MbYkxNO>(L z?Js+PUcaZbd~UR4*2Uuu$gsgLUlC$Nk^DRO8hM*i!&_>}lM9gHb0P6M5yspTKkfwZfZTrd!ECqFy4uP62(D$Pt3&2<=W!an%b2l^kGM-4#>m}L7F(Zo1 zRx2Bb{*x&Z3no^7^gUD9+%?eKvbq&sQ|ei|D#!&_E=PK1Zo#2gad=NRb@VheuBwi$ z8O)GHqQUWgDG(Ij} zT)btY$LME#k(-ab!Rx~g)Q|B+PFrs$s%^SkmPA>6OSao)QX?}LDE?Sv?pPR@TNB*Z1#OQ&XAO z(O$3DS2rfKszgV7l~RRRpUQTp#pUJh!w|%wlzc%#tWAP0vbNeJl~gTn=-pc1TkWWH zg?ow&v#a3J56!8qG*?%bY1AbZB`OSIjQly1SG5M2%%8-b1skT}EMab5@as~x{P~~Q zBB#kBv*~JUI8a3faz+|51}*l@dGq-afxs3J+9kyjlgO1^xEPzUdHuVZ zx4n0re(zK3*Dsj8du>fsVD+X|LuSLQksb|F-Ec1=fPzgRe11Zp7UuQ#*%i|GlE(Q- z#un)qYipew8%fkS<}4WPF(VcbqXVC%zg>@(xdr|@9Ja_9hFPvixMhwn*OUKmWRY96 zVV!Sj1r$PQ^H5QLG=51PuWC~q@ZZnt`C@-=dZN+^M`$&`Hs3QS!CxG z&9wdIzNDtelG~LZZj+V_7aH9?5mbwZHf^D-svEJ=X?s#r+nYX}I)aEfHL2s(DMU&^B zvva;t?PjjS^Wbl~3d`+mUS0I8>2=?CbIJcFU*uInl|b9Jpu9db*q~I;*>dv6UYWHl z*AlnNW^F!o>yT0rkfd)>#a7R6)fMZy+Q4DLU6F)=Z6BX-ms)!J^RTZ3zX*5x;v?s7 zEK1}U<;B}BMDqe69W`NNe;4;8F`^|+8(NU;M8-&Js@b*1-LR!F;n+~aadS9c<)wXe zr!rh-@+~cjyT^R#Nqs~rjp(U0zn<|$F2VvmIU6f<{j_TXE`;wAMlRa@T3`3M(fSPs zc)W!iuj`Q|bd_UaG`y|4X7l3oQd^BeQDdV^0|WWE+&HP?oyDDt=w`w^kO*djYbwTG zVWph$v1S+}@d|{IIpg}Ej;dZwDk2(fv65370~&2m|1QlndcZiUoJ#tF`!U?z%yC2L zd3fN`gN!(mW|RH@mA4D2u#pAkIAJ6>D%m7mg3gsCjC8mI%rY}zte@WRVuX=7%R2UM z8OcpQVh$Mn#WXpNjXd56w(~C2MwFV68ay~WZlrLQE63Ss)v0)SBkOn9?{|$Zod{BH zKsaVAROx)WF+MEG_M?ZYd-+_yK&a8t1%XA2hn-Nvwqt+eb)(TUzcXa{mN7DG2J>Uz z;fqB2G^pr@2qU{;V+cfYty~%Q752NuePEFm;|xp=Fa4PsE}~XrxuI=Bd#$a~Vu{;s z!dT49c%(V*&$?VWS0gt|Y-8&;jM?&S5LPPJ7up#}St`I8cE)Tkz$0^yqy5=4FWG9XoU>-g7;}7vdK_$)hnoV8 zlV`V{`Cy~FCMZci5Zuw%JbQaDqm1OHkl)@X_DJ$%;Z0j({bxk$yvdWhL#tK=t9Qqu z(QTUo@*)jv?=BEpP4X(?@KR;6@neo=h8gqOu;*#c$m33#9~SFtO_8!x5!4-&!>3uQ z3hL5N$c$i(%+ck`>aiSRk~Z9z+}n2MLk%a2+NT$3_&lwpJI|QcZL3m8!Wv^ihpkQ< zRCxIUCVXVm76@Nb?>V{Wxa=ow&d5%|p!7%HnLH`Z|FAU!L_6O4Gs8$md+g*CTTelI z$SFz>$z@2hOrKGg>J268>qT9=2L^NjRd{|w&cC$fiQFz{L%CXK0c|ArZ--MKwQ%4| zrsqC?AQs1NjcemAJ6*jk#v*fPZ*F0$tZcKm0z8fSSqAt8P>>?u=BN- z`x1t=g~jU3n5W;RXPjYYq%lLHCI;5XSXErVwC~pT?GGlxwU2L(BsXmcg$z|SWvU`m zcYhxDrL55Fk~YclD4RM@5%)JwF6&)%PqQuJ6mtQY!|jwdYf2(Ygd43y9Kf|aMaH4< zf8vas5sLeT+>x|PD>Oysd*lv>tXvy5r%f3_i;fGr?V+roOiq1OE!Yq|&V(k%Zz`C(DAN1r>gt}0l2LnoiA)^tpW7D~tNnIij?<@<#CwN&1~rL}2mK&|oUkkT-vAxqIOvFDB0<_I@&)k@MkXzLnRU(Pk^F&TL2s_lqt#~K<=6^0(|-Sx+LHSOdkNxFWl(pmJRdL6?+T{{FI_bT!RIWBo+x-y9PgXk zS0PsW90EwLV3PM#Kysc_9R{rux?qJS9M+i71#d!Ge5@=hm$<6}6H7va2cq@)qbSP) zl!el4Q4pg7^|rxN_+8G(nOF$Oo^1d;4^{3+-dI*qDi!d@g%X~oCRTalNqf|xVxPQ6 z6)5s4iz55`2aY!CisW)_P(J6bfjL)Ia4(tK``bYo+1uBoM`ey4dy_YdSAYn5Hr{9X zb(ykGZ~|mT&CCFnaU7gDcqU~SJ+)NmGt?n9ingabKW?lvl;zdkyR&8IgLS1Vic7;Q zN{U;Q>HCXLoz*aV$AE#6M)EL{Ix-_^<24lRPEl~;%?6^vo$&EF088G zTfr!8L$VNKjqE@6G;;AYWE>jDt5*R2@~p_y;<3G?|5A3|ayGIeKth*(1|w^x5GqAL zSIP$7BFqJ>G!-URn)-Wow(de{Ru+{Oul!DFl9}Q(uqwtVYpu$ZOOo4dF<<~Tlh*W~+`&tZ0HWr*TGa&s3yUYxcEY~G8n3H;byFh0IapYlv zh^MV8Z8+3dJL}rY(nfLGCo)=%;EgmO1w41HGF~57nKhLlzqKmC8+mc#;EKEk^TN)$ zTjpu;VU^aVt!b)YJ_ly@pU1t5plVpYSfqTH?*^=qFp8$R7ZHCF$P59~Q!CQzI&$9k z7pZ%fF6mL}K)o2&gZpMlui8|k-K_H)Wu2>c?ON3#RrxjeKgDz8<}Imdi;w5ob9w3C zfm`WSAvmnj8@TIWUvhom>Nz7;I=>)h>WV~nH1V(@vIu+dPa)lq85^oeKZ_g6kbHcX z+7g73-<@@5gwC3B*;bOV1~MYQ1cGmM^UzR}N*~cPnVayM$;?%N3Y5*mSI>+GQ@J|d z@nR%h-tQD6zkn4Zw(diQg zL)>_^(j5$F2XYf7s`R7ACX=xaERj)=nJnPG$_$bJHlHq~JiVl?F!fS&@!H>*rL3!#81oC~_|jPdQ9A&JZ|MXymtEi_NSUkGvr%9*h$ zC^e>!m2O?!dG>Cae%}^VayH7}V@N2KRff}e6x2zp?z%8uS^x3@%7V_uL2s4f>9M7T zB(5_oikU4W46f5`I9TP*Sc}J3P6;?jr{!YXXS@l2vaP)+TGZAWS}4zx7H(>SxiO4| zcGESBiqC$iA=q85lGY523{*?atw!WK{27m%$KxGV7s$>ph=fdWlP{Q0&y*J^0_%#? zUz-y~eYN>TPh)P2b56k4P{U{<`CP3oqEbb4wOHx!5gNrun721$TO#)!_;Y4<{br`R z;}nY-`Uy1gnF3}fKkh3{k*ZAotzoI3x<~KH6%Gp|yc~;DXX)|{7WdG9Xrm?iK5evA zrwe+)5$W{uC>pXUx5t)g$e7Tq>HL!9u2U;CDvv6E#nwpU1qoO61&gAaR=TXtm77Y7 zcbpWoMK^7oming%a*|>J=+CUDGhTIQlP$7Ju}{PT#Ie%(Uxer7WO>)Dg`rxoxYdP{ zMYUieaRa}%qTO7*|;&ISGJHyvbK@2Os8ofhxs{t zi97CTy!Xud^Y5s3mO6xruB986b}1^|x|m7Pxoq8%HYrk2aul#pCkXr_%41%W#~J$`khElLQy}>vadQ}JVgqsV zuI7FPF@J#nvF5lZnuQ+yuX}h8_;d68{=8g&aY0#uJyuYVjM?#OYEql8H8!;6ySpNJ zEv+{Dtii%YM|Veot*t?CbD52GwFX6=l$(|LvCo&wewz7ZL0S4`Rj$_5JJ(etDYmw^ z=R4+(dRzU&L#~3J7M%^bLT2?@wO(arOXpMGWf%k`IPcWS+9JY%l4yg1X{+}8tcVym ze}EPdysTwaJftf|$D{LA#jz57V?k@JmcDAOO=w%S@oLM|^E!_axy}(HhOJq3NTUs? z(`ipIzZ)co)mojJroS-wwRBg0d$P0M5Xu`~=%M+e3!FapqWO79V?3b>NF)K(1ZF@g zG%eV&X;fe674W)+0<~7&IB$Gzy;Mjk)<6TW+V|tU2OAe0I8Zl^V*S|2z>3S3?%yeG za%McXM}Ls+lCin5vgU9fxh$5#LW{)}tO*8dYlFd>^d;XdeU-LdTTx}1dXAM|&I066 zdJmGEX}(kV^xs2n?lp_cWih*4NprBeIvA>{Nk5j~-cfHX${Swbfht_yj4F7%j4Fbv z#caaQF^z56Jfe3)6+IbMG-Onf;eXr&GyDLozcMx<{Rsc#agRY(1@sw1B3T#L)@Z6) z?X4#bn+&7dk{f3!Y;lFI%q;KQbjpr#ldeEglOq>6mY>;|TT`KJ)g+p(hoc-ejXYeH z7u&Hpz{iw?(65L{nNxB0dDXe~$Zu+HZpWm&4Gy*u?h~9E&Wu6Kb;9BtPc*P$e`i+* z2w=DR#}~MZYYjLDH=Lstn%bfbJ4)81+%SjFzY zs`j#$*oKOxn$=|kH#AgNUo|(kx!DF&XoL*#)^isz7RYR~KJEbcE(>Im&BHS^ka`^8 zW375bhO}4P(s!C83T4vgh8ng|xJH6K!l08AWqm*_~ z?n<081Q#S+^&*QxR6n+IX`fzZk+{)RIkFE;bsqONjAD4kW(>~qB%;0nPI~tJek>J&F>p<)i$0KbY^%UufitaG!NuQuCTT`p_#j5s3G57 z?v^#GYmz0txjRO*Rh4R!Un7!x)Z*HqIgK){UoQ0-WH6#@#fb5MSo7d+nS}b>nSD%b zS$&@gG8?q>BSer!1kED+lowjI$W`oLw>{37AXPPkhNM&~fPnZ2>D8o$;ToGXS1D;& zxPIf}R=Le15O{3zmPPBsEOYrX}*~y=%9wa`&85 zf;Rsra5bI+ZbBDx%|gl_=7Ri_5J9}K!dsI2_w5RW#?r6fBQi*RGJ`_dw|2*-5u>(T zp^4~?Bb#@u>6UBihE`NIZMieXiE^Nd>xq)r$Q}71I>;YkgFKS!Rm;0pY+T+UQx#{~ zAi1=N&Zao}*GK=E7G?NLsoJBFwoj~`Xcj9=LxP$bVW31UX5fvMKuF8kEG^~2GD&Wsibg$aFHaQDykn`9|%~L08 zS-Np$w*vI8+(kKgqIhyw`TTwE#@t==8*d$yl+~8WBo2)xUoI(`1mBANz`T zA>tF69}fL0djKTkh0C6ahL9gy8ry1gRoX;LlhvAhxTW*tFXOPb zU9Gk(5z|cFq3a72Z$B+DFmiu$(SQL1$%DtzTrL6u@{g~nDk<}^+c=>u6MycfPUJFv zl=8JTDmd&pfi|HN(6eMcYj35U&U*04jh!U^$RHg%IBo0QKZM0Nf9tRDM*6zYqWiu740%1E9YA2MGzR z1j){r?~70+MXwT43@fns=Y)hMz+BXScr#v{ z2V4(41pJPWh#A1rB?7N#F8o`evXnauz0LNdn0XPXb3qbXiK;V)Zpa=MrkWwL# z2f#Wh#d|T7J_b#c#V|^m0BEG*G}M2^yM)A1lKAU{R7wG~&dU1;NuZ@B-U9wgNL2;! zG9lHtSxpdF3*ch4=mE7)5mJZxta}1@1Nb{3^>|&6g4Dkc;O_w|Xs&<*?UBBXx=z<2x41)zmlMZm9tKNB+W2_dsX0IoZTHa3Jp&B2Z5 z;Kp;$1U@BX7(F044E4`jL&(SqLPlRBWIk>-hK9BvPRK$n@GC;bQQAe<5VF_>+)ck(~>Kp((N-&L#Pe7$Oinq5p};2jc${Mkj+K_YTwcfpqjRB z1O7tDNhruRF(KO}KnZX*Av-1s*$Dx5H4(BKRd{keN?s296!m|K9e9tBQ&Ec3&`S5n zfUgNT1Mi=Ko1Q5Eeon|)`0-x!+q0bjN`DT1bM9q?oOc!>=U+m|1*nF7(8z^C01f)0 z03jFKzy)XkP!0PZCgi|ILN4V2bAcn63z8~4+)T)2D}fIPxg7ob3OBHqkSkGwEAhjt z1_?Qs51dcP)e%At$pPH>a1|lfSOL`Iwa~`3dkDD>ZeB&mEflzckX!ix8p~}^?`@Fuwg-R@3Aue9@ERd^Tm}4t zkUOD;J8viCu3F$4Lhe=oPZ9D{e0~o;yXOl+?u8JO*Aa4GCjcSt-$cj*(BK18ggl6A zKZHU)^aAStXR8VM`2-;kw-E9O-hAX~LLNn3J{AU0`o~e~Cm`(;=vq&rtvtDdkYAvx ze(3{nlV3rwryeEbX{h{}`Gh<>PRMh25b}JAkYA%ZeuMV$n{xH++3DA#Z31`GXKRm5?|05b_q<#M@{q zZ)0qD2k*Umgpl_hB;@_0g#2*{A%8+6{I(lLOz3pf8zny67qR9Azz@LzW9WYzYhT~67nT3{*Q7({uw3YUl8WsQbN8) zL;VIfp2Ba_PZDzMeHbq|hQN$AZW*#E_zC6r6AD{_3Y!Vd0Yqbjiq9cbvYt>WLKu>= z&4kKV!LU1qqz9!KL{Oz@C#6o z1z!_7UP|bqT0$3Nt8C&{LYM3zbSVnB44Per@2&_Ex)Oq~{3oHSlDOdNdk9@~l+d*h zVBJze*Uut!!;^$=oFsJ9?SyW=h|n#&2;F)Xp(jDWZ8sCT{kMeffXa8`hP%rNJsDMy zL?KSOj?mMv5Z^NZd`0N#eh`599$C0=V#{Q2?q;p&_MEJ*h{4V}xFYi(dv| zFZ&yzm$w415qgCjSOgp<^hz0k!d`hf>i?$<2tI#kGqT~mmva6w@tCs)|5_+f* zxR%hvxXIxW;9lSZLa#v^xdsjC8kFYR)xa+Zy$+vWcR!)m>wrxFv~)uw@ED;-asX)M z2sCsQ0vyG6kNzx4=#63kTKEYX)lcx{pX>*|B=n|k;8NgYLT`pZH=hiAL+CAd|CUPt zlodV z@B*Rt;Q5|g2)%b50Ldqzy2%F#y${{(KGfm;4FGQTfEmDd9>8}VgsLBWn9zrABlKs@ zg#H{Q|M_`@KFk4U6Z#0${HPs3p&mokJ$5~zk0*ea2z>(gPCgkW^hq?dU!cGK;;)4M z5?$t(knUH|%u`z6d_tc_H-x23pH36{%xS>i34Io&dJZ>v4yAb>8hIX#_}4?glZ5^T z1^EpGdZ84+jeZNke)}n*FQOnXzDMZq))4vd+0idA2cV6wP+ebrM(97B z095_Y24Fd%|HAXXULo|~>w$|2{Tjl3{RHq8q2EBOQxIY*PG}lhPD5kK^u2h23muyP z&H@etzW{LaWB()^_7gZ{|Ko5#0=vAxIl!I39|%XqfEgG776Y4rGk}|cp8?MS?0cU8 zQ-tI4fFhs<=mEw^lH=Cm#mT@0z}3L3z+VW5^Cuk70YrfYU>2|q*b7_++z8wU{0evl z_yG7P;rI}S4`KKRfE$1pfqxNBUVJ5l)EG2~lz( zN-kUnoDJLo;B(>ogu~%(E(fK_X#?g0%YoB?{lF36Vc<)`i7Y@ZFabb&BHTmtDDY<> z`47U0;o%X707x!g4crR+0(c8Ri6qd31ca`VW?&Jp5x5b!4|oCikZ_>G;H0HMKd>D* z3_K5fML3xg7zI!@GF)4Rs*(L3_=a#vxr}gf8-N?gtAH+GD{v-oJMa_$ZNS9i6e^$q z2m^HhO03uid_Xvr7J$mt(4uB9;j|D?cNO9EXdil9%g_qkMmQrhY1%?KGqhpZhx)ht zm2lSegtNH;NSBKXuy5dCGf0p`zE%(+?i6{L_L&FR@_9b0-Sp6 zyPXD-ezfp1pb{vbMk$`z`)h!cffYaxPzM|ao&;_Mt_D5<76Kt)3D63#?+gOHz*E2& zunU+AYyygbdx19I2T3x77wik{Mt1?f1J(mfsMWv%pbKCZ*a5Kb&z^o}0xkxa@D0Er zU?nggm;m|!_PbG_3b+$s*Mo3K*7E`K8ZG#MjN=U^DJvbrMZjs(h~c>(s0Nk+8-W*r z^MN-2cGEWj_M6iI_Wn|!1PB80)ZW`^ug{H_c|akc0`!0tD4716J%@qf)MvL-W3?SG z*~c|N0$@_GOE8r%Jv#wbKTMBT0`&m9Jo`>*%6kXx6+7^<2Zm()`kgpl%a#N4oiS$y|)bH@k{+Zjc3(p{q*X)-w?T)?AL}F!RS84$2045ZJZyHRi zzLf1QMEiJCO?OdezZvhaD>2P@045WAk3BQ6JFzRUA`MSt4xUG*U$d6Y>X?CP(lWXK zF6!o4xJ!8-aHvpjKU&IL_}~HHEWkeb&^`1sMErh0wgP*B4Zsk9Mn!G}SgXGqxDNOn zSOl<=u{H!5DANf0KD+lL0P8t>0M=-C0IVmn+cBBO0QNb=Aol_90Goki4IWs7WW8ko zI1d*#;hEiR9AG!w2C&ar59$S24><`~39$EBPhkaMJp?zSOo{A$T!Z!jQM_IQufsOFhkHAsAnh)s zu9C>6ay9O#pdzTFj)>6_6cr^^ZC348<*N3pzE%~fj;T(lPN{xS zom2g+s!-LauBvXReo@_3JyJbZJypF9B0;u6t)!e2SpPmEcx3SC;K{+-;Jv}WguD~t z8~SnRu+ZtDn$V=sS7DZ6-NJf>slo!oMucUB<%S&{X)&^$H0T(8*UEd$!?8AFT_l$h z+ShH}BxzF3WS_}%Cg)E6aq`m$`w0Jtkr9~@dm`>nrP9O_+EIISdfoKf(;Fl0B0VDe zM*dG^Vx$!LEQ&p96E!GmN>o}@M%3-7S2L_;)f&|%)h?89o~i&P zT#OPvi4s1I64tA#R995jl@h-Hb_oY{mU2(fZhrr*jDP>X%Xnn)$jKw;kE|G3ExkBF zJOB66Zu57Q_SC<#w5_#&dtn<;*yR6P*b+lwODOD((&dx%H*}!3E_7Wd%6} z*#%z~tSm?@c(0&Wf%C!ggCz%79n>70cF^h|%YT&rAip~QQvSL8;{3z;=?CNkf%~<2 z5A#a%zRNq1XSeTI?mu(y{_yG-mZQ-FYe6PIc?{#ogK5}tct9YSqrn~WcA5vo7E<( zb!Ktqfy}j;i!wEtLdN}!LmBzH6B%mVI$fkLBEvJIU52IZx$eF$N4H5gK=-b$tB&b} z^na&cOy8NlEj=jx!*s75X*(9}aNVvgmO5-RY>VC2V{7Kt{#z}#;>`OkFSnF$3D`1l zi|gj2nIIhJa zS-a@YqUuFQG*z0PG{-c%HCr^Pn)RAh3j-JYuHG|0Q{A90Qy*6ssq@wQ)N9m@9<8;U5B?D?l`>7u-C&VOD;qyKgP2>&qu zKK{M@yZfE-EA{){?}%T4-*~^VexLb$>NmtMz^}Jo55IT(oP8U8AN#KHUEmw*8|^#F z*UeY(x$9HsQ|nXiQ{;2VC*LQ>C)+2(XN^yykC#s$pI$z0KJ5ohFBtUUpnijT59;yZ zz7OLEwj3Z2NFFe7K-d1a`ycGT*W2hl*83B0@Ar-UuJ_yAFQwnye(wF)dxumzR1vCo z`yTgt=@sVnsaHp@wqAm#?D^XBndbw~ah^RrTY0wdwC;04oFz^cF?mv)P(}|hDXk29 z278{R9R(I!9C((l!tVsJ3^N66m)H}N%!|dv%DbPx|82=I5-&BJr~Ps0H33*a$3Tpp zu8t)xF;mphq?0BZ{_dK&Q)XlN7N_8B+?lBPov+!pB`y|YEX&b};1Fv#$g{SCJbb!F z&+{OwW3R=Y;wUjz+$4T0-V*<`Z~@gUPKT{Y%C)49G>{kMPaNFlLf@hNs6UqMjG`0i zN}5b_X(9cVmeLEfn%<&~I7{1B@D)}H5pbzOE;e61E}RxF2v>wU;f`R$^*i5)joGrE zYyca=A`q1dKVXc(B9n1+Je>f!lj#&Xl}^Ln%aJsSYG=?{G@8!FVLJ1un$E|*w~J{! z{emu|%V`2lgc?b76pD%X{2nVQE+SIM!H2d zVpVpeTn|V+RU;(O*|Gt?a?JblyFjNSybu^s+e|oz^i)6sodQAAQ zK@ec=G>Gb(qN6k6kCrhGr{lmj1tm?nFodTfJWWYegu-J0Yz$yC0OLy5(*+1E1g)qf zAOfMLL{OS88=4bVPNTHQj+UI2egUnP!zIA2L`sw3(g5EKrvoetS(^>mZlu|UE=6cL zFbQz05anvPwZJCBtpg04#2OR^P#DY<#%2l~U|C9Hv}Pg15(*d<*7bPmAnq$XvlXIE z2yIq;YXM7E(k{uzkd}Jn3TTm{mBb0tYEDXs(j`!m-;d$GLdlm@;!ZcfW#f+=0T{@} zdQU9$Sps$|q}YfQ^RyU|79-t+^lgSS3D-gah=Dphi@^cBk~83J;@Akt7GSo*ZG+>S zEoeMax&-cx{Bp=I2W1&3%cyo6Zah1(dA%gz*+ zCsoLlyr2!u3K`7NB!WUv)HdY;S6&fGOG${rNq9?#tmVy^Tr2=JDTI0f?j-u935Rc+ zblrbwi%D?0322iV7^V?BtX}L+KLf-IMiz^DuqX6*5;*$8G5~kwNDrL{J27*xad78wDTs%VjjV4fkhzcS-FyTH*jwep? zd7R#QfwYk^Pa;nfh-h^Kstc*s9%33^SWy?mdvldk|-kNq`^Fk&wQ@;q_G(^bBRv;0bkn_K~W6>ydE zOZg{~Ah*U5y?Mk>-b&iam!a56BFYBr2aj{{;J1=%LHiAOj^i-60{J%J?($L6TCS7- zjdj^ka(Be5J&*c-kF^!EBYFTaZZx`r80iV@*>DZD) zI;{B4MT!$E1Z+7n24@5vCTFp$sxKWv!>EQHq>X}s4PytyKrv3-EgCJtEgo3LSy@|6 zwz_9M%f{R0Tbpv52HW};VJ$1|Y}+{453`T3kF(!oZ*Z`5=;ScKA;jS;hjPa@jtd;0 zIk`A};8frCLHi-?^&K2KjOkG7Z0)ReHo9zaDb%{0a=GMk%jM6GA9U1otaLr(TIyQq zTJQSAO>k@H*3-?`EyOL>ZH?Ozw>tOU?ql55?%Ul<-Cui5^jN7R#ng4O6cTy1kVnlh z0bQiFY%ZI})NDRmfK59zY!QoNi?Lbl5^OcFlr3XgwwzfdU{k0SY^Buc5*?&v3rqq! z;&YL?7Sr~rY%Q@ghxjBA%Aw6R~AU_;q|WTf^3} zWR}9#vGpt!90K5}gs>gpvsGjZcy=enwU_8*%FsD%y4ly%ag=v`jO*4 zwjcX?9AaOi+MHtFv(xO16kd((v2>CK_>q;Yiq)VRU4a^mS1l+HItVz;E^Z%d#!zxIM;T|)zcIhcz@zJXYY7|5ScZ@E~LP;|lZeTM7Ig}$MC z!z(uNNZV`ZXrJaZKm^aYc6{wJo+bfYhy|L8ImJq-kbQ#x(bYy%1aD1z!*I&dgh zpo7SYSP_6YT@m+khOPrRI0hjl$-H@29y3Jm;*F-7x zxj{SI8fd1py`Bcp=h7AI2ZGS4o3yRe>L#^qUC(Z@=SU1=nd~mRCw0F``_e2a{3gg> zOWSYaLs1qd_h_BX_ORCqWfuF2JuYsziLr&}w>Y>3ClVsZEOCT^8}J^u@aYsEPbqLm z;s1gC0RNBdM``zMy4)Q*j4Vhhosc<>#12-^Z#h*nbLUFs`{ z7LxZp>LnmN?H=u7D`KY!*kw1-O-j2*6FZ6gmn!~(bWqw>I7D$rMbk^PmDKM(?b`Vz zdkK)U=*&@Mf^z3f6S$uND{1c2&OKgoNj!+Yf|-~z;(7z`Dt47h?o(In;lnWq)$Hg+VCnv8&AVudf*8~ZN^_*BfY+3q*o_?bXJeZdldW_h-NC@liA z-B3r~U|dLBTNs2q#U$ioWqdqmr7n~fs+5Jlz$!YG2U#GD4MJ-5&2xP?|sBDccTh|Iw4 zIJbomXUVYQ0Z)50FVowG7n(rMq6n@t-o55f4mkqIzgV3KG5{b-yxHYu0*dcEWz8Xh ztO5B=cB>h}qpFcq4YcjJI}9sc%yK#S970qX2sOpk2^H!-Q*2pt{JfGGxhVrJuVjC% z7`)0nW>2KA8jv}e>?wQ3{>^@6zbW%U=o7+bar*_krP#2hh#U}oBYTb}@RI$`UO}`a z+MqjH$pmn4Yu7~Ch1kKSxv@Wphe+6;B7SyNRDc>x7WoU%PEpF8cxV|nd)x?`O&&Dk z=CDbW6S2ZSYgw>cmiXb;TEvnqbX$ccc5uH^?((@ty;bKop?6kSCZ zu{|hk!NK#zL&=#&o?n0A#NY{L)?M@vJBgjOVi&Qi*iGy%z5_sK%#8IghZKPj=cI^p z`wxLo2C3l+@W|b{l(&>aYFQMU!Dg~ZHVbeI9BmlRqSr-wMam?BY#NXsRH{m!wWlsgoAN4*cvP>+#c#zt9JnG!5jo@+F+| z^cp{Rng(cY$Yp!l9aD=z7|i^M_`;CmfuMd5Zxw6O8rfux0jwqV+~wVwK=K{h)(W^* z7|j>ouTsQeqG*AZWgv|Px0?ucBLA7T1nl6*$~1rf9X(R@Vl3c`9}O63ED zCX$co9QiKKI?4Ab?crA;UzKa+YjQR227Y10W>EaKxId5|$~WYDa*cc$_xl)DT{cs- z!g$U~N`6XvS=7lFau}08t0Rm&K*eFdt%vSbybmiMP<7^e7H*#8j%b6`6_I zVS7mA?Kl$6#TE6St5PG+V%zi42wR|5grIvHigx}1_W!U)?P!Pk;*G-<{J`N1s&Sy( ziu&YCEaf}c8tx17E^1XIM$;is;Rabo{(%8+H*7=D9m8M#_MVCKJ#odb&=o2z!*RtM Xh(Go=^2g?}@lYz5*h}TlY4869{YoWL delta 9641 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 Container Container Text<'static, Renderer // Language::FA => "مبدل شبکه را برای بازرسی انتخاب کنید", Language::SV => "Välj nätverksadapter att inspektera", Language::FI => "Valitse tarkasteltava verkkosovitin", - Language::JP => "使用するネットワーク アダプターを選択してください", + Language::JA => "使用するネットワーク アダプターを選択してください", }) } @@ -46,7 +46,7 @@ pub fn application_protocol_translation(language: Language) -> &'static str { // Language::FA => "پیوندنامهٔ درخواست", Language::SV => "Applikationsprotokoll", Language::FI => "Sovellusprotokolla", - Language::JP => "アプリケーション プロトコル", + Language::JA => "アプリケーション プロトコル", } } @@ -69,7 +69,7 @@ pub fn select_filters_translation(language: Language) -> Text<'static, Renderer< // Language::FA => "صافی ها را جهت اعمال بر آمد و شد شبکه انتخاب کنید", Language::SV => "Välj filtren som ska appliceras på nätverkstrafiken", Language::FI => "Valitse suodattimet verkkoliikenteelle", - Language::JP => "トラフィックに適用するフィルターを選択してください", + Language::JA => "トラフィックに適用するフィルターを選択してください", }) } @@ -89,7 +89,7 @@ pub fn start_translation(language: Language) -> &'static str { // Language::FA => "شروع!", Language::SV => "Starta!", Language::FI => "Aloita!", - Language::JP => "開始!", + Language::JA => "開始!", } } @@ -110,7 +110,7 @@ pub fn address_translation(language: Language) -> &'static str { // Language::FA => "نشانی", Language::SV => "Adress", Language::FI => "Osoite", - Language::JP => "アドレス", + Language::JA => "アドレス", } } @@ -133,7 +133,7 @@ pub fn addresses_translation(language: Language) -> &'static str { // Language::FA => "نشانی ها", Language::SV => "Adresser", Language::FI => "Osoitteet", - Language::JP => "アドレス", + Language::JA => "アドレス", } } @@ -156,7 +156,7 @@ pub fn ip_version_translation(language: Language) -> Text<'static, Renderer "نسخهٔ IP", Language::SV => "IP-version", Language::FI => "IP-versio", - Language::JP => "IP バージョン", + Language::JA => "IP バージョン", }) } @@ -178,7 +178,7 @@ pub fn transport_protocol_translation(language: Language) -> &'static str { // Language::FA => "پیوندنامهٔ ترابرد", Language::SV => "Transportprotokoll", Language::FI => "Kuljetusprotokolla", - Language::JP => "トランスポート プロトコル", + Language::JA => "トランスポート プロトコル", } } @@ -201,7 +201,7 @@ pub fn traffic_rate_translation(language: Language) -> Text<'static, Renderer "نرخ آمد و شد", Language::SV => "Datafrekvens", Language::FI => "Liikennemäärä", - Language::JP => "トラフィック レート", + Language::JA => "トラフィック レート", }) } @@ -245,7 +245,7 @@ pub fn settings_translation(language: Language) -> &'static str { // Language::FA => "پیکربندی", Language::SV => "Inställningar", Language::FI => "Asetukset", - Language::JP => "設定", + Language::JA => "設定", } } @@ -267,7 +267,7 @@ pub fn yes_translation(language: Language) -> Text<'static, Renderer> Language::EL => "Ναι", // Language::FA => "بله", Language::FI => "Kyllä", - Language::JP => "はい", + Language::JA => "はい", }) } @@ -290,7 +290,7 @@ pub fn ask_quit_translation(language: Language) -> Text<'static, Renderer "آیا مطمئن هستید می خواهید از این تحلیل خارج شوید؟", Language::SV => "Är du säker på att du vill avsluta analysen?", Language::FI => "Haluatko varmasti lopettaa analyysin?", - Language::JP => "分析を終了しますか?", + Language::JA => "分析を終了しますか?", }) } @@ -313,7 +313,7 @@ pub fn quit_analysis_translation(language: Language) -> String { // Language::FA => "خروج از تحلیل".to_string(), Language::SV => "Avsluta analys".to_string(), Language::FI => "Lopeta analyysi".to_string(), - Language::JP => "分析の終了".to_string(), + Language::JA => "分析の終了".to_string(), } } @@ -336,7 +336,7 @@ pub fn ask_clear_all_translation(language: Language) -> Text<'static, Renderer "آیا مطمئن هستید می خواهید اعلان ها را پاک کنید؟", Language::SV => "Är du säker på att du vill radera notifikationerna?", Language::FI => "Haluatko varmasti tyhjentää ilmoitukset?", - Language::JP => "すべての通知を削除します。よろしいですか?", + Language::JA => "すべての通知を削除します。よろしいですか?", }) } @@ -359,7 +359,7 @@ pub fn clear_all_translation(language: Language) -> String { // Language::FA => "پاک کردن همه".to_string(), Language::SV => "Radera alla".to_string(), Language::FI => "Tyhjennä kaikki".to_string(), - Language::JP => "すべて削除".to_string(), + Language::JA => "すべて削除".to_string(), } } @@ -382,7 +382,7 @@ pub fn hide_translation(language: Language) -> &'static str { // Language::FA => "پنهان کردن", Language::SV => "Göm", Language::FI => "Piilota", - Language::JP => "隠す", + Language::JA => "隠す", } } @@ -405,7 +405,7 @@ pub fn network_adapter_translation(language: Language) -> &'static str { // Language::FA => "مبدل شبکه", Language::SV => "Nätverksadapter", Language::FI => "Verkkosovitin", - Language::JP => "ネットワーク アダプター", + Language::JA => "ネットワーク アダプター", } } @@ -465,7 +465,7 @@ pub fn no_addresses_translation( Language::FI => format!("Liikennettä ei voitu havainnoida, koska valitulla sovittimella ei ole aktiivista osoitetta...\n\n\ Verkkosovitin: {adapter}\n\n\ Jos olet varma että sinulla on internet-yhteys, kokeile valita toinen verkkosovitin."), - Language::JP => format!("選択されたアダプターが有効なアドレスを持っていないため、トラフィックを観測できていません...\n\n\ + Language::JA => format!("選択されたアダプターが有効なアドレスを持っていないため、トラフィックを観測できていません...\n\n\ ネットワーク アダプター: {adapter}\n\n\ インターネットに接続しているか確認し、別のネットワーク アダプターを試してください。"), }) @@ -527,7 +527,7 @@ pub fn waiting_translation( Language::FI => format!("Ei vielä havaittua liikennettä. Odotetaan verkkopaketteja...\n\n\ Verkkosovitin: {adapter}\n\n\ Onhan sinulla varmasti internet-yhteys ja olet valinnut oikean verkkosovittimen."), - Language::JP => format!("トラフィックがまだ観測できていません。ネットワーク パケットを待っています...\n\n\ + Language::JA => format!("トラフィックがまだ観測できていません。ネットワーク パケットを待っています...\n\n\ ネットワーク アダプター: {adapter}\n\n\ インターネットに接続していて、正しいアダプターを選択していますか?"), }) @@ -589,7 +589,7 @@ pub fn some_observed_translation( Language::FI => format!("Siepattuja paketteja yhteensä: {observed}\n\n\ Suodatettuja paketteja: 0\n\n\ Joitakin paketteja on siepattu, mutta yhtäkään ei ole valittu määrittämiesi suodattimien mukaan..."), - Language::JP => format!("取得したパケット数: {observed}\n\n\ + Language::JA => format!("取得したパケット数: {observed}\n\n\ フィルター後のパケット数: 0\n\n\ パケットは取得できていますが、設定されたフィルタリングにより表示されません..."), }) @@ -614,7 +614,7 @@ pub fn filtered_packets_translation(language: Language) -> &'static str { // Language::FA => "بسته های صاف شده", Language::SV => "Filtrerade paket", Language::FI => "Suodatettuja paketteja", - Language::JP => "フィルタリングされたパケット", + Language::JA => "フィルタリングされたパケット", } } @@ -636,7 +636,7 @@ pub fn filtered_bytes_translation(language: Language) -> &'static str { // Language::FA => "بایت های صاف شده", Language::SV => "Filtrerade bytes", Language::FI => "Suodatettuja tavuja", - Language::JP => "フィルタリングされたバイト数", + Language::JA => "フィルタリングされたバイト数", } } @@ -673,7 +673,7 @@ pub fn of_total_translation(language: Language, percentage: &str) -> String { // Language::FA => format!("({percentage} از مجموع)"), Language::SV => format!("({percentage} av totalen)"), Language::FI => format!("({percentage} kokonaismäärästä)"), - Language::JP => format!("(トータル: {percentage} )"), + Language::JA => format!("(トータル: {percentage} )"), } } @@ -805,7 +805,7 @@ pub fn error_translation(language: Language, error: &str) -> Text<'static, Rende "Tapahtui virhe! \n\n\ {error}" ), - Language::JP => format!( + Language::JA => format!( "エラーが発生しました! \n\n\ {error}" ), @@ -830,7 +830,7 @@ pub fn both_translation(language: Language) -> &'static str { // Language::FA => "هر دو", Language::SV => "båda", Language::FI => "molemmat", - Language::JP => "両方", + Language::JA => "両方", } } @@ -866,7 +866,7 @@ pub fn all_translation(language: Language) -> &'static str { // Language::FA => "همه", Language::SV => "Alla", Language::FI => "Kaikki", - Language::JP => "すべて", + Language::JA => "すべて", } } @@ -888,7 +888,7 @@ pub fn packets_translation(language: Language) -> &'static str { Language::EL => "πακέτα", // Language::FA => "بسته ها", Language::FI => "paketit", - Language::JP => "パケット数", + Language::JA => "パケット数", } } @@ -911,7 +911,7 @@ pub fn packets_chart_translation(language: Language) -> &'static str { // Language::FA => "بسته در ثانیه", Language::SV => "paket per sekund", Language::FI => "pakettia sekunnissa", - Language::JP => "1 秒あたりのパケット数", + Language::JA => "1 秒あたりのパケット数", } } @@ -931,7 +931,7 @@ pub fn bytes_translation(language: Language) -> &'static str { Language::RU => "байтов", // Language::FA => "بایت ها", Language::FI => "tavua", - Language::JP => "バイト", + Language::JA => "バイト", } } @@ -953,7 +953,7 @@ pub fn bytes_chart_translation(language: Language) -> &'static str { // Language::FA => "بایت در ثانیه", Language::SV => "bytes per sekund", Language::FI => "tavua sekunnissa", - Language::JP => "1 秒あたりのバイト量", + Language::JA => "1 秒あたりのバイト量", } } @@ -976,7 +976,7 @@ pub fn recent_report_translation(language: Language) -> &'static str { // Language::FA => "آخرین", Language::SV => "senaste", Language::FI => "viimeisin", - Language::JP => "最新", + Language::JA => "最新", } } @@ -999,7 +999,7 @@ pub fn packets_report_translation(language: Language) -> &'static str { // Language::FA => "بیشترین بسته ها", Language::SV => "flest paket", Language::FI => "eniten paketteja", - Language::JP => "パケット数の多い順", + Language::JA => "パケット数の多い順", } } @@ -1022,7 +1022,7 @@ pub fn bytes_report_translation(language: Language) -> &'static str { // Language::FA => "بیشترین بایت ها", Language::SV => "flest bytes", Language::FI => "eniten tavuja", - Language::JP => "バイト量の多い順", + Language::JA => "バイト量の多い順", } } @@ -1065,7 +1065,7 @@ pub fn notifications_title_translation(language: Language) -> Text<'static, Rend // Language::FA => "اعلان های خود را سفارشی کنید", Language::SV => "Anpassa dina notifikationer", Language::FI => "Muokkaa ilmoituksiasi", - Language::JP => "通知のカスタマイズ", + Language::JA => "通知のカスタマイズ", }) } @@ -1088,7 +1088,7 @@ pub fn appearance_title_translation(language: Language) -> Text<'static, Rendere // Language::FA => "زمینه دلخواه خود را انتخاب کنید", Language::SV => "Välj ditt favorittema", Language::FI => "Valitse suosikkiteemasi", - Language::JP => "テーマを選択してください", + Language::JA => "テーマを選択してください", }) } @@ -1111,7 +1111,7 @@ pub fn languages_title_translation(language: Language) -> Text<'static, Renderer // Language::FA => "زبان خود را انتخاب کنید", Language::SV => "Välj ditt språk", Language::FI => "Valitse kielesi", - Language::JP => "表示言語を選択してください", + Language::JA => "表示言語を選択してください", }) } @@ -1134,7 +1134,7 @@ pub fn active_filters_translation(language: Language) -> &'static str { // Language::FA => "صافی های فعال", Language::SV => "Aktiva filter", Language::FI => "Aktiiviset suodattimet", - Language::JP => "適用されているフィルター", + Language::JA => "適用されているフィルター", } } @@ -1157,7 +1157,7 @@ pub fn none_translation(language: Language) -> String { // Language::FA => "هیچ کدام", Language::SV => "inga", Language::FI => "ei mitään", - Language::JP => "なし", + Language::JA => "なし", } .to_string() } @@ -1181,7 +1181,7 @@ pub fn yeti_night_translation(language: Language) -> &'static str { // Language::FA => "زمینه تاریک اصلی Sniffnet", Language::SV => "Sniffnets ursprungliga mörka tema", Language::FI => "Sniffnetin alkuperäinen tumma teema", - Language::JP => "Sniffnet のオリジナル テーマ", + Language::JA => "Sniffnet のオリジナル テーマ", } } @@ -1203,7 +1203,7 @@ pub fn yeti_day_translation(language: Language) -> &'static str { // Language::FA => "زمینه روشن اصلی Sniffnet", Language::SV => "Sniffnets ursprungliga ljusa tema", Language::FI => "Sniffnetin alkuperäinen vaalea teema", - Language::JP => "Sniffnet のオリジナル ライト テーマ", + Language::JA => "Sniffnet のオリジナル ライト テーマ", } } @@ -1226,7 +1226,7 @@ pub fn deep_sea_translation(language: Language) -> &'static str { // Language::FA => "شیرجه رفتن در آمد و شد شبکه", Language::SV => "För att dyka ned i nätverkstrafiken", Language::FI => "Sukeltaaksesi verkkoliikenteeseen", - Language::JP => "ネットワーク トラフィックにダイブする", + Language::JA => "ネットワーク トラフィックにダイブする", } } @@ -1249,7 +1249,7 @@ pub fn mon_amour_translation(language: Language) -> &'static str { // Language::FA => "زمینه دلپذیر ساخته شده برای رویا پردازان", Language::SV => "Ljuvligt tema gjort för drömmare", Language::FI => "Ihana teema unelmoijille", - Language::JP => "ドリーマーのためのテーマ", + Language::JA => "ドリーマーのためのテーマ", } } @@ -1272,7 +1272,7 @@ pub fn incoming_translation(language: Language) -> &'static str { // Language::FA => "ورودی", Language::SV => "Inkommande", Language::FI => "Saapuva", - Language::JP => "受信", + Language::JA => "受信", } } @@ -1295,7 +1295,7 @@ pub fn outgoing_translation(language: Language) -> &'static str { // Language::FA => "خروجی", Language::SV => "Utgående", Language::FI => "Lähtevä", - Language::JP => "送信", + Language::JA => "送信", } } @@ -1307,7 +1307,7 @@ pub fn notifications_translation(language: Language) -> &'static str { Language::PL => "Powiadomienia", Language::DE => "Benachrichtigungen", Language::UK => "Повідомлення", - Language::ZH => "通知", + Language::ZH | Language::JA => "通知", Language::RO => "Notificări", Language::KO => "알림", Language::TR => "Bildirimler", @@ -1317,7 +1317,6 @@ pub fn notifications_translation(language: Language) -> &'static str { // Language::FA => "اعلان ها", Language::SV => "Notifikationer", Language::FI => "Ilmoitukset", - Language::JP => "通知", } } @@ -1334,7 +1333,7 @@ pub fn style_translation(language: Language) -> &'static str { Language::EL => "Στυλ", // Language::FA => "شیوه", Language::FI => "Tyyli", - Language::JP => "スタイル", + Language::JA => "スタイル", } } @@ -1357,7 +1356,7 @@ pub fn language_translation(language: Language) -> &'static str { // Language::FA => "زبان", Language::SV => "Språk", Language::FI => "Kieli", - Language::JP => "表示言語", + Language::JA => "表示言語", } } @@ -1380,7 +1379,7 @@ pub fn overview_translation(language: Language) -> &'static str { // Language::FA => "نمای کلی", Language::SV => "Översikt", Language::FI => "Yleiskatsaus", - Language::JP => "概要", + Language::JA => "概要", } } @@ -1403,7 +1402,7 @@ pub fn packets_threshold_translation(language: Language) -> &'static str { // Language::FA => "به من اطلاع بده وقتی آستانه یک بسته فراتر رفت", Language::SV => "Notifiera mig när en paketgräns har överstigits", Language::FI => "Ilmoita minulle, kun pakettiraja on ylittynyt", - Language::JP => "パケット数の閾値を超過した場合に通知する", + Language::JA => "パケット数の閾値を超過した場合に通知する", } } @@ -1426,7 +1425,7 @@ pub fn bytes_threshold_translation(language: Language) -> &'static str { // Language::FA => "به من اطلاع بده وقتی آستانه یک بایت فراتر رفت", Language::SV => "Notifiera mig när en gräns för bytes har överstigits", Language::FI => "Ilmoita minulle, kun tavuraja on ylittynyt", - Language::JP => "バイト量の閾値を調査した場合に通知する", + Language::JA => "バイト量の閾値を調査した場合に通知する", } } @@ -1439,7 +1438,7 @@ pub fn per_second_translation(language: Language) -> &'static str { Language::PL => "(na sekundę)", Language::DE => "(pro Sekunde)", Language::UK => "(на секунду)", - Language::ZH | Language::JP => "(每秒) ", + Language::ZH | Language::JA => "(每秒) ", Language::RO => "(pe secundă)", Language::KO => "(초당)", Language::TR => "(her saniye)", @@ -1470,7 +1469,7 @@ pub fn specify_multiples_translation(language: Language) -> &'static str { // Language::FA => "؛ شما همچنین می توانید 'M'، 'K' و 'G' را تعیین کنید", Language::SV => "; du kan också ange 'K', 'M' och 'G'", Language::FI => "; voit myös määrittää 'K', 'M' tai 'G'", - Language::JP => "; 'K', 'M', 'G' を選択できます", + Language::JA => "; 'K', 'M', 'G' を選択できます", } } @@ -1495,7 +1494,7 @@ pub fn favorite_notification_translation(language: Language) -> &'static str { // Language::FA => "به من اطلاع بده وقتی داده جدید از پسندیده های من مبادله شد", Language::SV => "Notifiera mig när ny data utbyts av mina favoriter", Language::FI => "Ilmoita minulle, kun suosikkini vaihtavat uusia tietoja", - Language::JP => "お気に入りに指定したホストに関してデータ送受信があった場合に通知する", + Language::JA => "お気に入りに指定したホストに関してデータ送受信があった場合に通知する", } } @@ -1518,7 +1517,7 @@ pub fn threshold_translation(language: Language) -> String { // Language::FA => "آستانه".to_string(), Language::SV => "Gräns".to_string(), Language::FI => "Raja".to_string(), - Language::JP => "閾値".to_string(), + Language::JA => "閾値".to_string(), } } @@ -1529,7 +1528,7 @@ pub fn volume_translation(language: Language) -> &'static str { Language::PL => "Głośność", Language::DE => "Lautstärke", Language::UK => "Гучність", - Language::ZH | Language::JP => "通知音量", + Language::ZH | Language::JA => "通知音量", Language::RO => "Volum", Language::KO => "볼륨", Language::TR => "Ses", @@ -1550,7 +1549,7 @@ pub fn sound_translation(language: Language) -> &'static str { Language::PL => "Dźwięk", Language::DE => "Ton", Language::UK | Language::RU => "Звук", - Language::ZH | Language::JP => "通知音", + Language::ZH | Language::JA => "通知音", Language::RO => "Sunet", Language::KO => "사운드", Language::TR => "Ses", @@ -1581,7 +1580,7 @@ pub fn open_report_translation(language: Language) -> &'static str { // Language::FA => "گزارش کامل را باز کن", Language::SV => "Öppna fullständig rapport", Language::FI => "Avaa koko raportti", - Language::JP => "詳細なレポートを開く", + Language::JA => "詳細なレポートを開く", } } @@ -1604,7 +1603,7 @@ pub fn bytes_exceeded_translation(language: Language) -> &'static str { // Language::FA => "آستانه بایت فراتر رفت!", Language::SV => "Gräns för bytes överskriden!", Language::FI => "Tavuraja ylitetty!", - Language::JP => "バイト量の閾値を調査しました!", + Language::JA => "バイト量の閾値を調査しました!", } } @@ -1627,7 +1626,7 @@ pub fn bytes_exceeded_value_translation(language: Language, value: &str) -> Stri // Language::FA => format!("{value} بایت مبادله شده است"), Language::SV => format!("{value} har utbytts"), Language::FI => format!("{value} on vaihdettu"), - Language::JP => format!("{value} の送受信が発生しました"), + Language::JA => format!("{value} の送受信が発生しました"), } } @@ -1650,7 +1649,7 @@ pub fn packets_exceeded_translation(language: Language) -> &'static str { // Language::FA => "آستانه بسته فراتر رفت!", Language::SV => "Paketgräns överskriden!", Language::FI => "Pakettiraja ylitetty!", - Language::JP => "パケット数のしきい値を超過しました!", + Language::JA => "パケット数のしきい値を超過しました!", } } @@ -1694,7 +1693,7 @@ pub fn packets_exceeded_value_translation(language: Language, value: u32) -> Str 1 => "1 paketti vaihdettu".to_owned(), npackets => format!("{npackets} pakettia vaihdettu"), }, - Language::JP => format!("{value} パケットの送受信が発生しました"), + Language::JA => format!("{value} パケットの送受信が発生しました"), } } @@ -1717,7 +1716,7 @@ pub fn favorite_transmitted_translation(language: Language) -> &'static str { // Language::FA => "مبادله داده جدید از پسندیده ها!", Language::SV => "Ny data utbytt av favoriter!", Language::FI => "Uusia tietoja vaihdettu suosikeista!", - Language::JP => "お気に入りのホストで新しいデータ送受信が発生しました!", + Language::JA => "お気に入りのホストで新しいデータ送受信が発生しました!", } } @@ -1774,7 +1773,7 @@ pub fn no_notifications_set_translation(language: Language) -> Text<'static, Ren Language::FI => "Et ole vielä ottanut ilmoituksia käyttöön!\n\n\ Kun olet ottanut ne käyttöön, tällä sivulla näkyy loki ilmoituksistasi\n\n\ Voit ottaa ilmoitukset käyttöön asetuksista:", - Language::JP => "まだ通知を有効にしていません!\n\n\ + Language::JA => "まだ通知を有効にしていません!\n\n\ 有効化後、このページ上で通知のログが確認できます。\n\n\ 通知設定は設定画面から変更可能です:", }) @@ -1852,7 +1851,7 @@ pub fn no_notifications_received_translation( "Ei mitään nähtävää tällä hetkellä...\n\n\ Kun saat ilmoituksen, se näkyy tässä" } - Language::JP => { + Language::JA => { "通知はまだ何もありません...\n\n\ 通知があると、ここに表示されます" } @@ -1878,6 +1877,6 @@ pub fn only_last_30_translation(language: Language) -> &'static str { // Language::FA => "تنها ۳۰ اعلان آخر نمایش داده شده اند", Language::SV => "Endast de senaste 30 notifikationerna visas", Language::FI => "Vain viimeiset 30 ilmoitusta näytetään", - Language::JP => "最新の通知 30 件のみ表示されます", + Language::JA => "最新の通知 30 件のみ表示されます", } } diff --git a/src/translations/translations_2.rs b/src/translations/translations_2.rs index d57406ca..65bf0d3e 100644 --- a/src/translations/translations_2.rs +++ b/src/translations/translations_2.rs @@ -20,7 +20,7 @@ pub fn new_version_available_translation(language: Language) -> &'static str { Language::RO => "O versiune nouă este disponibilă!", Language::PL => "Nowsza wersja jest dostępna!", Language::FR => "Une nouvelle version est disponible!", - Language::JP => "新しいバージョンが利用可能になりました!", + Language::JA => "新しいバージョンが利用可能になりました!", _ => "A newer version is available!", } } @@ -63,7 +63,7 @@ pub fn connection_details_translation(language: Language) -> &'static str { Language::RO => "Detalii conexiune", Language::PL => "Szczegóły połączenia", Language::FR => "Détails de la connexion", - Language::JP => "接続の詳細", + Language::JA => "接続の詳細", _ => "Connection details", } } @@ -85,7 +85,7 @@ pub fn dropped_packets_translation(language: Language) -> &'static str { Language::RO => "Pachete pierdute", Language::PL => "Utracone pakiety", Language::FR => "Packets perdus", - Language::JP => "ドロップしたパケット", + Language::JA => "ドロップしたパケット", _ => "Dropped packets", } } @@ -107,7 +107,7 @@ pub fn data_representation_translation(language: Language) -> &'static str { Language::RO => "Reprezentarea datelor", Language::PL => "Reprezentacja danych", Language::FR => "Représentation de données", - Language::JP => "データ表示", + Language::JA => "データ表示", _ => "Data representation", } } @@ -129,7 +129,7 @@ pub fn host_translation(language: Language) -> &'static str { Language::RO => "Host rețea", Language::PL => "Host sieciowy", Language::FR => "Host réseaux", - Language::JP => "ネットワーク ホスト", + Language::JA => "ネットワーク ホスト", _ => "Network host", } } @@ -151,7 +151,7 @@ pub fn only_top_30_hosts_translation(language: Language) -> &'static str { Language::RO => "Doar primele 30 de host-uri sunt afișate aici", Language::PL => "Tylko 30 pierwszych hostów jest wyświetlanych", Language::FR => "Seuls les 30 premiers hôtes sont affichés ici", - Language::JP => "上位 30 件のホストのみが表示されます", + Language::JA => "上位 30 件のホストのみが表示されます", _ => "Only the top 30 hosts are displayed here", } } @@ -216,7 +216,7 @@ pub fn unknown_translation(language: Language) -> String { Language::RO => "Locație necunoscută", Language::PL => "Nieznana lokalizacja", Language::FR => "Localisation inconnue", - Language::JP => "不明なロケーション", + Language::JA => "不明なロケーション", _ => "Unknown location", } .to_string() @@ -239,7 +239,7 @@ pub fn your_network_adapter_translation(language: Language) -> String { Language::RO => "Adaptorul dvs. de rețea", Language::PL => "Twój adapter sieciowy", Language::FR => "Votre carte réseau", - Language::JP => "自身のネットワーク アダプター", + Language::JA => "自身のネットワーク アダプター", _ => "Your network adapter", } .to_string() @@ -262,7 +262,7 @@ pub fn socket_address_translation(language: Language) -> &'static str { Language::RO => "Adresa socket-ului", Language::PL => "Adres gniazda", Language::FR => "Adresse du socket", - Language::JP => "ソケット アドレス", + Language::JA => "ソケット アドレス", _ => "Socket address", } } @@ -284,7 +284,7 @@ pub fn mac_address_translation(language: Language) -> &'static str { Language::RO => "Adresa MAC", Language::PL => "Adres MAC", Language::FR => "Adresse MAC", - Language::JP => "MAC アドレス", + Language::JA => "MAC アドレス", _ => "MAC address", } } @@ -306,7 +306,7 @@ pub fn source_translation(language: Language) -> &'static str { Language::RO => "Sursă", Language::PL => "Źródło", Language::FR => "Source", - Language::JP => "送信元", + Language::JA => "送信元", _ => "Source", } } @@ -327,7 +327,7 @@ pub fn destination_translation(language: Language) -> &'static str { Language::RO => "Destinație", Language::PL => "Miejsce docelowe", // Depending on context these two are also valid: "Przeznaczenie" / "Cel" Language::FR => "Destination", - Language::JP => "送信先", + Language::JA => "送信先", _ => "Destination", } } @@ -344,7 +344,7 @@ pub fn fqdn_translation(language: Language) -> &'static str { // Language::FA => "نام دامنه جامع الشرایط", Language::ES => "Nombre de dominio completo", Language::KO => "절대 도메인 네임", - Language::ZH | Language::JP => "FQDN", + Language::ZH | Language::JA => "FQDN", Language::UK => "Повністю визначене доменне ім'я", Language::RO => "Nume de domeniu complet calificat", Language::PL => "Pełna nazwa domeny", @@ -370,7 +370,7 @@ pub fn administrative_entity_translation(language: Language) -> &'static str { Language::RO => "Numele sistemului autonom", Language::PL => "Nazwa autonomicznego systemu", Language::FR => "Nom du système autonome", - Language::JP => "AS 名", + Language::JA => "AS 名", _ => "Autonomous System name", } } @@ -392,7 +392,7 @@ pub fn transmitted_data_translation(language: Language) -> &'static str { Language::RO => "Date transmise", Language::PL => "Przesłane dane", Language::FR => "Données transmises", - Language::JP => "転送データ", + Language::JA => "転送データ", _ => "Transmitted data", } } @@ -414,7 +414,7 @@ pub fn country_translation(language: Language) -> &'static str { Language::RO => "Țară", Language::PL => "Kraj", Language::FR => "Pays", - Language::JP => "国", + Language::JA => "国", _ => "Country", } } @@ -436,7 +436,7 @@ pub fn domain_name_translation(language: Language) -> &'static str { Language::RO => "Nume domeniu", Language::PL => "Nazwa domeny", Language::FR => "Nom de domaine", - Language::JP => "ドメイン名", + Language::JA => "ドメイン名", _ => "Domain name", } } @@ -458,7 +458,7 @@ pub fn only_show_favorites_translation(language: Language) -> &'static str { Language::RO => "Arată doar favorite", Language::PL => "Pokaż tylko ulubione", Language::FR => "Afficher uniquement les favoris", - Language::JP => "お気に入りのみを表示する", + Language::JA => "お気に入りのみを表示する", _ => "Only show favorites", } } @@ -480,7 +480,7 @@ pub fn search_filters_translation(language: Language) -> &'static str { Language::RO => "Filtre de căutare", Language::PL => "Filtry wyszukiwania", Language::FR => "Filtres de recherche", - Language::JP => "検索フィルター", + Language::JA => "検索フィルター", _ => "Search filters", } } @@ -502,7 +502,7 @@ pub fn no_search_results_translation(language: Language) -> &'static str { Language::RO => "Niciun rezultat disponibil conform filtrelor de căutare specificate", Language::PL => "Brak wyników zgodnych z określonymi filtrami wyszukiwania", Language::FR => "Aucun résultat disponible selon les filtres de recherche spécifiés", - Language::JP => "指定されたフィルター条件で表示できる結果はありません", + Language::JA => "指定されたフィルター条件で表示できる結果はありません", _ => "No result available according to the specified search filters", } } @@ -529,7 +529,7 @@ pub fn showing_results_translation( Language::RO => format!("Se afișează {start}-{end} din {total} rezultate"), Language::PL => format!("Wyświetlanie {start}-{end} z {total} wyników"), Language::FR => format!("Affichage de {start}-{end} de {total} résultats totaux"), - Language::JP => format!("{start} から {end} までの結果の合計: {total}"), + Language::JA => format!("{start} から {end} までの結果の合計: {total}"), _ => format!("Showing {start}-{end} of {total} total results"), } } @@ -552,7 +552,7 @@ pub fn color_gradients_translation(language: Language) -> &'static str { Language::RO => "Aplicați gradient de culoare", Language::PL => "Zastosuj gradient kolorów", Language::FR => "Appliquer des gradients de couleur", - Language::JP => "グラデーションを適用する", + Language::JA => "グラデーションを適用する", _ => "Apply color gradients", } } diff --git a/src/translations/types/language.rs b/src/translations/types/language.rs index db96eeb1..d4d0eb08 100644 --- a/src/translations/types/language.rs +++ b/src/translations/types/language.rs @@ -46,7 +46,7 @@ pub enum Language { /// Finnish FI, /// Japanese - JP, + JA, } impl Default for Language { @@ -56,11 +56,11 @@ impl Default for Language { } impl Language { - pub(crate) const ROW1: [Language; 4] = [Language::EN, Language::DE, Language::EL, Language::ES]; - pub(crate) const ROW2: [Language; 4] = [Language::FI, Language::FR, Language::IT, Language::KO]; - pub(crate) const ROW3: [Language; 4] = [Language::PL, Language::PT, Language::RO, Language::RU]; - pub(crate) const ROW4: [Language; 4] = [Language::SV, Language::TR, Language::UK, Language::ZH]; - pub(crate) const ROW5: [Language; 1] = [Language::JP]; + pub(crate) const ROW1: [Language; 1] = [Language::EN]; + pub(crate) const ROW2: [Language; 4] = [Language::DE, Language::EL, Language::ES, Language::FI]; + pub(crate) const ROW3: [Language; 4] = [Language::FR, Language::IT, Language::JA, Language::KO]; + pub(crate) const ROW4: [Language; 4] = [Language::PL, Language::PT, Language::RO, Language::RU]; + pub(crate) const ROW5: [Language; 4] = [Language::SV, Language::TR, Language::UK, Language::ZH]; pub fn get_radio_label(&self) -> &str { match self { @@ -81,7 +81,7 @@ impl Language { // Language::FA => "فارسی", Language::SV => "Svenska", Language::FI => "Suomi", - Language::JP => "日本語", + Language::JA => "日本語", } } @@ -104,7 +104,7 @@ impl Language { // Language::FA => IR, Language::SV => SE, Language::FI => FI, - Language::JP => JP, + Language::JA => JP, }))) .width(Length::Fixed(FLAGS_WIDTH_SMALL)) } From 501915c9258686e34274e735ab21527cddef5194 Mon Sep 17 00:00:00 2001 From: hirotake111 Date: Fri, 18 Aug 2023 22:42:38 +0900 Subject: [PATCH 3/3] fix & add some Japanese words --- src/translations/translations.rs | 12 ++++++------ src/translations/translations_2.rs | 5 ++++- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/translations/translations.rs b/src/translations/translations.rs index 15a6baf3..45cecd33 100644 --- a/src/translations/translations.rs +++ b/src/translations/translations.rs @@ -636,7 +636,7 @@ pub fn filtered_bytes_translation(language: Language) -> &'static str { // Language::FA => "بایت های صاف شده", Language::SV => "Filtrerade bytes", Language::FI => "Suodatettuja tavuja", - Language::JA => "フィルタリングされたバイト数", + Language::JA => "フィルタリングされたバイト", } } @@ -888,7 +888,7 @@ pub fn packets_translation(language: Language) -> &'static str { Language::EL => "πακέτα", // Language::FA => "بسته ها", Language::FI => "paketit", - Language::JA => "パケット数", + Language::JA => "パケット", } } @@ -976,7 +976,7 @@ pub fn recent_report_translation(language: Language) -> &'static str { // Language::FA => "آخرین", Language::SV => "senaste", Language::FI => "viimeisin", - Language::JA => "最新", + Language::JA => "新しい順", } } @@ -1226,7 +1226,7 @@ pub fn deep_sea_translation(language: Language) -> &'static str { // Language::FA => "شیرجه رفتن در آمد و شد شبکه", Language::SV => "För att dyka ned i nätverkstrafiken", Language::FI => "Sukeltaaksesi verkkoliikenteeseen", - Language::JA => "ネットワーク トラフィックにダイブする", + Language::JA => "ネットワーク トラフィックにダイブ", } } @@ -1425,7 +1425,7 @@ pub fn bytes_threshold_translation(language: Language) -> &'static str { // Language::FA => "به من اطلاع بده وقتی آستانه یک بایت فراتر رفت", Language::SV => "Notifiera mig när en gräns för bytes har överstigits", Language::FI => "Ilmoita minulle, kun tavuraja on ylittynyt", - Language::JA => "バイト量の閾値を調査した場合に通知する", + Language::JA => "バイト量の閾値を超過した場合に通知する", } } @@ -1469,7 +1469,7 @@ pub fn specify_multiples_translation(language: Language) -> &'static str { // Language::FA => "؛ شما همچنین می توانید 'M'، 'K' و 'G' را تعیین کنید", Language::SV => "; du kan också ange 'K', 'M' och 'G'", Language::FI => "; voit myös määrittää 'K', 'M' tai 'G'", - Language::JA => "; 'K', 'M', 'G' を選択できます", + Language::JA => "; 'K', 'M', 'G' が選択可能です", } } diff --git a/src/translations/translations_2.rs b/src/translations/translations_2.rs index 65bf0d3e..217dbf3c 100644 --- a/src/translations/translations_2.rs +++ b/src/translations/translations_2.rs @@ -42,6 +42,7 @@ pub fn inspect_translation(language: Language) -> &'static str { Language::ZH => "检查", Language::UK => "Інспектувати", Language::RO => "Inspectați", + Language::JA => "検査", _ => "Inspect", } } @@ -173,6 +174,7 @@ pub fn sort_by_translation(language: Language) -> &'static str { Language::RO => "Filtrează după", Language::PL => "Sortuj według", Language::FR => "Trier par", + Language::JA => "ソート", _ => "Sort by", } } @@ -194,6 +196,7 @@ pub fn local_translation(language: Language) -> String { Language::RO => "Rețea locală", Language::PL => "Sieć lokalna", Language::FR => "Réseau local", + Language::JA => "ローカル ネットワーク", _ => "Local network", } .to_string() @@ -529,7 +532,7 @@ pub fn showing_results_translation( Language::RO => format!("Se afișează {start}-{end} din {total} rezultate"), Language::PL => format!("Wyświetlanie {start}-{end} z {total} wyników"), Language::FR => format!("Affichage de {start}-{end} de {total} résultats totaux"), - Language::JA => format!("{start} から {end} までの結果の合計: {total}"), + Language::JA => format!("{total} 件中の {start}-{end} 件を表示"), _ => format!("Showing {start}-{end} of {total} total results"), } }