From b91155f8ebaee466d6f296d501b5432960eb935d Mon Sep 17 00:00:00 2001 From: gerrit Date: Tue, 18 Apr 2023 09:01:30 +0800 Subject: [PATCH 1/7] ci: update build version to 01.06.00.66 Change-Id: If03ab70b463e8a16bd76992e5608a940281a4c9b --- version.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.inc b/version.inc index 809e88c8a0..219cd935f2 100644 --- a/version.inc +++ b/version.inc @@ -10,4 +10,4 @@ endif() if(NOT DEFINED BBL_INTERNAL_TESTING) set(BBL_INTERNAL_TESTING "1") endif() -set(SLIC3R_VERSION "01.06.00.65") +set(SLIC3R_VERSION "01.06.00.66") From f793254e16534a692969d6f45406795fc7f985ed Mon Sep 17 00:00:00 2001 From: Arthur Date: Mon, 17 Apr 2023 17:34:40 +0800 Subject: [PATCH 2/7] NEW: add icon of rectilinear_interlaced pattern Change-Id: I2b91167a7efbdd239e0d46fb9643529144c04107 --- .../images/param_rectilinear_interlaced.svg | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 resources/images/param_rectilinear_interlaced.svg diff --git a/resources/images/param_rectilinear_interlaced.svg b/resources/images/param_rectilinear_interlaced.svg new file mode 100644 index 0000000000..729cc3b84b --- /dev/null +++ b/resources/images/param_rectilinear_interlaced.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + From 793c50b1a6033b2c92a93d9177e0b6c28f430b49 Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Tue, 18 Apr 2023 08:45:43 +0800 Subject: [PATCH 3/7] ENH: linux: use ubuntu_latest to compile image for ubuntu Change-Id: Idb14b776c9215752d37f16167c15b96588b91f22 --- .github/workflows/build_ubuntu.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_ubuntu.yml b/.github/workflows/build_ubuntu.yml index 7e1adf506e..88fbbca331 100644 --- a/.github/workflows/build_ubuntu.yml +++ b/.github/workflows/build_ubuntu.yml @@ -6,7 +6,7 @@ jobs: appimage-builder: name: Linux AppImage Build - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 From ad035fa637d7f2b08ec2ead6ba635a425dccd8d2 Mon Sep 17 00:00:00 2001 From: "maosheng.wei" Date: Mon, 17 Apr 2023 11:15:27 +0800 Subject: [PATCH 4/7] FIX: [STUDIO-2698] Load failed content translation Jira: STUDIO-2698 Change-Id: Ic59868492eff4f91b765cb0907a94a880dba9c0f --- bbl/i18n/BambuStudio.pot | 6 +++--- bbl/i18n/de/BambuStudio_de.po | 10 +++++----- bbl/i18n/en/BambuStudio_en.po | 10 +++++----- bbl/i18n/es/BambuStudio_es.po | 6 +++--- bbl/i18n/fr/BambuStudio_fr.po | 24 ++++++++++++------------ bbl/i18n/hu/BambuStudio_hu.po | 6 +++--- bbl/i18n/it/BambuStudio_it.po | 14 +++++++------- bbl/i18n/ja/BambuStudio_ja.po | 6 +++--- bbl/i18n/nl/BambuStudio_nl.po | 6 +++--- bbl/i18n/sv/BambuStudio_sv.po | 12 ++++++------ bbl/i18n/zh_cn/BambuStudio_zh_CN.po | 25 ++++++++++++++++++++----- resources/i18n/zh_cn/BambuStudio.mo | Bin 213684 -> 214338 bytes src/libslic3r/Model.cpp | 21 +++++++++++++-------- 13 files changed, 83 insertions(+), 63 deletions(-) diff --git a/bbl/i18n/BambuStudio.pot b/bbl/i18n/BambuStudio.pot index 271c8bf766..1320f304bd 100644 --- a/bbl/i18n/BambuStudio.pot +++ b/bbl/i18n/BambuStudio.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-16 12:36+0800\n" +"POT-Creation-Date: 2023-04-17 10:55+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -4904,8 +4904,8 @@ msgstr "" msgid "" "When recording timelapse without toolhead, it is recommended to add a " "\"Timelapse Wipe Tower\" \n" -"by right-click the empty position of build plate and choose \"Add " -"Primitive\"->\"Timelapse Wipe Tower\"." +"by right-click the empty position of build plate and choose \"Add Primitive" +"\"->\"Timelapse Wipe Tower\"." msgstr "" msgid "Line width" diff --git a/bbl/i18n/de/BambuStudio_de.po b/bbl/i18n/de/BambuStudio_de.po index 03a5be417a..f96f93a012 100644 --- a/bbl/i18n/de/BambuStudio_de.po +++ b/bbl/i18n/de/BambuStudio_de.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-16 12:36+0800\n" +"POT-Creation-Date: 2023-04-17 10:55+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -5291,13 +5291,13 @@ msgstr "" msgid "" "When recording timelapse without toolhead, it is recommended to add a " "\"Timelapse Wipe Tower\" \n" -"by right-click the empty position of build plate and choose \"Add " -"Primitive\"->\"Timelapse Wipe Tower\"." +"by right-click the empty position of build plate and choose \"Add Primitive" +"\"->\"Timelapse Wipe Tower\"." msgstr "" "Wenn Sie einen Zeitraffer ohne Werkzeugkopf aufnehmen, wird empfohlen, einen " "\"Timelapse Wischturm\" hinzuzufügen, indem Sie mit der rechten Maustaste " -"auf die leere Position der Bauplatte klicken und \"Primitiv hinzufügen\"-" -">\"Timelapse Wischturm\" wählen." +"auf die leere Position der Bauplatte klicken und \"Primitiv hinzufügen\"->" +"\"Timelapse Wischturm\" wählen." msgid "Line width" msgstr "Breite der Linie" diff --git a/bbl/i18n/en/BambuStudio_en.po b/bbl/i18n/en/BambuStudio_en.po index a1cedf3284..b6999ba991 100644 --- a/bbl/i18n/en/BambuStudio_en.po +++ b/bbl/i18n/en/BambuStudio_en.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-16 12:36+0800\n" +"POT-Creation-Date: 2023-04-17 10:55+0800\n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -5168,13 +5168,13 @@ msgstr "" msgid "" "When recording timelapse without toolhead, it is recommended to add a " "\"Timelapse Wipe Tower\" \n" -"by right-click the empty position of build plate and choose \"Add " -"Primitive\"->\"Timelapse Wipe Tower\"." +"by right-click the empty position of build plate and choose \"Add Primitive" +"\"->\"Timelapse Wipe Tower\"." msgstr "" "When recording timelapse without toolhead, it is recommended to add a " "\"Timelapse Wipe Tower\" \n" -"by right-click the empty position of build plate and choose \"Add " -"Primitive\"->\"Timelapse Wipe Tower\"." +"by right-click the empty position of build plate and choose \"Add Primitive" +"\"->\"Timelapse Wipe Tower\"." msgid "Line width" msgstr "Line width" diff --git a/bbl/i18n/es/BambuStudio_es.po b/bbl/i18n/es/BambuStudio_es.po index a387cf2d66..8cd83e4681 100644 --- a/bbl/i18n/es/BambuStudio_es.po +++ b/bbl/i18n/es/BambuStudio_es.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-16 12:36+0800\n" +"POT-Creation-Date: 2023-04-17 10:55+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -5268,8 +5268,8 @@ msgstr "" msgid "" "When recording timelapse without toolhead, it is recommended to add a " "\"Timelapse Wipe Tower\" \n" -"by right-click the empty position of build plate and choose \"Add " -"Primitive\"->\"Timelapse Wipe Tower\"." +"by right-click the empty position of build plate and choose \"Add Primitive" +"\"->\"Timelapse Wipe Tower\"." msgstr "" "Al grabar timelapse sin el cabezal de la herramienta, se recomienda añadir " "una «Torre de purga para el timelapse» \n" diff --git a/bbl/i18n/fr/BambuStudio_fr.po b/bbl/i18n/fr/BambuStudio_fr.po index 9b380eaca2..4425de70b8 100644 --- a/bbl/i18n/fr/BambuStudio_fr.po +++ b/bbl/i18n/fr/BambuStudio_fr.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-16 12:36+0800\n" +"POT-Creation-Date: 2023-04-17 10:55+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -1529,8 +1529,8 @@ msgid "" "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "load or unload filiament." msgstr "" -"Choisissez un slot AMS puis appuyez sur le bouton \"charger\" " -"ou\"Décharger\" pour charger ou décharger automatiquement le filament." +"Choisissez un slot AMS puis appuyez sur le bouton \"charger\" ou\"Décharger" +"\" pour charger ou décharger automatiquement le filament." msgid "Edit" msgstr "Éditer" @@ -5272,8 +5272,8 @@ msgstr "" msgid "" "When recording timelapse without toolhead, it is recommended to add a " "\"Timelapse Wipe Tower\" \n" -"by right-click the empty position of build plate and choose \"Add " -"Primitive\"->\"Timelapse Wipe Tower\"." +"by right-click the empty position of build plate and choose \"Add Primitive" +"\"->\"Timelapse Wipe Tower\"." msgstr "" "Lorsque vous enregistrez un timelapse sans tête d’outil, il est recommandé " "d’ajouter une \"Tour de nettoyage timelapse\".\n" @@ -5401,9 +5401,9 @@ msgid "" "Bed temperature when cool plate is installed. Value 0 means the filament " "does not support to print on the Cool Plate" msgstr "" -"Il s'agit de la température du plateau lorsque le plateau froid (\"Cool " -"plate\") est installé. Une valeur à 0 signifie que ce filament ne peut pas " -"être imprimé sur le plateau froid." +"Il s'agit de la température du plateau lorsque le plateau froid (\"Cool plate" +"\") est installé. Une valeur à 0 signifie que ce filament ne peut pas être " +"imprimé sur le plateau froid." msgid "Engineering plate" msgstr "Plaque d'ingénierie" @@ -6492,8 +6492,8 @@ msgstr "" msgid "The prime tower is not supported in \"By object\" print." msgstr "" -"La tour de nettoyage n'est pas prise en charge dans l'impression \"Par " -"objet\"." +"La tour de nettoyage n'est pas prise en charge dans l'impression \"Par objet" +"\"." msgid "" "The prime tower is not supported when adaptive layer height is on. It " @@ -7078,8 +7078,8 @@ msgid "" "thickness (top+bottom solid layers)" msgstr "" "Ajoutez du remplissage solide à proximité des surfaces inclinées pour " -"garantir l'épaisseur verticale de la coque (couches solides " -"supérieure+inférieure)." +"garantir l'épaisseur verticale de la coque (couches solides supérieure" +"+inférieure)." msgid "Internal bridge support thickness" msgstr "Épaisseur du support interne du pont" diff --git a/bbl/i18n/hu/BambuStudio_hu.po b/bbl/i18n/hu/BambuStudio_hu.po index b1731d7ab3..963ae61851 100644 --- a/bbl/i18n/hu/BambuStudio_hu.po +++ b/bbl/i18n/hu/BambuStudio_hu.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-16 12:36+0800\n" +"POT-Creation-Date: 2023-04-17 10:55+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -5225,8 +5225,8 @@ msgstr "" msgid "" "When recording timelapse without toolhead, it is recommended to add a " "\"Timelapse Wipe Tower\" \n" -"by right-click the empty position of build plate and choose \"Add " -"Primitive\"->\"Timelapse Wipe Tower\"." +"by right-click the empty position of build plate and choose \"Add Primitive" +"\"->\"Timelapse Wipe Tower\"." msgstr "" "Ha a nyomtatófej nélküli timelapse engedélyezve van, javasoljuk, hogy " "helyezz el a tálcán egy „Timelapse törlőtornyot“. Ehhez kattints jobb " diff --git a/bbl/i18n/it/BambuStudio_it.po b/bbl/i18n/it/BambuStudio_it.po index 016d0effa9..ea8a250a89 100644 --- a/bbl/i18n/it/BambuStudio_it.po +++ b/bbl/i18n/it/BambuStudio_it.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-16 12:36+0800\n" +"POT-Creation-Date: 2023-04-17 10:55+0800\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -5238,8 +5238,8 @@ msgstr "" msgid "" "When recording timelapse without toolhead, it is recommended to add a " "\"Timelapse Wipe Tower\" \n" -"by right-click the empty position of build plate and choose \"Add " -"Primitive\"->\"Timelapse Wipe Tower\"." +"by right-click the empty position of build plate and choose \"Add Primitive" +"\"->\"Timelapse Wipe Tower\"." msgstr "" "Quando si registra un timelapse senza testa di satmpa, si consiglia di " "aggiungere un \"Timelapse Torre di pulizia\"\n" @@ -6122,8 +6122,8 @@ msgid "" msgstr "" "È stato rilevato un aggiornamento importante che deve essere eseguito prima " "che la stampa possa continuare. Si desidera aggiornare ora? È possibile " -"effettuare l'aggiornamento anche in un secondo momento da \"Aggiorna " -"firmware\"." +"effettuare l'aggiornamento anche in un secondo momento da \"Aggiorna firmware" +"\"." msgid "" "The firmware version is abnormal. Repairing and updating are required before " @@ -10236,8 +10236,8 @@ msgstr "" #~ "Quando si registra un timelapse senza testa di satmpa, si consiglia di " #~ "aggiungere un \"Timelapse Torre di pulizia\"\n" #~ "facendo clic con il pulsante destro del mouse sulla posizione vuota del " -#~ "piatto e scegli \"Aggiungi primitiva\" ->\"Timelapse Torre di " -#~ "pulizia\"».\n" +#~ "piatto e scegli \"Aggiungi primitiva\" ->\"Timelapse Torre di pulizia" +#~ "\"».\n" #~ msgid "" #~ "When sparse infill density is low, the internal solid infill or internal " diff --git a/bbl/i18n/ja/BambuStudio_ja.po b/bbl/i18n/ja/BambuStudio_ja.po index 0f55d662ea..bd490d37bd 100644 --- a/bbl/i18n/ja/BambuStudio_ja.po +++ b/bbl/i18n/ja/BambuStudio_ja.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-16 12:36+0800\n" +"POT-Creation-Date: 2023-04-17 10:55+0800\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -5052,8 +5052,8 @@ msgstr "" msgid "" "When recording timelapse without toolhead, it is recommended to add a " "\"Timelapse Wipe Tower\" \n" -"by right-click the empty position of build plate and choose \"Add " -"Primitive\"->\"Timelapse Wipe Tower\"." +"by right-click the empty position of build plate and choose \"Add Primitive" +"\"->\"Timelapse Wipe Tower\"." msgstr "" "ヘッド無しのタイムラプスビデオを録画する時に、「タイムラプスプライムタワー」" "を追加してください。プレートで右クリックして、「プリミティブを追加」→「タイム" diff --git a/bbl/i18n/nl/BambuStudio_nl.po b/bbl/i18n/nl/BambuStudio_nl.po index 727401cb61..94acc4aca6 100644 --- a/bbl/i18n/nl/BambuStudio_nl.po +++ b/bbl/i18n/nl/BambuStudio_nl.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-16 12:36+0800\n" +"POT-Creation-Date: 2023-04-17 10:55+0800\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -5276,8 +5276,8 @@ msgstr "" msgid "" "When recording timelapse without toolhead, it is recommended to add a " "\"Timelapse Wipe Tower\" \n" -"by right-click the empty position of build plate and choose \"Add " -"Primitive\"->\"Timelapse Wipe Tower\"." +"by right-click the empty position of build plate and choose \"Add Primitive" +"\"->\"Timelapse Wipe Tower\"." msgstr "" "Bij het opnemen van timelapse zonder toolhead is het aan te raden om een " "„Timelapse Wipe Tower” toe te voegen \n" diff --git a/bbl/i18n/sv/BambuStudio_sv.po b/bbl/i18n/sv/BambuStudio_sv.po index 517d67e315..b6bd075c39 100644 --- a/bbl/i18n/sv/BambuStudio_sv.po +++ b/bbl/i18n/sv/BambuStudio_sv.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-16 12:36+0800\n" +"POT-Creation-Date: 2023-04-17 10:55+0800\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -5189,8 +5189,8 @@ msgstr "" msgid "" "When recording timelapse without toolhead, it is recommended to add a " "\"Timelapse Wipe Tower\" \n" -"by right-click the empty position of build plate and choose \"Add " -"Primitive\"->\"Timelapse Wipe Tower\"." +"by right-click the empty position of build plate and choose \"Add Primitive" +"\"->\"Timelapse Wipe Tower\"." msgstr "" "När du spelar in timelapse utan verktygshuvud rekommenderas att du lägger " "till ett \"Timelapse Wipe Tower\".\n" @@ -6833,9 +6833,9 @@ msgid "" "quality for needle and small details" msgstr "" "Aktivera detta val för att sänka utskifts hastigheten för att göra den sista " -"lager tiden inte kortare än lager tidströskeln \"Max fläkthastighets " -"tröskel\", detta så att lager kan kylas under en längre tid. Detta kan " -"förbättra kylnings kvaliteten för små detaljer" +"lager tiden inte kortare än lager tidströskeln \"Max fläkthastighets tröskel" +"\", detta så att lager kan kylas under en längre tid. Detta kan förbättra " +"kylnings kvaliteten för små detaljer" msgid "Normal printing" msgstr "Normal utskrift" diff --git a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po index 0887cd488f..bb5cc9e688 100644 --- a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po +++ b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-16 12:36+0800\n" +"POT-Creation-Date: 2023-04-17 10:55+0800\n" "PO-Revision-Date: 2023-04-16 12:40+0800\n" "Last-Translator: Jiang Yue \n" "Language-Team: \n" @@ -5044,8 +5044,8 @@ msgstr "" msgid "" "When recording timelapse without toolhead, it is recommended to add a " "\"Timelapse Wipe Tower\" \n" -"by right-click the empty position of build plate and choose \"Add " -"Primitive\"->\"Timelapse Wipe Tower\"." +"by right-click the empty position of build plate and choose \"Add Primitive" +"\"->\"Timelapse Wipe Tower\"." msgstr "" "在录制无工具头延时摄影视频时,建议添加“延时摄影擦料塔”\n" "右键单击打印板的空白位置,选择“添加标准模型”->“延时摄影擦料塔”。" @@ -8373,6 +8373,21 @@ msgstr "支撑:正在生成多边形" msgid "Support: generate toolpath" msgstr "支撑:正在生成走线路径" +msgid "Unknown file format. Input file must have .stl, .obj, .amf(.xml) extension." +msgstr "未知的文件格式。输入文件的扩展名必须为.stl、.obj 或 .amf(.xml)。" + +msgid "Loading of a model file failed." +msgstr "加载模型文件失败。" + +msgid "The supplied file couldn't be read because it's empty" +msgstr "无法读取提供的文件,因为该文件为空。" + +msgid "Unknown file format. Input file must have .3mf or .zip.amf extension." +msgstr "未知的文件格式。输入文件的扩展名必须为.3mf或.zip .amf。" + +msgid "Canceled" +msgstr "已取消" + #, c-format, boost-format msgid "Support: generate polygons at layer %d" msgstr "支撑:正在生成层%d的多边形" @@ -12401,8 +12416,8 @@ msgstr "" #~ msgstr "正在准备设置页" #~ msgid "" -#~ "You have the following presets with saved options for \"Print Host " -#~ "upload\"" +#~ "You have the following presets with saved options for \"Print Host upload" +#~ "\"" #~ msgstr "您的以下预设中包含未保存的选项“打印主机上传”" #~ msgid "" diff --git a/resources/i18n/zh_cn/BambuStudio.mo b/resources/i18n/zh_cn/BambuStudio.mo index 0ccce69efa01ab5c80c03bfa00d063f580b159e9..f3adaee720861bf749bdb741d573938e2c04d56d 100644 GIT binary patch delta 50959 zcmZ791(*~^zqjGuU0j#ou)yN(?u)y-ySqCboIrxROMn2uA%qC-9-QC=4=%w1e9v#{ zpL4y}H|NZIS5=ow_w2Bctz%;Eoe|VG^Kjpl6{^R zgiDbu-f~Qa>o64_#t3|X6)^LD&nt+%uq3X=IQS4_;ydh%kq!jv^}Rs^N|7)G%i!;r z34;!LUJlHHEwB-W;0}y|zhiDZjFs^N7RGXiJTE8um=rf4tOU_ZYG;yE#iw&OYp+d zb02q0*9SG@lhD_co+gkG&tWWlgwgRW#>b!&o);SvVmwTXsW3lkE$d-6Jc`lqEvg>x zq~|4u*jN|SqdGnq8{p29%zqRDiB7qxN`adC%%~0&K~-25<6t#Zhnu20(h}9d-l%+I zF$PXXbzmNdqdH<`OooA|^j=3f;*AVCG+qB;cc}a`Q8TgH zuCK$C#J6J#ynq?-HEJNq&v;&Q%!vfrnTK-(xP!bIxtPHduuCa?FRi87D=yr7( z)W~L|PRmcIQ&QlP%U2CGV|6elHo>p317^a(m=%{}Av}dTj?pfw95s$2pb<>O_&6Uc z;s#8E@9cW=Kiv#v#TukHLrvj2RJrY_dX8Z=yn@;jnXkCLRlqET>S$GrrV%wHpp31Q zfZZ_^2Ve;tk45niX2X!HE?+Lx<}Hlc-4#(CsBiK1n3i~7%#3p^z85v4_t4j_k9>`r z3x=ZZOo>q=3&SLs0oCJ@sE$@a?SY1t-Wj##{c$s{LJgqtb$18tf@*LaD&I=1i5IUk z|Ef6C4cA~k>`uG{YK_-n81Bb!@D^&^$IZ-KOh9}k zYG!{$&D23uM=zlU@EA3d&wT=#>QAV(i+b0sZDQ1#hNF6#1GTG5TD&%@f;OmfJuw-6 zje~GLevJw5xdF|>5sKgEh~jMAg8tM8p4XK?xrc6qo3R)143FHseGZN$9{X<>pN1oe zM}6#hV{ig$(}q5AQ=b&okz%NkH$crqC)8%`i`r|WkUimh69{N(R-^X9@2G-DFfm?1 zt=%hBzF1G)-UvrkSkU6-F*5OHs0P}gX09`;-XXXh$6+Ka`ONd?>im}_pe4AD>gfZF zi?2`>g*4S7)rbVDt`rBi_K6o82zQop9WP=0rWM(S_G7# zAtuFMs2)y4?dEyr22{oSQ4Rlz@$e~TLhqI5ErZOM29KkT@iR<~QC_uwZXP$T>XbK-o|6d$weS5Z^>0k!!OzH>8}95urH zm=`NzYaEK%@P--7=P;^=g;67@gz8~^)QG!bKAeqe_&92W*HANc2le!Of~)Zj#>d4U zT!*%x?uW4SUGCO!xY;1*Pe9$7rqC$~rH zV;JdOQ1y(*Vz?8v_8(C*l;X3Sv9!n@^Su%TbfFrK!#b!XxPofvK5FD)UtGtsV{+mx zQRRlBHtR^#3{Eu{S^8SkjQxU|={=~W`2)jr{_hY_g+csZdQ5@Zd}UDQyc%jVHN;BT z3{&7Liyy#b#N!6J^em_mSH$wz857_pOo#_jOLi5%qJ8fUfgJc270(bH6nJj0L=`-W zTGJaAe}y_N(L!7Y6QMes+TvMJ4HQ7lTnT)PH7vbYq@ch|l|^5>yA}aWNgLEi`lCiZ z)m(t8aFt!(U>-%y#9h=3g+vYt%w#lFz3EV!t^j7h7FZO=qB^`ca*!V=c$@^S))C|1F78p00E6@YAxrU>zPqg?-)G^$G8SyvN$nKa=Q8W1twW&j*yZYi{ zC*mo60-Ddb$ubvbC55_o9x|6)cEJVgv=A4K-0y+7UI3IZ~9SUx&rZ0yE7%~evl89u_NmI_rt8X0d;S`f;vv0F)hZ46%;tGc~CRd0kx+_ zqBieL)LvPQ+3*lDaNm1Ppacp3ViqhK+f7w_R0X|J9T{UzLv?g9Y7Mucmf)aWKZTmn ztL7b42OpzmBs5M?;KOKo9HH}8mVhcch~MHx)VXaN*EPHrHMKvZ8rp^G*kP=TSMV6- z3UwX-7uA7i@!S%H;$Y&La3(It%2@a-^69*fCZO~GE$RmJE7rza*ckK05As^#WYq3` zjyhgna6iUN5ES^a`T}aNBunV($&2fVH^L$qHIYj%jn|2H#K7nO3W?ne)J9Eh8=Q!P zP{%295_gbb+w_{>Fl$7(Y9^N1! zGyaVlLBeEi7Z*hx$NH!nN?X+ZqBE-DA2A%apgMRCwU=&SCVY;8nM&?Dm>G3C3Zag3 z9iKoO0#i_%?lp3I_lkxE1-?!zks>JY!{%7*#`O!RhRUXN$E^mc6{26bFInZr?2IUO_LYSavzw(A#B4Lr8=SmEwi z$4AXXZOn>8P~}!3OXhp)E#Y_6=Gu=sJ||FXcHZJQQ1^-Zs2fm*)InZZtc054NvMh! zS$qX*rnX^j+>Khwm#BeyX(Z<_J^@Wx22@1_F)3C+eWGcFx`hr$RWK8^N0wtsJc3%& z2dK>%lGf!9L*>tlx?T#k*_&cG_QV7_|5FL5!Ih|v>_)BKAE*)hg_?<{s1Clf^l0f^ zdVJK(r9h1=1L`ysM&+-FD&NrJtruY>%fgKNig3_E0y>NPHx=#Wkpo#?8q2uTCIM#-PBD-@ULO@lBW$GiGuf zX@L5O))zIRDX6Jlf*RQl)Ku?79p^tR{TgcN?xQyOXS*ILvwJ3lX7=4$<|9EF8lz^S zC92|1s3quws(3gK#tGO1BWH0-)(^F0V^ODMj-{{1am06__DqGW?znfuzQq6V320N4 z&lVK;NvAPtY7U{ET7RM{{*0p^j_W9BwHZp$0Gr)zB!^o$(!J z$4{6J{j53Nl-4v`qB8cx^VknHg;jF7hfr%&#rshCPM|jL8H+zg?Wq^2nG4SCj%94r z5+y*LhBU~M`d)DYb4h4~YUmZJf*5&Rf#j(BL1xT>xlz|!qDIgQgScbP!aBs~0IG@W`0#g%jgIjS7rq}r|lAk4@f|jT?>RTYl`wi!z_CkY#uA-KxJ<<*}vM#8O z^+%nK;g&uNH6u$=OY$q`!_%l4h+N1W&-fTy=RXYr^(YtWqtRVd!(SD4CO6Ze8qSW| zBZW{MsDhf2I;g$U7Il34qi#^sQO9#L29^r71dq{I&!ZM`6{bQ}lm}ID8PxSEW*gM8 z8-m&cGf*8`gnIa_MxBzMP`Bc}sQQke>ig5YjoS2&ig5lX5%^4k*6O>WuD~?Z?q80& z*B?TS_z`LeKA{>2Dds-5$3Wfj;-KyiDNy;dTY3a4e+^Ve>th#eQ;hSkgi|EwcwI%U z(M!`S?&5J!OA?0aXnNF$vRFKiSrFBMVyLC8ikh)OsCuX2JzRq7&^W(@%P6SW6Qn3Ykx zzdk0wi5R$bBb(Ltb`a2JIEI>{8>pFhV(FhO9+!7HQiFRMD3C8SQnR|X7UZHp2!>#Eotmpz6&HLLAT1xsEid+ zd!Qj|vou4U|DLFs7=)^5hFxEP>i7oKvAu~ZAG5YA7mBJUDe8DMo!eoN}XIp)U#j@ssndWoAj9(v%b5rWJEnXA}}4cwe)XLn{^p#DSyV; zI{$kJ=ni(uGTcK=(Z8q;MQ`BZxlto7fqAhe=Eu=?{TEa{hfw*hV_|%bnu#n8oq13L zE`srO{wotu&zhq~+!xh>Z&AB?F6xx5$5glrbql?LTKjjX8Hv@%O>tsWgJGz>k`A>* zc~K3QN0qCOzA|O@ab{dQ}=#;XkO6#cb+K zZe}%$qL!wL+1eb`l=H6(Q%KO}T7_BhC~6b^gV``yGdJ}WFca|(sQgpRE#?LDJ%)2V zta*_40gI!SqEHKG1+%_yfp(}HOJ8%cxyC$zrMP|*H3Ml{+9on9n~lxRSdV;zQA>In zHPaVRQ-96k{(StgF0q;uo+fIP5Floe z7t5jYmu};po()iYqaV^C-y2Urn`APoBMZ%K<_Wug7d1n#P$P=d*6oo5sNI|jHNw28 z^IZh>X}1h&#LZAk&;eDxKSt8|A8Hpypl-oa%mt{Y+z+VJa1?b1yJ*+1qAGlVGx04d z-*@fYo|$JJGGCji+q>gl9h2$&w1n09@X=usGk3d8uW_Q z)q$?4hs*%fUYUhDwwqBM*^j|^1gqk4RJo*`IR83k={mX1RuMG=4KY3TLXC7bs=yNL zfooB>*5sYtPs8<4*L~CyOu%rQjq2#ns5|Ul)D7wqs$(}h`)7Y26O(^&}9Uz zi#f0sYIA;#TAFpJhPI<-Xt#M7wKqSCd$v;Z!}a;Og6 zN6pAn)RMiz2>gti!IHyVhnir1;^R^G{GFH@|3N**lMD~?s-WMWKzaguQ6qbRx|2m= zX7mL^Wz2{jP!&!_!&+8;7+pf>GW)RadZ>83OuYHy@KO??j3%oadReHko=4NwDHi23yV z|Am0=WY5gTqg;gtP!0Wos_+(`W0O6!_|7pwUVYLJVsT6{)-7QZ)Ec)kyWu3_gYY6o z8yDn#k2i6Qp8sRU2L*l!CFVD-#|uziTQgPDjXK{ZqgwO6X4mZ&M_ z!D*I$05#%ssAK&Cl`mu>=U4T^lxQd$k+o*~jVMhFj zy)f-0H)AtV`IccqT!Y#(yHOutE}=H{GgQ93lU=@|+RgfCRf_~|x~>?`8vD45_>w7Z zq%Ehq4)#PeeVH*z@{?e z%yb__QlTm?jM_XAsF|pQn$kuV?}#~x4>W&3-FPmUQD(WB$cGw86^r-43_AZ~38(|> zP(9p?R68S41Dh^s-6ucM~&A*zCps0L!qaUINQ=11i(ilwkT7R2$Wy|Ej0-#Ct1!Z+w^ z#L?!u9)+PYrbUf7r^QR4mY_0fZR?;q+y~X6AsCF`;yIj*n!&d7oI_F1mKmr`xEa;a z?ejSQ+6;S1(5AbHnyNdf^w$=TKHpW86m=)djhgc6s17$pmG6jIu^(zCm!j7EH`G$z z#Ef_kl|Rk`&c7au$rrdALUGiH>YzH%7B!WFP(A+@)$nffB&y=8sB*VaYx@e-zy~wx zLYJNZHS*-B>lu6kx?|-gsCQEPn;)uC&s2A`oG(@__@26Cf1PztrFnxU3vtfenU zEx|6-l>dq9Xz&tOe;Bfdd@sEVc-c{#F+YZ2CDdlCh8j^f)RYZF&CmqYopO#{UxwmhDs0OcKc6@`XFYQvdv}JIx&VNG!HMwvWi($HDZse^nf_NX)jBG_!_&chBi>S4~ zV?MI$&ru_fvE1$Y^r()NK@Fq@YDRltJlglh5zvU{qLyM6>bU%fIq)c|!S|>RMETw= zRXA$KvZ3-vpq8jPYOjn(<)4pQnr*0O$QjgJq`ctl25fGThh)q%695no2#aGs-%YuFlBE+c9N3tZ0X6h9 zR>ULN2fteD)@m$jGp)cpxEs}hSEv!aN3DI(kM2WgD%6ZLL+z;<*bJAU?layxXCl;q z{A>hNVPQ)siM5DVMRjZuF2)U*4Qs3q@|xgK%!`*$n=sY}_q!tDsHJRy1JFm^N#CMo zD%M6s)E^c{s$B2%Y{{_5r=Jcn=m^bBwh?vVaPVuf#_I{cqnSK)<>P| zcBoU*4|V4pj+){rsDUj+4fHH(#y(@<_kX|o$rVVC+QkJ?Bdv+rEDf*{HpSk!61CZq zZg&l&L*>hjI^P9QYhMr5p*Ch$)IjQ^`7WT=L+pk}TR1|DLlP1yvi;UK$y$gW?)t)xHtmGiHHi+^*we)ZbdUyv*V#r>%Y09A1b`a{JF&w+%EY#G8>~l*I5A~TaHHKqZ)J(NQosP+<%{m`d zZjGh;KNHXh_oE&X7f>U5g~}Lxzw2OP)Mm-i+u(5GJCI}UdxZ`Lc}qw*k4v%tA@`9i$zivNieNX=8{$+vh}9K8;-+>Lenj=a-3-Jz=8kDjEKYhqRQWAf3d5;n%*6Yfse40jQqfLhDSCxZfi zM`RpUBp!4sDDaonD&s)nJFs#P-yfcK9Uu0G`_-)ZsPmuXjQd)zI_ieh2Lpfpznp-k zY_Dbb2lEk6e%9T~Yhrrh?d{toqVeEM~_S+`&3{A=_5NrH~sW7M54!3|eobF4#r3~Gih zqoy+UP505P3~Fgcqi#5Run*oqJuU0paw8v$8qg}#jpscU#`U*-Hzf~l+vD>uw;7w^ zVlsTjOt|Qd`-6u=sLfXJZjkpg9>543e$SnjT^ODC3DgW+#I~5|zT0C%a1ZenI1M}a z4_rkbumK5M9=d`tAGsS*Wjs%Mdpv^0{tohXW0c21-c3A&n))A}xb#z~`^S{0uAbAF zn|R!3ZfQ!PIyMPUp?`wFQvwU0yT3^A?F)C|FltxNd1*J8SMElX8uhfxfMu`%YL5&? zjeIw1s*j>>Tw$->Lnk!`6VHgce`G=KC%%`TKy4CApzi%sQ57vi_3%ebheO}ETkulU zUik@?e%;bT{&B}P398|8sCp`+?tpbI-V)VLXAJ!P-ysC_1IH-Ty?>l#SdR42+lsn% z{*HPE97o+DZ=ouBi}5kqTNe*QHJBZhUKsT`pc-nkH%851SB%X4#~VsO6^%qyJRNoG zU5%Qm?WhX(qB?XEb*sIIMKResH`4m3dRk%>?1g#?4n%ce8mgYfsF_)dz7n<(P{utN zhF8pYsE1C%_ckI_2MVJqD2*CPRn(L>#mLwS15Z_pk3^Llk199Sod2HluYxN`NP=rH z9QUCrx`TSiJVG_}5>sRF2e;|cVHM(?Q8V@vYUKM-`Hxxr3Z5c<8`Xi$AKmreK63um z)8izlhxbtxJVza?x2UyG`L8RG9W_(MQBS=FsB)d{dLPu9k3w~5HtKY&u=wAoC4G;r zFp~et6=;vzT!XO=PR0uO7i!aF{p>7`%2xx`v9_p&`k-cV1ZqjgqDDFmHNXW}0Jo!N z<|%4V_@4K>gK^}(blYE#xmHQW)kB*Rc6AA^~25^Bb_qn7SEszY~B z9e9YUClYr7JtLAK`F*bg0gZ4H>Yls=)xe*Ye%pMFy2nQe3Jx68bf^wQpf+hG)Qq%3 zO>s}u0ES>VPQx^~1=Ya|7&!k|38`{UPf1Tzz<|6%6)ZoA`t9a3Z1AoV>F{;7+s2MzpNvP)r2LArfyXe7zsq$h3 z2i7t&YHi}9rYsyaLj_Rhy&`I=M_c+@)am&hmHz_f#K)*52;=uTb%RTdnwj*ddUB!P zia=KaW$`37$M~^=1D|wy<4EF9$}v z9z&ITjB4;RYBR=*?>ZE2<~B>4b$kMWbBwB>59$Uo#xl%Bt>GHf3~aFLKcUX?Q4GdE zQ4L=+pQH9fNCKB0hH57#YKBUnX2`EWKn-`X48t%B@o!NLY)3VG$UKSKOy|wZs1961 z9ow6z4nIJZdt&j|=6g&3jGQ{(i=5DHrZ`xJ0(nt;U;xg;(WsuMO5{4419fMNK#h1j z>iT@t%&kE+yc0QP-T_NLgj&KYsQh2Bs1A6X#IE7WsF6%UZK|oLjH^%;{)F1yzoR;M z7&SxZQBTdgs9SMx5_dld#Wci|qBe6eR0r#zI^F>j>IO5IfNl^|P)jijwOfBc-Ixwz zS^NXlu|!E-N3)@pA}6Zhyr}D?P#tSv@eURrhGm(O?@%*yCK=~nBRNMvJ-UUOqSu%k zlO%VyxK zTc{Do3J>-=Vg#1N)u{A`SPE05cK7ZUn4S21RL72>mgX{QMnluMbDjXTY15VI$PQPR2e z*vOLjUSa|&kOj3ixy=fwg3Zj%s1Xc6t>rj#o~5rde>YE{%3nj}e`N7bc0ERV)yMfu zMnD;|pb8W>E1M0l73pnJ`3|BwdKq<|pP3;UTs$#q_h&`rFO3>tJ+molX4)vO^WTkt z8t!WuMp%42YDs3A+fhq$88s7;G6n~}icMhlL{)qo)8Pfoh#xIIZ6zhF+{$1of}qV5l2nO%AWW+vVfXW=~DjJdP8j^4ph#N%dlGcX;sXXc?g zb~7vIe;k2m+1$CEf|{z;7!^07X69#92M?g`1D8-Ee2c0mEW7()Q5Kbdj=93zj5EeGsDZRKyP(ST zMlInObE8i{YkUQ@cArokh?>i-aRSt4OK0&SsE0~r%!J)6J`2_19jJQFpgM5X{0ns- zc!cW68&o@fwA?O`5OpDq#q*;+&6dX5*vHai=5bS=1oZ(T0`p)~tcsIS6<;+UVq4<> zSiDJI*U^sHRp);M0rm8$U3i1)NSu7Zfp5K1qefN%m9Hgg6Lmn%%sSL**oWF1XHk3N zB^JkI`GW($UDFU-5`T!Qzj6WHX*qw*2^Z$JUy2Di}?p%xNaqJTAn596)OQU9>Hfl4quy|)w zhX!KR$ zfU38bIRRDAa*J;?{Ua8*ZGJQplyPgH9eYr)HtJaIMVS2_)qI)_P zLv^qvDt}MZjcFL_Q||)Qm)0jS@aKOqE4j~XDa|yfhBM$q%#NyXhov7ujr6qn5jBGu zD!ZQ(dZ2D-Tg?Zk&x&DH+%3H_>a*ey^fe`$38-i1P+zA-sp@8;Hfj^K!;&~0>*7w- zh~igs9nFK9p~9$+*0A&z*qeBJi(f`{>?SH-g6f=qbs$}J_v3VV)X1Bg?NC$L)f{Aw zwd>O@J`YvlDpZHJqdIgN)zN#XO&Ga`t3R%ps0Qa>Pq`E%Xw9o*Y3z)uaGj<9j;io7 zYU-Y$I+mfPGcT&+5oQI{z^bD*V^7p4ryHp66+&vcjwSI4sK*6S71l&m)C|?*wq|!r zABf7Qax3s#OV3l=r58qZyu8KhqdMLOH4}r(IjDC0?F3X{Cu;YfM9su4%katKk?OeX z;i%o7*KCNI!C|Nh*PGkS-%vjv?880y3Dw@Nx`7V+-YEk57=0D>NDacRKs~2xN=3z3aI+(njJ75?R$d>WW~jH;TUSIuA?gYgz7+~ zhHfPB%#3Dn)b%>3j<>XUXS+TCwM5@p`c8`3I2=!+Zn@Q(y80)e>Y3M+^RK{C5>(&^)SYk} zevkJp{o7_P-(1v)m*61$3H9kXS9AAtJdCREIqKv2ThvU3w+IgWiD^01t$H}>*>T7x zpaO|nx(=kk1;n#pDP=&-Nc2{2iIQSp;zdy-+KB4V6Fh|>t=-g~MGfd0s{A7yh#yex z^=aeu2U}nSs=#=2rnw9?f(@vtK8ISn`>1330`)l{q^( zhUok+CZK!za#TZqqDFKJ)sZi#2BWuk6@{T1C}fsHb*wf9z6rqw#FwFdQ2Bs2F``3o z;BVEX?&zMPU9p|c{~iLWFk>fo-14EOyfx}m>^Ri*X{d%4o7+$$K88A`cTiLRRcAMl zG^mbews1?@d5cH3K!`pHLZhqdIcI(m$fUK9AhRdCt(%Ky>E^o%%8;NAo`(5xyIpu${PBEJEX4J$s1dC|?S-FFyZkJw zgGqb2nahkNiC4r)WfED1T~TjeVqkR9V&0uL5-*->ewAc z{Y3K)dtlRkZfcLCJ`dbRjktJ!m%l!${?Qot`F{oh^?VI>!Bf}{iw5qg4Q)r|JA^;uNxMF75a+)o2{Q<&z#CM?;K8n<=%{!q z)b$KzUeuCApq8QrYJ{!LAvl)!3{;1b4{;sIjmlpNRd3xPod1FZnvkFdrlZd166}V1 zQ6tYa)TP%z73_ujL^BX`;A&igmr%!W(6C_dKF-9XIBa;Zw+v^a$`|3-hhQn6fD+1~ zrnaiZ>!YTw8LDHtPiQ2AQ6rdw+Re-D`Z3fDTteNDUf@3bf*RnyuU$PK&1fTBJfTlO z9Y}+^V`a8@3CmCp)nIMZ$l9T1WQ4f{)$lI!lKBEvF2+bVkQAtPvRgbKYG8g@3)C{3 zn_bL-<``53(@--r7d2z6?fMqf4DH6Acmb8a!YG%oI_g=`&>ZE``S!%r;!2~{q}XqP{pnbORP>QEtzS4Wj^Vs^o3I{!lmsG`xR5lyuCOw=Y> zfGW5Ib?e-Sn%X<&TiirE#u!)6Z>S~NXI{1RH>hL&ubFx*9oO@}Jb?^Y2Lqc7)uAak z1!rUOApY5malwIqE2ivtx2c|EA+Bfo#>HEqKFG|)_IMg=VZjN(`o&l88+=E+(zkBL zN`J@sS3@-j$oiNHo1sQL47C*Bne)t5n1}SOs1DyZKcULSpX5x7DxViMV-aQ@yWV~h z=f6J}`je0opV);IlU;%AW(4XS*RgmvRENLD2{;bb&{tDj!>Lg5oTv|}#ZdXHoAu15 zI>*Y`h6LHu9A-{1XQM{&y~Veq)_6ba1Isnk+9sRoEQ$Io*cP>C7NPQ;LCsj)X>PBj z_X((HIZ;zr0M(K5s2fZj)SYe!YHfc+b>uHpzJJV+>8^YzY7>W}u4l3If@TG?0qQ>D zcOamQV^JfTj%wgXi|?}Qmn?o4wN#%iJ;x09R4a%cXYn35i}+BB$DiZwBjKnHq(ePD zvto3e{~`oJv8)oX9;)INr~+M4Yt_fnr&)Y4D*sMPKWy>ysDa!--M}89>UnCuG5CoNO*e<=bE$v-JDsTU5uQ&Uf|1L#=%hRD(HC9V~@9rqwOpXFlg& zkKM2B!c5dxF~3-bd#HwAp(={Iz_M>i0fBFQ} zz+==JM_cHQVMa3owRVlnmZ*w4m;=ml=4@2{Rj3ZGxA@Pf8Q5hWN8Mli%LKHxL5p05 z$fydwLT#d?sEX2|dY%K-fwHIy>sop%RJj4>aMZ(RjKwda@?S^I)ZbX0_Px&pbmOVE zI5_aj;_XoxLYKIYQfbZHW=XRe>eMtbyPCtyNvIAlMjhX67Qc*vpEUz<&R^`ME+H)@ zB4a7Dq1nS6i(0CMcpi74KI=_h=3Hp5HFuyoc*wkDJ~TgIE}j3F%U#9AP!%>b+nasO zk*F_^rl6+sGHU7WVN`sCT7s9Tk-xWi-0$5CCqm6^PSjp2je$S^Z)F#LLM_D+i{D25 zjQ0k0jzd=j2mVG>9#lo|QP*RwbbBHrssja49V~$wP!+S0*}<;&Tgmy?E*wdM3a+sW zn@|nxL~Xu5P(KS^L5=JgDu3iv?s_cLOe8|3Cqs20wVA^#idw>os7>5<73W_C`dWq| zc40g&CVh^j7y7||zc_?VYKpsr>;}?;%u!Couy)LJcV1YB$r#eFExfK2(8H zW<^V{ff`v;OK*vR^N*UL0jLia6D<7@s-BBj60f5gOu5E=AjyO(*V^>^5l{!lqYBPM z6-Rru}x7O9f2x074<>pdyAh(+Trj26X?c; zmskK>{^)u-8`ZHtP!(LqwDEN#W66GsB#ri^)xX%+Vy^zPS5|L zc3~-IA>(>fM=qnLFm!#ew;O9>Ka97*H89Scgc|8gR6{FJ4R5yi0c=D3jKvFVbhq9z z82I}?T?lB3C!i`=j;dfIs^Wc^0neg#{|7U4lj}$ZGdqspdOlP=KcVW~hZ@jTOOLziFs zPuY=MIREljq|Sy-&w|ms1dJ0rSG(iCoO&pRly5X2crJu8pwl6FNvzS9;zc9 zQKzW~>Y+0T)uGwu_dWp?*ktZU6})I(M-{khzC=~{1=Ydm+g<*osCYQ)dM-;Zf+}AM z)lPMbw?f^h{O$y_*59ETUTLmF72Jxda1ZK!aLm&0qbhujswnEuu6zbmN3x^x7f038 z$ZU^lrw`Ju?+qrPil$?4T#3yv>5gFU3J$;(Smzg4(R7UFPzq$0psCrVOZb$_& z6&6L!OcNZ3T`=(bf3FlE;R9+D1^w=Jbz)RSRZzRTEoR4WP@8W%D*tWNN3D0L8&>6= zZiEw14X#9;o}W-lbscl!C-ln^$iB;6=z}US4Rx%RnHNwE#@OwSRer2OyaB2M%Td>N zSo{vEp%18mCEep@I2;wvj%p|09?ri4Wi6quWoV09k}j4$(9*|S`efA1EI^HT8){A8 zU^a}mH<e_q%Vqx1fH0k8;4JN1)ce zf>{f7t8Id7@fvDPzd7i>1CDpdJu60_%DqK39CX)%rKW? zX42QA*8Y;EM>*oAK0d0V%&5m}0n|)%Fh`-5W-+S%qZpV8RJ;Bc3&cI@5>lahoD)^B zFskCVsN*#gRqzK?zMoMQ?ln*0O5#^7KI)h&Hw85V%gr@NIp5nvK)=zr6ItK+_$!Pe=JIT6sqD~sE!>pFQ7Vn4^yzj?@{-W#3x;Szhi1W|Bn(-1&>iT zh*y>&=#)#3Vo}#`o zNqyS&yb-EnUClnIf`d^NO|bOYsF5zR_$Islv&9cs{5a~kUPj$do?+nmpWqKyL26Wn ze5i&iqZ+Jb>8;EGs1AIGYIq*%IIc4f+VvaeV^lrwQ8N+!j5GcjJO3$2P=@Sganz=( zhT65mQJZn4#s5Gx{2o(bth26sHcU;t7^;KKQTe){PQ`H4z~ft2Iu*Tek zfn$dH47V3`A9!!qGoE)dlLJ*@BUD4}Q61`U>BGzk=4`v}e@{R?T#J!$55~kpsD{tt zZ+H!rZ{7vh(T%7zKaOhXE~?yPOMi#zP`rz-Ln%@Db6C8B)At$>2;8wyQ#=Y)aF)3o z(-Plk*UzEy-$ykZa>?zH7^rf2Pz{wt+x3$czm7TuuTd4Ix#l`p0$UMpfK6}*s-p?7y9Ogr<*K1(XvlTWzZx288D`pr zW#($s_k$ZTF&;pDj=yH{kEjvGzv1dhYZgH5sYY~auL3L;lYT)1d1T?};mT<`8 z=TJR;gc&f&P21I|{0&hf?~dU(!P3{FD&B*+@g!==yj!j#nNWAgoEGYSYcf*tiu{@m^HEQx?Br@y8bb7yEHN`W^Qbt8Y$4m0ynf`C=mm{`+5X?z#@7 zMrFu^SuwxGTcP$ycZ-ieeQKVB8u2;v3TjDiqdNE*^(i{eJ@>m}rBT;^LoMMY%&7DK zlz^r*(S288II1HVu?Xfv{V8`3OJ9UcowpX%vA1T72d-QSRL8PdJU6PI5*8nXqlu42 zUz;rEL-!j=g;Ae+C!uP6bMb0s160OVs19{B`=M^VBT*lvwxDL<5~{(! zQRP0OW-|D>E1v|Fo*v6%HlIL40(~sQaq}`N<2}?=K0#F+{e?3r>Uw4~7mf?!hfVyI z^j$CAt$WBT_t|nLmLUBw>ggBtwfjlQuS`G{4L~(8+?-@CGS{OIOCs8L77gHPBb684vr&GePG+ErHfp3e~gkQ5iO&D)`y_ z!+eCw7xJ$&6g8zOQ01~)JfB@JYt}*?yXL3?b-=*q|6!J40;+=9sNK8>E8-^9*Ki+D zBPsaFot6QpJK=upg)u${2mWE9p{V2c4qIZcFK+41pc;OGDi_rY@dICtR^u*EhJ;P1 z2Hs#x%pVjI_{(FnP{-^eY6-%FLjs$tF6v%B$>NVuH>?aHA%TXPVNK$FP*1`AxDOv= zdfXVv4+(rha3NAiphvkQhXj6ia{%g#gH!k!vqT9AEJfz1?s{odh4WBLv=`OEE2xiF z{I{6{kMHED>y=QOvb8xHm4BsAU>1R6xIh`AyBYX`A)M!uF`Q*$h6Mgpyh5yyz&|E^ z2DRp`V!IjXg)ND%z`!jxjx)j>jGDQv<^$AB`C)NG0>6n|2Xm6J49DOZ)Ce1fh6Hx| z*Qkp3p{{?z9yltVo9b6)^shn!dnXm@lTIGgS~tVM@wNC~C7gm%{C2n zj8368;oqpK%$LA5SPgXy+u(P&5-aI?LbtZVQ62ssN8@!=$J-=wX0)N+IG0r0%Cs|0~bHr-YkM-wK z1Bjj6bvT36`QJ)lC6*2g@s8s|RK-7~2=RWvGpHFEk}@RlHyVFNZJvKnrzLqRH-k-Z zF7au260?Q720!8s;t5iR1imLciMoG;r{VXX12+r;O2~)$BC(V?-O}%(X6Pjv{|#!&r=U8x8kK(ss-A=CIsdvNog+a$Lf!eeg9MCk zWaKDzoe1U{uB9%t_`TT&Gu?6wTsQR9n!P(p$HX-UWV_Q@QXJS&F|MdjI@Gz>UcTp9*M0F%`c9$O43`1Sd zjOs`+OYdn8GbbRA5N|f7!nu~d!#s$A|Nh5W0-EB#Pz^pp-C$muNpraCCCqZD8&p+P zM>=9%9D?cbG-@FKpnkpx$?59Njru9Ns97f`=U?Z&3kj-df@NHYn%Y&Uind$&eoH@z z+FaMo*Qgs&j9jjxaZm$EhzBqgY6kA&K#ZI_#QOz@=jQw;V~z^v2?_iTXWhIZfxpia zC0|J3SEU!Brno_VcMG0~4T&E{%~an{3wKTU;r>bCK=QPyg z*?&SnkH;iMLIR(57orO8Mm=_;6m>VC8mK93hPpot!+kgjb>pgC%#C!sITIsDUuN;Y zP)qh4)!`_`153nz|Am0oKCzhvwI_<3O;J-e#NrcCQ@RGVNw=dm<5i2lvv`UUuA#za z1nMJL1&epW@hx2j)bBqQq=YJs16=N_537i#Ai^O>Mkn(M=Xlb%D5X(SycYs zsO$aBQKEuEf9;p&CA5@$0ApPf?rmja^Sr)^#L1Du0C82$jD#s^LMX zV?5T<7ov{+_dWrQ0{_=-~U?Wx;p-h zJZq^Z4dL75Rp--aB)nFd+JyYWr-9cY3Uv$o{yot&mY6Iuf2gF|{^#|Mw6*^eFU<9U zR$&pY<>6X))axP!F~UJM!i{t!jfDqLZXVZ{(9!1DhIqzc#@~lb^GQfc1?dQ9r89SJ z^{_k~}^z7D9Y8ujuALqUEgg+3TLRe4E|6WDOuUA1DXl&(P z(ZG1#8qZj+S0VrKKrTMqkY_dDKLn1Qep=D16uk}QUB`OuQdui18A0LMSec6EQ+O=z z9>gn>u77qpjE1XI?hxVRHiIgki1g8v=}dSqqdsdhwKvcP^RM&yJ(W$P;D4`@WSmLC z#5St`(uY#GG--EfcnkU0{Li#2&j!kE#M!)yD8XLelQ#pM`jz~pXiL9ypw~tH_ZLr7 z=%$T0K8?Pnfp0BCdNLoNP+QVR@jk@+|9>qdZz{_lpL$+VpI+T9?{TY}FH!&R6@|1~ zkfI`i}eqtU{e~4LZ%<6^aOFeK9cE{WgJB# z#jL@3=4jG368=EB-zfjy74v4(pkDb%YeikT$@7p7EwE1P=6VQemARh9C-I6k@{EKb zgd=nD65)wda)NL#3iI#9dTD8pFEPBH_}}X~ffc-4*oc#H?MK3~sCO0?B(8sKbQ9r^ zRx!rQ{F1R??Y#QXQ^Z#`7YbYicr_! z|EWWT7L#@emnqDsh|NTV*g{bH`8R~K2FKkHzkEpb!D&v}7ZERWMag2WE z`g%)GO{exyZZ&BKt>Sj1=~aU|-chbM^)%pJhH!n}ovmzO|J}Bp?WI5>HOj?Synm;X zeZ&(|ASdCafhtL(kqne+%e$SGjmb5#dJoB$jzBiTg(;_3F5-i2#$s|k$U50tozVUN z8v^ZcJa4_`^Il7D*OC620($Z12;MH%b-QW!818b0Kv-A-WoKk}n!d$hUc3YyJDXS*)VpEOV$;qRP`#QCy3+H2aW0n7sdR z{SBScYXkYtalH~98O^mDG;*780`mS%Sg*Xq_3HCK^*@Nj_~(+4nYVrf-$F&7ts|%C z?FGxcm2d^FPolwwR?%w0d{yA3XEbTZSBr3W^7Y`Ymws;4OJ7jewlaYP{^u(1s+8~Q zTV`G8L~l>gfj@cYP=dXZQh6sTpJ{nlTDpD~(5pP@{A=z1_sVKBdIe`N`c%}X4~cr# zd`qKW(c%AI{uy1gS1dC3BEv)C`3Ywr{NHOj`TFv{OJg&vBVCENu*Pawn(_~$Tzfj4 z!Rk&(j*D4Awi2a1vwPnmHt*Pd{#A@THt_3BFldX1#PZ>@|=;X%f= zHKgUE1NAI_7vewCXm9JF@*dM?z;8(yXT2;%;&Q8{Bk74L%&+cwVT6xZdRi)dOZ*Ay z6~X%=`A(5<0_l2<=B=;YegUF`1;3N!-c=GIF+{ILVHI2 z+$t+Tuk{Ke{it@U~4cYX+gyEk*7P?!U>n) z9a;B)=)C7qK{RVfmBizy!Zj$Hig#?w>vD2BD6@>p@-QRo=+x3cqweZj(j)1ncyzg1P z>CxXw2ToGpdn&kTjn5#{F5bgQFV6M&WX!=kk9GDV*Ot&)Lu()b@&8_D3H(WVJIY?7 zvr8;bG|Q8a4cd{qHt?ROzbe{@3>|pqr}F#LYt4&4z2&?}elviC8CTHf0z$FEIzwP`&i z*MGz4dNl3f!dx!s)xZi?B3^_-nP_w`*S8VBYI&5eq~+_+HNEr~_g_-sE#AKp&Q0F7 zbnw5|VRfANaq82n5oRPUa9ci4WHOOA6uwTuqj=3SDoba=i)iQx@6_bmYK@l1Rpixc zJ$cq!r(6o3r3p+UPc<4YXJvHlIPoD2u0Lho>VsGbE^eV={@~y9|8HSRQC(KDNS%sg9f>u^Iq z`JD~d75o_?v1y2k8*f2 z$$tiP5Vz-b9|>tHHL(dSPzkZ74C_G64op{gIf*0D$xa@K@5Cp7IS8f%c=-;xSUL;W z<~&i}!AXF`ej+xb*g{{g&RUmVFfQL6zm1sKGTaT(`3N~M)MhQ=RMjP~YCT=`Y#52Y z_$zSceHoe^A*3_FOyfF$JH$+!-KaljF|lq8T!#;%mqzUswZUklQEN$_g$wy}?!zKa zIA6nygL?yh6*>jc+o6k%=XVy-w%TF{F9E&Qg|ZRPBDS2G*dX$8N-RozNi9;J#(B7% zSil}XipMk1jcBtNwEo~6Lm>pcO!WI$<}iN_NlgU8RZK`>oNcy^=Bd+YG$F=`Xen;fok}1;Fj4Z>PLpiC4@NV<3w0OYaO7h+n9EZ##J>==|)_`A2K9^`dr(i!~7d#Mw zD}aX+CqT@iORVPH7D7%w6Q&|^AODN!+p4d5- zxCPdU%XG1pEFTl8AAvKLnYWmES6=_!9EvL_0Ki^d#Kv<)NNl{;TfrI0pq5~7P)nu1 z5RLPAIO199HDj5U^nA(X|Cl-f-v_+SX3{&3o9|PZPa?Kkw{OXSV+dV@coR}y;&kEw zVngap7#Iis00YIcfsZ9WL4PUdot7%!Bho0LiSWU!BK81xiF~Ylz4#O46b=E1Zefw{ z0P>SZDfu1!zMNekiCrT<4t_u9&-CPP&|uCdh&_qdaIvCXrVg<;n*6)C#fE{|0e>^x zoz!yY;Prn=vI3G1Vq%|kP)>mJIVTW(=;uf161@~^VdTFdCf1%oOTmmIuEoXffO`bz z5@&uK+2BTe2<8Gjcid))^8U}oo5Tyk5PUGAJ}fkv+=09eqyzY8#D?KwuMn%I!+pTn z%!Pg;!yKu#MB^xfM!{`{r_x&jZ$AAWsTUxx2+mv(p`HNtLlEmp!$j>PprzDmL5u~s zi{3rm;!%2A>D{C5fxDsCU9q2tVe8+E4CCAgU@(N-yiE4Qj5e9`VR&L=iRHNED)7<7Ce&V`D|VG$ZM;7D zH8?rI1dtb(f3v>}cp|{JM6nx6+D)DxZwF>3Ped%0g*s{usXyYaJo`oM=mzP_V<5(gdz~04RDb*uUavNd5CAHUYVh# zAV(r%uf0Ol_R@O;Kb%@&&SE?DNhZ;IjNT-8V&3G{>HWm{GdlAA<9E36?#35WbfUD3 zIE(W)#9oj;CE62v;MJ)Y=Y1fSi*sE>R#EE?<{h=H zN|yPCnG`=+w&8UKB<2jMu{AYprgn<_4!CuY-4!G46Z(2eeuX><-Z1jQ=y`LNpBGBd zWhQYxBS7pBI&Z+32lJsMjVTbtvNPl+%_G#Db*VxOyhE)mz4p|`YTe4<4=?%&^u@w; znB@C((azKc!X3oRAyy9TDl`IZum2c;DJh}0jmRd~lq6!s2XqXP3 zPT!NdJ-!;fi_~3-i-{@Jpc?KobOyM&O_QTlJENG4S*8zFEmou}!Kk?>~#Zh18mCHvSawA-1$xBuN10LOP%h zBB9`yj z??e@okUa27xXr$k^vb~7&hSD!>emVwsJ+j6fg*ZYX-~4#=YNI69wl7L z0FcrY7W-LyClTMuc`^%>Cl~vskN9tmTZpk>a_Evz(L1ZdPsq)!G{XS+Rb>8pn$B#z zl-q_v4k3zlRFW^X)riU8747KdCBH}RssjXD0MEnuJfhk0jodmfm|bx9Q{M%zB1=7@ z)|y%mY7dF#R%~>SMr|5m74bM~Eg>|eo{X3$y}r~VAD2u2ZRBD{@W=YN zgTcCUj=;;3=cE1z4@Fn3F~iH{9p#0}s| z5i=ts_8o2l`7@Sr)mkNZVuv{2LR0pfflfHdYGS(l%-#cTn~Q^37vg!%n-I%G%FLjS z#08vZG9(M)jiKpVL=X9o_w8CG8g>TP#{ z^+(5M!^o?1*hqgioFyz!CBqW_%nMW_?}+x`Pz3-3)PuAIcE1v*f*%w;9a=_+79?@qLy$^9w2958b#jXQK}7 zgpik2%g_k1!gwBfowO#QJfc;=m0@@{`n%{mQn%yQ_MF9z&}#tZ5MG$!M^wM3nZ^nP zMlpOYc|L~M(M3LxzeC_O{Tk$b5Q-xIg3m=rtUlQM^dhL)tSk8^w8V0$Rx!oDWB34i z(dafJH^;L{R|LLsm;tx|-$Xx;E=}5(EA3)8Gd_w0<~p0*3M9$MiibMqS$G?2}{I5`VFC}03UPC3b7n#4;@y7#Z27d ztMY`~Oa58I{3ncb7*6`|$HB-0x~M>~>(-xAZa^>sfa{#nUWNjJS>S4P8hkXJ(sT7#iHu^P2w40mGqdh!VJYUs7)`iJnD)W37K{2Gi$h#DdFqj4J1C`84YQlCTg zg#3*Bp{2?@3d{xkA-E#cTfv)5jMkfGW7!(i#GI(xED)Vkmbne?7h6$2r7O@78=V1M z4`2v&7rZ&c{5U6DVU~|I8GeWCEcLwb)^ZL4d!2kc1AZjm1#b^^`D61v^+nXZxb+3% zRqA5qMY`!Sz&2Y2AP>To0DVEIA-x#l^bD9^$XDx2G?2KRb93SsxP!ooHDPE&+>!Hh z+>cqS@OIiSW&0y-55tZ_ECo0kp(&6fh}|qQ217Xgc=ABVyTOU=)Wsd)oWWx_pP{#j zCH~?pHWJ<~+#Ri1^ewNWAK;cqrfxG2=U3$kw+DWJ-Y~FYLE1~8 zmS4W4F*5uG%?m1;OiV|#9pJ3=TvgbG{ELc+&}RG!=YlHOizQ0pQShe=0Bfb1eHHUw z&yCP(fo`mPODhYXuLl5Jmq!FCK|vikXQek9;8|)@ROBf2XPUp&$GDDj5zUiWsx26s zt<(B4y+}oREzm2Ec8GkLQjcw(&@4jiMl7Vjubi*ypf^1JauDYs)&MU>K9@l?nbHyO ztxqOdqYVF?A$O7`j0R(+j;25l@1V*CV-sKR0Y1j6+lw&CYF7&EU|$Kwoc@r?odAAk^2>-#NtC-((Cjd3X{Bc!UO< zjNT#6!A6r`V94-<)_3fZi<$ichWV>rK#-qDh^x`vKQJ`JTJj4G4lxe$7-}-Qy7_q- z1A>gMBfJA$J;+UAAtwJ|?*M;S!|(n+|Eo%Hh_8#$HK6}sKB7{|HE)=oZ{>f)5~_Z( zi*--nw?9UAE0H{9d0J9ZO6-c{rBhR4COzC6pS(IQZO57i;o}mzEz0CHv~J40Gtk4&U(~=i0f4FN;+SWDJ3VG`KJwgu2pLtAS^M9c!%M+6m zqiCeuo{-d$(R?fV^NHG#PgzIb&QNnu{(A^+V#Er1d5aJ8M?Ehcw#6(s z1)JbO48i2bJTDTa#_X64D`0cXkLxijKE{L?|G4KdA1^z8hec2msgLpK-)k8NcwRq@ zK*kh|fpbw6)?s)&fttyAOTUX6$R|{T;ZC@YVqjR}Nl-IRiG49EY9-fT7+i-@=-=B+ zKn?7}cz6Q);9ZP^^-j8qoiH2mE~u4SjAQY4tchJuxs^PM)rp5c?Y5vEYK3Q`w(h3I z-=nW3&3A_V#6qa0s(}%)3C6~@7!?O#OdN~Ja6W1;_hKf@@rzr*CK!cy8;p-VuojL- z4g3Mt!8B)C|8N8bo^?w#9JTb5Q3F_l5pW$w!|kX6A3+V|1ZsdcP~~2tw&Vk90Kw;6 zJJB&J@q}ht)Jo(&$NEPjP>lptY=RmJWuFrC;NqjA8X5Ub^CFxanOBSH6 z*>=>5?Z(J>7-Qi%OotCJBSyaF2ACIh9lKz7wfKyHX7CncW5{*SD~Ith1vbUN5~5aU zDptj#s3nYh!_`ZMDwh*0V@cFXPDY)r1?FnhK(}E8&FBCD6+Ec~yn-?CE*8N*u^?u> z>8@FORJmEG!@C%Dx;LQ)u+QRWF(vU^m>#`bE}j9kqE*n>$T||xHSCRgGWn>P4Z{RD z0X5>47&sfKGjPDtFQWGR4sOBdx7`E|;djI@p*nnpDi`ezHx7&5Vg1$cBofr&JnV!k zFdoLe>)w+zEqjA$G2A`3Wm!-YsgC8bHfkb^FbVELt?<=*zB~O- zNGM7|^!q%FuqrmfvzQDsJ@C9Au@dSq9l){p97kdA-`vUsJ#_ay8fs-zqE;#kYM{kX z6R3q+$+|uP&HM+{-gQRpt0(M95DdzxspyL1F5bXTS^M>Oa)PQ?G zcS}DQHIQYfneRuf#0Au0y@fh!&oC+ddv6G6X=1)`hb%R!Vs?y=B~g3V09CF#>THZc zHMr2?8!#;Kqo@u}qgL)BM#kT82fo5Exbh{BU)}$81hfTZUb&H0LoI0oR734i4R=E| z)EhOUVHTf=YH%)UB^IIDTW#^J7T<#!&@t4&uVNVb_Z|_5j?YjXd_wJY_&?nWBtpGC z=RhrOIkN?7MFyhkO~Dwr09Ae?uEnFM73})jl^=s@X94<};VuFyZ~znHb<_yoVjK*9 z)buOK>u#z+7+LR@K4e#5p|+wdYDFuV4N+&N17^jcI0?7@#ro^IlzQ)$ za3AUcaSAoFC#VYlU<}Og!Q~f3Enz*>+31d1xxT2GO~ahH5}V^q%!EZg+9Mn_z*#;4 z&0rPA!|kXUpTS)C9@TM1F0GcX5bBVXM7`@(!qr#{W8+uUfMWgQo`?xhTT=|b$F^7r z_oD{rNBP9ZAQiwI*b}qhYRr$;_aG6(5Lka62Z(Q>bG`Tk~DI@2w*+l7ua&Q(WMyeNaHnydP>{Xfg< zGI$cTLNS7Z0=FhLYRd|u22v8U_ylSbki${$*I|QQ#q_8>En@K+s9Vw+HNYOI0S~hH z7*q$-Q7bnepW_BgpBoYsSgEC`!@UW8jpPsk&E!{9!+)BePz{C)&`rlQxDN~B@2CMM59{h>3>)MJ_A(m@I+c0wIu1qMhDPCn0(;yYHPE3J zpMlC>j+*Hn)IfegosEmA+j0%HVs}wz^+}YJh$>0&xipKs^wq zT7l!J`+pfTVzkIXfoFOF)OBivI;eM*PrxjT-1z)E>r(>b4*?s$3RS!v)Qfr~y_)tw?7~io;N! zgqC6q-MiG$g1m7g9%$MR!XZAN9yhiW*p2tc3;eG)_bfyg>{%fYzuj>WqDH zBu>ZRm_dOrDrTVu`WpuB|1$!5040hQ(v;K5buH|F?Sqy zR{EgYnS$$aClTGB4RxJb#&_4LEouciqxQbH zISO^(XQ4V?gWB`+s1d#xMzjyiiPoDpxiE_g^z>K!UDMJ5eM(=b*0R zb_|P$Q4frhsE#8iax;mA8emS;N)|yq`Kn@IrBDMLg=%*u>N;=17Wm31phH*lyC9Fp zv^NLK5}%(qDDX?>@7R%e?j)|GrKsz+0X6X7P=_^YQa6A^sFllT7RF@6tD z)lm~|Vs^v8{U1(14b8xWxB~S7;Q;CpdK=ZiJJcBoPT?LT=}>!G7IiqAqssR~m7iky zi%_S1H-_Rl)XM#d33>i_VN<%jONQFJY^Xz30<{vAQ3I@F>8&lj8*1hHqh>Z7wYRfS zsr6=ucU zI0H4qGnf|dV@r&f#tpO+Rv|t(4fnq&f%7Evz!+(R0w1?Wpa$|2>Vw54)Qn!CmiilN zW(m@{rA~pm&)HDvg-}~j26f6CS$+%DdqQW_R!&Xly8^pN&D>}uMs3;es9W;E(xYYw3Vf(dit1b{@B?wBp3I}^)&0v$-$h1$b3ncN8T zqZ)36YPd6|$Klu$H)4NGli4lxQq)%LL`~ots-p*}Cu5x~L0)ETh^cT4YDN8x7TAv} zcn*KX%cvz>lhwTm9Yi&pBAY9h33XetTf8FbP*p>%Tr!x&h8Ym79;r@eppq zho~)?or^8t{CWEcDB)7>Aa4);jXDcI<#7$|$FRhYpk{UoHLzb%x8t^@|Akr+FR$B@ zM3{?cR@8)AqONB*ix0+a^zTh1kO@oWa~*dz`h9gjnuk(sCgtU)dL7SvfejJh?y zqCV-oL7j=1`E9FETTl@-@KzZ3{6CO@8k&r1c!?EQV;(|XyBnx8@D??oFQ_-42nF0N ziHq9v4bG}_{m z%^9cx%tdYGTGWbNL+$-*e1zXn1A0{0<-hO=sA9MxZfWCT2I8Tpx6O*E{9c$1N22z4 zCu%^y;xxR0)wvCwi@MK#2aCDS6`hN_&l5jk8OnXd99X)9yET4q0u@L&gOP*z!l@)3 z(oo9MZm)8daVt<3HS%hxLsbWLZF`}%U;^q%Ip183I{n)*4nD=eqZ@Tt6O;|K?|T^t zXo-rTW?IQ*cnvMy1&5P92(x3ja_+3;Lp59;wdajd50vIb=fOlrZ3a;a%sP>AY%GJay*dFzq znS;8X2QZiJ|6Kx^F-}GI_E`e861~k)sOvThwRB4@z8&)rKY&{54_Fv8RdOrT4z)%7 zP+K$wHG##b_I9AJghK>0;%lfSe2(fULS^^BNQAncxlxbOGN^iOP~``ruGbvYimXIU zXb-C6r#ns7``T_c#p2y{G}*L0z{us1E)y!&h~`QpG`axCXUV z`%!1)7p#TfP%Bxhnro*es$2)NZ#C|}_F@zXD!3AL26mth%O2GIKZkmBUPBG&t>u40 z4LllmPuI36s(w3Ez0Rn1dZV74V^J$I9oOPApMVZqwHo$>L(Q}~Y707}_G&Py;yBBn zi&~*o7T<#!z)4GghniS~ny!9YRJ%D)11W0het81ACbdvY)4(#?qGr+^RiTfi4@C`Z z0%~T9Q1!Q>%KeO5p(7SQgKFoB#c!e}^gFWRzV|1Av?O@7f&zblm=1Mqn&ArUgZkVb z`n{`I5_RaRnC(yxmJz7;j)j;C4_o>Z)L{*(?Y1O7YNDYS`1AiP1XQ3jYKa=42Gqvl zlTb6Bk2!H8=EmPFKVcnr&C;OC6~_En6}1wh&B>@UHXF5dt1+(b|6T%`@g>v%o}o_l zN7S{8TG!1mDXL;#)Dl)iEp2U7M-5PCqy=hgx}iE8j;c2uRc>fj{_ z8qpin5`MvY7`?t*nYOr<_+V6nxf{5dRWR$D?aaQYC*K%zvANSchdNV_8gTzJ5{TH) z9iH5niFiHKyW9v&hbvGO&Y5q_xQ$$TJ`5$l0se#iQ7h1^v2%nu-CTxxo^16kaMt|8 z4AaDY;gAdiw*j@6eazA3Y;!e!PyQ~{mPT*tmO3tK=@VN#4XVA&sFn9iTS9qM2hA|> zHj0gik4G)}Gt`QB&0Kyc>Y5cotxPlgjKfgn2RC=`nln&mV;gGkkE71WS!5u-cgqF5 zcV?6pu0Sf(66HY6s50t|)I^=;#;69np&qq;P#?dCpk_P|wFN6s^|zyL%Wg|QfRX9n zI~NG>2MVZnx5ud45V57J5D)c;{tne(TAYq~Q02~`&dhZ)+z&3E(`<@*zKlmrXenyI z`!Ip-|8W8u`90Lg|3MWD)5_idWT*<+P%DrhRjw3j538VNRs;3CsDs*qHkcO&pjK=< z>bjo9qIdy)?M2Mi?lWLA)U|1csxTNe^XaG#7o!HS7WL-x6Y8w|in_M1Q3DBS!G5?i3o+Q>HCe?7Zrl8_oVp=NpoRpBmn#;2%9YW=qEx8P~0{C%h`IEkTn z1vStQs3i|-=VlxqHLzr;Gm{F{Z^m}Mn_(#uG@@##6={m0*a_9qL`;iwP%}D&B{6#Y zAnys*#9>&dgX`d+c>;C%&!O6XfNJlJ#lQFjhLRAqqboQWa}r;MCGZ-C;&+|gKntM; zSPr%1wNWe62DK$i%!8;cxQCkYZ`cK&qUts1?9QCukw765Mxyro2&%v})M0vRe!_Od zqjYgA(F;|6A?l25MIEmFs4Y2eUdB-3_fabl+|`wfg>04YB_g1PQlUD|hncVfHpgD5 ziZ@U*d5Zct{u--d^lt9cZxdAdG)#kAunJzsP)zruI|Jo01@S5vxc^-VXv70h0~lk@ zGdEcN0n}dpV(Ir#1Al`WV7Tt?`4A8Fu{<^E8a6~dIlH3DPe!fOat!?apY;S%k?<30 zhBr}5{{VHG-=YTi#quNda8IB(;f_f6hMIFXem>zRjdPCGq+oP7+M?HdD()Lub>zr~UibtdLxj35HNgS?{bJB{KucE<-2Ix}5VePMQ1us?>u>_`op=??jtKIWVX~3#i;N>UiFk!k44D4C zn*`L*6Rd_WQKz%$XgA}^n2vZIR7ZnQXJs5}i{@euykO~J#<&^BMqTS{sB$GxXQnsm zT2DhiFM(|Y^u&6OTH=&rT?d&_OI!%G1(i`N(+D%-4_Fo_qt3>4RQZ>vt^9_XNQ7~2 zAn|Yy@pPyG{63ERAD2Mb@oojaLv@fG)lhm&iv_SNHb?F8WmLKQsQQ1P&dfK|2blO1 z+@a2bD%TBFt}p77)g;uJTRVZ%8pxDnOBIn)YVMLnP%qps(3 zi@!w;;3H~lVoY{hl?+ubBlf}^sI6XuYG;#AKuf+I)zN-bN5@g`=U1@?zDJ$r@>ATs zorpRM>&;!LnIA>1+$~fGFHoO!-k{o#Jk{mLM#cS91hk}?EF(YaGg<|UcS0?dkGfV< zP%~O#`Rh@8xes;N?x6PkPgMD@sIw7knlmj1&Xm*lDihGB-^Qqhd!r7Ik6MXQs3o0c z@s*gB_zv?i>cJC#y0bKDC4NLrWQ@f(U>f2_Q3H66v338y5YXPmoZ1tH@&8UtJq9%6HypAe&4-?V9_k@5}AY`U%FbQfY)1ewD zfa;(k>hN?jyQ2os7mMR?%!|iSXX6{{xede^*!I)txL1AUJ=3qf<-nTt1v`>&-+NrEzR zqT=OH4c0|HySt#4d^~D^b5VzOC1%8JsC#`6wdbEuE0t`ndw!%wm9LC?SFDeE9`v8f z{nw19ke~r9MJ?q{)X4uqb^OhYI?pxy9jab()Kca^b&%gIW9cL9SPf$>)-OKXzZL{E^F>$;x1dJ+7PZu$Q60ov;`TnJnI4s&6*cqns8in(HLxM5 zi7Y^^=mu0j$50cxhVJkG5>Ulwm<1y)bsgqIbx<00>YJeUxIL=8kJ_U7sIzh$RsIHQ zYu=&WLt-v-TapcR&Fi98s5Sak2uvrSQ~VIi;xp6=ATFIrTt=Y7K`>zq5w~V`}nLfww@gu6iDl6UI*Ft?zX^eVT zn{MeFQ1y12M^K0DJnEWWLv{QI4#4-8-hGwt_GtJjS8zHuroakRg|MsL0AiuuR1%;b zI9XBGwE?PwR;U&1g;jAN>adM%XT9QX~j z0y);Y8RbLmeK9PIjZrHy4|S+6VI#bcde9VI=lmWuq4ucudRyEdNT50iV^Jf!jSKN5 zX2J>UgS-Z~8*^g(4ek(D#3IC-p!RYB_QHLr>y~GuTd9huc6*^FHVQM~Qp~OUf0n>J z62fe9OSl-dcdIPE$=rc6NZ*Ir>+d%Qd26s4YDQ7ExFwE-S&3&to$`jLTQvqXpQf!h0Nr~xf8 z*P+Ez}mVX!bUrSVvKq(xFwebupJ>}1CE2^VrTo2VzTMX9#+{ZQZnw*ikK0I3kE(YEb^2fJ=Kd=o-<}}vAeKihQRKbuP$oq^Sh}G0bPnne zokDf|JL+0~KwYnB`&>L7YGsOIC^p74=%ebdu=v4!+<~!8bFCdZY!#xJ`*;@P#lU{sb#3!aTax0Z=mY^Vd)=GD;ILuy+`>ns!1x z8MmS8zro@-?6iB|KZaVV_-FLDY<<4-A)p7tJlu~bQF}T1m!QCZ8*&VFT8o_x3jD`u zqp>&fk60my@Ab~Pf$ur*{z}#j)K=EH;J(%yk2<_tP>1pXYQ=&sl289$ZUVWmKIXxR zm>Q4aDSVE5aK|P0cQ(3T=7S0ypTJxg@k)?4ll&rA-8UOoFqC-lYp%WK*pK*Ztc7u} zyOnB(emxR45vY!lZn%twSc&)&Y>uxmAJ(|(wqh*mI^95(3%cdr3##C1;^T1+=DqDc zj$cF_*7vBxm++3eZ5i)y|I3q5lLR$5A8XpqfILT$--)Pv>}{)kU72R6Lt zW;_u!kxi%vPVjyAX?O=}WnZJtM!E;?5Vm^YyLY?rzqwDfE3q>L&Z7=lv4=t4PCSdn zaOCgqmYl$d#IIlxyoW6@*&}zjhT%ct8*mDCdFhX$N$4UfNJ8eBy`4; zSo&#@cL1Y53-a#adDIGRe(ut*p`IJFU$};@V|L;RUb-!*fa+i-p2I8n5?8!(|J}g! zKV7gnD45e(TzW+ZaTU~nYNDQe zjV#_4)zOcr2iGvv?-}DzkNio2eD2>m0vh37)Fbm4>e>G*>dE*N)sXkzy^qI4#Z#j? z%wy>#FbeV7s8ikowSqlRZ^Oe;^~R#worh6%|F;m(QXN1wcp5dJt5^c>VL?p!!OgS@ zs-dtgY-sCtu8_2!t%Q1v!o0^EwBc;+MbUk$w=L3{KT)zK$Rj*M;F3E6b<7#sgVy-P;>YM?)$&Oi@Txgi*Y<1i&oK)tBms4N z7qtcNP&5CG=`ie9w`5sRTlGC^Kn+k!+!WPNKh%4{WYiMhLCrAiH}?pRk7~aJptYC{ivn;qzp_Ekp?jr zszPPViY-uEFctMgn}u4Ld8l?)Vl(^=OJV6q!GT|D$6z1gf8Y>o!Qc1va}#((U@j(( z5*&Ec?!=LCyR})Yc6` zt=!D$!S3Jxm`{Rcyv+OwHRBVgYk3Ft#QTUkBN1b`0i?!c#PgvJV_i&+KcdP_M{UJs zRQtP7hyApr-;3b~2d>2v5_AZo#0(A`x(pafyacLZ3)GBzpbq0G)PQE1tIS>IDGXd= zRQ;!@=fP*oj}gnQRC1qyo=j;_1u~=Vad8aB>Zp!unXOT0qOZlLqB>fE8qjvs%#Wcu zeqj0UFaz$#fs}zCON9(+{i8S3R!v))RV0Ss(eo@ zh{I7GA4E+gY&>_SBB078#c;a+nF;9n&G&0A4h zcM3J|JE+6^8gh92BQ1rRVI7ONMh&Dd z>eLUj{P~u?9yP-qs1-bA>G#a1sB8Vs;<1vr_7bDEI!zMpzdFoGf-H%RuqJB8n^C8J zD{3G+QG0g?HRIFR3U6DyR8m*3HtM?7Ma_69w!s}(6ho7_^rk+6;v`H%o!Tpy8DoXI z0Tn}SO*Pb#jzrz_v8bh;hZ^`wa|i0o97oOYS4@r%ur!8A?gmx?H6g#pzX4Q3qfrHC zqYlYkiziIsu3r;W#a5^ex>))EOCN^Xk_nc+7_~L4%zdbOm!16kUj)?gOH{?LX3Uf> zJ(ZcuEQM;I7OH$Ri+8vD!RBPkUu^l?%!B4xY^M8vlYkm3oXU-~8tOi`GW(hnQ1^Wa zs{Ah01L=%;3AHjeEdCHR&}SC^Xz_2TEs2sEb^o&v&|#^DT8Vzx0LPk-Q4N<&;~uG% zF)i_KsPsAJGIImgB7G-npi$GhGZSiN$E>86KtGf~Hv)P#|yxOo9JST6iyiPIYM?*laOoXT100U2ah6N>y?q2!@G9!T za|g9FsdBodDu6m06;NlQEf&VfI0?^TQ*4^cb#M^%sJ)DO^cK$T4r5pIZ`42r=aJmM zX#})nE6r_z47LI_u*;Ty(|lt7h1$#DysmyM)WDOOxltWewEV`X_S###8&=Z&_Z7f1 zX2N{Ifp5iH;X2Ycp~^MN@6vCZX$!b`S1d#RZq#!lxS;#|-`G50rYPhFJPdWqrlGGH z>>{8QIEgw;S1f)XHR6}3z5NSSK3ZW{J}K(WCL?O*`OT`Rng3w+Mzu2*)z1`*FD%Uc zSH=pvlaDS zLS9QKVwOhDv=XYJhL+ye;$2YJaR6$jBT*|b$Ksn%D|Xn@Z=pUfyg>~hOflDPWS@XK zN`Rvq`_n|sCjq30Ys^KSQP;u8#B2;=>vzS@W>}HNd?fo+BjQ&Xix>os1xO?9W z^^s`+YNT^fE3m}eXzoD`=p?qlOQ?6Xyd{GJ-J7E*NjT%tl(yqe_sD?XWM*I=Aq6<+gw-NO~JA^8C2i5-X7)AH$6M;-5 zL?{y+_zT0iQA;!o^{%)Y)!;9vj&GwLNKa9pb|aQ`Z!!f@9rnf$9BWQQbvzZv;v7_a zY08nVd!2`XW?I;6gXM@%#Zq_+^(0GP-uXT1Gva8}vwR2YGvX7}79^|S238y^68{l3 zu>GhrauJK-GxYUAA!9{1qd};VE<`QS3e-sVSo#_4M*Nb+%T#g$s*EZ(7&U;&sIP9e zqS`xcUPP_nb@Ndr?!OY=S^=-JD-a&lU>wwlQ=tY_7`5~@QHQS^s)PRKP}GWyLGAf& zEP+>1?Io(>(lemiD^taHOV^MD4P>gh2-WaKn0)Ua{Sve7FKiVD^MffYVpIUk)KC(_{a=f-F1`-RX!tX z&kLefqKf6Wvv^m__s0{^XMJ?e|)X2Z9;Y?wsNBv%q4G&^FREL>rx&aqLeR?jB z`Zc=|>dDu^9Ee(pNlxFJV+qSJ1{oVLa9YiasMGp8YCx%LxfRHSjfs~)4Pddk88zdB z7Qc<^@CB;f52zK7^u5x#fAI+@A-S0)kipVnebP&#I$mV?E6r`F1`nE-Q7icv^&pB; z+vVp&ZB<27JMB>Yb;ZDc|2I$p5~i7JtiS=($bYf;Rm*>f+M<6fJ!2gg&xh)$E$Xn2 zLaodi)WCj5JvZ*61|GGpz5j<2P(n7;KuV$>IQ38?9*;S28fs~eTl#OPnLI@e^aHA$ zpnA?Yr~#x!<>y6}FK+QF_3Zt>E(scW6I25OQBTCl*cJDnDrTu49QecJf~e2+KchPM zfEsA{2F_@x@^Mj*=oGjNYgzi=sPf?&a{o2ss14m$qbX4zi|3=>6>~Ro1skD0mbXML z<#^18TTqYcXIKSuHFo8Pq6RPq=iy8&uKXr$z&%l0G{Ps)oxm#8jFL2U1FDbbh<8CP zU9o1a!3wAu*TLS{8a0!9=410EY5;$k!OdMfI%)!mQ7i2iC!h{$q3&s8)cb!I)D}!Y zb+`-F;7L@6SIpa}h8|k}2aAVk;nL%y+RuQhp9@vLII{A-SB`)hXlw<#qBOXtq{l#YR2DU%DyV^UK=s!X1ONWtXaXA9a&rsnOzcNJ z>3+pJ82tzL3rcIeM|?e2zzMC~uiMx02jW>;yY{A`uG?bNlAps!_|EdbVc`BpY2!Lf zftqnXRK@D3mGDtBnTQ(s42!Qu4RjN#-Z9h)-8F;Sx*4ZLmCKA8NJ&d?gTB5t??yls z$D{UqBdWt2s1EO2{GIv93~uMjMMN!a3@na`P)ptrb*THIR(J=h-6Ix1-H!XOiq}Zc zFNF^Tg1wk$ska1ND4)Yw=he+=^uE z;JXHklb{Bxpk~|})j(fVgELTDvCQ(fna3^t25MkWQ4{)L26c4t$YxyBRwP5Um)o~M zX)Ex(#haiS>}>J=7@qhza~f*E^H7iK?Wl(TK<)82%#Eo!x%B#G7py`02+W86bpo1k ztj_L_P*S6Q4KIco;Rw{y%|N{kZ^yRy7wQSwq>CHKNOKXYye}V~(fvmA19m2U61BAXySvW=RZ&a7237trYNcMI$_4ds1CNjGi5EgW z7gnL_MeFHSG%ZG?f3FOI;aCl|0#{HUE^lL?!Cr2}@lhS6LY2#fJF%eUzr&`)gL=F2 z%~9n#quS|d@o| z*YQf!vwwrdx1i3-E{h*V4fqslU^h@J@^}FEUo-eZf=+Xcfv!M4)C!bF-T%gT7(1Y5 zn9ZIWZOk6#5Y$RcL_M%(SbVMJZ$b69A2qRyJ^?MsOEc;q*KsDZwAmO{u@`D4V^AH< zvG`)t%r=|*%+uyI^LO(Ns=oh?fEo-p*ezK+R70VtCCZFluq3L&Hq_GYM!i=YHUG5q z?}oT?sZr%Jq1wx1@sbv=jP&b!^(~XQ2kP+~T`Y13zJ2!wAHmpxSwj z8o)=32M={;BqFL_RLrT*|49gFX{(zpaWnB=sD{!Hb6b+lERRZWj(R|~H7B5Ex)syl z0Sp{6RQWGB3BwF$?}PZmX&*j}e+he%{u^e+`r}>wF{tu$%=MU%_<`}rkHsFQDFTBTsVW zilSDmKkBeeK@DskYUP%q+TV(Lz8pY3=$@dqHlaV+jief?U<S_Nu*Q%tgJct+MzP)Ifei9m=<;k6an2 zIxC~Lurq4rLr@)zHfNx=bg9L&Omq1KF}?18IRcd^(9JUTqh@@@;#bVyP)q$MYCz$p zyAI=_29N~RaW;z=Mtv@*hH9??YGOa2-d(3+;Lrbe1Oj|mL^W^}RpFw=Z{ZB$e^`9b z4EG=zkDBph)Vt>_RK1lL12&p~s-3~86`Nq`3sCJWM_(0ITgFz)_!(7kpQWEh&F~^>@9(3Q zGGvxp`s_H2cq!Do+DX&^e@Auv-27}tneECYp3VJNg?uEaU@fyHYGB<_4Gl!?{czM? z&qWPz1L~UYw)j2N+wKcX51!+`ib;zqUlY||Q&cOk$Wx zP!E<2s6DM=>9tYyTcFNPJ5)P8Py_Z+1MsI4(9$foj4h~&C(LuGH=QdMPdDF{&x%^Y zLRbZ>qGr4RSK|)LZ??dFg6eJ#F()~FZvg>amv!b|^Q?In1NRDO@~>3>-I=oM~2GtAX1e3!7t63(Fx&jZxb{*7ul!AjR*GE76fAZkX9&&mc9rzvGta|8QuLSpglT)`rvWXG7_wE4W+}Pq-RBS*ctUfqz|gzR`VEY0M}6i zc!Vnd0<}^fPy>y<+SSX1%J+*B(8$VTZLEy?7`+VjXkCvQ=|xnB4^XH5FN>#H;~L73 z9Z4^Vd2lmopifW(OR?6~&x*RnC6IyoUMm6`Sx40AAAuUs1XsYDg6eoSs-bn}F3UfL z8t5;U{suD;|Arb!hIMWQo8bZCi?IhbU#|gh|E~oCd_#en=_6D}?@=9xY;f^-*n)UU zi;qN|`e~@MvIjMho0k6$RX=E>Yc~$2A)X3#`YTHM_nHyVp7k;Z;$Y&#Q3DCT$u%4Y zHKWX^^p>dW)Yam{Q5{afwzwQMpy-=jxpb&{g;4#K$H4FZ)hweC>H*Qt;^R;SXPb*q zBVTFmMg2*~CDb3YeY5luTU@=m7?1QOsKeb8wPIUQD}8ed_g{PUj0AnGjaAI|HS+YRX%vTGcKxLIx{P(d>*qTs=aDH0gb3WszN)9ceMh8 zEqyGifhnkt7Fv7@>hSGH?e!g0J0HxisCr?4avjD(Jr5G2(*1k{)L>~;Lv>LN^g<16 zAgaOyRE0I>4pg}#sE$vg+IfiG@B=o&b~}Q-n|K13hgz9+I1=}uCQxd(vm)wn)j%EUHmG*yp&nG*F*Dx447&dj_P7c;Q6II+ zV^N%on&C}UhaXVaC;VQwRar4B@hVsv2U_|ORQcaf19)qu-RBN_1Jtb=fqq2-s|aYs z@2o(i{VtvxbtWpJX4nq3#9b{u5Y^FebGo_Q^0%YP@3HigmVVvR@9pRQYiVAPpc#id z;AUI~GZAl&b#WrV}PgDorov@WabzIGCYIZ>lco3@I7*xC4 zQMc<6s-FKh0TqmR(lr>{48;|sXSVodRK@$KrF>_8vi#sv?k_M#$0p?GK&{LaRQZJ# zUx9iwZ*_6sJ5Hb=371g?W1My)i*Keyb(|NIu*Vfp50W-#TnEv9ai{q^RQ@=f z)WG(dM^N=nqx<*2EaM5Pp;s0UKIb}$h-x67#gm}UOa{~grI@AvfU4ik@`t19%|&&% z#L~BzCou5-e}{l7K0{r{uV(!7ZUEWL!l;HSpjM*3+0xQGnFGxUs6)2^b!g9_4&w)l zr?|lVSH~4DxJPRvR0ji4PpI*zJ=};Yw+D4A&Y@=Z%<|uu-^?f%UA=^;l}dvea3NGX zWl;6&UF80&!=@ytqb`;)z~aL!J{i@}EL8aomc9>F@2GhZHNd-;|H%x#WVa0U5iU0B zIZ(kTppo=OEsf%8a1E-X9hQIG($AVV%_o-s7ixf?F)YTq?EW+?0cz%{a1Uldm3xL7 zs2}vJ+w&x-f#ku+SlH6bqXyI*HK5Lx?pu78xeC?bPSg@#M%8<4zQdHngRZ#z)JS>X z%SS*R*FqhV2B?ZdQHOC7s^Qg^e$>2(`p|h7RX@d5_f1E7RQ+72x9#Gn0hP9RUCVD6 zko(`3fEws&4nQs0FjU7AP%~eHYUpQF2fv_}@`k1VX@*>L<>H|xkRH`e2~@qtW_!#- z|6Xqbx+WVf;~uJ`7pQ@G*WCcZoAFT{r$zlDx1qjn{}nZ$SE%w4 zZgBr~=&}(|gAGs}c14Y}x5bB}R$!dP=b>h_6jg4&c?MPPy2bxM4d^|p{fIYRelk=% z>rL*zu0d%M)ZmY(5l+NrxC$F!q+9NGv_f?_8C7oqYQSeu9bK~gN0$E9{0H^DV9;&% z7Zc;5KE`Lc&Hay0pb`lhc}rA7-OZ60iTE5;N6S$a*P&MK6ly?!p=K0($Hfz%;;B&s zEr@BbEd~y?<*)V$Xy*Gd6mMF_XH>(n?z%51lcDykI%*(&P*2D~7GHuYzZ#d~PZqC# z&vn=uRc{dL8jeIAa(^v>Py*Xg4PHSN{D^Aso25s&@16@;%mQW^)Mv;VsCo-fE4du? zq}z^~@pFudVIR15V5T<&IO-3#4_Nvutf>3{nSe%C?vb+rs$wTpL;Wm11l7<)i=V<_#IK?b zS;NQfd%!WMuU_t=4q?J4ZY#2)wzw5G#Zee||Np}>-lGPR;14(RjHs0;h-$D74#&x; znZ|$WzAH+Odemk>4LA!9#@wih?7(?=#PXXxbN#e=#{Jib`jH^#oBPfC*qii_=Wam# z&2gwxJ`dGlu@`PYWw8?R>K0#Mu0oaDf*Q~+^VkdDJ$f&ZppQ~vUb>N`N9}zfRK-fD zrL2i+psl6%#4^MOU|l?7`AJ^6av4zd^P*O=2&&!sW;@>s^fd?L$RPFxcT+INYxnFv zgE@#l!XlXPjeGa2ia4!0m{@pvb z_vujOn&UF;jOr-PU+!18RG5x!5(_jzO znV5&^aUW_4pP-&#VLrG4r9&Os+!ilqevf*zH^&s%7d4>ysO!8HOX&VTCeVR|3?E&A znW&D}qdGi?dV)Q}q8R3HH`7w6CGUuOPw0-#aSCds{<8ewe_Z{DW(u<)20s7SQh*B0 zP)phg)$l-z54Zg3<`UFbv>Q<~+G*)$&6}wDPf#oK3iSsL!JpjMa1~J#8HIi&0w)OQ z3xv3z-CwtDfc=R7g1Ua?zqkj+A=DP7{OUR`fvQ&*Ti^mLiNW7o2W7A+@e$Y(AERzr zC7u@Ag05bOA9%1VCqd8hyQl|E;h>Pfn@2Cy3^!mkJc4@E#tjY${B@kdn3{M{NJ!xO zfwZUr4Z%8i!qP*-gm_@!!YFOVj_>2T)#10n{7-1&VN2}_nM{5UE{v6cV z*lPZYn$ZWGfr-P11fFzTQA=DcLWmc_b)IBSix?94)9_i5LIVFrbV@&RNMO&mpqAti zHpTZCc;rTLPBu@Y%7u;U%#V7T?TGqgxMi3X-{Npg8O=>_HR{vy1ys9nqPu**3W3ff zTt+Q*sTj`ssKe6*^+{(aYH2rM;Qm@XcFd5#EvbhZNDtI^z3VLf57glc8_TU=6;wa1 zkpcPM00QGlIDqA`N^G~Mvrr@5hr{qAYDNR%xCTPvh6EnH39%~aO;KC03H3HxHeN{J z7W6a+U@p>!VFlcUfxrJ7CVq%Fi-b_@qzs&c=@NtlK0q8s{XYK+bq3NVbOSDCp2ZcU zH%t`boxzar+=`sXRm7j8R%CkOkidVqcoB7GVkF^=@ciNb+trp1XA@tCXR%CD*J0db zA>Jn;5oYK5XCcjX(R9`!Ad^UvWS5FNW(#$Z%K zV=*?~Mm9Q0r*tcr9##K))MvnkX1kQ!e~r913F>G# zYGkuf6_%owd<|-Vhf(D(p&Gh}I!rIkFsa<3O=M;^i=o=9iK<`U;;mCLe|6l61a&;b zGR9eaDyrl8sEX??{b!3GK{b2L#G z)XXQDtIb2^O;iK#Q1ye-I3r^W;&D*}OJnJoF&^=}7O!IZbuG{wRiT6VBWh{;nv*Pj z1**gKr~&Li&G?ALpQGCO+w{`9cz8TcdNfqME67Ut-fsjn)Ay)`qo;EP5~9-6pthi> zrB_8QVM9yrjH>5b{%CWCxfFAfzX{dOLrZ^$P4xaBl-@Pi%4IwVq)S2P&2868c<8rKzdpFU~_`y&qWPngQY)^y8o{%;WP4H;YG|C68M9L$fyo7 zn)y&OD2-a;?@=8#L|wmD=2*+$WbQzHklBYC=nd507kGhwY62xPxsKXkX5u|i4KGD~ zgj#PNMcwb)sD?hH%0tqQDd;sZ%KNJ5G6R|{VvxWrzisrFwA%Xu~r+4;{z~6+9k;5(VNz^0v3)aN~Io*m) zMXlf*yoPIXa{u*FYG^K3U>s@&Q_V%F3hOPt7qb&Tg$ePq<;TnI;%QLVtQe-mI;ffU zGkw&AhhioiqlDT7cA(x~qvdgXQw!@8Uu}lT>)wW&pxzC~pgz?`&*$ppK)ucOMm=y2 zqE_%6>Ur=A52KggJ*bYLChGrVf$#-FykaE8L1lc8+Oy`U5%)%Ik&oK@(dInVnb>Ha zMXlHii+@42m$;xir0G$Iv5JfPUOP*ei0Wvqxdru6YnR1uqAEVH^slIagcfqwGbbuu z$!vleNH>cQF{h)h^QwT{zk>uc!W&lLvBm!}!xwgY7zZ`L1gM6SnOQBrDC$e5l4f1h zfIC`zG^(EksDZATtHU{1K>uEVTHR;=ZeRngmsNh#J{5)II)a>CsELdmj(gKsnTsH$V-zF>33Y zqpn*QbFewZT#9jiPW zqS0U^)#i1TPVX|fDp-J@IC?nPYZ+yJWuPZ*U`kF&{uDaRLAWpVb`k!O^XEk+@b9aL zMnt98bpDvcPsl&l8+h?AsCxAoNOFo^$oN&aLS*~x&WTVvsE5Pht%OqBb| zPZ-jFrd(@lqbdU#LYdwc7ZoYjh97VlUt{e)FZDgmbVVOQIUU}+WU-pr6-Ng8D1UI zR!iEOVR^Ax;s&H|qn)^Tm7h`8<{ZK~eEugc2?MM`ahuH)*S435ypA@QYBc`e*P;Ix z@4!HM*+Bm-*Pq!Aq}PzgZw-3`7+4MKunqCD zG<=P;Nepf$^-Gba*J#q}Q|>B1*ZGM@xo=ia`6-EiqU{y*!KdL29#2?r5tXyh$Okef z)8IN=g*AjjN!v?)gQ@pd#`fnE8$vUkNf|>k%l|XXm@IZ>(qCG4^U0e{3%#wiqvUO% zek=^fPeYA|S1yJ!oZh?IGGwMqChDE0-VNF)MSgzLcs2I2QfM4M!zmDk#9Pc6P6w*E!v|Gmz-ZoSmB zs8@VS*0!EHk(Q7A^VHl+PkbTkEg(N1@llk0#WI}3b+pGc zLF?lNbT5tFvJOjY1iW6*$OY2lv)<<^H=l}WXz(fZ9+TdbGQ+6z zkow21@x$b;AdP=Z{eLh1%*>lbej~~a##@w`^Z%X*UND_BB=aC0#G&#ayiX?;t>N%k zkpWdDkIzeiR}mVlPq|KXkpDj&>eHBBd|MEBy|*@+P(GNl32^cE1cq70AsP;*@N7EN z>o2TN9^Ywsk@Z7b7RukGlPaWtCG7|uzowy!*2X4G6gIH4ls-bqV15phT9DS-QnDZHMB{Oonby!_OS!D-cN8$bN9g2x}Ccps?0M1xcRvHvr}8zj!5fsPc~ zPq+>p{6yhwq;1CDl-)^Q8mqI5@X!3{m6$RO34dXR;rO}1&rRBhM0#SvEoo~IZ7k*| z0rek|7MTBR68`(r*W|0!A(f|*x0k{P2tVZ~I+gU&mydcKqTEB$=TL@!Hr~t0&nY@8 zYlDhHdKA(sP);xYeR1z7dA(_8Gym3jATc@#87c6mRZ2;NdNnee(@0Yq{h6QoH1O|> z?-~NHden>kpGoA>Y^l44vKjb^K)tY}O(iWc;i!}kNBKJ1|GFgTyIj2<($O*EdhxwN z;Me8Uq(vufG!0ayfxg6B(m+2ONOmhf#Z=woHj#0Z8A&{@O=Ku-_W#d7^<87&wVKBN zeN~}@e_zdMw6o>KrO^ZA6=tPg(qK&*_es+iQoj=Zk)KG`Q5X*0X40SW^NTfB*R~)m zeJ-J17s~pnXne92s7B)#_(@Mg11Pjc=~n3kN-o^4R)7D(Qv+xC%H<6aQ<8RjDKI?P@mHN==zpvRAcxd^n=uEFxG}@H1 z8%Xc|pYjn2?V<@qvZcx!P`JaQkJfSje0Pirr=W= zI7LJCDcg=tkJ|wFs>hqlOp=qQ-vRYHMcE%n_etAIyd`aHq5Npl63})fYkL#ow#JLtu>&i z{!FzSw%sWu_y&X5$kI zG`Eg^B>e9yHsPWc@BW|kD>Po2fo#M?459;dE0bT_DrTh38|0@UZ7u#vxz7Loiu#fP zTqSYwe;QQ1(xmmb26|Cuqzz~ajV-a&xnx=~kFV0av6P)m-Lw2GB>xxEuJQBlYa!ts z`~)7hBWY|Fqlrl+y(VKqD(a9BVty)P2GKTOci?7$iJ{pbuP2m~17rWy_8^9tO(kmBf zO>GAEOr>YAPQFrZ0R!k~EAo}{dhN4(g;S9?m~zcY4y4u$K8(Ae4(yJep{~?n< z>F}=5Xg7YEQznFp$;d0kPZ?&Am-L@WKSsD7jw8JY;a6(-Kd(pR_0YtVw$^`$X^I&VM zHXVIO`41M4OdANFV$3NPT(ZNAwbVP}dzI3%nU{*U5l_<9T5 zSv&%kq191d+Yc5q*GO(QPI@_!u=R!DqRuXz#(?8?-O-0$nj zyy*DTd1s5B7BlI%XOd3GZsL-&&Lz z0Y8Z^RbQpoLH-Vblgvzjt%c3!S?SQJdf%l(kG8O_yo;HzmT@F|F@CUDQuBL5M_O{Z zylK1w$(AL7jwzm(p6GG?X7Xe4TM@gKx8?`ot>7QPAK-t<$0of2>d9&G7P}7GIU|0t z<{-&wiPRWrxqP{WOAP1Pba*A#_kfopQd%80Q2qm~yu5UV?3kIw7HH+$y;_lWVIrsUZ&N1dDM#cA0XoK=qc)9}T5cf#Z6lCWQJ{r#SQ z>_)tTI6WOf4XL|1p4FBOfTLQ`5%)vAmT5H)H~uM( zyf}FAKh}I+lC9avKp~Ak5^)1!5p{)pFJ<16(FC94*E@1=TGS>T(g=P@B3__(5&UsG zuH#$f3-rs|@uk^{MLmDabyp0s>|XIA@fKitFXyhbe73rHS`^xU<8)Ck%7+!jxmoWH zGyV9Fw9dEaSBsaWhZ>3hhuN?>4yhSG*j6Mv0Q zR&Pm*FG%rBSXeXt-*Dd~T-EGadDw-CcUZqXEZed=`e8L-*Ky`AcDX97aT@4E=vzlE z5v#$!FgRM=kcNXhgg+PwdkuGe>a|n1rqeN3Jf~kuZ!WFryo^`zogCCL_AZD&*eRG6 zS8?SRnmsHGJIg@WHpGoYjx)SFUP8Qw#AnjdE7WUom#cq*cj7N4&GzCM`db|t);-^0 zIY4~=Ei*6yv9$bqdDt+5TM0g+KEXk6rK85Cqk>Z=Vc!wo53daSGW9FdJ5_x?PMgH5 zlC-;|!>5T^_ak;h=$i)1q~;=*UMufP{1dUBeq&fqPcw(`E${;7Dkbp=>abTWxsGPo zjrecz_OOc+mfP_qoZj(;z5f>yI6Yl~HYt82jtT#L)33riK;9dD8jtF~JY?uy? z+Hb(i%uoENpU|6>xKSUF4}$fz?`HmE0k8iK1D6pED=U8-=|ujaW1fT$Lo5d04(li0 zl5gS0ba>1bck~wg-tv+1^Kq-w7$p`m)5rsTB%jQC;Oq&Vc>k}GoG4zA?YoQGjYg(@4To~=HpAJ%}^=NFo}iSQINEBG+W!bakU?Wcc- zypFk2@%?{SB9k%WJ{I=8O01ziScg%y6@RNiLEPf?b#nJkoRRM(~TiES`k zMcqq&0?%*RiXZUz603!mXAkGgFEP_u|9E=0$#>{2OvFtQWB-w9054Ml=`3{(2R)tM zpMB&5um4Rx?3P?wCTo*M5&lLRtmS~K zcvE##gS{-DV(=#QTj_wg@ZaI>@V4uflMk1_uKy{muzm6s{A_q#J{kVK`s#GVQn7c= z|5yXL0)d7(WB>nV9r7)Po-*zT$mPhBh=9RWc@*~(!8U(6i#7tD--V* zbt|*A#fSK_<_5&~e_@>rw?RHj-q+K8Z21)Ry@aO7!+wBoAa*L>n~qsYusznTN6WuW8hi0pT3n6B<*=vX(_<9EG=sA=S8FbSeXg#Umb6w^z!{P1Skf6U z&&udm_66)1*k|(6JZ!JJsw1YWPqge88etEo*;S6nIz%-7CFBTR2I*$jNbo6@lA-a#jcJbNxC1ADE{ARI1 z-uu5XV%S8(FCgtwALo!fJK1nE#TxMngXzO2Gf~}uc%J=NQcZm_&Tz-qVfmcX`4q_X<5qNFm07BXF&)}z;TMQenzZ|y8 zF^AKRhsBdU-0OOiBjRNZO`>}ZerI4J(r>V4NL%OBVUCk{1O6MmBVFPu|& zSRK9E7FLy)(%%7ZF28|4PybhO5ATGREGttKsV88nSY5meairMUh2?xyAFwR!Jx4qa z%d_oxcfi8>;6G&X&6a+EzmNZ&=AwUr{?qga!`{a^7S_&e&-ngt0HLxPcktnwwyx%fg7?}}4DpLiwt%lsbR6L*r?-*G3K4?Dzr$%{B}C?7^^qc{TR3fzxl z2hLmStTBqP1!>tX^&zCN{s}wDrPC}5Tc|%wd<3VN{)Oq)ILE?U;X_j$+^|A8wavbQ z|A`~sQ*Xi@Os7M9{eMMsFfWm=uVQGiW^1t?@}-9Uh-k9Wi-3+@z05i4P7 zTlhNt8Tp<%gu*7#_&gmk+`_79*&O*?I!BmqVSYd^J?CxKWWOFZ zHS)m(4&vQMWWTz55-uT@COSJEGs}E`Gf(of@w&j9;9SUCnEg}#T6j@<)zn4e-~Zn6 zbf*Akq|4jO@8TcxBM?hDY#OgAKZa0ogJIv`-z_$R50hUlZ?C_QccU5h8g4}ghP~ma zu$TBchrOo0H@^P=n#hkN!d;fVP9&^2;!9~^)D!qx{QVXlmOp6b8~sP}an3Y*HUAgR zXSBZO?bJ)n)e?UWA=Wu&?9Wt0%(G`KT(40_Y~{(qZY9v0Z-t$Zp5`YrbJEg_<-74( zs%xZ~Uih2RgH3Q`0kh>(JrZ}fLoR{G{>)b7urY@F6T2nV6_EKk`63u=6TEdgz1FVcMv|4ZdM~g zVIT2F4L_S+p3V+An?IG)&3!Z05n;pAk&(ACvmIWM&b9DO>hsil(gEL!FX%N$$In-9 zv3PjYl`^wlS-Pm!tloP&+?@SWy8@>V%D!wV ScR0S#gC}GUJgv}@a{mVubRwYu diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp index 03cf424d58..5dac9b6d73 100644 --- a/src/libslic3r/Model.cpp +++ b/src/libslic3r/Model.cpp @@ -37,6 +37,11 @@ #include "MeshBoolean.hpp" #include "Format/3mf.hpp" +// Transtltion +#include "I18N.hpp" + +#define _L(s) Slic3r::I18N::translate(s) + namespace Slic3r { // BBS initialization of static variables std::map Model::extruderParamsMap = { {0,{"",0,0}}}; @@ -191,7 +196,7 @@ Model Model::read_from_file(const std::string& input_file, DynamicPrintConfig* c //BBS: is_xxx is used for is_bbs_3mf when load 3mf result = load_bbs_3mf(input_file.c_str(), config, config_substitutions, &model, plate_data, project_presets, is_xxx, file_version, proFn, options, project, plate_id); else - throw Slic3r::RuntimeError("Unknown file format. Input file must have .stl, .obj, .amf(.xml) extension."); + throw Slic3r::RuntimeError(_L("Unknown file format. Input file must have .stl, .obj, .amf(.xml) extension.")); if (is_cb_cancel) { Model empty_model; @@ -200,13 +205,13 @@ Model Model::read_from_file(const std::string& input_file, DynamicPrintConfig* c if (!result) { if (message.empty()) - throw Slic3r::RuntimeError("Loading of a model file failed."); + throw Slic3r::RuntimeError(_L("Loading of a model file failed.")); else throw Slic3r::RuntimeError(message); } if (model.objects.empty()) - throw Slic3r::RuntimeError("The supplied file couldn't be read because it's empty"); + throw Slic3r::RuntimeError(_L("The supplied file couldn't be read because it's empty")); for (ModelObject *o : model.objects) o->input_file = input_file; @@ -252,14 +257,14 @@ Model Model::read_from_archive(const std::string& input_file, DynamicPrintConfig else if (boost::algorithm::iends_with(input_file, ".zip.amf")) result = load_amf(input_file.c_str(), config, config_substitutions, &model, &is_bbl_3mf); else - throw Slic3r::RuntimeError("Unknown file format. Input file must have .3mf or .zip.amf extension."); + throw Slic3r::RuntimeError(_L("Unknown file format. Input file must have .3mf or .zip.amf extension.")); if (out_file_type != En3mfType::From_Prusa) { out_file_type = is_bbl_3mf ? En3mfType::From_BBS : En3mfType::From_Other; } if (!result) - throw Slic3r::RuntimeError("Loading of a model file failed."); + throw Slic3r::RuntimeError(_L("Loading of a model file failed.")); for (ModelObject *o : model.objects) { // if (boost::algorithm::iends_with(input_file, ".zip.amf")) @@ -278,7 +283,7 @@ Model Model::read_from_archive(const std::string& input_file, DynamicPrintConfig if (proFn) { proFn(IMPORT_STAGE_ADD_INSTANCE, 0, 1, cb_cancel); if (cb_cancel) - throw Slic3r::RuntimeError("Canceled"); + throw Slic3r::RuntimeError(_L("Canceled")); } } @@ -289,7 +294,7 @@ Model Model::read_from_archive(const std::string& input_file, DynamicPrintConfig if (proFn) { proFn(IMPORT_STAGE_UPDATE_GCODE, 0, 1, cb_cancel); if (cb_cancel) - throw Slic3r::RuntimeError("Canceled"); + throw Slic3r::RuntimeError(_L("Canceled")); } //BBS @@ -300,7 +305,7 @@ Model Model::read_from_archive(const std::string& input_file, DynamicPrintConfig if (proFn) { proFn(IMPORT_STAGE_CHECK_MODE_GCODE, 0, 1, cb_cancel); if (cb_cancel) - throw Slic3r::RuntimeError("Canceled"); + throw Slic3r::RuntimeError(_L("Canceled")); } handle_legacy_sla(*config); From 114baf7398ed74ae38a5d5f79102ad897d2e4da8 Mon Sep 17 00:00:00 2001 From: "maosheng.wei" Date: Tue, 18 Apr 2023 16:45:54 +0800 Subject: [PATCH 5/7] FIX: [STUDIO-2687] Translation issues with network plugins Change-Id: I4c65f659efe44ab04fcf4a2874676761e2f713fb --- bbl/i18n/zh_cn/BambuStudio_zh_CN.po | 2 +- resources/i18n/zh_cn/BambuStudio.mo | Bin 214338 -> 214347 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po index bb5cc9e688..4c80808d96 100644 --- a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po +++ b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po @@ -5787,7 +5787,7 @@ msgstr "网络插件升级" msgid "" "Click OK to update the Network plug-in when Bambu Studio launches next time." -msgstr "点击OK将在Bambu Studio下次启动之后自动升级网络插件" +msgstr "点击\"确定\",将在Bambu Studio下次启动之后自动升级网络插件" #, c-format, boost-format msgid "A new Network plug-in(%s) available, Do you want to install it?" diff --git a/resources/i18n/zh_cn/BambuStudio.mo b/resources/i18n/zh_cn/BambuStudio.mo index f3adaee720861bf749bdb741d573938e2c04d56d..7290dc721c6f8cfea805ae72ac39e59c559f778c 100644 GIT binary patch delta 15908 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 From 978764433bd6c076ac78fe02293be5028da97c56 Mon Sep 17 00:00:00 2001 From: Cal Heldenbrand Date: Tue, 18 Apr 2023 18:54:26 -0500 Subject: [PATCH 6/7] Fix for MIT-SHM BadAccess X socket permissions In some X installations using the MIT shared memory extension for rendering window elements, Bambu Studio needs direct access to a UNIX socket for fast rendering. This fix passes `--ipc host` with docker run to allow the container to just have direct access to the host's IPC system. The error message that this solves is: ``` (bambu-studio:1): Gdk-ERROR **: 00:02:37.498: The program 'bambu-studio' received an X Window System error. This probably reflects a bug in the program. The error was 'BadAccess (attempt to access private resource denied)'. (Details: serial 316 error_code 10 request_code 130 (MIT-SHM) minor_code 1) (Note to programmers: normally, X errors are reported asynchronously; that is, you will receive the error a while after causing it. To debug your program, run it with the GDK_SYNCHRONIZE environment variable to change this behavior. You can then get a meaningful backtrace from your debugger if you break on the gdk_x_error() function.) ``` Here are some extra links for more information: https://github.com/osrf/docker_images/issues/21 http://wiki.ros.org/docker/Tutorials/GUI https://en.wikipedia.org/wiki/MIT-SHM --- DockerRun.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/DockerRun.sh b/DockerRun.sh index 31319fb810..0e2d98330b 100755 --- a/DockerRun.sh +++ b/DockerRun.sh @@ -8,6 +8,8 @@ set -x docker run \ `# Use the hosts networking. Printer wifi and also dbus communication` \ --net=host \ + `# Some X installs will not have permissions to talk to sockets for shared memory` \ + --ipc host \ `# Run as your workstations username to keep permissions the same` \ -u $USER \ `# Bind mount your home directory into the container for loading/saving files` \ From 22e989930967ee1fa1f557080ee421d7b7fb49c4 Mon Sep 17 00:00:00 2001 From: Cal Heldenbrand Date: Tue, 18 Apr 2023 20:16:54 -0500 Subject: [PATCH 7/7] Docker Run: Add gstreamer plugins for video support These two packages are needed to stream video from the webcam --- Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile b/Dockerfile index 3f34d66a29..6827d782dd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,6 +18,8 @@ RUN apt-get update && apt-get install -y \ extra-cmake-modules \ file \ git \ + gstreamer1.0-plugins-bad \ + gstreamer1.0-libav \ libcairo2-dev \ libcurl4-openssl-dev \ libdbus-1-dev \