From 3243bc5f7e0025f08f017028ed85280a715dc9f9 Mon Sep 17 00:00:00 2001 From: Artur Kamieniecki Date: Wed, 15 Apr 2026 15:51:26 +0200 Subject: [PATCH 1/2] Images for detourCrowd docs Signed-off-by: Artur Kamieniecki --- .../interactivity/navigation/add-agent.png | Bin 0 -> 31508 bytes .../navigation/detour-crowd-component.png | Bin 0 -> 16855 bytes .../navigation/on-agent-position.png | Bin 0 -> 34261 bytes .../navigation/set-move-target.png | Bin 0 -> 31035 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 static/images/user-guide/interactivity/navigation/add-agent.png create mode 100644 static/images/user-guide/interactivity/navigation/detour-crowd-component.png create mode 100644 static/images/user-guide/interactivity/navigation/on-agent-position.png create mode 100644 static/images/user-guide/interactivity/navigation/set-move-target.png diff --git a/static/images/user-guide/interactivity/navigation/add-agent.png b/static/images/user-guide/interactivity/navigation/add-agent.png new file mode 100644 index 0000000000000000000000000000000000000000..16aa05724fc9131e03c3db04426f4170431cf01c GIT binary patch literal 31508 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 literal 0 HcmV?d00001 diff --git a/static/images/user-guide/interactivity/navigation/detour-crowd-component.png b/static/images/user-guide/interactivity/navigation/detour-crowd-component.png new file mode 100644 index 0000000000000000000000000000000000000000..6717d79819ceedc54e0f9efe65c0a9234360871f GIT binary patch literal 16855 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 literal 0 HcmV?d00001 diff --git a/static/images/user-guide/interactivity/navigation/on-agent-position.png b/static/images/user-guide/interactivity/navigation/on-agent-position.png new file mode 100644 index 0000000000000000000000000000000000000000..945e7b22483ad445f0436657fcf55af52f041ed0 GIT binary patch literal 34261 zcmZU*1z1&E7dE;936)ZiP89^{MkEBKOOTdEO1e9wlvWWzkWfHCIt8S=k?sy9lWbIws=v-etajXB0!)6mCC(s)-WuAopTJXx7XswfniHT<`Xg9Tsdr)$lI zUoJUG$g1JMKi)XcUcsNqoh7xLpV*l>yBRr}qRegWY)sjlOdL&3ZJjLaoHsG*MBzp3 z$cr92ni@G<+S$^nS=yMQG)+$CdnoxtEivh1 zItoRHl6@qu=KgVG+D(_(?Lus8w40UHR9i@fNX42A^J-WPW#4Va_jXkj^1L%2+~2#0 z@+BvbnHaOjEqIVBepcBC!;?1_Z@6wO&r3qgJV2_o#{T{E_`Jc6k(JelRL@(CmVk!9 z)qI7ggeT>=+k9p>nLOWReFPWpHV!(O2`3pY9@}Rf;XVximd+JHe9xMh4O1s7><_Q%N49;-0{93P5gkp|P%g8w$w8gJQzf_bmjlkl_2;KysLXPm%z1sha_c!^11C82&7F^RQer=;u??C& zT|7uH6&-{ZI*-2_F%M=^?}B@OHE^Pk246OPqLXr?c*Mmv&-7_RSw5*1+vEUKUNoTu z4l2y(DRr290{bMzw>vF`ifLr!tHqSmP30p;iDj+rsID)<+E!~xe3|>&>j$MHRmQUK zYn9SQ*O_li;Lwi*NZiy2QF2m@vx%IHk+}IqMW*@x`|%|suT7t%@AIwM8?IuOwn|M7 z4-em54$E~&;*}g9sR+avsp-utvX=MC9Xw(6m}qqP*wXb)YNSdjw=!SrEnk6?73<^x zYmGj|jqCFsG^VDeBp!qjWPT+>SJ`0YWX2g77=Bprl6VP5(czHXr!IrLKDw^&;HC3a zr1aUizo|i^RmX2_U0vKf4XcCwn=u{fnYcQRUXC`C<)#Z!YR7E7H{9krZ#-a(`BYd) zsI9H7;nC2hDi~F=_C&}y;-^QBBF`;#ZAULp508eCk#c>TEcYKdXRZ5dAsu&V@a~HJ zDcUIvOK}mRzH;@dk-7QH#zu+oT$BV(5mr=G6campNMxj9&BSAs;JSuGV^Ga{0BMXt5ui{ff}Wbfi~ zp86@6_{I%1RH;s0<@<2n0M+c~?hicIu3dXUDPa2`tzURe(sQF@*-;^$6Ro$m*L`d5 z#a>NhB%Z$KDnkUN06x6($NK)`yRl?EX1H%-Vlt}iWc9wgwm9{Py!1N!^Qp9SXkqsj zp1GCP)#RV_ab0Zu1g%<&wja4nC(CUt`afg(@4O?4l?(2Q<1pD>>5-9@|%ryiS*-i^Rl9c50^j&O= zZflLCRMF7D!p6pC{=N3&(?c?T>v-OoJ1O1)7w4z9Zr(&s5^`zW7%!m|*_^PRt)*^g zXxQ4`ZV>x>tXvXj;9$TF<<#i8;Hy_c!Mjqs64)6C4&>@m5dw*GEm-U(*ZP&-rWr zyu)2qfL{Oco)f3T!lSdJ#b}Zbc1{dmX0+Foq)UYJ3WTnbvNyx}|EO}Yf~vyq6Fp_+ zw;uBk3cB=B)JKP+ufPA=`N@7D6kXoaZ}z_@_|hD|D5v08>PGR~Owhr)dw6)j+lr;n z|DGs&2&=_Qf!CWN77g9mGXDGb`xE6hS0kkYp?KtHr5`;)p?v?IyAcx;*AEZh_&xcp z?fmrc&6_tb^lLonnV4`Uzu8IWXyk3B{5`|w=jR{$?#8jwmlBe|%A-40`!;@n?#kl$jZ$|IYVR&%-}>PoF;3t@EA!CE)yLiX671 zjDo@=PfsCK>XS?*dq+p^lbYJvT8r`GjD9z`2aN zvz;#Y&iK=gCK=V002!8nz`#KSk!^N3L+KKk`+0b)7(TgLKG|C$R zfq@x+7Z(;DYiYeYJ=|QJs&qQ~{cZN^N9M4}k=|Z>0vh3eZ@a$ZI!b1ifL8P)OoO7ZC>oJY zU0q$WHV12XfVsuLep$3SP?eOFm_Xy=q4+ZVe0-rLJY&beWBEoanF+k3R2S3QY@OJm zU{oYIPY74*7?e$K?dhNU@a>kCmWV~ca>r#k_`~YzYB%)KEUN9k;o(?#;c{2pc%ofx zhqDkhTnAJuSJdKI0Or+rsWdK~5hz4%X=!Qr^vPn=tMCH5+T#!hsgZrQn zcBktxhwcf#AIa5j5{yDxsR>q~_+1`u?zgM^p75dK;^G6&zP`Q+1*0XOKi?!FB&>&z zV_|3KpKyiEU=1xneMG<{f*coX<@fKNjg1YhXV2363(wBH51?jcmS0VJj2D|K_VzYhi0{!ncDA>}#f|mRLZc=vGqW!$ z9@B=G%!X!IB0zovdpFjHvY%vXceE*iKa#@rngD z)I%K`JEmCL`Y9sn+qjIIadNea&{6g~OS0K*R5xw}2VW&M9{i$+@@J5LKLVHijawT@*=l1Ha$(Jm|35e<3de6{MnmS zWYUIjPoO^W>}no7S-Zvm|31HJ9-v(X*|GV-piMxw)@*y=QBJrA@c* znf~r}4IU2iOoB=E>tW!dLv!~&7&o_fbq#?w8by6SeMj`~nG-9trA(zH?t67rLkud3 z{5Hr98XfN}AFbsSpilr%S}PnDzrH)|=IJwpeR9<2cM%As6~GmON68%shhp@UGwKZ-G{_7*B=;1L%Fw65M8eG*A9a+SQpxoR42Eup^ip@^02| z3cJDbRirAchN6`Wx)xGc2ubY{vIi2jM%*D=XZ9m7pW7kK`qG%)B0Za>MJs@$rJ^ zf?$--UcWTF|HbL-UpbLKou&+T?(npdC32aBl=d8KjGL&HkFiXZm`AG}kQ#V5keO`2 z4pjGagbB#46K70tpN}sVHe$KmY%hGTG59Kg<<(rdT!RHqn94?ul^@}|=olCorkn8e zB6oA9npOmrzP^m$N;}c3e92}zNpwePXaeI26R}hmL$Z&Dr>ESk%b%%ni-b;*jjExH zFc$~7i~)C~8AWg%K#{18YqCt1m=id;xR_FD9?~3q->mH-V=0J+d2V`ea1dQRI{EHj z6PTV(!oR}?T5s+9~2m(0H*5E}!f^il8yP~2>3uk#a^ zckkZG{MD@GD+d(*Yb1}-e`kMZ#%uGFdX5IlAF95wt4ltCglRL_<<}21SgK2?rKKgh zd-up)U0t^h5955(DtemrJ(t5ZZxoQf;?lZ*|GQA$!@0h;b#|>n6mzI~fs;i>5Isi@iJDc6C%3Y1$BK;bO4y8y@NxVTg(%&e>?=Z=Tf z;_ja8j~ZnBZP6;uwn0XG1oeFq9`oL2z)D;+10c@htqBqKBxRJg}0yw z5CHD5c&m`mcG)W6>0nRth-OmV*)j*pAG!$I(e7n67{Ny;>jjGJhAyQ#HplCZ?lV~n z;o4NOnmR45bzcM;iAhN{J)-vEbNb7yH1`0{Ppsbk8ZU?a;JJb#n|X_=h~pBD=fOrO z^sO}WzT{Wo;SV)5NG^^R37pqQ6ra~eQQbqI>&x_4_qI#P4xGv^EW@@a|G<0=8_M1D2G;lF9 zUrzDfx%{48FN{F!j1V|WOuzk;b<(U__V^gBas@L_fe8Sq00iw1HnhD@Rx@Rkl?#fK z*V6J`WYtD(5X8JO`HcYeIx#UEMiMSLce>o7{-E!>q@>7vz3;}I@0jCx%<*-;*+zm; zBA%gY1i-*W2VeDmcw1qt90Q<*TP@~w$19X5zXM!dJ-s4_MX6l9?;0nku#y>APdE6~ zbA>%?^w%2jXhn5T^dq*znwnb&Cnuk-(MMD8ebuj1$!)Lk+;1$k9E|Ywf)4pSNq^%W z0Xg@h=X+8SWN34JGb~%?RNw7pYq$3H-nni#{p|e&BMqhz9|Z?JJ=%lgo*T)@$tZs` z3@kOv(w2?aHC~6t4FQ+~v!O(HB0^YV<&erRDk>rq^%iVwY(zl0r7-L?z9qoxQj_al z9CeSZt*!IcKi_;ZStevPk}EDJcLgT73Ii4;EiFOn*~trc64Gne(C*y1gYp{*KItyV zx1FxSM3LQdOdopH`HUN`9_valIv`3^=M#*>%~^wGLw$$JwPI_RJb63@9CR!^ic6_y z)=vsX(^69(P|W1(-A6qDE|EUVsLDjl#LWC}EWdtD$n47Y{_yr3>yfHy)FNF>2W#BO zH$Z)?dR1z2-Prz6BobA0C4PT>r>Z@OkZ}M&-C?dC4d&w~>1Y~3kDYYq7i+-6eod6I zkg)5%nyK+Z2rV*k5xfA?!x-9^`&xEp>SLxKIhq_~xLCPQzu`YP78lPMZUh)W%C1|F z>?Q9bduGx~cGo{sq2FdauObW(W>KO0w(+xP&**>;0qiTQZQ6!1Zj2!3`BCHL*4);1 zi;quzqC@m_gC|?ld3AsR`p+$4VJcKQ))wGh1d1nnt}*L=cU6>Q20}&a=;SoNwiagK zdyH9kabgvlguEKS8YYU>pmvJMbZ4T>3g|Q$5U0r0R62_?ol96)jgymY@N^Tt~0tS+Wwk)xX4~+iZ2B=0ZkCF z#*#i!E61sY1>@?&8Lu&TVXPDz02UXwCYwzR~gYP`+b4cCU+4)#QBLqMhHKHD@^dw#* zA_^4sIZ<0BgK{8#_!3`ISCw?pEM8YP@9mkzKE<5XhN)6N^5R7t(638b!ora@TA%UX|KKp3;+?VE_&9 zzVca($gDcVatLWuZ>b#z^dm!eXJ;qfBli9K;;byDR)#+TCE~cd>MUeg17)P0V7tFIEVU?hIOU|Oldh9zM#QM_dWDFXxEU0RHZq>t zS1cC*B;Kc_^pTlZ!z0Xvsl&?8Ke8m51-C0ZsQ7`q#e$L&7t8fz&vG>&C0nf&m}v^2 zjN{#(kt3_CgP9qQ#U&*lVq#*P`?*9!YC5@7?z<^b)GbKuBo}udlv-^1Bs5;KP>GR=gDD&xh}poApq%j-|Ln1Kj|y zRvZw3Zt26WQ<^p5qWx6wYd*V_w6tdSLs%jb5|Uzgv_+tta03pstOiEu3iV-mj87}t zz0#Z1MRvOTdC}nSiKd2{+U;0%9i2{?#fEB1P8U{ROGObi8qYV&#nqLc%p@{Ob7FkF z0V-W5Z{(L5-nBLdMDHrqVRLkJ{EEAKZ~y@FwXJG40Gy+vqX!wPvJUkjpg+va%os+{ zv#{jMY}zKPZbqpSArWYC^$Gc1O)}@;JsA(hC%KNPD-NY=H{lLwsW<&_Xh<4*g%fYLCC$I zcNPTk;mu!nJd=@^kFn)MznBsoA0Ou%5dr-iR-R5wY?cXEg<5_nW5V6b>tR~I+9?y( z2L&vEq+7xu$V4zc&2NKi^#=g}1__(%bkI)^VG=xkk5Uj698M2xZZk681d#<36LZdk zrl5M~3cuY<#H{Zr9WxDlbmb{>+qJs(0v&hnR*bkI1TGj=@}XHA|liP`~i|n z!OEI-$8TqmzIok7Q(~w?`#2eM=$WO@(sm13)1b0gB$r8R>eFwwaIca8l=Ag!bZlHP z=+jpn{t2^hUY!25WOnh9{7#0Q{u+mVNp=NL79}O6ySw|@hyE86laFikL7?>TPFVa( z&4?p$yj#dp7g8fyV37$g4|?}4+W1tvNG~@J?}j>lh8hjydu2PtJ3)jzMQVvm?yoP}P4c*n3nk@m zlTu%%58}nU^6$%9k~*~XL9f4vb6HE^a0PymSx=+krw`J)9A=bAp5#Kf^Xz$8X|35V zI)*qQU0j!y4>LRcer!w(MxKUzv=JTOzwbI3RO+%zZ_dYi1|UmY;WzT>epxi?e*)|U%!9P7z-*anzFJo6yXA>X=Zv- z60cm0p=D01TfBZz_3cwEkHTF7j84jJX~#tcWiiT97oyY=&a*cefl+8w*kkq&?h~Mi zc-zoz2?@7bO^E|}#-$b_hIh4hb`H`nXafdV=(4T>V*0R<4-6lq$6|Q_xr2$&lp!DY zSXFf(%k)+dFUNcDqZlpMn3;rLrw1&gXw)Ll+F7~hxzYh7^it<}*vZrcU zJ1CRg_MxcA2tX*4-ZiU7cmLR0?cQrMJD1a z2+9Hp?2(Mjs}9F!+~j~d5rk1>BE7dh8a+dzjAQAjm@v||OO?Fyjy^{#`fOlLnOgM< zZehtX;oMZkqO6V%1tQ1>OBgv;l$7w8^(EthD4#X_99gL}>F9j!WYFNIrlu&$Sc6`# znsY@&B{R&9w zB3!aGJTWj5uu=XsH6rfGFZ1&9_S`_S0J0TtS{wBG&P#@rkvkzz6G~s^nb(J2Vmm1- z6}Pxb=|4!XZsUEWe_TEU{||TijbGbO&F~yzu-bcjLFW8Q9IcV9CL<@;2;;d&h!&bi z+gs&zqQR2{-VhtZ`t#}?Rzf#yG#_;9AKx-F@j zccLgTB!YC=<3zDBF&p~&2mtY7qjam?uK~df`2PJnZ&X16hsdp9!U4MXO6y*?D=q8N zSLtx5ggiS5*VqExy{a2fOIEl?%SPm?S1D-mS7&POd+z;u@%HWYEnxysqY(HvFhy?z#(c;gCvap#mG4S*_6`6f<}dQs z2?YV$xQ=Jw2Kg&xK6G#>>ae^Q6$teNIO`X_l<@#KCs$(S_OnO> zd9U~Fl2lTvWT=W0UaF|7(n&=QfG_O%0u4IV)qlUli-WSUjy`K8jasD1!62tkKTaj%r{_x*Qd;{en>_OK_wVUBi7QvG zuu^<0k}73SAe~6=iDoEgZgY6dM7*`LQ`}BoUeR5go12S8`nlf%x;yiw$CvY>R{|w; zd%_vMnS;azbDmALTxKMm?w9XMx>#4Q0qD0hB;>8i_Ejv zW?z|S5|rq#!O*%+e4QS?k=mAXUE)>je}1{)kxN@3hXZrMW-8VXBj$E?(V&d|=jU6l+k94FY(k_> z0Je{jcj|7Lvbou}t5xI42SUf=i}BnHB8hgQ&g*uwI)#R4tr6t6e7+zvIsQfE;0Z{z z0Rpq$Pfiq+!Rvh8_TyK7T9HNn&9qHG*3$oGBDPb;KHz-vr=e4 z?(enZ3Qj2EH5{!Z+R??FkMr7%6{3L!dI_~9+()_pj)jK)E`E;pUZGlmAbm8EQ21?^ z{xSY{i-M)L(-a^F0>%m4I|nyptK&|J%%bYQTS)&ztqn5=kveT{Z3orYKh^>;;=Xuq{MH-`dA4%DC2tgLqHW&YbCHda>QaKpE5 z-+pug!h;vW3c|v}BRg%2GxvjogN>%ETo9GQ(9X_oq4f-~?mR5}!U&DTSfJi_BME!kj7wEl|cGWMS2@ekPnuWOJ;euQa z^u7gnWf=7A`I^I-hp=q}f3E-e69t5TUR0E(?)-q#cBVQM`UEi1tOiql20Ob==^C6R zE_xhvFlIvIYuJa2#ra38FgFz`}p#h3eQ(ZG*OQ%(^b#&-jV*Ox4^J@V9U9-ekQ zpVfQq6_(m(srifS`qgB8!n+ZBdg9_}jLOLoK&N6ByPg$)xf}}p$;-b-w4X-@P09kuvZMBylJz(D+}$ zhF;<-1d0J;9%J`sUmMJMP|*=#4$*VuGOh!w%y-f*wHu05V1x?6*!cZ>eswhz)auW0 z6BYLJ=uxy{QBY^RS-M=-Dx^GS-Sz3RG3kBKEs@{T`kkrR0NTS3$jMp9zJa|ZZ1A%V z?3?yy-0jOd6r}ke!MTH6o#FMHnwolkef_GRpC4%Z^n!w9K<~j$&)%mibY2CK;tG&n z6(JiYHntW}2O__~|2Xu0k4^XfOjA-sVp&>R4ix@O_QL=0;RAx3^u4zwo!5pgGcz-* z3bWABp`cnG%F145REYPde;D%M(_=b%`UVSakm9#ND?&_R#Hojxi0Bo9-LMT*%NV}6 zwZAV38ub^Qd7EXV^8BP-sMD6n4rMs~2|nGF5y+m~20a_gHzi5w7p^s}0=@lCL_ z{K1GY1i1J8X)KAaML}XAG9nGZ0!a>EntQMb~C({c52^J*bHi^9(ZJ0!1jI>7S@P3CI^#t zOn}p z>(V8|wV`Y>F5@8Lt3pmIxQGc&CG1WJLKVutx%p9dikLw{KIqTCU@w88f|KgKs0cRC zKR5-%)o7;LLp9?gpA`w9%B_BBS~L_$$N?aMBKZ$+u3L*uy9&LJ9YOQ%vN*=467+|Z zg%KcIJRS4&W02zuxYXW!{21|`?WtUfo~|yZ>xR~9ghIC3!UywYab4XhlQKJ2Xm*=5 zhsi@tin6kxn_jg)+A@L?Hh~%;<9kjFCV%AnzM)!`Y2O2wC^s1xF#XQg4G_^0`B7A% zX&1@a-k|bueqh2Yyl)^1gb>h1A&(8({}?EIJG;A-YGyWwwvA*w%A)SfI1gr#xtfG# z`a@>|51NUI=>Z7kkRj^WZkgn>x^;`A$*QQ6tqQcds=BGn;M`H2#YHRusYjlq;&a~`^_T%IscPi7)T{{i4+TGd~8 z2j|Th>iWeJJLH{=l(uW=$DH-YMbgZnn@J4S#R`*Xl z^@wuX4LSW61ub|fz??vkXNIcwMsf`7nR&qN1%nmF-ny=U)PWm)PEADtqJw~wi)g|b zxU4XNAr;0KrCE7BG}9V#0`LXI@Pra9vK;(Ep)3O0PU`UUYh+|v3{eb@Frti%jAA## z!@}k^HduZ5hXV^LoQC+PT3RHl-05}dd_|yS=N1;w0~-wANz2NZ!fO1Qt@A5uIzKym z{r2rmpZshkQTEf2@bIhtJDgdNyh5ddx`RZY$V?EGLtOkt$1+dGmvdYuv97GM#G&Ud zd85ORZZt{52mx#fOECu4ANXnbsKTP6?0p?6ZEbR;Bq8;mk0KD&Hjcv}f3V_4#}}m} zoz2ikAo{%SS{^=lB^gV(0j?5GfIo~UL$Fu{T{pXJ^MpvPw$H!j_I7 z)6;K*svEEci?TGn( zvcC>Zj}wGab7uny3kxR1sRujYvwqQFo6#&XmZ1q30%m1?0Y6u2H%o&;E^`<@UQ5-%8C1bMtMSG%MTT!-f7 zW;z%LKri+$e(%e!Tgf28k)`n%w8sj!O&ZWf>{q(UA>e}zWilWcbpjqXmcG|-KE&<@ z$|b3M>A)yFG|N6;*|oK_T|G9ZTlxvsX{qAcj*u!k`~l9q;K1BjE5 zyP{`kG92V%O$Wj5^HC*ZbpjBdqXV#N|S)(6~ z)auSs2dvfFL5WJ5)C;bV&Dv9ZnB{_A2dp5r!%);*rk9JoK}HQUR8B4DLpYl8P1 z$-e0@CIA^@phln=MM&V@G&eT~bO&`q=41DKHmf>C-OSt^8=4fu?04?upBcmpV1Dp2 zMOlZ*WuW)%LJug@@|hRRx1`v(Bm3m{T)O3t18aSE2(ga5l*@~lD*N+}Dn*-cETgiLV@{r1Q0feFZa=6G=eR*A{nb5a&ZD-~2!8IOd$i!_z&Z7R zzjUE6EYf+|=z)h$O74!;7zysfGR2oJ3>H-nQW1zBN zy+b&uMgWpV{vUz-aof^|ge3_yP;Hfeq|-kcdC?<@f9wtew8$Vr7I8}-`0(5RrL2e= zNq=42gfZU=cM@_cPz4a9tML0<+p-`WM5sz>U|;}`mG1t1N-&o>pH?cq8My<3f$xtW z=&+aRV>%G2l!^l;%4YR0{*t4|u>vL<^i|kJpGxv$A%O@^bBqC52B*rdYTR#2AWz9Z z*=DYJsJTo`AjpVX$hjWi%U9e*L3~8N0#0-V`CQ@p zIgFu3V0a?o9Ig;Ze;PwK!nu6;1)xfRfNOkxunQ3S1Q9EQJ3xaB0wJgg@&y*v5Q-uJ z(xXt*Sx<3U43K>Qa7aE~&ae?CmmxL&f+}cfn_&s;?IH0Zkg@ngeT-_Na!qE_` z65NkZet$3a6EY<})dPj%vL53^%zav)y=##1L2yZ_&7=l}9l#<%NS?rzGD7wV_C9DP z$yx{{hyKF}hPpFk6Og5Y9N#vC7mON%F7My%8XqTz9^V2&C?{MI!m3SLBN|}#&d<%! zMM}F&c*8I)gkUei>nbZNk9N8^wjqZ@1Tz?qy@Yw-gyKe1{w8jj4jZ^I(Dfa*7bKDJ zA;NRl3+kf44xVWKaW5L($UGBB3J`q7hs0CWP41s1g7wBNOu#M#5XrDrII< zggvgyzh`Zza#=?pKY*Tu+*^oF0W}lZ34y-XYt9l9=*Yc+IBW=k0cf_7yt7p!tDP=p zki7OVBA^^e!)ZNKDaXv0KCFu74+Q8>fc-i zi&rX&>M}I$m^;b~P-{|6EbL8y7?515LXyz%v!r~Rzd*y9p?2Xh`@>KgW-c}2BunkL z0H9R_w&+K=1%y)~PY@ylH}BqED-sqIeOp=!`PixNZUhbv4r7&0cVK1^5)%hOl^Ve% zZf$L4xqbM1aaebagaixV1gaiV0EE}Cqodq+djz)seBZpu!gBR)>=n50AlQJYR7lqf zLPF%`&6`Nx0@6Pc*=p!0um!^rRYOdS7RIU;KstTDa~I2Gq^R0x{UYF}=og44fD-x6{+p=f=%bS|I3{!42Gu@Wu^HXiUIf=aSrJ8h|3C&tqWW z*29yX2OLnQ6A26$9<@xDa>5Km*%8*9)~e$S3I-DXaY-!~Ql-w*2nVV~7W`mMCsT2l zyy%wN)1+h&fRJoCQfol#ajslx1dSHl`z!x|gy_*6#@SD?zi6ocGDe`b z$Un>(Mp!o`zjZxGLh18BVp_mD$e^(VECa@n;>ha6LG;|5A?zR&SeTGhX@fjkBt(uz zDr{MdBOrZ(1Of$tN0r-7hk?EWp&C4}TU$UUp9i*_Sq!ouB8lg|w1L?cAeSKlj)IW$ zFaK+|r05`)u=Z(08sgQE0oN(F4h2mo%?OE}z!WdCndC<;7d_}lxGWNIzc@RV8iX(~ z!runC(GW9n3v%QOuv`#t$3Rt7R2XiI6%F9eZ)`-ECwpK)ji5R;_YepMNkUXT1gow= zb_CQrWHF%Z5h5y0>vIW(lmO&2ULyS#R#B_mnjFC=P=VxZv(Q&L!Fz_@ls&T^#v26` z6?)QF>g4~CIF`|C8LF0Q(qCcys3Ec~P8f98JehBJb!|;SZ{6A0_;dfoj|_Rzz2B3h z&^a!l;59}7XkciGqUhMz@DQX_cd^fbs)slR(j4bO8pA?C5g7vcLm=ka`8k)(1TWGA z|D}@6zbcKE`<(&xZ-L80@*k*rAe38Rmkw9x=fprj9`f`ENrUHsBv`>-+Jem_XU@)- zeU`xCbe-ohq+Sbz^!4=-z!?w_@K{GD3?|0{Y&*f#r z!KR_1fumUx?(Tx13Exh_LI+fc1m%$rhx9SMkWkgkdZ3nuV&?S1>G`AB_4cNh1UW<3 zp4<)Txto)(Lrh?rCdvLD*tCWE>G~fnp3aq?G zP|W~~!8seww)_kF84@IcPh-FvT;B(ONHwW5zZ)DA| zzT_II!214){u)?T$N&Hx4(#n0fEXc48UiL5zo5k?$aG+m72l+~?}`gPQ6nfSMRv2I z9|axI!$~sL#3^76TrmiJW$1=-oz!K;@djT-G_2=VSAPAF3s;?R^GaIZ+uBqMK38o zyEi^ZX;dTS#g2VyJQ}3ZBH(-mZbZ@Z!*9Tx{ZPy1EU|tu@R5AO6$_51V8TEvLsTRX zUC^Op!_6!J`ghUq4O`a!+)vUK3((f(TZ>?5JS`gzIxbe=kV#g&)!mqmwPC|uVFFOr z5StO?7Nn!fWi&!Jpe!}Mn<(ld#BNX<0c0YkiS|Fj-`woq3jrh_0E_^M?83dk5a3;!aLb!GSaF5Px)ZpiLUgR5pRQ6f%F{ zsYZnCZ_d)nWfYItOWOdT;xz3fhBHH16AlW)t65oD&({^646VLN zz8j!t@s1aM_&UhRt?_p`o3Yri=Q44QvS_Zl(e$%S>x=f=^%wlzuateBYF=YrGDrN z$WMq&kEldI(dU~8#F}9x4yE`;AfAbYz7TuC5XKkq)=wSV6W{DOmZeDmL4b{4XA0vu zUdZJx(Bcg4q>mpF+bK!O{M~2B0I`BetWmizO$NNoeLe46gmE%JfjL2ZIGKQ)&47b2 z9QzvJ&C=nZBN~RcLWjU*C{EpsmGxI zAgB+KDN%FKHu&%9ySP++5gH_Rse*w4tI-5`@bqw(0J>BVJW>82ln4IwfQ-9rLMupm zD20*Lgad;AH?K`S`}_+!wUu5k$h648A?YZp7m!^Cj)!Emd9#YJE+P!#Vq=GM@NT>$ z#|@!)8M@5hA=w6p6_`o(AeoI!+~eb8ygv-R@mv_7q(1=BV_aMB4mIk_!3KSXuU@e-6* zE%)7CjOD$C5gmYkYKtbIl zC7+s}&e%(t;N=Zz`5#F(-f@O)^FM~H<7eFcxVllfJE#0NGY-12u&^N~*=u;dLGl`2 z$jzema|ZDk{yYKYl`*al_8j12C_JgzM4&C>V(;WKoc}&@0iPYr>(YYEj10b|Omz@- zU@eg_(vI*ou8#w^@eX2|RY|Ga)5IrBJmx)SZsL9Yzc_T%jNn5Y`W0h1DCzm1^o-{s zE;x+hPp1B3hH_!Z*VaE!xQt|nAY1dF=#B6J;*-)ZCoEX{5H~?`g~tO9o&Iw@{feI@ zj{TxEN1{VSDP!i@#U9E3f<*Bch@p)0=7097^7=pC{qEoY2`~TS+zS7W(&nO&SH6n1 zcuQ7JhcghXxXt(brZ{2xtq}KE)!Q*0@Hq)0Ul-Ha@0Q2lSw8egE*Rw0Zi#c^Zv9&Q zxn`lTv%u(1dSzOP3|NarJFhYO1hVk*rg#d36@&@@W3;9^23r3qhVwVT$d_bI{uzLi z(%j$*+O7Tt5!h&{{f%NRE^_vSrJy2{FTjXECJv-^gOQ{d?5{}n#6`i9M>MbnVN@el8-z6IfuVyjnh&uf zt(O4Cktl7vn4c&Bhf7h5NQ}(;X#OQgdSlfdPDx#kuCA@vwBAT3lAnbfA)J=zM?3@|f<7mE zz|)_^I#3K7KEX|V-DV&ogVP#K8{MBK4QfB-z~LR`cbweiu;Hmy04s3Bi;7AO|p6VrHiq?8-Q;+~rzwh=3&gYUT z{sdMOr|)@L>})HL7@Oo066$~S?AdK-8-(yOc%ygk-y6f(Q#hvB3=i+$VHGJv)Pj&W zgo1}W9}{vAa<_7VI)@BruvnUbYBy`uTIzN@P?ZuMdt5g3kluv=|s=(O^95 zWPXB8(lhn{qadl!5s{e!W>2`;c*Xy+03nd3gm~2aSP>#zw?Nn8^f_@x1Ye;7a1;?d zj`Ue7Dyl7*dx&!fCjx_E%#(2FN5JGzw?rcA$R7Zp%He@l)dUdOVQWqtkpagFjqKgr zq~TGeFJt*boYVvg=U=|(AEOF}-0L+Ed9qwQAU5((Mu!@K^=|{m5+TUeljV3=felQ2 z1ws&0K@6Q_-;-6HpX9&}QNLztzN=g@bV2G6o&g|N*toA(dg0`wtgP%XzA_v_1T>h@ z2e6FnzH9D~{oPnO;oWW?DLhxmQ>jQbgFcF!L!uoe`2tkbC+fa%5QavxLYPB@w zCimQ53nu3=V0P^lkw&Ldd~W&Z@FVR93xqyof8X+46uj@(&4 zFGuwjIvf(a>7!rgTQl?uQnOben;rx*128RSzVsD)$m^!rBj=UjJUW->p2g~YH#avR zSVP~f9jI{vP@qOv>f!^$3m4&5Pajb;3QjCaZPinD74FgZbZ!oxG;?W zKVUkpW>>s3zW0*W_Z6H1A@jL|gD!f$_XLULLo+}QJPfw9uc=kn?(6 zeUBQ9-(VwINM(OGIJXEV_q4v*B2zeH^WnpXMaC^x5QBHW_Z6q4_veqg?ARzkT#J=I zlXC`3L5Bc5L&j@C=)W_w4~Ipy*C8A1fSf!4u|FL@JuU4PoQksgs8r3;56MkL269-q zgoOV=2bhD^&C)bsD_$BrY2INDQEVqN1Q9O&z8kyi#u!?X61F%Y2r64W0<%Lb*xwnE z9sq~ekah$@G;*RA!Q(t8`TR!?M51@9MH(bDoV0?mLWA{h(CFU%uI4i5Y5uXz{*X{s9XY{5r_v!@D- z?qb>9E}29g!o1)94wbFKd5~4&9NLa08UMQ*RQ5<>g z{b)N>ZGkPHxa)#w+M>T25%pOsMb>vqYeU}hnayY4j9H0V6U@Ha8oy^Q`ybpoKbqb7{9lmc!INsf zr2o8b&s`nS(8K=yy%CT9<#;duliF{7`ezh~!%OwdiUwHvSDh`|yRPTriEPz+e1hd1 zGWQB|Fp+P`p!}?Y=c?yhpZ*8TBU z%`R=eIV_(>u`v-P2vHXMZ44)S4CxwTfKBtL`VzcOK}tBp(f({$;DfPF3In%fb1@sm zb-3cfCxU4aC(K|Rw4fE1IRzY4;jgV7+|Coi(x89Ez4H)N@$$TNSuLS4cb#Op`Z zH##P6V@;`ZuPMFCs5s2-B#(+$fDD%pKZj?{kVqn-Xs6fGa5~`x*;R)n^vawKX0vWg_D2{OF@5J}bBf&ME?ZuQ2c@yfJ!*|&oIVy~G z>kT6=_xN*lFi88$OI&9!J=J5!zW0_;LgEiyI%p4?`*8AM1==eABHfphKOFRuv6Zo91yrsr;=^SZc`s4$AGA0`R^ zoP6>+xxTRb5&s{KhM5InF>2hRk4svN_&uqW!!2L++SpHgU$qk-eBUq28_OByzHU-s z)G8yje4EII-^k9vF*QAbAPir{^@{^aBpBN+S=Lhm7uDxi8f$XH1>-pf)%DLkXI*S1 z=yms}X}(f!Sl`!eEpIZVpHwndASRd<#r97KF*`{4y5?~H*R9L++3nWXhJ3p#RW4eU8lpYQpUJWtt*)M zWL3uA7o!w~`$Dm#zK$4P${LuMHv{$C;-`j`)(w0*I5mC?wWhqcyWDX=xxwaLyUS#j zmK>wL|DvrRQKOxD_s;g5f!LSyFZ5eSZ3Z+(65^gRb-WXlF^ORvsdq+HL4 zsoh;mXe^$dIays8CpNp|Fgn;(JK~GuApUNj98ZWwiEIYAXYFu^ocs2_={G%-Z5Pi|Hl1} zjUtb3ikPmyxl=Qib18`w${LQW`UO%xF}HrKr!ALNh}7Ekeq0iC99*!pwq4eeWK)bP zVGejF$P&t>LRFCaF!O6fkK#j>xtu}stg?IP>v}@miOpnJFZY{WDT&$grLc z3_4Oe>qE42IV+RPu@@JlOI%-|zhz zz`4k^NTTUejBK+Wa;nG;3Hrq(MIf8eFw-~_6Pq+a6&oYrm>Uc$AsEQmC-~i1;a%t_ z^3dj|JwuaE1+{b(!*@5TI*LfXM71}rx;}~j{atdavI``Mw6UOm zWMBE~I!X0~#LVrOqVCjSb6{#=saBHb10SP6VR!%9!Z<;=R^8!klt3?8hs&UJvG*?8 zN>tyS{NH@{^lX#8y)X=Dm=~*7gQr~fpP^cpGj_j!A8@D?Vf8(WOg$g^G1R!q!>?~p z@{-al0-a7oG$d?-@$Dk3u=nZmQs$jYBj5PG?d*9aj%^QHqHN>2-riqPmKgnWTgFt6 zNbGFT@pA;0uiGd(isoqj3heB&Klzx?7*78jp3e2ep>1`3)nlD5jK;Q2kk$7@=kTdY zA}FW2WZ2)`f7Voe`In3N1qWyt`pTW%8=XgmTX(Qev(MGQ*^{t%I(YXV672>1Sg?rs(u^9fNIYq1W z*-AD&G>Kh40zJ5%c#%DMXDgdl_q24HvgnzGcY3<|*VXofObk=b_cE04sp&KY1vt}G znQHua(~zIGEPQ<6nebGv=FdwqD)xlp+5lXGdXYi+i@-*F@35?ATNa*<$SdROxUT-9 zkB{`!*RPC8vU%}*d!y)f>m$svq$H}Bd6lt&48zv*s!(0IgVIRlpjZ;na2}>(609!=8gSr=~7akUP<0W##Jj-46C9hS=!jQWHQ zk5#M|H?0l|f7_FDkr4f@awm~3B2kl^pWJ0keWE@yT@gK7SChP)NKok7w_PG$Os%*} z?Q`T)xJ-w<=L}J--hrjDIF?&?N|1hLvDqOPEIk?QI38(&`TM(!Sb2%bWKFqTmDSsl zTrB0(Scba3LUHAoMHf}3BV?izp7Cx1f0`Eexohc?#%&C~3|@6Y7kB*q$Aop((LcMX zM5wH2*W%vyX!WheFdN~ELyj@uCEg+uA~ypbO#c-PQUjXpj29o-1(1tj$#GSgHoPO$ z*{)35$2ekayc*&oeA0Q>m72|b;Ro)8(M*u&{=-)@RdlL1`&FbKtUI^=*0i&uzt=0_ z{O-lvJelxuuaJ_)NQvXmYx?J-Em?P;F}6Imvcj6%aq#eOJ-B7+&d2eTAhz(?A1!w3 z*rr|D8}mEv9ZFGXy!dg$hIW>wKl`~KG+7U&jWYYU#uDwKMIQ41NjnO%d*<6wh-((n zX(Zt*l;cW`x0ll}(`iyr(7HIBl~uNFC%^JKmN@WheR)%c0>%4=_K(jxpHpa8eL9z| zE&=13<70q+rt1IG+Ifdl9shry6jDYaB_ml;NJcgZku5Vjd&}Mu$_QE6+2k09>`h2U zgv?`??7bc1ex3S$ulxR8_xv7-DU8}F&)Mv*=RL~fA zjF-IP&~-ozq}N|Nc!;#o_i{hr?!C7?H+|RgX0=_PTu~x-Oq}S{m9ns5_4V17!nau0 zxflY+%iJ7Pei`_>E=ClgM^87)J;Tdw+Fd{IgPLToqlQL4M6+o$6>|dUBV&lEPoF?UM#Jp`@Rd(HkrS-lb}jA#<#88jfqFejP1b zqYlLZ(XkD@VBn%ts2&@-5KPN*{p23uTvCgA;hniat1FrUU&5b!^EQXld{PPuS_bxV z26+w}_*B&%A)ndTpc)e<&icYRr18Ao_F3&y&D*7}iw$r;7-QANQcxW_*O0su+$qq1 zHM2t|TylV0PrEdfJ&A_3RQ=A`ka+k*p>Ph=if=_(}q{t&`xV+ zuYbGKnZ?Y)%X+8Mw`_LBqnsD7+G5jh|4!A($Jd%0H6}cSeyJz!zhd|+peBT^Z{ma|^)P=d$n?HYHQL$Gkvllp!5nT2V;hC0;VPxK{GQ-r80m*v8N0>!;GUxjv5V zbER_z7r_NIfamCsJXL3^uNMwhdDwTM?Nigb#A`892iE8-3d3Ws$M{uMsCPWk(ds9= ztx5U^{g1--nl3878ggMSR8{k-g%H2$k|fj$s*jnciAZuwOR5l z@XtT3L_G#yjlbh1_$ZncFZI*dGWFhe{aU=QWaC<*)ZSo8X#yS=d-LDJ34RhGcRST)CCQ>bF=HwNna0+xmCUNNuvoKh~Xq<#wNaDy2oUc zYjeKwi5ab+np*DyU0!#RQd7;W5uYy2Jtlt+=ECx@r~Z4<>*foE&JEFBR|)zb`A02z z{P42)R8nmrcSm}@e6WH3eMxoRqxHu=mO{8GA;bBbD_d-CJYn6fS5ibYPERt1^X}L@ z;hJ8LUjMYQP5tC`_?>sS)QOd@CnOmhJr7h?`~{1P zeG)eav5r@_Q@G1goR$ge73TW;8lsi%x_Y&}mBhp8%8~@rZL-GB~B+ zcG`aAxmMXOo8R@lqf-F37JSdpXxE1;a}7!CMw=@ye>1cz4~)oxPZ#`{t9m)l^@tn6 zZg;6Q`i<$vwr~8~HuGr>o9dsA77l!eJ6$baMq|=6b?($}Gt8$ZNEOuj<=mQVMT4qC{+Z`<61&s{{E$6V58#h?rTI_*9>NuU&0O zK8E87x)A;3J~w@E?)o7vPuO=k%EXIJ=%oF9ej>Js;yC50n%Cer9;V{iWg{AbcLJ{8 zW5Q9WOxovNUEfJAakmgU@n5$0th?N`6N@UesCBR(>_Jvp_TPuVW?O&i43}{48WWlE zdEqI2nmkql(P|5(y=%-Ga@WT!1j%ilJX4m!X{=wSTw!DXU^l7=Hu$Nfm;UV8?ulLT zsuBxseP?kuLr8?imhauleFW``jjB&;L;HP0kB?7NoRbR>^quCI2;)ws-!rw{iwLk^61fhGOD=}3f zt6gU&)`IIcV{dbse_k2QVw7;4RwX~%tc>O6Pj;)PG^0$awsvB#?4j&}fF|ZA_Xeu6 z0iPrr(GYK^29q< z9PcUO5Ir_gRj)_Tf3-s{WKIKFxJ7-joF%VlK84T|;+MDx4uhU5uhWB5rtsvVi(?94 z3%V+)#2#nf7Yu|&b*rPajfi`4RuRR9rx;0QHB+-luXW%3e8)?5g|gkshbJWd?T2@k zpFvZ=5w&xEem-Z?cgR9JRgasN8g{d0Igbo_TR!YGhE1_`ayF~FeExV|Ea9@psmIxE zIS*mQhLa1qh$Ut6z`C9DG^c-rz*VXgKK1zF2+;1vpo>o$w zJrF2{<$EyW3_;e`Y`gZM`SK%DqkAJ%g}Oyn4;F&MAE;Pat+||05(>OvGqt>#z}|KmeWOZ8vb$vFQVf4mZfuUFL)5>g|zms()#WXsBN*7ag3k*ZZwPE)Qyd9sw&`j7b9 zSzBKIm^EF4NCURSl+mZN`APQLGt3dE(~kdb(D!@~CE%essYu;eL~ zkqrwe892FodU~=lY7-Yus!1uB&sP4-q*+iNg}3bQHCCQg8!5Z-+0nZ-R14`1QP7%s zZ*C%M@6J-4Hkb|%Ph6lA*o;U^_vI|B>@xm(gDwCc+jmj7YHVnEcYgWl6MiRh@yoUp z-zSbBKbVXmJXw55Tw*y}rpHBQ%vg`78FU5^LstRo$I(}<935Eful=a4e zIS-1hi6f6_(oOS_Rx3IQiEY;UOR=jQX%~4UmH#G<(x)45bL!X-yM0ZV^osrz@_IZ; z4*yDr>Uwo%yl5{K(P>n3v7&*2z2Js)Y!J!q*DRAiCZ?@#efiijgzCKRaOB7>e<6WJ z2LH+nMYI^y{n;uFVx2mte2lsRHwYzP@5$oRP>Ve+htV^z1 zspH2oaP$nxoXVYWZnq_Ro@k|JNx=WkWB&K9IFRJFxHJ*w45z*13~sSp!CabzCNX&Z zt1-^PzSDh2w&<83xGLEQ%hVU^iOKr21lcyD6W1y9(g==#{^;RM@u0!8>-u@UC`(8#>a;`)t*G@3LIfygN+SgErW9FN|3<9iN=E`TpWDvYKr z>*7^@pRMzFd$egaHHn=FL~-`rRZ>-z_@2NuV$GY}v(eqlcZX?)Ts&w}$yp#I zbbo8jbNvEMS7)~|bOU?a$*L*!r9X4-ju#2*GVL**FG?xULSJZ)pl$!P8Q|SYO%&B~ zP5iQ@Knh297>#fu(21c#v>6J1qYXxQKWh1M5Ud_4A${g64%N*D2D7cf80Ccg03S#` zfDD$Io=(SrY}S8p2Nt6>ZBXReO+qQMOz}rP*icUEPUeqhlhnS$J{j6Iw^Tx{rp9^w za=cs)dmMmcit4tW`Wy|U;?it;)C2npQ++6L-!{dllcS_g+iUH7+wz|lvXJE25(YPg`#vDSFzlbDn=3i29gp1=SJ zKpa-w9{mBQ2;L#+QbLZO#&!lPD-RD(Oq>RW1qm9lZ+%AX9uwiH)vwDhT?M6``KXRJ zBYb}sR!)8~=YHVuTbjLoM+F419r2t-HC`XvUKp;8S9hlfQoK4kI%-<*g#JJ16U%ru zrsV*s+ec3Z#yVHHIm*k+xp{d%pEY5F(C3l6`ytlYs=yzML@8NW*))a{1R@05Ua?7N zX?vlrhN&n*sm&M)q`DPQsOtrkkrwD+u*k{DttaaepfmWh#Q+oQ-Mc0MYysDG>h!|Y z&F-@2Ueb;ZW0RBw+SJECfBqn|Md9jTSc#Y~45#IS)D*le13i6a*L-$vZYc;ffE;rk zL&Ri!%N9^&FW2y!^z#EQoW`W@e?+p`u_!4iF=`gikkHXG3r9^3bBkVm57(ljwa(6` zP#(spzV^Um0p?bN<2%KY4~qI%(fZX(3yf(XO|(C>rjSE$Rs}5821_7M}eg{Jx)LqWuk`-ev9f`=PJ4K7+U;Fm@Kentc zW;d|V8A>;Fj2JtE?-%Yoly0m2&j$W8Gq3)c!N1?!4#=@El)q|~$n^KGVndh2yDV?!RAq=sadG*a~S&M z@MQfg8ccAS3AC!4HV}pr@wCUL8-!^C2ABo)!Q%ffvdtg;Va@%;tMG$(( z2;ps;NkxCfs*J{op;Bpv5l_oZ@irGr(qb4Sx{mme#4k_Sbr(EQqHdIe1_5*2^HjKe%CA z-nx~JbkUzh=-6*VtIKV6c4%d(YchJ4BL{osyR9t;tgqqJT{!y_^R)?)18ot$JC8x? zPo;U5bJK3RXWfT_kPz7}3j(%_n-@RT^vp2O(fOSn9MXg2Q~BAmmQPtjd+u= zzjc3`hIOkxYe;<`9}`qRI%(3FE0@p>OK0oPBj%Mu<5)nXHtem_zo?q=%egiCpmUw9 z-1SVAd`IenQOww!sK1QKQDL6fSzBaxBXeks7gq>n&A|f4^35Ok+OQc(d>9&1cUhfm z+p!pc#+dV11G(}>vMBTG1|2q`?uT~1Mv5;vv3SgS?6)(LFg+`nU9izoq|sxgM8SQ7 z{z*edT2sq>zWN24+S8ilk!L#HASA+VN-Vdk-ftJ3O|-gJY(0v`x=hO(BYHMB+O&6^ zBcIXf8}zp6)JQg&PK1stZkp< zvsnfDypdyBzB+rmJlp)P>*Py3yZRF%Xd{Qh{pR?#?}b~uyl={Ws)DdXT3-IbEheTn zF~5zwO}P#a-D5OjTnUCIZiskYU#~0WUMPXS2~Mja6ThjOHWdoZlxZ0m=OoowI5^Cp zDPIRP5`Imzq?F$HW6$57)oP9#Ms^^K7Jh2JQ3$(`R^3dEKbehQ;a25GQ#EB5ChU&ewH@$}X8lI@3lB0sFCMP`MrqP!pkC6t zc!QHG{0i4Etm46{*XP`x+3ZWso<=>oVR-3fxz z6*lP4UCKKNV_eX@pLXYIZj8AGOaIamrHaZkKBoiw>5`u@WQcsLqn~EblMr2aF*F;^ zLYUv^U>H1Tc>hpQ2$y5Hj#8mEuI9nR^6d1~8&U(@6%E?oAJTMU-(u|TZWwg-+R^U7Ph6*2f%|~Jc z=oUHPAVN3R@}9dq4-G4^VBaF0h-^gjr;LTMrObMQqHAGX%sQ&xb6M3QLM6)wL^s0* z*a*Z|%D*;9(rK?MQEi~}x$m65;TD90xjvx=S z4&*Qji3qLgLg=1ekZ-XVHb-nLxqrLyA=LDk8!5Hf`J5fCPKkw3Fq}EzuiGrmEaN_` zSbk{{vs(GAVv5Mlzqufa^NVBq8z#z=He5I?_ZSnhf5R#eNaBWgYXO( zJitf-7agjz4g`odWp`bvdZK^ zAxi>`&meSH$ff7xyz-cAeAk*z!2fm5A%U#IO4;Vjx?*2aRzL@W-YO<=1+#1t(J@8@ z_iidRK_By1YhKwVOpsB3aRd&IcD?I~{^5z7lz!x^ftj}JbFw*h9+^?A>-%i3#3bbT z%${YjD<$fGeXzIP`pK)g1B>TkZ&9!BB8HceI(tBR&mtJu`&EEQiMEvPz zw77i3)5RVo@&bSfzG|f>6t=YKc8(eUxNX#jCW86>&bk|Nc#>uaq_76L z7SGdmdSHk5&IsIk{2j}!UP*sOLfPQ7K0))BxBrVu6m<|%4_W!l%cik=c{gKV(KzHj zI5C0Ym3|W^d3G@=oI)XNcIvY)Ei`9$?j6XuM8x&(|Ew48Epv zl;Uq&Or&}4l*+}^Q)6&u*L>kJK_-Wy!RlG8V@|7U-szxd4}p%sKvD%>a?1xy;CtZ2 z6RYJ|pM(tYqCmf^6}S>1Yt%Nt$VaUQyTtH#oPUq~njf-p;W6xG_*bNAMK`l0;raV5 z|1PItyaUnr0sB2KcZk-M!n(6ICU^=WSzu*6r?jcYHQ4TL@qY6XDfR*4Q{)6~>ZY)Z z^NVRBAK`Mgzwz+x3575D&1=10&Frthg=byshic#c!19+w1sU?Rqi?kp$%ZE)Y2HVRK?h#3>!^X1pZFSvM& zR@M-`Qg)oh*{3KOtU6ff%}#stq9V9!y=TGY8r6SO7hriK{6}VE%gqzlPjAzkwd2u< zR@VmGbRn>>^9z3D)L?KLtpIz6IWMIJL;+G*J1q1U%DXayy73mLIfL$w0#7#Di|cFe zi7hUR`yYjW2b}!GQ)D;AOYR$YB-fvnx(|sOzXn8OUm#sGx$fNax`h`lIlOp?iK5|R z6%`=s!7y2Nd2t=T(|=D^R#4siow+wA&7EgfB}`|xrJ(7KPLUJzGm!{rJZ-HcU9qSQ z)j$0muMn4$Dl*cY^Uy1rmO?Jru)kc!uYwWN#xp;fPPhvTNOs}tcg2-5ulBb*emeUm zQ%~tje~@Z2{Y`>IPPR(qwsiS9H`MNhHQdIoFL``@$Y9RVgj=0oSvAmVt&5ITo#XF1 zvCgwDTOq4#2sj2)a9%xVz zyP&G3=AUD3*Z3$!Vffbrc-WXz6kL18{)Ce{?p#hVzHRdz-0_Q%wln&K_(bNrR@?Zkc(Fu+nX=aFW3Ae+0kcl~a*sYn28QE|TpcIHE^y6( z?-rf6j5-I}-^)_;*Fwv?<{*dDZdtz7YDZ%RRD+S#y}!}HpPu!}<|D$JxMg8gReaC2 zwef!90@mqjHM&Sp%WJu?yK#w?Nj~`-v{;&(Td!=oUmW##@od-ad3wW_u==5}`bq!H zzR9)GD-qKY#{xg)UP)4;C~r)paE_&_ZV?3 zTR6DrqaRLsh59zEi_o|&(1q+@gYiwG3!D6X!2&N-cB-D&{Y-XJ(U{F>=zi>-_jc@= zt);?|>HP?WzN_REA4leBEzl`<-&AnB^Og0*Wzu+>oD-<;U)>J3w%iFTMx(0#{4oVr z=!y(kylWeIfnF)ohLV#L_t{3F-PX~vZ*E?PMm02}f1d;Fu2-x5bL|vvZtn9uT$Vqj zO?wmDzC{LJCzR5$rKr63T;l0dRw;kKn4hZ9Yq?95L{~h`EO!&RP{~ep;5&F`C8@m&48!V&#veLY4td^tD z%3>#D=F(XDP~7K+JxhfO`y&Ic=_K}o+6rMB;v?)`CHyPOa37AAds0B`@#|poDwbR- zFD9Gg=lo&3B0lbH@8KR91&$J^b02cl1Va~fbWBX^asHp}{C1km&j{8}tN(w(5DzaK z+sZeY9safDXuqsdtrm;@7x(ov7srKDhoboV#ih~%V}!WCy{^$w1cOrb%^IB1pDfRm z)nb4DHijz(LbID#;E7~q=YS8|tfryYf%$r$Or;VP4P_BfEGX+KPqJvbngMWtZ2clp zE38q5eQQwDdKj;Et^uKvvT`#-)(~jnb+E8tA`xL*Sv#fT)}{OLwGpy8=H!lLL~680 zBZI?mHN$PKTJ`2-uR5#E=H4NId=6}aI@TDeSkt#J;yDTlUqIq)Zk^vy{5%u;{&lbU z966?||F3A|E*o2OX4{7$^@5?&`SN4;?Qn(I7)Z*tGN<}`JXzAVxmPJaC)}rb$g>_0zKaX zkp&p)3n`BbcgQcU9HecFM1dPYkq%kg1a1q`gc~xi2Q5vOD{ShHmaOFDQXq&jV zw{Wk>zRoS@ft0ULi9^o4Oz?Q2qDrRr=<(z2S6wsNYh`$zHVXrE>7UU9T<@yxg^!To zxJPH;?6>XxtpcV5{qvEpUcEXn=aBUMO`9bn3x9Sa;5fbHRn-`Q&je>Nu((n-{-Oj_ zg~g*ixa5+`AgO7au|F^T1UY>5=FP`OnQTh_-t7OUJC9o`u38Yn@_bh}tsj#>+pIdG zSo@#;{NGZXYjxc)ndX)ocHW_K3>ivmFX`%|P)x#jA!>M;u*NMr6OzOV5f+I-emG*4V7e#Wy1d(oNrJLVQ?49#KkV#jWOy?|*3xv&<&}BZJ!H)8MY{85zl_>t2YSgLd)BTT^hi-6lK-7x%AdhIrv+vs_XJ{(Q3=h#4n!NnR=j@B);lG00$@aIJ3NbH<@QBy+&K# z)dt}8ElH%D3364*3QNmqmtPKW93PWm7-DsAa z>}_UDrk_@tDn!y(YeR@2L6Y!N3Re5pxQX|Ji%5tWq^r7)j4@@hpj-dK68t%aI^FU@ zuuE{ClBECG#8pVQ^=wkR{nrsM{c__fk9;(k25||3zv*XuX-w=Pfe#rmSm^(h4l&;Z z;lBiTS0FqJb>>rK0HP3Pw&dF|y6PCXE z%U-c}z%^N+{zR*1PjtUbE~xow_-#o$^TccTpHG6*sRvl7_yLJ0I3Cy!$o$YTaFc~CzVd!t=2vzGv9 zpjGnXLWJ<%bs&SDES&}BoGe?Nt?QuKRB^j}>aIH#WD_}~5Qq#~Y5FMA>S9O`MkXb7 zLC(=_tAqI^AC=)~PtX;5fG3^@wk4CWa0+P7Kr!u)TE%<=g0?scJvTo<$8z37iKaRU z=uYqQr}Q-a;!R>(fm8}SJlK?lM&Q)$|@>U zAVm*&AV*%?acRK(sHv%8L9#oJ(L4!Hz?*Y z5+`6g#em$MMp9X`+JO<~5)v-8o5bmU1-&|?{6LiT21<)q_g&X?o&+!-2R?x-(A;BCxCW#;jOi{OF8*F>otkAO%T<7#;h)s1_OqNZPcX{Vb=tI^n~IYo}Xr zjleylEDKl2{q^;xo$+FS_QW1Mk>}2zJAw&zJur9Y-M}K${a|#Oo1Yc3p0{`n>3d>@ zA;-e0d@3sX12h?a7`Mlb;gg1ig?&PFYTMO=Lr;%`a@%Oea|fm(;A7I@EdXNj(asmf zQ^K`ydU^>I@e#msxtjES$jJ9-RtMGb?VACtp0TMZX4MpZwxZK^&lXcpgF*Tl3@i2q zh6nu;c04*s%HH0AFW=TjOCw$PWFc3Edu%*}-aE@*5YK2&F{C&f7`fwNgz_WyM zwco3h#Kfn7`@0o{oh;xS0zQ1&>bTeT_Y@VjX~EGv3rZM>DRg$cjSBt6!}bIW;3E`2G%NthQg;vA%OVoSuqA+uI1-i%*;V%8dL0Af1AMq69~gbT zjH%c^QxtB4FU;T(%tHrEoL7)MO-xLD{c-p-LYSBL8gf|H(b2JT8Sc-QKnC6hD6Z>L zi<*XR8wh1F1Bw$Km^{6;PYvXu0~Ok9p%=hWbado`$4B+YmFMlzZftC9DHStkb&!{E z@?gVqsZD_dLlcF8UDXV(s@fb305$>O29O|kYecCFpO=RKObqw*aQ~SrYO~R$UXOMp zyzRxz;e6^moU-oPR5-HquA&)363LD!_rjqcyQN z2NsqKUN{RTWes+8K7-j&A6~}3|q(I1L}S~SPINA%EQrKA1OJx%di+Ag?$Iw+Uxm)1P2N_ zFh6Jy&0_~(x=Pe{*M{wsCL_34IH1UYkJ!T)gQ>$F*XvOAz+6(XMzj$(CAe08zN=>K zYnFmoc6FP$Fj|TD@teyRg?M3}f?mXzo@D;VK&nw43`Z3VJErkDFa$|13oGjjn7ItQ z)LTW7!}G7e;6(xNMD@c^3LI+$tm`&xnCCXS^iQLpLQ!Eo`UTiYNlvIXFCd5QL%M9tF>w5b7#0Qh9 zP}N4{=bPM)6j4#*xtBRTHufB*e;O371ZhCQKRc8TPdnc?e)nAqm z2lB*z9K-gJn56nYuQ7<^qNkR=FYh#xs(94eu>P?cLzFjX)i*T%LBKCzHL^eebgMu) zTAd{Wy2|$EWa`y4H1H03hHi#Qb!Us z#nA?A9xeL*)N6@u{EK&>4MJQ&0MkA4tzZ%SRXXD#CybMb=`Dc6N#N1Nr@P&B7|)~o zH;;eL!BY*|N3j1Tp{u65{s}-uFs|}{o!u+{oZbI4ul)_mZi_*J7E@p7ueC2PgnBC` z-JCwHs2z}RQ;A~3WR`=-{<+&1(FKb*7NDq}aS{NJFn#IStFyqj^sA(KHfR*F8H&Um z&6sSHkD#o$InZS`cU(zbv_G)wauxcJD!kXAe6G|K9vqxrQSkwKpOkj*&cf6V2zY+) z<6ZP`euY~7uR$-edGI*yIA@Q$YrOi= zD(PgjasK(WrIY;OWpL}fCyBjB_tQ@=BM`8o;Q|Qx5t5#4bBQ-7 z8L`*Q2=UC(O~A+HLhlhOe%twL_~gptY`|tr>GM#F>ZJeVG7{rF3*Q zebsSeNH1z!l&wM$4I5q(14q&0m4?4w@)rJ`{t=v1(dGZ6H4Ez^F_~) z_4KA=f<}peY6DQ!xYLvSq9gC9?8`9ts()dL+IMHDpti+C7Poha8CB4Pk?6Oi9cZEC z+lMEY%}|jCTKu&B-PnxUEh(iJ;rr(~2ncjk8^j&{{ISbYLB%-OJyd=}yVz4Scm zgP-IQobK)F0uIcdF<|Nte;cAsH1+~o4uLU78dy3tV=G7szrEJ6ZpMcSZ{6n_e`(U> z2oC|YHf0rXe37uU6~(;#S{_MvsCj- zrM*S73y@ZjVMzFQjUwT9^x4l-WVEKHtprJ@6#w^IFsV4ABagH$R!UFIM~=Dh$zY`$H{IQx|HAJ( z=iD*=JFY{A8}@o*tu^N}pZUzWLf)OyVS|;iO_~;^eCDV2ogDV{2{9;%Mk#Y;5CbX6v+%*dz)D zu|5ova4^<)GPkvPu4-;=jG%68^qhm|xwxIfb53?n-skLGg52!j@ALNx&m|;PROw%8 z@F5^PN05ChuIiS$lV<8hJ~sAwK1t{2G*n)#%&4fkt3f^DRV8Zsw;^gAl&@Z>)L#%X zg9BbarsbferbeaC`6~4Wo5Ejc4`NgP)1;<*%lf5t%6_Lsr`Bl&Pq~!n{_$kA$zETQ z(0O{2=UKYr9>dhs6zLlTeSLj5VM=Y*iOrI*A!LRyzjlM>U6+hKD2n%MEiF=GV`Der z^idsxOzdA8%m^bH{sGn1{1%p$haL_2b&Lg2XciPo-9jMAp;~$0%uYra{!~&KBjzU* znpxgoz$9guLrKa4kEk`Em1*6a6IFR7B`8vrfrV0Ra4-ydE99>h1mQ?n515} zRNp$=JUO#GvPEX<|L@8OZ;LgKuHy1Y+R4NI_lU?w?{_d@m7z(_?J|ASYv6|5Ce}o- z9$r#dWw@p>ne4Aq-g)x!=O}*9QQlw^llo^vq56%YlFGldeg<{%k`|3wd>4Zolo3y7 znEWNk=Jl%X`rJ!;ZUtZ7Tbh1&-O z6EpHnhN$-?;~JiLwilQ8PiII)i%V66C!G$-_*vT?-?lw_B98M!eB+TUo*1S~vYRxm z!p%t+Z*~cBXwIDrSQA#p|1Lx)+PoRkwvb9W1?EK)Qyo@fERUfmJ!P_|#P!SxBWl>( zN$TpNKe?8naE5~8gL*_q@#eV6m;?>SRl|$&Yoh?QHrv9#M>DxonAuln}7FxVZKE7dZg`Iy>j^b7z=~>5=G44`4Z!lGNpcDq$EgX zj7)MhD!XOMcTM$(wqk1=HL$(oE*wQx*&LR2-@*4!(&$PU!ZKB&9}L698jou`EarQK zLSHeHl))M=U-thE{AeqINuJ%bVv%DzCKC}A$6=@)cw#CY5hc%g6h3dlV;3n zB;7@|+@t&rXSMMucWb@1v{@y1`I(faUiWFDyKp)}5zts-t--3Pi0*VOd9UoWhb zfO9s9T^mhPf9K_VQ_{JN`gKa>`mA!7g)lsQ!2RDi_??w+X?~V}Sk{KJ#Rl1ds6J+hs?J-hf<4E(_?bL+Bt>7HdF1+!bGJb=Y z(izGAme2EFV%Hy#Gna*mN}YZ+D32#P)OnU(n9n!Lxwupcq}d}qBP0y!Ty9=WE@kx65bx7Cfl>d1@sATo_d|oFUKEX^7Fp56 z5R*T68_s|mh5{a+$4f&Rbr0@mH0tC$4$fMzt*~L@!eFWGFcRRM5k93MB`0jaT}>$F z`vhH(u5~&7N*e!`Z!JczBGI&k)l&3rjUX6akAkO-zp~4oX989^e#h;B!3ovrD-M== zX62c(PoMB#Y>`R6F#l6*ZD0bR?SJMxvu5(`e*o#3EFRw@6NN#Zf95WjuL<6P_O!}! z%4Amw7WEGb{~>^49!)HrXthxaPoCTd-|PR!+_>%kJ2wC!+|SLI(s~oP4+o4>I8N0^ z+JvN?a(!dK&m7y6uYe!^Dc(#q83TxBDVYE6i)&loW)1j}=Kn@KK*jUaL*jJFmoW-|1cD~{O>A9U(#3bh+FeD*Mxs4dTTyVhyNcWLn?|XtdYvUOXjg@EiPmJx2u*9 zCU;3}^7Dn-w}|0b63am*dLaM!Uw^}%`eNxlF{SBbo(j0_58 zG_t}dh$YO>Bs4w z-EBcKo$<5WiA2Ey2DHe?$lt$zpVZ9U{cRncHPxw*P&bxpf=&1EE_>#dIuC7>H|{9; zGB(cI&~tPDZoNIt^7JN%hCI4B}LA6n>&1#XhI2rV=*#J{KGn!de z@)0+?DGViTcskebQkjKOH(DTnGEniW>F8gxn)M?)1&m-o4ud)s}V*mm7$x{LaTtw6N9Ci)lZW{uT*!*R9u;Dq1_$c-wYx6W-URpEmfA$^C z^7=QlF~=LKuIKQgu`_~;KbF_dgWb?Kti-8pgM=J*mcP-n@Wv@ugfP54v0_Z#v;D8$ z!z1a^{5UfVP-pd}Xg+R`{@<`8p8qlE;|;1~SMBu~tjMDWNcn#YLx z>0I9m;x6(sLbs+G^S=*{uPCdmZ@>g+Jv$9P#2P%hxD^x4J@}+aB%R)f-%$NsX7B#W z7{Sa;_;%?dx1iSJsG57SL|h^Y)IYvr8oiaX?YC-8D{aJ$p4;s@349g&?puL;S3gA? zBt`^~iGTwS$2SLV$a#YBO~IQIpTF1i<>cEFZ@uZSZgdfp9n&n=9@YyQER1X-x4t_w z>OGEZO%s{I&NAf3rcq;JlD>00_OrzN9ZYKKrnb)_|%Vrjv-ksX2V7gJb2ECsK$EN2gwotY$?kt-?MHn zaFL60hi1MybZa2xamKvb8h`q-)6UZiNngt1aqDPYL6L3Nuip_t9VWLoIRR!%hCBEa zf>DwX5-|_ru*b+@QOXeb(DoHCPZbU&VNdZZ8bplLno%j_Z&jTpFiw}Zg2QKaQR?Hd zdTy#soxfN3vtG0oTAD3w9O7ATm%_5AWH)2b5Z+i*M^J30C<{6L4vTGFMIaYYYuAZx z!uYe1n(4Kk5RPy$5UneI>~UCWK8RBk7^7K8+aWppcPZ-!|1Zqx%J|No9OgUhGd65O zX9);6xRgBw#j07mi>ebmOHNl;b$KN*q(Qk|_%7P96BSFaFJ8XryeefCi7qZshk zYf^2Zd)>Y0knVHH5*0teZh0hQQ?sQFJ|6T->y1R$oS(Hvki-ns$@3lc_$F|eM<^-& zz70sVt_#1MqMBDI@J?hC=VR%en-`^mKL}(`LX4jz2?mMseGAqD*yZ-a&Ohah*+Y_MB3l*+CfL~wounYXi|)P6i;X4Lj~2< zUH?nR?|dSO*_}m~-L`WJ?doE5v~4}EHVt3fE;c?3>Q&kyN#=H5_HOqIXsZRX&<1=g zIV0f_86$em{I?@$7a0W`-FWHy;%8eVlZzo*-aUqmp(rpDVXt+9wzrbM9OuRFPWLS2 zuoAg|WnkaTuQG(SggMt8TId2`>!wV=cfSO{(E_Pk!SAeyE(I*%rH z$;cb|9x9(zkXFvuZa&_@)vrI8z^>UVS)ZyX#s6F-syj$^f2tXM`j-^EAy;j{cwWht z0S^wpyx89E?Pe41X}YTln)X0$4W`MxIV_4HtR zPX5kD_$Y%Crxl4KR&k1zesjA0a8q4x$Cn5aDogJnxt&*!C*LqzO}Zd_){K*WOh2Qd zXEhhh()P^mCbcjd>``v>a9?!#J$7ls`BSAzq-zswc@tGNM&S8YQ<_iyXpVZ91B8@R z#s|Qedm{4`mLG9c;{dg|+`r!L0`r@n*PYUej)HxhJ?vE%U1*{zHttM+Hm6rfaM1tl z(iAd%w7_-0a4qH?KQVXh2QZ5ol>-4x=xz9D`yOI2LP%uP+tJ^Y+fy56i?@S(+eczL zFn>N#Z7Oyy20-jiC_wC9i*DX*$Fv<_TKE{<*aji$Uu$usi%UvxQ)==>ocB0+ITF;i zgk9~i7z)=KJQzGM!;lThE3VHw#rfIFLm+AH{K`BaaJqV{Mf3BZ&NEya!|4F4aqB5* zS#yCO9Qr5hBXP?lX>mwqfBAS-lp*2$7Sz-OSY|Ws$4?*rS=+`^qYhh_6e&AwR8!hP zbX2g-3c~y#5POdqo$d`7(;SicG`nzTs&7D3;+@#(l6Gqp(MYFMW`s_)ANyWKlX$7NON57QaPdiwjImy z_g({?OjU>B(oJ$kZy84Eqkcg1bj8+eZHvt?4Mg-8$VGHVf6g3cbA?1#AhLV*$e1XR zki7R9C@w38mq$a$&e`3y>DC7+25r;p5r+z(<_qejUY{q579oni@9CMU9CH-DvcC3d zUi`efMyOu8-@pW-%SRVNPFpEf(?MbhwGNzdtDXseYxv00iO!%He5KRCd@N)9k?H6e z;$I%_m{|PY->6d&J#y`vPTODlbW8WEm*XqEh6J}AIE8O^nYv{ZJ`H}6s6RcFvale# zn4;lx^{`Tb!CD*Fb?>Oe>esbw8XZLW^aQ9B`~e*~(6>zUD>5A{`$QitFe=a=sX6K> zsg6XH#k4DcINDaXpYv+D93bY>>q8ENo}QvYTdNnseL-W;_YN2Qx}`zTs~HA&Px&9G zWa_*rl2kjhKS?0e)P&QFL1LcJmG=U@Qe)Ft5zo2Vd3u+ zo7a@IZt!oFW;$Kat?HE69G2t!fLBmrxv(3p^aMKnrnq{B^0B&|^*!IC>pH0I^)a6n ze6XIRX2$3C62Ys?-8TOSO$*M(B@#Nhfnu>mN|Kf)<@O!(bBlkc*TkutMvV_qIMKWH zk-*VM8gn_1NP8 zC<4@uBPNnG@Zx4sBua6?f3E}YDz6aIv>Sgyd3hFJJpBtfA1>h`C%mZ7OX+n5K@iz> z@2O_?IheH!L8&@Cv7I*>P}M8$&M&Guo-?I4;B0BNN)>Z`T#3U3P}Bsz_ab&FJ2X6M zr3c+~`OMAC++NwCAoV=aI&XNmC55VFc@NIIm>j+y801Xlj;lTO^8J%aY&F=dwd@!SD5_i+11M|P}Bm`g=gkewXpJ75H1tVHm9D9BaO(rFVR9C9ug$ z#@JcJF+XyxT$1ZMmot8QaMU&zXG1RR%7w6U!OTK`qR}70Y6?e7=;6MUc&|S@ z?hVKUr{j@KON$k=UR8L;?cMHYLwT%t6}Mj)5D34nX79j_zef^$c{N!6uD|x@wMRrkqNeoA{TA`7^*~lsw+mALoQlK5 zF^uarGZzQVkc5PWSEx)ZY;fB!e8p>e#@6(SPOolFIH7d5+js8Xk1#(agq^HP*HLto z&gghzBJo&Fh)Cb{^mhSc8Al9%vX)@vIqnsqBxD%F$rs%ZM>x|0{S! zMDEvFK&BpE@Ms3zUVi&#RxZ?2qIr9)ptxkh&`vPhnpw&=G`a$$yxoUAT4#jhd4*G< zSqu>rF<5`fj-tNwRh)VsM;6Bw+A4u`1mwbsI#Im}?yKFsAX%e_VBeF9Aj?H<7HQUH zzc{ffKD!-O5fRZXRk8)7?Mdrb?nBYIqI=gKav|ORJ@4EIiuh)|#2HCvYZ|cLFIprD zE$t4L=0(5#p73d&=;&?gGMqcn-mCVZR`)R{)K#DnO`&-hR^|}p1ao$-YWUOVUFuRK+-B08NIUtFWxyHrt zTBRA%+c%${FAsflTYE>L0Dvzn>pd{h%2`Q|%GtuMy^pjAFp-YBg1+gDEGB<+$4$9{ z+`ubDD&nmyG+qVm?tuZ`RlG%qngZAAUuT?1^b8p6b^)W2^*6}q&-`gn5Tozd?flwL zSQ$ympDgxCqAF z-z8W7(*f6BPIAn@>n%ZhkXW9dph+~*&E0uElj=&qjzw*dzH+qtbkfQDR2(JY&g})< zhX%$+e8qG4>DCxgvhv>z5W_$15{%}D_F_a0dFF^ABXffHdou`>^Z$HJDT_z+us!-i z)aFb7c?efWbf*7HLNPf1C3Asx=Pyx!y+*Dr*QQW41R0wkVj_46&k z*3n?Q+uUO}kRZD-T#wuos;W(teVU`ayS_{QvA?KVeOyFzSn8_w!J%4v-ZUB`zoxzW zMsxYXt$qCSa=sGjm%K|1n(WJUAtv|ZY-a@RT0107lJ1+U!Tm=IE*YZBSukEausVIs zB;V=gM5bC*0MfN~P#`0iS-6x7ls;ehUQH~tK0p#J@*>qcFj%w6TMPljw;8*ssT|sN z`>Cv?zhgogjW+ZMXI<{3CeJwAStsgJ-vi0d&BoCf%k=_yA<>apl_j{gmQ%N!3649knw z@2R$m`UX)}nds`+y>|AuKJ5@;PUfre{{l0cqg5-O?~W%LK%Jzrj$W7%SeA_lU(;~s z=^bAi{<~x3c7?+kOjl-bTk?5%Fo`E>Nuu+WfcD&~2se+=DM=0pnXFYQTP|GMYT| zFE)E;dOanww~x4GrmzO6J}F07c0Vr6qOIwG$zzBjc_+JdXD;Vpg_^3WY2~ki5M}0Dpq_W%5T`3SF7^2kw0zyPMD0~7bCPYWzqK{tMD`i=$+$Mal zG7*x+Anbgv{{5>Exui0PTP+q9PFkgr@bfs30vw!BUo~D33(>$v02yIlm<*_9@Hx#E z0+Ha2rX(g_r_s^Paupt>Np{Utx2tX4x9|txC_=J*?5AUs^0)$9d?NY3OKpE zjyE2{DBa4zvZrm^?%~jq!{LU`gx&ZF$4_gM{qlZbp#ds6RIxsOig;9 zJ8NquS~C#0Z+n;p{?d$>AXC2RKDRaKEqNoVT^YFR8FqTKO_Nm`yv((AcTuvyAu%jgX|trM8svQfq-c>1(T-EcKXMBDDnNcZmi z0|H^XND_qXY~j%CXHe!orA_?}IqxpRgKqL$(7 zHhPMAj`M?vx8!C_0Yp@qw&_!m3+00`dGiUS?W#S~+wt2g7i}wiF8at9w)^7vlI<2{ zLo+)ouBARXR4}_aqr1B`G~SAVKbQ)#w8DKIK&)a2>!Fy?`(t}|^hNZex~^s?i+aW& z(Z{39dDFBi&5TbgL=qlU7A_rKY6z-hPN%%8mBUApXA3dbU%em|IHaUW4t~m4cnK;mKlqO9-8c~kHv0x$qJy)?AQ#Y^N!c= zy$GKh&aO2u3wm-UPxR(9RoQp@ZQksUVj`sSSqk5OtQ~g6rWv*8cJ{{hNaMB*K05}^ zrexBAvy`<<+u8a4H(*(MiSGj}b59U&$k6ocIn6SVNYf>@_SuF>0AiK!Q9-SJ$ zbE54I

DWFt>1Vo;LAARfcevJ|V@XjG*ify!%t+W+#}&PmYzGoQ%}Q$r^-20!sXk z`XD@*H^;m2^_Po+=~s8^)h36U^+(emfL2_lf#32*;>2+N#*C#iYQpK&w%?@+h-e41 zaMrPN0Ug$X6rnGGwEjt`e^XLx#v1K?u7xHS#cADwa(6l)C&K!Yk&|4KdLh}8Z$J0P z%J;_E4YNJF*|~u}3Il1Nk$o9F{~{|sN&H}yeH&MRx$V8|%#&MsaGXmpLfO*;kYvQ8zfT z^9jh{4>%DQ4;K^x;Rh3_yTIYI_T?3#mNhI7evWRMoaTuDt&|X=tXW~tr7=k zo+y6Ua>uPf*Ml=d$|Tpm^ECYRsF{5YDrVWyU3q`~eGQx48H`6LBs6NJrqi}{c!%~y zpOmoz;=K1wG(s^vdC-`sZzwaMi_`I$MXyagAHOZX~_WrLDy_MMLfVeSKB3 z?Ysl(gf?fiZzIgl`Qs5{&o(K!)d16v8igJgPf?wUNT7PwU&PsdP~U$}Cm0J16z936 zZ8LST8sr{6xM&zp?~Pq|9$#+W`AFAeO%dFfTQJ#u*SDyPGGS!b{S;GS1w(1^i>(id zq;g1T*aDb>n8%$SH#hI`h?v+K8J|z67+X!sRRsCy48?Lm@im_p3 zvix6hPgtCF1ZreznsTJ5!%B3DMU;@ae(qKbWds!YJtS~zx&*E zk3iWTs-i4S?AaRF&o7;R2g+p|da4ji#^$b}($EyhS>e&Rw59vOK+)tcXDYw~f3LU! zPq@6K67<;<-=Ns8+*t+EhWk$4gtAADUsuR`x;2w>LnZs*_(D+m4QQ7BH8r~Cs+@be zlZ8eq627&PLMJ+|s3wI*7%m5-kwD~VOtb7h3?L*H>~Jp`?0^CFdMXCLdC43|{ajw4mgoI*_ zr~kSFTgCYnzrDJYpD7u+uA)&rLkUIBW?PUyxeo`E6d!+cP~1-vws6=JO(sq(^EUVu zIoAa#CLH3xAaKOxJ}?C#LPV>*&Ds=+f9w@`I|~{#Dsw<8ZUSN!H!%nNfbKV$6jq zh=*r-+rqy$WM7E+-~JfT`=bsa2yZtCvC3Zd1Wjs|{^&H{(?AwqBz{W#{(`FpbTkr6J`5olOk!u%x_zZC)wgod zq)A}4;%JLPr*PB5<_qv?vfdc|>C>m)x{03-OFI}aup)LqU%_2x@$IWxPJYlJqw!NM zRWU!a)}en)eeuw3s@|O|P*O5TJHNC{gIV18eFm=i5(&vBEj>M#$6p3HY$}88gr8RP zWi%U>9i5$rliATnfBdl*UF!Tr=cDTbkceUj1ghB|R^)riD-}A&?slR$QErOTwcN6@ zn6aXXgSqQ{WD!{$JUj`|Z;s z;XNiWTs#VicTO1ghxW8D={WRT+|G9TO(#lpxcT_b<)X3*CTVD1{?P;rxWQ#InBE@A zH}gmA{*VLauu`xw)&Vwng*rA@N;ZGFe$!Az@)HHdS~81c75>8Y%YE z+{6+R5bsW@0O_x3X_9Jdb{{@`AQrVEe);kxJ^_(31VZumR62_MOY3leBqT}Dnvt?9 zxIRtj6)P*2Tof>MI}>0q)oaiq_v>9(jVhal#-`uDzs=v?Vc(n-<`au}a9>_t1_T8; zoYlK~HCiR@HG@|<9u$g>FH+O5l6II{YNw@pS!UP#c#DiwqshlxJ#oCVy(>hf~MB4|hY zR_c4ZJ>#|<2_Aapc5`=oec7$#+w*nh8)bBbmf}oasRRMH{r&w`@X9o>Y28 zNS4LM#kCg1WHT@`8UY)?CnOvm8hSnQm0F}nR)Ml5_NBaxqT=4+78FbdFQ=;XQ>5>RvZCQ0#w&Q+EA*}uWJr2%}HbhfWQBhG3q5`a&c*ThicVVplmhgOP zs(SM8${$BGS)P1d`pAwBsjcnp!qU?G%*@QuCiuOjnHm4B`BGU~+0Blr82Y5^!k9=4Nd82*U##F0VBjy#$ca(ENDq$fNSGu01|T$*z-Y z%WUm0v^;=?fg%*j7#bPcZcz3lBL42~-8-2dS>@%u$4VU+n|tK<)zzkhx}tiGsaaVs ziq)88Wo1QrSXfwAcdO>?@ zm1RJ#fVDP|)(VBt`%GFUOM$EzkN({PHrr)+!Hw7-&@sEm85SLl{dIy&#LPFsSKFy> z)@rUkslswXSy{6%I$SY7E;crna+PwjDP#Wr?);IIteyds`>>a-DK(s}QDdGJnE8}x z2G5EXWhv3qKt7ruotxGjxE|9RS%QE*{G0;C=6X&j#JN z4z?z~zhh&LzgC_j%geuFWL)}W{wf%YV(ZiyyxNmy2DK8cz~0@ZpzTtc9vh(j)BZJC z4tL&mJMOPKIn*5GzB?`TbsUYy`FSS6T~&6Ed&li@ArDmoE$7 z_v*QL^w&-cf@}gAJK=+>c3ZQ5F1e^zwcg&j5$d?E@`D(E2}_&4vV&hcD&@U{KvW@P zrZP9iz}VFFyyG=tCYziI%$hA=aVIwwekWotI0>4YSev6Mk zb*qO$k2nU!gWBkwK!djdY^t`8Umy-d-QyPAEqKhOv*R&RfeFGn_?1+Ry zuYRk-5#foK`Hi4LN`3mii{cR&QhH%h6T_Ha4lYY9%5?&fOG3SDk*SCD=^l|*` z>Jd_uuk^=^j~`oeyfy!In_dsO3sX8cI@atrUY~el1^Zv`)v^8QvDzQmg6jGWk=J;;$m9y_oAgH8_UraVr6NglZGEpc^Xu=fw&`CAeb>JD z5_Dq#_|*RZ0B1Fh&Zf+-B%NE{r<|q(|_%`gfwRE8KsRLx~zq zpra%pXlL^|4F9~D9Zco(JuED&u{Pk}+Px{=fN>voQu(H4N(67gOB>EeAFSceMB6oJ z5+_1J`(Ix6kEuFnjkK}VAG|54Ka%sV1FR!I-J@rS+vfje=*YhLQg?Uv%?iEPa8-jY z+x+$1xlx6|zdcbT%U{X*fFEd@?j8gJuJ`=D&$$o?p3p?HRS=R+T>i6jtWYQt&tAp{ z!m)n7`M#UWf}XgsG{ih0kXk0aMw!PIq4;K|@FPPjF@oc}RJhXSzJK zQG$M`aaL;mtkvtasMvZ+7%oZlw{d5$Zr|kQ;_&LMC!Xo@dj1~kGw22%RDtk3SGZB_ zIYF!Hz_>KDtF6A8AiV|u!0oqtN(RCIJ_lOOjAovwtD__A3TN9ymjYR?r+%v0WW z6?qgp|JZ%U%GdYYRIi(_ybqjc2)Nms?g-gFmDGeAUM)|DWt}8pE+iUPXnFp|KG`-k zHAUuG=W^as)%D!v(E+}INu=Y1+Zj!TE!FpG8B`Q)&7KRHzRl=WgYcN?Ww8HJ#+STu z{Q3zt1%yhFLHa%az5J)q3y=$YesV+ulEfb$QeV)}xbM}hKW5GW4w*9_N%n8)1NKlD z6>iEpDQReEB<6jN`}r;}mZR&0b^lv>+(5^W$J6_5hC89_`Loe`V~9H4Z7I}dFb0G1 z-}P6IB}UpnXmkV6fXM1_e|tVUG&EF%MiNLYK(FM&?B$*#Cs!SmB_o99?VtCG+?k=i zLNB{O?L-bIppgb7Gt;Aw!mv|LZZ)Q zuilwlwU}Z@h?xaA#NpmS&+tv4b!t0AbQZEH-S%gb&0>}s1Krw4`wdMIcE;W`NG>%{ zcw1}WrJ<(A#)li((OYm3_#Z$dv3HDVQ7TVMp7gvMk0fi@VQXHKAb{0A(*RpwwgR|0 zJMNB=Y+`omn1yk7?8|`Q;O*;l?=#J_{dwP`iiheS$Ucy3-{CbK4+tf3o5wabnDmq0 zomDkGeX0GwYkftl;B~apJ>xu~bL9e!DGJSn-$taRIv?^CetdTxQL3+J%qU z(IRKWolz7*oBviD_y|ZCaGa8>eQP^?muRAe-`TP;uuW!BHZ}J@>;5;IGoxhaz z;j>*);`<`Mr%&_Mv%4`_ORF0mh)HwwSk^Ox3WJIQvt-c86F#~sFgvyt`)M~60dc+l zcwjk*%w`BZno^`E+UF!&1sb7@G*C#)r$(^U${pK6kR{P&ALp5G`GxTjh(85T) zTRkZwt_0Q;tsJvK{X!L4Kitpb2MZY`A7b~-wt!?}{i}0KVjgDSi znZinFuf6CMZIC5~?0Zz0MF93NN)==MumW#=76WtR%CiBHb#ma+hi=07_=E=|RC;@3 z>r6uK)t@^ZKR zhI0>NC&sXrrS@?5-HM5;%#M~MKPc2|(+{10J@vA!qwVo~HMI_8Dxa<^OftV%<0?4d zO{6%m0(uEAFY;)SD+X-gi?54Px*rT)z)S~6FjMzuPOTGIZzC{uifc2zeeX&YfO#4( zU{DBtBP(r6FWzAW)HSa%C|dOD`zn(f0uC9Oyn=#4v;%9M6Nmod;?3>;J<8I+6=67( z)7VH*L6N>LytlyCWy@GCT+T&HxTZB$z;1(|Co+EmM+j03g*x=}O#HH2eB*8E<0C4c zz${?Ah-m$CnOi7F@)f!LpAxi4!svZ3Hb!VxrWu+`k(3%npUm*2THfLgE!}!CY>m_N zjM?XK#*tjeC8D5!0dO62k7YWLhmmlZ9CXuXy#MeaYoCpcZQ@>0K_NFc_i1!zYk_ih zK~WKnm>AV(a45AL1_PNhV57>assVZCfPw%l=65@IzOY?qzuaLDaPu}7hk!s*ODma` z3Fry9G*X``v;YO$RSgDdD40Gs50A2niiE5zD&W67D*1}Ww^yfE_N_sfG%VH(Skg2= zrUAzH?Af!Hwots#hzO&W0MyU6@iyT2O}ha#J$*2+_~ew7R}2h8rkoOQ-gNc%8-oPc zBMo%C&Q#m)Ou>+=;0jJo+#DPn;7vJ9`iQM~Q@o~EFqYO*8e2keY1~%h#bEb;zNmRq z_4f14zIA)c-gtyKfeo?{4gg`=21G__i<$uV8 znE=THC<3$OA|Ch$xx=>8_#2I7@ZG+2o^Y^(Jxo2CKw%MONs5hq<8d|g*%9PqBs>PEO8AgoM|Mcs;{cw9a)u59E5?arAL% zY5gO)@~GI@rfYpkwO_c5x^TdU)^rh1jRp@M1RCimT2ayTn;WmCrKRenFeZMx1q2=* zo_9%{PwQp}VkmWw0N>q(S0NMgbD0hpT^ua#%%()oQg+9y>vq@eH->|QnISne~R&f4mT%o972P+FHI;IlZ@A4e5MAVld`II z%UXX5Pzm(cB1jOd<{Q&u$4$ou15lSqfP7R@;cPYYyRdgEOcsy6-0kq?4!kPkzVXf@ z_$Y=(dclrcUm238m=e~xOKrQZ7#1EL8WQqpU}vgWqlWWSrRm?Un1D&Eo#~43kPsk+ zCIdZ;vtOYfC`n&HFRbD=Co>IVX=iqorkfkTX@8o$wl+D)m(3mcJ@(#v?T=kl^Cy&Q zWH#-C8$ZhE-Sm@04~>pCT=aX203Hwvq(UG;0XO_~H)V=PNjV_2-zX2B0L}WKqx18; zv(|Y#iOZ8$B8XO5SGO667mqvUXJ)h=q@!CvSH{fBc5kfzOIkWQhl#3vqs@^)jRq5i zQjD}A9CY*0GJJ}XAB9sSpJqNQsejbAfo_pwC`IL$P4WD|Nd2MC=>r&ENJz+#E1(Dg zfCQa6Hy}NsRy(lJWvshI_yIKwD8M1YvLFhkU=(SaEHey=irV@u49?t2Ip2Hl+f$kHLhu4)sG)dt?^U&PwjDlJ+RjJyZoc5-Bl=7-YRYcD)b`nsP9e1`VsrF8 zeqik3Y)6HsW8Y$o1vQ5Kkk+x(1 z*x!k4-Hzpuh z+G#Rl{7STGeQ*C+298p8wsO;bp-TQ^`m5!=eV<@(C=}>WNgRfP^S1+`JR1XI`@$s+ zYv9}vWlni{Y&dJ}*S4Iuq@<*pbuJW58b{=^vZ2CvlZL6D0|FvJ&lsR#{m>7ylM%h6 z6=mO$8k-?Ju*% z7d|&Dao;G!DD8IIiS+t{BFWruPx%lgf4g%HiXL-k02b5J)1#}S1R2xS>;kd>(U%&) zz}wo|Hn_MEY^qWug0W%}5<0-%F|e`Gv#>JB=#EET8v-v%<>t5TguhifiFA&4N+#9AWE-vac;xwC@Q3|`U|DXWqk|g5k z^4=cge+sh$0jU0Q0RaIBi8h{Kk->d8l%w*@ff&uj+H}J?UaD7GS5WJTe6rS%&G2h2 zob4pZpsKeYWD>ot(ZbNdo*Y_wF8h`zSX83#yu5_h(;Qi&Meg_k|3#R5W2Nmh9C&kT zTgvHk<3_0Gz!8i^wYCZt8}50IM?%s)Iw)KuW{4Yu+xJ~G5`>`f5}nSSB-muFGa16> z<|Zvz%0iyz%-d_nwh(eqT<}Q!na*X(i_mm+ihkvGQt{FDB@+{@^U5N*qnGVI)Yj{E z8{El%l_>#czf1=tX3+KepyLZTn!rwAgO3Nu1YQKs-<(N$yZq$Be>z_BaWI+35@E91 z9B+{A^6BvKFfdJf5Gv|V&)_SoyHC7q3V;1#zxCGm__24}w!Ry%)wav^j7}PCk+vR4 zkw%$=u{z)ARd5x&Oj81}lyjj`iM&`OGsP6lf5!Lz)|-^gaAh4|QL5x4ViEK!&bTw8 zJI~W9Bxja|-6eKF_n3U|xE?GP$dl4QSOEni@zT+*7@96PZo%J&n$$^wviO+m?zHox z+nD(H?&1GmWp5o-W%PcDU%I<49Z~|yB?P1!k(Tc6mXPia5mZVEFOn+V-CYvWEdnAf zU30FV@67yW*80tw`Ny@c+<4z}p7T8W*?XV!S}KS%&qCy1LlyP(pg0smsG1nwQd1QaUJ51PxO0moHtrr^HlLV7CAWjO}|4PR>)IoKZ|XyuH=z)0up} zH1hGCKNCBnDTJ!@%cUkX7dCImRPVCV-%pQ-dTVSQbvwJ zL6Iz=RcU&VRN0J9tvu4u@Sd2QM9K*@uUmNP{YS5?iU=gD9~-sg07YIm)H zqBq-l0Y^O)Tn6=T3bSu`x(sZi8{ws`t%e)DV|Rhqf7__3sqNi`PtVJvqDII|(xM}y z*7uo1;raQIm6g1UbOa=Zme?XPll-8O<4IoAYka8z;Yl`UFNx|4xtP;r)cYWv6FUMViwCq#xq3rbZ z^pHRR zW@2s4f)n@*fcqfi29a zjVrXq)t0(KS*ki;jRwFPtiNmAz4)!``l~qSrg~_@|AXg*zSzy)Q3nS7%cYtb-hf${ zw2aIEtytz(@G0kQ{k`kKaNY*Te!zW;(uzrqerof8e1Cjq5!KL#=4Z9mLq8m9 z{4`w8e_YG#7Z@%*I(7C^H2$`-MI)r6yR!1l@U%(0t+d2d8{k@jBjKOTStbX=W;Wx!4;$f9T)AE3B4CYgx!uNSl*?j$)qrQdV0d)mB@+i$-dTd zXu__j)XC3K<1&Socw83irv&5kzBJ*0&gx-KLtYii$OuKbL`FdY1H?=P zV4na6-{_5JlA63ykVpysbZSb09XUQV6(JW-ZVq^*aW7hJZB1|%!~DX6dDR>&@XB*) z`jnv0q{$mk-~-+?$iSK}hyfD<^FMO}Qu_l^Y;(|OrVBXFhrInGQ7Wi1sjjad8;L`K zEa~LaR8vE?<_5(f=jvYTitd1h7uc6C?71~9ZSU@ePdlj0;%p6PRQUh})kvk4V@m zj#?Abh1@M(D0nRVnRA<^6$-Tc$v_;-tm2>gK2Zr%5`DR_sY%3{dVDUUacO6Jd)SY; zC9jI4lFM>I}^=e+SfC3hDH!)OkuM-%->nsK@Y*O-CRr5H+8WHSofY7> zqI2ej1}Dh}5aLBl)z%7#o(%KBa33%V$C)ONK$Y|sV6aDb2ciD7-4bpA^X<=uoeZj1 z(H$>d*hJGke z>Dn!8L+XY8KASRM%B&Ic{sZ;%7Xv7$FYAl$MxEi+xuLzQYhO1O2@gOOp5ES_Yi?%K zY`XY|5vmEPI^h2g=&5BridvYO5?VL&7Zo@ z12H3}C!S(s+5aF>@kU#_2eid6xWw--8XFsh0rW@6#mpd1tn_>7?+&B&R?VR328M>f z3xaCY^g|+e7}}Mulm@fxO{o7a69v-jyVTTmpoSlPA$>m9H`TxaoGGhWR=WI*)bpf?V86GDye3A?)Tt6y>f_C`R+SWFhE99{;@);d!+ zHZ_%7_ThufE(R74SR-lNroA2E7)UVKkNdBjx~1K4xp=b*z4383n!v#DhrGO;*HiX8 z$Wd#v2`SFyZ{q_9~Z>aTr-G~?o{6?BmE1z^2^q*6E1BGqJ*i;3!icPs5}Bod%jVbTTu zBwB3nBRkvwb}uBAl3U{NH7J$KBmp$u`86bC9Woe4Bd!4`2d(G+Mj$cZN2BE2Si#*^ z`Eq=rczAtp3rYdup$=FvFqbIXIlU$|4lJYmXBa7TWf5ACb=gL9cwYt(Qlr=U%3qeh;Q7rJ#An;X4rO)I|S zCOH&xrAz_kf&NZbp8y9a@@lV>@BVMn_RdZy*U-gk_+I^PsR%}kD?4eY68Al_=~X91 zxp|i#tap53B8xt7H%8_tfD?jvgK!%C%JZ(QkkJ{3!AY zA2b$jLNpaBvv(JLc@=--DY$>Rh4PGP2l>{9!PKDp)mPlXmz<&(?I;%uuD5u&OCewT zF(ajYww7LzoV6D(RAGRm+?5n`A$lV&(QLw98+^fNRd=-q5 zRA<_9dUs8~s+rS>BY7{}>E-wX9_0G+S_e>FZC68OU7MbryC)qxZtHqoJU4xbL?!$C zyG1LyNwzt@=wkbHH-953s)EjZpq7VM0qNe8`~jz&!RU%9>OVQ84gEz-e2#i%6GH5p zAXj1L{HA+hL+0U=1s!nqaXb`bDSFX6LchRJW-MQEGw&{?;(`L!`)nqZ&NY~*3AaPR zSpRQ7MPwR|aAP!5h*V23DVx-5uXq&m zVm{~6`_2jqqQ|uQset9f?Si2%;S8*~Nor45uf*o)(E1pc2$&Ulvl;TMgo7{d+n}7z zdLJJjPZTRVQR^B`^zCgCA>(sr=SOsN)mSUncjuZWY>LExyhWS@I2ZSq-;L25L$g#` zUw{M@-$(C{J0^A?;B@16DrxU)am_bHU#on)eNd-l{426xM{w3FLZ%3kQ%Zog~w+N`R$NpFqYivw}-pIkbnOUtHAg(RW$hS+W|S;YKnYQKFu}E;+3l&DOT8TJl%Bd` zHhsv|ubaY{Q4blPGBB5#ERT#V0%P$)?@bxA46nO|*1#48Th596XN4)#4RB|C$$7yXkNVWvaJqbeII z?UU(z_I4toUg%@f2IRU0ye}i-^K*=t(hSeQy-~}|@Yp+$@vBhpeZ@sa6N0~ZVvQ{< zB5X$*&Cn~vOu{Bl(*>(9-oy+G1L}HZsMUHN9iVhj;JylM*wX4ODR4&a_imW+!fhuj?`6&(ag)o@0*wG!{` zlF6-6X<9iLCdx7`@^+9I&oq2Hik<)bM4Yk{em}Hz41XfDK5<}(vhvDL0tZF7tlTYz zqag40#IDOLnMcis+l&>HDfrW?Hn-eHF6HA-CJp=HD2Iuo(R|&kiXlT5?WKe25L8_B zU?}Eq{_cM#YhFgp`AEOcnfaAWnO$4e!^Ef604+#+Ui1jXp-(YgoApy86zV!;&Z+`9 ztIp}W`5H%<^KY%v^Jmd>m$RV#9?p@FSgQhr;i7vVtzNAYwOY8jCW@T_jCXgNCvl)+@7m*nKWa*;xc^=YO4PH0he(l zD)?KPfdOx&{)-o361T@`ZkNYoPJqZuD2?rNsIlmYBP%K`jVdVtwad=MrFRr)4b8P6 zlLDcn`+J@O5=2f;Znob20Z{7+dZC?b=-p+&sq;0Y z!2V*yH7MK+76UkIU>LHs{!&tc4P4Pe?(4ETGl=YCiSvYGcbzBY!4NOAB5xqF9jjFp zfvPqUZ0_M&3WnXbw6q%vWKSGDTru4kpDUx^?QY^1QJjFsQb@?P2RT_+Lo3U1hQ{zY~u0wrCe>&5(j6Zpqs5H+Ti3U z_a31F+iQIM{6A5nQ&Ce}o+n#VzA80I47@%s99|jD;DfyyH9`$Xq7iZ1f*U{Gq z1uevS+j0P(_0m`tAIANa>wT1=gR7LBTu<(1=IgjPZ184CU|=8wQn!%B&-4W7)XLeS zltFFuTVpxVV_QmxFh zP)o`_&PsFWB7PS?Zn%;gO8b$No1%s`S(4KgE>N`wpARu`#&&#|-0UXF z@fTgIGIVVrJ6{ZZ#T61`J6D;1@ue)d<(_cZ4b}8|URUGA@zM6c*LnSV|E0!iM|}Wy z@c0Eyp+D&4mzI{&#RL83PX&Q`-2r64wUbNWcRU)GA;>q1<`25L5M6ngVJpLE@_<rjfIE|$it2UO#u4sSLf0oiUjaI#D=$er4yf8|e|IJ;%)SD-2Y3Z~9m`tCufYkk zh-6})IC^=qg%Hp|5b*Q!yA5%Jf}tUlz>`srL>a=2@{9!aIdSfD6t=P#Rduc6<`Eo0 z%$vY0hLvpdO84GQzIMCub<63gUWEl3xC4wY({aG|u?9R`QWLL~o%v5L=%JNo%25ZCOdMT3Hm zVc*?YPJqtaJEiJO@irBl9jNisb|C%+V2# zCBh|Apl)`&>IFRS^sQ+QEHHoLHjg4vaU2v+00L=zF#rjH*e6(&%E1V3)-27G$)vIX zH^3*ri=6r1P<{Nq+8KHGL=5zC;E2>pt_{F(`;tHqx#lu{u2p(?qrU2A2|@ij3I{Fm zFWu+m#kiTscF*sB1(RgqRt+KP+X&4A<6TS`_O>b1sY1`z zEo43TZg$;FF~x1cxelB`o(uY$Z{NOQMtA9zn@MpIWEQxu{CNZ1MNsO5hZ#Z;qa$RZ zEc0o8Glz-@vxrb0EOPxQCcf&+kd|*5iXNsH1NX`o*Y92wHFD!SwRTB-x z+nw3?_RY}!_-Ap%0gc#|!dJs8^0C|1Ydc5BKDD5$N$MQ>o{gMauGe=*v$@y%PC?du ztyk~MR!xI$EF&J6e-sI(i%z16%?EM?4oC!o%lE4&E;xz0U-d#$QixHJk@UF8joN}} zfwt)~Ob^%$G2qmp^7u6@B}5a|V<8n7D0W^W)evp99vM+|ycl4BFNsTk{N4&cwfxLX zs-tXTN$|$LUAd9Jlrq7-kP_5)29z8hB{Nv1l95cI+xwQ=*vPFhyiC!)4w>jpOWCzD zY0OwaMgT0E3_EFD;Mt9bM0?rY?Tk?1)!#SgZbDar_b1o451qG|(hvPx(w}k~ zUfar;^ED+Om;s-6m?(|N#Lea?y4sSd%pfNm|X z{P77%709;0NUS7{&y83TvbE`ny1hR!U&nlW>Q62vCN^7XjpOHk={)-HAlJzD^px26 z;ps2B?x(+}zmK9LEO`mo0NNqEbr!=9hAKtBqL4+yM)%%yJ6W$^LdsffW4?#k2BwrH z@QbdfX*iQSAOILI4xaw|Ts!;4V*s0;s)(AhR~J9gPkuVsBp0GevZcsOjKq+rm&f(H z+V4{hrzI_7_RjbmJiBtXW1dZga1B*F;YXPyl?ye8Qs(!3DT;a?-zFF$H5qdwrJ+@A z)QT&oky~GOue7*5_qS^%mMlPJ3k zFg(JV$j~eL|APE24OmAX(s%30A{%XDlRmi*q8(?lbU!-Z#>6Pv2R_ZdbTOc{KeE>5 z_~pzVR-)M7C&YA*_FdM2xgWc0Gm1g=;BYhFl?auGcN{45F?o8-!);}l`;&5qrqjpO zByd6nEiG!9O(wy`I{9%wUZH=T0HIa(3zy|xE4x8P3HFT7$Wgeaj;-i|5&g2r#8;*B z>iTcnuDOU%JLs#9;?jAUnab235vQl`wqQw_q31gAv#1ct{(7SvK$=@46N#S1YVs_G zV=Ui0znsBTG0JKkSyI#SfB)~^ugXTljD-INC`Rf{-U}DH!)$qCuXM1H5&WkIi0Jyk z?h{|AatdVRp;Xn-8!N2jH=%Cyd3ZgDH!!L3km$OJsnGO~`O0d)RTtHW{Prx$2E$2} zvhi`pD=}o(CVW?2b2MPgvTCtWOkoBOS$M|W$!H6v1~r+|=K6-G?t4y&B71gj?#srg zH!C4@0_ws&$o>^!ZtY>akBE#!iNg;3e&a9gc&^VKh=vE>Z3Rmi`uj`IcShm>^=J2R z@kD|~hfYaJ>HFj)9~U*m?RxK|!u-}xIa3G=h!Oy<`fN_?x)vV{yItM3|Cu(AVoK&|&{TqkY7u0EvwF?ZQ zZFA;Wy#R6g$EK|bfCOF#37%wPU$2#hO)YDX{a}YlLowxWr0vd8^d##b-LF_k2^hHF2;Vj&?@&a&;5!M;fy zIcT`d_cEVALO|(bq`~h3-!V6l&(6syqhN~xNXR5f21st(1fZ^?#Qe`Jb|zSgGI`Ms zg3D=LT^9rxR_ND4uMeW99pqrpZs#gnOJJ6tZE)0`;G+}vWM4Y~J~cqBho$rS@=}d` zq^$f(X^BYk7hF(W)<6Ug2c*%CH8)@lTnBx)KBiWFv^XO*ZUpUl>A@m^+PHG_+WfBuXr zxMD^H(+xG z`lRL3yw}D4d23qr>#aN#jPig>UIcCar|MeJrMn^u-D&v-8?s6u;=RhJZeCd#w?L=o<{()B*bN}>=*WrN z)t*4f$1uc;0AB#itaoEM%~xYh0?jFdFR|Wxj|#U-vMbS#5v12{$y962EscTpzAo*f zHkZ6z+x2_Z_X2K@lyBOi-=^*_f3J3mnq`ia()nEdfX`;O?*0LnNi`J6iC|Fx#-Ue% zo)!WDox8cTH4E?=M$|a|Fav8ZUBHWjqc;g`2I?9S)ZO@9^F^^kMHr!~MOntuA}ov= zB91zpwq9QTDWxsol2o&WBZ1M#GC&S(zb)93>k%n-$H6&)?>*4O%t5?fB#nIF8!V$F zmFoarDRscg0{bR1gkL2-zplEP`4MKV9+%?%YkXtXOnxk&!sdXuhJig=i2gasJQw)p zwtOk*=M{kS#mf|?aWXNk&=eodatqIzEkPNQ1{#E)e8I zy!R9Gfu}W;2e^X6A1c@bvP4}&BiWCcqvyoypHk0c?(T{Z>V=0@C?cg9!Nye~nzMvf z3DW@nge@4)uCU%+qdWZ~2?wJvi<4axLtuD%ShSZ{R#Nv%lXh z)`bc4Z<^W-)1Qu_Z{Or>ZP|dT#H{#SPho0yHs*s%BbK(dcEy;{V_hyEY*b|SM~_A- z#wP6%-BO`YyimT>KUPFoB>+=23;pji%qL2J*fX3In7hrmH3;`DF?}e7Go|a@7^=h! z9vjt%sIx~PSP1eS`O7`Wvb8EeQPAISM*}$*?4!EaZbw3-s;~|Q6TeG}iwTO>5IpK1 z;XF~PspQRv>to|U=0Cmuee{QKEEgzwIjx6GK>ElHSQH947a0RW6TDwLf}qw_4YLFt z&WcR9Y-C=&5(F|Z-P?!-CxNM% znT@GpO<=458yiJ*z8R3=WJ4`|z^7+xU;xb& z?4fDjI>}#L90e+q1}S)K*XJ=LW-eqMZL*#ox$V7Es{qfi0((#-5B=UAl-W~hX^+@_ zIx^Ezoq=7CG8rvt+guswrvhaQFu!TZC%}h$3-~53)f{n9k$+DW>(w}rnfS73NZC}) zF(?uvhqfnXwB233W5xn{Dfn3a$LxNII9L3T22r7l;H7bX=P7|WW=tlrtxS76fBJ0cIB+9{rjy02C;9 zdpkQx;NBe^8UiI9!BGSJaEunl5QE%Ttt=`$@?iaw3A_}QEef!pd6Vrxvg(D}Y+(87 zIqLKFE5!o)e+Q;OsX-U9ZD(yUiz+5;#c8J|97Y}2OL%Bg z`ve($0;XfVE~~n;2V32Z%MB={xcd>1==mZCSM8@noEY-fl=#Q1vej`@R!q1VV}=mV zI;ff3BPLU&Q#|{r5G$5@WEw1DD4LM;#Fl{DPiKk689P)UneZYclgMXp*19n=TxSI* z4z*4Y+uv_^7NR_~HIO{bpoohl?CNvMQTwk3@t7{5$%0bOjI?*S~NxKb(10DgHa zfL)P1WM%zP=5BL^=-c$F6JA;I&bbo(J9bU1i_c!$U9zA@zYF{CdQ;3#PEZT;T7bFf zQK2^me7CXKC(^X&2{I`e*{8ZX3X06pu6O1L*`v!c2lxEuJ&hncQEd zfgj9r(o|-%@6SoW{Mu7pYp83Q?c4{Ip`XhrC__e<8C*kem>&vcraRuN)KL389u!=5 zDGhw{%3z9Oa(c@xV8Eq{5sLZw^u%dTe$wa4yrec&q2=e5*yv~Rsu7QBqo_$2yi|dS z)2Ervb_Mngf5HLxFtix~I7KlT(Y(3RqDrnlx)-UN5vmMVJw+t)lkgd<6oK*Y=t@dn z2cGud$0#kw`SCIfSiHaixXeE}Th%A>6;n{7yFx+w1oi=?vB;%u5B50XT{q45pWy8F zL$AyXn&0*=B&KSYh!!?J79R^2bF8&59%K}MP!w1==N-AL+6xvWxz}K*ZL2T-N!)MF<~98s_*GodBwq6ZnTB(`K~D2EgUKdS zCH--?lW+VvN&G(szycE}j2ec7F@HEki5iCGsz<0bhUBysM0q~Aegb=E z-CxsR_?VK@#TezlTRlZ@-_$vmjLG`caWXBC*NDsQh0E5AkW`&M{A<4sAH|sz&H!h& zV!O&34>6U{A4j}ulCD)CPrhc*a6Yk8&iW5^gPM$;5}Sm~Orqxe!D_wOIiCHNCBw%7 zace2Dh4NFaZvm&lQ1Vez%XBTV=%p$ZvYNb=Zz&iGlK=7d|D+_}`Y%OxEIz#O5?a|a zvh0}O8*s#rm#Ssg%6(N!Uf=>h+wBw>clqw$`w7EykKg?|PQ8n3bdi~=;bOYRR+Igv zrV$t^2v2P&s`X`h`9bb9BVq2ifQaTFb%Krm|8%7(v1|`2MRmb-V-0j`K5$r3{9iaK z+4mlCh+&@YlRG6_1|ur!9IuzdRHqN0{{=qqpQL*7Mp+cCIk-5cF;z~>^wSlM?*d49 z3mHs`#4{vqzKjm{y$b?r%0u0GGTJD*&V6N>^c;_ZSbT4u2kEDhlv1Y)%zB|ruJe9` zHK*De-2C3v8Y9UOaI+35{gbIUR2|^)K6R(6pvi@Qs6(0ZsM4_@pz6`JQCe9^iT$m3 zPN17vdnRX-=%6?SVo`&m8eHecod#plmcAdZ7&UK@$6I#~hAJ4QIX2B*)bd;Q;-VkM zZo^M%MRhV2a9;O0xcyrIMEKDjF4Ws)gg|eWy^n*3@brEYM>>8VT2wMPEudz~gDWE> z@ln*57d)!3U-!i<`Lr%X{Q0Bhy*RF+pV26QGzeeV`*pnk!CChit2lNH#}?_duFr## zk03M#Vz|c0z$-fTXec@!zbTx+7+lX@*U0f$2wKzjG>> zUFrXIGC+t{mL1AYUH$uNhm3fK4{TsAv~mUjv-e-|g;*nidq)^mY@bDA;Sls z%KabW^kr7e#<$Oe+Qp2=gFz-S>09j0yKf7flZUb>{&Oc+*p>-~ArD^OvsxI-^Spgk z%IhA&@sJFj8ru&RhsKbR)!0Q#!gYg|WKBI5fcReg>=_4l zqdwl${{^3a?Q-B;q4yFIhiWDc*Z_fo0ySc@@tYG~qYt@!&NxRtrwblV@yFZW{jY4v$OJOu+f59090HGkIfmcps{cQ!3U@F3 zpQO>99=)rt)tpp9aoYb%Tf1Qd=YyE)GA<$;`dl%(ni72{@a=3eW;CVL_c@n>pSi-% zvTPQ}w5QBr%Y6eU5ukWHfAlXYH4@;fnG$Iq4>cJRP1hEk4m1(0Yd>bXW>gzat@Dwn z_;+;-Q6a#m5(08_a$qDI{Hh)i1j&e4CEC^eDWHTXABH(bZ0p;9ccx;RD|0BAem#vV zD!fC~C!z*%-+A)yx=_nSWSZn_L84vWxQu3x_pvBiip7LA%KtLC0hqsEiA9@CCCZMa9_+M6cCUG{#Ana9x2MAl*yY7;Fa1l k)@&+`Yt^dF+k2#G-W8g-M`5Gj!Nw3pIaS$GX|u5Z2Im){oB#j- literal 0 HcmV?d00001 From 3ba293693b9362fee74cfd44c2fbe82c5e569561 Mon Sep 17 00:00:00 2001 From: Artur Kamieniecki Date: Wed, 15 Apr 2026 15:51:39 +0200 Subject: [PATCH 2/2] Documentation for detour crowd Signed-off-by: Artur Kamieniecki --- .../reference/ai/recast/recast-navigation.md | 3 +- .../navigation-and-pathfinding/_index.md | 3 +- .../detour-crowd-navigation.md | 192 ++++++++++++++++++ .../recast-navigation.md | 4 + 4 files changed, 200 insertions(+), 2 deletions(-) create mode 100644 content/docs/user-guide/interactivity/navigation-and-pathfinding/detour-crowd-navigation.md diff --git a/content/docs/user-guide/gems/reference/ai/recast/recast-navigation.md b/content/docs/user-guide/gems/reference/ai/recast/recast-navigation.md index 5589744ba7c..0440f82536b 100644 --- a/content/docs/user-guide/gems/reference/ai/recast/recast-navigation.md +++ b/content/docs/user-guide/gems/reference/ai/recast/recast-navigation.md @@ -5,7 +5,7 @@ description: The Recast Navigation Gem provides navigation mesh calculation and toc: true --- -The Recast Navigation Gem provides support for building navigation meshes and calculating walkable paths within those navigation meshes. It uses open source library [Recast Navigation](https://github.com/recastnavigation/recastnavigation). +The Recast Navigation Gem provides support for building navigation meshes and calculating walkable paths within those navigation meshes. It includes `Detour`, which provides pathfinding capabilities and `DetourCrowd`, which provides crowd simulation capabilities. It uses open source library [Recast Navigation](https://github.com/recastnavigation/recastnavigation). An example of its use can be found in AutomatedTesting project in Navigation Sample level. @@ -14,6 +14,7 @@ This Gem includes the following features: * Create a navigation mesh * Configure navigation mesh parameters * Find paths between entities or positions within a navigation mesh +* Manage crowds of agents with collision avoidance and steering behaviors * Visualize the navigation mesh For more information, see [Using Recast Navigation Gem](/docs/user-guide/interactivity/navigation-and-pathfinding/recast-navigation). diff --git a/content/docs/user-guide/interactivity/navigation-and-pathfinding/_index.md b/content/docs/user-guide/interactivity/navigation-and-pathfinding/_index.md index be97b772736..327d533ee3c 100644 --- a/content/docs/user-guide/interactivity/navigation-and-pathfinding/_index.md +++ b/content/docs/user-guide/interactivity/navigation-and-pathfinding/_index.md @@ -7,4 +7,5 @@ Use the information in this section to learn about navigation and path finding i | Topic | Description | | - | - | -| [Recast Navigation](recast-navigation) | Learn about the Recast Navigation tools that you can use to create navigation meshes and find paths. | \ No newline at end of file +| [Recast Navigation](recast-navigation) | Learn about the Recast Navigation tools that you can use to create navigation meshes and find paths. | +| [Detour Crowd Navigation](detour-crowd-navigation) | Learn about the Detour Crowd Navigation component that you can use to manage crowds of agents with collision avoidance. | diff --git a/content/docs/user-guide/interactivity/navigation-and-pathfinding/detour-crowd-navigation.md b/content/docs/user-guide/interactivity/navigation-and-pathfinding/detour-crowd-navigation.md new file mode 100644 index 00000000000..e4a5101e2e9 --- /dev/null +++ b/content/docs/user-guide/interactivity/navigation-and-pathfinding/detour-crowd-navigation.md @@ -0,0 +1,192 @@ +--- +linkTitle: Detour Crowd Navigation +title: Managing Crowds with Detour Crowd Navigation +description: Instructions for setting up and managing agent crowds with collision avoidance using the Detour Crowd Navigation component in O3DE. +weight: 20 +--- + +The **Detour Crowd Navigation** component allows you to manage multiple agents navigating together with collision avoidance and crowd dynamics. This component simulates crowd behavior, allowing agents to navigate toward targets while avoiding collisions with each other while using the navigation mesh. + +## Use Cases for Crowd Behavior + +The Detour Crowd Navigation component is ideal for: +- Managing groups of NPCs or characters that need to navigate together +- Simulating crowd movement and avoidance behavior + +## Setting Up Crowd Navigation + +1. In **O3DE Editor**, create an entity to act as a crowd manager. + +1. Select the entity in the viewport or **Entity Outliner**. + +1. In **Entity Inspector**, click **Add Component**, and then add a **Detour Crowd Navigation** component. + +1. In Entity Inspector, find the **Detour Crowd Navigation** component, and then set **Navigation Mesh** to point to the entity with the **Recast Navigation Mesh** component. + + ![Detour Crowd Navigation component](/images/user-guide/interactivity/navigation/detour-crowd-component.png) + +1. Configure the following component-level settings: + + - **Max Agents**: The maximum number of agents that can be part of this crowd (default: 100). A higher number allows more agents but uses more memory and CPU. + + - **Max Agent Radius**: The maximum agent size used for path planning. This should match or exceed the largest **Agent Radius** of any agent you plan to add to this crowd. + + - **Use Advanced Obstacle Avoidance Params**: Enable to use manual obstacle avoidance configuration. When disabled, the component uses one of four built-in quality presets. + + {{< note >}} +Multiple **Detour Crowd Navigation** components can reference the same **Recast Navigation Mesh** component, allowing you to organize agents into separate crowds. Seperate crowds will not avoid each other. + {{< /note >}} + +## Adding and Controlling Agents + +Agents can be added to a crowd programmatically using C++ or Script Canvas. Each agent is an entity that the crowd system will manage independently. + +{{< note >}} +When an agent is added to the crowd, the crowd system takes control of its movement. You should not directly manipulate the agent's position or velocity while it is part of the crowd, as this can lead to missmatch between the agent's actual position and the crowd's internal navigation state. Instead, use the provided APIs to set movement targets and let the crowd system handle the navigation and collision avoidance. +{{< /note >}} + +### Adding Agents via C++ + +The example below demonstrates how to add an agent to a crowd and set a movement target using C++. Make sure to include the appropriate header and link against the Recast Navigation Gem API. + +```cpp +// Required: Add Gems::RecastNavigation.API target +#include + +// Create or obtain an agent entity +AZ::EntityId agentEntityId = /* ... */; + +// Define agent parameters +RecastNavigation::DetourCrowdAgentParams agentParams; +agentParams.m_radius = 0.6f; // Agent collision radius +agentParams.m_height = 2.0f; // Agent height +agentParams.m_maxSpeed = 3.5f; // Maximum movement speed +agentParams.m_maxAcceleration = 8.0f; // Maximum acceleration + +// Add agent to crowd +RecastNavigation::DetourCrowdNavigationRequestBus::Event(crowdEntityId, + &RecastNavigation::DetourCrowdNavigationRequestBus::Events::AddAgent, + agentEntityId, position, agentParams); + +// Set a movement target for the agent +AZ::Vector3 targetPosition = /* ... */; +RecastNavigation::DetourCrowdNavigationRequestBus::Event(crowdEntityId, + &RecastNavigation::DetourCrowdNavigationRequestBus::Events::SetAgentMoveTarget, + agentEntityId, targetPosition); +``` + +### Removing Agents + +When an agent is no longer needed, remove it from the crowd: + +```cpp +RecastNavigation::DetourCrowdNavigationRequestBus::Event(crowdEntityId, + &RecastNavigation::DetourCrowdNavigationRequestBus::Events::RemoveAgent, + agentEntityId); +``` + +### Clearing Target Movement + +To stop an agent from moving toward a target: + +```cpp +RecastNavigation::DetourCrowdNavigationRequestBus::Event(crowdEntityId, + &RecastNavigation::DetourCrowdNavigationRequestBus::Events::ResetAgentMoveTarget, + agentEntityId); +``` + +## Receiving Crowd Updates + +As agents move, the crowd system broadcasts position and velocity updates every frame. Listen to these notifications to update your agent entities: + +### Receiving Updates in C++ + +```cpp +RecastNavigation::DetourCrowdAgentNotificationBus::Handler::BusConnect(agentEntityId); + +void OnAgentPositionUpdated(const AZ::Vector3& worldPosition, const AZ::Vector3& worldVelocity) +{ + // Update agent entity position and velocity based on crowd simulation + AZ::TransformBus::Event(agentEntityId, + &AZ::TransformBus::Events::SetWorldTranslation, worldPosition); +} +``` + +## Adding And Moving Agents via Script Canvas + +You can call the same Detour Crowd requests directly from Script Canvas. + +1. Create a new Script Canvas graph. + +1. Add input variables for: + - Crowd Entity Id (entity that has **Detour Crowd Navigation**) + - Agent Entity Id (can be self) + - Agent Start Position (Vector3) + - Move Target Position (Vector3) + +1. In the node palette, search for `DetourCrowdNavigationRequestBus` and add: + - **AddAgent** + - **SetAgentMoveTarget** + + ![Detour Crowd Navigation AddAgent](/images/user-guide/interactivity/navigation/add-agent.png) + ![Detour Crowd Navigation SetAgentMoveTarget](/images/user-guide/interactivity/navigation/set-move-target.png) + +1. Configure the **Source** input on each node with your Crowd Entity Id. + +1. Set the **EntityId:1** to Agent Entity Id. + +1. Build a `DetourCrowdAgentParams` value and connect it to **AddAgent** (this can be added as a variable). + +1. Execute the nodes in this order: + - **AddAgent** with Agent Entity Id, Start Position, and Agent Params + - **SetAgentMoveTarget** with Agent Entity Id and Move Target Position + +1. From the node pallete, add **OnAgentPositionUpdated** event from `DetourCrowdAgentNotificationBus` to receive agent position updates and drive your entity's transform. + + ![Detour Crowd Navigation OnAgentPositionUpdated](/images/user-guide/interactivity/navigation/on-agent-position.png) + + +## Configuring Agent Behavior + +Each agent can be configured with specific parameters that control how it moves and interacts with others. Here are the key parameters: + +### Movement Parameters + +| Parameter | Default | Purpose | +|-----------|---------|---------| +| **Radius** | 0.6 | Collision radius of the agent | +| **Height** | 2.0 | Height of the agent capsule | +| **Max Speed** | 3.5 | Maximum movement speed | +| **Max Acceleration** | 8.0 | Maximum acceleration magnitude | +| **Collision Query Range** | 7.2 | Distance used for detecting nearby agents | +| **Path Optimization Range** | 18.0 | Range for path smoothing around obstacles | +| **Separation Weight** | 2.0 | Strength of separation forces from nearby agents | +| **Update Flags** | 0 | Bitfield to enable/disable specific agent behaviors (see below) | +| **Obstacle Avoidance Type** | 0 | Id of the obstacle avoidance quality preset to use (0-3) when advanced params are disabled | + +### Behavior Flags + +These boolean flags enable or disable specific crowd behaviors: + +| Flag | Default | Purpose | +|------|---------|---------| +| **Anticipate Turns** | false | Enable predictive steering for smoother turning | +| **Obstacle Avoidance** | false | Enable collision prediction and avoidance with obstacles | +| **Separation** | false | Enable agent-to-agent separation forces | +| **Optimize Visibility** | false | Optimize path by going around visible obstacles | +| **Optimize Topology** | false | Improve path topology quality | + +### Obstacle Avoidance Quality Presets + +When **Use Advanced Obstacle Avoidance Params** is disabled, the crowd system uses one of four built-in quality presets: + +- **Low**: Fastest performance, minimal collision prediction +- **Medium**: Balanced performance and quality +- **Good**: Higher quality with more accurate predictions +- **High**: Best quality, most CPU intensive + +Obstacle avoidance parameters can be manually tuned when **Use Advanced Obstacle Avoidance Params** is enabled. + +{{< note >}} +Each of these preset coresponds to a number ID that is used in the **Obstacle Avoidance Type**. **Low** = 0, **Medium** = 1, **Good** = 2, **High** = 3. When using the advanced obstacle avoidance parameters the ID is set manually. +{{< /note >}} diff --git a/content/docs/user-guide/interactivity/navigation-and-pathfinding/recast-navigation.md b/content/docs/user-guide/interactivity/navigation-and-pathfinding/recast-navigation.md index 79a52663b0f..cbb3065a7fb 100644 --- a/content/docs/user-guide/interactivity/navigation-and-pathfinding/recast-navigation.md +++ b/content/docs/user-guide/interactivity/navigation-and-pathfinding/recast-navigation.md @@ -2,6 +2,7 @@ linkTitle: Using Recast Navigation title: Finding Paths using Recast Navigation Gem in Open 3D Engine description: Instructions for setting up and configuring navigation mesh using Open 3D Engine (O3DE). +weight: 10 --- You can create a navigation mesh by using **Recast Navigation Mesh** component and its dependencies, and then use **Detour Navigation** component to find a path between two entities or two points within the navigation area. @@ -128,6 +129,9 @@ The **Detour Navigation** component provides scripting interface to find a path. See Automated Testing project's Navigation Sample level for an example of using these components and APIs. {{< /note >}} +## Managing Crowds + +For scenarios where you need to manage multiple agents navigating together with collision avoidance and crowd dynamics, see [Detour Crowd Navigation](/docs/user-guide/interactivity/navigation-and-pathfinding/detour-crowd-navigation). ## Configuring a Navigation Mesh