From 1d006ed8e9a99b21c9a2980595154d3c6971e50a Mon Sep 17 00:00:00 2001 From: DaViDev985 Date: Sat, 19 Apr 2025 15:34:59 +0200 Subject: [PATCH] Spacewar: Add support for Nothing OS Camera The blobs have been extracted from fw Spacewar_V3.0-250108-1938_3.0 --- Android.bp | 133 ++++++++---------- Spacewar-vendor.mk | 7 +- proprietary/system/etc/public.libraries.txt | 33 +++++ ...hardware.camera.provider@2.4-service_64.rc | 28 ++++ proprietary/vendor/etc/public.libraries.txt | 17 +++ .../vendor/lib/libcamxexternalformatutils.so | Bin 21644 -> 0 bytes proprietary/vendor/lib/libmpbase.so | Bin 0 -> 5656 bytes proprietary/vendor/lib64/libcvp_util.so | Bin 28280 -> 0 bytes 8 files changed, 145 insertions(+), 73 deletions(-) create mode 100644 proprietary/system/etc/public.libraries.txt create mode 100644 proprietary/vendor/etc/init/android.hardware.camera.provider@2.4-service_64.rc create mode 100644 proprietary/vendor/etc/public.libraries.txt delete mode 100644 proprietary/vendor/lib/libcamxexternalformatutils.so create mode 100644 proprietary/vendor/lib/libmpbase.so delete mode 100644 proprietary/vendor/lib64/libcvp_util.so diff --git a/Android.bp b/Android.bp index 98f8ed3..5fa724f 100644 --- a/Android.bp +++ b/Android.bp @@ -1903,49 +1903,6 @@ cc_prebuilt_library_shared { soc_specific: true, } -cc_prebuilt_library_shared { - name: "libcamxexternalformatutils", - owner: "nothing", - strip: { - none: true, - }, - target: { - android_arm: { - srcs: [ - "proprietary/vendor/lib/libcamxexternalformatutils.so", - ], - shared_libs: [ - "libcutils", - "liblog", - "libsync", - "libc++", - "libz", - "libc", - "libm", - "libdl", - ], - }, - android_arm64: { - srcs: [ - "proprietary/vendor/lib64/libcamxexternalformatutils.so", - ], - shared_libs: [ - "libcutils", - "liblog", - "libsync", - "libc++", - "libz", - "libc", - "libm", - "libdl", - ], - }, - }, - compile_multilib: "both", - prefer: true, - soc_specific: true, -} - cc_prebuilt_library_shared { name: "libcapiv2svacnn", owner: "nothing", @@ -3744,6 +3701,35 @@ cc_prebuilt_library_shared { soc_specific: true, } +cc_prebuilt_library_shared { + name: "libmpbase", + owner: "nothing", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: [ + "proprietary/vendor/lib/libmpbase.so", + ], + shared_libs: [ + "libc", + ], + }, + android_arm64: { + srcs: [ + "proprietary/vendor/lib64/libmpbase.so", + ], + shared_libs: [ + "libc", + ], + }, + }, + compile_multilib: "both", + prefer: true, + soc_specific: true, +} + cc_prebuilt_library_shared { name: "libmulawdec", owner: "nothing", @@ -14022,6 +14008,34 @@ cc_prebuilt_library_shared { soc_specific: true, } +cc_prebuilt_library_shared { + name: "libcamxexternalformatutils", + owner: "nothing", + strip: { + none: true, + }, + target: { + android_arm64: { + srcs: [ + "proprietary/vendor/lib64/libcamxexternalformatutils.so", + ], + shared_libs: [ + "libcutils", + "liblog", + "libsync", + "libc++", + "libz", + "libc", + "libm", + "libdl", + ], + }, + }, + compile_multilib: "64", + prefer: true, + soc_specific: true, +} + cc_prebuilt_library_shared { name: "libcamxfacialfeatures", owner: "nothing", @@ -14600,33 +14614,6 @@ cc_prebuilt_library_shared { soc_specific: true, } -cc_prebuilt_library_shared { - name: "libcvp_util", - owner: "nothing", - strip: { - none: true, - }, - target: { - android_arm64: { - srcs: [ - "proprietary/vendor/lib64/libcvp_util.so", - ], - shared_libs: [ - "libc++", - "libutils", - "libQSEEComAPI", - "liblog", - "libc", - "libm", - "libdl", - ], - }, - }, - compile_multilib: "64", - prefer: true, - soc_specific: true, -} - cc_prebuilt_library_shared { name: "libcvpcpuRev_skel", owner: "nothing", @@ -16272,10 +16259,14 @@ cc_prebuilt_library_shared { target: { android_arm64: { srcs: [ - "proprietary/vendor/lib64/libmpbase.so", + "proprietary/vendor/lib64/libmouth_mask_detection.arcsoft.so", ], shared_libs: [ + "libmpbase", + "liblog", "libc", + "libm", + "libdl", ], }, }, diff --git a/Spacewar-vendor.mk b/Spacewar-vendor.mk index 45de501..2535e06 100644 --- a/Spacewar-vendor.mk +++ b/Spacewar-vendor.mk @@ -8,6 +8,7 @@ PRODUCT_SOONG_NAMESPACES += \ PRODUCT_COPY_FILES += \ vendor/nothing/Spacewar/proprietary/odm/etc/aac_richtap.config:$(TARGET_COPY_OUT_ODM)/etc/aac_richtap.config \ vendor/nothing/Spacewar/proprietary/product/etc/permissions/telephony_product_privapp-permissions-qti.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/telephony_product_privapp-permissions-qti.xml \ + vendor/nothing/Spacewar/proprietary/system/etc/public.libraries.txt:$(TARGET_COPY_OUT_SYSTEM)/etc/public.libraries.txt \ vendor/nothing/Spacewar/proprietary/system/etc/sysconfig/qti_whitelist.xml:$(TARGET_COPY_OUT_SYSTEM)/etc/sysconfig/qti_whitelist.xml \ vendor/nothing/Spacewar/proprietary/system_ext/etc/dpm/dpm.conf:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/dpm/dpm.conf \ vendor/nothing/Spacewar/proprietary/system_ext/etc/hdr_config/ans_off/ans_config.txt:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/hdr_config/ans_off/ans_config.txt \ @@ -214,6 +215,7 @@ PRODUCT_COPY_FILES += \ vendor/nothing/Spacewar/proprietary/vendor/etc/init/android.hardware.bluetooth@1.0-service-qti.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/android.hardware.bluetooth@1.0-service-qti.rc \ vendor/nothing/Spacewar/proprietary/vendor/etc/init/android.hardware.camera.provider@2.4-service_64.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/android.hardware.camera.provider@2.4-service_64.rc \ vendor/nothing/Spacewar/proprietary/vendor/etc/init/android.hardware.drm@1.3-service.widevine.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/android.hardware.drm@1.3-service.widevine.rc \ + vendor/nothing/Spacewar/proprietary/vendor/etc/init/android.hardware.camera.provider@2.4-service_64.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/android.hardware.camera.provider@2.4-service_64.rc \ vendor/nothing/Spacewar/proprietary/vendor/etc/init/android.hardware.gatekeeper@1.0-service-qti.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/android.hardware.gatekeeper@1.0-service-qti.rc \ vendor/nothing/Spacewar/proprietary/vendor/etc/init/android.hardware.gnss@2.1-service-qti.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/android.hardware.gnss@2.1-service-qti.rc \ vendor/nothing/Spacewar/proprietary/vendor/etc/init/android.hardware.keymaster@4.1-service-qti.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/android.hardware.keymaster@4.1-service-qti.rc \ @@ -315,6 +317,7 @@ PRODUCT_COPY_FILES += \ vendor/nothing/Spacewar/proprietary/vendor/etc/mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_qrd.xml \ vendor/nothing/Spacewar/proprietary/vendor/etc/msm_irqbalance.conf:$(TARGET_COPY_OUT_VENDOR)/etc/msm_irqbalance.conf \ vendor/nothing/Spacewar/proprietary/vendor/etc/permissions/vendor-qti-hardware-sensorscalibrate.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/vendor-qti-hardware-sensorscalibrate.xml \ + vendor/nothing/Spacewar/proprietary/vendor/etc/public.libraries.txt:$(TARGET_COPY_OUT_VENDOR)/etc/public.libraries.txt \ vendor/nothing/Spacewar/proprietary/vendor/etc/qcril_database/qcrilNr.db:$(TARGET_COPY_OUT_VENDOR)/etc/qcril_database/qcrilNr.db \ vendor/nothing/Spacewar/proprietary/vendor/etc/qcril_database/upgrade/config/10.0_config.sql:$(TARGET_COPY_OUT_VENDOR)/etc/qcril_database/upgrade/config/10.0_config.sql \ vendor/nothing/Spacewar/proprietary/vendor/etc/qcril_database/upgrade/config/11.0_config.sql:$(TARGET_COPY_OUT_VENDOR)/etc/qcril_database/upgrade/config/11.0_config.sql \ @@ -542,7 +545,6 @@ PRODUCT_PACKAGES += \ libbt-hidlclient \ libbtnv \ libc2d30_bltlib \ - libcamxexternalformatutils \ libcapiv2svacnn \ libcapiv2svarnn \ libcapiv2vop \ @@ -586,6 +588,7 @@ PRODUCT_PACKAGES += \ libminksocket \ libmiracast \ libmmosal_vendor \ + libmpbase \ libmulawdec \ libnetmgr \ libqc2vppfilter \ @@ -847,6 +850,7 @@ PRODUCT_PACKAGES += \ libcamera_nn_stub \ libcamerapostproc \ libcamxextension_night \ + libcamxexternalformatutils \ libcamxfacialfeatures \ libcamxfdalgo \ libcamxfdengine \ @@ -864,7 +868,6 @@ PRODUCT_PACKAGES += \ libcneqmiutils \ libcom.qti.chinodeutils \ libcpion \ - libcvp_util \ libcvpcpuRev_skel \ libdataitems \ libdepthcomputation \ diff --git a/proprietary/system/etc/public.libraries.txt b/proprietary/system/etc/public.libraries.txt new file mode 100644 index 0000000..3625b59 --- /dev/null +++ b/proprietary/system/etc/public.libraries.txt @@ -0,0 +1,33 @@ +# See https://android.googlesource.com/platform/ndk/+/main/docs/PlatformApis.md +libandroid.so +libaaudio.so +libamidi.so +libbinder_ndk.so +libc.so +libcamera2ndk.so +libclang_rt.hwasan-aarch64-android.so 64 nopreload +libdl.so +libEGL.so +libGLESv1_CM.so +libGLESv2.so +libGLESv3.so +libicu.so +libicui18n.so +libicuuc.so +libjnigraphics.so +liblog.so +libmediandk.so +libm.so +libnativehelper.so +libnativewindow.so +libneuralnetworks.so nopreload +libOpenMAXAL.so +libOpenSLES.so +libRS.so +libstdc++.so +libsync.so +libvulkan.so +libwebviewchromium_plat_support.so +libz.so +libofflineproc_jni.so +libencoderjpeg_jni.so nopreload diff --git a/proprietary/vendor/etc/init/android.hardware.camera.provider@2.4-service_64.rc b/proprietary/vendor/etc/init/android.hardware.camera.provider@2.4-service_64.rc new file mode 100644 index 0000000..5cd1d55 --- /dev/null +++ b/proprietary/vendor/etc/init/android.hardware.camera.provider@2.4-service_64.rc @@ -0,0 +1,28 @@ +#! /bin/sh +# +#Copyright (c) 2019-2021 Qualcomm Technologies, Inc. +#All Rights Reserved. +#Confidential and Proprietary - Qualcomm Technologies, Inc. +# + +on property:sys.boot_completed=1 + setprop camera.disable_zsl_mode true + # Add a cpuset for the camera daemon + # We want all cores for camera + mkdir /dev/cpuset/camera-daemon + write /dev/cpuset/camera-daemon/cpus 0-7 + write /dev/cpuset/camera-daemon/mems 0 + chown cameraserver cameraserver /dev/cpuset/camera-daemon + chown cameraserver cameraserver /dev/cpuset/camera-daemon/tasks + chmod 0660 /dev/cpuset/camera-daemon/tasks + +service vendor.camera-provider-2-4 /vendor/bin/hw/android.hardware.camera.provider@2.4-service_64 + override + interface android.hardware.camera.provider@2.4::ICameraProvider legacy/0 + interface vendor.qti.hardware.camera.postproc@1.0::IPostProcService camerapostprocservice + class hal + user cameraserver + group audio camera input drmrpc oem_2907 + ioprio rt 4 + capabilities SYS_NICE + task_profiles CameraServiceCapacity HighPerformance diff --git a/proprietary/vendor/etc/public.libraries.txt b/proprietary/vendor/etc/public.libraries.txt new file mode 100644 index 0000000..8c8ece1 --- /dev/null +++ b/proprietary/vendor/etc/public.libraries.txt @@ -0,0 +1,17 @@ +libOpenCL.so +libcamxextension_night.so 64 +libarcsoft_beautyshot.so 64 +libarcsoft_aiscenedetection.so 64 +libarcsoft_portrait_distortion_correction.so 64 +libarcsoft_low_light_hdr.so 64 +libmouth_mask_detection.arcsoft.so 64 +libarcsoft_superportrait.so 64 +libarcsoft_watermark.so 64 +libarcsoft_portrait_super_night_raw.so 64 +libarcsoft_super_night_raw.so 64 +libarcsoft_dark_vision_raw.so 64 +libarcsoft_singlecam_bokeh.so 64 +libarcsoft_high_dynamic_range.so 64 +libarcsoft_dualcam_refocus_image.so 64 +libarcsoft_dualcam_refocus_video.so 64 +libarcsoft_mf_superresolution.so 64 \ No newline at end of file diff --git a/proprietary/vendor/lib/libcamxexternalformatutils.so b/proprietary/vendor/lib/libcamxexternalformatutils.so deleted file mode 100644 index f65dcadc5f21536484e36843c1c27ff8d0f266ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21644 zcmd6P30M@z_HXqpFd)LPsDP-=qJoN|aY0RVSR9ua#WijbMi?Cu1cbq0Vq#-7F3G)W zViNUg#KbMet6*ZH#sw2|joz3HXcA0Z#sxueX^0?#GXG!obi*(VChvXU|9!8AnyPc^ z)Twh$Rh>H3-NTX*W3>#!5b2VWP(mSfZ$kPb-yVlA8Bz8pEOAAhAL&4xfTDF$(x3rN z3gBp>?QJhrXF_PAbwq8gR|BSf&}0g;CZ$cic_bm`dDgTH3~8eMO6`+I6Oy#Znkf1x zl2k84`3~COL3^46fyDMyhKVJ{Bzyj>s!8?}LlD*})U+V1pez+g0Lj zl|RV_4nozNHZbjfxgGqD9lY5F_5}St8<@7AfwW^VAv|&~SnnPt;4Dn)XGORj27CkH z5E1?s@Xd&(`d%&=vwlr*9R?(S0wDuM`nO=el8J=GiSXMP_#_+p7tvk=SmGZK`Yh0= zi}X`LUkqka{jY!@1D53b4sth=JRADd+Q@$k^2dT+YF~){xjs$wlhJ;| zpeA^TGa-uyG||5e_>v850i10kUt8$^+{h+-z6JP~=h26#PjA5CqX?NM!rPEf8AgaN zzw#0h3@esXgSI1^FcTF96;QeI@u9_)LR*AtL===obS2BGq>X z-vW%ERG$KSMB3QrG3cMQ;nxfH-fUyd3Hg?RzogF&$Z-neC&7h)iB10z zu*XrG`MeqW5*z*6V*EIp`STLsLpJss3%QqLynG-hmH#B*U&ccQQQk{{r^mtOqJAeq zw+-WE6zO+CAF~br_aIMz&HUMm{(NobPXqLgw3&ZBuwJtvZ;04m4)hDL(LWmcJhsuN z82p~K885nV$>5FYM~*}x2_uzht`KRgl>e{4>3+eGW6+g_o@yj2=}#gIkPKST7M7Ef z)4fbPNoP2`9rMt0InSpi{y_aUQt4>RC9!A)}t4UQY=Nu)_IR&Y2l=r za749KMKrPqR4Q^qDcXySQgNi+C&Waef-s`=iY2U!W82Eoa|>iDZgjFNNG1C=mv9=| zCr2shrAT1a#6`_gS*RRzj|)WVhSUS87g9J9rYOO%3w!7g!U+?I;TKfUrw|IN$y zEqE>ee(Z;vohlj@w%ZuAB=}vq^VL_$)Wgx1sMnisT>h`gW%h#O z@{iT)|NL-B^60N_eYRb@s_2VDV^>6led_u!;DrV92lp3OkJ{Jg*HceknDR225cl27 zyC>)7oG)9ueEX5Jej~bE8Fsbk(ye>j-AaPHstzu@IPm=N>6U@HTSxu=;P6k*6Mpk( zvuXp0k5A0j#p{gv>|~<|%uPgI=+wDs_Ppk2rTl$flZ+Y3 zN&3;L(Tj|bs-?(MeOz+3KE)A1oIXQPD>^;hQS(GyYD#jd-a(bnY7(__%U*@LsFdV+ zsq^)zj!Y1pHFvH)qm|ZEqF;;=4ATnZ@pI>9>RWIfohhlJO&X`yC+U+M2Jp7<84kJ;7{;V!In-SkiqWZw8TwX?qfNnFo|B@V zK4q$P{?X}%c}C;k_>{DH@#z`K;2b|=+$7^O@$r2J%+JE?kL^2RA<-Grl1XApnlPu+ z()FqF{YZvhmt;T3GPCBiHplGP_D@MmdjI5#;y(V$O!C4R0BOI%#I_98f@ za@=`R@*<DVh`33PTG4Bby)H7^ARNI=IKeMF(XBvN?y%KHqt0E)2PE#ofRK+ zqxTVUG$bK@gyiMraS=kkn@bY%J=`oDPV(}0b4HqT%eXudzA3__qqV+2%~2mG!plTB zSA;K!FfYO(0akhq%_)BoUMs?#k~WH--~>I^hccUV2UT)dLfr_H-`X5Ka+=A=~T~J;W(P3-IvJQ zEMqu!xNwh_kYqyI(}OO}agbKg+>;PDn&S|yra5k^`q11B_bOGBqu~Si5ag%LCkG94_ELg$=r5ZDbuwB#H&=J|``b48XiKS;UpkB*j7iO|i ziN-8l3c#eWMzO46LO9wtqHI*QLBqjX?HLYt94@(I2dAZ$=N(9wpPFme8@rP5jR&0YrUQ;t zXAR0)G@-#{xHR8{u(MGH>tUg>MI&CEmEkrAoyI!hAP`Q^3@zJ9Q^Iyuwd`J!*O4xb z-Pqb$YG9{eBW<%KCJ{>-i@G!tOEOxQkVI{}Cd8UPnTs;}BC+ai%WTquX(64wr zC=%zt5V?dq?AvxJHg=4|Ubt{145vrJR?rf2>A+&+2&5{<)5(6qH1f9_V~LC7HRMWW z#zeg^Eq=tb$?@9p6JLm$9FJJxC3Z?GJ?yf^G?t$E*}pVIWA6@T3&G_LU#vk+lk_|h zDAE;Q9C8-P7T?VdFIJOK2Y75JB+LOGZl6Rrz+?L$-GSF2r^&Wo0%k15Njd1~{a%8c zr8zEaFTzE0sVt(JWwg#n_eneyu~--n`p{wQwB2&Do%s^%8!u*5cC3tV_~tBV(??n! zJ~?sWf?5-P8&6}dVauz)u5?4q9a9Bpww5R~Ys?DZm9D_Exz}VQ_l829drhr5R;F+z z*xpzFsNPz_sMnbBBkWvRGWZppMqB6#2FTp9+g*2tv1V zMMTbZCFCNS_e-#g-lzsW@@wAUp@?|vI>S!9{?KCazizRVQ+X&K7xbwSc&#xjq1#U` zO}Z(e8-<;KPv?%6DLr${40KbFoDvCFHU`h&kk%s2xoxpf+YwFfwWBtCBpZF>Ldwag z@Y`y#74oey|7o#QsKhdcxMJfSi{)^c#UjuMcG_A>$OPDuxaNW17f6v9Cuw{>MSDl% zv&BK*o6)yB3}xH@d7J*Pp?tj@21Angztal;rA_=Z zTj4+70sj>6m)r5D`b+l9NBK9{?im~TXSTwBiUa zh5vI7_&*E&C+y^>`b+$CP<|ivJE4PQ|DLVz@9Kbm2>9nob4Q$0RDX$oGRn(PKg-5G z-mUO&>wv!-_kmRp#a6CV&RZVM5S{n~kqV76-)wFls=vhl zQg?|SJ{BfQwKWHaE)nDR26XjK??{70dm96l{`ynmjf(B>oJ9hl3 z{u2Kfl&@p+;XotV|LzmVexuX@|6Aa%M|)fQQ2izTJy9Nv`qeh$`%5eQe|EtCC-4up zvp>~e;_r>}L-0OgBmc2h_M!xHM|m*nW0Asd^HHnwQV_A3Y6(|d zONh(ble=A$#QQ%DYy_|EUn}XFc{H*(ti%6)3U(XfXR})`0SsV3;IG?+#Xmjqa ztj)>0q)q%N5||y!@NxH*S`r$3IawR3?Gi*`Cc?{P0FR0Hoq%KbsrSFC{&~sqgua)) zsy?t}=5Kr4SMU)sYWovD=K7*^4&&(pV+{m^G-q|w@E zBzmH~qCbNE$TxFL0f!P9HgbVr&5auW&V{VjHSbs%AI0#CjuSRp7iqj#>N$3CEVXOd zJrX+n!PxzT4eVr2a2wTjOtzr?&3m-A{NAuqhQD`Dsin}_d(d?e^gjX4roiEgwES9A%k+Uv(H`#XAY*>4%>|SuT{r4u_+x5Xw+nvtLXI&{Psxu*ikB?^d|_8&WZW zLF>UPO{kgnbEsMSd{bONmm=ptrXr4b;M+u4-h|=j6gH~z+HxqyxVYv;lD!Z=v{Im13oPhNrvQ$WTt)^V>Q1BqvUoJ zqvS?MDd1>j8xJ~8@6vH1Y@It_;Or-kkD~AHuosJai{qndHa=s|YkXzr8GhkiwN|!K zmB5Mi4HWe6MFjhHl*?6JDoZ`JgdbX4QHq0bk20!16Ika~>B%$9HIr9m7xG8ZaB2ZH z%MT~T0(DC51%bM-8TDCM>-!>Vr#M1esMX_Z3KkU9SQapq+ys^82v+b{cc>Nm-SvXL z*=DNq#(bHUux)zy6<;lr@lJkDeylGpwc5$EnxywDVj?wF7SEM2+%dv($42?~EK*l< z>D_>5c?;o=c~)|yivTSVpaSAs6xDf5&FAddnmsJW$E(nVsfc1u{>jXF`LK%&7{<@@#-SJMUm$8o4xYgSMS^wbof{dHDHbhGoJFs=6<| zTpPOfa3%2|eBjbuRo?1Oq29$Lxt^Y{l`+&HZ!2p+9J z2_DaD+_bfB9=j?-7+Dy{FX7(9oLX)8q-vYzK=^>|IakX(`9WkCvx~8Q)6!pkB>I*u zT4L;Z4I-|A%j+4h0~ObnXn1C+vSK+inw;&xR7_kjw&q;)8TF4fKSpn>mj!QfkyR{} zZL5%Z;WapZSsxh{7xjk(r%Bh*=&oYqX*wmW9&uVntw8c&&>$gc)$AR-q>RHO{x1WN>_H4l@LG z-kV~I&B4va@ehuU<8X2XAL};?j_U@Fj;n=>z_`B0JvQIScd1m73EF6Fu$HWi#JYIr zu}h@_m>!LoX-_WRW*DxX3I3wuI%d%oE-EI%@P?UTWi$p^k=kq&cfmGtK48xt{I$F& zzOkaQAkhUl7!N;_ZzUt+_+6YOSY9zv7Q|a*YO|)Q-g9;I@CR%6+0O5EoOOQtnn_Sj zy=>5#S{3_s#SO^3jGGV>(%4G3zsY(F3vF%Z5hN?WCOf0{&tK*L%6WC)SBi4#Rl#&# zfEP#gpIyk*t14Z5XBRPpXGl92gIA^t&tQ*2JSo_O%C`pc{k-pBeHHe4uSp&AEBvF+ zZ}E*TI#mC-5**{0`hcZ9@()$WWCPE8Rk*1J6fLh;dC`98YVA>|L_cRsB~BUpZ8>!U zr%pxV%MCKh=>Rw~^=_3XD-81B{33sM%1_o7{AAwL248@m4E$u3pJ3-;%Nf2sl3TeV z67RYqUbp&1cfl`qsk8dUqd9a%5dKgOe4-C_boe-p8~ofeoqBb}4x`}xL+me)b{+gY ztw?VsP-RvG!fOP=YXrh;1j1_sZXSajgtXDph^BxrL8e+o0lX!Vg%94a z+T$8M-{cs!Rc%ub3?)@{nDc6Qt|$0dziH{OJ`#P)7A-OMyx`Z_<=B7oE6kYP^>p47 z4LR8XyKy@FdQ<`R>ruJz{Oho1=P%WAHizwiK;I5l9o9VGb)MGc< z4L#`h-}zW6sa5T%TVh&LxY_9O5%d^=ryW*3;Ku?Bs2>ZYdQ1>v4@r-g1wC@O21o{A7K=p%hUC| zEYDdRIVu3L&Pr`|tdk+aAYW^F*sm66rSRB4NUvy|fWEGNZ;A8eT~%E@m0{1E|GIj^ zk_gj4^RCLSh+KM}59u=qCt130_bS|7iQfW*YKr08z{R6Bl*exqBAL*^#j?-oT8)C; z3Ey!4&|%pIRUq~WA=>C&SU|qKhgaNm-*ZU;&Ug4IzjL@3WmzK)dl2V4fQHsdyKH-nv&ke-$po2cz zwpu4`!^3YaKj!a*%naKp%%hkIB6UpVw^fT}p3y2(S5anFv5IAJXi7h}Q;5-IMFa8~ zK;3#*7j_a#5VX{dy;ExSi&h&tgZujy>K6yWdIL-}N^Is4L#an3|5qMyUJH+?5T5s7cv&^*(@f51At&Jjh7H4C%ZuV0D;f(DT>vozScJ1t)4799 zNTxfbu;RYPPAROIIC`FZX@97Hhx2Nz8q0$h_xp(J^0LXG%4^&;r!aw7g9=JTk z3})Ed_Xxij_eCD#0o2=g2k1&4VQs~{m8aB>8P!?aLFH1KML(&e|dE2 z+CA8c3}k}Zn|D-($mBhkqB~zOEba)YWmrQ43gvVSy(J66jvJ&fD}u1&24TkyLi9(v z2zL+)NP(eKSU0Q;8CC`pWL+DbO_y&Iuch_OAQ~yLg%e_2d~pgK+@&$L$v}``6^9Xw&|bD|Tp|)+x309wg~$!Ysv@ny#X9{9UZbb)3DU!((6gGG!0~f(n8BJFOUAkwdYUF-8vdo6v*^3Q?6i@?-JXd# zUX`o|$B)Z#+RP00=r+7-AiqSe3vj~y5!@44_+>SprmXPv#Jz!qOu3VbqOyyVvSO-d zAV0hfsVe0Tpq^CS;G8y&tFkBys=6p;^-RsaXi{~N8((A2o*dAnn^VPPB~I_zq?@u_ z#pqRERZR9!oe0x@TF*pLiF|T=s<~Ml@0ODi&;?eW%#d&flp;-EN+ZkhuI46jd>wbY zlSfx&MIjSY!)JwQKCfp2X?+#vRn1N0_;OCC@(6M6tFTfS12v!3Gwlf?ylb4*A{V*6 zm5dW?lEn<&7en*UWB%pG@#i?4#-Qbam?B?}{|_hFEpubcDnKW=(Y}@kQ}-XojG(h1 zQJe*_$qXz1tW)otGIea1ViHX1oUkJpw79R>h6zk~^s}pKw+7$s%}g*8 z$kaL2;7*~ubF|WgyOV9!Y0uqObyU%Hhxym9hy>D>OdHiY)$Z{;QQ@a!m3Xs&eO}v3 z>%7)^x6>xFHWX`o*&W}*&KrFz7*%Q!GjR3@xoJkNqGMO>?b6G&KIZhpzSUfuj^35Q zos*R@@{NdcFas1DXBMj9_b~(2?pWCq3wPmu`3@~s_ZnGc7bcMJ!eC@{By411dyI>w zXo@f@@L|@Pz8AltW6{5;u#-m!we$EI-gvUcVpLR;seOeJneYuAjo_kWl}A_SzI3## z<4|*$jzNbaM}uAsv!I+q^gSa0D_4uydFZ7$nokS+4qz1 zTp%VVZ=-gtmYy>j9#+&d>{t2pjNxsf-coJqfKeNhJSQJ_&q9>Ff=z9Fw(*bs_d&!N-wGUnVK6U9sPizUibg0A-J2zn9sFq)_-NwM+5)xRbw9h@?b%o~>xO zax_fx-%i?zqc&=Nv>x!^N<*lD`tI%Zq}M>|lRRnk(6bnxoTKxFsiO16KiV5NEEjcF zhOr4D*y$NwJ}fxcPe)iPc}Ek~!WR_Ez;0&AyJ7|*@^CWA`goa`KB_{(vI$P250e#< zJ~bwW4Kq;RJzezOR&H#GWuKyR(Ob8IXhBOQCk$|lhMt^G;b&$H3qr&(`ulY&(X+Bct545D|1=#6C1 z!D^8vTMVl^)o2U%X7;4=yFog4tR<@yJB4`Pt!RWGqfEq7?P?J3vk3}wNN*XaN%$>O zI-dGiue^gx^As3wmpc4h7N<|vupQ6wYPq(obFiXPr6g+=?Ap=m#?Ys3gkO96t!+zk zHC16=ib`L%@eej+>fmePb$jG&Q&#pTfW~lvnn!C~4eW?VTn`rCYsP50p1RGFQ?)DO zPTltQ)ax}>-P^s3m$DZlmU++cN%esY`gG(+#F1WnE;;+Z@_9O6T5F|v8eLOeE~q7X zTdY;~mKb}TBnm0FuXhAXeM&u38vFLSWc&k?eya9elB?I$D55De{=qv7PTdY6r*3y3 z^x5V32RZ4dZo34U=eV*7Sb?&P(|Dx$0m%_ zR9$E+qZv_{!%N7mHP@N)e_k)BI$k2pQz<9^LEYJRukWrpD%45vW;=MT9lXpA&bEV7 z?BE1Dc(NTl$_{?k4vw&cL+oH*JJ`(*CU)?H%I5l(*}<3WV3Qqu$__qc2k*6mbM4^u zcJN9OroVmZg6GSgNSF@fI^KY!IsJbFG`}zAbz-i-OP&-@|Nj8Z-9*?2xjW!a$Z^a- zC`L%V#gay8@KcF|3wSXTQGEgu!TXg$JuzF-ZUWCBr}T2<3gjJ-9=9h%hWrPLM|xnu z?<|meBGEWzFBqdM;eA&n@(p+~6C#nJKvp+c(k?jTMNPmrp&!B^p+6q-TtedpGYofliN~Pv99aiZT6qM+_#)MEs0ipB=6nFn~C@J4dM)7n!TG zo5G!VFlxqA=B4mq+K~=&U&fE|mjy8)OgE+n6DudZ@qYl4@q0%6lz{Y(n)pI*{H!`D zoAd@VBk4Ua4PW?Wg1)!-^RC|bAw7OpO)Gk*r=WoU4qz?J$;`Ae&>8V_`#JcvHQ=O0 zsrdC5$Wya=OTTLcn4~l6gq9g;0*4GrXyqjoY{;!V7R|TvFz7N3qCk{}z7UTe1SAPW zy7|e8k_txM9K1qaay483w?r{}lpFNF9_8R*0I-MYfre^<$XOJg&yC;a!|Gv=R{`8^C< zG0nd=q-e)0uH$|>_F{gYnP>Y2x}U1?_|@ZJx1HU&LDT-2UR-pyz3-lBFTJvI`_AIT zwYs+6_Yz-Osn@-)J<##XX`xs4T{yi~H{{b7(vt^Qwb}pY^_g#V{$)w&p5^X0zViFT zwEoYCx6=-`<6a9`_Qw_V^W7t&S9LJo_;&xJ=^HxAu21^tALFt;Ke$&o)n%vm_eVow z`rLfshhCu_zuOz#DYRhqgCpr-uxFlEHg_@owDkY(vSF!+YKy*e;=` z`GdfSH0S!uS6*y;vB>SDi?Ys(@f-Qk#|=Z4W?h{(Y24k(>mK&VzE=PImp^{s`t=O; zg7VPfmFbD5O@2G~$jSG=M&+e{e(&GC(_?Cm5A^!btK8kc`x?J-?H{`2oj(5LBcGX( z{ZBok8u;yRn(5s;aM?2ouQ{bYTJgr}fpgw#=+Z6qP0LR^=KrgEo_1Tq$3MO^@`lB5 z?n!pY{oyXUZ_oOw8_LR-PObPOJot|nKlm|s|C_O&Owasy*37swCzk#0pWO3>XTJL_ z?@`0H!njut4SM6-c5embzNL%&@~f$TbUbjg=e1|2zifVUWuLYM>0eGRj9hWJNwZ&`rwEX7C>m?|OU5&kG-3Nj1#x`CM?} zuO)Y;zy8hDJ+6g+Tzso;TKV?>-k3ggcjfebGY6%=v+L5K(_g*$LD7C?ZqVmL{A*UH z4E)y*hhA<-_x_KXKi6;D>a70tk3a3Wd*Rf$y_ko_rnpJSLKG*AL$!%U}<)OqTM6+TifUC zDDSs>#CHMSWxhi%Wf+&t*b?;b$$HllK3gv&bMxnY|KjMqWh&GA#RIQQnORbOu4A_$ zX)o?uxA6UiD^`u!ytn?+E2Dh;VrT1?PdvSfaxez_xeurh4~x$epQi|Uc&dE{Ak)~ z_WX%it4y=kB>7&_?|AlP)Bxk&bLWTEbi8zOmWS)-iyse2>@}!o-_6CpnOrw|ydAyc z?!coS!4DPDSQ!jphqx(tA{M4?~E)LB9 z!ZOsmd;ZH|Raed7w{q66R?M8eUcTfxpI)bD-TChDhrhNBdA%lK=)3R6o@LJ7c_-wT zi*wa)^30M~hj@%TaeUkMK?j(y_VpcBHr!*L+q5fnnc3NWUrfOv^_Qh<6BU_@pP4eR z@069s&xf76rsnQXY&f~-zkk*xs#d@Bu3_Vz-l`4$r?Z~j*!QJFcwBoR&r{Xrk@JXI z>C@ME`CRpvk9_9te|{LV{=kW0TSi|AIbU5k#r^e*#YsPG(|NvlanY(CXUiG4c_Y7j z@|@56FMgKbw`ljn^zr8O1*sp_X?<4hiITJDOMWYeFPBG5`TCkmUcq(O$R{yl#!i^G z<2mEGO{K42ta^NrJ3jsBu~jbqrUeInD{s3NKhv0+leDi>4?@~*34QHt{nmdF=I1sm zyWz&*-S(RNQ}gPDom(*-?*8vy!63x8FT@o_#1Ay#$lQ3**n?hQB1v@bf`%rRR*08G z_X%JcgHTCmJVH|hf)UylMMCLlyz>E)6l>7c(Xtk#SlrCo{y zMFjb1+(r|P+oX&3OH*4U(5F*++y8M$<3oB$@@Y_pNP>Jc-lIv1_rO}9qx?&dX#f3? zP9Zp?DHJx8E{UHB2uerwxYNm+XzV9l5*;0LN=I1;|6>vXYe1+(WgRmL#Ue>`LJX+I z{S}H3FFLmL%0i-OYHQ(tQjToW5vWFeDGg#_fsV$dH$i7_KT3ZZiONR#(f?0L|5qjL zz!@36s2;Q(jkBeG?-)Qg$}zt|Hgq(OegL|3;G|2k%V;1}NVH$!e`f-5R3bty(T%gx sG_s)oYm?%ni^@c=KaeOd={f+q#}a^CqPuHTrq%n#Kt>wWihUFDF!dg%T$rt#Hx~1qv=OfdNX+5{LO5>;j4TaMa(PbVQiROs9W# zSk2zPeYF;`so02J&W5vbPJgA?64Dz2N=e=OB+HKMXzzNlA|Ap8_2Leny19 z3R((2Ey9ODQ+PZ8M%Etc20PJwLKmK8X4)LtHjz1O4mZe*>653hB70uG$?YWSD9N+B zZN!k`l#(*$vRR9YocS~$A1rleI+xmrcMx6dvf0AQjuJ%)L{TbmO~F_(EX*u$O|`j2 zmosc3olItnR?(iXC@Va3glD4B(_l49POPGs74{}d6zO5l*u+e0sbUD@v+c_;KncbI zNsi6swmXZN#kR;QTA9U?=XP7%qSYm$s~Ee!H}cmX*aO%Xh-1a#fdnL@^(VkmDQB`5 zXg{Cm3b9{R4olbq}KVKDLMgR0HUob`P@*$C-}qJ?MiL?KL{>8U>@D9D3+S zeO-SvBK!-r*Y^tBU~HgbD=Z`1>RkCf$WzTd-pGgJO^VRu2t79#`GUh2h+@bUqDWF3 zQ6%vOQ6#H_D3W!TD3Ym@M#?&Aquf(kD;e7UEUzAb>HfAhz#Z@gR^Q$$t8GtIyELj@ z64fq@YUf6^pGW&*D0JyE@G9^ckTG*`P$-qt@}2<4Jd&1g3Nn@_X_-H0G^Pbm1%q(= zltD-fXqc}>>#vZ=S0+h8W~`8z(HGQ#YNd)+ozW}n+TJ_In2&6>5Yl+ek;wUdFzHLg z`o%G!M%Eh31B{0~#>MvV+(^rwsn`0Qna$RY>tdMJp%3KlU5hz$yaduTB8MN9w0O z;>pi=#1{6~41ZZ%GjhYBZ@ZGC`(uC}XAnFA@{jz)p1GujF2!XKDg#=p`M)FiC8~BQV#$PFEjJ1gAUrBy(I=%+7tRQUY zVPCHiDjDX`Fu|i&{DoZS_k`_YUX8Ivv8#;rV_w)ryEhYjN{r_tYfdrlkHqL!`Y;F9 z={fY%ni1_t8+lQUQwzUYE@Di>nqiOVNl&N?$D39q8H6e&AGau8bDgYVb6X5THTtR~ zoUP9c=8S;eoG0;YZV-C_`w8|WUr_6>lCXXWwkK=-Ke;| zdRmtb&leZ8LLFjt2XRKRcPLNhAnMfst+`s#V;llGpcnEagSk3D`-7RQWbAqDk%~aP zRE7P4d9gQWUOE??+1Jtywlzjyi#Zg!%u37w)SWoS*U5VH3Fsp^wad_siTI)JNg6j9 zc7Es&@1?DgJd^w8Oe2I%6J%%4Gj2h3TI7`Z0_JTr@*fAsV7(0TG7~-cF=bK>nAw0~$ z!wfvk!2fFo@L$bN;_il8&7K4*cVGNz(LIvx$AoRTywDw(?!)xnN_XSip^%ft(*1Tg zE)S^t%AFEJStE?$Ka2H4KZdeqD5A;e9!mFKx|^!^QQVgl-8-;HI&GjH47v-t8?-ah z|2=3k_)vt0>i-OBaPr5HjFKM&ito6LNx&<>^ik-v+N^nY#yy6nK0PawUpkI;i;GD& zaIu;MT@u%a>!(fT`f~#`gET`qW)f|sA~O{@@o?FSOeIBV;2njTFxF%hMVCEqiD(1A zsH_;TQBW;jVpW=^H(Hy(4F)s5B&%$5tkiYPx{PYjc-STgb?bW$AX~)5)x-aeDK2o01wBm$yUBjR1UcJ(^wJ5dxpX+YScON;%2a|t)*m(5s-=uw- z5G#JueEd?w$+NEye(H?xdT`&1UuEoUShMm>!>ttao=w@_GaEYB3@v&&W=P?tqpOCE z{q4G2rIYTiKYV9%Zd1(iH+MB!g~W;f-tJs*@?7lP<)elbk4pD?zni+He{1iJIfuVL z6dHfJ@AZT6N2*83V_%z)v%AOX&1K&9UB*uu+TM58dp$9or!RLuzUA$U4xcFAm^!rn zU!^b9PWUcumG{Z(&kTLy+UQANzOuvfkB|Dy$jF`b=uGRxr^?TMP`GEH=Girm{BG5` zw`P@JI=11AseHw}v;n!FjFmU-=$rGob^4a^3*VWl|D`^5MVa3F%FV4e4^7%PscyrS z=G+6iw`Rt*2RrLN_SM+7?UyTb%_B~{)+p^gRMRbe;G{Hv?$3ubz4Mo?wab205jgki z*9su`q1XNzjU<3Q>oJ*pdoR5w&mn+52g+Cq9%PY8ELco4-N*`)76 zR3k{wgAT&cXcJFBl+XdB+CpurGlWRgeg1(}#!~GeJ*q#1JlfH5fMwHxC=rTns+WXR zFKHYBSfy^#w+B_vfPe_8?snCq+)(UPU)5Swh_(u3kAQSkJ^KDeXjFxesm-+!J<3HR z93ad=TLsc1JIjGIC&j0HZ$!bq5aB`Y#X;XoNT2lR|KlXS1q?@91$Ewfbf|ia2ZO*U z&nl>T^xr`LD`bzpbEQxMqJV4=;Kh=3N)!eU(xaGEQ1z28g@Ko4a3X;qr(i&4B}sj#xXQg zcj8ax50!O+tfNV#o>Wrn=*fx_yV&&>BAOkoYl%ljDJ3s2G{Q% zo=(=BU;SLkqLckxlZL+g$mmV1Hy}|KC{GU=Mxz70;G?|YPA_ZiIhNQT4q+78c({DlJQ@nXZM?4LKn&L_Kb;N_wIVrwzv>WIAqZwY$aL#|0 z;i(B7c>=`x!X9Qn*B`*jC9GV|-^}nuGJZN(s6Cfu_L%(L_)ZzmH0HMpnQnXdIOxv& zmd)(s<>oN_H1j97)4}YyKszu3*FV7UWSKoVtiGW#|9_0U)c%z+|1V(eazv)zjnyk% z*1iw1_Pt+b&rOCmG9GScE#t{#<#N1&>93LTtYUtSmib{7^Un;KpRJ6?#dx^iK4$oF z8D7WgTPd@L&Oy{ab*#O3|6j-aJXqErCNlj5nLn!;|7KbHe#831X<0uU#r#t$tM6)t zUy_ZBW`>8x!vF;C&ji-)4YG3IgAT1%y{uk=%$^2@^ZuF0@J1Ov4>+A43Y}uHB*HDo zpBTQ8;hg6k)?Vc@`wy`8)ynML&C0Ei%`=0TKl{nr@d>6+n4NXZo+egqysRH)GM+LS zPKX+7j~f3}_{aa!IL9ddKl861ZKy*%f^pFj&#^eI+UPl5(GxY~YhW}OX%seo&*EJX zy9*c1+Xq((E+iAR3Wy(#rck6aQ6~oiPzfRFIzp1k2c)C~8#+(WiK|R73D%P2P8B7= zMAg|(n+#P@>Vk=`6Vd5v)x9eMQj#mu)k}4xB$?V=Li|byc(s1%FhLcsqqf|Gi*8E> z;Tno764x+XakywR)2>0g{a9Sox|>l|ZRuaN>|MXP^TkIOe)y1I_w)g?$kfbkU6ya$ zzBT2iJsHoYJpQY3LXZ7F&(OY8daC7=X2Rn83kU5Om%8Zm$8`bGqZ&eHrTIM>e`4EH z?V~ETk!`JmOv8?}h41_JYWiDoUtV~6{PD6bNPo^F1KXCD& zl`%~>7bLe#@;^MQGV94X2Q(kHO`hKJAB(PyIx+T-U(S5)nA-oF;_trwDsIJw7k}uS zf8n*a<3`PFxUgyHS9R;poId}<_Cfn@9PBrFj^=|&4RzCAU$yGjxjkR}%zx^?620Cy z&!Eq>*bG+70yD`<(NDBlToxKLxGZ)X6b$bDklt#~(-%4{HWw*$P>py{eTm+fh@Q*7 z=_#{1^DVis^B=MG4ysS5DhoQ-vMwz%>Tt0f0pl~|{pWK0~F zG39p@FtX@)F*0lzjRG!mS*%WW&vpeVnG+dMz@*8_Zj5sa^)v^KvXGMb$Ou2|E6a|k zmXwv0>{Jo0DE-|M$4fEJAEyzL?aqi}k{FV6+*0l5e)hy*k}ko6I0%_3!RelwhZz#Q z3kM;yB{(+Lo{%rW)gBbj%_KOEsGcxSg2Pl#D3Rd2PBgJhg42@#4{Ibij#{3uQG&B0 zmY7x{!P!wl#49CufQN;Uof5p81m7dU$4Ky637#my#jRwb4%^rmKHU?BVdTcxb7S1I zOdv^iz$>atRF zxej{)q&_nxD}6-b5NEW`<(Q9!(VdW}8{*`q&>}5u>HN^wNFmZRzPZ2tUl^z)8>r8f=S!ZzSJX>BJOf-3{aj$eSu*3sN zoJ8R?8|p`EB^stH&WA&Ejv||l*4ec{hut~PimArkN->z2V)(>_t+z{OaY{`Ax?zo(C{=G zPDg9op+mU0_MT!q4q&4!Msh5<-PPPyaUUN;xBRyg@s2C)`?ptuGbwo_kh*tb$D=5! zV-k<2I`q8X==0Lv$IFp<*Hi5dQx8|>?q)vmDD$ehrxva)9q=rr!%0>=`FiUa(Yj)s za&^T9i;LF!wj(&}1>&|PrlYYPdV#aZXv9*Ui?KbQ8z!CSJaxdCGDbW<$IvsS7nr2Y zv$!M^9Y6U<=3HKgY&c~-CU!e^WH;%Q?2?Zr%+YfVbQeJGJQ>p|L18lPIK8l5;&nol z^?zOs<(ZB4#PL%mPv%+*&EWB%!kD=A7=lg&7Ms!TaF~rQaXd!runEI+fIJ;MjnyZf zHvg^1A9w6DMAcXG0NnsRi1jt02O&XfJlTUB44Dc^KdVWH%z`Y1v_h7I;2yF9ax>)n zkTsC?kjEi|LkVeyjE1}knGYF?4NECxG-NGgD&%R%nUKAE65@hPfLsY#2)P|{CFJ{% zMU!a6AvQWmko_R%K_))T<)J#;7JPlGlA3jL$2=vZc@Nk0xwg*w*%jy!2dq*oeKK(!0Q$CF9B~* z(D%bUa#KOSA8-4Pbd9@Ia0t9lC{G0=26ztjA*|C7w1{_$(o<$mk5TLZTQ ziTOh@PbbrLgQjN$_1Dq#t(~{fb1mgeKzb?G2^~$(;`uwTcQXJ(pn5Z*w+NF`zdPtf zLyxW>g;*bEQoR{L{WC>-z_%fAW6+D;HU)3(u?6Oefl9i*ltp3Ar--^%oCqmS*PCQ~ zFeW{JQ=G0p@xZwcXf}$|^+>0H)AcD>hSNO0;PZgb13nMgH6xYM{bPe{-Yi5Uc z5mu&j5tge+0@X!%&<%+CUK3RPmMXdRQx&PfcP20D)FeyWiTwCxI1y6X+p{7%k?sX; z`m%$nfZ0pHpWoKC?D_WgkzKGg){oVkq-E1G$4)162DPPO@9eEE|jpCg?}YXp2CtrM;LRruzre@6~l=PUm3(OqHJ8{tcmJY2Ze-o8P+ zkMA$w*icT>u9jn0mkP>fZA7L!#O^OzNFX6rMtEB(txcv~Rz#AduW%JNQY2FC~M4S33wNpTZ|STs9z!FAYsfE- zf73`oCE?vER;rU*D^=tjx=(4r<@_o^D1SRf)TMi{CQWGddFYd; zN~T?gr1}xHanFZG$d{e4lb00^j&X$}1WgIuAB9wZ1|IAQ6R7Q6hx)Mm ziwHsVkQJ~M_RU8f$N1qZmyaA1Y=!~gaR;s{ zkt?}19PL+)d+gn!YOqgy1NUtU4^*{GQF(9ovRJW-D2ixC_Kpk)fsOd>cdc53;BrL^6`z67+^6O9bs@JI^ zqY$5jD@&!?)zpb(QH~O|>dg{0c~b{`1^l>NjkC)z5_$GsRpdF$0cvf@G(TKtG}`L3 z@W)k6=j!&ws;c3z`x<<~>n8fd8qWONGb#Y-PMlBB)~)&Q1AN`lN2Q}g-F81ZmP>lj zdR0B6zaFLvxOfJ0O{1nK#!?#Up9-IhuYx}WdWO0iyn(p>EB?8FvllIE34D_y@sB1P z{^?5gO8s+4!9UC4pQ{?b>NEEeMc=fyldAT+NbBEGr#t!P5Yq4Hn}i{vZ}$9?zQOPI z$`9jeTlkl%8+od#>v}c(r$PVm6UXWejV9`vMjh3vQF+>p_Q{`lpQdwmV_&iCs~Z36 z7ER}tnJ(<|znCN%0i=Crq= zOE9N(=o@7^ah&24_)s1Ecq?xo$FHYwnK1 zXK>{qXy4oV+Q#8xo$y@=ajfw&JUnzfvU)!b9rsvFh4040hvVQ&IxasH$0g=oU+{Ur z=K-Gwd>-(5z~=#<2YepzdBEoZp9g#%@Oi-Jf&W7uD6`@z?4(z(Xp=s@67kc;D`7-? z5#Qs^%1_z!#f5thUeU(<`<1fgEh1i_Az77WrC*c{e(lQ9XX~%zKiVkb9{|Vmh&9?2 zjSxY!A8P}St_=$yKdOP#=UJ5sWmMpEcddQP7iBAIuA~<>T&X<&gUDr|IOSTR5%4wE zQ1RZN5%85~_x;NnVJvJ+#%KEC=jj@Cb=MpCoXbDuIxQ>YM*H0YuJ3TsW{Ug8EnQ4r z#&duC1Yu|Q0V%D)ON5y)B$3e7$1uGKuJ6b@o|!PEaEwm_z1+8 zO5&pse?<~cMEsB>{t)6#lK42p)q%IlpMdy4NqiFG<0SEi5zmptry;&n5`Pr&S0wSr z5I-b|KZ$sgB%Xt~x{Fx;|Dmq#tBTJ9J`eaj;PZgb13nMIcU&H!w+m%1Xl(9KdPd@td-^mc0~;r`OBU>AP#C`R|eGhqE|;hg1}c(|5wtz_OEH z+S|otFq&Jhv~6_fZ(#Z=7RUKs3>p^a<%tgukaB_P zu43#V+ewQEy@f`=a!%ug`kk1nE-48L0VTR-T z!D4;uSRAjD5Q8?`E$Q!|Y2fx>X8z&r@hgk3Vfpd94v~-7!=3xT|MzmHo8y05l32W2 z*MfH^It=qkEZ&yuBC&aP{K1QX%(3hZcd-@|-rp)F#1>j{<1kwd?zK*EPn?mqV#1_G-Is8E)qCsHby1hN%Y;6^9$T0`37hHEplcW z)uwM0!t0z&qPn5LVkEK7d|2W#tOB5OOCUZ_vo)~Q#y zcPFm6bFVgre&+Yo6J)HAR+|6d^4Gswac0@TS3X&3>~o`VmioQd77y$?aP7*EMn(_* zDq_Rmy7YMX-?gvyt*wpP^46q}e!uwnEvBcZ%`f=zuLY0Z_h9!f1FY)8PeW%8uPfSC zV?S3In^K&A@mzSWtIxud!pmWO1LB3+v(NtN=H{PsC+~jy!w+AtPg*oKaZhaG;?qmh z4`e^|==73Tv-dnY#vXeh?$D0B#$Ko5`+c+X37tCQVci>Zbc@34udX*&J$!QJ)Ua>X z{rJ%Jbt9WjoGSS9x2q?w9?(4fK+Fq?@l{_nICgyPH`Mgb_lI|WcTE5I^Lfu7pH^h3 zycF;He&SuP==@`kw(s1%@2-b~_eVQZimTg>m45zu!<*`p>lVB-r*=?T!{En0?_crQ z`2}JBa?qmo*<{}G z#QumSrgxv|>epKJ$A-OhXCcP`WL=%9m$$|zvjWTo-dqUxaIWFE3aiQ zJJlSJbTxQE+Rl~!rf+-n?DXwRE56H53V3oW8W%tQQ~alM{S3LSO!ele>=1 zUi;j&UYBzBRqo%N{@(iI zVZLwRw6^m%hO`gax!~HRi2J_&B>7)Pd=k8=^_dfu{d1olGkL_54X*3w_LxfF_+aLU z?JxahTaSG+DjU117H>RpB=EVK?%zfQm8vI=kA3BV{HAri7dH>jj9YSV=Y~gK`gHZ) zcb>WDotK)e4X0DbebZ}){ZjRapOAwgh%dwaQKU%VTV_(kLdc^)zO{) z7X9+xp_`XiEcF3G{@J!@{))un;cw2Y-PgCMmQ=2K>3ol4KgWL+ z*6*;f+o81;vsa|A%JD<6#B{NdH+n4L$fEBj@< z@pb*kPlL%ze>t>2tK!7-5kEdLFYw(b=LQ^(q$|S5x?V#=>O!Xy)r$djKt3PYd~Vl~ zykEri$M27ry8e5CuA_9VP#)!DoQ6))`=ih)dx^(mM z`8v;KHroKuGU%3p?<=@nD}d28ndj&0HkV~cr-AP?xE`0(fpm@MalX!TnM^Yy@H)!v z--fiGB>DM1gG>27hubfb;!i3rY8x+~?_;>+`xvgz_ia30;?9e&!@2|C$8pK`alHP# ze9kkMW|P>@_jO$IeG#Mg_@DEPL<02*FQ4!8xRlnP?(KL!-hQWmQCmjfqM?K?z!FK{ z;_#MrGrJU>V1dxK~lcz%A4;Ie`%GAYkL7C6Ote$W3) t#_VWh`M8kh|4fpX>ri==<-aTiaW895az+88S@sy|U%VGk)?wxO{}ZRyn<4-J