From 81c8cc4fea087dfe4d5474092f148ab071bcabbf Mon Sep 17 00:00:00 2001 From: Roger Bivand Date: Sat, 7 Sep 2024 18:31:26 +0200 Subject: [PATCH] complete subgraphs vignette --- NAMESPACE | 3 +- R/droplinks.R | 52 +++++++- inst/etc/shapes/tokyo.gpkg.zip | Bin 0 -> 122944 bytes man/droplinks.Rd | 10 +- vignettes/CO69.Rmd | 4 +- vignettes/nb.Rmd | 8 +- vignettes/sids.Rmd | 4 +- vignettes/subgraphs.Rmd | 221 +++++++++++++++++++++++++++++++-- 8 files changed, 281 insertions(+), 21 deletions(-) create mode 100644 inst/etc/shapes/tokyo.gpkg.zip diff --git a/NAMESPACE b/NAMESPACE index 7d84fd7f..825dc89a 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -34,7 +34,8 @@ exportMethods(coerce) export(EBImoran.mc, probmap, choynowski, EBest, EBlocal) -export(airdist, card, cell2nb, vi2mrc, n.comp.nb, diffnb, dnearneigh, droplinks) +export(airdist, card, cell2nb, vi2mrc, n.comp.nb, diffnb, dnearneigh, droplinks, + addlinks1) export(gabrielneigh, geary.test, geary, geary.mc, globalG.test, graph2nb, joincount.test, joincount.mc, joincount.multi, print.jcmulti, diff --git a/R/droplinks.R b/R/droplinks.R index 29261686..3287b037 100644 --- a/R/droplinks.R +++ b/R/droplinks.R @@ -1,4 +1,4 @@ -# Copyright 2001-8 by Roger Bivand +# Copyright 2001-24 by Roger Bivand # droplinks <- function(nb, drop, sym=TRUE) { @@ -30,7 +30,11 @@ droplinks <- function(nb, drop, sym=TRUE) { nb[[i]] <- 0L } nb <- sym.attr.nb(nb) - NE <- n + sum(card(nb)) + cans <- card(nb) + if (get.NoNeighbourOption()) { + if (any(cans == 0L)) warning("some observations have no neighbours") + } + NE <- n + sum(cans) if (get.SubgraphOption() && get.SubgraphCeiling() > NE) { ncomp <- n.comp.nb(nb) attr(nb, "ncomp") <- ncomp @@ -39,3 +43,47 @@ droplinks <- function(nb, drop, sym=TRUE) { nb } +addlinks1 <- function(nb, from, to, sym=TRUE) { + if (!inherits(nb, "nb")) stop("not a neighbours list") + stopifnot(length(from) == 1L) + n <- length(nb) + cnb <- card(nb) + if (n < 1) stop("non-positive length of nb") + row.names <- as.character(attr(nb, "region.id")) + if (is.character(from)) { + ifrom <- match(from, row.names) + if(any(is.na(ifrom))) stop("from-region not found") + } else { + ifrom <- match(from, 1:n) + if (any(is.na(ifrom))) stop("from-region not found") + } + if (is.character(to)) { + ito <- match(to, row.names) + if (any(is.na(ito))) stop("to-region not found") + } else { + ito <- match(to, 1:n) + if(any(is.na(ito))) stop("to-region drop not found") + } + if ((attr(nb, "sym") == FALSE) && (sym == TRUE)) { + warning("setting sym to FALSE") + sym <- FALSE + } + orig <- nb[[ifrom]] + orig <- orig[orig > 0L] + nb[[ifrom]] <- as.integer(sort(unique(c(orig, ito)))) + if (sym) { + for (i in ito) { + orig <- nb[[i]] + orig <- orig[orig > 0L] + nb[[i]] <- as.integer(sort(unique(c(orig, ifrom)))) + } + } + nb <- sym.attr.nb(nb) + NE <- n + sum(card(nb)) + if (get.SubgraphOption() && get.SubgraphCeiling() > NE) { + ncomp <- n.comp.nb(nb) + attr(nb, "ncomp") <- ncomp + if (ncomp$nc > 1) warning("neighbour object has ", ncomp$nc, " sub-graphs") + } + nb +} diff --git a/inst/etc/shapes/tokyo.gpkg.zip b/inst/etc/shapes/tokyo.gpkg.zip new file mode 100644 index 0000000000000000000000000000000000000000..1282e352398679661527b1d268a4b3a9c2273fd7 GIT binary patch literal 122944 zcmZs?1yCJ9*DZ=CI0O$Cf(3UtcyM=j4X(l6CAbB5C%8KYm*DOkB)A;h59jf}d%t(< zeRX?krn;(USKF-By?XCamV-yYh57h?nFrG9!2Bl#BEq1+e1UOwwDodiwsf+!)KEu< z`9NZ@Vey~a%@Y*{7U2jU2Il{LocVpwRvW(u&+vW$0zC8F%?51@$ zKAf%Eu4QsD^n`qnhzfhHTWLEoW&@(Kf0vd0c=PnJ0RLkFOlShRs5B16zc?&a2~a_3 zf)~^49u479xPLr;`TU@l%}0tKQ?}b70PwLeqjsHfUoavn{{PNILqD)u#bNC_-5RUb z;)LC5+`1o09f?CWS55!VYr8;1I)miX2rCSU;lC9m{|NY**-}9n!e6v;Nd^eS5l22g z3H4(+JIOzWmTv=k8d(A&BPx5B?fWHy;vZlvLD;1MCk&-a4mDd2AVr>LcazswK_Ht^ zP-kU)YsC1+dH?=LPZM0wRDESmMYCAi#bzhK4Q#$#oz>i(tVY}Ea3AM>A6F!)gX$|F zU?3=!-Z6w6#+Lk5?5ljWy_C+2kJn=?D>`2I2y$5IQcI5Ad56dO($LmePgYK{+A_02 z6;Xh&ha)*A(1cQcheEzuA?NJuTtO=Kc`~ua!0udrth(z%8{dnUr%x>FT{LRkue@(D z(F91|D0`y8L-o$3MOBC~n0v=3hbJ8Uob=ixbh%jcXff!hF|pBT@iA=87rU49bQJxB z&iYR3#!alu?40a?;e|EDotVdj?QbT=+D;$!x7J#c-_yJjZ78DD5Gs6F-_`DDy3_SP zAW6)xSR5%|LD_L?-EVO?nY!z-4Hj?$zEbJle*8n@>m$>U(~%k@meaqF&yX79j+HfD zKziI~u20stlEazyg%C5*Fq1^Ker5kQR&D`iZCq@k{)fA(yX*U(IhS`Up`aYxPsGFo zpNVi7@vrwnP5J>Q@{tMTd4w$ZlJSqPc%KCm>s7OyLEv2y5?cIWDWnnK?y*DA#{P>8 z^dC)QOiQS>4u#o%%IH5$u}$BnI0Fiw0#Rr4j{?ZvZcCZuQ9VM1U#`J=U39fLekP%=Z|j(C^~`E*(WUiwgl#kg-bg zTL~XLPE%z&`NysU<0;sIROi3H?kmDS#RIlO^QYAX?}-sf%`lx+TYy55P${yz z+E0sEkCu4-!r$G%XT|;4GO9=Lo-Q?%q=l@HMk7H1BqSwt; zlmEj6|I6|fgir--yb1WPF6;t{&z^<vsO9aO22dIr1J9+NNU z{i!VORAdmPm9xwqcCF^NS+z-4C;ff;yM=NZ$X~{&{i>JF8(1`JS{G{}tLLn5?%Br5 ztk20TpiDwUjTVD}KO#Ycpcoe$ixKll5mypX5i1NSIxNZ(@Y2TaU*juGj>*HLMc(rS zeM32T^{;_+`{_Tu!4W*#*bzcsczqpfjcQG%z~J)%k005aPeNN_PZ0f0fv(4%nh^aQ z$fHn9L~SMF{Pa5*GaVJdz45U-(IF$^$WI4A!|`lkHg;}$ZN`|xh{55(=)GV{vq3@s z2~lY$dHJezVad_>Ps1ZOL)d+6zIrZlZ^|B8P0AjBy)jxEpy$TM&XLe2c@6DF>4R-eI3P&v*Ld;QOrsKTX2C^azQW5e z!aZrN3@nJ=g0?BJdKLll;i^?H_!EL|G-zq^!&t1X6Wxb+xER4kjZj+b!qM!e)XXPiB3lqLFooPV^YOH- z4;jeM1K8m?eA7?a**$s$Rxt*6oIkcb=CR1;JuIURM+Xlj_NfFp_t*744n8{4>UJEL z-$=T?%-?YuetT=K=`ZV`lNJkE?(Ur1;0A#>2aWKf_CCRjnHJHAj|@WZ#U_nF&AW8a z;^#RIe~*9b5`(`ALH>8-$HV45c@fL3-wwbmFU#@%HMUM1qxP@DHO|8SZp%D)P4taD zN8@#O!TW40px@BxEkEgez(MU|X#((jnn2TnS5XI4%|O++G3Xu$(Owt3fxfD`zvmb- zDoguLH+1N{20eyi(Boe;>4CoaZ&SD^qCW9hTdbg+F_v~9p}0G8lp zl8V;hlgC@x^y8i%PyiH9ZaraBQPs!6qm?Om{L%=y)i?U}w|4sWZYIx8Ml58gub7^0 zp>R~$BnH6Fs7fe>seImyfj1m6C=oT7SkHEQQycH#;6RE;!h(VJ>th@;!L`Z6(c#Wh zH!{S%P@)UKEKfqj)Wqs2JW=Y`r0}8)yuT1!^SQSo=ib;@6QFTVYA@MWVru7tj^MwR zg|BBq%|fb`9|Ee;oP&&}9<^)+TTyn3|4iL*LdzT<*Vmh&zy9!6ygt>gLBusEo=Gz> z%D*M{c%<%o>?@BRgN4-IG&KD6_MpDe&&gy%!(ksr#1%2#YKTBRZ+iv32`ejYGmnEH zp4o!_y3us$pU7dh-%fH$a_=pQtGkGgb#0AiuIH`PLA5l>8X8;G_Sji^Dg5KB zx2Qly$or-vWT+o7Wc^J&fE^EVEa%rVxi8q(WT*F9(EuT^yaBck2mJMYt7RNF84i$D z!g+%eRCrYL&b-XaFGGgPuF|{~mP!791=EZ3z*5Etu0<=h1xb#fWAfkoO7~d-8Y%%E zi6E6SvEoJPRZ5SY=&U0Cnl|4o#oXEUwAji>m>_>0Sr7Z&;xF!Oa@Va2=22?0e! zfJxohJ2Z>n`&m4+)B)-l8&I{jF!#h`%RM=m7eIXb3iduX{T|&smPfx7pi~{u zH5`zx3C$Wx7pQ1Qn*J+mt@#4RQ8EeECd45pdKvoon1kY<!OPxuYvDTn%kmLr!7dYGlBi;`I}5Q0f*^vG@-PY{>)B?eig zI9yn;wO<7F=ac7-r(9@CI+S=m7Rsh9_Hp$D7!j}u0Q1)JPV>g|KJc~zmI2M#H`(-4 z$cjW|k;&s@|ID54o!x)7IB`2^x}-YeJFD_G0_J&tWqT@e(q`jK5cORhdb$Vzrn0xP zFG%>~@X7?s(94L*=%nI{`cw*e{(DV(0~JB#ojy1z_m6Hz5m+`L918O#Jc@-H9MMtSi;X1`ib2O{ESq@}iiHk3(efWS zp~|Q$+aP&z3iHActlj?707|A%Wi_ryXxX6GF8~Yl!sEXe@482Zg6iUaHT;n{xfl)A zWlA9!+r-?8Dco2mjhLmk&Gwhzb_*LDtNPBQESL)Y>_BDj&g|Eil41F^!zQKhoOU!6 zK7Dg0P{`~(aac9Olqt1aoq2EG-?V^UXU3y`NIj)6F~_&QQv2!dMMA`ySq1fd_VU?_ ztv~LTb>*0^Yc}}~WmP-`rGu@Xd)uPpLNl zu;Y2YewQxru-l+-xY(zXhlt}FL~^Gu)NjRDO5|z-eHiVh(Uoqu82;NIyz(m< zzky`Y4J@u=;~`lyqzoPTcyFB;iEH!_w|F9sQS&NG0~xv&JnnVx@|koI2Aif}zEo5F z^~(k+<_*X3q4OU<+Dv-uc-Q~N5~b9Oe!FBCDU{!%b76=fqFO6mxK6^x?6X>=m8XR8aZT-8mai_o>2w-n&D1@SiC@RA(5j7;5^_b%$` z)Alg3StOXbj6G%Iqys(scbGDU(NNO&+GJi3xSfvfX7R2YDJljUUU9VZ9dURZTiHSw z6+hp)@rNZYy%OuZ#1Q>6%N6=t@tJ1>d26?IAYCMQX+w|UPrdO9$;i77Br-pmIqlD} zAu$K%Ig?zpvYx#4a#^zW>{MH7+fVpba~;c&rtlBEMEi_iVb%->OH}gfyqQeo|Jtf{ z30nkM8HY(K6tRVDDUh#U+jD7FDcQJ8s4vd+gBR76t!tlor_vMUZ5JO2artY)3?;9q zW4O6jXH6qsc@}Xe(pqf!k)xjnOb#zV({%q$qc+z+{>=iT(3yE8C{46nRUsz>ZwoQ%!VC@aM3 zBC>P@?+BqgZG3BMl3T!2_IXiJR>)hD!vOZg>{q*=Z=p~2-~SL402|Ou2GXiC?E5y0 zX6a@(*&YQhD%*i`7oyQ^o$ny^FX4s=%_{BW&E5Ds3kI@6%3{$9yWT`Mev518EHGRG z{w>rlL_A$2GxF6d=^{5A4j31z(fg=Oh2tXCJ*lZnuf3AxNCe>cO-r3-5#Te8sl8)RK${HuU5e8|_s&(B^x^nIjdYa+IMU%e0 zDZxAzPKz1yqL3?(6V`ys-`Kok%I9*1T!ZV{Cm zM`JJ0x&8eFmqmh2aGcyEIwLlVQ6uwEy2xKm7csrD0)gcl?#~=Xpav=)pTtdOGoP9Ab!Qy47Ka+AA~A=wVR?Mhzm=AH^G;mPqD?{TH}sACwY#eA7Pb&RBMzL5 z(faCxx5}FQ;dd6{Tjg<51vwPi8h+yWnMQhBS->}3}lII&fT0PnGv2c70}J`qZC3@aM=#f*O$>%B-_>a6>wY<9Kk z%N&CC+zNDZ;gR&od$FTCVE@LnSGv?+-PSj&!L5nWJ)VW^`-T!@uo-tG9J(dSSNGCF z3h>j3-&K?qK%!`m{oX}V=4k)W(#U=(#t`}k8({V~I^0`~EQGyb7~urm|L8T^Ka=Vt z;I-eP$j{2onR)fG&3JHUIs(JAk32eyn|RPn+07aVFRRCD#Qqhci4`xB#Bfu)xfc9{ zlafWA-fM=1;ZeWQh#SCwUfk)cl=Tb1WSKqkWm_g*y_5czvsgFPRlhnw$aT=<<%+PC zc&3pLqb=U+xvQ^Dx9A~qVAkmk<8=MJMOGX+8GPR-fb{DEDBLH^DC031Wpp@drX2Po zUaz{5>Sq?GR})^mNbE@v@&gBTODwfVrhD+~{ViX%kA9LX3Bw2X$2a#&Zzwluj29Za zj!yE;MIBYS5qb1MtUi(k$%T6PPxY_lw)+W}N#kE$1%o%shlwKeZv6OCLuTGA;a$Sj*Kk*90nVD$YQY9F!3Ssre&#|$w$kI?w% zZJl_J@5R})hCUK6y_W;nT|LR&zWr>{&l6h9Si?M(fY2^3p-F4g-l0;P$((vLWu(|g1XSvU48gt?DXV1_N<>nx}$4B@iSLoy(#zxp4CVxy` zi{961`7tFRM$s==HPJZ7-&C7Ph!c!KuWrv>B@o$PB9%CzME`{8E|_SI=@o%0M_flR zBu49OU(84`e*TJ4(7yiR%Hc~eY-ss`JQvlhJqYhJ1LkgRGaPb*UMKU!ptZd6%a5BK zf0m-~E`dPmy{4aM%L8|7O5b!^&`}p!h{DYWZou*>VO0YnMK$;2&RExA)hv^4yl7>+ zt4&wt5b^Lv1g{ZiG2hbqebY9e<=^9aM8JEeTQkS={bzJXFunNn5xV-nb3-+RG^-pz z^psVfEzDz|xG8+`oW^f?Pf5o3iY0gMsm2hhTN`PTD2HG_K*sc%wF2hdeqxKxER-s8n<{(XOr0w& znygRTql))>(EJ@%>Vk7?aEzUajF~yHVHR8drYAHNDKbxRV7K%qtcKHcf{JpE%O2{9 zEXio{b=ypK8oJ|z955c+xhW3sQZbZvc#uBFdGc<3%hdThFXm1XIB1Pik$WKlKuz8wz30}rXuZ3Cm zT>Y7jGvz)Iu~`i)xyzLq^%=<_{wR^(6sm~3oMo0oJ8`ZuRWl@QA#HN`4(^jgqetG< zTY8~aOj1Y6ieWcZKAPXjl09)!y_;b-F!798t{QVE{Q*-??4SXSi%94)obrljql zN-lxvH5rxmNqb~%j*7#UmX`-T&{(qQ_t@d;S7(^zywDoHWpFHXAPitZ{Gn^0E*d%N zxorYK(>7cA{(`aEvTn9TVaFdSy+`-wF3w81bl|g#8-2t`z9COntcQLtfSr3!9uO}= zdd5jyyJW1=@JCmkFkVCpq)5)*i9`ceEn9G$4OMB|Dn+uy72LvQPaDZk^tI>@xzVok z0wu?}c$$a0N-BrU*Dx)!8ugmZbSBP@)o?xPT^zO|^AdWJt>4oFw1AOPl7yStQ)VGH z1UQZAWGbi%BQAuso`NIReDNX`ET^vcIh2(7H1z`PPPl)v2awV#;~r%Gu~|L1vm`rM z*4w+tpaSUxkOXVeaBIu^ts>uoQj>QcC;E7n)px#x1ZK+uj5zw6>6FW{KrXmtTJ-7SBYq}hVf7Tj9EKuK;2Bgg$SNx1P=GVC{db<~K@Vq;lD=7{t=45R!_K=&~_UjPNPfaZouWfPg>XiUe zdnMJazDk(H14uXO*%(-C9`o8 zb=UYaB`Zz9w$LEttD-k(;GPT(!?cBti@P%rkAWag=nkcI!Lod>OylqJ>3UoRHjF3yg` z4;=}F(XHq*WxOuKt#=@HJW5`}c^>dNfPv}BobrS3=jaJdf@WV>7tNv&4)2`)*Z5jm z#<0Fe6daA?a5dw#jCCklnrn>xgXVTE1S9JDwP?Bkg*_r8AXQEtaV>t_>7Cz*N3w(W zG;4(!(soa-k7~$G>UfV5|A4Yo8825Ng$P96xLw(r>4#bjI$SHpgRVQfi*AkSF!=I7 z7n9C}z6RDNxVmsmNpGazY9s6FL}loPm$)VyA6$r1Hofn^J0oMvm3R1B6YD!l1?|tO z>O+P-^qy5ch2sb~!b(`%fQ7$(v*W^3m?cUh<5De>6Dn{Drd?4WTJ z6AU+t1vKW6r7DBd6qU&NcsGv?j_C3H58wxZR;Iu{qr&S2@ET3Ky{o-5Yx>-uOt$W* z`d5i87wRpicOCd5Awj6YWxLCPh2(fBkam}_ozEM$aRD)za$I=u7DaC9wkTyLhAHhB z>hW+-+YQHX&pZfeN0UudZ{hkDMrPI8fte;!mYZ9?mujlAbKs_e)>W&M^MP*6Y3^)i z+}0;h;j0TRhs<-dwbJZunbl`?PEz_zd_0Bts8Sh;`I16wwOMt_4)aG*(i$VL*4o+r z#i0S?tEnI(An&+}SFAStT@@Vxo^Zehx1IPlZ@05Wx6BT{d*4Z8< z;EH2r3kYIeUpg@4g?!@k9=<2?4S2%F9_Fcf<_IEm_6eV8N>nm(%}O_?=QdhFV)mfW zDp{pz_1l^&uDwtcH-$u2VxfY}>_IUg!to=ooBa=?a_|mw^;xaS#$g|84W$4mv#U;I zx!_fm*5@bD!p>CHG4rys>ssf9Q zla)Ix;Nc6x)7G|#(({CrILk37X3gL`1Nbl|En2DJ`wr@??v6-D>g-o{6eqL^N8=o4 zZM-qGS6(h7V@13*n7&4LArTXf){N=>cE9-ccF%b&3Q5f3*$yA-VJX7z=d`!lj}Al! zu6@I`BaGt4kRXmMj1`{^FSIgKY3lp7W`%1Hh~myQvipw0{dI_!$=tlPpVr#`vV)eL;5KQuV+o zL0>Y6E8Ee`qFYifoav&@wJ;+(>1dO2+u&f;+`)D;x$yR*0%on7I(ix+$yD8^z)k7k z!KW>aZp11fSn1rM+LLL?$7q-C&x!uJSXX1^sl_?L@c9A{{Us_qU?>cBC=7lm3~?yz z!%!IVP#Ee^82V5c=1>^+P#Dfo7~W7A!BAL6K2cg3SDxuaexzG6{?tUT?;?evUg)sv zn`siVMMzo!WuUFZguYhbKE`BnIC|jWrmMF+*z|woWm94vzCd-a%!fw#tgL|>UH;Qy z&0U*mHl(YZqyEIX&16<+CBp?0s?zlIWE|hG{TEQ|#?klb_%)|bl3IE2Yobs7zMDe( zoZ2ZlBR8=`t|to>VVzUPeUuu`UOr~*)Ao(A(Yrn& zzD8a=+E!90oMW5T%@~~5?g|+N%L`j@!K3EA9~mlU9)I%RTt6n{V^e83!2sDO-F9g# zGDRZBA$PnO$5V;1I(Tl2wi&rT9Vz)xA!YFA)YOEE{C$mo(}|!C&RIKwv&xzC{&vi@ z&cc?k&n;`LygqZFe>g8i4a(hOI|gVghh)cDe?qMsE1fkq!OM{3`h;2~9ssXxJiB!m zJ}7EiR|Lb@#A>BU2Q~C=`vFPk8_k2^AtlM6lgSi(?ehL=?}uKz`pFACxb`ASxWJO< z^RTM&>zs?@*pmvHF=1}Hc>Q0Q>eE=6JjL!S3QOPjmD3NhQyiSq$?mE$@#y5NCSR(E-$#1rp@>YcF zTJ*BG`?XjQ4Rbh-Q8~S(wdS(9)Jc_HI6kfa9R+$7mW7t35x3sQUdKHPQOlD{r)7sVKH}5Lwpl$5OJvpZf(G4~x?Z}6 z%^2493rW^bwqdpsw$)3r3%Y;ss+zyshHoKtYj|6G-`uI*mYz}{4IN7yhaDpx8!oCX zpO*9JPb+x(&p8?hC&b@8@$%1ton# z??0cH@X5KgoSNm}=6uYtUUO_xI_*4uIgMWg6$z^b#Jy>rBb`UAwYsLAGB4y*^BZ)= zsZI0#;g``Wz6*84w!%%i7px;(pguyQyzaz!k{=-PU=W-C6tj$Tu3dZl;O)RhNZfrK88uc z_*#J}BPc`vrGi%mBE1$?93r#!tGHV_Qy}3Zv8=bMh>~2Xmb`mu@D_E()|ZSe-V6(& zj02jC%HR}Ejbw%LZI#&+6iWI`wb`hsRCPiewy;lP^txDy-+$5I*_T@>gz;fJQ{^ZM z&wVk4qqb2mS2j@$qsPObmzELZT8%@|qvunb4f=>7^K?r|{nbKwE;Q0Qg;2Rb0TH6w zAcW^FE?+F35h*U~TK-)$Y^Q8X9ipp#0ztq-h zNtp>v)H3KYf5cUpl4#Tl#8eHEY!cLCi-)PWzEqIOaLL$+tJ)`VQ&`(3DSoXGl37ns z4=X;owIF+MkpkChY}A|jZ9(A&JVkZaqCy5dgYr6BQvn$Xs#t1kG?`7A6IoTMq&eF= z8ahY~wG5?b9DC^=+BFR3#73x$DRQW^WZ#236i^_XH&X$dSmv+|Ec zUqhpmzgh(M&{s~W7m5Bx!J|*9P%ebSP80}{t!0_BRJm^2CS zC>#6Vu_}*HGP#MS#hFs@)}+ik^_Y`pFgdGCvCJAgWPpl) z7qGeYqDNcYnB$dOoadKtU8q95;Ofz^A0vz1fwZI}tr+{C9Cr*@j!t~-T$urWla(+R zD}yHHH~QIR{!M0&tI?bBLMAo@D6&74vYUtoaU}{F*gPc z@`>}rvPH3Yx16V|jDHHfAuQLf?9#hU^et8#)^zq>aV@7B?f%>5G^*F(*tYhu5UL#; zzJ8-${R9BzuTj5A5kM55HqEq|S zb@O;!h~CLL)%NNzm>@<_v5S^F@%o<6r;!nL{UF1K_*EpQN{hhKWPQ1^Ht||Mi(jvk z5mhVx^HI%f(nx+dTHkY#4&dmhNVqGI_U;_NQ3y3VG$lBQXUSl#K?t>r4QVq3EZnxQ z%*&6u?jXp0%zKFdUV8Y{$jVq0*7t?9aP);^m$GdYeO${?__C z^^eP=@iW%I5lArRl%|BCyR!4A^91vZ5raH88MR9t=TJS}Pgn0Y7)hEsv&fLhl&u4* z-0&4EXQLutKQ4ngn%*wivf0iS*L$TdeM1^6X-Eg^;D`T_=?g0tH7{e64D$Ef_HxXm zZJow0llCtjd5?8YEBjNFaVr84wm!qh?s&heF|rJwtJby8xN9!M7o=@F;>QyQf0TVl z2Ml!2V0a=9eS$1W%I!IPiSfB6mOevpZyl{l{94VO#B%MUB4&Fk~} z*8h?1lj8dJ)OM2HKA+$j?-_@#<;DV(!Q{(T!f@Q%C!rB03;gA4u7d~Y0KfCK@j;(a zadx<_h@KW3Y1Ij}_|blArP6!14TSUY#W(ud)jAc&&Mgb4dG}}^!o*l&c7!{>AmMUu zL846b@n_6?aQMTENzF+zBib~1lE_nzJul$A$Z4*^FCUX29BnN(Y~HZ4)jAIy+(^G@ zxz6SkLYN4*e^Y`dAy;;&5PYq8gVza=9`)aNRT5|rI`?kF+Mv?ag(r9)*G-vhMx0C- zCC9C&qH?TTT1&DnX#UZ)q93Yrh)-EzH2L*mtnDzUn$6XpVFi39Vn)Xh>kNB1uuohvhmwQy;j(KsfqowS zdGfKOhJolCh-%G&wM6D!KqJ_;X5237^Q&&n%1*rPlYgGaNZT`)oOHc)S5ZyN6?Y+< z8Yp#xVy)!Xz+fcJ2?@j%$&BWOsNa8@uq=YIW$n_MyNwO5*)LVi-kKc@Frv0MLcJ@Q zG5VpUIcHB0e_N6cJPooqmmyotX?io@r2}D><@=N6G_)3waEBv_=ay~-2%+y61G6=T z%o60xtIB(_&xDou2h3(75@(}x(?Wm)zm|L5I6MsfH82z>DKIOKTOy}zRMFnPZdsb> z4F=M|HbT+X|6d zjwAml*QEe>jXt~??E*Jnn^;FWX%>aSy2NqGkc0A); z`k{A;GdC*NBrwgKWE$kvvGgX_)Prm(*Ei-`jr&-i^K1G*`d7e6fv#t6&!!;1c7m)!cQ$ zuBQs|){ZBd>K&%;8NvxS4{;r&g|@Xf zcN0l}d+C+T81~e+Pf{xW)4P}X)p`)RuAWzfA#E~pHzc_QG zgYQKSNrNAm7Lz1P`_x+V*eQTy@0h0ME*&ND_jE%EK7P)-^W}Xqkn zu~QFT=4!z^B6I-6&Y};>Z#n@hXTMDeC0AfUGe0UlYjHo^o#Ifyzg?Rth?b_bjVX9Z zx0+c0kf{${?(;yttoYD4OqM9>8yXfj1Jo+ZCC;H7s-tw9q3p2#+bWL2&rAS@HC(^T zIPjvIgZoFr~;0NSM%eQAP&o{OQK`Xjx?#)y*L6`J z-zp!o8&f*P&;D;>Uz!eyTUz75EOw_y`%vH*pcqDhB-WY5$A(oVJO%0WOiP7kRJ6bT93mLPvI3*f#Lx z*JPKJjI-*Y2X0_g>)g=N@fax}i^H?l%NHbM|H= zLQGJ&?Td5TTjf;Kh2~!&2yH6Oa=o2Do&I{*J*T#Oh%ovs=684WoO)urOt4=!c@ax{ znX+>ztj|Qdhhw>oFPPd~Nf%*nK)V+tXSdAFLLc!+KA;6>)W%mTrN|4YkN-=p-)%BK z{L^mTIo|O=Z>>jOR}*7>yJl=_?#i^RWS^A`-NjpKoo7*JpH(P|7Si5l9${bjbD}l9 zXJ%h;ak_hJzmCaa-gBEsA|8ClFoIOAcy@%m7vYP!>GJxs!C8p(F`WJFLUVuRy8|Tv z^Y!Gqy=HRUS?sXu5}Wl6P|7c4R7TQ5{Y(W*?$r$SuKqa@FFSgUwD-HbMkbB(ud}k% zG_mRSQoqH0=05A2S04O^>AxhGyC2(1;`ot|Ikp~@ zm$~!S{s(Q1I0UnI)9tsT5#xZiH`hG&@JM$POEW-Al3Q@%RsPP;S%pZlevEEec>Za3 z=9T>;f=ayc>)rOX|NI0y2`+w%i@*-)*<~*K3^aPNS0cRe-|6@$&2N8M8nmBh8g&lN zL|2M=81H@~0q$nB0~hD3-XTZcG}@G))@KOCUmCPOGM)h1d^Gn#U@TJ4%&yGA4Ex6k z;|A2W<~p6RNOn8^w9c03DC7`%W~~f(B{@e|_^t7d(!p9Z+Sp03H{9dm6S=(;(OG`2 zTF8}e(PnpD?ho^>dt`uJ;T%2Xo+E!crX9guZiTMofe~tu6p7!$t^yr*I_Th@+YJZF z536U@zbIueji|yzv}>esI!)9#Y*8*yI2CZtuZQB$%m9X!`pAW!*6%wA75&7tIY-G^`WLRj5kqB zhh`(=2r=~?$GSf-29_C}@g3_RPXM2(VFCo2!IdAVi{CWiK;&MK%gs+DuFX(J4oVy( zblF)wKVYa`C#jA24d_h~x#r@S3qbCv8j++h_i5#vwfo~^gy1v-s%#w$PdD!p;opaj zpHp$4vj5f9vJ!jV1FE;}sRz*^tjnQxYJR{51nzTvBLv@8*X`JLYQVr__mt|k1$^nz z#5aoj6!c#5nC8Ek>Tvgnr97Ai0S-Lzp-I=$q^Mn{rY3gZkyFQ)ZnHnWUX>blgvdMz z@FH$#x&+kvQ`hN1%(QTDOqB@Nt3%H)Kj>hHzjk*6$o=(iuU2DTIT&toSK{1|~K*`fcAWKy=YlaHixn*Tz@BUBH z-z%ns;K>&ReW#M4(QQ-Jtgt}-qH;oy+S`#^f`5tWCgg~e{(q+>zSm8W+?9ra69aOlO!$**OFOTqg zwQUEf8JgKLa&}a_vraT%3txekchLpX+eOuj7#$<2ZCAt*7*t2~k#VV^dy0)#Ot=r3 z3qe2r{lJvt@Ix0ZYb|C8)(EhzLIflvMgaVx49Z&UcC#`-%lfz{b@>fctPvwY+!785 z@n6tJ2KA&F_v9RyDKImENWs+R0#`7%O3M?4)3nG;M%%~TRT>)6_2;>z!Og=>emAO2 zNH3#3Z28lxS_d9JbQI^^=$A27Y&pbKZSV1uO8VPePpxV~vZLJ2L<@O_+;p{-33^*8!f^DK@ZbpBy`IHVEasNPO4kmZ4{YdOde%+ZbcDEDQ z^zqht6k|KKvbN$M!A}0%jpj}-HRa<_hD5R7EmAJ`cH+s>S2S#qXP9ZMnE5UJ(8Tdh z`1qy*Kkw=-3rFmU)(u5C&}LJIof7u1{CafHnfV>+^(f;mCOssQGhyPW@8tLA@VVFo z*x8y0H)0Qf?RQ7!<1>MXHjE+e<;m;1>GD^0&qjhbn4TM}vSlC35w$Q}dArZOWk=%d@{~Dnt_x`$dEOG90Hwj|bmm zeYTxeAh4_j`M9w%^6cUn0U{^i(6UwfmE_-{*;~S88Le;GyTKOs_G>ogh+lMmHxntW zK=1JieBRfUP(n+@jp9Y*W>^Vx983P~RXiN2PW-;d%7G6@U{wwWntSHpO;sJspm$ZV zQ5k?8u3&B(#3NLZCWV`*&|w&=l;9}M*k5?Xq}Zxj1~F6h#hwVb7gQ;_^OGTn3jMxzhj)Dc3@EAKAw zu-IX_|3cdER@;ME;rNubjQYQRZHy*&9#oP---Ps_8eGii|8zo%f8w5d>-dxeZnSag zI^#JVmHUmQdiH?3EQ7nOg1fAPyKI8HY>m6@jJxc`u8V=0Q)u)`O)~Hngi}G?ebSabp6X&b}@fgg?QT0%~EI(@qCb%?BOsFgzu! zg|&=`@a6fBW=v_CZ?w@<`#P)+XM3+Q>S%@7O3B1Ho)a&1FHv-NrN$qsAnjRV<;6 zQL^a*vfn8C#5li@{GJtQHR)ro<1eFuW#Mz+7mcQcVYS63lZJ>p1oe=yaV5&ug zLq(}FMt`WrPxF~>piZZou-_!Cr~QUo8>#c4a;vu^PrJuNt{lyM|M1(u3t#iY#4!bX z-8unJ?~6(|aK=3ljoAER!Z~~on>o?N;D>q65A;j4)-3qfAKJxtns3Hz&3eR03C0vX zEOWhaOo(ADKc(5%<-{lJ;^(<%-P$r?=vEa2kRRVT2pYoW zOh}zV_boawXh^C|J5(S>ap#Z;;uWzQy4${8s-($ zZp9yON6x}SyWHB@lM^oI;y{Zi937fMsw_M_z3fPX*ct3Jfbp4*T_$qB&*tBppW4@P>fD0oEAcAwP3N`U1hsV_Sg(+=FP9@)>w+}w4abwhfv+)tk-t>htotSF<^6`-T_$IzYGqG~6208#hT8lpg32L`^8<43XFm@qmtFfyVJ-*t|vKIu2Xl5^%}VH z;#K%xGYSST-a2IPt4^y}_N1hp2lgTDWq~};TU+0fb~*3DHCh|XH$6QW4IZfeXHSCo zwNS}VHD0aLX|29+@S;CzY z#Lu02rj-1tvlip>_Oj@72?ql1M)VxY>>BDU)>bZe(S;w{;}x+D`XWDbnew~ak52E{&$_};#y(O zFy;bTz$ejr*nkdMk)sV}seT#F`!4dIrLF<&Im>mfoJ>k8ewfpnj{03p6HCqlYK8yQ zpS0bW!$SempuPOg=J;Yl>RMNB`ocSo*9zQzhAu0V*B?{AVW*3!UJX88RxC=f08{z} z1YfZ(&t;#^$z}R5Y@OpSe+Xs@{1%0*dbdZ`43IoC4kbyP6w-X!CJOdMCkiEQ(m~6H zvj4$M3IZ(^F(TWu9Qe{Wca8f-Tel6t)3Y-Ywq88$e6oVR)B?&CUVxbI^4~iSc_u}q zE(exlJpYxRQ((vYE$d+uwr985+Y*mxrMtzA{xH#rB3W35BL8P>arV-Ps%v}Rzhr6@`rq;az&mb{4$0A#bcX64zthf%Nho&q0-Uz+KeAC?z z`*N7SZ@Lv5fRScuYE3h#Td@1NLQ_DClU}ynb&H4 zLx;^eY&_rnUDPBkc)AYnQ8ZiAAE;)om-?hdb{qek-@qruh|wR+va;9ZjN5BA=)svh zGh@eBYj!e9UL+GTl3X603GlIZ?l#H6F+3BRN`LsBTN_ZXcip^@U^So_Nfg_{bo&1Q zaX^m0L1Rjn^*b)w7MVW}E>h#)MLT&_dIR%NG5g|Jl(w;X7w zW_MlX1+VhKv8a)Ra;|>k3!$7d{`hD_LOmx9_JB~&wn@h&Bowq`(s2j{ZF|j(hKdg2 zGl#9WV*c#q)5T;@xI66m|VA2t^GIHVIW-oqyY9VdgK<2^FIk zDn>W_CHkR4bVSAIiHgw`6{9aIMrTxv-l!PeQ8D_XVsuEw=#h&0ptsybR}Jm@9)Cy_ zvGf4M>H0SFh5GEBfl=i@90ITn=gda8t9o7$?ckaucJ1a>9^CQ4(@^2e0sf2mp)1ZQEuE>ozx~ikEV$C*L!>jEr(W_U`BTeq{xZ+PmAKlawxJxjSyV!$ zMI{N7d=q%kmWvC`D@jd+tN8F6n9WuL$X!KF=S0?!vOH(7TAqJMWz1+Lk9{i4(pWL|Ts zKb=P&N;rW<`Qqh1ZaflHGhIZlmka#Pj`jOPPk?`=)g9ndgY9jCPvErlM!Sjb)E_F| z`vmx_1-A5{{)0VSPk_H!Gp7O6-)yYa2^iODpBO;r35VL8AnVKd1F0QkQPUF`T~|I~ z;R*AefZf;bR6umR&BdP7KVadrg`x?4SFrVotE+AeN?r~+q<|2b=E`Z_ZzoY5IaMgq14~eYJCOqcNrT%?PB8j6=2s0svQRN zX6^nTr&oYoY5B_GbRIoBsRBy|cGr3bJZgmdt;xZ z3M{HhJ=bSRhPB*9^>y3fo^!{Br6(k5~SU9x{ z6d6|#|MaQA8&_ZJVp2iEqK8G$dC~~|3JBBJwO<6CmoumWi((tpoPjsYKJoaY495Mn zLn5dh@=>FV1X+C$@kM_hQ9IVwNb29(w@wD#aBlN)JmN2M>4c0#TNFmo`j#q{fj?4M z&uHpjy{d%R;pRMxq5fFz2W1dnEGs>h&WqDF$uRuvQ!RuQuRc1=HC+blwW_^ISn~bv zj;)uGd7OP5-4AjkRR&?*-!_G?=DKDURnuj}pRj*CwfjAsEF*GpOBVm9q@&AQyMepzU#>tLzs$w4$B*7dy71 zom;^U{u?{_Px~bl_fshDw?HoMY)G_M#~a=d?G@~1BpR&A`;!n27JglVM2lT>Z8=1X zh5cD1n(UX+iF~pVjW#O};6b!mbRof#M5A?VEP-gW63ZSmT5ZA(Ylv3+b(Hh)fa}Oyf4A1e93dmKOji4L-XA`%P{|3Y@33&T;ku$JS`*s zGOOViV^p^-Q@$<*JGcq|Ee%4QTq^_rtPUIlTHj|rDu?}1pU)W5_vO^F0{XxDeXVJJ zSG1@A|Mh(bI?|tsu%CDW3(hWWsR6%e^JNsKINs8Qi6jhOokF@%uO#b%xj5;BAG4<$ z^*VVsG#AS=Q>Ko0pk5?T$L7La>em9#?%p_NTrTViY5M?px>EkDskt~U#?aZPJ9q`A zhS5%6@^tag3!$gUU(@Bn=q<^Fl(#~Iv#Cv_fl&npkStOLpQY@J*7 zjLw7LoFm5q7bUBQV&T+V|Z_ZV^jc*L7KXW!((F2hSl2@eaq*d`wv zm|1*!0$lFUT+l0@?D})+LGxQWJRe4FQx6c%9XoAxK3RQv2OMi(3OSsQ1x3@Ysr3Rc zmKpASEel9~B*3e$%XNAcz$jLwxEC$Iv4R5dYSdEeO})ql2nvW-?oQyTdftbI6hLV2 zeJ_D0Nh+Dh0xX%ci|5_PgzRE*i!1=^(a1*NCh?biCKbT@S~9OMcr`sd9=osrr)##@ zale-A-hymt`rcj`xU^Gg6&scC?KmLpj4$ zDK^<`UIC2S=E;FaG`p2BvjD8Wh0z1x{+mwcPNDZp89==v9TE$`Yxq?maAY-i=hOmX zE%zTt%TIY?0hu-E4l*H8Lc=4-^b&AtzTCsiMv=U)InPximqd-Jdu z-!^>wK_NtDsq9&@WyzMEXY6Z22qF7U_JpLeB?(!wW=&D1y_pt|gu+Zy&9rH^@7c-r zJI?F2yr1#;{rNrK-}3g4<2+`}Jag~&b)DyVwJ02o@i)PG(WFG)&+)tGaa(hydK#X{ zn;h#h>%J{}UV|Qqyz}QePnwNkte|Nv5;5ydly(d+%}Ia?wE5<-_&vRgUtLZhmgI_Y zZ2mV4OyHeDoFun_FHE|X?2`bM)PpYL*?gO_oT-pj0hd1$j3y=Unrj1=j<+|b%jeyW z35ZrFT2ElC*9qncbjs^7k@er~ck!qKx!DESWxu)on|Q3MOYZ_NXtu=ReLPrtlRpA$ z?%erW9#1T7t4Zd>LcerB9=DKV+b1!W;)c8ND9@IY2h6wA=4Zzf>p#r_&!2epkuIJ* zykme-F0(M6cW&SGWD>B6X3*o}c(6#9JO*|tIhK(hPb!=OU?IzDLRLJfL=7jKld7}r z<9OP&9^&=Di=jQz;%UCVr_Yo0k4cFq*5ff?ZpXV_f$_XuW7CjG;KS7$r~~7na;W;* zfw7dQ9*Rd@td6Jg`SRQuEq&v0%9-^P_*2yxpM2vf+i+?M`sZ_CHLrMHp1St?g{kHg zO!z!A9xT!|UXDLma`vLOk!jYKV5wG;>nPS`Cdyw$JA#uyC^e@)7a4 zCDgN+ZceJ)H2ZjBQO*FC`_Fah6OUao?8492^SZ_J7OQf`^>Q*NRnM%Z@jO>=mDvWq+yhoxv5H8pGVF`dn}oFJVc4oAun|E7z?kqw-USHVw;8Lq{3Y>LW$BJ zZ;O{QR$|Iy1+VG)s>g$6`2Lh|w`>Jv2V$4A-(P%Nfm6nnbqR3poEr8yP*8GAtimhgvfz?{y-C`f@*U{}jkXx|fkYK18%8`NzTV<|euDTuY` zwu<%Vf*1v|d8+rok9}GfhA0sHSy+2Dd;M{sf>e`L2sTZ{yuj!B_a;lkhPOGnv<&gL{J=9sUzBLVf$04 zM;rwMTX~pM_V2Vy99ZKc#h#eYAx`fc;wbxi(UY-W#ny4OeoXN)r}C2y)#G@lJJWXQ zfH{|%gPz19rrLbKR<@q(ijC!kIUyDcfqS^eT3?8T>VCDyR@T2~-DBw%zF{l-edE{0 zB75{`DZT$w@|@MNJlESDz@sTnCp_4Aej$nFP4)+SGy)#B^7Ha)vE)kd9PI-+ zhCwW{ovsVE{G8v_V=0?eWeXd>jYYAvURVRSuDazx>sV5SF9SAjIbPQ}mP)-Gq4o}X z{Ap1v1qV+7!)$$5EMtZZK_R0_9d0Xv+$Sa>FucOL!L_KG_j?|Xt`=@wtU z*_@&pTTjK}yc7Pxjm^i3-Lc4CONRoRxZ2cQ5sR7#tKB!@{gSXlePcHOC-rgt5KT1DefVq!rgcp%yelOjL&wF89J3W$A zd8NQ|%llR2kzlj*{OZlxf3!~|*iPL)`r!E+7|R_ZNwwC}*POD^6Z=PkrEb=958B&P z=+!=wZspDW*m$~b76}zZ(__Hyd3`4vMe^mbm#dTk_fYlj_br0AyX^nq8L+v*#IR2h zykD?KMvcAZRHGyMTLiNAb@l)|wYgpLA%aRV)!oO=hY#*W&@F8qu!C9b7EJ`Aq+5J} zKLx+eR76nJLk?{HFiaX2f%D(g#{11>THF=J)gP2vUVw`I}SK?DO&n z-md%3t8T!DBWlTlBcNjW5)bTrX;;mo5v2O-dw{i%iFX8UX%Dl2Kh=5CeOm--YV;p< z(45#VuYDtU&0fcTZU>nPBhWX3Sobf0g#n@UwnXrJ=)x1`htM8l^KY++z&Jp%J8%9Q;m|dIB zM=^dr97^mT0oRGvF-I9|KB!p)TsE%mKgQ1EgKI=UWgR#EI6m(||J6Uj`SPkW%%=mp zB%SQ_DIEP>ckXeflHfDLvA-910NdR=cl%m6qOc9$5?*{H_HsDgiie%}Ip2y$t9=0;ly^>0i1h%>71V7SReQsz$k~%HXQf0#GO@5cgs6cRqtRH&+qTaNqQit&7#62Ti=O#kBuVh*ShhG`Obf%}*<^)a zPE@+vuS0nK&-+IaQp6KXFcJbsNk?5ffsx&U;ftZU$tR%4O05Iz6yl^!KEdn1-vs&p z%9Wfr&EXWqCazxugsCvo_To4||UT%Ipf@JApTu9-c(KeLmj51s( z%gbzByM<61A`2I0_bFM9T|yAxv2w=yOWrgYcjP?6su>(EcEuIZ7>{I6E0@3)Nr-K&CZa$4W_giVgd{wlN4d8}y$8y&yaFPP0v?)9ax*>PT8 zetp1CTb?Q{Vjx3Lm`yk&{e8C>)N{|*4j9}B+T+`#|kEkw^hecb=sHo|8vf0vg1g$RRC1pE;;5tVA@AN>^>_I%*!?GjE$lZLNJdei)-MAI7U*IR% zqj-dcGm}Uro?AXBHy#_j+qdtmeT2L5ymeihub~)^7T-ST?#4ql*)<7ta}<`&jz_J? zX-SZEFEILCem$OKfkPm}USRd1)sc8UFvX%g1lVNEW$pfWUS8q&;!zcLfZx0$9v8$G zI+`!DUyc|NkJ^x4?F`w4=6>sVlGO(T`fW$yc!EY6{jhwwqawE)ydM&rz(*qs>)=08)wdnQBr$l&H2fcp7AlE;rj$cq#cn=f1b5k!*797`K&5 zN+Wy+)=V22H%p22ZA;7A?0{=HSxE=pfpu7bFtDEz7l@9_fIr=S`MI-_*K|(l)X~J8 zY}+n1Rq}QlJTIR#`FWtQRFcdvwk`{B_v)u4S*|~1p%%}|S`Jl`&DcQ5Myr>bns-w2 zym)4n*TA_AHioxR;y}QKkPNlLF;S#MK%-$1u(kHcHUlMHsNVq#7tZ=tQ}Tg3n*wD<#Pe-GCo^p4ilu`eXD#DZ4`Oj$ta?kFW)U{irx-!_>vM9FJRZdP(uqdzz$gn`&%n1?crv|4#1UKD(OO;ZpOy%Q(zN^o;A$b0s0uPB-^>3 z^;iI5XA32Y*1b{HV>0@Zwn|=8Z*2aHddwzZRcj>zOimwxQO(X$NizH;BtveJS=?Gl zGF2v%7D@KBq|aNKTAu|p(wZoVzB>@&4|&5WT5~1Yptu3sz4aZ~K#4T*({l~j{xYPg z66@KV#tqqpp;H?r*f3{YfQ4J9y0uk8HaS~M_^R2%W=cxCPjAEmv_TR|Saetm?6mZH zKNBS`hztE2{k)+5pa6|>H}Hk^H=n##@PQXY51(rEQzrgc!3#^fa&LewmbkdSQ1H&) zzGvGuHYXdqDW4SBpSN#l%w+eiz9=X_;R}qLzy}4%K<@x^k9=~!DR{f*9XAvKA0D`? z)^`Q=pUFW@*nFM$mIb69G-0w+=PwG_GMpJ|VNUx;&q_)Pp!)*n_FdoOje>s9Q{Yc` zbDBO;P{LwRQ+9!}e4@a37iI%rNY@Q{u7Et?RWNXCH=i~o3bbGIH^9}S&wnmaK-M~X zUNa_xO<(~ym-)?p%5EzZuq9Fq297(w{$o`o(QJ-4`zae1D~ZMt)r@^!Pl*z>bW0O} z&C49Rn<|OzHMTjsa6B+m@_uVpObu$z=5I_TB~{O>)dJ6ZG{wC_fq+1V#x0mkI;uiJ z`;`;0yu-4$Dg^?XqDWx#*bKWg1-?JLsiip;p$tk?AdR}{46r70@|qh81iW7~ZD~$6 zJl}69D4=o!Sib9STq5C;>%ewi#+wBN(!kw2w8rl_v#(dGf)Xl?+Mqq`uU5aMp#7>3 z@P*=}+UW}3Z{V&=BZ0YQ->McVczFibIJ^xDP+C7zz-BD@ej9cnK3A%MZQ3)3w(Rp3 zJW;^ra=c4hmXNykM1ksl-<+&|%9e{22ncvCvSJCU@B#&IvS@VVODi^hvURL~liINW zy_Z&j3!H;_dlo?HoUh<5HqPw4r#+J?H-16mHROAH7Vyx%Q(*t`tKY$#XcGs@6*&L3 z>I&T2agV4}!OK@J$XE-EdT#Z#iB3;k1IK5^WK z8cMQ}soc?=Y~ISMD0zP2^76Ewc;62NY$%gEcVhd+IRhp7BXC_Ow%--}P>`IZN@sQf z561l2n&xlPg{_BKwUoTY?3Yt!b!GeUr1nbCV0tYBc5l=pw!0GYkWah1vV_nunUdqU z`dho!G331e6v>u{<`yrtGLuIwqKjkzpI@)rK)!?nVF?$^6b!iJX4 zIwfeX4QRg=*zU@v#AT-huBh_xBTd=B>(}VCfQd4Q^!I}*b|(c1!a=_=q2%`@^7IRc zfxn`3LMCI+Dpx86Iq%WzTQECV_0h!&;9m?r$aE-g`@{zEI zeX41qplNnj(FT04)R$@ZrYQuIu%S(t1KW8S|8R|?=g9#-u19_0i$$yeeneUiGupVa zx5f#Y&BK1I>4xu%I6mV-jKI0nye~$6dRX_J;mTOySF3R@m5;bQiWcm?ny)(2gZU+u zHI5OiKPBJq$N%*2v}fkNvFAj@D;S z>$9u%+1KukdOX^|{mk@A1HmqCpM`^~d(9RX)*KPIm(TbX@c#*PZ+W_JAnF;e?u?E4 z=cv;kUv)_TZxp~81^l;f%K!WO-{1fK{`dF4zyJOH@9%$q|3ClpnN!!03-}}BLS<_> zt0O`=ssJavE~jxK{1xK=`#v!XAETEj&`%`5C&KYG^NX@emJ{<*cbYLV{VvI&w+UW) zh6PII2FiI55X;Z7K-9xia%7^r-9Bqhfzxpjas!7wc=f70s9oujk2mixblq z-ic;R(&QO(^2Mkd!vZHZ4s!5=wIhLXpO`8q{`z^~$7MD(Ce!b)dM}1u#D|QNBT$pO zAIZVTnr274%i)h`_9>QKJX_b7^VY9=T(^&77wvAf<>bfyE{-uHG=_5W^P8){=iSYj znSU9wys-(uC7NdOXD{>eyo@REL z{CexfrXl`&BypaTX)*Dwss!+Qr3 z@%hK*5z{@LbD44MYXRk8m;?pi+q|Y%-#`D~HxzIL@7qYA@ z>t8b`{ZIPEFff_C2c}^BoT+rI{$;+z!7O&ibv(~7yNw=~!Mr^__NF=MN4mF=!;f)i zIq>0!jkfocQ>M9QDhm|k^pu0i(YQ-0V@5o1kRuS>bW7?_|GmX>Fd2eRq_X+&evO>` zy4$6(K+=U{a`GDuNMlSWt0*~Si1$m<7?U_gMdOvN2HeLr8sBjE(|wzrZ%+EK?RCS6 zsn!vn?_~5jaL@tp5|AgxC&{C@6I!ztMt1-^>Q$UrUHOZsKk;e!JF zD6e9?@U<#0?&T*Saa0q`3HL6iySCX1rsWqqFirTkzFFrzgpxN+_6-L!O-Nnq*4|G5 z^Vb1PKnt5bn%TopG6>+-FK7UajBo!)K7fsCr0%Xr}~Li{lu$& zVpczKtDo4_PyFg9hV}P@y4WKS=({npdz;T0ywl4m18%lsex+5*GBE!?rvV#0^3h~u zP(77+U>LLC%mC9eG6i^8haYW(4EQP-$lEdIon34O`3m{8V}6?h2|Fc)5yDf2AF6D?-7`txG8K|mkeIW_fC|w zWX$jU#u?;KX^ZjLx=u}L-3;hoCe}k>xaED%Bb73Ee&6jMHG%7QEcC0CLH_bvn=`-D zou4&WzlRt%XYE)2wFZgJAH5N{cDT?ju|z}q$|S_^Y7DV_pR0jSjZGckl<*E785;Pm z%;||h{D;<#i*IUpKIZMFx)yBwHNT<3e2e!&;J?hlEH*+ze%yDESm^vPtnWn)=|gHZ zVu9=Zr!~BDSNGUNBsNyJI5hu+2L7s=cED5KE0!JBKtI=@VME3j@j0mBg-wlIVvsng zv7lMheho2o_5iOQ;;-DR;f3%HVatF^l4|?-Xn3bR$!m&`nA!JYjS?`yLM!mhI}h15u^@Df3iRWrAU={;6+v+7EjYq{e-!|FO8GtOwvFvy5AVs z``g^b<2AINKgRlSt8+?ETMd}shr)qR502?FTtiBbR>0P6gBK6gATd&}42dgb#0F@1 z#K$s$JFjbhwZDdZiberfJ+tqijRtzt@o7ku)h~0%X{#ZhlOe$SZf}0qNP|S#Rv#qt z&hG1#@iHBH-V43GB5|bEa-O62YNgkmx*ix_P~t>AaoP z$NMtylI!1-zpBZ9-4nRh5X-^O)ufzQ3VdhU$iQMX`O%M|_jh%ll&^+f*tH{JqtDgT z)x=c1Rhu!Le3WWp77qb-9GSZLteSTo(|DqFZN}{SdRoofS+@;t4}2#ieZpQf=_BjZ zX3WdwyVbP6pEG9XNjq0H^kBhljF~bcYOWegzw}5XdbLL$s-~#PFWUnc!Y>Ckn9h61 zPj^_UtN&0n{CG9hfensSf7V}3%t)7-jQQK8lNx$u!%DylidN)Xsj>gr%s}G#Y;%Q| zi5h<3D^?jXzu281SHm&)yWPFkT1SRAEY&BX?DN`GJT#zSvK_#tt_wP@(@8&IL9S?K2gT*X%)rkgr@Y z{Iv?_qco}~B){@}$QKpW>u~zU^y$~XtB8m({u`@zP+DD$L{;BUUw_sEs;S0$cI6nb z&xogvwbiI^Qj!kh$elZP>_uww-SG#uTYO}wM2+)j?O_#6j~mrMjYOpJJrGm)NmFGO zYT7RYKQZ64-mTQ6Po?@=sn-UCwp8PO5&!lh(_hwVqb4QWVAP*DR`*=D7Bs&ahrMR? z6=pS4^Cp@>xiP3`acN;uaAP%y90zASXTDn{c)l$LgC8It^V~Q|Q%6ny(P>XuJ&QLr z)jVItW!Ho!te(J!>T1$A4nzHruBW3mzg3a4|Lf^uqKzam!Ot;bdsoiE#= zK8xJ){?w%^5S`{7%llbhWS)w5KiAH)ULMmMU!12RrPit(=HoYbv5JR@h$rgP-05w* zaIFgd;YTvESiP1Jo+>aU2hPZ1#GUKgRg?((hWa_rPxMJStm2&~Zd!H=^>ungrG7Z8 z!v4_VkcRof3g&OrY9$txJK2k@ybn->q9>MhL zi)*BlGO`42GEtM?m)1xpKlH=l%ookvC>=_ST`R&Fk*%v?I@O~JlQW;j*%fL!?>)WD z@?#;7)bKt0d4tJ>zT{q=tWX1o>vdw{C_S^;~qH;6vx|yyJ$pYMg(^&IMi&`E+qTHJHlPoRFUs zZk;mzu0lPCwHM)g=e{VR&rPr}4tE@{A|l#N_yYQTo7;bk3QEh%2Z6h~$MPdpbpASj zijDW@9aTgGd>_cxmy{MN9{JFG;04RekGD|K`p^gZWk(Cy@Qx}F_pWwAelf~xV_a_) z5fwa+Gd;f35ET*ge2%gHf9artKD)*&;2oJonrSMk_c#dntS#SQjtYA4dt;BX_IkEW zMf~22N6g6Y-|~ct689kitiSpNt0*zQ9N4GHY}*hO`FB(eVD-fYpH@McxqKab9!I_P z9Ur11-?ayan9tdPFcsFr-klGz-#0Bp1ts9Q9|xH~!;(uXsz0+7*l|ztfg~0A)feq& zeh!DG_uLf$!z&98t278vgee8}DU4YOPGw@RN6x0QadhI;9@% z|6{)SF~64sn9oz@#NPo%y$UlmUo!Jlc7H$SL-@6xnm1{1qH*9Jv~R0AR!!8z?2q&U^~Y(1{gSq&w}$=1LPjZ1dhsHy$>!WUF)w4m)kHD5kr z@{O84%qMTyAT{cv*)HD2=KIioY7iA?4%o$rmA?IG{aEV(-_dtVCO*LXm$>u_+sX3D zr^l*66zp?$C-Xg=YOkjAp>ikl53rxD#(24F0-Rtdy0ehxYvsl8J+&X#%4C(A+^Dqh zNqzoIn7oe8a}}e2xuVKD7paMORs>&FuQdDhv(@mwnQ{kMJMsAp;5_xZUE5fDOBSeU zJba8>iX<(dKc9&9}gb5TPHx#*e))2F{#uO{MAZ(xHX)y2!yJOn!1x3KzA&6lWo zVNa*n3Bapc978gJNX^}u z*ze6->|pf{tM|x+&t>Mb-K<_$x1L$3pD?Kl#;y%y&O!)5bWdrjP`1<^&G4nL8WovME- z(4u~2zy|ntWEPctoS#j^quN*>iz*w1cxDq(XCvz2_1G!X#^`XL%9;c|!iPhJGs<+l zi1`29BChfZZqfhQfVP)`*pS=t$1uwMOE2q(VWu+88RtZs1~?Lg=1y&x$#bqY7r$@L z|CfMvLyqHqzq{eanau|067#G{17$b z=kap8#rdc3|NVnKW-iRfg8!vcZ5pEgO^kb zbrq+#xm|EeM|Fp6fHU_x9!%5WXY@S)+-_jQCf9Vhhx%>6x!PvBa(9f5=WR2_egn3B z>zfs>gF@SFU_SH9HMyW8yS5qmY?ux`ucLY20r<$eV=K?;=-m1wkInPOK{_~Q7-@m0 zk4(LHPDgS1A9+k5aP_nf>t?Vk{(r=VH|BvlI%gk3-Ni-A%e#5&c;TL;@Bwh=b?ujK z*U`QFBkm3R9KYZ8)DZ#L0=%PHoAb7M=*S=3rkK6|GhW~8`27mKek$8>yN>rev}~L= z>M*`EPHN$y;}M<@2hP7#an@4@#q))xrR@LL+o}TrHg{SnJ9j5|=qN6h3~Y0;U#l%T z#0A>?0OoHLjCIpNVc6^_>Nt*)`lwxX2_L zwC}S)M|G$}fc=u+-*?r4z;~nr>NNJMG};_E=yB@I2kcxEy-tU9cR25m;9C#++cnY=;k)lU z=BNC%z7BO|-wg!*P<2LBV;#YNg4p(91BDe??UCT_}aszV*tGJD{n{oAiM z&{18YmG9ZPX;EVxZxOgtt_EJaqCumEI^;E9S)ndvRgvV2nGSiYRGSa%UbafAqq_3d zfHS$G6LoduSmFbmY}Rsl9UUA$$^w8ZAE_QM)uGOme+=-H_X>}CI@D#X)%Rx{@78B+3jmM*X5mz}la2IDp^L=4c;EB&WZa2{J&Q>4HdH^pf zTG7}*M-D0rfNPJryu?rkfA*l7h}*bI!a5qV@zU`#>+dgyI-Hv~MgsRcI^lK|9rB*` zNuSxdXiy~`ZOe~8vvZx#4=u&n#v(41WF1iPO^do}yQmIz;HOTm6cLCx`OCEh$^IS`c)UJp_b%;1_^-PQL7D)mmyWNM>kF`|C_xe}nL%8Oi7V~{W zO~kb>RX8p!(L#Y=+a9>;mIJSfwY*|jJKMS+&$L;=8B zmnX_xE!Kl;XTG!felSN%btcaPcWBzAYnB$rmeHl(neW>4EG-D#tL_5V?^yUwttA20 z0CKnH9AJ^lE661p&h9V&r{ZZtTClTNdu6D<%L(rLNu9 zIST@Zu^&XNJoz0rdf#Fx48>E?qJiG^|Q!P$`J2=(zYL0r*mA?()}}SZ}Px z)n$3HGY>Q2TD^UFT{hp`?qyOOqb5FY#BujGd70!u(;T>KU7L+LndA_31mm?s#PRf` zOz=?lK9R6I*^-b<5)65x{reP;*?S<9d|Q)%2RJ?0xG$3&owk^~h2 z+5p}5Osb>I5=?EpcR?a-y{HY3yZli zGZO;0+nXD)I->2SWWqP}k~i|KZ{&7E$7fPq%Ee8X1JY#MOv>}GM&35=a+Rt5GkI%O zZ`+T^^F}>gRj*qn*1uPwW*&8A5e3x6&sH)MVXX${AR`KUOujyiTWEShT--Ux4UY) z+Vp#BZg0mvFRgke;@r1GfJL6dxGI^vQ|AfRaQknB`+qggoU6UC)`05qhKW^%RO-)} zbDT$u`i7j>ANm;z=aTSjNxBR5`U#@AjIS#BO-4;&?9hEkJR*^C9%VPb+G=5UX>NH*BI8asS7_q0_}`y?-}A(#Wf^3YB-XP3|9N%>>{`!F z&y-L&_Uw=hvXd>pDWRY3n4qC@12J2_&-kzBafrUB~)f%*h4iB zx{CDZ5sPX&Vsnz-pt;j}I*Se1$NoaS!RFMtVMB5nP5gR=3e$K|vh~Jeg zk#Wnee?Og^4cAtiYl1|^iQdRI*kx07i|@B2l+`aks)M|A;MX(>v7BbdYH{g5GAC3* zuCHFzb$@k(emCj=?7%LkqYimUWL#w?I*TD)*Z@$b;uOuan5QS=X}O z+T@Vs#Vla+*o?E^a!8K6f3ZZyx%ntg8s+l8S`DpqSDQyJs?M$wS{+xc&F2MW-0mH~ zf%Q9D-nmP+V?X>puZ^17x+1E6k$ju|f3z~9w06J)UeES9RY>x#dl*Kp4i^gN7vlNf zJuQ?_Rpb7q1(3sU+NYLKRCSK(E}cF;V^}%d>dfco!B55YSiXdA%b{7hyncVx^IC0g z$nE?i{_-2~H08|#sf-`GQej-%lpbv4;dCC;?^eve1vQ#;9C9!f*S<()oVwoFWk+>n zOLyh7lr91J+qAIJ`hKN~DcK0dBxI2}b<$U{H8^xs?)XS5L#2WV zGc_=;tu4|>Wn7Adym4v<@BXA^cx|80OVLqoQlMdP2*GQ?jY@ha7@c6Hvv_vZ7yyc|<7qTe%lI$#{ zOX=ROT1sAzT_h!&!hLtNun7wc!|N9Bmc#^V`Cq-jegCkg0GD6~vsl}mQW;k}$@+}(RVE$xUW~GsFP9|*K$qeDSLEK zDL=D}kY$}rG^-3z^p0@1dG(v~q?VC*WN9|)>l<_)Ve|(s4-C$MEnMJEbxs=l$ zZNN%TB(~3`Zjo@N6hm*M%HeJDz`m1&r8*f-Pxa{jocl;>+mqoWL$8os%|5(X-bBT8`DmU4? zcu47H;JTs+k&LN|EmDdsev%bJdf)ps8q`%1w(9;}%7EQLgGQyUU3vE|MJlJGchx&G zZG!Un-%rzSV8eT6r4D9lxWv7d|v`qqD|fVcVlht)A|M4TyttL>(CvhdFW8Pso__s!w0;cjSkoJw%tnu z!r$EB*0)^zo_HECsOX3Rvw&j*DvtNSfYSebWKgNk7eqcqpX)ylGX6Ar%bpy-=tX3G zIX*vSKqwYjROX{axWkX8ScG9ELyL6d9`mtCqrw6$;(m2pv4~sXDuqSfd{qt>c`)8- z6S(hr0-J!wYHmH+B!2cby!1Yglv2iZt0F6Q#TMiCN3uUhA00*S)g_iix7$Ce)N*cxL*5iH%KhRO?Jesfo#(q zzP1QnZNY0Mp?#N~3H2x>hRUcJQi_CjR~1sEYReR?u9K$Lt5OUG;X%&sUf%HKW+*&_b;qmDwW}iQgxgu^D(nM$HPk{ zwdmgpv^M5AuDoTZ>aE5ydg_Rl-R$2;Tj1&x(_j>#B`BMGF|w_jl`#C zj^5WxAd9$)zHCz%yE_RM!T_8=W4{5n`kON1ZAdH;W1L!>$~fmoUlb0}yvZBcnEf40 z=?FJ+R5%=0j4zv-l2GAN%0&yTd0u_%{s9e(~I1xUk6(aoRTT$hF; zVBFR95jzX@{t(CiY6S#jlOr%V$-%&I@2rYRADH`^vrVS{vRYJsnUOfwR3A+Of%3;Vp6jsg)W zw_#H}Tbxw1LO{2+JN#Wr38>{(SK%~i?wVfX_4`xmDUld* z+x}E5`_;g92buNLc6f*GXvRI`-#vEcd5^N2LMsfLj`2e!fqxAn{b8m* z4E2Yp{xH@b=K9m1R%K1+ayg5IiEj0Xwllu=PM_c!74%fNG#)8jyGIvP{4Dr77&&FOAof^IL@Ty z`0LxF#4_$j#D*oKOZngbd(D3HTN_Kj$X+T3wqM=ig-Z$6pW=`-v5b3@IeOcm5>l`! zuZn5EU2wbvRxPiM1hI@e5)kmrsRWFyo==ow8F$vX?=7DaO6Xq(ZgJ>`$FLGgXg@eD zmT`l2E$OZ(rcAHLMKMLfEL#@RMC*mu`y`GFaVzA7sTQ*MJz~l%zb+|2<}b9#axtCG zhBy>bX7}KHF;#3DnNtA8L)%XS#WJp~`GNak1-Qhud(!()>j+aVDxGL3rqgGK`UU*2 zR^;3o^?0_lfV{`!4aMXo{K~TsiiCB`#9|pYWm}JVs|$${vd>&hUg}m43y7ijrIDB_ zi*`O<2nMn7i7xE>JSz&ps5+L~PAuaLTxyOoD~7d-ol|$b-!^0SlwwrAZlLWemT|Vc zcyvw?D#3QE(oZboOo!Rsxm!ex-GHv_^SbXXCU5P8`eKUQ-k4ZS3Z$N`#WK!nyJ_jN z60-U#uola>7_W_^ww54M*JfTzF-5W(#+4wl*+zlaqtCCuc%y_WWG%4~6JzD&o>JT{ zs$c9SmT~FxbQg0<={B)xs947N++9#VvJ~eVo39RH*{@ONyv5+U{XDUZlX;ZMQcH=^ z{&j&^#x1@6{ld#qFtl%qR*Pj&s#u&X1!LLy{d%#Cn`{;vdA}65kIGH9h-F-b+agU? zDbHBUyNVGm|c2CDEdYz`bH}HMl1S8Ec!+*`bI7&06Upu#JpCn$pQ*F z8ND?9{j^9}@MWfyFuWg-ETC}MiBeMvU@NyI3rP45DKVu4OxFR)FdFGv1@+>FEnKeI zsT6*-0)$;NL!$)@D;MxaTs%8&+z=xm!C(Iq>g$CrOsWzoz#_e+6bWF~N_O3MR+`cB zCy}!>?k}Sl3$L+F47r`nem6TT;;=H~Jf(VUD&yoE-tfgy0>=lmb&wxnt5IeB$eUl` z{+k~kq3qxL)&;(Dp=AH|tv}SJTcm)~dRx$8`1KCvk>LXPjdgDR`E-8h%FhDI z=Ed!Ho zjd*(haWH)!?}7bc+R}65&j{eB)x&;f=VjcndZ2(1$<)=@f4Jq9hItFl4UC=gm*DeL zESw7u32@dvf%QJH!m<6J{iqH(`shNuKbB9nJAq-QI2B8_Z69DbZ{yAQMJ=YDzf@CLsC(tFZ=`m>cy8l}y>iS}_{`MHk6 zM$|!e@BrP3@9^W4V`06qG$33rao=2FV-(UZ@QR=@LQ~wb#vKh8v!tbHMotiHW3;XNCn|Q2l{Ew-O zIN#WdQd!9&s}J#3rsPi?zc5I^e^|dU{9krBOy$3hhI&Uw{WF37nZfS3`$MA^rlf&> zb$B2D``ZKO?l|MWAGy@qQFy=LF*YrH2Q*fjqnn#j#nG1oHVA>!+uU9x!OwhFW+UAx za3)W>=T-aj^e~(3kcOk_SMybc%Y?ww&3g{Ujg-I8O?7h@|La%N4gHHhG|T=vg!SZA z9^Gkjj>kVcaAU=pvLu*yA3MC!LHhsQrXMM~jOrd&X2h}^4O%JCmd~o3Bc&Ql)#}Rs zIyyJ@TG7am+d1oZv%`xC;b>@jkK-z3m*2qWWhxJ{55nPpPh}Lch4h1hvKMZQq#(K? z|JJP+EXX{508yr%nAVok#u<5(C_%$ch@~V|ObFM(ldr|(`ck4wChTS@cR4O%Bc2+J z8mFZo_4($&wJMKqsKp64^<66|`tnqSzE%VksGW3tZg2ziqvgj-dRY z6~MK|T=oe{MH9LT&#}W=1uzFD7e~9D&wB7ir%{9HXZd=;Ub6= z#Dm*JX{e9yPkGwqnM*W_u_dG|#LtFHq)ejhka^>^bp+S;L^A?NM*XUq+3Xr(cd%6`YF z2Mt|W>Z#%(v~1NN=U;r8G3LrQ_FqH6h3|7eS~z5rypntw$_PYZj#dK;xgGkI&Jp~55caJkRF zRN*sP!`pTEF|%+wf=@MD_>9WrIjijl<@PKiu*Wx($YCTH`N+m z|NZ~mn?juIt?Egs9jA9){)S%m4Gg)Re{NsDa#X+L zNheexSmwBh_&B)#v!9}?mr z*WXcq2{DJO#TE#qqyW*;3&GW-GETYJsIa&Yxs`h@8c0dsqw*-C+u%A($c>uFZ#N77 ziY_+5{l99Z&z$kXTFq+28?CPTtW zMg-#itH@vUB30nr{pz?@+x0JpuAxZcRB_og?XF11ah@GVt(=4SRlnioz;9$@BDcZ_ zR#R31-1%Xc^;*oA)eD{jmpwVKa+#pnkvU!WQY7Qt@4q=&dyn8$uPnC*q95*7AI#jg z2&hzJhiHjVDPe2s4iG#>yCNFFtt~m0vktksYr_yNfbu74EA;=PP9mD&{y@|0)CxKj zIS@cN1dqu(7BP$1-yFP^7(jPZ_R0*u_N z9S}3Wk8`I5`15o@G{MBCPhtKA0hMmbkFe;{^`TJ$;+Lg(e{Rke@#$FMcW*q-yR>ME zQb3q^6L9%6;fcFa08ep{znCh&l)JdP!dqn;Y9o)#~- zyPjJzcaE4UIbN|#5}Zb+Ry$`eruye8gRcsx6w`9FSjN@LIb*UkS+INSJO0Ete1D(B z%zMcKD#uAiA-ZSXcJG{IA#i?V+flq&#@%-?%MqmrLeJ(k%9@KQ$rmv5x&VKkCGFVn zuV`^yfDMcTqDSrq*K?}e5KL_PY#JjI6A!YV;dQ}U)!X;%U@_@Y%MM%@NdJ!UVSlh` zzwJOA`g~=$^k4$vD3?D|QXLB7mn`6Z7Ljx^CWv1VI>H zYe2C^M3qQK_Kp=aT+x7f*F>z+QIJBAuUt^~c#??x5Sm|73f!QIr6;3Bw7*@nixNvFo0)}23dntDhKOWb>$&yDspP`1RRMm(ZpC2&cjx8sAr~-z z>#Z`2z9d*QdH4MGWs!_?`aW<`YPcZpH|c16HlDv~d5rf(!Rh6cWak1Ai+AS*)AzsB ziKuew^(N;8Zuyo$ryt_~&zm=I*kJ+nm^Hu<=D#>3=&vvTI8(_(bDLzNvAE@1yjpG} zeoCc}SWMWGrN0>IzrU5&>X!eY?Kqh@D9&YwWWQseKVz(@%bL^d-y+(e?dV4^^&_16 z5m5aIseS}iKfPK+(BfR<%VEqWOegyfi2(w-UT0cUK8q{8&MO0JRR#iwI zTK%!+uUxSAYWE^=DchYzpVlsE|E_is4&Bj{GDW0CYJQ-YG@h1)A{n=I;-&$~B~)E? zeUV7UZ8y!Uno@!@=$hUb1LZ+C+Egm#fAtbK=CZ#+UP{$MSLTRhoaLIz$u-N!Gh-mW z?`N+el=$PDh%)HWjmmIwHPjl3Wt=2zXzz=qsG06s<*P`>UADY`bXO_%2*c7UV$yJq z8dypsMB6&(pAUyhdzJFS?yAm?b;UAnMc*1%c9w$6Y#ZM|EaU3lR2~~zN@q+%^tX8C zwQsvh|B7(8^cZAm$Zh=(;zGrXi|zM`WWRrSt^L7k_ZRToss($4rj`E7urr~GRR3%i z{bti|R{du88^8MgUNmF{xSqRoG>`xFga2+u5oWL6Xx7ii{FSdUE?Fw+Af{3Px?Xqr-{00^#D;-Y^GPw@ zypxzNZo8}GqvE)`#^}$}KxuFsCm<7tp5~7E$j|$PreOsSXgf%A_pfHw?*{#D((gw7 zZq}cD`ms-I^2{l70YoZ|nffQ(0a z11lFBCB80zk=f}x(JT#fX+!}fUTu)(Icv+eYLHJQ4DGs!i4uF%B>%5&(C;SwZq!f9 z>8I`V(|Y=8KmD|ze%es~_cq@uX=ccI|GB^a%0p^G(sfT;OJrQX8adUpc|7O4X2tGv z|2F9@QC!a8`kqw0+bt}{H?M%QWfsjOq*EN(sQ?6N%Yh9f{v6uLaC`-;KF5kFk;@?k${Ca>+OuDY&5Ay%&7X5D1 z?^gY0(9gd9m7Ueg-u{){)zALwWry{%$NJf2{p=l>#KY6s=dH9Yg>JO|(R{J&S1-ul zev>>#`&_oXFZCz|kKcRyM=|-$^les3elhkxaK0aP-eh(f?>-N+KU^W!~0=WU|q~xcj*#YW+0JqPSw=1q+$w!ZZVONuK9{nG3hMjbtS}o zbk`J7<;xb0C8QhL9bbe>oH-xNCFIBUF0PRLQ@Nkxq4$SE{`crQvhLWydj-7y_-Tgw ze-(q8T+Jud#~IZ8Z(mCP_xHcQ|NZ@!{&oy%Ysl^W4`+t!-&ekf5X-r2wae0=!;*%Yo*#<52G4mxd?oz)=vp-xDc-xE&3A8O*tGUBFT^GQWb{Hlhhq7oPMQ}IG zvwbiUX){&tBt@!#3U{OWONei4+%{DR{M6}T?;d!*yPsQzq#**-bzNILU-bqz#-$3H zuCL~6;h^8;{b`6Ge7##!LZy!0-Axmm+T6AqS4l#SU6qffqQZ^a)6e2Ry}9Gv z(Rc5}RH|;Ge=44T?WGrD;`7QJ(*(QW$A#5T#N^oJsZ151e5>_{MQ|z=-4IF^S;fpr z6_dlBV$?N(>-_L#!WA(w4%)^f3&PT_?yKU(GS0DJNSAMd@M~1zhQIh=qTr-^^i)+O zrtJ4emn5M?(#WW1nV3qY^=hCL;J`WVshFGxCTrsb7?gC!>)i4!QAtU7{svXCyjundV0aAHO3?pbZh!BPBKXyDUF#^75Th=* z^r~Po=CXZxLkTIF2M@U_APHYb#7<1%F@j(>%j9rAPEf+FQposj?VPf=UK9~|Cbz_Rj(K~$eXJ08G{qv`n!TQ35liDg3gZJ#3caH!qWNYNG8R`a zoHd9QoUK0O$QDY-A>E-vtWaKNGvzoiPQ-np1vm_b0jHiC9Ag?SSO>HOpV6Aikd)4BipXR-|uliiv$Txo3T6Ypm0;D6|(Co+k$dFq)}ka71{Uu4rYgp zZV0&64L^zJ^HD5zz9CQrzCZ~XSp}QjL}1Q-<{tL?z3w-J^32h*p6+GKs==w-;8)F$ zkCsr$?R_#8y17r(H3=DmmRV{r4I}R0d0>E0JwreRzJ=iu5|qkC83F{qX6OF&mW9DY z-%t4d%+a$xX*CGc_1M3cW%Fk=$`I_1yU*(eN#FSzLpoK_2qvyJR`-GJ@15Hae@8&! zOMZ!jWChB3cWBx#1>Vsk`?$j$0Y=N4*0J_Dq+Vc{nqFi@5tQ_s_lvxh^aU-*!tx zetln@^2l$t0vNt1Q}cLXTaej`bVMh%n_h36N7v-WY6N*Yj;h$1!}HGS)H$Uh(s?g* z$w7WqvIWtJ(}QC+Z_lP^g)6YD!-X`@Z1_bU`0zkP{?b`%vdOoh0zs|h_pMVqXCvX? z+__jp%F_~+7P@OUf5gWtUOY1}*0K8)q9gB?OzdR9d_HW-SZuI3C6h02l6kor;?o-4 z#D>yL(wYU`6Ondn;`a>7=_liL^Vkf2d|U=%>ZvD${#_nel>D7 zbjaXKTqVo6Ln0!KL_NtsVa`eG_lszEdoRl%t=q<9BJ#}{RG@+XYs&+BL^7`7iRpa> z4Pv`(m!1`o{h4(G4G0j;XCt2P^=zzlayooi4h0?g)BBp`GlshF6;ZxppKCe=6}8*h z@1NtRA^*pRt|Ib1*zKaBdIqgmi)0*swz%_C4euv&nmclVvs7HHf zK9kQ^y?}OzwpF&8+AoKKjvZTxh%h5RkVA!d#}5^e??LhH9Ns!5yhG|hk&FwRAGxh( zE~%gVhKtB2tJc9>=ncZ=jTOnb&eboy>y%5rNs~v4C~TGPkO#lOamw)`*{@j!U!qgf zMC5z&cHdpzq($qbF>~4PFY(KVy6nK-og&KrFAK;g->?-JAMZv?7G>m7Vd?Tn5&07b zG|uNCnu<(h`6S<0c|3o%IO%bMhzK>g9rJko`P&-ze}hURxSC(9w>IolX~ci~67v7v zzwL867;=05grhaOiS1NN>dH{UvHeMrj2kt}#Ob?A;83hI*!N!+*j|W}u4_NDR&-q% z2hnxedOe|+V{bd|aou_=SE8}2{_%2j1@ov(*pD}V^^FBshixiy8w;BmXA{n>i?gFQ6aX1ct z=r0yg0{ToXg@E(mLsOBAbDYzAsFQ#MY%`~ZSO7hRvXz2h=Ve@{lSo9yBv(2l3)c08 zqfPL-bOjsxTvZjI{KfnIws^E8M znaB(aM3mRYVM_!7Do{HQ5hcux8(swueXHD0B;)=s_TD_IruKgy-zYMr;dIIzGEX67 zhvdf*xm?N5I4Tfojtx?}P!&in)-FABR>g{*~L{*58`69|--4bZmlnh{>-Hi0hDt(`g)ahLHS5q8SCayK1H z@EqPSiGXOua*GaCvYodfnE+tqgXaxR9@kbgg`k`=a-9wpMCw~FlNb-)xAWRE^l$j% zcMmi0{;dX}9d+z&=l)p)S(+bq*Z@oy^_Y~2_e<(Ksb;o7;Na_cAv_;)Dw9ANeaR4P z;4|{o-ear_NODEZkAQ5P3@vn@o7ZsZgBXJyV?@ab!weWC-#vqA~#>x zrUcwy{8MRydr`QygzK@Od9gtn+_Q~FCxqYob-xYwW7_mn+7yswj@1OPk)lglEQ#0_-BeFMX9=^z7cS`V{v@)L{PT#ApF6DQ0;tL3W>e1$turo&t ztL)#r0Jw&VDL4leqXAvuvp5H5Kd|taQ9$Hlr`L}O)1fu~KcodjIf~GIkbKJr?k1w@ zf?x-P2ItfFTZj8ubX?=UFCS5fH<9u9{ecLnQ9cQJ6t~9|=WxjS6g^2EasJxuIgc!z zMf8UgB{G6?$zPX+|KHh2M!<`G8Fr+sxwX!TER?sL`hfO>yIap6&7#ZP<+qODWxvY= zu4SShvUYakQqQ!{B(MvN8tYP=NB5KI1aOG}4PB}`wES%mMUu=t#K0*u0s;;wPFFTynz& zSwWe}Thn>NglYfu=RL>?ZGGBZ$Qu5Bb{Di$yPE+X)Pl^E{k{X*Hrr;%3d*a-zSh4( zi`5IQbtPPJ_UD#alp3O5!4zFeqqb~t0hL?nF;|yX?QR}j0H{H{-h5pupV9k7KFq@& zj{v7K>ay9PQ$AnaTVtEl&DY9@{MhML%XBH-ylhV%m4CUmRF~2!<~Pfu@>9#k0osx4 zYZ{-&+mA~fec4i%(!y5xmo#d%G|P#5@h!qJQeo@sHUi13mqZVQqBj>9A{&4Di!( zHH?R5KtIjkT)npnvcruW?(#VO5`GEKZ~FH=DvwwX*SoxK`a)EM^xlK(&xB4dj4kBZ@AueVr@K1mQv(52f*GYV@`aFKs~HXm*>Z*{ z*S@R{{KJ|ah>!pad2G?U^~s~U63+f$JI&Tdh)?+AuA_r>X~1)-#c2XbpKl=u@Ln8! zqW69R$n@Am1a#lLBrDbvt(0pqw+nC-F6MgoIY^98MqRDCgRRK1WaW*mgqy1Qx+)o4 z-An5j#{&RRG)cWH1fW-b_N7$34G=I^Jhc_Cdt&1|{C`2i%9lrZ7}D3jv9OUJC5BcdgT+aH}Ekm#cUR&IhP0<0*nq5)W~NtY0S#bXHp+7$npug?=u z#R&o2_if+%ULe(@X%*540bcHi#!MOj-kxTI0I;+yv-@q zz#Vg`9s=B4zyaj0J&D2ao4j~kpK|_=m5;Ti6KEZ;}6wA!eX(x z*0mGZ!{=?8zK*~YOKNrsd%WGRk?wISkXsg# z%R+WpNG}WdWg)>TkYQ$h)rLSa_+u4(GV^2h``s!2pG)SNHf%Ja!BKVdy2rTW|FkFl zzyEmHn5c8xy8IKPM9=x~{#n;=-q)o>bp!hr@JiTllcH$@*pC|RD z9ELoCFID~P9~p1HdZrPXO?)M_bx%bNgslrkA!-X7m3zPz_UW_kHMNyf8<@dXMvRx* z(k>Q$u%&%oyKSMiwx!=E*xIt@*2UBo=TAL?EpC6#-jCYqugDW1Pa6R0ikCb~#% z`R{`TTc3Y7AGW^i^W=7 z0T8qoe4kcLOV{*?C;WQbN{?{Flnuk*yWYb67aWJLw79*~_Jh|5#p?pIZkV@X#m`s* z?qP~y4}bg|7%j6XDT zJQ6^iaE8_ZxW*kv4FEfz`gz*)tyP+57&!a+1t*aNVxc>~;beE+&~f%2g38<I+W zX`a;!HIrWXA_@#u+jR}nc2C|GfwXf$^91csgr1iV{E7_EtKQc&5AfA@C;JB1X|@Np ztkWd=Z@#bHLU!?`D|ckap_B|9?{WuPIuVJ|H|`aQ4f6nz6#pw1c1FK`tIG~kC6#H& zkaA;s{eH9@_j@%D8BaJnD;E*_kFhhOMdfjDl) z^Q*q*9Jz?L+uXkEHxi$MhFuDg;erNR)lLwR<*q|UOsakQrqd2k?G$b}AfhF_EBz19 zQ2y^NLZaF4%r+`1ux%UeSGW7Nlp{2h{t_8B!n?P(Jp%l3{H;~6!yd(D$Df7-Lz)Ii zN=X~h-yCGI==-y>`nnkD&}o?#RG}<`jDWxC)AX zn-FAVH5RuYZ+Q(s;AthPB8hTVu;bs?%cxJS-A~%sXz{uBB8kt#{o5u-*QEA9>Ct6- z%pax|c0cwtRl0%cCbk>dZf1vp9VV4wWQLiY1}f7;`F8xLLk|agLvi}%7IYhNIA=d} zJ0d~#dLz-vznh;qIfy2j)z6D4Fn8b9V1km~P4s%BySKNU0TIbxOK7)$4bra@PLT0& zi9}+*X{p($E5vww$k?8tB5GbvY8tJQIAs&7ES`zQKR}U7FyEcCVZMXSlA8Ch6ZiU& z@MCW~3+Dfm0WDzu>(2EM+=J$;^+o=)L|Skk_GR399>6O{ohEGgU{r(b9o`SqY;c_k z38CQE+p=Q@+U4)tI)~DXUx*d(DE2maO~NRX`rk7}f!cpT} zymAz|@ga@wj7>m!<&&STI)ZRwSUm6C-pTdJMi>FDP4$;1Kv?nG(VapbqiSP3Z#+I^ zM-~#*Hpbn$-cF!E?)FGTLuqJ70{y)gszt`@?b>lS1KY*{nwWMDu2ViShYHGUM7vzn zdd!X-dOFeT=8h|9;`-V5t~9Z&m{r98y7(N*B&zmIR_m8df#$gg*rxhlAJ8=&Uba&_ zjEe1EGg|&iy7oYWJ1P@OkQc6{yDDC;^%?3+Eq_PAKRwB zkdHkL=k<=s+b(nOqE@JpMH3N?d%w>spuLsE9Mvu+8eD%}&8K^aK%cX2qg}B~maeEV2 zA>j6+semt!dMSerRp%E#w>f0a8a_@&^^ZgAi)gxUM4xP`i=_EYmsX!t%*~=YA18n6 zR`-sx+$$~li7rJa-szmhYh4NX+AUqc!_V3$qxAqD*#eta)qp&>6iq^b$Nw_<$=`)} z(7XNd^Pr-hb9Elw{j4|XO1M>FI~y0|fiUB`@hV-a+fy(+57jTHXaH3-JQ)Ghpu>lo z(*SF?3@rp$<>6M{X#n=%$ejqlLdS^)XuA#GhX5_>60t55>r$~U7weL-E}M!=$GCi~ zOUSy6tV_wdoUBXAx~!~A#m>*(l>e`eJJ)o5qmCNc_1D!at=F)Q`+wS>|9|P@p*BRF z^R78Rl>pspgq)V`pjKuwq6GY^ZagByE*O|Ftl81CL=vv@K*Xsts(3pVkH_NmSUewj zB5K_R__)k-ITK#z!0cI9(6Q#}jP3TiPi-NhLaN`Ka)3uX8K5heg^4y<1hD}>kpj=y zIR{b3^=}%&Oo^U1usECW(`NP=*iazW@F7{mKD7Vt0Kk_0yBS<)nyms`R)IA$uxAz) z&BCVH{u;8?X0STvQRBo_e?bX6RCJ^gm#sPs4N;%P!V($SA`5F|VUO%EvBStdHj5T# z|9`NTXi)94GllsKB9gVe1?ui*t#1>h7x?G0GuD>`X|PpYP>4CXZn(Ub(#VxH5!i0Y z_k93`uhskxUut=9orOU}-ZpPVUC^BPL^SDh_%zV8$*-D$t7_)uw(>Jb4?9KagLmj_ zGsnjl2yxkOFc~y2#?q^$_b(Eyy4|;Fv<6p}t^U=32!s%d!h0%cXqsF>*?Vp@xUrmf z>~S%;PO9I|zng(xryDdqI{|IiNo_3LZ((+2&DYVRPLKHSTL_EJII9OkSzn)x1+cLKHkQD~8rb-6p&RtS>Og#95#?R9-c#6EZ zFkpWUnXtpE)ia`XBV#>EYMCO7Csy&H4g+wvf)#Tf4N5?k-ROKDfti1ma{{UUH-{mQ z8XQR=;L1K?D6j`LpOpZ%g@i_+yJ~Vb*x5UYfF0;l8~pxjv&ZXF0hYP>9PC4Gtxe}F zPobfF4Ff%DboTm?29(CJ^NsbWs*ur=3}XD&R6PdQ<)))1?aLriH`(eqEQ6R!^$w|J z5v`Vivu9U{s^1>9!Hxi-tC?sAuFg^cm9wC87L?9{)>%+H3wl=p#WSFJ7F4eSx@SQ7 z?6P2&4ZEyVmL0P!*=5U)zp1;;Ky}WmW?CtWMXHNB6h$9grDZSVl2oUaHb*6CYn5=Y zB_3=E2wNh;mXNR|CTs}`TcX02u&^aAYzYioBEy!@NG)%f(F|G4ho8uh1vRn|GHCV> zERaF-sV_fBGi-`pVc&nCxAg#ZZg&m%gDZ4(Y`8&JQj-c5QoFb?hP(EML~##DH~ZSf zEk)usXlM_YqF7Y2^A@mW?e`}1pL~_-j3lBRdg0#h+mXE7Y3io7A9U&LYg!fxd70RU zsD+jPEb#wvQYG=qCT7{hEt}Y76Td2nVJ30RCYIU6Gn<%Z6W45Fn@xPPiE%b@&L-B` z+#Z|zW4Vi1ZX;~se*xo#%;(avkPrImOWRpPCO(@>HAW4=gj^aq{bR^}s!_;o#Pz$u z#w9+yau#q9le-fH4dBWcT_z<7%YjJMC!lftwYIfhdu4o4(%wNkF7b`Pf- zb6d{~%nO%qMWEJOJ@%3=<;GD@iQ;8%(nc;06|S!gx(Z+TufU7K|0PX{;e9^Ue^fsV z_ZMa{J6~%hUdhKUtu}cHfW1cF4-=5A>~+_rVKK3_FZhe&&wB}3=pE+|6ZZQ9ywv)u zb31CxeiZCH*432+Ih&2u#8bX<8}8LFo`-_3%hQ}c7-mKaIT#A)ag93;Ko9R;Hktx{ z42rS=_%W2cn_mTfCeN}IpZIk6!!M&jYY=q)g2DMro*y;3ukT6$XZU-52K4LohcCyR zIWY2it1LthJ=S836Msc`EYGB}3>CX{Db4?ocNr95bPoQy?VzZ|6Vs`ZSov|}QeLPv zF--xNN>VpmH=O?_!72s1nn4C=XPy|f`R`=D`fXdCsjR$y8vvmfU(e`L`&aMuZRi5e zevWpNm0=%_--f@v;sEX+zG`vWmIRujv^<1d&9fy-f8GY^=#L@{L*m{(>((YxeuCzB z-$d^-({xjKdDYmW%kb|DCd{*4n@qKS)E#vt+=DBg<$+1O&;7-uz#jc)X=R?Bi2EP% zLjM^5ZkN?5f#)JOzTX6Papba^Cs3M*fF;NcjvE-eJsx}5u1fG@+0MLtcSZu`@;PHy zGn$58FMYMlg#KRlC7#EcPC*LQDyGep7AaKeEfKlJdphr@Tc+?Q4Dj`^5kK{2%@CvKgVy?W{4w5VdS*tt*jDeYK)NmM+Z= z^}z|ESkJZ!H=PjDBqx-j^{dyuj-W4@|KXu~Dfka(c>X%2ae7TzBe|zlUA`g-+#? z?jbj>!u}W(aX(F)=4`QFmNd)?^W$Ey^DJ=!&(6OQUTq}m z+>W9DlpK&;anhAQY`iT+8F0cxX$T>&`r52;tc=*}U$y=Q zv$EIkcBh}ohZSaRc~Fu#(Ex3G|M6$H zQYib`Uq!l9>U*GX9s$M7!90YlgX=hX=8>TFDUKKL|Mlf!^FakPgeAHpz+K)t6%fOh zWozRP)bx(Ch2N(S{y1XQrnX<6PvINQ4-2ISMfUkb*{e{rEAC!E-}i;DfPoI!oCkcN z$Z4NoQk?Y9CBQI$hS?i(G_ibCE-GMr$Kn5`9zXwjz6_Pu&1b>na1A)wuenU66oD;O zU`rX;@v3D8vUL<}-2_`#!G6Ei&HlGV7wq>X9!9)6=UsysK+?2xiLRtNSo(2e6Cyb@1VZ^_(d_GBWT;;VW}>SLaf=E5ByD)Hy9_>p6%-LG><6X zf}3jG?W21h7!$SxJ`-va+&;)q0`}qlM_tOpecw?=d`9kk6@_+_y4^ef&L*fKU5`+) zRZN=+d^SqETkS{N@aLze-Lh3e%_^a2CRELave{5K8wzLpllL$hUTc`R&udD59oLmq zQ*D&4+<}#@q}2HHFtNlOvI+CFG|?^LqaVMxPfIwu_Qkpl@3nlXTRJIieI|4)jz^!@ zZpRO%5u}2SCkm$KAiZ?pa^D|G5!U4!aR!l_juQ46jj&eOXSBWsJ)`@O;^`2|rTf&Y zz@gZuly3n=v2h2|fe+f+D@ZVnr*BTD-Ei`%Fni|>NkxqJUM03yBPZ9v*Ha1b45@gY z)ThIHyc8H0tfK{-?8g}?*ry(~iW6L!%3sM?r_CoP2*>+N%|zm}&FhFXLzfb57&cEL zhNg?mZ=!uqUNyK*k}6RNLuA7C=Wq{`Vd|WBO-5MiHA5F0ZS{On%ts}2is~@wb2aIl z>cj;z+t}I2&Q^9dv$LID4eV+`Op$Kyt^p^py*qdRq))g1P6^)F{>c-Oa6H%!io)?= zc<8qkJw7J#x;Q?RZ;kpl953v&V5bc`t=MVDPD^&$s_@M)d^9Xy4couNwmO)pa~_ue zB(|nZ8PyCN3Pubi(}wD>H3F3p!`Hz_f4Et4U5L2%xR|NJufg(fu>2e>e}@Xc2h0D# z@Pn|=W9Df-RGs_#AIjs3!qIB<=(VK{&j#lcC8|^PH4PDyW3Z;B-_Ne3b!o542B0p@ zzCre3TDSI!3_{%+Y(`qwR&b<(*0s%PAk@8io8Cd)8+hkvU7YKN)2NF>KAhIg6*OFo zx;ZP&o+`wb8&2Fm zUEqSf-ZNLF+?FlJWy^Kha$dIFmn{co%Z1r;VioKygUw~JyDYYs#s0F`U=};fj`vW( z|DVS-b!yzP;pPUN)l1d7)}8mCb|C-z`M>AmVLnEk+g7ttDc!1SAY#yR9fa?(!JlaM zr(l2qN9j^)!4z2-BMWn6VUR3Ll7&&SFiRGONe=qt2+0QFX|1Mv$IxViw8-o*k`ZMC ziZ>v~qxD|$dtC&rEcFGkr;IE4Yf~&L5j($o53eTCkaxMpJ6rfgCjlsB#p|~F>y}Dz zgLOW&EIO`vaaTA7(Muqnk$=*qm5|2<#6zgCb&Kbt6`Uf(F~SQS|47!MQ6TGo&<*NQ;5 zk(Zu?J7;fm(ma>yw_cw0r;IJEA(ZdCct9=MxLZ-gEmHmK?ek~#_?v*;%)St6(c?FI zT)jq!tfX{jeOEooCU@k1BHH6h*XmK{cvof$0bc9ZMhGgkttyzEPQpFiw36|C|M7Z$ z8*>QXaZQ37)Vnpzj<(jwC5VZ*EUbB2WF(Kxg_?3y>PbHt(OMa{vjYT^3MR~}49FqK zNerE&M^kZ4lXHmu-h_`15JU?5X7@25i`HQ~+acrJ)5jn&ou>9&(U$It?H8O*oF{z9 zwuTz>J$cnPpETe>nk*XvHS03lGm}$QGSF;>n$2Ld8E#m6xlngj^g7$WmhR@GYq2*Q zXJ}Eu2CI-p-YE#28~*&{)$}$&(g=bNe`asCcNikbNW>KHfQ&@-uQO+ji)j{5oJ#|8 zx1von0~&XYC*hasEqdwrkGr@3xpv+hT?#AQ`CVYont{+$tKJW9n9z1~*lZz8{xLOy zKnKeip(oQjNm-{TyPN3tOd&LOXBlPf5M(DjXXHb60;xSJOM&7@t2i9feJzn zt$^q)Gpo{%rQVZI5I^uEk{aLtE?l)wd55NvTCW(?F>%RWp(}+(v2V zQWIn-IrDE*y4)tpQQ_=w=Z}OM$frZcW-bxXk(*5tRi-67ZP{tfP6Ilo@{u52I1FA^}Q3N%c08nBTqU zI2lm_QvMtXP}xM7O@`fs*iDMv#Mn)a-2~-TW1E|ft$DiAyIcFM8m32$;3F$@i2P@P z>1sTWYrx6@ol8#Dl}KvBPIB`6iX%FH41J(Ht`0u~c?;oj(h z*_5+p2Vgc;;a0b2XR5+x7+4JpyJ2BDENq8`^{}uXwm(OCnw!`1wUk-B>IkzUBCgCb z{@K@J-nmO)#|{=^-du|mGS zHMD>D%A(9)u@DRV(7-}4c}T=H;04ZFnG36PT<#6t-rIC)6KDY$SQjt->lW2Qk4M|; z$?5wSZ>i);*<31{Yh`n>Y_68g<*MX*nOrcND`s=aY_6HjMYH2=?xj6ao!e0ZqX}|0 zO9xn<-|6%$5ZGG3kvoURC-5MX2iRT}MuRA^Y{i^y8)0eQlUI$6PvGH_3hl6O__eg@ zq~5fxxEuTZT5}R*F@@8G*lh#nOy0*pO+0BnzMTEJ@qtWgmU=7^5MZ17XYkdJTCieH zN~a9e3p`sfS75JgFf5Iibzg8e7UToF+RiV@N#RSMALyGq8qlc77bEpkdFRpq>&FuX zQPRn)l3>O@I*;qA;|5yaNaUSY$kiM1B07hRCMEIV(?1Tf9w4G8;$eqGzO<*0{Ry-e z`@VK*nZ(a&rk@nw6jm*ITP&xe{~jOw>iBMdD*iiFK5Fn z_Izn=dhs^ZE1n9o-rzt%yB`UtKXCIvy~Fs89=!)7^2XAu((4)`N;fv(XCjXxu!E>~ z&^mpyp*)EXw_186QA2P;j_psO`20B3b4b4rHq}X``1>j4x|DXc{o_m?8Ze{KE`Q%v z=UXPPoB|NcEbN>`F)Fm4!uC~fT5U3G*(h3X@ya>|^%jP1bKlc?48;^dJ;c&>BFg); zpjjp`QiGiOh^VY&{nJ^%$XqW4nL}7kq4&!So*nOz0{;II*CegcDvg)*{nR(r`&8%A zf7)mK@8|!gkEh5=o!eexw}!i0H-x@gwdK_0N(gk&l!mnG$px8P)^1|$D%S2|?K0MG zW9>TD?nCk1B8aVY>7(&rc?w7k-9Es580wsDFeZhP01mMiRO8-WOd`$!C+DvntxJm; z>Y5}Ih`~^mH^tk5bdIXPiA2Mp0td|-suCx?%2SoNSAlL+MK0!2z2WLf#Qt;n392&Z zFys+b<{(2$Rp>&er9*{I*^Ah9pi*bmMl7h<1>G^BDt2853o3V_i=&}(2h}^Of@h;1 z3>7?nk-4CfmueHQ^#^x`b$3{Ih;^4(cZzkl*zvRSP@7b%<|JrZdIV@|wd!^k_@5N; zBQQOH$LY^CClE5D>`~GKBf%b}0!CxNM=Usr1uwDSCKmj}f}?;NeTPDSwcveA95Q&= zkzJtw#_P@<*FTeo`x6QFCI5DNmL19Dm2ZjSJ4()b>(y*Z-s^p48pwNrs;6vKCMTo7 zRu$A^q`+pS=mqJ9(>*BLReIkD>k&H68d67W9;)!^t72!+u2rdj8+pzD7ZyA zoc;qt|Hat`9hM+n=xYb*LV4P4cPecdYHtH+Lr@h{=|h8}Y)BuHF--(%M9b(8kVZts zER{~QY*H7}i9y#7YEfxLs~-lCR%B@_SXv8~_JXCwU}-Z{Xf+rnQ6K-IWtn1GCRzKwQ{+E}=}?}h!yT?5b@F{A+6KKJo|0ZBy!}%j zVyi>FP%`HNA-^KNuXX~}vb0m#l1o(DG6AU`#i;xEG~3X`1MQEo#lB&HOP@`H-W+i_ zM-GP)cKj!JsEx0+=_zmMY$E+kH7EUjnnA;ole(9s5SM@1^t3$44ndJ}=*_=YIq=oL z=E7PPzdnSF)<{9o(&n#4mi|Ph^S+LtcE(}K@IcQJr z9mFX58wcb0%pF&>b0gs|R`(B&#s7P~wEi}a$hKJCN(YlBf4H0f{cVKXdf@gn6ylSX zZgUTK5ZS`QGY?T%ujoa#zs7sojH|V}Wx>vyCQTAajI)MlE=BQ)t8M5FexOjFx%7JqL^{1bAb*@WYnUV@{wGct)U&Hg-j4f@9@_QycC6v`(sVvV3@&_W}H52|P_ zIC8E%+rg33YJ8=FI(ktd>*463CWShJE{lEP2-^FP*Q1W2|9HJ7a1@OXpQDb2&uce0 z7RphD^Q`ec3;(}=De^DhHZO5lEQ2Gc-4FSiuy1x|n`DqZ468)pV}SPQ_2raUe(rb5 z#&WpZ;^Q*j>iGF(Mkth2%nEk=$9bEKRp)lqqG{!?rtNVm3#Md#N5Rh@uJ`?XbO-?+zY%SBEU!2DB=m>- zx@Qxtf|E0cm!|ohGXl|4p`2P7lYu=geq3_!s`EDfar)?(TehX3; zd!v25bF*0vlv^pBwvA$c+@3?MHhT1)w;Am&c6*1-;raEpi|0UJfFHZDUfym@^Q15w zV$zH)mQS~1+0Gb`{}0k=85n+mN1H(yntbXcZ1d;Dl{1^jRs4z zp;g*bYs*_fWHh721>VQ*mxswG9ZI(7k{red9Zf6^uR{M1iVFRG7QvSc&jv8*X5`;k za|W~}V|{gWDJjtQt3j0SAy9;N-ik-*yZP$b$WK=9P;Upcd=>iU9m_pZxARu>v;_Tg zl#y)S3UWt z#sGoAMYJN4hx3=b|4&ghR5*jEVu=C1-GXG?jYBZ+?*3=mloafXl<Z(B;(Wx!N?i7w>l+!kXUu;tG$HeQ58?7=9&^S3WfYVO^Kppv<_z$FwC}jNbQ|WjC>Z>h8U!P5D|*?n&U0 zYH6FNO^x(OqeSf2Au1sm-;d=A-uU0?l&RPSx&!vt#@IMyLqB!dGgyySyAK7{&*FVDwpeQE3&0eN z3W!Gbbk(83>RxZMC|Lf1k>I<{+MNlo{kQxUI@EW%Z=DGt(Ajxti@s-+6s7akqb>bD z_)AtYZxtVUYH)vnWUqH1z=)EaEi545`bQH#WXOl!;>d|`_-wi;TXWv&o zxDEC$5r^-)#vSi=B7vHD(;+1CrB6luQSp@3wRs0YIAp~d!n5)T6%c9{H*-#xZ zzb8*z7*9R4B^?A*&(TFh<>u48%%|4kSb}c>#+;cG?3@Yb-P^xI+h@&6kIHOXT&9jOaGJU) zn#M1js_&%P=twv<9ntaTbPaX=Mm?tbTOV4aQo>~mTwlC!;jkOYsEU^khKCjN;b&$> z3STO(+EEDbnP}J8!QT@3>d~|NHF8JyB%bJZ+P@cVl78Z8nsL=?)bBbrwslWxP!+ z3^Sjz5W@^tfKG!`b#7o91l=(arb&Rb6Q&6&O6fE*nPQA-1g?KN&HTF=WM!m)l>Gvo zhM|>~n1+Zp(rN0jeLkkCy|<|_jT86w!8BHm0(Z~kEvC6)v&J9SO#miyOp|lP**u8+ zoM1!R#E1Gd&7yh26il=7(?`R;Wa4@M3PWH)F>37iOz|+Xsh#D%8|*x}rM5)AXR?VC zv_qU4e$~)VCrZtZf5E#mN+Z?3J~fe_4`A@KU5jU-ooE>TesLNFN_Re9b9Z@car*K# z+7hm+ZQiA-6qvpz3}M5@k5Lj;#fY`&L{S zwXk0r3m(Xw{b%^WLwIl61i?c6er*@s)T}WZ`IAvs2YA4-pA=+?``M36 zeP%|WP!^9v#(qwNi5drptl{D^BTa02-3;`Sx09f0>3wsX;Ay8E@1A{-k{R6orcISG zEW%GiS;P1dhfR}rZ|`tcMIeb4P+|p^SOF$hpotZXk#&UT=9_t9Qjw0(wvW_O} zh_a3<>&UW>E*ni`qm67dlGVLpb+OoK!A=`?TCvlPotEshWv4Ye?b&6)E*oiU(?w6P z3G+?rc8}Yt;uy1zGwWEhjyLO=v*Z1jhmCcu-9f2HR9&v9P#VIif}GsHP^@dTY(q1B zL-%DM(^o2MKa(QBEN^WB0?gTU!)b~TTgG}9TdE&!QM{6EcvDtcXO zz|c)JQ|k6U9GOzt7R%o>ld7?}Ju<0m|69ZV*Qj$H_5ULpo^Psgo7+ zV;h_->1qqX36pk8fD@*C3$E@2PdI5v@*Wu=IH89}kLfvknzn?*>kEOf(v>@wr(fc!*R&+_-yjTPOCe0QD|RWu zWYxb8sA!Ea8lZ?Y%vKtw8D*3R7hMR$1ucq17|yw5|956-Q#{_No$-`|spotc`GfbZ=8~v2`2=mO#+FIEvR62@q`fO$GVne# zPtVboD0@YICVAYrb=uU|obn}uN403kT5T$ZGyhFGrP+v4|z*2OJ$UuNuULb!9xVRd))I@%L#q!!m`J9jOr5 zh5QEB0lScudhkAqsC5|f2#DJ1yZfwJ3B)ae+7yxNKVHx2uUowF6ytLgvD>AO#`xSD zyew&16-D&koBHZj#5L^2?!HF40`yexCNH;+5lGP$PaEE9#wkjg9`3gQr0GDWP*QcG zt^-naS^N6}>AL^n!ysLky2%7m_L!v&efPxkhJ7@`C~3Rffb$@2w|b!#MM>S|c@seD z9{w&*AbnqK?g-L%Wv?L!4^nsl-zjOl!}j?gjhDw33#9U?YvVvF&u)_JCaSW@GMlio zh2H=QK(g$(1^^_s|7$abZEEd0y_G8iH`FncmHRp>kzW*(_?CMRl{NZ|qcG9Z* zci*fgoYwP!KiA`W>B=2(LwTsRjB={!9UN57ct384bGCsOkBYM6SQFA?(oQE% z5?Dd0x#Qb7FEEsk-(Z6FU!8;Qu2ad_u^Bx! zr|iukykgSIjDQ{>*T9nO@8OQD(}jqsv;BR;_+s;+0Y2Kifb5Q;LL* zJ*&i~nb>Ru(h1CkGdGi zTP;0ubp_f%Z_m`f5(!}XS9g4$Z}sy1nk#(i+!J?(v=j6cTI`IX!0R!O9-IY;=o_ezDOpHhRWJ*VyPA8=YgLcdQ&VD;KTo zbZ~q_txEn22=R9kYCDn=`-M8JTV^^c}p;Q!6UDuk5 z99jD*fM+e&@vyl=YoGd|{o?AS;ZyGL)pwIx-s*a|kjG(L0XSA0(?zBJg>dH%%|;zg z_^QQ{4F$ZFXVaV!<{}BF<3UP>sOpZex+JV_iHfcXt9!!eqOiIt?E5TsH(yk{u2~^$ zQT?KdFLFz|f4WuY;lKDDoLsD7h^l|{Z?DJoc>w3%fy$%UUB2~d)dOBm1_cM3puFjC ziDkfjULH8q=@_c!za%)EtGv(i(I3p3juc6_Xiv9O>+ZuiYIz&wHUTF)_--zSpRwYX zrHImhW!<=^G7Ri%v9Ha_br`>HI;@>sSHg*RjV((k2I?gFRx^QldUxCVfOhX%rYVwe z38AMdA|CL@6&E{>M0t~<7ufe*RWPJ7A?<6f-Y%hZ}nx8vZWz$cLIyXk9 z!aB>c(z2|zEUPWcdaJ^U+ebr?$&P8`1(|H+TcbJ)GTKmGp)%V&3XVW#o1ZrG9hKo$ z^aA_73%9x~Q0F}U0Y20oKy{w2ei#UP(FxvXpeM}@otO*VXVq?Oj0~sp+uQR>pf1gK zT;opFr}I|Kf%>#@x3jubomzP}xj5C~u@IASbiIp$M!pTmUQRiief#?^@CxFUIRe>E zQkx=P`BciM(26q_)Tz(8TSJ|ieC#5qS9e-dcSP7d-Y4N>C{?%C2x|p(YxemTc-T19 z$_XgP-8s09Q1zx@1y-v2{5dDUY6gY-EzqDfaz<Uo7pf}W>iayrkQd#BSAj8#^}Ek&gn@JK@IqY6H>e^v*_bXefymPH9(t=jYq z)b#CYOL;&S7CxGtuEJ@|avrm@lbyZn>}F>_yE@p}#A+I`nn$cA604cSYAUgsOROdn z+y4&UCi81SY2{8+&DxL9mRSAOS-{sQfR{D&+e$?Q@|yQFf|An^JpB{3Qcj`DjfwRQJ5Je$^?Lcb?Ng z^Eyn$vgZeO1jt}2?%nlXTf)`X5$&%lLvX`oJxt3Z8ZGxoWxSQ%u13SPgw^#`mcz>} zdkJWwUlALDCaUfYtKElyHnRU*-j1S?WS=JkjU*La98J+mRb!_Etptq|ih$ET?B+&_`AF;ilEy*e-;pQh}cquo&RqiAnc46G#3zfp{FJSffqh+%XEs+ z3+Q(e2)&>Vu|Ft+FJN5&5PbY1a{=LJyXhhje$HV#?^6U|!HPLR0IGyOnNS}a3S>it zY$%ZpH5yl3T+rM?o7T&`tjOS%vk28tuO7>I$liub(56%-TjuBThIuQF53$mw({}E` zJYM#BatAR&pFc9*T$!4O&})7Vv@0%lOij+??T0*Swh(Q;|LnSXc{I3n2l$E^-lp%j z=h4vUi#^&BZg8CmK3oBBs5W)aPCso4w{LKr+$)8=)$T)Ywr|&#C}(l_y*UF2@DSpn z?3b4cdHb#zKIh;n7_7eAKB|xhf;K)$n?|4$7ZvjC{GRWwHcy@NtT{`S6CQE|zpMT+ zaTPyMT{caG_{{17@W3phKWyq>z)QtN*@Muo7=CJa?*hL1Zcazm^=OliVQ9G&?b4n; zcA|WhWx*~Rc3G(`J7!t3%a(m@_Ic-d*vzeUC@3F@?=W^q@}Qda1Uk$nmka;pP(Wz# z1+a-zjk`6RUr6gAEc)t5xQLDKzjQ6+tM8V%#qz#q0m3*Ln@k0)+?CY@C_I1P6#jh+ zGIQ~ze3i5jn^t1ePAaRN*$vp;g56En-G<$b*xia9Hg;IqVP~fWI}E^E(Dvqw(VzMk zU^N9V|E?|J{^}g0omoH~!8K?rM!{$E_rcri3Hh4~y$X4@|L1zx*w-3X=ax-Nw^-;% zN+<2Udkl#5CEY*W?Onuk>w31k-MRE%h7}Q74L^bJ&+udk0{!!|5!lxZ=yxviA<96U zQjmsfvj6Pb{SRpL@j{voEdw!^-RG)3~9li+OuP$z^YtK;UMzFXFX~y2Mr9sCjy+ZRnLqq{ZH( z-QM%Ih?e=tQKYBYGvaWYVqQADf8a`_vBbN^>f{#D5?9~9b*KW)^25b|QQw@jK$vEw zKE-rXJuwS1qXw%#?7L4jC$1q|`sOA18F3$2!I~ z*a~chrF`axwUb}TZEM$4EFi-G+`P1?(m4`p6#majBKr96cE3N+My%i z`c_Flj1%3m-{9|wP*P-K@D-;*|@)=m)ZVw_Ap;ji|kM-d{+I(iU;B3 zmc4#U&-@G7Av-MW->{FtJ|_DbDzC|O1KUlk93Ly!$IAJs$o(;LfUH~~D+k9)*R#_0 z#)+4g4}>n5{j1*BH4lIpC^z^Q$QmP#UCQ%?f8Hm#Dc;wz*YJaS9lpMuPwcv(sjcLTam=-!=A}HA8Rz- zmDQntmR@ITMpbG`m3ONeJ3THviKd!TA^+B@_rp_>NqqRFdYxZ<5K*wf47Vh_#_p!L zjukXLJeq+c?>*=Kr^ToS`Pf%cjXNp z4)jK}zl@!}_Vo=4R3EonM0Ll8pNNMP`p7$us5#yE-hRt%)PJnJf|}Fq68oMD6M5w* za6^wynX@UGmzJgYQ?jAZN=uLpu{Er0jVoIN%ht%UHMDGvEn9=j*66Y|yljmxTLaA2 z2(vZBY>hEHpO(9uEK}z^|4~n&P;0I(u63I50jxhtHE7jo+6?g*rWBVg)n!Y0*-~Fa zC)aC~V@UCDR@1#rDF@MwnBCwY;``6OMmdU3)wuzVB34tH)tqKEsaefxR@0i*yfzH_ z+qwS)5e=JlpP8#tYP`(d#Hm)dDTCS7HROsfDud&H?zU1{`=fs^6iK-EZSz(fFHosK zXDgK13TC##nXQ0UsgPz~OGWCN3CXh|dp4xchWu4h0?hk4dAKaCRlTFs@Nsd_C83lyR%-{#`I`p{R>8as_C#1S1#c zyLlsJ?ArBn0T{c2v`?EYg4kiJ84g1-lW1XL)gyt8@Td%-8PD%S08TU6zQKRf%C$WLO0=R^g0QKw}lsSOqmU8p%d0Ric?pw3Cg7ve8mD zn#zvPQcs&DwfGv0rxo_{oH_fqg1*v`EC%r73%tfw!R3Ywou zvj|L-TlKJ7<$ET(IK=VNGt<&Jtd=i9i}KTM^3}b=xi*f9jfLYSX@k`s-fD(tt5^!l zxZqUNd&Wa=>a@gav>g=HWqS;uOA~n;oGqRD*c!&r%o62e_AyWcAG5RE>u<`}3^Gsc zSe%XDD4(U6o-Oam3p8&)d{N+oP8~N8e9%a&Q@-ecDaXMVjsBy2(pm$C zf=}A;=O?VGrn_0G&Cuv(P^;VO%@p&%Nx(WmPV(E>**etCeSya)5vwd z0j3eR@N+qxW>U*rm}Z7uHt(X-aOl1aOhZso(P_%tKP`O{&sXsb*gc~+(=7co`r25~}Z;y~XEhNxg z4}7Xe!^_6s3c(oIZqp;7J@nLFl&5KJ%h!`|n|H;IYkrTwl&_PeM|DTuCftQih@(7N zPr_}m4NW_9kHGkHOVN{Xy&{e+JyZmy?-nC+^dwxMw9}ECdng~c<5_l4IBi-_^a zRxj_o(4(d2&lB&{;?S8-1tszGbsj)B<@cipdem5)`K6fHZz%~==2*8h@p7N?(GE%3gut-sp^kBNl(Jf?wVnK>j42AZVAzoa2M~*`Ly)`L20}1 z4Lyo8>fZMuF`WOVg?FwV#mVnVd_b!rPZsJ?t;0Ts55dzPJn^O;rCYk|`H*NWnb1#i zp=LC-JjmFk`}C+)7Cr7EQI0w{_Jx{H_lJ~xY}6J#%BZMk@qnr#9X+B)xs!W^-zVTo zK6_4&=0rz!D<*tpky8}fpAJ17s9j9>4r8wmKCLI=-iKS=uDVA+w{dr;o`lP8ZoR?b zE*KddH|@sreLA$vp%CSPW2*4~8Z84g_ZA>9mECxco`jqFs`m=D0tBWyd-&;5U6(uO z@(Ay^!Zq)pcUM=yb-MUsdL9` z(Cs)iONNRiINiDy>Qmm%FVbfOL=9t4-u=Uxc0p9^)1lTaABidJXxzdgM8OiKe-cv@ zrrwZZ;?w1Img843owM@NVq#oyq@wtXn5K9}y(}g{iH6~=KZxmL-sn&aeQfoY3=nsVkC8V_R{;r{%J`FeAeOLnBIoDqr`Vwx(&jsT?l#rlN(UDg~ z`ZS#JtV;=zoftKsgRZ`W6UoetDoTKKKJ;E+U&58y>Yw@ikP0VO80k}9NWCK^q|~VX z)_U#q=^o;x{Rl#c`<8Xqr+boDLr*~*(b^IsTN`)0YNoz~>t=8u>hL3CIK$!k{=NDV?wI!J`*TaN zr_6tIRA0i?Yq(?F_)>x*kJZQZC0vG9%C1R|sifAML;4cVbdmX@Wse0G)PwpG&b=&U zU&3Q(jg;;W)2CWZgO-$`R@*uc8Wf&WUE;El*qf- zO`4vdFX7C36pX$9lvJ;tUccKN`u!AIAx38l^d+3yRLy>ME9iRImZmS^@+ZuDF}ec6 zo%L_u(x>61Z7nLGKVR^7q|mp{3jb?|1lcta$~o&%f~`d!;_riw~V#0j{eL{3?A37tw3^-1Zfe z1vqBDK1HH`ZBaptrB}H{xNiRK_4y@F34c%S;^3$+;o4R?efv@l$+n-ym_IfyMgvpJ zi7aw@|IxPkG(6g&%~OI*_;V|L2{);YxFoxrfMRQ*h0tF;+SC5t>o`D-f=lw1k55yAg;K-c^Q_3l`z|Rb^gzMZ#gG7}R@OtQniY1)g-h{@#pAetlKEr~G z#S(7tzKru{pHQ`t{2;M}JNGW{_l+m`zPR~ev4ktxzis!`GT2CiCR`QM_dR~Sj5yal zqA~lrSi(KG?6r-50!g~pBU8l^&TpGnwujJGPY_GE86RUeA1NcyFEGy(OSr9_5~OR( zs7%8eJYQ7m+D3iKsIp+{O)<5(B3;X600{qcvx7lK+pF*DpdId5a=8mOhjZ`pmd!5%AAsfg3;Ggn{+6P%t5i43RURfQ zYw1HNlMmIo7e%f{ne6zpK9u~>!~EOodbBJw;o>!f^gC}r=BTpu8P|-f(7dj!5a|gO zW6dIXpFQQPdY~QdZhiLlIh9Ngn+akwMQkRC%``a&oP6>YA$Q{i%@edkRZ=8u3WZIv zuqhZeMZ>0W*c1<&0%B7{Yzj$c@;2s@njQ@*OI>eM%Iu)uA_?aC$#Ol3{n|-^Hw?ry6b)+@6f=2q{v>4EmlMd$ zl8E37*f=K>dHp#Cl59PiPgt9mLf2j0`+5@Y)T6lQhZ#g`|Jj6+XL=Mkmnq7moDd0U ze+gRjVPF<9v@SlH1K-YPvWv@wECPO|u0Ql79H0E)>6t84h+Q?RE2ik*@AWfDkoM`D zZ5xRtkTmN#A(I$u54bTwL$Cwa56;5%O)YfA63#Qtrszy237W|7pMkbXzkV-Wv#6b@ zp(UmoWab*#r26fRoLuu#vI)7|Yq=BJCT~qYW@JM}DU#@jCES4X!_FAVKs0o|X#?y# z9)W8v_!jx4mby>Z{f4~ zJA4c0BkSy_?~#6D6nqb?5$cBn(&=4=c#Ws_LvmDmGhhig74+pvmJad-Z|Tn`ev0y zVerj>5whPb_)haZ3W#zRay_<*ANuA&(`{TaKnmWbcO0kX628^TlONGGP@B4HOs^P9^^O$6Kbq9^M1b)78y}M(&ousd zAoi?VuYOHRBz!&Bozk;<66Gpk*TdRfL)NHs{%dP0><$!+*>pfpQYx<++vu&BQZ@80 zmlLjC_^P1CFN9^L_RnQzjl|2d?_JkNi)r@Ibh*mhB+>xYwlmX-8;=MX*&QzlG}4wq1|K5^i1G@v<>;{NB(oPb}g3&%UcEyj|edlQeQ9%V$hY%T{s{e>9_F^!wX@v24q1_2W$C zggc^fv?@$bBKMzca?O|E;lWtvlyE=M{9^S{sqeH10oAZeW^T z+8RCoU@kK~I%Up>6Vmmh!?_HI!V&l66iykA%cbL7`fa%=?C>i(*gTgRZ5!Bp$RoKZ z_z(K)*=LMvA7WSwT`6!!#s+f07E(%4_;a6{G1DmA!cvMPR zr4?l{pRbd05|NTxKi9XiQ5I5YGoGZ%#gbVBqV36KDW&6ZCJXxc{r$0wJ}I&g^s|vp z(E2CHMWOfGSx5S3Gw%nF_b(~L{q9!H+MNxlpsu$oDn#MssK-84vYF@Izqbh0rTO99 zKAWtS3$e}gwomaom<^-uqp5g*hhLH9oopyX)o9d5AquW*f?9-RWBlapLpVBgn$dTM z9Ht$aWL~4aLWG8eRj(YTuG;uq9>$wht*PS|<-lnCb;Ygj2QLpb>=tF?lTXHhTn7=%=EIw^>4qW>Td;ql%U-4voa-KMoybuGft zi3S4{qPpIM8A;W(I4;;ULU_Dm#Fva&cUn+TLAyzNaR+%)5%U`IDp4{I|HDgKaD3#w96yf3L}5{QCF1LaX(jPF@(S zu{T|M8s|bztQ%b)ernp=I2XD}ar<#Sv3E~g^Pm6i$Fxn_x^2297ll5T=Y0R1LmL!b zoBjCs>vIlP#x``Fuu3L;$zlBGfBP}}^^rej+(71W?G?waS!gDmnYcF8v~ud2g~vWk z@4uQn2-p1Qmu{=OL{ISQRF-@zPCWyA7rS3No&@ZVW!UZ$o4o$R?qQ7}O?QmPb)W(Qf2_&oVBQX*M3+ZjT_UaV6*DRo*jjlMX2qq{hfJw8;;)X{?|Ge1()y zvaU41^`?MPKR$)RkNs?2a|CH^20#22ie!Y{CJP)s#~1Zj{+`*#SZ{pQN7($jm{-P8TH{B8pV((&i3&`VK;0 zr*_&ZNZO*CO)!GS_6`daB<$i~_Kt+g%vUMIl3oK0V);I)J=e4gBFNo>ebV7LwS5p) zyH-E;Dnwz;#x}NHf|xdWYQrxc3Q-8&IVttjJ61Xx&Q!5JzB`zCp5L&uI(E;Np$Egx z2Lt)ppu-l0DBSw+V&*se%&J59ft4!NC348XRT|qr)T3-y_IMOj#nWF1yXb z@&A`&oE1`X&p90ZzxfPiv!lTmS*Hk6>pZ_!LCMA?%OYTzwCm6kX?KoIj6jg4(;U0? zjBfF>)sf8UOO1@9D-opksM0hd63L$%P4W4AceeLdM^Vt-V-60>BbUU4MlzqCV<&!` zE(PJ{v!ci-{`)WmX$6l+k7V|fV=7IvRuDU9?xrXtOZQkdSBS#TK3`WVqM%=RtzA8Z zC_JCnq5J1(1j%0xV>~$7>F5540Yr1pB{M0A?=dD8$&t&0s+G+ypNeUN4;m;)M(e|K zsX)?4CMB!W&&DvLZ-G~OVmB~a)v0N-7}$VZYJ>S{ zwQ4Iw;o6bBi5){>ZZ^3(uIC$X^zKH-m&%uv3M$bbiVQ8c(((WITiS+iHlIB+-5kE+ z?30xkmKH(|wlnc$^^Q&%qE~)d=D)v$&i}e+1;e`r^L5YuS1P*yzW#mv`}+6wfAZSW zccq@N`#*FF0!BFpEmw-#CT(qgjZ#rQbHefW3|_w7-{1a2rqKqmwAWzy=wPKNXmkwj zExN}v!?y1a3PVM+aNvP&kC;(``1VW{l_>b?84ot~W6*XQ-cUtH+!f;<4lwy8P zB?>OX2b|7-%K%Z1=qcU*;#)z?(`5R5yP+ykh`RLEq1`*?U8l_vQyY~iENQ%ddDURt zpYb*PUuv&Y%TwM#1UjJ~e&5V-h4tuQR@%FZ+&$C_LMZ5++DSzc=?z&3B+{2o#`E;H zPYLo1K}F_EHT1{2Z(UF6zGtR)zw3{{|K(<}<0kK!(Xf9)=k_WaEt)Ilr<$}^QKqnV zQ78}tv#cytq(wTRb|?c0@{om!B;Iu@h9bz5xi(S}cJ{}&5NzGG6LEdZWzC(~Q1r*Q z;q_F+KK%7G6bJ*?D-Bc>6pDT!%rj@r`Y$pS#W9&{LKu+s|6qIt3vp3jgMor^pNseJ z{8KT>E`&kQVWNRb6n0JeIkHzUv)$Kl=*?_Y*bN*Sbb1F-?1@_vl%g=nRNV6QEgd4X zkxEhM-80>FOb`pIJv?eAD#XD%C%u^;ObCWRRG>X7X$wY#pyJwS8Y<2@zIwNY1S5rz zzU8V^@jPi8Oos-?n@UkQ^WbqvPB5PLfIBL}nFD%q4kCn4h@cTH)Tin5X+xg(Uk`5uCa&I$ega5#F@hZfxH!Iz2 zR_F;kjmk2)!3&O!+M*P#HYDmF9w<$OA;)tVavb+FQn_Ueh?wpOk4rxN_S49ae(5Bl zUBOx<3TIdP?>wE3%-_VfEmfir;+qsTIh}c4tF~}gYn3SIJ=-xdFddmKk0TgnPl_yT zwq-CFX2jG|(OJ=~S|+m^`fm8S+R`+9CC_BGNv97v)l`W>{m!#Tm}g>`ce`Y)5`}qV z*1E0AM7TX{DTaAti*;cKG8wd5d)HTq(9r6an#t_D+^{jKt|9@9^M#p6@SnYk-_to* zxmC+7oOK*;>8l9HF`#Z1fw@N3kfv>9&nzl1{9R2Y3T-Q2%3YX+%%0-R4-BJyo^2Lq zA(J_9I<9>dIRw_uW-R7rU(H9QC{%LZEAN`k><7Kr+%Z=v3OD87I!?}Jp22bU1z(l4 zOg7HQ27Rql+dQQx^sl($%ZF@qbLy2003VDudM?iaE3(Vj$I8;)fzn{6uTm6-N7cP$ zpADzY;IXHbL=w(=mQC8}9S$o+A^OWY%QM-O35&;d`rH;*#$^+*W$7*@DK}WI$fiQD z0^hf57I-i>i+~c7FpR1;w&*!A3qTxk%DMkd|Ws+&Fxq(SxXTX8YHc$BVWrMPbpG8YXSi86*M&wkj#p=3SVE%=we^0Djb( z`b4=tjaglu(|~{=Lq2!_2x98D=_~<7?3x7vC=z5Ay^??=duO^4kYwz{d;*#XJJ$hd zVt>J2MnDvsgjE2dKyvZMeI=2W(_5rr8R?}Pt`vpH9xH=;r!i8x$Wn?WvqmtM^;)F` zP|7D^Yuz;DChVdyK2ook_pF?T0#8tjj}lPkpUG+P2Dr5g$XZ`L1VJ>4r5y`8aQ6)okp4MDVTrH=XLNrk_M-cK4%7~ zD0i{EcRJ(eE2Z@Yz3?B3rFUbS!B@tl0c_NG7_N_XZ;9)mWe-j0+Mw>y3uDq4|M?Xz zeV6~H|5s8ehtgK-fHKN1cpTGu{7H5Z`hT`Z)T#TC6!(sQcxA;!E1!yKuiSvkw7>eO zrRKbqrE2e<_t)i=qD;0b=K4 zM{#Hk94Y2X)MjF?UO9sL^!ZwzgHK{;Ik(u2qQ>!l%hJ4=u%c??K;S^t-@01ro@T;@ z{1MMw@c!gMHuFy~Q23On-T72oSZ)95@&sj$z|1o{dFCgN7vS*(Jl=rEBk=Wf%cobb z{3Dl`w=19fk`|A5BRTN_l;`ggKft}2M1bBo_koqun6<4+?Mo)124>_BIl@F~k zRER$Bgee|KsM|bR3v`%}eY86g*X7sQ`T}_~e3^w$XAi&Qo)JNq0(TUzdiPA9BSr$d zCSku&uE>g{$e*xb7L#@W8|E}-Z7yNQK31{=cFf6mBO`2C=h=OMErV1WVb2~~9su^t z($o76VbhLIX$EYX?LT|W3A>hV(;C<{WKap)R($uMCckQ-AUyd9qc{dJsV_)EYO3zu zdnk^TJhfo4Zri&GaSS@??u{kvTj1wdW;FH5Zc2YY?R^>PZ>Tm?dfc{w0_k!1qEPxg z^@=&t=TO|E^!hf79HiHwu}10lqj_hMemAlFV2>!f*< z-iMq|Xe41JDgA$N`C+90p+ZgN0m1A?lZZ&TZdai4L4ipy$_KEArt*TjPXd(}`t>iM z@K}ttad)qp6gDf#HMn#8X98=@r?j4EgYJLGgcpv=5dP z|JuiWQc_mEMXv;ce1{=Y**JW_aH|A5Ag#ppzH8O~>YBhTr`+4pT%{6)nHTK6%o3Q@ zsra52ja5`5HD8gypz-C21MTg1f=90e62nfy0eIG|Sq~Q{Fm2?eRSOZR#O>bvD@lS- zF2(`B&hV($Hi>AqbG{BLs^K5VOkmjF3!J3iyVWp}!NKvtS`{_(zGDeQ6S=lSMf#R| znJR7S~Uf4gO+N))CUjVr33Ow%A>or*9ak9#EpdNpD?u2oG&9`{RTo*ygO zsh6n;lHF)_3WGjo<*6!B=+$w`;7KXWR_~;-<3yDx%{7_(sgJEn6tdggZ!XrAjR(i4pehx-9PRUR)Z=d9K^Ft@55>2Fv zg>;fzT9d8^v_t>asCrWyp8^a(o6XHsbg~&eG6lun9?|us`#sbv1y!m=)`(Q~PVTbT zNg)h|om@p_>ODcpz)%cJ#mVaMiAD)sQkbpn_lPBW()}E3lEUDSsl<5e=JY0NMKWBv z+-nsoMIoW;Zs$qKOsm_W<|IVUnYtZJJ|!VxHtcb(AsY+4kQ!i_l zX)=Qh?4m?KvR$(bW0H^%%NN3>lUA&lTn-}7L+E*kJ?M_T(j^K(s~L _67`!^Ny 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 literal 0 HcmV?d00001 diff --git a/man/droplinks.Rd b/man/droplinks.Rd index 8bb64f5a..105dcc6e 100644 --- a/man/droplinks.Rd +++ b/man/droplinks.Rd @@ -1,18 +1,22 @@ % Copyright 2001 by Roger S. Bivand \name{droplinks} \alias{droplinks} -\title{Drop links in a neighbours list} +\alias{addlinks1} +\title{Drop and add links in a neighbours list} \description{ - Drops links to and from or just to a region from a neighbours list. The example corresponds to Fingleton's Table 1, p. 6, for lattices 5 to 19. + \code{droplinks} drops links to and from or just to a region from a neighbours list. The example corresponds to Fingleton's Table 1, (1999) p. 6, for lattices 5 to 19. \code{addlinks1} adds links from a single region to specified regions. } \usage{ droplinks(nb, drop, sym=TRUE) +addlinks1(nb, from, to, sym=TRUE) } \arguments{ \item{nb}{a neighbours list object of class \code{nb}} \item{drop}{either a logical vector the length of \code{nb}, or a character vector of named regions corresponding to \code{nb}'s region.id attribute, or an integer vector of region numbers} - \item{sym}{TRUE for removal of both "row" and "column" links, FALSE for only "row" links} + \item{sym}{TRUE for removal of both "row" and "column" links, FALSE for only "row" links; when adding links, inserts links to the from region from the to regions} + \item{from}{single from region for adding links, either a character vector of length 1 of the named from region corresponding to \code{nb}'s region.id attribute, or an integer vector of length 1 holding a region number} + \item{to}{to regions, either a character vector of named from regions corresponding to \code{nb}'s region.id attribute, or an integer vector of region numbers} } \value{ The function returns an object of class \code{nb} with a list of integer vectors containing neighbour region number ids. diff --git a/vignettes/CO69.Rmd b/vignettes/CO69.Rmd index 1b98ae75..67fe5d5c 100644 --- a/vignettes/CO69.Rmd +++ b/vignettes/CO69.Rmd @@ -657,7 +657,7 @@ to general does make a difference. print(formatC(res, format="f", digits=4), quote=FALSE) ``` -```{r results='asis',eval=run,echo=FALSE, fig.cap="Three contrasted spatial weights definitions"} +```{r results='asis',eval=FALSE,echo=FALSE, fig.cap="Three contrasted spatial weights definitions"} pal <- grey.colors(9, 1, 0.5, 2.2) oopar <- par(mfrow=c(1,3), mar=c(1,1,3,1)+0.1) z <- t(listw2mat(nb_B)) @@ -679,7 +679,7 @@ par(oopar) \caption{Three contrasted spatial weights definitions.} \label{plot_wts} -```{r results='asis',eval=run,echo=FALSE} +```{r results='asis',eval=FALSE,echo=FALSE} eire_ge1$nb_B <- sapply(nb_B$weights, sum) eire_ge1$lw_unstand <- sapply(lw_unstand$weights, sum) library(lattice) diff --git a/vignettes/nb.Rmd b/vignettes/nb.Rmd index 7d12c072..91a6ec8d 100644 --- a/vignettes/nb.Rmd +++ b/vignettes/nb.Rmd @@ -115,7 +115,7 @@ isTRUE(all.equal(Sy0_nb, Sy2_nb, check.attributes=FALSE)) run <- require("sp", quiet=TRUE) ``` -```{r, echo=run} +```{r, echo=TRUE,eval=FALSE} oopar <- par(mfrow=c(1,2), mar=c(3,3,1,1)+0.1) plot(Syracuse, border="grey60") plot(Sy0_nb, coordinates(Syracuse), add=TRUE, pch=19, cex=0.6) @@ -221,7 +221,7 @@ if (require(dbscan, quietly=TRUE)) { Sy6_nb <- graph2nb(gabrielneigh(coords), row.names=IDs) Sy7_nb <- graph2nb(relativeneigh(coords), row.names=IDs) ``` -```{r, echo=run} +```{r, echo=run,eval=FALSE} oopar <- par(mfrow=c(2,2), mar=c(1,1,1,1)+0.1) plot(Syracuse, border="grey60") plot(Sy4_nb, coords, add=TRUE, pch=".") @@ -295,7 +295,7 @@ sapply(nb_l, function(x) is.symmetric.nb(x, verbose=FALSE, force=TRUE)) sapply(nb_l, function(x) n.comp.nb(x)$nc) ``` -```{r, echo=run} +```{r, echo=run,eval=FALSE} oopar <- par(mfrow=c(1,3), mar=c(1,1,1,1)+0.1) plot(Syracuse, border="grey60") plot(Sy8_nb, coords, add=TRUE, pch=".") @@ -339,7 +339,7 @@ sapply(nb_l, function(x) is.symmetric.nb(x, verbose=FALSE, force=TRUE)) sapply(nb_l, function(x) n.comp.nb(x)$nc) ``` -```{r, echo=run} +```{r, echo=run,eval=FALSE} oopar <- par(mfrow=c(1,3), mar=c(1,1,1,1)+0.1) plot(Syracuse, border="grey60") plot(Sy11_nb, coords, add=TRUE, pch=".") diff --git a/vignettes/sids.Rmd b/vignettes/sids.Rmd index 5739c65b..05b05e17 100644 --- a/vignettes/sids.Rmd +++ b/vignettes/sids.Rmd @@ -62,7 +62,7 @@ the extension, and were read here using `sf::st_read()` into the using the `st_centroid` method from **sf** as an **sfc** POINT object, and can be used to place labels after the extraction of the coordinate matrix: -```{r echo=TRUE} +```{r echo=TRUE,eval=FALSE} sf_use_s2(TRUE) plot(st_geometry(nc), axes=TRUE) text(st_coordinates(st_centroid(st_geometry(nc), of_largest_polygon=TRUE)), label=nc$FIPSNO, cex=0.5) @@ -172,7 +172,7 @@ gal_file <- system.file("weights/ncCC89.gal", package="spData")[1] ncCC89 <- read.gal(gal_file, region.id=nc$FIPSNO) ncCC89 ``` -```{r label=plot-CC89.nb, echo=TRUE} +```{r label=plot-CC89.nb, echo=TRUE,eval=FALSE} plot(st_geometry(nc), border="grey") plot(ncCC89, st_centroid(st_geometry(nc), of_largest_polygon), add=TRUE, col="blue") ``` diff --git a/vignettes/subgraphs.Rmd b/vignettes/subgraphs.Rmd index c0ec5289..b3519708 100644 --- a/vignettes/subgraphs.Rmd +++ b/vignettes/subgraphs.Rmd @@ -23,7 +23,7 @@ knitr::opts_chunk$set(echo = TRUE) The `spdep` package has always been careful about disconnected graphs, especially where the disconnected observations are graph nodes with no neighbours, that is no incoming or outgoing edges. In `nb` neighbour objects, they are encoded as integer vectors of length 1 containing integer `0`, which is an invalid index on $[1, N]$, where $N$ is the observation count. Functions taking neighbour objects as arguments use the `zero.policy` argument to guide how to handle no-neighbour observations. -`spdep` has also had `n.comp.nb` to find the number of disjoint connected subgraphs in an `nb` object, contributed by Nicholas Lewin-Koh in 2001, showing in addition which observations belong to which subgraph. Obviously, no-neighbour observations are singleton graph nodes, but subgraphs are also troubling for spatial analysis, because there is no connection between the spatial processes in those subgraphs. The ripples in one pond cannot cross into a separate pond if they are not connected. +`spdep` has also had `n.comp.nb` to find the number of disjoint connected subgraphs in an `nb` object, contributed by Nicholas Lewin-Koh in 2001 and using depth-first search for symmetric neighbours, showing in addition which observations belong to which subgraph. Obviously, no-neighbour observations are singleton graph nodes, but subgraphs are also troubling for spatial analysis, because there is no connection between the spatial processes in those subgraphs. The ripples in one pond cannot cross into a separate pond if they are not connected. From `spdep` 1.3-1, steps began to raise awareness of the possibility that neighbour objects might be created that are disconnected in some way, mostly through warnings, and through the computation of subgraph measures by default. This vignette is intended to provide some background to these steps. @@ -44,7 +44,7 @@ eigen(0)$values ``` The `adjust.n` argument to measures of spatial autocorrelation is by default TRUE, and subtracts the count of singleton nodes from $N$ in an attempt to acknowledge the reduction in information available. -One way in which no-neighbour observations may occur is when they are islands, and neighbours are defined as polygon features with contiguous boundaries. This is clearly the case in @FRENISTERRANTINO201825, where Capraia and Giglio Isles are singleton nodes. Here we take Westminster constituencies for Wales used in the July 2024 UK general election. +This discussion will address problems arising when analysing areal/lattice data, and neighbours are defined as polygon features with contiguous boundaries. One way in which no-neighbour observations may occur is when they are islands. This is clearly the case in @FRENISTERRANTINO201825, where Capraia and Giglio Isles are singleton nodes. Here we take Westminster constituencies for Wales used in the July 2024 UK general election. ```{r} run <- as.numeric_version(unname(sf_extSoftVersion()["GDAL"])) >= "3.7.0" @@ -82,8 +82,9 @@ par(opar) From the maps, we can see that the island is close to two constituencies across the Afon Menai (Menai Strait in English), the three simplified polygons being less than 280m apart, measured between polygon boundaries: ```{r, eval=run} -dists <- st_distance(w50m[ynys_mon,], w50m[!ynys_mon,]) -sort(dists) +dists <- st_distance(w50m) +dym <- dists[ynys_mon,] +sort(dym) ``` Using a `snap` distance of 280m, we can join the island to its two obvious proximate neighbours: @@ -94,23 +95,229 @@ Using a `snap` distance of 280m, we can join the island to its two obvious proxi plot(st_geometry(w50m), border="grey75") plot(nb_W_50m_snap, pts, add=TRUE) ``` -In this case, increasing `snap` from its default of 10mm (or close equivalents for geometries with known metrics; previously `sqrt(.Machine$double.eps)` `r print(sqrt(.Machine$double.eps))` in all cases) helps. This is not always going to be the case, but here the strait is narrow. If islands are much further offshore, other steps may be required, because a large `snap` distance will draw in extra neighbours for already connected observations. It is also possible that increasing the `snap` distance may fail to link islands if they are not considered candidate neighbours, that is if their extents (bounding boxes), buffered out by the `snap` value, do not intersect. + +In this case, increasing `snap` from its default of 10mm (or close equivalents for geometries with known metrics; previously `sqrt(.Machine$double.eps)` `r print(sqrt(.Machine$double.eps))` in all cases) helps. The symmetric links added are to: + +```{r, eval=run} +attr(nb_W_50m_snap, "region.id")[nb_W_50m_snap[[which(ynys_mon)]]] +``` + +This is not always going to be the case, but here the strait is narrow. If islands are much further offshore, other steps may be required, because a large `snap` distance will draw in extra neighbours for already connected observations. It is also possible that increasing the `snap` distance may fail to link islands if they are not considered candidate neighbours, that is if their extents (bounding boxes), buffered out by the `snap` value, do not intersect. + +We can also use the distances to pick out those neighbour candidates that meet our criterion of 280m, taking care not to lose the ordering needed to identify the correct observations: + +```{r, eval=run} +(meet_criterion <- sum(dym <= units::set_units(280, "m"))) +``` +These candidates are the island itself, and the two neighbours across the Menai Strait: + +```{r, eval=run} +(cands <- attr(nb_W_50m, "region.id")[order(dym)[1:meet_criterion]]) +``` + +The `addlinks1` function can be used to add both the links from Ynys Môn to its neighbours, and by symmetry from them to Ynys Môn. This approach means that each island should be treated separately (or scripted in sequence), but does not risk adding spurious neighbours in denser parts of the study area. ```{r, eval=run} -k2 <- knearneigh(pts, k=2) -k2$nn[which(ynys_mon),] +(nb_W_50m_add <- addlinks1(nb_W_50m, from = cands[1], to = cands[2:meet_criterion])) ``` +```{r, eval=run} +all.equal(nb_W_50m_add, nb_W_50m_snap, check.attributes=FALSE) +``` +Since these constituency observations have areal support, it is not surprising that changing support to points and using $k$-nearest neighbours does not work adequately, because the distance measurements are between the points representing the polygons rather than as above between the areal unit boundaries: + +```{r, eval=run} +k2 <- knn2nb(knearneigh(pts, k=2), row.names=as.character(w50m$Constituency), sym=TRUE) +attr(k2, "region.id")[k2[[which(ynys_mon)]]] +``` +Here, Clwyd North, east of Bangor Aberconwy, is given as a neighbour of Ynys Môn but Dwyfor Meirionnydd, west of Bangor Aberconwy, is not. In addition, there are two subgraphs, which still remain up to $k=6$. ## Subgraphs +Subgraphs may be found when no-neighbour observations are present, but also when the graph is split between two blocks of observations with no path from any observation in a block to any in another block, across the low population density constituencies in mid-Wales: + +```{r, eval=run} +(k6 <- knn2nb(knearneigh(pts, k=6), row.names=as.character(w50m$Constituency), sym=TRUE)) +``` + + + +```{r, eval=run} +plot(st_geometry(w50m), border="grey75") +plot(k6, pts, add=TRUE) +``` +We can show the block structure by displaying the binary spatial weights matrix: + +```{r, eval=run} +o <- order(attr(k6, "ncomp")$comp.id) +image(t(nb2mat(k6, style="B")[o, rev(o)]), axes=FALSE, asp=1) +``` + +This occurs frequently with point support, but may also occur with areal support, as @FRENISTERRANTINO201825 find for the eight municipalities on the island of Elba. + +From `spdep` 1.3-6, if the `igraph` and `spatialreg` packages are available, `n.comp.nb` uses `igraph::components` to compute the graph components, also using depth-first search. The original implementation is as fast, but for directed (asymmetric) graphs converts first to symmetry, while `igraph::components` can handle directed graphs without such conversion (see https://github.com/r-spatial/spdep/issues/160 for details). + +```{r, eval=run} +(k6a <- knn2nb(knearneigh(pts, k=6), row.names=as.character(w50m$Constituency))) +``` +Another case demonstrates how cyclical subgraphs may appear; this is again taken from constituencies in the 2024 UK general election, subsetted to those in England south of London. + ```{r, eval=run} sc50m <- st_read(system.file("etc/shapes/GB_2024_southcoast_50m.gpkg.zip", package="spdep")) ``` +```{r, eval=run} +(nb_sc_50m <- poly2nb(sc50m, row.names=as.character(sc50m$Constituency))) +``` +The second subgraph only has two members, who are each others' only neighbours, known as a cyclical component. + +```{r, eval=run} +nc <- attr(nb_sc_50m, "ncomp")$comp.id +table(nc) +``` +Both constituencies are on the Isle of Wight: + +```{r, eval=run} +(sub2 <- attr(nb_sc_50m, "region.id")[nc == 2L]) +``` + +```{r, eval=run} +pts <- st_point_on_surface(st_geometry(sc50m)) +plot(st_geometry(sc50m), border="grey75") +plot(st_geometry(sc50m)[nc == 2L], border="orange", lwd=2, add=TRUE) +plot(nb_sc_50m, pts, add=TRUE) +``` +This has consequences for the eigenvalues of the spatial weights matrix, pointed out by @smirnov+anselin:09 and @bivandetal13. With row-standardised weights, the eigenvalues of this component are: + +```{r, eval=run} +1/range(eigen(cbind(c(0, 1), c(1, 0)))$values) +1/range(eigen(nb2mat(subset(nb_sc_50m, nc == 2L), style="W"))$values) +``` +This "takes over" the lower domain boundary, which for the whole data set is now the same: + +```{r, eval=run} +1/range(eigen(nb2mat(nb_sc_50m, style="W"))$values) +``` + +compared to the lower domain boundary for the remainder of the study area: + +```{r, eval=run} +1/range(eigen(nb2mat(subset(nb_sc_50m, nc == 1L), style="W"))$values) +``` +This subgraph may be added to the remainder as shown above: + +```{r, eval=run} +dists <- st_distance(sc50m) +iowe <- match(sub2[1], attr(nb_sc_50m, "region.id")) +ioww <- match(sub2[2], attr(nb_sc_50m, "region.id")) +diowe <- dists[iowe,] +sort(diowe) +``` + +```{r, eval=run} +dioww <- dists[ioww,] +sort(dioww) +``` + +Using 5km as a cutoff seems prudent, but would not work as a `snap` value. Taking Isle of Wight East first, there are four constituencies with boundaries within 5km: + +```{r, eval=run} +(meet_criterion <- sum(diowe <= units::set_units(5000, "m"))) +``` + +Obviously the contiguous neighbour is among them with zero distance, and needs to be dropped, although `addlinks1` would drop the duplicate: + +```{r, eval=run} +(cands <- attr(nb_sc_50m, "region.id")[order(diowe)[1:meet_criterion]]) +``` + +```{r, eval=run} +(nb_sc_50m_iowe <- addlinks1(nb_sc_50m, from = cands[1], to = cands[3:meet_criterion])) +``` +Although all constituencies are now linked, we should see whether using the 5km criterion brings in extra neighbours for Isle of Wight West: + +```{r, eval=run} +(meet_criterion <- sum(dioww <= units::set_units(5000, "m"))) +``` +It, does, but we need to beware of the sorting order of the zero self-distance and contiguous neighbour distance, where `from` is now in the second position: + +```{r, eval=run} +(cands <- attr(nb_sc_50m, "region.id")[order(dioww)[1:meet_criterion]]) +``` +This then yields links to the north-west: + +```{r, eval=run} +(nb_sc_50m_iow <- addlinks1(nb_sc_50m_iowe, from = cands[2], to = cands[3:meet_criterion])) +``` + +```{r, eval=run} +pts <- st_point_on_surface(st_geometry(sc50m)) +plot(st_geometry(sc50m), border="grey75") +plot(st_geometry(sc50m)[nc == 2L], border="orange", lwd=2, add=TRUE) +plot(nb_sc_50m_iow, pts, add=TRUE) +``` + +It remains to add a suitable generalisation of `addlinks1` to handle a `from` vector argument and a `to` argument taking a list of vectors. ## Unintentional disconnected graphs +Sometimes apparently sensible polygons turn out to be represented in such a way that disconnected graphs are generated when extracting contiguities. One such case was raised in https://github.com/r-spatial/spdep/issues/162, for subdivisions of Tokyo. + +```{r, eval=run} +tokyo <- st_read(system.file("etc/shapes/tokyo.gpkg.zip", package="spdep")) +``` + +After correcting invalid polygons: + +```{r, eval=run} +all(st_is_valid(tokyo)) +tokyo <- st_make_valid(tokyo) +``` +applying `poly2nb` with the legacy default snap value produced numerous singleton observations as well as many multiple-observation subgraphs: + +```{r, eval=run} +(nb_t0 <- poly2nb(tokyo, snap=sqrt(.Machine$double.eps))) +``` +The legacy default `snap` value when the coordinates are measured in metres was 15 nanometres, which effectively assumed that the coordinates making up polygon boundaries were identical: + +```{r, eval=run} +units::set_units(units::set_units(attr(nb_t0, "snap"), "m"), "nm") +``` + +Stepping out a little to 2mm, the lack of contact ceased to be a problem. + +```{r, eval=run} +(nb_t1 <- poly2nb(tokyo, snap=0.002)) +``` + +```{r, eval=run} +units::set_units(units::set_units(attr(nb_t1, "snap"), "m"), "mm") +``` +On that basis, the default was changed from `spdep` 1.3-6 to 10mm for projected polygons, and the snap value used was returned as an attribute of the neighbour object: + +```{r, eval=run} +(nb_t2 <- poly2nb(tokyo)) +``` + +```{r, eval=run} +units::set_units(units::set_units(attr(nb_t2, "snap"), "m"), "mm") +``` +Where the polygons are represented by geographical (spherical) coordinates, the new default from `spdep` 1.3-6 is set to a value mimicking 10mm: + +```{r, eval=run} +(nb_t3 <- poly2nb(st_transform(tokyo, "OGC:CRS84"))) +``` +The default `snap` value used in `poly2nb` when the polygons are expressed in decimal degrees is: + +```{r, eval=run} +attr(nb_t3, "snap") +``` +This was set based on the apparent "size" of 10mm in decimal degrees: + +```{r} +(180 * 0.01) / (pi * 6378137) +``` + ## References