source@mandoc.bsd.lv
 help / color / mirror / Atom feed
* mdocml: Multiple tbl(7) improvements: * Do not discard data that lacks a
@ 2017-06-16 20:01 schwarze
  0 siblings, 0 replies; only message in thread
From: schwarze @ 2017-06-16 20:01 UTC (permalink / raw)
  To: source

Log Message:
-----------
Multiple tbl(7) improvements:
* Do not discard data that lacks a matching layout cell but remains 
within the number of columns of the table as a whole.
* Do not insert dummy data rows for any layout row starting with a 
horizontal line, but only for layout rows that would discard all
the data on a matching non-empty data row.
* Print horizontal lines specified in the layout even if there is 
no matching data cell.
* Improve the logic for extending vertical lines to adjacent rows, 
for choosing cross marks versus line segments, and some related details.

Modified Files:
--------------
    mdocml:
        tbl_data.c
        tbl_term.c
    mdocml/regress/tbl/layout:
        Makefile

Added Files:
-----------
    mdocml/regress/tbl/layout:
        lines-nogroff.in
        lines-nogroff.out_ascii
        lines.in
        lines.out_ascii

Revision Data
-------------
Index: tbl_data.c
===================================================================
RCS file: /home/cvs/mdocml/mdocml/tbl_data.c,v
retrieving revision 1.42
retrieving revision 1.43
diff -Ltbl_data.c -Ltbl_data.c -u -p -r1.42 -r1.43
--- tbl_data.c
+++ tbl_data.c
@@ -51,17 +51,26 @@ getdata(struct tbl_node *tbl, struct tbl
 		cp = cp->next;
 
 	/*
-	 * Stop processing when we reach the end of the available layout
-	 * cells.  This means that we have extra input.
+	 * If the current layout row is out of cells, allocate
+	 * a new cell if another row of the table has at least
+	 * this number of columns, or discard the input if we
+	 * are beyond the last column of the table as a whole.
 	 */
 
 	if (cp == NULL) {
-		mandoc_msg(MANDOCERR_TBLDATA_EXTRA, tbl->parse,
-		    ln, *pos, p + *pos);
-		/* Skip to the end... */
-		while (p[*pos])
-			(*pos)++;
-		return;
+		if (dp->layout->last->col + 1 < dp->opts->cols) {
+			cp = mandoc_calloc(1, sizeof(*cp));
+			cp->pos = TBL_CELL_LEFT;
+			dp->layout->last->next = cp;
+			cp->col = dp->layout->last->col + 1;
+			dp->layout->last = cp;
+		} else {
+			mandoc_msg(MANDOCERR_TBLDATA_EXTRA, tbl->parse,
+			    ln, *pos, p + *pos);
+			while (p[*pos])
+				(*pos)++;
+			return;
+		}
 	}
 
 	dat = mandoc_calloc(1, sizeof(*dat));
@@ -185,58 +194,78 @@ newspan(struct tbl_node *tbl, int line, 
 void
 tbl_data(struct tbl_node *tbl, int ln, const char *p, int pos)
 {
-	struct tbl_span	*dp;
 	struct tbl_row	*rp;
+	struct tbl_cell	*cp;
+	struct tbl_span	*sp, *spi;
+	struct tbl_dat	*dp;
+	int		 have_data, spans;
+
+	rp = (sp = tbl->last_span) == NULL ? tbl->first_row :
+	    sp->pos == TBL_SPAN_DATA && sp->layout->next != NULL ?
+	    sp->layout->next : sp->layout;
 
-	/*
-	 * Choose a layout row: take the one following the last parsed
-	 * span's.  If that doesn't exist, use the last parsed span's.
-	 * If there's no last parsed span, use the first row.  Lastly,
-	 * if the last span was a horizontal line, use the same layout
-	 * (it doesn't "consume" the layout).
-	 */
-
-	if (tbl->last_span != NULL) {
-		if (tbl->last_span->pos == TBL_SPAN_DATA) {
-			for (rp = tbl->last_span->layout->next;
-			     rp != NULL && rp->first != NULL;
-			     rp = rp->next) {
-				switch (rp->first->pos) {
-				case TBL_CELL_HORIZ:
-					dp = newspan(tbl, ln, rp);
-					dp->pos = TBL_SPAN_HORIZ;
-					continue;
-				case TBL_CELL_DHORIZ:
-					dp = newspan(tbl, ln, rp);
-					dp->pos = TBL_SPAN_DHORIZ;
-					continue;
-				default:
-					break;
-				}
-				break;
-			}
-		} else
-			rp = tbl->last_span->layout;
+	assert(rp != NULL);
 
-		if (rp == NULL)
-			rp = tbl->last_span->layout;
-	} else
-		rp = tbl->first_row;
-
-	assert(rp);
-
-	dp = newspan(tbl, ln, rp);
+	sp = newspan(tbl, ln, rp);
 
 	if ( ! strcmp(p, "_")) {
-		dp->pos = TBL_SPAN_HORIZ;
+		sp->pos = TBL_SPAN_HORIZ;
 		return;
 	} else if ( ! strcmp(p, "=")) {
-		dp->pos = TBL_SPAN_DHORIZ;
+		sp->pos = TBL_SPAN_DHORIZ;
 		return;
 	}
-
-	dp->pos = TBL_SPAN_DATA;
+	sp->pos = TBL_SPAN_DATA;
 
 	while (p[pos] != '\0')
-		getdata(tbl, dp, ln, p, &pos);
+		getdata(tbl, sp, ln, p, &pos);
+
+	/*
+	 * If this span contains some data,
+	 * make sure at least part of it gets printed.
+	 */
+
+	have_data = 0;
+	cp = rp->first;
+	for (dp = sp->first; dp != NULL; dp = dp->next) {
+		if (dp->pos == TBL_DATA_DATA && *dp->string != '\0') {
+			if (cp == NULL ||
+			    (cp->pos != TBL_CELL_HORIZ &&
+			     cp->pos != TBL_CELL_DHORIZ))
+				return;
+			have_data = 1;
+		}
+		spans = dp->spans;
+		while (spans-- >= 0) {
+			if (cp != NULL)
+				cp = cp->next;
+		}
+	}
+	if (have_data == 0 || rp->next == NULL)
+		return;
+
+	/*
+	 * There is some data, but it would all get lost
+	 * due to horizontal lines in the layout.
+	 * Insert an empty span to consume the layout row.
+	 */
+
+	tbl->last_span = sp->prev;
+	spi = newspan(tbl, ln, rp);
+	spi->pos = TBL_SPAN_DATA;
+	spi->next = sp;
+	tbl->last_span = sp;
+	sp->prev = spi;
+	sp->layout = rp->next;
+	cp = sp->layout->first;
+	for (dp = sp->first; dp != NULL; dp = dp->next) {
+		dp->layout = cp;
+		dp->spans = 0;
+		if (cp != NULL)
+			cp = cp->next;
+		while (cp != NULL && cp->pos == TBL_CELL_SPAN) {
+			dp->spans++;
+			cp = cp->next;
+		}
+	}
 }
Index: tbl_term.c
===================================================================
RCS file: /home/cvs/mdocml/mdocml/tbl_term.c,v
retrieving revision 1.52
retrieving revision 1.53
diff -Ltbl_term.c -Ltbl_term.c -u -p -r1.52 -r1.53
--- tbl_term.c
+++ tbl_term.c
@@ -28,11 +28,15 @@
 #include "out.h"
 #include "term.h"
 
+#define	IS_HORIZ(cp)	((cp)->pos == TBL_CELL_HORIZ || \
+			 (cp)->pos == TBL_CELL_DHORIZ)
+
 static	size_t	term_tbl_len(size_t, void *);
 static	size_t	term_tbl_strlen(const char *, void *);
 static	size_t	term_tbl_sulen(const struct roffsu *, void *);
 static	void	tbl_char(struct termp *, char, size_t);
 static	void	tbl_data(struct termp *, const struct tbl_opts *,
+			const struct tbl_cell *,
 			const struct tbl_dat *,
 			const struct roffcol *);
 static	void	tbl_literal(struct termp *, const struct tbl_dat *,
@@ -65,7 +69,7 @@ term_tbl_len(size_t sz, void *arg)
 void
 term_tbl(struct termp *tp, const struct tbl_span *sp)
 {
-	const struct tbl_cell	*cp;
+	const struct tbl_cell	*cp, *cpn, *cpp;
 	const struct tbl_dat	*dp;
 	static size_t		 offset;
 	size_t			 coloff, tsz;
@@ -107,9 +111,9 @@ term_tbl(struct termp *tp, const struct 
 		/* Horizontal frame at the start of boxed tables. */
 
 		if (sp->opts->opts & TBL_OPT_DBOX)
-			tbl_hrule(tp, sp, 2);
+			tbl_hrule(tp, sp, 3);
 		if (sp->opts->opts & (TBL_OPT_DBOX | TBL_OPT_BOX))
-			tbl_hrule(tp, sp, 1);
+			tbl_hrule(tp, sp, 2);
 	}
 
 	/* Set up the columns. */
@@ -161,10 +165,7 @@ term_tbl(struct termp *tp, const struct 
 
 		tp->tcol++;
 		tp->tcol->offset = coloff;
-		if (sp->opts->opts & (TBL_OPT_BOX | TBL_OPT_DBOX) ||
-		    sp->opts->rvert)
-			coloff++;
-		tp->tcol->rmargin = coloff;
+		tp->tcol->rmargin = tp->maxrmargin;
 
 		/* Spans may have reduced the number of columns. */
 
@@ -173,16 +174,21 @@ term_tbl(struct termp *tp, const struct 
 		/* Fill the buffers for all data columns. */
 
 		tp->tcol = tp->tcols;
+		cp = cpn = sp->layout->first;
 		dp = sp->first;
 		spans = 0;
 		for (ic = 0; ic < sp->opts->cols; ic++) {
+			if (cpn != NULL) {
+				cp = cpn;
+				cpn = cpn->next;
+			}
 			if (spans) {
 				spans--;
 				continue;
 			}
 			tp->tcol++;
 			tp->col = 0;
-			tbl_data(tp, sp->opts, dp, tp->tbl.cols + ic);
+			tbl_data(tp, sp->opts, cp, dp, tp->tbl.cols + ic);
 			if (dp == NULL)
 				continue;
 			spans = dp->spans;
@@ -197,9 +203,13 @@ term_tbl(struct termp *tp, const struct 
 		tp->tcol = tp->tcols;
 		fc = '\0';
 		if (sp->layout->vert ||
-		    (sp->prev != NULL && sp->prev->layout->vert) ||
+		    (sp->next != NULL && sp->next->layout->vert &&
+		     sp->next->pos == TBL_SPAN_DATA) ||
+		    (sp->prev != NULL && sp->prev->layout->vert &&
+		     (horiz || (IS_HORIZ(sp->layout->first) &&
+		       !IS_HORIZ(sp->prev->layout->first)))) ||
 		    sp->opts->opts & (TBL_OPT_BOX | TBL_OPT_DBOX))
-			fc = horiz ? '+' : '|';
+			fc = horiz || IS_HORIZ(sp->layout->first) ? '+' : '|';
 		else if (horiz && sp->opts->lvert)
 			fc = '-';
 		if (fc != '\0') {
@@ -216,33 +226,79 @@ term_tbl(struct termp *tp, const struct 
 			term_flushln(tp);
 		} else {
 			cp = sp->layout->first;
+			cpn = sp->next == NULL ? NULL :
+			    sp->next->layout->first;
+			cpp = sp->prev == NULL ? NULL :
+			    sp->prev->layout->first;
 			dp = sp->first;
 			spans = 0;
 			for (ic = 0; ic < sp->opts->cols; ic++) {
 
-				/* Advance to next layout cell. */
+				/*
+				 * Figure out whether to print a
+				 * vertical line after this cell
+				 * and advance to next layout cell.
+				 */
 
 				if (cp != NULL) {
 					vert = cp->vert;
-					cp = cp->next;
-				} else
+					switch (cp->pos) {
+					case TBL_CELL_HORIZ:
+						fc = '-';
+						break;
+					case TBL_CELL_DHORIZ:
+						fc = '=';
+						break;
+					default:
+						fc = ' ';
+						break;
+					}
+				} else {
 					vert = 0;
+					fc = ' ';
+				}
+				if (cpp != NULL) {
+					if (vert == 0 &&
+					    cp != NULL &&
+					    ((IS_HORIZ(cp) &&
+					      !IS_HORIZ(cpp)) ||
+					     (cp->next != NULL &&
+					      cpp->next != NULL &&
+					      IS_HORIZ(cp->next) &&
+					      !IS_HORIZ(cpp->next))))
+						vert = cpp->vert;
+					cpp = cpp->next;
+				}
+				if (vert == 0 &&
+				    sp->opts->opts & TBL_OPT_ALLBOX)
+					vert = 1;
+				if (cpn != NULL) {
+					if (vert == 0)
+						vert = cpn->vert;
+					cpn = cpn->next;
+				}
+				if (cp != NULL)
+					cp = cp->next;
 
-				/* Skip later cells in a span. */
+				/*
+				 * Skip later cells in a span,
+				 * figure out whether to start a span,
+				 * and advance to next data cell.
+				 */
 
 				if (spans) {
 					spans--;
 					continue;
 				}
-
-				/* Advance to next data cell. */
-
 				if (dp != NULL) {
 					spans = dp->spans;
 					dp = dp->next;
 				}
 
-				/* Print one line of text in the cell. */
+				/*
+				 * Print one line of text in the cell
+				 * and remember whether there is more.
+				 */
 
 				tp->tcol++;
 				if (tp->tcol->col < tp->tcol->lastcol)
@@ -255,21 +311,55 @@ term_tbl(struct termp *tp, const struct 
 				 * but not after the last column.
 				 */
 
-				if (tp->tcol + 1 == tp->tcols + tp->lasttcol)
-					continue;
-				if (vert == 0 &&
-				    sp->opts->opts & TBL_OPT_ALLBOX)
-					vert = 1;
-				if (vert == 0)
+				if (fc == ' ' && ((vert == 0 &&
+				     (cp == NULL || !IS_HORIZ(cp))) ||
+				    tp->tcol + 1 == tp->tcols + tp->lasttcol))
 					continue;
 
-				if (tp->tcol->rmargin + 1 > tp->viscol) {
+				if (tp->tcol->rmargin > tp->viscol) {
 					(*tp->advance)(tp, tp->tcol->rmargin
-					   + 1 - tp->viscol);
-					tp->viscol = tp->tcol->rmargin + 1;
+					   - tp->viscol);
+					tp->viscol = tp->tcol->rmargin;
 				}
-				while (vert--) {
-					(*tp->letter)(tp, '|');
+
+				if (tp->tcol->rmargin + 1 > tp->viscol) {
+					(*tp->letter)(tp, fc);
+					tp->viscol++;
+				}
+
+				if (tp->tcol + 1 == tp->tcols + tp->lasttcol)
+					continue;
+
+				if (fc == ' ' && cp != NULL) {
+					switch (cp->pos) {
+					case TBL_CELL_HORIZ:
+						fc = '-';
+						break;
+					case TBL_CELL_DHORIZ:
+						fc = '=';
+						break;
+					default:
+						break;
+					}
+				}
+
+				(*tp->letter)(tp,
+				    fc == ' ' ? '|' : vert ? '+' : fc);
+				tp->viscol++;
+
+				if (fc != ' ') {
+					if (cp != NULL &&
+					    cp->pos == TBL_CELL_HORIZ)
+						fc = '-';
+					else if (cp != NULL &&
+					    cp->pos == TBL_CELL_DHORIZ)
+						fc = '=';
+					else
+						fc = ' ';
+				}
+				if (vert > 1 || fc != ' ') {
+					(*tp->letter)(tp, fc == ' ' ? '|' :
+					    vert > 1 ? '+' : fc);
 					tp->viscol++;
 				}
 			}
@@ -278,14 +368,23 @@ term_tbl(struct termp *tp, const struct 
 		/* Print the vertical frame at the end of each row. */
 
 		fc = '\0';
-		if (sp->layout->last->vert ||
-		    (sp->prev != NULL && sp->prev->layout->last->vert) ||
+		if ((sp->layout->last->vert &&
+		     sp->layout->last->col + 1 == sp->opts->cols) ||
+		    (sp->next != NULL &&
+		     sp->next->layout->last->vert &&
+		     sp->next->layout->last->col + 1 == sp->opts->cols) ||
+		    (sp->prev != NULL &&
+		     sp->prev->layout->last->vert &&
+		     sp->prev->layout->last->col + 1 == sp->opts->cols &&
+		     (horiz || (IS_HORIZ(sp->layout->last) &&
+		      !IS_HORIZ(sp->prev->layout->last)))) ||
 		    (sp->opts->opts & (TBL_OPT_BOX | TBL_OPT_DBOX)))
-			fc = horiz ? '+' : '|';
+			fc = horiz || IS_HORIZ(sp->layout->last) ? '+' : '|';
 		else if (horiz && sp->opts->rvert)
 			fc = '-';
 		if (fc != '\0') {
-			if (horiz == 0) {
+			if (horiz == 0 && (IS_HORIZ(sp->layout->last) == 0 ||
+			    sp->layout->last->col + 1 < sp->opts->cols)) {
 				tp->tcol++;
 				(*tp->advance)(tp,
 				    tp->tcol->offset > tp->viscol ?
@@ -298,8 +397,9 @@ term_tbl(struct termp *tp, const struct 
 	} while (more);
 
 	/*
-	 * If we're the last row, clean up after ourselves: clear the
-	 * existing table configuration and set it to NULL.
+	 * Clean up after this row.  If it is the last line
+	 * of the table, print the box line and clean up
+	 * column data; otherwise, print the allbox line.
 	 */
 
 	term_setcol(tp, 1);
@@ -307,11 +407,11 @@ term_tbl(struct termp *tp, const struct 
 	tp->tcol->rmargin = tp->maxrmargin;
 	if (sp->next == NULL) {
 		if (sp->opts->opts & (TBL_OPT_DBOX | TBL_OPT_BOX)) {
-			tbl_hrule(tp, sp, 1);
+			tbl_hrule(tp, sp, 2);
 			tp->skipvsp = 1;
 		}
 		if (sp->opts->opts & TBL_OPT_DBOX) {
-			tbl_hrule(tp, sp, 2);
+			tbl_hrule(tp, sp, 3);
 			tp->skipvsp = 2;
 		}
 		assert(tp->tbl.cols);
@@ -329,34 +429,43 @@ term_tbl(struct termp *tp, const struct 
 /*
  * Kinds of horizontal rulers:
  * 0: inside the table (single or double line with crossings)
- * 1: inner frame (single line with crossings and ends)
- * 2: outer frame (single line without crossings with ends)
+ * 1: inside the table (single or double line with crossings and ends)
+ * 2: inner frame (single line with crossings and ends)
+ * 3: outer frame (single line without crossings with ends)
  */
 static void
 tbl_hrule(struct termp *tp, const struct tbl_span *sp, int kind)
 {
-	const struct tbl_cell *c1, *c2;
+	const struct tbl_cell *cp, *cpn, *cpp;
 	int	 vert;
 	char	 line, cross;
 
-	line = (kind == 0 && TBL_SPAN_DHORIZ == sp->pos) ? '=' : '-';
-	cross = (kind < 2) ? '+' : '-';
+	line = (kind < 2 && TBL_SPAN_DHORIZ == sp->pos) ? '=' : '-';
+	cross = (kind < 3) ? '+' : '-';
 
 	if (kind)
 		term_word(tp, "+");
-	c1 = sp->layout->first;
-	c2 = sp->prev == NULL ? NULL : sp->prev->layout->first;
-	if (c2 == c1)
-		c2 = NULL;
+	cp = sp->layout->first;
+	cpp = kind || sp->prev == NULL ? NULL : sp->prev->layout->first;
+	if (cpp == cp)
+		cpp = NULL;
+	cpn = kind > 1 || sp->next == NULL ? NULL : sp->next->layout->first;
+	if (cpn == cp)
+		cpn = NULL;
 	for (;;) {
-		tbl_char(tp, line, tp->tbl.cols[c1->col].width + 1);
-		vert = c1->vert;
-		if ((c1 = c1->next) == NULL)
+		tbl_char(tp, line, tp->tbl.cols[cp->col].width + 1);
+		vert = cp->vert;
+		if ((cp = cp->next) == NULL)
 			 break;
-		if (c2 != NULL) {
-			if (vert < c2->vert)
-				vert = c2->vert;
-			c2 = c2->next;
+		if (cpp != NULL) {
+			if (vert < cpp->vert)
+				vert = cpp->vert;
+			cpp = cpp->next;
+		}
+		if (cpn != NULL) {
+			if (vert < cpn->vert)
+				vert = cpn->vert;
+			cpn = cpn->next;
 		}
 		if (sp->opts->opts & TBL_OPT_ALLBOX && !vert)
 			vert = 1;
@@ -373,9 +482,19 @@ tbl_hrule(struct termp *tp, const struct
 
 static void
 tbl_data(struct termp *tp, const struct tbl_opts *opts,
-	const struct tbl_dat *dp,
-	const struct roffcol *col)
+    const struct tbl_cell *cp, const struct tbl_dat *dp,
+    const struct roffcol *col)
 {
+	switch (cp->pos) {
+	case TBL_CELL_HORIZ:
+		tbl_char(tp, '-', col->width);
+		return;
+	case TBL_CELL_DHORIZ:
+		tbl_char(tp, '=', col->width);
+		return;
+	default:
+		break;
+	}
 
 	if (dp == NULL) {
 		tbl_char(tp, ASCII_NBRSP, col->width);
@@ -398,13 +517,7 @@ tbl_data(struct termp *tp, const struct 
 		break;
 	}
 
-	switch (dp->layout->pos) {
-	case TBL_CELL_HORIZ:
-		tbl_char(tp, '-', col->width);
-		break;
-	case TBL_CELL_DHORIZ:
-		tbl_char(tp, '=', col->width);
-		break;
+	switch (cp->pos) {
 	case TBL_CELL_LONG:
 	case TBL_CELL_CENTRE:
 	case TBL_CELL_LEFT:
--- /dev/null
+++ regress/tbl/layout/lines.in
@@ -0,0 +1,6976 @@
+.Dd June 15, 2017
+.Dt TBL-LAYOUT-LINES 1
+.Os OpenBSD
+.Sh NAME
+.Nm tbl-layout-lines
+.Nd table cells containing lines
+.Sh DESCRIPTION
+.pl 8000
+hline top left:
+.TS
+tab(:);
+_ l
+l l.
+:12
+21:22
+.TE
+.sp
+hline top:
+.TS
+tab(:);
+l _ l
+l l l.
+11::13
+21:22:23
+.TE
+.sp
+double hline top:
+.TS
+tab(:);
+l _ _ l
+l l l l.
+11:::13
+21:22:23:24
+.TE
+.sp
+hline top right:
+.TS
+tab(:);
+l _
+l l.
+11:
+21:22
+.TE
+.sp
+hline in front:
+.TS
+tab(:);
+l l
+_ l
+l l.
+11:12
+:22
+31:32
+.TE
+.sp
+vline in front:
+.TS
+tab(:);
+  l l
+  l l
+| l l
+  l l.
+11:12
+21:22
+31:32
+41:42
+.TE
+.sp
+hline and vline in front:
+.TS
+tab(:);
+l  l
+l  l
+_| l
+l  l.
+11:12
+21:22
+:32
+41:42
+.TE
+.sp
+vline and hline in front:
+.TS
+tab(:);
+  l l
+  l l
+| _ l
+  l l.
+11:12
+21:22
+:32
+41:42
+.TE
+.sp
+hline in the middle:
+.TS
+tab(:);
+l l l
+l _ l
+l l l.
+11:12:13
+21::23
+31:32:33
+.TE
+.sp
+vline in the middle:
+.TS
+tab(:);
+l  l l
+l  l l
+l| l l
+l  l l.
+11:12:13
+21:22:23
+31:32:33
+41:42:43
+.TE
+.sp
+vline and hline in the middle:
+.TS
+tab(:);
+l  l l
+l  l l
+l| _ l
+l  l l.
+11:12:13
+21:22:23
+31::33
+41:42:43
+.TE
+.sp
+hline and vline in the middle:
+.TS
+tab(:);
+l l  l
+l l  l
+l _| l
+l l  l.
+11:12:13
+21:22:23
+31::33
+41:42:43
+.TE
+.sp
+double hline in the middle:
+.TS
+tab(:);
+l l l l
+l _ _ l
+l l l l.
+11:12:13:14
+21:::24
+31:32:33:34
+.TE
+.sp
+hline, vline, hline in the middle:
+.TS
+tab(:);
+l l  l l
+l l  l l
+l _| _ l
+l l  l l.
+11:12:13:14
+21:22:23:24
+31:::34
+41:42:43:44
+.TE
+.sp
+hline at the end:
+.TS
+tab(:);
+l l
+l _
+l l.
+11:12
+21:
+31:32
+.TE
+.sp
+vline at the end:
+.TS
+tab(:);
+l l
+l l
+l l|
+l l.
+11:12
+21:22
+31:32
+41:42
+.TE
+.sp
+vline and hline at the end:
+.TS
+tab(:);
+l  l
+l  l
+l| _
+l  l.
+11:12
+21:22
+31:
+41:42
+.TE
+.sp
+hline and vline at the end:
+.TS
+tab(:);
+l l
+l l
+l _|
+l l.
+11:12
+21:22
+31:
+41:42
+.TE
+.sp
+hline bottom left:
+.TS
+tab(:);
+l l
+_ l.
+11:12
+:22
+.TE
+.sp
+vline bottom left:
+.TS
+tab(:);
+  l l
+  l l
+| l l.
+11:12
+21:22
+31:32
+.TE
+.sp
+hline and vline bottom left:
+.TS
+tab(:);
+l  l
+l  l
+_| l.
+11:12
+21:22
+:32
+.TE
+.sp
+vline and hline bottom left:
+.TS
+tab(:);
+  l l
+  l l
+| _ l.
+11:12
+21:22
+:32
+.TE
+.sp
+double hline bottom:
+.TS
+tab(:);
+l l l l
+l _ _ l.
+11:12:13:14
+21:::24
+.TE
+.sp
+hline, vline, hline bottom:
+.TS
+tab(:);
+l l  l l
+l l  l l
+l _| _ l.
+11:12:13:14
+21:22:23:24
+31:::34
+.TE
+.sp
+hline bottom right:
+.TS
+tab(:);
+l l
+l _.
+11:12
+21:
+.TE
+.sp
+vline bottom right:
+.TS
+tab(:);
+l l
+l l
+l l|.
+11:12
+21:22
+31:32
+.TE
+.sp
+vline and hline bottom right:
+.TS
+tab(:);
+l  l
+l  l
+l| _.
+11:12
+21:22
+31:
+.TE
+.sp
+hline and vline bottom right:
+.TS
+tab(:);
+l l
+l l
+l _|.
+11:12
+21:22
+31:
+.TE
+.sp
+double vline in front:
+.TS
+tab(:);
+   l l
+   l l
+|| l l
+   l l.
+11:12
+21:22
+31:32
+41:42
+.TE
+.sp
+hline and double vline in front:
+.TS
+tab(:);
+l   l
+l   l
+_|| l
+l   l.
+11:12
+21:22
+:32
+41:42
+.TE
+.sp
+double vline and hline in front:
+.TS
+tab(:);
+   l l
+   l l
+|| _ l
+   l l.
+11:12
+21:22
+:32
+41:42
+.TE
+.sp
+double vline in the middle:
+.TS
+tab(:);
+l   l l
+l   l l
+l|| l l
+l   l l.
+11:12:13
+21:22:23
+31:32:33
+41:42:43
+.TE
+.sp
+double vline and hline in the middle:
+.TS
+tab(:);
+l   l l
+l   l l
+l|| _ l
+l   l l.
+11:12:13
+21:22:23
+31::33
+41:42:43
+.TE
+.sp
+hline and doble vline in the middle:
+.TS
+tab(:);
+l l   l
+l l   l
+l _|| l
+l l   l.
+11:12:13
+21:22:23
+31::33
+41:42:43
+.TE
+.sp
+hline, double vline, hline in the middle:
+.TS
+tab(:);
+l l   l l
+l l   l l
+l _|| _ l
+l l   l l.
+11:12:13:14
+21:22:23:24
+31:::34
+41:42:43:44
+.TE
+.sp
+double vline at the end:
+.TS
+tab(:);
+l l
+l l
+l l||
+l l.
+11:12
+21:22
+31:32
+41:42
+.TE
+.sp
+double vline and hline at the end:
+.TS
+tab(:);
+l   l
+l   l
+l|| _
+l   l.
+11:12
+21:22
+31:
+41:42
+.TE
+.sp
+hline and double vline at the end:
+.TS
+tab(:);
+l l
+l l
+l _||
+l l.
+11:12
+21:22
+31:
+41:42
+.TE
+.sp
+double vline bottom left:
+.TS
+tab(:);
+   l l
+   l l
+|| l l.
+11:12
+21:22
+31:32
+.TE
+.sp
+hline and double vline bottom left:
+.TS
+tab(:);
+l   l
+l   l
+_|| l.
+11:12
+21:22
+:32
+.TE
+.sp
+double vline and hline bottom left:
+.TS
+tab(:);
+   l l
+   l l
+|| _ l.
+11:12
+21:22
+:32
+.TE
+.sp
+hline, double vline, hline bottom:
+.TS
+tab(:);
+l l   l l
+l l   l l
+l _|| _ l.
+11:12:13:14
+21:22:23:24
+31:::34
+.TE
+.sp
+double vline bottom right:
+.TS
+tab(:);
+l l
+l l
+l l||.
+11:12
+21:22
+31:32
+.TE
+.sp
+double vline and hline bottom right:
+.TS
+tab(:);
+l   l
+l   l
+l|| _.
+11:12
+21:22
+31:
+.TE
+.sp
+hline and double vline bottom right:
+.TS
+tab(:);
+l l
+l l
+l _||.
+11:12
+21:22
+31:
+.TE
+.sp
+vline left below hline top left:
+.TS
+tab(:);
+  _ l
+| l l
+  l l.
+:12
+21:22
+31:32
+.TE
+.sp
+vline right below hline top left:
+.TS
+tab(:);
+_  l
+l| l
+l  l.
+:12
+21:22
+31:32
+.TE
+.sp
+vline left below hline at the top:
+.TS
+tab(:);
+l  _ l
+l| l l
+l  l l.
+11::13
+21:22:23
+31:32:33
+.TE
+.sp
+vline right below hline at the top:
+.TS
+tab(:);
+l _  l
+l l| l
+l l  l.
+11::13
+21:22:23
+31:32:33
+.TE
+.sp
+vline below hline at the top:
+.TS
+tab(:);
+l _  _ l
+l l| l l
+l l  l l.
+11:::14
+21:22:23:24
+31:32:33:34
+.TE
+.sp
+vline left below hline top right:
+.TS
+tab(:);
+l  _
+l| l
+l  l.
+11:
+21:22
+31:32
+.TE
+.sp
+vline right below hline top right:
+.TS
+tab(:);
+l _
+l l|
+l l.
+11:
+21:22
+31:32
+.TE
+.sp
+vline left below hline in front:
+.TS
+tab(:);
+  l l
+  _ l
+| l l
+  l l.
+11:12
+:22
+31:32
+41:42
+.TE
+.sp
+vline left above hline in front:
+.TS
+tab(:);
+  l l
+  l l
+| l l
+  _ l
+  l l.
+11:12
+21:22
+31:32
+:42
+51:52
+.TE
+.sp
+vline right below hline in front:
+.TS
+tab(:);
+l  l
+_  l
+l| l
+l  l.
+11:12
+:22
+31:32
+41:42
+.TE
+.sp
+vline right above hline in front:
+.TS
+tab(:);
+l  l
+l  l
+l| l
+_  l
+l  l.
+11:12
+21:22
+31:32
+:42
+51:52
+.TE
+.sp
+vline left below hline in the middle:
+.TS
+tab(:);
+l  l l
+l  _ l
+l| l l
+l  l l.
+11:12:13
+21::23
+31:32:33
+41:42:43
+.TE
+.sp
+vline left above hline in the middle:
+.TS
+tab(:);
+l  l l
+l  l l
+l| l l
+l  _ l
+l  l l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+51:52:53
+.TE
+.sp
+vline right below hline in the middle:
+.TS
+tab(:);
+l l  l
+l _  l
+l l| l
+l l  l.
+11:12:13
+21::23
+31:32:33
+41:42:43
+.TE
+.sp
+vline right above hline in the middle:
+.TS
+tab(:);
+l l  l
+l l  l
+l l| l
+l _  l
+l l  l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+51:52:53
+.TE
+.sp
+vline below hline in the middle:
+.TS
+tab(:);
+l l  l l
+l _  _ l
+l l| l l
+l l  l l.
+11:12:13:14
+21:::24
+31:32:33:34
+41:42:43:44
+.TE
+.sp
+vline above hline in the middle:
+.TS
+tab(:);
+l l  l l
+l l  l l
+l l| l l
+l _  _ l
+l l  l l.
+11:12:13:14
+21:22:23:24
+31:32:33:34
+41:::44
+51:52:53:54
+.TE
+.sp
+vline left below hline at the end:
+.TS
+tab(:);
+l  l
+l  _
+l| l
+l  l.
+11:12
+21:
+31:32
+41:42
+.TE
+.sp
+vline left above hline at the end:
+.TS
+tab(:);
+l  l
+l  l
+l| l
+l  _
+l  l.
+11:12
+21:22
+31:32
+41:
+51:52
+.TE
+.sp
+vline right below hline at the end:
+.TS
+tab(:);
+l l
+l _
+l l|
+l l.
+11:12
+21:
+31:32
+41:42
+.TE
+.sp
+vline right above hline at the end:
+.TS
+tab(:);
+l l
+l l
+l l|
+l _
+l l.
+11:12
+21:22
+31:32
+41:
+51:52
+.TE
+.sp
+vline left above hline bottom left:
+.TS
+tab(:);
+  l l
+  l l
+| l l
+  _ l.
+11:12
+21:22
+31:32
+:42
+.TE
+.sp
+vline right above hline bottom left:
+.TS
+tab(:);
+l  l
+l  l
+l| l
+_  l.
+11:12
+21:22
+31:32
+:42
+.TE
+.sp
+vline left above hline at the bottom:
+.TS
+tab(:);
+l  l l
+l  l l
+l| l l
+l  _ l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+.TE
+.sp
+vline right above hline at the bottom:
+.TS
+tab(:);
+l l  l
+l l  l
+l l| l
+l _  l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+.TE
+.sp
+vline above hline at the bottom:
+.TS
+tab(:);
+l l  l l
+l l  l l
+l l| l l
+l _  _ l.
+11:12:13:14
+21:22:23:24
+31:32:33:34
+41:::44
+.TE
+.sp
+vline left above hline bottom right:
+.TS
+tab(:);
+l  l
+l  l
+l| l
+l  _.
+11:12
+21:22
+31:32
+41:
+.TE
+.sp
+vline right above hline bottom right:
+.TS
+tab(:);
+l l
+l l
+l l|
+l _.
+11:12
+21:22
+31:32
+41:
+.TE
+.sp
+double vline left below hline top left:
+.TS
+tab(:);
+   _ l
+|| l l
+   l l.
+:12
+21:22
+31:32
+.TE
+.sp
+double vline right below hline top left:
+.TS
+tab(:);
+_   l
+l|| l
+l   l.
+:12
+21:22
+31:32
+.TE
+.sp
+double vline left below hline at the top:
+.TS
+tab(:);
+l   _ l
+l|| l l
+l   l l.
+11::13
+21:22:23
+31:32:33
+.TE
+.sp
+double vline right below hline at the top:
+.TS
+tab(:);
+l _   l
+l l|| l
+l l   l.
+11::13
+21:22:23
+31:32:33
+.TE
+.sp
+double vline below hline at the top:
+.TS
+tab(:);
+l _   _ l
+l l|| l l
+l l   l l.
+11:::14
+21:22:23:24
+31:32:33:34
+.TE
+.sp
+double vline left below hline top right:
+.TS
+tab(:);
+l   _
+l|| l
+l   l.
+11:
+21:22
+31:32
+.TE
+.sp
+double vline right below hline top right:
+.TS
+tab(:);
+l _
+l l||
+l l.
+11:
+21:22
+31:32
+.TE
+.sp
+double vline left below hline in front:
+.TS
+tab(:);
+   l l
+   _ l
+|| l l
+   l l.
+11:12
+:22
+31:32
+41:42
+.TE
+.sp
+double vline left above hline in front:
+.TS
+tab(:);
+   l l
+   l l
+|| l l
+   _ l
+   l l.
+11:12
+21:22
+31:32
+:42
+51:52
+.TE
+.sp
+double vline right below hline in front:
+.TS
+tab(:);
+l   l
+_   l
+l|| l
+l   l.
+11:12
+:22
+31:32
+41:42
+.TE
+.sp
+double vline right above hline in front:
+.TS
+tab(:);
+l   l
+l   l
+l|| l
+_   l
+l   l.
+11:12
+21:22
+31:32
+:42
+51:52
+.TE
+.sp
+double vline left below hline in the middle:
+.TS
+tab(:);
+l   l l
+l   _ l
+l|| l l
+l   l l.
+11:12:13
+21::23
+31:32:33
+41:42:43
+.TE
+.sp
+double vline left above hline in the middle:
+.TS
+tab(:);
+l   l l
+l   l l
+l|| l l
+l   _ l
+l   l l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+51:52:53
+.TE
+.sp
+double vline right below hline in the middle:
+.TS
+tab(:);
+l l   l
+l _   l
+l l|| l
+l l   l.
+11:12:13
+21::23
+31:32:33
+41:42:43
+.TE
+.sp
+double vline right above hline in the middle:
+.TS
+tab(:);
+l l   l
+l l   l
+l l|| l
+l _   l
+l l   l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+51:52:53
+.TE
+.sp
+double vline below hline in the middle:
+.TS
+tab(:);
+l l   l l
+l _   _ l
+l l|| l l
+l l   l l.
+11:12:13:14
+21:::24
+31:32:33:34
+41:42:43:44
+.TE
+.sp
+double vline above hline in the middle:
+.TS
+tab(:);
+l l   l l
+l l   l l
+l l|| l l
+l _   _ l
+l l   l l.
+11:12:13:14
+21:22:23:24
+31:32:33:34
+41:::44
+51:52:53:54
+.TE
+.sp
+double vline left below hline at the end:
+.TS
+tab(:);
+l   l
+l   _
+l|| l
+l   l.
+11:12
+21:
+31:32
+41:42
+.TE
+.sp
+double vline left above hline at the end:
+.TS
+tab(:);
+l   l
+l   l
+l|| l
+l   _
+l   l.
+11:12
+21:22
+31:32
+41:
+51:52
+.TE
+.sp
+double vline right below hline at the end:
+.TS
+tab(:);
+l l
+l _
+l l||
+l l.
+11:12
+21:
+31:32
+41:42
+.TE
+.sp
+double vline right above hline at the end:
+.TS
+tab(:);
+l l
+l l
+l l||
+l _
+l l.
+11:12
+21:22
+31:32
+41:
+51:52
+.TE
+.sp
+double vline left above hline bottom left:
+.TS
+tab(:);
+   l l
+   l l
+|| l l
+   _ l.
+11:12
+21:22
+31:32
+:42
+.TE
+.sp
+double vline right above hline bottom left:
+.TS
+tab(:);
+l   l
+l   l
+l|| l
+_   l.
+11:12
+21:22
+31:32
+:42
+.TE
+.sp
+double vline left above hline at the bottom:
+.TS
+tab(:);
+l   l l
+l   l l
+l|| l l
+l   _ l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+.TE
+.sp
+double vline right above hline at the bottom:
+.TS
+tab(:);
+l l   l
+l l   l
+l l|| l
+l _   l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+.TE
+.sp
+double vline above hline at the bottom:
+.TS
+tab(:);
+l l   l l
+l l   l l
+l l|| l l
+l _   _ l.
+11:12:13:14
+21:22:23:24
+31:32:33:34
+41:::44
+.TE
+.sp
+double vline left above hline bottom right:
+.TS
+tab(:);
+l   l
+l   l
+l|| l
+l   _.
+11:12
+21:22
+31:32
+41:
+.TE
+.sp
+double vline right above hline bottom right:
+.TS
+tab(:);
+l l
+l l
+l l||
+l _.
+11:12
+21:22
+31:32
+41:
+.TE
+.Sh BOXED
+vline top left:
+.TS
+box tab(:);
+| l l
+  l l.
+11:12
+21:22
+.TE
+.sp
+hline and vline top left:
+.TS
+box tab(:);
+_| l
+l  l.
+:12
+21:22
+.TE
+.sp
+vline and hline top left:
+.TS
+box tab(:);
+| _ l
+  l l.
+:12
+21:22
+.TE
+.sp
+vline top:
+.TS
+box tab(:);
+l| l
+l  l.
+11:12
+21:22
+.TE
+.sp
+vline and hline top:
+.TS
+box tab(:);
+l| _ l
+l  l l.
+11::13
+21:22:23
+.TE
+.sp
+hline and vline top:
+.TS
+box tab(:);
+l _| l
+l l  l.
+11::13
+21:22:23
+.TE
+.sp
+hline, vline, hline top:
+.TS
+box tab(:);
+l _| _ l
+l l  l l.
+11:::13
+21:22:23:24
+.TE
+.sp
+vline top right:
+.TS
+box tab(:);
+l l|
+l l.
+11:12
+21:22
+.TE
+.sp
+vline and hline top right:
+.TS
+box tab(:);
+l| _
+l  l.
+11:
+21:22
+.TE
+.sp
+hline and vline top right:
+.TS
+box tab(:);
+l _|
+l l.
+11:
+21:22
+.TE
+.sp
+double vline top left:
+.TS
+box tab(:);
+|| l l
+   l l.
+11:12
+21:22
+.TE
+.sp
+hline and double vline top left:
+.TS
+box tab(:);
+_|| l
+l   l.
+:12
+21:22
+.TE
+.sp
+double vline and hline top left:
+.TS
+box tab(:);
+|| _ l
+   l l.
+:12
+21:22
+.TE
+.sp
+double vline top:
+.TS
+box tab(:);
+l|| l
+l   l.
+11:12
+21:22
+.TE
+.sp
+double vline and hline top:
+.TS
+box tab(:);
+l|| _ l
+l   l l.
+11::13
+21:22:23
+.TE
+.sp
+hline and double vline top:
+.TS
+box tab(:);
+l _|| l
+l l   l.
+11::13
+21:22:23
+.TE
+.sp
+hline, double vline, hline top:
+.TS
+box tab(:);
+l _|| _ l
+l l   l l.
+11:::13
+21:22:23:24
+.TE
+.sp
+double vline top right:
+.TS
+box tab(:);
+l l||
+l l.
+11:12
+21:22
+.TE
+.sp
+double vline and hline top right:
+.TS
+box tab(:);
+l|| _
+l   l.
+11:
+21:22
+.TE
+.sp
+hline and double vline top right:
+.TS
+box tab(:);
+l _||
+l l.
+11:
+21:22
+.TE
+.sp
+hline top left:
+.TS
+box tab(:);
+_ l
+l l.
+:12
+21:22
+.TE
+.sp
+hline top:
+.TS
+box tab(:);
+l _ l
+l l l.
+11::13
+21:22:23
+.TE
+.sp
+double hline top:
+.TS
+box tab(:);
+l _ _ l
+l l l l.
+11:::13
+21:22:23:24
+.TE
+.sp
+hline top right:
+.TS
+box tab(:);
+l _
+l l.
+11:
+21:22
+.TE
+.sp
+hline in front:
+.TS
+box tab(:);
+l l
+_ l
+l l.
+11:12
+:22
+31:32
+.TE
+.sp
+vline in front:
+.TS
+box tab(:);
+  l l
+  l l
+| l l
+  l l.
+11:12
+21:22
+31:32
+41:42
+.TE
+.sp
+hline and vline in front:
+.TS
+box tab(:);
+l  l
+l  l
+_| l
+l  l.
+11:12
+21:22
+:32
+41:42
+.TE
+.sp
+vline and hline in front:
+.TS
+box tab(:);
+  l l
+  l l
+| _ l
+  l l.
+11:12
+21:22
+:32
+41:42
+.TE
+.sp
+hline in the middle:
+.TS
+box tab(:);
+l l l
+l _ l
+l l l.
+11:12:13
+21::23
+31:32:33
+.TE
+.sp
+vline in the middle:
+.TS
+box tab(:);
+l  l l
+l  l l
+l| l l
+l  l l.
+11:12:13
+21:22:23
+31:32:33
+41:42:43
+.TE
+.sp
+vline and hline in the middle:
+.TS
+box tab(:);
+l  l l
+l  l l
+l| _ l
+l  l l.
+11:12:13
+21:22:23
+31::33
+41:42:43
+.TE
+.sp
+hline and vline in the middle:
+.TS
+box tab(:);
+l l  l
+l l  l
+l _| l
+l l  l.
+11:12:13
+21:22:23
+31::33
+41:42:43
+.TE
+.sp
+double hline in the middle:
+.TS
+box tab(:);
+l l l l
+l _ _ l
+l l l l.
+11:12:13:14
+21:::24
+31:32:33:34
+.TE
+.sp
+hline, vline, hline in the middle:
+.TS
+box tab(:);
+l l  l l
+l l  l l
+l _| _ l
+l l  l l.
+11:12:13:14
+21:22:23:24
+31:::34
+41:42:43:44
+.TE
+.sp
+hline at the end:
+.TS
+box tab(:);
+l l
+l _
+l l.
+11:12
+21:
+31:32
+.TE
+.sp
+vline at the end:
+.TS
+box tab(:);
+l l
+l l
+l l|
+l l.
+11:12
+21:22
+31:32
+41:42
+.TE
+.sp
+vline and hline at the end:
+.TS
+box tab(:);
+l  l
+l  l
+l| _
+l  l.
+11:12
+21:22
+31:
+41:42
+.TE
+.sp
+hline and vline at the end:
+.TS
+box tab(:);
+l l
+l l
+l _|
+l l.
+11:12
+21:22
+31:
+41:42
+.TE
+.sp
+hline bottom left:
+.TS
+box tab(:);
+l l
+_ l.
+11:12
+:22
+.TE
+.sp
+vline bottom left:
+.TS
+box tab(:);
+  l l
+  l l
+| l l.
+11:12
+21:22
+31:32
+.TE
+.sp
+hline and vline bottom left:
+.TS
+box tab(:);
+l  l
+l  l
+_| l.
+11:12
+21:22
+:32
+.TE
+.sp
+vline and hline bottom left:
+.TS
+box tab(:);
+  l l
+  l l
+| _ l.
+11:12
+21:22
+:32
+.TE
+.sp
+double hline bottom:
+.TS
+box tab(:);
+l l l l
+l _ _ l.
+11:12:13:14
+21:::24
+.TE
+.sp
+hline, vline, hline bottom:
+.TS
+box tab(:);
+l l  l l
+l l  l l
+l _| _ l.
+11:12:13:14
+21:22:23:24
+31:::34
+.TE
+.sp
+hline bottom right:
+.TS
+box tab(:);
+l l
+l _.
+11:12
+21:
+.TE
+.sp
+vline bottom right:
+.TS
+box tab(:);
+l l
+l l
+l l|.
+11:12
+21:22
+31:32
+.TE
+.sp
+vline and hline bottom right:
+.TS
+box tab(:);
+l  l
+l  l
+l| _.
+11:12
+21:22
+31:
+.TE
+.sp
+hline and vline bottom right:
+.TS
+box tab(:);
+l l
+l l
+l _|.
+11:12
+21:22
+31:
+.TE
+.sp
+double vline in front:
+.TS
+box tab(:);
+   l l
+   l l
+|| l l
+   l l.
+11:12
+21:22
+31:32
+41:42
+.TE
+.sp
+hline and double vline in front:
+.TS
+box tab(:);
+l   l
+l   l
+_|| l
+l   l.
+11:12
+21:22
+:32
+41:42
+.TE
+.sp
+double vline and hline in front:
+.TS
+box tab(:);
+   l l
+   l l
+|| _ l
+   l l.
+11:12
+21:22
+:32
+41:42
+.TE
+.sp
+double vline in the middle:
+.TS
+box tab(:);
+l   l l
+l   l l
+l|| l l
+l   l l.
+11:12:13
+21:22:23
+31:32:33
+41:42:43
+.TE
+.sp
+double vline and hline in the middle:
+.TS
+box tab(:);
+l   l l
+l   l l
+l|| _ l
+l   l l.
+11:12:13
+21:22:23
+31::33
+41:42:43
+.TE
+.sp
+hline and doble vline in the middle:
+.TS
+box tab(:);
+l l   l
+l l   l
+l _|| l
+l l   l.
+11:12:13
+21:22:23
+31::33
+41:42:43
+.TE
+.sp
+hline, double vline, hline in the middle:
+.TS
+box tab(:);
+l l   l l
+l l   l l
+l _|| _ l
+l l   l l.
+11:12:13:14
+21:22:23:24
+31:::34
+41:42:43:44
+.TE
+.sp
+double vline at the end:
+.TS
+box tab(:);
+l l
+l l
+l l||
+l l.
+11:12
+21:22
+31:32
+41:42
+.TE
+.sp
+double vline and hline at the end:
+.TS
+box tab(:);
+l   l
+l   l
+l|| _
+l   l.
+11:12
+21:22
+31:
+41:42
+.TE
+.sp
+hline and double vline at the end:
+.TS
+box tab(:);
+l l
+l l
+l _||
+l l.
+11:12
+21:22
+31:
+41:42
+.TE
+.sp
+double vline bottom left:
+.TS
+box tab(:);
+   l l
+   l l
+|| l l.
+11:12
+21:22
+31:32
+.TE
+.sp
+hline and double vline bottom left:
+.TS
+box tab(:);
+l   l
+l   l
+_|| l.
+11:12
+21:22
+:32
+.TE
+.sp
+double vline and hline bottom left:
+.TS
+box tab(:);
+   l l
+   l l
+|| _ l.
+11:12
+21:22
+:32
+.TE
+.sp
+hline, double vline, hline bottom:
+.TS
+box tab(:);
+l l   l l
+l l   l l
+l _|| _ l.
+11:12:13:14
+21:22:23:24
+31:::34
+.TE
+.sp
+double vline bottom right:
+.TS
+box tab(:);
+l l
+l l
+l l||.
+11:12
+21:22
+31:32
+.TE
+.sp
+double vline and hline bottom right:
+.TS
+box tab(:);
+l   l
+l   l
+l|| _.
+11:12
+21:22
+31:
+.TE
+.sp
+hline and double vline bottom right:
+.TS
+box tab(:);
+l l
+l l
+l _||.
+11:12
+21:22
+31:
+.TE
+.sp
+vline left below hline top left:
+.TS
+box tab(:);
+  _ l
+| l l
+  l l.
+:12
+21:22
+31:32
+.TE
+.sp
+vline right below hline top left:
+.TS
+box tab(:);
+_  l
+l| l
+l  l.
+:12
+21:22
+31:32
+.TE
+.sp
+vline left below hline at the top:
+.TS
+box tab(:);
+l  _ l
+l| l l
+l  l l.
+11::13
+21:22:23
+31:32:33
+.TE
+.sp
+vline right below hline at the top:
+.TS
+box tab(:);
+l _  l
+l l| l
+l l  l.
+11::13
+21:22:23
+31:32:33
+.TE
+.sp
+vline below hline at the top:
+.TS
+box tab(:);
+l _  _ l
+l l| l l
+l l  l l.
+11:::14
+21:22:23:24
+31:32:33:34
+.TE
+.sp
+vline left below hline top right:
+.TS
+box tab(:);
+l  _
+l| l
+l  l.
+11:
+21:22
+31:32
+.TE
+.sp
+vline right below hline top right:
+.TS
+box tab(:);
+l _
+l l|
+l l.
+11:
+21:22
+31:32
+.TE
+.sp
+vline left below hline in front:
+.TS
+box tab(:);
+  l l
+  _ l
+| l l
+  l l.
+11:12
+:22
+31:32
+41:42
+.TE
+.sp
+vline left above hline in front:
+.TS
+box tab(:);
+  l l
+  l l
+| l l
+  _ l
+  l l.
+11:12
+21:22
+31:32
+:42
+51:52
+.TE
+.sp
+vline right below hline in front:
+.TS
+box tab(:);
+l  l
+_  l
+l| l
+l  l.
+11:12
+:22
+31:32
+41:42
+.TE
+.sp
+vline right above hline in front:
+.TS
+box tab(:);
+l  l
+l  l
+l| l
+_  l
+l  l.
+11:12
+21:22
+31:32
+:42
+51:52
+.TE
+.sp
+vline left below hline in the middle:
+.TS
+box tab(:);
+l  l l
+l  _ l
+l| l l
+l  l l.
+11:12:13
+21::23
+31:32:33
+41:42:43
+.TE
+.sp
+vline left above hline in the middle:
+.TS
+box tab(:);
+l  l l
+l  l l
+l| l l
+l  _ l
+l  l l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+51:52:53
+.TE
+.sp
+vline right below hline in the middle:
+.TS
+box tab(:);
+l l  l
+l _  l
+l l| l
+l l  l.
+11:12:13
+21::23
+31:32:33
+41:42:43
+.TE
+.sp
+vline right above hline in the middle:
+.TS
+box tab(:);
+l l  l
+l l  l
+l l| l
+l _  l
+l l  l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+51:52:53
+.TE
+.sp
+vline below hline in the middle:
+.TS
+box tab(:);
+l l  l l
+l _  _ l
+l l| l l
+l l  l l.
+11:12:13:14
+21:::24
+31:32:33:34
+41:42:43:44
+.TE
+.sp
+vline above hline in the middle:
+.TS
+box tab(:);
+l l  l l
+l l  l l
+l l| l l
+l _  _ l
+l l  l l.
+11:12:13:14
+21:22:23:24
+31:32:33:34
+41:::44
+51:52:53:54
+.TE
+.sp
+vline left below hline at the end:
+.TS
+box tab(:);
+l  l
+l  _
+l| l
+l  l.
+11:12
+21:
+31:32
+41:42
+.TE
+.sp
+vline left above hline at the end:
+.TS
+box tab(:);
+l  l
+l  l
+l| l
+l  _
+l  l.
+11:12
+21:22
+31:32
+41:
+51:52
+.TE
+.sp
+vline right below hline at the end:
+.TS
+box tab(:);
+l l
+l _
+l l|
+l l.
+11:12
+21:
+31:32
+41:42
+.TE
+.sp
+vline right above hline at the end:
+.TS
+box tab(:);
+l l
+l l
+l l|
+l _
+l l.
+11:12
+21:22
+31:32
+41:
+51:52
+.TE
+.sp
+vline left above hline bottom left:
+.TS
+box tab(:);
+  l l
+  l l
+| l l
+  _ l.
+11:12
+21:22
+31:32
+:42
+.TE
+.sp
+vline right above hline bottom left:
+.TS
+box tab(:);
+l  l
+l  l
+l| l
+_  l.
+11:12
+21:22
+31:32
+:42
+.TE
+.sp
+vline left above hline at the bottom:
+.TS
+box tab(:);
+l  l l
+l  l l
+l| l l
+l  _ l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+.TE
+.sp
+vline right above hline at the bottom:
+.TS
+box tab(:);
+l l  l
+l l  l
+l l| l
+l _  l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+.TE
+.sp
+vline above hline at the bottom:
+.TS
+box tab(:);
+l l  l l
+l l  l l
+l l| l l
+l _  _ l.
+11:12:13:14
+21:22:23:24
+31:32:33:34
+41:::44
+.TE
+.sp
+vline left above hline bottom right:
+.TS
+box tab(:);
+l  l
+l  l
+l| l
+l  _.
+11:12
+21:22
+31:32
+41:
+.TE
+.sp
+vline right above hline bottom right:
+.TS
+box tab(:);
+l l
+l l
+l l|
+l _.
+11:12
+21:22
+31:32
+41:
+.TE
+.sp
+double vline left below hline top left:
+.TS
+box tab(:);
+   _ l
+|| l l
+   l l.
+:12
+21:22
+31:32
+.TE
+.sp
+double vline right below hline top left:
+.TS
+box tab(:);
+_   l
+l|| l
+l   l.
+:12
+21:22
+31:32
+.TE
+.sp
+double vline left below hline at the top:
+.TS
+box tab(:);
+l   _ l
+l|| l l
+l   l l.
+11::13
+21:22:23
+31:32:33
+.TE
+.sp
+double vline right below hline at the top:
+.TS
+box tab(:);
+l _   l
+l l|| l
+l l   l.
+11::13
+21:22:23
+31:32:33
+.TE
+.sp
+double vline below hline at the top:
+.TS
+box tab(:);
+l _   _ l
+l l|| l l
+l l   l l.
+11:::14
+21:22:23:24
+31:32:33:34
+.TE
+.sp
+double vline left below hline top right:
+.TS
+box tab(:);
+l   _
+l|| l
+l   l.
+11:
+21:22
+31:32
+.TE
+.sp
+double vline right below hline top right:
+.TS
+box tab(:);
+l _
+l l||
+l l.
+11:
+21:22
+31:32
+.TE
+.sp
+double vline left below hline in front:
+.TS
+box tab(:);
+   l l
+   _ l
+|| l l
+   l l.
+11:12
+:22
+31:32
+41:42
+.TE
+.sp
+double vline left above hline in front:
+.TS
+box tab(:);
+   l l
+   l l
+|| l l
+   _ l
+   l l.
+11:12
+21:22
+31:32
+:42
+51:52
+.TE
+.sp
+double vline right below hline in front:
+.TS
+box tab(:);
+l   l
+_   l
+l|| l
+l   l.
+11:12
+:22
+31:32
+41:42
+.TE
+.sp
+double vline right above hline in front:
+.TS
+box tab(:);
+l   l
+l   l
+l|| l
+_   l
+l   l.
+11:12
+21:22
+31:32
+:42
+51:52
+.TE
+.sp
+double vline left below hline in the middle:
+.TS
+box tab(:);
+l   l l
+l   _ l
+l|| l l
+l   l l.
+11:12:13
+21::23
+31:32:33
+41:42:43
+.TE
+.sp
+double vline left above hline in the middle:
+.TS
+box tab(:);
+l   l l
+l   l l
+l|| l l
+l   _ l
+l   l l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+51:52:53
+.TE
+.sp
+double vline right below hline in the middle:
+.TS
+box tab(:);
+l l   l
+l _   l
+l l|| l
+l l   l.
+11:12:13
+21::23
+31:32:33
+41:42:43
+.TE
+.sp
+double vline right above hline in the middle:
+.TS
+box tab(:);
+l l   l
+l l   l
+l l|| l
+l _   l
+l l   l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+51:52:53
+.TE
+.sp
+double vline below hline in the middle:
+.TS
+box tab(:);
+l l   l l
+l _   _ l
+l l|| l l
+l l   l l.
+11:12:13:14
+21:::24
+31:32:33:34
+41:42:43:44
+.TE
+.sp
+double vline above hline in the middle:
+.TS
+box tab(:);
+l l   l l
+l l   l l
+l l|| l l
+l _   _ l
+l l   l l.
+11:12:13:14
+21:22:23:24
+31:32:33:34
+41:::44
+51:52:53:54
+.TE
+.sp
+double vline left below hline at the end:
+.TS
+box tab(:);
+l   l
+l   _
+l|| l
+l   l.
+11:12
+21:
+31:32
+41:42
+.TE
+.sp
+double vline left above hline at the end:
+.TS
+box tab(:);
+l   l
+l   l
+l|| l
+l   _
+l   l.
+11:12
+21:22
+31:32
+41:
+51:52
+.TE
+.sp
+double vline right below hline at the end:
+.TS
+box tab(:);
+l l
+l _
+l l||
+l l.
+11:12
+21:
+31:32
+41:42
+.TE
+.sp
+double vline right above hline at the end:
+.TS
+box tab(:);
+l l
+l l
+l l||
+l _
+l l.
+11:12
+21:22
+31:32
+41:
+51:52
+.TE
+.sp
+double vline left above hline bottom left:
+.TS
+box tab(:);
+   l l
+   l l
+|| l l
+   _ l.
+11:12
+21:22
+31:32
+:42
+.TE
+.sp
+double vline right above hline bottom left:
+.TS
+box tab(:);
+l   l
+l   l
+l|| l
+_   l.
+11:12
+21:22
+31:32
+:42
+.TE
+.sp
+double vline left above hline at the bottom:
+.TS
+box tab(:);
+l   l l
+l   l l
+l|| l l
+l   _ l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+.TE
+.sp
+double vline right above hline at the bottom:
+.TS
+box tab(:);
+l l   l
+l l   l
+l l|| l
+l _   l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+.TE
+.sp
+double vline above hline at the bottom:
+.TS
+box tab(:);
+l l   l l
+l l   l l
+l l|| l l
+l _   _ l.
+11:12:13:14
+21:22:23:24
+31:32:33:34
+41:::44
+.TE
+.sp
+double vline left above hline bottom right:
+.TS
+box tab(:);
+l   l
+l   l
+l|| l
+l   _.
+11:12
+21:22
+31:32
+41:
+.TE
+.sp
+double vline right above hline bottom right:
+.TS
+box tab(:);
+l l
+l l
+l l||
+l _.
+11:12
+21:22
+31:32
+41:
+.TE
+.sp
+.Sh ALLBOX
+vline top left:
+.TS
+allbox tab(:);
+| l l
+  l l.
+11:12
+21:22
+.TE
+.sp
+hline and vline top left:
+.TS
+allbox tab(:);
+_| l
+l  l.
+:12
+21:22
+.TE
+.sp
+vline and hline top left:
+.TS
+allbox tab(:);
+| _ l
+  l l.
+:12
+21:22
+.TE
+.sp
+vline top:
+.TS
+allbox tab(:);
+l| l
+l  l.
+11:12
+21:22
+.TE
+.sp
+vline and hline top:
+.TS
+allbox tab(:);
+l| _ l
+l  l l.
+11::13
+21:22:23
+.TE
+.sp
+hline and vline top:
+.TS
+allbox tab(:);
+l _| l
+l l  l.
+11::13
+21:22:23
+.TE
+.sp
+hline, vline, hline top:
+.TS
+allbox tab(:);
+l _| _ l
+l l  l l.
+11:::13
+21:22:23:24
+.TE
+.sp
+vline top right:
+.TS
+allbox tab(:);
+l l|
+l l.
+11:12
+21:22
+.TE
+.sp
+vline and hline top right:
+.TS
+allbox tab(:);
+l| _
+l  l.
+11:
+21:22
+.TE
+.sp
+hline and vline top right:
+.TS
+allbox tab(:);
+l _|
+l l.
+11:
+21:22
+.TE
+.sp
+double vline top left:
+.TS
+allbox tab(:);
+|| l l
+   l l.
+11:12
+21:22
+.TE
+.sp
+hline and double vline top left:
+.TS
+allbox tab(:);
+_|| l
+l   l.
+:12
+21:22
+.TE
+.sp
+double vline and hline top left:
+.TS
+allbox tab(:);
+|| _ l
+   l l.
+:12
+21:22
+.TE
+.sp
+double vline top:
+.TS
+allbox tab(:);
+l|| l
+l   l.
+11:12
+21:22
+.TE
+.sp
+double vline and hline top:
+.TS
+allbox tab(:);
+l|| _ l
+l   l l.
+11::13
+21:22:23
+.TE
+.sp
+hline and double vline top:
+.TS
+allbox tab(:);
+l _|| l
+l l   l.
+11::13
+21:22:23
+.TE
+.sp
+hline, double vline, hline top:
+.TS
+allbox tab(:);
+l _|| _ l
+l l   l l.
+11:::13
+21:22:23:24
+.TE
+.sp
+double vline top right:
+.TS
+allbox tab(:);
+l l||
+l l.
+11:12
+21:22
+.TE
+.sp
+double vline and hline top right:
+.TS
+allbox tab(:);
+l|| _
+l   l.
+11:
+21:22
+.TE
+.sp
+hline and double vline top right:
+.TS
+allbox tab(:);
+l _||
+l l.
+11:
+21:22
+.TE
+.sp
+hline top left:
+.TS
+allbox tab(:);
+_ l
+l l.
+:12
+21:22
+.TE
+.sp
+hline top:
+.TS
+allbox tab(:);
+l _ l
+l l l.
+11::13
+21:22:23
+.TE
+.sp
+double hline top:
+.TS
+allbox tab(:);
+l _ _ l
+l l l l.
+11:::13
+21:22:23:24
+.TE
+.sp
+hline top right:
+.TS
+allbox tab(:);
+l _
+l l.
+11:
+21:22
+.TE
+.sp
+hline in front:
+.TS
+allbox tab(:);
+l l
+_ l
+l l.
+11:12
+:22
+31:32
+.TE
+.sp
+vline in front:
+.TS
+allbox tab(:);
+  l l
+  l l
+| l l
+  l l.
+11:12
+21:22
+31:32
+41:42
+.TE
+.sp
+hline and vline in front:
+.TS
+allbox tab(:);
+l  l
+l  l
+_| l
+l  l.
+11:12
+21:22
+:32
+41:42
+.TE
+.sp
+vline and hline in front:
+.TS
+allbox tab(:);
+  l l
+  l l
+| _ l
+  l l.
+11:12
+21:22
+:32
+41:42
+.TE
+.sp
+hline in the middle:
+.TS
+allbox tab(:);
+l l l
+l _ l
+l l l.
+11:12:13
+21::23
+31:32:33
+.TE
+.sp
+vline in the middle:
+.TS
+allbox tab(:);
+l  l l
+l  l l
+l| l l
+l  l l.
+11:12:13
+21:22:23
+31:32:33
+41:42:43
+.TE
+.sp
+vline and hline in the middle:
+.TS
+allbox tab(:);
+l  l l
+l  l l
+l| _ l
+l  l l.
+11:12:13
+21:22:23
+31::33
+41:42:43
+.TE
+.sp
+hline and vline in the middle:
+.TS
+allbox tab(:);
+l l  l
+l l  l
+l _| l
+l l  l.
+11:12:13
+21:22:23
+31::33
+41:42:43
+.TE
+.sp
+double hline in the middle:
+.TS
+allbox tab(:);
+l l l l
+l _ _ l
+l l l l.
+11:12:13:14
+21:::24
+31:32:33:34
+.TE
+.sp
+hline, vline, hline in the middle:
+.TS
+allbox tab(:);
+l l  l l
+l l  l l
+l _| _ l
+l l  l l.
+11:12:13:14
+21:22:23:24
+31:::34
+41:42:43:44
+.TE
+.sp
+hline at the end:
+.TS
+allbox tab(:);
+l l
+l _
+l l.
+11:12
+21:
+31:32
+.TE
+.sp
+vline at the end:
+.TS
+allbox tab(:);
+l l
+l l
+l l|
+l l.
+11:12
+21:22
+31:32
+41:42
+.TE
+.sp
+vline and hline at the end:
+.TS
+allbox tab(:);
+l  l
+l  l
+l| _
+l  l.
+11:12
+21:22
+31:
+41:42
+.TE
+.sp
+hline and vline at the end:
+.TS
+allbox tab(:);
+l l
+l l
+l _|
+l l.
+11:12
+21:22
+31:
+41:42
+.TE
+.sp
+hline bottom left:
+.TS
+allbox tab(:);
+l l
+_ l.
+11:12
+:22
+.TE
+.sp
+vline bottom left:
+.TS
+allbox tab(:);
+  l l
+  l l
+| l l.
+11:12
+21:22
+31:32
+.TE
+.sp
+hline and vline bottom left:
+.TS
+allbox tab(:);
+l  l
+l  l
+_| l.
+11:12
+21:22
+:32
+.TE
+.sp
+vline and hline bottom left:
+.TS
+allbox tab(:);
+  l l
+  l l
+| _ l.
+11:12
+21:22
+:32
+.TE
+.sp
+double hline bottom:
+.TS
+allbox tab(:);
+l l l l
+l _ _ l.
+11:12:13:14
+21:::24
+.TE
+.sp
+hline, vline, hline bottom:
+.TS
+allbox tab(:);
+l l  l l
+l l  l l
+l _| _ l.
+11:12:13:14
+21:22:23:24
+31:::34
+.TE
+.sp
+hline bottom right:
+.TS
+allbox tab(:);
+l l
+l _.
+11:12
+21:
+.TE
+.sp
+vline bottom right:
+.TS
+allbox tab(:);
+l l
+l l
+l l|.
+11:12
+21:22
+31:32
+.TE
+.sp
+vline and hline bottom right:
+.TS
+allbox tab(:);
+l  l
+l  l
+l| _.
+11:12
+21:22
+31:
+.TE
+.sp
+hline and vline bottom right:
+.TS
+allbox tab(:);
+l l
+l l
+l _|.
+11:12
+21:22
+31:
+.TE
+.sp
+double vline in front:
+.TS
+allbox tab(:);
+   l l
+   l l
+|| l l
+   l l.
+11:12
+21:22
+31:32
+41:42
+.TE
+.sp
+hline and double vline in front:
+.TS
+allbox tab(:);
+l   l
+l   l
+_|| l
+l   l.
+11:12
+21:22
+:32
+41:42
+.TE
+.sp
+double vline and hline in front:
+.TS
+allbox tab(:);
+   l l
+   l l
+|| _ l
+   l l.
+11:12
+21:22
+:32
+41:42
+.TE
+.sp
+double vline in the middle:
+.TS
+allbox tab(:);
+l   l l
+l   l l
+l|| l l
+l   l l.
+11:12:13
+21:22:23
+31:32:33
+41:42:43
+.TE
+.sp
+double vline and hline in the middle:
+.TS
+allbox tab(:);
+l   l l
+l   l l
+l|| _ l
+l   l l.
+11:12:13
+21:22:23
+31::33
+41:42:43
+.TE
+.sp
+hline and doble vline in the middle:
+.TS
+allbox tab(:);
+l l   l
+l l   l
+l _|| l
+l l   l.
+11:12:13
+21:22:23
+31::33
+41:42:43
+.TE
+.sp
+hline, double vline, hline in the middle:
+.TS
+allbox tab(:);
+l l   l l
+l l   l l
+l _|| _ l
+l l   l l.
+11:12:13:14
+21:22:23:24
+31:::34
+41:42:43:44
+.TE
+.sp
+double vline at the end:
+.TS
+allbox tab(:);
+l l
+l l
+l l||
+l l.
+11:12
+21:22
+31:32
+41:42
+.TE
+.sp
+double vline and hline at the end:
+.TS
+allbox tab(:);
+l   l
+l   l
+l|| _
+l   l.
+11:12
+21:22
+31:
+41:42
+.TE
+.sp
+hline and double vline at the end:
+.TS
+allbox tab(:);
+l l
+l l
+l _||
+l l.
+11:12
+21:22
+31:
+41:42
+.TE
+.sp
+double vline bottom left:
+.TS
+allbox tab(:);
+   l l
+   l l
+|| l l.
+11:12
+21:22
+31:32
+.TE
+.sp
+hline and double vline bottom left:
+.TS
+allbox tab(:);
+l   l
+l   l
+_|| l.
+11:12
+21:22
+:32
+.TE
+.sp
+double vline and hline bottom left:
+.TS
+allbox tab(:);
+   l l
+   l l
+|| _ l.
+11:12
+21:22
+:32
+.TE
+.sp
+hline, double vline, hline bottom:
+.TS
+allbox tab(:);
+l l   l l
+l l   l l
+l _|| _ l.
+11:12:13:14
+21:22:23:24
+31:::34
+.TE
+.sp
+double vline bottom right:
+.TS
+allbox tab(:);
+l l
+l l
+l l||.
+11:12
+21:22
+31:32
+.TE
+.sp
+double vline and hline bottom right:
+.TS
+allbox tab(:);
+l   l
+l   l
+l|| _.
+11:12
+21:22
+31:
+.TE
+.sp
+hline and double vline bottom right:
+.TS
+allbox tab(:);
+l l
+l l
+l _||.
+11:12
+21:22
+31:
+.TE
+.sp
+vline left below hline top left:
+.TS
+allbox tab(:);
+  _ l
+| l l
+  l l.
+:12
+21:22
+31:32
+.TE
+.sp
+vline right below hline top left:
+.TS
+allbox tab(:);
+_  l
+l| l
+l  l.
+:12
+21:22
+31:32
+.TE
+.sp
+vline left below hline at the top:
+.TS
+allbox tab(:);
+l  _ l
+l| l l
+l  l l.
+11::13
+21:22:23
+31:32:33
+.TE
+.sp
+vline right below hline at the top:
+.TS
+allbox tab(:);
+l _  l
+l l| l
+l l  l.
+11::13
+21:22:23
+31:32:33
+.TE
+.sp
+vline below hline at the top:
+.TS
+allbox tab(:);
+l _  _ l
+l l| l l
+l l  l l.
+11:::14
+21:22:23:24
+31:32:33:34
+.TE
+.sp
+vline left below hline top right:
+.TS
+allbox tab(:);
+l  _
+l| l
+l  l.
+11:
+21:22
+31:32
+.TE
+.sp
+vline right below hline top right:
+.TS
+allbox tab(:);
+l _
+l l|
+l l.
+11:
+21:22
+31:32
+.TE
+.sp
+vline left below hline in front:
+.TS
+allbox tab(:);
+  l l
+  _ l
+| l l
+  l l.
+11:12
+:22
+31:32
+41:42
+.TE
+.sp
+vline left above hline in front:
+.TS
+allbox tab(:);
+  l l
+  l l
+| l l
+  _ l
+  l l.
+11:12
+21:22
+31:32
+:42
+51:52
+.TE
+.sp
+vline right below hline in front:
+.TS
+allbox tab(:);
+l  l
+_  l
+l| l
+l  l.
+11:12
+:22
+31:32
+41:42
+.TE
+.sp
+vline right above hline in front:
+.TS
+allbox tab(:);
+l  l
+l  l
+l| l
+_  l
+l  l.
+11:12
+21:22
+31:32
+:42
+51:52
+.TE
+.sp
+vline left below hline in the middle:
+.TS
+allbox tab(:);
+l  l l
+l  _ l
+l| l l
+l  l l.
+11:12:13
+21::23
+31:32:33
+41:42:43
+.TE
+.sp
+vline left above hline in the middle:
+.TS
+allbox tab(:);
+l  l l
+l  l l
+l| l l
+l  _ l
+l  l l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+51:52:53
+.TE
+.sp
+vline right below hline in the middle:
+.TS
+allbox tab(:);
+l l  l
+l _  l
+l l| l
+l l  l.
+11:12:13
+21::23
+31:32:33
+41:42:43
+.TE
+.sp
+vline right above hline in the middle:
+.TS
+allbox tab(:);
+l l  l
+l l  l
+l l| l
+l _  l
+l l  l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+51:52:53
+.TE
+.sp
+vline below hline in the middle:
+.TS
+allbox tab(:);
+l l  l l
+l _  _ l
+l l| l l
+l l  l l.
+11:12:13:14
+21:::24
+31:32:33:34
+41:42:43:44
+.TE
+.sp
+vline above hline in the middle:
+.TS
+allbox tab(:);
+l l  l l
+l l  l l
+l l| l l
+l _  _ l
+l l  l l.
+11:12:13:14
+21:22:23:24
+31:32:33:34
+41:::44
+51:52:53:54
+.TE
+.sp
+vline left below hline at the end:
+.TS
+allbox tab(:);
+l  l
+l  _
+l| l
+l  l.
+11:12
+21:
+31:32
+41:42
+.TE
+.sp
+vline left above hline at the end:
+.TS
+allbox tab(:);
+l  l
+l  l
+l| l
+l  _
+l  l.
+11:12
+21:22
+31:32
+41:
+51:52
+.TE
+.sp
+vline right below hline at the end:
+.TS
+allbox tab(:);
+l l
+l _
+l l|
+l l.
+11:12
+21:
+31:32
+41:42
+.TE
+.sp
+vline right above hline at the end:
+.TS
+allbox tab(:);
+l l
+l l
+l l|
+l _
+l l.
+11:12
+21:22
+31:32
+41:
+51:52
+.TE
+.sp
+vline left above hline bottom left:
+.TS
+allbox tab(:);
+  l l
+  l l
+| l l
+  _ l.
+11:12
+21:22
+31:32
+:42
+.TE
+.sp
+vline right above hline bottom left:
+.TS
+allbox tab(:);
+l  l
+l  l
+l| l
+_  l.
+11:12
+21:22
+31:32
+:42
+.TE
+.sp
+vline left above hline at the bottom:
+.TS
+allbox tab(:);
+l  l l
+l  l l
+l| l l
+l  _ l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+.TE
+.sp
+vline right above hline at the bottom:
+.TS
+allbox tab(:);
+l l  l
+l l  l
+l l| l
+l _  l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+.TE
+.sp
+vline above hline at the bottom:
+.TS
+allbox tab(:);
+l l  l l
+l l  l l
+l l| l l
+l _  _ l.
+11:12:13:14
+21:22:23:24
+31:32:33:34
+41:::44
+.TE
+.sp
+vline left above hline bottom right:
+.TS
+allbox tab(:);
+l  l
+l  l
+l| l
+l  _.
+11:12
+21:22
+31:32
+41:
+.TE
+.sp
+vline right above hline bottom right:
+.TS
+allbox tab(:);
+l l
+l l
+l l|
+l _.
+11:12
+21:22
+31:32
+41:
+.TE
+.sp
+double vline left below hline top left:
+.TS
+allbox tab(:);
+   _ l
+|| l l
+   l l.
+:12
+21:22
+31:32
+.TE
+.sp
+double vline right below hline top left:
+.TS
+allbox tab(:);
+_   l
+l|| l
+l   l.
+:12
+21:22
+31:32
+.TE
+.sp
+double vline left below hline at the top:
+.TS
+allbox tab(:);
+l   _ l
+l|| l l
+l   l l.
+11::13
+21:22:23
+31:32:33
+.TE
+.sp
+double vline right below hline at the top:
+.TS
+allbox tab(:);
+l _   l
+l l|| l
+l l   l.
+11::13
+21:22:23
+31:32:33
+.TE
+.sp
+double vline below hline at the top:
+.TS
+allbox tab(:);
+l _   _ l
+l l|| l l
+l l   l l.
+11:::14
+21:22:23:24
+31:32:33:34
+.TE
+.sp
+double vline left below hline top right:
+.TS
+allbox tab(:);
+l   _
+l|| l
+l   l.
+11:
+21:22
+31:32
+.TE
+.sp
+double vline right below hline top right:
+.TS
+allbox tab(:);
+l _
+l l||
+l l.
+11:
+21:22
+31:32
+.TE
+.sp
+double vline left below hline in front:
+.TS
+allbox tab(:);
+   l l
+   _ l
+|| l l
+   l l.
+11:12
+:22
+31:32
+41:42
+.TE
+.sp
+double vline left above hline in front:
+.TS
+allbox tab(:);
+   l l
+   l l
+|| l l
+   _ l
+   l l.
+11:12
+21:22
+31:32
+:42
+51:52
+.TE
+.sp
+double vline right below hline in front:
+.TS
+allbox tab(:);
+l   l
+_   l
+l|| l
+l   l.
+11:12
+:22
+31:32
+41:42
+.TE
+.sp
+double vline right above hline in front:
+.TS
+allbox tab(:);
+l   l
+l   l
+l|| l
+_   l
+l   l.
+11:12
+21:22
+31:32
+:42
+51:52
+.TE
+.sp
+double vline left below hline in the middle:
+.TS
+allbox tab(:);
+l   l l
+l   _ l
+l|| l l
+l   l l.
+11:12:13
+21::23
+31:32:33
+41:42:43
+.TE
+.sp
+double vline left above hline in the middle:
+.TS
+allbox tab(:);
+l   l l
+l   l l
+l|| l l
+l   _ l
+l   l l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+51:52:53
+.TE
+.sp
+double vline right below hline in the middle:
+.TS
+allbox tab(:);
+l l   l
+l _   l
+l l|| l
+l l   l.
+11:12:13
+21::23
+31:32:33
+41:42:43
+.TE
+.sp
+double vline right above hline in the middle:
+.TS
+allbox tab(:);
+l l   l
+l l   l
+l l|| l
+l _   l
+l l   l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+51:52:53
+.TE
+.sp
+double vline below hline in the middle:
+.TS
+allbox tab(:);
+l l   l l
+l _   _ l
+l l|| l l
+l l   l l.
+11:12:13:14
+21:::24
+31:32:33:34
+41:42:43:44
+.TE
+.sp
+double vline above hline in the middle:
+.TS
+allbox tab(:);
+l l   l l
+l l   l l
+l l|| l l
+l _   _ l
+l l   l l.
+11:12:13:14
+21:22:23:24
+31:32:33:34
+41:::44
+51:52:53:54
+.TE
+.sp
+double vline left below hline at the end:
+.TS
+allbox tab(:);
+l   l
+l   _
+l|| l
+l   l.
+11:12
+21:
+31:32
+41:42
+.TE
+.sp
+double vline left above hline at the end:
+.TS
+allbox tab(:);
+l   l
+l   l
+l|| l
+l   _
+l   l.
+11:12
+21:22
+31:32
+41:
+51:52
+.TE
+.sp
+double vline right below hline at the end:
+.TS
+allbox tab(:);
+l l
+l _
+l l||
+l l.
+11:12
+21:
+31:32
+41:42
+.TE
+.sp
+double vline right above hline at the end:
+.TS
+allbox tab(:);
+l l
+l l
+l l||
+l _
+l l.
+11:12
+21:22
+31:32
+41:
+51:52
+.TE
+.sp
+double vline left above hline bottom left:
+.TS
+allbox tab(:);
+   l l
+   l l
+|| l l
+   _ l.
+11:12
+21:22
+31:32
+:42
+.TE
+.sp
+double vline right above hline bottom left:
+.TS
+allbox tab(:);
+l   l
+l   l
+l|| l
+_   l.
+11:12
+21:22
+31:32
+:42
+.TE
+.sp
+double vline left above hline at the bottom:
+.TS
+allbox tab(:);
+l   l l
+l   l l
+l|| l l
+l   _ l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+.TE
+.sp
+double vline right above hline at the bottom:
+.TS
+allbox tab(:);
+l l   l
+l l   l
+l l|| l
+l _   l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+.TE
+.sp
+double vline above hline at the bottom:
+.TS
+allbox tab(:);
+l l   l l
+l l   l l
+l l|| l l
+l _   _ l.
+11:12:13:14
+21:22:23:24
+31:32:33:34
+41:::44
+.TE
+.sp
+double vline left above hline bottom right:
+.TS
+allbox tab(:);
+l   l
+l   l
+l|| l
+l   _.
+11:12
+21:22
+31:32
+41:
+.TE
+.sp
+double vline right above hline bottom right:
+.TS
+allbox tab(:);
+l l
+l l
+l l||
+l _.
+11:12
+21:22
+31:32
+41:
+.TE
+.sp
+.Sh DOUBLEBOX
+vline top left:
+.TS
+doublebox tab(:);
+| l l
+  l l.
+11:12
+21:22
+.TE
+.sp 2v
+hline and vline top left:
+.TS
+doublebox tab(:);
+_| l
+l  l.
+:12
+21:22
+.TE
+.sp 2v
+vline and hline top left:
+.TS
+doublebox tab(:);
+| _ l
+  l l.
+:12
+21:22
+.TE
+.sp 2v
+vline top:
+.TS
+doublebox tab(:);
+l| l
+l  l.
+11:12
+21:22
+.TE
+.sp 2v
+vline and hline top:
+.TS
+doublebox tab(:);
+l| _ l
+l  l l.
+11::13
+21:22:23
+.TE
+.sp 2v
+hline and vline top:
+.TS
+doublebox tab(:);
+l _| l
+l l  l.
+11::13
+21:22:23
+.TE
+.sp 2v
+hline, vline, hline top:
+.TS
+doublebox tab(:);
+l _| _ l
+l l  l l.
+11:::13
+21:22:23:24
+.TE
+.sp 2v
+vline top right:
+.TS
+doublebox tab(:);
+l l|
+l l.
+11:12
+21:22
+.TE
+.sp 2v
+vline and hline top right:
+.TS
+doublebox tab(:);
+l| _
+l  l.
+11:
+21:22
+.TE
+.sp 2v
+hline and vline top right:
+.TS
+doublebox tab(:);
+l _|
+l l.
+11:
+21:22
+.TE
+.sp 2v
+double vline top left:
+.TS
+doublebox tab(:);
+|| l l
+   l l.
+11:12
+21:22
+.TE
+.sp 2v
+hline and double vline top left:
+.TS
+doublebox tab(:);
+_|| l
+l   l.
+:12
+21:22
+.TE
+.sp 2v
+double vline and hline top left:
+.TS
+doublebox tab(:);
+|| _ l
+   l l.
+:12
+21:22
+.TE
+.sp 2v
+double vline top:
+.TS
+doublebox tab(:);
+l|| l
+l   l.
+11:12
+21:22
+.TE
+.sp 2v
+double vline and hline top:
+.TS
+doublebox tab(:);
+l|| _ l
+l   l l.
+11::13
+21:22:23
+.TE
+.sp 2v
+hline and double vline top:
+.TS
+doublebox tab(:);
+l _|| l
+l l   l.
+11::13
+21:22:23
+.TE
+.sp 2v
+hline, double vline, hline top:
+.TS
+doublebox tab(:);
+l _|| _ l
+l l   l l.
+11:::13
+21:22:23:24
+.TE
+.sp 2v
+double vline top right:
+.TS
+doublebox tab(:);
+l l||
+l l.
+11:12
+21:22
+.TE
+.sp 2v
+double vline and hline top right:
+.TS
+doublebox tab(:);
+l|| _
+l   l.
+11:
+21:22
+.TE
+.sp 2v
+hline and double vline top right:
+.TS
+doublebox tab(:);
+l _||
+l l.
+11:
+21:22
+.TE
+.sp 2v
+hline top left:
+.TS
+doublebox tab(:);
+_ l
+l l.
+:12
+21:22
+.TE
+.sp 2v
+hline top:
+.TS
+doublebox tab(:);
+l _ l
+l l l.
+11::13
+21:22:23
+.TE
+.sp 2v
+double hline top:
+.TS
+doublebox tab(:);
+l _ _ l
+l l l l.
+11:::13
+21:22:23:24
+.TE
+.sp 2v
+hline top right:
+.TS
+doublebox tab(:);
+l _
+l l.
+11:
+21:22
+.TE
+.sp 2v
+hline in front:
+.TS
+doublebox tab(:);
+l l
+_ l
+l l.
+11:12
+:22
+31:32
+.TE
+.sp 2v
+vline in front:
+.TS
+doublebox tab(:);
+  l l
+  l l
+| l l
+  l l.
+11:12
+21:22
+31:32
+41:42
+.TE
+.sp 2v
+hline and vline in front:
+.TS
+doublebox tab(:);
+l  l
+l  l
+_| l
+l  l.
+11:12
+21:22
+:32
+41:42
+.TE
+.sp 2v
+vline and hline in front:
+.TS
+doublebox tab(:);
+  l l
+  l l
+| _ l
+  l l.
+11:12
+21:22
+:32
+41:42
+.TE
+.sp 2v
+hline in the middle:
+.TS
+doublebox tab(:);
+l l l
+l _ l
+l l l.
+11:12:13
+21::23
+31:32:33
+.TE
+.sp 2v
+vline in the middle:
+.TS
+doublebox tab(:);
+l  l l
+l  l l
+l| l l
+l  l l.
+11:12:13
+21:22:23
+31:32:33
+41:42:43
+.TE
+.sp 2v
+vline and hline in the middle:
+.TS
+doublebox tab(:);
+l  l l
+l  l l
+l| _ l
+l  l l.
+11:12:13
+21:22:23
+31::33
+41:42:43
+.TE
+.sp 2v
+hline and vline in the middle:
+.TS
+doublebox tab(:);
+l l  l
+l l  l
+l _| l
+l l  l.
+11:12:13
+21:22:23
+31::33
+41:42:43
+.TE
+.sp 2v
+double hline in the middle:
+.TS
+doublebox tab(:);
+l l l l
+l _ _ l
+l l l l.
+11:12:13:14
+21:::24
+31:32:33:34
+.TE
+.sp 2v
+hline, vline, hline in the middle:
+.TS
+doublebox tab(:);
+l l  l l
+l l  l l
+l _| _ l
+l l  l l.
+11:12:13:14
+21:22:23:24
+31:::34
+41:42:43:44
+.TE
+.sp 2v
+hline at the end:
+.TS
+doublebox tab(:);
+l l
+l _
+l l.
+11:12
+21:
+31:32
+.TE
+.sp 2v
+vline at the end:
+.TS
+doublebox tab(:);
+l l
+l l
+l l|
+l l.
+11:12
+21:22
+31:32
+41:42
+.TE
+.sp 2v
+vline and hline at the end:
+.TS
+doublebox tab(:);
+l  l
+l  l
+l| _
+l  l.
+11:12
+21:22
+31:
+41:42
+.TE
+.sp 2v
+hline and vline at the end:
+.TS
+doublebox tab(:);
+l l
+l l
+l _|
+l l.
+11:12
+21:22
+31:
+41:42
+.TE
+.sp 2v
+hline bottom left:
+.TS
+doublebox tab(:);
+l l
+_ l.
+11:12
+:22
+.TE
+.sp 2v
+vline bottom left:
+.TS
+doublebox tab(:);
+  l l
+  l l
+| l l.
+11:12
+21:22
+31:32
+.TE
+.sp 2v
+hline and vline bottom left:
+.TS
+doublebox tab(:);
+l  l
+l  l
+_| l.
+11:12
+21:22
+:32
+.TE
+.sp 2v
+vline and hline bottom left:
+.TS
+doublebox tab(:);
+  l l
+  l l
+| _ l.
+11:12
+21:22
+:32
+.TE
+.sp 2v
+double hline bottom:
+.TS
+doublebox tab(:);
+l l l l
+l _ _ l.
+11:12:13:14
+21:::24
+.TE
+.sp 2v
+hline, vline, hline bottom:
+.TS
+doublebox tab(:);
+l l  l l
+l l  l l
+l _| _ l.
+11:12:13:14
+21:22:23:24
+31:::34
+.TE
+.sp 2v
+hline bottom right:
+.TS
+doublebox tab(:);
+l l
+l _.
+11:12
+21:
+.TE
+.sp 2v
+vline bottom right:
+.TS
+doublebox tab(:);
+l l
+l l
+l l|.
+11:12
+21:22
+31:32
+.TE
+.sp 2v
+vline and hline bottom right:
+.TS
+doublebox tab(:);
+l  l
+l  l
+l| _.
+11:12
+21:22
+31:
+.TE
+.sp 2v
+hline and vline bottom right:
+.TS
+doublebox tab(:);
+l l
+l l
+l _|.
+11:12
+21:22
+31:
+.TE
+.sp 2v
+double vline in front:
+.TS
+doublebox tab(:);
+   l l
+   l l
+|| l l
+   l l.
+11:12
+21:22
+31:32
+41:42
+.TE
+.sp 2v
+hline and double vline in front:
+.TS
+doublebox tab(:);
+l   l
+l   l
+_|| l
+l   l.
+11:12
+21:22
+:32
+41:42
+.TE
+.sp 2v
+double vline and hline in front:
+.TS
+doublebox tab(:);
+   l l
+   l l
+|| _ l
+   l l.
+11:12
+21:22
+:32
+41:42
+.TE
+.sp 2v
+double vline in the middle:
+.TS
+doublebox tab(:);
+l   l l
+l   l l
+l|| l l
+l   l l.
+11:12:13
+21:22:23
+31:32:33
+41:42:43
+.TE
+.sp 2v
+double vline and hline in the middle:
+.TS
+doublebox tab(:);
+l   l l
+l   l l
+l|| _ l
+l   l l.
+11:12:13
+21:22:23
+31::33
+41:42:43
+.TE
+.sp 2v
+hline and doble vline in the middle:
+.TS
+doublebox tab(:);
+l l   l
+l l   l
+l _|| l
+l l   l.
+11:12:13
+21:22:23
+31::33
+41:42:43
+.TE
+.sp 2v
+hline, double vline, hline in the middle:
+.TS
+doublebox tab(:);
+l l   l l
+l l   l l
+l _|| _ l
+l l   l l.
+11:12:13:14
+21:22:23:24
+31:::34
+41:42:43:44
+.TE
+.sp 2v
+double vline at the end:
+.TS
+doublebox tab(:);
+l l
+l l
+l l||
+l l.
+11:12
+21:22
+31:32
+41:42
+.TE
+.sp 2v
+double vline and hline at the end:
+.TS
+doublebox tab(:);
+l   l
+l   l
+l|| _
+l   l.
+11:12
+21:22
+31:
+41:42
+.TE
+.sp 2v
+hline and double vline at the end:
+.TS
+doublebox tab(:);
+l l
+l l
+l _||
+l l.
+11:12
+21:22
+31:
+41:42
+.TE
+.sp 2v
+double vline bottom left:
+.TS
+doublebox tab(:);
+   l l
+   l l
+|| l l.
+11:12
+21:22
+31:32
+.TE
+.sp 2v
+hline and double vline bottom left:
+.TS
+doublebox tab(:);
+l   l
+l   l
+_|| l.
+11:12
+21:22
+:32
+.TE
+.sp 2v
+double vline and hline bottom left:
+.TS
+doublebox tab(:);
+   l l
+   l l
+|| _ l.
+11:12
+21:22
+:32
+.TE
+.sp 2v
+hline, double vline, hline bottom:
+.TS
+doublebox tab(:);
+l l   l l
+l l   l l
+l _|| _ l.
+11:12:13:14
+21:22:23:24
+31:::34
+.TE
+.sp 2v
+double vline bottom right:
+.TS
+doublebox tab(:);
+l l
+l l
+l l||.
+11:12
+21:22
+31:32
+.TE
+.sp 2v
+double vline and hline bottom right:
+.TS
+doublebox tab(:);
+l   l
+l   l
+l|| _.
+11:12
+21:22
+31:
+.TE
+.sp 2v
+hline and double vline bottom right:
+.TS
+doublebox tab(:);
+l l
+l l
+l _||.
+11:12
+21:22
+31:
+.TE
+.sp 2v
+vline left below hline top left:
+.TS
+doublebox tab(:);
+  _ l
+| l l
+  l l.
+:12
+21:22
+31:32
+.TE
+.sp 2v
+vline right below hline top left:
+.TS
+doublebox tab(:);
+_  l
+l| l
+l  l.
+:12
+21:22
+31:32
+.TE
+.sp 2v
+vline left below hline at the top:
+.TS
+doublebox tab(:);
+l  _ l
+l| l l
+l  l l.
+11::13
+21:22:23
+31:32:33
+.TE
+.sp 2v
+vline right below hline at the top:
+.TS
+doublebox tab(:);
+l _  l
+l l| l
+l l  l.
+11::13
+21:22:23
+31:32:33
+.TE
+.sp 2v
+vline below hline at the top:
+.TS
+doublebox tab(:);
+l _  _ l
+l l| l l
+l l  l l.
+11:::14
+21:22:23:24
+31:32:33:34
+.TE
+.sp 2v
+vline left below hline top right:
+.TS
+doublebox tab(:);
+l  _
+l| l
+l  l.
+11:
+21:22
+31:32
+.TE
+.sp 2v
+vline right below hline top right:
+.TS
+doublebox tab(:);
+l _
+l l|
+l l.
+11:
+21:22
+31:32
+.TE
+.sp 2v
+vline left below hline in front:
+.TS
+doublebox tab(:);
+  l l
+  _ l
+| l l
+  l l.
+11:12
+:22
+31:32
+41:42
+.TE
+.sp 2v
+vline left above hline in front:
+.TS
+doublebox tab(:);
+  l l
+  l l
+| l l
+  _ l
+  l l.
+11:12
+21:22
+31:32
+:42
+51:52
+.TE
+.sp 2v
+vline right below hline in front:
+.TS
+doublebox tab(:);
+l  l
+_  l
+l| l
+l  l.
+11:12
+:22
+31:32
+41:42
+.TE
+.sp 2v
+vline right above hline in front:
+.TS
+doublebox tab(:);
+l  l
+l  l
+l| l
+_  l
+l  l.
+11:12
+21:22
+31:32
+:42
+51:52
+.TE
+.sp 2v
+vline left below hline in the middle:
+.TS
+doublebox tab(:);
+l  l l
+l  _ l
+l| l l
+l  l l.
+11:12:13
+21::23
+31:32:33
+41:42:43
+.TE
+.sp 2v
+vline left above hline in the middle:
+.TS
+doublebox tab(:);
+l  l l
+l  l l
+l| l l
+l  _ l
+l  l l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+51:52:53
+.TE
+.sp 2v
+vline right below hline in the middle:
+.TS
+doublebox tab(:);
+l l  l
+l _  l
+l l| l
+l l  l.
+11:12:13
+21::23
+31:32:33
+41:42:43
+.TE
+.sp 2v
+vline right above hline in the middle:
+.TS
+doublebox tab(:);
+l l  l
+l l  l
+l l| l
+l _  l
+l l  l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+51:52:53
+.TE
+.sp 2v
+vline below hline in the middle:
+.TS
+doublebox tab(:);
+l l  l l
+l _  _ l
+l l| l l
+l l  l l.
+11:12:13:14
+21:::24
+31:32:33:34
+41:42:43:44
+.TE
+.sp 2v
+vline above hline in the middle:
+.TS
+doublebox tab(:);
+l l  l l
+l l  l l
+l l| l l
+l _  _ l
+l l  l l.
+11:12:13:14
+21:22:23:24
+31:32:33:34
+41:::44
+51:52:53:54
+.TE
+.sp 2v
+vline left below hline at the end:
+.TS
+doublebox tab(:);
+l  l
+l  _
+l| l
+l  l.
+11:12
+21:
+31:32
+41:42
+.TE
+.sp 2v
+vline left above hline at the end:
+.TS
+doublebox tab(:);
+l  l
+l  l
+l| l
+l  _
+l  l.
+11:12
+21:22
+31:32
+41:
+51:52
+.TE
+.sp 2v
+vline right below hline at the end:
+.TS
+doublebox tab(:);
+l l
+l _
+l l|
+l l.
+11:12
+21:
+31:32
+41:42
+.TE
+.sp 2v
+vline right above hline at the end:
+.TS
+doublebox tab(:);
+l l
+l l
+l l|
+l _
+l l.
+11:12
+21:22
+31:32
+41:
+51:52
+.TE
+.sp 2v
+vline left above hline bottom left:
+.TS
+doublebox tab(:);
+  l l
+  l l
+| l l
+  _ l.
+11:12
+21:22
+31:32
+:42
+.TE
+.sp 2v
+vline right above hline bottom left:
+.TS
+doublebox tab(:);
+l  l
+l  l
+l| l
+_  l.
+11:12
+21:22
+31:32
+:42
+.TE
+.sp 2v
+vline left above hline at the bottom:
+.TS
+doublebox tab(:);
+l  l l
+l  l l
+l| l l
+l  _ l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+.TE
+.sp 2v
+vline right above hline at the bottom:
+.TS
+doublebox tab(:);
+l l  l
+l l  l
+l l| l
+l _  l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+.TE
+.sp 2v
+vline above hline at the bottom:
+.TS
+doublebox tab(:);
+l l  l l
+l l  l l
+l l| l l
+l _  _ l.
+11:12:13:14
+21:22:23:24
+31:32:33:34
+41:::44
+.TE
+.sp 2v
+vline left above hline bottom right:
+.TS
+doublebox tab(:);
+l  l
+l  l
+l| l
+l  _.
+11:12
+21:22
+31:32
+41:
+.TE
+.sp 2v
+vline right above hline bottom right:
+.TS
+doublebox tab(:);
+l l
+l l
+l l|
+l _.
+11:12
+21:22
+31:32
+41:
+.TE
+.sp 2v
+double vline left below hline top left:
+.TS
+doublebox tab(:);
+   _ l
+|| l l
+   l l.
+:12
+21:22
+31:32
+.TE
+.sp 2v
+double vline right below hline top left:
+.TS
+doublebox tab(:);
+_   l
+l|| l
+l   l.
+:12
+21:22
+31:32
+.TE
+.sp 2v
+double vline left below hline at the top:
+.TS
+doublebox tab(:);
+l   _ l
+l|| l l
+l   l l.
+11::13
+21:22:23
+31:32:33
+.TE
+.sp 2v
+double vline right below hline at the top:
+.TS
+doublebox tab(:);
+l _   l
+l l|| l
+l l   l.
+11::13
+21:22:23
+31:32:33
+.TE
+.sp 2v
+double vline below hline at the top:
+.TS
+doublebox tab(:);
+l _   _ l
+l l|| l l
+l l   l l.
+11:::14
+21:22:23:24
+31:32:33:34
+.TE
+.sp 2v
+double vline left below hline top right:
+.TS
+doublebox tab(:);
+l   _
+l|| l
+l   l.
+11:
+21:22
+31:32
+.TE
+.sp 2v
+double vline right below hline top right:
+.TS
+doublebox tab(:);
+l _
+l l||
+l l.
+11:
+21:22
+31:32
+.TE
+.sp 2v
+double vline left below hline in front:
+.TS
+doublebox tab(:);
+   l l
+   _ l
+|| l l
+   l l.
+11:12
+:22
+31:32
+41:42
+.TE
+.sp 2v
+double vline left above hline in front:
+.TS
+doublebox tab(:);
+   l l
+   l l
+|| l l
+   _ l
+   l l.
+11:12
+21:22
+31:32
+:42
+51:52
+.TE
+.sp 2v
+double vline right below hline in front:
+.TS
+doublebox tab(:);
+l   l
+_   l
+l|| l
+l   l.
+11:12
+:22
+31:32
+41:42
+.TE
+.sp 2v
+double vline right above hline in front:
+.TS
+doublebox tab(:);
+l   l
+l   l
+l|| l
+_   l
+l   l.
+11:12
+21:22
+31:32
+:42
+51:52
+.TE
+.sp 2v
+double vline left below hline in the middle:
+.TS
+doublebox tab(:);
+l   l l
+l   _ l
+l|| l l
+l   l l.
+11:12:13
+21::23
+31:32:33
+41:42:43
+.TE
+.sp 2v
+double vline left above hline in the middle:
+.TS
+doublebox tab(:);
+l   l l
+l   l l
+l|| l l
+l   _ l
+l   l l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+51:52:53
+.TE
+.sp 2v
+double vline right below hline in the middle:
+.TS
+doublebox tab(:);
+l l   l
+l _   l
+l l|| l
+l l   l.
+11:12:13
+21::23
+31:32:33
+41:42:43
+.TE
+.sp 2v
+double vline right above hline in the middle:
+.TS
+doublebox tab(:);
+l l   l
+l l   l
+l l|| l
+l _   l
+l l   l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+51:52:53
+.TE
+.sp 2v
+double vline below hline in the middle:
+.TS
+doublebox tab(:);
+l l   l l
+l _   _ l
+l l|| l l
+l l   l l.
+11:12:13:14
+21:::24
+31:32:33:34
+41:42:43:44
+.TE
+.sp 2v
+double vline above hline in the middle:
+.TS
+doublebox tab(:);
+l l   l l
+l l   l l
+l l|| l l
+l _   _ l
+l l   l l.
+11:12:13:14
+21:22:23:24
+31:32:33:34
+41:::44
+51:52:53:54
+.TE
+.sp 2v
+double vline left below hline at the end:
+.TS
+doublebox tab(:);
+l   l
+l   _
+l|| l
+l   l.
+11:12
+21:
+31:32
+41:42
+.TE
+.sp 2v
+double vline left above hline at the end:
+.TS
+doublebox tab(:);
+l   l
+l   l
+l|| l
+l   _
+l   l.
+11:12
+21:22
+31:32
+41:
+51:52
+.TE
+.sp 2v
+double vline right below hline at the end:
+.TS
+doublebox tab(:);
+l l
+l _
+l l||
+l l.
+11:12
+21:
+31:32
+41:42
+.TE
+.sp 2v
+double vline right above hline at the end:
+.TS
+doublebox tab(:);
+l l
+l l
+l l||
+l _
+l l.
+11:12
+21:22
+31:32
+41:
+51:52
+.TE
+.sp 2v
+double vline left above hline bottom left:
+.TS
+doublebox tab(:);
+   l l
+   l l
+|| l l
+   _ l.
+11:12
+21:22
+31:32
+:42
+.TE
+.sp 2v
+double vline right above hline bottom left:
+.TS
+doublebox tab(:);
+l   l
+l   l
+l|| l
+_   l.
+11:12
+21:22
+31:32
+:42
+.TE
+.sp 2v
+double vline left above hline at the bottom:
+.TS
+doublebox tab(:);
+l   l l
+l   l l
+l|| l l
+l   _ l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+.TE
+.sp 2v
+double vline right above hline at the bottom:
+.TS
+doublebox tab(:);
+l l   l
+l l   l
+l l|| l
+l _   l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+.TE
+.sp 2v
+double vline above hline at the bottom:
+.TS
+doublebox tab(:);
+l l   l l
+l l   l l
+l l|| l l
+l _   _ l.
+11:12:13:14
+21:22:23:24
+31:32:33:34
+41:::44
+.TE
+.sp 2v
+double vline left above hline bottom right:
+.TS
+doublebox tab(:);
+l   l
+l   l
+l|| l
+l   _.
+11:12
+21:22
+31:32
+41:
+.TE
+.sp 2v
+double vline right above hline bottom right:
+.TS
+doublebox tab(:);
+l l
+l l
+l l||
+l _.
+11:12
+21:22
+31:32
+41:
+.TE
+.sp 2v
+.Sh DOUBLEBOX ALLBOX
+vline top left:
+.TS
+doublebox allbox tab(:);
+| l l
+  l l.
+11:12
+21:22
+.TE
+.sp 2v
+hline and vline top left:
+.TS
+doublebox allbox tab(:);
+_| l
+l  l.
+:12
+21:22
+.TE
+.sp 2v
+vline and hline top left:
+.TS
+doublebox allbox tab(:);
+| _ l
+  l l.
+:12
+21:22
+.TE
+.sp 2v
+vline top:
+.TS
+doublebox allbox tab(:);
+l| l
+l  l.
+11:12
+21:22
+.TE
+.sp 2v
+vline and hline top:
+.TS
+doublebox allbox tab(:);
+l| _ l
+l  l l.
+11::13
+21:22:23
+.TE
+.sp 2v
+hline and vline top:
+.TS
+doublebox allbox tab(:);
+l _| l
+l l  l.
+11::13
+21:22:23
+.TE
+.sp 2v
+hline, vline, hline top:
+.TS
+doublebox allbox tab(:);
+l _| _ l
+l l  l l.
+11:::13
+21:22:23:24
+.TE
+.sp 2v
+vline top right:
+.TS
+doublebox allbox tab(:);
+l l|
+l l.
+11:12
+21:22
+.TE
+.sp 2v
+vline and hline top right:
+.TS
+doublebox allbox tab(:);
+l| _
+l  l.
+11:
+21:22
+.TE
+.sp 2v
+hline and vline top right:
+.TS
+doublebox allbox tab(:);
+l _|
+l l.
+11:
+21:22
+.TE
+.sp 2v
+double vline top left:
+.TS
+doublebox allbox tab(:);
+|| l l
+   l l.
+11:12
+21:22
+.TE
+.sp 2v
+hline and double vline top left:
+.TS
+doublebox allbox tab(:);
+_|| l
+l   l.
+:12
+21:22
+.TE
+.sp 2v
+double vline and hline top left:
+.TS
+doublebox allbox tab(:);
+|| _ l
+   l l.
+:12
+21:22
+.TE
+.sp 2v
+double vline top:
+.TS
+doublebox allbox tab(:);
+l|| l
+l   l.
+11:12
+21:22
+.TE
+.sp 2v
+double vline and hline top:
+.TS
+doublebox allbox tab(:);
+l|| _ l
+l   l l.
+11::13
+21:22:23
+.TE
+.sp 2v
+hline and double vline top:
+.TS
+doublebox allbox tab(:);
+l _|| l
+l l   l.
+11::13
+21:22:23
+.TE
+.sp 2v
+hline, double vline, hline top:
+.TS
+doublebox allbox tab(:);
+l _|| _ l
+l l   l l.
+11:::13
+21:22:23:24
+.TE
+.sp 2v
+double vline top right:
+.TS
+doublebox allbox tab(:);
+l l||
+l l.
+11:12
+21:22
+.TE
+.sp 2v
+double vline and hline top right:
+.TS
+doublebox allbox tab(:);
+l|| _
+l   l.
+11:
+21:22
+.TE
+.sp 2v
+hline and double vline top right:
+.TS
+doublebox allbox tab(:);
+l _||
+l l.
+11:
+21:22
+.TE
+.sp 2v
+hline top left:
+.TS
+doublebox allbox tab(:);
+_ l
+l l.
+:12
+21:22
+.TE
+.sp 2v
+hline top:
+.TS
+doublebox allbox tab(:);
+l _ l
+l l l.
+11::13
+21:22:23
+.TE
+.sp 2v
+double hline top:
+.TS
+doublebox allbox tab(:);
+l _ _ l
+l l l l.
+11:::13
+21:22:23:24
+.TE
+.sp 2v
+hline top right:
+.TS
+doublebox allbox tab(:);
+l _
+l l.
+11:
+21:22
+.TE
+.sp 2v
+hline in front:
+.TS
+doublebox allbox tab(:);
+l l
+_ l
+l l.
+11:12
+:22
+31:32
+.TE
+.sp 2v
+vline in front:
+.TS
+doublebox allbox tab(:);
+  l l
+  l l
+| l l
+  l l.
+11:12
+21:22
+31:32
+41:42
+.TE
+.sp 2v
+hline and vline in front:
+.TS
+doublebox allbox tab(:);
+l  l
+l  l
+_| l
+l  l.
+11:12
+21:22
+:32
+41:42
+.TE
+.sp 2v
+vline and hline in front:
+.TS
+doublebox allbox tab(:);
+  l l
+  l l
+| _ l
+  l l.
+11:12
+21:22
+:32
+41:42
+.TE
+.sp 2v
+hline in the middle:
+.TS
+doublebox allbox tab(:);
+l l l
+l _ l
+l l l.
+11:12:13
+21::23
+31:32:33
+.TE
+.sp 2v
+vline in the middle:
+.TS
+doublebox allbox tab(:);
+l  l l
+l  l l
+l| l l
+l  l l.
+11:12:13
+21:22:23
+31:32:33
+41:42:43
+.TE
+.sp 2v
+vline and hline in the middle:
+.TS
+doublebox allbox tab(:);
+l  l l
+l  l l
+l| _ l
+l  l l.
+11:12:13
+21:22:23
+31::33
+41:42:43
+.TE
+.sp 2v
+hline and vline in the middle:
+.TS
+doublebox allbox tab(:);
+l l  l
+l l  l
+l _| l
+l l  l.
+11:12:13
+21:22:23
+31::33
+41:42:43
+.TE
+.sp 2v
+double hline in the middle:
+.TS
+doublebox allbox tab(:);
+l l l l
+l _ _ l
+l l l l.
+11:12:13:14
+21:::24
+31:32:33:34
+.TE
+.sp 2v
+hline, vline, hline in the middle:
+.TS
+doublebox allbox tab(:);
+l l  l l
+l l  l l
+l _| _ l
+l l  l l.
+11:12:13:14
+21:22:23:24
+31:::34
+41:42:43:44
+.TE
+.sp 2v
+hline at the end:
+.TS
+doublebox allbox tab(:);
+l l
+l _
+l l.
+11:12
+21:
+31:32
+.TE
+.sp 2v
+vline at the end:
+.TS
+doublebox allbox tab(:);
+l l
+l l
+l l|
+l l.
+11:12
+21:22
+31:32
+41:42
+.TE
+.sp 2v
+vline and hline at the end:
+.TS
+doublebox allbox tab(:);
+l  l
+l  l
+l| _
+l  l.
+11:12
+21:22
+31:
+41:42
+.TE
+.sp 2v
+hline and vline at the end:
+.TS
+doublebox allbox tab(:);
+l l
+l l
+l _|
+l l.
+11:12
+21:22
+31:
+41:42
+.TE
+.sp 2v
+hline bottom left:
+.TS
+doublebox allbox tab(:);
+l l
+_ l.
+11:12
+:22
+.TE
+.sp 2v
+vline bottom left:
+.TS
+doublebox allbox tab(:);
+  l l
+  l l
+| l l.
+11:12
+21:22
+31:32
+.TE
+.sp 2v
+hline and vline bottom left:
+.TS
+doublebox allbox tab(:);
+l  l
+l  l
+_| l.
+11:12
+21:22
+:32
+.TE
+.sp 2v
+vline and hline bottom left:
+.TS
+doublebox allbox tab(:);
+  l l
+  l l
+| _ l.
+11:12
+21:22
+:32
+.TE
+.sp 2v
+double hline bottom:
+.TS
+doublebox allbox tab(:);
+l l l l
+l _ _ l.
+11:12:13:14
+21:::24
+.TE
+.sp 2v
+hline, vline, hline bottom:
+.TS
+doublebox allbox tab(:);
+l l  l l
+l l  l l
+l _| _ l.
+11:12:13:14
+21:22:23:24
+31:::34
+.TE
+.sp 2v
+hline bottom right:
+.TS
+doublebox allbox tab(:);
+l l
+l _.
+11:12
+21:
+.TE
+.sp 2v
+vline bottom right:
+.TS
+doublebox allbox tab(:);
+l l
+l l
+l l|.
+11:12
+21:22
+31:32
+.TE
+.sp 2v
+vline and hline bottom right:
+.TS
+doublebox allbox tab(:);
+l  l
+l  l
+l| _.
+11:12
+21:22
+31:
+.TE
+.sp 2v
+hline and vline bottom right:
+.TS
+doublebox allbox tab(:);
+l l
+l l
+l _|.
+11:12
+21:22
+31:
+.TE
+.sp 2v
+double vline in front:
+.TS
+doublebox allbox tab(:);
+   l l
+   l l
+|| l l
+   l l.
+11:12
+21:22
+31:32
+41:42
+.TE
+.sp 2v
+hline and double vline in front:
+.TS
+doublebox allbox tab(:);
+l   l
+l   l
+_|| l
+l   l.
+11:12
+21:22
+:32
+41:42
+.TE
+.sp 2v
+double vline and hline in front:
+.TS
+doublebox allbox tab(:);
+   l l
+   l l
+|| _ l
+   l l.
+11:12
+21:22
+:32
+41:42
+.TE
+.sp 2v
+double vline in the middle:
+.TS
+doublebox allbox tab(:);
+l   l l
+l   l l
+l|| l l
+l   l l.
+11:12:13
+21:22:23
+31:32:33
+41:42:43
+.TE
+.sp 2v
+double vline and hline in the middle:
+.TS
+doublebox allbox tab(:);
+l   l l
+l   l l
+l|| _ l
+l   l l.
+11:12:13
+21:22:23
+31::33
+41:42:43
+.TE
+.sp 2v
+hline and doble vline in the middle:
+.TS
+doublebox allbox tab(:);
+l l   l
+l l   l
+l _|| l
+l l   l.
+11:12:13
+21:22:23
+31::33
+41:42:43
+.TE
+.sp 2v
+hline, double vline, hline in the middle:
+.TS
+doublebox allbox tab(:);
+l l   l l
+l l   l l
+l _|| _ l
+l l   l l.
+11:12:13:14
+21:22:23:24
+31:::34
+41:42:43:44
+.TE
+.sp 2v
+double vline at the end:
+.TS
+doublebox allbox tab(:);
+l l
+l l
+l l||
+l l.
+11:12
+21:22
+31:32
+41:42
+.TE
+.sp 2v
+double vline and hline at the end:
+.TS
+doublebox allbox tab(:);
+l   l
+l   l
+l|| _
+l   l.
+11:12
+21:22
+31:
+41:42
+.TE
+.sp 2v
+hline and double vline at the end:
+.TS
+doublebox allbox tab(:);
+l l
+l l
+l _||
+l l.
+11:12
+21:22
+31:
+41:42
+.TE
+.sp 2v
+double vline bottom left:
+.TS
+doublebox allbox tab(:);
+   l l
+   l l
+|| l l.
+11:12
+21:22
+31:32
+.TE
+.sp 2v
+hline and double vline bottom left:
+.TS
+doublebox allbox tab(:);
+l   l
+l   l
+_|| l.
+11:12
+21:22
+:32
+.TE
+.sp 2v
+double vline and hline bottom left:
+.TS
+doublebox allbox tab(:);
+   l l
+   l l
+|| _ l.
+11:12
+21:22
+:32
+.TE
+.sp 2v
+hline, double vline, hline bottom:
+.TS
+doublebox allbox tab(:);
+l l   l l
+l l   l l
+l _|| _ l.
+11:12:13:14
+21:22:23:24
+31:::34
+.TE
+.sp 2v
+double vline bottom right:
+.TS
+doublebox allbox tab(:);
+l l
+l l
+l l||.
+11:12
+21:22
+31:32
+.TE
+.sp 2v
+double vline and hline bottom right:
+.TS
+doublebox allbox tab(:);
+l   l
+l   l
+l|| _.
+11:12
+21:22
+31:
+.TE
+.sp 2v
+hline and double vline bottom right:
+.TS
+doublebox allbox tab(:);
+l l
+l l
+l _||.
+11:12
+21:22
+31:
+.TE
+.sp 2v
+vline left below hline top left:
+.TS
+doublebox allbox tab(:);
+  _ l
+| l l
+  l l.
+:12
+21:22
+31:32
+.TE
+.sp 2v
+vline right below hline top left:
+.TS
+doublebox allbox tab(:);
+_  l
+l| l
+l  l.
+:12
+21:22
+31:32
+.TE
+.sp 2v
+vline left below hline at the top:
+.TS
+doublebox allbox tab(:);
+l  _ l
+l| l l
+l  l l.
+11::13
+21:22:23
+31:32:33
+.TE
+.sp 2v
+vline right below hline at the top:
+.TS
+doublebox allbox tab(:);
+l _  l
+l l| l
+l l  l.
+11::13
+21:22:23
+31:32:33
+.TE
+.sp 2v
+vline below hline at the top:
+.TS
+doublebox allbox tab(:);
+l _  _ l
+l l| l l
+l l  l l.
+11:::14
+21:22:23:24
+31:32:33:34
+.TE
+.sp 2v
+vline left below hline top right:
+.TS
+doublebox allbox tab(:);
+l  _
+l| l
+l  l.
+11:
+21:22
+31:32
+.TE
+.sp 2v
+vline right below hline top right:
+.TS
+doublebox allbox tab(:);
+l _
+l l|
+l l.
+11:
+21:22
+31:32
+.TE
+.sp 2v
+vline left below hline in front:
+.TS
+doublebox allbox tab(:);
+  l l
+  _ l
+| l l
+  l l.
+11:12
+:22
+31:32
+41:42
+.TE
+.sp 2v
+vline left above hline in front:
+.TS
+doublebox allbox tab(:);
+  l l
+  l l
+| l l
+  _ l
+  l l.
+11:12
+21:22
+31:32
+:42
+51:52
+.TE
+.sp 2v
+vline right below hline in front:
+.TS
+doublebox allbox tab(:);
+l  l
+_  l
+l| l
+l  l.
+11:12
+:22
+31:32
+41:42
+.TE
+.sp 2v
+vline right above hline in front:
+.TS
+doublebox allbox tab(:);
+l  l
+l  l
+l| l
+_  l
+l  l.
+11:12
+21:22
+31:32
+:42
+51:52
+.TE
+.sp 2v
+vline left below hline in the middle:
+.TS
+doublebox allbox tab(:);
+l  l l
+l  _ l
+l| l l
+l  l l.
+11:12:13
+21::23
+31:32:33
+41:42:43
+.TE
+.sp 2v
+vline left above hline in the middle:
+.TS
+doublebox allbox tab(:);
+l  l l
+l  l l
+l| l l
+l  _ l
+l  l l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+51:52:53
+.TE
+.sp 2v
+vline right below hline in the middle:
+.TS
+doublebox allbox tab(:);
+l l  l
+l _  l
+l l| l
+l l  l.
+11:12:13
+21::23
+31:32:33
+41:42:43
+.TE
+.sp 2v
+vline right above hline in the middle:
+.TS
+doublebox allbox tab(:);
+l l  l
+l l  l
+l l| l
+l _  l
+l l  l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+51:52:53
+.TE
+.sp 2v
+vline below hline in the middle:
+.TS
+doublebox allbox tab(:);
+l l  l l
+l _  _ l
+l l| l l
+l l  l l.
+11:12:13:14
+21:::24
+31:32:33:34
+41:42:43:44
+.TE
+.sp 2v
+vline above hline in the middle:
+.TS
+doublebox allbox tab(:);
+l l  l l
+l l  l l
+l l| l l
+l _  _ l
+l l  l l.
+11:12:13:14
+21:22:23:24
+31:32:33:34
+41:::44
+51:52:53:54
+.TE
+.sp 2v
+vline left below hline at the end:
+.TS
+doublebox allbox tab(:);
+l  l
+l  _
+l| l
+l  l.
+11:12
+21:
+31:32
+41:42
+.TE
+.sp 2v
+vline left above hline at the end:
+.TS
+doublebox allbox tab(:);
+l  l
+l  l
+l| l
+l  _
+l  l.
+11:12
+21:22
+31:32
+41:
+51:52
+.TE
+.sp 2v
+vline right below hline at the end:
+.TS
+doublebox allbox tab(:);
+l l
+l _
+l l|
+l l.
+11:12
+21:
+31:32
+41:42
+.TE
+.sp 2v
+vline right above hline at the end:
+.TS
+doublebox allbox tab(:);
+l l
+l l
+l l|
+l _
+l l.
+11:12
+21:22
+31:32
+41:
+51:52
+.TE
+.sp 2v
+vline left above hline bottom left:
+.TS
+doublebox allbox tab(:);
+  l l
+  l l
+| l l
+  _ l.
+11:12
+21:22
+31:32
+:42
+.TE
+.sp 2v
+vline right above hline bottom left:
+.TS
+doublebox allbox tab(:);
+l  l
+l  l
+l| l
+_  l.
+11:12
+21:22
+31:32
+:42
+.TE
+.sp 2v
+vline left above hline at the bottom:
+.TS
+doublebox allbox tab(:);
+l  l l
+l  l l
+l| l l
+l  _ l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+.TE
+.sp 2v
+vline right above hline at the bottom:
+.TS
+doublebox allbox tab(:);
+l l  l
+l l  l
+l l| l
+l _  l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+.TE
+.sp 2v
+vline above hline at the bottom:
+.TS
+doublebox allbox tab(:);
+l l  l l
+l l  l l
+l l| l l
+l _  _ l.
+11:12:13:14
+21:22:23:24
+31:32:33:34
+41:::44
+.TE
+.sp 2v
+vline left above hline bottom right:
+.TS
+doublebox allbox tab(:);
+l  l
+l  l
+l| l
+l  _.
+11:12
+21:22
+31:32
+41:
+.TE
+.sp 2v
+vline right above hline bottom right:
+.TS
+doublebox allbox tab(:);
+l l
+l l
+l l|
+l _.
+11:12
+21:22
+31:32
+41:
+.TE
+.sp 2v
+double vline left below hline top left:
+.TS
+doublebox allbox tab(:);
+   _ l
+|| l l
+   l l.
+:12
+21:22
+31:32
+.TE
+.sp 2v
+double vline right below hline top left:
+.TS
+doublebox allbox tab(:);
+_   l
+l|| l
+l   l.
+:12
+21:22
+31:32
+.TE
+.sp 2v
+double vline left below hline at the top:
+.TS
+doublebox allbox tab(:);
+l   _ l
+l|| l l
+l   l l.
+11::13
+21:22:23
+31:32:33
+.TE
+.sp 2v
+double vline right below hline at the top:
+.TS
+doublebox allbox tab(:);
+l _   l
+l l|| l
+l l   l.
+11::13
+21:22:23
+31:32:33
+.TE
+.sp 2v
+double vline below hline at the top:
+.TS
+doublebox allbox tab(:);
+l _   _ l
+l l|| l l
+l l   l l.
+11:::14
+21:22:23:24
+31:32:33:34
+.TE
+.sp 2v
+double vline left below hline top right:
+.TS
+doublebox allbox tab(:);
+l   _
+l|| l
+l   l.
+11:
+21:22
+31:32
+.TE
+.sp 2v
+double vline right below hline top right:
+.TS
+doublebox allbox tab(:);
+l _
+l l||
+l l.
+11:
+21:22
+31:32
+.TE
+.sp 2v
+double vline left below hline in front:
+.TS
+doublebox allbox tab(:);
+   l l
+   _ l
+|| l l
+   l l.
+11:12
+:22
+31:32
+41:42
+.TE
+.sp 2v
+double vline left above hline in front:
+.TS
+doublebox allbox tab(:);
+   l l
+   l l
+|| l l
+   _ l
+   l l.
+11:12
+21:22
+31:32
+:42
+51:52
+.TE
+.sp 2v
+double vline right below hline in front:
+.TS
+doublebox allbox tab(:);
+l   l
+_   l
+l|| l
+l   l.
+11:12
+:22
+31:32
+41:42
+.TE
+.sp 2v
+double vline right above hline in front:
+.TS
+doublebox allbox tab(:);
+l   l
+l   l
+l|| l
+_   l
+l   l.
+11:12
+21:22
+31:32
+:42
+51:52
+.TE
+.sp 2v
+double vline left below hline in the middle:
+.TS
+doublebox allbox tab(:);
+l   l l
+l   _ l
+l|| l l
+l   l l.
+11:12:13
+21::23
+31:32:33
+41:42:43
+.TE
+.sp 2v
+double vline left above hline in the middle:
+.TS
+doublebox allbox tab(:);
+l   l l
+l   l l
+l|| l l
+l   _ l
+l   l l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+51:52:53
+.TE
+.sp 2v
+double vline right below hline in the middle:
+.TS
+doublebox allbox tab(:);
+l l   l
+l _   l
+l l|| l
+l l   l.
+11:12:13
+21::23
+31:32:33
+41:42:43
+.TE
+.sp 2v
+double vline right above hline in the middle:
+.TS
+doublebox allbox tab(:);
+l l   l
+l l   l
+l l|| l
+l _   l
+l l   l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+51:52:53
+.TE
+.sp 2v
+double vline below hline in the middle:
+.TS
+doublebox allbox tab(:);
+l l   l l
+l _   _ l
+l l|| l l
+l l   l l.
+11:12:13:14
+21:::24
+31:32:33:34
+41:42:43:44
+.TE
+.sp 2v
+double vline above hline in the middle:
+.TS
+doublebox allbox tab(:);
+l l   l l
+l l   l l
+l l|| l l
+l _   _ l
+l l   l l.
+11:12:13:14
+21:22:23:24
+31:32:33:34
+41:::44
+51:52:53:54
+.TE
+.sp 2v
+double vline left below hline at the end:
+.TS
+doublebox allbox tab(:);
+l   l
+l   _
+l|| l
+l   l.
+11:12
+21:
+31:32
+41:42
+.TE
+.sp 2v
+double vline left above hline at the end:
+.TS
+doublebox allbox tab(:);
+l   l
+l   l
+l|| l
+l   _
+l   l.
+11:12
+21:22
+31:32
+41:
+51:52
+.TE
+.sp 2v
+double vline right below hline at the end:
+.TS
+doublebox allbox tab(:);
+l l
+l _
+l l||
+l l.
+11:12
+21:
+31:32
+41:42
+.TE
+.sp 2v
+double vline right above hline at the end:
+.TS
+doublebox allbox tab(:);
+l l
+l l
+l l||
+l _
+l l.
+11:12
+21:22
+31:32
+41:
+51:52
+.TE
+.sp 2v
+double vline left above hline bottom left:
+.TS
+doublebox allbox tab(:);
+   l l
+   l l
+|| l l
+   _ l.
+11:12
+21:22
+31:32
+:42
+.TE
+.sp 2v
+double vline right above hline bottom left:
+.TS
+doublebox allbox tab(:);
+l   l
+l   l
+l|| l
+_   l.
+11:12
+21:22
+31:32
+:42
+.TE
+.sp 2v
+double vline left above hline at the bottom:
+.TS
+doublebox allbox tab(:);
+l   l l
+l   l l
+l|| l l
+l   _ l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+.TE
+.sp 2v
+double vline right above hline at the bottom:
+.TS
+doublebox allbox tab(:);
+l l   l
+l l   l
+l l|| l
+l _   l.
+11:12:13
+21:22:23
+31:32:33
+41::43
+.TE
+.sp 2v
+double vline above hline at the bottom:
+.TS
+doublebox allbox tab(:);
+l l   l l
+l l   l l
+l l|| l l
+l _   _ l.
+11:12:13:14
+21:22:23:24
+31:32:33:34
+41:::44
+.TE
+.sp 2v
+double vline left above hline bottom right:
+.TS
+doublebox allbox tab(:);
+l   l
+l   l
+l|| l
+l   _.
+11:12
+21:22
+31:32
+41:
+.TE
+.sp 2v
+double vline right above hline bottom right:
+.TS
+doublebox allbox tab(:);
+l l
+l l
+l l||
+l _.
+11:12
+21:22
+31:32
+41:
+.TE
+.sp 2v
--- /dev/null
+++ regress/tbl/layout/lines-nogroff.in
@@ -0,0 +1,207 @@
+.Dd June 15, 2017
+.Dt TBL-LAYOUT-LINES-NOGROFF 1
+.Os OpenBSD
+.Sh NAME
+.Nm tbl-layout-lines
+.Nd table cells containing lines, misformatting with groff
+.Sh DESCRIPTION
+vline top left:
+.sp
+.TS
+tab(:);
+| l l
+  l l.
+11:12
+21:22
+.TE
+.sp
+hline and vline top left:
+.sp
+.TS
+tab(:);
+_| l
+l  l.
+:12
+21:22
+.TE
+.sp
+vline and hline top left:
+.sp
+.TS
+tab(:);
+| _ l
+  l l.
+:12
+21:22
+.TE
+.sp
+vline top:
+.sp
+.TS
+tab(:);
+l| l
+l  l.
+11:12
+21:22
+.TE
+.sp
+vline and hline top:
+.sp
+.TS
+tab(:);
+l| _ l
+l  l l.
+11::13
+21:22:23
+.TE
+.sp
+hline and vline top:
+.sp
+.TS
+tab(:);
+l _| l
+l l  l.
+11::13
+21:22:23
+.TE
+.sp
+hline, vline, hline top:
+.sp
+.TS
+tab(:);
+l _| _ l
+l l  l l.
+11:::13
+21:22:23:24
+.TE
+.sp
+vline top right:
+.sp
+.TS
+tab(:);
+l l|
+l l.
+11:12
+21:22
+.TE
+.sp
+vline and hline top right:
+.sp
+.TS
+tab(:);
+l| _
+l  l.
+11:
+21:22
+.TE
+.sp
+hline and vline top right:
+.sp
+.TS
+tab(:);
+l _|
+l l.
+11:
+21:22
+.TE
+.sp
+double vline top left:
+.sp
+.TS
+tab(:);
+|| l l
+   l l.
+11:12
+21:22
+.TE
+.sp
+hline and double vline top left:
+.sp
+.TS
+tab(:);
+_|| l
+l   l.
+:12
+21:22
+.TE
+.sp
+double vline and hline top left:
+.sp
+.TS
+tab(:);
+|| _ l
+   l l.
+:12
+21:22
+.TE
+.sp
+double vline top:
+.sp
+.TS
+tab(:);
+l|| l
+l   l.
+11:12
+21:22
+.TE
+.sp
+double vline and hline top:
+.sp
+.TS
+tab(:);
+l|| _ l
+l   l l.
+11::13
+21:22:23
+.TE
+.sp
+hline and double vline top:
+.sp
+.TS
+tab(:);
+l _|| l
+l l   l.
+11::13
+21:22:23
+.TE
+.sp
+hline, double vline, hline top:
+.sp
+.TS
+tab(:);
+l _|| _ l
+l l   l l.
+11:::13
+21:22:23:24
+.TE
+.sp
+double vline top right:
+.sp
+.TS
+tab(:);
+l l||
+l l.
+11:12
+21:22
+.TE
+.sp
+double vline and hline top right:
+.sp
+.TS
+tab(:);
+l|| _
+l   l.
+11:
+21:22
+.TE
+.sp
+hline and double vline top right:
+.sp
+.TS
+tab(:);
+l _||
+l l.
+11:
+21:22
+.TE
+.sp
Index: Makefile
===================================================================
RCS file: /home/cvs/mdocml/mdocml/regress/tbl/layout/Makefile,v
retrieving revision 1.1
retrieving revision 1.2
diff -Lregress/tbl/layout/Makefile -Lregress/tbl/layout/Makefile -u -p -r1.1 -r1.2
--- regress/tbl/layout/Makefile
+++ regress/tbl/layout/Makefile
@@ -1,12 +1,15 @@
 # $OpenBSD: Makefile,v 1.2 2015/01/30 00:27:09 schwarze Exp $
 
-REGRESS_TARGETS	 = center complex empty emptyline numbers span
+REGRESS_TARGETS	 = center complex empty emptyline
+REGRESS_TARGETS	+= lines lines-nogroff numbers span
 LINT_TARGETS	 = complex empty
 
-# groff-1.22.3 defect:
+# groff-1.22.3 defects:
 # - When the layout is completely empty,
 #   GNU eqn produces no output whatsoever for the whole table.
+# - When there is no horizontal line at the top,
+#   vertical lines extend beyond the top of the table.
 
-SKIP_GROFF	 = empty
+SKIP_GROFF	 = empty lines-nogroff
 
 .include <bsd.regress.mk>
--- /dev/null
+++ regress/tbl/layout/lines-nogroff.out_ascii
@@ -0,0 +1,108 @@
+TBL-LAYOUT-LINES-NOGROFF(1)                            General Commands Manual
+
+N\bNA\bAM\bME\bE
+     t\btb\bbl\bl-\b-l\bla\bay\byo\bou\but\bt-\b-l\bli\bin\bne\bes\bs - table cells containing lines, misformatting with groff
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     vline top left:
+
+     |11   12
+      21   22
+
+     hline and vline top left:
+
+     ---+ 12
+     21   22
+
+     vline and hline top left:
+
+     +---- 12
+      21   22
+
+     vline top:
+
+     11 | 12
+     21   22
+
+     vline and hline top:
+
+     11 +----- 13
+     21   22   23
+
+     hline and vline top:
+
+     11 -----+ 13
+     21   22   23
+
+     hline, vline, hline top:
+
+     11 -----+----- 13
+     21   22   23   24
+
+     vline top right:
+
+     11   12 |
+     21   22
+
+     vline and hline top right:
+
+     11 +----
+     21   22
+
+     hline and vline top right:
+
+     11 -----+
+     21   22
+
+     double vline top left:
+
+     |11   12
+      21   22
+
+     hline and double vline top left:
+
+     ---+|12
+     21   22
+
+     double vline and hline top left:
+
+     +---- 12
+      21   22
+
+     double vline top:
+
+     11 ||12
+     21   22
+
+     double vline and hline top:
+
+     11 ++---- 13
+     21   22   23
+
+     hline and double vline top:
+
+     11 -----+|13
+     21   22   23
+
+     hline, double vline, hline top:
+
+     11 -----++---- 13
+     21   22   23   24
+
+     double vline top right:
+
+     11   12 |
+     21   22
+
+     double vline and hline top right:
+
+     11 ++---
+     21   22
+
+     hline and double vline top right:
+
+     11 -----+
+     21   22
+
+
+OpenBSD                          June 15, 2017                         OpenBSD
--- /dev/null
+++ regress/tbl/layout/lines.out_ascii
@@ -0,0 +1,4755 @@
+TBL-LAYOUT-LINES(1)         General Commands Manual        TBL-LAYOUT-LINES(1)
+
+N\bNA\bAM\bME\bE
+     t\btb\bbl\bl-\b-l\bla\bay\byo\bou\but\bt-\b-l\bli\bin\bne\bes\bs - table cells containing lines
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     hline top left:
+     ---- 12
+     21   22
+
+     hline top:
+     11 ------ 13
+     21   22   23
+
+     double hline top:
+     11 ----------- 13
+     21   22   23   24
+
+     hline top right:
+     11 -----
+     21   22
+
+     hline in front:
+     11   12
+     ---- 22
+     31   32
+
+     vline in front:
+      11   12
+     |21   22
+     |31   32
+      41   42
+
+     hline and vline in front:
+     11   12
+     21 | 22
+     ---+ 32
+     41   42
+
+     vline and hline in front:
+      11   12
+     |21   22
+     +---- 32
+      41   42
+
+     hline in the middle:
+     11   12   13
+     21 ------ 23
+     31   32   33
+
+     vline in the middle:
+     11   12   13
+     21 | 22   23
+     31 | 32   33
+     41   42   43
+
+     vline and hline in the middle:
+     11   12   13
+     21 | 22   23
+     31 +----- 33
+     41   42   43
+
+     hline and vline in the middle:
+     11   12   13
+     21   22 | 23
+     31 -----+ 33
+     41   42   43
+
+     double hline in the middle:
+     11   12   13   14
+     21 ----------- 24
+     31   32   33   34
+
+     hline, vline, hline in the middle:
+     11   12   13   14
+     21   22 | 23   24
+     31 -----+----- 34
+     41   42   43   44
+
+     hline at the end:
+     11   12
+     21 -----
+     31   32
+
+     vline at the end:
+     11   12
+     21   22 |
+     31   32 |
+     41   42
+
+     vline and hline at the end:
+     11   12
+     21 | 22
+     31 +----
+     41   42
+
+     hline and vline at the end:
+     11   12
+     21   22 |
+     31 -----+
+     41   42
+
+     hline bottom left:
+     11   12
+     ---- 22
+
+     vline bottom left:
+      11   12
+     |21   22
+     |31   32
+
+     hline and vline bottom left:
+     11   12
+     21 | 22
+     ---+ 32
+
+     vline and hline bottom left:
+      11   12
+     |21   22
+     +---- 32
+
+     double hline bottom:
+     11   12   13   14
+     21 ----------- 24
+
+     hline, vline, hline bottom:
+     11   12   13   14
+     21   22 | 23   24
+     31 -----+----- 34
+
+     hline bottom right:
+     11   12
+     21 -----
+
+     vline bottom right:
+     11   12
+     21   22 |
+     31   32 |
+
+     vline and hline bottom right:
+     11   12
+     21 | 22
+     31 +----
+
+     hline and vline bottom right:
+     11   12
+     21   22 |
+     31 -----+
+
+     double vline in front:
+      11   12
+     |21   22
+     |31   32
+      41   42
+
+     hline and double vline in front:
+     11   12
+     21 ||22
+     ---+|32
+     41   42
+
+     double vline and hline in front:
+      11   12
+     |21   22
+     +---- 32
+      41   42
+
+     double vline in the middle:
+     11   12   13
+     21 ||22   23
+     31 ||32   33
+     41   42   43
+
+     double vline and hline in the middle:
+     11   12   13
+     21 ||22   23
+     31 ++---- 33
+     41   42   43
+
+     hline and doble vline in the middle:
+     11   12   13
+     21   22 ||23
+     31 -----+|33
+     41   42   43
+
+     hline, double vline, hline in the middle:
+     11   12   13   14
+     21   22 ||23   24
+     31 -----++---- 34
+     41   42   43   44
+
+     double vline at the end:
+     11   12
+     21   22 |
+     31   32 |
+     41   42
+
+     double vline and hline at the end:
+     11   12
+     21 ||22
+     31 ++---
+     41   42
+
+     hline and double vline at the end:
+     11   12
+     21   22 |
+     31 -----+
+     41   42
+
+     double vline bottom left:
+      11   12
+     |21   22
+     |31   32
+
+     hline and double vline bottom left:
+     11   12
+     21 ||22
+     ---+|32
+
+     double vline and hline bottom left:
+      11   12
+     |21   22
+     +---- 32
+
+     hline, double vline, hline bottom:
+     11   12   13   14
+     21   22 ||23   24
+     31 -----++---- 34
+
+     double vline bottom right:
+     11   12
+     21   22 |
+     31   32 |
+
+     double vline and hline bottom right:
+     11   12
+     21 ||22
+     31 ++---
+
+     hline and double vline bottom right:
+     11   12
+     21   22 |
+     31 -----+
+
+     vline left below hline top left:
+     +---- 12
+     |21   22
+      31   32
+
+     vline right below hline top left:
+     ---+ 12
+     21 | 22
+     31   32
+
+     vline left below hline at the top:
+     11 +----- 13
+     21 | 22   23
+     31   32   33
+
+     vline right below hline at the top:
+     11 -----+ 13
+     21   22 | 23
+     31   32   33
+
+     vline below hline at the top:
+     11 -----+----- 14
+     21   22 | 23   24
+     31   32   33   34
+
+     vline left below hline top right:
+     11 +----
+     21 | 22
+     31   32
+
+     vline right below hline top right:
+     11 -----+
+     21   22 |
+     31   32
+
+     vline left below hline in front:
+      11   12
+     +---- 22
+     |31   32
+      41   42
+
+     vline left above hline in front:
+      11   12
+     |21   22
+     |31   32
+     +---- 42
+      51   52
+
+     vline right below hline in front:
+     11   12
+     ---+ 22
+     31 | 32
+     41   42
+
+     vline right above hline in front:
+     11   12
+     21 | 22
+     31 | 32
+     ---+ 42
+     51   52
+
+     vline left below hline in the middle:
+     11   12   13
+     21 +----- 23
+     31 | 32   33
+     41   42   43
+
+     vline left above hline in the middle:
+     11   12   13
+     21 | 22   23
+     31 | 32   33
+     41 +----- 43
+     51   52   53
+
+     vline right below hline in the middle:
+     11   12   13
+     21 -----+ 23
+     31   32 | 33
+     41   42   43
+
+     vline right above hline in the middle:
+     11   12   13
+     21   22 | 23
+     31   32 | 33
+     41 -----+ 43
+     51   52   53
+
+     vline below hline in the middle:
+     11   12   13   14
+     21 -----+----- 24
+     31   32 | 33   34
+     41   42   43   44
+
+     vline above hline in the middle:
+     11   12   13   14
+     21   22 | 23   24
+     31   32 | 33   34
+     41 -----+----- 44
+     51   52   53   54
+
+     vline left below hline at the end:
+     11   12
+     21 +----
+     31 | 32
+     41   42
+
+     vline left above hline at the end:
+     11   12
+     21 | 22
+     31 | 32
+     41 +----
+     51   52
+
+     vline right below hline at the end:
+     11   12
+     21 -----+
+     31   32 |
+     41   42
+
+     vline right above hline at the end:
+     11   12
+     21   22 |
+     31   32 |
+     41 -----+
+     51   52
+
+     vline left above hline bottom left:
+      11   12
+     |21   22
+     |31   32
+     +---- 42
+
+     vline right above hline bottom left:
+     11   12
+     21 | 22
+     31 | 32
+     ---+ 42
+
+     vline left above hline at the bottom:
+     11   12   13
+     21 | 22   23
+     31 | 32   33
+     41 +----- 43
+
+     vline right above hline at the bottom:
+     11   12   13
+     21   22 | 23
+     31   32 | 33
+     41 -----+ 43
+
+     vline above hline at the bottom:
+     11   12   13   14
+     21   22 | 23   24
+     31   32 | 33   34
+     41 -----+----- 44
+
+     vline left above hline bottom right:
+     11   12
+     21 | 22
+     31 | 32
+     41 +----
+
+     vline right above hline bottom right:
+     11   12
+     21   22 |
+     31   32 |
+     41 -----+
+
+     double vline left below hline top left:
+     +---- 12
+     |21   22
+      31   32
+
+     double vline right below hline top left:
+     ---+|12
+     21 ||22
+     31   32
+
+     double vline left below hline at the top:
+     11 ++---- 13
+     21 ||22   23
+     31   32   33
+
+     double vline right below hline at the top:
+     11 -----+|13
+     21   22 ||23
+     31   32   33
+
+     double vline below hline at the top:
+     11 -----++---- 14
+     21   22 ||23   24
+     31   32   33   34
+
+     double vline left below hline top right:
+     11 ++---
+     21 ||22
+     31   32
+
+     double vline right below hline top right:
+     11 -----+
+     21   22 |
+     31   32
+
+     double vline left below hline in front:
+      11   12
+     +---- 22
+     |31   32
+      41   42
+
+     double vline left above hline in front:
+      11   12
+     |21   22
+     |31   32
+     +---- 42
+      51   52
+
+     double vline right below hline in front:
+     11   12
+     ---+|22
+     31 ||32
+     41   42
+
+     double vline right above hline in front:
+     11   12
+     21 ||22
+     31 ||32
+     ---+|42
+     51   52
+
+     double vline left below hline in the middle:
+     11   12   13
+     21 ++---- 23
+     31 ||32   33
+     41   42   43
+
+     double vline left above hline in the middle:
+     11   12   13
+     21 ||22   23
+     31 ||32   33
+     41 ++---- 43
+     51   52   53
+
+     double vline right below hline in the middle:
+     11   12   13
+     21 -----+|23
+     31   32 ||33
+     41   42   43
+
+     double vline right above hline in the middle:
+     11   12   13
+     21   22 ||23
+     31   32 ||33
+     41 -----+|43
+     51   52   53
+
+     double vline below hline in the middle:
+     11   12   13   14
+     21 -----++---- 24
+     31   32 ||33   34
+     41   42   43   44
+
+     double vline above hline in the middle:
+     11   12   13   14
+     21   22 ||23   24
+     31   32 ||33   34
+     41 -----++---- 44
+     51   52   53   54
+
+     double vline left below hline at the end:
+     11   12
+     21 ++---
+     31 ||32
+     41   42
+
+     double vline left above hline at the end:
+     11   12
+     21 ||22
+     31 ||32
+     41 ++---
+     51   52
+
+     double vline right below hline at the end:
+     11   12
+     21 -----+
+     31   32 |
+     41   42
+
+     double vline right above hline at the end:
+     11   12
+     21   22 |
+     31   32 |
+     41 -----+
+     51   52
+
+     double vline left above hline bottom left:
+      11   12
+     |21   22
+     |31   32
+     +---- 42
+
+     double vline right above hline bottom left:
+     11   12
+     21 ||22
+     31 ||32
+     ---+|42
+
+     double vline left above hline at the bottom:
+     11   12   13
+     21 ||22   23
+     31 ||32   33
+     41 ++---- 43
+
+     double vline right above hline at the bottom:
+     11   12   13
+     21   22 ||23
+     31   32 ||33
+     41 -----+|43
+
+     double vline above hline at the bottom:
+     11   12   13   14
+     21   22 ||23   24
+     31   32 ||33   34
+     41 -----++---- 44
+
+     double vline left above hline bottom right:
+     11   12
+     21 ||22
+     31 ||32
+     41 ++---
+
+     double vline right above hline bottom right:
+     11   12
+     21   22 |
+     31   32 |
+     41 -----+
+
+B\bBO\bOX\bXE\bED\bD
+     vline top left:
+     +--------+
+     |11   12 |
+     |21   22 |
+     +--------+
+     hline and vline top left:
+     +---+----+
+     +---+ 12 |
+     |21   22 |
+     +--------+
+     vline and hline top left:
+     +--------+
+     +---- 12 |
+     |21   22 |
+     +--------+
+     vline top:
+     +---+----+
+     |11 | 12 |
+     |21   22 |
+     +--------+
+     vline and hline top:
+     +---+---------+
+     |11 +----- 13 |
+     |21   22   23 |
+     +-------------+
+     hline and vline top:
+     +--------+----+
+     |11 -----+ 13 |
+     |21   22   23 |
+     +-------------+
+     hline, vline, hline top:
+     +--------+---------+
+     |11 -----+----- 13 |
+     |21   22   23   24 |
+     +------------------+
+     vline top right:
+     +--------+
+     |11   12 |
+     |21   22 |
+     +--------+
+     vline and hline top right:
+     +---+----+
+     |11 +----+
+     |21   22 |
+     +--------+
+     hline and vline top right:
+     +--------+
+     |11 -----+
+     |21   22 |
+     +--------+
+     double vline top left:
+     +--------+
+     |11   12 |
+     |21   22 |
+     +--------+
+     hline and double vline top left:
+     +---++---+
+     +---+|12 |
+     |21   22 |
+     +--------+
+     double vline and hline top left:
+     +--------+
+     +---- 12 |
+     |21   22 |
+     +--------+
+     double vline top:
+     +---++---+
+     |11 ||12 |
+     |21   22 |
+     +--------+
+     double vline and hline top:
+     +---++--------+
+     |11 ++---- 13 |
+     |21   22   23 |
+     +-------------+
+     hline and double vline top:
+     +--------++---+
+     |11 -----+|13 |
+     |21   22   23 |
+     +-------------+
+     hline, double vline, hline top:
+     +--------++--------+
+     |11 -----++---- 13 |
+     |21   22   23   24 |
+     +------------------+
+     double vline top right:
+     +--------+
+     |11   12 |
+     |21   22 |
+     +--------+
+     double vline and hline top right:
+     +---++---+
+     |11 ++---+
+     |21   22 |
+     +--------+
+     hline and double vline top right:
+     +--------+
+     |11 -----+
+     |21   22 |
+     +--------+
+     hline top left:
+     +--------+
+     +---- 12 |
+     |21   22 |
+     +--------+
+     hline top:
+     +-------------+
+     |11 ------ 13 |
+     |21   22   23 |
+     +-------------+
+     double hline top:
+     +------------------+
+     |11 ----------- 13 |
+     |21   22   23   24 |
+     +------------------+
+     hline top right:
+     +--------+
+     |11 -----+
+     |21   22 |
+     +--------+
+     hline in front:
+     +--------+
+     |11   12 |
+     +---- 22 |
+     |31   32 |
+     +--------+
+     vline in front:
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     |41   42 |
+     +--------+
+     hline and vline in front:
+     +--------+
+     |11   12 |
+     |21 | 22 |
+     +---+ 32 |
+     |41   42 |
+     +--------+
+     vline and hline in front:
+     +--------+
+     |11   12 |
+     |21   22 |
+     +---- 32 |
+     |41   42 |
+     +--------+
+     hline in the middle:
+     +-------------+
+     |11   12   13 |
+     |21 ------ 23 |
+     |31   32   33 |
+     +-------------+
+     vline in the middle:
+     +-------------+
+     |11   12   13 |
+     |21 | 22   23 |
+     |31 | 32   33 |
+     |41   42   43 |
+     +-------------+
+     vline and hline in the middle:
+     +-------------+
+     |11   12   13 |
+     |21 | 22   23 |
+     |31 +----- 33 |
+     |41   42   43 |
+     +-------------+
+     hline and vline in the middle:
+     +-------------+
+     |11   12   13 |
+     |21   22 | 23 |
+     |31 -----+ 33 |
+     |41   42   43 |
+     +-------------+
+     double hline in the middle:
+     +------------------+
+     |11   12   13   14 |
+     |21 ----------- 24 |
+     |31   32   33   34 |
+     +------------------+
+     hline, vline, hline in the middle:
+     +------------------+
+     |11   12   13   14 |
+     |21   22 | 23   24 |
+     |31 -----+----- 34 |
+     |41   42   43   44 |
+     +------------------+
+     hline at the end:
+     +--------+
+     |11   12 |
+     |21 -----+
+     |31   32 |
+     +--------+
+     vline at the end:
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     |41   42 |
+     +--------+
+     vline and hline at the end:
+     +--------+
+     |11   12 |
+     |21 | 22 |
+     |31 +----+
+     |41   42 |
+     +--------+
+     hline and vline at the end:
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31 -----+
+     |41   42 |
+     +--------+
+     hline bottom left:
+     +--------+
+     |11   12 |
+     +---- 22 |
+     +--------+
+     vline bottom left:
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     +--------+
+     hline and vline bottom left:
+     +--------+
+     |11   12 |
+     |21 | 22 |
+     +---+ 32 |
+     +---+----+
+     vline and hline bottom left:
+     +--------+
+     |11   12 |
+     |21   22 |
+     +---- 32 |
+     +--------+
+     double hline bottom:
+     +------------------+
+     |11   12   13   14 |
+     |21 ----------- 24 |
+     +------------------+
+     hline, vline, hline bottom:
+     +------------------+
+     |11   12   13   14 |
+     |21   22 | 23   24 |
+     |31 -----+----- 34 |
+     +--------+---------+
+     hline bottom right:
+     +--------+
+     |11   12 |
+     |21 -----+
+     +--------+
+     vline bottom right:
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     +--------+
+     vline and hline bottom right:
+     +--------+
+     |11   12 |
+     |21 | 22 |
+     |31 +----+
+     +---+----+
+     hline and vline bottom right:
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31 -----+
+     +--------+
+     double vline in front:
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     |41   42 |
+     +--------+
+     hline and double vline in front:
+     +--------+
+     |11   12 |
+     |21 ||22 |
+     +---+|32 |
+     |41   42 |
+     +--------+
+     double vline and hline in front:
+     +--------+
+     |11   12 |
+     |21   22 |
+     +---- 32 |
+     |41   42 |
+     +--------+
+     double vline in the middle:
+     +-------------+
+     |11   12   13 |
+     |21 ||22   23 |
+     |31 ||32   33 |
+     |41   42   43 |
+     +-------------+
+     double vline and hline in the middle:
+     +-------------+
+     |11   12   13 |
+     |21 ||22   23 |
+     |31 ++---- 33 |
+     |41   42   43 |
+     +-------------+
+     hline and doble vline in the middle:
+     +-------------+
+     |11   12   13 |
+     |21   22 ||23 |
+     |31 -----+|33 |
+     |41   42   43 |
+     +-------------+
+     hline, double vline, hline in the middle:
+     +------------------+
+     |11   12   13   14 |
+     |21   22 ||23   24 |
+     |31 -----++---- 34 |
+     |41   42   43   44 |
+     +------------------+
+     double vline at the end:
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     |41   42 |
+     +--------+
+     double vline and hline at the end:
+     +--------+
+     |11   12 |
+     |21 ||22 |
+     |31 ++---+
+     |41   42 |
+     +--------+
+     hline and double vline at the end:
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31 -----+
+     |41   42 |
+     +--------+
+     double vline bottom left:
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     +--------+
+     hline and double vline bottom left:
+     +--------+
+     |11   12 |
+     |21 ||22 |
+     +---+|32 |
+     +---++---+
+     double vline and hline bottom left:
+     +--------+
+     |11   12 |
+     |21   22 |
+     +---- 32 |
+     +--------+
+     hline, double vline, hline bottom:
+     +------------------+
+     |11   12   13   14 |
+     |21   22 ||23   24 |
+     |31 -----++---- 34 |
+     +--------++--------+
+     double vline bottom right:
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     +--------+
+     double vline and hline bottom right:
+     +--------+
+     |11   12 |
+     |21 ||22 |
+     |31 ++---+
+     +---++---+
+     hline and double vline bottom right:
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31 -----+
+     +--------+
+     vline left below hline top left:
+     +--------+
+     +---- 12 |
+     |21   22 |
+     |31   32 |
+     +--------+
+     vline right below hline top left:
+     +--------+
+     +---+ 12 |
+     |21 | 22 |
+     |31   32 |
+     +--------+
+     vline left below hline at the top:
+     +-------------+
+     |11 +----- 13 |
+     |21 | 22   23 |
+     |31   32   33 |
+     +-------------+
+     vline right below hline at the top:
+     +-------------+
+     |11 -----+ 13 |
+     |21   22 | 23 |
+     |31   32   33 |
+     +-------------+
+     vline below hline at the top:
+     +------------------+
+     |11 -----+----- 14 |
+     |21   22 | 23   24 |
+     |31   32   33   34 |
+     +------------------+
+     vline left below hline top right:
+     +--------+
+     |11 +----+
+     |21 | 22 |
+     |31   32 |
+     +--------+
+     vline right below hline top right:
+     +--------+
+     |11 -----+
+     |21   22 |
+     |31   32 |
+     +--------+
+     vline left below hline in front:
+     +--------+
+     |11   12 |
+     +---- 22 |
+     |31   32 |
+     |41   42 |
+     +--------+
+     vline left above hline in front:
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     +---- 42 |
+     |51   52 |
+     +--------+
+     vline right below hline in front:
+     +--------+
+     |11   12 |
+     +---+ 22 |
+     |31 | 32 |
+     |41   42 |
+     +--------+
+     vline right above hline in front:
+     +--------+
+     |11   12 |
+     |21 | 22 |
+     |31 | 32 |
+     +---+ 42 |
+     |51   52 |
+     +--------+
+     vline left below hline in the middle:
+     +-------------+
+     |11   12   13 |
+     |21 +----- 23 |
+     |31 | 32   33 |
+     |41   42   43 |
+     +-------------+
+     vline left above hline in the middle:
+     +-------------+
+     |11   12   13 |
+     |21 | 22   23 |
+     |31 | 32   33 |
+     |41 +----- 43 |
+     |51   52   53 |
+     +-------------+
+     vline right below hline in the middle:
+     +-------------+
+     |11   12   13 |
+     |21 -----+ 23 |
+     |31   32 | 33 |
+     |41   42   43 |
+     +-------------+
+     vline right above hline in the middle:
+     +-------------+
+     |11   12   13 |
+     |21   22 | 23 |
+     |31   32 | 33 |
+     |41 -----+ 43 |
+     |51   52   53 |
+     +-------------+
+     vline below hline in the middle:
+     +------------------+
+     |11   12   13   14 |
+     |21 -----+----- 24 |
+     |31   32 | 33   34 |
+     |41   42   43   44 |
+     +------------------+
+     vline above hline in the middle:
+     +------------------+
+     |11   12   13   14 |
+     |21   22 | 23   24 |
+     |31   32 | 33   34 |
+     |41 -----+----- 44 |
+     |51   52   53   54 |
+     +------------------+
+     vline left below hline at the end:
+     +--------+
+     |11   12 |
+     |21 +----+
+     |31 | 32 |
+     |41   42 |
+     +--------+
+     vline left above hline at the end:
+     +--------+
+     |11   12 |
+     |21 | 22 |
+     |31 | 32 |
+     |41 +----+
+     |51   52 |
+     +--------+
+     vline right below hline at the end:
+     +--------+
+     |11   12 |
+     |21 -----+
+     |31   32 |
+     |41   42 |
+     +--------+
+     vline right above hline at the end:
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     |41 -----+
+     |51   52 |
+     +--------+
+     vline left above hline bottom left:
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     +---- 42 |
+     +--------+
+     vline right above hline bottom left:
+     +--------+
+     |11   12 |
+     |21 | 22 |
+     |31 | 32 |
+     +---+ 42 |
+     +--------+
+     vline left above hline at the bottom:
+     +-------------+
+     |11   12   13 |
+     |21 | 22   23 |
+     |31 | 32   33 |
+     |41 +----- 43 |
+     +-------------+
+     vline right above hline at the bottom:
+     +-------------+
+     |11   12   13 |
+     |21   22 | 23 |
+     |31   32 | 33 |
+     |41 -----+ 43 |
+     +-------------+
+     vline above hline at the bottom:
+     +------------------+
+     |11   12   13   14 |
+     |21   22 | 23   24 |
+     |31   32 | 33   34 |
+     |41 -----+----- 44 |
+     +------------------+
+     vline left above hline bottom right:
+     +--------+
+     |11   12 |
+     |21 | 22 |
+     |31 | 32 |
+     |41 +----+
+     +--------+
+     vline right above hline bottom right:
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     |41 -----+
+     +--------+
+     double vline left below hline top left:
+     +--------+
+     +---- 12 |
+     |21   22 |
+     |31   32 |
+     +--------+
+     double vline right below hline top left:
+     +--------+
+     +---+|12 |
+     |21 ||22 |
+     |31   32 |
+     +--------+
+     double vline left below hline at the top:
+     +-------------+
+     |11 ++---- 13 |
+     |21 ||22   23 |
+     |31   32   33 |
+     +-------------+
+     double vline right below hline at the top:
+     +-------------+
+     |11 -----+|13 |
+     |21   22 ||23 |
+     |31   32   33 |
+     +-------------+
+     double vline below hline at the top:
+     +------------------+
+     |11 -----++---- 14 |
+     |21   22 ||23   24 |
+     |31   32   33   34 |
+     +------------------+
+     double vline left below hline top right:
+     +--------+
+     |11 ++---+
+     |21 ||22 |
+     |31   32 |
+     +--------+
+     double vline right below hline top right:
+     +--------+
+     |11 -----+
+     |21   22 |
+     |31   32 |
+     +--------+
+     double vline left below hline in front:
+     +--------+
+     |11   12 |
+     +---- 22 |
+     |31   32 |
+     |41   42 |
+     +--------+
+     double vline left above hline in front:
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     +---- 42 |
+     |51   52 |
+     +--------+
+     double vline right below hline in front:
+     +--------+
+     |11   12 |
+     +---+|22 |
+     |31 ||32 |
+     |41   42 |
+     +--------+
+     double vline right above hline in front:
+     +--------+
+     |11   12 |
+     |21 ||22 |
+     |31 ||32 |
+     +---+|42 |
+     |51   52 |
+     +--------+
+     double vline left below hline in the middle:
+     +-------------+
+     |11   12   13 |
+     |21 ++---- 23 |
+     |31 ||32   33 |
+     |41   42   43 |
+     +-------------+
+     double vline left above hline in the middle:
+     +-------------+
+     |11   12   13 |
+     |21 ||22   23 |
+     |31 ||32   33 |
+     |41 ++---- 43 |
+     |51   52   53 |
+     +-------------+
+     double vline right below hline in the middle:
+     +-------------+
+     |11   12   13 |
+     |21 -----+|23 |
+     |31   32 ||33 |
+     |41   42   43 |
+     +-------------+
+     double vline right above hline in the middle:
+     +-------------+
+     |11   12   13 |
+     |21   22 ||23 |
+     |31   32 ||33 |
+     |41 -----+|43 |
+     |51   52   53 |
+     +-------------+
+     double vline below hline in the middle:
+     +------------------+
+     |11   12   13   14 |
+     |21 -----++---- 24 |
+     |31   32 ||33   34 |
+     |41   42   43   44 |
+     +------------------+
+     double vline above hline in the middle:
+     +------------------+
+     |11   12   13   14 |
+     |21   22 ||23   24 |
+     |31   32 ||33   34 |
+     |41 -----++---- 44 |
+     |51   52   53   54 |
+     +------------------+
+     double vline left below hline at the end:
+     +--------+
+     |11   12 |
+     |21 ++---+
+     |31 ||32 |
+     |41   42 |
+     +--------+
+     double vline left above hline at the end:
+     +--------+
+     |11   12 |
+     |21 ||22 |
+     |31 ||32 |
+     |41 ++---+
+     |51   52 |
+     +--------+
+     double vline right below hline at the end:
+     +--------+
+     |11   12 |
+     |21 -----+
+     |31   32 |
+     |41   42 |
+     +--------+
+     double vline right above hline at the end:
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     |41 -----+
+     |51   52 |
+     +--------+
+     double vline left above hline bottom left:
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     +---- 42 |
+     +--------+
+     double vline right above hline bottom left:
+     +--------+
+     |11   12 |
+     |21 ||22 |
+     |31 ||32 |
+     +---+|42 |
+     +--------+
+     double vline left above hline at the bottom:
+     +-------------+
+     |11   12   13 |
+     |21 ||22   23 |
+     |31 ||32   33 |
+     |41 ++---- 43 |
+     +-------------+
+     double vline right above hline at the bottom:
+     +-------------+
+     |11   12   13 |
+     |21   22 ||23 |
+     |31   32 ||33 |
+     |41 -----+|43 |
+     +-------------+
+     double vline above hline at the bottom:
+     +------------------+
+     |11   12   13   14 |
+     |21   22 ||23   24 |
+     |31   32 ||33   34 |
+     |41 -----++---- 44 |
+     +------------------+
+     double vline left above hline bottom right:
+     +--------+
+     |11   12 |
+     |21 ||22 |
+     |31 ||32 |
+     |41 ++---+
+     +--------+
+     double vline right above hline bottom right:
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     |41 -----+
+     +--------+
+
+A\bAL\bLL\bLB\bBO\bOX\bX
+     vline top left:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     hline and vline top left:
+     +---+----+
+     +---+ 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     vline and hline top left:
+     +---+----+
+     +---+ 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     vline top:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     vline and hline top:
+     +---+----+----+
+     |11 +----+ 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     hline and vline top:
+     +---+----+----+
+     |11 +----+ 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     hline, vline, hline top:
+     +---+----+----+----+
+     |11 +----+----+ 13 |
+     +---+----+----+----+
+     |21 | 22 | 23 | 24 |
+     +---+----+----+----+
+     vline top right:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     vline and hline top right:
+     +---+----+
+     |11 +----+
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     hline and vline top right:
+     +---+----+
+     |11 +----+
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     double vline top left:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     hline and double vline top left:
+     +---++---+
+     +---+|12 |
+     +---++---+
+     |21 | 22 |
+     +---+----+
+     double vline and hline top left:
+     +---+----+
+     +---+ 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     double vline top:
+     +---++---+
+     |11 ||12 |
+     +---++---+
+     |21 | 22 |
+     +---+----+
+     double vline and hline top:
+     +---++---+----+
+     |11 ++---+ 13 |
+     +---++---+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     hline and double vline top:
+     +---+----++---+
+     |11 +----+|13 |
+     +---+----++---+
+     |21 | 22 | 23 |
+     +---+----+----+
+     hline, double vline, hline top:
+     +---+----++---+----+
+     |11 +----++---+ 13 |
+     +---+----++---+----+
+     |21 | 22 | 23 | 24 |
+     +---+----+----+----+
+     double vline top right:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     double vline and hline top right:
+     +---++---+
+     |11 ++---+
+     +---++---+
+     |21 | 22 |
+     +---+----+
+     hline and double vline top right:
+     +---+----+
+     |11 +----+
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     hline top left:
+     +---+----+
+     +---+ 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     hline top:
+     +---+----+----+
+     |11 +----+ 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     double hline top:
+     +---+----+----+----+
+     |11 +----+----+ 13 |
+     +---+----+----+----+
+     |21 | 22 | 23 | 24 |
+     +---+----+----+----+
+     hline top right:
+     +---+----+
+     |11 +----+
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     hline in front:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     +---+ 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     vline in front:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     hline and vline in front:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +---+ 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     vline and hline in front:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +---+ 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     hline in the middle:
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 +----+ 23 |
+     +---+----+----+
+     |31 | 32 | 33 |
+     +---+----+----+
+     vline in the middle:
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     |31 | 32 | 33 |
+     +---+----+----+
+     |41 | 42 | 43 |
+     +---+----+----+
+     vline and hline in the middle:
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     |31 +----+ 33 |
+     +---+----+----+
+     |41 | 42 | 43 |
+     +---+----+----+
+     hline and vline in the middle:
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     |31 +----+ 33 |
+     +---+----+----+
+     |41 | 42 | 43 |
+     +---+----+----+
+     double hline in the middle:
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 +----+----+ 24 |
+     +---+----+----+----+
+     |31 | 32 | 33 | 34 |
+     +---+----+----+----+
+     hline, vline, hline in the middle:
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 | 22 | 23 | 24 |
+     +---+----+----+----+
+     |31 +----+----+ 34 |
+     +---+----+----+----+
+     |41 | 42 | 43 | 44 |
+     +---+----+----+----+
+     hline at the end:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 +----+
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     vline at the end:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     vline and hline at the end:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 +----+
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     hline and vline at the end:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 +----+
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     hline bottom left:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     +---+ 22 |
+     +---+----+
+     vline bottom left:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     hline and vline bottom left:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +---+ 32 |
+     +---+----+
+     vline and hline bottom left:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +---+ 32 |
+     +---+----+
+     double hline bottom:
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 +----+----+ 24 |
+     +---+----+----+----+
+     hline, vline, hline bottom:
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 | 22 | 23 | 24 |
+     +---+----+----+----+
+     |31 +----+----+ 34 |
+     +---+----+----+----+
+     hline bottom right:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 +----+
+     +---+----+
+     vline bottom right:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     vline and hline bottom right:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 +----+
+     +---+----+
+     hline and vline bottom right:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 +----+
+     +---+----+
+     double vline in front:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     hline and double vline in front:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---++---+
+     +---+|32 |
+     +---++---+
+     |41 | 42 |
+     +---+----+
+     double vline and hline in front:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +---+ 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     double vline in the middle:
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---++---+----+
+     |31 ||32 | 33 |
+     +---++---+----+
+     |41 | 42 | 43 |
+     +---+----+----+
+     double vline and hline in the middle:
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---++---+----+
+     |31 ++---+ 33 |
+     +---++---+----+
+     |41 | 42 | 43 |
+     +---+----+----+
+     hline and doble vline in the middle:
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----++---+
+     |31 +----+|33 |
+     +---+----++---+
+     |41 | 42 | 43 |
+     +---+----+----+
+     hline, double vline, hline in the middle:
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 | 22 | 23 | 24 |
+     +---+----++---+----+
+     |31 +----++---+ 34 |
+     +---+----++---+----+
+     |41 | 42 | 43 | 44 |
+     +---+----+----+----+
+     double vline at the end:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     double vline and hline at the end:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---++---+
+     |31 ++---+
+     +---++---+
+     |41 | 42 |
+     +---+----+
+     hline and double vline at the end:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 +----+
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     double vline bottom left:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     hline and double vline bottom left:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---++---+
+     +---+|32 |
+     +---++---+
+     double vline and hline bottom left:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +---+ 32 |
+     +---+----+
+     hline, double vline, hline bottom:
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 | 22 | 23 | 24 |
+     +---+----++---+----+
+     |31 +----++---+ 34 |
+     +---+----++---+----+
+     double vline bottom right:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     double vline and hline bottom right:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---++---+
+     |31 ++---+
+     +---++---+
+     hline and double vline bottom right:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 +----+
+     +---+----+
+     vline left below hline top left:
+     +---+----+
+     +---+ 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     vline right below hline top left:
+     +---+----+
+     +---+ 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     vline left below hline at the top:
+     +---+----+----+
+     |11 +----+ 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     |31 | 32 | 33 |
+     +---+----+----+
+     vline right below hline at the top:
+     +---+----+----+
+     |11 +----+ 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     |31 | 32 | 33 |
+     +---+----+----+
+     vline below hline at the top:
+     +---+----+----+----+
+     |11 +----+----+ 14 |
+     +---+----+----+----+
+     |21 | 22 | 23 | 24 |
+     +---+----+----+----+
+     |31 | 32 | 33 | 34 |
+     +---+----+----+----+
+     vline left below hline top right:
+     +---+----+
+     |11 +----+
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     vline right below hline top right:
+     +---+----+
+     |11 +----+
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     vline left below hline in front:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     +---+ 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     vline left above hline in front:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +---+ 42 |
+     +---+----+
+     |51 | 52 |
+     +---+----+
+     vline right below hline in front:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     +---+ 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     vline right above hline in front:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +---+ 42 |
+     +---+----+
+     |51 | 52 |
+     +---+----+
+     vline left below hline in the middle:
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 +----+ 23 |
+     +---+----+----+
+     |31 | 32 | 33 |
+     +---+----+----+
+     |41 | 42 | 43 |
+     +---+----+----+
+     vline left above hline in the middle:
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     |31 | 32 | 33 |
+     +---+----+----+
+     |41 +----+ 43 |
+     +---+----+----+
+     |51 | 52 | 53 |
+     +---+----+----+
+     vline right below hline in the middle:
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 +----+ 23 |
+     +---+----+----+
+     |31 | 32 | 33 |
+     +---+----+----+
+     |41 | 42 | 43 |
+     +---+----+----+
+     vline right above hline in the middle:
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     |31 | 32 | 33 |
+     +---+----+----+
+     |41 +----+ 43 |
+     +---+----+----+
+     |51 | 52 | 53 |
+     +---+----+----+
+     vline below hline in the middle:
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 +----+----+ 24 |
+     +---+----+----+----+
+     |31 | 32 | 33 | 34 |
+     +---+----+----+----+
+     |41 | 42 | 43 | 44 |
+     +---+----+----+----+
+     vline above hline in the middle:
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 | 22 | 23 | 24 |
+     +---+----+----+----+
+     |31 | 32 | 33 | 34 |
+     +---+----+----+----+
+     |41 +----+----+ 44 |
+     +---+----+----+----+
+     |51 | 52 | 53 | 54 |
+     +---+----+----+----+
+     vline left below hline at the end:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 +----+
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     vline left above hline at the end:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 +----+
+     +---+----+
+     |51 | 52 |
+     +---+----+
+     vline right below hline at the end:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 +----+
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     vline right above hline at the end:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 +----+
+     +---+----+
+     |51 | 52 |
+     +---+----+
+     vline left above hline bottom left:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +---+ 42 |
+     +---+----+
+     vline right above hline bottom left:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +---+ 42 |
+     +---+----+
+     vline left above hline at the bottom:
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     |31 | 32 | 33 |
+     +---+----+----+
+     |41 +----+ 43 |
+     +---+----+----+
+     vline right above hline at the bottom:
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     |31 | 32 | 33 |
+     +---+----+----+
+     |41 +----+ 43 |
+     +---+----+----+
+     vline above hline at the bottom:
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 | 22 | 23 | 24 |
+     +---+----+----+----+
+     |31 | 32 | 33 | 34 |
+     +---+----+----+----+
+     |41 +----+----+ 44 |
+     +---+----+----+----+
+     vline left above hline bottom right:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 +----+
+     +---+----+
+     vline right above hline bottom right:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 +----+
+     +---+----+
+     double vline left below hline top left:
+     +---+----+
+     +---+ 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     double vline right below hline top left:
+     +---+----+
+     +---+ 12 |
+     +---++---+
+     |21 ||22 |
+     +---++---+
+     |31 | 32 |
+     +---+----+
+     double vline left below hline at the top:
+     +---+----+----+
+     |11 +----+ 13 |
+     +---++---+----+
+     |21 ||22 | 23 |
+     +---++---+----+
+     |31 | 32 | 33 |
+     +---+----+----+
+     double vline right below hline at the top:
+     +---+----+----+
+     |11 +----+ 13 |
+     +---+----++---+
+     |21 | 22 ||23 |
+     +---+----++---+
+     |31 | 32 | 33 |
+     +---+----+----+
+     double vline below hline at the top:
+     +---+----+----+----+
+     |11 +----+----+ 14 |
+     +---+----++---+----+
+     |21 | 22 ||23 | 24 |
+     +---+----++---+----+
+     |31 | 32 | 33 | 34 |
+     +---+----+----+----+
+     double vline left below hline top right:
+     +---+----+
+     |11 +----+
+     +---++---+
+     |21 ||22 |
+     +---++---+
+     |31 | 32 |
+     +---+----+
+     double vline right below hline top right:
+     +---+----+
+     |11 +----+
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     double vline left below hline in front:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     +---+ 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     double vline left above hline in front:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +---+ 42 |
+     +---+----+
+     |51 | 52 |
+     +---+----+
+     double vline right below hline in front:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     +---+ 22 |
+     +---++---+
+     |31 ||32 |
+     +---++---+
+     |41 | 42 |
+     +---+----+
+     double vline right above hline in front:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---++---+
+     |31 ||32 |
+     +---++---+
+     +---+|42 |
+     +---+----+
+     |51 | 52 |
+     +---+----+
+     double vline left below hline in the middle:
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 +----+ 23 |
+     +---++---+----+
+     |31 ||32 | 33 |
+     +---++---+----+
+     |41 | 42 | 43 |
+     +---+----+----+
+     double vline left above hline in the middle:
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---++---+----+
+     |31 ||32 | 33 |
+     +---++---+----+
+     |41 ++---+ 43 |
+     +---+----+----+
+     |51 | 52 | 53 |
+     +---+----+----+
+     double vline right below hline in the middle:
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 +----+ 23 |
+     +---+----++---+
+     |31 | 32 ||33 |
+     +---+----++---+
+     |41 | 42 | 43 |
+     +---+----+----+
+     double vline right above hline in the middle:
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----++---+
+     |31 | 32 ||33 |
+     +---+----++---+
+     |41 +----+|43 |
+     +---+----+----+
+     |51 | 52 | 53 |
+     +---+----+----+
+     double vline below hline in the middle:
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 +----+----+ 24 |
+     +---+----++---+----+
+     |31 | 32 ||33 | 34 |
+     +---+----++---+----+
+     |41 | 42 | 43 | 44 |
+     +---+----+----+----+
+     double vline above hline in the middle:
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 | 22 | 23 | 24 |
+     +---+----++---+----+
+     |31 | 32 ||33 | 34 |
+     +---+----++---+----+
+     |41 +----++---+ 44 |
+     +---+----+----+----+
+     |51 | 52 | 53 | 54 |
+     +---+----+----+----+
+     double vline left below hline at the end:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 +----+
+     +---++---+
+     |31 ||32 |
+     +---++---+
+     |41 | 42 |
+     +---+----+
+     double vline left above hline at the end:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---++---+
+     |31 ||32 |
+     +---++---+
+     |41 ++---+
+     +---+----+
+     |51 | 52 |
+     +---+----+
+     double vline right below hline at the end:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 +----+
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     double vline right above hline at the end:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 +----+
+     +---+----+
+     |51 | 52 |
+     +---+----+
+     double vline left above hline bottom left:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +---+ 42 |
+     +---+----+
+     double vline right above hline bottom left:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---++---+
+     |31 ||32 |
+     +---++---+
+     +---+|42 |
+     +---+----+
+     double vline left above hline at the bottom:
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---++---+----+
+     |31 ||32 | 33 |
+     +---++---+----+
+     |41 ++---+ 43 |
+     +---+----+----+
+     double vline right above hline at the bottom:
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----++---+
+     |31 | 32 ||33 |
+     +---+----++---+
+     |41 +----+|43 |
+     +---+----+----+
+     double vline above hline at the bottom:
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 | 22 | 23 | 24 |
+     +---+----++---+----+
+     |31 | 32 ||33 | 34 |
+     +---+----++---+----+
+     |41 +----++---+ 44 |
+     +---+----+----+----+
+     double vline left above hline bottom right:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---++---+
+     |31 ||32 |
+     +---++---+
+     |41 ++---+
+     +---+----+
+     double vline right above hline bottom right:
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 +----+
+     +---+----+
+
+D\bDO\bOU\bUB\bBL\bLE\bEB\bBO\bOX\bX
+     vline top left:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     +--------+
+     +--------+
+     hline and vline top left:
+     +--------+
+     +---+----+
+     +---+ 12 |
+     |21   22 |
+     +--------+
+     +--------+
+     vline and hline top left:
+     +--------+
+     +--------+
+     +---- 12 |
+     |21   22 |
+     +--------+
+     +--------+
+     vline top:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     |21   22 |
+     +--------+
+     +--------+
+     vline and hline top:
+     +-------------+
+     +---+---------+
+     |11 +----- 13 |
+     |21   22   23 |
+     +-------------+
+     +-------------+
+     hline and vline top:
+     +-------------+
+     +--------+----+
+     |11 -----+ 13 |
+     |21   22   23 |
+     +-------------+
+     +-------------+
+     hline, vline, hline top:
+     +------------------+
+     +--------+---------+
+     |11 -----+----- 13 |
+     |21   22   23   24 |
+     +------------------+
+     +------------------+
+     vline top right:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     +--------+
+     +--------+
+     vline and hline top right:
+     +--------+
+     +---+----+
+     |11 +----+
+     |21   22 |
+     +--------+
+     +--------+
+     hline and vline top right:
+     +--------+
+     +--------+
+     |11 -----+
+     |21   22 |
+     +--------+
+     +--------+
+     double vline top left:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     +--------+
+     +--------+
+     hline and double vline top left:
+     +--------+
+     +---++---+
+     +---+|12 |
+     |21   22 |
+     +--------+
+     +--------+
+     double vline and hline top left:
+     +--------+
+     +--------+
+     +---- 12 |
+     |21   22 |
+     +--------+
+     +--------+
+     double vline top:
+     +--------+
+     +---++---+
+     |11 ||12 |
+     |21   22 |
+     +--------+
+     +--------+
+     double vline and hline top:
+     +-------------+
+     +---++--------+
+     |11 ++---- 13 |
+     |21   22   23 |
+     +-------------+
+     +-------------+
+     hline and double vline top:
+     +-------------+
+     +--------++---+
+     |11 -----+|13 |
+     |21   22   23 |
+     +-------------+
+     +-------------+
+     hline, double vline, hline top:
+     +------------------+
+     +--------++--------+
+     |11 -----++---- 13 |
+     |21   22   23   24 |
+     +------------------+
+     +------------------+
+     double vline top right:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     +--------+
+     +--------+
+     double vline and hline top right:
+     +--------+
+     +---++---+
+     |11 ++---+
+     |21   22 |
+     +--------+
+     +--------+
+     hline and double vline top right:
+     +--------+
+     +--------+
+     |11 -----+
+     |21   22 |
+     +--------+
+     +--------+
+     hline top left:
+     +--------+
+     +--------+
+     +---- 12 |
+     |21   22 |
+     +--------+
+     +--------+
+     hline top:
+     +-------------+
+     +-------------+
+     |11 ------ 13 |
+     |21   22   23 |
+     +-------------+
+     +-------------+
+     double hline top:
+     +------------------+
+     +------------------+
+     |11 ----------- 13 |
+     |21   22   23   24 |
+     +------------------+
+     +------------------+
+     hline top right:
+     +--------+
+     +--------+
+     |11 -----+
+     |21   22 |
+     +--------+
+     +--------+
+     hline in front:
+     +--------+
+     +--------+
+     |11   12 |
+     +---- 22 |
+     |31   32 |
+     +--------+
+     +--------+
+     vline in front:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     |41   42 |
+     +--------+
+     +--------+
+     hline and vline in front:
+     +--------+
+     +--------+
+     |11   12 |
+     |21 | 22 |
+     +---+ 32 |
+     |41   42 |
+     +--------+
+     +--------+
+     vline and hline in front:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     +---- 32 |
+     |41   42 |
+     +--------+
+     +--------+
+     hline in the middle:
+     +-------------+
+     +-------------+
+     |11   12   13 |
+     |21 ------ 23 |
+     |31   32   33 |
+     +-------------+
+     +-------------+
+     vline in the middle:
+     +-------------+
+     +-------------+
+     |11   12   13 |
+     |21 | 22   23 |
+     |31 | 32   33 |
+     |41   42   43 |
+     +-------------+
+     +-------------+
+     vline and hline in the middle:
+     +-------------+
+     +-------------+
+     |11   12   13 |
+     |21 | 22   23 |
+     |31 +----- 33 |
+     |41   42   43 |
+     +-------------+
+     +-------------+
+     hline and vline in the middle:
+     +-------------+
+     +-------------+
+     |11   12   13 |
+     |21   22 | 23 |
+     |31 -----+ 33 |
+     |41   42   43 |
+     +-------------+
+     +-------------+
+     double hline in the middle:
+     +------------------+
+     +------------------+
+     |11   12   13   14 |
+     |21 ----------- 24 |
+     |31   32   33   34 |
+     +------------------+
+     +------------------+
+     hline, vline, hline in the middle:
+     +------------------+
+     +------------------+
+     |11   12   13   14 |
+     |21   22 | 23   24 |
+     |31 -----+----- 34 |
+     |41   42   43   44 |
+     +------------------+
+     +------------------+
+     hline at the end:
+     +--------+
+     +--------+
+     |11   12 |
+     |21 -----+
+     |31   32 |
+     +--------+
+     +--------+
+     vline at the end:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     |41   42 |
+     +--------+
+     +--------+
+     vline and hline at the end:
+     +--------+
+     +--------+
+     |11   12 |
+     |21 | 22 |
+     |31 +----+
+     |41   42 |
+     +--------+
+     +--------+
+     hline and vline at the end:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31 -----+
+     |41   42 |
+     +--------+
+     +--------+
+     hline bottom left:
+     +--------+
+     +--------+
+     |11   12 |
+     +---- 22 |
+     +--------+
+     +--------+
+     vline bottom left:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     +--------+
+     +--------+
+     hline and vline bottom left:
+     +--------+
+     +--------+
+     |11   12 |
+     |21 | 22 |
+     +---+ 32 |
+     +---+----+
+     +--------+
+     vline and hline bottom left:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     +---- 32 |
+     +--------+
+     +--------+
+     double hline bottom:
+     +------------------+
+     +------------------+
+     |11   12   13   14 |
+     |21 ----------- 24 |
+     +------------------+
+     +------------------+
+     hline, vline, hline bottom:
+     +------------------+
+     +------------------+
+     |11   12   13   14 |
+     |21   22 | 23   24 |
+     |31 -----+----- 34 |
+     +--------+---------+
+     +------------------+
+     hline bottom right:
+     +--------+
+     +--------+
+     |11   12 |
+     |21 -----+
+     +--------+
+     +--------+
+     vline bottom right:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     +--------+
+     +--------+
+     vline and hline bottom right:
+     +--------+
+     +--------+
+     |11   12 |
+     |21 | 22 |
+     |31 +----+
+     +---+----+
+     +--------+
+     hline and vline bottom right:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31 -----+
+     +--------+
+     +--------+
+     double vline in front:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     |41   42 |
+     +--------+
+     +--------+
+     hline and double vline in front:
+     +--------+
+     +--------+
+     |11   12 |
+     |21 ||22 |
+     +---+|32 |
+     |41   42 |
+     +--------+
+     +--------+
+     double vline and hline in front:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     +---- 32 |
+     |41   42 |
+     +--------+
+     +--------+
+     double vline in the middle:
+     +-------------+
+     +-------------+
+     |11   12   13 |
+     |21 ||22   23 |
+     |31 ||32   33 |
+     |41   42   43 |
+     +-------------+
+     +-------------+
+     double vline and hline in the middle:
+     +-------------+
+     +-------------+
+     |11   12   13 |
+     |21 ||22   23 |
+     |31 ++---- 33 |
+     |41   42   43 |
+     +-------------+
+     +-------------+
+     hline and doble vline in the middle:
+     +-------------+
+     +-------------+
+     |11   12   13 |
+     |21   22 ||23 |
+     |31 -----+|33 |
+     |41   42   43 |
+     +-------------+
+     +-------------+
+     hline, double vline, hline in the middle:
+     +------------------+
+     +------------------+
+     |11   12   13   14 |
+     |21   22 ||23   24 |
+     |31 -----++---- 34 |
+     |41   42   43   44 |
+     +------------------+
+     +------------------+
+     double vline at the end:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     |41   42 |
+     +--------+
+     +--------+
+     double vline and hline at the end:
+     +--------+
+     +--------+
+     |11   12 |
+     |21 ||22 |
+     |31 ++---+
+     |41   42 |
+     +--------+
+     +--------+
+     hline and double vline at the end:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31 -----+
+     |41   42 |
+     +--------+
+     +--------+
+     double vline bottom left:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     +--------+
+     +--------+
+     hline and double vline bottom left:
+     +--------+
+     +--------+
+     |11   12 |
+     |21 ||22 |
+     +---+|32 |
+     +---++---+
+     +--------+
+     double vline and hline bottom left:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     +---- 32 |
+     +--------+
+     +--------+
+     hline, double vline, hline bottom:
+     +------------------+
+     +------------------+
+     |11   12   13   14 |
+     |21   22 ||23   24 |
+     |31 -----++---- 34 |
+     +--------++--------+
+     +------------------+
+     double vline bottom right:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     +--------+
+     +--------+
+     double vline and hline bottom right:
+     +--------+
+     +--------+
+     |11   12 |
+     |21 ||22 |
+     |31 ++---+
+     +---++---+
+     +--------+
+     hline and double vline bottom right:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31 -----+
+     +--------+
+     +--------+
+     vline left below hline top left:
+     +--------+
+     +--------+
+     +---- 12 |
+     |21   22 |
+     |31   32 |
+     +--------+
+     +--------+
+     vline right below hline top left:
+     +--------+
+     +--------+
+     +---+ 12 |
+     |21 | 22 |
+     |31   32 |
+     +--------+
+     +--------+
+     vline left below hline at the top:
+     +-------------+
+     +-------------+
+     |11 +----- 13 |
+     |21 | 22   23 |
+     |31   32   33 |
+     +-------------+
+     +-------------+
+     vline right below hline at the top:
+     +-------------+
+     +-------------+
+     |11 -----+ 13 |
+     |21   22 | 23 |
+     |31   32   33 |
+     +-------------+
+     +-------------+
+     vline below hline at the top:
+     +------------------+
+     +------------------+
+     |11 -----+----- 14 |
+     |21   22 | 23   24 |
+     |31   32   33   34 |
+     +------------------+
+     +------------------+
+     vline left below hline top right:
+     +--------+
+     +--------+
+     |11 +----+
+     |21 | 22 |
+     |31   32 |
+     +--------+
+     +--------+
+     vline right below hline top right:
+     +--------+
+     +--------+
+     |11 -----+
+     |21   22 |
+     |31   32 |
+     +--------+
+     +--------+
+     vline left below hline in front:
+     +--------+
+     +--------+
+     |11   12 |
+     +---- 22 |
+     |31   32 |
+     |41   42 |
+     +--------+
+     +--------+
+     vline left above hline in front:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     +---- 42 |
+     |51   52 |
+     +--------+
+     +--------+
+     vline right below hline in front:
+     +--------+
+     +--------+
+     |11   12 |
+     +---+ 22 |
+     |31 | 32 |
+     |41   42 |
+     +--------+
+     +--------+
+     vline right above hline in front:
+     +--------+
+     +--------+
+     |11   12 |
+     |21 | 22 |
+     |31 | 32 |
+     +---+ 42 |
+     |51   52 |
+     +--------+
+     +--------+
+     vline left below hline in the middle:
+     +-------------+
+     +-------------+
+     |11   12   13 |
+     |21 +----- 23 |
+     |31 | 32   33 |
+     |41   42   43 |
+     +-------------+
+     +-------------+
+     vline left above hline in the middle:
+     +-------------+
+     +-------------+
+     |11   12   13 |
+     |21 | 22   23 |
+     |31 | 32   33 |
+     |41 +----- 43 |
+     |51   52   53 |
+     +-------------+
+     +-------------+
+     vline right below hline in the middle:
+     +-------------+
+     +-------------+
+     |11   12   13 |
+     |21 -----+ 23 |
+     |31   32 | 33 |
+     |41   42   43 |
+     +-------------+
+     +-------------+
+     vline right above hline in the middle:
+     +-------------+
+     +-------------+
+     |11   12   13 |
+     |21   22 | 23 |
+     |31   32 | 33 |
+     |41 -----+ 43 |
+     |51   52   53 |
+     +-------------+
+     +-------------+
+     vline below hline in the middle:
+     +------------------+
+     +------------------+
+     |11   12   13   14 |
+     |21 -----+----- 24 |
+     |31   32 | 33   34 |
+     |41   42   43   44 |
+     +------------------+
+     +------------------+
+     vline above hline in the middle:
+     +------------------+
+     +------------------+
+     |11   12   13   14 |
+     |21   22 | 23   24 |
+     |31   32 | 33   34 |
+     |41 -----+----- 44 |
+     |51   52   53   54 |
+     +------------------+
+     +------------------+
+     vline left below hline at the end:
+     +--------+
+     +--------+
+     |11   12 |
+     |21 +----+
+     |31 | 32 |
+     |41   42 |
+     +--------+
+     +--------+
+     vline left above hline at the end:
+     +--------+
+     +--------+
+     |11   12 |
+     |21 | 22 |
+     |31 | 32 |
+     |41 +----+
+     |51   52 |
+     +--------+
+     +--------+
+     vline right below hline at the end:
+     +--------+
+     +--------+
+     |11   12 |
+     |21 -----+
+     |31   32 |
+     |41   42 |
+     +--------+
+     +--------+
+     vline right above hline at the end:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     |41 -----+
+     |51   52 |
+     +--------+
+     +--------+
+     vline left above hline bottom left:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     +---- 42 |
+     +--------+
+     +--------+
+     vline right above hline bottom left:
+     +--------+
+     +--------+
+     |11   12 |
+     |21 | 22 |
+     |31 | 32 |
+     +---+ 42 |
+     +--------+
+     +--------+
+     vline left above hline at the bottom:
+     +-------------+
+     +-------------+
+     |11   12   13 |
+     |21 | 22   23 |
+     |31 | 32   33 |
+     |41 +----- 43 |
+     +-------------+
+     +-------------+
+     vline right above hline at the bottom:
+     +-------------+
+     +-------------+
+     |11   12   13 |
+     |21   22 | 23 |
+     |31   32 | 33 |
+     |41 -----+ 43 |
+     +-------------+
+     +-------------+
+     vline above hline at the bottom:
+     +------------------+
+     +------------------+
+     |11   12   13   14 |
+     |21   22 | 23   24 |
+     |31   32 | 33   34 |
+     |41 -----+----- 44 |
+     +------------------+
+     +------------------+
+     vline left above hline bottom right:
+     +--------+
+     +--------+
+     |11   12 |
+     |21 | 22 |
+     |31 | 32 |
+     |41 +----+
+     +--------+
+     +--------+
+     vline right above hline bottom right:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     |41 -----+
+     +--------+
+     +--------+
+     double vline left below hline top left:
+     +--------+
+     +--------+
+     +---- 12 |
+     |21   22 |
+     |31   32 |
+     +--------+
+     +--------+
+     double vline right below hline top left:
+     +--------+
+     +--------+
+     +---+|12 |
+     |21 ||22 |
+     |31   32 |
+     +--------+
+     +--------+
+     double vline left below hline at the top:
+     +-------------+
+     +-------------+
+     |11 ++---- 13 |
+     |21 ||22   23 |
+     |31   32   33 |
+     +-------------+
+     +-------------+
+     double vline right below hline at the top:
+     +-------------+
+     +-------------+
+     |11 -----+|13 |
+     |21   22 ||23 |
+     |31   32   33 |
+     +-------------+
+     +-------------+
+     double vline below hline at the top:
+     +------------------+
+     +------------------+
+     |11 -----++---- 14 |
+     |21   22 ||23   24 |
+     |31   32   33   34 |
+     +------------------+
+     +------------------+
+     double vline left below hline top right:
+     +--------+
+     +--------+
+     |11 ++---+
+     |21 ||22 |
+     |31   32 |
+     +--------+
+     +--------+
+     double vline right below hline top right:
+     +--------+
+     +--------+
+     |11 -----+
+     |21   22 |
+     |31   32 |
+     +--------+
+     +--------+
+     double vline left below hline in front:
+     +--------+
+     +--------+
+     |11   12 |
+     +---- 22 |
+     |31   32 |
+     |41   42 |
+     +--------+
+     +--------+
+     double vline left above hline in front:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     +---- 42 |
+     |51   52 |
+     +--------+
+     +--------+
+     double vline right below hline in front:
+     +--------+
+     +--------+
+     |11   12 |
+     +---+|22 |
+     |31 ||32 |
+     |41   42 |
+     +--------+
+     +--------+
+     double vline right above hline in front:
+     +--------+
+     +--------+
+     |11   12 |
+     |21 ||22 |
+     |31 ||32 |
+     +---+|42 |
+     |51   52 |
+     +--------+
+     +--------+
+     double vline left below hline in the middle:
+     +-------------+
+     +-------------+
+     |11   12   13 |
+     |21 ++---- 23 |
+     |31 ||32   33 |
+     |41   42   43 |
+     +-------------+
+     +-------------+
+     double vline left above hline in the middle:
+     +-------------+
+     +-------------+
+     |11   12   13 |
+     |21 ||22   23 |
+     |31 ||32   33 |
+     |41 ++---- 43 |
+     |51   52   53 |
+     +-------------+
+     +-------------+
+     double vline right below hline in the middle:
+     +-------------+
+     +-------------+
+     |11   12   13 |
+     |21 -----+|23 |
+     |31   32 ||33 |
+     |41   42   43 |
+     +-------------+
+     +-------------+
+     double vline right above hline in the middle:
+     +-------------+
+     +-------------+
+     |11   12   13 |
+     |21   22 ||23 |
+     |31   32 ||33 |
+     |41 -----+|43 |
+     |51   52   53 |
+     +-------------+
+     +-------------+
+     double vline below hline in the middle:
+     +------------------+
+     +------------------+
+     |11   12   13   14 |
+     |21 -----++---- 24 |
+     |31   32 ||33   34 |
+     |41   42   43   44 |
+     +------------------+
+     +------------------+
+     double vline above hline in the middle:
+     +------------------+
+     +------------------+
+     |11   12   13   14 |
+     |21   22 ||23   24 |
+     |31   32 ||33   34 |
+     |41 -----++---- 44 |
+     |51   52   53   54 |
+     +------------------+
+     +------------------+
+     double vline left below hline at the end:
+     +--------+
+     +--------+
+     |11   12 |
+     |21 ++---+
+     |31 ||32 |
+     |41   42 |
+     +--------+
+     +--------+
+     double vline left above hline at the end:
+     +--------+
+     +--------+
+     |11   12 |
+     |21 ||22 |
+     |31 ||32 |
+     |41 ++---+
+     |51   52 |
+     +--------+
+     +--------+
+     double vline right below hline at the end:
+     +--------+
+     +--------+
+     |11   12 |
+     |21 -----+
+     |31   32 |
+     |41   42 |
+     +--------+
+     +--------+
+     double vline right above hline at the end:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     |41 -----+
+     |51   52 |
+     +--------+
+     +--------+
+     double vline left above hline bottom left:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     +---- 42 |
+     +--------+
+     +--------+
+     double vline right above hline bottom left:
+     +--------+
+     +--------+
+     |11   12 |
+     |21 ||22 |
+     |31 ||32 |
+     +---+|42 |
+     +--------+
+     +--------+
+     double vline left above hline at the bottom:
+     +-------------+
+     +-------------+
+     |11   12   13 |
+     |21 ||22   23 |
+     |31 ||32   33 |
+     |41 ++---- 43 |
+     +-------------+
+     +-------------+
+     double vline right above hline at the bottom:
+     +-------------+
+     +-------------+
+     |11   12   13 |
+     |21   22 ||23 |
+     |31   32 ||33 |
+     |41 -----+|43 |
+     +-------------+
+     +-------------+
+     double vline above hline at the bottom:
+     +------------------+
+     +------------------+
+     |11   12   13   14 |
+     |21   22 ||23   24 |
+     |31   32 ||33   34 |
+     |41 -----++---- 44 |
+     +------------------+
+     +------------------+
+     double vline left above hline bottom right:
+     +--------+
+     +--------+
+     |11   12 |
+     |21 ||22 |
+     |31 ||32 |
+     |41 ++---+
+     +--------+
+     +--------+
+     double vline right above hline bottom right:
+     +--------+
+     +--------+
+     |11   12 |
+     |21   22 |
+     |31   32 |
+     |41 -----+
+     +--------+
+     +--------+
+
+D\bDO\bOU\bUB\bBL\bLE\bEB\bBO\bOX\bX A\bAL\bLL\bLB\bBO\bOX\bX
+     vline top left:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +--------+
+     hline and vline top left:
+     +--------+
+     +---+----+
+     +---+ 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +--------+
+     vline and hline top left:
+     +--------+
+     +---+----+
+     +---+ 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +--------+
+     vline top:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +--------+
+     vline and hline top:
+     +-------------+
+     +---+----+----+
+     |11 +----+ 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     +-------------+
+     hline and vline top:
+     +-------------+
+     +---+----+----+
+     |11 +----+ 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     +-------------+
+     hline, vline, hline top:
+     +------------------+
+     +---+----+----+----+
+     |11 +----+----+ 13 |
+     +---+----+----+----+
+     |21 | 22 | 23 | 24 |
+     +---+----+----+----+
+     +------------------+
+     vline top right:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +--------+
+     vline and hline top right:
+     +--------+
+     +---+----+
+     |11 +----+
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +--------+
+     hline and vline top right:
+     +--------+
+     +---+----+
+     |11 +----+
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +--------+
+     double vline top left:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +--------+
+     hline and double vline top left:
+     +--------+
+     +---++---+
+     +---+|12 |
+     +---++---+
+     |21 | 22 |
+     +---+----+
+     +--------+
+     double vline and hline top left:
+     +--------+
+     +---+----+
+     +---+ 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +--------+
+     double vline top:
+     +--------+
+     +---++---+
+     |11 ||12 |
+     +---++---+
+     |21 | 22 |
+     +---+----+
+     +--------+
+     double vline and hline top:
+     +-------------+
+     +---++---+----+
+     |11 ++---+ 13 |
+     +---++---+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     +-------------+
+     hline and double vline top:
+     +-------------+
+     +---+----++---+
+     |11 +----+|13 |
+     +---+----++---+
+     |21 | 22 | 23 |
+     +---+----+----+
+     +-------------+
+     hline, double vline, hline top:
+     +------------------+
+     +---+----++---+----+
+     |11 +----++---+ 13 |
+     +---+----++---+----+
+     |21 | 22 | 23 | 24 |
+     +---+----+----+----+
+     +------------------+
+     double vline top right:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +--------+
+     double vline and hline top right:
+     +--------+
+     +---++---+
+     |11 ++---+
+     +---++---+
+     |21 | 22 |
+     +---+----+
+     +--------+
+     hline and double vline top right:
+     +--------+
+     +---+----+
+     |11 +----+
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +--------+
+     hline top left:
+     +--------+
+     +---+----+
+     +---+ 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +--------+
+     hline top:
+     +-------------+
+     +---+----+----+
+     |11 +----+ 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     +-------------+
+     double hline top:
+     +------------------+
+     +---+----+----+----+
+     |11 +----+----+ 13 |
+     +---+----+----+----+
+     |21 | 22 | 23 | 24 |
+     +---+----+----+----+
+     +------------------+
+     hline top right:
+     +--------+
+     +---+----+
+     |11 +----+
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +--------+
+     hline in front:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     +---+ 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +--------+
+     vline in front:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     +--------+
+     hline and vline in front:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +---+ 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     +--------+
+     vline and hline in front:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +---+ 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     +--------+
+     hline in the middle:
+     +-------------+
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 +----+ 23 |
+     +---+----+----+
+     |31 | 32 | 33 |
+     +---+----+----+
+     +-------------+
+     vline in the middle:
+     +-------------+
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     |31 | 32 | 33 |
+     +---+----+----+
+     |41 | 42 | 43 |
+     +---+----+----+
+     +-------------+
+     vline and hline in the middle:
+     +-------------+
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     |31 +----+ 33 |
+     +---+----+----+
+     |41 | 42 | 43 |
+     +---+----+----+
+     +-------------+
+     hline and vline in the middle:
+     +-------------+
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     |31 +----+ 33 |
+     +---+----+----+
+     |41 | 42 | 43 |
+     +---+----+----+
+     +-------------+
+     double hline in the middle:
+     +------------------+
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 +----+----+ 24 |
+     +---+----+----+----+
+     |31 | 32 | 33 | 34 |
+     +---+----+----+----+
+     +------------------+
+     hline, vline, hline in the middle:
+     +------------------+
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 | 22 | 23 | 24 |
+     +---+----+----+----+
+     |31 +----+----+ 34 |
+     +---+----+----+----+
+     |41 | 42 | 43 | 44 |
+     +---+----+----+----+
+     +------------------+
+     hline at the end:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 +----+
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +--------+
+     vline at the end:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     +--------+
+     vline and hline at the end:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 +----+
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     +--------+
+     hline and vline at the end:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 +----+
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     +--------+
+     hline bottom left:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     +---+ 22 |
+     +---+----+
+     +--------+
+     vline bottom left:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +--------+
+     hline and vline bottom left:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +---+ 32 |
+     +---+----+
+     +--------+
+     vline and hline bottom left:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +---+ 32 |
+     +---+----+
+     +--------+
+     double hline bottom:
+     +------------------+
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 +----+----+ 24 |
+     +---+----+----+----+
+     +------------------+
+     hline, vline, hline bottom:
+     +------------------+
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 | 22 | 23 | 24 |
+     +---+----+----+----+
+     |31 +----+----+ 34 |
+     +---+----+----+----+
+     +------------------+
+     hline bottom right:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 +----+
+     +---+----+
+     +--------+
+     vline bottom right:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +--------+
+     vline and hline bottom right:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 +----+
+     +---+----+
+     +--------+
+     hline and vline bottom right:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 +----+
+     +---+----+
+     +--------+
+     double vline in front:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     +--------+
+     hline and double vline in front:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---++---+
+     +---+|32 |
+     +---++---+
+     |41 | 42 |
+     +---+----+
+     +--------+
+     double vline and hline in front:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +---+ 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     +--------+
+     double vline in the middle:
+     +-------------+
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---++---+----+
+     |31 ||32 | 33 |
+     +---++---+----+
+     |41 | 42 | 43 |
+     +---+----+----+
+     +-------------+
+     double vline and hline in the middle:
+     +-------------+
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---++---+----+
+     |31 ++---+ 33 |
+     +---++---+----+
+     |41 | 42 | 43 |
+     +---+----+----+
+     +-------------+
+     hline and doble vline in the middle:
+     +-------------+
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----++---+
+     |31 +----+|33 |
+     +---+----++---+
+     |41 | 42 | 43 |
+     +---+----+----+
+     +-------------+
+     hline, double vline, hline in the middle:
+     +------------------+
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 | 22 | 23 | 24 |
+     +---+----++---+----+
+     |31 +----++---+ 34 |
+     +---+----++---+----+
+     |41 | 42 | 43 | 44 |
+     +---+----+----+----+
+     +------------------+
+     double vline at the end:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     +--------+
+     double vline and hline at the end:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---++---+
+     |31 ++---+
+     +---++---+
+     |41 | 42 |
+     +---+----+
+     +--------+
+     hline and double vline at the end:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 +----+
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     +--------+
+     double vline bottom left:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +--------+
+     hline and double vline bottom left:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---++---+
+     +---+|32 |
+     +---++---+
+     +--------+
+     double vline and hline bottom left:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     +---+ 32 |
+     +---+----+
+     +--------+
+     hline, double vline, hline bottom:
+     +------------------+
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 | 22 | 23 | 24 |
+     +---+----++---+----+
+     |31 +----++---+ 34 |
+     +---+----++---+----+
+     +------------------+
+     double vline bottom right:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +--------+
+     double vline and hline bottom right:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---++---+
+     |31 ++---+
+     +---++---+
+     +--------+
+     hline and double vline bottom right:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 +----+
+     +---+----+
+     +--------+
+     vline left below hline top left:
+     +--------+
+     +---+----+
+     +---+ 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +--------+
+     vline right below hline top left:
+     +--------+
+     +---+----+
+     +---+ 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +--------+
+     vline left below hline at the top:
+     +-------------+
+     +---+----+----+
+     |11 +----+ 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     |31 | 32 | 33 |
+     +---+----+----+
+     +-------------+
+     vline right below hline at the top:
+     +-------------+
+     +---+----+----+
+     |11 +----+ 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     |31 | 32 | 33 |
+     +---+----+----+
+     +-------------+
+     vline below hline at the top:
+     +------------------+
+     +---+----+----+----+
+     |11 +----+----+ 14 |
+     +---+----+----+----+
+     |21 | 22 | 23 | 24 |
+     +---+----+----+----+
+     |31 | 32 | 33 | 34 |
+     +---+----+----+----+
+     +------------------+
+     vline left below hline top right:
+     +--------+
+     +---+----+
+     |11 +----+
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +--------+
+     vline right below hline top right:
+     +--------+
+     +---+----+
+     |11 +----+
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +--------+
+     vline left below hline in front:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     +---+ 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     +--------+
+     vline left above hline in front:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +---+ 42 |
+     +---+----+
+     |51 | 52 |
+     +---+----+
+     +--------+
+     vline right below hline in front:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     +---+ 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     +--------+
+     vline right above hline in front:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +---+ 42 |
+     +---+----+
+     |51 | 52 |
+     +---+----+
+     +--------+
+     vline left below hline in the middle:
+     +-------------+
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 +----+ 23 |
+     +---+----+----+
+     |31 | 32 | 33 |
+     +---+----+----+
+     |41 | 42 | 43 |
+     +---+----+----+
+     +-------------+
+     vline left above hline in the middle:
+     +-------------+
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     |31 | 32 | 33 |
+     +---+----+----+
+     |41 +----+ 43 |
+     +---+----+----+
+     |51 | 52 | 53 |
+     +---+----+----+
+     +-------------+
+     vline right below hline in the middle:
+     +-------------+
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 +----+ 23 |
+     +---+----+----+
+     |31 | 32 | 33 |
+     +---+----+----+
+     |41 | 42 | 43 |
+     +---+----+----+
+     +-------------+
+     vline right above hline in the middle:
+     +-------------+
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     |31 | 32 | 33 |
+     +---+----+----+
+     |41 +----+ 43 |
+     +---+----+----+
+     |51 | 52 | 53 |
+     +---+----+----+
+     +-------------+
+     vline below hline in the middle:
+     +------------------+
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 +----+----+ 24 |
+     +---+----+----+----+
+     |31 | 32 | 33 | 34 |
+     +---+----+----+----+
+     |41 | 42 | 43 | 44 |
+     +---+----+----+----+
+     +------------------+
+     vline above hline in the middle:
+     +------------------+
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 | 22 | 23 | 24 |
+     +---+----+----+----+
+     |31 | 32 | 33 | 34 |
+     +---+----+----+----+
+     |41 +----+----+ 44 |
+     +---+----+----+----+
+     |51 | 52 | 53 | 54 |
+     +---+----+----+----+
+     +------------------+
+     vline left below hline at the end:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 +----+
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     +--------+
+     vline left above hline at the end:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 +----+
+     +---+----+
+     |51 | 52 |
+     +---+----+
+     +--------+
+     vline right below hline at the end:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 +----+
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     +--------+
+     vline right above hline at the end:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 +----+
+     +---+----+
+     |51 | 52 |
+     +---+----+
+     +--------+
+     vline left above hline bottom left:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +---+ 42 |
+     +---+----+
+     +--------+
+     vline right above hline bottom left:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +---+ 42 |
+     +---+----+
+     +--------+
+     vline left above hline at the bottom:
+     +-------------+
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     |31 | 32 | 33 |
+     +---+----+----+
+     |41 +----+ 43 |
+     +---+----+----+
+     +-------------+
+     vline right above hline at the bottom:
+     +-------------+
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----+----+
+     |31 | 32 | 33 |
+     +---+----+----+
+     |41 +----+ 43 |
+     +---+----+----+
+     +-------------+
+     vline above hline at the bottom:
+     +------------------+
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 | 22 | 23 | 24 |
+     +---+----+----+----+
+     |31 | 32 | 33 | 34 |
+     +---+----+----+----+
+     |41 +----+----+ 44 |
+     +---+----+----+----+
+     +------------------+
+     vline left above hline bottom right:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 +----+
+     +---+----+
+     +--------+
+     vline right above hline bottom right:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 +----+
+     +---+----+
+     +--------+
+     double vline left below hline top left:
+     +--------+
+     +---+----+
+     +---+ 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +--------+
+     double vline right below hline top left:
+     +--------+
+     +---+----+
+     +---+ 12 |
+     +---++---+
+     |21 ||22 |
+     +---++---+
+     |31 | 32 |
+     +---+----+
+     +--------+
+     double vline left below hline at the top:
+     +-------------+
+     +---+----+----+
+     |11 +----+ 13 |
+     +---++---+----+
+     |21 ||22 | 23 |
+     +---++---+----+
+     |31 | 32 | 33 |
+     +---+----+----+
+     +-------------+
+     double vline right below hline at the top:
+     +-------------+
+     +---+----+----+
+     |11 +----+ 13 |
+     +---+----++---+
+     |21 | 22 ||23 |
+     +---+----++---+
+     |31 | 32 | 33 |
+     +---+----+----+
+     +-------------+
+     double vline below hline at the top:
+     +------------------+
+     +---+----+----+----+
+     |11 +----+----+ 14 |
+     +---+----++---+----+
+     |21 | 22 ||23 | 24 |
+     +---+----++---+----+
+     |31 | 32 | 33 | 34 |
+     +---+----+----+----+
+     +------------------+
+     double vline left below hline top right:
+     +--------+
+     +---+----+
+     |11 +----+
+     +---++---+
+     |21 ||22 |
+     +---++---+
+     |31 | 32 |
+     +---+----+
+     +--------+
+     double vline right below hline top right:
+     +--------+
+     +---+----+
+     |11 +----+
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +--------+
+     double vline left below hline in front:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     +---+ 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     +--------+
+     double vline left above hline in front:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +---+ 42 |
+     +---+----+
+     |51 | 52 |
+     +---+----+
+     +--------+
+     double vline right below hline in front:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     +---+ 22 |
+     +---++---+
+     |31 ||32 |
+     +---++---+
+     |41 | 42 |
+     +---+----+
+     +--------+
+     double vline right above hline in front:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---++---+
+     |31 ||32 |
+     +---++---+
+     +---+|42 |
+     +---+----+
+     |51 | 52 |
+     +---+----+
+     +--------+
+     double vline left below hline in the middle:
+     +-------------+
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 +----+ 23 |
+     +---++---+----+
+     |31 ||32 | 33 |
+     +---++---+----+
+     |41 | 42 | 43 |
+     +---+----+----+
+     +-------------+
+     double vline left above hline in the middle:
+     +-------------+
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---++---+----+
+     |31 ||32 | 33 |
+     +---++---+----+
+     |41 ++---+ 43 |
+     +---+----+----+
+     |51 | 52 | 53 |
+     +---+----+----+
+     +-------------+
+     double vline right below hline in the middle:
+     +-------------+
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 +----+ 23 |
+     +---+----++---+
+     |31 | 32 ||33 |
+     +---+----++---+
+     |41 | 42 | 43 |
+     +---+----+----+
+     +-------------+
+     double vline right above hline in the middle:
+     +-------------+
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----++---+
+     |31 | 32 ||33 |
+     +---+----++---+
+     |41 +----+|43 |
+     +---+----+----+
+     |51 | 52 | 53 |
+     +---+----+----+
+     +-------------+
+     double vline below hline in the middle:
+     +------------------+
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 +----+----+ 24 |
+     +---+----++---+----+
+     |31 | 32 ||33 | 34 |
+     +---+----++---+----+
+     |41 | 42 | 43 | 44 |
+     +---+----+----+----+
+     +------------------+
+     double vline above hline in the middle:
+     +------------------+
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 | 22 | 23 | 24 |
+     +---+----++---+----+
+     |31 | 32 ||33 | 34 |
+     +---+----++---+----+
+     |41 +----++---+ 44 |
+     +---+----+----+----+
+     |51 | 52 | 53 | 54 |
+     +---+----+----+----+
+     +------------------+
+     double vline left below hline at the end:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 +----+
+     +---++---+
+     |31 ||32 |
+     +---++---+
+     |41 | 42 |
+     +---+----+
+     +--------+
+     double vline left above hline at the end:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---++---+
+     |31 ||32 |
+     +---++---+
+     |41 ++---+
+     +---+----+
+     |51 | 52 |
+     +---+----+
+     +--------+
+     double vline right below hline at the end:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 +----+
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 | 42 |
+     +---+----+
+     +--------+
+     double vline right above hline at the end:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 +----+
+     +---+----+
+     |51 | 52 |
+     +---+----+
+     +--------+
+     double vline left above hline bottom left:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     +---+ 42 |
+     +---+----+
+     +--------+
+     double vline right above hline bottom left:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---++---+
+     |31 ||32 |
+     +---++---+
+     +---+|42 |
+     +---+----+
+     +--------+
+     double vline left above hline at the bottom:
+     +-------------+
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---++---+----+
+     |31 ||32 | 33 |
+     +---++---+----+
+     |41 ++---+ 43 |
+     +---+----+----+
+     +-------------+
+     double vline right above hline at the bottom:
+     +-------------+
+     +---+----+----+
+     |11 | 12 | 13 |
+     +---+----+----+
+     |21 | 22 | 23 |
+     +---+----++---+
+     |31 | 32 ||33 |
+     +---+----++---+
+     |41 +----+|43 |
+     +---+----+----+
+     +-------------+
+     double vline above hline at the bottom:
+     +------------------+
+     +---+----+----+----+
+     |11 | 12 | 13 | 14 |
+     +---+----+----+----+
+     |21 | 22 | 23 | 24 |
+     +---+----++---+----+
+     |31 | 32 ||33 | 34 |
+     +---+----++---+----+
+     |41 +----++---+ 44 |
+     +---+----+----+----+
+     +------------------+
+     double vline left above hline bottom right:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---++---+
+     |31 ||32 |
+     +---++---+
+     |41 ++---+
+     +---+----+
+     +--------+
+     double vline right above hline bottom right:
+     +--------+
+     +---+----+
+     |11 | 12 |
+     +---+----+
+     |21 | 22 |
+     +---+----+
+     |31 | 32 |
+     +---+----+
+     |41 +----+
+     +---+----+
+     +--------+
+
+OpenBSD                          June 15, 2017                         OpenBSD
--
 To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2017-06-16 20:01 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-16 20:01 mdocml: Multiple tbl(7) improvements: * Do not discard data that lacks a schwarze

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).