From 896aaf23f4de3327b9287e89815b9be0d30edbf4 Mon Sep 17 00:00:00 2001
From: Maximilian Li
- Datasets bridging computer vision and robotics by providing high-quality visual
- annotations in manipulation-relevant scenes remain limited.
- This work introduces the Multi-Object Photoreal Simulation (MOPS)
- dataset, which provides comprehensive ground truth annotations for photorealistic
- simulated environments. MOPS employs a zero-shot asset augmentation pipeline based on
- Large Language Models (LLM) to automatically normalize 3D object scale and generate
- part-level affordances. The dataset features pixel-level segmentations for tasks
- crucial to robotic perception, including fine-grained part segmentation and affordance
- prediction (e.g., “graspable” or “pushable”).
- By combining detailed annotations with photorealistic simulation, MOPS generates a
- vast, diverse collection of scenes to accelerate progress in robot perception and
- manipulation. We validate MOPS through vision and robot learning benchmarks.
+ Datasets providing high-quality visual annotations in manipulation-relevant scenes
+ remain scarce. We introduce MOPS, a dataset generation framework that
+ combines 3D assets from PartNet-Mobility and RoboCasa with a zero-shot LLM-based
+ augmentation pipeline to automatically normalize object scale and generate part-level
+ affordance annotations, describing how an object part can be manipulated (e.g., a mug
+ handle is “graspable,” a drawer is
+ “pullable”).
+ Built on ManiSkill3, MOPS produces photorealistic indoor scenes with pixel-perfect
+ ground truth for class, part, and instance segmentation, multi-label affordances, depth,
+ surface normals, and 6D poses, spanning 54 affordance types across 137 object
+ categories. Human verification confirms 97.3% accuracy of the zero-shot
+ affordance labels. We validate MOPS on three vision benchmarks of increasing scene
+ complexity and show that ground-truth affordance masks improve imitation learning
+ success rates on 24 RoboCasa manipulation tasks by 7.9 percentage
+ points
+ over RGB-only baselines, with predicted affordances still yielding measurable gains.
+ The dataset and framework are publicly available.
Zero-shot asset augmentation using large language models for
- automatic part-level labeling, scale normalization, and semantic understanding.
- MOPS: Multi-Object Photoreal Simulation Dataset
@@ -92,12 +94,19 @@
+ MOPS: Multi-Objective Photoreal Simulation Dataset
for Computer Vision in Robot Manipulation
-
Code
+
+
+
+ Dataset
+
+
Abstract
Photorealistic Simulation
LLM-Powered Annotation
Kitchen environments, cluttered tabletops, and isolated object - scenarios spanning 137 object categories and 56 affordance labels.
+ scenarios spanning 137 object categories and 54 affordance labels.mops-data — Image generation in ManiSkill3
+ mops-repo — Generation framework & benchmarks
+ Available
+
+
+ ๐ค
+ HuggingFace — MOPS dataset collection
Available
-
- ๐ค
- mops-il — Robot trajectories in RoboCasa v0.1
- Coming Soon
-
- Prerequisites: Python 3.10 · - CUDA-compatible GPU · 16 GB+ RAM -
-conda create -n mops python=3.10
-conda activate mops
-
-pip install mani_skill
-git clone https://github.com/LiXiling/mops-data
-cd mops-data
-pip install -e .
-
- + + ๐ Setup & Installation Guide → + +
diff --git a/index.md b/index.md deleted file mode 100644 index 3c8570f..0000000 --- a/index.md +++ /dev/null @@ -1,348 +0,0 @@ ---- -layout: project_page -permalink: / - -title: "MOPS: Multi-Object Photoreal Simulation Dataset for Computer Vision in Robot Manipulation" -authors: - Maximilian X. Li, Paul Mattes, Nils Blank, Rudolf Lioutikov -affiliations: - Intuitive Robots Lab, Karlsruhe Institute of Technology, Germany -paper: ./static/Li2026_MOPS.pdf -code: https://github.com/LiXiling/mops-data -#video: https://www.youtube.com/results?search_query=turing+machine -#data: https://huggingface.co/docs/datasets ---- - - -MOPS provides rich, multi-modal ground truth for every scene
-
-
-
-
- High-quality visual rendering via ManiSkill3 and SAPIEN, optimized for computer vision tasks in robotic manipulation.
-Zero-shot asset augmentation pipeline using large language models for automatic part-level labeling and semantic understanding.
-Detailed ground truth for fine-grained part segmentation and affordance prediction (e.g., graspable, pushable).
-Rich indoor scenes including kitchen environments, cluttered tabletops, and isolated object scenarios at scale.
-Normalized asset management across multiple 3D libraries with automatic part-level annotation and semantic scene understanding.
-Comprehensive annotations including RGB, depth, surface normals, segmentation masks, affordance maps, and 6D pose information.
-Built on ManiSkill3 and SAPIEN for physics-accurate simulation with photorealistic rendering and programmable scene generation.
-MOPS provides significantly broader taxonomic coverage than existing datasets
-| Dataset | -Level | -Aff. Labels | -Obj. Cat. | -Objects | -
|---|---|---|---|---|
| RGB-D Part | -Part | -7 | -17 | -105 | -
| 3D-AffNet | -Part | -16 | -23 | -22,949 | -
| MOPS-Partnet | -Part | -24 | -46 | -2,345 | -
| MOPS-Robocasa | -Object | -44 | -101 | -1,008 | -
| MOPS (Total) | -Mixed | -56 | -137 | -3,353 | -
While 3D-AffNet has more instances, MOPS provides significantly higher taxonomic coverage across object categories and affordance types.
-Imitation learning on 24 RoboCasa tasks, evaluated over 10 environment seeds each
-| Policy Inputs | -Success Rate | -Gain | -
|---|---|---|
| RGB only | -13.33% | -— | -
| RGB + MOPS Affordances | -21.25% | -+7.92 | -
MOPS affordance annotations provide a consistent boost to imitation learning performance across 24 RoboCasa manipulation tasks.
-Prerequisites: Python 3.10 ยท CUDA-compatible GPU ยท 16 GB+ RAM
-conda create -n mops python=3.10
-conda activate mops
-
-pip install mani_skill
-git clone https://github.com/LiXiling/mops-data
-cd mops-data
-pip install -e .
-
- If you use MOPS in your research, please cite our work
-@article{li2026mops,
- title = {Multi-Objective Photoreal Simulation (MOPS) Dataset
- for Computer Vision in Robot Manipulation},
- author = {Maximilian Xiling Li and Paul Mattes and
- Nils Blank and Rudolf Lioutikov},
- year = {2026}
-}
- This work is supported by the Intuitive Robots Lab at Karlsruhe Institute of Technology, Germany.
-)%8mcp^m1r5^MA+x%^c%<{U~GS=vDE1m(cNh9juI16U;{mjbW)^ zOY0_TI^*A>bb@yC*!@_}m15GmaCmWu@as`g0YR#dvKL z&&Xk}0fEZliO9(_1&_F)b=m~f7j%~aY=0fg*;oGKKrkoTv;BtEsE3O#xclw%B1l&P zL_JV|rWr(2@6p@A+h2TR;P->7;H<5kY{QqQ@Wm8ELdLlA$R_J{v7R^PBdOvkJ&S RsW6W6Z8>+X&J_UH rkSwTS1 zO4L}tP+?>EklYw?@y$6c~Z8U)!Ops`MQnvc}dvfvU^=jZApTI zU~_ ;2f=Slj&^JIVL_nzx$$^32Diu*0=IeL5P!^cgXg{^eCx;AaQ(ra=n?= z_45u8|AKPus~&~nfK!NFG^lE*J+|Cm+2&Xz)KGu1_c7opF?4h^zS%>a2~i~FQ&;DG zwyxCmE&+x;>QEQ$xd{iQ&P%;K8^6aJ?UNr}!d#6)#tV({ERXZ!RQT&}%F_t6Bk*`S zR(1@RCi*>BBYBta>;kMW;A!ds%6(ZQF(Lve@WAw!tqh6p&~qd9WW>+LZvW-+wB@Jp zt6)E>03W~j!-(}!53;4MlMSk{Y_yMgazA~uRiHS};K`EDEn00|iE&PrQGz1$Hss@@ zfncZpg-3}agJEwN `bxJ;8f$TuOE_O_a2`GJa*$??q~r_WIxKW17uFdTgw+xr=*XRL z!dv}Yp7IHep%sgHWv)l&-PGf$i6}cZjh6dl+$L0B*dwq~4*6-Ob$sf&wV-%=B d?Jk%lr06otH9i=@>Y zfm09tzzs%1f&g@wR<8^6lHfamgmJ5lyK`KSS=o@gXjX?{gf1KS6803{vpgjA78ZSU z8`5J8cH&FASlwuNWguV|Lzxc<4e==N^!w_I@^b38ksD%n0=c)=U!-P3!s7B5lM9b8 zqk9T0$es}~9=RDF4dpa5b)nu_Tj%qbfpw~`@XO2far%*rAVsir8N1NmeS+f@fLzN5 zD=SK!!IV((L;>dFeLSQ>+57wP>+w|lfZ!`31gnT3DQ{{j@>AME!-NVzXdyd66A-lY zp~}ya5AcH&Lp+n(;)~^U+Hros@Y?0%?4*j94G?!R%C&Iqb{^I7&C6}(6!go+e@Cy& zg4fHO#w6-b)@BP5H6%xL1~;p59Jyl8pps-!1^s)`Ee52*NJy}53)h6QRr%i9S*Ob+ z3S1Cac6;&72?Cw@WzG&Te~rAmL(g#4Hj5$>E&owc#1g&1y}ZOox)cK+f}y{#W@53mqB+%#BDxMOP8Me z*++jS^v^**NbgzQ2MhrI;@!%)lQ3k(zn)Gvw`3qvu#ssv!C0JUUs}MCvUnD=kil1a ztU`-y7+zAHO%Q(LbBWm^LK0nW3pkC60;a+xWbQIAiQ~TI>%k_#3=Z96&NOjgvE?Ab zwG!>XzQ_t!{0D>QMKWPdPE%q~KK)a;LT|k|z!tf{ub!1v`t^Lts>d)!PIqdn!$J`Z z3I0==V}*R`Xg=vbAh2lPSHxAQ+61%Ps*H)=FG~D~y3;{{hxr%8dICzK+~f75bKISk zOoI)-RrUFh*a6l!_J@Wvsv&%?{@i6&4W&OHoqACsx;%i09oepR-OH=$7_yj=0^;yN z=V~OO+)werd87e?NBs}hVl&IV=9=VGU{~Q>RT3jR+GU=uiZuNd5K_Xl??DxF(g`}v zM0@N;t*|L7VgJ5*+PwzXleT0LhFASPvCptOD4BU4_{Zb`;+LR7EW2By5=u{;%Gygz zlhckgCRP9tHkkU*a&|c#`7F3Kpu9eH6+AxuTJGK$xU79}v@ak*9-hK$JV>q?umgga zn-a`YPN4O*wQhTX3*PLY)83(*Rdb6?rpAHWN_vJT2Iqt$OPz(?qL4+lZRbRDm1>kJ z>+z>c{;USMo7niO_wptSqoUyNc9kImR@QHxhdn?RZ46pTamyq{*z~1S#dBR7$x?ry z$I|?kBYOf>&Fq%95wF%HfwlX-+FlH1_T+*_gldUSL9#!rd L^L!Y(>C5ws$&16rZqPx|0$w-<|hGWK@4jJ;f;#57cvx+1B^jZ}> z_%1Gu2`k<=UiojIRZ<>)6XOU$t>j~5`(L<4vlI;{hkTDkhQD`s$)S_Yo}ZREpT zx $~xCQYRpapHIlW z)#`Y=G3|mlG`N$Fso5qpk(8tkf}B)*(!zDy#mWiYPUg4+^zkfl W~si3H!e%h4i01O=@lC$cv-L;qqt05 z@Dk>^W8@}$?WC~(cE?+$Fay2g&W@2EYVPb Ag&FsZxo9_hOJl`5RG0(0vsKO!ds*BZbIjQ6>qGk> =BeMidDVOxZSNACx?{qrJ+Ry^bkdNSH8TD zdLa)ngybLAoeAY#e_ikiKm)=Dct|IPi1q|3qfw3Mw-c4ebhY7;GddHcQ|^2PR{`0V z%WlSj@iGwoPzKx8bXMb(0p&TC#Du`gsvr?M)>7SE%Y)ox^iH$1C9s0LgNe_zZlk2P zD5A@xJi@2TQzU}1YYe scB=8yCQ&uz+5rzoaN&{5x7 zLGzhGytyHTae!@r34pByXbZ6UTTF`5_ebdQIJlH%?n&rM%rRmuWd|qb-)8{D4XRCB zD`Hys`B6!pz|g(cH$zlTt%XnCyB9$SbjuN`Se<15ym_QqiaVGh*Zqd |;1Kp@Mk_4eSi|$9QM ILXglv;hN65uFjP33?_U-@bEdS{WoR(uP8 z!%bAl*Q<>Q03q~G)sLoOk8R5$WnUqWQ-b;M)P>5V(973D0Mp^0ibecpMjWx=KRSpG zLS4zj?JwjH(Zv_#@AaWy7Eg>qh0W5@sc4YoAUhygoLxj6inAMss@A5mMKUdG4Dtse zpk;Jx0MOb$m_ej#; LvxU7vOa=693kgHMO_UKsoxvY008eiB zXwkuKmw*98x@QI|ERUIskoxT{J9{PDE7olGPv;N64Ju~hd+!S*6jJ?6X$Z^HTfS}M zwd2-RQR+q4F~^!4a1|{b$%BlNknX}je23oJ3()a$lHG>5XDigWF9EIFe45&Qu6pF$ z8O9%fv!2P 5~Qxz) #&R6#0_pL0STc-QMJ$IA(2n$ZYfa}IA{RuocvAvF;*IL0l=9w!4&HNQUa@;V^ z1E8-b1IcTCa&LiArzxmMxB1QtYBpsNVK3K!GAovbCRhgf$4GHud S@_^e!%L4yQ3Hx2l&R?$4p5dA(@`FOAzP|44S#$gS|4Wu_;T zM-w8tD}si>b)-Wp=PETL-+-CNFh3p*0&tfAM`W?@4L{@#FUl_2ZLhBYsd;xARi`W6 z`mtv}xuv3=w+}5SGw&CpzA!n{oTRDypelRQs1b$VViGR5i)2b)V1y1ark7S62RME5 z1Cy8nh r|EzDpADqs;+Rzd!Zp1|eVnpuQlN zpl5=hih{ZVq5b G8Sf|EY<$nxx{CvPVB8@pc z5)P)8CqVtBb^kN9R1v0grayTp?3bi}xuXneLXL#gIzJUoz}wOCdFw^gqh%^r*kon9 zhi+O}u=o=n2btC2xRfRl=+XPAK MKr4Df6D$@zE7 zdS=Ie?JF|}wwn@d%{-?kOZF|97r(7jwJ}bwUWCL$n-XZzKR%SmpSgLvvn^@Jxt3+Q z4f%7&>QcW2=B=*eWlXXk3;z&TGB!0Yy*5d7+iR2XjlYOHwnlZH7?QQ&!jF=cO`~qB zAa=42C(3A@5|W+_AfdD?1c)y#QDIEB;e2dOnY;@r3J4;VzV`Ua5~m$kaMI?%Tiw+9 za 6 znO#>q$QpFqzr%6xKBoy!o#%+nFph!E2V_ZU{FhyTKZa(0fTMIs1P%XZXT IR6=)e-G42G{(#~_7!qQ>UNWwC^`1?3R+OGwc5pPo6?gp z&XZ-vSSRKKE78AQ-b_@}02Qw%@>ki07D3k&WTa$JDq7sNUGgQZaeqYtG`p%keO#Y5 zQ;yo!?&fSfzgA{e3;~TJ?incx9hX^MReZFts1nB6b9&Tueh#eq27ukawL1}6;>6|^5ciTp8^anC>!mbSSZu@s>#sxy;o^0{jJp9<^)~l@o &U73Lvr`| zRN8m1eO^cC{P@$Z(m~xcctBP%XXf40#nKV(J^gC&>*-+$qHztp**&Z!W>k66yd+_* zcAB-$zJ9jKLtpe)QF6#IQ)-#%t$~|*ljAe)_;q$D@U6PEs0)C6V@M@Yf!mE{B&|xl zRqFz8Oqb?PgAdS^&c>P!9FxdVn;%@yYQLDJXrt;YgX_qWO+fpgx(zTyl+9{djzxR_ zNQk~Hp+B3LkZW>6DQ$F`zo~Wjeu0;>B<^AKWz%O+mo800h@^gHOBT?Tvh-MVQJce{ zp*_;;c|GaVoCCa0r ^T93`?#2Lj&wn zch%e2C0oRtFb+ RDv6xws9#{(R#q)>BB=8;;GDU;qe*HlqAjJkFig z;fraB-~d-J1#n~a3r AZ@V1l%4sbX-lltoF7aYIU;u=3wDIa(Wzn6lQ`X~S(Z z^__Ju`#CNlm500;r@ONzC^!jg?|hJ}hPs-`8Kv{fC<*zam}JcwJ0kIKM2IPW&xsaQ zW+8>YSd#9|mh%=3MJl?f>ga{UQ?J1ih?BasDZk39AE!;fA4GbT8$37+eBTnEvCNwmlR#c9QmLsAAKO0VRQ2WYSFXZEBhm0sdij_EE!A2y` z8i3L}QV?@yTt6h|l9VCKyFhkzn)LWv=6g{=7W_9^`6^4Gz|7al@rz*h65iTzIt3bD zdgv;prJacc-x{uAmmaxwb4Ha=>|OE>D>~AEg^F;R^CDkGv;$?#RC7j`zVAauex|U; z=mCWj+c;4Njfq?!G=pV-qO3KR7K4x=7=Wf3XGvN N+YK~mFV!a%3o$gvM>d`SkN zFTUP|fmkGTy-== qvg$m2~5XlotB1N|1~BS$z(faB9c!td6V<|dHPBt$}4sGwK3yaimCrctG> zx7cZYk4CKcwQR3`$S*6pL=Q|rKC{=N|CWB50V0YBMw7gagOx$ Kzpy{-vG;n`nzJ?Z(_}Ln5H{>l7KpxINb^;@@s5&QTlWGx^69#?0E^E= z*grQ|Q^(G)0`}+SN^ha*9mvuhZpKZl-Ldm9)t+rG$|*z8X|qm-{N#gj0Y$A=71AsN zk2B}gL I(&d0AQp3)~!?U?*&AfHBdEtp+KdAdCI3HhASBMDhCnGYs!~-%9g3@ zq6>Wg+U+P4^|u{vB}#K^yp!19Xa9~QhNi~~eg|S7ej!7=dM;190+0QjiG~1Ct~BFH zmG8naW9gNmR$9uiOAMtUj8&)^UTZb9(poPe mMr-))LWcX?XWr$Sj_=z-B>gm5H zS02usQR|yk|DJc88ws(ilKC!=h-jmuFNf7b@hs3y)p9l7vgM~>eo$ju&eOyO-#|Dr z&6g$byXBpNj}ALN0Hr2&>{hPD5y#u$5@Dd+}E?@OQ6=Y)*$b@#{lOK`6QOU03sR~)X`Dxt(g zN)zaX95%I$zn3Y9p1 k<2>3>+ z8*qAo?tpE@N90fJzHt;$#k20Jl*`p=gfR=(?P&y_;F-(>^D9R@ay(*lTT}8fxpL |4-{hPDANe#Q19&PG`mLWmFglB4~OSPslg^KGL&dlNd& zsKpZU%;)Ju;0~nFrqpN-B-A*n0(tGEZd7zB&2+1*EvXv~nXI6>wG=6bFCvdChx*@) zU4r$g4l?vqUjp)Hcs#QxbRr~I_tKxc_=QA9-GG2sS3cD#w_i;l$Qhp)IR=DCkA7R7 zIqKiXG@^(6o0hhj(M}|0Sr5Gp@E)hC=8-Jio%$aAKnf4x9}QfAM{ZFqqb7YOP?~w? z%i)JXq=h&PfSoP%iqH)#ijl}cFv*ssr&gqqp^KNqFB{F%sc_6_aa=kDwfTg_RJv$5 zW)Up_(WCfB`tLf}GG2)lCip9mUIUX0&S% HndC3|vjJQO8t8_W%Uq&=ka0%nl!|7b<6gb-78)tcvNk>=}S-+}gS{PX* z+Z(E^q+ 1^x^N_v#!|0)nD~PGC|yU`eZkRjq7ZQ!JL1n3NB= zm1YnVul!|&O_i-UX%^eFiwbvL_uX1KyOIppD*39Cf1ummDD}StUEv62&j*E#Ma?Yh zY?b+efiM5>Xz4Mu<=FAb+-31mx*`kLrb4X0!?n=0atcNNn;SJ>y5c3)&BSpYPye6# z7np=2>3A*3{3bQAM%q%>;Y;I7t?*;cL(yG!KQfMl>yhvwdi_|;kQe!#vr!<^1ESW} z+R4p2bq|3^s+4r~12+do4($HNRRu{k&00kAo_ejaST28`)P9`KY$V0aA1^0R1rLfJ zlgWb%rF(unoIh+P|DE#%6ZRo`BI6=)2Y~y=s+UE@hWy(xq6UM^_OA#4(at>=)vBwE z-QXey<7w(H3#uX#hvfGVPcQ)zKXtm=Ej3w2Wgkrd8pK35Okms &^tJ14NPk1t;$y)nFt zboDbHTr4W!ymA_P0S(+A{nUBofTnq2RpFz cSx`k2nB{G4roCS=|X&nnwn``E!_x1f*S!*>I5sVL|2BEBjS|KuDh@e6*d6yx? z5E_JgjI1C1hJL}gC;{RAz)U-4PXbA<;X1Nf+QnF8cP<%7{=FuC+pXFaX4fS%LCm|J za`>Yjcq@)#C$GXT6WUm&RskFwQJk9a3se})(Wdx|qB2b1#=p6+wH|0rmico4iW7`T zClSW!gQW+PL}sGL!RjLT0PEEA8ZT`=Q$%Uw3R^wbzRBNBn>jYZz!X6|u}20f;TiYy z{2u!&sC+KYgc?a@pVkfeLQ4J^sy?Q}D4AQQ;8jj!(cJSF^E=B+3&JUb*CeI3bvEZo zA`6iR&cor{NgBX?HfPh!=r|f7t~2*Q@NxdO(giG?Z5zSDW}lidEq|Mip|T8Dj6Z?> z8d(nv88PD44Ii)rNW62qhXkF$?g;sFlAKUSlAA%SG^Xt&*HD-rzASpx1+$^4RxKAO z#LSmMz%u97Py$Qm9I^h44VY{(X;}FwuIf{~!MSes>uJ6vyP``;0#CjcDlBP6WUO-F z$IJv@3~XhTHuj{^>T@e3rm^!fD$ZHCg{OpOo(28(P74bk5M#eCXZTTqKyTo0;-{ht zlOu^0uwbZ;NYVDrA>++ 6cx@w&)Bt|d3tmLh(mf7B3EVv_oX9V?)Zw17Yb>vN@6GW;Bj?izK9@- zb8z4Q(_8ZYc&J@w3^?MyDW%Z-^83OsRJI7FHy02B_Jf8d6S?EdzLmww_dL=>r==np z45o@g!#58tY9BVlAIQ&m>RIDBV5%4o+zLcf zc7gK(4#3Qy9Pj?dcsctDA4%ymleW`=Gb^5{^Nhgr7~mVpEbwq!QG@C=X7E_&PNDJN zZOa^^Gxd` *wQUApjvwapZ1xDv`3mcH-cqt;{8>DX}#}!@>FM~<_fU6>no$u z468#WxK40$mXKTOlj7oUv`{#iQ&6$^xAv;lJt8iK@4yk*1OzI_@qud@Ns~w1w)lRx zzX>o@ Vs9gZjk%^q&o4+e?{vSjxi|JmT2>VpZQ+-Sk|HVaX%7+X2X)H7LWpl+3~ zLGv~CeYr=e$G7?6RB(1F{bh?>ani!|{W^V8K}r({Te0zupHbBh*3<8?0|urtqr{ z*#5tv1uYl!G7+06<()R=kHgw8g5F2pjbASB27pup1oH-RnR^8Bj;+3t>-G-2L;HyS zQZ6$cA_Y0_WxYsy6`a-b78||ZxHc6vU=Jt1l*+a03emWm4#hv29fkM5clMx`{*Uw9 zUz55VYHKa7@Ba1(2%4qcc=A&K$&`K|?Nto?{dnsuSM{qHcamd;HGSyJ0GoDbHpHJA z;XSkzn`C9Ni{&y6gXQ5qv_^F^XW9|#mTeqpnVF#TWxNboq^$j#@=&*&{p>&TCI%im z)eIlBx{3zp-8RT-JkmDtWqIXpB0j2WZCeeQew|&fJaBY6d z2rHS#QreYBT=E0QQEA)kT-QJYy$@RGHE4-?Y}C|6$~Go-61oI}SjZtk2`!A;*Xpts zh5CMajhgiX*x>6MG3&+m1vec;M|jV??SN86G_jDW;BU9Dr=bc@duoo=g~pu8zKq(< z*v{91&qH8ij$tCoq2^AP4`D12I;O@p`%sGKQHhT!w7hKN`~Yto3Q^=(dSg&qx8s?R z>n=~Szh!10XEvMactfF5CO3q6=kg+B `R*|*{#nJ;V)#38Z)$`3 zZqSo~G7n)COw{B3{>V=0ZTrHKo5)4-!^!t1FY(c~aRMzTWQnrc#hvC~+x%xwk3|>P zIX~#c+$yMSM~&Ny=BjL;YDmmdU^#G>a;}Gs Gyt;87CDa31EStP$h`mFNcm$BP8yeL6Lbn|stoUTVhqWb6GpLx<(+ z{pG*OyN3M8H&YYTZa}68_JMWIj^cv1s9C$Y(c}taru}Hfvk8vGCeHoSLi F*sJ{FC+=C=5Pf|3M=u657b@VWKfHht&z36d&q(rR!S-n za%?d<;zsMRtjar})!(FwPgve_ Hm)4#z5R$W@t=J$iBx{syK~5WQYE2! zcE(DhpDU*b&oyU~tiXUYp%xBv87jF4F5FK2inJ_s$d9c94v9UAyTXMmW?&s1tJR8} zw2l5M4N}_LQheP1h^Mcsm8?GLJ?NvppR6VRx7Y$P!Qj>3^fU@b{v`zZ?i6;3)vVW& z;k$N~okwmN-|KQUGF7|WxG#Izq0#^z1bGLNFoyB?@LSOL^WPkQ{@@@TIzR| b!L_E!0EjRTP_+H12sKIO< z;i|)K{8AbvNKwTolxLg=ilbMqy(`D<;)rXno<)EtFw4S4(LwZHljx5a=t5GN2&e=) zw+cKwxYvj^syjqrq|Q1)U&``Eyd(n{&-$ke@vMpjyExi=YYnWZPnh!4U{jh0R;}F= zcQyo0S~S%MD)#l5sx^rnV18?Tw>%&rTU-mA+K+Ft2Y7YvmN`5R25-vBj%g{)^_=`; zD%wL6_yYeF7}^wmoVZ?;E6BR;iKWUrBN=zd`#Lx93mMbDco!p|@XdepC+iaY;l#>O za-}*90ur$%L1@t2Ee(}f1-2&j2T>=Dh~VBP#W!@->eCjpuPXCS$se4Drj9Gc@8SA= zcNFke7oqQh^_L=c!H#Imw;uywXx%wa !@zADty Y8#i^1S^ZrM zaA3%EfA)l>daC5~o>h?3u#xaPkFp>JnfN?lyTCdUeFpr8QaB~#o7_z(sKcw`kbM?j zF?G0pF8hde>IPNtcv>{^t`ivn-Yxj6+y`;rO=NPp-LoT>|0wK{S%ORw@+rbDnW?fE z@yy^2>6?f6lx~P)Y;8KMSMR#Xtd1rbaCJcFn!C55EEVU;kce64usm4EQz~ii1MGY) zb6S=t+BUNa{Ws?{Ta4gC&QJ{TfUl_Ysi$u=n*5lDxg#S4qz|KW19SQo$Mtouj-}&Q zSa9;HW-6FOq$*Y?gg2Q-?!mx8eMp}dC1CRxHbiJQ)b~pdJM*327p=xlUtb0Qn5ALp zrSlMid`sp(OcvM@6~X`4?zDIDV6ryq&EYRiXgsM`cq#L#kPF!59V6L8>( (`d8i15(1RXmS|E`X?#78B2fTU0cMx8( z7%-X1UIN#NhmuGG;N92dTDmd{C;sN^s!3*m06_O*q$Xkr(RpYx*|MPGWKyR8ywjq@ z9z05_iKhnFBcSb-lyR|P?%JApdCm1eocaUZ^w? -N=mxfM?~z6- z(HoO67ZT#?1a&i^U&Og03kBw e=R{B zQl3Y2Hg_523^2z_6pmun2%(Ug1eXni8|@)1Bh(EUCyXa_neZI;!!Usr32)Ioq%uJR zeY!FsSrnrNYb92cT4x**s2e&F%p%_`)&DJwCLLt5A({)v0!f1?+>&*SQD{ EorZIv%Fx)abrAkCTegD>Sv90@I;!N}&vNhF% zsC}!f?D)hB!nGp@$miBZe0#);QLxC12G9xURNcxMRuN!2bDZLq41&!tH3w=_1wTWD zXO4kt%%cp<`E<=$rI%yt!4stTKWSfrns-UsYR>BY_$6y=it)#K+CGjD =Dw=iz-)th1`&HjxqdCFv+ZPRv1j>yTeH;axiEzk z-VwHrzuv1G9G*7f1d ~R2015$9$n#79 z@@*mjfwo=vSVr(xV;qIz$eCe2E$r|xyBnHWZ>ar401}P{79%b6tVn?(AAHUDiPYo@ z_Ruvc9wN$ELGU;}>ixnLY53|lty{ch9!4Ss1Ovr05Fr5MHAuL`ZVzd q>g08rBPEA%llVrah+tJk2O*hsV7zBv0VZ5{!(l%e&9@jkt69CM8WvomMbdZw zT+v7w>?WAB)yN*sTAV@BtTCz}7}x4xlrK905CVDQGw-hnu@v0G)iJanY&a%jNwjCg zXaL~E19$#z ~2+CUVJoBTU;GZNN68|}Qa+C+#bCABEwV8mp!@eTI#Bi%_B zxSc@Hy2!4IJW|&?zn9ZyC$ox*&XtdyMk%$-Fx%smY5tJ9f=3M;V{(l`V$FYS@Xe1n zrcrwDal={Uca+9~_`RHDcDVI+2Me_!t!{|EQXfv;Uf?6u5hOO-6r71^r_;=!mq(pS zZL7dnd`0~+qg8iB`>MB_j_jW4Fa#O~L~ei{<970Ved;*?@Ap|_cM$Cnt8@#I@kb;C zVG1f<(o8#*NA}J|0fyLtA~T^euFI!u*1+HRS-hhnC7bE8H~iYI9aU*ayg`}8RYJ zFtavr_RCfwuLP|Lsozvi^wQgwA`*O$#3P_qHs6H1V9gG)IGT?fFBtPdyZf~U45y9l zBv*XmujbTXnj >Hw(s7ICIfwd4BD zs=j0d_Ux%onwT&WLHcCWqy9(BM?V9?ilIS+Kbhc`$<8Ni2G%^u`qAH6z;K4tcRd3* zmNDh-?MId9BcAaZe*)^BeV6e}7lQ>cW;7*G((40jDvt#9xWpGvyOw;K)Xy9{U0pd$ zyi~f#IWGe#tRM2rPI4LqcotBn-GOR54@rMW45wy2IhRbu!S%r7`oGFZxXjw>W#~V+ z)U{>K_+oxl{eef$T`-a32Ey4DN98vqhz12unZUM*#<0G7=n|tuI}ti-sHJXnx_q@$ zC-6!#l>BXZ_ksxVJm(hZcOQ*gs*}fqL3l69kf35SQ!pmrbHq=8A-3h-A-n(H@pvOm z%I3Q;V^KNbbWB6pJ=v|geFz|OJF-hN@pJ`%33Z)Uuw@*2RQ=u50IHaSyFrHTsKyUS z7FkM5L)9NlsM1)YjI$pLvr_W0ld=o@aHf8vrvxW1}9$P1F1;kczP>`8{FW1K}v2y=mmN;)X{d0e+ds9eqD+oWKbqozFA(df8 zBQ)Kzl?&vQ4ZevbWz0-Wx0YPkHjf`(2E~P%Rmx;fqV}qrkbhw+HnWg#D>Z_jiCzq0 zlH4P2X3McM1yfC~X`sx!ftm%hlW4pIhYTaqa`2rR9RIj>02pKuUx_u>r74rYS%BgP zGonNM6X$nU(UkmU-iDeS2PCGO=dh+wG8-2BHeb_G02;H#W@?B$Dun_27W0;e7!m(s z=+vsMgNsi%aT(!qBR2TgUrBc(Zo}#$E>El7KFnM}imCLgSS7k-@`-o20!feILBiVz zPzN{>#~CxyV_-#cO(Q|B%soaZ+(aJ8=96vL(bBD`o(>5O9DQ%gM8Pn@fJ;X2ofw3; zTE(mEZ*II|be|bBN*Q 7N^OzAKjAmHY z-N{s?xbY|Fj|vR>L#c9*z+2Y`xLgVsx?e$Np@is4N^&P1dYWu&S;T1NR00s!{=B42 z1Yg7r ytFTeLYgOhcQ0nu7+>U7^-}`74UhCk9B}Nc`>z(Nj_{QpM}!1FkKLMQ zC#N`}@bQn1>a Na9LT?dkkRoK zpXW=F?mGr;_(rn%wy9U&0vVW46VKs;-9H_dt2k?Ea+5LWXxk~IxPae&_e>9c?7sg! z3FQ1w(}{zbmFxd %1zuu9YEZn7!e25a(Gl8saSsxv$j&pDrgF|rocdh8# z1OW*{19*{cbKbwLoiPY^2tGZ@&sI#HdzOx0){f>9BLO_qLA*+1w?~htJtVP3szTYo zu>;i*q0)teiK+OP%CA&CKkft}>Jd9y =VxcoMoZsw=EoN*k#aU+rKTVDQW<; X) 3^!lUQ%ai*7>vn$m9-R0y2DKoUtn4Rlu{Q`X?hx#eTiZ`b zWkV~Qbsn=t)(oLC*jQC~Z|pV D=H|nq`urPB>Xct}BoX)f){Qq&|J9&AkNV+5*ykrf+{{4ftacM9Ui!=FwjPWo_R| zZqP6F!JyB?e^=E#x-Qs7Y)_NhMNdLb`d8 =`6k+fMH&Ztz|3%b_rY&eRn=;A@Lx-F8}{M@nFiG>Vzvh|+8%y6nOi z3+HjjgTO|GcV1a dkP zPJ`A$qy0 dUFHBP50U`9;x_<0R?Oo<{{HK6ydF9wy{A( zH+$@`^OEM!J}=d+ELlJd$Ks=%eR{YN!qdYv=Q~|!?Gs!cPXu5bFi|4*C-+~Ugf@;3 z&P0;^N;GhSH2Fb^i5oa0!Bi)1nLNHoj=xgTI>nB_zJ=rpCzBOE*CFzRNMvSp=@H}e zjePq^#E{5k1o!KR<`@0N- 2*fUjUC9tHo= C5~2? zq#=wj_-qI&DD2%vU=nGR%q9)u6 aySHof=GYp@p+`yW48$@2tFcmSXJ=_Lm=xLwn74|&il4>WiO>>tCoU* zD^B5-k>rwx{uyC@y;^*bDlb=PDRdSf3Iu`U7BaN4Of)GT=o!P`a9v0%x$wX|T|5oh zz&mTzc@j|f+{?VxKs=lX&(X1~BbmrRVl=qj@GD(zBeRu=7?Fvy`B7I4jM1H9uh#oZ z)sQXA>kvo$xHeI0=+yzT+x;R3vv>{-l~#VJroskSdT@l9jI-fpq1agOLCk`eJHUhl zC!a+b)Seq1n1pfUU+rgEbAWN@O?WFEiRmSDvY?9~Vc@cbb5c8h(Yz)r^}Jmz$L6MS z$k9zTKy1>dp;M($Z0Ep8yGtwr{r$K<$*qiL_oE_EQ?2gqMEmJe@A+XYG5^#2Iw%B3 zG+Q*k%Trm`RiUt7mmoM)#W6o@c)twV #wMO^Og zE5rw=x_WkS!JI4A#Kxp>iBcmrqapw!VTMkVXthj{T4}^PY_LR}t!4`{RTi<+uEdii z5FEAy%3Ws^2R=wus=)56=KU^|>EduI8j`cI!jO7lNsp}R6~Q)$xUS|Hpjf#WkK(kR z0+({yhnx-7(Uqk}XXwWEo7L>3`PIci>BWyTioi}1fgYX{0Gu~IJ;Mj5V@djCgY?20 z`#rPxt2(`DD>Xfpjsh0Yb__Q 9uA%0*)QFUTE3S+R6 fR&G;y(uLvP2q0i34YrjD)%&QQE8E_I z(){4(!5F0dCo%kcW0kHHtNR-(E{uF)X(xdI@YiTCs4Ex4A39d%85dlC z$k!29gmTdan?zX{1`z0DKMONzTE3MFk4 Ux^&JDzS9Ji<}+$L-}GoD7jKF5tBXBqn%^?laiaIrPcRz1962cfphb3+f?b zdFVWVB#*wf?s}LoMTf!2uEDxatapv c~wE{I(HF{ z5Y#huXt@G|i;)j6Q{lDI--G}lr#cIPbaw-0pPn$_vyxV_Rz$caD ;TGW>+Xp5q bZ$zAO*mxe-)}eR6{T|K!S$nDq>svBbSGvZ!f0ZQ5iJ0%p?QTOn z?Djtap5^Q07p~rXHIWX_Xdu^|ZoeKQ-4z@& 9 `{cbjLbevz8_eyK(2p4Xb8|E#6)GxgUNG;SkP+l-x3 zl0Ma&A<84bl#SuT?+(D{&DTEaJbs7}8WF8sC$2S9EgQXS>1;}p5(6mSWuQL-kr-&4 ziq>&5{~bF$=s_NvLPj1{1EtDY_E%!2Jf+sf_U2qu0>!+RkcAMWsl%Sab`iy&!9lQ8 z%j@x(+DM&*=BAdSYZ!*e{32^i%=|w98*!0(DO?_4bNiGf@sj1Nujjelzbmw!6`x6n z>Imx}SFvsi6*89wQ9I`crA6W<5#=)K9OM?&44Jyo(~%_@Ls1CKHe&Nq%-Uc3ff4l> zcLIS?KA|A hQC{~h?G^zZcyUI`iLmy zM>bP|c%- C(*Hr-|N ^Q5d4Xb()x$n!|7s z2{-QJnyeDWKWVSKSk=AnA*5UgkF;ScP0C<^VF7{EGDz6<^MV&!((0K3Pb=?x)t$;y z^<8A@4xB%oBs%}%2co)@d2o}VNI=+#ho_>74GW0d?LMrIB1&$Ed^G!VH!)7^HK(g; zUFAcN^(sL>cN8GY=lX6cPnNRjui@2z^OQ^hng%AP*5yO&5%pw)D9F!>@A}zvmq0av ziszc3*rJru9d~ofdIx_ `P8du zyDt#a%`Rpx+i4AXx3+C}mVL;wSf4r&P1VX^D0Uq>I%;oaGqPy=J~(U0%&Gb1f;%6? zNFwX%Y~zlIkwd3Q5GEzJZ;6D3mWW at;^UmE*6q=gZY(5W|0LSGEXn2tKHe z28;`(V{c=?A(-vQj_8e+kwuo=#MV=;6&NS=7Gk7uj=ftl4fJPgodr>*rHs?fkT4V} zUV{q4hYM@n+0lx8j{gFnn>kQ4;sk>?Tz8^}dNXOA@b9!b!~9=9Jr{lgbq`L8K>22! zIVg%3DH$W=*kVBS7%e>T;jFZFOIS7;M3Qy&@!gdM(;)>k9g=5RI!l2*9L@VC6qoGk zJn?E(I^GK&Fp0>^Fve(fqK(5AC^6f4wb|euUl$q&O0cYi^bx7LNJ^AZOx8vmja)0L zRq==9SH8r*vE>Zj_UeBC{iTiClj%NSmrs%_=F`VfWW_qke6*l22A*~TKDTbObYy4i zU8f`tr@`S{+{{%LJ>>RQvi{cKyCg~*>p#!x%ehu3T|4rPiW&FDop~|;@SjYRFks<* z3WtEO=4EC15Dlz%tiKQcoe^ J!D&6{H_f2#e;(AOz2QBDg&@ncMZNc%Yb=iAK3s(TD z42_d^d<#$U%VwM$6`*^@L_%ESZ%B4pAOn?k2W@`R%_Dd@0rp{R>q9r{XFUlsGHq*? zkxi~%9$we!SapgI>_O-jm9Baz!)ape5B%|11&_@TbrHO|>(a;>kV=bkR|=55 sUQ?7G>h35Qj9o&7Bj-Zl2XpV |J;{=YJL{L+kZWraHI8m=D!@fwDmJ(zV&=z3NT1h06kgJ*5 +!K4q(q| zng7y^T{l$QH de{C~1B95`0M|4@?y{Hw`P0xz64ITNeK z6$FCIpODRE@?iosz7r{Sjt1i!^+(1uXe^=dNYhEEI;oS1$nD#%YkfhP7d?(Q$`_OA z>Ou#b=1v~YpuTw{$UHF)h@PK)KI!?j`QPu;3QHueYF^(?ho%}9Dk^!)^Jx|C3Nkt@ zHbsOp?n>hvF)H>?%|B&7fV7doDZ4KZED5!<405$3%%#S)n*E@zoIU$8CnIyJaM}EF z<^A$5j;&dufke^%MBUB>-wnec_J{*v-Lt0cs4RVzM2Kv){mKAnnO_CD@a$G!v(Z2% zbVtr8I-VCP)>}WQpuN=tZTAM%ed4wo=VVNJJMQ#9IqX5O$$J*0K>bt4+RxkpQux~f zLhG%`FV}k{F8#8stP?fNvBJYFVCEQtI0Jg#$&N=BF1=9lzV%=4kKl^wLEwzEZklv( zTNh##ZC(cCcd22RyRAVi9 s7TcbXtN7ybjhi !-RD@NjnZa*_4@X2XHCrh8ZsHBe(p8yd_E>GTXj4gIELoV}Kew(xq;e){=%6 x@eBBVW zVH6ydc+_53hL|wk{Ms#CH0DX}9>6V^&hKDw35sF$N4B8Jf_-7eB|`CEZu4=w&*_QK z0c_#z`XUb`CCKCWa(sByeuib|NxPWNZGRaZ2YqV+uhJ4azzlp((!?+mMTl-D$>sXs zlLQVBnUT`rqgJP*`&hiVn1~y@?rlaPKw|yET9^#FdHKE{&UuIm4%D?&lOkfh`ETua zSx)wP5!u}iHsR%cyB{5V;2ZcnM*b-q%}Sfl@cD={KNQpaY2X?Y(ag7}XHC?~2kYx# z02aYOs+jCiR@!@~*aG{9`G>EPI5DL!hRAxrcC{;5FnM$VJA+%Uq9^s>4r&cV52G@+ zlgqOq{tR=lhY7tlQB>T1vXRb6Hj+Odz6zVO;Q>bftfu?ZDj&%4JNpFf!<+J|naSI_ zif{x(tRI;7g-Z=~H8Rq9ly(As7w2v)S~~`?S4^hj6F