cmark

My personal build of CMark ✏️

Commit
e251fe5fbbd5691ab5a067623fea5685e7dbf03a
Parent
645ea4e735a85c7554e0247015ed8f61d4888a86
Author
John MacFarlane <jgm@berkeley.edu>
Date

Fixed backslashes in link destinations that are not part of escapes.

See jgm/commonmark#45.

Diffstat

2 files changed, 1007 insertions, 1007 deletions

Status File Name N° Changes Insertions Deletions
Modified src/scanners.c 2010 1005 1005
Modified src/scanners.re 4 2 2
diff --git a/src/scanners.c b/src/scanners.c
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 */
+/* Generated by re2c 0.13.6 */
 #include <stdlib.h>
 #include "chunk.h"
 #include "scanners.h"
@@ -13252,38 +13252,38 @@ bufsize_t _scan_link_url(const unsigned char *p)
 	unsigned char yych;
 	unsigned int yyaccept = 0;
 	static const unsigned char yybm[] = {
-		  0,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,   8,  64,  64,   8,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 72, 112, 112, 112, 112, 112, 112, 112, 
-		 64,  64, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112,  16, 112,  16, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 128, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
+		  0, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128,   8, 128, 128,   8, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		136, 208, 208, 208, 208, 208, 208, 208, 
+		128, 128, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208,  16, 208,  16, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208,  32, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
+		208, 208, 208, 208, 208, 208, 208, 208, 
 	};
 	yych = *p;
 	if (yych <= '\'') {
@@ -13294,17 +13294,17 @@ bufsize_t _scan_link_url(const unsigned char *p)
 			if (yych <= '\r') goto yy1591;
 			if (yych <= 0x1F) goto yy1597;
 			if (yych <= ' ') goto yy1591;
-			goto yy1593;
+			goto yy1594;
 		}
 	} else {
 		if (yych <= ';') {
-			if (yych <= '(') goto yy1596;
+			if (yych <= '(') goto yy1595;
 			if (yych <= ')') goto yy1597;
-			goto yy1593;
+			goto yy1594;
 		} else {
 			if (yych <= '<') goto yy1592;
-			if (yych == '\\') goto yy1594;
-			goto yy1593;
+			if (yych == '\\') goto yy1593;
+			goto yy1594;
 		}
 	}
 yy1588:
@@ -13319,16 +13319,16 @@ yy1590:
 	}
 	if (yych <= ')') {
 		if (yych <= ' ') goto yy1588;
-		if (yych <= '\'') goto yy1602;
+		if (yych <= '\'') goto yy1603;
 		if (yych <= '(') goto yy1598;
 		goto yy1588;
 	} else {
 		if (yych <= '<') {
-			if (yych <= ';') goto yy1602;
-			goto yy1605;
+			if (yych <= ';') goto yy1603;
+			goto yy1613;
 		} else {
-			if (yych == '\\') goto yy1604;
-			goto yy1602;
+			if (yych == '\\') goto yy1605;
+			goto yy1603;
 		}
 	}
 yy1591:
@@ -13338,57 +13338,48 @@ yy1591:
 yy1592:
 	yyaccept = 0;
 	yych = *(marker = ++p);
-	if (yybm[0+yych] & 32) {
-		goto yy1605;
+	if (yybm[0+yych] & 64) {
+		goto yy1613;
 	}
 	if (yych <= '\r') {
 		if (yych <= '\t') {
 			if (yych <= 0x00) goto yy1588;
-			goto yy1612;
+			goto yy1619;
 		} else {
 			if (yych <= '\n') goto yy1588;
-			if (yych <= '\f') goto yy1612;
+			if (yych <= '\f') goto yy1619;
 			goto yy1588;
 		}
 	} else {
 		if (yych <= ')') {
-			if (yych == '(') goto yy1610;
-			goto yy1612;
+			if (yych == '(') goto yy1617;
+			goto yy1619;
 		} else {
-			if (yych <= '=') goto yy1602;
-			if (yych <= '>') goto yy1607;
-			goto yy1609;
+			if (yych <= '=') goto yy1603;
+			if (yych <= '>') goto yy1615;
+			goto yy1611;
 		}
 	}
 yy1593:
+	yych = *++p;
+	if (yych <= '\'') goto yy1604;
+	if (yych <= '(') goto yy1607;
+	if (yych <= ')') goto yy1603;
+	goto yy1604;
+yy1594:
 	yyaccept = 0;
 	yych = *(marker = ++p);
-	goto yy1603;
-yy1594:
-	++p;
-	if ((yych = *p) <= '@') {
-		if (yych <= ' ') goto yy1595;
-		if (yych <= '/') goto yy1602;
-		if (yych >= ':') goto yy1602;
-	} else {
-		if (yych <= '`') {
-			if (yych >= '[') goto yy1602;
-		} else {
-			if (yych <= 'z') goto yy1595;
-			if (yych <= '~') goto yy1602;
-		}
-	}
+	goto yy1604;
 yy1595:
-	{ return 0; }
-yy1596:
 	yyaccept = 1;
 	yych = *(marker = ++p);
-	if (yych <= ' ') goto yy1595;
-	if (yych == '(') goto yy1595;
-	goto yy1599;
+	if (yych <= ' ') goto yy1596;
+	if (yych != '(') goto yy1599;
+yy1596:
+	{ return 0; }
 yy1597:
 	yych = *++p;
-	goto yy1595;
+	goto yy1596;
 yy1598:
 	++p;
 	yych = *p;
@@ -13397,136 +13388,124 @@ yy1599:
 		goto yy1598;
 	}
 	if (yych <= '(') goto yy1600;
-	if (yych <= ')') goto yy1602;
+	if (yych <= ')') goto yy1603;
 	goto yy1601;
 yy1600:
 	p = marker;
 	if (yyaccept <= 1) {
-		if (yyaccept <= 0) {
+		if (yyaccept == 0) {
 			goto yy1588;
 		} else {
-			goto yy1595;
+			goto yy1596;
 		}
 	} else {
-		goto yy1608;
+		goto yy1616;
 	}
 yy1601:
 	++p;
 	yych = *p;
-	if (yych <= '@') {
-		if (yych <= ' ') goto yy1600;
-		if (yych <= '/') goto yy1598;
-		if (yych <= '9') goto yy1600;
+	if (yybm[0+yych] & 32) {
+		goto yy1601;
+	}
+	if (yych <= ' ') goto yy1600;
+	if (yych == ')') goto yy1607;
+	goto yy1598;
+yy1603:
+	yyaccept = 0;
+	marker = ++p;
+	yych = *p;
+yy1604:
+	if (yych <= '(') {
+		if (yych <= ' ') goto yy1588;
+		if (yych <= '\'') goto yy1603;
 		goto yy1598;
 	} else {
-		if (yych <= '`') {
-			if (yych <= 'Z') goto yy1600;
-			goto yy1598;
-		} else {
-			if (yych <= 'z') goto yy1600;
-			if (yych <= '~') goto yy1598;
-			goto yy1600;
-		}
+		if (yych <= ')') goto yy1588;
+		if (yych != '\\') goto yy1603;
+	}
+yy1605:
+	++p;
+	yych = *p;
+	if (yych <= '(') {
+		if (yych <= ' ') goto yy1588;
+		if (yych <= '\'') goto yy1603;
+	} else {
+		if (yych == '\\') goto yy1605;
+		goto yy1603;
 	}
-yy1602:
+yy1607:
 	yyaccept = 0;
 	marker = ++p;
 	yych = *p;
-yy1603:
+yy1608:
 	if (yych <= '(') {
 		if (yych <= ' ') goto yy1588;
-		if (yych <= '\'') goto yy1602;
+		if (yych <= '\'') goto yy1607;
 		goto yy1598;
 	} else {
-		if (yych <= ')') goto yy1588;
-		if (yych != '\\') goto yy1602;
+		if (yych <= ')') goto yy1603;
+		if (yych != '\\') goto yy1607;
 	}
-yy1604:
+yy1609:
 	++p;
 	yych = *p;
-	if (yych <= '@') {
-		if (yych <= ' ') goto yy1600;
-		if (yych <= '/') goto yy1602;
-		if (yych <= '9') goto yy1600;
-		goto yy1602;
+	if (yych <= ' ') goto yy1588;
+	if (yych == '\\') goto yy1609;
+	goto yy1607;
+yy1611:
+	yyaccept = 0;
+	marker = ++p;
+	yych = *p;
+	if (yych <= ' ') {
+		if (yych <= '\n') {
+			if (yych <= 0x00) goto yy1588;
+			if (yych <= '\t') goto yy1619;
+			goto yy1588;
+		} else {
+			if (yych == '\r') goto yy1588;
+			goto yy1619;
+		}
 	} else {
-		if (yych <= '`') {
-			if (yych <= 'Z') goto yy1600;
-			goto yy1602;
+		if (yych <= '=') {
+			if (yych == '(') goto yy1628;
 		} else {
-			if (yych <= 'z') goto yy1600;
-			if (yych <= '~') goto yy1602;
-			goto yy1600;
+			if (yych <= '>') goto yy1635;
+			if (yych == '\\') goto yy1611;
 		}
 	}
-yy1605:
+yy1613:
 	yyaccept = 0;
 	marker = ++p;
 	yych = *p;
-	if (yybm[0+yych] & 32) {
-		goto yy1605;
+	if (yybm[0+yych] & 64) {
+		goto yy1613;
 	}
 	if (yych <= '\r') {
 		if (yych <= '\t') {
 			if (yych <= 0x00) goto yy1588;
-			goto yy1612;
+			goto yy1619;
 		} else {
 			if (yych <= '\n') goto yy1588;
-			if (yych <= '\f') goto yy1612;
+			if (yych <= '\f') goto yy1619;
 			goto yy1588;
 		}
 	} else {
 		if (yych <= ')') {
-			if (yych == '(') goto yy1610;
-			goto yy1612;
+			if (yych == '(') goto yy1617;
+			goto yy1619;
 		} else {
-			if (yych <= '=') goto yy1602;
-			if (yych >= '?') goto yy1609;
+			if (yych <= '=') goto yy1603;
+			if (yych >= '?') goto yy1611;
 		}
 	}
-yy1607:
+yy1615:
 	yyaccept = 2;
 	yych = *(marker = ++p);
-	if (yych <= ' ') goto yy1608;
-	if (yych != ')') goto yy1603;
-yy1608:
+	if (yych <= ' ') goto yy1616;
+	if (yych != ')') goto yy1604;
+yy1616:
 	{ return (bufsize_t)(p - start); }
-yy1609:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '\f') {
-			if (yych <= 0x00) goto yy1600;
-			if (yych == '\n') goto yy1600;
-			goto yy1612;
-		} else {
-			if (yych <= ' ') {
-				if (yych <= '\r') goto yy1600;
-				goto yy1612;
-			} else {
-				if (yych <= '/') goto yy1605;
-				if (yych <= '9') goto yy1612;
-				goto yy1605;
-			}
-		}
-	} else {
-		if (yych <= '[') {
-			if (yych <= '>') goto yy1622;
-			if (yych <= '@') goto yy1605;
-			if (yych <= 'Z') goto yy1612;
-			goto yy1605;
-		} else {
-			if (yych <= '`') {
-				if (yych <= '\\') goto yy1623;
-				goto yy1605;
-			} else {
-				if (yych <= 'z') goto yy1612;
-				if (yych <= '~') goto yy1605;
-				goto yy1612;
-			}
-		}
-	}
-yy1610:
+yy1617:
 	++p;
 	yych = *p;
 	if (yych <= '(') {
@@ -13535,194 +13514,215 @@ yy1610:
 			if (yych == '\n') goto yy1600;
 		} else {
 			if (yych <= '\r') goto yy1600;
-			if (yych <= ' ') goto yy1612;
-			if (yych <= '\'') goto yy1610;
+			if (yych <= ' ') goto yy1619;
+			if (yych <= '\'') goto yy1617;
 		}
 	} else {
 		if (yych <= '=') {
-			if (yych <= ')') goto yy1605;
+			if (yych <= ')') goto yy1613;
 			if (yych == '<') goto yy1598;
-			goto yy1610;
+			goto yy1617;
 		} else {
-			if (yych <= '>') goto yy1618;
-			if (yych == '\\') goto yy1619;
-			goto yy1610;
+			if (yych <= '>') goto yy1625;
+			if (yych == '\\') goto yy1626;
+			goto yy1617;
 		}
 	}
-yy1612:
+yy1619:
 	++p;
 	yych = *p;
-	if (yybm[0+yych] & 64) {
-		goto yy1612;
+	if (yybm[0+yych] & 128) {
+		goto yy1619;
 	}
 	if (yych <= '=') goto yy1600;
-	if (yych >= '?') goto yy1615;
-yy1614:
+	if (yych >= '?') goto yy1622;
+yy1621:
 	yych = *++p;
-	goto yy1608;
-yy1615:
+	goto yy1616;
+yy1622:
 	++p;
 	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy1615;
-	}
-	if (yych <= '\f') {
-		if (yych <= 0x00) goto yy1600;
-		if (yych == '\n') goto yy1600;
-		goto yy1612;
+	if (yych <= '\r') {
+		if (yych <= '\t') {
+			if (yych <= 0x00) goto yy1600;
+			goto yy1619;
+		} else {
+			if (yych <= '\n') goto yy1600;
+			if (yych <= '\f') goto yy1619;
+			goto yy1600;
+		}
 	} else {
-		if (yych <= '\r') goto yy1600;
-		if (yych != '>') goto yy1612;
+		if (yych <= '>') {
+			if (yych <= '=') goto yy1619;
+		} else {
+			if (yych == '\\') goto yy1622;
+			goto yy1619;
+		}
 	}
 	yyaccept = 2;
 	marker = ++p;
 	yych = *p;
-	if (yybm[0+yych] & 64) {
-		goto yy1612;
+	if (yybm[0+yych] & 128) {
+		goto yy1619;
 	}
-	if (yych <= '=') goto yy1608;
-	if (yych <= '>') goto yy1614;
-	goto yy1615;
-yy1618:
+	if (yych <= '=') goto yy1616;
+	if (yych <= '>') goto yy1621;
+	goto yy1622;
+yy1625:
 	yyaccept = 2;
 	yych = *(marker = ++p);
-	if (yych <= ' ') goto yy1608;
-	if (yych == '(') goto yy1608;
+	if (yych <= ' ') goto yy1616;
+	if (yych == '(') goto yy1616;
 	goto yy1599;
-yy1619:
+yy1626:
 	++p;
 	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '\f') {
+	if (yych <= ' ') {
+		if (yych <= '\n') {
 			if (yych <= 0x00) goto yy1600;
-			if (yych == '\n') goto yy1600;
-			goto yy1612;
+			if (yych <= '\t') goto yy1619;
+			goto yy1600;
 		} else {
-			if (yych <= ' ') {
-				if (yych <= '\r') goto yy1600;
-				goto yy1612;
-			} else {
-				if (yych <= '/') goto yy1610;
-				if (yych <= '9') goto yy1612;
-				goto yy1610;
-			}
+			if (yych == '\r') goto yy1600;
+			goto yy1619;
 		}
 	} else {
-		if (yych <= '[') {
-			if (yych <= '>') goto yy1620;
-			if (yych <= '@') goto yy1610;
-			if (yych <= 'Z') goto yy1612;
-			goto yy1610;
+		if (yych <= '=') {
+			if (yych != ')') goto yy1617;
 		} else {
-			if (yych <= '`') {
-				if (yych <= '\\') goto yy1621;
-				goto yy1610;
-			} else {
-				if (yych <= 'z') goto yy1612;
-				if (yych <= '~') goto yy1610;
-				goto yy1612;
-			}
+			if (yych <= '>') goto yy1630;
+			if (yych == '\\') goto yy1626;
+			goto yy1617;
 		}
 	}
-yy1620:
-	yyaccept = 2;
+yy1628:
+	yyaccept = 0;
 	marker = ++p;
 	yych = *p;
 	if (yych <= '(') {
 		if (yych <= '\f') {
-			if (yych <= 0x00) goto yy1608;
-			if (yych == '\n') goto yy1608;
-			goto yy1612;
+			if (yych <= 0x00) goto yy1588;
+			if (yych == '\n') goto yy1588;
+			goto yy1619;
 		} else {
-			if (yych <= '\r') goto yy1608;
-			if (yych <= ' ') goto yy1612;
-			if (yych <= '\'') goto yy1610;
-			goto yy1612;
+			if (yych <= '\r') goto yy1588;
+			if (yych <= ' ') goto yy1619;
+			if (yych <= '\'') goto yy1628;
+			goto yy1617;
 		}
 	} else {
 		if (yych <= '=') {
-			if (yych <= ')') goto yy1605;
-			if (yych == '<') goto yy1598;
-			goto yy1610;
+			if (yych <= ')') goto yy1613;
+			if (yych == '<') goto yy1607;
+			goto yy1628;
 		} else {
-			if (yych <= '>') goto yy1618;
-			if (yych == '\\') goto yy1619;
-			goto yy1610;
+			if (yych <= '>') goto yy1631;
+			if (yych == '\\') goto yy1632;
+			goto yy1628;
 		}
 	}
-yy1621:
-	++p;
+yy1630:
+	yyaccept = 2;
+	marker = ++p;
 	yych = *p;
-	if (yych <= '\'') {
-		if (yych <= '\n') {
-			if (yych <= 0x00) goto yy1600;
-			if (yych <= '\t') goto yy1612;
-			goto yy1600;
+	if (yych <= '(') {
+		if (yych <= '\f') {
+			if (yych <= 0x00) goto yy1616;
+			if (yych == '\n') goto yy1616;
+			goto yy1619;
 		} else {
-			if (yych == '\r') goto yy1600;
-			if (yych <= ' ') goto yy1612;
-			goto yy1610;
+			if (yych <= '\r') goto yy1616;
+			if (yych <= ' ') goto yy1619;
+			if (yych <= '\'') goto yy1617;
+			goto yy1619;
 		}
 	} else {
 		if (yych <= '=') {
-			if (yych <= '(') goto yy1612;
-			if (yych <= ')') goto yy1605;
-			goto yy1610;
+			if (yych <= ')') goto yy1613;
+			if (yych == '<') goto yy1598;
+			goto yy1617;
 		} else {
-			if (yych <= '>') goto yy1620;
-			if (yych == '\\') goto yy1619;
-			goto yy1610;
+			if (yych <= '>') goto yy1625;
+			if (yych == '\\') goto yy1626;
+			goto yy1617;
 		}
 	}
-yy1622:
+yy1631:
 	yyaccept = 2;
+	yych = *(marker = ++p);
+	if (yych <= ' ') goto yy1616;
+	goto yy1608;
+yy1632:
+	yyaccept = 0;
 	marker = ++p;
 	yych = *p;
-	if (yybm[0+yych] & 32) {
-		goto yy1605;
-	}
 	if (yych <= '\r') {
 		if (yych <= '\t') {
-			if (yych <= 0x00) goto yy1608;
-			goto yy1612;
+			if (yych <= 0x00) goto yy1588;
+			goto yy1619;
 		} else {
-			if (yych <= '\n') goto yy1608;
-			if (yych <= '\f') goto yy1612;
-			goto yy1608;
+			if (yych <= '\n') goto yy1588;
+			if (yych <= '\f') goto yy1619;
+			goto yy1588;
 		}
 	} else {
-		if (yych <= ')') {
-			if (yych == '(') goto yy1610;
-			goto yy1612;
+		if (yych <= '>') {
+			if (yych <= ' ') goto yy1619;
+			if (yych <= '=') goto yy1628;
 		} else {
-			if (yych <= '=') goto yy1602;
-			if (yych <= '>') goto yy1607;
-			goto yy1609;
+			if (yych == '\\') goto yy1632;
+			goto yy1628;
 		}
 	}
-yy1623:
-	yyaccept = 0;
+	yyaccept = 2;
 	marker = ++p;
 	yych = *p;
-	if (yych <= '\'') {
-		if (yych <= '\n') {
-			if (yych <= 0x00) goto yy1588;
-			if (yych <= '\t') goto yy1612;
-			goto yy1588;
+	if (yych <= '(') {
+		if (yych <= '\f') {
+			if (yych <= 0x00) goto yy1616;
+			if (yych == '\n') goto yy1616;
+			goto yy1619;
 		} else {
-			if (yych == '\r') goto yy1588;
-			if (yych <= ' ') goto yy1612;
-			goto yy1605;
+			if (yych <= '\r') goto yy1616;
+			if (yych <= ' ') goto yy1619;
+			if (yych <= '\'') goto yy1628;
+			goto yy1617;
 		}
 	} else {
 		if (yych <= '=') {
-			if (yych <= '(') goto yy1610;
-			if (yych <= ')') goto yy1612;
-			goto yy1605;
+			if (yych <= ')') goto yy1613;
+			if (yych == '<') goto yy1607;
+			goto yy1628;
+		} else {
+			if (yych <= '>') goto yy1631;
+			if (yych == '\\') goto yy1632;
+			goto yy1628;
+		}
+	}
+yy1635:
+	yyaccept = 2;
+	marker = ++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1613;
+	}
+	if (yych <= '\r') {
+		if (yych <= '\t') {
+			if (yych <= 0x00) goto yy1616;
+			goto yy1619;
+		} else {
+			if (yych <= '\n') goto yy1616;
+			if (yych <= '\f') goto yy1619;
+			goto yy1616;
+		}
+	} else {
+		if (yych <= ')') {
+			if (yych == '(') goto yy1617;
+			goto yy1619;
 		} else {
-			if (yych <= '>') goto yy1622;
-			if (yych == '\\') goto yy1609;
-			goto yy1605;
+			if (yych <= '=') goto yy1603;
+			if (yych <= '>') goto yy1615;
+			goto yy1611;
 		}
 	}
 }
@@ -13776,147 +13776,147 @@ bufsize_t _scan_link_title(const unsigned char *p)
 	};
 	yych = *p;
 	if (yych <= '"') {
-		if (yych == '\n') goto yy1626;
-		if (yych <= '!') goto yy1630;
-		goto yy1627;
+		if (yych == '\n') goto yy1638;
+		if (yych <= '!') goto yy1642;
+		goto yy1639;
 	} else {
-		if (yych <= '&') goto yy1630;
-		if (yych <= '\'') goto yy1628;
-		if (yych <= '(') goto yy1629;
-		goto yy1630;
+		if (yych <= '&') goto yy1642;
+		if (yych <= '\'') goto yy1640;
+		if (yych <= '(') goto yy1641;
+		goto yy1642;
 	}
-yy1626:
+yy1638:
 	{ return 0; }
-yy1627:
+yy1639:
 	yyaccept = 0;
 	yych = *(marker = ++p);
-	if (yych <= 0x00) goto yy1626;
-	goto yy1647;
-yy1628:
+	if (yych <= 0x00) goto yy1638;
+	goto yy1659;
+yy1640:
 	yyaccept = 0;
 	yych = *(marker = ++p);
-	if (yych <= 0x00) goto yy1626;
-	goto yy1640;
-yy1629:
+	if (yych <= 0x00) goto yy1638;
+	goto yy1652;
+yy1641:
 	yyaccept = 0;
 	yych = *(marker = ++p);
-	if (yych <= 0x00) goto yy1626;
-	goto yy1632;
-yy1630:
+	if (yych <= 0x00) goto yy1638;
+	goto yy1644;
+yy1642:
 	yych = *++p;
-	goto yy1626;
-yy1631:
+	goto yy1638;
+yy1643:
 	++p;
 	yych = *p;
-yy1632:
+yy1644:
 	if (yybm[0+yych] & 16) {
-		goto yy1631;
+		goto yy1643;
 	}
-	if (yych <= 0x00) goto yy1633;
-	if (yych <= '[') goto yy1636;
-	goto yy1634;
-yy1633:
+	if (yych <= 0x00) goto yy1645;
+	if (yych <= '[') goto yy1648;
+	goto yy1646;
+yy1645:
 	p = marker;
 	if (yyaccept <= 1) {
-		if (yyaccept <= 0) {
-			goto yy1626;
+		if (yyaccept == 0) {
+			goto yy1638;
 		} else {
-			goto yy1637;
+			goto yy1649;
 		}
 	} else {
-		if (yyaccept <= 2) {
-			goto yy1644;
+		if (yyaccept == 2) {
+			goto yy1656;
 		} else {
-			goto yy1651;
+			goto yy1663;
 		}
 	}
-yy1634:
+yy1646:
 	++p;
 	yych = *p;
 	if (yybm[0+yych] & 16) {
-		goto yy1631;
+		goto yy1643;
 	}
-	if (yych <= 0x00) goto yy1633;
-	if (yych <= '[') goto yy1638;
-	goto yy1634;
-yy1636:
+	if (yych <= 0x00) goto yy1645;
+	if (yych <= '[') goto yy1650;
+	goto yy1646;
+yy1648:
 	++p;
-yy1637:
+yy1649:
 	{ return (bufsize_t)(p - start); }
-yy1638:
+yy1650:
 	yyaccept = 1;
 	marker = ++p;
 	yych = *p;
 	if (yybm[0+yych] & 16) {
-		goto yy1631;
+		goto yy1643;
 	}
-	if (yych <= 0x00) goto yy1637;
-	if (yych <= '[') goto yy1636;
-	goto yy1634;
-yy1639:
+	if (yych <= 0x00) goto yy1649;
+	if (yych <= '[') goto yy1648;
+	goto yy1646;
+yy1651:
 	++p;
 	yych = *p;
-yy1640:
+yy1652:
 	if (yybm[0+yych] & 64) {
-		goto yy1639;
+		goto yy1651;
 	}
-	if (yych <= 0x00) goto yy1633;
-	if (yych <= '[') goto yy1643;
-yy1641:
+	if (yych <= 0x00) goto yy1645;
+	if (yych <= '[') goto yy1655;
+yy1653:
 	++p;
 	yych = *p;
 	if (yybm[0+yych] & 64) {
-		goto yy1639;
+		goto yy1651;
 	}
-	if (yych <= 0x00) goto yy1633;
-	if (yych <= '[') goto yy1645;
-	goto yy1641;
-yy1643:
+	if (yych <= 0x00) goto yy1645;
+	if (yych <= '[') goto yy1657;
+	goto yy1653;
+yy1655:
 	++p;
-yy1644:
+yy1656:
 	{ return (bufsize_t)(p - start); }
-yy1645:
+yy1657:
 	yyaccept = 2;
 	marker = ++p;
 	yych = *p;
 	if (yybm[0+yych] & 64) {
-		goto yy1639;
+		goto yy1651;
 	}
-	if (yych <= 0x00) goto yy1644;
-	if (yych <= '[') goto yy1643;
-	goto yy1641;
-yy1646:
+	if (yych <= 0x00) goto yy1656;
+	if (yych <= '[') goto yy1655;
+	goto yy1653;
+yy1658:
 	++p;
 	yych = *p;
-yy1647:
+yy1659:
 	if (yybm[0+yych] & 128) {
-		goto yy1646;
+		goto yy1658;
 	}
-	if (yych <= 0x00) goto yy1633;
-	if (yych <= '[') goto yy1650;
-yy1648:
+	if (yych <= 0x00) goto yy1645;
+	if (yych <= '[') goto yy1662;
+yy1660:
 	++p;
 	yych = *p;
 	if (yybm[0+yych] & 128) {
-		goto yy1646;
+		goto yy1658;
 	}
-	if (yych <= 0x00) goto yy1633;
-	if (yych <= '[') goto yy1652;
-	goto yy1648;
-yy1650:
+	if (yych <= 0x00) goto yy1645;
+	if (yych <= '[') goto yy1664;
+	goto yy1660;
+yy1662:
 	++p;
-yy1651:
+yy1663:
 	{ return (bufsize_t)(p - start); }
-yy1652:
+yy1664:
 	yyaccept = 3;
 	marker = ++p;
 	yych = *p;
 	if (yybm[0+yych] & 128) {
-		goto yy1646;
+		goto yy1658;
 	}
-	if (yych <= 0x00) goto yy1651;
-	if (yych <= '[') goto yy1650;
-	goto yy1648;
+	if (yych <= 0x00) goto yy1663;
+	if (yych <= '[') goto yy1662;
+	goto yy1660;
 }
 
 }
@@ -13964,28 +13964,28 @@ bufsize_t _scan_spacechars(const unsigned char *p)
 	};
 	yych = *p;
 	if (yych <= '\n') {
-		if (yych <= 0x08) goto yy1659;
-		if (yych <= '\t') goto yy1656;
-		goto yy1657;
+		if (yych <= 0x08) goto yy1671;
+		if (yych <= '\t') goto yy1668;
+		goto yy1669;
 	} else {
-		if (yych <= '\r') goto yy1656;
-		if (yych == ' ') goto yy1656;
-		goto yy1659;
+		if (yych <= '\r') goto yy1668;
+		if (yych == ' ') goto yy1668;
+		goto yy1671;
 	}
-yy1655:
+yy1667:
 	{ return (bufsize_t)(p - start); }
-yy1656:
+yy1668:
 	yych = *++p;
-	goto yy1658;
-yy1657:
+	goto yy1670;
+yy1669:
 	++p;
 	yych = *p;
-yy1658:
+yy1670:
 	if (yybm[0+yych] & 128) {
-		goto yy1657;
+		goto yy1669;
 	}
-	goto yy1655;
-yy1659:
+	goto yy1667;
+yy1671:
 	++p;
 	{ return 0; }
 }
@@ -14035,93 +14035,93 @@ bufsize_t _scan_atx_header_start(const unsigned char *p)
 		  0,   0,   0,   0,   0,   0,   0,   0, 
 	};
 	yych = *p;
-	if (yych == '\n') goto yy1663;
-	if (yych == '#') goto yy1664;
-	goto yy1665;
-yy1663:
+	if (yych == '\n') goto yy1675;
+	if (yych == '#') goto yy1676;
+	goto yy1677;
+yy1675:
 	{ return 0; }
-yy1664:
+yy1676:
 	yych = *(marker = ++p);
 	if (yybm[0+yych] & 128) {
-		goto yy1668;
+		goto yy1680;
 	}
 	if (yych <= '\f') {
-		if (yych == '\n') goto yy1666;
-		goto yy1663;
+		if (yych == '\n') goto yy1678;
+		goto yy1675;
 	} else {
-		if (yych <= '\r') goto yy1666;
-		if (yych == '#') goto yy1670;
-		goto yy1663;
+		if (yych <= '\r') goto yy1678;
+		if (yych == '#') goto yy1682;
+		goto yy1675;
 	}
-yy1665:
+yy1677:
 	yych = *++p;
-	goto yy1663;
-yy1666:
+	goto yy1675;
+yy1678:
 	++p;
-yy1667:
+yy1679:
 	{ return (bufsize_t)(p - start); }
-yy1668:
+yy1680:
 	++p;
 	yych = *p;
 	if (yybm[0+yych] & 128) {
-		goto yy1668;
+		goto yy1680;
 	}
-	goto yy1667;
-yy1670:
+	goto yy1679;
+yy1682:
 	yych = *++p;
 	if (yybm[0+yych] & 128) {
-		goto yy1668;
+		goto yy1680;
 	}
 	if (yych <= '\f') {
-		if (yych == '\n') goto yy1666;
+		if (yych == '\n') goto yy1678;
 	} else {
-		if (yych <= '\r') goto yy1666;
-		if (yych == '#') goto yy1672;
+		if (yych <= '\r') goto yy1678;
+		if (yych == '#') goto yy1684;
 	}
-yy1671:
+yy1683:
 	p = marker;
-	goto yy1663;
-yy1672:
+	goto yy1675;
+yy1684:
 	yych = *++p;
 	if (yybm[0+yych] & 128) {
-		goto yy1668;
+		goto yy1680;
 	}
 	if (yych <= '\f') {
-		if (yych == '\n') goto yy1666;
-		goto yy1671;
+		if (yych == '\n') goto yy1678;
+		goto yy1683;
 	} else {
-		if (yych <= '\r') goto yy1666;
-		if (yych != '#') goto yy1671;
+		if (yych <= '\r') goto yy1678;
+		if (yych != '#') goto yy1683;
 	}
 	yych = *++p;
 	if (yybm[0+yych] & 128) {
-		goto yy1668;
+		goto yy1680;
 	}
 	if (yych <= '\f') {
-		if (yych == '\n') goto yy1666;
-		goto yy1671;
+		if (yych == '\n') goto yy1678;
+		goto yy1683;
 	} else {
-		if (yych <= '\r') goto yy1666;
-		if (yych != '#') goto yy1671;
+		if (yych <= '\r') goto yy1678;
+		if (yych != '#') goto yy1683;
 	}
 	yych = *++p;
 	if (yybm[0+yych] & 128) {
-		goto yy1668;
+		goto yy1680;
 	}
 	if (yych <= '\f') {
-		if (yych == '\n') goto yy1666;
-		goto yy1671;
+		if (yych == '\n') goto yy1678;
+		goto yy1683;
 	} else {
-		if (yych <= '\r') goto yy1666;
-		if (yych != '#') goto yy1671;
+		if (yych <= '\r') goto yy1678;
+		if (yych != '#') goto yy1683;
 	}
 	++p;
 	if (yybm[0+(yych = *p)] & 128) {
-		goto yy1668;
+		goto yy1680;
 	}
-	if (yych == '\n') goto yy1666;
-	if (yych == '\r') goto yy1666;
-	goto yy1671;
+	if (yych == '\n') goto yy1678;
+	if (yych == '\r') goto yy1678;
+	goto yy1683;
 }
 
 }
@@ -14170,97 +14170,97 @@ bufsize_t _scan_setext_header_line(const unsigned char *p)
 	};
 	yych = *p;
 	if (yych <= ',') {
-		if (yych != '\n') goto yy1681;
+		if (yych != '\n') goto yy1693;
 	} else {
-		if (yych <= '-') goto yy1680;
-		if (yych == '=') goto yy1679;
-		goto yy1681;
+		if (yych <= '-') goto yy1692;
+		if (yych == '=') goto yy1691;
+		goto yy1693;
 	}
-yy1678:
+yy1690:
 	{ return 0; }
-yy1679:
+yy1691:
 	yych = *(marker = ++p);
 	if (yybm[0+yych] & 128) {
-		goto yy1693;
+		goto yy1705;
 	}
 	if (yych <= '\f') {
-		if (yych == '\n') goto yy1691;
-		goto yy1678;
+		if (yych == '\n') goto yy1703;
+		goto yy1690;
 	} else {
-		if (yych <= '\r') goto yy1691;
-		if (yych == ' ') goto yy1689;
-		goto yy1678;
+		if (yych <= '\r') goto yy1703;
+		if (yych == ' ') goto yy1701;
+		goto yy1690;
 	}
-yy1680:
+yy1692:
 	yych = *(marker = ++p);
 	if (yybm[0+yych] & 32) {
-		goto yy1682;
+		goto yy1694;
 	}
 	if (yych <= '\f') {
-		if (yych == '\n') goto yy1685;
-		goto yy1678;
+		if (yych == '\n') goto yy1697;
+		goto yy1690;
 	} else {
-		if (yych <= '\r') goto yy1685;
-		if (yych == '-') goto yy1687;
-		goto yy1678;
+		if (yych <= '\r') goto yy1697;
+		if (yych == '-') goto yy1699;
+		goto yy1690;
 	}
-yy1681:
+yy1693:
 	yych = *++p;
-	goto yy1678;
-yy1682:
+	goto yy1690;
+yy1694:
 	++p;
 	yych = *p;
 	if (yybm[0+yych] & 32) {
-		goto yy1682;
+		goto yy1694;
 	}
-	if (yych == '\n') goto yy1685;
-	if (yych == '\r') goto yy1685;
-yy1684:
+	if (yych == '\n') goto yy1697;
+	if (yych == '\r') goto yy1697;
+yy1696:
 	p = marker;
-	goto yy1678;
-yy1685:
+	goto yy1690;
+yy1697:
 	++p;
 	{ return 2; }
-yy1687:
+yy1699:
 	++p;
 	yych = *p;
 	if (yybm[0+yych] & 32) {
-		goto yy1682;
+		goto yy1694;
 	}
 	if (yych <= '\f') {
-		if (yych == '\n') goto yy1685;
-		goto yy1684;
+		if (yych == '\n') goto yy1697;
+		goto yy1696;
 	} else {
-		if (yych <= '\r') goto yy1685;
-		if (yych == '-') goto yy1687;
-		goto yy1684;
+		if (yych <= '\r') goto yy1697;
+		if (yych == '-') goto yy1699;
+		goto yy1696;
 	}
-yy1689:
+yy1701:
 	++p;
 	yych = *p;
 	if (yych <= '\f') {
-		if (yych != '\n') goto yy1684;
+		if (yych != '\n') goto yy1696;
 	} else {
-		if (yych <= '\r') goto yy1691;
-		if (yych == ' ') goto yy1689;
-		goto yy1684;
+		if (yych <= '\r') goto yy1703;
+		if (yych == ' ') goto yy1701;
+		goto yy1696;
 	}
-yy1691:
+yy1703:
 	++p;
 	{ return 1; }
-yy1693:
+yy1705:
 	++p;
 	yych = *p;
 	if (yybm[0+yych] & 128) {
-		goto yy1693;
+		goto yy1705;
 	}
 	if (yych <= '\f') {
-		if (yych == '\n') goto yy1691;
-		goto yy1684;
+		if (yych == '\n') goto yy1703;
+		goto yy1696;
 	} else {
-		if (yych <= '\r') goto yy1691;
-		if (yych == ' ') goto yy1689;
-		goto yy1684;
+		if (yych <= '\r') goto yy1703;
+		if (yych == ' ') goto yy1701;
+		goto yy1696;
 	}
 }
 
@@ -14312,153 +14312,153 @@ bufsize_t _scan_hrule(const unsigned char *p)
 	};
 	yych = *p;
 	if (yych <= '*') {
-		if (yych == '\n') goto yy1697;
-		if (yych <= ')') goto yy1701;
-		goto yy1698;
+		if (yych == '\n') goto yy1709;
+		if (yych <= ')') goto yy1713;
+		goto yy1710;
 	} else {
 		if (yych <= '-') {
-			if (yych <= ',') goto yy1701;
-			goto yy1700;
+			if (yych <= ',') goto yy1713;
+			goto yy1712;
 		} else {
-			if (yych == '_') goto yy1699;
-			goto yy1701;
+			if (yych == '_') goto yy1711;
+			goto yy1713;
 		}
 	}
-yy1697:
+yy1709:
 	{ return 0; }
-yy1698:
+yy1710:
 	yych = *(marker = ++p);
-	if (yych == ' ') goto yy1723;
-	if (yych == '*') goto yy1725;
-	goto yy1697;
-yy1699:
+	if (yych == ' ') goto yy1735;
+	if (yych == '*') goto yy1737;
+	goto yy1709;
+yy1711:
 	yych = *(marker = ++p);
-	if (yych == ' ') goto yy1713;
-	if (yych == '_') goto yy1715;
-	goto yy1697;
-yy1700:
+	if (yych == ' ') goto yy1725;
+	if (yych == '_') goto yy1727;
+	goto yy1709;
+yy1712:
 	yych = *(marker = ++p);
 	if (yybm[0+yych] & 8) {
-		goto yy1702;
+		goto yy1714;
 	}
-	if (yych == '-') goto yy1705;
-	goto yy1697;
-yy1701:
+	if (yych == '-') goto yy1717;
+	goto yy1709;
+yy1713:
 	yych = *++p;
-	goto yy1697;
-yy1702:
+	goto yy1709;
+yy1714:
 	++p;
 	yych = *p;
 	if (yybm[0+yych] & 8) {
-		goto yy1702;
+		goto yy1714;
 	}
-	if (yych == '-') goto yy1705;
-yy1704:
+	if (yych == '-') goto yy1717;
+yy1716:
 	p = marker;
-	goto yy1697;
-yy1705:
+	goto yy1709;
+yy1717:
 	++p;
 	yych = *p;
-	if (yych == ' ') goto yy1705;
-	if (yych != '-') goto yy1704;
-yy1707:
+	if (yych == ' ') goto yy1717;
+	if (yych != '-') goto yy1716;
+yy1719:
 	++p;
 	yych = *p;
 	if (yybm[0+yych] & 16) {
-		goto yy1707;
+		goto yy1719;
 	}
 	if (yych <= '\n') {
-		if (yych <= 0x08) goto yy1704;
-		if (yych >= '\n') goto yy1711;
+		if (yych <= 0x08) goto yy1716;
+		if (yych >= '\n') goto yy1723;
 	} else {
-		if (yych == '\r') goto yy1711;
-		goto yy1704;
+		if (yych == '\r') goto yy1723;
+		goto yy1716;
 	}
-yy1709:
+yy1721:
 	++p;
 	yych = *p;
 	if (yybm[0+yych] & 32) {
-		goto yy1709;
+		goto yy1721;
 	}
-	if (yych == '\n') goto yy1711;
-	if (yych != '\r') goto yy1704;
-yy1711:
+	if (yych == '\n') goto yy1723;
+	if (yych != '\r') goto yy1716;
+yy1723:
 	++p;
 	{ return (bufsize_t)(p - start); }
-yy1713:
+yy1725:
 	++p;
 	yych = *p;
-	if (yych == ' ') goto yy1713;
-	if (yych != '_') goto yy1704;
-yy1715:
+	if (yych == ' ') goto yy1725;
+	if (yych != '_') goto yy1716;
+yy1727:
 	++p;
 	yych = *p;
-	if (yych == ' ') goto yy1715;
-	if (yych != '_') goto yy1704;
-yy1717:
+	if (yych == ' ') goto yy1727;
+	if (yych != '_') goto yy1716;
+yy1729:
 	++p;
 	yych = *p;
 	if (yybm[0+yych] & 64) {
-		goto yy1717;
+		goto yy1729;
 	}
 	if (yych <= '\n') {
-		if (yych <= 0x08) goto yy1704;
-		if (yych >= '\n') goto yy1721;
+		if (yych <= 0x08) goto yy1716;
+		if (yych >= '\n') goto yy1733;
 	} else {
-		if (yych == '\r') goto yy1721;
-		goto yy1704;
+		if (yych == '\r') goto yy1733;
+		goto yy1716;
 	}
-yy1719:
+yy1731:
 	++p;
 	yych = *p;
 	if (yych <= '\f') {
-		if (yych <= 0x08) goto yy1704;
-		if (yych <= '\t') goto yy1719;
-		if (yych >= '\v') goto yy1704;
+		if (yych <= 0x08) goto yy1716;
+		if (yych <= '\t') goto yy1731;
+		if (yych >= '\v') goto yy1716;
 	} else {
-		if (yych <= '\r') goto yy1721;
-		if (yych == ' ') goto yy1719;
-		goto yy1704;
+		if (yych <= '\r') goto yy1733;
+		if (yych == ' ') goto yy1731;
+		goto yy1716;
 	}
-yy1721:
+yy1733:
 	++p;
 	{ return (bufsize_t)(p - start); }
-yy1723:
+yy1735:
 	++p;
 	yych = *p;
-	if (yych == ' ') goto yy1723;
-	if (yych != '*') goto yy1704;
-yy1725:
+	if (yych == ' ') goto yy1735;
+	if (yych != '*') goto yy1716;
+yy1737:
 	++p;
 	yych = *p;
-	if (yych == ' ') goto yy1725;
-	if (yych != '*') goto yy1704;
-yy1727:
+	if (yych == ' ') goto yy1737;
+	if (yych != '*') goto yy1716;
+yy1739:
 	++p;
 	yych = *p;
 	if (yybm[0+yych] & 128) {
-		goto yy1727;
+		goto yy1739;
 	}
 	if (yych <= '\n') {
-		if (yych <= 0x08) goto yy1704;
-		if (yych >= '\n') goto yy1731;
+		if (yych <= 0x08) goto yy1716;
+		if (yych >= '\n') goto yy1743;
 	} else {
-		if (yych == '\r') goto yy1731;
-		goto yy1704;
+		if (yych == '\r') goto yy1743;
+		goto yy1716;
 	}
-yy1729:
+yy1741:
 	++p;
 	yych = *p;
 	if (yych <= '\f') {
-		if (yych <= 0x08) goto yy1704;
-		if (yych <= '\t') goto yy1729;
-		if (yych >= '\v') goto yy1704;
+		if (yych <= 0x08) goto yy1716;
+		if (yych <= '\t') goto yy1741;
+		if (yych >= '\v') goto yy1716;
 	} else {
-		if (yych <= '\r') goto yy1731;
-		if (yych == ' ') goto yy1729;
-		goto yy1704;
+		if (yych <= '\r') goto yy1743;
+		if (yych == ' ') goto yy1741;
+		goto yy1716;
 	}
-yy1731:
+yy1743:
 	++p;
 	{ return (bufsize_t)(p - start); }
 }
@@ -14509,80 +14509,80 @@ bufsize_t _scan_open_code_fence(const unsigned char *p)
 	};
 	yych = *p;
 	if (yych <= '_') {
-		if (yych != '\n') goto yy1738;
+		if (yych != '\n') goto yy1750;
 	} else {
-		if (yych <= '`') goto yy1736;
-		if (yych == '~') goto yy1737;
-		goto yy1738;
+		if (yych <= '`') goto yy1748;
+		if (yych == '~') goto yy1749;
+		goto yy1750;
 	}
-yy1735:
+yy1747:
 	{ return 0; }
-yy1736:
+yy1748:
 	yych = *(marker = ++p);
-	if (yych == '`') goto yy1747;
-	goto yy1735;
-yy1737:
+	if (yych == '`') goto yy1759;
+	goto yy1747;
+yy1749:
 	yych = *(marker = ++p);
-	if (yych == '~') goto yy1739;
-	goto yy1735;
-yy1738:
+	if (yych == '~') goto yy1751;
+	goto yy1747;
+yy1750:
 	yych = *++p;
-	goto yy1735;
-yy1739:
+	goto yy1747;
+yy1751:
 	yych = *++p;
 	if (yybm[0+yych] & 16) {
-		goto yy1741;
+		goto yy1753;
 	}
-yy1740:
+yy1752:
 	p = marker;
-	goto yy1735;
-yy1741:
+	goto yy1747;
+yy1753:
 	marker = p + 1;
 	++p;
 	yych = *p;
 	if (yybm[0+yych] & 32) {
-		goto yy1743;
+		goto yy1755;
 	}
-	if (yych <= 0x00) goto yy1740;
-	if (yych <= '}') goto yy1745;
-	goto yy1741;
-yy1743:
+	if (yych <= 0x00) goto yy1752;
+	if (yych <= '}') goto yy1757;
+	goto yy1753;
+yy1755:
 	++p;
 	yych = *p;
 	if (yybm[0+yych] & 32) {
-		goto yy1743;
+		goto yy1755;
 	}
-	if (yych <= 0x00) goto yy1740;
-	if (yych >= '~') goto yy1740;
-yy1745:
+	if (yych <= 0x00) goto yy1752;
+	if (yych >= '~') goto yy1752;
+yy1757:
 	++p;
 	p = marker;
 	{ return (bufsize_t)(p - start); }
-yy1747:
+yy1759:
 	yych = *++p;
 	if (yybm[0+yych] & 64) {
-		goto yy1748;
+		goto yy1760;
 	}
-	goto yy1740;
-yy1748:
+	goto yy1752;
+yy1760:
 	marker = p + 1;
 	++p;
 	yych = *p;
 	if (yybm[0+yych] & 128) {
-		goto yy1750;
+		goto yy1762;
 	}
-	if (yych <= 0x00) goto yy1740;
-	if (yych <= '_') goto yy1752;
-	goto yy1748;
-yy1750:
+	if (yych <= 0x00) goto yy1752;
+	if (yych <= '_') goto yy1764;
+	goto yy1760;
+yy1762:
 	++p;
 	yych = *p;
 	if (yybm[0+yych] & 128) {
-		goto yy1750;
+		goto yy1762;
 	}
-	if (yych <= 0x00) goto yy1740;
-	if (yych >= '`') goto yy1740;
-yy1752:
+	if (yych <= 0x00) goto yy1752;
+	if (yych >= '`') goto yy1752;
+yy1764:
 	++p;
 	p = marker;
 	{ return (bufsize_t)(p - start); }
@@ -14634,95 +14634,95 @@ bufsize_t _scan_close_code_fence(const unsigned char *p)
 	};
 	yych = *p;
 	if (yych <= '_') {
-		if (yych != '\n') goto yy1759;
+		if (yych != '\n') goto yy1771;
 	} else {
-		if (yych <= '`') goto yy1757;
-		if (yych == '~') goto yy1758;
-		goto yy1759;
+		if (yych <= '`') goto yy1769;
+		if (yych == '~') goto yy1770;
+		goto yy1771;
 	}
-yy1756:
+yy1768:
 	{ return 0; }
-yy1757:
+yy1769:
 	yych = *(marker = ++p);
-	if (yych == '`') goto yy1768;
-	goto yy1756;
-yy1758:
+	if (yych == '`') goto yy1780;
+	goto yy1768;
+yy1770:
 	yych = *(marker = ++p);
-	if (yych == '~') goto yy1760;
-	goto yy1756;
-yy1759:
+	if (yych == '~') goto yy1772;
+	goto yy1768;
+yy1771:
 	yych = *++p;
-	goto yy1756;
-yy1760:
+	goto yy1768;
+yy1772:
 	yych = *++p;
 	if (yybm[0+yych] & 32) {
-		goto yy1762;
+		goto yy1774;
 	}
-yy1761:
+yy1773:
 	p = marker;
-	goto yy1756;
-yy1762:
+	goto yy1768;
+yy1774:
 	marker = p + 1;
 	++p;
 	yych = *p;
 	if (yybm[0+yych] & 64) {
-		goto yy1764;
+		goto yy1776;
 	}
 	if (yych <= '\f') {
-		if (yych == '\n') goto yy1766;
-		goto yy1761;
+		if (yych == '\n') goto yy1778;
+		goto yy1773;
 	} else {
-		if (yych <= '\r') goto yy1766;
-		if (yych == '~') goto yy1762;
-		goto yy1761;
+		if (yych <= '\r') goto yy1778;
+		if (yych == '~') goto yy1774;
+		goto yy1773;
 	}
-yy1764:
+yy1776:
 	++p;
 	yych = *p;
 	if (yybm[0+yych] & 64) {
-		goto yy1764;
+		goto yy1776;
 	}
-	if (yych == '\n') goto yy1766;
-	if (yych != '\r') goto yy1761;
-yy1766:
+	if (yych == '\n') goto yy1778;
+	if (yych != '\r') goto yy1773;
+yy1778:
 	++p;
 	p = marker;
 	{ return (bufsize_t)(p - start); }
-yy1768:
+yy1780:
 	yych = *++p;
 	if (yybm[0+yych] & 128) {
-		goto yy1769;
+		goto yy1781;
 	}
-	goto yy1761;
-yy1769:
+	goto yy1773;
+yy1781:
 	marker = p + 1;
 	++p;
 	yych = *p;
 	if (yybm[0+yych] & 128) {
-		goto yy1769;
+		goto yy1781;
 	}
 	if (yych <= '\f') {
-		if (yych <= 0x08) goto yy1761;
-		if (yych <= '\t') goto yy1771;
-		if (yych <= '\n') goto yy1773;
-		goto yy1761;
+		if (yych <= 0x08) goto yy1773;
+		if (yych <= '\t') goto yy1783;
+		if (yych <= '\n') goto yy1785;
+		goto yy1773;
 	} else {
-		if (yych <= '\r') goto yy1773;
-		if (yych != ' ') goto yy1761;
+		if (yych <= '\r') goto yy1785;
+		if (yych != ' ') goto yy1773;
 	}
-yy1771:
+yy1783:
 	++p;
 	yych = *p;
 	if (yych <= '\f') {
-		if (yych <= 0x08) goto yy1761;
-		if (yych <= '\t') goto yy1771;
-		if (yych >= '\v') goto yy1761;
+		if (yych <= 0x08) goto yy1773;
+		if (yych <= '\t') goto yy1783;
+		if (yych >= '\v') goto yy1773;
 	} else {
-		if (yych <= '\r') goto yy1773;
-		if (yych == ' ') goto yy1771;
-		goto yy1761;
+		if (yych <= '\r') goto yy1785;
+		if (yych == ' ') goto yy1783;
+		goto yy1773;
 	}
-yy1773:
+yy1785:
 	++p;
 	p = marker;
 	{ return (bufsize_t)(p - start); }
@@ -14740,664 +14740,664 @@ bufsize_t _scan_entity(const unsigned char *p)
 {
 	unsigned char yych;
 	yych = *p;
-	if (yych == '\n') goto yy1777;
-	if (yych == '&') goto yy1778;
-	goto yy1779;
-yy1777:
+	if (yych == '\n') goto yy1789;
+	if (yych == '&') goto yy1790;
+	goto yy1791;
+yy1789:
 	{ return 0; }
-yy1778:
+yy1790:
 	yych = *(marker = ++p);
 	if (yych <= '@') {
-		if (yych == '#') goto yy1780;
-		goto yy1777;
+		if (yych == '#') goto yy1792;
+		goto yy1789;
 	} else {
-		if (yych <= 'Z') goto yy1782;
-		if (yych <= '`') goto yy1777;
-		if (yych <= 'z') goto yy1782;
-		goto yy1777;
+		if (yych <= 'Z') goto yy1794;
+		if (yych <= '`') goto yy1789;
+		if (yych <= 'z') goto yy1794;
+		goto yy1789;
 	}
-yy1779:
+yy1791:
 	yych = *++p;
-	goto yy1777;
-yy1780:
+	goto yy1789;
+yy1792:
 	yych = *++p;
 	if (yych <= 'W') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1817;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1829;
 	} else {
-		if (yych <= 'X') goto yy1816;
-		if (yych == 'x') goto yy1816;
+		if (yych <= 'X') goto yy1828;
+		if (yych == 'x') goto yy1828;
 	}
-yy1781:
+yy1793:
 	p = marker;
-	goto yy1777;
-yy1782:
+	goto yy1789;
+yy1794:
 	yych = *++p;
 	if (yych <= '@') {
-		if (yych <= '/') goto yy1781;
-		if (yych >= ':') goto yy1781;
+		if (yych <= '/') goto yy1793;
+		if (yych >= ':') goto yy1793;
 	} else {
-		if (yych <= 'Z') goto yy1783;
-		if (yych <= '`') goto yy1781;
-		if (yych >= '{') goto yy1781;
+		if (yych <= 'Z') goto yy1795;
+		if (yych <= '`') goto yy1793;
+		if (yych >= '{') goto yy1793;
 	}
-yy1783:
+yy1795:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1786;
-		if (yych <= ':') goto yy1781;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1798;
+		if (yych <= ':') goto yy1793;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-			goto yy1786;
+			if (yych <= '@') goto yy1793;
+			goto yy1798;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych <= 'z') goto yy1786;
-			goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych <= 'z') goto yy1798;
+			goto yy1793;
 		}
 	}
-yy1784:
+yy1796:
 	++p;
 	{ return (bufsize_t)(p - start); }
-yy1786:
+yy1798:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1787;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1799;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1787:
+yy1799:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1788;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1800;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1788:
+yy1800:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1789;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1801;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1789:
+yy1801:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1790;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1802;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1790:
+yy1802:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1791;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1803;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1791:
+yy1803:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1792;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1804;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1792:
+yy1804:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1793;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1805;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1793:
+yy1805:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1794;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1806;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1794:
+yy1806:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1795;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1807;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1795:
+yy1807:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1796;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1808;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1796:
+yy1808:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1797;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1809;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1797:
+yy1809:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1798;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1810;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1798:
+yy1810:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1799;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1811;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1799:
+yy1811:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1800;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1812;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1800:
+yy1812:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1801;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1813;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1801:
+yy1813:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1802;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1814;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1802:
+yy1814:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1803;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1815;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1803:
+yy1815:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1804;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1816;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1804:
+yy1816:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1805;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1817;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1805:
+yy1817:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1806;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1818;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1806:
+yy1818:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1807;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1819;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1807:
+yy1819:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1808;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1820;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1808:
+yy1820:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1809;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1821;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1809:
+yy1821:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1810;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1822;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1810:
+yy1822:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1811;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1823;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1811:
+yy1823:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1812;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1824;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1812:
+yy1824:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1813;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1825;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1813:
+yy1825:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1814;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1826;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1814:
+yy1826:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1815;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1827;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= '{') goto yy1793;
 		}
 	}
-yy1815:
+yy1827:
 	yych = *++p;
-	if (yych == ';') goto yy1784;
-	goto yy1781;
-yy1816:
+	if (yych == ';') goto yy1796;
+	goto yy1793;
+yy1828:
 	yych = *++p;
 	if (yych <= '@') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1824;
-		goto yy1781;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1836;
+		goto yy1793;
 	} else {
-		if (yych <= 'F') goto yy1824;
-		if (yych <= '`') goto yy1781;
-		if (yych <= 'f') goto yy1824;
-		goto yy1781;
+		if (yych <= 'F') goto yy1836;
+		if (yych <= '`') goto yy1793;
+		if (yych <= 'f') goto yy1836;
+		goto yy1793;
 	}
-yy1817:
-	yych = *++p;
-	if (yych <= '/') goto yy1781;
-	if (yych <= '9') goto yy1818;
-	if (yych == ';') goto yy1784;
-	goto yy1781;
-yy1818:
-	yych = *++p;
-	if (yych <= '/') goto yy1781;
-	if (yych <= '9') goto yy1819;
-	if (yych == ';') goto yy1784;
-	goto yy1781;
-yy1819:
-	yych = *++p;
-	if (yych <= '/') goto yy1781;
-	if (yych <= '9') goto yy1820;
-	if (yych == ';') goto yy1784;
-	goto yy1781;
-yy1820:
-	yych = *++p;
-	if (yych <= '/') goto yy1781;
-	if (yych <= '9') goto yy1821;
-	if (yych == ';') goto yy1784;
-	goto yy1781;
-yy1821:
-	yych = *++p;
-	if (yych <= '/') goto yy1781;
-	if (yych <= '9') goto yy1822;
-	if (yych == ';') goto yy1784;
-	goto yy1781;
-yy1822:
+yy1829:
 	yych = *++p;
-	if (yych <= '/') goto yy1781;
-	if (yych <= '9') goto yy1823;
-	if (yych == ';') goto yy1784;
-	goto yy1781;
-yy1823:
+	if (yych <= '/') goto yy1793;
+	if (yych <= '9') goto yy1830;
+	if (yych == ';') goto yy1796;
+	goto yy1793;
+yy1830:
 	yych = *++p;
-	if (yych <= '/') goto yy1781;
-	if (yych <= '9') goto yy1815;
-	if (yych == ';') goto yy1784;
-	goto yy1781;
-yy1824:
+	if (yych <= '/') goto yy1793;
+	if (yych <= '9') goto yy1831;
+	if (yych == ';') goto yy1796;
+	goto yy1793;
+yy1831:
+	yych = *++p;
+	if (yych <= '/') goto yy1793;
+	if (yych <= '9') goto yy1832;
+	if (yych == ';') goto yy1796;
+	goto yy1793;
+yy1832:
+	yych = *++p;
+	if (yych <= '/') goto yy1793;
+	if (yych <= '9') goto yy1833;
+	if (yych == ';') goto yy1796;
+	goto yy1793;
+yy1833:
+	yych = *++p;
+	if (yych <= '/') goto yy1793;
+	if (yych <= '9') goto yy1834;
+	if (yych == ';') goto yy1796;
+	goto yy1793;
+yy1834:
+	yych = *++p;
+	if (yych <= '/') goto yy1793;
+	if (yych <= '9') goto yy1835;
+	if (yych == ';') goto yy1796;
+	goto yy1793;
+yy1835:
+	yych = *++p;
+	if (yych <= '/') goto yy1793;
+	if (yych <= '9') goto yy1827;
+	if (yych == ';') goto yy1796;
+	goto yy1793;
+yy1836:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1825;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1837;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'F') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= 'g') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= 'g') goto yy1793;
 		}
 	}
-yy1825:
+yy1837:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1826;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1838;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'F') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= 'g') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= 'g') goto yy1793;
 		}
 	}
-yy1826:
+yy1838:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1827;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1839;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'F') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= 'g') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= 'g') goto yy1793;
 		}
 	}
-yy1827:
+yy1839:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1828;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1840;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'F') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= 'g') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= 'g') goto yy1793;
 		}
 	}
-yy1828:
+yy1840:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1829;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1841;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'F') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= 'g') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= 'g') goto yy1793;
 		}
 	}
-yy1829:
+yy1841:
 	yych = *++p;
 	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1830;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1842;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'F') {
-			if (yych <= '@') goto yy1781;
+			if (yych <= '@') goto yy1793;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= 'g') goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych >= 'g') goto yy1793;
 		}
 	}
-yy1830:
+yy1842:
 	++p;
 	if ((yych = *p) <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1815;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
+		if (yych <= '/') goto yy1793;
+		if (yych <= '9') goto yy1827;
+		if (yych <= ':') goto yy1793;
+		goto yy1796;
 	} else {
 		if (yych <= 'F') {
-			if (yych <= '@') goto yy1781;
-			goto yy1815;
+			if (yych <= '@') goto yy1793;
+			goto yy1827;
 		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych <= 'f') goto yy1815;
-			goto yy1781;
+			if (yych <= '`') goto yy1793;
+			if (yych <= 'f') goto yy1827;
+			goto yy1793;
 		}
 	}
 }
diff --git a/src/scanners.re b/src/scanners.re
@@ -60,7 +60,7 @@ bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c, 
   htmltag = opentag | closetag | htmlcomment | processinginstruction |
             declaration | cdata;
 
-  in_parens_nosp   = [(] (reg_char|escaped_char)* [)];
+  in_parens_nosp   = [(] (reg_char|escaped_char|[\\])* [)];
 
   in_double_quotes = ["] (escaped_char|[^"\x00])* ["];
   in_single_quotes = ['] (escaped_char|[^'\x00])* ['];
@@ -141,7 +141,7 @@ bufsize_t _scan_link_url(const unsigned char *p)
   const unsigned char *start = p;
 /*!re2c
   [ \r\n]* [<] ([^<>\r\n\\\x00] | escaped_char | [\\])* [>] { return (bufsize_t)(p - start); }
-  [ \r\n]* (reg_char+ | escaped_char | in_parens_nosp)* { return (bufsize_t)(p - start); }
+  [ \r\n]* (reg_char+ | escaped_char | in_parens_nosp | [\\])* { return (bufsize_t)(p - start); }
   .? { return 0; }
 */
 }