[ EmptyTSub i j k flag; if (noun == second) return L__M(##EmptyT,4); if (ObjectIsUntouchable(noun)) return; if (noun hasnt container) return L__M(##EmptyT,1,noun); if (noun hasnt open) return L__M(##EmptyT,2,noun); if (second~=d_obj) { if (second hasnt supporter) { if (second hasnt container) return L__M(##EmptyT,1,second); if (second hasnt open) return L__M(##EmptyT,2,second); } } i=child(noun); k = children(noun); if (i==0) return L__M(##EmptyT,3,noun); while (i~=0) { j=sibling(i); flag = 0; if (ObjectIsUntouchable(noun)) flag = 1; if (noun hasnt container) flag = 1; if (noun hasnt open) flag = 1; if (second~=d_obj) { if (second hasnt supporter) { if (second hasnt container) flag = 1; if (second hasnt open) flag = 1; } } if (k-- == 0) flag = 1; if (flag) break; if (keep_silent == 0) print (name) i, ": "; ; i=j; } ];