From 81d13994049456986a499a238a76e2ebb8cb0821 Mon Sep 17 00:00:00 2001 From: houbb <1060732496@qq.com> Date: Wed, 8 Jan 2020 23:37:12 +0800 Subject: [PATCH] [Feature] add for new --- doc/issues/v2-基本敏感词的简化.md | 251 +----------------- doc/issues/关联框架.md | 10 +- .../sensitive/word/constant/AppConst.java | 8 +- .../word/support/data/SensitiveWordData.java | 3 +- .../houbb/sensitive/word/utils/CharUtils.java | 68 +++++ .../houbb/sensitive/word/utils/NumUtils.java | 107 ++++++++ src/main/resources/dict.txt | Bin 1283548 -> 1200087 bytes src/main/resources/dict_en.txt | 12 + .../sensitive/word/data/DictSlimTest.java | 56 ++++ 9 files changed, 261 insertions(+), 254 deletions(-) create mode 100644 src/main/java/com/github/houbb/sensitive/word/utils/CharUtils.java create mode 100644 src/main/java/com/github/houbb/sensitive/word/utils/NumUtils.java create mode 100644 src/main/resources/dict_en.txt diff --git a/doc/issues/v2-基本敏感词的简化.md b/doc/issues/v2-基本敏感词的简化.md index d444465..8eb55cf 100644 --- a/doc/issues/v2-基本敏感词的简化.md +++ b/doc/issues/v2-基本敏感词的简化.md @@ -20,253 +20,4 @@ 对应的任意写法。 -https://github.com/toolgood 思想值得借鉴。 - -## 单个字 - -48339 === Q -83586 === q -117538 === ━ -117539 === │ -117540 === ┃ -117541 === ┄ -117542 === ┅ -117554 === ┆ -117555 === ┇ -117556 === ┈ -117557 === ┉ -117558 === ┊ -117559 === ┋ -117560 === ┌ -117561 === ┍ -117562 === ┎ -117563 === ┏ -117564 === ┐ -117565 === ┑ -117566 === ┒ -117567 === ┓ -117568 === └ -117569 === ┕ -117570 === ┖ -117571 === ┗ -117572 === ┘ -117573 === ┙ -117574 === ┚ -117575 === ┛ -117576 === ├ -117577 === ┝ -117578 === ┞ -117579 === ┟ -117580 === ┠ -117581 === ┡ -117582 === ┢ -117583 === ┣ -117584 === ┤ -117585 === ┥ -117586 === ┦ -117587 === ┧ -117588 === ┨ -117589 === ┩ -117590 === ┪ -117591 === ┫ -117592 === ┬ -117593 === ┭ -117594 === ┮ -117595 === ┯ -117596 === ┰ -117597 === ┱ -117598 === ┲ -117599 === ┳ -117600 === ┴ -117601 === ┵ -117602 === ┶ -117603 === ┷ -117604 === ┸ -117605 === ┹ -117606 === ┺ -117607 === ┻ -117609 === ┼ -117610 === ┽ -117611 === ┾ -117612 === ┿ -117613 === ╀ -117614 === ╁ -117615 === ╂ -117616 === ╃ -117617 === ╄ -117618 === ╅ -117619 === ╆ -117620 === ╇ -117621 === ╈ -117622 === ╉ -117623 === ╊ -117624 === ╋ -117846 === ㄖ -121501 === 买 -121979 === 乳 -123013 === 仆 -133622 === 功 -133786 === 動 -133790 === 務 -134011 === 區 -134255 === 卐 -134287 === 卖 -134910 === 卵 -135512 === 口 -136392 === 吊 -136576 === 吨 -137367 === 喷 -137479 === 嘸 -139926 === 奸 -140085 === 妈 -140126 === 妓 -140373 === 姘 -140397 === 姦 -140409 === 姩 -140464 === 娘 -140498 === 娼 -140503 === 婊 -140519 === 婬 -140562 === 媽 -140585 === 嫖 -140668 === 孕 -141291 === 寇 -141668 === 射 -142550 === 尻 -142603 === 尿 -142620 === 屄 -142639 === 屌 -142650 === 屍 -142653 === 屎 -142665 === 屙 -143107 === 巯 -143346 === 干 -143535 === 幹 -143735 === 床 -144165 === 弓 -144386 === 弩 -144931 === 忍 -145146 === 性 -145905 === 慰 -145913 === 慾 -146837 === 戳 -146919 === 房 -147574 === 扣 -149446 === 抠 -149774 === 抽 -150089 === 挂 -150244 === 捻 -150260 === 掛 -150296 === 掯 -151938 === 插 -152406 === 操 -153468 === 日 -154328 === 曰 -154902 === 本 -155789 === 枪 -156187 === 槍 -156578 === 歌 -156780 === 死 -158105 === 氟 -158172 === 氯 -158265 === 氰 -158565 === 汞 -159598 === 洱 -159944 === 淪 -159948 === 淫 -161116 === 滚 -161125 === 滛 -161669 === 灾 -161676 === 炮 -161774 === 烂 -161845 === 烯 -161856 === 烷 -162055 === 爛 -162196 === 爽 -162941 === 獨 -162985 === 獸 -163396 === 甙 -163934 === 畜 -165856 === 眯 -165880 === 睾 -165889 === 瞳 -166039 === 砒 -166049 === 砜 -166086 === 砷 -166097 === 础 -166234 === 硼 -166254 === 碡 -166265 === 碱 -166275 === 碼 -166290 === 磷 -166298 === 磺 -166876 === 穴 -167390 === 糞 -167499 === 統 -167536 === 綸 -167961 === 罂 -168722 === 羟 -168800 === 羰 -169070 === 耣 -169444 === 肏 -169474 === 肛 -169508 === 肝 -169679 === 肼 -169680 === 肾 -169725 === 胂 -169729 === 胍 -169883 === 胺 -169907 === 脬 -169939 === 腈 -170004 === 膦 -170283 === 臺 -170406 === 色 -171007 === 苄 -171216 === 茎 -171229 === 草 -171395 === 萋 -171473 === 葵 -171614 === 蔻 -172474 === 裸 -172599 === 褻 -172877 === 証 -174115 === 賤 -174531 === 贱 -174972 === 踢 -174984 === 蹣 -175044 === 躶 -175063 === 輪 -175475 === 轮 -175543 === 辦 -176368 === 逼 -176679 === 酐 -176733 === 酮 -176734 === 酯 -176735 === 酰 -176767 === 醚 -176768 === 醛 -177126 === 鈤 -177295 === 鎷 -177321 === 钒 -177332 === 钠 -177487 === 铀 -177569 === 铊 -179476 === 锇 -179520 === 镉 -179521 === 镍 -179803 === 阴 -180109 === 陰 -180173 === 隂 -180292 === 雞 -180594 === 靠 -181185 === 騒 -181190 === 騷 -181303 === 驽 -181352 === 骚 -182246 === 鯫 -182247 === 鰢 -182306 === 鸠 -182308 === 鸡 -182405 === 鸨 -183438 === B -183491 === b +https://github.com/toolgood 思想值得借鉴。 \ No newline at end of file diff --git a/doc/issues/关联框架.md b/doc/issues/关联框架.md index 3fa6900..c6246a7 100644 --- a/doc/issues/关联框架.md +++ b/doc/issues/关联框架.md @@ -1,4 +1,4 @@ -分词 +stop-word 拼音 @@ -6,10 +6,16 @@ 全角半角转换 -中文英文转换 +重复词 + +# 其他 + +中文英文转换(待定) 手写 Regex +分词 + ## 核心原理 DFA 算法 diff --git a/src/main/java/com/github/houbb/sensitive/word/constant/AppConst.java b/src/main/java/com/github/houbb/sensitive/word/constant/AppConst.java index 661aef4..7b9ff22 100644 --- a/src/main/java/com/github/houbb/sensitive/word/constant/AppConst.java +++ b/src/main/java/com/github/houbb/sensitive/word/constant/AppConst.java @@ -23,6 +23,12 @@ public final class AppConst { * 字典的大小 * @since 0.0.1 */ - public static final int DICT_SIZE = 66337; + public static final int DICT_SIZE = 65711; + + /** + * 英语词典的大小 + * @since 0.0.4 + */ + public static final int DICT_EN_SIZE = 12; } diff --git a/src/main/java/com/github/houbb/sensitive/word/support/data/SensitiveWordData.java b/src/main/java/com/github/houbb/sensitive/word/support/data/SensitiveWordData.java index b35e1b7..b551ad9 100644 --- a/src/main/java/com/github/houbb/sensitive/word/support/data/SensitiveWordData.java +++ b/src/main/java/com/github/houbb/sensitive/word/support/data/SensitiveWordData.java @@ -27,8 +27,9 @@ public class SensitiveWordData implements IWordData { static { synchronized (SensitiveWordData.class) { long start = System.currentTimeMillis(); - defaultLines = Guavas.newArrayList(AppConst.DICT_SIZE); + defaultLines = Guavas.newArrayList(AppConst.DICT_SIZE+AppConst.DICT_EN_SIZE); defaultLines = StreamUtil.readAllLines("/dict.txt"); + defaultLines.addAll(StreamUtil.readAllLines("/dict_en.txt")); long end = System.currentTimeMillis(); System.out.println("Sensitive data loaded!, cost time: " + (end - start) + " ms"); } diff --git a/src/main/java/com/github/houbb/sensitive/word/utils/CharUtils.java b/src/main/java/com/github/houbb/sensitive/word/utils/CharUtils.java new file mode 100644 index 0000000..c3fcc3a --- /dev/null +++ b/src/main/java/com/github/houbb/sensitive/word/utils/CharUtils.java @@ -0,0 +1,68 @@ +package com.github.houbb.sensitive.word.utils; + +import com.github.houbb.heaven.util.guava.Guavas; +import com.github.houbb.heaven.util.lang.ObjectUtil; + +import java.util.Map; + +/** + *
project: sensitive-word-NumUtils
+ *create on 2020/1/8 22:18
+ * + * @author Administrator + * @since 0.0.4 + */ +public final class CharUtils { + + private CharUtils() { + } + + /** + * 英文字母1 + * @since 0.0.4 + */ + private static final String LETTERS_ONE = + "ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ" + + "ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ" + + "⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵"; + + /** + * 英文字母2 + * @since 0.0.4 + */ + private static final String LETTERS_TWO = + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + + "abcdefghijklmnopqrstuvwxyz" + + "abcdefghijklmnopqrstuvwxyz"; + + + /** + * 英文字母 map + * @since 0.0.4 + */ + private static final Mapproject: sensitive-word-NumUtils
+ *create on 2020/1/8 22:18
+ * + * @author Administrator + * @since 0.0.4 + */ +public final class NumUtils { + + private NumUtils(){} + + private static final String NUM_ONE = "⓪0零º₀⓿○" + + "123456789" + + "一二三四五六七八九" + + "壹贰叁肆伍陆柒捌玖" + + "¹²³⁴⁵⁶⁷⁸⁹" + + "₁₂₃₄₅₆₇₈₉" + + "①②③④⑤⑥⑦⑧⑨" + + "⑴⑵⑶⑷⑸⑹⑺⑻⑼" + + "⒈⒉⒊⒋⒌⒍⒎⒏⒐" + + "❶❷❸❹❺❻❼❽❾" + + "➀➁➂➃➄➅➆➇➈" + + "➊➋➌➍➎➏➐➑➒" + + "㈠㈡㈢㈣㈤㈥㈦㈧㈨" + + "⓵⓶⓷⓸⓹⓺⓻⓼⓽" + + "㊀㊁㊂㊃㊄㊅㊆㊇㊈" + + "ⅰⅱⅲⅳⅴⅵⅶⅷⅸ" + + "ⅠⅡⅢⅣⅤⅥⅦⅧⅨ"; + + private static final String NUM_TWO = "0000000"+ + "123456789" + + "123456789" + + "123456789" + + "123456789" + + "123456789" + + "123456789" + + "123456789" + + "123456789" + + "123456789" + + "123456789" + + "123456789" + + "123456789" + + "123456789" + + "123456789" + + "123456789" + + "123456789" + + "123456789" + + "123456789" + + "123456789" + + "123456789" + + "123456789"; + + /** + * 英文字母 map + * @since 0.0.4 + */ + private static final Map>e11&Q7AUa(M9I&th_DyYnYk0|R+P{p5)94h@%qN8({s>pL zpRaFGw&?70xN-%r5cp$QHz&XYNJ~_1-=YFcrBIrsC5(8L4!dcRJlMo~hULs@1VjHj z8d+iKyB htX(J^^)wnZxu5B#sXId~+dWsLaa77ys>}@*Z*3eIG_Y z^~W&5P=&xvGv3@T)^VBJ1+Q!^`=>{kW2hvjNA)x{t!z`6o}=Ja3k>&A(|hgiDDJBD zzcE<4rs#=b(#S 0phjsUK_cR$FV&EV9`7==Nf{YgPHS{T9AFRe9glFF1`Z}0g zpu~VwxiwQ0hx&_?l?^ObgoK~VR0pV@<3-e{)E2es%64#h8?5bwJ5;ZrMApR9= 6ln8#oNkI7DEoTe&k z5`ZQU^yV^$#XiHUMLwSbo`t_YEdU02Vr1v3@BRPm=g&7EDr2Q^_iOYPlLq)ttR!fo zsQmT$_C7jC1rSd m>IC<{@f}8e^Fz3^&$AH zp;=68aISp!x63Io5xf5TUvQFR`8*s&n&HDXg?aVS(68Wn%mW*mL4AYO!7?6f&iT{3 z{^2UY+2~{l^Pf1+PyPG%n7N|e+2ClCupGsj8}=8#eGH*U{@Ev5#7gssM&Ufbh99Vn zm9H{#7OXsC9}@ip-DvRs609fo4iuiphT!>n2&@{l#>iB#xEWsV(JGXxtFMdB%hBbQ zUs@qP n?@qS zw1ICUenwa~2|tZ_IRb=(OR#thFI)#d-h(tce{V%c!WeHR1;zex1gh`TuzXxA4h_wp z!@=9_aB|#VSn^MXqtRh5uPG_IC}JitE92nZT;+P#zoLo L`HH?i3&I=#zE(l>xhvb0;OYkr-5+5+5(vDm zUtZzJQjN6DyPMW6BA7q@+0>dvN;6dXu~r21KI|B+3bva_mBNM+A7KY1K1Bjh611XK zyVY `s>ZXAOogo#c*S6U2Ah1f zU{PdKiRO!i>5&gi1WQ2N5fg#Y`B8W~UMntti>U}s*I7rvzc0^5rA2%Qib`vWYzc?2 zf|)ttkqS+;G)o{hi(vFlk0{N(uOtGweM?NX=BoaKWG*|Ns&|W3|9riQ-4m_V*ivnm zQGd^OsLgt;h7|OEHrV`1D`QGc^cboj%Xq0&YM>QG;xebwh!mY+u&3M%(p5mPwd ggnC^X~~&;AKtzT)sSx0lMf zi8R#Hx<2y=aS)iGEW|?S6Ae{VkYwRs<^3Z9#S!jY2bXKXPg)0v3r;n5WHR~S^eC0X zkC*CfYNL+XIne)SU-8v|a`nCJ`)B2RC9d}VhNgdd10sUk`}+pHR1f#szeo4~-|K~X z`IC}AdHK^If70?NCw~-)0zIsN!`#@%{_JXH1$_WrDI8g;$F3HC;Gyj;$x{5GWvm^t zMg!nJGLVt>BAE+XjT%vPo{LX#R Ib&a{`i=GgRT&isAiB& zDjdb z5QpgQhzm^#7wV;=>%HhLid7l9i-v~r%T5w EpkQ)6I@|RpmqDm1GYx@pQ}nask4<^$OsX+DJBZH5 zA&>SSCZoB1|K_?bmupC65a>#<(wTOAjB2EGhNNp?)XSS#AR*7e+#4QlMVDp7q* fmZau5fNe$IxAqmoN57Kf#CIVb%F$FHOgh$;Dp`(t7G z+%F$_=>~mTlWxdHSLfKAVR^&;B^>_gr5ka4f?w?G{f#{=G+sL22#K^DgWzxk>sa*j zDxao_XYsfp+t3J#=i7IkgZK+Ue6TqcoG(}QxBYj+Ub>~-pWEeDX+d()@^@^${IgkX z&Tx361PbXE5&kF!PJ5MrAnA>xSR#xVw51q`C@mm@26(5ir7blVS|Da6iGfDw!0OYN z=IJouaPbsV%=<|*LZ#Xo%!B+i->7veZNO&{mTu{yfov}^w~^KT?oGkwte_mDX8 z8I$=6&Z}ld|3>;!6*ZHRvegX2MmJb_h=#_@r~SKRlF`7+u9_t@mG4v?rU$fC%_x-( zoGbqOK{X1tS8^+4^8}|b4UPHwI?7)+niRQq6IqpQatPX16W3~{q;FH7V*-9*5oIQ zAbyE`0b?2OEd29vVqenFw>ZMR!QY3iV0#(AnA@Vu68^#KFJNW@vyY$2@#mYF6bVHx z?t||)IAK*7g?)}5P(XhL2f$cz@HZ@D*6`21=D;pAKsuH3k4C+8uz!J{(?f8v_{&=x zVsydM!FNWyFL)So>J<%6UfHUaI^lhYosn>6g_1rifX>io&e2vMEAPOdATsfx<%96{ zl6bmw_<240a*acuVD*M4_3-QzX!%&lpvg&_Ih>d+<6r8(P5!sZ#;4Kyr_uRL!~aqK zzi`%B#=qyAEgEar_)=j7vhs~mdho*FcTqPUpN?XgX9*y;O7wFhSRe7ym7yX0jLnH~ z7|xAfjejp4VX? Y$bDP`fc 46H585BSB59R0?LtMI@RbefG5WGZyKaH2bx(6zoX#BiCtRkQG!<& zNYb#JD*>r}OB_uAmnOPAw(^1=f(!g2&elq0 JE?`w$ddb5l_`PoFel z5;e~Zq^t4a-XAaN9v}b?Y^wn2M_$HI#2w3lbXO+$7N^6fboiR_PuEb9b2+GWV0p L*Wv|7Nm5W>v^$RFDzs8&!o43jvZ}nFgA+#vIHSrSCs{P{8;y)V-^~Gm z10nnKUY0bMCNK_B@aXgiCprv4hBfsLA}K)V!hoRHMEhZAIKfR~E#-!E%($z&EfZEY zzejJc8|&n+zW^n&!)W45Fjf*b$$@8aFhs{m5a3}Uq>~mF<{>l8YIfe_wX#p>US**{ zln~)<9b&HoWgH0ayezbIpb>Icu53 >CX!(K5CJvHT`&7NrBjnlVL!G6wF3X> z*2|`9(32F2xFR|K&!&>m(^=7Q@v`X}anniSOkU=MOuj+pgd8@!*-VXyq#K72{O0Hf zGimHm3r`GSNYI>Z0kT}!052C7Aj^dX$Z`<_ve~i{RVzbGp@vfosAa$c?!S?$Qw)H& zNS0L1_)MWc(*8bi>kxnZdu3$?%d(mTIGO_*T2ZqS603sLQY!dlTrI>&U_&W5yAzo( zqNW;6gWZ+TOI_LJR>)0>&SsfjA(|nuFgqWiQrch^ja{`ugQ~=~N*$zGls2yG!j4g$ zo5T>jRt#Yr?5~g*hM}m+y}JA=25Y(1%0rln>O2gyQI*H (Q;k*;^IvWQ0w3u>Q`blB0F56v{ {0pi@XQb4i)32}^)P*CXjA zZI!GtnXQuk49o&(L5sr4P`o-EWs=r~1FW7bH^`a1@meE*{f!8>o7kiwU` Ct$;kPhtdkl#ChN^zR~iT;)qVT z#4!oUL><%cylrYlLd7eobGYfR5^nWZ1;opr0H*KQUMoS U#52;Gl9}I zX }UMnH{-IXVlU#PKDosAaWRO>sHqap@Nd1dz>vQrB=2oE(Z%xLc4k=|hRi z%^`_6R940+o*5!>T6P(PDsJeQO1HI(By-e5#-cKPAjWhzaFJwMx--O7GE>;~5YHVk zmG09nVx>-9#jYDP#N?1lm)+H&_Lm_#+Rn?Gyli7* z@bCktigF|fe~m8Gh 8%Ae_?|j3@@i+vhbl{(=EH9IrHt8ZnO&cjHovCNl zF?KfET_fG_T;@NKD#xIgtE>JJoO~{wKwBd`UBz*2w0G)H+=7sb3ZeGOE$(4?IqY($ zKamb5ZWY-cIthm#S|riirEuXCp87&Tjy$Pqay2%(IjH_zpJL0MhxQKNkjUd&L@tFx zLO$Bg)!6LjYHVV2_~-?Eo04bMHKt_m+K{dXTH`~t5Ga>%l~gT6jWX sE5vJ`oc&$9DzgS8oc&!+}s}Zw+R^_fH$=~2k9xS*v^$MQC zX*Yvd@d%SCR_9@mB$d+!pmO?vL6Y&DS^`y7{Qz@n#vsYG)WTww)GRC(=F}O|62zos zSU`znvvn3?C!@B49BLOe*>HC8?ATWJ!RQIyyvxxZSbpuDFvAR(+6J8fvP05MRSV|t zO9uQV8Pjq}YJqDcV?IAgZ)ze5n@ >hrOeHbEi zySVL{`*e}0Vclbry==VYXW(l`qYsXd7UX5gRzv=J!FFif4`g-$T zuD|E?KMnks!7eX{(q|h}b*WqqZtFacR6hZH6y_NYI>=&R_p4H9g|7@f`pVE50`BLi zACvL`{gA>-j#LjPCh&J-!!wt|w8LoPn;>-oqhq;PxbG?KLzssYz05 z(D>CDiT%R;7{3}4#;+z5<5xqXp}}RPEkrd ^NB+(FRB^g z;H3FihPlQhg7!I|MSV|J1OCt?l^TP(3Jk4{*NPDrQKv33YL!GnOtm_Bm^p~QOG>I@ z=!$n^=t-(7hG`lnhMBgiVwlErVwiQLDu!uZCx+loT?yMMX<&((DBH0UGbq!jg^1l& zdZ-k%I(}`2C xy~YnieRx9gwS23gq=3YLR^A+R--Zu1W&qJS}tEg{A7*z%@HbXnk* zMG{KLK%&D({PXA{3p5c2wd0??hJjYx2E$cUb>Y7ODk&s>gIuLSj{dPqlU6j@MbH6| z-q3AfDDeNvkb;0ee~YV8UIRob_0jN3KKyZ;hEg4gzVgx9LJoRg(D6FVc@4D2YrSu; zv92yyJwUqQ_b>j|68xz&DZH<5! f(bfN@~EONMa^^$to?2Bo-9X7->vraHDt1UmzPZu+jrYh^+PytP7UK zstaYm3`#Kz;Z>d2*uV-a>3Zn5 QId(V5oVUgg~b!bO%BtAGO0)?)A_kQ USqxy zYN$6adwSulQGz^lLlL3`Ta9_#swI8_4iPTF0dDIa)v6rSg+$h*k!W`)8as?ZTn0oC z?lzv%O+Rr5>$oGdfV}X*f{^HL6_+2U;0-=rk{}C?(_6?n;ZWRbW1hHI{O->OKlZ#v zsJ!wIqyND>>>jRB|3FXHpNNbTKt82JkNFygjPiAm|EXccZm8?fP=un+%$z5PSb>0& zsq*5A%oa%&^SEAZZfw9Kys@aYNO($>DUYi%{=rA$=h!|HqE 3Njeqmq-7?{+X^KI^-mp)&BB8PqsCHwz x&jSt%>?YqGnC1yGqB-rOp&-5lQm?h zov*RI=%2cDG5^4c+I<=I3U3@w>e%YJ$SUSE5M7Hl@+qA`4dx?X!z3CEW*ux|YNk62 zdE7YT190JL@|ld%`-O>%GrDJ%O6R U>s;XLmI(U&AaM)D+3M z#~RsNgZmB!sJ>&F! Wafz@+J2C!(6W^bOUqw}{OE$Ck1WlwiL*Y6c@FLax(>^Icm z4reOo6*7ZZ3S;RF{K9Zi2-a@;L#3iWSZ53P4{E*oudvMI0|=fF{Slsix`rW_F`y1U zcIp+Hn%>ZzkDD#h4~HQ|x~8!OTYGd1q|nmcQ6wg#&=K6uc!f^kQq?3`=xTlKAKvG3 zIsAgv!!Ih`D|B@i{$4r(pq)rf{sHKP(FR=4v;fj~rb{O%*NPQTY-{am?iuLqD!hSJ zz!Vu|* d5b*xeC5j#W0U z4Bqm5H;t} y&HK2K3`0nTm+h^^f`51z9Ipr8$d(TV00d7@BPUOzYfq!6PoqDcMwXvO zhM$HPo`(0IhL6JO^QYl8IG%>bpN2mIC$9eJmM&^t;Zzm$H&3G Qmrhm!8Yt)36nVkr>X5fW^f`>lI%8`Nv>$XG_nY zMHrSrvtW+|&?F!ZC2G{T8iz@*MRTAMDSr$uztg}6CA%?!@Bo09zK`&`BbXVXOHsxx zl33W98~zA&Zfr<|5)xzF%asWS+vITSGY_{{G)doKobcUD#A2@=p|8ZDCMbm3SNh 7Psc=Z_@1~xoLsQAfLYo^ zk?9quB*@omcWk<4*oTWH86)JaNRKh)WY*P)4KU{&!wEQC=~Iu~*~Wn*ug;Qa+y zej%g#`JjLN3j3JG5$D2qyz$nQdeEqd(n9DBSOC!W#v5DzE4-3KkcBu*7UDH+qw><7 z!}dB+RF%?PtkP8ZvY0^aX%Mu0iYv8bsR-`Xi2&kdIM`}hoFIGSGO#zCyqEqe#BqZA z%ap>mV;Z(%>=0hQV{WQNH8iH!xnW!c58jW3+lQD`qqPG}q==YJBMnJDoVg?S%$-t* zfm?sQIMhO{ai=4wYT&!7@ VN)Q@^Br#%nl@r0I1pBzV$u^xVM6o#*q8J ixrF`p`(82%g1%sMk?W!U0fi|eW*orEUOD8N|BB~Zm+n`eM z24qXsDNEZgi3_4zK~sp|rija^Waav%ph;D2F&w|0hHgili}-B{&39-Dv*$3WDz??} zQyPB{jl2KXryEo0MhZai(lP%#{CjB!hiUld706PN`Bz>kG HN?LgIj*}_%?wYAvs7)7 Tf(1N z1;Et_{F7kfsKGqR{eIO(icIpwpw0;z@JN8LCN=4R;@9WnfTosMy@06QCGByI7~ zYbx}FBiH=r;~D-$=MP>}Q#QC8hpi9%q*L%VaX;KgH~V{O7yf2M#&Ur#gokzoBj1ex z)F8^5NmCP;G=Rja$u$#pt6|D+HB=yA!(NPkm3#uGU)bhh@NN!-*flh@wsyUNO-=|8 zJt!xV%)P0j&_i5BQ%9S>IE_EWHdq4DS#^-j$)>)hK4R+0+}Etv1g@I-BsiEMla7Oa zM^)MMvNjvp^b&QA)dB?4EsaB>lUEkX*>YmN0}eCApD&4kt*oeqN_r(zQ!t@aR$D;H z3n--^)>=3tcui8oQ(hhV^CJM&lBT_464z_`YoM>+Yx-xe3A4-#{QnyNzrp{1;Qz){ zeSJMbu$ANq$NVa+{Pz<6(Nu(ggkjeynELgaNQ?k8*-c#Em|?u8%KB}vdg@P&c+HvK z9{zdtKR5kDKU{sU835}}R)1D+U}+Mlzq coV$; zK*tC=$Seg0NG2}{laQNLX-zye*&`PA;E5=O9vB+(nhQO&?`&?yeEc+dz;iPkyKv*5 z*WB`=7aO0-&4Sn5`Z5EfieB>{uW4!JV@ e$?yR$HP9@tVrx0S?gY!bvB!E>j0nx<} z7f8@pc}T)>=P*gD87NN2NEu^D_YD)tZ~`%nn!Q|r%F|!?>kaKJu_^BuY(;xwA)of= zx53{*fx~MafLzdP9_)oxRBUklvtNGs6ulaz|GnlnZ7=>_y7_zQ7DEk<{id5|Fp`*{ zb hc7oll9mQ9$zJL=XnU9o754DWdj-*)H|3EA?>$No2 ziHOH*$*U7d;mNg^!66f>n!KgZ(T$!?LZq85ucgpc=;$hR7a+)dzT1Hxg8 egUQ0`7^mqm9@-)x1w7hvEgNX)E%O8KV$S@=e{ikbnnXJY%ka7W{ z=;%PPFr;AF3@y^!=`X&=;|tOJcWNIf< Ahm?TX&W?`@8 z#ox=*e=jfazxltH7uhlGwRHKb6aM;!*U~eHf8a;{UfRQNUCb>5ZZGse?#F>x(hj_q z-d^H0vCOpaBN8O|A)DbR_$9+?HVS{t!L|&(B$;2fE*hQnAAURypNR|!iiPMXUd!t) zu~r~f6Yz_ZKtjZD0+i^!KvWjJpK3KWDKJrg3HDCB)|OPKVjak73@&-C9W6aw^!i91 z@{;iD;nVP!r{RPC?pIB@d}DVL!rR(k(y^;{(CXCMkLk>7RlEr?X03mA6b(}*ER!15 z$q+pLF?r>oe5-O2pq*rv7?TyBU)RD&y4*@8qj1`-{vsF788(b4EpznUN|!|@r@dBx zYYjHYD<3|?DQ3XcU$WkWS9G+`$bb}piHgj&D4!Ugq+2B#5X0E5IA8}40^`zNE6PDa z$Eypk6?Wsu CBlj{ZZ%|Ec(;i-XDeH>kddpi!67>8hVO =2%|!M wxxV X)_KoPbg{P_ywguy4w7s$tGGxV9G;$)P>;+*4F&%O}MxMyVSt_ zqnnJ3V$LQj#gpThqlsPrqvsDw2do>MuVL038Vupi9BzE+x^hrCMRRExrFwR#wd$6G ztF^{Kg`ucUMKKW$wc#WjTuByORMgrXRJVDu)Phnu24P4ITO?vZU_2!}nODwfVjKmX z_K$ujCtG30ITdV;aM%r*TYtX)Ccg4Yu)YmT{Ae8kZdXz9mXq6na=Kj&&LMgIuEWAf zG^+%JhpYaXi4XI4CK7KVgP~h`l!b}eWcYI#-0??}1}iK&gRZbp_(Nn%nghsrj?REg z{E^!x?eOP*8Yi}fDwsBl+IfL)Ba!e7fp(I`Rz}BQ%YTM8Fzn-7b#m=Z17Nu6u?!VV z$BUw(Bfta = kZMc|Q*O zJ0=&}>ENv_Ou5vK5QtrE*#+I)Ct>K1k^~>X?D0F(f8Z-0n1l{igIQJEa9&KrWOx>h zU-#e~=#ez?5jTFTKFDBl7coJnl(3T6{d<2D278ZGsZ^4Xz7sR5NW+h+O6X4IMCHQ< zW^^5f_u%NHcWq1otbC!H|KLlwf$5p51J5iB%?8`5dDw^R)Dm|3fed&<@17}7KR}+N zot2?$;x9PhY$iDT7%pKtrUcJsFoMa t1fG$oIEW#QH%b#u9Kwim^ar>dJuPB6# _@m*FavzPjJq@F*#gX;z)GYz z!TiFsqnZ#&1~>It_f$IK2a}6?7@W##>G=j$Z>4r|yaE%-!MfBd`&4EKn45=faIi}{ z9sq2QjBkZr64XBWnAr&&nBZ+FjbS2Vj)1CkwG^(7TO$xaW$hLVCUY7>VF1kcy8GC4 z4yI;4p+Ie!YJ?aJ?*{zDDaj-qVewb5pX*)`eE3K+^3q8#{252^63mr~qh|4)-nPkX z11-n4ZjIrP6;qPX8Q1acmHLDTCbP{Lqe=2Z&&zNjY)_=0tn>HG}Llt~N- zr%pd(aSguj`WM6DrYxf98;}!3dn!LHdDlnGxKTM*O5n+#%Tk%)_7A+mBx&*H91pCZ z2U`GE5bDy?8(_)}j0Y58!B3u(;Ez9ez&?OZZrOME3AWK8k O$7wCkGzyZ}lsn=r-gHkoo(+zBzwXEHrSlPjbpPBbE$ zwVd&}bQ~-e<}4y5r(p_coUh?6u+PzwtiPm!zP4ZuIC)cmsvTlZH7Z~VRdWaEQ#g4* z>r~#$oGyU1z*a`^457^am3PCq_NBW&?K7ziWM%t8x(S@Y9C$Y6`wV&R4(dqA#D@nn zITHK87+O9(yH+?1(=7?UVqyS>{)=?d%J %TrInpy~D->z6Z!2KiMY3Ez>?bpU7Q|)))kYSCWC;RWVA2ZEgfuJ=f}W$! zquZLP)!JGIyZZ6l+S%OG(-~ahO|mVrGjToQwY4{?BEsd5e4{OI=~C?=sv&$Wf%DsV zUW;6614*vZB?Fk? 6G9#0m*@JH58{NLUE#y z!i%U5nVXFi!T{1S&78K+V?%MaYTMM-(cjhbDjbDbi4%3yC}%)zoyFIX`r#j4oonmr z!N8UMS6es9F)@|4^>mRev6Tch4FiL{t^KY2Juf?&Db4;uvAd_(G#Hj|qRCHBBU4W! z?~)Ph5ZIO^Cd5v#(M_ phLLUF!8uXMG&hJ8-x;$a{2HN2gKa-7%p z7adpNo#Cw4_AgheWzpQa!zVD+$!tt_ e*#sz_5`L!mL1!iZL~d&e0>@n zCH*#Xd|`dHPkwm~oKmp$;QyL=8kv0>ehYbCs*cWdKk(Cq6J@Bqd2QIhd2Rme7q5-S zB7XD-kYZmOeu(j$B8xM4`of f3r{KYk|9U@L}FyY}R zc5;~j;jbFRL|}YWO!#3=SN~O2r%>_5RPfUwxegWUDaxl>Sosq3pT^`sQu}0DO88Vx zbc#TDJR2#WRXT(vN(aC7g~k`BsCuPJ$xMC9uiHU#HOpCh2M(ZmU>cVeOVR@!7$lw4 z9qfi-xToy3cfUppxR%`8i-Z65&;G8zdjIHbf919J;;hGO?|c2`A78fN?|)w^{?|X- z=z*v9K}>|v!nD_plVtiICVH|B9t4~Gwx;^4yM ZmRvy$ITlpTuAyfU}mrnigYDoYX|{(Bh5z=*kJPDdTd^)^5*?j6 i4kO5kbV%mfk?P2%Gk6!Fp{K{|$Oh%jY!1(D^`yOyT&g3Dd($^#Ij^H3o9}4I z;a#14%InC3ps^7FklxYRRY$&uV$i*IQY#iO+S>pvcq}EDxx! ^=px(^N!m6v(43ln#6e%997hkaeTy}TM-vlmiaJvv4 z2*t5+P6jcl?I)Rx xBE5Kls)ESRzdMJU+5xvfx%IsleN@j7gS>dz9-a+_$ED!c2E9K0Vvtlv zs8^D@2$tnhlA@AW6+QW{H%*<$Me@QJ0fG|1f{XV8vy1nFL>Hp%@gn?jjmP6)wZZH3 zI#Un@h9h@al4Uug_wOL$=uH0xZ)kwP$;Un9&IWTtC(|#U`KD&DafR?zhre2BN*Le? z9r_i6o#2yOTUvupU!R80pGIb$hG#r*&bSm|Q8tK1Z1AB3p%k>Tt10r8chItbd>S5M zR{MPwMH<%RPb(Aitky7Tf_wX0yK$IE#mSOD22Y(Fexj?gN7FC>;@=&DvWQD6tkS5) zX=l?v4w$zP*+Z);c=EnB`u$H$1I0md2#XE}Y?bup|JQ%$$Ew`fL~>3Dt2Dm?1jb z5wY1{pW>TN^KgSv3lC7O&BDi%Lsphf^eW<*)L%96#6IGXv`;uB?OUA0W=V%Beo2K1 zzl5bN;g>zJ!GwR(6v97sc6PFI84l}lYJcK&cFM&RdXnI7_{|#u@K$mQj?|~H&;c+V zMSoEzZT+UctFz?Jgf~8>?d;^w?&*YTRY!BrpVWV-y`XP4k0DZD7ry@zjc!Jl+bMe1 z_HLD4*IYYjFT5PUDX|9z%88hV;0mV>xGq7$g+p`(Y`W-HcxTTb{-u)dh62Ir$%`~b z5FN1Lfr=ilv$tp9A6|N$1I^v}OcoPHc=wqkrkyY8>H;pTc%84g+`MKU{JlK)_wqa3 z`|@zywn9Iv{?fhvo28SJPL4#zQ{;mYn_iXB4Gk}~6aFaHo}F?!8ap+K7`|ehof?;Y z7vuV Hk+BsTDLI2#Ma2Og zBm$}&dPIX3jX|4pie_wbkS8AI#-qnL0cwDgbNLp7gA-893`gfNud<`t2nz>Rr2xPi zE^#P4@{P)@N7p|Nw0T|s<4dpWKePUCS2~|dH`b@+9amDWS;xD1JJ{?(PYd$HF0ZT5 z@@Al?*ildyPp-G3y-lcF)Wiuc;va2Q (njTiGzGIa9wlRhfV%!-XBR0dceT-uNgVBPVm>FV9e-)U=U 1PZ0Qyem0Gsx(&VVu)zL8k86?K^7h(?B3n>a(2UjC) zuT4`d6iJ(fZahjFeI3169f&37Zzo#jUWr}p>Uc>qB{so|`#Z>p(j8<4RBY&JPtU(} zh0^QlD*i)%XR-LI`+q`vA)Z#!!rca_5<{03^$CR+=n~12DEfq=;Nx}m_97`{ieD<5 z+{pxILf=Zfir3ZGl+Mu$_B3rMk4zlmQFDuURLAb>|Gz&DaNVO({+|Un`#r{}IR;wP ztYBPJ^#d(xd>NOZB!axT#V(ylj3=gbASaU9o+Gjv9md6^Z@59GPyy_qI`Fy%p|H<& zJQcHPU4uQSGK#|vXn`8Hs9hRww2M7C+J))F #BWxb>0fGoHYJsXxcQ=#% zD_&iMHZJ|^mZ77(W}gTN2yKdlNG_9V&*C+m*Q*fOB-kG8NT7a#J%lEavv@_q9@@cR z;3?>C2fR8q=h4_Bo?pVwnU2XN45c86jq#A^?&q-bV-rO3p3_^rfutcUT-Z&nU-~P! zWUO~w5}g(>4x?>B3}I7-t)=ak=q{9u1=h;`a!Q-GyYyvi`pX4P)TBU(eQ2CD*NyCb ztG=oPs{_2RjL8$lzTj=4>}(B*WQ_)?;FZIJOPE}IzDNJ%hDS-H7%=sKYIV`LeLxsj zsBEZB3UPq!ZS8 vwbbP^5*rz&sN7GG*Hk {wK-Gt zw>U6PDMQ|*9sn~|a;J6l6h}OiJ;i3KEP4 Oz6x&IIq9{>LL(~90+kXcABgSswm z-?vrx6|5tvLoSvws`5+SL7kr;O{hr#1?J%TT<9^1!4V1>T8lPZta~eEu!^9H1GSIi zZJa#O+w*s2XawPeA2JCQYF!3U8rLEym2?*N{l%}+>d@Dx6iPh6QP{<=m}i3hIT!yr z0{sISo0wBcRYH<7V;phWP1pZn9-(~3W9J9vVK{8!>dryR4Zq7*Mm*olRj*G#l@52= zVdV<@FD`@hD!j6b2ddGV>A*(gbXI?PtFAo=IDG&`W^`u~2nhm_kuIT1#QG>fVgfVW z7GJ3k!Avd_E+aN2no+VQ@r&dILDb@na&uQ2==KjVG5wIl>=5}Z(fzWAjC2 `7~aaimy!3;7~TbBo>P;tbP`Lc);Nne(6mF9H26lWJtY~MFHl+q{pJL zP=X4lcw#TAqe!wfsT%_V9e?az4I--&r5ExN2CeV{9dUZyI8;G>nCb&iY%6r&{NpeB zc>{qkDV1N};?L`WmxC=GJrFZApcegEV4ZaQ0L_=~?yf%OgmI4n6~w-4mWPwCTg2i_ za0EYb!mK#21cHR{ djaPS0fYL27 z;i8Pe8DtW4Cs*xC&=o{80A#` JA^*qlqD;j8~QgL5@_gu_;qQGE$=bYm7cb!CZo3 zkVIIwIn6FNbmSz3k106{vCZ9hCzQ?{?jQZ>?-ccH6qzV;HcViR>~6_9PUa^m93l~z z=Oc5@(6YjFBvkyK?gm(STp{~KOPHX0&^P0oi`d%{Bzso5TE$yMoDyNTi0g1C2&N6D z+ODdz90GAv!@pR0p#vpu8n}>CclQMEj_|4Kh@iWd>}~6 W9@hMQtLAqZ?ALb#`(OZqdw$@_nYs?nu$|>|Rm#E=+L1A{_&|h4NmVV-G zQ0V*7Ds#79Ia-A=QMpZ2`8Zygm AXb4=ir%_j`qS|g+B}71KvH~!_ @h3*n^&jYA>V#bc_u(3jcQ0zZ>-@j<7OxHh9JQG^Dy@ ze7u;hmlwjxcBvRHm8XAUI9uMs!5g*wj&BKev_T_p`i2{eUa` =-8vPs7m6!9(Ua4PEoU?fGZ0$8bVY++v}-m;P_Y{|)MY zr5k}TXs)g8JU^a6y%8p4xIv#r7oJ9UgXJ?EKX}EKzW+*6B(K=o`M>naFY1LnBsgM6 z&zmOY8f@ z$?-RT;X4)z7&k)MNpqarN&1vmY I%KSV%46YZ&7!;}r%P8~(p`z+9 z?1#7O=(JuDD?DvlzwLQNw6`=desPwCW+kx+zGv*31Ch_~!a<1FoVoGQKZGjdznjJ5 z?-c7AX;3!_ws(Rr-;f?r_WWZ~U!tc0S9f6opQo%IzN+WXKSDU*^>o&&%WplMU9Y+@ z q{Y_C z?oaSSUQcmAor{pm+^>U&5`zXST 46+n zX_EHz{t2GJ{7a=88oZ>!MFt9({BQ1Q_$O?9VOx<;HFvjRy$rU_@eOhb+Jg};5(#Q6 zD92v!Km9|0Z>}FR0=s%&b~g2Sy^XkYj&* ){82lN+Ka1E`uK<2O(N{HN#`2hnh+aMh?yoJW!^wa1jSvZ4I1SSKR*XV6-3Z`-V z`pB-GD^j!ohC7xpfCLu=oh)U7ORX<((KCa$r0q!r(0+%BxtL7+7BPq0>ros_P$gC~ zY1t^&E(cf3my3$1ttP6{kVgyobBF;XQri|n?8hCx<9%XB@KCWq<0!a%Bwwe}#a&}# zgObQCzfED)2vbz2p+t5j4W-Lw{8l}23gWl((1qk+B~~`kl`-?!FM?6ywWCL zeof-i3e+rBZrU3+dw4urxhW}2tcW50_@kBoaE+c*Hhs!QV_FE!am 2sUWh} ?B)|BZZX?$ z=c0t!Ce66bB!<;yf8kaHghr-*5`IooA?E9qU#Hp93=5lBJahQp>uqVyX0d8uDW!kx z2j`om(;I}54E}Bo|6p_jrvY>zKqy1_#X2JY2*uGk?72?LMu}rXQUzP7M@a-A{=r6& z{PW0Gq8u8k1H#_cmqh^(rk!dB7z0USe_>UK D-DP+6h(a_I3lQssaU!H$C!X`Cz)V!LdV2t~=efP3G;=#JO>0_ F2*W`r9+W3qfxR_VHPipcMamfuyRCbQO|u z5WT1A?bQnFaG3{Gbq@q2S{Ho21_l|rc_JWDqM2T@Pfr@hYGqA$A+LeWE-y(#d*&og z`hJ=QZiq?DhL$$E2ohOeZy&v$;Pv+X%LOWgesN{_pS@lztA)zgm4AdIr#Xn@gV7s+ ztX=ao^5qHJjZtvjXZ``SL59PVkN(CfDT9`-{9_CXyynyKM@MVF(mU!M?AKNmQgy-R z23}fVs|sJpszNrC#{Q!hT+Iw7O*ksMH{r&a2gbE8mFh_0Vb9fbG9lYn_>0Z4U@r>8 zZ1N9m@1ED!*43sC71@4wYy{eP?{08RsFnr->3`A(WVI{eH*w0zj3DmBfUSWE39k=I ze~aJnhs^sFdfwnKV#skQDQ8gtb4l13<1iKTg_y#Co6I 3$f?^4UAL3jYSl* z68}}}Lth8o^W|R~QN5+F=T%FhbM*DWT2KnZDHQIE&_TyWo5G;fwBP-nN z(YesqV55+_8{+)EJlTjfDo@s^9~xn)rP2TO3(COJ+0MV-{r92&{aX>>0%E8?h+@Q; zYEMGQD6T|6eHRwerM6+PAR4{Lkz%;GNVd(!t`v7b#44z=G7M(Pl+(dYU1+?FtAj|8 zVsV085=p8I+|;JfSC$X`SuK;HOrezY8CUxKyLbNGXT>52zOqC&LM^vq2W&*xBMY&L z4Gkem!TLajSf8K})0|Wuj%At?NPvf@>GhT&JE8{l)74xC1KODy&`oplj4WzcpFouI zn6e&|D)$l|1Rk=}49`x5SGS7 efY@i?Tw1}Y#$bv-&c+Gnqw)ou z;~cmk)2OYjp%f5zXn4cS?G+!kTi`pGY{1IF$Jt9{)P+(Y(4X8P^>WKw`EU?jZbQ?Y zE=ge<9S4!pnm-KNj+k|IbUcUr8-!M#Dl)olx^QjdNX-Q?WDZZHw1zU6dWYG^p_G|V zf(#{Wf;iFX&1Np-^9|MzDmir5c*5mL*+ABOW?{%SNycw9B_V!TAqhElO-zEeUX1~5 zk*Wdp80XQAduqDm_E@$+Gg7cVs&7;sSe^?v;LYmu%_^z*#K;d=Da67W!d|8U m>TQ?m;fzWilpL0Om@AoH8O@fFU?tY`&0y GY040lVyY1 zd9qJuvRz#B-|xm=E?2btA-Gtx>lms{5bPu>W3z;t&cTnk%1I^Qb_ttdnUCW%VGtje z-%m*|3&s&_JS_k4m#q(hga?Pr4{xhFEy;d#NTT=#KRrx#V83)1{FsJ 82CiB_xAHQ>U^C%Tg?XI6(-3*3j30JjHBy}PR( zcg4G#umll+)dw_!)z-un?k{cK+|jARsvR_LF|XTc5ZfbqVTKIICZ?!&agwZa<#=Ul zZG)9}@fTp;g4E7#422}CDp+5D)}7s#5C#0Wn>gxz`oykCT8o@Q0^x^G;v$u{Nf> bNbvW~xhLS@(J8#!K5hP3Ej6QgyiyLRW z&|$~!meWJAIkPJVUToCm!2!Ja>fgUNpHD%MDeTY1$i^aM;t-by8;_8fJ9x119cG`f zJ8 uU6K71Q**pJH|^cOa%KAx8SBt*(&Rg!G|+pY-4b1Ia+?SXG%K8x_y*I z7|fU53KCSk#wxsOWl?z5^6TI>HzYyM;;cYp?@QOV!jsdKfR)b=;n;EfnP1m^m{zHp z=s-+()pR6y^_l=Y*x7Z9$9nd0UZQsYX%k1OHdq;-vd0&c@kw!R?;@swS8gAe53F8= zSI)pRCHN-XfT+3F8{D3>SI#gUg$vjse83wX(bh!VdlAG+*NINfV4?#vQaK$7N4L4; zA2F 1Wg8 zC=2Hhkl|{Ig^*P~C LQwJILxpfxf CSKx5oWk(o?_>%7TvAGkIW@5S#GM<3!{!Gg}g!#Is z#jC#1n^j+X>5$$cPA~yN PhT=R F>@BDhfOqQ nrGI`CT^{*!yzysxr)$Z?Up<`F z0#enx6kgST6t4S^`Ai45`;`fzE|hFm3926W3QrDm1tuFvfmMTD@S54xtQmKN;3YqMbluJ z6ZH>}4EWUoom^b+=Q0!~-G~f2l+ofL>H(lbY;c$Uau4OK25Y2nxkqGtRAmMQYO;Dz z2 {=h8DNlB*qq~_J>7^vaUiDn1DF$ye-SioBzl%XPQvt>7M>0*j3aJK|GCuj2A_;hT ziXBf}4+4tHX)?|D1FeN4J~w7i295*D`F3zUhVDrju@-=CSPO_{LrlR3ze=3M0A9jO z$S^e+?>HH$AyZ auuj~n#@@Nqh2SQ;cmX2t|$(NLBoE 5KmUTbo$A=FaD2?Y|1UMX@^Bcv&(YuwiEa6vi3)48y21}SVL$V%sQ(lg3}3r%Ts zGc3w?iCI-q;>N>SP%7arh($>P(D+P6Q4&a!R^b#aP$aEZbS3VzkW<`pz#fvWHHn-@ zqHDorOv#9ncqkgWrU28S>U3Fym2p025-&FXrE_f9qnWpHQUsFRDY)Q6b4@7%0gG(O zpIf6-la1*_zSdl35q}JKt{`-(jPYWl(u}wCF{R9_jsR2Wttr>c^HxNf%V?X8dto9u zRIvyLZ&z7n@t_5wm#SkM8~pUe83t;GHPfF>%#({#28^pjvex7hQwqojhw my`u6Q<41S9?X-)xhp|_QY%nWt107GK}qEn1(tAN zjWtxU_X5HKa_Lx|qlsu!aJ=|4IqI{zTwEB#b}E|n#L0#NA;Ox&&8vi}g9 dZe$}o!Q zlT$byFPv{B`Zyzrp`eij+3HV!^=E>t`utHoM{r}x$#fNsW7bcmOuAG!g-j&QCom2N zgr}clwF=40*@s#nx=p<45FA^C@lv8cL*=P_8`o8}29%0;;XjTi%8XkKxaP-aopJQT zUwBm}F&0h^p?^e7njES~YFZSdb|f0aoeCJ9#DzvTS<(bkLC$0k%^6Y6!bw`9_Rgj- zZz XymQ;2uSCBCe*HfH;JlnX XG8;*9H*^-d0Lzjw6Ac48(a7hT z6R!l>+Yv$RPOgyTypcE^mBR3Osm&me ExBtST^hR4zH |Vcat{DFEcv) t37MfNe}rnQ=^nH}PxASMoPBaOpdvzuW9=@JL}57|)ZyN`Bew_-?!pmP zpp}9he!?@3_5zI?l0fXmMc8$lTTn=Htrw6UG}G*{AkHjJOsswMAjL3pd+|C43If8) z%!fI9=D|adO0!o8?w8O#-0t)+AABd#R9vd6+QuVdG)|MOuYgVur1!^eaF?hCvEbG8 zFz5hF5r|SVh_1b!ohxN&{t8#;NQ1v)nCXh;%63)aqc9jnw~Owkqq7J9AYKk!J!eUu zm7ilhXA5+zg()dJOX3oZkjXz&!x7BV94tfFCNoA&+-?z}uZ(ZRloOZXhgqBDh^C NTT+B{tU3GG5X4?~sClo?0 z+({6WPDx0PYjM2DG*%wg={N+?C3cdHwTpEWLXw{hq&gkQ|KctO-M!Nhk_d{TGAEVL zy;sOm^l2{U|E=Z|HZ`G^FHx5F!i61sVz1s&I>IsW+Dm8U-89)Y(sRBjgeaXs$wjmX zYi_E4z4i+1&Ds6L~*Wc|QkcIQ$;Z+c3OCmX>f29*@?U?CjeClAUuqKtTI;fI@0) zHl>nlZr@B0dV<|vHN{p2v}Ixn)S{C36Ie}B)QU)2ELSR}kUB_dtyBd${D5SE_k{ej zoA}Cum6SO;c5;^k0bANFN$G=v_}s(bHPeTkp6Wyribhsp962pgcCRpKV#1SKZy~PH zUCT$&F>yih2bxO_k{Ul9V28pUgzb&*GH7~2EU7HKuncUkUqoQ;J3MUEVCwWqg-o{b z8MK3Qj#QW=9-kB^@%Xq_ {v>C?pfnnob^#1%=Prs8(yQ&fY~0Q+f!jIiQHIf!$kfJvL!T&*p|?I9J=|yz z)7M=OC$hL6wo@>AWv0;)B?hfz4Tu^xRVP}ec2%g#(YH}3HP%L}LBoj~eNjVcSD?gA z M!69!Yk#th+w@Ri z7p>O>$kVJ{Dw%lg1O>6{N+DM3@K@7_uq%W?ZCHy3g+i?F6~z8ng-r50HdZVtKy~`^ zISyWv*!l1p5%pcj#OG@;Q3D3FD?uxTCO$`l_E^AbXxBM;S%qIZ7`%20@FwG47~L3j zEu$)Fm)U@JnPbqDSsp?Dh07wOE=aj+B%bs%Vl-+D4VZ9Ir!h!e&g4z{_+yiJ{FzBS z&V6hQx`^@Uv%EgLQDj!_qO$WlVdh$Z?ZrT(hbD>U1T&@V{A3C8%kSb+Sf{*Hop%z2 z>`FMwKK2o>6 kBXy%QW!%(UOrf+Zn~KDgc3T f>Z2QdDeTe}_Atfa5?M z_E>dFiUsi$HcnnEDe_uhL0&6CY 0 z;X};fT5eh$WTcWhh~I{?G>0^vu+?QsY->r1r7b6@3Usw6b^5XPq=Sg|qydd_D=QKJEsFTNEHz3^xrMuTw)&UCt8VXU+`R*-@dF3|j0`}72@OaEvYMm6 zkWh58gPhylI!LKMnp=|bM~QMY&gEE##ip-`IJ1aSf7C~9iRezVT3Xm{?phjZM|W$3 zqZ>hsqD*Q}DlnZ$7m;uRVXaLYv6pb8wHcQ%xl3^HMEcC<+b5{b <5;6@R4!i@M )l}P%rJ}5|J)!Z0zN!X~>1CFCXq}M8r~>D=qx~^q zJ1o#rVr646n%KfwjH>XYa;pJtgK!#D7p=6n#zMfCw&&=S2FAVk+(r|}>aH4z)m=3b zE4L=5f~2ylA-0WiC{SypYVWSUd>%|ri;!4@v6`xlBubl9Q&nV^l`Mr=imMu7g;VQP zGl5%*s}Al~msV&^luF;~Hij@%A{uw6T;NqZ6UZNMhu%o>RSK5&t3fIoB#&3#q%y1x z+RCsBx0GQGLWaclzgD)O7nYoew4Q8CscaO{VWtLSC0QFuR8B1(*c|4>N!46NEj3tk z_O3Frg4{V=YsjJ)V!TjANov^Hpd1Utg@O1*>&YrIAX*vLVKr?%S#xQpI+k00B$%|0 z7)KF2$v)XPB18$!p*O0y8mGteWUWlBp8N(9%>(*G*QOUd(R@kUi<;QAy{Pai)m?=r zRd;RBG02z*O77-yJnN|XYGSgc=4^@OEH|+th(<6!s2ex5r4Fo8!>#K{?84kl4c*4Z zRRd>?2 0HvFp zU_Y3ws#FO(Q!0JdK^B3!qg<9CNS V~Z({g6rbROJsJ?zY)u^;1tKQHc#lD_Nawd)TuS`JB$N+*g1AN6`810 zCpko=QOygZJ aQT$hbGM zNfdiqCiV;DFd-(hl)P15Y--TvYB9snLkUUont;xx9H6Kks-!GkaD`Y3-_AN_tBJec zn6#&$l1i>!=A1JAG>8F`(gl+DXuGQ_k))_V1VXU1D2n4Yjr(aFG5qw_pBNWyX`9%n zp2wh5T1(Mf(~yZOQLNO6m|5Ggz9=@lrf4qijd@&yxZjwRZ3_42ek0Sk#b)V9HAsr) z*K`Hg) LVuSdO8DDk*G_&HYE D<#0kTmIN8CcJETHzOA6k {C@lV8RCu7fmcsXP^k zn9 n{gzxd6f&Vp+6;3}&KYydd%icra>Y&L2RT z2Y-N=i~+R+vLBCz*}5sN0)8*wQgzi*Z ;$ zWeev4CqIk61e&`$;H7%i!BF)Ckb)7 z4QX*4%WwArGIA6Y;9ob@pcYFNQ2f%+CS-5IHQ9$hzBk^f< zK-LoN3ej-jcq3qsf|!($2Qf*4?Qp+?2cw&Tf*W(VW1{@nNA4x=n4Y;G1Y(M@mCb1l z=YF7M&ix=kg5`7o6Q6_>G$CA!+G?E~Y|Dxz#E`+|lqQ+x9iRoAQJ(D5kPqq9`N31> zUv9 MelCu0G84u+cpB7bpah{=p|bexC;;sRk~AUH*26?snyDGN^tM3<|lYiM(5 zs`v;$H&PLM!G++NavosSvqG7(2Zi^nNO1N6_DIf|izf|WBs=(crwirA4#t@@J$hmU z8jIeXAgv@=@Wg0796Nvdc 621_hsg5D!C5vf~PTDlk_4 zTaI>_#{cb8zaoo%3Dz}65N>pc5skD8ag%U2A7!}L>WBja&E%<$QE?Y+G+`19!L!Ch zNxxTLE2~x_|2)ghU6K{8z_W@nUAhvd>U0lgIvLFhX4V;V+Nq{{X`!dDqt(VT=4KmC z#l!tmz5}akoDdV9u5=OiE1H6-CSO1t0VM39udc=Ds@$9r>DBGT$uq$@^F_&slW$gt z( wVn zTpJ^6wrLcQtzG^}R)cTW!=>1Av!1YmC2#%RjAUgD8#7Na)LUn*?KReya(V{QPPqg{ z__r?Z?)dZ1<%wJJX$j))_U1Ij@$ofgk13q#VRvTpW^-d28ymja&7S$j`l6#GXM Th@{<*Z~j zWTg6BGP_k@hv3yWqPSncgmZ8rj6qhU!Ac(%HeJBdBHr&XE2UYofVooD0U#BXBM8cF z_ik0I%La*-O2>(Um7yZI8G5<)G=k4c91lY5hZcG8aHu|^!FM7T9pHN_mMD5zG1A*y z-X+QP-GO3h*4!4jVD;hxVVH~}rc63VkPu&7iX^&(&?@b#n3O&b$*eKSd5LN4Ns;s) z3wsm5^cT(u+JWI@MUO1GI}`q`Ih?l6$)II=bmIxI%NhZ9He^UmEwjkN%v~HHb)yJ+ zFd2fO4&Y{e7(f%PrHE~XBJKxJ1&rM-&5j>-hO2@r6t}_W5L@vA=wAl$4^N#iue_w< z9 $;>*;+ybYmoV`Yfz-~I1?0Wt!2A*98ii_KRi{qjA6`~$TMG>#Q~J118L{ux z_%ZnBqP?mMgd#&FzN5$u*ZkFAuhSEWT`AWaodJ!^Z$FtPdqMJHB(t!Pg)>LiX+n>e z5-%r}7Al_2ww_h!J>TG1Dw%Cvscb^Qh>{|)>*AAUc(s IaU%(Z z%n};C$R;|T1xrfV^UB_qh$}Ha&6TGT^V8gtDp}@-G(K9)4i@Y-;A%0@@i)+Xo5mlf zE Slg^p+U-1z!xXn)(b9dX)DB; z(JkerHCo#9V>H$nQl8@HUvHY!1UI~iNj>ZW-mv{kKzu|jw5;e&EViYMh%T5|mxAox zFwAtq78vO?x+O7k-4pNFHNguA*zn5tb+L6&e1oU!i1>L(-JSry_53)FSdDPF+=@LQ z$(W0=TVh@iRoeJt-}m*P)H7na`ZS(H>H1QN=7y&raXQQ1Be6)ii^;ocH36D50uGf5 zmyX3!5QR1GzwqxPIpK~!7RgmY@Z=LdVE+_NMxw8$v=E 4R_8Thu6DR(k0ajNcNp&7Gv~g5*k>6K`=s3+d`VD%6n7lV&=~agZL=@$ zQHbVUU)mNumn%s3I8+IY1KUSI7HVy~{}^%3p)@xH_h@<#4 p#*dBdZer41shdmacVjKx}dh#>Eg>LvCOV3!6U?fY?h3I4`jw@Pq?fQp$2m55;RR zKJWU@3ch?BAt^4$nks$9Cu@VO?payTxKegAliXS58bDdH5A$Hutq>@qmoL8&yD0-_ z-(Wq1!#71CnR(mjW%X_agn2AIRKOFm*MrT4DRUWj7w5QI?BbjZ%-b_h7u6KbQrpHr zxF$z*M#d-L7;G&-4hCoV(j9DTM9Sf1DO71C%jOEss?gJYb>+xD><=*sGY6bX^{Ox% zPQj48ikJg$x(TM%N?;VmaX2X_5hrfR_9AR=ZeO&;WnO_ (bA&5-z>H)@p_}>$AmrOkGJsx*O43f9d^0YmIfV`>7-TGZtMqjPV2v# zo+WOPV~CT0*ykqJ@iDqU*bdTThAfFRkknqWsrQwV0+eG_lfdBdOqM0KKsK;LG-`WO zAsV%(k@(d1?pB}DBe;tjslluBYQ>+L%v%Fe+_*)Y4g736jkp-mJ?z2sP89{bad1y= zp2f0mt! C7}wJn>e+|=rR!MAEtqw9$mV*Jzw8u- BhjYE31g3Q9lD4Y{3@+o(C;K*E}t2V UESoi!YTm*!MuvY3Y^n|0FAGp|=%H zhRXA|_T{10^6Mq9pV;u?Z9L^Y! c)hqkWaWPAiaX!)h{(ax zn&F(mBTYQNIWj$iIfR_SvqcDc6kJ7>e5C1RQ(DErI~+u_RU`Ah7E0N*`Pobm+1$m( zD9HZURxo&bMnpWKHOVf@S)lPO3-+>P2F=m^d{!0l11!5jN(%;0=IGLv;n~>p*9IzO z>bD#~^;_2D%qsT#(cf4>cU4qC61QXpTX`VItmda#%ql)&m1a2?VnxC|Q86j{EloPF zU`5s+MlV*6$T%0ZT*Rw$yLTQ7WacQVh;x*UNDEdhONy4?k<#u~a*nChT<@jnbANzFMN&t{2sRNjI2hw8n7T3s z(0md7d&Ifif6;PG#|afe*y!LCInW`Sv$7Azm&(4K><*&9iY_L~DMRc|rKu>@Jnr2W zJ?=fz6lVjOs!f{a21kgH+`!eNu$Ghv_W`7viS0E77eUQk+Kn!PiiqNw?FJGAuR9wC zsX$PP!{tAk47d7d(p}&a5W6l(5V@--dq)CheNJZ9?zWsz+}!ZuZ8@67K5{u{xdSJ4 za`W_grF 91EHjj<%>-sWp*!(;;Czv2eUIv z=0FuF$*an50)@=4vx uG!fyx(@RnNOK2}8x%OvodCUey&do#C4gdc+c2OF0jsfFvG73O@VhKaHllyhRCu zPf>NFQoW}|iv)YU>Mo+?!6bq)5M{>4pN1l_KMD!x4dpzCY#a(P**2! +i#Phv89o){85PZV)}CJ~8#CIOi$ zpY0akHr)EY5BV7^kfXvL%6n3q4dGUMb1zXa=)fcirJCr#kR%Od)D{ONH*jGa)o+B% z_0WDk=-7b3k~C|8B1}mgC7byWqR0e(86NIBh@p$(4&Q{wTm hMyGx>vRe z3dA7c!p6%WnIe}#2GEXwj8MF9`>G<8QT^I+`M2gQZ*G{Rh2)a)-!7cjNtTmpA}B3{ zR5Rmx&eiP9=^wIcNpu76>jy zR&|*UWl8=S0$C@N1hO1VDM_$t8)*mHrbs|9!%PvIZ5*zPuOdOVDaq}-jm?F|9hP<~ zQjvBl{t#widC#*!M&{_K&zRb3D9Gkn(G5O;JLEIsG%(i5B4SO0ulZ8tlYI)9Io}(@ zTZCK^sA5IXWknuA3}Dl*Dzl39#qG@Hiw7gogfdEQ9i=Tj0v^mErgV0hvohf4K=e##Ca$}h1G&T}gf zot2r~3bVdp?87}V8A5Y#N|sBYr5RNTw8OJ;n%#wBHA=Li;d}n}bZsyRt?lb18MX_z z9BIh4Gajj>0fQRVIMAp^ohI2gv$48e%sqp}owXzw(>r9R{&+h3Rx&$m Ie z2zUmHfubwE02`5f^2Xk|5*t__$7Pw`QaU8d+IwWRAd6!Fo4`+tRFo9~ukTNoTseTb z21D?w219VxU}TG7)uBV5tEIX_`Bc;$f~QU&euoQf!_f{LJ?Q2evfK`ig;y|@MJ_qYwplY^H?_iS@34+qfk8C*`i?nDXp`@>d}aelWg1~ z8KwBb76%13x${L>K%0kV)#u_MsE9j(Q;rXX+9KEMxI$e~1D5ErD!GZa%H{eXtG-6k z;oO<}QK`l#g6j|cF!%K$j%(tV=Xpl@>?8-d1fHUW&ds&68g12chSOaA*>sC%ap6*x z-i1q5WOD%VRT?fnNqlktB 1d%fJsp`qe85s=o2l%$9}sKQ#}o~e z6xdd$O(z%eD!A-(^I3VD@zPzm(O3n*mT|n5psJda23I1Bdiq2;?C2Afo#3fYyE2KI zI-!|QHFXLGO`Rm8rYS8=?t;nnI99gzm5<@-$)7e09KR0FpKSM3AN^Jbn zEluVipp;P`D2>@(XwHmFcxokx8bTr1pP+l7;n4}nakSD3S>>l0iDxTiMJt#IsB--w zm(BHu0W7xQ*tMMvIS>n;jW-;5ijnc`Bn2=F`x)Bi@MzVj^;(vxC|y=wMH<^v`8zOg zf2QXY&Z6f`7w$&iipZGb9MbUWO)2Qrn}TrcfY!ZH*)b-%P$`c6%-oRQ^EAdjHrDuN zDvqF$KYk?&sP;hR$Q*U5nb0xUtV%QHHX3tZ{eCrz>gmstSys|`C|5a{r?x8UTBVk# zYYj=rXE3Lgi)=xegY1eR;3|&Bxqq2f;U<5HC}pqDXR+ILmL;L6pezD&%W`2qwF<8R zmiBx}HNXP0b~gs0(y|WBMBdsPL_;n;!|fz bwErt9S~DN2LXbt3#J24apRfc+`ZIeDQ-0e zTy}2O+JK9Q%+(8j8+DO#l^STAr{{4<6!$#%5H@EPs2T1 IigoGP_(>=LSzwV{| zfA31!^Cs4dEIcDsBz?kyrgHpV{qCyCpakRriO4* ^~4?z*Z?XAlWDgh&4VUvD*V;j}wq8XB#P?fuC&j zUFD=b2q)cB5V45QlUf33Zv+K-Z)I AEZ2!~!~tS46wstE4ve9*JY~z`F%S+YQ9Bl197MFb(dB0E16o@`Ry7d2W$nyX z+anAS(OemZ$nH|A`lRvkeftS?Vy)O70b5dL4<(e1wL3>U>=fZtD2S?#GcNHw=pn`U z;-&;w^T~K5k{J24q=qegMB;}af`NF{(@3PSz=}oqZaO^xZ9YI~M$|5v838>d#G;(L zg`sk^JL+$tab&G>SD%!Rw_@0bc&S~&foWu`)si5N%$SQv4!E!}iz(4EH%5hRoeQVU z$*C$$<6st{)qQw}_}$e<*P^K28a6gl4DFEnXo!rZiY#nMWHAbpPlj9XF$dZ`F@2l_ zGWz&wXLy`Oay(2;8J@Q@U5o2_ui%O`FR0+GAjfQti)?*j9f3UQ28PwIM_c!3w76iR z#>aui$|>%Qp$B8{Ina1I(E81TVGj5A6WW*JD6JbEn6&f7w!gP9yU8$VlA}yo^ yoUNr9>8D-;rY|SxGaXuUH&U_yiSe@{9p=l;jnePiyds9GR(q*tbpyh!ted$%Nq3 zh&73Gt>-b$!(EZCh=B @I95#I=Fx3fL?HL}&bBf!LPH}4t z`+n-I<$3Es` f zbH@-H=fxouZP#V&N$f1eZkQv5AXRq^!PWml65jtp5L_)#e3*v0R3^Yra?@Y{AuD=C zsJ*D+Auvotd<>Wb aO6 WR2g3f$hkzkH)$(<=5 zu^`}PdG3*942Oua)(Pvona#77t=K#(9?Y1tj~cqva(XQ8Y>dA%R8|fyKubW9dD6#R z2?P{{rD~-da!m&j>&=3%2&DuojQ2Jw$i~3pRgoaU9MOYKjsR%2kj-#w3t=l&xiLIs znbEHz&SY1SRwlbX%fDQ2vg>K0dRM`_%XH>(mnSM7)MWN_se74{JyCmFO$N=5l?t+Y zL!7YPgJR#Md{`nKC6Y#l6A?=!6C}uU6EJ9014EUKIvPgUDphHMtk7uERSAPU+k*g! z; FDw=^Zygj6y2)2GS+Q)@WJrnSx?YZB;St}%I<2MeLc#R270|y3wG>K? zh_oVi!LB0CcE}^x_$543gCeDLAu$wbWjmB*Ws8fyU{@*MK85Q|-kHI~$nW~ZW+v)Y zt>>9I+iwW5H{H?dDj_HoXVVws$w}C~;P~yq7;_?)B1sM3cB+VrIT4XM4lgWUFjhNx z*a I+)Iz_N6NiW`|vP@H7-t{z57A(0C&>$#t(fbt9rDG8RA^3 sL?GE6R zu_P;Lgjl@fsfz>*H%UfB`pV`3zF`)UFDOo|F${{DM06)68e@Ze^#X`Ob~Y6gi#3dV z9sCStmuiYpS!3iAzAV)=Fqu8LB-4oJQ6greeP8zy) WnSyc;99eJ`tsD7Wuf*EveZlg!CP zt?P;tXpISO8pbLhRhl@|qjQJVHT1R|SeI3dI& SQh4i*ji|LhAlAHqSo6Y$KP!bDsZ|$fGCrV*-?$tlfK)l#gO7cL zpONgEY>=m(CUN0t1U#G7Gk+6n_RIvfB{&8eXLnP1oLU>f1H}pk#Ga0k`oookn+Jno zo^TUN>n=xW!<(-gvzMOUJ{D(Y`5{-2$!}7nyrW&cCVA?PNlfyd*!Wk@X!g97ENf&n zD^7`(EPK&u7RJDj>O$6!>PkjVy6emKdy;J2`Pg{5Sbq)U)u-jgr(%5y{m^`|f&o^t z*|3D4SK_eZ`=s_8PM~nA4SN7OrA~gc5sM^S_0zEA>&b{fkhl^BBw@ld(Ka%c0u!;Q z1OgKW>nKio4rBnaxml&L4&)*>XgTRy4xM7ce{nqF4~-*VYCvNNWf#ZoTjr#_Uru_? zB%f!2yypOrgjZupX9|cTzkQVymxCw?bbS~>-$;P?xX`wiVAdo^oam9`x5*U=m=%W$ z9`4Y!+S%<3n>t*b+g$l7E)4ScPIsrk8QdAmR >BZ` zUeYG=xwk@TG2NuB55*?F-vPIqiX!5bg$c+Cq!iJ+ArdfX3L_}D$@-TRubB03>1gv= z`FvXBiJ|O=a`GkKMD~D3PSL28PSF?;RWxd{qG${_#Z|-5it^up+qpEpNxg_B6<901 zs2hXuB?rTiGQopTCIgc`VYVuJWf7YYSMQbZxZEq@k*H9NV5U&?xX9ELsi+tgXZ!Wo zGuekp$>5X~=`p87$3+jy(^axGZdagOug{aJQj-;3W5APpk` {+OvgqD(iG)5 zM#;gO{B4fbs)~kEOI0+KinE3?o4R9ECNE(1^!T*vpXf@<0Osn |!^EClQg918qu1{A|YC6pM&tWIxbu8bL6?w;F>! zBhZ+dGa@mzQG%qiE=6&goX@5&1>Jg=Mas2i;Dpw Nv}fXRkW-G*P;(pi_~0 zr2g3^K<|uajR{IqE#;J^ia4dIBB|0;!Qi)JoGW_MNSS?Q_#&eAI?$-oiQ{HUQ>DR6 zNtZ~~fL0>!M0#^62*&%y-$m{5+EZV)swLIjV7eZ;RTp1H(grJ-jxIHEbpt6Fy{avO zR4QOLnPkdTrA(En3I;PnYcm@XTC$>8)q)kps>h>T()i5oHXqG4o(;hU*+7=#w;Yi5 zAdxrX<>yB`Gk$|nXT*=~mb+h-iMuV3B0;KdRq)c8ZI!Ffl8G8)aS o A^w4bTX;#2b%YH>MuS^ z>`txa;mhLlI$iLbF=Qof4o+{dnfXX_;AwoEW~#MSwoYrSNGq*vmX)n*UTdqAqH}eT z{}ViWd?to^GTLi;ViD`uQ%D4aR-CiQ2$2cll^V0i2ui&Ds`2{1Tr?993W8v@Z|^kL z$@wPcM*VJrY|I;t)A%Y4RKh{s8v_=T9XDU>O$GTH1rv3xJ*7Z(qt8{0;*xr$4u_j= zczpM1WA$Z~KC0O~adM_}Op3cZ#pZAeCOB4egrgQ&A#N-`g*CezhP(djDt$S+R4l%0 ziPr~S=S&{Wv}})8`TOUpzk;Xw(<<{AwL9Zq-+9oIK8hMM`o`+Z`sy?c_^MTqf+R%l z@J)(3^^8>_CR;;rPh7!%7ZTExey_2 _;Fx&!{@*e1^d 5jJ3QDzmz#`}u008gsZeZ1bB-a&D=62>PIMQ_G4f}W>% z&SjJlOeoo%&QUJJJL658vSFYJZ5hn ELwf}Bl~RXLmD6*-&WncU2SaW+mtT|F6W zAqR6f+NmqPfK^$R;4S4mnq_w9(pM4;-S > znvybc0l__@n;9t>1S7csL~?`4b+XOStcsXIa4(Kf#7Q0;(n83 QeWywCKk+wYEc z_OKr_?Q%q-W;7u7L=l;I0hdH;m zK%y^3Rk97hU&sDmmFt7RRF!uV&LGEjzT6olDHmt(2Jox9(O7!sH+8o;<=b88U;_i?xa;kRlg;~ zlT#9iUCCOm*+RLqUH>p8yUEyHw!IS?ckQ$=6al?&b}q8#f<9DLWDem%ypUMAg==Iq z=~r3dllB`OzoSq!5SZqkkzC9wU|eED(#P$V+D%+2iy~8Iv2uly4sx L1LSL zHo8P=mi2Ip>7I-0bnjY{F943rzYZU^Q(CL`>}gMuhg_V*4~EEljPBw>G{^1YA?u$U zXx}X_y7CD2(K@g~xni?}l96|aP3{4#a9gn%B+$s?&~OS!R-H(%Y!YWO0kg6I(P^&u z594fLu`HG;xG7d{*KCzwy6#fMJxD;Jp%$xD!N;{wX+)sIj}{PKSv}%fOEhRwRy&ZK zhCN+ePm-vV9we?|yuShBn=Le1DKPhsFCtg7=n4CzoH@&3lj<1p?UabTNds6=n>2tC z-)~aN^T964w-8C+KlBEpQ57~`uV(0pTt5g>rSZ)W8s7{-{Oc3MH%xYi31{9fCY%{b zIJ1Y4e |5TFzTZ4$jzRoWN*RiMHCzem`M|wJ@bwA#Y|w-99Tqr zmGb=}hG_g9TMOxSv4q TS!2jC#jL@Ahlxc z35Yd@5t%VEvTSbA*_bEQ*!do`7Csn&Cvo}arKoc>R3Im<3P)qy5a9Wl8AmrI!1MUa zH~=Ezif|BUTo oW=7fzkNbP1E7m>Wpm=~LK#P!T5Jeb^rzZI^#b zA=&y14U3dwb`UVhf)psQLrA%tJ?pFC6li=Q-tnb{&YkdEBjJ7SM1^-Iz7jfbyeG)7 zZC5(lI%C7D8%iOIhI^8{(01j@EqrdVoLTY-fm!ltS`L$vAWOcm3P(hA9&y(iaI?=7 zMDA6s_CVEcFVN=#JHtcpkBE4Cz6!`gh{uBl|6pBpLKb3#Bw)BvwE}vEbfc=A4Puvi zBR?(cjQKo*3EWB{Y~~>8r~<*~M*r8wolUro8CVg8D{+b!e0cMv;ti~UKEHugaXuG# ze>G#mS-iy}LoQEG`)A(fC14dvM~>Wz8pEGx+1*~c(JLGQ6g-$Cl~@Igcb&@7&RXT} zI+gQb%tHI|bciM^(NKgxz>GN|L4PAL)Qu85=ZQf&SM!yqhHuhEr!fh2j;L)6c|24M zeW(`nI-5uwqq9UrG%G$Shs218;hjs`YpP0+mCW6knjjp$#Up+a5N>|xM#N7n05khb zWjOG@nB2@eoW<7JKq76NyAV~2JG0A(U>lH5{3uFWgAmvy5URbUB|mN1OA97;F&C<5 z%N^@4XQzu*4Qgz-n5w(MUTF9j3sr2yts={4b(Pa_z!PiF0KP7^AH`d&0=N!ORN44g zjg@;_l{gJp6F~%$h(Q4Ym_)G&V2da=A YN1!6Gz*^^sxv7X7z1 z3Dy6woCqsfe7)<#FMb^^f?28ZWV6y_oH|2OPea>nw@wyL*`Z`Xc@dQw86K4y8J>JP zaz$%8HNwvXI^rl5(BjS>Rgv^IRu5tr 2dO6~e O|M*ed9}GF@Pd+p;_vOpvB8|V5Gk|s>Yd} ^GH=s7jl!}M+)+7ta8bO zjW-8o`-{w?SeS@K@yTCcj|m?!F;xpWWK+zRxjm767H~-^#n3oJQu1JPlkPt? {hc`{j_dzr9uw};r%1&ywjnpuU|BAc+Q zmx)+$rvX+D&kp=8s|v!)Z+MFQucw}5vtv0sCrfK}H;fn~_16fCF%+)~3fu_y+t7Hs zgf)y!t+QlyGA!NQtjgKl3SniPs9ni|=Flfa7~xAreRUu+)9iqlX?B8eJS#;oR?|~W zK6-gDlc^fVtFclppq7C_;vW%wK6%T35DqIAF=KExjuRKR7P-z;+~>yl@77mbqc i@ps(J>aF@3F>+D6+M)HX5c)iw%-P|nHYq~;Pz3Gnfjm~0#3 z;v?JRr@_Ypv5SE07Fc@Mqi|enab!^+g36jKYZ;W%F~G5_+F~E)J MA?`WX4tgNRVYEm4*Nb_LxAzWrJE>P bXT54*umQ>tzXuFq1(WkhG-%GGwT43jGQRGmd}8vF4}fS}GycfhAa*b>7t5E! z8JK?%Oqq}Hpq{p}qKQto@KLku$VjmpuTIs@3|ixiEa{@)ted>|0Ai8J%Z3Puu?k3A zygi)9GoGMKhEUM_`YJ>_TrG$;XN`&1vBnz37%nEW$Aoe-V+$lJLWo=C#LTYB2l`Oo zW>K4ZR&r}S1`LHEsca0r1CO+p)Q-Cku(tc-9l*x(@q+JV&BjS)(V tPk->tT(R za}!d6=O5~QrlS!hb>=Rslok6$#a(C+MczL3`ylUDqy+3KR6V`56pSiZk(?`D5x_;f zs_Bp{*~?_Q49!YUX$q$EhJfPc O4pnnU0LH8xoVvEx@o ssX3qnUy?1 zJQ1t0Y>&p6XiCL=L%4zv@`% ~kZKHx60Lqa$k8@`z_W5FJ#rCyIDhuWVt2 zxqo+pSKle&bW;=E@|V*CPrpGS&RfD9vW`{Cv{wa0EeOk-Jtk&dSeH~m2{4!Sp-s`l zUm>)JQ @ocY+$$p8{cWNrHV-wC;2%+$pnvvkSV<%A)Y?^yl8bi z%xr~nJ2>CTaa(6XE2fOwx{O1_vt~rxHv{gpjg2jl*?2zikac%xS#vgD7Au3;wnAKH z=XTyE;+kZ5HaGgWZB=9(NZeW4Xyv`5vE`%$UC(HIk_dt|Jj~^hv^T>^Pb}L_`-p>i zy=xv{wzu%n^OWoNtS7>Sd{vr+b9!kXm>lgrfLPo31jI@?GlVd}ueG;d{;9sSPpXC2 zPas=7>|H(VpE~USeAu^j*bm9a_0C@;h9_c~(y2sJ$K+xEBr@?|`B(b` zo)x08ElpZpEWN&f9J0|V4&GfyQ#;YEzp%G^8kWCKakv`?GuO%|Yv;@1skZvlJLem{ z4{y~!?;OMJrsrTCdaM|oKVG|f_44&DJjB)i%KvTu |Z|Y zqcM(<03-=t?=K(C7zye;ehf2ZIX_j*E;dHilB_d7U+8E<+2-sg`ZkB>=!<*vAf-t% z-`=Gn3Bgae^d5tZOzWWeTzyyGdC_=1(wJUCi;Ja4#n9V?Jk9vE@$&A`?o*gI9Bq%( zu6A5+yV%v7o3CBH@yB&~)%3gT1g1q2W-o3x2iEaJlC`c=<@#$ZueGkzh*^Z+$WrLk zh2q}J;&J~8k%8mCoq_5N5+|hK@sp>DnVl2G!>N-eF8n7bF*R3d&tJXV{`>!YrPkGc z;g3JA;?GTteY*c? vRpoW%-8kw zaK5{=m_B$S5y-{UFIJZ*14Eg3M_v+{-+yt+K|}U)BeblvC?o=lqs
C)DJ^Cks!MoaNZsKR;x_-q~j}YE9_t6=@9_`K-%R{xU-~R2!Z}{)E z-_QSc?SHvQKQ9A;=B4YmKdw=-`~RBy?Rr q6(Xn;qA_&wY#kfc;T_HF@FJbM&jR zHYmTY!Jz-w_6~WjT35%VBKQlCAhD~X3$4Pl&})$Z*ImD#l-?@de1y+O@nWLZ_4_Rv zz@PViZ^yLI_&NY?n1 8WqOEe^iW4yx-CJ?Hc! z{n%bACdcRp)Ikq=@uRpmQEY!eLrDLFWc=}LpJsg^OLuU*MHkaI{%oI+< ~Qogc0K5UwygjKHOg zDhmC3sWJRes*a6^sJOAZR_nU_lSrY>D4^@|#WUye*&wg;#*GUd-R*Sg#@fr`6}qPa z=}w}WA$u823bfKt_RaQRf00Km?hQAe0mL#t0a?sQxjKgaJM4dd*tc}pKdpI<(M{<1 z=^MHW)!%x3`y=K@j0DV~&{iJy?H%^-g1UIWK%9_)kGOv4E3O;HMGEE1d&Q?`hrNA= zeS@^{bah_-?IOl+TQTqsez3K!E4O}byLi!G&s{#mHLp*K)w!0L-$G9N)ix3U&2BfJ z-YfPNnvh+ukE=ozT#?-(p_j+{eBDfWDD hVBi0ae?T|y>jc!r5A$+l|5B}sMt1)|t^0EKm2=n6T =uXX=7%yfTTt92hg zce=QL_w=!or)u489XHx8(*)by)_K0IlO7zuXgqYcUzEF7O5QBWd4W)QVQS~>( G)}&m%CL|7=K|T; R+~XBXsrpLg+{LhQ=s@l zis3 q(VzI^QX=`+XA9FwULXZ*(WBuoHnF8`;WFbiVc zq}zWCK5_B{ZJM!GF1#r}&CoSp|17iU`vfD{tAEg5VraXuu~;k()i*}5ohYVui+h{C z@Ts2~lcVKFY!imdjb)5MvOOGGLE*gzSft92z2#>tqsu2wG!C9a+KQ1-&JN?ikT5w{ zj87kJ?x8qwd$@x|t~rA{0jU0y=TNdfv+WC ^9l0$1pUv8o;RPF8YHLtQ{;nc2lk)|nq?{ZtGN zqsGJDM~A&{yV@?db^hM=OIyz2#L2_nox|Q~I>*zpI)3Zg?;RI9yDoHG#&nxL#EDZ! zyQA2@;oK3ku3T)xJag?5KVugbakP^5T6cR Qpcs9Ig!_H l z(0Q%vJR~q;nok>{o!OYIAx}O=$&jwPcI_G@E3!d>tfY3mcD>`usgn?>oIQ1xexEsZ z8as<~^pk}v*k>$YX*-4@ImS7Q5&imoYUlgZ7oY-t<9tYIP#u16M-+rxyoY&3Q0SbI zc1l5n(&!s3CVQJRgXN3+_>KQsMmc^Ld5sOsfW64$435{szn(p#F*Wdk_Dl4;Us2vd zjqocNp#_`jsS3-0$_Z3Yg(7eRN~fy3+mfeK6rp49i}85~?~1iSOolk&V4=X#rJU`l z?;zmjT 8Ixhd*jlLwA z?fsQY9bKnS96Q5Fl3`sZbDH&!kYfFM0eyY$C&;pnpJbRYKo`yd`iZee=wOV*+c$4_ zoj&u^>DrBdxq9Jx?Z)vlKjEavMzAnze8~HpceNXBZC7Z*l2z#0ba{WZIG8> j1 zuy4I~qy7AEZI{}A?!5Ffe+5WGC_|rI{6!xJ5)@>2_=)`z_~*az8HbKJ)Qwwn_y?Mf zTOG2^rcK?}oX`Nj{2P3+YBzqvm14!{i`tEjHXhCL{Ve%32_tJa{`S+E&QA1AV}A>> z!lTV4^bNYT_%L0rjUyXl{T%8&jS8?B_6vdv&!As^LdTp1!mqcVI%ePlcMSH|w9TYJ z%}0USjZ6RgCA@~qmyxbdJZ4gy5onIVZ!U8Md-}_@8(r;~zyG~< V~4)cdy1oa}1HpPzpQEv3(%K6mEaIYK%w0lNLS3+M2m%dhWKZ}1_9 z-@E+#mh>u~NV-w}Tf5=#ZyQDUSG&QoTud<#>Jqac+FhvKzz9Bh=J>gvj-5JFyLlD= z&Yu5YZ$Wr 3Z`Uqf>8#y6ed;VGMI7Qq$blKKcJqAq z`Sa9E;gn`$@#gvZ4mNnh5Sce;7HT*Nw_R_nZWnXU==Y^gnpNTpz_N+o7{^<4-18rZ zrt|DsE6{oC+O2C=)4)5XD7HT1@8wf?Qt;!s5s$n`*l#2i!gu={T#ZQjM$pmjM)-TQ z&s5*%w!Y7O{XVzJ|L|iA1h+f5+eidXy??U L mW4b}L+bo}HWSI(tB+m+x-r{JBPG9!oAbMvOGYcWmV=FOYs-H~!?rFOFz zUWXND@o}P9KR{}n9FD`^& JuJd!W12V z6y|Epm5y>evG<}81c|UxNFSw5Q%o!-QaZ+rzfy{=L`un6PN`?kgi^2yW%687PyTd* zimEFwugAEgrYMKGN%D@7XIK|&H+78ho6^VG9Bb_DwagKrS&K5N7W-jI$;b7e5DK>9 zjH$jDhyPz3s?}y0iFS7@5*Z9X$|+{oi#dE-)qIn&waOG3TZ 5AT`k!vrZna&&YPUQ@U)?Rt zV7EJTTL3i}mN#rs2tC^SjK7`uhk1ynQI(R>I =|GZl`f&Z`F>bTq(e_6ZLdF^i z zp}l(g#PPFdPaka$Qt~R~_Qn3{S^7ULO$3qgEY5jt-EDZ#c2b=kufJG;Mu`q=vIbz^ z&kF^XZ#*h3K6q?ef<|h$Zk{;({r=tW_wUnBY#^}nh60g(6RH`%9zS`O?1|uGjnmTP zyK)Zao41Y0Pawp`{4`kLm@}*?aDgNW&8Ivh_#f68hXlq%fZw2T3<5$;QUaonHDG(c z$^SOKPi+v*{SmYpEV#gZtZP)|ae4}5Nh-;VwIi2)JLZOf8U7EOef+}?2mf#iz&{)c z@DG{rImO~$>^-X8`fEtLiz 6L@4!q7LfV0HDFK%aET`N@Ml*g*L1^|6}rY z?e=YvmSR1+O#>Oj>~>ohv%*8Zxlz0Q%hAprNtJH5L$rbaB05X$_OCb!l*_xd+rL3% zH9k>JzapM=*2W*QgqJ_q=~8SjIF!8^1BAWi-#XgxPqrnrI}G4unDaq3g){{9_&y*~ zJag Ihw>$p+5&!%4_m5|bv0eNFWe3bcYqu}erw5AhkG0#K*NTIF z{I}7!pCszDV^G(Sr1 X%(-?e@)M-}@K;zs<>$^5;a7(mVxEOWrB@Q@f3g zAI`qKdBq0f&H*Fx4d}60j|8`GUpRB_?3wRV*hr$QDTN={5aJK|5NY1)Y!k& Zge_ssA{G=P@ z|8wO!laksGN^T-1vhwo&1A0qfBtE_UEUc|NQ#r_KoAveAoW` z^6OuBu3h}=&Trr6cD~Q;(l%~txg|WeQ~PuKuc3eR|G8aEe!#!x>|^|^{kcp3<82?d zfZJeF`*W}3&%JgYi#U4VOP^PWj#D#(bV6R-s{M86@Xk~G`|tndU;p)A|GNo4{u=u8 z+n)#5{u+YLk_zj;+TYjz(f5zuKli@he^mSXC;A`jGiArQjoz&NefuB%|LFhw_TRsK zzdup?`|jVjzu$lM{r>b}|D!)Qlk_S{SwO)5gZKc4ChYQ;9YlQr);l$@9Q^wi{O>bQ z81yvZob|f)kGntL{vD@;`Px68|9+*j`{vC*Ixqc~Zb@Bd)y02|G@nlX$H;$-K=Z_Z zM)&9sv}g1O$7K3bY;DpXgs7lD*aOfXm}~yWNbUcA`Y%_nbX+B_{Im1=jo+XNk>C2W z3j+cFj$OU{J2EtN<(&RLEvg*JpfQ18SFs=ZACpGOPlab&EcWCHUmooY<6YqsJ=z_w zarVNW2iyg3=r5?`M1=n?N NHJJ$4K@1e6e4Vr9e ri<%J)Hf@38N){I|I{ada?!qr5u=OGT*PqkR;}k9MCF zbN_sZed+5F63+L*>}iyYI@Td|TE(u8wEz&>kE0yK`&_1f=&%n~VW56}*gwd>Az1nb z`=s*aESB ?HlkZt6uz%S53 LDR!Qxv0p-SAl&Fbcd`?^j!xQ~ zL%|I28nmUq(LMmbZ?)?W3?WeA(?AIfDq1aZfl%)kfJBF2i1 EXAQP8vtnJuGkv`Qszy z{1%1-BKILi6zU=qoA)4^golB(5*{KjVxguC>_8- o`j) W0|rw&r792Y@JOSH;6e>iDLlul(_)c&C*TIH?g*f}-Z^;fCYpgyA(v`U?K zwzNCSx*``iU*(SoC@uZ&F`{C@zFXg>NMF> %~R07FAwE({!J-e5Fq+` zlLrvG>;(y!yd4i^^(OB{>C%^?AV+O(QG4>Lgf@Fm0w&$;q0peG(wR{CKEUDJ66M1K zO_U?AEdd2!W3g9r>aTlA15O<^2vyBe{ljBU3=fGfj3&sgp$96V7Z4K(v;#ZZV)Y9r zMy4Rl!%WtEdxz7s@9iPOCHjMn&m4?JER8tR2)y-;GbbUfLp&Q9G?Q;hSoG>K_0_@* z+0;|93aXPKEXH+#$1mJz!^97INrFMe_!rcjm>S6_VG|-Ksq#T@vdk3^#>pahfv0|2 z6o#j`JmNuaE`{!-TlO~4Aksk2Ez|rdYbLB(v5M8d@B$hhcxje4xv~iXhFwSb{$;a& zg4t4fNf#c<+?q=>x1d?w3zS