| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790 | 
							- /**
 
-  * marked - a markdown parser
 
-  * Copyright (c) 2011-2020, Christopher Jeffrey. (MIT Licensed)
 
-  * https://github.com/markedjs/marked
 
-  */
 
- /**
 
-  * DO NOT EDIT THIS FILE
 
-  * The code in this file is generated from files in ./src/
 
-  */
 
- (function (global, factory) {
 
-   typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
 
-   typeof define === 'function' && define.amd ? define(factory) :
 
-   (global = global || self, global.marked = factory());
 
- }(this, (function () { 'use strict';
 
-   function _defineProperties(target, props) {
 
-     for (var i = 0; i < props.length; i++) {
 
-       var descriptor = props[i];
 
-       descriptor.enumerable = descriptor.enumerable || false;
 
-       descriptor.configurable = true;
 
-       if ("value" in descriptor) descriptor.writable = true;
 
-       Object.defineProperty(target, descriptor.key, descriptor);
 
-     }
 
-   }
 
-   function _createClass(Constructor, protoProps, staticProps) {
 
-     if (protoProps) _defineProperties(Constructor.prototype, protoProps);
 
-     if (staticProps) _defineProperties(Constructor, staticProps);
 
-     return Constructor;
 
-   }
 
-   function createCommonjsModule(fn, module) {
 
-   	return module = { exports: {} }, fn(module, module.exports), module.exports;
 
-   }
 
-   var defaults = createCommonjsModule(function (module) {
 
-     function getDefaults() {
 
-       return {
 
-         baseUrl: null,
 
-         breaks: false,
 
-         gfm: true,
 
-         headerIds: true,
 
-         headerPrefix: '',
 
-         highlight: null,
 
-         langPrefix: 'language-',
 
-         mangle: true,
 
-         pedantic: false,
 
-         renderer: null,
 
-         sanitize: false,
 
-         sanitizer: null,
 
-         silent: false,
 
-         smartLists: false,
 
-         smartypants: false,
 
-         xhtml: false
 
-       };
 
-     }
 
-     function changeDefaults(newDefaults) {
 
-       module.exports.defaults = newDefaults;
 
-     }
 
-     module.exports = {
 
-       defaults: getDefaults(),
 
-       getDefaults: getDefaults,
 
-       changeDefaults: changeDefaults
 
-     };
 
-   });
 
-   var defaults_1 = defaults.defaults;
 
-   var defaults_2 = defaults.getDefaults;
 
-   var defaults_3 = defaults.changeDefaults;
 
-   /**
 
-    * Helpers
 
-    */
 
-   var escapeTest = /[&<>"']/;
 
-   var escapeReplace = /[&<>"']/g;
 
-   var escapeTestNoEncode = /[<>"']|&(?!#?\w+;)/;
 
-   var escapeReplaceNoEncode = /[<>"']|&(?!#?\w+;)/g;
 
-   var escapeReplacements = {
 
-     '&': '&',
 
-     '<': '<',
 
-     '>': '>',
 
-     '"': '"',
 
-     "'": '''
 
-   };
 
-   var getEscapeReplacement = function getEscapeReplacement(ch) {
 
-     return escapeReplacements[ch];
 
-   };
 
-   function escape(html, encode) {
 
-     if (encode) {
 
-       if (escapeTest.test(html)) {
 
-         return html.replace(escapeReplace, getEscapeReplacement);
 
-       }
 
-     } else {
 
-       if (escapeTestNoEncode.test(html)) {
 
-         return html.replace(escapeReplaceNoEncode, getEscapeReplacement);
 
-       }
 
-     }
 
-     return html;
 
-   }
 
-   var unescapeTest = /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;
 
-   function unescape(html) {
 
-     // explicitly match decimal, hex, and named HTML entities
 
-     return html.replace(unescapeTest, function (_, n) {
 
-       n = n.toLowerCase();
 
-       if (n === 'colon') return ':';
 
-       if (n.charAt(0) === '#') {
 
-         return n.charAt(1) === 'x' ? String.fromCharCode(parseInt(n.substring(2), 16)) : String.fromCharCode(+n.substring(1));
 
-       }
 
-       return '';
 
-     });
 
-   }
 
-   var caret = /(^|[^\[])\^/g;
 
-   function edit(regex, opt) {
 
-     regex = regex.source || regex;
 
-     opt = opt || '';
 
-     var obj = {
 
-       replace: function replace(name, val) {
 
-         val = val.source || val;
 
-         val = val.replace(caret, '$1');
 
-         regex = regex.replace(name, val);
 
-         return obj;
 
-       },
 
-       getRegex: function getRegex() {
 
-         return new RegExp(regex, opt);
 
-       }
 
-     };
 
-     return obj;
 
-   }
 
-   var nonWordAndColonTest = /[^\w:]/g;
 
-   var originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;
 
-   function cleanUrl(sanitize, base, href) {
 
-     if (sanitize) {
 
-       var prot;
 
-       try {
 
-         prot = decodeURIComponent(unescape(href)).replace(nonWordAndColonTest, '').toLowerCase();
 
-       } catch (e) {
 
-         return null;
 
-       }
 
-       if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {
 
-         return null;
 
-       }
 
-     }
 
-     if (base && !originIndependentUrl.test(href)) {
 
-       href = resolveUrl(base, href);
 
-     }
 
-     try {
 
-       href = encodeURI(href).replace(/%25/g, '%');
 
-     } catch (e) {
 
-       return null;
 
-     }
 
-     return href;
 
-   }
 
-   var baseUrls = {};
 
-   var justDomain = /^[^:]+:\/*[^/]*$/;
 
-   var protocol = /^([^:]+:)[\s\S]*$/;
 
-   var domain = /^([^:]+:\/*[^/]*)[\s\S]*$/;
 
-   function resolveUrl(base, href) {
 
-     if (!baseUrls[' ' + base]) {
 
-       // we can ignore everything in base after the last slash of its path component,
 
-       // but we might need to add _that_
 
-       // https://tools.ietf.org/html/rfc3986#section-3
 
-       if (justDomain.test(base)) {
 
-         baseUrls[' ' + base] = base + '/';
 
-       } else {
 
-         baseUrls[' ' + base] = rtrim(base, '/', true);
 
-       }
 
-     }
 
-     base = baseUrls[' ' + base];
 
-     var relativeBase = base.indexOf(':') === -1;
 
-     if (href.substring(0, 2) === '//') {
 
-       if (relativeBase) {
 
-         return href;
 
-       }
 
-       return base.replace(protocol, '$1') + href;
 
-     } else if (href.charAt(0) === '/') {
 
-       if (relativeBase) {
 
-         return href;
 
-       }
 
-       return base.replace(domain, '$1') + href;
 
-     } else {
 
-       return base + href;
 
-     }
 
-   }
 
-   var noopTest = {
 
-     exec: function noopTest() {}
 
-   };
 
-   function merge(obj) {
 
-     var i = 1,
 
-         target,
 
-         key;
 
-     for (; i < arguments.length; i++) {
 
-       target = arguments[i];
 
-       for (key in target) {
 
-         if (Object.prototype.hasOwnProperty.call(target, key)) {
 
-           obj[key] = target[key];
 
-         }
 
-       }
 
-     }
 
-     return obj;
 
-   }
 
-   function splitCells(tableRow, count) {
 
-     // ensure that every cell-delimiting pipe has a space
 
-     // before it to distinguish it from an escaped pipe
 
-     var row = tableRow.replace(/\|/g, function (match, offset, str) {
 
-       var escaped = false,
 
-           curr = offset;
 
-       while (--curr >= 0 && str[curr] === '\\') {
 
-         escaped = !escaped;
 
-       }
 
-       if (escaped) {
 
-         // odd number of slashes means | is escaped
 
-         // so we leave it alone
 
-         return '|';
 
-       } else {
 
-         // add space before unescaped |
 
-         return ' |';
 
-       }
 
-     }),
 
-         cells = row.split(/ \|/);
 
-     var i = 0;
 
-     if (cells.length > count) {
 
-       cells.splice(count);
 
-     } else {
 
-       while (cells.length < count) {
 
-         cells.push('');
 
-       }
 
-     }
 
-     for (; i < cells.length; i++) {
 
-       // leading or trailing whitespace is ignored per the gfm spec
 
-       cells[i] = cells[i].trim().replace(/\\\|/g, '|');
 
-     }
 
-     return cells;
 
-   } // Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').
 
-   // /c*$/ is vulnerable to REDOS.
 
-   // invert: Remove suffix of non-c chars instead. Default falsey.
 
-   function rtrim(str, c, invert) {
 
-     var l = str.length;
 
-     if (l === 0) {
 
-       return '';
 
-     } // Length of suffix matching the invert condition.
 
-     var suffLen = 0; // Step left until we fail to match the invert condition.
 
-     while (suffLen < l) {
 
-       var currChar = str.charAt(l - suffLen - 1);
 
-       if (currChar === c && !invert) {
 
-         suffLen++;
 
-       } else if (currChar !== c && invert) {
 
-         suffLen++;
 
-       } else {
 
-         break;
 
-       }
 
-     }
 
-     return str.substr(0, l - suffLen);
 
-   }
 
-   function findClosingBracket(str, b) {
 
-     if (str.indexOf(b[1]) === -1) {
 
-       return -1;
 
-     }
 
-     var l = str.length;
 
-     var level = 0,
 
-         i = 0;
 
-     for (; i < l; i++) {
 
-       if (str[i] === '\\') {
 
-         i++;
 
-       } else if (str[i] === b[0]) {
 
-         level++;
 
-       } else if (str[i] === b[1]) {
 
-         level--;
 
-         if (level < 0) {
 
-           return i;
 
-         }
 
-       }
 
-     }
 
-     return -1;
 
-   }
 
-   function checkSanitizeDeprecation(opt) {
 
-     if (opt && opt.sanitize && !opt.silent) {
 
-       console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');
 
-     }
 
-   }
 
-   var helpers = {
 
-     escape: escape,
 
-     unescape: unescape,
 
-     edit: edit,
 
-     cleanUrl: cleanUrl,
 
-     resolveUrl: resolveUrl,
 
-     noopTest: noopTest,
 
-     merge: merge,
 
-     splitCells: splitCells,
 
-     rtrim: rtrim,
 
-     findClosingBracket: findClosingBracket,
 
-     checkSanitizeDeprecation: checkSanitizeDeprecation
 
-   };
 
-   var noopTest$1 = helpers.noopTest,
 
-       edit$1 = helpers.edit,
 
-       merge$1 = helpers.merge;
 
-   /**
 
-    * Block-Level Grammar
 
-    */
 
-   var block = {
 
-     newline: /^\n+/,
 
-     code: /^( {4}[^\n]+\n*)+/,
 
-     fences: /^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,
 
-     hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,
 
-     heading: /^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,
 
-     blockquote: /^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,
 
-     list: /^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,
 
-     html: '^ {0,3}(?:' // optional indentation
 
-     + '<(script|pre|style)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)' // (1)
 
-     + '|comment[^\\n]*(\\n+|$)' // (2)
 
-     + '|<\\?[\\s\\S]*?\\?>\\n*' // (3)
 
-     + '|<![A-Z][\\s\\S]*?>\\n*' // (4)
 
-     + '|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>\\n*' // (5)
 
-     + '|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:\\n{2,}|$)' // (6)
 
-     + '|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)' // (7) open tag
 
-     + '|</(?!script|pre|style)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)' // (7) closing tag
 
-     + ')',
 
-     def: /^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,
 
-     nptable: noopTest$1,
 
-     table: noopTest$1,
 
-     lheading: /^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,
 
-     // regex template, placeholders will be replaced according to different paragraph
 
-     // interruption rules of commonmark and the original markdown spec:
 
-     _paragraph: /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,
 
-     text: /^[^\n]+/
 
-   };
 
-   block._label = /(?!\s*\])(?:\\[\[\]]|[^\[\]])+/;
 
-   block._title = /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/;
 
-   block.def = edit$1(block.def).replace('label', block._label).replace('title', block._title).getRegex();
 
-   block.bullet = /(?:[*+-]|\d{1,9}\.)/;
 
-   block.item = /^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/;
 
-   block.item = edit$1(block.item, 'gm').replace(/bull/g, block.bullet).getRegex();
 
-   block.list = edit$1(block.list).replace(/bull/g, block.bullet).replace('hr', '\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))').replace('def', '\\n+(?=' + block.def.source + ')').getRegex();
 
-   block._tag = 'address|article|aside|base|basefont|blockquote|body|caption' + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption' + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe' + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option' + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr' + '|track|ul';
 
-   block._comment = /<!--(?!-?>)[\s\S]*?-->/;
 
-   block.html = edit$1(block.html, 'i').replace('comment', block._comment).replace('tag', block._tag).replace('attribute', / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();
 
-   block.paragraph = edit$1(block._paragraph).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs
 
-   .replace('blockquote', ' {0,3}>').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt
 
-   .replace('html', '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)').replace('tag', block._tag) // pars can be interrupted by type (6) html blocks
 
-   .getRegex();
 
-   block.blockquote = edit$1(block.blockquote).replace('paragraph', block.paragraph).getRegex();
 
-   /**
 
-    * Normal Block Grammar
 
-    */
 
-   block.normal = merge$1({}, block);
 
-   /**
 
-    * GFM Block Grammar
 
-    */
 
-   block.gfm = merge$1({}, block.normal, {
 
-     nptable: /^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/,
 
-     table: '^ *\\|(.+)\\n' // Header
 
-     + ' *\\|?( *[-:]+[-| :]*)' // Align
 
-     + '(?:\\n((?:(?!^|>|\\n| |hr|heading|lheading|code|fences|list|html).*(?:\\n|$))*)\\n*|$)' // Cells
 
-   });
 
-   block.gfm.table = edit$1(block.gfm.table).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('lheading', '([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)').replace('blockquote', ' {0,3}>').replace('code', ' {4}[^\\n]').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt
 
-   .replace('html', '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)').replace('tag', block._tag) // pars can be interrupted by type (6) html blocks
 
-   .getRegex();
 
-   /**
 
-    * Pedantic grammar (original John Gruber's loose markdown specification)
 
-    */
 
-   block.pedantic = merge$1({}, block.normal, {
 
-     html: edit$1('^ *(?:comment *(?:\\n|\\s*$)' + '|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)' // closed tag
 
-     + '|<tag(?:"[^"]*"|\'[^\']*\'|\\s[^\'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))').replace('comment', block._comment).replace(/tag/g, '(?!(?:' + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub' + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)' + '\\b)\\w+(?!:|[^\\w\\s@]*@)\\b').getRegex(),
 
-     def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,
 
-     heading: /^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,
 
-     fences: noopTest$1,
 
-     // fences not supported
 
-     paragraph: edit$1(block.normal._paragraph).replace('hr', block.hr).replace('heading', ' *#{1,6} *[^\n]').replace('lheading', block.lheading).replace('blockquote', ' {0,3}>').replace('|fences', '').replace('|list', '').replace('|html', '').getRegex()
 
-   });
 
-   /**
 
-    * Inline-Level Grammar
 
-    */
 
-   var inline = {
 
-     escape: /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,
 
-     autolink: /^<(scheme:[^\s\x00-\x1f<>]*|email)>/,
 
-     url: noopTest$1,
 
-     tag: '^comment' + '|^</[a-zA-Z][\\w:-]*\\s*>' // self-closing tag
 
-     + '|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>' // open tag
 
-     + '|^<\\?[\\s\\S]*?\\?>' // processing instruction, e.g. <?php ?>
 
-     + '|^<![a-zA-Z]+\\s[\\s\\S]*?>' // declaration, e.g. <!DOCTYPE html>
 
-     + '|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>',
 
-     // CDATA section
 
-     link: /^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,
 
-     reflink: /^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,
 
-     nolink: /^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,
 
-     strong: /^__([^\s_])__(?!_)|^\*\*([^\s*])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,
 
-     em: /^_([^\s_])_(?!_)|^\*([^\s*<\[])\*(?!\*)|^_([^\s<][\s\S]*?[^\s_])_(?!_|[^\spunctuation])|^_([^\s_<][\s\S]*?[^\s])_(?!_|[^\spunctuation])|^\*([^\s<"][\s\S]*?[^\s\*])\*(?!\*|[^\spunctuation])|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/,
 
-     code: /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,
 
-     br: /^( {2,}|\\)\n(?!\s*$)/,
 
-     del: noopTest$1,
 
-     text: /^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*]|\b_|$)|[^ ](?= {2,}\n))|(?= {2,}\n))/
 
-   }; // list of punctuation marks from common mark spec
 
-   // without ` and ] to workaround Rule 17 (inline code blocks/links)
 
-   inline._punctuation = '!"#$%&\'()*+,\\-./:;<=>?@\\[^_{|}~';
 
-   inline.em = edit$1(inline.em).replace(/punctuation/g, inline._punctuation).getRegex();
 
-   inline._escapes = /\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g;
 
-   inline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;
 
-   inline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;
 
-   inline.autolink = edit$1(inline.autolink).replace('scheme', inline._scheme).replace('email', inline._email).getRegex();
 
-   inline._attribute = /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/;
 
-   inline.tag = edit$1(inline.tag).replace('comment', block._comment).replace('attribute', inline._attribute).getRegex();
 
-   inline._label = /(?:\[[^\[\]]*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;
 
-   inline._href = /<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/;
 
-   inline._title = /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/;
 
-   inline.link = edit$1(inline.link).replace('label', inline._label).replace('href', inline._href).replace('title', inline._title).getRegex();
 
-   inline.reflink = edit$1(inline.reflink).replace('label', inline._label).getRegex();
 
-   /**
 
-    * Normal Inline Grammar
 
-    */
 
-   inline.normal = merge$1({}, inline);
 
-   /**
 
-    * Pedantic Inline Grammar
 
-    */
 
-   inline.pedantic = merge$1({}, inline.normal, {
 
-     strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
 
-     em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,
 
-     link: edit$1(/^!?\[(label)\]\((.*?)\)/).replace('label', inline._label).getRegex(),
 
-     reflink: edit$1(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace('label', inline._label).getRegex()
 
-   });
 
-   /**
 
-    * GFM Inline Grammar
 
-    */
 
-   inline.gfm = merge$1({}, inline.normal, {
 
-     escape: edit$1(inline.escape).replace('])', '~|])').getRegex(),
 
-     _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,
 
-     url: /^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,
 
-     _backpedal: /(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,
 
-     del: /^~+(?=\S)([\s\S]*?\S)~+/,
 
-     text: /^(`+|[^`])(?:[\s\S]*?(?:(?=[\\<!\[`*~]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))|(?= {2,}\n|[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))/
 
-   });
 
-   inline.gfm.url = edit$1(inline.gfm.url, 'i').replace('email', inline.gfm._extended_email).getRegex();
 
-   /**
 
-    * GFM + Line Breaks Inline Grammar
 
-    */
 
-   inline.breaks = merge$1({}, inline.gfm, {
 
-     br: edit$1(inline.br).replace('{2,}', '*').getRegex(),
 
-     text: edit$1(inline.gfm.text).replace('\\b_', '\\b_| {2,}\\n').replace(/\{2,\}/g, '*').getRegex()
 
-   });
 
-   var rules = {
 
-     block: block,
 
-     inline: inline
 
-   };
 
-   var defaults$1 = defaults.defaults;
 
-   var block$1 = rules.block;
 
-   var rtrim$1 = helpers.rtrim,
 
-       splitCells$1 = helpers.splitCells,
 
-       escape$1 = helpers.escape;
 
-   /**
 
-    * Block Lexer
 
-    */
 
-   var Lexer_1 =
 
-   /*#__PURE__*/
 
-   function () {
 
-     function Lexer(options) {
 
-       this.tokens = [];
 
-       this.tokens.links = Object.create(null);
 
-       this.options = options || defaults$1;
 
-       this.rules = block$1.normal;
 
-       if (this.options.pedantic) {
 
-         this.rules = block$1.pedantic;
 
-       } else if (this.options.gfm) {
 
-         this.rules = block$1.gfm;
 
-       }
 
-     }
 
-     /**
 
-      * Expose Block Rules
 
-      */
 
-     /**
 
-      * Static Lex Method
 
-      */
 
-     Lexer.lex = function lex(src, options) {
 
-       var lexer = new Lexer(options);
 
-       return lexer.lex(src);
 
-     };
 
-     var _proto = Lexer.prototype;
 
-     /**
 
-      * Preprocessing
 
-      */
 
-     _proto.lex = function lex(src) {
 
-       src = src.replace(/\r\n|\r/g, '\n').replace(/\t/g, '    ');
 
-       return this.token(src, true);
 
-     };
 
-     /**
 
-      * Lexing
 
-      */
 
-     _proto.token = function token(src, top) {
 
-       src = src.replace(/^ +$/gm, '');
 
-       var next, loose, cap, bull, b, item, listStart, listItems, t, space, i, tag, l, isordered, istask, ischecked;
 
-       while (src) {
 
-         // newline
 
-         if (cap = this.rules.newline.exec(src)) {
 
-           src = src.substring(cap[0].length);
 
-           if (cap[0].length > 1) {
 
-             this.tokens.push({
 
-               type: 'space'
 
-             });
 
-           }
 
-         } // code
 
-         if (cap = this.rules.code.exec(src)) {
 
-           var lastToken = this.tokens[this.tokens.length - 1];
 
-           src = src.substring(cap[0].length); // An indented code block cannot interrupt a paragraph.
 
-           if (lastToken && lastToken.type === 'paragraph') {
 
-             lastToken.text += '\n' + cap[0].trimRight();
 
-           } else {
 
-             cap = cap[0].replace(/^ {4}/gm, '');
 
-             this.tokens.push({
 
-               type: 'code',
 
-               codeBlockStyle: 'indented',
 
-               text: !this.options.pedantic ? rtrim$1(cap, '\n') : cap
 
-             });
 
-           }
 
-           continue;
 
-         } // fences
 
-         if (cap = this.rules.fences.exec(src)) {
 
-           src = src.substring(cap[0].length);
 
-           this.tokens.push({
 
-             type: 'code',
 
-             lang: cap[2] ? cap[2].trim() : cap[2],
 
-             text: cap[3] || ''
 
-           });
 
-           continue;
 
-         } // heading
 
-         if (cap = this.rules.heading.exec(src)) {
 
-           src = src.substring(cap[0].length);
 
-           this.tokens.push({
 
-             type: 'heading',
 
-             depth: cap[1].length,
 
-             text: cap[2]
 
-           });
 
-           continue;
 
-         } // table no leading pipe (gfm)
 
-         if (cap = this.rules.nptable.exec(src)) {
 
-           item = {
 
-             type: 'table',
 
-             header: splitCells$1(cap[1].replace(/^ *| *\| *$/g, '')),
 
-             align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
 
-             cells: cap[3] ? cap[3].replace(/\n$/, '').split('\n') : []
 
-           };
 
-           if (item.header.length === item.align.length) {
 
-             src = src.substring(cap[0].length);
 
-             for (i = 0; i < item.align.length; i++) {
 
-               if (/^ *-+: *$/.test(item.align[i])) {
 
-                 item.align[i] = 'right';
 
-               } else if (/^ *:-+: *$/.test(item.align[i])) {
 
-                 item.align[i] = 'center';
 
-               } else if (/^ *:-+ *$/.test(item.align[i])) {
 
-                 item.align[i] = 'left';
 
-               } else {
 
-                 item.align[i] = null;
 
-               }
 
-             }
 
-             for (i = 0; i < item.cells.length; i++) {
 
-               item.cells[i] = splitCells$1(item.cells[i], item.header.length);
 
-             }
 
-             this.tokens.push(item);
 
-             continue;
 
-           }
 
-         } // hr
 
-         if (cap = this.rules.hr.exec(src)) {
 
-           src = src.substring(cap[0].length);
 
-           this.tokens.push({
 
-             type: 'hr'
 
-           });
 
-           continue;
 
-         } // blockquote
 
-         if (cap = this.rules.blockquote.exec(src)) {
 
-           src = src.substring(cap[0].length);
 
-           this.tokens.push({
 
-             type: 'blockquote_start'
 
-           });
 
-           cap = cap[0].replace(/^ *> ?/gm, ''); // Pass `top` to keep the current
 
-           // "toplevel" state. This is exactly
 
-           // how markdown.pl works.
 
-           this.token(cap, top);
 
-           this.tokens.push({
 
-             type: 'blockquote_end'
 
-           });
 
-           continue;
 
-         } // list
 
-         if (cap = this.rules.list.exec(src)) {
 
-           src = src.substring(cap[0].length);
 
-           bull = cap[2];
 
-           isordered = bull.length > 1;
 
-           listStart = {
 
-             type: 'list_start',
 
-             ordered: isordered,
 
-             start: isordered ? +bull : '',
 
-             loose: false
 
-           };
 
-           this.tokens.push(listStart); // Get each top-level item.
 
-           cap = cap[0].match(this.rules.item);
 
-           listItems = [];
 
-           next = false;
 
-           l = cap.length;
 
-           i = 0;
 
-           for (; i < l; i++) {
 
-             item = cap[i]; // Remove the list item's bullet
 
-             // so it is seen as the next token.
 
-             space = item.length;
 
-             item = item.replace(/^ *([*+-]|\d+\.) */, ''); // Outdent whatever the
 
-             // list item contains. Hacky.
 
-             if (~item.indexOf('\n ')) {
 
-               space -= item.length;
 
-               item = !this.options.pedantic ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '') : item.replace(/^ {1,4}/gm, '');
 
-             } // Determine whether the next list item belongs here.
 
-             // Backpedal if it does not belong in this list.
 
-             if (i !== l - 1) {
 
-               b = block$1.bullet.exec(cap[i + 1])[0];
 
-               if (bull.length > 1 ? b.length === 1 : b.length > 1 || this.options.smartLists && b !== bull) {
 
-                 src = cap.slice(i + 1).join('\n') + src;
 
-                 i = l - 1;
 
-               }
 
-             } // Determine whether item is loose or not.
 
-             // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/
 
-             // for discount behavior.
 
-             loose = next || /\n\n(?!\s*$)/.test(item);
 
-             if (i !== l - 1) {
 
-               next = item.charAt(item.length - 1) === '\n';
 
-               if (!loose) loose = next;
 
-             }
 
-             if (loose) {
 
-               listStart.loose = true;
 
-             } // Check for task list items
 
-             istask = /^\[[ xX]\] /.test(item);
 
-             ischecked = undefined;
 
-             if (istask) {
 
-               ischecked = item[1] !== ' ';
 
-               item = item.replace(/^\[[ xX]\] +/, '');
 
-             }
 
-             t = {
 
-               type: 'list_item_start',
 
-               task: istask,
 
-               checked: ischecked,
 
-               loose: loose
 
-             };
 
-             listItems.push(t);
 
-             this.tokens.push(t); // Recurse.
 
-             this.token(item, false);
 
-             this.tokens.push({
 
-               type: 'list_item_end'
 
-             });
 
-           }
 
-           if (listStart.loose) {
 
-             l = listItems.length;
 
-             i = 0;
 
-             for (; i < l; i++) {
 
-               listItems[i].loose = true;
 
-             }
 
-           }
 
-           this.tokens.push({
 
-             type: 'list_end'
 
-           });
 
-           continue;
 
-         } // html
 
-         if (cap = this.rules.html.exec(src)) {
 
-           src = src.substring(cap[0].length);
 
-           this.tokens.push({
 
-             type: this.options.sanitize ? 'paragraph' : 'html',
 
-             pre: !this.options.sanitizer && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),
 
-             text: this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape$1(cap[0]) : cap[0]
 
-           });
 
-           continue;
 
-         } // def
 
-         if (top && (cap = this.rules.def.exec(src))) {
 
-           src = src.substring(cap[0].length);
 
-           if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);
 
-           tag = cap[1].toLowerCase().replace(/\s+/g, ' ');
 
-           if (!this.tokens.links[tag]) {
 
-             this.tokens.links[tag] = {
 
-               href: cap[2],
 
-               title: cap[3]
 
-             };
 
-           }
 
-           continue;
 
-         } // table (gfm)
 
-         if (cap = this.rules.table.exec(src)) {
 
-           item = {
 
-             type: 'table',
 
-             header: splitCells$1(cap[1].replace(/^ *| *\| *$/g, '')),
 
-             align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
 
-             cells: cap[3] ? cap[3].replace(/\n$/, '').split('\n') : []
 
-           };
 
-           if (item.header.length === item.align.length) {
 
-             src = src.substring(cap[0].length);
 
-             for (i = 0; i < item.align.length; i++) {
 
-               if (/^ *-+: *$/.test(item.align[i])) {
 
-                 item.align[i] = 'right';
 
-               } else if (/^ *:-+: *$/.test(item.align[i])) {
 
-                 item.align[i] = 'center';
 
-               } else if (/^ *:-+ *$/.test(item.align[i])) {
 
-                 item.align[i] = 'left';
 
-               } else {
 
-                 item.align[i] = null;
 
-               }
 
-             }
 
-             for (i = 0; i < item.cells.length; i++) {
 
-               item.cells[i] = splitCells$1(item.cells[i].replace(/^ *\| *| *\| *$/g, ''), item.header.length);
 
-             }
 
-             this.tokens.push(item);
 
-             continue;
 
-           }
 
-         } // lheading
 
-         if (cap = this.rules.lheading.exec(src)) {
 
-           src = src.substring(cap[0].length);
 
-           this.tokens.push({
 
-             type: 'heading',
 
-             depth: cap[2].charAt(0) === '=' ? 1 : 2,
 
-             text: cap[1]
 
-           });
 
-           continue;
 
-         } // top-level paragraph
 
-         if (top && (cap = this.rules.paragraph.exec(src))) {
 
-           src = src.substring(cap[0].length);
 
-           this.tokens.push({
 
-             type: 'paragraph',
 
-             text: cap[1].charAt(cap[1].length - 1) === '\n' ? cap[1].slice(0, -1) : cap[1]
 
-           });
 
-           continue;
 
-         } // text
 
-         if (cap = this.rules.text.exec(src)) {
 
-           // Top-level should never reach here.
 
-           src = src.substring(cap[0].length);
 
-           this.tokens.push({
 
-             type: 'text',
 
-             text: cap[0]
 
-           });
 
-           continue;
 
-         }
 
-         if (src) {
 
-           throw new Error('Infinite loop on byte: ' + src.charCodeAt(0));
 
-         }
 
-       }
 
-       return this.tokens;
 
-     };
 
-     _createClass(Lexer, null, [{
 
-       key: "rules",
 
-       get: function get() {
 
-         return block$1;
 
-       }
 
-     }]);
 
-     return Lexer;
 
-   }();
 
-   var defaults$2 = defaults.defaults;
 
-   var cleanUrl$1 = helpers.cleanUrl,
 
-       escape$2 = helpers.escape;
 
-   /**
 
-    * Renderer
 
-    */
 
-   var Renderer_1 =
 
-   /*#__PURE__*/
 
-   function () {
 
-     function Renderer(options) {
 
-       this.options = options || defaults$2;
 
-     }
 
-     var _proto = Renderer.prototype;
 
-     _proto.code = function code(_code, infostring, escaped) {
 
-       var lang = (infostring || '').match(/\S*/)[0];
 
-       if (this.options.highlight) {
 
-         var out = this.options.highlight(_code, lang);
 
-         if (out != null && out !== _code) {
 
-           escaped = true;
 
-           _code = out;
 
-         }
 
-       }
 
-       if (!lang) {
 
-         return '<pre><code>' + (escaped ? _code : escape$2(_code, true)) + '</code></pre>';
 
-       }
 
-       return '<pre><code class="' + this.options.langPrefix + escape$2(lang, true) + '">' + (escaped ? _code : escape$2(_code, true)) + '</code></pre>\n';
 
-     };
 
-     _proto.blockquote = function blockquote(quote) {
 
-       return '<blockquote>\n' + quote + '</blockquote>\n';
 
-     };
 
-     _proto.html = function html(_html) {
 
-       return _html;
 
-     };
 
-     _proto.heading = function heading(text, level, raw, slugger) {
 
-       if (this.options.headerIds) {
 
-         return '<h' + level + ' id="' + this.options.headerPrefix + slugger.slug(raw) + '">' + text + '</h' + level + '>\n';
 
-       } // ignore IDs
 
-       return '<h' + level + '>' + text + '</h' + level + '>\n';
 
-     };
 
-     _proto.hr = function hr() {
 
-       return this.options.xhtml ? '<hr/>\n' : '<hr>\n';
 
-     };
 
-     _proto.list = function list(body, ordered, start) {
 
-       var type = ordered ? 'ol' : 'ul',
 
-           startatt = ordered && start !== 1 ? ' start="' + start + '"' : '';
 
-       return '<' + type + startatt + '>\n' + body + '</' + type + '>\n';
 
-     };
 
-     _proto.listitem = function listitem(text) {
 
-       return '<li>' + text + '</li>\n';
 
-     };
 
-     _proto.checkbox = function checkbox(checked) {
 
-       return '<input ' + (checked ? 'checked="" ' : '') + 'disabled="" type="checkbox"' + (this.options.xhtml ? ' /' : '') + '> ';
 
-     };
 
-     _proto.paragraph = function paragraph(text) {
 
-       return '<p>' + text + '</p>\n';
 
-     };
 
-     _proto.table = function table(header, body) {
 
-       if (body) body = '<tbody>' + body + '</tbody>';
 
-       return '<table>\n' + '<thead>\n' + header + '</thead>\n' + body + '</table>\n';
 
-     };
 
-     _proto.tablerow = function tablerow(content) {
 
-       return '<tr>\n' + content + '</tr>\n';
 
-     };
 
-     _proto.tablecell = function tablecell(content, flags) {
 
-       var type = flags.header ? 'th' : 'td';
 
-       var tag = flags.align ? '<' + type + ' align="' + flags.align + '">' : '<' + type + '>';
 
-       return tag + content + '</' + type + '>\n';
 
-     };
 
-     // span level renderer
 
-     _proto.strong = function strong(text) {
 
-       return '<strong>' + text + '</strong>';
 
-     };
 
-     _proto.em = function em(text) {
 
-       return '<em>' + text + '</em>';
 
-     };
 
-     _proto.codespan = function codespan(text) {
 
-       return '<code>' + text + '</code>';
 
-     };
 
-     _proto.br = function br() {
 
-       return this.options.xhtml ? '<br/>' : '<br>';
 
-     };
 
-     _proto.del = function del(text) {
 
-       return '<del>' + text + '</del>';
 
-     };
 
-     _proto.link = function link(href, title, text) {
 
-       href = cleanUrl$1(this.options.sanitize, this.options.baseUrl, href);
 
-       if (href === null) {
 
-         return text;
 
-       }
 
-       var out = '<a href="' + escape$2(href) + '"';
 
-       if (title) {
 
-         out += ' title="' + title + '"';
 
-       }
 
-       out += '>' + text + '</a>';
 
-       return out;
 
-     };
 
-     _proto.image = function image(href, title, text) {
 
-       href = cleanUrl$1(this.options.sanitize, this.options.baseUrl, href);
 
-       if (href === null) {
 
-         return text;
 
-       }
 
-       var out = '<img src="' + href + '" alt="' + text + '"';
 
-       if (title) {
 
-         out += ' title="' + title + '"';
 
-       }
 
-       out += this.options.xhtml ? '/>' : '>';
 
-       return out;
 
-     };
 
-     _proto.text = function text(_text) {
 
-       return _text;
 
-     };
 
-     return Renderer;
 
-   }();
 
-   /**
 
-    * Slugger generates header id
 
-    */
 
-   var Slugger_1 =
 
-   /*#__PURE__*/
 
-   function () {
 
-     function Slugger() {
 
-       this.seen = {};
 
-     }
 
-     /**
 
-      * Convert string to unique id
 
-      */
 
-     var _proto = Slugger.prototype;
 
-     _proto.slug = function slug(value) {
 
-       var slug = value.toLowerCase().trim().replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g, '').replace(/\s/g, '-');
 
-       if (this.seen.hasOwnProperty(slug)) {
 
-         var originalSlug = slug;
 
-         do {
 
-           this.seen[originalSlug]++;
 
-           slug = originalSlug + '-' + this.seen[originalSlug];
 
-         } while (this.seen.hasOwnProperty(slug));
 
-       }
 
-       this.seen[slug] = 0;
 
-       return slug;
 
-     };
 
-     return Slugger;
 
-   }();
 
-   var defaults$3 = defaults.defaults;
 
-   var inline$1 = rules.inline;
 
-   var findClosingBracket$1 = helpers.findClosingBracket,
 
-       escape$3 = helpers.escape;
 
-   /**
 
-    * Inline Lexer & Compiler
 
-    */
 
-   var InlineLexer_1 =
 
-   /*#__PURE__*/
 
-   function () {
 
-     function InlineLexer(links, options) {
 
-       this.options = options || defaults$3;
 
-       this.links = links;
 
-       this.rules = inline$1.normal;
 
-       this.options.renderer = this.options.renderer || new Renderer_1();
 
-       this.renderer = this.options.renderer;
 
-       this.renderer.options = this.options;
 
-       if (!this.links) {
 
-         throw new Error('Tokens array requires a `links` property.');
 
-       }
 
-       if (this.options.pedantic) {
 
-         this.rules = inline$1.pedantic;
 
-       } else if (this.options.gfm) {
 
-         if (this.options.breaks) {
 
-           this.rules = inline$1.breaks;
 
-         } else {
 
-           this.rules = inline$1.gfm;
 
-         }
 
-       }
 
-     }
 
-     /**
 
-      * Expose Inline Rules
 
-      */
 
-     /**
 
-      * Static Lexing/Compiling Method
 
-      */
 
-     InlineLexer.output = function output(src, links, options) {
 
-       var inline = new InlineLexer(links, options);
 
-       return inline.output(src);
 
-     }
 
-     /**
 
-      * Lexing/Compiling
 
-      */
 
-     ;
 
-     var _proto = InlineLexer.prototype;
 
-     _proto.output = function output(src) {
 
-       var out = '',
 
-           link,
 
-           text,
 
-           href,
 
-           title,
 
-           cap,
 
-           prevCapZero;
 
-       while (src) {
 
-         // escape
 
-         if (cap = this.rules.escape.exec(src)) {
 
-           src = src.substring(cap[0].length);
 
-           out += escape$3(cap[1]);
 
-           continue;
 
-         } // tag
 
-         if (cap = this.rules.tag.exec(src)) {
 
-           if (!this.inLink && /^<a /i.test(cap[0])) {
 
-             this.inLink = true;
 
-           } else if (this.inLink && /^<\/a>/i.test(cap[0])) {
 
-             this.inLink = false;
 
-           }
 
-           if (!this.inRawBlock && /^<(pre|code|kbd|script)(\s|>)/i.test(cap[0])) {
 
-             this.inRawBlock = true;
 
-           } else if (this.inRawBlock && /^<\/(pre|code|kbd|script)(\s|>)/i.test(cap[0])) {
 
-             this.inRawBlock = false;
 
-           }
 
-           src = src.substring(cap[0].length);
 
-           out += this.renderer.html(this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape$3(cap[0]) : cap[0]);
 
-           continue;
 
-         } // link
 
-         if (cap = this.rules.link.exec(src)) {
 
-           var lastParenIndex = findClosingBracket$1(cap[2], '()');
 
-           if (lastParenIndex > -1) {
 
-             var start = cap[0].indexOf('!') === 0 ? 5 : 4;
 
-             var linkLen = start + cap[1].length + lastParenIndex;
 
-             cap[2] = cap[2].substring(0, lastParenIndex);
 
-             cap[0] = cap[0].substring(0, linkLen).trim();
 
-             cap[3] = '';
 
-           }
 
-           src = src.substring(cap[0].length);
 
-           this.inLink = true;
 
-           href = cap[2];
 
-           if (this.options.pedantic) {
 
-             link = /^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(href);
 
-             if (link) {
 
-               href = link[1];
 
-               title = link[3];
 
-             } else {
 
-               title = '';
 
-             }
 
-           } else {
 
-             title = cap[3] ? cap[3].slice(1, -1) : '';
 
-           }
 
-           href = href.trim().replace(/^<([\s\S]*)>$/, '$1');
 
-           out += this.outputLink(cap, {
 
-             href: InlineLexer.escapes(href),
 
-             title: InlineLexer.escapes(title)
 
-           });
 
-           this.inLink = false;
 
-           continue;
 
-         } // reflink, nolink
 
-         if ((cap = this.rules.reflink.exec(src)) || (cap = this.rules.nolink.exec(src))) {
 
-           src = src.substring(cap[0].length);
 
-           link = (cap[2] || cap[1]).replace(/\s+/g, ' ');
 
-           link = this.links[link.toLowerCase()];
 
-           if (!link || !link.href) {
 
-             out += cap[0].charAt(0);
 
-             src = cap[0].substring(1) + src;
 
-             continue;
 
-           }
 
-           this.inLink = true;
 
-           out += this.outputLink(cap, link);
 
-           this.inLink = false;
 
-           continue;
 
-         } // strong
 
-         if (cap = this.rules.strong.exec(src)) {
 
-           src = src.substring(cap[0].length);
 
-           out += this.renderer.strong(this.output(cap[4] || cap[3] || cap[2] || cap[1]));
 
-           continue;
 
-         } // em
 
-         if (cap = this.rules.em.exec(src)) {
 
-           src = src.substring(cap[0].length);
 
-           out += this.renderer.em(this.output(cap[6] || cap[5] || cap[4] || cap[3] || cap[2] || cap[1]));
 
-           continue;
 
-         } // code
 
-         if (cap = this.rules.code.exec(src)) {
 
-           src = src.substring(cap[0].length);
 
-           out += this.renderer.codespan(escape$3(cap[2].trim(), true));
 
-           continue;
 
-         } // br
 
-         if (cap = this.rules.br.exec(src)) {
 
-           src = src.substring(cap[0].length);
 
-           out += this.renderer.br();
 
-           continue;
 
-         } // del (gfm)
 
-         if (cap = this.rules.del.exec(src)) {
 
-           src = src.substring(cap[0].length);
 
-           out += this.renderer.del(this.output(cap[1]));
 
-           continue;
 
-         } // autolink
 
-         if (cap = this.rules.autolink.exec(src)) {
 
-           src = src.substring(cap[0].length);
 
-           if (cap[2] === '@') {
 
-             text = escape$3(this.mangle(cap[1]));
 
-             href = 'mailto:' + text;
 
-           } else {
 
-             text = escape$3(cap[1]);
 
-             href = text;
 
-           }
 
-           out += this.renderer.link(href, null, text);
 
-           continue;
 
-         } // url (gfm)
 
-         if (!this.inLink && (cap = this.rules.url.exec(src))) {
 
-           if (cap[2] === '@') {
 
-             text = escape$3(cap[0]);
 
-             href = 'mailto:' + text;
 
-           } else {
 
-             // do extended autolink path validation
 
-             do {
 
-               prevCapZero = cap[0];
 
-               cap[0] = this.rules._backpedal.exec(cap[0])[0];
 
-             } while (prevCapZero !== cap[0]);
 
-             text = escape$3(cap[0]);
 
-             if (cap[1] === 'www.') {
 
-               href = 'http://' + text;
 
-             } else {
 
-               href = text;
 
-             }
 
-           }
 
-           src = src.substring(cap[0].length);
 
-           out += this.renderer.link(href, null, text);
 
-           continue;
 
-         } // text
 
-         if (cap = this.rules.text.exec(src)) {
 
-           src = src.substring(cap[0].length);
 
-           if (this.inRawBlock) {
 
-             out += this.renderer.text(this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape$3(cap[0]) : cap[0]);
 
-           } else {
 
-             out += this.renderer.text(escape$3(this.smartypants(cap[0])));
 
-           }
 
-           continue;
 
-         }
 
-         if (src) {
 
-           throw new Error('Infinite loop on byte: ' + src.charCodeAt(0));
 
-         }
 
-       }
 
-       return out;
 
-     };
 
-     InlineLexer.escapes = function escapes(text) {
 
-       return text ? text.replace(InlineLexer.rules._escapes, '$1') : text;
 
-     }
 
-     /**
 
-      * Compile Link
 
-      */
 
-     ;
 
-     _proto.outputLink = function outputLink(cap, link) {
 
-       var href = link.href,
 
-           title = link.title ? escape$3(link.title) : null;
 
-       return cap[0].charAt(0) !== '!' ? this.renderer.link(href, title, this.output(cap[1])) : this.renderer.image(href, title, escape$3(cap[1]));
 
-     }
 
-     /**
 
-      * Smartypants Transformations
 
-      */
 
-     ;
 
-     _proto.smartypants = function smartypants(text) {
 
-       if (!this.options.smartypants) return text;
 
-       return text // em-dashes
 
-       .replace(/---/g, "\u2014") // en-dashes
 
-       .replace(/--/g, "\u2013") // opening singles
 
-       .replace(/(^|[-\u2014/(\[{"\s])'/g, "$1\u2018") // closing singles & apostrophes
 
-       .replace(/'/g, "\u2019") // opening doubles
 
-       .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, "$1\u201C") // closing doubles
 
-       .replace(/"/g, "\u201D") // ellipses
 
-       .replace(/\.{3}/g, "\u2026");
 
-     }
 
-     /**
 
-      * Mangle Links
 
-      */
 
-     ;
 
-     _proto.mangle = function mangle(text) {
 
-       if (!this.options.mangle) return text;
 
-       var l = text.length;
 
-       var out = '',
 
-           i = 0,
 
-           ch;
 
-       for (; i < l; i++) {
 
-         ch = text.charCodeAt(i);
 
-         if (Math.random() > 0.5) {
 
-           ch = 'x' + ch.toString(16);
 
-         }
 
-         out += '&#' + ch + ';';
 
-       }
 
-       return out;
 
-     };
 
-     _createClass(InlineLexer, null, [{
 
-       key: "rules",
 
-       get: function get() {
 
-         return inline$1;
 
-       }
 
-     }]);
 
-     return InlineLexer;
 
-   }();
 
-   /**
 
-    * TextRenderer
 
-    * returns only the textual part of the token
 
-    */
 
-   var TextRenderer_1 =
 
-   /*#__PURE__*/
 
-   function () {
 
-     function TextRenderer() {}
 
-     var _proto = TextRenderer.prototype;
 
-     // no need for block level renderers
 
-     _proto.strong = function strong(text) {
 
-       return text;
 
-     };
 
-     _proto.em = function em(text) {
 
-       return text;
 
-     };
 
-     _proto.codespan = function codespan(text) {
 
-       return text;
 
-     };
 
-     _proto.del = function del(text) {
 
-       return text;
 
-     };
 
-     _proto.text = function text(_text) {
 
-       return _text;
 
-     };
 
-     _proto.link = function link(href, title, text) {
 
-       return '' + text;
 
-     };
 
-     _proto.image = function image(href, title, text) {
 
-       return '' + text;
 
-     };
 
-     _proto.br = function br() {
 
-       return '';
 
-     };
 
-     return TextRenderer;
 
-   }();
 
-   var defaults$4 = defaults.defaults;
 
-   var merge$2 = helpers.merge,
 
-       unescape$1 = helpers.unescape;
 
-   /**
 
-    * Parsing & Compiling
 
-    */
 
-   var Parser_1 =
 
-   /*#__PURE__*/
 
-   function () {
 
-     function Parser(options) {
 
-       this.tokens = [];
 
-       this.token = null;
 
-       this.options = options || defaults$4;
 
-       this.options.renderer = this.options.renderer || new Renderer_1();
 
-       this.renderer = this.options.renderer;
 
-       this.renderer.options = this.options;
 
-       this.slugger = new Slugger_1();
 
-     }
 
-     /**
 
-      * Static Parse Method
 
-      */
 
-     Parser.parse = function parse(tokens, options) {
 
-       var parser = new Parser(options);
 
-       return parser.parse(tokens);
 
-     };
 
-     var _proto = Parser.prototype;
 
-     /**
 
-      * Parse Loop
 
-      */
 
-     _proto.parse = function parse(tokens) {
 
-       this.inline = new InlineLexer_1(tokens.links, this.options); // use an InlineLexer with a TextRenderer to extract pure text
 
-       this.inlineText = new InlineLexer_1(tokens.links, merge$2({}, this.options, {
 
-         renderer: new TextRenderer_1()
 
-       }));
 
-       this.tokens = tokens.reverse();
 
-       var out = '';
 
-       while (this.next()) {
 
-         out += this.tok();
 
-       }
 
-       return out;
 
-     };
 
-     /**
 
-      * Next Token
 
-      */
 
-     _proto.next = function next() {
 
-       this.token = this.tokens.pop();
 
-       return this.token;
 
-     };
 
-     /**
 
-      * Preview Next Token
 
-      */
 
-     _proto.peek = function peek() {
 
-       return this.tokens[this.tokens.length - 1] || 0;
 
-     };
 
-     /**
 
-      * Parse Text Tokens
 
-      */
 
-     _proto.parseText = function parseText() {
 
-       var body = this.token.text;
 
-       while (this.peek().type === 'text') {
 
-         body += '\n' + this.next().text;
 
-       }
 
-       return this.inline.output(body);
 
-     };
 
-     /**
 
-      * Parse Current Token
 
-      */
 
-     _proto.tok = function tok() {
 
-       var body = '';
 
-       switch (this.token.type) {
 
-         case 'space':
 
-           {
 
-             return '';
 
-           }
 
-         case 'hr':
 
-           {
 
-             return this.renderer.hr();
 
-           }
 
-         case 'heading':
 
-           {
 
-             return this.renderer.heading(this.inline.output(this.token.text), this.token.depth, unescape$1(this.inlineText.output(this.token.text)), this.slugger);
 
-           }
 
-         case 'code':
 
-           {
 
-             return this.renderer.code(this.token.text, this.token.lang, this.token.escaped);
 
-           }
 
-         case 'table':
 
-           {
 
-             var header = '',
 
-                 i,
 
-                 row,
 
-                 cell,
 
-                 j; // header
 
-             cell = '';
 
-             for (i = 0; i < this.token.header.length; i++) {
 
-               cell += this.renderer.tablecell(this.inline.output(this.token.header[i]), {
 
-                 header: true,
 
-                 align: this.token.align[i]
 
-               });
 
-             }
 
-             header += this.renderer.tablerow(cell);
 
-             for (i = 0; i < this.token.cells.length; i++) {
 
-               row = this.token.cells[i];
 
-               cell = '';
 
-               for (j = 0; j < row.length; j++) {
 
-                 cell += this.renderer.tablecell(this.inline.output(row[j]), {
 
-                   header: false,
 
-                   align: this.token.align[j]
 
-                 });
 
-               }
 
-               body += this.renderer.tablerow(cell);
 
-             }
 
-             return this.renderer.table(header, body);
 
-           }
 
-         case 'blockquote_start':
 
-           {
 
-             body = '';
 
-             while (this.next().type !== 'blockquote_end') {
 
-               body += this.tok();
 
-             }
 
-             return this.renderer.blockquote(body);
 
-           }
 
-         case 'list_start':
 
-           {
 
-             body = '';
 
-             var ordered = this.token.ordered,
 
-                 start = this.token.start;
 
-             while (this.next().type !== 'list_end') {
 
-               body += this.tok();
 
-             }
 
-             return this.renderer.list(body, ordered, start);
 
-           }
 
-         case 'list_item_start':
 
-           {
 
-             body = '';
 
-             var loose = this.token.loose;
 
-             var checked = this.token.checked;
 
-             var task = this.token.task;
 
-             if (this.token.task) {
 
-               if (loose) {
 
-                 if (this.peek().type === 'text') {
 
-                   var nextToken = this.peek();
 
-                   nextToken.text = this.renderer.checkbox(checked) + ' ' + nextToken.text;
 
-                 } else {
 
-                   this.tokens.push({
 
-                     type: 'text',
 
-                     text: this.renderer.checkbox(checked)
 
-                   });
 
-                 }
 
-               } else {
 
-                 body += this.renderer.checkbox(checked);
 
-               }
 
-             }
 
-             while (this.next().type !== 'list_item_end') {
 
-               body += !loose && this.token.type === 'text' ? this.parseText() : this.tok();
 
-             }
 
-             return this.renderer.listitem(body, task, checked);
 
-           }
 
-         case 'html':
 
-           {
 
-             // TODO parse inline content if parameter markdown=1
 
-             return this.renderer.html(this.token.text);
 
-           }
 
-         case 'paragraph':
 
-           {
 
-             return this.renderer.paragraph(this.inline.output(this.token.text));
 
-           }
 
-         case 'text':
 
-           {
 
-             return this.renderer.paragraph(this.parseText());
 
-           }
 
-         default:
 
-           {
 
-             var errMsg = 'Token with "' + this.token.type + '" type was not found.';
 
-             if (this.options.silent) {
 
-               console.log(errMsg);
 
-             } else {
 
-               throw new Error(errMsg);
 
-             }
 
-           }
 
-       }
 
-     };
 
-     return Parser;
 
-   }();
 
-   var merge$3 = helpers.merge,
 
-       checkSanitizeDeprecation$1 = helpers.checkSanitizeDeprecation,
 
-       escape$4 = helpers.escape;
 
-   var getDefaults = defaults.getDefaults,
 
-       changeDefaults = defaults.changeDefaults,
 
-       defaults$5 = defaults.defaults;
 
-   /**
 
-    * Marked
 
-    */
 
-   function marked(src, opt, callback) {
 
-     // throw error in case of non string input
 
-     if (typeof src === 'undefined' || src === null) {
 
-       throw new Error('marked(): input parameter is undefined or null');
 
-     }
 
-     if (typeof src !== 'string') {
 
-       throw new Error('marked(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');
 
-     }
 
-     if (callback || typeof opt === 'function') {
 
-       var _ret = function () {
 
-         if (!callback) {
 
-           callback = opt;
 
-           opt = null;
 
-         }
 
-         opt = merge$3({}, marked.defaults, opt || {});
 
-         checkSanitizeDeprecation$1(opt);
 
-         var highlight = opt.highlight;
 
-         var tokens,
 
-             pending,
 
-             i = 0;
 
-         try {
 
-           tokens = Lexer_1.lex(src, opt);
 
-         } catch (e) {
 
-           return {
 
-             v: callback(e)
 
-           };
 
-         }
 
-         pending = tokens.length;
 
-         var done = function done(err) {
 
-           if (err) {
 
-             opt.highlight = highlight;
 
-             return callback(err);
 
-           }
 
-           var out;
 
-           try {
 
-             out = Parser_1.parse(tokens, opt);
 
-           } catch (e) {
 
-             err = e;
 
-           }
 
-           opt.highlight = highlight;
 
-           return err ? callback(err) : callback(null, out);
 
-         };
 
-         if (!highlight || highlight.length < 3) {
 
-           return {
 
-             v: done()
 
-           };
 
-         }
 
-         delete opt.highlight;
 
-         if (!pending) return {
 
-           v: done()
 
-         };
 
-         for (; i < tokens.length; i++) {
 
-           (function (token) {
 
-             if (token.type !== 'code') {
 
-               return --pending || done();
 
-             }
 
-             return highlight(token.text, token.lang, function (err, code) {
 
-               if (err) return done(err);
 
-               if (code == null || code === token.text) {
 
-                 return --pending || done();
 
-               }
 
-               token.text = code;
 
-               token.escaped = true;
 
-               --pending || done();
 
-             });
 
-           })(tokens[i]);
 
-         }
 
-         return {
 
-           v: void 0
 
-         };
 
-       }();
 
-       if (typeof _ret === "object") return _ret.v;
 
-     }
 
-     try {
 
-       opt = merge$3({}, marked.defaults, opt || {});
 
-       checkSanitizeDeprecation$1(opt);
 
-       return Parser_1.parse(Lexer_1.lex(src, opt), opt);
 
-     } catch (e) {
 
-       e.message += '\nPlease report this to https://github.com/markedjs/marked.';
 
-       if ((opt || marked.defaults).silent) {
 
-         return '<p>An error occurred:</p><pre>' + escape$4(e.message + '', true) + '</pre>';
 
-       }
 
-       throw e;
 
-     }
 
-   }
 
-   /**
 
-    * Options
 
-    */
 
-   marked.options = marked.setOptions = function (opt) {
 
-     merge$3(marked.defaults, opt);
 
-     changeDefaults(marked.defaults);
 
-     return marked;
 
-   };
 
-   marked.getDefaults = getDefaults;
 
-   marked.defaults = defaults$5;
 
-   /**
 
-    * Expose
 
-    */
 
-   marked.Parser = Parser_1;
 
-   marked.parser = Parser_1.parse;
 
-   marked.Renderer = Renderer_1;
 
-   marked.TextRenderer = TextRenderer_1;
 
-   marked.Lexer = Lexer_1;
 
-   marked.lexer = Lexer_1.lex;
 
-   marked.InlineLexer = InlineLexer_1;
 
-   marked.inlineLexer = InlineLexer_1.output;
 
-   marked.Slugger = Slugger_1;
 
-   marked.parse = marked;
 
-   var marked_1 = marked;
 
-   return marked_1;
 
- })));
 
 
  |