!7 static double timeout = 60; // 60 seconds safety static double refreshDelay = 0; // 0 seconds to refresh static L data = synchroList(ll("Start.")); html { S add = params.get("add"); if (nempty(add) && neq(last(data), add)) data.add(add); int i = toInt(params.get("i")); int n; long start = sysNow(); while (l(data) == i && licensed() && sysNow() < start+timeout*1000) sleep(10); if ((n = l(data)) < i) i = 0; ret hrefresh(refreshDelay, selfLink(i := n)) + hcenter( join("
", map(f dynamize, cloneList(data))) + p("Bla bla here:", style := "margin-top: 40px") + hform(htextinput("add", "", autofocus := 1, style := "text-align: center") + " " + hsubmit("Say")) ); }