From 9a31a61d2c61ecad785992257b2a0a9fc95e8b97 Mon Sep 17 00:00:00 2001 From: davoudn
T+PJ8vdOVk^`-0$;m;^!jy|U8n=72-&tpuVz%mPkgRz~PNBW5{)!yMJ zOluZi&@rY{G2iLCXgsF>Ddo71X;UJn9dVS}ZF8wVEYh~>g<_7QR?E@eTPVOB?R+Hb zekcXchh?M;qpzh!HhCQTJ(;4v2`|KZr>JA9a=7+zLhjhwg)MRucC0SUHjy|~_%>Xb zwcpjF_S(IBPEphAcQ~e6(!*bOZA$oU^jtz?Ev8+1T7n{xsIQm>@H_?2a!I^t36fZQ z0I_+S?&vFco8iz1LLWy=bfhq5-QE1h5Js{MDs9~THXg!v;)0|-C>n-*QQb{nAsF#A zsKebqC_Q{LLHRg2#P%R&S= nUnH< %He$qz4nk}yHU`P&pb+TTd1f}_|7?5eX*Bw4Yj)L=*O;j9|L^IH4#z#m zhVVc*FTOj4XCeQ;uuy6IqgASly3lmE9|`g2d!G{?PR3G8JLQdxyoA1T9XB< D^#qHT!C}iF;HOQwlAC;xebOnTZH_$sM4QYM(#`!L_+5 zD#kYpcAL}0kbqV(lhMYx5WTN6HChC~dp;mzr>^&`^>bKIMieDew}U18zN5P(Onui> z?83dVTEgkrnA9xcTig@ZEMYR5A882*VtCjsAstnV-4Y&o$E>i~A)Y#Yl4dMR=c!@@ zds)KgNu;6}EWvXf7ogb+HdPE7v5uqt5n`5ORcl+veTeyl;6ib 6>*BvTlj9oAw2tGNMX+i7Vp}3!t22Hafumw zDU@_H+D*fn?hn57X`(-2o3#pRtDhT=4LdhKchxr2Sfq6eKOlxbZZ7ZX=wImDmn1Tt z?F)wnqI&z_qCRF9bsqLVoX30k@VtkqK0{L2(wwn04#UIK;fJBNW06QWid)d1c#hmg zY4jruGFQF1yv9G2`t0;qL?D2kX-cG82~jCaon9qX^%UB;6W*L=YtV-9LhNkDWZb3z zF`?7Ej@bhr4tQBy0v97q##&?)hz@C?Eq5_SqES?o4^##^%pxneNlXB^h>jJanjImw zE|=5~olrqSHILIQLz@{^+%ul@W>NvPfE9Z%II`Q6V(r_Q&LGx-P(TGq@BH^q)Ijj` zB Nd7yTRm4mn8g;hFEzYja6#~p4z^t}s$>X@>+}KLK+F5d@ zRq~K{OCG}|=fqZW2Q!WpZ9dZ~InASFyW7#64Toa`k<)S$un|7H)Ritu)TZAnY08rw z{G$kXBb6>HphbX(x1q?NXbO= uTpj4rLGQ`+N}wA)%C?M;Nswz_Szq%Ckr({(O7Y$F}VTk+-s^6}F825waz z&C?xz ?XaIfJ`G~S@Sh+KlQTXG=h(l Q`dUTQU*zFo_fg zgvBJax0r}%f~Ms&bVbAXWq<8k;Y3-C_{6H}!=Y$;BbGti5E{7OCWeloP7#10QA0S5 zo{}koz`=|tmJk%PlWJrh3F0n)H k{Aovwi!n)1o6N+iZ{MMQDSDy)K_tdZ;6m(h#O^6pid7dy21|DLiY `ho9=@K!hE%Gt79w{RR#KoI! zmSefV>6Pd!NxMF4Ebc&u$a4K`mMkNBeZRur;M<3q;&76J`-IKDe^ITG85WU1%g%oZ z7x{kp9EcW6mzwtkQ`>PExrvqzmc{Yv7`?j_1E|rz@Y+T>Qp0;L4==!nU|_jfD7;A& zek#huD8YC|nb={IZ@2Km;yVgt7y6nK1bnuyv1%LMh4-9D;|lLk0uN{mSTUf}vCyI< z&KjktaX|g^#LIH6YtxT|zYCTw%0t@q=u`W6qW*CB2k4qqhT;(=P)2-qKzsxXwSg!2 zI6RHOh1YH~YP!N(-!4Kw?CGHnNVko$eM(mgmQ2}(g&sargJx0FCQ?HoRd|!`u*N;T zslIX&6Qvz5%uT%QEE=s%C8=mLe2@NF-!L{gaZg-sOZ^9e;Y3g*?R%S_I4VQ!9AnH= z7FH#uuqWJwo!}HkMlT&t6KVouTVn8%$?Ojv7fXz~T+#8;_hEO>Orb@hGf*-_HEqsH z5~pfj={9P;spcZeOFaQgcJy|;@wvfN#saT0Y-y%Z*Rp5632n1GPt$35Y9oXkj^1-v z_XVV@h4p -$BbV${2^uZ?!^$1eOv`8Ua^XbkPHT;uM?Em?6>Jm06CMT8s4F%G7B+RYUlwtR z5|o8-6KpfOYPYB^H4vMzcI`#-lO6nMCtJcjBVH0}d<;$5?E5#3HW65ll{*bP<&1&P z*ohmWZ+?eyL^`t{rX7nw)UNf2I#HEPE3l7n*crZNp{wWwvbl!vC=_cS6fJ$j!IbsL zT+eOTFWfX;D#0JLK4&EE_R-Up4KyXO&%ITI`LuhaCZkH(R*{lLT@7f@SeeEb4nKvf zYUtCx=F|!U67v*hRD69(eadDUdzfr7A?)iq=Tl@9T091e1n6tZ778I*^mb92Je=Ao z=6XylsvXesTVeWEbd 0?)U 9DK8SS zTR%$Z>ySYHr7unHW{4#g8a-sI8p8DJCH`TJU2iA OA>C-mTG}P>-$4>XG7oU3bz1ERk49Zi;@MbfiQ}*M;gmA~Z+asEIN?wkxO7%#9l2 zCK81=a)aY>k 3+13-bmUe zk#e&d{oD{v#-r$mkHfNDxYA9jVwc%0(q_ffR#+pxzDDYs_J*P=$+f|+3qNRXccqg# zNz3{q!m`X><`U^d!qTVCokUI&&Du+H7KRi2Z({{vYe*W@1U1ySd{hrG%s|BQm;&y{ z{d6?+46+ZNPG}fx!-vTMcMRX~EDGY0@qc)~2b&gR)w9n&`TR?mwicDYhvbe*WvNQh zMg@dYO%O}aszTIg3usgL2w5ZAXMwdgghx`T7}0dVBn%hT6RV8PRH(gEZ2d }Y1YwJ&Mww9mPTDG+Q(VZ`{6mcq6;vZW2$IFJ!IH62=zho4g_gYgHwZM23y;@ zqnjL78`1jx*yVJjNHz5%;&|yXN~jgs?ZULy_1Ss^gkA5X`K@F4Ur&n>C2V^kwj`Yv ztjXeNOa`;XNNp?FrLPF0EdY95FFOEjM69m92@jR}fAB@$$ZmgiGE$9%s4q7*zLm`O zay-~@e5ZR0FSi7-$#%=>D9kNE%%aaLE~lSpDNZdd4;9bCuZX0kpP8O!j4dt0Pq*O5 zdQyw$6qlP!(&xlrWn}~-HB^yWePvCss<_(7mo&9vW@KjM#%Sl13y+%|PM9Q)% L~NiDCLJp(nS#CX|%VrY1(`O`F|73HZjt14zAby- Yjx;=v(wxcRFaR9?by9nPlT@*4#gTK`83U%XF!vbnhuG!1ky=z_J)&1s;QKh@m4 z3pXM{80Ja1DDyIC5$H#ti$G7sAYKJ}E9e%`|AOuX?YyqJxidB FX^4Rr4_&CUBjhhut7!70rZplP5hKyyLg1YHW+>Ceaq+81;i=)<7 mZvmYO`UvPe&}TrGgT4Z~9`qg1M$k+I p^>C3AYn87Zg8&WxNF12lN}zY|uW>LqDL?L05rZ2f7LL0O&5z zq8FN*ld&85E@*$yPeCVu{uh)!L3;R$&=Y7+&^4gffNll76_dnX&>f(+;ATJ*=o-*D zFM$vG5$Hb9N!a%5jvMDIKr=x%fEIwBfW68P=((WFK&OGO16>Zf9rRhy{h*oHjO&hj z scc4Ge{-EnXhl6ehoeR1j^d`{mxEAv<=uptFK&OIsdKdNt zI&(Yp2f6}uBj{tG2SC?@_QFl1LvTqT3$#1vbkGveMW7o&SA%{Ex&_pD5A_A@0-B6l zSbahJf)<1NL7xUK0c{3d4cZ6SX19RO11(F%IB3MU0`2@aj4RLypxZ!~fbIib3z~8w z#vf=J=nl|a&@VwNLC^RA 7zaAEk6~O4Iu*18bROth(B+`PzoQ>OD?xjlf=Cy1 zDCh^EQ$fR^^FUACf%Kq0(Dk4NppBqKpiQ7vpgm57J%A1cz2ZaU1HB4#Ip{s0>p^#c zHiA}s1iLv6egQNUbOY#g(04!=fM$H$+`JNWG-y3&F6d6s<)HLqoJl*85A+()BG8vW z7lG~qT?IN1S8}$1-UOPAPg-mOoq7iB2Xr~;S)Za`LC*#4g%9$SfsO!u6!aR<^`IL; zKL @LVT z3%@N2Is$Yg=ry1dL05p@On4gFNjT{L5e~WwbR+1A|9~9OG|*n@hEWc>0`z*&ji4Ke z5Bdh^0nkpLBVC4J90xiAbSmgIpm&0<0DT8^BWTwzkPoyN^Z@8}per%Y)PdH6t^nN$ z`ZOqhQpVU1nhJUbKGTr}dOPTJ&?MZdUIcm!=qk_|pqoJFfcC-svm7)VbOUJF5zr54 zWfzQl(4r$T-{HgAo#7`(gZ2k40-XSQ6KEOeYS10 XmpsV4hlKzEy!fy-&U5s%(7IZIY5ol+O- 5753CcY{Iwpo!l@-=GDc%RuLVt^<7>bUWxS z&?eCDL3?0acK$c~2 (0m#ERoenw;v<~zd z(3SLzaY!#r`{I>wRi2SBFD2o)&W9#1O^`UIG{gUJb2GXElk}k}M9@7(CjKfP!k9!l zqf5%zE 7h3r%!OsKVZ|5hD5eZU(Ed~E7@JsA`(xFtd zL21?@%?n6Vp{FUf%Aw!6KkSj_<}UU$Ha$0i-vk+Or&c{Lu=3N6{ !6 zs{b|M4@UkG#8>&}TKpB@=Yfx@&f-tC_#45`1^+rbKT!_oRA4*6e**kywuGOVGrmEZ zXtvY`Y0i1n+ZM9H?+?D0Efs-(T9o{Yz&|<)e--#0qVP9?Pi>gt(8HxdQPhvSz|Tbf zZVo#+!nBj5LlA>M=4~f^z%KybYfNW@p9{X%m@Wc;9{ADvVKLHdM4D**um)+8ANQ{3 zR`3Ud?`F?r4|~D)gCA|or5uX*RmpI%`84n!R(xf%Hk;1{|K>(-o38|aIr4ki{8I4O zf$wGWYr%gSd@q~d27bz#=(^sIGzCZ#P1ik=5nmvUr~d>0R`9)Sek%C2QS#3Ne{K~1 za`0z@?`6~L!Cwu&mrXZnRod>EL6#!ScbjcpwY> z%fK(T^Ao3=zGpi452^fWJlW>31>irZ_-Z`a q@S;XF|AJ3QaQ&D~i_}_qkk=;(nUME|1 zxCLo0h*F0&;3uOFSn67~c(Ij#EBJ>-sUz)Ce~&tN^+D$&4C8C?z51{}_#a2%PXPao zD16$JAY1ja aQGXET{jA|4?`Ds5UjQn1Ho3bTbl{-PKMi0IB2dp)ZQ)|*b;L+a( z^zj_TG)dzT87o`%FYM5vxT9zYmD7lF24Men4Bne*(AFBRM-%vY;Lo=6d7(!6dvt~0 z0sl4!f3YclDEQsbS3(b}4!nLyMV_trBR=(2(pT8*QE6rf5uzRY!0U-Lt0~Q!wlvfy z_sDcqmsKe19;BOq_of_PGZB9i_?y9>=-|svCH^k(zXktfJKr{LlCVJk9{dySd|RB| z2mFnH@*Wr2;5Q=wY4-fQUZe7hz~2eJo34nzs0IG27WkW@@KYgw7x ekJ%` zZLJ6YGVs0p%}(&I_Q+3dFtG1?Irv_-L3QkdH1~VRAbvLZw}S6BucU%s1pdw7N3*TP zNb~Zu-nO+G{6_G-^soi|)VG_P&q8^okFd=RVelXJ$WL`l#)i@|@V#t;+SwmzUWg)N z0{Cmdk7hHKNV6kK8Y+j*C_Dez+h*wOvK#nbHbZBcDd2nQiq1NJLLI#JRp<<~34AY` z$^`#t$QS-r`2pJ=S^@Z@qwquEKlGOOJiiS5$;j_EW~i^$fnNZAKHi&thQ_bW2Q(s0 z9?B3pQge?j?rs7<7yOe*hT_}e?j8u_D8Gm`6rblV>Z76HU*^G21%E2|NvI=zLAO~) z=}#vqe@bV?!`C-A4?_|&O~~?tE5I)Rf25s%mBrr(ekclm2l#h@@1{p;!vXM@gYRWW zy>QlZ7x-RwGy?oZ;KQ9-^`BtXZyNYD;CtE8HQ@W+^tOW);12;`)L-?%G)w+Q@JE1; zuC)5lR{jp~Gr;%i;{)Jlf-m&1 yUW4Xe8Ny@hik89_6Qky$tKe zkH8;*_epd~MCrk{*PIO*VWb&JwyyXc2Alh9Mc^lI 1 eMX+yE&@LV@}F|>*O=w60>29Nt0KNxKe>3N@;8A`_4m@> zF7Shp?=_B-FmdNb(QhB-k8{+|(oZ({S4ELu1bzwlUVdN^_%}r {1EtF z{j&@FqA2;3pu{}zz51sQ_|!hH{>cXaf+%CO2>d-!%3lQj2jF|z_bTSQ>7Ukvo4}{J zrlq)gFVf9IIxjoue7s>y0pF{i`h$P#8{Xq+0{D5z50_)vdA>Ey%fKH8{&YJ(@e i@V)wR4ft1q?^XY;;Fo~!)sK6@Ukd&ej`C%Ym zsvO%qz6&yTA&r-ROoE{Iz(+V_<+q)i_W^$^_)we0x5bj#;1|Je1`uEMsdUfc%()2s z$B=&%@m2k7`d$P+jT^82SOxy$9`y&y*o1%X13!rOrhKVqu>(nZ4kJxJl;LGF$tPkj zCQ2Lnf=~BPz3S)(|0>kMD_$-E|CA`@F9yHZqm5Mm)!^@kkMz><7Vw84|0tw2bzswR z82nF>->d$~Fu>+0KDsaXJs{u92K?aDm^;&6zU|&a3HT?2f2W
1G W3wd)&G;M z{!2aud!$kJ)cS(|3HV<9=Li2?%n4roQv&{TQRFWM|IsM*Uk&~`$oJC!7VsYi-)k)x z2LE30y~c0ysn}zVBEK*AW24mH4}KZ)W0+a`we2UAfZshz`xb+r9!36Y@KdAY-va(Q zQSyhu|LS$``XyuYnm)haWj}qv--i5Nd+>hn4}kCK|G+;iihdV^|2p=cz4j7TgZ~`( zUiI4oeq)sUVenszl0UgGVwx!V`-1;|l>C11N1**8_ErATcD7dn{`M&O7lZ$G6#i=P zyF}@qE#UV9{{p-HCCVU%{8t$KAoy4cTlSeN$3H>%V(;^6I{uVw+@8>Jcd~I)V#lWr zGagFpxZ*J5?hYMy9cHZS(DALqjE|B!-rdRgPg2KUcQV#=T$o@OzfJD=I^HLDe5R9e z_hH+C&`($4uhZm#ixQ0c5;~fQ;80<|ynfNZFB |c%yvA7N~e(TSmM@9FKQR%%>QE zUM$|g*Wd|BYdc6Bv$%K-#TE;_4w1yDOp G<*|qlD{4M z5cCpv2S9sc;1hl+)~ECm`;(wE7%yX7`L8E|Q+Nv-hJVC( zKMki}3!?h;*YGUhq|b9tk^1yYV$kOc2%nZE0cCIRF@8DYJUtu7V|JkQH?f=&ma~xY zuNW7T0eD|Ce&?x9`Ip1dkR08f|IGMrwDdnPzKZcHx!iLw(UP3h(GnQU_`QrDbD9Ly z{7zpDOzG1Y7oU|vlB+R66TT@+rWbd!@b)FfuVML1B-=Ow0SBeOfN^fN5d=>9KU35H z9gGjq@K+c=OT)iq`4jre0+oL_AAt>(`{5Z9SN(M-<9iub{^4`rRG&0Wekn2%p044q zGM=H~M|YL!2Wt2N#xphi?~D)9@az;RXRwAp&iD`w?{cI}KUBj*j1SXry6Z^o8m{5# zh*JnZTf^^Se1wL7!}vKGPM;4aIp=ElbBvGF@Y4{VQTi+m|1IOAH2hn}M{D>r1dJqS zjE29&c(#V0j>9`j@6+%)#>Z;-7r@D`?qPdNXFH#OK$GO0r=?%TxL?DQ5nz&>ziM(W zXZ(PMzX6=&=V)?zBVZ?doQ7Y^_;?Nffbj_$J`e++ Q(eM(+FVOHefs_6RoGv?X1ovZi1Zr;h z#lWdP7iw~zVSK8Ff5P}h8r}_O$|UDv4Ijz)B^rJu5jn zKPP^4ADKRn(@$bKH!yw(&r>CgAAt#!$}MMH#SafKezYdPH{t+Fug`ZCj326{e+oGD zOPSW*E{FpNpRM5m#>+K)E#nm$emMLZ)hC0?ox$x|$oMVUPW?Q?_&toD!|4x$-bv0f zmLonF1K!JwuVj4|aQZW$FG{~(!|!6eoaJNKiq{d4OX>ZLtGMMB;G~C2tz9oLex-(g z#dwv5_wFy{KMYE*iIN!e7$3+Ji?W}MjE`nq#Vv=ODeF_M$zRNPNW<4LUZdgvV0?~- zcN-w(&(-j3#^-5x731?Y{2|7#((rAJU#;N>fQ$ZO{it ?b8h$q8H)wbf 2hV @tfkwN8N zfpX~8MG|8ZaB5erR?qJlzgfdi&6MevX!r%dNq!pag O|7Yit=|E(H6kMZAX_-BkS)$ntNNIAD@_#=$puHjvV%Jg?=_?3(= z)A08hzf;4943l#1((q-B->u<4Fuq*Frwo^Jey8D2GJcPS_dZ*uzgNR=W_*Q)f5Z5F z8h!x+Hq!s^HT*@!@7M4?m^di?N)5k-@dq?~AL9>d__%YWy a!!OlqnE1BGg%VP)9@an zq?|u!a!MJ0Si`q4{)mR3GFr-6t>M=({-}m;XZ$e@KMnISwd-*W|25-lG<-Ybf7I|{ z@KYq`2@SuO@h3I>OUBn~_!RUX$$3h{HvlI;vxxPn)(doD*A34`|B;-hH97Y){wEFp zE92`l`~c(6X!z;pN%_xe_$7@0S;K1?U$5aC82^igf5G?$4L=+c2es=t4Id1g^ia?G zIbK*J?zeOLjavGxj6bj8V{)YY7c{(z@fS7xUdHP+{3XU;((r#V{<4O5A1BLwMZ!`}u@`uT|Ua~ N~+IHt=uFCBwUX(&u9Enb}*`*cK|1QXwcfbkMS)UK5DW| z|C)y1&iLyZ{v~j#&sAKmS}zpmO1vC)L@#Vdh}YAMPiI`!a~I=_8Halpuc7BlIXhUs zT1R}%c!>2=!0D&u$@E(^{8h$Bv;5wienh@Z-;4267=I2p>Fuw2dl}!V;m4x_l>QA3 zp9q}v^A+MRda3y55yr1T96>Lohdqp6#kh)phE9?4-_+#)nen$Y{4>V4X?XVwq@1@k zd=%sFXm~Z_?`rr1jBnTQcNqUa4W|oiq@VXRyx)aVKO+!V(o3x)#sjDH?`!GjG2W=* zD;WQqhX2U;2O56SR4M=O8orqE9UA@=;~#4H`;332;T;i>Q~f{I@G}_Sso@hD|3t%Y zWc*VN-@y218vX@vvbU+MPvyr3Uo7#bhDbdtd%K45_ZUZZ@p@a~ET@F=!Iwxm=VnSk z`KyN*e@K(xYns% %}b@F|5-&VCJlp7HNAe0Y&e|GkE @TkD4jd|ES?NG5#M7Kfw3_4KJT1<@{H}-vdtec7W}zw=^#!2LpldM#L%f z5}yMHy$?9)`6o?Ihf AsW7&@k2E{ zvs}ta*6>FdKTN}qg(D)pb<*&;j32JyUozfV!>2><)V~{9pCedrv>qUQ75fu~lV04? zUjUrybA%@UMaH{m_#Vc)YIv_IDJMn4a~MBT!>?w%n}$Ei_)!}E0pr~@{LpGy?$H|F zkMUzPd@69#Llf)mc-GrIPJgVH{s7}WH2j8;EcaI$zLxQx8vZxNkJIpG#(Qb_nKe@W z@fx1TcyA4_Vf+LQ|0Cn68vZHcCu(@tIZ{8z43>(yj`edp+$FRF@C2uzaM**lvB_6F {^?2iutEHSYuFnZ9=WGwWl5u^0e~Iz=TDv-2BjxMkH=psHoW38I`w-*0o{zs) z$|+&}tNyx&@i~mE`oHCYC&2*7Kb)l5Nd@C4YxtXt_tEe(ua|O8(eS%~(|Ej#>vImb ztJeaFkHET +_h~W%_p*S9Uv@@t%`q!lyX> zHpcbyf&q6(Ir=`~J&gaA<*0HGTPD+gz__x9a~c1Uab<@Mj0bXLMU?+M?oKHuJ6GZ` zd-0mZ_*;yta@R2aA>+z!zXwisHC)r@$h#zdwuaxt_y`Sujq!6d{K&hdoO3mN3gaU+ z{P&D!Y4~T1kJ9jd%ccC$8eYNp7!7}#@oWwM9yr-g&-0}od$2xpe<$$_#-}s>Fypr~ z-j(rB7=Ms)rT?Suk#g2DuIz0B<4ufT!E)9yUX&++xr}$Ym+LcL0>c jQ7{lzrpx$##Olk9+q-+ zeO|%%Tushe#&6Wh{etoPwe({ik@EkjmHRN`|J2gI!+4XHK4Z0%Gw4F69xh`%n{m~y z7Z|@mOaD*Cmul%JJSyeC$@r1nkJmB&v6lWF#(Pbb303-}$E2Jy8CUh0%J}74`kNWQ zT1&r^@%0*h#^X}{cN!jIJmVr+A60HW;}wjvT8({-tIy^Airae>sN3gglGf0?(A~HO zcBH@D(sx68`m)vOJTIs`rwBPc4C8r)NIF2^zcN1`r?}a`Pr^KsJyRl+m{G_0=QAXr z+WR)+J*P>$8>jF6M=9rX#+Bc`g7L=L&h) <1Xn5DSwnEXBy*& zOqb~=N@85c_~E4zQ1i}K;FvXy9`&4%$-A8Xj-Uio-R^wFFjDChQA^+PNm-v%POsvk zY~V*y%POUuB$l7g=?yLYD&VRtPAbT2oc=*gpNFoM<*qK0sl|6B;%x=v_0uJ;>hrw7 zC1(G(5x85qdsxn0vt;V6oawBm4C4Xh=u|0z1jZ) +LAM(}U$)#rhw>>}h|J_4KhGCNcg1 Eei^s*uENAqy?)9kwPUVK!P9|{r`xyU# z?M>Ow$H2)Rk~KXvdC2edXDR<-u8-=k(-{9q>zA>N59aZr($8T0ZuVDdTs+2j5~o-C z|B3O{Y@cfUj#=-nhiM-8Tfj*_n=g}!QF4y`i^Ol{{!;$=GT^EXtV%(y ?0bEB*ZL6)HEy*vS<+mD69#=`Yai`9 @SpF4^ z>;3g7#`SUiJ>z}YPL%vC%=gsZe{#7;v;1<#H?zNGwsAM(-7c01M|1iOz?Dpf1bLU! zzs&mS&dmQZUZB}?`U|o?pR+ym $vK4#qd}cvN=#Z{TkA z?Dit?#LhHnJ6=72lYUCsKd8Ju#yfDoDEzmK7jd~~v9!+^&z~-VlNs+`FXxLMp!QcP zo~hicx!h6AtOTygvZsHV(|^w8D!uIjPIh>xW`{p=`oU}u1uQJ y-lHv}ZE{A%*cQqJ<}5 0j~@p<#CdI_W?NLtM4k70eP`RfJ759M<2 zWI1~o@5bd~`5;~yueg^xpK _7|{OC=r&uJ1+^X!F;|CRNu`t()CdvQFV^l GNX7 z_3`@z s{WTVu8+sHz*QO+ zEy!k0{|(P0Rm|K6Jk_3%-* dKk>*PGdYzlXDg0x}SLncq-?$ zlczcTxjc`k_8QyV)As}}#+^1^E@6D;EGb>-;WozgIQ( }@p{n`D%&Oq*;y_W&?Ah~?#r70H%8)Z@ z>8!NDf%Jg`3M(s(z{UBY2}1*c(h5q4$BQ#(2TRL+lg3Xe%PR=vjh~bs8WIQ;&YPE> zo}MuySY28es18+?me0y5%nzlf7nTIko~mGJs5+<6mmkDGc%gYY$T+wvSU#(`dRS>i zC>WSiT0A$Ww3OJ{!Thv9{?LFZJ!4R5b)dW=R8mzjH&9dz;WdS!(ivsNfjK!`8B}F_ zLBN+5@QEDhLy@DfqC9HSarpxSKAApaAkw4Gb4r6{W%H4WT{-p6{#RpNHtB0XG zi-MKto%Df$JZjM>`G_W_1%?F1mX@JYeLl2#TttPbvDuZA3uIe|%&e%I8>}jdY}jOo z%7e<%2Uiu(u9#CCs4AWbgDEd8&H=}l8Jb^NOs%oBs#k7kAU9YQLKB_Ua;egobYK1u zS)ug7Qk8RxkyYv>_X6s3?z(7&q+4xwDa0q_WCSwME}PEAlvPyMR26g2xD>Bzkh(FB zUeB|--9>m_TcwYWE`EF) v9x?nMIjq@L_^2rVdO!NTtP9s<(Pumf`uWO z&L+{aEGdeHKZ>oGad~lJ$a}D+k%g57tE-X3GOYCUnPS*Tw?G3)^Afry;WmUB41>68 z@^x*L2KOTcW>6!_<^;=XY=aKcBUH#{Na`^MC#8$%mWYZ*CdnV9tU7W4MoDdJd_?u~ zGnGiY#v{}ylsJ&utbDF;H!ZnS))jePM?Umx>8$c7?i5xMle-q(8{vDEcZHF{JL)zP zsVOq#$@zl=lMB)`kL!{)exIvbtzMxBZIi3b2%thxdqm@`i6wU5?XC#f>`YOLr|+() z!uU%M#9o%qMdhL-D0ea}SeTMIrCDRU4U>kCILwa+5$ z6eQ}E8XaY9<%?L*8A!IF2L{bRU|!ySeNb7c$tu3mM}c%eZ)21u%5c|Gyf1&09B;9Q z%js%9Xxaa!2U-y>OZhgt(#O49xSXCAD8Q *(-k_Z zrbV<=t#%8WTPi4~(AhI=@g4{<$5`nULCDo*8>1`^8z^Q{VFMx!+iIgNwY86qVanJY zA!$2F=T<~nsJ3fCt^rd!l`t+Jnv(5tSs%4iAykG44i1Wu+Pa+^5*d=WQ$wVDd(>@P z8|&V@<>6(kdH!f+ux<;0cB;Nvh`j~vC3}==fPJ~qPQs<$TVAEKYjGLT7dP!%) 4oMgZ$vOWqkC;wA*<6Sy~glG40=$_L|3Sj*Et-E#^av7bvW$#tw5~ zVR3c!;J|2#rFoUA+gFS6u893;{Vrw?VOTRNYRZd>i`p|BIj9CJ_c5#?=F|_i(#2u} zEAjYO1427_a^daW1=t2EFKVX_Xt!XBLyl;Rm$tYi716k@blN0$9BmVFlo2^mw@I|Q z0h!*u;R{#SKION`vCzuXQv>3BsMWKHCE8xwwrN%Q@q-&YD0@D5A%iHvu8LybWu;@Z zR(cQNRc)%ai;sIdp7!k1GwFm3ClA 9?v^bHC$-s_}JY;K&lyp-Hwju3tcAG}DHk;E9CzR=2mpgZ|(*yAw!(lfmu4B0P zrAI#})3^HLmLFZbcHU!`?wBui74onkZy)8T4$5;ssY|Crb>~T)-6CvemWlItxx;3i zuIZsz%ZpW?S%28EPwdM@@gE1POmhkAxs_m6Q``|iJ!R||IjOoQw7EkUyNTnN4tAhY z+hyvd#&S%j8qx9`rc0NNZ($|tp2;;T){~Bt(~^Eg!oH)~>d@1se)98Vaj_oeA#JR? z!MM(%E@8B3CG10qnVv^g2*O>Cs?sAzNh?+XW}jf4L|USK>7fBElVSL_WkK6EyW{Oe zstfL^@B*$iCy{m=^0{oki_=Kmjd@PQ %BE zrh{0{E%QU3ezi>@hKd308xZX#P~9eJ4}msUZJR;kzMNtUsd)3-HWClcu(yiLnJ^>G z=PQy&vsNo`tFNdy6f7+pgiVKvdD@*b7zyXd57GTUTpqe2;sjg 3F=wB`t1c z#c{I~y&l(+Hh$^R*POQ4n5{6*+D8|!EotqwZ(+Ggig91BW<;)6Tb32e%~Cm-v<(r< zdi4;og_W)tNl_NI@r42;jTSFLpl4{Mdz2WLtg7L*n8n2|)FRYn1Vl+~m#J4TmL;pI zTf9qFl`pO(tI8C^k`?ypzGPJ%h8H^8?c+#I#l9Ft?c(>jy46OHEKmfw+IG8H3VHPL z1+V*_FaTOxnul8Y1QFNGQY!1`y;&+sjCqxYB~g@%KF+Zb#|$#CHF1NKA7|X)SU$RZ zDg{DgiXD(HemmAp!x=j`s;0#cRIPT4A6hCXrWnH0e_JC#AGR@1Htlo8PFS{_YiMq@ zorko?6+1|`LVF*tYccOScDdW43!8MFF{6yUb}h(t=4hu94$>7nkKQ;aMjFvE?RiG+ zY>4c5d-&1%Z5^j%^XR}e5^AT;HVd)0puJ?92k#ySJ#ojT5&hb7xYkZ>;qiTt&dZ%0 z&*8M&TE3lHgT)~38E`p~ho`MSSa3GPa=8b!EzxhKwc(1#|DrX~8`EySMO`y#w|QI} znzop)9k1A-LqzPyyR_b;p~dBgZ66a60hwpJUDOkmbgVb@D67TVxov%F&ay=rR)-)e zb^lBiw_N}1q_ 7uiPJATW z@zLrwwS)o{yMQ)bC6q&3EIMtfwu_JJDj|t$=_=vDx$H+Jn}gE3{w+=vIF6s(wyS=q z3Fa6UqHS!qX~5ZL6VG5(-_eTaU;&$2aUF{cjO);aq(?uu(6?#hmLFZbb}V9-?wHPW z6|$~dIPO66+)qvhMxLB_EC3_VQ*kF(3v^nJIc$g2xHTiT2crz{gH@)vlJ?xuh@$3b zU&w(5>CJJmn>db5U !y*$bm#Ld?AObTgy|7d*kCeHc^GSZhq =`m zi2EWsIbECfDRLo$i}j)((#E Lz=vHOE4B1JbYgQH2l;M7S`|DVT2gnbkRHxBNu4U 2Z zenRKMsXF#Q+7zp(g_nJ*YY%}o7u^;=U<;*qVPM~)iJTN;H)6if5jo(kBAqw 0VhnJODAxsLL<24VKXP4=%-r(AxGpF?!9lt%=qye8eA_mg&3F%r zwYlw?9h8DB8@Vfp{EL379`AKQ2#o2- zAL(KZuPk%aE9X4&SNCl6xt^-jZpZ!63W@2c-(^2a@5gx7#pw08*2S4|t&2%|^o6S} z!e%Rsv-Z)&YwKcr?ORy$Qq|oTy_u1V-WX(!kLALk98TK4ie xl?TQ9c`~H|H#hI9mDaByqZLJ;myQ^**j#AS+AwN?F|P~bxmRcoyOsltL9Gce zr2Ggow!V TB++FS!LTF4u2GYfE)6s(rN7b}@g;cF}3p83PD5hY;bAz)T=MCP1 zwtxPv-KA&H9HWk`oL?W%eq~wVx-Wl>`k0Pm_x+%hCH2?ZL+1Db2wM}m+uVlzL22eV z(kT}jd5`I!6lwP2&oB%kH5(Zg9h62&mD=N=s9RaBwikTV&9nESU)*YYk@nUd6eZ?o ztH#;)1P@A4Qi(0cn+LJ*7J}A;Sh8#6dr->5syLdziF$9c^#*HB8$X|0MHm{jp$Ewu z{0~|hy`cxYod+kr(WVVsoUGl!YvJn-<1<+iJx|8r0=5&pM_-(aIok#@-&Tz0o@Tra zXwRCv?MG`@8{*W3)vZ_$ tj-L#&_AG06RcR^920w=;04PG4n4ePTN?a(*8r z_7}XrEV2~^viZW)4pNBD!RpTwn5)S6;F6q2bG*J;OL}R}l9`rMa0H=RMJQ4M7Yl zdwAH6(}2&43L_UR?HTe~1=(BDp1q-F>z_01RO5$CS}on ht)&r1Ziu-jv`>PO{cehLo0D~cG2EVo zDVgVT_MX*6$wst1fx72wVavrmlk0AYp48)<(0+X2aq}`xQ?!k6itfl5=`QWC7|s@v zHr8{P81K@?S$7ma#Pb_8akI0v-=G<1HO#)Fdwoy}9TtraVE+aK#I|y3+X+;gdYf+D zlHY0lnW^3I^dnlb8P{94vFVZS;F^_d(>ZI4m5lkU)pEbldo9|@ZcBG?(dJn1;9Avb zQ;e0N{j6M@gr#f3+8V9lJ4xZRwaqKDhOS>h2@PVb@h?fb=*Tk@ec(#`{G^pBdOx>h zSuOQ7xk{83%Qvc8RWcjjnt0mfGi7a&7t9yVmOPrZ_Y@hKL|$5s%?FrQp(1=K%tHB6 z^V@1|RnRu{;@;8l>=twSi1=upsYX}xlKwx!yjsp=+GK0LQa4UbbNFW80B^^Iky;Mf zW3ToXZ;L70&n9eZIzDQ)P2w?qscW1)q1(JwftauD$5*0NKv8^`_+i|fBg!Rywd_KV z#Bq&Z>@%|_{s-Us8><5IWvpU#*?3;Swc$H}V=cQtFI$G2wi6oLAov-4v)cj7&rqyo zz3p-Rzm3Y*E91-eQ`ny$BIRJ)%lxIhNX5AABWT|uX_}dsADtgYzyu{eO_E(uSXLC8 zSs4)B;p6Y*z$HfYJ7GU#71$K5N~EXZXWeRM*OUcA#Xo~KB6_3LhXn=2mH1zLsk5y| zw9p~?N1yOD H7q=6o z7$uB@GL)Fe-If@Ikc_t1gpAd@DtSL|UB*YR430o!>Y(<~O!UgcUzdoj(imH#K5c>I ztrjua{ES7bMW}sTTO`)vz#CQ)tPacxmes@;<6w-LG0s2?$jBk+t~&ez0Q_E>w&|0e z5eUpIEiVd`&J4_?pS8qEh||eiKFfzKOT<;BMaAWz($IYOVw_U~IRyGG5Bv{DSCA1X zNEa0_-BZM>+*!D_6D?*Kh_k8#f9L+KRc-U35$mbAt0+9`5Urh&^K0Z m{y-Hmf*SG#9oHnuB2}Za4fT<8@l}co{05kOzV^uYik-C>%%e*8G4~7 z=o-u (Z(aKy*>tq6iYv#y~{W zf)A8q4n&Ztm4OIyMhis1b~l9oNg#sSv}YhfS_|ahM`44ZimF%wkv32N)Bw|=(sT!Z z+P>4jP?495Zte6>wRD+k+CKfe>BH)h7N&n|&MUqWpQw!I8+p`DhgBARGovFQiZ5Vv zm=b?ggzY$5izsLoZMX15ew|6n;Yr))W0+4H=VM4{`+N)`ZJ&>+ChagEw_jbNPl2(` z$L&^|=#`0SK6cclRr9gvqPES)LPV6wv=wKbSZhxVXp4R*gnwP$Tt>A*@?Z#_RUE?l zez0&wE>c|&1JTG $UtLH7xvF&nCtL1(a&fe8^du>}IN363Kb!jXoxd@~JGi%Bb zR1Ty$*}f)?Q39%z?zxi=Pi)?QhCFR2eMYQ@tK@}H3M90!!QOJ4$vI}krFG 5>tL6vN(teH}xtn1v$LQYSSXxAgE{-0py@HrrV=T46j}dz=6xyK{&~_}f z5MLh}cRj>{#cd*TQ*_Jgx|StLWwnPS)!>$8Wx_91hk~KfLaYGs(br&E=~Z~DC=Ud2 z2c)RDI#g9tD4x?w@zoLMO_)4-)C6RynGwhd%np{88-c*syipVJtxS`$1MnY#^CnFR z`1}m|v-6BV_C=FMP0Sf%=AJxuY`(7`P%vur1bM~HWp~PT&r3W0hm+=AF8a_Wxh{kx zfk5HBdFkot88d>_XcX#ST0SeMki1S|Nw6vqstT5ds&fi``9b{S!{;O>28v3nD=Vty zts8q(V+DqK$&(8_!x-448OGQS-L&sfK`QfWD5A!g;uBB>GTw4J@j_oNYQauhv?d#$ zm&rPBLeA(hQ>O+74#*T90xhHlhJxjV#W}g-3#C^o<)bR4j{>ZO2NjjhoLO8|jD&&E z{K{e #Hcl4M0Z*A*QV-BI_@qAaZ|g6Jk)-Mu}%o@QpJ z)WVsu7+V$u$<5BnsV=s%vdqfv=?0Pg0~Ge=#e*KigNkz%6z3x7K@dE8@gnTe(>f=| zU%ZHT`SN8}b$!fiLU-iHi}xAd@iHsLUgGY(EUT@p?5%+~n#?fROtN8~*YoWW+#b8Z zj&vzzXt8JWo$|HH&~s%3i9pu~Y%ZsfCn`xPv^Pl~Ftt!t8{)FFGe`~f(1`kp8BxWg zHeR_D@wX*EEFT>}jGxYAOSpuX*WmO!5hC;vmU390bg8#QTFMH1J4%ZpFCYWzf-@S- za-?P^gK-M9wKU7h^xeIC5PjnmR8Ml8iDlI>V`HTeZY D;`tZ yE66b;YMBkU)i5uamkX>_*3GqO~2tS$x2*Km>b z^tvT9W|Rr)b`?Lgwn8I5M RjNo=5X-xcg*`sP^`h0-Vd5R)GJ%lwN2gFY0XKD9a@bAI>YUKEKdG z(24OhPQcY9lZ_Sz^Pi7OJE5e5i6h4_)aP056c5~EBR_|}PUEZxp8|0S7<1;USaVh$ zqzuBtHrsC375U+Ahbe0g+T4CXkKG`HDmuYF_~Mp*%Y5Z}_AoK12WE|3`@y(hBY*Cp zF9O%)LEBZo!lm@L7?%qq+CG`tl_qj5%uU6I>@-;0?xwt{k!Xg*niPf*cZ0YRSp6WJ zhNbYm$%D)#q^ChenA?5=0jai_EYLiDZTy~4y&!Zl`R?GSLwFg}ah#A%L$sA$ho^Ys zW-sc5dm%~Ini9ku>?lH1F4Bldm|2au?xK)0Z}wBru!({9n!5~E=BYYwTC-|hf_IFF zmAfLripri=1=BeYy_MVO1ji;SRfKjqHap*ZI1nor^vM+H$2$)A*Oj~XKv-Oa0w5%> zeCn+%`Z^s|3c~L65tV}7FH5KlwINoWIyHyUuQs)BG>Wgak^He KIqsoI z#)d}Mzyq0P$y 8e@?k)S=YEv@E*!ZXh%x-($T* zHP6ioJCO+Q^B|jw*tSi&y1QrY3>u*t9o@lq9yuCFGRNIpQn|7wLQd{H+)R062FZ!j zaS1K%Zy 840P4YdcUX`>un1aj_>(Fy-I9;Sm!1y0Sqr^sT%#jkgzK1aK| zRbM19gK*PwtXGAqU^JYHA!vh`n2L=mr;t)!Ujq>zUOlq+` zGoC&KOG8jf0`RV}6fo^*I%?75s|u)VsNH%WnDkZgIh{gTque-m>x3#Q7m7kF(3GM- z`84nKljQa>ewePaGtEa6#D}9YhgAd0KSplC1Wk-3+u60z 6B<}ZM zB@iQfO9pMZQK|;xhBwmJ*oSbd7teP-;omTDs%(?vt$FwulucdL^#SH>gM LjY}r9(``RY(F8SCOrf<%MP{+)>Y0@pv(rVDGDp3*i zV?Af!C>nZLXR&7>rNOjl#&JV&4FX)Ajk|`8zfOv=8B%uKU$NQSB@Qx#J5U=9p(9?| zhUQ64Xo{lU$V6zdcN(!CMA_&4;HT^u1vMTiv8}8JT7p?_Y{5xtEs~#Zq nk76x+72SI>L_Qyst(*1bVTPXM~iSk!kdLK6153(2q!w50Ow$3phICe3Bl;$CM@d z?&JY|H{%|>m<;K}*I!2p-Xtw5p|i;0P~Q?NlN|FF?eG-Yi@gMx!L(J$%n`kw u9yn=}y$fi18PUpbD4>hhOC JEBC$@fx@EJ z;(Co3O+AR?b;Y>MSQa))D*aej!c~+8t-%_Ph8cDaa4yNP^M=x@W`Ghuv~z>&XL|;O zV}LY1F5{RGuDqc5()>*$o|y2Xd+VAF9kQx5tl}?~7u;UQ&@~xwYoji+1ER_hTX~MH z9X0~6_I3!a&6)6p(+vx`iuQs=H_}zEwebuDT<0BcNP|o}=+N8=-ox5MEmlCV7_OD^kJJ zIX;VOp2Ob mD!T;=}k;{6oQ4xZ@Va`4#W_0M{=5iQp^zqF4Td z-gVEz|FPgJ-1f@*_;29(drzL^+W&`wukexJe@LL;{}}f_hCjuhN&^c2BG)uVnmfhc z!Z{ry{85vNfA|r)8w3iUlWV@qb?7<4AK>qa)Bmr1ik~XH&zFJrU)xdmBRv0~ga32E zSNM0qr~Xqvwf}NE_z6yEh+5zD)BHr?wh)ZAulPFtp9=m>Mho6~kxvvpcJM!gM?U^9 zaF2>;{lPXa=-4*@1EO#D@Ynxmc*k>+uAZiZCCI92`6s @Z(xgpg(_q7JOa*U@8R# ze&0Ue`?`KoD)^g+|7O8Y6u$UTEy>Vt|DPWI`473A!Yf~{ 4AKlr1R z{4K+)GXKQCbSR$o>({tPV^aL9L=ZTx{*K{)7})=cuW$> N?eBQ^75^*VeXY)g9*G)^Z%X@*x?I6a0Q)GY{nv4k nc-FpiN&bK3J%(TUhkKXj%DwYRT(sebf8`#2RXZw3-evHAI-aRg literal 0 HcmV?d00001 diff --git a/CPlusPlus20ForProgrammers-master/examples/ch06/fig06_12.cpp b/CPlusPlus20ForProgrammers-master/examples/ch06/fig06_12.cpp index 12effbd..03679c8 100644 --- a/CPlusPlus20ForProgrammers-master/examples/ch06/fig06_12.cpp +++ b/CPlusPlus20ForProgrammers-master/examples/ch06/fig06_12.cpp @@ -15,18 +15,63 @@ int multiply_int(int x, int y) { } +double f(double& x){ + return x*x; +} + +template +T integrate (std::array x, F f){ + T tmp{T(0)}; + for (auto s: x){ + tmp+= f(s); + } + return tmp; +} + + +typedef double (*FUNC)(double&); + + +template +T integrate2 (std::array x, FUNC f){ + T tmp{T(0)}; + for (auto s: x){ + tmp+= f(s); + } + return tmp; +} + + int main() { constexpr std::array integers{1, 2, 3, 4, 5}; - constexpr std::array floats {1.0, 2.0, 3.0, 4.0, 5.0}; + std::array floats {1.0, 2.0, 3.0, 4.0, 5.0}; auto multiply_lambda = [](const auto& x, const auto& y) {return x * y; }; + auto f_lambda = [](auto& x) {return x*x;}; + + auto g_lambda = [&integers](auto& x) { + auto tmp{0}; + for (int i{0};auto s: x){ + tmp += s*integers[i]; + } + return tmp; + }; + std::cout << "Product of integers: " << std::accumulate( std::begin(integers), std::end(integers), 1, multiply ) << "\n"; + std::cout << "Product of integers: " << std::accumulate( integers.cbegin(), integers.cend(), 1, multiply ) << "\n"; + std::cout << "Product of integers with a lambda: " << std::accumulate(std::begin(integers), std::end(integers), 1, multiply_lambda) << "\n"; std::cout << "Product of integers with a lambda: " << std::accumulate(std::begin(floats), std::end(floats), 1, multiply_int) << "\n"; std::cout << "Product of integers with a lambda: " << std::accumulate(std::begin(floats), std::end(floats), 1, multiply_lambda) << "\n"; + + std::cout << "Integration2 template " << integrate2(floats, f) << "\n"; + + std::cout << "Integration full template " << integrate(floats, f_lambda) << "\n"; + + std::cout << "Lambda test " << g_lambda(floats) << "\n"; } diff --git a/CPlusPlus20ForProgrammers-master/examples/ch06/fig06_13.cpp b/CPlusPlus20ForProgrammers-master/examples/ch06/fig06_13.cpp index e04b316..ddb20a6 100644 --- a/CPlusPlus20ForProgrammers-master/examples/ch06/fig06_13.cpp +++ b/CPlusPlus20ForProgrammers-master/examples/ch06/fig06_13.cpp @@ -1,7 +1,6 @@ // fig06_13.cpp // Functional-style programming with C++20 ranges and views. #include -#include #include #include #include @@ -10,10 +9,10 @@ int main() { // lambda to display results of range operations auto showValues{ [](auto& values, const std::string& message) { - std::cout << fmt::format("{}: ", message); + std::cout << message << "\n"; for (const auto& value : values) { - std::cout << fmt::format("{} ", value); + std::cout << value << " "; } std::cout << '\n'; @@ -40,8 +39,8 @@ int main() { showValues(values4, "Squares of even integers"); // total the squares of the even integers - std::cout << fmt::format("Sum squares of even integers 2-10: {}\n", - std::accumulate(std::begin(values4), std::end(values4), 0)); + std::cout << "Sum squares of even integers 2-10: \n", + std::accumulate(std::begin(values4), std::end(values4), 0); // process a container's elements constexpr std::array numbers{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; diff --git a/CPlusPlus20ForProgrammers-master/examples/ch06/test.cpp b/CPlusPlus20ForProgrammers-master/examples/ch06/test.cpp new file mode 100644 index 0000000..e69de29 diff --git a/CPlusPlus20ForProgrammers-master/examples/ch06/vector.cpp b/CPlusPlus20ForProgrammers-master/examples/ch06/vector.cpp new file mode 100644 index 0000000..5d3f055 --- /dev/null +++ b/CPlusPlus20ForProgrammers-master/examples/ch06/vector.cpp @@ -0,0 +1,33 @@ +// resizing vector +#include +#include +#include + +int main () +{ + std::vector myvector; + // set some initial content: + for (int i=1;i<10;i++) myvector.push_back(i); + + myvector.resize(5); + std::cout << "myvector contains:"; + for (int i=0;i li1^#`PesulFlhp0josHGS}L!q<{mD+;(B}JsN)s&jjR&E=z{k`4y z*6Z~hqNv}xW8J-Zzj?nmvu|hDv$t=)l -l$qEYZ$MFB;H!8l#%OQSc#Mok|bWGGQYxY5vlk%h_{@Y zSP#nAd7L7p-Rmz(WR$4$?a59uKoRNZQEWyVoMtt;bFrM1xbX1{k6_|WF>i`_A{FyQ zN<1kh^l4##LD`5lDk6itLFNTzyGv6dsSheWXRY){>93o4>!Xev6_nDCNa^o3@F*@H zw#aEd!2MM^52GAUk$gJUmLaomd-Il|bi eoNj`i-V99PcshfgR1y{qeE;YsiMiO&qeJLjL5G zlTP)I;X^iVJRWuGgi$%2`DJ#^)XFwjTl)PgK$k6r)r%GI!3y~C3izH1I2~6MpJ1Wm zhz3FEH&(#AftMTqAAnzjPp~`#V701OiG 2=Rp?6=~P(GLGHTs4!Zd>`5ySjSvL&c=2bkwXCGhfvEjAEv_BWGIe@#H HmOjCF}sVTR%x3gn++Z}i4O|fR> z)b*{griJR(*fs>K8uM ^J1FSQMQ-+q}-p5uO^mK5Al6a@bB^@m<-^D*uEy=(3IGVetMUS)3qbl z3?Xm$aG4^6pYh@D^+u>tGd`UE `S53a zxZG=~dD@4&XT~M{%!fPw|9rl}Y8Zhq0$~Kg2!s&`Bk=zjf%j@R{7XA_u0|VQ{^k~? zv d`5SkMPI74`Ji@e z=UuQ=+SplZr8d6vK`1k`7i@bbjp&?O{v7NgcZ2KoPyE??(MXkp;NfIN$Bv%U#!6>! z5Us1o*(ubDG=j00XMO~4+SrTZ$#a0memC=TSBJ%BwgvbYz?YNf>Ad}E_jvNWHl 75St^30p>+xFyw*PoD& z=V|COUqf8(KIzOMXAXO_mc|j5Falu&!U%*B2qO?iAdEm5fiMDL1i}b}5%5QV-p_QE zvVECCG~XXJ3InBVCTA6Ij^gb| k?j`84FWAU_8=@vd#Z z2HEmg+dc>R2;@pUq|rN1Dv=`xRAi(sa`nm;HIt0fyZr?C*O5W{3VI!+HsRBZ&qIH) z?QQ~A)$Lie_A|AY+*>oMcGd6rRMVzw2qwSO?+MsBL;_I=xA1uicmh%i_4P15&!WHY z5tv+6_h41qr59Cw6C+Yip27D4x8pc&U(~+OYkv*+5wx%Kw|6_ugoGuGKp25A0$~Kg z2!s&`BM?R)j6fKHFajSK0m*NZd^X8nqxV}>=3Id+JGbE7ms3` gRW-$c;FCNM8Fvl$FFAJ7{|4rZ-M?-3_+aip zcn#?sZ-V{d&7z~rxbWEM=$p9xpR98@*!%xZc=_G|myLV^6D+$~9+DFqu>Y{C xg01fl35 Ab!qY@imUTp3spL8k`} ip&a>^;WiejwLzrTDDCfkg1D zhxQ2&1Et(}DDPIO%e}mNp -=T|ixKiuwNA-=719G_U$t7v{ZH_5$B$?W z@~H}V6UI;dPV;=bjwvrxuwPF0Rk#}m=I15AX`I3MTt#@9eDnt36i<~{7$engcJO+2 zN9$sI7vn+yw*p6$my~=3`~l$6CDuwkQ2{?u0e`iEf7O#JSn*gM`RGQUsawW?0#LL{ z{r$0&T1dFpt*oA+l=~tq(|LVhDBouc>1iupDC$OOM5XfC;h~I`Nyi$?Tj > zFb?bZ3A1om^%sn6Mo*Wr*~6gtG#!@KVpDUV@g_aq6iW>cJ30HEExK;z$qs6BT&L7} z3#s~qn3Pfv4ciBdTpGIukiK6^IeMdstpIyF_wR1)1f|rccj%mrzvn>fzNDV)YNyQx zI<|M{NlkY_t^I(~+wbgZ-Ph6PvG?!U)06Dgds}yRCc((04a>kzg#8#u+RW*tVkQkg zv;{zN{1cMCPdWPtVll4|VtllLfkFc)ut&fnAm87=o4~^zM;~nigX@F$6*y5t7uZ!H z5r9``8^dBdosQDo#ehT3(Gm6)ivld&VnJIX7JHBl8H>>m+T2lQA4tW$9%XiTEb2(b ziifk7(FbW2TsbH;GlzX8!zz}`TbbBEt`r+C #z^%E1B4FWTqKv-QCeZSBzsm zXcPxkEPXhKE?j99+?IPXg(4>7B1K1AAv0tUfosD 8dR&Io(Up-k;moDu%&8bITY8~T<_`1UL9~9wEg1hZ z-4fh4DC<{lc5J0i@{{<`no; zWK;}U2Kk=_{tv7 H{07=-O)h*{w~LHYa8YQCRF&hG^|J|#mTbb8 z=Kzti?uUs}*qx~Ai>T3>TKKY#7AgJ6_{C1-{ovCYU36Kei|po}B*rp+8NdW86jR~L zbAw2EZjk !t|BnOp^P|iY zDaX(BpnLUXfIrN9k*o@R3I9ZZKgtA=36JSk#GlA#1N>=j5LqoJhW!Xn+&&-R%Q{b_ zJpYP)Fn*NWO7Zi$iLxcj;Qb@W{{_tb{Pn_P*^YL93G#oBMnC^h)U_6Q&QC^N=8wQ< zQ9=H$a}5$E&-JpeH5f19i+mTHS|4AYcP1Oi+tU7oC-QyR(A?$6Ht#t>_9;tX>H4E0 zJQ)|Q-|6^0K0o(QZ6Rx=23_HO3t!|#Ap7|$!KRI_lzzm4@I {L(k1Jb{}0GYIe1E Y0?wshv8BhTa{R8FT#NbuA)u=N0C4*>B>(^b literal 0 HcmV?d00001 diff --git a/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_01.cpp b/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_01.cpp index 7a77643..ae220a6 100644 --- a/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_01.cpp +++ b/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_01.cpp @@ -1,6 +1,7 @@ // fig07_01.cpp // Pointer operators & and *. #include +#include using namespace std; int main() { diff --git a/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_02.cpp b/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_02.cpp index a0454ae..4fabfc3 100644 --- a/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_02.cpp +++ b/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_02.cpp @@ -1,6 +1,5 @@ // fig07_02.cpp // Pass-by-value used to cube a variable's value. -#include #include int cubeByValue(int n); // prototype @@ -8,9 +7,9 @@ int cubeByValue(int n); // prototype int main() { int number{5}; - std::cout << fmt::format("Original value of number is {}\n", number); + std::cout << "Original value of number is " << number << "\n"; number = cubeByValue(number); // pass number by value to cubeByValue - std::cout << fmt::format("New value of number is {}\n", number); + std::cout << "New value of number is " << number <<"\n"; } // calculate and return cube of integer argument diff --git a/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_03.cpp b/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_03.cpp index 0ca2ead..a2e2fc7 100644 --- a/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_03.cpp +++ b/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_03.cpp @@ -8,10 +8,10 @@ void cubeByReference(int* nPtr); // prototype int main() { int number{5}; + std::cout << "Original value of number is " << number << "\n"; + cubeByValue(number); // pass number by value to cubeByValue + std::cout << "New value of number is " << number <<"\n"; - std::cout << fmt::format("Original value of number is {}\n", number); - cubeByReference(&number); // pass number address to cubeByReference - std::cout << fmt::format("New value of number is {}\n", number); } // calculate cube of *nPtr; modifies variable number in main diff --git a/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_10.cpp b/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_10.cpp index 6b2ec5f..f7e8d42 100644 --- a/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_10.cpp +++ b/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_10.cpp @@ -1,7 +1,6 @@ // fig07_10.cpp // Sizeof operator when used on a built-in array's name // returns the number of bytes in the built-in array. -#include #include size_t getSize(double* ptr); // prototype @@ -9,11 +8,13 @@ size_t getSize(double* ptr); // prototype int main() { double numbers[20]; // 20 doubles; occupies 160 bytes on our system - std::cout << fmt::format("Number of bytes in numbers is {}\n\n", - sizeof(numbers)); - std::cout << fmt::format("Number of bytes returned by getSize is {}\n", - getSize(numbers)); + + std::cout << "Number of bytes in numbers is " << sizeof(numbers)<<"\n"; + + std::cout << "Actual nukber of elements : " << sizeof(numbers)/sizeof(double) << "\n"; + + std::cout << "Number of bytes returned by getSize is " << getSize(numbers) << "\n"; } // return size of ptr diff --git a/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_13.cpp b/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_13.cpp index 996d11c..001008d 100644 --- a/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_13.cpp +++ b/CPlusPlus20ForProgrammers-master/examples/ch07/fig07_13.cpp @@ -1,13 +1,12 @@ // fig07_13.cpp // Reading in command-line arguments. -#include #include int main(int argc, char* argv[]) { - std::cout << fmt::format("Number of arguments: {}\n\n", argc); + std::cout << "Number of arguments: " << argc << "\n"; - for (int i{0}; i < argc; ++i) { - std::cout << fmt::format("{}\n", argv[i]); + for (int i{1}; i < argc; ++i) { + std::cout << argv[i] << "\n" ; } }