From 4edec9e730663e1540afe74e6e3377ab83179b5f Mon Sep 17 00:00:00 2001 From: thurendous Date: Thu, 9 May 2024 02:05:10 +0900 Subject: [PATCH] add lesson 16 in japanese --- .../ja/16_Overloading_ja/Overloading.sol | 19 +++++ Languages/ja/16_Overloading_ja/img/16-1.jpg | Bin 0 -> 58511 bytes Languages/ja/16_Overloading_ja/readme.md | 66 ++++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100644 Languages/ja/16_Overloading_ja/Overloading.sol create mode 100644 Languages/ja/16_Overloading_ja/img/16-1.jpg create mode 100644 Languages/ja/16_Overloading_ja/readme.md diff --git a/Languages/ja/16_Overloading_ja/Overloading.sol b/Languages/ja/16_Overloading_ja/Overloading.sol new file mode 100644 index 000000000..a36af4518 --- /dev/null +++ b/Languages/ja/16_Overloading_ja/Overloading.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.21; + contract Overload { + function saySomething() public pure returns(string memory){ + return("Nothing"); + } + + function saySomething(string memory something) public pure returns(string memory){ + return(something); + } + + function f(uint8 _in) public pure returns (uint8 out) { + out = _in; + } + + function f(uint256 _in) public pure returns (uint256 out) { + out = _in; + } +} diff --git a/Languages/ja/16_Overloading_ja/img/16-1.jpg b/Languages/ja/16_Overloading_ja/img/16-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5782d3ee05d98544f083f60645f4aa4c1b5fffc0 GIT binary patch literal 58511 zcmeFZ2|Sc<`!{?sgY0{DBYV~&TV(7zgNmd~vM2jm4HH845ET_^p|T`fA!AojvS&9W z5t$)lnC-pvTkhZge*VvW-|zGO-{1b}oa06_101c!zL0OKBCDk?m9kG=}he4(I%AboR>_W6x2+oR9_ zMmPVGIpJsw%6tNwgw5SO)CT}Kra-<#q=yff4+j~f4+VPq1p)x45=iTN__}+7^q%fY z0RcgK^lgxq2jzo7x)r3g&;KP)pTE%V?&tr^-`(BkPx?2zz?7g8CVpYT7u_%Y`to1- z5pXdAth-;AEcnUh8*1SQKKZ~p{OliOy+^Zw^lIRFI|NAcfHct$wC*>Wp2au9;v`6e z^7Nt}Va8y+0{cPwkf*zeHAstsv{~RqJDcD6=e_;REI}IVE%ecT;g%;rS`ehKdxe=E z|6QgyG|2Jyvgqr*LyZl8=f8Ci1*zZ4nu+i~xyRqjf5X?y^7s599G87hID>o^0DwqG z`Z?{54i1o33G+X`rw^zbMDMb%@gDz|OlXATp8nDx-_a}3+z6yWTOg6%p=Nuw@5!eI zgn`sA+abliewKS_!Fqta4EH@@0n%XoKsr6#f9Vg}0{P?>X!v`bKq9@uPVMOi%G1|- zdYPDlG-x~In^)k;J$v`^AqIyV?UeEz~JI z^u!(?)D!9*9B#i?hoGL&%NN|O>_HmT2YLgr0gM3?Kmv#W@AE(qZ~^f9xZ1D^e*5i> z8Q>0t0zQBjp!_@Mj}*?o-UNc5$AQbh8W0G|g#DS$=+|2>AQI$L{^b6aRvGaA^)~WX z3V+}$SV90`4O|4jM}V{!nC6etoPaMN$M4VYf0XVH=IH_Idl9_%-v8(PKe&IBGz9In z`8{pKA0il8H-{cv-G7K=xGmJ3I zF^nVq;zR$gj%?M)*8RdF&|>4XBJ>KV3z;;lpG2i8h_aPtFHfAlfUVD{?GdU zLxcaZ{J*{N13W=Jt^aI|-!*_-htxoNAZ?I$kY-2&AOXQZUP1aGZ}#Zl%QySgx;}rF z=J-n=f3RKr{*?K{-alG=uYZIcdVXm65c#)U!o8xy!Tt;w2L)dW_4Dx!moNlZ2QLZB zKo1oq3AICNY5=ge*6hguz^22mHH2<|-`{u%vjA`mL!;4}{>HPy06?`CIQ(D#jVG@S z0Nktq@b1cnLHB%|IK_4fFz^fDvF4>^+OXcK`3!%!=r7Y>qtB$j zO@rHy#Vj-!Jd`JnT64D5^ z^AKbXvI^OOGD3Nw5>REZ2U|c-LOq}%&{$|Xv;bNLt%r6(hoD#}4oYQUXAosjWH`!T z$#9Cnharj~i6Nii2}2!27dVy{83>GwjQbho7`4E$=)!n`@d{%)<2}YI##Y7w#s$VL zCMG5!CPk)WOb8}-rf{YtraMgKOc_GG@qoW=Zzxskb_d6AjK!p$Pba*X8!%LSG=mfI|qEL|*9ESs#X ztdguctPZSxtXElYv%X+`%Zg>)VdG&_U^8Yr!xq7o$yUnN$~Mln$`s2m1^=k%N~*g~O7=lLO6B$WhNR$nk@dnNx<-kkgIxGG{(#4QD^+Di<@CESE8t zJ69}MA=hiJF|I9cUhc!(2<`yxbna)|@3_D5F!9LpnDTh?T;qAj)4{XA3*nXGHRko; zP2hdR+r_)c$H*tgXUTVgFO9E)?;{_MpNIblzY~8ne&nT+kzs327+FKse)C4BZ9j^5<;dz{zBP84MNkxP+TIq-~{9($A$QWSC{NWqf6B$@Iu<%gV_*%O=Y<$bOR(l(Uq(EcaY) zN}gRFE*~OaB0qeP@u2oW|AY4qeo~-U&`|JIC{*ZIq*v5b^i#a2IH1I!q@xt5RH8Jd z%%*Ip9I5zvkItubvr zZF}u>?YBA%Iz~EZoo1b#qnbybptHm5J4 ze@?$xe-3^C?hY@3&l^Y?cp5x0STa0lc)_sT@Q2YMqfnzdqiy4(#xcgNCJ+;IlT?$B zraY!6O$$tC%p}cx%$}R!%r(rfn73LmSXf(RTZ~zXS$bGLwZvIzS;bg&TC-Unw=S@r zw^6VOwQ01ax3#j(wVkq)u?w_oKmZ6!L@r|5Ud}$mzR7{n!QP?J;j80eN0ejFao*#| zxh|g3IFoc{^sL<3=(F$KgxxN>y+Lv!-H|ot7|uDLdv=cOj&Lt=-#Tx3{_c64 zhq1>kkMEuao;N+0y^eY1crAG!^Um@9=5x#^*Js%m?wjws>Syd%;D^6paiQqKwm-tZ z)Sq_I`C?VTzJPN9uLF4k{R2CL#Dk)P27(oXlY-|$j)vrg;6klKpM=qcoeg^x&Ida6 zeG&2zi4oXH{m8;dVw6)HsPZg^e+cc@Rq% zdp@=uErq^@Uc734wJeS$&Oh!${Gs@q_@4>R360mpu3f#hkZ7LxJc%PIG-)hZH@WCK z^t#{mk16UYcT%XSo~iHC4yEO%k<&fW-)9`oxSc`E^v?X4rI~gA2IGyu8>89q?6Ms0 zoXa^2xwg6WHzjVS-u#(|%zKxAB){ku%dLo8bGL17zq%uR=f)j!fp5V`p;2MgUD3NK zcen3(-W$AcaKExhtSGH$x7e@v^8@n-^(C?;`41T%Mn3%d$mvnfW9`RJp9numdqOD< zES)QJEbDx#_4Mg8(PvrD>7PeDUoJmW{;9&G;#H+`<%6pIRcSAP7ZER3s?SxAzO;VX zUZY)8Su0a}w~n_iwVtm2Qa!H0w_)y;%d3IcRT9P;eV6W!qRfB zg@(C|*=h}LU2XGeTWCkNPj;N@818iF{McpP^|srryQ9aj2lMvW+vayi-@SgX{l1}B zv$wuaqp$9R#)rC(njh=?wfbLu()rXlpf}Jm2p?=4G8yU~wjAyqu^Sl}JvsV$?9ABQ zXV1^y#xIWJCn6_ElUJu0rc$T5rt@b+XG&%d&Q{H7&b`5!VEg8e&rdFREPVeG_JzE7 z?JN7&{3Y1Z({F0unwQO%Kdrc~EPfCEPFhV`<6gV_L;gqYy1{xM?i6kjABv}Kq;Cps zmi|2Qvwh2cYlaX&AZ@1-g@|Q4+B-eF&bv#bC^8fIHsv6tk!nqyq6N@s!S12%zkGqc zxSQS^jM6ts0f5~F0C+!v{)6jpvEVNWy5Hhgkf!_n-ednA{ad`a_X6}GfJ)GRcUT3z zn=t@*@dyB9!TdST0DwI^0G!YP=+)K#yniJDfG}@$(BlCwIyNv)VVI%OHo=&UDHi}J zH)u3c35`a12*wjr0MHuvTMW7<%m~IC#rBl*0q6I={r&Y@dc#*%G~l(DV(+4(hd>z^nf5WWuz~`0TmU^C z1VRsmFfi-^4sU`49MRC!($+a@Y+`C=ZeeM4{KQEoXV8`N@bvQb@%6h979J596@BS)!nMSt zqjWlx{Itf{T5Z+P{(vAv_StGnmzyZ3`b!y}_(pT{S# z^9x@Vzb<`SUcql{{@fyL6L)s^?4ko8znS%?Wq)TEH)t0<6bgYd?b$^~AGK#VH|M~myBL05paaLq2>NNiUo@A1 zz9hBv6ZirAarcbUfQ3=`?l*XLrCVc05cQY`4X8}m5nlWTp?&(t&C&k~?z#RMV^1lq zg^3UoQ4v8{5jdN6O?}pTlF7^I#vtTj$b(EaF0GAIU*vaeQ5|?rtWRd_e&Uh?F>FDM z(Vvt5l#S#mE&<+T?Tk5zSb`4vYT42g^&3Z#ad5HbFp@s;Yk&6)bMwzsYP(}>|COM- zwT@-vfu6pMw?8<48qOh7Xh6-ao^|HvD}=PBx*?uzY`WtI<>?sue+p7VSmnlrk|xF)~}&3VQQ zur@i{B_2a`ec60Hp1XJ@F-3Xd5(rY1f(UJWG4jPRJrBIc{F}PwpbFJQYCl8bwU;Gt zrH<>Menr#=*Hv)p6Ht6uj%a#eFIgb3zz^J2pm~t7OiHVSvk-jP8sA;oP0RhVUI`UPp5R`W7jsAra2oGR{kFC^Tes92 zqdF(hmH$akE=Hvqx72ks0_?xNJ7>N8R)6p^sYyON>~gZTRme6yb}I&gd!qP3i^}|z zWH+0(tvRRn}}q$+6M7M_=bFE#jP0{M-XFep;L_9HGRpIq>8jj@4>Z7eF(6l)G@1N3 zrj%su2Y)g8hIEEFWJc^MM;YU`Ga?kf3q~kTIuGR<4?-bv2twMc2H}g_7pgBDl7AI1a@$KGUS0ZpM8`E` zVd%{rEv*}|BSoxaEu6;!4d_H9#d77WAUUE>`+L^=kMY=;jJ~j$ymOLn=gUQRbHS<_ z^aU|j*H1LyLe==>oK>_ej2@*$lzZkEN!{O&#(SO^k`-t6+hZntG6YNo}^D|@Q! z7`-@uqxF&I@>z#Wqn0VUx;xpfQz$Jgk|+o7QbyYm{jqP3&kJ;*xxR;{DQk5e?HQM; z$yxmPwwX9^FHbrYXz$e7xqq|)m!ngMCdy{5DL?X+T08nNcb=qd>==Kb5&6Q$PT>oO zkz$8bPBfh$K^CL+lO(d{NbRv1T=Q%h-V(}TjXvNwXsMLW&&?O=a{DUqCD$M*24O<{ zfGg~z0gx6M;&W_rTAs)$TqjoV+ojZK&yzVq506Fm@+tzC&g7jF%Q$xo(N1a3UjV0kQT5 z*MwC~uH;$hI@*%(X!-J^0d}g%6YD!mcZNmhMKpO2eT-z;wVp?}txw3=QOfjri0fF{ zgeS(hTLg4%^}rED*^!F#m%@n)+%wP3r7_aE58pA)tDWS|l8irdFPj*ITQaD|BRf^; zqmjq`cx~~rHD2z)=MS7Q4LNE?vSfn~$-0(-UL;QPS!VXCTv?Us|JXa8&vc?|1y*~p{q#hE4wz^QOZ3;hwTGVU z5jyHH-OrhOrF2>a9THi1JYT-mf}7EdFwMqS+Xgit;Lb zk|ZO78lTT^{fPHj&r*?dbZ)+=D;gWJJP|>tDm&$O^z5TsyZ1}gTqoPOls2rT7)^Wr>U6tI}c*5(^gECZM-&5Pdq1cS)KP?gcKg#Rac)BMzc! z7Sn@f+eB2fEj)6to58`6UoT91Z9KR7me;@#lEW${@SsY5jwc##lRAIFJVT^u94R3L2*YR(PjdPo&k@O`;#H-8Z`xyg@FiQ3oD`HHCZ(N!`tA z$84krrJxBXury#$mxYWge)VvbbG&1YGY%Cnhe;_Cp=uHn9C7_^L5ZwvTCnkb88KzZ zGh9-24SxI!PHgyfrNgAIccx0qGtoVBKC2YG^&BRPsvg_h&>}OW!FkQmfGUL>OMyD} z5)>2aR4TqC1hW)MM{!Dtl`S#Xp?YV8p;XrOvs=Uk;Rk`K}u(zxfF3M%FCF={b|M zh-kt!B5Oz)QY&%a3;d777zIQ~>6B=|>om`h{JPMvyPDiLi(YHC4-sN;u#W!mq@{(Z z?wu`>AR)4?ENAjA!=tBxn-XX0C~u>`MAnPs8vyq9avw-P6<5$WyI$oh?WY^MI5YGQ zjx2nF`@osMHSBj&b^Uy8wDCc{+JToAvy1t`8;Wf7pWXMv(FxgLqYDnAT*^__I84{) zh|kTgIOloU+(4Aj70<`Y0Tt&nqQ+NgK)&O{Tq#KWB#GZMo%OrNO`;c$cdqJM3!5*d zmTAp!o;`HT0RQGoeTx8YHW_L}1MFRW#*h5i%y>$Fqcy!dq%I-nTg6uzAQG-R?uKUm zHlsl)LLuiBkGXBy`yVrIkCjQ%d=;;pIsaAhx;pnYwP#ROshn|{kc3@UeAc{b2WKL( zMs77|!S*=T?G7H@bu{bR!=YN&V=-(Kw%MtQk;6XufKmUEoLY<2&lCK&4@o5LAPFfr zaKv1P*OYc-P2^%{uPRe{zMsZim%&wH9xQ*M#QktQSZbZ-DRJq7qsmDGNU)ogK(OV? z<%S;kHS~+1)y;Vdyfs#9AXfVO(Y4WA0Z(fu&VEQ}t6zv@^xAL@mJiijDAmB%_@Zly zGFr5JCsdR4j#rT7iE^=5r!U->%G7P@jZ77|q;Ktb@>*rQHqMeEP9iRqWWAuZhQ$eV z>8lQIyjT{e^B5zvPY{zI`X%}*mhvK2b+X(| zWklI00o#z|tyD8Jh2YMpdTekqe?;=eTs@uHjJ|gQdP%(I`HHy2sK(hVPOr2IDjUL- z7l$iG7Vo4r!6Ln7<9fn0TUsb-Ev)2Y#96#ZcLA)kdpJ3%Sq`ha&c*%MD%-B#Px<8< zqe+CsqpBVu?Jq1lj2JT-Fn1^Hlq=btSgrrucWn0zj3XlIb)4WsORoEG8yQ8PdcB2) zfAke4sOyOp(}1>Pv9i&n1~~D1oZzxc?=P;@l!kaY9Jn}CTAw)|xiP<)cXGB@O)dW9 zm5ujm=I>y_Edm$N46zE)v)I5YRKdNageuz?jTu%-18U{jmbJMr-tj)?e>Y*L7LvOS zZwtyqzPO)&*J^7lq4pItBx$goHDat8ksDbWUZ{CB0}ZRIc_;j~T8ATcQ$J<%0B!+t|xEJqKgTwV&v~^A2M*Vt!HZ>a)g`8gd0J?o) z?FGmzeHF4IPQQNeNyY-4$FIP4JTCtIfu_b(A(q2z`~;l|3kmUVOb8n58as%_O?E7t z`}8vecMaX8NPw+b+ZN$612#gwtbf!(Ke?n$16(%3t9oaz--p&vz?tMCMR@E~{cAKs zG*eeW(Dm{HnOUVqtEsLC*sbQ`9Fr6qlN`D{K~H=6`pfH`>uh_Cq0f&pz(;l5i|Rn~ zRn=uN&RV*MX*}+}`>Clr*h;`NwB?R{%=0cPBZ`F>h3}b9?p!mBm_FV*TQk<7sN2uA zA~0qsGyHH6>#=A|s?Cv#T+Y2wj*;RL#JVnvp$T1-!sal1{Kmur!FoVrJ(;RAl1z9~ z_3U84WsmSV%Mj62e(S9^w0y0;cdSu$T3rVjp;b&|* z>|UR3yQKI%*>sci#x6S=$&w7Kyc#Gt4kycGK`48bu26;v`C<| zUlS7qIi5g(7O+K{FTpL4qy`ZrX6I<-JG`GGMgwtL4SmT9* zn-CA;;d6nxpp(F!x1Qv@O1Kr7tyCe++fjQkCi{k9PG6T*9?SdLTR$@-`)g3GRZ5Li?Uit|I$UK>sZALq`;qoXA00*1 z`ra2I#$Xrx50NU}yi;z+I88I}j*Y-XRRdb|$ib9naE~IcX^Aln#us?=j`5|7`y$e8 zB?q3=vf1&gV5h&8=`AgOw)g4#sSlwf!M&`5Ca%oO)-a_$YN{p%&GjPSCtlTfWjf!F z=?#DezQ?-UK9U{@%Td!-dQuPf0U;7-^YMq&;rpt@SNA2FaAU1OFMESHQuGc_S&F`# zF`L_YT0O}ntM4fm^ZW-aF3KK7PaGjBQhO%&-)C`mZc`PA$w!on)K4}I22RZMy{s2f zJ}_aih}^b2)H;?J`|fnswc0E?beqwZsu(d8DG+V+QC9#n{=91Kii_zTecyN5 zU+g&$$2XR`RI%^$Z08T^iLp;NT=T@d3Q*A9c(Q!4FXM~SqFR#s{!fdsXUBW^6J2Kx zHh+rXRTxJCA%HDkSzRnITTM6%Q*;(g1G^ zqc4&RtW!mtPs&=xdUD;`dBG|PHs=p1p{v*81(_ymZy2^|>r`=7J;8V&c8;pX7ZHRJ z6uR$L3Y)1hZ_6m7u@8OGqAg5BB%x-gg+AJ!V1sK(F84b+H@Mbpdm+F2jLH15nNZ2) zd4rDZ&YfdX&WrtPw`hQzDZYx@fuI4!GBFx7KnDaQUk}j$Kj%J7J(7G+pc_MChf}ZS zO{NqEM=eX;Pj}2|@K}$55t=ABT4XOEq0+=S-1DvmByTf2L(-imv*W#Aj01v&HKwu{ zp9Z?Yk1+Oj+zn}{LrsJ8x9UmcMAj*V2iD&vE}hpcQc5psr6W3bBRSw-9uPUH9Ztwy z{i7sZDvLX)nE7+`XAw}bPr^?k?k-#QHYyw$_O2K&DjIe$4Hi3K%4g3sLIbM%+c=YF zVJ%8paV-akEkUfGW8z&4PbmvYy?%3#C5{cDU~%)Xfo&1~Dyap?hBhwZ|$UuZ7!Z$`DDlVRNY2g#7qc0ZQ zN9864X{O*g7ToYNue!yo?HV^|z~yJ@AEM|bpBuBh)qC?&J%8%ZxKsbqbj(vyC|Q=+ zH3v(-+@BIFx3U@CZ->9zuaZ}}Hp%y*YP#XG{wZ;W1E}m)nA#W7v95@o6ieI3B4T_k z{1tsMe*r|lm;DtheQ^X%8~DfgX!{fEwCg4J_bo-wy>89szwSH{s>PAalzl&soeyv@ z<)icdxUr6CsvA~Pc~p(5&i0P?J@qL2?KQQRFWQ`(fOs9I0t#dp6Tq2R#D6i|6*GY( zActC%qDjULu4tk~IK?hT*#B`lP~>avOAQ+?Dmo{4V<)f8Uh zOs^qQz<0O4NVD+iG7o|f@jBH;Eq1f_wv@SoBE84O$}bBc8k=YNm=x-=%!o~RMOR`M zUcDQ`i!#!@a9<6Rv)a`Zout0e!BS7>8P9KV^9J)tp{j~P!fT@9JUVHX8T3D0DR~&I z7Xp`TDSR@629Tx4E=MjNfMzVZx&m6ahq3qYnVhGI9I23-yUAT>A$=yT>#<_dx3F5P zQ?Yy(^qEJCM*{oF(pr~`TQa8yO_K!p$ml$Ir8IsR{F3mbVxw~jT918cLdQ z3F~Pnqk%Vzvt(J}YvS&yM^eyH?6n~(Ql>D4^aZ*5{@_Li!~3ikdb}j3(_{(a^GagR zTxt7vBm?RQ-YflbWcA!VtKAs4_ZwV~k$nXbF06;WAGO9C^>9~({Y zr0z)H$oKZhv0SnIVXKzPm_;erbT4A6@5g16>*8sN-5NrB2GFJvln2W?~7gOo>-8+r4=Qv*s}4(_o2m& zy2jIwpioo6eRSOjy|JZ}e5`peYciTr2EyQ9VI0KJv%Iz-pxfK#im65&E-^V!Q?GRB z>(irb2K3pGtUks8Ovpd zWJwyy*z>L{Y`VcsAq~crco5LUT&HT{ky$8nt)j~44*Mee*An+0EQL-wOW(N8G3@pp z5L5h&(jgh5eW)MxwJG=XEV1148FFVvibsDQGnu~R=%6%m^Qv?U)~~5RwmxLkl(nS95mIQyQ7<~)^*5InE9cP zw6@t+YlOMo(tOYw0(;CFYxfjqJ!jtLiio2Ec+)RYjo)J$&)RL<`?|QvPt1qA@JL6n zH-!BZu{s!mPA@CIfAUJvanw1=#7sK zpl~M1x8z{~8!&MO;;|R&PO3t`h5h~YdauCtu5mNKP!}hV4%MAtL zFV&B^O_2t$dUSvVM$BQ7N72l&oMfG8l{?t)E(Pma zJo{($ws{ov1`l~J-h!+1oT}E?SOll2DH8QNp@veV=cSx=y+wiA)hKYC9OHT2t7V|h zIzw`B#YFE&eQ+nf-c0LKhV1G&aw+7!o*&7sA8!o8(1}zvvJDYkN-XRU=hh^Qy78nW zzA5k{Bu=o}QqL6LuvnaGzF28_HeQVjRb@)=V7{!{r8hMKGudbdj?x&@+)^xaCXI+zb`qAn8sRwoyEdnj z+heR0r!SLjVRz=`9ZzPj{Xh?>rAR(CI{O5GHDxLe>cgm`R1RVUo(9Z2ce6w0l%L$2 z>%V>)@(t3iDKP($_0(6_!-~@Q@wuIhi+v~Ejqfl|=k=ltO(7xr>z~kmLF34F;Wx=C zC^-_x#5l3g^v0P}{pk4$BkI0VJBOJWU%l5x^&BFv<`O=f^F!C8Q!CcdAkZ$fLKR4M zB)%pYepboRAo^%7KN=6Ab0m6FV1x3E{q)TE$eQEV&)u19x}m4+tks)PkCSGz%ZdYF4+zM* z+11%nVrK9Bv0JO=4?mL;L*A}sD(6N6rG^|A%}jbr%V9oeU%Kbf9b}j(+^g)Yk)*2Ulm~IeGF$ zM_()>DhAik!4B!t-$zWq85Fi--MH~?O>;;-UvV{D7k&t3j4gb%esKxVe0Tobd#f8KlLZwFp`PLj z%kKwmb2Y*T2w+TbT^%JuX(oH%g^sMR9S1j4`76Gk&L98U{j6|UlVk9$-Dn$lRh85s zGG=jh{pn~fc)cD1$JDi(oI#F3^PHKwGXqZ3q18!>9JQ$e+8^KcRH~m5MdMDQCk{xN z1nrB~^fsW2tbNma%py!Xlfq~;9Voj%yV9Ck!r%b#pgHP)e;Vv?)-Gni^%cE{+e4X z@+Gfr@?^!?o-}eMan$E?Mqp%IC{?wN<58QZ->U z)$nO=r9+T|D3$su)KB7^xTyGMbjbN#pKE8%2r0WC?!6RRHc-Bqv)a@d*uniw#U*p* z_714p-Kl$D+7Da02=303FN3brS*8t*-Z6&?8qiaY-ui@=I`hWRoHqDR;(`CIM_2ym zM`hUl=TXg7IBn?v1S5w3PcUNS{{$mO|A`TAnp%<2h$5k7zlyUfmc`4rbT(McymAbf z8R~x+2uQ`d7TJWN%rMq^&}S`-IA4c2N}g}@*5LyhtDc|boeBws(x`qu@4VpJl5b6# z+xlo4kmNxFo`Rc^(lme+1H<*9w{&U1mm(SvRP|iG>JhcO11&dC1Nw-_tx_;9groP- zfDO6#=)X!nqzYwGOVMNycU;@r^5R2#xMOnh=&!Kvc5rGel^e_uagzpMZ_|L4C>rn% zPMtL;tHUUEG+;-L226fmc`yHGLGaPLXflN?MFZXzfirc-VHz;JP6Kk#l$I=_H+=UV zSU!m4G>nbhbf9D;Q4w7<;5NDfgvWPCL~|ODt$+NVSoM%3!cHzqqXCCN+&_c{Y;NPS zXn-WD6ogv9+3GlkYDohKyYRp2i*#}@CuoZ7zy+x8)LPKdU0TP&s3tpzznK0L{a0mM z%1g3VFKTVXs**b>eqg@+v+Zzl%0|&&E&uj+s>ZmO!ajcv`a(wTB<~J^S`}fgp?7!} z;eWM!;6LiQ`!W??{bKeV5wpqp|CKg^YuCY`)} z2k2e*D zM?1vl+-fU)aWHP@3k^_MEi2}f%oaW7Cu)v`(pMg z-2cjK7K|%a3uW>KJk|ptc;kp;&Bvo2Dbzodv=$q#E|<0N$vk3FUMZ8^=UDx@y4>^K z8y$Rfnf;TM;mfK-FXBBx8>R2VC!YQQyZG!}tk(e2kUAt#R3o$AS);mo>v4301rZ@$ z1dT;z2v65BzHyxQfqCVe>QvF>6G`xiG!W$9T=cUlJ#wOaWcOI#%FtqN#!$n_7Y?TU z4{n3F>mK&{$4!UVN(Co#U%VXUnhN}C_fXb+!G$2iyGGMV zUBAfM08@1h&!k-qCQ`o_5p%~GZ3gCosXb?(!ME)QtgZ|b2m z`Z2L!VeO@*AWQ4jCcT$-h97+cClmX@dcQ-I!R5BLNaB1tIn&VmTNy?j;IWpD(RjwX zK_ii-=Y>fu*Pj@iJh9(ClrhRDG*Pz6o9K=cnD4pTB1z1h>ns4nAhI*A$1cEa$#zWq zVDamk>xc6mMsKS%KFjU(2w`nt3hj87TdiW=&F5h1YwzGzIOmGEwkxxT*9!h z)j2RT;9t2fxjm!-2Uyp4!5!#b?q?BU4m99K;x;7`P1!d#gsz!gO~xY#HwN{btDoj1PG#osWGVE;bDIaU|M zN_=QpXpCn}R(GAAIHNKym3=uLZf_3dGL%T&y@zpM&pbqCeM4N2dNO&+m*BKkrkShz z@&fFf>C~8;i*0J0eoQ*{J^klz%)*XQFF%V8P8W#}nDR6HgQx&N|Fcun?f+$CP;oZ} z4Db-K<7ikRfs@j_D$=F-A%G-Gq@N+R8m~I-yex1HxV)HN+Dij0#RDFhFgK(h6l3n+ zSVLZleK%V_OID)+t+SJgb3J55RiYgnTS3;~Oh(sYYGb=7d5f+WBB@ci1naE2C6ak$ zznbW!=;=)_)I}2ARytfVKDYVw@rlJLw&MKIaO% zyB_?4&t*!?^K{-jhUPY1N#t{IGWg2~{LgS#W>4?*O52EqAuvTg+B zgR~;667kr6Hk9s23oqG<=p)d%4slz7Pt*^@R9YXbsEmXv7VcNS9KYOm-OwvoHxEF`uPPNMw&n@x=UMAOS2S;XzjM6G$u zn$Tmi3DE^Rdu@WVLnH`@zS0hEVpQ*M2+%&|bTIe*IlQ7?`lfnw*GA8?FS%z8DV5BW z;)+;ZbUOz8LBv@_k~&FoZ5kcvF}p-5%zQn$c*W<R`>_Ef6;`ZwPvs_B<_4Yv%e+Q!DIy)Iz=Dm#R24KL%@!vKWk&paJJV zsMwm4$A^!}?I-E4>uYA|``l8|{Lw$9v)mPg;vmiy?VIdww5!1iq9W#suIKyvJon3a zA22?mwd!?KDo;Tst$MEJRw#q?U?Dag8IxfaqIVE#ebh&YF)HCb4qMPP1WEmt2 zc(mpawUq=AJ-62g>u~f$?6g)P^?5H+v3GfUHp=a&lghoB=hoC~+SB(*Bujs17*Fgz zYClYnZ0LWnMF%f2a)e^FG9!~dRq=>=!Uh|xR-y_1;{NOlptb7y^Uux4@jg@@WCDoj zQ+dHo6q82fuif6HVEShXMfH7~9`85CdN;P$K5kE^;|H4~YfD8G`T0G;b;QN+ci-m^ zALu`OGUctnH@H9~tg@d5JP_VJPB=p;L%EZV5PL}o+u3rWoNM@5A9L^azO>dHwP@?> zZMq^4NEJ7tcdGuf>WmyMv+bH@ajWGRfW>-#p zUXq_s7@JxuO?HS1q=2|oCFIdR`~}ZH+oAqX*PfbIn~J$0#ylO^xKl!w0}ljg-cck< z;Y?o0!a8oDvqwQkYOC}s_Frg)KU#*Va|Z0x*$+F52wdP%vw@6L{Fr&nj<6mWm%6iN zQ3OZgkOj`f#g+bip>I~N0 zoIa0p!5}bHYct9q{l8)sXu99DHePL6vH;Tk{un_|P48=;3S{ zkXuA4X*ph!wRRV=No6G`P@G!P{Z-vaa`u)F`N$H*61D@DG9mvTbwrh#!X~wgmdFA- zOuH3V!T2AUj@gk~=_mU2@8-Zaz<9P69B_Y8aK|ncULOMQC#r66Zn@IY0DX)QdgC9~ z7a#iKJh}*n`~q94hfrf;K|kh8*7LtwYW^1u6&H`nQ^z|&=w}Y|7Cv&3iM&hp0xJaO z^jA}}{-U7s`*4TfTjU1%zkhp7ujp&tav0G#Yh|maO2`{-U@6>uVX@j~Ik_3|Q9bT% z__HEh9t{{urow5!=P{V+rJUTr)$Ioid?oef?%+{7Bt;ty&P$XG*ngCh%3^SUdeV^k`6=^x{wAIsSU%Hc zrCBO~${c*Vp)<9?(@84u`VCvyo4x-rzVOdB3;vDn{u|wG82C53`)_pj|KEu8|2ydJ zKilQ}Prdtpqr3k-(cL!~tXTq1|GPDw^Loo+V#kRWSr$3+jsxE;Y0>6_o5;al}0R-CL$6!5_Dz|v^I{s2AGGTW$mmm~7?pBCdnNLf09g??wpII`gL0r3Rp8Aspa4S#TnLV2`Uh$#6XNu3LkLq)$Mra}M2l2_X zvlAUQxLw87Le6U#XbXR|V%zRVzZC#nyepYueP+-OI z{aQe|bGN>-FNR4;q@w`S*3Z9ky8BLLm*Uywf=;Vjmr>bybe=hfsx73atX4mMYOe8# zJ7GJ{Y=NJUFDWlBd867>U&Inni>AkPR3My&HJa`nLv|i4yT)xA?W9-H@_9k_5Y=Z! zxz+9RSRpjD9LsFdZKo}?TvQ?58o=jZL;p{XWN<1DqrV)80S|l>(EuY2yUGjy0aOSg zT%p{c9;6Nmo2PEAL*KbSSr!-Q(~o_iXx1R$YMd5Lkh(W%mG9kNiS5@rBk^U8&*o81 zlm4lada@<<&6T!YLIoDh=cn!)EAi>8|CJ`|#7XH;ReST5eRJ{qq`8sD8&;3uyTKoC zV8nj>ob+cGe-CbV4EjXc8n5naD)`=eu-aa(zxu9@fvXsul$9O96;j|@vjA32@k5v^ z2o;{90pE+MX0I==Xkdt2S=2_(FaEcRIcfjwWWj&g#PM%P`d{8y`Zpx~-x-pQ8___( zQ2uyur=TjmMHRoDE}KfXXezAt@p`ocvv7}aVg?`YRX`+V#eca!P0I~Ngy1rl2;rZq z9_(#&y!TZl`=ObY`CnfvzcJn!{mu-iKGwhkzf^Y^JVieUV{73ie(#!5#znP;@IQI& z$M86@xuE%pE5E@!Hs_M^;*G)_`@3Any&>+`D?K{FUo`lv1tG=~i&pz~qpoj7`)t(d zpls2h_%rV->LV?sI{RLVEuO)?ZPOdkt-qyGq`Ju-RG*B%Er3CNM-T&9^$Z^PwmNBDr`%dV?sD}$K=Hz1xjdK-FU#ZVV;PH}TxL^K{YSD%Mh>>zBb zMg#=c97`l4RP_3$I?I1NQn>oi$ADQvWjt0Eg&HCw=KNuaMI8F#lPE=ESWslp52XjM zuDtv49VCayyaW=K-80g$u~BcWEyRK5{F1^=EXn9LSg(RIBBz4bIkw6-kZlm z{l5F-T2+$lNt*1+R@q82m23%7l65Kxi6LPyOey;og-}fql4Y{XGLyXsSt29Gj6Gxq zO)qBV)$i_n&-t8pea`v3&v~44zUQ3p@AC&9GkD!|-}klL_jO&*=Vh`|Hv6#f&6-Pz z&(0sryd`vl>x`~tqkIQZ4SS^z-tWFsy(4o7bGBhbsLYO6+^}>~+(>BKx=a407o98O z0Zp@IwrT#B1J_#Px*b#LKe$YwvoBg-BBFE^Ke9EHlo6j=(ypXlKIV@ealF7xmh_ID zlB;nz+ej+4*S?yilE_eP8b~iYW7PkuBl|>RZN0JnRZ*Fjr56S7-0ryPv(uinW#t@J z55xe2FCFWODEs__i^6Y_6VelM^gc762%SZ5!@JRmtY)o1-j?VJuK>%4Cq~YXDeX(P zHqVt6Czwe_d!knYab%+|n(E+^Bghx4q1g&?+T_MImSe~;)Au;Z|DI0VP~hd$E_sBb z#ZVy=8SlZ!VsXD8rWs@PI2lu89Op*!@s$yj$B_RDcI-%y^}+0%7hU%npvo*aco&q< zP-|S(uPW;)LvFt&;#aJCGF&{0U&sZYd`x(%{3Emg0(0~X45dZ)Ad8Rb!j`Qr9LZ&R zz%I$mJV%ENW)3H#xaQiF*qa&q?3=9~rrSX-@MpUEU(GQ8npGxbBb~d*5rD1BJeE|p zJiOW!>RYMbf79=}(%ah2((-q!Vg-w<5!Hj-3F*H?k6+&X?C>F5=wlj3?>PNC)0vaw zS-Xa1tdikEbNL{priU4qLMUA^#PL(pyNMS|f*S`EQ6T(UsXE`P+O$%Ryo=hbA$Nz` zT=THp)Kbc-T=VRE?L!mUV)?*U{Sm+0GX?a#&aX;rI!?y~NV>{C)hTFLFReHUSd* z!KH5kG6f)O07XOg$hb6Ttu8Z-`+)Vx5|o}XAECR~Mb5Sk4m=Siur}v{2)I4SMf@Q> z@JrDADS*Nt=xT6uDr|1^gNq@A`+W#dt`o@u*@s*bB!^;0jpLe-FRjR8&z*vId|Jw+*v78Tu2TT$~x5qni|5^s5nhyfQtV2%c;l{s# zO98(j8)Q6glRb=+ zZMH0mEsR`Lgk_IJBd3_6K%Lw`7V$mq4;iiQKc>2Zfi3x6<9;)EO;_4*Nd$NceubNT z%3lcAHKz&-_592=J_HJ`_?KMRFR8EJ7vo$H+)3j7#w&h-NND;-HC>=Wu)ywpyB-6!Keltrq#Tprw^aKSu z^@D2$7(xW7D0T&>H3Iwy$@swqw^Xeve)Cz0{d-34XP)x^TK4fjE3Nhm@#9qw*Q|{BRyYAVlDJ5|kDOcX$dc8~F^QzPR@$^6b$Ew<>tQB4B z&WTvQxqQ9Wyr|8DfhzQdE!_!agZhZ}M*-ha7iWuUHW zFRF~50Q`|>){0^ig+^kuFS%Ij3t5x#4>kzjpqTZkjMi3{6{mk0FhBEMz#z6=;QlT9 zTPH#>>&Mb_kIe~L4RN$AdU8dov+u5Yv`f8}t}=*=KGasRV_o>JJ0IecPu*4*vi^j7 zMVPxoLl5BqgTU0A1-{v0$g&~G=9`0ybrSN(oNaJXw@i%4_`$bbGTsImw?;;bx9ms& zetJ7r7MwV?V$dzx32%lC$M~9W7r1`!u^GlJs_wH>_$rl{i6J`ZL_|rLFF3ur;ymFj zJxNd#PVdb=J9wkbvYZ@Umx}*}lkRPpu-ezltnH3PUm2hGpWxWNXY*#(`Hv0U#`4hH z#}G~C5g_Lc%h>_?U)8(idzH!-1Z|rnBhJJfNRzgZd3i>6d|T2%Bhf&C0>!o>WtGC6 zvNaV+A9LfJk4q&h#UCsu_kNaSxM$z( zB;#qWZyHxFpv0-!F?-{4oELSwifbuaNBpk0%(JS7VyB`@l+I=1Wp3!nB$|lpE1kAV z4&Njlx=AOL_jHB7hnwsw`ECCJBdLH;yt2b>NfW0vk?U_iy2rb&*fyGlXCgU~z6A1E zJ+f>n?j|8pgt)nqlg?Hdk*x})ef+wUy~%T8`!gG9egWkjqLRf`*xYm`9+D%>dC(J> zrSygQfIO^aRlo9AK$a?7J}fk2y_t)3zCCB-MSAuM>^lRlPN9UU*vTYn_OCN+z?dov4c$qp2=l#25`j`r=3i<`1Pjb0huX2#WF zT^M^Jx>&iekKfMT)I(;!W1g$SgRsPN$+E`OTNjT@S4rjn10IKaGBp7?j$zXp z!QId$^qk*aEB&s8!N4Zix8S?=R_D)2U0c02KdPl%^BQw$K$Q@|MSa8eN=_-x6SV_l zGWxwi6;v*Y-n3It!TRK5D#+rd;tg_>npNRJVjd$iV=U*g8(lJYxY$TLVLqM{v5gs90>;odAJN>e#IDQA$Rr}Qb4Yo(_=Nfv*R#(4`9_>_l zepSr>vYHKohcrqcYJGsU;C=*uh#FSBhj@Uk#VMYDTFkJ%8`hT|sPEx&ohed0^m)_d zoA?I3_1T#e&5t*x8#U-&ZN=N;E;NL?5z5>BR_;<#8&sq?sAgZI}N;5%&jVD>0t zaI(a{(6LkZYXyYPW+!}HAje{Q$Ixs6G&78WYNaHQK-}aSJ_fa(ef&}$2G@e$<{VBt zs-97&VJng}!gFD)dVhzu;7$eC=O^Bjd?j#k3W?ihDS)3~a2DRoVOe7jl$qdTLS*`s zbw#kplSTyP2j!A37Y6BgzurDbc2I6^>0JuYDi$~<{FCw-+NagPlQ1Yc#y96g7iaD( zfduJ|w6prkLS8$roRhp!JlyV`Go*fNe;dALLe~qU4cV&H zI<;$@{cL+J=YfZ7MN0M1Tk@gm9WUErl1HfvbvL~{t!qjH-EeA(ObT!u3Dw9IvyeU^TV1K=?Y(ECLCkQWOc`=&rIfnN^U&~Q5mrOGR!f{e?I`h?Gc5)w*mTwO1g|Y-ig>a8ws6zj z-GDHO{a<%#o!^JkyNQJMwa(d$q6I!-Eg>|Za?PUS?h;jI4z8>QfB7=)q2wvO@~kR+ zeUDR|a~%CmOQQCu$Gu(r)92gd4GzTZw7g+asdFWHq;N^DKh^(>mqo`jTg&8Yi553V zGMU3EQ8&sSm-XHZMzVIpEl&hFfGGz67fuuRU`QstL@mJhw4EN7Q#Trg&Qx4aBHLbl zmS^ZKBZl60Nx01G$lB9a+MJNSFL9sRnUBDol`Wh=?V9&tsl%VhjuB%DWvI=cq0)vC zIlD~-sN;2Uu@)XlT(^`Cn(RtEutHW(Kb-D5z7MGagOFXlRmf4cI_Cwf0{0LPb}tj6 z&xCwP=|;y-g8; zdEjPJam#&{f(c_$(1X?ypb_Ak@y;X1Sis#Kr%RSzdp*U7dZg_{lF_B;y*sq0BHN13 z-uH>nFns4W926(p@lm62B*reCx@4~;ExdWL*ZzALzBU6(G&fOpOhF#kk!4vyLrf$P zB$1GJNI~KbH?j}gq#t`J-_=$#_XWAxpOY%vl1JN{QyqTT>VBttP=Ip%9(Jkb@ma zeZnW+iyUlRh#UruRU|`(z^&{Ft{xe(A*6vsFTjt81T_ ze+qf~#Edd;k7k)nwRLurCW={x@aK8f@sKtEJdZ*5e&!el4Fad2ZAD;^9%Sa(N59iOmtSe({Nix>P$!|JGek4FKR&*r0 z&IjWJnIvX6q)eXzoi(yaqX|gb7f$3S@+2U#+`Dsg7cRn~O`%m+-!~@g)Iq z!k?LmZQ>nU-fCf^5(royMnv-uu5BcDK%dGf!Cj?9AdBTgCt@14bL%@!!7b!(>Sed= zhGiJU$HXJAY(|b;(zcsF7uC`;N9mxnq9BDSK%$PZV{YnYbC0G%renxY$deVl>UB4c z9z#7oG1IcwN;pJ=ZIZm7yoGTFY4M?`o?C8`S zi?Pm-VLiuSDNg&3$U^7HI(`G^D-!Zm3iEZmKO4lNB}3=g&joaDZDNiuIr0O=&j2LL ziXpv7exwIJ9#NJ&oZD1rS5M-ZyZ*ew?uh#Z`QGc_bfgioP2!{mE@+*OJ(nNc=nB@qlfe&vt4> zw#r2EAJ;?FV9@ZER2C8|!LV*Us>k%_M9?57Dms4mMqPp0-lvSsC*xLf9Ca}>rDJt=Y9QWZqx?P+E7x+ z8dn~df8wm;L?f@`qfvBA!fi?=sotFIV?duQr#kS}3w~MM8t9iHQQ{Wg?XW3H`16X$ zjn=IdMH4x3_vH-U4lyEHxwzTlODu`)`^}r%dvFU=(fL%;Cu`<3viKYVK?RPO>WqjF z*@52X!ZKkY=MD=b96?;EUi!h+&*>UoW_@Ouv?3~|*m5|!dDk8Mt6Tt_oTEVJh${GI z5pUz-EH*qjs$)hg+Jx$ zAQxN$AKj0sTkw~m5oUZ=0Rkel1Q6J;yun+xmWtY;9(&{c=`xZ6f4NEhJ{nv z`v{O;t+X2z{pu&Nm)i=(xw`K45}Q(DGe=?85gl7v-hVyvO1C|gISvi7{BZRrkypAR z@uj4QW#r%hP?=D5SGMwVgy6NwrBkmp$IiTd=R*4sX5JUxSSKDlUt(C+jhCE!$HV6^!Y9lF=~`MOl|$3?+IELmK=CDL_)%m;6A z$bq{k0=2T4_E?F2tbYClH{G50Pe*yy>aMDb-naX#=bfN4+@yTsb6M=WJMt-s*ry>N zHe7Ffh*L*$N3(X9n{#%#uM#0%7nWT;%jg1#K+{s$g1uDqT)BtT$S?qImOJ5c9EQJ$ zbhj*44sJad{BjLA*QhVtywY?$-N0sTBKsDw*8H_dh7Yrn^Bk7NoMLFGZo#y+RM$1vVQ`mSFls6I zoRM*DCfD6Ba4>k7e@Rxz0_BM{UdbNoTG{>6fn9PZadv%cv$p>IjeiNZ4mv+6&UFpq z;gh5&WCR?YL{$6r=E2TyNm!Ae#YN-cM^PM&Wjzp3oC21|k%3sf{EYD!jQ$e;{@K3+ z`t?r`us{C%cYq518?G9SFzR`4;kL3}fsyxia&qs6AXvVLcaCx(;rD|p9+jcp z2JrZO?598Z4;1}jfdoO^MO?#PkWdf?M;WORe=@Q(q+5OvOIcVsQdEr*(`f)$~LJ}eFn%dVk)v=Y8rI9qU+vHJ)y)`!}cgv%>yu@R+K&y|tnyT!{Vzu?ywI__r--->zy9)QW zhIZ=39U)h7ycrG z*hrMQhTq~#imTAwEyzAd|N6ArYBHM{$(?$0#7ywrL7wm~JmP(E@=7(`Yt6*+U+Ui+ zOBwE?xF*W&)%dU+tTBDe^(-d6*;jnC$jS7*&pdT)q_3Jzd)KMGzOi|Sv&_18F9?S8 z)P@9c%ve3}ZCHP5hvtzkUaVp$dCWE~Ctfp5Ww=M`#rvJ69pYE^9BMu4-U%Stk6w1R zMP?6oa_veozvQ5_dn@B4QMtF4S2M~x2P!>R6WXRI-lw@3Rdi}oa?`Ud=#l3lZ|b?T zxqO7I(F|!SB^pr74>>|XV?jc_*t671qpzd!C)3Wo+j*)A(=P2SVa`2Nc%8iu(qKrB zd6wowIBIG{M3hD_kNJJ8>d4Q>(Ix%zaT4F{jRh)po)kZqa(MLO&b3piV3q%g*XJL8 zS`Xq&0YMo~0LRA>mIeGCS3}+dt~FVuAX3X1y_Og-ntaGVR2lKm`5_La_DUUX}OXrvPhKvtE87Cp7Xwvbl{z_>B(lo{g|w z7;*2lKQrgv$#hFoTF&0McTU^wgEW`dTQMWaI4!C{)(fl&ILu#%Ka7YoOozVA(sOOf zN!@ZamnXaZ?G8uFUG|F&_`)?awSQXwDw~^O-H?!gD*<4NIY1OmGk8qTXxY7~-_C(v zl$ZZ1yye*3Tz75!bhznv(M{({9+yZHxeH`vx69H%sl}VN2IRl8kj{ z8M#sA!@9;;8;_9vDOx9vSSB{Y5gv z7iUAgzdt!~bDG7;+Yb!Pn3CtxdCc`@RijDUaF>zX*H8i>yU3UXnsr!+475RYPi0-d zN5N$80@_2%BT{dR;f<)9?G>BF+s_n8baEq2KH~?);T?+g5q9R0Anub-qF(e;HcR8= zbBdWfaqKD<@)Nd>g<10V=n^ZcK#8In>Af`Hi1{ei3HAYKWmK5X>2s7wIQhDaG=M9M zzFV2pkyR1aH(GU&IB89`3H8)ivaZiZtYiCe;xv$hFfN+78**mIH|*8~Whg22I>vrV zg+-%5XSb~{C@|iA{q?4Tb1zfY*r|&p!w9&8RMMYKUpvc;gc2Cs&5i=}$D|ll_52_s z{jve;l*j@PkFn!x&Jn#Ml1|KT-vsE;?$lul{i*0i2WzG+RL;nvk|MD-IS|T_F|Mt7 zKl7UZ{uSQqOlG`ub-0YP`_skk5;9~Vg?gz9SOx{zHR4`X+^5Is1U<#1wh)D((wj?m zGg=J$G>^+=wULe|o<=$L7${D>KeP99-R5Q|j9oJ<2!get81^Z;X=}9lw2ljoA;9xV zJ>qq&<2z5~g1+}D6Se)32luN86&)9&Whi{(1N_v4xl8ojs^MBlVIB0?u47F70x!tns*inuU{%Z2S=$n-h2W7Vo^eAG^zPB7slf2jRUf{~s?8H}%($eXx>snA{xZA`XFrYa8-mHwYFK48N zW5wyM#@*jOc7K(6?Yi?EF&u+;+HW&oJD&XPa)H;Hmbnkjc`X>1QS-UIjCHh;$8{<9jVrYd17QX8 zh!7;5GB2GC%{EjLWhw#vxbZ3JD6E>(Gh0VHlaDec`NX?d4uXBl+t;SI zch4PrWH@MRuo3d7yT3t#XoVX|00Jc2BIA$QN2ouzHf2|miLIU|>N=WI-6u9EwOI+> z2|vN(+=M$rm_JUZjETr3R#<_*IRb5G#dviXAr$FO7-Wsg-F9N!X+-eAitJ4#8OQ2+Ywi5hXM@_Mq!;BYG6cA< z#0zh&QA=V~gy~67pLpH*1;0j@i><{#*YicUHaqTR|6>y8T4#UzWTVZ}q#?3houHZ`l zLCtT6mVDTU2v2aXgh+5>!_iBbH#v`p2&lh{_JFiWResoGkHmT8@!&4r10) zQt4&q#-1$*Qr+3lNLTbGtPbOQD~K1v15dc2@1uo!_1eUIYRyoG-0WGCU|W$;6Gdx_ z>+Nsi6`FdYB*cWT$Y8S+M5e!x+>qdGP)w|2IY6lmcwx57n2oLs)}T)va#-FmFV%aq z@^vU#5i=FgWAohaOv#a!FySj)x6UOl;TskP&6L%c4>-?sH@m}!`)?*gc2v-EwX#or zZ`h+sH~zAu;j5pM682s26wZ#sZRgV5XfDArhH4tpzt2+(F^wk~y7&U<6iU#ww?Dw{v^MTFM# zWt8l8N-7km)}CV7U9~CpLh_|}Uaq3VMM@)LaDW;3nv+^Ua_x#GYBE%A@7gVsVU%Is ztzVYp__F2n8QX&HH4^pc5%naacM~mR7iIQO5|3iJA&nfiARRH!$3kKf97%L!)VDO9 zqro|tdneF^=({)Co@!JpIiL2{G(f$)*D9l27X%De2E2J}6u-Wa=Anxcv&EiHf*mA1 zrM2>|UoZM_x}R0s&41Nu#M;wH>|M@hXrQrzLN{OF!PvGpYi=H^J3^~uzUb+vNe8CP z=DyGO^7tN*$uG$>DLhnl`%$k`-`84imM;7jG}-_R^YAV z`(e%#8##j@=Xmu&PuhM)ep&3A2{JJj8p;ApY2~@mb0k-BbF!ilbQnkYM3#?Hm$)JJ zyso^eBJQH{)x_J(H<#nqzVs#Uc%@`<7zEOVp6t?9<~$yyr`sQ=z9ovenda(aG(XE` zncUbTaQn^u_A@(hn4KqL{0*mgg)EN0_{nqkzu*-63(e>}YVhot;<5p@^@fk*e!UL1 zC!K6|?7bN8?{w5VF&)Z32?}}hkh5v<OAs<>!x*#D{*6Ig4r>6G@NDhpG)EHi7A+UlJ(oQ#JS@ke;5 zan~Mv32O5$jP*_mK6|Fry!yj83gq0i4U|BEhLUd&0DJ@)Nln!`0w5UTfR70nomTg^ zq+iET03X&5DhI&gIUFR&4S2u`LTc>b=v5rFfe$vCgH{IsCSEfCJm7k+f_vW31MKF_yhu8cJdGpO(SLN)i1|L=nRC2uC zT?1C~HI=feKv~&{gpW9&Z^7JT>=AH;V*5O0A1klw$13}!ro0Ps;ceRRVH_PdAsI1# ze8TABrj>!;2l}_KTS%T8ieE>K8f*!wP~@pDjiilO6U?|#d5we;VUTRKujlxhn!UU3 zs%^dVRz`C|1`%G49&9xq@O3b^?+@AgF7MhZI1>0b$bIu*=m)|gjG=>q;DP~p$WwAyBq9R$q`-# zLb(OOz6TuZ|J%~?A6p(kJ&&9IH~?}~RbBA0{}eOx>*n5JiGu`>K@kb&ZNV*a&lKTl z$PJ%Ax$YgK08B0$R|H+_=P~gx3zqemNL0ROC`uL(PZX-RI5Gbz|JKG2if=+RF``z` z%GkUf4UwQLe}Y{2*<$E8+TF8w$abjt@x3>3UK381Hm@!uy?<{kGw|-O#Nlr$`w1Hr z!T%a7h5PggwW{F@#L!a>nAD^GzZkrP-|hLL>TjBh{LP%N&ZAcqfj1cyLayxjGvi(U zW%o9^<{f%QL&(7dSm15>A&nijE&-bQrB|*WXsqx_UorU;!?Cn-e>3^%1d4m=blW}r6J+@AVGMRhn?^GO^W=ZOguo(I$Z z6Ps&2N12870bXDy5;}-rC$bYk3GIZq%5Nt8v z){r!A?_AC%Zxkd&0KVbh_E9Wg(l~1QKo)R?l0Q8c``A}?@W^e7ARKP>(|K*rtRwx& zdLakcF>ts#j(!Df4*&^CwBVN|n{lJjB=&8ZkTtmP|Ec?21+~t&4=oAs)(AkXh+wR% z>IL+t1UA1lkRP2B(M;ele)WpK%g7Hd)S~L@j&87k!0?UVf%o|D#C?bm1{cA7AT-Gx zY2gS;&3^ORznjxP?#ew})3!15)$KGAT^|J>V{G}^F!eXV{Oc{^;NFs^oeY8h{0DCb z-Tv$bjv>3O;Z6BJ-JPU<5bpOu|4Ld2E25mOz|)St1s?hDlJUPlGF(t}m_QA7Tskpu zy(2vD^06c-JtwcNoA#Z$cYOVJQzz@b4}>kR;%qG~W0Tx+Z}tx6epFks_uNvkv;4HK zR7RMQmY9KYo`LaT&Xc^{Ec0^>(F%oTPJfeW<`*Q>iz3t?5C5D!OI?-hbp>A>5uEgL zQy0T(P21!mRsbb9sbd>}QIvfe0nX{&dNBaT2&_w5C+-R+ z298!K|G|YF#4XAq26qF4m>E-uqi6!4w1b2Yu1SNsuqpx$?DbyYv3jr^A1E1}e%1_h z8L0K?DP)Nbu*CYJ;CN5GPFfL2m`mWtb?f(&7BW=flST2-$X`ALFp`4Yt+?egG+^d4 zft{7}!T&m_A=5CDG@Ut%`reTW?6b9@K7zrE34+5O;OGFVyd6-9-x(vVDtO}{3t-*u zAMW~P#H?SJMKLQg0Sd1@3XDh_5>i310YJH)LE#7;BC!>KNqP5Z>eulsIEggXRfXyS z&XO~*ILY1JhHO2@-N2?hBiN#R@JS@?BD4TU??S;sKMj1R&#wdi^*&_5k_0~7hmr)C z2N-7n6W@>Z2P?Ks6~H=wnpT&?zYh7}w@tZu6RiIBfe6yH4X}$F8o_4sK@WAo4K6c6 z6hx(fzf*hk+wT9qE7jUS2qN7ZDa%S(z@k&Z%p(3@6b4=Mk3=b~Nw4o?ck|tct1;JA z$l^ZC`~KhxDI`J7modL})~G)}8k=lp?7R#% z3jb5?%|E>wImigg-MIALYK}B1RS5*wANAW~5Wl_lDm#z+VrKG#>zL3#h^`5RY1Dw?ga6bj)2fw}{+|X^fdOr#9OmFxn`8~k!=kOgsK^AsEeU1~MIg*b1Q6-MhyFY-L0gYWau*j*^dt4;cRX(q35zmv>l|!}ZU0 zOd27I`>-VZQ-4S+YGCqVSqw!u!kxhS28#7tz?^@5LoqBf;hVfHXt=)RpX`VeZDDoy zWfDE}-zW_h@bhuf@|u5E;=fD7|51$pA4r1+Q2}eZ?*wLK!mjv$9sf$ex|IRGzpWED zDH6KM_3E!ku~&w9gb#&pdpZUOSU+XULUj!BCLD;rWX?Lu1lZ)K~0!PK83#;?0a8we}KL$c7EsqG-aDo_6W-ke7Ty|(Jh?mkXT5RywOE&^?x#L)nC zNiF}1Dsy2c$N9rmL%8V&1YUwW@K7uKzt5egs-pqSFM-C#0(ZQu{G1vF3hF}6 z$>CUTEJQCKtp7;-2iN5<$VZ(;(F%lVHONbWa09Yq9e}&>;>+zE^yv3D1QE8`hviC4 zk!sn|eP0&Ihb{CT#&)0VUa7gjzk7b1|8~a>OEv;3=WddwC!xbeq$6mr9s=vyu%GPl z_G4{NO%v|&f#BQ#y(-nz$F*a^sg+@$1Csk!=iKMyomH$|Dl(q<>Ibi5AeiQyTp}Ol zD&J1573T@tg}%_B_5d}1)Wxu-timv{BGXu@c%Qy><(4F2r%%>v#!z>0!bEYmCj$Mj z6#D>!@77H;!VaJi7HoTqu3zf&_;}ez`T70ko%SsPt`BSVQ@2GNx|AeLRlM=;$jaSm zGp)&(^NTvnXqGwCgcC_r0XbNqkWJHq5XcyAhmJFR9JH<3a*H#mh{5B^{Q;gSJQb0) z?Kg_aoyEYVC?d(v5JRShUKhA6(AvluyzQPzjb-JrEVGW07}lU_0ua zww}0H;kwSE=I;}+%FcpX2l8U`2uQ&U17YEvUOveL*P)Y-%RRCek8V{tySLZ(rRfQ+ z@`+%_RU2e2d~=%c5_xTwZ!p0Mn)mi#36P78Jhr=P%5GjHrHKYbd-H>jNcH z2WwIEg;7$BP7w7-u)cbLhN-AgEwRjQ<@9mo({w$V6BF+l8zL)~Cgr%_zn=N_gKJQa z`IJtG)ls9fnoy;=@#;7U%tzV#2HjI17E%^D7xj~z-1!nG?E@6vv`>UDf=q<4IlmdZ z=oI|CK*OLYbAB4LL3oBD1aHA!gd_^dp!b=4BQK8X_d1yW$;gmn@ssAMNQoSy+VSH` zmu@@EB)^qDT-5#sR}wLQoMGNTp=Yo)IFGUDu?6n^PP_B6rc*0ZO6G9NcP*ROJuisg zbV*Fs>ju}xh{&AGobkeu)wPX%H@qzT=RM5v(}X_rpS($e4InW*4Am83{As(>XbT&# zl5{2>tAaJnzVNCt!Mfbt-fh8GN5Hn#d%`{-jwj^1D>v7!fjV5h8tG!1FK#Gsi0U$b zhjkbe+Vw`eGQxMLPHv!?>SdN;^Ai|pas=zavVxpB{4i-GWKTEB25Z1cAh`|;{j7!G7{fY*AyY;>qi{hQ6;-^OVk{Rz0CL6}Zh(BxzxfGu^cBw5J5jd}`oXwgA(VfZgEoNqF->+wU zJn8}V>sE+gwN)gJ|Sjozx~FcOkt|L>pSE_v%55cLiysMRZuW^P*;wDV#n>4`N8!ntQC&E z_68ioz-j7jH_e>2$sRY|Qm}>HLuyq$AHui`3mp|52Zq0JmZgC4Z=ujn;X^6HAtLNu zL`LPj;utzMRd<)xP8m^ua@&uwQM4C#?JKZvV z`&Jmm6oGi@3AEg~U~peM07Z>~AIE9tJF$ZFoH!iSedS6r!n~>q?mJj}`7r+u(je_^ z;stEo;loi@;0&zV#MjoQSOW#nD`_sx!vVF*^jzxXYld1=9)Fbw@>ntcOx1KOByf09D!@VEhqB|;lMAX#LUXMRQlSb7P3~X z?jaM}A@zAx>UBoFL?|Kc==-Hxxn7@jUL?!D#cDFwuUWj0(rWQW%e4-{*pENBdSpT( zsDdUj2f=ecoCgV0vo~}Ap;d!VwbcCJviBe@pRx`gAi~|+!EBPKDmA{%P41&)IqTrQ z18UA92PR^j7r&hI=z72Di{eZn8s0oOM&b$STpegJ7lv{ujUy@_=7y~BjRX9*1iD4N z4e=o&a|Ee9cRd?iyvO*qO}E*IpxP?3%ztnh89p0p>KU_VF2I-n;Q)gGNE7{Fo0Urm zK;Zw5lCUH=<}C)`{9&-KTUZV)v5Xb9qyey?;=MVqc0hrtS-7*RDEa=UxzHMjI8Bn zoMoDV!QwG;LrgY62Og8aV}NH;H5M{8xKVzQ|P~ z-_%dgSoF*WhTs`AFM3B;j;%%Ko8!MSLrQZo=;KeCOf<8(6TJgFc$b3~ zuq7wnQd4(qjX$O_ho|c$h(i9OA_UfjkdG*SU1?iT;Yn#!U4QgJ`qoshW}kxL+E9kb z$Yzz-xzsts4_dm$Oi65?YfC3`&e-ZIvTWI5TA-$eexPdPN9etzi-yk*0PqPdCfR!O<28j z{#;gDa!TCS)YSK!oTA~|E zI>1L!$$Rr@0h2WAptUwxBNTx6Qy^UjwrYy`kW;1OO-}&UKZ*dWU{#^wXR|KNBVq%R zf^OBKAuspW5g@!dMpc=7#NgU7{?pmA)^I0k9l?p7^N!eMpa_+d- zi+neU^a=gYAr&dsW`irP-bHK4LM^yzZ7AgAlv8-w$9vhE=_D%Q4QUtF=2j!k zTnwXTnBMA8>y$Xj$y<<XA;QF(zG;Y^Y(MAT*}Xck0Fi>D^ah5kk>G(8%oh z{#<>f1s*Yjb3=EXv{cR!W#)6>^8+So%i>HgC^a8`ho>9kpuM8eFc;=Qt1qz2W9Rdq zLhd%F)d~xHA^+3yUk)DUOqV};C+>&c`9*_o2#_}v12vO?{KsmaAc@t`_ZPEE7)^v& z&EAif%7Raw_*(ivdFp6k^^n*`nHHJh$rpj_we*Pj#|*=IRPj`^`KJt%4`nQ?3$>~?agKa^a92cyUn8=kZ9e@wvk%G(X6PpU#p`cba&I^ z3w<-q-Nj2~?q`UNmXRtS=rhr>iCIxn2W}Nk3bI?EF6Mja8DM2tN0pzm0*HKGQbX4r z+xgZ=^%@pNMbs*VHfd^b-Y&{^WPpI3C}2a5N0y(sI$*N*YLqhJcrZM_t$!Ww)9szh~OAJBKJvV}`&*O8^xO>yRD zpmmHRRQ40ak7ZZG7tCJao7!%&+|c^TeO`h(6=&Xb9EuG{Q%-s3#NcKNxPV5QT`?dT za5m1|5Sj%%(z?2JkUy0o^y$-(`*+LF5<2A_nO(cwBy}z1gsi!?&YcOFZkPiCK8X1sRs=q->9`#vvH(5Ka-xEUq|lcr44(eq1dpJUS=j`|MUohMcLHxHQ)Rx(35 zsnYa?2yt);N{A*=RR>gej!dym@N|{g*w2;SbKE3-=l!clkCe@J?uRHzTbSqGPUibq zMqAX$=it|Qz}&Jri`$Z4zI$z(v&uG>h45v7P1<_in=!<62Wox;%vu>7T9K{Rc;2tD z0wmHid-mhamPNwpK!eB61H5Faly_Mkom}x7txS1o*3dTcjxjROh$wT3C5_%D9_2h8 z=|z1c?zL4Pk*uz+jJTTTcYWFYg=AH%R1?Gg%lf?$t_k12uDw)@>Lko_vz*!HoaaPA zxC6E$?I)?vz z3`3Eb)`PoDx<%QpG0#2P8v29lYTDegvS2g$oM@uMC%e=ABJ(dskVCQuja?)%&3H?W z-4J(u=kQu@&m$+(=UFme4r|msf1a8#?CP$xD)9K^koUFp=paWG8xwDiO^C49x zqX#!y8faM0k#1g{j|inPI#a2$hz)jm9xAhqm8#qsIw?at51$5V-WMKFeh?jXvEZ5CMSi1et!;!N$ zJUWQ&xsv)-!Sx~7wR{>EeC+zBk!N5ntT7{XUJ#t*u5q5|I58Sq26UAe5#b?6D#N82 z1|=NRQQHwT>jlJ&Wf7>Saw-5eJnLX-BYCacE#mr1{ z&l%2rW8j#p@d3`QV@JFebFth)g;qioNF2b9KjEeWP*NPCCru&ak3~=KDmI zixb+NLLAv)JPr!#q?$f!J^PJMk)=WFU08>XXWd?bR!4X zJ?gO|7mgpfT4~ySY?{?VsW8e9Pu0lv8S4^*dqK&HYAmosSy+94hIk7o-TvN`FAhFR zs=bd--h(=i!=7{SpxkU!_vM-tgC&WmHA3uHErMeS5lH%3WHf0D+ksJp+sxhr`GFN9 z>U?hYEnqA3srz_SH)V%i)=wh8F-IisyWJ<2Qe0 z%TmolN$W!p_U!@L7{xcX0X@sfRmqPynHR8w*ugi6^g*i)!=W4fgH>tq|!c(m-H2Oll;8}vW#BNewa%X z?)$dhyM7N8p7n!El4oIc?g!T@Kfw$F;U8J2ddfF4iX$kC?E=MF2CX1Z@DjgzGND@s zZtYcjwt* zv5AmNs6>1PdOoc%Pp(AZd1CRd#~Ixsog67Uwc;`)I`?pGa|zXvMM4d z1OxhkSij1wERS5x%cx=FO{D^Hn|npo&zd?>&9`Xz8ViT0Gh;Kq_gV2mnF|0NwZ8xj=o|-06F~b1SHnZ* zp-C894L`9Wa~8{-A*yYmmHk&6GDy?x)BF+`vyCR;tODoYMl+Yx zzArhe{^{}y5d*yd&JCk|bnGH$rUB(nZiJuhZH4>eim(e?gl%J{GowS6pxR<+NiATS zs)HmtS}F0Yq5Zuqu_`FecGv{qF(!tGl76>DXd1l3zbFx!k%wYZg#OhDYN1OS^9RlL z`kS{WyPi%riE`A-dAU*DCh@U)uV%oAVkE1(1zq=_h;SpPTAu`s`$rU{&vghew1%>G zqiOJ#GkU`2eiEuLo4XzMXyCo{Y=DGZE#T(fa=rrU6##>RU<9t*6e_^Z?st()TnDLw zR!+0a0MwS6(Caxwn_vMihPG)!2GdwygCCLQvOYEQPzqoTR$L4>7=ZvIYZok<7@vrS z3Rd9jD<#AVm~;1x6reiR5hP4VdxIRlKL!Dc1!_F>UNs%&Wv~zlSz?F(Jb^pL=w$VB z31>m+-bGQ3WL7>%m|ITa@PH`#%juXDz{kAJe)!=O&P7NZ{(uL*@N}UYXG}5=DQgk9-R;S9D;6A|2`yDrRR{FT8959RUd%(>-q1IF1;Ha)A_!ZdZ96JCNGepJ4{V|i0Qlp5% zx3Bx3EYnNm!fYpa3TJa0)OvyNcnpA(j{&*fcZ!lB9(ph!aHskoePf3Va7DiyJ^|Tc zI)&@K42{*oqM*7)TTKI0Uu_CE{2V{|j)jy$d_&e0?w1`?IG!;8DQva0!v)fWm%(qC zV+emr2Duwx7U$Cdvi!;Qpok4*lGP5po&U{OIsSHie8}$dTX#7uQD-gtMnYYb#OP*P zm})BUB1=-clic!zM%b2`a8`dlYhvk^q5Y$b8Jol3zWPr?0QnQEKftS+UY7t6te%t2 zFaiksxbJ}sX-)7Z)|i$G=qmA3tak^VMqkaa&L9meE1od;8RaX`?|TE!QO6+a+xQ1# zMUHyG;+On-H8S_nQgL@wbIMP1WNoc}73GONkjBZi96F;KFT;$Z_kC=9&8zq!#3IjZ zX!q86%k9hc^sXN`d$YKQ+1e81XV0giDoy-BPPj>T!zap05-cm( z^u4C}d*v{zBXjR6J-IHtf(gzU;{b~rIQvHRycO0P zZANi{!>NHw!U-Ofy-q}X^8X#0!MYHeM}G#KM0L!dng}2k@!c8+(xvo25dY zm2%Ow10?GLyvK?PuNPM7MCg`mC?&m_9ry0OvqG;FE&Ze8Kpd!RSM99KrdPqp9-i=_ z)dKo9tOa{DDg6XHaE3NOaFdjsd|cQY+pv|Ei16KRy9<50Hf9LvuE?9id_GiZs?aBw z?&d@E3OgCHy_;{7q+NV;T!hxD6R$I5@SZ3nxek-Ew{}Xm4l0ZAU5e3V`h076ft$Cp z_+pHA4#QY^Z`+$E=VoP)1&VqRZQ9D%9+^|3{h!#p$Wq2Yfyh^2UkNKAdE14|1i{ll zKZ6a;AKiyEUJni~t__;I>3QqAZtXRj^9`NO*-7;fRMS|F1U;;tl}jxTWiD(-cZ*mF zLB6~T1kKzQmn{v|F?Bv3&cny_lfCW`^Q@H~K6${ET9oWLTY8wLMXAnxgEi9>u-T}E zD6yr?SQN0mNc3%7CUGe#X4@5m#14{O+>vCfK@v$;33{%;cEI)8SD3qeNQtD(#@I9^ zg7F8Qlnq|AvL={mv?euI<89w7i!1ld%@hfXJT_G|J~Q{}_tT5oMKN2fs@SDb12VFe z6>i3oOtP8)G#d7|S^O&G_I#`<-@(o_6-U&SJhn~AN#3cwh}*6*7Z*uZMzsU*S}y76 zUc^qoIOk>pOQ9RM0hq_ zbl+g`_?bx?FQ&0v=cKQGE6=TLhlc#Zw8u~TiZ>=(`0FVbXbNi%B^7>(z-D33iCX$1 zS{Urfn2&U{b}=GHYO@`;BvsWOme8`~9NY|(RpUdCTvj@48kdnA^mIws3HzE;G`1q( z#*jr!Bmjma;5?(0pX~4 zC%#5JyYkgQ_PpQxg!wbC#=Gf>d&@}MV!}E-Z30(`iB-_}#*}i?N&G6sckpi5Ct=+D z(XkDQ_=A>)`qh6lMtmA!W~8D@e|s1Rd=jpBH03Y3u6ay6MLDb_~4R7 zk&=d+IXlW8g(>j09KO-{`LO3WN1TexXW^JS`$I#vi}c*ggdx!*k71?I(|e+RYX8tm zs@m2`zFiS__Dv;jA#RbE?cJ-xb)bD1oU?ZPl@rB3-Q!m9Z@-WH0lnSK<09BK{>nZw zaaxG4Cdv}lV$a3^8ZNbpbwMM9?Y}Tocb{JfyYyZTdy%?SUf#wb>oj%C_5(UQp9epU zjnT1J_3vVq2}WKh;Z8@T+*h&1M8PZ z_5{xbe3>@Yu|2vqJ8XFT1u67?NQJCJ?;|QV@m0%;+?%Q{&Dr$u+A7b;ZEWWaOG$Pr z-#V#VzlzxDTkmx%6JK-*DaG)Sw0T+3QO7nlK1dqi7}Sqx!huuzb?Mk+$=%)hWyyY; z`6hJfiYsGgOzw+$#~Ig{@_P}yplHB51LF*%dxT?^rWXiGq9RnUa8B3OT#{diR9ouL z`lLgfhDlHD4yEsYDEpdG7j0;8Q6h~b!hC;ujNRtQHWz(7+eOqsT)OI->iqBWs!xy# zqPaslCuPs+pWeKXk+Q;;eqzKxHIDDEhB)v5nt;ft!cxl+V9DMDlxdqxf8uKOtT?S- zT$s1Z%r$v> zar`^?l4#dFJ+pOZs*u`?&yM8 z$LwuOfAuITYlhm5#l&&|1h$sm5d^DHt9x>bh>f#E!9V|I-C; z(|0oT7F3Jvbmms-)UVSiTBeQaX8M#SKYq}6sweOC()7%JOO=Cf+h2ri{-J3_NU*`B z`l?H(lWgy(1rV4ZOm!|AVX-Nek~<#@IMT=+2N5NzO^fzj8TaGi(y&t9V@`V8K9p?k z_SF5AY+xtt>Pjo>FaQOas-be?z5-DKYG83KAq*u7#fowVeJAup9rtMFIr=I+%4T_X zKNxEMyd|=I-IJ#9%+MlnoN#1~xCr3uFEc$Wb1qA}IJv%eYjI(->Br|%@4kOk>DzNG zxb4yGOY5~Ze$JY{kX9v(8&sE?Y(RyoXo{Y6gfx6Ty!NgHMwW<%o|rjaIjmL0KI!zO_-^ zq$_q=qDJMP#*jCYeqLMA;CDx0QRh8K-hzzU|Laau21 zt2HcRf|T8Z4hQ&77G0YEeMjK7yVCF0X>0OU&l#o<(nZ$gzgUVGl{{(k@|SudJZL-* zb*^DMU%P(a>7;%t=~5`iIWFapRJp#K$)2;2Mx(7EfVBI6we(LzpZFI?h!W;vuQk+Y z$WwE@E!XKtbCAI=R^f#$oEwS;MYGC?n0jVc0y+-D?VUe@c7&5DR7@LbV!!mKBXCv9 znuD?NM^NzJp$QS8jn>+sN9RK94fI zGfE7Mywg)0S5ELWyF#e1U+%lSqieC&idMEe|Hl#1=5_ap#FIQ{-mwl(ci2L$nc0E&~k6+C?yptwk%&u@<43?oV`{sDNpbfBH) zdRKx(p@?=30C|P3VS2#K}>I70w!Y%H~_yK2k32@!4*&8rpq_o zFed04FbB27q;{c|la6fs#4JFexJKrGXSViVSS|jm(S9}BuSWZIrTx0neqCw5x(9#W zJ@~{_Bg=_^V+6XRcuGFv!p0A6N8`DdQ&-{|OJnB-)XIwRzq7OZ#+W?|tx=84jL3|t zJkcBzlkelk-EMvI^)EGw$3xDKdqDD6-G%$8`FE^#$Mvqu@!Gukpm$JE&ixON7iZi^ z8w_xmj4O82E(UyZ`erTqkau*I?*2G`2hC|SmY z-AOkp{W;dv)pB8a&={V>)Daom^b%eKoZ4|ba!J9KXwyKtrQXf_Qb$*i8FzavdO`r1 zrhoJ-jyC)L*3M{)pZWuA33jy6191C!-2vel#-z)jt6JRO#?tTrn?v?@}df*?Q?)>+4oZ$V}FMrj>-)S3>0!%3(k0W**Bo-X? hH+nG?>|ay+c(GvZ@p?n4D`|kN7W_&5ZmGrV{{U$@!h`?- literal 0 HcmV?d00001 diff --git a/Languages/ja/16_Overloading_ja/readme.md b/Languages/ja/16_Overloading_ja/readme.md new file mode 100644 index 000000000..99126e184 --- /dev/null +++ b/Languages/ja/16_Overloading_ja/readme.md @@ -0,0 +1,66 @@ +--- +title: 16. 関数のオーバーロード +tags: + - solidity + - advanced + - wtfacademy + - overloading +--- + +# WTF Solidity 超シンプル入門: 16. 関数のオーバーロード + +最近、Solidity の学習を再開し、詳細を確認しながら「Solidity 超シンプル入門」を作っています。これは初心者向けのガイドで、プログラミングの達人向けの教材ではありません。毎週 1〜3 レッスンのペースで更新していきます。 + +僕のツィッターをフォローしてね:[@0xAA_Science](https://twitter.com/0xAA_Science)|[@WTFAcademy\_](https://twitter.com/WTFAcademy_) + +コミュニティ:[Discord](https://discord.gg/5akcruXrsk)|[Wechat](https://docs.google.com/forms/d/e/1FAIpQLSe4KGT8Sh6sJ7hedQRuIYirOoZK_85miz3dw7vA1-YjodgJ-A/viewform?usp=sf_link)|[公式サイト wtf.academy](https://wtf.academy) + +すべてのソースコードやレッスンは github にて全公開: [github.com/AmazingAng/WTFSolidity](https://github.com/AmazingAng/WTFSolidity) + +--- + +## オーバーロード + +`Solidity`ではオーバーロードは許容されている(`overloading`)、すなわち同名の関数は、異なる関数として認識されます。特筆したいのは`Solidity`はモディファイヤー(`modifier`)のオーバーロードを許容していない点。 + +### 関数のオーバーロード + +例えば,我々は2つの`saySomething()`の関数を定義できます。片方は引数がなく、return 値は`nothing`、もう片方は`string`の引数を持っていて return 値はこの`string`の引数とします。 + +```solidity +function saySomething() public pure returns(string memory){ + return("Nothing"); +} + +function saySomething(string memory something) public pure returns(string memory){ + return(something); +} +``` + +最終的に、オーバーロード関数はコンパイラによって異なる関数セレクタ(selector)に変換されます。関数セレクタについての詳細は[WTF Solidity 超シンプル入門: 29. 関数セレクタ Selector](https://github.com/AmazingAng/WTFSolidity/tree/main/29_Selector)を参照してほしいです。 + +`Overloading.sol`コントラクトを例に取り、Remix でコンパイルしてデプロイした後、オーバーロード関数 `saySomething()` と `saySomething(string memory something)` をそれぞれ呼び出すと、異なる結果が返され、異なる関数として区別されることがわかります。 + +![16-1.jpg](./img/16-1.jpg) + +### 引数のマッチング(Argument Matching) + +オーバーロード関数を呼び出す際、入力された実際の引数と関数の引数の変数型が一致するかどうかがチェックされます。もし同じ型の複数のオーバーロード関数が存在する場合、エラーが発生します。以下の例では、`f()`という名前の関数が2つあります。一つは`uint8`型の引数を持ち、もう一つは`uint256`型の引数を持ちます。 + +```solidity +function f(uint8 _in) public pure returns (uint8 out) { + out = _in; +} + +function f(uint256 _in) public pure returns (uint256 out) { + out = _in; +} +``` + +我々は`f(50)`を呼び出すと、`50`は`uint8`にも`uint256`にも変換できるため、エラーが発生します。 + +## まとめ + +今回は、`Solidity`での関数のオーバーロードの基本的な使い方を紹介しました。 + +- 名前が同じでも入力パラメータの型が異なる関数は同時に存在でき、それらは異なる関数として扱われます。