From 55360f6ee5edb557053fb9cde8bcb3dfcc2f5f26 Mon Sep 17 00:00:00 2001 From: Mikko Mononen Date: Thu, 19 Aug 2010 09:55:12 +0000 Subject: [PATCH] Missing files for R197 --- DebugUtils/Include/RecastDump.h | 3 + DebugUtils/Source/RecastDump.cpp | 39 + Detour/Source/DetourNavMeshQuery.cpp | 5 + .../Bin/Recast.app/Contents/MacOS/Recast | Bin 942100 -> 962596 bytes .../Xcode/Recast.xcodeproj/memon.pbxuser | 6119 ++++++++++++++++- .../Recast.xcodeproj/memon.perspectivev3 | 364 +- .../Xcode/Recast.xcodeproj/project.pbxproj | 20 +- RecastDemo/Include/InputGeom.h | 4 +- RecastDemo/Include/Sample.h | 60 +- RecastDemo/Include/SampleInterfaces.h | 90 + RecastDemo/Include/Sample_Debug.h | 1 - RecastDemo/Include/Sample_SoloMeshSimple.h | 2 - RecastDemo/Include/Sample_SoloMeshTiled.h | 2 - RecastDemo/Include/Sample_TileMesh.h | 26 +- RecastDemo/Include/TestCase.h | 4 +- RecastDemo/Source/InputGeom.cpp | 19 +- RecastDemo/Source/NavMeshTesterTool.cpp | 1 - RecastDemo/Source/Sample.cpp | 105 +- RecastDemo/Source/SampleInterfaces.cpp | 277 + RecastDemo/Source/Sample_Debug.cpp | 11 +- RecastDemo/Source/Sample_SoloMeshSimple.cpp | 144 +- RecastDemo/Source/Sample_SoloMeshTiled.cpp | 183 +- RecastDemo/Source/Sample_TileMesh.cpp | 374 +- RecastDemo/Source/TestCase.cpp | 20 +- RecastDemo/Source/imguiRenderGL.cpp | 30 +- RecastDemo/Source/main.cpp | 45 +- 26 files changed, 6902 insertions(+), 1046 deletions(-) create mode 100644 RecastDemo/Include/SampleInterfaces.h create mode 100644 RecastDemo/Source/SampleInterfaces.cpp diff --git a/DebugUtils/Include/RecastDump.h b/DebugUtils/Include/RecastDump.h index b0e00fe..e61a976 100644 --- a/DebugUtils/Include/RecastDump.h +++ b/DebugUtils/Include/RecastDump.h @@ -37,4 +37,7 @@ bool duReadContourSet(struct rcContourSet& cset, duFileIO* io); bool duDumpCompactHeightfield(struct rcCompactHeightfield& chf, duFileIO* io); bool duReadCompactHeightfield(struct rcCompactHeightfield& chf, duFileIO* io); +void duLogBuildTimes(rcBuildContext* ctx, const int totalTileUsec); + + #endif // RECAST_DUMP_H diff --git a/DebugUtils/Source/RecastDump.cpp b/DebugUtils/Source/RecastDump.cpp index 21211b7..d78123b 100644 --- a/DebugUtils/Source/RecastDump.cpp +++ b/DebugUtils/Source/RecastDump.cpp @@ -398,3 +398,42 @@ bool duReadCompactHeightfield(struct rcCompactHeightfield& chf, duFileIO* io) return true; } + +static void logLine(rcBuildContext* ctx, rcBuilTimeLabel label, const char* name, const float pc) +{ + const int t = ctx->getBuildTime(label); + if (t < 0) return; + ctx->log(RC_LOG_PROGRESS, "%s:\t%.2fms\t(%.1f%%)", name, t/1000.0f, t*pc); +} + +void duLogBuildTimes(rcBuildContext* ctx, const int totalTimeUsec) +{ + const float pc = 100.0f / totalTimeUsec; + + ctx->log(RC_LOG_PROGRESS, "Build Times"); + logLine(ctx, RC_TIME_RASTERIZE_TRIANGLES, "- Rasterize", pc); + logLine(ctx, RC_TIME_BUILD_COMPACTHEIGHFIELD, "- Build Compact", pc); + logLine(ctx, RC_TIME_FILTER_BORDER, "- Filter Border", pc); + logLine(ctx, RC_TIME_FILTER_WALKABLE, "- Filter Walkable", pc); + logLine(ctx, RC_TIME_ERODE_AREA, "- Erode Area", pc); + logLine(ctx, RC_TIME_MEDIAN_AREA, "- Median Area", pc); + logLine(ctx, RC_TIME_MARK_BOX_AREA, "- Mark Box Area", pc); + logLine(ctx, RC_TIME_MARK_CONVEXPOLY_AREA, "- Mark Convex Area", pc); + logLine(ctx, RC_TIME_BUILD_DISTANCEFIELD, "- Build Disntace Field", pc); + logLine(ctx, RC_TIME_BUILD_DISTANCEFIELD_DIST, " - Distance", pc); + logLine(ctx, RC_TIME_BUILD_DISTANCEFIELD_BLUR, " - Blur", pc); + logLine(ctx, RC_TIME_BUILD_REGIONS, "- Build Regions", pc); + logLine(ctx, RC_TIME_BUILD_REGIONS_WATERSHED, " - Watershed", pc); + logLine(ctx, RC_TIME_BUILD_REGIONS_EXPAND, " - Expand", pc); + logLine(ctx, RC_TIME_BUILD_REGIONS_FLOOD, " - Find Basins", pc); + logLine(ctx, RC_TIME_BUILD_REGIONS_FILTER, " - Filter", pc); + logLine(ctx, RC_TIME_BUILD_CONTOURS, "- Build Contours", pc); + logLine(ctx, RC_TIME_BUILD_CONTOURS_TRACE, " - Trace", pc); + logLine(ctx, RC_TIME_BUILD_CONTOURS_SIMPLIFY, " - Simplify", pc); + logLine(ctx, RC_TIME_BUILD_POLYMESH, "- Build Polymesh", pc); + logLine(ctx, RC_TIME_BUILD_POLYMESHDETAIL, "- Build Polymesh Detail", pc); + logLine(ctx, RC_TIME_MERGE_POLYMESH, "- Merge Polymeshes", pc); + logLine(ctx, RC_TIME_MERGE_POLYMESHDETAIL, "- Merge Polymesh Details", pc); + ctx->log(RC_LOG_PROGRESS, "=== TOTAL:\t%.2fms", totalTimeUsec/1000.0f); +} + diff --git a/Detour/Source/DetourNavMeshQuery.cpp b/Detour/Source/DetourNavMeshQuery.cpp index cbf4bf8..e10bf88 100644 --- a/Detour/Source/DetourNavMeshQuery.cpp +++ b/Detour/Source/DetourNavMeshQuery.cpp @@ -871,6 +871,7 @@ dtQueryState dtNavMeshQuery::updateSlicedFindPath(const int maxIter) } } + // Exhausted all nodes, but could not find path. if (m_openList->empty()) m_query.state = DT_QUERY_READY; @@ -880,7 +881,11 @@ dtQueryState dtNavMeshQuery::updateSlicedFindPath(const int maxIter) int dtNavMeshQuery::finalizeSlicedFindPath(dtPolyRef* path, const int maxPathSize) { if (m_query.state != DT_QUERY_READY) + { + // Reset query. + memset(&m_query, 0, sizeof(dtQueryData)); return 0; + } // Reverse the path. dtAssert(m_query.lastBestNode); diff --git a/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast b/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast index 453644357d5555e0969918daa9d50d8d729356a1..c75aaba27000c86a04d101eb7f4679b680a0bf55 100755 GIT binary patch delta 307064 zcmb@v4SZC^)jz&(fdv=uq8nTwK)`^!iA15YCP?0v7hx5I6;KvYF`}i`YNFUC-o(w; zOeeQuFR8R8Efm`F^iKYBwvH^Vh{C@vG zAKg25?#!7pXU?2CbIzH`x;o#Mwp-Q?8ZvEz#bR;c|EutSe@ox_7E9k18I<=@=4*-` zSAN%j<9Lh3pX0D>9HQ@W-{Si45r-v)0w3P(u)H|%D~I>RC7FHG`!|2nVfj4UVrjld zzjfd({SR+-SXNpsmc#4yXYo4uw+_o=0gGkwPxZ!uw+z^L&S5##*J9cDk;9VmV&>Go z!(aUNjeQ4Su{Q3oECcMd|8l&LIrznGH}*~6S$S29)mov4Jo(mD`X-g4Qgk)cp@% zEM9uU_xyntOPj5aW&c#GfrS+hU>r`{8Xrp3l9IIds5bOCL)F85!{u%T&F7 z@C|O~zi&O%PkemzchmDro|yOJrXLNNX4^Rah0H-a=MQo9e<`P+kG?G9M)kUp7KrNGQr%I3_GDcI%x>FV1UpGErfIf84#6~oSPg!H%jK|}R zD&uF3h48W#eKSimrVzS-M|je|LkH>WzKwW2bP%ac1fEl2#?2kRp3rd{<-*q!zV2{J zuROxsWz;!2R)jti#a%)zJueQ*sRXV3Lfj7WJy(h5w3*h;l&3lNG&&;GstwOgcv@ts zOJqm3AXzBVB3t?CiTswIuE;h#F)+fB(eXtD_19QsD)nD;T$6cd`iv14%Tpt@pVlEq zlw>%iKh253cZjr%j-@DWola%NTWD6eB0Kb7kGV;8;-e_aaL8fQCz(pUkW;B+THdM6 z{5F8m|D4c&DyZcqP!}fZmIUfi2jdM=rzda^f9xz23G}Bh`h_U=dw{oEDD}t=B+=`% z3<)Gm@}Be>c!WRp2u3J;pwA{kNe&<+wF2kaD7uA)nqjtT#xC};k@m&kUCns(q*2>vTzXo#wj-|fMy%~c`oFA_1BmBoVGpu5-z1XeY z)efrK-3DG@^>Bw*_}ex!b^&)dmL@}9>#JgzlL5FHK>KC~y_I_GYN<<`^~q)ne@xr# z!BeEV=yyOG{SHgV@1_EvuXeM>N;(hY+jW59o59m^iSFAKVB#t)keeqc1jaxBfpK()Ufn> z!yTjOjha^Wq)=bO4HNHKe(xdusVRe15&=1z=~oV*ajSpV-LIZUTliZIzR|vWGQq+f z%)(`*Z&->Zluaj+S&BxKy)*TFgX&rnd{N9H00}WI$c}Cy=Kg{U*_q^q=l$DiPzzH;nfPO>xfIY!H+G0+! zZ~~9e@LkE=LPKYycIesP7_BmsvH($@ivofF)FfthqDe3%c*bDXLNUdVgl1#T?#7H1 z$r8Jz^U+=``iz#h;6F_Zbg}9Gs3AS`<^tOtpX*QEoPK$Rlv7z|u=D~uvh>2ZX?Y2T zJYgxCm|)0jO@{o3I#~MKtfzbj{|`7)P5Iw&;C*lTt8rAp@<%*JgKjK?**y3dCkP8e zN|9u`f|$)?3aJsk8`USyK}h-AO_@QfxgqP7J$_fE|JbG^0WypQ$ouYo2j%pn@w)A# z2pqq3$c|Zxu1^eEh8(~$OXFXk$Q-cLrG%fkSRtEk{GdM4ZB#1 z4C^gLj`m2A-Zguq2!ps-il{7=F41rdF=Di;tUDmyU=ad6uDAU7BaKxSqq2`iQ}H+T znoT_d-*L$rQ~$2F{7{*X#D&Wox@>ci31AMpE<1e5qt`cUmipws<8h4CM;8yDhgGua zywKgD&9@3(`7}qFxzgD$(n5ec^8~R@JWh;4V#-L7pfXa_I=E#jEy$Z_k@g6Ghvdb3 z+`&zc;j5hP3hRHp?i$}0(O}b5 z)rX85avSU9MWc8X+`N){?LRre-*HA6Uw1}XUVlazn6e7FoeN|teKl6g14Vh`ntO^Y z;UckzgGfL>f95WI|ex zW`Z2-PDl=)4T z?~Qv9&`j;O8+VidG}p!WPbWRcQZ#ncJoG10S2RKnAQFPX>)ULZN9X6VyG zn@r`1+qE?(Wh&{iqIwGQpxhc;fMhjuskZPx>X{&ZSz-tav7a%tJdI#dHjN^UX7c23 zx_%PPv99YU8r>_JB&!K8&2hCk%bL}p;ky2qWFDGiP>SDF`)jj2z5~k7d&^p1#UUA? z{wW2#@nnH(4t(d{1JzybPek9K2aF4YN`SqOvZs7!Cf% zX=&-~+sGv?QX>qz*Ii{#lQBsTDQa(#oIsoqRU$47a@lla!Vc%1!sZqDfGIkFrf6ei z8lYNYzr+a0RQkeY%xsXVg7%+0Z<{c+Up=EN;d;uX*pn&B*uQovXB3A!1q1P`8z$QH zC-kE?+;T$&z!)=Fd2TzZcPssuP6G_;7Cn2iq4Jrnnv;LY|4_}GJ;sPz-%iZO1nVSb ze*cTP28cP(cemdQ0$@}8!V@W$x3Jq?XnkCNck;EVWFVrgBJ3y@E!0XI;T=!tgEPn2 zDxc7EGl$t0U9GRk9ChV|lb8(5GQ=SI+RWQ*zdorS&zxX;`lR0P#u@)v$-^eo&=?Gr zZ+RaPIJV1+JaQQG^4s9$Jdf|-<+mSD^346m|7Q94|9|_T zcJrx-GMkDoE>RuIN}(X-{V5Jo8#>@VlEDgX%90s~%tx1Ug4JBUZJpVdgK%#Wh^H2R zeRXR+Ymc;jFtkTyZwRV~VMs}6j>-EKa|@woOewH>^*geDHo^KRmcKAfGe}{!wEXK^ zl;bpV1_-~CB=4bE>$mjO>{+&-d`n-RJ;u|*)yzU%E%+^cefDbGr>pfo)5mxw@^?oP z*x#+zbEeN8P*@3DoZm$zo&Brz>gl8UzqA_i7o7V0)q4GOZ`$+pIwhmSL(jlEso_=lrT(kV3)%vJgqwY7s^IGk6loQz*9e-M_e}3x^ZB>uxV#fZ#zkV29 zDRs){JU~Qq%5}q>jnJn&-rROg)qLrR6n?9LVN2P*nj%Cv`_$BfJUN)s~)W6Cbpx(a< zaH53fUZk|gtOR@tWgY}N_iq}@YiY!ZD%68b6Y)-^m!SyA*`IK51EW#QOC1@X5s0ei+t}4!V$ooo6l=3L$MZ+9d=C z0wM7BE?|V`!a}_*f6U-QqKp6drm6&ppjUV@I_|(w6b!K~c~H+Pm})y;s6SqCqphh> z|8;@SrWNY%7K|G7Fj4X#cIaXeta<(x0;;am2m8k;b5?`!{w4>oJ^zwI=DBRH;`V1==AqM6E#?&8c=TtGwAYKg>AgEhVRn&9k%p;xsp>jyakA>rf zJm1^ToTh4evwzSn-$yB#I)(ZHgs5H-)$=#Y>06K~r%t9%F!~YOEX5}+)JCK5@B@1K z%n9i?KL8a0BQu!trkF3TM0xvz`Zs3||Hk_(FK**?k~e6Ky$tJ*9yB1bhO2JIgGD zO-WLvfh+aUtYNm(59lSc#@z4R~%Au(StUp3d zV%i;}uiez%#KZ=y24oYlEmnN)MeN_+m*Rzh>Op=JInENwt{eR?7**04w#)pme=rw>59*sj%5V zHdUC)tqz_p1Y0#nEec`gwPzlR`j1mO>Tjb*=VTdl>1XDS znQ_z!qRbaOUfNd{w`CsdY!^*QCV}utFEvE<&=9%QI);?lEo57?y!f3en^$)= zx%AR`L(-0_b`XQGE1<$=B_dqaa((B#QMPJTe{w#$Oa+`=7rn-y;KWPQ(3a$MS}Qg)(J8tnsP*FU4ry*+*M6;v%hn+jMs znM28cmr`y4B|k>8yRCOh^`G57V$6Qzbq`06vgP3`<~^8V(Uxw zw%dPmUpdxLa+a}CZ64{~E?Mf9K_`qIy|{t2KcctE4c{bg7{oh`qLX7eJnG>2VGgkX(ca*8|Lxe_fk9p z&d8zOc$;e227(e5cHHh?86$awamoawam;h#=|M z=;Y(a?a!bTQJklNvVEcI&>W;)vsn1XcQJ|wME=;!y2uf@JnYK$d?WTqxqqevHMN1O89aRXZ1uMDMN(-u(p# zpr!p=#rGZw1DLzl048Cc4VYu#s>Bc%88Fu*!*pfD=esiNVrS68#jpziySptck@pcy z&@8`z@dVjz37G1xWT2jm&fn7F(p?#dcHM=M3RKp=YZHO?sDCXZ>|bv@+UOB$#t+kc ztPCEPQ`|5bR%}F`coWpIKRrzb*OtFWCI;DeG_vFUnnmBnS$500J{CQ&Xso)n{(X1= zy)q|TM2b)jTY0Z&8rS?X?F*;Vk8*o66_}k(oTq zUxe0Pm}QqwIwEI_%i{hGVgGSxwUs{q2BpdexN-k_8Em%(+hm~17g%31BSS<-yv`?-w$( zL)mLr_MR&A9S~=f{1eKa+`iT>8Q7uhSY653%WM!aL2CIC* zjirhVw2DAW)W3y#*4Yv+U3cp<<9W7%&)v6DPlM}7r;VzZxu=pRL>kR9V-jM*xvA0> zaw!QV7b>`=zf1-zSV>w01(wBBe1Rh&FKJ6;1RKPU@|Lf>fkb4t1s1ZB2GzmiNE_HI zKIqQcp`TcMD{ZbvESao^oRMR_7pTREUZ7dJ3&IrIO!X6xsnZr1Y7=(+UeEz@QQqkg z)oGMwIYM0!k#xL^>I}-o;)8Xf*ehl_Aq&M!yrzqpZjyU5AwtKBnUJ3og*p=gbh4NU z0Xjv@%ux2`4~j-60sxkEOSsFa%;Pt~zX{o4SfNQd_{I}hR^VBV)F~C4h63-Iy!uc< zrV#MVV|`@+6^v8@Fyz#D!g(O0h=3Ci9Oa$f$CJb=x^t&1_TCT>x!8$?ZwhyBGIwtZ zb+4AlQ2&ul)UF2eL?g5D3XCx$%jgmNHci;bDtrU2lIM2ye3Ue&cVy9p2T?#Hw5+cS zZ3T+cT&Z4(MC_k{Lpa`(EowX{AzJMb`k?GxV=Iir)hp$0s?gZS5+f_9%yEpyD|%Ul z!i|x8@N3CDmU&i2s`S2hkNO6oXm?aM)5PA+!)TApGxF+q+Pma}Y0~j5L$ODiVX=|b z9{t|Cy(+=V4>$G+f9WVLE89)4in6DMo(2+?!{ZU^SUf@~g&9w$tX+gGUoH2z%8Czh zZZOPraY)9&$5~3%My^db%4#C1HCQG!;xC^zI|q-_R2eE0HAK-US0OTY?oS?`X(%SD zvk63E#HgmIF3_jmGtyaloVE_1KBk{IF;vY#ZOz|IJap(WJCr}S-;H&;4oh?dE;x8> zJ<9ev5jhV4(a19VQhP|@8>M70EleYIlBg6&3%_d>S_h>=Y2o*6qNW|`SOx+LWn>9~ zD|XpuCdo&2B_JlaU=`A`mYLv9Q9B>SnF&Zv#eRXXJXuY7${ri6TFz`miF|bpGBwI< zv|3^hQxTeO1#-6m)-ky<@@+!gRK_%;>+gOWTM{EnO?3Wm$V!i=v1ZlA|Yo&UxBnJ-YRQ}9-?%Mtfuxva7Q$<773bh${q*gz$u~xv$Z|2Lul*q zQP~sPE#nP>IC_&(QQM(17WbqdJlnBiXZep5GWWH*`TM6((@UN`irMs6;QjJ-6PBI|tDZ8VF=Ugv{n!_e{8_*iR z23qYdYG99}FM`69y$ftmcl=G7>mKVNSxxjf`bGG?8R0KxC>0&l*H-Fl@mBkkMci2# z+G0;j?xueOncI9A@$FITDH+%x&CU@j|G8rW?;W8sxy@FKLejqxO`44;+fRV1)KAR; z6&Aq5Ou7Htenuk}bdlwH4W;Cwn*EcEKF*8OiRRIkGS~?toAJpKsW0m1dj)PVdW&;K ziC_Jld&gTh>&_LE-KE>DMS~x|66BGkTgpne>$k5MJ)ii*QgjE{3bR}Kx0v!0T&irh z+x=Vd&f~T)Nl^B1fwFhm0np7HBbzUBN+zCqzu@2Ad9Oi! z=`lvzbFYQ7qp_r)%Fb+=E8kc2226lW1oUQ2=?2b!%C>Co-> zPv)>lup&g~JZc*MViY+ocT>FNOc^>ZtLN#9@1L@WKFc)hy;=M)g#87C(z8W$mU~rDL=_JMTE^yKI7M3N9f1>x>2jm!sW8|E$3J z;!#<}RnH9TRjGqo53HAgbt14<6jy~0IDBuHlqb|5ZEUES41#l35d&hE(JZ+O1{)gG zqwnKZ>EBy9+}3ZEK6K@9HTF<d@QcI zxaQ;Z5hI-flf2fUf3@1g=K(ov)my60VNG=-Bf^wILwCWE%I81fY`@9!iz7r)^`o1ilBqLP9*Z53^tZoIM zJkgB(#kpE)Mrf21jU2}>iJs0OvYOfz)s&-o1}2r2#m8atpnbV?e4o4pOUHc)3&8tQ zBlzPqY8UT;8cHZ*PeS21sf;~{2mW8up)5YDjJ*(zv;i>vL(wSdBj?c^(iHa+>7p)^ z3F*Hq7MrDbW9$d|{KB-1!=iNpcLL?0!!W!iWzxT%bilmzS7C$1%a|(_ zuK+(~(r(hDl<$*iLq=%a!gY=TEcuM7Jqg~Uhvq6YawUgksG|OTo7CF$>W6Mp365B_ z-X%5qDgqTfV_#e$c2i~oq+M1M?8p(ho1V(-Q}q{YJ}#nEO+u%j$wlg(@kS#p_zYZt z3@L5cF+@htPA5`l=KsZokFjTwH(u6KVenI>PK{;(W=xhJe=jDHxa6o#VvxV z4||qi()ElE&)CSZ-lNl^KmN!lt4ptbBx4$pKODt=w?#0Q^icWcN;es zj?4zvx&<^ff)}o{OA`%)&y?8^4L0AKO4T6dcq(*-^20Z*mT4AQGm%gz_GT@2D9`T! zA;k%6j}q=ULH15;I8xD|IGA}h^H8TBrYC*e>hY>q+M*8H^TKBnEpT#bX1Lyi?^%yI zN_I-Nq8_-HQ1yzz34@?p?xr>qCb!w<9u_=Ira>4OL@nb~+9GP1K0&X{b7-D2EsagH zWKbHMBXU*j#uEL#gmSQjCUz3_ZR|j}0eHZgYlny%NjtDXg<@7XY}jH?kU(DTLu#*;7rsp~{6<#Um?`z*d#UETR#!KI8C`+mO>(2A(Jr4CW!#;eQ}yFHZM zI$L}S9y-=J38u^v#wc`Q${azcr-eT;0; zBl0O&Hj5rm_Rez4YHF}BE6-iLP%1+60){pdVA7DF&Y;ba+$MdI^PS4}1*arz3b|eC zxC7Q|DkfUkkE|hb_-Y6}rRrO#7CS?v*-aTZ z6l9>UIi3@d66ConEmr4Hs9cl-&hV~8BW0*W_(s|Ci@Z3@ zru2y224N~S`kpJaHOLXKh$de034Z;14m*Pu)noB0s~Ntb5?u6s3VpBP@u+#sXura2 zHTEYoEq4Q}xV%+HxTIHBqf}hp38iErCFXpCQMW$qJHyp!`1H(B!Gw@Z1jF<#s|hs`+!c>d zA{?QH-BNSo;nOHfsk#a2IMXv6Ae}0kPs~fbXiO2Xa%?0Xj(&9{@`vBmZCoM zETqCMhEa@L)jYQ%!iGnMMocn~*xgdEdHfnE1tt3Zk5AEaA0MvHG8mc-mMvKMi80@N zW{1?6i>%bh8%rTqYw2B#5KlSG3M{PuM4xyHMu9BQ%>|2MU_)N=BQXbeX0a7Y)^fi~ zV7sm6ev{d^AVYPg!GcP?WT^~GBAI=?a*ji24zw8O85m|!(LE)ozEbtbmmqqN{jm{F z4|cG4E@v-hL39~V;A##aFR!>7~Qp=|9Q~1R^>cM2rn_}cS zkO$j1oo$Q5Zw^sT{b5CyPyfY_GGYKmD-j%3SeJ4LKy3kuRb)DlNuIW(>O@Cy42*K| zqkkgWb`C_CfT0`CUIGX3KpcBAUVZec(AVQMT;uuGd>KYBL-38QyY%@A0ust>q2#K;$HE@bd7<)iAva|9czlmeZ7iza+BkPBwqy^rJU>lBNnXahLRvFk24T&hdLQ-=wYM%G;(l0 z_}x*z3#%@8XukkEycKR(Oi-^)BgNJ*F(vVCP zQrKjm!6eGEd(>pAl%K4k&%^}Vm@ZqHE?eN(gh}*b>g4yP&IF=P>W!o>ZG&@_=DzUn zfEbs7jpWka2RkW=qR@W!qqecV6eq~da2D8f&b7ik5o0q(aHGr{3#XNI0GFniO6y># z=^V}E^Gd~i^lBIW4WhCBlL6%)#z)|NA-HUP)Zb2PDO~phl)W~6)>Fgg1=f!HR0P&R zZzm&TunykCQ)EC5HNgDWhSZuXBS+Ts&kF4;P00%GFL7m+u2b$PT^Ga7l{|<0tZ!2f zFmP#W^-rG~I;eOpoVm)pH^wz*`L{l^+AOZW`_xqL*3#?Yv_0jEDtB}x`Tn-(lh%w= zvr5;ND&-Guz;w2g2{YIv`peMaaUuA1!S`EAJ;*8_MV~wSk>e4P7dDg7dJ$@p{wCT8 zK8dLt_cw(7t*|QX^Z6T~2yzytL7Nqh=fHknpbir#bXCi&9Hz|YozrEgH9xb?_YZ;o zf2l3D`rcrtbrXS?fy0=>;#28w?HG>L4L*YY=vBFEAHbFYTVHW&$)B~mE{I?|NpSL3 zl2aX`w<#QTh|-4Ga~O7T3rGM3sZFJ4W?Z}1nt23GHY;}=6tD||ZjSOu-P3oPeoTpMWQk)xX8m@hROj{{s~ovAK4Z6 zHxG^n+QS#@%Ja0U5bAvm%!4huQZb}|bB-xa59;&O^8?SRFU#Unq8P@{7N5Uad4A{8 zvanUpu1L47nyoLdxIWc48w*_&aSL%o_@F;n;%=P1b7RF`YyYQb;uG9m-3Xk&S`%A9l(Zu#ky%oh3C^vuZ>`8n{r=4FWd49Fow1IfIJ zB7Y*~O&0l+W!@B#KSkzE6Zz9JHDXsk~vhOL{6L z4k|P%^G;c#_Pf2gSpm0F^%SU1#qX>1s5?Xx97NCy1{Xk;3wneN5_d4UfUU4)Bfy2V z(*|@m<|nrEd!jjBG}@z?20bz_9cz!W{UE`4Js-3^fQTZI>j0>U#tt|)-3kV$cut1b zMdTwTNd+YGAH$#gZ%Sg>g=;aF;GrxlQnX8}RJ5 zj9@_pAu9Ye&qT`waAq`-32t37IF)opSLU(U+gN2}XxGJ{mjZNB02EDiQr^A|@Hn9i z*ck?@rV`ea3>##{E&|4gUU5qBun>Y4180>Z0l>+Y9E4>KX0ZE6=uabjh(Xpb4?c|pK79`L}Fo0|N z6mYgI7eCACbxBHdclcs#IE4+u5{->p?6hkE2}uf(PY>S&Hj_^Xt?X}HWG?KYaA?Ny^xPu9Zpk`rY)GS1X&I&211RPyZO+U7#O=neCuxUL+)e{Fbw*-`(oW+)hF`G@3GSnrd`;qO zU?2IWob-APz8Zu5`K@3Upnr3ku|YBTwH>*gR|7!QMxE!Vp4dC*jZFm!>!eLZ`N?I( zm6t}jJ`1KM)-mrGq>n4eui=4?a z7lD0KWNsSdvCK^;F`f(Aog<%ih+1+YWS;FYEs3Hz%7pD-ofOROdn8Td*Du0*JALK1Z^ zC_9qLXe=mws2mK=#A@Z|?s(t!WC*YXU`cuo`bh#8Elt%N zHPmgwvYg@UOTb}{HCe&4CTT#8-VOyEV!=99M92)@4Re+iJV`kOa}vYcZ@?VFJw(*9 zI}wkZ1Gq6iVxuY38W*)oP|^ryuzn6pHo@(&#riiAs+d#ZgB~NUP1derBT=mzCC{A@ z>~@tAYR_(j^{{Iq=7L5kTu zGs0LP`J_hQrNkT~dFA@IXAF5LJ8&{SBA8?aB}LkmAAl);ewe1%hM_ z=<6cTAZw_G2yF;=I7rxy!|{DDa%AZSQA?i;XP=3mzb+bChfEswXk@+q*Xp5al*6Em zoVDgRZ82>4v+)uW_#m|{NahOcZeJDWV6=lwg*elK?X+vtV5@OK=kQ3U_(J;YI>um3 zeH?*OI-aat91JA`?LylKFtVC}iE2VaAYMkrgA3=|nd!1Z8%lm*-%b1nb2xsjfjU?a zL=9DwwS<(9A_5y?G^=C{&5_KrF^V+D zbzX9oS93*(s>=3&+kS@w%W*$tuVW#uuUe3o6?B)JCX&tes^oXzNkaY}e7%kH-EzKH z*)!{^O2I@Z(ixW3p&5MAYJ|EtZ+S-NX*c z^D9W9VHptiZ}dpDx(wL}wac3CP^#X;);Y=ncZ52%JjW}*btnOi?;c2rMM%faQkY}y zHp=G0W!Zf#O2ymAh5hzX%Eq#BXSxVB)xT#WlU1Y@nFO-O^&e#iyCsz}{rl;gvbU=< zME1piM}K<#bt=`#&4=UaWaLoMAjA8w6?nlfE%-7{qu)3~k-_y=)MG>qSA0ozn4RA? z<%gqyRzjFcMue8UT7s^ntx1yCtEZ6MKaPAjEFZnF9CVEo;7xKK&I+eTIUIm+jj}_Z zQ+&9<61#%tDQi8ZjBiesT*hjH`y9a>>(D{_(|XlUhNukyPe5WD@gr;KRoUygH>;Z3 zExHm6Gt0*~6hF}k$>x|Pj*5CCM=5wkDX8heuQ76vfPv4h&YJBg?jO%_8d=u7aGlFn z-Hfm52W7Qf3ac+=+ymF%ozjS&aXc%$VzwiiLkHC@aqg*%5JuW;1k_T(x0`;IDzetc znESaG2qEe$JvGA96WdrV-Y3+35yq$4EJl1q2c`uE| zNlia;qumlYrc~UdfD&N5r_<$9uc#>jw8Y842>HKA&m{*QkObqf6$q~T&_1x7{cZ>R z_|C#`_S|?;-(274`jDSpIgUugSKZWE8}odxl*HnO1CX7KR@iL04PVU^eZkL0sA)h0 z5v*tcI?4odf!)oHH&dInJZ-GqydoLn`u+eKJ@UUHa3;ZPBq;utNzhydG!Au#W=G`` z%iF|cV9@MTXcXTDv}7PZU?3Ey1eC_J+61o{0Wqiil4Kx;HqrMY7&94$gJBen(p)oy zwi+)zk$}<2WV~DQK-Jg=VpCFkBzyM~%0)$TGlpa-MVyYTp_4R!US_|}P zH6v8|K&t#>cxImMECmNYk;VL6^e72KgOiKyHv$RS*Xu@6QEkDP2^$p`c{mpaVFE8L zg?dSbg%61B6yO2DOKM?l66|I=7?ZF z2fU+pG{Mv$B{?DDe|059e1vFZZIw0jOend;d9>31h)SUC`A$(UbG&e0Rl+E8@c(crtFDnOXdz?$Gk6<08+4GabOj zm_BRi(K$!L-VdRB^)E)L1mVfPD2!%q&-J~keh}yKQ1nsD8d_^yZ3Ez0^SveiC97$` zFzeDKLV~DrseQJvA+W`KbIisFVvC80OB#lfR<>439urb@j`srxvELgez#13LY+(=A zJB79iNdr7~Ac*{-FV^q@M0TyDFGd7LzDrg+^nd=st2Rd71b>i7VQArc_;kk-8F>0Z zJra=&daWiv;g4}*CY@e2niJs|3a8;U)&bTRt+1CHEnA^Z(Sj+Vjl}e4cR&p4mufGx@TLOiMaHtbJ2ayc@@J4T%(UuFq z;6I_*T6RgptS%$zKicF?Bk)E~=zBB1=TO6lvy7zuXj6vT`Jm?D?Uxbef>!CX(ds<+ zc_s2kv}@oZT(+5FH_!(y7%WUfOe5iXHqkD}o}wMlno!~o+#m-4lgHl}!Giv$B%Pd5 zF;d-GpJ4||wR&>8q(*c~$~iBq7g3Ha&RjBAng|t8CiR+HgZI%GWNW^!hL}lt-UT|8 z)$+g>r6!oF=!$;b%%I=80m-m>CW=FHd^(=+IZ0!v5l95_EH(y5I(~|)SFCj;q7YL< z!I97hYyv?&Mh=~8QT8r!BkMCWi;lNI__!S+w=0@^o@O+{Dgjoct>?%e^&jdl5hzPJ zwDsb4tEpXas$;-Acr?P7H0<0zc>9H(JDuN6TH)B-pe?s1NMZ;@)BHY`d(r_|pzL+# zYI!2DxMdq~%uT&P-Ls}kgOm)@UfVv7$kA>9$zUuJmYr25CP{{m7m@&w@$c7MyN$a; zMBEnu3h+N!v8~M8dnkNg6!S#E4QNszoDX^+CUy#6dgC_BXL#W6>eg z)+1gNC1EFZ;}ABa6yVY>jvFczxP1kuvM-a3bKAyLf*(%SOru)W)J=%iyGh#7WFj~m z&TACF`BpVwaM?Hq5@C0kwR=DV3tvP0h1Lxir!Ab;? zprrMPb{lq!ubJd{RfKj${p8=of=%D&ikf*ujL00Nk3?rcgRiWUPSl8uBB9v9q}hm%d>s4Omn6&(9++H_*$ruoU>OY@+=z<#QtW65#ads4%tU?glg zsUhBkQae}y=oQ{xjW80St@(Bi9n7kso|OCwl(_)mWet^?OTWJYr*{Qh%N&v83v5%W zXn{w}tu?d@!WwA|#1E^9s-dkoWMgoOmbOGzQxl+~=9o_y0|GTkyUl9Gg{C55hu!8w zZA4@uwH+ZP>Lt3!$`mjwqiFCCX8YY2WMC`!=r)Pt^VJhk6`ID?7)P22m5wXofvVV2 zB)e7T`DjY+CN_>nJV+C;oD7Nc|0m_}L}Z(gBM8;9Ex_Cr>FpxD0a z!0iO5vF>A2n|A?-%*7gS^L<`&iZ+UKy>cOJE!2*zA&!ThlF!(pvD@78PH*BPp^GzA zUfSo9E`@!rI^S!Kim}l(%|Z!7WA{dP-6gW2b7I_RlYf28u*&npfJNsZ82ovf(N<&m zXju1$Lh7a%%7{i-konn9A5;&@@*xIt+TKK29%vOTph$F#!UXV?L>Y~90O+d> z)Vhk`upkDUPR=m}GoT!!cWTLy#DH>$b25*q#-c#@>`fG^W$6ttzcLF+Ud{*|JyFJ3 zn*pdiQHFIJg7fV}nOahQs9T{#nF!|q&fG*9mDL2IlP^(-&rA@Y>nMkuCmb3`fKrhY zTMubYBqCjqaIzp14r+w6Z3AWP)m!l^`FvgHBwi$p7cdo@EEFtLRJGyF z?sF|xFx;p??pL;JBU;*vm4|zm2EPwg;x!DrvpZd#rG#cKRYp4rfJE`N))b3sI4!Zk za`z5nVP}yM56Qcf%el#*O=I`W!GWfmjJbI~x=5q-$fyK2a}I`T3Fi z#AZwy_9=-%eCCk=jY^bZJ2{QHJ5k0shzdX#Mw*SWeVyQ(^}ON7L`FnfwfQs7ddD3dE1AN{_6;|S#QR*!S<8K z7YIRGwosgeRopfadb$4m_Tl%nh`T4lJ1%p;QZ2YnM0|m}9Y$ankmoFa7YLn4Tl+>+ zUVYnuey{hd$6>v#^=(7S-v!F{e)Y6K^^fK;TPfR%fkU(A7(_t{@WTS10Xz1?ef!Fe zG1eCS(;Y+b>w4+>Nk9bQW5=b#O7*daMGp|c6*w+D)^NizqvOUcIOQh~>kqw@)d%jt zD`dXD^`()0LO5dW&evai>A8MP~bs#gcuRf!MPKOU7 zz*hgwA4c~}WasOD|ARUq>Q;YiX2OZ@nP<7cro0{3Eqx|qBq$S>}tMG*p4m3vSv|bxI@M)* zHX+)Sy-|`>-7^{CS#QJC+%Xqmv4+yJ0&PgmLM+EX+(mX4_Xs0~R>KL?U|nZEiqA^d=6W^UMT8hD z+$ETVX@9Y4@lTRYYxmKoPWWn>i}E`hx=fd>xM^%nFL zB4Qk%VG-W~8Q2~1OVa=|y*s!yIkq)?vc!n^1!Y{cKH-8P1OW!p$Wi1^N7S+mW(XL{ z{fB9x0(D%8``IYkDv4U35VbNtqYG#bn{mn5eIx88iCX9|$TXV?1}ZMkVS=@(;va}m zB{Vs5W*>@$>o9n`I=_X;RMgK)hpX;_=9;6qo`=Kkyym%6^Smg6Ta>*szrgO74w+yI zhW29{3F7W!;uwx`fy4t7NP^Jv_VWgv)_sn^rw#88njBx3N4@Pz|W5F6knUE!fB;#!&XP`9Lq*{g5+VKL{b_2i`-k34 z+&aSsB@Q*vTnlg_MN9iTQA&jN#c0U|Ye>3lg{>DvHC!RFPZl^6mkiMkJIWh5s%6|W zL}jrC;rf&<_-gK6KV5RPE8I3ia1cPa3ztoZx9M^X-Y;YH4QAlOg$VZm1mXxV2n{Fh zBl0|J-de_(*cl4iaQkqv`#ZIxQbM~5qjuf#=TRzy@G%Ib>J=bhZp?!X)?l6FV~jqH z%mbxYkxUQmk8)W;zw-cW*!aTg?-t|8qUNb4<(RBnhv@`GlVLhJ_m;qwHvX;AhyxX< zGQu{`BdP!D&u&M^WnZZO@z2?*v|Z5B@+k5PXD=p!_s}1`|6e9rx9M&5qxEHf>6eOQ zNYnVv6(@y(!Zk5SJdKcmCxHFPCN;5)N6`QJGeMvlVLw5n-z}xXp^o-%L_a0a&aM)d_E^e=8}bSdD@kV9^(Wjks)u zkix&tO*jLKG>ms-5ilr4H%K8*^RUTAf2Zy$0|ykMO|KR145+L)K5vqhC|HG?<+OPN zy96J3jM3?P$)!cjDFW;-V~@#dz%|ZE@{xr~9Dt>qPzB-#DS`VOBPB@0b`w?ET}ClM z`lI#3y$0DA@cl`vs7wx(@w@ab^^;vzgKAT3n0y$7Op~Mx)M0+?8H4--gNGN*Qm;t2@#9!c4RhD7yYqBO<6V>3&^pfj5}yM?lcikbrIB~5*}u5yqj zDN?f%i71~6HTb=a9zz&Qg|J7} z8q%%n^xroOnL{GPJY>5&o7$feAxT5SG-nzPdP(+fDcc*Z&C*kDz_c5CEf$KP>jEp7 zwpAba-(zzOA+?*S!>&ob!pRU**bN&uLeT`SAr2(VBUWuK&E1J3L#_5ui~jU~FX+oY zYhR82`hR;>Zr!vNR=tanHBQ~)MlB@i8cB_)?_&clU47OjYKYQ3jsskMW?V1@U1dH* zfA@&eDN)9PtQQ0OQpjn72gt}{9P?AnO9t5jV%%7iP#{p;R7p)c5n?7lHp9GQceio*4$V54LMp*nJ7U*k9l}vFI(YZ%rt#^$fHlGbqGjhx zo&vP_!JSj5nnw1o<|#oIN`2^|iTz2wlCp89Ltk)c^Z+s%D$gS*9g#sUJ$z_JA8dMD z9k=OChlXL{`S4KoSaY%{+pUHZCb25_ToI@_a2J$YzwMQYwh4B9%`3MJbJ_3ChDOU* zywfUz5Is^~8TL*3iC3nKPJ-%h`C5?EUcKIyZPOom^#&(TF-Ig_|M{!qt*)JiUM;iQ zr$yrWyuaRe2Wc=EAVtn{$|-BP%n298} zeQ9fp22+&JKVfq_jA%4!htAKke;L8aifPFEdKnZfF6>XtMRG-)X-aP4w z^CpA*_`FTO^7W}{%g@^^F&88}Y@)`Y>ru!dk+R|~{odE7q94_-U*~ZGl9-m4wa{Dg zZp9%?nbwZq>dmiD8pIbAM2Cx$4(Oj88L7Im7CKAbfQ5fIDTOm->3*^Se}IVP{BSf~l5ZVtPiZ;r_QHJiIr@7)>XbLoZuy?&YVx15 zItlb4b1pVu9PPb7`8(}TJa6{ipU^xM#+_w`8qaH^sm9a7*u9}Bc7d;qt;tF(d^k>2 zh6c@xP;lY4Y1*HRR=PJO*zDnSKq3CHGf6ex*(6!_WuS~q)*ll}XmO!K+I`L9s1j&R zG^#n?p`jrHe%gicWr;-Hl%Zm}_tXq4T$$YF6b?Z@j5q^~Z&%$rr=;{FS9w%2J58 zCcyz$iuzoa+-G7O?(M(NkAKC=23S_Ei*|j9D_%uK%9o9l1u^U?h>IAeQ z#snT}mV@@7n*(#VQ7E^ewR58sJx&Um)Tq|DdZA6jGxj2QN!eRN{Dlj(CX;qz-k5mq z-!|-(j1v#Z%x;LOCtJYm5Fw3kPC$=Ozll{tAJ%%8HAgRMoq_bO)=^_!a()5!ko|9Q z3@Ofpy;#!SF+do1c+T%rh(qrE3Sse&{6xRdn%9@G5xWcYS#OP4OvP}?a$l=OA|Uz_EfR>Dmxa(mAZtnYMIPT30_0S(W%XP)k_rfv zb2RBDka4GN@Ms$zbz}Um;T)`5hH?eLmclt$NO&;Fw|C}K)XGO0Lq4|Sl~%S- zb9`Ymrw=&r+qZz^h{`4wL?i@$5q5LNmV*VJvSRP>h?Eh)%>)6?KUybP5!K&5cD?=i zPi=btn=?hOye1=i2`MPxRhTSDIW8b$WWjibk{FT(dSLuODnki(Tsi zmfbrOfO!?pxeD-8cS6cZ*ofBfsY5P2aQ+B@8Y}< zv6sSmNQ36%E4b({*EEPPv0`Gk{)2aiym+w7=1EPzOmCLye|Ujm*S-yEsdc#SnpK zXg@~aJ-V_sg#Jsx7vtirzUH_GW3M^#43Dd_SEKRE4Zn+EAk8pu>_P@sutq#^TrcSe z$Z_Ogb|SB>JJn8MUz90p2obh*6d@6_LAk-qCy?O|TVc4CQr4HLsCZrRH<``#1WjPG z`G&IBxc(7xh&*&!9qLfDiFpnRtZ1CkLLLr~5u!pR;q2Py1l*2qbdj*9?4rp=6?0#1 z+$POmBzu}oFh&E+)jbnwT1%{sZ@-nTMmY!Nng=E0*h=}`^41x z4ous`UB||Z{(XmD-#*eNJM{MUk+-a(0(_;h8E6f;2pZDRN&nhH0mfPn#SlxZNq-a3 z>NWa|57Mk_^<^KVjjzK-eUO%Sfr25@%JG*k@ZLwu`-yDS|FiBULw}uV}oQ3Dgn{DKkFrKFg7oKV>g+DY z4%@i=^z$DLw=MiYPwNNFfkptTF^U!?atbbK4L9kKtJMgdz%6Nr zso#&L*ePnn0MRrt&UE5>fq*OX$i5t!C(GbQ@?m+W(n%<5RR-2Nw zruTXf>oLA1v?f|@jR+A@prYx^#a3NTZ8CxYji72&GL3Ir37T=J{p*Zx_;UoL89*iM zvAr2L9wPvh1Y`mlE%PW#`U1(OgyPnti{WtJWgwAcHLvV7(fW^o=p;Fz1WDL~Q@38o zaf(LBG*G*|MUm9PM5heRkpHT~Ywsp$hMZGNIX#!i{hnV<%fKd;-YCcrPJc|4AK{f$ z!e&T8XpV+vQA(N6@<_o-m>cnz-$bZO6rZO{N@jX!BYhWvN(CtF+3`Bd1Qh`&%JSp7 zg)Uiq9)BSXU+CU6V1H)kh?5W6Y)_unzyHZ_92C@l{mHLw^H1xy|7&UXCojX2-Iw;) zYls1ZI8S;ft+0T7ls?UZT|%i?#?0v!cepg%$z*)q_43a5|24pB``I7$)2HU>FLn;t zS^4Q)>wpum{E?dz5Z?GeZ#zB2_QqcQ{OQ31YI;7b`#>Lc=5Fge{mC;S?+WB2(lFfM zxX1Vd--lvLAsyE0kDVRe*ZK@J$v1A&H=Mn`uR`f3bM)r3WBU%K^sF2`e)g6E9e<4) zvWOQ(#7~=Q;b@c~4#~j~YN3rp@c-J29^u&l6H&*UOe|H7jHv|Z-#6-|=dSOYMd|7p z`b+1=^v$F6DoPL1KRb6--#PT|o1qWr8tYw1>HaeSCepmn7%E)RqyD!zVELoJ^ofI zr%(CZ?cGi9Urq<0M{eL28z^H?roQa+aebR9{ql6QnC2-kfwfWI^Hkx&Bz^zq*QVdK zFnltH#6&(Wh)^o_f-0Mw_$!Va%JP}afAM!m>^XfuqXP&Z->onIB7fMX@m3D`rL22V zoGAC3KY)UGzeE4?7s0uZKix2JD%N=@rcSXk*L8C)`b9^wI&P$jjl>jH1Hi$EBqlId zQ7*t*{-FQh%b}y`pk~MEml7olX2ZH-mOMhaC|UOsm-MEiJ5b^vmS`7p&V#fuI^Rp& z1&paw3bpb(l%hOX5h)L9o~1+miJ3{F4w?A1bVPdR5sZ%S^v=Wn9?@OB^I#CPbj(3s z$3ytRr8oFH+;B7;1o!8-!yWVCPe&RUkZIKvuMc6|fD(zFd8mYK)Rn-(i+h7Q{)KLL zP9=mLdu#?#T*%S3_-^jBkiXAaYj0w(!-F(b@&k)I+ZToKXrib$Jc25@UDHv z@5^y1|J`+`>0*AoOD>L!j_sUyy$i|+vX!wYwKSz2t^-7y)`9%!Dh~bt5)W%+a(8M< zcWN4^rsTozsv5}y(MV4B=YsCk?C#XO?$o00)co$$5;KK3q?8UuWng3(@?eGUF0-;b zwW>R{`k-py*%*0}G8-dL8ILu_<3&8Ijgj@n+g9UkpYeFZ$h;Z-MZGtTw^n-K=r3gw zS4Tdh3{G{Ksm4g$D3nHpRQ~4eE}w3ua25uoaQ|}~h#Xs$j!XCWuW`AQ=W;OH5spia z_IO6*6c|&o1|9Ais?cA5$DbA}DxRiQZ^5RE^e*DAr@)k8ixQef;eIwCY@)9w;ctz7 zh`AW<>R0S4+s$2%{hc$?|6kI+2fpU&|Now|JBD%Z7=~dOMhH=ajO}jnC-Qg8ztu-l zseEcH)wtvC+HTiHWgQizqAdNvdk|oY#4s*ZKE4aQwB7CE-F$f*!b-3;yBO zzIZL7nDJ8Nhy`lIQu+4YjW?Z^Xz2b9?_3C}8{T+{@_v4@39*}8U4>OWo7-`hRL-Uy+RAnY|k7Mpu?}LdIA$jOs!86p}Upu1yBkX;* z2l;A#$i=11*L4gHgkDbNfXS_{%oU{S)qNUediNS!*m$cW=#=S7frB7jTrN`L_~V4s z;!pAB`AIHJ`k+E_=7ALn=LZ^oAkRt@Y!r$SU8`fUTcnG{;qoi+fNS9>q-PK2Kz&t> z6eHw`-KtlN=d=_c#t+X%jjU(a->n5ADXHV$v z?rdtM<4FzuoM#|Mr{~6=i0V=7VJG!>uI^!=gV+D4ezcal^J#rlJN8t45Cfrg)-*t1 zryrzkHmw0nXt#DAH>?E)qk^wkgI@R_Uv@Flrt}JQgMvpz^TQgHm7yc`H7!dkCrEjs+{F=yk0g^Ybq# zV@>(?UEpOcnFm?i&ZehLbK}5wPJkL0RS;kk0|1Y$INKjH>7O8d9jhJb>(~q-zp2nU zi`$sW7PU^JAw_LNODhMouA~0wfdZgEc-Q@|4Gky~XcFCZ=1J}VPBmlJ7jUh|Sc}V& z&zN;C-OueU;E5Fa#J7iCTmU+FZm@15H9NTsw!}x%A(^=Fyvvxhh(cWkZD95^qiM6eR zH*7?^RzhM(#o^jhssp$x3(^;q^-|5^M2b5!F2)!vhBOr^9tDoxgIMG^uyixrYCpx;5P+n*p z+X&QkLlgdrhD{fSQ9Uu-ySArF`~<(+pkcp+|Bm1}6aFV*e=}i$=LUnFffpoE7(805 z!RX0M<+JBJkVBG~%AXwm6Ii4v)C0*J3hY|$jI>>z9_-EB5l4#efqJldgL(u!h8grjei<^kFNsm9KYo^S|ZEj0jx&GENTeR>FTLG&nmXZoX zbT>Mewj?Q6=_m`+Ea?t?2h!E^@ggZBI=N`!ZGS^3Qxiz=n%@W^>pPHX2t_9sExh_~ z2#vA`ncoN@>pL(?6LLo<7cHDqpAd%goHClhQAOJANIT$|1{J&e0K2Rs+*Jt|yktGq zeSTvgw6vqvYFSe)<4pYp45=9blWFdOpB>$E1D0~IN<71=GFEG@*Gk*CK;6_-wCh1R z{K;`u***vzl5yrgr;NgixOG7jM^(2jN4?Ngv~FX8dykl;DkNzGWwQDb$!^L$WHgU5 zIu3k??9KdUA*G^~NwPn18j$c`)y#xwAT~cF*zq)OJa7@#UEF5Ex{LQkIM@w;DEz6K z&FC(!Zfqvv-6^5?`h6QLU2I6{zWv3cAoVZ&flD0dQfesQPmXQ75x_18JC-#%FoZr@ zn?&2<6uw~PUKlEl>6h{0P8$~pxYLZ0iThoI)&)+%aV=t2<_`#Acy+(yU=Zqy7!L@< zy14VOfHklXUjkESjGzp{XrMWdf$lqMMxeTkTC?XB(UjGr3nq=h{72P1hv?vD1$lzJ zx&hLh=8<$vTaK8UNCJS+PO`1Y$kU(yLwwY+RCIfI=8KXTv zp`>^lm0^eLK&cKyp>B_$zD(3h3@W27R4>C0*X~js0BUw9TNc*Jb|-Pqw$s@%I+QKL zI$H*U9nsd{@m&JH)keMNgl>Ke`;hRx-o5B`J=e;IGZh`EZ5f`0@f*hGM<8JfzTH~W z_>eU2Y-0=^Rzo0stzx{P=qh?$&*Df?2Wl^>KkNGvB&u(+r+!0H{mxJ_2#1`aW_@TK z+A)x@>&?ssE;(Sg717|vJsxX5trr5&vP^OQU5dU`@*lT)F9AiKuucz0G+Hp~U5iQy zeup>3LY9J~Y?tqyP_~X@ZbcPi&R9-Su}lap{Cc*=QCRAYMBpB-!@JJflwdo<}W*q3L?|LL8(N#)t-k?lNt)# z*n%BUnBZ$@1*<>g&keXJ+KEQe-93(Yf{pPV?g5lXdR(?dza0y+7w!BP(KnLs`w<5Y z>uWw|aIDTxw;bLV#@rc16Nh@V=T;}X8NTE9;n(lh8m>1xB$&X2ksY)*-f`25aj490 z%s)Fi|G+|kI9&Tmb>OwkrtseUtA7Yc>NQ3lPy7YK4>@jEH|Z=r+~6t_`f)(7w^7aA z_ORXN*%PvyT)qYou^}nuV59f_CaTMF%z?yw?KZHl| zQfqoMdaDNd6%&`xu;3`$jdpHa{Jx`jDvDKWFMb~r>d^eT3k+jDp^g@ev9)-Ch=jl- zr_d`CMOJ(wOP%&EtWjK<{4!B=l!rDcI1*?jCa8|>MJxAY0AQ$koq!nS0Qq0%#@3uT z*P0_^h@r~TQ{y9RjD^Q_DNwSe$QFd28gB!{c~j%|oF(rL9&Jxi(|z1gJjv+r#6cdF z&_*NkVx z1dCX3d#YaHsdylIg{OKmR(Rm#FuW>LgVQ$X@LC|=&(DGpN+knp+**(Ue__~QQ!s#X zdB?!22rd4&Q-l9`4t!~)M=pmULrYx*jE4kk%}g)zgcZ&EB;gK_5<=^*HQRq(?K#5w{)?z4p_wgFP5Q5*O2Gd=QFY^X7)-^mFq_q!Xi=RB zi1S1>Rg0=s1HnRVEa(BvQG5<$_%9NhLLffF7C)k5muzuP{Kt)sM3F})_WoUlPY};$sVIhp-Fc`lj0fQ|3#DH z#bB_mNA?DMkoEK)wX>~gdEwQd73!m*fj(-fwFNp@sB6I4@_nX{8cTzH-BbYzb`Av# z_0fU%MfXt`o^sH8!r>L$CP=Tz#s*Yqj7LX}EMb`4kb3K}%bqqJ)y~7--o9>VX;$rA zL`Qn_wtFKTHKauTW<7Sy<>;s%GjmJ(pWjg{ zH^brhs2H1G+Wm>6&^$_y9)F+%Q^F(B-w#BcLki4Me12c&_*AJ@CyEjA$&n79{9ijf z0ssFx{MJ?fTZg|N5a)Gxx9;#^!MrR|f2h7e=PhRs;Bk8nP|;E1oQ@bBD9E8n>a9Ol%oTtDwC-!uETYi@bFgOl)-{kJ7cJXEWU*q z*zkvRox@Y;*^#}uNr=WXx*r4&VXTA?M9qkIg=S>C;c7{QtNevVw%ss^skgyJDRnZzmf65{I<>2IhV833a#s>$2H)>|HLkErQj>l)fY~XQG z3SZVrNdkIUWFbAbK%zpAm~z|+J_0!AG&!|b0B7&VVv$F?-bf8hDMBQ~-kOOfquXM> z4xW>^G?oPE#NrIv0AB&_U;WfWFNNW=jEkK}gsS-03cX5O%*A{Z(Pmqp9-O&CZSE*K zyMGR7H3G}R7JLWce(<V9wTRJszZkhGH&cNkh!8t+0U{QkJH4e3%LpTXL$Zdbm+UI!QrM{klNwFsR##ehuh}hMdNf0=+y`~$fae@HCgPE zq9KB3{C2d7-VH41jF)xUIFt&#tiX_2q__2}t9kV};2TdvrTqw`u)NiuBH-kuwu>rZ zgoSnSk`2+uj{7~JM`XT5IvhTw`u0TTQ-U!PG2tETbqPG&5ZQDI@H>e(+8{&)zV zU8bG@i5lGMY&A7M0x7f~Sr(xv;6y-eN>9)oF?I*6AtqEC)lybb16in^eD;+tvrg)8VO7=Mxt-d zQcrdka~j_alNr0^E05Y#Viz$`#=fH7&JwNTvh}g0r3cjwUBpO<)aSa0%iPCVgLo`@ zSx{5#$;CJ<5a(o|7bYy@vHZXYWY81xZQ_wp!m^VZE6KO)6ahxo1JH=45nsLR82%n? zW78YOdfCbx?D`)2MO0o$RUc-FW^NOG<6GG1t#VGEwV&ryc&4W>&h+eceQVQ>!U9vi z-3#~3wsgFOs}+5<5~pY7p(T^ zR6qdZ+Yp96$77421WC569ttpsQX4`c8G8idBr*O`4+B;)F@n(;B7#x49vJ-$hTGzc zod+m2(I_&4V#D5gur4;bB-FIP_%0eFCW7H0#@qEUP;tcgPc(+RK?J2EQ68>`!m~y| z`92z@VFY72OLBcZ3>bRE_#ql2E`qU^7?(sa&~I&V2IXWlN}~wM2BO49PypS?VEh=3 z(Kv$9odx*-vJq)_j>=%`r)Z2Oz;GjiqH+mQ9;=6fDIrmQjz)=(WU`%X-BJ&Oy$Tqo zqA{9AFvc*CVf8SYviv~#B^sq!1SOX!P3oaw-GmswMq@Z482iZ9$1%}m=k;}9{1%Pj zv@ph?>~omOQ}s}sK*8*!CsG$OHACp7%QXyN!mumuMT9+7eW5aHx*`TaHKUolbU@N_ zz;rd#dH_FfF$T9Y9!xCsJA_XuOe$h)ow~0zL~7PA0cJ8_ zg3ox=b6rJ`n05#1)QlHmlH8|Qz(oe?VnE?+h%I~>xEan5Db-37o{#5KL*NO4CQX1Ohq63ZE1+}%Rd2S*|c^;h}0eX>mGO!9HkKN zW7Gk}jU|4jt_2S5h4DVxfpImq28T)M8DBHe6HEl(K6kDz_{N{->iknjVQjH($xTS~ zR3&rtsi{Cx_=V#6G%e?r!bE`U1PsDYko?|i*UQl3ExU`Ztrj6-$)fF(U6aNYTEVcKHoqZ#>U>M>VuvstUV{9y!f{hBK}(b{G5k5@7xv%m_f* zl79CI93JNR#H*1=@d+oQcK=Nla2XD9x;71ne)eU@67^?y(Iv54rOlQ-WKpGK`3#mG z`ChX`4M-E+ntp<|wu&-piMlRL^y#+|GU3~e%o6!nYaz{V}ySOmIIXUd=LpU@Z8n*;Xs6#e=q z)QBFUhn!oa=JyaCJGg+KMS}M{4&r;QXE@Dsky!RF2h8Ms5t+eTGZRP(?L3z4elJ=P zb!#uWV}c0P1YoYTU_M7VgExg?t`xxgo^exDa!=8@Ic3ZOO((furY@9FAQ49GF_CDnArGRLcv*B==!}zJeF7 zY(3ul;Fzz36H>^ZZmw7~U6`67QGl%ki*Vp~$fSXXrNBb9_$$0C0zVV*wTaaw%#i=8 zH7+%qEqL%Wg#1zdc?f@)Cr3I|LMM<6PBfjSHJl-!60~%6qg0_a+F*qy3VbNRyBP3+ z1V^dAds^Ev_7KVgI6Q)bi8#;> zGi}<`N$?tiv5qPpThD#+#zSf zS}tfF=57O9%Fh+El2Vilyd?W|jUbd1C}E8vlo%*s%OC`X$v0Rd-*I|fGkYwh<`p-@ z59?hK+6PIyFKMq!WQ}Av3AYPRGWfC~$GGW*^2PZlg`J1nF?O;BVwe{y_saO1Iw{{K3F){ue_?wxIdyoDy5{|hl&c7g0RFIHAdj{`5kY7?_ z(T3k;XD66}nn^-hB2*x*IkK5BE5bF$c!p4G{*n#E048dHh&J>%f5|f@GTEP<7ouQ@ zIjKwW_6gCkuK-smhGYnRm=`0SE)(AAW0421V~HHgQxRX}o?yeP$gFXrIXW&xEoU3e zp>qO1R@Nbc*Jo0I$whoP4Nw@`qq+9ELQs)3cZkHdBVl$N!vel98#A&fsThPtuCe2U zF{neD{v`b#D}V4;x1v!LKaK*thd>0L$;(=+H8euO(r3jIVI;6^JVh(1$u(N1mGs?5)KJE zYpuL=A$3_pR33TSeIA)0$vg-$!LHb!^JQZ)9Mu+y#YnvysgPoB)mz!T9L{FD2|?wv zN<-N!gIv|C$f2Zj5t(&o&-15ac)*ik%=9+w+WWHS*UNMsf#G(`DoIs1i+NF5+?sn{ z7ORN$9wwr}k6V-Gf_gNonEDb@Imb%$>tO{Ur(cgc2ti>Pp~#*emCNS4X{<(7$O+P! z4?0@7Qi+7_S&XWy&YlBCAt`zoZKY%MFlzbLwRZp9bUo+U$wD<)oKiC#qC@{f}`{)h))8_j}Ck}q6@KgGSTml0C&-^Y5DQ72j6g3B0Cob7rUpK<5%?D^P z5FhC*8Z^A1!Co*oZGM)2q!X8EV_+u654GpV4V4b>4V3Va@wo8X0J92=iaLmiLQ@=d zhEp8y=;va z@cNit2%o!VX&pyPkF$Dd&Qw)uub2B#zn6td6gTQGrNHW56)MS(OM3}c<%m!%i3xVR zmD9kVJ%30}Vj1Q5u;I$ zMjvyGh6hj+XGa|EsXF*OiwO9$gRtH?ek_}(4c_5Eiqk)mCz;}_aZo*Oo>dCnW3W2| zH&Yy`|KGARi*2E!F$pDSQLmUC!I7>n2Gg6GEuh}-Q{SU3qwi6s(p3G>&1J`Fc9=H) zQVv7#-^KEj@;nW^v@yJeUD=P9ia2BivhyiERQJ(C)rwouwD6%_!sdiYlnuKm!7|Mf zv?<`vPV?z;imA!4GjuEts&nC7{FBSwaiEWhgO|TPJvtCJH4Ljk<20z<0_Cqy4>tr& zA*kViR5vdmRhtFMU!T_D1RVfS+L3PD4=SO8@@Eh7l~6x170MN--!IGo+^<@{DF~U`qW!7ok~r<9L@ zYm9rEq7fWR9r#-#@n@)TcsKlkkJb1C|5z}5!)v-QoINMzb76O(-HRhC*%Wq87U2y_ zU7aB=X?hg>9JW0&^kB7iV}|HP8PA~2jBb_z!7|c~-IXZ^;Y$^K+Lr7&iNExNHzjV# z?&Azk*@U$b)<#e4dgQvQV6MXL8*a`z5{d}m&xV`!IN#DB!pO_Dg8*E_U3vmBa3KU& z?nWka)vQd>q&;)Mi>bb)rz{Lqu!V8jrj})jzKzG?s<}SKbCasf6fNNiQ?Efc;T26i zONn_woyim(I-0M4!_0u%j^pIK-zo{){qT^P+a1flRD)e&u!~p0M}~^a+0K};{xZMqPUQI?UD)h3td$7SzNU1Ee;_8uAU^O#c8lGe-H zBUx|{3+~&OZk3wL;ap!&@aU4G+k04YJOmdFpb<|azS?sPf5#oPVS$SEi}^8iUt&O` zBjgNtTIrTy31BHg18K#WeNw%UCECi8hgn(erTuwzB1@z;`vy}?T|4OJ{a2_C*`j0X zT`!`7p-lVz02wirc;ACqhUwW@4phEutf|k#AuHDBN8ba&EU*s(M0Hjid1A^fFM$Rw zUt5=|FTT;vCX+PQn<+fdq@HNmzw>q-HIHf!?UtQ^pxM#4{?`I%#W%!ryb-+V35Kg$mB2mh*< z9X0`kj)X(($@n+YY(pTF;(O#QeteJ2pz5q%7P9(T9B`tM&;v6zsI*kJH_)%SAIy=(3kdP6j&{{XaEo$7inR)+RB_SaOa!plWUBl6_v z6PsABHeN0+a#QvoaLXu4W|hF%^kf~67U%8?ZI3#w-I^S||6-u5RH_SI0@9$oMx{cN zcEy+vd;fMqu@=JX5J`SrAHF`2R3?(EaH2Lej#`6T3Q_{_CxjAZ-Jraq#RanTxO#E4 z$Z~&=B(0b@vYZAyJfTrf@w3;m^X(Lj@Lv!C-u3WkJtlAHj~M4h!tMKUumGh;7A%Dq zME`T0@O#+OKG#XVhYjs>oicmkcCJOe=niPB%@NKs4|&%5nLF3_*-to>W48-6@!*Hj zn0O%uR{^+YIwwYVUunaP2;~c4r14K0r4JBe`EDR?({b^XH|pYbB(Bk!&R4e@jo)G! z{`z+L^q!Qr8%WjEsbOP9a+@MdYcMjy{Pj*nux0_jC))j4>gxAn2I1ifa?}}Wx^~Pc zJg_=ZZFxUt=ui{gr5O&Ovk3TSnNj{MI}tKU_0e=D1V5aMaeJ1XzVKa#19vB?N5_gw z)y*HoG?be@Q(ue~U0d>?0-nJkW)k*~*~(Cd$>T(hhI40s1ewPz43JCrFFS@GR9CWJ zOCmy$kW(fu(XSj!#>#7t)QS6b<)h=~MU1eC6t2Bb1;9&g*KFqNhSliVRP-~1y)#&#Z= z%SlFy;`tfGc8O&0B=G%L%)_$x5W`}#g8m`e_k?MmPhpR{bA-eklF;pQrGM%?G{R^@ zsY$_zsA~NIZ4@Hh|9>Rh307~Y?D3i|rk$b6cj(I3wdX#04Kvl#K&#qZjtJ`eIu*0a z5UMkRy3M3Tu{InM9LjVJQvbdK|9Cfr%-VRFrS(d32Vv4-j$tPicrrqdh@R8975X`rp=(y*Pxx&qwc`p=)+7;BISDU@t+1%0y}i0~ylB?5 z>4(sBF7AE8oZ`-*R`^GXjK)qu^#o>ar$X$aUKlTW$!m|QFUE_uqP_ZkyqMo(N*(~U z45kNHny{9%RD`*>2Z@2QiA^e3D<_D~^5H!7(gbXNEXY%zPY_+jLn>ISBN_X$Y5;wlmLaOJz^<4;t_ ziDFpu^uw?lMnLDr!$k<5e64142>I{aNwGSMK+Ph|UTxREkg8!XGnow=c`?Z-z%jngc056EyJ~ z*B!{Ut)Y%XJdCvx((3bY9eJ2>6$I^lO&}(IQi=L#is&TErmNqlhz_z~x@tRBoR$YS zsl;hw1AZ%BohJSv8PV}7(Wzf5=JB`Q3Za>aaX%Lm{MAf70-regwAaa#^d3Ua z9@tK4t@D*{&}?+0g#uj7WX!{Kg0CJKkt{M@dD8e~5pHX^i)M;yWE&!24IOW3SvDikQuaEaxjlp@=JVMB*#n zPy}B%@MR^va!)9tmySq&Wo3yPeXY1ct}dx~=vwi9j6AkU-F&_1-rC%?Pd}raRpEGt)xq9p-abe565)#S%94IpmVOp1v{I5AB z>fbksPVTiMp$KtvIx#i)Jc9m$gE)+N4Q=`M8Ft&QuVXMP4A@(+bHyXV(wW5oU9yK{ zDeOPvi@&v`W&cx01O6yK4e7~*0L}gQ_3VxF{ehk2Lj?~83WgqL^u>sN0~2>F&>Rfp z#MO4>R1_RNOf(R_pJ;ouEm?|S){ufjw;m04P`hr%?T=%=kMM|`BkfR487K^GRFI-= zN|Zm|I|Da%9eobm9*g&mY8T?@!6h@I}W=u5#dub#tXFn9%jyvrfRP*w@?NZ38xRM9$meXRDkJ=I5-t_cyW--=D+H!W9P^QU;{gHq1&%Bjvx*K z({mpdre^HJhs4K80CY8l%sJ)Q$*4mp=i#%j(z@HE$1-p`vIX}=@#EDEQ+S31(Z z$0yWJ!m|g#62iF6I^!U|1Bdi?!n23XZ{UbYhq%sQhcPb=Vqxrc`gdaleXILEe$igD z0(D}_K|F0grAp<4Z@{ zcaF4cv3`+je{&G-av=@!k&wCfv?J}P*@Csd$xB{HsL}~%A!>~a_I0(P!5wK|BL15Y zTv0UKs8DRNiQS{t+$vJqRz_fo_pU;nhQO-S`?rcN?QBLVyotPu_i_doO1Bp)=WQZ+ zLb@Tq+1^dZOk!-Ni6iHFVyLfNze27PGCgh~Vcu1gpId+bq5LBX^=l}^`Hn3wS!S^BREhJNhn2hhRY$0sg-a@AgeSk1! z5NWw@;hXi3w;~hDARAMnX%d%mV&R7JAuj1qwlsZu74%2R}WYhWi&dJsX<+&nunmZxCv1Nqr|kCKNnt1;p!RYlzFTw z+&Br|HDs+q_=gqU6KmrHh%SKqfz^oSiYX3R+jK9Q&FZZ}>|D?9qM)aF19ba(AO&YZ zQdlEKapiak1!(;X*VUfiC7k!`cWexN9}Vx^XyEiQfQ?n^-rKPZ`^{i&Y-zU-rxAXP zT*1ucfgBzAf&lNvNv z>)0s3d_>lqh3I1lnZle%&C$opjPAIE5hN9g=*9@r2}QJI1Zh|ij%81S7HftCYSvNT zZmaYJQ!ws0N><=goxNSexml@1B^1OXI}RuqJQok*T79XG?BzAT>_G|I?rijrxA)R1oO*ol%SoNIx4c+1&=r?JSIc-66eMp=iEBiuR-W5z;1jQ_<+@25WiNh zc5d8mGW!x7>RP4qHAq3r3AzFk^qo9Ph4rl;p~iQ6>wDb>1K-s8){dxksp$ck#dfl2 zrVgC?(QABTK^K2v2Xsf-2yM8q&iQMn%t*(QRXdZualIy%Fh}15&<M-LV7yg=PXSP; z^@ZuYc!`{5!p}Im6}%Q{R+p^30(+X{!-In@pNBiO0Wt(Y(5&j6J8^>~2OqU`gs7A1 z29owFFzeCob`$-9<@gvJV3cF|Q0)DLKo0|SNfk|<@D2~w&9!2{#Ipk@UsMtR2Z$~B z0Kltb8N+`e*PsKMAbTFS++QSPVFlTCj>i_Pkf4$L`0FW0f(j?{KUd&K7G)Lag~6w4v~)$B#0htrDY(1}>t zU#(dr{w*7pR=5|7=I~8}{K!T;#xPcZ#l~x7WBr8{&$}@}2DBQpL`;|S|E)GH!Te+X zaV3|Ev2s!$HDRgf!-1`6DK0Gh+*?&G6^lNvj-b(zFPmeOjL52SSw?CR;*tpx`^a$*JA+( zyeEPNwxhW23rFmnP1t&o+JRz?;yQ_hv7?;2QOcj-ii{)3{ z)b>)5B3E=%pOj*pzM-2sS1P*5JG!YZKCx9+eX2h3iEHGw-6}4-N1TXZee_y^b&wh5 zDrW`Ci(mH&kS*f<(fMM+IJQlbyS|FU z@y{4>h+|?9>a4ewVmB$VCIz-+?l91Ax>6(|pNj4)#RAd0aSG-xIJ=6`)3pY&+XO!> zJ`ld=k(X^SN$Fo zC*+s=RmX=!vb?L68upO5Pi7oc?>!_QmJ>_W%@2zX9cEZ%9>e2ik)Cip%e=9Ldir7U zft#i;7rLso!Hb|xzs`XcME}Z-%|qMr*W6&!x7YNv&UGZXr#X6T@@K|&cDjz3?${$y z$I^PnRkDr8^0{fKDW{IdjP0pb_%7Yueu zQ2s~6S!xg8qgZ)LEmzMxD%v;KD@UWX&a+mI)TfV%LGkIoqd>4=oUwDtRmb&WDKVc| zF9xg8kMjgC-=AsIZ~u^)afQQuyZsOpZrkefcPK>MA=AEgZLI6-S9|E6%hnkQ2 z6L7W4Cwzw*n7Mbwd+WuW!adf%h;Pz_R^dXAg5PTOr&Hv`o_fHKnjacZ#T0(~Mn4K( z?b3UsJdcD|!&>uRnf+e$^LYO#rxdk1*hn&N@PbmX2rmwC30K!K%Wp{KWX$%<62aQ{4mj8%W;DAGTKylA}Lv zTz=R5T8G4;c{F&WV*BM(*4#_k$=3RvvPUBRad$f@JMe`v{$>hjmR}`FE0qx zBYp_PYaeGt!xQ}gzv{O^eD8J+9(UBSybc3APa6DRyhDE8qmQjMGv?7pJt?=Iklqu% zMllv*HqPmvnSx(e68bdHV&ufm(;d7CMpE?OaodC6G*T~b6c@&ucp7t?8>t^Qia`lB z2rF<~&e0f{NvJ_jiiud#^gk(*FG;x%dZd7NM;HpOjkBZl`K_vB)A0GmCCdheQc945 zBi5rR^=bF1&z}_4jo1&cpgN#jJ@=IOwFORaz3iK^#WxObPbKX-W{+{jscoA?ns`cm zu}Sn7TU7IMtl&SR29;y^c7C~9S1w#F7HGb5cRBhTx+5RuYnorKekm87d&c8bFIv~N zB{&+>SsVbnlouxW;9p`Y6mvMW*KcaX(;~U!F&J^a-*6xTB>4+A`4)hgM6Szk!n-``g3Y31qeTD3zJg8QMoro*E@*rh&AIC6drK*2I*!(RkqLk`NR4jpqcY&ToH|CGp#p#=w(qiK&5c$5^Y_N;({T z^Jlc+CmGb6RsHH-qdKX*Mcb{O!kDvl1s9?YoB=$-4hNWg5DrIp0#lB$P{u4bI77&h09^O(78X##o_GsRB40uYwT}OZC{0Q z)QvRhgLfC6z&i3`-x4n@m0x;J*P&U2PpVg*72V=4vJ%vH z&x&4dtPUS@EWZ=<`r$^Ey#@zvY`#CBzi@q&A!sLytVg4pl zMSsv)xt$>)BHDNOp%aMlfkgkJ^}a$p(3N4m&P9|?3XkMX5k(ab zZxQW8%e)l879@k4^bjxOQq)^7h_)U2F=;9bHg3Cq#VZP?Wr~V&ZAfSOq429PB7MYLB z)A11~#z(bFb>AjB$E<6|C%xL?c>(N99O6Wypq*6b?h>ukJ==ssj%%kL-X^*=?Ai`~ z;$0im_*-IHs?WAzK@e?E&CQFpwXt+d;yBudhwYjP7}8i; zC{%dMBENy;+oML>8Jg_Nnk>9>tz!m!>u~Fw+PXUBs}L9U-~mKaIo7zIkDO|98T)!M zpio6IcS6ZJ)lU_ouZUM&wu|Y)sodK|GJe)>7qbxg$9B=xy)_AiaBV;dI@P1NDT;U0 zPt9$3vqjf@66H4|zBdVM2g-5QiVX5DJmk!2Bq`j@RC+f$N#JOBi)^+PyTJ+LKDA~o zo~;4D)fuYKtDeg4WW4;V;%a}&>k^!T| zbqS)as7Sl+A^f^LR)0Z!%q%!~U>o|p`H1oDs`hTc7yEzh9K42xFy82ygiX)6(17`~ z9TkNPPqu}-7;y%dwdI$XFy&3R2+);=C<6&N=B0n&n=)2{~M z9c1d3;c6#95<$h8-j@YD4H$fIPbpys?2SZq=??fdpm~Dm_OMSj?GT@}LixG!5c^XM z)*R<)oL=5}>fzVLwC3sftl0l3&jD&6{&rs=PYv5Cy7kuIFK=Cg@dOWABGK>7BghUfqiSx390!U6 z4EwjvQLA=}R*6gprv?d&lqdaLGu5j*#dDZgRNPQ0R!esahk4V1bsQMSN1uZ>M41Pk z;sXVTcsMlRUBlzf5D_eIv0*U22G+36$~KV^yiGZx2EXGDV;$VP4WzVuL8ju8p_V9H z96xA*Pl(rBl{G~Kavg4_b#P$jAvQp1Gqrq=NRGn{0rfejncA{Pw47ozO?ESgFNP|7 zdaLgG4$#n%@v$-OsI!{&I0 z>fg|=N`f~I-+15)NO(+P6n<*{ge*X&w)QfRFjDuwDSA4Y=HJTx1#-PH$Bfx49u{8p z=w8vYX;~V8amcBmV_NSC>chRb5Zty2t96IpwH>zTIB310(`3k~&q3YB3_I z%jcBfBY5T4Gzc6kqs$u{tNGQUoh)sveAQw!dd}f$F){5A>RM8ptQqTRkKx3F^<*tK z_smSv3iyhBqBW4_?t{BR@L94CG_u-f)KI`_0Tbm?dr(izFI6S|o!u=xCJw7f< zl8w*|MN|Nf*Wq>rMGTiI0$a5t)8O}NNw)t*k{5l&mDU`Pj$iURg^2pcJ*CdOgVk47 ziNAx(7+y4@T5~{otM;lv2SmS~-@+aZyw0xSI}OurFe*Cz6h;8dtwvDL(oZ2~L>e@X zy8nO}g7M_t17cLGu_Qe%8EmDMKF zm!lrUU?9zk!A+(_yg?SwG0?7Kbqrv((nN7{9&l+0NSj4$iZsUP$IdqJvyJ}ryYxqV zI8Ar8KP5rYs|a{fe}K5Fil1LvY5L=EI8Ce9H}&Vm(3ynX&M&@tW}e|K$0r5kTio%p zq8=bbtS+MONX2dMV!2r4sSZDjE){3q6aN%3{m%(?(+8q^%eZqmP?(Xa&yE=f4!`~> zRQU(E`Ec-4b@T&~DxdsR$-^Rxoq6Aym5$MTeMa2n_uYOVo2d zQCEKmO_Kdd#o`Y|PJ@_NPYLz$QE^wy<)=i&)XxN}1B2O|V*-^lr@X@bwJ3{iywEI4 z48zFXp+-D8#vJRJc|adc*5;n zojSgt4TL7X&u?n>Z*&@tNOoYFa9D)XlTL`ltXC>l{w9_+kavHeTAve3MWuS^oOnc> z;!kG9qB^le%KP3$qqLIC-c?Cbc9EsesbNx9k++x_c{oOXR<1s7AP34P%ayaC93ou@ zD#kUGt%S^YN?jW#d&#e#RQJcpS#t9}^>dtjQT|q~o@ylXWxo@uePelDZXV`^m?zM) z(fMwTaA8-+8@EPz)>p`_(QR|+!3bzSMZ6k~!C_qO)yT8YrfM3?u5RtQ=(7`Sh=^ev7va%LtiowOL^WsxT*|a67zbI1!lSt1 z3Xbwzq}>oz)WhJ(C18Zz5HXV|$3@+jU~cNIhk+wiZlZ+!5D_KHbCGsKG^rj+W0OhP z4G}TuxrkaB1<`JZI@QCl92fC0akwB6$3^Z`?T6@xl<2a@n@qxPh?q%~=OXQf==FLS zcy@yY3A-U8MwH_s?S{x-55sa?G(PNyh$vB>i?kb}++~Xz;?`gl-Ds(LGqmo6tDM0(S_1Ek{0|eWN-#WSjolbB=xb14uSqXk}-2k%sj^2tz+it7^qa(Ac#z5r2aCHI?I^{v4)euK57n*^VoX*`*iAu zY!TOI3~b%deX*NRy}C$Xmu)?h->{IZdwQvl#Hi1*MO(VJ3gdLOaB9{8Cj#5-8?`1u zc6MKkfg(b>?^2e^y~ zIhtB>BA!O;BFmpl6XQ3)+mc5?d7YYLwss^l4PdY$j2D?o@CK3b(zOL6GhyL;{a8K2TB2zu5~QtFTAmbAoem zT4i8`Niat%_}H+YVkjNe(}N)2Z|ZG zB_8#Fg7z4CUJCA}YkGg<{iWG(Gzz@G(Cb%qoPi77>#kV~Vam=4vEuiplPVjlY$!wAAqcn!F^DB6zxMir zUq4-?o`g=kf!!{0e31|Vdh>2MRJ~xm`(NBJ&bXu9;Hlp#i_{b?iJ@v*@-^0;{>GaM@_@NzHP!v)=M_`CQ)x}! zw9f$6mS4LO(2b&f8bJ?{&k%`22hSs+U8x-Ad9!Il*bsB-H3VI$xNEi{8DbmdOXV3; zYiRf_CUjml+q2HgM*C8^nc2K_DYKbZFB|PVWdc$)-yw%Epg9K-Vdpz9-hCcX?LDO} ziMAn8?G>dS-5l5^HD|c+3GV$`p(2Djstob3D+d|PLwu-?g6ryeX~9-y5$U`LI$E4k zS)~{=ccH?nv-3a-omdaHlXT1+#&~w_z~2Url_OxR*Waq_w;%KRY4d8Y^zEzX=477n zaw4L=oaESTst>%Dw6Z*!#L%P3yb+!~a>!_UG;y?*Z5#ffphm{eQx~v*M8F$BlY^YTw5+|-p>|*6Uj*34bZzbyggHcU$Z-l0>-wfFWTVpQHkmhC~rSwd0eu2rxAnyz5w`qP1_opR31xHFPg8 ze|=hw6BLV&(V*@{8n%}O%ioAUl@!1-d(!Np;nFNP{ziPM3?LjKZbJ@H7==xhP}K148ccgVVFzP!I?jBgVByB$SqnGUj(Z;9-)WUK_v4orE4Fc) z<4OEkQWdXyca!b9qgUB1!>kX2HKXtcQy$d1El_YOc>F$8C6)}-E#2g3aie;*n;hGJ z{$O3-+8TyPvH{ssR=%WB_1)?2zyldj!3*&B#oRyp_mPfMK=4oE_3_KN;-GxpWe0c0 zB~TE0{XxRC(0k~5W8ZUOn2%u5yQ(i!v}?vHD9xVy$d23Do0x+o2r7^iHP>? zu#MnA0=$Gg>xS=l2UlRCWO)eL|0%{^Or8=DN4{S9RK40$woP~y-!K z;&@N_Ya@A`R~;Q7w}?~~7${RkSM$@&{B*B4J5W08vTCtvdZ|q55?jP7wxd*fM(SIP zJZ`fG?60#%*#DL+Rue9j?GxT~6A)vV0la*%T70Rz)jcl(cUyRI`MpIk`fxh-9II`N z)eb=Gf9YdJL%E*6C>iUJ#T_9eMZ?ndk+d83#xfwPWApf}kGjs$p?XJMXT=ukC1mTU zYj5*XL+Grl4@}^!D=9#6h0ePEfI=a5&V6d_5ZOuMcjpkQ+$pn{LIZVd#B>Mxync9W{e zk{$Z2*60a0Jp=q$zOako#e6hP zinViqmZd7IO9TnYM>#Z)L1zd1--vxPB+zLoSea(itES8wz5-S zmafmf+pq9vZas?Am*xyy@CM9KSX^92-!NXjBag4D$e$pw_t4X)R!o#1wSES8)vkj@ zwxXh1-U(=i|FN6OD+(vcPehVQtwLf^EvyFT6*zIKlW(3P{}8fYvAS`Z9MQUQF>H*z z{&eu`D5hmaD2T(JX);d8cbBTSbL6FRrbji(m1||}u8OB}Wk(^ml&gJL$@cQ)a`o+1 za*@p1spd|XKd|Md&5-N(`|Awsb)4L!rp}bJ@movUNPqe`J#{u%T>~R`9~smr*OskXUFVAdV|W@av|

aoYu5c`rv7}nj>Q31;hJj&)@`!YM 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 rG`L1_guAma%su2~fFNtDJxQUys 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

TsJVErU!5u>P~=?t z-mo0)Grf&D5~VZpg)90?IqQ?3&>;ue`g%S!sg;qshHc2+SdZ?B5-WLQynYwQg&!#5 zL>B%oH9|M^520CNkTe@5fhk6yPye$xm+9lo&wJq*4WZsNCM{|Y=zE?(Jxz+uFW{psL z=?}^mm~aW~+)1_fbbqATdM%l?H(}%|!}>r<$~`d;w`qAYktZ_K z4($&_R5s7wwUKpv1l{t7*D}jFB`R!JBeqieOL$~IKc^&0507SL=b#Pt8XRc-b0Vuh zhe`aJg&EHSsn-@*#kQkt%6a9nnAcWA*#ADw$4Xyu@2fE4cZ!nyc6n3E|?z7 zH;u8152+1Tg&xtoQCpEde>aBVvn6c(C)mM0JIV5zl?SEWg{-<6NbfF3+-le&H7ijg zcb^8*eKK8`lMw8hSMF}XyU6D#-ZQrCzOIIn_O;QsjE3DeS>gp{n^c8^>4NfF)P<8c zK61$zRBddPfpDY{#L=t_!yZ-zL|SICx{FHucmmcroCAYeqYA8Z5C?|$ZeX1XeWSDJ z@HTa0>jG~4RQZa4M_*Ew&HJQ-zT@O9?V?k~3p>93Er?F-%GdQxPz7Vyw)i$)9U}By zd;8LIL@6UOCY5DI>tm!5RyH$Qe|Nlhbz{hYR4Pjw0KtI@$7#B>I5xu-fcWuo=D4gR zLiCfD2FDV7se5qwcK-ffMV?~Sa{2Ib^+fet#8NtO8LQ-XlUU1TB{mk0PG%dDI?CJK zHvjhXbZk>-K@7DB{`Y8R`J2+O$M_ahKD~rqq9F#GzL4erO^NC2J#zIEVPxz0=A_nf zauU9$@$XJ=_*FR9<=^1}2;X}VIssHNn~w;DCQn}$jr3`4|2Eyp(=}a|Y5W$bqBfmw zaY47d2gdSSp7=>0=N)JRWOc(q-?)iJ>awU6&(AEmU8S1ML*SVeKs-RK10@MOQ#ONFR5yn$K_|H;rH&pW(xX%go%01AN1N zR?w>aQmR_Onp;8ip08l`Hf&LU8pc+(Vaq&sh1Ioz=y(A(@c2IR1#%q4r<)fcB)laE z?IH>r4?EzIQGk*4cu+ILymgev9lO*Fx?>8<`6n)8l`~lLKk3j4XS%C6D?AHX?p4(P z#@X7HSCtnJ9AJHRV02s+74u2SR_j#ti>L!Q)HWsDFXlS+kUt{tLV8 z+NrGOU&-lIEVLx{XpRm^Y$y>JHKZz$9IzB0@!LYIw@TP7#q zT!8KI4Ui|h&#=-jlt;q6JIwQ|8rk(PKrDW+i4}Z_-FC-XR{AA+`hyDA{3Ujts&;mh z-v12Uo}0kq4TU*wDwC5`k6vv%&55)jwLNP|ym}ILC5S5tw-zI@Iq|~|2bj#-Z-VS= zm_m4%=kGBf4<`rO#!X1~ZfnS8Ikzyv4c6Mlx0D!BYD9y-0-#+tSj|`Hu{~DS@|E(K z^ru~H=GSQK3m^->2BOEBS=rb4eqa&{@4)-I11z}%h^{PVD?3oWbQ-JfP+pAKQ_!UW z*y*^;ayylwefJa<1Z$UeI`*(q{(UvRcWaS$I-X*lP9@q2IXvG#!NWiRv^{0W)vYMo z=^)uGF;XbPw~iJkSas20&0Y9bxoVW_R)Xzxga(xh2`abiTjiXj$k?r`+WG5~K?OMx zuK|4GTLl|Yu3Kld^Vb`K%7q01O#4>3ODNZ^yV^PV*Ib!HYhjO|f}*YS(QI{h-z(TU z7f-Ww{_INmR(0^Hw=(AKHRP@A;iD78*7@sxEY+_JoU#8KS(fjO&RdD7HQ48Eoll?F zaEvY=ta=eB5D-iU&tU5of1}*Cy{5dCU;4PNR_D_@Svjg+IPn`<8uljUt-R_ZnhI5G zGIt@kYFVqg7cd`&-z2Rysc6|OTj!!{sIMxd`$ z!ojHyI!(u!7~ZvAB^P!*{75jkQSnank!~ zT0WSteP6zx?qWqD`gqB+kCla>-nyMETBjc>z4rvO=upp6Xdm%^#M##Am%|Kz=|c5C z5}#qIq5AtrzNb)(XL2fliD)7eXeaTPfM$YQJMEoJy49VBw%)o>{oT^8qc4T&`-@Mo z=r8~&8_mpN`n#jNb$;0YprpOE=S_Z(MT5X43DYm{N)t<4d)m9xl6&Y6Nik2b)*kx3 z(xy|aOx8c*e24Ro06okqzB2%3Wts5zlA3X`riCyf6Ej*a-(X&f2N!8WYs?fpL<#V< zXcq>!+|qtfk_TteH`LKiW$~`5dkM&25|sauyWAPlejPFl(+b?w3TXOI*tG;pR{>Nm zSjGBI*Dqn5ULshT#|=}`Mn#_ka^cRiELyK0s^1ST$Va1HQA?|sQLi63ps2%s%v~by zhl{U|6q4MiC;OdG!3wvT5|C1IIqQXPRMAcK|&4H5ghMfo$PdkJ|&DM!v=%a_jZwJ+W_;^EJ zRylTp5+OHZu8@x#55I|k%#^V}Y6vsF0{Zmef3d<=`>c} zS0A5Jcakure(7+*ZJxc|O~(%P4;A%{S7|-oFTkF)qs(_(myg!v{{LH7dZW8_LpKFl zH?-uNtvlWCo2@$?%G|f<$HbI8(cPG#gMyyXPq*nuVRa7q_E@3shKyy&k^0m~n=j!c zmEndLaAkz|gRC%;&%E0^nLAP+iz^lNMZ=W;X2G2y3I*wJEnVEu0E1{a5=|%bKS8pfzV40n4UBRFjq-EDy89vF zq^qwkfzNd)5I-4|u%CCsi@F5x#&e;*I7xjM5{fVX8iW34+yndR$Bc3A?Cy$$X~+}q zdJ%bcK3e1qJB-7pmov z8>9GxY*c@JB0*To?ESksIWVDGXOMO2&jZsQ*Wq}wr{s4|71yEr)jQ|jRoeSbbDY>n zS57$Y0J{rpd9i8-`ERGeb1XtzaqT2u?g7RD(Y-GCC>de#`yH&azrNQ<&Dl77tysmq zRw@Y6pR3V=ir{PX2e}2rC@zl%$+T=CYmU}O(ar2;w0@hkuODkn1XrwjfPP-z>Vw92 z;IbZcB-uDv#p*RIAx3|H*j~F;+|!4-V)U`GdlxM8zf-jAYy99l87;X+$Yhw{Nv>h< zVpboc|4^#x#nunRmb}-Uv1o5OJ2p^1UE2K&GaB{Fq}`#c%&1S2UR%nJ8TCII#Kpc= zao403K8Oyta#|~ahzeWhLI`}G=@AKXW0#Q}K}F(-_q*BZo%(22G)O;K;R0`~Sb3C{ z57Ngt7pT6D#mb6|azR)J2d>mdnGfR%Wf!B}u_lvSf;R`GlPtv6IiJi`5vwAXgpU0A=H6)%1d6Easw(F@09r4+4Wfc&uGx?gVFboPi4(<`hK+) zgY|tNm`GqXarnCURxQ51CX!HqnAp*W;hr8yo^U;B@&IvvhKt;6JsMYAcRMPRwv1p2 zL-h|*dDl=q_&$l?6q{%^Knh~T=IUToL-ilV+i!X1U=3zrX5k((7WARVDMWh8qD}np z^V`p|9e3!bM|cw{eVr&+0HhbwCF)Cl3RPsNhr{txXKo<$JogzVZn;LyBw;}I@{miw zj+Ab23E4V8B}li%Y2RQFuTsQTaZ4uwu!@^E1dM0Zyjy0l_C(B|ExWY$5i7nzY>uZ* zrgcww60|uPNolsuS-sRen}<_F$C}^_9d4bRHJ?MtCqAFPr7wDBzDtoz<$&!B<|%8vf@Lk_n&zEwkozfCc*1Xr9B(H@rVT-8 zSA=~vAH{6FEXZl07S5t*0G=dNPoLjK8UUUk^avqTPL{&nChLhmdpH! z&Mhq#xZjLa5!-YgfJHPe5^ct8>MUfdll3DdR?Ixf`sp#MxbUC9FGw`55<-f9`cTn7 zt3a4z>eeO?*S{=E8;-DMi+*q)?i3Ac61Nw&5SL7u8M470WjWl^o0V_qsbk4^>h;oy zQr3Kz-pKOq#P0L*h9A6H#%6?K5z26j$(BFa4+&Dr%UtG&NM(D@uUnkR9ur92j%sNsZ8}|AFTjx(Mu*D+5OZ68L}w*Vbuv1o3yT)4h&)M(XE9d96hAjTKx%s|81$A9}V> zd|_4Ao-rvxqNV@?D}v7tp#H91&gRp1s=M5ar}&Ka>D!p=E`9vC5vAWcg2GE7sovOA zW32?jUGNj=#f>zpX#{CBaeVPUekqo&`0G!S@(yOd*($E%wDgLD60s7DZ2c(xxao@y zAl-%4IRGnGFna{B64sUAn3lo*C3bK)#k{bJ8wP#rTN1u0-~G1!21^*NPa3!WIO@F% z^**B2TY`E+kv|gk8c=VvTJQRbZ+%0(>({W=qcOBE9%NOc_2Z@W!&v)h%%=6dSoj!y ze8h{psJ*xg;4E6#i)D_%b{U_~3dZ2J?;ggg>3w|%J2wVn3y+qfd(%rl)<=zTd)2OX zAMe_XaPVl~cB&i63u9q#q57i4xoZ_)=wwrVtdEa%PojM3USV>^08vQ4AWTBqQNEdM zd;J7k{bTH`za660J9FI%AsN3^vXR99DE!d!aeaJ-j~ICpbb2ghP?BIdU@ zyVIAyeuM6gLj@{Gc)u6e`o2KHY53uSnSoW9ae&>-0Itt( zX33fQqyaCCP}y}U6hJBmd97CQ`Pne>V|Qli?}+;CH7%J`Fs2|m7s-QI6^iPAyH88Q ziJA$DXVn4kL2n_89IGGt;BTj@X~VCq@C$i#j3A&-sjV|58}y)sx`P(_+jF&$U*dD4 zXrYs?BRpvq9mNOGJdIVmI#xpMbzhqCM(#V&=oe( zJ0$A~)!D*iTjxKAabGK%jnFbUpK(%nH*+&cZ#2g$PB=pu0^j(_3xi25?Ety$v~{*! zhN^5Pj3zCCC~4%xg(fD_ykwI|(XSlyeTBt2Es@2yUx-|rC1kFhBUqq$JLS$zL?I&H zU1!_oWs6>!T9jrH)i`tH{iO$h9ecAVV8uih#47OOlQ6|HqtGG%&jE1j_W+;BHfHH> zpIwe@LtK8S_y{7Wu+uEKK7^v`M_wsfW?jcU?gT(kC#WDMRsaN;xUE+JVhTXyeiuaR zQI==XCrx{HAC%$D%ND#s=76KP(-QId^BAa9ZQv4&^Mw%Z=tO+>8RSh}mIJsLNOHl0 z>9?>P2x7rb>@q)jl*g|0t3t~%3{4Jy|eCKKiyyyB`vdctkYY$6e$xy*5P~lFE zN$V2*El!seyigJG84>}cI}PVv3#Yis#PC*KVq(c7a6KNB?#f2lrDQf@tNO$=W-*~9umwLNJkF0Pc3)dEeNRG?8sqnkJsCr zcMF*gX?hBGSi4y;IZ41$CPX7!j-#hxuhW%iu|R9fvAfS+@)rwNRx)|9B-fD6)fQCm zUrf%(oLfy)F5Gzx0sudvnV{nXGFtFzYiJFq6s_OBA_ORG7eMe|>2x|C8(8F83IOm6 zW_A&YbaN37S8{f@6pB$+(0?mkQ1nBZ|A9V+^z?GvxR9PvK|6iva5Ls=V2dQ$1-rqN z^hL&e=sY#SL7>^u*O20v-Zyepyb$6-eR*LGa#V4vIE9SZJ7NTA*lHsHj+2qcf(qTDpt*=V+m# zX=!UM77CWyK-$uNw8c$b+-!r=(iV$KceQ4m-}~Hq2L{%5Ki|*K*9+%9f6sZ&bDs13 zJI^@}!;oj95O3YuHQ4&h#9(WB^+oHL9>Iz|H+>E*9Vbrff~c`b9y3viUJ;c;pN$hE z^(m!vcbxcyEdncokFa`B4_p0hFO-9tcMI8QfASQpv&q3>WAYI}w=(F(VB1#3n0?U7 zuB(fa8+bkGZeSwWS3zto7t+nTwRiCL61$jx4zakt*{SK5K+-&Wj8`t&Xv3&|_8^;c zievju{48O`mFJ3Ae7KY?-x^SG7H8Hh-?ClDGTvKl>*615JE?O!_`Y51Q#uw%kE+z3YRV>rMPcf_3s5| zJ%&bRx!qY|LCLn26NAA}=lL`tX_wo{H(u;7lwa6mc|blEF-k@AVGky6T09tPQKNw` z+SWVO5gKDKJ9%qn+Mid{lNiL)VwIzA{ykPolTR!b4e59 zA)zW9vJhTfz^_8wRgMi1`*A|TjXiM3s~2K!{KgRDXrdP%#C8&rw+gOWB3Oj4UgfT0 zvCd}qS692M(n|G-O&ts|s|ui?(N-E)snS><+~jYJNs4q=wWdGx_VcK7FtH@n-E8th zdYZdxRh+j(p9W8~?kda%z0p&;I)0^LedInxq$fKd(n~cl{t}IONbFB$rStO#!@owX>~sI2tu~~=yqXjFZY6~3(>=E6^-vg@!dlZg%9Drwiv4N|loEak2 z?b3M;fr_%sTW)ep#xfcE-JAH0#hK2>)kd^RrwO|a&$H zr+}f#v+%vl;_5jmHHSC1<=FIw&$76B+`<~#Ux_P2L+6wiVsq@J-7v71CYD*_1!lkm zTqLx~&$<*|Iuo%syz;~HmX_bfKve*2SE|*tmn-&!R{@yzY7gLT1M+*RO~h{W$`8|F z(A#$Pn2Nt;N+aw_Be1X^?8z4d#04`l*5hv&yrAwPmm)JK;n>k;uCJ=9

CA6G;T+p@*k{i-*xfc?Hki243*eyqiHWifa3=rVT@J2>Xm6AtXmv@Tmr zz`XU1(Lu%t;nNg81DC?Bt~jA$uz@lDudKachB&ZWCXZE?ImX#ApSKJ5$P(ZnC(>E6OzL3GlohG?qkN^RA|r zg@D(UGwD~shx6{B5*e!q9hs`77!2>B{&ak%*mHOWFk6P28LR8~#RyG??FX;pA=hVz zRT3{4pd1gmKEuT@TruCLTM*-Y4%JfUAk>-c(&}8S)|upLSEp*ONmp=~4M~OQKMSSs zS&$H)E$5apr5F}h35sRmFM}zk+=e`k^^5BgW@V$I5ri#JCboZhI26cMch_G9q}sut zIM_9=IUHwkT|TE$Mik#GxG}IW%`35(G9MEk zv@N=d21IKG)`6!u++v{0;`)3f!kH=ppYuV!rf_p!+lrg5 zJ4nmY($tF>cXqF~Xf|F_d1U@uDvvaN%twg9>T0~x1j7EaT~m<$-l(a%+u#DrtDlXqDMg^yLpF#FJ2r9$5XI`;yyq{ zm#75k`UM|Tc`nZF@_W%4{PtUrYoF!I*J`>F{Ibk2>k7`s`CyDa?_Q&Z^H-2O8)tmo z&b*JkrFuPAP(TU)KwC0ri+(+h1TpP_Dc^0dCm4YZ_8P|=&8EWH;?P+~vzP(cqCT43z0!i?Yo!LHcrfq51qKZ?f1 z<4h_mfIbyorPLOP+u&2RE<#|1s3O?I;>)uFM>sGmS|E;K3=b_p7vcBJ0&#X=RVi9= z-uTfwG0+=7OQ{RRe~zzOqs67ORjJX?@v%o7t=EQ|f?VXa52AIp7a3rX*X_45~H?RdrnOQg0RVf#VU;9La zUrWB;m!C)ZAh(aLcfDYJxn4;6vY&s_#{-Hfs90P%EwEIy*wXX?oK97r_f7!^JzChH&CNQV&iJ6ex}!b09=lJhz7!N95tjXV`*-K4{m zZ55XURyApHmk~Flvfe6=*99I6(ju>!b(YU5Zl(DAh^l-o?lx#!VtZl0MXNOlSU)rw zM-teI3W?KdLXFm)KU`!ASjYSvoU}f14P99&_UoGAx$N>|IxDmcw~0}prB>-)t64Yx z1ZAv72S0F@3RdF`9d1_2SBt}X-BO1eRLM-BNDjt7>hSc*wl(5oT_;@ETqC$yG?;Z0 zE>Ync@%g~2%PPw6LP>C3z_zvGJim9-73c+P#fv(>ce6M^=HH;Z$5-PuqxjnqqYv^E z0JffItshowop%sT9Crf>1uQiT>K)V=&slOybKt06>^G+RCZqV_{AxJ`gE+;6HBpVh zsKh;QNaSC)>2`_RP+x+z66?d@(Y7G)DyAtF4)k>6j!?xqu_iXH8p6ArFVI+kzsK)d zluQ3n%3Io#tK4NP*G2-bQGKawy%^FjJr`PgDt;(q)}<+HGbWLT+}P*%Q|3A`EWTS% z^2*PkPW3#VBH(QfBh`ZJmxcrdNgT|(P1j0*JoR}|ykDQ*iDteC^+wZlYIqTM|0Bcc z_KV`r`q9hi=1aIx96gyrH((f#9zdoIke;KFe}fn?YSay7TD1$hSNGsFvTVQy>y59?WY#1`i^x*|GbEEjQ{@r{! zzY$B;k&`I=x8h&)smrPPw+N@=4&ryXJJ^y>rN09nDX8Oj5N^qb;fx*e?-t;3CNA;b zwNg_F%BezchCb-pMv3oMdH9dc zYzFfr_o|e)h@}#2;hdy#_05O2??o|1Jigj{%EL|Fo0p-y!0GRz)b4 zy&^s>R>ZZm(D17Gm>yEm{wnS)hxVnLuc8a$F-S|rqxu9~p6x_<&`v7dDeeskFHC8G zTw4j7?^v{;VWDPS+*-=oB~J9KFe<}s-!AMv2432>8)JOnR!ZM3zNhbzAeocIqzS}Eyq&u&PllA>Ja`Y~kHK*pkLT$_s8X)?91IVx+8=$^@sbW7+iarL{ z;7}2Y-a)3W zmQWQ3sN@aIlKq#_sW&i0Dr)H(e*G#SX8X^lpaT$e_)Rz<#*e7DjksSmV z@pCYKPo{8u5{PFUb0on7lnUO)xDAIaej7b;#6(qZV_rLwMa^#m@R0%v`U8j=-i;Ff zfb^bMDNp%5LR;|LuL9bScgt4(wCUm_U%_O6E@GUfr=bv4h4oG$T~o>oq0n;ixB4DK z=s-Cd6Lyy5!{S1H7`&An7XPjfT~Rsn9dU{-WbGFA6vtk|*jz(O1FuE9kE5ImVtnAw zomde_T|$N&+g1S%3<0xOKqQ2WqeEYd1L=bbv9taN)=Cv(zo;YYJPm~b(Lx@cBe6zN z_bx}alst&ZDD((e??@@lJi^2BKxOR_AQ4!_OExTaj+C2qT^lK;QalHqs zN&;dm?dfKvII72eT6Z3SF$~{QxNqVKIviy&5URi?UDNot54~R{_Sbj0MOUhTdY3(9 zJO&cr_rNi6yx3&|SB&mCMYoTE+(Cz_`8^T))%VcFoiXCxgH|~n{+7LuQPO!jHNP)@ z?RVr1H>2|Maq*vez0`rnT>|+!Fl&e>DBJPl-M5P4^DfD&4=^-%9rm!$J2j+IdbCzB~f!AGjQR85V<;&43RE{vXjKpJjCZk2tqlyG1*% zDo=56@9Te1)rN#%9EkO8RS(jyr-WK@j7J8-4_~Vc)K4bISx};?7L=$kQeCY$s_T(@ z09Lg1u}SA~aE%Nfiy`8X+a5L{)5mCzZaUdN7L!AcGC(VC13VR@M|H5){IU2*kE7V! zxr0)$hxbZ1m~{fA*`M%w;AkAiM!8oSR_nq@D*Y4J3ooX3bG*_*%>vxpHvI{(k7iQb z|3K;<&8O`DfxthCS>}v5BIGExhR$ZMG6u777h1VzK)Abu=n((9K35wZcNT;A=sL=bk5lv~7}Q4(k@*ww{!!>Ad?G%qgMj)(j16)2vhBj-c38Yo zm{FnA(eq^ZGw68t2QvPdt8AcxKcmWD_S2R>i*JXxE@-atIWe}Yf%Exomkhz2cT*IGVevWCcL%(EPJA!0RRrKtZ4c%DMV#05U)Qlc zVm+iF9=>MbUze!iFA%u5b(H-nn)|O~RPw1f+wbT#WtO`AsrY=4f1ZF@l4$JQ0sEha z@om62nD3v!`#eT;E1VWlBiuU3ET62u)r(3mV6A(TZ+SiakAAv&cH4DKP6IDuAm3c8 zd@sEyKCHjlg;I|}Yw5~GbmC7(DEhDBpY%V?=kXA){|QrHJ*K=LXHnrbXh^?OFUIJ9 z>_(^R#clc@(2JMQdq1ETFF{r`H`47(7_ZH%DEn^^O3ldkH-x`OrJsp^kNB}0UwC<8 z70mb2yxKDh-viKPP~*EFDEl%x`G=iky$s24V=gs)j(PgP=jib!u-fP13;L$HinOTQ z_jk+z`frz$qe1-JJ&AICI+ZtqDA&#^W52_f;-vVaw=rWKU?xe*;lWgi1-5Rx#a+!$ zSA4-h>Lj41g_HeDv0q4p6CGIZ#l#@!wO;U=3#=+*wtXe`=uv4zmIhB2+ZXk3D~lT8 zoBhnb(Uf{c>`YI5C63j91A2W0jg?BXXY?{co|0;*ukivxEA^uOYdjv{K+_cn-K#ff z=2cAOmD%LHiY~jdky5|LxU0;e{I7w|71aJUnp{}~AGw$dEA8a}jTjYDxdp4iecseJ z3twT(f5S~Er8VE6$13xw`5TOvFVAsz_on{W#KAo(v0~A)E$SeTds9AjFbiMK=S&ak zD^HQ*n%J*LDf^T4=`W%a$8(6(o!E^O@phcBTao>Sfm%*Xmi6g|SP)`rg_V2{_u9v%b z)q_jJ%euZc!*>0juzPe)c-@vGD0%%|!$y7_1pW#7R` zNtHnn59N2nlcM^~_kLtL0BwwoKa1VsArs(QS8=)sGYn>-ZYobc*o(I87}z^G64s8F?vqR*}rNq^1}&_ zQw$ke2QzO<8uIkhsb%YSYH>QRxb?~uEqtH-Jh;a;f=uYJy~u=nl|&c|fz!qU21 zh&K!8CQyS55(#;n$lLXkUTxcW7HzzX8ByI#S7T$%u$p=cL$S-3;rLLDwVfS~wsbTL zXFlgNcf;*a9G3dK9nGP9xAFbxFP{DWGgp&Fg@~U4Gf~)5US;jere2VdrCPoaK4Eg1c z_bF^o$gCba1|7!{K92JZIaJ~!t+aiNJBg33DlJ7rpeXL(7Mq1XO=i>iZ2#kXw|_Lm z6AxkZbWI%hG^;Tv;V3qaCnz^N;DVX$(xQ>3EXNfp>T43UbhWOi>P&MV9M`KASNn3J z(;$>Qbor;}0Z=*ML8Z}D?knM8L?+exO5^o4dn$uENL_V&xEbvyjj^4M1pgb14!HZs z!7r#{7EaG%rvR)2hSvSSr&!weRpomPRI!DRE-87`@3Sbg1NFF-dZ5aKx?q;*bT|BB zzCCrqtG+#6^=-A?|9MEE?SyWN;)USvZwA{=ycf*YFaTgVXVktI;L6@NrBr~|DR&(z z9z@|Cr5;hI*rJ|Kik%1isc{P(cJ>umyYNfpx889d8kyZuT4+1H$+q*hkn$W(Z+E)O zk#{llixk_c{5A)ThOd)jF)3TzO+3g(JH{pezRS2AkEvhB+4LHmO+yVowZSb|ob%SM z9KX5P_%u9UvEYCQQstS1bKZhQCI#-bMJoJehL1IRQwfdpm(u#x?(lzaDn=LfWK9+ z&HyPwf8q)rt4e)3Y1e+bXuA(MJwt@BBVAbQgQ25Z4o)nMGR4!p~3`m(0hVBqL zzRrIzktFq>q6_6w1?CP`^Tcmee^2UC&=nY^74R1mYH_~Q0jpTmSikedo%pU&M{-Ym z2OUS)A2U(r<`2-eAX$1)57;@f^v5n0o-=u{u@2W=Rb=cW?S_vpXO7Fh+feYUKE9lb zse^ zc0RtG3-^2FhmWt8{8<`8CLq*mC&9UJnOA=H@zqiwTPx7k$Cq>AIIjXMo;~EBspW6$ z;9JXV6ZsX(2IcrNBA79Rb30j4!k1wHW86TEd z++qM`Ijj$aRv%xk=uQ9b<7@i{#mASkz@xUN`uGy62C4P*W$#&`Eyo^0GtkuVttIvK^rdOz1rt0%R%C1ve`;>=K*+4G#`J|`bK#&$CvGPy?{$>TR?aEV5GkvCGF@aQO>rG zzSJ})K-3Q{WUpG?BiZ4a*TsGGX;r`;9jV@kM<1c`YAK}aQN_F&qw)c&hK55Sm7#dp z^>)SQs>P3dt|~}Gr?aE2FqpP?W+-3}Tv%?E zZ-UMU{xb1bQ3p*5{8q6R#U`6BbdxRUIP&J8OkT<3ybd_Bk(t2a?idMVT9g|QKb4VV z%?X3rn8=-NvF)SHCPz9^S+Ep8BIYfnPv&gDZE;Tjfe}{1yM?SI0m>_5s!Nr=n6ral z)8{yI{7W!ToFm_E(y$K09l(=PyGcFtJ7mi4CiSx&TfoFXRRI=fc3)gftHKgpZk)3n zgDJm@)@}SkAu}H!SX%`7R4J_FJGR~8d_s8>hk?lXGPHad7U#5cfLV^^g2&jnxBs>} zXKySG?bSjZ9Jrk~3ssFOGTFyaa0fC{5#!3O#^pf{PaMK)xtmME3^^rXLC1NS zmvTusZgJl{xB3pf7a~PxRF3=bk`U@h62d>c18u7?=ygUmM}K+=PHn=3rcdt(*#5tp zR=tC*iwDH;I=d;ZIhxh=SO!-{i=(r@9&L!yt_X}8sL*3L47%NOlK7T9n+nhpngi$Z}luQ?HqcSJ( zt7Ra(7vO;aPvR^E{hRz?=oR|vbz!<7#XZ{{!2vp)fi>K0<8o~KcL)tPPWmi4cT5+I z4)+H=&R2f`7j4IcdW3@zzKn1%!VL(AB76m5TR0-Hkg*0}DVEJ$p$*NCRYrJofyLE* z60}Vqo`txQRbrf3IL!Lt&}mWreDNDovRoI6&NvTEN`D|(f9^GCR01HvLHKR3PuGRk zLC_%W%DKJhz%bz&!r_jvCxtVsl8_i67!X;fWsJ6m38$dOf1J~-rmn%pF*r&d<8!eD z@A0%W$34<~SKrZv+ItJWc#k4r`*3mEYw&3ewFR?KzJpT3q%<2afyj&D6`g4p7N*XF zo;5-YzLOXMMVG;jd#wG(P9d+ay#^xnBi%)$kK~q{g^*HwchbfsnEs$nE2A3?z8Eb) z6z|`0fb&?K2d>(|#CCKS=h0kTz+0X3zz_KQ*b5;1s=O!Izf=Jt?Hv9NvNyYhWp<(Z z6&UX?hBLe8?E+V{DKa3TL>Is=g5k_A06wt;Qc*s*Ru_=)@ty#vtmMSF-pWz5VWBe( zd;ZyY&XPR=UIavw6NA3h)17FtH;U<(_J}P*dKL1liWD(~4@_do2;P`!R2~+*J00Y& zMc3e6Y7Z&I_Vyk4sOIaM1Vs=EL9e=zM(CQ@9x9*5pEE?vIn6tp!$0WIN*n3U+_lm;*mLH6L1}@vu^2A%#ZU{oLXAU zyF#|0uwwGp&lN+7QCKwrK0+H{r+*qWq90?8=$J&?>?y&vn#u7m|04Kq$_>cIp9z0v z{ADr^ty(VBR$~M??qH;VSyyE0F0L3wpY)VUZNV4#nIbInIxWuS${MfaIe`t*gGpXr ztaiLFI{x*!+-zk$0(JY|q4gN68IDLH+mQy6q4mZ_p}@XMFk_F9kpi+zhzdg|xk1-65 z>_KX|*FXUqFT(Ypz-tNxS^*DrqToL8#s&s%Y`_k7kFd_-Ts=s`9EiWBkQ17wxADEA z9qDhQe4fR*%%uRHiw9lL3BelR$!ddj4vWqC+PHQFZ=zrvfCiz(+bz!bCV2r2(+UES z*E+Q;*NnTmn*caL0r-RhFjNJ&R~b7%G!qPY!MmId{oRCu$I;SK48Ae|4px}Obz^@k z;Jte^z(J^Bt9Jz`e+}iWtM5Qp6n)G9Q3sgxnbVtp!AMa0`y#L;_5td z_4`8aaL@b4l{ouaIpR1oNt3mo};4%X>gyUpySpte+phT8^;{bpxlHo zKY!SSFtUb2<|dGTq%_2qWXMr7;tWN}Xvk4B202*3u6%5Bv0Vb!?_y@Wb9rU=)f~o) zF(8hWLy7|z0^QlGp8K*5g2F5u7|t_|U61*5wyMUbytfn%jARqdIH3m{>=~jG=XS6S zfxe1VMj;+e#{DNUA=Tlehvizg-l9wd0rYXacJi((}wInuUMSBZ?#rX8U(pxZYi(qGHVa2Ypd7aQm+MG z-;ZfXQJqFz#R}!nZJ=7Vt;0!>LZak8Qn+pDoy|KjhG59Y;#|54-@*6}#djFKL%EpJ zc2z7@r2JiLJ2(TJAaiGc3mPChE7XqA@3V*LWYCmdRBq=54bz9OA#o_l?kSBx!H!jZ zkToFa?ZGtsseqskC~Y6BI;k8BWqa&Gkcn4OIC%wfY8(zDmCo`(T(B0`!OBi5QJgyo zEUdTt(8OpdJmlad%tsZgAYGX%##Mq56LJ+ZAC+ISkIH~Nw?lPrj8$R| zD>XX>_^EU=BbN>WGiIY)i`TCYtGxYG1{9!7zEfyc$|%0^dJ8uAsl;m1c;>w6F|J&ewAwe%L0nPfdYWQ>sK2f{{e>0*`X?Pi25r15*6I2l8()1^|W*FbX%@8UyUDKsBfcys-Hc!9r*a0Am0b~t;lz9Qs{8R?)(}0xyzXNH3 zF&r>D0meGOIH16=LH@xRX06sIhcqAu{_jAxW7D_&Ab@NDkaDkvT+?7wXfVnd22Kw& ze}%Ze{ofD8?F#^89DtMnNL4EkkDtnb;~J2v|I!efvP-=8c;AlmENTRhEdb*10;2h; z3^=6$ar_q`{{e=L_5;WY0ND;8wO&9pKa~N>>rjl6+W$KcN&}2Az$gWbIxiS`1vYgo zp4VDZ_kRbn?Q@HB+YtaM1CV+zAex`bfXf<;dT$uErvImY-?kh;CId(gfHZgk(fm{f zT+x6ucmw$lFl_gb^V_;voLg@INFIP(^8(_L^GzC%YyV3i_kgkWFkq~=huPpNxG|vF z3y9{YGT^2Lr1}2`5UdTh_C-UifN{GO#%@^~iq0IHpv+je|L;JyT(>y4R0GJq&5feq z1td-dBKoQg5ruofu>J3*-YshZWEOxN01$sKAXyp^Sp(vKFChN`2Kc|)BObRzTAZ8j z0LUQ#3GxC`tN{tufCPC1!Qx}+XN|muxcwjGya&eS6R6*F8;eDYZS#6;&nvuuwR+!l zZr%ih=JQg?vr1wGT3$9;TtX6%4E2;#y>GJfO;ORN(GU&wAgVgwRFBO#jsKK}+i-3M zAOo<@lRe8X2H*|U;&h)?yl-MTR=wTheN*HYcJRI_Mq_=bT+Gz!M1yBZra0dW6Zok` zBG%D@E&6|ou~U-yC7xCG!D~C;NG^{vbS$)e1npk_>wJs*Yojqzbg=3@Rg_ARw6Vy) zBU$@PBm7=Xvqu;TsH(pduYdI%UF$Cm9bsRFdm&%8NMtO-KH=`|B*l}X@QR`VWfopJ z#?4xNQt(wASmH(Dhd)CLDKkcj)jxEOtT9rQ-|QofUAWZP7b88=bwZ>aHtMwJlqLn9 zJV1&VYHj3iY!~!cs|T@eJ?FFBEn1FaWo#vO99%UDxA?q&+vQiTl$$v~8mP`s3eBz3fHTd&o~=a?00joX%`qJKTL z@?H_TO3;iGidM}RVy3xb60Nglz*Hyn8rN{&2-&D3Z^er2c>5UGFSWbfhzqs7q;yZJ z7a|ENBJihjxAYv>Z|kXHhU3~8>nv>SQK{wb_DwBV_O+|Lu=SjVXQ$SdZ$06`k^Xzj z$<z*98L19Pcu+SitP+N{M*_C?J zx~RSQyGu&kXuPO@95-B0ZO09V8CQ@nG=3Wo0YJjC!e@<+g12d4qCOn=%hJnJSG_&wK7tqULklZ|=;tQ)aP5)EvZvLM}_ia_> zu>@`gHu=NZ<}ft1|Yx4?KOrx)Ov%i4UMG*X;i z;30+jxJR=u@i=BV!1dVXGz%LH+T&KXmgsAo{ZkI}3zsdKZ7_lN)cEIrQZx}uo;Rej zHswe=B+Lc_{W($UKE;sAwqmRq_wgKNFbf+oh5hb!yJ~B_sx^C6drATIydmAIS~Jxp zN+BVJ^tSbGs6f3XWGKLE;^N`b7@dLMA1)2<_Pa1Jt;d*ZDA#8nV<7i%DY^5Q>IS0; zN0yjltLN9`lX-+RF}X%|!@e6FSSpH{P?yD3qNb#&ulBuR&xvMSM;hR-17S9a#&uK= zsP?ZsGeUx+r0Od2Pm+e}VW=cEN$L@joz@iLAHyP=R~1lOfWe3CK~#_=&FFff&c4fi zrp29(Gr5}TlcWgSiH3Ys>=nOBJ#bPF;z}aiXDrUx6?Xh$=3-$Io|*&Jo^ztf;v6_m z{XWTv^GT|5V5h}}BfT%mVuuqu(hh@(N_-g_G3TVw;=EruF-xOm$x>vY->2z3zK5QiiSL~nf~<>R$`=%!1>_%)i#kHRfMC3hxIi%}QooP^ zI;5$HtMwP5p5c_2!u8wn-HA3R-z65O@hVj)-(~ndL6?>93Vd%R-&D@;z&8|~Q^D&o z2E~{*<)@+-)~%ybj$D^ZrVRc~qNY^o&5+-0bo5X;dE`j69tgv8QUM(riFM9zPEh?w zX_OvHqoJcvrY5J-GzzM+wzauhD>GmtzzoNI>rx#cJFsVO8pe-K*1FpHY2iG$09%Lr znON(^y6mtkXoq6LD!!5Fdk)m{_U~(r)gc^J zEtdqqYq3Qhbog`s$CQlyR*eNjqp%}6|)Y_IfNUCg#IEv|_psVH3<1(2{7X5_NYvf7eQ zBXQt6rrJTZ=~Cpp9CHi+WPHCNGo~7sem9=Vgmp=COjA!`=#5AHe!TIV{>K}oKF057 zPD{RV{82de@)>#~-|w9plk#JmdiyT9@fPCF=-+7)e3mqg>iC{}6$8_ifA5Bm7FWhB zm%TZ&sjiM58ixf*GYk$&L!(~x8LCuoo&EET<37)R|B?R3@4xn0ayJ4+O9a`yyO#bq zPKpjt?m@72bJERmQWSc&`*{3BQ1WukBPg9s>XrEFCY!Wr3#t9^yUp`A^S7 z&;&R2ih-KV^@UDooV&{wElhzfHm+!lw$du#`b(|mPAD$b1mj&MJ5~TgO(nXa=}fTd zz06n-U|3F^O6CWo*ohMdaD3AUVF?&e(I~iaLV#nnnj$6tY}M;5)TM{sFv7Q9Z~s`B zUyFrWLoD|*=ehCw{OD@18y$Z@dP0{#(Pk+H#sqR;CR+crnXG2%>4@qE$HD63%)DG8 z31bnL^hU@0YJbNV7~T$=Ann!pKMO-axRhH#CrkW8sBWS(Sl8{SMH;2k7sG!p%Z}n| zmL1WwAwvq(5A&ze3~=N#cPL>JX!gumnmI{&UjNJlHS;r(YUa2Hk-2a_r9Q}P>rZ+3 zjUC&?4K1;zQGb1}X>{kGEv~UTMhwkXy)WUGM-8JRDjt-gz@t?EpcE0Y$mubUV-^-I z<}nRx#$}2P#xby)9sH2=w5^@p?7M@na$QQ}1&4c-{WAN{@U59&t<2dRpCdSgQ8}0G zAA;O90X12k{J0s)gFhwH$TEk$`pfF*4+Cn7In8YLyVmbR;7 zG#kk^;v2W@r)fiXn zV`OW;&cB}~LzWaT!gI~z?5tzp0D@uBU@FLxM3@p+BL^!hOs(Z?fDE(g7lUX^mb44* zlA6XGh;7<`0EI_PC(~2~+t1fh&QvK@toDV2z*vAm?y1rm;PQDV3V%e3#@FSm{M9=E zi%f_P=j9VrfP`p#ZN=jUR&9_maDDBeTT5)Og7~GdlcwN&c?eZJg6AQ_HJ^-0uwrUP)41HY5O!OBEC^E;A0l@FR67k+`@yM96MH&a10Wy zu3qOU?tjg~yghVfnlwfaCkipy=;&c)D$bUk29ruDzk;Lw(IU zj!(%EgqrKs22M+f6zW!*gnoBTgsa$EisJ0s7 zVFLxvM&}GpqnWb-ApTb6f!R`^PCt7HRn5UE4}{sZInpqlPFEQ|SDK>JKX#A`=OH4J z_RW)C@vE+a2c#{O{)9B4!!99n+Io8V32CZsD_wg+8Uiz-FxA{^`rOJ{+Uc<*uW)1TV@UPUoYerv_I#=1VW?^wpu2 z8Bd|DemF!MP_w;q`vPe^Vr6Pr2zH6MN(qakMP2$B=QywkKY7{s(Ff^fVR90cFTx|I zgHx$?5xDnYBsmvJ?`g$)(x-*etNMpQlf}}?KnJWbc?v#wqtdxpf`t#}_odP+`rWy7 zW~ub8e%G?fsv_w{ZTLrc$vJp7!zMTN!Ei~8>8$XSd5 zSlv(=x}3QT1`!RFhS0 zQJd`jp|A1-!l_>2tq3Pt+*NBiAAVQxcA4|=DE90N5uZm^tMp)?qr4S%dKap<^5UU^ zd{;={Mg)#i>p03U(eb)P$9np#T7s?k(bFWa1Os5VQsz%4PY7^iik^ET;Z*Xk>ZaL@_aSfl1CV{)He`kTJf0J5)=exv)C z{GXR9b$AZ_y!4q44ysp6yD?@EN`xUN2&)T~&NXO7r@6*CAHar{+8dPcg48>0o>x?c zSx8>59=P}vSzKE+Z2+Hq`*XU)@7*1LOm5)Kq2C}5vlfcQ<+GkjUXWhUzqFh}e}e(8 zKL>MA_?YY?lzMl0 z8qH7D(3@!%Moggc7f~b$k6d5E;$&D~+WwN1GT;@U3=_j1o*LebQBDDBo3HUS?Q@=u z-dS8FN#uM93!Z>TvTwk^K)=^+z|dT~zA|*9^sHXLdOdCV9qN7lDjml!2J(m3Yqrz1 z-$CrhH&9#&=4;3HRzL~MXibUqOeaO1jTIo!6Ak3QNgAuWKpC5)KjuaNv$EC#@fVT| zDrO#z-xMhrH#Z8YDJI771#Qi%Z(fZ!?qeo!a;`8w8BSnu?x~z)B(D-o>qiR_fOeCL zUY2I-*A1uomofR=BLB_OqOi5b21r31YiZB_f*`Bi7Wd~1DoZv?U+HuZC&e9ueJt+X z^aXY7#;#ccS&p!{7%|wyE4IyzZYO*+nV9=AD&gKds%i9RusxRb<#MP0>F)h>EsjPvWBO+ohHIRktW~2VUdeyhDy1(ouc!04jb3 zllxB>=*lb7L%Li_d{r9J^`B`Bh1HGS4t_K7-CJaRRr-_uyQ^d_l^zqHUdE>;Xc!o^ zRGQJx0h3oAuI$su*n0ZCRnk4@qJ*8&Lj6s=-Pnn_7$EC+O5f>!yiT>dq1?Fz4=cG@)qP@uJ+iY=JC##~<_lkXm&X|$|X0+qa z0OoTxRoiFjQn_)PXM>zbw>ZD;M$P*%Eq#jymhq7Br;;*hcC0!nf)O*ooaUrPxbAyi zog5*MvfOwbk+erBtmfTQ_#SC|)VGnVS8|vxkGVV=l%pJH)-eWJ49HJ%>7-biKpuEqu*p7QzmbydR`Z1HrDe zCG8lmD3G@2VuiH5#(G72lNQtF({L2MAE#$uU;TG7UP)5Pcr}2cUx&oOqM+z?2$d^m zsp@sK;;E0h`BU^yE#sE=(T$_bH^6;QLJqwlJ(?Vk zV$sSn43DE^?9>{_{(EVLe%@)i{Ci9UU)`e2L(*^c3kOldA!(a_?rAE13$m=?bGrN% zI{dR6l=?P=al_Qgytk#XxLR*u!>atc2T0_TR&y2D_q(^PjDllvE&DEuA%9Y==u zrJl6<9qE4k-+!Rvi0u0J{on8DIMlvUrLx8O*DjTz@AC5Iubs$HAw9ys#T9@d8tHt6 zG`_1N%R^SI3F7QNI^(t@Qul6fxZaWi&XV>cC6!Y;?e|Ktll2G~qw`KGJtEBunKwjh zW3$}`k%yH$j0*Rn(4#m;yST#sIL0mRUpK>qow9^+ehLRZN2Q4&p9OFS*n0``=8-VX z3XOUQ>t?Dt3c{X;hn%Be#*VPER4I)T9WWiK3M(qEl%l$}gn?ziWP5}zmCCI^^J}2# z$qF-El~P1V-Z&M#4i4@D9)%WH-VpMw!twI?Rb;9{SDeFfLzOhK$0da)R*h6ohBv#s z&~j8^Wd9|Nnv~xK6nYF}WI6`^F^r9DnB6{xu~ALukD=?baXk7SBvM5uTK68a9j;j4 z$L~cv*n1DHy10@1aEkt75{Jjr-FGDat{1Lf$`d75qAI^fTKBB@jHoC zPoD(JIw{4`hL5B-Z5X2K*@c;}VPuZbVeLy%32noXYubei+J&v{!o_XFQO0)R)HY$; zOHqk!B3_Czw+pAY4M$#S7tUxKHneMy!OZA|iLuLy)AE82#mg4>28%iD#U+Jy_-h1=I}Xic|qpGO9@MkwL- z0JpSDZ%=`ucIm!t!%;D9!;y6@VVlBqk!39rO4x9-UHEp}aAbPB@Tqp;L+!$$?ZTy= zuubLq$Q)0E7Cz7}ysvFIsvX6m!rP`twrfD7scpK!Q@>3cc7}Es8_L@jh|F#qjuP62 zBNN+(4Yh55dE+%_DA`}NvSqH! zX~0FPju!k?8bjYN@tr%cXvzHCg-gds!H=gwaCMEa84XC8ou z92)qQ^tMi6T7cD5vol|s=bWjUr4PzE9$(y_6*VCuv7Ce5$GG%V=ocv$QHEzkG zyt#&Fw0aD=Xz@M33Bshgd0>TKPgfh1K7VOZ?!q~9L7M_w-aRWa7zP>gv~2gv!0EFK zmffq-8r7!EePaHig-h>In9Du`)>yJMe{P=bo*6g`I3;)CJ+U+3-yp-h`3v(5b8?I3 zPY5R*;90q-HRr&n?2}{r7z6*CkKPZOJ$H9%ypkd*{*Wx<^hAv}D60 zbC(n)E=}&6XHcr0ba=cUZ2AArH>5HGs$)Kt({D>leJh(> z((xdw3zYZcvV2KrIf}|U%XW$mk_&<#-xVb57!g58$DhIdOa4sS7bIr}Kc3u@5~rp- zbB6r8$npB(nPluD$NDXo;q~bdT#CyE%E^;u+R{ai$$o4}OSvGm+~#Qf2IG(aaa^MN zmo{;sh%>u?d4VaCF8JdA;6PKCw3YY}4EW1K+6F4?D)$WF;5q~kwFVC%c&0U2hhP&2 zBShh*`r?q43wQhM^4-~?)bG`fulRqU*V=&R zhOj~f+O9VsZ`FUv3oP{+?q6O!j=Tq;VntIM~?+*v@bwez}p1;dv5Rr0anv#TA z$$c0aG$MX^>lC1twu4rpKx+t+gF|P$(o#vZ3a)$&ekLL2Tc8Vq|EHWlR0n?i2bc#oD;QB-Aq71khlNjD<)N$E zea^5e$diFa&-jvgxvyW-KHNV!6@o(ZN$y4C!sIT}EdZ6Ta5g*ThRNe39m@G9a>S!_ z7!mq_TDl!3Pm$z9f*_sZgb+>`PA~S5dxTEi+d@T93siK5X5%-L?Dxxt(5X+hq?**! z9_T_{1G7*xY;MRs^gXYTvxl5^U)DKK16VGgo&n*M*;DQwCL`z%u%3UMoauJPILY2q z4(S08wEv!NNBU(dSJKb4OJ~}ZyPdruRR$$W-8oYoa~K6xnZ!AoMQdn!d+> zfh6dW7>oVR(=c46I8XO^az3-tL9yFL+fX0$F%uFG(mlSbPE~NeAbhK$sot-Cq`3&K_2R7DM98YGCcrs{eeO5tbZ_r>X1=k=&7T#~zDsBBz<_(Ef3$Cb#p6ATmVBvCKCDQ~KCJ9^9)J(k}t8a$q<}oiujGIr1k{lu zT7FXhia*8mMIXKrN7;SlNAx=dD(@?g@Y^Lbe^B8B86Fx&$$m);U5(&&D& ze+MRW*0!GL^C$Yr_v!ZrleM2bR(F#e{p9g}Z~7y-h^M7sGW3@t^lzqp2TPV1iT@(f^&Xf>!6(3&$)n27?ieOLf?NNrg;bn?S8&{=z)_6?Bx2UfV9 zA0G!0W)JXSMl$w$zvE^bXg*Vpax$)UnHd2EMuKqZ5M!mu{4kCS_IKk2bI=!VsQ z#2`70(|zIXWe}za0M(;p*L_ropw3LCgXGj;)5I1`0iQALo=8oDfKIR=bUH<4saUJc z!#Zh7yga!3=sj(_&@~7E;Kk5jlKXVXaJvRwAxFGCQ1l0uRiMlRkE`-YIN){-E1~eg z7!i2Nk}+5wESga=hx3@#fsW;pE76X~Y>ph&GSGF|h_66=1;-~U1HDT+0IYMnhNlX` zeTu+TMA(4M_qCBo`31GSzbUk-}|5F+EJPQ{qqrvlFObDB78QjY|1< z`b;{*=`;Md4U@;{A2n0@Fl2kwLDpgNMEzsFT>Jgx9wv9x=QopoBJw`Iol+B#DL0#n z5+NgI%T%uXmQz!rJVl?khD^idQPMo-t_^5WS~IO5E)Nbiwl2j)x%kBj@s&RB*qX7(C+n78Wt7 zbv_qN75B?y{H*mJ_UcVNjTq|oo0MQgqp&rz8bPAU&9&oao1T^m^mAWI3E_lhE*&jpR&1fzA6UBN+|fYNB*M=?l^d__1f1zF@s~hV1y( z|1puu`M1_Y4gC9Y9tDk-$4j38XkZ;GHy)zg(Q?6k@o#z1GOB2OkxdPwLAakbP`C+g zY~%r2NSTwcbPy`suEsi`SB4tyf17e2#C{i>Dc4sfOmwwWl7~&v8?!MdTr@#;U_5^7 zOE*pO1O8SxI*mbJ)8Gl94R#tygX6AxAZrBq7ZbpnAfP4_@>mey=bL06E0662389O2yY3zbZyev&Llul2J7Py22?inF zR&uUYQmH{>RG-9e5C@-SLtmb>eR=g~Sd))m8>=>UHH zM&zN};?$)9=%cH5-@PAE9SmG1l!7K;mzjE-;wH$+e(5qY%v2Ye>nF%v^y3n#bi)5f z+xx&(Rc!CWbN+BZJseR{kx-9HhJ}hshDwTtii(O#iA9NthDAzBiHaU7GV)Sl8Dm97 zMafM{N>nl`EGjB8EGjE9DorX(GE};uywBQe9XNfx_x-*1{d|9X9QQNNUh{9wn%T2w z&&)w&QxkN>4Ey!A>4_*wk&c>WAEGDC#0YqLwT_#K9LGfJ%$ewQVvbPGM|7J3MHqw6 z5j8xXgyJnN?H6W5Yrk2LpV_J-XJOPcy9V``MOg{eh0%6zy=xXazxhg6&VoMX@6gS& zko^2(+AkLV1*zC!0sn$>okaflFr8;yF&K+Qtk=ftCR}aT6`~wIx^@7jD!Na%`_L2H z7S?`YVY-f;jr$2Gr;4J1{7{=MxBWsw5b>9FDF-Zb-x}f@hER>5sz9ZZRxZ;c=b%Os z+H}MmsCE&eH9;G&BJIKr+w}!dY%5n$UNpurZ_Pnzl45jNoITLy4b>;5>$o_3Utcs& z?^by05g>&;cxhsc6aV;RR(YCvqkTcBHMA-+@+jW<+_6wMdtR<1P7$!o*oZ+v7=h1b$PMBvO zY|g+_bRMF-Ct26dgKqC>&YutQdoiq?j~MTbF;r^UOxk?dOm=|IC4uZ{U1D7Eo568V z#Hsl(i|pe31*nhBh>J>Khwe9LQM$(9$({@^=0Qp1{uEuZ0Lebok{^%QwmPwKg0A5@ zDjvyh&32o2fX<6YvX9txNxXgR&>itqPh@3^{=-Y|N`6YA(tJ^AJJP`>vngMCElhbw zk&d_)2|e4YbFW1T&jsre;~F9Pz83j@E+_vw^mxx_>d5P$n-}al&A4Lg!*%v6^e5M$ zl3yr+CZcrQL=?6ign4HLewQAhUc?IZN$3@qFSG~QN|KR&Et}xZh4#Q+eXn*mdVkzO zZ}4LSy>$0>UHGvUglAtz0&x(i#MKy*;YxqRr+`NWF5rJ{4BvPHUdLT;@6)Zk7`zji8hA4e zY%ewcfVWF0^?BFZy}KPqK`cphcLNP+`*%A~2qJ-qJB;D1?tTM_)q$-h_7*+p2F&8U zo`zhf8;=FO>;`m?Kl(tT#+YKzPa{azifqhwCL##lyk#EVaoOL7x|O}zkit=pnDz@_ z8f5IUEIiS{1;J@Y#{dK8wb_L$O{iS{e6={fuFb>1F; z_O9|Mb@`(zjc9N07mur_3BZcU1b%ANEs4rWImIr{cl15dS>5bAKUFORBr|L4cm{N{VNBS5NustVA%j6#&{`#r ze>R8Od+4P}_P+ShoefF$k>){|)SQTc(S_mmUi$MSRL@{!-PFddq}viSz+kHmT7oCh zrA{PL#1(nx5=dUU9Rz9?JsJ%}@NuC1(gp+$)umS>%0o-+!QF<|fG9_%`}Nc3m)M7y zL*jJE&3Ne_k)*S3wlDBS^;lxs+ec?XE{uCeC>~QS?PId@m)aL}scCP&3a!yp+!3oy zXDr27*B>ji!*t+uI{kk(n4Hg5gdSI0qCmqqdX6q(6##x?@;EGws%r_V%me zbVRa!j?D|}y|0PVxykl1Ua0)3@wzJ6zSygvy?thl4q0Yj=-b-fKDQ8$hC+(4V~VK1 zKDf-@$1ASAJ-$)bFSF0}Dr#?EgeS&w`vk9J?d>;UVr#iQR_ESk57}?O)gEHfS%2bN za^h|FAgeth`A+$Ojwo|h*~9h0tu}w%yvjbu^+%$z{E-A#1y`-ShJceSK`^WTMd$k8jO_nMTv!VFzgU|8J}%e)t~&qg47mPH>8%ehtMDJ93rxb*LV;XJEij6F$@mZT5a=XNG5#YtT$Bas@QOk=+5is?IaM&`=Z@jp z6?asv-023OqA>QN%-MtRA7TqgBu|ofBFR&M*g|lJBziQXt&v>cHe7o`F@~oe*Isax zg}#;KK_QGgh2+T-PZq9y1MnZp+c$wc8TikNYZiHSh^LS|<>IL%Pn~#>PB+!JMSN}A ze5d`2#B}x=#R%9Ay}I2DmcW_Esd_3FtciS;^FC*;&G>2wsO|iR^P=FnN$4vb%x)@K_t^Km2RP)yoG`#d4>28Q@r-UkZdv>rDPP3;-^1T8~%eR?m%=O^+>^R zv2ey;HvY%$t_D#co-n#41@20EQAem%K(0$Y`5NIO;i8BEuDC~{xQ?O8oD^V9+NR-Cg5f$ zobgB6L4+!ge1&kw^sx>0$DB>%PeCq`h-o{pp`j>T=?+GAPiET7O@$rNM(AA|?O#!0 zmGvLt%9`s37pts!iEvmGf`f9bSc75RhE*-w(%`UDeH)%9+gg7lJh(DAXfb~WTn*e2X$MtP0$QRaYRW$xRo zT;@JUl)1N4nf+=z5;BLTz#jq^qs;x1|Gy`+^Vt7LC{mf{A?~_x!6h~QwQG9PGB<_gG^ zK{HgRFUKOh*utm^W&RlnHsO9#sWLbEz=bIDFE!wUmHAi1*%%2I4i|y&E<~`q%p-y} zW$}(umhPEwb-+GwesIys(#5VUzJx>IoN&RMfmZ@L!;el zm#ZxPS@1W);dB{46u`yJ;NRAvrF#p6!X%N3zpHk1wX%E=p)A#i@Iz$sJtTaPs;USM zuMWqLD9c;m$_tg{qs;$Ug|5FhH)!LHaw8$@fg)u+kgBY&!@^$=0&c`Te`T$xhbx3j zfkSI}y%nw!E(;k&6^@Bimi7Q;xzMbv!;rai$lN(-t<|oqwgzSOO;nciaOV(bNN^~E zAkjB#4HbF~%rhb(&TC+SanEaDvBAMcwvD>fg66wzRR0BDW6&0+MJQ8DvNA=tD$`W- zaZ~XF1k-V3S4 zZ&*&D&QJM+%f!`*YmTz~UJHy8o(hs^>nYk-Mm^olWm4A78E`w4x+YRt@6UxRfeV4F zf~$qAgF6P-qO3V6dJcM)94A~j9Kz(p!a?Ub$&g9HH3zN`t`hDDTmxJaT${2!5DXU$ z2e}8*l-2bB5`Q2YE)Q-891?$^0<5>JIg0-LLG4iFN)Ki=>gsxZdzR@TbFG^RZM z_c|B_*-W@pVd)7QYhbT~R98y%HU5|XIC3Ka9kk6pw5ySr5dk)m+eb{^T!)ObVD)P= zB2{n!z;;|oTT%G@mm)DitE35%MYm_&T*d{c)UR)|UorqMJYEOuJ5n~I9A1^Ba1G!~ zUm4ZiF^&cd^0(S`0R*iE8)&I%N=Ot%$Mlt;jY3U@@fHgHkGwdtgCN@j>Z z$ZMG#;;(a`LEs@2I8C@CI&Uv=$amHj;p%l>6$K84Mzfw|GB`lTJ`2I%XmF*%MeE4t zz|l#%SsySrEJl|$QQ#|_Ae)%H0w*1kU|5n;ciWf?OVXi-NN_arefIz+N4Mz`N@Xkp z-#v!8vCjOx_!OG-m))zoiU`JyseB_MSlgeo2fFUQeki>;S+iSl?;nis%LLv%6s1>Q z;V^`|D+E^n*9oo!Ze*NI_`KjMrS5SsF0uj-7VHCjm0&yY3izO9Th&tey725%*LkBd`2-Z@-HTYdmy(?^9gx@iAgV;}PcGav?EA zZdlg%ERdfHnWclChd#$QgOkb_-^^7$zD22Qsf_V0I+Nrklz|(`VJDR7C^Fy3JaA${ zk$JlQdHd)Q+3B6R&3^ad+|uykzG#kTawJ<0wa5FG2$#Z51MOAacQ12O?7H9uq=)vb z?kf_mS=SJU-ca2qP3W3P-9}t=l2V(yuv|2Z30fS#x%*I57&@zCxHnKV90EK>a47J2 z!C}CY1&4DjY>w+J*XELo%Qd51srxVIG-s6SxOd5bXS9KwDP)^Y`^6sQ&%MFSOx#(= zcV=da_{>U>j|y2S6>a_h(TI>#RlGoTBI*Ho;>>zNfSZ;QZuKADx&xRG{NG;6H($1d^vJvD* zBH3t|QP0^;;Jy@&@L3)CB35b7iC5}@dCbp=*RdZ^1atjBW->X~Pe*pAUT%!;1E(l$(S} zZnX*-BoD$2v9(Q9@eqaQI$sBvw~5nOr?emSpX+MCJtkZY_o?fP!AZxx zzL@*M4aifT^l=+vbs>e_6b$YdhusvMzZ=xup-OF&Ztrd^qj6Ac$wpqc4Pm+L2pvX( zo14K+W^Qw{P6BsbP7=5qm?P}gfeo^5J7mn|*%}A=Y?deNmJh7&ln<h$XR7aE|kGrzK9b|4-mQEq=rCe~wnR_W$?;!3~aE}Br_iC>8xq=G4 zCkNylCimosahDZ>lpL283c0r&GNCp4HAQ)&4hT-*kZ`(b`Qmg76_r{nga{*DKL zlkW9+K>q8j|2`x1J)LpsZ~jeODN5~-HhVlp`;}2#sP-N5P(7X_Trs$ZB~7#^lKUwQ zoK*Tx_(^NxPDFu|anOk<(|8Ut>MaQLEVJZpYU1S#$9SDc#5Br^7Rx=5z+Gnl5l9?uu9g$HOf1@?HE zaIM0@m>&N`xHjgRkg>;qW3EXFXI1KnzQSQVL6y*C2PZjfvg<5^D+0Gnh;V zY!j23S|`2 z>;qEXf0}*VBr2ugA(m`TgavO37cFBlnm{c0 zLdYD+5X~$Wvf6j(E@!wP9^Ix+M>yCL=rJfSq zoGsz3(4^s0(wmx}^y!c} z;DJAO_Uz!l_P{4R@V`27p|=P2H}Dlk_`=Jaz1$HMj`hGZJaD2eJzyU^qVTq4x2P(7 zT{^=&P}1wrV$x@>l0t@~6D4h+ww{?GT()pf2>U*AdU&l5BYCzh~c;o)#A=vnjw|spq(Sz&f!4rb0_PpX2`16p*BIiR%a5JXc_p z#ndlcR}e>Y-_O0xTwsY#?21t!O^U1Mer1xd`{`(Q5}spZkg?I#oBE^kD)M9b{uw&< z4MaQujjM>ef75_cok<)f+*J`jsWADjYhOm~n1)1x%;CU8B6U3kXAUU`S1cUiBNuDE zH#FzY3}enrM4M92hjG}5Hl28e5}B|aiG>!VzElpr^q6{3#jKy zg~KYu{UkUs7UYLaPK>2KZmcj^H9ac_U8Mq4~SEiFb12+l%$qPInH%+Q$ zIecJHFNkg?)zGLDiO_Vw3;dJ;W`*HvgnD5MM>wTk2cIKBOvS1fB#Y5lep!W7Fg2@Q z;2sLow8Ej)zVJH-p6bIXW2#o|>@FNO+ET8k`hnwlBuwK92b0>lNaXx=7?ory6uUE5 zxHj%oXkJ(C$e<;BLqilcCg$mq^|SkJUTg!3+P4OkkeZFwMx+ zweO%DGwQ(c7|b-IE}yD%CVGMw`GH`XiS@Jw2Wx%tPmXeCoNx(B?UL%8nLtlUgoUZ^ z3Klsmo+CZa+yQQ!a6617X2BA6&1GtqSi&q+<}NY8Ss0bRi=eaO!SUOgX;!?>A}%%! z+;$Edo5o4Rri0^Wohdfm81nbo^*+xuJyVW*je@Iqgj~|4Q-dY9UDT1AX2W_*PH`Hu zeRRTmNOyLHQZM-nSD`Ds@vJk=L3v*i^PPjHZP?4)P>^vfITvfK%gBi4wt-wPBsM=o zGd-bH^%9TcOa|VkW8X(b#kDB)G7qUtaV!v z0qD=T??|v>xr7(rPq69=gmENV-a(S;0B9aBE4ioDT^XNifJs0ped-qjzuVZ zsq~hMFzZR&4Z+~jIq(fwOibL3&{!$IN1ASo)AhvN1k){jmE~@V;Q^{?F(vXYlZzu* zFo|;bEptg>Y|lv~*D4(P2(ss-D5YMJnn;S`&NrzDoOGZ`#)upxNvZ-lUjkR@(2o#! z3Dot9JY1GE>O|s}?f}QLW~QY(bgseGf|CZfv{qLTw>%!)UmV}^cLBz(6IWz`i(omzZVTvwINcV&n5%dVwDzjl=9)O}%hn)IuinOStl7aWYE1z+mv9Bb z6@uF)T%opqjC|e&lX>+W=I*M|k;G;Af%}QM3_qPpT&6#`Hs&(@xpikID78nPPMHb1 z#*ixkH&WzEbc6A%%tB%ItYtE*mcB|1cHEl^PLz9Zs!jywdtWFxc^=%S+uy;Cllze8 zJv{I?-B+k9DCpL7aG!B>Thm#$SQVl6$ipBnkzRpNsd;r+J0iB7SEpk?LEwiWSSFq8 z!*0QcNswpuOb^#_SNI6DP&S8CdBjiGQ{e3>;BH}VdkVcrfNKUPecbkDHoNVu;G`jL z$5WQN(d}*Eq;T8u6^85`D-~2(CC8^jbPdI~0~#zl!rYD$-A3FKl^`L9^MC?cOm zBF~qDYG>;Ca<-lq3b7L`h`AREjj`9ton_$o-N;1Pos<>2aVN!?lPYmSo@bj(gx&I% z=uUaYEKif$<)p092bOaoKATb>> zzFG`+e3AuD`le6hON!}}Mx30}j{|?wsME;GYOBFbX08^)X?jA`qO=wAT7e%8!rVHz z25{>{uEF4X);5ECL^#4<<$sAs{bAJZ8xxp59L@dl;aqS$7iT)0D;&!5hK$_~*U?lC z6mhr(!7g#!g{U_&5IG5}5nOpZn1IRB)om`c(RQibB`dgOqo+`g&H` zx53~QsU{uvD;2sW3gl@fTcTu~c?Pxmb~h%^`03($l5F(>$up?H z^cB~bUhgyF?b)bs`Fnf+#qF;Z>AoYQ&Q@av5wZPg2bsu8{Am|k{4*4!3`PG8b(66m zd0xu&XRNONmNN5KCCD-k{#T`LHOO}4~P2+TUXf29_xMqFukoRgATFx|EiTnCT3K_gGuN^wvdWG004g zGoV=ewIT6<5^x2=mFScPaQ%|NRWR2t$&ho=g1z_Zg(GdqOi(W?;W@?x31g!VrNw^g zeQ%a0?3T9%bjlNce@y4=>-%w?ucq(c-ih(>*0)=I{YR?zw{%v-`zN^~iXNsIIn}T% zrK;Jq&0#nh{CkvUbRM`TI47g?bO~`|OTqEz+&s3FJ`6xTS7m_wg9We3(Dol7I6gtC z4+b(fK0!wkH=!2Xbmk`1($_o$jw}GVn#srlT|j~~v+}_X=B~y$E5uDiZa(1IC-cNS z{xC_a7}W3$?RoZ2c?Fs%|KceCbcmE5_Qr$c2Q zy}+TT=h2Kgrc9c^@sj}SKRGus3f!+Ohu>EY{Rwh2kV=iTm>EdrB)FN4;G$S=rty%4 z!e&8>HDWoluyg${2+nQ>r&(}zvu;9!J?Eg$uc>0rz~5@;2|QBgRw(uHBFw#9##ked9_+NsPdGz$j$j&zS z$&QOV!+FKnK_X3NUNM(tz8^Tz&U{R>Q2F9fHMMKGEb$mU6Spu991ot%3*&Staf!%J zt@MP6__9jeO)${IP7Zq$9tOXFOHKnPHJF^HqYSPE+(DL0#CFG9H%cG! zi0bG=mZdB8=`jwoEM3=9Jj)T!XAb6;x8#%krnG_L&t~QnOsx=iJF@@Ty)1TnoK7Nc z&315NscW{g?carJ{EWu~=DULVxw8&j-AoRn>JNF7ogN&l8w)Lv$^*s;yZ{eL0@v*_xIA8>np+pjI%otwM(p_h=P3 z9y6IAtEhkBvjt#3!*UXkEP;C+IlfZrD!&DMY9>rT~tb(L8E zEr>;)Ku;Db^;M;$T`14(r;zclCRGRj4(>VR_G@{PKNrQ1s-kjmVthsAIvaAnWhvlzsBSLP zb1}Qw-B|VhwHRa>Hknd|Vr9JgW)P>l7fVsmBTmGMdG*a4;eg#wbxRFl9tAMw=P_2= zt8aJ;4Xf^T`f0?AmGiaWSYrJtGa4qboew>i7AB>fH(L#S!e=U;+PJgu4caXmEHM>uD^I_<(zE*CgVs<$2 z*7{?e-Dv&!&MxxXJ|0+JD$5#``Zig*#b#jXI?GytKVp6_H1e%19o=hH>gWjJeb|tW zF6lI+qx+JB$3_1#sH#RgsgWj@>nQaXvlZ9;w;0P;qb{4~I*D95L$k3gthrIJAEe_-1GAyaBs7qfj`%IXYf4x!e6Nd9=w~s@MlZ>0tq$9gY%03 z`d$O&e~Bt?NaP5K9j(^o z2tD)r2&KN42Z({M%7$9xPllb=5ctL57_-)nCn4;uobvG``h0{JqfBs;n-iHdKn~Jr z=j?q(d|%vI1wVATxGkTkSL%m+j_gD|EmuX38+}0TW3tgl#`=xO&JPVj${IA<4x)av z3K`BSr0pR;ju0+FI4I`F>xGNtS6y>sBS;wuH8#?eEz*JOGh1BpE?>X;iE>Xw(cQ%~k<2xJ6@r61G?;<1B@$^nLAFsYx&2;9$Pcf2OxeSSE zwaHKJd{w#0T9BzCSu098=>sx{$&)_rMd3CFHd&~jWY~DhZah_boPX!Lg)@t(Mnxzng<8f%|MoF`=He;RRu3p|TTIUyr|13wS#8Gkel z3Kh4)j2i76QENTfUtpicAu>3N!o9K5Ghp!zRuj4!Z|~Gsh~LpJ%b51i$j@4KU584eCytrPQz7y93h_ z5F-6R-ei;sSXW#?<#;>6@#_tCQqgJ;5)1~(Lmpr^83K~uWw7tcO@@LzFHvGH!OIs> zMq!UrfN;jD9*Qy=VUn?P98X zCMVGyCfW3!aQsB;MVrJ_)AvFWZs)dk^7_uUc5-!RTRXW$+SU`V<7nz8GFs#WFts^#lnU&H`#=(ll*Z4JJ6(pu**!Hnk{j* zaKB<~J3E!eq#xGf&@w05#HLPhPY28$D(z}hr(PGyTsK()l7~^)=EiS_v?orTy1 zGWi>dr3X@P?k!}CPPIV!*g&V6Lz(NDEP3yl0`eLmQ*;nL(k%XnvYGoHV3G9C0?C6) z?6;$r!N9=g?VZ)pT-;e5%@tA|&9$A?@q4f|0>`6fOYbJ;`XK7xf9Cl5;2=~A+b0Pe57sSxl60Y$@2HXL z^nlKcon9ju+tHb^zT2_owS^<H-^z@v;Y2RJnDGY5og>{!C=-Q6;pVmQQiMrY~@ieXGKII)m1#kz^O2x#MM zcb1E&rjg8G$GCKGgP9wbP7^E0=7a)}(M(P#(3#yJcy%nerOaI&t4oNRSO;z$a}(=y zJ#kUU`q{0_MMcU(A}R|c4{a?`S#Gilq_mo-Dq6jO=_x4aERWPIQ=B3=1?oNfCr3FY zS=W$YGy5UuR9`~-v&g$y~f&KCL*lTx$ha&D^zC8ubr$T#H<{9uqE4hx&nA z2rag@Gq=!3ClZ%{`2M_%xdcC*YjCiLKgSDKN3YFTyx|W{o;8cm`V9`H`%@aiq9ZJK zeE_&s9QOJEDaiFu>!0@una!>G`dV<030JF2dLWU+bZ}+NC8q0o;%-g_cbK`G@l}Xw z`Q~zPO~RGy$ezSCDfKTe;hK!4mzJe4<9}Vk+|o#?_@z-G!-d4k4+@-;08XkTC4m!3 zDFTA-xw1E4Hxd-H7u!UljB5%RO3RTJ$SVNmH z%WX*)-E3(E86;$@Zt4TUT%>X!nNV=!IP5c_IFuiH z4ARfi3caPSrRW9EP)lDFA~8cx``s(jSQZbo^Q7gx9{CG;67ow-B?g+ zl&&-mq;!X+n15xGvhx#5me%Q#K*ac}zfu=0%)N>ofVAMpLVJWRT*@T&2;o;|20Qk{ zJTF8tw?Be9_dwT$cwUoIo`ier1*ZTP3eEto77W9?@TcGc95-{B;40T-VS_HaH%qx`Uu7e zAf`!zae9I2I>F7r|6ttT3jCx?JX!FR3T^{_i}8R=;99}N%O{C}vA{nM?W(Y9$B82p z%zXrh0$(aP3^-hHIPf&VIFiAfAaBW6`N4C$cqpQ5!4%*z#{1%dcR70_G5Rx^%bdNn z!{qB6VSW!yivLWOq4I*Xf@F-BUrRYod$7F96<&_hy{WO6gBvV~(cOx_M51KeZ~NYU%5AUEj*$&;Bln1d&nETunlr#P3zs3u;M@WS;-bel4D9l`lN-NudM57>NHc~<{{Ww$gF^G6i8wJi4s zp22hgf#r`xkl8{eiYER@0{OU*NksPRYwG%jH2X;0tPvcg{rdX`j_CSrXBN9nyf}-0 zpt*EAC=n)07I%P?I{0IUWU*M8>|I3;`=~gJRUrEcS>?`RHOS#YR=dd>ka0rR(AH7p z+kUI$H5xaw1mi0X<=d`1^KEasxZi2XQzqZrIl`7a8aq2IXR^V`i0+L3D*!{NGmW4M zS?o-swA!;!x9@vQo{eI=I}0Q6m6@8e1(NHth05eGi=g{u<7^SgenJ*WJHp;BlVhTg zC8D0Q(1b%;$JuHg6rA$`C&TA+?%BC>ejp{6=ls~du|dn^kT+#)&@$}gTqrncFy}&P zxf|>RNBWo?ZJczgT~~yl1Nax(L3hdHziPQw|FVLcz;b_Cd5-6=ba2-Rm(BzC^Jx9u zrL#Sc9}O`k70<&MyFbQ)=M#0wFwC0M;XM@47K2f@rxR79QOPC7@=EW}75GblgmXOW-k&}*PGWFQTNP;fDxEPL1qnR{j^7`wp~oc8!(lJI_ORgabXviO(8DW0@+cCR zwLPL-nf$x6;0SymknP>x-K`^0XZ~!4!2GSt8irQkzl_DheDsbH$Ut~CxYw8qm#HG_ zl}?bKGI^y_x02vkWU6;h=EkNQ>!$li4{VJ{!@XI2FCvZBCL+V*5OePxOpdGOsS4}( zRFEGqIi5aoLU4QoxF3YW%Lt8+t>dAX-hT;sj3#$LM*1mJA0GDt)0#9)&>)#UJV9f< zx>{!t7aa!fNe&zxri+P-DFN5WTuce=r9gx;>XoT4w_srHGYW!pU@?6cvf!L7`gAqe z5f=ikgt@p7okH9KMA(iSD3Wod6?lVSf8ZLy$YlQ>f+K-v z6HdWN-|_G~AvaQhe-Mlk43PEvmD#|#!sAgpph<52G)!$yp?Gg<13uNF2-R=z?v}~Vr42}JeFkM zWE>F;{2Al%6wk>4IOPq0^nuLmEjO}&2MKNlo*=jdIGHh>%w*oeI1-Zp=6`a@XlteU zJ;8W4H8(P*la(x81S3w%7{=E`;>=9TN{%Qx2{@fG9c^UUE*Pb;yu+BzFtU6nxDxmb z<5{p9tFK^`%sN~!s?|D8a4ql}#<8Km6hECAO2-gcrJm^cA?t4}M5hjU^%mR+Jcx5m zhYWc|F;52zdELf%t{<@2!Q5)#mzk&2gS@_HJP&c&s9JHQ1A$z&N#Y5?jcWx%jkXmW zU|}WjPR4Yoj!hy;M`GS$D|aHSw`7RUzww^S@^tKt_f3M20pHFzLjh+R*rhU1V(&b; zK@mMAI2`zG!BN0R1S1pPf3YU$gc%>n#JU>bE19PgWqf8a-T--@C5-6=8K2D@4;>xj zQ|RIwbYzUrn~dqG7#~S2CrPO;CJsPHzH|}8q2pV+%w(R9ZRxU-!_sjrU8MQFO885b z*^`5FX~jNh!lmmq%n#N+#*@GY=^-(BKq#f|p_w*en# z+=L7|9D=RDk^mjx;Ybv|2zaAll-MC1QPVNtSA|DJjzf%3QrM$}QGPm+!y!$M4&8NJ z5TO>Ox=X^pA)@XBn5P3bx{qOeDjHbq;8Y>-EzCFj0N*DVCGP&H;Cf)OkKdui?ykLj z<9CYaW5GGVzY0deeq9)!hN}I>3oZsu5L^l@9oOk<;2q4LA-+s7@l}GM3BLy5ER-Lw zJj$<)J#>sk4{A=hakc{ZO2JjY3k25y-yygT_#we4S&t&dbSg!U1A@bVYk~21E*$s= z!P&rnNdJ%1f>lo`Wot07lZEIYhMt!j*f{*4Cv{MGZqT6zJ-NPdzya`c%m<<{J!=@# zc?Lb%@{Mx~di7$S&MW9OnXxkt_1}woI^%qTUJvjMI+vgqcgd!RHega05~kw?{H=`X zQ~`fBMml9!`ICkqLx%|Xb5BPn5G()tg)akshA|x$;Qu->(x+pHl|LJxaX3J4$>|iR zv^OP?WgN?@dSAzQDpKjaUa$`^)i-3O+JP$s`vH@xiT78kPjA5}OdrxHc-qqM>cjoN zX<9IDERq`$z-t6Y0zbx>cI@|ggKb+I31WDNXB0C0B$L!*%ja)aj_8XEe|MVOk2tWz82gD{1ap3Q}yGA4R(qHOUV{A z152c|F}&ZSEKfVU`*B-0Eo=nlrf8yF-2HewVM=g?!E@N?R!s?sz&v6xc54Sp$!M2$ z;1G_Kc4r6jLkK&uftN5(yRic$6SN6CFqe7Sd>zP-Zxe004&)xzloSR0J@@}6+GTx- zi8GN@1$-6bCCK$9D>)+COnu42%rC74ev$F=c;L@ihBi%Ka)R-SEZ}y=v=KTeP%z>N z8X>p<_8-Ip2h*BD+*r+#(oW|fQDcT5Fh3(qw6i(reGW`JnuCtAd}fJK{f9D78<_iF z#h5lO_m5*t8XNu zv>A86?}8EOKwrj%(8@ru587xua3S-wp?2U##pi2G2L_q0d!L z8)Mq?>b#CIZEtn*W7PBxWCr;#Pdi2jg>t58qv#;&OQ1#CAUcSj{iZ|E)*!K=Lq~w0 zW*OQDI;evCe`5paAW<)E{2XjyA=>acSlV=L1Mpbkq29rnj1NZxi-pr}&cR;@kA#PK z3vK}x1N;;T50Ps6G#mZz5XmX+(Hydk1JK^gA+Ir}J()xPWK3Hzg98Lt0gIv0&dcD1 z%zuT%g4Z(sIvZGQi#AvW*D+t83j8xL_5ZY?@>0nuZKS+(JPRE~fJ;*aHv&J%n6^t^ zDu($Z>U*dU^E8YbdNtz{WxyL5{|xz|yBRlC0)NYxc0al<6YHg2kC%<%8!b`5v5aYt z<7HHTS<2Yjc-cc-_pKzqlkuN+;7Y-vz+VZD1(rVGFC-i?h~uOUh#`{=?80tCcvxM= zj=~V`hK-GcAv_8)_74u@`ZM=-Dm84X5!l!+IE)@tc-8BR(hp-*(_#E-7+0UMCvezT zEJIrXhy5wIM5)XBx!6N{|1KXV7#X@enKA9*yF8C^SQhXbjA?h>F;1ya#W!egTquu%=#+mI%Dtqq z6)yC8k*Nl6^kT}``4-Ae%h>Q1`WDMXwL<1|#*B=aB=1sY+L0C3j|0m@h?SgPsCT;O5C7XnLjr42!2`RQk- zjX-1n!TrCn0cb3DCT80BGxh_{1a0`a%8T)HQNV*ZQrh5i)fC2MDZrwkvJ&7e%+p4m ztM&_S0_I+ieg;ED@bd*fe}VotLadZF<3!xV0caCW#Ae2|dBD#KhE^ip1cq_Z_L>Na zlrS96(^Tm?K>a4qme#wSsLs}tF7 zXhX!+l4;ufaJ5t`ZGO0Vhl>N8rT{MrrU24q($0p7^ms)kXhXxqfh_YUN<1-+F>NlG zC@qEd5KJsLcw@W3M6M=diT|W-%+t#LNnwIre(=l{4-%V{E;tyNwL-sW)Pe~Dsh^BDW&@aHKDf!IPy7eh9F{b6}Q@F>(%5-3U99w#)0{>~$Jrv&zYmu+tIE_@g%}?17ljQ9lb#?G!gw2ConJySd5ES zWk=TvUk!YcvD2y4R7s2$Ur*%+o5k4*d^yKSYpthV&Db>v>YWt7Ip+(Qr#Gs*8(bvy+np5Buqor1zl=a*MYG-Rg7 zb39X1fT_EM9Zd59mR2^6exPhRw_VG0sD1k5EJW**r@zFJPA>xHS1@BW^7IzwW6^~0 zOXNnRwE8$kta=`dE+$5J7+uV*jORxKiw)7@;+W?V57IXl700~Ik;YR*crT}%(jwxR z^MaAsi~z<9QGyvfU292z{EP+6CqQ#EmNTZs!84>P7aigotYEMHg+JfG!h)#~iE%+qSs z*^lt}-$L*Gv!z=ti3g?u0urNDsk1+2Osi36Hwvx+ZedJ|PiMCaMx=9s7}HwQITIPv z7mqpDGNz@ab8cshRfjG$N1jMnZm8ybBsUOXE|2?Yb)lN;&m}kz1w4jj-bw<#jWJdZ zs=0ZL4<-Y@$(U9N&Xr78XDJou%{*2CsyIVi=>I=Jj^d{BjSrBCIO!;`)=$OV%RH9& zskld(pJgoiAj zaDr0vy9h1<4r7dkc4~gC;0)jt!N}13hXkYU=kH^TWprx(uZ*#JPA!nqV?CQ%Fc!R0 z78e$>sReQD!2&k5K>BB_TT=_fO8-a#&KH?v;CBV@0RB#JF>n)C(;rnz#hV3J179jK zu$%Zv%wy%3ieJd%e_HaT;#afKnMPo-iL=O1yci>vcB%L}mN{DpOeI4Ju#ih#>nFGb zc!Xdie61MWIUit&AFH&~wGXh&xghkv*S^3xIu{Cjh;Lvumbz9Fz$z?towRkVzEanP zunbmRsq3hYkqNA}QrC$wo`>eH)68RSmAdXl##mFOu9L#xN8QwQwcx4$Zx4cpI~J?0 z0pDf&7y+zU3#Aqg7u*EQa{yTP1iXNGEPYZ7Z#4=)E1uNChndGhC$;bu#(koIxtj1R zalq88W+__Fq+AKz*@JaVDuL^XmK>=BE*Y&fQVFX#A}lac2|PTx9(xT@CEAhF8Nggl}Bw1YXJ*>w(nu{G_7wKkE9Q zna8ppbpwy%Xtj^Jf%^km<)dz()`0}DxJTXaAY-iQQ8$z^##$bA!*7hE!<0%K=VDJx z2|Twl#+n_KSj>1%7Vvq-SfitEjAXn3@;5FM+ycCbaXdC=1Y@kJQH%W{j68jOk~Z*1ZM$H zWBd#vO}dc-(=oqEn*>(@Kh2nqw@j)M+@{o$zKrR3%Oz6VH33P!a3!$hy1X8EweU^A+XS})zsVT;6V%dEf}Khw_vXyK0c|CZV*F+; z@MM<3>L!)!dRRP#@YD-NCYFsBTmzgV7#dpkonUBac?e@HZ&J%|5$q3KE*Pp_eqL~- zQn!o~91nayV^<|qbju;Rk&e|*{RBfrDH(!y03Q)ts?>^L!O+l(8w8_dE5r`yalGOi zhnIqF(J3=4ei4jJtY{M)rPQsy4i^hW!{c;#BY^P(Q@0Kmj1t^BUN9oMb-Lgf;CR6a zz)J+9Ft@H0oB_N+a1L+|WBM+9Yk}Yt*#E6(#DkLEW)_T+-PT<&N_Ja6#zB6-lLZF> zuMv!l-uA3ulf@6W-7MuwDiQrV=HejUh6_ln_>JYhsT&Kng-VS`HU}P@!DZ#Lb z)b|B90v{FJtkmtj7-Q3ly8TkYS-=s3+ki!j*t4Qsw)sx zkIGWUuZZ6M55dLYpAuXSyjL(Xcl-N->wy~_U8!2J`9-bt6&wm2WMG$(>GNLk&K_tuFB- zDYeQ=a29ZY;3D8l1(yJi7K{?Fn(FBI#fMe#%!eTpt8Noq2z-y=QsAcNrpz{0ADG51@L^q)xft3ZUdHtM|jrL2yVP0I1%_m2TX>4u=0*C1y_JSCAdh*F1)ari-M%Ao-Qg9IPKEY1l_XP(7e zD|{I6dBHI7HFm)fz^*{?M8b2a;3(iI!O_4s3624FXEYZ0A?BYa{48TS4SLO9#=CNX z4+_o$KE!wr3cN-#=h}l(rU%Illrnv$V3aa_E#tBz;Fkm^1OFhn5o=KU3T_6Luw|{l zo0#9LfJ+6VI_~^lFskD&e}~Jcm65g{}9 zr`E;^j}ok1)SU*IY7nYs?P8PiF?_(AOscCJKjXo_=7B#qDQ~yTDaiBsSEVvAN_Gd% z2VCsLATK9>^jiVm;qz69NiPxi8?hLIDGAWy6dVLsv zuUIm=J_e13&12w|n3x@c!8m z;5m;QFM8nDJ@DHe7{=8R7S-2*zwp2(Jn$KlvWT`eT_R+!L=Yi1*h&Rf=@hOiRsQZop z`#kV_9{5ua+|XIa8$IfK<0%gwP1kK78{0eaCLieEePa_kq7FRR17GHWhkIbyL5KV` z9vC*!!N+-EkJhy5W;c)WZ%T1{fY*Cq7)wV)P*(?j%mbs(=-~h9fnW8&u$2y(cRX+n zFq*9Kx2dk!hshFpA25Pu_IN0unREZiSi&eyO)zG7f$@c2Z-*G#!q$hD2H z7zY~nG3@hmQAA@Tz?gcz5uV7`!4SL;_XnrRHA}8}az(<%{ZhGB%C%Om4RUSf>kuVZ zKfaDhQ7*p+C7Ra?wuFxdKkD&u!t#XB?3?9#a z2FQ^?_{%jwu0e8j8dv3)jF^_eVV|DgEpRDt*hlYoE8J~x7=HQP4z~&}4ek!O)o^Rz z(&6rey9;hDTn3yATNwP-!)<`egxdsnH{3mN_rhhvZHBuaE(dN49L9Bi55nQMcKx=( z<-u)(dl>E!xb1L{!sWwhxE*kh!95Q51Y7~!lW8w+pTW?j^XF;daB7!o33bD%>8pGPu2P`{4G&mBYOTcL45nxC*#8;NC?4 z)c+71RiTEXDm)7JFkB|pKh@g? zxVzxe;MT%r!;!&}VIG7d`*;CvAKV@|GC)|b(MqV!pN6BV+XS}_j_iY)X)4^UaJRux zHLrrZ9qu1+E3*{lrvNtYZ|G_BHtFQGzL)B3e_KC&slP2)n=^bz>C;cyBK4im+Is5R zXKV-e+t&GZG3kSWHvj##eQb}J^ea1UA$psyW0L;f*U`r`TF)!C4c4z@`fk#%46yap z3pe`q)nyxfaolyFt+#&mC7YAcg^j-c`mI1)AJ?2KS1*lSb;~uQr{1L&FTURG9rZVF z^xyAB%iW08OBXClN9Z_?gdzYp-QbMqM&SlTrrfzAH93C8?aS80jT*grX{T2?5rl*g zrjzx|iLRaI9i%@Gw54cQAIA_~xCtl87WHw=^otu6wt8vYs?>F}m#s-zF@J&f>+9&F z5B7ER*QKx6tol)xZ(r-U)k`Pq-7epidhlK-B(I<25`9OO?^ylzUfU(QvJ7&rGFu=0 zoy)hMZV0k@X={JSO8tB*giGUa_o@Dl-nz#ryjUY44^ zgbI1>nq^BfGDsPtM;RrHTef=ns@1nIS-Er>-Cuo|9(2qWp}!kwtJQV898>mxSz+5_ z+TW+dG0vplz0dbXUH+1zyFUJ=EkGBBcw6<=n|&+vlXoGXZ&cd6_4FgY4n2Ig!)M?9 zzJq=BPhZ+Dal~G=BsqC%@-55aR?J_qLMLv=xyvgzA;jcSwsiw%Eni{q3q~(qK^co3 zH9C1&>XJKGE?F0IXKJcm{HSjqQ@B1j(UGE0J?a}}oxFI#WW8yUBWQn8zVCaz_Gi85 zJIqTT*zNm`dDc?>mDzjJ{u8CXy)D|e%y*jCtmO;B7VCpQ`Ua5FocjAXTUh>T#~A(4 zYN`$Baeu;I-#t!!=xg7*y2LLSyI{%fX{pQfsNIgsbn*y?|Ng7K_Z?-@SN!OkvcK+_ z?{RN^vdMRrD}2-#wRqL?v!LO>TSCnPM;ZWEmrP!1n*Be?fa&w>x|BDcWgyha(|0& zFWue(a|zyRo3DFa;XPu%DbF_5)H^ofmc=)xQ?qX|NgVS{k!RJO^!$R z-)nZ1|L0z5{}3-nH(N(vwBDpYwma7U=ML$%fX-_CdoAd^7j4Zt&f8(tQFl0OdQ=a` z0B&JxdpOeF!7i$BeaCKFg6{s3Ez=|HgkBEc|JdJMv0}yiQDaswjajzhmX!46E0(1u zchtw2|6w&cZMSWa1wEU7#m|xD0vNH1^yKay|K1;7^MARw9OmvlDGUGS-qQcy)vcbl z-Z4ct{MPLf{Z_iwORqa%yTe0sr+YhA{}&zX!&f>c>(UL@Vfy7){}#{30glW6t4`On zf@|`VeSfRT)*x8Zf6)v3xeeu_R&GRZLBFfNpW(&{ybGI>wYNe66O zbVI(wYyUQ<<0sSqp&MUr8lkscN&3IVfzvAA!c+U&&Avtdrc3W;>+BkbcIj-*A6MEg zy|~$XO8l+8chy7xWt*|7VkLvBgoNm`(W3>%V=SBj0=B>6^au9^PIY#&@0_RCUc_ zoWA`ho740|@_g>obAPe5gFU&uJdtlL8@N*2u9(Re$_A>;WTtCyviC9r3+w5IQ-GE9 z2Tt~j@E}pZU(-p#%MPBXSmartGroupTreeModuleOutlineStateSelectionKey - 18 - 11 + 42 + 38 1 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 107}, {264, 660}} + {{0, 440}, {264, 660}} PBXTopSmartGroupGIDs @@ -325,7 +325,7 @@ PBXProjectModuleGUID 6B8632A30F78115100E2684A PBXProjectModuleLabel - DetourNavMeshQuery.cpp + Sample_SoloMeshSimple.cpp PBXSplitModuleInNavigatorKey Split0 @@ -333,15 +333,14 @@ PBXProjectModuleGUID 6B8632A40F78115100E2684A PBXProjectModuleLabel - DetourNavMeshQuery.cpp + Sample_SoloMeshSimple.cpp _historyCapacity 0 bookmark - 6BAF434F121B00EF008CFCDF + 6BAF45C2121D2F68008CFCDF history 6BBB4AA5115B4F3400CF791D - 6BBB4AA6115B4F3400CF791D 6BBB4C34115B7A3D00CF791D 6BF5F27011747CFA000502A6 6BF5F27311747CFA000502A6 @@ -349,28 +348,11 @@ 6BF5F2E511748884000502A6 6BF5F2E611748884000502A6 6BF5F2E711748884000502A6 - 6BF5F32E11759C3C000502A6 6BF5F5041176F5F8000502A6 6B4214D911803923006C347B - 6B10011711AD19F90098A59A - 6B77655511E3A9490029917E 6B98462E11E6141900FA177B 6B98473011E737D800FA177B - 6B9847FE11E9AFC900FA177B - 6B98482611E9D23600FA177B 6BF9B12C11EB8CF20043574C - 6BF9B12F11EB8CF20043574C - 6BF9B13711EB8CF20043574C - 6BF9B20B11EC450E0043574C - 6BF9B21B11EC49F90043574C - 6BAF37D411FEAC16008CFCDF - 6BAF382112019EDA008CFCDF - 6BAF38471202CC9B008CFCDF - 6BAF385C120A8A8E008CFCDF - 6BAF3ADA12112A65008CFCDF - 6BAF3BA51211425E008CFCDF - 6BAF3BB9121146D8008CFCDF - 6BAF3C7D121167CA008CFCDF 6BAF3CB012116AD9008CFCDF 6BAF3CB112116AD9008CFCDF 6BAF3CB412116AD9008CFCDF @@ -378,42 +360,64 @@ 6BAF3E781212869F008CFCDF 6BAF404F12140B4E008CFCDF 6BAF405112140B4E008CFCDF - 6BAF405212140B4E008CFCDF 6BAF409312142142008CFCDF 6BAF409512142142008CFCDF - 6BAF40BD12193E77008CFCDF - 6BAF40F012197F3D008CFCDF - 6BAF40F112197F3D008CFCDF - 6BAF40F212197F3D008CFCDF - 6BAF40F312197F3D008CFCDF 6BAF40F412197F3D008CFCDF - 6BAF41701219811E008CFCDF 6BAF419E12198419008CFCDF - 6BAF419F12198419008CFCDF - 6BAF41A012198419008CFCDF - 6BAF41A312198419008CFCDF - 6BAF41A412198419008CFCDF - 6BAF41A512198419008CFCDF - 6BAF41A612198419008CFCDF - 6BAF41A812198419008CFCDF - 6BAF41A912198419008CFCDF - 6BAF41AB12198419008CFCDF - 6BAF41D0121A5AEE008CFCDF 6BAF4250121AD7D7008CFCDF 6BAF4267121AD99B008CFCDF 6BAF4269121AD99B008CFCDF 6BAF427E121ADD46008CFCDF 6BAF427F121ADD46008CFCDF 6BAF4280121ADD46008CFCDF - 6BAF4281121ADD46008CFCDF 6BAF42A6121AEFD9008CFCDF 6BAF42E2121AF3B8008CFCDF 6BAF4321121AF998008CFCDF 6BAF4322121AF998008CFCDF - 6BAF4323121AF998008CFCDF - 6BAF4325121AF998008CFCDF - 6BAF4346121AFD0B008CFCDF - 6BAF4347121AFD0B008CFCDF + 6BAF437D121C1F3D008CFCDF + 6BAF43FB121C241D008CFCDF + 6BAF43FE121C241D008CFCDF + 6BAF43FF121C241D008CFCDF + 6BAF4421121C25E3008CFCDF + 6BAF4422121C25E3008CFCDF + 6BAF4446121C40AC008CFCDF + 6BAF446C121C4895008CFCDF + 6BAF446E121C4895008CFCDF + 6BAF44D9121C4DFC008CFCDF + 6BAF44DE121C54D4008CFCDF + 6BAF4520121D1723008CFCDF + 6BAF4521121D1723008CFCDF + 6BAF4522121D1723008CFCDF + 6BAF4523121D1723008CFCDF + 6BAF4524121D1723008CFCDF + 6BAF4525121D1723008CFCDF + 6BAF4527121D1723008CFCDF + 6BAF452A121D1723008CFCDF + 6BAF452B121D1723008CFCDF + 6BAF4562121D1849008CFCDF + 6BAF4564121D1849008CFCDF + 6BAF457C121D19CB008CFCDF + 6BAF457D121D19CB008CFCDF + 6BAF457E121D19CB008CFCDF + 6BAF457F121D19CB008CFCDF + 6BAF4580121D19CB008CFCDF + 6BAF4581121D19CB008CFCDF + 6BAF4582121D19CB008CFCDF + 6BAF4592121D1B18008CFCDF + 6BAF4593121D1B18008CFCDF + 6BAF459B121D1C15008CFCDF + 6BAF45A6121D1C49008CFCDF + 6BAF45AA121D2C03008CFCDF + 6BAF45AB121D2C03008CFCDF + 6BAF45AC121D2C03008CFCDF + 6BAF45B7121D2F37008CFCDF + 6BAF45B8121D2F37008CFCDF + 6BAF45C0121D2F57008CFCDF + + nextStack + + 6BAF4490121C4895008CFCDF + 6BAF4491121C4895008CFCDF prevStack @@ -433,11 +437,7 @@ 6BBB4AF8115B4F3400CF791D 6BBB4AF9115B4F3400CF791D 6BBB4AFA115B4F3400CF791D - 6BBB4AFB115B4F3400CF791D 6BBB4AFD115B4F3400CF791D - 6BBB4B07115B4F3400CF791D - 6BBB4B08115B4F3400CF791D - 6BBB4B0A115B4F3400CF791D 6BBB4C3B115B7A3D00CF791D 6BF5F27811747CFA000502A6 6BF5F28011747CFA000502A6 @@ -446,9 +446,6 @@ 6BF5F2EE11748884000502A6 6BF5F33911759C3C000502A6 6B4215D1118066FE006C347B - 6B10005C11AD08FA0098A59A - 6B10011F11AD19F90098A59A - 6BC7619C11B63C7E00FF5E51 6B98458E11E6039A00FA177B 6B98465211E6F9B400FA177B 6B98465411E6F9B400FA177B @@ -456,22 +453,16 @@ 6B98471011E734A100FA177B 6B98471211E734A100FA177B 6B98471411E734A100FA177B - 6B98477411E7406900FA177B 6B98477911E7433F00FA177B 6B9847C511E752CC00FA177B - 6BF9B14A11EB8CF20043574C 6BF9B15511EB8CF20043574C - 6BF9B18B11EC2D470043574C 6BF9B14911EB8CF20043574C 6BAF3860120A8A8E008CFCDF - 6BAF3861120A8A8E008CFCDF 6BAF386B120A8B78008CFCDF 6BAF3A3B1210235F008CFCDF 6BAF3ABC121038F9008CFCDF 6BAF3B0612112E63008CFCDF 6BAF3B1512112F65008CFCDF - 6BAF3BB312114389008CFCDF - 6B4215DF1180672F006C347B 6BAF3DAA1211882E008CFCDF 6BAF3E631211B713008CFCDF 6BAF3F5F1213E45B008CFCDF @@ -480,34 +471,19 @@ 6BAF405912140B4E008CFCDF 6BAF40A612142254008CFCDF 6BAF410112197F3D008CFCDF - 6BAF410212197F3D008CFCDF - 6BAF410312197F3D008CFCDF - 6BAF410412197F3D008CFCDF - 6BAF410512197F3D008CFCDF - 6BAF410612197F3D008CFCDF - 6BAF410712197F3D008CFCDF - 6BAF410812197F3D008CFCDF 6BAF411712197F3D008CFCDF 6BAF411F12197F3D008CFCDF 6BAF412F12197F3D008CFCDF 6BAF414812197F3D008CFCDF - 6BAF414912197F3D008CFCDF 6BAF414A12197F3D008CFCDF - 6BAF414B12197F3D008CFCDF 6BAF414C12197F3D008CFCDF 6BAF414D12197F3D008CFCDF 6BAF415312197F3D008CFCDF 6BAF415412197F3D008CFCDF - 6BAF415512197F3D008CFCDF - 6BAF41751219811E008CFCDF - 6BAF41761219811E008CFCDF - 6BAF41771219811E008CFCDF 6BAF41781219811E008CFCDF - 6BAF41791219811E008CFCDF 6BAF417A1219811E008CFCDF 6BAF417B1219811E008CFCDF 6BAF417C1219811E008CFCDF - 6BAF417D1219811E008CFCDF 6BAF417E1219811E008CFCDF 6BAF417F1219811E008CFCDF 6BAF41801219811E008CFCDF @@ -515,7 +491,6 @@ 6BAF41821219811E008CFCDF 6BAF41831219811E008CFCDF 6BAF41841219811E008CFCDF - 6BAF41851219811E008CFCDF 6BAF41861219811E008CFCDF 6BAF41871219811E008CFCDF 6BAF41AE12198419008CFCDF @@ -524,9 +499,7 @@ 6BAF41B412198419008CFCDF 6BAF41B612198419008CFCDF 6BAF41B712198419008CFCDF - 6BAF41B812198419008CFCDF 6BAF41B912198419008CFCDF - 6BAF41BA12198419008CFCDF 6BAF41BC12198419008CFCDF 6BAF41BD12198419008CFCDF 6BAF41BE12198419008CFCDF @@ -534,13 +507,11 @@ 6BAF41C012198419008CFCDF 6BAF41C112198419008CFCDF 6BAF41C212198419008CFCDF - 6BAF41C312198419008CFCDF 6BAF41C412198419008CFCDF 6BAF41C512198419008CFCDF 6BAF41C712198419008CFCDF 6BAF41C812198419008CFCDF 6BAF41C912198419008CFCDF - 6BAF41CA12198419008CFCDF 6BAF41CB12198419008CFCDF 6BAF41CC12198419008CFCDF 6BAF41D3121A5AEE008CFCDF @@ -644,8 +615,213 @@ 6BAF433F121AF998008CFCDF 6BAF4340121AF998008CFCDF 6BAF4341121AF998008CFCDF - 6BAF4342121AF998008CFCDF 6BAF4348121AFD0B008CFCDF + 6BAF438B121C1F3D008CFCDF + 6BAF438C121C1F3D008CFCDF + 6BAF438D121C1F3D008CFCDF + 6BAF4390121C1F3D008CFCDF + 6BAF4395121C1F3D008CFCDF + 6BAF4396121C1F3D008CFCDF + 6BAF4399121C1F3D008CFCDF + 6BAF439A121C1F3D008CFCDF + 6BAF439C121C1F3D008CFCDF + 6BAF439D121C1F3D008CFCDF + 6BAF439E121C1F3D008CFCDF + 6BAF43A1121C1F3D008CFCDF + 6BAF43A2121C1F3D008CFCDF + 6BAF43A3121C1F3D008CFCDF + 6BAF43A4121C1F3D008CFCDF + 6BAF43A6121C1F3D008CFCDF + 6BAF43B2121C1F3D008CFCDF + 6BAF43B3121C1F3D008CFCDF + 6BAF43B4121C1F3D008CFCDF + 6BAF43B5121C1F3D008CFCDF + 6BAF43B7121C1F3D008CFCDF + 6BAF43B8121C1F3D008CFCDF + 6BAF43B9121C1F3D008CFCDF + 6BAF43BB121C1F3D008CFCDF + 6BAF43BC121C1F3D008CFCDF + 6BAF43BD121C1F3D008CFCDF + 6BAF43BE121C1F3D008CFCDF + 6BAF43BF121C1F3D008CFCDF + 6BAF43C0121C1F3D008CFCDF + 6BAF43C2121C1F3D008CFCDF + 6BAF43D1121C2164008CFCDF + 6BAF43D2121C2164008CFCDF + 6BAF43D3121C2164008CFCDF + 6BAF43D4121C2164008CFCDF + 6BAF43D5121C2164008CFCDF + 6BAF43D6121C2164008CFCDF + 6BAF43D7121C2164008CFCDF + 6BAF43E3121C225B008CFCDF + 6BAF43E4121C225B008CFCDF + 6BAF43E5121C225B008CFCDF + 6BAF4404121C241D008CFCDF + 6BAF4406121C241D008CFCDF + 6BAF4408121C241D008CFCDF + 6BAF4409121C241D008CFCDF + 6BAF440A121C241D008CFCDF + 6BAF440B121C241D008CFCDF + 6BAF440C121C241D008CFCDF + 6BAF440D121C241D008CFCDF + 6BAF440E121C241D008CFCDF + 6BAF440F121C241D008CFCDF + 6BAF4411121C241D008CFCDF + 6BAF4412121C241D008CFCDF + 6BAF4413121C241D008CFCDF + 6BAF4414121C241D008CFCDF + 6BAF4415121C241D008CFCDF + 6BAF4428121C25E3008CFCDF + 6BAF4429121C25E3008CFCDF + 6BAF442A121C25E3008CFCDF + 6BAF442C121C25E3008CFCDF + 6BAF4436121C2A3F008CFCDF + 6BAF443D121C2E5D008CFCDF + 6BAF444F121C40AC008CFCDF + 6BAF4450121C40AC008CFCDF + 6BAF4451121C40AC008CFCDF + 6BAF4452121C40AC008CFCDF + 6BAF4453121C40AC008CFCDF + 6BAF4455121C40AC008CFCDF + 6BAF4456121C40AC008CFCDF + 6BAF4457121C40AC008CFCDF + 6BAF4458121C40AC008CFCDF + 6BAF4459121C40AC008CFCDF + 6BAF445A121C40AC008CFCDF + 6BAF445B121C40AC008CFCDF + 6BAF445C121C40AC008CFCDF + 6BAF445D121C40AC008CFCDF + 6BAF445E121C40AC008CFCDF + 6BAF445F121C40AC008CFCDF + 6BAF4478121C4895008CFCDF + 6BAF4479121C4895008CFCDF + 6BAF447A121C4895008CFCDF + 6BAF447B121C4895008CFCDF + 6BAF447C121C4895008CFCDF + 6BAF447D121C4895008CFCDF + 6BAF447E121C4895008CFCDF + 6BAF447F121C4895008CFCDF + 6BAF4480121C4895008CFCDF + 6BAF4481121C4895008CFCDF + 6BAF4482121C4895008CFCDF + 6BAF4483121C4895008CFCDF + 6BAF4485121C4895008CFCDF + 6BAF4486121C4895008CFCDF + 6BAF4487121C4895008CFCDF + 6BAF4489121C4895008CFCDF + 6BAF448B121C4895008CFCDF + 6BAF448C121C4895008CFCDF + 6BAF448E121C4895008CFCDF + 6BAF448F121C4895008CFCDF + 6B98477411E7406900FA177B + 6BAF3861120A8A8E008CFCDF + 6BAF410212197F3D008CFCDF + 6BAF44A1121C4A43008CFCDF + 6BAF44AD121C4BD8008CFCDF + 6BAF44BF121C4D30008CFCDF + 6BAF44C0121C4D30008CFCDF + 6BAF44C1121C4D30008CFCDF + 6BAF44C9121C4D65008CFCDF + 6BAF44CA121C4D65008CFCDF + 6BAF44D3121C4DB4008CFCDF + 6BAF44DB121C4DFC008CFCDF + 6BAF44E3121C54D4008CFCDF + 6BAF44E4121C54D4008CFCDF + 6BAF44E5121C54D4008CFCDF + 6BAF44E6121C54D4008CFCDF + 6BAF44E7121C54D4008CFCDF + 6BAF44E8121C54D4008CFCDF + 6BAF44E9121C54D4008CFCDF + 6BAF44EB121C54D4008CFCDF + 6BAF44ED121C54D4008CFCDF + 6BAF44F2121C55F4008CFCDF + 6BAF44FA121C5713008CFCDF + 6BAF44FB121C5713008CFCDF + 6BAF44FC121C5713008CFCDF + 6BAF44FD121C5713008CFCDF + 6BAF4505121C57D5008CFCDF + 6BAF4506121C57D5008CFCDF + 6BAF450C121C5810008CFCDF + 6BAF450D121C5810008CFCDF + 6BAF4512121C5874008CFCDF + 6BAF4513121C5874008CFCDF + 6BAF4536121D1723008CFCDF + 6BAF4537121D1723008CFCDF + 6BAF4538121D1723008CFCDF + 6BAF4539121D1723008CFCDF + 6BAF453A121D1723008CFCDF + 6BAF453B121D1723008CFCDF + 6BAF453C121D1723008CFCDF + 6BAF453D121D1723008CFCDF + 6BAF453E121D1723008CFCDF + 6BAF453F121D1723008CFCDF + 6BAF4540121D1723008CFCDF + 6BAF4541121D1723008CFCDF + 6BAF4542121D1723008CFCDF + 6BAF4543121D1723008CFCDF + 6BAF4544121D1723008CFCDF + 6BAF4545121D1723008CFCDF + 6BAF4546121D1723008CFCDF + 6BAF4547121D1723008CFCDF + 6BAF4548121D1723008CFCDF + 6BAF4549121D1723008CFCDF + 6BAF454A121D1723008CFCDF + 6BAF454B121D1723008CFCDF + 6BAF454C121D1723008CFCDF + 6BAF454D121D1723008CFCDF + 6BAF454E121D1723008CFCDF + 6BAF454F121D1723008CFCDF + 6BAF4550121D1723008CFCDF + 6BAF4551121D1723008CFCDF + 6BAF4552121D1723008CFCDF + 6BAF4553121D1723008CFCDF + 6BAF4554121D1723008CFCDF + 6BAF4555121D1723008CFCDF + 6BAF4556121D1723008CFCDF + 6BAF4557121D1723008CFCDF + 6BAF4558121D1723008CFCDF + 6BAF4559121D1723008CFCDF + 6BAF455A121D1723008CFCDF + 6BAF455B121D1723008CFCDF + 6BAF455C121D1723008CFCDF + 6BAF455D121D1723008CFCDF + 6BAF455E121D1723008CFCDF + 6BAF455F121D1723008CFCDF + 6BAF4568121D1849008CFCDF + 6BAF4569121D1849008CFCDF + 6BAF456A121D1849008CFCDF + 6BAF456B121D1849008CFCDF + 6BAF456C121D1849008CFCDF + 6BAF456D121D1849008CFCDF + 6BAF456E121D1849008CFCDF + 6BAF4575121D18A5008CFCDF + 6BAF4576121D18A5008CFCDF + 6BAF4577121D18A5008CFCDF + 6BAF4578121D18A5008CFCDF + 6BAF4584121D19CB008CFCDF + 6BAF4585121D19CB008CFCDF + 6BAF4586121D19CB008CFCDF + 6BAF4587121D19CB008CFCDF + 6BAF4588121D19CB008CFCDF + 6BAF4589121D19CB008CFCDF + 6BAF458A121D19CB008CFCDF + 6BAF458B121D19CB008CFCDF + 6BAF458F121D1A1C008CFCDF + 6BAF4596121D1B18008CFCDF + 6BAF4597121D1B18008CFCDF + 6BAF4598121D1B18008CFCDF + 6BAF4599121D1B18008CFCDF + 6BAF459E121D1C15008CFCDF + 6BAF459F121D1C15008CFCDF + 6BAF45A0121D1C15008CFCDF + 6BAF45A1121D1C15008CFCDF + 6BAF45A8121D1C49008CFCDF + 6BAF45AE121D2C03008CFCDF + 6BAF45AF121D2C03008CFCDF + 6BAF45B0121D2C03008CFCDF + 6BAF45B1121D2C03008CFCDF + 6BAF45BA121D2F37008CFCDF + 6BAF45BB121D2F37008CFCDF SplitCount @@ -659,18 +835,18 @@ GeometryConfiguration Frame - {{0, 0}, {994, 559}} + {{0, 0}, {994, 575}} RubberWindowFrame 0 59 1280 719 0 0 1280 778 Module PBXNavigatorGroup Proportion - 559pt + 575pt Proportion - 114pt + 98pt Tabs @@ -700,7 +876,7 @@ GeometryConfiguration Frame - {{10, 27}, {994, 268}} + {{10, 27}, {994, 123}} Module PBXProjectFindModule @@ -738,7 +914,7 @@ GeometryConfiguration Frame - {{10, 27}, {994, 87}} + {{10, 27}, {994, 71}} RubberWindowFrame 0 59 1280 719 0 0 1280 778 @@ -823,12 +999,12 @@ GeometryConfiguration Frame - {{0, 0}, {1280, 289}} + {{0, 0}, {1280, 311}} Module PBXDebugCLIModule Proportion - 289pt + 311pt ContentConfiguration @@ -847,8 +1023,8 @@ yes sizes - {{0, 0}, {577, 94}} - {{577, 0}, {703, 94}} + {{0, 0}, {577, 89}} + {{577, 0}, {703, 89}} VerticalSplitView @@ -863,8 +1039,8 @@ yes sizes - {{0, 0}, {1280, 94}} - {{0, 94}, {1280, 290}} + {{0, 0}, {1280, 89}} + {{0, 89}, {1280, 273}} @@ -884,7 +1060,7 @@ DebugSTDIOWindowFrame {{200, 200}, {500, 300}} Frame - {{0, 294}, {1280, 384}} + {{0, 316}, {1280, 362}} PBXDebugSessionStackFrameViewKey DebugVariablesTableConfiguration @@ -897,13 +1073,13 @@ 410 Frame - {{577, 0}, {703, 94}} + {{577, 0}, {703, 89}} Module PBXDebugSessionModule Proportion - 384pt + 362pt Name diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj b/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj index c3df653..6c06824 100644 --- a/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj +++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/project.pbxproj @@ -17,11 +17,9 @@ 6B137C8B0F7FCC1100459200 /* Recast.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B137C820F7FCC1100459200 /* Recast.cpp */; }; 6B137C8C0F7FCC1100459200 /* RecastContour.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B137C830F7FCC1100459200 /* RecastContour.cpp */; }; 6B137C8E0F7FCC1100459200 /* RecastFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B137C850F7FCC1100459200 /* RecastFilter.cpp */; }; - 6B137C8F0F7FCC1100459200 /* RecastLog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B137C860F7FCC1100459200 /* RecastLog.cpp */; }; 6B137C900F7FCC1100459200 /* RecastMesh.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B137C870F7FCC1100459200 /* RecastMesh.cpp */; }; 6B137C910F7FCC1100459200 /* RecastRasterization.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */; }; 6B137C920F7FCC1100459200 /* RecastRegion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B137C890F7FCC1100459200 /* RecastRegion.cpp */; }; - 6B137C930F7FCC1100459200 /* RecastTimer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */; }; 6B25B6190FFA62BE004F1BC4 /* Sample.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */; }; 6B25B61D0FFA62BE004F1BC4 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */; }; 6B2AEC530FFB8958005BE9CC /* Sample_TileMesh.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B2AEC520FFB8958005BE9CC /* Sample_TileMesh.cpp */; }; @@ -39,6 +37,7 @@ 6BA1E88B10C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BA1E88810C7BFC9008007F6 /* Sample_SoloMeshSimple.cpp */; }; 6BAF3C591211663A008CFCDF /* CrowdTool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BAF3C581211663A008CFCDF /* CrowdTool.cpp */; }; 6BAF40DB12196A3D008CFCDF /* DetourNavMeshQuery.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */; }; + 6BAF4442121C3D26008CFCDF /* SampleInterfaces.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */; }; 6BB788170FC0472B003C24DB /* ChunkyTriMesh.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BB788160FC0472B003C24DB /* ChunkyTriMesh.cpp */; }; 6BB7FC0B10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */; }; 6BB7FDA510F36F0E006DA0A6 /* InputGeom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6BB7FDA410F36F0E006DA0A6 /* InputGeom.cpp */; }; @@ -75,16 +74,12 @@ 6B137C7B0F7FCBE400459200 /* MeshLoaderObj.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MeshLoaderObj.h; path = ../../Include/MeshLoaderObj.h; sourceTree = SOURCE_ROOT; }; 6B137C7C0F7FCBE400459200 /* SDLMain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLMain.h; path = ../../Include/SDLMain.h; sourceTree = SOURCE_ROOT; }; 6B137C7E0F7FCBFE00459200 /* Recast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Recast.h; path = ../../../Recast/Include/Recast.h; sourceTree = SOURCE_ROOT; }; - 6B137C800F7FCBFE00459200 /* RecastLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RecastLog.h; path = ../../../Recast/Include/RecastLog.h; sourceTree = SOURCE_ROOT; }; - 6B137C810F7FCBFE00459200 /* RecastTimer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RecastTimer.h; path = ../../../Recast/Include/RecastTimer.h; sourceTree = SOURCE_ROOT; }; 6B137C820F7FCC1100459200 /* Recast.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Recast.cpp; path = ../../../Recast/Source/Recast.cpp; sourceTree = SOURCE_ROOT; }; 6B137C830F7FCC1100459200 /* RecastContour.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastContour.cpp; path = ../../../Recast/Source/RecastContour.cpp; sourceTree = SOURCE_ROOT; }; 6B137C850F7FCC1100459200 /* RecastFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastFilter.cpp; path = ../../../Recast/Source/RecastFilter.cpp; sourceTree = SOURCE_ROOT; }; - 6B137C860F7FCC1100459200 /* RecastLog.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastLog.cpp; path = ../../../Recast/Source/RecastLog.cpp; sourceTree = SOURCE_ROOT; }; 6B137C870F7FCC1100459200 /* RecastMesh.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastMesh.cpp; path = ../../../Recast/Source/RecastMesh.cpp; sourceTree = SOURCE_ROOT; }; 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastRasterization.cpp; path = ../../../Recast/Source/RecastRasterization.cpp; sourceTree = SOURCE_ROOT; }; 6B137C890F7FCC1100459200 /* RecastRegion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastRegion.cpp; path = ../../../Recast/Source/RecastRegion.cpp; sourceTree = SOURCE_ROOT; }; - 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastTimer.cpp; path = ../../../Recast/Source/RecastTimer.cpp; sourceTree = SOURCE_ROOT; }; 6B25B6100FFA62AD004F1BC4 /* Sample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Sample.h; path = ../../Include/Sample.h; sourceTree = SOURCE_ROOT; }; 6B25B6140FFA62BE004F1BC4 /* Sample.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Sample.cpp; path = ../../Source/Sample.cpp; sourceTree = SOURCE_ROOT; }; 6B25B6180FFA62BE004F1BC4 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = ../../Source/main.cpp; sourceTree = SOURCE_ROOT; }; @@ -117,6 +112,9 @@ 6BAF40D912196A25008CFCDF /* DetourNavMeshQuery.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetourNavMeshQuery.h; path = ../../../Detour/Include/DetourNavMeshQuery.h; sourceTree = SOURCE_ROOT; }; 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DetourNavMeshQuery.cpp; path = ../../../Detour/Source/DetourNavMeshQuery.cpp; sourceTree = SOURCE_ROOT; }; 6BAF427A121ADCC2008CFCDF /* DetourAssert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetourAssert.h; path = ../../../Detour/Include/DetourAssert.h; sourceTree = SOURCE_ROOT; }; + 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SampleInterfaces.h; path = ../../Include/SampleInterfaces.h; sourceTree = SOURCE_ROOT; }; + 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleInterfaces.cpp; path = ../../Source/SampleInterfaces.cpp; sourceTree = SOURCE_ROOT; }; + 6BAF4561121D173A008CFCDF /* RecastAssert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RecastAssert.h; path = ../../../Recast/Include/RecastAssert.h; sourceTree = SOURCE_ROOT; }; 6BB788160FC0472B003C24DB /* ChunkyTriMesh.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ChunkyTriMesh.cpp; path = ../../Source/ChunkyTriMesh.cpp; sourceTree = SOURCE_ROOT; }; 6BB788180FC04753003C24DB /* ChunkyTriMesh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ChunkyTriMesh.h; path = ../../Include/ChunkyTriMesh.h; sourceTree = SOURCE_ROOT; }; 6BB7FC0910EBB6AA006DA0A6 /* NavMeshTesterTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NavMeshTesterTool.h; path = ../../Include/NavMeshTesterTool.h; sourceTree = SOURCE_ROOT; }; @@ -168,6 +166,8 @@ 6B555DF5100B25FC00247EA3 /* Samples */, 6BB7FE8E10F4A175006DA0A6 /* Tools */, 6B25B6180FFA62BE004F1BC4 /* main.cpp */, + 6BAF4440121C3D0A008CFCDF /* SampleInterfaces.h */, + 6BAF4441121C3D26008CFCDF /* SampleInterfaces.cpp */, 6BF5F2C511747E9F000502A6 /* stb_image.h */, 6BF5F23E1174763B000502A6 /* SlideShow.h */, 6BF5F23F1174763B000502A6 /* SlideShow.cpp */, @@ -263,12 +263,9 @@ 6B137C7D0F7FCBE800459200 /* Recast */ = { isa = PBXGroup; children = ( + 6BAF4561121D173A008CFCDF /* RecastAssert.h */, 6B137C7E0F7FCBFE00459200 /* Recast.h */, - 6B137C800F7FCBFE00459200 /* RecastLog.h */, - 6B137C810F7FCBFE00459200 /* RecastTimer.h */, 6B137C820F7FCC1100459200 /* Recast.cpp */, - 6B137C860F7FCC1100459200 /* RecastLog.cpp */, - 6B137C8A0F7FCC1100459200 /* RecastTimer.cpp */, 6B137C880F7FCC1100459200 /* RecastRasterization.cpp */, 6B137C850F7FCC1100459200 /* RecastFilter.cpp */, 6BF7C4531115C277002B3F46 /* RecastArea.cpp */, @@ -411,11 +408,9 @@ 6B137C8B0F7FCC1100459200 /* Recast.cpp in Sources */, 6B137C8C0F7FCC1100459200 /* RecastContour.cpp in Sources */, 6B137C8E0F7FCC1100459200 /* RecastFilter.cpp in Sources */, - 6B137C8F0F7FCC1100459200 /* RecastLog.cpp in Sources */, 6B137C900F7FCC1100459200 /* RecastMesh.cpp in Sources */, 6B137C910F7FCC1100459200 /* RecastRasterization.cpp in Sources */, 6B137C920F7FCC1100459200 /* RecastRegion.cpp in Sources */, - 6B137C930F7FCC1100459200 /* RecastTimer.cpp in Sources */, 6BB788170FC0472B003C24DB /* ChunkyTriMesh.cpp in Sources */, 6B25B6190FFA62BE004F1BC4 /* Sample.cpp in Sources */, 6B25B61D0FFA62BE004F1BC4 /* main.cpp in Sources */, @@ -445,6 +440,7 @@ 6B9847B811E7519A00FA177B /* RecastAlloc.cpp in Sources */, 6BAF3C591211663A008CFCDF /* CrowdTool.cpp in Sources */, 6BAF40DB12196A3D008CFCDF /* DetourNavMeshQuery.cpp in Sources */, + 6BAF4442121C3D26008CFCDF /* SampleInterfaces.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/RecastDemo/Include/InputGeom.h b/RecastDemo/Include/InputGeom.h index 7b8c446..43de321 100644 --- a/RecastDemo/Include/InputGeom.h +++ b/RecastDemo/Include/InputGeom.h @@ -55,9 +55,9 @@ public: InputGeom(); ~InputGeom(); - bool loadMesh(const char* filepath); + bool loadMesh(struct rcBuildContext* ctx, const char* filepath); - bool load(const char* filepath); + bool load(struct rcBuildContext* ctx, const char* filepath); bool save(const char* filepath); // Method to return static mesh data. diff --git a/RecastDemo/Include/Sample.h b/RecastDemo/Include/Sample.h index a3dc0f3..73b9859 100644 --- a/RecastDemo/Include/Sample.h +++ b/RecastDemo/Include/Sample.h @@ -19,10 +19,22 @@ #ifndef RECASTSAMPLE_H #define RECASTSAMPLE_H -#include "DebugDraw.h" -#include "RecastDump.h" +#include "Recast.h" +#include "SampleInterfaces.h" +// Tool types. +enum SampleToolType +{ + TOOL_NONE = 0, + TOOL_TILE_EDIT, + TOOL_TILE_HIGHLIGHT, + TOOL_NAVMESH_TESTER, + TOOL_OFFMESH_CONNECTION, + TOOL_CONVEX_VOLUME, + TOOL_CROWD, +}; + // These are just sample areas to use consistent values across the samples. // The use should specify these base on his needs. enum SamplePolyAreas @@ -43,46 +55,6 @@ enum SamplePolyFlags SAMPLE_POLYFLAGS_ALL = 0xffff // All abilities. }; - -// OpenGL debug draw implementation. -class DebugDrawGL : public duDebugDraw -{ -public: - virtual void depthMask(bool state); - virtual void begin(duDebugDrawPrimitives prim, float size = 1.0f); - virtual void vertex(const float* pos, unsigned int color); - virtual void vertex(const float x, const float y, const float z, unsigned int color); - virtual void end(); -}; - -// stdio file implementation. -class FileIO : public duFileIO -{ - FILE* m_fp; - int m_mode; -public: - FileIO(); - virtual ~FileIO(); - bool openForWrite(const char* path); - bool openForRead(const char* path); - virtual bool isWriting() const; - virtual bool isReading() const; - virtual bool write(const void* ptr, const size_t size); - virtual bool read(void* ptr, const size_t size); -}; - -// Tool types. -enum SampleToolType -{ - TOOL_NONE = 0, - TOOL_TILE_EDIT, - TOOL_TILE_HIGHLIGHT, - TOOL_NAVMESH_TESTER, - TOOL_OFFMESH_CONNECTION, - TOOL_CONVEX_VOLUME, - TOOL_CROWD, -}; - struct SampleTool { virtual ~SampleTool() {} @@ -122,10 +94,14 @@ protected: SampleTool* m_tool; + rcBuildContext* m_ctx; + public: Sample(); virtual ~Sample(); + void setContext(rcBuildContext* ctx) { m_ctx = ctx; } + void setTool(SampleTool* tool); virtual void handleSettings(); diff --git a/RecastDemo/Include/SampleInterfaces.h b/RecastDemo/Include/SampleInterfaces.h new file mode 100644 index 0000000..c31a6fa --- /dev/null +++ b/RecastDemo/Include/SampleInterfaces.h @@ -0,0 +1,90 @@ +// +// Copyright (c) 2009-2010 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#include "DebugDraw.h" +#include "Recast.h" +#include "RecastDump.h" + +// These are example implementations of various interfaces used in Recast and Detour. + +// Recast build context. +class BuildContext : public rcBuildContext +{ + int m_buildTime[RC_MAX_TIMES]; + + static const int MAX_MESSAGES = 1000; + const char* m_messages[MAX_MESSAGES]; + int m_messageCount; + static const int TEXT_POOL_SIZE = 8000; + char m_textPool[TEXT_POOL_SIZE]; + int m_textPoolSize; + +public: + BuildContext(); + ~BuildContext(); + + // Get current time in platform specific units. + virtual rcTimeVal getTime(); + // Returns time passed from 'start' to 'end' in microseconds. + virtual int getDeltaTimeUsec(const rcTimeVal start, const rcTimeVal end); + + // Resets log. + virtual void resetLog(); + // Logs a message. + virtual void log(const rcLogCategory category, const char* format, ...); + // Dumps the log to stdout. + void dumpLog(const char* format, ...); + // Returns number of log messages. + int getLogCount() const; + // Returns log message text. + const char* getLogText(const int i) const; + + // Resets build time collecting. + virtual void resetBuildTimes(); + // Reports build time of specified label for accumulation. + virtual void reportBuildTime(const rcBuilTimeLabel label, const int time); + // Returns accumulated build time for specified label, or -1 if no time was reported. + virtual int getBuildTime(const rcBuilTimeLabel label); +}; + +// OpenGL debug draw implementation. +class DebugDrawGL : public duDebugDraw +{ +public: + virtual void depthMask(bool state); + virtual void begin(duDebugDrawPrimitives prim, float size = 1.0f); + virtual void vertex(const float* pos, unsigned int color); + virtual void vertex(const float x, const float y, const float z, unsigned int color); + virtual void end(); +}; + +// stdio file implementation. +class FileIO : public duFileIO +{ + FILE* m_fp; + int m_mode; +public: + FileIO(); + virtual ~FileIO(); + bool openForWrite(const char* path); + bool openForRead(const char* path); + virtual bool isWriting() const; + virtual bool isReading() const; + virtual bool write(const void* ptr, const size_t size); + virtual bool read(void* ptr, const size_t size); +}; diff --git a/RecastDemo/Include/Sample_Debug.h b/RecastDemo/Include/Sample_Debug.h index e57659c..1e0042a 100644 --- a/RecastDemo/Include/Sample_Debug.h +++ b/RecastDemo/Include/Sample_Debug.h @@ -22,7 +22,6 @@ #include "Sample.h" #include "DetourNavMesh.h" #include "Recast.h" -#include "RecastLog.h" // Sample used for random debugging. class Sample_Debug : public Sample diff --git a/RecastDemo/Include/Sample_SoloMeshSimple.h b/RecastDemo/Include/Sample_SoloMeshSimple.h index b73de54..ccb651e 100644 --- a/RecastDemo/Include/Sample_SoloMeshSimple.h +++ b/RecastDemo/Include/Sample_SoloMeshSimple.h @@ -22,13 +22,11 @@ #include "Sample.h" #include "DetourNavMesh.h" #include "Recast.h" -#include "RecastLog.h" class Sample_SoloMeshSimple : public Sample { protected: bool m_keepInterResults; - rcBuildTimes m_buildTimes; float m_totalBuildTimeMs; unsigned char* m_triareas; diff --git a/RecastDemo/Include/Sample_SoloMeshTiled.h b/RecastDemo/Include/Sample_SoloMeshTiled.h index 28a839c..9f2cce1 100644 --- a/RecastDemo/Include/Sample_SoloMeshTiled.h +++ b/RecastDemo/Include/Sample_SoloMeshTiled.h @@ -22,7 +22,6 @@ #include "Sample.h" #include "DetourNavMesh.h" #include "Recast.h" -#include "RecastLog.h" #include "ChunkyTriMesh.h" class Sample_SoloMeshTiled : public Sample @@ -61,7 +60,6 @@ protected: bool m_measurePerTileTimings; bool m_keepInterResults; float m_tileSize; - rcBuildTimes m_buildTimes; float m_totalBuildTimeMs; rcPolyMesh* m_pmesh; diff --git a/RecastDemo/Include/Sample_TileMesh.h b/RecastDemo/Include/Sample_TileMesh.h index 586cc17..590c064 100644 --- a/RecastDemo/Include/Sample_TileMesh.h +++ b/RecastDemo/Include/Sample_TileMesh.h @@ -22,7 +22,6 @@ #include "Sample.h" #include "DetourNavMesh.h" #include "Recast.h" -#include "RecastLog.h" #include "ChunkyTriMesh.h" class Sample_TileMesh : public Sample @@ -30,7 +29,6 @@ class Sample_TileMesh : public Sample protected: bool m_keepInterResults; bool m_buildAll; - rcBuildTimes m_buildTimes; float m_totalBuildTimeMs; bool m_drawPortals; @@ -42,6 +40,30 @@ protected: rcPolyMeshDetail* m_dmesh; rcConfig m_cfg; + enum DrawMode + { + DRAWMODE_NAVMESH, + DRAWMODE_NAVMESH_TRANS, + DRAWMODE_NAVMESH_BVTREE, + DRAWMODE_NAVMESH_PORTALS, + DRAWMODE_NAVMESH_INVIS, + DRAWMODE_MESH, + DRAWMODE_VOXELS, + DRAWMODE_VOXELS_WALKABLE, + DRAWMODE_COMPACT, + DRAWMODE_COMPACT_DISTANCE, + DRAWMODE_COMPACT_REGIONS, + DRAWMODE_REGION_CONNECTIONS, + DRAWMODE_RAW_CONTOURS, + DRAWMODE_BOTH_CONTOURS, + DRAWMODE_CONTOURS, + DRAWMODE_POLYMESH, + DRAWMODE_POLYMESH_DETAIL, + MAX_DRAWMODE + }; + + DrawMode m_drawMode; + int m_maxTiles; int m_maxPolysPerTile; float m_tileSize; diff --git a/RecastDemo/Include/TestCase.h b/RecastDemo/Include/TestCase.h index a234dfe..6adf3e2 100644 --- a/RecastDemo/Include/TestCase.h +++ b/RecastDemo/Include/TestCase.h @@ -20,7 +20,7 @@ #define TESTCASE_H #include "DetourNavMesh.h" -#include "RecastTimer.h" +#include "Recast.h" class TestCase { @@ -71,7 +71,7 @@ public: inline const char* getSampleName() const { return m_sampleName; } inline const char* getGeomFileName() const { return m_geomFileName; } - void doTests(class dtNavMesh* navmesh, class dtNavMeshQuery* navquery); + void doTests(rcBuildContext* ctx, class dtNavMesh* navmesh, class dtNavMeshQuery* navquery); void handleRender(); bool handleRenderOverlay(double* proj, double* model, int* view); diff --git a/RecastDemo/Source/InputGeom.cpp b/RecastDemo/Source/InputGeom.cpp index 690afe3..b7c9f3d 100644 --- a/RecastDemo/Source/InputGeom.cpp +++ b/RecastDemo/Source/InputGeom.cpp @@ -22,7 +22,6 @@ #include #include #include "Recast.h" -#include "RecastLog.h" #include "InputGeom.h" #include "ChunkyTriMesh.h" #include "MeshLoaderObj.h" @@ -119,7 +118,7 @@ InputGeom::~InputGeom() delete m_mesh; } -bool InputGeom::loadMesh(const char* filepath) +bool InputGeom::loadMesh(rcBuildContext* ctx, const char* filepath) { if (m_mesh) { @@ -134,14 +133,12 @@ bool InputGeom::loadMesh(const char* filepath) m_mesh = new rcMeshLoaderObj; if (!m_mesh) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "loadMesh: Out of memory 'm_mesh'."); + ctx->log(RC_LOG_ERROR, "loadMesh: Out of memory 'm_mesh'."); return false; } if (!m_mesh->load(filepath)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Could not load '%s'", filepath); + ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Could not load '%s'", filepath); return false; } @@ -150,21 +147,19 @@ bool InputGeom::loadMesh(const char* filepath) m_chunkyMesh = new rcChunkyTriMesh; if (!m_chunkyMesh) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'm_chunkyMesh'."); + ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'm_chunkyMesh'."); return false; } if (!rcCreateChunkyTriMesh(m_mesh->getVerts(), m_mesh->getTris(), m_mesh->getTriCount(), 256, m_chunkyMesh)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Failed to build chunky mesh."); + ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Failed to build chunky mesh."); return false; } return true; } -bool InputGeom::load(const char* filePath) +bool InputGeom::load(rcBuildContext* ctx, const char* filePath) { char* buf = 0; FILE* fp = fopen(filePath, "rb"); @@ -204,7 +199,7 @@ bool InputGeom::load(const char* filePath) name++; if (*name) { - if (!loadMesh(name)) + if (!loadMesh(ctx, name)) { delete [] buf; return false; diff --git a/RecastDemo/Source/NavMeshTesterTool.cpp b/RecastDemo/Source/NavMeshTesterTool.cpp index c644aa1..31ab643 100644 --- a/RecastDemo/Source/NavMeshTesterTool.cpp +++ b/RecastDemo/Source/NavMeshTesterTool.cpp @@ -26,7 +26,6 @@ #include "NavMeshTesterTool.h" #include "Sample.h" #include "Recast.h" -#include "RecastTimer.h" #include "RecastDebugDraw.h" #include "DetourNavMesh.h" #include "DetourNavMeshBuilder.h" diff --git a/RecastDemo/Source/Sample.cpp b/RecastDemo/Source/Sample.cpp index 50b316c..a71d109 100644 --- a/RecastDemo/Source/Sample.cpp +++ b/RecastDemo/Source/Sample.cpp @@ -34,114 +34,13 @@ # define snprintf _snprintf #endif - -void DebugDrawGL::depthMask(bool state) -{ - glDepthMask(state ? GL_TRUE : GL_FALSE); -} - -void DebugDrawGL::begin(duDebugDrawPrimitives prim, float size) -{ - switch (prim) - { - case DU_DRAW_POINTS: - glPointSize(size); - glBegin(GL_POINTS); - break; - case DU_DRAW_LINES: - glLineWidth(size); - glBegin(GL_LINES); - break; - case DU_DRAW_TRIS: - glBegin(GL_TRIANGLES); - break; - case DU_DRAW_QUADS: - glBegin(GL_QUADS); - break; - }; -} - -void DebugDrawGL::vertex(const float* pos, unsigned int color) -{ - glColor4ubv((GLubyte*)&color); - glVertex3fv(pos); -} - -void DebugDrawGL::vertex(const float x, const float y, const float z, unsigned int color) -{ - glColor4ubv((GLubyte*)&color); - glVertex3f(x,y,z); -} - -void DebugDrawGL::end() -{ - glEnd(); - glLineWidth(1.0f); - glPointSize(1.0f); -} - - -FileIO::FileIO() : - m_fp(0), - m_mode(-1) -{ -} - -FileIO::~FileIO() -{ - if (m_fp) fclose(m_fp); -} - -bool FileIO::openForWrite(const char* path) -{ - if (m_fp) return false; - m_fp = fopen(path, "wb"); - if (!m_fp) return false; - m_mode = 1; - return true; -} - -bool FileIO::openForRead(const char* path) -{ - if (m_fp) return false; - m_fp = fopen(path, "rb"); - if (!m_fp) return false; - m_mode = 2; - return true; -} - -bool FileIO::isWriting() const -{ - return m_mode == 1; -} - -bool FileIO::isReading() const -{ - return m_mode == 2; -} - -bool FileIO::write(const void* ptr, const size_t size) -{ - if (!m_fp || m_mode != 1) return false; - fwrite(ptr, size, 1, m_fp); - return true; -} - -bool FileIO::read(void* ptr, const size_t size) -{ - if (!m_fp || m_mode != 2) return false; - fread(ptr, size, 1, m_fp); - return true; -} - - - Sample::Sample() : m_geom(0), m_navMesh(0), m_navQuery(0), m_navMeshDrawFlags(DU_DRAWNAVMESH_OFFMESHCONS), - m_tool(0) + m_tool(0), + m_ctx(0) { resetCommonSettings(); m_navQuery = dtAllocNavMeshQuery(); diff --git a/RecastDemo/Source/SampleInterfaces.cpp b/RecastDemo/Source/SampleInterfaces.cpp new file mode 100644 index 0000000..bb7b67d --- /dev/null +++ b/RecastDemo/Source/SampleInterfaces.cpp @@ -0,0 +1,277 @@ +#define _USE_MATH_DEFINES +#include +#include +#include +#include "SampleInterfaces.h" +#include "Recast.h" +#include "RecastDebugDraw.h" +#include "DetourDebugDraw.h" +#include "SDL.h" +#include "SDL_opengl.h" + +#ifdef WIN32 +# define snprintf _snprintf +#endif + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +BuildContext::BuildContext() : + m_messageCount(0), + m_textPoolSize(0) +{ + resetBuildTimes(); +} + +BuildContext::~BuildContext() +{ +} + + +#if defined(WIN32) + +// Win32 +#include + +rcTimeVal BuildContext::getTime() +{ + __int64 count; + QueryPerformanceCounter((LARGE_INTEGER*)&count); + return count; +} + +int BuildContext::getDeltaTimeUsec(const rcTimeVal start, const rcTimeVal end) +{ + static __int64 freq = 0; + if (freq == 0) + QueryPerformanceFrequency((LARGE_INTEGER*)&freq); + __int64 elapsed = end - start; + return (int)(elapsed*1000000 / freq); +} + +#else + +// Linux, BSD, OSX + +#include + +rcTimeVal BuildContext::getTime() +{ + timeval now; + gettimeofday(&now, 0); + return (rcTimeVal)now.tv_sec*1000000L + (rcTimeVal)now.tv_usec; +} + +int BuildContext::getDeltaTimeUsec(const rcTimeVal start, const rcTimeVal end) +{ + return (int)(end - start); +} + +#endif + + +void BuildContext::resetLog() +{ + m_messageCount = 0; + m_textPoolSize = 0; +} + +void BuildContext::log(const rcLogCategory category, const char* format, ...) +{ + if (m_messageCount >= MAX_MESSAGES) + return; + char* dst = &m_textPool[m_textPoolSize]; + int n = TEXT_POOL_SIZE - m_textPoolSize; + if (n < 2) + return; + // Store category + *dst = (char)category; + n--; + // Store message + va_list ap; + va_start(ap, format); + int ret = vsnprintf(dst+1, n-1, format, ap); + va_end(ap); + if (ret > 0) + m_textPoolSize += ret+2; + m_messages[m_messageCount++] = dst; +} + +void BuildContext::dumpLog(const char* format, ...) +{ + // Print header. + va_list ap; + va_start(ap, format); + vprintf(format, ap); + va_end(ap); + printf("\n"); + + // Print messages + const int TAB_STOPS[4] = { 28, 36, 44, 52 }; + for (int i = 0; i < m_messageCount; ++i) + { + const char* msg = m_messages[i]+1; + int n = 0; + while (*msg) + { + if (*msg == '\t') + { + int count = 1; + for (int j = 0; j < 4; ++j) + { + if (n < TAB_STOPS[j]) + { + count = TAB_STOPS[j] - n; + break; + } + } + while (--count) + { + putchar(' '); + n++; + } + } + else + { + putchar(*msg); + n++; + } + msg++; + } + putchar('\n'); + } +} + +int BuildContext::getLogCount() const +{ + return m_messageCount; +} + +const char* BuildContext::getLogText(const int i) const +{ + return m_messages[i]+1; +} + +void BuildContext::resetBuildTimes() +{ + for (int i = 0; i < RC_MAX_TIMES; ++i) + m_buildTime[i] = -1; +} + +void BuildContext::reportBuildTime(const rcBuilTimeLabel label, const int time) +{ + const int idx = (int)label; + // The build times are initialized to negative to indicate no samples collected. + if (m_buildTime[idx] < 0) + m_buildTime[idx] = time; + else + m_buildTime[idx] += time; +} + +int BuildContext::getBuildTime(const rcBuilTimeLabel label) +{ + return m_buildTime[label]; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +void DebugDrawGL::depthMask(bool state) +{ + glDepthMask(state ? GL_TRUE : GL_FALSE); +} + +void DebugDrawGL::begin(duDebugDrawPrimitives prim, float size) +{ + switch (prim) + { + case DU_DRAW_POINTS: + glPointSize(size); + glBegin(GL_POINTS); + break; + case DU_DRAW_LINES: + glLineWidth(size); + glBegin(GL_LINES); + break; + case DU_DRAW_TRIS: + glBegin(GL_TRIANGLES); + break; + case DU_DRAW_QUADS: + glBegin(GL_QUADS); + break; + }; +} + +void DebugDrawGL::vertex(const float* pos, unsigned int color) +{ + glColor4ubv((GLubyte*)&color); + glVertex3fv(pos); +} + +void DebugDrawGL::vertex(const float x, const float y, const float z, unsigned int color) +{ + glColor4ubv((GLubyte*)&color); + glVertex3f(x,y,z); +} + +void DebugDrawGL::end() +{ + glEnd(); + glLineWidth(1.0f); + glPointSize(1.0f); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +FileIO::FileIO() : + m_fp(0), + m_mode(-1) +{ +} + +FileIO::~FileIO() +{ + if (m_fp) fclose(m_fp); +} + +bool FileIO::openForWrite(const char* path) +{ + if (m_fp) return false; + m_fp = fopen(path, "wb"); + if (!m_fp) return false; + m_mode = 1; + return true; +} + +bool FileIO::openForRead(const char* path) +{ + if (m_fp) return false; + m_fp = fopen(path, "rb"); + if (!m_fp) return false; + m_mode = 2; + return true; +} + +bool FileIO::isWriting() const +{ + return m_mode == 1; +} + +bool FileIO::isReading() const +{ + return m_mode == 2; +} + +bool FileIO::write(const void* ptr, const size_t size) +{ + if (!m_fp || m_mode != 1) return false; + fwrite(ptr, size, 1, m_fp); + return true; +} + +bool FileIO::read(void* ptr, const size_t size) +{ + if (!m_fp || m_mode != 2) return false; + fread(ptr, size, 1, m_fp); + return true; +} + + diff --git a/RecastDemo/Source/Sample_Debug.cpp b/RecastDemo/Source/Sample_Debug.cpp index 9e61ff6..07f3a11 100644 --- a/RecastDemo/Source/Sample_Debug.cpp +++ b/RecastDemo/Source/Sample_Debug.cpp @@ -23,7 +23,6 @@ #include "InputGeom.h" #include "Recast.h" #include "DetourNavMesh.h" -#include "RecastLog.h" #include "RecastDebugDraw.h" #include "DetourDebugDraw.h" #include "RecastDump.h" @@ -164,7 +163,7 @@ Sample_Debug::Sample_Debug() : m_pmesh = rcAllocPolyMesh(); if (m_pmesh) { - rcBuildPolyMesh(*m_cset, 6, *m_pmesh); + rcBuildPolyMesh(m_ctx, *m_cset, 6, *m_pmesh); } } } @@ -376,14 +375,12 @@ bool Sample_Debug::handleBuild() m_cset = rcAllocContourSet(); if (!m_cset) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'cset'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'cset'."); return false; } - if (!rcBuildContours(*m_chf, /*m_cfg.maxSimplificationError*/1.3f, /*m_cfg.maxEdgeLen*/12, *m_cset)) + if (!rcBuildContours(m_ctx, *m_chf, /*m_cfg.maxSimplificationError*/1.3f, /*m_cfg.maxEdgeLen*/12, *m_cset)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not create contours."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not create contours."); return false; } } diff --git a/RecastDemo/Source/Sample_SoloMeshSimple.cpp b/RecastDemo/Source/Sample_SoloMeshSimple.cpp index a61db16..e0fb803 100644 --- a/RecastDemo/Source/Sample_SoloMeshSimple.cpp +++ b/RecastDemo/Source/Sample_SoloMeshSimple.cpp @@ -27,7 +27,6 @@ #include "Sample.h" #include "Sample_SoloMeshSimple.h" #include "Recast.h" -#include "RecastTimer.h" #include "RecastDebugDraw.h" #include "RecastDump.h" #include "DetourNavMesh.h" @@ -343,8 +342,7 @@ bool Sample_SoloMeshSimple::handleBuild() { if (!m_geom || !m_geom->getMesh()) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Input mesh is not specified."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Input mesh is not specified."); return false; } @@ -385,18 +383,14 @@ bool Sample_SoloMeshSimple::handleBuild() rcCalcGridSize(m_cfg.bmin, m_cfg.bmax, m_cfg.cs, &m_cfg.width, &m_cfg.height); // Reset build times gathering. - memset(&m_buildTimes, 0, sizeof(m_buildTimes)); - rcSetBuildTimes(&m_buildTimes); + m_ctx->resetBuildTimes(); // Start the build process. - rcTimeVal totStartTime = rcGetPerformanceTimer(); + rcTimeVal totStartTime = m_ctx->getTime(); - if (rcGetLog()) - { - rcGetLog()->log(RC_LOG_PROGRESS, "Building navigation:"); - rcGetLog()->log(RC_LOG_PROGRESS, " - %d x %d cells", m_cfg.width, m_cfg.height); - rcGetLog()->log(RC_LOG_PROGRESS, " - %.1fK verts, %.1fK tris", nverts/1000.0f, ntris/1000.0f); - } + m_ctx->log(RC_LOG_PROGRESS, "Building navigation:"); + m_ctx->log(RC_LOG_PROGRESS, " - %d x %d cells", m_cfg.width, m_cfg.height); + m_ctx->log(RC_LOG_PROGRESS, " - %.1fK verts, %.1fK tris", nverts/1000.0f, ntris/1000.0f); // // Step 2. Rasterize input polygon soup. @@ -406,14 +400,12 @@ bool Sample_SoloMeshSimple::handleBuild() m_solid = rcAllocHeightfield(); if (!m_solid) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'solid'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'solid'."); return false; } - if (!rcCreateHeightfield(*m_solid, m_cfg.width, m_cfg.height, m_cfg.bmin, m_cfg.bmax, m_cfg.cs, m_cfg.ch)) + if (!rcCreateHeightfield(m_ctx, *m_solid, m_cfg.width, m_cfg.height, m_cfg.bmin, m_cfg.bmax, m_cfg.cs, m_cfg.ch)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not create solid heightfield."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not create solid heightfield."); return false; } @@ -423,8 +415,7 @@ bool Sample_SoloMeshSimple::handleBuild() m_triareas = new unsigned char[ntris]; if (!m_triareas) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'm_triareas' (%d).", ntris); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'm_triareas' (%d).", ntris); return false; } @@ -432,8 +423,8 @@ bool Sample_SoloMeshSimple::handleBuild() // If your input data is multiple meshes, you can transform them here, calculate // the are type for each of the meshes and rasterize them. memset(m_triareas, 0, ntris*sizeof(unsigned char)); - rcMarkWalkableTriangles(m_cfg.walkableSlopeAngle, verts, nverts, tris, ntris, m_triareas); - rcRasterizeTriangles(verts, nverts, tris, m_triareas, ntris, *m_solid, m_cfg.walkableClimb); + rcMarkWalkableTriangles(m_ctx, m_cfg.walkableSlopeAngle, verts, nverts, tris, ntris, m_triareas); + rcRasterizeTriangles(m_ctx, verts, nverts, tris, m_triareas, ntris, *m_solid, m_cfg.walkableClimb); if (!m_keepInterResults) { @@ -448,9 +439,9 @@ bool Sample_SoloMeshSimple::handleBuild() // Once all geoemtry is rasterized, we do initial pass of filtering to // remove unwanted overhangs caused by the conservative rasterization // as well as filter spans where the character cannot possibly stand. - rcFilterLowHangingWalkableObstacles(m_cfg.walkableClimb, *m_solid); - rcFilterLedgeSpans(m_cfg.walkableHeight, m_cfg.walkableClimb, *m_solid); - rcFilterWalkableLowHeightSpans(m_cfg.walkableHeight, *m_solid); + rcFilterLowHangingWalkableObstacles(m_ctx, m_cfg.walkableClimb, *m_solid); + rcFilterLedgeSpans(m_ctx, m_cfg.walkableHeight, m_cfg.walkableClimb, *m_solid); + rcFilterWalkableLowHeightSpans(m_ctx, m_cfg.walkableHeight, *m_solid); // @@ -463,14 +454,12 @@ bool Sample_SoloMeshSimple::handleBuild() m_chf = rcAllocCompactHeightfield(); if (!m_chf) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'chf'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'chf'."); return false; } - if (!rcBuildCompactHeightfield(m_cfg.walkableHeight, m_cfg.walkableClimb, *m_solid, *m_chf)) + if (!rcBuildCompactHeightfield(m_ctx, m_cfg.walkableHeight, m_cfg.walkableClimb, *m_solid, *m_chf)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not build compact data."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not build compact data."); return false; } @@ -481,31 +470,29 @@ bool Sample_SoloMeshSimple::handleBuild() } // Erode the walkable area by agent radius. - if (!rcErodeWalkableArea(m_cfg.walkableRadius, *m_chf)) + if (!rcErodeWalkableArea(m_ctx, m_cfg.walkableRadius, *m_chf)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not erode."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not erode."); return false; } // (Optional) Mark areas. const ConvexVolume* vols = m_geom->getConvexVolumes(); for (int i = 0; i < m_geom->getConvexVolumeCount(); ++i) - rcMarkConvexPolyArea(vols[i].verts, vols[i].nverts, vols[i].hmin, vols[i].hmax, (unsigned char)vols[i].area, *m_chf); + rcMarkConvexPolyArea(m_ctx, vols[i].verts, vols[i].nverts, vols[i].hmin, vols[i].hmax, (unsigned char)vols[i].area, *m_chf); // Prepare for region partitioning, by calculating distance field along the walkable surface. - if (!rcBuildDistanceField(*m_chf)) + if (!rcBuildDistanceField(m_ctx, *m_chf)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not build distance field."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not build distance field."); return false; } // Partition the walkable surface into simple regions without holes. - if (!rcBuildRegions(*m_chf, m_cfg.borderSize, m_cfg.minRegionSize, m_cfg.mergeRegionSize)) + if (!rcBuildRegions(m_ctx, *m_chf, m_cfg.borderSize, m_cfg.minRegionSize, m_cfg.mergeRegionSize)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not build regions."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not build regions."); + return false; } // @@ -516,14 +503,12 @@ bool Sample_SoloMeshSimple::handleBuild() m_cset = rcAllocContourSet(); if (!m_cset) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'cset'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'cset'."); return false; } - if (!rcBuildContours(*m_chf, m_cfg.maxSimplificationError, m_cfg.maxEdgeLen, *m_cset)) + if (!rcBuildContours(m_ctx, *m_chf, m_cfg.maxSimplificationError, m_cfg.maxEdgeLen, *m_cset)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not create contours."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not create contours."); return false; } @@ -535,14 +520,12 @@ bool Sample_SoloMeshSimple::handleBuild() m_pmesh = rcAllocPolyMesh(); if (!m_pmesh) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'pmesh'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'pmesh'."); return false; } - if (!rcBuildPolyMesh(*m_cset, m_cfg.maxVertsPerPoly, *m_pmesh)) + if (!rcBuildPolyMesh(m_ctx, *m_cset, m_cfg.maxVertsPerPoly, *m_pmesh)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not triangulate contours."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not triangulate contours."); return false; } @@ -553,15 +536,14 @@ bool Sample_SoloMeshSimple::handleBuild() m_dmesh = rcAllocPolyMeshDetail(); if (!m_dmesh) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'pmdtl'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'pmdtl'."); return false; } - if (!rcBuildPolyMeshDetail(*m_pmesh, *m_chf, m_cfg.detailSampleDist, m_cfg.detailSampleMaxError, *m_dmesh)) + if (!rcBuildPolyMeshDetail(m_ctx, *m_pmesh, *m_chf, m_cfg.detailSampleDist, m_cfg.detailSampleMaxError, *m_dmesh)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not build detail mesh."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not build detail mesh."); + return false; } if (!m_keepInterResults) @@ -639,8 +621,7 @@ bool Sample_SoloMeshSimple::handleBuild() if (!dtCreateNavMeshData(¶ms, &navData, &navDataSize)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "Could not build Detour navmesh."); + m_ctx->log(RC_LOG_ERROR, "Could not build Detour navmesh."); return false; } @@ -648,68 +629,31 @@ bool Sample_SoloMeshSimple::handleBuild() if (!m_navMesh) { dtFree(navData); - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "Could not create Detour navmesh"); + m_ctx->log(RC_LOG_ERROR, "Could not create Detour navmesh"); return false; } if (!m_navMesh->init(navData, navDataSize, DT_TILE_FREE_DATA)) { dtFree(navData); - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "Could not init Detour navmesh"); + m_ctx->log(RC_LOG_ERROR, "Could not init Detour navmesh"); return false; } if (!m_navQuery->init(m_navMesh, 2048)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "Could not init Detour navmesh query"); + m_ctx->log(RC_LOG_ERROR, "Could not init Detour navmesh query"); return false; } } - rcTimeVal totEndTime = rcGetPerformanceTimer(); + rcTimeVal totEndTime = m_ctx->getTime(); // Show performance stats. - if (rcGetLog()) - { - const float pc = 100.0f / rcGetDeltaTimeUsec(totStartTime, totEndTime); - - rcGetLog()->log(RC_LOG_PROGRESS, "Rasterize: %.1fms (%.1f%%)", m_buildTimes.rasterizeTriangles/1000.0f, m_buildTimes.rasterizeTriangles*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Compact: %.1fms (%.1f%%)", m_buildTimes.buildCompact/1000.0f, m_buildTimes.buildCompact*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Border: %.1fms (%.1f%%)", m_buildTimes.filterBorder/1000.0f, m_buildTimes.filterBorder*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Walkable: %.1fms (%.1f%%)", m_buildTimes.filterWalkable/1000.0f, m_buildTimes.filterWalkable*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Reachable: %.1fms (%.1f%%)", m_buildTimes.filterMarkReachable/1000.0f, m_buildTimes.filterMarkReachable*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Erode walkable area: %.1fms (%.1f%%)", m_buildTimes.erodeArea/1000.0f, m_buildTimes.erodeArea*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Median area: %.1fms (%.1f%%)", m_buildTimes.filterMedian/1000.0f, m_buildTimes.filterMedian*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Distancefield: %.1fms (%.1f%%)", m_buildTimes.buildDistanceField/1000.0f, m_buildTimes.buildDistanceField*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - distance: %.1fms (%.1f%%)", m_buildTimes.buildDistanceFieldDist/1000.0f, m_buildTimes.buildDistanceFieldDist*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - blur: %.1fms (%.1f%%)", m_buildTimes.buildDistanceFieldBlur/1000.0f, m_buildTimes.buildDistanceFieldBlur*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Regions: %.1fms (%.1f%%)", m_buildTimes.buildRegions/1000.0f, m_buildTimes.buildRegions*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - watershed: %.1fms (%.1f%%)", m_buildTimes.buildRegionsReg/1000.0f, m_buildTimes.buildRegionsReg*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - expand: %.1fms (%.1f%%)", m_buildTimes.buildRegionsExp/1000.0f, m_buildTimes.buildRegionsExp*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - find catchment basins: %.1fms (%.1f%%)", m_buildTimes.buildRegionsFlood/1000.0f, m_buildTimes.buildRegionsFlood*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - filter: %.1fms (%.1f%%)", m_buildTimes.buildRegionsFilter/1000.0f, m_buildTimes.buildRegionsFilter*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Contours: %.1fms (%.1f%%)", m_buildTimes.buildContours/1000.0f, m_buildTimes.buildContours*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - trace: %.1fms (%.1f%%)", m_buildTimes.buildContoursTrace/1000.0f, m_buildTimes.buildContoursTrace*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - simplify: %.1fms (%.1f%%)", m_buildTimes.buildContoursSimplify/1000.0f, m_buildTimes.buildContoursSimplify*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Polymesh: %.1fms (%.1f%%)", m_buildTimes.buildPolymesh/1000.0f, m_buildTimes.buildPolymesh*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Build Polymesh Detail: %.1fms (%.1f%%)", m_buildTimes.buildDetailMesh/1000.0f, m_buildTimes.buildDetailMesh*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Polymesh: Verts:%d Polys:%d", m_pmesh->nverts, m_pmesh->npolys); - - rcGetLog()->log(RC_LOG_PROGRESS, "TOTAL: %.1fms", rcGetDeltaTimeUsec(totStartTime, totEndTime)/1000.0f); - } + duLogBuildTimes(m_ctx, m_ctx->getDeltaTimeUsec(totStartTime, totEndTime)); + m_ctx->log(RC_LOG_PROGRESS, ">> Polymesh: %d vertices %d polygons", m_pmesh->nverts, m_pmesh->npolys); - m_totalBuildTimeMs = rcGetDeltaTimeUsec(totStartTime, totEndTime)/1000.0f; + m_totalBuildTimeMs = m_ctx->getDeltaTimeUsec(totStartTime, totEndTime)/1000.0f; if (m_tool) m_tool->init(this); diff --git a/RecastDemo/Source/Sample_SoloMeshTiled.cpp b/RecastDemo/Source/Sample_SoloMeshTiled.cpp index 43a003f..6fdb717 100644 --- a/RecastDemo/Source/Sample_SoloMeshTiled.cpp +++ b/RecastDemo/Source/Sample_SoloMeshTiled.cpp @@ -27,7 +27,6 @@ #include "Sample.h" #include "Sample_SoloMeshTiled.h" #include "Recast.h" -#include "RecastTimer.h" #include "RecastDebugDraw.h" #include "DetourNavMesh.h" #include "DetourNavMeshBuilder.h" @@ -684,8 +683,7 @@ bool Sample_SoloMeshTiled::handleBuild() { if (!m_geom || !m_geom->getMesh() || !m_geom->getChunkyMesh()) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Input mesh is not specified."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Input mesh is not specified."); return false; } @@ -732,18 +730,16 @@ bool Sample_SoloMeshTiled::handleBuild() rcCalcGridSize(m_cfg.bmin, m_cfg.bmax, m_cfg.cs, &m_cfg.width, &m_cfg.height); // Reset build times gathering. - memset(&m_buildTimes, 0, sizeof(m_buildTimes)); - rcSetBuildTimes(&m_buildTimes); + m_ctx->resetBuildTimes(); // Start the build process. - rcTimeVal totStartTime = rcGetPerformanceTimer(); + rcTimeVal totStartTime = m_ctx->getTime(); // Calculate the number of tiles in the output and initialize tiles. m_tileSet = new TileSet; if (!m_tileSet) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'tileSet'."); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'tileSet'."); return false; } rcVcopy(m_tileSet->bmin, m_cfg.bmin); @@ -755,18 +751,14 @@ bool Sample_SoloMeshTiled::handleBuild() m_tileSet->tiles = new Tile[m_tileSet->height * m_tileSet->width]; if (!m_tileSet->tiles) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'tileSet->tiles' (%d).", m_tileSet->height * m_tileSet->width); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'tileSet->tiles' (%d).", m_tileSet->height * m_tileSet->width); return false; } - if (rcGetLog()) - { - rcGetLog()->log(RC_LOG_PROGRESS, "Building navigation:"); - rcGetLog()->log(RC_LOG_PROGRESS, " - %d x %d cells", m_cfg.width, m_cfg.height); - rcGetLog()->log(RC_LOG_PROGRESS, " - %d x %d tiles", m_tileSet->width, m_tileSet->height); - rcGetLog()->log(RC_LOG_PROGRESS, " - %.1f verts, %.1f tris", nverts/1000.0f, ntris/1000.0f); - } + m_ctx->log(RC_LOG_PROGRESS, "Building navigation:"); + m_ctx->log(RC_LOG_PROGRESS, " - %d x %d cells", m_cfg.width, m_cfg.height); + m_ctx->log(RC_LOG_PROGRESS, " - %d x %d tiles", m_tileSet->width, m_tileSet->height); + m_ctx->log(RC_LOG_PROGRESS, " - %.1f verts, %.1f tris", nverts/1000.0f, ntris/1000.0f); // Initialize per tile config. rcConfig tileCfg; @@ -778,23 +770,16 @@ bool Sample_SoloMeshTiled::handleBuild() unsigned char* triangleAreas = new unsigned char[chunkyMesh->maxTrisPerChunk]; if (!triangleAreas) { - if (rcGetLog()) - { - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'triangleAreas' (%d).", - chunkyMesh->maxTrisPerChunk); - } + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'triangleAreas' (%d).", + chunkyMesh->maxTrisPerChunk); return false; } -/* rcHeightfield* solid = 0; - rcCompactHeightfield* chf = 0; - rcContourSet* cset = 0;*/ - for (int y = 0; y < m_tileSet->height; ++y) { for (int x = 0; x < m_tileSet->width; ++x) { - rcTimeVal startTime = rcGetPerformanceTimer(); + rcTimeVal startTime = m_ctx->getTime(); Tile& tile = m_tileSet->tiles[x + y*m_tileSet->width]; tile.x = x; @@ -819,14 +804,12 @@ bool Sample_SoloMeshTiled::handleBuild() tile.solid = rcAllocHeightfield(); if (!tile.solid) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Out of memory 'solid'.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Out of memory 'solid'.", x, y); continue; } - if (!rcCreateHeightfield(*tile.solid, tileCfg.width, tileCfg.height, tileCfg.bmin, tileCfg.bmax, tileCfg.cs, tileCfg.ch)) + if (!rcCreateHeightfield(m_ctx, *tile.solid, tileCfg.width, tileCfg.height, tileCfg.bmin, tileCfg.bmax, tileCfg.cs, tileCfg.ch)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not create solid heightfield.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not create solid heightfield.", x, y); continue; } @@ -837,98 +820,87 @@ bool Sample_SoloMeshTiled::handleBuild() const int ntris = node.n; memset(triangleAreas, 0, ntris*sizeof(unsigned char)); - rcMarkWalkableTriangles(tileCfg.walkableSlopeAngle, + rcMarkWalkableTriangles(m_ctx, tileCfg.walkableSlopeAngle, verts, nverts, tris, ntris, triangleAreas); - rcRasterizeTriangles(verts, nverts, tris, triangleAreas, ntris, *tile.solid, m_cfg.walkableClimb); + rcRasterizeTriangles(m_ctx, verts, nverts, tris, triangleAreas, ntris, *tile.solid, m_cfg.walkableClimb); } - rcFilterLowHangingWalkableObstacles(m_cfg.walkableClimb, *tile.solid); - rcFilterLedgeSpans(tileCfg.walkableHeight, tileCfg.walkableClimb, *tile.solid); - rcFilterWalkableLowHeightSpans(tileCfg.walkableHeight, *tile.solid); + rcFilterLowHangingWalkableObstacles(m_ctx, m_cfg.walkableClimb, *tile.solid); + rcFilterLedgeSpans(m_ctx, tileCfg.walkableHeight, tileCfg.walkableClimb, *tile.solid); + rcFilterWalkableLowHeightSpans(m_ctx, tileCfg.walkableHeight, *tile.solid); tile.chf = rcAllocCompactHeightfield(); if (!tile.chf) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Out of memory 'chf'.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Out of memory 'chf'.", x, y); continue; } - if (!rcBuildCompactHeightfield(tileCfg.walkableHeight, tileCfg.walkableClimb, + if (!rcBuildCompactHeightfield(m_ctx, tileCfg.walkableHeight, tileCfg.walkableClimb, *tile.solid, *tile.chf)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not build compact data.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not build compact data.", x, y); continue; } // Erode the walkable area by agent radius. - if (!rcErodeWalkableArea(m_cfg.walkableRadius, *tile.chf)) + if (!rcErodeWalkableArea(m_ctx, m_cfg.walkableRadius, *tile.chf)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Could not erode."); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Could not erode."); continue; } // (Optional) Mark areas. const ConvexVolume* vols = m_geom->getConvexVolumes(); for (int i = 0; i < m_geom->getConvexVolumeCount(); ++i) - rcMarkConvexPolyArea(vols[i].verts, vols[i].nverts, vols[i].hmin, vols[i].hmax, (unsigned char)vols[i].area, *tile.chf); + rcMarkConvexPolyArea(m_ctx, vols[i].verts, vols[i].nverts, vols[i].hmin, vols[i].hmax, (unsigned char)vols[i].area, *tile.chf); - if (!rcBuildDistanceField(*tile.chf)) + if (!rcBuildDistanceField(m_ctx, *tile.chf)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not build distance fields.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not build distance fields.", x, y); continue; } - if (!rcBuildRegions(*tile.chf, tileCfg.borderSize, tileCfg.minRegionSize, tileCfg.mergeRegionSize)) + if (!rcBuildRegions(m_ctx, *tile.chf, tileCfg.borderSize, tileCfg.minRegionSize, tileCfg.mergeRegionSize)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not build regions.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not build regions.", x, y); continue; } tile.cset = rcAllocContourSet(); if (!tile.cset) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Out of memory 'cset'.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Out of memory 'cset'.", x, y); continue; } - if (!rcBuildContours(*tile.chf, tileCfg.maxSimplificationError, tileCfg.maxEdgeLen, *tile.cset)) + if (!rcBuildContours(m_ctx, *tile.chf, tileCfg.maxSimplificationError, tileCfg.maxEdgeLen, *tile.cset)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not create contours.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not create contours.", x, y); continue; } tile.pmesh = rcAllocPolyMesh(); if (!tile.pmesh) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Out of memory 'pmesh'.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Out of memory 'pmesh'.", x, y); continue; } - if (!rcBuildPolyMesh(*tile.cset, tileCfg.maxVertsPerPoly, *tile.pmesh)) + if (!rcBuildPolyMesh(m_ctx, *tile.cset, tileCfg.maxVertsPerPoly, *tile.pmesh)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not create poly mesh.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not create poly mesh.", x, y); continue; } tile.dmesh = rcAllocPolyMeshDetail(); if (!tile.dmesh) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Out of memory 'dmesh'.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Out of memory 'dmesh'.", x, y); continue; } - if (!rcBuildPolyMeshDetail(*tile.pmesh, *tile.chf, tileCfg.detailSampleDist, tileCfg .detailSampleMaxError, *tile.dmesh)) + if (!rcBuildPolyMeshDetail(m_ctx, *tile.pmesh, *tile.chf, tileCfg.detailSampleDist, tileCfg .detailSampleMaxError, *tile.dmesh)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not build detail mesh.", x, y); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: [%d,%d] Could not build detail mesh.", x, y); continue; } @@ -942,8 +914,8 @@ bool Sample_SoloMeshTiled::handleBuild() tile.cset = 0; } - rcTimeVal endTime = rcGetPerformanceTimer(); - tile.buildTime += rcGetDeltaTimeUsec(startTime, endTime); + rcTimeVal endTime = m_ctx->getTime(); + tile.buildTime += m_ctx->getDeltaTimeUsec(startTime, endTime); // Some extra code to measure some per tile statistics, // such as build time and how many polygons there are per tile. @@ -969,16 +941,14 @@ bool Sample_SoloMeshTiled::handleBuild() rcPolyMesh** pmmerge = new rcPolyMesh*[m_tileSet->width*m_tileSet->height]; if (!pmmerge) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'pmmerge' (%d).", m_tileSet->width*m_tileSet->height); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'pmmerge' (%d).", m_tileSet->width*m_tileSet->height); return false; } rcPolyMeshDetail** dmmerge = new rcPolyMeshDetail*[m_tileSet->width*m_tileSet->height]; if (!dmmerge) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'dmmerge' (%d).", m_tileSet->width*m_tileSet->height); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Out of memory 'dmmerge' (%d).", m_tileSet->width*m_tileSet->height); return false; } @@ -1000,20 +970,18 @@ bool Sample_SoloMeshTiled::handleBuild() m_pmesh = rcAllocPolyMesh(); if (!m_pmesh) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'pmesh'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'pmesh'."); return false; } - rcMergePolyMeshes(pmmerge, nmerge, *m_pmesh); + rcMergePolyMeshes(m_ctx, pmmerge, nmerge, *m_pmesh); m_dmesh = rcAllocPolyMeshDetail(); if (!m_dmesh) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'dmesh'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'dmesh'."); return false; } - rcMergePolyMeshDetails(dmmerge, nmerge, *m_dmesh); + rcMergePolyMeshDetails(m_ctx, dmmerge, nmerge, *m_dmesh); delete [] pmmerge; delete [] dmmerge; @@ -1092,8 +1060,7 @@ bool Sample_SoloMeshTiled::handleBuild() if (!dtCreateNavMeshData(¶ms, &navData, &navDataSize)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "Could not build Detour navmesh."); + m_ctx->log(RC_LOG_ERROR, "Could not build Detour navmesh."); return false; } @@ -1101,70 +1068,30 @@ bool Sample_SoloMeshTiled::handleBuild() if (!m_navMesh) { dtFree(navData); - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "Could not create Detour navmesh"); + m_ctx->log(RC_LOG_ERROR, "Could not create Detour navmesh"); return false; } if (!m_navMesh->init(navData, navDataSize, DT_TILE_FREE_DATA)) { dtFree(navData); - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "Could not init Detour navmesh"); + m_ctx->log(RC_LOG_ERROR, "Could not init Detour navmesh"); return false; } if (!m_navQuery->init(m_navMesh, 2048)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "Could not init Detour navmesh query"); + m_ctx->log(RC_LOG_ERROR, "Could not init Detour navmesh query"); return false; } } - rcTimeVal totEndTime = rcGetPerformanceTimer(); + rcTimeVal totEndTime = m_ctx->getTime(); - if (rcGetLog()) - { - const float pc = 100.0f / rcGetDeltaTimeUsec(totStartTime, totEndTime); + duLogBuildTimes(m_ctx, m_ctx->getDeltaTimeUsec(totStartTime, totEndTime)); + m_ctx->log(RC_LOG_PROGRESS, ">> Polymesh: %d vertices %d polygons", m_pmesh->nverts, m_pmesh->npolys); - rcGetLog()->log(RC_LOG_PROGRESS, "Rasterize: %.1fms (%.1f%%)", m_buildTimes.rasterizeTriangles/1000.0f, m_buildTimes.rasterizeTriangles*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Compact: %.1fms (%.1f%%)", m_buildTimes.buildCompact/1000.0f, m_buildTimes.buildCompact*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Border: %.1fms (%.1f%%)", m_buildTimes.filterBorder/1000.0f, m_buildTimes.filterBorder*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Walkable: %.1fms (%.1f%%)", m_buildTimes.filterWalkable/1000.0f, m_buildTimes.filterWalkable*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Reachable: %.1fms (%.1f%%)", m_buildTimes.filterMarkReachable/1000.0f, m_buildTimes.filterMarkReachable*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Erode walkable area: %.1fms (%.1f%%)", m_buildTimes.erodeArea/1000.0f, m_buildTimes.erodeArea*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Median area: %.1fms (%.1f%%)", m_buildTimes.filterMedian/1000.0f, m_buildTimes.filterMedian*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Distancefield: %.1fms (%.1f%%)", m_buildTimes.buildDistanceField/1000.0f, m_buildTimes.buildDistanceField*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - distance: %.1fms (%.1f%%)", m_buildTimes.buildDistanceFieldDist/1000.0f, m_buildTimes.buildDistanceFieldDist*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - blur: %.1fms (%.1f%%)", m_buildTimes.buildDistanceFieldBlur/1000.0f, m_buildTimes.buildDistanceFieldBlur*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Regions: %.1fms (%.1f%%)", m_buildTimes.buildRegions/1000.0f, m_buildTimes.buildRegions*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - watershed: %.1fms (%.1f%%)", m_buildTimes.buildRegionsReg/1000.0f, m_buildTimes.buildRegionsReg*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - expand: %.1fms (%.1f%%)", m_buildTimes.buildRegionsExp/1000.0f, m_buildTimes.buildRegionsExp*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - find catchment basins: %.1fms (%.1f%%)", m_buildTimes.buildRegionsFlood/1000.0f, m_buildTimes.buildRegionsFlood*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - filter: %.1fms (%.1f%%)", m_buildTimes.buildRegionsFilter/1000.0f, m_buildTimes.buildRegionsFilter*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Contours: %.1fms (%.1f%%)", m_buildTimes.buildContours/1000.0f, m_buildTimes.buildContours*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - trace: %.1fms (%.1f%%)", m_buildTimes.buildContoursTrace/1000.0f, m_buildTimes.buildContoursTrace*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - simplify: %.1fms (%.1f%%)", m_buildTimes.buildContoursSimplify/1000.0f, m_buildTimes.buildContoursSimplify*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Polymesh: %.1fms (%.1f%%)", m_buildTimes.buildPolymesh/1000.0f, m_buildTimes.buildPolymesh*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Build Polymesh Detail: %.1fms (%.1f%%)", m_buildTimes.buildDetailMesh/1000.0f, m_buildTimes.buildDetailMesh*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Merge Polymeshes: %.1fms (%.1f%%)", m_buildTimes.mergePolyMesh/1000.0f, m_buildTimes.mergePolyMesh*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Merge Polymesh Details: %.1fms (%.1f%%)", m_buildTimes.mergePolyMeshDetail/1000.0f, m_buildTimes.mergePolyMeshDetail*pc); - - if (m_pmesh) - rcGetLog()->log(RC_LOG_PROGRESS, "Polymesh: Verts:%d Polys:%d", m_pmesh->nverts, m_pmesh->npolys); - - rcGetLog()->log(RC_LOG_PROGRESS, "TOTAL: %.1fms", rcGetDeltaTimeUsec(totStartTime, totEndTime)/1000.0f); - } - - m_totalBuildTimeMs = rcGetDeltaTimeUsec(totStartTime, totEndTime)/1000.0f; + m_totalBuildTimeMs = m_ctx->getDeltaTimeUsec(totStartTime, totEndTime)/1000.0f; if (m_tool) m_tool->init(this); diff --git a/RecastDemo/Source/Sample_TileMesh.cpp b/RecastDemo/Source/Sample_TileMesh.cpp index 6723813..5bf2f98 100644 --- a/RecastDemo/Source/Sample_TileMesh.cpp +++ b/RecastDemo/Source/Sample_TileMesh.cpp @@ -27,7 +27,6 @@ #include "Sample.h" #include "Sample_TileMesh.h" #include "Recast.h" -#include "RecastTimer.h" #include "RecastDebugDraw.h" #include "DetourNavMesh.h" #include "DetourNavMeshBuilder.h" @@ -179,6 +178,7 @@ Sample_TileMesh::Sample_TileMesh() : m_cset(0), m_pmesh(0), m_dmesh(0), + m_drawMode(DRAWMODE_NAVMESH), m_maxTiles(0), m_maxPolysPerTile(0), m_tileSize(32), @@ -368,6 +368,9 @@ void Sample_TileMesh::handleSettings() imguiSeparator(); + imguiIndent(); + imguiIndent(); + if (imguiButton("Save")) { saveAll("all_tiles_navmesh.bin", m_navMesh); @@ -379,6 +382,9 @@ void Sample_TileMesh::handleSettings() m_navMesh = loadAll("all_tiles_navmesh.bin"); m_navQuery->init(m_navMesh, 2048); } + + imguiUnindent(); + imguiUnindent(); char msg[64]; snprintf(msg, 64, "Build Time: %.1fms", m_totalBuildTimeMs); @@ -427,22 +433,80 @@ void Sample_TileMesh::handleTools() void Sample_TileMesh::handleDebugMode() { - if (m_navMesh) - { - if (imguiCheck("Draw Portals", m_drawPortals)) - m_drawPortals = !m_drawPortals; - - imguiSeparator(); + // Check which modes are valid. + bool valid[MAX_DRAWMODE]; + for (int i = 0; i < MAX_DRAWMODE; ++i) + valid[i] = false; - imguiValue("Navmesh ready."); - imguiValue("Use 'Create Tiles' tool to experiment."); - imguiValue("LMB: (Re)Create tiles."); - imguiValue("LMB+SHIFT: Remove tiles."); - } - else + if (m_geom) { - imguiValue("Press [Build] to create tile mesh"); - imguiValue("with specified parameters."); + valid[DRAWMODE_NAVMESH] = m_navMesh != 0; + valid[DRAWMODE_NAVMESH_TRANS] = m_navMesh != 0; + valid[DRAWMODE_NAVMESH_BVTREE] = m_navMesh != 0; + valid[DRAWMODE_NAVMESH_PORTALS] = m_navMesh != 0; + valid[DRAWMODE_NAVMESH_INVIS] = m_navMesh != 0; + valid[DRAWMODE_MESH] = true; + valid[DRAWMODE_VOXELS] = m_solid != 0; + valid[DRAWMODE_VOXELS_WALKABLE] = m_solid != 0; + valid[DRAWMODE_COMPACT] = m_chf != 0; + valid[DRAWMODE_COMPACT_DISTANCE] = m_chf != 0; + valid[DRAWMODE_COMPACT_REGIONS] = m_chf != 0; + valid[DRAWMODE_REGION_CONNECTIONS] = m_cset != 0; + valid[DRAWMODE_RAW_CONTOURS] = m_cset != 0; + valid[DRAWMODE_BOTH_CONTOURS] = m_cset != 0; + valid[DRAWMODE_CONTOURS] = m_cset != 0; + valid[DRAWMODE_POLYMESH] = m_pmesh != 0; + valid[DRAWMODE_POLYMESH_DETAIL] = m_dmesh != 0; + } + + int unavail = 0; + for (int i = 0; i < MAX_DRAWMODE; ++i) + if (!valid[i]) unavail++; + + if (unavail == MAX_DRAWMODE) + return; + + imguiLabel("Draw"); + if (imguiCheck("Input Mesh", m_drawMode == DRAWMODE_MESH, valid[DRAWMODE_MESH])) + m_drawMode = DRAWMODE_MESH; + if (imguiCheck("Navmesh", m_drawMode == DRAWMODE_NAVMESH, valid[DRAWMODE_NAVMESH])) + m_drawMode = DRAWMODE_NAVMESH; + if (imguiCheck("Navmesh Invis", m_drawMode == DRAWMODE_NAVMESH_INVIS, valid[DRAWMODE_NAVMESH_INVIS])) + m_drawMode = DRAWMODE_NAVMESH_INVIS; + if (imguiCheck("Navmesh Trans", m_drawMode == DRAWMODE_NAVMESH_TRANS, valid[DRAWMODE_NAVMESH_TRANS])) + m_drawMode = DRAWMODE_NAVMESH_TRANS; + if (imguiCheck("Navmesh BVTree", m_drawMode == DRAWMODE_NAVMESH_BVTREE, valid[DRAWMODE_NAVMESH_BVTREE])) + m_drawMode = DRAWMODE_NAVMESH_BVTREE; + if (imguiCheck("Navmesh Portals", m_drawMode == DRAWMODE_NAVMESH_PORTALS, valid[DRAWMODE_NAVMESH_PORTALS])) + m_drawMode = DRAWMODE_NAVMESH_PORTALS; + if (imguiCheck("Voxels", m_drawMode == DRAWMODE_VOXELS, valid[DRAWMODE_VOXELS])) + m_drawMode = DRAWMODE_VOXELS; + if (imguiCheck("Walkable Voxels", m_drawMode == DRAWMODE_VOXELS_WALKABLE, valid[DRAWMODE_VOXELS_WALKABLE])) + m_drawMode = DRAWMODE_VOXELS_WALKABLE; + if (imguiCheck("Compact", m_drawMode == DRAWMODE_COMPACT, valid[DRAWMODE_COMPACT])) + m_drawMode = DRAWMODE_COMPACT; + if (imguiCheck("Compact Distance", m_drawMode == DRAWMODE_COMPACT_DISTANCE, valid[DRAWMODE_COMPACT_DISTANCE])) + m_drawMode = DRAWMODE_COMPACT_DISTANCE; + if (imguiCheck("Compact Regions", m_drawMode == DRAWMODE_COMPACT_REGIONS, valid[DRAWMODE_COMPACT_REGIONS])) + m_drawMode = DRAWMODE_COMPACT_REGIONS; + if (imguiCheck("Region Connections", m_drawMode == DRAWMODE_REGION_CONNECTIONS, valid[DRAWMODE_REGION_CONNECTIONS])) + m_drawMode = DRAWMODE_REGION_CONNECTIONS; + if (imguiCheck("Raw Contours", m_drawMode == DRAWMODE_RAW_CONTOURS, valid[DRAWMODE_RAW_CONTOURS])) + m_drawMode = DRAWMODE_RAW_CONTOURS; + if (imguiCheck("Both Contours", m_drawMode == DRAWMODE_BOTH_CONTOURS, valid[DRAWMODE_BOTH_CONTOURS])) + m_drawMode = DRAWMODE_BOTH_CONTOURS; + if (imguiCheck("Contours", m_drawMode == DRAWMODE_CONTOURS, valid[DRAWMODE_CONTOURS])) + m_drawMode = DRAWMODE_CONTOURS; + if (imguiCheck("Poly Mesh", m_drawMode == DRAWMODE_POLYMESH, valid[DRAWMODE_POLYMESH])) + m_drawMode = DRAWMODE_POLYMESH; + if (imguiCheck("Poly Mesh Detail", m_drawMode == DRAWMODE_POLYMESH_DETAIL, valid[DRAWMODE_POLYMESH_DETAIL])) + m_drawMode = DRAWMODE_POLYMESH_DETAIL; + + if (unavail) + { + imguiValue("Tick 'Keep Itermediate Results'"); + imguiValue("rebuild some tiles to see"); + imguiValue("more debug mode options."); } } @@ -454,9 +518,25 @@ void Sample_TileMesh::handleRender() DebugDrawGL dd; // Draw mesh - duDebugDrawTriMesh(&dd, m_geom->getMesh()->getVerts(), m_geom->getMesh()->getVertCount(), + if (m_drawMode == DRAWMODE_MESH) + { + // Draw mesh + duDebugDrawTriMeshSlope(&dd, m_geom->getMesh()->getVerts(), m_geom->getMesh()->getVertCount(), + m_geom->getMesh()->getTris(), m_geom->getMesh()->getNormals(), m_geom->getMesh()->getTriCount(), + m_agentMaxSlope); + m_geom->drawOffMeshConnections(&dd); + } + else if (m_drawMode != DRAWMODE_NAVMESH_TRANS) + { + // Draw mesh + duDebugDrawTriMesh(&dd, m_geom->getMesh()->getVerts(), m_geom->getMesh()->getVertCount(), + m_geom->getMesh()->getTris(), m_geom->getMesh()->getNormals(), m_geom->getMesh()->getTriCount(), 0); + m_geom->drawOffMeshConnections(&dd); + } + +/* duDebugDrawTriMesh(&dd, m_geom->getMesh()->getVerts(), m_geom->getMesh()->getVertCount(), m_geom->getMesh()->getTris(), m_geom->getMesh()->getNormals(), m_geom->getMesh()->getTriCount(), 0); - m_geom->drawOffMeshConnections(&dd); + m_geom->drawOffMeshConnections(&dd);*/ glDepthMask(GL_FALSE); @@ -476,19 +556,96 @@ void Sample_TileMesh::handleRender() // Draw active tile duDebugDrawBoxWire(&dd, m_tileBmin[0],m_tileBmin[1],m_tileBmin[2], m_tileBmax[0],m_tileBmax[1],m_tileBmax[2], m_tileCol, 2.0f); - if (m_navMesh) +/* if (m_navMesh) { duDebugDrawNavMeshWithClosedList(&dd, *m_navMesh, *m_navQuery, m_navMeshDrawFlags); if (m_drawPortals) duDebugDrawNavMeshPortals(&dd, *m_navMesh); + }*/ + + if (m_navMesh && + (m_drawMode == DRAWMODE_NAVMESH || + m_drawMode == DRAWMODE_NAVMESH_TRANS || + m_drawMode == DRAWMODE_NAVMESH_BVTREE || + m_drawMode == DRAWMODE_NAVMESH_PORTALS || + m_drawMode == DRAWMODE_NAVMESH_INVIS)) + { + if (m_drawMode != DRAWMODE_NAVMESH_INVIS) + duDebugDrawNavMeshWithClosedList(&dd, *m_navMesh, *m_navQuery, m_navMeshDrawFlags); + if (m_drawMode == DRAWMODE_NAVMESH_BVTREE) + duDebugDrawNavMeshBVTree(&dd, *m_navMesh); + if (m_drawMode == DRAWMODE_NAVMESH_PORTALS) + duDebugDrawNavMeshPortals(&dd, *m_navMesh); } + + glDepthMask(GL_TRUE); + + if (m_chf && m_drawMode == DRAWMODE_COMPACT) + duDebugDrawCompactHeightfieldSolid(&dd, *m_chf); + + if (m_chf && m_drawMode == DRAWMODE_COMPACT_DISTANCE) + duDebugDrawCompactHeightfieldDistance(&dd, *m_chf); + if (m_chf && m_drawMode == DRAWMODE_COMPACT_REGIONS) + duDebugDrawCompactHeightfieldRegions(&dd, *m_chf); + if (m_solid && m_drawMode == DRAWMODE_VOXELS) + { + glEnable(GL_FOG); + duDebugDrawHeightfieldSolid(&dd, *m_solid); + glDisable(GL_FOG); + } + if (m_solid && m_drawMode == DRAWMODE_VOXELS_WALKABLE) + { + glEnable(GL_FOG); + duDebugDrawHeightfieldWalkable(&dd, *m_solid); + glDisable(GL_FOG); + } + if (m_cset && m_drawMode == DRAWMODE_RAW_CONTOURS) + { + glDepthMask(GL_FALSE); + duDebugDrawRawContours(&dd, *m_cset); + glDepthMask(GL_TRUE); + } + if (m_cset && m_drawMode == DRAWMODE_BOTH_CONTOURS) + { + glDepthMask(GL_FALSE); + duDebugDrawRawContours(&dd, *m_cset, 0.5f); + duDebugDrawContours(&dd, *m_cset); + glDepthMask(GL_TRUE); + } + if (m_cset && m_drawMode == DRAWMODE_CONTOURS) + { + glDepthMask(GL_FALSE); + duDebugDrawContours(&dd, *m_cset); + glDepthMask(GL_TRUE); + } + if (m_chf && m_cset && m_drawMode == DRAWMODE_REGION_CONNECTIONS) + { + duDebugDrawCompactHeightfieldRegions(&dd, *m_chf); + + glDepthMask(GL_FALSE); + duDebugDrawRegionConnections(&dd, *m_cset); + glDepthMask(GL_TRUE); + } + if (m_pmesh && m_drawMode == DRAWMODE_POLYMESH) + { + glDepthMask(GL_FALSE); + duDebugDrawPolyMesh(&dd, *m_pmesh); + glDepthMask(GL_TRUE); + } + if (m_dmesh && m_drawMode == DRAWMODE_POLYMESH_DETAIL) + { + glDepthMask(GL_FALSE); + duDebugDrawPolyMeshDetail(&dd, *m_dmesh); + glDepthMask(GL_TRUE); + } + + m_geom->drawConvexVolumes(&dd); + if (m_tool) m_tool->handleRender(); - m_geom->drawConvexVolumes(&dd); - - glDepthMask(GL_TRUE); + glDepthMask(GL_TRUE); } void Sample_TileMesh::handleRenderOverlay(double* proj, double* model, int* view) @@ -528,8 +685,7 @@ bool Sample_TileMesh::handleBuild() { if (!m_geom || !m_geom->getMesh()) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: No vertices and triangles."); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: No vertices and triangles."); return false; } @@ -538,8 +694,7 @@ bool Sample_TileMesh::handleBuild() m_navMesh = dtAllocNavMesh(); if (!m_navMesh) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Could not allocate navmesh."); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Could not allocate navmesh."); return false; } @@ -551,15 +706,13 @@ bool Sample_TileMesh::handleBuild() params.maxPolys = m_maxPolysPerTile; if (!m_navMesh->init(¶ms)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Could not init navmesh."); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Could not init navmesh."); return false; } if (!m_navQuery->init(m_navMesh, 2048)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildTiledNavigation: Could not init Detour navmesh query"); + m_ctx->log(RC_LOG_ERROR, "buildTiledNavigation: Could not init Detour navmesh query"); return false; } @@ -660,14 +813,12 @@ void Sample_TileMesh::buildAllTiles() // Start the build process. - rcTimeVal totStartTime = rcGetPerformanceTimer(); + rcTimeVal totStartTime = m_ctx->getTime(); for (int y = 0; y < th; ++y) { for (int x = 0; x < tw; ++x) { - printf("processing: %d,%d\n", x,y); - m_tileBmin[0] = bmin[0] + x*tcs; m_tileBmin[1] = bmin[1]; m_tileBmin[2] = bmin[2] + y*tcs; @@ -690,9 +841,9 @@ void Sample_TileMesh::buildAllTiles() } // Start the build process. - rcTimeVal totEndTime = rcGetPerformanceTimer(); + rcTimeVal totEndTime = m_ctx->getTime(); - m_totalBuildTimeMs = rcGetDeltaTimeUsec(totStartTime, totEndTime)/1000.0f; + m_totalBuildTimeMs = m_ctx->getDeltaTimeUsec(totStartTime, totEndTime)/1000.0f; } void Sample_TileMesh::removeAllTiles() @@ -714,11 +865,13 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const { if (!m_geom || !m_geom->getMesh() || !m_geom->getChunkyMesh()) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Input mesh is not specified."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Input mesh is not specified."); return 0; } + m_tileMemUsage = 0; + m_tileBuildTime = 0; + cleanup(); const float* verts = m_geom->getMesh()->getVerts(); @@ -754,31 +907,25 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const m_cfg.bmax[2] += m_cfg.borderSize*m_cfg.cs; // Reset build times gathering. - memset(&m_buildTimes, 0, sizeof(m_buildTimes)); - rcSetBuildTimes(&m_buildTimes); + m_ctx->resetBuildTimes(); // Start the build process. - rcTimeVal totStartTime = rcGetPerformanceTimer(); + rcTimeVal totStartTime = m_ctx->getTime(); - if (rcGetLog()) - { - rcGetLog()->log(RC_LOG_PROGRESS, "Building navigation:"); - rcGetLog()->log(RC_LOG_PROGRESS, " - %d x %d cells", m_cfg.width, m_cfg.height); - rcGetLog()->log(RC_LOG_PROGRESS, " - %.1fK verts, %.1fK tris", nverts/1000.0f, ntris/1000.0f); - } + m_ctx->log(RC_LOG_PROGRESS, "Building navigation:"); + m_ctx->log(RC_LOG_PROGRESS, " - %d x %d cells", m_cfg.width, m_cfg.height); + m_ctx->log(RC_LOG_PROGRESS, " - %.1fK verts, %.1fK tris", nverts/1000.0f, ntris/1000.0f); // Allocate voxel heighfield where we rasterize our input data to. m_solid = rcAllocHeightfield(); if (!m_solid) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'solid'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'solid'."); return 0; } - if (!rcCreateHeightfield(*m_solid, m_cfg.width, m_cfg.height, m_cfg.bmin, m_cfg.bmax, m_cfg.cs, m_cfg.ch)) + if (!rcCreateHeightfield(m_ctx, *m_solid, m_cfg.width, m_cfg.height, m_cfg.bmin, m_cfg.bmax, m_cfg.cs, m_cfg.ch)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not create solid heightfield."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not create solid heightfield."); return 0; } @@ -788,12 +935,10 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const m_triareas = new unsigned char[chunkyMesh->maxTrisPerChunk]; if (!m_triareas) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'm_triareas' (%d).", chunkyMesh->maxTrisPerChunk); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'm_triareas' (%d).", chunkyMesh->maxTrisPerChunk); return 0; } - float tbmin[2], tbmax[2]; tbmin[0] = m_cfg.bmin[0]; tbmin[1] = m_cfg.bmin[2]; @@ -815,10 +960,10 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const m_tileTriCount += ntris; memset(m_triareas, 0, ntris*sizeof(unsigned char)); - rcMarkWalkableTriangles(m_cfg.walkableSlopeAngle, + rcMarkWalkableTriangles(m_ctx, m_cfg.walkableSlopeAngle, verts, nverts, tris, ntris, m_triareas); - rcRasterizeTriangles(verts, nverts, tris, m_triareas, ntris, *m_solid, m_cfg.walkableClimb); + rcRasterizeTriangles(m_ctx, verts, nverts, tris, m_triareas, ntris, *m_solid, m_cfg.walkableClimb); } if (!m_keepInterResults) @@ -830,9 +975,9 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const // Once all geometry is rasterized, we do initial pass of filtering to // remove unwanted overhangs caused by the conservative rasterization // as well as filter spans where the character cannot possibly stand. - rcFilterLowHangingWalkableObstacles(m_cfg.walkableClimb, *m_solid); - rcFilterLedgeSpans(m_cfg.walkableHeight, m_cfg.walkableClimb, *m_solid); - rcFilterWalkableLowHeightSpans(m_cfg.walkableHeight, *m_solid); + rcFilterLowHangingWalkableObstacles(m_ctx, m_cfg.walkableClimb, *m_solid); + rcFilterLedgeSpans(m_ctx, m_cfg.walkableHeight, m_cfg.walkableClimb, *m_solid); + rcFilterWalkableLowHeightSpans(m_ctx, m_cfg.walkableHeight, *m_solid); // Compact the heightfield so that it is faster to handle from now on. // This will result more cache coherent data as well as the neighbours @@ -840,14 +985,12 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const m_chf = rcAllocCompactHeightfield(); if (!m_chf) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'chf'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'chf'."); return 0; } - if (!rcBuildCompactHeightfield(m_cfg.walkableHeight, m_cfg.walkableClimb, *m_solid, *m_chf)) + if (!rcBuildCompactHeightfield(m_ctx, m_cfg.walkableHeight, m_cfg.walkableClimb, *m_solid, *m_chf)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not build compact data."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not build compact data."); return 0; } @@ -858,31 +1001,28 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const } // Erode the walkable area by agent radius. - if (!rcErodeWalkableArea(m_cfg.walkableRadius, *m_chf)) + if (!rcErodeWalkableArea(m_ctx, m_cfg.walkableRadius, *m_chf)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not erode."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not erode."); return false; } // (Optional) Mark areas. const ConvexVolume* vols = m_geom->getConvexVolumes(); for (int i = 0; i < m_geom->getConvexVolumeCount(); ++i) - rcMarkConvexPolyArea(vols[i].verts, vols[i].nverts, vols[i].hmin, vols[i].hmax, (unsigned char)vols[i].area, *m_chf); + rcMarkConvexPolyArea(m_ctx, vols[i].verts, vols[i].nverts, vols[i].hmin, vols[i].hmax, (unsigned char)vols[i].area, *m_chf); // Prepare for region partitioning, by calculating distance field along the walkable surface. - if (!rcBuildDistanceField(*m_chf)) + if (!rcBuildDistanceField(m_ctx, *m_chf)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not build distance field."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not build distance field."); return 0; } // Partition the walkable surface into simple regions without holes. - if (!rcBuildRegions(*m_chf, m_cfg.borderSize, m_cfg.minRegionSize, m_cfg.mergeRegionSize)) + if (!rcBuildRegions(m_ctx, *m_chf, m_cfg.borderSize, m_cfg.minRegionSize, m_cfg.mergeRegionSize)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not build regions."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not build regions."); return 0; } @@ -890,14 +1030,12 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const m_cset = rcAllocContourSet(); if (!m_cset) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'cset'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'cset'."); return 0; } - if (!rcBuildContours(*m_chf, m_cfg.maxSimplificationError, m_cfg.maxEdgeLen, *m_cset)) + if (!rcBuildContours(m_ctx, *m_chf, m_cfg.maxSimplificationError, m_cfg.maxEdgeLen, *m_cset)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not create contours."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not create contours."); return 0; } @@ -910,14 +1048,12 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const m_pmesh = rcAllocPolyMesh(); if (!m_pmesh) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'pmesh'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'pmesh'."); return 0; } - if (!rcBuildPolyMesh(*m_cset, m_cfg.maxVertsPerPoly, *m_pmesh)) + if (!rcBuildPolyMesh(m_ctx, *m_cset, m_cfg.maxVertsPerPoly, *m_pmesh)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could not triangulate contours."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could not triangulate contours."); return 0; } @@ -925,17 +1061,15 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const m_dmesh = rcAllocPolyMeshDetail(); if (!m_dmesh) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'dmesh'."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Out of memory 'dmesh'."); return 0; } - if (!rcBuildPolyMeshDetail(*m_pmesh, *m_chf, + if (!rcBuildPolyMeshDetail(m_ctx, *m_pmesh, *m_chf, m_cfg.detailSampleDist, m_cfg.detailSampleMaxError, *m_dmesh)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "buildNavigation: Could build polymesh detail."); + m_ctx->log(RC_LOG_ERROR, "buildNavigation: Could build polymesh detail."); return 0; } @@ -962,8 +1096,7 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const if (m_pmesh->nverts >= 0xffff) { // The vertex indices are ushorts, and cannot point to more than 0xffff vertices. - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "Too many vertices per tile %d (max: %d).", m_pmesh->nverts, 0xffff); + m_ctx->log(RC_LOG_ERROR, "Too many vertices per tile %d (max: %d).", m_pmesh->nverts, 0xffff); return false; } @@ -1022,60 +1155,29 @@ unsigned char* Sample_TileMesh::buildTileMesh(const int tx, const int ty, const if (!dtCreateNavMeshData(¶ms, &navData, &navDataSize)) { - if (rcGetLog()) - rcGetLog()->log(RC_LOG_ERROR, "Could not build Detour navmesh."); + m_ctx->log(RC_LOG_ERROR, "Could not build Detour navmesh."); return 0; } + + // Restore padding so that the debug visualization is correct. + for (int i = 0; i < m_pmesh->nverts; ++i) + { + unsigned short* v = &m_pmesh->verts[i*3]; + v[0] += (unsigned short)m_cfg.borderSize; + v[2] += (unsigned short)m_cfg.borderSize; + } + } m_tileMemUsage = navDataSize/1024.0f; - rcTimeVal totEndTime = rcGetPerformanceTimer(); + rcTimeVal totEndTime = m_ctx->getTime(); // Show performance stats. - if (rcGetLog()) - { - const float pc = 100.0f / rcGetDeltaTimeUsec(totStartTime, totEndTime); - - rcGetLog()->log(RC_LOG_PROGRESS, "Rasterize: %.1fms (%.1f%%)", m_buildTimes.rasterizeTriangles/1000.0f, m_buildTimes.rasterizeTriangles*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Compact: %.1fms (%.1f%%)", m_buildTimes.buildCompact/1000.0f, m_buildTimes.buildCompact*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Border: %.1fms (%.1f%%)", m_buildTimes.filterBorder/1000.0f, m_buildTimes.filterBorder*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Walkable: %.1fms (%.1f%%)", m_buildTimes.filterWalkable/1000.0f, m_buildTimes.filterWalkable*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Filter Reachable: %.1fms (%.1f%%)", m_buildTimes.filterMarkReachable/1000.0f, m_buildTimes.filterMarkReachable*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Erode walkable area: %.1fms (%.1f%%)", m_buildTimes.erodeArea/1000.0f, m_buildTimes.erodeArea*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Median area: %.1fms (%.1f%%)", m_buildTimes.filterMedian/1000.0f, m_buildTimes.filterMedian*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Distancefield: %.1fms (%.1f%%)", m_buildTimes.buildDistanceField/1000.0f, m_buildTimes.buildDistanceField*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - distance: %.1fms (%.1f%%)", m_buildTimes.buildDistanceFieldDist/1000.0f, m_buildTimes.buildDistanceFieldDist*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - blur: %.1fms (%.1f%%)", m_buildTimes.buildDistanceFieldBlur/1000.0f, m_buildTimes.buildDistanceFieldBlur*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Regions: %.1fms (%.1f%%)", m_buildTimes.buildRegions/1000.0f, m_buildTimes.buildRegions*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - watershed: %.1fms (%.1f%%)", m_buildTimes.buildRegionsReg/1000.0f, m_buildTimes.buildRegionsReg*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - expand: %.1fms (%.1f%%)", m_buildTimes.buildRegionsExp/1000.0f, m_buildTimes.buildRegionsExp*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - find catchment basins: %.1fms (%.1f%%)", m_buildTimes.buildRegionsFlood/1000.0f, m_buildTimes.buildRegionsFlood*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - filter: %.1fms (%.1f%%)", m_buildTimes.buildRegionsFilter/1000.0f, m_buildTimes.buildRegionsFilter*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Contours: %.1fms (%.1f%%)", m_buildTimes.buildContours/1000.0f, m_buildTimes.buildContours*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - trace: %.1fms (%.1f%%)", m_buildTimes.buildContoursTrace/1000.0f, m_buildTimes.buildContoursTrace*pc); - rcGetLog()->log(RC_LOG_PROGRESS, " - simplify: %.1fms (%.1f%%)", m_buildTimes.buildContoursSimplify/1000.0f, m_buildTimes.buildContoursSimplify*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Polymesh: %.1fms (%.1f%%)", m_buildTimes.buildPolymesh/1000.0f, m_buildTimes.buildPolymesh*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Build Polymesh Detail: %.1fms (%.1f%%)", m_buildTimes.buildDetailMesh/1000.0f, m_buildTimes.buildDetailMesh*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Merge Polymeshes: %.1fms (%.1f%%)", m_buildTimes.mergePolyMesh/1000.0f, m_buildTimes.mergePolyMesh*pc); - rcGetLog()->log(RC_LOG_PROGRESS, "Merge Polymesh Details: %.1fms (%.1f%%)", m_buildTimes.mergePolyMeshDetail/1000.0f, m_buildTimes.mergePolyMeshDetail*pc); - - - rcGetLog()->log(RC_LOG_PROGRESS, "Build Polymesh: %.1fms (%.1f%%)", m_buildTimes.buildPolymesh/1000.0f, m_buildTimes.buildPolymesh*pc); - - rcGetLog()->log(RC_LOG_PROGRESS, "Polymesh: Verts:%d Polys:%d", m_pmesh->nverts, m_pmesh->npolys); - - rcGetLog()->log(RC_LOG_PROGRESS, "TOTAL: %.1fms", rcGetDeltaTimeUsec(totStartTime, totEndTime)/1000.0f); - } - - m_tileBuildTime = rcGetDeltaTimeUsec(totStartTime, totEndTime)/1000.0f; + duLogBuildTimes(m_ctx, m_ctx->getDeltaTimeUsec(totStartTime, totEndTime)); + m_ctx->log(RC_LOG_PROGRESS, ">> Polymesh: %d vertices %d polygons", m_pmesh->nverts, m_pmesh->npolys); + m_tileBuildTime = m_ctx->getDeltaTimeUsec(totStartTime, totEndTime)/1000.0f; + dataSize = navDataSize; return navData; } diff --git a/RecastDemo/Source/TestCase.cpp b/RecastDemo/Source/TestCase.cpp index 9e148b9..74cd529 100644 --- a/RecastDemo/Source/TestCase.cpp +++ b/RecastDemo/Source/TestCase.cpp @@ -157,7 +157,7 @@ void TestCase::resetTimes() } } -void TestCase::doTests(dtNavMesh* navmesh, dtNavMeshQuery* navquery) +void TestCase::doTests(rcBuildContext* ctx, dtNavMesh* navmesh, dtNavMeshQuery* navquery) { if (!navmesh || !navquery) return; @@ -183,34 +183,34 @@ void TestCase::doTests(dtNavMesh* navmesh, dtNavMeshQuery* navquery) filter.excludeFlags = (unsigned short)iter->excludeFlags; // Find start points - rcTimeVal findNearestPolyStart = rcGetPerformanceTimer(); + rcTimeVal findNearestPolyStart = ctx->getTime(); dtPolyRef startRef = navquery->findNearestPoly(iter->spos, polyPickExt, &filter, 0); dtPolyRef endRef = navquery->findNearestPoly(iter->epos, polyPickExt, &filter, 0); - rcTimeVal findNearestPolyEnd = rcGetPerformanceTimer(); - iter->findNearestPolyTime += rcGetDeltaTimeUsec(findNearestPolyStart, findNearestPolyEnd); + rcTimeVal findNearestPolyEnd = ctx->getTime(); + iter->findNearestPolyTime += ctx->getDeltaTimeUsec(findNearestPolyStart, findNearestPolyEnd); if (!startRef || ! endRef) continue; // Find path - rcTimeVal findPathStart = rcGetPerformanceTimer(); + rcTimeVal findPathStart = ctx->getTime(); iter->npolys = navquery->findPath(startRef, endRef, iter->spos, iter->epos, &filter, polys, MAX_POLYS); - rcTimeVal findPathEnd = rcGetPerformanceTimer(); - iter->findPathTime += rcGetDeltaTimeUsec(findPathStart, findPathEnd); + rcTimeVal findPathEnd = ctx->getTime(); + iter->findPathTime += ctx->getDeltaTimeUsec(findPathStart, findPathEnd); // Find straight path if (iter->npolys) { - rcTimeVal findStraightPathStart = rcGetPerformanceTimer(); + rcTimeVal findStraightPathStart = ctx->getTime(); iter->nstraight = navquery->findStraightPath(iter->spos, iter->epos, polys, iter->npolys, straight, 0, 0, MAX_POLYS); - rcTimeVal findStraightPathEnd = rcGetPerformanceTimer(); - iter->findStraightPathTime += rcGetDeltaTimeUsec(findStraightPathStart, findStraightPathEnd); + rcTimeVal findStraightPathEnd = ctx->getTime(); + iter->findStraightPathTime += ctx->getDeltaTimeUsec(findStraightPathStart, findStraightPathEnd); } // Copy results diff --git a/RecastDemo/Source/imguiRenderGL.cpp b/RecastDemo/Source/imguiRenderGL.cpp index 3c5e5e0..30c1a21 100644 --- a/RecastDemo/Source/imguiRenderGL.cpp +++ b/RecastDemo/Source/imguiRenderGL.cpp @@ -308,6 +308,8 @@ static void getBakedQuad(stbtt_bakedchar *chardata, int pw, int ph, int char_ind *xpos += b->xadvance; } +static const float g_tabStops[4] = {150, 210, 270, 330}; + static float getTextLength(stbtt_bakedchar *chardata, const char* text) { float xpos = 0; @@ -315,7 +317,18 @@ static float getTextLength(stbtt_bakedchar *chardata, const char* text) while (*text) { int c = (unsigned char)*text; - if (c >= 32 && c < 128) + if (c == '\t') + { + for (int i = 0; i < 4; ++i) + { + if (xpos < g_tabStops[i]) + { + xpos = g_tabStops[i]; + break; + } + } + } + else if (c >= 32 && c < 128) { stbtt_bakedchar *b = chardata + c-32; int round_x = STBTT_ifloor((xpos + b->xoff) + 0.5); @@ -346,10 +359,23 @@ static void drawText(float x, float y, const char *text, int align, unsigned int glBegin(GL_TRIANGLES); + const float ox = x; + while (*text) { int c = (unsigned char)*text; - if (c >= 32 && c < 128) + if (c == '\t') + { + for (int i = 0; i < 4; ++i) + { + if (x < g_tabStops[i]+ox) + { + x = g_tabStops[i]+ox; + break; + } + } + } + else if (c >= 32 && c < 128) { stbtt_aligned_quad q; getBakedQuad(g_cdata, 512,512, c-32, &x,&y,&q); diff --git a/RecastDemo/Source/main.cpp b/RecastDemo/Source/main.cpp index 201066c..111bbd8 100644 --- a/RecastDemo/Source/main.cpp +++ b/RecastDemo/Source/main.cpp @@ -155,9 +155,7 @@ int main(int /*argc*/, char** /*argv*/) Sample* sample = 0; TestCase* test = 0; - rcLog log; - log.clear(); - rcSetLog(&log); + BuildContext ctx; glEnable(GL_CULL_FACE); @@ -217,16 +215,14 @@ int main(int /*argc*/, char** /*argv*/) { delete geom; geom = new InputGeom; - if (!geom || !geom->load("geomset.txt")) + if (!geom || !geom->load(&ctx, "geomset.txt")) { delete geom; geom = 0; showLog = true; logScroll = 0; - printf("Geom load log %s:\n", meshName); - for (int i = 0; i < log.getMessageCount(); ++i) - printf("%s\n", log.getMessageText(i)); + ctx.dumpLog("Geom load log %s:", meshName); } if (sample && geom) { @@ -572,15 +568,13 @@ int main(int /*argc*/, char** /*argv*/) if (imguiButton("Build")) { - log.clear(); + ctx.resetLog(); if (!sample->handleBuild()) { showLog = true; logScroll = 0; } - printf("Build log %s:\n", meshName); - for (int i = 0; i < log.getMessageCount(); ++i) - printf("%s\n", log.getMessageText(i)); + ctx.dumpLog("Build log %s:", meshName); // Clear test. delete test; @@ -619,13 +613,15 @@ int main(int /*argc*/, char** /*argv*/) if (imguiItem(g_samples[i].name)) { newSample = g_samples[i].create(); - if (newSample) strcpy(sampleName, g_samples[i].name); + if (newSample) + strcpy(sampleName, g_samples[i].name); } } if (newSample) { delete sample; sample = newSample; + sample->setContext(&ctx); if (geom && sample) { sample->handleMeshChanged(geom); @@ -695,16 +691,14 @@ int main(int /*argc*/, char** /*argv*/) strcat(path, meshName); geom = new InputGeom; - if (!geom || !geom->loadMesh(path)) + if (!geom || !geom->loadMesh(&ctx, path)) { delete geom; geom = 0; showLog = true; logScroll = 0; - printf("Geom load log %s:\n", meshName); - for (int i = 0; i < log.getMessageCount(); ++i) - printf("%s\n", log.getMessageText(i)); + ctx.dumpLog("Geom load log %s:", meshName); } if (sample && geom) { @@ -790,6 +784,7 @@ int main(int /*argc*/, char** /*argv*/) { delete sample; sample = newSample; + sample->setContext(&ctx); showSample = false; } @@ -804,28 +799,24 @@ int main(int /*argc*/, char** /*argv*/) strcat(path, meshName); geom = new InputGeom; - if (!geom || !geom->loadMesh(path)) + if (!geom || !geom->loadMesh(&ctx, path)) { delete geom; geom = 0; showLog = true; logScroll = 0; - printf("Geom load log %s:\n", meshName); - for (int i = 0; i < log.getMessageCount(); ++i) - printf("%s\n", log.getMessageText(i)); + ctx.dumpLog("Geom load log %s:", meshName); } if (sample && geom) { sample->handleMeshChanged(geom); } - log.clear(); + ctx.resetLog(); if (sample && !sample->handleBuild()) { - printf("Build log %s:\n", meshName); - for (int i = 0; i < log.getMessageCount(); ++i) - printf("%s\n", log.getMessageText(i)); + ctx.dumpLog("Build log %s:", meshName); } if (geom || sample) @@ -861,7 +852,7 @@ int main(int /*argc*/, char** /*argv*/) // Do the tests. if (sample) - test->doTests(sample->getNavMesh(), sample->getNavMeshQuery()); + test->doTests(&ctx, sample->getNavMesh(), sample->getNavMeshQuery()); } } @@ -874,8 +865,8 @@ int main(int /*argc*/, char** /*argv*/) { if (imguiBeginScrollArea("Log", 10, 10, width - 300, 200, &logScroll)) mouseOverMenu = true; - for (int i = 0; i < log.getMessageCount(); ++i) - imguiLabel(log.getMessageText(i)); + for (int i = 0; i < ctx.getLogCount(); ++i) + imguiLabel(ctx.getLogText(i)); imguiEndScrollArea(); }