public static MethodSlot findPrototypeMethod(Symbol methodname, Surrogate abstracttype) {
    { Slot method = null;

      { Surrogate sub = null;
        Cons iter000 = ((Stella_Class)(abstracttype.surrogateValue)).classDirectSubs.theConsList;

        for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
          sub = ((Surrogate)(iter000.value));
          if (((Stella_Class)(sub.surrogateValue)) != null) {
            if (((Stella_Class)(sub.surrogateValue)).abstractP) {
              method = Symbol.findPrototypeMethod(methodname, sub);
            }
            else {
              method = Stella_Class.lookupSlot(((Stella_Class)(sub.surrogateValue)), methodname);
            }
            if ((method != null) &&
                (!Stella_Object.storageSlotP(method))) {
              return (((MethodSlot)(method)));
            }
          }
        }
      }
      return (null);
    }
  }