From 87093758c57f41c0aac24cfe855cd1489aece36a Mon Sep 17 00:00:00 2001 From: Matt DeVillier Date: Mon, 29 Jun 2020 14:54:20 -0500 Subject: [PATCH] documentation: Add documentation for Purism Librem Mini Change-Id: Ie5699942f48d2d5b1417f447a9a36b98e4b18156 Signed-off-by: Matt DeVillier Reviewed-on: https://review.coreboot.org/c/coreboot/+/42882 Reviewed-by: Angel Pons Reviewed-by: Patrick Georgi Tested-by: build bot (Jenkins) --- Documentation/mainboard/index.md | 4 + .../mainboard/purism/librem_mini.jpg | Bin 0 -> 17720 bytes Documentation/mainboard/purism/librem_mini.md | 120 ++++++++++++++++++ .../mainboard/purism/librem_mini_flash.jpg | Bin 0 -> 41040 bytes 4 files changed, 124 insertions(+) create mode 100644 Documentation/mainboard/purism/librem_mini.jpg create mode 100644 Documentation/mainboard/purism/librem_mini.md create mode 100644 Documentation/mainboard/purism/librem_mini_flash.jpg diff --git a/Documentation/mainboard/index.md b/Documentation/mainboard/index.md index 7507a15bcb..17490643aa 100644 --- a/Documentation/mainboard/index.md +++ b/Documentation/mainboard/index.md @@ -136,6 +136,10 @@ The boards in this section are not real mainboards, but emulators. - [Hermes](prodrive/hermes.md) +## Purism + +- [Librem Mini](purism/librem_mini.md) + ## Protectli - [FW2B / FW4B](protectli/fw2b_fw4b.md) diff --git a/Documentation/mainboard/purism/librem_mini.jpg b/Documentation/mainboard/purism/librem_mini.jpg new file mode 100644 index 0000000000000000000000000000000000000000..004235d0133187d09d43d845f4563dc7c31c3cbf GIT binary patch literal 17720 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 literal 0 HcmV?d00001 diff --git a/Documentation/mainboard/purism/librem_mini.md b/Documentation/mainboard/purism/librem_mini.md new file mode 100644 index 0000000000..240dcff2d0 --- /dev/null +++ b/Documentation/mainboard/purism/librem_mini.md @@ -0,0 +1,120 @@ +# Purism Librem Mini + +```eval_rst ++------------------+--------------------------------------------------+ +| CPU | Intel Core i7-8665U | ++------------------+--------------------------------------------------+ +| PCH | Whiskey Lake / Cannon Point LP | ++------------------+--------------------------------------------------+ +| Super I/O, EC | ITE IT8528E | ++------------------+--------------------------------------------------+ +| Coprocessor | Intel Management Engine (CSME 12.x) | ++------------------+--------------------------------------------------+ +``` + +![](librem_mini.jpg) +![](librem_mini_flash.jpg) + +## Required proprietary blobs + +To build a minimal working coreboot image some blobs are required (assuming +only the BIOS region is being modified). + +```eval_rst ++-----------------+---------------------------------+---------------------+ +| Binary file | Apply | Required / Optional | ++=================+=================================+=====================+ +| FSP-M, FSP-S | Intel Firmware Support Package | Required | ++-----------------+---------------------------------+---------------------+ +| microcode | CPU microcode | Required | ++-----------------+---------------------------------+---------------------+ +| vgabios | VGA Option ROM | Optional | ++-----------------+---------------------------------+---------------------+ +``` + +FSP-M and FSP-S are obtained after splitting the Coffee Lake FSP binary (done +automatically by the coreboot build system and included into the image) from +the `3rdparty/fsp` submodule. + +Microcode updates are automatically included into the coreboot image by the build +system from the `3rdparty/intel-microcode` submodule. Official Purism release +images may include newer microcode, which is instead pulled from Purism's +[purism-blobs] repository. + +VGA Option ROM is not required to boot, but if one needs graphics in pre-OS +stage, it should be included (if not using FSP/GOP display init). It can +be extracted via cbfstool from the existing board firmware or pulled from +the [purism-blobs] repository. + +## Intel Management Engine + +The Librem Mini uses version 12.x of the Intel Management Engine (ME) / +Converged Security Engine (CSE). The ME/CSE is disabled using the High +Assurance Platform (HAP) bit, which puts the ME into a disabled state +after platform bring-up (BUP) and disables all PCI/HECI interfaces. +This can be verified via the coreboot cbmem utility: +`sudo ./cbmem -1 | grep 'ME:'` +provided coreboot has been modified to output the ME status even when +the PCI device is not visible/active (as it is in Purism's release builds). + +## Flashing coreboot + +### Internal programming + +The main SPI flash can be accessed using [flashrom]. The first version +supporting the chipset is flashrom v1.2. Firmware an be easily flashed +with internal programmer (either BIOS region or full image). + +### External programming + +The system has an internal flash chip which is a 8 MiB soldered SOIC-8 chip, +and has a diode attached to the VCC line for in-system programming. +This chip is located on the bottom side of the board under the CPU heatsink, +in line with the front USB 2.0 ports. + +One has to remove all screws (in order): + + * 2 top cover screws + * 4 screws securing the mainboard to the chassis + * 4 screws securing the heatsink/fan assembly to the mainboard (under the SODIMMs) + +The m.2 SSD will need to be removed if the Wi-Fi antenna are connected to +an internal Wi-Fi/BT module. Use a SOIC-8 chip clip to program the chip. +Specifically, it's a Winbond W25Q128JV (3.3V) -[datasheet][W25Q128JV]. + +The EC firmware is stored on a separate SOIC-8 chip (a Winbond W25Q80DV), +but is not protected by a diode and therefore cannot be read/written to without +desoldering it from the mainboard. + +## Known issues + + * SeaBIOS can be finicky with detecting USB devices + * Booting can sometimes hang when a bootsplash image is used with SeaBIOS + and VGA option ROM display init, related to display mode changing + * Issues with some SATA devices have been mitigated by limiting the SATA speed to 3Gbps + until the correct HSIO PHY settings can be determined. + +## Working + + * External displays via HDMI/DislpayPort with VGA option ROM or FSP/GOP init + (no libgfxinit support yet) + * SeaBIOS (1.13.x), Tianocore (CorebootPayloadpkg), Heads (Purism downstream) payloads + * Ethernet, m.2 2230 Wi-Fi + * System firmware updates via flashrom + * PCIe NVMe + * m.2 and SATA III + * Audio via front 3.5mm jack, HDMI, and DisplayPort + * SMBus (reading SPD from DIMMs) + * Initialization with CFL FSP 2.0 + * S3 Suspend/Resume + * Booting PureOS 9.x, Debian 10.x, Qubes 4.0.3, Linux Mint 19.3, Windows 10 2004 + +## Not working / untested + + * ITE IT8528E Super IO functions + + +[Purism Librem Mini]: https://puri.sm/products/librem-mini/ +[purism-blobs] : https://source.puri.sm/coreboot/purism-blobs +[W25Q128JV]: https://www.winbond.com/resource-files/w25q128jv%20revf%2003272018%20plus.pdf +[flashrom]: https://flashrom.org/Flashrom diff --git a/Documentation/mainboard/purism/librem_mini_flash.jpg b/Documentation/mainboard/purism/librem_mini_flash.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d1c6071f25426bf12b80c2c0ea5d5be1ca1fb29e GIT binary patch literal 41040 zcmbTdWl$Vn^!M4r;O@a0U|{et=-?IxcbDXcYan=#gba{ifq@w$KnU*c7D#XnuEByk z1cD`mB+LJKwsx!b)$X3I?tam?y6RK6?zg_@+;jge{#yqqwUC-f00aU6(ESDc`wPgb z8mTFp=o`sETpWemy`5YjfpB3F2ycL&o0khjQ%fD9WuT@G2}FqS2||1V?4G*$2Sel` zk`l!KmH}0OgpiP!kbs1kh?tC&gp7)Xnu>ygij$FvmW2;0z|RYX!GuJWq=ZD|MPM+5 zjzkjy zZvTf11c3iH*8TH;gZ)3asP4INaB;!71pmVY!g+pwgQ;-wINqxcSuuLkxbX%ESuImhOYTYt=D+15mQb(}ihVEa^`@ zStZfDIF+@*k%$vhs|jxaD-udPxkdo= z4%#V^1xw?9U|CteJa&ci#&^`?8Xktsa9VhYawgGV=91vG7Vl-oTJ&j2Xvl{efESXd z^V;wwR!S}Qa=%;O!lFy&P71RnNm$fzbLN}adqf&NpbtvbRW!JAo=$s>9DA5M`Y7um zce)25*CnDjgjdylKZPaV3IrvJTMf0R?%EL&4L>%*6GtMn=A+UM8Rx$OmslqbU%XIyRdsk?_HA zl5tPbwyTlOoE|Ok#9uCE{<`+^oCmuqj^rXH=%y0^rX}N)q98hl{8zYBucLD$u@OSq%=Cbn}NYLT^4r3-zhffU-l) z8E&xgs$P+!a&=d?lO0h*(O>S!8-syn!m{}wAxu%~b2b#Q?%X!w__cdk~j+8qW$Xm#UUE^2Kd2?Bd&5xr))on;^%XKx0x|;m6q9kI4QPtkbO+9 z%$fkjc1$;7>zp01x_~zY5KjZof9VdL^5*Vn-dYNnpW{_& z;qTeM-iV{==Eg+QRrjM^M|HL!SSK?m$Gv%DlaN2V$o(O24aS=FiEb8&F~j=&ea zS)1}ys?oq7sQoG7Fp=0u6;st7-s6BV2bnyuZ!@?l23>$ed6B z*vBZo6L<&Z5)Tn^CnAf)H^1(S$m2<($Ws=e6^0jNZVk%hWYrvCLkB>RL;4RY$f8TZMM|4$NGgUmMIr`!nqjCx6a_J zN~cq01B+4^5Nf=wNy}2P^%+0eoGH+eCfS!1zGE6YFlE#&uvn@aeg^;DeLD-E;BMA! zV{@@bs%eT}Jdt5cm)irjei>7-RB{JmO!!U*Ph;HXAZ}IL38LPhKC|e#T(0$c3so?7-C@oB9+1aj<7{zJ= zNd&p2rkRp>nz+xaDo)^4r%V z5Ma9C6YBAK0X5k;(mGZmdH2}geSs6SNn;7j#_x2SvIKtlj1a=)&y6gDifNlEby(iO zcEJ*58xF;zc`HTRkP#w|2^;$=ORIx~Vtx{htOjara$U8@9Hj?$R*bbji@P0Hied+K zn4+!QJvxbrK!27sG#I}xwb)OKXV^s5n*uc5mAZjFBZE4qWwC}~jv?3^x>U(bGjZ(f zc8Xmr1THTs7WX-CRj9avWn$7XEWk|T*T~%aReo(=&&TQXt%+ZNSA_CnkMWTw1D!19 zd@R$XM4$;<{>0d()+Qkpv8U^U)axu)6462(h4}m$^5^sA3;+xgsn*o$nK##8El4l0 zi_|$HdP68@JG(|VYu_XlE5P4~IZvK%qqpP%#8@j1LkuvYNy>`hMWeYkm%2v&|B-7v zMhOFk*-d>&BHS(3(uVWELYZ1~J`9 zfTyH&?Hw42G8phTFL;s5looSp_F>?{%Fhf96Zs5vLOTZ76+!||bh_i|gsln6zUvzJ zjQeB)Mu^fMeu*I%v~uxs?E{|&`-RlJ;QXmO829P0m)@+G(xAk1i?f)Pw_lpMQI|)? zEioMxEHH9)T+`pIPF{k@yFD)=uf0y18GHNFCTWuIb;#zlGd0d3RPe6e$;ruMN14}w zGPWGEJ}7}Vvpiz|X>!>2Wq+E*xZ{Oc#@fn+8Z)l;ma3JyB{1#OlJCkBUDqgl1bI1< z4B^fvdxS&a)@6@ZXeP~+?KNRocO!;p&q4&MraUjtiwC@@o*37hTq^IpU2qA? z6hso>q8sC6Ze8MlmZF&V#wZ(LDh-Gb>#kAzJ34J2=Ws25Zi|T!n~AiEj%qye$dg+j zNI##slE^^#Q3QzKU62{?Go?nhDq?MB+)afjza+3-~>=w~iwEI6C;f|!5 zqy$zWd|d=k-T__LW{yPsck%~?*Q~l4lb-SQUn+acZ;HWw*^T*`B@ia>TyQ6^S7XWo zf^Bsl^s)HjCb%_`VL3A;(|*;uf!T*%gFPsY2GK1JY~qPMPy59s=goH+FZTtBum3bK z7yo_p$LNO)@nu~M{k#PC$~ORuP;$maf6e{Sm*pT1a?t;e z6BG}4PK^c0yVqp!sE%mLhs&3}IAf60a!6u1CCFs`?p?olsqw;)b%kg45xuRq3Ho&i zyVk{W2}#*X=ZviYwSGt;tkwFsvgRYBFqx>q%us(UCjBDYPsJ*{itdtIO655+2-H^e zcaoSQEw1neOqWDCfb(V%ShufKXE43sK3IG%Zb`hgn-TBSj*qyV)5*F-l#Fs<>VsGT zRy@4gEb>re@H6d}+4q`ROUtLRu{ef2|>wWPZ)bBVuu*}NVm9>mJbZqg~?Y=_TC z2x?$8q*_f4vAQz)yl}X})dW5YqR5voU<`dfM)^;gs3_@`n9dEf z*-13ktd-kHT8eCY6@032qRdi6lvUxF>Ole%!-e>m|19kCX!e=`AvG_`V1XOfwMyVb>&P6w2IHQtrY8DS> z*4hiH(qL%bFk3T+j@>*=*wY1{XJ@|+U7vSY`^pPY7@nQ1rWDdb$$#eWJ40*$KEkcI zG>bK{Xk4bmDuCp zD!3lGE8^G(8C(ob3zbYBb`;=X!Km7jKIEF6CUxOPzVy*lBBSGXC?G{&j^l}sl>6Kp zI6bqe`U;Mbc+7zzCD3(X5KcYhXffn`s3xbuutgvaa?$-L84~X+xy2R??hL?sG*kCN z3^w905foON+gVnv_TD3+_%dvBc?Cgnw<)EENt4SFbdtoo7#- zFsh0Sc%keeZn0J5(f#dV$#@ZC_Joe{d|Y|3PQPrHY5TdFc+s()6GoP+sz2tsv-#6% zh4Z!%DgzELurH4Y^y41OY^wUu=BqI)8IHRft1&C^oE0)j6zD#CzKdswSxEkFlVX%U znQrX=#anEtrK!qx^`LkPtFfwKZ)01>_W6U~WM$v!8_gv@%+hNfYh9Hc{I3{rgfeMC zT=|d2cx|>RF+jyO7{%%< zJs48!f4~{Zf$I}Kpl=nPr3U%2h{-0?hJF_&`6wylxJL^zOhHSJJ!f)>*=U&Aj5F9( zGfcwwNF-+Mf-%Q1UXJ;vnWY_-4WaW*HIx%9*5L=kc@-5AfsVH|vDniQ4g2`JUfdS< zw>_C1l7YVJetaeq;3g@Hh*j}nmR?fPcc4elut@1j4{a)F;Lt?4c-GcW<-#i4&=1`U zm-7rBNd(@?)f8r}QCo&-+IBI+TP)7)fs=wPjfO=-{6yrV;aykNGNwPaA-*7lcs?1H zZzNJT1ru+SCyOUhKc0uwrUb5dN|8~K1-e!L;o4McA#b?C{{ag%PG`HRE=2>JEeWa) z@3^=>_q6>3$PX|FnT~K?HV4u+*5RYaq{a*}PVxdSnoGO<<+}|sM6_~_Y_H8>p$yjV zNI}3&Rb&O13R1~l-UH{_OB0rC^8>lxHGjz~f$QKE&TW`YfZuVwyISSNB!x?d=nr|T z$E5<=zN%L5o7dQHfyYy8JPo;>%u)WdCup6?R~aqOTTbOj&Rf0_!#G?-zN)#4;wi$( zyI^=;NWpOs2V@x<{6fpDPe%(4z?HytFz`jmK)AX82U+r6RK5sFfILAJf7!DS<3KJ^ zzQ}OTa+^Z#Yy_`K#QX)opOF#X=a_pfmxF7u}TPOM(=hfMf7Vkt3B8k$PoMcNAJX2k7ZsP5YzfXPo30f>p)TC%+$Yqkcc_aw%ghyIZzZ&^7!aEB@jY zzc9UMi;T`W0DNni01Waph1b;^Xj)f?R7KT9|dv*bIB~78Q%YW%)_oi#y{?PQWAyORZ9o{ z0TAd`?u5JBHGXyF*jT8^vZu4>DRGjvtrWj|ad?>Hf}NO_jjyI3CUdJ;J2I(9$E8(# zDE=Jb_}oY~e%h64KXYycfBw`g+);>km{n;)XMuNSOn~O88N&j$@QP0G0jdARGoc|T zzt(M*y(1ONr3?VO{waiTKo?pmY07)i#$R~5?wsy`g=iufPa>_{xGX;uEiK9YAl^y* z#IGFc)g68PcKtjm8urVSuyW~RzilnV+ay91fuEiIu=Np+Mr0EFz~GQ`HSdeLy*UB1 zPEcjq1mv-dtH@SABD0$?WS zTCB$(B(}T z{(U|ap_lcSZccq;c~uu{{W9As*QRbjPrBN+`WIyg=J7y|#0q6foGqo_OeZVOQpQ3U z*{lPqmGC#xySV;ofUbj77FA@#Wp3(6zjgj- zGH%JcJLKb63ueBG$)sVtxTcDb3as`zBof+%>%4iaM=0^_v3q8ULC0JE54qXqaT^b7 zcxHvyHhoFsgO}jC;78g?>1B=U>?SQ_lNuB|W9p5$y*Lzkw9CPA6{X)2Q)Z|RnlmwG z;8Fs*N$wTuuMJTk)V{vedhP`|o7{($_~#|7?#aDxoCG3=`U8;V%_ZUo9(j|!zGKn^ zLak@{jlxeORqDlurbUJg)JOLP!ab2&W484Sy)4u+v!ymas+a4qzQNV*3IC}UX9mtL zM^WE~N2!KKXpWi8Rw>Usqs@BVO>kZ+{(BhG&SM6p8uAWvnqagu=>J+FTlI9DaAm$1UuO z1oq{5gGsVlya3j+tN>aOH^E9@O;@qCuICHn_}O2bA&vp^4b-PD)! zO!&B)(3&GgUjjk(xHxQRvz|0BpHzU5DrSot|9{U@W`RlH`mdGFC5xC%;4)A#~ z=OL?7LOG^c@hg66!U`fZDQ%xzC$3dO*Vbp`Np)D`ucy1IKHSq3AH|w2$`^g4Oc{Q&LX5MVoh))22bfAD%BZhAE$G#JgBTh6Vebe` zT3MxWpO>B3#fA$7#%2?7$r<2^YB<`D#oq?fj`jI}AKcc3lweKmYW@`A ztaQX2p?r!5xF580e0sAjN{i7aYP|Qg`g$|p`=IxR01vVB$Im)bJti;nR5OK>g8^b| z&RFgq@z~uZ9;f(eghJyr{ozgyWpxpArBt#YriRP5OM@Xal&OM)E#cM^yXx28INC2dYZ}oCFLEPy^urQ7H4Mx96!jo( z3^hyC;Qil+b$_}s_^%)Qt5@xB%jEJc{RZ?UOa|1S5axz5-v)kiXtWq&ewQbInDDnj z;>$N_fM%A|%#vZ7g~_qrYhc}1HV!u+ZFk|gOFZ%m7c_Y-yXE@&oRS4Duc=t%ldpOw z7<5xYr0%PEqSbG+zc;5CM5@F>F2H}fQHX%a?N$iBjzq)tqj)mTWCEau{5YxKEg#HnRtM zeae3~j9QOf*jHl<$T(tT*V3I=kCz9?F^`nZso9kc8XiFFhAY6w>VK^ecYHm}Dq)sG z*PJN6Y;`T)GJAkg;@NR?Nzo9&fsSz6`Z34*TyeZ;J0WA(J9&a4GZ#^6iwj+6VNH8Y z@zOU##G<-5KwB59u8t2d07|;P%u832EE(fC3?;TNR(6&PfZpVSOxlF^h^3*EUu@p! zl%AlABXkP+(Xzxr|M9+IaHFvCrzQ27@wz4eHrnk<=@+z7c|R|CvhwLR-L}d0DR8pL zT0F|$or#lrjqdEvP&}Omhn2_{-DYCqSGG2V^}T?zoLDuzF-CY9W^wZA7`YG;?w8hjD(m)Zmbl$``N#?;GqEO5W53Zy`?)<7Q47l7sY*cQYg8U->UY2@sd=R zudd_C1ZMwNaiJC3k1~g=)j^4Z%lK`)4UT$V8QV)e5o}pHKC|-RE$l_lXwi-rG0_U1jF8n+F5xfihF|Gp4 z9|-*eVv$Ouzy27U#P9Ndaz9_c2%y}liB)sbtU;fUO=_f047jl9J)=bN8{neWeS;t-DNkCb_Og{G z!mxDf^zwLSF0C^JU*|6=_qgd(4yI6w)86_9%EiSWsHq>F!{x_)6=gj0EK@TN1Ct0R z#ayr<_C-P;lNUO5uPOB&O=aDT^Y!#?MXM;T(MFj#v6fc|>(fzQ1asK0934e=vS*NnB)b|f4ESaJG#t;4n z2u;5`p2GA^{S`;~G$z8Hp63iCA6qI4PO zW%^flk#*d%%-|(&akHaa{Mx9m5Bhz;E zgHW)>{6g8B6C>mHls6~+bQCD1W%310TXXWBh zh5x+`nPpFahmVK+2%UN7=Z&x5#E*Q80z>DDzIurkdY!&hNFl789FobqE6bPMPE|~` z`a6|8_nAsd0><9=ibLx-gpL?9r@w>5moeQaXNg#Zt>S3}Bn+8iX+C~VL*yTei;lzt zc>EC^IO>yg|A3Z9A%jHsi#P51Th?-q-&Ou!C4&{E--8$88&K3;eXHVkrnc+%D#6XF z_Yw)K^J+%1yWC6n+xMuT5B~r${oetT3{n&*85*;>N(Pp$U)R`*#Yai#D zsOH1F)?9r?!8Q;c%uMm~GCs%Q-b{WBlv{i_DFIs&ycom$S1>7@`&WSbHmYE}$(en> zvhapXiMnXu!_J5KWG{I_yKtT7wNOv%*9?1E(~Z}}#DB8w)fvg*Iv14`Ch6?sC>Ew<6=eCx8Y|Jf*oYM*T%(zc$O)M1cxQ z<#o!CkU0mkx1=OduvK?H&#D2rkEoZv@HpVp@lV+Rjg{naHTYP!&7X4ou5}+%>Jd)R z1Hpmw*q6<5pz60d7$>b6HGcPdH28cBSsmxq$jW#g`(oyYIIZVGxRYR^2ue z{5MLlQh9#7$0ht>Q5kJ1Sy+=R+}XN>NO=dZ=xG#A9?I!Xy-24}Lo%Df;mF{EW}7tf zc4iR=T%&V&nTu;{vW`xv_%WM74f?ZjJNqbUQO*DdAw5J3O<;~Fj3|M`c|Q#-9Uk6A z39+iIXT2M~!O4GwY+={(aw?)#=(n)`L{{y~BJmJ-e2iUFZ zsaJ#eEzpH*WK0wWzkOhTbY7t(tlS>G#-i9dOtC^AxhMwG9a^|>B?NN$Nl9OPuF@wR zW*kn0`VVj2JMT7_pU55GE{QJ!gSs`wX~Z_v3Hs_A>i}^r*A^6-8nNAtLfw+C zM69O=&kmhVxJ8@otB;al&I-y3v4#o%^S&w`=H+sa=l$c(KN-GGYJwTKukEWbrmXw3 z>RLRvFedqRBaSi}#<9~749P4%wb{PB%v-D*zANi~r1~Nfddb$&>h7=XhZc;J6;9X~rqOIr_}pYqaQfAPDnRj7!= zD}^kyW_@4p{YWuRF?@Dj!Z;T0koNOf$gm-|=(wO%kgjJd+SOMwu*L;Msp|z~K>U1B6 zA;jb_^=T``bcEKzJOuo5+|AMJG#^CS^z;zrQ55x*3lx~IrfuREp>BykZ_-0BaN4d~ zE=)4}R|sYpk{MHJyV1D7a0n8&Ub7yCprIdeuPrHl&eaI3gzfyqUAK+YAg&g=-ukVu z@rosJ#~`J_R$JA(_433@a7Mj%G%WXW1gy!@>dSO^V1ho|&IG=|ElJrg!>@3{S;LRS zM?#%EjF4(zsTq7P0Q-%7Iv)_Aw_Z$SV9qP?<_$J`bl2j-cAznzR*5e>;J0EHDeA&= zI2N;oFKE2=qh8ei8vMI2e!7+MmBVXr^NFYowag4z5(MKzudYPF(^QD&fe=2W_+4+G zA<@pj_-WW9eAQ{Vm|iTe`Oivtp-mDXy??KGUkRX8=-kV)c-P!rs)+(qOL8JOHSw9r z4K2U{+i{q1IMR>#qGp-fkHgc?D<`pMJ#2`rjf3LC}#B^&`*C#DLMP`~I_F53Yo0 zj&>$%hgc$4+yY!%bjrXGEaB5ENU-@l|1KGytF$yA-67OGFDzF^7(W~$w#_7T(-joKp|Lvj?`iPR<>>LPv9ZMuA zhQ{-I=Xc-9(Tfv8)vq1M=N{C7p~cOLB4FT5heGT-N&Y)Kmhx_#AELGuRa%z_-mViD z6&2|=j^Nc>AB-aC6c$@3LN-ATOgM=4s%Y6dd2>k|`prdylT;JXgwPt!+*obfW|hk^ zeK#j2H*@3M6?1^af6P3#8<6Jk%OWj5Gr|+lKI^r=?Cp8 zBP7(UYOwc&2dSV}(4@4l1QS>Hc$3JSJ(sECm-I>|eo0zUm@F`i>#WBOo?+KYll#=W zRs0`7xMaDa=KYM5RDBgzTCOYMBjJ!zC%T9oQgZmlSoTCc1v^-Sz-dpUZmOzG^XYeE zic--8mtB>Ia4xML`V0yZn*24DTe1n<_giNPq=SlNP{@I17hEb1mQ1W(RCAhQlp!Tg znYP&sN^#EQ`3B5s%-Er$)RYA%nUHz6Y|RzSw_Kb`s?U+b;&pw^D9o4W;!xr|a^)R} zD9YxNeM_Z6t3UmGC3}|h0e9A!OtPNCF6qlf^My`;_g6Qu57U*yT5&jP!-&qt+wsty z-jVP)pzr08Q3UTmS?w1}7n(HYS{;GNm^IKLes7rRR%>=Spt`%;ke(J1vH z&-93#%S|MVT`N>`aG1$KbOAi**GHvw+`a3bA5ClyoiIvNL{*_2cPu z@Pp_Z&_9N>}cJf1V z-NuNyM9>ozF@yhHX{?aWaeT$E{{gf#$>Enp&JU1+fl2YF4@U1RcqNUJhu+CgcyClS zg!2Rqb+6SK#x;thFat^+Z~GPE@m)bR&%CyTo{Lc;$QUK?SJ%rUl4_usQPa;Y%m09h zKV7#2WXe81q^%C#7j*l?w#G`s9HCQePd63*`<=U6(3))YAyAtp{4jQ?ym<2|w!VF@ z9t)J6s9kk)uB>R7IG#Y)4Q<N3FK9 zC|z|yrow{JG=V6#Hxxe&z3ZMx04cG}@plthF8_ckz2q;6>8FgSQ+@SS_ixK|-*UVQ-H4c#Xu_ovYiG6nR+}No+KN7(AIWIKQ zlHS2nbB@q%?FL08 zX~;zgEaK<5`YS^k8aLq_Y!=XeK(=d$K*Vt{!(0u?i#21HmNfo}<<&`|q6Rattd88Q zRb7Ha>|H8x#yWXq+}fFNf=Btcp?68KAZbQME9T!OC6kgf) z6h!sHz^!mb@$wjJQ~kg?4k4^6czVFmJ5E${0FRJSyj;gwnUIiNv?PAcz9cg19}v)~ zo>yZzBgb8+fMTuU7D{r&WJR6=H8KlALMH*zoDCC6_)0K@_$mGq4ZL@#u(KkFBYR({ zQEksB`BE>R2}31{;njQZswn5D!>We3>Ie9<$%uUs#pug&1P=-pdkV!7PysQ*vK)nw5a-;z|X__sU!IC|0qR5!3{s#v*kztD0uP;stKzR$kQUSvyUE6vQ*dSYVj~5+F9cKAt&sBnkfdcl0aGl1aWY%&e)u5o7 zKP|ap@$s@c-f_>G8Uyzq53Orv5^J-J00t);e_U#hG_5ZOZ`kB6yU)!&#qI>ba$0@b(h4|fnef> znY>`5kzI+i{%yxZ_y;ArEKI`dG%#zYNA9e@Eb~iIx0Bu|BY1KW(j$wJ_H}GE2Nfk~ z9O-tg!1WE_PW+*tYZFTU?;hf4a`rAEl?axC<49Wrz!N8-R{vGx{?~S4(`j zZfI54n*?JyM-KtW1A=+6`fpedtt`K%%CNx><^3IN@LnRP1|+C$bo=IaxTX z+1lnqR{!INB0%9j8)@Pn*mO2m3~W>vGQz$sMT!1I+tTSaza#2FB34gd>Uwt52G+*p zD#dgHtYJ-~)|7dtgMRs`1oBRGX_*w+o1R7+r-g^gFq}ra`lc2@^%>LFCsB8!+4mI_ zsg|RGfdg3%_0ToiKm++YjX;f#H+H9>YW;!d4-5r~hyr4^>z;_Z{Uysj3@WCfhw}mS zR~6U3*J0D!7u8|f%u-fr2}80Qz-(;MQ~A$hm@U66or^nlvjLNFVmd4l%^&^z{GP+SIxEGYj%bPM=430fuq>+ z%g)gre$+u52`1vzqAPDEtoC0>RBGFMeQ{4G2Ca4tBB~v3f<_0dly9u%h?SvH(o_uL zkY3Q*o6wbKrVbs`S3~dhd0RjhZHRH%xvRN2nYvb7m$n*S$>~zW3jAOxquo{n>MJkm zL1eg_BQeG$iyX}R_A`S0_-L_!s!jAfiI633hbPr339e?OZWmWV8lN^Gif~BIF2)QS z5a+mm6`=C_d`7IEv7%T03*g({Vtr**u*DNN$L>cRt~8F|sd^#t!)P;D80ESRILuUe z-6>gfh7RuAIzxDF)?vj2ohqCOUQ@1hE7ZCuF7f|Cl z38{TaJtxdi5i_unO+mX|{W`lOVNJ_w|06(RyV+g?CR#Rr$k=5v%s7bOAm>0T@-uG3 z4&(r#1j_Chv=7sqVt;%X5h19hg*fjecros9ZiCv$r6&}cx|DXMqq?IAAd!;`)j&X(wriRp@&@qczlOpDF816qJ)oGx;P%M$S^e*KR0&q*NBDf zI(RKBFNVV}{NTXqFT*rs?wPZ7{wS>>BOw9qR+E?8bL1{E@zJD_+7l*q#sS%6{n;nc zkg1-y_f+#L3cexiMV>*1J%_rCvX5evV6*0G-2I2t&-@WPrnoQa*5h)Uo2?Q$ma@~? z=CvUt1FJ-rg;!Q&vWmg@4K&Mo+Ky53?gFe<%oblon2=jg|057W>ZU8n(;$^D-4Z@-EdGE-epjf2WLf2>^kSc)kr4>929kvqr%Vfk+f zSEVTTq8V=IzeVR`_Y9kZQtB(VlMpzq;qY;-#F2JSihik(mu+a?En*5IUI+0P4$yDQ zKLqvqUNeF-d&xqid&5jx7Fw7Rwv+2PRxYg))E4)h24^Rmar9-5*_7|h!X+l|E(rdD zbRGuEH2gK?eEbB$;pmg&&Oj*4&61+u&u4YekjO_-!%+Mue?PnA+zQ#zW(JDkVx2Sq zf0{!xtx|NtmXdQWO<*nJIUec%0OFjVWW4QZ#*ONXuvV5yun9fKHluus(K~+c&*IUa zZF!v`C;FMl^_=^%GxQOm5ovVU{jr)`WY*2?>%jAfFN4Cb+GR7pezL1{_bC2K!}h_W z7c>=fs4JxdQ#)%K`%ApCnj_2^vei~`i0!Z z%hXRv947+gURHbb-=@yRi*UE`vS4jq@w>bZkgfP8EzHoKJHGYgRef@FqioxP6vwQC z#FNlcPo#4yWoTyKIYBIbmTqSqnYTKu)M}&pA?#yP$B%|O>Fv4cUM=_Uk94&T$w!SR zoz9WilBbo)6e?|Wf^3{KE+7v7Sihd|@Fy;b?$QKt2SFNE3nI6poyQ?}zJvS`@r3f- zV|=@<`lPGF#E*4_hAF$=$I;AQ_XlJ;m#~$1L1Qk^>Uq^NjZXTHr)KoZv->ysqsmIE zu3AQb)L>&vnTa@S{ZEo-eGJ7?@T=>p55jluW}4mwjO&RZ*_JbnBVJ-1TD5z9A%bas zEQgYi^x^gTTc&M2We7SNzx{o)46^B27%Ju~DvA8{bAq#SHi26DkdNBL;m^ErFE?uTeJ_|=YUX%DwQM} z;ko}T(4TGe_5VHGGLQ}_TTdSTEhN`)|;$6y*wIHCdJb%>lkH3{HVxfzz&J1ANqqHErBo1hEsP%C{(w1-0=S6Y%o zcr*1dQ#@yhQ(S{vc(fHc(wZcilw}hL4!ol>aqNZv8`48daRMYK?ta(H1z8iF$MsJRLW}7=W;nR=o*JdkB z)gOF+Iqb9@&yAB9X{=-+t8B* zCqJ>O;PEE9BeT?gzNkl}a9Nl<>(=NmvlsWDLCo^kNLp5k3Uh?)bTBn}AeDM5kHW!S zsa6krlI-p~2^xWT?^pbyA+|F(wnVJ1r7cpOv>>fNu^=UYd`=SuE|Ku^w(*D2S(JVo zgHxTrs%#qLli)LD~zK z^AxUCJgKoJ@NV<7u1W5Oqa6)}s02V^S;_{sqiUn=t%9n^Mlcjz2rk+}BhO3MOl)G5 zfh$-QK)wkvQn0vE$kB?WZFpm#X^+Rle~Mv9wrD^ylJQRL>F6BXAwL#Ri#LHD`9#_6 z>;ICdL6y@5nKIBNlxjGg_k~A2vgN(QdrB=`BSpWARS#qgZQ;sXTRVC5+@P{ly8FZ= zK>MvHiDv2vL_?XupmX>jbBb>G=cYYp(`z<{G{rX#YSP1M#~y}1`iHi*F}s*-6>a!1 ztgYA}Wa>%x?ptN)0@@V75rx#Fu$n*nTf7vO$EJU}g6gSvQ|9lw!7uhPdaL7;{I*@5 z-S})Sy9UuN#_$-m8lE+uT2v@0S+~55Lq%XbmsnPQYZCQXcy)M~SIjKDhRHbDCgC_F z4*pqGO~{v`(XHMG+Ywh(Uh!X$tbV6MS_==?smv>_#Wv;>Cz}A{y9$^N&Q^D3rH-#% z5`yi6z(@S=^k_k&n`G(Q8BbDHT#JFVtFn#JgGynSwiW~yjyV;Ou%b!7!|Ex{vt?9R zNq%@<_L$-6`23(8CTHX$x&PCj1qN@8XExuzOWN{F9)gwL&VIuAXpNg~2tk^!ClSKf z?k9O<;Zop)EdIeGItFOj(3s=0n4pV?XoO$)k)~(v*V&*gBg<#DK_gKdme=bcH%}kXI;b+&Z8e$Zh--B7h zv6)QxIUK>(=!X|)h@6q6bes)_WQ$qJ_`4>LYyP6O&Czm9BVOp?O&sak~%-GFqUy$PB;q$08+ z%#E7t@qMyCR~exHE5Ll$gGF9eERDaFOpw!rPHA?~{BD>o4HPFe?DPNJn?3t&z3ADM zKWH-Oaoj=37U{YY!A0R&+^Hzd!5{bk$nLif3D;Wx0mq=6p6Z{%BaBk`zM^7-R++J_ zUx|gMC1U94^R<3D-$jPEc?2}RH)GLR|AS}$GlJ^b#_z?s8wxnm2i;Tm+A1V-T(ck? z4sE?qb|QefFy;-Jg4Eek23s{uo*^c*G6&e3|5IaBX%~UCSt#W_vd6TXsDJ%%U}U&8`xE{8%Hu@wq>TC( z)R7vgaceF*_M~V-dtJQs#K|`gH7LjK-r7I>>7Na6A zEnQWHMn*I5R8uWHeBcHhJ9Az2uB;wNBeLwOhGjnUxvNFmaGLuAjrVepZ1aw8TFCGI_wMZKZLoS%Gn;$)~tW z*j_gyI6P*e*=`RZkI>b>5MEqfUBc6`U{sYS(=`^2XARb)95*DSZOJB@y9UxCFpz>FimRBo1m0c zCIv|Zaw^4=A3iw?1q$HgpL$|Ci|}Icw57P-K_2-PvPU(Q;+#jUSYO6Lj#$9R>5*E2 zw!y>%QTC~$U@XqnDaa@;rBsSz1 zUROOq9jhuggp}IQ(xs&r6}jg}lSMg@#^o3gLBR*snO?!>j?E<{E@%Ly191R#CX%*1 zIi)tKsh}YFQJv0v06SF5N-FGei<7cDy)GXkOSVJQMhX0C&=m~Vwzl$!q?r}C025XL z3;|pady4TTd))O_#8bB0X-Vi5pVG24Vq@^0w=)bYkb~U+0Fzg>nZ>@BG0!XlkH)j^ zRN8nF*#msnla|2rAO5QJFiEJkablg?M>XciV-fBm_|Ue3!I;{bAdQDxznZ|p8-it)jWfs9}_YHpe; z%*5C3;kmq5wzU?~j0`ErCp_Y$)>xTPu_TZ`l}D@TpJ2L%+ByEvqXdvRQcp^gU5UlQ z-bRQbl(gY7S2d!)lY#swKFR63YJoI)X^YK~8Huu$L|KCc(Gnd${ZZObYZJho3h)X442fsz2hIX#6t1h9zmH{5#`_v^sIcG z40Sa4t=d9!CJ}hfdY;0V#Hy6Q$UL6(C1Epf!}`21T1}w}!?lGoKEQybs%p{P18qFtzT3Y()gHQ)aC(0v{=xZ#Wl=|j@p~I2Ktv!ZR3Sc8{ zY3CTAXHTF2o)Fg?wiIXZr}%Ql=-V~K5*UJxNgNtHI=*Lwb)<3x`pWmHn@F{ z!O7r?=_OMafxMI}BCPpmQ^5ZKIi!`hDCL*seb@{@AZ{7!PP3Fjc8|~l&MFB~RwK$_ zpd6g{rxYLp4>SSLPjJOlTQrh8by3o_Eia^lPgrC}SybeM&{rXEsm)_BWdVTfYU}H> zPIqhy4_ZwEv3Fm-^I?t?joBZsN!$#Gts<6WMwE@j4n6Cv zm%+l^0dJ`{l&Bb&;Ahhn$3r^9aE#d@NIfg9PZC3TuB@d--lmCO`VCmdX=b^(*x8lS zEejV2hj;SA--?)_QkP*QKuU6NM!nYc=*toTo0onms8y!6=_KBmN8qCEcf#hSB!Qgue z(nnci5+Ta4$TS-BooP67bURfzsdFQn@ehVR-J81w0)OL-e;2s-t{!M4w~(Z$$iU!& zFFrK&ue6aij~H->Z&M&yF_i)=%sp_KMAHb>=MFBeY63k@TO(zH9hT41ooM0xq7BLPKv7N22nrCSSoVW02F zM=XEBtZxc|5kes7sxSp0t}57xRMVl=PKt)71FLB|jGDZ~VUj}cm0$@NJuA7ef=g={ zA(-YxP#c`{R#rz*g(MGZrK#VppK4u>WMPCJ{jXZIe0xYP`F`QRv zqv{ae>6S6v+QMW&Fi0OT6?VF0^+yw^>kE0PPjFFybDU$PUemlrwz@^tvP9-dNFd{Z z^`z9LR@Cl5L;y%|0N`_729ox_@Qcp!Bzb1}js|cKt!Jf*TbxX?NN(UJV$8&3dK}g5 zc60WWkCKW>1M;R{OK*3qM$w!A$^cP-*ga`AlBWB=eh+SIMX?=4fpQ}R;2yc{R(BaB zP+TYj3(r6*pdY(a*N$nskFQSEHYnH1NGbqa+LFrRm5@0L51vmirYOF2fHu(}@kVsEaQ3zyfb2ffl z;C*NUcKy>pjeB*){#9c6q1`08Z@li_)MuC`uJD)>PX9R5|A8Kg`y%YhyML5F( zN2e89eEH5u=RDIRk(83GK|M}sWMagY~6G4Z4SYAB!IDVf<{MA!n!+~ zNv-CJ9X{T~SmX!EM4noVi;t16lW3=4-^5`XonsM z)_qHWKOtNCO_jCAk8B#$G>U*b1kNj+(;P2>^%m^YjQ*99~?cIHuZ2 zgs#V4*g+PZIF8tEC_wo;)(k+$;3<`c)ApPYYq(z#h8Q#C9>iBK;#r|@4oxW_ESF^D z3}*tNGTJy@!k2KRSfP+^S#YPOMK(y0K`SQgdsP7xpd10-o}(BYD(0D?YC6k-Wo+^c z<8T}g#MIi4hV?Bab9VtyJB~#c0+fM401?0)DY+Eb;dvJ-z;lcfP8PC%e13EQ9CXiG zYe$hvV3BdiKaDi+3>O5P;{%+~1#&QGt1n@ASpNW`P5%IV8Ylt@B-%b+zWuAa@T%w+ z7R&bdSjxPT4m0(x1ygq|)48jws>u?>mhmDgbtjU?){TU3c*pFEaIsn1q!INU$sXpL z;f)JN)f5dz;K0P=a5&9lY8spBW-`E*QOPwVS4{=7rMU`6EJ!CNrD%$lth?gf15L1$ ze`d41JOIty_chPO5rsLO3Oq z#Ef}i)C%qY0O1R;)9pp+)IoLxr<8ddbwB>9;VmRcu7r(}5FFqWpKdFwvhfY8TYZ(| zc(*A9qyz!|X-i?P&R!@y`{59rrspHfKhC=K@FR^muLh)!cmM)PHObou#-W*ah=UWH z5s_UY_>$hz7~zfOaO8j;a2K~;^httRoXzF5&2=luFp%dPj~N4wl@3xNh2-}%>-O1y zI;@E(4t{jxAEj()z8y_!&PfdHvt%rBfslPkH1=AE=hv2Pg^6y*pr@9dHi(J{*Y9)I zxApxF-$Y1ZNuBN-;qov5tM+~c6U7{ldK57QkCt!&>VFD3m97>z)>9;h%LL%@it2QY zLLFAq`y*CjuD|MJJwf!Wtzsp$yqe!lkzFHf2O}GR?^*J0Vx%A54&&CE6GulJ_g){o zHn*U(B>b#85$Y>;DPx{6@i1V0D;CRHx6~{~pRIHpM?ZBw^&Hw}rJ@hCT1YN!nDEi^ z2=^7oTMNwZ4bGZahaDtz8*+K13(aKOc#hs&CCD*9bB;4wvE19t0ghyEp|3u0lyqqA zjH4}?!FZ5gonk{ElWu=^fN_r4#dX>wR|};>_MlcmGlSP1t5i4~{G|3I157LlC5Y#_ zHKj`2@KLtJ!k;Xht}_OdEmyeIZ7tOKldeZ#a%(1Cc5BInwwVh&jBp4UC+I3+N^{u` zRU;kQseP$Kr$$VKG=y+~@=asfS;?zQCH|!$iq0dJWBh>bYG`y{v&r_&dSMs`K2SM! zK9!rR>r(1+ExZUJwu^*~dMNkxKK1F*psDY0MIwT7cmVvH$f5;KW6FRr^B&d2-rKFc+rq3!Q@12znjVZ3x-uGBi7d{GtvsUeGcT^XHN6Qr=sGaXjosRmcPJs@V&u z>|!yVn5L447$BcPP~AvYFagF#TB5A#!H|+iZ1t%q(+#&E9A|@8p~u-}1e_cWwN^43 zAjhi=)5dysq`=XDpCy`5K3K>Pp528x;|*w092FP?*!tFZX2uC6eJQ1h2L~MI6*e8q z7Z8~2LNFljaEG?@b9HCJ8%{3{q?l{YL%{7rNXpb#?^!m;!t70&pM zGCU;|Om>rU`6KFTDW;yKNv?+?08xMd1E3wM#+zujx{MIWNR5~mK7+kfRob9roN<%h zu4(P|d6wau0Gtnc-4OOYV#?~vPB6r>B0-Es6mkCm>!@$8;du(SC5(f?IGPtk%m@VG!FJjld4ssvPy^wERVI zE;SGV4dp0OM{`+#(1sx-btb(J!J0*lq!HcT1Z%kl;2WKzwms|4+mr2E@oJI}EP_D5 z0|%vCZPb}2_B~2_dpDG~k`8&!Xs!-DYUoC|xH!kH6zxo(-W(#0Ol1+L*_-nZyQFug3GBbisD}>Z-B-8FfN=ruB0Fg;= zVf49s!;`~rZ88$9S%)Nb$Gu+hF28YUHKN-2EAkR@fRjzN@OG_rX&=~BG;N12IKlKJ z*C(vSc@^F-82O4Y0qg;y$*|~k-W=C%H5=wj#D+ywC;eCzKZx}kSv1+AOLPsig1`pppO`Yj;KQ9GV1p zh=yi4JZBY*%&?}_puMQI&Zzz;VWT#d-~vjp3-Y*{{kxzbDBF&&qM!*PL6VXHf}tA&xa{ImSrGY*yW` zh*##fU=rMd2_WQ--;F!jSXS2NE$oWdG6be0}Og`>|gzaZ9ptPHMK zp(Kx`GX#(T%~BIOv8w1=u>$_o+DykLNcs~}uZJurLnXGds2KdA@GCGYRb3)2>CzU^qDYBU0kT3}35nb8vc8vF= zE$Q2wm;;Z?J!>n)8hlYbwWYOzwLst*@($omGwRS2uO1 z817|`DHYKefZ4`Cp<3Y8jM*=)B9$Z(F)DI1Pm<-{W4QGIkx}1UJVPyvdmPny?gYMA zNcI(6F$eD-TB1#0ZRbTta0g6|)jQj1)}WYXGdUOlj0L38ygc{OhjKw9ARkJ|)vaGo zzmnXN3Z9vz)S~Pzu??(v91d!6EMSq5kyv)<^UR2(lEez=C-CIa>GE8uIZ>0E0B4wl ze54=7kPyeH&$VEAt?Fw-OtG5%*daeH0B8fW=Z=`BG30aJsp^(@8f=P^6Y~s%R91O2 z!;|>X2I_!Db4-^canhM@rrynOlw*bf)_9U|2XjD08oVs;-~;+@hy4|-;PLVwyOo;i#UekcJrE^1*Q+EKn^ zo(b(xkH7fSiTRJ#fI4{{qxgRVr&YQnest>%Z&S2{M5=@yMn_5zE&l+5;Iy`7GsQ7> zLU2gUW=pB+P~bJFQH%l<)3$`8q&_0lptq7~Ay5>5I;XD7ES?OokPXsHA!0qrCa6Vy zs%o~)X%&%SApnpF$Kq=L0Eie`cy~^*kbyj4mr!$xn^>!ys^p+7FnfVc1fCBdQ$eK+ z2U014r>5(-I(T?dRz+cqo}g8^b&HQ6s+5m+QaLq4Owjc$UPd-Hl1u=}AYguHtv688 zZ}h{9%Xf@t_=g{zO_jz~ci#E+?t9R9;+Ur+ie9xs7Zp4b>?4eh;-JkwBxx8b0?fw% z0g`C}(^>eVPqDU04VWc*mK>8sbMt98sU{xUV0|_p@S>HGS12mUD~O^}&c^^(WukmJ zy3}A3Ou%IH1PoUh6EfT;(m~HrUC)R7MR92$wRz6g833Lsy@@mYLEy*JB#_%n=7`2h zj(Gag>GxvaMS#PMs}m+V*I9pdXSFWG1p@#M0nc;mUR^ERuv|{Cx9-``1Ew=s$C>E* z7VTrxbiWh9eg(7>IUsNkL7L@!V(Agtk-SJT`EyuyI+AIz$0f9ECdtXq6-w$$jY4xY z?nz=!3C~)tTgu|*va#D~zA}!=#ck!ea0tN)2;C=(XL$Wnw0ZLQYiUxy4v10!3?N0$qrWj z06bE0O;~p?TE;H5fgGeTX%6B}GCT8K?e2-7+vp7N#PZHY^22}t{#EBzrEPAJ?gJH5 zk^ttmto%wO^X=sfkxHaw@uuhU>Uwx$3Q#MFbp?KkiC>p1&z{Y z<+zNWa40Q4Ki5Kk0Z>MeNsuFuX`8T7`2ky6BsbTEEiGDPv}p&LP~#x==CZH?@(7G} zJzBIhy>jnOa3O3)SQ41(Jt^Ex9XOAZ+3FZwl&`Ff6jcl^~K7=VCP&aEija_4oK?^LO#go)m0k2xeZQ=)xF@$0c1zyA_cVn%$y|<2UGTa4> z<7m%8Tu+GZMb@=(BAl*p58+*MX>lcl@-R7A$pf(BxEY54lahHRv)$a&WM9z={jn5* zyEzB&uGaqfBhhY40YR3{OC(zS-fyoigc0Lkd zu(P%REOT6O>zeL7JEn;(BO!`{GJdo@ffYP&GS4-zTzsfW#d7w;bjk?GBn*Bvp{W*< z>T=FV1c9EwR2ozQ;`J4Y9QO60Y$Lz4Xwo?H0NN{uorITHE;{PhYqPUTJ_~Kj22BUKD4hXaHaJhwDmy`TEcXT%USSGT&1`3FbUxnAoZH2NhyH zYWgq$n;;B)!!=!SNd$MPe6>BP+*U5buWCM7Rh+0jc8paEo01Os+_5LAIW*+~coZ_L z46qH3nHi+VVWofo)!h=(JMB#t<32)s@&Viq)kUSZKo(MWw?I2p?G`}==?uUJ7|Ea+ z=~`~JW^T+e18?Q12#7EZJ5ZG`RpFgPk+%muMR5?tJbJK|L1@(V2dJ*0Lpm2$z&zmg zsFS>|IIAOp)U3{*sLOBJPY2XhZnb+|xEETq(jmwP0Q%ynFXL2%2b=-ao-5RR8Kl|h z@x^f}q_=JXWKmAaEF^gVX@;FjZmm7J*O6jz_a zt>5`6i;gktMLt@6$-Pd;pE$tXS!#{dfjRc4;1S3M zrK_4EiHJBOd0gD@Pc@xKZhvR(RN8xIa@u&>o~}pySi|(lZwM zP<>4yV%Z9K?s`(G3ON0H(*j8C)rLtq9r6Z$IzG)9JzMZ1k|K9!BR=@4w+`p>B9j6y zv#)L7eMK>&5gdSWd!DspaOsis;+rNJ4+lR{K*Br}&IW#j{<)`&5%+%_6IJ7E5y;1K zK_l=LF8Ij%%0J*HkP>m8hwubafJfcP`fe2vc*j;x#2@jXNf)(i%nfT$^D5O zg>piO@Gt?!Pu9Gi(HP%bpe0$PQSLHp)uptNAaz^0f&}Def-zAbN0`kLG>zpAyq*t1 z?NM77TgM!*E%eQFnWl45+)fH5cEn$yr_E#eD6q>Q!!2M48H?5@Lojo3aJ zYfmtZj6e($#!x!`8L6cBW39vhK^u}e#GvEz6}SDrYXiEf2X!Pgg^pN`wBh1p0AW~r z?=^?EZ=t6rnZsOoH(QQrBR2Ud*b!Sc_j;#>Ev)S|3v^KJfW|?2c~P7@zkDlcI}*i>62>r>1k|J&V1lG#{guU(=T)#Lr)B4h2u~%3k+mdx9Db-j+0Bix4C&C zytxS*pIl27L@l*ji*<1LIov%>OW~Laxp{yEqdWueSuDkz zyAsTLl5$Nx8KsMHib8~rK<_|~*IrkfKr*pVB49`zO>yAo%*U$Yk?*FGFD_Y~qa z!KZD{niO%k5Iv|FC0H?2GKnTl% z2;?60^#@`>rw9Df-rpz0BC92tntcKhVk1c6`^^pT*(QH5gL($gUPOTGxHPD ztT7FMDOnEV3EXpzDRD+HDOVloh)h+BX@q16L1fQ3>IFbfC?}6fKy=^mlj-m(#~ch5 zR1TeJu1(wK>qRb7u6Ob4K%gf^0H`<{JNnc^U4tOWqHw*0VDnwC_G~Q~D#NF5TCXOY z>&oH33RfqT<_5iKf&Ty!LI?eF6*PLCq{vxxJ-~Xz1#HO_k^SiKK9vh8Wg$sijB&+W zIdAV0*JB0seI?xax;Ros56O%Qj$KbhVA#<>2LtY&0H$BrTwBP@S&9>!=BSxvn{&yct{8wY4;3O`_-v2)10g=()?sGOcb=5|m5dzonpPR6F1$M-$MzzA z1d2wV!vGL;lmzz%v%?b}bKaZtHZXos?MlF32g6CQ{gi+P2hMpkqF)T-n|CMvx>ZC0 zf!qPdPAfk4z+ErOLP^+;1psXMUK^0{6rdkRsM-$=jOWe+{rci36G0(HBo#irX@Y0R zB>r?+lXJX}Pw@2L>g1Sx7;#cdqiAuk25E*sI0O>^#cgXBkxOl-+A0CPmhx!Ctq_a_J#oPNE6Q$CK$%w#JM9?7U5{3tBv{1G0`wU;2AdaB z)!~NA#AVoq@}|inrySQ~b>cfV(xiM9c0vIy)Z@~;+TwOI8K383a&mgrqppeKj^2A% z{Imxc7$lzboNft_c?*(6se*Hi)~|+RPxwge#^A>!fIfz>agHl*!M`_&U_afB&VK_+ zr^3e_%{Y*d$F5lZrk^F8!a$7cgV0pgU`CO%42C&BomseOr2}&9Ae9HGf zNgx!B$v;6{=ZWq-(`=!^3JJjI39gC~UroGooQrt?KY$soZ^fEyI%M`yLP^~Kb|mK{ z_pG3=QM>F@c8!d!GD9Ax1d4I7w;UWC4xk$A_1#(>M@65`m^6d|8lJ0MWt0=$UB?x% z#H@Ja3f9&9JF020nQllZ${3Jx2t6yJUZ!ig&)Mm>dYO<~LSzvPzB>goA=ToaM}=aPZ+FQ6^rqddVI=NxNu^%7A#L4= z^r)t>xwj%B1G`|f#sd8h2<~C(Q=N^Kuc&}TBQTr@$IgmsSPhm~)j;C#>Ur#N|gi{Fv z+|=u9jL6hS%)z`HIzqyW7Ag(Y0`q!c9QCr?<@i2lF zR*Vb)J5hTpu(9QFZE#OiJ-ex-I0s`Kj>fcgI~TRpZwzXiBRqg`Fnd;WZ9TqHai2p} z15}vX3^F^9T9uTk480FZUJhFdyq>pOf@TQ+{b$0icQG*4!0TA?K>SzNh z$HSVn?0#$(GPHd|5rBU>iss7d#r9o5@gCV9*1cS6O(a-|g^X|j;8kneIQ1)6isb`t z93M}mO~!dQo)|YZX-B6KG=ZsYdMk5sH*AJ3$=0@2|@JQXs>3xj6KUX#pl|J zR+nJ9?r;$Jhg1g$3C}=5tt)>KYhZ%b<&{r4QZrX$(`E!ph!Cm3D!qN`cb`$WWo3;> zUV4HlT%t=)6TGY=zqB!K<2X3|YV7f#!^QUqthVtD)ximKrwL4x3`E!xWLCwD>qKkbwPUxv6T$$K2g*Gj^>$t zq-wEVO1CpWX3kqL&S^ctEe@wdw6wVJ?acDRoAN>&bj5StB#jpC1-Fb1s6pB>pF>w{ zY&DeABoN6L*^drE$OQUUeya`DmCR{8s?vFR1%2vP-9Y%-q%aGnk_XFMnV~w1GFBbdK%$$W@p#!f@U)EU={u!rFtf#Z79=jOqY_lSjhmM zI#jWv%uEqu{dx~$TV4%_Cy25fFk5*JN7AqsSXG2_Mp>J`rEhpKK-TVx@)FWhpTddj z1`*uYwvZU$3&CDkJ}!zvF?!nlID13i63N<7FwcZ`@A z;2ibEY}MHa*6_}e4zAZJb8zrPgCH*f&!MO4z7>y4(<8l-?7VVGv;aDKRa;w$ta4Td zA7~kk7o3in{VHv1U2EMQ+R31J$}lWgU}Snx=pvq#rAMi1a9dkkIy;^i@qygdpNMot z(=CR{-a=bzZaLgXddJaqF{Wx!-4rLw&ja4IHEmV(h~0t}P}x9FBzMgxdz7{<_*%*t zbWLViVpn930Fn22%~^*@f?o`21Y4(>E!Ygia@?QNo8b_%Xu7?!xiU!~%Nq4#iobQH z-bJNo+I_hTex;`YkKF)&K1ErXkK(N*>|85ZEKu&k%AAAjXph3NTXclv|#+C_Z3{I27n#_ATCKARQ~`9AN(M)RR&G zL}zfpB+vo_@`KwoBAy4iq6qxmsgS&rlh9J&0tRw3Kmj9p1CD8#{o&_|4t(+{0Qt|> zfDjzHKJ_jM8OBF*Q4hV|ryG?ITsIl@pa{>UbXpYo(`AKD9bY*070pP}2^1=16Up?e z7S~c*%p{EC)Oyp{4?)wdT*5aJInP?yL9_+W0C%oaPw_pthzW9}b*Qy(7WuHWHeijz z1-s&+NjIP?*uvMQN%e{3Ly@}~su`p#Sdw`plNbOfET^dh0Mt-o8-TF@tPdm}qu#KV{_Zqr?q-r8Mi=}ltU9o@yC!YI zJQ7JfpGpuNM6rQ0Z99u{Ka4K@66)K;X9l@vGTN`V+5r)tSAbV7CfW>$)HWiaGxPYO*xjc6;dK zZVvDcdskXOC`s#{D=teg+Rd@u(<{U|0#JY@ifRJKJSg21DW)y_?jH~^gS?OT2% zx02IXk||udz+g|I?O3vM>OD_B)Yiov2ZnW+;M5RLAVolON$Xj@Aia+BTe_MjE{sMF zdhuIYMv0~CI*d{IWg}SfKs>P?wMPEKPPNo0gUKh$a-iq6B-O{z-O(@Yt^6jDTuuRL zGE^Q&&13kESR~XDt(>};!6!X4+P8GQ3re`re%i{4OKbr00O^|NHP|g}HA4-XhlxNN zheji=pv`t;&WtB%XgNsc(kAwhl_hTy7(tE7I>Z{T|~+ zlFbo=6(BjrNySv1fh(SGqufVltXs`5-9kyO%Tn<*l-gwRARH}>! z!S7Km%SyyB13r{Baa?;pBrikWw)`IDFSQ2F57``kb%a62YfHnkn6B=2rr{(;KDgxf zr8Riiaop=IqTOj0;0oYm)tKOjsUQq5Kx-m9$)Q1R-dR=d4OtiR82&^DZ&D3rRy<*-50f;j{P!9kP{{UTcJ~fn0ts{fa zk_r7yMJV2GMNQf~r#+kwYD9`@qaeN`QNSmU!n!*T2Z{9fuXPL6wT@ww9r5p)mAoaU zxBzQlD)KsWT}Brw_&-L!)HOKT8Bsiwfh4DZ2SL#UW+gU%JOqCDlX#(1mu7y6tG=356PK|eSnZ}`%8*$%}Cd@*sQLN4z}Hf+RY z2+8_XvFh4nb~D;6av0?x?`Xkck3*i7m2<9Y7q+6-WB!a7kO1%XsAZJO5f(5Cj0_I6 zni;*N>Xx=sgJ$!r?eZo7wo?cuM*#0E%>{O&y4LElLQgiR|y+SYEi($tA-gJ z$0E04@s-;WSq4eYLBiLP}>L^ARL1d>T76_%GKIThG&q#mC1EA<6d+0@o$>dX$o&N?f#Y~1iaE`CZl~aVElEg(khefX6a4Fq)x0xzrV{J> z*hldJ$oh&&raKsdj8l8lf#Rq@dQ(8iG~>vi4lzIwGV|7ob9JJCJxbqB3kGg+BjbUN zhOWZH$^*;Ww~S-0P=fm6;Ysq6G+s$&s3q5K03=%e?KlMg01>Detj0M=^J2<_&B4OjnK!?8soJMIrRIMj!;0)2eA|; z1x6&Ud8aFFQAmH)k8?=Jf_i&X5i=f#)KH6=LFcAvfxd7LOjN;ulh=v>cWir_r8ZYr zvnn&l1M8Z$%mFwYRU3j^ShI{CG6~1Ipi{i6b2|U2lVLW18mR;0YEo4oz|Q+KtiFZa|&!=8!PQ9cd@1*|~3feQ%?Eh*>|D zTRZXJHJhuLn)rE8ydh%%ter{je;Vzjm|OU2!_C7Jkr|Ing)a~TBh{+%P^E_@ohPvHe`qDcmkNZBt%9AfRC5AcluD`(=1dhiP&^C?`$uZ~6WBAjfxVQkS%-|8o2d#9Hct>Hv-$8-sX{q4?#F2Xd zIL=9`Cgu&T#l%wY4oM!THGIo9qcM_p$-o)MYTmQ(Ie5I!?HD=eD;juBw9-NtHo`_n zLyq*VVczFfbvuRA^z_yA(E56S0}?XcoK}NrT1!SH8Vtc*a=6DMA6kj-^u1R_vO1Z# zfg(@=0D#9Gy?RkMio`m#yFnbr!YE1tQ2fUoX`)O|4tRw$3;E1;s*2JRmt2(|pM`B* zc+Y%yC+!L&oj`SwGJ2i{I(4jX4%_KEwxf4(tVr>rIWejnXD2+?q?%ubW464GXy#e) zJeS@`!SBc8P~F|i=yMvry{GCLTvqnh<~xBQcVaLxj@3rpOk>Q6)q?;DVc*bJhP9wr zX?8aE7S{%5m5&6Bf%L4nLm0NH7*brHpsE4aG2sLAoZ$1GY6#Q;j+m=Gf+IcJLO3o!&!$a!WH$#-hB%-fA^}3gk&5VH zV9_ZZ2(Bwm)Rs~ek0-TsmUpQb5y(gfkZS72+M_yB`z)iaC`sAaag5hKvx~NPfZPWJ zk;QB4mqKS_8-g*4#~;=EC!e`n41h*J=`xuN)9QY@F~KWhG5Z8qJTYSf3wC=EL)@Rv?@nwO-+5NLK2} zyrs@cjyHXMYF$#{^&5i?nGA>k&thvBPpMi?L`csX9F*!Qpk~dth>}N0-bac50EnK8 zQAemtsNcyj9&9lkv7UhXn#pZW3*ums%*4z_Sai*F7I8rYLO6yO13X|8O@U%2C5A{R zJ*dC4k5RX4d45;wrySLAv%zzT03nW4fsQLiVBv>A+!{hW_VNiV<}k=GP?4I2kIC;{ ze~7f-wc3lQfZrcne-&~hXRQcq3H|W;RKShgdR1~T!`i1@WS?4M74x+ElT~6KXNfHV zI0FZ#y;~rVF;H4Jm*R_YjFJ=&&Ve&4#PbK&?@EHXlNlqN00m}45i`b;0)dVwNTEg+rWB>wrkBk^dxLD12zdBrxnS`X)roO13vQR{GZ6zl-9tP^l9YZVq}JS3i9ryS$!dbt=a>98=ceZ3?V# z0|G>yK_9{?(Tkuw$)%HP4l|#ae}#132|;x=%m&>jjj@tI&mFVrR(yF4!ZaC$A-7+Z zRdL#vHns~G7PlAoDHXk(CCU;MB4ms-f)rjBh+M+^dQDi9298Kq>HU7Zz_+8i1($^Drrm=FxWC-jK!h%Uv7=;A#X}>a7+8S-*E4C!E#KiIb ztO|*>i5^sx#Sti^0kmSEn$SfFW`01(_x7PJ5XP+}ga*I>dYUvHnR+dC@iy>%QOB(bs(Uq^3k0*&#II*zq8z9q7cT8`8AO=lD(ci>|+#OYdX&b4waEU-J0 z#{(794~CkvinkT@%7O&%&s?6gX*w<5szJ9+z?=h|X1W33eNiwBCnt_NR5uaX zob0pBG^%8B#B|A^nLM)6;5a;Dx~cvj>aZ&Ah;D9h9C2Cthleio*bKKwRWpp_5!V#C zmqFQ_(zA&JWam95NQg4a=i~qV-7LsDeTz@pa4`J zM|uE_0b)<5T5585H6$)o$QZ%wY0CTJDnJEK1PTB&q6V)4W599Ny4#80aSBawP_c^Q zIY(7F#dmh^Z8fq>fW?MryA_66-n23XVn#dWx&_w_<0_-5Dlkbn70qAE8H6lxfN_p1 zo@=X!0U#c|#Zs!$vnA3^^B%b!mA%cechq4IjNwQ%%Skf*rP16B9AqB8^~Elyd5}~# zJK!49vJ+g%xyi;k&0=bfnro{f0Gz~Zs7aTJ8@3=e(WEl(YX+W}UY zhzF?T6ZNDa(%V?1WX{nN-3b^V`%^71EeQKM+#^U1GDm7r;ngJhlZgmC4@!dXMKLj& zA_R(gAY&)cRc;21((ZVJ5WpTP<;etrfsx*@LrsXwkamzUj%#(XAuPly?Ho|hf+a_` zbZ&QKVz@18%voMCs39AXUER3?JPtW0pGxL@Rsj(|a!=(`)O`+U0%Xr@RhYmenyjaj znza$)tU{5+P`3>JDuEZNWfh`F9D3C)Elc>$5DqYU`f*Z)BM($a+f}?S+d-MIKN_zA zhAX&E@W34HBZ`vtC6e;snFdUZK=tI*I(i?sh4R)$Ab=R)XVm>F#(F-IY=jcIi5vH1 zHWqZFV~wg@p%_pznO+0c{0RQA=(O$ zyh+bK^qwrchDhLsERv*_$mo45J$cIeCps=JA_%a!j3~j!CB4l{JgapqCPxEk3P@aM zo~PfMst*+CqY~Ul89PI;8OCvw*0!=D=VPd8niN`A__ZgN?LlG-WHCK}u3Fs3=P8pr zbIo*`j)$Y^+H8{jzG<$UW+dYS>x$-4lrStZJt+wmBxsr`2*_+;4%zjpgCmTdI#q_5 z3`G(!Hy%!Dw(%^JD!JMi@@QKOOK61GFviWWJB2Ojlh(AnS)^O((*X_J%B|CJ$sBd6 zt!xgV95(JU%m62#B-QPAMltFZ_HB4BC!PLtkGo3xkD*(_muAK8BwUsNU=F6eHMQ3o zRlLmRF)+YTd2jF)i;YlvXkyq@zT{WV4FbAB6!KlpP7X0$tbQyD0Ev+KtO?i#PCAoZV))WU7;Qe&lau?twVO7x zHO29{iBC z>dIj(ZblAHD_2*zn&V90E`DQ>NU2Gus5f()-<1@bvrQQ>ljv&xk)&Mf7cC928AaU0 zoCOuJCUlFp1azodI5pOv1ZoVp^KHj`@2u@x!uPsWr`jiYSpfs(ZfF(Jk)B`u(NABv zxb&tFSjZG|K*czR7afI3&TxGw0e}E_?kZ%6Eud^* zu^|4H3XmTdIW;6f%$q?S&nJoitsptW40~1EE7>i`RwT##s=VpA7a8=&r8OE*H!6=T za7_So#zm44ROAuXtST8`*kc3{)QaVz)MT}M0hrHFdRBy9C}_qEIUR^KoRjEUXx@t2 zIBoDyWcA{aLPQyk6+qK8GEm`y8YKmZ|n3YI&dL6O7B zG3cxhPin6R+GHikO~8^t#syx2Sz}%D6@G9DAEjn9KKk9R;qx9r=5!H((E0&Y?KH_P z$^qneCakGQ$u3w#qX3=<{{UWqBNt@|Mud__-W+D6G8P{)f$V#l zic7tzn`p}(n~304MkjcS%O+$8fsA1KQxQ&l1_Tas>sM{3@}g-ShHwDSQ|v1u?(Lv$ z(qNE!b`@((zBd3$&?sEvC$HgD$u(mk)UY4}$7e&*-&f zWE^{%uc2gko^}TtRnBpq)Drp}#L;Hq+ylJ1b=2q{s>mJ69ENF&7b%!~jN4X{`}rL`0Pw;+i00;c;Z9DCI}b&@#_2+89nt+RrRQb5kVa68gU z!E(-@txc!SfnhSnrzLuB{AyiGSba~+65EJMl6W0*bNW|b;CVFb%{YH+Sw`s*$YKUq z`}&H>@v7Uc@(WlJ7~3oYfyPY@D}rsKnOr#`bDyOQ#tD_WGLS|=uIIp)mKH!8%XM-| z!w?QlQ}NZpi=|kR6gSO)2OsA&xwWv;Ik+(-f1 z+d=D&DyVq~Cwa$iYOG1M^Zx*Ke=$vFb?63uwTZpK1ToHiX$#0t-anld1ER8m;^tz} z6;l{5xSp7*k?QlVpqEme?v0$Dq}3}om~R2tD-J+CX^gleQD8J;kljOfaNHM=5^2buuZ5)G;kBDeM2FNdtq0g`f0uL8MfoU{o40Nypz zYs3vI)qAf$ps0JHt&Ui52<=-wAJvmfj{Gn?=8I|(*z^81j(S$_h41WaKG@gMtA;=n z5uE!~Au}!S?lx!6eE$HvYOME{6UXJtE08(E6J2T7G#K!IvT#RCf!3&alUvjEdq~B# zpo&!^=D-|!aa1FoB#$tI&IK!HfsSw~9FiqC>PPaWZlmZbN*+|Zs(>k?cB zV8K`nkb9Z{jhLaq>D+qLgbqQPF__eXM{mZJc9N>Zbm}M!@Mb*VH&8p!1X43ekkNpc zI3uN1jwu)tpkaFC^Hy9Dz&Qt{F+mxiM0mkFMM$FuG@(GH#Q-*)OM{M-V~PMnM@n4r zPDsn2LF+)q=j%mHPk#99gFmSL*fH^b}_eUZ~V!^>> z&UmZ3ew{X=AIZQ-hdKULTg@mA*!%YxtNK>4CY&XaqZpSeMm?&TMx34(yAVM$O9WBO zI3(jV4+~s0s~lGr@|NHbe@abnR)%{U7-N_cqbHu8)lWsaPwi`RW(uLXIq6ZYu2z=~ zL&LXLFE-*BMb(E)`U;|n@@-HuM>y_lukjAOYbA`9R?H-9T$~f1YOSL9fo;XTtfVTS8DrM4 z{6TuR8tv4PNx4{z5PI=NoyUC+iqA;Yng&QGw-CSyEIG;l02<2Fqr6+IG}P1(>0FnEv|C+MQn-TQcE+P1j;qZ{ABk=RbH}r2m|&dek7}u=Y9~&TNmP>Vzz{g% zsa;%~8h$I$wCx(mLu{L-l;pYW2Vq=LLFNE@6UfbU`p&Mpuq4N`1Oyq*2YzcBG>v6O zkY!Zlk6LR)4DH)R(yTlzE>hgR%VR9(fDgA$^}|jUIphNv$;Z;Sf8iiA+I^M5@}Cv=}D}4M(HFSsi87u z1YmzENwBH2A2W0m7ZCv6@x?yLJjo1?$vp)yB6TQZ+%b+#OFhEL69pOEG0iQ&^DY#6 z@krL<88G1EwE$bPh^4ps|IzB)V4DH1xIHXB)k3d%>XQM6^#*& zaa{+9PS_z|?x;BYD-np_$E|Moi9m)Dc`N|^Djw*ivCI;2T|a`YEvLJ z){#S``{VGZNy8j*NW=*T)}1II=cqIQ)diaa^Q9SyxH?f-jTMGl>}}XAoeto0t=9PV9)~q;Ed;rW;yn!ry-BEHh=&< zsYeEoQs#gZ(`jiB12h2SLg%grdYF&~7lBa5*v&i~o@fDo3Mr(V_M(72QaK)NrZQq9 zuHKmRsaiIa^C2X3+7C4B#~AY1Y+=|8=A~K41tI|h3=#(|Sr#=d*^qA`RPb@s(;C(> zB8b;K{og_AYRHU6p_t_M9-re#*b$Hh3mlW&&;wrCSb(vFb>tKMD#TWi1rkcdraq^& zQIc~T0>GXy7d-_;*Au|to$MQ;_5A6G({)xLHZnQ^(x7#cCSaffM*y7Ee`{rkG{8n1 zpaYU>jn=1hIf@*S&=Hbpp%nEQTu4AAob(y#S{BP9TfnU#ViafVS(uXGnI!@yJwdGq z2bF-QAbQmjNp{4d#=NtTG3YBwFP1Pdz!jKeQ+XK2KuI;L78n!HPAVBl<2*+m+r@GG zLlubKM?RI(c&0tA83P$TYnpXCbDnceYz&u!B8H}DSjMvFfUr07rO9~{=}ghV8eX`| z*U2EC#*T!&(a$b8`G?>|4;sp(G5pA?zFUEkq*Re?3SL406=NW4M$Q2T)0zdWigE}C z*wv;8Q+#JCX{nGw$KgPN6lmB6ax>J`fYHerbY=j0(rpiqYDa~nQWc2$3I=pqcZTgX z0cvHMMGu1^&#$Faz0L7y76duYu(?^K}kWT=$2^65@0(#a}t>4(AkQhvbm=H&AYH7QJS{*ly^t%WqGHK`* zHX~^VuoypvYm>FKSG$R2Bgn`V!DCi1bb<%<%o!+2LnATm$~_!kG&Dx z8MhWrfd{7YD<(n19{CliYUJoKgZwfdITqo zDn)I}&roVbAxF!M_ohgMGhCqnlffdVy<+iWZU_SvC9V{fY-hDK+su+#s^U0uNv+YGTiU9VrWCz~KlN@9E z(ksUvM1h@v>^h%ne3K-j8=U8`>S`h!kkTnp&NrD`TJ)6NwiiXi?Oj{{Tvjlmcb) z@H>)trXqyu)7|eK0)a{}0+gt5Mk=GoKl-<(M zqs>+VaDhswI6l?r8drg|>zyv*_FIj|%Kg&rKoc{ni=q>zP9i$@KB_#mCB=JjI1Kh#YEaHN57)(+9O+ut_Ck z0Imm9TAIe8Cagun3=(n&psH%7NP%J(Zv&1^INrebH1zmHx>Oe12`0IpBmp1B=$0=1nagTbe*S8J`X<4)CY1#B)bXt}sw0*?xLUEdUuwV+2 zip*(bBMiiWPFsSb096udhCFg9bAi-WSK3ZGenyk+Oa}w=pbdc81DciyjM6M>KrC^R zcom2*8`GMSH@S9FrL))y7$dvVG$<17Cb^VI5aa-O&%HCn@T_-m6<|b)Ptv*THr1ls z%N)c3$pWOhgH*f;B(Tar7+i|YF08V&xF>_sq8uM;xnZPST9 z>nV;a_}nPTVz>gG(iM(IZa~FFT{!TJ)5=wD?Z5{BmZ)z$A$w~Kva`m?8kWfZA?-&p z3p1V^42}=2N{zVx0JY!VnzL*H3}lAtK1dC2!BFPW7JbfDnSP$v8M*z$i{n* zT0ZZ(AJTvV11?vuaZ0WocDGT$G~QLP4>UMFXan@12Oz<3Tu`n;upJv2_opAcew4wS z9w-4&5*UG;bM&U?CYC&flhD&B0!^o8?2KonG@n`l$E|GmUrd8m)l63)v`HCq0mgAa zj7-oJyI@ypExb0<7}m~0%5Xp=)9x*NI|Gz!S)wb{9D__roJ%5uf_bG2A6%c#x}j;| z`J}{9PQ;905_3{Em!iOdrMJ3_daxi;ut6?H*S6_A63em1M>J7jxzt1i zM=A?Ha(DuUl4*h9@^g{epoAGA3+7>f=RThGIB7@;9u>Vkt0O_gh_;DXu{{S`n6~63 zkOxjpLFFeUBrPf6lhA!B8)RT@JIeJZv7iE5cw_`}2!Q`wHv6ak(I6v&|&Ig=!gJq1~a3=x5VdedSiwMdWvE)H0n^cbuU18ERV zGhN(69FVEN4o6z&Wz?=@iIwJJ2VE^1CtJ9T$$37gV+is1b+V zQV8pc>?O80UL1}YWQ90#Ym z&c3uywaB?S3_-_pny%KyHeJAgJ!*3yGj-&ir`DY1m5NB=$Uk@tX0#-B!5AA{v0=zP zjWn!bNRX01;~uo)+d(6*K~RCYfG4d0Hc%uWo}H?u-cL1tZ~y=RF;xhrA{J683+q#3 zBl%H`cAy3o!jpkbiU*r#m&9>iW!Qd zMhOF^Yg@xwtk)3CE@Th47$o%iR~2n-cd6ejF)Pb(=NKJ$>sl7}8jO07u!$LGX9!U7 z%_kLMr>VDldPjhr6Ynp=or`g z)U0tPDHwdzH~P=UfF6H{(?R)3r#D8$F@EDv0;e&z6o|W=C?IY)&!s5)jrFF2RDwE+ z0CbDBh{!lN$nRY@fpPt#bbE*ma|Macd)H0iM@7}=iOC*pBm+R1v*7JcEk5$;XGC?9 zT!Ow9C1YyF?20k{{X8$O2wc3be~!%p$U;GK4IszXhr_5 zXrif!2nqX06jB+Nsr}af0CfKVD&h~`KUyfHHYC6C?JxVLn1AF;{{Xj< z{HUUt9Zq!r07_eaC2VoU6jh;}9L&eV3zjG6_4llpf7U1a!}-xgLh4gG9}qizj@WKE z+0!-5*#K_f$j{A16;aqs^eU{{UKueew08ieeVt9eON)cr;N-fwkel7sfv?A3JpV*2EmT?_Gn1b*bNEq33t)Sd?#cfEgsDz>+&Qez5diw^ zn}+X{b>@mGL`-LlRZ%qksu%Yopv7|i&(?}7Rj~ty-27>KAFUKq7$3d((@*-}#)>Ec zL*AG^;i8HFQTJQwDTk#LPyl}Ibe;?U0FSHF-^e`CMLwjnsPMcIO=COD5<7Xr=4Ax* zs~6D5ZVqEZ^M7