{"version":3,"sources":["webpack:///./node_modules/vfile/core.js","webpack:///./node_modules/unist-util-stringify-position/index.js","webpack:///./node_modules/remark-parse/lib/defaults.js","webpack:///./node_modules/unified/index.js","webpack:///./node_modules/is-alphabetical/index.js","webpack:///./node_modules/remark-parse/lib/tokenize/auto-link.js","webpack:///./node_modules/path-browserify/index.js","webpack:///./node_modules/trim-trailing-lines/index.js","webpack:///./node_modules/react-markdown/lib/renderers.js","webpack:///./node_modules/replace-ext/index.js","webpack:///./node_modules/remark-parse/lib/tokenize/break.js","webpack:///./node_modules/state-toggle/index.js","webpack:///./node_modules/unherit/index.js","webpack:///./node_modules/extend/index.js","webpack:///./node_modules/vfile-location/index.js","webpack:///./node_modules/react-markdown/lib/wrap-table-rows.js","webpack:///./node_modules/remark-parse/lib/tokenizer.js","webpack:///./node_modules/is-buffer/index.js","webpack:///./node_modules/remark-parse/lib/locate/strong.js","webpack:///./node_modules/remark-parse/lib/locate/code-inline.js","webpack:///./node_modules/remark-parse/lib/locate/emphasis.js","webpack:///./node_modules/trough/wrap.js","webpack:///./node_modules/remark-parse/lib/unescape.js","webpack:///./node_modules/remark-parse/lib/tokenize/newline.js","webpack:///./node_modules/remark-parse/lib/locate/link.js","webpack:///./node_modules/vfile/index.js","webpack:///./node_modules/bail/index.js","webpack:///./node_modules/remark-parse/lib/tokenize/code-fenced.js","webpack:///./node_modules/remark-parse/lib/tokenize/definition.js","webpack:///./node_modules/is-whitespace-character/index.js","webpack:///./node_modules/x-is-string/index.js","webpack:///./node_modules/react-markdown/lib/get-definitions.js","webpack:///./node_modules/react-markdown/lib/react-markdown.js","webpack:///./node_modules/is-alphanumerical/index.js","webpack:///./node_modules/remark-parse/lib/tokenize/code-inline.js","webpack:///./node_modules/collapse-white-space/index.js","webpack:///./node_modules/remark-parse/lib/tokenize/code-indented.js","webpack:///./node_modules/remark-parse/lib/util/interrupt.js","webpack:///./node_modules/remark-parse/lib/tokenize/strong.js","webpack:///./node_modules/remark-parse/lib/tokenize/heading-atx.js","webpack:///./node_modules/markdown-escapes/index.js","webpack:///./node_modules/remark-parse/lib/locate/delete.js","webpack:///./node_modules/remark-parse/lib/locate/escape.js","webpack:///./node_modules/remark-parse/lib/tokenize/heading-setext.js","webpack:///./node_modules/is-plain-obj/index.js","webpack:///./node_modules/react-markdown/lib/uri-transformer.js","webpack:///./node_modules/remark-parse/lib/decode.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/remark-parse/lib/tokenize/blockquote.js","webpack:///./node_modules/remark-parse/lib/tokenize/paragraph.js","webpack:///./node_modules/repeat-string/index.js","webpack:///./node_modules/trim/index.js","webpack:///./node_modules/remark-parse/lib/tokenize/text.js","webpack:///./node_modules/remark-parse/lib/util/html.js","webpack:///./node_modules/remark-parse/lib/tokenize/url.js","webpack:///./node_modules/remark-parse/lib/tokenize/delete.js","webpack:///./node_modules/react-markdown/lib/ast-to-react.js","webpack:///./node_modules/remark-parse/lib/tokenize/html-inline.js","webpack:///./node_modules/remark-parse/lib/locate/url.js","webpack:///./node_modules/parse-entities/decode-entity.browser.js","webpack:///./node_modules/react-markdown/node_modules/react-is/cjs/react-is.production.min.js","webpack:///./node_modules/remark-parse/lib/tokenize/html-block.js","webpack:///./node_modules/is-decimal/index.js","webpack:///./node_modules/parse-entities/index.js","webpack:///./node_modules/unist-util-is/convert.js","webpack:///./node_modules/unist-util-visit/index.js","webpack:///./node_modules/remark-parse/lib/util/remove-indentation.js","webpack:///./node_modules/vfile-message/index.js","webpack:///./node_modules/remark-parse/lib/locate/break.js","webpack:///./node_modules/remark-parse/lib/locate/tag.js","webpack:///./node_modules/remark-parse/lib/tokenize/emphasis.js","webpack:///./node_modules/unist-util-remove-position/index.js","webpack:///./node_modules/react-markdown/lib/plugins/naive-html.js","webpack:///./node_modules/remark-parse/lib/tokenize/footnote-definition.js","webpack:///./node_modules/remark-parse/index.js","webpack:///./node_modules/remark-parse/lib/parser.js","webpack:///./node_modules/is-hexadecimal/index.js","webpack:///./node_modules/react-markdown/lib/symbols.js","webpack:///./node_modules/remark-parse/lib/tokenize/link.js","webpack:///./node_modules/remark-parse/lib/util/normalize.js","webpack:///./node_modules/remark-parse/lib/util/get-indentation.js","webpack:///./node_modules/remark-parse/lib/set-options.js","webpack:///./node_modules/unist-util-visit/node_modules/unist-util-visit-parents/index.js","webpack:///./node_modules/is-word-character/index.js","webpack:///./node_modules/remark-parse/lib/tokenize/thematic-break.js","webpack:///./node_modules/react-markdown/node_modules/react-is/index.js","webpack:///./node_modules/remark-parse/lib/tokenize/list.js","webpack:///./node_modules/remark-parse/lib/tokenize/escape.js","webpack:///./node_modules/react-markdown/lib/plugins/disallow-node.js","webpack:///./node_modules/remark-parse/lib/tokenize/table.js","webpack:///./node_modules/unist-util-visit-parents/index.js","webpack:///./node_modules/remark-parse/lib/tokenize/reference.js","webpack:///./node_modules/mdast-add-list-metadata/index.js","webpack:///./node_modules/trough/index.js","webpack:///./node_modules/remark-parse/lib/parse.js"],"names":["path","replace","buffer","module","exports","VFile","own","hasOwnProperty","proto","prototype","toString","encoding","value","this","contents","String","order","options","prop","index","length","data","messages","history","cwd","process","call","indexOf","assertPart","part","name","sep","Error","assertNonEmpty","assertPath","Object","defineProperty","get","set","push","dirname","undefined","join","basename","extname","ext","charAt","stem","point","line","column","position","pos","start","end","gfm","commonmark","footnotes","pedantic","blocks","extend","bail","vfile","trough","string","plain","unified","attachers","transformers","namespace","frozen","freezeIndex","processor","key","arguments","assertUnfrozen","freeze","use","settings","addPlugin","apply","addList","addPreset","result","plugins","add","plugin","entry","find","slice","parse","doc","Parser","file","assertParser","newable","stringify","node","Compiler","assertCompiler","assertNode","compile","run","runSync","complete","err","tree","assertDone","processSync","destination","values","transformer","Infinity","cb","Promise","executor","resolve","reject","pipeline","p","ctx","next","keys","type","asyncName","character","code","charCodeAt","whitespace","decode","locate","autoLink","locator","notInLink","MAILTO_LENGTH","eat","silent","subvalue","queue","hasAtCharacter","link","now","content","tokenizers","exit","offset","toLowerCase","substr","inlineTokenizers","text","enterLink","tokenizeInline","title","url","nonTerminated","children","normalizeArray","parts","allowAboveRoot","up","i","last","splice","unshift","filter","xs","f","res","resolvedPath","resolvedAbsolute","TypeError","split","normalize","isAbsolute","trailingSlash","paths","Array","relative","from","to","trim","arr","fromParts","toParts","Math","min","samePartsLength","outputParts","concat","delimiter","hasRoot","matchedSlash","startDot","startPart","preDotState","str","len","val","xtend","React","supportsStringRender","parseInt","version","createElement","SimpleRenderer","tag","props","getCoreProps","break","paragraph","emphasis","strong","thematicBreak","blockquote","delete","image","linkReference","imageReference","table","bind","tableHead","tableBody","tableRow","tableCell","style","align","textAlign","coreProps","isHeader","root","useFragment","className","Fragment","list","attrs","ordered","listItem","checkbox","checked","readOnly","definition","heading","level","inlineCode","language","html","skipHtml","isBlock","escapeHtml","comp","nodeProps","dangerouslySetInnerHTML","__html","virtualHtml","parsedHtml","cloneElement","element","npath","nFileName","hardBreak","state","context","current","inherits","Super","Of","From","parameters","hasOwn","toStr","gOPD","getOwnPropertyDescriptor","isArray","isPlainObject","obj","hasOwnConstructor","hasIsPrototypeOf","constructor","setProperty","target","enumerable","configurable","newValue","writable","getProperty","src","copy","copyIsArray","clone","deep","offsetToPositionFactory","indices","positionToOffsetFactory","isNaN","toPosition","toOffset","visit","wrap","location","method","matched","valueLength","self","tokens","methods","updatePosition","onlyAtStart","atStart","notInList","inList","notInBlock","inBlock","inLink","fail","eof","lastIndex","Position","before","indent","indentation","getOffset","prev","combined","n","l","substring","validateEat","reset","test","parent","MERGEABLE_NODES","mergeable","exitStart","isBuffer","readFloatLE","isSlowBuffer","_isBuffer","fromIndex","asterisk","underscore","fn","callback","invoked","params","done","error","then","escape","VMessage","message","reason","origin","filePath","fatal","info","warn","fenceCount","marker","flag","exdentedContent","closing","exdentedClosing","raw","unescape","lang","beforeURL","beforeTitle","identifier","isEnclosedURLCharacter","isUnclosedURLCharacter","re","fromCode","fromCharCode","getDefinitions","defs","reduce","definitions","child","href","_toConsumableArray","arr2","_arrayWithoutHoles","iter","Symbol","iterator","_iterableToArray","_nonIterableSpread","PropTypes","addListMetadata","naiveHtml","disallowNode","astToReact","wrapTableRows","uriTransformer","defaultRenderers","symbols","allTypes","ReactMarkdown","source","parserOptions","allowedTypes","disallowedTypes","renderers","parser","applyParserPlugin","rawAst","renderProps","astPlugins","removalMethod","unwrapDisallowed","ofType","allowNode","ifNotMatch","renderHtml","hasHtmlParser","some","item","identity","HtmlParser","determineAstPlugins","transformedAst","ast","defaultProps","sourcePos","rawSourcePos","transformLinkUri","propTypes","bool","func","arrayOf","oneOf","oneOfType","linkTarget","transformImageUri","object","array","types","alphabetical","decimal","contentQueue","subqueue","count","openingCount","found","tickQueue","repeat","blankQueue","subvalueQueue","CODE_INDENT","interruptors","interruptor","config","ignore","bools","depth","escapes","defaults","default","SETEXT_MARKERS","x","getPrototypeOf","protocols","uri","first","colon","protocol","entities","decoder","warning","handleWarning","offsets","handler","reference","textContext","referenceContext","create","ctor","superCtor","super_","TempCtor","interrupt","rest","nextIndex","startIndex","prefixed","blockTokenizers","interruptBlockquote","currentLine","indents","enterBlock","tokenizeBlock","trimTrailingLines","size","interruptParagraph","left","cache","num","max","right","tokenizer","inlineMethods","openTag","closeTag","openCloseTag","RegExp","PROTOCOLS","PROTOCOLS_LENGTH","match","parenCount","nextCharacter","strikethrough","previous","preceding","ReactIs","defaultNodePosition","renderer","isValidElementType","getNodeProps","resolveChildren","map","childNode","opts","isTagRenderer","sourcePosition","includeNodeIndex","parentChildCount","ref","assignDefined","nodeKey","tight","loose","unwrapParagraphs","getListItemChildren","inline","alt","columnAlignment","parsedChildren","el","Children","toArray","mergeNodeChildren","inlineHTML","EXPRESSION_HTML_LINK_OPEN","EXPRESSION_HTML_LINK_CLOSE","characters","char","entity","document","innerHTML","textContent","b","for","c","d","e","g","h","k","m","q","r","t","v","w","y","z","a","u","$$typeof","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","typeOf","sequence","sequences","legacy","invalid","hexadecimal","alphanumerical","decodeEntity","option","entityCharacters","namedEntity","terminated","following","output","begin","diff","additional","handleText","handleReference","warningContext","lines","noop","hexa","tests","attribute","bases","disallowed","flush","Function","convert","Boolean","typeFactory","ok","anyFactory","matchesFactory","checks","results","convertAll","visitParents","CONTINUE","SKIP","EXIT","visitor","reverse","parents","getIndent","maximum","stops","padding","minIndent","matrix","shift","VMessagePrototype","range","parseOrigin","stack","ruleId","word","hard","soft","force","selfClosingRe","simpleTagRe","open","currentParent","selfClosing","getSelfClosing","opening","getSimpleTag","matching","matchingTag","findAndPull","fromNode","toNode","toIndex","virtual","footnoteDefinition","EXPRESSION_INITIAL_TAB","C_BRACKET_OPEN","unherit","Local","toggle","vfileLocation","setOptions","enterList","interruptList","newline","indentedCode","fencedCode","atxHeading","setextHeading","footnote","deletion","blockMethods","tokenizeFactory","LINK_MARKERS","COMMONMARK_LINK_MARKERS","closed","hasMarker","markers","isImage","collapseWhiteSpace","floor","is","one","subresult","toResult","step","all","markerCount","removeIndent","currentMarker","prevEmpty","empty","items","allLines","emptyLines","enterTop","exitBlockquote","isLoose","indented","interuptors","LIST_ORDERED_COMMONMARK_MARKERS","LIST_ORDERED_MARKERS","LIST_UNORDERED_MARKERS","TAB_SIZE","trail","EXPRESSION_LOOSE_LIST_ITEM","EXPRESSION_TASK_ITEM","EXPRESSION_BULLET","EXPRESSION_PEDANTIC_BULLET","EXPRESSION_INITIAL_INDENT","task","pedanticListItem","normalListItem","replacer","$0","bullet","trimmedLines","$1","$2","$3","$4","Number","untangle","mode","args","forEach","disallow","alignments","alignment","row","hasDash","cell","preamble","lineCount","rows","lineIndex","pipeIndex","pop","bracketed","intro","referenceType","visitWithParents","listNode","fns","middleware","input","removePosition","EXPRESSION_LINE_BREAKS"],"mappings":"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","file":"ccbe5bedcd4d419d0dbeed47f289e8590215de8b-40f6d3df7fe1f02e98d4.js","sourcesContent":["'use strict';\n\nvar path = require('path');\n\nvar replace = require('replace-ext');\n\nvar buffer = require('is-buffer');\n\nmodule.exports = VFile;\nvar own = {}.hasOwnProperty;\nvar proto = VFile.prototype;\nproto.toString = toString;\n/* Order of setting (least specific to most), we need this because\n * otherwise `{stem: 'a', path: '~/b.js'}` would throw, as a path\n * is needed before a stem can be set. */\n\nvar order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname'];\n/* Construct a new file. */\n\nfunction VFile(options) {\n var prop;\n var index;\n var length;\n\n if (!options) {\n options = {};\n } else if (typeof options === 'string' || buffer(options)) {\n options = {\n contents: options\n };\n } else if ('message' in options && 'messages' in options) {\n return options;\n }\n\n if (!(this instanceof VFile)) {\n return new VFile(options);\n }\n\n this.data = {};\n this.messages = [];\n this.history = [];\n this.cwd = process.cwd();\n /* Set path related properties in the correct order. */\n\n index = -1;\n length = order.length;\n\n while (++index < length) {\n prop = order[index];\n\n if (own.call(options, prop)) {\n this[prop] = options[prop];\n }\n }\n /* Set non-path related properties. */\n\n\n for (prop in options) {\n if (order.indexOf(prop) === -1) {\n this[prop] = options[prop];\n }\n }\n}\n/* Access full path (`~/index.min.js`). */\n\n\nObject.defineProperty(proto, 'path', {\n get: function get() {\n return this.history[this.history.length - 1];\n },\n set: function set(path) {\n assertNonEmpty(path, 'path');\n\n if (path !== this.path) {\n this.history.push(path);\n }\n }\n});\n/* Access parent path (`~`). */\n\nObject.defineProperty(proto, 'dirname', {\n get: function get() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined;\n },\n set: function set(dirname) {\n assertPath(this.path, 'dirname');\n this.path = path.join(dirname || '', this.basename);\n }\n});\n/* Access basename (`index.min.js`). */\n\nObject.defineProperty(proto, 'basename', {\n get: function get() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined;\n },\n set: function set(basename) {\n assertNonEmpty(basename, 'basename');\n assertPart(basename, 'basename');\n this.path = path.join(this.dirname || '', basename);\n }\n});\n/* Access extname (`.js`). */\n\nObject.defineProperty(proto, 'extname', {\n get: function get() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined;\n },\n set: function set(extname) {\n var ext = extname || '';\n assertPart(ext, 'extname');\n assertPath(this.path, 'extname');\n\n if (ext) {\n if (ext.charAt(0) !== '.') {\n throw new Error('`extname` must start with `.`');\n }\n\n if (ext.indexOf('.', 1) !== -1) {\n throw new Error('`extname` cannot contain multiple dots');\n }\n }\n\n this.path = replace(this.path, ext);\n }\n});\n/* Access stem (`index.min`). */\n\nObject.defineProperty(proto, 'stem', {\n get: function get() {\n return typeof this.path === 'string' ? path.basename(this.path, this.extname) : undefined;\n },\n set: function set(stem) {\n assertNonEmpty(stem, 'stem');\n assertPart(stem, 'stem');\n this.path = path.join(this.dirname || '', stem + (this.extname || ''));\n }\n});\n/* Get the value of the file. */\n\nfunction toString(encoding) {\n var value = this.contents || '';\n return buffer(value) ? value.toString(encoding) : String(value);\n}\n/* Assert that `part` is not a path (i.e., does\n * not contain `path.sep`). */\n\n\nfunction assertPart(part, name) {\n if (part.indexOf(path.sep) !== -1) {\n throw new Error('`' + name + '` cannot be a path: did not expect `' + path.sep + '`');\n }\n}\n/* Assert that `part` is not empty. */\n\n\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty');\n }\n}\n/* Assert `path` exists. */\n\n\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too');\n }\n}","'use strict';\n\nvar own = {}.hasOwnProperty;\nmodule.exports = stringify;\n\nfunction stringify(value) {\n /* Nothing. */\n if (!value || typeof value !== 'object') {\n return null;\n }\n /* Node. */\n\n\n if (own.call(value, 'position') || own.call(value, 'type')) {\n return position(value.position);\n }\n /* Position. */\n\n\n if (own.call(value, 'start') || own.call(value, 'end')) {\n return position(value);\n }\n /* Point. */\n\n\n if (own.call(value, 'line') || own.call(value, 'column')) {\n return point(value);\n }\n /* ? */\n\n\n return null;\n}\n\nfunction point(point) {\n if (!point || typeof point !== 'object') {\n point = {};\n }\n\n return index(point.line) + ':' + index(point.column);\n}\n\nfunction position(pos) {\n if (!pos || typeof pos !== 'object') {\n pos = {};\n }\n\n return point(pos.start) + '-' + point(pos.end);\n}\n\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1;\n}","'use strict';\n\nmodule.exports = {\n position: true,\n gfm: true,\n commonmark: false,\n footnotes: false,\n pedantic: false,\n blocks: require('./block-elements.json')\n};","'use strict';\n/* Dependencies. */\n\nvar extend = require('extend');\n\nvar bail = require('bail');\n\nvar vfile = require('vfile');\n\nvar trough = require('trough');\n\nvar string = require('x-is-string');\n\nvar plain = require('is-plain-obj');\n/* Expose a frozen processor. */\n\n\nmodule.exports = unified().freeze();\nvar slice = [].slice;\nvar own = {}.hasOwnProperty;\n/* Process pipeline. */\n\nvar pipeline = trough().use(pipelineParse).use(pipelineRun).use(pipelineStringify);\n\nfunction pipelineParse(p, ctx) {\n ctx.tree = p.parse(ctx.file);\n}\n\nfunction pipelineRun(p, ctx, next) {\n p.run(ctx.tree, ctx.file, done);\n\n function done(err, tree, file) {\n if (err) {\n next(err);\n } else {\n ctx.tree = tree;\n ctx.file = file;\n next();\n }\n }\n}\n\nfunction pipelineStringify(p, ctx) {\n ctx.file.contents = p.stringify(ctx.tree, ctx.file);\n}\n/* Function to create the first processor. */\n\n\nfunction unified() {\n var attachers = [];\n var transformers = trough();\n var namespace = {};\n var frozen = false;\n var freezeIndex = -1;\n /* Data management. */\n\n processor.data = data;\n /* Lock. */\n\n processor.freeze = freeze;\n /* Plug-ins. */\n\n processor.attachers = attachers;\n processor.use = use;\n /* API. */\n\n processor.parse = parse;\n processor.stringify = stringify;\n processor.run = run;\n processor.runSync = runSync;\n processor.process = process;\n processor.processSync = processSync;\n /* Expose. */\n\n return processor;\n /* Create a new processor based on the processor\n * in the current scope. */\n\n function processor() {\n var destination = unified();\n var length = attachers.length;\n var index = -1;\n\n while (++index < length) {\n destination.use.apply(null, attachers[index]);\n }\n\n destination.data(extend(true, {}, namespace));\n return destination;\n }\n /* Freeze: used to signal a processor that has finished\n * configuration.\n *\n * For example, take unified itself. It’s frozen.\n * Plug-ins should not be added to it. Rather, it should\n * be extended, by invoking it, before modifying it.\n *\n * In essence, always invoke this when exporting a\n * processor. */\n\n\n function freeze() {\n var values;\n var plugin;\n var options;\n var transformer;\n\n if (frozen) {\n return processor;\n }\n\n while (++freezeIndex < attachers.length) {\n values = attachers[freezeIndex];\n plugin = values[0];\n options = values[1];\n transformer = null;\n\n if (options === false) {\n continue;\n }\n\n if (options === true) {\n values[1] = undefined;\n }\n\n transformer = plugin.apply(processor, values.slice(1));\n\n if (typeof transformer === 'function') {\n transformers.use(transformer);\n }\n }\n\n frozen = true;\n freezeIndex = Infinity;\n return processor;\n }\n /* Data management.\n * Getter / setter for processor-specific informtion. */\n\n\n function data(key, value) {\n if (string(key)) {\n /* Set `key`. */\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen);\n namespace[key] = value;\n return processor;\n }\n /* Get `key`. */\n\n\n return own.call(namespace, key) && namespace[key] || null;\n }\n /* Set space. */\n\n\n if (key) {\n assertUnfrozen('data', frozen);\n namespace = key;\n return processor;\n }\n /* Get space. */\n\n\n return namespace;\n }\n /* Plug-in management.\n *\n * Pass it:\n * * an attacher and options,\n * * a preset,\n * * a list of presets, attachers, and arguments (list\n * of attachers and options). */\n\n\n function use(value) {\n var settings;\n assertUnfrozen('use', frozen);\n\n if (value === null || value === undefined) {\n /* Empty */\n } else if (typeof value === 'function') {\n addPlugin.apply(null, arguments);\n } else if (typeof value === 'object') {\n if ('length' in value) {\n addList(value);\n } else {\n addPreset(value);\n }\n } else {\n throw new Error('Expected usable value, not `' + value + '`');\n }\n\n if (settings) {\n namespace.settings = extend(namespace.settings || {}, settings);\n }\n\n return processor;\n\n function addPreset(result) {\n addList(result.plugins);\n\n if (result.settings) {\n settings = extend(settings || {}, result.settings);\n }\n }\n\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value);\n } else if (typeof value === 'object') {\n if ('length' in value) {\n addPlugin.apply(null, value);\n } else {\n addPreset(value);\n }\n } else {\n throw new Error('Expected usable value, not `' + value + '`');\n }\n }\n\n function addList(plugins) {\n var length;\n var index;\n\n if (plugins === null || plugins === undefined) {\n /* Empty */\n } else if (typeof plugins === 'object' && 'length' in plugins) {\n length = plugins.length;\n index = -1;\n\n while (++index < length) {\n add(plugins[index]);\n }\n } else {\n throw new Error('Expected a list of plugins, not `' + plugins + '`');\n }\n }\n\n function addPlugin(plugin, value) {\n var entry = find(plugin);\n\n if (entry) {\n if (plain(entry[1]) && plain(value)) {\n value = extend(entry[1], value);\n }\n\n entry[1] = value;\n } else {\n attachers.push(slice.call(arguments));\n }\n }\n }\n\n function find(plugin) {\n var length = attachers.length;\n var index = -1;\n var entry;\n\n while (++index < length) {\n entry = attachers[index];\n\n if (entry[0] === plugin) {\n return entry;\n }\n }\n }\n /* Parse a file (in string or VFile representation)\n * into a Unist node using the `Parser` on the\n * processor. */\n\n\n function parse(doc) {\n var file = vfile(doc);\n var Parser;\n freeze();\n Parser = processor.Parser;\n assertParser('parse', Parser);\n\n if (newable(Parser)) {\n return new Parser(String(file), file).parse();\n }\n\n return Parser(String(file), file); // eslint-disable-line new-cap\n }\n /* Run transforms on a Unist node representation of a file\n * (in string or VFile representation), async. */\n\n\n function run(node, file, cb) {\n assertNode(node);\n freeze();\n\n if (!cb && typeof file === 'function') {\n cb = file;\n file = null;\n }\n\n if (!cb) {\n return new Promise(executor);\n }\n\n executor(null, cb);\n\n function executor(resolve, reject) {\n transformers.run(node, vfile(file), done);\n\n function done(err, tree, file) {\n tree = tree || node;\n\n if (err) {\n reject(err);\n } else if (resolve) {\n resolve(tree);\n } else {\n cb(null, tree, file);\n }\n }\n }\n }\n /* Run transforms on a Unist node representation of a file\n * (in string or VFile representation), sync. */\n\n\n function runSync(node, file) {\n var complete = false;\n var result;\n run(node, file, done);\n assertDone('runSync', 'run', complete);\n return result;\n\n function done(err, tree) {\n complete = true;\n bail(err);\n result = tree;\n }\n }\n /* Stringify a Unist node representation of a file\n * (in string or VFile representation) into a string\n * using the `Compiler` on the processor. */\n\n\n function stringify(node, doc) {\n var file = vfile(doc);\n var Compiler;\n freeze();\n Compiler = processor.Compiler;\n assertCompiler('stringify', Compiler);\n assertNode(node);\n\n if (newable(Compiler)) {\n return new Compiler(node, file).compile();\n }\n\n return Compiler(node, file); // eslint-disable-line new-cap\n }\n /* Parse a file (in string or VFile representation)\n * into a Unist node using the `Parser` on the processor,\n * then run transforms on that node, and compile the\n * resulting node using the `Compiler` on the processor,\n * and store that result on the VFile. */\n\n\n function process(doc, cb) {\n freeze();\n assertParser('process', processor.Parser);\n assertCompiler('process', processor.Compiler);\n\n if (!cb) {\n return new Promise(executor);\n }\n\n executor(null, cb);\n\n function executor(resolve, reject) {\n var file = vfile(doc);\n pipeline.run(processor, {\n file: file\n }, done);\n\n function done(err) {\n if (err) {\n reject(err);\n } else if (resolve) {\n resolve(file);\n } else {\n cb(null, file);\n }\n }\n }\n }\n /* Process the given document (in string or VFile\n * representation), sync. */\n\n\n function processSync(doc) {\n var complete = false;\n var file;\n freeze();\n assertParser('processSync', processor.Parser);\n assertCompiler('processSync', processor.Compiler);\n file = vfile(doc);\n process(file, done);\n assertDone('processSync', 'process', complete);\n return file;\n\n function done(err) {\n complete = true;\n bail(err);\n }\n }\n}\n/* Check if `func` is a constructor. */\n\n\nfunction newable(value) {\n return typeof value === 'function' && keys(value.prototype);\n}\n/* Check if `value` is an object with keys. */\n\n\nfunction keys(value) {\n var key;\n\n for (key in value) {\n return true;\n }\n\n return false;\n}\n/* Assert a parser is available. */\n\n\nfunction assertParser(name, Parser) {\n if (typeof Parser !== 'function') {\n throw new Error('Cannot `' + name + '` without `Parser`');\n }\n}\n/* Assert a compiler is available. */\n\n\nfunction assertCompiler(name, Compiler) {\n if (typeof Compiler !== 'function') {\n throw new Error('Cannot `' + name + '` without `Compiler`');\n }\n}\n/* Assert the processor is not frozen. */\n\n\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(['Cannot invoke `' + name + '` on a frozen processor.\\nCreate a new ', 'processor first, by invoking it: use `processor()` instead of ', '`processor`.'].join(''));\n }\n}\n/* Assert `node` is a Unist node. */\n\n\nfunction assertNode(node) {\n if (!node || !string(node.type)) {\n throw new Error('Expected node, got `' + node + '`');\n }\n}\n/* Assert that `complete` is `true`. */\n\n\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error('`' + name + '` finished async. Use `' + asyncName + '` instead');\n }\n}","'use strict';\n\nmodule.exports = alphabetical; // Check if the given character code, or the character code at the first\n// character, is alphabetical.\n\nfunction alphabetical(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character;\n return code >= 97 && code <= 122 ||\n /* a-z */\n code >= 65 && code <= 90\n /* A-Z */\n ;\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar decode = require('parse-entities');\n\nvar locate = require('../locate/tag');\n\nmodule.exports = autoLink;\nautoLink.locator = locate;\nautoLink.notInLink = true;\nvar C_LT = '<';\nvar C_GT = '>';\nvar C_AT_SIGN = '@';\nvar C_SLASH = '/';\nvar MAILTO = 'mailto:';\nvar MAILTO_LENGTH = MAILTO.length;\n/* Tokenise a link. */\n\nfunction autoLink(eat, value, silent) {\n var self;\n var subvalue;\n var length;\n var index;\n var queue;\n var character;\n var hasAtCharacter;\n var link;\n var now;\n var content;\n var tokenizers;\n var exit;\n\n if (value.charAt(0) !== C_LT) {\n return;\n }\n\n self = this;\n subvalue = '';\n length = value.length;\n index = 0;\n queue = '';\n hasAtCharacter = false;\n link = '';\n index++;\n subvalue = C_LT;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (whitespace(character) || character === C_GT || character === C_AT_SIGN || character === ':' && value.charAt(index + 1) === C_SLASH) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n if (!queue) {\n return;\n }\n\n link += queue;\n queue = '';\n character = value.charAt(index);\n link += character;\n index++;\n\n if (character === C_AT_SIGN) {\n hasAtCharacter = true;\n } else {\n if (character !== ':' || value.charAt(index + 1) !== C_SLASH) {\n return;\n }\n\n link += C_SLASH;\n index++;\n }\n\n while (index < length) {\n character = value.charAt(index);\n\n if (whitespace(character) || character === C_GT) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (!queue || character !== C_GT) {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n link += queue;\n content = link;\n subvalue += link + character;\n now = eat.now();\n now.column++;\n now.offset++;\n\n if (hasAtCharacter) {\n if (link.slice(0, MAILTO_LENGTH).toLowerCase() === MAILTO) {\n content = content.substr(MAILTO_LENGTH);\n now.column += MAILTO_LENGTH;\n now.offset += MAILTO_LENGTH;\n } else {\n link = MAILTO + link;\n }\n }\n /* Temporarily remove all tokenizers except text in autolinks. */\n\n\n tokenizers = self.inlineTokenizers;\n self.inlineTokenizers = {\n text: tokenizers.text\n };\n exit = self.enterLink();\n content = self.tokenizeInline(content, now);\n self.inlineTokenizers = tokenizers;\n exit();\n return eat(subvalue)({\n type: 'link',\n title: null,\n url: decode(link, {\n nonTerminated: false\n }),\n children: content\n });\n}","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n} // path.resolve([from ...], to)\n// posix version\n\n\nexports.resolve = function () {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : process.cwd(); // Skip empty and invalid entries\n\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function (p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}; // path.normalize(path)\n// posix version\n\n\nexports.normalize = function (path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/'; // Normalize the path\n\n path = normalizeArray(filter(path.split('/'), function (p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n}; // posix version\n\n\nexports.isAbsolute = function (path) {\n return path.charAt(0) === '/';\n}; // posix version\n\n\nexports.join = function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function (p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n\n return p;\n }).join('/'));\n}; // path.relative(from, to)\n// posix version\n\n\nexports.relative = function (from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n} // Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\n\n\nexports.basename = function (path, ext) {\n var f = basename(path);\n\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n\n return path.slice(startDot, end);\n};\n\nfunction filter(xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n\n return res;\n} // String.prototype.substr - negative index don't work in IE8\n\n\nvar substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) {\n return str.substr(start, len);\n} : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n};","'use strict';\n\nmodule.exports = trimTrailingLines;\nvar line = '\\n'; // Remove final newline characters from `value`.\n\nfunction trimTrailingLines(value) {\n var val = String(value);\n var index = val.length;\n\n while (val.charAt(--index) === line) {// Empty\n }\n\n return val.slice(0, index + 1);\n}","/* eslint-disable react/prop-types, react/no-multi-comp */\n'use strict';\n\nvar xtend = require('xtend');\n\nvar React = require('react');\n\nvar supportsStringRender = parseInt((React.version || '16').slice(0, 2), 10) >= 16;\nvar createElement = React.createElement;\nmodule.exports = {\n break: 'br',\n paragraph: 'p',\n emphasis: 'em',\n strong: 'strong',\n thematicBreak: 'hr',\n blockquote: 'blockquote',\n delete: 'del',\n link: 'a',\n image: 'img',\n linkReference: 'a',\n imageReference: 'img',\n table: SimpleRenderer.bind(null, 'table'),\n tableHead: SimpleRenderer.bind(null, 'thead'),\n tableBody: SimpleRenderer.bind(null, 'tbody'),\n tableRow: SimpleRenderer.bind(null, 'tr'),\n tableCell: TableCell,\n root: Root,\n text: TextRenderer,\n list: List,\n listItem: ListItem,\n definition: NullRenderer,\n heading: Heading,\n inlineCode: InlineCode,\n code: CodeBlock,\n html: Html,\n virtualHtml: VirtualHtml,\n parsedHtml: ParsedHtml\n};\n\nfunction TextRenderer(props) {\n return supportsStringRender ? props.children : createElement('span', null, props.children);\n}\n\nfunction Root(props) {\n var useFragment = !props.className;\n var root = useFragment ? React.Fragment || 'div' : 'div';\n return createElement(root, useFragment ? null : props, props.children);\n}\n\nfunction SimpleRenderer(tag, props) {\n return createElement(tag, getCoreProps(props), props.children);\n}\n\nfunction TableCell(props) {\n var style = props.align ? {\n textAlign: props.align\n } : undefined;\n var coreProps = getCoreProps(props);\n return createElement(props.isHeader ? 'th' : 'td', style ? xtend({\n style: style\n }, coreProps) : coreProps, props.children);\n}\n\nfunction Heading(props) {\n return createElement(\"h\".concat(props.level), getCoreProps(props), props.children);\n}\n\nfunction List(props) {\n var attrs = getCoreProps(props);\n\n if (props.start !== null && props.start !== 1 && props.start !== undefined) {\n attrs.start = props.start.toString();\n }\n\n return createElement(props.ordered ? 'ol' : 'ul', attrs, props.children);\n}\n\nfunction ListItem(props) {\n var checkbox = null;\n\n if (props.checked !== null && props.checked !== undefined) {\n var checked = props.checked;\n checkbox = createElement('input', {\n type: 'checkbox',\n checked: checked,\n readOnly: true\n });\n }\n\n return createElement('li', getCoreProps(props), checkbox, props.children);\n}\n\nfunction CodeBlock(props) {\n var className = props.language && \"language-\".concat(props.language);\n var code = createElement('code', className ? {\n className: className\n } : null, props.value);\n return createElement('pre', getCoreProps(props), code);\n}\n\nfunction InlineCode(props) {\n return createElement('code', getCoreProps(props), props.children);\n}\n\nfunction Html(props) {\n if (props.skipHtml) {\n return null;\n }\n\n var tag = props.isBlock ? 'div' : 'span';\n\n if (props.escapeHtml) {\n var comp = React.Fragment || tag;\n return createElement(comp, null, props.value);\n }\n\n var nodeProps = {\n dangerouslySetInnerHTML: {\n __html: props.value\n }\n };\n return createElement(tag, nodeProps);\n}\n\nfunction ParsedHtml(props) {\n return props['data-sourcepos'] ? React.cloneElement(props.element, {\n 'data-sourcepos': props['data-sourcepos']\n }) : props.element;\n}\n\nfunction VirtualHtml(props) {\n return createElement(props.tag, getCoreProps(props), props.children);\n}\n\nfunction NullRenderer() {\n return null;\n}\n\nfunction getCoreProps(props) {\n return props['data-sourcepos'] ? {\n 'data-sourcepos': props['data-sourcepos']\n } : {};\n}","'use strict';\n\nvar path = require('path');\n\nfunction replaceExt(npath, ext) {\n if (typeof npath !== 'string') {\n return npath;\n }\n\n if (npath.length === 0) {\n return npath;\n }\n\n var nFileName = path.basename(npath, path.extname(npath)) + ext;\n return path.join(path.dirname(npath), nFileName);\n}\n\nmodule.exports = replaceExt;","'use strict';\n\nvar locate = require('../locate/break');\n\nmodule.exports = hardBreak;\nhardBreak.locator = locate;\nvar MIN_BREAK_LENGTH = 2;\n\nfunction hardBreak(eat, value, silent) {\n var length = value.length;\n var index = -1;\n var queue = '';\n var character;\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character === '\\n') {\n if (index < MIN_BREAK_LENGTH) {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n queue += character;\n return eat(queue)({\n type: 'break'\n });\n }\n\n if (character !== ' ') {\n return;\n }\n\n queue += character;\n }\n}","'use strict';\n\nmodule.exports = factory; // Construct a state `toggler`: a function which inverses `property` in context\n// based on its current value.\n// The by `toggler` returned function restores that value.\n\nfunction factory(key, state, ctx) {\n return enter;\n\n function enter() {\n var context = ctx || this;\n var current = context[key];\n context[key] = !state;\n return exit;\n\n function exit() {\n context[key] = current;\n }\n }\n}","'use strict';\n\nvar xtend = require('xtend');\n\nvar inherits = require('inherits');\n\nmodule.exports = unherit; // Create a custom constructor which can be modified without affecting the\n// original class.\n\nfunction unherit(Super) {\n var result;\n var key;\n var value;\n inherits(Of, Super);\n inherits(From, Of); // Clone values.\n\n result = Of.prototype;\n\n for (key in result) {\n value = result[key];\n\n if (value && typeof value === 'object') {\n result[key] = 'concat' in value ? value.concat() : xtend(value);\n }\n }\n\n return Of; // Constructor accepting a single argument, which itself is an `arguments`\n // object.\n\n function From(parameters) {\n return Super.apply(this, parameters);\n } // Constructor accepting variadic arguments.\n\n\n function Of() {\n if (!(this instanceof Of)) {\n return new From(arguments);\n }\n\n return Super.apply(this, arguments);\n }\n}","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n if (typeof Array.isArray === 'function') {\n return Array.isArray(arr);\n }\n\n return toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n if (!obj || toStr.call(obj) !== '[object Object]') {\n return false;\n }\n\n var hasOwnConstructor = hasOwn.call(obj, 'constructor');\n var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf'); // Not own constructor property must be Object\n\n if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n return false;\n } // Own properties are enumerated firstly, so to speed up,\n // if last one is own, then all properties are own.\n\n\n var key;\n\n for (key in obj) {\n /**/\n }\n\n return typeof key === 'undefined' || hasOwn.call(obj, key);\n}; // If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\n\n\nvar setProperty = function setProperty(target, options) {\n if (defineProperty && options.name === '__proto__') {\n defineProperty(target, options.name, {\n enumerable: true,\n configurable: true,\n value: options.newValue,\n writable: true\n });\n } else {\n target[options.name] = options.newValue;\n }\n}; // Return undefined instead of __proto__ if '__proto__' is not an own property\n\n\nvar getProperty = function getProperty(obj, name) {\n if (name === '__proto__') {\n if (!hasOwn.call(obj, name)) {\n return void 0;\n } else if (gOPD) {\n // In early versions of node, obj['__proto__'] is buggy when obj has\n // __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n return gOPD(obj, name).value;\n }\n }\n\n return obj[name];\n};\n\nmodule.exports = function extend() {\n var options, name, src, copy, copyIsArray, clone;\n var target = arguments[0];\n var i = 1;\n var length = arguments.length;\n var deep = false; // Handle a deep copy situation\n\n if (typeof target === 'boolean') {\n deep = target;\n target = arguments[1] || {}; // skip the boolean and the target\n\n i = 2;\n }\n\n if (target == null || typeof target !== 'object' && typeof target !== 'function') {\n target = {};\n }\n\n for (; i < length; ++i) {\n options = arguments[i]; // Only deal with non-null/undefined values\n\n if (options != null) {\n // Extend the base object\n for (name in options) {\n src = getProperty(target, name);\n copy = getProperty(options, name); // Prevent never-ending loop\n\n if (target !== copy) {\n // Recurse if we're merging plain objects or arrays\n if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && isArray(src) ? src : [];\n } else {\n clone = src && isPlainObject(src) ? src : {};\n } // Never move original objects, clone them\n\n\n setProperty(target, {\n name: name,\n newValue: extend(deep, clone, copy)\n }); // Don't bring in undefined values\n } else if (typeof copy !== 'undefined') {\n setProperty(target, {\n name: name,\n newValue: copy\n });\n }\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n};","'use strict';\n\nmodule.exports = factory;\n\nfunction factory(file) {\n var contents = indices(String(file));\n return {\n toPosition: offsetToPositionFactory(contents),\n toOffset: positionToOffsetFactory(contents)\n };\n} // Factory to get the line and column-based `position` for `offset` in the bound\n// indices.\n\n\nfunction offsetToPositionFactory(indices) {\n return offsetToPosition; // Get the line and column-based `position` for `offset` in the bound indices.\n\n function offsetToPosition(offset) {\n var index = -1;\n var length = indices.length;\n\n if (offset < 0) {\n return {};\n }\n\n while (++index < length) {\n if (indices[index] > offset) {\n return {\n line: index + 1,\n column: offset - (indices[index - 1] || 0) + 1,\n offset: offset\n };\n }\n }\n\n return {};\n }\n} // Factory to get the `offset` for a line and column-based `position` in the\n// bound indices.\n\n\nfunction positionToOffsetFactory(indices) {\n return positionToOffset; // Get the `offset` for a line and column-based `position` in the bound\n // indices.\n\n function positionToOffset(position) {\n var line = position && position.line;\n var column = position && position.column;\n\n if (!isNaN(line) && !isNaN(column) && line - 1 in indices) {\n return (indices[line - 2] || 0) + column - 1 || 0;\n }\n\n return -1;\n }\n} // Get indices of line-breaks in `value`.\n\n\nfunction indices(value) {\n var result = [];\n var index = value.indexOf('\\n');\n\n while (index !== -1) {\n result.push(index + 1);\n index = value.indexOf('\\n', index + 1);\n }\n\n result.push(value.length + 1);\n return result;\n}","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = function (node) {\n visit(node, 'table', wrap);\n return node;\n};\n\nfunction wrap(table) {\n var children = table.children;\n table.children = [{\n type: 'tableHead',\n align: table.align,\n children: [children[0]],\n position: children[0].position\n }];\n\n if (children.length > 1) {\n table.children.push({\n type: 'tableBody',\n align: table.align,\n children: children.slice(1),\n position: {\n start: children[1].position.start,\n end: children[children.length - 1].position.end\n }\n });\n }\n}","'use strict';\n\nmodule.exports = factory;\nvar MERGEABLE_NODES = {\n text: mergeText,\n blockquote: mergeBlockquote\n};\n/* Check whether a node is mergeable with adjacent nodes. */\n\nfunction mergeable(node) {\n var start;\n var end;\n\n if (node.type !== 'text' || !node.position) {\n return true;\n }\n\n start = node.position.start;\n end = node.position.end;\n /* Only merge nodes which occupy the same size as their\n * `value`. */\n\n return start.line !== end.line || end.column - start.column === node.value.length;\n}\n/* Merge two text nodes: `node` into `prev`. */\n\n\nfunction mergeText(prev, node) {\n prev.value += node.value;\n return prev;\n}\n/* Merge two blockquotes: `node` into `prev`, unless in\n * CommonMark mode. */\n\n\nfunction mergeBlockquote(prev, node) {\n if (this.options.commonmark) {\n return node;\n }\n\n prev.children = prev.children.concat(node.children);\n return prev;\n}\n/* Construct a tokenizer. This creates both\n * `tokenizeInline` and `tokenizeBlock`. */\n\n\nfunction factory(type) {\n return tokenize;\n /* Tokenizer for a bound `type`. */\n\n function tokenize(value, location) {\n var self = this;\n var offset = self.offset;\n var tokens = [];\n var methods = self[type + 'Methods'];\n var tokenizers = self[type + 'Tokenizers'];\n var line = location.line;\n var column = location.column;\n var index;\n var length;\n var method;\n var name;\n var matched;\n var valueLength;\n /* Trim white space only lines. */\n\n if (!value) {\n return tokens;\n }\n /* Expose on `eat`. */\n\n\n eat.now = now;\n eat.file = self.file;\n /* Sync initial offset. */\n\n updatePosition('');\n /* Iterate over `value`, and iterate over all\n * tokenizers. When one eats something, re-iterate\n * with the remaining value. If no tokenizer eats,\n * something failed (should not happen) and an\n * exception is thrown. */\n\n while (value) {\n index = -1;\n length = methods.length;\n matched = false;\n\n while (++index < length) {\n name = methods[index];\n method = tokenizers[name];\n\n if (method && (\n /* istanbul ignore next */\n !method.onlyAtStart || self.atStart) && (!method.notInList || !self.inList) && (!method.notInBlock || !self.inBlock) && (!method.notInLink || !self.inLink)) {\n valueLength = value.length;\n method.apply(self, [eat, value]);\n matched = valueLength !== value.length;\n\n if (matched) {\n break;\n }\n }\n }\n /* istanbul ignore if */\n\n\n if (!matched) {\n self.file.fail(new Error('Infinite loop'), eat.now());\n }\n }\n\n self.eof = now();\n return tokens;\n /* Update line, column, and offset based on\n * `value`. */\n\n function updatePosition(subvalue) {\n var lastIndex = -1;\n var index = subvalue.indexOf('\\n');\n\n while (index !== -1) {\n line++;\n lastIndex = index;\n index = subvalue.indexOf('\\n', index + 1);\n }\n\n if (lastIndex === -1) {\n column += subvalue.length;\n } else {\n column = subvalue.length - lastIndex;\n }\n\n if (line in offset) {\n if (lastIndex !== -1) {\n column += offset[line];\n } else if (column <= offset[line]) {\n column = offset[line] + 1;\n }\n }\n }\n /* Get offset. Called before the first character is\n * eaten to retrieve the range's offsets. */\n\n\n function getOffset() {\n var indentation = [];\n var pos = line + 1;\n /* Done. Called when the last character is\n * eaten to retrieve the range’s offsets. */\n\n return function () {\n var last = line + 1;\n\n while (pos < last) {\n indentation.push((offset[pos] || 0) + 1);\n pos++;\n }\n\n return indentation;\n };\n }\n /* Get the current position. */\n\n\n function now() {\n var pos = {\n line: line,\n column: column\n };\n pos.offset = self.toOffset(pos);\n return pos;\n }\n /* Store position information for a node. */\n\n\n function Position(start) {\n this.start = start;\n this.end = now();\n }\n /* Throw when a value is incorrectly eaten.\n * This shouldn’t happen but will throw on new,\n * incorrect rules. */\n\n\n function validateEat(subvalue) {\n /* istanbul ignore if */\n if (value.substring(0, subvalue.length) !== subvalue) {\n /* Capture stack-trace. */\n self.file.fail(new Error('Incorrectly eaten value: please report this ' + 'warning on http://git.io/vg5Ft'), now());\n }\n }\n /* Mark position and patch `node.position`. */\n\n\n function position() {\n var before = now();\n return update;\n /* Add the position to a node. */\n\n function update(node, indent) {\n var prev = node.position;\n var start = prev ? prev.start : before;\n var combined = [];\n var n = prev && prev.end.line;\n var l = before.line;\n node.position = new Position(start);\n /* If there was already a `position`, this\n * node was merged. Fixing `start` wasn’t\n * hard, but the indent is different.\n * Especially because some information, the\n * indent between `n` and `l` wasn’t\n * tracked. Luckily, that space is\n * (should be?) empty, so we can safely\n * check for it now. */\n\n if (prev && indent && prev.indent) {\n combined = prev.indent;\n\n if (n < l) {\n while (++n < l) {\n combined.push((offset[n] || 0) + 1);\n }\n\n combined.push(before.column);\n }\n\n indent = combined.concat(indent);\n }\n\n node.position.indent = indent || [];\n return node;\n }\n }\n /* Add `node` to `parent`s children or to `tokens`.\n * Performs merges where possible. */\n\n\n function add(node, parent) {\n var children = parent ? parent.children : tokens;\n var prev = children[children.length - 1];\n\n if (prev && node.type === prev.type && node.type in MERGEABLE_NODES && mergeable(prev) && mergeable(node)) {\n node = MERGEABLE_NODES[node.type].call(self, prev, node);\n }\n\n if (node !== prev) {\n children.push(node);\n }\n\n if (self.atStart && tokens.length !== 0) {\n self.exitStart();\n }\n\n return node;\n }\n /* Remove `subvalue` from `value`.\n * `subvalue` must be at the start of `value`. */\n\n\n function eat(subvalue) {\n var indent = getOffset();\n var pos = position();\n var current = now();\n validateEat(subvalue);\n apply.reset = reset;\n reset.test = test;\n apply.test = test;\n value = value.substring(subvalue.length);\n updatePosition(subvalue);\n indent = indent();\n return apply;\n /* Add the given arguments, add `position` to\n * the returned node, and return the node. */\n\n function apply(node, parent) {\n return pos(add(pos(node), parent), indent);\n }\n /* Functions just like apply, but resets the\n * content: the line and column are reversed,\n * and the eaten value is re-added.\n * This is useful for nodes with a single\n * type of content, such as lists and tables.\n * See `apply` above for what parameters are\n * expected. */\n\n\n function reset() {\n var node = apply.apply(null, arguments);\n line = current.line;\n column = current.column;\n value = subvalue + value;\n return node;\n }\n /* Test the position, after eating, and reverse\n * to a not-eaten state. */\n\n\n function test() {\n var result = pos({});\n line = current.line;\n column = current.column;\n value = subvalue + value;\n return result.position;\n }\n }\n }\n}","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer);\n};\n\nfunction isBuffer(obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n} // For Node v0.10 support. Remove this eventually.\n\n\nfunction isSlowBuffer(obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0));\n}","'use strict';\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n var asterisk = value.indexOf('**', fromIndex);\n var underscore = value.indexOf('__', fromIndex);\n\n if (underscore === -1) {\n return asterisk;\n }\n\n if (asterisk === -1) {\n return underscore;\n }\n\n return underscore < asterisk ? underscore : asterisk;\n}","'use strict';\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n return value.indexOf('`', fromIndex);\n}","'use strict';\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n var asterisk = value.indexOf('*', fromIndex);\n var underscore = value.indexOf('_', fromIndex);\n\n if (underscore === -1) {\n return asterisk;\n }\n\n if (asterisk === -1) {\n return underscore;\n }\n\n return underscore < asterisk ? underscore : asterisk;\n}","'use strict';\n\nvar slice = [].slice;\nmodule.exports = wrap; // Wrap `fn`.\n// Can be sync or async; return a promise, receive a completion handler, return\n// new values and errors.\n\nfunction wrap(fn, callback) {\n var invoked;\n return wrapped;\n\n function wrapped() {\n var params = slice.call(arguments, 0);\n var callback = fn.length > params.length;\n var result;\n\n if (callback) {\n params.push(done);\n }\n\n try {\n result = fn.apply(null, params);\n } catch (error) {\n // Well, this is quite the pickle.\n // `fn` received a callback and invoked it (thus continuing the pipeline),\n // but later also threw an error.\n // We’re not about to restart the pipeline again, so the only thing left\n // to do is to throw the thing instead.\n if (callback && invoked) {\n throw error;\n }\n\n return done(error);\n }\n\n if (!callback) {\n if (result && typeof result.then === 'function') {\n result.then(then, done);\n } else if (result instanceof Error) {\n done(result);\n } else {\n then(result);\n }\n }\n } // Invoke `next`, only once.\n\n\n function done() {\n if (!invoked) {\n invoked = true;\n callback.apply(null, arguments);\n }\n } // Invoke `done` with one value.\n // Tracks if an error is passed, too.\n\n\n function then(value) {\n done(null, value);\n }\n}","'use strict';\n\nmodule.exports = factory;\n/* Factory to de-escape a value, based on a list at `key`\n * in `ctx`. */\n\nfunction factory(ctx, key) {\n return unescape;\n /* De-escape a string using the expression at `key`\n * in `ctx`. */\n\n function unescape(value) {\n var prev = 0;\n var index = value.indexOf('\\\\');\n var escape = ctx[key];\n var queue = [];\n var character;\n\n while (index !== -1) {\n queue.push(value.slice(prev, index));\n prev = index + 1;\n character = value.charAt(prev);\n /* If the following character is not a valid escape,\n * add the slash. */\n\n if (!character || escape.indexOf(character) === -1) {\n queue.push('\\\\');\n }\n\n index = value.indexOf('\\\\', prev);\n }\n\n queue.push(value.slice(prev));\n return queue.join('');\n }\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nmodule.exports = newline;\n/* Tokenise newline. */\n\nfunction newline(eat, value, silent) {\n var character = value.charAt(0);\n var length;\n var subvalue;\n var queue;\n var index;\n\n if (character !== '\\n') {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n index = 1;\n length = value.length;\n subvalue = character;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!whitespace(character)) {\n break;\n }\n\n queue += character;\n\n if (character === '\\n') {\n subvalue += queue;\n queue = '';\n }\n\n index++;\n }\n\n eat(subvalue);\n}","'use strict';\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n var link = value.indexOf('[', fromIndex);\n var image = value.indexOf('![', fromIndex);\n\n if (image === -1) {\n return link;\n }\n /* Link can never be `-1` if an image is found, so we don’t need\n * to check for that :) */\n\n\n return link < image ? link : image;\n}","'use strict';\n\nvar VMessage = require('vfile-message');\n\nvar VFile = require('./core.js');\n\nmodule.exports = VFile;\nvar proto = VFile.prototype;\nproto.message = message;\nproto.info = info;\nproto.fail = fail;\n/* Slight backwards compatibility. Remove in the future. */\n\nproto.warn = message;\n/* Create a message with `reason` at `position`.\n * When an error is passed in as `reason`, copies the stack. */\n\nfunction message(reason, position, origin) {\n var filePath = this.path;\n var message = new VMessage(reason, position, origin);\n\n if (filePath) {\n message.name = filePath + ':' + message.name;\n message.file = filePath;\n }\n\n message.fatal = false;\n this.messages.push(message);\n return message;\n}\n/* Fail. Creates a vmessage, associates it with the file,\n * and throws it. */\n\n\nfunction fail() {\n var message = this.message.apply(this, arguments);\n message.fatal = true;\n throw message;\n}\n/* Info. Creates a vmessage, associates it with the file,\n * and marks the fatality as null. */\n\n\nfunction info() {\n var message = this.message.apply(this, arguments);\n message.fatal = null;\n return message;\n}","'use strict';\n\nmodule.exports = bail;\n\nfunction bail(err) {\n if (err) {\n throw err;\n }\n}","'use strict';\n\nvar trim = require('trim-trailing-lines');\n\nmodule.exports = fencedCode;\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_TILDE = '~';\nvar C_TICK = '`';\nvar MIN_FENCE_COUNT = 3;\nvar CODE_INDENT_COUNT = 4;\n\nfunction fencedCode(eat, value, silent) {\n var self = this;\n var settings = self.options;\n var length = value.length + 1;\n var index = 0;\n var subvalue = '';\n var fenceCount;\n var marker;\n var character;\n var flag;\n var queue;\n var content;\n var exdentedContent;\n var closing;\n var exdentedClosing;\n var indent;\n var now;\n\n if (!settings.gfm) {\n return;\n }\n /* Eat initial spacing. */\n\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n indent = index;\n /* Eat the fence. */\n\n character = value.charAt(index);\n\n if (character !== C_TILDE && character !== C_TICK) {\n return;\n }\n\n index++;\n marker = character;\n fenceCount = 1;\n subvalue += character;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== marker) {\n break;\n }\n\n subvalue += character;\n fenceCount++;\n index++;\n }\n\n if (fenceCount < MIN_FENCE_COUNT) {\n return;\n }\n /* Eat spacing before flag. */\n\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n /* Eat flag. */\n\n\n flag = '';\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_NEWLINE || character === C_TILDE || character === C_TICK) {\n break;\n }\n\n if (character === C_SPACE || character === C_TAB) {\n queue += character;\n } else {\n flag += queue + character;\n queue = '';\n }\n\n index++;\n }\n\n character = value.charAt(index);\n\n if (character && character !== C_NEWLINE) {\n return;\n }\n\n if (silent) {\n return true;\n }\n\n now = eat.now();\n now.column += subvalue.length;\n now.offset += subvalue.length;\n subvalue += flag;\n flag = self.decode.raw(self.unescape(flag), now);\n\n if (queue) {\n subvalue += queue;\n }\n\n queue = '';\n closing = '';\n exdentedClosing = '';\n content = '';\n exdentedContent = '';\n /* Eat content. */\n\n while (index < length) {\n character = value.charAt(index);\n content += closing;\n exdentedContent += exdentedClosing;\n closing = '';\n exdentedClosing = '';\n\n if (character !== C_NEWLINE) {\n content += character;\n exdentedClosing += character;\n index++;\n continue;\n }\n /* Add the newline to `subvalue` if its the first\n * character. Otherwise, add it to the `closing`\n * queue. */\n\n\n if (content) {\n closing += character;\n exdentedClosing += character;\n } else {\n subvalue += character;\n }\n\n queue = '';\n index++;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n closing += queue;\n exdentedClosing += queue.slice(indent);\n\n if (queue.length >= CODE_INDENT_COUNT) {\n continue;\n }\n\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== marker) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n closing += queue;\n exdentedClosing += queue;\n\n if (queue.length < fenceCount) {\n continue;\n }\n\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n break;\n }\n\n closing += character;\n exdentedClosing += character;\n index++;\n }\n\n if (!character || character === C_NEWLINE) {\n break;\n }\n }\n\n subvalue += content + closing;\n return eat(subvalue)({\n type: 'code',\n lang: flag || null,\n value: trim(exdentedContent)\n });\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar normalize = require('../util/normalize');\n\nmodule.exports = definition;\ndefinition.notInList = true;\ndefinition.notInBlock = true;\nvar C_DOUBLE_QUOTE = '\"';\nvar C_SINGLE_QUOTE = '\\'';\nvar C_BACKSLASH = '\\\\';\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_BRACKET_OPEN = '[';\nvar C_BRACKET_CLOSE = ']';\nvar C_PAREN_OPEN = '(';\nvar C_PAREN_CLOSE = ')';\nvar C_COLON = ':';\nvar C_LT = '<';\nvar C_GT = '>';\n\nfunction definition(eat, value, silent) {\n var self = this;\n var commonmark = self.options.commonmark;\n var index = 0;\n var length = value.length;\n var subvalue = '';\n var beforeURL;\n var beforeTitle;\n var queue;\n var character;\n var test;\n var identifier;\n var url;\n var title;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (character !== C_BRACKET_OPEN) {\n return;\n }\n\n index++;\n subvalue += character;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_BRACKET_CLOSE) {\n break;\n } else if (character === C_BACKSLASH) {\n queue += character;\n index++;\n character = value.charAt(index);\n }\n\n queue += character;\n index++;\n }\n\n if (!queue || value.charAt(index) !== C_BRACKET_CLOSE || value.charAt(index + 1) !== C_COLON) {\n return;\n }\n\n identifier = queue;\n subvalue += queue + C_BRACKET_CLOSE + C_COLON;\n index = subvalue.length;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_TAB && character !== C_SPACE && character !== C_NEWLINE) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n character = value.charAt(index);\n queue = '';\n beforeURL = subvalue;\n\n if (character === C_LT) {\n index++;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!isEnclosedURLCharacter(character)) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (character === isEnclosedURLCharacter.delimiter) {\n subvalue += C_LT + queue + character;\n index++;\n } else {\n if (commonmark) {\n return;\n }\n\n index -= queue.length + 1;\n queue = '';\n }\n }\n\n if (!queue) {\n while (index < length) {\n character = value.charAt(index);\n\n if (!isUnclosedURLCharacter(character)) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n subvalue += queue;\n }\n\n if (!queue) {\n return;\n }\n\n url = queue;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_TAB && character !== C_SPACE && character !== C_NEWLINE) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n test = null;\n\n if (character === C_DOUBLE_QUOTE) {\n test = C_DOUBLE_QUOTE;\n } else if (character === C_SINGLE_QUOTE) {\n test = C_SINGLE_QUOTE;\n } else if (character === C_PAREN_OPEN) {\n test = C_PAREN_CLOSE;\n }\n\n if (!test) {\n queue = '';\n index = subvalue.length;\n } else if (queue) {\n subvalue += queue + character;\n index = subvalue.length;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === test) {\n break;\n }\n\n if (character === C_NEWLINE) {\n index++;\n character = value.charAt(index);\n\n if (character === C_NEWLINE || character === test) {\n return;\n }\n\n queue += C_NEWLINE;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (character !== test) {\n return;\n }\n\n beforeTitle = subvalue;\n subvalue += queue + character;\n index++;\n title = queue;\n queue = '';\n } else {\n return;\n }\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_TAB && character !== C_SPACE) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (!character || character === C_NEWLINE) {\n if (silent) {\n return true;\n }\n\n beforeURL = eat(beforeURL).test().end;\n url = self.decode.raw(self.unescape(url), beforeURL, {\n nonTerminated: false\n });\n\n if (title) {\n beforeTitle = eat(beforeTitle).test().end;\n title = self.decode.raw(self.unescape(title), beforeTitle);\n }\n\n return eat(subvalue)({\n type: 'definition',\n identifier: normalize(identifier),\n title: title || null,\n url: url\n });\n }\n}\n/* Check if `character` can be inside an enclosed URI. */\n\n\nfunction isEnclosedURLCharacter(character) {\n return character !== C_GT && character !== C_BRACKET_OPEN && character !== C_BRACKET_CLOSE;\n}\n\nisEnclosedURLCharacter.delimiter = C_GT;\n/* Check if `character` can be inside an unclosed URI. */\n\nfunction isUnclosedURLCharacter(character) {\n return character !== C_BRACKET_OPEN && character !== C_BRACKET_CLOSE && !whitespace(character);\n}","'use strict';\n\nmodule.exports = whitespace;\nvar fromCode = String.fromCharCode;\nvar re = /\\s/; // Check if the given character code, or the character code at the first\n// character, is a whitespace character.\n\nfunction whitespace(character) {\n return re.test(typeof character === 'number' ? fromCode(character) : character.charAt(0));\n}","var toString = Object.prototype.toString;\nmodule.exports = isString;\n\nfunction isString(obj) {\n return toString.call(obj) === \"[object String]\";\n}","'use strict';\n\nrequire(\"core-js/modules/es.array.reduce.js\");\n\nmodule.exports = function getDefinitions(node) {\n var defs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return (node.children || []).reduce(function (definitions, child) {\n if (child.type === 'definition') {\n definitions[child.identifier] = {\n href: child.url,\n title: child.title\n };\n }\n\n return getDefinitions(child, definitions);\n }, defs);\n};","'use strict';\n\nrequire(\"core-js/modules/es.array.reduce.js\");\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nvar xtend = require('xtend');\n\nvar unified = require('unified');\n\nvar parse = require('remark-parse');\n\nvar PropTypes = require('prop-types');\n\nvar addListMetadata = require('mdast-add-list-metadata');\n\nvar naiveHtml = require('./plugins/naive-html');\n\nvar disallowNode = require('./plugins/disallow-node');\n\nvar astToReact = require('./ast-to-react');\n\nvar wrapTableRows = require('./wrap-table-rows');\n\nvar getDefinitions = require('./get-definitions');\n\nvar uriTransformer = require('./uri-transformer');\n\nvar defaultRenderers = require('./renderers');\n\nvar symbols = require('./symbols');\n\nvar allTypes = Object.keys(defaultRenderers);\n\nvar ReactMarkdown = function ReactMarkdown(props) {\n var src = props.source || props.children || '';\n var parserOptions = props.parserOptions;\n\n if (props.allowedTypes && props.disallowedTypes) {\n throw new Error('Only one of `allowedTypes` and `disallowedTypes` should be defined');\n }\n\n var renderers = xtend(defaultRenderers, props.renderers);\n var plugins = [[parse, parserOptions]].concat(props.plugins || []);\n var parser = plugins.reduce(applyParserPlugin, unified());\n var rawAst = parser.parse(src);\n var renderProps = xtend(props, {\n renderers: renderers,\n definitions: getDefinitions(rawAst)\n });\n var astPlugins = determineAstPlugins(props); // eslint-disable-next-line no-sync\n\n var transformedAst = parser.runSync(rawAst);\n var ast = astPlugins.reduce(function (node, plugin) {\n return plugin(node, renderProps);\n }, transformedAst);\n return astToReact(ast, renderProps);\n};\n\nfunction applyParserPlugin(parser, plugin) {\n return Array.isArray(plugin) ? parser.use.apply(parser, _toConsumableArray(plugin)) : parser.use(plugin);\n}\n\nfunction determineAstPlugins(props) {\n var plugins = [wrapTableRows, addListMetadata()];\n var disallowedTypes = props.disallowedTypes;\n\n if (props.allowedTypes) {\n disallowedTypes = allTypes.filter(function (type) {\n return type !== 'root' && props.allowedTypes.indexOf(type) === -1;\n });\n }\n\n var removalMethod = props.unwrapDisallowed ? 'unwrap' : 'remove';\n\n if (disallowedTypes && disallowedTypes.length > 0) {\n plugins.push(disallowNode.ofType(disallowedTypes, removalMethod));\n }\n\n if (props.allowNode) {\n plugins.push(disallowNode.ifNotMatch(props.allowNode, removalMethod));\n }\n\n var renderHtml = !props.escapeHtml && !props.skipHtml;\n var hasHtmlParser = (props.astPlugins || []).some(function (item) {\n var plugin = Array.isArray(item) ? item[0] : item;\n return plugin.identity === symbols.HtmlParser;\n });\n\n if (renderHtml && !hasHtmlParser) {\n plugins.push(naiveHtml);\n }\n\n return props.astPlugins ? plugins.concat(props.astPlugins) : plugins;\n}\n\nReactMarkdown.defaultProps = {\n renderers: {},\n escapeHtml: true,\n skipHtml: false,\n sourcePos: false,\n rawSourcePos: false,\n transformLinkUri: uriTransformer,\n astPlugins: [],\n plugins: [],\n parserOptions: {}\n};\nReactMarkdown.propTypes = {\n className: PropTypes.string,\n source: PropTypes.string,\n children: PropTypes.string,\n sourcePos: PropTypes.bool,\n rawSourcePos: PropTypes.bool,\n escapeHtml: PropTypes.bool,\n skipHtml: PropTypes.bool,\n allowNode: PropTypes.func,\n allowedTypes: PropTypes.arrayOf(PropTypes.oneOf(allTypes)),\n disallowedTypes: PropTypes.arrayOf(PropTypes.oneOf(allTypes)),\n transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n transformImageUri: PropTypes.func,\n astPlugins: PropTypes.arrayOf(PropTypes.func),\n unwrapDisallowed: PropTypes.bool,\n renderers: PropTypes.object,\n plugins: PropTypes.array,\n parserOptions: PropTypes.object\n};\nReactMarkdown.types = allTypes;\nReactMarkdown.renderers = defaultRenderers;\nReactMarkdown.uriTransformer = uriTransformer;\nmodule.exports = ReactMarkdown;","'use strict';\n\nvar alphabetical = require('is-alphabetical');\n\nvar decimal = require('is-decimal');\n\nmodule.exports = alphanumerical; // Check if the given character code, or the character code at the first\n// character, is alphanumerical.\n\nfunction alphanumerical(character) {\n return alphabetical(character) || decimal(character);\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/code-inline');\n\nmodule.exports = inlineCode;\ninlineCode.locator = locate;\nvar C_TICK = '`';\n/* Tokenise inline code. */\n\nfunction inlineCode(eat, value, silent) {\n var length = value.length;\n var index = 0;\n var queue = '';\n var tickQueue = '';\n var contentQueue;\n var subqueue;\n var count;\n var openingCount;\n var subvalue;\n var character;\n var found;\n var next;\n\n while (index < length) {\n if (value.charAt(index) !== C_TICK) {\n break;\n }\n\n queue += C_TICK;\n index++;\n }\n\n if (!queue) {\n return;\n }\n\n subvalue = queue;\n openingCount = index;\n queue = '';\n next = value.charAt(index);\n count = 0;\n\n while (index < length) {\n character = next;\n next = value.charAt(index + 1);\n\n if (character === C_TICK) {\n count++;\n tickQueue += character;\n } else {\n count = 0;\n queue += character;\n }\n\n if (count && next !== C_TICK) {\n if (count === openingCount) {\n subvalue += queue + tickQueue;\n found = true;\n break;\n }\n\n queue += tickQueue;\n tickQueue = '';\n }\n\n index++;\n }\n\n if (!found) {\n if (openingCount % 2 !== 0) {\n return;\n }\n\n queue = '';\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n contentQueue = '';\n subqueue = '';\n length = queue.length;\n index = -1;\n\n while (++index < length) {\n character = queue.charAt(index);\n\n if (whitespace(character)) {\n subqueue += character;\n continue;\n }\n\n if (subqueue) {\n if (contentQueue) {\n contentQueue += subqueue;\n }\n\n subqueue = '';\n }\n\n contentQueue += character;\n }\n\n return eat(subvalue)({\n type: 'inlineCode',\n value: contentQueue\n });\n}","'use strict';\n\nmodule.exports = collapse; // `collapse(' \\t\\nbar \\nbaz\\t') // ' bar baz '`\n\nfunction collapse(value) {\n return String(value).replace(/\\s+/g, ' ');\n}","'use strict';\n\nvar repeat = require('repeat-string');\n\nvar trim = require('trim-trailing-lines');\n\nmodule.exports = indentedCode;\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar CODE_INDENT_COUNT = 4;\nvar CODE_INDENT = repeat(C_SPACE, CODE_INDENT_COUNT);\n/* Tokenise indented code. */\n\nfunction indentedCode(eat, value, silent) {\n var index = -1;\n var length = value.length;\n var subvalue = '';\n var content = '';\n var subvalueQueue = '';\n var contentQueue = '';\n var character;\n var blankQueue;\n var indent;\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (indent) {\n indent = false;\n subvalue += subvalueQueue;\n content += contentQueue;\n subvalueQueue = '';\n contentQueue = '';\n\n if (character === C_NEWLINE) {\n subvalueQueue = character;\n contentQueue = character;\n } else {\n subvalue += character;\n content += character;\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (!character || character === C_NEWLINE) {\n contentQueue = character;\n subvalueQueue = character;\n break;\n }\n\n subvalue += character;\n content += character;\n }\n }\n } else if (character === C_SPACE && value.charAt(index + 1) === character && value.charAt(index + 2) === character && value.charAt(index + 3) === character) {\n subvalueQueue += CODE_INDENT;\n index += 3;\n indent = true;\n } else if (character === C_TAB) {\n subvalueQueue += character;\n indent = true;\n } else {\n blankQueue = '';\n\n while (character === C_TAB || character === C_SPACE) {\n blankQueue += character;\n character = value.charAt(++index);\n }\n\n if (character !== C_NEWLINE) {\n break;\n }\n\n subvalueQueue += blankQueue + character;\n contentQueue += character;\n }\n }\n\n if (content) {\n if (silent) {\n return true;\n }\n\n return eat(subvalue)({\n type: 'code',\n lang: null,\n value: trim(content)\n });\n }\n}","'use strict';\n\nmodule.exports = interrupt;\n\nfunction interrupt(interruptors, tokenizers, ctx, params) {\n var bools = ['pedantic', 'commonmark'];\n var count = bools.length;\n var length = interruptors.length;\n var index = -1;\n var interruptor;\n var config;\n var fn;\n var offset;\n var bool;\n var ignore;\n\n while (++index < length) {\n interruptor = interruptors[index];\n config = interruptor[1] || {};\n fn = interruptor[0];\n offset = -1;\n ignore = false;\n\n while (++offset < count) {\n bool = bools[offset];\n\n if (config[bool] !== undefined && config[bool] !== ctx.options[bool]) {\n ignore = true;\n break;\n }\n }\n\n if (ignore) {\n continue;\n }\n\n if (tokenizers[fn].apply(ctx, params)) {\n return true;\n }\n }\n\n return false;\n}","'use strict';\n\nvar trim = require('trim');\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/strong');\n\nmodule.exports = strong;\nstrong.locator = locate;\nvar C_ASTERISK = '*';\nvar C_UNDERSCORE = '_';\n\nfunction strong(eat, value, silent) {\n var self = this;\n var index = 0;\n var character = value.charAt(index);\n var now;\n var pedantic;\n var marker;\n var queue;\n var subvalue;\n var length;\n var prev;\n\n if (character !== C_ASTERISK && character !== C_UNDERSCORE || value.charAt(++index) !== character) {\n return;\n }\n\n pedantic = self.options.pedantic;\n marker = character;\n subvalue = marker + marker;\n length = value.length;\n index++;\n queue = '';\n character = '';\n\n if (pedantic && whitespace(value.charAt(index))) {\n return;\n }\n\n while (index < length) {\n prev = character;\n character = value.charAt(index);\n\n if (character === marker && value.charAt(index + 1) === marker && (!pedantic || !whitespace(prev))) {\n character = value.charAt(index + 2);\n\n if (character !== marker) {\n if (!trim(queue)) {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n now = eat.now();\n now.column += 2;\n now.offset += 2;\n return eat(subvalue + queue + subvalue)({\n type: 'strong',\n children: self.tokenizeInline(queue, now)\n });\n }\n }\n\n if (!pedantic && character === '\\\\') {\n queue += character;\n character = value.charAt(++index);\n }\n\n queue += character;\n index++;\n }\n}","'use strict';\n\nmodule.exports = atxHeading;\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_HASH = '#';\nvar MAX_ATX_COUNT = 6;\n\nfunction atxHeading(eat, value, silent) {\n var self = this;\n var settings = self.options;\n var length = value.length + 1;\n var index = -1;\n var now = eat.now();\n var subvalue = '';\n var content = '';\n var character;\n var queue;\n var depth;\n /* Eat initial spacing. */\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n index--;\n break;\n }\n\n subvalue += character;\n }\n /* Eat hashes. */\n\n\n depth = 0;\n\n while (++index <= length) {\n character = value.charAt(index);\n\n if (character !== C_HASH) {\n index--;\n break;\n }\n\n subvalue += character;\n depth++;\n }\n\n if (depth > MAX_ATX_COUNT) {\n return;\n }\n\n if (!depth || !settings.pedantic && value.charAt(index + 1) === C_HASH) {\n return;\n }\n\n length = value.length + 1;\n /* Eat intermediate white-space. */\n\n queue = '';\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n index--;\n break;\n }\n\n queue += character;\n }\n /* Exit when not in pedantic mode without spacing. */\n\n\n if (!settings.pedantic && queue.length === 0 && character && character !== C_NEWLINE) {\n return;\n }\n\n if (silent) {\n return true;\n }\n /* Eat content. */\n\n\n subvalue += queue;\n queue = '';\n content = '';\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (!character || character === C_NEWLINE) {\n break;\n }\n\n if (character !== C_SPACE && character !== C_TAB && character !== C_HASH) {\n content += queue + character;\n queue = '';\n continue;\n }\n\n while (character === C_SPACE || character === C_TAB) {\n queue += character;\n character = value.charAt(++index);\n }\n\n while (character === C_HASH) {\n queue += character;\n character = value.charAt(++index);\n }\n\n while (character === C_SPACE || character === C_TAB) {\n queue += character;\n character = value.charAt(++index);\n }\n\n index--;\n }\n\n now.column += subvalue.length;\n now.offset += subvalue.length;\n subvalue += content + queue;\n return eat(subvalue)({\n type: 'heading',\n depth: depth,\n children: self.tokenizeInline(content, now)\n });\n}","'use strict';\n\nmodule.exports = escapes;\nvar defaults = ['\\\\', '`', '*', '{', '}', '[', ']', '(', ')', '#', '+', '-', '.', '!', '_', '>'];\nvar gfm = defaults.concat(['~', '|']);\nvar commonmark = gfm.concat(['\\n', '\"', '$', '%', '&', \"'\", ',', '/', ':', ';', '<', '=', '?', '@', '^']);\nescapes.default = defaults;\nescapes.gfm = gfm;\nescapes.commonmark = commonmark; // Get markdown escapes.\n\nfunction escapes(options) {\n var settings = options || {};\n\n if (settings.commonmark) {\n return commonmark;\n }\n\n return settings.gfm ? gfm : defaults;\n}","'use strict';\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n return value.indexOf('~~', fromIndex);\n}","'use strict';\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n return value.indexOf('\\\\', fromIndex);\n}","'use strict';\n\nmodule.exports = setextHeading;\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_EQUALS = '=';\nvar C_DASH = '-';\nvar MAX_HEADING_INDENT = 3;\n/* Map of characters which can be used to mark setext\n * headers, mapping to their corresponding depth. */\n\nvar SETEXT_MARKERS = {};\nSETEXT_MARKERS[C_EQUALS] = 1;\nSETEXT_MARKERS[C_DASH] = 2;\n\nfunction setextHeading(eat, value, silent) {\n var self = this;\n var now = eat.now();\n var length = value.length;\n var index = -1;\n var subvalue = '';\n var content;\n var queue;\n var character;\n var marker;\n var depth;\n /* Eat initial indentation. */\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE || index >= MAX_HEADING_INDENT) {\n index--;\n break;\n }\n\n subvalue += character;\n }\n /* Eat content. */\n\n\n content = '';\n queue = '';\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character === C_NEWLINE) {\n index--;\n break;\n }\n\n if (character === C_SPACE || character === C_TAB) {\n queue += character;\n } else {\n content += queue + character;\n queue = '';\n }\n }\n\n now.column += subvalue.length;\n now.offset += subvalue.length;\n subvalue += content + queue;\n /* Ensure the content is followed by a newline and a\n * valid marker. */\n\n character = value.charAt(++index);\n marker = value.charAt(++index);\n\n if (character !== C_NEWLINE || !SETEXT_MARKERS[marker]) {\n return;\n }\n\n subvalue += character;\n /* Eat Setext-line. */\n\n queue = marker;\n depth = SETEXT_MARKERS[marker];\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== marker) {\n if (character !== C_NEWLINE) {\n return;\n }\n\n index--;\n break;\n }\n\n queue += character;\n }\n\n if (silent) {\n return true;\n }\n\n return eat(subvalue + queue)({\n type: 'heading',\n depth: depth,\n children: self.tokenizeInline(content, now)\n });\n}","'use strict';\n\nvar toString = Object.prototype.toString;\n\nmodule.exports = function (x) {\n var prototype;\n return toString.call(x) === '[object Object]' && (prototype = Object.getPrototypeOf(x), prototype === null || prototype === Object.getPrototypeOf({}));\n};","\"use strict\";\n\nvar protocols = ['http', 'https', 'mailto', 'tel'];\n\nmodule.exports = function uriTransformer(uri) {\n var url = (uri || '').trim();\n var first = url.charAt(0);\n\n if (first === '#' || first === '/') {\n return url;\n }\n\n var colon = url.indexOf(':');\n\n if (colon === -1) {\n return url;\n }\n\n var length = protocols.length;\n var index = -1;\n\n while (++index < length) {\n var protocol = protocols[index];\n\n if (colon === protocol.length && url.slice(0, protocol.length).toLowerCase() === protocol) {\n return url;\n }\n }\n\n index = url.indexOf('?');\n\n if (index !== -1 && colon > index) {\n return url;\n }\n\n index = url.indexOf('#');\n\n if (index !== -1 && colon > index) {\n return url;\n } // eslint-disable-next-line no-script-url\n\n\n return 'javascript:void(0)';\n};","'use strict';\n\nvar xtend = require('xtend');\n\nvar entities = require('parse-entities');\n\nmodule.exports = factory;\n/* Factory to create an entity decoder. */\n\nfunction factory(ctx) {\n decoder.raw = decodeRaw;\n return decoder;\n /* Normalize `position` to add an `indent`. */\n\n function normalize(position) {\n var offsets = ctx.offset;\n var line = position.line;\n var result = [];\n\n while (++line) {\n if (!(line in offsets)) {\n break;\n }\n\n result.push((offsets[line] || 0) + 1);\n }\n\n return {\n start: position,\n indent: result\n };\n }\n /* Handle a warning.\n * See https://github.com/wooorm/parse-entities\n * for the warnings. */\n\n\n function handleWarning(reason, position, code) {\n if (code === 3) {\n return;\n }\n\n ctx.file.message(reason, position);\n }\n /* Decode `value` (at `position`) into text-nodes. */\n\n\n function decoder(value, position, handler) {\n entities(value, {\n position: normalize(position),\n warning: handleWarning,\n text: handler,\n reference: handler,\n textContext: ctx,\n referenceContext: ctx\n });\n }\n /* Decode `value` (at `position`) into a string. */\n\n\n function decodeRaw(value, position, options) {\n return entities(value, xtend(options, {\n position: normalize(position),\n warning: handleWarning\n }));\n }\n}","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n}","'use strict';\n\nvar trim = require('trim');\n\nvar interrupt = require('../util/interrupt');\n\nmodule.exports = blockquote;\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_GT = '>';\n/* Tokenise a blockquote. */\n\nfunction blockquote(eat, value, silent) {\n var self = this;\n var offsets = self.offset;\n var tokenizers = self.blockTokenizers;\n var interruptors = self.interruptBlockquote;\n var now = eat.now();\n var currentLine = now.line;\n var length = value.length;\n var values = [];\n var contents = [];\n var indents = [];\n var add;\n var index = 0;\n var character;\n var rest;\n var nextIndex;\n var content;\n var line;\n var startIndex;\n var prefixed;\n var exit;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n break;\n }\n\n index++;\n }\n\n if (value.charAt(index) !== C_GT) {\n return;\n }\n\n if (silent) {\n return true;\n }\n\n index = 0;\n\n while (index < length) {\n nextIndex = value.indexOf(C_NEWLINE, index);\n startIndex = index;\n prefixed = false;\n\n if (nextIndex === -1) {\n nextIndex = length;\n }\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n break;\n }\n\n index++;\n }\n\n if (value.charAt(index) === C_GT) {\n index++;\n prefixed = true;\n\n if (value.charAt(index) === C_SPACE) {\n index++;\n }\n } else {\n index = startIndex;\n }\n\n content = value.slice(index, nextIndex);\n\n if (!prefixed && !trim(content)) {\n index = startIndex;\n break;\n }\n\n if (!prefixed) {\n rest = value.slice(index);\n /* Check if the following code contains a possible\n * block. */\n\n if (interrupt(interruptors, tokenizers, self, [eat, rest, true])) {\n break;\n }\n }\n\n line = startIndex === index ? content : value.slice(startIndex, nextIndex);\n indents.push(index - startIndex);\n values.push(line);\n contents.push(content);\n index = nextIndex + 1;\n }\n\n index = -1;\n length = indents.length;\n add = eat(values.join(C_NEWLINE));\n\n while (++index < length) {\n offsets[currentLine] = (offsets[currentLine] || 0) + indents[index];\n currentLine++;\n }\n\n exit = self.enterBlock();\n contents = self.tokenizeBlock(contents.join(C_NEWLINE), now);\n exit();\n return add({\n type: 'blockquote',\n children: contents\n });\n}","'use strict';\n\nvar trim = require('trim');\n\nvar decimal = require('is-decimal');\n\nvar trimTrailingLines = require('trim-trailing-lines');\n\nvar interrupt = require('../util/interrupt');\n\nmodule.exports = paragraph;\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar TAB_SIZE = 4;\n/* Tokenise paragraph. */\n\nfunction paragraph(eat, value, silent) {\n var self = this;\n var settings = self.options;\n var commonmark = settings.commonmark;\n var gfm = settings.gfm;\n var tokenizers = self.blockTokenizers;\n var interruptors = self.interruptParagraph;\n var index = value.indexOf(C_NEWLINE);\n var length = value.length;\n var position;\n var subvalue;\n var character;\n var size;\n var now;\n\n while (index < length) {\n /* Eat everything if there’s no following newline. */\n if (index === -1) {\n index = length;\n break;\n }\n /* Stop if the next character is NEWLINE. */\n\n\n if (value.charAt(index + 1) === C_NEWLINE) {\n break;\n }\n /* In commonmark-mode, following indented lines\n * are part of the paragraph. */\n\n\n if (commonmark) {\n size = 0;\n position = index + 1;\n\n while (position < length) {\n character = value.charAt(position);\n\n if (character === C_TAB) {\n size = TAB_SIZE;\n break;\n } else if (character === C_SPACE) {\n size++;\n } else {\n break;\n }\n\n position++;\n }\n\n if (size >= TAB_SIZE) {\n index = value.indexOf(C_NEWLINE, index + 1);\n continue;\n }\n }\n\n subvalue = value.slice(index + 1);\n /* Check if the following code contains a possible\n * block. */\n\n if (interrupt(interruptors, tokenizers, self, [eat, subvalue, true])) {\n break;\n }\n /* Break if the following line starts a list, when\n * already in a list, or when in commonmark, or when\n * in gfm mode and the bullet is *not* numeric. */\n\n\n if (tokenizers.list.call(self, eat, subvalue, true) && (self.inList || commonmark || gfm && !decimal(trim.left(subvalue).charAt(0)))) {\n break;\n }\n\n position = index;\n index = value.indexOf(C_NEWLINE, index + 1);\n\n if (index !== -1 && trim(value.slice(position, index)) === '') {\n index = position;\n break;\n }\n }\n\n subvalue = value.slice(0, index);\n\n if (trim(subvalue) === '') {\n eat(subvalue);\n return null;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n now = eat.now();\n subvalue = trimTrailingLines(subvalue);\n return eat(subvalue)({\n type: 'paragraph',\n children: self.tokenizeInline(subvalue, now)\n });\n}","/*!\n * repeat-string \n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n'use strict';\n/**\n * Results cache\n */\n\nvar res = '';\nvar cache;\n/**\n * Expose `repeat`\n */\n\nmodule.exports = repeat;\n/**\n * Repeat the given `string` the specified `number`\n * of times.\n *\n * **Example:**\n *\n * ```js\n * var repeat = require('repeat-string');\n * repeat('A', 5);\n * //=> AAAAA\n * ```\n *\n * @param {String} `string` The string to repeat\n * @param {Number} `number` The number of times to repeat the string\n * @return {String} Repeated string\n * @api public\n */\n\nfunction repeat(str, num) {\n if (typeof str !== 'string') {\n throw new TypeError('expected a string');\n } // cover common, quick use cases\n\n\n if (num === 1) return str;\n if (num === 2) return str + str;\n var max = str.length * num;\n\n if (cache !== str || typeof cache === 'undefined') {\n cache = str;\n res = '';\n } else if (res.length >= max) {\n return res.substr(0, max);\n }\n\n while (max > res.length && num > 1) {\n if (num & 1) {\n res += str;\n }\n\n num >>= 1;\n str += str;\n }\n\n res += str;\n res = res.substr(0, max);\n return res;\n}","exports = module.exports = trim;\n\nfunction trim(str) {\n return str.replace(/^\\s*|\\s*$/g, '');\n}\n\nexports.left = function (str) {\n return str.replace(/^\\s*/, '');\n};\n\nexports.right = function (str) {\n return str.replace(/\\s*$/, '');\n};","'use strict';\n\nmodule.exports = text;\n\nfunction text(eat, value, silent) {\n var self = this;\n var methods;\n var tokenizers;\n var index;\n var length;\n var subvalue;\n var position;\n var tokenizer;\n var name;\n var min;\n var now;\n /* istanbul ignore if - never used (yet) */\n\n if (silent) {\n return true;\n }\n\n methods = self.inlineMethods;\n length = methods.length;\n tokenizers = self.inlineTokenizers;\n index = -1;\n min = value.length;\n\n while (++index < length) {\n name = methods[index];\n\n if (name === 'text' || !tokenizers[name]) {\n continue;\n }\n\n tokenizer = tokenizers[name].locator;\n\n if (!tokenizer) {\n eat.file.fail('Missing locator: `' + name + '`');\n }\n\n position = tokenizer.call(self, value, 1);\n\n if (position !== -1 && position < min) {\n min = position;\n }\n }\n\n subvalue = value.slice(0, min);\n now = eat.now();\n self.decode(subvalue, now, function (content, position, source) {\n eat(source || content)({\n type: 'text',\n value: content\n });\n });\n}","'use strict';\n\nvar attributeName = '[a-zA-Z_:][a-zA-Z0-9:._-]*';\nvar unquoted = \"[^\\\"'=<>`\\\\u0000-\\\\u0020]+\";\nvar singleQuoted = '\\'[^\\']*\\'';\nvar doubleQuoted = '\"[^\"]*\"';\nvar attributeValue = '(?:' + unquoted + '|' + singleQuoted + '|' + doubleQuoted + ')';\nvar attribute = '(?:\\\\s+' + attributeName + '(?:\\\\s*=\\\\s*' + attributeValue + ')?)';\nvar openTag = '<[A-Za-z][A-Za-z0-9\\\\-]*' + attribute + '*\\\\s*\\\\/?>';\nvar closeTag = '<\\\\/[A-Za-z][A-Za-z0-9\\\\-]*\\\\s*>';\nvar comment = '|';\nvar processing = '<[?].*?[?]>';\nvar declaration = ']*>';\nvar cdata = '';\nexports.openCloseTag = new RegExp('^(?:' + openTag + '|' + closeTag + ')');\nexports.tag = new RegExp('^(?:' + openTag + '|' + closeTag + '|' + comment + '|' + processing + '|' + declaration + '|' + cdata + ')');","'use strict';\n\nvar decode = require('parse-entities');\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/url');\n\nmodule.exports = url;\nurl.locator = locate;\nurl.notInLink = true;\nvar C_BRACKET_OPEN = '[';\nvar C_BRACKET_CLOSE = ']';\nvar C_PAREN_OPEN = '(';\nvar C_PAREN_CLOSE = ')';\nvar C_LT = '<';\nvar C_AT_SIGN = '@';\nvar HTTP_PROTOCOL = 'http://';\nvar HTTPS_PROTOCOL = 'https://';\nvar MAILTO_PROTOCOL = 'mailto:';\nvar PROTOCOLS = [HTTP_PROTOCOL, HTTPS_PROTOCOL, MAILTO_PROTOCOL];\nvar PROTOCOLS_LENGTH = PROTOCOLS.length;\n\nfunction url(eat, value, silent) {\n var self = this;\n var subvalue;\n var content;\n var character;\n var index;\n var position;\n var protocol;\n var match;\n var length;\n var queue;\n var parenCount;\n var nextCharacter;\n var exit;\n\n if (!self.options.gfm) {\n return;\n }\n\n subvalue = '';\n index = -1;\n length = PROTOCOLS_LENGTH;\n\n while (++index < length) {\n protocol = PROTOCOLS[index];\n match = value.slice(0, protocol.length);\n\n if (match.toLowerCase() === protocol) {\n subvalue = match;\n break;\n }\n }\n\n if (!subvalue) {\n return;\n }\n\n index = subvalue.length;\n length = value.length;\n queue = '';\n parenCount = 0;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (whitespace(character) || character === C_LT) {\n break;\n }\n\n if (character === '.' || character === ',' || character === ':' || character === ';' || character === '\"' || character === '\\'' || character === ')' || character === ']') {\n nextCharacter = value.charAt(index + 1);\n\n if (!nextCharacter || whitespace(nextCharacter)) {\n break;\n }\n }\n\n if (character === C_PAREN_OPEN || character === C_BRACKET_OPEN) {\n parenCount++;\n }\n\n if (character === C_PAREN_CLOSE || character === C_BRACKET_CLOSE) {\n parenCount--;\n\n if (parenCount < 0) {\n break;\n }\n }\n\n queue += character;\n index++;\n }\n\n if (!queue) {\n return;\n }\n\n subvalue += queue;\n content = subvalue;\n\n if (protocol === MAILTO_PROTOCOL) {\n position = queue.indexOf(C_AT_SIGN);\n\n if (position === -1 || position === length - 1) {\n return;\n }\n\n content = content.substr(MAILTO_PROTOCOL.length);\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n exit = self.enterLink();\n content = self.tokenizeInline(content, eat.now());\n exit();\n return eat(subvalue)({\n type: 'link',\n title: null,\n url: decode(subvalue, {\n nonTerminated: false\n }),\n children: content\n });\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/delete');\n\nmodule.exports = strikethrough;\nstrikethrough.locator = locate;\nvar C_TILDE = '~';\nvar DOUBLE = '~~';\n\nfunction strikethrough(eat, value, silent) {\n var self = this;\n var character = '';\n var previous = '';\n var preceding = '';\n var subvalue = '';\n var index;\n var length;\n var now;\n\n if (!self.options.gfm || value.charAt(0) !== C_TILDE || value.charAt(1) !== C_TILDE || whitespace(value.charAt(2))) {\n return;\n }\n\n index = 1;\n length = value.length;\n now = eat.now();\n now.column += 2;\n now.offset += 2;\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character === C_TILDE && previous === C_TILDE && (!preceding || !whitespace(preceding))) {\n /* istanbul ignore if - never used (yet) */\n if (silent) {\n return true;\n }\n\n return eat(DOUBLE + subvalue + DOUBLE)({\n type: 'delete',\n children: self.tokenizeInline(subvalue, now)\n });\n }\n\n subvalue += previous;\n preceding = previous;\n previous = character;\n }\n}","'use strict';\n\nrequire(\"core-js/modules/es.array.reduce.js\");\n\nvar React = require('react');\n\nvar xtend = require('xtend');\n\nvar ReactIs = require('react-is');\n\nvar defaultNodePosition = {\n start: {\n line: 1,\n column: 1,\n offset: 0\n },\n end: {\n line: 1,\n column: 1,\n offset: 0\n }\n};\n\nfunction astToReact(node, options) {\n var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var renderer = options.renderers[node.type]; // nodes generated by plugins may not have position data\n // much of the code after this point will attempt to access properties of the node.position\n // this will set the node position to the parent node's position to prevent errors\n\n if (node.position === undefined) {\n node.position = parent.node && parent.node.position || defaultNodePosition;\n }\n\n var pos = node.position.start;\n var key = [node.type, pos.line, pos.column, index].join('-');\n\n if (!ReactIs.isValidElementType(renderer)) {\n throw new Error(\"Renderer for type `\".concat(node.type, \"` not defined or is not renderable\"));\n }\n\n var nodeProps = getNodeProps(node, key, options, renderer, parent, index);\n return React.createElement(renderer, nodeProps, nodeProps.children || resolveChildren() || undefined);\n\n function resolveChildren() {\n return node.children && node.children.map(function (childNode, i) {\n return astToReact(childNode, options, {\n node: node,\n props: nodeProps\n }, i);\n });\n }\n} // eslint-disable-next-line max-params, complexity\n\n\nfunction getNodeProps(node, key, opts, renderer, parent, index) {\n var props = {\n key: key\n };\n var isTagRenderer = typeof renderer === 'string'; // `sourcePos` is true if the user wants source information (line/column info from markdown source)\n\n if (opts.sourcePos && node.position) {\n props['data-sourcepos'] = flattenPosition(node.position);\n }\n\n if (opts.rawSourcePos && !isTagRenderer) {\n props.sourcePosition = node.position;\n } // If `includeNodeIndex` is true, pass node index info to all non-tag renderers\n\n\n if (opts.includeNodeIndex && parent.node && parent.node.children && !isTagRenderer) {\n props.index = parent.node.children.indexOf(node);\n props.parentChildCount = parent.node.children.length;\n }\n\n var ref = node.identifier !== null && node.identifier !== undefined ? opts.definitions[node.identifier] || {} : null;\n\n switch (node.type) {\n case 'root':\n assignDefined(props, {\n className: opts.className\n });\n break;\n\n case 'text':\n props.nodeKey = key;\n props.children = node.value;\n break;\n\n case 'heading':\n props.level = node.depth;\n break;\n\n case 'list':\n props.start = node.start;\n props.ordered = node.ordered;\n props.tight = !node.loose;\n props.depth = node.depth;\n break;\n\n case 'listItem':\n props.checked = node.checked;\n props.tight = !node.loose;\n props.ordered = node.ordered;\n props.index = node.index;\n props.children = getListItemChildren(node, parent).map(function (childNode, i) {\n return astToReact(childNode, opts, {\n node: node,\n props: props\n }, i);\n });\n break;\n\n case 'definition':\n assignDefined(props, {\n identifier: node.identifier,\n title: node.title,\n url: node.url\n });\n break;\n\n case 'code':\n assignDefined(props, {\n language: node.lang && node.lang.split(/\\s/, 1)[0]\n });\n break;\n\n case 'inlineCode':\n props.children = node.value;\n props.inline = true;\n break;\n\n case 'link':\n assignDefined(props, {\n title: node.title || undefined,\n target: typeof opts.linkTarget === 'function' ? opts.linkTarget(node.url, node.children, node.title) : opts.linkTarget,\n href: opts.transformLinkUri ? opts.transformLinkUri(node.url, node.children, node.title) : node.url\n });\n break;\n\n case 'image':\n assignDefined(props, {\n alt: node.alt || undefined,\n title: node.title || undefined,\n src: opts.transformImageUri ? opts.transformImageUri(node.url, node.children, node.title, node.alt) : node.url\n });\n break;\n\n case 'linkReference':\n assignDefined(props, xtend(ref, {\n href: opts.transformLinkUri ? opts.transformLinkUri(ref.href) : ref.href\n }));\n break;\n\n case 'imageReference':\n assignDefined(props, {\n src: opts.transformImageUri && ref.href ? opts.transformImageUri(ref.href, node.children, ref.title, node.alt) : ref.href,\n title: ref.title || undefined,\n alt: node.alt || undefined\n });\n break;\n\n case 'table':\n case 'tableHead':\n case 'tableBody':\n props.columnAlignment = node.align;\n break;\n\n case 'tableRow':\n props.isHeader = parent.node.type === 'tableHead';\n props.columnAlignment = parent.props.columnAlignment;\n break;\n\n case 'tableCell':\n assignDefined(props, {\n isHeader: parent.props.isHeader,\n align: parent.props.columnAlignment[index]\n });\n break;\n\n case 'virtualHtml':\n props.tag = node.tag;\n break;\n\n case 'html':\n // @todo find a better way than this\n props.isBlock = node.position.start.line !== node.position.end.line;\n props.escapeHtml = opts.escapeHtml;\n props.skipHtml = opts.skipHtml;\n break;\n\n case 'parsedHtml':\n {\n var parsedChildren;\n\n if (node.children) {\n parsedChildren = node.children.map(function (child, i) {\n return astToReact(child, opts, {\n node: node,\n props: props\n }, i);\n });\n }\n\n props.escapeHtml = opts.escapeHtml;\n props.skipHtml = opts.skipHtml;\n props.element = mergeNodeChildren(node, parsedChildren);\n break;\n }\n\n default:\n assignDefined(props, xtend(node, {\n type: undefined,\n position: undefined,\n children: undefined\n }));\n }\n\n if (!isTagRenderer && node.value) {\n props.value = node.value;\n }\n\n return props;\n}\n\nfunction assignDefined(target, attrs) {\n for (var key in attrs) {\n if (typeof attrs[key] !== 'undefined') {\n target[key] = attrs[key];\n }\n }\n}\n\nfunction mergeNodeChildren(node, parsedChildren) {\n var el = node.element;\n\n if (Array.isArray(el)) {\n var Fragment = React.Fragment || 'div';\n return React.createElement(Fragment, null, el);\n }\n\n if (el.props.children || parsedChildren) {\n var children = React.Children.toArray(el.props.children).concat(parsedChildren);\n return React.cloneElement(el, null, children);\n }\n\n return React.cloneElement(el, null);\n}\n\nfunction flattenPosition(pos) {\n return [pos.start.line, ':', pos.start.column, '-', pos.end.line, ':', pos.end.column].map(String).join('');\n}\n\nfunction getListItemChildren(node, parent) {\n if (node.loose) {\n return node.children;\n }\n\n if (parent.node && node.index > 0 && parent.node.children[node.index - 1].loose) {\n return node.children;\n }\n\n return unwrapParagraphs(node);\n}\n\nfunction unwrapParagraphs(node) {\n return node.children.reduce(function (array, child) {\n return array.concat(child.type === 'paragraph' ? child.children || [] : [child]);\n }, []);\n}\n\nmodule.exports = astToReact;","'use strict';\n\nvar alphabetical = require('is-alphabetical');\n\nvar locate = require('../locate/tag');\n\nvar tag = require('../util/html').tag;\n\nmodule.exports = inlineHTML;\ninlineHTML.locator = locate;\nvar EXPRESSION_HTML_LINK_OPEN = /^/i;\n\nfunction inlineHTML(eat, value, silent) {\n var self = this;\n var length = value.length;\n var character;\n var subvalue;\n\n if (value.charAt(0) !== '<' || length < 3) {\n return;\n }\n\n character = value.charAt(1);\n\n if (!alphabetical(character) && character !== '?' && character !== '!' && character !== '/') {\n return;\n }\n\n subvalue = value.match(tag);\n\n if (!subvalue) {\n return;\n }\n /* istanbul ignore if - not used yet. */\n\n\n if (silent) {\n return true;\n }\n\n subvalue = subvalue[0];\n\n if (!self.inLink && EXPRESSION_HTML_LINK_OPEN.test(subvalue)) {\n self.inLink = true;\n } else if (self.inLink && EXPRESSION_HTML_LINK_CLOSE.test(subvalue)) {\n self.inLink = false;\n }\n\n return eat(subvalue)({\n type: 'html',\n value: subvalue\n });\n}","'use strict';\n\nmodule.exports = locate;\nvar PROTOCOLS = ['https://', 'http://', 'mailto:'];\n\nfunction locate(value, fromIndex) {\n var length = PROTOCOLS.length;\n var index = -1;\n var min = -1;\n var position;\n\n if (!this.options.gfm) {\n return -1;\n }\n\n while (++index < length) {\n position = value.indexOf(PROTOCOLS[index], fromIndex);\n\n if (position !== -1 && (position < min || min === -1)) {\n min = position;\n }\n }\n\n return min;\n}","'use strict';\n/* eslint-env browser */\n\nvar el;\nvar semicolon = 59; // ';'\n\nmodule.exports = decodeEntity;\n\nfunction decodeEntity(characters) {\n var entity = '&' + characters + ';';\n var char;\n el = el || document.createElement('i');\n el.innerHTML = entity;\n char = el.textContent; // Some entities do not require the closing semicolon (`¬` - for instance),\n // which leads to situations where parsing the assumed entity of ¬it; will\n // result in the string `¬it;`. When we encounter a trailing semicolon after\n // parsing and the entity to decode was not a semicolon (`;`), we can\n // assume that the matching was incomplete\n\n if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') {\n return false;\n } // If the decoded string is equal to the input, the entity was not valid\n\n\n return char === entity ? false : char;\n}","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar b = \"function\" === typeof Symbol && Symbol.for,\n c = b ? Symbol.for(\"react.element\") : 60103,\n d = b ? Symbol.for(\"react.portal\") : 60106,\n e = b ? Symbol.for(\"react.fragment\") : 60107,\n f = b ? Symbol.for(\"react.strict_mode\") : 60108,\n g = b ? Symbol.for(\"react.profiler\") : 60114,\n h = b ? Symbol.for(\"react.provider\") : 60109,\n k = b ? Symbol.for(\"react.context\") : 60110,\n l = b ? Symbol.for(\"react.async_mode\") : 60111,\n m = b ? Symbol.for(\"react.concurrent_mode\") : 60111,\n n = b ? Symbol.for(\"react.forward_ref\") : 60112,\n p = b ? Symbol.for(\"react.suspense\") : 60113,\n q = b ? Symbol.for(\"react.suspense_list\") : 60120,\n r = b ? Symbol.for(\"react.memo\") : 60115,\n t = b ? Symbol.for(\"react.lazy\") : 60116,\n v = b ? Symbol.for(\"react.block\") : 60121,\n w = b ? Symbol.for(\"react.fundamental\") : 60117,\n x = b ? Symbol.for(\"react.responder\") : 60118,\n y = b ? Symbol.for(\"react.scope\") : 60119;\n\nfunction z(a) {\n if (\"object\" === typeof a && null !== a) {\n var u = a.$$typeof;\n\n switch (u) {\n case c:\n switch (a = a.type, a) {\n case l:\n case m:\n case e:\n case g:\n case f:\n case p:\n return a;\n\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case n:\n case t:\n case r:\n case h:\n return a;\n\n default:\n return u;\n }\n\n }\n\n case d:\n return u;\n }\n }\n}\n\nfunction A(a) {\n return z(a) === m;\n}\n\nexports.AsyncMode = l;\nexports.ConcurrentMode = m;\nexports.ContextConsumer = k;\nexports.ContextProvider = h;\nexports.Element = c;\nexports.ForwardRef = n;\nexports.Fragment = e;\nexports.Lazy = t;\nexports.Memo = r;\nexports.Portal = d;\nexports.Profiler = g;\nexports.StrictMode = f;\nexports.Suspense = p;\n\nexports.isAsyncMode = function (a) {\n return A(a) || z(a) === l;\n};\n\nexports.isConcurrentMode = A;\n\nexports.isContextConsumer = function (a) {\n return z(a) === k;\n};\n\nexports.isContextProvider = function (a) {\n return z(a) === h;\n};\n\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === c;\n};\n\nexports.isForwardRef = function (a) {\n return z(a) === n;\n};\n\nexports.isFragment = function (a) {\n return z(a) === e;\n};\n\nexports.isLazy = function (a) {\n return z(a) === t;\n};\n\nexports.isMemo = function (a) {\n return z(a) === r;\n};\n\nexports.isPortal = function (a) {\n return z(a) === d;\n};\n\nexports.isProfiler = function (a) {\n return z(a) === g;\n};\n\nexports.isStrictMode = function (a) {\n return z(a) === f;\n};\n\nexports.isSuspense = function (a) {\n return z(a) === p;\n};\n\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || \"object\" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);\n};\n\nexports.typeOf = z;","'use strict';\n\nvar openCloseTag = require('../util/html').openCloseTag;\n\nmodule.exports = blockHTML;\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_NEWLINE = '\\n';\nvar C_LT = '<';\n\nfunction blockHTML(eat, value, silent) {\n var self = this;\n var blocks = self.options.blocks;\n var length = value.length;\n var index = 0;\n var next;\n var line;\n var offset;\n var character;\n var count;\n var sequence;\n var subvalue;\n var sequences = [[/^<(script|pre|style)(?=(\\s|>|$))/i, /<\\/(script|pre|style)>/i, true], [/^/, true], [/^<\\?/, /\\?>/, true], [/^/, true], [/^/, true], [new RegExp('^|$))', 'i'), /^$/, true], [new RegExp(openCloseTag.source + '\\\\s*$'), /^$/, false]];\n /* Eat initial spacing. */\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_TAB && character !== C_SPACE) {\n break;\n }\n\n index++;\n }\n\n if (value.charAt(index) !== C_LT) {\n return;\n }\n\n next = value.indexOf(C_NEWLINE, index + 1);\n next = next === -1 ? length : next;\n line = value.slice(index, next);\n offset = -1;\n count = sequences.length;\n\n while (++offset < count) {\n if (sequences[offset][0].test(line)) {\n sequence = sequences[offset];\n break;\n }\n }\n\n if (!sequence) {\n return;\n }\n\n if (silent) {\n return sequence[2];\n }\n\n index = next;\n\n if (!sequence[1].test(line)) {\n while (index < length) {\n next = value.indexOf(C_NEWLINE, index + 1);\n next = next === -1 ? length : next;\n line = value.slice(index + 1, next);\n\n if (sequence[1].test(line)) {\n if (line) {\n index = next;\n }\n\n break;\n }\n\n index = next;\n }\n }\n\n subvalue = value.slice(0, index);\n return eat(subvalue)({\n type: 'html',\n value: subvalue\n });\n}","'use strict';\n\nmodule.exports = decimal; // Check if the given character code, or the character code at the first\n// character, is decimal.\n\nfunction decimal(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character;\n return code >= 48 && code <= 57;\n /* 0-9 */\n}","'use strict';\n\nvar legacy = require('character-entities-legacy');\n\nvar invalid = require('character-reference-invalid');\n\nvar decimal = require('is-decimal');\n\nvar hexadecimal = require('is-hexadecimal');\n\nvar alphanumerical = require('is-alphanumerical');\n\nvar decodeEntity = require('./decode-entity');\n\nmodule.exports = parseEntities;\nvar own = {}.hasOwnProperty;\nvar fromCharCode = String.fromCharCode;\nvar noop = Function.prototype; // Default settings.\n\nvar defaults = {\n warning: null,\n reference: null,\n text: null,\n warningContext: null,\n referenceContext: null,\n textContext: null,\n position: {},\n additional: null,\n attribute: false,\n nonTerminated: true\n}; // Characters.\n\nvar tab = 9; // '\\t'\n\nvar lineFeed = 10; // '\\n'\n\nvar formFeed = 12; // '\\f'\n\nvar space = 32; // ' '\n\nvar ampersand = 38; // '&'\n\nvar semicolon = 59; // ';'\n\nvar lessThan = 60; // '<'\n\nvar equalsTo = 61; // '='\n\nvar numberSign = 35; // '#'\n\nvar uppercaseX = 88; // 'X'\n\nvar lowercaseX = 120; // 'x'\n\nvar replacementCharacter = 65533; // '�'\n// Reference types.\n\nvar name = 'named';\nvar hexa = 'hexadecimal';\nvar deci = 'decimal'; // Map of bases.\n\nvar bases = {};\nbases[hexa] = 16;\nbases[deci] = 10; // Map of types to tests.\n// Each type of character reference accepts different characters.\n// This test is used to detect whether a reference has ended (as the semicolon\n// is not strictly needed).\n\nvar tests = {};\ntests[name] = alphanumerical;\ntests[deci] = decimal;\ntests[hexa] = hexadecimal; // Warning types.\n\nvar namedNotTerminated = 1;\nvar numericNotTerminated = 2;\nvar namedEmpty = 3;\nvar numericEmpty = 4;\nvar namedUnknown = 5;\nvar numericDisallowed = 6;\nvar numericProhibited = 7; // Warning messages.\n\nvar messages = {};\nmessages[namedNotTerminated] = 'Named character references must be terminated by a semicolon';\nmessages[numericNotTerminated] = 'Numeric character references must be terminated by a semicolon';\nmessages[namedEmpty] = 'Named character references cannot be empty';\nmessages[numericEmpty] = 'Numeric character references cannot be empty';\nmessages[namedUnknown] = 'Named character references must be known';\nmessages[numericDisallowed] = 'Numeric character references cannot be disallowed';\nmessages[numericProhibited] = 'Numeric character references cannot be outside the permissible Unicode range'; // Wrap to ensure clean parameters are given to `parse`.\n\nfunction parseEntities(value, options) {\n var settings = {};\n var option;\n var key;\n\n if (!options) {\n options = {};\n }\n\n for (key in defaults) {\n option = options[key];\n settings[key] = option === null || option === undefined ? defaults[key] : option;\n }\n\n if (settings.position.indent || settings.position.start) {\n settings.indent = settings.position.indent || [];\n settings.position = settings.position.start;\n }\n\n return parse(value, settings);\n} // Parse entities.\n// eslint-disable-next-line complexity\n\n\nfunction parse(value, settings) {\n var additional = settings.additional;\n var nonTerminated = settings.nonTerminated;\n var handleText = settings.text;\n var handleReference = settings.reference;\n var handleWarning = settings.warning;\n var textContext = settings.textContext;\n var referenceContext = settings.referenceContext;\n var warningContext = settings.warningContext;\n var pos = settings.position;\n var indent = settings.indent || [];\n var length = value.length;\n var index = 0;\n var lines = -1;\n var column = pos.column || 1;\n var line = pos.line || 1;\n var queue = '';\n var result = [];\n var entityCharacters;\n var namedEntity;\n var terminated;\n var characters;\n var character;\n var reference;\n var following;\n var warning;\n var reason;\n var output;\n var entity;\n var begin;\n var start;\n var type;\n var test;\n var prev;\n var next;\n var diff;\n var end;\n\n if (typeof additional === 'string') {\n additional = additional.charCodeAt(0);\n } // Cache the current point.\n\n\n prev = now(); // Wrap `handleWarning`.\n\n warning = handleWarning ? parseError : noop; // Ensure the algorithm walks over the first character and the end (inclusive).\n\n index--;\n length++;\n\n while (++index < length) {\n // If the previous character was a newline.\n if (character === lineFeed) {\n column = indent[lines] || 1;\n }\n\n character = value.charCodeAt(index);\n\n if (character === ampersand) {\n following = value.charCodeAt(index + 1); // The behaviour depends on the identity of the next character.\n\n if (following === tab || following === lineFeed || following === formFeed || following === space || following === ampersand || following === lessThan || following !== following || additional && following === additional) {\n // Not a character reference.\n // No characters are consumed, and nothing is returned.\n // This is not an error, either.\n queue += fromCharCode(character);\n column++;\n continue;\n }\n\n start = index + 1;\n begin = start;\n end = start;\n\n if (following === numberSign) {\n // Numerical entity.\n end = ++begin; // The behaviour further depends on the next character.\n\n following = value.charCodeAt(end);\n\n if (following === uppercaseX || following === lowercaseX) {\n // ASCII hex digits.\n type = hexa;\n end = ++begin;\n } else {\n // ASCII digits.\n type = deci;\n }\n } else {\n // Named entity.\n type = name;\n }\n\n entityCharacters = '';\n entity = '';\n characters = '';\n test = tests[type];\n end--;\n\n while (++end < length) {\n following = value.charCodeAt(end);\n\n if (!test(following)) {\n break;\n }\n\n characters += fromCharCode(following); // Check if we can match a legacy named reference.\n // If so, we cache that as the last viable named reference.\n // This ensures we do not need to walk backwards later.\n\n if (type === name && own.call(legacy, characters)) {\n entityCharacters = characters;\n entity = legacy[characters];\n }\n }\n\n terminated = value.charCodeAt(end) === semicolon;\n\n if (terminated) {\n end++;\n namedEntity = type === name ? decodeEntity(characters) : false;\n\n if (namedEntity) {\n entityCharacters = characters;\n entity = namedEntity;\n }\n }\n\n diff = 1 + end - start;\n\n if (!terminated && !nonTerminated) {// Empty.\n } else if (!characters) {\n // An empty (possible) entity is valid, unless it’s numeric (thus an\n // ampersand followed by an octothorp).\n if (type !== name) {\n warning(numericEmpty, diff);\n }\n } else if (type === name) {\n // An ampersand followed by anything unknown, and not terminated, is\n // invalid.\n if (terminated && !entity) {\n warning(namedUnknown, 1);\n } else {\n // If theres something after an entity name which is not known, cap\n // the reference.\n if (entityCharacters !== characters) {\n end = begin + entityCharacters.length;\n diff = 1 + end - begin;\n terminated = false;\n } // If the reference is not terminated, warn.\n\n\n if (!terminated) {\n reason = entityCharacters ? namedNotTerminated : namedEmpty;\n\n if (settings.attribute) {\n following = value.charCodeAt(end);\n\n if (following === equalsTo) {\n warning(reason, diff);\n entity = null;\n } else if (alphanumerical(following)) {\n entity = null;\n } else {\n warning(reason, diff);\n }\n } else {\n warning(reason, diff);\n }\n }\n }\n\n reference = entity;\n } else {\n if (!terminated) {\n // All non-terminated numeric entities are not rendered, and trigger a\n // warning.\n warning(numericNotTerminated, diff);\n } // When terminated and number, parse as either hexadecimal or decimal.\n\n\n reference = parseInt(characters, bases[type]); // Trigger a warning when the parsed number is prohibited, and replace\n // with replacement character.\n\n if (prohibited(reference)) {\n warning(numericProhibited, diff);\n reference = fromCharCode(replacementCharacter);\n } else if (reference in invalid) {\n // Trigger a warning when the parsed number is disallowed, and replace\n // by an alternative.\n warning(numericDisallowed, diff);\n reference = invalid[reference];\n } else {\n // Parse the number.\n output = ''; // Trigger a warning when the parsed number should not be used.\n\n if (disallowed(reference)) {\n warning(numericDisallowed, diff);\n } // Stringify the number.\n\n\n if (reference > 0xffff) {\n reference -= 0x10000;\n output += fromCharCode(reference >>> (10 & 0x3ff) | 0xd800);\n reference = 0xdc00 | reference & 0x3ff;\n }\n\n reference = output + fromCharCode(reference);\n }\n } // Found it!\n // First eat the queued characters as normal text, then eat an entity.\n\n\n if (reference) {\n flush();\n prev = now();\n index = end - 1;\n column += end - start + 1;\n result.push(reference);\n next = now();\n next.offset++;\n\n if (handleReference) {\n handleReference.call(referenceContext, reference, {\n start: prev,\n end: next\n }, value.slice(start - 1, end));\n }\n\n prev = next;\n } else {\n // If we could not find a reference, queue the checked characters (as\n // normal characters), and move the pointer to their end.\n // This is possible because we can be certain neither newlines nor\n // ampersands are included.\n characters = value.slice(start - 1, end);\n queue += characters;\n column += characters.length;\n index = end - 1;\n }\n } else {\n // Handle anything other than an ampersand, including newlines and EOF.\n if (character === 10 // Line feed\n ) {\n line++;\n lines++;\n column = 0;\n }\n\n if (character === character) {\n queue += fromCharCode(character);\n column++;\n } else {\n flush();\n }\n }\n } // Return the reduced nodes, and any possible warnings.\n\n\n return result.join(''); // Get current position.\n\n function now() {\n return {\n line: line,\n column: column,\n offset: index + (pos.offset || 0)\n };\n } // “Throw” a parse-error: a warning.\n\n\n function parseError(code, offset) {\n var position = now();\n position.column += offset;\n position.offset += offset;\n handleWarning.call(warningContext, messages[code], position, code);\n } // Flush `queue` (normal text).\n // Macro invoked before each entity and at the end of `value`.\n // Does nothing when `queue` is empty.\n\n\n function flush() {\n if (queue) {\n result.push(queue);\n\n if (handleText) {\n handleText.call(textContext, queue, {\n start: prev,\n end: now()\n });\n }\n\n queue = '';\n }\n }\n} // Check if `character` is outside the permissible unicode range.\n\n\nfunction prohibited(code) {\n return code >= 0xd800 && code <= 0xdfff || code > 0x10ffff;\n} // Check if `character` is disallowed.\n\n\nfunction disallowed(code) {\n return code >= 0x0001 && code <= 0x0008 || code === 0x000b || code >= 0x000d && code <= 0x001f || code >= 0x007f && code <= 0x009f || code >= 0xfdd0 && code <= 0xfdef || (code & 0xffff) === 0xffff || (code & 0xffff) === 0xfffe;\n}","'use strict';\n\nmodule.exports = convert;\n\nfunction convert(test) {\n if (typeof test === 'string') {\n return typeFactory(test);\n }\n\n if (test === null || test === undefined) {\n return ok;\n }\n\n if (typeof test === 'object') {\n return ('length' in test ? anyFactory : matchesFactory)(test);\n }\n\n if (typeof test === 'function') {\n return test;\n }\n\n throw new Error('Expected function, string, or object as test');\n}\n\nfunction convertAll(tests) {\n var results = [];\n var length = tests.length;\n var index = -1;\n\n while (++index < length) {\n results[index] = convert(tests[index]);\n }\n\n return results;\n} // Utility assert each property in `test` is represented in `node`, and each\n// values are strictly equal.\n\n\nfunction matchesFactory(test) {\n return matches;\n\n function matches(node) {\n var key;\n\n for (key in test) {\n if (node[key] !== test[key]) {\n return false;\n }\n }\n\n return true;\n }\n}\n\nfunction anyFactory(tests) {\n var checks = convertAll(tests);\n var length = checks.length;\n return matches;\n\n function matches() {\n var index = -1;\n\n while (++index < length) {\n if (checks[index].apply(this, arguments)) {\n return true;\n }\n }\n\n return false;\n }\n} // Utility to convert a string into a function which checks a given node’s type\n// for said string.\n\n\nfunction typeFactory(test) {\n return type;\n\n function type(node) {\n return Boolean(node && node.type === test);\n }\n} // Utility to return true.\n\n\nfunction ok() {\n return true;\n}","'use strict';\n\nmodule.exports = visit;\n\nvar visitParents = require('unist-util-visit-parents');\n\nvar CONTINUE = visitParents.CONTINUE;\nvar SKIP = visitParents.SKIP;\nvar EXIT = visitParents.EXIT;\nvisit.CONTINUE = CONTINUE;\nvisit.SKIP = SKIP;\nvisit.EXIT = EXIT;\n\nfunction visit(tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor;\n visitor = test;\n test = null;\n }\n\n visitParents(tree, test, overload, reverse);\n\n function overload(node, parents) {\n var parent = parents[parents.length - 1];\n var index = parent ? parent.children.indexOf(node) : null;\n return visitor(node, index, parent);\n }\n}","'use strict';\n\nvar trim = require('trim');\n\nvar repeat = require('repeat-string');\n\nvar getIndent = require('./get-indentation');\n\nmodule.exports = indentation;\nvar C_SPACE = ' ';\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\n/* Remove the minimum indent from every line in `value`.\n * Supports both tab, spaced, and mixed indentation (as\n * well as possible). */\n\nfunction indentation(value, maximum) {\n var values = value.split(C_NEWLINE);\n var position = values.length + 1;\n var minIndent = Infinity;\n var matrix = [];\n var index;\n var indentation;\n var stops;\n var padding;\n values.unshift(repeat(C_SPACE, maximum) + '!');\n\n while (position--) {\n indentation = getIndent(values[position]);\n matrix[position] = indentation.stops;\n\n if (trim(values[position]).length === 0) {\n continue;\n }\n\n if (indentation.indent) {\n if (indentation.indent > 0 && indentation.indent < minIndent) {\n minIndent = indentation.indent;\n }\n } else {\n minIndent = Infinity;\n break;\n }\n }\n\n if (minIndent !== Infinity) {\n position = values.length;\n\n while (position--) {\n stops = matrix[position];\n index = minIndent;\n\n while (index && !(index in stops)) {\n index--;\n }\n\n if (trim(values[position]).length !== 0 && minIndent && index !== minIndent) {\n padding = C_TAB;\n } else {\n padding = '';\n }\n\n values[position] = padding + values[position].slice(index in stops ? stops[index] + 1 : 0);\n }\n }\n\n values.shift();\n return values.join(C_NEWLINE);\n}","'use strict';\n\nvar stringify = require('unist-util-stringify-position');\n\nmodule.exports = VMessage; // Inherit from `Error#`.\n\nfunction VMessagePrototype() {}\n\nVMessagePrototype.prototype = Error.prototype;\nVMessage.prototype = new VMessagePrototype(); // Message properties.\n\nvar proto = VMessage.prototype;\nproto.file = '';\nproto.name = '';\nproto.reason = '';\nproto.message = '';\nproto.stack = '';\nproto.fatal = null;\nproto.column = null;\nproto.line = null; // Construct a new VMessage.\n//\n// Note: We cannot invoke `Error` on the created context, as that adds readonly\n// `line` and `column` attributes on Safari 9, thus throwing and failing the\n// data.\n\nfunction VMessage(reason, position, origin) {\n var parts;\n var range;\n var location;\n\n if (typeof position === 'string') {\n origin = position;\n position = null;\n }\n\n parts = parseOrigin(origin);\n range = stringify(position) || '1:1';\n location = {\n start: {\n line: null,\n column: null\n },\n end: {\n line: null,\n column: null\n }\n }; // Node.\n\n if (position && position.position) {\n position = position.position;\n }\n\n if (position) {\n // Position.\n if (position.start) {\n location = position;\n position = position.start;\n } else {\n // Point.\n location.start = position;\n }\n }\n\n if (reason.stack) {\n this.stack = reason.stack;\n reason = reason.message;\n }\n\n this.message = reason;\n this.name = range;\n this.reason = reason;\n this.line = position ? position.line : null;\n this.column = position ? position.column : null;\n this.location = location;\n this.source = parts[0];\n this.ruleId = parts[1];\n}\n\nfunction parseOrigin(origin) {\n var result = [null, null];\n var index;\n\n if (typeof origin === 'string') {\n index = origin.indexOf(':');\n\n if (index === -1) {\n result[1] = origin;\n } else {\n result[0] = origin.slice(0, index);\n result[1] = origin.slice(index + 1);\n }\n }\n\n return result;\n}","'use strict';\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n var index = value.indexOf('\\n', fromIndex);\n\n while (index > fromIndex) {\n if (value.charAt(index - 1) !== ' ') {\n break;\n }\n\n index--;\n }\n\n return index;\n}","'use strict';\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n return value.indexOf('<', fromIndex);\n}","'use strict';\n\nvar trim = require('trim');\n\nvar word = require('is-word-character');\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/emphasis');\n\nmodule.exports = emphasis;\nemphasis.locator = locate;\nvar C_ASTERISK = '*';\nvar C_UNDERSCORE = '_';\n\nfunction emphasis(eat, value, silent) {\n var self = this;\n var index = 0;\n var character = value.charAt(index);\n var now;\n var pedantic;\n var marker;\n var queue;\n var subvalue;\n var length;\n var prev;\n\n if (character !== C_ASTERISK && character !== C_UNDERSCORE) {\n return;\n }\n\n pedantic = self.options.pedantic;\n subvalue = character;\n marker = character;\n length = value.length;\n index++;\n queue = '';\n character = '';\n\n if (pedantic && whitespace(value.charAt(index))) {\n return;\n }\n\n while (index < length) {\n prev = character;\n character = value.charAt(index);\n\n if (character === marker && (!pedantic || !whitespace(prev))) {\n character = value.charAt(++index);\n\n if (character !== marker) {\n if (!trim(queue) || prev === marker) {\n return;\n }\n\n if (!pedantic && marker === C_UNDERSCORE && word(character)) {\n queue += marker;\n continue;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n now = eat.now();\n now.column++;\n now.offset++;\n return eat(subvalue + queue + marker)({\n type: 'emphasis',\n children: self.tokenizeInline(queue, now)\n });\n }\n\n queue += marker;\n }\n\n if (!pedantic && character === '\\\\') {\n queue += character;\n character = value.charAt(++index);\n }\n\n queue += character;\n index++;\n }\n}","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = removePosition;\n\nfunction removePosition(node, force) {\n visit(node, force ? hard : soft);\n return node;\n}\n\nfunction hard(node) {\n delete node.position;\n}\n\nfunction soft(node) {\n node.position = undefined;\n}","\"use strict\";\n/**\n * Naive, simple plugin to match inline nodes without attributes\n * This allows say foo, but not foo\n * For proper HTML support, you'll want a different plugin\n **/\n\nvar visit = require('unist-util-visit');\n\nvar type = 'virtualHtml';\nvar selfClosingRe = /^<(area|base|br|col|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)\\s*\\/?>$/i;\nvar simpleTagRe = /^<(\\/?)([a-z]+)\\s*>$/;\n\nmodule.exports = function (tree) {\n var open;\n var currentParent;\n visit(tree, 'html', function (node, index, parent) {\n if (currentParent !== parent) {\n open = [];\n currentParent = parent;\n }\n\n var selfClosing = getSelfClosing(node);\n\n if (selfClosing) {\n parent.children.splice(index, 1, {\n type: type,\n tag: selfClosing,\n position: node.position\n });\n return true;\n }\n\n var current = getSimpleTag(node, parent);\n\n if (!current) {\n return true;\n }\n\n var matching = findAndPull(open, current.tag);\n\n if (matching) {\n parent.children.splice(index, 0, virtual(current, matching, parent));\n } else if (!current.opening) {\n open.push(current);\n }\n\n return true;\n }, true // Iterate in reverse\n );\n return tree;\n};\n\nfunction findAndPull(open, matchingTag) {\n var i = open.length;\n\n while (i--) {\n if (open[i].tag === matchingTag) {\n return open.splice(i, 1)[0];\n }\n }\n\n return false;\n}\n\nfunction getSimpleTag(node, parent) {\n var match = node.value.match(simpleTagRe);\n return match ? {\n tag: match[2],\n opening: !match[1],\n node: node\n } : false;\n}\n\nfunction getSelfClosing(node) {\n var match = node.value.match(selfClosingRe);\n return match ? match[1] : false;\n}\n\nfunction virtual(fromNode, toNode, parent) {\n var fromIndex = parent.children.indexOf(fromNode.node);\n var toIndex = parent.children.indexOf(toNode.node);\n var extracted = parent.children.splice(fromIndex, toIndex - fromIndex + 1);\n var children = extracted.slice(1, -1);\n return {\n type: type,\n children: children,\n tag: fromNode.tag,\n position: {\n start: fromNode.node.position.start,\n end: toNode.node.position.end,\n indent: []\n }\n };\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar normalize = require('../util/normalize');\n\nmodule.exports = footnoteDefinition;\nfootnoteDefinition.notInList = true;\nfootnoteDefinition.notInBlock = true;\nvar C_BACKSLASH = '\\\\';\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_BRACKET_OPEN = '[';\nvar C_BRACKET_CLOSE = ']';\nvar C_CARET = '^';\nvar C_COLON = ':';\nvar EXPRESSION_INITIAL_TAB = /^( {4}|\\t)?/gm;\n\nfunction footnoteDefinition(eat, value, silent) {\n var self = this;\n var offsets = self.offset;\n var index;\n var length;\n var subvalue;\n var now;\n var currentLine;\n var content;\n var queue;\n var subqueue;\n var character;\n var identifier;\n var add;\n var exit;\n\n if (!self.options.footnotes) {\n return;\n }\n\n index = 0;\n length = value.length;\n subvalue = '';\n now = eat.now();\n currentLine = now.line;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!whitespace(character)) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n if (value.charAt(index) !== C_BRACKET_OPEN || value.charAt(index + 1) !== C_CARET) {\n return;\n }\n\n subvalue += C_BRACKET_OPEN + C_CARET;\n index = subvalue.length;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_BRACKET_CLOSE) {\n break;\n } else if (character === C_BACKSLASH) {\n queue += character;\n index++;\n character = value.charAt(index);\n }\n\n queue += character;\n index++;\n }\n\n if (!queue || value.charAt(index) !== C_BRACKET_CLOSE || value.charAt(index + 1) !== C_COLON) {\n return;\n }\n\n if (silent) {\n return true;\n }\n\n identifier = normalize(queue);\n subvalue += queue + C_BRACKET_CLOSE + C_COLON;\n index = subvalue.length;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_TAB && character !== C_SPACE) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n now.column += subvalue.length;\n now.offset += subvalue.length;\n queue = '';\n content = '';\n subqueue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_NEWLINE) {\n subqueue = character;\n index++;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_NEWLINE) {\n break;\n }\n\n subqueue += character;\n index++;\n }\n\n queue += subqueue;\n subqueue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE) {\n break;\n }\n\n subqueue += character;\n index++;\n }\n\n if (subqueue.length === 0) {\n break;\n }\n\n queue += subqueue;\n }\n\n if (queue) {\n content += queue;\n queue = '';\n }\n\n content += character;\n index++;\n }\n\n subvalue += content;\n content = content.replace(EXPRESSION_INITIAL_TAB, function (line) {\n offsets[currentLine] = (offsets[currentLine] || 0) + line.length;\n currentLine++;\n return '';\n });\n add = eat(subvalue);\n exit = self.enterBlock();\n content = self.tokenizeBlock(content, now);\n exit();\n return add({\n type: 'footnoteDefinition',\n identifier: identifier,\n children: content\n });\n}","'use strict';\n\nvar unherit = require('unherit');\n\nvar xtend = require('xtend');\n\nvar Parser = require('./lib/parser.js');\n\nmodule.exports = parse;\nparse.Parser = Parser;\n\nfunction parse(options) {\n var Local = unherit(Parser);\n Local.prototype.options = xtend(Local.prototype.options, this.data('settings'), options);\n this.Parser = Local;\n}","'use strict';\n\nvar xtend = require('xtend');\n\nvar toggle = require('state-toggle');\n\nvar vfileLocation = require('vfile-location');\n\nvar unescape = require('./unescape');\n\nvar decode = require('./decode');\n\nvar tokenizer = require('./tokenizer');\n\nmodule.exports = Parser;\n\nfunction Parser(doc, file) {\n this.file = file;\n this.offset = {};\n this.options = xtend(this.options);\n this.setOptions({});\n this.inList = false;\n this.inBlock = false;\n this.inLink = false;\n this.atStart = true;\n this.toOffset = vfileLocation(file).toOffset;\n this.unescape = unescape(this, 'escape');\n this.decode = decode(this);\n}\n\nvar proto = Parser.prototype;\n/* Expose core. */\n\nproto.setOptions = require('./set-options');\nproto.parse = require('./parse');\n/* Expose `defaults`. */\n\nproto.options = require('./defaults');\n/* Enter and exit helpers. */\n\nproto.exitStart = toggle('atStart', true);\nproto.enterList = toggle('inList', false);\nproto.enterLink = toggle('inLink', false);\nproto.enterBlock = toggle('inBlock', false);\n/* Nodes that can interupt a paragraph:\n *\n * ```markdown\n * A paragraph, followed by a thematic break.\n * ___\n * ```\n *\n * In the above example, the thematic break “interupts”\n * the paragraph. */\n\nproto.interruptParagraph = [['thematicBreak'], ['atxHeading'], ['fencedCode'], ['blockquote'], ['html'], ['setextHeading', {\n commonmark: false\n}], ['definition', {\n commonmark: false\n}], ['footnote', {\n commonmark: false\n}]];\n/* Nodes that can interupt a list:\n *\n * ```markdown\n * - One\n * ___\n * ```\n *\n * In the above example, the thematic break “interupts”\n * the list. */\n\nproto.interruptList = [['atxHeading', {\n pedantic: false\n}], ['fencedCode', {\n pedantic: false\n}], ['thematicBreak', {\n pedantic: false\n}], ['definition', {\n commonmark: false\n}], ['footnote', {\n commonmark: false\n}]];\n/* Nodes that can interupt a blockquote:\n *\n * ```markdown\n * > A paragraph.\n * ___\n * ```\n *\n * In the above example, the thematic break “interupts”\n * the blockquote. */\n\nproto.interruptBlockquote = [['indentedCode', {\n commonmark: true\n}], ['fencedCode', {\n commonmark: true\n}], ['atxHeading', {\n commonmark: true\n}], ['setextHeading', {\n commonmark: true\n}], ['thematicBreak', {\n commonmark: true\n}], ['html', {\n commonmark: true\n}], ['list', {\n commonmark: true\n}], ['definition', {\n commonmark: false\n}], ['footnote', {\n commonmark: false\n}]];\n/* Handlers. */\n\nproto.blockTokenizers = {\n newline: require('./tokenize/newline'),\n indentedCode: require('./tokenize/code-indented'),\n fencedCode: require('./tokenize/code-fenced'),\n blockquote: require('./tokenize/blockquote'),\n atxHeading: require('./tokenize/heading-atx'),\n thematicBreak: require('./tokenize/thematic-break'),\n list: require('./tokenize/list'),\n setextHeading: require('./tokenize/heading-setext'),\n html: require('./tokenize/html-block'),\n footnote: require('./tokenize/footnote-definition'),\n definition: require('./tokenize/definition'),\n table: require('./tokenize/table'),\n paragraph: require('./tokenize/paragraph')\n};\nproto.inlineTokenizers = {\n escape: require('./tokenize/escape'),\n autoLink: require('./tokenize/auto-link'),\n url: require('./tokenize/url'),\n html: require('./tokenize/html-inline'),\n link: require('./tokenize/link'),\n reference: require('./tokenize/reference'),\n strong: require('./tokenize/strong'),\n emphasis: require('./tokenize/emphasis'),\n deletion: require('./tokenize/delete'),\n code: require('./tokenize/code-inline'),\n break: require('./tokenize/break'),\n text: require('./tokenize/text')\n};\n/* Expose precedence. */\n\nproto.blockMethods = keys(proto.blockTokenizers);\nproto.inlineMethods = keys(proto.inlineTokenizers);\n/* Tokenizers. */\n\nproto.tokenizeBlock = tokenizer('block');\nproto.tokenizeInline = tokenizer('inline');\nproto.tokenizeFactory = tokenizer;\n/* Get all keys in `value`. */\n\nfunction keys(value) {\n var result = [];\n var key;\n\n for (key in value) {\n result.push(key);\n }\n\n return result;\n}","'use strict';\n\nmodule.exports = hexadecimal; // Check if the given character code, or the character code at the first\n// character, is hexadecimal.\n\nfunction hexadecimal(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character;\n return code >= 97\n /* a */\n && code <= 102 ||\n /* z */\n code >= 65\n /* A */\n && code <= 70\n /* Z */\n || code >= 48\n /* A */\n && code <= 57\n /* Z */\n ;\n}","\"use strict\";\n\nvar HtmlParser = '__RMD_HTML_PARSER__';\nexports.HtmlParser = typeof Symbol === 'undefined' ? HtmlParser : Symbol(HtmlParser);","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/link');\n\nmodule.exports = link;\nlink.locator = locate;\nvar own = {}.hasOwnProperty;\nvar C_BACKSLASH = '\\\\';\nvar C_BRACKET_OPEN = '[';\nvar C_BRACKET_CLOSE = ']';\nvar C_PAREN_OPEN = '(';\nvar C_PAREN_CLOSE = ')';\nvar C_LT = '<';\nvar C_GT = '>';\nvar C_TICK = '`';\nvar C_DOUBLE_QUOTE = '\"';\nvar C_SINGLE_QUOTE = '\\'';\n/* Map of characters, which can be used to mark link\n * and image titles. */\n\nvar LINK_MARKERS = {};\nLINK_MARKERS[C_DOUBLE_QUOTE] = C_DOUBLE_QUOTE;\nLINK_MARKERS[C_SINGLE_QUOTE] = C_SINGLE_QUOTE;\n/* Map of characters, which can be used to mark link\n * and image titles in commonmark-mode. */\n\nvar COMMONMARK_LINK_MARKERS = {};\nCOMMONMARK_LINK_MARKERS[C_DOUBLE_QUOTE] = C_DOUBLE_QUOTE;\nCOMMONMARK_LINK_MARKERS[C_SINGLE_QUOTE] = C_SINGLE_QUOTE;\nCOMMONMARK_LINK_MARKERS[C_PAREN_OPEN] = C_PAREN_CLOSE;\n\nfunction link(eat, value, silent) {\n var self = this;\n var subvalue = '';\n var index = 0;\n var character = value.charAt(0);\n var pedantic = self.options.pedantic;\n var commonmark = self.options.commonmark;\n var gfm = self.options.gfm;\n var closed;\n var count;\n var opening;\n var beforeURL;\n var beforeTitle;\n var subqueue;\n var hasMarker;\n var markers;\n var isImage;\n var content;\n var marker;\n var length;\n var title;\n var depth;\n var queue;\n var url;\n var now;\n var exit;\n var node;\n /* Detect whether this is an image. */\n\n if (character === '!') {\n isImage = true;\n subvalue = character;\n character = value.charAt(++index);\n }\n /* Eat the opening. */\n\n\n if (character !== C_BRACKET_OPEN) {\n return;\n }\n /* Exit when this is a link and we’re already inside\n * a link. */\n\n\n if (!isImage && self.inLink) {\n return;\n }\n\n subvalue += character;\n queue = '';\n index++;\n /* Eat the content. */\n\n length = value.length;\n now = eat.now();\n depth = 0;\n now.column += index;\n now.offset += index;\n\n while (index < length) {\n character = value.charAt(index);\n subqueue = character;\n\n if (character === C_TICK) {\n /* Inline-code in link content. */\n count = 1;\n\n while (value.charAt(index + 1) === C_TICK) {\n subqueue += character;\n index++;\n count++;\n }\n\n if (!opening) {\n opening = count;\n } else if (count >= opening) {\n opening = 0;\n }\n } else if (character === C_BACKSLASH) {\n /* Allow brackets to be escaped. */\n index++;\n subqueue += value.charAt(index);\n /* In GFM mode, brackets in code still count.\n * In all other modes, they don’t. This empty\n * block prevents the next statements are\n * entered. */\n } else if ((!opening || gfm) && character === C_BRACKET_OPEN) {\n depth++;\n } else if ((!opening || gfm) && character === C_BRACKET_CLOSE) {\n if (depth) {\n depth--;\n } else {\n /* Allow white-space between content and\n * url in GFM mode. */\n if (!pedantic) {\n while (index < length) {\n character = value.charAt(index + 1);\n\n if (!whitespace(character)) {\n break;\n }\n\n subqueue += character;\n index++;\n }\n }\n\n if (value.charAt(index + 1) !== C_PAREN_OPEN) {\n return;\n }\n\n subqueue += C_PAREN_OPEN;\n closed = true;\n index++;\n break;\n }\n }\n\n queue += subqueue;\n subqueue = '';\n index++;\n }\n /* Eat the content closing. */\n\n\n if (!closed) {\n return;\n }\n\n content = queue;\n subvalue += queue + subqueue;\n index++;\n /* Eat white-space. */\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!whitespace(character)) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n /* Eat the URL. */\n\n\n character = value.charAt(index);\n markers = commonmark ? COMMONMARK_LINK_MARKERS : LINK_MARKERS;\n queue = '';\n beforeURL = subvalue;\n\n if (character === C_LT) {\n index++;\n beforeURL += C_LT;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_GT) {\n break;\n }\n\n if (commonmark && character === '\\n') {\n return;\n }\n\n queue += character;\n index++;\n }\n\n if (value.charAt(index) !== C_GT) {\n return;\n }\n\n subvalue += C_LT + queue + C_GT;\n url = queue;\n index++;\n } else {\n character = null;\n subqueue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (subqueue && own.call(markers, character)) {\n break;\n }\n\n if (whitespace(character)) {\n if (!pedantic) {\n break;\n }\n\n subqueue += character;\n } else {\n if (character === C_PAREN_OPEN) {\n depth++;\n } else if (character === C_PAREN_CLOSE) {\n if (depth === 0) {\n break;\n }\n\n depth--;\n }\n\n queue += subqueue;\n subqueue = '';\n\n if (character === C_BACKSLASH) {\n queue += C_BACKSLASH;\n character = value.charAt(++index);\n }\n\n queue += character;\n }\n\n index++;\n }\n\n subvalue += queue;\n url = queue;\n index = subvalue.length;\n }\n /* Eat white-space. */\n\n\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!whitespace(character)) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n subvalue += queue;\n /* Eat the title. */\n\n if (queue && own.call(markers, character)) {\n index++;\n subvalue += character;\n queue = '';\n marker = markers[character];\n beforeTitle = subvalue;\n /* In commonmark-mode, things are pretty easy: the\n * marker cannot occur inside the title.\n *\n * Non-commonmark does, however, support nested\n * delimiters. */\n\n if (commonmark) {\n while (index < length) {\n character = value.charAt(index);\n\n if (character === marker) {\n break;\n }\n\n if (character === C_BACKSLASH) {\n queue += C_BACKSLASH;\n character = value.charAt(++index);\n }\n\n index++;\n queue += character;\n }\n\n character = value.charAt(index);\n\n if (character !== marker) {\n return;\n }\n\n title = queue;\n subvalue += queue + character;\n index++;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!whitespace(character)) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n } else {\n subqueue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === marker) {\n if (hasMarker) {\n queue += marker + subqueue;\n subqueue = '';\n }\n\n hasMarker = true;\n } else if (!hasMarker) {\n queue += character;\n } else if (character === C_PAREN_CLOSE) {\n subvalue += queue + marker + subqueue;\n title = queue;\n break;\n } else if (whitespace(character)) {\n subqueue += character;\n } else {\n queue += marker + subqueue + character;\n subqueue = '';\n hasMarker = false;\n }\n\n index++;\n }\n }\n }\n\n if (value.charAt(index) !== C_PAREN_CLOSE) {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n subvalue += C_PAREN_CLOSE;\n url = self.decode.raw(self.unescape(url), eat(beforeURL).test().end, {\n nonTerminated: false\n });\n\n if (title) {\n beforeTitle = eat(beforeTitle).test().end;\n title = self.decode.raw(self.unescape(title), beforeTitle);\n }\n\n node = {\n type: isImage ? 'image' : 'link',\n title: title || null,\n url: url\n };\n\n if (isImage) {\n node.alt = self.decode.raw(self.unescape(content), now) || null;\n } else {\n exit = self.enterLink();\n node.children = self.tokenizeInline(content, now);\n exit();\n }\n\n return eat(subvalue)(node);\n}","'use strict';\n\nvar collapseWhiteSpace = require('collapse-white-space');\n\nmodule.exports = normalize;\n/* Normalize an identifier. Collapses multiple white space\n * characters into a single space, and removes casing. */\n\nfunction normalize(value) {\n return collapseWhiteSpace(value).toLowerCase();\n}","'use strict';\n\nmodule.exports = indentation;\n/* Map of characters, and their column length,\n * which can be used as indentation. */\n\nvar characters = {\n ' ': 1,\n '\\t': 4\n};\n/* Gets indentation information for a line. */\n\nfunction indentation(value) {\n var index = 0;\n var indent = 0;\n var character = value.charAt(index);\n var stops = {};\n var size;\n\n while (character in characters) {\n size = characters[character];\n indent += size;\n\n if (size > 1) {\n indent = Math.floor(indent / size) * size;\n }\n\n stops[indent] = index;\n character = value.charAt(++index);\n }\n\n return {\n indent: indent,\n stops: stops\n };\n}","'use strict';\n\nvar xtend = require('xtend');\n\nvar escapes = require('markdown-escapes');\n\nvar defaults = require('./defaults');\n\nmodule.exports = setOptions;\n\nfunction setOptions(options) {\n var self = this;\n var current = self.options;\n var key;\n var value;\n\n if (options == null) {\n options = {};\n } else if (typeof options === 'object') {\n options = xtend(options);\n } else {\n throw new Error('Invalid value `' + options + '` ' + 'for setting `options`');\n }\n\n for (key in defaults) {\n value = options[key];\n\n if (value == null) {\n value = current[key];\n }\n\n if (key !== 'blocks' && typeof value !== 'boolean' || key === 'blocks' && typeof value !== 'object') {\n throw new Error('Invalid value `' + value + '` for setting `options.' + key + '`');\n }\n\n options[key] = value;\n }\n\n self.options = options;\n self.escape = escapes(options);\n return self;\n}","'use strict';\n\nmodule.exports = visitParents;\n\nvar convert = require('unist-util-is/convert');\n\nvar CONTINUE = true;\nvar SKIP = 'skip';\nvar EXIT = false;\nvisitParents.CONTINUE = CONTINUE;\nvisitParents.SKIP = SKIP;\nvisitParents.EXIT = EXIT;\n\nfunction visitParents(tree, test, visitor, reverse) {\n var is;\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor;\n visitor = test;\n test = null;\n }\n\n is = convert(test);\n one(tree, null, []); // Visit a single node.\n\n function one(node, index, parents) {\n var result = [];\n var subresult;\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents));\n\n if (result[0] === EXIT) {\n return result;\n }\n }\n\n if (node.children && result[0] !== SKIP) {\n subresult = toResult(all(node.children, parents.concat(node)));\n return subresult[0] === EXIT ? subresult : result;\n }\n\n return result;\n } // Visit children in `parent`.\n\n\n function all(children, parents) {\n var min = -1;\n var step = reverse ? -1 : 1;\n var index = (reverse ? children.length : min) + step;\n var result;\n\n while (index > min && index < children.length) {\n result = one(children[index], index, parents);\n\n if (result[0] === EXIT) {\n return result;\n }\n\n index = typeof result[1] === 'number' ? result[1] : index + step;\n }\n }\n}\n\nfunction toResult(value) {\n if (value !== null && typeof value === 'object' && 'length' in value) {\n return value;\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value];\n }\n\n return [value];\n}","'use strict';\n\nmodule.exports = wordCharacter;\nvar fromCode = String.fromCharCode;\nvar re = /\\w/; // Check if the given character code, or the character code at the first\n// character, is a word character.\n\nfunction wordCharacter(character) {\n return re.test(typeof character === 'number' ? fromCode(character) : character.charAt(0));\n}","'use strict';\n\nmodule.exports = thematicBreak;\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_ASTERISK = '*';\nvar C_UNDERSCORE = '_';\nvar C_DASH = '-';\nvar THEMATIC_BREAK_MARKER_COUNT = 3;\n\nfunction thematicBreak(eat, value, silent) {\n var index = -1;\n var length = value.length + 1;\n var subvalue = '';\n var character;\n var marker;\n var markerCount;\n var queue;\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== C_TAB && character !== C_SPACE) {\n break;\n }\n\n subvalue += character;\n }\n\n if (character !== C_ASTERISK && character !== C_DASH && character !== C_UNDERSCORE) {\n return;\n }\n\n marker = character;\n subvalue += character;\n markerCount = 1;\n queue = '';\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character === marker) {\n markerCount++;\n subvalue += queue + marker;\n queue = '';\n } else if (character === C_SPACE) {\n queue += character;\n } else if (markerCount >= THEMATIC_BREAK_MARKER_COUNT && (!character || character === C_NEWLINE)) {\n subvalue += queue;\n\n if (silent) {\n return true;\n }\n\n return eat(subvalue)({\n type: 'thematicBreak'\n });\n } else {\n return;\n }\n }\n}","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","'use strict';\n/* eslint-disable max-params */\n\nvar trim = require('trim');\n\nvar repeat = require('repeat-string');\n\nvar decimal = require('is-decimal');\n\nvar getIndent = require('../util/get-indentation');\n\nvar removeIndent = require('../util/remove-indentation');\n\nvar interrupt = require('../util/interrupt');\n\nmodule.exports = list;\nvar C_ASTERISK = '*';\nvar C_UNDERSCORE = '_';\nvar C_PLUS = '+';\nvar C_DASH = '-';\nvar C_DOT = '.';\nvar C_SPACE = ' ';\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_PAREN_CLOSE = ')';\nvar C_X_LOWER = 'x';\nvar TAB_SIZE = 4;\nvar EXPRESSION_LOOSE_LIST_ITEM = /\\n\\n(?!\\s*$)/;\nvar EXPRESSION_TASK_ITEM = /^\\[([ \\t]|x|X)][ \\t]/;\nvar EXPRESSION_BULLET = /^([ \\t]*)([*+-]|\\d+[.)])( {1,4}(?! )| |\\t|$|(?=\\n))([^\\n]*)/;\nvar EXPRESSION_PEDANTIC_BULLET = /^([ \\t]*)([*+-]|\\d+[.)])([ \\t]+)/;\nvar EXPRESSION_INITIAL_INDENT = /^( {1,4}|\\t)?/gm;\n/* Map of characters which can be used to mark\n * list-items. */\n\nvar LIST_UNORDERED_MARKERS = {};\nLIST_UNORDERED_MARKERS[C_ASTERISK] = true;\nLIST_UNORDERED_MARKERS[C_PLUS] = true;\nLIST_UNORDERED_MARKERS[C_DASH] = true;\n/* Map of characters which can be used to mark\n * list-items after a digit. */\n\nvar LIST_ORDERED_MARKERS = {};\nLIST_ORDERED_MARKERS[C_DOT] = true;\n/* Map of characters which can be used to mark\n * list-items after a digit. */\n\nvar LIST_ORDERED_COMMONMARK_MARKERS = {};\nLIST_ORDERED_COMMONMARK_MARKERS[C_DOT] = true;\nLIST_ORDERED_COMMONMARK_MARKERS[C_PAREN_CLOSE] = true;\n\nfunction list(eat, value, silent) {\n var self = this;\n var commonmark = self.options.commonmark;\n var pedantic = self.options.pedantic;\n var tokenizers = self.blockTokenizers;\n var interuptors = self.interruptList;\n var markers;\n var index = 0;\n var length = value.length;\n var start = null;\n var size = 0;\n var queue;\n var ordered;\n var character;\n var marker;\n var nextIndex;\n var startIndex;\n var prefixed;\n var currentMarker;\n var content;\n var line;\n var prevEmpty;\n var empty;\n var items;\n var allLines;\n var emptyLines;\n var item;\n var enterTop;\n var exitBlockquote;\n var isLoose;\n var node;\n var now;\n var end;\n var indented;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_TAB) {\n size += TAB_SIZE - size % TAB_SIZE;\n } else if (character === C_SPACE) {\n size++;\n } else {\n break;\n }\n\n index++;\n }\n\n if (size >= TAB_SIZE) {\n return;\n }\n\n character = value.charAt(index);\n markers = commonmark ? LIST_ORDERED_COMMONMARK_MARKERS : LIST_ORDERED_MARKERS;\n\n if (LIST_UNORDERED_MARKERS[character] === true) {\n marker = character;\n ordered = false;\n } else {\n ordered = true;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!decimal(character)) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (!queue || markers[character] !== true) {\n return;\n }\n\n start = parseInt(queue, 10);\n marker = character;\n }\n\n character = value.charAt(++index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n return;\n }\n\n if (silent) {\n return true;\n }\n\n index = 0;\n items = [];\n allLines = [];\n emptyLines = [];\n\n while (index < length) {\n nextIndex = value.indexOf(C_NEWLINE, index);\n startIndex = index;\n prefixed = false;\n indented = false;\n\n if (nextIndex === -1) {\n nextIndex = length;\n }\n\n end = index + TAB_SIZE;\n size = 0;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_TAB) {\n size += TAB_SIZE - size % TAB_SIZE;\n } else if (character === C_SPACE) {\n size++;\n } else {\n break;\n }\n\n index++;\n }\n\n if (size >= TAB_SIZE) {\n indented = true;\n }\n\n if (item && size >= item.indent) {\n indented = true;\n }\n\n character = value.charAt(index);\n currentMarker = null;\n\n if (!indented) {\n if (LIST_UNORDERED_MARKERS[character] === true) {\n currentMarker = character;\n index++;\n size++;\n } else {\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!decimal(character)) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n index++;\n\n if (queue && markers[character] === true) {\n currentMarker = character;\n size += queue.length + 1;\n }\n }\n\n if (currentMarker) {\n character = value.charAt(index);\n\n if (character === C_TAB) {\n size += TAB_SIZE - size % TAB_SIZE;\n index++;\n } else if (character === C_SPACE) {\n end = index + TAB_SIZE;\n\n while (index < end) {\n if (value.charAt(index) !== C_SPACE) {\n break;\n }\n\n index++;\n size++;\n }\n\n if (index === end && value.charAt(index) === C_SPACE) {\n index -= TAB_SIZE - 1;\n size -= TAB_SIZE - 1;\n }\n } else if (character !== C_NEWLINE && character !== '') {\n currentMarker = null;\n }\n }\n }\n\n if (currentMarker) {\n if (!pedantic && marker !== currentMarker) {\n break;\n }\n\n prefixed = true;\n } else {\n if (!commonmark && !indented && value.charAt(startIndex) === C_SPACE) {\n indented = true;\n } else if (commonmark && item) {\n indented = size >= item.indent || size > TAB_SIZE;\n }\n\n prefixed = false;\n index = startIndex;\n }\n\n line = value.slice(startIndex, nextIndex);\n content = startIndex === index ? line : value.slice(index, nextIndex);\n\n if (currentMarker === C_ASTERISK || currentMarker === C_UNDERSCORE || currentMarker === C_DASH) {\n if (tokenizers.thematicBreak.call(self, eat, line, true)) {\n break;\n }\n }\n\n prevEmpty = empty;\n empty = !trim(content).length;\n\n if (indented && item) {\n item.value = item.value.concat(emptyLines, line);\n allLines = allLines.concat(emptyLines, line);\n emptyLines = [];\n } else if (prefixed) {\n if (emptyLines.length !== 0) {\n item.value.push('');\n item.trail = emptyLines.concat();\n }\n\n item = {\n value: [line],\n indent: size,\n trail: []\n };\n items.push(item);\n allLines = allLines.concat(emptyLines, line);\n emptyLines = [];\n } else if (empty) {\n if (prevEmpty) {\n break;\n }\n\n emptyLines.push(line);\n } else {\n if (prevEmpty) {\n break;\n }\n\n if (interrupt(interuptors, tokenizers, self, [eat, line, true])) {\n break;\n }\n\n item.value = item.value.concat(emptyLines, line);\n allLines = allLines.concat(emptyLines, line);\n emptyLines = [];\n }\n\n index = nextIndex + 1;\n }\n\n node = eat(allLines.join(C_NEWLINE)).reset({\n type: 'list',\n ordered: ordered,\n start: start,\n loose: null,\n children: []\n });\n enterTop = self.enterList();\n exitBlockquote = self.enterBlock();\n isLoose = false;\n index = -1;\n length = items.length;\n\n while (++index < length) {\n item = items[index].value.join(C_NEWLINE);\n now = eat.now();\n item = eat(item)(listItem(self, item, now), node);\n\n if (item.loose) {\n isLoose = true;\n }\n\n item = items[index].trail.join(C_NEWLINE);\n\n if (index !== length - 1) {\n item += C_NEWLINE;\n }\n\n eat(item);\n }\n\n enterTop();\n exitBlockquote();\n node.loose = isLoose;\n return node;\n}\n\nfunction listItem(ctx, value, position) {\n var offsets = ctx.offset;\n var fn = ctx.options.pedantic ? pedanticListItem : normalListItem;\n var checked = null;\n var task;\n var indent;\n value = fn.apply(null, arguments);\n\n if (ctx.options.gfm) {\n task = value.match(EXPRESSION_TASK_ITEM);\n\n if (task) {\n indent = task[0].length;\n checked = task[1].toLowerCase() === C_X_LOWER;\n offsets[position.line] += indent;\n value = value.slice(indent);\n }\n }\n\n return {\n type: 'listItem',\n loose: EXPRESSION_LOOSE_LIST_ITEM.test(value) || value.charAt(value.length - 1) === C_NEWLINE,\n checked: checked,\n children: ctx.tokenizeBlock(value, position)\n };\n}\n/* Create a list-item using overly simple mechanics. */\n\n\nfunction pedanticListItem(ctx, value, position) {\n var offsets = ctx.offset;\n var line = position.line;\n /* Remove the list-item’s bullet. */\n\n value = value.replace(EXPRESSION_PEDANTIC_BULLET, replacer);\n /* The initial line was also matched by the below, so\n * we reset the `line`. */\n\n line = position.line;\n return value.replace(EXPRESSION_INITIAL_INDENT, replacer);\n /* A simple replacer which removed all matches,\n * and adds their length to `offset`. */\n\n function replacer($0) {\n offsets[line] = (offsets[line] || 0) + $0.length;\n line++;\n return '';\n }\n}\n/* Create a list-item using sane mechanics. */\n\n\nfunction normalListItem(ctx, value, position) {\n var offsets = ctx.offset;\n var line = position.line;\n var max;\n var bullet;\n var rest;\n var lines;\n var trimmedLines;\n var index;\n var length;\n /* Remove the list-item’s bullet. */\n\n value = value.replace(EXPRESSION_BULLET, replacer);\n lines = value.split(C_NEWLINE);\n trimmedLines = removeIndent(value, getIndent(max).indent).split(C_NEWLINE);\n /* We replaced the initial bullet with something\n * else above, which was used to trick\n * `removeIndentation` into removing some more\n * characters when possible. However, that could\n * result in the initial line to be stripped more\n * than it should be. */\n\n trimmedLines[0] = rest;\n offsets[line] = (offsets[line] || 0) + bullet.length;\n line++;\n index = 0;\n length = lines.length;\n\n while (++index < length) {\n offsets[line] = (offsets[line] || 0) + lines[index].length - trimmedLines[index].length;\n line++;\n }\n\n return trimmedLines.join(C_NEWLINE);\n\n function replacer($0, $1, $2, $3, $4) {\n bullet = $1 + $2 + $3;\n rest = $4;\n /* Make sure that the first nine numbered list items\n * can indent with an extra space. That is, when\n * the bullet did not receive an extra final space. */\n\n if (Number($2) < 10 && bullet.length % 2 === 1) {\n $2 = C_SPACE + $2;\n }\n\n max = $1 + repeat(C_SPACE, $2.length) + $3;\n return max + rest;\n }\n}","'use strict';\n\nvar locate = require('../locate/escape');\n\nmodule.exports = escape;\nescape.locator = locate;\n\nfunction escape(eat, value, silent) {\n var self = this;\n var character;\n var node;\n\n if (value.charAt(0) === '\\\\') {\n character = value.charAt(1);\n\n if (self.escape.indexOf(character) !== -1) {\n /* istanbul ignore if - never used (yet) */\n if (silent) {\n return true;\n }\n\n if (character === '\\n') {\n node = {\n type: 'break'\n };\n } else {\n node = {\n type: 'text',\n value: character\n };\n }\n\n return eat('\\\\' + character)(node);\n }\n }\n}","\"use strict\";\n\nvar visit = require('unist-util-visit');\n\nexports.ofType = function (types, mode) {\n return function (node) {\n types.forEach(function (type) {\n return visit(node, type, disallow, true);\n });\n return node;\n };\n\n function disallow(node, index, parent) {\n if (parent) {\n untangle(node, index, parent, mode);\n }\n }\n};\n\nexports.ifNotMatch = function (allowNode, mode) {\n return function (node) {\n visit(node, disallow, true);\n return node;\n };\n\n function disallow(node, index, parent) {\n if (parent && !allowNode(node, index, parent)) {\n untangle(node, index, parent, mode);\n }\n }\n};\n\nfunction untangle(node, index, parent, mode) {\n if (mode === 'remove') {\n parent.children.splice(index, 1);\n } else if (mode === 'unwrap') {\n var args = [index, 1];\n\n if (node.children) {\n args = args.concat(node.children);\n }\n\n Array.prototype.splice.apply(parent.children, args);\n }\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nmodule.exports = table;\nvar C_BACKSLASH = '\\\\';\nvar C_TICK = '`';\nvar C_DASH = '-';\nvar C_PIPE = '|';\nvar C_COLON = ':';\nvar C_SPACE = ' ';\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar MIN_TABLE_COLUMNS = 1;\nvar MIN_TABLE_ROWS = 2;\nvar TABLE_ALIGN_LEFT = 'left';\nvar TABLE_ALIGN_CENTER = 'center';\nvar TABLE_ALIGN_RIGHT = 'right';\nvar TABLE_ALIGN_NONE = null;\n\nfunction table(eat, value, silent) {\n var self = this;\n var index;\n var alignments;\n var alignment;\n var subvalue;\n var row;\n var length;\n var lines;\n var queue;\n var character;\n var hasDash;\n var align;\n var cell;\n var preamble;\n var count;\n var opening;\n var now;\n var position;\n var lineCount;\n var line;\n var rows;\n var table;\n var lineIndex;\n var pipeIndex;\n var first;\n /* Exit when not in gfm-mode. */\n\n if (!self.options.gfm) {\n return;\n }\n /* Get the rows.\n * Detecting tables soon is hard, so there are some\n * checks for performance here, such as the minimum\n * number of rows, and allowed characters in the\n * alignment row. */\n\n\n index = 0;\n lineCount = 0;\n length = value.length + 1;\n lines = [];\n\n while (index < length) {\n lineIndex = value.indexOf(C_NEWLINE, index);\n pipeIndex = value.indexOf(C_PIPE, index + 1);\n\n if (lineIndex === -1) {\n lineIndex = value.length;\n }\n\n if (pipeIndex === -1 || pipeIndex > lineIndex) {\n if (lineCount < MIN_TABLE_ROWS) {\n return;\n }\n\n break;\n }\n\n lines.push(value.slice(index, lineIndex));\n lineCount++;\n index = lineIndex + 1;\n }\n /* Parse the alignment row. */\n\n\n subvalue = lines.join(C_NEWLINE);\n alignments = lines.splice(1, 1)[0] || [];\n index = 0;\n length = alignments.length;\n lineCount--;\n alignment = false;\n align = [];\n\n while (index < length) {\n character = alignments.charAt(index);\n\n if (character === C_PIPE) {\n hasDash = null;\n\n if (alignment === false) {\n if (first === false) {\n return;\n }\n } else {\n align.push(alignment);\n alignment = false;\n }\n\n first = false;\n } else if (character === C_DASH) {\n hasDash = true;\n alignment = alignment || TABLE_ALIGN_NONE;\n } else if (character === C_COLON) {\n if (alignment === TABLE_ALIGN_LEFT) {\n alignment = TABLE_ALIGN_CENTER;\n } else if (hasDash && alignment === TABLE_ALIGN_NONE) {\n alignment = TABLE_ALIGN_RIGHT;\n } else {\n alignment = TABLE_ALIGN_LEFT;\n }\n } else if (!whitespace(character)) {\n return;\n }\n\n index++;\n }\n\n if (alignment !== false) {\n align.push(alignment);\n }\n /* Exit when without enough columns. */\n\n\n if (align.length < MIN_TABLE_COLUMNS) {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n /* Parse the rows. */\n\n\n position = -1;\n rows = [];\n table = eat(subvalue).reset({\n type: 'table',\n align: align,\n children: rows\n });\n\n while (++position < lineCount) {\n line = lines[position];\n row = {\n type: 'tableRow',\n children: []\n };\n /* Eat a newline character when this is not the\n * first row. */\n\n if (position) {\n eat(C_NEWLINE);\n }\n /* Eat the row. */\n\n\n eat(line).reset(row, table);\n length = line.length + 1;\n index = 0;\n queue = '';\n cell = '';\n preamble = true;\n count = null;\n opening = null;\n\n while (index < length) {\n character = line.charAt(index);\n\n if (character === C_TAB || character === C_SPACE) {\n if (cell) {\n queue += character;\n } else {\n eat(character);\n }\n\n index++;\n continue;\n }\n\n if (character === '' || character === C_PIPE) {\n if (preamble) {\n eat(character);\n } else {\n if (character && opening) {\n queue += character;\n index++;\n continue;\n }\n\n if ((cell || character) && !preamble) {\n subvalue = cell;\n\n if (queue.length > 1) {\n if (character) {\n subvalue += queue.slice(0, queue.length - 1);\n queue = queue.charAt(queue.length - 1);\n } else {\n subvalue += queue;\n queue = '';\n }\n }\n\n now = eat.now();\n eat(subvalue)({\n type: 'tableCell',\n children: self.tokenizeInline(cell, now)\n }, row);\n }\n\n eat(queue + character);\n queue = '';\n cell = '';\n }\n } else {\n if (queue) {\n cell += queue;\n queue = '';\n }\n\n cell += character;\n\n if (character === C_BACKSLASH && index !== length - 2) {\n cell += line.charAt(index + 1);\n index++;\n }\n\n if (character === C_TICK) {\n count = 1;\n\n while (line.charAt(index + 1) === character) {\n cell += character;\n index++;\n count++;\n }\n\n if (!opening) {\n opening = count;\n } else if (count >= opening) {\n opening = 0;\n }\n }\n }\n\n preamble = false;\n index++;\n }\n /* Eat the alignment row. */\n\n\n if (!position) {\n eat(C_NEWLINE + alignments);\n }\n }\n\n return table;\n}","'use strict';\n/* Expose. */\n\nmodule.exports = visitParents;\n/* Visit. */\n\nfunction visitParents(tree, type, visitor) {\n var stack = [];\n\n if (typeof type === 'function') {\n visitor = type;\n type = null;\n }\n\n one(tree);\n /* Visit a single node. */\n\n function one(node) {\n var result;\n\n if (!type || node.type === type) {\n result = visitor(node, stack.concat());\n }\n\n if (node.children && result !== false) {\n return all(node.children, node);\n }\n\n return result;\n }\n /* Visit children in `parent`. */\n\n\n function all(children, parent) {\n var length = children.length;\n var index = -1;\n var child;\n stack.push(parent);\n\n while (++index < length) {\n child = children[index];\n\n if (child && one(child) === false) {\n return false;\n }\n }\n\n stack.pop();\n return true;\n }\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/link');\n\nvar normalize = require('../util/normalize');\n\nmodule.exports = reference;\nreference.locator = locate;\nvar T_LINK = 'link';\nvar T_IMAGE = 'image';\nvar T_FOOTNOTE = 'footnote';\nvar REFERENCE_TYPE_SHORTCUT = 'shortcut';\nvar REFERENCE_TYPE_COLLAPSED = 'collapsed';\nvar REFERENCE_TYPE_FULL = 'full';\nvar C_CARET = '^';\nvar C_BACKSLASH = '\\\\';\nvar C_BRACKET_OPEN = '[';\nvar C_BRACKET_CLOSE = ']';\n\nfunction reference(eat, value, silent) {\n var self = this;\n var character = value.charAt(0);\n var index = 0;\n var length = value.length;\n var subvalue = '';\n var intro = '';\n var type = T_LINK;\n var referenceType = REFERENCE_TYPE_SHORTCUT;\n var content;\n var identifier;\n var now;\n var node;\n var exit;\n var queue;\n var bracketed;\n var depth;\n /* Check whether we’re eating an image. */\n\n if (character === '!') {\n type = T_IMAGE;\n intro = character;\n character = value.charAt(++index);\n }\n\n if (character !== C_BRACKET_OPEN) {\n return;\n }\n\n index++;\n intro += character;\n queue = '';\n /* Check whether we’re eating a footnote. */\n\n if (self.options.footnotes && value.charAt(index) === C_CARET) {\n /* Exit if `![^` is found, so the `!` will be seen as text after this,\n * and we’ll enter this function again when `[^` is found. */\n if (type === T_IMAGE) {\n return;\n }\n\n intro += C_CARET;\n index++;\n type = T_FOOTNOTE;\n }\n /* Eat the text. */\n\n\n depth = 0;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_BRACKET_OPEN) {\n bracketed = true;\n depth++;\n } else if (character === C_BRACKET_CLOSE) {\n if (!depth) {\n break;\n }\n\n depth--;\n }\n\n if (character === C_BACKSLASH) {\n queue += C_BACKSLASH;\n character = value.charAt(++index);\n }\n\n queue += character;\n index++;\n }\n\n subvalue = queue;\n content = queue;\n character = value.charAt(index);\n\n if (character !== C_BRACKET_CLOSE) {\n return;\n }\n\n index++;\n subvalue += character;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!whitespace(character)) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n /* Inline footnotes cannot have an identifier. */\n\n if (type !== T_FOOTNOTE && character === C_BRACKET_OPEN) {\n identifier = '';\n queue += character;\n index++;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_BRACKET_OPEN || character === C_BRACKET_CLOSE) {\n break;\n }\n\n if (character === C_BACKSLASH) {\n identifier += C_BACKSLASH;\n character = value.charAt(++index);\n }\n\n identifier += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (character === C_BRACKET_CLOSE) {\n referenceType = identifier ? REFERENCE_TYPE_FULL : REFERENCE_TYPE_COLLAPSED;\n queue += identifier + character;\n index++;\n } else {\n identifier = '';\n }\n\n subvalue += queue;\n queue = '';\n } else {\n if (!content) {\n return;\n }\n\n identifier = content;\n }\n /* Brackets cannot be inside the identifier. */\n\n\n if (referenceType !== REFERENCE_TYPE_FULL && bracketed) {\n return;\n }\n\n subvalue = intro + subvalue;\n\n if (type === T_LINK && self.inLink) {\n return null;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n if (type === T_FOOTNOTE && content.indexOf(' ') !== -1) {\n return eat(subvalue)({\n type: 'footnote',\n children: this.tokenizeInline(content, eat.now())\n });\n }\n\n now = eat.now();\n now.column += intro.length;\n now.offset += intro.length;\n identifier = referenceType === REFERENCE_TYPE_FULL ? identifier : content;\n node = {\n type: type + 'Reference',\n identifier: normalize(identifier)\n };\n\n if (type === T_LINK || type === T_IMAGE) {\n node.referenceType = referenceType;\n }\n\n if (type === T_LINK) {\n exit = self.enterLink();\n node.children = self.tokenizeInline(content, now);\n exit();\n } else if (type === T_IMAGE) {\n node.alt = self.decode.raw(self.unescape(content), now) || null;\n }\n\n return eat(subvalue)(node);\n}","var visitWithParents = require('unist-util-visit-parents');\n\nfunction addListMetadata() {\n return function (ast) {\n visitWithParents(ast, 'list', function (listNode, parents) {\n var depth = 0,\n i,\n n;\n\n for (i = 0, n = parents.length; i < n; i++) {\n if (parents[i].type === 'list') depth += 1;\n }\n\n for (i = 0, n = listNode.children.length; i < n; i++) {\n var child = listNode.children[i];\n child.index = i;\n child.ordered = listNode.ordered;\n }\n\n listNode.depth = depth;\n });\n return ast;\n };\n}\n\nmodule.exports = addListMetadata;","'use strict';\n\nvar wrap = require('./wrap.js');\n\nmodule.exports = trough;\ntrough.wrap = wrap;\nvar slice = [].slice; // Create new middleware.\n\nfunction trough() {\n var fns = [];\n var middleware = {};\n middleware.run = run;\n middleware.use = use;\n return middleware; // Run `fns`. Last argument must be a completion handler.\n\n function run() {\n var index = -1;\n var input = slice.call(arguments, 0, -1);\n var done = arguments[arguments.length - 1];\n\n if (typeof done !== 'function') {\n throw new Error('Expected function as last argument, not ' + done);\n }\n\n next.apply(null, [null].concat(input)); // Run the next `fn`, if any.\n\n function next(err) {\n var fn = fns[++index];\n var params = slice.call(arguments, 0);\n var values = params.slice(1);\n var length = input.length;\n var pos = -1;\n\n if (err) {\n done(err);\n return;\n } // Copy non-nully input into values.\n\n\n while (++pos < length) {\n if (values[pos] === null || values[pos] === undefined) {\n values[pos] = input[pos];\n }\n }\n\n input = values; // Next or done.\n\n if (fn) {\n wrap(fn, next).apply(null, input);\n } else {\n done.apply(null, [null].concat(input));\n }\n }\n } // Add `fn` to the list.\n\n\n function use(fn) {\n if (typeof fn !== 'function') {\n throw new Error('Expected `fn` to be a function, not ' + fn);\n }\n\n fns.push(fn);\n return middleware;\n }\n}","'use strict';\n\nvar xtend = require('xtend');\n\nvar removePosition = require('unist-util-remove-position');\n\nmodule.exports = parse;\nvar C_NEWLINE = '\\n';\nvar EXPRESSION_LINE_BREAKS = /\\r\\n|\\r/g;\n/* Parse the bound file. */\n\nfunction parse() {\n var self = this;\n var value = String(self.file);\n var start = {\n line: 1,\n column: 1,\n offset: 0\n };\n var content = xtend(start);\n var node;\n /* Clean non-unix newlines: `\\r\\n` and `\\r` are all\n * changed to `\\n`. This should not affect positional\n * information. */\n\n value = value.replace(EXPRESSION_LINE_BREAKS, C_NEWLINE);\n\n if (value.charCodeAt(0) === 0xFEFF) {\n value = value.slice(1);\n content.column++;\n content.offset++;\n }\n\n node = {\n type: 'root',\n children: self.tokenizeBlock(value, content),\n position: {\n start: start,\n end: self.eof || xtend(start)\n }\n };\n\n if (!self.options.position) {\n removePosition(node, true);\n }\n\n return node;\n}"],"sourceRoot":""}