From 4ef635df2d008fa9c6dd038b7d1496452dfc3082 Mon Sep 17 00:00:00 2001 From: alja Date: Mon, 27 Apr 2026 16:23:54 -0700 Subject: [PATCH 1/9] Support secondary selection of REveStraightLineSet --- builtins/rendercore/RenderCore-1.9.tar.gz | Bin 100921 -> 0 bytes builtins/rendercore/RenderCore-2.0.tar.gz | Bin 0 -> 100636 bytes cmake/modules/SearchInstalledSoftware.cmake | 4 +- ui5/eve7/lib/EveElementsRCore.js | 621 ++++++++++---------- 4 files changed, 320 insertions(+), 305 deletions(-) delete mode 100644 builtins/rendercore/RenderCore-1.9.tar.gz create mode 100644 builtins/rendercore/RenderCore-2.0.tar.gz diff --git a/builtins/rendercore/RenderCore-1.9.tar.gz b/builtins/rendercore/RenderCore-1.9.tar.gz deleted file mode 100644 index e90160f6570feb8054b0993412639b1cf4b0746c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100921 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

l1UBUXCKItaZd?m-r468O^x6ZP&wBM<*|;A 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 M2lZKi^8iQ)0LSkajsO4v diff --git a/builtins/rendercore/RenderCore-2.0.tar.gz b/builtins/rendercore/RenderCore-2.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..784462453568fc406830fedda2e00c5bcb9b91a8 GIT binary patch literal 100636 zcmV)LK)JskiwFpU!S87T15#yfWMy(gZ*pZWbYXG;>^p07+qSa#>|a59dNQO$$)fy7 zYnk>awvuR$U)Pe`Bp!{2mS77#G^v76EGhPXzq4aJ4bCyJQj=H1+XuW zC+(xwS*P{pul&{Ex4XTKPw(AM&3xjoUfbDv<8AMH@3wb#wzuECsd=@X+V&f(_U3Q+ zjT0U)%X$-pzX!|UR`vfM{hhYE)(P#CC?RWWNAYON=>3pecHgn;wYq0rom4(twksze zPuJEi2z#JOLgUDyi8UmQ+)k}~7DSv3Te;BZP;#xemf@o@u2uol-r>WAY2(vWtC^nt1waJb+-Sp%fw1UNuC zUF#tp&^vq*!PaPe8`5OxS_6uxZ^s-O6KoVhbditEm{|!4!!^J_fo{QTMxB5`(nlyz zu0)hz%i}P9$a6xIwYxEkU`is!3}O(OnDKYg=h%YacX1fTkH}g-js_GtO7_;)y3iHe z#@~qGMJ{a=b0AfcfD16nR#kN+!ypW;TcQL8^MZH-gB^y`!?}q#4MJ-aGcjM0%__|Q zsbzJ}KXiX1rV3bv+ft`{Dajz`(pjG zeRk|xt?wE3|mMx6te%QXa()LFlMYGD)3*M$F%y6y8bWaH@kta}Mn z7r4Ca>Y=~2J1y60UbZ_ZkPnyVr|uex6Gog1Brxu*C9$BWt=x(L2-dGUEsfARZZ%H; zR|f|piz#q*?ahCF|NnlMt#9O#L<7Q(Vn!+tG^#%Qp8S3G->bjdu0x-<~`{a=98Q5%Zv*xOQjw``~Ne0dj zc@DgSu=87t!jGzg z=SlA)8`r5iVlj{TbVS_mG{Kg=^_rUyzL$ztuB1d^r3+d`7t1EulF0@x8=euthg6aV zCg(e@1PYb=xQJBzW#Vt*i**g;Ba)987Hy~(tr73TKe1wnW9*abxCfGgN7?JSeNm|Q z8smNb_N~qRF^F-WLXr9)q5eLDBJ=wo?}G%2i2yhVpcn{%g9wTd06Z7j1%7O?s|=2@ zEpcIc6_|cMzPlr=$(6(W?_j?lk0Y+QFKgzj_k@48W85pE`~}N>S^f&;|7AH`2t}J? zUyb<}X+4bi)OH$~JWv{Xo%ud(aNtzHlgSAD_xDqQ&nDNr=QIqu^n6D`X;z%cJuWAs$?~ZX%YHWN(^G~qYn~d-v#fdc?81qV+hd+!q_y$E zIKj3@vBn{(LQogk8$uykRXyBxERGRB$D}|MKSIp?$CxrQfcTu4W>QI3v1L1lM4XeF z3;#KL1b2;uOzf0SEw6doQm|0i*gwVq4*s{14~HR7elT%UK7iKTkzKkM(PEiq1T7j# zcVLP}PPG&do=y`Fp2`<^q&S!2fpJRcl>$1|`~vBmvrekx(IDXDx0r~+sw z_oPF?g^G?J2xn6?>Y2CWK#f<0qsF2jd=F}WkT?a8OC9#=%`JA*=pNdfqFYuCMzDY6 z+}q+@V@VKH&^c1A7KdlbVFes)*9Hj_@?Gd7P_n%GjWA5DB#jU@8uRNucsG=j2i$=| z<6}E$d{pz*09^#F_sa&Tlc{UmdkPfPzpIOA_1R%t9H>+jlYQPGMN6gBIK3uCQw2i8)L^pcV5|d`c|8a9gG>ctJ+JVfp7o2m zsrf`b>z_Fp39x!gPr_v1C$jMNEl~+QISGUQ^=_SIW-_>Dda4LoEeZ(PhSKq zfTNL9)rJSEbsb-#>oksK3Xc~Qp4eq5|4JqUXVcDDHrrhQoMsJE6EN3~fU~S&W&-Bg zVQDCum;?w~usG{BnPUmnDiwCgOVg;XK>RDZtBuG9k>oS<$|ucW8}ut&9ma9 zvkY#QLoh2Di@G;=40g>OBQ~ka_x%cyzGo1@5u^uZ-CU)vN-X3S3hi6YvCu(kL$qg( zmdao_I&Cr6=g6Qitzv?Ji)HqDKh^WSw`Om>IJR%}-qp-Lfl5w?eO|r~5Xs4~ub%I# zi9Ucxy@2bQTS4qIF~`&uRZmpCv|1O{I#ea38ZvPuq#81DC8QcMkw9|HBn6tf5>x?A zT?tz2sbjOgZX{8-n-VP96^yBsa6t3sf&FXG6~3XXpS=|b3W=v`pT$X{g>_d$VjVX> zNpZ}in7%@$3N5pxgg7G7N;TI1)Z!RA??>!S8bONTbHadUH`9>|J?TPBy9Ax`k(K9S z%aG!|@*x*%bu+j~xhIT)J7gH#Jes9a$RBg9^W9X_`_-LN3M68d%z9|jU1DgO*RjdNT8p885@C z80xv;@PZOj2)xw@giTn8puPZsuu-p}U~4skDF-4y(QwZFyLfWc)KJ_20tuJ=8cywq3qX7=%hY;u3hM@{-RuqO`e`i zE%@VkkY{NljRb#nJ!*GbRG zr$!YoVqo$I<2FmT(O;Cg%n4Lm4U?ACf~4DdSwc}l?)$aXF*)r1ml82Za#RSbA{L|k zDg$m}&!Mg4Ff9$hq(5oEms43}A(4{bN>)mIbs!4piu9ywxGYRlgY~tT$+~o(Oj`1C zUE-&`I4kpZu-?5(+&LxLKkLxB^kBh;z}pz%hM9b-Kue@&0ZBpU8KdQ0Lrz34&v|hR zR%=OqShJkRvN}r<- zDE53CJG|Y)joQZE#)eadYL&+wkVJHEd%Maa;<56-AGbc%FPq1E;*edmH@%;0F4XJL zz6a$^)egHRA`Ap^b=5vLl_a7f{&xMB?O%4^)qmNMm)Ib-LHqzdDJDOcbkb#=Y)Pj& zowi`QzO(a|^va@44i0{P3k_M-+s)VO+p@k<*(mGbT=jE3Tz7MU!rOV;-OhksAlcn| zOP{>@&kBUT#6t_D&r6G&0Dg0g_J!>70SI?Bd`K{zeV|swxcjL=NBZNYzDt&;n47%|#xnBmX6a`+#Uc`@to!@mI z6^_gRmbz zjK-WuYnLoZddRD(>z=;vp{SSlwaZNL{R?@oMXqV@h1mobn~5MMz-KVQSB?-)Iq}9V zQiJSo$*ZI4Xq*h~YPA}{;g>HTp=H13>AOm>@rl#(W!?lh0sk7)>*y`Ka%fN-`Yd@% zEx9XS6_WySb1!@~Xw`h12jB6biXEG!woY921;A9EL9VaK@TDE|?J5ph3S^`eSm3h7 z&Rdej9_(e{5dcBSS#V~jea?$S)kk&PYKi)ul`ff;2!<^=4t*WKQw1M~JwInb<$sL> zypJ_>q6#i=CO*Wo>P3f}sn4^@%%@r9F$*o(A=~o`p=E|2g33AS6z5ay)9iH=1OzcM z)Q4F95Ej&qRNmsnobU2IHhRs&S$8MI26C#A?^PoA-j7TD^00JM9+w8?u=L>G`S%BY z4fJuvbEg1vU%E$h(}T0|!!0a*>!Q;>IX{y~y2ct$9d{zD0ql*s-F5FvcTQuZK)~#c zN)uq(FLgi&Lnz%qY3z@oG=Ng*hfsQe(g<8OU_lbn z^1aQBl(-ZFPeb5o3_OKSBQE(ZcZh$+_$P!v&(HXpk{`Q7+)?{OQK`s@Xoi0KEu?CBHpQBkO|jLS>5S=o>1?Y~EJ$rtkA||w0A-B@%8#q4Ru-c*4qx2k z!zo+`t+`Gx(~bQOA2NtAk)f7U*M^j>s)-81QVd2RsKf+=6-1V3wqS|mhfNUCfI3z@rEw`l?N}OUiDNCSV9!8Heuy?LL%cU=<) zUe_M=dC+gbt|aYJ9Z8w6nfJB^OhH0|pFJi(CcOr)BZ0?u4^ASz{<#OokY0laf_}@6 z^jdzAK8x~LcF|t}5aF({a$N4G4Bp81KB_y0-M)bkP4iQ&?`)>(c;efzbWVwDN!USU zoYiN(9aR#jJA3RPe*2ak^bvWzl;QTutP)rH8GeD$m;vT9@h9ad>jnHlc?@-DFP?`w zuCN?xB+ev0hisag3Q!Nrp+NltZ6DCa23q9NL@Q~^XqJdHVlmBYH^Ws#xw__=yHkny z)PX}Bo~|I>_ef>;(1!5KHS)z1=fJ4Voa}g4GHW$8tk}%YoN$U#P~e%yru|C7wfs^=U?sS zAEgKJ6nNF1c%?zuL%{eLu)&g>B{eT5$H6LNf|xpnifG7dBb{0DT)tUQA~FgguD<-C z(Kk&0FLKbpS^0f@5473xO+;B)?9-Nf;7Q5aD9?=Y!o3GVS>oxG&;ux^sL>B7r?}A@ zP?bllJYtdy!`RLrODI)OjZ!@|R`t|~wZkfL&%vCX);~E1$Xf5Wm$_a6l)hP!uCBN( zIGl4_YI6>j=U{@(+ay|hXd!3LZz^d$UW;4f(K27DSJF$8WpC_=tJ1=CN6xcMktnY+ zj>4%G^!sE4t|d6#R>1DXSNT=zDj^woh9j}9z_o5I$D-halVDIyUvQZRixfJ03%jwy z#dP3^kvZ%Y?(*m3msfCeIu~f&xjyjCBUoOJeK9_!;)6Bl8{^}#=tEElgM(63W~E^z zDaCrdnP`v8Nhzw((onB@BHD*#S^~RPiuBqCr7^%o&=v!p;Y!2uB2OYB3vsWP(_zr) z6&uqeO2g2FLKJD-l%$&z1fmE8nFK-^0Odk;FsU>Wp)PQmXup;om`AiKH;=AioU*7) z)UwE`A_O1#l}K%l^cFEXfPq3Q^UhebnEPety{6I^20VG*Mc#Yk@gwmM`r!ZrL{f0jsU-8 z3?86v<)Wp?T2Sh1y?B#}QMXQXD{kJt*0DFn*6nLed$VeTF1s^?dHrbI`Nd| zorGJy;#(+VG)YI3|7P#+x7)^*MRD-|-%~ic=VU~QQbbAqlEe0LY$xq|9LL9Yx;yRm z(V`{V;%%AKCaJ_uqFHy%nwb}ve`j9qKFL(!8z86;JL&GdPoI4{7J)*cPyh-ApsFBC z|FW^1%p;4gy%HTRlcdzH^<1!S6dH)$4I)sHyE9 ztA?iz!&tBn7DvF2UJ>C#tD4pbHEhPhQtx^v)FInnpXd%=>rp7i-rN$&qq{foR z(fF8?L?-K*aR0pM_)s}LR1Od2*&%FnhQn1gHa_Clh)KqBnwnx%Sf-#UAXG17Ev_qV zs4I=Ai&i+K8H=V*UCbZx>vLTUW?B0j3qr!qdakjwo@;Ea=PGN7!OO7VELp%?r@K?N zmHdmgvnDJQr`M0~FSK)7uD=vFiL(Auy))GQYAF5HQ2MK(_7@ah)L#wJU*gy2h7>-c z_C@{G(EF>Q_g6#q*JF1ulE07KzAWOj38%5Urm(xFu)C(RTen~<=Xp)=T>Sc66FfKQ zSj706&iIRaq$;_FxA8d;G=0?9YHl3)^PqHWo#nwp{Cf)E2A z0$+9jtg>e*!~zlRZ_P5VQ)X+59&v1iV0)*}WFyIsb$9e$LO+IDUPoU5*ifK7JwIW7 z@Xpr|qJaOd> z=}LkSw0-5&0^XvkXc8lPn?ZFX)MtcZjoV=LwisAffU#yOXBR8B^q%bNA4vF{&#7O4d;0`xk83&Xy;In8B}hXpY6P$p417q;;b#P(slkg8Z1D%RMpmEJ z8gXM>Yl!wwX--gw#H=xbY~JQE&57%f7&M?Dx7Y?%cW&H_a(C_{dhBR=PBa-taS!33 zFVBkAm^jMnQoYNWr78N!A4DlF{jFzF*O(3JEK-JCVHT+a&2kt$j6O!g@-5Z<3uOs- zp)3I}6g`jPSQKtSH+1%1;NjO@6wlEw#Zfe499{_Uw(EJYeMBEw)^wm76yj<}o(C9Z^PO6?WQQ!Li6rK;#Hp#IkdL#s_MA$QrM; zUCA*PgZ5Z9zo@##)n-V^pQ&=yhErzlLd2UL*bU zvb9@iW3QaS^iQ$SL$Q#glm00d`dlm|nh=NcZmI75hPGQ~pF;g?Fd4A;Rthhr*yRph zNwIq!ypa05_zH^M4vF$?cgIlBKg(Y>ErSikbr6q&JP+dIxp?u?l678PPk1mBK9^lq zmCk5w;^XWlheZWRp<_^%JX08iHly~!7Fq@hxp$Pkv458SXoZ{#p<6_6k3MF035B`Ln-c2e`#FWXCMK+64>mM$*7)YOs-D|%l=udB%A zO!J;xRy~lrs?Ub1MDLPfp&iwNM#QhEKKt~xDbRJ#cd;ed6c5@&j1+K>`-0nppZ~*H zYq)u?>BZ$JHIzEWiSuT~E3#=2Cf$Lj*TOZvi+BFv&3K+xtHGDi*{&(}1Wt)*0%eCG zFeE=}Ds!A2cHUpMmF6}G&e|Y||8MykY?FuMaP2cJ7i$#F8YMcD#(N5lFT@p=w3ATH zBO+!Lp}Jz0x)aFO*c=Eo94xt1r$>Vjq1O}J6t3H&35ggoppZwPji+E!N2(^%mWKz3SW?Hictx< ztb_4Vn6`?|ny%wO?_vQyg&Cw`m?on^K8&MyxKs-j&|(`&>xgb|LtWBF<8-Q~w3fFg z5~ou&rD=K_=-%=)$)b||W9cR_$HNGrC*hfc(0}k`!B!19JuVy18svU5p59?wTS`QZ zXda-a0H*T*+m2m@zvp*Y3gc2+D=4NpOScl>SDpZMYbc=SUD=8oTXJD5?rX_)t+=iI z{MgG`^=?+bn$>P*zwM2ye&MR$w|>U^)tkA&Y_*Xtw2MeedPBQNZf>BbK)z>d*I^j1 zrQu!jF&wU8Eo)6nU7(p&B!6hITRDGN#M|7Fr@SQWEuTX(XNN{4glPvWOrFI4`NQ3H zGDaUQo^%-BB-u{2k-#laQ5!}D{$!+-zh`@LhoOTXyHI{i3#cR{~5==Ynm!@Y~cGk=qP(#$OeeE1V&ZPSmv zX5p{b=JyyW-+jYk!)444`YmL*nSoP%9{gmN4Xi#{T(_dk4US3WoFy z?<+9$_uk+eAtK`@4Q^3}R^0RVr{w(-&dmOQ9DaE9Ztv^>f1LZ5olUp1<#x8+ZtKc@ zbqq7-_~`t?{{q6`rgvFsbvK5UtC@Qn+=Y{1cyw?U-iG)7i=V=H2H+ zO@>p@b9svM!hL&m^3&nIuLp{E$^Sd<+r3}ROwb5jkDGY33c>iz@cd?Q{*Lh-T$>34 zBjMUi2qq?knJ~~2q+JOQtEU;31PcP(T$e`FXZtjnAMHkJ{!9<8gF25*$uT47AQj9& z7nDRJvJOorij`h33kEH!R1~chD>aZS)jn9O)J<F;mKfEo+{y; zX+)7AeHfr}YmEnBkdsmpJw1vdBfM=APG}8$#6cc70PpRW+ANngdP>45z&`3@k^yMn}@}46mh2 zDFq_Gxn3*uuNLz1Z8V&e1>>3%DM=R_9LWk1^@~CO1<^`iC#NW?JCyFiLSz*NY_ZYs zvo0WqtQZ};?EG=*))NdXHJu-wBoinaq%2mQjmmlJ&tmasYj*CG3py*t_dk`QVx^Xd z8Yd8HkR^znaw%6ts6m$Z^h!b8gj&g``#8zMEGIMD!7^$v&4zM6lDB?CxV1362XLO8-PG0FfR&NKS%Jd z@X4Se4UnMvu486TM@?1C*AvuH6wKEY^OUU2&3>}RYr>&_-3#?T;xVg~DjoD^MC3i4EFLs680VQ`x6^WPr&>)u~x%2y= zh9$Kj0^d=tks?Ed+|(bvsE!)L1>_E3+1sH3MbIg`UmGLR2|)@hp_DX`B1fzp*GA6= zs9smc=roJ})~is!5%mVPdap&jw`dwRso&KHLZ6QOyV@swmv}=+!(8JC-MfF8&+E&qDcsNbDf6LWfRrGyz30p8vLIk~UPzd3N^YXc(^Wetf z;E0~Y+G#RkvzdIb*mw=ua>vlp_-W>%8-*av!wiI=xKBXSp$AvHfiZxV=@PkV3u|GW z-5$~XhyupE&?u8yl7TI5#!GV)zpBvX7cGJ{g`2eeg;E7~HRfln#;{X1?vEdMluF~= z|BoGZ#c`&1HvBaQ1sM>FdYQWfnT}2!`1FE*#^v{kCD5AM9NQ#NZu!K0SY*3dL>7=J9XWD=gyzVR5hNZ*j=YF2@tzUc zLBe?C$Pp5|BPUG3fE_vVC4zt8*VYw{^I^Hh>n?xUNdnMPvbq#2A&}G#|7=q#2??0d zy3(TYUnI*t*GQiyr0+2D*9pa}(e9^Ys(MK!Q`MU)nW~!GQ+Y)DHfl=A1Hncf1vmc{DI;R@CS-tz#k}n4}YNeIsAd*hwx|XN*vJP zs1Is)^|*FZPiprr`Uyb71QH$~;oL=oYDl<+gbPSGbkPXgA3>2R6d98u-76ApZVE-l zq{t>F+(NJ0IrEl{6=I4=n4X}Oyc;`l!KlLOA}iZyV5RBi7loMaE$>O9n%3F#W5YX2_4}h zI;N*|6e|IaHtEpb!l8|Ot7&ZjqZHMu;Bm6yS!xuEJKmDt%P%0d`ckBAO@8 zu3_!L#aZcB!d8~erp*`fEhU< zKVY6!0}_Rc<-jbej-YIS$M6qoRPafX755Hq$qWj8w#K0O1YPwys32f^o2`p%#o6HL z>ug2L>FT$6C1#K~wzCAwvM7==2D;jl)LKw9rRpf{I*N;iBXcDLPE(((s-b9NC>j+K z#RnOHQ`RR7Zz!6E6PL09=PqqHPG3LQ7W?-fFSv`$g0Q8+J}Seb8DUG6IXglDK(kJa zG6M3Tn$&{&s1`f*pdPv)4n}SYx$vXf!0;9cX2tcKsaHUYVfbXY6qu}unDC64@Qj%7 zjEL|A@`>=oznkPQw}Q{jsPl>$B{mM<4Umls9gFNpsq7#NT1*$Tgf3_!x}Z(Tf~L)` zyq00C6*_-Fa@LVeWQKqMg^wwndnia@Lz&R&1z#8kWJG5W#$|!8>6{q)OYp4jhczPZ zka6^5{fcmper#P47S@3-2G(UC1ZyhSG-OfR+PDi~IYkp47a^frkUt&wpVU12QfdVZz932L|LTE>`bXAaAWomWI> zFtPHA=zJwMUJ;$0B%nq_=XPG_YCHbsiaY-1syqJX$~*q%>U(JHB2DuN^24y9h!t^1 za@gV|_nh>KK|bU|OO)C<(2WznY+}z5&VSK|)Szz`>CK2`t7vl`&~N!fow+4o#iH9h zh7ctg-RB!P4O2(DSnS0^?KL~&J&u1(t(kP_?S9M#J`drg6}kUcKHKG z?7K%>!c31EJiQ=H^r7Os5H94|%huPg*$>_>Mbyi=WrWFa_VN+0SiRab7_2F^WewrB z>c#vp9?BW{vW3sv0*Mj+%719Bc%@2Lu)?!g<@2Mo@SsG@FLQCv$CQR+rK|fT=Y#0r z(x?oIlKAzjrUEpL9gw2_>U4`SU3d*D)5f@VoEDWYGI9}2$+*o{cqob$Z77am#`-z$ zj*k(lUf{99sz<*F8axI%rjgP#Sq?PvI}(`lAZ@6;U@)2xucVdh^JR4X!c z+=At(k<1N7jbwc2!jhcrX13&DH;~C!hN8wupMR6Yn}pn9#sRcpyuV|7MODOB#1~Py zSyqg%n{uP97+)$SA1QuxulN-&e5_ybOXF{^dKh~bO1n!p6B~3hLEe#}5}0PAsh7T& z&`t=-!EH0AC0AdI7#&gwFte z1n_-;zct}IMS1|f0q_lgZxrCWMfd>VrvN_$_!|>`y+{wh*8#o`@O2ZOg;wT^1Dzh$ zE0SCG(v2AP)A1OENb_2I^9a_nCVLafe7f0XvV{#-qu|`AC+xt_d>N7?txd1BvAN}WTN~@$%?$zYtw<~^)Mb;DQw!5bsImCi>P`l87hhN< z58q#AR|TCTa$ct5++ilq9m+M0#e#zE$WUIOmM0blbgks;&ixOqUHW?OeJ^AWGE2Y* z3HTrY9~j_+0{B@1eineA8Q^C(Ewon@bzZh??JhT~TikBKt! z!dv==ZXx*~GSY_8&5fQC4sS!Rm}ET!u`kzW=%6SLKaw=Mjp7AP9zz~zsMOiRSXZHr z<=-==BL-xTBW_zpNQEcbp`@ z@8xs$&3X$R`Hn0@VOcVuNRZ`AF_fB`;rWx85K8EsCm4fLEji zlJD{{iPo;#GpuNDx!#Iwy|u)lNl8e7^M5EO1`?4-wk+$SN6OhSulYGPU+HgKaD!e| zR9hqJw20c^HKw&GGr4Wy z;uerQ-vQ|3quS7|X7D*^j2*Oo#oQnKMnZnP^b%IS)Pq`eTFdGId<~p>e-@6ja4qmh7>&M~NfXJI+rX>X`q*(Cga;(7$PO#gSiQ_k zAa~bN2rZp?DQGgfuQf(J-9{5(p-OxfX9R!(br0LVTg7MYq1A!ETq&n#rQM`rSt2-3 zrj+tkIK$=D^XJi0voN#F!u0ubHXZmlGfPpMXLanmv7&Jn^j;M3b`hjK`mGCOMHpD- zLu%y9HK!5PB3IgB*2F{hFtXDhGDq3hFh@egld*wK@gvxK!Jf4qh)ob4;3Xghu~aYS z;t*E51lrc)AF-P+c~Vy<(D_;R%Od^Sl2LHL;oCRmh}IP5=Ia*ZxUZn=sy(sW>IpVQ zFb1_X08jD732mqx&x(LL5kA!!5flnnOxlf`U!#%u$cDZXjc6xuo<|1H%ULt8rRu9S z`PZ-W_*jG0P^nPgU5Uo1hN1lCMvDD=SPBY>53m3f5g%ufo;lI3arbKnZ}@$a@$V`Zay#<4gC|)DK_I6Nj1@_NI@4FKg@vE7gI9H+Xu7e2N4Ps# zU8Tuh(2U{6_JjImDJJtRkiMZt#U0>;_It-H+;Gkp;gC%@A0(w1G6c_Cr6qZkjk8ZL8Bz_6?L1Wf4R zJ%Plp0!V2m4>^qEh&xX)yXd-ojJKx6$lzygu#>mM&T#wpI=%<}^Yc7Mf^NAZfi!&A zey!kE(ESE(1;!&TZRI4U_=Jnq388CqLg+4bLU5<<*d4ficj(@^6S^4P+6{besY}8w zvA}~rXpRGayf%6$+@eia27lJk3*q*18~qh-@eJNi;BOn95^m85Y>KIXXpDaW(*XVg zP#^wmUim{z1x$DN7f?+e;mJ_arOTWZF}D4)xicWQBkFkIkxD#T3$2EljgpE;j5g9K z^m>HEW@A?*Ibk@tCgGfdrp}24w@j0lsFn((dk|N!<^@?)>VgznL%0z~f)+WkDa(bf zkIHk~j^fWZmjE%+NIY^3w+R2Wh)Wd)1dZT7{QB%-l?z&J8EtzSTo~rtpWYC{y=g^czQXaycfoBPZibvy zBTmNZ>&mWTshnz-$|;^5saDKm&59Y+7XCgsdx4w|zX3jq==R~?u{-o*_ zCuomLY;_ZSOPcwa;SlK8hxmRX@gQm3k)P0o7wWUmBTg;}Jpe*- z*puQKITKRnEqbH7H~4C`i*Eojawhc$477^`-PGd7Eu|=^F`5EGBQ8dSY(fvE<`$rD zC^ZlD3BggIhCMH|s%`gaT&C7ce@am6nB^_M~yT_A{iPxyXL3Le70BZHd5 z#s%lgd2L+3r_>ZXi2NdikY7N`J%FDxVlEnowXr0JJ&G>KS&ozjAG#y~r~u09hXy53 zYvY`f0`xZSIa{WT5}>1gAs%7l(vC^8r^u+17guyEpgZDiK@?~=B>J-LGDkI)wW@Rd z&xJ5Wc$xvp@^lz>xbXeiNB#S=e#U*TZ?_@hTZV$23 zpG#Fhk~OFYW7qc?AYez1eGZ`a)Vlzn?x`ydR!#j6AeVXaKra5;Cb`TJ2y#DDrv=Ex zU)b$P>=Pf;QdX76J*FjGAQ!!+rTR*muK@qEcwu&_DbN=4!faDpAdlJtty5c|ZE6dI zYUPls(sxu-o-jT5mMNMyRK0$n+Vcg|jPIGodro~_4yjwq8F9&U_t4h`Fn**yFQ?RB z^OKK*#eIv3fbg0+a~@Oon0=p&756p%1x!cOdFF&VejZ>dV0wpt*G-?#^LkwSSWjx# z^-=AJI&lWILr6S@#A8T2pLE=6n9=PNoC`jFd)VGlO8dBd;uh1zV9Rtz< zAng;R>zH^5iKmcw42g(z8xzkU@e?HOLn1-i!PGrSeG93tA@v>g8yy1DJ3u-Cq_+eq zuIzyH4vjPlD0Ic@}>n0{1 zLgFbT9z!C*>S5{`q<(_beMlu(*D-YuQr|-AYe;?fjT~0Hx&tb*TK8P#9;(|sy<@nr z3RhQ-((4+|u-xg@<2b!_#ohHAxQ%;;!?x2b08pbn9YoM{= z>kPF4x}?FsDg5r^0}ZvlQ%Bc9fX(r%k(2za7SsmBy|<6Ajn}65-gs?_u-H=wj3{%0 z27$+b7=f`8d|Z6QfT1_5`1Uw)A_iLOIiUhEkJ0muP=uJD?it!;2MDHT=oULLpy}LC zltnAp=IPw8H0N9PHqYT6q&eTf3-42QzCdbc=Lp>^^%Y&q5yC>{1ovfZ)3jSnDIIj> z#(K#rO=`hcba+0?%~@Wg#Qn27W?P)u$kxl|0O?T&$ToF=>}U><#CbZU<1nSp(SO6nPzkuZq^U=E- zYHJ|WT^*q?JOI?(K&S^;4YS&Poi0;{u*{tC8^S%x%8$OH-h5k+?~itm?~itm?^EA< zv8Q^1fOQF=lk~uB zt=^Ipgq#oDIuTM5D@Z*g#3WCd&()o>3l|i zbx1j~!w1-y)N)5^xg$6p2#yCe8$@dD04VFXq!WYa5#8xR8XJ_q+uw9$Q_Y4v=Vnj!mq?Y6QtBJ1!r*NqJ+UWwlE!k#h8Mc zmW#SuQjhFyIWL4{u%7!XBY^)ZLpTbJ_blyWI41}~HgXZnc4bA+e3nt5a68@X-;L z0hkAJhIT>D5Mk2{9e3{IjmIJU`&kPBQS}iraEcd&=0T0%ilRH#iM2BXpnBI zoyiTu)!5ChPpU*!B#I)oQ@dl4Ah^pxeGwa`fW!*O))i?LZH;mPLoeE;(o}WO$gGBBwP`vdeU|=iL8TDdFRJP5p(7QSiJJPhZPZqs2|{EoF6N*^Ar?Qyts)z zhGkxT+`c?8-xty^h7?So=qhgw4a1u#4u|B*2a^M$&f<+dc_pX0b~+A&ELn#y1{7-$PG^J6lr`oyb| zByX}@4Ef^WkM%1SB9wN;yEGpqw`njLMT5m2mI^~W!46L_!((k7Q?|gWFrX|ULXL2w zHr1NmuIY_$vBo#XTI<_2*8Uc2e`8=}0I+zWkS}3PLB51x1NjoB4dhE0H;^x3RS_z2YpHlRO_K@iiK8&9GRq&;jOSA{ z%tt+Z5~lPC-kD+EBaMb;Gj|k5x1)S6f`<|W4~U=;W!FL@Kc;Cf4q|i9Djk3OyT4 z$9c~@!>B~@Fucd3j%1pzB{yrZ*SQUQYZVYwGi@H-+DWnyq_v#WqqXyKtYz!<+;A7Xa1zYH?cL2)pM0=YP9$HFGz>@$hO)5@i25Yy?#9N(XDAY<}3HjWz09D zHF4%Q6y`Tn=0kx+%x?(hH{`Sz^(3vP1x~2^FIhRsqd0ARSPr|3j z%gek_>U^QpsXk%8@QznJ1rzE<$(_>ohsE2&+7Y_>&@S#M@;dJQ@DXBi4?#JL8z+*} zr8%42G7vU9b3}=7km3)F;=51k1HK~ffjp@z6wmvGNbzi{3@OjkkdmnNb4QbW0syc| z@_2XMJH=|S{}jjvE@ZVz3!OTzY6ab#Y70<9y@IEhoq&kA zQQV9ZRl-?YNMKmM>8(<7WRHc>cmYBLvEq{%0v&nNbOAmBV@0Us=ol{&d`7h#Fa7hf zwOb&#SI!gqr&#ErSV&MaKlcs^ z<`ze##MRg$$O>`gcWeyfGGA(Yc}ICe{dg`W`Fwie>2#+gh+pZ%(dHLUB9PF!HxNJN zSDs=}`T}SWdn`!vHEZSP(9K53lhv0e2`d~6{9KOz)2_b zwXG`A9VovQwW}(Jt|Rm>#AZ`R3TMW;Q&&mgfbfw|i+}US#J}_N;otPZ@b-6pFq}tZ z-ZNH-CGSg=sS?VGQ-oS&$!@CJu4D6V; zQ&h4F<0*P3bw3H>;j0Jcb&YReTEn1G@AkcTc&-U^rH>igMfiwfgo&M!rjmVDWVV>a zs))XGBpgWx{wxrIKh@hW!rQXNj5ree;wQ%EZ%Kqa2i=AJ2G7FR3g;umqAw->uU{n^ znfyQxS4c0d7}gSpD79;$#g~m}+2%GX85?lBp?JKuSA3xps1&@gjSkWPV|1-X{yACG zz6tTBvo6r=@>bv)q|TbTL+dVzwaH9&0McoSqA4746!FktED{f04Glbtw!r9G%TIKw z4FjDXB6;zvoX=1V(8eWv{~(7feyanNe9Qa?<>Ai~=W&S}gFuiUxUAC&Atw_g%33(& z1BZN2An7DI4btE))aS`^QLN-p6F8QQywqlXd{wDDkp|%fmuQHZ?n-rvv_}Qh(wA_< zf5yWe7~MsF7+q${6%J>19d4B$7gd^ZQDRt$hkR{dFXAw6$suG9Cj-K6)%z zJ%84d^9_AHA(B8{PNs9cVTAB7(NNS9&EoL7Y~Ih2A9GadJHuoCj=9St5-lBhFGA{K zaOhJb+#jYL#zVV1I|iTbD2f?@UJ#`(1Y}Fb=OgHs*TZP^ZA}w{%Kn(pd}`f1%C=4c z4X!Os;vTi?6OKG)*|$EwP3RP4+Lw0{O8t>k(lG2Ry^?LL;6RouN!22#mAc;380>{p z0MSf|WLXqy*++y??SON@|t(k15TY~Aakt?SCq7LD)t^_;{ z@5a7Jm@7-xsq-Qd+X@o3Mtx^BC8lOjc5&QA!vJYOmcI&W9t%jzcg)U;N;_-Cc#TnM z?-ir@rvnWZI zzN2!zpswm7&>_LwS0jq_X-E!FYTf41TZTE&9WJv}M*8{fGHzKhH<|xeV>+`DjUx&qqx_ z%FxphGp~w*MMnZ;&_p#yL7;Mmy&B$U_g?`CTv1KfOW&?IxKEsy&29RByvV(Jwb2;6Jj^=q zOwEYhKv)pyW%}+^7HI(x4?vNdRUlQ3v^p-3H7=6%pjMHTP&I<81yNdw#=s2>s#qWj zD^)49!X&D{fGDV*q{wYO2)r5;$Qmr@!hR{Qv<_^QQ;t3Ot4`Ht zjaQ=rQKQAKUv5sbU#wX!cKIQjPJUbe9GNt9=&2&PC!}XU1--fO!H}$N6HW?S(z<3 z^*2PMqF$yq&fD9vFi#<|@c=2T%Px#`PMKgkH<6kdCyFX!)Q?&vR%wP(%3XAW*B4iK zeR9~>7ngW_a-;{NjDLS7-?V#p8e7F}w|&Lci9{^ptJ9@-C08eu`SR@HvU7!ZcIs*c zNzS6B>Ra9r_Vp`5SV@_gFkhINrLd|Ggh)bhJV<7wtI{kEw$5QmH$Ppo*C&HKRM+Z_x^bMXg0Rk$a<8u zG>O*nxv-Ch^&EuNr=Iszlj`oDYf_CNp=A5;_opYBS`&N{+cz`6rrl7_Wmf>D@cHRm z8fP(D2azv%J~z4-w) zMmIlP?B2W#@F9d2%pLijpQ}FZhY^MR`xn(n86h_g8sVM4h@9R7AbFrj6a*}Ay zBvp_+5G02$Qm1!eL7vPwq@A7#j`Go?gz(il25@^78= zYK{C`uMQeh_>KQMJEr;Une(#QYI(4~I`chY-$;i1`y-NK|5RMOGl$n)lf$l8)=O z0{Mw+vwxafiq?z*l(h*3s89cLE-suaN{%rOm7GuC#Vv-DATtaKWX7lOKr=`i!Zz&sd)*W+o}^VT=F+nueB8^n3^k7@X6gb$5-8{KZV zv$^gDFphc~>+2o*^DaoEIP7h8wzk$cx^D1!no<;94}h=3=oZU*-gbMV3SMzwuxc4ukPs0xKovw_9B(j`XzG>5q>Qa5L|1x7OF&t+soeCZFP- z*V<}#+Z{kPO~=rd1WI?;w>R1y&m9EAFefNB+8Z0|?JajO3er3crx_)mGlq5LQ)YNo>}fDLi^jhbYS#gqJ4mCu47ThZ zl)GZEq5B_hv4ZzR74T#@I!S4~E>2^Bpb&BRLxP?u2(A)M}+Z$b4V=|6Dh7{ZS`u67bHU&-S zxiGeV6Zp*12BQclYqh$tk7|=N^ngTk>#Z*N&Pd-u&v#l|U5}Q_!hlu)gJB!EMiY_Q zgcaS*PPfzDl&Pe($hq$Jx|$m5sW8+2F-;=q#P#-em!|Q-v9Z0qj=T%Q$s~$N=Xe|2 zSP7(Lzdz85x4m`G9Y%Mg!i{YhLmTV#J5;`t;VtX)cB|Ea7PvQ28eXRnj9CvEl7?B%x~jd=+3L34o9SSbMFFA6+lC==i%t;N320+5U|_7l{J0$@ zSV?9(ccf@7{)Hp+ii7V=D4JZ z9D0<*;lnWe#3n3IFiLXHx6amPx8+9hFbZPqZLiZ^-&${XNz!dXxY+3c#K$CkAZ-T% zTP_=Z>zi9Za?2eDAHx_gmVxD+HjWIQ0-Vi8q+F*1>>dZ7VoLoMjOFdk4OjzVM8U|r zxxs;jyagHKj`6~dP9>O2FvPnwiOt&e%?%)HgQejl^MJW9!nbLXU?67<$hECDl0|aK ze1pl{?!d%kNpu8nZ^5J!NhTC$+WJ;^gVD%m1SCRtv{@pb5^b;B-r8o>@_`8ntxlKK zBB#XWRtF?+M@tUP=G8!&Dm5e5w`LNEYf*~1(V#p~;sfN}e9PIh3_ldoYKT=zCx-K|X!W>O@B zXoCq)zX|yu6Sh0BkaFI3J1_yD>nFiDR7A!4#`-2Sl_nE5fjDi$bfQU;PcU}c+t3#z zSz%MRvjw821Id%%A%K=m=)`SpZn~2&7>p*MvyisJ{{SpZrzkHrwm|H=d~R%bEf_8uQ zjO58ZaNt2BfnzDUkVD>d|>(1514>$RKPZ9we- zlJ%OXAat8BBQ`di2BsTsRfOZZfeT4O^A;HN?k)Ux4gZ-|GrV^COdTn*%WMmX%T=!u z!=e$U73ep>o7}90qRV~^?+HYf@WqC{oBhKQ0uH zZeTY|4Wh&8U>ps@Aby(+r{jdYo9O16<4jItG)G!uL=*Wt280ey1*2hyyoXG!ucMbf zjQyxq_3F9Pi|TnJs^xCxw`)-&-C^bV{L0+a4eQJKIl->;TlKfBR=xbM-<+$O^PBUc8QzBjj44Ao z2D~8wKm!u{bB7rRWz;yR0(dGt{wt{T@HuL%;OU^bC>)e z8P4v%F#-a|(Fd0}yvIRFSacL){AQrdYdPAWE(2|wpx33K9Tl{SF{If|sn)`O*V?fi;*ri?UTryb<+tl?Xalwg? zJ4+DRRp8fk_?f!+@)y9x>Pkf3NpKf(&4^iFvQ&%Zj(&W28D8xa4Yky@J2#E=nUsAW z{|;I$zJmjw#2E3>j!Vpo=$7$kktHH}AEjdb7scS`wenu{o8ay);2PRe=iF_f5=d~gqHd7uG=E?H1w|b0u=Nei}d3(MRuAZJ57-iBLrVQ zDr1fLzNf)N{z#*atgMYiWEx}v+2lc0spoXQu6Z|8!3rbeRxrcJxVClCxvs>SmFoJq zQmK(4D>X8%4Yt`ETV$F>yL8(quwSRYocV+t70<1qFN>lefauj>`tqf>@n7Qe_T|eh z`E|`PoD==t5?`UxBL7#R*O3&s>NN9&mZ*ZTbD9}mVpJO&G^~)W5gU=)tRT?!K)?J z>!}|%60Raf{)p(>(-+mao;W@D+ipO<o#(B;Lsz4<_Jxr>CdbVG}E8sI`^f>lrqf`hvZ<6 z)#luo&vj)9sVi$pU0Fl`0U2ELOm@jqRL`~L2tL&%2|llNGwgZNP1uLuieJ}t)r@$K zj1ohY>9%P@6;x*KZ9|n-X6|)E5m^hvOQ$u3pEZS_HHDu`S}3Q&8u?cIx|Vjy3$FH4 zax0(GTlrL6*58ukTbg_;lCMefb%W_0+8w?*a+wjYK43%j`;`caLAZ%Xv_bj`{*r)- zh5U@=6Z6Tem_KIuVIu(fN|KU>jSOyFdT<@ zXaWw#hKeEc{V%Z3bC2-0h&672e}+98-eclM@gTXwWt}I0%5jZ%DA0JQE&5o9Fhh_t zD0x0JPHw9eSg3*$m+$3DR);eZ*^DnsMKLi|7Oog;2KaPYab$bII~ zs@Q7JTV|^)U9GaiUrrDAFOE*$$STw3WSWg&?}T`lWJwZcYbWn6fcBpb*BT9?x`bJd zho<60O;AlAfy3~hE(zF@{T$_^YNh$VvWkNt;IyRX?dOU(Od<5$gw&C(nUBJ_3bX77 za^l!bes_edxE?3h4k;V5!IL3$EfTtV-VXh6IQUfefsr}5`# zf=9niJpBFoRm;Cs^FRT@-QgOI4|PCZKug0c13*w0!{Dx3A@B})x;>*wPID4X!V4gD zdOISWNlKrE*#wY<7yMLQ zh+(Gj4#FYKfHnbRNm<^}A@$-r2G}*|j5XLT(>_@vITd_sk9V(*HJ*;gh?R`njI@ai zn4PSd#0ceA9jM4wl=v?J6se*djMe~r}!u(OS)(KhLWf$W}<9eG>QuqHWa%t5!Qr$GE5C-Gu@Ygb0W^{1`BI zbSZ#?W`G)o5W_{H=t%k!-QBh!y%*tn7CgYPPhC>92f`I}0y#{Z3XjdH)Vz+E)i#I$ zV~&wMkFxSuSc5yy-L%PQ!6P@Em}2da9Y~1=RWGBDvmsj0hj#LpDQmD8?772|pdHXf z5iYgS^XF-kwNv?tL%B$r9OiUBh-o0nksxfWn*e+Y1ldD8;H!TBCW&)nq`Cp@wV$D9 z8IJH%P(LG(wnUEdh-#Gg^-6Psa-mA3E@a1Fzrw~a!wmvde{X z7${0LQBVkN2Q34(1o&DX_A~MVmqHnB(`9Lhl<$|47+QXd>n6W&Ok%Qn^DT6ghj$c- zD&*pN9i}pEq*R7@eK=s)PaqRohrxa}l~GdyLg z#s#P_em)yhD%k*+2kQtrfxR8s*od!sNH>mDTmu{S7fa3O&p{MiM0a5_&8t;)0jdT# z3t)>Bu=hK$A-}vm{xQ!dXH=yW?@l&hTBm6=4BrAKq`g`}CFsRu97HkbSh3MCv#9`( zfDEoy-W*<_9s{eYOJdg^ehlOMILh)6G>~cq`2kZ*kjX|kOtB_Ct`k^yXxoYDJ07mJ zTP?mVrE2HbuSUXdHOEB=U`4O+!H9FNS0%GADrB>9fXsrefveho+nO+8gH>$?ZrE@r zQ4F?HOv95!aGQ(t-gV`ovfn8iQAMqnQwf{pVi7-s~7k!A(NHf6BHR*9Nu z5X=Mtz|1lXu$_;@0)c}Xv`Ms#P^c2w8u0||XT4tOF>MeT&R}$=!61L1j$Z{?C~vi3 zX@ng`Uah>Sh!YZ&WI0<9cPq^om0mS(PLc^m{AvELB#H@i9sl9N;CzIVfXM?KU(sMK z+Z&IGs0!|=4t^fyJ4?ul%PSF^al}y4xyS{MutDiFJ*E#zP6p+8DzEellXQK&bDiQ_ z8SE_x`o%I~YEMI1I+AMu=!Y;gfoEB@*=%a>x}xeJUz(`b9pDCup_E_oGkMQJaRmu= zpK#YkGN5Igsa{^;1>Ydxfr?Z>)Do|VbYu+0nNnQycJ$UN@-5^0!vN&EhMKp5Hw{)x zP$pVC$;)6Tfp)QSBeUFPal!B0rAiY5P=$n&1T7h)XbPID4Q?YC-BQ!8Gz~93MjA98Rw?!ow zjM0%fa|ZsGjJC4(Wj1sB0NZ~lp!#wy4gJw&|B4~HgZjvPYF*Wn%i+~dR+vbTlg>ud^Mkp5AJIf4`DH|kX7$gyhmD!*fq53>%vbIALU=uK9 zlT|fB!|C7#C1X7l?fPTLmTE5DW0X)l(MB&P9}m6h=zdG@X2P;jP8+}nO&}j9lH&Ff zBeNQO$bb(q6<3yyOy^8?M!_;X$&~pX!N8iSP0#4|EU)4-Fe4j%CRNGzpek`@s6#yy z-Bd~=PR%K-SyTSvlTG+sPJ!8c@PUNG3-5_4V)zw@I`4I*0(bRUGXBWBoOCv9=NxwC z`DG^0(a?f2q#2=4)t)J6W&3F8W1z)H-*=!*>?$H8GQq`TH&EWVIrdD*yU+#AA?E^x zp67{U53147;qwKH^k7Sn-e$d=D9Iv-q||h{I97F^)(#zO${q=g+BkMDtociYA|o3` zHz=$_YU!5ZD+*9KKQA^FtQ~UF$J9u2)L`3Hn!CrZUyG`vxqFn0#S$AySH-XC={t1C zwZz_Xch1(*y2&E@&7Lhs+l11y>zJN3FS}1v_k+}IMVD-G8A`j>5g?Y-cr8*c9ZizxxAribsGyxy! z1QtseEg*&NG-``w^wy9fw;JWeB6`cPoAj21WsE1FW-AnEvj=DaqXi1Q(GwKhpk4tt zdPIyQ!@r&HkT3Sm-W*=|U-r(<_CEAqy?_1s@T}Kz504Mu9-dtEwPerTe|P$!e|ETc zz?0fE>F2Yfi$k8)aWBsHPR?JyJA2!IeRz2AYH$BPcwX0ie{w`}Si-t{di2ZTasN~S z+F)t#Pt?@S*$$)m;B4>b{>6vWL;uV9#oooyJ`j9<0c5>BI(Y+B9(*`~pZmS`Y^N|` zNX)J;GtMt^$}Zyn6PX)*4#hJ780{jHN3Zam<`1wg@y|5)L{35s<~9X|O-dkxpVB^g z#v;Md^E2fM3zo9WfAmbew6~gSudsvE;W$LOFT#kA6M98URaauNF&iY)I5$VSdiC%^ zX9F2&Bwr3N72FrPrQSn|-a(TbdsZN_< zYd6Ujq!C@w&; za+)85la(u_v(tVQolvZt&d15Bg5Sb$ouBl+C9 z9Sf04tsDB+q@ql>NRX>4ORipCE?n0__M?wESMJ;bY=I_a@b}^}Y$1md>=!MWOZBXfO#_0$w&ZdoroIFS%%lZ{Rn3Z*R@2Ihmnva^rZle{ovyb54n3i~ zU_rlwvW2uo#Wht>Akb1_Sj_quI3f?<98+XfVUvcpOiZ~_h7R3Jvkc~)4%0;+F!-D| zuKwKDKn_n@nlGK=fpx?{>0ngocE6a7CMPU2=hnY8gCrgV_<$hU-MRKM^j6O{sTDhu z8Cy0LsU!JeEz3+=qDOOUhnOM~eFse$83E+j#@3Js&F2`rL0T!BcWlf;zX;Mv5+9!I z7@+6VYX;pSM?xS|Ww_uXZIsEOqPLSBtvb3$a|_D1!PQZa5pT;SSkFd^jfea>oMNB4 z`OL&^PJ_qdozcTUjt7ki1$#?cD-4SyS2ZNLwDJ>om|XEwZ!^WgqLP1^U&-ztMj0O5 z{uHKpcu(o3%OtFjN*QGXq|yOhLN;Q)7j|erI!G3&^fGj#tK??Q);>q}_YdS4iVx zt><}WQoGyp+Gb*>{Tfo6>sX7o0lz!=i==i*%_Naz?~zoXiX;JDTkvnwbI%SB@JAbe z^p8$14&UJE86-d{Qe?B)!Cy!CtBb$hlb^EPKcDTLo`SOMe>n>$Fh71y0}QQq+w-cS-KXY=^IpUvLHP!5)3ba!&11tIEV3`CbdKOvxXy zzn?}!<~wzZC*6SV{rjT>E(*}Sz~@HA6@FTWcM^Ee&C;9NC}%(bLkE>SX3KW79xp1a1vrF4X^i^swEHOAOgP8NgR zKvGVoR1=3UD|KT)$GhH>WiEgE#8tJc){&hvt1xvbM*K%Sw zgz`7PvAdO7{5SXc(fT7a5-89O&%99*3713i$Hv4^|6X+TIOhcQ>8Fxp9u^KyF_B~w zzM9!2QDk4(vM=b(4(GKAA~M(o&}|7A&!D7g>@U!)<&pw7R=^txkXsH@bAFIYMslHT zm`Ja>$j~LL>VGAD{6h{IIR{hL?j>L=P&2cp}$G5{@3p1eT z7eA5_(~M_}1jkgW1O!iTRQ-o#5(!k6ap5qFwp1B793W@saUq)` zOmf->R#2F(MBi=^&09SzT&AAl*&?4JY#Sb<=KxazO2?B~RGcj?Gu+a7!%ZBt&Kq!n zzj(;Se(9h~{IX#O8}0d+tKS(Cy zSIx1ZURfR~r}|%blCretcNlD&$=Eih3w?;&E7XdCMf&xEh+o(Eh+o;TT-?F*>e5ASS^7Ol5n+T zu4wp|S51mC1ay-!=`ohlW1vWnzLXwgci`;&m1V50#tg(`Cg|k!iBx zn^E@RTT=Gxx1`LDtf*Z+L8oM@Vb)CP$;YxfrhT;F|BzfHR>!Q=G!AbbQ;{~3tQ8?* zrJg*QJf%G!%BlgpN-ft(o+o!tX-{cI6tz;Z4!Fsv?-xRt1CKpVFq%iV*Q5 z_aRFw>rxbco6X1^e2?0al;c}{W3m9(g{dk&0oR#3dg4}xSMW%EN7?oe(<4QvnQMC_ zbep-xM}`KpBLc{gN_ER1S#!C)k%UXQHul>Po(`zqppANSgN*ZVB6?qR>90XIp z%mo?~F@;m?QTm`e9UPs!!KXwP6y1M!{O+v3e|)%i*8gem`2C@3KDU(pO!-;3GNNx} zDr=i6GK=^GWqTJFd;344MQzKq?fq}Z44-DDhqi#+V&<|OiS@=zL+3!b27h+%%-v>X~OPXInc~$isso=;1*b ztgth(l;L^yvS>_ICqF!Gnd z(e5t7((W#U2Q9`HAOeuG-a^wfONT*nSqWQxG`V#AlvJ`erjL3kM-SIJq{Bv*~1#q&fU%f`(ZQ z^wuuP%U4&=DvI<)2F+&X=~B7Sp;l_T;iXCV2`C4L=jMXciFcAMd?|?drS!;lZ235FsTt~J-GIdw|Fq=cReP(;;Td&G*wbb;Z3O@a~i~pzqpQ1D*yWOKAd(FJvVv>sL z?OWBlJZ$3kF8!l1Ee&FPe;MtYRldpOUF}Qb9v-W}Xnd92`IuD=oWfE8~GDb(wX<#q% z0*l@(K9_mB__xw97CLK(atUh}P064sfq_X2)&8Q>@OHA7!A^!P41FNR&*~mDGOM@U zoJG$AoY*FOTX!~Nv2l&LwM?i2XuRjl2BUEB`+gGV0jR@)e3}abK~+F~3G%zp@~%P^+6j%Jl2k zfWK8hU?6ey{5d4^mt-(x16x9XTPJk6sLD{j!b8f}RvYG^96$>K$&!E#waWme4*tQ( z6prZ zo|eewzwq#8)H^azv8`43#9s6=7f;S&$V6Z|dw7p3FnrZrF60J7<+vRhFOPYgS!<_( zB7X`|0qL*@2l&@i`xp1T`=`d znR;Su@wb)KRDS=%ry{ptntpUsZQN$sSD<~x%2!*P8EtK5w3nV4ZMUy|4K>I+>5yN| z`9fUFn>^f>l-&~;EfW|m3}$D7Q|3$By!UhVJPHfqa5<^Bt`rpT<)+PtgY0^h)=E9I(#%?^XI2_mD{Y&V2G&a3W~G6((zaP?43$PUhD2JWF;uz;%tHxg z!{(XT5-T>(#5S^GYn#|cR%~q(+f{9(X0X}R%)a|VaG8OZyk5o6w(F6%H5p7?+-yt-OU;H0Prve zpp5{ZH2`l>72cvMyhT;C7gf<-R7KlT1$!Nd@2yq6K`0Y@p@Q0)*QL_gnzv3xvNdmm%3*8XCKbNcye(bg-pvuScZO_@%gVK>q_pOB zsCcyIb*W6W=B=ZIQ^X2+Qr-||ks-`t)C~<`7I4uuLD2=8O${VZ1JoM$3!+OGbT%R7 z76jVZCb}jlG*!_xG{=<>veHcTF!jMqZDZ|bc>`3rvcz=dCs0prl#LjN2v?JwcwFCFmdgP5yKxHpec>z>+ zQoQDQ^nrV%9=P+md5AX~1xp{STLqj{D2wOo?!>R+E5cztcc76IdLM@e>37gXkip~! z(NNgW_LX*~9MPk5H6h0Nqb4MVHZX9IF63Yw$JvM-jN|AUv4e3O zm7~j8K*S0}tUx3JB2gd`4)Mf;XZ7BiUt8-J%U{2eJ5}*ylX9so+$^>0cN{#)eaA7( zEp`i_c(?XiaM*Uw%A*Xch3g!LIP_bEu_RaU7HD?3Q1NkF4{a zUrx&#eB>;sCB`+BwSy?~LLU_j56q6@&xqMNM0h{z*qVb7y`*K zVo1N6jpW@dOxj$Vb0oF_bwdvBQESJbzaW7J;YD)(k7ed{U&mW-zfULWm8+d-{@h=qgG3sGi9uXgH?x zki7BMTR@&#`5G+9<8Zik9p2yoW%aLpLb3r4iKS8TI3c!YL3ri6Ce^)`EWK}gTBfWt z0q$vHoT;Q7A*L0h^O0l%!Uv@Z!_x^+Ebg)S8w=_zVYzI*wO@eiB9y(2A`Weg*HLIX z0lJRLz+{eS2X)!8G=yZ(_>3P5u^B(I0E4y5t)>q+9IVhRAy?v9Mw>?Ag=KEs$kQ&oqF=vqiHVI}J_a@vz*P=@{5^ zJ}W$oLHHpirOFUtZ24_CVwhnqV2OZ!JWm9Q`AjJ=g9{&(7hJvmHmuN;>qVU4z>jAH z$FL$FgdkKIA@)$;h7%m!a;y;0kLQIzu_7~+bwOo^vZ?$w43P+zV~GO)c%~>wR%DA@ z1x?98?V7)x=pgu(mmL)RX~KizSdk;J;LBLc9|Z%ZA6G?GP!I&#f(>d|vhY84IUu@% zsE*ixhl)Y?%7R4EF66^=iph9bG$UWN4qYwLo)eUI-|Q_=V+^QIa2gim;Ve)7XGWAF zYCid8CL;$>mj`9+(wN`A@ON+x1MRBtY4E?Hu3+u~Nj+li{-#T?p;eQb_{#VV7dXds zj}T3wLggFF2H5G&*fR^bfhGMd-bBH@Hs7a-PvwDQiVyQ@1KU^ijQWeir>ypX@t4-07EcKZRkEXf-=r;(AR^xD$~rrvQR zlU2yw@pM1D_rJ%h^_*eB1h0F z#oQAJ7D##q(#MgGlGRQ+=IEpoDg0E@5lPQL`Z&_b3Sg(5Wa-4y_2Q}26D&Ow?aK5k zt5u-^N}hZeMOodR&;$iduYh>vMzGbj&;XV$i07;D69{K0dK$u&2{xAh0^vqJZ@_Ze zfu>kIp{WL{p0$FuYh=Ui7vI|qDYr{D>PHpyPqQVC7NCV@nhzpuJ_yK zqYkm!yfk(dPn(}QvR+9gD>Gp*p96!(Hh=KV+CH!~eDJhZE1R^UN-OhLXs^2Mdx{Dy z(ew(4S8k@*Vig)Ga#m=f+`~PgfdWa-K>GN`UFg>n_I4^jk7@FS<+kG~tyl2%%BxzL zC(2&EzzQXA1rDgY|0gtDLDMTBUb&g%?4i&=lDb0E=n2LX8buKF6l5zmL_g&yv`Eih zp=rkH$rIYBW9r$^uiR>S1g70M({JbW%p@- z@x9@#Wxr<{)fs!LTWz0I1ZKOFTW!Z-fJr_7*3jK;fJ|4uHS}MLfgIO2Z>>6Hkyb-P zyDe&6MwvmefU2;V<3v#qZnZ_fV8zLo+S{__v#i90VMM5|GuAhhB{Qk4HcbbKw7e}! zz`_ZwCTMP@@Gt<`+@!HIReN9*%DG%xierhO%aIZOp{qAXuB#R zn9@LVa#*u~rdS2LOVNUDDoE;;#_Qv~iwcd@`6ijB!F0H|%$s-b&-UIQuwtj9B)(l- z==8^TCvPfdY)=!AUP#a@ih`vvNu_pJ6hN#W?EWNVZ;=PLS@A7$NMx@-W40(tZ(_n( zFdX7ITA?R#0#ojnLeLZK&4!K(JK;lwyl6iy($ZpalRrNd9@ZQ zs`iRV?n;$REMHJt{;dikFdD=vlAnc;fJU_IQ=ig-k_TY&qL5XXg zynl-?0r~|rj@cP=vE$Q8tcG)26>7e3MeL|n3BF>Nuv@H6W>%b@R_qnNG9r4Nw?`B)bY&g`=u-q7HoZMC`dv7n+V0|R2&057Y{kROp^HNI179d$Wnj@OlB957W z5pCanicgsZ7_3};-cT5fTx*uWYMy3f95#t%hddE*@u|&Ws90FwQ*^>!!PxurJYo=F zZ1{N|y>B;n`7R6T&F-=ba|-hLb+NXe#}`43J67wm1#s+yMqU1F#=6WK|5@(jELJu> zX(=<<&ABxUVI6)_(-Xos{8X$vB=1sB>OnV&Mwf zWEcYR(<{cL70hT^O_iQ;r!PnlmX9n!GbNSuS9%tU2Cae8P*f(W$dKO^bundKAj;vF zT0nG0rB|@SQF=<07fA&q*m0F!!6HWKRUHW?6_AiVuJnqgDe4f=@sKnXkU?0#FzqPt)l8Qu}oK<>-d-$gKEs=<% z0urj`RC<=%?xyl(prVOdZ%O^9(zDztH^0E=UC$exPqyaU1(R{Y4ZS51u`O!S;2kJyZ&F{AaDL2K4hv^;&2ESAA-mS8geGr zLeA9v%GXLgzs#}Vj;$f*Fem0#*_jzU(Z{pxuWOx^4S@e-c;b56BkC(8Yh7~UmA6QkCU5o8+xiyZw5lb+RE%^5w~mcy|M14*KTTDmC&7-H^hb#&^+H3VPq60kBytoz9pe)S<=odP z6@BsqQaO&EfpcY9KSzwKSG8sLwCt9hx3h4^&dK_FNqEGPKo0=RmV|lozA2_d$yi1Z zF%FH+vMd)lkFbUu2ssUrxjf*zQEpU}YB`twkyVD}f?NtA36n&+(W4iRqUgt%Z^#C* zDwVGroU)236$A=NyWBOhBz^zMT2kp1Ivz zF&V>d4~O#JG*3j-#2x+J%4gn6?^f~(`D(=uyVRS$Q8XSxqH=o|Wzn_jJbIH(vwV8D zKgGaqn9Q*@7tzm-$-_7RgbGkqUf<<&^^O2eV4*NKJSz$J11jEdXCaD zg{k2|l;#hz18I3YR7s<|C`Xm+;_PVeD8? z{6iojSrRYj5;=rZY4lw9pJU*a9a61U9sdWCD{=FflcZ+0D6x_*Oi`h}DJ5(OMQse7 zq_%2Q=+f0vMNSHb@8Z4tDD%}1HTxHq^NX7JfhB%W6Mtoizp9BWjV6tgMwZNRrKe?KDn4t`Adhwcs6bc0n@+`?lgq+_ zHpSAJJtZBKMPo{ut^xg02GzXR;69YXJ!o*hmco6eR)uUp73>LFx(4)185ARqe|{*1 zd(hy1Erp}R$d&sPc&VP%IWS=4BaE`SBAHJVH<)6^xg zV4AiiB8yr$GPz!`Ze;0{L58R=@XE+nh)`DnJ1r^%9eiwUD2zRpuJG5+ zTC$g707AI4r9WJ-q_?mzU2J8LUjvEyQlqmFAI+h%cv#gj+2Bd*bY-H@Og&pOe6_)= zc{+Ym*C?&Y1fU7_+W3sgS`n4f5j&JYHz}4 zdlNqYm6{+{aQmF#*>X;ZMfS;aLaxHSg7*5<=IHZ6DjHgk$mFN=$oFi<2YWLf?9F)i zt2X0Tdow=UoALRt)(l0Fw9gU=Am@ov?_YAJWQy~u*&dQ7o02`%D>YO6QOWN|Q(e%- zO;=76pnRM5g!Y)YdLj`DVkkTxn;los~VINgAS_ZDXh9LA*E|dy30C!_hPLUn|aPbEj5_x?ljvNp2qJJ!QTd zxOyeq#K#ONZ9{1vSt^Jzz_dfjCyz4~Td#CayP{6XcfW7|!De5G{(KEK# zD@tW!yDIm~#-X_G7pB8%$K#=nx3Enu)=)S#C!SyL3h@Ee7s)I^0wJ4U7Daw*Cwi$L z$#E;Ls9tyUoXhB{SytgJm`uhGl5|l&J5S)R%Ml0?!dyF5(9al}!w}8Ak}Nbf7KJll z^$5CD`(T%bPuOv|OQ|RB)0F^xZjN5tiNgwwF;8Gi>2XZiHG)b9J>^p`%ZgeEePmN3 z-mT87`|DStfvJzW(4*tsLMf_XY9pps1S$+N1*Zl%XY5(8z{8B&XxEKRv&G=FJ>umZ!nTFwIC`(RINw zW&)%$qg|m}SmVEF-1bhvf zvgds@kCsO|#oc_V77{Ag*Zv$mBy7_2467!BA@12_g?7^b>H1dNvO@-#!XblQ9azRU zj~jFpee<|$p5TFU9VPfgjB1tkt1!xO74hjKEKmWsYNXuUaJFEgap<6P#?9wyQ?`Sc z0^8i2^Ctq0F3o@Bvz+>k&>@%NkmHj%#-~YD$BobtVNR-vA6~{+4jFpP#0w`^rAK~J z$0hdhpVMH-ejZ0Lq+(5(pI;{O1tehql^ggGqzM~IOhaj(?PflI21S~=Wlpb}F#|+b ze+^+jnU05R_+Y^etQ%{*k~L@;2#av-4hZe7Rq6@pc9^mOw^j?Z_HZ-dULc-Fko58~q7jI2FzGq*s2 z1U}n`pUB87r3eT|>~}O$lgou|gdtSor?4=%BcEtdQjpI%G<5o2rQ(kaGIFLDy)lTI%qjm7ziD#j%EZjCPQ8ms+Z#nI&@(QOS8 zN~P7>D8M(mvkV_}hG{WMhP^d|C==Tws3C@t^aY+15ZbVCkHb5B7kgN7W)pfi_t$7U zBZjAc@3!BDu!GSI_p`qSA1s7@Z(eZWM;{FTvl&3C`2+fY&0@lAT3Ycni-&sA&UZ>) zxHpfQO16YfQ#pU`R?Ty$k`pD*DYw6-E^nGeu-MA-O|Nba&9^af$BTMAs7UDP9I^8P zW|oZj_Tt-dNc}?!D;7UDt3KgW`&(YAheAC==-F(BPU6fQ+R7Gb3XbOLMb_v;LuE6) zPLLIRP%EGtaorx?dtwE@E~)^kcv1xtzX;4nSqJ0cUNb%a04Wbz%CC^}*_pY_QryaG z;e)YgKt^uLh9N~~UL#;W>|fa!J!94?;!?+bmalFUlFvEp`-4X?=@Qeve%|PvKcmU1 z4r?P7Kc=%mUpt1-bzE}dEao{zDGAbQ=SbWFbVTo~_(H%s@|)*ouL0HDrK_UKY?2Mtn{HWj6`55yWGbt9~jE zNVqrB3I^hQVcV$!9IwuZ2dZ!r?FQb{9#QM!oy6)Q7dQgUs84}K>eoV|I~Yq{@_PA+=hY=`9^9KPOre|*uGaMrq- zBEJb}4FBVba2%~j5$&dmoUWkFQkbH!q%oy5!ELRvqBx`x2%LD=z|Mv+}}>Ro*t^G>0yRf?a~iyBxPF1}oD(7Ui+Bc@$Eyx>N*; zK6W(EmkX2v0CiMgzAQry;^Oq&m0+4vlS+yr`pw1=M^^C=bx8N>?_>59H9!(uv)bg#(KGsel}H=^{lZ^7I{JkY%uI-_vcLzY((Qc55{}Nz$`n9ync?au zHNK40wi}Y0aenjX>X!);FyGC4)&NRX7VpL$ooD7KQ$3QmY(l?GrujIEMRYiyd8fa5 zHNCl!v(7K1FwRmt2EWgKFr+Z``bP(9{5I-c&rXYA;$gP>DY`t_3I)F1f6T8hMmk6mG)uL8I`1qRYB=F+v1>P)7O6V zPA$Cpqi2&Myd`Caiv)=Fs|i9=2>|O_6M`j+r+Zj$+n(-WStahgl&6|I?;r7)jyAT+ zN|8+NYC`!Qnj=XJobnJDV$jJMU{F^IsLqQyEy^r|N=C9Us#E`?u#d~<-y zx7!VIwwQdQL^=6nBp6aqjs+^HMKF2;j_YKmSS1qDq9|7@u?)O98- zcueS`#V2t(o>@mM?@V*5U}su&)~d1>aa>zjC7k@7n&cE82`zi+(;_!QcP{;NX0E&* z(PxKzrMz_3m^2%2e=bkH?Lp6#TcRO(bfa`ETKnjdP-qy{LY9uXsalBnHv1IC3`K#_ zEm7>YfiAzDc$PY;h`~vY+B-Z^u zrlB=gzvnNhMRXL4_{48i=uOHgkI_(eOUX-VSDLU%D7$B;roN`pPho%L=q9?wF{){z z@TnevnFF_oy>!r$WJRVKn9ad#!`vZO_|)-?9v!GCjAdjFZN-JfQ=+d5h1&4xvUoA5 z-F6fcQ|F==39D80`ods?C#r9l)rriRA-m|L@LSTEN=!A({u!Eh1I-gh;wiD1&fgqU zb{IuIaqy#fh;49o!sc}p4;gUSJUl+clf(Yr+1cKQ{;T(|Umu={qb4Z`zkV%Od3LK2 z?5HE(B4W@!4XHk)W&_!gTq>H!M<+aLS}D2B0aa-M&HIz{qc!w?v8sCnXk|$dXR~ze`Z_6&S za4f;BmeBy1__;QeBr7P&M`LoR{Ruy>n0rylF8=vfqrPe;n0_-g=k;g z_lM2Gi);Z5h#ZCPAin@WVn`E#v_$(;H+Fiqe5ztlWY4TGwLwYl_||unL&TkgUh_kC zqA$v+wtN%%?|gFF)J)RoHj10Wh>od?q?!ml=I$k|3Sp3b{d)I9*1QSQU96_}g#-8Q zT=IBH4=Nrfc>dt#tQoz_a2^Q~ekrJE8K^7fq|{4iGxIK-teM1J$Bo?t2ZpbWYj>b; z7TmsXYCZBn2;lqR>sRr6%=!QUShtJ~v#;mR$ITMIBsZX)W){H=tV-EphMQ zHy0F~D^S7E;a8H>fO|;ilr-J;J5KBmFH`7A{8RU?+$s6dz5;1MwJ4Z7Pyy{l7#N_! z!ZZyAxLAhwJ~^ws87ELr`l5rwi}_f=`iA0ICqPnJpkx~;0SqW(>K;%L*V}VRAcEhI zl?u_ef>}YJ1--O-fZc*=@c`QyaomAQxjnSMLytg70rfqkj$?=2P5f zvFF7@wMN6}v1%MysK@D!c^aWJkifnkCqdq6^G%L@55*maumIA(X#d1+mf0WJP0fV7 zKf)0@NyY*08~Of>`|pAp1-X1HBjdIYg25;p(m~VWyvsm;rV5a}CrEcwa!-J9uw|cd zTgWUx15b@B}+i?@QXlV~A?_67NEJdtyJTw|92P zZcNN^W>5JtbBLG4S}Nnf^B0pW6NBAp1vfzGVLa?tfd~|S&J2)6fHtP+h`XJiy5Y+z zQe3Y`R}QNvp9P`@>fx~#Vd?M(pVJcVP~WZm5?lB(L3!%8q0tGoVSxrU3JuB}Jx*_N zI$wuSI3&7wzuI!~2xg~9Hi#M*XsIHL8x3T#N_m9)+8GkD6TJ*}Xcvxv!NCtd{NSN^ z&gJN8H}FS2SR3lzj36XkCJ3$a&T}41vC@f;?lio-ot46pH6BJRi;N0Ipg^jbS5g=p z=y^!<$(fc5lQ4(nCZk^B>^|_ECH8w?W-e$V@>|&+sK_}MwmmY@%v@Ao&ZVsFYxBx@ zLrj(9d{(J)n!g$*uJCEFdLWOZX0FNwwK3F#LUBGo zp|_SNYr!?F83DSu5Ko7S!*D3vR`JYcj{ASTc=7DFwS&X`Fsa8o2@IU+PEz-~&VMSg;>SP^ zz8YN3U?&~8Nh8L8-H}jrGVJm1$*w<-N!Zw_#;URJHKwrDYV8bwT`|nFfsqNJr-T%8#2g(y^KY=&@yL0HEeho%fU6(qHjp7iP|D@L%NB?$=>@l zOq2a72pga}JR}(|&4&+L?mX$F>Fs4&42aT38^%cpyC&E{U1qqKOF@=uD_JaDZ0ROk z(qDC&N&~0^?ivz$K29c#$R4WkvEQ!cjY#ntUHdr=CVMIFPZ=Bx%{q|ar);%sw67ZQ z4f{&N37sM&iiw~xSxh5TQ$isy0NUNI!Qh`uVc>fJ7Xg(XlGeH^_~*l*0*HJ@HIL?c zjZ7$*So*BnDX7$=7uCEGJ4GEDGLnXH=28^ytTrub*FkMM`-4S>NfGPiTjgxfs`xBDyqwiaAY>-Sgnn;ObF z`0-FfIR`&3;Kvw#XyQ(n5tbc|y0k}`1)%q=g^F2;l7!*Ewq;Bmb-ROM6X;11{BqQ5 zxS9JIhPbM#EVX~S46jhRWAd36f$m(9XQ7x@`&DM5% zy}M=Pu3x!nEi2320JI%%y|dk}RiV;a21|$mvWe(R5o`g1_3lP{vkQUzo~!j~G6 zyGJPo8^VLy@62c5OS`>Ux9eAc6W2LwN+%bM4wqW-ED8Tx*dbl0Q0z+MqTTSRAZ9RP>qj5Z}d`VU`Ex{ z7!`WB&21T4Q$rnHHL}(Az4-_dMaRqGsk@*9o!Ssq#|5ud2+vi?7@TUY&o&BlY>z4nXq>86v!6>8a~_d zGlS2L{EXnUd*yS-U{%sHkxA-KPU#XzB%#AHbsyKZH4QT=xLh^ilE&>ovQm zNetW_KHz;pNL@HA9_a`{3}g7s#lgFi!{^WQDr`nF+{9I*Cb2)F9R4vx!$FK;1uATu zH;&0hpyD`q5Yq&OJ+4-MJls2|kULqtY0N;kuS(iU(@OYhX+_f1`?k>Cz_rJ<^Z4D~ z!O_VZ=?cODT)_rt6JjT>9QZh;CJpf_hGgRiky-R)xZT>|^&nZ(3rGv|_)YaN6jY_?$ zCaBa9g(+dZ=JXJb&9-Kghj*~gLf3vmN(7B%W*H_FIkd|egNRR(-g6n{LNyX-zsPec8R;-UuICN zi;*0qpi(Jckkcni51Y!eVMawzf;C8>;ZBg_1RW`Ve6<#3Yh#jGLD2prg%K|B5(F(y z3mQ|0X`VGt-oJfyc-DXSy8qMO+0ovs(;mMneANyyA`|r*U&YMFZh!Cw#s}{Z{ z`mAL(O$D-Kb6)VtNbc%52grmZ>tzWOa)%q6M9-fm82J|Dv00WKGg2!JKB+}(j}PDM z?SJUYMxVYzM+LR1I}Icf-!rk4pI6WkD_fx$1wPoj*kdIak4ZVcZ|?Kgm|vsiEQ?w* zAIs}^XK(i|Xzl!1OfB*5_3QJ)i~hyCzAQ`YOp3t2^eH$67!?6NXaLh9z^@v>*jB~) z{vM35*L(XH@6IULz*bQatZ%EX07mYDhjbcqW1Ty{An$kXUZy*DuwM~2u5mr9-H{vJ zdiH~#vm0I|!Zb#bR^!~05ta!JEf}KZyO2Yn8*nl&BiM3Y;bkm45XNtI?yHEUgEQLg zt>%A(55TEj=4Z8WJyFkp%fUYo@IigF9QdyUykDQrsKpsh#36dj%B|m!(v2DPmz2eh z%aShduKa9P;BLLnuYQL!b5ILAe$qvZBP{mqTC10v(pnI%Hq0xB^HjKYIb2(X>y*QF zRJd+ATvvr#FNa%K;Wo7StF2ZBLcbx(_sW$%IlRi zqRNZqTvVN6G?s|V7CieBA7&Vq)PV(84GE2bdj(g+GM47RQnl)wRw>}|)R9(cYXWm~p*NsWJ#W$rDJ})`CY>j0G;rA8 zr^85dvYKLyJJgmP8WndMFc!d9(JkQJ z=$7KOmqGk`p&PVp)!~@2s|qztrX-qj0ZbrUC~<#XqvMeY-Zf%zQ-Qs^rJvi`aG+%IPS7aUH#FZ6Ja3@sODIBw~B-pu8k+E<|Tk*I^? zm?^-Kv8BP00m9+vXp#ACS?#$BXACc`0QMn=BmF6JyAs{80;P{F4IERB4TL7xmX5U) zv!xsvNF11sDy@1tgg5{jP#T7e^mUI#?{~HBu}@BTv~wMPCP9}edI;)wHrIK?5HT1m z14O!fp@j6mygmYz9etqoF5aIV_6oc6BLY~hypG1<+Bxun*q5wT|Ih#a{{r0W|MS29 ze@?}$w}}JE?V?*u%W-K9@7|y7ANG$97S)hU(?Pg)bWlX9jUgAGP;$GD`{wxFtG(m? z;mQ6xJWwr1|7M(A2jjKFc#z<6*i!g60RQ`=1G>rc%5k$d@__8M#u}C&M<8onc_lc$ zuny1NQtN21Tt|C}hIp>mR%_|3TuW!UTDod2-IZ(Ume+#v%H1NBK&Sk4cy@mD?xg>A z?|;5KE3f9KFwM}8{B7{RlGK75ip)a&h$f z=x`3=^M@=C@79inVVp-dQJ9v@t4^CB$FX^Ma(K3P0mB~V*XxU)_vTIDH+1KRdhU60 zlYa_e7SF9=eT&WA{j)=;1UPfB_hG^G-ACg$;*k(M;JY3l!XRC0rfs*(%03+Koh@72 z^3}jRzzd?oGmv?|&fykSO4m?8FNYWgknMPhoQ^Kp0^3?9}bqbVsXv3Iky`d1%-0$8d~Rwm&30cb$gasdhL z7NNoO99KUeEU)pGHDXt@_BufQq==vDJgjjYK>T4z#2;2dyzRKZE{XWpRSE8Z-9C9f&N7=v&WRwj*2OrU&$Ys@hIU&Uru@)5M zygoWRzvv(Sa&dTaaClI%KrKPo>nP3gwL{`(3wtm7YPB?popp89TtMAY%jW{hmJ;;s zZbv0+$pz+7D~np`W}(vaW!4p=-fYzRpNDLMnc7@dsj1Npqj@c4B~Fp5?c_H zXX=ib5^LEsD~H;wG-%tx)PWw&NFxW;aEqU~atjA$x$b95tH}il4SfY@m55iQ5|VKv zu3WS#X=X-@s(2Quo@VgMWu_p9MV}+YC^7yhaV*jsxq}rU-jGlh7ZRy7*$HVRlTm8M zsVAuffKY2>V;ad66dM3MoyOp#RGXnUNh%G5iIkfWFd>Z&9(rgALB zEQG%w!{H+RxXr!xVF&OYkQR@06r}IrkM%5vY%{$LA`%>zsq{y4$s;=a;&Y)kRUQOV zCfJF~WuI>S7S_T9`5rn=uF;*~Qq{JBCkKb;`)5a|xP>jR=OD}mX*40v5SDJi8K2wj z?<_F|UEgD5pB{W)9`Y_0kx`WVJ*r_*s3I?L7wJH(Uz!4U`ua?tepc<)Vlov=;B_!?5Iw zH|O^y9-s14Q@(kFb?)fo;Bd|?#bZ-`TFQ5G3G8(-5YsZ66?Xos4;P1hd1H59qEVVkUq>ux~(JqbvdM;=OSJ2luqjI>XUlzoT<#qt;`?wm3g_91!J}{H@mWE z)K%u^SB&9P(LO82IM8xGRE!SQa?2L8^~D0Pvy1@T==>E0V5j?M3P8LL`m+Qe-ue6) z0&w#?2*7pkI|#t__3t47w@U@!`tky>^S1!};{@QwH`-QqT7RGF{_CIW>Ssmd=;?gf zvruxZn=N&c$WBC0pmF;@;@{)>2cj`F4WsYH;drGJ*YABkz5WNCPp^O1^Xcz&R;-*V zE_2*nM4Rb%k>B;~8Bc`1*#RP6Hdam4>+G-CQY(e|TQL&;B4^v|{?~q< zt&ULj5PXS~Zg=T(-Oa@d@WxUL@Wvl-oQ5Z0-|jfA{q2s^%8yJpm!DG`Pd!fCTHKeL zOZDY~tBjMQIjRI?F2}QtQl4!s&$CU&GbD*rZRgDPHyY*Z+keS@cI!{wXM2C*LF4wH zv(N5)kAud|@3GJJzQ;a$y>#ksuP*NX-e>;-`)seZSORV>b<+5kylUzEsaGwXKk=%i z`{!J>tbdQImi6y()w2FQu39$AuUfp;@*;5SZxQ%?L?8Ny#xEszL|zII**}s`LJKlh zl0n!^i6jUuZQwN#Ad1%p#cL!SmOL>SEHY?E2)>y8z%vLKA=!YyG?GclE~|zT&rHS% z>7|e~e^wmdpGi_*B5AZsY#1dAzqFbg^Q*pcJ5C|QpZ!Ts5@+7XyUed@en?_ik#|dd8c|5$ zNeilJyDj*y11t5qy8-`hxSOD-ZM$9z{&?v2?0Rk2>$qN*{OF?Nnz!M4o36J-e!#!m z=p)?*WNq>T{>5hwFx)hI7WOBgEWD>ru4m-M+v!J3C*eC99{I2MZ%h1-^U(ZV%=h%P zEA*|Qin@HKkv=ktW3s{r=$kZ|PQ(bMx=H82s_)b`y=qXXFV~8uZHfGMmuAA^7u_hFwOFvQrF^9o%IydeY?; z6BKlQiK&P|cZ21cs`HB!thl^HGh+hcy?D4c&6D?}UiS7~7^7#X0wg)uS6(A# zkNawmX0ug+HW-T1^dg7}QI2amQJ>hZlJVl`ohQ47y*oJM%QFKo;F}+#EP@tdcN6>e zLYoSv?ga>HH(x9$P3Vh^qD!vX^um&A52Xx%I2&_aG zcvLnDXcMNBf-W(ko}RQDf1D6C8Rg2F(AUi^bH?3e*u*Kd`)Ypnl%o_ zVUSjNxZlvPDkI-niv9lO6??y)QYvRjw@{G<>K4eJI`a1;S06g_ozbH>br)nS*MeLh~h_M@3v}neRdxrgY%9N76m` z524!dx5HpywTFK}GLjWN6>rGHUTcz%F2XFQl8A8zV2x+Z37|H7qQ7@H=yMid2di+_6q&yqL-&LGY(d6WcVg&8dv% zQ<+FAV;hwT2OQ~Cjuul{BnbX=Xkv#Zb~u%z`BY9Nl_MLKQw})RsT?n+vPh6?8wP~R z@q8)=lFG4-$^i%L>s0m^Q`w~ibtyqzO659DT&IcaoXY-uDugTN{-( z9PmM>@?kNRMS@)0Fd$Su%%}1~Qu$z`@`3~2>r~!9QeKu&c|V`Zb4lgBjmmQlc&Jl( z_(*wKGJ6i^Q+Xz-JhV}H#sT+qD)$~KFH2_6-h3)QN-FnkRDR@ur#h9VkCc}sv*&a^ zm7gS)r#31-IiM1Ur_tc|b5Q8Qi&w{ILch(ENk79>Uwku7;5y0kIcuV0%y z;Re1_$PYWNWNyrk3kZ0P9607dTqQqFk6w6Nty*)vChBx_?k8WrHq0SH7@u*pl&)H} zT@!Flt`Ws(zOqCg_V+tj0gI5^!amzYO!CO z^=U%Mn0^$`3k;`KU zvU8w0vMn@CG>3_durQ3~x5pv)N#B~x!bE|d$e%xwU07jH8D*<6?8efb8>KlnvNhkK zrv>FVD-%v;i%B^q3et%T_-?c#_MS3HSED}VH=G*zBvsH)CDV6n072hV1<7hnK#^lM z0MZ2cDDS@;@qoN1#oTIyGl6K*PLl=sY}xs4Eui>&nlxU%9eF}-ZD=(iyUgK<;=SP} zif$oF-LOf7ld`x2gh;r-@8T7bep^~l%&MdkQ1>WuicwHdxMYeP<(Qe~itioDvS*%r zZJ9hv`8KDj23CW5`l9W;0Ikf} ze2n*abzW1t!h?(I<8W_CzCw7i#~@Z zFnC`F(wM4vdsn!VQ9zs>di!5iG^8dcnTrpP-$gNbdi*Z9hrOK_dbqP|;9qg>jFa3= z9sdXN&Ry(#FRJ+JcrC2sli{@p{&?P1Eycg}5 zra985U8=TOSmR~8Sx?)0i=1FL=(WWzoT=d)@^bzjY;oBw_F&AI0q zt8a||O1t1Wr!xQ48|3eK6teIf3<*Gyu2+vKqH-ef!)0nBh>UtLt^7=s?ut~orl?!a z3vm{RSkN3riV#g>EI>vY&bo@T4T_OOQ`gb7L0gI%At*~xJ#=Fqlp9cd(nh{hetN4e z(^dAk{kJ-pHBUai{$&-Zu+f|$e4=^tBFtzO-n0QD7YGrUnAE{=w@H;kk3&(HRUbIl|Y}U_G!&^ zr#X$e?PKmVv+1>2k<*OH-7#@&aC#bu>UI?FqjA{gc zEJrK;EJ^cf^=2AVMi69Tc^O8u!+_2F=gfgpCJmWE1mO;}p4gr?ql{b2nh$(`3evb* z5w!N!Fo8TjP22MQk6H-1%YUW0jTg0lDrq=W;)m?fh1b9n#m273PabCN(zwP75Lg3Lk~aI}mzCSpJ*EF*{YxHvVV zR5iS31zKilc$a((A4Nb}^-#l(D2-KeSH#edl&W_KJuo#vEKSDI0K3zJX)$D7NN8en zdO1q+A|*rw>EuA$AUQ~3j1hR*jAlm2XlV{@uq6{_`T5I~da+&RSIt2%9+N>rUUi>6 z6H=8=XfgvQFcc#Ib#v8?hdC~=uUVD5Hy@KQZF5B|S)Xw*+C(iW|7{(fsNULiuFnMnO8%%i+XoD#>5JYM-un zq~lc-z|OhJe(j21y=JSmF5J5AIT-!5D}DhOhsp@*yI|rg4&Vc#+Y$Gxaz`u$$f{-Y zWsh*X;QEV+?3oe9^WsAzEQ5M_v!24KqxNFylDBZhBjtMvF1!xDM^osSb)+l9S6kZ{dS=4i00aY8N z&cMevO2N`A*1uY#*gUqp%Y(`MWgh~fHiV0W$2Wot5WT(?iKo(~=xKQ`iDw`h@k~%X zfp{j?^!ipKUI@a%dy+hZzK;0Bh}!3~>Iwi5vHS!O7N zJ8RfIFdKYw;PZ}n_c z5Lf9HRyC#B0)etXS-fsxtB;K*O2n9)xByP)k-oTWi?nxl9T7!e)iTLfF}j6#!%Bf5~0EDo@O@e*Wfnlbs-s5g=ELx~AHA!KK0(!-vz(71yWM{b}kir>4+ z@1E|kPmbg?_gl+FLSv)r(*MU_Ktp?rxt^%Am3om)lLjhk2O3C)$2^%hh27!JH%ngKUj z`(H2D{F`sk`qzsZzvAWdJjpUNrt#yY3kj6Blw2W>NV;svbax|xO2nCChp5UvcQ@*Z z2W`VaplqGf-BfIyN##MDD+W8y`qIc_k8C3AVxAc^$GH{0VJ*tDLmL7LPA!%Gzpix%Bx)22=>2XPV zQj$I@NuQRakF5(JhO}UdVD$?=1m6P)$Rv-#?<&80?e&eB!&X2#LyZNHP1~oee-uSe z$GGBA36T&wX+&l`fi5iHQ*f=g8VPwk_PJms92=_W>khNQeRkpc2oNpvRNWR3)vh)yNjAlS#SAAjC^B zm42z1J-!K2cQfn#=3Zf9mDE>&;&~4h{fkWNr1or6=3QAI{zQb|=>UjVQ!$oqW~jqI zm17{Dq@Dy33M)Nr(WYc8<>>m$Z7U|p;(ds^|FAJhx4PgM3)>M%^RE19>`NGZyX^0r ztw|`iCgI|(NyxV*;Zj?ZP}!P<#@2*WG|iKn8zh7L*yTTZJSG4KOs095?sI76YghZ~ zc}4{Dftg3?U+b3Im9w(&0k^w86s!+~bE1m4aGbtC6h;QFS z>PI(4mFmU%SKa#leWw2RnfgEVnYukDQ7P`^V_9UMIYqeLN*nP*rm_9y(jz;_kZUW#B9(b}p z&XNz7V4Y{G3QiJs+20;xO!Mcnz0=d9lQ+%%ad0=eNbsrIp8;YL#kUkw1eAuEiixJ| z@*h2g@lBn>%tme;O&+*u94%8Yd?TsUw2T4>y9ri*C^dN4lRj(F$2hPpCN7dlpBN$8 zn%^Nw5@x}aNhWG%M&dQ^C-F^mE6t|$L|TR+pnv&5#D^n}1AJIH=TAq-Hz-)bVtacF zmP&~+r?;`Wx!LyCX(Y8Yh==GU$wxwX7iAf2M3e$8E98WlA7JQczcQv(SN=klh&(>C zalp>or_m=G{df{Nik^<~afB{m6)M_cK=AZg8bWiKjR<)(doLdT6pW{2I?*vY4+P3< zW+v58#9d_dq1fUx#Q?qt?En!jb;nWq*51%4^tTe%g=H!59|3XU{_Q`}uS2lbf>>%E=>;@>Hr_B@Y(R6QwYJ zA4jNDR4Wp=f(nKB+EqV#m-vE>rS#i(2ZvbhE*WA8{L?!>Jv+KM?4O_R?ZdzO_$0C{ zDP#Lqp!f5DKIn)jfa@U-47_XUDQFi=mdOE@5(ZzO7H9<>qKDDY0FwNIHLJ*>8vqGN zR}5e>ND&MjY{EN2Q&5=v1jScjae=f|SCfUy#lOnh_?K2dmiDbPgl?JKR3uJOUaEq( zD7Cr3nIo;0+21RUYefP`9O?+=&c^ncNq3k0eGvI@ok-H&d1=>jpl^yNtF^A=R_M2O z!j~dzCnSDaTeYy>y7C*IOMiP;KL6QPk~_-pt^`?^KR4vhO$6pEvNarespx);w; zJW6>LPgoBGlAcMN>ZDkxc16Wu?T2+lI%~vdsSB(Mv?h zN}%qTM#1>zSWG21e9@-673{u((;%c#k3r0oPcY&D2un9(?2T#B;l;NRc@BHcPyi|q z7>dyn+O}>oU(_f2z8D9P=dfsi0#MYa3><5HGGElE41=QifXHG-1QJwKsScxX@%Gfw zbzOZzlq@F5e~SXu>^JJ`6$#!H&($=r4^w=Hu!b1`@4VqUjlhJjEu{-Y?}2&@2@0C>dQ>D`Z5!(zRX0cFEi2V%S<#{-9kZ9Uq(>Y zml2fpWdvn?89`ZJMo`k~{zyUMdy6DVeeRsB&z+O?xpT5UcTU#l&Pj^7T$0r1%D?(t z`B$GS|LSw)Uwy9pqnKBgB;WA(t-a{js!NZp*q~^5Jv@8r%JZu(J-;gEcfS1@+n-LX z=5%V`+~URGa$DQ5=zMD1*-o>Nix#IV(@|*7}m%nA=?L`ZZ z_Q7MW=PEfV3T=Uw6W@MV%H}!v>s4u+_mpkk)57MxMZ7ovsSm>#r+5j~EGJ=p0u0IIpQgqG+67+~JF zK^D@90B0h9ExB1^@6AjyCqz$(x51>EtC2H@!}C{YV^Xc09zoaOxkvx~(aA*xjWpB~ zk!c^JPam=10AfI$zr7XrnTIwSlEcX~$HSVxIb6=+ckeHbk4_GewJV8IO^!b9RNp+P zW(M1Yp+$3TlFW>?DTqAl;R1r$1<)B;vUB0v(h%_;5}0I{HN|fQhv;%)dQ4O$P5-k;QfJ|{@r~lZ$ME_;crA>! z+1gRVqo&e?EB4zp?gAIMiGO+Jj_{u;=)TjJ!Oj$P-h>9BC18Ujt4?dNQ_C=Bg-p+) z*i3I>lnU}|>Q<+)dHVOj4V)dGOM_ulQ|$?FN50@)(2f&)lRM?R4gWo8oND$6?UB-w zC%b1png zUEuo^lou*v>;c$-oG&!sI8j6hyMSDYLklUM77Y^F+uZC=Dq`*Y=QJ2D9Oy1=Dm*1D zGvzZDB~Kaf(Zu5KIBuc$?;l!19lw9@_}gQ&^AV4TT2{aZ)niQZ3=O%-Iv?nd(DNwj zyVYRMV7}zx{9DlF>aU#q3i&Vc5PeWO=r7Uhvke8>Zs!UoK+v3iwA4o8ypaFMzgMu) zbb5;k%nbs=BB{#~*uh#C5hzF`1iIwKyLrPL?Fi@n?+T^?2!-d*gA%#m2FuP895G_- zAR}S6a`46L;Ceiw`jKrN)JMl35%VAw6X-4u_B)Fc(KbNKdVc zov)(mmZ4fNL$y(cYO@U0RvD`8(gwE5aCx4IY{9Xu+E@Ct7gA-lsdB|!_#=F!VbQq#7ip$(2g{d(WxAXn z@#%72&gW?9`7GspB!+HYBIm6Tnw+;nXmWl*E!~B+tS_u(V__|u3v1b0Sj+ZejiocIFdE$s9)u)y(&*ZtM$nl^D{xi7&UUBxOgQ@!0gBn4ay3 z-MN*dq)A)EpW4JrC&5l&ZP6;2Lss1R2o+EjXAvoy{w|61L;+oZlq}D}SY{Dk9h!u5 z&b50+=^KGurROR^!HVHrb9EX9*@(W2Nbao2mvUuAbJ?92%`~sPNa}3HA1GVXM+Eab zzq}HnCIV3ty@XlBg-xTq6QQ_awp}?r!;b3sOalMyDZj}Xq!p^Im5@OkP2!~Cw;CLe z%?%+bW#84>jwVgZVA3UEGR=S}Ebe3IS-;32r~Ub5prIj_L`?puIVijeuwDtQXMt^( zz_u;0ofT;4u0X?jISqJdAE5c)a_nfds5D=WApq@JpxdR;Z3}c~B}%$0QL;Xdl62W2 zqW4s~>}b(DEnRlt=>3;2JBAhz*?k<5>&p=7^nxFJ@A>oKrLTyn6$YJ7`_iLNr+w*R zs55x!@wkA1;`1H{qz*`smCeoFNURZpe{!fxgo_9w7iQ>GM}RpfQSl1SHdYO$M@WO|qx zlw`Ica~3fh4mWcH41>kZ-VodeB9xXBy4c+?1H`oC4mW(c8#>e)XOetE>Xk3A0h`YT z>^e1Ev>bmBuM$r&s9NQjk2{3qW-a{swUCy}hoQMuN(6%-^}|MvXWg(`l6T{ynx7Jg z)F-JqO??5W+{8h5#GbPO)CpY6?JPz`oqBZ)=m1<^w8T$WMWE~{QiwFKS{;*;MXmPDt~UD1$R^!p z77@K?j=}JWyKZ)VTsA608A6Y|VN|rwuU1$Y8Is_OHf(y-I^nHl*tj?-%zWZ3?tYOS zYXZm|S9Y2SBy(J)KTIgq!`d;zJ3Q3_MaNPxjY#zD)vQRYWlPLRzJoEy3ND)ST^E;d zTwKC!aS5lzC0rJla9CX8ME%>kJzL%V!cteiu++^jEOqe-&pe@z?slryh2OjMPp@(UwBj#*E`5{4ISbybmQj*- zwJ#+!OaC5r6>1^;-lc!ULo^Qt%mamaP+<@~aauG8V9tyDXRp)dal^v#c#k}=qP<`v zQg_u4@rup7NIDmXzg)BrERl3*Dc`pM>{9PRt}pvMstE10s_YDfT?$u>#yh%xBwl}! zj*x}|HAmC3ikr(T$0?#PG*3%2%|hIP$Q(Y7(<|rL&+pET4@`#9<~935t>SjvU&vUM z44j$FF-yw*fl<;GgGcAKtBenGOt}fwg4AfL)*f_RGIo^cJuC1E=YKK|n_-%Q1gKnA z>SEs4D_6a>_wny>@`=O(T7yhFP9dja){&<{oK1o>jB|{Oj*2d}T&lT59BEKk0Hp43}TclLK8Mh5<|onRsKna zQ5e%msRympgDmx6DfPfhaaQS#r@q;OZdvbDHXo^u{QRhh=8%)3{IXk%s7?o~1pDyR zkGA^JQ9rus$GZBlp?+*$;ZfEc{VYd!|1$Ng*tQMPwgoNQs71n5GNO74P4v`6k0rK6 zq9-9cY9fd1+9208obxo695oiLxulz))QzkxaV8uE>0Vxq@Mbn8U;7}?AjSE2Z{vlx z;RZfAOuHE;c&Md8KsNs8#=eJt5-rem=6a2QKRB%>R)c!%@K>fqMm?tRV@onEv7-#W z1pR2_@JpHx>Hr)mxgGp`PzT{u$z8|K2X!EhmE2AIe3&gg7z@ju(M!7CAmzdwl|h@| z#i)5?Wss_vt14LVL08Ozp@bSQydWv486K_w8;XmlR9r-*;vy;)7tvG11wV8@8bVW} zn}``5ew%hSJhh>o+E68{qkVN%z;*RwL;YABQn=XG!jR#9n6$Oo!q#$g4AxrWdkORe zytTFb1xm4?mczd(Odg(#t;fuItCmB?gUD#lE!N?=g>qen&{}N0thSALr8dpV=5jY9 z+!eZ6IV;^j{uYdkfswIfWGuz7E;sXfTuWV`)0CYgqt3FXwlb#l6eWabEXqv~mLTkz zi!pppm2Z@sqdDIuJW5Ltk=#6PAQzO_ar^$jwxA5v1!Z7eQ10l0GSOPohm~OHxVL&@ z{f;Kz6kw~v`W=YA2MavS+6ibQCeVlpHi~`U!1s;veGA{WbG}XZ2l#$~?-{>VvuT6z z0;4}1Y;KGyo;5ol+58~mO&Tro{v~%+9^MCf?JXFf=m;zV{b+|9h^$g_h+#kL=ua@b z1vSaUU)AC>toZ-jgFLHMy%*dlPwad&!%8h{0jIcoH+^jjPwvG9tORoK_1r;_FA43S zdv0;#Z@)sgB@FvgAzWZi2Rvqhn%2w{Drp^;!Sbg=b!eXIPUDDfk|Q@shqx%e4Q?TA z3cK6XJtp40z02mhOaA}LeP2ky>xx$a4};Q=XYQAujt-9B_m<@3(SgF1)*L2kfM}ZO zIqH6WiK?i^p&}`-tq6-9Hk-c%FI)iLjxchU$6qXpfx{T8C5`SPd?DD!h%4tatzz6) z(peqi?R!Wke52j!Zed^sm;X@Wdf=L!|KK+^x;uHJ;TT1>Yq=|bs>PtxOCJkitjPI= zLKz!ECuJcSh=~`Xzs+J6GRg|^8~j=M$grtdAe(q(2WGtrdaR>ZHlWf2lt()$5N-z{ zSM3qGYF7ciH9lcbyHJ3LQ6ig}i)Qlf^jscbprxvpKwkv(d;^ri>fMvEmoyN+PmMJs-f>KH3mqa6Z*eJeTP74Ep*x6`TbY`UcEl0xCvgYuK+B@ zP$8_`yo(5Wyifi(U+`bw$3QjJd|tFH-1n(*(po#TC-bHyycwtmYPtx@wWEXsbkmZ! zb(I;0CS;lh3-E#X`h#hT;+MSx*PPNV=y{mq6PtMAFzp`!xfo}MpS+Hf+p2nciadF?bLvH`B z;gf-d&BNovw}%*_?(A&uL;uzL*RK!H+<-nCN82u}9r&vydG=tf`BP91gx~15wXm@z!kKajiL3Rat3wK&v(dKLiJL>&@DBKwRZA9V7BrAFfOZfnOPA3Vlz)G6e)Q(#@SuNma^ZGs1xOG}0O-tS z;W!J|Fydr+f3d0X*622CrXKvuI5Wt32iEJ6m?KDUVDFEZ_D5pxkJyb#e^9O^Pvly# zEZ2f1xn^3X@xhMsma*vQ;IBK%#aN`nJ^kYcB^O|yf;6sH-jU~(*R<;>kYjim6$?AL zwKN2&6k?P`VG#7|_j$$f*Oi`e{H(p>sGdbqG;g67Dz5s0(eQS|rc9atqM?D0zNDyr zX!r`RDgH6>Q(NCYaO$E!rIuc*eo>gp);Vi`IPSUeFygJ9(T@9+sGKur#kiP4#2y4W zlbl+T``v?+{>@b-AgRI5ca&jofUuaeHDi1=ZaM-EtiT~3{7x|`0b z5m5hCURL|-z7e`wELhPLA@&~K5^dOXe2;6#q6o0d4RP4rDXQV^qOp#uG<9}Bp+W~f z^G^q@V;FsmG8nPmqHwdzPQM*0z?P*gw9^I?lBhzAIyp1{)nnYw425dx-8zhTwqe(v zA?G&|4RTb=9jtjOBti!Cf+ajBZp5E?^#7e%@i4%$Iyv8Z=Wm2P{FNx!-(JToV4bI8 zBCt)v#B{C@ir-ux(g}^;eIPZ${`AqFn~*eza`oD9j+zkCN_%5a5zh z8B+T3q;ec)nCg{R(uFb6mkfEnXird>RiM0zc~DeI#hiJXMruUg2L+Y<9t9a!D$n=# zjt~2%hi9-sKEK#I*$4d+pL0<3P8*18;(5Dw(VdUR0`bqc3HiGl|LAV~d)M>#uIKMv z&)>VA|315(zv#;zbn#pD!ZajN-Dp{|rP`lf%WV}di|Umj*-xwu0A!6{1g_y5#Exs( zauwF%Z@=Rr+Z*+L1)X|DH85?>!g&uCG(5b+$Nx3t696(r{J##SCpXL|1R7Qd1H8QE z#{8dDscgx*&y%zj|e>_0dcD;`4b;%F-cir_iTyN9$w#X0o zciU|P7C_b}Kj2^bTtrwFYd>7-9SQAUX?Va{VE!)VdwLo^`v6t5H&|d)ROHJFI8b16 z2DeFU9V?tzBIZ1=3xm$*FWYo>!b=SLa*45AF441t4eE|@Ik!PC=P)7j(^`&qY&G%l zP3GWDW=%YJgKyoSqv&OH<%5ECNjxlK@&oEf+^Ft%W*oV+L~8BiFE^p0+zBt!dYjOc zUb*C>O+L`)mwa~UXZxz|xhY`ViTrN+i8Pnd+af9!wP&;qit`BR%uN^+fv-)57MTz&GAUYQ zVzl5t4{w@Vh7)hVuVF)C@g3Le(89~`YDuvACTlyZpVV#^#x4jQy@wNyFqa6uZXI6& zO)m2*f^}q-a-%s?4x@Uyqf&{H;iMjwP3jSwS!^0r+>s`QL5iy`V6-Wn4R)ZX&98R5 z?d(K2ry`tFk(^Vh@}N}iX37j>KGlR(40%{f_0gIeqcz7`G8~fdhmKbK(I#PwaCVX0 z7SCH>Qvyhwsvqi4r+dzE|qa%00&e~*rv>JaS}4^G9a9 z)X2m!h{KX=N9dvOs3&1b$>m>!)hgny>&#RucbpO3V1b8ci2zZ?DJ`(j~gqAwDKCg{-n;JGiJ9#H66h>AR2+TIK#;UEn ziQ-^P4N!maTgAi={;Hu4)R+a&tkDOaKQD(M-uCkV-X8sO2mmYkpi6ufKXkf3QRnHx zU;`50yubtr^H99BI;LOED+=4WydT_QkdR7oNX#oa#Ya`43-7}r9WfQ*SW*J7!Co@8 zxj>!10be3s$3b`#OvgEk*@0v3nO~Te&!3waEY!kc7kciLFbKv2skb{l-DieUH#5PQ zj3d2H(Y}R@Xpkut83W&K)r?RAJIe+pK#qnAx_SMP0in1%X%2!(pM1=P9^Ukmq<;b% z=lgyX_t8~M9Wc%4;f3;rI7cD6bu2=PboVoIC1?wv@DXha$DtYOj3pO)wY0m*62-BJ zBO;c-qMwxqg)qByesG6>(wGZ#nz}d=1D;mCPJ_GfJfGg&$Y(Cyz>VF+`BL?8=6?N( zCpGCy@A-3_$?4ax0skF1_!PhjUPH+w7)1F)Axg$DoaCdQ@lG5)>(~Wu8hq;CAbDIB zx{1bPw$epPN-&;`0-wnpa_C86G9`t=u*X-SAJd?JO`O6&!In^;Ff^T?AZO?jCs;mL zhKIzj^(6enU0HZxjF4$rON&YM(6+o5lj`}Lsrgz0igiV;#8SnT@W_RMy%!H(C$Ua; zF|rBO9&#?U`K%31+5CvWCo4(qf+w+?@t0A}V~@x)vWFLT^M zMK1f1xn@ehf20MNbd^#tDQ5G6T~MAXp)PP+h>XJd|78H%@gMpi1^WJg9P{J9FgymZ zLvO$yh0H6utWYNGa3k{>qFIwz>OQQHARl0|4nN|BLM@f+oUQEt`QQH!wRCeG3Iy2z z1dkp1|EWQDI-LdZ|1S-`y$JpPTLbqtHcH`YhJ@-2j#PW zU!OFfq@`tef9=Yf4xd!`i*}iH#kfCz#UZ5-fu$s727n5AfbUn!S=${S_DF4!| z@UF>*NdKM;v@75+%vWP5?l47;L~-6R))WA1aYqQbiomkQ6Xmi23=ivmVdZdKTmlVP zydtUl#)^U`H%5}*TF;yvJING$4C{UZJqEyz%agElBFeieBqX>~H3@6uklcO$&U&PCr#q!n zcQEzXrtP?Q+oT%BAw&oxR<=Xdb_Rdvt=vGmA4W zKAav(FQ!)?E)HQUMAT|(Z{D5s-@Sf)et6M`UO(mzYfH4>Rk>(I z<=IvmmFj0Lr))VE_m4iDEsTTSLp zaLM{Qt&*4~;-!TSP$7bNlSBGf(`XETv;$+luQ`7A=3?)SU(q0YYZY;JbvGFUrP+Qk z7~vr^Kh#67Y7_?h$sM{eo`tvJz5n937r)gm|EqRYtM2xGtJUG>Z!fM$f>Zkqe!sZo z_P@}macD*GqFEDQ*d1r#a5@NC{^fuDmi`uB)dj>P4PjoN!@>yvqRxB)tYW~`|N1Sf ze}(`4%@Oc~@X0tNupp8LBd9b3d@|YqWd)jq(+!|}rXg%*NtzS03+hG*+9>vw!_zar zQgLadt4ND-i=A5izE-*(k^^Sbr$1f;d^U z_1I;2HM_=6|MlAk2QkZ7fuÎ}6wF`?|E5z*m7LC$x0=tqov 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 0) { res.instance_object = this.top_obj; @@ -62,8 +53,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) // this.invoke_obj.outlineMaterial.outline_instances_reset(); } } - else - { + else { res.geom.push(this.top_obj); } } @@ -75,10 +65,8 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) // Digit sets control classes // =================================================================================== - class BoxSetControl extends EveElemControl - { - DrawForSelection(xsec_idcs, res, extra) - { + class BoxSetControl extends EveElemControl { + DrawForSelection(xsec_idcs, res, extra) { let sec_idcs = extra.shape_idcs; let body = new RC.Geometry(); @@ -106,8 +94,8 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) body.indices = RC.Uint32Attribute(idxBuff, 1); let mesh = new RC.Mesh(body, null); mesh._modelViewMatrix = this.invoke_obj._modelViewMatrix; - mesh._normalMatrix = this.invoke_obj._normalMatrix; - mesh._material = this.invoke_obj._material; + mesh._normalMatrix = this.invoke_obj._normalMatrix; + mesh._material = this.invoke_obj._material; res.geom.push(mesh); } @@ -120,8 +108,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) return idx; } - elementSelectedSendMIR(idx, selectionId, event) - { + elementSelectedSendMIR(idx, selectionId, event) { let boxset = this.top_obj.eve_el; let scene = this.top_obj.scene; let multi = event?.ctrlKey ? true : false; @@ -133,13 +120,11 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) return true; } - elementSelected(idx, event) - { + elementSelected(idx, event) { return this.elementSelectedSendMIR(idx, this.top_obj.scene.mgr.global_selection_id, event); } - elementHighlighted(idx, event) - { + elementHighlighted(idx, event) { return this.elementSelectedSendMIR(idx, this.top_obj.scene.mgr.global_highlight_id, event); } @@ -158,10 +143,8 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) // Calorimeter control classes // =================================================================================== - class Calo3DControl extends EveElemControl - { - DrawForSelection(sec_idcs, res, extra) - { + class Calo3DControl extends EveElemControl { + DrawForSelection(sec_idcs, res, extra) { console.log("CALO 3d draw for selection ", extra); let eve_el = this.invoke_obj.eve_el; // locate REveCaloData cells for this object @@ -192,8 +175,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) let protoIdcs = [0, 4, 5, 0, 5, 1, 1, 5, 6, 1, 6, 2, 2, 6, 7, 2, 7, 3, 3, 7, 4, 3, 4, 0, 1, 2, 3, 1, 3, 0, 4, 7, 6, 4, 6, 5]; let idxBuff = []; let vtxBuff = new Float32Array(nBoxSelected * 8 * 3); - for (let i = 0; i < nBoxSelected; ++i) - { + for (let i = 0; i < nBoxSelected; ++i) { let box_idx = boxIdcs[i]; for (let c = 0; c < 8; c++) { let off = i * 24 + c * 3; @@ -234,73 +216,66 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) let mesh = new RC.Mesh(body, null); mesh._modelViewMatrix = this.invoke_obj._modelViewMatrix; - mesh._normalMatrix = this.invoke_obj._normalMatrix; - mesh._material = this.invoke_obj._material; + mesh._normalMatrix = this.invoke_obj._normalMatrix; + mesh._material = this.invoke_obj._material; res.geom.push(mesh); // console.log(body, mesh, res); } - extractIndex(instance) - { + extractIndex(instance) { return Math.floor(instance / 8); } - getTooltipText(idx) - { + getTooltipText(idx) { // let t = this.obj3d.eve_el.fTitle || this.obj3d.eve_el.fName || ""; let eve_el = this.top_obj.eve_el; - let val = eve_el.render_data.nrmBuff[idx]; + let val = eve_el.render_data.nrmBuff[idx]; let idxBuff = eve_el.render_data.idxBuff; let caloData = this.top_obj.scene.mgr.GetElement(eve_el.dataId); - let slice = idxBuff[idx*2]; + let slice = idxBuff[idx * 2]; - let vbuff = eve_el.render_data.vtxBuff; - let p = idx*24; + let vbuff = eve_el.render_data.vtxBuff; + let p = idx * 24; let x = vbuff[p]; - let y = vbuff[p+1]; - let z = vbuff[p+2]; + let y = vbuff[p + 1]; + let z = vbuff[p + 2]; - let phi = Math.acos(x/Math.sqrt(x*x+y*y)); - let cosTheta = z/Math.sqrt(x*x + y*y + z*z); + let phi = Math.acos(x / Math.sqrt(x * x + y * y)); + let cosTheta = z / Math.sqrt(x * x + y * y + z * z); let eta = 0; - if (cosTheta*cosTheta < 1) - { - eta = -0.5* Math.log( (1.0-cosTheta)/(1.0+cosTheta) ); + if (cosTheta * cosTheta < 1) { + eta = -0.5 * Math.log((1.0 - cosTheta) / (1.0 + cosTheta)); } - return caloData.sliceInfos[slice].name + "\n" + Math.floor(val*100)/100 + - " ("+ Math.floor(eta*100)/100 + ", " + Math.floor(phi*100)/100 + ")"; + return caloData.sliceInfos[slice].name + "\n" + Math.floor(val * 100) / 100 + + " (" + Math.floor(eta * 100) / 100 + ", " + Math.floor(phi * 100) / 100 + ")"; } - elementSelected(idx, event) - { - let calo = this.top_obj.eve_el; - let idxBuff = calo.render_data.idxBuff; - let scene = this.top_obj.scene; - let selectionId = scene.mgr.global_selection_id; - let multi = event?.ctrlKey ? true : false; - let fcall = "NewTowerPicked(" + idxBuff[idx*2 + 1] + ", " + idxBuff[idx*2] + ", " - + selectionId + ", " + multi + ")"; - scene.mgr.SendMIR(fcall, calo.fElementId, "ROOT::Experimental::REveCalo3D"); - return true; + elementSelected(idx, event) { + let calo = this.top_obj.eve_el; + let idxBuff = calo.render_data.idxBuff; + let scene = this.top_obj.scene; + let selectionId = scene.mgr.global_selection_id; + let multi = event?.ctrlKey ? true : false; + let fcall = "NewTowerPicked(" + idxBuff[idx * 2 + 1] + ", " + idxBuff[idx * 2] + ", " + + selectionId + ", " + multi + ")"; + scene.mgr.SendMIR(fcall, calo.fElementId, "ROOT::Experimental::REveCalo3D"); + return true; } - elementHighlighted(idx, event) - { - let calo = this.top_obj.eve_el; - let idxBuff = calo.render_data.idxBuff; - let scene = this.top_obj.scene; - let selectionId = scene.mgr.global_highlight_id; - let fcall = "NewTowerPicked(" + idxBuff[idx*2 + 1] + ", " + idxBuff[idx*2] + ", " + selectionId + ", false)"; - scene.mgr.SendMIR(fcall, calo.fElementId, "ROOT::Experimental::REveCalo3D"); - } - - checkHighlightIndex(idx) - { - if (this.top_obj && this.top_obj.scene) - { + elementHighlighted(idx, event) { + let calo = this.top_obj.eve_el; + let idxBuff = calo.render_data.idxBuff; + let scene = this.top_obj.scene; + let selectionId = scene.mgr.global_highlight_id; + let fcall = "NewTowerPicked(" + idxBuff[idx * 2 + 1] + ", " + idxBuff[idx * 2] + ", " + selectionId + ", false)"; + scene.mgr.SendMIR(fcall, calo.fElementId, "ROOT::Experimental::REveCalo3D"); + } + + checkHighlightIndex(idx) { + if (this.top_obj && this.top_obj.scene) { console.log("check highlight idx ?????? \n"); return this.invokeSceneMethod("processCheckHighlight", idx); @@ -312,10 +287,8 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) } // class Calo3DControl - class Calo2DControl extends EveElemControl - { - DrawForSelection(sec_idcs, res, extra) - { + class Calo2DControl extends EveElemControl { + DrawForSelection(sec_idcs, res, extra) { let eve_el = this.invoke_obj.eve_el; let cells; for (let i = 0; i < extra.length; i++) { @@ -397,75 +370,68 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) let mesh = new RC.Mesh(body, null); mesh._modelViewMatrix = this.invoke_obj._modelViewMatrix; - mesh._normalMatrix = this.invoke_obj._normalMatrix; - mesh._material = this.invoke_obj._material; + mesh._normalMatrix = this.invoke_obj._normalMatrix; + mesh._material = this.invoke_obj._material; res.geom.push(mesh); } - extractIndex(instance) - { + extractIndex(instance) { return Math.floor(instance / 4); } - getTooltipText(idx) - { + getTooltipText(idx) { let eve_el = this.top_obj.eve_el; let idxBuff = eve_el.render_data.idxBuff; // let bin = idxBuff[idx*2 + 1]; let val = eve_el.render_data.nrmBuff[idx]; - let slice = idxBuff[idx*2]; + let slice = idxBuff[idx * 2]; let sname = "Slice " + slice; - let vbuff = eve_el.render_data.vtxBuff; - let p = idx*12; + let vbuff = eve_el.render_data.vtxBuff; + let p = idx * 12; let x = vbuff[p]; - let y = vbuff[p+1]; + let y = vbuff[p + 1]; // let z = vbuff[p+2]; if (eve_el.isRPhi) { - let phi = Math.acos(x/Math.sqrt(x*x+y*y)) * Math.sign(y); - return sname + " " + Math.floor(val*100)/100 + - " ("+ Math.floor(phi*100)/100 + ")"; + let phi = Math.acos(x / Math.sqrt(x * x + y * y)) * Math.sign(y); + return sname + " " + Math.floor(val * 100) / 100 + + " (" + Math.floor(phi * 100) / 100 + ")"; } - else - { - let cosTheta = x/Math.sqrt(x*x + y*y), eta = 0; - if (cosTheta*cosTheta < 1) - { - eta = -0.5* Math.log( (1.0-cosTheta)/(1.0+cosTheta) ); + else { + let cosTheta = x / Math.sqrt(x * x + y * y), eta = 0; + if (cosTheta * cosTheta < 1) { + eta = -0.5 * Math.log((1.0 - cosTheta) / (1.0 + cosTheta)); } - return sname + " " + Math.floor(val*100)/100 + - " ("+ Math.floor(eta*100)/100 + ")"; + return sname + " " + Math.floor(val * 100) / 100 + + " (" + Math.floor(eta * 100) / 100 + ")"; } } - elementSelectedSendMIR(idx, selectionId, event) - { - let calo = this.top_obj.eve_el; + elementSelectedSendMIR(idx, selectionId, event) { + let calo = this.top_obj.eve_el; let idxBuff = calo.render_data.idxBuff; let scene = this.top_obj.scene; let multi = event?.ctrlKey ? true : false; - let bin = idxBuff[idx*2 + 1]; - let slice = idxBuff[idx*2]; + let bin = idxBuff[idx * 2 + 1]; + let slice = idxBuff[idx * 2]; // get sign for the case of RhoZ projection - if (calo.render_data.vtxBuff[idx*12 + 1] < 0) bin = -bin ; + if (calo.render_data.vtxBuff[idx * 12 + 1] < 0) bin = -bin; - let fcall = "NewBinPicked(" + bin + ", " + slice + ", " + selectionId + ", " + multi + ")" + let fcall = "NewBinPicked(" + bin + ", " + slice + ", " + selectionId + ", " + multi + ")" scene.mgr.SendMIR(fcall, calo.fElementId, "ROOT::Experimental::REveCalo2D"); return true; } - elementSelected(idx, event) - { - return this.elementSelectedSendMIR(idx, this.top_obj.scene.mgr.global_selection_id, event); - } + elementSelected(idx, event) { + return this.elementSelectedSendMIR(idx, this.top_obj.scene.mgr.global_selection_id, event); + } - elementHighlighted(idx, event) - { - return this.elementSelectedSendMIR(idx, this.top_obj.scene.mgr.global_highlight_id, event); - } + elementHighlighted(idx, event) { + return this.elementSelectedSendMIR(idx, this.top_obj.scene.mgr.global_highlight_id, event); + } } // class Calo2Control @@ -477,8 +443,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) const GL = { POINTS: 0, LINES: 1, LINE_LOOP: 2, LINE_STRIP: 3, TRIANGLES: 4 }; let RC; - function RcCol(root_col) - { + function RcCol(root_col) { return new RC.Color(EVE.JSR.getColor(root_col)); } @@ -501,10 +466,8 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) // EveElemControl. // get_ctrl property needs to be set at least at the top-level object. - class EveElements - { - constructor(rc, viewer) - { + class EveElements { + constructor(rc, viewer) { if (viewer._logLevel >= 2) console.log("EveElements -- RCore instantiated."); @@ -524,15 +487,13 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) GenerateTypeName(obj) { return "RC." + obj.type; } - SetupPointLineFacs(ssaa, pf, lf) - { + SetupPointLineFacs(ssaa, pf, lf) { this.SSAA = ssaa; // to scale down points / lines for picking and outlines this.POINT_SIZE_FAC = pf; this.LINE_WIDTH_FAC = lf; } - UpdatePointPickingMaterial(obj) - { + UpdatePointPickingMaterial(obj) { let m = obj.material; let p = obj.pickingMaterial; p.usePoints = m.usePoints; @@ -541,13 +502,11 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) p.drawCircles = m.drawCircles; } - RcCol(root_col) - { + RcCol(root_col) { return RcCol(root_col); } - RcPointMaterial(color, opacity, point_size, props) - { + RcPointMaterial(color, opacity, point_size, props) { let mat = new RC.PointBasicMaterial; mat._color = this.ColorBlack; // color; mat._emissive = color; @@ -564,8 +523,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) return mat; } - RcLineMaterial(color, opacity, line_width, props) - { + RcLineMaterial(color, opacity, line_width, props) { let mat = new RC.MeshBasicMaterial; // StripeBasicMaterial mat._color = this.ColorBlack; mat._emissive = color; @@ -582,8 +540,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) return mat; } - RcFlatMaterial(color, opacity, props) - { + RcFlatMaterial(color, opacity, props) { let mat = new RC.MeshBasicMaterial; mat._color = color; mat._emissive = color; // mat.emissive.offsetHSL(0, 0.1, 0); @@ -603,8 +560,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) return mat; } - RcFancyMaterial(color, opacity, props) - { + RcFancyMaterial(color, opacity, props) { let mat = new RC.MeshPhongMaterial; // let mat = new RC.MeshBasicMaterial; @@ -623,15 +579,15 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) return mat; } - RcMakeZSprite(colIdx, sSize, nInstance, vbuff, instX, instY, textureName) - { + RcMakeZSprite(colIdx, sSize, nInstance, vbuff, instX, instY, textureName) { let col = RcCol(colIdx); sSize *= this.POINT_SIZE_FAC; - let sm = new RC.ZSpriteBasicMaterial( { + let sm = new RC.ZSpriteBasicMaterial({ SpriteMode: RC.SPRITE_SPACE_SCREEN, SpriteSize: [sSize, sSize], color: this.ColorBlack, emissive: col, - diffuse: col.clone().multiplyScalar(0.5) } ); + diffuse: col.clone().multiplyScalar(0.5) + }); sm.transparent = true; sm.addInstanceData(new RC.Texture(vbuff, @@ -657,31 +613,32 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) return s; } - RcMakeStripes(geom, line_width, line_color) - { + RcMakeStripes(geom, line_width, line_color) { // Setup width for SSAA, scaled down for picking and outline materials. let s = new RC.Stripes( - { geometry: new RC.StripesGeometry({ baseGeometry: geom }), - material: new RC.StripesBasicMaterial({ - baseGeometry: geom, mode: RC.STRIPE_SPACE_SCREEN, - lineWidth: line_width * this.LINE_WIDTH_FAC * this.SSAA, - color: this.ColorBlack, - emissive: line_color - }), - GBufferMaterial: null + { + geometry: new RC.StripesGeometry({ baseGeometry: geom }), + material: new RC.StripesBasicMaterial({ + baseGeometry: geom, mode: RC.STRIPE_SPACE_SCREEN, + lineWidth: line_width * this.LINE_WIDTH_FAC * this.SSAA, + color: this.ColorBlack, + emissive: line_color + }), + GBufferMaterial: null } ); s.lights = false; return s; } - RcApplyStripesMaterials(eve_el, stripes, pick_width_scale = 2) - { + RcApplyStripesMaterials(eve_el, stripes, pick_width_scale = 2) { if (eve_el.fPickable) { let m = stripes.material; stripes.pickingMaterial = new RC.StripesBasicMaterial( - { lineWidth: m.lineWidth * pick_width_scale / this.SSAA, - mode: m.mode, color: m.color }); + { + lineWidth: m.lineWidth * pick_width_scale / this.SSAA, + mode: m.mode, color: m.color + }); let pm = stripes.pickingMaterial; pm.programName = "custom_GBufferMini_stripes"; pm.addSBFlag("PICK_MODE_UINT"); @@ -699,11 +656,10 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) } } - RcPickable(el, obj3d, do_children = true, ctrl_class = EveElemControl) - { + RcPickable(el, obj3d, do_children = true, ctrl_class = EveElemControl) { if (el.fPickable) { if (ctrl_class) { - obj3d.get_ctrl = function(iobj, tobj) { return new ctrl_class(iobj, tobj); } + obj3d.get_ctrl = function (iobj, tobj) { return new ctrl_class(iobj, tobj); } } obj3d.pickable = true; if (do_children) { @@ -717,8 +673,18 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) } } - TestRnr(name, obj, rnr_data) - { + RCApplyAttrToOutlineObj(outlineObj, origObj, setMaterial = true) { + outlineObj._matrixWorld = origObj._matrixWorld; + outlineObj._modelViewMatrix = origObj._modelViewMatrix; + outlineObj._normalMatrix = origObj._normalMatrix; + outlineObj._modelViewProjectionMatrix = origObj._modelViewProjectionMatrix; + + if (setMaterial) { + outlineObj._material = origObj._material; + } + } + + TestRnr(name, obj, rnr_data) { if (obj && rnr_data && rnr_data.vtxBuff) { return false; } @@ -732,8 +698,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) return true; } - GetLumAlphaTexture(name, callback) - { + GetLumAlphaTexture(name, callback) { let url = this.viewer.eve_path + 'textures/' + name; this.tex_cache.deliver(url, @@ -741,17 +706,16 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) (image) => { return new RC.Texture (image, RC.Texture.WRAPPING.ClampToEdgeWrapping, RC.Texture.WRAPPING.ClampToEdgeWrapping, - RC.Texture.FILTER.LinearFilter, RC.Texture.FILTER.LinearFilter, - RC.Texture.FORMAT.LUMINANCE_ALPHA, RC.Texture.FORMAT.LUMINANCE_ALPHA, - RC.Texture.TYPE.UNSIGNED_BYTE, - image.width, image.height); + RC.Texture.FILTER.LinearFilter, RC.Texture.FILTER.LinearFilter, + RC.Texture.FORMAT.LUMINANCE_ALPHA, RC.Texture.FORMAT.LUMINANCE_ALPHA, + RC.Texture.TYPE.UNSIGNED_BYTE, + image.width, image.height); }, () => { this.viewer.request_render() } ); } - GetRgbaTexture(name, callback) - { + GetRgbaTexture(name, callback) { let url = this.viewer.eve_path + 'textures/' + name; this.tex_cache.deliver(url, @@ -759,26 +723,23 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) (image) => { return new RC.Texture (image, RC.Texture.WRAPPING.ClampToEdgeWrapping, RC.Texture.WRAPPING.ClampToEdgeWrapping, - RC.Texture.FILTER.LinearFilter, RC.Texture.FILTER.LinearFilter, - RC.Texture.FORMAT.RGBA, RC.Texture.FORMAT.RGBA, - RC.Texture.TYPE.UNSIGNED_BYTE, - image.width, image.height); + RC.Texture.FILTER.LinearFilter, RC.Texture.FILTER.LinearFilter, + RC.Texture.FORMAT.RGBA, RC.Texture.FORMAT.RGBA, + RC.Texture.TYPE.UNSIGNED_BYTE, + image.width, image.height); }, () => { this.viewer.request_render() } ); } - AddMapToAllMaterials(o3d, tex) - { + AddMapToAllMaterials(o3d, tex) { if (o3d.material) o3d.material.addMap(tex); if (o3d.pickingMaterial) o3d.pickingMaterial.addMap(tex); if (o3d.outlineMaterial) o3d.outlineMaterial.addMap(tex); } - AddTextureToMaterialMap(o3d, tex) - { - if (o3d.material) - { + AddTextureToMaterialMap(o3d, tex) { + if (o3d.material) { o3d.material.clearMaps(); o3d.material.addMap(tex); } @@ -792,8 +753,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) // makeHit //============================================================================== - makeHit(hit, rnr_data) - { + makeHit(hit, rnr_data) { if (this.TestRnr("hit", hit, rnr_data)) return null; let txName; @@ -821,8 +781,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) // makeTrack //============================================================================== - makeTrack(track, rnr_data) - { + makeTrack(track, rnr_data) { if (this.TestRnr("track", track, rnr_data)) return null; let N = rnr_data.vtxBuff.length / 3; @@ -832,31 +791,26 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) // if (EVE.JSR.browser.isWin) track_width = 1; // not supported on windows let buf = new Float32Array((N - 1) * 6), pos = 0; - for (let k = 0; k < (N - 1); ++k) - { + for (let k = 0; k < (N - 1); ++k) { buf[pos] = rnr_data.vtxBuff[k * 3]; buf[pos + 1] = rnr_data.vtxBuff[k * 3 + 1]; buf[pos + 2] = rnr_data.vtxBuff[k * 3 + 2]; let breakTrack = false; if (rnr_data.idxBuff) - for (let b = 0; b < rnr_data.idxBuff.length; b++) - { - if ((k + 1) == rnr_data.idxBuff[b]) - { + for (let b = 0; b < rnr_data.idxBuff.length; b++) { + if ((k + 1) == rnr_data.idxBuff[b]) { breakTrack = true; break; } } - if (breakTrack) - { + if (breakTrack) { buf[pos + 3] = rnr_data.vtxBuff[k * 3]; buf[pos + 4] = rnr_data.vtxBuff[k * 3 + 1]; buf[pos + 5] = rnr_data.vtxBuff[k * 3 + 2]; } - else - { + else { buf[pos + 3] = rnr_data.vtxBuff[k * 3 + 3]; buf[pos + 4] = rnr_data.vtxBuff[k * 3 + 4]; buf[pos + 5] = rnr_data.vtxBuff[k * 3 + 5]; @@ -879,8 +833,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) // makeZText //============================================================================== - makeZText(el, rnr_data) - { + makeZText(el, rnr_data) { // if (this.TestRnr("jet", el, rnr_data)) return null; let text = new RC.ZText({ @@ -896,9 +849,9 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) this.tex_cache.deliver_font(url_base, (texture, font_metrics) => { text.setupFrameStuff((100 - el.fMainTransparency) / 100.0, el.fDrawFrame, - RcCol(el.fFillColor), el.fFillAlpha / 255.0, - RcCol(el.fLineColor), el.fLineAlpha / 255.0, - el.fExtraBorder, el.fLineWidth); + RcCol(el.fFillColor), el.fFillAlpha / 255.0, + RcCol(el.fLineColor), el.fLineAlpha / 255.0, + el.fExtraBorder, el.fLineWidth); text.setTextureAndFont(texture, font_metrics); if (el.fMode == 0) text.material.side = RC.FRONT_AND_BACK_SIDE; }, @@ -906,17 +859,16 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) () => this.viewer.request_render() ); - text.position.copy(new RC.Vector3(el.fPosX, el.fPosY, el.fPosZ)); - if (el.fPickable) this.RcPickable(el, text); - return text; + text.position.copy(new RC.Vector3(el.fPosX, el.fPosY, el.fPosZ)); + if (el.fPickable) this.RcPickable(el, text); + return text; } //============================================================================== // makeJet //============================================================================== - makeJet(jet, rnr_data) - { + makeJet(jet, rnr_data) { if (this.TestRnr("jet", jet, rnr_data)) return null; // console.log("make jet ", jet); @@ -928,8 +880,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) geo_body.vertices = pos_ba; let idcs = new Uint32Array(3 + 3 * (N - 2)); idcs[0] = 0; idcs[1] = N - 1; idcs[2] = 1; - for (let i = 1; i < N - 1; ++i) - { + for (let i = 1; i < N - 1; ++i) { idcs[3 * i] = 0; idcs[3 * i + 1] = i; idcs[3 * i + 2] = i + 1; // idcs.push( 0, i, i + 1 ); } @@ -946,8 +897,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) geo_rays.vertices = pos_ba; idcs = new Uint32Array(2 * (1 + ((N - 1) / 4))); let p = 0; - for (let i = 1; i < N; i += 4) - { + for (let i = 1; i < N; i += 4) { idcs[p++] = 0; idcs[p++] = i; } geo_rays.indices = new RC.BufferAttribute(idcs, 1); @@ -971,8 +921,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) return mesh; } - makeJetProjected(jet, rnr_data) - { + makeJetProjected(jet, rnr_data) { // JetProjected has 3 or 4 points. 0-th is apex, others are rim. // Fourth point is only present in RhoZ when jet hits barrel/endcap transition. @@ -1010,7 +959,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) let mesh = new RC.Mesh(geo_body, this.RcFlatMaterial(fcol, 0.5)); mesh.material.normalFlat = true; - let line1 = this.RcMakeStripes(geo_rim, 2, lcol); + let line1 = this.RcMakeStripes(geo_rim, 2, lcol); let line2 = this.RcMakeStripes(geo_rays, 1, lcol); mesh.add(line1); mesh.add(line2); @@ -1019,8 +968,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) return mesh; } - makeFlatBox(ebox, rnrData, idxBegin, idxEnd) - { + makeFlatBox(ebox, rnrData, idxBegin, idxEnd) { let fcol = RcCol(ebox.fMainColor); let boxMaterial = this.RcFancyMaterial(fcol, 0.5, { side: RC.FRONT_AND_BACK_SIDE }); @@ -1044,8 +992,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) return mesh; } - makeBoxProjected(ebox, rnrData) - { + makeBoxProjected(ebox, rnrData) { let nPnts = parseInt(rnrData.vtxBuff.length / 3); let breakIdx = parseInt(ebox.fBreakIdx); if (ebox.fBreakIdx == 0) @@ -1068,8 +1015,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) return mesh1; } - makeBox(ebox, rnr_data) - { + makeBox(ebox, rnr_data) { let idxBuff = [0, 4, 5, 0, 5, 1, 1, 5, 6, 1, 6, 2, 2, 6, 7, 2, 7, 3, 3, 7, 4, 3, 4, 0, 1, 2, 3, 1, 3, 0, 4, 7, 6, 4, 6, 5]; let vBuff = rnr_data.vtxBuff; @@ -1120,8 +1066,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) //============================================================================== // make Digits //============================================================================== - makeBoxSetInstanced(boxset, rnr_data) - { + makeBoxSetInstanced(boxset, rnr_data) { // axis aligned box let SN = boxset.N; // console.log("SN", SN, "texture dim =", boxset.texX, boxset.texY); @@ -1143,7 +1088,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) }); if (boxset.instanceFlag == "ScalePerDigit") shm.addSBFlag("SCALE_PER_INSTANCE"); - else if(boxset.instanceFlag == "Mat4Trans") + else if (boxset.instanceFlag == "Mat4Trans") shm.addSBFlag("MAT4_PER_INSTANCE"); if (boxset.fMainTransparency) { @@ -1174,8 +1119,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) return zshape; } - makeBoxSet(boxset, rnr_data) - { + makeBoxSet(boxset, rnr_data) { if (this.TestRnr("boxset", boxset, rnr_data)) return null; // use instancing if texture coordinates let mesh; @@ -1191,8 +1135,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) return mesh; } - makeFreeBoxSet(boxset, rnr_data) - { + makeFreeBoxSet(boxset, rnr_data) { let vBuff; let idxBuff; let nVerticesPerDigit = 0; @@ -1208,46 +1151,45 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) let R = rnr_data.vtxBuff[rdoff + 3]; let hexRotation = rnr_data.vtxBuff[rdoff + 4]; let hexHeight = rnr_data.vtxBuff[rdoff + 5]; - let off = i* 3 * 7 * 2; + let off = i * 3 * 7 * 2; // position let pos = [rnr_data.vtxBuff[rdoff], rnr_data.vtxBuff[rdoff + 1], rnr_data.vtxBuff[rdoff + 2]]; // center - vBuff[off] = pos[0]; + vBuff[off] = pos[0]; vBuff[off + 1] = pos[1]; vBuff[off + 2] = pos[2]; off += 3; for (let j = 0; j < 6; ++j) { - let angle = j*stepAngle + hexRotation; + let angle = j * stepAngle + hexRotation; let x = R * Math.cos(angle) + pos[0]; let y = R * Math.sin(angle) + pos[1]; let z = pos[2]; // write buffer - vBuff[off] = x; + vBuff[off] = x; vBuff[off + 1] = y; vBuff[off + 2] = z; off += 3; } // copy for depth - let ro = i* 3 * 7 * 2; - for (let j = 0; j < 7; ++j) - { - vBuff[ro + 21] = vBuff[ro]+ hexHeight; - vBuff[ro + 22] = vBuff[ro+1]+ hexHeight; - vBuff[ro + 23] = vBuff[ro+2] + hexHeight; + let ro = i * 3 * 7 * 2; + for (let j = 0; j < 7; ++j) { + vBuff[ro + 21] = vBuff[ro] + hexHeight; + vBuff[ro + 22] = vBuff[ro + 1] + hexHeight; + vBuff[ro + 23] = vBuff[ro + 2] + hexHeight; ro += 3; } } // end loop vertex buffer - let protoIdcs = [0,1,2, 0,2,3, 0,3,4, 0,4,5, 0,5,6, 0,6,1]; - let protoIdcs2 = [2,1,0, 3,2,0, 4,3, 0, 5,4,0, 6, 5, 0, 1, 6, 0]; - let sideIdcs = [8,1,2,2,9,8, 9,2,3,3,10,9, 10,3,4,4,11,10, - 11,4,5,5,12,11, 5,6,13,5,13,12, 13,6,1,1,8,13 ]; - let idxBuffSize = N_hex * (protoIdcs.length * 2 + sideIdcs.length); + let protoIdcs = [0, 1, 2, 0, 2, 3, 0, 3, 4, 0, 4, 5, 0, 5, 6, 0, 6, 1]; + let protoIdcs2 = [2, 1, 0, 3, 2, 0, 4, 3, 0, 5, 4, 0, 6, 5, 0, 1, 6, 0]; + let sideIdcs = [8, 1, 2, 2, 9, 8, 9, 2, 3, 3, 10, 9, 10, 3, 4, 4, 11, 10, + 11, 4, 5, 5, 12, 11, 5, 6, 13, 5, 13, 12, 13, 6, 1, 1, 8, 13]; + let idxBuffSize = N_hex * (protoIdcs.length * 2 + sideIdcs.length); idxBuff = new Uint32Array(idxBuffSize); let b = 0; for (let i = 0; i < N_hex; ++i) { @@ -1256,7 +1198,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) idxBuff[b++] = off0 + protoIdcs2[c]; } for (let c = 0; c < protoIdcs.length; c++) { - idxBuff[b++] = off0 + protoIdcs[c] +7; + idxBuff[b++] = off0 + protoIdcs[c] + 7; } for (let c = 0; c < sideIdcs.length; c++) { idxBuff[b++] = off0 + sideIdcs[c]; @@ -1326,20 +1268,17 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) let mat = this.RcFancyMaterial(this.ColorBlack, 1.0, { side: RC.FRONT_SIDE }); mat.normalFlat = true; - if ( ! boxset.fSingleColor) - { + if (!boxset.fSingleColor) { let ci = rnr_data.idxBuff; let off = 0; - let nVert = vBuff.length /3; - let colBuff = new Float32Array( nVert * 4 ); - for (let x = 0; x < ci.length; ++x) - { - let r = (ci[x] & 0x000000FF) >> 0; - let g = (ci[x] & 0x0000FF00) >> 8; + let nVert = vBuff.length / 3; + let colBuff = new Float32Array(nVert * 4); + for (let x = 0; x < ci.length; ++x) { + let r = (ci[x] & 0x000000FF) >> 0; + let g = (ci[x] & 0x0000FF00) >> 8; let b = (ci[x] & 0x00FF0000) >> 16; - for (let i = 0; i < nVerticesPerDigit; ++i) - { - colBuff[off ] = r / 255; + for (let i = 0; i < nVerticesPerDigit; ++i) { + colBuff[off] = r / 255; colBuff[off + 1] = g / 255; colBuff[off + 2] = b / 255; colBuff[off + 3] = 1.0; @@ -1366,8 +1305,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) // make Calorimeters //============================================================================== - makeCalo3D(calo3D, rnr_data) - { + makeCalo3D(calo3D, rnr_data) { if (this.TestRnr("calo3D", calo3D, rnr_data)) return null; let body = new RC.Geometry(); let vBuff = rnr_data.vtxBuff; @@ -1415,8 +1353,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) return mesh; } - makeCalo2D(calo2D, rnrData) - { + makeCalo2D(calo2D, rnrData) { if (this.TestRnr("calo2D", calo2D, rnrData)) return null; let body = new RC.Geometry(); let nSquares = rnrData.vtxBuff.length / 12; @@ -1472,8 +1409,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) // makeEveGeometry / makeEveGeoShape //============================================================================== - makeEveGeometry(rnr_data, compute_normals) - { + makeEveGeometry(rnr_data, compute_normals) { let nVert = rnr_data.idxBuff[1] * 3; if (rnr_data.idxBuff[0] != GL.TRIANGLES) throw "Expect triangles first."; @@ -1502,12 +1438,11 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) return geo; } - makeEveGeoShape(egs, rnr_data) - { + makeEveGeoShape(egs, rnr_data) { let geom = this.makeEveGeometry(rnr_data, false); let fcol = RcCol(egs.fFillColor); - let mop = 1 - egs.fMainTransparency/100; + let mop = 1 - egs.fMainTransparency / 100; let mat = this.RcFancyMaterial(fcol, mop); // mat.side = RC.FRONT_AND_BACK_SIDE; @@ -1568,15 +1503,14 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) let pick_children = false; this.RcPickable(topNode, mm, pick_children); - return mm; + return mm; } //============================================================================== // makePolygonSetProjected //============================================================================== - makePolygonSetProjected(psp, rnr_data) - { + makePolygonSetProjected(psp, rnr_data) { let psp_ro = new RC.Group(); let pos_ba = new RC.BufferAttribute(rnr_data.vtxBuff, 3); let idx_ba = new RC.BufferAttribute(rnr_data.idxBuff, 1); @@ -1584,7 +1518,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) let ib_len = rnr_data.idxBuff.length; let fcol = RcCol(psp.fMainColor); - let mop = Math.min( 1, 1 - psp.fMainTransparency/100); + let mop = Math.min(1, 1 - psp.fMainTransparency / 100); let material = this.RcFlatMaterial(fcol, mop); material.side = RC.FRONT_AND_BACK_SIDE; @@ -1592,10 +1526,8 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) let line_mat = this.RcLineMaterial(fcol); let meshes = []; - for (let ib_pos = 0; ib_pos < ib_len;) - { - if (rnr_data.idxBuff[ib_pos] == GL.TRIANGLES) - { + for (let ib_pos = 0; ib_pos < ib_len;) { + if (rnr_data.idxBuff[ib_pos] == GL.TRIANGLES) { let geo = new RC.Geometry(); geo.vertices = pos_ba; geo.indices = idx_ba; @@ -1609,8 +1541,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) ib_pos += 2 + 3 * rnr_data.idxBuff[ib_pos + 1]; } - else if (rnr_data.idxBuff[ib_pos] == GL.LINE_LOOP) - { + else if (rnr_data.idxBuff[ib_pos] == GL.LINE_LOOP) { let geo = new RC.Geometry(); geo.vertices = pos_ba; geo.indices = idx_ba; @@ -1622,8 +1553,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) ib_pos += 2 + rnr_data.idxBuff[ib_pos + 1]; } - else - { + else { console.error("Unexpected primitive type " + rnr_data.idxBuff[ib_pos]); break; } @@ -1648,15 +1578,13 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) //============================================================================== - makeStraightLineSet(el, rnr_data) - { + makeStraightLineSet(el, rnr_data) { // console.log("makeStraightLineSet ..."); let obj3d = new RC.Group(); let buf = new Float32Array(el.fLinePlexSize * 6); - for (let i = 0; i < el.fLinePlexSize * 6; ++i) - { + for (let i = 0; i < el.fLinePlexSize * 6; ++i) { buf[i] = rnr_data.vtxBuff[i]; } @@ -1668,44 +1596,131 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) let line_width = 2 * (el.fLineWidth || 1); const line = this.RcMakeStripes(geom, line_width, line_color); this.RcApplyStripesMaterials(el, line, 2); - this.RcPickable(el, line); obj3d.add(line); // ---------------- DUH, could share buffer attribute. XXXXX + let marker; if (el.fMarkerPlexSize) { let nPnts = el.fMarkerPlexSize; let off = el.fLinePlexSize * 6; - let p_buf = new Float32Array(el.fTexX*el.fTexY*4); + let p_buf = new Float32Array(el.fTexX * el.fTexY * 4); for (let i = 0; i < nPnts; ++i) { - let j = i*3; - let k = i*4; - p_buf[k] = rnr_data.vtxBuff[j+off]; - p_buf[k+1] = rnr_data.vtxBuff[j+off+1]; - p_buf[k+2] = rnr_data.vtxBuff[j+off+2]; - p_buf[k+3] = 0; + let j = i * 3; + let k = i * 4; + p_buf[k] = rnr_data.vtxBuff[j + off]; + p_buf[k + 1] = rnr_data.vtxBuff[j + off + 1]; + p_buf[k + 2] = rnr_data.vtxBuff[j + off + 2]; + p_buf[k + 3] = 0; } - let marker = this.RcMakeZSprite(el.fMainColor, el.fMarkerSize, nPnts, + marker = this.RcMakeZSprite(el.fMarkerColor, el.fMarkerSize, nPnts, p_buf, el.fTexX, el.fTexY, "star5-32a.png"); obj3d.add(marker); + marker.pickable = true; + marker.eve_el = el; } - // For secondary selection, see EveElements.js - // obj3d.eve_idx_buf = rnr_data.idxBuff; - // if (el.fSecondarySelect) - // octrl = new StraightLineSetControl(obj3d); - // else - // octrl = new EveElemControl(obj3d); - - this.RcPickable(el, obj3d, true, null); - obj3d.get_ctrl = function(iobj, tobj) { - let octrl = new EveElemControl(iobj, tobj); - octrl.DrawForSelection = function(sec_idcs, res) { - res.geom.push(...this.top_obj.children); - }; - return octrl; + + if (el.fPickable) { + line.pickable = true; + + let pthis = this; + obj3d.get_ctrl = function (iobj, tobj) { + console.log("get crtl ", iobj, tobj); + let octrl = new EveElemControl(iobj, tobj); + + octrl.extractIndex = function (instance) { + console.log("AMT extreact index ", instance); + console.log("objs: invoke type ", this.invoke_obj.type, "top obj ", this.top_obj.type); + return instance; + } + + octrl.getSelIdx = function (indx) { + if (this.top_obj.type == "ZSprite") { + this.top_obj.scene = this.invoke_obj.scene; + let scene = this.invoke_obj.scene; + let el = this.top_obj.eve_el; + let off = el.fLinePlexSize; + return rnr_data.idxBuff[indx + off]; + } + else { + return indx; + } + } + + octrl.elementHighlighted = function(indx, event) { + let scene = this.invoke_obj.scene; + return scene.processElementHighlighted(this.top_obj.eve_el, this.getSelIdx(indx), event); + } + + octrl.elementSelected = function(indx, event) { + let scene = this.invoke_obj.scene; + return scene.processElementSelected(this.top_obj.eve_el, this.getSelIdx(indx), event); + } + + octrl.DrawForSelection = function (sec_idcs, res) { + if (el.fSecondarySelect == true) { + let bufSS = new Float32Array(sec_idcs.length * 6); + for (let i = 0; i < sec_idcs.length; ++i) { + let lineIdx = sec_idcs[i]; + let off = lineIdx * 6; + bufSS[i * 6] = rnr_data.vtxBuff[off]; + bufSS[i * 6 + 1] = rnr_data.vtxBuff[off + 1]; + bufSS[i * 6 + 2] = rnr_data.vtxBuff[off + 2]; + bufSS[i * 6 + 3] = rnr_data.vtxBuff[off + 3]; + bufSS[i * 6 + 4] = rnr_data.vtxBuff[off + 4]; + bufSS[i * 6 + 5] = rnr_data.vtxBuff[off + 5]; + } + + let geomSS = new RC.Geometry(); + geomSS.vertices = new RC.BufferAttribute(bufSS, 3); + + let line_colorSS = RcCol(el.fMainColor); + let line_widthSS = 2 * (el.fLineWidth || 1); + const lineSS = pthis.RcMakeStripes(geomSS, line_widthSS, line_colorSS); + pthis.RCApplyAttrToOutlineObj(lineSS, line, false); + pthis.RcApplyStripesMaterials(el, lineSS, 2); + res.geom.push(lineSS); + + // secondary selected markers + let tmpMarkers = []; + let pntIndices; + for (let i = 0; i < sec_idcs.length; ++i) { + let lineIdx = sec_idcs[i]; + for (let p = el.fLinePlexSize; p < rnr_data.idxBuff.length; ++p) { + if (rnr_data.idxBuff[p] == lineIdx) { + tmpMarkers.push(p - el.fLinePlexSize); + } + } + } + let nPnts = tmpMarkers.length; + let off = el.fLinePlexSize * 6; + let p_buf = new Float32Array(el.fTexX * el.fTexY * 4); + for (let i = 0; i < nPnts; ++i) { + let j = tmpMarkers[i] * 3; + let k = i * 4; + p_buf[k] = rnr_data.vtxBuff[j + off]; + p_buf[k + 1] = rnr_data.vtxBuff[j + off + 1]; + p_buf[k + 2] = rnr_data.vtxBuff[j + off + 2]; + p_buf[k + 3] = 0; + } + + let markerSS = pthis.RcMakeZSprite(el.fMarkerColor, el.fMarkerSize, nPnts, + p_buf, el.fTexX, el.fTexY, + "star5-32a.png"); + pthis.RCApplyAttrToOutlineObj(markerSS, marker, false); + res.geom.push(markerSS); + } + else { + // console.log("straight line set WHOLE selection"); + res.geom.push(...this.top_obj.children); + } + }; + return octrl; + } } + return obj3d; } From 688856339e2f669564c353c8c1bcbc6c5a6dffd8 Mon Sep 17 00:00:00 2001 From: alja Date: Mon, 27 Apr 2026 17:20:18 -0700 Subject: [PATCH 2/9] Increase line width and marker size in the REveStraightLinesets --- tutorials/visualisation/eve7/lineset.C | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/tutorials/visualisation/eve7/lineset.C b/tutorials/visualisation/eve7/lineset.C index 038af1f4aa2fc..f1c6fd69481ad 100644 --- a/tutorials/visualisation/eve7/lineset.C +++ b/tutorials/visualisation/eve7/lineset.C @@ -43,18 +43,23 @@ REX::REveStraightLineSet *makeLineSet(Int_t nlines = 40, Int_t nmarkers = 4, boo void lineset(bool secondarySelect = true) { auto eveMng = REX::REveManager::Create(); + // eveMng->AllowMultipleRemoteConnections(false, false); auto ls1 = makeLineSet(50, 10, secondarySelect); + ls1->SetLineWidth(2); + ls1->SetMarkerSize(8); ls1->SetMainColor(kViolet); - ls1->SetMarkerColor(kGreen + 3); - ls1->SetName("LineSet_1"); + ls1->SetMarkerColor(kMagenta); + ls1->SetName("LineSet Violet"); - auto ls2 = makeLineSet(200, 20, secondarySelect); + auto ls2 = makeLineSet(10, 10, secondarySelect); + ls2->SetLineWidth(2); + ls2->SetMarkerSize(8); ls2->SetMainColor(kBlue); ls2->SetMarkerColor(kCyan + 2); - ls2->SetName("LineSet_2"); + ls2->SetName("LineSet Blue"); ls2->InitMainTrans(); ls2->RefMainTrans().Move3LF(40, 200, 200); eveMng->Show(); -} +} \ No newline at end of file From 53fa7c7e4c681da4e9c0a6c29fceabd3efb41972 Mon Sep 17 00:00:00 2001 From: alja Date: Wed, 29 Apr 2026 11:22:06 -0700 Subject: [PATCH 3/9] Document function and members of EveElemControl --- ui5/eve7/lib/EveElementsRCore.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ui5/eve7/lib/EveElementsRCore.js b/ui5/eve7/lib/EveElementsRCore.js index d2fe176b83eaf..2eb723f39820e 100644 --- a/ui5/eve7/lib/EveElementsRCore.js +++ b/ui5/eve7/lib/EveElementsRCore.js @@ -10,6 +10,13 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) { class EveElemControl { + // Class notes: + // invoke_obj is created in GLViewerRCore from RnrQutor pick state + // invoke_obj == state.obj + // top_obj is also derived from RnrQutor pick state + // if the pick state does not have EveElement defined ti look up nto parent hierarchy + + constructor(iobj, tobj) { this.invoke_obj = iobj; this.top_obj = tobj ? tobj : iobj; @@ -44,6 +51,8 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function (EveManager) { } DrawForSelection(sec_idcs, res) { + // Note: one needs to apply _modelViewMatrix and _normalMatrix + // on newly created objects if (this.top_obj.eve_el.fSecondarySelect) { if (sec_idcs.length > 0) { res.instance_object = this.top_obj; From 2a63a7d4af4e32a7269ba8baa4e1c28239e616cd Mon Sep 17 00:00:00 2001 From: alja Date: Wed, 29 Apr 2026 11:25:34 -0700 Subject: [PATCH 4/9] Add functionality to print node info from the table --- graf3d/eve7/src/REveGeoTopNode.cxx | 58 ++++++++++++++++++---- ui5/eve7/controller/GeoTable.controller.js | 8 +++ 2 files changed, 55 insertions(+), 11 deletions(-) diff --git a/graf3d/eve7/src/REveGeoTopNode.cxx b/graf3d/eve7/src/REveGeoTopNode.cxx index a49cf21f2e5fc..5ac8f3fe55953 100644 --- a/graf3d/eve7/src/REveGeoTopNode.cxx +++ b/graf3d/eve7/src/REveGeoTopNode.cxx @@ -139,7 +139,7 @@ void REveGeomHierarchy::WebWindowCallback(unsigned connid, const std::string &ar using namespace std::string_literals; REveGeomDescription &eveDesc = dynamic_cast(fDesc); - REveGeoManagerHolder gmgr(REveGeomDescription::GetGeoManager()); + REveGeoManagerHolder gmgr(REveGeomDescription::GetGeoManager()); if (arg.compare(0, 6, "CDTOP:") == 0) { std::vector ep; @@ -195,13 +195,51 @@ void REveGeomHierarchy::WebWindowCallback(unsigned connid, const std::string &ar stack.insert(stack.begin(), base.begin(), base.end()); if (path && eveDesc.ChangeEveVisibility(stack, REveGeomDescription::kRnrSelf, on)) { - std::cout << "Set visibilty rnr PHY \n"; + std::cout << "Set visibility rnr PHY \n"; REveManager::ChangeGuard ch; fReceiver->VisibilityChanged(on, REveGeomDescription::kRnrSelf, stack); } } } + else if (arg.compare(0, 9, "PrintInfo") == 0) + { + auto a = TBufferJSON::FromJSON>(arg.substr(10)); + auto prefix = eveDesc.GetApexPath(); + + std::ostringstream oss; + oss << "/"; + if (!prefix.empty()) { + a->erase(a->begin()); + a->insert(a->begin(), prefix.begin(), prefix.end()); + std::string topName = eveDesc.GetGeoManager()->GetTopNode()->GetName(); + // strip "_1" + // TGeoNodeInterator does not hold _1 in the top node + if (topName.rfind("_1") != std::string::npos) { + topName = topName.substr(0, topName.size() - 2); + } + oss << topName << "/"; + } + for (size_t i = 0; i < a->size(); ++i) { + if (i > 0) + oss << "/"; + oss << a->at(i); + } + + std::string targetPath = oss.str(); + const char* savedPath = gGeoManager->GetPath(); + bool res = gGeoManager->cd(targetPath.c_str()); + printf("Node path:\n%s \n", targetPath.c_str()); + if (res) { + TGeoNode* node = gGeoManager->GetCurrentNode(); + node->GetVolume()->InspectShape(); + } + else { + printf("ERROR locating the node with given path\n"); + } + gGeoManager->cd(savedPath); + + } else { RGeomHierarchy::WebWindowCallback(connid, arg); } @@ -431,9 +469,7 @@ bool REveGeoTopNodeViz::AcceptNode(TGeoIterator &it, bool skip) const // printf("accep mkod eleaf node ptr %p \n", (void*)it.GetNode(it.GetLevel())); if (it.GetNode(it.GetLevel())->GetNdaughters()) return false; - } - else if (fMode == EMode::kModeMixed) - { + } else if (fMode == EMode::kModeMixed) { if (it.GetLevel() > fGeoData->fDesc.GetVisLevel()) { if (skip) it.Skip(); return false; @@ -495,18 +531,18 @@ void REveGeoTopNodeViz::BuildDesc() timer.Stop(); - printf("Real time: %.3f s\n", timer.RealTime()); - printf("CPU time: %.3f s\n", timer.CpuTime()); + printf("Collect Shapes Real time: %.3f s\n", timer.RealTime()); + // printf("CPU time: %.3f s\n", timer.CpuTime()); // node array timer.Start(); CollectNodes(top->GetVolume(), fNodes, fShapes); - std::cout << "Node size " << fNodes.size() << "\n"; + // std::cout << "Node size " << fNodes.size() << "\n"; timer.Stop(); - printf("NODES Real time: %.3f s\n", timer.RealTime()); - printf("NODES CPU time: %.3f s\n", timer.CpuTime()); + printf("Collect Nodes Real time: %.3f s\n", timer.RealTime()); + // printf("NODES CPU time: %.3f s\n", timer.CpuTime()); StampObjProps(); } @@ -791,7 +827,7 @@ int REveGeoTopNodeViz::WriteCoreJson(nlohmann::json &j, Int_t rnr_offset) if (box) { const Double_t *origin = box->GetOrigin(); - printf("BBox center: (%f, %f, %f)\n", origin[0], origin[1], origin[2]); + // printf("BBox center: (%f, %f, %f)\n", origin[0], origin[1], origin[2]); //printf("origin lengths: (%f, %f, %f)\n", origin[0], origin[1], origin[2]); auto jbb = json::array(); diff --git a/ui5/eve7/controller/GeoTable.controller.js b/ui5/eve7/controller/GeoTable.controller.js index 06f886257438e..3b57b252bc410 100644 --- a/ui5/eve7/controller/GeoTable.controller.js +++ b/ui5/eve7/controller/GeoTable.controller.js @@ -273,6 +273,14 @@ sap.ui.define([ } })); + this._oIdContextMenu.addItem(new MenuItem({ + text: 'Print info', + select: () => { + this.setPhysTopNode(prop.path); + this.websocket.send('PrintInfo:' + JSON.stringify(prop.path)); + } + })); + //Open the menu on the cell let oCellDomRef = oEvent.getParameter("cellDomRef"); this._oIdContextMenu.open(false, oCellDomRef, Popup.Dock.BeginTop, Popup.Dock.BeginBottom, oCellDomRef, "none none"); From f4089dd59bb71089c419c231821f83065378b8ce Mon Sep 17 00:00:00 2001 From: alja Date: Wed, 29 Apr 2026 12:16:39 -0700 Subject: [PATCH 5/9] Check if TGeoShape has non-empty TBuffer3D. For example in case of type TGeoShapeAssembly --- graf3d/eve7/src/REveGeoPolyShape.cxx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/graf3d/eve7/src/REveGeoPolyShape.cxx b/graf3d/eve7/src/REveGeoPolyShape.cxx index 07df9a2de8d5a..32461bca02508 100644 --- a/graf3d/eve7/src/REveGeoPolyShape.cxx +++ b/graf3d/eve7/src/REveGeoPolyShape.cxx @@ -149,6 +149,12 @@ void REveGeoPolyShape::BuildFromShape(TGeoShape *shape, Int_t n_seg) REveGeoManagerHolder gmgr(REveGeoShape::GetGeoManager(), n_seg); + if (!shape->MakeBuffer3D()) + { + std::cout << "Shape " << shape->GetName() << " has empty TBuffer3D\n"; + return; + } + std::unique_ptr b3d(shape->MakeBuffer3D()); SetFromBuff3D(*b3d.get()); From 32d22e191c2714a4c89f7bcd3b2b82f28e75ec6f Mon Sep 17 00:00:00 2001 From: alja Date: Wed, 29 Apr 2026 15:14:44 -0700 Subject: [PATCH 6/9] Test macros to write and show extracted TGeo geometry. --- .../visualisation/eve7/show_geo_extract.C | 30 +++++ .../visualisation/eve7/write_geo_extract.C | 124 ++++++++++++++++++ 2 files changed, 154 insertions(+) create mode 100644 tutorials/visualisation/eve7/show_geo_extract.C create mode 100644 tutorials/visualisation/eve7/write_geo_extract.C diff --git a/tutorials/visualisation/eve7/show_geo_extract.C b/tutorials/visualisation/eve7/show_geo_extract.C new file mode 100644 index 0000000000000..0b3c445ade76a --- /dev/null +++ b/tutorials/visualisation/eve7/show_geo_extract.C @@ -0,0 +1,30 @@ +/// \file +/// \ingroup tutorial_eve7 +/// Helper script for showing of extracted / simplified geometries. +/// The test macro how to create the shapes is in file write_geo_extract.C +/// \macro_code +/// +/// \author Matevz Tadel + +void show_geo_extract(const char *file = "testShapeExtract.root") +{ + auto eveMng = ROOT::Experimental::REveManager::Create(); + eveMng->AllowMultipleRemoteConnections(false, false); + + TFile::Open(file); + TIter next(gDirectory->GetListOfKeys()); + TKey *key; + TString seName("ROOT::Experimental::REveGeoShapeExtract"); + + while ((key = (TKey *)next())) { + std::cout << "calss name " << key->GetClassName() << "\n"; + if (seName == key->GetClassName()) { + std::cout << "got the extract name " << key->GetClassName() << "\n"; + auto gse = (ROOT::Experimental::REveGeoShapeExtract *)key->ReadObj(); + auto gs = ROOT::Experimental::REveGeoShape::ImportShapeExtract(gse, 0); + eveMng->AddGlobalElement(gs); + } + } + + eveMng->Show(); +} diff --git a/tutorials/visualisation/eve7/write_geo_extract.C b/tutorials/visualisation/eve7/write_geo_extract.C new file mode 100644 index 0000000000000..adb0c8ef6dabb --- /dev/null +++ b/tutorials/visualisation/eve7/write_geo_extract.C @@ -0,0 +1,124 @@ + +#include +#include +#include +#include "TFile.h" + +#include +#include +#include + + +// \file +/// \ingroup tutorial_eve7 +/// Helper script to create REveGeoShapeExtract fro TGeo geometry +/// One can rely on GeoTable to access paths +/// \macro_code +/// +/// \author Alja Mrak Tadel + +using namespace ROOT::Experimental; + +REveGeoShape *makeShape(const std::string &targetPath, const char* name) +{ + // for the moment top node is tracker at the startup + + TGeoIterator next(gGeoManager->GetTopVolume()); + TGeoNode *currentNode; + + while ((currentNode = next())) { + TString currentPath; + next.GetPath(currentPath); // Retrieves the full hierarchy path + // std::cout << "compare" << currentPath << "\n"; + if (currentPath == targetPath) { + // Found the node via path matching + printf("Node found: %s\n", currentNode->GetName()); + break; + } + } + + const TGeoMatrix *mat = next.GetCurrentMatrix(); + const Double_t *t = mat->GetTranslation(); // size 3 + const Double_t *r = mat->GetRotationMatrix(); // size 9 (3x3) + + Double_t m[16]; + if (mat->IsScale()) { + const Double_t *s = mat->GetScale(); + m[0] = r[0] * s[0]; + m[1] = r[3] * s[0]; + m[2] = r[6] * s[0]; + m[3] = 0; + m[4] = r[1] * s[1]; + m[5] = r[4] * s[1]; + m[6] = r[7] * s[1]; + m[7] = 0; + m[8] = r[2] * s[2]; + m[9] = r[5] * s[2]; + m[10] = r[8] * s[2]; + m[11] = 0; + m[12] = t[0]; + m[13] = t[1]; + m[14] = t[2]; + m[15] = 1; + } else { + m[0] = r[0]; + m[1] = r[3]; + m[2] = r[6]; + m[3] = 0; + m[4] = r[1]; + m[5] = r[4]; + m[6] = r[7]; + m[7] = 0; + m[8] = r[2]; + m[9] = r[5]; + m[10] = r[8]; + m[11] = 0; + m[12] = t[0]; + m[13] = t[1]; + m[14] = t[2]; + m[15] = 1; + } + + TGeoShape *shape = currentNode->GetVolume()->GetShape(); + shape->SetName(name); + REveGeoShape* rgs = new REveGeoShape(name); + rgs->SetShape(shape); + + rgs->InitMainTrans(); + rgs->RefMainTrans().SetFrom(m); + return rgs; +} + +void write_geo_extract() +{ + TFile::SetCacheFileDir("."); + + auto eveMng = REveManager::Create(); + eveMng->AllowMultipleRemoteConnections(false, false); + + auto s_geoManager = TGeoManager::Import("http://xrd-cache-1.t2.ucsd.edu/alja/mail/geo/cmsSimGeo2026.root"); + + // tracker wrapper + //REveElement *holder = new REveElement(); + REveGeoShape *tracker = makeShape("cms:OCMS/tracker:Tracker_1/otst:supportR1190Z1450_1", "tracker"); + tracker->SetMainColor(kRed); + tracker->SetMainTransparency(50); + // holder->AddElement(tracker); + + // tracker barrel + REveGeoShape *barrel = + makeShape("cms:OCMS/tracker:Tracker_1/pixbar:Phase2OTBarrel_1/tracker:supportR212Z604_1", "barrel"); + tracker->AddElement(barrel); + + // front and back endcaps + REveGeoShape *e1 = makeShape("cms:OCMS/tracker:Tracker_1/pixfwd:Phase2OTForward_1", "endcap_1"); + tracker->AddElement(e1); + REveGeoShape *e2 = makeShape("cms:OCMS/tracker:Tracker_1/pixfwd:Phase2OTForward_2", "endcap_2"); + tracker->AddElement(e2); + + // save extract on top element + tracker->SaveExtract("testShapeExtract.root", "VSDGeo"); + + eveMng->GetEventScene()->AddElement(tracker); + eveMng->Show(); +} \ No newline at end of file From a877ef7baa1552f6193dadfa37d8d7685a28a4ce Mon Sep 17 00:00:00 2001 From: alja Date: Wed, 29 Apr 2026 15:40:34 -0700 Subject: [PATCH 7/9] Correct tooltip text --- ui5/eve7/controller/Summary.controller.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui5/eve7/controller/Summary.controller.js b/ui5/eve7/controller/Summary.controller.js index f2f3cca0ea4a9..033401510fd93 100644 --- a/ui5/eve7/controller/Summary.controller.js +++ b/ui5/eve7/controller/Summary.controller.js @@ -66,7 +66,7 @@ sap.ui.define([ new mText({text:" {treeModel>fName}", tooltip: "{treeModel>fTitle}" , renderWhitespace: true, wrapping: false }) ] }), - new mButton({ id: "detailBtn", visible: "{treeModel>fShowButton}", icon: "sap-icon://edit", type: "Transparent", tooltip: "Actiavte GED", press: this.pressGedButton.bind(this) }) + new mButton({ id: "detailBtn", visible: "{treeModel>fShowButton}", icon: "sap-icon://edit", type: "Transparent", tooltip: "Open Editor", press: this.pressGedButton.bind(this) }) ] }) ], From 451c962923be6ca6992de8932fff6bedf21bde97 Mon Sep 17 00:00:00 2001 From: alja Date: Wed, 29 Apr 2026 15:43:58 -0700 Subject: [PATCH 8/9] Ommit / as the first character of printed node path --- graf3d/eve7/src/REveGeoTopNode.cxx | 1 - 1 file changed, 1 deletion(-) diff --git a/graf3d/eve7/src/REveGeoTopNode.cxx b/graf3d/eve7/src/REveGeoTopNode.cxx index 5ac8f3fe55953..7b8f087e015f3 100644 --- a/graf3d/eve7/src/REveGeoTopNode.cxx +++ b/graf3d/eve7/src/REveGeoTopNode.cxx @@ -207,7 +207,6 @@ void REveGeomHierarchy::WebWindowCallback(unsigned connid, const std::string &ar auto prefix = eveDesc.GetApexPath(); std::ostringstream oss; - oss << "/"; if (!prefix.empty()) { a->erase(a->begin()); a->insert(a->begin(), prefix.begin(), prefix.end()); From 8f91edabfbf70e84ce2d8b3853e0af3b8acc610f Mon Sep 17 00:00:00 2001 From: alja Date: Wed, 29 Apr 2026 15:44:39 -0700 Subject: [PATCH 9/9] Comment out multiple remote conections in the demo. --- tutorials/visualisation/eve7/show_geo_extract.C | 2 +- tutorials/visualisation/eve7/write_geo_extract.C | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/tutorials/visualisation/eve7/show_geo_extract.C b/tutorials/visualisation/eve7/show_geo_extract.C index 0b3c445ade76a..29f2a804790a6 100644 --- a/tutorials/visualisation/eve7/show_geo_extract.C +++ b/tutorials/visualisation/eve7/show_geo_extract.C @@ -9,7 +9,7 @@ void show_geo_extract(const char *file = "testShapeExtract.root") { auto eveMng = ROOT::Experimental::REveManager::Create(); - eveMng->AllowMultipleRemoteConnections(false, false); + // eveMng->AllowMultipleRemoteConnections(false, false); TFile::Open(file); TIter next(gDirectory->GetListOfKeys()); diff --git a/tutorials/visualisation/eve7/write_geo_extract.C b/tutorials/visualisation/eve7/write_geo_extract.C index adb0c8ef6dabb..437e576498f43 100644 --- a/tutorials/visualisation/eve7/write_geo_extract.C +++ b/tutorials/visualisation/eve7/write_geo_extract.C @@ -94,16 +94,13 @@ void write_geo_extract() TFile::SetCacheFileDir("."); auto eveMng = REveManager::Create(); - eveMng->AllowMultipleRemoteConnections(false, false); - + // eveMng->AllowMultipleRemoteConnections(false, false); auto s_geoManager = TGeoManager::Import("http://xrd-cache-1.t2.ucsd.edu/alja/mail/geo/cmsSimGeo2026.root"); // tracker wrapper - //REveElement *holder = new REveElement(); REveGeoShape *tracker = makeShape("cms:OCMS/tracker:Tracker_1/otst:supportR1190Z1450_1", "tracker"); tracker->SetMainColor(kRed); tracker->SetMainTransparency(50); - // holder->AddElement(tracker); // tracker barrel REveGeoShape *barrel =