MZ@ !L!This program cannot be run in DOS mode. $ԅ9WWWVWWWWWWRichWPEL$U  6> `TvP d0X@h@.textz h.rdata@H.data@INITF   .rsrcX0@B.relocZ@@BUESV5tW3SSS@TSDPXt hySeYESSSS4PXt hry2eYESSSS$PXt hPyeYESSSSPzX_^[t h.ydY3]̋UE SVuW=`3@3SFFF FSFP^TdžSSF$PSSF4PSSFDPׁƨVp_^[]̋UVuW\Wyt 6W8dYYWt 6W%dYY_^]̋UVWutvhzcYYNT"aWt hycYjjDVX^]̋UVu\!Wt6h6zcYY^]̋UVVutvhzicYYNT"Vt hdzGcYjjVX^]̋UVVutv hzcYYN T"wVt hzbYjj$VX^]̋UVEVutvhP{bYYNT"Vt h{bYjj4VX^]̋UESVp(WUt h>|YbYV] {`vtdtOHHt4HtHuwUh0|Uh"||Uh|eUt}h|pUUtmh{`tMt8Ht%t3UtKh{>#Ut;h{.Ut+h{Uth{Tt h{iaYFt=t)HHtHt HuG@ @@tSSue8tDSuV@ރt)tHtt@$ŋ@뾋@뷋@밋@ 멿2ҋˉ{PVE_^[]̋UQeSVW}jVSNuJjVPEMuSPjj@\~WMuSPuPEE_^[̋UVuPQ$PQ$\~PQ$^]̋UVulPQPQ VuPQ uƆ3^]̋UVu Vu PQPQlPQ^]̋U EVu Wx(EEE􍇔E9tSSB;tUX]Q ME9uU]ZPQ HMU;u[F%PL}tf2ҋF PW=_^̋U EVu Wx(EEE􍇜E9tSSB;tUX]Q ME9uU]ZPQ HMU;u[F%PL}tf2ҋF PW_^̋UQQW} EEE9?t~S]V7xF@;Eu)EN!3FFHKƉHCMƍUHE9?u^[MUQO8HGEM;u_̋UQQE @`VWxEEEE PDu uEPPW$u EPPWu EPPWu L'EUPa2A PVHME;u_^̋U )Pt h|\YESEEVEPD]96t,W>O3҉pHMǍUHE96u_uL=O@t h~|2\YEȋEUPaa2PSE9EuwO^[t h`|[Y̋U EVEEWEPD}9t%S01Nu]pE9u[BUu1Q M9u㍇BUu1Q M9uuL'EUPa2A PWME;u_^̋UE jjXPX]̋UE jjHPX]̰ ̰̋UEVtp(ts~~mSM]@t Sh|qZYYW3v"M@tE Ph|MZYYG;rM_@t h|2ZYjSu PQ[3^] ̋USVuW3WWWW0SFTtƠwE@9~t(9~t#;tWWPX?Mt h|YY MuWS@_^[]̋UEt@(tM VIV]̋UE3;t@(QQQQ0Pt]̋UEt@(j0P@3]̋USVuWh3SVXE u$E VE;uE;uPE;uE ;uhlVPVWPVPhqSWLX VpwtwPT=`@@S@SHPSSXPSSdP׋lVdžh`yp<PlVp@(PlPP3ɍASXXQ PS0P<VERhPwzSPTwUwVwSSS~SwV j@wxwwwYXX IuWX{SPVW~SPVPwЃ$džt`~>~ MuWS@?_^[t h3LY]̋U?t h<LYSVuW3WWWW0StƠzEE ;Fu;t`~~> MuWS@4?_^[t hKY]̋UESVWx(?@t h{KY>t h\dKYE p`vW,vW跮vWbvWP`u VWP4f2ҋPWW_^3[]̋UESVWx(i>@t hJY38_TtN>t hJYu $u F`9Xu#%>@t hJY#^Fp8t]8uUEPDPN8HFXQPAv`NuLPQ,^%^2ҋPW_^[]̋UESVWx(e=@t h&IY38_TtJ=t hIYu $u F`9Xu#!=@t hIY#^Fp8<t]8=uUEPDPN8HFXQPAv`NuLPQ,^%^2ҋPW_^[]̋UE@(SWE_<t h<HY} G`@W$. <h"w <ph `;YhI;BhЂ2;+h;h;hp;hLh;h0nt\ tGHHt3tHui9;h";h|;tyhցl:tih\:tYhLt9HHt%t:t;h.:t+hr:thN:t h8GY2ҋGPut_[],.--E--\-s--̋U]M̋UE H`QMpP txH83H]̋UVuMu pt;v&SW+Px7QStM_[t;puatA31} t PlƸV^]̋UE H`QM|P H83H]2̋USVuW3WWWW0StƠzE;t WWPX MuWS@_^[]̋U8tuhlEYYVw8utt!7t h6DYWW6X M uWS@_^[]̋USVW}7t hCYE uU7t7h؃CYY3WWWW0St~E @9>t!7t hCYWW6X M uWS@_^[]̋UEQMQhjPdM |U!]̋U}t]%h3]̋U ShREPxEPjEt؅B6tuh$BYYcVWjx^EPCs uESjPupE| 9s uCVPuB E}u jY5_^t hMU jXj ^jjEEEEĉE؉EYEPu]ZMUh@EuE|]uEhMԉU܉u^[ ̋U}tLS] V5WjSjhu@WjCPjh|uWjSjhhuW_^[]̋UTjTEjP=EM jEXjjEEčEPuEh@ME  ̋Uju jhuh@]̋UTjTEjP+=EM jEXjjEEčEPuEh@ME  ̋Uju jhuh@]̋U Sh EPxE8PjEt؅/tuhd<YYVWEPuESjPupE|"{ uCj PuD< E}u jY/_^t h…;YSlEE[ ̋Uj u jh uh@]̋U ShhEPxEPjEt؅.tuh:f;YYVWEPuESjPupE|%9C uPCPuC; E}u j:Y._^t h:YSlEE[ ̋Uhu jhhuh@]̋U}rkE 8CucVu|:HuSP@EUfMjfFPjdPX|tyIA3B ^] ̋UUVW33kȃ| u|$uFf|Gf|2_^]̋UEPxR|TVXZ\^]̋UEU U$U(U4U8U,USVW0U3ɍ@UjZfX`f]ۉY]ۉF(Juكf|_^[]̋UQUVEUfEj?P^fAANu3f;^̋USVW33ۉ]}}wE썆dE EEC]E+t h<"8Y8t+sh8YcdPTGPTh:jCV趯E;uB+hކ`+Ht-t+@thΆ7Y|dPT|@u"tuxu VuO|MEig|jMQESEPSSSjEPjP8_ASQƆVVmUPU7*@t h6Y9]tu藯*t hz6YS_@L_^[̋U SVhREPxuƐVjt؅)t Vh!6YYcWjx_EPVSjEPuC{ pE| 9{ uCWPu5 E}u jY=)_t h\5YSlE^[ ̋UjxujhRhćj]̋U SVhEPxu4Vjt؅(t Vh 5YYcWj_EPVSjEPuC{ pE| 9{ uCWPu4 E}u jY<(_t h4YSlE^[ ̋Ujujhhćj]̋USVhtjPT4M U jXj ^Y]jZjEEE]EYEEĉE؉EtP]ZMUhć jDž|xEuEڄ]uEĄMԉU܉u^[̋US]V5WjSjhćWjjCPjhWjjCPjhڄWjj SjhĄWj_^[]̋USVhtjP*3M U jXj ^jjEEYEEEEčtP]ZMUhćjDž|RxE6]uE"MUu^[̋US]V5WjSjhRćWjjCPjh6WjjSjh"Wj_^[]̋UpSVjpEjP72M U jXj ^jjEEYEEĉE؉EEP]ZMUhćjEuE|]uEhMԉU܉u^[̋US]V5WjSjhćWjjCPjh|WjjSjhhWj_^[]̋UTjTEjPO1E M jEXjjEEčEPhćjEME ̋Ujujhhćj]̋UTjTEjP0E M jEXjjEEčEPhćjEME ̋Ujujhhćj]̋U SVh EPxu8Vjt؅#t Vhv 0YYcWj _EPVSjEPuC{ pE| 9{ uCWPu/ E}u jY&#_t hN/YSlE^[ ̋Uj ujh hćj]̋U SVhhEPxuVjt؅"t Vhֈ/YYcWEPVSjEPuC{ pE| 9{ uCWPu. E}u j:Y"_t h.YSlE^[ ̋Uhujhhhćj]̋UTjTEjPA.EM jEXjjEEčEPuEh@ME  ̋U}tju jhuh@EE]̋UTjTEjP-E M jEXjjEEčEPhćjEME ̋Ujujhhćj]̋UTjTEjP1-EM jEXjjEEčEPuE"h@ME  ̋U}tju jh"uh@EE]̋UTjTEjP,E M jEXjjEEčEPhćjE"ME ̋Ujujh"hćj]̋UTjTEjP!,EM jEXjjEEčEPuELh@ME  ̋U}tju jhLuh@EE]̋UTjTEjP+E M jEXjjEEčEPhćjELME ̋UjujhLhćj]̋UTjTEjP+EM jEXjjEEčEPuEvh@ME  ̋U}tju jhvuh@EE]̋UTjTEjP*E M jEXjjEEčEPhćjEvME ̋Ujujhvhćj]̋UTjTEjP*EM jEXjjEEčEPuEh@ME  ̋U}tju jhuh@EE]̋UTjTEjPs)E M jEXjjEEčEPhćjEME ̋Ujujhhćj]̋USVh@jP(MU YhZpYZY Z jXYZj ^YZYjPXltjLZ@TPuDžHDDžd`Dž|DžDžDžDžĉDž h@^[ ̋USVhjP('M UYZY,Z4Y H Z PjXYdZlj ^Y]Z]Yj08LThpEEEEEEj]ZPDžDž Dž($DžD@Dž`\Dž|xEĉ]uEMUuhćj^[̋US]V5WjSjhćWjjCPjhWjjCPjhWjjC PjhWjjCPjhWjjCPjhWjjCPjhĉWjjSjhWj_^[]̋USVWhԌEPxE=tD0PjE׋=tuh$YYfpEPFF uEVjPuӉE|8~ M}t uljjv ؋FPSa$ "tuhf&$YYtuh*$YY}t }#Vlftuh#YYE}+@t Wh#YYujtytuhd#YYfEPF~ uEVjPuӅ5tv h6<#YY}t ulv jtv ؋FPS'# tPh"YYjtsh"YYRtshĊ"YY:ts h"YY"tshn"YY ts$h@}"YY39~ vU]j3ҋYut h<N"YtEPh60"YYEG;~ r]t h "YVl]_^[ ̋UM AHPQjhԌuh@]̋UTjTEjP!EM jEXjjEEčEPuEh@ME  ̋U}tju jhuh@EE]̋UTjTEjP%!E M jEXjjEEčEPhćjEME ̋Ujujhhćj]̋UTjTEjP EM jEXjjEEčEPuEh@ME  ̋Uju jhuh@]̋UTjTEjP! E M jEXjjEEčEPhćjEME ̋UjEPjhhćj]̋UTjTEjPEM jEXjjEEčEPuEVh@ME  ̋Uju jhVuh@]̋UTjTEjPE M jEXjjEEčEPhćjEVME ̋UjEPjhVhćj]̋UTjTEjPE M jEXjjEEčEPhćjEME ̋UTjTEjPAE M jEXjjEEčEPhćjEME ̋UTjTEjPE M jEXjjEEčEPhćjEҍME ̋UTjTEjPE M jEXjjEEčEPhćjEME ̋USVuWVPt h,YVPV|VйVVPQ lPQ PQ VP8VPlpwtPӃ'?tƈV7Ӄ'_^[t hjY]̋U3ʼnES3W}]]]]]]]]]]]t hpY;tAVw(VFTj EPWLV8VV芄VP\V^2M_3[̋U,3ʼnES]VWhć3j;ƉHWVPq3 ff;PPhPjY3󫍅Ph?PDžDž@6SPh4Ph!xPh UPh pwVKpw; tpwPhYY tpwphYYr tpwphĊYYT tpwp hYY6 tpwphnYY tpwp$h@YYh;Ɖ} Dž`TPhSPhRPhPhPh8 VPhA(VPh@,VPh<?0VPh>4VPh@=PPpPVPhmTVPh `WPh$SwPh(4wPh, HwPh0VLwSh4jYjSY󥍻`TjYj:xYU󥍻SR VPV(V<,V0V@4V TV$W(w,4w0Hw4hćjLwhhzhZh^h>hh\hThPhXh^h<dhjh@pSh5 5$M_^3[̋UQeSVuWE.E9]rWjPW jP WjPWjPW2jPWBjP@VHjX3ASVdž dž$SMQVPL؅ZSPPu2PPu0`TPPuSPPuHRPPuDPPu0PPuxPPuUPPuEPh u[E; u VPu V(VWWu9Wu,VWWu0Wu0VWWu'Wux4VWWuWuoPPuPVPPuCpwPPupwu\h=tpwPhYYtpwphYYtpwphĊhYYtpwp hJYYtpwphn,YYtpwp$h@YYTVPPuPWPPuDeE3k!tNPh YYt hw Y NWQjPg  VhLjY3hLu_t Vh֐ YYFtFpFHFDF@F8FF4Lk@iSt hYM3^]̋U$E@E3SfEVu W}ޫM3fA3ۉM]tO@(RL ];tu)E<uE<uE<uE<uEEHHwHHLHaHfEfE8E8txNt hY=jXfE׍EPEPEPuU 2Ӄ}tt h`wYj XƆƤ>ujXfEt h:Y}~E~}}EtEPPhn  Ee}Et@u<EPEPEPuU2 }t@t h`Y,hT]3fEfEބu8t }Ƥ>ujXfEt hOY~~}tPPh>( E3E9EtA9Eu<EPEPEPuU2 }t\t h`YHh$1t hY= }}jXfE׍EPEPEPuU2Ӄ}tt h`9Yj XfEƆ׍EPEPEPuU2Ӄ}tt h`Yf!E}~E}}EMtEPhYY}}3@fE׍EPEPEPuU2Ӄ}tt h`iYE% GEjEXfE׍EPEPEPuU2Ӄ}t hؑ Y3fEfE޸fEfEfk }fE8= ojXfE׍EPEPEPuUthxt hoY3fEfE޸fEEu@t hAY^htN< ~ <}}ffE8= tLjXfE׍EPEPEPuU2Ӄ}t,t h`Yj XfEƆ׍EPEPEPuU2Ӄ}tt h`ZYfE׍EPEPEPuU2Ӄ}tt h`YE_^[̋U39M ~ UA;M |]̋USVuW})E MM @N8$tEUE>U ?tEUu6Љ4UЋE _^[̋UuEuHu QP]̋UVu$N MFE;~ʅ}3;~…}3N F^] ̋UE}SVp(E(H @EW} EG,EPVE}EEE $EE$}MUEtw} uqȋEiȃHH9uE(ƇH @GxƇ;}EЀ}t } t ;E+;ME;EE+;EHH9u+RQjP;y|;so}} wt2U3GxƇ~8IAA ƆwEGxƆ~Ƈub}q} gu-8]u(8]u#EƆVwƇƆ~u(GxƇƇ`]}u<} R~t Eu EƇ'}  M  }t} tƆw } tƆwxtGxGyȋEiȃHH9uU(B BU(B MrEG;]~,+;E}%9;~+;}E8uujY_^[$̋UEHP SXVp+pWx+x @++ىEt:t6t2t.EE™} EME_^[] ̋UE xf!H]̋UE HHf!H]̋UE x f!H]̋UE H H f!H]̋UE H xH f!H]̋UE x xf!H]̋UE Hx Hf!H]̋UE PщPP ѹf!HP ]̋UMA$+ASY+Y Wy+yEt>t:QA +Vu F ™F FEIFf!F^_[]̋UESX +XWx+8t@tuuu>utp p0WQX^_]̋UEVp(WPw3@9Eu}};tjX;tt M E MQVPLMQVPLRRVuʮ}u~9Euy;tltgSMQVPL|'MQVPL|RRVuu[t jX;7E 9Eutt E _^]̋US3VuF(CW9]u RPwPw#;uuuu V\UwOu >@=TtN9]u,}u&P@t h<YT *@hY;u9]}ijZ;u}9]3;u/9]u 9}u 9}9]9]}u 9]u{9} u9}ul9]ug TwYuI9]u!9}tD9]uEVw8u5~.9}u)9]u$3~8Iʉ u_^[]̋UVu~tE jVFFu F^]̋UQQE @MEu1@t h@YhЕ(YVu@t6h YYHSW _u3G$]@t hYjV*fE PFPVuU2 } h`@t hpY3GWV~E PFPVuU2 9} @t hp+Yj_WV~R@t h\Yjw@t hJYj_@t h6Y3GWV*~ӍM QFPVuU2 9} tt h`YfF@t h cYj_WV~ӍM QFPVuU2 3G9} tt h`YfF@t hYj_WVJ~ӍM QFPVuU2 3G9} t5t h`YfFӍE PFPVuU2 9} gWh`^YG@t hEYj_WV~ӍM QFPVuU2 3G9} tt h`YfFӍE PFPVuU2 9} %?h`Y@t hʔYjVFӍM QFPVuU2 9} tt h`OYfFӍE PFPVuU2 9} tt h` YFӍE PFPVuU2 9} t\t h`YFӍE PFPVuU2 9} tt h`YFӍE PFPVuU2 9} tt h`SY@t h?Y~@t h#YE PƍHQPU@t hYjVNfӍM QFPVuU2 3G9} t8t h`Y~ӍE P@t h~Y_[^ ITz:@\̋UE@(}MM(Q ISVu E }W>(VUVMNE+} MUt?}+u9iɐfLFHHNTNPH9NTtMU;}؍ ;E+;M;E+;UHN\NXH9N\uӋNX+NPV\VTRQjP ;VL ;FH} }+E E Eg{t hYjE PuZiǃfLFHHNTNPH9NTu=} u}+t1iǃfLFHHNTNPH9NTu_^[$̋UVu # F# FF# FF # F y6hYYvyvhjYY^yvhVYYFyv h>YY^]̋UQQy hYMQ +QA+A SY+YUQ$+QVu EUiW#‹Q iE™Fi#‹Q iE™FFi#‹Q iE™}FF Iii# E}_F 0y6hYYyvhjYYyvhVtYYyv h>\YY^[̋Uy h3YEH +HSX+W} W+ЉUW +WMUiE Vui# EE iEFi# EE ؋Fi# EǙ}^EF i# EǙ}MMNF y6hEYYyvhj-YYyvhVYYyv h>YY^_[ ̋U]y hYSVW}G7_EG u]E,y VhlYYy ShXYYyuhFsYYyuh0[YYEH@t'y}WPtU%8u EPuVF+MY+EF +FEA +AEt}ty+‹UiU™+‹UiU™GQF+‹UiU™}GIF+MiM}G y7h\YYywhDYYywh,YYyw hĖYY_^[̋U0S]VWs}Хs(}𥥥s}॥Qy hYhu EPEPEPS_^[̋U0eS]VW3}䫫s}𥥥s(}Хy h_YC t u SF,E+Eh,u EE+EEEPEPEPS0_^[̋U0S]VWs}𥥥es(}Х3}䫫[y hʗYE+Eh,u EE+EEEPEPEPS_^[̋U0S]VWs}॥es(}Х3}y hUYE+EM+MEh,u EEPEPEPSM5_^[̋U0S]VWs}𥥥es(}Х3}䫫_y hYE+Eh,u EE+EEEPEPEPS_^[̋U0S]VWs}𥥥s(}Х3}䫫y h]YE+Eh,u ȉEE+EEEPEPEPSM;_^[̋U0S]VWs}𥥥s(}Х3}䫫iy h*YE+Eh,u ȉEE+EEEPEPEPSM_^[̋U0S]VWs}𥥥es(}Х3}䫫y hB[YE+Eh,u EE+EEEPEPEPS<_^[̋U0S]VWs}॥es(}Х3}gy hZYM+ME+Eh,u MȉEEPEPEPSM_^[̋U0S]VWs}॥s(}Х3}y hr]YE+EM+MЉEh,u EEPEPEPSUM4_^[̋UEHwh$u PSVu PKu PG@u P85u P*u Pu Pu P u P]͝؝̋UQE$SX Vu WxFE$F}E y Sh"4YYy WhYYyu$hʚYY{yu hYY3Ɔ9E9E=9t}HH9u׋+RQjPb;|,;v"Ɔy hbGY|HHH ;9Ew}M$ ;wp9E wkoy h<YƆu Dy hYƆ$y hYƆkWhG ;w>M ;w19E$w,M ;wy hf;Y h6 ;w7M ;w*M$ ;wM ;wYyhIh ;wu9Ewp9E$wk9E wfy hYHH9uƆdžy h*Y_^[ ̋U3ʼnEVuWhmt hNY~(PƅlQ$sp(LSxT|yuh(`YYDPPSuu ^398_ƅ y hY|@t SWЀ;Auxw~ Iƅƅ;u<uKQVPd@thYYƅ<4G<8hjPYffSPD@t@@Ph YY@@PPSh sVP~~P9~u⃾wCPCPWQtChxjPpfWfxzSPZWxPVV@xƅtDžH~~H9~u⋆Rp%džR0@t h~Y3@tPhxyYYF |C$ KKKK$PQQPjPP j^##\#‹ȋ`#‹щ\K`$SKC@th` CCCC jYPPP$PjP8P j^##a@thH \#‹ȋ`#‹щ\K`$ SKC -@t h,ZY+D+H3+3+@tWVh jY󥋍9D}Dȋ9H}Hff@thܛ Ctƅ@tPhƛMYY@tHh,YY@tPhYY Hj   P #@thvYYPPPtx2 tοt h`AYpyQhpjP/fVfprSPVpPR`P~~P9~uQQPSP tjpPhjSV E9[lP(蓾_^t hLYM3 ̋U3ʼnES]VWjYu }3l9yuhLYY!yuh6YY yuh"|YYyuh dYYٽyuhLYYyuhО4YY詽yuhYY葽yuhYY;~9{u;l_yshtYY}9{:s8yvuhN y6uh( yvuhq yvuhܝU ɼyhԝ9YY讼yh̝YYF;u9>t N;u9~u l^Et2pxF|pPEPt;t pp;t xx;t ttF;t ||諻yphYY萻yxhYYuythYYZy|hxYY;p|;x;t|;|~ EE;Cl;C2M_^3[-ˆ̋USVu W}GE3@fGfOf賺]yPhr"YY$EP舺yEPhbYYMCMj ZKK[ʀOEME Mt'juEPEPVEPEPOPjuEPEPVjMUO Wqq ;w|;~qHtu0WPlO +G;~˅}3;~Å}3GEO &Ot+t'juEPE PVEPE POP'ME Wju}PkWjuEP\EtjuEPE PVgWjuE P2WjuEP#E }G EGHtEtu0WViuG E GjuEE PuEjuPM +E;~˅}3;~Å}3O G_^[̋UES] Vp(EWu}t,VPspSslxjYuu8CyV3E VGf {d}EEPCxPC`PuU 2 9}t蜷t h`Y}tƆDVClHVCpLVƆ~_^Cy[]̋U(ES] Vp(W}(G ECECEC,EOUP@$EU؋U$E$}uE}METVEUt'W uuuSuE}(u܋M}uu8Eu{(C(}}u7Miɐc$C HKKH9KuM9E}EEU;U+E;EEU;+E;{(uE ƆUw롡HKKH9KuK+KSSRQjP;S$@|;C s9}}E<8(}}}t ujYu܋}}t ƆUw}tX`TH t@tQp0VRXuEC(Ɔ~uCxEC(܀}=TuU`TH t@tQp0VRXEuƆ~3AuCxT%E}u }UwtK}tE}t?UfGE;~jxXfGE+E;} fGE Ɔ~EKj}YCȋEiȃc$K HKKH9KtM}(M}u}uP}uJ5}t/}t)UE4;u~+;E}E4;~ +;ZEKj}YC_^[$̋UE@ Vu tVPf!F^]̋UEH@t)y}uPtU8S]Vu WCPK QuMVF +FMy +yEA+EtHtD]+‹Vi+™}]C IF+KiMCfK_^[]̋UE0VWp}Хp(}𥥥hu p}॥MQMQMQP_^̋U0eVW3}䫫E@ p}𥥥p(}Х_^t u Po,M+Mhu MM+MMMQMQMQPq̋U0MVWq}𥥥eq(}Х3}䫫E+Ehu EE+EEEPEPEPQ _^̋U0MVWq}॥eq(}Х3U+U}E+Eh҅u EEEPEPEPQU_^̋U0MVWq}𥥥eq(}Х3}䫫E+Ehu EE+EEEPEPEPQ=_^̋U0MVWq}𥥥q(}Х3}䫫E+Ehu ЉEE+EEEPEPEPQU_^̋U0MVWq}𥥥q(}Х3}䫫E+Eh@u ЉEE+EEEPEPEPQUl_^̋U0MVWq}𥥥eq(}Х3}䫫E+Ehlu EE+EEEPEPEPQ_^̋U0MVWq}॥eU+Uq(}Х3}E+Ehu UЉEEPEPEPQU_^̋U0UVWr}॥M+Mr(}Х3}E+Ehu EEEPEPEPRuM'_^̋UEHwh$tu PVu PKu P@u P5u P5*u Pu PWu P u P]$/:EP[f̋UEHwh$u PVu PKu P@u P65u P *u PHu Piu P~ u P]ûλٻ̋UMAE PQt fHf!P&]̋U|3ʼnEVWjYPEu}PM_3^蕸€̋U8ESX(Vp(D3҉uHM$U(+S+SMU[}QW}?C;x}UMEE}WE$E}E(P$x3fEȍ}ʫfVEE EEeyPhԟӷYY=3!E!EjfEXfE׍EPEPEPuU2 }t t h`~Yj XfEƃ׍EPEPEPuU2 }tªt h`5YƆ~E8e,pTE 艪@tE PhƛYYo@tHh߶YYT@tPh¶YYE jEP},蓴 }, @tu,h|YYEPVPuTwtXwjYuu苃WP(EEEEM_^[(̋UteSVWE}t h&YEx(uUt h˵Y2 E؋@(E苇KE܋EpM% |(M zMzthL菥Yzz E[̋USVWt h\UYu ~`Gse輘t h.2Y記twhYY萘tjhYY#f2ҋ΋FPuZA[uPt hƤYWPuf2ҋΉ~PuAt hj膤Y_^[]̋US]V3zM;Hu M ;uxuF |^[] 8 k W<`k 3ɍzz3_̋Uxt hYVu F`xHWs"#f2ҋ΋FPu4@G@uPQu,f2ҋΉ~Pu?t hxtY_^]̋USVuW3WWWW0St}ƘwE ;Fu89>t49~t/襖t6vuhN`~>~E }@rWS@_^[]̋UPt hƢYSVuW3WWWW0St}Ƙw9~t89>t49~t/ t6vuhzN`~>~E }@rWS@ɕ_^[t h֤<Y]̋UQVW}wE3E8t F @ry k Sj8hSj0ju3;E|7M ]k Ǎww4t'S7Vh2覡k > ww[t hyYu3>ttv6Wh2UG @r֋E_^ ̋USVW}3wM ;Hu M;uxu F @rUyt!k wwVhz۠ k 8 `k 3ww3$t hX蚠Y3ǜw?ttw7VhzsF @r_^[] ̋Uʓt h@YVu F`xHWs(#f2ҋ΋FPu<_^]@uPQűUXt hΟYVu F`xHWs(#f2ҋ΋FPu<_^]@uPQuB̋UQeS] C`@VuE s E#pwW{ }tPlpwGtyx9} rkWjtpw|t WhYYpwt9WuP M QVPL|pwu |u PP_Ec2ҋˉCPV;E^[̋UW}pw@VEّtpwphAYY趑tpwphĦ#YY蘑tpwp hYYztpwph^YY\^tpwp$h*ȝYYeEPju W_]̋UUpw8tAHQPu RaW3E}쫫EPju RA_̋UE~Qju P]̋UEjt49~t/ӏt6vuh@AN`~>~E }@rWS@_^[]̋U~t hvYSVuW3WWWW0St}X{9~t89>t49~t/:t6vuh@訛N`~>~E }@rWS@_^[t hZjY]̋UQVW}\{E3E8t F @ryH k Sj8hSj0ju3;E|7M ]k Ǎ\{X{bt'S7VhԚk > \{X{[1t h觚Yu3>ttv6Wh胚G @r֋E_^ ̋USVW}3X{M ;Hu M;uxu F @rU觍t!k X{\{Vh H k 8 `k 3\{X{3Rt hҧșY3\{?t1tw7Vh衙F @r_^[] ̋Ut hnYVu F`xHWs(#f2ҋ΋FPu5_^]@uPQűU膌t h0YVu F`xHWs(#f2ҋ΋FPuB5_^]@uPQuB̋UEX~MMQju Pj]̋UEh@UTVQju P]̋UETVQju P]̋UEhDVWQju Ps]̋UEWQju P]̋USVuW3WWWW0St}Ƽ~E ;Fu89>t49~t/t6vuhL荗N`~>~E }@rWS@_^[]̋Uʊt h@YSVuW3WWWW0St}Ƽ~9~t89>t49~t/膊t6vuhLN`~>~E }@rWS@C_^[t hh趖Y]̋UQSVW}~E3ۉE8t C @r~k j48~Phj0juE39E|7 k E E~證t-u7ShĨÐ k ~;~wt hYu3>tYtv6WhĨɕG @r֋E_^[ ̋UQSVuW3}~M ;Hu M;uxuG }@r]t&k 0~ k 40Wh Ck ~ `E k 31~3艈t hY3~>thtv6Wh ؔG @r_^[ ̋U0t h0覔YVu F`xHWs(#f2ҋ΋FPu0_^]@uPQűU辇t hL4YVu F`xHWs(#f2ҋ΋FPuz0_^]@uPQu4̋UL@tjhjYYEMMQju P]̋UESVp(W@t hyY38^Tt4t h^YM 2҉yPV/ E @`x SSS0SPEtt64;4; tWt)-h蟒Yt hܭ膒Yu VP t hĭ`Yu VP ąt h:Yu VP 螅t hYu V yt hYu VPd $(tW,t)0hh葑Yt hTxYu VP$܄t h@RYu VP 趄t h*,Yu VP萄t hYu VP{jt hYu VP,U\;8LPtWTt)X.hoYt hĬVYu VP<躃t h0Yu VP8蔃t h Yu VP4nt hYu VP0YHt hn辏Yu VPD3`t}dtSlt)pqhZpYat hFWYu V迂t h.5Yu V蝂t hYu VPHwt hYu V)f;;totSt.t hwYu V߁hЫQYh讁h蚁h膁t hrYu VutXt.<t hV貍Yu V+t h6萍Yu V t hnYu V:րhHY蹀t hª/Yu V ;t} tS t) ThƌY7t h譌Yu V&t hr苌Yu Vt hZiYu Vh*CYt h *Yu V:# ' thC t>G tnhxZt hܩЋYu VzI8t h讋Yu V't h茋Yu Vn~hfYt;]f;b;wTD }`u VPl $(o,=0u VP(\;wT8LfP4TXu VP@`dlpsu V;;wdnYt<t&u V!u Vu Vt&#u Vu Vu V ;wPt7 b 4 uBu VwUu VJ# t9' #C G Su@M Y'u VSu@_^[]̋UE@(Ltjuhu PQ3] ̰̋UEVWx(PEQ$s{thYYjjuEt;{tjhF謇YYEf fEFE FMttMztjhFkYYEEFE FfF pzth YYuP(_^]̋UESVp(SP$\zth̆YYW3;9E t @ ;uH ;u59xu,RlytXhЮqYK;t49xuH Pyl;t9xtPQHP Q Hy Ply_th YYSP(^[]̋U} E@(Wt.}?r#Vl6Pu օ ^2_] ̋UE@(]̡X̋UESVup(PQ3;ÉEE ;uE;uh3@W=<F`FdSP^XSPSP׍p3ASXXQ P`jSShGATXP3f DTXxy|3_E^[]̋U E@(eEwt h&2YE SV5tW3GWW֋؅EPESWW=׉E=#uPSluj֋؅fuJwtuhޯ躃YYEPSPEj׉E}|jwt h膃Y5xhEPhEPhEPvt hrKYE E)Etvt h8YSlv_^[t hYE̋UESVp(WSvt hɂYE Hj[KHHWStL;9WSP蔂L`L@L@L@ 2GLXLǀ$LǀH@Lǀ$WStL;WSPL`L@L@L@ ALXLǀLǀHLǀhL PVWStL;u WSPQLL@L@L@  L@*NLǀLLǀHLǀH}Dtth$hh貀YY;}L;tFPl;28t< r&Ɔst VhB\YY_^[]̋Ust h4YEVp(WLt Pl'Ƭƀ|stPhYY_^]̋UESVWx(3uAst hRY3fEfEfEfE捇uu苏PEQ$t3fEVjfEӉEtVjPk }u E]rthh-YY3j@fEXPjfEӉEtj@jP }tvrtj h~YYEPjWhбEPEPEP;S3VVj"EPhp(h3QQQQVPue%E}-qt hW~Y_P#PH`3fff ftPlPjt\qtPhh}YYaQjP} PPh^PEPPMQQuEPQ3P4VT0VXVP jPpt h>|Y3Eu􋇼P(}_^[t ulFpt h|Y}t ul pt h|YE̋UESVp(ot hf|YSP$tFot hr6|YWx(WPW_SP(so^[@t h^{Y]̋UESVp(WEot hʲ{YSP$?t"ot hr{Y7PSP(_^[]̋U3PPPPut]̋Uju@]̋UEVp(Wnt hֲ{Yu lVo_^]̋UV3hhVPuuuz j XlEMtMEEVVEhPuDžpj|EuEXm^̋USV3VjEP`}] ts`WFjY@3_C`$MH M@f@=uVVVVEPtC^[ ̋UHmt hyYSVuWLju ME mt hֳyYlPPƆxW E}lh{lt h.yYFXF\FX;tlt hyYu VEslt hzxY_lt hVxYKlt h8xY7lt h"xY} ]2ҋω_PV jWV_^[]̋Ukt h\xYSVuW3ۈxPL8FXF\FXFT9_ tkt hj xYu VW SPnk@t hVwYVUVVVP 3kt h&wY} jWPW_xiVE V9tP;t Plj_^[t hwYE ]̋UQQS]LVu jVEE|.F`pEWj{hYu@tu SЋ}jYsh_u E2ҋΉFPSjVSE^[̋UVuWu RhVju V_^]̋Uit h vYVuLNXN\FXƆx@W} tWVЃgcit huYWVY_^]̋U8it h uYVuLNXN\FXƆx@W} tWVЃgjPWV}ht hKuYht hд7uY_^]̋UVuL@tu Vu V^]̋Uhht h\tYVuLNXN\FXƆx@W} tWVPgWV ht h>tY_^]̋Ugt htXtYVu~XLWƆxuN\NX@} tWVЃgWV_^]̋UVuLNXN\FXƆx@ W} tWVЃgWV[_^]̋UVu~XLWƆxuN\NX@$} tWVЃgWV_^]̋UVuL@(tu Vu V^]̋UESVu Wx(jjhJVP؅}2ҋΉ^PW4^`CW$Ufh4w>fph `'fYh IfBh2e+hжehehehzehbnt\ tGHHt3tHuinehLWeh8|Cetyhl3etih\#etYhLt9HHt%tet;hڵ.dt+hdthdt hKqYCwj$VW]aVWXVW[OVWFVW=VW4VW+VW"VWVWVW[VWX_^[]'>UXsa|j̋UESVp(W} jjhJWSE}2ҋωGPVx WaVEa jWSE_^[]̋UE SVuWx`SP$PQ$tC>s 1OIH3Ɔt PQRPQ(SP(_^[]̋USVuWSP$SƆP(_^3[]̋USVuWSP$SƆP(_^3[]̋UM A`j Z9Ps#@EVWf j f>_fjxǀ_fy _Q3^]̋UESVu Wx(jjhJVPE؅}2ҋΉ^PW ^`C =tl= tU=t>=t'=tYat[hNIatKhܷ>9at;h.)at+hathp at hLmY[ tPt?t0Vtt9_6WMW VWUVWd2ҋΉ^PW jVu_^[]̋UQESVp(WT`@t hRlYL@} jjhJEWPE؅})`@t h&lY2ҋω_PVk~Xu?W]؅|-EtWVЋ؅|_@t h,lYV2ҋω_PVjWu_^[̋UEVp(LWxY_@t hvkYtu V8_@t h`kYVu ]V _^]̋UESX(VW^@t hckYu jjhJVPE})^@t h&,kY2ҋΉ~PS(f2ҋΉ~PSrjVu_^[]̋UESX(VWI^@t hjYu jjhJVPE})^@t h&jY2ҋΉ~PS(f2ҋΉ~PSjVu_^[]̋USVu WVF#F`$}VjVPWs_^[]̋U 3ʼnEME x!SVq(E EEAE EEALtH`IH`QJJWy u IIu~dPV~d_u>t48t/jMQ\t hHiYSTM^33[h ̋US]KdVu F`@ ;WL}OVv`FjYu @F``$j@ @VPV4Cdu%!\t hθhYjjWXVSB_^[]̋U[t hZhYM A`@HQut]̋UML@u Qt]̋UML@@u Qt]̋UJ[t hBgYML@@Vu Qtb[t h$gY^]̋UML@@ u Qt]̋UESVp(W} jjhJWP؅}2ҋω_PVL_`}Zt h`fYCWVt%HtHtHt H_^[]̋UES3Vu WF(0$,dž Ɔ4538<f FFh@VP^(^xPQHVPQ_^3[]̋USVuWLWP؅|P؅} WP_^[]̋UEH|Hl3Bt;~P|3]̋U`VuWLPWPXy hKeYe3jaY3]̋US]VsWuKUy hjaYSP,MQSP0}UhBu䥥  URfuPSQ4}T~hnETy haYMQSPNy hZYCjSPS,3;tWNy hZY]9]vnEMLtS39y ~LÍQ@CÃs-G;y |)Mh+ZYEEEE;ErVle~My hrYYuEu P8VMy hBYY3;*39EvUMPQ@F;ErEM M$h"YY̋USVuFE@Wt Hk\$j$[SjttSuWAY ~3 f_^[]̋UEPQ,3]̋UQEeSVWMLy h,XY=0VVVVVS EVVVVV PSׅuL_^[y hXYE̋UQEeSVWKy hQXY=0VVVVVSHMVVVVV PSׅuK_^[y hZXYE̋U SVW3}}hKy hWYu,k PWt;u:Ky hWYEe(0E;tR}9$vGEMT39z v$zMk ˃a!Ey@;B r3EEE;$rJ_^[y h+WYE̋USVW}$(]{Jy hXVYt6ۋlvEEtPӃ&Mu(Ӄ(-J_^[y h.VY3]̋UJy h|VYVu0t Pl&I^y hMVY3]̋UIy h (VYVW}WP$WPI_^y hUY3]̋U`Iy hnUYVuVP(t Pl&(I^y hBUY3]̋UQQEVp(8t PjVEP|"EMPuu UU EP ^ ̋UE0tIjQPRH]̋UEM M3] ̋US]VW{jjtt:jXjfXfFE WFVP8WVlG| yh y hMTY_^[]̋U`EHVjZfUjZfUU UURP8}G| yh y hSY^̋UESVpW3WWEP`EPEPjWWWWh";u4V؁uWWWWEPt3V_^[̋UMA`U $`@ "PA$]̋UE@0VjPt uV^] ̋UEVpMFt h:RYjjVX.F^t hRY] ̋U3ʼnEeMSY3VqLW}ث{EEčA Eȉ}MN+ei'EԉU؋FE܍`PvEuEhXEH M̉EiEt h&QYUEtFPhQYY;Etv hQYY#EtvhQYY Et hQYXYExALj XfbjHXf`E܉p3EDžxu|DžtuDtuhQYY`PuUB`$M@"H @=uVVVVVjEPjPR9dt~'DtdhvPYYdLCtuhViPYYE}dvSP`u܋SP\e3EPVV$xuECtuh4PYY9ut{Ct h OYu9uvMut5$CtPhOYYEE;EruEPx{@PQdE PTBt hSOYu EVVVV Pt/Bt#h OYBt hd OY39ut uEV@@LM_^3[N̋UE@0SVW33SP;u Bt hNY-jPSt;u)At hnNYV_^[]jYfHjPYfMHMHX XHXIXX$3fHJfHLN#F`܋N`AA"AYM ^$1M̋UhAt hTMYEjjpXDAt h*MY] ̋UP3ʼnEMSVW33]؉M}ܫyjMQMQME EEAE EEAGQP]]̉EЍwhrE@tVWh&.M 9]ԋu}@hxMMAEĉEA0EEEЍMUȉMEEEJ@t hLY6@twxhLYY@twlhLYY@twphjyLYY?twthJaLYY?twhh.ILYY?twxh1LYY?twlhLYY?twphjLYYv?twthJKYY^?twhh.KYY85ujjUGhRPQ](?t hKYSSSSSjEPjPEЃxXE8XAjUGhRPQE;u>th@KY85jYfNjPYfF^ EF^H^I3fFJVufFL^^$UB`$M@'H @EЋ=ul@>t hJYSEPSSSjEPjP;=uu ESSSS0Pt=t h^JY=t h|JJYEPSS$8]t%MEPSSE$ME]uԋMQWPlE0PT?g=tYhVLW=t h,IYu ESSSS0Pt)=th=t hIY;t=t hwIYVl9]t<t h~WIYuESX@LM_^3[H̋UTjTEjP!IE M jEXjjEEčEPhćjEXME ̋UESVu WFV3ۍ(PQHVPQVWPWE P E %1;t7hjFHYY33 FFh^(^x{=`SSP׍3ASXXQ P_^3[]̋U(;t hGYSVuWLWP؅|UP؅} :t h~YGYWP ƆP@( VQ_^[]̋U:t hGYELPQi:t hFY3]̋UD:t hFYEVLQVP :^t hFY3]̋U9t ht^FYVuWu 9t hP6FY(PQ PQ HPQ FPQ$FhPQ$PQ$VW$_^u`9t h2EY]̋Uv2W3WWEP`EPT9} EPEPu$uuuuu u;t`M V8uy hAEYWWWWEPty h"EYu9}E ^| M82_ ̋UE@3QURQQju h ]̋UME@MM MMM3QU RQQjMQh ]̋UE@3QURQQju h]̋UEWxv2V3VVEP`EPTEPEPVVVVVh4;tpp=u$X7y hCYVVVVEPtE9u|,7y hCY7y hCY2^_̋USVuW33ɉM}諫FM98MQMQhP,Ejjhu(E} `&E E@ GE@\G\PVƆSu6th6t hBYjjjVSu5th5t hSBYMMj XEEEPVESu5thx5t h^ BY5_^[t hFAYE̋UW}u<u3S`VtӃ& tӃ&^Ƈ[_]34t hqAY̋U4t hNAYjjuX] ̋U MSVW}G3ۉE]E`y4t hx@YE@0SPE;u"EPSS$}|=4t@hJ3N`$3V AY Y4t h~@Y_^[̋ULMMSVW33]؍}ܫEpSSEEE`y~Pu``dj\PXvv38h?Y(Y3t h?YEEčEEȍE-3h|GdEtl 3tuhR~?YY2tw`h(f?YYE􉇴EPESSSPt2xh;t;9t'2t h?Y@(ǀYVE>2y h>Y9]u%2h^>YoEPTE@`$M@,4H @1y hFZ>YU1y h"7>YSSSSSjEPjP+(HtOH1t h=Yu SSSSEPt]1h=Y@1y h=YE@E#1yuh=YY]9]vYE0E$2YY%tuh1YYr%tEPh1YYX%tPh1YYEPj1 SS%th1YYEPS$th_1YYE uE3fEffEjEPEPE|-EEƀuu uEEƀuh[}t$j$t h|0YuletB$t hT0YWlE_^ ̋U]̋U]e̋USVuNW33ۉ]}쫫R P I\H\]Ɔ#t h0YVPVWu~#thn#t h/YjSSVWuN#th>#t h/YMMj XEEEPVEWu#thx"t h^l/Yjh^Su(VW$E"h5/YjFhhPuSP$VW$"thjhPXu*SP$FhPQ$VW$EG"t>hR놋VP@PQHPQu (VPE_^[3jL̋UEVW} _3^] ̋U3ʼnEESVp(3W} PDH|!y h@-YPLQ$\;@(T/!y h"-YDPSSSGPtd!y hw-Y9dhQWPd y h?-Y9dThhSPX&- y h-YDPXPhPdP*9? y h,Y8tTaj`P\ƅ` hP\y hZ,YhPPq,y hn.,YhhSP', y hP,YX;diy h2+YLP(F_^[y h +YM3n+̋U3ʼnEE Vu`3W~9ESSPdhPe+ DWdPhPu`M)<u2}v,}tu苆hQVPpShjP + E9du[M_3Ͱ^* ̋UQEjURPE EEAQh ̋U 3ʼnE fEM jjURMPE EEDQhM3* ̋U3ʼnEEVWn}쥥j URPE E EFQhM_3^) ̋U3ʼnEEVWn}쥥j URPE E EEQhM_3^w) ̋UQSVu W~} tFPPh) ]4uB5u98u0<u'E @}WfNfCj 6Y} @}2fNE fC6?ut h|)YSPtE jMQESE EEXPh_^[ ̋U3ʼnEE SXVu!tPhl}(YY@}s^6EEE EEC]EtEPEPShK(?utEPh+(YYjMQVPhM^3[' ̋USVu^nt hL'Y4u 5tGW@WP(;E}WPdjuu WPWPdE_^[t h(u'YE] ̋UEL5u{U ƀ4:CulfJf@s^fRVfffH֍8yIA3F 28u<uWj Y6_^] ̋U 3ʼnESVu^WWjP&3 fftUVPxfWPhpPh6VjjM_^3[%̋UQMEUfEj?6ZfAAJűU@3ʼnESVuFWWjPDžU%3 ff63ҍ`fff fBBGG~rfffPPhpPjY3󫍅P3h?PDžDž@;ljPjt؅th&I$YYcPjCC 2$ PSjWpsj Y󥋽3_tPVh# FGG@rSl5t h#Yth#YY}Sft hc#Y3ɍ`f8f:fAABB~rffVPtj Y DžM_^3["̋UM AtUHtDHt3Ht"HtHuRuQuoDuQu6uQu(uQuuQu uQu] ̋V33@VPh55`hVhV5 5x 5| VVP^̋UQQeW3}hP MEPjjE`y$_̋USVuW 2~t%T M DAN=r&_^[]̋USVuW} 9 sE | 4̈́  | <͈  | 39| r | QjQh_^2[]̋UQQW33}M9Mto9M tj3Ҹ4uV5 hjCWjBWjB֋=ja Pja֋E iEEPjjU$ja$Pja^_̋USVWj\PXu=PFEE3$+t4HuEPhx Et uuSSSSSjEPj8^AtS^@^AL_^[̋UQQESVWx(5t hXYu jjhJVPE؅}2ҋΉ^PW_^[Xu&V^2ҋPW»jVuˍEPVu P"؋EtHtF#F`$HtH̋Ujt hrYju0]̋UVW8t hYEjjPu u"t htY_^]̋UVWt hGYEjj%Pu u!t hY_^]̋UVW3tt hYM9}t(jX9E s#Q(@S]$U3[jWPu Q6!t hY_^] ̋UVWt ht]YEp(E MMhTux_^t h8Y3]̋USVWwt hYEp(8<3AQP dž$dž(Xdž,Wdž0,Wdž4V0@t hpY_^[]̋U3ʼnEESVp(3W} PDHy hYPLQ$\;@(TUy hYDPSSSGPtd'y hY9dhQWPdy heY9dThhSPXL y h*YDPXPhPdP9ey h~Y8tTaj`P\ƅ` hP\ y h^YhPP y h>TYhhSPM y h+YX;d y hYLP(l _^[y hYM3̋U3ʼnEE V\W}w39ESSP`hP DV`PhPu\st9}ƅgv,}tu苇hQWP4ShjP+ E9`u[Mg_3^ ̋UQEjURPE EEAQ, ̋U 3ʼnE fEM jjURMPE EEDQ,M39 ̋U3ʼnEEVWn}쥥j URPE E EFQ,M_3^ ̋U3ʼnEEVWn}쥥j URPE E EEQ,M_3^ ̋UQSVu W~} , tFPPh ]uBu9u0u'E @}WfNfC<j <Y} @}2fNE fC?u t h|YSP8E jMQESE EEXP,_^[ ̋U3ʼnEE SXVu; tPhl}YY@}s^EEE EEC]E tEPEPShe?u tEPhEYYjMQVP,M^3[ ̋USVu^ t hrYu tGWWP(;E}WP(juu WPWP(E_ ^[t hHYE] ̋U 3ʼnESVu^WWjP\3 fftUVPYY}Sft hY3ɍf8f:fAABB~rf:fVP8j Y<h}M_^3[m̋UM VQPu *QPu kd2^] ̋U3ʼnEE Vu\3W~ƅg9ESSP`hP DW`PhPu\t8}v2}tu苆hQVPHgShjP E9`u[Mg_3^& ̋UM AtUHtDHt3Ht"HtHuRuQuDuQu6uQuO(uQu%uQu1 uQu] ̋U8E@(I(MYYEPEPEPuU2 9}tt h`aY_^[̋U SVuVEVWE3fE}⫫3AMf9tTuty h>Y_^[; űUQMj55uh4%|%d%|h vd5D$l$l$+SVW1E3PeuEEEEdËMd Y__^[]Q̋US] Vs35WEE{t N3 8N F3 8E@fMUS[ EMt_I[LDEEtE|@GE؃u΀}t$t N3 8vN V3 :fE_^[]EɋM E 9X thWӋE MH t N3 8N V3 :EH99S thWUT%SVWT$D$L$URPQQhxd53ĉD$d%D$0XL$,3p t;T$4t;v.4v\ H {uhCCd_^[ËL$At3D$H3Uhp pp> ]D$T$UL$)qqq( ]UVWS33333[_^]ËjK33333USVWjjhxQQ_^[]Ul$RQt$ ]SQ SQL$ KCk UQPXY]Y[%8%8%<BASEPrepareDelete : IOEvent OK! BASEPrepareDelete : DPCEvent OK! BASEPrepareDelete : WorkItemEvent OK! BASEPrepareDelete : RefEvent OK! xTouch : Increaseing Reference yet =%d xTouch : ** OutStanding Ref Event triggered xTouch : Ref = %d, Decreasing Ref xTouch : Increaseing OutStanding IO yet =%d xTouch : ** OutStanding IO Event triggered xTouch : OutStanding IO = %d, Decreasing IO xTouch : ** OutStanding DPC Event triggered xTouch : OutStanding DPC = %d, Decreasing DPC xTouch : ** OutStanding WorkItem Event triggered xTouch : OutStanding WorkItem = %d, Decreasing WorkItem IRP_MJ_INTERNAL_DEVICE_CONTROL IRP_MJ_POWER IRP_MJ_SYSTEM_CONTROL IRP_MJ_PNP IRP MJ Others IRP_MJ_DEVICE_CONTROL IRP_MJ_CREATE IRP_MJ_CLOSE IRP_MJ_READ IRP_MJ_WRITE xTouch : DispatchRoutine Called Leave EDONotifyDeviceRemoval EDONotifyDeviceRemoval : complete m_WaitRemovalIrpEnter EDONotifyDeviceRemoval 0x%02X Write to EDO RxFifo = %dEDOFireRemoveEvents EDORedirect : Returned CheckSum = %04X EDORedirect : Get EEPROM Addr = %02X Value = %02X %02X Redirect : GetEEPROM Addr=%02X EDO TX Thread : Write Data to FDO. EDO TX Thread : Get H2D_LOOPBACK CMD EDO TX Thread : Get GETEEPROM CMD Write Complete EDO TX Thread : Get GETEEPROM CMD ,but first EEPROM CHECK not finish EDO : Tx Thread is Close EDO : Got Tx Thread Stop event EDO:Read Timeout %d Complete Read Irp - Read %d bytes EDO: Read %d bytes from Fifo EDORead : 0x%x EDORxMoveData: Fifo Empty EDORxMoveData: CurrentIrp NULL EDO : Rx Thread is Close EDO : Got Rx Thread Stop event Increase EDO Ref EDODefaultCreate : call Increaseing Reference EDODefaultCreate EDO : Leave EdoCleanAllBeepEvent EDO : Enter EdoCleanAllBeepEvent (Leave EdoCleanBeepEventArray) (Enter EdoCleanBeepEventArray) EDODefaultClose : call decreaseing Reference EDODefaultClose EDODefaultRead: Read.Length == 0 xTouch : pEdoExt->m_BaseExt.m_bDeleted, Fail IRP EDODefaultRead EDODefaultRead: Write.Length == 0 EDODefaultWrite. EDO IRP_MN_SET_LOCK EDO IRP_MN_QUERY_PNP_DEVICE_STATE EDO IRP_MN_SURPRISE_REMOVAL EDO IRP MN Others EDO IRP_MN_EJECT EDO IRP_MN_QUERY_CAPABILITIES EDO IRP_MN_QUERY_RESOURCE_REQUIREMENTS EDO IRP_MN_READ_CONFIG EDO IRP_MN_WRITE_CONFIG EDO IRP_MN_QUERY_INTERFACE EDO IRP_MN_QUERY_DEVICE_RELATIONS EDO IRP_MN_CANCEL_STOP_DEVICE EDO IRP_MN_QUERY_STOP_DEVICE EDO IRP_MN_CANCEL_REMOVE_DEVICE EDO IRP_MN_QUERY_REMOVE_DEVICE EDO IRP_MN_REMOVE_DEVICE EDO IRP_MN_STOP_DEVICE EDO IRP_MN_START_DEVICE EDODefaultPnp EDOBeep : m_ulTouchStatus: %d EDOBeep : Beep Source: %d EDOFireBtnEvent : Set Btn event! EDOBtn EDOFireHWeelEvent : Set HWeel event! pEdoExt->m_ulHWeelStatus = 0x%x EDOHWeel EDOQueryMonitorInfo FreePool EDOQueryMonitorInfo ExAllocatePool size(%d) MonitorInfoEDOQueryEdgeInfo FreePool EDOQueryEdgeInfo ExAllocatePool size(%d) EdgeInfoBeepSourceBeepModeBeepDurationBeepFrequencyConstModeConstDurationConstRangeTouchGridTouchSpeedMouseModeOrientBranchEDOQueryCalInfo : FreePool EDOQueryCalInfo : ExAllocatePool size(%d) CalInfoEDOQueryLinzInfo : FreePool EDOQueryLinzInfo : ExAllocatePool size(%d) LinzInfo EDO : EEPROM Thread is Close ChallengeThread : Got Callenge Thread Stop event Other Status EDOAuthenThreadRoutine-Register Fail EDOAuthenThreadRoutine-running stop since EEPROMOk EDOAuthenThreadRoutine-running EDOQueryMonitorInfoFromService : FreePool EDOQueryMonitorInfoFromService : ExAllocatePool size(%d) xTouch\DeviceDefaultEDOQueryEdgeInfoFromService : FreePool EDOQueryEdgeInfoFromService : ExAllocatePool size(%d) EDOQueryCalInfoFromService : FreePool EDOQueryCalInfoFromService : ExAllocatePool size(%d) EDOQueryLinzInfoFromService : FreePool EDOQueryLinzInfoFromService : ExAllocatePool size(%d) CalSourceTouchHoldToResetTimeTouchHoldToResetFlagIdleToResetTimeIdleToResetFlagFilterFilter ThresholdLowUppperA3A2A1A0EDOQueryActiveAreaInfo FreePool %x pActiveAreaInfo->rcBoxArray[1].bottom (%x) pActiveAreaInfo->rcBoxArray[1].top (%x) pActiveAreaInfo->rcBoxArray[1].right (%x) pActiveAreaInfo->rcBoxArray[1].left (%x) pActiveAreaInfo->ulNumsOfBoxes (%x) pActiveAreaInfo->bEnable (%x) EDOQueryActiveAreaInfo(2) Get data size(%d) EDOQueryActiveAreaInfo(2) ExAllocatePool size(%d) EDOQueryActiveAreaInfo Buffer size too small. need Data length is %d EDOQueryActiveAreaInfo Buffer size too small. need buffer length is %d EDOQueryActiveAreaInfo :Query Reg failed. len = length%d EDOQueryActiveAreaInfo :Query Reg failed. error code = %x EDOQueryActiveAreaInfo ExAllocatePool size(%d) ActiveAreaInfoDesktopTouchDownTimeEnableDetectTouchSequenceFlgRectangleLimitInActiveAreaReportOlderRectangleFormatEdgeBtnRealMultiReportModeFireWheelEventLeave EDODestruct EDODestruct : call decreaseing Reference (EDONotifyDeviceRemoval) EDONotifyToRemove \DeviceDefaultEdoIoctlGetActiveAreaBoxNum : pEdoExt->m_pActiveArea == NULL FifoInit : pFifo->m_pBuffer ExAllocatePool size(%d) Write Fifo : fifo full Read Fifo : fifo empty helper:ForwardAndWait Helper:PassThroughIrp NativeNameLeave add device routine ( success ) Leave add device routine ( fail ) FDO init fail Identify fail IoAttachDeviceToDeviceStack ruturn fail DriverObject( 0x%x ) , PhysicalDeviceObject( 0x%x ) Enter add device routine Unload Driver( 0x%x ) DriverUnload : g_ustrRegistryPath.Buffer FreePool Leave driver entry Enter driver entry( 0x%x ) xTouchLeave driver entry ( fail ) DriverEntry : g_ustrRegistryPath.Buffer ExAllocatePool size(%d) Mouse Point Lost WHEEL : GESTURE_SLIDE_X (GestureValue == 0) post up WHEEL : GESTURE_ZOOM WHEEL : GESTURE_ZOOM X WHEEL : GESTURE_ZOOM Y GESTURE_ROTATE : GestureValue = %d GESTURE_ROTATE WHEEL : GESTURE_SLIDE_X WHEEL : 0x%x (%d) WHEEL : GESTURE_SLIDE_Y WHEEL : 0x%x (%d) WHEEL : WHEEL_BUTTON_DOWN WHEEL : GESTURE_SLIDE_X (GestureValue == 0) eTouch : ParsingInputData has an exception ! receive %d bytes points pkt(02) IDP : Leave dispatch command routine IDP : Enter dispatch command routine pBuffer[ 5 ] 0x%x pBuffer[ 4 ] 0x%x pBuffer[ 3 ] 0x%x pBuffer[ 2 ] 0x%x pBuffer[ 1 ] 0x%x pBuffer[ 0 ] 0x%x FilterMouseTouchEvent :g_bDragWaitNextDown==TRUE , g_bDragWaitNextDown==FALSE , post Move FilterMouseTouchEvent :g_bDragWaitNextDown==TRUE , post left up other PostMouseMoveAndLeftUp PostMouseWheel PostMouseLeftClickSpecial PostMouseLeftUpAndDBRightClick PostMouseDBRightClick PostMouseLeftUpAndRightClick PostMouseRightClick PostMouseLeftClick PostMouseRightUp PostMouseRightDown PostMouseLeftUp PostMouseLeftDown PostMouseMove DoPostMousePoint: pPostMouseState 0x%x eTouch : We have lose the data DoPostMousePoint: We have lose the data DBG_TDI : Send reset frimware cmd pRectBox->bottom = %d pRectBox->top = %d pRectBox->right = %d pRectBox->left = %d OnActiveAreaSingleSplit ActiveAreaSplitMap ActiveAreaBox->bottom = %d ActiveAreaBox->top = %d ActiveAreaBox->right = %d ActiveAreaBox->left = %d RectBox.bottom = %d RectBox.top = %d RectBox.right = %d RectBox.left = %d OnActiveAreaMultiMapping OnActiveAreaMultiSplit OnActiveAreaMultiFull OnActiveAreaMultiUpper OnActiveAreaMultiLower OnActiveAreaMultiLeft OnActiveAreaMultiRight OnActiveAreaMultiQuad1 OnActiveAreaMultiQuad2 OnActiveAreaMultiQuad3 OnActiveAreaMultiQuad4 DetectTouchInSequenceState : state 0(out area) DetectTouchInSequenceState : state 0 DetectTouchInSequenceState : state 1(out area) DetectTouchInSequenceState : state 1 DetectTouchInSequenceState : state 2(out area) DetectTouchInSequenceState : state 2 DetectTouchInSequenceState : state 3(out area) DetectTouchInSequenceState : Switch to enable Touch Function. DetectTouchInSequenceState : Switch to disable Touch Function. DetectTouchInSequenceState : state 3 DetectTouchInSequenceState : TimeOut. state return to 0 DetectTouchInSequenceState : lLastPostY = %d DetectTouchInSequenceState : lLastPostX = %d DetectTouchInSequenceState : lTempY = %d DetectTouchInSequenceState : lTempX = %d IDP : Leave dispatch origin data routine ReportMouseData.ExtraInformation 0x%x m_ucDeviceID 0x%x m_DeviceType 0x%x ucTouchStatus 0x%x ReportMouseData.LastX %d,ReportMouseData.LastY %d ulWidth 0x%x,ulHigh 0x%x do New rectangle gesture. Multi-Input 2: %d, %d Multi-Input 1: %d, %d %02X Multi-Input DispatchOriginalData : Write to EDO Len %d. DispatchOriginalData : Get Button Status CMD(CMD length is not correct %d). IDP : we got a command packet IDP : Need to parsing length = 0x%x IDP : Enter dispatch origin data routine rcBoxArray.bottom %d rcBoxArray.top %d rcBoxArray.right %d rcBoxArray.left %d cy %d cx %d pActiveArea->rcBoxArray[%d].bottom %d pActiveArea->rcBoxArray[%d].top %d pActiveArea->rcBoxArray[%d].right %d pActiveArea->rcBoxArray[%d].left %d pActiveArea->ulNumsOfBoxes = %d prcVirtualDesktop->bottom %d prcVirtualDesktop->top %d prcVirtualDesktop->right %d prcVirtualDesktop->left %d prcMonitor->bottom %d prcMonitor->top %d prcMonitor->right %d prcMonitor->left %d ShiftBit 0x%x PackMouseInputData pFormatData[ 0 ] 0x%x FilterLostPacket :pMouseData->ExtraInformation 0x%x (FilterLostPacket)pFdoExt->m_bLastButton4Down = %x IDP : Leave post mouse point routine RectangleAndRealMulti == TRUE (8)PostMouseState = %x (EDOPostMousePoint)pFdoExtension->m_bLastButton4Down = %x Active Area : EnableTouch Active Area : Post last Point and Touch UP(Real Multi) Active Area : Post last Point and Touch UP(Retangle) last touch state is up Active Area : Post last Point and Touch UP (Real Multi) USER ID(Real Multi) %d Active Area : Post last Point and Touch UP Active Area : DisableTouch do not limit in ActiveArea. TouchSeq disable touch TouchSeq enable touch Zfilter : enable Z filter Zfilter : disable Z filter Disable EdgeBtn EdgeBtn : Y %d EdgeBtn : X %d Enable EdgeBtn EDOPostMousePoint : m_ulTouchStatus = 0, set Touch Disable IDP : Leave post mouse point routine.because EEPROM failed IDP : Enter post mouse point routine EdoHookBeepEvent(%d)(%x)(%x) Leave EDO Reference pkBeepEvent EDO Reference pkBeepEvent: (NULL == hEvent) EDO Reference pkBeepEvent: sizeof(HANDLE) (%x) EDO Reference pkBeepEvent: DeviceIoControl.InputBufferLength (%x) EDO Reference pkBeepEvent: Buffer too small EDO Reference pkBeepEvent Leave EDO Dereference pkBeepEvent EDO Dereference pkBeepEvent SetRemoveEvent(%d)(%x)(%x) Leave EDOCleanAllRemoveEvent Enter EDOCleanAllRemoveEvent (EDOReferenceRemoveEventArray) EDOReferenceRemoveEvent(%d)(%x)(%x) (EDODereferenceRemoveEventArray) EDODereferenceRemoveEvent(%d)(%x)(%x) EDO Reference pkRemoveEvent EDO Dereference pkRemoveEvent EdoIoctlSetActiveArea : pEdoExt->m_pActiveArea ExAllocatePool size(%d) pEdoExt->m_pActiveArea->rcBoxArray[1].bottom (%x) pEdoExt->m_pActiveArea->rcBoxArray[1].top (%x) pEdoExt->m_pActiveArea->rcBoxArray[1].right (%x) pEdoExt->m_pActiveArea->rcBoxArray[1].left (%x) EdoIoctlGetActiveAreaBoxNum : pEdoExt->m_pActiveArea->ulNumsOfBoxes(%d) SetBtnEvent(%d)(%x)(%x) Leave EDOCleanAllBtnEvent Enter EDOCleanAllBtnEvent (EDOReferenceBtnEventArray) EDOReferenceBtnEvent(%d)(%x)(%x) (EDODereferenceBtnEventArray) EDODereferenceBtnEvent(%d)(%x)(%x) EDO Reference pkBtnEvent EDO Dereference pkBtnEvent SetHWeelEvent(%d)(%x)(%x) Leave EDOCleanAllHWeelEvent Enter EDOCleanAllHWeelEvent (EDOReferenceHWeelEventArray) EDOReferenceHWeelEvent(%d)(%x)(%x) (EDODereferenceHWeelEventArray) EDODereferenceHWeelEvent(%d)(%x)(%x) EDO Reference pkHWeelEvent EDO Dereference pkHWeelEvent reply ulHWeelStatus 0x%x IOCTL_REFERENCE_BTN_EVENT IOCTL_DEREFERENCE_BTN_EVENT IOCTL_REFERENCE_HWEEL_EVENT IOCTL_DEREFERENCE_HWEEL_EVENT IOCTL Others IOCTL_DEREFERENCE_REMOVE_EVENT IOCTL_SET_ENABLE_DETECT_TOUCH_IN_SEQUENCE_FLAG IOCTL_GET_HWEEL_STATUS IOCTL_REFERENCE_EVENT IOCTL_DEREFERENCE_EVENT IOCTL_REFERENCE_REMOVE_EVENT IOCTL_GET_ENABLE_DETECT_TOUCH_IN_SEQUENCE_FLAG IOCTL_GET_TOUCH_FUNCTION_STATUS IOCTL_SET_TOUCH_FUNCTION_STATUS IOCTL_GET_ACTIVE_AREA_BOX_NUM IOCTL_GET_ACTIVE_AREA_INFO IOCTL_GET_LAST_POINT_TICK_CONT IOCTL_HOOK_RAW_POINT IOCTL_HOOK_CALED_POINT IOCTL_HOOK_CMD IOCTL_REMOVEALL_HOOK IOCTL_SET_ACTIVE_AREA IOCTL_CLEANUP_WAIT_REMOVAL IOCTL_GET_BEEPINFO IOCTL_QUERY_COMM_NAME IOCTL_GET_VERSION IOCTL_WAIT_REMOVAL IOCTL_SET_BEEPINFO IOCTL_UPDATE_MONITORINFOnIOCTL_SET_EDGEINFO IOCTL_GET_EDGEINFO IOCTL_SET_CONST_TOUCHINFO IOCTL_GET_CONST_TOUCHINFO IOCTL_GET_MONITORINFO IOCTL_SET_MOUSEMODE IOCTL_GET_MOUSEMODE IOCTL_SET_LINZINFO IOCTL_GET_LINZINFO IOCTL_SET_MONITORINFO IOCTL_GET_CALINFO IOCTL_SET_BRACNHFORMAT IOCTL_GET_BRACNHFORMAT IOCTL_GET_OIRENTATION IOCTL_SET_OIRENTATION IOCTL_SET_CALINFO EDODefaultDeviceIoctl FDORegisterCallback end--- Hooked=%d FDORegisterCallback : pTempList ExAllocatePool size(%d) FDORegisterCallback begin--- Hooked=%d FDOUnRegisterCallback end--- Hooked=%d FDOUnRegisterCallback : FreePool FDOUnRegisterCallback begin--- Hooked=%d Leave identify device type FDOIdentifyDeviceType : ustrHardwareID.Buffer FreePool It is a SERIAL device ACPI\SERENUM\USB\We got a new hardware id , and compare it FDOIdentifyDeviceType : ustrHardwareID.Buffer ExAllocatePool size(%d) Enter identify device type FDOOpenPort : Internal DeviceID = %d FDOOpenPort : pFdoExt->m_pPort ExAllocatePool(NonPagedPool) size(%d) FDOOpenPort FDOClosePort : release DeviceID = %d FDOClosePort FDOOpenEDO : ustrDeviceName FreePool FDOOpenEDO : ustrSerialNo FreePool FDOOpenEDO: Create EDO failed #EDOFDOOpenEDO : pEdoExt->m_ustrSymbolicName.Buffer ExAllocatePool size(%d) FDOOpenEDO: init EDO failed. \Device\EDOFDOOpenEDO : ustrSerialNo ExAllocatePool size(%d) FDOOpenEDO : ustrDeviceName ExAllocatePool size(%d) FDOOpenEDO EDO PrepareDelete. FDOCloseEDO : Decreaseing Reference call by NotifyToRemove and Destruct FDOCloseEDO FDOStopEDO OnFDODefaultHandler DebugLevelForceRedirectedLeave start device Enable Device Interfce done Going to Enable Device Interface Empty Port's StartDevice Do port start device GetCommName Success GetCommName Failure TouchSendSyncIrp is success Enter start device xTouch : Leave remove device xTouch : IoReleaseRemoveLockAndWait is called FDO PrepareDelete. xTouch : Do port remove device xTouch : Enter remove device Leave stop device Enter stop device Leave surprise remove device OnPnPSurpriseRemove : return status not success. Enter surprise remove device Leave OnPnPQueryRemoveDevice OnPnPQueryRemoveDevice OnPnPCancelRemoveDevice IRP_MN_SET_LOCK IRP_MN_QUERY_PNP_DEVICE_STATE IRP_MN_SURPRISE_REMOVAL IRP MN Others IRP_MN_EJECT IRP_MN_QUERY_CAPABILITIES IRP_MN_QUERY_RESOURCE_REQUIREMENTS IRP_MN_READ_CONFIG IRP_MN_WRITE_CONFIG IRP_MN_QUERY_INTERFACE IRP_MN_QUERY_DEVICE_RELATIONS IRP_MN_CANCEL_STOP_DEVICE IRP_MN_QUERY_STOP_DEVICE IRP_MN_CANCEL_REMOVE_DEVICE IRP_MN_QUERY_REMOVE_DEVICE IRP_MN_REMOVE_DEVICE IRP_MN_STOP_DEVICE IRP_MN_START_DEVICE FDO: IOCTL_INTERNAL_MOUSE_CONNECT FDO: IOCTL_INTERNAL_MOUSE_DISCONNECT FDO: IOCTL_INTERNAL_MOUSE_ENABLE FDO: IOCTL_INTERNAL_MOUSE_DISABLE FDO: IOCTL_MOUSE_QUERY_ATTRIBUTES FDO: IOCTL Others Increase FDO Ref IoAcquireRemoveLock not success, Fail IRP OnFDOCreate DecreaseRef FDO Ref. OnFDOClose OnFDORead FDODefaultWrite Serial : Powering Up! Clear Power down Event Serial : Powering Down! Trigger Power down Event xTouch : Enter FDODefaultSetPower Power : Leave OnFDOWaitWake Power : Enter OnFDOWaitWake Power : Enter OnFDOPower UsbPort : after set configuration NULL UsbPort : before set configuration NULL PnpUsbRemoveDevice : after abort and reset pipe PnpUsbRemoveDevice : before abort and reset pipe PnpUsbSurpriseRemove : after abort pipe PnpUsbSurpriseRemove : before abort pipe UsbPort : Assign task usb infomation fail !!! UsbPort : Get usb information fail !!! UsbPort : Init Cmd Fifo success UsbPort : Init TX Fifo success UsbPort : Init RX Fifo success UsbPort : Leave usb stop device UsbPort : After release fifo UsbPort : Before release fifo UsbPort : After stop thread UsbPort : Before stop thread UsbPort : Enter usb stop device UsbPort : Leave UsbGetUsbInfo UsbPort : Leave AllocatePipeResources UsbPort : Enter AllocatePipeResources UsbPort : Leave QueryTotalNumsOfPipes UsbPort : Enter QueryTotalNumsOfPipes UsbPort : Leave ReleasePipeResources UsbPort : Enter ReleasePipeResources UsbPort : Leave QueryTotalNumsOfInterfaces UsbPort : Enter QueryTotalNumsOfInterfaces UsbPort : Leave ReleaseInterfaceList UsbPort : Enter ReleaseInterfaceList UsbPort : UsbSetConfiguration Fail UsbPort : Leave SetConfiguration UsbPort : Enter SetConfiguration UsbPort : UsbGetConfigurationDescriptor Fail UsbPort : UsbGetDeviceDescriptor Fail UsbPort : Enter UsbGetUsbInfo UsbPort : Build DeviceIoControl Irp Fail Get Device Descriptor Fail !!! UsbGetDeviceDescriptor : pDescriptor->bNumConfigurations = %d Get Device Descriptor Success UsbPort : Descriptor Allocate Fail !!! UsbPort : Get CfgDescriptor ( 0x%x) Success UsbPort : Get CfgDescriptor Fail !!! UsbPort : CfgDescriptor Allocate Fail !!! UsbGetConfigurationDescriptor : Configuration descriptor length = %d UsbSetConfiguration : success UsbSetConfiguration : after submit select URB UsbSetConfiguration : before submit select URB UsbSetConfiguration : pEPtDesc == NULL ( fail ) UsbSetConfiguration : after USBD_ParseDescriptors UsbSetConfiguration : before USBD_ParseDescriptors UsbSetConfiguration : pSelUrb == NULL ( fail ) UsbSetConfiguration : after USBD_CreateConfigurationRequestEx UsbSetConfiguration : before USBD_CreateConfigurationRequestEx UsbSetConfiguration : ulNumsOfEndPoints != 1 ( fail ) UsbSetConfiguration : after USBD_ParseConfigurationDescriptorEx UsbSetConfiguration : we got a new pIfDesc and store it UsbSetConfiguration : pIfDesc == NULL UsbSetConfiguration : after call USBD_ParseConfigurationDescriptorEx UsbSetConfiguration : i = %d UsbSetConfiguration : before USBD_ParseConfigurationDescriptorEx UsbSetConfiguration : Enter UsbSetConfiguration : Leave UsbSetConfiguration : free pSelUrb UsbSetConfiguration : fail and free resources UsbPort : Leave UsbQueryTotalNusOfInterfaces UsbPort : Enter UsbQueryTotalNusOfInterfaces UsbPort : Leave UsbQueryTotalNumsOfPipes UsbPort : Enter UsbQueryTotalNumsOfPipes UsbPort : Leave UsbAllocatePipeResources UsbPort : Allocate pipe resources fail !!! UsbPort : Enter UsbAllocatePipeResources UsbPort : Leave UsbReleaseInterfaceList UsbPort : Enter UsbReleaseInterfaceList UsbPort : Leave UsbReleasePipeResources UsbPort : Enter UsbReleasePipeResources UsbPort : Leave UsbReleaseUsbInterfacePipeResources UsbPort : Enter UsbReleaseUsbInterfacePipeResources UsbPort : Leave UsbReleaseAllUsbResources UsbPort : Enter UsbReleaseAllUsbResources UsbAbortPipe : return fail UsbAbortPipe : return success UsbResetPipe : return failUsbResetPipe : return successUsbRxComplete : Leave UsbToComRxComplete UsbRxComplete : Enter UsbToComRxComplete UsbRxThread : RxThread Terminated due to m_PnPState not started UsbRxThread : Usb urb error = READ_URB_ERR UsbRxThread : Receive the stop Event 0x%02x 0x%02x UsbRxThread : Copy read data to RxFifo UsbRxThread : Receive %d bytes UsbRxThread : PipeHandle = %x UsbRxThread : Usb urb error = %x UsbRxThread : Rx thread loop start ! UsbRxThread : Pipe Handle = %x UsbRxThread : Transfer Size=%d UsbRxThread : Polling Interval=%dms UsbRxThread : UsbPortRxThreadRoutine is Running UsbRxThread : UsbPortRxThreadRoutine Fail due to no more memory to allocate Irp. UsbTxThread : AllocateUsbControlPipeIrpAndUrb Failed for URB UsbTxThread : AllocateUSBControlPipeIrpAndUrb failed for IRP UsbTxComplete : Leave UsbToComTxComplete UsbTxComplete : Enter UsbToComTxComplete UsbTxThread : Free Write Irp UsbTxThread : Free URB UsbTxThread : USbToTxComThread Terminated due to device not started UsbTxThread : Leave pending Wait ( exit thread ) UsbTxThread : the stop event was setted UsbTxThread : Stop Event was setted UsbTxThread : Write Done UsbTxThread : Pending Wait - ok UsbTxThread : Enter Pending Wait UsbTxThread : Read No Data UsbTxThread : UsbToComTxThread enter Wait Data Objects UsbTxThread : m_pOP = 0x%x UsbTxThread : m_ulWrite = 0x%x UsbTxThread : m_ulRead = 0x%x UsbTxThread : m_ulLen = 0x%x UsbTxThread : m_pBuffer = 0x%x UsbTxThread : UsbToComTxThread is running UsbTxThread : AllocateUsbPipeIRPandUrb Fail !!! UsbTxThread : pPortBase = 0x%x , pTxFifo = 0x%x BaudRateBaudReate = %d !!! PnpSerialStartDevice: open edo failed PnpSerialStartDevice() Leave PnpSerialStopDevice() PnpSerialStopDevice() Leave PnpSerialSurpriseRemove() PnpSerialSurpriseRemove() Thread isn't stopped yet!!! SerialStopDevice (m_IsPnpDevice)! SerialStopDevice! DeviceSyncIoctl : status != STATUS_PENDING DeviceSyncIoctl : status = STATUS_PENDING SerialSetRTS : set RTS fail SerialSetRTS : set RTS success SerialSetRTS : status = STATUS_PENDING Leave init serial port Set timeout success !!! Set timeout fail !!! Set LCR success !!! Set LCR fail !!! Set baud rate success !!! Set baud rate fail !!! SerialReleaseIrp Enter read completion routine SerialAllocateRxIrp :Leave allocate rx IRP . SerialAllocateRxIrp : allocate rx IRP false. SerialAllocateRxIrp :enter allocate rx IRP . RxThread : Leave Rx thread RxThread : Stop event is setting SerialStartDevice:RxThreadRoutine --- Stop Event fired !!! RxThread : Leave DispatchOriginalData RxThread : Enter DispatchOriginalData Rx : 0x%02x Rx : 0x%02x RxThread : ulReadBytes = 0x%x RxThread : read event is fired SerRxThread : Power Down Event Trigger End SerRxThread : Power Down Event Trigger RxThread : KeWaitForMultipleObjectsRxThread : IoCallDriverRxThread : allocate rx IRP false. RxThread : IoSetCompletionRoutineSerRxThread : Power Status is DeviceDo! SerRxThread : Set m_ulTouchStatus =1 enable touch SerRxThread : Stop Event was setted SerRxThread : System Power Status is %X! SerRxThread : Device Power Status is %X! RxThread : EnterSerialStartDevice:RxThreadRoutine --- Running !!! kIrql > PASSIVE_LEVEL || NULL == pPortBase->pReadIrp write complete: Delete Pending Write IRP write complete: Device not connected. write complete: Cancel Write IRP Write data to lower success Write data to lower timeout write complete: Other status = %x Enter write complete routine Tx Thread : cancel Irp Tx Thread : Power Down Event Trigger End Tx Thread : Power Down Event Trigger SerTxThread : Leave Tx thread SerTxThread : Stop event is setting SerTxThread : Stop Event fired! SerTxThread : send 0x%x SerTxThread : get power down event SerTxThread : Stop Event was setted SerTxThread : System Power Status is %X! SerTxThread : Device Power Status is %X! TxThread : Enter SerialStartDevice:TxThreadRoutine --- running!!! kIrql > PASSIVE_LEVEL || NULL == pPortBase->pWriteIrp SerialIsDeviceExistingThreadRoutine : Leave IOCTL_INTERNAL_SERENUM_REMOVE_SELF is failIOCTL_INTERNAL_SERENUM_REMOVE_SELF is successIsDeviceExistingThread : ( ulModemStatus & SERIAL_DSR_STATE ) != SERIAL_DSR_STATE IsDeviceExistingThread : stop event is setting IsDeviceExistingThread : we got MSR %08x IsDeviceExistingThread : Enter SerialGetCommName : pFullInfo FreePool SerialGetCommName : ustrTempCommPortName.Buffer FreePool m_ustrCommPortName = %ws m_ustrCommPortName.MaximumLength = 0x%x return length = %d bytes ustrTempCommPortName get from PDO = %ws _DEVICE_ = %ws \DosDevices\SerialGetCommName : pFdoExt->m_ustrCommPortName ExAllocatePool size(%d) SerialGetCommName : pFullInfo ExAllocatePool size(%d) NativePortNameSerialGetCommName : ustrTempCommPortName.Buffer ExAllocatePool size(%d) SerialStartDevice:Fail to StartDevice - CmdFifo !!! SerialStartDevice:Fail to StartDevice - TxFifo !!! SerialStartDevice:Fail to StartDevice - RxFifo !!! SerialStartDevice !!! PS2 UsbFlushCmdPacket : Leave EDOMutex UsbFlushCmdPacket : Debug 8 UsbFlushCmdPacket : Debug 7 UsbFlushCmdPacket : Debug 6 UsbFlushCmdPacket : Debug 5 UsbFlushCmdPacket : Debug 4 UsbFlushCmdPacket : Debug 3 UsbFlushCmdPacket : Debug 2 UsbFlushCmdPacket : Debug 1 UsbFlushCmdPacket : Debug 0 UsbFlushCmdPacket : Enter EDOMutex 2.0V ResistiveRedirect : Update Data in Registry Redirect : SetEEPROM Addr=%02X, Value=%04XRedirect : Returned CheckSum = %04X Redirect : Get EEPROM Addr = %02X Value = %02X %02X UsbPort : Leave UsbInsertCmdPacket UsbPort : Enter UsbInsertCmdPacket \InformationEEPROM : Query Value Fail! Update Registry again EEPROM : Query Value Returned=%d QueryEEPROM : FullInfo FreePool EEPROM : Query Addr=%02X, Value=%04X QueryEEPROM : FullInfo ExAllocatePool size(%d) OnFDOSystemIoctl : EnterFDOWmiUnRegistration : EnterFDOSetWmiDataItem : LeaveFDOSetWmiDataItem : EnterFDOSetWmiDataBlock : LeaveFDOSetWmiDataBlock : EnterFDOQueryWmiDataBlock : LeaveFDOQueryWmiDataBlock : EnterFDOQueryWmiRegInfo : LeaveMofResourceNameFDOQueryWmiRegInfo : EnterxTouch : Leave FDOWmiRegistrationxTouch : Enter FDOWmiRegistration SerialFlushCmdPacket : Leave EDOMutex SerialFlushCmdPacket : Debug 8 SerialFlushCmdPacket : Debug 7 SerialFlushCmdPacket : Debug 6 SerialFlushCmdPacket : Debug 5 SerialFlushCmdPacket : Debug 4 SerialFlushCmdPacket : Debug 3 SerialFlushCmdPacket : Debug 2 SerialFlushCmdPacket : Debug 1 SerialFlushCmdPacket : Debug 0 SerialFlushCmdPacket : Enter EDOMutex SerialPort : Leave SerialInsertCmdPacket SerialPort : Enter SerialInsertCmdPacket SerialQueryEEPROM : FullInfo FreePool SerialQueryEEPROM : FullInfo ExAllocatePool size(%d) pMouseData->LastX %d,pMouseData->LastY %d IsNeedTransfer2Rectangle : end DO_NOT_REPORT_RECTANGLE IsNeedTransfer2Rectangle : is not ID2 NEED_REPORT_RECTANGLE IsNeedTransfer2Rectangle : is ID2 NEED_REPORT_RECTANGLE IsNeedTransfer2Rectangle : is ID1 DO_NOT_REPORT_RECTANGLE(no ID2) IsNeedTransfer2Rectangle : is ID1 NEED_REPORT_RECTANGLE(has ID2) IsNeedTransfer2Rectangle DO_NOT_REPORT_RECTANGLE (don't init ID1)(0x%x) IsNeedTransfer2Rectangle DO_NOT_REPORT_RECTANGLE (init ID1)(0x%x) IsNeedTransfer2Rectangle pDeviceParam->m_RealMultiRectangleStatus.m_bDropSecondUp(0x%x) RealMultiReportRectangle:Clean status RealMultiReportRectangle:pDeviceParam->m_RealMultiRectangleStatus.m_bDropSecondUp 0x%x RealMultiReportRectangle:ReportMouseData.ExtraInformation 0x%x RealMultiReportRectangle:m_ucDeviceID 0x%x RealMultiReportRectangle:m_DeviceType 0x%x RealMultiReportRectangle:ucTouchStatus 0x%x RealMultiReportRectangle:Do not report this mouse event RealMultiReportRectangle:m_bNeedPostUp ==TRUE RealMultiReportRectangle: ucUserID 0x%x ucID 0x%x RealMultiReportRectangle: pPostMouseState 0x%x m_bNeedPostUp ==TRUE RealMulti: pPostMouseState 0x%x pMouseData->ExtraInformation 0x%x pFormatData[0] & 0x40 pFormatData[5] == 0x60 pFormatData[5] == 0x5f pFormatData[0] & 0x20 pFormatData[0] & 0x60 ReportMouseData.ExtraInformation 0x%x (gesture) EdgeBtnAction : WHEEL_DOWN 0x%x EdgeBtnAction : WHEEL_UP 0x%x EdgeBtnAction Y EdgeBtnAction X HWEEL_RIGHT 0x%x HWEEL_LEFT 0x%x EdgeBtnAction: pLastPostMouseData->Buttons = MOUSE_LEFT_BUTTON_UP; EdgeBtnAction: TouchDown == pDeviceParam->m_LastTouchState `))))v)(J)<).)))*))###### $ $8$R$\$j$|$$$$$$$%%:%\%r%%%%%%&&L#B&T&b&z&|#&&&&&'2'J'j'''''''(&(:(J(X(r(((((8#&# #""""""t"r#&`#\"D"$&8"$U4IRP_MJ_MAXIMUM_FUNCTIONIRP_MJ_PNP_POWERIRP_MJ_PNPIRP_MJ_SET_QUOTAIRP_MJ_QUERY_QUOTAIRP_MJ_DEVICE_CHANGEIRP_MJ_SYSTEM_CONTROLIRP_MJ_POWERIRP_MJ_SET_SECURITYIRP_MJ_QUERY_SECURITYIRP_MJ_CREATE_MAILSLOTIRP_MJ_CLEANUPIRP_MJ_LOCK_CONTROLIRP_MJ_SHUTDOWNIRP_MJ_INTERNAL_DEVICE_CONTROLIRP_MJ_DEVICE_CONTROLIRP_MJ_FILE_SYSTEM_CONTROLIRP_MJ_DIRECTORY_CONTROLIRP_MJ_SET_VOLUME_INFORMATIONIRP_MJ_QUERY_VOLUME_INFORMATIONIRP_MJ_FLUSH_BUFFERSIRP_MJ_SET_EAIRP_MJ_QUERY_EAIRP_MJ_SET_INFORMATIONIRP_MJ_QUERY_INFORMATIONIRP_MJ_WRITEIRP_MJ_READIRP_MJ_CLOSEIRP_MJ_CREATE_NAMED_PIPEIRP_MJ_CREATE;q@Oڗqe]Yi7N;$D4Ezb`[HRSDSTH/4`e:\output\i386\sertouch.pdb vxffZVX$.//G00,,2p2H_t0,02Yv*\T()*+,. ( ( (4lv4'g8hhh44r#g8hhh44 =g8hhh44.|y{}@Ƽ@&PFjx>bnnnn22@ffffffff  btcccdd"eef.f|f( tT4x`L<$ 8F XV,J   FDPU>dG*.DEtRp&n   T!!XGMIRNOO"g8hhh44,E/2300 1442Yt_[6e`` aZdc'g8hhh44$5g8hhh44<g8hhh44r@g8hhh44"Gg8hhh44"Gg8hhh44ffffffff2>Ug8hhh44Xffffffff2N@D N@t;u5uӲU]jK (D ) )8 <*(`))))v)(J)<).)))*))###### $ $8$R$\$j$|$$$$$$$%%:%\%r%%%%%%&&L#B&T&b&z&|#&&&&&'2'J'j'''''''(&(:(J(X(r(((((8#&# #""""""t"r#&`#\"D"$&8"?DbgPrintKeWaitForSingleObjectKeInitializeSpinLockKeInitializeEventInterlockedIncrementKeSetEventInterlockedDecrementIofCompleteRequestbIoReleaseCancelSpinLockInterlockedExchangeIoAcquireCancelSpinLockeKeReleaseMutexKeInitializeMutexKeInitializeTimerKeInitializeDpcOmemsetKeSetTimerqKeRemoveQueueDpcKeCancelTimerDPsTerminateSystemThreadKeWaitForMultipleObjectsKeClearEventKeSetPriorityThreadKeGetCurrentThreadObfDereferenceObjectGIoOpenDeviceRegistryKeyMZwCloseExFreePoolZwQueryValueKeypExAllocatePoolRtlInitUnicodeStringKmemcpyRtlWriteRegistryValueMRtlQueryRegistryValuesIoDeleteSymbolicLinkRtlCreateRegistryKeyZwOpenKey[RtlAppendUnicodeToStringZRtlAppendUnicodeStringToStringdRtlCheckRegistryKeyKeInitializeSemaphorefKeReleaseSemaphoreIofCallDriverObReferenceObjectByHandlePsCreateSystemThreadYIoRegisterDeviceInterfaceIoDeleteDeviceIoDetachDeviceIoAttachDeviceToDeviceStackIoCreateDeviceKeTickCountRKeQueryTimeIncrement_allmulExEventObjectType:IoInitializeRemoveLockEx#IoGetDevicePropertyvIoSetDeviceInterfaceStateIoCreateSymbolicLinkRtlIntegerToUnicodeStringdIoReleaseRemoveLockExRtlFreeUnicodeStringcIoReleaseRemoveLockAndWaitExIoAcquireRemoveLockExPoCallDriverPoStartNextPowerIrpIoFreeIrpIoBuildDeviceIoControlRequestRtlFreeAnsiStringRtlUnicodeStringToAnsiStringRtlxUnicodeStringToAnsiSizeNlsMbCodePageTagIoAllocateIrpIoCancelIrpKeDelayExecutionThreadObReferenceObjectByPointer"IoGetDeviceObjectPointerIoWMIRegistrationControlKeBugCheckExntoskrnl.exeRtlUnwindcKfReleaseSpinLock`KfAcquireSpinLockTKeGetCurrentIrqlaKfLowerIrqlbKfRaiseIrqlExReleaseFastMutexExAcquireFastMutexgREAD_PORT_UCHARmWRITE_PORT_UCHARHAL.dllWmiSystemControlWmiCompleteRequestWMILIB.SYS USBD_ParseDescriptorsUSBD_CreateConfigurationRequestEx USBD_ParseConfigurationDescriptorExUSBD.SYS 8Ph  3a0 MOFDATAMOFRESOURCENAME 4VS_VERSION_INFO 5 5?StringFileInfo\040904B0 CompanyName^FileDescriptionSerial Touch Device Driver^FileVersion5.13.00.13808 built by: WinDDK: InternalNameserTouch.sysZLegalCopyrightCopyright (c). 2000 ~ 2015B OriginalFilenameserTouch.sysFProductNameSerial Touchscreen@ProductVersion5.13.00.13808DVarFileInfo$Translation FOMBQDS}TQB iD 䂉 ! -L p !JH*BB([vDI`F*hr7 <ѐt>DchGy8' FH0DY3`cd%BX`PQ 8#[HBL1a6 %J8T"xFѣDl <#:s rd <3,w ?D vOy& c`X 5n?pzNxGtp9̑= 4{>DO?:AFfh|$0BH~{>Jd!'A'|8yZeBj>*(P2,jhOoF~n0ıP L"9$7aCuhl0/"a N!y0X9m9p NjGG;دh8}U F> >G>?? 00J0l0001"1c1}1122"252f2222 33%393U333333444N4h4444 5B5S5u55555@6j6666666677C7J7777788:8p88888 9-9E9V9y99999:%:s::::;/;U;};;;;!<3>%>C>S>c>s>>>>>>>>>> ??0080T0d000111S1c1s11111 22Q2~222223M3Z33333334H4U4}445&505=5L5n5y5555C6P6]6l66666@7J7W7f777778)8C8Q88888889%9E9999999:#:C:::::*;g======>>>>??/?9?L?h????@4 00030=0M0i00001111111111222,2>222222333(3:3333333344$4m4v44444445#5(505I5S5c55555%6*626K6U6h66667.737;77777 88"8=8B8J888889"929M9R9Z99999):2:B:]:b:j:::::9;B;R;m;r;z;;;;>)>F>S?c?s???????????PD0"040F0X0j0|000000.1c1{111112M2c2n222222 3;3Y333334#4C4Q4444444535M5[5555555"676Q6_6666666!7*7:7{777777/888H8x8899;9v999:c:h:u::::;&;n;;;;;<<7>>&>1><>G>R>]>b>p>u>>>>>>>>>>>>>> ??#?`00112!2?2]2{2 33-3B3\33 404d444575555556@6j666666 7#7O7Y7p777778(8Q8o888889#919W9l9z99999:.:F:Z:::::: ;;2;X;l;x;~;;;;;;;;;;;<)<<O>}>>>>>:?a????????pDP000 111122H2u2222/3o34555966667*7D71+>D>Z>x>>>>>$?:?f?|????? 060J0f0t000001111"1&1*1.12161:1>1B1F111!2>2222333333445-5V5D6\6t666667.7-8E8]8u888*9O9994:N:::,;=;;;.>> >>>>>U>k>>>>>B????t0N0q00001_111)223|33445 66/7w7 8<8]8z889.9H99:::: ;%;=;U;m;;;;;<4>xJ1d1z12203M3S4465O57z77H889v99R:: ;t;x;|;;;;;;;;<"<&<*<.<2<6<:<><<<=== >=>T>>>> ???t0000;1k112C3]33/4]445=5f5556@6D7Q77777&8889b:::';s;;<<<=k==j>>>>>? ????40W0n000001h11112F2v222223 3<3M33334444445I5x555^6666H7f777789H9Y9u99999::o::::;;;;;)>I>h>>>>>&?5?l???F0a00001U1112+2D2n223)3O3u333474]444535Y5555626T6v66787U7i7}77778A8Z8888 9F9_99999#:="====>>l>>>?2t2222233,393R3b3r333333334-4U4b4o4|444444455-5U5v5555 6\6666666 727I7777788!8888888#9S9999:<:V:{: ;;;+;U;;;;;D>R>^>o>>?H?i???#0>0R00 111\2j2}222223353L3c3z33333344.4>4T44444444444444455 555555"5&5*5.52565:5>5B5F5f5t555T7e7x777777 88888899]9v9999&:8:I:]:p::::::;;2;D;d;{;;; Z>h>{>>J?>0x00 1\1112T2x222383L33334T4p444445)5=5[5o555556#656Q6d6y6667-7O7\77788/88899)979L9Z9999999:7:P:`:p::::::;^;;;; >>> ?*?>>>?+?S?????0 000H0\0g0O1i1s1111111e22223&363n3~3334;4N44444 5d5~555555 6#6G6a6666677/7D7R7k7777777/8I8i88889'9>9l999999999 :c:w::::::::,;?;;;;;<<-<;m>>>>@0.0B0X00000001I1Y111112272c2m2223Y3j3t3333344*4W444444l55555 66T666&7@7d77778J888/9[99999::;E;Z;;; <<<<>=^==>>=?B?O?q??P<0j000001@111112&2:2Z2'3,32383>3I3O3V3\3b3g3n3r3x3}33333434?4J4R4Y4_4f4l4r4z4444444 5M5T5]5j5~555566>6P666667B7t777,8Y8d8t888888889>9q9999$:_:: ;5;^;;;;<<<+=@====n>>>$?D???`0000011111162i2223$313K3p3333f4G66666[7777878Q8k888\99:X:v:::;4;};;;;g<=;=Y=v==g>>?=?Z??ph0^0001\1w111223(3^333334C4d4444 535T5t5z5555555267c7|77788899*944 558000 00000 0$0(0,0004080<0@0D0H0L0P0T0X0\0`0d0h0l0p0t0x0|000000000000000000000000000000000111 11111 1$1(1,1014181<1@1D1H1L1P1T1X1\1`1d1h1l1p1t1x1|11111111 33333$3(3,3034383@3D3H3L3P3T3X3\3`3d3h3l3p3t3x3|3333333333333333333333333333333444 44444 4$4(4h44444444444444444444445 55555 5$5(5,5L5P5T5X5\5`5d5h5l5p5t5x5|555555555555555555555555555555555666 66666 6$6(6,6064686<6@6D6H6L6P6T6X666666666 000$0-040