static L takeFirstNSSILines(int maxLines, Iterable l) { int sum = 0; new L out; fOr (ssi : l) { if (sum >= maxLines) break; int linesToCopy = min(ssi.height(), maxLines-sum); out.add(linesToCopy == ssi.height() ? ssi : ssi.topPart(linesToCopy)); sum += ssi.height(); } ret out; }