!7
html {
  if (!webAuthed()) ret "no";
  Class main = getBotMainClass("Truth Table");
  
  new StringBuffer buf;
  O concepts = get(main, "mainConcepts");
  buf.append("Statements: " + call(concepts, "countConcepts") + "\n");
  for (O c : values(cloneMap((Map) get(concepts, "concepts")))) {
    Statement s = fastLoadStatement(c); 
    //buf.append("Statement: " + getString(c, "globalID") + " - " + getString(c, "text") + "\n");
    buf.append("Statement: " + s.globalID + " - " + s.text + "\n");
  }
  
  main = getBotMainClass(dbBotName(aiConceptsProgram()));
  concepts = get(main, "mainConcepts");
  buf.append("Concepts: " + call(concepts, "countConcepts") + "\n");
  for (O c : values(cloneMap((Map) get(concepts, "concepts"))))
    buf.append("Concept: " + getString(c, "globalID") + " - " + getString(c, "name") + "\n");
    
  ret hpre(htmlencode(buf));
}