From 5f9a85b73d22eef34da7ff56a78b9834d85c91ff Mon Sep 17 00:00:00 2001 From: nerdycat Date: Thu, 11 Oct 2018 15:16:13 +0800 Subject: [PATCH] compatible with Swift 4.2 --- .../Cupcake-Demo.xcodeproj/project.pbxproj | 10 +- .../UserInterfaceState.xcuserstate | Bin 97018 -> 43455 bytes .../xcschemes/Cupcake-Demo.xcscheme | 4 +- Cupcake-Demo/Cupcake-Demo/AppDelegate.swift | 2 +- .../Cupcake-Demo/AppStoreViewController.swift | 6 +- .../Cupcake-Demo/ExamplesViewController.swift | 2 +- Cupcake.podspec | 2 +- Cupcake/AttStr.swift | 52 +++++-- Cupcake/Button.swift | 6 +- Cupcake/CPKStackView.swift | 39 +++-- Cupcake/Font.swift | 2 +- Cupcake/ImageView.swift | 2 +- Cupcake/StaticTable.swift | 2 +- Cupcake/Styles.swift | 5 +- Cupcake/TextField.swift | 2 +- Cupcake/__Private__Implementations__.swift | 140 +++++++++++++----- 16 files changed, 188 insertions(+), 88 deletions(-) diff --git a/Cupcake-Demo/Cupcake-Demo.xcodeproj/project.pbxproj b/Cupcake-Demo/Cupcake-Demo.xcodeproj/project.pbxproj index 1cbccef..cb8dece 100644 --- a/Cupcake-Demo/Cupcake-Demo.xcodeproj/project.pbxproj +++ b/Cupcake-Demo/Cupcake-Demo.xcodeproj/project.pbxproj @@ -175,7 +175,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0820; - LastUpgradeCheck = 0910; + LastUpgradeCheck = 1000; ORGANIZATIONNAME = nerdycat; TargetAttributes = { 841B2C6D1E7BC5900084B37C = { @@ -285,6 +285,7 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; @@ -292,6 +293,7 @@ CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -340,6 +342,7 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; @@ -347,6 +350,7 @@ CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -385,7 +389,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "nerdycat.Cupcake-Demo"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = 1; }; name = Debug; @@ -400,7 +404,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "nerdycat.Cupcake-Demo"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = 1; }; name = Release; diff --git a/Cupcake-Demo/Cupcake-Demo.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate b/Cupcake-Demo/Cupcake-Demo.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate index ed24cd16fd65a6949a48b987f2f8bb3d3785806e..6f4e803c830728e1a7341a5f0a4a83066d8916c2 100644 GIT binary patch literal 43455 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 Gd;bObk1kdK literal 97018 zcmc$H2VfJ&((vu>sb0}ZvLrgD6To1qX-ROALBS2n1`GsYY+)SSV#|~O$!&V?y<*eS z8|l6G3Z(JUdqP4A>Ghwz)2Y}J0rJ21B_Y_l+1cqkJG+`&+R{+p7Rk=u$srDNgyT6A zXYSFnN3Z#VSB6{L>YJP94{lz1RJbP6RyDY~wPtxed|WX&(%j<W(8(KaahgYR7S77K zxeU(39m0*^MslOLEN(P6hRf#0asloLZZ=oM6>}wADObkL;mWxnSI-^At>7BCMy`o# z=32O;xmNBN?qu#<?mX@i?ketT?iy|jcRhC!cLR3|cPqDzyO+C<dx(3CdzyQmdzst8 zy~XX~-se8xc5`2GUvqo7?-7qo$c!w=ifqV^1SFz<s6Wa?1JFP;2n|L<&`>lC4M*8% zEE<O<qDg29Ivn{?02QM-s2t5j^U!>>7*(TMv>er=qtHsU3av(K&@t#_bP75ZorX?F zXP~puh3F!5IogCaqb+DFx)xoBwxK)Fo#-C)5PBFrj-Ex&p_kEHXczhq`UHK7K0{xl z@6jLVPxKeIVjJ#@`{DjL6A!=x@gO`H55Z&cI6NLtz!UK#JRKj3b8!`3fEVIL_(;4M zhwu_yjhEsYT#M`Q3fzp_@G86xAB#`GC*rH|HFyK=z@2y_-h?;fEqE)w7GH<2=T5*k z;al-G{3?D2zl-0)@8b{fr}zi_BmNElO-#f|JftV-L;8|_WCR&a#*v9+63HWl<Oots zN=PXwBa6rqvW(P`6=W4zOO7KdIf0x=P9i6hQ^*D65^^QEigb{h$Zh0qau2zmJU|{K z&yp9(cJey;kbFwMBwv#~<Qwuk`J3l?E1$vl;QR3X`AmKQpT&>mC-GDHLjDN8grCEg z^Fcnu*YZd4EqsJm`IGoF_;dL4`3v|9`3?Lg{(Amq{yzR8{&D^({%QUhekcDX|2F>) z{{jCs{~iA${}cZ!{~Q0i$zl>sPLtQv$28nD%9L#yZ<=75VJa}qGR-y>ndX}onU<Jp zOtq%4>1b2C=@`>m({ZLVOy`&`G+ku6)O4BYa?=*m^`@Imx0tq>9yUF0dfN1i>3P!& zrWZ|bncgvdVEWMXsp)&uPp02YznlIt{cYyVqFFI#m_6p6<{{=o%vt8q=CS5+=JDpk z%?0Ko%w^^Z^AdB|e3ZG#e6+dM+-5$`e4_bu^Eu{=%pK;<=IhKinr|}SYktuDsQC%= zljc{=ubJO6ziocU{I2;+^Ec)n%)grdwg?u7#clCge3n6$VV04W(UvimX_mt+`IbV< zOv@}wg{8`}*ivJux3pW<Sk_xq3$>hOInQ#D<x<OKmd%#yEH_zhwcKX8-SUv-amzE7 z7cDz1?^!;wd}jI5vfJ{r<#)^9R%|6!ht+NMS$kP~Tl-jtTeGa=tU1<0tpRJXb&j>d zT4}AehOPD125X~rjdi`1T2Hi|WIfq>zV#C8mDUdHR_iwF-PZf94_P0!K5u>5y2JXq z^$qJs*3YcFt$VEBSiiOYVM8{vO|Us_eQg75Lu|ushu9|Crq~X(&9LR#ifwajmA3h| zD%%3vGTRDUi>=+Z)^>{R4BI)j^KBQ{uCZ;jZM9u*yTNw1?S9+Cw#RIb+n%t!VtdWD z%l5wQW81g3A8o(c{<0%GwiCO<o?-84?`I!u&$dsnPqt69Pq)vq7un0~L3@RLiM`go z+`huzU~jaqu^($c!G5a!Z2RT*tL>fk&Gs$!+wFJR@3TK>f5`rv{U!T$`)l^s?QhsW zvVU&>+Wx)$7l9Y7f+#oyMd%}B3WJ4V!f;`NFj<%`94^cda)nZ%Oqe5-3-g6V!ct+G zP$x7CEyB^ldf`~%I6)PtaJ+DWaE@@XaEWk*aHVjS&>`F=+%9Yr?hx)2?h@`69v7Yv zo)n%Eo)(@LUJzauUJ>3E-V@#zJ`p|@z7)O{z7u{C{t*5Yk%&dJXcq-h6eUp>`-%O< zOmToXP#h!<7DtF9#j)ZzajG~?oG#{xv&0gyLR=s&7MF>2;&QP`jEKjI$BC+Vx_E|o zrg*V<iFm2FLF^Da#f{=7@mldl@mBFE@oDiH@mcXX@p<tD@kQ|^@n!Kp;@jdo;=AH| z;wR!4;+Nw0;$HCw@kj9wiAcO;lFX7M$&yFvBMp>>O2edy(j+NInk-F`rb^SKTq#eQ zDb10}rJz(HRZ4TEB~rDtR9YrANR3jHv|3st9V4xk)=BFnDxD{tFI^yAC|x97EL|d9 zAzdxMEx#v!D1Rb<F7KB2$lu97$Un=!$$vUH2XUAkHizhNI9v{oqlcrnqn~4dW3XeG zV}v8ik?k1onB<t^nC>{-k>~I`W;td%N*r?>6^?n11&$*fOB^+hWsZ7BgQMBe>S%YY zcC2+A>!6Mk9j7=>cbw%o*KvX4V#j5UD;?K3IvtxG*E()+-0Zl`afjn>$9;|m9gjF3 zcRb~I*71VlWyf~MYmPS^|8czQ_`vb8<1@#Xj;|fxI`%q#a{TJ}!|}I*6_a9B1VvVy zN`~T7dMSOCOl6QVR5?T$rHoO=DHD~+$~5ILC08j>W-3Q0#Y&kHROTvG$|5DCELFnF za%F|mq#Uh8lvT<x%6dgrPEbx(PE*cQ&QZ=+E>bR4u28O4I+RVyR^@u-CgoOTn{t<O zukwKMu=1Glr1FgNyz-Lrs<KmgL)oRgqr9(tq<pG;p?sx$qkOOYsQjY*uKeXhPTpy8 z+MSY9ak`yeXHRDzXMg8F=Md*`=Sb&h=UC?iXO45K^HApuXTG!08E_UkOP%G;O6Pp% zLg!*<wX@b)=RC^U=xlMeIafN@IM+Fka~|(J$$6^t4CmR-^PCqtFL7S(yvn)3xzV}B zd7bk{=Pl0Lop(C#ao+EI$oZ)A3Fp(!=bSG(UvchmzV3X>`L^>t=ZDTuoS!>)JNG!h zbN=A`+4-CEPZ#GRF0;$#5?v0L%jI$PaP@Zea}96}b`5ilaAmo&UE^JoTvJ@rU5C5! zTz=Oq*KAjbYmTeJHP5xcb);*FtH!m=RqtwWHM?3}?XK0XwXS1b)ODik6xZplvs~x9 zE_OZTdd~H{>t)v~uAQ#eTyME{x!!fX=laO?vFmf!7p|{edtBeU_PTy{{o?w=^`{%T zvD@snxCOW9R@_dv$L)3Za`$%kcW1f>yN9?BagT71c8_sSb5D04>ORbUxO;{>*PZ7s zahJNw+;iMVx)-}c?j`O9ccZ(>-RxfLUguu#KGuD@`waJ)?z7yNxi5EL;l9#+t@}Fn z_3pdecf0R#KjD7T{gnG@_YU_?_iOIg-5<I?a)0dp*8QFPd-q=V-x*v6%D@?Nh9g7C zaAx$)=$FwyV`RptjI4|)8B;T+Wz5W&l@Z7|B4cjGyo~u7wHe`zWf`p*Z5fe__KcMo zt1?z+tjXxe*qpH?<NAynGH%JZHRG|2$1|SDcrxRujHff6$#^#7)r{>KJ2F1W_%!3Q zjL$Q^$oMj2cg9y4KV<xv@l(dn8NX!w>JdDmNAk!Xhez=^JuZ*ili}&(>Fep|$@Yx( zjPs25Oz=$fO!DM-CVQrMrh2A%@;wC}zh|CjzNgBwz_ZY^$aAD=m1nUh<XPgW_SAch z@~rTz_Z;gv&ZBy$=XlQvo)bN1dd~8k?b+bz@N{}MdNz4Bd$xGCdam_c$2WMc_uTH; z=DEZ3l;>&BGoEKX&v~Bryx@7!^P1;%&l{dEJYRZtd%p5~?b+k`#`CS`7tgPr-#ov2 zC9mvtconbH>+-t28QwnLzTSS`Z0}g_IPZAx1n)%eByWy)vUiGis&|?<-&^4Id*^xQ zd#k()ybHaHyhnN$dzX3Zyvx1Ec-MN@dDnZ7^&aO{z0`ZW_XO{W-ZQ;tdC&H4@OF4R zy&JuoyqmpSyj#7ucyIOI=6&4zg!f7BQ{Jb&&v>8pKIh%;-QnHo{nY!J_jB(T-Y>no zy<d61_U`e1<NenAo%eh1Z{FX%fB0md!>9P1K9|q!%kX)8eSQ6W{e79falY}s3BHNG zNxmH4WZx9uR9~Ji-&f!}!Z+Jj<Xhsa_AT|*_-cJ&-!fmFZ@I7Dca(31uff;oTjg8r zTjM*%cf9XR-&wx1edqYj^_}Ot!gr<bD&JP$wZ7|o+kAKU?)E+Hd&c*y?>XP|zL$O5 zeLH+ReQ)~S^?m63#<$n^v+oz*AHF|(pdPq~xre2P&_nE@^l<j@^zc>=Zfb96*umL2 zJ11}==iprPN`j+Tgx9n!fWM=AlDUIx8mimcIys4xRjiUuPT`y?Px1Ha!jLjJcjBaR zIr$Uvv-}0Q`B@XP3&v;VP0XK|RWR9Kkdr-jazVkAoRE?cDDcl~Ze7vVQe6`+Xs&5* z3^zrLnY~<pZuqsFkL$tp<a%+vxjtN9uAgdB&8kJUsy5ZG3aWT5m&py_1_BvAZU{G& z8>UJW@1gh`Aj(AXx9U-9yIL1g4ojS>qIzk5b5o?XxuGH48p@e6e*BcYvE#D*ld>md zO_-QJK5NRvvAJ2}CQiyJD9H8a<xiNfm<_LQs%>6X*jn8f4k-iRgVNU8aBH|W#z7L= zwvaL^aZY`7eA>#U`lH*!fm-0Wepx+`q4Wpv+?ojN^HO6BDZ{%X43z}S!)=k~*6O7V z;b5dX5-zBYRELzF3{)eyqPe+YX?1I$ZEk&AJphH29`R?@OY;&Q8KNJ@9m);Ao*U0i z;3jgDxEyXWH-($ZP2;Akvg%M3)v3Bvx0<1PRIlp0o;wT#KZDEV^0<7ifb(<1xS47X zkbIVUu6hZ@Z&Ump#b2uJ6o0MO9SO7hYwLmJ+}1Eqs=)8T<;|-~s#n(6Rl~<2#hcsK z2AkvRric#MR#d&Fxjhn6vKZxt!6b>hGE(1AA6dgt24QC%nOh%TrQ?p_)u(e8hZ~z) z*UW6KZdqOsUfNz)$7G+RswBh(;kNp^rX;+J81nd7g8`j{`f%Gqpb~HtRWA+4{HTIk z%niSetK{Z#^SJq36}Ny}$SvZIRC}tu)ZS_zwXfPw?XPC41Fqvj+!9ToGq_qV%q;_( z9;i;y#F?e8P)}A*VJ5wxL6b>EYZx@@jmfmQxi%aEJ7}t{ZmngaW}?-l2>v!#uPo@l z2iuo60`vm?H*KKeh7kqfW!3Es5sg7zW|`5C%GmI>2$*bnxTQ7R20v6spi%+0?lk0) zD1A1!@j1h^lWXH5Tswr7mE0<BHMb_DxLTW=Bf5GSD<zD4#a9<@s&8-831co3ULDb& z^k`|VZ>(-z)9sNuQRUP@>g3nCwcI+GU_Ey%cN|Qzk~^L|fjf~qX+Bg?8fsg^O><kS z;s23^H4JZ4q+(4A%$QjljXt?rrG+_DGK&kFTk8#WVWx>{j)K&|3ild!3U?~ZcN%v( zcLsMRcNTXxHv<gMh-O92HJXSP$34BQI<j1YXsoVpihs;}wy8F}x^$T_HvUW<s}5Bs zs6*7OkTPa|4G3v8C`z|%AT<yPHx@KAbfaV55sb99*F@S|!`rnuem-~cM(zUcLhd4U zm^xA&t!D4wF6Ax*$}i`x;I3Q{pQ}=%LLIIiqK;rD1GXNITBF-m)h~-EcssX&>)<-M zjSKX3pb3KFeEr8TSVJG6E-pzRrM{_7Lt9o|-`dG-;x_*S%>0sIsaE_lsN4zx=1O%G zgp?7B^4nW#s#k=w3c!<%=QnE4$8>wH6M7qWJFH>3t*zB-I=S1p%{#a|fb%=KySTf# zRSON>SC$u5Md}+NoK`ossN>Y}Di>1bEURw_PaQL6Ol2Eb|Cs99#`>l)b@h?u?Muf* z2{HcG2ul7XmGpFy?&lr|Dei)~6^6DAOX=huWa3HnNFVty_lUj}B<Vjc?qtL5<Q`?{ z*wV3I@W~GJIJnU9Pz_wgoup0zyU$TM-JYJ|F7Dt~gU4m-M7_Yh7*dA8BryX_ilWIL z-pRehXxd+JeTG-KS3}C6{g|N>NCfQr18OXIJGs}n;T_y->eLSI4Rsnz7>4K}Cc5&Z zi+l!x|8Vax1aGU;JGgh%L)E&9V(>=e>4)5>oNFWZ5%)3oiF%lNxH@Aa_Zb-M7iumT z>~fYd9g;MiwvY#5L2Rniek`bmyr8+M8e$N5mnRuE+yF)5aBbJmXNH>_!;#iCy1u?) z`ubMQV}7q^c6+(sx#3&6AGja6pSYj7U$|en-_(4yK=rGI>P&T(8raJH!Trho#r@4) zju67?5$bGpky-<xp;is6b&CqYGg!94Lg+%BCXHIiFw$8gEEGvrSfV9UJq;g7@vOJ; z%)c7KHLHuqL)Aj#8F(&uOiTOHhWZ*kL}j%#x3|`Wqs$@+c{tZrBqIk>kQ2F(8)c|P zYOz|Pma1jy9JPEa@**GV!OejGdr==Xs8*<zpq&c%X)e>yz@UaPAA+yW>*zL3@<7q( za8vE*n&t+untcF4SZR%nZm4exgK>6;t6}M=Ccn|m%a*l;A>A3UPpGt*lE~7b26x94 zgVO2J$nVn)jIA|=%?-6+iHb#$2R*{+{}_Tj1dZZcooECasm@d9ccLsbTCGwSs0%BX z!Kk*ywb6C8DBM&RS+3b48qZz4LCtoOmo>*mIcV~tl3>il*L0#BZgaxAil(Az`nswv zRgct{K^@TySkzE1%0v0;Vl|{L>9VNlYnZV@B&;COk5GxWXjFGwG?JDFeIcj<g|xR+ z28JI3S!iqpo?Raqts8@3iKENHb=7U{ZE->FKvkT87I3T3BJM7>lUiEc7G4N{w}u-a zHCP#ju)0hgr^_OQmQ<Dm!JIo$h}*1xwiMNXahC*(+aoM5i3@5YTFOMF%OVU8j+UwQ zYBmIdwQI9SWoEA*mAQ6o_SlJ|GAEClvVOhI(Af&q!VTYq8c-u@Ld|M}+Nd_E&708C zsFk|{Mbs8`6)gTIs&(^=!powWv<CujEVYZJh70uY$a2T3^7^{v8n7|VTBNdR)}i(2 zSah6vwA!k+sgX^vJD7n^;D$mHo29OVv=)MG@3|1#7;~^m39n*lV_SLks=3t-?JVB) zN`4xRcfp!wEptnHs10v!h2*uZrnSBWb`vn(n*^d^XCcd~3+_zK8V#b)LFYjrN9U@m zJJ9*+8b+KG7U>x4EY)h$2VRUW>qM8JOVwjkRXxE#a0R*sVm-PNU4^bz*Q)E(^&8O! zZW!uRj|Gm8Qx_fy=;9%45&JE^HB;bM#zS#+T~mFey*3<E!JrvOtD5T>6J3vP?l#da z+)#9zN<pZ{s|({A88qW$-D`D&x(nUCIA%^-QnV4>rKd&O(tz$o_cI~fr=HZo%>XSi zAwUk;*4z+=m>&tZGKCv-Jc1tOhHu!Q))^l>fu3TcpHxrnKu@cu?MsBuGZDUkUQ|z4 z&x(ui6|}P(XRiTgZ>VPgXJ-OuV2rxk4VrP{tR$(tjo$Az_5%?AN9x%i{&QF$cfjbx zUCE#sRl0Nx20lk$#%y4>dY)RR>w6C)_8auAdcJy5oY=kS=WY}J0>u8NUI4^is4grU zG~@W}BpUz5B-IdX)`ncHE*vzY>HWkJ*pA&$3&8>wv4mypzzTL^mwKssnR>Z;g?goW zm3p;$&9yiKd$1S#a1Y!Q_rkr^4eE93gX%*RpF#136mO>Z8O`020+_z&f~$<KfYcZE zLTR4nRYz);7eY+|tRWb6!r0i5(l^bpKwF#U#RJnk&x4KOik9a3rU<xd?=(RAw0+V% z)wG$O@Yq%;s$e`6kA%pChvDJ)5IjQdP&?I)>ZVP26vU=sc#OIkOr>4jqSmppPqb`O z4oOx>=?5PaRzu!X%VgE2djqVE{w5Z^Kr*cE60BJsZj5?L;xlG=hT!yldqzA^kDr(` zDl=#Nxb^D|Ds%7@&eee@t6MwpRP|cJboHp1+r}^$poihZlY9{8;bN%Z;Cx(w{kRa% z#ItY!AAx7%BK3Op2K7euCiQ0Z7WG#3HuZLO+w~Y$LhVmE4#Ju^gByzHsds?qvp;vL zcf<d)z?$!8#=~}=F;j@?-{8yG#k6Ue%<M31@mV6CVt|(Klr^{2v&<GuDiJCg+gVv7 zHnNzRUof(URj}C3A@-mf4du<Nw9O`4J6K_-J0xt88ldEu8-bna(soFm^)0Gik&J;e zqtnX+eN$p#&-JoN5}|>*rsmdgKCJRk2u(RKA2Pk_mbP&1%+}`imbR)@MoDWs4#U3m zB)kj~qVnpdx^RATds9TcON-lhIj)Batj1a}9O=YIahnr<-;NtN0XO0%*gNa&sQ0M% zZHLcV@X@%n3Nns1Z6mJUTc+cS;C6_Hv6Vm{v=K+}N^Wxui4M9NgCcvzK)VWVBR&SN zWt*<_AW-Uo9e5Xk8~m<UAJFGH4y#}av3U$$H)4v9XZX86N|3+-M1YepEb}+ulkq9| zRD2pf9iM^E#Ao5N@j3Wh^<ni9^-=XP^>OtH^-1+9^=b7P_1POBGF$+EF2Wb%OYo)m z5-nC-0&(Iw`18E_g8HKRGW=nY<3;8ttjg+dZEbGt8YH>}6;>@_SxJ6#Bde-`U4Zk{ ztk5dWV8UAJl@xDTqQtOhsZ8D)-A0)M#SDvW&0wgH(XhG&s)1q6QXBN53Oq@IW(cC6 zMNyW6*+C^lk7p42p!C(14Nz#}jJhd<2Xzf;6UMJ!uPvbX26Wj5^#uLroAE6h)R%On z--d68q*pU(sLkll@4&a*qV&dh;=AzO_#S*Oz7OAzAHWadhw#Jr5&S5A3_p&az)#|* z@YDDi{49PBKaXF)FXET*%jzrY*Xr*SStxQ+)SIFq6pf{58bvcHT13%uiXs%L6rD-Y zr4-#n(PI?7LD5$fBZ|EgkED18#YGfXQ@m1r$%wMs@f&Q}*nxNA*YNA=tLk=jhq`kU zeiOficj5o2uc^D#-Rf6b!V}x~MC*TTRc-A{>$Rn@BEt5|%ixfu7?fRI7uGrckh{1O ze}q3)UsvB!vv+ZK;Lq^q_zV0cc<^rSPW%=A8t=j1;BTNDa{~Srf5)xD-{HL=acu(! z3k_($y|JmJy>TfkX}e%k+U-MU&GPEjYA6@9YT*TTWl)K1h|=h9g54erfsgdDMX*<m zp)+Pl{IDy!<{I@4WuW?|6U|gP_utWfLdv1b_PdBSCckX9X8tS<*7x$dmHdQ%27`wD zxB{xd#&*kCZZ_gy@UJXDqytD@P)jG}y?8Ggs!4e-NO>>*OMOFqQ{|kaF4J^HICR-Y zf(Rx={g3*A`e`g3BxWL{vJoN@iO9sEzOBBizNfw)%_)fsc5TG1zH<Ny*GbXo=%slS zgoq$3%Vx3w0)lSMENPC^*MRqqDyXl`grk$p#&C60=CJD8T9(E~TA?--8FqN)@X7$& z!Bz&CtPhErIq6RZr(|IW844^6S3gug1{OXsSQyDz7^Qx6kSvUkvXHe8QrptfnnR|i zr1em87|=RH{Y?D=X#LWlHJ{O1pniUkw9bywIwqOcR;WX-grz#IWWh(fC`elvpppPZ z<;><~ne9yw_nRA5hHEqHV<&={!y2K=oq*O*&>S*1CDZfBd{RXgsC(4!)L+%#45p7{ zOfOcyNy9X$CQHduJ*bdcZWa7FN&QxFffoxktO8zq0L~i<m9^Hdgj2{+DA3r_0BLaS zh$v(@GaM_E<>;~wQm=j=cbo=tbV{aLNgIifc6G1%llrszi^0@t#?%`1hjdJ>OTpBS z%!mIw{Lp`J#GJsg%*gWkwoG<Vk_mseH&w4}uCHaghEbXAU<FHI#RsQd(Uuu$&V=ek zbqm13jw6lbOoY@L(#G1%VS3ebSY}OiQ&V#!b7`2NtIe!#%LJECu%_j3R&7|&spPDb z!akdvgLjeh)IZd})!h`C4QXG<q<xY4XF6$Lnjr1V!Gtcyd)2>~0V)42fnUuG=o*T+ zxCM2RttpwhmRtw1;0B5iMZEeRMJ9u-n;BcTP$+GuUT?|mWE<HQb&WfLuRHNxiik2u zeN(xNaW?S)TqAKkV=i!S)MWaV!o}{^`daY&%-S&As%X^?44IKIm4%eDC;+U?ne`B3 zs+(%U5YQvbn`<*0+uJmiGi}$@Ksv!r_?hk_%frdoBAF1Q*gWAj!wMcEkEaya6XZ#- zf~P66Qe<a#pcn#sjtT5}ifriwmS_mCfWTfc4B>(3!4cWP6t|NiA+ESL$lEFDc!#_T zihG|Tks_HX&SB8;5u@W{illUOq*fgBe|_QH{eLd}Z^@4-nf{6V48s4FA{T`t3J`uT zgXupQ(|=OrPRDeD@OjLw;&D{?q9@8WZvx@-W{Ny9;qx|LPDKar;1weCK!lf~9!&T> zqjc~dpo51`ed*}<2jTO5|F4D559EiXWO_J%2;Rkyq^J)?{h06v8%&R8Opl?cZ#t$E zg+Bp=Kfw@wlOg;ZCj7}1^^XgG8b2c?9l3lS2)}@$Oo|3F;SVzCn91mvMbUtCbo`U> zOaIS>U%^+UWO@O=5QKjuMMEh%gb6>}V0sB`jreMQDMiC58lHx8yoX=LFVllHzZ^8M z95nET;)YoLm<nH7Nxh$fOrLLvXZn0I4C$xk`aKWRLIr;`Q(G%VBjRdn=Z{Ir!CHPD zsO?yaz=B3IwT&@2pp1j#`4cD_MNw9I4o=}uiE?lnaB!N&fs^g0jy)h2Vu6l7H>&QD z$tf%B1cGqsPTL<EX=`3MvML;I8g@AB*Y=&4>IrXJ1kv?{zlgs)rI@bZuLMP3P0=`t zCNM=$HN@1xth<w<@o6MPF6FoITcQ%W79?~n^D;#O3EA&9{0zzr9sG?HO^hq-7XFTu zl-$YR1q!=|qDd4@W(u2PP;x(`<N=Cu(ozCcuzz7I&OZv2JR0?P`}qbPPeerz*LpHx z%c>t<vuuA@Wk9<dHVm>msLp7o_lb+OA-`w&mr_#wGXDz5Z#zZPDLS0Vuh5|SHAeO8 z6djs|YW}URi5hnjMTh;@@?!p7rVEhkjJPg7<UdQv)#v;dB*FtXxfB(sKU3s4xZ1<G z`i3I7ypYn3`R}`?X^g9UovVM5qVYffpU28SOemGGOxQ&5E|ZBOSPEt{6Id7(mdOf{ z#$+?uDGE?@L>h@D7LrU3Zk5TwA`Oc(v-TNh5{n`xk6wvzW(iuLH2I(?V(MY)Y3fB$ z5k+$-nj6!)sjq2ZN=62m1{2u?5x<zCQs#kW1|x@n)=eWQDmg$NqV8uJ8&%%H)IdxV zO;b~nJIyp5$UTgra*8S#xs?XFxs2RAih>78ZXinTLDfM_#isI<^af28K<`|N=229| z=v`pYTgB*IK+*hzq_;Xs?}67s4yx#3T4q|2lEVg5BdIbqQv`{_5*701I)lSj#$g*p zi_>suT4`Ekf{Se|gd2qqilF5EUkit(br23s>nW;^JBDgHDJ5Sgn@%AS(`ghz))Qvo zaGAjuTv+HZokdYiI=;@0FHNTN!MV?8;jor%#|!>T+i?@zg@DpNT-8Xi*5$QFBF#<z zu-KWdFl|UFhYnLGM7m8B)l<~KB3+vyhpkKw*HUy;Iyu}BU+j1-C1-M2@!!+#txUVO zQPddM?j5FkQ*w2m>3-1egA_GUbTrd$tHISHjH^c}+{;P5*qNS4wb-@%>&4FWY*dB+ zXY~lvOQszug|*Z48koQv6tz>dnwh|HhOl-qVf}}qmFa}_ZrlXoF23r&X96EF6M(|R znz#vkX8I~6S6`d<fC+p{(J>UQXC`p0!PQ>I)ejV{O~=*GsZ3zqzc+zD{;y5IjLha# z!ZKUTR=mp$Ne!jwL}mhKM1^IRKv-s(qT|yD%j}GsfL;}0QQ(CCnhBV_U;<_zMJL5f zz}(9WUuEikaA?jn4<HfqAc{_==rm>mryE=iWn95#_mp&8jYwqzr~YdbFpv2^H-QP} zDJg|D)jSPM;82QS={uL1z$J#T;2LPBIoAxy*Vz=ElSX2AkGarXsIT_sS==h~ENydb zh4R2#`^<UGMe*{0xfIF+Lz$GFeO78&uXzqrH)Mn7#noMDUXYT5h2}*>HZP{=e2Ok& z$=JmP2i1&&rRExnE}-bbv>foU@_-o%9A>S+0rbCdK=d=}b<&%oy6%#~L2V$nsaE?Y z8XV-r&!5@~;VWAW4Xi%k-*<f=8AG=^fq^Kx&oxKPYf{SV81q`tIHXILQFJBK_>G3V zR3<NKKAxh>DY_!9yv!$?PmXH*RFK!Hn#PB*Z4SRrktJ?(%x6cpIRhJXsX;|$qxn4Z z`DRenRTOnnv^B2!i_KT0WaUcpRiOH7D1xfT2B!KBgOyI^=^H7!=76|}EAjfM5)WpZ zW4_tEEhV{knC}E~@1_U{+sw$_Vvu_uBlmuaHXS6nk44EnsBMn<Df9Cw>3zZcBGCIX zMUW0&&*;6upm#f?cLzn+9VETGQv1k$9Qhv9Hpl#)`Qwxveq#O<eBpD7Zl-X<7kuGS zgTvj-7rruoP0=kB-MT+)eh<Fzy|Ljp?Y}4dVtB$kx+na`JmGiqALc(Px}730mj_~= zVBsvLRE${677LLrHj1`UbSG2QT~S6XBB;tDQFO-v@(>MYmW+Sl36>s~zA4G=XXy{* z4xk8%g!eIW;SQw6y=5>XcL+uI9wfP={*5PCvMm!+(mTnL1N2Uz=s}7eX7oN{&^w*c zdniQ@9VER4|65P61S};fIV`o5;awJ3aUZAXDdq{U8yr@GCs^iM=27$nh3n_3_fL=q z#8w5%B5svsk>LrJ{q_XQ(x@j4((i6rYQYmMVaqa09Yt_%`T|9-#y#OEOLIy_S}aF{ zs@f=ehN9<~s-8C(S;<tjilS!^kO#vPj{P^DaJ=P|l;oajISt4?gQ6EHdYO^?ib3w# zjNEf5dg&m^HHrrZwI*0Dw_KBw-VK%xpcfXf?G)`~^uA`$yM@uam7*O7N$<`7V^7#- zxhExu_gd})Pk=*;H!1oL^Mu_7hYvGPc*Fu_gtsW#wLfe=1)lJf;R)9L_k<S=PuQtP z#g~{Tyli>J@+w7dQ}h8v@yl_RotC#!GP29^A5hgh6v2P*F;yA&<1FtpRRNNB50D4L z6F&bpp753ByOiX9Z`ljv{z%b>6v0(Eij2E(mR}gTP=ic=87?9CB#1mpt`+VTYGt&8 z@&qeywWXrhYPSkRw!+H#8AWg%jw0heoK*pOtxk&4Ux?c`y*>W7o?z{3O?ir79b_Gh zcUj>S0kWWP!4ohS^#m)NB6M0uSVvN{hoW>>;P9UKZrYm7t+Hktp3q~zJ;6FD>Ip+1 z*F3>G89c!{#X8jr_m01#=qHMPkF5#T!>su!RaId1gQ{jy^gTsCFjf6%FmeP_)ohCP zruBr>JQ$``{x3YiI@h`|CAo{NM*_Jaihic(S4OUJ>Cn2Aky}I2F9%8PQUA&lnyhUp z>5W+1fnHcy|DfnEM(^K-c#mQ9uB9m56}NOIVu<(n|FI{WVm&h@hi6&O22VJbV)({{ ziFty@;P3+G2^U%~qL@(3r&UY*hPf4P@>$tUKJ8#Iu>YR0A?gWP`n`W^C-a1j)=gIU z{+XF#fnp`@3D;V0O3BF0)>}YTw^3}N*aoV?c7u^Sn5yoi*m{6G7^-^U-+00!)+bYv z`;_%*Aop2{MT*&7HEi5fv%bK{eUajHchwTlViQGfkh}9=dBU4kXiU((^k{w8`X12x z0mV*=-HhH0L%bg|dOxA?^}=)sbZQeZ=>6({><Qmle@e;W&(>eS6Mm!EM{zIa2_p;+ z|74!<m-TOodr;hSKiIVK+$tMyc)}6;?Flx!;R)YqYl2M#Pq0Zg+2)|QH^rG04~cn# z&1LhYV#L<N)|1FK0PjO_Kc=ewQATY2KvlN>6sNnCmS|duJVaGx8~QIi!8XD+CMCJq zwy{9&c!~#5JcyBN+@Z5gV&vvfJn#TTZjgJ}zwrcHo^57IdS}@JK<{jdhf+M8(R+v? z-V#P{DaFGMlHR%hTTiepv@J==VYO{3-es$$coc;%w}K}eZg5x!o?u&UtEV`NV(1B! z@_J2@6*Yk;G#Q>yy#JmMiF(3lRriFI%oA4GR@>H4oK5jW3SV(GzC&+YXQL?@Io@^x zsOlt&$5K3=scM43$f-<Kr%^oa0C_M>%eW?YFjZ9Bg|^F5l6$%B3Ly6?iYHO{7B7%% z+%B_iVB~gCobGm6I*}XXUi+^+;YQnSDe1l4whicom311$hcbE(GsJrjqxW8lryrzv zANe19!jrb=QgZmb?FI0JmnhDqxPW=WY=gsBnI~+w?Vvc1;{3F1#?O#!Z-OVhse6L* z(>@)+_ICUP$@U(cAPv_}kTM_CUEu>bL9%^Fu|MtrpV*)SLHAYLw%hg<Xb9RH7E&Bw z8al$D|2szi_qM$h&!l)(TKeNBNVZ>q{$C7Fe(-=8h@C#z{*Eeka`N?3y*v)5NCjc| zvZ3~cAUHYdeh|dYl4kDvEGZo-)>5o3;c#kL^fbxN+f(j>?RL9>ciEvkWHH5MO!rHo zva`c3xYO>myC^Q9xHPTo;%SfF$E~va4B3_JQ+A1GN%p=*6#Q0Gy}ds~L3^fsfPEmv zb10rm@xqu9*oW9hq%s2gNc$)v+ecGePBFWKhK)OD_Oalm_Hh*N&mFWx9-?8zJ|(Kn zgNcInL+yDf$<4PH0J&hW^C)Il(6Dg@%^qOn9zpT`TtQ1kE*!lce6_@0X-|1dYhP%G zQ(F6CiWgD5n9&<D>;z6}JM2p-KJoxf#1L=&|27KRo9t~VH4?G6gD0$_7<dUYPiQwd zgk5l_eXV^R#WfVy?hl(3Jb@aXP`Uq}a7xq@vK8GEPGg>My8R6MnG`Rhcm>5RaZfnM zeql;RF0x+?s=AcoI*RL=s*W-kxq_+cN{W{sAP<JBHvSt=*lNEqCAl}*Zw7L2rMQ9O zCPr?vLGCt2?j0029wfQ<|0_>;*#1OHdY`mE1@t~c@zE5wF?u5gz0WgxU!b`4AnAoK zfoY!G<>tYE>r~bLrak2@*#55lJ@5qB1%opj!#v@1gG1N_ciKO(e@gLcir4H9o4dgi zb{n2BcmF-%JHr!Nbx+vKJmClXkM^G^UQ4k`ar`Ec{a5>6DOL5iz!6!%6ocy?%T#q- zlo7!MsuIi;uRlN@qMjf~|H2alr{GORuHX}T0J*&=rWBvR$c1KO8uvn9Ms7cf(_QCE z%#7^`A~(n#@^3srI7AqolHM^wHqZ+z>&X<K%IJlzRyw^C8NHC-r@N^2PxK!8zx4zm zPng9G-z?+{1%e-sz{4npfO{6jXRDjkj?F@Vbu|%+1jv!jVXaIkK9AxHSVs%it2@?S zgf&6aI~Zx5cw!x#Vy$@eW+A0b&>p9rwYP@ONJ9WYyw_7V$Y=+pXci{~g-WCOkpOAY zx#~jWNtFQWc0#`~;YcAA16@M#`Ek%1p;iY4^1HSrN$9jBEEnKzd8be>97XX(6kpsa zGzg6pUqbN)#(Ga^)ZMzK48E8P-@1h+u#j~|dxswh-~WYAprbGR-)Q$Kv<j=hii9>H zBD4!DDTW2=GKw#!_=-*33}KCMjIdVCq8OGZ*c)EWX7EP4DML=HwLZ#U-rNlBW}!(g zG+B@MtJ~I8GzXv|Ts>UKn!||6XU*3aYIL!STC9PROZzPdUnc^A>rIFC-Z8O$Myzp$ zHo9UNbS`>bI8iuBI9WJFfd0k8X~OB~bZ(V!mT-0ze8G4*v^#F9tI|+bgj*Y{8d>)x z*3)PK`v!ZhM&$zSu|^8T8!5g9&J8K<q<GU#z<923o^ZZ!0S7nig+`zxyc+s)*VIP} z>f50C(i*+n(0q_vBWpiX5dq>T?qC=;=>3U=ONGn2aG+BULpp`aS+@_?8YjkH>|vMB z<7_uIH^G5DbS@UI7Ov5oc_oidl3u5<fz82Me(eLwFw0KiI&SzDVWY4~*eq-jwhGr$ zyoKVe6vGeKQG7kcH*5jlx`B1q5^m<MV9s?TYpX@^(<;=Qpo1FB#QN`)HZ`mXKyzy7 z2@%o1p~o6k>)m{`R%aEh)zAqQK7&Rn5v|WpLEg-mM=|q+XL@HU)`iHx2~B;P0AC*T zds(6N4@zonra`j4Lq;1Suqv(Bn8D#a!h_7L?-lM7?iU`Q_$G>PruY_$Z`~w3Bs>gU zJxcLy6yL#Ex|1=))T0q>^dQo@C+Z!+^4nWk8}6d&cCfY}`{sIcQ+aq9Fb!XC*ZPKy zh0(LBSB7=NZ)jL!V9775)cf}_;Y7Q7Ym(4==xfi)TEi>ro7*8uC5cK8+Rq5jbqG+a zzn$W3N!_G%<9Jbc3HonE+igNyqK(3f7#b5T%2`%Br6y-w_W0Twql>Qas_+Kq+6+S3 z0YZ6AxK9(yU7A?#2Kj6j-sFaYWd0+(P4PX@LJdR%Fi){&ZY&^bwB|NI0Igla)YJrb zEK9<x%BoophbT|X05v$H$C|Eb_@aNj8Kv-n@LZ?xtniV>6jW-qL5ruvKG~T=hGdS_ zx&I964Z`OX->;sK&}9{T|10h+VUO?)bHNAI2^52lpA0EuV@>yx<{j-{9j<9-p~v5} zvc9#siM9IBn~>|%e9v9HN!Tm=Ap9u&L^1Rre1zi1D1JQFq*eG8TmgdM!{7waX}ni< zCTo!p53bN(H`;PF+OJjkOCRtk8!*3OIg?uESmWWd`or7V!{}$CMgQyxeTK~GwXETP zW}9wpnai46GZSTWnESYB$D$-v?|bnO9U|m7TSP^4iZ0PDW{4h&!M2{G_<4#UM}Cpw zm$ryLv4_}`8z%PVV99-%;@2p2kb(%X3szb16t=n==B;U!t*+e~g>`QrsI?BuFJ_j~ zo}wEe>wXuD3rYC%!oYpJN1?u$vzJ=v&AyEOO8PnuewMsEi$la=u;z+GDSo9x98U48 z`{+(6juIiO>JVYc+uk9Lp?C-Mj!u+&G{A`C#YwOXb6drU>L`kLc8U|liSRf4r`DAv zYhfH~mY5T7mM9)79v&xX2E}j0vH&q(^v9<!r1;HPt5Pu_&W1<aR&`W|SVZw#@h7F? z9QNdL6$ocU#Gh1(^Wrnjr_lGyNKM3r;-aL~L=1^bfg^E=SWWRe6u;Za(kqr%Y0**Z zwZ?*d5p=)|*XnT@V%Yrh*pp~1FKlgYj5Ss_#8ods)}ptn6&olv?#zgAt$U-`A|5Ta zQVd(0k175vwv`s!#Wh`fkBY}|L&bFzf5?K<M@*6IjTSMpVJ~hNG$W#N>>p!pDxTC0 z&B=h~REj@gXg-BLx6Gtt@A()s<D7evFq|cx*A2t@;2;-L{5f-sFAPFruhq~AX_=9P z<}&e0CgID)D=3Ej+gF_|+_E^!B-}eD$LLDO0!*w0UjNwBgvB-qBIU~uU>#n&b`sd% zSiQmW_zB~o!SbY>XqP*2GwcXBAH1g~d%JiYCy3XJH?XeHwa_TN)Jb+OHQxJ)FyT$+ z@e}s*eV>ZcVzt=?QIdUq`}H3(a#U8f{-z#C5+~(kPMDlI7ARqzo-?!I-?0-WWM@v! z$;qsQH^fYx0^ZX#xU!C6dJn&tW$7=B0aw!&?r7)kctGCaP@Jv|Z~C_Zb+}b)hes7v zWk-*m&R)IyKo>-4>{kP^tV!<_U0E3@&@(@nI{8ts{+O_;z10WWW{xe)D;!stQ<ya| z$Df}yagu*x*2HmR;n#_ia>r*+EEt<RY3#zajLA`%Q?j$yZ_gYsa8RmuQ9z^P#Q8f1 z4vxQCV(2jE@Izqbfu@x@=Q@r0&(Zh%^iO`4h)aV|CH6|3^fm#qjPE>jdO<5-E13gE zj{)KmC+-|Q7(O05F1Z`}*uh$pPDqKuwR&6qaO>OfYNE+grcRrF=wXM?$j!@#1Yzc^ zz!9^Hjx;c8#DS(N>LaXSsuQe0pQ;>^N{IZe@GQ^<NasSk@j##eq!MUj?<@fCF9{ab zx3<AMUfNokp>t#_G%MGVe7#w}5<{hns|_A&ZCQ(}+g50e%Jqq2Ruw3S@u@cxRFO(l zvrUD29h}Om7R8~OoOm?6%+|^E;s$Y9+&C_Wn+>n5ZGrc<oW))<!rjk3#ytmbTX~y% z7hXU6A-qZ9Q|@bIMSbB_vjfl|bOgLcb|G4ZnxWS?e2)s9hi*bIqgT-m^cwmGTcB}r zZ+Q9ZAe;@ad-cPsT^pdy>8bc!Xyv&9Uex+9-VQHn{ecj8Ije=(h+XT~=YSWry5Uu= zJ}u&K80mk*D|M6pAyCJF^L^M>h&PEhg9eO7?cnhn;iFr)%^+m<q68y)-X=nS?d!zb z#ckpp;+^7M;@#ps;=LjyhH!rK1I0g53@Ovk6#qi;uN41A@$c6`aD7mGNPJj)M0`|y zOnh8?g2mZCsObx8`ih!<qwt+Ga}R3nMa?6$j3U0*ZZp2i1H15E(O3ECky+nAK+Xvr z=i3%(U}3#`F$4_#SJ*T_Gj-U9XkDp7N_G+KNZA&l0rtYR@%Lir!}4H<sDE_`Ud9An zcA*tJSg(;y=!OBEMtkW$vEJj*<W|cZS!Nb!TGk99Lr+1H`|2|S0h5seM===!eMNi? zwkG1M;&yR|2noZV6#qr>-;{8h#Mi|)#5cvaC_$7sDZhsDe=zxE$I{vqP5fD`)KYGE zIg~+sNXgNMX#XEy*4oTo&KzuSVN7;?3qTS~NEy1X$>OgHIN(<c=&$k+-xoiGOhEjA z65JtvL<tYsO8l(@;^*LI%P1l64vW=UtJxbJvb01vYbCJR2Jg1XSyr7>y==ndaXDj+ zjg7cl+`|^uuf(q@F;Qaf6u%L_rNlys72a-gOmlPN{MKgu^-qHi|LD#a<TtXXYl*-3 z6D0oP&*CrQui|f%*eH=GaZsYLSH(c%GZC)eY!d$x{}%t2KqYoc1noaj%^r04x4LHy zG8}Bs!{4nMv+|;mXJ|tu3mf`38!YLA^wBaK`qo`LKRj{D`8uFO2h>1~2^egY2FYtY z2MFUiV6?|xk0SMz;5(ZgQa?&u9a1JG8A&pghUhYNhm^wo?*Z5S1wo@Vb+mvjMNL^6 zE<v)qSvo`-A&rzqNm-P5DDhI_qofBVJvU2Zq-<%dG)@{%A@GpilnkY080A+pqt@R{ zVc4ebLB>uvYOwl;T0Doh0wvk0{%CZY_MVd>c+uBrsMOR)n3X^)(G;Kt>Wb>tx^VPe zZBfjrzzyd$Jj!U^3XYwM@Q^-ZUOT+E3wGhG6cT+U7%aC*)Uddr6K_ayx^x)R-l3HA z>5vYmq%V_Bnin}p`Ow&3Dv<n?fVKz6a%E|jR0Jui6p)UPW>eCi5-@`S8>M1ys8mYH zK#0F&(1E_s0bc47mv7QrCF1Xd7&Ie1LvsLwn|ad06od$kKnR>uZeWBAVQ&pMtwkFK z8BJQz>F!YjIjU4kp_yy;PN|N&lY`e`Nz0{r=_qLhyy=9!PzW~ml#HZg1SN-19t`0B zlbsLBefas^4gKE#$Y8Enf>X+kQj2u7)Jn-HO2FhtZ<HcZyR?#$F_dIeGFGjdt1Eb} zZfg+A(z2LfR_W!Cv;ozHax4?dag@LvB7?T$rPE+<FP$KrD4isoES(~qN(uPg1WG1S zGKrELN+xf?7fWYAoneLqZ+=r>pkxYE8-Ryt@D~_eBAwuZE#cP48kR^!%b<FduBYJ| znVPj{Mgg_AJq=FFXcCG+31G%NTKO&+DptZzo@q^HK2#Fxpz6!YiTbM?#;5Q+My@Wc zOQDJ+T}BC9+luy>m#$Lpg^<#v(`{B}5v=j;(B^vGy5PJ(VMS=JzdRTyEz!|jgD$(p ziKa;#qz<W5+9++3HcMNit<ts9b<*|H4bqL$P14QMEz+&hZPM-1Ht7!OPU$Y`Zs{KB zUg<vRe(3?}LFpmsVd)X+QRy-1ap?)^N$Dx+Y3Uj1S?M|HdFch|Md>B!W$6{^RcX7l zL)t05CcQ4bA-yTRCGC>_BfTxXBfTrVC%rFyAblu(Bz-J>B7G`-CVeh_A$=+BmcEj{ zmi9>BNZ(4|N#9F*r5~gprJtmqrC+39rQf9Ar9Y%UrN5-VWllyimZ6!LY?95gMYhT| z*)9vRC`+;|J7h(6$}ZV0XUHDeEBoXga!<LJ+*|G=_m%s}{pCz~fILthBoCH{$V25} z@^JYOd4xPt9wleVqvbJjwmeoICy$pW$P?vBa*jM%o+3|`r^(ahL*>Kd!{r%ruAC?5 z%LTGuE|h1=v*dt$ggjd=l8faMxl}Hb=g8%9P_B?G<+<`adA?jFFOV0?i{vBa#d1hq zB3H{x<r=wG4$I5rI(fNVFCQhZkQ?Mixk+x8TjZnVR=G`%$nEk<d6m3cULzkPua(!y z>*ZtR<78E)^6~Ns@`>_E^2zck@~QG^^6By!@|p5k^4an^^11SP^7--w@`dt6^2PEc z@}=@+^5yas@|E&c^40P+@&>s>?vyvmo8-;%7I~|Dt$dw)y?ldwqkNNmvwVwut9+Y$ zySz=lL%vhKOTJsaN4{6SPrhG%Kz>kuNPbv;M1E9$OnzK`LVi+yN`6{?Mt)X)PJUi~ zL4HwwNq$*=MSfM@F7J?c%CE_<%WueU%5TZLD49+PtPzJ%0&Bz!N^&X5qa>e_0!m;x zD5PX2C9^0AP;vw%um}`UQcOt+C9nXLQ8I^;a!P`fR8Ue$$y`e2Q8J&BDoPemvXGKR zlpIOPVoE}kETN>DlBJZ?Py(?xObH}qb(Acpq@EIp;VUR<prnx!h`h~|v`}(1B@h$a zD2Y(gP6@=rRg|ozWDO<9P_mYib(E~9<XB1|ZmE<|N{*-G1WHb%<RnT?rsNb#AZDFL z$?24wLCKkvoJGmml$=A!xs;qo$@!FAK*@!aTtvymlw3l|rIdhQUrxytlw3*4Rg_#! zq17(gKuHHBos?{(WD_NuDcM5FR!Xj=<T^^Or_f@T+(^kyl-x|At1h{flG`Y`osw;o z+(F5ml-xzh-IUxz$-R`^N6Gz^JV42VlsrVq!<0Ni$)l7!M#<xpJVD8mlsrYD3oUtu zl4mJ-jzZ&E@&Y9<Qt}cdFH`agC9hJlosu0C8p@K_D0!WdHz;|NlD8<?Mah3Cd7F}V zD0!EX_b4=yB_B}oAtfJC=p9Qwq2yCaKBMGwO1_}vOG<WA@)adtQ?iGWZz%belJ6+_ zo|3(k{6NW%l>9`=&y@T^p*<`4jgsFf`GZ17R`M4me^Z{LJfb|NJfS>Kc@u?BtGtEs zR?6EbZ>PLKd6DuG<z>n{D6dc+_9HIJyD6VRc@KrAs=SZ#Jt*Ik^1UeEoAP}q-<R_J zDBqv*nUo(u`GJ%lMESv#A42(|l!wf3IOSo59zmgRDL;zxS(G15p;alLP5H5uA4mD| zl%GKPiIks2`5ekmru-DjPo?}c%1@{Kp_D(2@`qD?2IX@ppGWz83av+ZKjjN4Ka)bY zQ9eNVBPc(c@<o&{rhEzIODSJQ`8kv?r+kp|6_l@}{9MY<qx^izS5bZe<rh+Z5#^7h z{9?+7D8GdA)s$aK`5MaCQa()iWt6X@{Bp|IQ~oH*ub_Mb<r^vAMEPdQw^06Q3Y|Ck zHp)jR-%k0Jv9(5im#sDZkya3iK)M1iI&E9GF1Mf{PyuU8Zc!*$FgqAsnB)%_u%{bv zdH$>z$j1!C*A)bil$VxP7<fKoK!dsgRhE^NmRI--LS;p{6@{hc#WAd3vH`uj4w#!; z6etMgCQkn~1006ny~p7Q<0BaKSA@!P^Jj;Ob4vn+{$NFjz2mT~++P@&Z;<mX8#F35 z$X}cXG{lDnLxB<)QCd)$UlGcyEGa1R8zc8d8HrBkFUid-@`p-GLIr-9uOL+J50+Mz z=lf%f{KN)~jZKvT5+(!DgWv;DbjmF%3RUFJj1B*l4IjDB;fytZMgFW%X*nE17=-@8 z2KGdHRuoI@Ad{#nPE^d_X~0VJjz|D=U<NiM1-4na<xG9${`}J7vS6qnU=ZLiu^|(q zLrPm%TFmrQG%vR*7}6!KXEnfdNkMLTL8vH@SDsrQh{?`jWhnY}MUe+hKnp^10W!Cw z!Vr{0V6eTr!p_Xkk7rE+d!LU(PKh+C$h<&BerbWBZHJS=j_it*u^K4ymxICz{PRP> ziqdj_NJkKrz9WMT9MN^4e|~;ZB~%<kx{ZVi0ZXVPw>ZwRkBuAFb=*vUiN8Fz!q03H z#so@ch7zglm2$E`$v;ijmyMgzb+VW)qX<H?{JCIP!BAm&X)$<1pa}d+_l+cdXEJP~ zyJE{ND=P}*=d#ce^3SjEL$MTo$}J0k&lFV|;u^%pj_W!$n4b%v;1CJo0y0XO;5FW2 z${)(c`%nSAoT_;ZD~f@gSCj|J3X9^d<T!)@^+^KCEvoRBmoUlBEHABu%M-eZjM^7u z={!(|0Xc?2_D+MdIKh&}F~H$z0L%R4#epD`46p|_5#wtj8<m+fs=!}XR9aQ+FR2I> zmFj{uh?&fwho*xrD-BkF-XJsu!GMf0)7Y3^Nn?yKlq8bF(!(VQB$vVUONoz(Bg8af z%w51>Gm>BnKyC45!!eUV^h|;<s4L5@m}MY3f`MfvfyLr5MAPz_ezwNI3+V#+KtXPC zAZ~fZ-De2S4wM<O*qEV=f%Q$AA-}Y&DpWQrH|U250Jdg;1{vt!Bv9?Sfl>>X+R|c- zn9D}=NHHQ<Q59Qx990Y|*%oxX(I{F~oL5>Dvz$c?dQcM1eG4MQ1`JCY5Gb2fTH-GS zFOS=tj>MpRDH}8-X;5))era%i`XS*Igw5U89Lw2&WUHQ+3(MWU#;jmt2BKMT%>izm zty`z*%7|m-l_jA{NDbh9ga#i?41RDL_$aJqx-t14%|`S_v*GeuxFHiZ_w5a^O$QUN zjD~arb%X)-NdpK=U%8PZIacipB`h*A3p<7Z_Dh2@RwK|u*?I=+L-6XU6;K6Sw@%My zAat;pZqTSQpdoRff+|>wVTmaQCky1kf>Tk|brn5<4e8%)NM(6Bi%eaJIGF+WO#p@! zMO(pi&nZiYN2f8+VR2Ac>}JDCTM!6BiU^4VBv~_yz=e`l%`@4cQSm{rga!TObNyh2 z#zZW~3WivQ1`$7&W;)L4!UiN3I`c-DVe=SbI-da#h)>fUGL#45zyQCf3vU1XXtE0_ z7;{xE)EmH;GGKQcHxN=%8Y&CKuwB6bym0`=PzV;Sia<#W=4u8rG!Dar7n&ESm<4i9 zmt%FXF`oDs@L$LzLlsqJF|?Z)NJbn)%QKUx-^w8RBtTTm0;PcwRg{(%B`w0&Gspyc zEY%?kl7MbvKneC3%YTY<gP^_;B&UAJ%-K?D$nRD*Btbl20vh)~L(FHlF_?aFDrfus zWsu4Q=CTBUB`4)2G1$8pY)%{&^f9Nh6yTx;35!Z4TZHv|B$g2t0JgYa-OG>+jw31e z$84am91Lq-Y5DAAOMZZj7?^T|o*h>u!$17b@NA)svGo{(PcUI%3&J4-2?hOZUj<vI z1n?&rc!I=&{<2&x5!FpN<cCe8p@C-@Y=UMD4J2vyc?Q%o&R-Dp7&WKFRPCiMWLB2M z1eeNrUhRT)UT%2_OOlI{&1xqDOW+2WPq3`ABzt;;!45%XaI3SrPK%r@ldS@2L3##D zIfO4*{*#imU2Mqc#3A|Rer8&MlEPBRf?+4h*k$=IjL!>{<d(-0;CI;AUWsF2bpp?Z zfTt}fhLGQ9aG8m4{`vm=$_i~48q2Q@=#Ln5-!#ympZJd0@hJlxnFt!E8f4D`r@rrk z?KOm)*ap?{1sgaZabQfQWwU28BuR4psvAjhPw290e8WJKWD+MS(e=M)a7l8H!|CA# zSdC`Buy;tZ#~<0)L5b8SjIFFFtAr>6Wr^IFmH)Dj$&#kg^rw|nV$S#bJ|@$(5#4JU z`umFwNRohV4aK=h#;PC&mt+-jF5*N*u_`=+9-7EAvt{Nl0IRK=!O*Ni$og_Ca*Z(- zHfC7j7$a^PSyf?a5o8ov_%H_9*`R@mgW}{H!xIz<FCzi?B%h1!Gov+_5W8Gg5hx7A zBCMjYA^j7lFotwb#o&cD0Nf)LaKb9Dcp22-Bq+^y8KoguZ@bw9w7rKBNdhga%!6HT zeCOO<HhtKb;fb@bWFGuV^A=+se+lgK;ZsAR{n@A_hn`msaS7z!)%W3Dq5wJ!1;f>? zHOn*Mdlt*%)t6|fuLNZ$#d~E48#JWLptyskSR&vX*)U{amm#`Qq*_vxkqmxN7kFcB zOEtl0HlTl(0p<P$DY1`bz|*?`$I32HrK*GzG)N2+CJF^B^Pp^{EkyC!lQJO{rdUno zKrrPnOryHc6s&?wrWk4}MjDVnkr6PIschsSsYmWZ#D}tBeYy+-Wk>B1qK9EmGZ<u7 zBhk!aAL#ShpiC63uVdedV4Ex0*9QYLp}+&)SyANI@*-o3LI&M46?Ee6RtYe$UU4wk ztow^f%d|R2g+I60Kv%@zz#5Fn^#C6yAu+lur3`p@92jE5+yE=H=)sQF(tz?Ze|}O- zDQBbl?R%6#P9=kNBlb#rO%@fb-V9q)W4%!3Gk|dk04ya4Y1JMGxNN%s2_-D^xk1>N zz}UjvKv5-xVPk@YZ2SlqzdDkoT@lNK+S$5wu{E{=9A85NMa7EBSgxxqPCYJA!lsKQ zy)pBP%~#FF4d^zXF6IhWw@Z?6Edw9k4Lqn9_8Ctx@?fmNR2>^NxZ9{?;KZ~+IVv?- z8bOdY1PZHIqGap_ltz7mxv=?%va@cb(XA=ifVO!^PBxSlHliO&91(@k(zhgH+8FGR z^ssua3Y*XTB7@_VY)EGMA^P%fK(F}+=wM}GJatpnr6rx2xgKZ?%*Qd<0qN<`a=iHR zdOQO!$!&ovi<w15bBi;ljLy!?%FL~;g+rsZ%wRS9X5BI2RtN$`urUw8DH7OjFcgHN zmx{mwSYGl=ODb}~<Y3bV@+>SWooA4862pCXH{AJfPa<<>xGAi^%+tUO-z2M?si}fx zV=RX*ViCeXcIp8kn?HFHlqlHF12Dq63&%XH_G%zIgCU!~zm!E!4zv)I&zQ`e8MDK) z8K#N<jENmnu=O7{wQ$0fn^2%t&SNNM>>r9)RM4aa$v0DfVp&kRkYUR^Kx|rIGFa0* zAttIz7`_Snhp(Ut(k#e|w7N#VA?(W!fImHYL9m4L79)XViBCCPiP6ek%2fxzpRRgs zg@K?j6INn~ZKd<r@nVd>4GiCY7%5X=)DWOtRpKuK?~g5D25}o1vJw9*EaqvUqKZ;u z+!i)&{6CLlM3np4LLbc~4FuOQ1e5j;0cZ!R8O7jWd2qfEI|){9WH@sF8HXMSO3Nw& z#eoI7r-F2~l{PWgzlEV2^UvrQPlZtRfx=&`-ml!w22b9<!4<P$#VrWt7BZ;-J#pRM z$*}B)n`_P)E!m~Ex_cO=ar;M4Wl4D{9BCDmmX^h=?0z<WKYU!5EmLqR`5M}Oh+#|N zlkmdh=EnG&?h6~L>tIU|O`wui^+(f4W}g_!iYlQ-TNzBk^aR6{!tzpMGU_(@NjRQP z%}@Mt98*v}97Kl#K`89AOcV;l>;pq0&oK;RyXhwxL)3k9gT<lQ{wgTV6&S-`WW&3w zH+gt|h^>H?5d4{)X$RWI_*dBYQU5S~J_H_^I#>nkrEyO|*}+C;{lmyWiMAz$TsEO- ztGv#JPW^|WT8UIE5F5c+--#vcgWh6zx;ttz^HJHs3I<`cELLt*-e!ZlFE=R%L+l0j zge9x2G{6owwaWlip?o+1jycME`-2ZQY2fnUB#=}^3$q2$txqTjRsnMun)#67%lQW( z#nCW~ka#6mX_QYGl7CWf%8{S%&-78*Y6tI7H!Q3yNzPVwGbG*JJ*AAxa)ThxuFJz7 zhN1hql#C%b3vTMb8dn)RJW;-5;|~1?>FLW+^z^~FQlM{k6BO|SL)ASN8zex^nLl!* zkqhR}pP$~@erA}`J8KF|x}g~+@f#bT-fxWYEapTtlV4T_<(GUvEO`k@<ev;rdbOm% zQx3(|C?!sgVOWq>ynsPJc4X(9diGt!(w7ogy0zjL3y9Hs67WMpsX;G|8BXOSY@YN^ z+I^lV-_Z(NEY~#XHZy!v4uI|?d@-_Y49&CyKoeyvlv`O*$^x4~kH`?^?+cOs#n$?j z;mmy4TE{gD=S-mGuBvr97{cz$b%L=bA=H(lg<1_E9JoMoWb6@~E{5%}{U%Sx78RL> z5As!mRS(0}Jzd>5Wr?`v`Ez4(>%ow9_XPOrN=s{V4eJEJsz1@u(cOziP;qc(&|hLK zpU&P4&zx=ycEQ8M4nY!fMRr34c4i3$bg*f-#TSHC9qc$7j$?MxkD;&XhQ1QMe+kW6 z!nK)s;pNrP(W15cb`@^+X{Ri3w&9<ZJ2wEc#&@o;2>EBmw!+Q<Y?>qg|4&m=SyYs( zpRpTS9L%QbZeR1NTUjY1v#gnQgJG98nao(u1Y(&5=k#pzSfqUbku@ftVGLXMK(r5R zW&Q%VSr>>|)d+^6yH%yeP@xsLqM00Q)!?pQd3kAhjGQcnth+Ttk+ngzfqs{n4bg8t z#A2JqrnV!2jG(LnN@SX!!znK;_3?$ona$A8?xv>n=wmX>pXG;3qi~sqU8RH+4$8Ca zeAiIQc!s!pDP%to=jOqw0hlv0T)<k;Z3%ZyVz`SAfM`7kXfi1%&DRd1^{p1$x+PLQ zg<(!>O8b_!zqkzUedLuER2eduexP*5gj)!gVzrb!H=iBgLsbYQoFLu98RqV>W<R70 z8C^lFsN~FJc>D(^$vn8Lz$i<u3_AS`W#HgY8hoZeJL_Li%CfK&C}%U2g$GBemVKwd zS;BA@92`!T#&?(J9ER~A0|3iy;5HJ}*os0daHc?C!O$OwpC<THpqO1&g*d96W^^Zg z9>YEBV1)ta`9L~UXtYBp_BAf8X60PKum%qRYs{;n7ss_iD_bH9K_uX@<#79*-FP%6 zIFe0pAWjjRKo4Ezeu%dviC2Q0OBl+T2Sc-Q^Z^%1AW+SM1Ls(Xtzk$j4hE@Cr-2#{ zh~a8Sf^cFpEMqeqNTBT^31bGxQYuQ>Zaap#o?$+aD3JzpiGLnDp)pj~z|eNDx}}ec z3DykXXV4GjDvi@KXY;@0U)!2P{MKtMaBdajzm;J=kcB43f7I9Du3>qM?RJLkK+G$F z?Pw<2T}7)I((W6I{gNeHSB=XM&b18Df!Jvxbx<UO5K~$SmxzpL(>>4}%VwxPKu^#! zum8v1eZWO=zK!0$!5!=h%NDyt1hIfL5v(ABAOb2)vCu`7CfKnsf!KTRy=&|}vBgw- z@4Xw-OiW^m@%_y%ix||z<T>ZO=X~;co^Sq%?q2tGU)MdeyR$PpeB>)QZ<FsfP5n}q zYT+Bh;_u01Ww_$+ZC_s*rFjLznI>U6E@AlEOF2nQ`7m63sC;Fp;J2Ka;f;<m2jhD* z!y%!Va88fpSWdX<BwnkLO6a%QxQnzULOFED<uhCb6v;QRe|kecMv443%dv2AbMCP6 zO&DM5L@TlRWLmhzj8}pd|5*Cwq8lm^5fT)_N%u_OrwwOBn)Vfwlz{*6<)5R{ew_Ge zIE_sCCd(9a>c2?R@PW;=EKC7sC;|V`ej*~o5Rl#!e(h&9TZ#5I?@o#|#t=<8oiUi# zO4FfYt9k!6KQ2*=C@kN?e_KAoRZd)CW-8wjC1CMmHANOpk>g~B#lrCm-q0uq9N041 zH}YL)kxygG|8ly9c!gzC-hf30b_|c;4cLotrtDVzz3d931q8O{jIP3frnOSIqSq?% zUi-mQ`SkMV*>>a@Jm={0<qGF|`?TvE7FZZ;y%Ow=yZ=823wyDz4(5wp(=0bBf!?^C zy<9Wno0Gs0<Hd`i{{Eao8S2j$TD~1kU-4OORbm!D{`rQ!auC$H(~Hx-3a7b4iS))d zBCj|&W&9**I0;HQx!RX+QhYez^5UCptKCZ2H-4^uUD%k`5ynfv{9@SB0zz9WU*-9l zuHCWPqXd5AyWiIZHYRF%{qYG8RlZ#2WuMdG!e4xWVYUAsXKon4^l_v3i}b;NmwA!* zl1j#%4PX86e)z?T{q*fJFWjs+3dC_>;~N3K6jHtj;q9t#sOfA8t1td>=0%QT6qes` zoW%HgZ`wqTC<DCl1@on*7G_@X-i?!@jAv)Ov{H^MLErc>=G8%!qkO#7E7z%-0-N$Y zrG$LrYw$}Ui@ael%wD-vErvgQ@izFZ60p;o-rf`mXcL#7Xv5K4)A4)5R%i&!8AQep zqK0eh!UDJ;t;lzKRu_~}BL4L#g>OLlfX6vHN_7g~OkMt;8G-}4$|>-zm7}*Y?DUEr zU%sXc@prfUSJp~7RfCVafvwr+`zj|1@bXmTX!uQKfYyd9!<8RtiA&8$e)09Uqs@zJ zl9g-5IW*_fE>yX&w&3Dk&Z`Y%qc>b{VOlSDl!yWUG-5j+zPk$u3|77)E^@}P)qN#u zledg&{NBFk7v)x8Dsfu;bsW<He=fj{;dq>KJ}hT#y>!{S)z?a_W`8>tJDZNi{Q&O^ zxY8l8UE$8=J0;RT?n2QM9ZX&LL5b+`*SQ%k=r{G1<0D-CS@<&flM<uxTgFf}(4vRd ze^G)&zGaZY1xA%PPNSTG&2i@!r?#`VE^=Xp)$hs}oejUU+9NI@$@t?#Nqm{XZ&414 z&xp%PeC3+vvL{Z8C|t{Y@G!PoxgNzgf~yHR*@;v03hVJ)8K&7k8^-v>TS0f!=1Qbi z|11*AIh<?6V?thBwWXGncs~CuUh$1YUFu&<^rdey)Mb@O&Hq_qFRw;*1tnCAe-`Rb zi&AZ+#BvD@^HF|kGKCX29SeT2s&Id2tcvmo<N7GN6H#lFr@OuJ>4i_^?Wc0_k@EW& zg;!Lo^-6$dVag92CfN9-$E6P91X1N{9pzuMQ?iZUUkw^EM7a*v_=>80+roP{!#j3P z8a1t?DoUi#zY*z`Q4A*pE5FQ95Z18%3y-?0t1H2q|Eu7pJZ+Rv{5bEQXKXl&l_CUY zXZKUSt}~`-nkAo~d|DgM8dd(q@FNnYtx;{OL~Qle5rh4LLpyRNG()s8?2Szs+AHxq z-#Q*Ir^-=wQ<S=|nWu4nN{bCA3Ui`&@yQzA*6?e%{)TPH6tRI4u|x5^{!T>Y*AF<X zQgEn7dFe0slfnbv>V``Aj{hU!jbDcGen2@%-ITto65s!y#Wxg$_vFeu-6H3Ws2eFU zz5ZFuHom4~{%TJpOvpbA!?#PVloPg%SJ@W(;G=G;#D2x<EbLn0dtArD_qK(r-Y{>U zaL#ixeZQ=3p~UljL#}@rk1dGLJcR*$lz^|;as2%RjUS#&A6SbX=~uT_g1=&G|NFrW zr)j@95mntri5T#2=3j7Zj4PQ7zi3ytRigU+o2bg?0mIiQru82DuM;i!q~RONIWVTE z?Uks88!^26f>Bt|Fm9KT#jhe4+k<jBZA3@q#|aGIUMfd@41r&~f`lod1K&`CzYfj0 zpd1(F)6t9TSJaV8*iQc{EGM5U$@?i+)F__{IQPJhYbTU1+Dvuntc=1Bg#Y<v<t^$` zbQFFBrF|3^JQu#_Q+HJcX#YPpKyZ+9Nt@}~GIfj+{ol2<X!;!4E8MxoE1}=CegAb^ zi-zW?gKvA&Ne=2HCHR~6oNpIAlIw>}r&OtXDzTdv`<>5X*Sr{i(uEIFh6D1-$?Gg~ z!y+ksi_lvM<^6X<`EeaKze=W@%*H9&$|pV_U*$Y2(^^Y^tHccHxfL8K4B;i6>r_pL zN7a3lP|n2@GoJGO(pl%mX}<LKv#;`Ow_?vWUJ#UO`XN-hXZWQw!;6XWQbp5D1}FjC z|0;mtiH0Kwe4cyxd|vfnB|?+G6+t;itfRjVg)O*VvdG7J_0Yc+r{Hup<x0fY<ddt! z@%pQL_|RDJRzi8z@=-3{e(4e^b)FLDEq-IxaB_lrgz_xcVuQbYS+TK?yk;uDZuZg@ z#p=<@^P3iXe&K=b7bmkBgD6)H8ZIIG^T(QTN}yJMKhW#XL*sS>>Iv$JTu5#F;a`69 zSNT2qKmWG&QuQSDWWjCB-uy5w|7;x@{^utb{0y>ss+#++7P;k~dZv24aM)m}Q_oV* zR?kt-RnJq;S1(X6R4-C5RxeR6RWDO7SFcd7RIgI6R<BX7Rj)JScQFUcsv)v!n5@c` zRqx8Gd|5R@R*jNXV`SAhSv5gcO_EhpWYsiTHA7a-l2vnL)jV0XKvpf1RZDV{l<_vG zH>x+OH><a(x2m_Px2t!kcdB=(cdI{8f2iK0-mBiH-mgBO{z!dL{jscCCac!Ts*SR0 ztE}27t3H%f`(+h>{+X;gB&&|es#CJ+tgN~ytFFqbo3iSTthz6&zLZtp$g0P(>d8yL z_^$rK@Qd%N9Cm$w{}<mI`nC_^r75Aeaz_EDY~`LSMShuIeaskhC<lVxBBoC&KO$W` z*lA<1;cpkrkX`X$7mUGVJ_Nr-X2w_H@Hp;GRy^cYW5_&qY;O@VFfF-ws9VNR@4ekr z`R(hBtm47$8-tDHNZMQE<<qw>H?k=n?JHxn(Qh})SB83Q3^n%cX4x(-J}I?$UfiOd zn?R_>^KRxXW*HOHKFe_X_L!JJ<(41HuM!$=1d<&SQ+$lyjAO7<YV;OkymHg97RFeU z-!2w6E6OgGm$hV!HI)~{x5!JmTHQY-DK)Wpz%s^w(|JXE%Yd(*Y(-<dnH(ei`|*n3 zO`@USz&NE#*~%y{?%Py6e~odx*>6`||BUqFyB+Jw##nRTZu4o?uW#Rs^x~P-Fh-lt z5$S(b34UcDCE>5iU~3$VTY*OXtHF%By}ugG!8qFDw=0z4)=IBf(~ibyOW$ry2d42u z{6*HF@dh&1&en~D!!m0ZYgcPGYj;_-Tvn}+RV!uHs%6$5){R9SYko0$wX9mho!L}t zmD?IrV!x0Umo>=rmLWVPjbD#o_3@JkfBLI}d$0NS<OaG4+|{(Ba?hV`0V#<|oFi}i z7|0J1{OL)i8zQ{?EL)$w&)Ob8czQ{<92XA{XBTe5=I-2RXmpNCV|QoI1~$$^3*NF= z`&x6K<JZh6(7G)%;-{?NmsRVP8Ewc-RwB2tKJZNHn&Z;Q!-K#?9NIa@&DDily}gLr z(K_n2aXVReCN95vy-8MWR^o0k#tqnT`fzO599I`FQgm@~b|<c@M<e&5apSCeyf$vK zbx-2*1KHbT)pjNBj)HtGDsB6KO1L_E7%I`&MX7|FyYowtGp+l*HgbRK0Yn}ot9Hq% z-Ad#SjFG)-%)UI5N_e??DJAyw7#f+woz`BIVYqevYlFULJ%XUTuiGQ5_9{X56$D+i z=ysdVN*os#cdwzHay(r~`$fzN)>B^_bDH&ZV$PIR2V~VpO3Z@=G1Y3@E`~&zv#X1T zVJ*12y1bO^eCs8z4ZPHPnXv+&$f{3^RzRQSov7SlPD!`1mq+2kT5G-WwZS%7Z#D+| zTvmNiG}!L<d*v8s&fQ}RL+!HO``S?ZtoIY@BUyD=Rvl479WCg&G-7p)PD&A#+sH-d zc)B(6d}*?uTOWOG&|}ue33^gi9hX%nl%OXIs<`*YsWZm>+#0(pi^#>Wq+ayqy!DmW zM!jl%%{c4Rvg%BcS^JEQxmCVvj=O7PrH1ZaFQVPG{_?fa9$9}yG~R)qlU3)HXxy&T zuyL0EW<|Gx9KF2Qf*QGdzO;OvSpV|cpubxGM$l)n>XNLwtOUJM5VZ8rA(IP&x_Bs? z`^y`Tri7-{>w;=ZYs!c^nsT!0nyk961mzB#N~Zp6#x3p8HOI}vS=o(vxhY$vn;SJ~ z<X+f&jas9BZQx28?i8zRmA7Qo?IH#BuAI92LcucP_T>e;I*pCS?zN%pHQaDi33XRi z-76aE;(!w+3nuRDRT#=i<M!H6?wUr%P!D9)!y=)A241nKq--h5Y&{zlc3IO*<MY~J ztu(&W&QDf7l2u<R!M-l2-P7p%q0u>wl>M0}JK#<^uAZ(%b`qK(P5ajd?V#ys%<x-T z^<9w+edcx=-HnF0J1ckX^mwraYC3DWzcyNoCe|43ds+2Ek!apK^{Z;o(MH5_@oZdJ zyJSr&u{1q3DVkmyZe{SJtolh-{Vc1VF4LrG(wQzdH26hU{i?+J?f>j+Xwb283DJhV zh*#rAN|75Eeeu)`){Iv^-mA^b`5?cVkM#5Tn7@z@`is=dHSh6pe~EgXdX{F4dX;8e zZj#|cJ0H~f44-fKgwL*@5BYqm=aW3!9G~|2Y`?_t`JdZl%#kHCVrwR7CTb>WCTpf> zrfQ~XrfX(sW@=_>W^3kX=4$3?=4%#c7RpiyS*jpQ)nuuzEP2XO8(HcoOL4N4DoX=p zDNmNB$kKdSS}RN2W$Az{os^}kFMVv+EHl1O`Xk1&>%V%B=a=3yjysbpAAtVijh<$; zVMs~DSXo>*-Ec3>@Y~AVYtL}($H{mP)Rqa#6@rcfGP0DPHFiu)$>InOCqy)F7?I77 zJ~fO>OiM{`*qYmdr)I<@W;Zn5G&zl1FeYU=x)%OH>!h>{`{b;QewpdqT8i(3vxsMJ zy8N)Y;Run_i~9_kuB3G`Bx7$lEaBKAi>E57IA$t8v)7zkvL)ELI=_@kyOj7W-t;wW zozy=mRk@c{Lqll(n@@>JiOM}LU&_g`M`q7NvQHb3+^=_E&Ryz}G+;p7;CL=*9T?xR zm2zjdh8(y`?3d6tn;_f*(lI5oXGVHbc1l{m)HrHUkX%p0Z(#rbDzpC`wK1Gak(QL0 z!p*s|ozgQ>xEy%kOBHsCHx%)ewR_bAjlIt3pOlrw8}MwWo@sHJ|98&Bv@s}a-;qtk zv9IASgpS6g^8d`t;!;!pPtEMjTV}(Q^n}!YiAn!=uAYKDmT{k$-EbhkrRL%O|H4!X zc9_|Ty_^4OSL)*8<Wlgr#!aQUan_D;$_X!yDH++GPR{myGcr;WdU7M^?B)p>X-<Z} zb4u*%RQTskhFyNaZG?*)%+{<ozU-O*+k;q~f1{ihXgEw!>>!r$fQ4q0W|weSsoAXA zqS>n1rrEC9q1h=*Dp`_b$wHP&%2Fv=DlJQ8R+{NFADC4V-e!6;otZv2OqR;#MsRD! z@Z2zPB%}6=*G1C}P)#?$bmE8xN7@rIQu!s)Vh>Ypr0buNn#fBnzXe<Dud@@fGE!5O zLqkbU89jP%V<&#I@Qsg3<%b?#8L2Rzr1V55<D+U7kMz=`3_07q;X%f!DZxyiBMxbf z3iT4rVa*X)Dkn?jmzX)4IpucFjn3^7(SvzrcTX(1C49T2^yI!hP0u@{;j`gN%~{Pk z&3VlQ%|*>6&1G4tC`*>IWF<>#S+bTTjVx(bmQB-K(_GiwD4VAIA9pU5C7mo)k)^82 zzZ?Glzm62?$k&?hl#YC(`Bs+nvQ%k_S)S(m-2Spu`86%E()G3VwlUlUR#?t6HRxBZ zxzeEDG{0+}Y5veW*9xtfELE4K8nRSVmTY9{9a*X+OSWt*T9sB3bG0h|t+cYS)RrZ? zT;6=wR{q0Y>CXS)%6sKv|6jV<{7-D`mU>(7QpOq=R9LIkRx&h7OPBcnIy6dKMQM~n zZkIo8HC82mHa)ARwhn#K+GyX=*3#N)YisSa_Oet@mg>t=16gvEB_~;GC`-;OwGP_4 z+Irgh{L?|pAG*krt1P+6lDpww_|HcFwTAt$rI%It3AWz#jNP#+-_KO)X4;m<2DLCW z$U|w6kJ6yV#Tuj*W}C*Ep69O(QCieS8=wu;w$%n{+i8Pk$xD`+$Wl{TY9>p~Wr>(A zS87AG?X?}W9r<UdHbR!XWywdDTFH{H;a~XA*8jCgX_3FJx3N9K($!Svcx{rgJ&A_) z_$lp4R@&oVtUXp`Ynh&vs_m;ZCrz8K&Cq6Q`)ISY*|HQMOM$Y~R+fTfshup*t`J^$ zwEdMg0YzSTLX~#`|Gn(+6`bKcPLVeP+V`}hjNKS%=tg^`8)KAibSU19@(!kMOw`U) zx-m&RSvy5LRXa^PT{}aTc-07(CANo1S&EXSPO{W_rFNEfwswwoF8`dRT_8)*veZSE zy2?^F!@uyK-T&KEluf0B<s94ne|o7|t6gtw&ijVu#3;?#s5B?GcyshVrsizZ?opbv zUAsfOQ@cyMTl<0bLs^QKr36`Gn@f_V9<r1yOFflMW#6ARm6ZQBl?3I+pRd?dj%iOC zyK%zMjb2JOPAlE$UA!CRYn!@pL3=~##zpNV?Pcv1?N#kH?R8m7lcjW7%8;c@S?VK8 zS+bO^bmNxhy7o?y9amq&JLUoZ?YdsokH^|4#(w-@=tn=LA3rJm=wG}a<+@mgm^$*i zPNj6@nf4FubDhwc>CAN;dLAT8gJmg4mWIgEP+1x#OT+1i&f-toNA7>y$7{9^omOXj zW2`g2F_!6v&hW<g-QxYI(5#>vx|%xWjj_%~_l~ZX&Q@1jXQ$(halS0QCrcw_iI=5O zvNT$j#;nvi=<4d~>FV=O2OV#W$I8+;SsE`(6Ab^te@^`Gr9^otDQD?u>uqU#<7KHe z6}p+u__kPQd|Nz8X^-J;@#Ny|Db?HbEPtKyrdZcT7oZE&wbcdb+Ua<gHC2|T$<lOL znjuRwWoecy%~m#+_J7(~=KQy@yl!KO(Zw5fUb;BL&TFpHjYMVVHLrL#8g(*tBSqIo z=|(SIZ(XV`O_#3A(D4Go+bX_3;{eNISz01XOJ!-<N?n#NTPx}M>9YAZzCK$nODp(z zFH0*8|H6N+`fp=VHkOK(xt5ux`o5<#z8lsV-wm%;x?*@Yyry_pny)ZDYobnhH>{ha zo2;9no2r|po33NKSSL%oZCfu(8)RvtENzmd&B``1TXS9KP~;_ki{T}H?0+xuuXu^q zt<tSEZY66BTgg_XAMYz$$+qJCP(3#FW3z6z(vK~=t-5Wx?YbShow{AJv_qCSY|Ovx zmZcA5iMPai=ttQ!(>_agz}SN#`z&eif7=M#h^elJb;pd|IBMv|KBXHcly2-V-i?Ho zre~eiT~)eqPIq2+L3dGiNq1RyMV3C2rGv8cu`GQeOP|WpXR`G9O5HWxb=?i!P5yaX zcSn}KkflSibXb;-82*J(kNwvVWuH~gs+7vs+o9mdSIMs}tDB1bgYG9|i+(h;=(y6N zr%H=X6l;-MSXKSS^t@+!Nomp_y61YKH`ANzOXyXybV`;^%hDNHIx9=(Wa+#tU0{>Z zm(*O>moBmkyJ*;jUHNYp_KIDYUZ<~Y=!m|Op(B^*h`y@Qk;}z8VpS#6a#uk|^zZ2F z(h+?vy{*2s-cE0?ucLR6rE9Xpr^g$zbW@gY$<l3Ey0cPWPdit6QPIxT*V8-8(p|&B zl`4ie$Q)(iKkxmw*(jThovF4>^(~A&;eak5R_-f3@m6~Bpm<LzRx&-yPv1tU7wi3H z>C44>jyyif?b1#85fo0PF`k6ewdiRIre_7~BZYdEK13g?Z?Es5@2C&chwC{;_O&d1 zBTIbQ^PMa`mZk4yiI1^QR_UXJy{My))_2i&)pry2vh-taFU}&9ev+l1W$CFb{lb5D z>1_N~H>`C~bV{~gYD#hnm*H?bY2zPr%1%l`QebuzCmC^tKsNWnF8UYkG7=2eb;MYz zjeqRJ4L4Kzaz0YOEP@pLp)rVmTv|%%AnvzaGyr#TNJ>>M0WCHn-{B@?CH3VmtY7hs zG`|><*uQV0A-g}H{L{pvwX3hYm#4p@yL)2~M|T$&KSxhj7k5Wzuf~mAwRZFMba(NK zG=7U6nbKZ4aVXmOKb!#UZmM>=K1(<()o184^&D3DO_qL_rDsd^+4{bEYWRn2p_462 zDqDjyo%7+%d4I0b?wFLBk=0lE@sZRd<=9VHzcl4^cVkn-l9HA4z^GxRVoxdfeG;lr z?61O8`lcqG5@keLeU91e<@zD|q55I^;rd)zdM;Z?vPCJ`qO5FDAve#IdY*oyl6t=W zJ^cvTLdX_ovW59lt)w5VAEUf;w<sZ7sFc+0iw*Wtrkq@#p<H{;&5_^yz*bzU7M7IB znfiPK&s{s;{AlACk#VX0k`jcCow=}i<#L~*pYf_$bkNUI8qi9%urM^BgH43tj4;#W z7w9={yV&G)_4Ld1%azag7Nup2GP%heo4k6|HF~a5EcWzrf9N;rH_0W+$QI>fi}Jb2 z1&N<3x0<$WE4Mb(O4TerGc_f<ue0+RGxHKE$s(m!r`nt_rQC$EQ|*j+<uc3c&b5_0 z(sI&UR(S2c8JT=(G-A;P%W5S{RkW;9wVHjM`i(pqzvJ1AJ2SKi2<aHnxodn<MD6r` zsi~(+mnmDWe1%RSTobRHr59P7lK```yM}~uMOju#d_T_g$~Dienp>iCSigjXq@={8 z#M4&lGS<4vQ6XVYy^{uINAtf0X)Mubb5*(05`Cpyi`>e&n#hna<tiN>X}H+!Z1oy7 zZOXh;%eJ;1e-p+{4jH$H;p$}uY@Nh83MrX%n!i+bS+?Hx1@9k5S>~3?Ety-1W$a}5 zJ(RFPoN|~J5vW9O#mNAt$~e@m$GuLC<GqMfWD@$^(n{hDoZXi?IyKBKlUp{o+)@|U z+PUR(D-c`9{=oQbC9lHgaf3;c4_C(VPl{9aK4D3HmD`eL7kNm*6P26`|MZl)j91ge zO>!&dYL#J|dskl4qGhgSuGJEsR=Mh2>s(EYWmN*3f~FeIwG2#TLr&?DlEiA)7yfPd zpv<Hfe`6^uElvft4Qdx{?3HqkWhdjmCMk_;onrVz&+cJKP%s5H{?G@{2yNdzBrLdJ zU*&p8pRBC7K}$nB1k)SCzw`I})|*m;f=9dvvotIyn7@vUim~Jxex(#I3cRFK@GJh5 zM@M%lX#SGu;M3i@mx+muW2h))Cr*xr<q($1Z*R477M3M)tMH73MAJH1lAw&&gB^*w z$U00kuFxet8Sxc=9%ETCBrGUtP*S4dwSrCIWbf4Qtc;Alxn`o2uo6{-t#A~sqOph+ zT}6UO71><X_pZnnBg7;zQ!Er~#QS1{*d(@!?P90cEe?n;#2Il}+!2q(Q!_I&m6?TE zDYG(Wwq_1yer9dV0?pc+g_}j1bux=K>uwfn7H^hl*28Rw*+R2zX1mQkG}~*o-|RE9 zLuN<Jj+vb_J8gE>?7Z2J<`vDY%&pBUncJE-F!wTVX6|R+*1WTMH}fR(Ugo*x`R1d| z=b0}w-)z3ae6RTd^Uuvsm|r!&VSdZ}j`>6L$L3GWe<@L+gjEUq5}qZRmhd)iAm(Pq z{}pKk|6A}sC0fbmrq7)Eo%(&kVFi2d-TDvoBlLUpdky>Win4_zyK&jVO14n1&`Rbr z^dIRDn$Iwwp`2@RM7FS&Ews5u_&?=ri#P9qm4*7358||39#rSek(37+t~LA1M=F<k z86J5`e}sMJQT;KNkyBs()YfO;;YVv5&3PzWXif>PP}iT(pJY`kv6tvih~*iU6-Btn z5Q!pA3=%f{v#+oTDH|5RDrq9zg`4G<#@ENQX0sQI^6Uo-UkWekFAE35pDos3ku56c zCL14lz3`F7|Gq6|tT8j!-__sK-`79TKh%Gzf299PGluijEvm{E)ntnrvW1OoQA@U{ zEnC>j77nuNd9HJj6WPl5GMva(qHd8t(;F|JwW$8T?=*6~@oHL&n*U4Br!(s;%9=%s z0cKq*8Lzmtc<1dd3N3OmVUbvpp@bH;Z+GdkVJB7Wn$Swdt8Fdp{uf@lT*-I^u0@^y z9oL;!GG2abQTHESBW_semGow_7v*v>eX*TzrK**xMHtRIWIrs}6AMupwNM|8&;%`o zC^s7mu?}0Y51-;Nj^a4Z;2bXEvJmCXLA>(3RVd#WUTBKuAZB?V_`(lu&<WA#hFHWS z5y?nFZ?G3FzaD#VQ-}(DQBlDaJg34SOv7Sq$4>0VhuDk#_y`|^+$(&JL%0ql)@|Iy zeLTch_!i&e34X>eLR2h?DsV#r`ePhE05K~v_lm@*$a5@ttYvAGMR`<&6|A9!9@NOP z0i56r=40s&4|sweST;iocq0hZ#WD+{!JIAEfIe6<4@<_il0c4D#IXuR2ZSL4QOE@K zvdRUyTWtXOTTxdldTVt62k{9$!xc~qt3QNLlfT*#4dDXnpk}S8>9LwVsmV)CY;_KX zVmM?>z-%nUVl2gS&>uDZQ8SME6sVv2S3DQOx(4cid00~qYwBT5J*?Xx9Fbt%SVton z%*%Qp7}t6XW?&JPU>R0`*qRcc?i%82h^=Xko?v}xW?>VyU>kN|7g#$Q>Y*V|%@-h7 z&F_L!BvBv4(UONY2Jc}Creh}NU>+8Lwa52rLVFGuz<jk=aUFN?7*9c-S|$D;Lg*xv z1ZzphTGFwWbYAEHYObT^x_%gdK^OtX=DP)<n~k}c4{EQY_Bv{>+l;N)j-A*IdZF73 zwiO-o)g1@<abQsB%fKG3(H=dJjdzg`#?+4jb=R||^z>Ul35=;{Og&@j>9>9*R%0#R z2WwA%2F$fmE%+l9Q$dcE$gvVRR@#RnI0@=k=`1ec3a;S>?%_vJvr5m|oza`hDp0S= zRZtW3sj>$=(FD!V0&Nfi=2p2Q!V!rCBq15px^jOE#9$1;XpF^pOvF4ezsk(7GV`m< z{3^44DnG<eAh#;ivPwBrfF&w}+^W=uBYe>oVIYSpoe&NBT!orfVY{uuxK$Xp3gcE` z+$xhX2aI230a*7{mS7pkqsk{ZflIiL@9;gIfV`?a6{0Hjs#*f9x2h#k8f8%z^rdPF z=y%mT(BrC%U6rw`GG^6<pwCqquj&e{!iQkos)s=DsvZM5RAs$ay#xAH^#Q&F>%Qs_ zpnp|=#xFutBZq1l)PXa+KpxeC5en9SHEL9i+EnX`?ubP^Qqd2?K%Uj6f&8kGUp4Zp zwi@)P8nvl*0OVHfILNQsDO|@bkY_dORqY`j;kgjiOQAd}!V1=~0eM!ZR@Ljn5$^B+ zYpr?{Gz0lpC->^)Tb;F4owZdx8Pv9VCg^eXzUU9uS@kiP3i?@nDVBrUR$qg4*oNKs z5PPv7M{x${Z~^qZ`c2%%T`-^O%%?hauTITt2$V!=(C-?|t%e3VR6-S0gB@Jq3qQ0$ zAc7DK=2e59)SxFd643)a(F^pWMh2K)4f;}pxz!kqS@;0Q@vRUw8Mh{5)Fe(#>QGY# zHK;ib6EF!=z&@=e`?Q*@yPEX1Cbg+aZE9}CSv(fPrUb~{rVi?%0UE*uZeR{J9YMY} z;fO>6$jye_Y=(gKW0MQky-hwwU=+y7hMa5|+lH}i7~5tgR%0#R#|CV|7SJb~9e5zb zJ8bvw)Iw7vVH$YOJBPt~t5p_S(3o2F;Rp}-fb~<0+SG~$xz^(OwUWWwsYTAU$hp=~ zkY_DwTZ{VCV!hNNk6K4@2Hy!`D}g+0Ey4cBmN9JI5di98+aGzDgLzm0)}ZYYEW-*A z*LDroVLdkDGkgK&V#|28^wstxPJ_PKp2tO82Kxb9wlmvbg{aNitL*@9go3%%W*)UC zgWA?UfOGg7KY@KjZT1lyO%!$|z<lhOkDUh0$Bz2ibwM}8AP$M3R(8FR25M%P4d!Y$ z2-MDQINrs37=^Kz0P?V-Pj)jwP3-1_de|)mwXmb_c5AT{<Z5>ipMZMUQ4hOQp!Rmm z!R`Vs;R@)59rL$)E`)tqkiR|o+gC+()C4`TXAbs#K~DB_LA~u6!=8HDUj+5Ezls~U zg-1fvsSkIAAOaa+UUhhG9ePz~Gqz#}_JdsOkZYa8pm%lXT^(|)a~JpV5K3HnP=_AW zc?xo`^E>_!g7yiA(kO=tu!I+yqB&ZExi|zO2nk?Yc36m2U@bYYmK?~>f&3hH;REc! zK2TQ&=In3;<mSM-;=E$v!1xY~UzhRgvL5P|1v%6uhq^7mSarh@iB5<{S0sV;P&Wm= z!J4Q`jp`0W4u)bl$gM89)g`yO<W`q@)!m8R_)3U+CEx~cFt>V)S1%Z$=m5s6$9VO+ zBNp*sE!JbadYQ-qy{$JN)S}*EECuVT9%I*|&h^cpf(1%}{X_j4ut6=<hCLd>1>{q| z5gLOY)Nchpv;jHRXUzJHS)a9EpZV7R9MrS^DVzcGYCyaO^sPZZyo<3IkBOL!shEca zScD~5j+LN)4Ypt#s8@p<xP?1lEj4&3gd=%5l9wZSIR>CDqCkxt<3Wuad!Q%!fP5VX zU=W627)D|Y$jgzu9O;WAYsQf^<H(wEWX(9TW*mPL!ioAhNhk>i&|{}jU@lI~#c4Wb zVm6qI6LWD|1$yuFJ~n{(PQ-WGi~V38PLJ?4zQgxW#`;5uhV-l<YonnhDx)f@qbA-# zJvhP{uApBH8^asE@J9fcdqd{lkX|*UR}E#ni+qq{!>2+xGcRY>yE9`stD%7ojOAPl zcBli!bZ!8~a`r@1&|_!n?A#N*kcJE}mU9lMvvV%SV+Lkn4(Pq}0;~iza(*Aw$ayoi zf*v?iBWLRG{0Y9nWBh<0L5-ZB3*kbYT*%R-ADEX5>&%6*T<E6@y>X#8E{x@}5KFKO zjOnr(jODToJHhtoavOJXA76rX?7~<sPeET?o(bVv2G-C*4|?NDZ(M7G8oAa3HF9kT z7c>Dia-}b>t<W3k$V3*Xkt^%bl{&eSqwDuzUT&qpSZ?J&Z`|mO8)LauLrt&-+!)i1 z?aYm_+}uI`-5AfU8Iq8U6fmY6eR0bG^>?HGZq&q$`nxT{Qmn%UP!l)m?{)x(a0JJ2 z0;g~p*KiZm%k3T>fZn+MgkSJG=#M+~aIcH{aD+2l(FNTQgE;g8Il7ah`&=-FJ2Bmf z=}y1h>4E#tAa)~jNT5EAs86HvsEA6aiW;y%Ac7E#P;^8%7`IU@5<ra_Wg!PcF&r}T zFb)$j1=BDSv%wl_v>dCj2B&cr=Wz*Fa2M325p(cRfxJ8%z<Tg-LnF{D4==DLJp2%V zwjf^*^7ZJ1F6a*O^%xCu@|b{0xPgcG3g3cSc~JAlB~cn>L2VjW1hr{Q4vnczV`|gb z7Its~IW=~N2k1xRcqD>ty72<61aoc7TpJ%2!jl-D^}%yId5)(iSaY7NIZx){$vix% zyC?JTY!B-0$vixngC{ljB(7&qOvY49$1JcWJrCj&e1<Q;+ViBgp48OyI&R@E?&Arb z;kgiAW+(v(Y%5+?&_IXEVD4UQD_(U_4-F83D0Bw-c`;|NBqU=7mSP>&V<R?WEB0VN z$kmHny*|ewunxS=;UX?`_>;aju|O%5fi=jf2{|?KM;N-IJE%<)>fVGLnxr8U+31IX z7>qoO0PCR1SddGT?bwOkAfF~5<5N5pqNxKKp#{9bI&0b*jNO#=)s((8r3Ou@LDOiE zOH=0Gl-@M$4f1G89h%O@T+GKpu-2L?@qfb~LeO^6jCIzGc{QtqDyRn5Ni*u*jCwb7 zL_@g39nC>b&3xg9bo2ppZq^?IL0y}j#3`J?V<DPT%jQ}TySWW&p*HM6{N}`O&YYXG zZ8dKKl50-<<^f<$HV+2zn-4+`hT<sB;Ucc!8Xn;ZegboC{wsbLqJ;!<Xi*l-xrHUv zs0wmw@eXX!4%E0s2hishV=)cWF%vsEG)|0`)T<@WX~}b1+JSnttPAGRl6kcB1oLP~ zy;`;e^Jp1_5U_2vWF9StU>I_70?eZ&^JsY;H}MUA#xI~}EuZ1J5Z=tgn;g6=fO&XZ zgW7sC4{vhvrmo6Y_1?_GyCcF8i3wm1-m@?V9|++?3?FLX!*hIij*kQAyARu$5A*P0 z9zIRMJbdW84{OnfdH95Y8u?HoALijR95V878qC9odHCGI9k2#`=!MVk_(KT7h*suc z9<9isl@*vrD;=n9E9TLPoLW)WR@Ai>^Jo=;D0IeTFo#xiF&}${@Fj*XHSpy*zC6db zK3KoLtS?{Y;mbUHTY!1^`hxZ4%RGFUgD>^*C9ZE5<YNRzVGPD$0(M{*KENLA!$&xb zV>k)s?t23d@d#hzTRaBy_oauenR{#I-kLSpx+LgfYx>ukdAF{L>hK3^rgdAeCR>wd z>j4;q91I0HwjPPmASb^PAeLWc5XX-=el<ZY{phJ5weWKWYt)b4`ZWf%@S_fXjO7=E zVD!g83<kaRqqlza)^82gVLdit3qHg_e2On{1k}RsGVb6W9^gxSg&*-0zkymXP2o>1 z{L7*O=%GLBz`q&jl|T9Uw*tBOQwM+Q;LqIs$6zX^V<u)}E|y^>$km@*{Wo9}c4H6r z<0H@;e|qCjZ~W<vKfUoMCx3EkL!H_*0c)fUwQ17^fgp!AY)fsT5RI;gK^%G^4VlOS zxwM&&g;)&oX|opZ<GK(56;Ta#sDrww55^AgfETDi05u5k0l5S)|9}o4hX8U2=!|!f z57t5e>mXn(wqiSWf_Vop?*RG}a1<xN8Vxvy3%HAK@EyL#6a0kdLIj#aLP?ZCIj~Lx zE1@c?g9Zk&b^_ai`~o8oiB1@aX`l{))FF^M1TMvLtOtDwB-cQ44cvtf@G(BaAshkg zCGcnb0{YWd1#)UjPHh{bHG&ZeYST6h<j}S|=u6u~^gs%Fqb~+vFou9!+OEWE(4V&C z({>wn;Gqyfm0^#DaDf{dfw6;Fn?dv?h#CY@gP<UgOAzx9>H=~IB8Q*^jKc&>0_!$t zI`)F~7{q!EV%|Z_JBa=SoyR3y#SPp7>on*oe#P(jLkP+(+LcB*u%6mkK?5CXq898> z2kpT=v|TvJuU!mc5s%4O0P4_=I<%t>?cT=*>;!#jN3QM2wcSB{f@3&|GdKs<ORyPA zfc^wm067JdQ?L(05Czt3FtrKp2671Q3HlP8j!a~uABI6jK1P6Cf;V9c=ua^D1n<KE z{2)Y#Eu7(nrf80qVC)dqW(a)=p#~w;AS43h62kmLl0Xh2<PegE8JLARVBLl+#OGi= zh8zL&4q@IQ^e5yd?%+PY#8+UQhMGeK3zR|`ScATVvYtY#q6TbG7Y)!5E{H}~bO-r` zrl1#6F&C>q9YU!?D0K+kfnE3r^d*#BL&-JtD30R-F5?<*2+^MP(!MOpgZ{Ly1afLm zPVIxx32|V}wx>4jlR*yc*{8LqFYO0nFot3{Mqw-_U=qls{Rh|s`qQ3#+JAw=cqT*# zM>K&i{Llu0VC)X8%?|XX12yPC4LZbtTskoS4jCYa4&=~b02W~hmVtHKVKq*H_1J;+ z*nxR>VBQ_*PlreN29NOsKMB#1b=t8UD!>wIXiy#Wr6cR9qa7Sj4{q>)7n&jwJ<t>6 z*D)J?(I3mP8PuU8b?8VPIv&75907gd{(qt)xpq8{i@1fmcz`d32(yM3deEP+S|Fz| zatez;JbHsQ8%Axy`hXn5*r$cjm#}w{kC7OSDVUB~m;-VN`vjkX{)CZF*lC;<BD^FT zqcwsNiVg?^V~4Xg!|6*nH3+8$;VB@OaONLA2;>k>4&gG^U>(+jbsN3~SHOA<XFY~9 z?{MZFPJhCG#8do+KZIZ?5y3i*(4i8lpc-nR4(Lk+>nWlkT;Y!9@P;q^kd91bf&3zd zVi<C<0Uv@oL{Nta>JV`lM{y4HC4yWd$Ti|7ZsRL_i|_G7h)C8;WKFyS`V-jz<P=Fx zkugX`KMVl1iOc~xM6yqdq%V=<FaeV>74xtVORx;&5_udaaT??kc@@`%h_ZqYLJ)<{ z=z?xw>?qb|6n%-J22s=?DjVby#r&i4Kn_vl5H%KCu^l_Xx{ca{dtg0Au^ywCcNFuE zqCZj3h3I4s38hd5df1>AYQr85Z~=Yk)EHi9h8Adpwg^Tj24XOVfc!d*#3+oxE_@2= z(1|*5ZL8>X7UyvT^raKIb|TkKkMK2q!Y}w8e+bc;_0qX6>Vy7t_5e9`Ca2CR=#SxG z&32|Xo!<jFbY`E{nZ9(MfmxV~`B;I~Scml>m(CY)8T6+!`E<UIheAYGMG!h64hcv? zG8j9WwHZxcqNzbNHHaPxa*1aC(c?i5(c}<49ec4KAAxln{TaRk>oJ=37|pz+nRgfZ z)1@@Zp(51KfOXoX9vZ+2&TvIj(3dW(r!KzmM*un?98u_ucae_~Aipk?F$L3b5GOz# zx=@EM)S=6D+{BllFI~vB3%Pdr5kCt~{6z^^pcGgyUER<K^rx#g$f+wib<IXDMuRom zmD+Tj2y*DkKCLT#>ADC@upBF~5nHewJ3%g8Z{sfLPgnBk`WQb5(ajDKh(~XvAp?ED z*xgv0-RMg<YS4`ubQ=kB>BjuK%>+4gBZqDa@i`9R2#$febfYibe#0|77oxivR45Ni zSVN0iV4Ze%L_<)M?rvy?mS~06XoEm>1pVnAjc$kmz3I-j(|sJMQFm(8eK$S?YpDBv zd;xOoPL44p(E;6&j1*9V7-|qh4PscEF*z6pdJvO`_b>rd!S)d|8*}k7J_R+1IgF!V zUB*1culOCzKbC&SR)iYNJGK(4pbnhj3U_$G6Rd++<{ittW0`ksJA{C_$1?X=<{r!3 zW0`v_bB|^2vE&y^Z(?U*4w!T7Ia~*8A(pie%UX!N57t8L4<OfAa*d@|vGgjAwHa3$ z<xl~Q;f1DX4u6nS967}e!U$0FIBFh8ZQ`bb9O77;aZ9lRtFRXDV>@<%-o(+HIC6=5 zh)4Ju<P-NZei0(RKDwYM`XC$qFaV4l&)STqFY(kMo*KlD2f4&E|M>YJhj?;`Uyfs7 zUB;inS)3P~h7WV7z`PTfcLM!MsElf;3D##qZMdKbnxO@}!P-m+0)0tfJtc%85}go- zL?j~xQ^0;BVFt)AVKJ6q8BXH{s6zsENT3c0-{LWT1$`luNF>)p2_?ZclxPhdD!~W7 z@IxE42RS8@Q(_(_VK!K^iPR=>A;=+d4d_eaMr_75?7)5;#HaWi<dXOUegyqVBA+BP zlt3f!2T57T!B7l`48~4kZ6?u|Bx;aE4U%SpT#}f7(n^p+5;-Jozy(~w6|ioTZVJ(( z3|NmnSdTrJcMs;>gZ}ieg+1z`0i3`(?a><k2tZr3Lj>qc57twUZiq!ZdLtcukd1j* zfJGp`9&51<>v0udf;#k|4n3$tk6-Yc5Xmagmt=BHCfDSOutF77hYf0h^^zQnP|%;` zXpmDfIVF$B94y6hP@Ck{Acy3wpfAb0@ger%01n|OPT&-jT%O^%5IyNnPx9$m7Uj_r z85n|*7z4)a$=c{iZ+g<3o(sXedoIHYFn&+w-;??G`~=?$k)lU!)B&|mX@G`s0oz6j z<D___6_{sAM}#8^%r~VgQqT*%k%oLs2HQspYa@j|q$~z`q)>+x@<?I)l+(C@hxiIg zKHr0Wr2HWSAw{neus~@r_g>`M%NOL*D-q1Umkes%i}<~mTd$osh+{a3GdPR$xCDCN z>l-0@6SsFoXh0o$S4K6^<KFgQ{=FHiH$Cmmdg?t8jMbZ(_GTWv*_L_}xA!gF#REKo z68kZp2$4$PQkg?4W2Ke?Jxry4sf?Ry1s4P%3AvbvHQ0guU>>QT;tL!B<E64)rCtW} zNTq(MjGy|e5NS4`H);Jb9Pi>ijKXxVEu^i*X6ys;(x^!qHAy2@8nM!D;~vOAjr`Mo z!c(vo)96XMfCB=-T1byVG`b-ceK8cd$OGf2&jD*7o%NW`I!LEa>C`WsIi%mg*Z2-> zi|LG)&UTp2cp20yqb#Ub2KCBl053EHy~*$fd1OSQGrE90GI}8m8R&y)n2$9$0M<nY zV`p5$O^`#zeS8UW$)J`Q&xFWiu9@^MQv$hUmO(k#!WFHNfGOCHgP>QL^eU6uW*)~$ z+y?W@WPX{<FO&IY{toKdhxzrXgzBh?TBw71a705mqYdb7AL`wQdiP<TeW-VzcredC zS?CAWXrCMm#TbmoM37@2)<B<`p#FWRf1lM@hYi?-y`VmQKE`J_1m@A_A})cN^|^{K z@h!f`kDy+Cm`@+(LmDEB`D8T#IcK#+JA|Smm_ru1XC)#Ty+E(BGB5;rV9jKW#Ar;y zRFHetEX=|Cpx#;3JBu8%$T5qaW}N`*Ig4DguHZW8Zx*>`JryFGK4zCg1z19j%BY4K zcn7xdKueH!b_bAiHg(VLiteE9+0;Ed7fY}Ur@@%njG4`t+4Ma7D?AZm0Qn6#jtgMh z8t^sv^MPj2K#wY@4jYieKzr0h12jY{u-*nz(}C1<U@+Pv43X#z@*7Bg16c<Hr(hwd z)4+%LO^8ACWsn>EKraS$0goRP2l_FHehkV)Hu_@_hF}<2AA=qVF_?S@lgD7{GB_O6 zWpFg;>EIZof}O-*;tVFvV0t!qIo5!_4c>@t*ohCY2Or@u&fqGj(O_~OO#KGayTRY% z37!d&V}a5rhl-$wIpma69n>s`TIG1c2jrPUy>h5m4)w|jMJF)doL)!+dFGI34)e_! z2pMBA9+NN?GcXIxBWD%XVm+uy&KB$kbIAD^p9wL<667<4{p67PaDofm(HQh{2t61Q zfFOi`dJYLg9*8~Ust`k&<IrY^L;`vs1=M(G2KwMVOaOTfCC{O=F&E@HbOSbndJo-+ zeIU=F<T;c)hkk+cxPzaC7*-XvL9W9*(G)E}Er*foFmfG69f!3C>t|RO3;^4~F!CNY z0;50<!<J$NR%0E=W!O_8hMS=Rw5SBe99{!<Z~*lh?gVF0tKp14oVgDlj&YcdS(uCY zU|kL0f!){xdNKSUJ_Yj|ehwFK8Ps(6b=(4T9)3@V+_I>H5cI_y5G$7$xx~mNM($yp z0kLHAm&*u|myeNPt>m#*@>nZ*^dOHO<T3xed02=gVBO@=kG!>5k4@ML^3G$dJo3&X z?>xrLW6V6p%sYbPIEAxd4tdNW?;37`{PXVPOMH#*@B@CrFZdnLg~&IDgi>Ix`P4q& z3L5B91=V2#TiBy68lWLu(FmSs3i^@HddP2$HfRghL_TXGpY@v`iO%SX7{nt9J<%KK zVBO|Z>-+&2jG@Ry9!6j^=ym=?OaVR5r|0?fJbwWeV;NRr4c^B_Y{7Qy!iU(0kMIdT z2Yt*xhLfP5`R8#7tc&~`xQ%;wh_CQ1zQ>Pvir?^u5bv=D-cz9@%Ah<fVGSKBqZ(?W z7VO}F`f!2^+|d|K&>Y_Ig+Bt(4x#9X2y{XhbVnQ#k&IqQLngA(AA>Li!|^WO!zhf! z1Wd*>%)}hb$097n3arLDY`|u0!%lpFy*Pl6@fi-`C{Exs&fy}i;5u&ME*{_!zQJQW z!O!>=&jgpwqXaBa8s$(CYG_djRZ#=)pf>8D9vtBeH+aAc&Cn99;D-PNAp{)|jwnQ< z8)A`w9!NndGLVIS7>FDUgN%HP#2AdnBuvE&%*H${#1bsWDy+qNY{FLTz;5ipejLQ7 z_yR|89H(#=7jPNZa1(cMA7A2Ye1{+K6Mn((crL_9b4VzKvZw$nXrM<GREG_0VUN0K zfQE2IBQ%CLsOQK;q=EX3qy{6I`^YI+hizb9Bd_8f==&%OR0QLWYKqqI2X!4qJxAqY z1vY@%jJgZf$tdPDntqR_&!fp{v>)i-==Mkj&mTPi)Oj@Z9lZv(z&aaEO~x?SG0bsH zWsv_E@*hL~W9ai3o<AlX^l8j;ti&0R_n7NKj4cf{sMA;<v_(5i#4OCgVep)>tod=& zb{vl#r-L(CgX5U%IM&xV#v7M}e6Uu=5o6r@*p8jJjjzC*$5W&6^kjTBFyHaacRceQ zPrb+Y2kUVBbS%Ik9KazQ0dd9?XFPExlz}z0AkGBhOd!sLR8Y4G)NR5{5M#m;u;wPP z)+R8Y3E$!=eidROYh$8496*eTQRs|3jKc&lkBR$0E)!Xk6TidvLQJZP+Ti(<f)I{K z48;hH0)3xE-zU-cNhfd-tn*2~2r=0lD%imZ&Y%yI!w>=DOeW4`;!IwHE!c*$U^|(7 zLx?HVVG4Daq6O=2N-#pv2ZJ#L)L_bLti@5B!v%bUpFu8DSqoE{&s6F$)gQ!|+5suZ zLSKx<G|T{bOx=t9xCDAL^{x=p%0q`ra6uC^LpSt5PtcEP<TCAj(2r?X!J3>-EvEDQ z=@sFQ=4goo(AVkdn21@JgRR&DdNZAxPQQbDLd>8hGpNZ7YBGZyW{|@Sa+pC5Gss~E zIn0=Z*_ewXIE(Xmf@gRx#LQZ#4@U$e5}hyt<S}zHsKZR^Fq1mWq#rXM;*k)uO2G=` zF^j&;;`y_v>8ySjhFomIZhVMaP@ea-5VOgDHqV<){<A&7_Bq=Z)L=HxpFIGJ!J3%8 z4kvL5SA>{D4d;{xHJsxD=01nH&xt}T;xQUiFb&ji&ZqbsKj3%#A;jDoV81lCF2c|i z-ND@FGWWTYu^rTYF5AUiwu`ynf$d_R2Gvm$JZD}qSV!|#fjQ6H0_Ho9`Oag$^DBc| z&#w*UIlmo3Fc32GumT&v^XDJMIb6VxAm0T7#8^PT7C3@FEr<haXF)#3gS;0k$9il8 z>vaL!zyk7KNWKg0;eZH`_d@EmkmoMsxeIyjLVC6EAU?rYVC;o#Ka1FI7LofRp1&v< ztdm8Izi1HN1u+)Ur$yVa1N3UqZ7}{~*2!Wk(C@|WXpWX3@5QNL%`c|Li|NneLqaSm z2QBpIjCdqsDHvl3b6au`-{P?lONqIZm`jPdlsuL)m!-^Q>8Ci3lR_+`U(1;PGWxZQ zSj*Co0cyRBIWPMVtm|d;cG(jlme+$D8iD+l4*+vrz6ZozPOi&;6=FpRNbp7=f-nYC zF&)f@U)~if&I+-z65fF=qQU%ECSe)g#|AtAb6WX>5Ua>x6*;UThgGbtRqUfy^~Gvz z##Y?MSD?qMYk>8<x-NQv`K|7QrJ!!BsoQGeu4etOW<9O(MLUFG6eeRTKEh!f6=H2k zSV9fvx3(j~!J1vmJlBrH5iq~C=Y?3O12ta9JlC;C*2RD|x{k%WZY9Wl-3>g%BO%@o zKnH|j78Zki-@guO@&1=WtapG5sKt7Eu%7j{o<6Vt3@30(hz-`L25PW@HN7DPy|D_L zutkWC%w;2U*~nZr($kIfbR+RLUc@cj5n@vvIKvgh*pvlozG*x5;eZgEwP2jhHXzPs z;%p|)W_rE(G^oXv+Hgce5MxUYhJspcQU0D<ZPkD^xs`ftO-3eo?AE<tZd<<)Vw)AJ zfVpjBt!!hwZ9Hz<4(tcL+D^^46Jt9y-_G;5GuC#-+Wt9Cf}D2Lg)7`K1n*%a`1>7~ za7BonZfJ%U7>^mCCp)Rj&ad&U5W9HHE*`Us$L!)UyLikl9<%E*c-$_w%iYv(w-=g% zy6mQ3yYs<gcJr9sJm!P82tx$6fjNJ`d_J^9WmH8kWTPLb{fErwLu$N-$L!%Tdw9&A zM5KYWzK1w_h_i<{drP1kDu6Nec1J8&TYJ}GJ)Ynho(r+BHG&a}DVU4-U|sBEo$h1) z`|0I=Pc*?m$jAdd-G3JJ^Z>m$Krar^iv#3!pg(x*0rnXOj)QuC#2WjE8hu1RKFY;t zjKxiSiLZn>$QTEG;RkX#xC|@s9e%-YLVV2Mf7}ism<ICwcp-ij;*%1P&<#D%6V&As z*3>75h4_^GKCOoapvIrFCO#bo{{GWbI3vVoti8{wpc;tt8F4-%&SxvJ5t~6SpPNI4 z=I}=V==tZ&>GScphi~y%h%cz|7m?_MnOKA+xDV#`#rHxS@<2=YfchMwK8J{Ph`bMx z*P(Ml9M;1IwLrYXF^B^(4-@k+F%MJE!_@OI^*qu7Z4e0J9hm}ZcH}bdfE<t3hdUVm zXdes)bvb$vM{rDtV~lr<#~pLTyCAP)%<&jG9lH+3JYF64aKIq&xa0Ytw#TXMaprJ> zx}LCw9R`4Tp5SpOc+3eNbArd5tO;VAq)#Wakb|N49IT_0r-e90j8pXRloQDJR36y2 zPu;*nJQCtGbv)e`?XVE5um-;hai#=VCugD%i+F6ohhSSe^M?>;OQJM*{#mxAvpn|f zOi<^uOTgMcdku_vP6zTn_YUasxi}<%$DUh_wRiy5!nq%WIL|h9-V;rbgmh$LIo5-9 zcK#du4A$BO`gnmpUPuOyy)Xf68y7ZVGsykIHhcuexbOr#_X2ah@Jxt{0?hfM1(?&t za;OM3w5Wutr~&41u{P>}9$cj77oFh>=5;X<<Z-bV(m>u9v(X>){UU4U;&9N{i}d8; zD6n2GlJmvMm<H;2aSrB#8eLop=6;d6T-=K7*ahZ(iJUK$LK&2YKf*vyE=3_4Q$d_d z^yLzDxwI1Z@B@AXwYWqrF1vtQUiL;S_+c2x?=tK8@<dF*5nKe@$>poKA;c9usLK_5 zIG{eL#g#r_{#W{8AU?-goCh(kToK}`2GsScE$qPauf~G<UCjV7uJ*+y?8Sc2%d4LV zam@@BU<vwlO$#1>jl8erf;wM&4|{M3<bLfKP6~0oEa>g^DyRn5=yh_u&f~9-#Au8I zwYpBNu2ZY))ap95y5SBV_`(kX;CVNw&yBfQfW@HRH>mdw*6fWfpm#TR;scP=jSF}# z#7%m4vk_XL9il+}Zc>Artf8CK@Fr{M<{&Vqn~ZgH6vlww+@v=*XJI)u;6r=@>V5Mt znDb5MeDf0M*-d(O^A_&nKEA^<A#Rlf{kT;fHlQcB=;^Jxa0NNu@<bCfM@umGTak!E zItE}chJqg4$^&)0MUJ<q&#h^giP=~J^1Ve}ZXE>uxpf?;a2C|()=k_2dER=6uka1% z#ceaN_HXM!zPHKuHu>Hr-`fp9zPHKuc2kh=ZEv(f5IP|N)b}=Zy*&iO@h+(E?FpC+ z^1VF+<a?Xm-lnIw>F4b|_!M7&yl<2DZSuZ-8P`DGw{PPf9^f&46XH%OSb;j<A@4g? zP#xrbhrI8Q_Z=s=zzxmdhxX`(9!NndGLVHFu;%Z`$ioPX0{Pz|=Q}IF`n$urxU&x* zf%S3cbDYE(oX1660r}sd-glk|ahDq3rN(zzqjxP~4IOHt7VJ<5^+4`-srg;j#oa)# zF7C!49!cnl-sp<~V4d8h?stcS-0!lU?@q%4ti@LBz;00QyZb@C?^5r()cY>E-#vqK zxQ?&zvk>=GAm4lBdyjnYk?+0AAm4lBd(Q#nd(ROK!5X>O3ZY<K-0Onwhy&Z<y)<MZ z8~rd4<bID@-y4rPSPJTVZ#C9o19svA>;<{sI|%B2?-(wD8sGa4Kj0_)g5QO>FQF95 zf_dC$9{1I#3VV?A{buk(09eoWL(l=yV4d8L1$Dolgk+Ha{h^@7_ore8Skw3CVIfw5 zn%`fKjo5;1Aou&!{600lPmS;2!d*PTBRl~$zyB+g+@A~afHm`=8hk-c4+h~~j0OFD zuo$1?5RT#mPJ=NXT*MVH)&s_Rz*r9$>j7gu_y&)`m=7590b@RRCd9+qU=2Q`rw<+B z3^#bd3(e3Htw7Bl1|SI3>>>F*3`Z2G-NUX(L2smix;;D&a(Z|TH*ov^YvIm=qpZ(3 zfWL3p-DEeLO;#bBL{SmMV<?3Y3rewo9D)`s#bJu2Wz@ksU_qoFMX?Bq2Q45XqNpfC zrS&KZ1NEX-s?&~)2SrgS6vT_#gH1NO+07=~54FsE$UpnOzu))!JlQ`J1jpXQosYfG zK0XeDtn;!mXQyyEb}4I@vUVwJm$G&#YZloXu|wH~m`V0_7PEvqS%x`eb(3uig4PTp zxDxYgUCVkN=SiNz-nBl>vux#c+`HACTMzRoU+@q9#WB3Qt%@i$)RH1iPn_G<%t(HW zyR|u|&3oI-Aa^onGmyayLEpLIT!`m#<IqJ;7dai|u0p3dnR9pGow>WYk6*Eh2iV9a zHX~O~uG|)0z+UEdU?%Mm%)NaQ3wVT=c!f9E!#>QX{Q#e!i*{YKAEkrNAjr#~mp9)+ zZ%(5xe&6yk=6$#2<;u&IAH^8PGm-Cd8Rnk933JIiJMaC4dhA6(2Zd=&M+b#j+<-kO zEMyT&&__WZ1#>Q}<1yqf$W(Zh*Vu*qEBpoDg$45{9K@UpvK3@2m~+9L3+7xf=R$iB zbja2*nxC*7U3Pqg4mwIfQ0zgJ6VOG`=Zm^1o=!i`L>I+j=%RQrG8LyYgPF)yl&yFz zbC9hlTX8Y+73C|+S2XXUc^6l*gAXVNK}qkWam;2l8`#8V^iZ+`CHF4bfs*G+dMN3k z<oVKPe92e*n=JOUR6xGYI7!T;Q^w9-G;tEA;Ox$^T!*tey}$E75R@bI<qULC9>fTA zS@!v|9?Ev0Jees>MGs{?l+Cz&2X`WOS?;pjWqV$>=jFBhn&0pY&mm)ZE8BUIm-!?J zx<Z`abqUw=AUk=Bclj%N=-Q8acOByRb9(5~L$~L<8#s|hn(;f_eJZCTU-uA(ase`S zkK`iEq<aF+?w*hPck8FySrzZC^k))RFcbMJ@>gb~&&oVJSFs0`rQF48o@5i|TX`D! zE6=kH@2|Xx`BrxGHgZ<vtjJlhyOsSx7*x@R@yuow+d0Tr9HWgqopc4ED~F-y!Zbbc zd^m`6`4;E%ZN9^3#xj*@OlJl&xr$j_i?hR({2pgld4JVeOy;M|V?GPHjeA+a{jA|( z*7G<|u!XI>#yjlceLh6)s^e!I=2PUWlCP?Wj8!uBkg-P(V$|?WCb58r*vXL~jMUOZ zZ%(5x?j1RYZ{WGeg^a@U5!oZMM`Vx49+5pVhq=fXS<F(FA!Fp1=q0k62XS`fRXz*C zsI#NqAHAGgd4xyNLG%fpLkH3AyoftT^%3308|-BtI*95Zs)MKwqGc*U7&C)d6!~Kr zT97j)XH3pmf6itA196X-eqv@3b5_iItK$qt2h|rbjtS_Z`ZB(c=c=#f8a!XUguA$h z<*dM*tJffZ^;7(oXZan^vyC0R#48*Q!Ww7S=%>aRHMg*VKd_tkkiSO$n!j<7<IfzS zmG&Tv%OAJn@t(*Zmp?9lT>iNHarxutF^u8J7$3zL{657eaw*rd4rj-`KjB`9K}_a* zOl1Z$xstgo;3j^~?JQ;~dP(RZq2q)e5@wq)+l0&s?@zpr*(UzXTYSs`4srbK&pFCJ z`48D3thK+jLve>%=hS*{t&VDQL6{7Q;m*k<`beHgBc4m1iCs?);CwFT63jO#TT-^< zG^XSI$vMcEwCl;AaWe~9gtL=N*vz}w$GR3qat*TA-HrTp^4C4e1~%c&b#|ie8D3^5 z^4Go1d+cQ&AMpjUrDRK;KrduTox~~hp&zoPWJ{TC%4}2aks8fd<V?w#k~3wGQ&adM z?wR@pYjKy<A8}^NPSw{i0iUneNxfOu>!SWfZsAtUx?axudsxm2R`DnPPDc<nxOYR6 zdfeaNA`ctfzrp<*dgIOwgBik5E?^Y)vSB<ExfK03Y~&q2z<x9wqd<wSz*jugB&eeS zXQq2%HfbHD2jaZ6^U}^s>niQMwDZ!=OUs;gUit^j;yUJW1G1-YLuYBTPs^S*<FwrA zhk~%zhwSG|+L6CkC*48VsE5V~?$_u(jTxFbnN#UQU(P`0#<{Fx7rWWZ0S<8#*&Cga zX+)nH&u9A4pR+iRVdyh6f|1yVj6KNM1AkXL%-Dm>708#FkB&1pvyeqBW+}_K7vJw0 zSu^W-j16pL3oo#Z9YNUSPEE2j$<n0rrgP9$(`weRmWSDcJ!v}35k3#XW?eK7z?_-~ zaV|?($^ATl=bMjV=FOELYzfhA%W%eE=UdFO#SB}1#MQz7{za<3{@K*~>!1JsKWv%x EUohlzKmY&$ diff --git a/Cupcake-Demo/Cupcake-Demo.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/Cupcake-Demo.xcscheme b/Cupcake-Demo/Cupcake-Demo.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/Cupcake-Demo.xcscheme index dbf3fd7..aa8e295 100644 --- a/Cupcake-Demo/Cupcake-Demo.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/Cupcake-Demo.xcscheme +++ b/Cupcake-Demo/Cupcake-Demo.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/Cupcake-Demo.xcscheme @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <Scheme - LastUpgradeVersion = "0910" + LastUpgradeVersion = "1000" version = "1.3"> <BuildAction parallelizeBuildables = "YES" @@ -26,7 +26,6 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - language = "" shouldUseLaunchSchemeArgsEnv = "YES"> <Testables> </Testables> @@ -46,7 +45,6 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - language = "" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" diff --git a/Cupcake-Demo/Cupcake-Demo/AppDelegate.swift b/Cupcake-Demo/Cupcake-Demo/AppDelegate.swift index e40e836..ee9788f 100644 --- a/Cupcake-Demo/Cupcake-Demo/AppDelegate.swift +++ b/Cupcake-Demo/Cupcake-Demo/AppDelegate.swift @@ -13,7 +13,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { let sel = NSSelectorFromString("setContentInsetAdjustmentBehavior:") if UIScrollView().responds(to: sel) { diff --git a/Cupcake-Demo/Cupcake-Demo/AppStoreViewController.swift b/Cupcake-Demo/Cupcake-Demo/AppStoreViewController.swift index 66bb1a1..3631245 100644 --- a/Cupcake-Demo/Cupcake-Demo/AppStoreViewController.swift +++ b/Cupcake-Demo/Cupcake-Demo/AppStoreViewController.swift @@ -53,7 +53,7 @@ class AppStoreCell: UITableViewCell { HStack(indexLabel, iconView, 10, midStack, "<-->", 10, actionStack).embedIn(self.contentView, 10, 0, 10, 15) } - override init(style: UITableViewCellStyle, reuseIdentifier: String?) { + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) setupUI() } @@ -69,7 +69,7 @@ class AppStoreViewController: UITableViewController { var appList: Array<Dictionary<String, Any>>! override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { - return UITableViewAutomaticDimension + return UITableView.automaticDimension } override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { @@ -92,7 +92,7 @@ class AppStoreViewController: UITableViewController { self.tableView.estimatedRowHeight = 84 self.tableView.register(AppStoreCell.self, forCellReuseIdentifier: "cell") - self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 34, 0) + self.tableView.contentInset = UIEdgeInsets.init(top: 0, left: 0, bottom: 34, right: 0) let path = Bundle.main.path(forResource: "appList", ofType: "plist") appList = NSArray(contentsOfFile: path!) as? Array<Dictionary<String, Any>> diff --git a/Cupcake-Demo/Cupcake-Demo/ExamplesViewController.swift b/Cupcake-Demo/Cupcake-Demo/ExamplesViewController.swift index 1cc9501..25e9cfe 100644 --- a/Cupcake-Demo/Cupcake-Demo/ExamplesViewController.swift +++ b/Cupcake-Demo/Cupcake-Demo/ExamplesViewController.swift @@ -114,7 +114,7 @@ class DashboardViewController: BaseViewController { class DashButton: UIButton { let subtitle: String! - override func setTitle(_ title: String?, for state: UIControlState) { + override func setTitle(_ title: String?, for state: UIControl.State) { if state == .normal { let att = AttStr( AttStr(title).font("18").color("#181D42"), "\n", diff --git a/Cupcake.podspec b/Cupcake.podspec index 6eb924a..b5eff27 100644 --- a/Cupcake.podspec +++ b/Cupcake.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = "Cupcake" - s.version = "1.2.2" + s.version = "1.2.3" s.summary = "An easy way to create and layout UI components for iOS." s.description = <<-DESC diff --git a/Cupcake/AttStr.swift b/Cupcake/AttStr.swift index 43192dd..8a915e2 100644 --- a/Cupcake/AttStr.swift +++ b/Cupcake/AttStr.swift @@ -104,21 +104,36 @@ public extension NSMutableAttributedString { .underline(.styleDouble, "red") //double underline with red color ... */ - @discardableResult public func underline(_ style: NSUnderlineStyle = .styleSingle, _ color: Any? = nil) -> Self { + #if swift(>=4.2) + @discardableResult public func underline(_ style: NSUnderlineStyle = .single, _ color: Any? = nil) -> Self { var styles = NSNumber(value: style.rawValue) - if style != .styleNone && style != .styleSingle && style != .styleThick && style != .styleDouble { - styles = NSNumber(value: style.rawValue | NSUnderlineStyle.styleSingle.rawValue) + if style != .none && style != .single && style != .thick && style != .double { + styles = NSNumber(value: style.rawValue | NSUnderlineStyle.single.rawValue) } cpk_addAttribute(name: "NSUnderline", value: styles) - if let underlineColor = Color(color) { - cpk_addAttribute(name: "NSUnderlineColor", value: underlineColor) - } + if let underlineColor = Color(color) { cpk_addAttribute(name: "NSUnderlineColor", value: underlineColor) } return self } + #else + @discardableResult public func underline(_ style: NSUnderlineStyle = .styleSingle, _ color: Any? = nil) -> Self { + var styles = NSNumber(value: style.rawValue) + if style != .styleNone && style != .styleSingle && style != .styleThick && style != .styleDouble { + styles = NSNumber(value: style.rawValue | NSUnderlineStyle.styleSingle.rawValue) + } + + cpk_addAttribute(name: "NSUnderline", value: styles) + if let underlineColor = Color(color) { cpk_addAttribute(name: "NSUnderlineColor", value: underlineColor) } + return self + } + #endif @discardableResult public func underline(_ color: Any) -> Self { + #if swift(>=4.2) + return underline(.single, color) + #else return underline(.styleSingle, color) + #endif } /** @@ -132,10 +147,11 @@ public extension NSMutableAttributedString { .strikethrough(.styleDouble, "red") //double strikethrough with red color ... */ - @discardableResult public func strikethrough(_ style: NSUnderlineStyle = .styleSingle, _ color: Any? = nil) -> Self { + #if swift(>=4.2) + @discardableResult public func strikethrough(_ style: NSUnderlineStyle = .single, _ color: Any? = nil) -> Self { var styles = NSNumber(value: style.rawValue) - if style != .styleNone && style != .styleSingle && style != .styleThick && style != .styleDouble { - styles = NSNumber(value: style.rawValue | NSUnderlineStyle.styleSingle.rawValue) + if style != .none && style != .single && style != .thick && style != .double { + styles = NSNumber(value: style.rawValue | NSUnderlineStyle.single.rawValue) } cpk_addAttribute(name: "NSStrikethrough", value: styles) @@ -144,9 +160,27 @@ public extension NSMutableAttributedString { } return self } + #else + @discardableResult public func strikethrough(_ style: NSUnderlineStyle = .styleSingle, _ color: Any? = nil) -> Self { + var styles = NSNumber(value: style.rawValue) + if style != .styleNone && style != .styleSingle && style != .styleThick && style != .styleDouble { + styles = NSNumber(value: style.rawValue | NSUnderlineStyle.styleSingle.rawValue) + } + + cpk_addAttribute(name: "NSStrikethrough", value: styles) + if let strikethroughColor = Color(color) { + cpk_addAttribute(name: "NSStrikethroughColor", value: strikethroughColor) + } + return self + } + #endif @discardableResult public func strikethrough(_ color: Any) -> Self { + #if swift(>=4.2) + return strikethrough(.single, color) + #else return strikethrough(.styleSingle, color) + #endif } /** diff --git a/Cupcake/Button.swift b/Cupcake/Button.swift index d24faad..00f4c0f 100644 --- a/Cupcake/Button.swift +++ b/Cupcake/Button.swift @@ -185,10 +185,10 @@ public extension UIButton { self.cpkGap = spacing let halfGap = spacing / 2 - self.titleEdgeInsets = UIEdgeInsetsMake(0, halfGap, 0, -halfGap) - self.imageEdgeInsets = UIEdgeInsetsMake(0, -halfGap, 0, halfGap) + self.titleEdgeInsets = UIEdgeInsetsMake_(0, halfGap, 0, -halfGap) + self.imageEdgeInsets = UIEdgeInsetsMake_(0, -halfGap, 0, halfGap) - var insets = self.cpkInsets ?? UIEdgeInsetsMake(0, 0, 0, 0) + var insets = self.cpkInsets ?? UIEdgeInsetsMake_(0, 0, 0, 0) insets.left += halfGap insets.right += halfGap self.contentEdgeInsets = insets diff --git a/Cupcake/CPKStackView.swift b/Cupcake/CPKStackView.swift index 389b7b4..3e5629e 100644 --- a/Cupcake/CPKStackView.swift +++ b/Cupcake/CPKStackView.swift @@ -33,7 +33,7 @@ public class CPKStackView: UIView { private var _alignment: CPKStackAlignment = .left private var _spacing: CGFloat = 0 - private var _axis: UILayoutConstraintAxis = .horizontal + private var _axis: UILayoutConstraintAxis_ = .horizontal private var _headAttachSpace: CGFloat? public private(set) var arrangedSubviews = [UIView]() @@ -49,7 +49,7 @@ public class CPKStackView: UIView { set { if _spacing != newValue { _spacing = newValue; spacingDidChange() } } } - public var axis: UILayoutConstraintAxis { + public var axis: UILayoutConstraintAxis_ { get { return _axis } set { if _axis != newValue { _axis = newValue; axisDidChange() } } } @@ -82,9 +82,16 @@ public class CPKStackView: UIView { view.translatesAutoresizingMaskIntoConstraints = false view.addObserver(self, forKeyPath: "hidden", options: [.new, .old], context: nil) + #if swift(>=4.2) + if view.layoutMargins == UIEdgeInsetsMake_(8, 8, 8, 8) { + view.layoutMargins = UIEdgeInsets.zero + } + #else if UIEdgeInsetsEqualToEdgeInsets(view.layoutMargins, UIEdgeInsetsMake(8, 8, 8, 8)) { view.layoutMargins = UIEdgeInsets.zero } + #endif + if !view.isHidden { addAndActivateConstraintsForView(at: index) @@ -148,7 +155,7 @@ public class CPKStackView: UIView { } public override func sizeThatFits(_ size: CGSize) -> CGSize { - return systemLayoutSizeFitting(UILayoutFittingCompressedSize) + return systemLayoutSizeFitting(UILayoutFittingCompressedSize_) } @@ -256,7 +263,7 @@ public class CPKStackView: UIView { @discardableResult private func addAlignmentConstraint(at index: Int) -> [NSLayoutConstraint] { var newConstraints = [NSLayoutConstraint]() - var att = NSLayoutAttribute.notAnAttribute + var att = NSLayoutAttribute_.notAnAttribute if self.alignment == .fill { @@ -337,7 +344,7 @@ public class CPKStackView: UIView { newConstraints.append(makeConstraint(index, .topMargin, .equal, -1, .topMargin, enclosurePriority)) newConstraints.append(makeConstraint(index, .topMargin, .greaterThanOrEqual, -1, .topMargin, 1000)) - var att: NSLayoutAttribute = .bottomMargin + var att: NSLayoutAttribute_ = .bottomMargin if self.alignment == .baseline { att = .lastBaseline } @@ -391,8 +398,8 @@ public class CPKStackView: UIView { return nil } - var att1 = NSLayoutAttribute.notAnAttribute - var att2 = NSLayoutAttribute.notAnAttribute + var att1 = NSLayoutAttribute_.notAnAttribute + var att2 = NSLayoutAttribute_.notAnAttribute if self.axis == .vertical { att1 = (item1 == self ? .topMargin : .bottomMargin) @@ -524,7 +531,7 @@ public class CPKStackView: UIView { } if !hasConstraint { - let att: NSLayoutAttribute = (self.axis == .vertical ? .height : .width) + let att: NSLayoutAttribute_ = (self.axis == .vertical ? .height : .width) let c = makeConstraint(i, att, .equal, index, att, 1, 0, kSpringPriority) self.springConstraints.append(c) newConstraints.append(c) @@ -559,10 +566,10 @@ public class CPKStackView: UIView { //MARK: Utils private func makeConstraint(_ index1: Int, - _ att1: NSLayoutAttribute, - _ relation: NSLayoutRelation, + _ att1: NSLayoutAttribute_, + _ relation: NSLayoutRelation_, _ index2: Int, - _ att2: NSLayoutAttribute, + _ att2: NSLayoutAttribute_, _ multiplier: CGFloat, _ constant: CGFloat, _ priority: UILayoutPriority) -> NSLayoutConstraint { @@ -583,10 +590,10 @@ public class CPKStackView: UIView { } private func makeConstraint(_ index1: Int, - _ att1: NSLayoutAttribute, - _ relation: NSLayoutRelation, + _ att1: NSLayoutAttribute_, + _ relation: NSLayoutRelation_, _ index2: Int, - _ att2: NSLayoutAttribute, + _ att2: NSLayoutAttribute_, _ priority: UILayoutPriority) -> NSLayoutConstraint { return makeConstraint(index1, att1, relation, index2, att2, 1, 0, priority) @@ -675,9 +682,9 @@ class CPKTransformLayer: CATransformLayer { public class StackSpring: UIView { - private var _axis: UILayoutConstraintAxis = .horizontal + private var _axis: UILayoutConstraintAxis_ = .horizontal - fileprivate var axis: UILayoutConstraintAxis { + fileprivate var axis: UILayoutConstraintAxis_ { get { return _axis } set { if _axis != newValue { diff --git a/Cupcake/Font.swift b/Cupcake/Font.swift index 7cb0e43..a9e0f0f 100644 --- a/Cupcake/Font.swift +++ b/Cupcake/Font.swift @@ -41,7 +41,7 @@ public func Font(_ any: Any) -> UIFont { } let value = "UICTFontTextStyle" + string.capitalized - return UIFont.preferredFont(forTextStyle: UIFontTextStyle(rawValue: value)) + return UIFont.preferredFont(forTextStyle: UIFontTextStyle_(rawValue: value)) } return UIFont.systemFont(ofSize: CPKFloat(any)) diff --git a/Cupcake/ImageView.swift b/Cupcake/ImageView.swift index d614262..7cb28ba 100644 --- a/Cupcake/ImageView.swift +++ b/Cupcake/ImageView.swift @@ -48,7 +48,7 @@ public extension UIImageView { .mode(.center) ... */ - @objc @discardableResult public func mode(_ contentMode: UIViewContentMode) -> Self { + @objc @discardableResult public func mode(_ contentMode: UIViewContentMode_) -> Self { self.contentMode = contentMode return self } diff --git a/Cupcake/StaticTable.swift b/Cupcake/StaticTable.swift index cb23ed9..5de3b11 100644 --- a/Cupcake/StaticTable.swift +++ b/Cupcake/StaticTable.swift @@ -311,7 +311,7 @@ public extension StaticRow { .style(.value2) ... */ - @discardableResult public func style(_ style: UITableViewCellStyle) -> Self { + @discardableResult public func style(_ style: UITableViewCellStyle_) -> Self { self.cellStyle = style return self } diff --git a/Cupcake/Styles.swift b/Cupcake/Styles.swift index bd5f39e..29780cf 100644 --- a/Cupcake/Styles.swift +++ b/Cupcake/Styles.swift @@ -121,11 +121,10 @@ public extension StylesMaker { return addStyle(key: #function, value: any) } - @discardableResult public func mode(_ contentMode: UIViewContentMode) -> Self { + @discardableResult public func mode(_ contentMode: UIViewContentMode_) -> Self { return addStyle(key: #function, value: contentMode) } - //Button @discardableResult public func highColor(_ any: Any) -> Self { return addStyle(key: #function, value: any) @@ -173,7 +172,7 @@ public extension StylesMaker { return addStyle(key: #function, value: returnKeyType) } - @discardableResult public func clearMode(_ clearButtonMode: UITextFieldViewMode) -> Self { + @discardableResult public func clearMode(_ clearButtonMode: UITextFieldViewMode_) -> Self { return addStyle(key: #function, value: clearButtonMode) } } diff --git a/Cupcake/TextField.swift b/Cupcake/TextField.swift index 54c44ec..990d32c 100644 --- a/Cupcake/TextField.swift +++ b/Cupcake/TextField.swift @@ -162,7 +162,7 @@ public extension UITextField { .clearMode(.always) ... */ - @objc @discardableResult public func clearMode(_ clearButtonMode: UITextFieldViewMode) -> Self { + @objc @discardableResult public func clearMode(_ clearButtonMode: UITextFieldViewMode_) -> Self { self.clearButtonMode = clearButtonMode return self } diff --git a/Cupcake/__Private__Implementations__.swift b/Cupcake/__Private__Implementations__.swift index d366087..367105e 100644 --- a/Cupcake/__Private__Implementations__.swift +++ b/Cupcake/__Private__Implementations__.swift @@ -21,6 +21,64 @@ import UIKit.UIGestureRecognizerSubclass +#if swift(>=4.2) + +public typealias UITextFieldViewMode_ = UITextField.ViewMode +public typealias UITableViewStyle_ = UITableView.Style +public typealias UITableViewCellStyle_ = UITableViewCell.CellStyle +public typealias UITableViewCellAccessoryType_ = UITableViewCell.AccessoryType +public typealias UIViewContentMode_ = UIView.ContentMode +public typealias UILayoutConstraintAxis_ = NSLayoutConstraint.Axis + +typealias UIFontTextStyle_ = UIFont.TextStyle +typealias NSLayoutAttribute_ = NSLayoutConstraint.Attribute +typealias NSLayoutRelation_ = NSLayoutConstraint.Relation +typealias NSAttributedStringKey_ = NSAttributedString.Key +typealias UIAlertActionStyle_ = UIAlertAction.Style +typealias UIAlertControllerStyle_ = UIAlertController.Style + +private let UITableViewAutomaticDimension_ = UITableView.automaticDimension +let UILayoutFittingCompressedSize_ = UIView.layoutFittingCompressedSize + +func UIEdgeInsetsMake_(_ top: CGFloat, _ left: CGFloat, _ bottom: CGFloat, _ right: CGFloat) -> UIEdgeInsets { + return UIEdgeInsets.init(top: top, left: left, bottom: bottom, right: right) +} + +func UIEdgeInsetsInsetRect_(_ rect: CGRect, _ insets: UIEdgeInsets) -> CGRect { + return rect.inset(by: insets) +} + +#else + +public typealias UITextFieldViewMode_ = UITextFieldViewMode +public typealias UITableViewStyle_ = UITableViewStyle +public typealias UITableViewCellStyle_ = UITableViewCellStyle +public typealias UITableViewCellAccessoryType_ = UITableViewCellAccessoryType +public typealias UIViewContentMode_ = UIViewContentMode +public typealias UILayoutConstraintAxis_ = UILayoutConstraintAxis + +typealias UIFontTextStyle_ = UIFontTextStyle +typealias NSLayoutAttribute_ = NSLayoutAttribute +typealias NSLayoutRelation_ = NSLayoutRelation +typealias NSAttributedStringKey_ = NSAttributedStringKey +typealias UIAlertActionStyle_ = UIAlertActionStyle +typealias UIAlertControllerStyle_ = UIAlertControllerStyle + +private let UITableViewAutomaticDimension_ = UITableViewAutomaticDimension +let UILayoutFittingCompressedSize_ = UILayoutFittingCompressedSize + +func UIEdgeInsetsMake_(_ top: CGFloat, _ left: CGFloat, _ bottom: CGFloat, _ right: CGFloat) -> UIEdgeInsets { + return UIEdgeInsetsMake(top, left, bottom, right) +} + +func UIEdgeInsetsInsetRect_(_ rect: CGRect, _ insets: UIEdgeInsets) -> CGRect { + return UIEdgeInsetsInsetRect(rect, insets) +} + +#endif + + + //MARK: Utils @@ -117,29 +175,29 @@ func cpk_imageHasAlphaChannel(_ image: UIImage) -> Bool { func cpk_edgeInsetsFromArray(_ insetArray: [CGFloat]) -> UIEdgeInsets { if insetArray.count == 0 { - return UIEdgeInsetsMake(0, 0, 0, 0) + return UIEdgeInsetsMake_(0, 0, 0, 0) } else if insetArray.count == 1 { let m1 = insetArray[0] - return UIEdgeInsetsMake(m1, m1, m1, m1) + return UIEdgeInsetsMake_(m1, m1, m1, m1) } else if insetArray.count == 2 { let m1 = insetArray[0] let m2 = insetArray[1] - return UIEdgeInsetsMake(m1, m2, m1, m2) + return UIEdgeInsetsMake_(m1, m2, m1, m2) } else if insetArray.count == 3 { let m1 = insetArray[0] let m2 = insetArray[1] let m3 = insetArray[2] - return UIEdgeInsetsMake(m1, m2, 0, m3) + return UIEdgeInsetsMake_(m1, m2, 0, m3) } else { let m1 = insetArray[0] let m2 = insetArray[1] let m3 = insetArray[2] let m4 = insetArray[3] - return UIEdgeInsetsMake(m1, m2, m3, m4) + return UIEdgeInsetsMake_(m1, m2, m3, m4) } } @@ -659,7 +717,7 @@ extension NSMutableAttributedString { func cpk_addAttribute(_ name: String, value: Any, range: NSRange) { #if swift(>=4.0) - addAttribute(NSAttributedStringKey(rawValue: name), value: value, range: range) + addAttribute(NSAttributedStringKey_(rawValue: name), value: value, range: range) #else addAttribute(name, value: value, range: range) #endif @@ -688,7 +746,7 @@ extension NSMutableAttributedString { let indexSets = NSMutableIndexSet(indexesIn: range) #if swift(>=4.0) - enumerateAttribute(NSAttributedStringKey(rawValue: name), + enumerateAttribute(NSAttributedStringKey_(rawValue: name), in: range, options: NSAttributedString.EnumerationOptions(rawValue: 0)) { (value, range, stop) in @@ -785,7 +843,7 @@ extension UIView { @objc func cpk_point(inside point: CGPoint, with event: UIEvent?) -> Bool { if let insets = self.cpkTouchInsets { - let rect = UIEdgeInsetsInsetRect(self.bounds, insets) + let rect = UIEdgeInsetsInsetRect_(self.bounds, insets) return rect.contains(point) } else { return self.cpk_point(inside: point, with: event) @@ -921,7 +979,7 @@ extension UITextField { } var cpkPadding: UIEdgeInsets { - get { return cpk_associatedObjectFor(key: #function) as? UIEdgeInsets ?? UIEdgeInsetsMake(0, 0, 0, 0) } + get { return cpk_associatedObjectFor(key: #function) as? UIEdgeInsets ?? UIEdgeInsetsMake_(0, 0, 0, 0) } set { cpk_setAssociated(object: newValue, forKey: #function) } } @@ -937,12 +995,12 @@ extension UITextField { @objc public func cpk_textRect(forBounds bounds: CGRect) -> CGRect { let rect = self.cpk_textRect(forBounds: bounds) - return UIEdgeInsetsInsetRect(rect, self.cpkPadding) + return UIEdgeInsetsInsetRect_(rect, self.cpkPadding) } @objc public func cpk_editingRect(forBounds bounds: CGRect) -> CGRect { let rect = cpk_editingRect(forBounds: bounds) - return UIEdgeInsetsInsetRect(rect, self.cpkPadding) + return UIEdgeInsetsInsetRect_(rect, self.cpkPadding) } private func cpk_watchTextChange() { @@ -1009,9 +1067,9 @@ extension UILayoutPriority : ExpressibleByIntegerLiteral, ExpressibleByFloatLite self = UILayoutPriority(rawValue: value) } } -extension NSAttributedStringKey : ExpressibleByStringLiteral { +extension NSAttributedStringKey_ : ExpressibleByStringLiteral { public init(stringLiteral value: String) { - self = NSAttributedStringKey(rawValue: value) + self = NSAttributedStringKey_(rawValue: value) } } #endif @@ -1065,15 +1123,15 @@ public class AlertMaker { var cpkTitle: Any? var cpkMessage: Any? var cpkTint: Any? - var cpkStyle: UIAlertControllerStyle + var cpkStyle: UIAlertControllerStyle_ private var actions = [UIAlertAction]() - init(style: UIAlertControllerStyle) { + init(style: UIAlertControllerStyle_) { self.cpkStyle = style } - func cpk_addAction(style: UIAlertActionStyle, title: Any, handler: (()->())? ) { + func cpk_addAction(style: UIAlertActionStyle_, title: Any, handler: (()->())? ) { var titleString: String? var titleColor: UIColor? @@ -1173,7 +1231,7 @@ public class AlertMaker { public class ConsAtts: NSObject { @discardableResult - func addAttributes(_ attributes: NSLayoutAttribute...) -> Cons { + func addAttributes(_ attributes: NSLayoutAttribute_...) -> Cons { //only for override return Cons(firstItem: UIView()) } @@ -1184,10 +1242,10 @@ public class Cons: ConsAtts { private var secondItem: UIView? private var secondItemReferToSuperview = false - var relation = NSLayoutRelation.equal + var relation = NSLayoutRelation_.equal - var firstItemAttributes = [NSLayoutAttribute]() - var secondItemAttributes = [NSLayoutAttribute]() + var firstItemAttributes = [NSLayoutAttribute_]() + var secondItemAttributes = [NSLayoutAttribute_]() var multiplierValues = [CGFloat]() var constantValues = [CGFloat]() @@ -1202,7 +1260,7 @@ public class Cons: ConsAtts { } @discardableResult - override func addAttributes(_ attributes: NSLayoutAttribute...) -> Cons { + override func addAttributes(_ attributes: NSLayoutAttribute_...) -> Cons { for att in attributes { if secondItem == nil && !secondItemReferToSuperview { firstItemAttributes.append(att) @@ -1294,7 +1352,7 @@ public class Cons: ConsAtts { return priority } - private func secondItemValue(att1: NSLayoutAttribute) -> UIView? { + private func secondItemValue(att1: NSLayoutAttribute_) -> UIView? { var secondItem = self.secondItem if (secondItem == nil && att1 != .width && att1 != .height) { secondItem = self.firstItem.superview @@ -1358,7 +1416,7 @@ public class ConsMaker: ConsAtts { } @discardableResult - override func addAttributes(_ attributes: NSLayoutAttribute...) -> Cons { + override func addAttributes(_ attributes: NSLayoutAttribute_...) -> Cons { let c = Cons(firstItem: firstItem) cons.append(c) @@ -1806,7 +1864,7 @@ public class StylesMaker: NSObject { } else if key == "mode" { if let imageView = view as? UIImageView { - imageView.mode(value as! UIViewContentMode) + imageView.mode(value as! UIViewContentMode_) } } else if key == "reversed" { @@ -1845,7 +1903,7 @@ public class StylesMaker: NSObject { else if key == "clearMode" { if let textField = view as? UITextField { - textField.clearMode(value as! UITextFieldViewMode) + textField.clearMode(value as! UITextFieldViewMode_) } } @@ -1953,7 +2011,7 @@ public class StaticTableView: UITableView, UITableViewDelegate, UITableViewDataS var detailFont: Any? var detailColor: Any? - public init(sectionsOrRows: [Any], style: UITableViewStyle) { + public init(sectionsOrRows: [Any], style: UITableViewStyle_) { super.init(frame: CGRect.zero, style: style) self.estimatedRowHeight = 44 self.estimatedSectionHeaderHeight = 0 @@ -2085,7 +2143,7 @@ public class StaticTableView: UITableView, UITableViewDelegate, UITableViewDataS return height == 0 ? 0.001 : height } - return UITableViewAutomaticDimension + return UITableViewAutomaticDimension_ } public func tableView(_ tableView: UITableView, heightForFooterInSection sectionIndex: Int) -> CGFloat { @@ -2098,7 +2156,7 @@ public class StaticTableView: UITableView, UITableViewDelegate, UITableViewDataS return height == 0 ? 0.001 : height } - return UITableViewAutomaticDimension + return UITableViewAutomaticDimension_ } public func tableView(_ tableView: UITableView, titleForHeaderInSection sectionIndex: Int) -> String? { @@ -2254,7 +2312,7 @@ public class StaticRow: UIView { var cellHeight: CGFloat? var separatorIndent: CGFloat? - var cellStyle: UITableViewCellStyle = .default + var cellStyle: UITableViewCellStyle_ = .default var onClickHandler: ((StaticRow)->())? var onButtonHandler: ((StaticRow)->())? @@ -2360,8 +2418,8 @@ public class StaticRow: UIView { if let indent = lineIndent() { cell.preservesSuperviewLayoutMargins = false - cell.layoutMargins = UIEdgeInsetsMake(0, 0, 0, 0) - cell.separatorInset = UIEdgeInsetsMake(0, indent, 0, 0) + cell.layoutMargins = UIEdgeInsetsMake_(0, 0, 0, 0) + cell.separatorInset = UIEdgeInsetsMake_(0, indent, 0, 0) } } @@ -2374,7 +2432,7 @@ public class StaticRow: UIView { rowHeight = height } - return rowHeight >= 0 ? rowHeight : UITableViewAutomaticDimension + return rowHeight >= 0 ? rowHeight : UITableViewAutomaticDimension_ } fileprivate func lineIndent() -> CGFloat? { @@ -2420,7 +2478,7 @@ public class StaticRow: UIView { extension CPKTableViewCellAccessoryType { - public func accessoryType() -> (UITableViewCellAccessoryType, UIView?) { + public func accessoryType() -> (UITableViewCellAccessoryType_, UIView?) { switch self { case .none: return (.none, nil) case .disclosureIndicator: return (.disclosureIndicator, nil) @@ -2550,7 +2608,7 @@ fileprivate class UITextViewPlaceholder: UILabel { self.font = font self.textAlignment = textView.textAlignment - var rect = UIEdgeInsetsInsetRect(textView.bounds, textView.textContainerInset) + var rect = UIEdgeInsetsInsetRect_(textView.bounds, textView.textContainerInset) rect = rect.insetBy(dx: textView.textContainer.lineFragmentPadding, dy: 0) rect.size.height = min(rect.height, self.sizeThatFits(CGSize(width: rect.width, height: 0)).height) self.frame = rect @@ -2594,14 +2652,14 @@ extension UITextView { } private func cpk_watchTextChange() { - NotificationCenter.default.removeObserver(self, - name: NSNotification.Name.UITextViewTextDidChange, - object: self) + #if swift(>=4.2) + let name = UITextView.textDidChangeNotification + #else + let name = NSNotification.Name.UITextViewTextDidChange + #endif - NotificationCenter.default.addObserver(self, - selector: #selector(cpk_textDidChange), - name: NSNotification.Name.UITextViewTextDidChange, - object: self) + NotificationCenter.default.removeObserver(self, name: name, object: self) + NotificationCenter.default.addObserver(self, selector: #selector(cpk_textDidChange), name: name, object: self) } @objc func cpk_textDidChange() {