From 6ab5abb3e7b1f479073445e8ed7a20bf111553e6 Mon Sep 17 00:00:00 2001 From: Andrey Tkachenko Date: Mon, 7 Jul 2014 16:07:47 +0400 Subject: [PATCH] Multithreading --- Debug/Test | Bin 62702 -> 0 bytes Debug/makefile | 59 --------------------------- Debug/objects.mk | 8 ---- Debug/sources.mk | 27 ------------- Debug/src/Test.d | 1 - Debug/src/Test.o | Bin 84240 -> 0 bytes Debug/src/subdir.mk | 24 ----------- Release/Test | Bin 12793 -> 0 bytes Release/makefile | 8 ++-- Release/objects.mk | 2 +- Release/src/Test.d | 1 - Release/src/Test.o | Bin 8092 -> 0 bytes Release/src/dyn_prog.d | 1 - Release/src/dyn_prog.o | Bin 644 -> 0 bytes Release/src/hsv.d | 1 - Release/src/hsv.o | Bin 639 -> 0 bytes Release/src/my.d | 1 - Release/src/my.o | Bin 638 -> 0 bytes Release/src/subdir.mk | 37 ++++++----------- src/SvMain.cpp | 47 ++++++++++++++++++++++ src/SvProcessorV1.cpp | 88 +++++++++++++++++++++++------------------ src/SvProcessorV1.h | 16 +++++++- src/main.cpp | 31 --------------- 23 files changed, 130 insertions(+), 222 deletions(-) delete mode 100755 Debug/Test delete mode 100644 Debug/makefile delete mode 100644 Debug/objects.mk delete mode 100644 Debug/sources.mk delete mode 100644 Debug/src/Test.d delete mode 100644 Debug/src/Test.o delete mode 100644 Debug/src/subdir.mk delete mode 100755 Release/Test delete mode 100644 Release/src/Test.d delete mode 100644 Release/src/Test.o delete mode 100644 Release/src/dyn_prog.d delete mode 100644 Release/src/dyn_prog.o delete mode 100644 Release/src/hsv.d delete mode 100644 Release/src/hsv.o delete mode 100644 Release/src/my.d delete mode 100644 Release/src/my.o create mode 100644 src/SvMain.cpp delete mode 100644 src/main.cpp diff --git a/Debug/Test b/Debug/Test deleted file mode 100755 index 80958c8aa184298e8424a46ed049e65f4de510fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62702 zcmeFad4OC+xi@@Hcb}fgBn;UIYeM=tZwyyk7 zK2@ixPMxZ!o_gxps?Md!_BPwLE%O($!WQrDzbaB%k8twWDyQCxS+lGPYq@ob6-5&B z>MuhX{9<^3KL=?M{KEKUaG$w6Qp(=~-1EmgB+CzhW#L)==FYM#{`kB#SLMG_ZdtF~ z6)EMf2@gGuAK%OT5P~^Jd~7yR4A2ld~4glv!biy^Ya+#uxruLJii z-%<2@T_8V(_{RhHEZ-Hlk0HLO==nJAzYX}a@AIsqtvtf_0`Cx5eEwDZ#sc^E;C|D4 zBc(SWoM#Np$sd1C(Ml^ztW=E$cB{npX`sXUhX7G4}+kIvh&vm9J zoARR*F5Z!=PmSa!TjI%mGo`nh^wFV-WOrLndNl1O38kzCP^t^i>Ccb2Qxmym{D(==+*LbmbwG2P!BC(cZNc<%A2+Kd> zDgP-viy@q>ybWU;wp@(|HfHiF#0?(K&F7EeOxUZ_CYIzu6++gOF8>PVdK51t4mc<| z2Vn`zGDP}9hG@uf3^74YVu*@u*)BP`2@?l{)$%) zA3l85Ba_Z^E0K7`W2I+5Y8`Hfp!DGtrMM!|I=q5!9c1+RXHfj`3ch`idCxy3_iV)= zyY&1ca?jQba*98HzudD`gE8K}SMJ%m!3y5rBKK_NU=8mtlY6#yu!;9$xR3w-jfZ}I z#j`JVXL<(j$J`m*gv(jm2S0Xor1ZI)QQ$8Fw*>!Pf70?tgZH0Xhw9eU<8sAI(f#(L zpF_nK`uw-vL%+J>h2y>+Sq1NRQ^YHhdc=XWUZv4V3mbmQnZ=(WhYJt>W`rJim;^Pj}>?i(=mfc;7LB;!* zn1(F!8p0ejEQ+e}T?nZF6Y6y8C8!Ag{uUKQGWlr#1<)S{k056R~u|BPV%g?|2JNWTdA ztjl|Tr^;_a(tGh^ejh@WpD3SmO}M3e?$wb*`NAul&hnbj*7AjkN6Y6X9xtDh_jGe@8ADI;C~_TzYzFe2>ky60+)ejih+wb486*Cz76e|`1v=zWkkDVu%a&EQoL{uK9=*)B(Y zU^#`?Jq98FxMo}6IJo|7!jEh1Jp7Ku?+bV@f}AX~SZ_ZoYuCh^ zr{p$XsS<=YQ0pooV_D=+Z#ESmOrWzWCu08);&9~hH(A!FcT6uBYFY+J-47UqH&x=n z@PoKUDq0bZM0QqKRwrVP9UTUPA6~N!@u$yYN~Gj_r-S9$1}@a;vzb&<8clD$$g)0* zcxfcM{Vs&FZp2_jcQSic^=?GZVXjq{J{$4OlM-Ksenii`6!C~Pn{WF%esg#U^EJP~ z$Q~7O@*|U0xE0k$-#EdnHb&3?0isT*P?&RXU|60;UrT>$I6l1g70pZ;HfDD^GizYC&4GqFPUY(C}Ej>Eav2bS0?d9 z&BER^$VKV%hk(Z6KOw2~cbyo$@Fy63;Ymb~`L`Po{Zkt-`&Ho3q5(X-Xo$1A{7Kv& zo4dd&{aaPuvc{1X12vFLRpQv8Nvrg~?Tsq)^uo;JHa4K*SDX7Si|;v)xd&OfT-YG% z_<r#~YD$6hu ze8X=SqfEJdBBmL$emzqefxvuwtXq{S;~S(Nc^9Ez9sfrHY?1wuHuMGw%UR|sRA`m| z7`MmY$Ly2rHy>wNyl?Rvd0#7XV)l6%1*F~PLG|-C6udLyEymww%-s)qpm9o^U?tqwSypv+G(w;1_oT zL+r)(ASJZ;6bw^j@keV>|Kg(o-MNdO?!kyIUbWk@9<* z>!h==@I+?sxroilW2EfGo6cu*9CS3Yco^>~UHqNZY);!2Hs?n`Sb6a50X}&1hxy0NDD_ZEj<1SDfO#1KC@L~K8WrDh)=vge}EBK(#*T-}!4!{ie} z_A-;Slz<0PJc3rtKKuZN*j|xFV`qo#6w26kIbXA~KbN&;J1Qx(VmZcRcB#6HtQ^c8 zux8Izccm-lV|-@MRd;h&{42(3_Cj?RTREDYv}PZx?l!H6tU%t0>h7{t|8XAfPF8o8 zy=wa=+%DC(p;b>{{ARDzw~@rR6svSV{fm z>^G^TxfSnPhr)+!qK~~YJ2h_2zS;hvdhO>CSo7xeEW&8co0Fa`L1vF6o>L`vxi$#~ z&yyfOh2Z43F0-u4Qv6yQ)q-Am@*z+i%u*}-?l)k4z4j>Nu1;gLLZ^4)%EG5^TY}qd zKSndGDi^af+Gq1kTs0R7+Ei^>j@0KvOudk)ykHHk<`e(PylD7tB=NUME_}?C`XExB zi1QY}wW{k%6#lzZ#PxR(^HjO2+pa>^QDHv$EK}v8U-Vlfl(THr`=G3do*7~(F4^*| zZlt>zSv``)Wn5*kmNiz@?EpjcLdoOWUXZty9r&%Zi3`4JPW4Ba`l6&(rQ?VnuzT^+ zD_P?2>>ckG@fLu12G^>Un2*t6DMcPZ0ivjA)xH~0C~vdrIwb^&VhF^c;Z#Srk>bRI9=Cg%%XJ zN(zv9QDdO7`YrDx{I1o$f|nBA>@Bj^2z>8%fE~5 zx`@wNC|RY;fRpI3p`U*wjVh=!pxd8$2{Z>-6Ey|jpidLKNgpo$ziLi{3`N? zWs6Tk;x%lDRkjmzzWiFoBV~uN@RT27ytJ&X0rBe?pHp_tOviGaf5Dc?$8{ehY?jd0ELNh`)uHT47aPKY{iy5jc}u zm9AN9zjZlM?;<3~yZVrj$z`p53#e)IUe-*W)(3~q{svwgeLJ5fuUq_d)n9?3(Yxf8 zXE0xeR$>A-J-!^qss&(uqLvgTqwK%Qsw&%ytgqS^BAGvx^=8B@r!?~7HH11_P&JR` zp0MAK9R7mkB9V@>P~uFMIKgIVGTwpqN_AB|%zxS@@c8p?s-gz{{9qRo#oFG@27S)WLktW~=Icl8vOK4tsSILJHzl z7oCaxlyu?7nQDDz4e~oB|6?=dA6kd}9?AcXmoKwTwdy<)l3g-UpEd6X^}d7jF{~hmSvmML)X1X29$_yllTO@q=eWRQ?kMpLr!ODf!3N@=r+QpLs`Dk$aza z^qLPNSlAv08!&g>Y&=j~1zJ0I{h!dz+8&UExu;3AZZ)E3yo`aZwSg;hH!-#Hp_r0h ztcCGwrG^f_2D%IA8YFt;8i-2P!jGLOHQemiKrvg_Akib&(20^(o%3d?LHFP~|NRm@ z^3&~DJb{3#asceN?B~${{uIpBY?~AL9cEkAsoZ zuR{_3rWY%jhgss-r61VAAUXgrJ0a)&7h6``NnljgQOc~J*Yx=i+SL%DMAZ?w#@^P5R>tg`!S5MR%Dr0kOi5#PjkY1tHDKEI9e zIc39Bh;LzhZrQi_>{iAXmfgo^Q;Z*1_Ax%Yjq#JpE>0tUCgZWP&%_aLXMB0tXYum+ z9UO~_vd=T#$#`YileLIGa=jnkR0>yDL}uYBdc&N|0Swh`@tKK`UyTu-dS-lWUZ~Wm!bK` z{QDk6$xf>r^4`|kH#6to7$=9Vnz;7EtmvbBlxVFI%ZbAEc3B9^Dv6C{&*7V>umdhy z_Pd&o?zgO;{Ry62|Ke8U9L;i}TdnnrkYny57FIWm?lnp;YQJm4{3|T$59r3} zEg(5gm^RjpKfsH^=<8+pJ8;G`xElo|pwPT@QxoRTU%OGmrhddO10}n3<2w+Gbg}p) ziT5G?`Bf-3D3(8_ z+CJlW)u$13kx7djssC8Xk%~vqNtJh8u((M)-b-}+k|$JKsF;uIM9Vs{xE!W$q@Xp6 zE6~o9j)MFaLb`h85=N!LPOWq?reOsLpK&}# z*iMHNkd)lW$cT*l89Ew;{X$34iiC~=*w*o&i6QGb6tL}=%a6j<2AQ$&v#YDuPK;-* zwNn%0Yx5)7p{f4dTDWqpg+ZYpQQgp`ZcjG5Hs9FPs2uCo>=~J2Ve@doL#C#+yWyl& zn3Jz7s6oGShJq$1cVM!x29wdB+dZ|XFsrEY*M0lM!Pjmb`dIh^^X}b!*}ePw#zC1g zxrxc@?AREA3NJBnKm*JzI(m&(4_aW)5bYb^gE&@u#QSptD!!kdY^q3B;(RXP-G(d- zB3_vt9T~{80t{q!Xf)dgcR3U_PHDQ_{_NzzF_ST{zn?`W^TRpyhLPNUw-25v*}ln9 zz7&`-GBunVhufU;rBi7FR762K)r-{Ata$=as21@2Fdo`JI^K^2v`D>ImD{j;DnB&2 zCO?9;TsoUwGd7-6Jq9G;MTdBPMC!t$1G&D*sd2eOZWeib31oTJK9PSD+m2UGOit}) z2C!SAYwBv%U3P4$u)@Fq06JXb$IwN5>C(w_|ufcMX|lK=8@~!QST% zWOHMa`Oy(psQZuny#wR9T;TnvVPbL!P~J02UqSW4fvJ%!T>MypO7JQxd=e<+vMK&( zpt`~Y3>oVm>&tTh*_qLO`Ypf^zQN57=CXTLCX43bd&%(@-$kjOVASm_%w#)f$W+A@ zFg&OMB|Y$96umg$mi3TOB6u7FDOINyEXAf zm7oBhpFD_LfMU<&Ai;q5Gqwh}(>FCl7$ap2DY-rlIj0|hQWV9@^vuw)11O59e$Jo- zQYLbf=MU=^seZay<;;pF1dv28!HdA;LIz+IoNj0oW+2OH6m|0>6S;AX6WId?`gZ5t zfzk1-G*yp~;11AEy=r%U1g^7$A+#FfeIt8vZeKQ=o6w`CTwpsDOIK}Fe$!wPG zE$V|#Rb*@T)PSBbaH7Rcwa!&FV?L>Bbrl1B+1#W~lCc&fLlJb#3E1UL0ouFZ68U&wW`uVc4I%;yjU53ayhiBWjhL$hbRgE4+Af`n^(eP=vfPYGc zD(vck&>}2_?w0nh&53r`otWC~rd)Blr5i51#$7iSw}x_cwUeWR6$dI~_*w4GuI^-~ zo9^oEX-T@totb23YqHg9>Fz~NkDIOls*q$=^`82HPoj-pes4PI?r7PX=y5Ylc2k`h zw=I#*)YZBjiJj83y{HWJWOj8YQPI@MM1Idmu0KYTyPI|~gHdJ=-Ios>aQpLnu;j;UD%{K% zdu-ANhDQ4)ftgINLV85=S6b>b~*R1v37y_-(GA=%aDnhy2s;AmmY>uSADrdxohZg)>t zOER5~nUV#msHipB60dF2$kANg{Ca=M#&~^wYkN_L(y7j^?E)LDIxuks zCb61o!QFUrO>;wQ8;Wr%$Xu;GvuS5Kg_NFTYYOuw<924YR*duw=c>lWM<++C`iAm- z6O}Qh#3Uu=x@c(E4upLZ!$9^5*G;55IujkqSj93`ym(Tk&+5sv2?+Xz_V*o}K-Wp$ zP=y!in*>$fJvEtQji|DqpzBtmN*8=tcCcb6`l}<>ZlC_R?rtuOZe6V+MFmtLo#{z+ zZZW8n$aHn2S};L6)4gbQfJAhslfA87?)FqVwK>(E%IvDxUKzuiWx@%F;;#uDHWK7| zZ@%B1)Vxc-^xK~Y==79(!BihgSQxIhL@%bfqL|z;(F}SpGKFmq2WsnGcV>)9<&zCA zi17hVDvWrFBQ2ByB+PPw?uqs!h*Tn-#&pTFv`7;?nh}dPSZ-S~k?HL*vnjc=CE1-x zb#<~usZNt@rV@zZ7F3Ii8*Ab_L5zreacm*k*^R`ynkFHP-QDSJsZ1tG%2-ni%BbjQ zXL1KH&X7wXqnkn4usUF>10enlD)%vA416yt4<;$(P#M69_7=B0(T$ohL^_HZ)Fe=- zUx@SAwS;~(xZSPYx()0?eY_UWl6cHa##t>$8~d$0-2^x)Sdj9>`bVd*NvEQ= zy0*5VW?fxVLlc79ns{APT}^Xt4PewxEXKIuis{>A-lG=_iZ#el+<(6-JlR;^c;B$X zAi`ghOn-sF-k?3Q%IwchWGBW(@O)c(2fF9eS$!)c*h~sN1Ee4+tzt32A!E}{OLw6!NxgO|`eW>0~C85=MY4KK@W0nd<%S*m&Qb;l2tLfLd_v zO=0F?R&&X%!jdaIk6ChKipSAKWLd6?nL_@;tci}|Oybq?rsj2Z@%rY5x`uVNb@6qL z4K=m7Q|p`SYKzyK?dcuqmP9A%EruooFm-Rm_~5m{TW={u(UxR8NcgVK7SQ$1u3mpZ zoFUJj(HL^fa>W%990r7~$<4i6P#-3IrowF*g(O3{kaRS~5l(a%l4PEc!EbBtN@Vof z?vsF#QME$MNCx~&Ssvi@=_))zS3uo6x)VJ~H_?f~+mYyY0Fdmud*a(EOE6?9(@w%OiB=H361y|j4rWGTK8JTPa z^f`f%BJ&qA&Hka${W;Q0vdNm(SI5^i)Hm1HHPkfK*48$y1O07Y2g=(7o~IDm$lxZ0 zD=SDBy2P2IrChA$xxSI9F&C`$AV~>G%E(y7IJ}L(zf?hGRSB{myAVAuenLcGq-Tc) zK*Dn|@1YoywUGQA#)qo|DHMegGSMK}=(mt~kIsW9$N_xlb_&vs5F22)LBZD% zsAdoZH12`|X;I9VtyZ!n`u>gXoF*g%lF|c%uQ)#Ng=oq`xSN)Fnmq zdJW`hs;_TcS6`2Hd0kC&LqohV-q0%?b7y<16VicHh3@sL#j{|w>`t_tnb?wag~wew z2EAtAp4^(L5r|v;ON)B3bys(n=5?jjT!z5uad{pDwx-?PqoYH8Lt}$|a?{rjQXr$) z){{(X5zdIgOp^5hs{_YEDij4Ac}H(Dpw&StMQIM0iUPv5b|ipNiaBhohlH-VLy@mU z*nW+bYC8S%XbLDCX%GU1%eY+|YXVgwVbI}G4E-; z>VXpmHv-|`JYJMe8nk<;Z)C4EynB3dbbnSajoUlO{PGW+0*8r=n}=0uIuk>wNJw?2 zrEr`DHEbg4N`BlSttjruHnTsGd zVBO-4m9bMX0xAi#6)c$>+lb-jBb9!U3O-$FL9Pb{Zt3ZY5u_4BD|=G`CbV~&u%GHm zx9w=1Mg@`z$^d(uljgv{_^^f9DZC~s70CnKwkLU1fUjQXO%6pCg@SBbvpkaSzR(n{F?K?6q* zVC#G#4{S&-A%Rhc?nc-ghCY~#Dnc}7$%N2qP_En_^hg%vRJsd8&{*GyCPTuB*VMHO zi5ndn!nBaJ9Yy&#O13mNgVtr*A*!W%G>6A5u3&CgTN?-vC=(eoC<*^ZRT?v z6C#0C4boH*7^xd*2Ek)qMsNzl@Yv+R3Nk1Lid+%WSRRr>Yh__V#~?(cb`n%Fu$qIf zHA=-)7p8oZ5D1|UN?J{Jr&AylfF~r@Mkr}W9(p^;l?#QaCxrkNz}3(rr4^HwsL|qpgQW6#RY!AeZCxD%<+{eEhWd5u8k%a>ab*U=!9p~U z&ka#|O6FbM@$D33uiO!%!<#3Zi3{H*? zfu?w>d!seMu(&a!>`XQj71d0ZMHg}5Dz+xl?peJl2)P(;BCTHhl(5_a{Oi%;GSxu% z)6js%3C{q}+q!zp!YkQP$Q%me!%#7YieK%bCkL4SIZvBrjmIv&&_!$I=KcxNxPOEWE+%qUzlnezHe zrf#q1^fie%0*^{+>?T?=DVR5)vfjBXW>5_T+#vqm+(9=Biw}_8pN@();F(O9Oh!Z0 zjHSVHJCYq;J-d9eXVk#2spZ7`UrY7tPLA##?LSzNts1E6ql^UoFph2P2YoA2^{gmXUm^AS+y`%wW_d@@W=a=o%>Q zV;5b7H)K&?Z9@aNQO2<=w2vHT_FPWt+|UG-(CWbf3T9|cQ8LR{pt0yfwh~Y2HY*XA z^v>wf1;Sz(3Nk)v!}x$~Xtv)?dqxq|W>mqPe`0L_ccb)+6>DHmsKszXYtjqNd?wYA z+@6rt9i}z66T0gjsIirrPToGVx_AT8f1|Zek*xtGGq!_z3RhKuqkq^trIiA)*Xii4 zWLOGSiK4!(L5WUA;?wlljX}QfmmhB$7N|E<@NeiE%Z&_=_QPgWK=WX_qbw#p36T5E zU0v-3wBCCP`eTvF)CvrXpR9p?t>9aeP;yhl>}!;i26+Sv1KcX0)dBxHlxwUHS}_BP zVXYQ6?F7u-mP97GrK=~EOvgwkjKJyth$NKP#1z2wxzIAz>+8>@hJKT&{Q0#I#?Myz(tVt zfpXGlK*TVlMHY}5=!;(>rgD|NsVb&yN~pmoV+OL5{(#1&4=zr~f~rYuQ}IfwqJ$xH zf$w6N2FF^{RMXt9MSb%=pZ;o!I zSZF{oVDIwCxG>=gitZXdYC8&66$#w0N4XDMkK%WxVBA-M4LyZiH#gK|pP zXb});{7?4^<0-mC0EZO1BbBBJOsVs?YtDmQ2bI@C4n-L++IlE7!2fwh^dc?&3<@;! z0Ny3U|23Is!jb&3z>pC<1@U_NGd^rk!e}^yLN8@rI2Mc!P=DlM3=cyS5{{{FL@jY6 zC@>N>)3ATAzwe+$d0k0hZaR$_nxKWF51I?SRhd&Yhd6Ed_IN9$dsD0VK6)yMZhCq) z*3Sc2rjNX;<4LUR5J_bbS8w-LeagBlaGF`OH3PDAd~|$&Ym zMfXu(v=mA57~|ROQehMJX(f`|CRQEMEW~SSNurbn2J_W|NfJ|f^R7%%YzJym2UmMo z%{`QYR|G^rg{Q*q!qU+t;;mR{u33<4tbskbN$AJC0z!wnyLKoE2i(A9erg!r1wtnc zcwn0V&o~CLdt_4dW7EA$d`8NWH;4h%v_h?mJG<3OOsz^0Q`D4XW@lz|dKX?VE#+!U zFJ3k$?T+X73nClyxhOz~H05wjFB{!7@k*dHCG(ZI#pem+%SS-boBwEEL zPTIoMjT>W4Si<+iDOD8cMr2DT&vIMR8A{gXr5ubN7(=>XVC)fVpUDwaz_4Yy+C}4- zcK3{qiss#W*y#9S##U;6IBQ{6!9@`oe$vRGS5pA*6ru2K#-0WgJV4OIS!Ds@!fQ1(i{1br;JP>-{HvNhW+>l0tB$I-!IR z6oe)Q8}7ll>>2MH8x%Z;4^mgapRWkbRjy|W2)LWk4l+E3P8+#S+jOjv(Mhgm{%Dde zV_k%w8Erl6kZB$vDAr=ic!6{?;g$YV8$S&G#~bUKNa782jR-7SU$+hV&nmZ7uI&tf zsX|l1T#o152{6MO#4Ar8+qizcXileclq&fw(00b+$|a<*JgY}}u)%x}nxxsu^wzE( zs(`6*&`Czqm&j!3v`D>#0fKZE>_nT4kfuq7C~i)9Ycxm|@Xlx5HN#_s z+nKD<9*YOch8lN|PE?FdV)*>IJ-Yk+97Hv82r=f7JCwqq2nl&1lZxA5KKLncx)i|+##8wwB}CZevBbry!+LHANOos&Zt?l#&RB=3 zj5<+z6jCQ@_+R5r=)&K(6O0ihD|$&%@o$Y9MMi$Y=yn2%3#d}WZ4S<-V#x)73z`ba z3ErGrihNzW;gyHC2e27)7T^$HIIe`*i4jFYr$+Jz1TyG`;2YGYqCw#7gNk#4-e82c z)=>Gchf5XQpz$o1RRW~2AU#59eh^8e<^UDAc($|G$j=^zgJcx?d$AeH9!SZpH`&>; zOGF*-4lkk!&sS&%oaSm^qOYlMhDy6G4rjTVriL6gHo#|Yx38Zu!_rtUwlBq^LT-VA z1M+1{SE2_lVGUfX4hW}L=#m~=CyWhSK)$*a97<1zLa&06$s{_}B0}hi@*v*a3@1K7 zjBLDdshZY(F9%c1RESZAFpy3r&vaXQg&p$NAdi=t<`^^6a=)G4G2W_=9_kK)-l{zV zL(sTVAzr1t`AF+^j7~gy|3N^PiDjU|o5Y?NR~cg+q!Cy@z+1v=C%e}j%8kJAli-#dtCA7PGk~J4$CEIs$Y~+YkvwkSfJ;Z|;@F&Onyx zKkhN;>2zCQY^8pG67K2~eIxx?fpX+BipEbHAvROaiPc$C*dIcku4<=nD*I0RR(i18w!(Q;uK)Gd-0R z0tlPl)d8Uj-W>GQhB<(<-(REYxZ4WZbtJb3`v~@dZ2=w7KbXe`k%P3rvt%5_Pt3^P#9z%A9+yV^5C6bU$Ofy16HgMDo=@wF3 z3T(6tm^_jNj8DS1Hqw$$F7o5!#K*AxxE>xvnO)7z5V%d;nZ5%X-ub6 z$xN`4Ra5J8J&mejbK#*!ZkGb#zyKb{9}KXtnATUuE&_cunKf7xy-cWS3iDL1QQ;Kl zF<0_Xskl!l5>E~j`$cv@W25$qKpTaDR7MX z`TRux1X#+p-p&@7gSqEQVX1gk``c>0=Y2{f_#x^NEt*3&QDlqdGJ&?uq{$JXQ4GAY zzAE2wHoOhuuQVFGVIm_Qd1meL*CF(kx@~ywkkn!J1@8R57Fy$#t#WJ%{IzK14RJPZ zHUVL{*v!erjD7JprO66NUY@%4cz}8ed@v-C5(JQMT41jEDg_8?p3{mNz@vt1> zx({C1lj72~bm{u_>zArS50+L6SqKWgB4VapY%&7?Kz9{_VEvy_yFfF#(Jpw6kXFJf zDt>mT54I6*O@UTZNgRr9PZtZ7T}bwu1k}HAwOs;%Y@Vp~M8d-Nsa;bVy^Q;9v5&m) ziLdGHH&ZWbhbHNCm9B-QA?*(24^Y)-ATFKFfOwNLrq+v+b`e`*l(01MD1(gI4P8+y zp2wy@ftD7drnG37e+B!ZeHV9Xn6%>86snA^jy2ZTwZlEVHeT0A9+Q~lso(UT;Zt*lr#r%iY{;DI*TVR9DQTrQ~`Emv*>;3UXOx8bf}X#009kV z{K3)v^zAf`8HVDJyJj2oL~m{oSo=FNim_L?+wt7K(Y-m+3($2<`;^J68Fnk>Ij-nO zfz8ve%iCH*$w~=IG0_O>8`R7_FX|{AZ-@lVVZs!;Oy_2y=@eyzK6?raUnQ@1|I5B0 zxSXjyQS}vWUzNMN%FR}}{Z+2)egXjCyrEQ#;#&*?CmL`VdoZ86HgAIhAhxuc7OJ&N zJ^a8nbEvC}_dFD&at9vVu^T-3!XO+$4)DoFVlk}*u~E9p?R4$fm(JcP5(egaD|k0e z!=SGV@SgNT2xzp`16*A^6C;_ueFMfNt$=^m`<@iK3F>sh-z*?xsMf;ggsxa((8FvA z?4u4g-fU}3y+H|@TNB+lq9W}k+Mqb9NQj*s+FRc|qUvQ&D_lKMVM#Y7Q0?$lumgG{G#W=bo=Y&Q zD_kic&mhh7K*Jdao$WKYpiMvJ0D55I7yxUq;WM0b;BovQJwe1R0FAJL0vis+YiG{;4fjREibtLZvR)*l4{SoipvcT8ZwWjiQc0Q}7IU=GZBi1~6Hg?NUtDN9VP)VYYP=-o2j1FL0rb-hI2X; zKOq!aYhN z1k;#@u1)~H6OUkwM88^0a6th*{Gk9R&YUPrJW)FW$*S?hAr6PZqMc2RZci)yLXZl2 z6HrI8aRmvej6Rxqc${LdHN*&`t!10k26b^!G+p!i>Az1%zo@r@t&miiDoW57CRONB z{GUE?#eWBT+}Wk%BZbMbcbLgyt)dHoVZDP!F0S#uW}^5&nCYpgen@;ttRr42`0Xp1V5M3!{JWRWXHq1Vc&ss=RBoPme6RkR~(4 ztzs*wT8Bl-Xa9Q=t#neRONHV(VHEY>AY-CUDhM{i%^X5m0_wvpZVwJrqD2wjq}{Mq zb10SUY0!?X2b-G^HrKdN;z_VLTe~s$`{8q}AZtgMp=f!Vt-l`eH>8Z>T90Iiwhn8sVVyLMrzpdhO zXF=QWRF7g`kbg@xy2|2)(ctS@d9%Uhe!JrAhNEp|>@+F9H$S!?vq;uf;{ef6 zqdj8#`p=)5nAAHnO?6cB6ri>&t$OZ4i4KQ-*rJBAgV_1QX%O5bWzx%XJYTuM4$}GQ`iXpeEIc8tQbJZV>-!{ z%c&gx4lUDjk0M_y4z2X4uWhbxZd_N} z+|WydusUaqr9FNek8r8c=ZxqI$iQnj`D;ue#AZ@2$KwG}9*X9C8j5D_RW8`0$JcAe zHg-rTm15C?;1FQ7Bvb85LS-9^!R*4dZ`TaiW)xWF96cFIF^b5Vtu?fCxbY~DnbJ`F zOlt&;j(VSc0ceBnwq}HjMI+u9-V|M&geLXz~=^pKB?_A?rX4H!D2y<3tOVdo(S^9Ftpx&S-hlh ziX%bGGyx{3t_izlF`>0z3~KOii27nG&WZxsfLx|cP}(ruis6Pe6XQ8JVTMwrB#YXf z$;pFU(nJBEoK;aDSO36K3jP{5O_F?#C01#3@xYrnJw4|vZ$^owZSCObaBeMp z;Kp+Y*W!%uy<*N-%QM*5w#sqvZo)sF9ChuV8fW7TT#Y@3N#ODK*D5_3Rb#c{UdSU; zU^>gjz!^iUGCEKp4ui@YJBS2IA-O--w-;I(aE!~O4)BEBM6J$B&}ZkdjOTVZ*awnl zwzU(buuKuDJt7LXd4DFDffJV$7V`#59cOD?xii@HiCnE*^({u&;42UL-Xr2D5}1}A zHwXPE)EeHIz(+_&ZMkvmO8dX{TbGA{5uVq&K~W(t$sJw2)Ez*bDnOwu1mkB94_|cY z46O+JfR=+4VK+5E(}jn`e@}T982>%(O^X2?gqt|L4fI*=Zr`3h_zg)a`cbMBJ%-4_v6t%&FXw50%96s6ZN|9t43{2#@)TRdG z#i0%zF&JKGfl&sSY5Qovf9*_Y&wp@2TxQ)AOdtaF0!BO*uO$u{AgeV19#Amx;;2K# z0MOmO2M0*X(^_GvgxT#0j32!NAR~gyC-(B7VoVTq3T#ou@L1OFEBOhv8%LRRAiZmK zm}!TCiM$X<4;Ctb^MMmvq`7)&Qf3;M`DwmYUI8LM@W?W>sCZcdxeKg)+#0Xg#~3y@ z&>^0ioXtEoTeop8i+8L_48%?&6(SvhZDf2OiWSV)x z$Px6YimR3a;GUsrjp4o2TLrc#De5X-K;EAIAOlo1(wSB{pg@gt(83@X9Kc<3lyadR z;s|@)%_u5t;?6Z+#V+y~29~-8DyfuviD<6P9Y)KLCuQGN=T-S8USVUg#ws1_kx$11 zTgOwHeD`I4p#TG~8Eii-$akLsi%DjzQXd9uCZAef)PvaT#}Z;;8yLzRz)6|0v(F{& zYg=j1KR_K=qdlT{*1Q3c*5Hw;A^qG*)m-GoBTsB1pWwmONk; z8M54JF%A=M{}J{xLcXSIJ>J{SGt&Hhjr3&V#zxr!$@A5?`SD1F;T;tyTU&p`va&Uj zWoN8OIq@kCOc0*_mRdCkKD1|cw(x;LL#MIQ82|+wF8qQ)Nen{>_<4t7tJ4s@(ctRc zseMJH>Hrr96CmBX%`mfQ8ay41K~M>H^`vo(P`ex=ti^0CYEa3cD4DVnDoQ4PI~-!Q z4O^>(vw7}49>_zlP`tWP=qy~}JQ1V0!8m=X0}()!#QLp7AhoGPIibd@>uch*%}w?2 zK&h>7im$7|>65j&HT4ZVRmtaE!8CgAW_V4Z`5(GjAtS*x3VX8EA?!i$81Wxf6Iz~d z#&aJfrO--3WI1F9pm&}pk-80x($FrJvK-q2to{I~u?=W-~ zoy1!&70G}?SB)DA-&)N(g9btAkcd=ddqK2{&Y>|NAno_vX4Fudtvc}A0xChb>MLTg zK;kT7>?!d!AgaaMRHyi@R4Yu~perV|4QlvZZtE`E32>l@FdlG)7S?|&&QHK0G$_vH z3gnq*0>~K?IBQFtR%@!!Cm{v_=dX5nA#t$a#qB!of2hf6c@cJ0VpFX zwE%{NKK0;B05Wsx*mNeWz&*)Oh(g{7MsY@=qrY;s4_^=$KxLyePNhUbpif2yp&zJUaqj`A zo}C@={m!J_|D-B5>u+LLa-w(krKgP7>xP?#T@LDT!yXkTqanVQ&u_|%=L_T57EjS^ zrnSOjF#o;S^QTxs;{u~bWrmvMAU^GlU%=PM#zB0^L~T44x*Ko`s;+6Ouf-C%4(kfe z0<5pE!%~9{lQ`F?s1u6Ej&Qs%NU}?GZ_%T&LELUG#IeUL(c@_XACmi^rI!A72YrVWT2vf8J^!- z^60Lj#$7w$AkfNVYRKxr;edxw9L)7`*SHQ>#OlRuE4C8b8@)6v|H_L6XTo`jpbW~x zE5K%`_sB7ZhB(XaUD9C43Zyii7M|ZW6ET7rGn2g9+y$PiENDQ`XN@zOUeccLiQ2PH zjfcqoc$2SCb7$Vt4uTQbqZQDIODfuA)L1_GF{mobFONrdccqeYEC$z4Y}$nq+W%0K z>h)OM9Ar{U00at7_ZEwLqLdt6hd$`(jp?L0XvLi=7idar=A=mFTaAGgt=fdvsu?@9 z@5Sny3cYDOQ>Jf6B8m8@>wD(H14JC_>z?0{YaM1=F`IP4cT^ zG^H`*Vi_>R1C@l5?^QuSe`WTpX-=Z(bn#g6#x*(TMNcHI$MQuBHNgvHRBp$wdHwzP zB6>~likwF@(;j4VaG+rVKT^t=ONYBvjx-YfXT50ZUs@8cu+Ec|ff zgHBwWDCEOU8C^Cq9Z!(NEfv+EN=EgkCE5aD7?dwuZonr^baO?THY zgRzPx__$MxQS=E2wV46cd14BVJo8B^UD)uUAORhzfwHXfmR1haL3RRUMlE$h`(;nz z#N^(X_jOGcG2$D(q*GnjSc@Z}q}@7?9>ShdAN}bs=RcX%^hGNh{JtaHpH6j|dbCDkQjTvr_hM${FW81szty^|4EQ zJ%yfo;!*DP*+|2&3U)FmwaRiLh8m?ggq8xbjy_SH-W9sbnrZXRWP}L7uD966WDN8T zo(do$8K(jyG}x|q5ojxVlH8`egPcSKxB02RDXb2g@nHjOLTCjGz)g6HoAlp0O%~G) zz>|tZX9vaGhA3jFwDQO0uKx>bs%kEVB2XX1K#>TamucS>s}OrtcUtedzbK~f^_Qc( zd%ZKzyH{AOZi&0{1wM5v8+KGw#4c0lOg5EG^32J`;4PXAim`>K7#H#zG#sjNQx0x4 zzl&p#KZz8SGd(-oaFT?SHD~c)TLr#=GlNX2b|G$uTNHRHQR2bjR6Cv)RZPs0O2rcz zOXaqX?ip(2_tjK8i#8DI)B9#T=7AFe8gr#ZQX4=EcLVBOn>c<;5fWe5=xJfaildbi zn0d-xq$9352)l}QAGvTej0H_i@_?Pi*ju#^g86J&A<>pCCNgVioz}C)ryhaCBKZeK z5<1<=aCKnIGfg>SIG4SZ(^eyW%n%l(q7T;jiXzJzJu97UO4JG*39cY6yID3v9gO1~AixwY8E`7Xw`B`IP!;qRM;$Y5 z`2ik*;;NnPkXQB$Pmbca5Y0stoSESPNN<4T>gE{~lr*N?r=iN@255`lyvdDZu>nne z_XdPmsHt+s_dlw}M9w5uI3vrVq-jy{doNT6^$XebHge#dWaW#TjJzb@zeqU#BOUpM z?;rW+!l-TPMkpGqimf`QW|e1Uf#ugfN8cm0h6ToF!+Mh9ZM&4dQyN}I>pqi0sZnW8 zs81>)oIHE5o4e!s170Uw$ILJ3oZYg+SPfW!u%vRGa65c9?>R zppJ3ZqP9Nv8Gc*f{Lm&e*_`5xuhiinngdnd@y=T8(CPTHCTX<~%Oc|IyXX^1{)ax+ zaS?Hw+~f=!M-7+3Ec#cF2`m6al9MBtYLKh9r#&WUMP63#@~iW(Bhi|`=P&;+wpMx% zzK#zn-dd!c6^^bjt*9@p?QJc3JE8GvPq&YmxC^z4s>w~-zXu9BC}jAd7J?A# zPT=F9@qpcz3_mv45L{httqGoeTF91RjfXr=btULhQOkDV36|KNk`*g5E zseL*#&Ry-**^`y;HxyKq+?;6bNRw-=u3ihlN4!_6@%eY%E!As%bXdF^A9-s8+g(@R z)QC?bHms{@iZ|p=)!*AJsF){{;ODIw!RaTya+q_$G&Lo44wv_W+A=u*4|*}t^O=kz z?Kj+<#440j8xExvN-Z4p@>ceB??fxjf|$cE{N=tshgpnI;2vQIU@#j^2H`^4qL#A- zscw8+FE~|%H%ju$*+8=$%#mXPci;m+dhPUNRowfW8x)SF_rxl0CD6N{P)9r-_z;md z-+T>@R?-x1Usk@*N8Y6@+&B%>XrkVsf;}4wD`wV1sD;lz%UGWjSA2S)Qg_k_feEX> zeXgZsD&UkNfcAzpaem9ybX!3VOAa=rsLkYKa`=`ygb!5}oX`|d)9G|n8GX!^a|;-q zH{l#+zeUpFZjjMnGdcL)XfVUH$E?BXOIrG1916caPV=-*D1Bx3Dn7?CH8eTnOq{8h zaNT}QLETX-_zE?bgV}hJ>sZT?_uVO7rxZA%zX%SJ;z8aq+Pes0mK;E zcmRxs`^?5+WvS8@q6WQ_n7#Qx(pdDMR zcKVP~aWhkKR3XY0@uw-;AQ$ujLo1ZsPrk|m%`3kQ0WT5&)R^7;lWPNK79Qy=Lv@ZJ zCam!VmnlT>fqMIAmZEvB$?dN#peV=t?qussU&1vrLVr>ayUy@|36Cc&NVSx?!JIgO z9v3FeY+`>J%X{UN0;WOkLJkqlfFY?3& z0lnF?KqZ6vj*Oh^;i)XCX~T&e0gLvLRG1zT%i%XhV|ApD_~Dyj*}b3=I4e5?>4RVS zQ(yCw2I3==#>y_n_JRhW4+d=ut>Cqu6l;Jqq!naFNrud;yEt?)EhK)_qBe=Gy!|ZFcs`+fQx`R))qn{-KiACRy#oAT$b1cSQ2F9%*---M7;x0 zDypliWm+k5MGoXuN+iwR*H<^!*EBXX);BcO$7|~w8|v%h>-bUU+Iq5J@)o@hM17M3 z7*}xKWq{q%>3mEX&agbgpp898@Pz8i55YgrV^Q^IKV=JR4`lvM-^3W$(l>3BqGDZf zH6&iwLv0|Gf-_a8MMwRl-T(;x0V=S7y+64o-hkcNT${{}Sb*HWE1FgESw~JE zpDY8$oqqrUb$PCWG7v>Hd+M&Js=|#%zWGLTpnzbIs2t%NWKzAS5(92-Sy#wb&;vWvFF zv+Jm{NU(Jb9}l2aM-IXE-0g8Zz<3`%MZsZa5M%(m3o8OCnz85`gMNWi z^lMSJ{KT00GNUK508y2%M{w*EZ5RJI5i^wp2488>IY8;iGh_fPx&fv2QI={pX5ojYr|%bnI^aSqc~2Q4LIIDOYJc1f{?W*-C|LkX-IB$P@y;n}XZ z7UQ`5|AD1gG+C;F+D2ebv}AK|++Pk2^_Ns7pcEMtfLVn~qG?9C!fawGBmtb`i=%RR zy1bmbi=`5xuK1^FjS(DEYn!lfp%JLvP}|hh(2S3XLTSYiM+( zfS4$zq3{IVFDi}pK_{YR3^7}2N=Pn4=|Yv-yQfE14f8lO3N`V1e3GjkM`TaPr_wOi zKzBG8Do-O7M>jZPKv!}v@ax3UKHLLLhe3~cr(3$Z!T0WhA*REl#KA;MX`fIT55tv} z6$}s$aN*auG|nj-vrq$liiTR5>Z-9C;mps5x_DDlZT&hNTVLByM+0|*90J;FWOI++ z1qdYfDDtocagHKFLysv3L8@)=BKrkcG417`b-Fk`5!(B9kxDd|Y1SF-)h8z%8JI$q zv$+cg;&a-_>5>vNYq8pai?fg_@IgJ!86IaPj=wP^_$TBP&fFN3h%@Q)*6A;}aKolI z4&KMSE4+Q~*oSMR?wQC?fvo*nWXQui&~MtXh2fXavcMNig+6X7Vx;#Z&D8pO9*s;p z!udVvI6t67>x0=oB!|ETy`G9c?-X>8!n@74ZD0(+ml`}{NWe47w}|K?#z0i{H--6P z@r0!MKpY{0-YBYJg}a+n^USDv>?I7rE(AEhh62vt>AvouH{!)QEXbIe9KKXPy$$A|CEX0_%9L1xvZ`X}mHx?N^rA ztw7?+StXm168=c|xRUs6L{=SNl3@6^&azri}IhSq}Zw@&eG%+s9J{JB!5m4vIJCGE!`x;$L68)3v*c@^g?Q`;CjV{XYOnH%1;#%WHWvhZou z&XSw>;L^1vOW387EvjRQ8fU{Z{VcmV?rb=eLy^S1l3gmZrMBcJQuxojhAXA-(r&b_ zvd&rd9P6&AcUG+3j7Vi!c=h}e=LAGga!QUt7zriXh z$KG)j%Ac^nId17HL{9XE^E?y^A8ac55(`Hkv2U8ghgLP0y!9kxEMM=GG;C#M_w#nc zY0h!~wG@$)%=6BYPh5ceWgDF1|N9h{`w_}TN}iKz{bI&*yrLbmon^mlL)lfQJ11AC z`OwCaFCs7eR{M;SCmC6`$yqQp50PUNCC@Se{rd}_E{UFuyI6V2B7_lV`A^@7+se%) zt-LK602W2U$Ca1-h3K@xDJhFFp|Yi9H6r2dttD?}LNt5bP8Pq2?F^rgbQYX(1G0}X zT`BpJWSrRMEWDO|I>BT_{O*<8H*{q%sBEu0^DJo3rGDs6Twl(ay;~Wy&dMI?MJE*b%4R0%k{|@3I#GF(Torc4tW) zTd=&tiTx2}@v53mr+H-pX+LqgoaUd6N@88Nvt-vgK2m>{vn*G`SVNDqvb;yK-x5tb z%N}qTkAzRnI7=@>iSQSqz0R^GRE5Nopt zjqF@WM!Hzhh;Hsgdv-ZXezF_sPSetJQ1~~q-w+Akzwm5l$N?9hNr~_WDrGr#)ec@yZ07YMz{auXZQ`{H{dMf$paqV- z8qIXqUcIOy0fN^Ug<%dsE7me=oq zjyd*u(()!Cg<~hAJF|`~!*~05zjhpy)JU!~**dG9*~hEaLfK9C8=zWX9xkCN+& z4UE5MFRwq6XU~$F?;B#ub`WaEz9Y=*kn|-Yz56vLsbhbrk=N@m`5k+Kl>EeLjK4v8 z^wLd?ZukYnZT34!OWH#7GmGExu9=)7qk zQ+^?3+#bfie=e^#0@odTleFX%Y1L0GrmPiQ{X-Mue>sQO3#3kxcE?Wl^7?lfktYQQ z_DK98tRIg3xmI3ROZt~(+^+> z*Nc|%y80GgzbSZrzF^eN^O=&DcO4UD{9zfjTi?X^DT0AL)lx>r=xK@XKfsh9kMa72 zqj^15a{nT@camWBLlsQ_J!mn;UEX-%EXFHFcs(TW4Bg21Jb~W54UEqhTzyP1s!3+n zM`eybAZ`1t^o|R@V}C+$Ho5x*Y67EoPQ$YpB3m; z$SA)OV#>H+X`9UPxLj`+jJm0vxeNC5`cY6L$DR`SH%ObG5`5b)m^nwVt4<*KTY>FS z!z{nNj@P#fO#ULRs#(L7%jqtypq>F(w8R$+6x6Uza{ZIr6t!~#WL@f_^rc?e~yr` z$}rYKc^52=;l6U+5?te_Zo##29;$JgUqEZ5#F8$iF70FMPCcJBt^IeFuKNsOv*`tn zNy|1uvGc~wxMn`jcJ1oB71!JuoG}9*ChlKwFK6NSO@!0L&dYE;a0{Qk_#=ePjrPk# z=Ev+c?BNUca4&-2+i&ALz8HFfsP>i6L+uE@7MkMgp9n46fZ#i!o~;PJ7y3I|5dC53 zrIT^@i_o#eqhE&3VUcG;UmHU3eCT`Z`a8mv7b19P_#rm-u5dr^-V=T+R!G&|5f0dj z6ZYu)1wRIYM|0Pqrs%*1fF`=L66%N!eGgAYhocz4 z=*SZ+Ir=D2DLVEDKo`B>d0xlQXYRxgf#%W46Ee6?eU>Hn?O^@;x1t5n1CLye>%kWQ zy6BrM3_F@3l{2OFn430Fd(``-6aI^uzW9@%JP4%RtNMN9|AZefQZL z_Tuhi_6taKK5pOEjk|}`a}TTMKChnpf_mbWn;bHIrY14Pa@?UPp^c*>qYtE0bE zjek}({#UB;zm~>3FWEPri;}O{2hcI+ve2vOgL7r*a2JAWLw69~he8}g=em$oc72Eg z>)a5MH{23B`9u`CH6+cwEyU(JZx7v>MR0rQ{p|Z4p{h0%d1t5#fpcdl&&hn3Jm=-0qCd5(xI+Be9w%siZ$HD;?Qiyt?Bd_;sWJqI?L!wLxIPqO@81@B zCl`UcLf>vjaBt|`OAve_^otz`9td?2WM2qD@cS2U+^g@a=@vyTjW~MsQcS z8fYpHl^r*RgxQU3`<#Ed4%ee@;)s+lVXKbbMhu+$u1&bk`x58Z{A!}Zg83u3E}S}F z*Yc_GZ`k^W!tW(sJQkkSh~Qh{GXUk#lVPd?L*EVaum&&xM;t5&SNEI`94v9=`y=e}=CoMgM#FbDWs}9sWvbdI2W9MkKDs)`b^{(7a{m%f_~ry;o9x%)~4S30fh5M1M|CVE`wEI%5-jn0`Yd5hDWMDTX! z7FPByC&Wg)$GL=Xd7txxV-S46xsTKEL(XFa@<*L*r3gOm{DMvTr1J*gqVs^0EJyHJ zXPjvMu=8oY?~Bege8VG7WD3Ef&OKEK9(TUN+5Ci4%38kd+;J^}?>bvJ(%*M(AqD?| zbIz#zjS%FYiN0e4g3m?2#_9k0 z=y~ksm!c2zxvxZPIolqK9^eCCkA8^=_RZ+=tnA6?)7ua{9jzeD{x$kdBG@z0)n_C4 zWwde-!Sm6lh*B>^(+vI?{VMVLPtm6_-n1TUBVgGF8~-L)6N<+Fay z-d;KDAoe@py|ZTV?!&W|k^v2x|PtGbKDn2l49}(rV zv&JhBd~wzUyZOkh^`wrE&YE{Mg2!iF!ajU^)}3!e@WWYuy&l0&X074`dS=#bw;*_S z)|W_vo|{$9yBB7S6XY+>dS*LjyQ^%~A_RAr?Kls?hsy3@-#=RR{XBw? zm%W*ZpDlaLLhx|egEu1hV%fu65j;}%4XkWJrB8T>P>)*ys zZ9aT1;;kPBU1MH!>D7mjy6S9PEI++-GLudOo*}_PKId}J5glt3vG9ErMG&}vTo6U%^0?py1Ox;hxF%N~wB%pOClnp&edxN>S*jh4MuHCpq1=bVjKvbEZ4oo}Ci?|=XM z-~ayie-3)j-lYs=+f1Dht=wxWBz2$ZO$z&+>BlJax68C|0L^&=CF zq23jAC#V0Opcwdzx;>~1lxDsBr#YJ9qeDJS@AmTrp?IO zeq>R*`cbIXKK`v(6lA;NfsS0*Le05E%q{8y&fJDMP@TIFA=NxrCNO_HW=}1cNuF8z ziG`&Yrdkw1lNEQsSJm0yu~kViC6w9`eblmtVJ3CXu`FQuS@u=2kkaPePiYHwu=bW` zS?hXZ1kn8rhv|vL6sa{QFwd&j38SdBvm=3ZF`>YE6I=QA_X92(fUv7BzOxnB@cJ5H zPFv>;VaR9E&;}*b0XtH7(FKMXo8TUt>wVtlQjG6 zckTj~q*S4{tQ%%g=FXV`tjw2zu9sb?T_?Xe4B2|Qor`pX{AmTUjj|u@bxk~wp~U5` z2gbk7z?pEN6FB)3#=S%*f{VttReqbQY?B|lTj+UoHVV?B2LNYGhQXEecVHsL{xpoH zWaM#dneVVXt27*#{Si#6IG!&C<}6MF=H3T~QD&wN1UmQK1I#On1Lg0e$;VG(1%I9!3Ll@azX;K=SO;HbCxh#39#YT%e@9D?NmtW9O?|0V#(?STs@;So?k z8UJiGZ~{Isl9Y&jFrubF_?&F54wI)$$e=kQF4%z+&v2R}w`~AM{fiPO?Nou$$y7LI zRWmU5h5kTmH=|9Qlkt6rd^ejtEIYWucgnZ5BYQ+X%t_oOj}Jz+Tdt!Xd*q!yWRJ>W zR%CnSuPN{`IfQ0@TpmX$`{d3$k?oh)Cn9@I{sD1Z(>eCtMwlu-h?wvntTC-L`pL;) zi|secpyzF;4)bkvqXpX+=a z5t#5Kh~qeOPP71XXVwE}&e#HUo>>blKRwPE z)et}X7&CMM(DG3oaO^iDjk>4-PSCMEg+S|k`a;~G)xh{-I=k&Gd{Uc-h*O9+io0p5 zL8pguUhJo-amF27tC@FDr|i$^RgN0=lC#qc%(bA2;(QkYN6Fhvi{!7TcNBaqbcl9D zfcBiv1lGJ91+3k62XMD+8;)$9X*d06qp7{d=sflSOr*w7t)#0&#sYDCA~11B5zzJ! z2C62-!hzLf-#x%7p%AC0EP=}ER9h%;S|*I9rp|=f)#>9gRBezWe6!HeR{0{vqZiyp zZ?lxJcEPXui@HT z<@ny9ufNRwa_k?rjj&~b&cnY)v##`)SxV7|i9 z&g#e7qI~LC@?nyp&5%QkX({zI*;HE|aN3KUiPSAz(bLbcHm$!OIO7rqrKC@$Z`!}2 zEi*nG1k60K4w%)$2$Yim-&Asw+4sz|qk+y~YMfU|$@zc01z3=12hJLv4=k*v9~4D| z0E>$$p=|FQ;GE@bRX#oySn(loUgcom{7syn1-A|bR;E&)g%|kDamCQvsw%0idzc&O z8N&Ij`5_kQO`$*4?wJDg<+m6kPfAaKCu(a=Uu8;pf`Srlttr(<;nDhv)7KjQnQJQr z{MGb_dP9P>BMJp^58efgH?uNf(v85$8)01~@hKC~mPTJnIy4uU98R7bKkwUbf)u4= z73Xc~y&TWC@@5!JbCK}37olK+nL%*gQ5vnWm=oF3l@9dJEd;jpECb#nU#9K0%U`WW zwol%Zf$UH6UpO&O$p2ki9RTL+rsn)?Hw` zv+`+revh0&w>d9=MoWGse?AG>Df4A7vTkz*C*lM1_XCmjnD^aeXg>9BYL&Vu2sr%* zPH|c}F{6_sa$w_N7$6c;pj3=xC-W{>04qn`4D^hqn|&^?8)gV=K0+_^Cl?s>sAuT+ z7V&qN8s)Hqj@z&lXb*K6T*rG%Bs0X;LGaF)uVvUlNf}W_c&|wJ6Te&57H#biv0rG z+||h2{CZw5?(kD9ufIjI;4PC5(@YDNu3W>%{A^ew`BF!yJ~UllGjyV zgO-BQTkxAL_j0|3xL@P}8-%+XeI9h&41oZv){8E&y0ulZVoOP$TLV_^ZI8zMf(hk1 z>1(QO7WeMzYMd1-DE|6Z+{0Spw$bhJH`A!UE@6Hp_@@LHm&(?dgUdkhc`Op^m=F^s zJb5&}dhpew!U9?(vvGr%(95?Gd>g?xUN9jSe2Asew?F;V%zh7m?*RDVFZjof-+LxVNo6-nGKM8Qu+zcaeb!80IW zB+5j;?1$H4Tt6ComEfxcAN*hIm-XzIX$3AUM6JyM@Et$}^%3&OhxH__#U=QTf$tb9 z>?k82){iESd|VIImE*e%zRTdF?M0$IrVY3RpJkmn*aAUYv>F|#19`XM5_|{2cMyCg z4!}s{W7>{O@EzV@4nB;@##6aBiGFt&d=zmKd?&$&*T&u?`1YcN^2m1{eCNT3Xw;ho z-(i#pKFdao14j6wm+PvXpGVn^xH!j`cfc+nXfKh3yi+LPn*#aF51WI{AVeK`#r;2U z&wj}l48GuB;5&_a&IS1ff^Q)Bs2|IiD35xa$0g)l2H)lD$RqEk0esR3X`@VO!-X%u`$B*B+z@QHD(jFY5)ZWUZt z$C1-VUiooJIu(8`A1OT9G~0<9%fBV5RCInJ> z)(y+Jrqfy`F@EVZBNf{B(gQS_@rXA;T13Y95l?iQ5loU8Uv&Bgjbonfckhq?8T7N=u-RiXNcwC=4jrTz$u0x&X>lG5$8xnph z%uM3CVjd)gG1Jx$^B{?DP*+pXH4%>Wd}>}zLD~}}kjA@BKnjxhVtO?NNqDykNI{at zm~p+(EM5AE78T=@5s9hM7lwUJ(hZUov}L`nKj{q6RRMGb=r=GvdXkLRwaA72WIW;V z&MmDD;C}!#<0>-nhe$_wVa3j{e+i4|^nl7VQUtKMi!Z!B099v`Eyq3iQr^@jZS` z`!I<=f_nn~V*@Yc9|kSrO9mo@|hpRiYg-gUwWHynb&TJ|V={Ao%PzxLO(H#YL)vD~ zA3v+WzRCq?f-@(bIQ3dPY%m80@@NN9YrD$QD%{@+U;7x`#xcHS+>C+W09~VA&9w#4 z#gC5(je`Ir{zXFlSmyF9b939{Wxh7MUHe4CHQAbA<@Yc=*Tm&%ZP$z>^){&E)=gS# zYLnODDlsN0tAX3p;S1B+7FYdJWKc=}{3-?8a$vKAREa za{O0S!NlZ2k)AjiSHK5YEb>V`?w^_>{|E1Mio*Z^ diff --git a/Debug/makefile b/Debug/makefile deleted file mode 100644 index 839898c..0000000 --- a/Debug/makefile +++ /dev/null @@ -1,59 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include src/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C++_DEPS)),) --include $(C++_DEPS) -endif -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -ifneq ($(strip $(CC_DEPS)),) --include $(CC_DEPS) -endif -ifneq ($(strip $(CPP_DEPS)),) --include $(CPP_DEPS) -endif -ifneq ($(strip $(CXX_DEPS)),) --include $(CXX_DEPS) -endif -ifneq ($(strip $(C_UPPER_DEPS)),) --include $(C_UPPER_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables - -# All Target -all: Test - -# Tool invocations -Test: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: GCC C++ Linker' - g++ -o "Test" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) $(OBJS)$(C++_DEPS)$(C_DEPS)$(CC_DEPS)$(CPP_DEPS)$(EXECUTABLES)$(CXX_DEPS)$(C_UPPER_DEPS) Test - -@echo ' ' - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/Debug/objects.mk b/Debug/objects.mk deleted file mode 100644 index 742c2da..0000000 --- a/Debug/objects.mk +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/Debug/sources.mk b/Debug/sources.mk deleted file mode 100644 index e7f4bf1..0000000 --- a/Debug/sources.mk +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -O_SRCS := -CPP_SRCS := -C_UPPER_SRCS := -C_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -CXX_SRCS := -C++_SRCS := -CC_SRCS := -OBJS := -C++_DEPS := -C_DEPS := -CC_DEPS := -CPP_DEPS := -EXECUTABLES := -CXX_DEPS := -C_UPPER_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -src \ - diff --git a/Debug/src/Test.d b/Debug/src/Test.d deleted file mode 100644 index a97181f..0000000 --- a/Debug/src/Test.d +++ /dev/null @@ -1 +0,0 @@ -src/Test.d: ../src/Test.cpp diff --git a/Debug/src/Test.o b/Debug/src/Test.o deleted file mode 100644 index 6364b50aba7f21530de3c7333a5b2abdbfdefd24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84240 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�juc7Z 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 diff --git a/Debug/src/subdir.mk b/Debug/src/subdir.mk deleted file mode 100644 index 0775fb7..0000000 --- a/Debug/src/subdir.mk +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -CPP_SRCS += \ -../src/Test.cpp - -OBJS += \ -./src/Test.o - -CPP_DEPS += \ -./src/Test.d - - -# Each subdirectory must supply rules for building sources it contributes -src/%.o: ../src/%.cpp - @echo 'Building file: $<' - @echo 'Invoking: GCC C++ Compiler' - g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/Release/Test b/Release/Test deleted file mode 100755 index f9587a80ae96c6390134691c3ca6133d11103fd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12793 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 diff --git a/Release/src/dyn_prog.d b/Release/src/dyn_prog.d deleted file mode 100644 index eaa2ac8..0000000 --- a/Release/src/dyn_prog.d +++ /dev/null @@ -1 +0,0 @@ -src/dyn_prog.d: ../src/dyn_prog.c diff --git a/Release/src/dyn_prog.o b/Release/src/dyn_prog.o deleted file mode 100644 index 1fbeda45e18cd800f7c62aa9934b381710e7d2a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 644 zcma))!D_-#5Je|dt3nrb-Hk4!7V4vlLhV-6P3g{sD@kHdC`rV;fUf#0{YAf^y_3w~ z>!P#+mos-}GH(PwX0LP4^GL&^3SAu0r!+j$7cl-y}%qoXCW@vToL$TBiv8plzBT9VqxEZ&y=%=+QG9`z62VTSL< zbw!l-iUIUDbtJDy>$kak^c&D$bC0s`$=TPHoWbw1#zLTol_o;HuLZAfa*O9?oJi;# z^Gb_g17^>J>QEKBg_@AN?})h@)HHOTdZk;h()mm4%%A@d_U5I!!4)dS6y@ zdQ&%ujD62toPcg$bEB2Zj*iT0>|!#BwPey=o@WJm#m;3WdR~vMi_@)|`UkJD!@l9J zirTLTK!4Lf>ZXkT+8bitMV{Ncm3tHK-nG;WewXu32vqT+g;4$Vq4iB3@!pCH3Eg8h zvsO08O9)xcd&6({F^<<-2h1hTh>?h0Z^2@9!VN`&}oj-HWUr+{dBeE +#include "SvImage.h" +#include "SvProcessorV1.h" +#include "SvProcessorV2.h" +#include + +using namespace cv; + +int main(int argc, char** argv) { + Mat matLeft = imread("img/left12.png", 1); + Mat matRight = imread("img/right12.png", 1); + Mat matStereo(Mat::zeros(matLeft.rows, matLeft.cols, CV_8U)); + + SvImage left(matLeft); + SvImage right(matRight); + SvImage stereo(matStereo); + + int line = 0; + + SvProcessorV1 proc[4]; + + for (int i = 0; i < 4; i++) { + proc[i].setLeftImage(left); + proc[i].setRightImage(right); + } + + while (line < stereo.getHeight()) { + for (int i = 0; i < 4; i++) { + if (line < stereo.getHeight() && !proc[i].isActive()) { + proc[i].run(stereo, line++, SvProcessorV1::LEFT); + } + } + } + + imshow("Display Image", stereo.getCvMatrix()); + waitKey(); + + return 0; +} diff --git a/src/SvProcessorV1.cpp b/src/SvProcessorV1.cpp index 4067f37..3a9cba2 100644 --- a/src/SvProcessorV1.cpp +++ b/src/SvProcessorV1.cpp @@ -7,6 +7,11 @@ #include "SvProcessorV1.h" +SvProcessorV1::SvProcessorV1() { + left = NULL; + right = NULL; +} + SvProcessorV1::SvProcessorV1(SvImage& left, SvImage& right) { this->left = &left; this->right = &right; @@ -21,7 +26,7 @@ int SvProcessorV1::match(int x, int y, int j) { int error = 0; for (int i = 0; i <= 2; i++) { - for (int g = 0; g <= 3; g++) { + for (int g = 0; g <= 2; g++) { error += diff(x + i, y + g, x + i + j, y + g); } } @@ -37,7 +42,7 @@ int SvProcessorV1::diff(int lx, int ly, int rx, int ry) { Bvalue = abs(this->left->getPixel(lx, ly, 2) - this->right->getPixel(rx, ry, 2)); return (Gvalue + Rvalue + Bvalue) + - ((abs(Gvalue - Rvalue) + abs(Bvalue - Gvalue)) * 4); + ((abs(Gvalue - Rvalue) + abs(Bvalue - Gvalue)) * 2); } int SvProcessorV1::match(int x, int y, int j) { @@ -57,57 +62,64 @@ int SvProcessorV1::match(int x, int y, int j) { error += l > r ? r : l; error += t > b ? b : t; - //error += l + r+b+t; + //error += (l + r + b + t)/4; return error; } -void SvProcessorV1::run(SvImage& stereo, ImageType base = LEFT) { +int SvProcessorV1::calc(SvProcessorV1* proc) { int x, y, cursor, closest, tmp; int minErrorValue, tmpSmoothed, matched; int precursor, preprecursor; + int dist; - for (y = 0; y < stereo.getHeight(); y++) { - cursor = 0; - precursor = 0; - preprecursor = 0; - for (x = 0; x < stereo.getWidth(); x++) { - closest = -1; minErrorValue = -1;matched=0; - minErrorValue=-1; + cursor = 0; + precursor = 0; + preprecursor = 0; - for (int i = 1; i < this->windowSize; i++) { - tmp = this->match(x, y, i); - tmpSmoothed = (tmp) + (abs(cursor - i) * 5); - /*if (tmpSmoothed > 150 ) { - continue; - }*/ + for (x = 0; x < proc->m_stereo->getWidth(); x++) { + closest = -1; minErrorValue = -1;matched=0; + minErrorValue=-1; - if (tmpSmoothed < minErrorValue || minErrorValue == -1) { - minErrorValue = tmpSmoothed; + for (int i = 1; i < proc->windowSize; i++) { + dist = (abs(cursor - i)); + + tmp = match(x, proc->m_line, i); + tmpSmoothed = (tmp) + ((dist * dist * dist) >> 10 ); + + if (tmpSmoothed < minErrorValue || minErrorValue == -1) { + minErrorValue = tmpSmoothed; + closest = i; + matched = 1; + } else if (tmpSmoothed == minErrorValue) { + if (abs(cursor - i) < abs(cursor - closest)) { closest = i; - matched = 1; - } else if (tmpSmoothed == minErrorValue) { - if (abs(cursor - i) < abs(cursor - closest)) { - closest = i; - matched++; - } + matched++; } } - - if (matched == 1) { - cursor = closest; - } - - //stereo.putPixel(x, y, minErrorValue/20); - - if (cursor != precursor) { - stereo.putPixel(x, y, this->getPixelColor(cursor)); - } - - preprecursor = precursor; - precursor = cursor; } + + if (matched == 1) { + cursor = closest; + } + + //if (cursor != precursor) { + proc->m_stereo->putPixel(x/* + cursor*/, proc->m_line, this->getPixelColor(cursor)); + //} + + preprecursor = precursor; + precursor = cursor; } + proc->m_thread.detach(); + + return 0; +} + +int SvProcessorV1::run(SvImage& stereo, int line, ImageType base = LEFT) { + m_stereo = &stereo; + m_line = line; + m_thread = std::thread(&SvProcessorV1::calc, this, this); + return 0; } SvProcessorV1::~SvProcessorV1() { diff --git a/src/SvProcessorV1.h b/src/SvProcessorV1.h index f32ad08..cb40a98 100644 --- a/src/SvProcessorV1.h +++ b/src/SvProcessorV1.h @@ -9,6 +9,7 @@ #define SVPROCESSORV1_H_ #include +#include #include "SvImage.h" using namespace std; @@ -19,18 +20,31 @@ protected: SvImage* left; SvImage* right; + std::thread m_thread; + SvImage* m_stereo; + int m_line; + const int windowSize = 90; public: enum ImageType { LEFT, RIGHT }; + + void setLeftImage(SvImage& image) { left = ℑ} + void setRightImage(SvImage& image) { right = ℑ} + bool isActive() { return m_thread.joinable(); } + int diff(int lx, int ly, int rx, int ry); int match(int x, int y, int i); - void run(SvImage& stereo, ImageType base); + int run(SvImage& stereo, int line, ImageType base); + int calc(SvProcessorV1* proc); + int getPixelColor(int cursor); SvProcessorV1(SvImage& left, SvImage& right); + SvProcessorV1(); + virtual ~SvProcessorV1(); }; diff --git a/src/main.cpp b/src/main.cpp deleted file mode 100644 index 8fd9c5b..0000000 --- a/src/main.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/* - * main.cpp - * - * Created on: 27 июня 2014 г. - * Author: andrey - */ - -#include -#include "SvImage.h" -#include "SvProcessorV1.h" -#include "SvProcessorV2.h" - -using namespace cv; - -int main(int argc, char** argv) { - Mat matLeft = imread("img/left11.png", 1); - Mat matRight = imread("img/right11.png", 1); - Mat matStereo(Mat::zeros(matLeft.rows, matLeft.cols, CV_8U)); - - SvImage left(matLeft); - SvImage right(matRight); - SvImage stereo(matStereo); - - SvProcessorV1 proc(left, right); - proc.run(stereo, SvProcessorV1::LEFT); - - imshow("Display Image", stereo.getCvMatrix()); - waitKey(); - - return 0; -}