[ CloseSub; if (ObjectIsUntouchable(noun)) return; if (noun hasnt openable) return L__M(##Close,1,noun); if (noun hasnt open) return L__M(##Close,2,noun); give noun ~open; if (AfterRoutines()==1) rtrue; if (keep_silent==1) rtrue; L__M(##Close,3,noun); ];