From c51d36f187e46f598ed10f86931049c18fb624c6 Mon Sep 17 00:00:00 2001 From: Jean-Louis Leroy Date: Tue, 23 Apr 2024 21:59:03 +0200 Subject: [PATCH 1/3] slides: minor correction --- docs/slides/deck/03-ast.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/slides/deck/03-ast.md b/docs/slides/deck/03-ast.md index 0ab8857d..90465f62 100644 --- a/docs/slides/deck/03-ast.md +++ b/docs/slides/deck/03-ast.md @@ -169,7 +169,7 @@ struct RPNVisitor : Node::Visitor { string result; }; -string to_rpn(Node& node) { +string to_rpn(const Node& node) { RPNVisitor viz; node.visit(viz); return viz.result; From 31edc20036f6500c2f5e9992088580afebfd2594 Mon Sep 17 00:00:00 2001 From: Jean-Louis Leroy Date: Wed, 24 Apr 2024 08:48:46 +0200 Subject: [PATCH 2/3] slides: minor changes + pdf --- docs/slides/YOMM2.pdf | Bin 7095417 -> 7095242 bytes docs/slides/deck/04-open-methods.md | 22 +++++++++++----------- docs/slides/deck/06-evolution.md | 14 +++++++------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/docs/slides/YOMM2.pdf b/docs/slides/YOMM2.pdf index ff9ccb076d2e82637e89f664e7556e7825d39659..b8f2d1a2e01e1024bd6a90abeb9ae7d3b6c02dcc 100644 GIT binary patch delta 33634 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
  • 5KLcYm{CK$;LUh)kxH!!LX}ttDE%) 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 LFMsWguRr`B-3y>h delta 40595 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 diff --git a/docs/slides/deck/04-open-methods.md b/docs/slides/deck/04-open-methods.md index d67898e8..a3db322c 100644 --- a/docs/slides/deck/04-open-methods.md +++ b/docs/slides/deck/04-open-methods.md @@ -15,11 +15,11 @@ -## Open Methods +## YOMM2 Open Methods ```c++ struct Node { - virtual string to_rpn(/*const Node* this*/) const = 0; + virtual string to_rpn(/* const Node* */) const = 0; }; ``` @@ -33,7 +33,7 @@ declare_method(string, to_rpn, (virtual_)); ```c++ struct Plus : Node { - string to_rpn(/*const Node* this*/) const override { + string to_rpn(/* const Node* this */) const override { return left.to_rpn() + " " + right.to_rpn() + " +"; } }; @@ -54,8 +54,6 @@ define_method(string, to_rpn, (const Plus& expr)) { ```C++ #include -register_classes(Node, Number, Plus, Times); - declare_method(string, to_rpn, (virtual_)); define_method(string, to_rpn, (const Number& expr)) { @@ -70,6 +68,8 @@ define_method(string, to_rpn, (const Times& expr)) { return to_rpn(expr.left) + " " + to_rpn(expr.right) + " *"; } +register_classes(Node, Number, Plus, Times); + int main() { yorel::yomm2::update(); cout << to_rpn(expr) << " = " << expr.value() << "\n"; @@ -102,12 +102,6 @@ define_method(int, value, (Plus& expr)) { ## Performance -* 15-30% slower than equivalent native virtual function call (but see `virtual_ptr`) - -* [Optimizing Away C++ Virtual Functions May Be - Pointless](https://www.youtube.com/watch?v=i5MAXAxp_Tw) - Shachar Shemesh - - CppCon 2023 - ```asm mov rax, qword ptr [rdi] mov rdx, qword ptr [rip+fast_perfect_hash::mult] @@ -124,6 +118,12 @@ define_method(int, value, (Plus& expr)) { jmp qword ptr [rax+8*rcx] ``` +* 15-30% slower than equivalent native virtual function call (but see `virtual_ptr`) + +* [Optimizing Away C++ Virtual Functions May Be + Pointless](https://www.youtube.com/watch?v=i5MAXAxp_Tw) - Shachar Shemesh - + CppCon 2023 + ## Multiple Dispatch diff --git a/docs/slides/deck/06-evolution.md b/docs/slides/deck/06-evolution.md index 24a82853..874aea87 100644 --- a/docs/slides/deck/06-evolution.md +++ b/docs/slides/deck/06-evolution.md @@ -49,12 +49,6 @@
    -```c++ -declare_method(int, value, (virtual_ptr)); -``` - -
    - ```c++ int call_via_vptr(virtual_ptr node) { return value(node); @@ -67,6 +61,12 @@ mov rax, qword ptr [rsi + 8*rax] jmp rax ``` +
    + +```c++ +declare_method(int, value, (virtual_ptr)); +``` + @@ -177,7 +177,7 @@ YOMM2_STATIC(value::add_definition>>);
    • goals:
        -
      • beat virtual function speed
      • +
      • match (beat?) virtual function speed
      • pre-calculate dispatch tables
      • malloc-free operation
      • C++20
      • From 312dcae34d8c9f6ab61a5e286c444c9f7591e554 Mon Sep 17 00:00:00 2001 From: Jean-Louis Leroy Date: Thu, 25 Apr 2024 15:19:12 +0200 Subject: [PATCH 3/3] slides: minor changes + pdf --- docs/slides/YOMM2.pdf | Bin 7095242 -> 7115456 bytes docs/slides/deck/04-open-methods.md | 3 ++- docs/slides/deck/06-evolution.md | 16 +++++++++++----- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/docs/slides/YOMM2.pdf b/docs/slides/YOMM2.pdf index b8f2d1a2e01e1024bd6a90abeb9ae7d3b6c02dcc..9ce4f70443ae946f92aa37644f102fb1a1927b32 100644 GIT binary patch delta 50621 zcmdSA2UHZx*Dp#|Kys8gC>aSe%rFd5K*^FMXOTD(1w=`sl98;?B1s97MFbf#s30my zB`Fd_L=*%>29bOVhI5Yp^S$rAweGt2TkE;lR(1DphuXDkSD5ZsG1cVlMUTi+UL8Wg zW#RHNsMI$+e^sv$q6nl>1hOasc@%*nia;4fpo$_KiXt42B2Y&WXrc(TQG_E=1iB~! zeH4Kqioh5}V2UCzM-f<}2&_>AwkQI76oDg(z!^n28b#oWB5+3$c%lfrQ3Spy0)G?% z7DW(h%9FHOhMiGRf2*ObWktl*_6hSPCARa}Kh$5VbB1k?aNbwEh+S>To;+euH9iGgR-Jg9$>&ThH`tqv=O&8PaS@lE~*6M5W>${>a`~|LD zDph`z@nIwQloVzw`k9aGeYjRxpnt6LF7pt!)UmMQ^sZ1L>c^4yNz4RVuyg`_5>s2J7 zX}F&4a`&T0rDKkDY*cKnod*-??Tba4^DQiivo`S0G{)Vzae6)o6zs+^@m6Gek;qTJ z^C%~@SqWvFK%?ZX%`WmsYE0B$x=CO5T}s!h(EFI``6Jj&tf>y?%X1t`c4y|HBE3V)(sM-Ty%KM;%O&Fo)5m>{oW?ry-q}$f zk&KUz4aIYuOj!Neq3KFBdjaOu87ChoiLHZ|9e-o3;mJ!|Ghm(RiMfi4(1A{`czD!* zw3R*69T^?02~pz|YKL?Vah>^KY;t`z@pU1^OGNpy&Rf#p0a$7wd4MEVN7Wc<7^A6? zW{t?ygwmWH-B+bN-^UE9$!ev=c;9JY&2_bUdjc(&(p!wU)ez`qa@ycRc=uiFvv$uX z-vvGymAZZ!zHt4ef?%5+&Yrs2z;5t@UvAc=_kA_7E*Ut*(A>)@FJ(Lr%h;IT&SVg| zuI5t{k(w?gLl74(d)iR|k2V^rw`W;2ZP%~z9O~kvX?ZfJUdaI0l!`2=IZ}5O9<5&a zGex2~Q02LHkwnf5&T+rqUcnqseN>dV%ku}rA_7I~B0B~vcb?B&?!sN&9;A?rrl_uG zY*?VvcTP2AyjcxRJRG@y^eO}I2|n@Pj|ek%1-f+O*Tz?G@oBAapNbTsKbU0|o-MzruS>!i z7~{0D(PnkM+il!{Q1ijqKG-A?zG30#GkL2q$7~=iqn?m)xp%}aewRK>d77Q(!+wUrd%Hmfn6bqMMB+~Ld61>#?R|Q>My)KsjN%B>daMw zX*-;SH1bDW*Yddgr6&pv{udN+p*E|pzzC!jAdQN@m-dpOX067YuLUd64raF+XHjC) zDd&vYOGF;EKh9F%#$}$0_F}J3deG;`&J(C$dhWs5Vl&miw8v$S`ntqhMjAdS=mcgI z2Qrsv>DuE3MlH!{ul~XC^vMJ__ znM=UkI_6s51z&8+?4}@^~hR+%+HTr)T65V zeBG}2wc&c>nRk-Sx5baGWj|G67zi4foT&;he3&oc63&tFz%VyJ$BFmMX2UGk_mv0Z zmw%+QV3tIfEz<`J6Uw=tu3p&4X_5QvZ8Z029G2p=xU$Ju)LHjb^8UqUx0dhttg4(! z&z02_+9#neae2SDQ&e5T^Ww|92tPg$VkzKjDWesth4(K^`WGzp55?fJe!UUkCKNNc z2EPdTtg?{WwtZ4Swb`#P<@!1OTFUDyUv>^fnr@eQ1^4(c8`*6@nJeMj#^<)vNGbEX zrD;W-Hp{M_<2#+Lw#akJw=ZjB5*b_Ybm2q9=PGq>{i8V64pi)?jU}gJa>2#V^G}^W ztz_V1Cg(C4Zs+{fJo<(1tJ9|10{r(M`m)t#7JI^8?-8dejiv=6Mge;$Cc~M$RLa*h4VB|>&VRju~WD5 zX%cy?Piei!byB7rw#u<@Kn+JvU3BCrQm&S~tt2Ft(+In*%`WFCQ`=yftSWDxsA_Kf zZ2der_Assjk#Ur_i~mMR>Xz|G+Z(E7I$TfrDc?BmlvH}L;%bL8>YUt<;7(ls`h^`9 z`5uKG{@6IevZa(Fqa0JFGImRDit1~|Z2v~H19H1<5EpXShIH`5R?xBNb^kXDUml*c zn0{zx>K?5adCuHw`lu@tD(xIi_64}U3x@{heHd4d%;RgxPPd0grFa-dj-2&e*cqF1 zZJ(Ywxj5yic&h2~_b^-a_K{C%$FKoPwUnsqmEy=znNRbX@$Z7s(otqTMVY$qyicFh zu2S?aF5=z7Q8G~)e4wk%$+~eZuDPP_?KWf5u~%oG*&J^Y)M4YRXitc}u4FZOeLXKy z%|A=*`C)15DD4Mzyr!olpS2Xapa??K_y}=iK}4n5V7p^^djpbtcEYayPI_g2wBk#; z5&`qNSDdZi>f^aQTqyg})i;9EG$RRY`PBkp=e;7-H*krM6F(p=DP4Rr>2I(u^iDil zO}UZN+#^x9eZT)ZAwJ=!(m%T{cK z7o$Vs+T0x>XNsMW^nK9T6uNGg9vyV$Yn^Uqlajkd(HA?u#!8cA zDRh%K!wP+T7M?+-W`va`diCluA-a?Q{cL#yc}3r$9EqRW9|zVeXh(}KKMaUhdaatR zY@PG?T0K_e!U-lrVajYR#nVGC&}Tb%?gkgJ|8%=_8K+RSb22Sl*)g3JidNaE+nCDh?0D?d7ZCLQ|{QtOVVxT*X)Aj=`BBR zz>vIC_-~_N{&h%!haK-Qp8DeJwp70sd?bA57nKutL&L4Dp19eazz2)t4<|4`yd(HC z{6C&so9XvoTQ#s1p6924X1@RWk`S=VwHiw1P+`dUnCsoRczDFj%ce~auY~syAp!F|RrUE{A zv_5yuk-O5UZr#JZEBq@_G!Ekhq02Mg_R=DSGLQJoEbOY9E;r^pSgKE&v_132H$aH6 zv;3KtqR*2@Y&=$%FEU#ovv0FNr%g3XW9TQS840_0= zkepzCm}9{1w4YjrbmQyQZmC6FvrTqCjugSZ2*F(ySYk}4qyR|+k^uw5iw%A!Pa#SYcMZ%~9Eelhy`oetIc^G=Ez zZTr|8Eoni8MD^z+_RYaknp0hQP}8jD)|S{p1Ye{Y#a+7z$sp;8(4DPc(}(;n+o|TN zjJNn|#*M`Auf!M@Gt7QzwYB%Yg?}5lJ$E5>H+6V^_Wt*q(-+tDJ*E-|-+Ocg-FTH` z`m_vIpurLapWyZjZ5t!!T!AI++8@!5!l@N-fGYDE$tW2ogQNP!(}C%HHR|)%S3Yg$ zlL{^{)|?8K)@F?`R*1Vk$eGqt-YoLcDDLc?3(YGk)CB>fh0b`x2hQjrHDk)!GKOvD<;=z7zVck!F?!2gp1Pjs zEUZ2e6evTT{_Fi~X6h)7cGd^Wg<_%d?@w&Fyl}<8Pxc&kd3N9GkrjbGrT5Z#iLkyp zM6&#yqSLb&t@5miE(0AFnO@g7zT#}SGaRVm;n>FSJnYNJ=a2IH+}596a>_Ihbb4%`oOOY)um$r0l zGc0JjFW~`*@y*F1Ey$`$~r9Q<=_nrA}?5Sf=@_!4*d5({M)* zs~6#@mE7v;UG*sNqd%R?{A^M5wJnqP9$JlDq-WB|BD>P@l9B1nZQirl-N&uTdY4^e zZt@l~c@>Rh(zeMTFQ_vyIo-iYfO_*rFA8*=8&~};mBzuErFg$I;pEmp9j1p&c2cuf zQ$bc^tor4Up4~%dH*>0Y_kNtPn_a$x%er`vFilsaYFBxCouKW;P8)!IlZsX5((8&} z^;awi&fc`qZ2D_Ah? zJ~F4s!ZmX7Jc~rgP=io4-gqobU?p^E_BA~P3MO#V$kC7X!buMrez~`tk{d1oUmkg@ zwmh;g&P*FF_$o;f7koiNd%mWzM}mt59W*g;TfTXv=K0fKN-(a0>bp0xo}=z7;Bq=` zXFW@=7|+%mapJDFEf=rOt|(jiUWwDZbj5z`&5(wljfMQs6T7%{qg%F8PvRwSx1FeJ zDt~@dO7nT=FuPPP^A4q_pR8-9(G*W>vA(>>(zjcfDSeKCPUc(ejOWKR>{n7tMV=k8 zi14WA>bY9}B&nY3`%zmu?~b95TDEkpw&xmo=8oxRp~=dQH(q?dd*L{UeM)IDSr}M zXz3id+c)KLmB~;!>GIq%Pws~Nr_$u(xf_?M48wSq2fI+YD&EV;#Omyl6{}wl6D@Pi z(k-RThpdL>j$a9{TKqakqN(IXzlhV-^HZ{mV6%~_>KLeReQzs2=78g_G2HFgY-fEu z8!K0ImHX;uzaZ%gtyR$h@*Vbg8=s#m+AsFN+j%wiz{f z)kF2&^W#fT*o7HtMR;S?(W}oQyN$lRaw#EXbQ@(}>(-X@Ju0pU261|$$-EHollbn2b@8a3YdqJ}Irj*ciaCLvZ^GS0m z&*8oO2?^MfoF0{X(Gg;xQAA~+K}lYm>iHQ-!6Q#6K%cGoD0P7GX}gEuhl^YmReQAcD8$QNj|&3PqbcHo5z2eQd7F3l)_AKX8(|h`&8Y`x$O(f zdm3%2S5i61MKbu_t*`e5fu6G8HPV!~_D%0bV2BaP)eyef`%9sCr4M%U%4d>!(6WJE zr1@vF*kLA$g+8SD0~)j`&Kk6gIY+IpY9}V20auxKFAqc&Hi&gGzAX}58kHC9{``Vl zMNo)q=8QnvV>wvHFUt#}xW~)Gm$CD;>}-?OsG2+8mEVRu9a%doyb^1_K*PQ^+g&#P zLvNa6@S2fp8@eAaN-*k0Brs^G|Mot5Lqj6P`Md<9mwxkGD@Tn_d41;GG-m_ttHa$X z(>y=W2)=(uBlxY3Ew)Z`Xyc58OmcM(h(-G99LqYh97}WaajPA330#xD^v+lD{NI%l zIdfAFUg)0Ku1U@u6n7;)?vuevC`_T>Z``W!2;{U!yxLpIZ-osG29Y|GIYOeYnN71?7g? zk;z+|8K(7!HM;QS>YZquMKSGB*$cc5mY$1`-aFwg2#lMsj^Gz&#pCXkx|qH? zY?25j=ASWJEKLEWLJ#E32L^6%jD8_IdwmDDYWtaCTl%Mc?B-?@KmBefD~yltYnuOB zLO88UlhdiW0S~t0m3$+8nKUGGM$#t@lfQ99?vkIj^N^--@pkqPfJEeM>0)k%*a5N! z=n+h@yC`pF%5j0A!bRPftx9Azt!?`?$ zEFC}MSn*8BT1uqQRabTj-h4shXR)8;uaS@l>f*o&T)4v4y5VehRsXH_>yCI*0Vf4g z=(QU=C3NhXmhfQ}-ta4p6_qIblsmgUDfGjgolYUYHhjHdd&PhA$Mo7%*HU-#B&6Dw zgv0T~lIY@C)_*UpEW7o;>d#AWQ>6_L9S&V@+WHx|{`rm{67T2B$w>yiMsprk*HsP8 z-dUI5{^_^+rF?$MVdQC5RXVOMNfpNvevgFOaJsF(Gf(wKxQfMAsMPP@4$EJfW?%aB z-)QUS30$9!E2i-+eiErg2Fa*!@*bh_>t9O3Y%g1^elCU#u80ZYEb_7p^Rl$M(w6dg ztk$QKc1e`{ke}S2CW!uz{Nes*)cm(vaQ`E%{BPAi#r+TY`MJ$U={9l@rFb}{7&RGm70t z&cl$?(=ER?yF;sp4LI*K*slm91bt{=^+s$q5I^aGb6|t z9HT>7`1>%+mR#H(7vP3?3^|X{OAoiH4ksrMwW&U6Q$34U6A(j?LNEhP8YtF?^927( zeAjB*v$Z`(RcUmsHg$h1@BdaX`^{~3psl~~1^!x)4vG}=b!Dg2)nV3JdfQf2b48Pm{7jjKSvVy zduiF{=`M-taGUh-B>(+M{<)iB$z;Id7E z8-d`mN^ttMdG6PS)9S|gRmjh89`4(x>YCd)t zDNAlM_c7EobO3*Kst)%Z42N-TLk2JK3=e~qZNj!w^iFbmtL+1{uL4welLs|gO1 z4cjT**tXc1UOh}IwiUF#Q8T+5)b(~Lxh^^RF^H-gtzp2(3vK;gf$IyUO`yv}9eK#q zFXb;t?FpP+0|G%SSB=-c7A!4jO}@>m8gg)WplZ9*0M-#;VbZv@ZM8zc&wlgiADzrQ zowx6%@ZkISR5MO~u!=C_q`&~{{5R*O*M=NM@~f&IJ2+rlThq70>$kW4H)cr4&ipR@fp0I(g!+edl&0g;KtAACWp8yG_tqDoCEh^S61chG&Ow z%LD$+jYt@Yb}q2OaCW|`zt|y9XKN!6;elUHQdJ~{9#XSW@}7FL`73#{ShdXnhqK+; zDOg)Qe3FEkWsoozoGFZ7#wYHs&J)4 za!YU4v5WE7)N>Jk2Gh*5>~96slX?sYq;x`)-8lmrqeW<5b`>F@~e77qzLa5>6lRomop@BFlSS0y)JmDQ^EWI1av)NglXehfb)rl&}% z;qt|Hb3VRB!=VfxX3{bjwM&At8rgQ6G-@vOvo8#kU;Rkm9Hfh7_mXRiQ(iC zzGl*qq;F@`JKHQIgInAtJ2z3%?@KQYUAQ!Fc*aAiawNS4zwDx9MVjHN#Hc>r|G2)a z7ByUT@v-7#(TVa^^;KPt7L%sA$_}<;tNm3Zfzyp9uX88MFSXd!n5^Cz@iK3~e(L35 z8StBg?A8O)zvD?mWSl_Gekw(&RwZ<0VT5n|v|VQi#3nU%w#7Pe?w0ppanKNUTf;=v zwwZJ(X-mhj^y{kYxZb5Q+sD>3`KV2yv5fsGbgVq~LIZv0dZY?~+_*^_CLUT#}z-)3Ysr)nF#yeDwF zN*UNzQmV{WoL@_@H9Rv|J2BrT9XJ9t{_<|Y-)rI3B~z&q{$^WDiV z_$eO+4^p_0kkA#0es9dL>AVYm3+~&cU61A0MpQPIr`t)tuI&Zfq;lYlL31hS=<&rb zOF{T20ZL%5ejT7hf9y(A??i}AKh}T2Agpw@wP9@}nU92o5CS!TKe>?VnsNL&2|YK^ zoz6;BOu3$(D{h%rpv=okBqWFKK@E7)CKL6-s#|7`zY@jV2qd98!ijc;WI8oJP}?1`NXe1OTp$@u~u3 z0GJx8b9Apg(8-=-GkJ)AaLSsJx-nK>Pp!|`mb*c z*wG$S3#)uj%v#Eu$bXs!Y22X*%v$`dQrI-OrlfrI`4hYn(&=%^8JjtIZ%;!hn~ag^ zmdQuL0@T~n>8~ORk8zmQHa_C}^f5j57;Sv2jpngyZ^C#(H$=Ju87vdme$hL0haTPM zPV;H}x&*_=qwQ^ywis9q<&O&_lc|ce6}@Q+qa%q=Q^iA!EO^8%q~>uF7nw-fW5Tm7 z3lh=azp!3gdxhv5;QHA(`K2ND*e(~$@fQ4b@a{w$ABmSdDXpTCO#UUc=DcO2q9K+c zPosXpC~up3I}V$)r+!~lE}oh9Er#g^V z(%p^O3aX7Z@asx5T&zBYyU{r#xT9?qXHzu3dU@;UlCtoQZ=&k+b!Ob{aNL#vHRfFY zm95fGui&DyCjI<4GSi-m%NO3*KRj-qm?VR)J6YNMa^p5`mvakzV$KRq0{c+Tg~ zJU{>aY*|>m*t$U46;i5Kk?&7d=GeHWpLJywP+FGJQeQbN>!RUCmp@7>;()w2D2+mD z(z5c)sHpl)>5iI&U3=;A^1*nJK3ml4rxRc6S}vdNy0c}HF{^(#R$H<9C0_rr1@m<~ z>aGr0h{bJ@Bdu4OBea=3agTqg6!MJC8nJNyk}XZPR=$0tYt!Zof4`F2Oq`f<=B_XP@k*~${Sr>jz={=mn{nl3=P7Zn&{VoX z#N*#Z2|sLom0mWUy?*D$ZOTd!m16&wZl1k|)ra*Iv=W9=U3D`HtAgTjzkMkM5;tlc zF{$N_$ofxtnv41D+*-y3bp>sxipmp*f6+<}yuyX<J!)p9OuUPKT?i)cr_|e$F$vxL7ONWGWdjsUu=3j zU`B&~7#@8}^5Mj@@6}f#aMXu>MzcgAd$~2a%vL3ZJL=!R;pu8V_sT*#*U40rdgJ$R z|65$z&4$6e&q!A+d-N}VvwhuFB3tmfCX#XZJ{j)w$84cfp4TJCa&Kq#PWuI%5V>S? zG&zHk4|T_`F?o@;*H6p()3$WS>$F`E3|uTDyB1jDRUsCGYZ-Np&1O{h zCu?~YSUd5Fhb#4+u$~t@NOWfD17kv^LX&fCh{o$QxuP4Y(*a%aP6D@2^rfHG_F#^l z#inx6iY7RO%Se$>H^3 zv*HkGrh@j(HM?-Kw}kA)lYt*=<@LY4EgAMF8LF0OS=F2!lVQ7JEaOwz^-`vClBIOA z?%lT${h^jksnzx4BM^Qnc!$$g}`bYeba~cM7qRfRt9Cg8r^NqI5!Om z$l0<$W0mg85Uk{wVNAQ6ExujOu3R3%SGhCeVZR(+l0pvE?nj_XFClkd$!os1ubu8C4U-A&_X< zKYzU)%9^~vgJ$lUoUQsg8{u9qm|jSB{)IP>KLaM)c`7&gO!jnp^t<(4%;0#Mu8BvG zD+_&}pW}%@y)uWqD$Vip71P`ORNS7EoXdufoL_qz=1H|VTr4KP+Upb_T_@dUzq5{C zSeaS7A?xnZ))2aZqk_*E0#LLDP1dbW5~SXRu1-ta zEZ!}6#_gCOHAtWJi=I1yJS*QTC~}(qLjJScKjIZ1_MAI^iv4C+%k=m(WgMC#^Xac| z*Kg^|NxXUEtp4tzO+0<&hY$JHJZsOde($3#I5(F2>x13hkIyFV9I?VX(0sJ}5ptaS za08s{;wh<|#Lw7FzBXghP}Os|Nuyk0=x^dousyap51 zY~-Wv>)1`w^S&@la>}wswvY1HHsvsdD^K(zDwDe(qdngIzI~&_<{0OtKH&$^SC^k` zI)+3jbGy=Zeto~&KR8CCJfFEgLhS_92hiP{x>Yw37b$GX$74{>agpyNRg7=dCzXUq zq2~emVmBR^Zk3wEq<9G3zbR%339~%rdLtAlTQ70-Q}zQ>1N1L5GrI|kk4JglKGl}& z+ieY1x;*p!%UyCdO&o%WhcAxDz=&x{`{b*mJ#nE?QMh*@`P8YIUKP9nup|E2w=wm@ z{y)HbPfi)y`4MKE_un*2(>`qP(XO1`>?CWJ91!eLrt|&$3VEuB=NU?`fHYp8g*DSv z^rF$-7itm5v?$}VSw$}*KKoujwnB2+l`_6ZoHdh86oD4Kf8q}AIO{y+qs2L+N1C0r zk8d%ge9yZ$^zgH3YTmnuIdVZYsy@Zi7S}iq)=5!qm>ro)3 z%*Yw&xqC8IE$UbV+39HTM;#yH28rK2X{Z#1c3b2DWV452XYMmOQS+Q({J<>|E986bx+NKhNbEwQYzK4wpxOzv zK6v03yU=^QICpqle9QoKT&vGLFuJO_Gj%Xfpe_{F^b$xMN$A zuLsnp(>XVor}>rEE~Z**fl2x$5k)Y{MsGZ)J7AAI1 zcLs~>VWj3UX%ATjbY+HxbR!p|wFhx>5sD``W&=p1y;)1Db{3KM4!XLa@l<({h6r)k|R1n1N}bFecV}_}Q5Jyg+{5Dr2gva!+DB-?3<% zJp-436d0QugFH{JHKPMea;3*^E~l*+z_jI#1*i6YVnp!q28? zIX~=9hPb%~F-p`JnEZw{PI0cvpv8h?+iUoa6?0C7av?@zx zgOeB>WDkB*8?V^3(UYm@G!c4cv-<16|?$-_j*7ZY+SIiq`Z$4G#r)zrR#GlB3JlF4* zQ%(LW)ac=CM7%OT>-TjoCw}4Y3pt3hbBu`cjsOJt{9ET-^W)A2v=J^l9Fs59#SFe< z%P`I5ZOmM6uWREZUyYbZJ7UgTf7kF)Iro#$_M6Ig1v}z)TJN%o|FIRad~Wlj!WCbN zC6AjQWdo(StoeI!%id%&;fhCRt6zn;W5fFp=h9o^&3@6Czt^kaWBA;7y@KP#+e(d> z2#x_=!9gM2%ip85UmznC`PgOyK8t&^CY0|iI$G|JavbwCQ+XU)#eL*Cln`6Fn7HK` zwf6@1?|O@{h<$i@ipGMa)b>oFFUmO1FF&q4j_Seie+=)x0zI|JWbB=png11wYeMpc zQK{D1RTSlvqK+)m7A+dcSwbQ5w2oO9d^se1i|LjIBw?I-Oe4?O!wLDlG~F{z8TE)ah!&`*2{K5 zir>G!sK~)%5chX&v|7KsnZjM*6Q5|E4f|rV;}AFb;qfd;!p~EWFNd!t(v5yR z#@~%;d+hw|`J+f=`zJ1|lO!K&W7`Uc*!1{B8$$(F${=nI^9f(mT}b8ok{;&goJWX= zPUXhW`7Md%1@DG0e!CyJI!-&=&s|=t-yJ0R*-x3o(B(t7GN=I*W??yy; z{mgE7a2qfGMjm_UyNTw8&8exSNw0@3VIjNY8p1`BuY(FdZyCgO-on?Yqz5U<%B%~*b7qSzIz&6}cCw8< zqV#paF{H3q*SFBeL`=3G;TU0V4Xu)BIL8>&@u+Wh>eH8gepQvQkRwgW-P7A^H@E|7 z`GeY$877zb^L}p2guaX5S9^;g_2pEhT-$1X+S14^HNkX<gg38(i)@ai_G~7x31dF-A>iJ^PER=%)+gj>|uhd(F2E52?%=3-C##oBjX|u{irfo z@;jLs#?RXI?^f`21u;r=ACr&!?9n4?W=NsdgGl^x>e|aE`o4q*O9KPj?YGoALLUps z1Yx&XaE>#DR&ht1u#BnKZ#?WT(Gjpt7=EtFG&bbkO?Fx)?kV>p(d*8GV~=#1VkPG@ za0>b?y;dirY-+B*kY86gL*YMaBSUsyNwWSJOYHr7iC3Sz|K;Qo%hJTHd8^%@o_pd} z`#YQPbSxX&J$haR*%)J}0_qOb2yFybnQ&d@wveD7Hr zGV{jC@#Q#1GK15NUo%L=PI9SCh_}8ZQHo4^@jVB5i&f)|VNo9PAw#di7Neicy6QRV z#uaD%PT+Jds**lPqDwt2+BDly-XDo3W6!InUM|z3)qN~l_GNuVo*TBoX6-nL3!>U9_5xcN*#b%E<_K%F#pj!TDK#Beet*{F{3*f3 zSeYr|oxx!@C)FC2^V#z?v=voF-hqsLR!KtL7?t$u?YGKpKC2>%`7?{o{T`>3$r{I9 zUva)yEB^NC=TVbjE5mV#B9;)WLh0`fonb!scw}I=Q@*DpZMR#-=?pg?o3Q5b1$-M6 zL>XTA6t}_qYfD|l;iFdLSFy?}I~Ps;yOqE4ihj7EcTQ^`9k`xUq;yXOu!|`1E{G3vb0v+j9ONI1DhDBSGJbKAI z&3!(c+lf_e7Hg;hk5(<3kF~u{ADj%{jm=YXdMD50LOl9{?eBD(4F+t=zI}R_OOM}S zzj;mJKrcaQ+1=25gQ2 z5!0NUj0_CW{^pnz2`#_1R3yiG?C+0R=prTsWy$w<$dWvYkYCOr7BU%GyzNg9A5y5s z7|R0Pl`(-qJ1ZW-hvj5s_axdu@CWX)cn5-q0v*&~0w9yLhHz+{6dO)1CxhBMNEXJ) zV-SDtuZt{fE^zA|0pA_on^kww@n?%XxnTQMLobc1?~0@cwY{%mcrEy#Cr`y0=rNc)DI zi5hK~czg+5>m*(NRg5t%GD}ZB^tbOwr4;X&@~?0tv%FdUrx`7LAimQ>f1 z`=MWlPNi6)=KJnX60S$WOUnv#V1@SW3E5`;X*s8cd(Eq4pL1L^i#zl@)IE*WZE?M# z=xiCI5RA#V;$?zrLmg`qqp|vvoDEzJ?=8NhZ@A3Vm=$E*TdjS_Nav`D%a3Cz#p^W$dWu#C7vdAtP1QofT&3s;&vH zdqSs~jyYLf{d~KC*_iJM^u$tKdc_Z^xD=}rO!ZKx(;@qd_TlGS)i_OO6X=PD)T8hn z_ZC@kCC;!0>M(@+OV`ekpvL4xu9Aeryo5xZ>MH&|H_y!UnnVv;tLbc{zRjho4;AO4 zx9-OUN4ve%CfU(A>ubWwKI2|@V>MWjtO_F@C$jYF6^_ZysP{>mmt60bWJgaf;ljW+ z)3q}{rB8|Mbhg`i`?ulTUeOt_+D+xXX|k>T9Hw(xc;&GNA>zp)D#8M%Ndvj$gKF%NRFG?g+Q=%AH-z)xl+aSDIlad_JbY z;rnpz?Zyiz>W0X}geo;Di%e>^{`wHEFigRkX50!4MCi*7mXOD_6SWkUiNmD_5 z>+1-Au^hTd5GrYFF6ns0-$}u&7TPk0xYd@WR}!;sHcMk*V4f$(-+%QZAt0!vGZd&xY5B6V}WZ7O{y~+K7u+S4#|!acBlpTOeyqV>xemj+ z@0Cu+u%3Hm|8XD)lsrOMuDud1Oe{@Au(hP582lkItms}TBaW5ZE8Qga{Yyxprw12CKPD>UWFZvwb`%u%Y&Bh-Fb>R z;F?!BsIV$wHNYb{-bxv`Z?AGkWuG06Usc`5!0~))`zqjgj5=0l9}}r@a3}8+_7K?~ zSBd667=eGIwf_i#|E`Vo0AK{(LU-Q`1in@e>$Z0X;yr^c=Ae<*Ldna5lhXavy?+H> z4UmWY1i@4>cm^9tiiQMeu&j{10rtpY_`$FGP)dLscg9hy736agdz1==0q+W6pj1&T zKjg>>z`lpD;$(Yw^swwuupyR~`7h4De^JChQ(D+aDh$wuk%I(`u=WR<=us#dX`^!& zUAzNea=^^$vsg6r-UzEj2A73G&9G9Ckumlx6@1@dh@l+I3k;!vUYlTAhue9Vx`S*$M8f8m3SX+XpFRen8- zMZo0u<~`65;{5lA`TIA(I}oX)*nj+WNKOV0CR{kAHg|}PLIweogHCc{kM4fjz(I;$2$Nx!5=_T#6Ivg!yfs|%u36D%%q0Oz!Md@eJkW-&<7>aDmj_`c^>#u zhIk(iKPdM*6Ii{Evx9hTuqPmxIhFzPOTuzPj274<(5MXvgZy&`ELWj z#a?5mY_QCGZa_jVf9ary@BeguU#~jKb$T5mz(5}(DU@SJ;=F%}hC}IYL_m)l@s13%v3Iy*Ud^-TZE@1gV9LdZ58AnLyNebwrunSl|h=-^G1BY5KU{Q2`dISmirS5k< z_&JEv6Nq01SRf38`cGj@X;{%chrIIKHwJ@*7WUB3iMC-dkh>Sr+B`2Jzx<#4V8mVm zvAOMq<$>;8z``gHvNE!eviHA?K^^p+tPBDIjkSP$Jh3n)fJOhOFux$8F*-hb#(=k{ zAWt8FKIOG984ibLeTc^J`R)TiVpH=4)^d3hFHumlFBbJ5;R)X4AV#+=90{@e0r1iR z802j~qO=!&M0R;-eh<(=)DFVg^&%0Fb8#O4hGP3g0LUb2N1!1^|9`a<rd$iF&4{;y5| z1AaCHh;P5LFAR|e^u zKu5y=i|V~80mLpy1g_x#t4fqDkA$WGcCYE2I3l+!q=*B)X9?T)y}UeBha&UmFGmHC_Ye+}xLq1lwTL zbt1s?IuU?@lCJ}R`_;Wmqzn?Gi68>hB8YcnA?FAHP~I1al#z!f4*=|uL;xDXL;?Ww zzCa{c)6_;1CCn26VEocY0l@45Kn{wFA_Cf@_WB12|1&qCWuQ0iptE_SL1#A;Z2)tz zee{3&0KkYIM}pb6J{pKm1=@fx#GhFcpup_ApXjhL`_>{*P+|-~y8_jqycz&LdOB|j6fSOM)uFF2~dA! z-EVP3QD6d(2k051ZQ%9Mn0TTwt?~N+BpjNG2mRX+yVt)+BnGm*@h{bXEhCUf5J@)x zHYsi&i;{)l2}EJ;3H!ppFu#!i0O#Y005n9ENCYS+5&_$^Mh9j{GsHqM@rEShhVh^3T{n z?oEP{*Bs-b5q!R{MLeOM(UP!P@)(TnSYJi*ft=31Hm* zGSlv_eGD48XEaeW;z0BNl@ezHbpPK}0OZRaY*YT9N*vf_{l5bKFFzOA+vfd$8-Rf9 zA?#5|7{W4%?1dGvXJq#y?2k^{3#)@i@=z6o<$^9lSVrhQgr()#-<$n|MeR9-h(#hZ zZUf;j_Ml?7v9!=MP;=y;&_jV&^lt-MT(4>R)z%P13nNhMqlP z(SS>2FV2a|!^9|OT2f%Falyacx)@jC$U8Ps^u zdv+70%m2$Bkl~o_03$;8z;bu~!xG{zfB(20{f{MJ<Yl^>F{^kGuPbChd$wQ7=z&5cg(389XOOI&Bn6f_VcU>3=SjaJrfuL)b=wXOcvDk-3vp48ZmF9Ky6<$41BYpl8wO11AD?`;iZ@pmAuTHd&wzdo~RD=FM2=D z!Cjz^_z4gUbS;{Ax(Gu8b>Pc{y(9|0K|m9~Gl2asw!ShAmBzAvHdLfMKk%nSyF zY*{N?mTU=SP_`_^lzkV*<9 zd(OFc=DyxwIwhs{Ck=Ebwbvb(P|3Ze%L8Uqa_^U%JYY&C?Z9t2cbfp+?K(4P4Rp8b zyxfSSv@IR1U3g6XheI_1I6~U9BrXhx;Jwap zU~w1(?@b~uEC%4cwY=BojonVcX%mF+O&+c|)cAhof(s)c_|Q<05WII9hNBR4%0`%K z#{@J*NRlmrrp z@0S9&jZ0vi(ssux0S#&|Ea5&U3E35X$WW5dSob2;0cogr;NXxa;PfK7+xa2QB&8r} zNHee$aK%v&en>Sb$PoLrBaXBbWQe`Ehua7^(*p1z+k-k7!1%T|7e_&Q?gvDi#!--- zyH(+V5uzYH_d_MFG^FQ#+{A^YuoKUBjf{dc+Yh4u699)+5WE+5aA8QZ{qTwlLz?Z! zT3i^?Y(Mbgz+#YMyFvJXk>O&HX8REtR~*s|ip~dS5DqrZ0LGs|z{v~2_`V4jgVfv) z;Qwpe9KO5i_M`d#aJV?6=YC|zg&{rnqdYDQ>A4^AabU2&zLE|Z84iau+YkP@0+43= zi2xUdG}})KxG<#Iety7(A9e0`aAC-4_LI*4U~@PUQfNN|{SSxl#-jafgbPCo?Pn$&7#ytu7=H7d^e2jC(ZxiaIhT*;`q@89G*cieh`JDAU*dJ zD^4TeBuy-H*T^VHv;7>4D*$P>pKt#MgCjQx#@7r1gM4!@597o~aQ=3RXTRz`0D}pX z1YfJ+c``VSgK&J!5Kt76-21r-ZYxmkmfZUS?f?vCP!fh8To7VFO-UGja4`qxZ4izh zT@X;JmxLYCQ+&5^{2&UQ(m~g)@d6qGe2ij1}Vn+qOs|2UZEcANL*48?=Z@WTYtb*DatB_+S$S1Y8 z_ofn6Q-c1TXRk@XIq-j*aVhYPTX>Eg5A?%Pmd+M^gluowW7~)AILgEa?5K#q&lG+*n+lfQ z7_!SDJh$sRU>~4&Ti@}P71$hrVeHx$cNmam_f^%jcC>Z9DaIoXTwMZt<;VIR^JGMhZU`SIyRPmy?wzx&f=&(s| z7&Ava_loz}y-PbvPcWOwF4@Z!v&q{M4+!c=$RF0-`4iBIq-Cz&q5Zb&?}MbjyrPUXUQwX94_m=BleCVX6v-KxnYiYHY{zH)#XG zS8{?IlXH2rC*wx=?-6_#CFpLKQCVM6S^2iZM6g3c@aaP|SK{e~d&fzR94D^xt8!l& zk#wS7B$r?0N*}o=vE-xjJD7vOo0!0hkdTaHPC%fJ#(wl4h5JLgK0gB13rG9}2+Ga3 z_$}n+AN=U556Bd!r% zOnxyda6UDk()H`_)*$_a2i3Ma%}>UY-DdiPy`q*^*jB6PUypR=%Y}@=#RNAV?dY4* z5YRl(|C&FqK+nNP+Umj=&{B0w70Y*u|6Srst9G(uoX4+R{zB$igYlh4vCyJOR7Kg( zEWR~hssETpeIca3#N&hV3+1{i1Sk5tx8(`veC92l>E%x$`=fRgFBLq!9!}~TvR?Zw z#k-8|mjV%=6wf*zed=Gg{M1>#2SNR;6%97Dj2Nr+_5v<>DN=F@SVulH505-WLpRYm z7(u%wMPL2H5Xwl7!0VWJQttv*GE1&-O-;?M`}1#ap&uDh@6fNMwJ&n}aKF9u^@hK! zh*ZGq2APJp-BgvKJAUN`g7ZEv92L z`j|KO^dHN=Cm3b|*Mb?%z`DnL8719M8VgzfJ35QyPvvhT%ezr!$Nlx_382KqMr$Jk)fZGBaPnC zcL_#xZ-SuXA#nk%M7@g72tg;0X)GN_PN4cL-|SN-Plapmn3Xjg@5hjtSO_l?Q>t4K zKh6*n=8enXt@kQFmVRqRP|Hj4)}V~~9cp_&?`QO3C@gD~Cv zxGF_u67T|cnlpfLsm;foN)ePY-yt>bjzE^Re;jJjM@2U5y5YXR3*@1DIJodThXno6NNY zq`$1C6v^eg-bq$ zx3BpD_dRHcWlxS0&=+LlSp7gn*;$TtGb*i&hU7dqYv~f`tjA<(`UPHXX%t^msAyAmT z6ZCaZ4|Y`dVg*r>4mN!}kCtlQSWZ?jgCeVo=k!}XstL=ig?QNpfp;mi=huBgr*s*= z37+N?iRyUDqE>Uz{J!oN$o?_uzw$D$dICXS$3QIN$NM zIV(!oKaHZA*GpX@y70=S{A9*ln*zH*cZ>2128HG~6IdnAh*O)+w+zMTG?EH^1KAu% zgIH+WbaH$Hts6_T>R4##8jmVgJdZlPSr{LqdsgjddPmVzw93uOHxjf#v)nQgmy!jea<4ubcB=P%)N_Sd z*M6F+{3vfOh2{C|)VT~RjFVA}aTK!Y=sg>~(4S6fY0g2u&tt?p45Z)O{C*;uq}4rI ziDc!nYLLjOP3>>-9S^4~-cc>-(dBX5IKNa!eB&Gy6236o()3Uvz%}yE(KMI%))?nI z+rc7gp+}-;BN3Z7l*drm*CDmBJ?wD^9dYcHfV*_?J7+W|&v)(>2fIFS^PXzZMB~TV}{V_FK@E?GnYlluFzfZuHYx zxV*(r?5t!JD!Bbae!Y3L71IrG_|tamPPX$M!v4yk$SXQ2~dln6(Sjb z+K-`)G^5*(nYcFn4t*@VJ}0JTXYK2h>qN#HaJT80A|m7H%a^AbeMpt9v-CsTBiKtU zHZ;6=hktx~={TCngjf%?|5@4=QESonoII$QCA#gYtkA=onv`!UGBY?ZHa)a$gZE2* zYj?rwZ2I{%oNg_PdGaB%zB)HX3tVp4xxD&9?B(Mz&*x$yEs`j-&b2@;PQiEJ}WSF_}*wh=9Ijw$a<4jTUwc$E_76=cu0v?m1Rl4kCsM2 zn$S|-hlkbDH=B@>mGX&*kiY{5C3%8u7NIIQtI~rLN0hAyetB_Kefj3>7E}KvC!CH( zV9-{8-z8s&t*)%5Puf(A$lnqsAsmcL6A zFCah0c(|x(<#bxRm~Ov1fw5e}R*vxdEZ9$cqc8j1<6QUsUC3D4%15ylKc3-e7~vmk zPKg#j*`$lQIa9hW9Lhu&T389fDSc1yyjS5d{H6 z>s}d=*N7Pjc;)VyO4zEC_&#Fb`?{d-gM`HkY5RTWrQ^@J{2-O0=wIQf4Ms7#5Xx0* z3Wj5J40W2-JPq-!N8|%C*)i0v0(?OyjS zk1L2%yU+bF**v)^(x1kfok|_pJ@1d+_*9!5sbuA?uk2}br6uvU*sZDp3k%ql*40bW z>wyg24@XmbPS%D}WT72tAJoe;91RKnbnSFVtr`U==0m1) zrIX4vh4Ix!in@+JURvV`^75>dT3xqySD58)WpysRmRQ{QV{nZ~Q1dSd7 z_Eam{5}WFC^P;J^meK+uy0^DUZ0M_Y5ce0oGRx0_#z(}{gf^uvZW%0vdKb+unwl9^ z++TV2Au&#$OZ1f;ebA7wH>Oto?(5Ta}XMTp>yv!4J@~jsZqsd%W7or8ME8%^O5WNTE{Q-oOTWC-Ir8chq1tXTNcHO9< z`93<$g-)m$ok4Of3A2r>%iGhZvDXGM^E(rKPEyp7X|}e=X4*jNKa9qd-eQcAsAGPz zLMUtWJ>Zmc3d6cR138Imj9kM-gd*V_qwh&_wihjyE`OtYcoVKXgXKwlmvcLzQlDg^ zTz_M6Wu$NUciHWQCCLQm(xp1dZJvtB9F?%q8$J5V+XJFIYjv;RZfwmKsDB6B9 zCB!qQwnI^qJlf&y@31?{D)oqI|O9_(7wq z&f>&T;WMXVh|X6v+J9akVIul)K0`i?fQMeJR>hWpXk6aehM`~IO6(rS_G5S`$2`Z^ zS47Bi(`BiI0J~>&rW^?o!_rKjHm(r7**I23#bA8NEpnWCTJ&fDSK(6QDvLE%LGq^f zX0GVtw-&U6_6iGO)1re^;mn204){xo$?+gJ%8#=Qq|aj96WMqjS@iXvgq1&JO*)UcK9e)8D>p@b zB9nYT8SX=C#C)lF>UCNK0_O0hk6q~ZrZ5rn?dj@xxvs}dkM3VjE)%h+=`>|8s0c-G zy@_@cJ{eFECmSnvZGf|w)XIKa^6Rx~))Z2r3I7&Nx;|y5L09mv-o3u!jhI_Mt$R41+4Z?= zmwdhXRZbwe9+Qr(BY5L~vzs#h?Z?)K^-5>&O-RcNMaiLp&Sf(bJdZ!u-dQ5r^X^gt zJJr1(m(8pTzMKl0lT+t4z}!mulhm!++CSmz-V!Um>v=-YQ;?U z$vfS~L-I&nU%UR}s)TwP0zA!@u-UMPxeD?}?wpY^D{;*}>0hSVm{Tzva$B8OnxbD5 zTwpjyj{L6P;QL@hjjoEH-tMy2pj@~<&qG!Qm41361tt03!RtCC7PJJqS2RD4U+Wm* zYf71Ow|ukqQ32En3?iU0}r%CWS^oAM5?1Pqr>D=B3Byuy*yLvqUc z#t_AEV>hqcs?%SWUbo)Uz%Z+J%drIJeGoJGSeDp#m-$JDsfqbpFEjl}vsIlJjuE%U zOGQ7qteG4)lezP2J<*1L1vV3K|3%RvzrnAv&LLIz&g7cBGd##MxkA5A+%WoA(dibR z@`8z*!pV!y%kXG$YEjM0tn9)Q$4{+#E*i`!oC|b4D#h~cJtyB~$rJH^FbaY?S5$Kd zsg>%|*@YZx^6h4STa!}>z(_4wy>O3Q2+Ss9cl1{eB!po}>3skBr* z%rrhKzUFKP>Pm^JlcKj)N&AwjqnxEoqUhz3aB5`b{LiYvsr6nhLGAU?wXcEaE-fvu z|3W22J~&R@uP1J+dwV6KCK^-s{O{d->0+sCvbMA)m2KB*rdmZzm%e}GcPSOMD-P@$ ztC{$f7nc!{!u5#8AkiW<;3w0xK6Q|ALeOj+=Y{CV-Ux>rlWiScjBHUnt2%+dr8F7y zo%%9H0c_88332opo{KBAZ;2m1*g{ypD%#q(_N?#mr|`>9xp;22J=Y7c!X%oEKkT9T zPEX8(iy9u`*+ewp|1;1l?8W|Z!M(mjRk-%(9tKIU-dFrmG z{txBlFDvRy-f)W+H)R*Gs4E$u7+`<6$@m8Su(SA^ps*Ek+{!pU;GqKrs_?0G!=L`u zu9d_d@3|*jFU)r|XFuuRtjaRRNGBn_+!xsJiy^I=aa%EA6z1+98K}8^m za4+;l)xwATMYF%##B*cz$v-BYoeJ~OU0)6F|5%Q!kX*;=pBbqCwW3Xs_9XHlt)s;b zLw}vk2l(74vk1i^UJ|Euf~gBlLHxsRO&6bN!eRMsT}dJ{Z7|uVsgJMv!!eE`VNI?V zf0nWPrnQLh6(_7sntupm84I~OvynSVmlG99>)+PNedb4CKu@xGRhO6WLRrEe`QUDs zBM;c)$;U2wEZF%m`VJJ?&GvSN#i=9f!BGd1(4$h0ANS7*5Unmm6Od3VMf~nbPN1`t z2sy#vWPZjvvK=WRuu8aL^n+4J?07t^f@D(%*)g@$g?6H}}W8q3z-HMW-3nR4Qw z4gdEv$>7yD)6n>tq++Msgwab&#gE9s9#915>oLb=Y%qz@QV{302ag2N!C%Sao9ouzUJGnE5MmECiu5vDI^CQ8*GKag( zk)+m*Kg&woSLTK5z1N1CByzns>xNO}$wQw?7Xlq3)M`c|OsLQ`(@w6XE~@6YidO;$ zTuOf{oo05lc_t(EL&jBjgExx*cp{_5(I1Asg7QxtB}fGtulUBXwcD~?z%YxyS{FX2 z{pn2;&7^jE6T6Y(mtdqVRc)^B&Uq;$>)-P6aMq03YxDy8+J8U|`M4!3IKY}&Armz* z%ljjIxJ4g{m{cJQO0aCI5L(i`#?;hd!8noi4(=4FJ=>8EyKkqm*@ArM>~y*)k12C9 zr)OhbX!G<27mAX^^>S>>M~u!1p1J4W)<_+gd%k)ogiRWa{}eKETNCXUb*y699v}Tz zNU`!Rzm?nnSne#G*N}ki1+At`z|dty&SODF5)`PhGO2EU)z6b5(lJF`%oi};-CsL5 zJR<`_Z6-yXW&31etGwdVg9Lnn{%Lk8P!>1HQ0nR`D(6aZ#u$1FzUIZ)#s8a@4<5gz zd`#b*==T(926gBI9S*I(GWuUsIbYd+U&j!(D3@=zDnqG0icX&;f-uz47Tmtiy{9_w3H ztsM75>MyCX9bqjGyAVFNncll7FQn5EE0WN7ry^wT+1Dr(mxNq)R-Ub+13`!{=jl+` zowSTW(Sj%RSIZ{I?kNShQT{%2E#=F7SIY$p4a>jvl8!6GM@_8CNYzL5{gN6LqcAIV z(dH>*<=eggs#o4%Ol&^5VP-r^1u=iWhP85U&8-JU2%34=x|XcIpKx<4DwTWm{^7tG z{l40-9xF@2Xlb(r)AE~+-?kz;+s$OpgW5yxi;2G8MEkAb`(vS27)&+#XFKNpc*WHF zjrvG-MIY7QUz5fZrZFXxBcgHzFSBk;jH=dFdjHB%-CUQ+#+JRf{tmO)8B|qy71l)9 zy;0pa>o3VzVWVr7_mM~ES?lJ}!AJ5Qe2p|>7B<}xga*{@oqSa~@=81wjYAOoGPBU-S1@ z-1@*|D^2h1jaf~6<{pqD%DBC_J{tUINENOIuedBI(Eb|NJg+UgP7ENfPlA`F6gO?)D9v8xJNaspT*+ z$(IBKC2pNxR6F|P87pta)0q&WwqKlolf)U|D=9)Yri^Z}7O9YQN9G9ZxRGN#=C8o}%GW$HeQy}7Qc=p%8>k5?`ijr3nufG}l28SLcY*Qo&=6)5d z9Gb%$%Y4LWJ?h6(<-u!@ijyC?HqEp1ksQh5$u7NiGETWpt^fG)mR|WapJ^I~yC2uZ zCBGOvLHTKzOu`k3K^GZrvrz+unf@<7vWgmO@7x}$ou3c7&<`>Ppy@%o? zA8lx~AFtjH^ziGoeRFRx(9zU+K{9epMC!+k+6&=v`PXOLKm6ckmSh>)SoUFmdUj+y zYfgmY7n>HpJtNaCK-Q?c?NT zGrjAjcAjBE*BgmSn5DTMn;Nwu+K|u50#HX^b)HH!Mw;2%VD;>eK7Os4XP2vhrggZ# zFyC7?dZNMP&-*{;r6qhQ#waO9iRI~g#CQsXOkMP5pX8htK9ALGgqijjz%?Day+}S0 zFFx0&@hdDLJ9mGhu=205;Q6|-=NPN;Ko%yHBevJRtrwAwby5rRfcv)9>Ah9RzTP}4 z_{!?*BzfFd)$#;Io9m1m=_TRj#C*Y@3-zu#kg01OId+Nsvde{Ab$Tj7J!f@>1KACu zyBbX|p=oyv+DAo~SO)@?eUr3J&~D9fo)a2#Wq<$8FISKTXptIZzP|BoM7R~>sUO%P z_faghKrHR*OTm!svBiW;TJJD_tM1-!g!O^ja{Y19>`%)o2GJRP$@y zHx>tqmzn54ianYDZ)Tkm6}dC;RP^ckN$TLii;z16y`)ar{k{~WAj_52xRk(+ zq7A(l>&z?_bw5k=ib6c+-yZ9e0+`L4cB=9M2HIzWxhsYqC8U(J8N_8Ddm*G3zSYv2 zUNbnYasym1h@BKqGoLx;v2u@YGQEdMIM_1=FBtPl_j@@>+}qD0r_1w`eMM-;eaV?B&St(#PPFQ_?KSNr(wzx6lJ&;K4W2eo zXh*ENzBb~r*g9oF9G}GdxJaQN+2TN6#Ktd6)mM44KtA58%UjJ+Mtp$&y#R-*TOWId zSdWOjM1J#yK?)zo8X1e)P3ER9hjc5?$f%t`lWCyWov_BU2#?cTS1DuZXmSL7R56>F z+T>)q(elzu6=FtooZH`KzQka-lg=kqZw}6M=JQVcx}~HaWivMVW#!v)?d)33Uqt>4 zJ+|!j+wj%o`;5~yNa;<3Rr*WEeO4X@P;+~%e4ki3Utm#BJZAl~mWF3ot+|fmc(361 z^4B&nh2u$!Oh-bC1>~6r)43|tj$b3x9U;lG4y3u?7A9=dmD3(LLHndI4s+=R1=F)$ zeWA=3#1)1ScTZmNU#|5}KDYV$-IB}7_JZQSRZ)%QYi2&n8<_fy$+yp~ihiG~xity@ zDV&3oINu2(-I&!|E^+GRd|%zXOA4m9Q%={$$YiXu2{@cMT_>79GzC!*&Fg@((POEZX0LwoT{6^AKfbwMs3_dlb?&cs_5CfBbYH<*n!a~X*;;=R z|KylR-!SZn$me8coP#{$7q~e zO_H8q+ZdoeK0&SFZDgCrVqnVgL^&6sf2=c)Ndj}?*}`Y?-o?<;W~J9<74eCct_jMT zg67(+oXqH4bb5}rmF+9*sZzzVh+;m+s`A-CqAbYy5dqun=QSFYD)%&u18>W?4&Bjc zUw+$P`!DJEgnki9k3Gf&kk4b*CF9~GMb5#B*G1_%MvCv3eB{iDQmza%8N?!(v3;U) z#d#~AKSb6#%3mhn8CGbPC%^Pvo1g1u-c{qD(od@yMrS&b9=7)B%G)dQKHnVcxbPBj z=fOa%^g~*PynxIKW6R{iM(b1Z$?vs@voqiJoHkrgXIj2!V5)7<{icX}8bg7RrKb3x zxfLhGTW2Hwrm$Sp!Y1T+ zk;MFh&1#+3ofc$TF`K_WwkhGXPoarilN`IWn2t-sN5A142q`j@Pv1 zXTXnq@28QTTvvZyApSTfAG}p>{AYq$-h$}J&c)_B@=N^A_mAhGx-MQGB*I8*Jqs8- ziZDq@@RLEq+P`MbFm%x5v_B%n8oy>_DvHj&7xvkhJXZSk$jyWiNuKjpU#mOF5C6%W zFX!eD6Gd@(xfXr!SE14VnbQi}Ou1btyE&zhB<9&Mez!LKAKP2IHjcN8zs9e{y4|-J zUXqyL&Gg=q5h$ySYY_E_T>9XT8MS004gZAx*1_LlpF^9c+ul9kXQyax@XRVjqQ&5I zr<^{=mvZ3`-lLxr#A_lm@`QKlU;dDjon7O&QufXk;l*_`nRnciP%`SRUt+6tzW3HW z=R~<~<_0khUU%MDIl;&feR-a?D)*<}mT+|s0ZEjtGAx&Mk*1HKxp!=<5wo*Bth)Jt z^N8zZDy>)26QObX`f*6*#D>DRb(44dBgkl~KP+7(zV%S=vdFy0B~}3<`uA=p`m*R^ zY$!Pi&w-azKC-jc?OZQ9FGkpe(YE$N>$htv2^~>zC~18}46}{BoS0o{+dvlWmeO%i zxl2Wf#5pkLRf*oqPj8O}H~zH4h`;6aE(mnfa&nne68V)6XE;8Vrbk0VbgX*udz(jL<#o$1_WvA2!wo#!P0oy#C~GxFS~O?m z^_jMF`0pg%ri~+8%E(YAj^Ma-hU4E$)4aG^L6Yp*$4?MJuRBz|?7#l@4Ku?KvG{+i z^cNnZJtE{9^z+>~kzjlHbtKl_!r|fh{3Hs!&h;5mSD__pX+!bHOFGdOdGB<|&z?UO zs;g|NVeZ6rlz|~8@q!-hg|>Ua*4>ZjDD~XL*+>I#B!|CGZmhi1ZmV=XVt`e_P;*G8 z!NDGUO7x;d#VzEsbk?^py z@?MCrmCXNVAECgl5N0qua@kY&cUJRMq@~xbt*i}2E_d@vtKTnU!!~DfBOjTN%?O%u zt*!WYzsu6^u=uUHl{|dvvXG*b<>`<=)T^c<961{|?YYoxN1mI3_no7(SQ(ySreC1q zpMLseEx}tODt9JZx24=2Y<$b@27)_k{whfg=g0PxFUH&r6WnkgPRmi7Zi6FB&ek;A z$1SiR))$Q~U+XKg(*FCY=|tj?;mD5m3Cu)#NE$a1bL zi$57pT#oxA=xKCee%!YU`69T&PID=0e&PBXiPYgmt;vqh0;dHnucs1aWJ`2Tdd!^i z$THOtgC|Fp#EX3|c(suh&e#P*nzQ(kdY^FD>g_64r4lMJim#;6*EHfsMuf5MQ@VBGEdC|u}*a^UCM zEVnmA=h_p+7;e-A2g8nWe>_=|foWQ;_|h+x!Y+xP)w|Tx%iDeObarDYA}Pxxb2^sS z^!CcD5p(CuOMj;S3OLjb^Il=ejj$5Q-`rXrkm&kje67OO+GwQtnrg*EBB%szdRP(YIw6Bq0~YCBf*H!y#sY8}Fa z?Tqzu5DS5vW|tp#fai20{Z0c>%9mSKKZv6SbDrK3gI{93@=(pt;BMgWS(Z0D_jP#| z{&1W4f1;sU8OzMAV`y#aJEBwXq6UkDS~-1 zg5ztF*5^oIaNb_sH@0VY=04qhiHT1M({ZN~-cr8O;!n+>;a^)i^i4*$WPZHvnGK;@ zz(bGQ-n>+T81=rXE16b1o5z0VWx3Lzer>GzEura5&k>Vk$I?f0Q=dT86B+siGLddm zGvpeU-qHG(ki4vv$oZ@MjKD*ACOh#A?FVk(qP5K(8V$dg1)k#F;Y=sibT!8Gg@yWO z*H(vc1=CmBBo= z-e(*!@2k1Ha8tiWw&I@ZrQgXrg;SFApfnhks@!gBXlnE|H0)+T7!HzqIhr0Xlm43b zyg(UNo=rYm%5C^XZxpWcrRvQ1oV~05`*soQ<}bg7D@ArbnnafiVne;g8a6SPH9k+i zUaX_uUaNV7lyT1sS?hymoTHH6A+I6PE^iQy*1j_+;#tu#q-h)DOP9>6S5v2%m~m2` zR5t4h{1K7Tu;j%GZ%)mHF1e>#qO?uCI&@|k(QiezE#4P>j-4x9<$p)~I#zCZyoOFB zC~BeDIrCXBWkOzBc9nOfV2k)4jQtPSK626Gl+nVe57yHxr4j3x(x+zZm^8H7yA0j- z=G*UnFV+<0dk;4zcQHDVe^cfe4{R5KPZdnh^#(^~h&&N=c|O8!L7u2()H>)EOSqar z7{1E%OP4_0I{&ERPtr4Y{qHctsQ)sFN8QxTZ0aS@jpwwWQhZAA<^1$BF?LM#cg0N3 z-(FUQ?|7T5N6Q!auI90~9{U`(lk00LOz{1^xghrpr;|M81nMc~$m3*uF;<*!?$$=T_3#~MkaVs`7*~yeaXb)#5B^-#8uw?MY`baWiP(q;7KiGGyYrk_J_ezSX?ap zS*GGo7RnGdkEs6NdC_t`8sn;cA|^|g;%ee-cjFMVncli;TsBfaiH12TZhms4GiN&b zQ*m=J3;yIOKRfv8UY9z%Sh*ft<+v92T#n9!vQo6y`d#+xGbq^+zD>s7o)ipkx>-1P zhHn-syFU)9p=J5RNo-1d0+mIhJZaC`=BmQ&6DfNf@jC;mPDO~ z5BF~x$lbV)u;udYnhaP%3kDWqR(1SX=3dg<_Go0QWWJrgk|{bt^gvulm@ded)Xdp%Xou{J{ilBaAEp_3sww1 zp5&^^cO8HZS9!R;)-pZS=G1rpcVLVWaUy8{LvGQ!m_ce~Hyc=}?ld_65@{B9qu zV^F94^#$IHz8Brf`YxG$d<^c-FuD>FBljN>UHAI}Z@N|YG~8z0siF{}?29~W*4$Qk zv-Ao71**x(+}tLIe|pOa(jOeV;*Fj8t6g^5PG!V3ullN`T9C6PU+RBGM{+(&@ot+6 zaewqV2O}y(ALTId%Wt|W1Gap5l#?C5SUd(&GlB#ZkC;Edxtcm?sFs;@GrlA!q=swq%!m2l7+8aE;GYUPG4To%Wd5pTOPer?p`K;FVd{i`d^~zY?s{T z%#O)fuBD2~e5;*;->x)a>s(C~KVx+) zHaQ{5^M<}zeO@0 zjyHY}bfQ)hypwi)m>*)2i3Zca@k~yHiXhBc@>U zQg9-}#rU~_O2GH2si$$I?LL>X*L^g#gWe=NY4cYVCz#pU*a&9Uv(KZurx5)^ER42g zFJmkg{~(Mr~97BW`n8ZswSKz_;*FdV=lDxB|;*B+=mrjmD87Eq5*t_!PLn9dTk zqv*-2*J^tthp(57PQHn9WP2N7)LR-tA8eF5f9m;+%H6=0*^gm-OjUiwCzPlenDcr_ zC(2b=-j`g-A0hn_atHjK*C$kfV$1JZ6zWs=RgQ(cAB|ppj)p@_Ic6BUPFm68xNoKs zCTcy;jY_D|=iVf{arCXd?{}AS*uq?g8_hXy3@^u2$~!rv!wf%FUhf+=G0=1G?P`S| z^QXH1qwlhjqEnjQU}<)Z=ildT1GM2i(@fmsUv6@cT#;MYKJ#n3YH=|~ZdHlUSLoHH zX(BWYMKl3XEu1osbY>!~IHB>G@%4lS3i)_JV+Xb;m)&Ufn&kNyA4`ixt7uYU7BdxH zvx5N-{SIF+fpPv@l?SGN(&i^DkzUp*+9Qp|SZ8CrNo z?G`dYX|dBJY5XFOpB<`T}aNX`I=BEz0Q(n?BJV$-w2q+&NO{4T-V}^ zkzvsn_~Z@J36WLDaqp0C>Ve0ej1_oKyqTdMCidP8&AHulu@4^AmfwiUtrEiC@KP@f zqWoNFStQ+|{R?Hw8kr$5uSUC?kC~Y8);j%QT!UmF{y~Y@Wh35k<2c=X(hJYC_@|1> za*Ae6ZnUN3Hb%Z@ka@5CUPwIY&av)xFQ#6ZaJkgue~E&yK3{J3>V{2l8C%H3Yz?a2 z{vfyDBGmcu-|(E=^B=kJqw^vSzZ1FWe*SUv)Q0tQT}H7snBToxKJsMwMqL!(>e8vIH(s&3@z z{T)xN;y+uzwICGT&z{!VkAbtM$G81I{7U33n+!7y8kL;pr)N2u>ff3m!us#^kiRx_ zWo*|f9hdGZ=f;C;ge=2x-Bp~6RT`K-%N9Fn@04`S$1}5;!v_6|&Z5IHa1wI)TW9;l zJ)W*}vi$v?FoLodSiiN6np+?Mg zTW7CU44E!Bm6<$SbeJJ}WIaU{Z$vIG^Q~oYTfmLSR>Ua#jBJ(6Ik^RxlGku9CaJKC zJ>kdEyYuZjuDLev-)^5YWZ`SqZ2Ey|csYp>Wnqc>M}m?6Fks!|G39Y7*}h&5mDV@k zQudAGh>{HB;=hYW{8NuwoT|G&x`Zw57Rw0;$iC>7tebWw-_*9vO`0Lo`+~%`o6L-U zm%A`Zg+FwKPHB8syHb36!^@V6isJ?5!bnHFl!MZI#tY5UYd_R}=x}RXAhKqO)3E>Y zT`3`J?c1Y^q^GHRc_@$r{Br6gF)8YPrg}fm)y!ljty}rn^L|~5w;Rd#91FX5ay#Gz zII-B6!6v`w5aq+#J$c)Nj9PJQZ#9a|RHQ$5%>^kRn4e7e;2-HD9x5g1o|=m*7HdL9 zi``H`(_lSH&^*{#MszI0?p-{bD`a9=%Tlx;*&dZER+a_LiydG>H7=!spM)MiyvlFKF|c5SkY>hV~kn((c8Bci6jam-O@)b1wNWZ~IFPb#U;r5r}d#NS01JCAPB zfEki5@(w2J<@c-)V_G8Fkt>2s)+Qmb(E--{W(m)TNs`3g@coi$-=4euzlZHr~x zxRB1bDj!|u-}3WRh4o9+eIQ8|2B-wG50$A5I*xx_>O(3 zAaNAS%7S(f+`DIc@EYG9O)l;nh?nKEpuNsO*9mv84C*MO3z+bUjitaPL;7H}AR%D; zR6$omjBmTw1y87=(S*!Us87t!`y;CA6|+xj->XhI2WM;N$_$QFzS zco~l^IuMXiW7CeI1(O z0C6W6tN_{Gy<6;^F!b>KJD;NAt?gFWqCzQt_}Q8p5WjygpI zCl+=Ge$3epK8 zduAfIICg``{w%446ddqliV)ksBZXKQ#LIpW+lLX7!leKi0oI??{v;_9h5}BI3w;Dv z^-+kj&!qMXq@>_dJfOOJPi?P33P`O%b4O_)2^6@XiT4f*xu>42F`# zUZV%21Q)vji5K6I-H%eBhs7iIL8Rb@DPSq}VA%bLKuKXq7Vz@venbM&)@~+ybAWVMFXFI1j@C#QD;2{6e1`yLBN z0B6BB7Xo+@%$ zbafv`4i5M%kr409K@0)Iw<=&^Lmn6m=pQ_cKtkLmI1fV|qo9<4g8@0fYIINz_yM3x z!E-JtaS%lD1_-cSsxRF3q!1_+AV@pd31|(D-!Z_z8ap5d1}G&C(fk}}5D5%}XKECP z7I>iAPQIpKd1lufe&Kv zA4W<6o$(q3Z<&Y4FAj7Js1qPAl7pBS4C2Pa!^H6X15yt4e=z{F@BM)M1Lf|_DNq7~H|YGg zW_On-G#Dv}Z|UH(a8M&1#Nc3)264gR%7G;Ub|w%8^xro>sHs7vh&O70!SNy?BzLG2 zkUkI1F~CrGP6&Jm1%t@2{u>PFA7}zR(RY_0EVB4z+iw8@iYNMlyJN)77|SRE(aKHdw`$|OaQL6Fp&8HhuZ-V z21Wt{g*C1qsMbIQg1;02hQiyB0y)4^h3CK^ynz*f*B%Hnk{CR11%fENSPk|D(4ht1 z!+;hNKUM%aP*UQ_p}+_aV?g6Qx&N#Gz)=Y}9L4Jd*307K%{Z~y_tJ6^;@fhzG(d%%Er`$ynd zpfHv?SpR{u7-*}B*RhlY{(cY00dn7i0|ajc1q&W`ZG)us~RDJs4rfsFuuN(D5`Am8D23^4p^8Il8;`@cc& zo&SNo6C8hp0NZ7P#2pO4K+*Nz!%%qzaxv%`&(r|hC8a;`ET9fQT*6_%u_gYfCBWVj zuR$aNyo(9X;gEpK6EDyJvSr{3cvAv$7z{ry0BmoY5840!>OTPD@ACoiGSu@yjR7W! zw_}Fn@Q>kuQ-l18uLvl2ah)3KA223^Re?8ZfE}v;Krdo=$1D=816<`m|A46&WC=X;0}M>m z!G}ROg5jlTFvp+>#&FV(Iv z>a4a>Z|q$YGi8ZvV@QlLc8RbciP5@5$Yk0sYtkC^ieapHm~gHhwJK>l^t6`4}+*zAwqb z4OALe-j3dBj_b4yqCjWnt7>)dI+TKucn>*C{bS|8(3Ny=Scha_PKlY-^VGs4c^$yn z*#lVpPIPZ%LVAiumb-*`RWPX!CKI#DjX>B==hb~G#vU`NLcRcRm?$xpglNG(J_K$H z`l(O+vg$i{9bCElSqhGRvVaXv3cv_>y@TA*#FD^Fn-^2m$&FinvuL#Oy>r3SjAhF& zh{v>Y5QnYeSnnX*!EPN?VI1OMhz4Pd>JnJ}-h1COC`z#;Tvh@k`H5<4(>OUKIp+W|v` z(3?K3YJ{_`8&i&yu7UX@0M*A;VU#1r=~1T&`lY?F$<#$*vpFAOl?jWEZbTAHp<^_R zx7e_2)Tx3TSsPf9qp*_&gu?KnQI4Dwfq7sc+e(w(I=CW2n)6XXw0WAkk^qqW|nmQc-6an{FZu z&gs3Dt{>RhJR!D|-$WFaomn|IVrL?h#uQFdKR95kPl_j_GnFo@&+1f3jT|c;ah@F0cE=OnlAkyHv zP(=F$T5KhZ?t=DuWg)`7S80M*X@ghk zf>-H-R~dp=8G~1uf>)V?S6PBrS%X*Ef>+stS2==LIfGXZ2d{DkuW|>k@&vE)2Cwo3 zukr`43IwkT2Cp6oUKI*nJsP|!9K0$Lyeb;JdMtQVEO=EscvYfwRg$L<14F@-mH9lc zdDvJwQ{71IFdKB?LNNNJ7mluwJe__0l}w8IOtH|96RgpK7U^sQ{mlY!dWF51Q?Y*h zK6ee;Ip4c5Do7N!eHCS;>+HE#+$g$t^;N)4n>^m&MuDV|!Vnd@OKn6J6jxtZ)$RFj zPJMY-{wAHg>`dI@PQ5}da$=0LU3|<)|B?HVQN%S{H|(Mh)nk-v>aMPAX~5$Z*>x#Z zqkQFSb{7llcej7-AUszFmp2#3*T}=)|Gd5uv%EMyHu$Wpp2vSUa`+-`wT9l)pV>ia z>7R-&f8o9SMS!C-F}!_Vh5JPXL+>N6QB7+3MW^|Co)IFcdf3JuN@{=}(;r{wx97TY zFu>|LpDTyR!Ar+Xv<}(vTUykYogvbxG>D^VP|(yXw`yh46(>J>*~c@B_~JEPGn2!k zLrlQ|&p3;Yvsg7`J^0D`c4vpQSZ&Ho?h4(R>*0B3R<(f|#nMtTjb_O`G3T_Ej_STP zbWm4cd1U^A?YO9YWdMtZ?w5lYH?9v;1|_3S94E!ZU(2yj9dcm1H0P%dwU>$t1q~!T z5wSdGv(TSoeqF>cspXNc&Ds+&8VPUS%^8V z>aZ*St+0~?nnjXGRh_l(sb}9&EBC0TdX1ot*PZHs3oU(nvQBT>8U0y%P6t!Q)o@~I zV&7IkleGAbNAvxS~p5K-~oRx*5+rbxv3dTsOzHCz=+f@H zUleoT=ckqs?zL9VYz;piTyL=E#TfKU9w$4V6>&>K*Rxx4(1F$c;l%L}yNj_Z zJgu9;wqDRvA51~8mwzB@zI-a<*m<6_qRqL@8_90jBu8)Ai1BAtd^~)g)#`+f=#o~b z%x8;34-Cwn^$t&lTlk$3?HWj6mN|_v^EAqjKYQt=K~~C(2pY6?!M)dC&{!UW)ip>Trl26yZL)Nm*p1 z>z5)!xZ4X4Lk>?F?yzcq`6*~PX?Gk$N}@VI`f}l=@>NC5mKVA479(-!_56sbZT9EH zW|Ty6HE(CP7OJfFbNdyW-6h&1)8iG1GYFB^U7 zsPO|w&C1Pe*7OK5$A_1;YWqsskMz!5K)Z`;d^OPxyNVKuwqbDW*aVktob>7u+a<_E zaY=6YSCeAeEMu;A2X}Gd#v&ceSCi<*BB#b8u86DCq2o6C&X3-YyJl7iMzgh)wA-wY z*}6YuZt>9K(iV)K5OwDYERUmtwPwav4?I5}Tz$5`(>I4DERTCt_?ty(wS81P+Zx;< zSlQiHJuz4YL#2J;65ExymuXsQv(F9=>yem`Po=hscB)%6ImCOJDWCZU)Nl1-`~W%d;D5{E1Wj2Q}eu5|5JUAr{|tfetWNWav|v1UY{Bl zi_6R0sw+)*8SjfSurV~PrK3(dQC*Ha1x0#ETC~Ak-_~K$oLl?udL9xje42So`MgoZ zgU?aV$dAfL5MM=-p^LtfMMZVJEMjl45gaVmaN>JmJAiUz0rfBv+lWg|(|IBtn+Y-8##crR(J3=9Sw^ zPbvc?9w-WJJIq8{Fkb8rXz2H6o?Rl(j#z53LL)Iwsx)IUP0fmr$2YISVR0(PNa$+} zI_~abOSruhrl$)Yt}u7!%j&^F#&*yAnepC%qnC-z zS5{qGr!$xLDwT=M6;vzVW2mHc7KG|k-UygSzF{>i;+Utud(kP%?!o7tGj}hJnT1>C zRQ|Od-Zoi?dX~K$|nirppTcNG*7r03tnV!|;~P?UQE2nB5n!~5b}BLQEoINlo6X*Qtcy|0pG%7mG!d-c zem@oLa#j7Xz{jvtw``~12KJr$r2FCW$V7yYp|Rncn^23eq4D9HS~f=(mLJ{G>Zle= z)n1ZJSIPUhC`orV?|e;rQ1LO?!t#d_t)}WBYa^Fz>hScB#hu5S zzS79&q z4l}#)k&`9=rP^}pGy4b!q9Wt4CELLFn)z#zMS&dr_Ic)3@RF-Z@gJ%%(#Pl0SW9lU z*qc5)_hIsz&(Oio6l?Khzr^h?9MQgCyBJvWoxwlv6Hnys*8mU0-5fX1ikIF)KB$8# z!)W2Mu$1=XnA98dSNwlmuA6yCx&Xg{NGFY{KHjvp5SyUccli3Plz|;?@`hpG>pq^R zt1z|K4zH7{IHd-Z&=3s^!&b9=Q-e0&_B{_?)3fcW%I9Jdu~^(3|RV|Tc7wu z>pjdrXO$smN}M1R0fJ~!L(leYx5yid|E-!(%m z#GKyyb;IuMiS}XMcPWTMOy$;&0_o)3;H)=7Yw8wxUdBqJJ$J^4(KY3&EjFUoWo@F7 zJr7w|`Pd96E5|NFr?@r65bM&i=w%EQa}ICG zrfmPCD5LC{cGp96@CJR64}L8v;@2Bd{$;_ph`FH0%XU`!RFu(HcV(r@ag~Mp8v|n#Gp0tnMSX))Pk%&&Of0@NVR=~A(N_*ufD z&lQPe$igG^O<#*gJpIuoBQtYtaV2Um1@X!$CQl0S%?$gd`?ej6&#j#<8Pw3Bk6@=V>~ z4SB{Sf9^v5Ci?3N@^fA1X0E+VPJL;zRz9Gy@aDbN<1qC{?|DyaOi57I7rhe_*>Rz@ z%_u5juR8tu1HIG}dW*V$P(pj9l zVm8`qzA$c4a^mgFQ*wcAm{Z-SBpyg)W*{|AD#nE6=d7IC4Sjg>snNreaN}W{5f|fi zj>|v0E~qb=UXe)&+4*{`=)2>K#{Ayz4qIMZ`g{!+Cmy{aag4M5CO*x1L3~kV(g2~R zpnczpG{~a;Obf6CR{p*r@0h07GQhU(&msRvKo&!K%#O$C$0q^Ld8*@YTB zZME&oj!>jX9DmB0efH|Nxp6Y8YUcv_P>Mlj5ka-90s>Q#4;a-sia2lRUSmU|RC$Un zYnWCnwsDY^Ms*!!5Gv72Q7N5>r5`U-X_kzO5rKQ_7$ya5WjlMOlG)ZpB}HAcwW_j+ z&x39?#vOXeI2LGbYtz%hgP}2}Z>x;$W>+chmuvD<(&3taNUmJc-~Fg^9^6!ALpA()7;`t6-7otR|A+ph z4>`u1DVnI{_Yz4p4`b)wsISzf7d<3LtG;lf53d+w)lU-$d3gPOu0MxqPX1u0%aczI zwk0u7ZXHsMA0DI{XvuuO7@nom@o+=jhHBxblY@{C2fg;z`43GUA6X4e>m;pQw99&G zK!6X1MV)+ZlyFklxYq`=ZY)@>cxAY&_svY%bGO`}YDUu&MU%^%`8|PKv&&`G4yhSd zjOTy+(rWU2q-FSlQr0R-YK*Hk`y_H|e)>M@iw@h%JfSB_^jX&^y*o700)EO?gg+lU zRz-ZFE2biRm-@LCyF1HxXde5g!#dELP^G6HUO%K+mbjh@L_Y`@k;bre^BB(F5F4wC z%<(G9Pz}yaR*lK8d&O?~MD_6u?d?k`gGcI&_O$qhNcf38qu5+-4~>ZqFzDS}P)f^0 zg=A9*rk&Ma^2PucW+)*s_C^(%SgFP3uxtmP;+x-`Fu!cx)&Jx!BsJ_w6CAit zl14mKFHEV5dM5nv3$OXhCRXaQM?nk3e*Q0$qTjL2D&FmXPXFnO#yd_{@v@Sv$P}8* z&#xjrt9Biexo$x9MTV$_5{fNKXm9OTf@0lCp(3YI85w`jEJtM$F;U(J66Y5vtiQgp z6F$xS{!V2zMXn_T;>eM>4--`?h%jTT*=~c4$&1~&yf6(4rlYRR~))|877{eDRjje zYNESa2NJsL4xLV@4!XT2GG9-|UzqM*9@jnL8rpedIJw@EXLfL&$2I$!eAbGbVD{Fb z<*N3vx%v^ms!G()8{69p-g~|`_RlaVG{`fJTiGsr;&fA$E(KG)PV~$|`ObbNlTe@Q;7?%% z&)%-$;PO)^%eMPoCFt@M{E|jdbBtBnDAGJsO^kY|x-7b)Wp}&foyx-ko(oTBYQBzt zptSy6$JAO}#MJuHPxzj1RBlYQt_25E5*UqKj0#~+dGcZT`Bf2^p9RL(lj^n~=Y{sV znopmn^FCG9oLSh!_|iC!&6`9tc`h7P8A;gMybsl{*%)kL+` zk@@b6@r;FOW$%;Jh&=Pz9zk?l1 zdy~zsqFMEpymdd*@|jzH+EdSeuFaP>RLUz5BQD!a)jiJZfo&If_lk|YT-e!uUq7q7 z9Xz2Oz9#srrI5($tCqosQfH6Oymh6Y_9kl?cD=Jk66LRadHsk{#|&#{g7=6p7eD>7 z8(BL&Q_yrPc6^))TFT7&ADf<_jBwN9YJc$LA2BG=x$%g;aO zE#2zS?sGINb+?TOo34m&e_m6yUfyNQ??|k+J{$gA;Q80u_HfA2p!Uj4)Xe?oJ=xy9 zmwufvP%*0^{uEuKsrT&r8hTj!dahaNrHQ-<AUyfB`jl3^^2z^v z{M+Fz(|SqyK#(%MuZ4-uV4 z-L2V9^P97U$Gj%=d<*&(yb(T?{~P}>{~JvIU-10@TfY4NplfwU$B4_yz=)4wI@)ti z*Ke(}uI9!f5&7ex+IH}NI4bQ&d6BuTB{4MGt47PXVwa-W{;sBV@dgpmD$lnzsIr{l z9=j?rtxl56%F)Z#JVZo9q#vluEq!=Ji4!SUSV&rlAj?MwniII0SRl4Go5BOqNEsx= zA0}o^4RRQt1RTzXqew3h^FqdNZ7@*EIcjcFm@E?7zGlmdIq>3s|MwH&a?&5BUU%FE zUmk?_c*#1IO5*0iWvonDPf2#eR*;nVX{d7`QBJss|PqDsrJy*u8L%eUjiwbLcu@Hq$GuYK1SiXFCYdMtg) z*E!>{=T@-H=g@Xa!ufeY2=azdW^168wZSj-Gs+u$i93WWRni+rlnH zjnO`8k*k<`g3lg9^;l0Ol+7Kzt-@pN>Opx`jOrKlE8`-;Yh)D-#0L(Ia^I^YS#A^`0l=q#(c5-B4ttsvkFPZc1CO1B|mG=lqEWK#3P#~tK?c_=< zFy#BaB@8xj@ z$aAZ8!LQ(Uo3TrtMpRsLbSfwJg(gsKU#9!bi+$yacFu zdq?yr8lN-;EZ)~5xf!P_=lPbn>y1v6Fo}Y@&~EV0n9JgI_kjfADqR^-nJQG&WS7j z@h5MEXN4XLZf_aiKXYY)d1;JFopa40`I^9m279+Am8hXP=py&80!wEbwHH_1lKKvh z|6=1{4@iwslX+6mhPtlMAQPj~dy&#XQuKX$j)XC7UB$NN_b3cysTjXyX88m4b5pr@ z*xa%Ure}_*Ydc(i;VEUHq&H?t&`Nm^w+6ovYHf1?ex?%SebMl)@A-E=gRJI zzPJ1V{kW}$C)dhd(JQq#!p~(K`940^c@E9Dl)Nf`mvpk|LDJ&KO7_TecBeD!DEafx z67Sv#@=T;J3ZShl!8}aq7F00}49hrq1 zZZA@GPsCzl_~%>Q$9^zX`Q~k~=EnSRgPafX*Pc<=E!STjmy??CV>9=dS~TnW61@^S zQ6NWQ-RRiPRX!UPIAsG(P)^(yj*_5^Uvernp_`+$D@02CNHLGhRnX`=^3~M8PoybP z)9+!Q$7S-zl=aN)n6sNk4HbJgc0~9L$sLyS8}(F^=exOcXj553M9n#SZ_z%Izn)b- z@}2AUblaEZi#wAP*{-J#FgCppGdvQmvm1UecXMa#(nP~gALfPLrl!f^`3(eB&+Ml` zM75=7)9H*PHm%43eb%hJj7Lv|lM1}6-wt5bpFG?ltcs!5O&c2M__hs0$SYEZ@>itj zBPi(3wv9|#tW7R4#OZ0v29<%5AH#b-cu+ysV{19uR=A~7dKS8>^i#4;b^ zzi-1z!4#@V^z;mu3e>P^!%Pf^V$V?@#mLCXAoid9^(LFmu~OpuZ=6peu_N)E-GLA{MSf@ z%zX1;F&gn=-SX;5)`u+yOY2K_8$%*=#x~tfXdTrP>$+&Ij`X+~PFo;m(`6E! zCB;`g+hETg<2~WUCbFro70*BW_A${2*%hkKs;$9Y_XItrj~&s-!rZp!yK}Et`lVfL zAiuWGHCA>FU%pt&Yte<-I;s~g9~~!(i@M-Wb@S24ozYi)2Oq55e{1p@Wowsu=tm2A zKIJAd8&7V4VR6Um34?QDH1-w-ZLRpO$4^!g0uXy6;!dvC~& zeGNSDgsUO76=AX&V!(7Z^qteyyhluy4}LYiYgkK;KOTCJ>E%hrhxxBxluY_@2awsG zo`HRFIXLP(chvIvbb#Q6YJRIp_IVD@v-;MT9<`RJ#|Dv{qUB^p9n=5zL^U>^KjaW| zlCX%3n7*}fMr*!mY~=}Qo32z$MnBKJo1c>7P{*ngwubJC$fn;EIGMhv8jnuBtGjbeBY^Ns}@zoR;4clS&?8K9SYwy z^T$@8~5do1~E>UkNd34m;VV?Zb4W zjf_YYHF35MdhJpB+a{uBe2K4u$*d^N%=nC{E`$oXIRuzUn&7SzzH(S)>8rk5Iv~BI z+R4;)zVlheU>e3MRLQU~46_=U$i({jOOzn8tD`?u;D^MAZu4;#-tC!j1}n-`Q^58! zrB#-Fun9@XAs`daQs_mEYCiLOda+=!My)04A~O>|r<;NOMxrOOVEk{it_h!bL38#X z8f*C@RULLk4v@tH&jDG1#M;VH?6{|7HmylZoD%^bxct%?mYB>)yskIOhD<=BR@`-Ge$axGG^Ea zFqZmZUXv!~xgQL;AWPMQ@S#iACm4UxJkzL0=xe4VgOOL*qa1CEQ|2UjGmLSWlKenQ zTrRFNSaUxUQFUL7<5&SDhjFF?N1(I4jQ-#eYyAky_5=3K90p{}UeiZ;W$9VGp1C}k zpYrJy>ZQ@$vptl?eL8*fV@zoghW!E49>bA^rK*tc#^Po4Ss}w^ZDp7nq(rWRiE|Y% zzF?^CY>TRb3y0i?riqVhfR!Kl2&2gjf>s|=a~p>8;LVGu(X@ygbG=)H(?m1^R1E& zu@t>)iZGdcEtweV&f2~kFzW8A^}_VJ81hSq2=iEKs6MT<|QEZwtL$k)oJQ zPRUVgldySfin5G0Rg81|JvE7=;!KY?G@fd~#vd3x3bXN~b-;Q{p^34e!0M)RagZ8& z?^nuIr=*(R#@fia)r99!l6FKIW5ew`>w*nuhXl+>ln|+8dgAhI;``t z7iig-7{POc3XLZoF=xgu`xkjGC^{Zye5%A}m2FyWXbK~ZvMU@!Ci32Uku51H8F zRGlYou-Lb~C#fzl8Sx5Vsz|o~igr}LoA6!tuEpVG>K-^HM~~HO8RBGj>)i9Qv=@8N zDqCB45n|VXCO&4eQOwPp0JKt_7LXLge~c71DP)m&caK<-SKD2w)2$odS$wP1(h=`Kk4W1xXc}zs=;dDaT3czkd7;+KxKo=I z@(m5430V{Vwb;7%YjxOtm%XrT&&~JOTHXTh?s^At%j_rDx|^*}R>`+--%sUQkTcP_ z+4Rk@_G*CW9wvHbCq%K>mu0VB{pkmF+(He?PDL|>jK+wSkH&~gp`d6VTjlac>sQi< zq2>}h`~r{}i3CeN7M?;Lg~Neq>D zA2qQI6_dHy(A{IgT&k#~I*#D2rxCuuSf|u`#)Z9+yQs19u|- z@TVE}x*xkv5!r(wpL|v5($gDa_@*BmK$hq=C>5|(Ozn()6Lgm%c4?ejIEc13xR)Aa z4Wr!I8Doy+J|~m;eQ@=j6MD?w zf>q?U=OFP*{W1^6%&LR{^O>|*ZO#oYi6LXVB9a$BZ1taCIT`t}j7wihN;W6wV@0-l zZxV5bPWy99i=+C+F>@S^S|$gCV-@E)vSz~gLN7KCr;13S9#Fy;wiTbdkUymsn2eCP zUD@5ILTs!Hk8S0{Jf#sZaAR1fgo&Pv=qjr`cfcEV>7^=zPUd2`csL&i%=KaxMPs5@ zhf1wD(^(^NNynFgXB2!h!P)6|5FJegBmwt=P!@ zSN-KbkM&9(tIN|8>7^YwuRW!OjwsFbD2mbwb=-TJbY}3(<0_0(ltaNQ%B|CRp3#Sm zVw{{BRf@|T;*-9dJrR{Kdf`~J_NhJY`GIR9MhzV%qi5)~jZfW%zrVZbGv{JJf4$Sz z^NScF;zxflHIb%p;DMYHL8Y4PG5hSeX6MV|baFV@jl)QEJhDONA0 zA(qzrZeZE$PYGYKcK>|I4MF;3lO$t1pTw(^la0Ch@+njG#()W_c+yb^WmSVap^5&I z&uE54kJDb2q_{I^wmp_m^@^3B*&^+Vb~i&T-B|vhfge$=Ts1c)ONKjZX1?umJg1<5 zyT%>L3*ZYe=IFZMj%@QYmFid9mu9Y$kDZ?|$xR)1WbqlPYUwQ4wRE+w^y&9GcrGSj zzJx>U^t#o@Yc^Z7qQ3@o{Q9)W-}hY8Us;RDSF)-in=NZP^Z6rdVvJLS_=3Ol+S2ta z^}oDtUKn+~W`cRm^99q|a_DE2=&jc8gQt_|nZ6tEEEsH7lkbT?iJV6A+e}U;f6{8B z;M8tlJ$l@9^}t#(H^zl;j>9@If~CE~$Ufpaq5$e%7QB!u9=z;`C_5=~e=jBP1M6Vk z4=<#W(pJgNxPS#xL7~1s;mOrU6`BLVd@>2`1%_!O$L=#cqg-C5?tacE1}*Fnx9V7{ z;W7g;3d-PN5e(66CTRkSNHbn%xx6QnAm$OqA?qmNR+PzWp|b4dEMoLsq^IvPa-4p@*7hDuKj zn$tu3gF6&{mx@Hm{+X}Nx(+H**X>+bRJ5Sd42z>+CQDo;RdBMeCR*^}t}1vH;AK+1 z7o(QQGN}2v${{((D)9+(bPFlQeqg3==*!3ab z7*2n$U^SgEIISdo$m-lRPR|3`uc;(4!jW#Clp%Dy^HsfBA=ND-F{cj{hMUy<{BC^V z%HHm;T{pUv4*yVg-^iqgvcwRm{6Ud(F zZKgK3`#pz5lOCy1$gXr_;=AQeo`Txy7;~A50&nWK);7}D>xWbMG6g(X(p>W#Ix(Z} zowgp7N-QbLEe%I8-+Lc$$D#WkcD$G-YioLvn|hr@vo@ghoN-5(H{)f5Y3+OV^l!P0 zbdh8Zam;q})A?D3x%3yg1g!GgB2}K1G2aY}&KiyWRX=2=t`r$sxXTvhwqA|coczfB zwVfZOS=oZ1q}#m9zcwn9(Bp6*EAtfQYt9+#`*%JZiOkiKnXx#9tZ4Q6aCfS%K_oL* zG`dVOQl{)xW0t|@xf50_o4=x8&73rQn^onnS##p%XUndzU7L-kY?gUpcf`XSA|2x* zbpz4wwQFj4d>rp2G6yrn-XM;<8XX>b^FTWJ)i$!Un8%-QYOHq221tnRewEWumzu=H z$jPg(anwu-%udmLQh2Nr)CHwT9SKTwGWPY$4(ZP!ZtuU-*8hNcXM4=IIq@QD@Il!< z*n7=4B{myX9h|nUuE{xeH;zUfpjVb7>pW$7F50%*q_A9YG5K+v{qpntpKK4=dd0__ zUph>>^4qRko21OgP&mb5_~mJjADr||!R#m*`nzSmXWQkdT{)$#eE<9nnJX!$RdfUC zEBMqh@@u@#B5!QE*)bUnqiT+3l^yNZ|GeU;t;30Mgne+7|M2M2F)wB+w(oVL&qSTe zzV2FG)qN(!=e+P@*G0N7HB;!t-3FH*g2uykGhU6)9q&3Fw0*CaM^!~{)cvH~Ms{Kz zlVsiY-cV9aPcqY!ILrv@)5s7vle=x>OJh*^Rww61^Kf^lck{Mw0@*L;^0X~2Y0Y8k z_O#~?!9w4J{H#Ad4EuF&d~1DLTOV`tT(pf!I3deiKq3I2mkC=6ZVXIvBcoei~Nkf}A2ChG$2Z%B9Yu zQ;3PB%HJ8G?~s80oC#VOdw=sHzR$RX@7qk#FR^q#bM#qk-+mcwhwWu8&=-k`rOTr% z(Wcmb+6sLM+n=;X>tg$O8~pveExy;ZM{{E7)(+?rY|r6{y_YGMb3)(2_La`q_hiZ` zT+#N}-rWuDgzZP%(K^^(%oC44eGT7RdSUs;TMS3#$CJ(0;XXf2?Yb&uor=Mf$`Xjt`Ndo z+o6OD!Ep2m@Ca6JAAwfET|A4#y$&ls5RJpY$|YiOB4Fib?x8htnD|%%<#`;MoCN!N z`F#L}e9Y1G?X)kApBI412IBorLC1j72j;7$fvCQWz2rWh9|lh~*%6b2KNoM?gyn z=%52ADLxpadLPaAFP0bv@mZr;q58Cccz;twgMx4#eE{;$Kr=!I($N}Fge97u1TF>L zb^~hQ$am7wS~xN|vmB%3Wrh~hz$1!BXiXdya!^InKsA@pRCsv!BLWBpeuUuPFvD{hOhb!8OqpmIS{ZCr0+tf0(``#MC!|?nM*}&Tpl^_aKNtc<4+in? z+Ov|u!6h7$euy@N=p)b+ETDYhN*dMi6Rs}TY+SB+Vhg021JF0=F|ZnI9Auh~=F@^9 zsE%tpSbOrB!lk5e0^w59gdVQ|Tnblb`QTD=1Uih+!*M+fg~ORcqZw#!XtV~+O)L#{ zy+(6Eud>jGAhKK_v_1mItyIP^C;4)A{H<}L{1qxy*NInP6djLSBA&qAQ z4*?!H$1moiY0K9N&*03zIn@oLgS#>Lnez@*?%2Q~&+Luvlt0%5(4MZlnpXXpzM_e(S%xRsWI5Cw!6 zNWkXRxd3kp3c6PSP|F0A93)k=4`o|~LrKd*OGNtnOL4Et$Utf@(J-vY8!zz`X(;6-0C<$)Z{ZMY2_A5^1W$oMZY2PqQI5Nnm4apg z;4f)iO*kuMP|>faR*dW96V%rFdo=c=@uj5N8ryLAQssI4DY8(K>mbnrS&?fLiK`xcR zeJ5*h?t{re(*yt?;0eYYOm_d6gFy{nKn(nZ<GA*VWkKGA^ZjD)7@ z@XGKIWFa86dH`U5jRPQMp_+O$?2ow(|0i|9kTMYKD*&D&fDusaD?GPWpbZ$DphV7M z0k7ZSZowIhZ37_FlnJi^*0BkXMM3m$ z@XRy_?2!=q4FIS%V*#LwKobN2S0h$FTuKH~X$0!9w%~6OP*o$I!x8}ihnSlHU=|OM zmWE=Q@POtf+$&&OPh$bETJg6q$hsL1NNL7Xe2nN2+TQmq9sn4-@V79i>^&YZM*zq{^ql}OMF60nh|WKy zfoX;<^+0v7)|Sst*7V+l>dHAXpb3;Dl!nM?x`O0ASmL z1Au8q^$`zH!}CPQK-M1tK%o~8KtNvrV1Lp@fRzW{?+7@A>IPW)J{%S)4V84`na$$m zBc&kP9srmi0FY2v4<7Ie$OoZ9?jJaSaaTErJ9jULd(|f#Pm~OFx%WTv3C;)8wxSoX zkLkxTL&5jO9Wdjs#K#?tmk#D|R38ZI)z8?lB0y24_=HzR1;_%*p!Sa&;0KU>C839( z!14__fPX~}8V0ZY;S5ldaj`*wS&iri>}dwE*%u*&+^-CnP5)%yX`n1tJQ!7mLdlY0?hvWiU89L zzr;fTb6~@OCF)<6DCos7p5+wKgA6c0ib5B#i#(}1u)r=KMYF-B2*=^L)hl6zEsdk` z!DR^dGK3Yi3~s3p=&14^qv(8Mh^!h-hXIS-{Y4ESi$!7AXJ9!@Sfc;0^$gSEO2rX81vgT2;6Z0Z9e?BY=j)t0bYcVQ)qf&te5aMf?wKVkD34V zCH%KCpk(k&0U4p-4H5Y7`3-(T_2(rQ_M=Kod(oNqIHN3)Y+D}p$( z3jaHf5cm!C?>CVDs)LZ0f!==y>L8~~``Pzt!F!JT^G z#euBs23~*$r_pp!(lj_fSf2*A{1y!MNDbf}5?L8&2+Qa644Q%K-_eMW{c8+?m22Y+ zS_p&7qXvA^eE2M8z$XK)aQTf-mJdHc4EW^071j=L5Cg7oG3SGWEBsy^0j_W%;zNQf zd=^K6E1X0=;1GlyK5`R7BFAh{6 z1a9;KFc1gFivzU?0mqAz0pf6j6##%Z@N03bKS0_*;D#!=1mfVh(ak3d#K8$p1mX~Q zak9WT1YVjfkcOK(81Nnthro*i!9XDJ;y_J7An?|Ka3BzPaUgjhaKjVC1c<{=CO!}m z1OhJ(gam=aivux1;6@+70&z&ZFF{lg_+KaTfv6xb_{qfw!h!%Nidd6CSP)3OI1m*C z{^X4hL@YN*DY_7o5rMJHi5M0B{6{m%X1X3&>z}VfENY2FGZCjJJCq z8JvRwGTzNNGKO$ICXJ=z$IgB@RwiMwvY(8T`5#qKI5OTP`_L#kEE9Z`_mg2*vKrp; z`{{5j9Up|>WN;b;$b|LMell2=&tu()J-Gsazb%GIVU+>{|4;vbGb${3pCfR70LMmH z^4~gv^Cm3$zdB)^j9asTvAjS0)`|Y|2;ZjVEYQlI5UOz!)38{ z5)$b?^T9%TYylT4S*&SO(W#!eQ+4oG(x`KPsUn?TY~%%Zx}X$gfzY%jWv^y(tne$z+hNA3Hkju9R|nR zNyzp4$yhrHd4E3{YbT)w>?gyab4xfU!?BhT%E3MW0&5weH0&p1EhChP{ba0Vgp#qJ zjJ1qVJ@%8ahT$s7pH4<%O(2w&eQ+dJCZWXaCu2iJC^!4bIGO*MgD9*$gfjFSeFcWX zdXrF-e$!#NWJIV>`^i{u5^B|cGS(nM-P%t^K@H1TCxas_Ea2~12hO^%xD?hhLY3P`#$^#g#oJHD8iuQWe>fRrbu9hw>;jj@T1F^~`?+8(Bb3PfWbB|J zl*@f&Toxge&fnxKAg^NK|FKgB8$m)z{SC*SmjUwM5yYN?0rKD31*ASmdKKqnS*&G* zs=JS!EY>nY1>R4_T1KeG`^i|#2$gvs8CO;DReE0v1L+2f#v1mgljX3M;Y#@a1OO5U zmi!;fa9ITZWf z-zpq`CpJp{rp7*e^0c&{NsMs$70hMo|`AEQF z=I1T68i^DV;@U=YkRnjXa^yC8N(@|qkL~16%!vn_SRtLGj%AeK8P>zf%24GD_?WqP zz=;KmDpwYE6eWR7=fDOX{K+j>d9JBhpXT#HXjl{(|>D$#LaPn zojNuycGv8s!S)RWKEA5iI`U#*|~?w>DtzR_W!CI&Qi|BB%3c7dDq@rn@6h>Sp>dO zwWz>cJhgV4w{HCqkrQ#i*jWXQ^+!kiNr@JS1Ae8r3>^>KOWQj@bm_zgYOf!otiNt=v=HYP5asz7JFm3nEM}>^CHj7ZsK<4% z>}KQ7xcP%bJro$CQ-jy%RX(hd?Oh;h+#qWG-amgSdEC9KU9s0$XE9#jfJXez@E;$-FU|`CWz?TaiI$&?2F%O+H`-l z`!@ba$GofBJ(wEcy11wJ(Vb|Us*?JiqIRcloyHZ0@85Xi>2j`;EGuu{o_pMV_+0_C z#xwjy_S?d6y+55RhNs@sn)aJ(4;& zkL))8fGiaP78$tsUP-x10Hf*eWN_TFAToYU?-Xz%KAsCfjcJl1-?k8?etnQVDK+(H z?U1oUt&WM}K%Gzr9aRHDeftC5MD6m) zF5WlwQA3x^46Tmc%;>qa9aVht^XHt!y>ImxG9vDLTP^{1qI;zNh30}E-W)G=q&~VC zd;P2h3bOifDZsb?sktG0fbZO;Z^h5(PFtw_xXUgc-0_0NB>*GMe!KPsBmB+fe)2&} z#19h6Ts~SOeag}gB#ili9WUtCJs+6U2NU&Pb&j#w*>Fj(nxtPtADeqbqwLk{6?p-7gv4{=#Kc&vyKbul3zhYF2gLGam}O zGg?cK2{9ZR_f}5Ll!Z7L&4-3A!nq-xq{BE zUU_!9 zbd$==%!-Wc$V^7amX*Clc4nCwjo-PRr|0W_?(g~M@w}e*=bZC-pL5>pbIbGMgOps3lEH)!j>;jysz%8Pjf}NwXV#>{3g0wTY%G^$t&3 zm=TiZsA@nm#zIHH6w6Z1lNN5I1M?f8IFu&Ry*hO|JRB~LT8d!s-<-+M_Hex>x5UcM z!m=hn%f`~3Aj_cbSoSL7EQ8jH=EGmEf@X8!=amPTWsgxxV|~vu49q@Cj!|e~{QA6{ zhuqEXs^&oBgu8^Y%4eUM z@icS})p_tVaJo?opqKK}e8R&|yHPhVgvrX+OwcSF-4y@g*mMMq8cpVm78c-<5&y{f z*s*DKs{4++QZm-^y#D#qS(wD99m_HXCr(|ZetG11{3r6dmWgMvWfepw(Q^Ws+TQQh zDU&}<1joD*qPVSh{xnn21v0iKUt`)ki1e?mX{HS*VV4#v7AtchRE33RlmR0`Sm<3l zd6kLdne>w_j9xlj(GAbzom34tEfaV{5G`#R@eg{MI)i4Cu$ToV_~61AGokC%X_ThQl?{?w{~!kqXN@67i`I{k14F76JF+Z)XR zRd>%B(tGi9VD!45hND9S-`BBq#D-tDig@p3@Pbd9=qSy{&=`+PN4aVY}7ZK_Ax=Sbu z9XvA>I;f_AMzC3HHSQ*h_8~&)g)vthBln)nh!HsrGTzl!Ta6a#FO1=i7JBzJ=NqHI z^`)+<@ZOe_Q}?EX#i^Eqgr43~6S#C&JK!f(K+Dx^hG^E}u17OsU!OQOWz3b6CkA&7 z3Kh1G2ukff(hp=m)qPV*(E4W**((X&`q_jR_A%;GXE5u1*s-&+bwqKd(ZUUBJ54iT zy{Q4Mj2Ar~9^di}=XfTN_OpflnSf=ycyQ+Av&QGQ$|ltmql@HF&Oyc!Ur`^-k{D+K zgpL|C|NfG6?Pq|u?z+$+1MS?>o}}WXV>AX$c_(kl0->WbT`}Eyxrog0K%ui%m%~H8 zq8=yHyfC5Rp~vQ;--xuUKRdcv+-J$FoGhRGnU4xxek-rg)I_}NFeT|4X$>X4&QXfwv<1(c+tcJeDUTphvSLHX zhU)Xrd-*5)={+g^l3o5vNW+UH(_1RHgN8>`)QdUJvhiVSf~F@`;xwVHa zcG`#t-?{dVm*e!GnM*FnA?F#oi9^>@I|cds5t7tzl}?-f*kV;cc7@-&tE!&eZh6;e zCzIQBGrIgUFZRLWjfv)CCH*~4)!!qUe{>z2M@^rnwO5ZJ`bkd1I(tF5WkGwqfixhD+=_%2B&VlT}%>fa&vUT0z@vT7Q@ zP!Eui)T&hX2?wasjz<(dQ^`VOi16OrT9+UyV9PCCS;%8$>QV_kJZiuoTEAZLF>KEpHcTcU0vPWQK`K3r;OM5sa_A) zO>A9C%nL8RM!t=8ylMJ-BIH4|wu#)OMVsr(tq;E$>$~5VE){p%d5IAe8W=6RKVyUu z5*ipQE;P3b92hBlm*S-!(bV(y&}WNc>^(%sqbN}j*@uW4yGxN)cv?1FXB<>}Kn)YtnJewpao5Axe*MIc10R1hf32 zjNZvf6(hS}H>R=tYV7j?Q<=H%s*=Z^wz%4N#O~6bAANUZ{JZ%^^<~$h=Jf30Kdr{U zw!S1|cQ(a-TwAc^t8CbIahBse$;bLVdm~!&@CZsoC>b{1etVwzq}pS%G+yPa)z&33 z&pck5C{#B$k=>#rn&!GN@Ksoz=#Lr-{0vmGH%obt4!iFptu9++$ zsyP!+uTXniy!I&eFe}l?ni%uWMI}MnAm^atYJ*Rem58;8^yTGgr+6Mx(ksSvkrX`* z97dd?ln<5Hv6MY4a}6!}mD<1(lP`L!fxnX}eB|5Z75PM_EBx0-U)~7#1bDE>$rdBN zr4VnEZksA9Y`7~CXKa7Ay5P5{d`)MDJD0Q3YAa^PW~VpqKKA^yGd~6~GZ31#>KruA zGOR)xabod}w^QB+Zj)7AQNNvaH8gQE|Ezl}Nq^kuG~&4I(nb!}p?vA9F_>mJb6sTn zc|-BWek{Y>WZL#&PTDJeYBMHAh>3(o?j$El)5c4k%%_yU@z`zqi{*c+0S4~)HtC?L zzJkRrx2&7C71mXf$JB02-|gj6?p6--Ixl>-H64vIdh_i?ZbR4f2laDL{-}vPA~rkR zl|(O&P0=Ehd7%R^0etP_o=jtG&GglAOTWn(^H4mgrwYcjc_#UxLgrVIOALHJL% z^iEah#SW)u?%Le^X&g^_?^kN;9OrtyLBg8ap7_)DXgGGk&1r`z{`C#Yl#5i4vgvXAL>NE;i8;BI8q%AAyCkCcj=FAHb}If`W5KM}A0 z#5}IdRuXmIWHjcyiMr+nub>sty2VKWa{=@-?;>&M*DxB2H^oPFw0Se1F5h90FSa=D zbn4LEszJYmGA4KaFDG}-yDw#U7$um}mH)1jJ7vx=bO_7I&{d>KD#j~J8S`>F-*7GI zP+#hDogVpdKRVOLzc^`?$aLO_@F^4Z6N%F`kRAQhFsf#@;r~g=tn;y|pr3_io8GG` zrR661ySmSN^l}ad2p&nRr?62(f}h87QNdzEhE-lRstE9oT=?Gk0=_3L7`<{!eaxs3 z@#uG!xU*#fb||1~{B2cHrp52w-QD6Nubno+qgh-Q)kvkVu?cU+cdK{3%}Ykb`Q5W6 z#HLx}%*6^`eZY)Kyz^WcJ!(gsb^DHTG80#8qnK@$`NpZZ`x<^dMV)mO@?6|j}uG6*C&6zTF0b_N%;b%@)AY? zrf|mc#5-fpGfxE;$;xoH*fdxq)p4mEG zl9>Opohj44{|SrXdc$Wsr@i6yhzt)0?1P@MrXS9pyYW{p%7>8K3dWX{mHgNpQ!#0l z_3S^T&w>?ACc3-^p7OwMy=N zlM?~66Fa;YHB-&)%twZGKlJu;bO`f3Jx*jA6YN8NnNhE- z$_G$vW(*QS@{vrB?V>r$_BfV<*F)4s=g%L`Gp{mb0uH-y3De5a3TkqTH~Ab_ z>bu@vFNGx|K7ECjb(V(S?Ov|rW6Fn0D+LyZE+6}1VRoi#HOo=r#7X{)Mw6ovc{f!3 zokDx97wtYZzxKEqd%c%&#AkZBCEdcXDdDJR!sl_A<7D5 zG}-V=YHQ$|!$=W_oVw@fYt806Yg%Rj=k9he`+CdEYZ_gh(zz3M)rdvdq`G*B za_G4C?(u?b@Ah}|8C2$d6XsWA%Dn9;(S`n&wcFb*Vk?OQUejqW&5eJl&8;DC`DPhN zM<537^X*Jw!X|@Q~GQ*?X&81U^46#RRG%aY38?^8G=gl?*I@D#a z-|s){+jp^vLSbe$B+9+6mRTeAv$gEUg*SZT^xPZ5WJ!lkRF}|?l@BL9Hd%=uCU-gV zD($LzexuD(BC6EQ3o^zb{tth8@DSCIX#M*2HZ5H-M*WqF(x~p`tSP6Xfdv)S`sa?w zu{IsHU0#$sgpI%WZdzET-$qToxWSsnyk(RTiPVg5AZx2G(%55lTR~y({hnJXe*kD9 z#2ik!J3Ea0mUZ*8ud$nRYa6f3d}}kLce!=2@O8KH`?-$sUR_#S4pp8D!#?D8al+~Y zUZ%fRkAxLw{P@8!-aT3|bMMdZj8<-@;JiPzF6tS9Otx5?<)JY;N@v?|w?Ds4Iw{me zj>&#aah5wQxMtyX@sU@y8L~v2y%@|Y<;d+wU`(3q5aPSmt_I0`ZUScEZY_-kHcoQI zJqj$sB;1@;SM~K?Ol#C5IH^lTS&z#{sJuwywNMEvBoTbQ8ew*hUZICnc!KxGicKPR zvCPi!&w@Pm{rme@?yUJ&v{XlYRlZ(7?0CxkmDk9e>(UJ!-3muf&mSvQ$49S!@Vei# z%YUpr(d}#O8@u;;BV#eWBcDst^7{?hFKRfiED1f^GLmu|3r`#X?utb%_&=B z+zK37xgb}yC&x2#_PggAzbRw3ks9R*`NmtMBbF1Ay|fn_Oi%R5e{vJ1aqgnqy!R@2 z`iAe5&T$UFoOAaZ~B{%rkP|++#0Q78FkqCAnmWcvF&{8~h?tU4=_p-x=BU)8Fw-pX-x=Ru**) zjn=cheTDTt z{^-T=?!q+6ergdmeaXV4?6j=hr>e0ed3`x4`D7x^=Dpueom8V9)S_YMiJ3-l3Lcm9 zlRux@mjvz;TfBDk7@BO3({GwZ{QL##S1k2u(rlJWuXLLHQq9#v(MQHXOqmO1~G; zT*zfv5@z?<_Vr!a{Z-b*CiZ70!S_K)ZTw=}>XJ&;-p}=Bjz1ewPrD*IDv|GW-KW1k zEk~bSQJ<_HjS|Ed->LW!)rVxu+Yr48``|orYdv62gIb!cS!_d>@!GZ%OUY=_!uELL z*WtCv#BW|$KD4`ieoABLcvq$K0LVtLmFu3ym2MdA=1H%_KfA#NdEY>ce4 z_UPfh$^bf=hoaMHA^wV}kI1++r)P)4Ce=1xbv`All_g2nB!V|sQ0K>AvFE!LLBdUv z)h-X?gs1)r4HxE27|9|f=323$q^_c*#pr$HPLRd2`!r}CB|;XRzC{<9bSi)$f^)(k z`w;nILjyLW?WF77Nd6wS1X*+&WKoM(D8Wr-wa>-$*D14|ivL)lLX3RX_bzv(d48T2Gqv zG&lQz+7MRVl7)tdQGSyFHpom3FNwkA9u5kPBJB-zY_!iUIFwP=`jKV&K3iB_R^S)( z#^;p0&!fkeMrFQ*T|66de_ejWZGp~qw}!o@?`fH-|9T?@D=zX_!^+wuS#!}~qw~2;*l$z?UQR{@ zWO$VtoHf%wN2PY=NE=1w3A)6amW|_+0@*>It_XN9V7{2qQl3a3%)N49Q>m3-Q9&hw zUJ!=4x?u8Sn* zrm3n|M`JymJdz6Zpu^nN90_?ZGl+W7^9G4$_U(l7V+B9rF z#(sA9N8;k%*Mcg~-wCT!Bi84oX)fH`5OhBxS(Lx!WW)04(F^IB2!@zQIPU|&qG|Gc z;}zeG@7+mO-b0Nu*S(MH6)Ij)EaHn)(_QBOEkwqD$kBGvSFg+|AUIL=gzR(YL{nc{ z7#vpZ|M*EFHbtd_pME43#<9f{aL?8^bX1K_p4ieU_}7&ubBySI9DYpfAYf2`|{T?gM+{mduhJg0;WSfh@3xngp)#1uqct6wgU0(2D0 z57%gkCn*HY!X|A#mX>e_nn_5*L&D(Ux+9^%6*nv?iLpw8ey>Fb4z;pWs}8cS{M0Fp z$Ii5I=5%ert`F$OqI=J0``=oKcd(IjT~tEroZ`o0d%3M+$Aop=pGvM7Ii53Z877LoW%A%sio)Yp!ZUGe zW)<3d-Wfv0m2YguxC8V$4cq72$t*=K|57ef>P-^&B`N+$qVuLPB0a}6KJE1lp{Z;Z zOs9b&>v*Zt%rhy!?}yHz3lf7hPSunUKPn;aBy~PTDU4N}`_$_`^SU;mgEwO5(wtSF zia+by8*b%3NP}6SGlrN>(rD4F_jxXBvOkTaY3%Qv3!8G)Z%@CWuHeBO>Fmefca0={ zZ8oco-ZL>NxFCc>FOy}$h9-7Z)iyK=_TXqJ=hapP$ztX+$WAR8diiH|sl?i0&(ww# z@37jKGz&6erDWeAx8IBG{kEC==qh}C$$8iy`|LYWN@JyO?AwcHXPFoz8TDSi3!ibz z;hWQ8=l=6DnDj~4zw=vIc#4R(fFUwFx&tF~7CLjJRY<)cY6Hh~l}=*$2bn;CSMOH>&6(@t#$^(V3h z!x<{Z({fHQ`#je&x*~)$ZvuPTK;`J2cuGLdNB6~u4iElU>a}Ufo58k~?y_@qhS>L2K zo-WYW`>J7s;4L~hyDK7_E$AG14rx)5qmv{h#^;8c_)D$YN)wUR5b|1TPy5SGpS`=! zo+@Z=)OuO`RJ9FpIJAASAXM^E;?P%`n7j(_Rd|ZCOvfs=Yy4jJ==8YUs7=9xP?u%!~c*n0wOmi8Xpl0M6I?Fy+G_upudM>+tJ0hYDvHdE(JNnKoTZ<3AQ& ze*WxMRqpV?s_*A~cQ9MD=9qa%a)nf5BK+oLv})~9q0BsP}s>5 z=ld(a`K3b6xg@Oz&ir~WeQvLzcj!4Zf5%EZ;~<@~LHIiOw`7-yXA+ zY;YEp3Ri466P(_)vfeZ%-K|?T8*Hge{&jV3L8dvPKRkTz!-vU_uh)t+{!r${-+LM? zW&0khKHjw~>x#8*u6Mg6F@07ea?3u>bK8~g$P51Q({gFnrZj$|kC9`NKpJaIXKC~LOMDEWBlUaf+0|Iqr)Yu7JYvJ0tO{wQ2GYEPt`V{sQnmcLq- z(8}%-nSCwFW<}Ri6CH8Lw}EAmW!{EknYuV=^#1g0SX6yGmT4-YAH_U!hzht?z6D8?4(Zc4@}rg4?Is48Qy=C|GJ))W;NKRDg`JsXL6Hmm0) z+>IRVuF5GWefwZ0?5J0Uo6Cj^=_3-N30-L#>3ff_kA9VhS9XUFG;crq?qp<7t=5-7 zV#Z2E*Z13sMG(vDO{$jIdpIZ1Q9!1ymufv!MD#N88mB#rrffs}i5df!NJmWJ!qvh@ z!E&ow!QbcjiE2_JzFp;Kqc|2vOyc|bc{Y8Gk4!8x?af=lnb+!AN0+-!FOP1?Zd|K;+>APzl|!)1ccC4KU3y7jbGWnAZ*u-h4m{1a=LMKWO`2|YeZ6xka16+}n$jymak0ri zj{0?6YkkK;d;NFT{ppL%lYv)!**|B(lj(eVemcQ|e$Oq6hG5UR>shO@OO?J9o5a?N z#jWv)qGeG77B5f6IKEfE_wjb(b{=0zc~otld(iT`$781Sk zUfP%%L?xOhb~Wqvwtss~t~bgsC+T3L9(&_r&j90}?aBJYgw@?=nIjW$mP(qp)wJJb zeB=1XYTGS*2F|Tw70cQ=ZXKD3Nehh&Z8oNBnr7joow=5&_935{S4KO~rAX#vRIl@) zMZc*Qjw+`wL?vNkr+vxTo-5G5zEb+i@>-;&dRKb>lGyiBHrEtl(vE@MYZnbT85shl zZ;m|nuV%aR($D3!cj|2tP=D&Z1ZXdYbh@_VHDriVU zvX2c;^~$nJ`sD+^XRNp>M_6k1&&<%c)zmWE_}7J zdy2nq`b%HhjdHkUKQzp=So-HB?)^Dz@*GF*d)(ehW4(ULh)qNHy70=2#Sc4W1%eLl z*$wZjGP4HhmIkq-edV5(KAqU98k5_d_BIBvPLzj7L%qY2Q}Ko(m!@o9PAb~gQnFhy z0?Tk?gS(V7NRsEqj{QUV+Z`+Nj7h##F7+m8+O(_O16y- zAiK+)AdUL2sueFtWw;xFN%Hdx9c6g+n)YhHqOi|XXO$%E>#*hvCMvU8Dogq~FW%nQ z<qI=x%w#rAQR*1}sf6PbND!uydB)+`P z?B(J={Fi+)E-o78Va-|_JNi#<(7m=ot<(&9HW#wc#6F<8#s`pM)gW-=GGR3J5 zW5bkXw@pmD`>lE1wE1B{a*0kC0JWQu3?u(qYe61uB~(S)aWzS7%n}ZKYlj zPC0z~QIRczLR;IQw2d$I$4rK@3l;PF%0ecywg_ujtXm?b?}&>NOEmI!(Y*k#rlaLA zbaG@Ov=_S#+pNkSXqk76DK}Vpot-Nda}X{pd)CM1usn?YUhkb-M$z%@{YrCL>gSln zRnLVB8pm=gtyB4E59^IYZ+!Z&-ff+W{Z&7iTV^ZgqVYSdB5OJ0#Jj}McZu;d3D%BW zOye51ck7q^%o3w%y$h@5np@4TQdr*?WmaxeHn+j*7}Ezv7EN0@uvqg+X`#vKNg2hj zrQK$4f@{=)d!)hxhE|<(bOOA6mD_17Pp?vHuOlU5dib4sbSg7sugYh&*VbERnhgu; zV{#@Ib`N1rHFG79@nX2qQCk^Jx~t1;+x;#VF&+GKIprzI3s1>2IH+8xeH~WDJKguv zaQd#au&2-c?YOc`dZg>y*@dbf?dlo*&xvO}XU>vfpK$weUFMcMenHdVc(Ae=`Av$v zcdmomHS!OE^P^EbtnSFmewJ-WC&%&ePJ3%u@<5Bp)Y^+`gpz!;)aw^u?)MZAO zV!(d9Cm;Lk$?4C_zRxQ!vgc1sYBnA6{xsy~nv-L)z40_aUaNZeX7}*|vF)WFE2S%} zZerzA>la7fZAHP>>yA9+NSdn-sg+ruqyQ0J$KqRwKi;0peQL!qvAjW<)hJ;h>AJ+7-$S4{msoS}+!m%nPtIc8|=SKDkH>f+uzuUC4f@AIM{n<9clH8rDXP{BA~qDticf!H?3kUyO%U@%Aw9y%x!s9iFS~4 zV##~6jc4h@Fp63!kJR<)cR@ueVG5p%@nEDtYbf~rozE3t<}#h4q`}9q0>7m~g*WGm z@0@?46~bnd<#g@LEA0H>b?+t1Jq7hR4Pis^>r|4*ILenh9q;aOS^ikba6{Vaop@6~ zCX_bDsBU;Axg*jgZ(LHh@2&jG*icVp$p_(`ziMGZYi?9Xz{$T;88+x>gBWCfP1lNOZDYIY?7mr&fn81EAxj) z?y+Je*|8Ryib3OXR>Km^K)IfS?CD`IqG@br;Frg(GW7Fg8SUZGtvT(^JOW?8&?)p$ zwLNE*Cef+ZrlKJgkgvD%c|O!s^HzFYduS@H28C5>scvORjZWhTy7%0prBv9f`MZ3! zO32xJZ%6|trldta3s_%6q~Fb4uur^wxRCOkq0Gz8s`X{-ccSm@ly`QP&3`4@0rQry zXwaX(v(e%oxB7C=ei4)CSTI*4KWgehOj$Z{Jdhe~i}vVCNfA(=X^wAu2Y#bxq^+Cp zTBn13SiwwW{*z}L@lb78NV)U=`E@p~c=EQ<-;dj5hkNI(`)U}{rDJL}8*7R+&WZ&d z>iAPH&{R1Vv*h?uB2P;6Z1arJ1t;d>v~Sn)-;oe${8nEhzCuUwoU?vgKzL8)3z0AK z`o$hyhx*W#{IsHKhSlLV=XdRC2Kq;=eLlTsL15(+)6SpX%*5O~^rGcW28^`mp44g0 zOvbUL*~jS7W*>Y{iw|TU;cj_pQe~Lf@g)a8%+*rJRS? zr>%y9`1lDKHiJ?nl{N*>`YMhK=aQIeLUQ!WhwJWzTW~K4-}=%&>M`f+bk&r{d8-Mv?;y21O} z`kbOl!d61_zpZeZuMbqb^35bhmBC1B0q-< zxmxoPs}CP`NhCxQpPu@yq;)BVtMB0 zjJ}FBBx0@3tj=U<=882}Pg~}!Fd->?nS5eMJlJ^Wx#<(4REZziv}8RX@npMr2-Pkr zU=kGShrNpC>l4xPZs&=JX$}(pt`L;XRUpJSLr;Cai8eF%>zQ>0)uVE!8cVqRNV+e{ zkg@e2G99PvI?aaZNu#H(2M`XrbVP z2P5fgzjb$hHg2*FTn}xXuru=UyvTCMW*s9rRuqN3?H6ZH^EUUk<#k^g;TU)rg@CM( zrej@VX@ZLn`2A?ypod@9<{4+LYoD{ws`W?bo(HQlail)fn=5{Phs9AcE!Jx(TUeI6 zhJ`UN+0qDM*m|7n$?6>g-IRA&X%}@ijiry722SV-%*4X&*HL?Gk5rRPD3}w}2jgkT z&V?wtVp}ed4u;9T(WgRmA08!1o9}@Q75~2eW%NKA+Eh5Mgu z^tyQ|^NUi98CE)}1}#kgHh-1!G*T*tIpP?alTix?ST@ zUypsp1{+4E^uHm)`&bCRnL zsUP*JbU(LRzokQKJ7v9i_bzvHhJM@j1tj$aQS3JN?m$9cmgeA3CG2*Kz=^|`5x2s` za|OQp-hYFwL6VQRo}e$9tk-#FAkJj!7@$`z{NPo8!0iQ+Rq27}`R2-V0`k?58O5)6 z^qvyDvYU?`vqcR_b6pE;`2Y{ijN7DRZV+b^d27VpHaxj{d*sE|EZb$lIZ5$L(Hd30#>sZHO22ZpN;;#z6&7je zP5YCOX=!2;1IYVN(sC1%-M2n|<49XA({1EBy0{td?i`^!!w%C4OswwIk|3AN56*fdYhY;YC}IN2g~cO`Ksu@ zLNH`$2L`b&RfL8%P_gBzJtC`g|MHP5a53xZQem!@F_s;ZEqG@0>?WVN-A~t6qmoI9 z_vYU8$k^p({$Mqk7q{ReZT*a0g7S{H)@0ZC%BbzPIW1j=g>!5|!-M*6cdv#hYY}5= ze03(|-}Rx7QcjINcho&n0$0}8e>mJPZtX3tIy=I{az^fEliHbg$F9z}Yqt~({Wx?| z{Er`Tb{hj$PxVCq#^w@A{|aiog7uz}nRJAy^31@p-u;RlnG*TL3VTq{Nts@&PxdO= za{ltiz2W3onPaBu#>S=l16UOcR-&EjPCHWzs%n1>7gcS4ppPg$Ry*->%u3Y*5TwS*A2deEwL=J|b%zR7zPAaEIyZcS?K{ic+leNY!*GoS~ zuK1^M6|)3YsEhg>ONdRAZdw-i=d{o>Gw=$wzVt(wQQAqe`WnW$1=X98+g&h_O{Sgg z?3bw>QvEsV{+52U;vest-H21ZJI&KYw|a_1LmphU-o+{gkE~keD1M7s3%_`TO0(8N z{e)V@qGYo6la=Y73WcWUGMC3rN7s-`@o$Jy>>Z*QXKOp>9CK?y(fReQf=ncewQzTv zi3UY0o=d?p%KCpmpzDk^{?q@{7iRBmdQi5O)z*$b#CTRQe-tG9vzb z`FQb1*!9tLtpAA7jJ;bK>$usS!jjly^17j|CRU6emr_p){fN8j9p7bMY)rrQU{=V3uX>;SunpXLOgutrjsAavFZ18JDJq(zZnazuUnN0Jt;|E`Gn=pMXuVGR*(;%!^7>mWT5kC*N0IpvIH ziQ`Q3Vhja!_Gj9pK72pPE}M8G*YY>ZfNVvE2*0&a0?p??^6imC%vEb=h<=Ja6O4Ni z9cD;HA6>iyXlKEpFtYs+U{7IVl_*0J~s;;leh4QRL`trx@%WX6!8tjr93br5DH7=|ct|WwG3As19oKYuR!x`RcO+1}^)7UQ|x>%?``_SBO&wmC@^ryb2twt;# zy_i)eGWG3dij?cac4bM!#<=Xea;R5FIrX$2HYVKJ87?nzRr;d!E*m+FHK{Fp|8Z7g zwHWmnG5NSVQ*~;|;7L_6Y2gh@E~<~&uU}I=)&1kyq0+ax@P6~ou8zE@lE)d{w;HFV zb?72D_>`Q>ZwF&(LXN>%&W1+#8Qcj5cd*G^fH6MyYrDiPq%d6w=;}TSd#1|>go!C# z;?`hr*YJ}`3^&xhRB|F;bb)m&x7;H{vfi%o!hqZVf7I}x>Z2v1G4v%eR+w8NxKn@s9qsFkz~qwvHXIEh3~Tgd3R~)b zW=AUe{c}tO?nEK(YO|8WNQ^Bp|3AlKA&2_*&sQGkNkY5?7L9SmG3fr+NzYqM7$Epz zwgP>O3S##Ape2!zC`l;BJO!-K|8#P>1k(qor2+jLhW_~enbCvIB1$flVX&ugJh^-r zq3G2_ z4OY1xXBBT#U_==fU8wvJpJ4i}dwak^?7NK6jyKb3?< zljzu0RsuRRlwfRwul(~4H#;o`HXDuG6TM59KQtaA5MEtD)29G z-WP=cbbWgN8RD4<0fV_RQxK==Vz4Y&UJ6A37TADQf< zC_unUV`>{mj)Y5~rJ{5H`4fpiL|-wpH3ldOCRI{sX4?ctgMdjQq90h`U<48&RWfN| ztAT^jaLH&%D_k2$7&s{0|IeR*btKx=+BOf11lJ*eC2(NqaB*->8OQE*5R*W{fH5M# z_UU@?<=`;f@pe26km%qjcOck4H_1L_&A&Q>OGu&jk4PU71n2Vs5el?Hl*Imd{sVGw z7@)Sn(F)*WFgT8q0)p*R0sV_%ag&AXWS`UqUl0z*k!2jj;0QPpN7I3iA;h5r1d9Z) z2jj`%`at1MALBm@xLzPD2abRtC2^ce2L-|8O5m6&AlN>&4jzU8q)`wpAP_+RkSRuh z<&8T}FOJjyU-g5PiGr#Nvn z7C0aWM}zf-qr$<*V6cC;Huk^OkA}ncsW$Kgfx4hZ1q~pAP5{+Bj`9KTSzxzt1V9jM zpA_VO7*-sP25d|?B9;GvID>@RXRbPc0XeWe@jF3?Bakr2vpDRag~J&*fB`lwd@Ufr zA`+Lt;&+S#;RKz4%U^LkNe2dl5J!pc6IVenu>7HN65^2cfqOahUmJk^clCn?!7jmH zNC*i)(}kn8IoOE=;F5u?bRY-De88vxc?6hs1detD?^$3RA$?$Rg5dS=1!3ag0$cnA zhXB|)z5pd1#CMguApd=NM+6ppy#pdfHqFdQq_0Su7z01UDtfEffLcyc%%c?5KQ z01QVkxF3J~wE=)s9gT)Ih(rVTj{hd$UJG$JB%;9$26vaq!2tp}3D6Hd1}Lb||J$;#P#hj=?2IW%Yx@+=mB5MPda6R?Ew1p)63h+-ia z3dlhQ1DG0NIKHL>(*$M{gp`oo1hD-n+1LMH8vsCpPEbID(6s=3n1hIivjm6c>jOZ50W`RXa^ZJ9C&=l>IZUwrxAaP0V5A$ zA3_YYh(ACehsF^n{x@jQKX?;r>l=(m> z`*L9CK&A-^IHIu7HwGXIvbb;!?sL8VH)_xz5-{{a=NK?6LJb!ZFs?z9PaFpP_Wl6> zi~n%oJ~`sSP5=gVL|`x=u7JD=;BSLLQY?@ip!WG954HzVBv2YSs2MCy{RrSe4}#+0 z<-{c*&IEJ;oDM{-07F3%QXnS*gJeIzw*vzLnPPxRp|Oxf13(nSR)bI!OgsJ@<1ny9 z@CS{~y9xh|ftN(XKpOqevw!1190*bq{07lr(9ppE4CEXHas-wT4F|RdGED&6 zXWBY2C0G!xp`nEXa1$3=0#`pfAc(_2{zHHvAwdbae-dXiA##Az4w63tISG)8;m3c# z;vx6B_3%1I;UWu2gD5}|i9bMa;}H#1y0QmvrSqbncB*p}h0dN~g{P+)mAnu1~0S(w)A!`B1fm{so#vsOr zx^h5q3>f(csR1R@8kq~U3t`>sr)4U(V(30Rj3Wym6oq~cGq(LMCzR#9<@L^B} zCRphJ+vg9*lLOfb#9;xy269E*l;HILH~s@4&=>xj08a!BKmZRhVxQR=uM@zH4;?fb z5dZ$`X8+d*D8?K#-?;vP7}!yeIR+R=Kk)|xniI#dh9B%0BnM#65@7p8^AI@@H{r{H z0b)U(gb(8U@!#siU(JBl_Su&YHVF9ZB_LT6*#BUPA?<-28dx~|K0xLv{*N4Z|G%98 zGY^9l9s$8FD8@q?1ls`^X8Z=xlHfxKfgB7531oq?fQ36~ko0iz9|D*QhzijN_&)FM z!8ZmN*vXKN!L;KQ6!+T$u|agfLtA<*BryWI1z7^Y*uk{{&}Knx1QK%Ko&^;SNcW&V z1PLpF918Ytc=2C!hXV;KHDK;>bg+2uh{El02nI4|0y#-gScE7X^np5<+u(K==onNK z2pa^2HiAw-L6ZR6zaI#1fS^UFI|3mGaLbTqfjfs`A?pqlYM_-GNf3ufK+*(&5foto z29x-o-}=`$1EU1B_CO94L;o4f-{=naFj!B}5dvQe)dC>Bg*sO7EP~o@T%* zf~+Hu-2r}ENSc7dzy})WVBjG6CBQ(ML4bi$I{~(TH3nobz>MHWceswB6?q&6HaWCG zgap*~fr_a()RzGa0rm0#`(H))Z*&L1{o54qM+h7+!ITixw!r{Fu5{33;C48;=Y(+H z!L&oB6N~$v3iaN&as(t8#x+P_bO8p+K~T+ruV@5Q0&Fh9lmMp(sqW!A0R|e{Ah4!T zqXK*sq$&WO1>p{Kzk?DdGzzS!Wf{Y!%J*9`bXNH8U!=0~7aaBU2j61?aR zl$@X+N^zYWtj7KGF&13$0?Ac@9I*2Qy95OA1XBVEdHp}459n73mbd4kM=me1mC~iR`50HC6Q)NJr4?f94 z*EaZwMBq|Tp!f+@B&g>78$uoM=wL-a?G4C7LEQ>EcJM_7sz?;@6wpZk$uohu0o7;x z505yHj*@_WCdXm>H%s9w4Wxerij+V@suJK?@M#XZwm}hx;IkPBYs9htTipL_7F_w0 z@Zo*-d&pow$Pd*F3{7BeP$2b#ZYmTUlq&vt_J1B7ggVf)2UkTWFgGYrA19a+I56YT z!2q93FeRYwhrhOgM+YA$A>|Mp21?BY4T6vlih)mY1XBWvq6E)^Ppt%Upr|Pc_2|Hg z5Ewsz5rh{2BODB2&JXH8NWw)8esl6yga3JSAP6b)0WBcGtt8Ml#{GVV5F_06|Bqt@ z#VBavh{aW?ARhp69q->5hQHvz_z30`S0^PH4EUiGAx3Bya39?u^%~GI^wTJAFyL1c z1P!7I=NJ^T2-XKEQV}dnpw$0ft@$mbJW$I$Qn`xrE11#0*}u02f3bojonV)MayG$~UYQ2H4~5qfd&6>)c=}l@b&h8Z}J}o`JRhw4^8OAz`cODbz}m1`ES92A1V>peh^L( z*mN}bNPyolE;)qOiczMVs0RIbEXZ)QDa!z0!@YgmDgZ}6RhoK-50>Hqp z4e%!h{16KiMgEzD|GYd7ggQqYhJ*xzI1I!=cnSv?_~8(~WyfLA0z1IKM+Ll@#)1!B z;P*C=I1OCw0wxEl1z^`9lK|wvZH#ygg7!e*4B5CKHb+5iB*1`~vxKS!6wM&XA5IW_ zbA`Mys6RmrEchWR2;~2>U;BAG4g>x&+CJQtl^P~VC3e-p!5Q3*A{8AOZp%Rp!euy` MikDYe;{w(H0ZVOvT>t<8 diff --git a/docs/slides/deck/04-open-methods.md b/docs/slides/deck/04-open-methods.md index a3db322c..cd06930e 100644 --- a/docs/slides/deck/04-open-methods.md +++ b/docs/slides/deck/04-open-methods.md @@ -118,7 +118,8 @@ define_method(int, value, (Plus& expr)) { jmp qword ptr [rax+8*rcx] ``` -* 15-30% slower than equivalent native virtual function call (but see `virtual_ptr`) +* 15-30% slower than equivalent native virtual function call (using perfect + integer hash; but see `virtual_ptr`) * [Optimizing Away C++ Virtual Functions May Be Pointless](https://www.youtube.com/watch?v=i5MAXAxp_Tw) - Shachar Shemesh - diff --git a/docs/slides/deck/06-evolution.md b/docs/slides/deck/06-evolution.md index 874aea87..a7eb58ca 100644 --- a/docs/slides/deck/06-evolution.md +++ b/docs/slides/deck/06-evolution.md @@ -12,7 +12,7 @@
        • goals:
            -
          • help promote adoption in the standard +
          • help promote adoption in the language
            • submit to Boost
            • talk about it (CppCon 2018...)
            • @@ -124,13 +124,15 @@ ret ## Core API ```c++ -use_classes use_ast_classes; - struct value_id; using value = method)>; +``` +```c++ auto result = value::fn(expr); +``` +```c++ int number_value(const Number& node) { return node.val; } @@ -145,6 +147,8 @@ struct binary_value { YOMM2_STATIC(value::add_definition>>); YOMM2_STATIC(value::add_definition>>); + +YOMM2_STATIC(use_classes); ``` @@ -157,10 +161,10 @@ YOMM2_STATIC(value::add_definition>>);
            • virtual_ptr
            • core API
            • template interop toolkit
            • -
            • header only (+ Compiler Explorer)
            • +
            • header only (Compiler Explorer)
            • friendship
            • member methods
            • -
            • policies and facets +
            • policies and facets (latest release)
              • custom RTTI
              • custom error handling, trace, vptr placement...
              • @@ -180,6 +184,8 @@ YOMM2_STATIC(value::add_definition>>);
              • match (beat?) virtual function speed
              • pre-calculate dispatch tables
              • malloc-free operation
              • +
              • dispatch on std::any
              • +
              • (feature complete)
              • C++20