From d3db8d62f6fc6a7dee43978ddc8356579b502b37 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Wed, 28 Oct 2015 04:07:15 +0200 Subject: [PATCH] More work on ErgoDox EZ default keymap --- keyboard/ergodox_ez/Makefile | 16 ++++--- keyboard/ergodox_ez/config.h | 2 +- keyboard/ergodox_ez/ergodox_ez.c | 29 ------------ keyboard/ergodox_ez/ergodox_ez.h | 21 --------- keyboard/ergodox_ez/ergodox_ez.hex | Bin 65976 -> 63664 bytes keyboard/ergodox_ez/keymaps/keymap_default.c | 46 ++++--------------- keyboard/ergodox_ez/matrix.c | 4 +- quantum/keymap_common.c | 7 ++- quantum/keymap_common.h | 7 +-- 9 files changed, 28 insertions(+), 104 deletions(-) diff --git a/keyboard/ergodox_ez/Makefile b/keyboard/ergodox_ez/Makefile index f9260b1ce..16ced9032 100644 --- a/keyboard/ergodox_ez/Makefile +++ b/keyboard/ergodox_ez/Makefile @@ -27,7 +27,8 @@ TARGET_DIR = . # # project specific files SRC = ergodox_ez.c \ - twimaster.c + twimaster.c \ + matrix.c ifdef KEYMAP SRC := keymaps/keymap_$(KEYMAP).c $(SRC) @@ -84,17 +85,18 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # Atmel DFU loader 4096 # LUFA bootloader 4096 # USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=4096 +OPT_DEFS += -DBOOTLOADER_SIZE=512 # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +CUSTOM_MATRIX = yes # Custom matrix file for the ErgoDox EZ # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend # NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA diff --git a/keyboard/ergodox_ez/config.h b/keyboard/ergodox_ez/config.h index 850d24579..583ad84f5 100644 --- a/keyboard/ergodox_ez/config.h +++ b/keyboard/ergodox_ez/config.h @@ -52,7 +52,7 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 2 -#define TAPPING_TERM 100 +#define TAPPING_TERM 200 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboard/ergodox_ez/ergodox_ez.c b/keyboard/ergodox_ez/ergodox_ez.c index f7e156b31..78e956a04 100644 --- a/keyboard/ergodox_ez/ergodox_ez.c +++ b/keyboard/ergodox_ez/ergodox_ez.c @@ -4,10 +4,6 @@ bool i2c_initialized = 0; uint8_t mcp23018_status = 0x20; -bool ergodox_left_led_1 = 0; // left top -bool ergodox_left_led_2 = 0; // left middle -bool ergodox_left_led_3 = 0; // left bottom - __attribute__ ((weak)) void * matrix_init_user(void) { @@ -92,32 +88,7 @@ uint8_t init_mcp23018(void) { out: i2c_stop(); - if (!mcp23018_status) mcp23018_status = ergodox_left_leds_update(); - return mcp23018_status; } -uint8_t ergodox_left_leds_update(void) { - if (mcp23018_status) { // if there was an error - return mcp23018_status; - } - - // set logical value (doesn't matter on inputs) - // - unused : hi-Z : 1 - // - input : hi-Z : 1 - // - driving : hi-Z : 1 - mcp23018_status = i2c_start(I2C_ADDR_WRITE); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(OLATA); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(0b11111111 - & ~(ergodox_left_led_3<@E4 zr|IYT!|QGR_w|1MzyIg|vv3~xqfkG5TB`8D%D)soKBvj=m!IkIbE(2}6+Rz$?8`%v zb$nFe<&T>8v@cD@`ce3K`L~7Vv1&ek6yDd^WF5NZ)Bi)^sSBU~9}53;;miL+;a3;F z{zu{KIvwt(>2Q5j2X7R<9j4hYef_yi^Wi?tzCTaXd|7xsRN*^?pNHw_zv*W}M5fbm zole(jI$aLa#ec_^jfXW~#t*lj>FmGbeH60b`DeOZr>glW&HTN7uG4`J3r!v9$P)>h z*K_1-8^IR^CkjoDJO8G~X`UhWi4K4x#&2`64mte! zQ9cef&xgqmFn{9TLd^>gpNbm@D~0&aWG(!VCwVzhV=AGwO9>K;9e?vYT7U9|HTGwk zTJF!mjr7anPij97N38@YtsiK9rq&s9o-}=zmi+O7_dTs- z=jgcws?ZDz8C5xY;6I0R(=2OKh=Q|Rcu`>DpRBA3uBT!hzyHjRo`sJ5gZ?fwOCCS{ zT&u8bJ)FYg-$HWd%y*E?Kc26`JUsrI=Aygl_jT%;Sjz4R&5dR$FNFlX2dikvsqYwWqGL#`!kbIgBkB9wC2YU`$$q#ey z;0QVg(*h(cw9qZy=D`gs8(;RTP3`~j@m3>fKeiuVHnT6tdl_)AnG%tGeH7>iUN*~b zx8{cO{PI6v9(Wbqm*$2Y|EJ)`cc&60C&u`*X8-mr)aPTZR)^^4&qDn`eZMw0_VV1d zUag@Y;Pq0fz^RuXuE^?@CvUsXUKyk-1s=^h<#}JrxA%uG9C@xLulBZ^w-Q=9tTQvd zhFfu%r}=nf^yX_Mg`elc>Vwx4)9g6Enr4Udz)a(T!#vN+yw1n@G@o5emcueH%d+;G z5;o7J zBf>o%gys@a^$0&v^8+TpGB_e<&ZEonVmUnTgU_nvpLJbMb`hGNP=5%`l<|S}cA9&p zWVWvi<8p)6iwvXxhhsQm$02U%*-d+y)v04W`Ph0}=XyPi*IUWPtTaMc3Nd`VvV_hm zf)iXlGLeq2=~gsTWs3VH1!zdlTX-Em@$k}v5_$fp$+q?nA8UnGkAKvJUc^Mgva}IvC)ZDG?3oQvQGI@*!&-BR{ z!uWJKtr{YS_4T?iiyp-~CN}+9f6nk0+x~Ri7xMdy-`5;m)Xxn0YJE%(>OHeQA$bsS zINtbqy1q(87nz$MuKqytKNlX!W&? zN=bu?>C&u=JWKNhqh?|uC_Z2^u0PB(NouP=qn4gXCqH0bQ(HRAU|r^ELIMw{w4ym; z1vjB=Fz`sB^C)!kdn!4V-iRd@E+47!{&UrWc`y2Ne$<53?EIne<9*}y&oNzF8S)Dj zz~y;5)Nrf4Vg|D=+okj9($)({mSGw+YsAQlbMt}+!UKnSQ2aALy0Bu%5AuL!Wz6gK zD<5bX<)dh3u?fvm%=oxAxlCBaanpWlse)B`9;$GCMIWP?REA^W7!|Z#x7x!|+rF;t zah9Lc@@$%;pI<{G*D{3GM^CRqKdXeFwM?waGe4ft{1gAZ9GQ8nRWqNSK74rczvi>@ z%t!xw85Gk0VSdZPpY?%BQc|}n&vJo9&AIvY-LVYUDB)4`1oxVCkoIteg`o9#d(=!> zm1kFz1Ixn^mK~p``w2e#&570jcwQgv)U3+$;XF8u1>j11KV0mZ^-%w9eJ!*=|W2f!5Y`J&wvVB6);q_dT840~CIh z)H%vpF8b16$Qc}YlpxVY$oPZ9gQ;!h9%aYh93D(vOP*c!8I->`JSe}G=07UW-v{}3 zTwCgn%5xcL8RT~k52ik9nK-JSzYI!ocrf+QWJI3-d&ek5xv{VNcP27#k!yI} zWGK)7EzPI%xkU6B`EQZkbraAM_ArG-24b6X2o`;BUQhh!?PV-O){Ajnk zu=0F}R>KgsafH3(`+T_a9ptPf{I-VH+|_eAFe6zfnK?KJD6qp%yQPL+euzTQ*z%ZR z`tneF%+agbaca9>G*6LdEpwZvK5DyTRQm8d9yy&JCH$JT8E&;*Q_PGW^v~$g10GJ9 zm#4@xOAex>LO}j@YAfIUT+d~yooMd|4~ec&?-`#0LkOF(9|XqbSM&b}lRa z%uH1+8`0179h*+JVFqGz^;35HiI6NaxUS2raBr2s)90S?`(xn`YG^%8LhS zVNBWLbi4l-<(V47X<29gnObmtOkP)kM-2)(4sKj*coaCC7raj2^SU_vxLqYkIE>V+ zOEelb7@~=J=auk-l@LEG*|UaU5JoYC5rpdR+7`v@gk}mbH!K=^;Ir8lm2Kg913lKKIwQ3NDf7x9(84#+yB0MfBaJ$dDOPB)|2%bHYb& zrDSj_W699}Q4gGWBf&@Kt~vGw(gd$@kr)&iM_f@af{~Q|`CfAnk%=H-R68ig``2Nq zLAger2|i?4hDg?9);ZdGm2m=FsJR;6*Shx+JHBy^ejY26L!P=ZB`!=@d}wMWlGh#( z3YO0C?`>c<{ZVZ-H?k1!r0mztrB;G`7JqgJqh&tpbuO~Xs7Y+~Qp>SXK}!F|%sZ@qJ@V|r!`@Kh6vzyBByW54 ze0*I?Ki?wHC`FpwLKI`{(pd~cOrhe&O?k#f%H-_YkdtBSmS$~l;@0|ktX3>>uz|G? zPM{W_WaysrVX5IJW3ALJllCQ=^S)e+!KW~`V+xZ(84FOd3tbrBeOe9IM}VN5fhC%K zol4~zcjIp%&$2Gm`XWq{dY3yP?Bjw7uwX1#&B`-HSY(z5X#g}P1|_Q^-)LN}%Z+$* zN!?9(URmI*Rtm;#)A+84H9{r3W zq(cwvP*s-h&5@3gXdL9-Dx7s!o|#Ug*A8b3{?6+7DgAtpex~u^=4s1NXN(o8r5gTz zYFgdZ&vxibvE)&bGzbh-gv!TP*Lc}&eS~A&(`Lb)|OXl%PSS2MxN&q zQEYNT%FFF^KAm2?zRqVJecg_)^M&lfCApZXMD(FNTT29r4nBXLKd%>*UM}kdY~jl1 zxoK9OZ+yxB=GPe{gm@BzwvWr<%B;GPig`8}%Jbv$I;EE7$&WA-#K&aeX?|L`;~Ni~ ze@?FxOaH<`{uF~mijYWtjCM%6%yZYQJU{v33H!)df}7x#Fg`?|ezf|ay`w!3<(a}H zb?`#Ym-Ph&=k)@vL;k(^?eS`)(?fZF-R`dxd>u}76dRoZJ&_Ya%obAxWduHy=ZimJ z?>-+-Sa`wYzOdL{;K>E2Zz45X!>v5SiU(Pf$Ay0fAEbW(hKTt;A^%C#vk}({v01k8m^CC2OrAw71q5d z41FtAnID87tab4J`IrxF1U{5!ShUD%A9x*T`utkv{tTzuD#%1R!{ZyRy=XV13BR8b z&OdoRl`23UA&&t#FaYOuh6&Jm<-yC~JtiQDxY0r6oe@NKStlp7Hz=+b?3zg|5x1%D zZ?&`uKO#L#avnNazsdN%W)!oinWwLL-()Dy)K1_E0b6ML`C1&1GxT2g$FhHX)!HrY zhv`hy^Nia-MrWR(h;*?6btYeaL0)Q5o{?v1yU#~Dxpa+9?~1S9uJluRo|*C_B^ZGh zF*Ri4feu00T=<7RLLiG9$}?ObF2TfvZRAwR3q2=Uxsqr#q27tPr}CT`q2N1X_;-4c z1FZ>hJKa$XRkQNkg)&Q~F-y=!=nMvj;cgG;sXTY#z)h2^q|W_(DpkNQ{PE-b zoQTY$5cuch^&j(bf=Q^6>Y(z>1SQ$Zi1A7vqMy-3la<_=0d2TOm*Z5@+T{%G7*PD< z^TE$2{=F{1#YWA6^_IiTT(m`a!V!Ym$bp*Q;8nv6%V4GJnso^0o{ChSXj_V2IG$?FDO zy_9DeFE`GYC-5HV=R4jHno%szk~$P0g%?KZemSGE&gbh5?R8psB}92SWBgtluJcl! z&o>HS{P9XkpAI1t{Fgk#7@!VkA+9$0J6go@GeAfn$;`y0re3XHk!M#Z^8ILkB#p-v z*~P^6pu3$%zzL`V3c|kEd494W;qrX2uQR+T3I8O<5yOzMRz#{vu(iT(sBqy%HH|Cq zR_I^^l7|a^=5)YR`z*w2g;23rA)fqJA-I7Y**B?1v=C`jS}C%IG9OrxPZ~jN{G2tl zs^&^$fP96Fea-5MF4W)u4Bq&5MdDvVV7-u zn+I*ILdqa zLy}Gp<>dOj_d-w*TE63Z`X0S-J)AFiAsB*9hVqOhPGE?cfhl}A z@cznsOyR@KdnQqBlbHhi{vjz$ND3o_R|+`&^sks+SEtu?7=csp&kV&CHNL(S`qvHo z3C%z&g3Bx-dsre$hzr);0AwNSr~Bn*jWIE41;#=D;a0{8drv5QdVCZj1DA)N3#j`>OUcgXUIXct`B*2D^;nj%K{Yw=MdU5I|MWW1S~ zwY7(RRfFWHt_xmeSg0F@QbeX{@&3Bk><<1}O91t4jV>9ukHiP`3;D-zvn6RrUGUEg zw}pN*t5|dlVZeHN!=m}b6)U(qP9$W|HuHPEy;uSf)7W;dQoS&3vY|YGU8U|%HqVWf zpi--2>ynGj%z$8%KWFGBw17oDR)Xd9sp|9L)H1k%xX$dXc^8g>pq zhV->Ovk+~~+aeAVT&bF4Zy*DRCzEr~X!IOz%+3^7+gtH@;Gg+otND&cQ5~~p<@;F% zRq)SXX-^kCcle6nkB}jsU%V&2NGP!^nc$y$Mj&y=ZzDLD$_@T`KZ1_h`39LxC-m=v z@p`Q^`g}Wb2YzG)fsF- zle6Mm(b)M?@*G$_BZmhC7wGv`Q0+vX%+GU=pz>^|Rs$c`U16;Q&=D3c_}LWva|+85 z@^@R!E)$?S{5;igM|)Wq%_gfd82OAuqiaUtQj7!tY~e(uersOT)lB}hRE8_*kU{g} zARKlz8^$6?oWfnR@|MU(fr> zV#6{)Xqh!CONC~!##SX?FvLR!adqMmiHm+ITpOLRl}2F##H3Iw)zCE`q}|;B#SQFh zSF6#HMcS8tY44Cl@Xy_mJ?(_!uv}O`*{4w{zbW|V3l=WxHU{~E=Zket0a=)WsEu2b zp}moUy&3bh?X!)F*jbP3lM1^IO0(pYN3w}$N~-+#teoP%6F-uEk{#@rksFoo z#@4rkSkV?Hv-H+6O*i%5RMRRO*Z%4tA^MP4pmY#z)GV#x!l3mD;ta(@$7UQP$Y@6_ z_-F6|+R9%^NUP-?2mkyJkFUq`^Q;Z3-Lw*W8B#}hWheYC$BroGktFy)%X9G0JWbs8 zL-5A~VO?eMI6Z)xF(0rBf6#kmmdIZCekH(x$kKO$-c3g28UCJ-GILkND%`Lfi{{9R z1$>-y42ovudHa#|`eXqDCVmHp;4@MET8>Z3vp*n~0*X?o7y2WsF5Vysm8w~JwlI!4 zfydAs`pLOjYu+zShVpFSW`%^qas0^a#vvc?kr#CEs983{b`!eHH|8R8lOc9KlCsuM z1npXd6Ww#BsGYSrFrbyRm=yIu4@&UQdYL81)c_=46_-AW4#GtB9;kglnxZ#7%4Ryh5rQmTCbT)U5fG-KB+9)wP|QNE6>=KZv|5$z=l+U+1b8T@XtNe*i@MrPA6Mg@m+l1-m%#S zB=W|jWWmAa#vEe-($RyBMj^2M4=qTE*Xeijm<8Y+4|Cdq@2LqDNPw*bNqJT`V1ZCi zUYRK<7*s6};{@<=j0*&j(&=3xfFWb4eJ z{8S_mWg zql@9KxnLrG$S?s03=JkTsjN~mfl_p|fkqH?go=mEUpg=$sbaZ=0Qr(8lYOoqGtDaX zVBrp;2LF6!M~AifLjtNbqSPB+cZwwVXNQ>38=FBgav2D1y~qXMb?l2Mog8$tRhP2|Rzo8%!n{!FZpk-8Dax+Xa>NH8_torTZs zE)l)Uus-Y>vmYzx#kmh96WQoC#`q#d9bEe~U%#lRnH#U9aOwaC2ZUhM|WwEI^gZ_(P zIaBKB67~t(!4Fo!k2mfVNNfVt1*wT~@ldhqlRK>nf`9&G)hBm)xPyP*YT8TRjyv}n zl;EHDtWsaJd}vnK@lNXm|J+h%F19DExmf3+V$ixS_~#j!z%Ncnnf{`#hD<~&F<@=; z=R^v(le;Wz9mPISCVKcg5{OX<%UT@w9o$WV+B8JSlfo##gkkNN5ffsKx~AI**3Os7 z<2C;02;R%L!f*fY5u99Y%Y+F2dFvSAZ#$L|+{tz?$Hat(Jhz}n=y`~_G+j@C_N2WW zgy5fxU1DGi_xOE##{|;pAa;*mGU>xYaYv*( z2J3j=0rudZooh@0;x)f5sNikE-`Y3{{`pMsECumb;({2x_rdzyA?4to6D!))Y9TTi z5d&fx)3pXA_~%ZQ`NNTzr1W2JEN^sjW?d;L7vL~Dm<33chCoIA;sl%$${!P9s&H2D z&k7ITXx8gY{aCoDayaMO*!jWa#a&^s0J6er2@v$X5yjl3?q0GH{Bz`);c+dA;3(fP z!#uJHjXK$5x+%|_@H=Bzj_rf1RqPHPY_Bc&=LiqACVBg9)|4t>=Fy4Kp=kYZ#>^Na zXSDW6H#_JQ{IgR?-X6&SbODUN?Yo8w1pmAhs8Otk*fsII%awNVf`4{+Enr7M6i)hD zTIUA*u+u=14@*Xp(VoWbO-zhJXToohMAfFwLuG34Y4Ha&)s#PL)8ci#WKFo3LW9qp z{SW>*&10F<0vQnsmHix+f=8<(H73M2gOWu)53vHfV1g`64ok$=Mziq^)-*adjB7^_ zH;kdiL5HQPhNbL{;GZME*WLPe+nE#$PVLa2f`8u8jF!a;ZkxYIYP&A@=cdns$FiTh zb5t~MgZeRhe1^TQ%f@DB@L$Dz!ivQmhaZc3J-?iTz{PW|3x63>_#jE|7^{zr+qc)qBdprFp%KP2Y`@$g#L!B zlm}>l0b;Y)ctGBBXv_v9L1g*k%l}&5?&Vtr|D1J?bmGOq=fRt{8?E{N4sg59lTllZ znn5TB|KNSsPRZ(1Nx1XC&c_(AGK?B3jW!YDqJQb20j;O#Li9_Q&w;xTvPz> zY2cr$HgMz`r!UZzFSd3+Z&m^bzB9Z7|9nS$ZY!jZq^&h;rXfh7`&F|$8UTwNgf|7E z@dp`r_$-(Z?jl-|Kn)j0OZSezkMl4{i`&CmIfLhc|F?9??-_YUW>5}sz??e7c6q_u z^gR;TaGl_vAprWyLiD`~#@A`U=sJ3-&BV9yTemFqKZ)m3jKM$a+#(V=Tok$zFf(@O z;xij&DOC{sGm9VFmXQm>lHgb@C5{B6Q<%i`tb?{Dd}mBfKpx_e(3kA*ARkx;pnTQa zU&>UoEFtW%MC8Yv`(cYp;#7j9KHQqe?08%rtZw+)kTjFSqA?_~eAwWhos{Vif(`8~ z4}gDSosZOZ0b>1ynoH$+UX#Wf<2y~6VRXZzo0)-V2;rk>i;0Jr{ZN<5A9y@k=g*9_$tnRmyJE^;)oOP=kWkGk5XF^yH zevsCzDGHRT7WVmCyLF5~j1EPXiLTzoxhmh9@p1$uS+X%sU(J_;#;@{Gs}&pes99n8 zFZp;5%bXMdg=Now$wzrW=D(b<16b9a%R+=;wS1J}>i$Xep@IV^s*?oNcb^e~^AJ(C z6H++B(uI`|G>)^Uhl5e_K{|^)y2!^+GVp=I zazpvR7G&4-PDTi@D|5EYle?AZ6Z zYd(~W)K&=20HkmW%w9&aC4_vL>75E$NTt(<;ijhror9eW5KYqYNo`*T<`B20Fop&b zia%@%vfD4tCPPzUQjiI8rLAsl!ptt0-lUhsh)%xaUNuy6!ZYxY#;@i6euI|+*i zgfZU!l|oiwLj!HF28l~dtK6eV;m#o|o8Pk(N6b9&MQpp4;XHuPW!~a3tO7Q%rRLHX z$j6g4rhMcPF8*2hY_qxvWuHf4C3QcTo*=3&P7;pd9> zct+zW?9Aq5Xm;r&K?fzgT05gzasET%S%eKiLRF2BkdcH0fZSj**)}$;f;6J?o7v}1 z@>)DDCr~>$J6%^BLksX%vca4GZ&1)Jfa1&Kfcj zfaa&5AUu-GzQRV1;Oy_%+*pzAfRs~Uy4>zW{%{z05Tg+P3J+W8xLd-8h(`L6G{%H| z54*4%aUraUu?y{4@|>zQs6J`ELy8#g*iAK42L2hkV!2>Yu^))Hv1Hsl^zeOc`#J>w zEWIItQOqj|n7rbv_*#*`L-5Zyg-pe#U`vA>)J_ZLz32xu6Z5JLD$ijV%_W``mcetK z8QkF~A+yIYi4Va)Z#B)R-^e0Q)Xg zIQrTJ_P}ejFDORs%KV6O$>&ZqQ@E9R@Xwh-s4#2E0}N|4Yph4wsu2wSS+{8K9>JdB z5iz%Um;)k)hz9?x>QW>@qehAECxhQ_+)$pe5Yw4-RQh%A)N^zw^monb=dq=ye#}tA zl@uJ`)uth|X1Ku-o9gH)Kr_^M%w9a-SA2tw1J=xh)hF?RrXNZ+(kf=|Id0SfJiyr1 zMkk*Sf*#9}yp@s({`o8096iZFcNFI2z|t;#zg}fH5_L9)-qxnlNCW?D$GX6d3qz|S zvZV@i`awjc_K9#+q9r7vj7(&iw&sFGjq{-m7#MjEfX2r)Eo-RdPI<@UsC$PLu57Hr z1tE&^%bi25u)#m)#|oULgB_sEq>!8;NWniBH#Q9_oq4E+zRpB7ms>N%0(SI^Y_yUI z{uw#gWaFDAEeI&*%8WtDs&xjSAxW{s=rmDEH>b1Ru4q=Cb*`EIY$qnP!asMvqaH+2 z0dYXuYgz^Wj6#`EENtxLhomRT74V8iVw6~YN9^km{Bx_Rzcf>8BzD(gF`{`?Q{Oa` ziSmLb9)f>{X2y&KQugumeVA*pM^%)CSRkWr2csv3J=(!uInvR?@3+q@xUK{US)y6g{|y7mDb zpo$K{F2O0(1Rym9hEoG8D?%?Uplslmy0@$;=)LHEO8>mL0iJ8cBX5LVpH4le6r_ysU_~%g@ zMt0TAaCowZCTtd?!a{J&lB|PE7Ib9_{dn8ThBJkI{>Vqs9Q(OC6)~lcY>9XX0z%83 z$a{B=o|CDpnI8lKiF#wx5(eOaqnY?(-_)`89UpT3vwl6WKtdCk*~I-cwDppm8Ej4E zD2gIOc@~eRHxDF_@HU$Z@sxdKKWb+CR@{d3Ox~Xbr zgozJuS|yqXTCw1NhdHcdy0!DjKqIeoY=dGH)X1p3FAr>Rsc7A1JpXIHY;+PN; zvSzMj`jT~2$O@eWzL~;uASMsZM@KhDDumdq3;ua8qAq@hiO|ncVM$q*@CW}4x{rZ) zParmr5iV5I=wR^Ak`Ozogg+$dAsa`6q`JGo%MTcCMYpXl7dutJ&ibk}B_{#N4hDh5 z%G;W<2j^9C9CW(eXlrYz-KeZKiB%7E#sa8s3bO`o+r9Q{V7q&jd=cCaiLMM-EZP>~ zxpR@IYxX_T!CruZf6hXKuxDvN426#D(ISPRI^_Ik72%zg;f^!-kNP6o-QF<@i$A!b z&7lR;=7eU1q&X;sB|ZfI%zlU%fhds_KnZY&8C~&}-`a%W6qYQsTz zb2ciVUk-8YV4XsA18&Pgveu#*{IlFJwTfIb7zP*6lpuYl;ppIkRL$z=)apQ3D{5VH zv-b|N?gJdE!rB|w%!2sOE?Z(k#`-zszX~hQ>`&n+tPyG5TG2sZ(U9gslpTV9Zt03Z zF>BcLqAbmP@m7$5XdcVfI>L+F)hO(c%Hxb8<3>QXd7SM@b%pGo13q<-nT;GaQ{ zWyk?Fo*fLXPt-b}nUhP701&=4fVQw>Tthj_A&$)Sn1DiLK?GJ=Sw`eKs{)UA?d z?Id(L_H77K@Xx?0St$Ks#O*#Muu@TMdZ1?Q{kNK(B@Y(jBBRZo;GaXr9VMf#po7#* zCg^u}aIaRuKYyFu8;X`gf;z1e{PQ<2BJ&cNo6kgvi_gJ7@3#=cE7uIv7#jzHhxt&Y z&j2jbKO%X;)!0lyloy|X0L>9~>+T?tt9@1{hb71j78Rx;04onS;20tEuvj+J4NXDK z?P&)8e8c-Th`?D*ugimi9N~bs%jQD9y`hInkb-|cb9$XMEd1`GuTpn3ow{nK4oEWL zQC~OaErrQmcz_dL(a6tpa{;~s##Yy?z2O!l@O~&n)E0K!2@yJ;7y^%{&KO*sAL#UORiOY??h|7h>~za2@T@_+nxZmrQ0C zD!AlA`u7}a%^&11SzwYSq)?kx=yVlU;@lZ-4|c38cj| z!X3qujo_bWhEz*hoC#hJyT8a!P%Fdk_6Tm-88apLXROx@3VS_8WpHOH-KMagnG~qO zDy)9CFzC=f7yC9Lf`4{~>{V`O(D^=kdael@{4?hcxGC+=n(L(WL-5c4Su+}{PU7Xj z4``-v!2bJrx1VZliw6JP-a8-?u2(&?*$_j>fkGNJ3ox8Ww)UNG#$*Fj%Vh#gTDAe-vTs~+ei+3^p%$bQDp$h)_A6hNo z$rE=}8CG~^GkG*#ue|E+x#^z8 zp!N^KAO5tgVINKfYl-Z0554bYAKT_z>R6O?HBjQFNZdp3d&Bnbq4zyYROcoJ{@FeB z{vbxiJ@mfEX~&Eh@5_G1deCCz2S*DT$zDA7(EHv44hVpD{5j`8=LhpW?xDAk#)*6A z>0Dq@rTK$@rq=wB9g6Our%PTu&k$ zyMj>rFGR6~pHN2Jf2^*LC0Q6($IwfjgMZ#HZH!4A5lx{))eJ&4Hxl3YSY0hhFJsm) zq`0#~Zv_90`2=VJlmcoQvz0BPthktOs9PKd;*q6fh?W>fg3pW^AZQdDOPn*iMp6DZ zG9>tCM*DGR@nCW1oOtSHMKNlH|C5EZ*OcI&A9vCy*rB-5SsoratBKI(lUNjse{DoP z1pmx&KpYOvS^~{1SNv~;@u@l1W5=IayvCpy+h?yojKF~4)lGB`x$)7?;t{82P^gu2 zD&3Ww1K13rY9+8L0S>{yEK@D`XAITQiY>TV1RAd#aDZcuAzrB{lJ@)|Sst$2HDZ>e zM!)AoUQTEqgQB{@X8zj%L}oxcRbln>f0>rf&)O20kHHw3p$7r zo#QBQsqh|5A@P}`csNpOJXA*>B^M`vFnJVbhEqzUk6}2hDdqx~+BEBQf%tL$#)a;9 zZ8Jz^o;i=fgY{G`<9J?e`coq z*Kl{RI{4@R#f?^9$Q0b*V9ZQb2LduYjnL>I7(vk040|o~NF)QLB3BMrT|L6YfA+zd zjt4~6Z_E@Y6c*v(&Y98x!0D0k0t_lFfcxWt?fS$dEzKYNv#!5Ega_-yk>SCZ=0LTv z^Gwa(9#HVlS%#^NVBXuY`}m>UQVaZ|YgRvhp7x);ZPbWr{lR+SLj4sRyYtY{RHj;I@n_`3@ z{SWn3H(8)S&|2#heI zBE4933n4iN|GXmLM7hX(j31AD#(Z!adCbgO+6XC9b6H)RL1G8p&K#o{|Eadu0o9-#N7R;>0toz&x_|;doBeF5 zGGg3nPtE_UgQt;9oCll*J`>9mkMT9ET$?P|!TJAC^V&7Xex_y&{&c9Fg3J)Ouidc~ zR-XTAzWY+Kf;sr-|C+E~U{WU`c)S@kmpRPFsxBGBN+Sn5B_!sD}z8Tj++0ggFw|Dg^{$1uHVt_s+5eV} zg4%+0wQ4$s&E~=3UuB~wZ0P8Y{6%|h-(X9rHJc$tg?W&&ukk&2brJP*1)aG3hq7Fs zH}XANyXey_#S}`oHlGKdv#&cpLU)2U6avSe7|oU3gEem*j6ADgz(RD4Bi<0vM?D~d zcO?6(=GYsgjr_sg%WgE_JsGv}9j+dU&?+4LEUvC!wGWToa){cna*2J&4Av3x zNW8Lvd_+;?5D=T-1nYc$!oVqv;xH=Zvd=5}dON0x@x_KJGL&ZqgPo}3q98O7^8Nm= zSJ>d6dj!ALYRz-0FEL{pf#doiZp7R#@GW(P26y56l{#yNq~FjMnhw+rVUIy`M1#y5 zoNyN~_93}8%yAkgj*Cx9WqeVEm1l6CemM>yB{gX3&u|t;@UqByNkbJ@p1EV4^LlX1 zan6+mZbxH70_X~wdXoOD7^6pm{n8wHhVBKD$g5#7@CvxJt*_vpg>aD?W6|ez9L8Xr z8j<7k?@C`tKHG}!(nw@*Zx>XAHfZ#WZT5<4y(AoPLkHa%gTls>sirWO$x#`bW(iL7Xh0uq zha5 z*#sG6RUBUK2gRl4JwxpBWu}_k7w0|JaI2r!C|wHe9eW&}Be z6jlOsrgb=b!xP0o8LAiYByF8cHN$#i%Uz|sYEF_~+IWJ#mjX zoBN4d&==3PDREXM(85qd(BR zkWX)4%6XxjI~s8v>9e3bx$I*gaGY-nyfTbGm#Jmcs&yU8(D*az)#U?*wH8%GI~Lu; z&CsJbOFY%0KsLOdf`Ed7KNF7x&dR9?{uy8z=sk3eQGX@@$Izjz$HWEYK>l$^UGUE+ z`Xif{0GB$e+01~ONCK2DE0BZ~Ynd1m33;Yt3=nY{LgY}(>4W10Q{#hd;!SwBvOz zmP%qzgyu#P2!=P&w47|i>PgB#o-3ry^R_pFfBq{OAfJ;UDAo=9GlPOIm~WpS*N|h4_wqnP!d13X(a?ZrWmBv7FX_0mkOe2y*kCXQg5(Ul2!`; z+i-TmnFCOSwL+YKqum>PMgA8pzOd_({+*?Oou@K2NLHe(L zZZkgkXKQ4G)gah?3n2}XCx6cJ00EOTr3d{{#m`jO z2xcMB**A^4k&%1~R*V7aKQ(F1!Qh`&t7^_>m6Mdy+Fs5-liYRD!#G*i5i_yXicqyB z7$L_Hm=){cR-VoCm^bN>bVD_h751Y#{JwNu@Xv1Lzfgl%!)zGxrXgmw4>|lDQV#xk z&(m*gyqEPg)P_JBc$%Zf7=+IU>MA9yC1~Cc!cnvBLx|7>&4 z=$=NOGpDx6fXbp~PH~DTO5aS)<~WrP&Z`Dr2b4cAKA&Q!@?8Lr=;i5J$J4&Vg;+>4K+ha-sj0~#sL zI-Uf%`nGa|e-?GhLB_eIOp{0aLz3f|6i@;xw2P)CyXX z>uZJ}1^*0mlAC(`a^PC^4RfZ9(+fYW1MD!EmRKw|V8_Q4Bir0(8_w_ud8WCA+E;4F zP2!e=cN4jz5Wzo7D>l|W7taWH8_-EZweO2Zb zIs*rub9{(@BLyInSX)|8U9zInVnq}Mu~g%K`a9=f!hKNc?|I>8!7l_3xYRu4;!)m3ri6TJ-Ku^3OI{H zq#|G6V4 zWFQF;FyolWe8(=8A^eSh&g^D5nZHN|D(i&(Z{nGA|G}GA;m9+y3oIf~5=>xTJ#UY_ zxR^vZ?dZP3eE}$v(Ju6;Fn6tDv}4G6zCFnp4OcGsXzw`qXPaH1!G_7Ta2>LtG7@lB z!sKm(D)?vC>nsxq`r3lR|EygCNaAfAfjf`$pU0Vi?lE`+xB*ha)JAWV7RAaydx;)# z{TASctLF$ZaNL8=ue@)=6%USZ7NPC{9Y30{QwV`y7VEU1yZNK>4ao22yTwlV1^@ik zygsAyjk?AQn{>Y0dDK4$U2?*k%MWnDaE0^nPRD`Epos<?VW>v4y)h@Y~%cx1IO|h3UC7A_7R2X z;9l_0`)1LZKeoiQ_x{!aJ!+a`Z?IB*u2@Dg{fBCs>z*2ry>tS?^*^O4o8f2x!!`Kl1f^?MFhr9NGcP&%mQM28>MQtXYclwenvPhDC-$VXiEnm41uYcX5Lj@L zK}{ipn&x^qWZ0KZ>jeMoQXJZhk$)klHvHz|WbVZsw0)36!c&wB>q69c9W z%(lih9?r=fvpe`_ra1Z-1U}a$T@le6BI>Fu-A;l6rR(6Zc8{7uH#HIHtr=2W>NryH z&wsM4=&pUo^Em(cmt_PfGfCMrZpsAuA*DT_fq(wesp<#2DaqZ8l7Y}iCRA5G91Z12GW>Ny>>T{_r@E?#Bg<;2y6|WY{<&%j z8Q)YwyQRTDQ$Qt?q5Vcq2T^nWbEJ$>Y<1Nds>!MApE%f0J|m*ho}**`kW;6-=ipip z3GdqTlRItp1poZOD(;DW*HE1t5B|An`-_}bU*r7ey)yrj9M}p+*_F0$AB#X5CJDI_ z^tDm%+TuC~|E%UW`>KK@j0~nVOI-M_YG|83_~(+YO;5;oB1Kn%KHLg@xHg6=_~+M+ zygm*SR@4s*BcUGzh^>cC3U-&R$BNf!$PjVm<~05-wRO=Mf&n-#XhI?zzv0P7*!;tY zf^hcKD4fZ`(gPP8azSN%dCHM{4^AvDtlKn%$>T%qzbb|8;syWgvhdA+HBU&sa$8}8 ze>Q1Ir3e$o2>-m2&oh*17MBadsus=QpUqnyEAdI}C=OWyzzz-3*v=0I|GXuLYAYj_ zt^p@@SYS%hLTk~S|BUfOKpo$J;~?2u&aocE0?LvJ-OY{I&vfFG?mf+irdfM~2q;lg zT7yQwF(NNx2yQzpYnjOT&!9mttc{*2PD1nt%gm|pf&Cm~O$q)vk$+gtZY+cn4-=9p z=0W1Aq|Uw6VTKHT;uTWd24=zpL9!*Zpucr2H|IZBL81)51zp4Yp}Hc|Ge}0w*b-aK zzTekeH|}v#5rwN@YVLy8-0vHE8Q)QzEbh|UQmEdyAQfgCIiTjx0ZE!_b^!B!gfP ztTQ4(hp!xAG6%=)Wl%+iD?Oz|9jzQRvVwZi;eV^WL!G)_R7X?ye{08uOYL>C2j&lj zIg^Ck%&1+x@mYHX%91&bbftED!KS^Hy2`w=c#gumG6w~8TQD0ItVT2>oLFC#v|R`` zL9c3TL7sAH8To)&{ciJoa_yx&=dD7F{PXy+e(=5w zYxDun45V-ca6B}dnrOb8wpnYJ)^4%lNDHdL(!1RBh3j_*8gj@u_gUK(!cY8y#d> z#TI4VzVT1C)r0zeKB!vZrcA z9j#kVjB;hT(`(uPO-?Q&VU$Ba**X3zG~eW;>^fF7YW7&j7Mi`BINdN@!9xr_Z}?~L z@ncu8=q66(BSz*>@y~2XZAWrHj(;+c7D$Jpk#1yFUCTv6Iw=|p!BO@UVlX1;%vom$ zuzN-izq!>}!5g@!+$ukGTPv4VXRZ08bvQ2%ir)j&t=ON;hO(cz6WWSt)cB&kSGlNc zgeGE|Vx1A#DOHg3pNY6)j4+>!RI-}5i1tw{C=m`|EY`)|Kt%A)U)%phR{2v9E_yjJqX zYj@}%YQPOct#UmXgPrq<2Ew>J_-q4 z@Vh&UxpKXheh&UQ$1{lo=!ak>L(ZuUh(F&|c4-OzIZabQ9C0+NGlV@l@SoM|g?l^% zDXXc+?cjd-16!^TYrEIoIJxor}AB&OE%o1VLSswF{inzc9LB2lYWM();R4eRe->?_*Hu!kw2y-Y2V zVu5@IWBsn+luPi>Zv_mv_>dtB9+He6l$`(EHF68ZEwasBLxK;Gerdnr+%4qaWxMcAWpbE071OW76#dwSRC4{yEL<3XG1SuXQjm zFe*?sHWGO3j;1@Nc#bVOg0x^#xDa!}A{N64IxWFJ8~E)r>jKIn{u&#pD(F~&%ew~> zAx7`DSwZe|0FF?b?w5goHpBl186?_(N)0~8l8ozt&5uq6)eWZF2bmw-DbDfD2w)9L z@Xy$sTj$tDrD>JUafDVNB^4SX>;cW-%q$R?i*l^2m_lQp=^6AXX9X7->Sr+zM1=t< zC!)_+ z8|r7)LPE2@Fr9zcSAv8a2ygu?rg!XG0BmeF81)~cML5YUqTzJnn-|5^KjMBxY{lW4TIE@%bq9mmy9ZS1Dn*Om%! znIk@UNAo{jYf#0l|Z0;qW>7FRbF@S1^Z@=W!Mev|#V%a1XiZnw4kw z&S2I;0fEX`=b(F+NZ3n#+SOiZadA8U=)Zm{(F9qzNwv7lJrA|)x z+a^fLvw~znZ(JLnYr^CmnN;+*hL2`t0{=8zqjnNvP$sQs@E)zw0zVV!U105%fn< za7vp4T^Ibb!339N<=!M^5R)WBnJGAOIO(-$2LH^@IKHDMe|&3! zGZ8!J6#R2Hx3wVKb}h6K82ocLmln8x`m+yh_PDY+fEkwbK@~9fdzT zlopP^Ez}9#Bs(0zJvR>42(vFY03#02SETLg0*27LjaG-wX~Il*<-6*92DwvnuJ0@Gq)PPhd{Zulk3 zgw4vTw#33~ek-gRhh@rVP}%>~>ZI*X)(8gw{AaB^pl#Z#Rq)S};m#43vW;ap0i=*v zW&~kXBry2rBibj}v=dX6f02_r=UD@j=6VH?k;M)5GodFoY>rq4>BH>qBVa~FgCmu8 z2l7whBY|O?`>TbG4CT3-`>Tbu?C0R0(;PkLsPv76Z2&3?wPAr%(5N~5R8{Q;rmaW^ zrelmOFN`1sSsVVX)pZ3vx2YEVb6W*H-1}Pnt;4g3I!+Zq%Ps7U-|Eq6`|oOd-2!e& zqR|x0=IruAWqoe7tNSz)zZnLJs!J0Mg_9-D6KyNLTW9=o@`N2UqvTSCo=^+rJuUcN z2dyne09fYQ@Z|Hu@6tw?4&^icbq4`v@wfXSBoLJb{R|j~NsKb6z5gg7$_l~25Tprl zHQ4)xNSKdWjn4W)gD*h5kUA|x_uM*RG1Yva^@s<#)NUP)KBBOJ1&k%Q4gWENS(PYk z&6s!&cZFGke?~15Hl}uyM*Qe!huK#-)6vV|pTnXvCkW#YouD%$pywpPR$D&@|NLJh zs2n>4H}KDU60A`Yc+KFz|5jf)|JjYKlCa_ogaktuMS`ss8r;);;l>|aFy4`lmtqY5 zdE0u}s{kXA+?Y&H zSkga`0lP+gV93Jf@OM6i%&CQc#nFfM66ohn2NU@VH&XLP!j&s8Afe}FouIM=|E%)X zjCh-i&P%5l^Re#2W_y!0gK6u@X%@lx=wUTIAA7Yzr|`$za~|H#B#CM+y16BV>3px< zte5bM=_7#9juJ5m1UplWS)-O}Qw_U%6yDFdOfzr4QN|Ilt!9OzXU0FZGh4LzI|LW} zvrRdT`k{@5liE3foj_|29*OoC;h%Y^)xe%Gu>k zDdhRH_S%CWv`bMN9ZBt9Cc#t_mh6oqh#XLRVqn(J^ZVKhxktLv!U{MAHrjcg4%;ZY zu05dOpG((0HCQ`1HbirbYFz@d1pnMa99b^T_}vyV?%6ALR-~?JdVGx`*IBXCn!aQs>DeQ3G$8DK7c^K&S`9(i5fW9G|(F zk%vYHN%#z1$FWlR@ya0>(~ZIkB84$<`f_AbGK?TR^M@0)vayWIS`=XeD5~9x$NRg3j|4OW3{jtBy&eA_R?klnQ;ECotnsgXGNQJj9xaWbU*6i z5_W=8^Ts+N4*Oc^$Jx(~g$VvR{G^lgY0JHCt#D>V!*zmx{-a~5)rxA{mwqUNBI{1r zL%WU=iv;(4!1d*lr*iRvf9}yD@tFr&Cb}=J7=wRCKfKjyp$E{0%JQDU1UX)AR^48U~?|I;xQWYy}>7bsm+Av8Zw zUArIeJM4yiIW(V@=g2K_=Fg6$FCI!Wv?u^Q3h!%80C?XDIF4FV*5IFe%J=+(tcw-& zEHC?+dmpHI8!>~vyIKh!CeB#y{~G+WLC0^iCAl|H3+2PQr4X8THU{T%;V2AyS{p>& zQAQxkIEC+McysY)&(TV^w`C5i<}sGzATkD&t4tg{&YX?3TNeu+>{bH>scoW4a?$*g zOlE&ypvM*8mcq>BW}ksmt|e7_dihbnR}~55V4l!SM+h5cYk};81dsiL-)G-fXowy0 z6n+q{?k4H{KdqD_wrU_SFf@to;(?fKTPr%e)Lh8D)eNA3kO5ER2Q0?lR!aLdHnzqK-gAskjoVS#vPe=>Z(Dq-sbZP%Kz2LIf(7_ec6lf1*EByP-Vi?B$tksteGp8p0&bR$T z3|Jnj7-K*~sTrYvsh4|_?jNe$F-Ou4nn&~=Ouz{UJiRDh6 zSq->?!c4;KW}sqj1$QsnO!_(x>Np@?u?p7Qa!NKA*Mk5;YWerUG6L6e{&Qx^%nlbE zGS+4}!Py?;EI90j$1vkTCP{M@c-*)V16untzG@yQD3?cqvBDBk;byg5ltmN=RN3e- z2yVE62Q;>Qt-(LrELU!Ni`sp!eg#`OKWl%t2RjPtK@<^Yj`uR}!dgAM5sthogN5#{ zQ!?03L1Al-iK)x6Q|u7Wh^Qq8>$1*glu%sEySKtGQ>)CSI(XR)W{x1;!u6$-h%5kr z@{0L}Bs3FrxOi*u&mxjN50yLRm}4AZrm{h>?40qW!t?9=@jLtCOl}$R0aKAgml4bq zrt@vd1pf@JqZXu@_W|xEWbs7*F}n+tz6Sr?+_*8coKWR$?CkmA0D8pWW~Qk`H27ya z5f78=JUPk@+Tl02pyoG6VHWF@XHQK;83CTb1@%36-n{2wI0Mq53P+x)<;n4z!};R<~OV>>t^; zP*{jH_-7~P{>Sved0AX4Fy0#cv(b2id;hfX7~j`Ufpvhkd&0s)AA0Kp!%(Q9HTdUl zE|&S1779_e2LDXp|Gh@BwSZq5_b#tg>oRS6kL|m*hghc{m$?EXCMkLRU!`f?+aD z$#*9-2H;W-tsY7yrVM9D0v6*-z!w5PZl{%H7(I<*G@#mZF!<;FJvE-#!EK@5^2OET zWEGgn6}?q*fVy&4r_CFpB|Gg6*1D*LlUdV44wn~;K&Bg6ibL?ke=Y0r~ z#))S)*t|z1GSP#|Fc1 z@-wkyj$}*5rXf!Fu<(h(9Jp@nEb%xq3<~*UYO;1N9v(CsgU_r`E*wSJ#mSDCMF7RR zlLcE{2mYA^>j}MaES*q&m3))6B6?PKYAiPs`vpy95^y9jHE4RLR*;TJeOcA zfIH^4c>I9}+nOJB_{_SU|EyRZuk3Mjn>H z=x^oI0i58U4bNMXM^O*}#KGaHJ(n+(&6UFj>pHX5)h;5*SP-Qoxc{kSkiN=Wt-(K2 z--?~ZcrlK&&S7^1pp0>G_6b5&m%C+;1=wK<*39q~KDa5|>pL^eYNL~qXb-J5J4Tq= z!q@Q6xcZK}JAtNiTXgB?;GdOc>|i1xyMoM+o)m=|T7!Rv6{DcAhjEH1Sr{AySgKdh zd=CCuE#wA(+lzDHN*fs#QX8p&ItnrH&niOxg?7&9fZ1fe(58m`1k^Xp`h&Q~C>nCc z=nu{y$P%HR&cn?7wittd28ZFne?(l+&ny?fTsbueUB$Z1q1U(C{=5eNjOJrraq4?( zf3$v+rS4v8b_f65OM=a|FuB{Bg@g6=z@!*b7yL6lVbd6QecZ_4;JbNVpwmj})BQ-voh|5EsQ+)aLeJMZ?>wF>X6@XvM1k6+2y zSK;}Onzs*Kn~de7@NxRx!sS*qA3h3iYwW(9yXNEnQ25k^Pya*VV;4UE4}}k1`0|g! z$K%iOc>g(`9@W7sg--TXx>Gpsb$Bw zTmR%ApCh`C7(=}4n)4+E6{yMPd3xsuMr+64OwE@=k)b@#*2Ggg1%>x{l9yvuawu+u zOq=%Kem`1&P=htDpNku5k#;i&9@I2ZaOX%-K{{kD=OTmOf2K3+kqdT64)C%-)@)~? zf91xIXMTlsdugQP#6uJBVX(~qIXtUoE8Fvg9Sz%L6(9EdqPT= zYTZN5gQjoNl7Gw3scDu|5}BS`pbG8zfl-yC)4B9Ugo1CT6!Iat@TAa=KUv9l$5LP6 zQfhYeEOg)xI@gCGuQk$+_jYcYj$!euklZ=(9rQnz;s)O#hGXQqw!HFvzuub+Tl}k# z-|s1Ktq#iej8+C?ezoBEJE}_Ixdz4evS_V+<_m{7Qb?^1SnFrMOTk%&mLT~Z9UkA) z`)i4)LS{`9b8m74orBUkL&8i8zCYdvHzX@xq?6nC6v}tJUbG5>s+o-HD3At+%-E`F!q2(Bh+;CpPCjKnE z&^iCTKYXfbg@*FqdrhAY?@A->BhOR|i_iS`j1I8RvqOIQd0zasy#m$n__w3@E>eM0 zfa!^Rpmm}8Qo^q~rVl^M$->frs=cW(0D_u>!(tO6H+M#GmKhKfp z;sfs1^24MHNt2}Ueh+!&*UhD$({ng;-tTru;ItfJpv1_)R$qE)OcV;8HifKFE*~J} z2JcEl^_gP*zZJbzZ!V?G^-&ekL%OywS?~(-UAmCKISoY02 z<+*v_FgFi)?*p`i?9}Ymi=@Q!`H~N`%;=sJM@cp}9Bn4U9*wE|9ZD6p_FJClz~xkY z)+a&k4}5u?hYlUJjS9x&KPCLSoIk47O1@{)gb*HF8I0rML<`H|wmerpE6-S{Ges7Pz(P0-%WP?Xhcoo& z(lkdu^ThA^#v@d)KQztCGsA6zXs51A?$+bBS|X~k^XorJ@Uf+g=At~0I$q6wwshNjsPDM&oAFabwCu zZ#=)(a62YHi1_JnKkkP*;EUIzab<6%a*xXMW+;fm;6X#q_R;2s&L>7?Vm>UHM!3f) zFoyYV{qtQXYHBi+=lSli?jJs=)2Ft>DIP6S#aw)jFG+1T-dNLqJTit`ZRaDca^;#T zhQfz*21nnSz1PYxSyeswAH!8Ml7hm13C<|+b76e|^=eeADOZhHm^0<*a^s15#rvNg zJbFe$pEEG1uU=^$qn`;i+3evsscKVjdd{nAKbEU@RGv|?(e%f?o#Zd9d=>6Fc=Xpc z3i5Vd7FIO0KzH%!@H{YWrR$E7XPCpd@#FWgywrkMa};aGBFVyU0@O0oK0i^xDvXFy zI0iy(-y%wzbF18=@*L{E+7*g2-8xoqj69!TgVN?_Tl=j{Ths>6qX6jp#+(gh+xm43 zw+<-YM%M?AFODV;vUD2V#f7MNUHq3}5QZcZMPN=-cq68*%vlpqGcr5G)GXoX+c@L_Z^^&T1#VGrXtmd>hLA zQD)+#Jo7KSm?);p=5*Do8`@*W0jd#Ho_~wGis5jVoyg(y(6SNzym6vv#z2R8c>64=FUOO$KS~vx;%{i9@^fkESs`NLUk+Cbw+nGno?mrQ_`@ld_SQ(@ zTsrbzdpUy;f~22IG2*TBk7ZnZmpu{;>y!v9s4&Cajw`+jBM3KWZcNz^PRqKvg#R3Q zh6JV-3LO0+Z{zaV*7)vF-q%@qo=!7MP=DZc)@NRRoDPGS13Gt%AS(^$Ad);&A5N;A z!FF5@r~ul~X#707X5|^K;(ylImBB}^K3H_}%l^_HBePg#&Oe5^Jahz!8AAXaA)RQ8 zFiDXS{Y=0no!a9$R{?5Og;Dgdba?jcsAyCFtovxtx@uO)Xp%vpPNgq4{Qc3D4CR@w zsFP3thxq63MUVSl(X$Ya-bi=oJFcp$AKq;qT}p49mFGV=!8ndbcjd;ju7r%+ww~>y zu8NL?L92txa~MZdEk5a3A`EeI5-@dprJ2e7PuB5R2Nqc8$_;F6>VPL{_|=vbolA?3 z;ixXI%ce24G)4|N@x4JaQcTUR1rN*;cBy3FG0{eTD0!KRbrA$WEzdUe28ERkRy&#c;Y8fEvgJntOTEdJ05PKm+Z;#RNT8Ov&We?q z)b$;?LQGNCMQ`x=z15;mWWK&LRiV+y0vM&ac-6XL6ymFLA^bp!~?5o$J&;PA}0 z#4=M6-K@gO^ZZy+?|dW7ewgtGXz58|b~Wc6O)2yt_|bv+|tA9`1r+m8e{%p9&wRZ<_uIlH>xGat^S4p>HX zhgHFOj=1iLm?KNgXUCiV!zBzHc8a*sbJh>D_GP(Dka6t7$}>USO-;1GRsma@>%;9M zU6tq0njm9YvU-z@{ZB8%uJNA@4&f{M7{yAc+(kIt`MY*p^r}1)y!tg)_y+AqAMVHF zt`=gFthE}er~@5SIIE-ZnvSxHB)ZNGi-bFkX`}F;YoK0?j|!SuGb$E>>wX7 zZE~571eC`0aVevDQ=V_n$McSgyg#nb+Z}OX!wOgZF%fV+5jcPJa7Q>8*E3%teC$N> z${zC7R|4TDoXL*%+>~dwd9D|n@hh*_Gx`c0$y{S!nO7=k=j5h5=SynKt9uFa^>Lc7 z$J6onzuqNl_?0fvl$Ne## zOX}{CXSM}sAB#yL{ti3AFS|SY9qc;p?vFCZcjbAq7T5;}hk*M7`}3GC7o(^@EL3;T zo>q6|nazkNn4ah5;txAwOJH&4-4!PdJxT{_!rr4C7=VjT8;d7?V+V1$Utryn!jQDO z5O?L7s@xxh9~eFc<8j}!pNJ)@2lhQE%JXxg>CX%UXTUET0b#n9c@5O{+)rv$AnV zp`dKe{Nc&{z=h+C;^84URWvKl?5Q##9y|Gp{Ubz2znuh;XBML+{Nj}m_VfODXAiVy z$Mtx7_SAA>JiCL+Gh1JoC1@jb#+W5t_;9)-SVe~N{M_A`NN3zg{_fW!3KHk`e7NlI zPrlpjn$OBJ1v4=b$K4P7%bc7}vJvq^sg`U!l;_j(Kp61Jo^H3pmHK=mTz5iFS|dG_ z=d)kXbN|>^geW0kXAwp81^rx}%tLubhp}15k3yAb0e=hE@=OC~=EQkwf8(J%Gp!-^ z%;LCS*?YA$Y2WY8$Ho;vEPRIVIQHxeF_kXM1yMtPAkXuJI^dz2R*Ws=qLZyXuhx!Q zuuy+)Y>#Cj^!-N*s*Rxg0^Ll5F(^UlthG@4&$4;2TPyD?xF7fxF0lHAuZd!0kWOg* zGf~K1dWiFZz0+0gnNEQ%l;1q$Bx0|6x4YIHBr3uH!6QZrDMi!IXtS!_f*Q_8t&Rl+ zfsn*nQILJ9w}Lw-1T8cKG{_=pJ{@VA`IlGJ?)Kr{TE)ubUufH5gsdq%-#px4kEimi zTsYKc_IHV4puzb2Io|9z4=)`h=1cy4(3{VP&>xPp`eMrP4_395F+)z%oj;_G)vH?M z)UxqZo~P#!#c$GQD-9ro!_e%=Ikyo@=-;29OoqKTYt*upXKURG*I}ryC|o-DU_I~vHlPY) z-Ub7sLUYWJ>n=Qshqg@6Z>*b!g%zOjAFN|8))H^PSHimUgHQnMvJZrH@}6d=`Fxs( zV$_A>i`)5x4LqGLU~O?Vc_rRYAvkinUKr`| zSx>3Um{Mo7hl7KTj6@#B?4}B8&X<^q=M4pmxVn@(pTJqL`iYetbC5|);WO(WCv5b^ zn5_G&BEYgS1JpGu&(_SBnzkP*Obhv}K=DQGdSpSx7gaOMQXH3|lWk#!CD8up4l2)Y zHP2WKXfNFna-PGcsO4U?y*;$)aBUdvMArUv@9iKQV1@g{+a1>6blqQJCD+`AiEJwbHOwf{s{AKrF81qaK(K z>C_i*J0fps>2dtxyEg3B>xSPikehN5(gp}oL(P;-!LqNC&-31^7 zTq7O+2&kNv(E_MmAFR&$+pT0H_~*sN3*po5)S{KWygt|V8NMSGFIp#p^lM=`La?Ym z7kYMwv8J%rip_=oagHU}U;Fd5_>7HaX^v55&ICudwPAY z%@<7$g$JM4n&!dh{>K}UX*&t^X}0x8P{maMirVi!#zDvH{<)q zSi{C*Gt{piXkjgcTD|%}7fui&f^!%@TKqDk~!9U~VYvSU!P|$^f_VNB?%=Bdngs=<#8IK#Em31Hf9&esFg04B9 zu7o)3v#V{&o%ko{aDwV*>{xzNF_uQxaxFX@S7CX-3Ok|E(XYZw4fnu5Q!~p9b{@ae zUctRx@Xy_mzi6+`7hP2BARXD$5n?X8GwVP6ITl1Ss!at0I(GPVyWpSgU<#r^Qjo>; zgbL1g*!o(v<%CHbDqMo|<{==0)b2ynzLKGSP7N%+P>@U+V45y+IUj%_XZei-UivwD zQHPZ{9)}cA;ugZGTPSpTFcDZf&BHTS4fBt=flC0uhLr=0gcC|FCd~x{E$zytU~P&F z)@e0M2gU zpa19}0GE(A^$4n;r8QiDWN3Y`O9^RojuUN?QDGKr1BHnwADMb@yloO>>)bTQ-}vP5 z<#2kOZqE|iV;xo7?c+ah#Ia=F}c4#5Y`p^Z0FvP0rrPp0BXbd z`_1>u=_yv;IN7o*ZbUSk`$w#-!4I}vJRkyqm%s?N2FMYy=`q~FKd(PxX^$2-j~d|+ zd}gzt6eG>TXKF$$-GoZB)~bmPz!)4+?W7~JRro|OWG@*-KXDpsO<$f(hD0Nl^p55a z4*au%MBH!AVv!k*q{TC+ z2MV*zo(*L1bOKJ;L!^*`n&+;0A}Bak$Gd@l);Z}P(YA?1XfF8M<4&}z7W^|_SDI#r z{PhquJ|_ZZnB_vVfYO2tYZxo!>eQav<3-lz(xSmXpYWL%g^oLi8$4J+ryX4( zCbLlRFbekaIRy!HvXo_etz;wee8vt!3ftQ+nki^V4$pwld=)N#BazgVBkcNEV;q)n zr3x$0xQDMADVQ3Gl-rsC;a&l$z1E@T^u)=b_HTKfiSVN>`D^zw_-BHTC?mqj{=gsW zpo!Sh#1a^8>rM|c*iYjhktrgPiBKg{)lsSwQDej7#pmFkjg=eYH$HBhpXDIO>hRLB zv}jz+O4Y19<8-ZOR4{D^79BoaF?zg9-1zY75 zEo5}BKWpqtdTm8OPojx^Jux;Y8E8DDMqP-u>E%K=fF9ua$~xT9>yb)okDizTg>j5@ zNL1iJk&xz@00Ti6rWqa~vC)#};Gfy&Aykyxhni1E3ZGKI*YnxX z#p6}Dc0F(>EKEGZI0glLJ)iHqM@Kao1zuuT*}``UKT_bzD{-%pWt`KsK8uW2OZEOd&SsXq-RP0UX3q z@Q2P|JCN^6eI4|lQ791pu2{CZq>exDf`9(1ST?$3E>#fx^H#AC>mQ0`qf2`EkCH{# zp;#C>A|{6uuW#=)cWvl{e+JBW`P4!v9v#Cdp4#N%2nIEO(?VOtQ^&q=-YER3g&0oZ z`45hrMe($?%9yb0^-BwF70;>o9Q?EXC#-(cLR-bt)++etZ(3+OdkR3fW8)Ojz-8&l z*;;6;cUS?5DXM$ziFW@S%tFL1^?W=md4gXTgB75F8JqfT4<|y z?&W=<^O;d!w9r=ZtRonIwfy)gq>`+S&Tvnzamdf#f% z!kn=#UBLX2u7VZ<;Y7DoW8|W-t92R4M)G*8Cln};X*xK&G)=Q(114&?J6JH19aG^S9mK;qyHiuP8wuKU zkogQ(?clPugbQ>omzZ4*3Kw7h>R>@KfDur5?I6AqK=@Y&@t1ZUz3vfoJxH^l!Ra6_ zB}Xb)QIAkjcd+2WyK~~t747*of;d|2-{9AmY(zgdU(tEUJ^RwYLl7=t1v}u1&yH^d z{|sbOAP?ZHvB+)1kITW70?=NI$Kaot9jp9Kz5Gy^SbDHI4s4{zh`+&bvs*)i1hMwu zAj=PND8}lDv+wRjv&>*`ornXHwiY12&5u!t>^9+_l8+^Xa4B%G0GJx$wpX?wT!(WY1ZrY^Yv~dEGZ;_KG7vwra~e(}4=#8CXt7Xb);G=i z8!l>%s$o#rzoSY&Q#)ZtcyeZR2RDL$W@~}4LVSLfpvE-7L2yhNpa&$Krc=$q;GdZp zo-z(l0 z?Sg*};ti9aR}dJ?{Y;7^*5ClzA&F>pjiB-zZ-D*ZfF$q+kizgB4McpGhl=LJBe7O* zE1pl!;8Z(e2rQ(2tav`n@=wV|@Xwzs9?i1+!z3f5z!z$F>8gHq_47CpBta}6Y;-(9 z_bGXPZxp3R@Txr1>?@@5VUke~*zCcL;Gee=cZ9DT7vR)Au}ogGUan~s{PW%BLFnRe zKOV>kkUAzI8pijuRFLMKc@bRR0VWzzo)$|ZCf#DI+~A)TcxRrY7lTPlK17Z)f+5IB zjbQN43cR5qLqu!MJkT|_&wo`VSu=HjfVv)0=0acA5#{rT|0Ci{4=;4 z7Ar(u@oOwVbdry#Ip5RtTC?(u<|1$#m4)>lstc^PdxJjAF2fk^ker&Vh2A1#fCH-q z*ez1BUE<)M_qYu<&q52sIIvzJ2Mr|pvH-EW;GbR2rDGOmRjZnOP;kFINp(iVwRBzZ z&;DqyMaFaTju_q`$-)zz?%k!E@(i*^fW++NRA)%eu*RO$DufJHA0^G3|E9XSh%;Mf`87BoPxDB-)H-(MwFtQ6RMj1O~yOK zz=JqIn~@^~F9|RjQ7GJ(dvT25wtxV_F{_n|@R?z~+cDG)*rDNX@DsneCthTzpA)Q> zMT3O_Kmr3w1VSIWp)bKdYpZ#Ku4nEss~?#E@Yjc7X`yF@|M5lhm!7rN>Nz-O(I7)A zTFHb>-#F8u&fuSA6N1EH6tvccGsOSXY8|W=V5stelntwXai=tY@Xw#D`s7aG>vq9E z8;IPp>XSS7lIP%`KUww3o!%b|{#kZyS*5;c`Cw9Tf~HufehwGpH5~=k#ZE)X1Y+Pk zT$&8!S((@)6Tmy-gZh=3jO?hbRPq^?;ryUXn1aV`k+q`)ZWCyC_{)U|{`t=i)+FdC zaq!R12ozu(DLW?C2iF1TdyHU99UT7e5iB76F8JsF8o^!Zje&p0cUwD#Nn1y-WV?>4 z;Tl86R?vI&w1aA{3)0`N8j1l}6dhrfylo6@NAyx&fyo@*$XMFuwa19w!iWle#S)Z= z2LJ55JF=7EEBJO$3=B7d&Jmy?{59OcKj#SsfT+n^3o3Y9SZXx^a6>vM$O+PrLTn?X z>|URj@}Es(7;_BW^OkNm`KdT0wM_~B8NVG3xh$ zjMBrhAJiiq{b8a5u zr0L`KC_`^qq>BO!uMbHtC|MQ-@or{uYrTu7dB$bX$a5ad1%fytH@GxS3K;9UUP=f5 z?2qPQ1>BZ`?ofk@^Zm~md*1uq=ry#Fz&4v_K}QRC^%UxXfm02t3H~{!a>@whAttJF z0oU=Jr)#B3L-$!Tv>Lweb+;SMzz~S@Kfsuy8fv(Me{KaxAZDxu9nI^@rD&WCg-S;i7(p2Z;^;?t*9$x(9}C`rM(dVbr_se4qdayr9Npd zckSMMM&3dvBTml5w_!(VjM?6}0!9>h{vZKJ!%zth4lUMdA~E8Xb(t0H1&1TUAaOtp z_j?SAD`x&7`1{*V0D4Ov%b8d01s(U?*l4Od_f|WR8o#d?BjF|syC8p;4-Xr8UM#w# z!r+{5{HVDL1WZw0ZXFr|)mk;%T>HzBkFD1`lsTsZDQpK>KnFy#Jlv-Nj9%p+t$ z3L zJzH^ z82W@G`!YaN@Xy=AHha5GLqV3+dJZ?*D#$nRxGsl@(kKZ~Ch%qewQILe3 z2cb}`0~2#56=(oL$TsWj7|kF+aqFye{K(t`eTLhB>NTPnJyP-<{Br=XGkOi8Ce9du zDhlqE3Ib%>k2yFY5Q;|NMEQZW$ZUTHd2(u>#;CSmM!2Ww_$t zq#Z<6J;)8{4~hKk*bn0U32dXJ%_COe@dQ|Buo^YMsaQTyBYWM6q7=%rXLs<=k0;x@ zgjSG2;-Ccfh?ZKT@p~&My@9Y;GuWxF4M)%D*^?OclXN(@E0xrN1&0+f@mKbwaerKK zm@9Z=&AMp_)~*6L1S+gq{?hbb;~6V8$WR!N14g(;PcBY~djPP99qZqFR z(Vs?A@Usyjoc;S);Ci-^fVGH)z3*#_WMZwCnWDHuU%@E1-=UT3FbjKcl2IoEj7H(G z{t7@<#MM0-WCJ%|SKg2T`#d`wr^FX${8Q~sh3>VjuIPrU|gbNU8LWo|LUH}iH)AK#pXuv&k@UN9=GFuzO&e2 z5eZ3bOJV4T|Lo*JTgX7>VLF5>1MQdx+#P2(A+B<$rsRJ%-qk7>y~4vtEo0Py)e5jr z!9U+Gj$FcRYgB3*h$@hn3A+;sT%%HSNSic3p=|P)6{N5bChmsMY?cFx!STbrhi$B@ z*w83@0%z*PoNhYRsO@}1N8KF2pu4nKA6{!#p4o35x=n=`SSpG}k4)^At&~Oz{@I`t z+!!wL{(0YTJsIY1&%xlI6NBl({OC-VJ8c^)<-XA(#={}TU3h>gvtxROwxm1hl&gHX z?(Ojf5Y^@c@LVL%^)Xx#G06y4sMAIC;D!eC!05p`x=DT_TT$A9m6WqRGN`MPWYyZq zjnv)H$K|R;jrtbR6C+`r_bRYCC2N*c)1-|~TA*})3IaZ;9=6_yAN zv}QDw5B>i7{4-W#OUE?3}QR&^L;GY$iH~DZdNb zRBlYSXLE5ZqS#$3v3oX+Ta%LxVVp zIajf_=oUI_(uMk^>k^efA*LT#g{9UhBmXmc!b9+_C$!@PDN)%t;P|$!a`i5e+6VD^ zl{wxb(#9)xk+kLYUEvs~!auvz=ltdQdSefhh$au>6dDBN6|FU3=kMlZw z6t^upvj>R|AtOH$euFQb3TMfuXG3f5d&!wnGQmGn^I#b*B;XX5F#h0Lkia0&UUnwsT25Wok^d9e|7-2 z!wVZTKtR$mjAZ#`h=I4E_VPjy~E(bHmp=$oz zcQq3Uo0LiB0@`ffi}b9;V|E$rSXyHJ`3!0KjKZwY{WS2;>I@4<7N}7T&rk!%pp%|T z8^Ry_vzQOVb zB0`zZW!eh=jNL})rPJzMd2S~|rTZpTmVBlVCsNaybX0m>-q~@uQn9Zo_~&%4LT-sh z6#aS61HEbs{&{?fcxrUyF9ili4hEq1t)GK`_6KQnP2!JDzZq0~uthZZ=g`UV7-Lud znA-V_lH)VKmTAL{qS?)=@{MgpPQ^t@x@Fjh8(nN zFt&dQo*bV@&;$h)zEc)hxo47C*%G*Lj46J-oF2WwuV zh>zsy21%?W#+(hLaA@<#9z{FY0ZQH%M4y9F(u_lu<~ADC8pD5vzL)>W|7^h_Ks6vA zvQelZFJ~w+R9(fDPfc2>rG#zK!H&X9QWPT`;C<#H+O7qu@Xs`l5@h;w+n8rkuvGj( zt)~e4CJPQlQUQuY^baTEkTCw_B}xYqK#%$BC0_8)Ou(oqHPScDR5+O__~%wre`%(6 zwu65*umH^r3kQefFI12;Xovx#QHMHR29(x}o^ZasM$h*~0}mDZO8)1l04{Tjs@*)4l&8JjL81HFEeKIFlXx2JH7Q}EA@k~<$danw4K z8(^%4O129EIH!hn|ckn#;1f+3I%$$WgAYBHs_JGKc0}~S8aOF-^ zo<5TxjX3#&N5wn@ds}(7xrdO#%E5!FkA3*Lk!9BoqbLFA;coKRP9SndGt|Oz9mp2P z;=xgcl}@p;vbEnm1^=A!r(-J=qo77^wHo8?^f};s6ULwh1THH{c zogJL*%6ipSfbJPS%xuRUWwU$~mKpd+=uL7gSsU(Pv{GcFc6lpRnpZf%I%*ryZLWd* z*mYD^3TkUM`%zd9#O2|~=xBvYjHF$pT4Xl?&)T z2I94W*gUrOHbB8YtLG%4YhFpBa^pxX8!P@f!r$JPt8rz#ysr)^lk-28Ew$q0y@nc_ zvV!wUZ?L^q+$cE+2jqmx1|?wU>r@o@ZwvDSHgJV~Zchrk-0S6k@Xy-mto?9Ow5sVK zPK<$Tk;{dG;}k75`(pqf2zyKeax1K|(IOp7BK zkXB#zj~)v2)J=Oojg5Ixt@lX*J44xSu37-V%|-(no@5}lP{->yIbzKmSqb}0)M02g zOFLMH5V>}#yu@VOvaHKqxZ&0+!_8nATtHKzW_AcwT{k%e|Gd`fKv*k|gRA0(4Hp=X z+!~TW$E+F0j$=tk%jS@V-Z}5{!WAm1Ku>JBo}O>U|x>y4M4wiXEgDjXkcI!_JPh{N^Ac zI2(aBy{HNPIf7&X1&Rl{`EId}BRN)y%?%-9Mau!ZwfSzb0}H`F<71BIQU2TJ(<0wJ zON$2ooaTApv-uX=IvP(r#SXIaWB&kF4H>ri{0Tb(dR(9ytfl`LYNAaE<`K@kIvCFj z`$LEUa}rfJlzH&as~{nsYS0X|;z@MNq1jjHe&l~H@mwELE>O2hp0!ur%PIJ0c6Ukt zLJj<2JmymZTSS9@ZjpSeSu)7S8#0P@$^YE5grnt2#+g7CXYlrnAsJnrz1j@a7!fWkdv9a}|7;B$ zyt@`pevI-=yMqmB{>|6J#l5?Fv)Bc@GGW6&nZ zIZu|et(9O@@Va2DOD`d;KAiQ{16@V5x?PBYe`YWQu<6lAD@&cwzjCOAKltac>vCct z%*9Zg?E!@e2Id41FNZMax~7(%LWS(YXzv~*Hg9+X&L0Y%6(UY}hlYZG?!+AAlL^km z+xsqN5{8vTK)Ebvj9~E3y6rg585A$~WEpe>>6D4==U&tV{~WzRVMO(-v9A;{Q}RE5 zQ@KnCb#^w*dmq+-T9h_xn!{f;*Xage9&!U4t(}e=!K+$-TXQQ$gO$IWWrW#ZjT zwL1IH!BcDAgpH^KKau2&q zVO?OLvRH6>u*pi&Go|Ct!9P1w$gP^$!bH#D=tVSlR&J=D#}ea}o29vI5;Ga>kX>xw2m9Bsiq4wIT3H}+So#x+a=ex%P zmjdi;U7yN9WT?Q)V%8Dg1$3Z7mxSwmLUFOOpyon@v*Dh?qkuJMCyeD-Dqsqxf^q_N zmsxzVIzt`A8;1=yb%$pkX@RrPt3#!8`xEd1X@yf8%YIXF-n_U3#djl}WhG&of`4Xn z3OHTz8lw2``%blApQr-sDvP_c~uLTS$!OOl4gH28>K&zcoJ>I_B*eBHn(KaY+3O9d`W^yAu!O)J{qqVUS00F z4zK0Et2sAuh;qR)sFGzO+L7b&9!1|cMgc44ZpshIMP({T6}mER_DA0LhQ25l&}95z zDo6{VkC8MiFYj5jLpOUDB&IbT>0;qXbbb&jk23x}-t8=Di+;96boS> zc*BG^K~<>&Jk$&~hoSfpJ;5H)j5R^VsYdsQ0 zxe*>}Mpv+M%&OACdChWsF9I{Q9c&>+^rK+zey-7TsaglvaTzGwYO2|#EpeE$riHDw z2ZZ9Ytn;P#T1Mv`qB!QDz2_em3A?=p)Y}y%VixbWJQ=(i%O-mEGHr}@79zSrvA#n# z(3lj~6n|P*3$n8quxV-jap5}S3l@TlxQVDa9dKJoLW;%3eSua4x^C|06?aogsI5(5CmpkUm&DT%r(YK86H*M15Yeo(V~_G&_myqn}P z4_<=n_nh&6R-E715z%%$fd~7!OwmLEp^^wUf{Vva&B$KStUT*VIw(o8&qG9CS;-SJ zx3i4obvS|8bqX6SC6y}s-2{>tP3q)3LRNGXtHceZRkQL8)1K5GT3O$OR;QFL(j@w0 z6jnk}E<=vJouF&PEn&e>)^@nW1Q980)1N7@+>Aj+yi9=gVMGPZ1&o zhcN*1f-Hm74NIZ9qL=K1P}qfm*5A<*8YN=L&w}JnKx%8HxljIQYoH!kD9n~Q$s}Xu z7>2{6!sjhA;%~rLe&oKhcP@0tYw2N7HXZz@8(*8_`{1AD0)!E&A7V)&ah5gghB2C? z;3tw@WGK&mAxKf_W{i`zMAhXWiM+493A>}_@&|-m>EjzkR@j7iA?;vYdl69QY6t)9 z;D}HmS^q-^uSIk4&vsB3?JqJ~F}hXppJY^gV;}r;F9`mcEp1bRf0hhQgItglB`((B zNL_HFmP=$(g$#c{_xuw29_|XFnnC2hhr93_$c{D34eoNwWOX1QxxJymm9n<%ArOU(@fH>{1hlKH|b zaXO9#^B}cabKOmu(9REcZLNadvW**qgD9W|yHm;>or)?zz{#uNExCEGht8GD=OfqW znZmH8PC0_D?71;3d`N%)Q?4ty0W;sy|DnDLhE2v8%5K${2;?mZwpxg??6m$<>#HaW zOU$K4)cltmD>K~C%5aTA3I16TwRu8pTo45tKQvQa0>aHk|3e4wWd{|=w+;eXUuR21 z77f1gIr5AQoe)@XvVApEA4^rrHiR;|6@*#F4(L-?3`j2mibcT`9wa zE2CNU+ZEe7=)~oj)cj3`w;inQ;C=AV|JA{LsjuLl3BI9y$mol{0Ek2d`^N~3pq0pE zSNm4nD+U?y43TLfUu0BeobVJ6$~d}@iu%e|0>PAx&pEuV)gf_SUhqbB1Pko35B~YY zV#*&0sO85kk7etOOq-0&W_q0a691Cxf(m%`nuULdWMj`6QCq5f z1zZ|8r4OyQK!MU^7#1+pO-+wxz^L-sU*?=l`m?J){N*!ifeIUvm=BuQAE7(J8y@1O`Oy#ZdAEBR{IfL} zSYS0iT;nWwjbM%yP+bSi<&ch`hm_6#z*yzLGAn_A;&Cngu2(?8KeO&5{KKNLYVz=& z3u_B{G^vgfbDcXi4{V8OTV}a&l!~GlCIaUIxU0Ak|JhsXkjDg@?E5dr}fZbh^c82s~ty};&1d}-(=!T<%Hj$IGW zng@&yvZb1vBUyqNw`7?V&=s4sga8P^lspIjoE%ho;WX{YxufoPhFA=_^okye_(#t> z>4l!+>KYSj5l~UV>V5FfvW_elVOz+7){x`zFTSr+tL(5zGc-z@G`c~~Sy3I7gagb0 z+QJ|F^Nj%kE=FYpt)o{5bcfS!?C(D3j+_MlOuoDT@yrEo{FY#JYGoV!p526UPM9B% z!6L^|yfH0!eIG?eup_R)Kf^MXoYu%TuHGdu2D5?;vtatKgq0aOFbsgMReQjV?LkpfDifNDF?JW14({{Q9F}TJ)3RY^A?a zc+ox`WCJ=PnS(f0n>*6%sdyBhFybI%nAT(f*+@3m+f`%;hgh2o_45HdIl#08 z81BLnsEw3kK|m=69p8Xc4mThK0`nYR%DM!Y5ebQD0O8Wi*TsMP%KyxiL!Rjv9wc!Y zz*XA6@0*_k3t<8C%-hC+NLX`i4O z7nW*zP}Bq?D;|<}S%@K&SgIVAL?^;^Y( z6a4?S86eN)bKStsCb@LfZUHVDij0m@h`k&@|^`?C7;#=-Fb8*b27kDWSE^^ zI6b&V#f`)_+=?bhJ#)hgX9JHQh!(a>7P8B8z7udz$@9qnY>?-|c8hyetYaf1hVl&y zINaqG1phoN6B1X}DV~>l19#{^kgqlq0Zv1+gW*JuU17q~1l#nU-8_*k86bJ7+~A+N zIQ0Ndi&W(J%YZ((qsmU3Vq<4N3Noj=M7-`xr+@~Ie!!Vt4+hL)(%AOGm0_>U>{-Ls zI~HxQF8F6QbFuSoEdwe#ixSW&d`*M`TmdwIjGh%_ejzT33?pr(UBL$ls-;(&!9SBV zCQhr<%3$i9neJ%b(c77m6@m-?S$IPaEy@ra;8;aSzpWL(o2^r*_|~+ov4x%)UxzvY z98g#>1XDn)m%&l$Jo~X3&5oG||BNrpZT9-1A0s(7=+=$7;GadhK{V{9PC;Uhq#KN- zI||rFx<<&5Rq72cOdzwip254>=m{JAvo)~A$a)%?D2)nqcGai_AlwK4ta_#61Nr?$ zllB53_-8$EHK~cfTJTj5WNUjmah>L_X1(ypFalSfPUNRkPhw*{4)y0fpOlcJLuKhsJ8bN{PVXV?osu%r7rmA%n+>J z9duzXX>Cz01-aIo_y&Wp<%kKPwv)K`CW3$7&ggHGwm`g~Y!p#(1)E80gxA@ld~jbI z8G?u22>yA?CROd0GZCm-wFUpo=qJg=w})JT7IZw<8UJ36)(VrY7*C<#i4+<78>Sr) ziKU6qr#H2PGTw#T&FpT zVYqVRgMU7OHpQL%wGQmCz*4$Sl8u=B9l&9oRmc!_uqgb^apf}Y)p706Q1H)N$MqXD zvEy~YKc6?o$I-*jxhdD#$R(^=r-S#wKZ867>Xbyr-ZK&W0}c;SV3j3Spp53gKO;CS z_elviAn6W}R{}$l@Uo>XZ1B%OCl{cT^ctJZiD^ke>0FajhRItO9_@pFZiHmRDnGSo zt1l*qu`jR?G{=dBWubPKN!;>D1Ol3Mk=v8OWaE5Q)WPINpV$pM*t`EY;_<#X;x(3_ z@wzCW;aB_X0u@*qZAxJiuDKl5O>@`oL>?dBn<1OQCD}pE6r`6{Ffb4Iym^fAG(G zFct)FM$#!`{b%7)j3cQ{XtDK%UJu)lqQPGRqzB`g#SWW0t|KSGKjY1$mUc5cRIx@U z%1i|R{28jy2w7{qFgjbQ|MtN@2Qvk)(@6^53(jozN00gRzE$wgcFr%Y?VDokfMoE` ztr%|@N#@?KS>AE};GcWSud|#PO{^3@ew^TGoJ{b~+u0o(&Y2*!=MiVnO}h@1p@bO0 z0-ysq^p+5BRUnw-sggZ08-hL+QV#yvtjsa=A`Nw=ov3J1!WCE*Vg+3|^6YK5H0veb zHq7?Q5f0G+-{UQ`Clma$w~J!0cs)t3%xTOprtWK+fCFe|E-!aDEpYsEKaqaike6`rlHvTChiW`*%phGA9iHV5RB=Ma^guq%X>`>SJ?3z9j}uD$r*uxVoBsc z{Bf~HBNl>xz7ecpN1USY7M@!p7Ldjmer!!gwg>(hW7QmiZFd#9Ep>kWx<*`-qq^=r zKR;SIEwL^Es)L~~YZd(STNF_1hg2B*HPS47lF5H6L+=;T2oF$klky*2SLp1_Ol%94RV zQTQ*GHQiG=t^@xp9OK0@c2K#8i9a}lM?id|;-bMnf9uqyAK*)i&(O;A6KiU4p$K|+ zYTJ*>tA^u8;cuOK>qo67j6wy?)N;_B+75kT0<&{GmZDzF~cy8@M$JGpt_+qcv2mtpN5?*g2SCb=Von%t1yn8j6vuD>CQcpFh==bFdx` z8Fi+HqsG*mIXG&HOnhpnQeW&HO2tNdej}&O;;|n`*`^J0qOP_Y%7-fwh*L)4XwT8H za3vawjx{;8r^&RGj4#@AOHRdPI0Z@BPgZ?usM^BDqp{`>R(*1(JacnWLhOgS(n8^h zt(yb2K$zK2bAd2iG9Fqtx`y{&jj<<4Wc^Ah^K47iG$#Txw_`82W?JBvhhmNL2|U5 zv>teb<;hf1LGJ}c*4M!+#5FXIRb->I!tR$LS|JOSLq zfLG3oyO?pgWNQdj8%yDhQzPRZ!dQ_hkolBKg-fBPMIjyziPX#b#bs(OMM0Z zyj6^>?#TPd4YlNfxe>>~uFv-_tUSXW&P1~j&FTa|hlkK;MLw`F$NIADlN+ z_RhS&gEWQekssVs(ixPoEah$)3X3Zze#1!;YGu{qV%_`}7qU9Aow!s0M}!W#5@kp! z68oMP5{(FNrueJ&@?=1-Ne0cO_S^5;S;ApThJKEnx2bLI>WyvfwUqXXRmiB0q;}SV zP5Y|UM|@)r{`pgxa|!Ns#%rAM8d;CCy;fvMhnMjDOYOGX6a2F~9LW?+;%ed~gw;_t z;6P?r$9f!)NY$)7qwf-vF`qKxiuXuB&W9F|11QWk^nqt7&(4&s(d7MlA6h|eiAh+q z2ilO|i~G~;7??NS7W%u|)&Z*!)`<~fXjSSUp4c}5y#U~W*^QS&f{&tE{oGb59Dy7s z0c8w^&@5YMrICVvj^;r#V|=^?f|-KE6kL&AFSg#QX60FJG#sld#%a9g^eD+SJQu{4 zWfxYS`GE~Sf8+<=o3rjDIetgZzzRB%0HF)lwHzK>>y{+X7As-S9Q?ERKl$8$OxCax z)-cP7k+z6No{ih^C21a*bv#!GmCfj&-lzoEffBO>qBO$f1&aiGafxfPqP&b+Rr(;) zu}Cx|pimM;8~zd&`<2PGP8e}%g=L{}o3YeEp^>OAZ>6nE^gx5IeR{U;}VN&YGf&S^^u8;yr2yn`v=wP4znfN9J# z%Om!c#|RGmGXl=YV48VlrOFKPpez}45LNF`FQXa!^QUfewrtheN{0G54mT*OZGf5q zT316Aq2hoig}MBe+z4P6u;2Dx<)X3?nuu%4Ev-ef@~kIfkR61Zh*Hkc4 z4hH}18bGZSC?ftc(ud)JL&T#wPr>4-YF3`f{KovFNl3twnEQe=^JH$&_o9+@P~wU)tz(^>*H61O_!9O$1tNg0>RJrW!n-hYGLThDHf`7h}u_zD{d^y#vno~uY z?;)>a1;Ib($Ewkq7(`vP-1F||UWjF&IP;Uciu6YP(S%z!GQJxS#&nZFVQ?e)pDlo9 zWl+eqaWgjj9@{+@pM!tSm6&McZOtH_(z(Zt{uG~se-3>Y;5wv8u$2^$X5NRyT4@IV zY%Y_}LSQ8GAb`lZ7h=IbM}f1HQSjG?h?Sbn;dI4gES0|WzA}PUTq$1WD*__ zB%LdkJCFR&Onnr%-gu77bceGAK?SWvW63NSkCCSF`B<}Z>=>i%*_E3o83l!n;ma_uKc-$ z=jRf}Z+r${v)0V4@7W#v^Pe<}RAT~ENO=za`4`RXJ#K2|bl1>G!9V|5Gy7xKTuB85 z1bmSV02XV_2vwyInuC8jDQ+F7;Z0^{9u?1;e>_Aevoimq;O(G0e?42qLu|djzH31W z{u%ZpDJ?Y}NnjVYfob*BlPfCWSo*#cP{NSDoK1;$7FxG!@Y{Igy` zTPSl8v_U%DAKaVZU1VbfgMaqvxDnKPx`1r4M$CABSJ!OK!9O2wRX~54f|9a+$7-_| z=_G?teSH)#;No`}P9IuXH{^L!<6*i-1#{O>@CIi%KcddA_cezsM zj_Hqs(w(Vh6V53ze4yjc$^Y!r+XB*Qp8Ia0GHQ|>ikiE*ZGk+XzQ#>nxsmmtF;FYVKTh{c5%e1`^#nDyW@wZx7?~FSYf9W?-&M6LRtr zZdB;_4>AgE=w>!GV}`QyU?st#k8HsVgbxxVV`3gp6yjP*A;9HY{cPUi?q zJv%0YI~!+s2hPj_IR>E|D@^!GNFWh{a(jY*##Z1*d!BT?C=D5)V+fQFcF2OoD`ar! zEpqW>MW}q}Df$X&4oX3}W{@3x@1QW2=@hhDTeHsBI)DRMpTY-%O|G~z5OC)6p*F`@ z(or~I_vuvYEx&cQz$0d&Lw4Wj&Dz1|F3 znUT)-t&xI%P9bbHuE_`^vw6O)prbv=7i4s893$@9)(QwB_8fF_Q<|a0y$Fm8a`0bS zeL>0vmqQXuF$VuEy%w+q-5s{q2RYY4POID%|J;Ssx!a2zzi%zN=6{CvQQKU#IjS!6 zSgsemVGjN|sk@esLRhV2>pHk6K4c^KXW10_uqJ~T=#bO#_3)+iM)1#RPE9QbxF0|c ztPi6@>j)Js&au180^0w~rg z&)_n!+0aZ2ER5lF2kCW z{~6Z-t1@h#OaJDMOIZVD&$6(v9Bw=x1nO}{_`x4zFoBDaP%z)Gd{&;L>!?waJSKwc zC03urshKIvg_1h`4Qu3QZz}lOLftVp5B&3K6nbmH$xA5T7TVBDGOB7cx3)lRW7~%g zItBl{c4+^l1$f^YDfs7Z?pF&x)k0a=fq(vF*@N_X8@|_JmO1!mS(c%#4t=&zkY-YH z+CdZXeH#=qYx;d%%sL1E+$_s5BOg7?L{vuMifjk}{A-wrWo~J%Ll&TiCBtE6rmQuB z(A<*M;jG}FS3cjlOk%@@6Ne?wEO&d8EBI&5H?AO9egv|~Ex;s}AW-(8O+17lNWni_ zGl{7K>^94>%RA##kS7k1SaTH~!tuVdls-^MMeak_64BtFLo@N6tv`xp3cMs6@m;g> zY-HO>8h_NdIa+&SP2K)z&q35TtgGbg%rADJN)4bEn8e;q*=NKO1t9DxSplQI5 zSPVZ?h(&;R>=1_-!yWuHm((5)sDohB*cc{cn7u&^AWL6@Ax(zz%vI-P&Uuhgf;}bO zHZ~o71r5tgVtc!0cks`4kT?MV!tX7#h$jDYH}_Wybu4!d{<)h=r|vHn#xaD9x+Xv$ z0M=<9KYS1EJ!US^8PB%=&_x5{&QC zYKODnKV<%c1ZPS|wg>*%sG1&PlVFXKz^kpUtW%yHCBj3TS7nWj2NDwWWUAvGIbr%y z_zx~ff+2y9q>%|U1_yrU%@{claYiGANVbSbxzZJmgL4u93{brngm;|a}(y&;a{mQUsn=l z02GiA_pPQ?@XuTSbDf7hFPSmVW?kYNOirREnVil?qub6$vl2SJS{01^&ow!nhu0IE zL^T)5M3cgm%%5=kU|pt<076B9h)E#WnQF|MO4vRJ|E$W&T$9htxwVsMBs;m(w$8}^ z?E24w%#2^P^IgX`f`2v|mD)e1Q)UoqzGn)?nn9sCxA9UtLjPHNt=crk2m=My+P}<{ z3ZjAupfHp5VeNa!N$tq?Wr$Qs=B_+CL^iAr{E|V_{VRiFd6%F)%p;bzOU{ zCWr!AxCem(Ywf%bNq#pLHKZq@@Hz-s6>B#*WQ!jU?B`)>$16?y<^a7xRp=>*qa~q3eZBRSJKw7`OH>F1tb@xD|8X^V2w3s zB-Ddr2`Od_f#$+&FH91gZD@{s2>9d23rR5G31R5*c^WQ+sU`$V(;Np|EqJ6>4wkXO zkDB5$c}x0+GVTJSFx{M~1+9y^CcuAMMnR&2ll*SkVA;bzW0({o#tqyUd>#+6<1%#L zh5Imu7F`Ii@edw9pO8XMl&9P890s)l-^;@Lh$De@q^zhc7G24Q*!&e)jqfZ*qWx!b zK}iL~Ow2|BDO>!B54u-B)wE)ZRHq`IY^h;62$;pt3pse3-Q2bDyM@A>1T;jnk7&cTMxzg#&rNgi z&&2juXh5?LqzX5Cj8@7sUxI($DwG5nHnq|Z9Qr|X@Xy;O#n8C->PBw2QaKiu;Ga=j zb2s_c$^|E!R@wlK{Lej;0ieCLLKqjVaIDBSxt3uafz31-P4qw{scoxr3*ZgHmcpuB z<_Tk#XUV?w7W^R|= zXr+>gW?i|Lpmia`>)^k#t|BKZ8S$U-Du|XOQRZ9Z#NAU`tej3u@XyVGgjL)$DZaPN zRA9lpNpNE`v|Mcl58uV~XLw(r!kf?R`<^$oGGXuix$YDQuI&lP|)WH!hA| zjVn&9*7`sXO7PDal=T52B?NS6{(;YEMFnZ*;!tWHj?;^MxKe~=!b&ecIu}ZL3I4fj z5)qQ41qaxNX*TU2ok!@0AO#WY59FszlW7I*--Bc;l?r}w>+sbi+VNK_gkb8XAr6~S z*qY6&hD8-^_=CszYQ;^w5+t_AsJZ0gtz+niZsk$lS5OFcOk0b0$VEvnl_1;fL#^6K z=0VLt+ZS&Q*x>5qp$n^5oR*G@F3JD=R@;Kk^Lop+V5bNBp2a%l`RzyCiI30w_UjV) zeftrY%Fib@3Ii|Ueci3I02bk2HR)?E(JM8;=snc@1(sft|9NX5qXystmULa7cHwxJ z^!RQK-yQ;k1p7t@gMV&S5Y_wbp%HOi;>v{itcnwT{|3~c!c1V;Gelvio{f->E^j8 z<;Li?neY;AB*|TWYTUf)s0^2L1=24R!ptFthALctv8w3sAsWFL68BA%@B^RBQQ{oR z@-zbtkkit$Xe_`+oTH;^OYqP7_w44f^dLOp0|c+P5BB0Q`Jb%?L9lr)4`LaDZMLIV zLUry$9?J=I3jiQFtf~TB8pK}4>+=fX=jSJ34vQ=KKfpn;k8c8Ex|t+iTHPf0AAmFFvl7`n5c>heRy-o@K z`7NL)%^$l7z0xGkS4$5D<*kJS2P6E|=`|vOWV5Ak8+wO&)u;sZIxgBB96Dy}_OKJw zHKr0UEtR8;WSi9d_9GoqfYuhCAew8qgMaSkwvku3LWX zws0xoANXfz#>l5|D|ERKV+3TO7YM;Wztw2W?xThFMT37<;5QxON_co~YsIBD$H70R zxjV{yTjPOQUY~3GYzh9kJMvdv>#8mI=Nowxfe7PU;sLO4zTU;l40lp=FeLbAohhS%M&R>``gMAt4l;u(>kGG0 zL52gsMM`+C%#14FcUUX#v0}oOes+!!am7XB-8iW5nvWVF`Cmz^xGUJg4nX2X?}H(C zSWNU5cFbU6jDDFv-C-02OgU z<{SpeJ61K%M~EnN7CU>^jM65#7^4Xe2qPfQ1e^i^DH2d>y-J>gf8It{4XAP^kSm{v z<+^KB9o>#g0VaJLuV&f!-7JHqC`4CMTaX^8?%XpkzsUcp=$2 zv1C56cp#Gk!e5|AZ>D9WfiT#SZr-h_Mz!1G$_?dNG#UHzxiON61=(`pFI#ACXA2+b z*{wgh3iV9yII6s4p#?Z-?%!ULKb>zB#97@ z#5H07icLPFb7JlWTQtQ+Yb0b-siQUqK_SwBnrR}LKq=@zRqE^|_-BsNdO09D$^a%) zGuh+do9tvi9e!07Bd$51W{QICr7%$vYsbWMI~mQhVTY^3MeAdx1piD^1agO5IEt|A zDAd6u`F3(&!XNyz1+nIa)~NcfR{#QBs0j3v(`PQ*9sDyr;;14C;_x-FKDiY6b|G1Y zXX#)~FCK$`W}fjSY-2Ezw+E0N{Ac406gy;9USh8$Me1-GJ->Tks$4D{1gXy#vSA!N zlV0nT;GgXf(s%dJ?*T@eXx>BN{as~jTY`V~%msmsWJt^dd^RIJvVI34ey>ByOYqN} zpC*?S<3=iiE`Y3Yw)^Y`DL2OzpOt5ht&`z*h~?qJ)Q2M~9e1@(NMAeK!9VLWE9_ia zBxZ(tUkL7U`>^yYk%bHaLLNav3lovICbLhlqUNAI!l?N|+4LNA?*3fJJg7)=f{_G{ z1ouCbOgpYl?lEBzM^>+l7vo6lFqZ%@qANEBG?64E6#kqU3J-k1pptT$QLU3NOYqOm zIfcnB1`05>l`jIw9O{htRum%m=ayysU?L%#f;A~BThub}&n7c+L(hVsNPalC33cqk zut0EMxXeWG&&Dv-LLLCPKFI@D+Q_hw3aHL{EWtl-wNYp%0~XB2;e*Favr1*T1pjBVjhO@C;zizY0tG(DEeGFAUQ|~59@b4m%gFx>Ho;~c01w`nZX~CRNH&5e!M57yVDQgsOVwOAt)qfG-Jv-B z=;03jnYbJ30dzA7oN|!{6BjT7@&ZRt#|c>wkPH5q9lU3&sH?F-{|}z%4%F>I2?0P4 zyd3;9HtN_3tTV66wE`~}*4xZ0CxJ0N_g&mham{-`j;a$m)oa}*>I6p29|c`EdK}is zA!kgB@nk=fn{M|Q%L7Mz2P1EeC_sqp17F#FxmK){$a%a@BjJ#n#!B2 diff --git a/keyboard/ergodox_ez/keymaps/keymap_default.c b/keyboard/ergodox_ez/keymaps/keymap_default.c index 2965dc74e..870f804ec 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_default.c +++ b/keyboard/ergodox_ez/keymaps/keymap_default.c @@ -46,15 +46,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_COLN,KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_QUOT, TG(1), KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, - KC_UP, KC_DOWN,KC_RBRC,KC_LBRC, KC_FN1, - KC_RALT, CTL_T(KC_ESC), + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, + KC_LALT, CTL_T(KC_ESC), KC_PGUP, KC_PGDN,KC_TAB, KC_ENT ), /* Keymap 1: Symbol Layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | Flash | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -75,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // SYMBOLS [SYMB] = KEYMAP( // left hand - RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, KC_COLN,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, @@ -162,50 +162,24 @@ void * matrix_init_user(void) { // Runs constantly in the background, in a loop. void * matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); ergodox_board_led_off(); - ergodox_left_led_1_off(); - ergodox_left_led_2_off(); - ergodox_left_led_3_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); switch (layer) { // TODO: Make this relevant to the ErgoDox EZ. case 1: - // all - ergodox_left_led_1_on(); - ergodox_left_led_2_on(); - ergodox_left_led_3_on(); + ergodox_right_led_1_on(); break; case 2: - // blue - ergodox_left_led_2_on(); - break; - case 8: - // blue and green - ergodox_left_led_2_on(); - // break missed intentionally - case 3: - // green - ergodox_left_led_3_on(); - break; - case 6: - ergodox_board_led_on(); - // break missed intentionally - case 4: - case 5: - case 7: - // white - ergodox_left_led_1_on(); - break; - case 9: - // white+green - ergodox_left_led_1_on(); - ergodox_left_led_3_on(); + ergodox_right_led_2_on(); break; default: // none break; } - mcp23018_status = ergodox_left_leds_update(); }; diff --git a/keyboard/ergodox_ez/matrix.c b/keyboard/ergodox_ez/matrix.c index 09380d308..3e1d69444 100644 --- a/keyboard/ergodox_ez/matrix.c +++ b/keyboard/ergodox_ez/matrix.c @@ -277,7 +277,7 @@ static void unselect_rows(void) mcp23018_status = i2c_start(I2C_ADDR_WRITE); if (mcp23018_status) goto out; mcp23018_status = i2c_write(GPIOA); if (mcp23018_status) goto out; mcp23018_status = i2c_write( 0xFF - & ~(ergodox_left_led_3<. #include "report.h" #include "keycode.h" #include "action_layer.h" +#include #include "action.h" #include "action_macro.h" #include "debug.h" @@ -71,6 +72,8 @@ action_t action_for_key(uint8_t layer, keypos_t key) return action; #endif } else if (keycode == RESET) { // RESET is 0x5000, which is why this is here + clear_keyboard(); + _delay_ms(250); bootloader_jump(); return; } else if (keycode == DEBUG) { // DEBUG is 0x5001 @@ -78,7 +81,7 @@ action_t action_for_key(uint8_t layer, keypos_t key) print("\nDEBUG: enabled.\n"); debug_enable = true; return; - } else if (keycode >= 0x5000 && keycode < 0x6000) { + } else if (keycode >= 0x5000 && keycode < 0x6000) { // Layer movement shortcuts // See .h to see constraints/usage int type = (keycode >> 0x8) & 0xF; @@ -107,7 +110,7 @@ action_t action_for_key(uint8_t layer, keypos_t key) action_t action; action.code = ACTION_LAYER_TOGGLE(layer); return action; - } + } #ifdef MIDI_ENABLE } else if (keycode >= 0x6000 && keycode < 0x7000) { action_t action; diff --git a/quantum/keymap_common.h b/quantum/keymap_common.h index 5735631d9..2da01251d 100644 --- a/quantum/keymap_common.h +++ b/quantum/keymap_common.h @@ -190,12 +190,7 @@ extern const uint16_t fn_actions[]; #define GUI_T(kc) MT(0x8, kc) // L-ayer, T-ap - 256 keycode max, 16 layer max -#define LT(layer, kc) (kc | 0x7000 | ((layer & 0xF) << 8)) - -// For sending unicode codes. -// You may not send codes over 1FFF -- this supports most of UTF8. -// To have a key that sends out Œ, go UC(0x0152) -#define UNICODE(n) (n | 0x8000) +#define LT(layer, kc) (kc | 0x8000 | ((layer & 0xF) << 8)) #define UC(n) UNICODE(n)