From 085273b515d46d5f30b6cbc15af7386aab5c6755 Mon Sep 17 00:00:00 2001 From: Valentin Laurent Date: Thu, 21 Nov 2024 10:31:41 +0100 Subject: [PATCH] DOC: reorganize documentation, add migration_guide in doc in .rst format, make left navigation bar more usable (#540) --- doc/conf.py | 4 +- doc/images/quickstart_1.png | Bin 84288 -> 83745 bytes doc/index.rst | 48 +----- doc/index_binary_classification.rst | 8 + doc/index_classification.rst | 12 ++ doc/index_mondrian.rst | 8 + doc/index_regression.rst | 13 ++ doc/split_cross_conformal.rst | 6 +- doc/theoretical_description_metrics.rst | 2 +- doc/v1_migration_guide.rst | 218 ++++++++++++++++++++++++ mapie_v1/migration_guide.md | 194 --------------------- 11 files changed, 275 insertions(+), 238 deletions(-) create mode 100644 doc/index_binary_classification.rst create mode 100644 doc/index_classification.rst create mode 100644 doc/index_mondrian.rst create mode 100644 doc/index_regression.rst create mode 100644 doc/v1_migration_guide.rst delete mode 100644 mapie_v1/migration_guide.md diff --git a/doc/conf.py b/doc/conf.py index 0b1af45f2..7781de29a 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -146,7 +146,9 @@ # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -# html_theme_options = {} +html_theme_options = { + 'collapse_navigation': False, +} # Add any paths that contain custom themes here, relative to this directory. html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] diff --git a/doc/images/quickstart_1.png b/doc/images/quickstart_1.png index 9c6a54bc2a2a40b35c77cb1849b3962ebbaa2a1f..886801fcbc9e501205b293b34f490f15cf65b9bc 100644 GIT binary patch literal 83745 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 z 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

@7(ja=9J}_1-!~C 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 z zt!02$;Wl8?ayNA6zhi=zrl7LCJoO`dvm=(ROchPjhD*AH6$uwPq^0AaF&AzyVIkN$ zv?pRsLly9dZ;92R`aSpk5(@!Cj=)h-vh{vNL+mPvx8(8QFSG+WT(443F?Sb?UWvNv zAv)}ew{lEpIkblpJmFss?jLpe(8lDXKz88Drt7bTlVp}&x)A1f_jxqqXH2spH1Pt+ zJkP|H-iH{_r)1Nhj2iv=-#bkoGed*NOPhTlwEnCUeM0I&YbO#fQ(rXc>vvb{B-cG+ zPW_7Kb!_De{ZOm)?DpyM8G!TfHxAu(m7DHdu!(761;g=qvDhAqt)E@fr#Y87 zwXB~Jdrk&2C!>R^^c)klTyuPLC>&E`TYy#$#0V5t3{5-i`Uf@XC!TQC8H>ubp}{&N z2_bQt`3cSm=h#}JtHYHweZ|R}DxoNl1j2$q_+;PS>AGhvTI;rl+cSRY@|4hQn#x+s zqJbWk=_OSZNJpY=!c`}Q(joB=&9A1~tcPrZqAicHPT1W7hjM7?QUoNoVjOoq|0BxZ z-}#yVMV`Y;B(1HG<%3{;xzFa#eg;&iY6~~N?Ck$+bQiSlqJH-1M4QY-$x%U*E&b`_ zwOOD(jL=r-KDg*s+z@!>wT-_ZVZ!`iZu;X^f~&adyCuLwD%L4STd6NejhO?6&olS| znTPOWc*fR>9U2B%E8o@Ds`TZb*B3`HyB2cnR$R$ayjq1?v}#bnC-wqmSetz9$Tnhj z#*wLG>_jpZ?R#9sxl{?xCRDYSB-onU6JP8}waYPyn=sgTH0V+xrPfo@wjyObdo2Uc z8{ymMQPp@EY!H`@DG|5Opv1@gbnu4g|Iu*Tvo54N8vpqFhrV(FomwgfjGks{V??jD z);$x^XsaRGsivV3rtUswS|bIzBM0O2yU*X;qq-Ys-CEoUYNAi4FBW_v*jKP1grwe1 ztH%NA%c!lXlighAtuf)a&?xSWC`tesxN)?m@5mQPo!fBNJv|z(b^@D)B^eGeeWB_# z9g?EzLy_Nn)KV;2I$K$*C5RD35aDt={g^PqnXin@$s3bQm0%VwGK)>+%iR6rtT#W2 ziCc#b^R6z+!O7EanseL6T&r*YC&MQVqxJsXx*{?B!pCNWknYN;{=6gFUiBA@8=L0S zCa$%EOU{UkS|x{NY>}Z+@MdJQrSU*zDIE%Dj3yy6U;*>NB5J}I>c8rJ(o%7+%W+4I zg5iHpu<1`k#+lR-O{6RclbP(>1k%99>~M`qrf>Oy(%jYjrN(n^tmLH>A}>7_j3pmO zf9@?KOh~9Fi(JfNATgqMf{_VRs-x_5n?^~uO~hiSRl}zN?i2{119bzm3pp3iTqS7wKarea)?o7x)!m*=fl}z(;unRJ98r_ zbC4%S-^!#tqLbaN42X@FQkTQX=5a0T&c+m(3e*&<h^FD~VC`u0WzmiiyCfeMRSL`%hv-B9}CqanAVJ5O-3a$YuF^{RfjS38N61avVDm zf>a~)A~+Aazk;)iY^yQu88$b*p0UXZg7Eb${bKQ8B(Wj=YNT>$!0M5#V=IkgUO=2T zXOik$h3n75lPIhK^sKnNzEm^j#7fjW<>;}a003R6#>NQd08LAnd# zKxY!Y#=(go!^Bb$%mjAA;TuE>->xR!Sn~kY9HpgNsOql?BcXrwROxrl>>_$b5v9Uw z_KnMr28NlR%`emQ)e)w-XrWdZsDu|BA{%%Ql;`aV7O|Rj!8!zw9rVpG;wV9YtjPRo zebM<1H=b%sCkJVUF^usMBmW;A80kakj7P9)kyN(2%E88K`3lMC761@uxQLDO@Jd1G zcVbR4k>OlCExxFo8tB3BK*o9;jPcY2XJ`_WR?89MNP7Mam#z5Efmm79NSa!2=Q^bd z=}_!&#ftE-aOsi&dWcr3GTBZ-0wN$u_OZ?_o5ozv2_wm>Jc+)ROC$rj zoChW8$5V=^0GnuR0lEk2A7_l;@_RGj7~rELvJ>&%sgj@i(#|};_0INmji=o7bGg~s zuLRv6V2Tgjlt(t`-%9`;`j4}M@%2De1{7YDq!>}QZPf*1ll})U)UEydLG*+x;Cl`rVtpY~Aw~gFTd{=134TJ`=3^wr)-x6Y>>DiS~`)l zO&IvT;Xy22Xwg%lR#_yu!G<&Q9b^xBup!f1$I>oihCt{s%{_ox5;K%2^XL`+>q<@w zy=)UwLt`+9FjcPvg2o6iRPAG|=*Fm+TVaa@K`N64p`0W|uEA-qeRy{Co$N^3Y*VJ$ zEa{O!>D3aT)oH$Z#UoAg*}{ETSWMl{xyM;(Rpq$Brk{FXgmo@i{I93FCTSSpko0BV z*(>K3Hl4eF`j-Cv-b6;uLms+WY}z2HlMyda+J299VAjgiZo$Im<`G5188&vaNI{T1 zDL{sSV&~L?W|LYcl~z5l9V&&|Jdc47%TiPe<(U8%+Gc|fnVHZ{KVa<}3ce${qGUR} zKHq+s1fHSyBmo!7Rx?gRzq1B_Pry&%6t`iCH`Avq8z~9x1^sZSgwak9p|rsQtRu6k z75+VX5ZXgGtp$|Lvn0kw^HKa%3cg(=S~18ToIp}q>L0%1D+j98V{GRY6Fqu2 z5e_y81W*W&UZ}rv2b#1%>1W_c2rG3Fat`+)lT4oWc)6%=E8V%9o=)(L(Z&>JLDj~_aFRL8Kq z>dO2N{o5hdu|6>7{!JpvLF1_W`CD@6OD9qq#bdb)=KQnf$28#C!CAF;*^{pUHU{Dp z8xR{s${`PE^9bDi{IsU7(kwLseNnxBsIrlAWY2npz$ck7R%_-d38I_WeQA+Q@(3QZ zLg|B~i==?~Fl`>AT`^#6Q$86}uptWJs(XyS4U4e&gBp~*Nq96eblA%p{L@G0oR4Ex z8IgnB07olqfCuz%${(ZvZOJs-c7m=g%a`(P&|&~36lg(FfDA)ilJ2dTHj&axO?ThI zY8c6?>$jke->(?=hOMNI+s)#-(1!$Y3R2FUys;jz@a}n6FMXuqn2QbCB`VQnVAntq znF=l&RBmSsRXzNny=U+DBfT8uzg~<77{b2IB|4==IPp!zz{9C0z)PK0LROKX+Snc# zuC8GyS7ObW?s1kfs35<6o>nxxA!8n5fP3eQS`MhLB5ZJcu|^$5h_-j=vuP)b`uHMq zsq(g*C8wL55@m`!QvVUv|MZNU&6PbrX$+yp!lY0cVDb#8G7w(1bI%4{=>zFEJ((5C z0N)oK1ZUN-aARnfPG)SRXWU9zQnPwfWL!ua?jqsI+C%UyyLxsEW!CmvH++d9YS-1V)9pV;7xac=9yFIDXRph4{@ z^eHxS=LO4UJ)8NdN|CHR)0PXZA~qLWQ`G7JzX4g{h572zWBzW>CdX7& z0@B}WV}my+mHYM-%ddp4vG4lTy*L5mOV2Dt>yKe@MH%%z5-ZS0%iLYMC_%b30T2)= zdO0<%9X3Rz!6qe`BCWxjkZO8_WorMT;6xZYOp1;*?s7AjHJ(pb_&>1C2>D~v&(;n} z%d`amDtQaVhp4i=)jIh9B&dQO80{VAV~OuvW$h)=GUjPL$M??=Dy<{{crFufCzkI} z55`wUCxo$Wi6=1$!nD@|z8r)uKV^HXg6_Bjxo7_(0P}uY-ehrtfbm^U@_UMl6C{q*V5YxJ zW}cKJYP?EHxNPWYnOh5xOZKo5Uf7{6wchntdR3#XCeLSe1!)RVaky|IF0M^Ka};Q@ z^OZg05`8GY;h9KAhA(WHoqjh+_dTOwG+}K1=Ej<)+!Fe@Rc!jlwa>ISr&{hEE;JJr zbSWO~Z9N+FQuc1^pl$-xc%rBg$aqNgviZtLr`flG0BE?{jX^?{+y!i7AESd;--T)s zj7gAIY+MrT|GxYO`j@rdCem?Cv^Xo0NEqi_-_yq#WSE+SoT1^sGT=q#0pvA;RfG8( zXz43xYAJ>cIbV0HBp$!=2dVaAffp0qCoDB{Qror|Yq?7tL($_dlh0Zn%35G&Y@ zYIf)AdIfmm{Z&dpQfnT~Y57#ISQYEd4?0SX23m+3{nPHN_anm^O<_RQj<_iN{6qRx zHojcI*n#XVDwE6TtKp_4q7R9|Qhau)5n!p3&WCv#0n8&+ryQ#ki(HG&!a+lu&DGSq zb0)*EoA}Fq|r$ZOFDkqz?c6=qCt7$cvN_^^uVgqi0;Oa(T#?gT9_eR(g|7D~m>wFbQOM zCGD0jtRN8()uV{BMTX75^!oB@Ej*#}W+9z{K-rL<04@e}?%5H(kwrL-%EW)Q;Y)-} z>>OuvI}qX}T|6LNHX3Gk&$p=CINtt5Dv+{ZabV$CW>W8i$Y}#)4~e!tRnzj zc*@3Rj_UfDFbPqq;?5^##Ot2GwI)uuF9TExLb5jzXUGo*)q-wB6Wl=m$xO4Q(Y(1+%%cx4r7NMru8An4kU3@wAQ; zA!3{Kn#r3vu0K93O&3Y7rbQg65oefXVrA-akg?Q8EMe;A!F>m^F2(5NX%sr8Efv{P zAs)|S7<7%X8iaJ7Vn2ftq&=ji4aI7LD}J9x@6-AZVo6uf@~fbwN0)Pe`Mu_c1d}I^Mq*5I2r}j${NrHR;hRk8muRrjOUDk`YNJSm3*F4i z3xB;TXB%>k5M)a<`~jLdk_RP+$5>np?=q7KJGyrk5f!1303%J_S2{6a4>_>lapCiv z-5Y08MJY@SGH8uP=s+yr@;q&M{p1&Nd7)g{w$q+A&>XSVx0}rln|(%aMrc2qD^eeZ z#04AL1{soIY-~HVbrigy#{Hke^+BS4MQ$5hxKfqny)`?Z7*UaC?*TDFM2sXQLJi2n zCB6nI9W9DG(v|`v$;)@pcJKX!qEIWnRY{vv0XaJ|wY+DgjJu#db(+UX<_6Clg{rcI z!`Z|8w#itZ410dp68N4X027zgf~`2Up*1ue$?wx02fC&OqD&8VP>Wsk^#ljcE2@op zfy3R&8?b#XM3tII^w+5Q{rmWCt_ImAK!w%4&2*BTj-+3dP@r6l&hL$epI6(>N|?kr zw^8?sMbYVRBtlzU(xH)3M_b%dE@2GqG5<#fOjLkH5Eq34vEWDdoR4HKDGMv$q*QY} z58-d!;4;B)puw^9Be-a#mejT%{tH7XU&hFo$Dm?GufEIZ#E(zMG#qq>nP|j$`la$` zLorfuYlsUzC}U)eQMeR7n=773QHv8puCGSs`3LuduOJ)_ z6#}w~#KFBS*C03n;nJD_+^_f1TtG${t8N@-R;9tw3LE>fcZ&AV2dE@c*togyc>!`( zkPsP}?7-vvTQ@`}5?@)ti5aqk+^vHfAVa&BC%Oet-IqcXU?LYPrO4!Hy@26^Rvpm3 zfOdzV5+Xf&_5h5po{{;wBcRq+qR<^)JhVT%vi9IYr4@zV zIqY?iI!fhuw8@$(cH89hhGg{_E+#@HA3s!DXax_iMxlFIjZc575aCMN!G&kR7PyOg z)#>*WpT9Jv`Udk}o5u&Dr;=}~jOLu%d|XV4ahasma4{KsIr14f+J3aPl#Bn^tSdKN z*bOzy!*G8&cez^_ZEk={gn~?riXI4DoCG=T<(#^!H^rR4?_hI+#>T58rs!cA=eZQP z#_r(<+3jt&eZszyHv>gGs&r3eeC~`R%0E$itm=v1v>k_9cVKfG88}bA{Nk?q#(XD} zA@@M-bW7*<&!L85`M&e6Z}{6x3hE_QhIdmsI9D;DxR3mL`pFm&-73*v%%gnju{8sq zvT-Yeyth~4cDmn_N;#kFBVjs$YbwqQ2>fgg=BsX}x9={V|9$L#+w4E~;%@r|h%5H$ zqyE;-X>y7!c{B3-Eq9!OhQ`_B5;CttJ9()7Uj16NnPuG&2Cg?!hBIf0=hXhxUBZce$ctk?7Ui12;^kY$y}uGCz_6Q4U1%SVp-QG zvcRdmIGbs2^}6OqCFl0TpYo%qpSopuaLM6-llELV;!$6xwRiRkr8Wv*cwz~Ro#qX|>m<`xr|s`kwH1cy1GT z7|o0E+|pg7D8Adts`o<*W-iU+U|d^oGserUEgjIC+x?2NS#hBeR~?&PaT}8RG>KE^ z*FeYWqn}M8t&%H}V%FT7(R9|w>u)wn4j9}T#r zxE*gKjh$ZJp|RmUq^owZvlwPk4-t?*G#cRi=2Jj&JpNOHx69!p(OIwe$;;CIloat2 zG(=k01{0WygNd}DTZSDfRG-S}ID@v8U(Teq zhq{fYh-=6dT9s*!5J|eFXydy0EJKQpA4gb$_b7xgBr9yXahhckSG8mO{K@UHhtZcc z>{X)%Oo<-e- zQTlPk+cZ1UU|5Frn?Y5Cx8lOz?!WQgS4fZzrzoGFcaSuRgMsU;b9ajKt*i>P7+s0` z7xgi8rQ;Lf$?n6dY~$&@n7T@@KITtSP1U-gJ3J@lVn2cjHwuNMSXkowHFY50z$I6an|48JVSP)B=ghpymz2lPn%}M- zT=M){0LiUML%s5xqF-fRBZZBb(q%OcE$(YQVYeFdXykytpsC~6dd$i5B{m^eeNaPK zftoVf7hhHTlm^tn`n97IgG&md)U^rqUE*&uo=gguVcj%0v^>cJ3j4P_bl(H*N3$}=W)6njzL!=U0L+PPis6~wW71Xz4WhZgO?vf6Eo=W#;6~4N&y=|nw{(k^s(+@RBM=)!LBE z$<}r+=uxn>*O#ns{nTsMgOx9?yd}WpHRp1)?chT`2yrc1nY?@1RZb@HzTh`E5*0yN zfAnKZZ)cPZhbariAo(Zi&=;H^9hWHg1DhKimYxcT53yVr*#-9XD zw7+z58$|rO@kmblr#v)~iPX1JTkVv%ov_UXgW4mz%I*FoOm+q*=+|(nP8f=Mv8E^f zD_pYHCQLKEz0#1}l@-S@aB9uIjm-PA7Msla(#E53%J(K zi8iuR5^MCwZ&FVkSYDvz3L!i3QQlt~YI3_Y?*hWx*1c%y?oPtJwmDy50WXwzH%K9F z1$l|QzaB^v5~6Ou9tS(>D4TBE!y|HY7@h}C8XTTHUpbT*# zQTVieg&I@Ut~?)Z7}Nu0XHzgQ)GsK@6lvGJ&sRcWtreWW=Hy&#`ewIY z-1_bc>ASb)Z};tXFZz~Deb!zg1YG&aNUMMCR40y~MoIK}$(cuVNI6dY<2HJ$C`OA-%()2N8VnkvQ_LNLnaqf8M5U+ROgPJwEOAcAD`x zaS`5WYX70=P7xsr^rY0N%kR)p0rz|3HHzCu1<}WpG>MPX`D(c1#+UbHvZN+o?o=sX{K?g{DXUU zGwp9#kX*PCb4$_wSSJ2PwRf&waDQFI{2H0@KxS^*m3PemCi!Xnj`t51M%rH@TS0{u zt{;Bv=V={Dk5B@QsGQI5elqF2m@?jhWi`2c755$z7(#o|9r%k&i`C<;0t?G?KG1u5 z{<^R=InSK00UgoS7W0(f57+;?9PnqzYoF!i1dX#%-7c3bA~$7anA|9iZTJ-64pv!Ja$@y!$Kn-j86!zx9i zY;(W&#;4S9#9b=)m_?jFA~}U1dP*dVw1{>yji?2V5SX-f{@8)F@>)5K(Zo`nxz= zINIvBo%p(bXKO?|^3gsP8&;|&zhs%`L?BCZy=pfy>`;mgqBIenmJ&|-2fY1x=P7^e zTeg%ZHGi@mPu(3((f+(OqdfcB{3)mT)1RXkB_trdTb!&_EoHeiB)4y$k41ZTqRe5i z`BLm4+sI^%zg&2f)Vhs7H^q}!A>*5su)yeJ=c)_`bm$8@20|kt?PcPEP3`#0z^7H* ztit9$hQy0Z- zn?xPME675+qCb1oBkvKm$x|=5GZ$&C!;l@g$fl&R$LPsazLR~+{JS6LbCEaj{Bz{b zbM92^7qGdP7Aa)Cwwfw-T$fRb*&MWbP`-JM*{SodVr%io=KPKsBr~=qLtEc5S$S@W z+DL>Q#hxPIqD+0i`270GPxN_O#+_?-uP=MQ4&0u-BYFy__Rwx$2LIkKz?1;l`oE@Gst@_O8Tr__)iH0&-DQ z*^w%b&~mE-u>LfxVxVh7)-9}*SL(5x<2B#b2pu5)6(r7HxKh|%pnt0N-iCMHx99cQ z!{O$&ECPkKp1gzCy${9;Jo?Rf3(`p6Pgaq-ZDfBuCKi?Vg-TW7wf_8oMvL*Vh}&Wt z=jK#fJX`^0zR~q}!uHm$p}GxwEpesmZ#Ycn10lNDuE2aayS1pZdT8oKVSV~;y+g*P z3{0ATSJ&3~H$Mx@3wbz_9tej%BXg={6J|509QzXzoa}Cph|wqb{dN57F|Atq8BAm1 zmwMlsiw!hSjbyG08X`CCnLL^cD?Q3VN_eMShKwI(bgewCQzA}Q5_>FK9oKIAmn$cW zzZOc54O*Z%Ui@c+^8zA53Sw@ptq(pw*HVvcP`jitQY>sJ*bqB()YaQBX+hptF(qo? z9I$fCX6Hgy#1vQDz?Oc`Rr}fZ_{3OT(cfcP;y`_S*Zz|VWy>KBRO96-RNA`OiAK5# zcdQ6%!40Q==Z$3=>6@m*l23M1K|td8q@cz3ePH9eWNO(#M*pY3v2p}_HvGnE{>- zH`cPIpPX=pzEtsv`9dvgh0^ZeT$E?IBDltMMl)F0OS~(i-9HqPpq3T5q$RSedsbXX z8UQLe%L^m|itVPA=QawG^Qxi|sTfiNV!6ldNyBfHTx36ze)u|zLLgULWBRN%Kd>=- ziPBlSBv4B2lqEK5$efpl7E_5q$z>u#RfTmjqYMo-4$K+VlCv$FeQjP+p`hW{(x ziB#xohnI$-_N{qN?@5Xpr1hUBk&_L>5ee+FPv&89^!-T>o|bQHz@uwJ(Oh;|WsOzz}h(Jj~HJ+q5m z)u+O=HTx?f^(|b&t+r&)=#FCj0{R$;6cMiq^?k7Aq1O9T~l6^obhD~t7=qci$1 znT)(HcoziQ=mNMXH@8ZvH!l_{V+1;1lDQTP;5l&Rh6J}~KJGmVdPZ-f8?5*Vx*;EW zf@2qdgz*7XA|-YRnBL*E7)|o6+fjVRB_DK&7Q+2ZB-|FCm=rzI(E5#Q!QH2_jtN#o zrdNx}w2gLJEY;PsHJ*v3NF|x$887?JR&j_$x$KH(==`q#nBeK|_3!WGv@u=ren%YF z?s4Tpdu-cDk)nMoH4D*;t8rzaJe+?*Hp@|TFsK3#61Jk$KPtI~_S8vod{(jxd|LS+ zzk)^cUH6-G4;mMT>x^|n%6jVMs$=}W3X-)~Ysk~lu8u3Ky;o3$4D$qzvu7x~3Ii5( zCP*_yRKIWqVwune$t#b{K9*t77I2ER(vomaSaRp5ZJ}26S#krr8^!%Xaf_4x^ryhN zeG%w^EF^l0|D@}jLKr=ABTn-m=0)+qtcj)5J0Io$oPt`VlX2S6~^_nPxhnG+F>gq_SHds(Y}Bu)1` zjCUH|k&GAMw*{0)!CZr6#ILCc@A<{HIV~6KcYeHiLoMcD{MLPbS^v4<{~_zGqPpI` zsBc=NQBu0QyN`4u-QC??(w)*ENGc7|oj*E7Ksttc{=}6hySLU_fRPk5YPRgqpy9Z3T31f=<_>KR2YbpGEU{R0{=4QQf`ktxXH<3? zez7W?KM|^COd3I_zvcNsndrpIU*N%mq?au?F2GM&q|+6b$4_cQU?M&9fDDPH>)sB3 zRpY{4?0@?O{X6E>4jF;o*&@2-2SJT%?}>cpd+Ukw223uvDvFG6@MGMfHu*_6p zR9Svb^dNt z(Q-D~d^jaX1)56tn{8&A`L}-(kjsMPa#RzmKAxzzWh_A~j_K z=iRxeh`>_IXmU^3f&X$)dT_fZ4#A$OGI}z<^qucuG}4L})7oNn?)s;Q`8{g|ljuJ=)(BC(?nqrCw)SkRyV8PEHID7kEG_{TLkTC%6X*?H z=?PwwUw2x!Wa}0t@hrk3-HN_owq9+dwC%c*ujc1%RiL~2$V_BTMEaXzw$N4BF=twR ziKS8wzl*~xl+R~8O44`Gc~oU4!alcesl-H`#F+o1f-LBffLt)OUeaM2tNtW)btW)s zs(9`6sGytv$MoJA9F6ZEkh=f&{4B3*ky*N)$+i5aBR<=H(CaUt(~!cyp%&_NvIzmQ zW=nu$Ol{dDSe=%1MY|}-_WNiWsx}== zCLRin#k<3 zw1cE1YfyVHp!aUI<@lXuj&*?J4sJ#nJlt}qV$KhIdXwUzR7gf|7mE`SW$>p%F+IAo z<&A5K>LEmf1Iy4VvkZESVEsy@hHeQHzRvodN`lkf%ntMot+4m(A`eWA`hWbbstx=o zwfOsDJC5le1_}p{S}(q-2!)0oVErt4FMR*Fo}5fW@V}d*f>M8PB1DnokMZt1ta-6? z3I>V|y=g?jg`~j|((MxteHZ&?lakIBX7XmY))Dg=E*H~tqTvD7ZB;2vdKmpLO>&t{M30^x_;UzpWiLH4+z7kmao%AE*@wdwE z;UL3}M-O6ipjNFeisJX}DtX|YuJqlYz9iGRBYcFt`|LN}lBEF|y!4aQNh0X;v+Q>h zqI5DRE8DoD5S&`P}^1ggOZP8;JIVV>M#0m(9wcHG_~HR2NxtE~64S!bMF6C2gax-?G+w!RMZd?L>0`=oyM%TkOd5%e46TfnaSBl^^ExZwE zs9%TOKJ39VxNX|$W)1G&ecH0*_S#t)C@f?A+;#@+3z|8pia#71dh4>o2TmNjn!5bX ziXy}K2{3|mS|`O@116P_Z?X5wr`wtPBJ256(hkVEeIoOQBT@Mw8qth1h$#6qnTW7{ zn&j|HUA+CDVCJ{ z+PFlRQrFy10Xe(GFRuiNKCR4r+9YCpSj9qFQ$%gss=`3(ws zCEtpMC856FH!&#}C<+$IzgAIc)#>l!n;Avb8KaX&9Ne7a$#yQ5e6_x<=P z^jUcVoLV&@@vIzHgZ}Y}i94ZIyqY>>lF=tDQ%2$hI{Benqc?~V-*Xe z8=!6XV^#D9*IS*U)IH;Wwz{c~3wZGhQc-#v^UM%g6pfIZCt=$$dWouB3Z)>>!9NfLlL$Tj^)m9*4f<-&cMDO!$z$Fz zSHYR1MEO`<-c=~AuOYz*|lI>4*Dj zFIMHiV+cJO{UW&M*ze258)2+=L}WqQn@xdajk0}8eB@;;bH;|L_oWdQd*rLeWtasi z>q7?^t4W;n%zZyi8w@j8+eF{Mqn%siI?xQ`m%~3EPB=OZ4OgQ1A58 zTRd9iUC2kKYZD+;*8WuD0}tATzDElNatFcI^3o^QF58PeMm315&Y~pH{nx<&RV@9&M(-?WIqU{$Qa@G-p*b!`* z>M9f87f8ELn;^&)F!3vEAtT-*T=N+;-CGKrKu(Fg1oV%mqOl(a=(YMS7B!5R7>83j zOd%UXDk8rd{TJi?;u+C1zrBie+`00}4hY0vCA%Q>DU6N!uqiuSJi|3tE;7_>J>1dO znXYUezdr>o%h8albyrUk^kB)_<-;(gqX!_Dy{7wnB@WM|kKZ<0@EesJ97RIw9zY&P zr`@?XV)uQ9R?Z_S=Yc)^{fC@4@X>V1SyjW8ORPdq;^UO1Wc9SwU~l5ozl906-FseC z#EF>aP+>Uz8atQTXyY~hQy5OCqpOn?v&(O#&*(HXK3_Ap(URQlUIX*SoNpF?T~20? zkJes$|10Co+ae6!`0l-eAAAe~k7-X_yh^%H<5VI_!U24%osKBQsDZA#_&BX}pWI0% zUGa;eQv(LX$9Dy)vrWGfpZw}PhJ+oDpLmGx$!v^a9dGE(;G5r;-<&_bdPxz?+WGY} zq0X~CdYAil>LgH#Wn#LJEFKG#=stS}l%6-v-LIqhx@zu*5}4?`qyKkANcbaG@FS5; z*O4I~z2nzT?uZGT2h@a&8r6GJlXXZ-@0kbZCI7mL{+pP6KUv3+bW-VuLpQN4PvbA)QQpNuCX5a&4AU8DsVEbF`yI-hxL5KC=k+6VjwGYY)>gA{{W{ zAbvBQ+^?u@fe-%ovD(fWa`hM!&TVMt1J_tSK^^zlUc3vnjqt-j`H_P(8q>3o>)=Y9 zsS0DTsw&Hur^h^_>eaP6hD*j96~LFQ?6hx@s>*Z0lm(4Wr(&AUuANWYq+ue$EI(I8<-eOFVY0(wq&fy`FG3DWCSqM=EfdBggr=qIK<#Efz?F zrd;vOqdDh!J7c&JY{{H@T!k#M$aHXpeYJmV&)>h84>mk4k9DmFji9<|gvUxGm--5gc{#Mu8n%!NwrM;{&Tuqjnxj zT;A`3MF(w*7WXQ}+QepKTnw?Z#Oz{K5yTPHwwwy-wu(=f^8kH0op*wQ}#_F(dCnLlf)a|D9ohFTJx7?+#&0S(aHv#>$I_z%+=qMi&5H+ox; zFZX8i24BueY@!PLy5$ncj>O%6%nu9Ax>=U`{;F<(a~#d#5>YTA%% zV`KG$%!DY5ab@0{-K;5H%i=uY@L0pz%ndeOP)er=qHLeWgC_hd&RnlmB}Sm6|8EwG z;n}-Fj{Mw}Pkg`uDO?yNH5x`&4{E6w`CxmqxiIzCj$Gn|5VA8bn)bH+FiYyzUO# zJoN@y6guKs&Z&8n)U-*!*Jr4y&M0TD6Ez@G)}sesr0MxM)geh?tiH{tOY#IRrrn}B zX6@b2$Sit+BG?>el(tLS{>;?%UbA9eG83tw-^;SKE8mzEOE2|lw!du6+X9Tro89Oo zJdY;wfimH*JmJ7-%>L6rVgPr4ZPGU1=Cs%ftQNBWZ49zw++zc55oQ)oqwgNm_F7Vi zI`j7Lm7uZ3CcUnUdY2H2LW}&A@QYYw?iYY7ww_>)D>R ziAzVE`X~KKJ3U2k`QM&ucwU4)WJQqjv()uj-5k~K!!P|vWc$7ePFUfBsGA@RT< zE;dOfC++-^yjB*P2^V1qDrZB)uUK(8c7ut&|8$*j|+ z74qX-902_jUR#BHvxct5pmTQf^-&ToMXGU2Bx`3%izWuKd1%=xdPnYWfk#i;2 zmvGbPaW^26UAu2JN}ty>vT`Y=zDE{ICIDvz+$4xX5ksE8@k+cLjMt9%lZVo!Ux)l6 zFBV69pR>M+oOW4S8|wI=}Rg6r#zM^5ISZp{{GTC;Z`F> zm*zv7-ZrSjU>15)>rmgNMpS4{IH02^=Xh`#RUCZcUS~jrQ5}b(!_+%E-%=^=QRR3pm!)FK#dF019;Cus2Jg^$EGn_jMah zFcrCcVAQ+zQS@B&`pS(*#h1yh<`)6%$a`i`lna_F*~*3HE)x?|^40B9R*83x1`X54 zJcTyAA8<4M`b|##{Lbe+{Jm97RiP)L8#{5@XE5D?lh(4d#O zg~9pmgd+Hq^Z;(LOu>VR`-lEzkRDM@M*sXu7Zpy11awX5=$pg}DKq0cvB9gR-dMWxXLi+XgWOR}y z{b<&!?wBV9IBQe&&Ydt+>xYJPBRw+2+>x zU^Ig%;1;x83Z09)-J>}g$rCh+he1mL6jI<9$y8Z$>XWaUXV5EFqI$PIRoCO$35?iJ zj6deT*oe-XCm<`Yedm^LxpaGFjsi6IsU*RgpO&TR8*Rx?o0tpTDk3}2@L~{8{AvVF z1~lZ3SUv2^0OaMAeV>26_z3#$SM%1NPa-lNU!eq2bY;Fh6cctGBSR8IQ;?MB5!FdD z_RrXm9aeWmEjd_+*FCpvih%X}`tdE|pLz-n1iH)51quNgKUvJMmxh5v>x8Bp-35rj zu>Y!cV=dbj-%cr>2>|0Qzj2%GHt#arzFkOc+x6A6XS&JRH*6NwLazy-x@WjFlU)~Z z8I8QtW8;x_1>MzhGlt6LXH2c0hBg8qzeiw`I0fO?U1qjHpFFBIZxo-6k&vP2$P=%w z^=u0dXtg>|46wo@tqRA8?O}ga9WY{q%iWq%i*s!COFq{jO9osl4SIDl-MAjbQrZ3T z!jo?R`J(mV#Z26bqyt=hn8qxXn?A4zVCDQNgEh8X-MqUq6;dtl>XHe2f{O@2&TBdNU z;5IhS`}n zP4l4}z$1j_*p~_T_VP;pfC>tyqr=bY$hT$k2Z+v4&p-x+?eqg0Cl#rE`J$)|;f!#DvmOtN2N*7^>_I^ytjq*#OCo4NQ16 z+mIX}M9jkoYO>2>}1A&5Ro@x=1=OR+dEwe0W@27OCGPe$v03eGF+S zW{sG*F8P2B>5Xc<;$F2Z!~AeggvNqC+)#qqYQ+$FNe&N54IaZ9rPOwqS|Fz!tB3I^ zwa8D$xMR|>_#E`@GHGD+7WYP5iwQ`hBU&!@z{5}44aWEho8XXxxr8(abzS#bf zMV7B?C*z2sT85n`_vchf@wAYN<&i@bASbu~`ByZt-Awd0GF7Dr0x!+lBo-(tux_omW2&*~%pIwP~mTV6mTsh2^#GBOt)ri42)fqxTH~hDzl{9NKwV?d= z`>*^CosJgtXdsWTxcYsn+0<}e(E$89n;=jYu2UVt4ZrENg4$SO9mC3JP`2<*tHw%} zqb>tF`1VSe@DnAC4GxT1A|1U$tuj5vVwnnvM}SS)6e>-_{Y}vFrT0~{_jUE_F~pA) z*Ouo&_oLe5x?YyyC>#nr6D<$&>40qmbjz5h$y_)-M;yj#s@cet0v2*dN=VRXZY@$i zOQyYs7C})_Vb1a~lJ6pBW@F9@-kY39+IgX~>>Nj{i$70Y!;k+YTObvqrceG%LcA|6 zk*#GrYD1g*IQJ2Q))dbSp|2!~QzCm=C!|rLVbaqq3CaXz9!+?-Zf-?k{7T!t>DL<4 zfUU6Hj?Wft-y~Pm4@$l*{;x!LdQIi;MP@*6=r<^49YXB#itJX9DtaP_YYRyU z2ftT&jdd9@N)1=6r?Ex9$E+)!Bpw5+#}hwBf&XN6vOf6wXv z6g=e)8Y-}DMCaGH?h{)y;GwN-TLL^|Bq3kZwqjMr?`bLK!!v#0YXG`!lRwx~deC?` z5aaU#FYMZ8>FuPozBRPFrun?70nR&~*8+0)UqbQmzWRk9eAruX6Mu58>*eNUqAvHk zqWZcPgj(3;xkL?|?zYm<*A7@Ao|F*-FjbZ4ydFLvwIEh-xpSeXJ$BJRkr(}v2z5lm zC#4a7^&{u+m(BD(_l=4vI`%imo0VYNMRmof7mF{5WhVOKKKS_v^;&m?=Bw`Jeb&uD zCU5PFH7*9clGf&Rn*w`jR_l6R}o>9!ZK=kW%_A+(OD{wm*7(SohO98-pD$js8HhU@79!OV=y ztTvCdc&(&^2}sBg2bj6Uci+N@D~G6#884UjS1;l&kiU?ABFnRD4^7~mgzyr-@{8!k zHq%i-C9GOr-YENxkW1lhR69tj?o}nm<@9^D%E`_ABNog&(+;L*Q#mf@T4&-@`~?AJ zDt^T#$2RSb00n3eYL`Kz*pXG>*7v!$q0OyR-`4|{)9|QS5B^T)$ z#$fbaBeG+(#1_%0CC|l1XeSy!T^@JCQCFRwq=zUlxa08Uth=GBpN=Dj0UrIt2fk2k z+7RE#%sa9%O%0prgA&fMMvYmfafWqDE%;0SX#aJlPk_x4d16sgMFF3#IN##dIsl+F za4S3{JhHjcth8;ew0j>k0m)`Q3comO>Mdt4IrT(pu%33Sb1>Ufm5-Gzeo@v0ZL#{f zwWg4djH0J%hVVl&o3OW8T%58bDO`MLgF!FL{>yNVUJvQ5i5o+cQpX$2xZ3&PT5t%y z3re3CnN50|R1vo>F6`u{2tFh`mt;$94E0HzeYWi~%}J!pdhgp%c^dH_N{eeq_?Jt1 z#GKQ47((~80Rfk$voTBIPpi+zs|ekAecC37EyVjGL&K~$1-Q`pi-A=hwXK%o+AHU^0)_bfs^O*JY z#F>ra24rw;wHswE8#j-g=aB&g`?2hAia(TLaIO0H5gyxg>*u{tPPXha0X3cE$e%%* zSB6JpYXPucE|pP!3A68`Q!scXgq;eoWO2Pav>l}D$rhFdh^l=^N$1nRUHH1)1b^%2 zLL$d<2B;EvSzJyx2z~_az*e5F*DsCQF_?WPX4S8DGGbqdu4>E3sLQ_DTPJoU^Qqm~ zjF@-Ma`n2FnF##Bs(zK6lWxGHsR1R|X_FEdC=$o;Q9I4~;kfCtgr~#$&{jp(;Hm)E z86>du&-kpfl1ujIs(m|F-Udtn%?-{QW!Zb^9{2H2i>vo8a;(Nyo~r*yr0e*JM!%lG z(wji2hVIR1?Fg&!^%B=ccgV=oS^P8p(_pREE=9E!y4L%e z4*iAkV3R|9*de|m?iczZyVk@zACjDkndtVIc1cjczwMdPfU2shDrm6q@$p%l|N8Z7 z3-}r}%Wclzc-!CX)rRJ#7cjk1W5b_eP&9)g9JzBCSSPBvm+Pw`q_Y+19HNe&Ys(D1 zraw!SL~HE02{9TRHoic6K1rM_@PrZ=j!y5NuFc$3l50d*sUlVzmtla}ljwNm@NOG~ z#W9yVI+(3w*HeS8l-32Mub9(JdQ39Rb99vOiX@OdD&C!yaX6Yko+a5^>Q)&-j^{fw z`$l0a8bL8~CTI9vVif`mPu?p7A-s7J##- z)P#A4YZrH(b)MUO(kQEpxObvX$P}jDM&?7370o_XJ$7{}dUY5HvX7rf3#;G|P_2$c zy~yT=LT8g&*T_F`T(s;Eq7Q-Uy&6qP7y5Sl3~aS1p3d_)-L8{sAMnkEU0bgL0E@5z z209PAkoc~4*QwUy3^W)I+)poxjwq$|Impy9cDlD#V>mCJSBq=fA_M%WCr>}nXugZ)V}9Ghy>EdbU`2^sjf`-%^6(V~658CxtJGr9CjBv#|uYX;G8(YvOFC!C^{loo_A8$A~IB@+G zG2r0dpUv_b$PCZ3>_honLV6*lTYg>5b;xA@zYYwh?zgi^{~}q1^bFvM3buLmFm$~w zsR|w*MHWcjB%n3@H4_gaw$e(ZMMf1kp!URW(rS+sw5%J?<{06UanK^!2H`Lb$nN)j z{>i1)ou58qq_eSy>H!BoS&o`>UxXg0)1LeVErm=otX%BzO7KBKx7*b!l(}>BBRn14 zf{y4snHv%HL660j{=oDsSuRbcZMd7ML>Y>TR#B+f4(CgFmx*B@=0_^ev>Uk9aiV)D zu4A_MwaWU)Laj0r`xBANl_L_U*-{@8iy z3X)Uj>*#?Q>0OW8|J1@={QWmi`#P%OVqa>CpHRW2=q-f6aBhZW2Uqi)uva7OKmUp6 z)X|a0l^DNZT5wX}l9`&j^P>>gs|QCY9;p4^t?hq|S6y5RGp=nlx92W`xNrbQj0G-r z;5N-m1N;!CQh^|qw`pqu10GFtoSV0m->g(%Yj@}6INr9!|IvI&;6^swdSWJNjzw)`hddp#`A9TP_m0 z{PT$b?!j4VdCPSDlk z#Jd#{cpK3*Cj}PuzDEa-vCk-p33r1f1o;l~S#GZdaC5BlNSU_k&E8#;rN!7syU&qA z$bkvV62N1%K1$Q4H|CNI&$z zZxHJeM?qD!IduUfE*QEN%ltvtozNz8|Z zCXHuym;Cc-4FTZ{@Kwm23{J)31abwOLAE@&!j$=k$wkp=j=!?=)-La;tW3QUJK8^= zu8X@7QIJcP<`ZiJVvlzQ0A%53&PD%di{;psb+&FoV2@` zn7?R&T^aS45RU!8HkJIW7`YN_$FsIUYG+>S@g?=0Btm^puVs7oZ{2e81~O%Q+rE@c zA8Ce*D42A;Lz7a<8Tp@no$KAVXni}Ed;+JQe)dEDF+w2Q!4cQXFGEXPj10>!FSiN4}P^Y=zBUz-3yY4jsTjLDec>~Z=XirnG%tSYj8SZ?i2pr0xCq&Y){?RCu zw#ADxs?~r|D%$HtVN{!4!!Dia5PD=2(XZ{CJLP&C4!e0oR4sgD>8!zd^NBo&5;zJ| zg#sgd+|knXpQHzkf1Yy4V}qM>z;g@j+yHc3Tiezwf5QgEumf0?D?RMEb?$dAs3C{> zqiRB1R|APP>d>?*A}JOX8`DH+*7Jw;6bZll5j^w!sFx3@mN@>5$EJ{CtTn%}WpcK; zeH?Z_2-Vk-0oDde!|ZJ}Ree+Kkf9jCq=hDqS3y zzGO-^`WxFBAK@sj+}3F^zWNMk5veU5juD_=4S8nRhXb{kMj1drRi=^ZNyCSZ)Ztd9 zm@t0x?`82~1WOK~b19mOjGL{mJ3>9XNQ_Zsz5K|1Fau9Jq1M$iG$7P9yNKbL^xyq# zLGlbmN|x|zO=PXchjaZuaq7(hjt|Bn39goGi%FBBO&DYTZ(U9$`=^>?y;m^lj^WNBrL?r{LdDy|+*NRjJI(>kaCC6#}Ls1nILAV@Tl^ zx&6c@iv>oa#3%CaZZ2b=rCOd!45dDZ;g5>QcjZ1yucLBRrP#%?*XN%Nh}E=b4hoEM z&vhW_a{%HjBu z0B4<~mwfEaoR{s*)x^|{B0ymiZ(cyWArO469M6rT`Ef2y?(2abzy4}{6*%i=N&*{G zYR8x&5n!QQ?T4H`H0U#yB+H{A628x|X18|^V@$KE*xt{kQ&+jT9@eCUYFlPz@tKbK zn?VOxlE~Ph!41F1@xry&=SmM%yDZiPHPMRi34eBAs`A5itt z6xB-M(UzNk!Azu*T|_@F2bAGyB0tVQb{+Gsp2|NGay(QUIZ|w0(r`Bey`ResQ6HDC z8!v`}vXfz`o^*nX!<}R`sUm^>yB_YWuoO-y@q!6ah~yi-WXZkYL{0|c{8JaVqr0P% z05so20xQDyFkPmxWBiLA-*mnid}U{{Ku?{;-Im@|3|)YiY^m zKTm}=s8x;_n!M%HUuDrxs%jVO;sYeVn93E)6B5&mQkU0YT@E9wrJ*`+I!?{a&BHu9 zFF!v{lRRNMdXMUQfmsv%hlVdcori6m$de3<&>&{kWTjr@6{|sVo}Vz+Timf4D2~al zac#|`=z9FQOQt!12FjXsVpz^_@czn`+fZ|(4d{)S-oaUh?NtqlTUqkfgs*e4)L;_; zDk5qGU5xT1p3kk2sEeKczDoI>TJB}zdf<|C$;-IhZRAayJm#ALJ}J!zx6Ois5>vSy zZIxnYjIl=1f^G@KVHKAA4eulT%MSxJ!b8%j1MYC@hA_!GYs#n!D?1_*yeBs^ zT;Z`N&Haz4me}stnNyh@8YNQQUc^&1mv{$(^D(Ueq!qI9Xt@$(ilZol0>l zK?LY0GEIbHXk#m{a7Wqapk0(_%)FdNoo$lxu8-U`Z+62H^$A?=e8 zU4Lx529#c|ltc_1)xnJ@p7bYQ0G&SIr&28r2pEBG*JF##g-B3yO*SH$1rt!nKcYw^ zu73Sy&*iF6S{||gv^u){gmloK_&eM}Nq~GNtB-*K!CG-oMzVAuBXr7hdLWsh1G|Ab zY;9{Ga>{)ug>0Cqr7_m!J(JUK9u0H5ZH~u`dqaWvi@u$4FXa&a52$+e*lL1bt+s8V zTZHC~TZu2aT}aFsxhA*IELjK!*Vo=rYfV@OJ6pv{8pb~+I|6JV`v{vpYDoZ>+jmcDo`Id+02~{2MyK2O zkX>09^Zj_0iiV#s>CrUbypqfC&+5KDR}&3-mwO2r)<>NA%RoErjx zP5MSSFFJ5yFBT&-SBynDyEAAJGnl1(+;@TjYuf%AKXGDCb8_-zynY?uH!D`%pT2Wz z$_z*mO3Ahk0*?DgCA~JPFiv^LZl3riwgF&plkOQ6uP3fd z!doO!nQ|#)8jNk+azgGxtk%!h#^k&${TN;gYepZ#{MM06CLmw!2}B|GO_1$=1vC$s z)85$@Wb+$~zmr;oft!7~j8}{bB;`Lr2$fd8ime#Ir9MM`mTJrqe*x&bXt=e-l|S5_ zyS|+ftnFUjU9&dMN55*Tx9kDolZ&{a$hP}+rjkWyL1CrtcMZ*)Da@<;776?qcoqBZ z-jVLLHZ*64M1`K9;cpmZ-YAA%xPIr8(T_%C`3<=8iXxwIbEvQoLsOb_#kJ%L7?Xer zgn*(d!J~MdBYFg11^T3v?{1QO19-8uw8+(IBwJj5W`mWt^F7tdsQy`V-?`;$vFd`W zU`_MoxWH%9-kN{AM;oYdZ&fbXqrx8n!F|*+AfRde432vS67+y6t@yC`%6!x%P=@J6ypu;2Hn=mhN=+p42jF6hU z$ZGfeqm@$0W-6q%!dN9j1M@P2mbFWTJnOp9rx) zHf!xJ{=9{h#!Xvb%YXk#LLT--`Fyy6d;-PUBIA@=k7ND|(Vdq{?>c&4*CR8EW;D;| zHt5cE8sj4Y_z@ z2lTysCaS)>e9q>r()H57@P?Upwhkv|=u6?8H$oY}VOmimh-J%W(i~=GN#;*`MVI+q z8ah|EUSxAAF*{ZRVj38b!Sn4!Oo-&nx6*J8kP5>--4|ErI5)U*Z3okG9Mm?@QS@U) zM09uw(Z@San+?aaGch&7W4BA^?m)F_0F9oPG&GQY?E13^sycIqhlTvSLxSOVqkFqk zZyjp=R8c*0S%%#+F~EaCSu76&7OmBY^9q*-GOswlGWdNs+gdCcSG%!8AxRyXh>-5J zenPZklxmn8CH7>G`$r0r@Wp^)URiep=R+k@X780Wyjq+edY|azXeO+sRvKMFYo!y^ zy)hC2C&A@Z>cyPIlH?_?_S8G7h##AMrg+07P<0)6fh0_w7dC=|7k7$iV*Xq82EY8C z^A#~T^Y|9gK;mx1;C*8cO{qCC2WHE`#t3OV;CC`0>b(k)Kn&Xbm|k&_-1E?)9SHqV zO;Ud6@@KIAV%6wEfeSwld}yax6+Ssp5F5sBw9lTiQ`voF*0|1X?=Twp&yz%JekcKK zS@|4~AaA|Me%(XVfEPAlp3{Kg;@50+bewTltNp~J&L|k%vu4)u?~Z!&FK+*pbq>dV zs-jDl%AnxHu>IC`4(irqHp`XA+h6L9kBe)e2B0^Xw8`Llae|qESj_n~tJyE#U1(k% z-KoU?EzOR>NT`*QQwj&@^B2_Or&m9RTQuFgRo%8NUz`u^>AZI z7BDRNuBXJ16dX89zduGCdA20?Emp0|dGNgae(txx%7!Gp*%uvW;nv(0faqmYP^n&j zgv%uzMt$P6Oe9!His)fb;YcBiituZ@!&}W45&b9ry_4m2%M#av ztV&bQ0IgW035Sn;hO?VF7-3O4^i^O4c;hGyKKK&bM#1@2TM^=rmAke;*HE; zPgFN=KfilLP4eO`NCr25WMj98hb9z3IS(QdSxJ*zZSS^Wr2kL6QBVRuQo8@#(~5Cx@yx2BLBJ8X8KwGh&r^YkE<;U%z7hMZ~Aj2 zze787gdg*d&(#y%n`)Uw9dHMXcBE*``Y-LCPpsk@5S9E5Ntkt9K{L{Mzft|01p7)l z`WZT}<&yZ~*`;<2Gh85z@1y-F3>ZGLnWLEF>hzsezfo(W{a3U;kr`o5g}r?WaZZKH zs^}2FCw%IP1;?;7w{9+l?hH9>!H5`(D}4U9tG!F`J4lmmCg2U1gt#_#f?3d<`ciS?V+6-{n1Ov=L zG{f~JI9`-3B?JtDgCEfK5Hd}^6SHgIXyF4i`DBK`9OZ|}PNn)eUI~(|QNanvm<^%g zpADVywvKd{Hec8WT`p!v^+c6KhCXu+E@~U%8^$Y4gzkWY)Kx>+~B_3ex(=IFzTuZPQ z;Xa`2YuwY#ScGZrcdg^^2t!GJpBP+Z*;RWY@EQ=m4t5R0p4^rjg{@j#UU-v(+z~2n zEjpR6OxM5ASxX;;e8Y^Qbwn+=y9V@c#p=P>dA$Jh{E@&ZKC@{XeTpF=d{v- zdm7q>O_gppp>C~6j=10T`oj(IjLK`%h(w+BoLik?2DM~%z?CgIfL6#n8!znIeY=j# zn-t3?%k?t&;=r!=STi#FNxdr5R^^-sV1WRanJArz)YDe1K+mjzM|rCtl(Kj-TBxY_ zn{o!>n9ImSq#J$_l0C@NZT=&$wLQG* zbh(!2G>u0XKki51Dc^}g^Np>6ZihJ(gLMSNZt=X)wB$TfJ{^+N+qWNZjPVHFsj&s} z%3|jU)dtbPul{%t5oEdBYn=ZnZBQ8)b(@1FU`kqN;TjdPu{uCr{00B-{DSR(5kORD zg6y^S>x^&SjBcs`JtXL>7CrF{3BD50&@23apc^`SB{T+(5 z``4AxUDl!YAea3U7Qi$-qh)#^totu5RUN2?&@q$f79?e`!-@c~!`#}vU>Il3@?J0+ zRbEZZ;~1@pd>J9C0MPn|1V9!5aO>2&dzpb);gFaeX(#L^g|6^FOJsj$#Y)~mdyaeV z#k%N8t;x1vqt7e3fRTuMu~_JgXjW=({Jz#W4yS+tJyxpXRpui#Q%vk`{!%JLpLcd8 zyIMCF0+yZ`DZZi(ka|fAYDe?&^@u%8GQ&tAfr%2v9F!MSL7MCMZP{M&AUio7hwN+< zE1@d~NtI7PyR2(Zf3ku8=v{J$IN6&DV;WPZA(Re~#QFxHjFB28(k&!)rKVx}pap>p zqxq6Ed*Oyakt_uUAdAJvSJQI7_bu^VV1njMajHJef@c6D)ta$%Zv?|fb?Jyd)bo=#WSXWhK#{-nc0I*~86?+v zk{4h)Fvr+6TD;0E*x*0X7<8WL;5Ci`o%-N_Aw=0S#O+V!ZRyUv5Yvth_8h`%hK|_H zLs*-9If%QpByn7~c|MSeYh2}E$f5`dHJ%my4O&aZcFM@d@eSHJm)}!CWp{^W` zrFXVBb{^|Ibnu7o#TP|T#ywCfICR7#S}D-~A5mYyRaetAi@Qs3hu|&&4o(OO7BoQM z1b24`8r**1dn=z|5ZM>8`G-mW?86saZ57DTmeM)7Z~**Mo4| zk}ghN0y@v&XiauQklXx*Rm1EWVn-y>dDMCr{AqP1uMCWzj{T>>Boi0_%4)1DLE{Ol zE6v4yROZ1m06GkuX_!D$Qd+rE)|@$s<7S$I^EQ&`zRpD1bUz8CVb9yQaKlnoHkbL= z_TDXGnusdA49(ekup*zt#=6R%Dibu6Wa2NdKk-@p71+wf|15sAB6^5Y=t&pDt^N~- z3>=10Z1Qn>$@j#U-d0o2G0rb^EGobf8>B!@x*kLX@N(X4rLx1h*}bziu)m_*UqM-} zUw4zk6tx9B&k(CRv$RzLm1*THBw3SH(xco6xdIB71l0{bbujBLlAexJGav!f&rIPM z;4TgBKO)!BQ|l>HfsO#|7pA^DA0D&{e0sd7t8QC$JTevnzFJK*=AbS8FWhlki!}`{f?$rOwW7BA8Ovs z-xS@5h8cP=0hI|)@0@iWs+5L*66H;>ax|dIuVonFAu}Bw=Yk3^Ls`H#*coE84;lJP zg#>+|OeEyyS^3q@zIGwH>{I^*Q8PY4M7J5cw$I$ZNn_2O{b?8HKK z5kxwP5K@=Z%kdQ#FlONUHEbMb`?|D#IWo4sm6DaUt2VkA_j4ZeV1;7{H$4_5CKY|P zenj_^&i7*PI*MYSP=FQlX%K)a0Fp%JAj9nh?NvyyHtU#)zYvjlFWa=t9JC|)`5vlt zd*vx%L}iK=`dY_V=?c^0)?+03ri+&Nl-IRtX|f@x6rv(rEubOIl2o$U46smR9e1X~ zNq_1BjvtzHRiOo$xNgB#I``Us=nt&AGz&gIK8)|=G>THnr*QfMt}S#*K!gG$!21Y& z#X_#jaiw>xUfW-b{`3%i+iDq5?E86y8&O#l0RzNCK(68UlUY}H-ryj^52C0;NO(*9 zzLdPe?HX6e#=gsJ0X17Ql=rH%RJHP*ki+`^N-#6V&FabMk+CqFme~ zUQq|dBLm`~MiVX9VhiUvJC@PWJu!csNID@;Qy+kTZn-d>2fhV#CxBg+At6PY&X-(z zlX8!6Gcsp*g({eiZ%)FV8tMlW~wCX^D=d*6HB_gKL#Y zN?~5TmSVzVg{qpw>NN$&nUc)*L7d%vbj%FDFZqS-w!%PVr^3%xl!Y=>HKMzGjqDP# zvN$O%fnu6`OIabT+Xz7zA1IJS)zlguYO*09h}4@>CT+rkk&pWeJdfJ1Q$-^@TW&@} zX9a%1L3#>a>iIFtm3@oN!)z$%*isDCmh94J?ywR25~SOf!lr=SU|J`~s-SlA16JO| zr_xV;brlU@VOr-M2cJ0gaudJ3^Pp=J6b~;KYD*Wh~K{O*U@c;P`c`7Y? z3?It#n2WnZzmsWf_X)}xCaXBsiVH|yb?8P6`J8WGDZLYUMJ;bZ&z^5NKmXvGIQ|Ie z;-PpeNn;qr4VerFt({#&gjG=NBsTZ~6svN8_J$acuf9?nMIMyOXob*>1z)GB9bWqo zwU7R}d9#?m*0`!Ikr6`Xs&Q{j`cz_5CANb5jziQoMd-UtF2hblFTuWy&l}wl1K?0N z4RqOu`N4-j192kz!42DB>v30%Ir%tJyC)PPTR`r)#awMBPIF-bLyD_awK9G{!xt7D zaExGUF<4?SuIBf1gVHyLuxXj0Y6xfc#~bNfeGsgiz}NI*n#D6-ir%d%c?W2g|Rny+r4pEL)4hod#ntwk9G@v35wI28+X59$ju@Sju@l4dRCE1vDCRZl`G;^fvCzLjoAZBaC!vd^iXJK~HCt zAMYtXz#eUM@vIpgqEQM4k~b8iCdBH}K(6FG>6kG(+ADA}Ao#0Y@J=sTw9sgYVy&-= zqVjAWsICi40r9GPcKvU6+y1L`Vqnd58lYY!D*QrhgcX?XV?vVog%x!_1Lab5=z!hf zM}jE(ad$|ud7Z+))`fh1#ggX+zYlRBIIGvc^4dTHqU&6p4q0r{{vZAj0>{xGzF87b z^N|<8qIGN9^%tUrtonAuG$@i!qRnP85BIS zq$}yar>_M9S>(>o>g@>4@}WPBtoz*0ub3 zRwwxUD?mzXG*pG&$XaJC)%vF~{qj#^+7@4c)09t^3<5;}8z!g1F70Tk+w(YnPZE%n zr=NLTMQRi(A@pZrW$GEC{!ZBId$`0!ZYADC^IolSd+qH@HI!ZKF^SlW19dnCorOYQ zG=uB`NDb*YrXvmof)RF#Ft!p#@ygtVO!)Vfrv+&L_ch^~;I-04tXAN(P| z@`Je!J9YyapiMy3%)fvq&gm^lIo39hvH)!P25Wocpj46O;OH|MlgeOa%G{IB1zv?1 z4w0&HyMqMF^R~Xha96~){1woBSsG&?B~A=&*q(s{z?nwFzJ0_iU=4H_@SAdZ`Avhkj1+_D4nQBy$eI{MiO5@g>YCG3YWs2=bC=MWr;PIP~hz zq&aUAE#baW0GacOyvBZ0%(;Gv>vtP)CvTGj;v`?zQ&i7Q_a-0O=|F#6G@y-&?Zfm2 zCKQ-+c0}1$Ta*~foOmyxq}Df3_&TdK#|J#WQ3=-nGx+^a_Hs3ASo4d?CGiE5>^Hm8 zzA|8MNDm+d8_IFA=$ohNl_^=)MVQvV^?cWbJHwitD%sdd&=uFLe)TpGS8_a}`u>r| z;ROg|Q*iT9zUd2CiJYTeOI7`YVO^SPMBTcqfJsydDqs=`^?B2dwrB2R2@aGFPP?{e z!f=|>a@lEGspqhyBs{*BO`^q~%)EHbpD-Q&O8@k_ou^=t01I2ei$qgjKY3YKH`n{}hPxd}OtsjH2G1i9KKQm3pO#w4wY3T(*p>8) zj4*K$k8{~Z@FHPhmBxKV0m}!Kk=>TQ0vCd?FW2nt9{*gjw`KpkCqH*=CeKFUB3>5k zc-LnhOZ*1T936(?tzCbVELPc6ewZ=#F$;g^gP#}bvcO&!cbb>RFP=5_8{eI<5Bs@s zF|PG$tQ1wX=^cpHp#0 z{2SFxg<3k9XW;xo`~J#n+;`RXAoMw{Z>*z*PyPzOMn(;q65WXmgGCk15$lUd7qV6b z6p(oV57&VqYiX2vs=t8HKIk?PTq?DBnvaUBs$067=O?^<^hOJrXeAtj9q_B4JW<;~ zkZSa~m#1+$_KYi|j?fANQVp1FdGKz>!hYNUfv^vo?{R|pE;KkqxYxc{Cm z?64mbT3(Zc=<{dpyeu_t);x#+I$?2*ctg@D#=3Xiuj;aQuw(J4|p%@5^p;8_hDa0(I_Gz!PP_5=j4$4>PRD?zAZD7vOYkQzBZxWoXm z2{3Fy#5&C>nN0KX)?&WmC_A`_#xH;8yZAXeqy#+ijv#`0hskv@Jq-O!>>@}+M`nYZ;VR%9w~mc6!5g!Q_=rk zo^Stoil)<*Fn`wagbaNO);bd#hTngNLBj%iS1@)*b}z>FtV!G<5I5PasZCpwhhbpU zw8Y(CLu>y!-pI5dz-Nb``1c5pxG#p9*Qv8a`EA1^X~Z7<@{ZDF^Ognx6f3QA`<7#p}Pjd0|456(|h71o?QTbjje?* zPP9T9Al)6dEe}ivu@O{GgqcYA<%Uq{=pEwBr$1>K6AN*@>cOP<6pmdK7HSz5DQq4U zGMvg@;ya-n)P51g$20x2e&hcq zmAm>Ji3U(Zf>|FWU$KKHKOU45&zZj$ZS7qISqDKR#c8)Kc9s zRX;Ny?YqGLGy^6T1lYrD&uU9&^fVea5Y!rm0s=7VA;9u4Ta$AcA;_-xi7g*YU-Yw_ zv@OP{Xt_S^{%@W~r10UdkSW4URH$#+TjX?#VzG5Hvu=Q|TCe5ETM*^BVZ>b(1 ziS^EiV>P>>BGWwZ&qonB?EUHfo0M>wAw3w7=@s?oGI4ndx)F?O<-r<+Fg~{MQBlMj7 ze^5*Wd|!t)A~14>^^D5ttz|8H^tN^3`U5`|;Wb%yZHs966P9V4bcA4w#Z|&!%MVPK zJ!3-Lgt%W~MJPVJv}4?v^}n2NX^<>}!!#^9lPP~PBT+A@h5j+!(5?(s^rND2DNEvD ze5rdT^4q@Vdr>@o&(teMc^-UkZv{ofWS3#TzZVr3Kc$}W{r-55xQSrYfCU*;)#0J= zskn-vIFJ}A>1S|U6$0XO^PiIF* zMeAhToZpNLqm%TBnXiZq~Utmr0J5O~jOI z8zW^z4m~eUq{AO(t(Vtx?!(tsn=w)Dow?f~Az@1AH#>m(>(`~S?yVqVOMWM#Hz%I$ zNNM8NrT;x`*s%ym%&p#^`IV`uqiPjZwY~Y9lv^~dqVT+Zy{bsu{)6ukTp2Bmx-Z6b zC&e<2+h&&^U9jTqF{9R_)GQxs>kXDsstsJc0lU?j0MKGDmz^^1t@&~ACtUTl$>SN} z?QX3ckBdvW*9v#Q|WL`Of_jG+owt=0WaYODe=`2%bQwh`6Y9s`!6d=PFAQBV=d+$F6VK?o)*B6=~ z#hb-9_ zK}+a@pD+yVMJP?qZj5i=`fkz4Za>ZG>S~zPZjdGcBclKDB0yMxpc{8OEbTtQRZ?wk zSLFHW?3J%IR(EaB)nwt(wY@IQ^lE=#eOgma-s~Att7qnLXo=3*7n(n9k;Ad~RGJ!5 z9(!srieYL+iQK9=mLyN5PwiZB1>>+FJOr-t*y zgR4ERp$30bR%AUGr?=ZtbM0VA0UJf$mf>b^SXlslTAmK{X0E<)!|8>qA~CPbAm>RU z7H6L+)9HwKC_n#34GzoCF2X>Oe3ZVB!jiqFhbMyXt7_j`$Sa$~sWz5PIADnlg0UAE zrvlV9om3fxJw9;1wJvyf{z{W0aocr7Mze?o9v(-cL1a(T$;!%#w>h1+-s>*&2)}Hi zBf>xtyWdQfXw-)TQ@>Q8L@KS~s`m5OQ|y^P(*LGG z7crVnS*+XnYcdG;HC}+f>TN2&tcZ9H9}>N)m!tF$iaQgc+SGdn#=-G6{$M2TU@!pz zPB}F=WZFrK#M3kVxY0ORO1wu`=aHLb$fMY_W!Yrs=qj$j)GOm`%Y|V#SaQsUE{@Sx zCe3-GgN8K8w9Y;knv?JtMU0EdENjb`w}=t-s|&?4=Wr zf?cWvUDjr{;5`=?u|z2q+OFUKxHZc3+Sq{ElyRr!5#j8Ecae&=;IoUebofn#=6}CtRC=s6rJu(AgnIa+ zH&`bBL$Ile#*=_MLyv%=Rww53LI$l?9v(Ul(L5|?1}4e@jyb&ay++Gnk(5+wS%LePJ0} zngDPs&2MBL*#2ydZx~Xve9Q#Yjr~1;X%Wf90!@x0Q6YriE+g!=f@l>rG=^io3k{-v zTInbQH#Y!7l^~5REDR>IBvk&In41$jTNOZ5C^IN9#KHZ_pFXsCfzy?uzj>(kzk1%9S zEGd2sYgEvMpMxhpQ=#JZ)!n68Ok_S#-2=p%zZF%%wKo6!ml&+BbxYEg-yU(>8ABfr z))h_jPn2>R`v|7Po_IC?3G3(I5Tpbtaq9~6sh5cfOrvB^N5oRS^+A?fl)st>0MO)B zhRUQHw-k+Bh}WO&47uO2Mj5xWu53ru1u*%@Wvd)yX33+&ITYV8J6g>NjGm6Px~o>cZ@A;3HgND6h0 zep(MTNrtz7PqAuC0tTjqz~88|%c53}pNp71gw>R@b`XI;Y7bAXOeUVb^AXQDmRr16 zyGZ2)#nuAGN41k&VajV|Kd)Ar^}d$vROqM@f|cl0G$|p|SaN0Bls~E#WfW;AfK9#O zlDC}JcxxZ1@eI$)37_|p<6aV6CDcWt$Enhd?>RsJhoCHc-CI zY28HGGcc%ij=O5>(R;?@+vw#EQyLZDzA!V1XRDP}G*XEh)p21^BT@7y=Q^*g@dYTU z0#z#*41N|cy4>nj8E$(0<+6(#&#E=%k4mIgXHI|zw#PiQPlhLT*4{|%C-Y3LZ`ozG zcXEnwhO-95**AB0SRuV=FCjsN`HE}V?#q_&KfA4Z<`E8Y=H3Z!8{d1Fo;gQK?cUQZ zBsJyglnqs_g2K&%vQDj?m0};C)vj&?oGs1JLBDN3Gx;!+@J-RADA$FS(VrYKZ$Z{6 zb#idUAEdc4D5cSB^=;fOeo|7^_%1p3(eTjx5E$Wwl)iP3f(C1E%9K`e%GUgGAg_*z zb|fMu6!z8KzAj|@=^3j!m!rJa;3e6cZpS=8rc%Z!&sWEoN!Fh)+9LI#FD)mcH8kN? z&tyDKO%0DywFuZE$<9Iyb}o)w4sOvH=dZM;1lTUG!kgBh%^18y)KoWBX)bi&~D_bE^ zlol?72uj&rNdKEjO{nnw1p;%JT-9`IH!s^nZni_Y~T6vo1x& z&XhFkZqsp@-s{t?+w=1JUdsB*9(BYonPf5a94FCSu7lE6v&-A_b!0-q9|8kq$~wxB z0~u{?<8EYgul1g+R6WJjZ&Bf}`+7;u37F5-iq{74!}8yJ{oCi$7rWy(;k6Wo$#oBV z#6PBhIP^ns#}1y@tJRvNoDX z=P-fN-ncm!QinykITN(th5zI^p9GQu8?L(<^Cf?n(x1N^q?wLVncQBCIm_`bEaD-v|0HWTJ{*6hrLc$Om>VpR&|2g94mkAUhXV!Oe>A zw7K4b=r%gIYeD$F79O_*=M|$ScDNIPh0?Ro!px1Kk2mzTuPi}fcvy4y;bq_K@lU?e z7KJ!C0A;U7-27~yf{o4DrCv};{}-i4>;S2^N!gZ&;eLj@hxp;h(u<1{e3$~VL!im0`D^2096omw=-a4Qre_yY z^JmUjWa|aK=7?L%fCsmX-;I13#avE!1Mx!{bf2O4uT8~0Sbx3rgtUM!tBpw#(%q6O z3OPZRmD$B2W_ezjg)pdT*}61i&UZti;!AFK=moyfKqgq?e&t~ygTBwMM@ndBQqm30ks8;&MBOxE1p}-klaDG z-m1R?Hhns%Dv%G6h@c|4$&U!1P!>D01y7Bh&(by~)9DqlkuLVSk6a9l`p~fq&@(Wm zqhDTxJ{v*wX6k7km7MDRUAO+C(QT!+YSpo{oUvPu5!e9~75MkiQEeOOjtLBlGwHjH zrK|Ra(w}90Dt6ByOCo?|$a8hh2X}(c(Go?8b73Mmv$p;#hv`BJ~CP))!3xX$(dHxjF9Qf#3+JT6JZ9tt~Yt#gj#}+70D_KP+u~&VV5KgMaeoqR9D~<+r z@(&hkaMnZ;b7d{#C;i9 z7xnP3lvBx&lI4)@4>?)D8)Fcrz*CoJBS@#JiR9?FXDQs70bFWRq-3ZJd0PP>p9Tu^ zsyeL!XA_Q*qONV?X}9mQwOYj*vS&FF(@E8XcRO%*N4UdiR`z?&rqX!a@!^?;pP7BC zj;EqnCgK44jn1mmSEMQBNI=5<^Whdi-dHSX^5%rQmi z;q%db1~L|^IF zZ~QzdWp;#{mOc~KS5KAs;X(yczP%rst663m=)lqbCf;EB_n(^WhWw(D~n0jU7sLvd4CaYV)eogBEZhs%eEXdn1XKgp5qO|B$S8 zPL4STf0~N|$Ca!r>X?hnRD_O=^zbeqA>%{y4OP~U%CNTp@n}a1*VYkM{1(pPeSuRa zpB^(8Cs|@LR1Xqa95|ZovkG>9tL=lcPB=rHJVmoG#AFPxAcE=puLb7na}JpoR9s8C z^2WMEoO^^j{!Y0f*oC zE7?~Dw%gTjn5~Z-m+}x`rA}yBm5#CNH`({#!@c6Nd*P6_0XcUxX)(;9IHb}-C_B^F zF}y`ZmyBnLftf;7*nwp4* zDfO>MO!F7ijmMx5tspq44)B;$MXKAz znozM<>Aijt5md4_9*#$t9ivg5-l?ZLZ12ZUFj>_4?@Yu2XJY8v?r=@c6?OL9pLz9b zfdL1RJcpj=moK^tgdVPF(_^9?=Le#?6vX#J2(z6E=MWA%?}G-xXp33mN=#pyjGsl7 z*24h1;~DNITb}AI3U7a;^nO0@y|tQ?gL(ojk#I+zfBjTE%a#f;kCXmj0?F@SgVZwO z!GdpAotg5E1<0^;yeyF7y%SI~5-3gA9u?gAeL2i}!0AwfbjU!{rpwso<*}=K4?fT$ zgUM&T(0p>TK9VHY6lRNmJ#eKEwKMA%{Dh}%>9A?MXW9qt~kL}k0n89V+Sa+q_k!p@KRZ&gORnVv7P!{`TZ zuhj_q*8&_V~z>*a0qjXt;5+^T`tqro@mD&*HDp0~>XTM#Q$VfRJ%g8JZ zyR~}{ddzPPX$q9cW3#^y0G3kp-x^dRmzB6h5=vz}WiIMvebi$8M|N9gW=wJxNS@K(|sH)oZ?KwE@2< zNi*LTt4;;^fMhwW62f5$?d1ynF&%AQ&n-i`B1?XrY)a+(14#T#)Y4;rEEMJi%>|j zb|fSd&>DEVciF?_^Kw${^1CxBhY|9~JmFK_9SV`aygzg*ukhGYn#s}>jpjU+>EZL5 z^kRMyd3}~HJk~-db$U@Y#9%@1nDQSbyxGaP>Rg!+3^5e(e;<%8xa*3q@^xMvdcg6a za~=Qmnn-21KL6Y+!NdEnyH3|7-c;*Nn)#Wd@%l{Tds6qS5PU%heoMvb-s~Jo{Mq?4 zsPz6*>dfVJk)5>UD|XU0KxR|X(KGXpSN>CVjEQytgaVp;v55&F%$l1HbAT|ZNl_+d zjHi-WrdHyN^fcl#G8JqYxIW7qWq*8B^aF}TZINstoQ;Mp&KBl-#x4D?^xOgo0;$ey z;Q?Ys->68Z78a5}s@nRarbE`*?+oG$H>8IYJ?#Ga@X7b?IrJ%^mzz&g+x$!+(c@cSAfG_M- zXqKA)AlLnnmHw@0o;%-KAVG5y9pkv`BTauUNOh-tH11W1ib`8CcqD(hh^pk=)m4O&IFf@I z$m>xMA$nuE_0wuaU};vN7Jb(DKgGJo(FZw{Qk5L!+|YQ8FJ`YJ4rXVXGz!}_)Een? z22ceG-=zi#2%OnYk+Fzo@*nQ*#;xl-Ug;^st|Bs8BvFFZQ#1?3s5kCMN-Kf<2j*}v zVS+nOb5K+ThYN?tX>VaJj#l@`7n-opElIOc41Gj=0%hWejLhxdq>x}LEk|H=+nEsMXHqc;@M_9rq^rR6%RnwHP^nA6{k4RjJ-5xi$ z+;?P5IbC;gyFx!Qad$jX-MPdR>5s2o#lV!j0wOE~ z7e_Bgv!Vn5@^AiTIdn^ED)=UV(=nxDFH2)wuw(H)&N_ofe)j0*4e7baqq49~KtK^V z3dyN>OPqt6f+0pM0G!tu6&dj+gU`V89@p569tR-N<1ZB>b9m*_M5|6i$ zW*ex=Kl3#G=++v)gMH%D(51f^f5$T!#$o4%l~tnW#qFT7B*1Tya_^zmur-#(8;sXH z5+h}Aj*D?zlN7gv9-aI?eb#3Uju7q{msC2fnAL z*=lY=#yh>E#UY^)N*0gi#OkT5k!=R%Av9$HuW|;r5_McXeXI`*Y8?2G(yz*=OhkN! z+SJ7SbR@c(5rzvke=8FTs5k4yYAgH zS>N+7a140=9fQpuFVQTG?&sIb%LN=x0n48I{LmIlE$XyeBcL?J)6E-}NBH=}50ZyV z9UfiwIv1}vILW#nHTbJ=hDrU8BGwC?^(_MQN2tw@%nt{YhhYD64#NSzQJsAPwqa5*|nf&s>1zJTMY zyP-vwt?#F~;sOuhgIfJK1YuLGMe>Do*^B!=E6pB>)a<%E+|m~HE7jx7tw1J=GFRw| z>PEQx&$`<1JoBWhPqJghQD@LEuRCO*+c|Nva`1CXe?u^|53T&!lqrv-SwfqNj)OfDUna8KDeB>HDD@HX~91@jq=F-;DBWV;3LOUdmlqR*~2HUi=B;<6a4x zg14)zBNUlm=b1pbazEvVtMcdsA35SDWi5C`1}47Y0sYPKbCnW0x?r(|nIJVdB&4Dv z_;CekBe_xusZyF^S~mNzio(sN3aYsBqsx_a7Bp(t8_##X%SdWhAkh?!2A;Zbg|qAB z1VK)xQVOWdbj_f~AU1{K^Kw^HA^{iBiSwK%Nl7ngx4T6*RR)Ns=R#eZXZdDt9_?v` zSb1er=`53J)j_)`hP_PoxIZjj2pz^-)Lvo7-k?^)iWgSW^~_WmOAjesmML&1jDyvg zNqSpqnlvQ@` zJMA9RJU(*QhQ%VYWNHQl7TVb>g`Ty@8rAuhF{t_fsJ&^aVHcAfAU8cUKjv9n18d8z zh^gXo^{(F=8AsNV9Cbl@LkeFwf`!#s@ojFBUGR&5gV_%>>Qw~Om!~Dt7ZyaVI?EXD ztNv?O^Z>XDH3E)UAT%{_QPeD9IZ7jswV9so?&e>meNi26i%w*43rKX^SEBXtVbRl@ zy0xxu8Q#*{^;o>Hg+%hOGG1@PG0&+qqfufQ7EYG*Jb%?G=LsrNYS|_(;{ds_hqw5c zp~v#Mv)!`btdH=Efb+G3{r<2(duhO3C>a~S9IW*Gzz0Tir>oc@Tt(Ov8dMz~ryaOa z`FP?4&B076rLGBF6qVeM_!$Q{^dOeu(}YLsN7|W2u=(I?n3b}S6q7k-Wfx4gLU@{n zxY3*;a2LvUBANM(i^RT<<P~?A2&t$El!w53zzRR4v?Kj^L!KGAMK?NC zIHf8zujRxk-{yENW^DH?su?ZARW9yV_A07yX_6dc)9*gjzKV>Jq9G&W&86( z*W_AEo5}+G)hxTg0sEq^d0!_cisD^?p2L*BZ(1RggHA}cp(LU)1JN>va+8zokE8a) zxMv~=lUjc~z2YD`$gaFE1M((;u#;S{vVLiTunc9=l;(;=XuxYWxunrE#T`FhsN-RQ zAW_KDIE_&o2oG(3K3L5N?m1;V);&V9!xHVvlUq|*`1MVjo9kk3ksUx#?lpQEX^ntZ zVoc~yA1DC{g|Adwbr(2+7-7} zbgcjW=16%R5A7k-!l|+mRz~cPbeaU!7%kolEj?dh4+}1yNN3)3k#_{k{Zs?(pcq&z zP-`&g9TCP(QEN5D#4LLRc!y*kyzo8z@F05ud3Umj_UF=CDJkJ)(tpUHHPTbnfgBdB3@TN_VvCjC}LW3Jm3=vTU1 z#B$%cFm&!uc8Su|dFl)%aQsMGUA&vVxa;3n<>i_wGmrw+P?MTrL+_ZN5#6YTr>@R2 z6@>k#)V^Y5mYrL3Ut6Pa^E%&LGZ=@oz5=qAqhzU$Ue@o`e|N342ckhpNSR(^EuRxL z2Xz*^8i`5M#1Zx6_s+fs^QJVBnd1%PcI|C=<^}Ic{cmmAz{85~Y6)9q5ouw>boY2_ zq2=&C6FhpEhR$C8h(~9MC{Mlu5yxTNS23@Q?vXRU z2TpnVg9H*To0La%cY1X~@}3d86CTO$Dg)bOANU?0NT4Uvdp)6ykVLrp$N{@dfl1i1 zqfVd0t{mc(x5X?N5idJF!M8IKT^BuEhuwVsm)E7d zn>F=K(7c!wF9E#z=D{;>w>T3|qrrq-YtK`=Z!LhXa%seND&@B(MlkLJP*TdAKg*KH zUYb1`SiqxOkzb(VEG4}^t->gkUmqQ=pQdEaELv~TF04f5wi#!e5sHe_5U>|U;G3V` z^xIB(!&GL7<{g|=r*EtcuZuIsxfXpHG^Link+4DgZ78RJ6F(j_nZ$hR)Sdz4L6bnK z7aFEGr*+1>-~akU{B*w9>=|2n-gB5tDkHvqv^|n09~h5BXB2q1GC!~7RMrkXKwbuo z4u&peRVDe=e1jdkm+D_wY;P1|el)PH%;4-SP}iAPT0hXzgi&gelBJ|0O8MEYNTlf? z!j=abnrd-Y6JIRI52vIwq9kxqAT$+CRq8&|)k&LaI0W zqcO&W%3iNe>@W-1g=qQm;v&Ic95QW@TU1$P^Flwi_f}MqRk-UU;q0Ta6Lh2;Q@_R| zyXhWF@y}ns=5VrU&8FiRD{DcLu0OVW9udP+@XC`%iBGSb-Wx~NAO zuV?chx>KT!Ka52Yen*>v_gJFr4v0LpJ<11W=q zr9iSkKPdhXqOJlk5NA%+AWSJqH?7d=@l#Lt+{2)%tfdNL$t-25U%3l_bpsFqhY z7}!aC`s&r_h|pg;k#wsujanOE%{9DUTZzz5*6fwgtlTax$u3;RY4^PR|JIPLdT_a1 zuW}O9eqWZbF?fz~w)7dFx9ow~6S>7?=lK>*nI8K77ld5p(?hc-LTyMf8htQX4Ne*o zyR?y=Wcr%-DXo2md<7$PQmbDyS%r5yJR2zounZL0+^rw-%8B*+PE}hO8rCm<#{F#p zk(OvHP6a#o!XQ;>E)>~pDvhPp5NFnB@Y@dn{t)B+=2KMFB>MXXplI0B009i}K|Q~& zuEzE}HwOv0)0)4vzVl=Ji4p4QqI&50X!Z|Lz9+>wW!bJ6{V~vQ=*(Vi7mN zzH$YRTqQ6Wu4%9S+wdY95PB=E20!6U&^MC;bVpK@iUy!bHx;p#U--R)X zNLFicV9|@7*PtN9X)sZ)_6$&K?&81VS}4O(`hkhpZCNkJ_FrR4c}MsiKiBh5=+22N zIs}gSTd#g?F9gDp$!8$i*65a#A)L1ETTt4!LvH?N%YGYKOc6RG)42N3M_Zl!Jr||D z0jlYfDw*&*5t~tO0gH;G;FbmG8{%*v(dj;L3DWX(Z3Dr{q0d(R4cIDdL zgt8ydk^fBRHRY6^C3156x4T&QT3Fy*SsC-p)`4;QtXnVGQ>-zHTQh1P;&~Z*E zV<%cLK`(*Fmp)#QcwRzPg-IM}-43)Qcbx4m=)EI4micV2!(XeC&ZrWqu$w_JZ=7Ev z_n{xP{aYzIB7`5=je+AMA|7_>EzQHQQ-)d0JAWm{4-cHZbgs60=DdyeITWF{@9z@z zlRbMRZzw+(Z;d9R70i@(4em6Npeh>1rw9b-2iXL%!`#J zi}eCvh$vjlMi3Uud)~+_+Pgz>fR&>#{*6bj;^xcsIKVv$qW$X@4Q_U{nUuiO!H3g& zyGnp`-VXc3`~Gs>xE0LUaKGm20#NB1PO63zxy?T8r@Nkg_RJ01U3e2}*EO~6uhhmB zAo&600=*~pp__t0%bYJjwt8+_$9>j=s z@IETvcMj$i_xn{%_uJVV#loWP_Qz2x=jG+KzOghAK%j)#7z3T}0IZ(u>}($q@(zc2 zaDTbytJz$+mheU6Jz%t&qe$-ouzkW0-T>-aax&p>SJ$BbtL@9fp?v>;#}bK9ipWwC z+Q^c9`9vkVLiT-&$XW<9mJnHrvM-gA>`V4#?2~npY>}~K$vR`0VT_q`KlS;Y>vz8A zI_Ix*{PkRqdG6=Ax7T}nz2A42y#t}SJARc^GU>CL+YQ6q?;8h;?(F>^ z2V{Q6VIKxB#AvBip9G3mik(aYF>5UY7hX4Q^y_4ru(99ULXN%s1;MpQw5Q~c+DAy52cDCB^jCs8`jscB2iNHlU@4t7yqtVN zfnGYY!64MH$4=WN0hq4N8pbKqg}kTh2`g;K`N#LoRhBaxhBO^s{Bz<+Gn_Hr0Yitf zS>`gy5sh8h#66epy;}xQkS5v@HvZ#>`AISjU73Z21u;-hAv@ndl%0k3p}04GKo;L6 z4)^|wyHH{oI?Y)w1;mwdUqisg#+d?dFYGm*Ah8i)HJZmeoH1sQ#{7@TZ?RYD)w2&1 zHpsd=jQTCSdb>+@Ws1Vt(w2w6KSQ0*SnK`GyO*gM7XUUvsT0^Wa~+JPB&?uMynX}BD%#fUB6yE z3IuF|wv9?LW_0LqDR1(b0tDIy*qNnufR=8BPc?LL8S@<)Ei=i+a9Hastk)U}OcMJi zuls)+-=kFuY_z$pfH@=rZ&g*9&ekU6Grn~mq(PS+0Z6&6n-0TrqFqt1rHRmIG^#1I@@b@z01 zr5G5aC!zVGr@HvXru+up_~t6?H2Phr&azuW2KUkUfBUi){&C}}EM*2MlgF;bOXlLc zVoX#Fc)B9|81WX8R4%>rp@3T`EiE0_Q+==0vPW0;=Z&BsMTldlArSJ)^m6wd4Zdq$ zgB@(DmOJ&(t=E^>N)KiAVsRe*+3 zd7b{q-I5L5pcTgP9^rMNFI;L>tGMG{a_?lnuBqTEqEA%O^%XOAjvB#*SlcWyGLqZk z^ZFJ|UKnG_+r4h%$9dmyQPma9pyBvuvg^>)l#ai@EPz_0izi1*EErqAebA1%aV`sF zH1Iz9ekXW_PGAO9_2nrkDG4S33$U=LlqapN5rV4&!sOofk1Ac~Q!U#!5!4{~R&p*D zDx!QGIYHy&{$=f{8oCqHm=*nq*rrYFa5ZTgdO)5RTy`GH?Na;^-glr~-QCS7*RrQ! zys7Na9K+bL>7*xg+i+S~;T@%ReOU0x_*UyCp9SktxE~; zA3S@j(xUfm1_7iul7w;{gu7*k53u_oO&GJ<@$V8?xA&X=TF63 zo%qM%WrU4T%=8SA**c)RQ>;;IABr{DCR6Z1N77PgW{f00A;OMaxV`yQ%N6-Cp`KuJ zFi}Q8?v>?L*)AYk!-q9a&)sAe|NIZDv_#7ZP5J!6EX$37=+0g<>w%BIlu|~v3 z{O5H1os*FuVtZOfR6$I8MKG(W;IaE$rCK7U=+vP>@|bcEzFz9BR)ZglT4^ zt!Q(GdT%0fZCsPw*jsiT0!VsPV#6VkU|2#Ru|O++ExoJJ1OTe@{JS z+_q4H*a{+UxDsOgasoNZJb&j8eKk0F=xY?RJIoEvGdjIN)M6-5odTiNp&fGE3xQot zXmHsbZqT;=K7&~oCpIj^G?y*4)gX7J5>PED)q99jO+=MvGJIGkjk{j*_cq>9TF%DG zQ1R$9miljIc!P%)XMZWo=wm_`Ka$7V=(B>kdEq%WO94V~!<-=M*v)V>65@=mVLy?u0Hv~MRU21nj~Rx0uC z-GDmI5>ewx(W16HpSXwk!R9y5+`VkUCSxS*m%zTdE@$D-lXdb+avV@CL2uSHVRFX0 zeq3y0xa7+@jSmtD9xm;!CUJc^waUz5A2Y{r{-=wAE^`eq@XN1UqVG6%@7LN{?fSUF z`*^P()?p$@I=<5f$7Pu95y zHn1*#oS9C2a528_K7QJV4}P>mH<45p{{s0-C5m9YY;I!wL+a+-%QKJfbJo;1hGf1I z70Tnh@<|EA!aGezB~AdP_65w#xzB&^N@pt-V_1eoAUgN<-7$~9DzWh+nPd)13lI0F z2vQ>xgrr<3zsg?vV`(XnAB0!`P;%~Wn*sG{9PEPp`$30tn)no~cWh9L zt-VF${xO_U#VkUFMcJY#5xJgub)WtmzmTEwyy4&n)jauchf&RAsxm~O0Ccn9ie+V) za`3*^Rc@nY^E(&J9*y6l6TO(SI+T8?LXP|0veEdD*Mi*D#69FKp6#WF<2Ls$!Fu{!Rsl>S2+P`!fq^DZam#6tFAm z*eSMyIA_7-%?HwXlzl-K3ZXjMvn#x_{Q68zWNExtIOw!zqRUTYlcEU!Iqqu6r+@zS zM=6tYZ$4dieO4K)7w6c|)0GP5_3SM@+Sc?p6tBl3ik1zEIESXSU>g30e3GgCu_nA~ z6pI4teO6x%5xymZeDR1HViMx+kCmm}pX{hb_WvsQV8~Twr>@eQ<>iyx*BJY*T){1= zH}!%%1*omwU?T0CZo>i!a7su->1u0I?JkP5nS1&`y}$|>USjWOa;`-rBA1YFoi|ie zpR_JmlAI-C)n89x~?iDf6_R!2}Nlx&Qahf=D9GMj?TKU=q{kAnHLypIYcZZVq) zJXI!Q55>2AaAj~3W_)KLg~B|j1Ht5^1uHNvhDr3H!|AKL%0an}%xlF6cbuEtjv!oM z68F9N5d5*`j>OM!1m$-DVUq7fLOigUYD~x>kvq}*sKkKDG)on?-+;+TkxK5kj&M~x zB|tE*YyuHa`-@31FNIZjhxmFp<0Ea`1(YoTHy?!dp@I9n1YfHEfbugp6m~H(14uR<)#ETd*$@32+%=?*nQ`K7Ut%AH zjRh$7I?92H#Z=5^t&nYijz`xLoE3 zZMKgp5`$G)V7Yb5flq8G_r;C{&5SV4W>f1GiwK`DbyKGY^gBGuid07Hc&8~P5}Vvg z1^B2>ZxOi0;)^Grn~uIF-eE` z?JIh|s=Sb}8SujWr;j-YaNCGzl+`Dl^h7Yn+?Z=c4i{Wte~3+X6}~zH!M1QXeW>Ax zU~XjU1`*-;)UNBM*R~=G`MHmjyU$${q~LZm3%*kzCY7Pmki(d1G5lSYnzGOckGeBx zum;cB?mbDDEi3b3=Kb#Oy%cWSZnAYx)b|w*wZq=`!I&1t4$z!HMz8mzs(EF(AQfcV z#Z~TxTuuumPOlQ#_#=l1Ljy?M<-SpPv?;uis-TqU5sf&kf6c%alP%kwaH|G-$6+Jx?vnN;lH4d`!;|(3Vauo0A}~#I?`@tX;j`AFHl}a zG-~}7-48f&-c?=+lu=A+;u1U|;5Tp`eA3-=PWvj6{0Fg+jJ*j-ACEmc@&P&~blN82~!S7bdCz z3{cNSyddo_=T~vtBN`K(N|0*49!e)_Msj;{h>hz!T$>-$1|cs_*b`&b&*4Aus-Y$_DJx z>p4q9nYG@PgfE1)W&#r1IWPi=gh5LC?qH~~d%)fjwq4m^P~DlUX+4t?6vlLPpZxHA zg}m)8VFKjN>y!pN^u%zESY^w3T@#Dbw^|%>mHjlYb?A%n1iyUF54)rSkJwfkCvXL< zV9quVtB!gB<#%HDr>|Tg>(B%{f2O1i)Qrwm){>Lm7+}qI78(~Fj#TTM$DKvrIpOrR zOn|zJGG0=`b#i0{%*CYT_W&!het)A8g~0BA%@Nz`>}CZN?`Ihb@pqns0C}DW3OL;W zr;`$+$FzZ<&dhA`VZzu{C0g2Sh^MhwWV>K4a3vdLBm0{cF>i6pxW>&hAx>6F8k$%U zFadGjK4;N<_Q+%wtNW9+7a>5l9mj(sJ;VkTJ&BZB<%lj|*G1sbs=1d+>%xOJn^RHz zL2-Rzjd5mG&fXjKO9@NZ=wE^Ss}|q3Io&x&BPFzNevg%`i+;HOQ&fD~gEQ}*M zjj6an#lg_pX^HvkRudAnkw$D~;v)5xaa>^EsS1jp>6|tJn_upRP9F^W+=hIv74EV& zhm-r8@eXPMRNfyt2hQK~gn9jXsj;=BN=^5K<1>?w!}7PB0K*{Z4)aa!DRuvf=9l19 z_`5sND=F<6iiAuo@PIKMxtwa{kLl|T^5y$dv$wwrOL)Tg-okdTk?i<9=KUdZ5CaEC zkPW2xu}fV^4b@lyrun;;mK;Mp`A7i@HaZ|j7CQ~n@#Oc{s)`0xiBrC2jgQxFuyKSY z&D)z;Ue0UKj=Zxn`yJDqJa7Hu(r(aZ2)1-HQFJ#5ZUH5NJ|$KcE4^Arx1z-&qg8*4 z1cxG*9*&@dWp)iggyee1OUUO53@%&qL0Cd3@?a8)OQ~&&G!X3+OjK$|lKYS^2AubH zQL3!}Ja}*^K0f|W*0oT!o}uW8!wih#;wf6^wLW}nUG-B?cAmfX=yhoR-ODD2GZg~F z`mA@4<4U;-2m5jZ1>XuzE4+K~gx~!k`sJ0B^pkAwX3&>e&F@*CDzIkN^B{64W$cIB z6)`-ixqe{hfHT%W6^4yler2mUnFaRUSrX(HBCVD!71;Z2|aS5}%=n#Hevn{4YHN=<{5tLm(qp1G0Y z+ym!WR-g{Yl*_Y|cMJ_~Kh*^Wh~!PwW{aK6Y#H^?DivizGL}ZxU}Ct!xcQPd-nPwv3rs=zvDgkalWhEQUSg%sLa$w!UB+VT5=vdt*?Y8-!J5hX z%kaftBkX(2$1`qalvkvN=GzxsJdZkGH#V(?CGznUBDZzQS$R_SK3GAKgj|JtHV=NO zJ%a11di0X3A#u;DIlLv};p;2)^XE@#Sy{tRMy9n7`C!_qV&{*?V8Il|g3-`ZT$jGw zH#ejqu+V2ik)%RLnR~@UJAKj^ zeaj@fWEu5cf9)P)t^mmQz}-K}9|WVJjg)crs7ozfNIhOnqVQxrioj^9XU`xxZ;gwu z9zU$V76K_d+-~L!p}G50OS?mfaA_>*DTf|x28R+@Dy|xAzsl0G|8vu4;M&+sAV2uz zg;5L71yBt{V7DKnb?)wzA;7;Zfe~=vu{fCBM?_K&G%wIp$=(FfR@xa}%ejbmtx1k) zz^F7S{O6qeaU*x0S~45H21@Wxc8_^`dH)qP%oYkO@D$Fva75o~DZ2yUhn-O$M<|Xz zck4XZTZV?}o}S_r=wSNg#_fq)PFy)ZL5I0BeeY_J!Y5ox^@Se-+-}+m`_;G*N`dNmTFsy-5#oJf7 zDmR*Y!H1_}ZP4PDsud1*0FIE5eK@Br-D4^j--CNoHXEKt%meg6|H$Wu0azecJibBcOg4w~0ERT5G%e^Caw z?*LRnKH^fFySJc`GE4v_gpU8<;+}^xNaQ_kmt3CeK**<}*0K}d%*=jb==I(Vn-`}S zl&**{1mVZ6)EuXJ2;$Q!fqr*OiA|<<=?iCHe=H-DOO4Mje6EInCG4}1UOs+VTb}Sm zP*{a>WMscB*AE9lPrlNgt8%>Kzeo`iu69-_(dSK6lCcJUHuWo~ax7rb+!;E{ne|5X z$3LBzC9brYiCf?+)p)Nm!9E@nsm>OxozmVPN~Ph+DXf}(db(mj!Qh$>TF}_5;?l-0 z+pUHGs8ho!pi^Pl5nPna&OX(=(JS+}oQJCe;;Hwp%6pmj;5gKPk02r9&Y7gAw>b*t z0|lU0#BqUFNTMUhC|tmdKJmmLbh=@Ff=4OiF#nN8SyEuY_Ajk|-KR0;^V=vlFz3@T zV&|?v@E~y>sQV*ZCIQ>GmV*Zne3^8Y%HG|rr7e^10=$hIztabDr$O%C_*bH$kSE__oDe<8Gvgk$<){PvPJqX{}MZ;ao#-Zr8W z`_{~e1zD^uSvUm9b-k&YaZW?`|MdMd&@=7VVznn8F`Z)gU~qi0xM*e0j++NcJ4a=A z-ud%|l0b)k2DpHwuir??MZdTv*H~*>%Kp_z$Lbyxg1L09ccJPr$AlG#x96%@^RAe1 ze@3J6Naft#foTscx6oS^4Y(>V$y@I^Y^2WjHq*KTSw zfL!!8&UGG&8L8=rfQfl<{upSmSS`p!;O0 z!sdrm>$y0o!Pd&livyV`=$NYOW2E2uh~8rwykSmeyuSSsN@Q#Y$Idm-8kpjN&&)7c z_wmrx1~LjkW-M#kIs!^0$kyWr75BD3sw#VdK;I&W%GkAqA5sDV<0+rME5WnOHZwt( z{pnVDeU&|-O>kMa{Y^V?Hj>M<%K7Mn(PBGLZy_01{r44dbAdUs6A^NzwNpOK{!`wJ z7B%iPGYN_tGg7&GEI`$ur=?goKt*0am66b+r)6N+9AZs_Xbh-QqMhcuwE$@anM;!C}cMQ}*@RMU|)6oxf{gXVx4l8YpzdhS<${_Hg!xa8e- zh|6nlAvJOTlxNGHvzwb61AHJ;)^iH--~$D0G+&3WRX=!+!!j7x^|$H@9THRTD^g@q z<~&kpY}~^K18V%|>S|-YRm9Kl-#?>$Nf?3N{~p}bW(WTB|25#ZJe88dd9TcRAok>? zy4BJ~gOQb({{LQBpheYLWP)kP{`)?S~gf+-!SXx5Y_Z3D5 zENymsw{%JER>6^P-`dSwvb)H8_&w4XQV$f10rO=XL=@u8|ai3wf*`-A*6L|#=mNi7?AN(D^vdGZl{E8rMqm?60C+ygqC#Y4Mm|9m>%aRK~TW~IL5Z{K|EqK%zt)I1mJ}J z`3;NIIsvA4{-9{-F8d!piV6ww5dF)_3!vCj9bvjN)u7M_7-G@n9s@%|sfmuX6G`+w z?3QCrOM}@r^6s3tnZ7p5aw31aC1gMD=XVA3t^Qm3ITOo0Qi@l%rl89&0XZ7N$##Ub zi3m3)^a)A20Cpo|KBHLYi_g03w*)AnJyNHY1D*3k&}*$dM)JyJv{&bZ47VZD#qE-F7;xvvG z)cHzuGV9N{_M8pGTi2%QeJi7{IeGkSc&#no{Oaa&&SNYLW|fXi(2FZPf-0kBKK%3> z)-5)#jx`Xyp~RoNHmhTXIoR+wtMfXW;^e*Z>El+v6k3PyBL6c~4Xf#3-O~jO0LUq& zV^g|1p`P*WA=ndoDtnIahD3WDlde4&E%%=9?%_{Kn-hX5-6#RITp+@Y`&8Xa=%v6< zlEbkl8>rVK z93*Nu4QN3FU|Z>4e4VlOR!1JRbrFznBx^Bn#Tg=duB<1&!2UQ2I-pV{(9baUohW&Z z3u!x$aV=T-l`BMNag^)Y402vycm`@HWsIYHk|-E94E)C0W}+t3X+vs zB;qG(27s>tJ>in8?4@IDJgBno4hSWRF@hY?mDAJKusx#oS~7iTbU8qT1TQ%qD=R(_ zaaY=%iAYv{@9F?{-PGerkKkW|0_kgSpSc!SRV8bEP;+o_7{PUS-!iwb5OFn{GgxeZ z*eBOKpA2W3wgm4vvT5kp0a+zDW`j@$6%6oWpi~sYAoZ7sY7et`Q!B8-!}DD&{f2J# ze?CbaQjrP;&;%GeO3?I(A<0{sJbS<7U$_WAP2(wTSh)yjJLp6NdA^4~Hf?UZhd=aG z{eR+PSy|af;9&r~g)Go|QXqa22TaxqUN$R@e42Vn}(FC{u5l&<*&o9BG5Og0sROdZUA6UF(jR`99yVB@y~^M&CTTirNFe@7MSOxvER$frvmhy-J-_+54?$F#kvb~peWh`a7mpJ$@V+` zG0W!&hBR9HWx*$SSzQ1uM_scC_Y@%IjyAyo`3o{{!7}R4RYe@vkhx|B(00ln69TP` z8+k)v2Oj_o(?_&v@@J=2DtUhi1P3ZNjTD&#foF1DGp5@knVW&(+df(0fO2H>=ml)7 zMkU)XHueF~Ny5>=&WWm&UGNXB`t_R0rak;pP}o1MiVLp{o4}rMtBjWZpiJ4FSEn?S zfK@3sp`Mu(wOG;(tQ;|BH)lFtTp|MNS;C z*GGrS3Et8KQY}%LFfNn;ZYoTwVB}5Ue zN>xGujSMUb@b6b^G$6~V8N$45MgO@5F`(sTugwC1mX-{m`gnxLWR_3w1zx~6f#kSn z$f`vXd8&jtbL9*~dS&&6AA3mu;YKq&>u)a|e8|9)#F{pF|Z zAvpnaOf5Slp58zrVk-OjcHcx+O^msTzkRI=-;{{}_JIIhOx@ c8u3)RMwWej5>F^64E$-{)VootW*h!L08(tWDF6Tf diff --git a/doc/index.rst b/doc/index.rst index 73926b81c..9d0dffc13 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -7,43 +7,20 @@ quick_start split_cross_conformal + v1_migration_guide .. toctree:: :maxdepth: 2 :hidden: - :caption: REGRESSION + :caption: Measure predictions uncertainty - theoretical_description_regression - theoretical_description_conformity_scores - examples_regression/4-tutorials/plot_main-tutorial-regression - examples_regression/4-tutorials/plot_cqr_tutorial - examples_regression/4-tutorials/plot_ts-tutorial - examples_regression/index - notebooks_regression + index_regression + index_classification .. toctree:: :maxdepth: 2 :hidden: - :caption: CLASSIFICATION - - theoretical_description_classification - examples_classification/4-tutorials/plot_main-tutorial-classification - examples_classification/4-tutorials/plot_crossconformal - examples_classification/index - notebooks_classification - -.. toctree:: - :maxdepth: 2 - :hidden: - :caption: BINARY CLASSIFICATION - - theoretical_description_binary_classification - examples_classification/4-tutorials/plot_main-tutorial-binary-classification - -.. toctree:: - :maxdepth: 2 - :hidden: - :caption: MULTI-LABEL CLASSIFICATION + :caption: Control prediction errors theoretical_description_multilabel_classification examples_multilabel_classification/1-quickstart/plot_tutorial_multilabel_classification @@ -52,15 +29,7 @@ .. toctree:: :maxdepth: 2 :hidden: - :caption: MONDRIAN - - theoretical_description_mondrian - examples_mondrian/1-quickstart/plot_main-tutorial-mondrian-regression - -.. toctree:: - :maxdepth: 2 - :hidden: - :caption: CALIBRATION + :caption: Calibrate multi-class predictions theoretical_description_calibration examples_calibration/index @@ -69,9 +38,10 @@ .. toctree:: :maxdepth: 2 :hidden: - :caption: METRICS + :caption: Question & Answers - theoretical_description_metrics + Metrics: how to measure conformal prediction performance? + index_mondrian .. toctree:: :maxdepth: 2 diff --git a/doc/index_binary_classification.rst b/doc/index_binary_classification.rst new file mode 100644 index 000000000..278d0c5db --- /dev/null +++ b/doc/index_binary_classification.rst @@ -0,0 +1,8 @@ +The binary classification case +================================ + +.. toctree:: + :maxdepth: 2 + + examples_classification/4-tutorials/plot_main-tutorial-binary-classification + theoretical_description_binary_classification \ No newline at end of file diff --git a/doc/index_classification.rst b/doc/index_classification.rst new file mode 100644 index 000000000..bc3eb5e5e --- /dev/null +++ b/doc/index_classification.rst @@ -0,0 +1,12 @@ +Prediction sets (classification) +================================ + +.. toctree:: + :maxdepth: 2 + + examples_classification/4-tutorials/plot_main-tutorial-classification + examples_classification/4-tutorials/plot_crossconformal + examples_classification/index + notebooks_classification + theoretical_description_classification + index_binary_classification \ No newline at end of file diff --git a/doc/index_mondrian.rst b/doc/index_mondrian.rst new file mode 100644 index 000000000..e937e9eca --- /dev/null +++ b/doc/index_mondrian.rst @@ -0,0 +1,8 @@ +Mondrian: how to use prior knowledge on groups when measuring uncertainty? +============================================================================== + +.. toctree:: + :maxdepth: 2 + + theoretical_description_mondrian + examples_mondrian/1-quickstart/plot_main-tutorial-mondrian-regression \ No newline at end of file diff --git a/doc/index_regression.rst b/doc/index_regression.rst new file mode 100644 index 000000000..2141b24c9 --- /dev/null +++ b/doc/index_regression.rst @@ -0,0 +1,13 @@ +Prediction intervals (regression) +================================= + +.. toctree:: + :maxdepth: 2 + + examples_regression/4-tutorials/plot_main-tutorial-regression + examples_regression/4-tutorials/plot_cqr_tutorial + examples_regression/4-tutorials/plot_ts-tutorial + examples_regression/index + notebooks_regression + theoretical_description_regression + theoretical_description_conformity_scores \ No newline at end of file diff --git a/doc/split_cross_conformal.rst b/doc/split_cross_conformal.rst index 936a1162d..ca588f106 100644 --- a/doc/split_cross_conformal.rst +++ b/doc/split_cross_conformal.rst @@ -1,6 +1,6 @@ -################################ -Split/Cross-Conformal Prediction -################################ +################################################################ +The calibration (or "conformity") set +################################################################ **MAPIE** is based on two types of techniques: diff --git a/doc/theoretical_description_metrics.rst b/doc/theoretical_description_metrics.rst index 6ac886886..f94606ded 100644 --- a/doc/theoretical_description_metrics.rst +++ b/doc/theoretical_description_metrics.rst @@ -1,4 +1,4 @@ -.. title:: Theoretical Description Metrics : contents +.. title:: How to measure conformal prediction performance? .. _theoretical_description_metrics: diff --git a/doc/v1_migration_guide.rst b/doc/v1_migration_guide.rst new file mode 100644 index 000000000..01b766595 --- /dev/null +++ b/doc/v1_migration_guide.rst @@ -0,0 +1,218 @@ +Migrating to MAPIE v1 +=========================================== + +MAPIE v1 introduces several updates, enhancements, and structural changes that simplify the API by breaking down ``MapieRegressor`` functionality into dedicated classes for different conformal prediction methods. This guide outlines the key differences between MAPIE v0.9 and MAPIE v1 and provides instructions for adapting your code to the new structure. + +1. Overview of class restructuring +----------------------------------- + +MAPIE v1 organizes the ``MapieRegressor`` functionality into specific regressor classes, each optimized for a particular type of conformal prediction: + +- ``SplitConformalRegressor``: Handles split conformal prediction. +- ``CrossConformalRegressor``: Implements cross-validation-based conformal prediction. +- ``JackknifeAfterBootstrapRegressor``: Supports jackknife-after-bootstrap conformal prediction. +- ``ConformalizedQuantileRegressor``: For quantile-based conformal prediction. + +This modular approach makes it easier to select and configure a specific conformal regression method. Each class includes parameters relevant to its own methodology, reducing redundancy and improving readability. + +Migration summary of ``MapieRegressor`` to new classes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In MAPIE v0.9, ``MapieRegressor`` managed all conformal regression methods under a single interface, which sometimes led to parameter redundancy and ambiguity. In MAPIE v1, each method-specific class includes only the parameters and methods relevant to its method. + ++--------------------+--------------------------------------------------------------------------+ +| MAPIE v0.9 Class | MAPIE v1 Classes | ++====================+==========================================================================+ +| ``MapieRegressor`` | ``SplitConformalRegressor``, ``CrossConformalRegressor``, | +| | | +| | ``JackknifeAfterBootstrapRegressor``, ``ConformalizedQuantileRegressor`` | ++--------------------+--------------------------------------------------------------------------+ + + +2. Key parameter changes +------------------------ + +``conformity_score`` +~~~~~~~~~~~~~~~~~~~~ +A parameter used to specify the scoring approach for evaluating model predictions. + +- **v0.9**: Only allowed custom objects derived from ``BaseRegressionScore``. +- **v1**: Now accepts both strings (like ``"absolute"``) for predefined methods and custom ``BaseRegressionScore`` instances, simplifying usage. + +``confidence_level`` +~~~~~~~~~~~~~~~~~~~~ +Indicates the desired coverage probability of the prediction intervals. + +- **v0.9**: Specified as ``alpha`` during prediction, representing error rate. +- **v1**: Replaced with ``confidence_level`` to denote the coverage rate directly. Set at model initialization, improving consistency and clarity. ``confidence_level`` is equivalent to ``1 - alpha``. + +``method`` +~~~~~~~~~~ +Specifies the approach for calculating prediction intervals, especially in advanced models like Cross Conformal and Jackknife After Bootstrap regressors. + +- **v0.9**: Part of ``MapieRegressor``. Configured for the main prediction process. +- **v1**: Specific to ``CrossConformalRegressor`` and ``JackknifeAfterBootstrapRegressor``, indicating the interval calculation approach (``"base"``, ``"plus"``, or ``"minmax"``). + +``cv`` (includes ``groups``) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The ``cv`` parameter manages the cross-validation configuration, accepting either an integer to indicate the number of data splits or a ``BaseCrossValidator`` object for custom data splitting. + +- **v0.9**: The ``cv`` parameter was included in ``MapieRegressor``, where it handled cross-validation. The option ``cv="prefit"`` was available for models that were already pre-trained. +- **v1**: The ``cv`` parameter is now only present in ``CrossConformalRegressor``, with the ``prefit`` option removed. Additionally, the ``groups`` parameter was removed from the ``fit`` method, allowing groups to be directly passed to ``cv`` for processing. + +``prefit`` +~~~~~~~~~~ +Controls whether the model has been pre-fitted before applying conformal prediction. + +- **v0.9**: Indicated through ``cv="prefit"`` in ``MapieRegressor``. +- **v1**: ``prefit`` is now a separate boolean parameter, allowing explicit control over whether the model has been pre-fitted before applying conformal methods. + +``fit_params`` (includes ``sample_weight``) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Dictionary of parameters specifically used during training, such as ``sample_weight`` in scikit-learn. + +- **v0.9**: Passed additional parameters in a flexible but less explicit manner. +- **v1**: Now explicitly structured as a dedicated dictionary, ``fit_params``, ensuring parameters used during training are clearly defined and separated from other stages. + +``predict_params`` +~~~~~~~~~~~~~~~~~~ +Defines additional parameters exclusively for prediction. + +- **v0.9**: Passed additional parameters in a flexible but less explicit manner, sometimes mixed within training configurations. +- **v1**: Now structured as a dedicated dictionary, ``predict_params``, to be used during calibration (``conformalize`` method) and prediction stages, ensuring no overlap with training parameters. + +``aggregation_method`` +~~~~~~~~~~~~~~~~~~~~~~ +The ``aggregation_method`` parameter defines how predictions from multiple conformal regressors are aggregated when making point predictions. + +- **v0.9**: Previously, the ``agg_function`` parameter specified the aggregation method, allowing options such as the mean or median of predictions. This was applicable only when using ensemble methods by setting ``ensemble=True`` in the ``predict`` method. +- **v1**: The ``agg_function`` parameter has been renamed to ``aggregation_method`` for clarity. It now serves the same purpose in selecting an aggregation technique but is specified at prediction time rather than during class initialization. Additionally, the ``ensemble`` parameter has been removed, as ``aggregation_method`` is relevant only to the ``CrossConformalRegressor`` and ``JackknifeAfterBootstrapRegressor`` classes. + +``Other parameters`` +~~~~~~~~~~~~~~~~~~~~ +No more parameters with incorrect ``None`` defaults. + +- **v0.9**: Eg: ``estimator`` had a ``None`` default value, even though the actual default value is ``LinearRegression()``. This was the case for other parameters as well. +- **v1**: All parameters now have explicit defaults. + +Some parameters' name have been improved for clarity: + +- ``optimize_beta`` -> ``minimize_interval_width`` +- ``symmetry``-> ``symmetric_intervals`` + + +3. Method changes +----------------- + +In MAPIE v1, the conformal prediction workflow is more streamlined and modular, with distinct methods for training, calibration, and prediction. The calibration process in v1 consists of four steps. + +Step 1: Data splitting +~~~~~~~~~~~~~~~~~~~~~~ +In v0.9, Data splitting is done within two-phase process. First, data ``(X, y)`` was divided into training ``(X_train, y_train)`` and test ``(X_test, y_test)`` sets using ``train_test_split`` from ``sklearn``. In the second phase, the split between training and calibration was either done manually or handled internally by ``MapieRegressor``. + +In v1, a ``conf_split`` function has been introduced to split the data ``(X, y)`` into training ``(X_train, y_train)``, calibration ``(X_calib, y_calib)``, and test sets ``(X_test, y_test)``. + +This new approach in v1 gives users more control over data splitting, making it easier to manage training, calibration, and testing phases explicitly. The ``CrossConformalRegressor`` is an exception, where train/calibration splitting happens internally because cross-validation requires more granular control over data splits. + +Step 2 & 3: Model training and calibration +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +In v0.9, the ``fit`` method handled both model training and calibration. + +In v1.0: MAPIE separates between the training and calibration: + +- ``.fit()`` method: + - In v1, ``fit`` only trains the model on training data, without handling calibration. + - Additional fitting parameters, like ``sample_weight``, should be included in ``fit_params``, keeping this method focused on training alone. + +- ``.conformalize()`` method: + - This new method performs calibration after fitting, using separate calibration data ``(X_calib, y_calib)``. + - ``predict_params`` can be passed here, allowing independent control over calibration and prediction stages. + +Step 4: Making predictions (``predict`` and ``predict_set`` methods) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +In MAPIE v0.9, both point predictions and prediction intervals were produced through the ``predict`` method. + +MAPIE v1 introduces two distinct methods for prediction: +- ``.predict_set()`` is dedicated to generating prediction intervals (i.e., lower and upper bounds), clearly separating interval predictions from point predictions. +- ``.predict()`` now focuses solely on producing point predictions. + + +4. Migration example: MAPIE v0.9 to MAPIE v1 +-------------------------------------------- + +Below is a side-by-side example of code in MAPIE v0.9 and its equivalent in MAPIE v1 using the new modular classes and methods. + +MAPIE v0.9 code +~~~~~~~~~~~~~~~ + +.. code-block:: python + + from sklearn.linear_model import LinearRegression + from mapie.estimator import MapieRegressor + from mapie.conformity_scores import GammaConformityScore + from sklearn.model_selection import train_test_split + + # Step 1: Split data + X_train, X_conf_test, y_train, y_conf_test = train_test_split(X, y, test_size=0.4) + X_conf, X_test, y_conf, y_test = train_test_split(X_conf_test, y_conf_test, test_size=0.5) + + # Step 2: Train the model on the training set + prefit_model = LinearRegression().fit(X_train, y_train) + + # Step 3: Initialize MapieRegressor with the prefit model and gamma conformity score + v0 = MapieRegressor( + estimator=prefit_model, + cv="prefit", + conformity_score=GammaConformityScore() + ) + + # Step 4: Fit MAPIE on the calibration set + v0.fit(X_conf, y_conf) + + # Step 5: Make predictions with confidence intervals + prediction_intervals_v0 = v0.predict(X_test, alpha=0.1)[1][:, :, 0] + prediction_points_v0 = v0.predict(X_test) + +Equivalent MAPIE v1 code +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: python + + from sklearn.linear_model import LinearRegression + from mapie.estimator import SplitConformalRegressor + from mapie.utils import conf_split + + # Step 1: Split data with conf_split (returns X_train, y_train, X_conf, y_conf, X_test, y_test) + X_train, y_train, X_conf, y_conf, X_test, y_test = conf_split(X, y) + + # Step 2: Train the model on the training set + prefit_model = LinearRegression().fit(X_train, y_train) + + # Step 3: Initialize SplitConformalRegressor with the prefit model, gamma conformity score, and prefit option + v1 = SplitConformalRegressor( + estimator=prefit_model, + confidence_level=0.9, # equivalent to alpha=0.1 in v0.9 + conformity_score="gamma", + prefit=True + ) + + # Step 4: Calibrate the model with the conformalize method on the calibration set + v1.conformalize(X_conf, y_conf) + + # Step 5: Make predictions with confidence intervals + prediction_intervals_v1 = v1.predict_set(X_test) + prediction_points_v1 = v1.predict(X_test) + + +5. Additional migration examples +-------------------------------- + +We will provide further migration examples : + +- **Prefit Models**: Using ``SplitConformalRegressor`` with ``prefit=True`` +- **Non-Prefit Models**: + + - ``SplitConformalRegressor`` without ``prefit`` + - ``CrossConformalRegressor`` with ``fit_params`` (e.g., ``sample_weight``) and ``predict_params`` + - ``ConformalizedQuantileRegressor`` with ``symmetric_intervals=False`` + - ``JackknifeAfterBootstrapRegressor`` with custom configurations \ No newline at end of file diff --git a/mapie_v1/migration_guide.md b/mapie_v1/migration_guide.md deleted file mode 100644 index 5cc6b9e02..000000000 --- a/mapie_v1/migration_guide.md +++ /dev/null @@ -1,194 +0,0 @@ -# Migration guide from MAPIE v0.9 to MAPIE v1 - -MAPIE v1 introduces several updates, enhancements, and structural changes that simplify the API by breaking down `MapieRegressor` functionality into dedicated classes for different conformal prediction methods. This guide outlines the key differences between MAPIE v0.9 and MAPIE v1 and provides instructions for adapting your code to the new structure. - ---- - -## 1. Overview of class restructuring - -MAPIE v1 organizes the `MapieRegressor` functionality into specific regressor classes, each optimized for a particular type of conformal prediction: - -- **`SplitConformalRegressor`**: Handles split conformal prediction. -- **`CrossConformalRegressor`**: Implements cross-validation-based conformal prediction. -- **`JackknifeAfterBootstrapRegressor`**: Supports jackknife-after-bootstrap conformal prediction. -- **`ConformalizedQuantileRegressor`**: For quantile-based conformal prediction. - -This modular approach makes it easier to select and configure a specific conformal regression method. Each class includes parameters relevant to its own methodology, reducing redundancy and improving readability. - -### Migration summary of `MapieRegressor` to new classes - -In MAPIE v0.9, `MapieRegressor` managed all conformal regression methods under a single interface, which sometimes led to parameter redundancy and ambiguity. In MAPIE v1, each method-specific class includes only the parameters and methods relevant to its method. - -| MAPIE v0.9 Class | MAPIE v1 Classes | -|------------------|-------------------------------------------------------| -| `MapieRegressor` | `SplitConformalRegressor`, `CrossConformalRegressor`, `JackknifeAfterBootstrapRegressor`, `ConformalizedQuantileRegressor` | - ---- - -## 2. Key parameter changes - -### `conformity_score` -A parameter used to specify the scoring approach for evaluating model predictions. -- **v0.9**: Only allowed custom objects derived from `BaseRegressionScore`. -- **v1**: Now accepts both strings (like `"absolute"`) for predefined methods and custom `BaseRegressionScore` instances, simplifying usage. - -### `confidence_level` -Indicates the desired coverage probability of the prediction intervals. -- **v0.9**: Specified as `alpha` during prediction, representing error rate. -- **v1**: Replaced with `confidence_level` to denote the coverage rate directly. Set at model initialization, improving consistency and clarity -`confidence_level` is equivalent to `1 - alpha`. - -### `method` -Specifies the approach for calculating prediction intervals, especially in advanced models like Cross Conformal and Jackknife After Bootstrap regressors. -- **v0.9**: Part of `MapieRegressor`. Configured for the main prediction process. -- **v1**: Specific to `CrossConformalRegressor` and `JackknifeAfterBootstrapRegressor`, indicating the interval calculation approach (`"base"`, `"plus"`, or `"minmax"`). - -### `cv` (includes `groups`) -The `cv` parameter manages the cross-validation configuration, accepting either an integer to indicate the number of data splits or a `BaseCrossValidator` object for custom data splitting. - -- **v0.9**: The `cv` parameter was included in `MapieRegressor`, where it handled cross-validation. The option `cv="prefit"` was available for models that were already pre-trained. -- **v1**: The `cv` parameter is now only present in `CrossConformalRegressor`, with the `prefit` option removed. Additionally, the `groups` parameter was removed from the `fit` method, allowing groups to be directly passed to `cv` for processing. - -### `prefit` -Controls whether the model has been pre-fitted before applying conformal prediction. -- **v0.9**: Indicated through `cv="prefit"` in `MapieRegressor`. -- **v1**: `prefit` is now a separate boolean parameter, allowing explicit control over whether the model has been pre-fitted before applying conformal methods. - -### `fit_params` (includes `sample_weight`) -Dictionary of parameters specifically used during training, such as `sample_weight` in scikit-learn. -- **v0.9**: Passed additional parameters in a flexible but less explicit manner. -- **v1**: Now explicitly structured as a dedicated dictionary, `fit_params`, ensuring parameters used during training are clearly defined and separated from other stages. - -### `predict_params` -Defines additional parameters exclusively for prediction. -- **v0.9**: Passed additional parameters in a flexible but less explicit manner, sometimes mixed within training configurations. -- **v1**: Now structured as a dedicated dictionary, `predict_params`, to be used during calibration (`conformalize` method) and prediction stages, ensuring no overlap with training parameters. - -### `aggregation_method` - -The `aggregation_method` parameter defines how predictions from multiple conformal regressors are aggregated when making point predictions. - -- **v0.9**: Previously, the `agg_function` parameter specified the aggregation method, allowing options such as the mean or median of predictions. This was applicable only when using ensemble methods by setting `ensemble=True` in the `predict` method. -- **v1**: The `agg_function` parameter has been renamed to `aggregation_method` for clarity. It now serves the same purpose in selecting an aggregation technique but is specified at prediction time rather than during class initialization. Additionally, the `ensemble` parameter has been removed, as `aggregation_method` is relevant only to the `CrossConformalRegressor` and `JackknifeAfterBootstrapRegressor` classes. - -### `Other parameters` -No more parameters with incorrect `None` defaults. -- **v0.9**: Eg: `estimator` had a `None` default value, even though the actual default value is LinearRegression(). This was the case for other parameters as well. -- **v1**: All parameters now have explicit defaults. - -Some parameters' name have been improved for clarity: -- `optimize_beta` -> `minimize_interval_width` -- `symmetry`-> `symmetric_intervals` - ---- - -## 3. Method changes - -In MAPIE v1, the conformal prediction workflow is more streamlined and modular, with distinct methods for training, calibration, and prediction. The calibration process in v1 consists of four steps. - -### Step 1: Data splitting - -In v0.9, Data splitting is done within two-phase process. First, data `(X, y)` was divided into training `(X_train, y_train)` and test `(X_test, y_test)` sets using `train_test_split` from `sklearn`. In the second phase, the split between training and calibration was either done manually or handled internally by `MapieRegressor`. - -In v1, a `conf_split` function has been introduced to split the data `(X, y)` into training `(X_train, y_train)`, calibration `(X_calib, y_calib)`, and test sets `(X_test, y_test)`. - -This new approach in v1 gives users more control over data splitting, making it easier to manage training, calibration, and testing phases explicitly. The `CrossConformalRegressor` is an exception, where train/calibration splitting happens internally because cross-validation requires more granular control over data splits. - -### Step 2 & 3: Model training and calibration - -In v0.9, the `fit` method handled both model training and calibration. - -In v1.0: MAPIE seperates between the training and calibration: - -- **`.fit()` Method**: - - In v1, `fit` only trains the model on training data, without handling calibration. - - Additional fitting parameters, like `sample_weight`, should be included in `fit_params`, keeping this method focused on training alone. - -- **`.conformalize()` Method**: - - This new method performs calibration after fitting, using separate calibration data (`X_calib`, `y_calib`). - - `predict_params` can be passed here, allowing independent control over calibration and prediction stages. - -### Step 4: Making predictions (`predict` and `predict_set` methods) - -In MAPIE v0.9, both point predictions and prediction intervals were produced through the `predict` method. - -MAPIE v1 introduces two distinct methods for prediction: -- **`.predict_set()`** is dedicated to generating prediction intervals (i.e., lower and upper bounds), clearly separating interval predictions from point predictions. -- **`.predict()`** now focuses solely on producing point predictions. ---- - -## 4. Migration example: MAPIE v0.9 to MAPIE v1 - -Below is a side-by-side example of code in MAPIE v0.9 and its equivalent in MAPIE v1 using the new modular classes and methods. - -### MAPIE v0.9 code - -```python -from sklearn.linear_model import LinearRegression -from mapie.estimator import MapieRegressor -from mapie.conformity_scores import GammaConformityScore -from sklearn.model_selection import train_test_split - -# Step 1: Split data -X_train, X_conf_test, y_train, y_conf_test = train_test_split(X, y, test_size=0.4) -X_conf, X_test, y_conf, y_test = train_test_split(X_conf_test, y_conf_test, test_size=0.5) - -# Step 2: Train the model on the training set -prefit_model = LinearRegression().fit(X_train, y_train) - -# Step 3: Initialize MapieRegressor with the prefit model and gamma conformity score -v0 = MapieRegressor( - estimator=prefit_model, - cv="prefit", - conformity_score=GammaConformityScore() -) - -# Step 4: Fit MAPIE on the calibration set -v0.fit(X_conf, y_conf) - -# Step 5: Make predictions with confidence intervals -prediction_intervals_v0 = v0.predict(X_test, alpha=0.1)[1][:, :, 0] -prediction_points_v0 = v0.predict(X_test) -``` - -### Equivalent MAPIE v1 code - -```python -from sklearn.linear_model import LinearRegression -from mapie.estimator import SplitConformalRegressor -from mapie.utils import conf_split - -# Step 1: Split data with conf_split (returns X_train, y_train, X_conf, y_conf, X_test, y_test) -X_train, y_train, X_conf, y_conf, X_test, y_test = conf_split(X, y) - -# Step 2: Train the model on the training set -prefit_model = LinearRegression().fit(X_train, y_train) - -# Step 3: Initialize SplitConformalRegressor with the prefit model, gamma conformity score, and prefit option -v1 = SplitConformalRegressor( - estimator=prefit_model, - confidence_level=0.9, # equivalent to alpha=0.1 in v0.9 - conformity_score="gamma", - prefit=True -) - -# Step 4: Calibrate the model with the conformalize method on the calibration set -v1.conformalize(X_conf, y_conf) - -# Step 5: Make predictions with confidence intervals -prediction_intervals_v1 = v1.predict_set(X_test) -prediction_points_v1 = v1.predict(X_test) -``` - ---- - -## 5. Additional migration examples - -We will provide further migration examples : - -- **Prefit Models**: Using `SplitConformalRegressor` with `prefit=True` -- **Non-Prefit Models**: - - `SplitConformalRegressor` without `prefit` - - `CrossConformalRegressor` with `fit_params` (e.g., `sample_weight`) and `predict_params` - - `ConformalizedQuantileRegressor` with `symmetric_intervals=False` - - `JackknifeAfterBootstrapRegressor` with custom configurations