From ff6b8740bd458a40b87e67f549205ff000787b4f Mon Sep 17 00:00:00 2001 From: linyudan <1031378945@qq.com> Date: Tue, 12 Dec 2023 18:36:32 -0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DingDangApp.xcodeproj/project.pbxproj | 32 +- .../Contents.json | 22 + .../login_checkbox_checked@2x.png | Bin 0 -> 322 bytes .../login_checkbox_checked@3x.png | Bin 0 -> 565 bytes .../Contents.json | 22 + .../login_checkbox_uncheck@2x.png | Bin 0 -> 281 bytes .../login_checkbox_uncheck@3x.png | Bin 0 -> 474 bytes .../CodeClass/Resource/login_logo.svga | Bin 0 -> 86119 bytes .../V2Versions/Login/DDV2LoginVC.h | 3 +- .../V2Versions/Login/DDV2LoginVC.m | 102 +-- .../V2Versions/Login/DDV2PhoneLoginVC.h | 5 +- .../V2Versions/Login/DDV2PhoneLoginVC.m | 629 +++++++++++------- .../Login/Model/DDLoginAccountModel.h | 23 + .../Login/Model/DDLoginAccountModel.m | 12 + .../V2Versions/Login/View/DDProtocolView.m | 9 +- yinmeng-ios/Podfile.lock | 2 +- 16 files changed, 553 insertions(+), 308 deletions(-) create mode 100644 yinmeng-ios/DingDangApp/Assets.xcassets/V2.0_Icon/LogIn/login_checkbox_checked.imageset/Contents.json create mode 100644 yinmeng-ios/DingDangApp/Assets.xcassets/V2.0_Icon/LogIn/login_checkbox_checked.imageset/login_checkbox_checked@2x.png create mode 100644 yinmeng-ios/DingDangApp/Assets.xcassets/V2.0_Icon/LogIn/login_checkbox_checked.imageset/login_checkbox_checked@3x.png create mode 100644 yinmeng-ios/DingDangApp/Assets.xcassets/V2.0_Icon/LogIn/login_checkbox_uncheck.imageset/Contents.json create mode 100644 yinmeng-ios/DingDangApp/Assets.xcassets/V2.0_Icon/LogIn/login_checkbox_uncheck.imageset/login_checkbox_uncheck@2x.png create mode 100644 yinmeng-ios/DingDangApp/Assets.xcassets/V2.0_Icon/LogIn/login_checkbox_uncheck.imageset/login_checkbox_uncheck@3x.png create mode 100644 yinmeng-ios/DingDangApp/CodeClass/Resource/login_logo.svga create mode 100644 yinmeng-ios/DingDangApp/V2Versions/Login/Model/DDLoginAccountModel.h create mode 100644 yinmeng-ios/DingDangApp/V2Versions/Login/Model/DDLoginAccountModel.m diff --git a/yinmeng-ios/DingDangApp.xcodeproj/project.pbxproj b/yinmeng-ios/DingDangApp.xcodeproj/project.pbxproj index 18cebb0..7e76f78 100644 --- a/yinmeng-ios/DingDangApp.xcodeproj/project.pbxproj +++ b/yinmeng-ios/DingDangApp.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 54; + objectVersion = 53; objects = { /* Begin PBXBuildFile section */ @@ -760,6 +760,8 @@ 8C2C3F322B28DD95002C3C34 /* NSDate+DDDateUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C2C3F312B28DD95002C3C34 /* NSDate+DDDateUtils.m */; }; 8C2C3F362B28DDCE002C3C34 /* NSCalendar+DDPick.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C2C3F352B28DDCE002C3C34 /* NSCalendar+DDPick.m */; }; 8C2C3F3A2B28E22E002C3C34 /* YYAnimatedImageView+ShowImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C2C3F392B28E22E002C3C34 /* YYAnimatedImageView+ShowImage.m */; }; + 8C2C3F492B29335E002C3C34 /* DDLoginAccountModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C2C3F482B29335E002C3C34 /* DDLoginAccountModel.m */; }; + 8C2C3F4B2B294528002C3C34 /* login_logo.svga in Resources */ = {isa = PBXBuildFile; fileRef = 8C2C3F4A2B294528002C3C34 /* login_logo.svga */; }; 8CE493992B23F44800CA14D5 /* NSMutableDictionary+DDSafe.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CE493982B23F44800CA14D5 /* NSMutableDictionary+DDSafe.m */; }; 8CE4939C2B23F45C00CA14D5 /* NSArray+DDSafe.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CE4939B2B23F45C00CA14D5 /* NSArray+DDSafe.m */; }; 8CE493A02B23F5FA00CA14D5 /* DDUploadFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CE4939F2B23F5FA00CA14D5 /* DDUploadFile.m */; }; @@ -2175,6 +2177,9 @@ 8C2C3F352B28DDCE002C3C34 /* NSCalendar+DDPick.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSCalendar+DDPick.m"; sourceTree = ""; }; 8C2C3F382B28E22E002C3C34 /* YYAnimatedImageView+ShowImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "YYAnimatedImageView+ShowImage.h"; sourceTree = ""; }; 8C2C3F392B28E22E002C3C34 /* YYAnimatedImageView+ShowImage.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "YYAnimatedImageView+ShowImage.m"; sourceTree = ""; }; + 8C2C3F472B29335E002C3C34 /* DDLoginAccountModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DDLoginAccountModel.h; sourceTree = ""; }; + 8C2C3F482B29335E002C3C34 /* DDLoginAccountModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DDLoginAccountModel.m; sourceTree = ""; }; + 8C2C3F4A2B294528002C3C34 /* login_logo.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = login_logo.svga; sourceTree = ""; }; 8CAB97312B2259EA00ED8639 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; 8CE493972B23F44800CA14D5 /* NSMutableDictionary+DDSafe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSMutableDictionary+DDSafe.h"; sourceTree = ""; }; 8CE493982B23F44800CA14D5 /* NSMutableDictionary+DDSafe.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSMutableDictionary+DDSafe.m"; sourceTree = ""; }; @@ -2276,6 +2281,7 @@ 1802B3C42A540A1C0036DCEF /* Login */ = { isa = PBXGroup; children = ( + 8C2C3F462B293343002C3C34 /* Model */, 1802B3C82A540C830036DCEF /* View */, 1802B3C52A540A620036DCEF /* DDV2LoginVC.h */, 1802B3C62A540A620036DCEF /* DDV2LoginVC.m */, @@ -4996,6 +5002,7 @@ 18E00DDD2A66BBC900FD034C /* Resource */ = { isa = PBXGroup; children = ( + 8C2C3F4A2B294528002C3C34 /* login_logo.svga */, 18E00DDB2A66BABA00FD034C /* airplane_bg.png */, 186777902A42FB540096D802 /* avtarlive.gif */, 18EBAB5B2A42EFD300AEF467 /* noble_xuanguang.png */, @@ -5697,6 +5704,15 @@ path = YYAnimatedImageView; sourceTree = ""; }; + 8C2C3F462B293343002C3C34 /* Model */ = { + isa = PBXGroup; + children = ( + 8C2C3F472B29335E002C3C34 /* DDLoginAccountModel.h */, + 8C2C3F482B29335E002C3C34 /* DDLoginAccountModel.m */, + ); + path = Model; + sourceTree = ""; + }; 8CE493952B23F2B400CA14D5 /* DDBaseTool */ = { isa = PBXGroup; children = ( @@ -6083,6 +6099,7 @@ 18C1237C2A57EEAA00B89660 /* microrun_9.png in Resources */, 188EC0F02A47CF3200060F03 /* DDMEmoticon2.plist in Resources */, 188EC1CD2A47CF4300060F03 /* messages_icon_11@2x.png in Resources */, + 8C2C3F4B2B294528002C3C34 /* login_logo.svga in Resources */, 1802B3BE2A54061C0036DCEF /* messages_icon_29@2x.png in Resources */, 186C9D082A29EE3500209BB5 /* PlayButtonOverlayLarge@3x.png in Resources */, ); @@ -6600,6 +6617,7 @@ 188EC0F32A47CF3200060F03 /* DDMInputHelper.m in Sources */, 23B2A7F92B283ACA001C0913 /* BaseModel.m in Sources */, 188EC13E2A47CF3300060F03 /* HXPhotoEditResizeControl.m in Sources */, + 8C2C3F492B29335E002C3C34 /* DDLoginAccountModel.m in Sources */, 1867776F2A4292F70096D802 /* CreatRoomBgImageViewCell.m in Sources */, 181F75482A5407AF006FA7F5 /* DDLabelModel.m in Sources */, 23B2A7F72B283ACA001C0913 /* NSObject+AutoCoding.m in Sources */, @@ -7061,8 +7079,10 @@ "$(inherited)", "$(PROJECT_DIR)/DingDangApp/BsaseClass/Third/SdkLib", ); - MARKETING_VERSION = 1.1.1; - PRODUCT_BUNDLE_IDENTIFIER = cn.nnbc123.voices; + + MARKETING_VERSION = 1.4.1; + PRODUCT_BUNDLE_IDENTIFIER = cn.dingdang.voice; + PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; @@ -7119,8 +7139,10 @@ "$(inherited)", "$(PROJECT_DIR)/DingDangApp/BsaseClass/Third/SdkLib", ); - MARKETING_VERSION = 1.1.1; - PRODUCT_BUNDLE_IDENTIFIER = cn.nnbc123.voices; + + MARKETING_VERSION = 1.4.1; + PRODUCT_BUNDLE_IDENTIFIER = cn.dingdang.voice; + PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; diff --git a/yinmeng-ios/DingDangApp/Assets.xcassets/V2.0_Icon/LogIn/login_checkbox_checked.imageset/Contents.json b/yinmeng-ios/DingDangApp/Assets.xcassets/V2.0_Icon/LogIn/login_checkbox_checked.imageset/Contents.json new file mode 100644 index 0000000..d3712ce --- /dev/null +++ b/yinmeng-ios/DingDangApp/Assets.xcassets/V2.0_Icon/LogIn/login_checkbox_checked.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "login_checkbox_checked@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "login_checkbox_checked@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/yinmeng-ios/DingDangApp/Assets.xcassets/V2.0_Icon/LogIn/login_checkbox_checked.imageset/login_checkbox_checked@2x.png b/yinmeng-ios/DingDangApp/Assets.xcassets/V2.0_Icon/LogIn/login_checkbox_checked.imageset/login_checkbox_checked@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a2972612c509b2b678c7caeccb95083ae6803e89 GIT binary patch literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^Iv~u!3?wz9Rv7~+n*g5>S0MfWxxoMDTtHG^PYc9; z#{d60KbYj(w_Z6pPPaT?+uTg&@L@0i-=dHds=KiAG(_;n#{U%eYpdXcA#V~EA+w^zLRnhkhdFWT+?8NjtP^?&u+ zOJ2vCEZmaXb_lDv3x?TkUwzqij*@`zWPjr&Z$9Wbi0+z}y5`ZbT{lwJ`6hNVOIj=r zG81z%y=8v4SmLbYW0%@2j2?pN&pxUZjDpZItAgI77VjH2eOJ;&DceFeIf N!PC{xWt~$(696;)k3IkZ literal 0 HcmV?d00001 diff --git a/yinmeng-ios/DingDangApp/Assets.xcassets/V2.0_Icon/LogIn/login_checkbox_checked.imageset/login_checkbox_checked@3x.png b/yinmeng-ios/DingDangApp/Assets.xcassets/V2.0_Icon/LogIn/login_checkbox_checked.imageset/login_checkbox_checked@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..40b0a85b8b8eb17f10754ba42c4af6901b01d08e GIT binary patch literal 565 zcmeAS@N?(olHy`uVBq!ia0vp^P9V&|3?#2~eYgdr>H>U1T!Hle=K}v<2oz=+e7!GW zV4(Hxro{gjf z977@wzn%6ruUSE)t$ah>z3_YgLCMDnDMy`8pa1m7NX_P?bezSWNS$fZ zpGQoWj^3Ab9Xc} zbuU}&>EO9&x~h5>>&dO(4z=_C@mkDpm?QM~uSQd@YrulFevFDocg4APO})4K_E+!g z*)D-vyvo0`rk@uIOyO!Z-t_UB{(Q+r3u-R%vCKPsu5qbCWx}*}< zy))XyyZ3AQ&EKYqq8daNQ|PD;AsQ-=H(Ak zqOJ->9?SGq)cDG!x5-1(<>1F;wM`#Hx{}-EzJ0s)cEaJlI7{22rxGzWZr9iU6flr? uea3vTMn~G7@63FSXZ)(&M?by#!w}0V@g-@0(kEc(GkCiCxvX5(bD_G|!WnBU7!N%VaWb15DRIom#6f7^3Z`VslS-WIW(Oi<7I_?Ml}^yf zD^z)SgxNr>Ut-dR2h0-P{u34$EK{5jCRC!ZtlYrX-(ZCSvzW0Ihr5(gSD{LWAS=UZ XYeiF@6Yoy|-NoSP>gTe~DWM4ff>CI{ literal 0 HcmV?d00001 diff --git a/yinmeng-ios/DingDangApp/Assets.xcassets/V2.0_Icon/LogIn/login_checkbox_uncheck.imageset/login_checkbox_uncheck@3x.png b/yinmeng-ios/DingDangApp/Assets.xcassets/V2.0_Icon/LogIn/login_checkbox_uncheck.imageset/login_checkbox_uncheck@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..c04eb82c9518f18ebe963864332e9b9831da240e GIT binary patch literal 474 zcmeAS@N?(olHy`uVBq!ia0vp^P9V&|3?#2~eYgdr0t0+PT!Hl7{pa@{xUg&2jlKIX z>^*RCABa4^XU~Ow`%WJ^bZ*c73w!om011MX?KyB^|3M%dh%N%jef!QIIC6RK-V6JH z8V_AOaNxXmvdt=>q0%Kme!&c9PO|QmU!AHZ%)PWO=*adtlY2@Myj;y1f=!vi<4qYD z7-c4JwOYpd1MGW;hB4TT`YSsUuhmbm zx-_M(k5>>C;M%>8Ey{so$KCG6Ka7w5y9({u8qE&$qymR)w#9FD(}vm8%SDtlK4e-f zx4pXdDckoMl{dwB^c;5n8&syo|YdE8FlGcZp&y2J)+j=}th zwB}OghontHbw42OciJ5H^mb*Z@o8sgJ_Rl_-PhY+7(4Fi9R=--w4Hg=MLi^~uZ-<4 zjqTEQy0G0;(q)iPW_5RSHh81KqB4>1=(Z0`Te(TEGdI?BH%^7~h%K19bFIfw)8efIjzrc z?|yFVly`I~I*cEgR?x4foyJ_M`?Zl$c6Jta(3Q+rouyH0ZmMFwDmuIJDCSvbhoaM1 z)%~^ERBw$lX^U2pkvpR|9m zeyLzu>dXxqb91i2qUmlbF;UNq#uodhq7J&;)RsXqFO2QwCNe{Be@C~Hj=Dx$eL87w zu+|q)3}I<3H5pp$#H+53j-Fa$kM^_mOOvg>-r7*fwA?2hvi7demM;c}?zyq!affqM z^QrFpdfO`_Ro&g()uU;!etz6;(wQ4t?ZhL4H3Q77zNetQ`#s%OYi@ee)o!rs#0HDD zyRpUgiLiY6$b7wL0K;elqg_UmT|HXxy4PJ)9%XKK)Z(VLYNol~^4Zj*Dd{4sx?8d- z>m$`gR)nz$-UOEUb*e4=HWGeUqAnGrwV^M zaW1Oto9Rz`-?+#c{ZsM1seca{FtFcW_gv0?{!@2*>h7Bx_P!i`dB^VhU%W zYV6OS{yAJV|9-^6N+(_*c%R0X`K8uDcE!%$w~yu`WL@oh90D-OkZhSjJX` z%%u;uO;K#>>9M4?uQ>GiW!Q!zM~(=O2!%aM*Y%40<(Hsef>uwx;Q5~9_QZ4YTfGi^ zL)~VbJNkUg$&R?^5tdQrnVqTcid(eV+JZIV=Ym?!wzjq|{TO|qx5u=ff9@W~ow9#K zlkJl6V9v#h`BVOBzKgRZmmkeN{?UGL_z{R}+=Y=#v@t^_^V?rdcr$Uu^3+R5Sg85% z^y$ZFdw z&JnVFhaQZGFl;x})YSaGVdKWKRr(jF+1n-JeK~pi^Y0hxxUy@~rABUWaMOzHWsjB# z4G!as%~#XCwu_Jp7<^Drb*8fOw(;bZly~pPrp?dr@*ROq+!rz-Y+sD7``Y}V(tg~} zqql8jR!grQGxVmu^zEoNDh$J;Pv?$0IcD_e{-gW%?_ZXkJKtrz&-(T2&%E@>*j2Rcuk+*1 zemT?Z-)q?G2`+Vqzd?_byoZ0wQwMorzHi#JetIz(u^FpSY zzPuw^7w`LJ%CKR>Ue&z1TwhXmXb_2|!EM-pv_+&Vnv z%bUIzCZQeXUZOJJ^XK>*kiuP0kBrT6?P-3VYMozTwOGC+4phAPjz~+Se(4t3dtWjf zZ5ZkHeLYL3i*L{Tb&1YDxL?`!6Zv0<5AHc}{?5}7JyJ-1 z%0GU?Ff>_z40|KqKls*V@!ZBZucB4QsO!yP1z(2`Tz>jntU{hOIlWi8XFGp+2Rt}o z*^IdTjqnfIaBs!v-~5VJ)%7KY_SZ4b&-7gUJvF`e@-N#@-SO<_gPz{dZHsF_mm;3i zk|&vS0zRX|I_1G{R?T_mdTDyXlT%FVqH~6+tGj>y>^UK3+LJ5p%Q~MjLsv6RUS+>9 z!Arl+M?9yiW4uf^#&{_b=l9on1#EmWe^BI&Zahtv>N~mT$OClz9nWU;(=cMZWAWdH z$X--)5WXgLYs>Pe9)ZtMA12U^yQUYBMHNllFmu-DIFHZ!nmL8@ZDW5(^XzmTBwW$C z{09BqoDcGS_xAk|v91w~i~ET?^gX|H%qP!nw>$?7QeH6f14)HuM}u|JOJ+!e=Qob) zg{!%5WeVOU!$ru5PfJNW5*T%`>`}k4KJVqO%6(x|8b8kTIeN|z@}NAUrOSf`sz5F zLQ^@qr3BTBpavEBx+XPMEPMPUO@>cZK!zyZKy-#M^--s*jn7f;r+OCIbQ>Ltx1Btf zG*2V*QwvpJODrK=ZLnd}jYjHO12wROU~Vc?t8MTJ8{ZUqj=HMMjGH0!_~Fxu3o|F9 z$#Km`5Qoo+YCEiMXXFi(Db_{kQPnaWToXCvdGjS@q@Q^>tvIfCwWWNhYSL3nb<>F- zg~=xt+fq7o!BomAIZ9D(69@IYHBf{UOp*yyQ;U0EfstvwsgRj~6O?MmuxT~m< zTF1N0THpQCCr>jv#BAkv@;+PdPU&Qhwm4gQgBluL1Sue)$8_O9MfINMdvS>d>Vrd7%zPl8ygy@{{Mx+VMpFlhjcLpCi@g<$Kgt zW*jka8qvQorN<-+{+)O9y3BX)g0T+6;Vz!AlUG>&hmc*%G4eKi#c$OT!fkerKl1#! zNSQIHC`lQ(rKMaC3woQ;pUl=@I~llvI+*;G4tQ%%k$Kjjt_)N7l9}+Dxk2{VT3v*J zbE`ztI++cxh>^?8=%TAV&qBM=0o~RC_tx+_nLX>7xIE@?3su-a9ZpGfh&8e%swCYJ=xbNZIW{Vf*Fr_UBSxfp z>h+ZJFj{Ss7kBbr)jcDGi4N>n$8x&@EO3&)E}z##37Z|mm$ZJR2L3wy@8|(!idD7? z`JPag%(KA*4jOs0Yl-PPZB7Y!l6+n_OgL#Q9k4=ith??PhvM zr2YOg-Za~9!IVd!#%6bCm|5!ecKJZN{LNZkDRIm&$J5nj-}(FglxJUQhvuerO;pOE zE~a-Ull2ELQp)&SEMkkSP~jyp@l)D)QGBV@I(5I0ZR3x$c`scQO-#sYSvSNq6)V z^Nt7+O7*ZvE1MzA^8L~#tEbMv-Jplfxuz7WHDMf|k4vhUZ3@L~tt?F`)!1D1DWxt( zW@rP|y1XL9$VlqUXj&O@#l+E5r<9VB;;{A`hQ4)r0~cA$@ZOLdf+&kVx@hv2o< z)vPYY@0P`(SjRB!**_^1zD?BWur@S%7Xf!$qY4#CN{O>{=Ln@$qCQ`^S8VbvCT8?m zrE%FxA>P!6E)pyf_WbjV)U`9i%LwC-LZr?5y%q^`M2M;TNm-Q0$JvYFZK{t}YqG_9 z;->ZQMkw$LwS2kaxmFn=1O>dklR41Ni%t>EtY%$sOq^!Z%|9B&_brUHpf|$#7Zz7B zX<&5s#;urK#eCS&$*f54`-8XM$i#TPXD5wh@Hg9XvJ~4tg($1&F96!X%w}2kucdB-w}H% zf_+!HqS`L^>EInqog(y@EL>d8nBS7KW-OENKFN$0A8F<%D&&;%oXLKyoe9dQhBS`l z!B4O$!VHuB>`{2H1bFB`;2bx!) zu%0pTVY@tZCm{^Xu%i9UGHp9AM={$WeneegG&2i%tQ@H`Yegji_*aKdoA;ax-2Qv?u06e&z7x#PE)ikhtlj++ zb8gs_-8(jC7X}WQHz;G*U-t&T8!|p>qF#&ZEhg%BC#fRu~DW`c=cqS&8MhyCRH*VEbvh1b)kZR z!s2TC!7$H?u{}v_Ei)$zof2M`DyAS3y&i(!3wq zL_aH!lP>v~|Myu)#KA1tCBoyqneTTAwDCd_@0}vkZk_vH@xnGS5~*7kzzc&b+yZzR zwuDDW`KX@0E%vjPqMqTA#H63|sEKO+rF`LHBl?8j+-Vi=_e>KbhShdiB5|dwE(|WzM{bi+hXj;aSz8{rGK@&H34GVLW28()>0_I2Z{;Sl>T*--txV^) zqi^%GK2$+#1&cLI(V-Gc%69yz^SU7W#7N?qg)a^xDs76(ICaQ696U||wTXru>cPaw zWzsvXNDw)%3i?Uur4^lTwb%=46-j1(^OqFY701n-o%oH9MzmJ3xWjB$TqQh?M^7uJ z)>|EwbrH*yr9X|7LVwunu1`_!lv2Bb5i7HPM~`4TNqD);F6O$oBJM`B{q6$gxfPok z0m8Xfcisd>%%h1BeraP)Mcoum3KzSr5kxk2%4!s)rueJG8td|;gM`T@&Z9yFfq#mL zeB1Eq#LO=?OktR?Xsp?_fZ8CKp%EE=P$rQs$pm`FR(E~2GC3EW zvYQc0skdzr4UAjK(p;Z1>Q$FxaFM{*h(5YRG?$vJ!FPp=JJH;P6J|~bQD&Q%H2q$(ylZwOd z>=bwf@WSEajl3K_b+;3pl!FyMYvi?_J<~>rNL76|$&O%?X8E{4{NYwD?@P7ce(UgR zs3kfHBPz6h(Xd;m?6B-X7NHHyd!uE>S}gp*Tv=!-RZF%$`#?TOBr4n7!(hp{hsevU z%uc>nB>Q@cw$l9~@ya?ki`_w@ACxa_b!9qnuq>jrQOl#5$}IsN2h?(vf-mi&4#R0W zaaE6C{^N+hv`o>@a^ZZR7~)DGyMmTq4JES9e<#hIvSy z;S0C2J9=~kkw|lFMYAHM{xqRVH zbM(Rz>MJ>`QgM)y)hgP|t{mk^X{I`s*HOL48qm8FT`5NLw3V!puVPO<=C~egVy;b7 zR!B293zA9i!?LBkt5u2%J{l&bgABD<9~_bu`N=u_VK}v-u5SU=O14h;L$<>*Bej89 zJ6$RLyGyVskJ=F%c)5Ys%Jt(YXG=3J7FQ+5-rM5S2;Q?GSvxL`^~XCu!yh7#f|AytKIHgNb1Bkfo=8j)<}p8T)LX1@qKWz&mh2>n<6219Hw^z-3Qd)j+U5eCnqx=%7gPQB!AT|9{f-=D z(b%3vyJ^*=Upz;?#mqDI;$bzt1f0=rygF=iBzvVmnWDoA6SUBb`5K6-FvI8Iy*R}$ z)Uy`Ktiea;%Vv0h(fJjUBVr`sQd}-or}FEMQyKR-3+rSrC;eirE|A**^5d5Q&_D-q9`~%~v-`jlDkaQ4eTm zm^G07EDZI|CnPmc6P;2@U4|jAeB=WyA67t}H_)n?pShLqu|lki0^|DTceLrBWOx-# zEgo2l-OBYW1^{U#nf$2r7*n9M> z{o`8>dOg?AHKI2iuKvmlTGcTH+$psG5QKZb(X+AzBZBd~@7q}6_6Q9${spKr?0cs! zTtA973AUq6tRVaw?zB9_l1)hWgXGH<`0#A}r7b~||aQ<{IOh~G0@ioE_T&DKPrg{2hg<&L+~jN zoKPMFQ*s(Mdc43`=hV=`hj7%7X|QCJ6iNSwdnXfii(rE>epQXB*E##2R!TKxW!{60 zBCtBBJ@~SC{kpEA!G)Y*yYXe4q>zwTY&hBz5J3?Yf$V`e#>%P_x6-P-0Un<7Ps7La zsYKXl{<8+kn1`khEv4R*4=xew(WZTuoGUg6t{@}uC#;XyGl^%NvN?=Ma=2=sH(=rp zaymVOaMd^$)SaV5a*#1#xlLiCO*t3fsGy5_kzAx_m68vV;G})bhJ4|qG3mk)LHIps zW?QXZB=}W;gXi9EV8%X%B`*mqLRQp2tOdroJ*_v0nK|HJzNmuR|9!PsUhtnS~a1ybmMJ) zpv1eBs)>DFfvHb5Fe#7WG<9MW#jx)l^ekf{AJ@v@&tD zcSrOLy(qti3_YwHRf|m_i+}998=upp7p-~%ONL32x$|gmNf53dj^JJ0T8IIQz|j=YD*`Nm|wWEfyj?FLeV7QcKSIpjd?t*oi;9 zN_&q*@ISSF=irJH;9*8Jv_!)z!w&i5o7D2%MO2}Mr{^wID~5W0sK!`lw2;NZDFjmv zDY?ZI36#gXh(C}90b_$Y(VrBJUeEZ{B>FzqRsx(076NaavmbxiV*g7C8$YVCnVA#B z8NByOR3JG+68R=s8f<(31k($|o>|;!b&8#OQQvED#ak`pxd~k>ak~Xqq&G1O6|_pa zDhRK2-GMe8+$o?S4ew#nmT>O z;aVpi^Q#65wHo%}H@+xpFRL;C+i#z~jXhO>1dn&>&!iGtf(FX?RSoU73oi9^hW><} zA{5P14_2}_ndQq*!;-o;*vz|3**|a^KW5=g7)r`Pc3Tr_690imHu6I4 z7%LoWC9&Ac(1qzh7=rM)zkw}-theHlw$k%4>{dmML7N^;pyMBN!Y>$Q9~3jB znII(uE}2ZL+^ewljl2;2;UC$^wN+}UN?Z9%ikzi*x4!Ag-^Z&E04dtmL94#agtvmR zGL4tP6~EL#X@}6@``1CB%0Yr}bMNS|kQ_B6r1OyiP;|j%SWHj@Zv@(O9&`md?KJT8 z%evEEX8vQ13@qfNWd+m;*eDLcpF99fRnXp#KtgL{=70H$rU>40$&hCsq z4zJRQmpWa{um@iN9`Er4Xy);~_#f9rzmBn{@SH|^HU~)n?^;*uj2Z{v7d4Q#0Higp zky{yxKSA=5ajz^eNGf?wVjL8N+xp~D44)JkZqVKy;a=mwGWTOkWG@7-J7k#_nxifM zf%Fc=KOQ7e0U8_^9$u@ks-Xt*fu?-BUUVN=@pwZiNR-B15yXh4YG}o{Z_w9a#Pw_% zPJ*Kr#lsad0(eobg9CVrWLs$zi_E&j-525s?JXunN8!GtXx=}tQU0S6$wSVzq~y7c z1##|HJMH}uze&f_jeaU@$rw-+XKJ7mu7gR|KXqmL;ejzdl=wA>f{GLo&<0a28M-h6 zkMG+i8W#(~h`sYc2p)f`jr9WS&D{qeoda-$TYzAhTHXgNQJVR;E9*J71W3lD5trel z7<)t+HCHaXEA(LW#6q-b>j*TxJR7OnOMCx#5RZR*0MGkOs~8|ok@&^H2+Q39>`*Q; zJfw}qL(`ATIn(tbcNrX|dV%c`1llJZ;?X-Rqfhp>Ek7EY{c`;AUdQIG`lHYHpGPIV z{qxz+-&FKk>%M=`5T75`Jx=$YKDzhT)dMF^9v!iM{I5Hq5$zJBw7FNSLC_QEI( zum*TeA3ck27uShrnRRclkSGvXH?+tH=OG{um9<*SmJ$e*DXnDOScm4h^2O8&@@`p^-olLcK!UnAZ+L4OR#O+eK|TWb|71_V?siew)rSv3jz z=hcww>)6+O@Hsd~KETv>IZk zhY-BRYQM%t_dEOx2k?g{jn=IDTE9rN39JoCVgYjXDXro@$DT#7!D3xr2t&VUq2@x` zTb$cHsYZ!DhL+UP@-aZHpVKbUvZa;fls6!}a&Xta3d{@ze~lxTJhQfx9KvEvL@yc2W=Kc&y9Yf;IsAX z?!(aiq#_O{ulO-%Kae%gO9%1qJFT(PmE-C7f7$u!Q96FA*K@OdB4Enrw2HFpMG_z{ z<4LaHZv3fTCeo2MaU@~4@ES;WND1bQ0#ISz z?rq@Rf+bc_4fF`F!s=W4?XY5*4G6D;PN`5P_hZ{6=K~ zC4Wz{4nS^oih*+3S#2UltEQcSlca9rr=U$)Ydyg@?`)t|!og^;J@!krUvWYn$ue;( ziz%TIBsVZy^L){!zRQ%>8i+}uRpIZjW4Y+`$9yJ=nEjQ&9%|0JwUd9RB(n#kRfWFh`2Ak{#Pwem(ZYr zDnJZSa4M@33t*#dp*GD2u$B=( z#_1nOYgi_qSfhM0t_*9LN{Xh(3I=L`J}jA7ihZj|%mMntlR|M>^wun}p?jTv^ zBygYIYWa6j#G7K(x*+TFb70`W&}0a`u}TbA{2tnTOw=Aq44${_ImYtRLW>{T z0=(4F^-jCz9(=-cy=YiAoc7QSi6TXQK4`itn1vkVGHHGLm3FCB4AqNv9-~#}kAi9~ zqYdVINvRH?uGt0D$u7s2A)qq}1#YhZ@yjEVG|=19jRyogH53jy|6K~P5_MNA_B!Rv z=gKQ=eG!wGB}*jSY9Qhzct!ZWYeZD#0WJ<`p`*jX+YQ1aFA8-7T`rtF9p$ zDA>B(OQ#SH)IwY9wSLo;EBy4LGZWC)u`!joh~5-mgM|P;49wAs=DtlhqJ}(Kv}z;x z;g891S|igt5DlItW3xy19DX8Hk+OE3UnRzxosCTN2N|;%6Rp-jsYf-??A>T^LAcjp z=cdhQP(15N(cEc3C|DeURLJR1if|pRy7&|;^via8)|UPZgq^nrvq3)pC3Z+53#BP_ zR%RN4f6SC-g6WP+D|Xg=cmdoupX!e`P1>J>_^hN=n}1M_jbQT(whtlr1m8{+XjFbU zey2^;p3ENReBv!F)2^+&BV0_1+`#A^oZ$IgHqvzA6x>(wUO;-<8PZG5`XB|Y26D3BS{PChW-xj?&$?e zEgV1cm}G@pmv^4*`L2{&d|WTeO4RyEU1!F`EG(rqa7VNf2d8#XcayKj=|!{6ChN9i zFw{328JA_c?va%alGbXzvNxk^bKGXkCq*aoV96ROGNer;eV5E$@%z7~YvuZ({?@=htb&h^Ij>03 z(3P}H3SoV!^*aqmz5Y@((_EBcmd|=9%o=PUUg$-MS=I$LSj?~@&PMU|+gj+JYhj@a ztvdV`Q~PS6oqN!x3BbL#>P4;{deOPVXz;}Xr0%$$b&u!al)2^ZhkGKFvLR|{1~5!_ zV71{7GT@{F>K{0&I1izNXm5Oco@>iqe3LZu7b_Ugcd_Yd`|t^O^{g-4%02%&;wFG~ z?-YpHwaoCB%Ls+6)fzEUAiJhX+=2%83B$j(@fx|6;kfN;B7t_(s$Ea`i}kEe+|d#@ zfCyLCGXM-35H4`gf(xl|)Hn$U?e_RutbRW)S2$LoUQJUPOA4SFLmpDKTbdbt)^)Iy z8jc2M1><2iNs;syCp&LM(|49pnRjVb5(3ycu7FnklmfJ)G9&__sU@AH-!oaJL0kC; zn!Ys<|CC=g zy!Rn-p~53;tpxc>%Cb{Ru8F$svQ&G(xke_YH|?GA5-Z7IHePhTY(xkFoWUY)~m9zeC-HvZWhn)i=R-aTPQlO~0rcDm-Li#+A!9mb!{tZ7x&H~Me3&5*Wvj0X8HKH z)Y)Y(vXN}9Uq!-dz33r-EQoGCXj4Kl)&lZKr&?b0PVQ!xwU@bHaLBJBcs$@Y-T`O* zdx15y2mZ1bfA}XUnrH=5g#7-DJM93zAft@|*|JjcCJzyW7Iaw56JizSO}P79cad$5Ub+Cetgc{bMRg% z^=OmTuphsX5QH~;{C#a%`*WF}N-!b@9i8uH)QXnO(~Aa9p}h~meF^b6fS_WV0g&w- z-p7QnV|tMt2-&YIK(Yg)dl8QMSqwwHYM@iDqP~iT=b%}7V*2=TFVCNdV3UFDGHvCd zY#1urj(Y=CfSx9^!_nZ}LhRohso&h`$#56uyR85$HNv0vZUN@!#sR_q6dX070GXRy ziX~Hf4!hqaX@hLd`V*fWItdX~Gt#E$)6I95S>9}mZW zk!JQsgZch?(W{H_)*X1og6lFN=RH z#MO2gBg<^eK|Y#P!!X$RDAa3h4$|dt1sGF8iYiH65ZW|29KUf`3+=FqA0h`lw}j!f zD+{P!1e3OXw+w;Pf_Z7eEP$9t8SIN5*+q$~TBVs_J!cD)Q?rpVy`412j$~i4fj;Cd z0g>%)S6x31b2Jt-XT>Lf+=Dy(GQVOgE>w*u-f2Y(EZ znUE*?-i^FkO!O%m+2*-rr*bjPyr5OnZ^6fF#RXR)*uoQPNcV?ehF&!0K3s824bATD zIsZ1uTOd{*$%E8c54fkQji`@C`KF}~%)8e;*!Tlj|5NjkOI;IjY{?%_W7T~N+``fH z!3BuMm3H|DM(*G**{nOMDe9NT;Cw+fBv8b#6>efG>fB#O@=j4_>YmO~? zHN_)w*6|a=2drAK@`sD%=jUAP|8e^7&9_$$n))s0sQPsO+sGFQ#yC z2;ruIuGiZf1EOWE;rNp^YDfzNWONv=pQ2~!xeMQ6EReKP-_h|^GL)g}DDhG$Wx5Gh z4AMd$$K*bwl@XDLA!&-M9EpHUF9ldoQH~cF#_3 zl869x;FjTJ$Y&<+Hx1K5@o8p|;XXOna7#Z@g!p-W$V1|7bMuhlK4;(x&wM)m5>cl2 zp`9I`PeWpde9<-MPGb<7J~R(`NP1o*=Ar4nq4+n_%n={DBAR%oVCb7?Snnz-*gCfW z5&r`^xdJ^U6TK%mWdjPS1~OEmoV11%z5a)e=V}3EbduKG&T9Co6LH?##9GKLLF@M% z^LH)9=IPf(TbBo{M1z0TDkgoBLIz=D?yBI`wk6WRE?=eXrZA$qD@=+p~3ktu^4xMueEuI&of$e2!ODMf^)JOI>41$ z85bOTrZ1k%aHMX9fLGsQIg#xA=sV%~vS?j_^Thc3P+Sjk5|~-~uwZc&q#dr^v_egZEZ1KKZwz;hYbf9Nqy{*wK3SSs;5t|XCI4oZy~GMz^N@sdde+B;JYnFg zToedb3~%AcdYvCg6sv2Xjd^g?i?`G(tsiK`R|F3`NwW64E=er_S}rTaT24o@SLs>% zt%~JEa9=6a2jqiySjmDKbqb+mcj+o;9kd3lqm&Op_@5EtRP|96)`~XL?b#Zpze|)?IBVW8SOkT82{9e zqE;ePY07k@XSfrE6~E{dEB+!yzjt%}N~ol>Fm!G&9;eUyFA&}=XP3 z;=7?{Bg9oz@vmRA#w;xXHOn2Qbt%xZ;OwL?P9SelNyC+)2?nj8-iL88A|t zxC?bJzz(UsQMZ-;8KPiH>ey0YHOUDb4o3wm49=G{hz&rc!8z(x^dTunK@JOLm zM`t>>B#9d5_Yr%PPp*~RrCT-#QpL^7C!D0^IPa zG;@i>Inmn09V@=PH8gtg?*K*nwFgtw zHtfZBm1Yq;`-AlV6l*CGJd2B2n1dt$b@2dYakr*)<9e$iC$N-y7rPc{O`lHd#2W0q zz8IvS(Hf93a*@LTWRo8y(v+CT{$ipc(AN>fP_z6Dg4h001JR}jg#tkTjlZJ7Gbrxp zTtu->%Swl%HihEL($vsJSJ52?F#I={i7z!!sAtl=!`36!G+Zak>}~f1k>nRr)W9_@ z2F_qjy(@6P3Lkd{_gVXKn@a(5^=G{(zlm&J+2)*^a-f{;+~{EhX7smd6frgpwbXD_;dt5stWSB z<&h=0StlN#g=q2tol7e}(e^usWM{QdGGLFT$_vM&nZwbw96Vcs-r=!Rw5;HsiNSb- z!axFBns7w6qbTBR1b&m-Ko6;b4$efI28H8#Q0mMeH28cFu0N09y9P@Tz1~ov>`RGX zw-F?dJq2x=6NWEasS_7SV>QrvYl0ejP31u|&d4PO|d+1&`b}Zrn$G1VdF!HBrwOUoUoWb}AuK)C}s}UC+(mnB!JY1G1V> zr58QQgN@&Tl*hdT()~R%KMg4Ro(+1@^{qkpAGw~{e58wF{SPV*{^=d&@1lXs+R7Jg zAjziyEd7YBjATy&=nvNVu72oRsarnjos|Vg)#V|E$E0Wr*VhsBuQT7aTQ}boE{0ch^|A&XqRF+>hTC0bnP2O{y8+QL64_hBKv_&AyxLE5%nUIkXZ8*>reu4GYuPer8Ht@pi1~7Hv?>0j zv+!Pntni#xg{!bcLag|))bOp9+3{a!yea};u$flf48f1oM!EqtI|EC;mmpWuXjPa7 zYuTn{$cEC5O|hpU@vfgh-u?%Uk{*$TJ|wDtp!v|GC%= zXkr@RV%ZT{Y+nhobTzG-UkE4FiW9~-kCKxk*eibOw4OR!18D(K%yE7$6nhGmtOd&Q z7s+ZSA83I{TEDaq$Zk722Te~bKmq`6l>vHVbhP)_AUv<18cG4W_D!DCNyj9^#u4{n z$+-gLlD0Azj>6wMeX8;(?XBQt&ECfhkf4#1oeUt~5R9uvh7mwgAA%^6rG=vI(B9XB z@TYCSPJ;`=an<5#2q;W3<+e${ZeX2)kL$$OxYL60%Ua$sxS}l&QGBO{{&t;NVmM_L zGtPotW??LUpiK)km}syz@gI2WcD%a=YTJzlfBg4=WLUP-jb~pnq07+Mp#-Rq; zCf?C9M6OqUp3_QSqq&M49G+BlAWq>bOGw#6Yb$>(Rr$sR)uV78KtWX>IoPT zi8O(DHno+T?*y9jCT~cAiH0hkgleH5ebCq0ZeCYx<#NtOeerLA+IyEew`O{Ke%O!e z_tZdNKtRmjLdRR8-v~FpvNE9+*!`=u;-wa5$DSUs8cH3a7cIF8Lxa>%_#GH3t-#bn zw9twz(#$;gxT3bpGaP=AizFOyZqOJHb~-m2V!@0bItH(@DJ+Yw>G)PAWD4!_QQ4RF zmUkFJ`P20x(ciEHU0fibir%gHmx(j}!^HQd(y9%`P6iW7t03zQI$q9aa*)?yX!-#! zpL^z%w}x#!0h|&C{8ZqP!T46toO}cWKDwceRh$raEEm}^RRd{3qQf@{nl%s%+N{b) z>Hra=laicgsS9N@?C8}1#*g&fGi)xZu3;@7YNGtPJ;Q4tzi%x}3{d}v9k~N96Nk{? z^cUD>a$UH+F1o%?7#=t0-veGn7uV#k!dT#Gd+@Gx!2HWF{}DBbElWRWu_gO!#cQ*X z`SG;@ZaK*O4-VLeG2|kSzcdg5R(jTYps2AI5d2B!SyS%7Fn|xLEj3sRuLgQbwuT;c zEh(pp$yVI#j50Y53@?e+0Z5jhomZp<)UZ92xQ`vZ64+zdkAE`j_TyoF0_k;9swvj} z9rnJON*m#IPRpErTB>OxL$l$&+Qb*#vB6Kb;aBbe0k1Ms$bjDq`B`9E*VZ^Kbf?y&^#j)xK-q8waD8eotttm5 zZQo#3^Z^jK1ytexI@x81cz&qBmTU?oI_jKzMg`C<8hsSl6QJOv+=?Vddu|EE7rdao zrI(0Gt=}p5MV=c>il+Scf$omC6x^X_tw}gxw8FJm3!vb|cD-ouOJ}zB>RG-q82_r} zDIKmcvJw@@rcH?zScx|AQ*8R)!{6m2mux;7sGXb@gdh2fc6lsN_G{+df}{QbzFG&; zNTEJpvD~LXbm)K6Dg?d5TKbTzgVx~B%?#-gjLJvG0X@`&k9>obNU74dfy{R2$Ih#rA3MkY z9Kjxp21n0vicBSGJ=&iX4Gyg0NpmGQNfrh{8{Av@r@{ntQmiuNSo!ot6_u+8| z@}Qfr1o&H=R}Hl46kIVvomc<^M;d3gLqfD^J}?>@z*dJd9D(5B@1Wt*JVLHxW?6K8 z1#rcQM&3s(W=AOgWNr>p+T(ugKi>ibM}d`_4NKmE0>^dsp5HkEhkEtA?4s%PVO^*1 zp6pfsn|VjyQEzrdul(WiU$aN<*qZm(+6Ue)3&U2Y3|@7%WlYJhlBZYgKOH$U^w$&L zyuW+Op6v~tpB7=?f9an8$i1J59BZSo(R{c(raT5~-cW!>^_-kBgR(Bqikkix=n_bE zCI5b{BFX;uOkwWNTy|1xLxBCN=j_fp&sbi5L$hK=J&zsjJoA5;u4kbG%TOs50!nyd8uT_fp;L zqmF>voxBXY7@^j0clgvfL1%6arXHjPsR+(Tg3HVtHD|vDvKSsb#g_bZe^*4VN7lrQ zf3wi*b!f0`xw3ByP$F+o4Uv1$wFkW1uawWHN*~L1aD%Bw5mxz+*;XGt08K!$zhFaE zXa)>v9=9ITCV~h*G6(Sipy1n=b_w$;B1M8^7@C`pq#r=jv)!8Sm1Y9zx|9kZFEgxh z`0S%T+u)T(W)P2Ey_xn-4#%H7(gF?AK*qDMWI!Il*Ry2SauHG1#m@}IMEOucDUzvd5AdO?Br!b9^!LOFA`P;FtLWZ;=1FV%+EY_5_l|7-o+px>@cExd86~) zJgjPHAm~kqSHw+{^)jI!SdmA03twWJizqZr3;ki4n~mg}IU?QpeeUo0)tyXw9Va}e zh%&X8>r}&=sYA6))jb}&o<<|^d!#5IIGyj`uu(6`c&Mw4UA|Wf;fqT!R*nYR zVbv8NuYuubmHD@LFISFuN2`AHKnJAi&io(J-aS5s^ZoyKD5`=wRab>-oa<1gp{${* z#33jeTZavT9a)he>@>z^ok~m4IK?7^BFM5L$z~;!>^ckCWDv_9GCMS~kz{8^voT|{ zo9*|WwD0ft^ZEQf|NZ{+cp$lV=DJ?j>v><-eQ%)Xb((ol7q8H1Jg7?&NKIc-(Ppvt z@RrRSZ6?3uEnN@5iKVfmjgef3&jpE@PUtkSAETO^#}7W`E$y;k=;Igoj6}inC0lgZ zM+lVlWk8;T6nwy2dLDywzKbW9f`n56P)SCu5;r^x0`Wm&d`Bn5 zJuo1_Xk(b}8aANmjZgX{{jYqYR}A?Lr$6Dtf}9d)!4Y~LmJvb8t&A4)f3NEQ0+-}6 zlEG?V=K7AghikWcv_s;OHLq;f4+4VNG+rd-({?`cIqq8-yq5VD#=TY{-x1s^LKhp1 z2L^k$4LZ2qGyNuR@A^b^=#sbfLto(bsSar5Mn>!Gin$G3F}|Ucz0@?v4ke?qo_TL4 zF7?BY@p-6B@OrdK-zN)3q|;!pUk0AUU?Vb+bq)em{RwZ$a^g=4IBU<~%DCjeKL?mR zES*kmfG_7>Oe7AO)0*mq=fC=}CA$Jth5V=;8mnZ49<4A%$K_-LRk$WPy40gxFqyZM z7qhhkG1OXEapVH$-<=Dvll+j;Ufkwu8XO03Xw_EC9eNjUsXz<-eK=O>2~g`uTMed8 z=G=BDrxSLc5*fMgM~rq*5~2GY_O3`R1E#*)H0*vX>3QOj4Azht=x=bPP2R%+{dVlp z`zr1#2#Trmyr=_D>R~{#DeGxa%iB$y>DB(kha55?gzgCJZEeHz$rYq$G%B0>6QL`B zp*vY&wo2TE<-*z^8nPj*M;ui8RYbS%3BsPJGe9=;+OM$UsFs!{>R5 z2W;?Y?-alb637WVqodVdt|RXPdrL(z+5DuJ4eCcWxz)kB1AUg0kG+101s|diJWHMz zaOr3bo0%iMV-dHWYwJuOx9mPo_tGLEeDP` zpnbr&M%1!^Zj#bRndfc+>e(0%Y!EwC5%C2hxd`WsEp>H~ZamxIx{r9P=%zKVWzY=RdmLEhYmEN8w3DX0PtiSa;`|(>(^K98O5Zs<5KriA z8RtLGTQtGW9<9UU(wB0p*CuyQp(zaZNxp%~nHx$BNud19Ph`nxZmYxr0@gq%J46~%ubK`!{0|L z;;}T#r%v1kLwoH|=N5eAx-FVk*+_1Q?l_#YG@gw6!lN~R%7-kE_>PZMC-=SR2C(LS zkOg~}dOec3lMk)x&ZTs>VVbm6Twx%69eG?NW6S)@aN@ievNzBhaU=h;5?uT1^5*W9 zfwJ0o%VrR|zW{AW%@I?POAfm3=R04Yde!qGqm6%rOTrl~PRb7PmMRNw|H6nIE9WDx zoiO$NV&qsY19&87e=HgIz@v470DO{6x3@#D*-Rt6z#n*ig4!-I^&X{}n-!q^?9edH z1J86&oR8D8SU%+mu-Mu@8F2Y@noDy6Ev#L&GFkRi*o3|tzA{;JV+e2gCYF3%kAbvW zZG)uuc*`Oi-cKbvT2WL?m!Ok0%XU?9;`k28%zLrqFzbkG$!s3d_%Wtf^gCSM!3LfD zR-C*_xdEOV$k~f)uz^l_DWe^?Ho2z_GOu?+0edK88u=kXEY9ZikGw!O4%ndTb(s75 zx0vDr;9+rlS&_evjQh$d^6+tb&>5dR6#;J{k5D>Ne}xZU1dJ`VueN??hwL8Lar#vN z235|BzA7DfFi;d$fhYZvhkSBJ)n7qAb3zk&OS}!&=AtqH-z#ilwG3Wq>Oyz2eJ5OUc)v=Uu*jFHFw21yCshmGf~eDT-l6_ zX+`K_Ft_((EaM5j9hG&&+$RUxA!|*jAHmwJl7 z6dUWYl1w$B|1x@px;eRCJXO(}8T7sgi~Iu#;bDUU;-<8(@h_ zaLG|8G;0E*-3j8jqd}~|Z>lnu#WIp(u=kJW_$wzg@^?bl`8IF)_6EGu%`Oi{A4oHg z47rY+34~@L<5LKoI4jd5snPT)a1_07IXHFCe~M>~fsw314e{gzM|aHKuNXh;fF1xa zrbI9Y1+^SZW;c#Oh`5~P3#&+-fRYAMr;-{zaX0w zOMO`TNAxU@__P*(@tUgxA(>Q}-R^61C2xt@1D|uGF7_93e@+FOF%Up8WxW-Hz8iEL zhFX%`E_kJp4h6+tL3-MFivI|GXhc#Pnyy?YW&*9LD1w`Y!}$U&mFJS_0EbOKb#>5+%*?#+i}5e2Q|BMPd8FVaCt>-*XX zEyC^}qDQW-A=Z)45cJRRo}1{NyC`{^df^jufGWXnRikNePTxY$yiIf|9|>xKksf3| z5x0ppw;Hi_B>|`wSm^_=810I4@L>>wD=-D}I}D^AkF{{D9Ui7>S0PLb;>Go7wzPa; ziC9%X)8z_s9~wTFmc`Uy-(&6;6U={~aLC_*A~n|zRc;fxI}=W9AdE;RM?mN`;MYc+ zVf9<8#Fv~-37r5d?qDQJbo0HTYO&wey(T1%90oDkNr1o)gLK<{q@k!UaNa-gmMM>` z28M}foGYSnCuvu^{Av|zznD`5%?y^YWxE{Qx?~?_A_}H+rY}|JpW%yY^N?rM|K;L{ zqdqDN0Umf$G7ZdK3{?@*sUu!4M@gW*MC&8~Z6c>y;Wm2D7r6BdDD3U3oXi~n=XO->sR9_F4Z-ePW# zx#!)%B|ALRouY%??`whq6c3Ff3qJuAjtJQLsgYaJ@WGmcl_ulk=1%U|G3Il;`BB>Qu)&({CHFuEI+g=5o7=q5%R zSQcduS+>CmWp~=2S~O^dPnv}G$U+L1V~VgiAR)ptTpM1Eu11f>l5Yqdkbs-#H|9Sy z6>d3Y5@(quVT_h(40Jlroq?g@d5Gy3M!PBbS}9A<(!BE&J&iAbu6xlNetf+bb&4I_ zIIuM9988hB!P?pwHXCyfj3G~bl#SqRJrdi2O-`t31g2Q3BqN{jkt-s~<~0vB4^X4w z>C`?SCDjbdMmGfUGd^q=p{pB=Wt0Hh*(n!s_W<60jVMYgAssTGtnn|j;zLGUJ5hs~ zpW%{38?@j!oETmz4m5AR2q!wiiEch@+%V0-L^S-j^=OoW+*Hn6u7sP%s$}z|^`lGh zQK$^sm{IKK8zG0e?zAA3U-9XXKGI}z0Kaw7sNeO?CMvd3xxUBch zgs1(@A9QS*Twsm#;iZW!>1X)>HAw*f>Wq zc#ejCb85%bp`l&)n3q31mYK9W3>|LV4jyRg!}`%>ovTmPovJHHwgrmK>o>f2(cW>_ zmSY(mT=FQl(B>Xq^U?;PV*SIrIHB4XQNUxxIUpMNfDfBn#2a?QiNKw={h3e6F701J zcj)3pIYM{KM<~eL_8u+Z-SS^-5PSnpEC&|7gA=NY6N7yfq1y&0ey=1`es+k!n=DTU z{BdnH9~on+z1^v!>%XDyySo2@y6@Cqh(9I7!G|0%r2!5Lzm6#SVTxWS>5&HyPTJ^z zpqju4BVwsgr+%psvXGxB?PC^u&ni!d$F@N{xIcez-~*4gv601s5&joJ6r9I}2L>9b*=F?J$0WY!Td^bT&Khkt?*cz3 zABG&7o2x~Eya7X=JS3OJ{`y6;tCSPe9*K;d;|88VcF#w=VKcwcj1{*~EYy5|(X8db zCV8|bEYV$Mwcz<(S2b_LjCBw?cU8tP^`x)PmvTQ~)7Fru+PH;L%?;u8*ud@cB`bo_ zzowciS?oWEo0ObTZHK)7LELrUVeXIwv`045=XFg;Ij;TM0f9U|tsuYkVPlGBc_a_O zBQdQMJ^xrQ!EFk+oEU0h9kOFw8BlV(kIq5m;(GIzZYfGyI zadWW9%}4Gis=Y0lc+BtGM#=Z5nVrquU+|I(XEf7o;lFg74^*IU3~%|qqX$&zqbta7 z8SSeITnhwyC29q7eA7#0JCAg~$Ui!mZiWcXP((O>rR495oVz%^qPYMA{0LrPMGsDX z>hjvjwuaoMdOiHz#%}A;qX-$O z#^T5u>N(9=yC@Y- z{45t4q4W{Y(TAv4KRu*pV;QLlWS}^fyi@~pPkZja(QS?K zskSx{w1L%)Fd)J0HfWk(z1vg>%(>pKp7)y2wPBfoe+MWsIpLOD0Q_N@2SBo=4Z2X% zq%IcWB8HE=Sb^K8+aS$YkED4nx<1f{!hJ&k6&!IwKF@(o$b@?IX0lNB|K;0{F2m3u z;N}w*NZ_@zYsvhCvlt8V? zg}|eif>jMOBI9GR4B2dYZfe>|3m-z`_J_HM>z+qDs2OkDF_Miau%%tSv%xA#Q&@td zqK0V%6Y;2+9wj~Gl9zgg_)>h71ImQU@8lvwL2b*24>S5XKf2KY>ba;a;kXx@?a>}S z4=*@MCt`|8ckraSapY?+HjyCeg$t@+^v_K`|7cL{R+G6;c*`J=xWA~9-f5k9%@mLJ z=wv=}Z>`#2J5|cWfqZ#x~Kv_^??wU~l_%6@um-W5}%tOZ) z)>*{RJOl^z=O`aiNGNR(Z7s%!%;7GD=6B0RGJsATNd{0LkG3+B=N|UP>+Pj)m3;I| zCl?@evjVJsAs~qx(wt9#y_-kqm@K$_T`sclC8G@oOLF3iezQRjMoBk*r={}=oi;S7 zB$k{2WcOh@FxLIz#R55MHw?9QLN{6EcZKd&SjNZ4%wtdRk>~Cn*z}s4eOufYHg&Z@ zy5X36a17b|E~D)<7ju6TM{bQ^#98Pq`8C2~Z1-w1GRXm@J*2FCfnZ!GdVNit^I`p> zgQos>@$L2K=UBohR-Xsb>?|KC3s)}_H!#SRj9|*2m>T-ffNWWZwROmcJD~^47}B%D zBgupzHW%@*(p97_Uy7SYTD@q3pdJ!VJSd@CdxYACU=(iB@s^YQ_(%u7-BTF;_>)18FVwWAtiN~hRqQR?LC+=)L9a?93*`!_L!*)KyXH@V+fK|@=6}rC9*N!F;}rS_;J4Hac)?c6sAB{GEFlv>Af`OWQ|(au>ZqO-aT|eO zJ~=xn*vSUH>ryWmA~E-g4ffV2#71v^bEEfalWXi)P{q()d`LDi{y3)(hU6gAUWrF} zJv;#@;kifKv@KL?4D<0RsivOQXeP9?nw#~Dk9f-}Cnx6&IsK|~m55Cp4DdNSH1a8B zCFWxT(_PX(>`-6zDmlN60i0oP<%Fhm!rI#8R7YbN<;C!_4;+AI#SX-I#dScP1>C+n ztiF{GD_R!pa|id0r15bdMDxW2r@+KsuaoOGa?nspNV~auT^wq4;@g?xE`=}@my3+X z6d}N0dkx6U9I0)`D$83vp*s`^T~B}M!@ek?AF`2$hiNW)v?EUe`w`EmWhVW?av|!c z#y(H*aUmq9Iir#l0T!JHDic20Gu?_y_9@9D(ZchFN#AHL0+`MCFEIPbV?1^zqpdFi z5hte_*`YN4uv}up7sWat%`J}>3U9_)H36i(jXZv|SYszU#eG>$|7X7R>DeLGTsSCD zbaFy{2@T$8NdqfgE}o?80pfuYkL>>756u!ucIBf$ybS{WV!WCA9!TfEB-=D3o($P0 z0%({QliR2$RnYYP|K!-C<@gYLDzLW5ik1c>yLlp+5+{<|Fp{jMP7bIEaAZ9eLv}}m z=Y5a3QBr(jC!1e_$dVuWumxXZilj4ec{>N>1o^$EH>UVONq$V|NN){wik9$}tYSPr z#37#2jHESb>z8dl$V%13!)jJJ<#+!aR`2%tA6$aV?;DYYQbvoO=Oc%x>BVYl29|L+ zfgH?C-<14<(aw9o4qZWdjscs{rMcP5`a@Qe{jUbfQYu+xqK&eCSNdPTcKbhIo81hy z*P6lh;=f>f9N3k~s`Kl}ON8z(k2W`Sh9i{^jKHb7FI@7Dz@6RT-ZeD$cn_3vmtgOK zXSnYwcqXrb)BuU%8XeL-4sl|6k+={;0-GR!4k_coC}{1!Ms zQDPP@;8Ti#G=#0g6isk*XX_%Uq6Ng3%<=y)?YraI#3Lgz5YXXQ3UXDwzuV7fR1T6G zpz@Gs6-5o^Vxx5DrZp9O%9SZASN*^C>KGetZ}D$?)qUMpG$h%}E zs+_oQ$r(83j15}*&%s=RJLLnf-gt?ROir?bKg?pZUG~7xemi6=56EN4t&5VW@?{Ny zB2Wfq0fSgCWD(-Aj`TdlebrZ#P3(1~j$Op3PM(h8t8x5QJRFaUi2|Os$A%( z6q*OtRC1 ztQrmXKk79~G+Dh)i8oiByoo2RutV}+;qskMXe-;3+0N&LIF^=3ImC)Ryg1 z(RWZ;c>vCY6MtVB(TcaYf8|p~o0rrO>ZGGYa65%+##4^ zt%6+IJ{u|PN9aCds3`Bo1;e$VwA^#XE zTUpHkg`PoMeMRXAX_0y)=bD0R3Gqm-a~E%sxY(hq$O*;ek_;G%%|$@9nOF+EiV(M@ z+6gTjol`8;B)Cz!CQvjgCTJR_49;;viblM-2hVa=~ODrXN(-CLV zWC`aP$+6Iy+<#lCQ@&B39;1>Ocw(HHU?iA|jQ0KH!)|3G(GRF71l_GQFW@av7e!k^ ztiar#=MpF4$2OhL_hb7&oJudHJU7W$e#_NIfy$7bB|V#N9JcCkqNT)dLPvmUiI#;m9@-)!MDl?T~d)WjDEWgm{Ygn@F-21 zg9G02k`*5}xJdrXv6IouYlwSz{xCZPDKPgi5oP!7SRv6xg zw{%yKo>qWb-zE3XM$U_u5YYhF2^S-@rNR+8O8^ergGwH=m|6#(9=jJk<@$W~(C zvZNP*A~{JXUXyADF?z*uLiZiEdj+}aghx9B7`LCFC*&gRecrOr1eYUu$ljR7iEEd} z&v!zbFvYGlqz5>(i%*m^Xwj5TGj55gzT50yyzmIbPGV8E9k3 zh8o_YFu*H~$PvG~Qvuy3X?GksY%wtK0BC0c(?1Y|nBlYNN3JRs+fERRr>{h#%IMGn z&JrlH(|Eoj4=GqKUMVt^k?eq5S8!+G1y5;lDr@8labH<=pFsgctur9GV)x>Q1mRmg zB^EXGaLCo&e8gG*h|S1}!`HA<+}_oOOWttTGPns?##j*CUjwAA9~whWNTc-*MoWP* z*xQQdN9R)|e=jVdBpZcL;Lp;`hx1NO@Svx~KJAZ;cCDVbKz*?c0AsX%C~wis&qfyN zg>+lf#8!4l1~U86-<5Tt3+}esOwSlwc)Y0k4KG!rhSGJY;e>hY9ZEYJ)W>@bDnqwC z*|G=J6}mI?KLV7X(4^8AWwzapcmKb zjM5|Ko^d{@6@Tcf;`V34<;B;-hWoH?kR}ZP#izXGjDm~=eyU{!zNl^uX*tel%eP`} z#sF&4&@E%u<45GMw%C94LdCTZhJgJ`}b+Sh?PMlcouoY8mj4K1BGsXe!Q(@C)(znE; zfF}#M5iH?4-5zj0(3TV`xti0D@rzp!{wcfRoDNyYYo2(oin>9|JraXIehqn7bzVtc z*-D{%8R3o#q_qgH&+y9*=!i2t5QW5zu`?2vV!L28`W$+(RkItpoFr{+QeUhN+#Rhr7wSwL1a2YOV~&ZmQ15 zlW}_(?Wlcl>q0rz!5GE}*rBqIJ=*uGg!buXV|_h(#_y^%5+A+h-o^W*B>-IG$iT^X zviApR@FA9P;D6dC@(r6a@2M_2^;PtF_`uH=-L&9nAXYPle=R>dtG(-a9y9 z(g~M-yc5#=>436Ahd7|>>3m2saq+nMBr01no6ybi5neXa;CBI73(bNT__D)5xV@`) zMisz^&x>Qqx_{txF*Xob?}6tzsgJkBugRY=gC2#oRg%9Nu`y+?!vS^pSS-ye{D{i# zIJw#JK8#^%d)aW`t^~5d#z??BxP@xW_=7SK-K21Yw;h!gsO#X&u}!6ligsLwSh(2?KGW1DCjbmt809Rc3P5#aqd zGLkz^YxTo-dKU-qV8?25=`$eHW1CdS@cK~&oSPY#1`O3mfqJhBe@I{ZgO6-S;gVbj z#DQP4vC(vn-#pd0>y1*>!=py6qY z1!^tY!x$C{WXFO_T6nbCq2ogAkS6M>M9)KnbkZ-c&L@zT)**JfJKHK&*^LS>&-R0t`5vzc)b^BL`A;DXHZqmI-9*!w(; zI&j_r4YKf&;AO@!$ubA@)M*X7Ee1#8Z@{7~=Oc%iC;dX}k8!A<=~T_NdBKJ}J$u~= z6?WQxs0azvqm|-B=cb#y#hC?%<=v)Bd@j1 zK{EF9mOj4Zc2C92=i<>De$$B@VrX*H6Uw^YC#_JEKX_3}-C04#jRG|o*saWh+Q~+w z4-neIG&r%Bc(>H(ZE#}BT5=dr+IpvMn9SOs9`pj&=GmYQ$Kk|DkHG5N)>&Q(*xLYH zon}r{$=3M@njK2wHK2}_IGUo>BDSJ4_>@M~yPXo7csJI`Qa&UmVh4De0aXtpq6f@) z);}@ch#XqA+oiqSVJ(^4%OkWk2Vg5@-E!3*o$s1-MaF1Pe~^b{zVJ%`9DTkGhLnI? z?+Acfzo&#jt1w0CO7hemM)F1_E8vC?sp7_gACTgAeY#0x)}6d%nhaBHTT4z)kjYHk z*fV@eJQ)}`0CQ(O$5S2R%s}X4d`3L_jYeS0Ubl909YM+tTpo1AiM`fovuXMhf}3=k zw~T+!WUe=xft@sT$J{Mr$WJ}RU7dIrjXc~5%>_ZW>~~Q4v%}W$mZVbr;fLmon6VRX z5RR@&G(31Te0h*9Bx=*mvq0M1!F|y=$aCc21^K33;OduDxbze-EmnbRlJ_{E zNX*@Rz4>%&Mlu{k&vCPq)4R(nz^PDb0whS!|8LnWVJ(_+nkFH8Xb-a>%?(H|u6 z$G}4ZNeAe0=qY~P0r>}DZ6DEJ@A(TqdG zmj(|wp}yde%qswe3}gqiBQ*aQz*WGo-Ll~YvE-?#X)^A6Msg@L)_^n^bx*T-`elQ9 zauPArKp*ypZYllVV=}&H^q(|P)rpK?K33G4%*dsUCB#ddH!sIt?_oz}tX zWeO*>q49tn@&X?u$w6ignhTKge=y?8BI;eB=w1S9I0GI$9blDVc|>i2bC+4Z-;3(u z^3_Jf)T7zVezwbB^g53GwT6fxTO`OvNxR09KQY?B24iVVaXn+o+-P3w!{oER@dLI9 zzlI{OKQj&gAy`%sH`>k3_ostGX>dU8E*N!>H&M*Hh5La8Bo-NkF_uOoRteCQNdQU-GIp<Bq8<1Xr9i$7fj6Fb4wGJ*DhJa>H zn=1Kf4f&F{j2WJOnd0US<1MqnLV7GGZSm-oVD$P@dJ3y|Uvkc7ec0i(!A>-{WCEZt z3vO=%h^?;a#`UK7Y^3o$Z~6Te?gRd{g|urnGE~66#ip4l>$SqQ!T8u2qs0a%T1G=Z z1`4u%VV>Vj2|(@%SC4396tl>4CLpu9Uro{#(!l){zFjN`#B)& zE6g1WBC3EcF=Bbdh5DXV++9zo=~Ynym-L-LZAN>Ph<3QWPpXL6%V;riy5A&k>ZCO9 z1L6jdFN2f57j@0>V-fvJ1H6UU5>Z4ixQ-llqQs zUo7`wgRzV|apck*2LwN@2bM`P&7+MT2|lL{nsO#oaufHRSWBL2?7IOKdTrivujN+7 zp@*xEKkWbeq2p`58aZw4^YAB&_Ya#lxm5Mn)uF!;_q$hS_q^JANW7~3Py8JFg~7wl zdaUth?``S#f&AFgPYS!uX4hwvvrk%PV6 zAJG@1#O`SYYJ<4ed`K!Gtw)DrFM$21VU=fl5V|cv_KCWuo12;jmsjT^3u7@wi@dN= zBHFF6K{rJfU+ou=CyBVI6QsXeRt4&X55*b$#XD3o zdRlPKCfdM8UiWRD>(M?e<}J43>BGenvs1cwwCx>u%QRUm=3bBoCq{ywT;JZWN^o=A znnu{;9xdS`j|9>U&E3G?aLHh^jeaBF9YE)Rxw z*&y%n&_xSblyzF~Hw7QZl7(L}+A2vl+}f6!3s(jTFb6k1SY|*ruJB=dV#!U@J<}tC zt|1ojp5^N|@fi;8oT4!vIQtElg187nbDhwODn6v3VpGIgGOKxc1Fa|ZLBmuFy_4V; z2JwAqW^|7Y`XSh96*qMyYOrl3dMU|}K{fssG32n}D;VLjVMueUbYL9Tb_=oCfQ&HS z#mBX^LqA~Cwh|E*8fyqpPBnKnUii6r>USx3@MI14HJ0HL+oQT8F!a40@~`48JL*+Y zYssyxDX~L3@Br*xmjkbKv3ygXB7eM_y9$b+n;Rn42rl`${o=6LnC0S~IMJ6?t2SYZ zE_q1&BSxE(Gj=I&$$pII&$UCBH&rF34@}_muG-{==3(C}&+r-f4C-T*U6P4MIY=fW zY~BthcF#f@c%o4il`o#~%JI+1MS3+4`r2e@`MS_gHoFKa;ZhP1m z@wCOX93=T@1^3iRy)hYQRG+1OG1iIjz^vVziC# zOz;WVYe$~{dk(hWB&_Yv#Fkd^5x_SjTz3}r%tZn!S-KCKaqQm=9QwQ2=&$0wz}%WF z*xQZ9^IMF-z7~6;yVsJvw~MeFoh;XHrkAxYaoEJ$h}-6cRlnsel5=o*7V_AcZa=$X zHD~Fxe=QmX>LH5_*9dP+=X}`3=8hDbuf6?r0V(+FknLcb5DywvI z>B&9};QVKC_Y@u`{zlF*ytG0zcS3d9QXrvzD@;7@68x4mcPRB@>lLL_)p zQVn;^4y-*jQiRB*0uf6F-sB=bd3Q%8`8A6^6}OVU;4L4lA-6H&&9;LL$gzAr zWktlocwy6Lo6S;j!X1Ej^&ORLyZ8yizYDq~<#>Mg7&3A@Z|P#g?GLUab7nBwzHg1X zktbddNoL5Sg?@z(SFrC~Siy;+2PJfo@#M@_e(}GHhg}n7Cw>0vOK|xE@TtZzTH!oz zQ8Xrh<10AKTjrSHbGczp{Bk1_|BXxEmAACN3?H6}_2J|ICta*^A~0AlvRUjgJ2XCG zivyB=g(*U^#1FPU>D@p5&lewJidK0@a6lHK=qG)ehdeXt=3~1x#2rE>KWoGW{>dtT zXzq4hY#!*Hq!I^uvH6(0b5~3O=qJCu6Y>wo+$%o7+`I1LN#=U>HJYu-`S2vHQvY^grF{gYrZv(LdoM!5i$CPw(ebc$JmJ7bzSN z(gK@CQgwFh+H-Z^kcV^!6D2u6r7{m$71}EdoBK-@_gdt~2H??%EFceb9dBu?G9R>Z zs8Iyf9yZ84;>(iRe0}ZgElJ@gU?{=?J$UD*{Hi^GUk-cpnaebr(D3MBCzM|BpQh*G zTsWr$c+kwNTi!C-LBGO@(qcTnlMTuWl>k37T}j5}A(xz?NklJzi+ifL@A(mB^nx|P zJ}c18omY!jYWW`3#Z?370_+6Qy6jMG5tuK0_1RS!d0-z<;B%hc8++3$|J&hA3;|Un5PtLqO`P&!>(POIM`_5$D(>>HJ}mX$@mxCUA7uRM zooaLcB%*PenyAeZ(L7{>Iqe=`;<};h$O#am)lA_ny;nz!VI(|LcH`A8%Buf~(CuHg zD9p{d{vDZZXz$UcJ#3m7=S*GfSBC(^|GBw|uDDi##}%>w8wC4eM$E?!QasupibO5B!>%qj6ms*;UQQB3Syp4w!GUOS`8 zm;*Psoh$grw!x?S;?ZZx7d;YSVOf=HlD?_W8uC(tY~)SxJrquUEqudU*4prK13*Ie zo=}&KD0cCYVQS5!qjTzBU^?Ky#f>U~lJ}_Q{%CGfn&eD3J5+a)5msymv1Wr7%zYk$ zx!2#p^FvpWOCwx*)=29IGLk#^IH`{MXEZhd?1&uDd`yrnB2FY!{d?>aBvIrf61SgW zv;)pH1*OgH$%tJ5mpP_3`6iy^h(rLcWe0sv~FoM z^~(eNBUO+UV;Jp{1Om7K&2q=0!~`a+*HZb=t&SXrAhZ< z{xb`(KOk2&`-XW@$>vOoI}UpXR3?wa#3P=;ohMB6cGo|Xu%kSZ0jN+)uXKnRkVHt& z(Qm2Ldi2%*J=mFe4=C1Sm;Sqw+1Hw9Un>sTpuRi#kTv4w(xS_-x9{#|L;T7Q#{^v- zlfRnF^RwyZDTHp3U2*sUo9Sni-7&@Iz{<67K*kk7-yh)G-yP5!r?uxZ@%o6IBr_3@ zhG}}*AbkLS&kTL8KA3LCIQ<`>O3f4xMTc(1+&$-DiapQpMdzCLkw_yl=kn;Rr}!;K zyK~|A!xbFao43f0z&nGPj!%YbM!t7*qfl95g*fwCR6bU-hZ7zGTbpu`~q6E+H0#tl&Hqy(8E#5+4jDGiP4ps$mXDx8{#EGt~ekdc^ z4wnNrnHGsDJiZTO$q8$0P`f{zP&Z|x>Dv)wK^#Jn*!?8JxEu}d=1`MR0cRp~KZz;T zJlOj5{pKFohzgj$zgrr_>rqo;$!AZ6I~&EUFf1kLqYZM5a40c%m<6BVOSXa^WcVQ~ zTiB5xfVG%9me4EhkQ!8?+FV4nrbO5ApYN0F$6I~?1qp4Hh44F@XK=U?Slf@cwUgVW zC(H=ooUL~Qp>IrSw?P*1Y~}>bMS=tWfy_hn;-JrqBPm**~Y6>mrVc8$Mw4ru~8RH>S0e zHpW{ASoiSa#^3^AwZ@E|KZ{-sKHmq}zuHS#isaN6SjNVpxhn;K$SU&6r+i4puMfRK zWF*$M&Xg1Xb2vu+#h^h}X{1>t2*KNw76uELQ6y*fFxq(_u%F?Qc24d;1O_ko-w5om zEj7iNE_|uG*mU4E;Fp0tfyf-^Blk2)1z4nX~GJ z9m|5QbJd)S#X4{PcRuy?7EPoR(oN(ei{RGwRM`+r@oP51KlEtZR56*)abMd4aqKvy z1YZOy=WMmyr_gkCu{%6Px*ik?X%ejLP*5xFK0;uXYdsPJoHN-D%)R@lGGdw$`2fc{%xpLEkZ% z8~-_KscvcfZ}|1cWBe7(7R?B{KG}eVR}$2ZG1c6n!5T8#i(cv>>8GLZW2-liPQ6Hi%o#P0iLQHzA4*?*cUeb~XTG(B0p z`}N7$rJqfl!?W2)u3!G&iAxVJ*v)8(TsX0q#9O-bcnfFha|XQVt$r#2wQ9|2tAH_5 zj|3X8_&Da#Y@1o+ z82|WQn=akCp}*Yg(8W%CwB$<99iRSQ@pDyrR)hYdC28LZBkh)JT;Zg$Bs#GSnG!mYr@6$5o$DWYebN%R(xq?o!ESt9=MmVZ0&c!w*6?W1 zsCoSLdrXGP-celZ(LtQjv)d>Lea~ut%fjv#$p_p(&hXNg2f7y^BYOForhaK&Y1CZ} z1ozyKW~WllNnysix99*4>$eU)YN7Weu@b_MmpkNCL@}qw+%GO+8SH@%oRGD2_A|J= zjGHW2!VX}HPMewu4o*B$hx_h}-y{;6zpMv_hR0u!oi#u@EhDd8znzwrhjdAvRYlL)4C0FA9UBnD^OlHXU)tV z6k0@CV;rnf^P+&8LFjHs=fAh0b8^jW=Pa9f2e(ZXm}# zN6&Nks05kQ7iwY86?W?A!BhVdVmx2!fPi$>y!gu`>_%my1WSY-Q}iz3E@AHeFW|(J zm0&rW$)!6fXwL+}(yfgUd5o^K!{pi-3tv;h=$+<+AHT=yS>0b4OHrn;1d%hyMYI8>4P5vw&HZ=j0V(m?X*>XeWQz0xbh^wMYZh@2Os4~_1|G7cSGA3Aje)hqblH> zqg0)FYj7f`2rnQCW^F(XpL1bW>cUDH*=&8_6dyM%Q%HuH$NwHWF-vReG|Mhbe) z)IRqIL!aSE8dlpO8oRFqK`8l}*!LbA@Q6N4KvSm%U4tsQaZ`g6KXr3w#4Lo@sA$bE z6tv*1(^}(EZ7wgA@4tcIU$EM5ldoL|8S=uKg}DtNmqxzC&#n>*|74Y&^N7Vy9P)LV z)lsiSnOGH!&qwZm%4+{!&a3G11Q`nA3>&~|6T74RU*hAsZX{2=%12TH>=RUz zbhH*9*RcTED9loAkyUbS$R_=L+HMcsEI!_B%K9qWq4`n3{=n`R%HhtsuKQg@L`iv&HGTqhq`{IlWMGQ@Dq_or>&e2}#}csGTGJFeToaX6FJuG%RznG2 zY3Ph%8eJYxe|wt-!I)-3D`oz9I{p*sDNJJz_6xtvq;> zUQOuwXhv>&&@|^YHy#Kbh_61H2NaZ6=!`;>!rk~~TK@+t!SZX?9>Cn=J$QZ`f%Iau z*B)0{H3kRNA6@kfUI}xB9-MQt$^q+8gNM_9LJREB`*gcQKCBo{98@c+DkvWzKNF6E z`1vS#hAp;^xPi=>!b(OGY5iT2$9{b&eSy_ZN2lGUw^LDYkmdB>v04l)JK>GWFqIx_ zW3^+{4=NzzQo*v>0xwvyWC2R zeXk1dD-r2^2+^(<1O!Mi7}O`ziIlY#r*LwgSGZSS3UZMtHoxXVuIPQQKao?3`j0P41u^1vvvJHX){f)#r!}T`{ZWt=a8?;Zwhb^jJn&KZ?@{|3rI5 zcpYSvsiQatSG>1y_V4ZJP3x2zR?CTW^cAXPwlN?EFa^Nl3ao6$OXMMH`o~8sGxj~E ztkm$|R1ljRky1GIG=o`0Z(!)Lgq+?i zcq>n*paPJLuI}hHqa4aWO@Dcb@7wGnc9T_KWs0^%pDm&bR@v2=c=-w{_lccoTa^==*{m zJ9%+0MQ;PU#g65)3yx(Mw+l>IW{pOCut4=E8gLNEf=6NGq}3D@4g$w$3^gUcfrn@U zR@D|AmkL+6TaS~pmGyw^qMcjRKi?51)M z)!d%JhXN4T&QAmI^;3r#JOUY72||z0SBgACbWy3#a~RrbRNF@e5($jb?GFwsde zeEm)na!9)&T~)_8UdAh(MwBoP5AgV>wAVhn@$(0ZbwCuc69lg(j547o7nPY+E+zkX zL_sab(ST{s0Ei6;B}aWlMNa@Ghqym$7lfw12q*Luw*3c z2Zlu=q;1_R9>YK^qO@oLp~p6B#J+QFvd7cOwH7$WbfX1%!36FnHZ)L-HZBuaRR=ey z%Wa~UGI2Ba_!1g0sSe9@l#&gHspw1my=Z>O5bw8v(FwGh-6}9kPbqI=N2FG#7woQS zF&wlHA|Q5+z~;1l!LY41(PMZ>xyb3DR5+)nVqgS)htX}Sk&p)H*yIj7v6b_d?A0u$ zBN^r5E(!WFfrSGzXb+)9rbEQw<57cbia7U@wRpOi$)iey@}JcxGDz( zSr^6V!#HFG;_<^vbKO51Fy(;|;gvR>b7*7O|6<1sGOisZoE4*&hmpV7oHntCJ~Dy#(Ezt=tY8qQ8)|@C z{!TomeVjuCULHzrtjZLJG6PzWR>t8eT`Gnn&M z!96m^3PG^SKZlyqf#OOI!voXA_CD1}GMf9GnV}#CHgYSYh^2@yR>MwFux}Z+XrgAH zeabtLISI`TB7+VaqMbOMdy-%k1*i7H#p*r=XsHlrla40it-*6}*Je)5syjLzJ?zFj z30YOa0Mf1dejmOhoSa_Hk{}Ha*^lN16A9_6h4Q!zv4OF=G1!i-oc6X}yXhglp;R?P zd0?7Nrm`+C4+0v=`59GmFaqCkTt{2Kw;R1o>~9lS9U$1T8nMHyLnZ_W8K?m(3m<tq6zuaI{N~c z?PFQZ`|L%#$&7TBTz)oFTy&_wIg!Ej*cG7LL5jmWeNo{~DNT1TD1T>mqv06+5@rKo zn*iIL<<%4KnSH)OU0b+89`*ry=mg%)ynyAL;eXRtPYMz6OUt*u6Mr>QX*r0TaPJ}A@=djTm**>6#p+ENh1<<*8|w; z6-e}87F|J2SEFga2h9R0FAvsAQ&PEA53K4OIyQ?v0@Ud=#b{HexPd{JhaespZDEue z!QdeBcTdlioVS4JO+jb>$tY*OgnK-s0WGc6!NnEKvNr4~Ey;q)ZBC8a;l)y6cRtSg zyk~m=A8wJxnlUAKW8M%0bPA-~en2!_DWZRv7PGBAi==1%xA`cO3MCB>gN4A!f;DLF zcCW!L){;l&z_EDTcBPYvU1G^T7(us6g{OAls?L)Xw`=cz7moHJm%i#)aM;NzU zPEKs*oTn+o61u>_K6~DKHXmHjG!~sALrSDx$r)ms-bdwBi;D-`wla&xbKX*16JL$o zg#9Ts7_Cc0Wm$Glg!anRt6C`^l~p_O2oZOKuW1cI$i`XI2cYDQChk4s_8xNty0Z6X zE~-o(k|~~X*XFycn#Y@-1=OZe3dy%81^E7)Vf`aOgqoy?{(WDP&Hjc|2dyB`K zvr>MRM3wBb>2~K$Y>*wBZ$VR>6=072foAtw!0DV{c1{T+ZB@AVAG|<%_ogd&nS026afGWWm+^?F;j3Rh+Oa@o;F_f`$#n4lf) z4LqyZIuyYEt%GR5D=ANW{-Hb|+-a~YDvD}6UQFtj0&g<`iXee}t1aeclkEk&$&Usdq@_-Z6nUY`hNj{Q_P;1R*{z=mTwnkJ!u! z5^_>l7kE9k+D8SF`~Jy!A1gfUizE<3q{4h#_RwlJpHdzjqe#hbM}aW+%CUhk2qKwS z$5=x^T$mk!Yko7RwVokDpdm|-qb}!Y1PI)I%jI4MsI$Shky|o?2mFDXaMk2HREd$e zeUe|nh}Y4RIostypP9MU?&*0#+KcVNY>`VmGQKU(+y^@nb}Wvd#$3Nom#ZlRTiY7vl*z%POW}V zsYQZAO^hIyj>Xx@YAcw$q1w%-rQ%gMTbr(eHgmegCs0%0XHI>9{ei$*|1%dAO~W0G zd&(2WF;E%;-13GkyDpP1X%`6aYYcY|UHA~6HG7fuH;O&MN19f*hBHqM5LW_1Xp2Jw zwr)rUpf_U?GjffbMd*pMC~kKfII`!DkijCL7Z9Y>NY@>jUCM zvlL+4#s-j9TrF zS*+*AC@w#4x86NWfcH<42}8--dka(}zEI0V09!*I!}B94Cl39CD3A()ElvIxXL$f~ zI!jan0bw*J<5?rZ$p<0Am0VOJ&4wGGfna1O>*3-Zq+vmvkRbIuW_f0Dse(uJL?A`} zd`=Jax5<7zMU=vvw*^;y2c(UO{ejaJ|Am?ovMmeV!99#>lX;N@9H>TGvWqC7pa%`c zN#Tf30B8grfIhX>I?zS-xqkSAhUH}#Lf5eke)0B@`cPjc%{ySdfa^R3XZZvapPE zP;yc@@2PIFy5C=XV1Z&F*>>#DWpnfN$|x*^syT@ry{myumLLl ziPM2dzvCuX_@B_~;(Khf7AV1#rxxqVsS46Ba)RRQgK>^Fr%>XQ1wGn?3_x!-As}Tv zk&r#(gdkCm0>C#ioV=Z5fq`2br65I%0aAdtV{Vuo`*~lRJo7vt>=#w+*c~?6lNz>l zU?II2S2>0wB^jcU-Q-4a;Y;UC2EjLFFM!rMptEDNA#)3s`Rz3;E2Ob4nnPvTmL^1~ zxIA@W1J5{8bRh*x!LU<=M2wg={Zbday8`Q3h3h zpC0mULw4MUiR@t`ua>(&%XOdK_j9{V)~k|T&nRmF6ApR|`%g(}GeD{gG~nwna@5i= z^5+e`43Ky(GOh~Ccd1n-KBW&N_+VDRN9ixZ$mxSMtUs_Y4+RoS(m50t0^Fh>4Y#CS zMSBGkOAXLvpqN$%qemGmzXd%;B$UZ=>a@Zj&b#Fhqwdv?KQo#c>pu`gay^OycHd9K zdfR6MU-Je6@GOA8b?=-`WQu2*9S@?tp0hyJ91Xt^SSNFC0}@6xHU(J%PiEuCkw(O36u+Cq>i>NI2a4F}%8pOZkO! z$jB-;F{>>pmnrul?bc&@k+~Up)LB#(6u5_R9BN-)9=s)!hW^D^&WkB%4w&E?r;am} z8i0|05~q{U@cbeMBz#8hD&5`TvOy9~k9GK$v;Y**E$UU-@St4Tm>shLS@9hKbaw{Vck1`nYd&#YP3WxVb$OiRY1Ha6CpT!OY3k8g_p88}oF^M6B z;Mx4%NieCj6PR_O4=Y{0&&X09Wp3SQ80+R$rj)4Nzj6)j0=F?VG{h z1|<>?tU^wpxn^z12S$krrtN$&+xMtqhlF07unY#VIb)zY=iR@00r2&)!Jen1EolD= z)?=FD*!t+cw$9a8(cC|w?eaVdN(F;?LhyBBSUEcp$AO!86vIOZQRj;+k>n$;q|7#X znTd@(OVR`X1zE0LkhQ)hWJW8LH2?)@blaw`#PW-+ED(PJaEx`p3?7G(--f5zTk(;6z9zn0P&(>A) zX=u(>Mwz{!Ugl{RP5x;8Y9T!oq|{KkVwgtMNT=!w9`w8M0BFvkI ztH$s#`LvYw0^x6Z16G^Wa2ySgztW0s;Np&mUVs}xOrtk5%B%3$Ffu|Py#OTU0Vw^W z0orSWsm|Gt%0vrhO?R^U)-lQFt+ID@TJm~^H~=KK)mk)QN(2A3j-HR(@cOQ8X?$AB zG%6^RPC7>rL4fRL*+ltP-(`By_!ceP|=&vfZ9&<4P0Enf{41U zi>PqM@kiXN9UXs~sNeIY+!S*CKgvzVJpL{>rG5p31(4})pEFADdE4f3Dt9H1QIo%5 zlz$gSrHy0JMkxq51V}~20Hc~fIu8d*cyS)w@>IjerpqrWXrW-*Ihtw+Zsc6Dt;;{~ z6m_JFqDF#fDS5_N&lwpvhA*+1Kr$Nq9xF5KYaIqC>gIg$FP!eqew3Hzw&6gcm&xu= zXwY6`kS3zY$e&MiSwjYD>fV6O z+?g(p+UfFB4lsa#awhOd>G`01oE-}=YHk-sc_=yfONGgear`VT3G@O1q&P%|Y}N48 zL%B8M#aMob5UN!PeTV|1 z6u85d9i2<}Xhx0a#8}VPPS{(vU|$K$>>1ehK?$j!pg6ZO99@ z99MaPSy2Hfo$rs7RIotS57FIU3$lO_w{G2!Pd>gf!^o9)3oZ%Lkv8!%09t_`>H*l)6l>Fl=F24Up z=)@HL{taI?8to=Q(%k-Q+2|Re%2~oVmf9GczXYW}pj;0c_J55W!dF`a_pE1{kZJ}! zRWC0!ijIV=y+%2%%|4|61j+T-JkSDlK zK7M6x%@k`-X~YkAq^o*coa%M|d~h@q9|5FsbqhCWsv_hi&Th8PzW$sR|74#%=>xl& zi(1M{7?rU(`6y~~ZotZ(PyjUtRB-|4t#HwoN>IwhO1Wz@l1P<|c!($G(P5l!87nOj z`JT=cm#3@#LUW5)ZYHBV2HfzX8LNFDX08^f=o+)~kPUmB5*hQ1pW@hQh>&N4vB0A% z=dJ#G5XM2tiKi2eR6<2t2-+lRZR}ym+$kFNIsa0r(aa0-&kvcl+aMStOls1U*`t zSljtK4$W4C+%T(`SkO#dHUD4LAafI64VnQowMQYFutpA0hupy|I*KO6QLk)MA_(DC zTjImAZw(?~1E&z-NI8;Q)L6L$WZklFtJt^A$?>QuS%UYS?Adwn6|#)eiC)4n_}HeR zDE73WTMOR7B#%)5cCEHioc5GO@Bm+5xobursjxC#Y|q%Bwo**v@i)9+C}vlXA`go%qsltv%2u#NxF&Oe_KZJgK0TwO zPfkPbDdqmnwxvmPLg?gKH|zdL4#&rLxPR+T%E*>s_p8`gVA0}c?sbMmumkbf!l;vi zg*N~-M{wTtm6{T`MfwpdyBI+_G+W64D|}vFa<9P`voV3QA6T7-boKOo$8SCv--zg( zZpnE5EiF!0eLh?c$jm)@ivkIQc0lrvr!+4?x`ql_{|FI?;^uD~o?ABZp57!Vx-G-B;*J(P^P?CtIO zeZs{;mozH|8CZXVD6J7WlC7e+z6g?b{uz_}f`)m*@s(tXhb1z~u{Z!Nsn-@p>5CqH zk9BY6*RH0A2qm2NxYp#=R!E1J3{v!7A00WzKIJ`j&#Zn6_-1hvOe zcV2SjV@CP5WA9}x;7`?8jB*@-_#uH(a0O@tXKj}Xt-P^>&q&yk1CM<|FV-)c#G&IJ zW}noIm4FnNf||wxi@Ea(X^;*D%=g#;g-YYX$*Q01%sbJI7B1`h7oyo0pB?v+K{}Ya z+caNZ6MkTHd~HoH#Wg)~@r?I+pTFSLK2uWS8KuwDF3%s8)GP?a%kvp^=_vEdjCOnx zlJtE(eJ3SS7fN1u(r$ggU`kWQSSOq8Xg)oZ)1gOEmmNgN$4?@JGyt9d5RB6?Fm*%T z!NoF)?l1SREvj-M`At*36z=&=T-i6A!&AC@o9_Zd2om~nf-41qSNmt=_LzZ#(0HeF_+ z(+-Vz#xn})!6QtqO>!T-R<@0GurrO?xE!f4yB#&*ssP2pC}MafqkL}WZ@{tUgWe|| zO)8bo@y`%TyK_zLvS}n$h2a&J9I8Se*LZwS^n=ls>i9 zJ|Jz(*X`E+S5cP*;@^;Q47Tnbn2UjfXI)F9)0Zy?(z^CcG<}D0Y?pcjt_??vD`YD| zX2cfjm&KUaIGx$&Jm*xyhI`wK45G(F(a?gxN)UlUBr zYrl2+9~FLoHX@p?e!P6T{%8Au2)ceVu3AtPThoGEL>Cew4+{l z4kv9NfD+pEBa7D62hO8Qr*=&Fh($WoaKcU-W@7x!MSGgKL8$xPcY<8ne*)(nh46Py zbmx15>l(CtJRAc^C7UOeUGuYfQVE^~{6vGA`kS!DVB}6sqdMis9^xbF z5X*SVwD>kqTQr2PULbKLuH?CrMNQvMfC8@P`NFC;ALI!d=zs;O?vrO`c!U<%U zok_<>Jf*i~K}Q-8VdY)QXFuQP-M5i*T+DfQ@Kv9(uK+@JXOyGm`|n$`LKVHT{B}X% z=*hQldRlN!x;pWL90bnEy&~y5=^(w^9VFzW*A!F=+=%5H>0pqjt9duycugbTyEQ3+ z9=WE?Sk<83ZGez@!!47Z_G-`;nAN#pM#n#9tPc!4seFncH$F2!lOMsU#OJmi8Ce|z zPZ#ZHlwQL)@3TeiTRF>Js^mUyU2YVKLK*ejd8w!`u+!s2!5;c%1FpJ+nwDn6sr)zf z!7VTl1y8DZ-6Ud^kLzda*!gyC-Us$Lmp$qs9$%R@Zl@i@%tHh@s2y!&0$-6<=Oe5- znOQW5i;BdPAB+Vly>MWX;Cwx1c@|23!r7IsY24=$hs%*jFQcgNl~fqZSgXIW`}V13 zC9Vqh@^-wqQ+=QNF^brL2)lP#MCRAHSPS51SxYew~812jvo zGsM`j4Dl?5x?#3^8uhDL3nnojm#+ND9=w?ivO8a~$(Eeqd)}UT19dx}(cl@+qRXSq)?gx17_R2j>p1;_PO( zx-~C{{S+d1Iqq!@3 zmjlQ!_45O%xE@;>EEKR-_BXT_LVjvSf0GWZU=Q;}&y<;6Tat!Vu?yzdo%=L%$%){S z9XqA1Ycy8-oOf_)04`c)hz6HG^dxHfHjG@`Z2bT<&sHRcVEZ(28^2S;HED+f%Zh)) z)HP02ea~xx{wDS$8W8;fv#dBzmwF@DU&}+nD2Sd(L5P`A7FmteO#jokpdH_exEyOl z)^oBSim8&U5RNh?HkFAc2V~;OEnHQ7T~rPn4z$FpLN*CadL|)n@70K-8jRoHL;5OQ zrSw$$6oV`!jN*r{vA-%+P+1}yNQ;);;I`r5>PK@r_@rQPC>f*&oUoyb!KT$7cx^Sg&d56O58Pj=IS3y`#I*{>=(TiA5&WV6_3i=Nm0>AY{#E1T@2#r_{Z_w|jp!epwKbvIlqfOx%Z4F+$q$Mejd)E1 zqof{KWPbT9@N^_za6g95CXC}vAL6B7Z#$nFHr?fI**&4fgQp!ny zpA)<85uupc!Bk_5)5S;2vNu<1XTo$&aEPyrZ01w|{M(z6e5z!y1kb-rkl-JYoUVrs zPVJW=*3`;qjbUpz`IiO0pJh@?#oyYo@D{GXXp=R*ur?!JOV2;1yK}gw;_OfMqRs4d z`<$}G5w0)%^XY8{nj;eOTJTFhAij~1AqUA z5mOQ2>U7mAM%h~fa$*=&heZk^$RH~&w!cNGk%ttX3iq?u1grlSWU!2jdW$W_#p{3N zywB6OKvp``7UhAX&D<$Clk#ceD;^-L)&Suh|Fgm`w;jKL23(?v!xZGzlk?siDFHMB z1ltCn5Mn=IC(hJle?GWocKNUN0fyVn1~!n(zIYmS8SqhC3iR746XSN7(Bmu#lvO>5 z-qR!JY12ncnEk+J!d(Onc5cie}3;Ze3Ue<$+cl}%zkt(wB= zt`@`LTM_d1BW95fF5XFgV}O2~*utMJqg5@4JAC1_txIw5tiD?CnQ^6rUAAMx^5AlRGvt z%2Bzr6RwJ|V{sAWCJI?~bVVvRnCe_kixOM)B6ADpW=PEJ4#bo`SQrO}qSrpWZ<=_< z<7%H`IQ3+P*g242c=gl?wVNB%>n&F2Q^ctVabKYKI^y#jIPVEj#EN=gv}XjbAJgJX zHW5HEafbMOoAu~&8ej>mMg#P<*vb&0mq9ko=4AfA$$n%zuP%BtWS?ZzR~cp8ubgiE zJX-h-r|Vt{hc5{we^m>qaKxh|5nOTw<#?PB+S;vuyr3(=OQxp@DoMJBfnB^;5duP@ zB}3e+t9TItpt;-tt>?01sI#=B#d^;j9k|i59nf6AX}D@0g(MQ6)23Oa+s3{`vIXl7gK)g8lWP zW&c~EzYpjAW-)WRvS_EgA>vD+a6UiEO5*H=M z1Dla_fV2o16mND+Mgw|>lK)H<7-S*4v)HkAx$9DUu%ddW`tQ!KnN#`BFDrjP&oj-O zqq8DCQ)~~_h>K=i;NVt?#}&5zI~hx=xWPf;{t~-c5CW8_|uqA z_0~7%K8}mA4d_kvIAlMsPFXE!E8A(#ep|j% zILX%U*s~a94*A@vk6PS|Cay6`n;f{z#&oWW4s!IherrK=oD-!+xFF++8>*dFnq_6 z5AxxNuzs!)snM6rR45JsT8Q9u2SB)ps>dSdNXaZuqk0VEI8a&kiEeb=YR6usv)|g) z5d?D1jQb)U{p-~;hNiRqvzcTNXJ(r)$8JDg7Pq8qifpCF&sx2k^v<-le{S^DQrj9t zwJEp712{Yb*Dz+abY2LTyoLAh`aN`o zd;R+EHb|x6|Qm=~?=;NlxtgDw-EIqia*cwHqs zm-5MhTb_aVz8e>-Z(C)}(xDPB3@D2m>8fHq{P~{o_QDCxn>k#Hw5qotX>KjrnF2*u2E0~~&~0<#Q!k8P%z8Hzb8EBIALaK4ny zRLPk&h{xxNsxb;+vWG1A2ds9g0s5RsvG_y5>$L>WHH5$b<>)(;1eO&Q>}@95C`~%p zh?KX<;6QNIlon5i&NG295U)B~tPt&rG(cV;nU>kq@39H^*k|cz+*9KOTVjSRuN`l0 z%g&JyI}zar&)Y_G)OM>gK<fu(aV8ZrQw>* zI9p76ke`a~0_ zaMcbS-&e)q;{EBWYgXAQ6P5|g!Z-FUn__N7%U}o@ay&nZhAYR-$YPSu5~UR_+`~)6 z%}-`Lf$;p+Vx5soZy0Q6q~wKK+>Dh~Ys6>nG`khT5J45#WZJ})mF&86R*IyzQ9h># zVPzK&+{D-CX;gb{P6(Oxz^J}RMawx|KLhMV8A4=gG#zirF4?X;T;;VXf zU<+~!U6}Uw`6!0ppR(dFv==bG8>}#h(`DwtF~uDHhWA%f`F2l{c<`tPo&Qp(qUI^4VS{c4s<+ zJ;qhytbmwQJh_ICo2yZQzp)Xy&@Ml9tPQ6{`Z&Z9{|{9Y0^Hyu^%BYM~p_uwfD zBFNt>8j+)DZXSJzR&UYs9aD^Y%3P~sxWFG5j{xC%bqa{Qr7)zW5455`Df{piBPg&s zx5-OP?5+ul(gyX6TV|J;ijc(?T#K3p>fmq(kZwz@w^9wCn9(NlfMzajDa@h3fG5iB za-ojC$yXq_+yAaW9Q=0$qSDQ?tQw@?@XPg>C8{ef>N}TzR0rSJsP@@?Pvz74%{Cc0 zbK!y(WEJAESt{%oBK#U~@Hy0U_C6ZWxQndCW|9;{JYkeoN%Ux6wo{!?N1Lq`xayxSAWNtH8<54uXNXT$mw@mR1!DX6AW(Eqw;s>t#0}YZ69?_3 z4^12`1|X2Nt~!%0G^4I(P?!Giv?+(dBuROyq4b<5&{{(n%<=<5?n{3Q<#rCh#pmsf z;gryyP56UJE~F1Ife&9YfrYF*M6XB2+nqnkJT3SpYf%+jFq`uxK|-sSk`0fT=iMvL zj7kw3c-zjVFWW9RgAkRNOAmh;yhXbqu?5*QbX{x{@--Kw!Zlw>gdv9r!9zAz8W3rh zT+S3bkNngr266gsy5|-4XU_ZT+-=)Kgibcu+n_Ox+%t*LwW|;izwA~uwi2L#bVxxb z_E(y4C9<^)Zdp^;wSPN}f-HI;tCY0hwb%qi=pK>}uYTN)-^7>Hus+K;hles(s&PS^ z@j6b|QYC`>Ox7rk3*^?_-z-24u8=(Gm(uGC5{!gv%Jf#O0UV$mq;_s2FTLmz*p4^mv|-`Dgz-b`GL&6g=^%kXho2H%13ozhS>hA0eaS|i!E^4fs2_)KEJ@9zc#Sc z7?ho*QMrD_qQl;bhBhH@+e8(zbPfu%Wfw`vadJ*T;2H-)bR$!oThH}7ikiL)B`?); z`E77MkYEaSmIci$d)lV0*ZRTGL-u;W>LPmQNvb6I0rg;>iIp5DO7m?_>lXlF=LgLF ztHilfbOsubXU1mk^RQ_2^_=VF{&wuJyd;uw6e4Nwf?k|7C+SV>NGTdyCCjr|-C_s` zS1psL?vUry-$j5L%Ha1Nd<|knwvo*=K<#EMgg(_EYxgMCYkOyo?QYjD?^6G_@w#eu z;?MR0LA3CRMkT5GqW--tW?<-@jM53X()JYb_gqvM&XuII38Pr+AH-+p7y>7no&5gp zN%HCHN$R5*9z?IS8!MWSIMn3l%juqJn`G`biDV(o{nRmA&adVK7_uMHILKSUv}k1f zks$G}Hd&EzXBPqdUI52b=p8en)APQ>ruz!{a{`xJe*2{{3 z_txcYK*&F~8O`_rg|JyG%+aVOwznlxqC3~9l3!EsI)dNT5iJCd&6u52pq8DZ!q1elqa65q@rE_TjT?*pS~i@3Raxvr!|)!YF8L2ew^SBJ;HM zQ4-=$X2B6+BE>pwwW>=+%fKgH_RNgVPr=^#zzT*Mm)svqYttQVve-xb9&?G3gZr@RcxDm6_|dz`cOgQe{~us7{AxJ-8P#uO z{D;Kl@7cIm245eGo$t~qa6DV zZh0dmH-ZoH3QoPNPt3T|U86c`?TiOg@zkIV3Du~c{oOy**alx|M)Z9DP~^`zZ`|D< z!!22%gd&ySzUSiE&H51?UdhHYNEqUA>ZRy(E?vx5JhiDHr!{lqL2v=Kl!2O7WTFA? z2svtmO=g!$B6Jbv%Sotd+HJgVBX=^2Ch4=9Fv61xZ)BNh`HK{P}w%OXgSCRRsE$Y?L9#5(HPZ5hG^h9yK$~H1W6z+|JcMY*OfMDOYbs)UMf8PbL@?+4_~Z%BQxC%1(@q5Y|t{ zRom>dt@VKgmDtQN8u1Gg5HBtrX5)B%#eMiLT2X2&de@NnQC`ZZpMVW$-?`d@vB?8ddCHR7rn*XHjF(pEgm~cJVbxYyn?7gD;|{ zEf3`MwhZxr?pzcrWpRyat_=n=mp}-IS^%lW=Qi+?li+U)IZH#QgAtjSj+%USblN*w zqjV9K(T;!+7YFU3d`2r$p4G6srYcs{>Jd*x$dAq3E}(74*(ftMp%~G_sRa^pRNM~NpZs{W---ifqe(F34@(hv2dtc^^@@1vUr&jE+j%{`$MkYcd$Y6Kgn0+Iefr0?r(cbk`n=cPK2yiKtebb% z@uwX*tL>KvK@<`GPH>v=XOwF*CrnB?$ag?; z-u~(6N4aZ+5Lw4}_k`3`v16SSw1WjDcG#EKsb>M6YL@!E$7UWgK*J@RE;Xf5Us7du zu3^V<=n%>$LI7=4AZa%!t+~V@@e7<&ksspkg%hm5wRhmyKd=-t$q>drccJ@||5 zGc0;;Oeo>`PPFSL#a;`w20x`^jmTx9-$Ouc+UVV6!*~jc+sH+6d((CkF(KTDdsl+# z9k%QP(jhHW-AST{>iNYeVq}JR3sutRjY!m6aW;s~HtTZh>dydJPo^Leo1J}=Y!Zj^nErW>P@+;_IL~p!-hh&K)wJDJm z=DG)OeNPix0$;$ZH`(AH`Y$_4Bm{}eFWTS^4|hjKsXaq*b&S$E&q?{7?ct)} z4AA8rjIy|{LspGt{$hYq>KVsovvVW2Bb$2g^=FR)UM$~}+to&GZ(DXq9({#L2IJ5m z>tW{C%+LPH>6*@KN9P(Kb#02~F2263=u#sBCip4sHO;QAZQ)i`Vzn#Nq1|?MDB+&M zkzwF!pTaG7u_i-wbfIp@NiJI>BR)f{I(Tt9yO^^+T!xfvxBAww9sH^Ab3{LlY8azL zj-yE$%rZFKOKpH|`RCf=-a1xbKg=3C*2rB^^WyEc8GmYZX2iO7G_D>C+tDSFyLU-s z<}K^#z(rLW&Av!$pG^b05W zh-H4r5dUM?y>W^ZM5ySbqJ$ z%@o@gvbqHCMXZ9kucaxJ?%i%p+@%L*4r1Dd=T^_Y?I0y~z5 z2Uf{P@6mHTPNSx708&7$zfy8v6)tuj%Q$*%{N;7K;H4;gJ&u}2NC@bU=x^=8RkDy; zjcUj~YZ0TCzG9M7>(xmtqD2FkGl$V1E!+epaZ01Q$O==G2zumgRDY09sp*?D_)Ag0usX|dO$9sp zH%{kF!Qn5$$&4hT?$${AWF;{WB+$MJPYs>-yp2-h>+3WsS&kVc)m;Mjv_|YapK;8y z#w%(XkxHiSq8gv&9YW_*CFZS&zye^XtDWgip)U?Tt6^ri3JG-;EhvHZ|d*%f_pT(7^sic`-K)%_N)78J| zwAb%Nyn7t@6AxthMWa|Bye!^)f#H4(zqHc^SF6-1O6U_n5#FQ+{cl<{14kufELD$$u;>Y2Le%}Cn# z7H!-x3P=L6SuH(iwo`p(66rf!n&s{l!tjaiMk8kN6_sjCpKna?kMC0lS#v*Rof{ClW~_2J|wU%&Tqya+APSPSSX11yHgLj3=FIhG z{uqXwUFL$)CR=Uk+Rc3JMu8 z(~rxQZ%dp^vG-Ce=brH%JVp#$tzLcR2@_b>r969h@ZoJXc)e$y>!0XC8J>r$=rB%T zK1ym6@71f<^DDQx5AgD58kN)rH~h!SZO1S4L}n3(?<*Nfm5fk~oyPRkKOa?G zH?ilLz&{AI+6Urvwvp~|z=V`b)@-#|dV)UF(q=P7IXTvKO^*W2Y(< z?Jt&E&@JQh-vcQk($P-2^vs6DTzV?!ecSNuMPX;UilEHS8sJbRqBXpv($BP57v<5O z^X?oqJ?jZ(WO8!4fyd$n%YRkR+jMZmiy?h`?bs#u zn>KYYG33N=%f0&d9nlxOp#S1Uzpm=m?JK5Rx9(N{=mCDS=I(m_ub$$$%jS0LcJFLI z+vcyqzq^O8@|xF8T{Nn;TelwFe)Il)fmf*a=g*(*cKhf5w?|uB+n4|SAHCpz^4|aX zMu`hHk;LI{qnrMy&e4Q?0S6p&A*@gKOf+~>g(&j*ueYu@Bi~F z|BGRKIfcby>HOE@&6_viCpg`|fAjBiaU2I;uTUt!Pw*S?#{c|+|ML1TPmVe+83r8V zbHu9UtGneLH3csHYm&o>e#f`Wmu30t4+Sjj?egSm#es2;-fvRO&ECHFSyJ_$QR#2j z3oaG?GyK)+T^E@1>}j8n=#dxGX8lySdwKJx`qY&})N7`>-~N5w*^Q3B&5T0_N4y^N zt>-sq?%(-ts6{2c2giW9r^d(PW`SxfC$GVx|^b+3ctA6=n4I)3>< z{*_vp3o3oCpqv`TB!6CT2yK8WFLh#@u z1ef3hC%8*+*WeN$xO>px7CgASYu_gCJ2Us2`R@Aetaa}{)2sVXr@CaHaHd)$YK?Mv5|k^2_F*9;Qk|Lf5Kthgytx{UHzX^#XGq_mrlQ*86I zhy)X8*IG_5=G;DY0D|b2#z#cei6$sh{oKlwUxEn;9Y{Cz`b@BP>L*dAgp-JDA-3GWRHif&i)=x*G!`j}q0Etf2f@ujY-xO##dG%93EXl_ z^*1V0uJ{r(I{Io4oe34iz`Vp|aVlRwqbiEwwwh7EOFc$?7=%J^X@7>{b`YBC zuT`cTN@QN>X^a}8QIa1C2liPCrh*9gP%Jn6l_`${3EX(5`qOfx zGhw)^M5g*}lqorLq)nHhnH_ki`s=f$+g@^?Rd^@YGARWSG=jEq7JVnb)(zgehXT&6 ziehx@*{rndd^SuYw5NNT&MVDN~YyCZJCB?`KQb`4h|?eHo*;2g?&$8Z%Ax3mFaTBo-@Es@eME z%wbu6?Dtw8^Ys4h{rLqqhpi*%amS*V=Zd}r+EvB_cHqQx=L9WU3_fxc#k|gzcJ?9Q z1LsDwCPa$Ov$t zRyEo~RoqkkGv2;9bBLD4mwVIef5yy7V!0u*4qDYGirhFEe~+2{r$75Yj(+kgig}qW ztq6_-#&YAEGUdH!q$iH$#;r1?fJCGxiKVd&IL+D8@8G%5V2fh3l_{&AKu04^_49x} zmxz3DtOKVRvnXcHMKoLwoDiF(Cb&P{R)g;KuIB>h7>?TkYN~${bT#XH;R(>yvVU9+ zkWckvgY)S_;Kn@FpQB9aAs$JD%G>X?}uWKBF#* z0VktZG;&d(x6H&1v?RG*JX|4&K)c!baO2PFRtO+y^!^Ik1v+X)G*S>;tUtoAyVLg@ zko*Z83hA#&#UdXdEH~o7wJaW)j>vsx2znXxEv)4RxH1oOq?f_r3Kzu~WlLwi;NDPt zdsHtP?g=`GP?>T)Tl$F5Y^Le~Tq)k+xUA0Q>kgpX?=JTXk%q6~p3FdtpyGb&B+4mM zwu9Rbmb=PfbI@YslOD-Suqm}85r2YPaB~%AOAAAApCJ~-lQg+eu8=-tRfC41ay#Hn^{)V?Ggav*+-GdyeszFr^j{P^B6Eor z=qKJl`SUjBKa&4`C+a^JdVc$#3q8N3{Lh8{A5{O7JfXXUZ^(nroM>rN_y?G4#r+%R zI5Dbl|0~Qvtby0kADD|-dzbMqVD824f56=T@Z)nT`1A&D?|}OUpr{!L$_Ao~0G~7< zAPcDK2Ci>`-bo-V7s#vzVoQL-Q=si9aDEBQtpep8Ktw)}_zj3J1^hCA%WEM0J5bjP zY##vYyFh9skX;Lm%mK42K+6!&&<{*50?Fk-{}d4N6&Ric%G!X{Z6K-uC};$l27sP% zVD|_(J_CkkfTazfq!rjd22L-4njgUU0+3z>tZV_Jb3kP$aDD}RtplP8fxbzgV+7dT z0~XeSpR+*MC{WV_>>dKYR)K;hpmhisoB^hnfgj_*{2I_T2DA+W%>%&L0sbA@?@*1w zXpyBCH3FZNZt_iLXtOJ+4oB-7vS_Q9L%;s!O|#VRyg4w$dO4yO-ZmJdM;n&XjXi^@ zP$9Ed#9EbTkT@JVwZ`^xe|MWjV~2}Yq)gz9dj0#CmTJ+r&2;WkYQ)DJRv)8YZ>6Ve=e9LYxii{y zw}5H1=(if%?3q|;n?cv^-}#&PO(f2+J|n%{&|hWM;*P5lu1Y2BR-X&rIqV{UpZHXp zoW>>!8$sS%>ICA6f^QBI`{y_Hyq-=`7FAlsrV|Ix6u8+fd~^Sae(i&0XKr4$0=-6T z^sLqg<@z~M)E0?5B>OKsTM!|oeCHtutoG>pn@uIWqxC;&^-rf*%P;pd4vy9F-9A+# zv#OmN*uoq6zh5sDi_Tcp+|3EHnSFtD8hclnmm8F_CdQyJiJB8)#?|xgwKj8?>SPZi zS

e0mQjBjfx+}9<_5fUAg(ouSr#SsLGwkeRv`G)=>yZ8lL^1ByCaS*RX9gB#IR6 zUkob0PP;QPg?tcG#r$Dq5Ox!5+IPnrW zYbs`O#+h&g&DK-@WO!4vs(_#C6VIZZ5Nc(4f#2|@$$Yzv6NG2O0OusmP?RgW2eM&{#Ff?7^8c%08_EAbu zT=VVY{?4lrtW)cgS#zi;zx`ejh*n+;Bi@E_0g)FvMl{$ie9C#HC5+Y;Ug3Dx_XcJ} z_qS?2{^}4AHSaehzNfiI%8+4uZ;7Le&|ssAv&{WG&uKUcEGy=g{NQq{oL7(N>O@}` z=c}lQRgA24*o38oZh~z8b>|p5UDcjzA0Xg3(keeTqQai#Q%R?Q@Xub;rK3$J}gd=bne&_Z_v8D;AbQU&X( z;wdXQBdi}LWxTMtE%`kd34dQTf)X3plC+QaWa`f^hG6B!R{fr`3Q3v#we1EOe?ECt zP38Spe24EVv(0cT6w`T8hn==66r67qPCxuYElKX1zFSB-K|WOuc4BZw%U@cPV29^z z$_cjHLB|cdCNF$cC0MiBgc-waq(cBYH&Nlo}8NbJvkZu2YEKAjbp+8$@xYQ@uW9 ze|yUB@6I6Cmy$j)g-3m4tfG|P10B@It?rO8zm59opdc|V)g8|Fs0l%!gZ+DfDy?l; z=SWBXiK?1Qagr;_5wspN>FShy$v1mQ8offxJ*6!?MFln1?=U0L<;65V2v#P7@kG@e zRk*p$gI3`e^nBFca2rW;%VZ%rc9`PGk)vY2Pi1Q>j>&lGKffsU0q#}& zS#f$!0U?KMxjaqBSrma~k)3;t7{PA_<7LzDe2uI4t`hF8HwC^y;b&@fQCzTLs`R&% zE)f_PK#mCv4`e=di)6*C1bPZjzsorInc8si&{l5yhvpGYf} z9C=Y(*@Zu0JhB+KdfPi#uw5t;2pvK%HH*@-_8^CTekPWF#k=G+IA_yll-e9EFF8Fo zJa*C>?NE>w9)a1bCYO@MiK(aaGOnU1@RPi!!z8JDX9;lzYSO0?dBZnfyM53Vz27%X zeMLyX@ZcwN#0j=A>Dp3!!?DrJyO*xDjd(%0h?GTm7$L(EV47%u`rWM}X8{E-ZeYFE7*pljV^mESb1X=0W&4A@awkCT{ z2O86E)=n$PLmrx@WvPL<n&lgg1SnkX59(J#NHHvBOS!CYi=^KnN zzo9K^?yBi|@}Rx9ks4iDS&jMWOHu^OH8omvj7n}69y*(^z8_lTT=BFg!EQG`b#G9m zr&DhmgyS84m>H^9Z5v=MMlcb6Q^Abd;~Lz1y|uCv7p2}?>`n_eYuHMY*ANz-R(LjL zjEVZD^&&@$?|5s&(9}{}@WHv{Y5G=|eV^P+&A$hE>JsT1>$3c^RXOfdaBgH8dv}W3 zrE2PF-S_qdw|oCv552W;tde{0^S49zi>}45+`Qa;W!6wE=WqDB##g4Vr%F{(spr^hFC;79wqR2| zw}eb0_YaKnpZ-7r5E#m)K72?IqyNC~mq>r}J2%E2(m&yM6Yw(p!|$I952gMUzgPax z<#!O+foH|-8Q4Ki2e})BWsufEJO?QrM0F6HLBs~(8U%0<=Rp7m@f_rFkkdiz1&JO6 zXOQAS%m+ap1alDTL0|{*9Heg$>Oq7D=^o^IkkCPL2N@iMbdbKmXkcOOnY%$+2f-ht zbr8%!oCo6rkjlaMAg|$>vO%;Tn+KWtncTsE00eLl-a!%v;T`09FgO5%01&`I^ahz7 zWPgy~!LS3w@UL}i8GUcTiIn++;Z$fVACW{s438tjI(F@@$U0Xqg~uc6lWg9e&1K8} zvhKvyu9v+iBpvnpoON3FnSof|5jG)v>qX|W(_ob~TN55zlX`nU?87Dl4DiXp|XYkmmCS|gd4M{!3zDl!pZBF4x_b)$bSySUi z*9%ik-sn-?{f50ZFVoCZh7*e?13o$l2DV@YW9^KE$6lI>xu*`nStNA*{2D(Gy!c{` zQ-1yFULjN+2pXq2zSMm2AaP$_?1k)UC48hEwFz`|6RmU*#B4S_+2PpDOI8ESFgG^}> z%d9AAdd#p8Q~l)fBrJ`@gsf!J7#YK5tW;GO3&fPs2yi$hf)aV8b2C~y&%O7}V&uhi z8*DLQ90U;OGDD9^=Cv`roCf)h7GKLzPNYXfQo)^MPLNL+YGfu;SbSnGql`@Le00R3 zUxLs+vj`+(l~m?8t@_aIVH)k+>7d?Z(XjfZWy>eKkSh#5h$C=9p1o6fX7aWDDr~bJ z8Z;2^nPe~SPljtu6lHRzjA-W%zoI;2AI-#JA{yK%BVr#d&0&JZqqUhU*e6yVOP|ot z$wj&u?My%PL7*re<~sQmht!lW2ZC5S*B~A4CXaQfT)aKYAkn2firEk&3!+}a9yXma zZ^Vh{!-+5f7F}S&4;s`>=-?tXe!6}8xG#e7^z)fm0UQlv_6pwp{t`8e@0hb=MaC89 ze5|S*Uc|v+hdB?j{CYW<#4h`|_VQb_7u|=KbW-{-D+Xkw*OLrw%}n`d+AkLG(Q60& zYlz03chd@N<&;^tkj&*%h8k?CB^sCL-*yqOJ&~Jg=FAu1L+$=LGUk}eJELZ+xFSHo zk>k|$T4ai4#0z3*NgYRMB>L9-PO(HpTkmJk5RB=5Jn@;L@!Yk8!nssT%c}~O?b%}X zRYUCd?TEwL+nQt}WcF)A*Qmhr7kXN`3}FW4p>8i@j6{$*Pz9=#YWHW}(Vnw)#ZMaG z?1dUmV|9AIv3UoBgRN*OlHS8T-$o!9FCdh8avgo9j6^Uj|JtZU=!$uV8Z}?Onf{KK zb-8(-UlI0EH9-&FqKTnXkLabXLV=dSEZ?D}nU{$lA0{@HQqG`QpA2bfOkp~ZsvE~)ES7YU8IB_g2{R6DGt zn_?D3d5rp`(vdK&b3##PU1>O_;Ks!_iC2*hy@RsC_3iQeO=SI#&mGvm zpF2Dld$9k9=Z@*0=g#J<3blXn+=00I`?;e`!}QmwM9rj1!}OMcK}1AEnT8QeC{r^k z(J(91u>5sbiJC!$ni0%Yp<_{^1#dCFClyhoWq7Vm3*Ke^yB$_mC0f?!1TC{76`0AW zLi1cpnVLzN3arKS_xaoc6PO9M^X~?LIf~TGDqxS#-7%_AF)KaW0M>nON166dYhat; zT~e?MW@WGuYE~5*hUdn?E@&7P|CD(i3qAd_wP4G1j4FSsE7Jbmm(E;Y2j~HnzeJSn z(sMdI=zFADJHhL2HmwRKQ9F3`(Juz=WoTrs2I|L2Lum@p{*$@N^~QzaJ=K!3D?YqV z>mkXW%|u_&nmyTM_wR<(BPOYX7Zif~xOOYk25vxC*Z%!Eo*Zn`#fBwiFD~0<4$qix za;$G^vAgVX19%q{!A}=O)BHA5-_0Q9J!_f0az%p{(=eiPv@n-xdR>UMmK{5l{JA<; zLT5g{%W7(DQQQRk=T~J0(Oga(`3_h$WA0{yU@6S62-P?QJ`>P&Idb9_QCi`NJ`?Ia z=26;_Jn)~!4{RkceJ6-23FLg6#-S~av?5pF@=kB-vx~(7&2$X84e-CgPiz#2M4-6W zXTKNaV~tTRe`ue@aac``plB1ujU>B>#bATIC2v^3RmwI4lTYH zg(POo=P0R1=EOsp!hq_zA@S<1Pi429f?it}e1c>HCe>+Sy&;>%xcvP)H*W{87Naqud(~c;NOWFBMYDmggewp9AeZj32qhZM}xB?+mWw>wQnMHi+;ker-u(6!Z>A#YQ zAquxML~x;H3Pm9Av)@&wJaqS60Rn*bSV~!c1$7@;BB(`PdcGkB`uwjm+Pe=o=T(S8 zOhY)zKkU03tiSgiAI2fpKiPN2;Pvs(zALree)%u<-M|0yy@Zycn2w@=f~bm{yM}|U zn1=M!z#K^Q?iUp=q#`|gXVbyUd-}od)X4tA*zv*CqmYKUfRZSmlBkT>$Q zrka`l>VwmrxyPxVbukUu^#>=w&inSg(}9uArIq`gqfftx*u`Dp*cBmdrOTVDUex#=()NKo!84azc zJ=CXP2v3u6cl|gIXEfK>&Nnxf_gDN6m+a>cEoYv-YewcrHqN)#npbx*^V<3g?>{_7 z#*Qi~Jp@J`yLmmj2M^22O~@-gEhF5x`(IwC-d?Dj-&bAT1?|{5UbLW}Ie08a<4*bD z9n}!tkJH?4%RH=-++9iEght+ned*947_!Cd&?Xr5WVl^anu}t1m?k;t6}g=kzTURJ z-{%~A{RVY?;(3qR{P_faPgMznqz(y#|C-iT$=LR3^Uj&aJshpK=YiDfQT+UrbEh;l z(myPUb*TDAYqI<0iB!(b`+K*WrLq~8--+{nDY^2fTlhbt_S7EIZ<>YXT3xSqr*gR`URkr(y=J;^=u&s5; ze@Q4=&h+S-mGe5~`1tYNsv_A~d;wQJ{hLSc{ZiJ}mYMy?f|HB+PsBX7&L4kOI$t2M zj&|xYfBVK=j>UTsaZ6)DlacDD=W8Y zcP(9ixg6pfH7MeBHrj1Uw&7a>EkDY?+>b@r>j{gaqox5o7Ug`UU`5rO*Rd_%4&O=M zRTW+u>DBQ_Y~(3xC-HR2R8O_N@EjBftE;aIEcZ=J47?l+HC;A;99Ivdo3>^qJ(oV{ zSK^j|c7zN5k~)~<@WPB?L09N@G^v(HA|VszQ$<}%$*D&~aZ%C7Hr}FMjqkejUw%7c zv67PZLu?1nJD|a`AtU1wq}n2tI5wCcE;RGdY;6pz_f=O_pP!%0!K#%I_&Pp4Bm)_ee;thyqkQJ|x^d{qVL|a4|TC{jKs=dsZpNA`5 z*|vqpwZ7%&zGO>COSdl zl#frwXI{dF;T*rXLJmSSKH*}(!~5}3P-#O-TV`4Xx3|c{XciEL z!hyI|HRd1Its$CcFB%k~DrohcYn7^A^uyx5F{LWA=f z33{py4OOQ}4&`Gp%lwR*;x9%SIY))P7GzV^7V;kyih1HnOZqpq?l&XZ? zE6*#mov)z}wj;Y(-$c5Tlz?M-LY(O@5m%y4h?gIH`1?!PNtdbp0( zuV|}+)%opsC@9uCUi^&V41t=QlEp(+(toM%Z1$^p!fF=tYc4rvFvnEEi@-LKr8$;+ z*L$m3iBW0@np9cL(daEpgvS#ugK$^9W)d76g4AeHIZUNIa_Mg`1*|8cxsJr^`UPBg z{2`G-a^r*MYnO#LyW=i%rEZ+%5er16V}cqjxDEI4TSE>%P(@cK)!6y<_}&;k_akza*%pE+5f|BDDv3FqWV!xWpa!- zLffF{{&i@`3QVPwUTnBqB{WWz{tF*n7k=7Ply zT71akwVDyolxotB_JPYal-0;GduEzB3kPe4mIR9_AE>b+^oH$IbQNA3?d{Ou&7~gH zpuLIP6*0Oy7w-&7YMaJ z8S`?WFsy3Cm3T=`L{q3%r_O{`6wZ1Eh(V*C$f4D z=boc7#=lCc(mxkgp=B}=5(Fc|=kCB)uor<>rb4ew_;}34__bKrK8o`x{}tUm2W-!Q z**h+drG{9r;s-u%RXQd^K5iraS71piasH1I0(P=O)>3@tB0Sa-{9qX?Nq#$N&<1{6 z89@yuR`68*6IlLb!+UNnT~5vqyj=RvuiQ4$0*0@+)ESuHadTLT^V!M@YO=6dOAA_x z@qx7f08pW22HRAnV^(Ki(PifV$M}}T_{A$P4SRvxA122=X|-7Isw@eapxKn&G7(5uh*Q zq#)v}BLxo4OqkbAMJ&ib7WB+#P03GhMAR5q)EQYcm{~QMSwoHFKtH=Ei3Yxx0j&-G zAg4;tti#5x$;<{kJ%RHQVkj4GB5y9jYaz-94#Z7W%u<}+T~#d1Sl&}z0-POtIUyS< z0nmFM>f-+TGJd+!LGNWBA09!Un2GSZtBLEdbKKwE-QL{z>q)CIusuCKf)fY&$4r>t zR!-9EouQ=|KWLSghNPo{xRavP&ickkSNBILVW&4D*O!-*{R0p84>}yL%q3;pE35oX zEDpA}-|+~zs7Se}$T+-_b$BgpBO~slBztyz(o*)#SVS^AG{R6&w5z(dJS|g;l`G7~ z{&08CQe4Om3|>VAUA6Sq78V_p)J_f$=f@|OXMfEOk1S43{Tdzf)04546>-ykSCy4> zaeCHNTx$15DgR5%*6&p}ZQYnpZUZf?F3J)Hd?HS2ngcCuMR5t~0YL?^@pg)8E*jb; z2}wWd8;=hTjLZXA!HuE&2R&!iw(yWo;Lu(W%au`z(asldI~th8t(a9w)+};Ov^Q8O z`eVD_4OQtdQ7RlaL}ut*+>SzamF+iQZbf`O*=#pWdT!{Sm9+ze+9EH`S=_+APdnd#td2cs-vIcO35h^ET7b z=S1oA@%iHY^7R{GlwfQ|jWVt8hCjmoBp%!QJua)@yf@a5kI%>M^4nY%6;HauXYC5D zCg+1^m>Y;U+#HYH0`?`(aVxHzINiH@XB$_FYKOKO(OV4$^cQWX(}S0`K40n_c~380 zH}_rne{lfdhTpHjo`)Yf{_cUlU>B5WL0uOZoi%!uyS{h(MEIEH`H*O|d2F00 zaePr6=k*Qho3)ojVSe>4$;v0zds$$hE+{rOHfW~pbP{Fx*f9D?AZ?f!-@Uz-3gRt? z-Ps}xToatp0IS2VCF1wQmbt$~Z3VavemOhh?KQ!mc#R0$Zz~-h`1k}}D}CaIs#+Uox2k8FCxw~5DJLT+W^vB+`d7qCXZd>cq>Y~PsunWa zaLAm$XVbf9$65`_;E2BTLD6Kjh&R~X^d6gah%_+Rx%V%=u3jSvq4}!O>Hii!SR{S5 zrFPpr`+Pm)-E@-bK{8%X>`Hdj$SFSe@%;h(=>d(=VwTAK?94p>n2*eBx&0eEcJJfmR>j|6#_+3#=;n2^ z;iE;#$XMZ6uNL{;cUNdd4!gPa_`Rv3uaPerxqd%|z?QtLK%IEm|K%Mk8vGZ}amVv+ zLZ0#^ey59x9B<_J*>~dzp5OOBDxsbrIA4mzSE<|>o(y?s-ZvE%wtGKp-86<%`qnM| zZt&qQ?>>g+NF5o$na{^4Q9n7B-A+*w7U1S`ve|j~Q7twWD!71@y5ttF7gPbob@R43 zfLxNVC>kw6K7rHWaqWHk&Ctq-=jE4}k7dIfOa>pTnZ>G{B+($PqluxN#GtW-y)~}N>+h|)(hX0LHWGjT zK9PfggX@M2>xmX+Uwc~#We1(@QF5X-x3bRh0LKRdvsU>vqq8#-0RchaKwj270K4WO z0K)V)Wx-CImv{aCiDBgu2GKJ7@0%Ot=C$?p4=|C@5Llvm$`GE|oifogY2(-B-S5K@ z84*$7Mo)7F1_s8-ke~c!Dbrc+S&2^kZM=We%}wVUdfv3<`PoK)FbtYt&3im9Z+HanszdsH z)@G!3Tu({?iA=b~vopl6<>hA%MrtHf+22>Yb8ZZO-BWp#oE}_Im%pDw(2XOXB^Y94 zN^EGbl()A}MEq^V?qjSVlAcUEr!+36cf_Bxs@vs4M)*-vYpujeK8}K(ntEEjPrGR_ zGUQ8?^fgwdI*Ch0>+x07ldt`K#ahgg`jes_cl2;*DB@R1&Xd;&?FgrM!ltA+30Aoa z^(}Cbj2oCag!O{*3qKXns>W z%%4y9ItCA+wt{ZfaIT}b&W{!YkJ!I@b|naeUi+!!N{ee9()K2ulv3aV%pYRpd8>P}LH%x+3t#pKJ5 zF4VIUxIDyP!lR~UVZG-P-!ssg{Wut(r@cP~>rdXgY@l4P1hI@2z7=EhJtC^L`Mtl; zml^sy_ofx(GErW3mN>2Hpu3B%uCA)C3n%}k5r&vgvl<^ZDPLRl_Vz9l3!yhrzW9b4 zm+29El_bu1{c9D&s<}zH^&@UcSy|EJehW# zQ~Qv@x)wl-E3q;yT)slQ*}dEg<MV{*hk%h85QVZ;UbD)ThsRXo9BTck>IBfqIFh zH^cHVJHNjB!z~NgugN>medOsEqBZ8j{1~-eC(Fd|bRRGuEex~r7QVCowK4s7wnHD} zlVz`Q=Nm61q0`eV%ErR}iFxG9yq)IndnWK%5U$JzS0W)OE!Qf?CVVic;qF1-S>GQ6 z#1?!4#HYVb0|SHP8g@k2WLjG_Iez9`?(!9qlIb9 z+84AB&?y||dNIlB*7SXG*p^Qbtid1LD*QG+xt7TLh`jKthVe40@IR$;sOj|LSpCi% zA)Bg)0snZx1QCsSzI#vl9e891!*?r=;#P5n!Zk6 zE_K+s!0IdMeP}ZYy?glulxLfwCQMl5w~{IP^V3(H15b0Ti+5a~@<|)z{NnAx1FVRo zQE(es3@Th5{XIx2J=|>cFFn6fB*5F8)Db!*o$eOC8eMOA|BmqUdHPCejA=E#NOSy* zXz4ds!|Hn6?NZMH$!zZtu$zj69zIaq}kz zK)8K6euR8+4~-0aV7>}}zO_P5lR1ZrO5(#J)}xv{c6sV>Bh*fbE*-r6vtl>*VaE;4 zi%^b^VN&!}Oq-dq0IsID>tF5fHv9_Zb3 z2neK`zrJ35kQS<`=7Q6g1s@hBzhr6u?S7_7{hOk-enD+5zkY#p0VnaOld1TX7bSvR zM{;yzd~5(!usI~OJQO)n2tP}0MrI0Nb@bSp9ev$3aTj~>^H>+-f(VtC^r&^kR`xjZ%>n=~f1-q)*B zVXVGZf3MbF`eCW=Tp(40bg}A8)2Hg;kr`Lf^Y(V6n|tGYw6H1Z>84((uI$@PL(9W7 z+?(wvQcUJ|$lFRs`YQTdrLP`}ch3mMStptz7n0NwMhJ1A?4NE_$HSEmo3k{C%pPUD z=d>x^W9D6Q{CG9%kAKm-pYqoomJXhL)OytMmnEAfX7GN~+IT;x8WTN#E3fUQc-ThH zgu0i{Y_hI>mX_-wxjD94KRD&3QE~qx>uptsx63!8#_KZyk;0^~0dFa-m#cUFzeO39 z%C$X3sV0?~f&=o=S(#K90*{JiK5ImUuD)Rs3;khu#?ooaxu!vI99Ai@@>CtJ$eT@$ zrFIe<_CwWGF7E`lSTf>$z{jHr3@(M&SIjdIvdZuwPL`JP#Z&YNfjq_PaIEwcYwaoP zaKzXcyA|P`F|t|&H^1fS4f|F0$Xb+7w(n(wl|Rxr92m{_2mWjs#f=JR_mE`_35<#^ z^52tVmW6shIbrE9CfZyvDTm&U6>DDM)4a4Ah|yU=?1+eoWD(sJ!BJPI6RDvgojd-q z?WLYhBT+V+I`!v8fi80Ea@|T=GPI!Je0Bm|-<)s5t2fKz+jbYXk6_?S4pk=Cm`-JY zkmjl>>f-vzm%R%DJ@Z|*?-%5(<>UH=;IG+|kZl+$U&))>N5^5+TXkwxbvTqEofkHn zx3bXTV^raGVFkZ^>tzqHco7>t%EKO`;9mIYd}}xqE=RH^{|D+ght)J1-Gy*wR+B}e zUG2ry1AcHpwt7kJ{JV9L1s^zZ%(Er&*wrawp3-ubtNV=Ik&kWr;mtnOlc=1v5RAs-uC_<&)?DnfN@I;%tXv9KK#8pwz86_qj8A&!ZPx`-oE-CU}t z{rb6INOa9HL|>fcfb{1&ax5e|#1at+T&5NeEKNp~B&-K)2Hk9j&&&6UNt1kdq0keJ zc1+<4UNg&bjp{$w*Trc_94{~3CQ#DFCJ`l3TWo$K1h>l-lCudZZu|T&Jav^8bC2H6 z{5-YpX8xioQX^#Ix*I{PA_i5YDsiBH=$scSMTan`-@rA|5}GfA5hF z1%=bWo`VGIFMb;Ll?=))94fI7M&Y~X;I)353ZrINW9>z1rNHk_BS&<(O&!NHp$)08 zqF;s#$M=!#{a0lk9vD*OspII4PmlwSPh>j83!Hwv%8c;a6^n29Fi(C$Jd{5nt1R!c zf!CC<7a;^mftp7Uiu_wp)3Lgw5x;E!o`^#`Jx1@~JI`umRig?RdRLLy2V)pow5W6neV)sW1pG@jg{rTw&6Zc@+$@T18;{%PDEyjpdeWsvfsicP; zUq&lrc8c<*oy~n~4N?E;q<8aj>Fu`sD9UwCqK-{|)hZF$59~0v5HcNQMVcW4{y17$ zOJbKnf%j4CCqc1kS)Ld~#~KWzLsIFvL2faX*&Sr?6V^r4$Yl15tHyka(IWgBRnsNh z8s3l!frSU2c}I+MJ@yti1ssyb0Jk_er*M5Sj`MJF8oN?G!ZjQJY-Z+ zK%?P6-{e$&(?hO)J{>!-&V;wD--dtevf1?E?ooTW+E7*qNexm*jRtvX28(q(B@>}A zICGKHR89pBQNPs>0r9F8dJG96rl_b^gKlcN zLoS01)4P5IR;2urOtULSjc}V>N&CgWTB`GDWa)hcu;#jZ9hPS@ZGIE#4{+Jk2FI=k zI&ciDyiu03#~f(>Ku2AjYDUDbKSQ|F>fxH=WSOiV{0kW>c$Rk|-T2{6DAKoNmnRKm zRMqaSDhl?j!&Qn-Se9&caP@mTccVpkAqEQXxt2*0bTE$ukEK+S^fauYoE zlcx~4E1R+sd`nMdYDL*c*}n%3#T2TB=cx2P-h<(-AWFi;@N7oCy~EfVvD0|P7KR$1 zwO7XW9saCXozRD&Pwoa>sVN=|9R5aWKgfLjUzcRl504ejhRq;Vt(M58)2QlGu6AAJ zr78-~IZ>OOy?g(1!8H7}g_=p$<$Hj{%p+BGuVZk*$D)BzI@vU8vnuN(IYHm-@u5(k zlrv$vxcbKh!Aa=9OAb5| zpO*_yTbSTs{L;g;pw+kApi103fYNyVD={T1PC@FxhAn!a&_?<`f*{lPty5GnEc1f? z16DvlJa5!muvyia|``m;_`)UR>ajZq|xq(NKIt77bM}FC-7J2(JPiH3<-+> zLqNR0!AR`}CDOLv)(3>jX#0hngAVPr1#ximh}9>cIF{%ew<=BDF3H#{i0D7#_)TFB zv|=^(MDpsFXUd{9mGQg~Q$5!oJ2EYivtq?ggXZWgc_DONM|id91WmdMzs}6hR1MRd zc8D^YsE&TFu(M&|c#x^raB4 zDdnQ049BXSDHZDS2{GS?AG?aGF_FY0en52XlGKB8KzPw zrP^p?Amirt%n@Q}=X*~>xn%`vW67{#c15`<*cn+zuY?A$dJwK?`;@zaQB`OpM7dfs zad-LEGITt=EXF_ZHDmH0Fpn$K#p6LzMBaHHE-uMKiebT>#Py^GeXwBC$MP~tlqSV8 zhb31DfJH}_`t>H6iQ;hh-7Vzm>kFhdKUR(EW?X^wymtecn}CPEi2wRQieoPcSK8k8 z!AF+77`i8tIBB^STbEP+yCdgjk*`^`M#x;@PV%dtG}KrvdwRETT92a^hUWvU74n(~xizseKp66(>(c-Ib0J0{7hAH^%Y47HQ_Dk-ED zj%_V%ea{+iqHXO>BbM-WteF+|8h$*O&eZ#(i<8`>4N=`>hQ^gn389y}1PycjsZE2? zP8ct*8{)EuyBgA(==jvdca3C0AyuKwxTowE6~03}h0q2q-T3mNrOoj-5qfB(DW7(6 zI!G(tT4!;FNpeOa6f~lQVpDQoEk!v6CC`;chF(Y?ltqwm3v=8`QBaETP)y+1V|mK~ zX*)ifQ12~O#4YDp(KQE5yz<1;Zy9jbvt#jrAYpO0E>Pze;6(d z&oTJF{6YiX9nAH)d3HkZ8r?rA11b%G)lW5ty{y);~3;#T#?%M^*A`;N7#^=aByD{`my&-aI_N0)Gh>f9(8Au=q=@0IU2ZSlmARtx){jepV>J zx)XcPbw_rdRgBBKXU$^f0NA^HmK(q>7LI_UYvBC$SzH+1eV&WigJ)4=`}|o%IJkON zI(9CewFc0npF69csT^hbIa-vj0jpEZlq8(`z?S$){QdR98N&VcFtXZZv4#{AK< zR55+_7soSvY=HE#$~fupPES(w@r$_4PBe>32Zr~&zO2L%Q50_Fw610p6Y@(msLJs!NBr!K&T+EO9SL~1R9byU zk3V{5VjdM=cR3$#9U=+=fl~8t3dpUa?lg8^Xa;_=inw4jxkNuIvTp!}Dq;Xy)kF|6 ze{^162Nqp^P0i%flwv)wraj{ko9R3-@1k90tbMzOYcrpZwSX_Rzq)(f52a9(2)ZI7r&D~ zcHTAVR|fO@Qz5HZ^G6m-gx2ey1d{U?5|(n)BJH2Qkqcc~S@IqJYVAcj{%q-%aW|eS z&M*B<(vP$v=jk4%R^02PM@MX4w_cTIZ`;aPz17)Ar&00oBQqKCLv#~yhI`b#tP5$b zjnd^}eLJoVW@w3(tM7i}CEKS3jFv%*JdZk67qU)!7EU3hrIP)iKI)RQm9CDufG^wwp( zsR0e5vL}>J$i4}?OSpV}7h4#_a8%;xMF?X7*wJ)*J2X+`OSDB=ltl`d5TQSINMmH_ zFk-)8)gHgIF_}etjZJRDPd+AFnVOd7TUsnGwz7sbnVZJ=DibY1wrenYq_WJIpd@g~ zZ_Mx55#C~He9(p#gXi_Uu}+})Hw{KCofHK~Lrr5>Vy}SBZlVRQEGaw z8B0+W#VX{~uhbx$Dr85D&Sc@Ke)$TE#f`pjEEbi#JdP*^AFY)#A8k&|b*oDx+xXFR z%!Hk;=D=wH81%{@w73IBcnV4kA*x_{U~YU!nojIt;ECJ5NSW`ddjG1@0*1uhJB158 zG~c14Vb^H--mCeRYxDGbP_r$*`JJ&SrD)&sEQgZjVX(CWq?li^yve zGwLsX1Y62jw@2B`OEX|lQG_a3+rHTj<0*S5Ix&!-pj;d;&`c>*Jp)-DFUD*Ib&iSA zbiA6%(JFr=c*<4EM&I*9E%81ZvnPtxp3b;x+q+M)2H%RiQ`KO+0D2n28`B2wfL-QPX@2l&Xzh3**$M;gqLO^($ zZ^!A)QCS*=>eA}BU7wCr?V@izEnjsWaixenknDgeqc&qR7p9l>)O+m41?TRbgyV#Z zZp)3t`HDxcYJb&=yzmjB!)6wwtw~7utd=XIioKnN`o_JtLSRis#0%=zY5~qG!KP0E z*X|oshTIKt?eL}!u<(eykfoiBZkJ!a5z9l6Z}jiuzR#Tk+IM#ft20%+{`g)$Q@38| z+&KGQCX7>IY+Z{;^34!Ud@@B5U95%G9yn0*I0Jc)3~qO)VQG~%N5uN-K$pH@7PoQd{X_vw3)@tv>zVj|3$@bdSgz;iiOF(<+aLA5*j4HJmrJ*eiOx=? zp!I27bjY-?m z{*ySBk7d`5$dF<3NRbE`rTfnb{iWh;e5n*#Gy`j*k#I<6;-k!pwyPgfDLRt3W0%n^ zV+jL&3k~&|ENQ->_hh^3v|Ot*SgpTmdC+`&Ui^-qUaY5sQ@v?1AN}sF&Y6ti@OsxR z{d?*=qChj!n0MYl=HlPi$U?!pN_zznGF%Xxmf4|s*aJbOX`>e0TK+fBu@pRQynBGq5U!F>u%v`n9XuO&8?8_}r6Pwa@>W-934w6ibP?{{GpIj|pF z6Bd0w<(FQ0Q-NZ|_LkQ*={u(y>2CrI3u)I|24{qm3cjU3|B6y5q5cu++9m$9F6l#~ z!q%fG6Zgo}AA^cdnF8daVWLr(<~8Nu20LlKBYtK#rV1bRTk7zoSf318Nf88%J&ASv zH`iDCF|PUF^lnU@atA5|l<)yuMQ`xMX^aS&76sg=*Ft*SPjiEe)~vJXr6{}3={Ug4 zWEi_E>7%U20=>JAG_so)ZmmAj{lNiZY8!p(n4iZ?dDJ^#N`v7HydfR@$cHI*BjpGE z-DOkqroK_KIlzxY+>tIn}Yhq`JZqyUEN_IWL zZZ{xbuaFwu0}ujOy`E9IF?rcN_U%AQlN(RR)a?2Wo-dWRgTBMLxzvqm9v|GSV`tVm z8VIDJ7g!{??;WoFJkfss)vn`l>FX(um%(ZwZ#o5fUN3#u&C5#iax6S;c^kz27~o@A z$oJw}y^V>W#i|jWAry1vpv|?DleosB!Jx$@qi`%sk@qp!m~9pc+Qx*6{S+!5Cx&?B z%eNE{R752t-HA`?_LDMxpBFxuY$;KA*{KS!YkJOo^o&S!?AbQS=8kPYpwKWx41axD z5HPT2LI@KzqUs&`^3CWqOxc>7Z1sMG(xd16b2HxitQJ^K-ejJE4C-<;sE*K8Ofq~T zJ4?(k4l3!Id_qfoOXQYB=Y1xghvpWW&waTH)9FW&O6X%NZ)kt@;%zUz7}dwzv|J%d zQVwn3yp!d{#Y^{U>oMt@mCvJ2UlsM(p*qsUa+&X;6TeWI0(E?&)GLOTwI5F$Tnx=u zMs0Z08&?^{<0t755(i4nvjxwhQ&Lq$m+rEgBe%|Lx+biTdYXurpWgy{oSG>N+~fTb z(JlSLbH3)HUn7B>ZuMji9j6NM3VXw)lJ?5MZh3D=$@jBd=~puUz*x72hC$|wtYUb& zk4^CRu14lyDjuNd=dZ(Mjlj^zllIrQ+fclaRQ=7WGMssuRl+`QR3N_gwX2f zHmFUIqc;3Tdzwa~qJSlOp81{b16}3}if?WTe%rf#*tIPdZ1SO`E=-u((le_-0McCe z$j9U0H1SsP_0`YhvTD+GSyQrxigNun)K`9*n5zW7^W%K{5y^>qDOre-)3kbnOu8%D zV9Tc;o<1I%vl1&4-u1zF>6b$lQ}Tc{gju9;F1&YqWi<0g#P{j9w&x0{Z09EiukZ9` zxdNJ^GYz<$%c)=^B9V_7g|xTGenjQR1piXGxls2;-nVs8w3GJX$er0eA&8rdXYDd+ z7L#M$C$;gq2PXO1z#s!R&Tr;bn$qMlgvEJO>Nw~zf05+RPy}P{1-til%3OQSt z&K7g zvZ=fG;h^Y()+QvT+u-Lonqt~#DiY!czHf8m&=s^T=Y{rR_k@ICa|YTYSeY} z)T6H;7P=8-t<@FKQ)|f%9r#V{g^0>K)SAVWHJyi$t&>h_zE~OOwv9syyF=l|v53K$ zYZ^t_FVS6sUJ?^hBbujW_w%VR6pz)@iZK~w z>};`)Z%!4bj9e1}su_;2PN7s)ge-YgSs3sR9~D%JJNbMjYRr zZ>N*pK4WTceOz3Wh;rxkEw9I9a18a?Xe4Zs&Hq~aiN|Scgqz-v5$103h$Ot^N|-z& zELW|*TcEZ^r40A{*zcFE8hC0ga-A#5Q7v0q`B6Di#v7kOn-(ba!a3l{TMM$KV`p9x zsoApeiPg@2uB|5oJ==o`rI4|r&c-wbkL-Jf`jKUqp?BgYZv2elO;2X1OHX5-JPP#94;0}tEE&r5{k--ok$!^j zB2?Y$yW4%sgXFF&Chs)9=nJF>$W&J<=aI^Y@H?umuv>3zxJtbE!pKmhI`InVj{CIs zdQU`Tl9+T$=u)|$^e^mlR?|;;;&i}K1^RJ3G7ia&3{7VNH|I5w) zya)e}%KHAd=Siv?2yT2tn*Wj5+()VGQ6=x{1>E2=6zbFQ^dr8auL9<9*!h4&@h#pPh!ij1r& z_dTb;;8E{(n$L^dCWPaGZH0?}wXp5~-#$x%ku$x;4Y|9|Q#DP?hUW^p{lF+?@cy%M zXq~Z1MeMGt9D8mnhU0NKS8lFFy0fsb&WOAwVKz5#*3AvLu)yBBnydaAk@51YizM&h zRuOi`S#uD8+aL%s{Tl1Vre+BiY^k%ET|itbUoiAU5iFS=?%+10W(KzS(#;Xf86isw zL$4YYq-q{L%nT_#n42C+k1`IaB%hx$0TS*VtNC`m$yuz^U#yTS`XMScCnEeL$I`{6 z!dSPpy*+Bplx0WcN~;5Dtse84Ai=_*ejr`2ebf(RUy?)C(fUGz((T|}Zk4Ovi<$fQ z3j`)Ysj%82?@%6^{cL)p$DGw|>dehs;6|yJ%0418Uc2(c|^h&|L z?G_p#eGop)_2+j4%X>wbq;tCD*fhFp7VlJlUFQ8RZEtX8I2jG~3)&R0tK65PpFHe| z$LSuqhqwvT&#lz}$&R2ll{!Tof|YKKpUf2eU4{#V&SBNg;{6TQqQgZ&--a_LZgOL3 zVopkdHbKF|$kO8TAtBwyx^ru0gW&Xo=k63aqH^h`Pfu^l<<6UG1(Y@H-rD#9--t`BiH1Bdlb^xCX>?kEnUhXC>SuY(RB-xJOl zSKYIDvYp1_m~-~a06lG5pnQ2W-OuHWWS3UG$SASJJ9vetK@v~W*dJBjH9GvVd3Moz zqs58Tozt3BHxDKM981rY8EsCQ0kxD&Jnf-Ea)OPau+lB}48+tEwL$FT$D#8f{U5BM zv$g6)35kUf%ZGXyx4k*+)C%>3Kqf^f!m0P*o1$ME(!PkxH$A;W(XRQtE1118sT1V{ zo4MN;BBQCnSM#c*UR*t2sLW>NGuG4HWoZom4t)5o&U6MH$NPz4kMyAxB1ENN>h&qz zkeP9Vv>mbK1A4&SP}N~_h3kfRiT;a^k~H6(5{`PdKEzJ4_p~PqTmRmQtQYulZ^%aO z3-ZT}78~{Uwt2DeX34C0b7l`PQet0 z9ZL))7q?LfN01ng!w|>u|Gvabz)oWkT*LOPV!SvR>gi_76!6^`>}VhGVyNlICb?&FUcVA<4@9(e&CpY4;lm||KTHBg&^VoppEvF!!>5QqN95GitQP7 zbmJ}f3Hl4KSpzmM&c4l@<|2Q7SX*=k!!lo^D`Ak!8F0Y~Wmd>;qB(jKJ~DHpb6J3k zUJ@T9G<&BYf6ni@XStA#2;vGXHl5&yDuW>L0fP2sR#RmJu7w90>lHc=Rl^+F{z6=e z2an#zC5_aNSSi%V`#g7&hvr)3f{VedO}Na0RONN#7W+FiytK*8O9A79SgaJYWzNt< zV`K@(?16-qUxkxeUZGPvmAKlm!HiV2)zE^%ql9emPu)}Teu8f<6sPQd-@$ZbEfKuf z02*Wx?<1IxqTmVZv0GZ~P@HsNs|WKL_M&gFNba|rO|K#rS&(R!cs~%1!Zu`5z?n{7 zO(QepymZxnAMboKNV|1ykP9adPPnj^Hw~BQ2eN_IL(1tbnMSyAN87t+_2B3cs1)aq(b z%d4RW$2`Lsa|(OoMc=$aTO$=vvaTBf$Bq;mDR{gqDWCnqCACxF!UR`FXbpe+u2(B- zcPmg{R`&b*(;r_UZ2=o2Gf|1m$zWD;@V(z{Ov_zS5GL~@I2Dr__|E-(dp;hgB9n_pcwV-X}jr}7c24i3-Ip3Qr; zyioEQZZ&9>=L6YtHE8eh+sQB}hsFC0d@NUY{(6W%za7T!cGm!5FX>|$PLiBh{rBnv zKTLna>be`l2ZZ;O1 zoh>^q`b}*>C2FP9&YOznMCLWuFTf1Yuf|ih&I$4x8B?~N399Ux>+Hcj+-Y6rLZ;v& zBVH&sno<`%zGLL#^%Rkovvm5a|DC6$)Cmr0pG>*dGV8U$q6QU0D+@h>ALjFJw0u5! z&q9&fADo8_Ade@FAM%jwtbTwVJQ|rA`qW5S?Sqk%>O?ToS&9u-K{Yqz*R^PCsnYOW zWeG3AM;N1B@#pB81W>~(&ROu0t{;;SXk}af-s^TGlv2hFJvlX*&j^CLpg9gQiylA+ zuOK8kWvs_5Ml3uEW*3?4{1Jx_<=%sDsqYzY)0kD@Dw*sQ5#H}?$HmNG9>Fi4FQq-I z9?-_Ld$@NyJuHvFEDYt4cjNV?d6x3}6dNgH0YEs%j)$}5c8FE;6!<=3>P`pYy)!vf z^!7Q2vE5C?Gt|+{F|I}K!191|?urK{c`2fiBcV5BYUp0~2PHknL(ew#N( z`w${7u`3*bn$qe*#++n3j&uQyc*DaFuiS=h!Hcn^0hgcB9u9Y!=dQCp6q@MYlk{75 z;JULCd={h3y%h-8S*6t_+Uvu!B49~p1$8rFd-^@Q+`qDr#m71FK)IZ>{gb^Q!iEnb zKyZnvk)$@e0BW?w=6dr^XYgG9Ci1{(dD7cPj?i|d{$HH%O1}eD1b#z^g5d=M z0#4DaDnFe0Xi&Q>(38;(Qy#EfV3Aj4Sn=@I4Y<}<&rqF1w0qB1!?y`?kU)IklSq*g z-EL)7(~pc-Q5_fGvoQqWIQ(g?G@9f5Lx9c*TvsGHn7W=};;Np0oWPr}#ou`oR52iA z^JQ{?4qLDSzJC_zf!Q*DDXP4QS^CgNXgB4ObBAokfm`z!a8Ye{P=@_)?QpkF;p(os zIvC`cePi4!>@Io$QGFLodlF)?e;z#NAH@{+#o}VR;%2W#u((>@l4yGn5yMI(blzX67~-Gr5xQbtRWBAT0IJds-JWv z`U*b@MSq9Tgc-3f{9H%^xg%O_b90I^B5gtSvsJElABezJ6j+x+SO?k85^mC>jo`vZ zOT1#1+E+X4=Z#XaWV#yY1@eUB7wi!+OhFGe%e~JROij6SjaS3L51W(oyo)0m(8dfZ z2~x06Q0S&^(q0^S;8Z0W>2O4Y2(i4!4_cgq90-7wiP7djcL>?7+>1p)lC}9z$Q{1x z1$;JT{Y%;XfN<~^BLr2%p{LR4pEkEHH|H3s8KMeV$54X>opc4%P8=QBVuStZAC=zTzpvVR*3>}LMDB52V z-s_QU->*3(_8ETc<`Grg?qW^~8l|~@+PeuDg}pjVl$5Up*fM>*Nz7^^_Ng)jEM!HF z#ac>v#zu^G&o#z;H=rG(j=KV7cKoqZyeX7ZVQ>j(xr_)8TynEf4FcAMsnh3KktFH# z@2~fi{Y*ox+q$K?hD50WVhq3As?hY9gN^C*_joaUOYsEV8GAW;uIl$uWaYBT@HEEA z8(?U*sYYXZ`&=9eg~igcW9Czy{54estZD5&`>iL2Ds2`UxC6Gqg5!sf8dKU{ku2r= zLTI`2?N&c^Y*M0Kgu9$bEu*IlYoxQ$dyu@x&>=&O!mXXDcQ@~X_6QrpoB|sjba*jn<|8K`?_&kFycd0C;lvXl!B#tWk z+_1+tzwHg^g{&lqLNE7TZNnUmtc9!}oKig+8$vukQ4`4Uo(*{F)w85s3G`0udS5(& z3>?LfoH<|~LQ)!NPdQE)Dta(tHt0p~iP&7@sryuDVCR^{^Otsu@nQy%{xl-6&^ASa z7b9Osg(t^$aIF&g_5$+V7ElJg2p?4@S&|5qAYV-9L=-^gn+ z{lSGiET`&N9RUnCUqycyVY|PJ!v`B+UpA(lvaytq{{T!@eYB?WoCH$J%g%$vxXvAP zk7hBR=qNLM%Q&#RvUsUQl;ps|slAFiQ)DGEsQ4zy0>$g$VH?Rkv7PNY->pH zBX=yr+PLF#s5U~9r({}p8O9&=0kHLvsSH$S({5;5wTNh>4SLoI=(kVNMEa9C^R44fMaV3M*WLk8 zdS60jlWZshW+Y^=gemR)`i1zxJ^F)_v1Mu-kPpkOLkr?EbEY)sJ^qR;R`W-7>r-T* zvCUK2{?-RmDgK8rW4FbPM7Y1?^B~RUGGOYYlijq*rV8111gu)=<<#4Xh}mm{h5ANd zlODhNa>L58C!DBx0sYUrd2eQ3d}N)|K5H8h^T@>ns0)PlEB?+?4hp}7SbMK4o;dA( zIq|WLqYIKNhq^ySaPFJPj<&AY2~$j~&@S^;kF*m+seA&_XL?|e1nl-znU=VA&EqzB z*{E`rdqZEGu=wd)r^*-SS6n~UB}Hv6U9git(!rirBVW{kWzx^60G)hQIF)ZYn#QKwFi?p^;HLLmK5ECI0{w>0w&AUKmim$yu(13T)SVs` z>}Cp>n_& zbR2DYV|Xk-QMjGJ^s5W;?jdtqkE3oK0^Tyo#RoUpq_N3!G|EW^*3^FiMW4W1+-VEp zvc5Mqk^Z@5wi`24lSY2-%`+2Xd(q8QpG?84K#5?A?k4I(mCyc1Uas(7-w4r6MmLsy z4?mg^=Ql=FKHIx)eqr>;cK!jl_rl{SaI}X}TVmEj;1i8>1${han}^5L0=+iH;8hg7sg zue00xqaP9~zc33duQx5iqQpSPu)0koKH8`;&6FadTMKZ(Y~^;DV`|sz#rS*R;vf17 zk3C^SEZFKi4KX5PJ4cnTm>X}~Bg#zt%rX}NxSRg#ZdnG~CZg{549c*EZa#Fl!4)TC zO!kt|d+hv%^)(&L3A^a@V0UjQEt0PhlinAh$HMC#Z;bg}FT~ zX6EAUcMp9K5H;g{e6HmG}E1 zQZ(Ty-Gg=7lfDUZ@Cb_XXboH0-Y)GsZo-b(w~d%j*vu@jXv0!qRjyJU;P-GFbXPDb zR{A}zZepUv8CuCUS2@sU?mRa-GE^GnF%t-T_X+0Ju#E`iyoR}4ah0}P%V}&Z;}0oT z>m;mf6ZcwpC=BLTS2!7UNk6`!CJ(l}0V;PN+H;!^Q&RJ?KsWo0a)I>uUgnt}$A24} zy@JS!CY`X5^YeQVEqaOEMa4htD6D2rg!WDzD7Rh<0kY{2uGz$w5NFv}{n3u)UXf+b0voK1whslL z_Zk~V$h*ZgxZ~Jg1YSn_=DY>8NWg4Y0j#hbgc91`9&`y;tD=Q&#t@ni zNg)WOy+d1^yK%87`iVE-9e6pI5Q;?~H+ZgIBa(@h3jXY&pJ6i&AWkGL__fPRn)@JV!q0__bq$86mQ`6xB9BbPV$UD4qen(ufV0{t zDO`mnw>+66seg&=W91zg}{9ds+ z=Lt5fBaQny3mXec{-?u{@CeVSKvpb9pp6*={#8GsvB_L%Vj(D&T z=dWm(iqE5(?bcQ3mtWuwNGg{}~~EvkDty;!@SbB0PxX3cD0qF^_51MDZVkyIl< z`4TMqLPTA$9-sxKpI*j2y?<@E^HNpGskd>EH|U#1-0n>+FI|hC!ew`^5$Xaw%TK)z zP8G{ct(YAxN7`oA zV&(z}l$UH?xocVG;>4#d|$69nh_UGA1cvSbhMeb?v*XgT&t;lse>ZuarnO9l@3j$dDaUk-}e00KZ=G)w|zEw>6cUi$nuxEweTq<+MV1 zm6nd*W-DS?VMBJRE;C{9Wq8DJ)+pDoNU9{H#|=OfDXfI902wl>I2ALNKtetI%!v1o zYX#SX-+bqw+!Se#*nIxBjvUVe@12C#{>oXJ>kZQMYM?LRfRCG}gx@L|+NDE9g5c&{ z@TC0(I(HBEEIv_qrSslS;#@M*jc&rCLc&A92lU;n>I$)HzA2WU7S{G7*J~TgO4WUg z?51l{FZL?h7`5#TBEzL?Gwx!Jv`BJ)i8Njc5A5w1NAG5y_s10a=`X!X{x;xzcqhP6YmC-CUb#GSIIGa6V zMey`X_tfEq*?4ziIb((d@80X(#03C`Hg%vXPS>hk%LtLR?zNav5Y(W3>(1>3M-)$f z@CR?pFjA=LqxgWkET2Z+4=~wO_<;o`_SoQV{B*D&k4y26-5h-Snguy1SgKVF|8_Wd zmNM(?_GZh2w2N;%+wfPUWUN73F_;>uPj`$MmKNf7FYKpcP=j5|du-m8^N8W6C{u5< z+e_#Vs4wN_tm!7RwL+#cf=LP#u>~(Y&QuqVR5Zf3PRkU*OF_%>IvF91udyR+Ga}8o zV+83C$^Qo?-3o1;S@I@T`Rda94EW|Ji!4x*9_ZF1dRKT`i zH`JvJ7Zn#_2Se6@Z(;WN=O2(_=;~uk@9@GCyYGIEuBhOtH*kwdbRZXmu)f*yRe{)| z&PTxQ+MWz9?CpjN+LL#pw>MZz71UsV8#68c$O!-A+AeZ$qXJ`=TuFd;7K zjr~S~cb$6YA#M;BJl{R(Hcf)xEwo(x3=ai(G>h40w+0S6S#}oc0r+&>)w_ zf?IN(jral>P4kgOB~21d&N-a)Jca@zmbUc~=F;%mfdi~YuZNhgBf+@2RL-<$1Fp0X z5oDE{6B^3*gI{7iEsJ10u)(^kIP4y>0tgTif9uIJ6VmEF9v>s!T+6=CaZV9;8SA^( zJEa>+Z|K**AWV21scy9lxrWxl|CkP0is2FGT@@gi!$qD5QC>w#mhq0WI{ z3gz!+!xWl!UcBZ8eKtpz!{%r*P;lbGgPZ_{VF>urV+IWj&RZt*%D7irquov309+V~ zYMCB>=Sb6lZG?QBbH?!Et}l;tVdk6ddm>ww34QK{3!D^j1hzy(l$qrip2_=pY4bY?D12u=ujHJzvpV(p?HR?6l(($4B{UcCtbFm0$HsQIa zf--7DNk7MV&nuK{oVu~rus(eB0Y>}vm1arsC)_5zn#C)^LBsgk;CnRx&o1-t7*a#A zuUI*0KQ7a{8D!aAOjBiHY4Y2&u0*0-`CRbs+p}>mntlW)r~_Xk+&Ht$=3i+7H8N!1 zg>OA4YA!=D3AGp?$tz=GNv{HTVX*FxcR*fG)RP(`n5$w}aw39z1~wtjDz`@~-w-zs z!mr)HY{krFoC>%#fd&_V`t&KS19G<)HXX!OlEZExa3SaeQn`}-h|s{>jD)`F64hYt zfnYt%{wJqV#IPnsvZvu3HS-ch`RyCWq*@@(Wti&a zlfBVvULNQy;a|bgk3r6jKU}7tVdce%i0DNBcoty9JU{2nmuA4+7UU#?BxgHzc%y%i z-9gfS@kOEikVgZ;TKY>)V-k}7BQ$Yvs9ItQOKv#A#w}z3{yF^!B7kH5C)Hx+jVqx6=+^h_;ALu23FurvujK^5;GoZfRA;{YpYRKe`XLwn8pEE-KgwYN~E2|w!j8e{g5ML?s|f#emp zXi%MWw;lHPxgBKl@6Cs$S3Zixwf1~(UGN5(-dY-G^UpoW2RnNh%|1ojyL?OK4p?iMzts)_)2xO(!|YqA<0u^^ydwfyb1V%Is zwRtJ$-tXa)iErXV=Ms3Gb`t^DF#H{mbc>~-fK9~dS z=T8|FnM1n>S5SBGf;3LI<-?t*59sMwm-GQe^cVP=ByWo4bHk7;ms{1y=ZxUbI+*BVK=*jh+p( zhXQ`QQF#?LzOX~EY6t2(xFgh*V0feOTd5ZmP)!*B5wbLs;$=Pv_&tuCw|7NW18CCV~}_R2x3;7@nj;WVgfnOz_cE?KV}h z!LpbnP{#RcE{U5AmwR3yuuaIEAy|x-FU31Bu97Jx#c5#D8UjOS&bl-Ljpo|JX!3W1 z^P_r;O~EXm==HkTbUf+b@}Q!-;9_<(=H$TrsTT(K z7CUsuNa}Fmz(FcATVkq2qhC-v*QG&UkhY;KhK7E` zdm4R-bwvPgwd}{EMyfctKf;(>18s)&%f+O&6X!Q_u6iqU?;F0X*OJo<7DE^m4nfje z3!#VDX%SrM4M4)){ZnwgN&R86n$DvK1+a494GQ$m;Wx`_`lF1{57giddHE=CxI-H0 zRR^ESqAN&GbVD)-kaml5f?939xR_gF#|;{Kyz|TB*BJb!!Gji!dsCYTP)-h6cxi>4z2$LSocG``I^>hqTPl zPl9kxG^_GW*KrpF(6eRD6*qO<)HYgY_b_pe1^v=LH!=!Ddk*YgScOw9<*cmoE^AEp z8`>kRPZci_w1(I3AA;TmJFDU7cXHT!2+*Ig$Fmwd62o7Y!_3Gu?ezA(V*|}0bV%K$ zi^oFes4Q@P{mx0emwS~U`kk~dIkJovXLl3R(BSXGXt{U(O9Z<3WG~+LJ8@%e?Td^3 zvzb?DPud!HbiekBlaXy384i#HNP$K46kkEOFTM+4oUL9$_ke_&NH8TRwxAt~d|)j8 zi6;lC*X7yh_^X7Ngqv88#YpeoDB^~kGUW7NZd(=-Wx#vzlUo?j(#?mSNZsD`-uE&R1qr1=JKw;tEqyMiWSnVrkH5QyoxJFLs*6u;?M(tQi9Y`AAfEjbmmq_ zUMH**vS6p&sPNvmAmQgxs@6)8#5Mn2>njM$ZmWzOXl<5L8-8{fnLH##YsklmVEpR0 z%r+CUqhR#~5c|5*3a-;aUdFvGhaq3&&RZ}7Au+yV4 zoC+8Ywks49@uvZa`ddzXi9T}Uk=QO3NEy6?$RaS+YWy%b2;s#kbdNvmR0VAW$9j>+ zb(u8IbTLpSVBv?Kqdj}O@R?8Y59OZwh@!p+G{XhE7xphMvFLK>2SExVkDsqZu9%$= zxA*w937sfs-{|idBx#C$$OToavFA2=>X%|`vtLuOpgNwuN{;F?bf0-y z&)B4VU$ClIgCg1s&|W<)_eS>_eJ(yPiQm?(3omLr3mbx`dZn3OLtr|9;7oQjupiCl zyCm5bybChHm6Z!G)Tv) zS#>$t2Fp8{ksnw%gjzrOlG)#B&QvyucSD@c!DVnk{XqNk85cGf^nkD!BY?AUu?Xxh zv;lq14tHkqb+N#hLT4zw6dpr0DfwFYaBKx=GHYMXEWjpw;x@51W;_}$^6+Y7@i3fm z3V5~!lwqWg&iH=*B{LVVAjj)9I>g>M?jP{pv*8C>HMhxa+`ecm;QMDag@)RD3V5e_ zri=B)<@OqQTs1Ya>|%l5n8NS&$IEaP2}6=#y0TW<*M7(W9c zK^)!xi?2R)e92;Z-GW=oepb7eVEF)zbR4_gUyS=c0H1o(4EjK71BK$ApdH;aS0h2q zA8<;hNnp}VYM$ejh-ZrnVn{bx3wP_OA$~#oPm}}RVX$(qVjRlR6XWQu%axsx=D~3d z(LTc#0F_uHg;r*C1QV~cGjuFmuLbY5XYL-oX(ssz*~e|a=n`FwD;O#@CLFr$b5;JF66j{z3n}V0mxkfS5F*X|uUT&F zPQSYAUAewyQM75Eb|4)Y9O#^_J+MDC5%3XK?4?jF|00VU1kEnN9WY945ufhqsrjp< zh}>rCL$>y*JPQ^@8b>&Y+G~SGgB5GtnnL*aa)w9{z#Y|P>UEqIM_G40dD_d7X9gi0 zSzZmcXvq|Cb12QKMUNm(`S(q;cpvY5Kk2~%CGN}orZ11P=jLBfqb!zytFOh>ET|aI}`6|ON&7VqU2dSf9t5dB&?%SRqkTz4W zPLpe&P6WKk>+vmy)elgY+#v7!5+9C-+Bd4ik6xqbK+QYm;+03C=2Mk{P-muR;2)g4 zL&UclDf<_0Lks5G!&$l;TO}}QyyDarH+&l#K1jVf?H8~ZHhY{mYOaH(R>=I}={lnp zZ>NgR_FLp?ESoKx+H)&OPQrUj?0}S4w{k4s!{WRc`(g^M(FgAgL=|uzYK6lAm(g}O zT8?!cKAgvxV+ph6*NvqXY+qyMWZ=g5+yi&9B(X4(!;qA>D-gN2E*%Jnk8ZQqXcr$S z5pSOirubn|E`X4zA61b2#w#5X81JDD*GxER3$Q8$Jp+hlUFbcopYPA{KebW&YAY8G zew+ku`o!fHNyoeSY=8FXowkqMEc=@Q6A$e0x#}$5(-gm?qY9^lW=jjQ*6nd)xju*v z8jX3NNGwis15%E*aj}}G%;HD?yBDUMd zLlU55nBbK7??ZW9XR-qc+WU=m5|ChPM*%C}$7{&<7J9w%T_f9~tA&sx@lA z9Ypi<7DC}JRg+G0Xo^z?^C!fYXEST`23OE(c)Eba;O+q3=E*q|q2ly;dRJ313AV(cpBd95LYarZ< zW)Qcg`*7cc_gF;ol58#mr0YPVIW1m-Y=5LN^-B~^+eh!sEAfu}VIG!j7f9;fP%{Bm zLN8dr=WRn3BVZ_jP4Ru+wTb=3oXtGMR+N@dd)iTShOIYJKKPU{g15Z@7z!chBd~Xe z_c9P!Z?R||5>cT4Huhw3s!I^$cg<>2|R3Y0b#tPjrX*HDod4Z#*%65#yyJNl}zI?~s4W@o`#kV}(ti5w;Xf}{zk{!I6)t8*Fo&eqx zWq&#NaHU<`$|)fxV`pc_I*wk_Bno3%)Eb;gd%i&M7#%!uKTS~wn0VfdniVE1#L4FY zk4A7G`z2eBYO73&c)S@u0jlKhjKz!6Y%q6^5r-@c0U>S}a%cHjzSM6=Pnzw&#c>p$ zSNlDL^RY>`F_xdzR_R9uq$R;NKj5)lCL5WZA*?~Qsp8OxC54fU*RLno6)@*dJ$0Kw zvOaqju<6ZApI)6`Wil!l*Zn#$xIoWOaiWBaZa&5jGX#k}-&g8}( zyY#X?Lgm0In!IRtc{ZzpvaaY0VpOu;bYNqtW(}BU{tjBqbaAS(YU6i36PG}NVH<&= z=17}yO6YW7G?P?1!VrB!1DvsDaicm-56yYn>Sw{iT}wyPK=XL-RUij+vR5E9>^{SO za33I??I6cVLBXg|+5>$qTO^*0>~x=S`mogE(4#nF_PDk#5rR~wQ2Css=;XI0&5yFT zx2N;Vg!zb&gq9T{RtF~!s>iS+I~AY$gONV{L!WVct!Kpkje(oU0GVXJ)D`@*`?FUt z6*1nMCVRa<&7Y$60*x9_oQPGl*h z+_=J=aH!EK3y%`M=}~Al>S`-qFzCc0$<+Ssr=GlaKq5}!J#2nxT7(z$6ac$tO_}iu zt>mO2!j?w2y&bcAq`J{5!DZD0U$mT)>E8kpW5)8VXc}P^S(;!nTs4T}n{A`ilgF?* zDh5K2q<3N0*!4yKGNae=D1%{LWt+|fUR6?+i7SVi+qZrbWg{h z93Bl(2M%{BOfJ`1niVR*c|6l-7V?~WIGk=6T*v4eqA9&M;*hT295!Ci?Nxz}G-=yL zsI6@O)!{JMzmVm2pt}LS|ssv%)kIe}Zfkl3)h%4w7UXoB5 zR;O?8bQgWOEz3g76(matFG6dP5S%K;kt8k^ceNQcyQ1I=Rp@uzyfpvh4a-EpBR5Z9 z6#3nQc{gZRhDgl1gPSk*UXG2#&>Zf)E9*2b37Gv5oW3e54kxdaO$M>On7qD4xf=Q! zy*}iq!J@fg<;c8x$vN)F|M3FZy?L_h#LDWoZ`~jw3RAd!osB3ApvprO zCaL;&*WX=#cm3D8?!l@5dvP(o|Gt;VK!t~h$WVou?%%q2{%C}Wi0nEfiQ2YQ{t9fm z0G%T~gEu`j_BSq9^T=B1~1+>bNGhF@3|3#1ga*Wq! zA{2NU+21J$SM-u9OLDwp`6nPP@Bk7MN+gBr}9@I{?b)Nl00njFTw1~AQefRVeempL`0D)l4Sywe+`Dk z{qd{Q{t5VJwrjLV`wiZG|4+a_^QR{;?>89c^3c?bxqbic52sV{}Y$Ay4lc#6h z9R{+AKA>#j$?hiqJ&jy$Q<1!i)%+(WI6ra)di@{-kZlNT2Isj3iu%9WGxwObsyL2U zA&wx3bFD#HTWoSf(w&6a{iY+i_jLE%J+jTm$QBo@4Z+!IFv=rnCg@}=Fs25pTVjZ? z1aVGuC~;_Gat&iT+DV7Zu+G6EXy&Fdm`pQpbIx-SXdyehm&YH@+%!4KO+Me>qxU?1 z=XXW?$)1B0S}V#qlKnwMEQg&T=H=op1?8ul5%JAmw^Fb@^C(Bsn=TWJ>+gEO+OlT5 zg8o$QA~^2h0~CJh%jQUOSLPFo&;x??@c9e{iSg?R?#q0SLT=LJHsiQtQkjsqS1s>H zq^pAg+Y=uyAwU^+cwPqPin*)>wnnjf9*~V_yw=a;v)z`rRa{^uw z{kq;waLy0&W$@*MxfXYesAbg+>|%f5RvGF-5e}H?`AuX+RXVfyc`|cdeVhXZY>1%9 zJIwXqkwh87GS9WAHixhn^H|p3&SNp&803I4uVf&e{XOlxtbINoK~05^5nNYu6LVe8 zvl#ALN6_lQY_|Kj5?I#Dj?LDh?ijBEPITJtT^6ees+yCkre)Qj`Zfb1t|~Yrv0eRs zSqpr>;Cl(`e{pJp_NOmPklJh41ixrYW}9yN0!`4{wvfW5=6RZ6N1Idav`udEMZwCQ z2?Sjn8WM5%)g=sUKFtA>_d5w%lw>9Na#c2k&_l;L;O}-e=A<3Zo(8cmUeT%4QWpjw6%3J!57Y@F>vEa4j3)^eM|48;7RG>fTP!l;nLUH zE$%}b1y|+KYgs&YhkwjsBU3c)RCNc;khQ@1?hFd`xoMi<1Ma01QdgvCf|tk&c7A5XX@YN)4HSl9 zh-xSEI6D>-Pv`)PS=Ivz2aNX1>iiWHngXpHFxr80#qFZ7+W+osE$WUjdVYq>w^A?< zeaZo&ZMd-KWeS;peKcE(x??mz12jMbyxu@Z=Xi(kzB%b>bWQPN3afY4$!CQD8sPsA zbo3`qRH88*;PKUGOZJ_5iCFR*4+&N_C`f(8LW6TT6z((2`X$ZX;pLFzPnd?J>l?@6~AMxFJXC(OJxzf4wGJ{;cBbCJRSzbu6 z(xOfU-BPuK;5VP`mLTg?El0BLwrXN|!`>rUkvpuQpBrij_7?O?P_dvQ_Vg3Q3nU|KX-fNWr literal 0 HcmV?d00001 diff --git a/yinmeng-ios/DingDangApp/V2Versions/Login/DDV2LoginVC.h b/yinmeng-ios/DingDangApp/V2Versions/Login/DDV2LoginVC.h index 4fd43fb..6bea627 100644 --- a/yinmeng-ios/DingDangApp/V2Versions/Login/DDV2LoginVC.h +++ b/yinmeng-ios/DingDangApp/V2Versions/Login/DDV2LoginVC.h @@ -6,10 +6,11 @@ // #import "WLBaseViewController.h" +#import "DDBaseVC.h" NS_ASSUME_NONNULL_BEGIN -@interface DDV2LoginVC : WLBaseViewController +@interface DDV2LoginVC : DDBaseVC @property (nonatomic, strong) NSDictionary *install_params; @end diff --git a/yinmeng-ios/DingDangApp/V2Versions/Login/DDV2LoginVC.m b/yinmeng-ios/DingDangApp/V2Versions/Login/DDV2LoginVC.m index 3793dbb..e4864ed 100644 --- a/yinmeng-ios/DingDangApp/V2Versions/Login/DDV2LoginVC.m +++ b/yinmeng-ios/DingDangApp/V2Versions/Login/DDV2LoginVC.m @@ -6,10 +6,18 @@ // #import "DDV2LoginVC.h" -#import "DDProtocolView.h" +/// Controller #import "DDWebViewController.h" -#import #import "DDV2PhoneLoginVC.h" +/// View +#import "DDProtocolView.h" +/// Third +#import +#import +#import +/// Tool +#import "DDAppColor.h" +#import "UIImage+Custom.h" @interface DDV2LoginVC () @@ -17,6 +25,7 @@ @property (nonatomic, strong) UIImageView *bgImgV; /**logo**/ @property (nonatomic, strong) UIImageView *logoImgV; +@property (nonatomic, strong) SVGAPlayer *logoSVGAPlayer; /**手机号登录**/ @property (nonatomic, strong) UIButton *phoneBtn; /**协议**/ @@ -26,12 +35,15 @@ @implementation DDV2LoginVC +#pragma mark - Life Cycle +- (BOOL)ishiddenNavigationView { + return YES; +} - (void)viewDidLoad { [super viewDidLoad]; - // Do any additional setup after loading the view. - self.customNavBar.hidden = YES; self.view.backgroundColor = UIColor.whiteColor; [self initSubView]; + [self initLoginAnimation]; [GeYanSdk preGetToken:^(NSDictionary *preDic) { NSLog(@"preGetToken: %@ %@", preDic, preDic[@"msg"]); @@ -41,39 +53,45 @@ }]; } +#pragma mark - Init - (void)initSubView { - - [self.view addSubview:self.bgImgV]; - [self.bgImgV mas_makeConstraints:^(MASConstraintMaker *make) { - make.left.right.top.bottom.equalTo(self.view).inset(0); - }]; - - [self.view addSubview:self.logoImgV]; - [self.logoImgV mas_makeConstraints:^(MASConstraintMaker *make) { - make.top.mas_equalTo(145); - make.width.mas_equalTo(102); - make.height.mas_equalTo(150); - make.centerX.equalTo(self.view); - }]; - + [self.view addSubview:self.logoSVGAPlayer]; [self.view addSubview:self.phoneBtn]; + [self.view addSubview:self.protocolView]; + + + [self.logoSVGAPlayer mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(KScreenWidth * kScaleX); + }]; + [self.phoneBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.equalTo(self.view).inset(49); - make.top.equalTo(self.logoImgV.mas_bottom).offset(140); + make.top.equalTo(self.logoSVGAPlayer.mas_bottom); make.height.mas_equalTo(52); }]; - self.phoneBtn.layer.masksToBounds = YES; - self.phoneBtn.layer.cornerRadius = 52/2; + - [self.view addSubview:self.protocolView]; [self.protocolView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(self.view); make.right.mas_equalTo(self.view); make.height.mas_equalTo(44); - make.bottom.mas_equalTo(self.view).mas_offset(-DDBottomHeight() - 44 -18); + make.top.mas_equalTo(self.phoneBtn.mas_bottom).offset(20); }]; } +- (void)initLoginAnimation { + SVGAParser *parser = [[SVGAParser alloc] init]; + WeakSelf(weakSelf); + [parser parseWithNamed:@"login_logo" inBundle:nil completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) { + if (videoItem != nil) { + weakSelf.logoSVGAPlayer.videoItem = videoItem; + [weakSelf.logoSVGAPlayer startAnimation]; + } + } failureBlock:nil]; + +} + //登录 - (void)phoneBtnClick { @@ -87,7 +105,22 @@ [self.navigationController pushViewController:VC animated:YES]; } -#pragma mark ------ 懒加载 ------ +- (void)getLinkPath:(NSString *)path params:(NSDictionary *)params{ + self.install_params = params; + [[NSNotificationCenter defaultCenter] postNotificationName:KNoti_InviteCodeUpdateKey object:params userInfo:@{}]; +} + + +#pragma mark - Get +- (SVGAPlayer *)logoSVGAPlayer { + if (!_logoSVGAPlayer) { + _logoSVGAPlayer = [[SVGAPlayer alloc] init]; + _logoSVGAPlayer.loops = 1; + _logoSVGAPlayer.clearsAfterStop = NO; + } + return _logoSVGAPlayer; +} + - (UIImageView *)bgImgV { if (!_bgImgV) { _bgImgV = [UIImageView new]; @@ -108,9 +141,12 @@ if (!_phoneBtn) { _phoneBtn = [UIButton buttonWithType:UIButtonTypeCustom]; _phoneBtn.titleLabel.font = DDFont(16); + _phoneBtn.layer.masksToBounds = YES; + _phoneBtn.layer.cornerRadius = 52/2; [_phoneBtn setTitle:@"手机号码登录" forState:UIControlStateNormal]; - [_phoneBtn setTitleColor:UIColor.whiteColor forState:UIControlStateNormal]; - [_phoneBtn setBackgroundImage:[UIImage imageNamed:@"v2_com_btn"] forState:UIControlStateNormal]; + [_phoneBtn setTitleColor:[DDAppColor dd_MajorTitleColor] forState:UIControlStateNormal]; + UIImage *bgImage = [UIImage imageWithColor:[DDAppColor dd_sureBtnGradientBeginColor]]; + [_phoneBtn setBackgroundImage:bgImage forState:UIControlStateNormal]; [_phoneBtn addTarget:self action:@selector(phoneBtnClick) forControlEvents:UIControlEventTouchUpInside]; } return _phoneBtn; } @@ -131,18 +167,4 @@ } return _protocolView; } -- (void)getLinkPath:(NSString *)path params:(NSDictionary *)params{ - self.install_params = params; - [[NSNotificationCenter defaultCenter] postNotificationName:KNoti_InviteCodeUpdateKey object:params userInfo:@{}]; -} -/* -#pragma mark - Navigation - -// In a storyboard-based application, you will often want to do a little preparation before navigation -- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { - // Get the new view controller using [segue destinationViewController]. - // Pass the selected object to the new view controller. -} -*/ - @end diff --git a/yinmeng-ios/DingDangApp/V2Versions/Login/DDV2PhoneLoginVC.h b/yinmeng-ios/DingDangApp/V2Versions/Login/DDV2PhoneLoginVC.h index 92b783d..ccc026b 100644 --- a/yinmeng-ios/DingDangApp/V2Versions/Login/DDV2PhoneLoginVC.h +++ b/yinmeng-ios/DingDangApp/V2Versions/Login/DDV2PhoneLoginVC.h @@ -5,11 +5,12 @@ // Created by apple on 2023/7/4. // -#import "WLBaseViewController.h" +//#import "WLBaseViewController.h" +#import "DDBaseVC.h" NS_ASSUME_NONNULL_BEGIN -@interface DDV2PhoneLoginVC : WLBaseViewController +@interface DDV2PhoneLoginVC : DDBaseVC @property (nonatomic, strong) NSDictionary *install_params; @end diff --git a/yinmeng-ios/DingDangApp/V2Versions/Login/DDV2PhoneLoginVC.m b/yinmeng-ios/DingDangApp/V2Versions/Login/DDV2PhoneLoginVC.m index c9e1b76..2225fbd 100644 --- a/yinmeng-ios/DingDangApp/V2Versions/Login/DDV2PhoneLoginVC.m +++ b/yinmeng-ios/DingDangApp/V2Versions/Login/DDV2PhoneLoginVC.m @@ -6,18 +6,43 @@ // #import "DDV2PhoneLoginVC.h" +#import "AppDelegate.h" +/// View +#import "DDLoginTextView.h" +#import "DDWebViewController.h" +/// Tool +#import "AppDelegate+CYLTabBar.h" +#import "HttpRequestHelper.h" +#import "DDDESEncrypt.h" +//#import "DDLoginAccountModel.h" +/// Model +#import "AccountInfoStorage.h" +#import "AccountModel.h" +/// Third +#import +#import #import #import -#import "DDLoginTextView.h" -#import "AppDelegate.h" -#import "AppDelegate+CYLTabBar.h" -#import "DDWebViewController.h" + +typedef enum : NSUInteger { + DD_Login_Input_Phone, + DD_Login_Input_Password, + DD_Login_Input_Code, +} DDLoignType; @interface DDV2PhoneLoginVC () +@property (nonatomic, strong) SVGAPlayer *logoSVGAPlayer; + /**标题**/ -@property (nonatomic, strong) UILabel *titleLabel; +//@property (nonatomic, strong) UILabel *titleLabel; /**账号**/ @property (nonatomic, strong) DDLoginTextView *phoneView; +/** 获取验证码 **/ +@property (nonatomic, strong) UIButton *codeButton; + + + + /**验证码**/ @property (nonatomic, strong) DDLoginTextView *codeView; /**密码**/ @@ -36,6 +61,121 @@ @end @implementation DDV2PhoneLoginVC + + +- (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self name:KNoti_InviteCodeUpdateKey object:nil]; +} + +#pragma mark - Life Cycle +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + [IQKeyboardManager sharedManager].enable = YES; +} + +- (void)viewWillDisappear:(BOOL)animated { + [super viewWillDisappear:animated]; + [IQKeyboardManager sharedManager].enable = NO; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + self.isLoginType = 1; + // [self defaultNavTitle:@"" hideLine:YES]; + [self dd_addNavImage:@[@"myinfo_6"] isLeft:YES target:self action:@selector(backButtonAction) tags:nil]; + self.view.backgroundColor = [UIColor whiteColor]; + + [self initSubView]; + + //一键登录 + // [self initCLShanYanWithLogin]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(inviteCodeUpdate:) name:KNoti_InviteCodeUpdateKey object:nil]; +} + +#pragma mark - inviteView +- (void)initSubView { + [self.view addSubview:self.logoSVGAPlayer]; + [self.view addSubview:self.phoneView]; + + [self.logoSVGAPlayer mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(KScreenWidth * kScaleX); + }]; + +// [self.view addSubview:self.titleLabel]; +// [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { +// make.left.equalTo(self.view).offset(25); +// make.top.equalTo(self.view).offset(DDNavigationBarHeight()+20); +// make.width.mas_equalTo(300); +// make.height.mas_equalTo(28); +// }]; +// + + [self.phoneView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.equalTo(self.view); + make.top.mas_equalTo(self.logoSVGAPlayer.mas_bottom).mas_offset(20); + make.height.mas_equalTo(40); + }]; +// +// [self.view addSubview:self.codeView]; +// [self.codeView mas_makeConstraints:^(MASConstraintMaker *make) { +// make.left.right.equalTo(self.view); +// make.top.mas_equalTo(self.phoneView.mas_bottom).mas_offset(22); +// make.height.mas_equalTo(40); +// }]; +// +// [self.view addSubview:self.passWordView]; +// self.passWordView.hidden = YES; +// [self.passWordView mas_makeConstraints:^(MASConstraintMaker *make) { +// make.left.right.equalTo(self.view); +// make.top.mas_equalTo(self.phoneView.mas_bottom).mas_offset(22); +// make.height.mas_equalTo(40); +// }]; +// +// [self.view addSubview:self.inviteView]; +// [self.inviteView mas_makeConstraints:^(MASConstraintMaker *make) { +// make.left.right.equalTo(self.view); +// make.top.mas_equalTo(self.codeView.mas_bottom).mas_offset(22); +// make.height.mas_equalTo(40); +// }]; +// [self.view addSubview:self.loginTypeBtn]; +// [self.loginTypeBtn mas_makeConstraints:^(MASConstraintMaker *make) { +// make.top.mas_equalTo(self.phoneView.mas_bottom).offset(123); +// make.left.equalTo(self.view).offset(25); +// make.width.mas_equalTo(100); +// make.height.mas_equalTo(52); +// }]; +// [self.view addSubview:self.noLoginlabel]; +// CGFloat width = [ToolsObject sizeWithText:@"如无法登录,请点击这里" andFont:DDFont(12) maxSize:CGSizeMake(230, 52) andlineSpacing:1].width; +// [self.noLoginlabel mas_makeConstraints:^(MASConstraintMaker *make) { +// make.right.equalTo(self.view).offset(-25); +// make.height.mas_equalTo(52); +// make.centerY.equalTo(self.loginTypeBtn); +// make.width.mas_equalTo(width+10); +// }]; +// [self.view addSubview:self.loginBtn]; +// [self.loginBtn mas_makeConstraints:^(MASConstraintMaker *make) { +// make.centerX.equalTo(self.view); +// make.width.mas_equalTo(250); +// make.height.mas_equalTo(50); +// make.top.mas_equalTo(self.loginTypeBtn.mas_bottom).mas_offset(30); +// }]; +// NSString * invite_code = [ToolsObject getInfoObject:@"invite_code"]; +// self.inviteView.textField.text = invite_code?:@""; +} + + + +#pragma mark - Action +- (void)backButtonAction { + [self.navigationController popViewControllerAnimated:NO]; +} + +- (void)getCodeNumberAction { + +} + #pragma mark ------ 一键登录相关方法及配置 ------ - (void)initCLShanYanWithLogin { //默认 @@ -178,14 +318,14 @@ NSFontAttributeName: [UIFont systemFontOfSize:11] }; authViewModel.termTextColor = DDHEXColor(0x999999); - + NSString * userAgreementUrl = [NSString stringWithFormat:@"%@#/publicpage?position=1010",KWebURL]; NSString * privacyPolicyUrl = [NSString stringWithFormat:@"%@#/publicpage?position=1009",KWebURL]; // 加载本地的html NSURLRequest *userAgreementUrlRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:userAgreementUrl?:@""]]; NSURLRequest *privacyPolicyUrlRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:privacyPolicyUrl?:@""]]; - - + + GyAuthPrivacyItem *item1 = [[GyAuthPrivacyItem alloc] initWithTitle:@"《啵柚语音用户协议》" urlRequest:userAgreementUrlRequest index:1 @@ -230,7 +370,7 @@ authViewModel.authVCTransitionBlock = ^(CGSize size, id coordinator, UIView *customAreaView) { NSLog(@"页面生命周期 回调: 自定义VIEW"); }; - + return authViewModel; } @@ -255,68 +395,61 @@ AppUserModel * myModel = [AppUserModel new]; myModel.token = response.data[@"token"]; [ToolsObject saveUserModel:myModel]; - [ws getUserInfo:response.data[@"token"]]; + // [ws getUserInfo:response.data[@"token"]]; } }]; } --(void)getUserInfo:(NSString *)token -{ +- (void)getUserInfo:(NSString *)uid token:(NSString *)token { NSMutableDictionary *requestDict = [NSMutableDictionary dictionary]; - [NetworkRequest requestPOST:@"/user/info" parameters:requestDict block:^(BaseResponse * _Nonnull response) { - if (response.code == 200){ - if ([ToolsObject IsNullWithObject:response.data]) { - return; - } - AppUserModel *model = [AppUserModel yy_modelWithJSON:response.data]; - AppUserModel * myModel = [ToolsObject getUserModel]; - myModel = model; - myModel.token = token; - [ToolsObject saveUserModel:myModel]; - [[DDSocketTool shareTool] starConnection]; - [DDSocketTool shareTool].socketConnectBlock = ^(BOOL isSuccess) { - if (!isSuccess){ - [ToolsObject removeUserInfo]; - } - AppDelegate *delegate =(AppDelegate *)[UIApplication sharedApplication].delegate; - [delegate configureForTabBarController]; - }; - } + requestDict[@"uid"] = uid; + [HttpRequestHelper GET:@"/user/get" params:requestDict success:^(BaseModel * _Nonnull data) { + AppUserModel *model = [AppUserModel yy_modelWithJSON:data.data]; + model.token = token; + [ToolsObject saveUserModel:model]; + + [ToolsObject addPopVieToText:@"登录成功"]; + [self.navigationController popToRootViewControllerAnimated:NO]; + + AppDelegate *delegate =(AppDelegate *)[UIApplication sharedApplication].delegate; + [delegate configureForTabBarController]; + + } failure:^(NSInteger resCode, NSString * _Nonnull message) { + }]; + // [NetworkRequest requestPOST:@"/user/info" parameters:requestDict block:^(BaseResponse * _Nonnull response) { + // if (response.code == 200){ + // if ([ToolsObject IsNullWithObject:response.data]) { + // return; + // } + // AppUserModel *model = [AppUserModel yy_modelWithJSON:response.data]; + // AppUserModel * myModel = [ToolsObject getUserModel]; + // myModel = model; + // myModel.token = token; + // [ToolsObject saveUserModel:myModel]; + // [[DDSocketTool shareTool] starConnection]; + // [DDSocketTool shareTool].socketConnectBlock = ^(BOOL isSuccess) { + // if (!isSuccess){ + // [ToolsObject removeUserInfo]; + // } + // AppDelegate *delegate =(AppDelegate *)[UIApplication sharedApplication].delegate; + // [delegate configureForTabBarController]; + // }; + // } + // }]; } -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - [IQKeyboardManager sharedManager].enable = YES; -} -- (void)viewWillDisappear:(BOOL)animated { - [super viewWillDisappear:animated]; - [IQKeyboardManager sharedManager].enable = NO; -} -- (void)viewDidLoad { - [super viewDidLoad]; - // Do any additional setup after loading the view. - self.isLoginType = 1; - [self defaultNavTitle:@"" hideLine:YES]; - self.view.backgroundColor = [UIColor whiteColor]; - - [self initSubView]; - - //一键登录 - [self initCLShanYanWithLogin]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(inviteCodeUpdate:) name:KNoti_InviteCodeUpdateKey object:nil]; -} + - (void)inviteCodeUpdate:(NSNotification *)noti { - if ([noti.object isKindOfClass:[NSDictionary class]]){ + if ([noti.object isKindOfClass:[NSDictionary class]]){ NSDictionary * dataDic = noti.object; - if ([ToolsObject IsNullWithObject:dataDic]) { - return; - } - self.install_params = dataDic; + if ([ToolsObject IsNullWithObject:dataDic]) { + return; + } + self.install_params = dataDic; } } - (void)loginTypeBtnClick:(UIButton *)btn { - self.loginTypeBtn.selected = !self.loginTypeBtn.selected; self.passWordView.textField.text = @""; self.codeView.textField.text = @""; @@ -340,69 +473,9 @@ } } -- (void)initSubView { - - [self.view addSubview:self.titleLabel]; - [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { - make.left.equalTo(self.view).offset(25); - make.top.equalTo(self.view).offset(DDNavigationBarHeight()+20); - make.width.mas_equalTo(300); - make.height.mas_equalTo(28); - }]; - - [self.view addSubview:self.phoneView]; - [self.phoneView mas_makeConstraints:^(MASConstraintMaker *make) { - make.left.right.equalTo(self.view); - make.top.mas_equalTo(self.titleLabel.mas_bottom).mas_offset(44); - make.height.mas_equalTo(40); - }]; - - [self.view addSubview:self.codeView]; - [self.codeView mas_makeConstraints:^(MASConstraintMaker *make) { - make.left.right.equalTo(self.view); - make.top.mas_equalTo(self.phoneView.mas_bottom).mas_offset(22); - make.height.mas_equalTo(40); - }]; - - [self.view addSubview:self.passWordView]; - self.passWordView.hidden = YES; - [self.passWordView mas_makeConstraints:^(MASConstraintMaker *make) { - make.left.right.equalTo(self.view); - make.top.mas_equalTo(self.phoneView.mas_bottom).mas_offset(22); - make.height.mas_equalTo(40); - }]; -#pragma mark inviteView - [self.view addSubview:self.inviteView]; - [self.inviteView mas_makeConstraints:^(MASConstraintMaker *make) { - make.left.right.equalTo(self.view); - make.top.mas_equalTo(self.codeView.mas_bottom).mas_offset(22); - make.height.mas_equalTo(40); - }]; - [self.view addSubview:self.loginTypeBtn]; - [self.loginTypeBtn mas_makeConstraints:^(MASConstraintMaker *make) { - make.top.mas_equalTo(self.phoneView.mas_bottom).offset(123); - make.left.equalTo(self.view).offset(25); - make.width.mas_equalTo(100); - make.height.mas_equalTo(52); - }]; - [self.view addSubview:self.noLoginlabel]; - CGFloat width = [ToolsObject sizeWithText:@"如无法登录,请点击这里" andFont:DDFont(12) maxSize:CGSizeMake(230, 52) andlineSpacing:1].width; - [self.noLoginlabel mas_makeConstraints:^(MASConstraintMaker *make) { - make.right.equalTo(self.view).offset(-25); - make.height.mas_equalTo(52); - make.centerY.equalTo(self.loginTypeBtn); - make.width.mas_equalTo(width+10); - }]; - [self.view addSubview:self.loginBtn]; - [self.loginBtn mas_makeConstraints:^(MASConstraintMaker *make) { - make.centerX.equalTo(self.view); - make.width.mas_equalTo(250); - make.height.mas_equalTo(50); - make.top.mas_equalTo(self.loginTypeBtn.mas_bottom).mas_offset(30); - }]; - NSString * invite_code = [ToolsObject getInfoObject:@"invite_code"]; - self.inviteView.textField.text = invite_code?:@""; -} + + + - (void)setInstall_params:(NSDictionary *)install_params{ _install_params = install_params; if (![ToolsObject IsNullWithObject:install_params]){ @@ -412,49 +485,15 @@ } } -#pragma mark ------ 懒加载 ------ -- (UILabel *)titleLabel { - if (!_titleLabel) { - _titleLabel = [UILabel new]; - _titleLabel.text = @"登录解锁更多精彩内容"; - _titleLabel.font = [UIFont boldSystemFontOfSize:20]; - _titleLabel.textColor = DDHEXColor(0x333333); - _titleLabel.textAlignment = NSTextAlignmentLeft; - } return _titleLabel; + +- (NSString *)getPhoneEncryptDes{ + return [DDDESEncrypt DD_EncryptUseDES:self.phoneView.textField.text key:@"1ea53d260ecf11e7b56e00163e046a26"]; } --(DDLoginTextView *)phoneView -{ - if (!_phoneView) { - _phoneView = [[DDLoginTextView alloc]initWithFrame:CGRectZero withType:DDTextFieldPhone]; - } - return _phoneView; -} --(DDLoginTextView *)passWordView -{ - if (!_passWordView) { - _passWordView = [[DDLoginTextView alloc]initWithFrame:CGRectZero withType:DDTextFieldPassWord]; - } - return _passWordView; -} --(DDLoginTextView *)inviteView -{ - if (!_inviteView) { - _inviteView = [[DDLoginTextView alloc]initWithFrame:CGRectZero withType:DDTextFieldInvideCode]; - } - return _inviteView; -} --(DDLoginTextView *)codeView -{ - if (!_codeView) { - _codeView = [[DDLoginTextView alloc]initWithFrame:CGRectZero withType:DDTextFieldGetCode]; - WeakSelf(ws) - _codeView.getCodeBlock = ^{ - [ws requestCode]; - }; - } - return _codeView; +- (NSString *)getPasswordEncryptDes { + return [DDDESEncrypt DD_EncryptUseDES:self.passWordView.textField.text key:@"1ea53d260ecf11e7b56e00163e046a26"]; } + //获取手机验证码 - (void)requestCode{ @@ -469,25 +508,179 @@ self.codeView.getCodeBtn.enabled = NO; WeakSelf(ws) - NSMutableDictionary *parameter = @{@"mobile":self.phoneView.textField.text,@"type":@(1)}.mutableCopy; - [NetworkRequest requestPOST:@"sms/getCode" parameters:parameter block:^(BaseResponse * _Nonnull response) { - if (response.isSuccess) { - [ToolsObject addPopVieToText:response.msg]; - [ws.codeView.getCodeBtn startCountDownWithSecond:60]; - [ws.codeView.getCodeBtn countDownChanging:^NSString *(JKCountDownButton *countDownButton,NSUInteger second) { - NSString *title = [NSString stringWithFormat:@" %zds后可重发 ",second]; - return title; - }]; - [ws.codeView.getCodeBtn countDownFinished:^NSString *(JKCountDownButton *countDownButton, NSUInteger second) { - ws.codeView.getCodeBtn.enabled = YES; - return @" 重新获取 "; - }]; - - } else { - [ToolsObject addPopVieToText:response.msg]; + // NSString *desPhone = [DDDESEncrypt DD_EncryptUseDES:self.phoneView.textField.text key:@"1ea53d260ecf11e7b56e00163e046a26"]; + NSMutableDictionary *parameter = @{@"mobile":[self getPhoneEncryptDes], @"type":@(1)}.mutableCopy; + [HttpRequestHelper POST:@"sms/getCode" params:parameter success:^(BaseModel * _Nonnull data) { + [ToolsObject addPopVieToText:data.message]; + [ws.codeView.getCodeBtn startCountDownWithSecond:60]; + [ws.codeView.getCodeBtn countDownChanging:^NSString *(JKCountDownButton *countDownButton,NSUInteger second) { + NSString *title = [NSString stringWithFormat:@" %zds后可重发 ",second]; + return title; + }]; + [ws.codeView.getCodeBtn countDownFinished:^NSString *(JKCountDownButton *countDownButton, NSUInteger second) { ws.codeView.getCodeBtn.enabled = YES; - } + return @" 重新获取 "; + }]; + } failure:^(NSInteger resCode, NSString * _Nonnull message) { + [ToolsObject addPopVieToText:message]; + ws.codeView.getCodeBtn.enabled = YES; }]; + + // [NetworkRequest requestPOST:@"sms/getCode" parameters:parameter block:^(BaseResponse * _Nonnull response) { + // if (response.isSuccess) { + // [ToolsObject addPopVieToText:response.msg]; + // [ws.codeView.getCodeBtn startCountDownWithSecond:60]; + // [ws.codeView.getCodeBtn countDownChanging:^NSString *(JKCountDownButton *countDownButton,NSUInteger second) { + // NSString *title = [NSString stringWithFormat:@" %zds后可重发 ",second]; + // return title; + // }]; + // [ws.codeView.getCodeBtn countDownFinished:^NSString *(JKCountDownButton *countDownButton, NSUInteger second) { + // ws.codeView.getCodeBtn.enabled = YES; + // return @" 重新获取 "; + // }]; + // + // } else { + // [ToolsObject addPopVieToText:response.msg]; + // ws.codeView.getCodeBtn.enabled = YES; + // } + // }]; +} + + + +- (void)loginBtnClick { + + [self loginRequest]; +} + +- (void)loginRequest +{ + [self.view endEditing:YES]; + + if ([ToolsObject IsNullWithObject:self.phoneView.textField.text]) { + [ToolsObject addPopVieToText:@"手机号不能为空"]; + return; + } + if (self.phoneView.textField.text.length != 11) { + [ToolsObject addPopVieToText:@"请输入正确的手机号"]; + return; + } + NSMutableDictionary *dic = [NSMutableDictionary dictionary]; + + NSString *loginUrl = @"oauth/token"; + if (self.isLoginType == 1) { + // loginUrl = @"oauth/token"; + if ([ToolsObject IsNullWithObject:self.codeView.textField.text]) { + [ToolsObject addPopVieToText:@"请输入验证码"]; + return; + } + if (self.codeView.textField.text.length != 5) { + [ToolsObject addPopVieToText:@"请输入6位验证码"]; + return; + } + [dic setObject:self.codeView.textField.text forKey:@"code"]; + [dic setObject:self.inviteView.textField.text?:@"" forKey:@"invite_code"]; + + + }else if (self.isLoginType == 2){ + // loginUrl = @"/pwd/login"; + if ([ToolsObject IsNullWithObject:self.passWordView.textField.text]) { + [ToolsObject addPopVieToText:@"请输入密码"]; + return; + } + if (self.passWordView.textField.text.length < 6) { + [ToolsObject addPopVieToText:@"密码需要同时包含6-12位字母和数字"]; + return; + } + [dic setObject:[self getPasswordEncryptDes] forKey:@"password"]; + } + + [dic setObject:[self getPhoneEncryptDes] forKey:@"phone"]; + [dic setObject:@"uyzjdhds" forKey:@"client_secret"]; + [dic setObject:@"1" forKey:@"version"]; + [dic setObject:@"erban-client" forKey:@"client_id"]; + [dic setObject:@"password" forKey:@"grant_type"]; + + WeakSelf(ws) + [HttpRequestHelper POST:loginUrl params:dic success:^(BaseModel * _Nonnull data) { + AccountModel *accountModel = [AccountModel DD_ModelWithDict:data.data]; + + if (accountModel && accountModel.access_token.length > 0) { + [[AccountInfoStorage instance] saveAccountInfo:accountModel]; + } + + AppUserModel *model = [AppUserModel new]; + model.token = accountModel.access_token; + [ToolsObject saveUserModel:model]; + [ws getUserInfo:accountModel.uid token:accountModel.access_token]; + + } failure:^(NSInteger resCode, NSString * _Nonnull message) { + [ToolsObject addPopVieToText:message]; + }]; + // [NetworkRequest requestPOST:loginUrl parameters:dic block:^(BaseResponse * _Nonnull response) { + // if (response.isSuccess) { + // if ([ToolsObject IsNullWithObject:response.data]) { + // return; + // } + // AppUserModel * myModel = [AppUserModel new]; + // myModel.token = response.data[@"token"]; + // [ToolsObject saveUserModel:myModel]; + // [ws getUserInfo:response.data[@"token"]]; + // } else { + // [ToolsObject addPopVieToText:response.msg]; + // } + // }]; +} + +#pragma mark - Get +- (SVGAPlayer *)logoSVGAPlayer { + if (!_logoSVGAPlayer) { + _logoSVGAPlayer = [[SVGAPlayer alloc] init]; + _logoSVGAPlayer.loops = 1; + _logoSVGAPlayer.clearsAfterStop = NO; + } + return _logoSVGAPlayer; +} + +- (UIButton *)codeButton { + if (!_codeButton) { + _codeButton = [[UIButton alloc] init]; + [_codeButton setTitle:@"获取验证码" forState:UIControlStateNormal]; + [_codeButton addTarget:self action:@selector(getCodeNumberAction) forControlEvents:UIControlEventTouchUpInside]; + } + return _codeButton; +} + + +- (DDLoginTextView *)phoneView { + if (!_phoneView) { + _phoneView = [[DDLoginTextView alloc]initWithFrame:CGRectZero withType:DDTextFieldPhone]; + } + return _phoneView; +} + +- (DDLoginTextView *)passWordView { + if (!_passWordView) { + _passWordView = [[DDLoginTextView alloc]initWithFrame:CGRectZero withType:DDTextFieldPassWord]; + } + return _passWordView; +} + +-(DDLoginTextView *)inviteView { + if (!_inviteView) { + _inviteView = [[DDLoginTextView alloc]initWithFrame:CGRectZero withType:DDTextFieldInvideCode]; + } + return _inviteView; +} +- (DDLoginTextView *)codeView { + if (!_codeView) { + _codeView = [[DDLoginTextView alloc]initWithFrame:CGRectZero withType:DDTextFieldGetCode]; + WeakSelf(ws) + _codeView.getCodeBlock = ^{ + [ws requestCode]; + }; + } + return _codeView; } - (UIButton *)loginTypeBtn { @@ -503,8 +696,7 @@ } return _loginTypeBtn; } --(YYLabel *)noLoginlabel -{ +- (YYLabel *)noLoginlabel { if (!_noLoginlabel) { _noLoginlabel = [[YYLabel alloc]init]; _noLoginlabel.textColor = DDHEXColor(0x333333); @@ -523,15 +715,14 @@ return _noLoginlabel; } --(UIButton *)loginBtn -{ +- (UIButton *)loginBtn { if (!_loginBtn) { _loginBtn = [UIButton buttonWithType:(UIButtonTypeCustom)]; [_loginBtn setTitle:@"登录" forState:(UIControlStateNormal)]; [_loginBtn setBackgroundImage:[UIImage imageNamed:@"v2_com_btn"] forState:UIControlStateNormal]; [_loginBtn setBackgroundImage:[UIImage imageNamed:@"v2_com_btn3"] forState:UIControlStateDisabled]; [_loginBtn setTitleColor:UIColor.whiteColor forState:(UIControlStateDisabled)]; - + [_loginBtn setTitleColor:UIColor.whiteColor forState:(UIControlStateNormal)]; _loginBtn.titleLabel.font = DDFont(16); [_loginBtn addTarget:self action:@selector(loginBtnClick) forControlEvents:UIControlEventTouchUpInside]; @@ -539,77 +730,5 @@ return _loginBtn; } -- (void)loginBtnClick { - - [self loginRequest]; -} - --(void)loginRequest -{ - [self.view endEditing:YES]; - - if ([ToolsObject IsNullWithObject:self.phoneView.textField.text]) { - [ToolsObject addPopVieToText:@"手机号不能为空"]; - return; - } - if (self.phoneView.textField.text.length != 11) { - [ToolsObject addPopVieToText:@"请输入正确的手机号"]; - return; - } - NSMutableDictionary *dic = [NSMutableDictionary dictionary]; - [dic setObject:self.phoneView.textField.text forKey:@"tel"]; - NSString *loginUrl = @"/sms/login"; - if (self.isLoginType == 1) { - loginUrl = @"/sms/login"; - if ([ToolsObject IsNullWithObject:self.codeView.textField.text]) { - [ToolsObject addPopVieToText:@"请输入验证码"]; - return; - } - if (self.codeView.textField.text.length != 6) { - [ToolsObject addPopVieToText:@"请输入6位验证码"]; - return; - } - [dic setObject:self.codeView.textField.text forKey:@"code"]; - [dic setObject:self.inviteView.textField.text?:@"" forKey:@"invite_code"]; - - }else if (self.isLoginType == 2){ - loginUrl = @"/pwd/login"; - if ([ToolsObject IsNullWithObject:self.passWordView.textField.text]) { - [ToolsObject addPopVieToText:@"请输入密码"]; - return; - } - if (self.passWordView.textField.text.length < 6) { - [ToolsObject addPopVieToText:@"密码需要同时包含6-12位字母和数字"]; - return; - } - [dic setObject:self.passWordView.textField.text forKey:@"pwd"]; - } - [dic setObject:[ToolsObject getDeviceIdentifier] forKey:@"phone_model"]; - [dic setObject:[UIDevice currentDevice].systemVersion forKey:@"system_version"]; - WeakSelf(ws) - [NetworkRequest requestPOST:loginUrl parameters:dic block:^(BaseResponse * _Nonnull response) { - if (response.isSuccess) { - if ([ToolsObject IsNullWithObject:response.data]) { - return; - } - AppUserModel * myModel = [AppUserModel new]; - myModel.token = response.data[@"token"]; - [ToolsObject saveUserModel:myModel]; - [ws getUserInfo:response.data[@"token"]]; - } else { - [ToolsObject addPopVieToText:response.msg]; - } - }]; -} - -/* -#pragma mark - Navigation - -// In a storyboard-based application, you will often want to do a little preparation before navigation -- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { - // Get the new view controller using [segue destinationViewController]. - // Pass the selected object to the new view controller. -} -*/ @end diff --git a/yinmeng-ios/DingDangApp/V2Versions/Login/Model/DDLoginAccountModel.h b/yinmeng-ios/DingDangApp/V2Versions/Login/Model/DDLoginAccountModel.h new file mode 100644 index 0000000..417ff7e --- /dev/null +++ b/yinmeng-ios/DingDangApp/V2Versions/Login/Model/DDLoginAccountModel.h @@ -0,0 +1,23 @@ +// +// DDLoginAccountModel.h +// DingDangApp +// +// Created by 触海 on 2023/12/12. +// + +#import "NSObject+DDExtension.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface DDLoginAccountModel : NSObject + +@property (nonatomic , assign) NSString *uid; +@property (nonatomic , copy) NSString *jti; +@property (nonatomic , copy) NSString *token_type; +@property (nonatomic , copy) NSString *refresh_token; +@property (nonatomic , copy) NSString *netEaseToken; +@property (nonatomic , copy) NSString *access_token; +@property (nonatomic , assign) NSNumber *expires_in; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/DingDangApp/V2Versions/Login/Model/DDLoginAccountModel.m b/yinmeng-ios/DingDangApp/V2Versions/Login/Model/DDLoginAccountModel.m new file mode 100644 index 0000000..0a68ec8 --- /dev/null +++ b/yinmeng-ios/DingDangApp/V2Versions/Login/Model/DDLoginAccountModel.m @@ -0,0 +1,12 @@ +// +// DDLoginAccountModel.m +// DingDangApp +// +// Created by 触海 on 2023/12/12. +// + +#import "DDLoginAccountModel.h" + +@implementation DDLoginAccountModel + +@end diff --git a/yinmeng-ios/DingDangApp/V2Versions/Login/View/DDProtocolView.m b/yinmeng-ios/DingDangApp/V2Versions/Login/View/DDProtocolView.m index 5a57bb5..4fc2945 100644 --- a/yinmeng-ios/DingDangApp/V2Versions/Login/View/DDProtocolView.m +++ b/yinmeng-ios/DingDangApp/V2Versions/Login/View/DDProtocolView.m @@ -6,6 +6,7 @@ // #import "DDProtocolView.h" +#import "DDAppColor.h" @implementation DDProtocolView - (instancetype)initWithFrame:(CGRect)frame { @@ -29,8 +30,8 @@ - (UIButton *)submitBtn { if (!_submitBtn) { _submitBtn = [UIButton buttonWithType:UIButtonTypeCustom]; - [_submitBtn setImage:[UIImage imageNamed:@"v2_com_2"] forState:UIControlStateNormal]; - [_submitBtn setImage:[UIImage imageNamed:@"v2_com_1"] forState:UIControlStateSelected]; + [_submitBtn setImage:[UIImage imageNamed:@"login_checkbox_uncheck"] forState:UIControlStateNormal]; + [_submitBtn setImage:[UIImage imageNamed:@"login_checkbox_checked"] forState:UIControlStateSelected]; [_submitBtn addTarget:self action:@selector(submitBtnClick) forControlEvents:UIControlEventTouchUpInside]; [_submitBtn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentRight]; } return _submitBtn; @@ -49,13 +50,13 @@ text.yy_alignment = NSTextAlignmentLeft; text.yy_color = DDHEXColor(0x999999); WeakSelf(ws) - [text yy_setTextHighlightRange:[text.string rangeOfString:@"《啵柚语音用户协议》"] color:DDHEXColor(0x5981FF) backgroundColor:[UIColor whiteColor] userInfo:nil tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { + [text yy_setTextHighlightRange:[text.string rangeOfString:@"《啵柚语音用户协议》"] color:[DDAppColor dd_subTitleColor] backgroundColor:[UIColor whiteColor] userInfo:nil tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { if (ws.userBlock) { ws.userBlock(); } } longPressAction:nil]; - [text yy_setTextHighlightRange:[text.string rangeOfString:@"《啵柚语音隐私政策》"] color:DDHEXColor(0x5981FF) backgroundColor:[UIColor whiteColor] userInfo:nil tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { + [text yy_setTextHighlightRange:[text.string rangeOfString:@"《啵柚语音隐私政策》"] color:[DDAppColor dd_subTitleColor] backgroundColor:[UIColor whiteColor] userInfo:nil tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { if (ws.privacyBlock) { ws.privacyBlock(); } diff --git a/yinmeng-ios/Podfile.lock b/yinmeng-ios/Podfile.lock index a1bebb0..de00cc7 100644 --- a/yinmeng-ios/Podfile.lock +++ b/yinmeng-ios/Podfile.lock @@ -591,4 +591,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 4a3e8c3e3691165802b43178346af03c39e4ae9b -COCOAPODS: 1.12.1 +COCOAPODS: 1.14.2