From e59d7e6d84374107e501986a79e2d1c7a1a25c97 Mon Sep 17 00:00:00 2001 From: stajima Date: Wed, 21 Oct 2020 10:58:44 +0900 Subject: [PATCH 1/2] --- Chapter3/Chapter3.mlx | Bin 0 -> 87188 bytes Chapter3/myfisher23.m | 118 +++++++++ Chapter3/perm_func.m | 9 + Chapter3/prop_test.m | 62 +++++ LICENSE | 42 ++-- README.md | 568 +++++++++++++++++++++--------------------- 6 files changed, 494 insertions(+), 305 deletions(-) create mode 100644 Chapter3/Chapter3.mlx create mode 100644 Chapter3/myfisher23.m create mode 100644 Chapter3/perm_func.m create mode 100644 Chapter3/prop_test.m diff --git a/Chapter3/Chapter3.mlx b/Chapter3/Chapter3.mlx new file mode 100644 index 0000000000000000000000000000000000000000..a1802085bb3e56977ebf6de38862d7536f7e68f0 GIT binary patch literal 87188 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%0AA|;YY$JQyqPZbU1(PfA02YEg!k5F|2Mn$g z0y94DsXSbmfdUB1U@sLgw5qa-Ik>OO>2*|rIFJ{)F4EdbthHE9kT6$QGTxsnzmKTA za-NS?dMl4WJFmb)B#$n0qMX+}eX^Mpdf!t!7jfqvVVF*F*Qsha88PH#kmcCJZ=4*l zD5FEFljII$H3KAh$tRgK5!XQ>erpvg{tTuFdRKN?+Dmm4hfS!|9Wt zL$V^tK0F2E#*|jy{KBbcd5ZY~Sm*maq_;FLyZFi3D2<1b1VHgQo2qcmait z``d&#B=lU272A0~c(nruXwg97tF@$5jpIuSQdFzCm{6^r>wsI^+zmnRzLb}Sv+|Ch zFjz)G**9nHnIQtv<3wB_wCNpBdF^&ozMSyh){cAJWh+wxF6}EXb6DFOTI)B;fDkP) zuk2-D5rViq<&CzT!Pq>nAD$M7Vla9+!$3GqqZtw?Ky3*h;Y1An8mvf@732SR=)cH^sLk(?r?YC%$l28urWP@@& zliYR9?QGh?h7ZQ6r9R)h`gvkGoZuxwL#v^3!?Ix)_G5)OM6|fbl{+<)k1kuRXBxxD zzyEuy&B_Y6pBWx_qe3F$9AOo{0)1Qkx8hlO_9!S275{o^j#*2D@uWCixn7=HeC zl?3$$iAlQgXax}w9$&%o&T|6hdk~q_I{P9;oAz#s?1Sj6h6;ox*WYlvcS!O_O zSB87>H3{4^CxOAUTj;EM9$FWNsUKUOAF?NIlPKZ|E#wrt#exOAH?O=8?OnM$j5TQ| z-bI=un`)QZ90szlx~=}p#3Q?J3ak?!69zIkR!XN&x#@cGgVx3S*6W9KpJ+0p&)OdEr)6g0I1h3ImjRigi}tDRA`8J zIs@L$?VP#zBtS9*Ac=>1#_~J7V`$odPS3`${z*!p<*zVoR2WQjwFzpBSAwD4$l*(3 zsW7x#yvseF$-aV%>HG_M6K<7r$3XRgdS#$4)X-2};AaP=JbdRUJN(MN^3Y7DOyd#0 zIEcrh>3eWky)AYeg_D}U_Q+&c~Vy@JAJH&U*_b2Utmp=A%MFyvjHK4;6RaK2z_c|MbS@-$x&%2?Bj*{Mskkwkab z$Z>;FCsa!>Ahq=w7$Iifhee^3z9l*vbLAGDRw>d5xbQihAgVh!HJZ8ZmW=u6B~ z`IDqi)(W;T3n#Z)N1y!p7sUOAm(LIV7f?$B1QY-O00;o_R#j2yC6BzKI{^TKzXAXe z0001OVRUR^VlQuXbZ~WaE_iKh?7eB%tH#kb`d6NnubjNiJe=dl@6wDUCLt#AjZp## z#4N6H?KpN4FYhgG=z$)qtFEdZ`0D?T#p8d5q-nEf`M-am{tx+=|4GW| z8E577fB#}z+rNr``M+O(l@wtT$4RXBUDbE(*IyM$7p#LWfS@6G^g#!&pSz$-zAl2Y z4<28kzxV&@5xk#$_u+`2QC}ow_Z9lC?^n+`dF<%hubU)@-(R7>@%yT+9$D8V&F2eM z^Q@i?&g5(I|1c!SP~W+}Lf;Ag3jN)y=-VoMWU*+P;Qc?{yGs7|F9Cl33smlr;9`FL z754r*&8~fue1&Gm=UX2se1z=duj7P^1deC_%26WsS5{=$zlu~6{WTyXK8i^?VQ47V zH_<;|w43bf7!vw_vm&@As4B1jUl_Cr&;CD|v((KOdE8x}3;3sKOV@)=Tu| z!OF~LVOL2rxb~@@j_d3GI&70XItDj?td_^N^vybO%eE;F2i9wMzPhjv#pxzKgYZA`$zKf z>cPJ}=NYxXXXZf{F4wcazYB4;I&6w_w^J4DPd?f1e1LbXp5BB1L1!*k@V_@^zWT%G zaUd?T@NgJ@dsv-rEBmoO-Hzw`{&YXAHV2@M)uuW^zzMt_hx2BCzE=?NXWT#I{u%eb zC~m%L&~$A0HS+BZQa7R`nPwN*T}XFFw`qEhOk|mnQt7z*Am+c%Ezsj=>WL zV^4egkKfrvcge8qH`^;s#`gL;W1mMQd$qli@!*+X+5Wi7*j7;>7(7{4SF-D~hsylp zcc80>J;7+-^cQMU!$6`azPKa_e4n{KIvS;1A8Lj47873&H5wiWUkf{e$j|Uz&vq+R z>s>yv?A{PZ2Z_rNQLcct<|Mo~p&$t^nxb6b-ZpxZ8`X#s@3;-PsE>}$kxE%ckBHm* z+q80qX)nz5x{m0sa)?{YXwn$8CP@)ZzGfJ0sSt6%46Q30!|4`wG(QGZ*a`)Tx$6%~it7+o6gD!FtGq4UbB)4cTM@%3X zPeAW!;x1E?8Bi|_VmqLCKZrq(h`JXgff=~O2H`wTo>GxnAc@?0hgfyry6x?{D zvh^pVJXw)=mkh&1$>YqW>}wGbueAa7G?*_u=Yt>Y?|kU8$zazXJgCkDsyU@7V^Y*I zVfSWVJ}JZ~yUFNzO9!D$Il&?+oe=l-AQ}?GiELb!h)7bt>4fQ_gg`IP4tR@IG0pLc z(28mpTATX>Vj)zdge@^bH{CeU{TNvn2?^S%FUpd*pfqI~k4U?a5ruF2nh-?};;1n~ zYRX+F#4eBkW#X3;GZiZLPD^B5uP^kz=N%&q>&=EluiTZyE7^O>AQO^6q&b5`cA6+^ ztBO*0%TvRJygVR7_B(VXwr^3Ppm{g}{td9K=dU2q~bVf#Kuj$g$T$A_^`wu+mnR3D0euPDF#AatzSqNSqG_c`bb+ zjToQ4)u#7DJb5Sxpk0=wgC2ZcFIahf1=kB)Jh)PD8Q|K!Sa3z)`X<^FqKV)lz~z1O(l^n-C4=i%rLCTzoQu1A zkeSp1rmdU2A@3zQZ=-x9bdyE$Ui9*NvL4^YlI7&580BQ5gG&Zi4z4kQXz-FKL$n+M zOjZC_3N8a&TZndrXs_f~rCn`+A0g#iIjtnoE-rmMJ}~V)IP`bJz=`=8@KySQ z_8ld8Y&gT>9@D-roF7lG<0+p*2xL*Yo~CK7ee%)s)#2@KJqheyM&p)2Ac`3`L_0HQ zKom1bprP#0UP)UoJmPTu&NCn_;`8^2pkZG3?rI763s!R93*W`=vOsm*+qo1)hCW(DktqtIenfGA*hIzf(~F< z#~`*F(4-6?%7ET_ow9ZNsm8KOk9RL zBE55X3`$}21A3BGSxHGshZA?;4henvB{tsqT@fALQ#+~mA>41zF2Vlo`1%FufsW_X z0L2bOx(C|yN>L#?z)k92VU*i=rIRGN_+B&&bm$7npq5%OC0vrKg+`-fKW`{= z!FTTohLOPLh`7ADXb>5|txPP!@Jrbb%%^zhx&q)2Z0zaEs5#wcydMDmWHPFzLc^F| zFDRR|*WMqvSUWWIxCHQ+k5`Hi%^2PNR1_Bgos2Y1VXR9VghsXF*o*D;^2DiSIxxKl zdO-ILPZgNFZKIUseMAI~@Kz9dE6g+%61oqGBq;!>Z)TjZ>K)2?0#0=|1c0YKle6pv z+73nicl8mzj*09JIIon;=|&L*Am>5^H_|6yXwz_*K+Wj&GpI8 zjEIO%`xZA77X~x!-eUv}@HNLE9cmVj;=l)R4I2 zhuttvde7FOPYbG-!)|x~up>ToDIg70016)@;l_#Yz%bIw#Xx>;h@sMZM!9Z9gr*5m z&X9;VKS_=4cBqmMdqw!*rE`t@cNk-UqV$LTVp}rawGr}EaHnp z-8^^uTi-)#cp&4&^RK2^_3iPuzt>Fo)}^O;fjUEF2PVBukDFCpE$(^ZE;fJJ5Wz-w zw|cQOirf0vhFOTPL^%?Vk-AD%fJduxy(p)}V|rDu*Fk(8eqC4;i22(JM?+jmGTy2j`|e;E_%j4J5M{? zVc!-hX%DVt2NhDj>l(mn`y$2dLN?Un6rkgU6{Yb$%k=49BJRPU8^~z!&`ThbdlR?u z;5y4jtPB*JMwFE2LjvhX+JKNhM5uiGo16>eG+|--*8Pd&nXjP!Tc;Cly#v z0K7g7L(ekZ;bY#-1fI;^aC{epO8g{0=HcQcqa-(n5SWyhsGe!2!(7%U=pcJEro8&o zI>t7A{II-?GTfJmq_2horG$E668&tNDDz7|JF{-XlA$KtM)nmVVvoMn5l~GSDF~!l zE}(pFt0&0wJe%!5`Gg2v*7TW1c9KsTX*cU{#^1^yc%YgGfu;)2DJ<|9l6?EeY3{ej z+rM;PV%;&uo%@}H3%*AsC6zSE`M-|@jaZ%3&(%74EZwpUyZ3^m^nbAo`%YN0MW{u~ zf2|DryRZTG|5-YosXcm$mxUNCRCl577RK(n-d@+s>w0`H#>?XMA0LKw(r)=Pc=FGd zdB1}1|I6~g_}E~C2c4utRe5dM(ZYB1Nd3#45>_a&t`9s+>{qC2hjiE}snJ*^Xj`dq zg!}n+8-?r*{KW&bemi$wGpx9Y0iwq9G|oIv1GX*$cr0!>C(xiz+UkDRcQ_`@Mol(1_H)Pbmx*#3gFWP@fhPI*~^flG)V*(3mq?I z-;sGX1k2N1#kTF;4fNcP5S5v|J zV-3i);hIxSFj)T)4bb$EmJSK%V}!ijQs|z1>S2!>&+#4(_rVN2h2kIK$GkG>MICPp zG$R{^nBWPOzAPC&K**vRhKM@>NrL^24FDY>A4cCD4xDh^Nr+um^BfzVmb7u(^wj{DQEgH&~514=`W%c;m=?K4Zm|AiINqn{k zjFGb5-$stl3{*F+BppF_^@wD-9EIz_l>}PqSV`N;z2`OC3V~k!p=aOTX64cB^gUj> zEv79kE*7iB;%u8s=Rc6o|8SVh?yg3ahyQJBNdIVgbi9=a$q)^eH4z$4SGbc(a;FJG zwFj{WK0Q|W9T1x#S?73u*bwO&NxLgx=Jjf}W5#dh>7?bMMB~92+{!}R36zcLlfP5n zD;KJlpg7F@Jdl!pkL@d4V4zH(eXQv#PdLpb|NKcE;d^N_mBtJ^Jw_`%7GCRb)-(Xf zm$W4a6YF#$@+2;A;+3Y?;YI8IQ1?W)vHdE^wcu`WX(ZQ+*K4CMr)$K@tN)y5lq347 zruQ|Yyod<_pF8^7;20PIsXY#Cb9p6h_6P#EGkM?LpRf1h=ItNf(#WaK(>j}dy>aEs zd$DfLG^B`Ry5s(2UD{iReJEB)6xt^5_IVGcBRuh6{K)p+o+dGDP^=F zwfC`M3L@}PEG9Gdh6Cpr@qa< zs}npwe%m?VSB3R`QJ6LC0&ihipxly1dXl8| zZ+k~;p`+02U6hKZ{61Myiw5^`NVf4N6^-Mx3GV8*gAha zG=@ay-%!5PV`AB7aZDy4>Xr(m%L$0O`$-w%61*37bn7)#fIa)Y(Y*f|IdK;GIB4C- z=$WuTWb##VYAKllF7AP@DCs-$s#g#X8q&+hSWk9Cm1$DoKAP-y>w5N3HBG-u5<S%$yB83?fN$5G(ap44LN}9;$y9{p&iqKX*{IoGNNbw zznGwv4r&-S+44yy#^$y$MLYBduVn%$X!qws;^H(r<-Ex{x6zjj0*XiGRymWsc)#oN zy4k)t`w8`ajczfBcpa0A8VzQF=ebxJypE4 z$_B3E1c7jAnile6r|Xx*J3jmoq2VqP$=O01slALtNbA8=BC?%nA{7~982pLehqRRM zv|)>IJIdbBw)0xwHZr{0ejo-f`Vz)bLIx;CWVb)h>#rNB881&~Fs$?W6R)^rCnL?T zDvsIVcmzrZj`jqJKxHW#Iva{YtY1&_S`d_bDWW{D3}5VK>o!ic9d#+EcrI?Xyi{N^ zH}W;WgOuo0gdDZ+^~DMe^??zZCq+*euggZ4t~`@BB}GHPBni+dm2pvK zr-YQtgjzw(j(I)_$NWYL?)G+J_s^!u7V~&w9#5WaP?Yq2H|O8X>&+g5#7n78H6Ed> zs>oewyB&t;WTfb}#_JQ%Q+sq0#~;Ngj>oB?Y9_~P!Z^K4(NyET9rZ_h%Px775f|op z-W$6ejqW&JrG-Z#NzzFi2t3zQY@dzKjpMQ%3a$@WAq+#Hmg{2OF+zWiB9Xn#1F7Tq zzsI1%YU6Il$RD}wC@)L-?rox7l$eqE`UQTnyL;kY2~+-FXL_z1dwtKVtaxSf=P&Tn z1>ix&MFTJ^27cJm7Y*B3580uhLFSa3LzBmsps}1F5G*%1GNxPWlv(r|b*nqgshUpn zpG~|Co`SOrSjOGeB(=Roo*PoU7Lb%%^dwbe9qH70XZt@Vy^FVf-7lR#Q|!3x3+i5X z59ir*j$b#i8PuV34tUQ!*R?X2M{Vn>a}G@v`^Uz2f}`NLLCx51T~Kz>KYmdf zzPTEYQ}tWu9-2h=AXhGf_oT45cuBpVqhEXve{~#*`Pd~*d&ZvAPrdtZpf@RF|C$!B z!hT<@m9HLdYH@!R7Pt=Jx~s+JT|j^Z0S5@!yaR9<;Cg`T1ksKV?E%r?rPalXdz4K6 zlM1+>7ynQ}G!de?5N!?7s{7xU1;#-K1wR4MwKhEEH@;QJYDMXV&6n0OwyI98NCI3Q zxYpG}ugG_4^WQ`Rmj$j0T;#VeeTf!=%K+B{TqpilrQN%>O@8o(=f6Pb{BcbF3HX)O zXIEZ*>h>8gQu%#<&|)-n-Kd&k+OsGP!|alKI8G=u9W6u_@IrwG{GpHXNasIMhIF@^ z*IcpB|Db)kzhB(<`@g5Gf5!b6#8pr4|C+M?E90*5Jeqh$R3{HRxgUnE4|nPZHf@42 zcc~8yt6u1?*=eCW<~wP)jCnw}7pnU+?w@i0jQigeH`kV1FBi3W=vV@a?Tu)@e(2K^o=bbtcwN>c2I!cI*uVxr5or4~~`kXE*o zpz!5)pd-IiS!P5L&(}+Hos)g0Bt;nabd-E!bFr*xT0R6M`k}y60rB=lF=2{~VajK- ze6bO$u9k~w0_9bk^Pcxk)7tHF+3nqUZ*DyCg!KwGI$0KfrpDXQVLMD}BmzTwR&{68 zDWXQaUut7+hc!L8jV^CCBysPeAQUcpMJd+)>!Qk;e|^ZNJT8%uWpDJJ%7nPnwz7J4 zEu&=S>dmuP!^6$_e6r}>eym9lg;Gyh?f~h?VOLNs)4cu89lW-m_V=?9rG}w-a#K~O zY5h8Kpi*S%yia9(@$vqqC<1NcJs$>blv71*Ms1L@H$lADLrU1ZtDIkLE6cf=@hrPg z=Kh@bZMPkP_w_;njP$}ON>glb`?g*=`CZU^QUBhPi5@}z8e>$IAHCNLtVA=J6gJb8 zx3gVJPx`iHv&#YN)n3Q(bx{@vBJ~-LD051X%5|Pw@taexrqWEW)00h%s49&?^{spw zO~r5NNU16g>3!)n?zRdpU9nr6{iWc#oEH3Uo@W*(ZAxJ*Gw-z@!@rT4*D`gIMCcT_ zP0#ZfQL@%qz_K& zC;!Eg4AW*N)Sbn9nsl!rkB5)_bt2FS9UdMlyr(2@8W=x$;1&npZ0T^f?87Gq`b0S5 zGYV8IV#X;U#1rj$UK+<1-Z2CH2|&V=J;!lIgi?F9hYg27+fC{Fb&`ntLL$Vy9!1f` zM+TFkiDnpiuNdcWeNbEiDd*9UCU%pZ@( zz`kw?@sfcaD52o`3!56(*MJ(Qp>9P%;x$5gl=OAw$(CuJU%k>CYU*6i>+a;TdF~?? zA?BSV{jD80DaZ=h2?h_cYC|?QqYyMyxW~$o#M%g5~i=)SrV`5ylrzHgM_iXr7-+F zK~}X2vEwRY@jjbA$+C>PMc&SG>W3|&)UsxJ;Xdq*IF7u2yl+MV1CA0!Zb&)Bo5z)) z0ncL?K^k_mE!AQWPvYV3+0d4+lWMo1KPpTMbm@xV z0g|}0f?!#?F?6lhQp_-@G3reNJSE~pbfl35z#uz~m#G}+bN|CB{BlRzNKJ@w?%Aen${Exdmy2%Bu)(^FrVwTs;cYR!kdo}frb&3W9K%>kst^m7u$9K z=F&8U;`b7g!Yb%Ifk;5?K)V6Ys)4^Ms#ZepW_heuHy)Ye0*`Vpyf+!XYKXA z@41^^F%t+EG2cVC$R+Tlgcn7UCxFmD_CPUf%d*n3?V;`*SC$OzIzi_~@w^p||2?mlfAz1U}Kg2jBb-6`8u1!Hu` z{fQBFGw(CP^Z6}}ytcSuyQ1z*tSU2UBpnV1B!k=_-U8lRO+-Mi_q`@@kd}y$b(-Z2 z-JB2DE?#bvSr(Qh^as!fk`Dw0)fG={Kcwb)7?>^`RWlqVIlqlJY&Ta{WG9AtiY_As z<8c&@z_xnj^t9Dh$+$Nje?%jc)j`wQZY#^Q=kr05PV*j(Z9f>>U0DizV8W2@GBPmr zc@IECxTS%}YPN$CQ_x+8rh$H&*R$q$4}@4=DxWk}t07A}#{No{MA71i2U^fMqbNpB z6nBqDsJ+?yrS1D?W&mT%<@LzkcXo>RBqkcj?AFWkNzwzBfpB4BWZ*OBDI7{tIB*oX zdBjn4^46-hW(*j~4Uss=IF|-t4+!lCH+1T4isEV#sADXQd6~XSgt(HlHU*Cwy=5hd z8g*UYZ1B`d=k^?-AC*1<*&=0ZbXFn5lR2+hogS>XS}Vq|TCUNmj|Ezp`$oG2CEg+~ z01s%oOII>Nd}n$7eC}cJ9B;+$Dlo$=r|YQ%-mh`&^Iq;$Y!82PJkJZd40N$Y0^KDi zQ$4l(CEHW9x6N*z?dB!k&(CRR7(2VQ^2lI#2t+!c?XiKeUKzlxqPUb9nog(daza-l zk+}8PGGTvKJoL&u)SMqwHu+Z)nwY!OCm6%(%2k~1V-2pcGg9%5`8TUMGbV&`F4hfU zkt9i!RNEXM=l+nb(=@x;O|3X@t^z($RBp4)mye7BJSoi(S6r-8q@T(@fo7d@81x2* zcLIfgZ2_guTQ%9PVrf+hIBADTl@D~ z2lP+dWPi5)^zUB#6kgCP?j1=Zy)t+{@KLvm<-xSMO>;k7uh;+m-!EtA;*)bf579km zQ}QFn_i{Y>75e5Z-!Bg={as)5Z7N@X)g;&KS!#U|CQbVziBjKv`EOqM`m1M?U9&QH znBVcnFZ`hYmott(juL)kW%7?RroWr&(mH`dB|l-`Vq~NSvSTZSOn_t2k-ep+~3v(Gytf z`95ZLwcQmf$~$R;RD`VSJdc~Q>4`>>D@ims#G}_9*F$oyHZC{mF6aB{LgD*zkyG{( zM=+erc8<8cI`~fRwE2G8OU~kiU!mM3z8mIci|^Vpckq3)GMv-qzbcQ|?*tYUH*Fm; zl>~frNcbY^J%t!ZKGuVhL!L{~M7k|Xi$g9l-Xcz;T~`hhg#@8Sh{u~kr4)c_Bw^-l z0SHFQ!rhJubt(M9Y&t-_p-ml5x@^^VPz0Eu+>UnCL1;iGDDEwr()f6FJ4v+=^CF)7 z-r^kvRN&Rx5Ugc1F7P33ImxF+4QO8ll|*%wE%KsBlq%X=u#}Or{l=Hg2@(suigzDz zUz&#lNhFl~kHhDN+CpaCaKYyw&dS@F0!TchHRFN8S~hw{gJ>BnY-H%L(w33odJzUg z395Dxml`Op)vVZ*1}N}>cDt$_7F;c(PxBaBHD}4`!rdV|&5Bq;3WoA{GmRw03FSwv ztArh3$ZBWaFXV3VCNG0gOm>~&#dbkq-p#$SJgq=!miYFt0D4x}wO!g_4^W?AEC5k) zr7x$tjiQ9a$JHEFSuSsjHyf^>c!5!%h7IUKPHWt36|NlsCT*utH5b>!_I1SVaD4Sn zyaGVT*Z3d|J}5v3+k+DNzPZ#RaJyrNK`-w!_yjtyE1dAp>(A@Y>(A>KU5$ecF1M7g z`N?AhT0*YC2#iirs-<6n=VuG&`Brm1=cS~>R=INqu)Zm-uifr;_cs={3VURCJUfp! z7v0_U%U%wgc-*eYIy-EB{^i>RK<_{7MJoH^eEb7n!S;SWIGg{>E0&RNxeWnG$$Mvq zd-l&?kIXSQf7r`2+sr&Z{}Zlj>nYb9*?`vs9q^A78Y$u?gcmSL$9X|9OB z0v40CDdOs|kTg6wb@#EMO-k@WKoT1fON$bmn`&*QiV>=b79?W8dw22XMbD~4LRsr& zPB+=*ekiSuv4(*W#t7>K?t^ba>evrMU3adK)>0g&6#uX)#;U1R5$mOM^hLnQmnt7w zt{Pbu{2H=W0dMo7bs)JX$@`jHhAq98J6hSUO;${(w46A`%f`i{qZ{*p;iJ2y>+pe3 z8DP$we!d^F2(a;;tE2L8wkh4}o9pYM0T>lx{YC=cHp{7+OdPi>n6SEGyvi=UN+3;`G?o@el!nzUdYZT#x4u{fTAeDqC>5elB1#!b*DTC zqS5ryqB|meusGjK8Pr!kc~tWOHcZ{%2|yvv#uGNEhvv>CV~SN5%f`<@Es}dCY$?rh zA9(ILNKi63RpiYD`k+gCZ-X9Z?f0zoOyx1skP!8U6j~ED#@$Yb5DnHegB8L+S3V%9`fdI zDZK0v{a70O09td}y!M+l-2jXKAze*Jo35A?xEjKc^Tlk*+`JZxm(q?}9uyy# z=$Ya4G~{L3TdMuS-&xZ%-W0#1dEkZmWg_|$lpS~o$yNT&+~7m7#D(oWfo}`{?xWKzk9%y=Doj&{YYR9^~T;PQhp+o3~5;`8n zM2W-Y4%;#C1}Z$RUV3$o&0dJ~-D*D6@sPBX9B7mbz z@I=ce7UI$!8E;Js#8yyNf{PFTj1A>}#_hFRQgv8sj0fZmT&8eSlHIEYU-M<;BBLEKqlR7?cuwmm#HCcg3utpaaYvYH4YyfQauAFj)3 zPETl>M#(4vFM6s*5BdiQal!-|y!3;*Bktr+KF&W`D8M?7C8B#!65*b^BuyO$sCXU5 z+3OSm?_IRYimFHWdu^PaS>e}@ow9YgYT{UlXdgyeAA5c}O)9U?v`cdMtk_`icnNrW zSc$p}%xR#T)ujOD)HCZ68%5JE{PDRbLtsw%_@ww+l1+w=JThci zig!l(uoOHYU%?gk`I8I)q#*!l)r)=FAib~mFZCm_9G0!y>$FZM{-_&#lOPn(31C?+ zO?QeXosV%cxO|kEdjMhF^Hm()2^GdIjmPH2aI3kwe;To zm|c?I`F6$@VoumsZaGh-tor5n(8i=hHhA)9pC;WLYxf8E>c~+2$4<^HKD6TK?p) zR6mlEVfCd|-R}V7R&(FC%EM(^%wwDs7^AMv3pHZqcssS8wr+*`6(z}L(QthT;2*|H z!hlFjmE}`kb_GhCuJqk6{3_aa01`Vsm4N_LNcBQ79>XwBHA+e4w z9TPYB_7>OWQrV2E)enZQ11x{NP-C|Lz~&rgm4QIX;_6GGtt@Net5mekWTgH*$t7@!&C;RSG2g2M*T_B_0B!du@&qEWPRqAP$p3g}LZg#hYc8G6;+$EvH@C{XFJ zdp`g-K*+y4WDNMQf1+Q=27h(1UPofxjXo#=848128aBLJm#^IDBDb^eZ0`< z#DHFp8cAS?p%Vb7h6lirJXWZY5Q=3yGSh ziR9C?CebiYq&4lsSn+uJGFFo@AqdG4;UD`- zQe(MfqA6kyuO#WOHwCyv0!R(ZmO5#92+{bs2CPs|K1;YC@|7UGP@me@x4KaQBu##d zt*!^)(!y{?p3~9cVT(`MrlNeGErRvc@mr=D{qyMy&DKn;fl5FWFa(7&#wYlo*9vf1 zZ%4obSBqP#-$0D}&k-qn!J_Hs^B?avf9Ipa zW^6?1nD-GajJtaI*uT}hF9oT`x>sY(2P*CWiX>V5b1;rOFAz%^k(&^xvjVxt2P=-~ zoLvDo6jxT>Rkw@1X|}hE+sR(zTxFJ%GA`odccs+pVcpaj%!E*>Z>H)v7788 zPl(R~6wspdng_OhB>|oj#dD@!*;I#s0;1&cH1HYJeK}6U*0r%cKL?>^1Or2$g)vT( zD(H1_7c`eHtDdpD108e^!-|V0uz(lV?k@=Ij8-_lKFV0+fT5V6mv?zMSar=yHC`l} z3=9QA>l<5FMe;ET%Cs+dEv;-pYux5HmQ9SHnK%(O60o>&U+YG1u<%aRkEtr=IQoLRs+6NnV73U+I(6Reab{ z${EPgw@3ymeCITpfBeF*%W82Pb?3BNI00cphDXS-u7d2BKVMPWljI^=_s_+3)h54m z9Q|k*m7pboa67K+AIICl4%Bor8obWZJcSe8AT~-V6p=C|{P5Gddr=iWnZUrA*Jn5Y zKe!4X+TcFMh*FMzVS>)oP$7g`I_T|pydXOmwxex->aGQ!J2V?@c97t4KenkXIpLah z);UY4fow7k#@$t&lrcVl+$Y7vQGOzP|1B;@X_D~7{FN3X&97IcZu;=f;R9eSZ=eNj z_kOvnD`tKHh)aW4L?KBmoBd8<*5S>*}L0iKwa?M z3SKDs4Zh8jPa#uNAY=?#3h_=D5Hh=4M5KCL<}2%!^iE+^XYJ#kAj(xFE%#3%H~7@ zF#g>-2xdjTFJI_zHDl+6DzE#j!)34DnwVgMUW1UB2k|uaNhj&)9wnX}Q_^xp?j9=3gZfa9B~%@%FT8x4*N!^Ccq- zZvb)Z3Iw71*dCm-v-xM9Ax+~wISYA_N*H^*|9R~4y)d$baue=9)%T0PwQCG3+AD`n z^GN{C7tkiMEbQ^eAKDrFbA4KVj;V6hM5HkhgKTv)|1sbBx$f(l}P-jO6 zMb(_2wk~&aI(Qk`E1z>BCbp%8paKU1{#0fOibI8x${VEPb~VN%*S>tk1co&}fhnhu zb_UwTg)}U>o7b2n*5Up|54boX(W)t`7e&ox-poeJW=FvEU7YP}+nx@A|6_iuxr57Z{02Cb zgY^(v*v#`Y^i&Z@!JV^Ca$vu?2=AzHExMs@_g$LmAtRZxG3-qv4KEke;ExMEa9a*3 z-V9YcRbW2`U;SCUSrG*GS%9WESep$gJu&_y+Oafh%}9qM$WX6-90D!hPfud-8uw8J z);SFv8T7Hag>YI>Dnz}yt{}~y$uIJ5 zhiD|pQ%ltU2y05%jwde=|NI$zV?+OYG6&UceZb!u)m~&#{NUGe8l8Sxpf#K55?Axf!I}Ry% z+^%oPI-Opq!p4Sz3e`y+pAsR&*jz*6!|w!>5h%7(GWPiG7=Dxn>V1T5mBhet9P$cF zD<$>WG(?8?j#+L0vurK*xj)P1b8*8N z-yaY{y9nF4hH?@R5upZeD!tQVL&rZpUnK?k&zi5A>$Y|ps=w{l~tgJKHDQ@Xw8*2=}QKE+w#x;*W`dM!gAyx@LgXWO7 zzN{x~!_9~>%dqV73$1;wE3#GvU%hN5jblG?@dpeANk2*g)IG#{LhWK(IzNBp2Tzh6 zk9hMkwyn>^H1k2B#+yY+jba#{_B@93j}#|Kjt#nl3hlSNUGe$>yqT~uvkP951Oj=+ zOWVKz+fF z*W`IF*Hyw;MJ^fAP8qrr5H>5K<}DH8rRT}8qIkx-zn8mM_p}|hxzLRd-SepnEq=Mp z;JS5goXE$&&L#lQE1=^YS30Mqdy9eBTK_7$01g9^)F%DEg|B@tkAXNnD31TI37DZ5 ze%B`Oq5l$~|H>i5^Yy^PI6}<<5z;Z?$!Jn@8A!3FtNMJ8_0rrYDDA04$)49Q_-+#$ zX?efTI(F4#OrlvV(R8wD+w+nmK6%uh@?g$yU;To0^HqTwyp{;-A=F7VjN>BwdA!OA zXN=VAhQaegnovzY41LeI`9ECqbNRGuA7ISZg)B4NC7kSN-2f{yn>f$`3Yky+_9dT` zKvKVWn(9CTXlEq`HEpX+>LLl`?ESDeRuN_GW2e^qVSm)OhkoLD^Ol5L`k3sclQX{U z-FBgr&q8nxcY66eo5fgci0ImTX;mbPGwF7^*^%n|#@pG5?w3Qes$ZSJ-uLGwZN)*m zX0Css-hn^xLrzNQaV-fv#l@tq!zJ7e5v+;W&?buw!&{H#zB)LEV|6&ODPl#x2x*#a z_xtB@zh52qtJQIptrl6fxMtVq^}2sve>iL?xg>fg4gpy3ojlA4Db|%W@My^zV_3hC+DZeRSm ze)70yaez7`l6>QE@k)QIw=ditD%WMQ>(6Dj`Dr~j((ZkX@j6EMZ-pCujwh%URcz;Y zS_?5}&v)VOlQ|x3T8#?2L<`#GFRCkq;j@V@bZ9tFoK`7S4EK~adj4x@v@z`|5iUPk zPIc15%Z-}r<3FG=L>zByv(mkMGzLAc^EuuGjd7df7Q0$TE{i;b9YKx8<72woIsekD#Z5~uXzgY6eFF_Pl}W56h}_8Z6d zoarGExh3Z}CMN?;rWKVjCdv4zzWRRH?t;rK^4_}apOE(^r9-FL0*3Q+yk1ervHc0D zJwl7#$fG#_IIN<4AC7%fQ*R?gf*?2pAigMZyn&64-RZ&&q^?u|1|Lnb4 z+oH(QHu{6O-Yc1hLlp&;NkyhJrc@CSnc>&(Onj<`wYqzCbyt7;{q|lbRgah^IY!(O z8F>e2!c3wioLUZmxdcW5!MU)QNCG9AKgC7AXYvOlaMDHBmbqp(P0O9e`~3(o^UC(NzFhC`dr#eCNd2*Mceb`w4YI zh2qJ^ud~!_xM9-SyTu4Cl_h29dSv_|Iy5+z9hjwGAnViA)Qt}@Vzz;AyawKATnd;% zg!e&FLhvdq^m$=#8?(#BjKyZNE!N~ zm+5r-3PUtcz(i~4(OE*mO9c)tW2|Cc7o8`7r4I%z#H@uw`5((ZqT1cPM36k2xd(m^ zu;$VtVB1Qd5F!YG@S zTH8#`>v)`+8hvi!#pl8L*)_ag>pL%9UZ2M*f;f1F&He#K_#OO!$+Jdr zB$|O;=DSbde_L1Jy+ys=0dV~vB+vf7t`W4S^Oy9>92m=(n-fR?{3v`-*vxsE$KDUVXPm#j8?2eIXh@KY-V~6z@ZID4TkW;n zM_Yn+#m|hWi9jB{W1R4J3z)*#C%Oa1#7Q+L?piy-o#MwJ8t`2nkW25#yZoK~vh+(^ zBi)zJ2M~y~fd7v~y8ir+&(tg>ut-_~Pkh&+RFQ4Ja~&$?AbgS7f6GcrcAiIViKh|N zl0vq+iTfzMMlauy+}HA$>hptr>`R;Do(V#|*zep31vka6wp;XoIoF|w z%5HGz6ao5smfcxtDv+HgAUUf(PVS?(+~;@VRP-HQH^3FizlI%DeHNt*%sMZuIs{xq z0`CnRCnGi&0>bVzYL@%A=LM~|dxh2jl$6$q{^ol8yz8wwk59XsC=-)~Fw&Mf0@{5h z26xDD$VPi8KihKO^lz}c?BCAz@+z*|$1}e^-_Lw|tDesOQC-i+M{v3vFV5xi#`?S* z-3=YM*^vsA`at0-97C(BK-Ypi)NAJ%Hsw+Uf=>m~*lppwrq(^br(~&OHs(bAb7dX- z!iTQ?>-Pl(*JXdQ>~FOVlkuJZWZB*=qz0rh!S%zw5I|6zPToB1#85AeT^ z)c(I^|6BIIWq(-NPPMCTA3(Dkv;x_UY^=y@y#G0#O$ae<1atn$7gFpXePE?@d{`rm zo#XO$Y~^KE8Uq~g zd8Vn_uPu%{>G0j9Hty8T8uOEV9G^jSVWDI{!)%M)7&)?+n)!EH6>t<;3Sw#!1gO|XwG z#&J0VFZpd*1ar(;l;n9XB_)AJNhPie;Y%YjyU^Z5*k`0RJgk~yP7&~sYdOu|6)M4Z z$XM}l-t$veml`iA1sZ~0!O8E4gxdQB)0xJeo!5gQU+x$ScZrxo?Dj11{jINdS_DCWndtgn zL=`;_MNjgo9pFTH#ZF)VAU??v)%MN*fi2oW3Ci~qz5>=bpF~>jIvS)pRPGW0@@`3j z*x^GaQBFpd8n;2wh zo@pjBGOopZ6Pcc5R@Yd{25I z^)Jvv92Z>dqJc*1DUL4W{h(b))Qt;0wwk@gNg8pON@R3&7K?Lnomor9@rn}1^E8v1 z%5En;K4*mY`F0ybV$i}A&%JdPae_3+u`vLf9ctUvT@piPXv>)L>UJ_j98Xgi<@^@S z)SS@D-W)U1&(5KKei_Q1RFH(s&JW|S|SOuKo@r9JPHasZ!sr~h?!vq zi1S+(7G9TP?)Jz*@^m zH~T|~)<;t<=-y7t5e7$1eVm7KNo|t=W)-$9hO;r$0 zEu_AuEr0sm)l=%{stIdG6dNSdEls11fD+n)!*`)a9APiyoH+SNppUmDVW*`X4$HY% zf#&bMAFk#OsVY!?j1iPQg%E-nF@*i5!Zz;J#~I)G@SWb9CM4tartjG~AQ{`I zX<#umbrb)~QIDv?M^0BEahwT&(DfjxWv+e)gXU6}`dHz4$ zXTcKJTGPhQC*_gq64SQ2Tpja#(M2+)Bpe$=7{m zgvkjb`Ep<}Lw*z_K?{vEtlav!mH5a@q+1{(Muh}#s-rN^Yz3Y7O)RXc4{l!xs zy4x@Q`BnGDQ-6Q?=P#1`3*CIm9Uph+tDJTj9$yslyZno%K2bNvFP?fgzwbT|Puly7 zr#@7^y=2?gn@_pd%W=M5LN?!;vkty^>ecg4FUhN)nzP}*xcQa)x0jr?aQKvaA9v1I zxmNquoPVazlI2m2r)K9|(3jjMTGFY=#)I|@asCHa;}8hz-TLz3hUGen1c60&*D zTJB{pxueoFh2ztg#QP4Z)l%)c6i(F6ut*mmQ`C*qGz_%en|$E!vt3JPHZ8Q2wzO$I z#>ZSxsJ8@XP?n_#8amR0NhcXboNaps2F_2>ndmi4)--YAH^u2NyWv6~r_&a)=Y3>h zT&5uIeVo^&mBwi^;>vfpa#peXJl~m1UfCrV)|l-Xz$6S%k&(!Ir-9|}x^9~6jMNx6 zXX}Q^GN-2MHL?Ks!mg-ekF;3w2+UH?kZSG@pHVcl^J#ox_^{-M02hJX?~x&X$TvNp zBS0tzHEL*GJ-x0*712^z3cGBikI`p9AFQKaR%MwzHn2`o(=_Y@$>$MLov&uOlCVj9e>v z(meOz^N_$5`(5SsxZ*;4JGGD>fAt*~Z&g)1{rx#KEbE`iQTr%L`kz?8Q5F0nxpWzx zj(=pG!6Gw6Pr8o#m1(A@)A=>{I6s)Uvd|iu$C1wah)5A0;cv7%O@6E^Qdb|g%Hb>1Br6LIh48)%LlW^-sZi*A=Wxmli`kgjjtg9`WAxKZlP$KwUHBrOca}zBe_03Yf@bcv|GQ~ zuCD9%@snS5vpzK}A71P)vp~L(*8#$cteym%pR2C#?~jH0HxCBUWA^upGIS&0z7%x^|%74|9=D3ate zao2Fo6v(QN>3yF1q2b~wl<9a1bhcc-FMH*l3SD#yXQAV|b!~M*!73f`8_%S~Nbjla zdI@8&Mv^cwbE9%5nZKURTXwNMtof?XfYZ|kn5;#W9J40SpFa9C5M-j64IfC)pte9G z8v#geQEkng423z@`v~D_Q5sGA@Dxgte6}3B->MzH2E!J6(^xI`3+(FCo+8#vwzYd# zFVZH_r9B@A20v!$`!s-i-vbi7Pb`-m;}i@^ZxOmA>e+M`^Bz;pnDr>GVPS!HoT1vm@WLOishVBs$feJxYvcdluFbA@GN79Gh${ z>8`q2Z+J=C9cV$~jGjk!(Ce*f0`G6mdhzSF*bHQYGMT}y4kX!6GzCvU)xN?cSx)LMflF zL_Dq(?1EAf<7*GAEdYrQf z6_455?hJ_)=(GF1?R;I?tb-BBijpj5WZS)Q&eMJEf#>n(aXPKauCIOKR>KzqF8uRV zMH}$xk8Y?lAAcJUw(ttcFszC@Z;rlm*}SjU%cHnnACLUHec$u#zPda6V|6|skHPtJ zJUXY#Te+Sd#qN50=ezBz%6I!$<*bjd;O9E*3`of;j2w36ZOCzxcO|8nlY7FS5!REy z5xx}5iO||)dJ_pjL+HVoUvhwgfD^@MNeDV1GC7s_EA`V@X|q{7JW)7>bb8O}i#qpL z{)Q~}Q%I#RBkZqA%e>caL~Uw=&m2Xv-?Cd%YxJv6F(!TOg8q7Jn746_DD&$_-dC}N zzx_+y=&@kn4Q|9A*{Psb0c@Yq;%xUTak!n$g}+MsF@~Bl5^I!hItwl z0HgxUv|{1}wn;MX&+%ow_-Xq6VypC~)01#dF}08Ofs_idvyrYt%Mi(B zb$eSJIjiwD68V`3K(K)wl;OZw5>#3w8D<3DE5XR(3GhDFE%=Bb0NKEv2540?4q2F? zbsz3G5!z21)p){ws&RYcYB)K4VO8g)PLiy42_dmVO^;y7Gwk)Cauy2Yj_3JFK>M@l zmd|fq5OC7R8~z(S%?w6{>H7vGkx ztRTfrs@o9amE(65kl#}(mVWNR*ORd|T0bF}v4&mdy`>rFG;U~BURSkoXsF^zhw~+} zg2P68oQ{jU@P`ANWQ;WtfIx;z4hFs{`#p7W;HdVN+eW+xsbg-NP~C3lavaw>hx3OM z2?K#c{@kCH5)-Q!2G*nR{Rq?>2@vroXFNX2YDzUbV`?WoQ?hf<5dr||guuf4@|kyc zX5VD*x88LIR4LzYREB9kdb3RgLbCvvEdo=?I!V_9ipI1j=bz?gJKlCslJ2EA0l-jT zENf@to=E>mAw#ABt&I_Z5&6L|<*UZDRENti#=z`}QRweony|6?G=P#IJMijIW=mn( znX>@!75a2{Y28M#58KBt+Ku4D1Hh4Gkp;sMg0$#Suq>-- z$8ls-k#d}~gMFeWwB;6Gq?{U-U^PyaOTv2DcW&V^&F<&VQP%bJ8Q6#0aJx20f7m!p zfi3VwS#}yu3s4NN)8UtOnu^U{(^29di5L*uk}%SqiG}XK2>TbB9_1D57Sf+_Oj4Av zuBk~_^2TDef2#>iHO9329f#L12A|K(;uuv#oQR+Se9sI31Oh>xqfpN1_$&zA!44$O zjnIBTx^u}5+`srVUve`uD$;vMi%QZWH(%eQV@lOB2is57Gp(y~aoJuBWxH0#H?{iA zzX^Hbp7Duj8^Dhjrb~9L^K9u`pju?wP0&Z3~-U4D} zJ|k(@_u1>!Ak9kj8H*}04TSfG_k#P7V3D-KBaL}B){Teos5%Ig$cnGZ(u{gNrK!R7 z63%-c2y0q!Uam&*I`&UI62mlE8toOc!uW=Lx_SxGkkvgYHvx?Ax^0zvffe4p&j5#K z96l{;G=9as;#0M(*fcFGzO(wS!#ME^Cwa{t$t>^?cPa5G>iyonKssg!zC+zOn%Rxz zO*wn$@p`xhv6l9()nN7-A61Rt7j1V|Z7(T@2g$qL*O%Xx#m;fJ50)RjY{-ol2(WRD&waJRm9eJ4@YKz3Y7grnFun zd>)28cgG=Mr3#UTACZDWd&llD0|^sL6h)yq!#aPhcdnM=qiFCP?HT>l64^5#_BKqC zHJUFxPZ=7IgMrYiKZcUuRLFcATV6`hIt(|c%6T@WSpdf*0vznQxu89g8EI`Iav~nP zvLm{V;2(G$V>ud|gd{Nx6w(0im7@&qyr5mI5U zN>f5lE?-1)Qib_|jAa~>(yC`NR`<_~9_a3VyFDvlbHDaJpT_a+jmC}@0*<0~4+#^p zQ}vFQiaHg!3)3{1Y^;osZY!^E$EqkvNayBq*iwa*W@x>H%;S~1Oq?FCGNZmriP=sm z05WP~B(r6oHW|=cFDm@oObF>1$Vi-SAOy1trxU`$>(ll^ylbAYaEL>>l0WZvv zp!a)cCwG@jpvSE}wdd3_72OxZU-~Xc*Q#1Q*FuXnr-3$KjS!G`+^vzBv)&bRg~5An zFXuD4S=fqt%r~W8$cl`y`TKH6DQo7$xojG=hi0Zv2cT00$%J%UvHfEw-`jO#ywJK> zyS?d>6R3MjOvV{Pq#^1j0gfK}3>0t^6|#&_(>aRqj%iA;9JXZ+_v`rDB2?dJCsSip{>4?+MWMdzKhdYxlrh{}+>I*?~o}ThLi#)wVD&CM5rh< zd)uQ|ecJHxJEPCV{uYu^OY&ujY{!^INMtlE=v@1Lv(vz)MSxkmlA@G{m=@|FNVLEc z$Q%lY-mRkx(*kS$_>y)8_B&wNa3fI_E4TF2ytxtpKQjPP=hxFU~q95=a9 zTJO6%m()pslPl?9x^7Y?qP4vr!@=fMl_5!!fgQqs1kx=`LVxouZ|9w@+(;7H;pevR z4@zANeE8-GqPRWnLn&`Imt?>x6k>6II7n!IKfWm;G9JSXs@XW|XFa$XmiyYCSTP)u z4Z?de`Cf1JKYVswnO1a^85_x)P?7`}$;IM&%;tI8$VNFAHd=qVj{e&n9TRPRv{tbU z*zP{^{ABP{*rsEQ_8a$PB6YcnL`U}|gpDpt*Y;_uV%E)3r=ShPX2@>8 zUGIvnW^{;sX(Dwdfkmgu~}>r%1v>2Lr7VY?)qtjF&O(54R|)AM4M)J^EHj@+6;F9Pf%q#q=Bw4WvWp$EKpY&{R#H<3_aR z^Kl>0afxK0%yG? z+1LmSpGbnT*g7eQVfK_$FJiQsqolJm(TbuX#VU#-pEZJM&kctFP9yM03RjvrKgGg6 zp!NC9z6FMz9++gH58I?&lYG90b8*Z2fFQc^G(IOozS|m-0hp$iO^72EHZLt@5Ef6p zvJz6FY=zKeS}y6KsYk!S1;FwBc&H7b?2fshau0>_qU~n?SXbs^FO*}&Q>%;zNf&D1 z@aW54-9>XTr{Kv^1;RfCkeCjP{2AG}H!?hHcJ*X3@)|>oha4VTAKHUq8Ez0;jyFLc z7!>UHBDB04v;lZs10j@ZiQ|=yX_(p!ujZkd8a zt$9G2EY(Po1SR=w`VaoXaTpn!kg1eprv;x@Zk^riu0!uFL1j}AKYbo>lVup?rC zOc`;fbtRDQ2#3cBLi`Jccsp9Y==^j}Ix56qVmR#c3-#dQ2O7Uqa>1b)qov1bW1maw zxK@Zq*l{NY3bQ$GdLnOF4vH3%yor!*N+ST_Adcz`QVEn3+VuOqS7Zn~-4h69b>Q?H#m1qoux@lr${QPlM7F2*)-oGS6pT^(O%Ry}&)-zyFKEhFDmWmZJ5|x1t-L_^yp~&le(@5o$ z|B-fm&+*HgdZLYt8^Zd;1eDvEvbQtijpI3;Q)m=XJ&)%bi}3DBAzKV9`QdYB-QzQ$ zWnST3O_+rFoaJ2^(cZdZwO@PzB2V?u?*;5xEsPKun$qTek`UIP6A60A9$>uMY3qn) zi_hvN+g*RWN0C4~ND_<>3fW?wE8;6L!9ld`4DBe?U+mMO6)4|t2+_|N-rl?``PY5j zzwIwSp=$SU|GBX&==&7K2^vCNcBloBcEA*PXg!v)BnXUk4bggVpO?U71x-Us)p_rr zRnB}`R&1nqxTo7IzK`G^1Qfc3P+7%2cX$=fr$T#)6AL(-{& zjW=5jt1&h{?$96X^YEMl>Cn^K`aYw-?@Zrye!AO?@Ioi~;VX7e{Bbf@9gmF7^I>9t z*Zk{cJ8}D;skQ&(`N`|Nh3a%gvPisiWZFCL{}c22sTTD^|sy>b0G(dr;x1Axt1W#MCw! zM%`czH&+xNS1 zckS=!SdeqyVvIVW`@{_Iq%HQJd}4A2+oJUIYOe41wed2l7WHkjhL}xFmsv5@Io3bf zp&UkwFT*3zG-WHC*7>6omUtFDG%l~}bqbArscChmJ7MeU9w4AvA(fI1!>tJn_jN^p z-e7B_EDOtd=Lj&NHG=*2T0IY^r8@1w?)K+w%}Pb9WM^P(79H$RiRX+I<+zO(b?*Aq zxUq3K93-`;i>|Liv==_d{W#?;0(jevoz>N0^K+f{K_tqwv@2BS!1{(S^0AqWIK5os zAyW?9#lIVObKigAFyj9`Og?5?sl&-hKKu8=KmBUWNzzVD#l6qy3KJS=KhxI_jvcqF z_xhb@*-X3Grz{?I2>b_Xn2-X~XBOZ8*L%vh^w_Q&WM`fsPK7~7$VQ})?PjX73fSSm zaqPadidj+1xuQO8-(AR?qRRJdmyNd>hc(C;b8aZWt~yJ}Qp+v@OD=_xzH~Bmzod#F zCumj7`9&r(_L+%nZoxfvAfUx>UVCI98^-v-y&5e#H|c`BjTjwd8 zeHcXS)0X(H)x`K52v`T3;V&u>hCBHwE*%@cI=l_M)hBnbT=Vlr7l3oW>f+4vd}rbK_N5w2X$Ud+!z zR&l+U(jAx#5LyOkxyBH|x3fXsEUQ1$<0XaG;o$XvrzZ38IRt#6 z^1nDE{Msu7LX6ip_Qm!b=u=?-azElZXiW&R^WyvJARq{-prdn-bTXA;n$YFi^G9~> z;oX%foK~H?A*C3hj_A6;)Lutqjc~jmkz|?kQ$Xu9i9c`Gc;_@;#&Miwjh1?7f7~34 zbA$NueS}loImcg=e?%_Twi+_x+}_jLI;8vTE;G^|J&EvlpV_lXEMq|DK=5)#R`kcH z9ayy#Sl-rp{nYB|F!R=<1MUk%FMh1BDYE6 zByk+c=(u=Fkyh-H{wtYI0){3wwmr{C47zn{Zr1BD+yADYBE#!uxtGHc1TPR!Kvolh zQ%#^z21L>dbXzCmba6dV?*@F1(baFhvpm=3o})iRc141caKg^hiy+{H!|Um4h3wS3 z#Rq2fO#QX?btUufD}m@9nTxiS1`+<6BnUw55h=FTy3ztv1@n>sIx_E9P1o($yT=%e zl0-2`$Vh32ebEAM1g#M?M2b*Lpi>Wo%MgfrP#H454Ms(J_9v`oJhnzR2ZJO?-F%-m zrp1|$EaM}HQ!LP$QObg-FO&)+vfFO6lw|@RZqZ!1XF}ZTkW_$CWZoh#-i}$4Z(@O2 z+bNx}4fG{%Z&!P_$7yym8|j5?UCirD$=0P@$h%CDjY3wCZZK6{7r`?pkh~_P0;fkq z^G86tiHu^tRR_a-wS=kKjc=Bxmyn`$A|s%=yEohMaxVAB2kCHFVP-7Lh;yHiHU(q0g-!H#>I0s&-O8}N>Ml*I7#p6f5&hddHuQ*!GkYg zhJ7EN$B5F`y^1r!Pvb*%$i$G(Y>TfQWJ3OnXPr@gzdOJ%t>1w8l)f$dRDY>&e z&%K_Sfs=-{lpi zbSPCcVDTIow*lrmB&)XD6`r~YV2OKQA8O-pZ|F$bK>3W1T?H}y34d+Ji-M^Q7$nb- zFrE8KFsJ9Y^N6TMzklqMhqGO&Ag;6pR1VM^Kda+BDq3L)^Ob*GQw+`6X9%0uF#1sKJ+Wy*`=lMtN);XiyZdWuR z#q;^4x^5)g?X{q$CXN=8dRON(+Gj`}2rVtRODgPTFX8lcO^Ixml0}#(G}tzXBEmy$ zkV-CoJM&@SoslA#qosGmna0< zv#u3)s-i1%YR0Lh=ty9j2>B~w%EqbgV_blJ!z_-uS_Xh`{&{~0t{aGenAebg6jC5S zeAjro4P|Az#keurWG+b6J$LTqIk7KkSBa;ya)L)X76H-=oKzq=p(*a~2$ zrYpf+cWosEQ^IGZDTl515ZZhb)6EG?&)7U3x?3?f8pWPMg|R$4iyPJ}93!6*@^d7gT zdWQu*KQ_N;0cgq?Z#!B{4=RvaKqzRtpbQg0aQKjIrEx3&KD(uhp_q@vkz(OGNhXi zXS;w5{_}VPfW~b4KgXA50?V!p0@Le1g&x_7eZn{&I`r8JuBx)C4(XfcIv|!2kjoa+ zyn_O#HRlkh0dw_fdD*<>_YH!6qXNxE{f${n1MDy-UQMHt1Lc75`uIf~ZpYV+k@?iw zIeQ*a>u8zkraJTbhgzXX(PX@HMyPV|Ky%W}OTa&jkXRgUj|c!{@(_SP@4HyPXzM25 zsRED~0@L;baEq5a3_S?yUW{Reg18q46(gkuhCW_(L;GP>fbsT@W&N>p5xEV&do$T*xPEMfL0l#cO58@ zzC_#)pG8~oPj*lR67v)ow)-`vMftWrdq$zR&Sx+9S^br6AljcDRYqeWn6X*9M|_r~ z+xk4vtARBx)s-9g#IF#}iv>eL}yx}z|2n4;|_X`v9)a$cNtOgEOZ;$@Fh za6NH+g{O_|)8YGXbSCBP^%{O@c5!V*#;6>QHgf3^Qy3Bbi(h_QN5C;25F%{ zr0^kzKwkNcwiySU?i9;rOvxo#t%TEle9dR8jvoE?gkEBJivbUVA>@IL4UxN`g_iWl z&JC8kJ1G@-j#LJ;yW`X9C6!lR#i>9M=J=%Hf!x_oQmPYrO=bXl0=|gj3BjQ$3u4PU@v{7MrHmXHuHO+^)dA1jGav&bvTZ z`?~DY>$_(%_G`Ph)~kgQ$BL|}Zn{?_@4arZ_tkP9P65ZVx18Xdgt$W_|A9D{w9l#* z5+N-DR&FC-;6}~-ux)vv*<`~w6J-| zwMbDi(vj9KO?{-tF6s|8)+2&e=6T+-_}(3%`%K@cQ6vBZ`{+}AABM@M>GF|=4WP3j z6C9kPkyt^%uEAgf;a~toK)SyX%0he911IXmYm!LwdUqj2ai!tQAgE1(pviz8PJo@u zlo)85Vf^stHdX~%`&HHV0L{6sLa z&i(#9JO8na{!ly>Mzi|QvJT5c^pX#B8(Y+zPmOzi-h5F!ZNK4}ELt7Ea2R^YH;O0J zoX?LHckc$mwJGgt_-=XmuixPYMQijLqag5kClYw?>g^zb_bw_I3Bh-m|EOnU{PnIM zK5kjS%?pLucczy3_wR7s(yKlDZV2DpdBa5Z)xP#gYn+XXM3dB((tgylMN~uT;T-<_ zycZw6`9o(e}2+PS@Cv;yadO*IU=vnqRhTxt;4$4Ajxe0U{ zz9jF}Xcy)zfS5}NHvZ_j0O`4Vnf5SArXm-OwJb9VMJ0}tAk|SE_%wJDB}wnz;j6+r zx4@~gAZ7d2_%iQcb|XN#Jt&Yo$(Oribsb85%&>&~NbFZ!;~1Lz!~P7CMZB7=L`mHk z^!?GPf$aONG}iI%HXu~4>|!A?Z>O86tY%63wH$vClC=ITSc@f)E%rWqbO0(u;6mZp zQ|mhgJXr<&siC1IHdGHQ6H?`h<*YB6t)Fdsrk6>jW01YWH2ucGA#AWdbK9B+Gsgge zn?H98_%|SqJs2&(sS7o#;XvScbhalfku#CWXWwJ}=BSLo?gPqP&%e-Z9WMwohva6S zFKMTMvcy&6JBT^e_I=>=Fl{3w-zh3@5C#ZEJmW}5VSmGn^~4AAM#7nO5(*h01?Cb& zx*Xem#o-;Y6#^GQ8kC3e85ZxO6~Q>ZHOpO>g<_V;1R;t!Oj(E;Gs{nrATH;hb@&$K z$h2vD5!n&?yN|W&V(Vf(RniET2L3{s3e8wx2nENfeCY73&|22Dj%Y~+q37Z!l?-z z`UlB~{}1THKi}svxShA(ndatSzdH{&74W>``Onxj!#_UXYl{3UV+G(4YHf?2q74F8=;!C0PMBZg zKb!`6#%buOd+K%3=6=Ey)WXD7ZQm5}pVSYJ(#@%aOBGe6BWt!HoRK-cR+y+M5-JJY zq&(9Yy9OkYlUN@8q$*Mp?qFEW6)Q~$VKQ-=)*;zief`=KyeN_a9VrsB8CWFHpw0Rf z=7zm*?4RZ5RiY4RrgZzsPReRzxhgMBReNq$BGLzIVg1tAK5b;kusFT0y1u?yKkFJD zQ20(hNdP8=2tUucNXQ!)WVcu>3m$2WB&w3dq@W2m&naQ^aaq9;$CHyOMPnN%!Kw%q zlI}4!AEgHaMvb~-j%<9DN)%jVd$IK>dOJcy`bJ+5W|wNRJQGinC2NSM4OrGKNw^BZ1zoe+IWEpIXh?(S8l86Esdo$4R zy}AMWDEyM(5VmFiE|%La3hbG9Ylrr1K!`p*$KwP7pLc<*O9Y_dcmXd${Yg<*+qRFz ztELI_3P7~pmb;CO1^bnZxgP{Zj-n{JLm@vNlOK-h{0E%nPECROo|$Cdv#>kOHbzdzO4ufH37 zd|yfy&f#lm4>61sN$nZU^XzLDw@G4LjEVYT&#JSn!)p7xb9Q?cR&&GI(ANvK_Alp< zAjiM9e}4K-T|drx*%&)#nVUMY{+V_E_3UuI{PeD69aK$l7}(hV>vrz9@3vE7E@Gh$ zp_62LeBSjV=jq>`;d35588Y#!y=C#~-|WkN^UeP}baUy*KYq>q^o+)vG@{SWfAD*D zW7*a&H9~FDyB?V{W1bQP(tpTed30bPcQi?oOq|G+!|>{jpMaP(aUkRS)4J+;AWwcS z%PeJsud>9n=t=qQ9|^8lxWmQne8B!n5q#XA4YEroif|*Ge{me2An-ghzIR>sEabW- zrVhQ!q8(~3_fcI}ha1m>rmj`RmN2s%ukbv7@y(_ejy(GPCyk>bzvCm(=*U*YDH{rC zmPgg&1%+(47r+oO?mY9GZ}Z|iz~{Ty8{5M6RpFZiPK|9yTl`g`_d zY--z0I%`*V2Wcy!jn2wgeC`yoY|&4-D*Yg8enfYOOna*x{b?5Em7nkjHEiX_0T5fLK)jK|Zt|K+o zj5_{q8Jqmh`cRwhgOpa6KQ8mV?KbZAU+?2@z0dgTW689?U6y52>stT7x%tmynf`@w zFx8qoZhqk0pgNim{=m8U)S=20pC5i%rW^tBl>TEq#liaBcZO)*sl(rD*T40RM0oS< z{bm{e3I5W!;HliJJ2>YX5&Z}6i%Ll&yP#ISB?Ofu*I+7pZxVa8tP?=#67(YrJ z4xjD1G)})_S-?A5^}->DqE1<_N8zSOfL#{^0CrH$oRF6uOxgHZmZJTWzXaJBqNwjR zMg^!GKA^U6S~kGSJtR&%!+3u5)7gTNS%GqR+^S*TO;XC?`wfJLr1(#Ef&H64jg-V8 z_mQ>{`$pi2xkx!^J*PL{)t*+754WcXhCxLFAN`X>E^V~Yl_GkQFhtFz?vXZ$U4ze! z+zSW$W`6UJx2NUIGT-7uL^ame6>YJGPSd#yeay(sCv{7RPakJdw- zz$pidwhnPRyhx$jXNYXJM4^*9^vj$pphqRPpmE5G!_G=BIp!B>-2bY--M`FB`1@nn zX3~|`_@Sw_4d$@mp~KHQSe(NHA#_>`d3LW`sU@%1Oxa;BMfUY9Q*#{%0W5yK47_D|Acb(j4Q@DTj4sQ`K=kUs+4JP577lhVoEzbgag(ykm zxWr~>Geax*%vKuq$Em4HdE}ls-;ZDxE$ov(Jrw#wg;V#LDj+N);km%^OqJmcv}R&) zHfDQ^{ftp0%ol&Q2bn zc9zpYqj0)BF2#GRMPuh)fxF8C7W1BBGFlvm`AGqZ1_#z?;C|=3SgM72+Po91T+(#& zTxXXB*99!gl1#VW{r;FIdZS&a5%eP$RTn2eJ7$@UhgwQ9Sn_ERJcFc67~(Q&7qUYb zhDhH6GffZlcS(oe`c@pe2)_%xO!@sjBsIi5`t!_wP4H}4m~V8(_tYAp6Q;mve|OAz zP~L8X#NxDwY07gPlRX}ngcUSZ#eE54u}0&t;nCVF&@lKk*JX9VnF+_T1JywOF(@?q zhvzpGQ)3FKHOr)uoF%cNxECodotzod4)c0+;2W@%9&3ZySwia^4?hA zbQk^2;#9bJtZ_<7ystQsPgtt9EFg+!mW_Q6?cG!3Y4wKd;sUKp;gHjR9D9J;hU9j_ zVO|i|K`&8XOZw8~E|QI!(`G)ctTUfAclVP^*n4Yz+q=7U%*W={#AjYr=%eO{1Q!!2 zYEIwxO~2eR!)ZDV>2TAP_1*Wkb07*Q9yq?6zaI=C%{X0Po%z0uJ8H^$VdMFs-Mqqb zvWrb7HIFln)6>&5J)I5I6dL{GD@Jx>Q5zzz!SM-q|GJy2fkTyhKAl$&EaQY6sj=*g z&uDO}&{EFlJKo=tcG)6PRWepNmr6UhpLC*u$j7e))=hLF&l-T7G@<^?9ATPPnqJOl z>8EipvJ;8sBVwBysjNod-DUTgyG>|liM+a?m)ioqzmT~dL11E6%>Rtrz-%7aFNDU? zGf{hFydQ9iP%O)Fdcy9&EwRK%=z$WCaVSt?97DA6vrO2GO{^;8&Btjj8*MWW!MV}b z4^*)#7f1pjnZcp`gcb(FVBSNu4Upb13uG^s8=Ug-|6%W4mY>CvJi&cGMOrR;Lsuj2 zkR6p~5(tn40wE+WUA;hD1PGAC9ol-)Rjb*K+1Nb5%x+#`cJnCtBI5^r5fz#FMMh>; zL}i9qf1!T}(Ba&V`_KLOahIV<9^!X%k|cY*UyRi*nd20zrnH?pS z9fRUUVF~hU*l3e5)8S4=_V#gN9*@Yz@CWNQ-m#S-Q?6LQ*&f+z52j5Ws|Q;Rf_;$> zmrGqcEO1mwnsL2)wSE68_t~im+Rizkv-ly*v@PPbp_x85ZHhwsR{kn_z2l0E%vS_b zX8Ar`hWfg&D9lh)(lwVeIJzxwNY3ZU>krvo79oqV9EbTFg*WkQ1?#AKb}q;1kMmJg z)~t%`4{uNVN?fmGQ~_IjF{RBWfLUJetk@k0uI9M9XQ)2LMz*kDTn02aav`zrxi7ZN z$;f`julKn)9Ij*ggY{1xS0nIp+HZ4IX4>fKk%w-}o}4kay1l~Ymtekh=|WiNQdUUf z2ljbwvHijJR!!&5jJ||>-qO%Gz>dYAsP9}OT_sZit{d6PegSqWicb^hWDrVI1QP8Q#zhU&iMW6UCKu+Sv?9_r~}bXVXP1Yo47NaN}qm_A{oZ23A|o-bEv zQJYj?t)2<_BoaEVVXRQ_>%hGNVBHEJ8Mf+RK1w%I==7Y%Q9d-?W}~;tGp9sh!yQNyBpYF3vD==)9A^-4W56az=WQNtWMz+x+ZVSCf(!eZG-`9Cc za+~Z-9x$@yLLVwn!CV-|o1Bk~v?Xo<)sBxuMY?uZl98{5hkm*i6JW|W2|V>+7#Md) z`@23g=NdtfGaMvW-Uw^$X>)b)MxLu6Qwz9dsxw16^GT0Lo)s!%&TCT*^ z5h@T#MF@Px)6du0{1flQpHQ+OFHx$hy3v4PB-L;z^z@n@%|I3VRuhC*UC&$2KoD7+ z=7t0O*3gqNBd9+tybAFf@_6^IbGu?UBJhJvO}Q{HE~8=RJ5N&cvUEZkVFhWXR$Ccx zJIT+6UG0&b+KAQfLyERnBp&2Kepgc@S@yqI4iMZW9Jih~+=OVnv|dcU$M#~VcD?l^ z>F)ICTrFll7-W-xg8zAbjsgikbkht^i{FSoynVGDD1XRO`eSeeB zA`jU)49^SjU*Ks4_CWqBaunj+@hhJxqsjsL`nvh#wLnII$nGB5jQ|@7X!0$i0Q35$ z9iBA@c)d2}2D)O-cYoB!%F@h0&pl#krj$c7wLE}Y-fzmJzegbQyL{v6>nkbrH+#z% ze9LegrvM*%%i&7NPL=7!Z)H+kn0{P8cT(A+U)N2$DQLLRdo~K!Q4p zX&1z1s$$t7c>%UtLPo0+kZG}v6PzHHaK|S)F`N0ph_;%Kc(r<8HC)^Y=q$J<(f}7S zn1oukLt*4WECS({2C4*OmAm>l7$8q9c8|ErCIum2Wr)rK7@7d@=iHJuqqBpS(ST7h zb^@xrqq|+U%wb&^48yAUq^<#uA)ojYW^Ph+R>5#N-q<6ewsYA?2EpJ<11}dx9wXmf zn)+$~*xZzE&!wTB9R=ghE%#jM7VyXj%I0t*n*cUK)l;T~!fl$5k6~Ax_qemBRc)V0 zUL++&jp$$PR=5ydL5{e?O++bNoyb4IRXJ$d=zy0e~AXfY|F9c+Jny6vO0)7F*|lSZyxw|7T0 zgvYU9_Id#HI36~_UELDN?NnbM9$C&J7GBK@!<+i^vZBwoZTPs*rDIuJx)J7CV0wmr z+`Ex;X_~(@cs+*u#r_u=b_eIjYcD#*!?!M$l0R8}Ck>%A^jJ7KmiWj{kMrel-iy}$ z^x8f4+ebDy1F6p;m9qYeJp|>e-gw$^)Iv(12WNe%g+xO>6IO@veTLLKrm_O@1fr#m zmzSa3Z;L<5ciW7mP95iv%!0IJ-ogE?jp0E!N+Go!28DOuLM^|EtmowiUv43f-Q$V! z$j&L`ao+E@_qJ$!kiew}Wv{lx(RP&4F;nV&cpbEjmzR-FjZdzrjZ+2Jx>t&`(T^5)|ltFN+pBD~nh_ePU~nGB&Cn<;oL)u=_U zRtA^@f80KKb1km-#>x-*>T>7RF52i!e?)4ar}GHV_Wj{JIO4$PjZneUAuQjYE*{Fm z$Q#1x>R&w#s`V6Ppp0B~vW?puLbU?2YQ>%6kZD2qnh_y{wUk@q0`f8pE z8I(-3-#m|We`TEd`jYSO_ZwP0KGO1Nb=qj?8lv?BtL~?;*j(ky)mn+=;ocIR&niHd z@iXutjRqR!+z9p<7D#`)oA@^OmD85GU2B5RcayQ%Oii^%eJgLTo7Z$dM0FQ|q#m1> z7xHVON+WV^RbRDz5LTPG0lnknDS*z^5zqdlWFJ6XyXW#F`?k(EI_QI(ix7dbacEQ-& zNq=e`Szl{ku^#+EDj4H@e`oK*^S!axnnFkXyTnIx0Bk zyFpj$^B=d5dUy=*$tRQq#oaICN$v#7=*eU0KLZdCMyS#4gnaYn-lR(#cJ-C^`K*y! zPuwPjN~3v2{=`RW^8Iv?uUE^GPeJ$;tAMNAhKc*r6Zy?u_}3AJpEYi!|42397!QAI zMaQ^v&pK4uOlfDcc2vuGkB&O5WcxB6v3|sQg6~hO&Bl0*$Lke2TyU-+v(+G5J$Uub z8|eVgPmk^TeiGM+hd$EXdDZ35gSbYHMbc-iBAQ`|JL`}&b?l4HHEWENHp*895I%<) z!NlqFtb}$JzuzBszbiqq?Uit(%?%w&cX*!ecANEmyM9i`JW=jWKsW$tRr^95F_XZ0 znTCoUC1Xz*Ai@>MM+6%eul^wfPWqHLCuarn$81WIPGC*3eHJGW6Zd!WOgI&iHBZDb zRw)dZ+5R*frC0_zNe0mqGJ1ndN0pv)`18uFWv`Z=vGjU-0N-icePix3*rrfS1r+`j zSf`5&B>*rVcxeOek9Pa*zVOc%vuv;L5oDaz(Y~Zdd>H~gKdsWE`SLZ{udg2TM+Co8 zkTJ`oTLC_)REp&*= z;+N?towp#jZDCokAba`Mi-QhPez@-*1<*4W`2$9(Ouf=)VwPNmrH9DtGgxQUYE_EwcfA7HbV52F!91pRs4D(~(?$gs@ z6{*%eB!EM)=1Ra5dp-qw>wWa<1lAl99XhT=u^8(&*WoIM$G{`**m*C*TBA*qVGZPK zsj0;wKJIY!M9HJ>uvAH`pU9cqW)5z-d*|&+z)eAZ7Rr5#`_t=D>hr5?|b!$sdTr`D21k;S8<1YcL7hn z8EC90YY$xZyKdS69m#m;4EO%jGEU)K&laC93Wc!tYjf05<2NT)#*Sn+l=7*9#w+4X zUb5YYq2USb{NnEs0h2eOOH%3~;KU7ax zh#@o{d$!x>*_o5v)|CT42_y}5?ht>x<-xK%#N3{wd9_3{f} zE|j9YKAZpmaOy{K^<-;wsUK71=dFRYrLFz_qY@d{gtFkh*E@S=>$5$1r)CmRUIVFc zyJp8XQeFza#Z}5RQQm2m zzk9eM?V2y%bbRl1$m+~H%lmD{x*{yjbec7JbGbfk!?&T2bHKj4uhjMQivP^~pCBEa zrd`-f$5(gskI*Mq%e?}$*l$tiYblSHC*Ln2<$kq)>3hcyM$#D`Z&({Im;+^Lzu353 zwY7Jao(Wu6n_C^v&X4p9S_^1AG`-(7&!L%km@^8|YQTr~+Y*KYB7wBFsb&)=E3Z%)>FyZl{qQCer>Zu!f_ZRxMKYiqOo?Y&`5qx|-RB*eW-hObNE zTv5EH-5uVe!%sff^p5n1z-Qidf#Gv;$PerHweVe@XK>uwh+B2=BviIQY#SijRF5~2 ziBm6|gEa%-MXvWaPBB?yrP_e}z^`apRlHY6^^{g(7 zSQ|ru?4j-YUeI$MpGl-M3tksCdIm~97&O5t*vL6`%NZlUkUeKB0$GjFyk4m`3X8rgqpT2RiPUU`D_J}tiBPhTS_Rzin z?GbwJX4pa0cOy)Y2sK&wy)svgicM= z^LY|RhNq)#cCf@vL*5Jt#27s^s`CylXMKLM=SBm$E`Gh=uPm$%=j{1B0KI%KzH8P6 zVAuqp&kn=QjYL&-t=WE0JqF+sW)(>QU3bp*K*Zfe-k*mz6LmtyMU$}T{}8s^AF}tk z09n&VJ6vbCK#uQt{d113r#S4)P@KRPFvkucfbLP*Z}=arqgYUAy}lDX9xL4BsGbEm z%G(~5*&le!KW-Nvp%RB*CsMde1Pl}9zE3U=qMLh|pASpiTgPnhPWnP8 zRtH(CWf;R&wJz5Fat$1qpf&QTdYJeg@tPFHeD`30@i<4?v;o73uy@~AsilI!BlMCQIxM?O~ctdeNL8!_V zOGsRTM|KFU76UHQ&I7FOQCP3?I8G9V#eq=w2*X6uN-(X{Rldn@;`}@#XQKyk1v3!q zb4IUhZeL6z)GK<)4UCoZi5*)^Of+`a@mW56#Jf45OA?E_8IKn<-#n^ikM!QcQumMc ziDIy%3{AIjDjruuo`*@@_CN{I9CVkMi=%+sYRehZs@1Gzuk5(O?^t_th}&_ZA3#ww zbdGbR7u~FZVf+%TkwrE&H-_)7JhD641J;<2FfkTi?Bt}GX4e5_MYdH>4wiw&0-<7K zQ!gFu+9L<>E=2-oc`?u?f7FPeE^biHyrYd>ehuCZh^NH^L9k*UI7^%o6vs*^C;x;T zq^~l^0W4rO)UC5&!gYWL=#?E9MC)G#48NshjtbzPey@0v4LOlKv4@5)7u1pY8vD0rx4`HBZ*J$8EC3u z<}@*}(XRYdJblxlu@%vIS0sOO*`?TfPT%7|#o4lcPv*vxHYcDrAm!Y5h_8aw4b1w> zKEZri9gj%eAR$hJzbnC7w>j4J(Fkz-`+qlXkN0>TvENupC zLNU1ze@FY%i#;If&lF%#oeuPAXK%;j_DRUA92oEGfYk9K5=)>e*?X$-47vSW{9O&1 z*k~so;lOS!oG<9~%o8M)bs$lC0~l(p;(e}~lvWcU;a=ZNn4M|VUetFbgGGCxP4gU= zTespEKjC<07C<2OTl=+Q$Jj8<6_a}B?fyt|;qIUy)&papq2_vRxmtWaYjQ_QM-uo2 zw>zP8!)$zi?xc<@Ij6q%D#A3`CCD|^{(*WV*5c0{AF5?<%RRr}y{0H6HlR2{CZI^2 z1Q~0^3xZ`Q3?Ceo$wGwu1OQe+a}W8KeX_t_99Ju5St2d0-8$^IMXQoH^-V z#Pg`XfyYHV#0S6a5*^u7to)lZ_Q-d#BnYT)m1HHIk7zIQ!H`jYM)?I^IG>j@6BP1gi0n8?K$51E=&%0BnjA}T{8?O|JY|#Lc|(<8(Xn!1T9X<14e1@l zpnSanXczM4e0l7#Bxe_!Ok~#>Bi%&o0-tWfo?@dEtyK-}FCeh=EdBr`8XF8mk!iT;2vn7*W-UApM<%+R#-BY zEalB>57tu}*!m(08Iex#jRuZ`F%YcHtW5>^Y;R1HC-5UcY}dE=(#>0&V0{c zBn3R@?(JZ?UsPaCFAvg1K=(Q(!bjw9ZY8+a(ZAGJD#x%mv7GbZOijP&XfSoa?#=cN zyrtcZgR#U{sJY{g=K0}83o*8YUxc;Q@+j^B!n$ZpO_u{QD+T14%*a+npVtWK-*@Vj zhysAaGz+vhn#`G+Ch^Gg{ECv+yovVIkUfXQ%BM^@IT`I}^2EbTLkjN=$c;mo@mDc+ zAIz-|Zxt`7`X+r)93vo%aeX7VVS#0hOgb~PfS`2P^^SJqST<`x_Pp0umfL!@ zd~yrcATdf|aNUyDH&}dpf^;XJ7!}y$h)@AFvxZRKARR5Dx52(vo)<&Kj!vIEzc06S zPvnMqv7PonR(s|w21M7GVPK~|NA@}kzdcIlRii1n)dNrp`;JQbeFhwKI;#15Jp-_+87sM ze2Mm2P@IYfVoKt@ff^A<>ly{+^PPH*j2`z-$_ftf>PF0gi5avj4alyAN4^xHpA+e2NU8QZHXuLWB(`efjNotSpk!{IBxlR9guzj+3Qd! zjKTw;@)<_`L?Hm^B71BJ*z_PDP4jY%-INt~;wWtH)@Eza`BPALz_<9*6|gJP{pc{4 z=o#dGpRo(24oATA&9Duim{f2(OHxp@9K5J@o!ze}Rz}OpXu|Hi9 zJwJch55t5GhX_ zvXw%#Z|T4Ec~b_oZ+4bW{`*!gaZw+8>#bXkf7>s0Sa{Z~DLVqqk-fh?IR0fQxBMee z#%A%&h4wyRxG0|YZZ~3+xGQX8I=`G>$ln{tWJ>SWnY#%j>+BM^Iq2(k_SQ}y2Lr+K zN{YYUbweWJ9Apboa%)0RTNHPw=6L?mbZ$NGkUTKZ0w##Y8TBFC^)+hON#0(ZqPq$AD*(^ShD=OIeewhq7C&sfpDQA zDfrnS(ayQ}Xdk@kZl&L_iOJ*ZVZHd()$`pvpg1y{$M%$@cYV?6={pg{u%&^eo0&fA zj8P!JKh;~Q-$RG=#dlHS^<}Pr+@~TPuT{?x)sY1_M6m1$9+0p71W@eGUIMd+Wk%>j!}A`#=8U zH+YiWyE?wq*>Au3T%NNz{#84@;(z>gP=kQ_>)(D87jYR^?Qa=&^$q^*&38{}^7~Km zf6e8$-_-FvdsfG;yv23%1DO)kSMnt2uRUbG_K^L4;lEelZ@+og**&X*!usChrNFQL z0FS%&)wNR42EYBL$g229YR-SHKEhWXl3(jLlK6hjzgOIEzmoVHRE6L6L7fG+BK`(n zZom0{eXF31e;ZWIH~4b(O&=6p{M*%krf3>U|J;33KZoYGQ10^mP53OjvRWQ|d-<34 z0ZIP!jY$8X2|r`)sh_^~uRk0BRuI@OyKnEmbkeVufB&$nlK+4%pwIZ#>OXwfY3=u4{nQ#D)bBn0_Wqk!9lxHh zt_a#VS{n6V|LcGM^^(u8fAj1A{!gFFfBN-r{^{4KxPSWf|M>O)_)kBO;8Tqy$$$HA z-{60g^S|S4JHv=o_aB^dh;01<3q<|cqUXQ))jtsbnII|dKYV)mS5fktUs3e8cTMyg z=x>4Ih41xu-Bn@G0!Dx?dj9sCA!zK+qd3yDNQ0XHHVKLb`u%G^{a*TYi=J)jICy;R zo$vn)&HICbzf8m5{mcLHyMO+_e)li`@9+NQ|M}g&{BOVe=l}h8|NPIt`=9^!ul{4v z{+HlaX&op3_-mNeMR5B~8W%4UhUxXI267AAU;ipBf~NV$Uw`sKorY%Kum9t{{V$&s zC=)zD_rLkqiU0SoPCuCPYlHszWf%Q+72Fbm3i*E^St9udnx>O~2)J1I2Ratwh=_zZ z3FB|UDJ1{qUvX~)8T}?JgL{m>s{4Pr1x?J-|0%m}3~N{&l=~CG=HvO2ZZ8Ny*8}`- zcNEtid`qErm~6PXueZoT%A(itytxEf5e3LSLBwjCb()0_BRXEK%Lv?-KFNCYf-t88u8GV4?F(2V%; zPG2G+Zptr_j*sbG`V#3_ zVTW{iSRSO~mw>1@O;oP;){a6>~Ey*k)O!kp9qp;9*~Vkw4W&8KV4cTo&Vj+`nyW28phvcy?*wz9y88=kM;Wb z(^h}8dUdeI4FyyAAH@eZT8t`dmAMUN%y-(VNx$;xcy~o%r&i|n0C=HaZw+;3^zqOv zrz5ukUZNdfOPhj$4$UntAO3CF#Ta@HH&JBfv48M*V%z963089zhhK#mc|xi?u0x)O z>I2uU`b7AGpVHux#zvN=AFItiGV4{~usnYW4At(H*US+I6oo*qG!*3pb=5Kdegr{7 zl4j-;@>L!^rRBuMDv>2As(D+xRY+HJ-*r3FOk!qUPK6qRz)>yFGkwD7kE+7Xp^4+n zOwH^Hc_AV(v%jqb0m@pU0BpWw?i94h^(0v~OSF+Ck|&F=aMLtVUii*~GE%7$jXf05 zCm-wBd9ji>vpBAzpwfv?34HbGJ4TmWIi6=6H;r&*ho(mLiV@*b?c!Jv66o~n6~kI1 z;hU|Qyu`Y$-v_ii*l5_72;^4iZ0f9E)1je@Q0k?#UpzM3#o`UB$LB($s@Ka8X+|iZ zt?v4MGI=_UaZkGjypJNwob3II{@`XScG5iSUu8vOZH&*zQVq}PamJ0sYr`YN_*4mA zof2}Nu+j58lRO?1J;RHewJ;9DK=Eu5<8+Ey3m@}JbSiN2Taz*a)5?zWb5!nMtZ&{& zv|E*Ly&UaiA&aDylWzkFl5HT_6OvsZS$0(54()bYaQB3lR`61g!w(j+A6*4-_v3lr z2bk|Ew9}PVti1j3SW&}XnH&?B6-9+s*2EHuPVg8`VZ!V#uG>iwN70neV=ymD+_4S|+{CbeqvjqS9)6Z7xR~i+~nE$2kP7Oge zXhw-r%450mp(*2$UyW+jau`}HrljKBuwhvYE8lU9!E}K6-I*NAQWZ%$F@tsQI*zAt zq;em5)pi7KuKMr~=EcXN5DOWqZ_L+$;K9@C0Gj7r?_ZKfLvFob4 zy^H6fOyxA~#SDr}(IxXV(G^}nzgbx+e`K-fcH%@7Aqt)H?}Z~Qi&qG9oE=&&Q5SCl z9IRJ|iK7;v6$)>W#LI6I#SLo~>YIOLJ-X5CKVSZn`@8(CdAtn2tH;kFC+ar-NDAJ5 zlUFC}h->+73HkkMulxEH`G?xS1_$oy1aIo%yi4Lzb_MZxx5f2Yw^#pNM^^B@UC#mQ zI_DqE!!5!`vF+8%%F>37U+ezMI%V{mD3I5ewj^F86OcCt#=Q31AnKf-?O9X>B($E& zpG!aBPfQ=lm@`;jp+w+bscQ#D}w z37&Ks@z=`y^n=Jye+%yGXz5nHvVJ5V^)8{4@aL>pp7lri_tK4;aH8;Jm0a*dz%9WR za7s`K^JjfVPG#TmOl+?2Fzb8k@@+k$m3v9t$h9I%h=@ogRD!zxe9u_&iaH`3VIB9Z zJa+oX;!YsA^)arAvcIyk`xg9Kh=HE=4&2pnN5CE1e=ivUKLo-J?)vY&^ldU6l0`Mq z!QGGN?ccUO(n~SYLJu=(GvH@oMsq;L#XG`xo8W+(%m*;!uCw}KtX237%Vq_J8#>HY zz)_3NNXv%ybTUo*bYf6cjlFAB6nm7CI2KJcPpSOE;H)f0X4P56;xX(U+-{xrnEWG; zg>AyT7H_IWL3~l30acV7Aw?%S=xB*rzk8gGa2^SY($&iBLncpoeC}gRm`Mx^iJtGy zwoPdyCx5)Q-EK)VqKLLs^?Z8C6GIMbI4sG&RQae)vg`J3YYlkvnr=6a^{AnYPiheBNdpakyhJcq*1Ux0>`}=-I)%*^-x5-Pc;9aI zdp|nb26?-kJl!;#`*K306L8^{0R~X^z>l}G&?i(JRlp1dPOGWarKhcL<-SE$K!qfj zj^u=I_?oL!{o9`A&@PgR=Q0iuD07*QCO91Z?f}$e=DhJP5rYu3UQfMI0MCioHsZNsqMq$30;7{Ad z=S-f9>iFu%26=ge?^qwGzTX}fZ;?yHC}BcgQWxw9Gog6;cjQrwgRynH65#%-2YeBF zAn4`rX75K-4~_4Q3FaV|1_aJ2cOJ(jaVEV1#wXikyAYMI#D9RIcY?tWYR{+#@Qd^%kO+SMV~Gl&+^S76HV+SL6V zc=58l&ODX=K1Le%?UusB&{VS%qF>MK2XyW0ULQPNWs@#O2@={-GAUXE4q=ilvtTHe zUHz4K=?qx-=Exn;Yp5QQRrt8_jSz*AX{AVmW@I zl{tk%^$4OZhw4s0w<+3e}**>2-_do-}=*Z0qG59(lE{N#w@10 z)8L3Bh*GMGxh+m{2G=!p$4%erY!H6?PS5Zb(~)7bjb7RP=76m5{d|adel1B$w7eKN z1a+Kfps_qsae2TV5RaG!B!Auq9y@Qp(^BOw>-|_c&-El(usu%BO67srfRtTG6 z;aWADHN#PJWpGtlmOTx09UJEd5bS$~JgXT=kHqDk8}*Nj$_7ddNW@k3V?NK5XoL&q zT2Ay3Bg6O(fQEyn;hJ6H>;=h>z{UvTdO?Rzw|GJb2+#;OgJ{Dm+n>FRuCLEbPKeqO zglq&JwvBic(UCa-?ke|O%(Qh~mrBSmf>1n=OS`p3aid5CwQK_>xbSos@3uI7|Lhr9 zOT?UIkQ4r9Jy-D;y-P)xv`=4e&z5-3@+ zlW-72j6XdvtW`|?g`0-klbQ~^a2|1vg}&={fIlAE_c2!71-?ILNkPDTb5L~PpsqPK z7)OT7_lbZ`WimEEs}nx73!lAj;Tvzm+l%6(~&iHr7z1esv^Gi73O zO_qdwSoX5NA`?@Y&Gub#A3S8zFgQP|C;2Pz0e_A1q8yJ0;dB7@)n3H@BGy;wS+$Yx*qQE zk;S`we!^#SdTuUn_^dC7_22e4N7|KIHr^a0xFcO^!D?T%Dd~3YE5=fmmFlO_-GAEe z_TKr!P@l6c}Hts(v2;JJF*6eAId^S#_F7Y}UMR+(;GjU0j4L(tXgl;%!ETz8_oQ zn*b&pB96NHa&S;|P2Z^Ud0%ii?>j8RSbiLLkK)_>R{h$E(EfnK3c@v5^g>t!n2Mn; zPF^s4cEWLE3wXgSr8SbBH%kN`$^W6Xw==k5?S&&ail_Ouk_d_Bc4ytto~s z^K$QM>da3^>s$Rr^ef!6g6B1O%Fg@q*<9c0^0{A^AO6DMkbdAump_78FMmSMrQCx2 z=VLZxFrV61Bv;z)C;e`;i`-f}>o)F=eDKDEfav)^PjD|aQB)~PwQbu$;)!{LF&~gl zN~`PVuIFM>;K*ac#^$Bnj-prpz3`+z{;lozXDzlib#{#i48w>pimunhC^Q%Qc)ds7 zD>#E{LwnKB@we5-o@hKG&#dL5xA8}i7gFnETlCEE1#kB-7v=(ak)SB|;vR)@STi_1 ziV4kbLmcg8Fi6h90$C=Qdjj%8fm4{k;T4Kv&sZ492bfJ|+x1#pug@22b4B}*i<@QM zMiht-c^c^yKXwj-oe27g!ChVFg~7})LD*;@2jJWyA1of2?tP2{&gQBP{(Z>Yy46n1 z>>}CFJF^@IeETsJrkPwWi|!f(Uu>*gw`$reF^(G>>A8;y9=}|4YMW9M6ziR5X1p>% z0x_39$#&xE`}#pU=`euabBf_ozIby{@!lJ`9OSZ|#*GlSS@IfUEQXPsLeFY~=^hmu zXUqB$X}-8d@%dYoGsw+IPl!CI$H4{i$i#(aY9PNZvXYBzH-Lnl&u2Uj2#!-w^s^ax zU!=X;En9!o;`#7*Y_pov2HzCg9{8}npTzJNe7)d^F58{8te!mEQ0eeh7@l2j*))D! zeva#|3d52d9L4!jI6Nhbk`mFu{?U3B93?cBFgvnXS&|h@A+^OVC^+> zzV_~lw)r`(0Rw*KcJ^1zZT`%!DxUZMEw(1C*~Q4dL{I-po0fy-oF8aU=W#^)A*c7{ zl9uvaSqF;eti8?CPrc1u`5B*)<+$izjK7_I`}eRZH=ntV?mDjH05U+$zkW|I+2aC* z<441#k|hk<_wCDCjWVro?X?~|wE`Z0VM9aT)?7R{jb_XPpdAU>kdX@>Xh=yl4ENS3 z$NolsXIEw-nrxc={r;U^%Drm_1z1!=Q7GFbnnYsWNTJPdcbh%v8I&$?CK--p}TxcrCX+Sc?6&_SxR6J>$Nm%~WsnGr`=(VIyYJ)4r^3 zE_J$w%v8DQa3T3AW(B=|*8D*lPn&jCH+X-f20vF+-YHG z->p`_&%zMLt1ZUwwq~d+Oo&A^`!1`_R27A*Fsy4Bq}N0`$#P%%WmI98Qowr7I9s#4_TF-2zBN$WL=Y`55pw*Vb3ZY(v{ z>2f-4FQ+Yvo-y)sL%}*%ZYu7L!$=abq0WL~ZPu2xK3Vr0`5KO#vy2yr5N;T&CO)QG zp5k~u^?m<*Cm41(u-rWdY&Ga(UK+8fMfL!`~Ew*WtWPPF~ zDT?xm(3yR7(11Ws-V)4}B=`eo;%^j1#IGW%Alkn79SueC>&&VwxeCX7n9G=_OY=Oe zMS$w!fubmy`!dNf+&?V zb35b_M@Nx7fdITh$)k?rBcu#_nhT&QIfBqs7unY`q77&pu7LZN()WrxVw5v!rVq z?=XLIbe!E%h)-J2da3h#ym`a5{N&huDP(MN%kj!D)mi80p)nt?{{2fKir9Q|B#P`) zNc0E}U#jDfy8Ow{ufG(c-*&4jsrCnJ%zVuVhl)S)Qm-@fFZg;ct#BE$u4{)QVY*Yv!x-W9t^#^?o7*YY3b)2-Ki`SrlatMF_)>5sq7-i^qkTU^}Wz~HEm6(9f6S^xum##fuGWkJa0?w(_zsu#_^9IeCW3z>Ud_y0jP%_C z+PR_@UDl2VK9uK%siEk$A0pJZ+Tiw{Z70#F>!!(%Z7Wa;xrq1xpZX5KQEw)OH*5Py zbE~S5W0s}|x--;#*eO@PDelepXeze5KsojaXlbr~_KhXKA!CMbo`BKdolO#jx_-3Q z)@Oif{z3v&na**-$VP&tCwGYqmm$r?0T(!q>OFjBfUQQ^=iHYEZ;5CCQKXtzYP?oc zbzyJzAu>TUEa2|M`u020UxZO!*b08IU#DE(^|yvYXhAt(j1(6){qjd*v}*PnhSfuDR*Fv;~`6&Q&eo z(!4*=vAILjs1kan(D%s8(-hdEZ|+mQfVk4r;aQ|( z%>bK^IigkM4ObJ1tpcmowc>ieDGbPMB{Rhzdx+)C2r<9k@2;a;C?gLlo54zsYP&AJ zI3Ij5;|Kc(=%O(s`i>s*Tr_?;->gU8S{>17(#G!fTX{bZ@B8~L{$jp8=_bubx>$Ia zNpF%9_Vd_yeRu6j`g(8wd^T&}T|XU=iQGW@L2TPl(X;U+d7XNiBaZi<={mtFPBga6 z&##lyHo~h}Fh-+Z@6A&wfBMa4_=ZBg^_lotL}dG9&c-b;<^3{N!im#;U=hF`2I-gb z-HH^C164MQ{a=I;x$%Jb%Qbj9h@RwsoeWj^9e<+p2jBvJ*75Z5li|-FkQ*D<*-hnb z6VyQ4F*3aTe%{6$u~}qK+v2<~&iB{pzQ4fddARJvD|`-OA+G<1zh(RGQF-{6u@deK zA)H=Q`WjN7zx&}c2zO4hQ{016iE=e)xG6&4aHKFNH-I82684;DFjjcn=`^3NjK=tJ-~A%;)S417MnnB#_<@h`o8bz5wQFkVfmKIktt@aP%WRt zRLXoNZ_Zyy#S!qnu92-mf{Eg*ESJdOaatb&2x~eSS=5b6rzVhz(-SfWNJvEReg?w304>~j{Hq69zmaXsEx@v9IANP~4c4qy4 z<5doF;m$f^I45!D}gdY(-XGkMI{$!M{;j7_LBR|z0Oe<#BZ=zy&xF1ou*h3q?{ z1UGgr7S(Rw+$fl!Lf;z^M@e~ZN7HbFJe&4UaV=D!p@wthU_ zSDrQ349XUw@$4ZPPn!!?5Yv_v4y5K#w^i-6x2Q+wihlIjFiWRDC*2=D(_e+IYbKT7 zcSyg0?~(j>1Uaf4NN)~qy5ApBG-7ma6P>edgif2sImcU+T?jaY2XuQhy5uhZpy z+QR2>kq?i};cxoe;OsV!q4;)gHfG>-KPm5J^E$2Bq3BN08bI zCU}}>VBY|35{3cxNM1z-G5VtGldH3wc9~|6!|s6AKye{g6fx zu+ceATHP<_sCnT9z)pQUR>FjAVNs;R9+#H0J}62|h-q6fMs{Fy9LFbXIsX#+BcpFs zmA60YxmPR-oVc9HO-BJMKenUYoLcTuM8~8mm`?kf+^LgUa3`NqS zG{`TScw@8C>N-u+ZYO@h2gy_p6JFPVK@S@n@Z1SwKIM`miRTD|Zje33g6rrf;7F315hV|te_tN zcX4|P=g1=tGEbd9X9~yk0U&R)j16YSZ}!y*+$=IzZyyn~zTPYcje3qAXJJ}}P2cnL z<~}6MVh7n*GecDv76aBb7hf>n-%~w%3jWG-kQ>$^j;$3Ooqdmu!1tHE2dOjBB~@%eq_@NCZee*7RO0GwKm_K25=?Aty9#2F=~qPds_@R5c>|lejG*Io0(PBUDaK6r^{Zeu*?Vv z9CzpVS)Sv|IROFS2!I>{PDa?*<5%7zh^n7Z=irIx2^Y(VW~Y5fdlb-)6QH9iC5~mzCvWiYNQmb!`C;Ie{=dC*J$PJjz|#1?zy80hk4J^npybb*lLm&r zXMP1@vsNF2X=IlXyZ`-o&A_dtlHP&Y22Fcvq^2!v_Z^gN@cLWV9^vW18qmku^*Pih zsBqJ)*to%W*Ua}fq@ zmxXQ4AA0R;Y>?`&@_)JS9|JMrpyR&gwy)FvG7mGVWYmjfUM^F}=-;u8La5Z>4Kn*_ z4M#T&mTqi1Au$oEmB=coEd0dz*s~&iGV5M;-4jQwb`S(cqQS@aos1~abEneLt3_om~r4Y%j&(++3W?wYivkoR9r1oO& zB+tX!Qxx_6Fd4$}$gJ^i^Dxg58r%;~3TC$@&bqH{moZkiri|3BsG^>ESL&O36KYAJ zn_l|!rn~XFjrVA^N-J8!%2H{+5>(136rH+km;a~^l`7Oki9WIQMEfL)hm&|P;QMrA zzhf;HX(1La;spSJf8sZO z_V^#5$-c-TG^g?Jb=Dh%dmIEGhnG@$)0D<52JLLLZ+akPnv>p1Y8(#23*y{wd+tDq zI(cavn@MF+p!~$9+heCuzuDo-kF{3l*G^N@S`Epr5u*z=-v3hhq5(;=%tHj2ry_pe*^k{7d%h4=*cA zhkwa_{qbeV+u?sK4tCQt;|yqn2Sf5%clzB<)xWJNeD6#8_8tFy@89?SeeYlU9_Rp0 z9ubs|JOqHuves9ASV17RSRs@T87*r4-c}oWZu};7&g~&RHX^AT(R4x~Le}H(suZF1 zz70hC8V{0CT;D+_pIkY-g||*(4E&(=MquOJ!3MH~8cl_W5Bco7L088%L5nhbrBFrP zrUL0N9Pmh7l1lefmWQHzHO0$sp1xlP{=*F(k{kT{-cR=`Vq1@?0`$k%$*z+i%AYe+ zzL-(pXIJh17JVJ|x?jt){wa4qoVKrXs$%naeg~?1d+IH@h3={FXXrP3T6%)MbcEqf zAD)+Lqv)k9eAnq-1hdfVxPPt=@rjGE$U!}fuzl#u+p0eU zvrqBJ+sBuvzvfb&ml;Vfdp6`QW36l|smdg@MGbLwk_m=9CkV$aRGLojqR+b(vDU-w ze7If38z~wNwd0ny&U%P=%QPd0zgH4=J26wS4r?8(zEH^ zw{qYQ(D%LRije|x;}9k$In6Lo$F`q*75@!ZRA>Ug)_6x1NFcM+26QOd9hWF513YBE8f;$u`Y zG+&~FK*{*44ccqpofrGsL#ki*J+HY^tjOlGY(lAogK4I?XSQ#h`xRSD=RQeR1y=Fd zIUNQR*TuntF#tJv#ij{1W;?!XX01b3UeHUTuxAgi=_5N`R_O1wN(z{*VzaP;te8PQ zREukKx`Gffo@7N3xRk(gS*g2mSVT}KZb5xzaX-XGU%a31xuxQ9&Q7;_HF97a_qiKg z?$GNMhrZbDehd`zD$}4MFOl+&4Qu8Y4j~K3zq28%>gk*olv-C9DYC_KHj|it5*SQuYlUW_|64cmK9C(F+G$ytOCkz@`-G$oWDooc=QR48nK# z4(3%eflPu!SVVb4C-M}IgxxCgp)0{nx&Z<`pnQ$W$-&g+j zkY8kZMWAj`jtT*&`^K=Ws6&zGzQ*S{StzG}>6{uesU|p>ZI1=5?}?Y4!nAeSYCina zJDFNGb@0h35B0;d;>lb~p(;B;BHqv!{7favDO+xz{W4?trnUx-0WmQ8`kB*egJ(y@ zO_@}^k9p4KK~8(WuJou>S4vh1Z41`ElZ6^R%Gb4T&x@yd5|BxYf+$99#Cu;4aW?cm^OE3ooXSPIf-?J;>@P zlZ_cN(m7NZsOCB5o%U*`q)KQ?PJ8@^w+TsBF79~^%2#`w?*f%x=wl>gDuzJuvY)di z+(itT3bJ>V)8P}N80zXuhqggUh@Sb11>3Y)kx-E?9tlwCF_BMGn%v0o{A3GIGYRBO zS{L$~)b+e)RyWvoy&ph%T9b6E1d1ygwX&GYYo3FhpOib=vuWDee6HmiMRLx`anN{A zn7;MO#dV5(pO(O*ntF#kH9jDpmIXU5L9CX@G%;@%@rZ#+^t`5N_^Vd*?Tyd)eVdbp zfud5)$c9u_vwh<4gis=R8o2AASmGXwci)%KjhlbN;Mm^LeP5Wq6&K%)Ds|%*$e~7$ zE0RDbMH6-JsNDRa?hsG`_AS=$S>GmQSvX*c#pM`Y=%gALI)VMT>iLspbgNT*#W<0b z)&=gQP{uVjDkR)vQNw!q!#?)taK2jl%KKa-l=fcXOg&YB-gM6bctBo%Wrbh@7Xz79&vke_$ z_l@Eu9&$k6V`nCY@Z=rf?Baw4gEx8vqdirD$G3QF+~ezEpN>0iFNONrPoC^1%X6?e z%7}gJFBGP~QM$SZspTmHE`%Vp(9`99tD5-I4LB1+B=a=))z|qHVcHgNP$M|ufFN5W z@cd~c!q#~{T9nMqX?rncR6X6Mk{iU5B&JRcISG}v{vmE+vo zzM}bR^HxiHmFTf)>9K2*O9i`)SohXDQ$S-mW=fmT#R?MuM2%TwEUQ&-uMqD*npSs6 zaQMzmhtbT71ATLaojLoM-V+29*KnAk>mG}mZ1+s_EtO2sPM^q^4zDN81;Yt;L^&OA zn;Twy;qq2rW!ru_Gv$7?PqpX71b_xLBiOcSnpER+{ug51VvpB-3mI-7|AJfT_%T78 z!EGc9ZTmBl>4X`n+B+@whiB^Uy1kLf>lkg9u@H}+o!dEse7ip(2yG$nVp8A^-2*YC z+|HL#_PSFOO&$_Tx!J42let5@q#a3!ch=j9M#yWs{hGZFYw`R8M<1A!*+D)iF4lW;ZWdG-mb89@ zfQggdg)~a3KG39j)`dZdi3o)ajmn29pf9neux_pd=?0*Pqjm@RHLou_?nOTh#d||L zO$MrjV`SzGf=C+FPhCwX<*N>)!#;#b)zEK=1qVt77l=Cqs2gq@ol=M_yr7}D-P*(; zpiHi@QC{%acZ=o-^@fQ$r$Yj9(_%qed!NI&$02Ld`#RRypEPu+{57(~!|BZKdQ+|u zITaXVkGp=n1;R;K0BGjQqR5X9-F2YRAVvl?=hCP0HOQJ4`nyAkp|NK#DnyxDGZsBm zsoCRw@x}*)Tu*rdl@@Xt7Az^WX_S3^+ij63+qQ8s@m?v9r;Pa(D2dQ4V(+wTeQ3#Ct7dene3bg3xMqFFrUi@0P}d7&`q?kBJ|~4u zD|VIB6#AV6Ddak|T-xanxPAN4Kk*2XEu%q6SwMO2whjl}`4k zFVH7&p`A&{Xtb|~sCd8Y_Iey3?tDH)etJP44Ps`9M=TrFAgQobZ&vx7NUx`Vg*8(r zsB1Uqif~RP8ZX* zPocYvhZ}!{V-wXU{ZdR*o*kK8jF~(7xoxmaJ2o%{FuWZKTIH^kdh zWQ~G_Blw!?cM5b~4mFyEFT4A&=~GSfPrp_y945ZqWzIb=(xuT}k$k-Ev3yX7aqk$k zUsgO3rNtqW18X}$zqLD+mR1E2<2@=0sXm?GvFnRqIHuSdl!;{@XWtmhs-m14!r{Q? zEn7WV&hW6_^^{Y=oJb(vGS)l$0)+QZ>a#Cv$3!i}$0P#b7rmqtMV&9|wSnF-x%xV;{3<^mKXaDIL-lADaEepbtDj{e_HqMsmzhlt2j4Jh;{}^HI_R=S*Dev}F|klE^(6rF-ik0L9xZ(nB|SURfr=F^HwZV)G+ny!5$vKBu0{<}eeXU*Xl@(aH_Bsc6-{lWn zGh~J>C4SD-m#056_Ao*p>3+BFwlAB@`yojOG`^T`wXQrGb>EY+M!uk2X#H99vnu3g zT7N^##(FKc8r-n^SeJ_ipNM72d_Eqsi5Ajr&Em8(gF8E2mbcnhHGO;v{H&`G%HFMG zxFj8ZPA{(TnP?NAX7rth>*{__$Yqz)CZ4_~E1AkR5P zqkko#If?Ku2>|NO5md1iI>H30{_MeyG{b+qx@ZR!53pv>xISbRSbBMgHrTE@&OI_K#R*&^2C*YylB|aj1cxU}zmoK}I3aD?-H4dI zktkNGsF8!bO1jH4Sw2TJ&XMz@PsZ!xix!udd!`p9>Crv>P?uMya|TA$4evyngjTGH z)0sFjL1e6+JmWRd3a<7Fo z<`GiL)*UgZ6x&%bi`h`K@u;!aL_H@LQ2^N5ilTlGRj<>2vT z=dZyK?mP*3%3b)CFzG&=G%8vrwmD7SaZ2w4mnBSiHR|@Fx#d(I2bXfqBDkJq`YcwE zDFlTz^fMH|3&8JoG6u?QYaw--nnvY%5<^Repi-Tn{LWW3O4}|yv*r5z(Ic1)hTP)> zGa~KU==A;oSyF<2aYUbGnX~x_HD;ymE(OwvV-E)EU5!Y2C#}w2msaYt}}bkWPY+ILY*s=^~gYi zbp)40FAxK%H`W9`4(i2l+(cm#=N3){B}2DO-gQXz3WQC7VzIF->mh?46vV)>q+37e zjR4y*wH9+Ti78mk5JRV)A%{awE$NzEK~q4zY~P8?R0K$RB~TYih*z=n`{)+7|1PoK#z|!h-yWMOKxw&1jNk9ulyJQ#fbn4q`MMOHlzs<*L$MG z9BO(bH}p{Pa@D*_OqU`Gk?W}*5l}gO*qYz<6wk3om8(?|?{Y2m#gy|2C7YMSY1f4@ zfO;K4j8v0j+_^`KJ*vOxQX*{m+dkk764z|>+p_MuE{46v1!LN7oMuGnB9ge{o8wh!U2_Bm$RWlj0=?jefGi!H=;~Ieti1T zt?84;ImS(W#GL#jR1tRy?s@l08Rs%?#<2!WOd%8ILlZn*r*Ok-aIu)G#H}%2v>uF6 zDkXS1YJ;25fdrT0Y@qNT2A>=WMvyKC&aETf^UQ&j}#2%_R#P6VHePb(gjGn2Wuvxr|&%l3R z*h1j_gcN{FB9Cbq_|7&LAow=Kk+NAp;)tcN$>qJ+(D%B1@dh|g{QDsi2~$X!_EwC+ zIF;H7iS{_0^w)~uu6bA=;RH|@K!In0<^Bc&eC{!+BYA}}Xyqe3Fq zFw7y|Cq#b-n;ZlSQM^OqdfEE!!@oZJj&zStHjhUi6GBfqQo0<9Q8HIDj^`7TrgRBu zozenF@d>X8jc!Z>4p+yF7<7tv88?%p0C`0D6J~gL;UVQl+&Myfe!UleKj06UV49@f z27_Me^c8P?%dpftzHsgYrao=sM}>EUV=;G!QP2=0I8Y+2೛YYrk2sKeM*zH`- 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 z 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 YKPJA03L(+&NRq1!ay32=wSIf`e`DfL)&Kwi literal 0 HcmV?d00001 diff --git a/Chapter3/myfisher23.m b/Chapter3/myfisher23.m new file mode 100644 index 0000000..330c721 --- /dev/null +++ b/Chapter3/myfisher23.m @@ -0,0 +1,118 @@ +function Pvalue=myfisher23(x) +%P=MYFISHER23(X)- Fisher's Exact Probability Test on 2x3 matrix. +%Fisher's exact test of 2x3 contingency tables permits calculation of +%precise probabilities in situation where, as a consequence of small cell +%frequencies, the much more rapid normal approximation and chi-square +%calculations are liable to be inaccurate. The Fisher's exact test involves +%the computations of several factorials to obtain the probability of the +%observed and each of the more extreme tables. Factorials growth quickly, +%so it's necessary use logarithms of factorials. This computations is very +%easy in Matlab because x!=gamma(x+1) and log(x!)=gammaln(x+1). This +%function is fully vectorized to speed up the computation. +% +% Syntax: myfisher23(x) +% +% Inputs: +% X - 2x3 data matrix +% Outputs: +% - Three p-values +% +% Example: +% +% A B C +% ------------------- +% X 0 3 2 +% ------------------- +% Y 6 5 1 +% ------------------- +% +% Calling on Matlab the function: +% myfisher23([0 3 2; 6 5 1]) +% +% Answer is: +% +% -------------------------------------------------------------------------------- +% 2x3 matrix Fisher's exact test +% -------------------------------------------------------------------------------- +% Tables two_tails_p_value Mid_p_correction +% ______ _________________ ________________ +% +% 18 0.088235 0.074661 +% +% Created by Giuseppe Cardillo +% giuseppe.cardillo-edta@poste.it +% +% To cite this file, this would be an appropriate format: +% Cardillo G. (2007) MyFisher23: a very compact routine for Fisher's exact +% test on 2x3 matrix +% http://www.mathworks.com/matlabcentral/fileexchange/15399 + + +%Input error handling +p = inputParser; +addRequired(p,'x',@(x) validateattributes(x,{'numeric'},{'real','finite','integer','nonnegative','nonnan','size',[2 3]})); +parse(p,x); +clear p + +Rs=sum(x,2); %rows sum +Cs=sum(x); %columns sum +N=sum(Rs); %Total observations + +%If necessed, rearrange matrix +if ~issorted(Cs) + [Cs,ind]=sort(Cs); + x=x(:,ind); + clear ind +end +if ~issorted(Rs) + [Rs,ind]=sort(Rs); + x=x(ind,:); + clear ind +end + +%recall that Fisher's P=[Prod(Rs!)*Prod(Cs!)]/[N!*prod(X(i,j)!)] +%Log(A*B)=Log(A)+Log(B) and Log(A/B)=Log(A)-Log(B) +%Construct all possible tables +%A 2x3 matrix has 2 degrees of freedom... +A=0:1:min(Rs(1),Cs(1)); %all possible values of X(1,1) +B=min(Cs(2),Rs(1)-A); %max value of X(1,2) given X(1,1) +C=max(Rs(1)-A-Cs(3),0); % min value of X(1,2) given X(1,1) +et=sum(B-C+ones(size(B))); %tables to evaluate +Tables=zeros(et,6); %Matrix preallocation +%compute the index +stop=cumsum(B-C+1); +start=[1 stop(1:end-1)+1]; +%In the first round of the for cycle, Column 1 assignment should be skipped +%because it is already zero. So, modify the cycle... +Tables(start(1):stop(1),2)=C(1):1:B(1); %Put in the Column2 all the possible values of X(1,2) given X(1,1) +for I=2:length(A) + Tables(start(I):stop(I),1)=A(I); %replicate the A(I) value for B(I)-C(I)+1 times + %Put in the Column2 all the possible values of X(1,2) given X(1,1) + Tables(start(I):stop(I),2)=C(I):1:B(I); +end +clear A B start stop +%The degrees of freedom are finished, so complete the table... +%...Put all the possible values of X(1,3) given X(1,1) and X(1,2) +Tables(:,3)=Rs(1)-sum(Tables(:,1:2),2); +%Complete the second row given the first row +Tables(:,4:6)=repmat(Cs,et,1)-Tables(:,1:3); + +%Compute log(x!) using the gammaln function +zf=gammaln(Tables+1); %compute log(x!) +K=sum(gammaln([Rs' Cs]+1))-gammaln(N+1); %The costant factor K=log(prod(Rs!)*prod(Cs!)/N!) +np=exp(K-sum(zf,2)); %compute the p-value of each possible matrix +[~,obt]=ismember(x(1,:),Tables(:,1:3),'rows'); %Find the observed table +clear zf K tf +%Finally compute the probability for 2-tailed test +P=sum(np(np<=np(obt))); + +%display results +tr=repmat('-',1,80); +disp(tr) +disp('2x3 matrix Fisher''s exact test') +disp(tr) +disp(array2table([et,P,0.5*np(obt)+sum(np(npN(1))|| (X(2)>N(2)) + disp('Error: bad counts (X>N)') +else + df=1; % 2 samples + + % Observed data + n1 = X(1); + n2 = X(2); + N1 = N(1); + N2 = N(2); + + % Pooled estimate of proportion + p0 = (n1+n2) / (N1+N2); + + % Expected counts under H0 (null hypothesis) + n10 = N1 * p0; + n20 = N2 * p0; + observed = [n1 N1-n1 n2 N2-n2]; + expected = [n10 N1-n10 n20 N2-n20]; + + if correct == false + % Standard Chi-square test + chi2stat = sum((observed-expected).^2 ./ expected); + p = 1 - chi2cdf(chi2stat,1); + else + % Yates continuity correction + chi2stat = sum((abs(observed - expected) - 0.5).^2 ./ expected); + p = 1 - chi2cdf(chi2stat,1); + end + + h=0; + if p<0.05 + h=1; + end +end +end \ No newline at end of file diff --git a/LICENSE b/LICENSE index 66a2e3f..037912c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,21 +1,21 @@ -MIT License - -Copyright (c) 2020 PSFDS-MATLAB - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +MIT License + +Copyright (c) 2020 PSFDS-MATLAB + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index d543ae5..a05ae79 100644 --- a/README.md +++ b/README.md @@ -1,284 +1,284 @@ -# データサイエンスのための統計学入門 - -[データサイエンスのための統計学入門-予測、分類、統計モデリング、統計的機械学習とRプログラミング](https://www.oreilly.co.jp/books/9784873118284/) -(Peter Bruce、Andrew Bruce 著、黒川 利明 訳、大橋 真也 技術監修)の MATLAB コード例をまとめるレポジトリです。 - -もともとの R コードはこちら([GitHub](https://github.com/andrewgbruce/statistics-for-data-scientists))にあり、 -データも著者によって [Google Drive](https://drive.google.com/drive/folders/0B98qpkK5EJemYnJ1ajA1ZVJwMzg) -もしくは [Dropbox](https://www.dropbox.com/sh/clb5aiswr7ar0ci/AABBNwTcTNey2ipoSw_kH5gra?dl=0) から入手可能です。 - -手を動かして理解を深められますように。 - - -# Contributors 募集中 - -興味ありましたらぜひ(部分的にでもOK)一緒に勉強しましょう。README.md を編集してアカウント名を記載ください。 - - -| Capter | Owner | Memo/Status | -| ---- | ---- | ---- | -| [1章 探索的データ分析](Chapter1/Chapter1_ExploratoryDataAnalysis.md) | minoue-xx | Completed | -| [2章 データと標本の分布](Chapter2/Chapter2_DataandSamplingDistributions.md) | hiroquay | Completed | -| 3章 統計実験と有意性検定 | Tajima | in progress | -| [4章 回帰と予測](Chapter4/Chapter4.md) | Hilobay | started | -| [5章 分類](Chapter5/Chapter5_Classification.md) | hiroquay | in progress | -| 6章 統計的機械学習 | TBD | | -| 7章 教師なし学習 | TBD | | - -## See also - -- O'Reilly: https://oreil.ly/practicalStats_dataSci_2e -- Errata: http://oreilly.com/catalog/errata.csp?isbn=9781492072942 -- 著者(Andrew Bruce)による初版の R コードは[こちら](https://github.com/andrewgbruce/statistics-for-data-scientists) - - -## 目次 - -- 1章 探索的データ分析 - - 1.1 構造化データの諸要素 - - 1.1.1 さらに学ぶために - - 1.2 矩形データ - - 1.2.1 データフレームとインデックス付け - - 1.2.2 非矩形データ - - 1.2.3 さらに学ぶために - - 1.3 位置の推定 - - 1.3.1 平均値 - - 1.3.2 中央値と頑健推定 - - 1.3.3 例:人口と殺人事件発生率の代表値の推定 - - 1.3.4 さらに学ぶために - - 1.4 散らばりの推定 - - 1.4.1 標準偏差と関連推定値 - - 1.4.2 パーセンタイルに基づく推定値 - - 1.4.3 例:州別人口の散らばりの推定 - - 1.4.4 さらに学ぶために - - 1.5 データ分布の探索 - - 1.5.1 パーセンタイルと箱ひげ図 - - 1.5.2 度数分布表とヒストグラム - - 1.5.3 密度推定 - - 1.5.4 さらに学ぶために - - 1.6 バイナリデータとカテゴリデータの探索 - - 1.6.1 最頻値(モード) - - 1.6.2 期待値 - - 1.6.3 さらに学ぶために - - 1.7 相関 - - 1.7.1 散布図 - - 1.7.2 さらに学ぶために - - 1.8 2つ以上の変量の探索 - - 1.8.1 六角ビニングと等高線(2つの数値データをプロット) - - 1.8.2 2つのカテゴリ変数の探索 - - 1.8.3 カテゴリデータと数量データ - - 1.8.4 多変量の可視化 - - 1.8.5 さらに学ぶために - - 1.9 まとめ - -- 2章 データと標本の分布 - - 2.1 無作為抽出と標本バイアス - - 2.1.1 バイアス - - 2.1.2 無作為抽出 - - 2.1.3 サイズと品質:サイズが問題になる場合 - - 2.1.4 標本平均と母集団平均 - - 2.1.5 さらに学ぶために - - 2.2 選択バイアス - - 2.2.1 平均への回帰 - - 2.2.2 さらに学ぶために - - 2.3 統計量の標本分布 - - 2.3.1 中心極限定理 - - 2.3.2 標準誤差 - - 2.3.3 さらに学ぶために - - 2.4 ブートストラップ - - 2.4.1 リサンプリングとブートストラップ - - 2.4.2 さらに学ぶために - - 2.5 信頼区間 - - 2.5.1 さらに学ぶために - - 2.6 正規分布 - - 2.6.1 標準正規分布とQQプロット - - 2.7 ロングテールの分布 - - 2.7.1 さらに学ぶために - - 2.8 スチューデントの t分布 - - 2.8.1 さらに学ぶために - - 2.9 二項分布 - - 2.9.1 さらに学ぶために - - 2.10 ポアソン分布と関連する分布 - - 2.10.1 ポアソン分布 - - 2.10.2 指数分布 - - 2.10.3 故障率の推定 - - 2.10.4 ワイブル分布 - - 2.10.5 さらに学ぶために - - 2.11 まとめ - -- 3章 統計実験と有意性検定 - - 3.1 A/Bテスト - - 3.1.1 なぜ統制群があるか - - 3.1.2 なぜ A/Bだけで C、D、…でないのか - - 3.1.3 さらに学ぶために - - 3.2 仮説検定 - - 3.2.1 帰無仮説 - - 3.2.2 対立仮説 - - 3.2.3 片側、両側仮説検定 - - 3.2.4 さらに学ぶために - - 3.3 リサンプリング - - 3.3.1 並べ替え検定 - - 3.3.2 例: Web粘着性 - - 3.3.3 完全並べ替え検定とブートストラップ並べ替え検定 - - 3.3.4 並べ替え検定:データサイエンスの基本 - - 3.3.5 さらに学ぶために - - 3.4 統計的有意性と p値 - - 3.4.1 p値 - - 3.4.2 アルファ - - 3.4.3 第一種の過誤と第二種の過誤 - - 3.4.4 データサイエンスと p値 - - 3.4.5 さらに学ぶために - - 3.5 t検定 - - 3.5.1 さらに学ぶために - - 3.6 多重検定 - - 3.6.1 さらに学ぶために - - 3.7 自由度 - - 3.7.1 さらに学ぶために - - 3.8 ANOVA - - 3.8.1 F統計量 - - 3.8.2 二元配置分散分析(二元 ANOVA) - - 3.8.3 さらに学ぶために - - 3.9 カイ二乗検定 - - 3.9.1 カイ二乗検定:リサンプリング方式 - - 3.9.2 カイ二乗検定:統計理論 - - 3.9.3 フィッシャーの正確確率検定 - - 3.9.4 データサイエンスへの関わり - - 3.9.5 さらに学ぶために - - 3.10 多腕バンディットアルゴリズム - - 3.10.1 さらに学ぶために - - 3.11 検定力とサンプルサイズ - - 3.11.1 サンプルサイズ - - 3.11.2 さらに学ぶために - - 3.12 まとめ - -- 4章 回帰と予測 - - 4.1 単回帰 - - 4.1.1 回帰式 - - 4.1.2 予測値と残差 - - 4.1.3 最小二乗法 - - 4.1.4 予測と説明(プロファイリング) - - 4.1.5 さらに学ぶために - - 4.2 重回帰 - - 4.2.1 例:キング郡住宅データ - - 4.2.2 モデルの評価 - - 4.2.3 交差検証 - - 4.2.4 モデル選択と段階的回帰 - - 4.2.5 加重回帰 - - 4.2.6 さらに学ぶために - - 4.3 回帰を使った予測 - - 4.3.1 外挿の危険性 - - 4.3.2 信頼区間と予測区間 - - 4.4 回帰でのファクタ変数 - - 4.4.1 ダミー変数表現 - - 4.4.2 多水準のファクタ変数 - - 4.4.3 順序ファクタ変数 - - 4.5 回帰式の解釈 - - 4.5.1 相関予測変数 - - 4.5.2 多重共線性 - - 4.5.3 交絡変数 - - 4.5.4 交互作用と主効果 - - 4.6 仮定をテストする:回帰診断 - - 4.6.1 外れ値 - - 4.6.2 影響値 - - 4.6.3 不等分散性、非正規性、相関誤差 - - 4.6.4 偏残差プロットと非線形性 - - 4.7 多項式回帰およびスプライン回帰 - - 4.7.1 多項式 - - 4.7.2 スプライン - - 4.7.3 一般化加法モデル - - 4.7.4 さらに学ぶために - - 4.8 まとめ - -- 5章 分類 - - 5.1 ナイーブベイズ - - 5.1.1 正確なベイズ分類はなぜ実用的でないか - - 5.1.2 ナイーブベイズ解 - - 5.1.3 数値予測変数 - - 5.1.4 さらに学ぶために - - 5.2 判別分析 - - 5.2.1 共分散行列 - - 5.2.2 フィッシャーの線形判別 - - 5.2.3 簡単な例 - - 5.2.4 さらに学ぶために - - 5.3 ロジスティック回帰 - - 5.3.1 ロジスティック応答関数とロジット - - 5.3.2 ロジスティック回帰と一般化線形モデル - - 5.3.3 一般化線形モデル - - 5.3.4 ロジスティック回帰の予測値 - - 5.3.5 係数とオッズ比を解釈する - - 5.3.6 線形回帰とロジスティック回帰:類似点と相違点 - - 5.3.7 モデルを評価する - - 5.3.8 さらに学ぶために - - 5.4 分類モデルの評価 - - 5.4.1 混同行列 - - 5.4.2 稀なクラスの問題 - - 5.4.3 適合率、再現率、特異度 - - 5.4.4 ROC曲線 - - 5.4.5 AUC - - 5.4.6 リフト - - 5.4.7 さらに学ぶために - - 5.5 不均衡データの戦略 - - 5.5.1 アンダーサンプリング - - 5.5.2 オーバーサンプリングと重み追加 /削減 - - 5.5.3 データ生成 - - 5.5.4 コストベース分類 - - 5.5.5 予測を探索する - - 5.5.6 さらに学ぶために - - 5.6 まとめ - -- 6章 統計的機械学習 - - 6.1 k近傍法 - - 6.1.1 簡単な例:ローンの返済不能を予測する - - 6.1.2 距離指標 - - 6.1.3 one-hotエンコーダ - - 6.1.4 標準化(正規化、z値) - - 6.1.5 kの選択 - - 6.1.6 特徴量エンジンとしての k近傍法 - - 6.2 木モデル - - 6.2.1 簡単な例 - - 6.2.2 再帰分割アルゴリズム - - 6.2.3 同質性または不純度の測定 - - 6.2.4 木の成長を止める - - 6.2.5 連続値を予測する - - 6.2.6 木の使い方 - - 6.2.7 さらに学ぶために - - 6.3 バギングとランダムフォレスト - - 6.3.1 バギング - - 6.3.2 ランダムフォレスト - - 6.3.3 変数の重要度 - - 6.3.4 ハイパーパラメータ - - 6.4 ブースティング - - 6.4.1 ブースティングアルゴリズム - - 6.4.2 XGBoost - - 6.4.3 正則化:過剰適合を防ぐ - - 6.4.4 ハイパーパラメータと交差検証 - - 6.5 まとめ - -- 7章 教師なし学習 - - 7.1 主成分分析 - - 7.1.1 簡単な例 - - 7.1.2 主成分の計算 - - 7.1.3 主成分の解釈 - - 7.1.4 さらに学ぶために - - 7.2 k平均クラスタリング - - 7.2.1 簡単な例 - - 7.2.2 k平均アルゴリズム - - 7.2.3 クラスタを解釈する - - 7.2.4 クラスタの個数を選ぶ - - 7.3 階層クラスタリング - - 7.3.1 簡単な例 - - 7.3.2 デンドログラム - - 7.3.3 凝集アルゴリズム - - 7.3.4 非類似度の尺度 - - 7.4 モデルベースクラスタリング - - 7.4.1 多変量正規分布 - - 7.4.2 正規分布の混合 - - 7.4.3 クラスタの個数を選ぶ - - 7.4.4 さらに学ぶために - - 7.5 スケーリングとカテゴリ変数 - - 7.5.1 変数のスケーリング - - 7.5.2 優勢な変数 - - 7.5.3 カテゴリデータと Gower距離 - - 7.5.4 混合データクラスタリングの問題 - - 7.6 まとめ - +# データサイエンスのための統計学入門 + +[データサイエンスのための統計学入門-予測、分類、統計モデリング、統計的機械学習とRプログラミング](https://www.oreilly.co.jp/books/9784873118284/) +(Peter Bruce、Andrew Bruce 著、黒川 利明 訳、大橋 真也 技術監修)の MATLAB コード例をまとめるレポジトリです。 + +もともとの R コードはこちら([GitHub](https://github.com/andrewgbruce/statistics-for-data-scientists))にあり、 +データも著者によって [Google Drive](https://drive.google.com/drive/folders/0B98qpkK5EJemYnJ1ajA1ZVJwMzg) +もしくは [Dropbox](https://www.dropbox.com/sh/clb5aiswr7ar0ci/AABBNwTcTNey2ipoSw_kH5gra?dl=0) から入手可能です。 + +手を動かして理解を深められますように。 + + +# Contributors 募集中 + +興味ありましたらぜひ(部分的にでもOK)一緒に勉強しましょう。README.md を編集してアカウント名を記載ください。 + + +| Capter | Owner | Memo/Status | +| ---- | ---- | ---- | +| [1章 探索的データ分析](Chapter1/Chapter1_ExploratoryDataAnalysis.md) | minoue-xx | Completed | +| [2章 データと標本の分布](Chapter2/Chapter2_DataandSamplingDistributions.md) | hiroquay | Completed | +| 3章 統計実験と有意性検定 | Tajima | in progress | +| [4章 回帰と予測](Chapter4/Chapter4.md) | Hilobay | started | +| [5章 分類](Chapter5/Chapter5_Classification.md) | hiroquay | in progress | +| 6章 統計的機械学習 | TBD | | +| 7章 教師なし学習 | TBD | | + +## See also + +- O'Reilly: https://oreil.ly/practicalStats_dataSci_2e +- Errata: http://oreilly.com/catalog/errata.csp?isbn=9781492072942 +- 著者(Andrew Bruce)による初版の R コードは[こちら](https://github.com/andrewgbruce/statistics-for-data-scientists) + + +## 目次 + +- 1章 探索的データ分析 + - 1.1 構造化データの諸要素 + - 1.1.1 さらに学ぶために + - 1.2 矩形データ + - 1.2.1 データフレームとインデックス付け + - 1.2.2 非矩形データ + - 1.2.3 さらに学ぶために + - 1.3 位置の推定 + - 1.3.1 平均値 + - 1.3.2 中央値と頑健推定 + - 1.3.3 例:人口と殺人事件発生率の代表値の推定 + - 1.3.4 さらに学ぶために + - 1.4 散らばりの推定 + - 1.4.1 標準偏差と関連推定値 + - 1.4.2 パーセンタイルに基づく推定値 + - 1.4.3 例:州別人口の散らばりの推定 + - 1.4.4 さらに学ぶために + - 1.5 データ分布の探索 + - 1.5.1 パーセンタイルと箱ひげ図 + - 1.5.2 度数分布表とヒストグラム + - 1.5.3 密度推定 + - 1.5.4 さらに学ぶために + - 1.6 バイナリデータとカテゴリデータの探索 + - 1.6.1 最頻値(モード) + - 1.6.2 期待値 + - 1.6.3 さらに学ぶために + - 1.7 相関 + - 1.7.1 散布図 + - 1.7.2 さらに学ぶために + - 1.8 2つ以上の変量の探索 + - 1.8.1 六角ビニングと等高線(2つの数値データをプロット) + - 1.8.2 2つのカテゴリ変数の探索 + - 1.8.3 カテゴリデータと数量データ + - 1.8.4 多変量の可視化 + - 1.8.5 さらに学ぶために + - 1.9 まとめ + +- 2章 データと標本の分布 + - 2.1 無作為抽出と標本バイアス + - 2.1.1 バイアス + - 2.1.2 無作為抽出 + - 2.1.3 サイズと品質:サイズが問題になる場合 + - 2.1.4 標本平均と母集団平均 + - 2.1.5 さらに学ぶために + - 2.2 選択バイアス + - 2.2.1 平均への回帰 + - 2.2.2 さらに学ぶために + - 2.3 統計量の標本分布 + - 2.3.1 中心極限定理 + - 2.3.2 標準誤差 + - 2.3.3 さらに学ぶために + - 2.4 ブートストラップ + - 2.4.1 リサンプリングとブートストラップ + - 2.4.2 さらに学ぶために + - 2.5 信頼区間 + - 2.5.1 さらに学ぶために + - 2.6 正規分布 + - 2.6.1 標準正規分布とQQプロット + - 2.7 ロングテールの分布 + - 2.7.1 さらに学ぶために + - 2.8 スチューデントの t分布 + - 2.8.1 さらに学ぶために + - 2.9 二項分布 + - 2.9.1 さらに学ぶために + - 2.10 ポアソン分布と関連する分布 + - 2.10.1 ポアソン分布 + - 2.10.2 指数分布 + - 2.10.3 故障率の推定 + - 2.10.4 ワイブル分布 + - 2.10.5 さらに学ぶために + - 2.11 まとめ + +- 3章 統計実験と有意性検定 + - 3.1 A/Bテスト + - 3.1.1 なぜ統制群があるか + - 3.1.2 なぜ A/Bだけで C、D、…でないのか + - 3.1.3 さらに学ぶために + - 3.2 仮説検定 + - 3.2.1 帰無仮説 + - 3.2.2 対立仮説 + - 3.2.3 片側、両側仮説検定 + - 3.2.4 さらに学ぶために + - 3.3 リサンプリング + - 3.3.1 並べ替え検定 + - 3.3.2 例: Web粘着性 + - 3.3.3 完全並べ替え検定とブートストラップ並べ替え検定 + - 3.3.4 並べ替え検定:データサイエンスの基本 + - 3.3.5 さらに学ぶために + - 3.4 統計的有意性と p値 + - 3.4.1 p値 + - 3.4.2 アルファ + - 3.4.3 第一種の過誤と第二種の過誤 + - 3.4.4 データサイエンスと p値 + - 3.4.5 さらに学ぶために + - 3.5 t検定 + - 3.5.1 さらに学ぶために + - 3.6 多重検定 + - 3.6.1 さらに学ぶために + - 3.7 自由度 + - 3.7.1 さらに学ぶために + - 3.8 ANOVA + - 3.8.1 F統計量 + - 3.8.2 二元配置分散分析(二元 ANOVA) + - 3.8.3 さらに学ぶために + - 3.9 カイ二乗検定 + - 3.9.1 カイ二乗検定:リサンプリング方式 + - 3.9.2 カイ二乗検定:統計理論 + - 3.9.3 フィッシャーの正確確率検定 + - 3.9.4 データサイエンスへの関わり + - 3.9.5 さらに学ぶために + - 3.10 多腕バンディットアルゴリズム + - 3.10.1 さらに学ぶために + - 3.11 検定力とサンプルサイズ + - 3.11.1 サンプルサイズ + - 3.11.2 さらに学ぶために + - 3.12 まとめ + +- 4章 回帰と予測 + - 4.1 単回帰 + - 4.1.1 回帰式 + - 4.1.2 予測値と残差 + - 4.1.3 最小二乗法 + - 4.1.4 予測と説明(プロファイリング) + - 4.1.5 さらに学ぶために + - 4.2 重回帰 + - 4.2.1 例:キング郡住宅データ + - 4.2.2 モデルの評価 + - 4.2.3 交差検証 + - 4.2.4 モデル選択と段階的回帰 + - 4.2.5 加重回帰 + - 4.2.6 さらに学ぶために + - 4.3 回帰を使った予測 + - 4.3.1 外挿の危険性 + - 4.3.2 信頼区間と予測区間 + - 4.4 回帰でのファクタ変数 + - 4.4.1 ダミー変数表現 + - 4.4.2 多水準のファクタ変数 + - 4.4.3 順序ファクタ変数 + - 4.5 回帰式の解釈 + - 4.5.1 相関予測変数 + - 4.5.2 多重共線性 + - 4.5.3 交絡変数 + - 4.5.4 交互作用と主効果 + - 4.6 仮定をテストする:回帰診断 + - 4.6.1 外れ値 + - 4.6.2 影響値 + - 4.6.3 不等分散性、非正規性、相関誤差 + - 4.6.4 偏残差プロットと非線形性 + - 4.7 多項式回帰およびスプライン回帰 + - 4.7.1 多項式 + - 4.7.2 スプライン + - 4.7.3 一般化加法モデル + - 4.7.4 さらに学ぶために + - 4.8 まとめ + +- 5章 分類 + - 5.1 ナイーブベイズ + - 5.1.1 正確なベイズ分類はなぜ実用的でないか + - 5.1.2 ナイーブベイズ解 + - 5.1.3 数値予測変数 + - 5.1.4 さらに学ぶために + - 5.2 判別分析 + - 5.2.1 共分散行列 + - 5.2.2 フィッシャーの線形判別 + - 5.2.3 簡単な例 + - 5.2.4 さらに学ぶために + - 5.3 ロジスティック回帰 + - 5.3.1 ロジスティック応答関数とロジット + - 5.3.2 ロジスティック回帰と一般化線形モデル + - 5.3.3 一般化線形モデル + - 5.3.4 ロジスティック回帰の予測値 + - 5.3.5 係数とオッズ比を解釈する + - 5.3.6 線形回帰とロジスティック回帰:類似点と相違点 + - 5.3.7 モデルを評価する + - 5.3.8 さらに学ぶために + - 5.4 分類モデルの評価 + - 5.4.1 混同行列 + - 5.4.2 稀なクラスの問題 + - 5.4.3 適合率、再現率、特異度 + - 5.4.4 ROC曲線 + - 5.4.5 AUC + - 5.4.6 リフト + - 5.4.7 さらに学ぶために + - 5.5 不均衡データの戦略 + - 5.5.1 アンダーサンプリング + - 5.5.2 オーバーサンプリングと重み追加 /削減 + - 5.5.3 データ生成 + - 5.5.4 コストベース分類 + - 5.5.5 予測を探索する + - 5.5.6 さらに学ぶために + - 5.6 まとめ + +- 6章 統計的機械学習 + - 6.1 k近傍法 + - 6.1.1 簡単な例:ローンの返済不能を予測する + - 6.1.2 距離指標 + - 6.1.3 one-hotエンコーダ + - 6.1.4 標準化(正規化、z値) + - 6.1.5 kの選択 + - 6.1.6 特徴量エンジンとしての k近傍法 + - 6.2 木モデル + - 6.2.1 簡単な例 + - 6.2.2 再帰分割アルゴリズム + - 6.2.3 同質性または不純度の測定 + - 6.2.4 木の成長を止める + - 6.2.5 連続値を予測する + - 6.2.6 木の使い方 + - 6.2.7 さらに学ぶために + - 6.3 バギングとランダムフォレスト + - 6.3.1 バギング + - 6.3.2 ランダムフォレスト + - 6.3.3 変数の重要度 + - 6.3.4 ハイパーパラメータ + - 6.4 ブースティング + - 6.4.1 ブースティングアルゴリズム + - 6.4.2 XGBoost + - 6.4.3 正則化:過剰適合を防ぐ + - 6.4.4 ハイパーパラメータと交差検証 + - 6.5 まとめ + +- 7章 教師なし学習 + - 7.1 主成分分析 + - 7.1.1 簡単な例 + - 7.1.2 主成分の計算 + - 7.1.3 主成分の解釈 + - 7.1.4 さらに学ぶために + - 7.2 k平均クラスタリング + - 7.2.1 簡単な例 + - 7.2.2 k平均アルゴリズム + - 7.2.3 クラスタを解釈する + - 7.2.4 クラスタの個数を選ぶ + - 7.3 階層クラスタリング + - 7.3.1 簡単な例 + - 7.3.2 デンドログラム + - 7.3.3 凝集アルゴリズム + - 7.3.4 非類似度の尺度 + - 7.4 モデルベースクラスタリング + - 7.4.1 多変量正規分布 + - 7.4.2 正規分布の混合 + - 7.4.3 クラスタの個数を選ぶ + - 7.4.4 さらに学ぶために + - 7.5 スケーリングとカテゴリ変数 + - 7.5.1 変数のスケーリング + - 7.5.2 優勢な変数 + - 7.5.3 カテゴリデータと Gower距離 + - 7.5.4 混合データクラスタリングの問題 + - 7.6 まとめ + From 521fa4ea5bbeb8091d123c09a4311d24cc4acf4b Mon Sep 17 00:00:00 2001 From: stajima Date: Wed, 21 Oct 2020 11:04:40 +0900 Subject: [PATCH 2/2] --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a05ae79..940ca32 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ | ---- | ---- | ---- | | [1章 探索的データ分析](Chapter1/Chapter1_ExploratoryDataAnalysis.md) | minoue-xx | Completed | | [2章 データと標本の分布](Chapter2/Chapter2_DataandSamplingDistributions.md) | hiroquay | Completed | -| 3章 統計実験と有意性検定 | Tajima | in progress | +| 3章 統計実験と有意性検定 | Tajima | completed | | [4章 回帰と予測](Chapter4/Chapter4.md) | Hilobay | started | | [5章 分類](Chapter5/Chapter5_Classification.md) | hiroquay | in progress | | 6章 統計的機械学習 | TBD | |