!7 sclass CandidateMsg { S symbol, text; int secs; // seconds after last post bool bot; } p-tt { ai_alternativeSmartBot(); temp ActualThoughtSpace ts = newThoughtSpace(); for (L t : ai_all_threeInARow("Chat line")) { L l = makeCandidateMsgs(t); continue unless !l.get(0).bot && l.get(1).bot && !l.get(2).bot; for (CandidateMsg m : l) print((isTrue(m.bot) ? "[B]" : isFalse(m.bot) ? "[U]" : "[?]") + " " + s + ": " + m.text + " [" + m.secs + " s]"); print(); } } static CandidateMsg makeCandidateMsgs(L t) { new L l; for (S s : t) { new CandidateMsg m; m.symbol = s; m.text = ai_chatLineText(s); m.secs = (int) ai_chatLineTimeDiff(s)/1000; m.bot = ai_chatLineSentByBot(s); l.add(m); } ret l; }