-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcomponent---src-pages-resume-index-tsx-ab96f99b7f810b14481a.js.map
1 lines (1 loc) · 677 KB
/
component---src-pages-resume-index-tsx-ab96f99b7f810b14481a.js.map
1
{"version":3,"sources":["webpack:///./node_modules/remark-stringify/lib/util/identity.js","webpack:///./node_modules/remark-stringify/lib/visitors/table-cell.js","webpack:///./node_modules/vfile/core.js","webpack:///./node_modules/hast-util-sanitize/index.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/block-elements.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/util/remove-indentation.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/delete.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/locate/emphasis.js","webpack:///./node_modules/unist-util-stringify-position/index.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/link.js","webpack:///./node_modules/hast-util-to-html/lib/omission/opening.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenize/heading-atx.js","webpack:///./node_modules/mdast-util-compact/index.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenize/list.js","webpack:///./node_modules/remark-parse/lib/defaults.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/locate/tag.js","webpack:///./node_modules/unified/index.js","webpack:///./node_modules/is-alphabetical/index.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","webpack:///./node_modules/remark-stringify/lib/visitors/table.js","webpack:///./node_modules/hast-util-to-html/node_modules/stringify-entities/index.js","webpack:///./node_modules/remark-stringify/lib/macro/compile.js","webpack:///./node_modules/remark-breaks/index.js","webpack:///./node_modules/remark-stringify/lib/util/enclose-title.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/mdast-util-definitions/index.js","webpack:///./node_modules/remark-stringify/lib/visitors/break.js","webpack:///./src/pages/resume/index.tsx","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/remark-stringify/lib/visitors/list.js","webpack:///./src/pages/resume/ResumeItem/index.tsx","webpack:///./node_modules/markdown-table/index.js","webpack:///./node_modules/remark-stringify/lib/visitors/footnote.js","webpack:///./node_modules/unherit/index.js","webpack:///./node_modules/remark-stringify/lib/visitors/inline-code.js","webpack:///./node_modules/remark-stringify/lib/visitors/html.js","webpack:///./node_modules/extend/index.js","webpack:///./node_modules/property-information/html.js","webpack:///./node_modules/hast-util-to-html/lib/doctype.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/parser.js","webpack:///./node_modules/remark-stringify/lib/macro/block.js","webpack:///./node_modules/vfile-location/index.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/locate/url.js","webpack:///./node_modules/remark-stringify/lib/util/enter-link-reference.js","webpack:///./node_modules/process/browser.js","webpack:///./src/components/atoms/SEO/index.tsx","webpack:///./node_modules/remark-parse/lib/tokenizer.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenize/html-block.js","webpack:///./node_modules/remark-stringify/lib/visitors/thematic-break.js","webpack:///./node_modules/unist-util-position/index.js","webpack:///./node_modules/remark-parse/lib/locate/strong.js","webpack:///./node_modules/is-alphanumeric/index.js","webpack:///./node_modules/remark-parse/lib/locate/code-inline.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenize/thematic-break.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenize/code-inline.js","webpack:///./node_modules/style-to-object/index.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenize/emphasis.js","webpack:///./node_modules/remark-parse/lib/locate/emphasis.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenize/link.js","webpack:///./node_modules/hast-to-hyperscript/index.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/strong.js","webpack:///./node_modules/property-information/lib/util/create.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenizer.js","webpack:///./node_modules/remark-stringify/lib/util/entity-prefix-length.js","webpack:///./node_modules/mdast-util-to-hast/lib/wrap.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/remark/node_modules/remark-parse/lib/tokenize/break.js","webpack:///./node_modules/vfile/index.js","webpack:///./node_modules/ccount/index.js","webpack:///./node_modules/property-information/find.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenize/blockquote.js","webpack:///./src/pages/resume/ResumeHeader/index.tsx","webpack:///./node_modules/remark-stringify/lib/macro/unordered-items.js","webpack:///./node_modules/property-information/lib/util/types.js","webpack:///./node_modules/mdast-util-to-hast/lib/index.js","webpack:///./node_modules/hast-util-to-html/index.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/parse.js","webpack:///./node_modules/bail/index.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/code.js","webpack:///./node_modules/hast-util-to-html/lib/element.js","webpack:///./node_modules/remark-parse/lib/tokenize/code-fenced.js","webpack:///./node_modules/remark-parse/lib/tokenize/definition.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/image.js","webpack:///./node_modules/property-information/svg.js","webpack:///./node_modules/is-whitespace-character/index.js","webpack:///./node_modules/x-is-string/index.js","webpack:///./node_modules/remark-parse/lib/block-elements.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/node_modules/remark-parse/lib/tokenize/paragraph.js","webpack:///./node_modules/remark-parse/lib/tokenize/code-indented.js","webpack:///./node_modules/remark-parse/lib/util/interrupt.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenize/html-inline.js","webpack:///./node_modules/hast-util-whitespace/index.js","webpack:///./node_modules/remark-parse/lib/tokenize/strong.js","webpack:///./node_modules/remark-stringify/lib/visitors/delete.js","webpack:///./node_modules/remark-stringify/lib/util/pad.js","webpack:///./node_modules/remark-stringify/lib/visitors/link.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/text.js","webpack:///./node_modules/remark-stringify/lib/escape.js","webpack:///./node_modules/longest-streak/index.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenize/table.js","webpack:///./node_modules/inline-style-parser/index.js","webpack:///./node_modules/hast-util-to-html/lib/omission/omission.js","webpack:///./node_modules/remark-stringify/lib/visitors/image.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","webpack:///./node_modules/remark-parse/lib/tokenize/heading-atx.js","webpack:///./node_modules/markdown-escapes/index.js","webpack:///./node_modules/remark-stringify/lib/visitors/footnote-reference.js","webpack:///./node_modules/remark-parse/lib/locate/delete.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/util/html.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenize/auto-link.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/root.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/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/node_modules/remark-parse/lib/tokenize/newline.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenize/code-indented.js","webpack:///./node_modules/remark-stringify/lib/visitors/blockquote.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenize/strong.js","webpack:///./node_modules/remark-stringify/lib/visitors/root.js","webpack:///./node_modules/remark-parse/lib/tokenize/paragraph.js","webpack:///./node_modules/property-information/lib/html.js","webpack:///./node_modules/@mapbox/hast-util-table-cell-style/index.js","webpack:///./node_modules/repeat-string/index.js","webpack:///./node_modules/trim/index.js","webpack:///./node_modules/remark-stringify/lib/compiler.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/table.js","webpack:///./node_modules/remark-parse/lib/tokenize/text.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/decode.js","webpack:///./node_modules/space-separated-tokens/index.js","webpack:///./node_modules/remark-parse/lib/util/html.js","webpack:///./node_modules/xtend/immutable.js","webpack:///./node_modules/remark-stringify/lib/visitors/footnote-definition.js","webpack:///./node_modules/remark-parse/lib/tokenize/url.js","webpack:///./node_modules/hast-util-is-element/index.js","webpack:///./node_modules/remark-parse/lib/tokenize/delete.js","webpack:///./node_modules/mdast-util-to-hast/lib/footer.js","webpack:///./node_modules/remark-stringify/lib/visitors/code.js","webpack:///./node_modules/property-information/lib/util/info.js","webpack:///./node_modules/remark-stringify/lib/macro/all.js","webpack:///./node_modules/remark-parse/lib/tokenize/html-inline.js","webpack:///./node_modules/remark-parse/lib/locate/url.js","webpack:///./node_modules/remark-stringify/lib/visitors/definition.js","webpack:///./node_modules/unist-util-generated/index.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","webpack:///./node_modules/remark-stringify/lib/visitors/strong.js","webpack:///./node_modules/mdast-util-to-hast/lib/all.js","webpack:///./node_modules/hast-util-to-html/lib/all.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","webpack:///./node_modules/mdast-util-to-hast/lib/revert.js","webpack:///./node_modules/parse-entities/decode-entity.browser.js","webpack:///./node_modules/remark/index.js","webpack:///./node_modules/hast-util-to-html/lib/constants.js","webpack:///./node_modules/hast-util-to-html/lib/omission/util/first.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenize/footnote-definition.js","webpack:///./node_modules/remark-stringify/lib/visitors/link-reference.js","webpack:///./node_modules/remark-parse/lib/tokenize/html-block.js","webpack:///./node_modules/remark-stringify/index.js","webpack:///./node_modules/is-decimal/index.js","webpack:///./node_modules/hast-util-to-html/lib/omission/util/white-space-left.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/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/node_modules/remark-parse/lib/locate/break.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/break.js","webpack:///./node_modules/hast-util-to-html/lib/omission/index.js","webpack:///./node_modules/remark-parse/lib/locate/break.js","webpack:///./node_modules/remark-parse/lib/locate/tag.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/defaults.js","webpack:///./node_modules/hast-util-to-html/lib/text.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/util/interrupt.js","webpack:///./node_modules/property-information/normalize.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenize/code-fenced.js","webpack:///./node_modules/property-information/lib/aria.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/list-item.js","webpack:///./node_modules/remark-parse/lib/tokenize/emphasis.js","webpack:///./node_modules/vfile/node_modules/is-buffer/index.js","webpack:///./node_modules/remark-stringify/lib/set-options.js","webpack:///./node_modules/unist-util-remove-position/index.js","webpack:///./node_modules/remark-stringify/lib/util/label.js","webpack:///./node_modules/remark-stringify/lib/visitors/heading.js","webpack:///./node_modules/hast-util-to-html/lib/comment.js","webpack:///./node_modules/property-information/lib/util/schema.js","webpack:///./node_modules/property-information/lib/xmlns.js","webpack:///./node_modules/property-information/lib/xlink.js","webpack:///./node_modules/hast-util-to-html/lib/omission/util/siblings.js","webpack:///./node_modules/property-information/lib/xml.js","webpack:///./node_modules/remark-parse/lib/tokenize/footnote-definition.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/util/normalize.js","webpack:///./node_modules/mdast-util-to-hast/index.js","webpack:///./node_modules/remark-stringify/lib/visitors/image-reference.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/html.js","webpack:///./node_modules/hast-util-to-html/lib/raw.js","webpack:///./node_modules/remark-parse/index.js","webpack:///./node_modules/trim-lines/index.js","webpack:///./node_modules/remark-parse/lib/parser.js","webpack:///./node_modules/is-hexadecimal/index.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/locate/delete.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenize/delete.js","webpack:///./node_modules/remark-react/index.js","webpack:///./node_modules/remark-stringify/lib/visitors/list-item.js","webpack:///./node_modules/hast-util-to-html/lib/omission/closing.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/unescape.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/set-options.js","webpack:///./node_modules/mdast-util-to-hast/lib/one.js","webpack:///./node_modules/remark-parse/lib/tokenize/link.js","webpack:///./node_modules/remark-stringify/lib/util/copy-identifier-encoding.js","webpack:///./node_modules/remark-parse/lib/util/normalize.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenize/escape.js","webpack:///./node_modules/hast-util-sanitize/lib/index.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/heading.js","webpack:///./node_modules/stringify-entities/index.js","webpack:///./node_modules/remark-stringify/lib/macro/one.js","webpack:///./node_modules/remark-stringify/lib/macro/ordered-items.js","webpack:///./node_modules/hast-util-to-html/lib/index.js","webpack:///./node_modules/remark-stringify/lib/visitors/paragraph.js","webpack:///./node_modules/remark-parse/lib/util/get-indentation.js","webpack:///./node_modules/remark-parse/lib/set-options.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/footnote.js","webpack:///./node_modules/remark/node_modules/remark-parse/index.js","webpack:///./node_modules/is-word-character/index.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/list.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/locate/code-inline.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenize/definition.js","webpack:///./node_modules/remark-parse/lib/tokenize/thematic-break.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/locate/strong.js","webpack:///./node_modules/property-information/lib/util/defined-info.js","webpack:///./node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","webpack:///./src/components/atoms/Button/index.tsx","webpack:///./node_modules/detab/index.js","webpack:///./node_modules/remark-parse/lib/tokenize/list.js","webpack:///./node_modules/remark-parse/lib/tokenize/escape.js","webpack:///./node_modules/hast-util-to-html/lib/one.js","webpack:///./node_modules/remark-stringify/lib/visitors/text.js","webpack:///./node_modules/remark-parse/lib/tokenize/table.js","webpack:///./node_modules/hast-util-to-html/lib/omission/util/place.js","webpack:///./node_modules/unist-util-visit-parents/index.js","webpack:///./node_modules/remark-html/index.js","webpack:///./node_modules/property-information/lib/util/case-sensitive-transform.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenize/url.js","webpack:///./node_modules/unist-builder/index.js","webpack:///./node_modules/comma-separated-tokens/index.js","webpack:///./node_modules/remark-stringify/lib/util/enclose-uri.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/util/get-indentation.js","webpack:///./node_modules/remark-parse/lib/tokenize/reference.js","webpack:///./node_modules/remark-stringify/lib/defaults.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenize/reference.js","webpack:///./node_modules/mdurl/encode.js","webpack:///./node_modules/trough/index.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/locate/escape.js","webpack:///./node_modules/property-information/lib/util/case-insensitive-transform.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenize/text.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/tokenize/heading-setext.js","webpack:///./node_modules/remark-stringify/lib/visitors/emphasis.js","webpack:///./node_modules/remark/node_modules/remark-parse/lib/locate/link.js","webpack:///./node_modules/property-information/lib/util/merge.js","webpack:///./node_modules/remark-parse/lib/parse.js","webpack:///./node_modules/property-information/lib/svg.js"],"names":["module","exports","value","node","this","all","join","path","replace","buffer","VFile","own","hasOwnProperty","proto","prototype","toString","encoding","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","basename","extname","ext","charAt","stem","trim","repeat","getIndent","maximum","indentation","stops","padding","values","split","lineFeed","position","minIndent","Infinity","matrix","unshift","space","exclamationMark","indent","tab","slice","shift","h","footnoteOrder","identifier","id","href","className","u","label","fromIndex","asterisk","underscore","point","line","column","pos","start","end","normalize","props","url","title","convert","element","before","first","place","whiteSpaceLeft","closing","omission","isComment","uniqueHeadMetadata","meta","tableContainers","tableRow","html","head","child","children","map","tagName","Boolean","body","colgroup","parent","prev","tbody","eat","silent","character","queue","depth","pedantic","now","subvalue","content","numberSign","maxFenceCount","offset","type","tokenizeInline","visit","mergeable","commonmark","tree","siblings","concat","splice","decimal","removeIndent","interrupt","ordered","marker","nextIndex","startIndex","prefixed","currentMarker","prevEmpty","empty","items","allLines","emptyLines","item","enterTop","exitBlockquote","indented","tokenizers","blockTokenizers","interuptors","interruptList","size","spread","tabSize","plusSign","dash","dot","rightParenthesis","parseInt","thematicBreak","trail","reset","enterList","enterBlock","listItem","lowercaseX","looseListItemExpression","taskItemExpression","bulletExpression","pedanticBulletExpression","initialIndentExpression","ctx","task","offsets","checked","pedanticListItem","normalListItem","apply","arguments","gfm","match","toLowerCase","test","tokenizeBlock","replacer","$0","max","bullet","rest","lines","trimmedLines","$1","$2","$3","$4","Number","footnotes","blocks","extend","bail","vfile","trough","string","plain","unified","attachers","transformers","namespace","frozen","freezeIndex","processor","key","assertUnfrozen","freeze","use","settings","addPlugin","addList","addPreset","result","plugins","add","plugin","entry","find","parse","doc","Parser","file","assertParser","newable","stringify","Compiler","assertCompiler","assertNode","compile","run","runSync","complete","err","assertDone","processSync","destination","transformer","cb","Promise","executor","resolve","reject","pipeline","p","next","keys","asyncName","code","charCodeAt","markdownTable","loose","looseTable","spaced","spacedTable","pad","paddedTable","stringLength","rows","exit","enterTable","verticalBar","align","delimiter","entities","legacy","hexadecimal","alphanumerical","dangerous","encode","escape","escapeOnly","useNamedReferences","characters","chars","construct","defaultEscapes","toExpression","surrogatePair","bmp","subset","omit","omitOptionalSemicolons","pair","val","toHexReference","_char","_char2","named","numeric","shortest","useShortestReferences","attribute","toNamed","toDecimalReference","one","toUpperCase","RegExp","compact","parser","inlineTokenizers","locator","isRemarkParser","tokenizeBreak","quotationMark","apostrophe","whitespace","decode","locate","autoLink","notInLink","lessThan","greaterThan","atSign","slash","mailto","mailtoLength","hasAtCharacter","link","text","enterLink","nonTerminated","normalizeArray","parts","allowAboveRoot","up","i","last","filter","xs","f","res","resolvedPath","resolvedAbsolute","TypeError","isAbsolute","trailingSlash","substr","paths","Array","relative","from","to","arr","fromParts","toParts","Math","min","samePartsLength","outputParts","hasRoot","matchedSlash","startDot","startPart","preDotState","str","len","cache","normalise","getterFactory","definition","gather","normal","backslash","Resume","useResume","education","work","awards","styles","resume","subTitle","workPlace","shortid","generate","award","eduPlace","npath","nFileName","hardBreak","minBreakLength","state","context","current","visitOrderedItems","visitUnorderedItems","markdownOutput","remark","breaks","remark2react","ResumeItem","company","institution","awarder","area","summary","studyType","startDate","date","endDate","normalizeData","dateStart","Date","getFullYear","dateEnd","isSameYear","resumeItem","time","table","rule","row","cells","spacing","after","alignment","calculateStringLength","lengthNoop","cellCount","rowIndex","rowLength","sizes","dotindex","minCellSize","lowercaseL","lowercaseR","lowercaseC","dotRe","colon","lastDotRe","exec","leftSquareBracket","caret","rightSquareBracket","xtend","inherits","Super","Of","From","parameters","streak","ticks","graveAccent","hasOwn","toStr","gOPD","getOwnPropertyDescriptor","isArray","isPlainObject","obj","hasOwnConstructor","hasIsPrototypeOf","constructor","setProperty","target","enumerable","configurable","newValue","writable","getProperty","src","copy","copyIsArray","clone","deep","merge","xlink","xml","xmlns","aria","smart","quote","tightDoctype","pub","sys","system","toggle","vfileLocation","unescape","tokenizer","setOptions","inList","inBlock","inLink","atStart","toOffset","exitStart","interruptParagraph","interruptBlockquote","newline","indentedCode","fencedCode","blockquote","atxHeading","list","setextHeading","footnote","paragraph","reference","strong","emphasis","deletion","blockMethods","inlineMethods","tokenizeFactory","fences","gap","comment","triple","lang","blank","offsetToPositionFactory","indices","positionToOffsetFactory","isNaN","toPosition","protocols","identity","compiler","exitLink","referenceType","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","e","clearTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","runClearTimeout","Item","array","noop","nextTick","args","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","chdir","dir","umask","SEO","description","site","metaDescription","siteMetadata","htmlAttributes","titleTemplate","property","author","defaultProps","mergeText","mergeBlockquote","location","method","matched","valueLength","self","tokens","methods","updatePosition","onlyAtStart","notInList","notInBlock","fail","eof","lastIndex","Position","getOffset","combined","n","l","validateEat","openCloseTag","count","sequence","elementOpenExpression","sequences","rawOpenExpression","rawCloseExpression","commentOpenExpression","commentCloseExpression","instructionOpenExpression","instructionCloseExpression","directiveOpenExpression","directiveCloseExpression","cdataOpenExpression","cdataCloseExpression","elementCloseExpression","otherElementOpenExpression","source","ruleRepetition","ruleSpaces","factory","displayName","markerCount","maxCount","inlineCode","contentQueue","subqueue","openingCount","found","tickQueue","style","iterator","declaration","output","declarations","hasIterator","word","leftParenthesis","closed","opening","beforeURL","beforeTitle","hasMarker","isImage","raw","alt","svg","hastToReact","spaces","commas","ns","root","dashes","addAttribute","subprop","hyperlike","hyperscript","vdom","vue","schema","info","commaSeparated","mustUseProperty","react","cleanup","styleReplacer","prefix","r","v","vd","_isVue","properties","toH","attributes","elements","parentSchema","styleCase","error","message","parseStyle","Schema","DefinedInfo","transform","substring","ampersand","nodes","fn","callback","invoked","params","done","then","image","VMessage","reason","origin","filePath","fatal","warn","Info","Type","valid","camelcase","datasetToProperty","cap","kebab","datasetToAttribute","interruptors","currentLine","indents","Header","basics","languages","resumeName","resumeLabel","email","website","resumeDownload","contact","city","countryCode","language","fluency","visitors","powers","increment","pow","booleanish","overloadedBoolean","number","spaceSeparated","commaOrSpaceSeparated","allowDangerousHTML","footnoteById","definitions","augment","handlers","left","right","hName","hProperties","hChildren","generated","foot","footer","removePosition","lineBreaksExpression","detab","ccount","constants","selfClosing","close","attrs","tight","closeEmpty","voids","tightClose","equalsTo","safe","attributeName","unquoted","alternative","padLeft","tightLists","collapseEmpty","single","attributeValue","fenceCount","flag","exdentedContent","exdentedClosing","tilde","minFenceCount","skip","isEnclosedURLCharacter","isUnclosedURLCharacter","re","fromCode","fromCharCode","alphabetical","openingFenceEnd","closingFenceStart","closingFenceEnd","trimTrailingLines","blankQueue","subvalueQueue","codeIndent","interruptor","config","tag","inlineHTML","questionMark","htmlLinkOpenExpression","htmlLinkCloseExpression","fence","level","uri","escaped","protocol","trimLines","alphanumeric","escapes","afterNewLine","wordCharBefore","wordCharAfter","markers","escapable","blankExpression","inTable","shortcut","https","http","lastIndexOf","expected","alignments","hasDash","cell","preamble","lineCount","lineIndex","pipeIndex","minRows","center","minColumns","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","NEWLINE","FORWARD_SLASH","ASTERISK","EMPTY_STRING","TYPE_COMMENT","TYPE_DECLARATION","lineno","errorsList","msg","filename","m","comments","rules","c","ret","decl","decls","collapse","defaults","openTag","closeTag","wrap","maxIndent","equalsToDepth","dashDepth","x","getPrototypeOf","decoder","warning","handleWarning","handler","textContext","referenceContext","create","ctor","superCtor","super_","TempCtor","block","types","caseInsensitiveTransform","_boolean","acceptcharset","classname","htmlfor","httpequiv","abbr","accept","acceptCharset","accessKey","action","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","as","async","autoCapitalize","autoComplete","autoFocus","autoPlay","capture","charSet","cite","cols","colSpan","contentEditable","controls","controlsList","coords","crossOrigin","dateTime","decoding","defer","dirName","disabled","download","draggable","encType","enterKeyHint","form","formAction","formEncType","formMethod","formNoValidate","formTarget","headers","height","hidden","high","hrefLang","htmlFor","httpEquiv","imageSizes","imageSrcSet","inputMode","integrity","is","isMap","itemId","itemProp","itemRef","itemScope","itemType","kind","loop","low","manifest","maxLength","media","minLength","multiple","muted","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforePrint","onBeforeUnload","onBlur","onCancel","onCanPlay","onCanPlayThrough","onChange","onClick","onClose","onContextMenu","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onFormData","onHashChange","onInput","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","open","optimum","pattern","ping","placeholder","playsInline","poster","preload","readOnly","referrerPolicy","rel","required","reversed","rowSpan","sandbox","scope","scoped","seamless","selected","shape","slot","span","spellCheck","srcDoc","srcLang","srcSet","step","tabIndex","translate","typeMustMatch","useMap","width","aLink","archive","axis","background","bgColor","border","borderColor","bottomMargin","cellPadding","cellSpacing","charOff","classId","clear","codeBase","codeType","color","declare","event","face","frame","frameBorder","hSpace","leftMargin","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","object","profile","prompt","rev","rightMargin","scheme","scrolling","standby","topMargin","valueType","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","results","security","unselectable","hastCssPropertyMap","valign","visitor","hastName","appendStyle","prevStyle","nextStyle","num","enterLinkReference","heading","linkReference","imageReference","footnoteReference","footnoteDefinition","tableCell","out","alignLength","input","whiteSpace","comma","semicolon","protocolsLength","parenCount","nextCharacter","tagNames","strikethrough","previous","preceding","def","backReference","tail","listItems","listItemIndent","defined","optional","revert","subtype","suffix","el","entity","document","createElement","innerHTML","textContent","unquotedSafe","singleQuoted","doubleQuoted","includeWhiteSpace","EXPRESSION_INITIAL_TAB","collapsed","unherit","Local","isText","ignore","toml","yaml","invalid","decodeEntity","option","entityCharacters","namedEntity","terminated","following","begin","diff","additional","handleText","handleReference","warningContext","formFeed","uppercaseX","hexa","deci","tests","namedUnknown","namedNotTerminated","namedEmpty","numericNotTerminated","bases","numericProhibited","replacementCharacter","numericDisallowed","disallowed","numericEmpty","flush","Function","typeFactory","ok","anyFactory","matchesFactory","checks","convertAll","visitParents","CONTINUE","SKIP","EXIT","reverse","parents","VMessagePrototype","range","parseOrigin","stack","ruleId","isLiteral","_","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","role","container","listItemLoose","listLoose","isBuffer","escapeFactory","validate","maps","raise","encodeFactory","numbers","mixed","1","hard","soft","force","setext","closeAtx","xmlnsxlink","xmlnsXLink","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xmlLang","xmlBase","xmlSpace","collapseWhiteSpace","ws","globalCreateElement","Fragment","fragment","globalFragment","clean","sanitize","toHastOptions","toHast","components","remarkReactComponents","tableElements","toHAST","tableCellStyle","globalReact","ceil","optionGroup","dataListItem","menuContent","ruby","tableContainer","confusingParagraphParent","clearParagraphSibling","headOrColgroupOrCaption","rubyElement","li","dt","dd","rt","rp","optgroup","menuitem","caption","thead","tfoot","tr","td","th","unknown","entityPrefixLength","punctuationExppresion","allData","commentEnd","nodeSchema","doctype","allowDoctypes","handleDoctypeName","allowComments","handleCommentValue","handleTagName","allowed","reqs","toPropertyValueMap","handlePropertyValues","handlePropertyValue","replacement","strip","handleProtocol","clobber","clobberPrefix","ancestors","_char3","incrementListMarker","quoteSmart","allowParseErrors","allowDangerousCharacters","omitOptionalTags","preferUnquoted","tightAttributes","tightCommaSeparatedLists","tightSelfClosing","collapseEmptyAttributes","closeSelfClosing","closeEmptyElements","spaceSize","floor","checksLength","mask","check","mark","Button","button","carriageReturn","subresult","toResult","toHtml","hast","assign","padRight","always","expression","full","bracketed","intro","encodeCache","exclude","keepEscaped","nextCode","defaultChars","ch","getEncodeCache","encodeURIComponent","componentChars","fns","middleware","caseSensitiveTransform","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillOpacity","fillRule","floodColor","floodOpacity","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeOpacity","strokeWidth","textAnchor","textDecoration","textRendering","typeOf","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cursor","cx","cy","d","defaultAction","descent","diffuseConstant","direction","display","dur","divisor","dx","dy","edgeMode","editable","elevation","exponent","externalResourcesRequired","fill","filterRes","filterUnits","focusable","focusHighlight","format","fr","fx","fy","g1","g2","glyphRef","gradientTransform","gradientUnits","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in2","intercept","k","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","mode","numOctaves","observer","opacity","operator","orient","orientation","overflow","overlay","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","resource","restart","rotate","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stroke","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","u1","u2","unicode","viewBox","viewTarget","visibility","widths","x1","x2","xChannelSelector","y","y1","y2","yChannelSelector","z","zoomAndPan"],"mappings":"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","file":"component---src-pages-resume-index-tsx-ab96f99b7f810b14481a.js","sourcesContent":["'use strict';\n\nmodule.exports = identity;\n\nfunction identity(value) {\n return value;\n}","'use strict';\n\nmodule.exports = tableCell;\n\nfunction tableCell(node) {\n return this.all(node).join('');\n}","'use strict';\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\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; // Order of setting (least specific to most), we need this because otherwise\n// `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n// stem can be set.\n\nvar order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']; // 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(); // 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 } // 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} // 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}); // 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}); // 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}); // 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}); // 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}); // 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} // Assert that `part` is not a path (i.e., does 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} // 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} // 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\nmodule.exports = require('./lib');","'use strict';\n\nmodule.exports = ['address', 'article', 'aside', 'base', 'basefont', 'blockquote', 'body', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dialog', 'dir', 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'legend', 'li', 'link', 'main', 'menu', 'menuitem', 'meta', 'nav', 'noframes', 'ol', 'optgroup', 'option', 'p', 'param', 'pre', 'section', 'source', 'title', 'summary', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul'];","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.split\");\n\nvar trim = require('trim');\n\nvar repeat = require('repeat-string');\n\nvar getIndent = require('./get-indentation');\n\nmodule.exports = indentation;\nvar tab = '\\t';\nvar lineFeed = '\\n';\nvar space = ' ';\nvar exclamationMark = '!'; // Remove the minimum indent from every line in `value`. Supports both tab,\n// spaced, and mixed indentation (as well as possible).\n\nfunction indentation(value, maximum) {\n var values = value.split(lineFeed);\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(space, maximum) + exclamationMark);\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 = 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(lineFeed);\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = footnoteReference;\n\nvar u = require('unist-builder');\n\nfunction footnoteReference(h, node) {\n var footnoteOrder = h.footnoteOrder;\n var identifier = String(node.identifier);\n\n if (footnoteOrder.indexOf(identifier) === -1) {\n footnoteOrder.push(identifier);\n }\n\n return h(node.position, 'sup', {\n id: 'fnref-' + identifier\n }, [h(node, 'a', {\n href: '#fn-' + identifier,\n className: ['footnote-ref']\n }, [u('text', node.label || identifier)])]);\n}","'use strict';\n\nmodule.exports = strikethrough;\n\nvar all = require('../all');\n\nfunction strikethrough(h, node) {\n return h(node, 'del', all(h, node));\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\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 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\nvar normalize = require('mdurl/encode');\n\nvar all = require('../all');\n\nmodule.exports = link;\n\nfunction link(h, node) {\n var props = {\n href: normalize(node.url)\n };\n\n if (node.title !== null && node.title !== undefined) {\n props.title = node.title;\n }\n\n return h(node, 'a', props, all(h, node));\n}","'use strict';\n\nvar convert = require('unist-util-is/convert');\n\nvar element = require('hast-util-is-element');\n\nvar before = require('./util/siblings').before;\n\nvar first = require('./util/first');\n\nvar place = require('./util/place');\n\nvar whiteSpaceLeft = require('./util/white-space-left');\n\nvar closing = require('./closing');\n\nvar omission = require('./omission');\n\nvar own = {}.hasOwnProperty;\nvar isComment = convert('comment');\nvar uniqueHeadMetadata = ['title', 'base'];\nvar meta = ['meta', 'link', 'script', 'style', 'template'];\nvar tableContainers = ['thead', 'tbody'];\nvar tableRow = 'tr';\nmodule.exports = omission({\n html: html,\n head: head,\n body: body,\n colgroup: colgroup,\n tbody: tbody\n}); // Whether to omit `<html>`.\n\nfunction html(node) {\n var head = first(node);\n return !head || !isComment(head);\n} // Whether to omit `<head>`.\n\n\nfunction head(node) {\n var children = node.children;\n var length = children.length;\n var map = {};\n var index = -1;\n var child;\n var name;\n\n while (++index < length) {\n child = children[index];\n name = child.tagName;\n\n if (element(child, uniqueHeadMetadata)) {\n if (own.call(map, name)) {\n return false;\n }\n\n map[name] = true;\n }\n }\n\n return Boolean(length);\n} // Whether to omit `<body>`.\n\n\nfunction body(node) {\n var head = first(node, true);\n return !head || !isComment(head) && !whiteSpaceLeft(head) && !element(head, meta);\n} // Whether to omit `<colgroup>`.\n// The spec describes some logic for the opening tag, but it’s easier to\n// implement in the closing tag, to the same effect, so we handle it there\n// instead.\n\n\nfunction colgroup(node, index, parent) {\n var prev = before(parent, index);\n var head = first(node, true); // Previous colgroup was already omitted.\n\n if (element(prev, 'colgroup') && closing(prev, place(parent, prev), parent)) {\n return false;\n }\n\n return head && element(head, 'col');\n} // Whether to omit `<tbody>`.\n\n\nfunction tbody(node, index, parent) {\n var prev = before(parent, index);\n var head = first(node); // Previous table section was already omitted.\n\n if (element(prev, tableContainers) && closing(prev, place(parent, prev), parent)) {\n return false;\n }\n\n return head && element(head, tableRow);\n}","'use strict';\n\nmodule.exports = atxHeading;\nvar lineFeed = '\\n';\nvar tab = '\\t';\nvar space = ' ';\nvar numberSign = '#';\nvar maxFenceCount = 6;\n\nfunction atxHeading(eat, value, silent) {\n var self = this;\n var pedantic = self.options.pedantic;\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; // Eat initial spacing.\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== space && character !== tab) {\n index--;\n break;\n }\n\n subvalue += character;\n } // Eat hashes.\n\n\n depth = 0;\n\n while (++index <= length) {\n character = value.charAt(index);\n\n if (character !== numberSign) {\n index--;\n break;\n }\n\n subvalue += character;\n depth++;\n }\n\n if (depth > maxFenceCount) {\n return;\n }\n\n if (!depth || !pedantic && value.charAt(index + 1) === numberSign) {\n return;\n }\n\n length = value.length + 1; // Eat intermediate white-space.\n\n queue = '';\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== space && character !== tab) {\n index--;\n break;\n }\n\n queue += character;\n } // Exit when not in pedantic mode without spacing.\n\n\n if (!pedantic && queue.length === 0 && character && character !== lineFeed) {\n return;\n }\n\n if (silent) {\n return true;\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 === lineFeed) {\n break;\n }\n\n if (character !== space && character !== tab && character !== numberSign) {\n content += queue + character;\n queue = '';\n continue;\n }\n\n while (character === space || character === tab) {\n queue += character;\n character = value.charAt(++index);\n } // `#` without a queue is part of the content.\n\n\n if (!pedantic && content && !queue && character === numberSign) {\n content += character;\n continue;\n }\n\n while (character === numberSign) {\n queue += character;\n character = value.charAt(++index);\n }\n\n while (character === space || character === 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\nvar visit = require('unist-util-visit');\n\nmodule.exports = compact; // Make an mdast tree compact by merging adjacent text nodes.\n\nfunction compact(tree, commonmark) {\n visit(tree, visitor);\n return tree;\n\n function visitor(child, index, parent) {\n var siblings = parent ? parent.children : [];\n var prev = index && siblings[index - 1];\n\n if (prev && child.type === prev.type && mergeable(prev, commonmark) && mergeable(child, commonmark)) {\n if (child.value) {\n prev.value += child.value;\n }\n\n if (child.children) {\n prev.children = prev.children.concat(child.children);\n }\n\n siblings.splice(index, 1);\n\n if (prev.position && child.position) {\n prev.position.end = child.position.end;\n }\n\n return index;\n }\n }\n}\n\nfunction mergeable(node, commonmark) {\n var start;\n var end;\n\n if (node.type === 'text') {\n if (!node.position) {\n return true;\n }\n\n start = node.position.start;\n end = node.position.end; // Only merge nodes which occupy the same size as their `value`.\n\n return start.line !== end.line || end.column - start.column === node.value.length;\n }\n\n return commonmark && node.type === 'blockquote';\n}","'use strict';\n/* eslint-disable max-params */\n\nrequire(\"core-js/modules/es6.number.constructor\");\n\nrequire(\"core-js/modules/es6.regexp.split\");\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nrequire(\"core-js/modules/es6.regexp.match\");\n\nrequire(\"core-js/modules/es6.array.index-of\");\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 asterisk = '*';\nvar underscore = '_';\nvar plusSign = '+';\nvar dash = '-';\nvar dot = '.';\nvar space = ' ';\nvar lineFeed = '\\n';\nvar tab = '\\t';\nvar rightParenthesis = ')';\nvar lowercaseX = 'x';\nvar tabSize = 4;\nvar looseListItemExpression = /\\n\\n(?!\\s*$)/;\nvar taskItemExpression = /^\\[([ \\t]|x|X)][ \\t]/;\nvar bulletExpression = /^([ \\t]*)([*+-]|\\d+[.)])( {1,4}(?! )| |\\t|$|(?=\\n))([^\\n]*)/;\nvar pedanticBulletExpression = /^([ \\t]*)([*+-]|\\d+[.)])([ \\t]+)/;\nvar initialIndentExpression = /^( {1,4}|\\t)?/gm;\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 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 spread = false;\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 === tab) {\n size += tabSize - size % tabSize;\n } else if (character === space) {\n size++;\n } else {\n break;\n }\n\n index++;\n }\n\n if (size >= tabSize) {\n return;\n }\n\n character = value.charAt(index);\n\n if (character === asterisk || character === plusSign || character === dash) {\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 || !(character === dot || commonmark && character === rightParenthesis)) {\n return;\n }\n\n start = parseInt(queue, 10);\n marker = character;\n }\n\n character = value.charAt(++index);\n\n if (character !== space && character !== tab && (pedantic || character !== lineFeed && character !== '')) {\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(lineFeed, index);\n startIndex = index;\n prefixed = false;\n indented = false;\n\n if (nextIndex === -1) {\n nextIndex = length;\n }\n\n end = index + tabSize;\n size = 0;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === tab) {\n size += tabSize - size % tabSize;\n } else if (character === space) {\n size++;\n } else {\n break;\n }\n\n index++;\n }\n\n if (size >= tabSize) {\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 (character === asterisk || character === plusSign || character === dash) {\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 && (character === dot || commonmark && character === rightParenthesis)) {\n currentMarker = character;\n size += queue.length + 1;\n }\n }\n\n if (currentMarker) {\n character = value.charAt(index);\n\n if (character === tab) {\n size += tabSize - size % tabSize;\n index++;\n } else if (character === space) {\n end = index + tabSize;\n\n while (index < end) {\n if (value.charAt(index) !== space) {\n break;\n }\n\n index++;\n size++;\n }\n\n if (index === end && value.charAt(index) === space) {\n index -= tabSize - 1;\n size -= tabSize - 1;\n }\n } else if (character !== lineFeed && 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) === space) {\n indented = true;\n } else if (commonmark && item) {\n indented = size >= item.indent || size > tabSize;\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 === asterisk || currentMarker === underscore || currentMarker === dash) {\n if (tokenizers.thematicBreak.call(self, eat, line, true)) {\n break;\n }\n }\n\n prevEmpty = empty;\n empty = !prefixed && !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 spread = true;\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 && !commonmark) {\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(lineFeed)).reset({\n type: 'list',\n ordered: ordered,\n start: start,\n spread: spread,\n children: []\n });\n enterTop = self.enterList();\n exitBlockquote = self.enterBlock();\n index = -1;\n length = items.length;\n\n while (++index < length) {\n item = items[index].value.join(lineFeed);\n now = eat.now();\n eat(item)(listItem(self, item, now), node);\n item = items[index].trail.join(lineFeed);\n\n if (index !== length - 1) {\n item += lineFeed;\n }\n\n eat(item);\n }\n\n enterTop();\n exitBlockquote();\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(taskItemExpression);\n\n if (task) {\n indent = task[0].length;\n checked = task[1].toLowerCase() === lowercaseX;\n offsets[position.line] += indent;\n value = value.slice(indent);\n }\n }\n\n return {\n type: 'listItem',\n spread: looseListItemExpression.test(value),\n checked: checked,\n children: ctx.tokenizeBlock(value, position)\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; // Remove the list-item’s bullet.\n\n value = value.replace(pedanticBulletExpression, replacer); // The initial line was also matched by the below, so we reset the `line`.\n\n line = position.line;\n return value.replace(initialIndentExpression, replacer); // A simple replacer which removed all matches, and adds their length to\n // `offset`.\n\n function replacer($0) {\n offsets[line] = (offsets[line] || 0) + $0.length;\n line++;\n return '';\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; // Remove the list-item’s bullet.\n\n value = value.replace(bulletExpression, replacer);\n lines = value.split(lineFeed);\n trimmedLines = removeIndent(value, getIndent(max).indent).split(lineFeed); // We replaced the initial bullet with something else above, which was used\n // to trick `removeIndentation` into removing some more characters when\n // possible. However, that could result in the initial line to be stripped\n // more 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(lineFeed);\n\n function replacer($0, $1, $2, $3, $4) {\n bullet = $1 + $2 + $3;\n rest = $4; // Make sure that the first nine numbered list items can indent with an\n // extra space. That is, when the bullet did not receive an extra final\n // space.\n\n if (Number($2) < 10 && bullet.length % 2 === 1) {\n $2 = space + $2;\n }\n\n max = $1 + repeat(space, $2.length) + $3;\n return max + rest;\n }\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')\n};","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n return value.indexOf('<', fromIndex);\n}","'use strict';\n\nrequire(\"core-js/modules/es6.promise\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\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'); // Expose a frozen processor.\n\n\nmodule.exports = unified().freeze();\nvar slice = [].slice;\nvar own = {}.hasOwnProperty; // 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} // 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; // Data management.\n\n processor.data = data; // Lock.\n\n processor.freeze = freeze; // Plugins.\n\n processor.attachers = attachers;\n processor.use = use; // 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; // Expose.\n\n return processor; // Create a new processor based on the processor 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 } // Freeze: used to signal a processor that has finished configuration.\n //\n // For example, take unified itself. It’s frozen. Plugins should not be\n // added to it. Rather, it should be extended, by invoking it, before\n // modifying it.\n //\n // In essence, always invoke this when exporting a 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 } // Data management. 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 } // Get `key`.\n\n\n return own.call(namespace, key) && namespace[key] || null;\n } // Set space.\n\n\n if (key) {\n assertUnfrozen('data', frozen);\n namespace = key;\n return processor;\n } // Get space.\n\n\n return namespace;\n } // Plugin management.\n //\n // Pass it:\n // * an attacher and options,\n // * a preset,\n // * a list of presets, attachers, and arguments (list of attachers and\n // options).\n\n\n function use(value) {\n var settings;\n assertUnfrozen('use', frozen);\n\n if (value === null || value === undefined) {// 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) {// 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 } // Parse a file (in string or vfile representation) into a unist node using\n // the `Parser` on the 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 } // Run transforms on a unist node representation of a file (in string or\n // 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 } // Run transforms on a unist node representation of a file (in string or\n // 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 } // Stringify a unist node representation of a file (in string or vfile\n // representation) into a string 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 } // Parse a file (in string or vfile representation) into a unist node using\n // the `Parser` on the processor, then run transforms on that node, and\n // compile the resulting node using the `Compiler` on the processor, and\n // 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 } // Process the given document (in string or vfile 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} // Check if `func` is a constructor.\n\n\nfunction newable(value) {\n return typeof value === 'function' && keys(value.prototype);\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} // 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} // 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} // 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`.');\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} // 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\nmodule.exports = paragraph;\n\nvar all = require('../all');\n\nfunction paragraph(h, node) {\n return h(node, 'p', all(h, node));\n}","'use strict';\n\nvar markdownTable = require('markdown-table');\n\nmodule.exports = table;\nvar space = ' ';\nvar verticalBar = '|'; // Stringify table.\n//\n// Creates a fenced table by default, but not in `looseTable: true` mode:\n//\n// ```markdown\n// Foo | Bar\n// :-: | ---\n// Baz | Qux\n//\n// NOTE: Be careful with `looseTable: true` mode, as a loose table inside an\n// indented code block on GitHub renders as an actual table!\n//\n// Creates a spaced table by default, but not in `spacedTable: false`:\n//\n// ```markdown\n// |Foo|Bar|\n// |:-:|---|\n// |Baz|Qux|\n// ```\n\nfunction table(node) {\n var self = this;\n var options = self.options;\n var loose = options.looseTable;\n var spaced = options.spacedTable;\n var pad = options.paddedTable;\n var stringLength = options.stringLength;\n var rows = node.children;\n var index = rows.length;\n var exit = self.enterTable();\n var result = [];\n var start;\n var end;\n\n while (index--) {\n result[index] = self.all(rows[index]);\n }\n\n exit();\n\n if (loose) {\n start = '';\n end = '';\n } else if (spaced) {\n start = verticalBar + space;\n end = space + verticalBar;\n } else {\n start = verticalBar;\n end = verticalBar;\n }\n\n return markdownTable(result, {\n align: node.align,\n pad: pad,\n start: start,\n end: end,\n stringLength: stringLength,\n delimiter: spaced ? space + verticalBar + space : verticalBar\n });\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nvar entities = require('character-entities-html4');\n\nvar legacy = require('character-entities-legacy');\n\nvar hexadecimal = require('is-hexadecimal');\n\nvar decimal = require('is-decimal');\n\nvar alphanumerical = require('is-alphanumerical');\n\nvar dangerous = require('./dangerous.json');\n\nmodule.exports = encode;\nencode.escape = escape;\nvar own = {}.hasOwnProperty; // List of enforced escapes.\n\nvar escapes = ['\"', \"'\", '<', '>', '&', '`']; // Map of characters to names.\n\nvar characters = construct(); // Default escapes.\n\nvar defaultEscapes = toExpression(escapes); // Surrogate pairs.\n\nvar surrogatePair = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g; // Non-ASCII characters.\n// eslint-disable-next-line no-control-regex, unicorn/no-hex-escape\n\nvar bmp = /[\\x01-\\t\\x0B\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g; // Encode special characters in `value`.\n\nfunction encode(value, options) {\n var settings = options || {};\n var subset = settings.subset;\n var set = subset ? toExpression(subset) : defaultEscapes;\n var escapeOnly = settings.escapeOnly;\n var omit = settings.omitOptionalSemicolons;\n value = value.replace(set, replace);\n\n if (subset || escapeOnly) {\n return value;\n }\n\n return value.replace(surrogatePair, replaceSurrogatePair).replace(bmp, replace);\n\n function replaceSurrogatePair(pair, pos, val) {\n return toHexReference((pair.charCodeAt(0) - 0xd800) * 0x400 + pair.charCodeAt(1) - 0xdc00 + 0x10000, val.charAt(pos + 2), omit);\n }\n\n function replace(_char, pos, val) {\n return one(_char, val.charAt(pos + 1), settings);\n }\n} // Shortcut to escape special characters in HTML.\n\n\nfunction escape(value) {\n return encode(value, {\n escapeOnly: true,\n useNamedReferences: true\n });\n} // Encode `char` according to `options`.\n\n\nfunction one(_char2, next, options) {\n var shortest = options.useShortestReferences;\n var omit = options.omitOptionalSemicolons;\n var named;\n var code;\n var numeric;\n var decimal;\n\n if ((shortest || options.useNamedReferences) && own.call(characters, _char2)) {\n named = toNamed(characters[_char2], next, omit, options.attribute);\n }\n\n if (shortest || !named) {\n code = _char2.charCodeAt(0);\n numeric = toHexReference(code, next, omit); // Use the shortest numeric reference when requested.\n // A simple algorithm would use decimal for all code points under 100, as\n // those are shorter than hexadecimal:\n //\n // * `c` vs `c` (decimal shorter)\n // * `d` vs `d` (equal)\n //\n // However, because we take `next` into consideration when `omit` is used,\n // And it would be possible that decimals are shorter on bigger values as\n // well if `next` is hexadecimal but not decimal, we instead compare both.\n\n if (shortest) {\n decimal = toDecimalReference(code, next, omit);\n\n if (decimal.length < numeric.length) {\n numeric = decimal;\n }\n }\n }\n\n if (named && (!shortest || named.length < numeric.length)) {\n return named;\n }\n\n return numeric;\n} // Transform `code` into an entity.\n\n\nfunction toNamed(name, next, omit, attribute) {\n var value = '&' + name;\n\n if (omit && own.call(legacy, name) && dangerous.indexOf(name) === -1 && (!attribute || next && next !== '=' && !alphanumerical(next))) {\n return value;\n }\n\n return value + ';';\n} // Transform `code` into a hexadecimal character reference.\n\n\nfunction toHexReference(code, next, omit) {\n var value = '&#x' + code.toString(16).toUpperCase();\n return omit && next && !hexadecimal(next) ? value : value + ';';\n} // Transform `code` into a decimal character reference.\n\n\nfunction toDecimalReference(code, next, omit) {\n var value = '&#' + String(code);\n return omit && next && !decimal(next) ? value : value + ';';\n} // Create an expression for `characters`.\n\n\nfunction toExpression(characters) {\n return new RegExp('[' + characters.join('') + ']', 'g');\n} // Construct the map.\n\n\nfunction construct() {\n var chars = {};\n var name;\n\n for (name in entities) {\n chars[entities[name]] = name;\n }\n\n return chars;\n}","'use strict';\n\nvar compact = require('mdast-util-compact');\n\nmodule.exports = compile; // Stringify the given tree.\n\nfunction compile() {\n return this.visit(compact(this.tree, this.options.commonmark));\n}","'use strict';\n\nmodule.exports = breaks;\n\nfunction breaks() {\n var parser = this.Parser;\n var tokenizers;\n\n if (!isRemarkParser(parser)) {\n throw new Error('Missing parser to attach `remark-breaks` to');\n }\n\n tokenizers = parser.prototype.inlineTokenizers;\n tokenizeBreak.locator = tokenizers[\"break\"].locator;\n tokenizers[\"break\"] = tokenizeBreak;\n\n function tokenizeBreak(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 /* istanbul ignore if - never used (yet) */\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 }\n}\n\nfunction isRemarkParser(parser) {\n return Boolean(parser && parser.prototype && parser.prototype.inlineTokenizers && parser.prototype.inlineTokenizers[\"break\"] && parser.prototype.inlineTokenizers[\"break\"].locator);\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = enclose;\nvar quotationMark = '\"';\nvar apostrophe = \"'\"; // There is currently no way to support nested delimiters across Markdown.pl,\n// CommonMark, and GitHub (RedCarpet). The following code supports Markdown.pl\n// and GitHub.\n// CommonMark is not supported when mixing double- and single quotes inside a\n// title.\n\nfunction enclose(title) {\n var delimiter = title.indexOf(quotationMark) === -1 ? quotationMark : apostrophe;\n return delimiter + title + delimiter;\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 lessThan = '<';\nvar greaterThan = '>';\nvar atSign = '@';\nvar slash = '/';\nvar mailto = 'mailto:';\nvar mailtoLength = mailto.length;\n\nfunction autoLink(eat, value, silent) {\n var self = this;\n var subvalue = '';\n var length = value.length;\n var index = 0;\n var queue = '';\n var hasAtCharacter = false;\n var link = '';\n var character;\n var now;\n var content;\n var tokenizers;\n var exit;\n\n if (value.charAt(0) !== lessThan) {\n return;\n }\n\n index++;\n subvalue = lessThan;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (whitespace(character) || character === greaterThan || character === atSign || character === ':' && value.charAt(index + 1) === 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 === atSign) {\n hasAtCharacter = true;\n } else {\n if (character !== ':' || value.charAt(index + 1) !== slash) {\n return;\n }\n\n link += slash;\n index++;\n }\n\n while (index < length) {\n character = value.charAt(index);\n\n if (whitespace(character) || character === greaterThan) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (!queue || character !== greaterThan) {\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, mailtoLength).toLowerCase() === mailto) {\n content = content.slice(mailtoLength);\n now.column += mailtoLength;\n now.offset += mailtoLength;\n } else {\n link = mailto + link;\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}","require(\"core-js/modules/es6.array.filter\");\n\nrequire(\"core-js/modules/es6.regexp.split\");\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}","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = getDefinitionFactory;\nvar own = {}.hasOwnProperty; // Get a definition in `node` by `identifier`.\n\nfunction getDefinitionFactory(node, options) {\n return getterFactory(gather(node, options));\n} // Gather all definitions in `node`\n\n\nfunction gather(node, options) {\n var cache = {};\n\n if (!node || !node.type) {\n throw new Error('mdast-util-definitions expected node');\n }\n\n visit(node, 'definition', options && options.commonmark ? commonmark : normal);\n return cache;\n\n function commonmark(definition) {\n var id = normalise(definition.identifier);\n\n if (!own.call(cache, id)) {\n cache[id] = definition;\n }\n }\n\n function normal(definition) {\n cache[normalise(definition.identifier)] = definition;\n }\n} // Factory to get a node from the given definition-cache.\n\n\nfunction getterFactory(cache) {\n return getter; // Get a node from the bound definition-cache.\n\n function getter(identifier) {\n var id = identifier && normalise(identifier);\n return id && own.call(cache, id) ? cache[id] : null;\n }\n}\n\nfunction normalise(identifier) {\n return identifier.toUpperCase();\n}","'use strict';\n\nmodule.exports = lineBreak;\nvar backslash = '\\\\';\nvar lineFeed = '\\n';\nvar space = ' ';\nvar commonmark = backslash + lineFeed;\nvar normal = space + space + lineFeed;\n\nfunction lineBreak() {\n return this.options.commonmark ? commonmark : normal;\n}","import React from \"react\"\nimport shortid from \"shortid\"\nimport Icon from \"../../components/atoms/Icon\"\nimport { useResume } from \"../../components/hooks/use-resume\"\nimport styles from \"./ResumeIndex.module.scss\"\nimport Header from \"./ResumeHeader\"\nimport ResumeItem from \"./ResumeItem\"\nimport { SEO } from \"../../components/atoms/SEO\"\n\nexport default function Resume() {\n const { education, work, awards } = useResume()\n\n return (\n <>\n <SEO title=\"Hoang's Résumé\"/>\n\n <section className={styles.resume}>\n <Header />\n\n <div>\n <h3 className={styles.subTitle}>\n <Icon name=\"Briefcase\"/>\n Work\n </h3>\n </div>\n <div>\n {work.map((workPlace: any) => (\n <ResumeItem key={shortid.generate()} workPlace={workPlace}/>\n ))}\n </div>\n {awards && <>\n <div>\n <h3 className={styles.subTitle}>\n <Icon name=\"Award\"/>\n Awards\n </h3>\n </div>\n <div>\n {awards.map((award: any) => (\n <ResumeItem key={shortid.generate()} award={award}/>\n ))}\n </div>\n </>}\n\n <div>\n <h3 className={styles.subTitle}>\n <Icon name=\"BookOpen\"/>\n Education\n </h3>\n </div>\n <div>\n {education.map((eduPlace: any) => (\n <ResumeItem key={shortid.generate()} eduPlace={eduPlace}/>\n ))}\n </div>\n </section>\n </>\n )\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 space = ' ';\nvar lineFeed = '\\n';\nvar minBreakLength = 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 === lineFeed) {\n if (index < minBreakLength) {\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 !== space) {\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\nmodule.exports = list;\n\nfunction list(node) {\n var fn = node.ordered ? this.visitOrderedItems : this.visitUnorderedItems;\n return fn.call(this, node);\n}","import React from \"react\"\nimport remark from \"remark\"\nimport remark2react from \"remark-react\"\nimport parse from \"remark-parse\"\nimport html from \"remark-html\"\nimport breaks from \"remark-breaks\"\nimport styles from \"./ResumeItem.module.scss\"\n\ntype ResumeItemProps = {\n workPlace?: {\n startDate: string,\n endDate: string,\n company: string,\n position: string,\n summary: string\n },\n eduPlace?: {\n startDate: string,\n endDate: string,\n institution: string,\n area: string,\n studyType: string\n },\n award?: {\n date: string,\n title: string,\n awarder: string,\n summary: string\n }\n}\nconst markdownOutput = (text: string) =>\n remark()\n .use(parse, { gfm: true, commonmark: true, pedantic: true })\n .use(html)\n .use(breaks)\n .use(remark2react)\n .processSync(text).contents\n\nfunction normalizeData(workPlace: any, eduPlace: any, award: any) {\n const title = workPlace\n ? workPlace.company\n : award\n ? award.title\n : eduPlace\n ? eduPlace.institution\n : null\n\n const subTitle = workPlace\n ? workPlace.position\n : award\n ? award.awarder\n : eduPlace\n ? eduPlace.area\n : null\n\n const text = workPlace\n ? workPlace.summary\n : award && award.summary\n ? award.summary\n : eduPlace\n ? eduPlace.studyType\n : null\n\n const startDate = award\n ? award.date\n : (workPlace && workPlace.startDate) || (eduPlace && eduPlace.startDate)\n\n const endDate = award\n ? null\n : (workPlace && workPlace.endDate) || (eduPlace && eduPlace.endDate)\n\n return { title, subTitle, text, startDate, endDate }\n}\n\nexport default function ResumeItem({ workPlace, eduPlace, award }: ResumeItemProps) {\n const { title, subTitle, text, startDate, endDate } = normalizeData(\n workPlace,\n eduPlace,\n award,\n )\n\n const dateStart = new Date(startDate).getFullYear()\n const dateEnd = endDate && new Date(endDate).getFullYear()\n const isSameYear = dateStart === dateEnd\n\n return (\n <div className={styles.resumeItem}>\n <span className={styles.time}>\n {dateStart}\n {dateEnd ? !isSameYear && `–${dateEnd}` : \"–present\"}{\" \"}\n </span>\n <h4 className={styles.title}>{title}</h4>\n <h5 className={styles.subTitle}>{subTitle}</h5>\n {text && markdownOutput(text)}\n </div>\n )\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.split\");\n\nmodule.exports = markdownTable;\nvar dotRe = /\\./;\nvar lastDotRe = /\\.[^.]*$/; // Characters.\n\nvar space = ' ';\nvar lineFeed = '\\n';\nvar dash = '-';\nvar dot = '.';\nvar colon = ':';\nvar lowercaseC = 'c';\nvar lowercaseL = 'l';\nvar lowercaseR = 'r';\nvar verticalBar = '|';\nvar minCellSize = 3; // Create a table from a matrix of strings.\n\nfunction markdownTable(table, options) {\n var settings = options || {};\n var delimiter = settings.delimiter;\n var start = settings.start;\n var end = settings.end;\n var alignment = settings.align;\n var calculateStringLength = settings.stringLength || lengthNoop;\n var cellCount = 0;\n var rowIndex = -1;\n var rowLength = table.length;\n var sizes = [];\n var align;\n var rule;\n var rows;\n var row;\n var cells;\n var index;\n var position;\n var size;\n var value;\n var spacing;\n var before;\n var after;\n alignment = alignment ? alignment.concat() : [];\n\n if (delimiter === null || delimiter === undefined) {\n delimiter = space + verticalBar + space;\n }\n\n if (start === null || start === undefined) {\n start = verticalBar + space;\n }\n\n if (end === null || end === undefined) {\n end = space + verticalBar;\n }\n\n while (++rowIndex < rowLength) {\n row = table[rowIndex];\n index = -1;\n\n if (row.length > cellCount) {\n cellCount = row.length;\n }\n\n while (++index < cellCount) {\n position = row[index] ? dotindex(row[index]) : null;\n\n if (!sizes[index]) {\n sizes[index] = minCellSize;\n }\n\n if (position > sizes[index]) {\n sizes[index] = position;\n }\n }\n }\n\n if (typeof alignment === 'string') {\n alignment = pad(cellCount, alignment).split('');\n } // Make sure only valid alignments are used.\n\n\n index = -1;\n\n while (++index < cellCount) {\n align = alignment[index];\n\n if (typeof align === 'string') {\n align = align.charAt(0).toLowerCase();\n }\n\n if (align !== lowercaseL && align !== lowercaseR && align !== lowercaseC && align !== dot) {\n align = '';\n }\n\n alignment[index] = align;\n }\n\n rowIndex = -1;\n rows = [];\n\n while (++rowIndex < rowLength) {\n row = table[rowIndex];\n index = -1;\n cells = [];\n\n while (++index < cellCount) {\n value = row[index];\n value = stringify(value);\n\n if (alignment[index] === dot) {\n position = dotindex(value);\n size = sizes[index] + (dotRe.test(value) ? 0 : 1) - (calculateStringLength(value) - position);\n cells[index] = value + pad(size - 1);\n } else {\n cells[index] = value;\n }\n }\n\n rows[rowIndex] = cells;\n }\n\n sizes = [];\n rowIndex = -1;\n\n while (++rowIndex < rowLength) {\n cells = rows[rowIndex];\n index = -1;\n\n while (++index < cellCount) {\n value = cells[index];\n\n if (!sizes[index]) {\n sizes[index] = minCellSize;\n }\n\n size = calculateStringLength(value);\n\n if (size > sizes[index]) {\n sizes[index] = size;\n }\n }\n }\n\n rowIndex = -1;\n\n while (++rowIndex < rowLength) {\n cells = rows[rowIndex];\n index = -1;\n\n if (settings.pad !== false) {\n while (++index < cellCount) {\n value = cells[index];\n position = sizes[index] - (calculateStringLength(value) || 0);\n spacing = pad(position);\n\n if (alignment[index] === lowercaseR || alignment[index] === dot) {\n value = spacing + value;\n } else if (alignment[index] === lowercaseC) {\n position /= 2;\n\n if (position % 1 === 0) {\n before = position;\n after = position;\n } else {\n before = position + 0.5;\n after = position - 0.5;\n }\n\n value = pad(before) + value + pad(after);\n } else {\n value += spacing;\n }\n\n cells[index] = value;\n }\n }\n\n rows[rowIndex] = cells.join(delimiter);\n }\n\n if (settings.rule !== false) {\n index = -1;\n rule = [];\n\n while (++index < cellCount) {\n // When `pad` is false, make the rule the same size as the first row.\n if (settings.pad === false) {\n value = table[0][index];\n spacing = calculateStringLength(stringify(value));\n spacing = spacing > minCellSize ? spacing : minCellSize;\n } else {\n spacing = sizes[index];\n }\n\n align = alignment[index]; // When `align` is left, don't add colons.\n\n value = align === lowercaseR || align === '' ? dash : colon;\n value += pad(spacing - 2, dash);\n value += align !== lowercaseL && align !== '' ? colon : dash;\n rule[index] = value;\n }\n\n rows.splice(1, 0, rule.join(delimiter));\n }\n\n return start + rows.join(end + lineFeed + start) + end;\n}\n\nfunction stringify(value) {\n return value === null || value === undefined ? '' : String(value);\n} // Get the length of `value`.\n\n\nfunction lengthNoop(value) {\n return String(value).length;\n} // Get a string consisting of `length` `character`s.\n\n\nfunction pad(length, character) {\n return new Array(length + 1).join(character || space);\n} // Get the position of the last dot in `value`.\n\n\nfunction dotindex(value) {\n var match = lastDotRe.exec(value);\n return match ? match.index + 1 : value.length;\n}","'use strict';\n\nmodule.exports = footnote;\nvar leftSquareBracket = '[';\nvar rightSquareBracket = ']';\nvar caret = '^';\n\nfunction footnote(node) {\n return leftSquareBracket + caret + this.all(node).join('') + rightSquareBracket;\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 streak = require('longest-streak');\n\nvar repeat = require('repeat-string');\n\nmodule.exports = inlineCode;\nvar space = ' ';\nvar graveAccent = '`'; // Stringify inline code.\n//\n// Knows about internal ticks (`\\``), and ensures one more tick is used to\n// enclose the inline code:\n//\n// ````markdown\n// ```foo ``bar`` baz```\n// ````\n//\n// Even knows about inital and final ticks:\n//\n// ``markdown\n// `` `foo ``\n// `` foo` ``\n// ```\n\nfunction inlineCode(node) {\n var value = node.value;\n var ticks = repeat(graveAccent, streak(value, graveAccent) + 1);\n var start = ticks;\n var end = ticks;\n\n if (value.charAt(0) === graveAccent) {\n start += space;\n }\n\n if (value.charAt(value.length - 1) === graveAccent) {\n end = space + end;\n }\n\n return start + value + end;\n}","'use strict';\n\nmodule.exports = html;\n\nfunction html(node) {\n return node.value;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.function.name\");\n\nrequire(\"core-js/modules/es6.array.is-array\");\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\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\nvar merge = require('./lib/util/merge');\n\nvar xlink = require('./lib/xlink');\n\nvar xml = require('./lib/xml');\n\nvar xmlns = require('./lib/xmlns');\n\nvar aria = require('./lib/aria');\n\nvar html = require('./lib/html');\n\nmodule.exports = merge([xml, xlink, xmlns, aria, html]);","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/es6.function.name\");\n\nmodule.exports = doctype; // Stringify a doctype `node`.\n\nfunction doctype(ctx, node) {\n var sep = ctx.tightDoctype ? '' : ' ';\n var name = node.name;\n var pub = node[\"public\"];\n var sys = node.system;\n var val = ['<!doctype'];\n\n if (name) {\n val.push(sep, name);\n\n if (pub != null) {\n val.push(' public', sep, smart(pub));\n } else if (sys != null) {\n val.push(' system');\n }\n\n if (sys != null) {\n val.push(sep, smart(sys));\n }\n }\n\n return val.join('') + '>';\n}\n\nfunction smart(value) {\n var quote = value.indexOf('\"') === -1 ? '\"' : \"'\";\n return quote + value + quote;\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; // Expose core.\n\nproto.setOptions = require('./set-options');\nproto.parse = require('./parse'); // Expose `defaults`.\n\nproto.options = require('./defaults'); // 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); // 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” 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}]]; // Nodes that can interupt a list:\n//\n// ```markdown\n// - One\n// ___\n// ```\n//\n// In the above example, the thematic break “interupts” 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}]]; // Nodes that can interupt a blockquote:\n//\n// ```markdown\n// > A paragraph.\n// ___\n// ```\n//\n// In the above example, the thematic break “interupts” 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}]]; // 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}; // Expose precedence.\n\nproto.blockMethods = keys(proto.blockTokenizers);\nproto.inlineMethods = keys(proto.inlineTokenizers); // Tokenizers.\n\nproto.tokenizeBlock = tokenizer('block');\nproto.tokenizeInline = tokenizer('inline');\nproto.tokenizeFactory = tokenizer; // 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 = block;\nvar lineFeed = '\\n';\nvar blank = lineFeed + lineFeed;\nvar triple = blank + lineFeed;\nvar comment = blank + '<!---->' + blank; // Stringify a block node with block children (e.g., `root` or `blockquote`).\n// Knows about code following a list, or adjacent lists with similar bullets,\n// and places an extra line feed between them.\n\nfunction block(node) {\n var self = this;\n var options = self.options;\n var fences = options.fences;\n var gap = options.commonmark ? comment : triple;\n var values = [];\n var children = node.children;\n var length = children.length;\n var index = -1;\n var prev;\n var child;\n\n while (++index < length) {\n prev = child;\n child = children[index];\n\n if (prev) {\n // A list preceding another list that are equally ordered, or a\n // list preceding an indented code block, need a gap between them,\n // so as not to see them as one list, or content of the list,\n // respectively.\n //\n // In commonmark, only something that breaks both up can do that,\n // so we opt for an empty, invisible comment. In other flavours,\n // two blank lines are fine.\n if (prev.type === 'list' && (child.type === 'list' && prev.ordered === child.ordered || child.type === 'code' && !child.lang && !fences)) {\n values.push(gap);\n } else {\n values.push(blank);\n }\n }\n\n values.push(self.visit(child, node));\n }\n\n return values.join('');\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\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\nrequire(\"core-js/modules/es6.array.index-of\");\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\nvar identity = require('./identity');\n\nmodule.exports = enter; // Shortcut and collapsed link references need no escaping and encoding during\n// the processing of child nodes (it must be implied from identifier).\n//\n// This toggler turns encoding and escaping off for shortcut and collapsed\n// references.\n//\n// Implies `enterLink`.\n\nfunction enter(compiler, node) {\n var encode = compiler.encode;\n var escape = compiler.escape;\n var exitLink = compiler.enterLink();\n\n if (node.referenceType !== 'shortcut' && node.referenceType !== 'collapsed') {\n return exitLink;\n }\n\n compiler.escape = identity;\n compiler.encode = identity;\n return exit;\n\n function exit() {\n compiler.encode = encode;\n compiler.escape = escape;\n exitLink();\n }\n}","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","/**\n * SEO component that queries for data with\n * Gatsby's useStaticQuery React hook\n *\n * See: https://www.gatsbyjs.org/docs/use-static-query/\n */\n\nimport React, { FunctionComponent } from \"react\"\nimport Helmet from \"react-helmet\"\nimport { useStaticQuery, graphql } from \"gatsby\"\n\ntype SeoProps = {\n lang?: any,\n meta?: any,\n description?: string,\n title?: string\n}\n\nexport const SEO: FunctionComponent<SeoProps> = ({ description, lang, meta, title }) => {\n const { site } = useStaticQuery(\n graphql`\n query {\n site {\n siteMetadata {\n title\n description\n author\n }\n }\n }\n `\n )\n\n const metaDescription = description || site.siteMetadata.description\n\n return (\n <Helmet\n htmlAttributes={{\n lang,\n }}\n title={title}\n titleTemplate={`%s | ${site.siteMetadata.title}`}\n meta={[\n {\n name: `description`,\n content: metaDescription,\n },\n {\n property: `og:title`,\n content: title,\n },\n {\n property: `og:description`,\n content: metaDescription,\n },\n {\n property: `og:type`,\n content: `website`,\n },\n {\n name: `twitter:card`,\n content: `summary`,\n },\n {\n name: `twitter:creator`,\n content: site.siteMetadata.author,\n },\n {\n name: `twitter:title`,\n content: title,\n },\n {\n name: `twitter:description`,\n content: metaDescription,\n },\n ].concat(meta)}\n />\n )\n}\nSEO.defaultProps = {\n lang: `en`,\n meta: [],\n description: ``,\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = factory; // Construct a tokenizer. This creates both `tokenizeInline` and `tokenizeBlock`.\n\nfunction factory(type) {\n return tokenize; // 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; // Trim white space only lines.\n\n if (!value) {\n return tokens;\n } // Expose on `eat`.\n\n\n eat.now = now;\n eat.file = self.file; // Sync initial offset.\n\n updatePosition(''); // Iterate over `value`, and iterate over all tokenizers. When one eats\n // something, re-iterate with the remaining value. If no tokenizer eats,\n // something failed (should not happen) and an 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; // Update line, column, and offset based on `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 } // Get offset. Called before the first character is eaten to retrieve the\n // range’s offsets.\n\n\n function getOffset() {\n var indentation = [];\n var pos = line + 1; // Done. Called when the last character is eaten to retrieve the range’s\n // 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 } // 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 } // Store position information for a node.\n\n\n function Position(start) {\n this.start = start;\n this.end = now();\n } // Throw when a value is incorrectly eaten. This shouldn’t happen but will\n // throw on new, incorrect rules.\n\n\n function validateEat(subvalue) {\n /* istanbul ignore if */\n if (value.slice(0, subvalue.length) !== subvalue) {\n // Capture stack-trace.\n self.file.fail(new Error('Incorrectly eaten value: please report this warning on https://git.io/vg5Ft'), now());\n }\n } // Mark position and patch `node.position`.\n\n\n function position() {\n var before = now();\n return update; // 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); // If there was already a `position`, this node was merged. Fixing\n // `start` wasn’t hard, but the indent is different. Especially\n // because some information, the indent between `n` and `l` wasn’t\n // tracked. Luckily, that space is (should be?) empty, so we can\n // safely 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 } // Add `node` to `parent`s children or to `tokens`. Performs merges where\n // possible.\n\n\n function add(node, parent) {\n var children = parent ? parent.children : tokens;\n var prev = children[children.length - 1];\n var fn;\n\n if (prev && node.type === prev.type && (node.type === 'text' || node.type === 'blockquote') && mergeable(prev) && mergeable(node)) {\n fn = node.type === 'text' ? mergeText : mergeBlockquote;\n node = fn.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 } // Remove `subvalue` from `value`. `subvalue` must be at the start of\n // `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.slice(subvalue.length);\n updatePosition(subvalue);\n indent = indent();\n return apply; // Add the given arguments, add `position` to the returned node, and\n // return the node.\n\n function apply(node, parent) {\n return pos(add(pos(node), parent), indent);\n } // Functions just like apply, but resets the content: the line and\n // column are reversed, and the eaten value is re-added. This is\n // useful for nodes with a single type of content, such as lists and\n // tables. See `apply` above for what parameters are 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 } // Test the position, after eating, and reverse 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} // Check whether a node is mergeable with adjacent nodes.\n\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; // Only merge nodes which occupy the same size as their `value`.\n\n return start.line !== end.line || end.column - start.column === node.value.length;\n} // Merge two text nodes: `node` into `prev`.\n\n\nfunction mergeText(prev, node) {\n prev.value += node.value;\n return prev;\n} // Merge two blockquotes: `node` into `prev`, unless in CommonMark or gfm modes.\n\n\nfunction mergeBlockquote(prev, node) {\n if (this.options.commonmark || this.options.gfm) {\n return node;\n }\n\n prev.children = prev.children.concat(node.children);\n return prev;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\nvar openCloseTag = require('../util/html').openCloseTag;\n\nmodule.exports = blockHtml;\nvar tab = '\\t';\nvar space = ' ';\nvar lineFeed = '\\n';\nvar lessThan = '<';\nvar rawOpenExpression = /^<(script|pre|style)(?=(\\s|>|$))/i;\nvar rawCloseExpression = /<\\/(script|pre|style)>/i;\nvar commentOpenExpression = /^<!--/;\nvar commentCloseExpression = /-->/;\nvar instructionOpenExpression = /^<\\?/;\nvar instructionCloseExpression = /\\?>/;\nvar directiveOpenExpression = /^<![A-Za-z]/;\nvar directiveCloseExpression = />/;\nvar cdataOpenExpression = /^<!\\[CDATA\\[/;\nvar cdataCloseExpression = /\\]\\]>/;\nvar elementCloseExpression = /^$/;\nvar otherElementOpenExpression = new RegExp(openCloseTag.source + '\\\\s*$');\n\nfunction blockHtml(eat, value, silent) {\n var self = this;\n var blocks = self.options.blocks.join('|');\n var elementOpenExpression = new RegExp('^</?(' + blocks + ')(?=(\\\\s|/?>|$))', 'i');\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 = [[rawOpenExpression, rawCloseExpression, true], [commentOpenExpression, commentCloseExpression, true], [instructionOpenExpression, instructionCloseExpression, true], [directiveOpenExpression, directiveCloseExpression, true], [cdataOpenExpression, cdataCloseExpression, true], [elementOpenExpression, elementCloseExpression, true], [otherElementOpenExpression, elementCloseExpression, false]]; // Eat initial spacing.\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== tab && character !== space) {\n break;\n }\n\n index++;\n }\n\n if (value.charAt(index) !== lessThan) {\n return;\n }\n\n next = value.indexOf(lineFeed, 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(lineFeed, 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\nrequire(\"core-js/modules/es6.regexp.split\");\n\nvar repeat = require('repeat-string');\n\nmodule.exports = thematic;\nvar space = ' '; // Stringify a `thematic-break`.\n// The character used is configurable through `rule`: (`'_'`):\n//\n// ```markdown\n// ___\n// ```\n//\n// The number of repititions is defined through `ruleRepetition` (`6`):\n//\n// ```markdown\n// ******\n// ```\n//\n// Whether spaces delimit each character, is configured through `ruleSpaces`\n// (`true`):\n// ```markdown\n// * * *\n// ```\n\nfunction thematic() {\n var options = this.options;\n var rule = repeat(options.rule, options.ruleRepetition);\n return options.ruleSpaces ? rule.split('').join(space) : rule;\n}","'use strict';\n\nvar position = exports;\nposition.start = factory('start');\nposition.end = factory('end');\n\nfunction factory(type) {\n point.displayName = type;\n return point;\n\n function point(node) {\n var point = node && node.position && node.position[type] || {};\n return {\n line: point.line || null,\n column: point.column || null,\n offset: isNaN(point.offset) ? null : point.offset\n };\n }\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\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 = function (str) {\n if (typeof str !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n return !/[^0-9a-z\\xDF-\\xFF]/.test(str.toLowerCase());\n};","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n return value.indexOf('`', fromIndex);\n}","'use strict';\n\nmodule.exports = thematicBreak;\nvar tab = '\\t';\nvar lineFeed = '\\n';\nvar space = ' ';\nvar asterisk = '*';\nvar dash = '-';\nvar underscore = '_';\nvar maxCount = 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 !== tab && character !== space) {\n break;\n }\n\n subvalue += character;\n }\n\n if (character !== asterisk && character !== dash && character !== 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 === space) {\n queue += character;\n } else if (markerCount >= maxCount && (!character || character === lineFeed)) {\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\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/code-inline');\n\nmodule.exports = inlineCode;\ninlineCode.locator = locate;\nvar graveAccent = '`';\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) !== graveAccent) {\n break;\n }\n\n queue += graveAccent;\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 === graveAccent) {\n count++;\n tickQueue += character;\n } else {\n count = 0;\n queue += character;\n }\n\n if (count && next !== graveAccent) {\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}","var parse = require('inline-style-parser');\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param {String} style - The inline style.\n * @param {Function} [iterator] - The iterator function.\n * @return {null|Object}\n */\n\n\nfunction StyleToObject(style, iterator) {\n var output = null;\n\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n var declaration;\n var declarations = parse(style);\n var hasIterator = typeof iterator === 'function';\n var property;\n var value;\n\n for (var i = 0, len = declarations.length; i < len; i++) {\n declaration = declarations[i];\n property = declaration.property;\n value = declaration.value;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n output || (output = {});\n output[property] = value;\n }\n }\n\n return output;\n}\n\nmodule.exports = StyleToObject;","'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 asterisk = '*';\nvar underscore = '_';\nvar backslash = '\\\\';\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 !== asterisk && character !== 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 === 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 === backslash) {\n queue += character;\n character = value.charAt(++index);\n }\n\n queue += character;\n index++;\n }\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\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 whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/link');\n\nmodule.exports = link;\nlink.locator = locate;\nvar lineFeed = '\\n';\nvar exclamationMark = '!';\nvar quotationMark = '\"';\nvar apostrophe = \"'\";\nvar leftParenthesis = '(';\nvar rightParenthesis = ')';\nvar lessThan = '<';\nvar greaterThan = '>';\nvar leftSquareBracket = '[';\nvar backslash = '\\\\';\nvar rightSquareBracket = ']';\nvar graveAccent = '`';\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 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; // Detect whether this is an image.\n\n if (character === exclamationMark) {\n isImage = true;\n subvalue = character;\n character = value.charAt(++index);\n } // Eat the opening.\n\n\n if (character !== leftSquareBracket) {\n return;\n } // Exit when this is a link and we’re already inside a link.\n\n\n if (!isImage && self.inLink) {\n return;\n }\n\n subvalue += character;\n queue = '';\n index++; // 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 === graveAccent) {\n // Inline-code in link content.\n count = 1;\n\n while (value.charAt(index + 1) === graveAccent) {\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 === backslash) {\n // Allow brackets to be escaped.\n index++;\n subqueue += value.charAt(index);\n } else if ((!opening || gfm) && character === leftSquareBracket) {\n // In GFM mode, brackets in code still count. In all other modes,\n // they don’t.\n depth++;\n } else if ((!opening || gfm) && character === rightSquareBracket) {\n if (depth) {\n depth--;\n } else {\n // Allow white-space between content and 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) !== leftParenthesis) {\n return;\n }\n\n subqueue += leftParenthesis;\n closed = true;\n index++;\n break;\n }\n }\n\n queue += subqueue;\n subqueue = '';\n index++;\n } // Eat the content closing.\n\n\n if (!closed) {\n return;\n }\n\n content = queue;\n subvalue += queue + subqueue;\n index++; // 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 } // Eat the URL.\n\n\n character = value.charAt(index);\n queue = '';\n beforeURL = subvalue;\n\n if (character === lessThan) {\n index++;\n beforeURL += lessThan;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === greaterThan) {\n break;\n }\n\n if (commonmark && character === lineFeed) {\n return;\n }\n\n queue += character;\n index++;\n }\n\n if (value.charAt(index) !== greaterThan) {\n return;\n }\n\n subvalue += lessThan + queue + greaterThan;\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 && (character === quotationMark || character === apostrophe || commonmark && character === leftParenthesis)) {\n break;\n }\n\n if (whitespace(character)) {\n if (!pedantic) {\n break;\n }\n\n subqueue += character;\n } else {\n if (character === leftParenthesis) {\n depth++;\n } else if (character === rightParenthesis) {\n if (depth === 0) {\n break;\n }\n\n depth--;\n }\n\n queue += subqueue;\n subqueue = '';\n\n if (character === backslash) {\n queue += 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 } // 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; // Eat the title.\n\n if (queue && (character === quotationMark || character === apostrophe || commonmark && character === leftParenthesis)) {\n index++;\n subvalue += character;\n queue = '';\n marker = character === leftParenthesis ? rightParenthesis : character;\n beforeTitle = subvalue; // In commonmark-mode, things are pretty easy: the marker cannot occur\n // inside the title. 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 === backslash) {\n queue += 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 === rightParenthesis) {\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) !== rightParenthesis) {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n subvalue += rightParenthesis;\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\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nvar html = require('property-information/html');\n\nvar svg = require('property-information/svg');\n\nvar find = require('property-information/find');\n\nvar hastToReact = require('property-information/hast-to-react.json');\n\nvar spaces = require('space-separated-tokens');\n\nvar commas = require('comma-separated-tokens');\n\nvar style = require('style-to-object');\n\nvar ns = require('web-namespaces');\n\nvar convert = require('unist-util-is/convert');\n\nvar root = convert('root');\nvar element = convert('element');\nvar text = convert('text');\nvar dashes = /-([a-z])/g;\nmodule.exports = wrapper;\n\nfunction wrapper(h, node, options) {\n var settings = options || {};\n var prefix;\n var r;\n var v;\n var vd;\n\n if (typeof h !== 'function') {\n throw new Error('h is not a function');\n }\n\n if (typeof settings === 'string' || typeof settings === 'boolean') {\n prefix = settings;\n settings = {};\n } else {\n prefix = settings.prefix;\n }\n\n r = react(h);\n v = vue(h);\n vd = vdom(h);\n\n if (prefix === null || prefix === undefined) {\n prefix = r === true || v === true || vd === true ? 'h-' : false;\n }\n\n if (root(node)) {\n if (node.children.length === 1 && element(node.children[0])) {\n node = node.children[0];\n } else {\n node = {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: node.children\n };\n }\n } else if (!element(node)) {\n throw new Error('Expected root or element, not `' + (node && node.type || node) + '`');\n }\n\n return toH(h, node, {\n schema: settings.space === 'svg' ? svg : html,\n prefix: prefix,\n key: 0,\n react: r,\n vue: v,\n vdom: vd,\n hyperscript: hyperscript(h)\n });\n} // Transform a hast node through a hyperscript interface to *anything*!\n\n\nfunction toH(h, node, ctx) {\n var parentSchema = ctx.schema;\n var schema = parentSchema;\n var name = node.tagName;\n var properties;\n var attributes;\n var children;\n var property;\n var elements;\n var length;\n var index;\n var value;\n var result;\n\n if (parentSchema.space === 'html' && name.toLowerCase() === 'svg') {\n schema = svg;\n ctx.schema = schema;\n }\n\n if (ctx.vdom === true && schema.space === 'html') {\n name = name.toUpperCase();\n }\n\n properties = node.properties;\n attributes = {};\n\n for (property in properties) {\n addAttribute(attributes, property, properties[property], ctx);\n }\n\n if (typeof attributes.style === 'string' && (ctx.vdom === true || ctx.vue === true || ctx.react === true)) {\n // VDOM, Vue, and React accept `style` as object.\n attributes.style = parseStyle(attributes.style, name);\n }\n\n if (ctx.prefix) {\n ctx.key++;\n attributes.key = ctx.prefix + ctx.key;\n }\n\n if (ctx.vdom && schema.space !== 'html') {\n attributes.namespace = ns[schema.space];\n }\n\n elements = [];\n children = node.children;\n length = children ? children.length : 0;\n index = -1;\n\n while (++index < length) {\n value = children[index];\n\n if (element(value)) {\n elements.push(toH(h, value, ctx));\n } else if (text(value)) {\n elements.push(value.value);\n }\n } // Ensure no React warnings are triggered for void elements having children\n // passed in.\n\n\n result = elements.length === 0 ? h(name, attributes) : h(name, attributes, elements); // Restore parent schema.\n\n ctx.schema = parentSchema;\n return result;\n}\n\nfunction addAttribute(props, prop, value, ctx) {\n var hyperlike = ctx.hyperscript || ctx.vdom || ctx.vue;\n var schema = ctx.schema;\n var info = find(schema, prop);\n var subprop; // Ignore nully and `NaN` values.\n // Ignore `false` and falsey known booleans for hyperlike DSLs.\n\n if (value === null || value === undefined || value !== value || hyperlike && value === false || hyperlike && info[\"boolean\"] && !value) {\n return;\n }\n\n if (value !== null && typeof value === 'object' && 'length' in value) {\n // Accept `array`.\n // Most props are space-separated.\n value = (info.commaSeparated ? commas : spaces).stringify(value);\n } // Treat `true` and truthy known booleans.\n\n\n if (info[\"boolean\"] && ctx.hyperscript === true) {\n value = '';\n }\n\n if (ctx.vue) {\n if (prop !== 'style') {\n subprop = 'attrs';\n }\n } else if (!info.mustUseProperty) {\n if (ctx.vdom === true) {\n subprop = 'attributes';\n } else if (ctx.hyperscript === true) {\n subprop = 'attrs';\n }\n }\n\n if (subprop) {\n if (props[subprop] === undefined) {\n props[subprop] = {};\n }\n\n props[subprop][info.attribute] = value;\n } else if (ctx.react && info.space) {\n props[hastToReact[info.property] || info.property] = value;\n } else {\n props[info.attribute] = value;\n }\n} // Check if `h` is `react.createElement`.\n\n\nfunction react(h) {\n var node = h && h('div');\n return Boolean(node && ('_owner' in node || '_store' in node) && node.key === null);\n} // Check if `h` is `hyperscript`.\n\n\nfunction hyperscript(h) {\n return Boolean(h && h.context && h.cleanup);\n} // Check if `h` is `virtual-dom/h`.\n\n\nfunction vdom(h) {\n return h && h('div').type === 'VirtualNode';\n}\n\nfunction vue(h) {\n var node = h && h('div');\n return Boolean(node && node.context && node.context._isVue);\n}\n\nfunction parseStyle(value, tagName) {\n var result = {};\n\n try {\n style(value, iterator);\n } catch (error) {\n error.message = tagName + '[style]' + error.message.slice('undefined'.length);\n throw error;\n }\n\n return result;\n\n function iterator(name, value) {\n result[styleCase(name)] = value;\n }\n}\n\nfunction styleCase(val) {\n if (val.slice(0, 4) === '-ms-') {\n val = 'ms-' + val.slice(4);\n }\n\n return val.replace(dashes, styleReplacer);\n}\n\nfunction styleReplacer($0, $1) {\n return $1.toUpperCase();\n}","'use strict';\n\nmodule.exports = strong;\n\nvar all = require('../all');\n\nfunction strong(h, node) {\n return h(node, 'strong', all(h, node));\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nvar normalize = require('../../normalize');\n\nvar Schema = require('./schema');\n\nvar DefinedInfo = require('./defined-info');\n\nmodule.exports = create;\n\nfunction create(definition) {\n var space = definition.space;\n var mustUseProperty = definition.mustUseProperty || [];\n var attributes = definition.attributes || {};\n var props = definition.properties;\n var transform = definition.transform;\n var property = {};\n var normal = {};\n var prop;\n var info;\n\n for (prop in props) {\n info = new DefinedInfo(prop, transform(attributes, prop), props[prop], space);\n\n if (mustUseProperty.indexOf(prop) !== -1) {\n info.mustUseProperty = true;\n }\n\n property[prop] = info;\n normal[normalize(prop)] = prop;\n normal[normalize(info.attribute)] = prop;\n }\n\n return new Schema(property, normal, space);\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = factory; // Construct a tokenizer. This creates both `tokenizeInline` and `tokenizeBlock`.\n\nfunction factory(type) {\n return tokenize; // 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; // Trim white space only lines.\n\n if (!value) {\n return tokens;\n } // Expose on `eat`.\n\n\n eat.now = now;\n eat.file = self.file; // Sync initial offset.\n\n updatePosition(''); // Iterate over `value`, and iterate over all tokenizers. When one eats\n // something, re-iterate with the remaining value. If no tokenizer eats,\n // something failed (should not happen) and an 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; // Update line, column, and offset based on `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 } // Get offset. Called before the first character is eaten to retrieve the\n // range’s offsets.\n\n\n function getOffset() {\n var indentation = [];\n var pos = line + 1; // Done. Called when the last character is eaten to retrieve the range’s\n // 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 } // 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 } // Store position information for a node.\n\n\n function Position(start) {\n this.start = start;\n this.end = now();\n } // Throw when a value is incorrectly eaten. This shouldn’t happen but will\n // throw on new, 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 https://git.io/vg5Ft'), now());\n }\n } // Mark position and patch `node.position`.\n\n\n function position() {\n var before = now();\n return update; // 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); // If there was already a `position`, this node was merged. Fixing\n // `start` wasn’t hard, but the indent is different. Especially\n // because some information, the indent between `n` and `l` wasn’t\n // tracked. Luckily, that space is (should be?) empty, so we can\n // safely 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 } // Add `node` to `parent`s children or to `tokens`. Performs merges where\n // possible.\n\n\n function add(node, parent) {\n var children = parent ? parent.children : tokens;\n var prev = children[children.length - 1];\n var fn;\n\n if (prev && node.type === prev.type && (node.type === 'text' || node.type === 'blockquote') && mergeable(prev) && mergeable(node)) {\n fn = node.type === 'text' ? mergeText : mergeBlockquote;\n node = fn.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 } // Remove `subvalue` from `value`. `subvalue` must be at the start of\n // `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; // Add the given arguments, add `position` to the returned node, and\n // return the node.\n\n function apply(node, parent) {\n return pos(add(pos(node), parent), indent);\n } // Functions just like apply, but resets the content: the line and\n // column are reversed, and the eaten value is re-added. This is\n // useful for nodes with a single type of content, such as lists and\n // tables. See `apply` above for what parameters are 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 } // Test the position, after eating, and reverse 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} // Check whether a node is mergeable with adjacent nodes.\n\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; // Only merge nodes which occupy the same size as their `value`.\n\n return start.line !== end.line || end.column - start.column === node.value.length;\n} // Merge two text nodes: `node` into `prev`.\n\n\nfunction mergeText(prev, node) {\n prev.value += node.value;\n return prev;\n} // Merge two blockquotes: `node` into `prev`, unless in 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}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.split\");\n\nvar decode = require('parse-entities');\n\nmodule.exports = length;\nvar ampersand = '&'; // Returns the length of HTML entity that is a prefix of the given string\n// (excluding the ampersand), 0 if it does not start with an entity.\n\nfunction length(value) {\n var prefix;\n /* istanbul ignore if - Currently also tested for at implemention, but we\n * keep it here because that’s proper. */\n\n if (value.charAt(0) !== ampersand) {\n return 0;\n }\n\n prefix = value.split(ampersand, 2).join(ampersand);\n return prefix.length - decode(prefix).length;\n}","'use strict';\n\nmodule.exports = wrap;\n\nvar u = require('unist-builder'); // Wrap `nodes` with line feeds between each entry.\n// Optionally adds line feeds at the start and end.\n\n\nfunction wrap(nodes, loose) {\n var result = [];\n var index = -1;\n var length = nodes.length;\n\n if (loose) {\n result.push(u('text', '\\n'));\n }\n\n while (++index < length) {\n if (index) {\n result.push(u('text', '\\n'));\n }\n\n result.push(nodes[index]);\n }\n\n if (loose && nodes.length !== 0) {\n result.push(u('text', '\\n'));\n }\n\n return result;\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\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = factory;\nvar backslash = '\\\\'; // Factory to de-escape a value, based on a list at `key` in `ctx`.\n\nfunction factory(ctx, key) {\n return unescape; // De-escape a string using the expression at `key` in `ctx`.\n\n function unescape(value) {\n var prev = 0;\n var index = value.indexOf(backslash);\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); // If the following character is not a valid escape, add the slash.\n\n if (!character || escape.indexOf(character) === -1) {\n queue.push(backslash);\n }\n\n index = value.indexOf(backslash, prev + 1);\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;\nvar lineFeed = '\\n';\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 !== lineFeed) {\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 === lineFeed) {\n subvalue += queue;\n queue = '';\n }\n\n index++;\n }\n\n eat(subvalue);\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\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 } // Link can never be `-1` if an image is found, so we don’t need to check\n // for that :)\n\n\n return link < image ? link : image;\n}","'use strict';\n\nvar locate = require('../locate/break');\n\nmodule.exports = hardBreak;\nhardBreak.locator = locate;\nvar space = ' ';\nvar lineFeed = '\\n';\nvar minBreakLength = 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 === lineFeed) {\n if (index < minBreakLength) {\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 !== space) {\n return;\n }\n\n queue += character;\n }\n}","'use strict';\n\nrequire(\"core-js/modules/es6.function.name\");\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; // Slight backwards compatibility. Remove in the future.\n\nproto.warn = message; // Create a message with `reason` at `position`. When an error is passed in as\n// `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} // Fail. Creates a vmessage, associates it with the file, and throws it.\n\n\nfunction fail() {\n var message = this.message.apply(this, arguments);\n message.fatal = true;\n throw message;\n} // Info. Creates a vmessage, associates it with the file, and marks the\n// 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\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = ccount;\n\nfunction ccount(value, character) {\n var count = 0;\n var index;\n value = String(value);\n\n if (typeof character !== 'string' || character.length !== 1) {\n throw new Error('Expected character');\n }\n\n index = value.indexOf(character);\n\n while (index !== -1) {\n count++;\n index = value.indexOf(character, index + 1);\n }\n\n return count;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nvar normalize = require('./normalize');\n\nvar DefinedInfo = require('./lib/util/defined-info');\n\nvar Info = require('./lib/util/info');\n\nvar data = 'data';\nmodule.exports = find;\nvar valid = /^data[-a-z0-9.:_]+$/i;\nvar dash = /-[a-z]/g;\nvar cap = /[A-Z]/g;\n\nfunction find(schema, value) {\n var normal = normalize(value);\n var prop = value;\n var Type = Info;\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]];\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === data && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n prop = datasetToProperty(value);\n } else {\n value = datasetToAttribute(value);\n }\n\n Type = DefinedInfo;\n }\n\n return new Type(prop, value);\n}\n\nfunction datasetToProperty(attribute) {\n var value = attribute.slice(5).replace(dash, camelcase);\n return data + value.charAt(0).toUpperCase() + value.slice(1);\n}\n\nfunction datasetToAttribute(property) {\n var value = property.slice(4);\n\n if (dash.test(value)) {\n return property;\n }\n\n value = value.replace(cap, kebab);\n\n if (value.charAt(0) !== '-') {\n value = '-' + value;\n }\n\n return data + value;\n}\n\nfunction kebab($0) {\n return '-' + $0.toLowerCase();\n}\n\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase();\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nvar trim = require('trim');\n\nvar interrupt = require('../util/interrupt');\n\nmodule.exports = blockquote;\nvar lineFeed = '\\n';\nvar tab = '\\t';\nvar space = ' ';\nvar greaterThan = '>';\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 !== space && character !== tab) {\n break;\n }\n\n index++;\n }\n\n if (value.charAt(index) !== greaterThan) {\n return;\n }\n\n if (silent) {\n return true;\n }\n\n index = 0;\n\n while (index < length) {\n nextIndex = value.indexOf(lineFeed, 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 !== space && character !== tab) {\n break;\n }\n\n index++;\n }\n\n if (value.charAt(index) === greaterThan) {\n index++;\n prefixed = true;\n\n if (value.charAt(index) === 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); // Check if the following code contains a possible 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(lineFeed));\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(lineFeed), now);\n exit();\n return add({\n type: 'blockquote',\n children: contents\n });\n}","import React from 'react'\nimport shortid from 'shortid'\nimport { useResume } from '../../../components/hooks/use-resume'\nimport Icon from '../../../components/atoms/Icon'\nimport styles from './ResumeHeader.module.scss'\nimport Button from \"../../../components/atoms/Button\"\n\nexport default function Header() {\n const { basics, languages } = useResume()\n const { resumeName, resumeLabel, email, website, location, resumeDownload } = basics\n\n return (\n <>\n <div>\n <p>Résumé</p>\n <h1 className={styles.title}>{resumeName}</h1>\n <h2 className={styles.label}>{resumeLabel}</h2>\n <Button href={resumeDownload}>Get my full résumé</Button>\n </div>\n\n <div>\n <ul className={styles.contact}>\n <li>\n <a href={website}>\n <Icon name=\"Compass\" />\n Portfolio\n </a>\n </li>\n <li>\n <Icon name=\"Mail\" />\n <a href={`mailto:${email}`}>Email</a>\n </li>\n <li>\n <Icon name=\"MapPin\" />\n {location.city}, {location.countryCode}\n </li>\n <li className={styles.languages}>\n <Icon name=\"Globe\" />\n {languages.map((item: any) => (\n <p key={shortid.generate()}>\n {item.language}\n <span>{item.fluency}</span>\n </p>\n ))}\n </li>\n </ul>\n </div>\n </>\n )\n}\n","'use strict';\n\nmodule.exports = unorderedItems;\nvar lineFeed = '\\n';\nvar blank = lineFeed + lineFeed; // Visit unordered list items. Uses `options.bullet` as each item’s bullet.\n\nfunction unorderedItems(node) {\n var self = this;\n var bullet = self.options.bullet;\n var fn = self.visitors.listItem;\n var children = node.children;\n var length = children.length;\n var index = -1;\n var values = [];\n\n while (++index < length) {\n values[index] = fn.call(self, children[index], node, index, bullet);\n }\n\n return values.join(node.spread ? blank : lineFeed);\n}","'use strict';\n\nvar powers = 0;\nexports[\"boolean\"] = increment();\nexports.booleanish = increment();\nexports.overloadedBoolean = increment();\nexports.number = increment();\nexports.spaceSeparated = increment();\nexports.commaSeparated = increment();\nexports.commaOrSpaceSeparated = increment();\n\nfunction increment() {\n return Math.pow(2, ++powers);\n}","'use strict';\n\nmodule.exports = toHast;\n\nvar xtend = require('xtend');\n\nvar u = require('unist-builder');\n\nvar visit = require('unist-util-visit');\n\nvar position = require('unist-util-position');\n\nvar generated = require('unist-util-generated');\n\nvar definitions = require('mdast-util-definitions');\n\nvar one = require('./one');\n\nvar footer = require('./footer');\n\nvar handlers = require('./handlers');\n\nvar own = {}.hasOwnProperty; // Factory to transform.\n\nfunction factory(tree, options) {\n var settings = options || {};\n var dangerous = settings.allowDangerousHTML;\n var footnoteById = {};\n h.dangerous = dangerous;\n h.definition = definitions(tree, settings);\n h.footnoteById = footnoteById;\n h.footnoteOrder = [];\n h.augment = augment;\n h.handlers = xtend(handlers, settings.handlers || {});\n visit(tree, 'footnoteDefinition', onfootnotedefinition);\n return h; // Finalise the created `right`, a hast node, from `left`, an mdast node.\n\n function augment(left, right) {\n var data;\n var ctx; // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n\n if (left && 'data' in left) {\n data = left.data;\n\n if (right.type === 'element' && data.hName) {\n right.tagName = data.hName;\n }\n\n if (right.type === 'element' && data.hProperties) {\n right.properties = xtend(right.properties, data.hProperties);\n }\n\n if (right.children && data.hChildren) {\n right.children = data.hChildren;\n }\n }\n\n ctx = left && left.position ? left : {\n position: left\n };\n\n if (!generated(ctx)) {\n right.position = {\n start: position.start(ctx),\n end: position.end(ctx)\n };\n }\n\n return right;\n } // Create an element for `node`.\n\n\n function h(node, tagName, props, children) {\n if ((children === undefined || children === null) && typeof props === 'object' && 'length' in props) {\n children = props;\n props = {};\n }\n\n return augment(node, {\n type: 'element',\n tagName: tagName,\n properties: props || {},\n children: children || []\n });\n }\n\n function onfootnotedefinition(definition) {\n var id = String(definition.identifier).toUpperCase(); // Mimick CM behavior of link definitions.\n // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/8d48e57/index.js#L26>.\n\n if (!own.call(footnoteById, id)) {\n footnoteById[id] = definition;\n }\n }\n} // Transform `tree`, which is an mdast node, to a hast node.\n\n\nfunction toHast(tree, options) {\n var h = factory(tree, options);\n var node = one(h, tree);\n var foot = footer(h);\n\n if (foot) {\n node.children = node.children.concat(u('text', '\\n'), foot);\n }\n\n return node;\n}","'use strict';\n\nmodule.exports = require('./lib');","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nvar xtend = require('xtend');\n\nvar removePosition = require('unist-util-remove-position');\n\nmodule.exports = parse;\nvar lineFeed = '\\n';\nvar lineBreaksExpression = /\\r\\n|\\r/g; // 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; // Clean non-unix newlines: `\\r\\n` and `\\r` are all changed to `\\n`.\n // This should not affect positional information.\n\n value = value.replace(lineBreaksExpression, lineFeed); // BOM.\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}","'use strict';\n\nmodule.exports = bail;\n\nfunction bail(err) {\n if (err) {\n throw err;\n }\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.match\");\n\nmodule.exports = code;\n\nvar detab = require('detab');\n\nvar u = require('unist-builder');\n\nfunction code(h, node) {\n var value = node.value ? detab(node.value + '\\n') : '';\n var lang = node.lang && node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/);\n var props = {};\n\n if (lang) {\n props.className = ['language-' + lang];\n }\n\n return h(node.position, 'pre', [h(node, 'code', props, [u('text', value)])]);\n}","'use strict';\n\nrequire(\"core-js/modules/es6.function.name\");\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nvar xtend = require('xtend');\n\nvar svg = require('property-information/svg');\n\nvar find = require('property-information/find');\n\nvar spaces = require('space-separated-tokens').stringify;\n\nvar commas = require('comma-separated-tokens').stringify;\n\nvar entities = require('stringify-entities');\n\nvar ccount = require('ccount');\n\nvar all = require('./all');\n\nvar constants = require('./constants');\n\nmodule.exports = element;\nvar space = ' ';\nvar quotationMark = '\"';\nvar apostrophe = \"'\";\nvar equalsTo = '=';\nvar lessThan = '<';\nvar greaterThan = '>';\nvar slash = '/'; // Stringify an element `node`.\n// eslint-disable-next-line complexity\n\nfunction element(ctx, node, index, parent) {\n var parentSchema = ctx.schema;\n var name = node.tagName;\n var value = '';\n var selfClosing;\n var close;\n var omit;\n var root = node;\n var content;\n var attrs;\n var last;\n\n if (parentSchema.space === 'html' && name === 'svg') {\n ctx.schema = svg;\n }\n\n attrs = attributes(ctx, node.properties);\n\n if (ctx.schema.space === 'svg') {\n omit = false;\n close = true;\n selfClosing = ctx.closeEmpty;\n } else {\n omit = ctx.omit;\n close = ctx.close;\n selfClosing = ctx.voids.indexOf(name.toLowerCase()) !== -1;\n\n if (name === 'template') {\n root = node.content;\n }\n }\n\n content = all(ctx, root); // If the node is categorised as void, but it has children, remove the\n // categorisation.\n // This enables for example `menuitem`s, which are void in W3C HTML but not\n // void in WHATWG HTML, to be stringified properly.\n\n selfClosing = content ? false : selfClosing;\n\n if (attrs || !omit || !omit.opening(node, index, parent)) {\n value = lessThan + name + (attrs ? space + attrs : '');\n\n if (selfClosing && close) {\n last = attrs.charAt(attrs.length - 1);\n\n if (!ctx.tightClose || last === slash || ctx.schema.space === 'svg' && last && last !== quotationMark && last !== apostrophe) {\n value += space;\n }\n\n value += slash;\n }\n\n value += greaterThan;\n }\n\n value += content;\n\n if (!selfClosing && (!omit || !omit.closing(node, index, parent))) {\n value += lessThan + slash + name + greaterThan;\n }\n\n ctx.schema = parentSchema;\n return value;\n} // Stringify all attributes.\n\n\nfunction attributes(ctx, props) {\n var values = [];\n var key;\n var value;\n var result;\n var length;\n var index;\n var last;\n\n for (key in props) {\n value = props[key];\n\n if (value == null) {\n continue;\n }\n\n result = attribute(ctx, key, value);\n\n if (result) {\n values.push(result);\n }\n }\n\n length = values.length;\n index = -1;\n\n while (++index < length) {\n result = values[index];\n last = null;\n\n if (ctx.tight) {\n last = result.charAt(result.length - 1);\n } // In tight mode, don’t add a space after quoted attributes.\n\n\n if (index !== length - 1 && last !== quotationMark && last !== apostrophe) {\n values[index] = result + space;\n }\n }\n\n return values.join('');\n} // Stringify one attribute.\n\n\nfunction attribute(ctx, key, value) {\n var schema = ctx.schema;\n var info = find(schema, key);\n var name = info.attribute;\n\n if (info.overloadedBoolean && (value === name || value === '')) {\n value = true;\n } else if (info[\"boolean\"] || info.overloadedBoolean && typeof value !== 'string') {\n value = Boolean(value);\n }\n\n if (value == null || value === false || typeof value === 'number' && isNaN(value)) {\n return '';\n }\n\n name = attributeName(ctx, name);\n\n if (value === true) {\n // There is currently only one boolean property in SVG: `[download]` on\n // `<a>`.\n // This property does not seem to work in browsers (FF, Sa, Ch), so I can’t\n // test if dropping the value works.\n // But I assume that it should:\n //\n // ```html\n // <!doctype html>\n // <svg viewBox=\"0 0 100 100\">\n // <a href=https://example.com download>\n // <circle cx=50 cy=40 r=35 />\n // </a>\n // </svg>\n // ```\n //\n // See: <https://github.com/wooorm/property-information/blob/master/lib/svg.js>\n return name;\n }\n\n return name + attributeValue(ctx, key, value, info);\n} // Stringify the attribute name.\n\n\nfunction attributeName(ctx, name) {\n // Always encode without parse errors in non-HTML.\n var valid = ctx.schema.space === 'html' ? ctx.valid : 1;\n var subset = constants.name[valid][ctx.safe];\n return entities(name, xtend(ctx.entities, {\n subset: subset\n }));\n} // Stringify the attribute value.\n\n\nfunction attributeValue(ctx, key, value, info) {\n var options = ctx.entities;\n var quote = ctx.quote;\n var alternative = ctx.alternative;\n var unquoted;\n var subset;\n\n if (typeof value === 'object' && 'length' in value) {\n // `spaces` doesn’t accept a second argument, but it’s given here just to\n // keep the code cleaner.\n value = (info.commaSeparated ? commas : spaces)(value, {\n padLeft: !ctx.tightLists\n });\n }\n\n value = String(value);\n\n if (value || !ctx.collapseEmpty) {\n unquoted = value; // Check unquoted value.\n\n if (ctx.unquoted) {\n subset = constants.unquoted[ctx.valid][ctx.safe];\n unquoted = entities(value, xtend(options, {\n subset: subset,\n attribute: true\n }));\n } // If `value` contains entities when unquoted…\n\n\n if (!ctx.unquoted || unquoted !== value) {\n // If the alternative is less common than `quote`, switch.\n if (alternative && ccount(value, quote) > ccount(value, alternative)) {\n quote = alternative;\n }\n\n subset = quote === apostrophe ? constants.single : constants[\"double\"]; // Always encode without parse errors in non-HTML.\n\n subset = subset[ctx.schema.space === 'html' ? ctx.valid : 1][ctx.safe];\n value = entities(value, xtend(options, {\n subset: subset,\n attribute: true\n }));\n value = quote + value + quote;\n } // Don’t add a `=` for unquoted empties.\n\n\n value = value ? equalsTo + value : value;\n }\n\n return value;\n}","'use strict';\n\nmodule.exports = fencedCode;\nvar lineFeed = '\\n';\nvar tab = '\\t';\nvar space = ' ';\nvar tilde = '~';\nvar graveAccent = '`';\nvar minFenceCount = 3;\nvar tabSize = 4;\n\nfunction fencedCode(eat, value, silent) {\n var self = this;\n var gfm = self.options.gfm;\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 lang;\n var meta;\n var queue;\n var content;\n var exdentedContent;\n var closing;\n var exdentedClosing;\n var indent;\n var now;\n\n if (!gfm) {\n return;\n } // Eat initial spacing.\n\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== space && character !== tab) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n indent = index; // Eat the fence.\n\n character = value.charAt(index);\n\n if (character !== tilde && character !== graveAccent) {\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 < minFenceCount) {\n return;\n } // Eat spacing before flag.\n\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== space && character !== tab) {\n break;\n }\n\n subvalue += character;\n index++;\n } // Eat flag.\n\n\n flag = '';\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === lineFeed || marker === graveAccent && character === marker) {\n break;\n }\n\n if (character === space || character === 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 !== lineFeed) {\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 var skip = true; // 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 !== lineFeed) {\n content += character;\n exdentedClosing += character;\n index++;\n continue;\n } // The first line feed is ignored. Others aren’t.\n\n\n if (skip) {\n subvalue += character;\n skip = false;\n } else {\n closing += character;\n exdentedClosing += character;\n }\n\n queue = '';\n index++;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== 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 >= tabSize) {\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 !== space && character !== tab) {\n break;\n }\n\n closing += character;\n exdentedClosing += character;\n index++;\n }\n\n if (!character || character === lineFeed) {\n break;\n }\n }\n\n subvalue += content + closing; // Get lang and meta from the flag.\n\n index = -1;\n length = flag.length;\n\n while (++index < length) {\n character = flag.charAt(index);\n\n if (character === space || character === tab) {\n if (!lang) {\n lang = flag.slice(0, index);\n }\n } else if (lang) {\n meta = flag.slice(index);\n break;\n }\n }\n\n return eat(subvalue)({\n type: 'code',\n lang: lang || flag || null,\n meta: meta || null,\n value: exdentedContent\n });\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar normalize = require('../util/normalize');\n\nmodule.exports = definition;\nvar quotationMark = '\"';\nvar apostrophe = \"'\";\nvar backslash = '\\\\';\nvar lineFeed = '\\n';\nvar tab = '\\t';\nvar space = ' ';\nvar leftSquareBracket = '[';\nvar rightSquareBracket = ']';\nvar leftParenthesis = '(';\nvar rightParenthesis = ')';\nvar colon = ':';\nvar lessThan = '<';\nvar greaterThan = '>';\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 !== space && character !== tab) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (character !== leftSquareBracket) {\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 === rightSquareBracket) {\n break;\n } else if (character === 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) !== rightSquareBracket || value.charAt(index + 1) !== colon) {\n return;\n }\n\n identifier = queue;\n subvalue += queue + rightSquareBracket + colon;\n index = subvalue.length;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== tab && character !== space && character !== lineFeed) {\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 === lessThan) {\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 += lessThan + 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 !== tab && character !== space && character !== lineFeed) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n test = null;\n\n if (character === quotationMark) {\n test = quotationMark;\n } else if (character === apostrophe) {\n test = apostrophe;\n } else if (character === leftParenthesis) {\n test = rightParenthesis;\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 === lineFeed) {\n index++;\n character = value.charAt(index);\n\n if (character === lineFeed || character === test) {\n return;\n }\n\n queue += lineFeed;\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 !== tab && character !== space) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (!character || character === lineFeed) {\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 label: identifier,\n title: title || null,\n url: url\n });\n }\n} // Check if `character` can be inside an enclosed URI.\n\n\nfunction isEnclosedURLCharacter(character) {\n return character !== greaterThan && character !== leftSquareBracket && character !== rightSquareBracket;\n}\n\nisEnclosedURLCharacter.delimiter = greaterThan; // Check if `character` can be inside an unclosed URI.\n\nfunction isUnclosedURLCharacter(character) {\n return character !== leftSquareBracket && character !== rightSquareBracket && !whitespace(character);\n}","'use strict';\n\nvar normalize = require('mdurl/encode');\n\nmodule.exports = image;\n\nfunction image(h, node) {\n var props = {\n src: normalize(node.url),\n alt: node.alt\n };\n\n if (node.title !== null && node.title !== undefined) {\n props.title = node.title;\n }\n\n return h(node, 'img', props);\n}","'use strict';\n\nvar merge = require('./lib/util/merge');\n\nvar xlink = require('./lib/xlink');\n\nvar xml = require('./lib/xml');\n\nvar xmlns = require('./lib/xmlns');\n\nvar aria = require('./lib/aria');\n\nvar svg = require('./lib/svg');\n\nmodule.exports = merge([xml, xlink, xmlns, aria, svg]);","'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}","require(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nvar toString = Object.prototype.toString;\nmodule.exports = isString;\n\nfunction isString(obj) {\n return toString.call(obj) === \"[object String]\";\n}","'use strict';\n\nmodule.exports = ['address', 'article', 'aside', 'base', 'basefont', 'blockquote', 'body', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dialog', 'dir', 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'legend', 'li', 'link', 'main', 'menu', 'menuitem', 'meta', 'nav', 'noframes', 'ol', 'optgroup', 'option', 'p', 'param', 'pre', 'section', 'source', 'title', 'summary', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul'];","'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 locate = require('../locate/code-inline');\n\nmodule.exports = inlineCode;\ninlineCode.locator = locate;\nvar lineFeed = 10; // '\\n'\n\nvar space = 32; // ' '\n\nvar graveAccent = 96; // '`'\n\nfunction inlineCode(eat, value, silent) {\n var length = value.length;\n var index = 0;\n var openingFenceEnd;\n var closingFenceStart;\n var closingFenceEnd;\n var code;\n var next;\n var found;\n\n while (index < length) {\n if (value.charCodeAt(index) !== graveAccent) {\n break;\n }\n\n index++;\n }\n\n if (index === 0 || index === length) {\n return;\n }\n\n openingFenceEnd = index;\n next = value.charCodeAt(index);\n\n while (index < length) {\n code = next;\n next = value.charCodeAt(index + 1);\n\n if (code === graveAccent) {\n if (closingFenceStart === undefined) {\n closingFenceStart = index;\n }\n\n closingFenceEnd = index + 1;\n\n if (next !== graveAccent && closingFenceEnd - closingFenceStart === openingFenceEnd) {\n found = true;\n break;\n }\n } else if (closingFenceStart !== undefined) {\n closingFenceStart = undefined;\n closingFenceEnd = undefined;\n }\n\n index++;\n }\n\n if (!found) {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n } // Remove the initial and final space (or line feed), iff they exist and there\n // are non-space characters in the content.\n\n\n index = openingFenceEnd;\n length = closingFenceStart;\n code = value.charCodeAt(index);\n next = value.charCodeAt(length - 1);\n found = false;\n\n if (length - index > 2 && (code === space || code === lineFeed) && (next === space || next === lineFeed)) {\n index++;\n length--;\n\n while (index < length) {\n code = value.charCodeAt(index);\n\n if (code !== space && code !== lineFeed) {\n found = true;\n break;\n }\n\n index++;\n }\n\n if (found === true) {\n openingFenceEnd++;\n closingFenceStart--;\n }\n }\n\n return eat(value.slice(0, closingFenceEnd))({\n type: 'inlineCode',\n value: value.slice(openingFenceEnd, closingFenceStart)\n });\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.replace\");\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\nrequire(\"core-js/modules/es6.array.index-of\");\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 tab = '\\t';\nvar lineFeed = '\\n';\nvar space = ' ';\nvar tabSize = 4; // 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(lineFeed);\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 } // Stop if the next character is NEWLINE.\n\n\n if (value.charAt(index + 1) === lineFeed) {\n break;\n } // In commonmark-mode, following indented lines 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 === tab) {\n size = tabSize;\n break;\n } else if (character === space) {\n size++;\n } else {\n break;\n }\n\n position++;\n }\n\n if (size >= tabSize && character !== lineFeed) {\n index = value.indexOf(lineFeed, index + 1);\n continue;\n }\n }\n\n subvalue = value.slice(index + 1); // Check if the following code contains a possible block.\n\n if (interrupt(interruptors, tokenizers, self, [eat, subvalue, true])) {\n break;\n } // Break if the following line starts a list, when already in a list, or\n // when in commonmark, or when 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(lineFeed, 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}","'use strict';\n\nvar repeat = require('repeat-string');\n\nvar trim = require('trim-trailing-lines');\n\nmodule.exports = indentedCode;\nvar lineFeed = '\\n';\nvar tab = '\\t';\nvar space = ' ';\nvar tabSize = 4;\nvar codeIndent = repeat(space, tabSize);\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 === lineFeed) {\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 === lineFeed) {\n contentQueue = character;\n subvalueQueue = character;\n break;\n }\n\n subvalue += character;\n content += character;\n }\n }\n } else if (character === space && value.charAt(index + 1) === character && value.charAt(index + 2) === character && value.charAt(index + 3) === character) {\n subvalueQueue += codeIndent;\n index += 3;\n indent = true;\n } else if (character === tab) {\n subvalueQueue += character;\n indent = true;\n } else {\n blankQueue = '';\n\n while (character === tab || character === space) {\n blankQueue += character;\n character = value.charAt(++index);\n }\n\n if (character !== lineFeed) {\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 meta: null,\n value: trim(content)\n });\n }\n}","'use strict';\n\nmodule.exports = interrupt;\n\nfunction interrupt(interruptors, tokenizers, ctx, params) {\n var length = interruptors.length;\n var index = -1;\n var interruptor;\n var config;\n\n while (++index < length) {\n interruptor = interruptors[index];\n config = interruptor[1] || {};\n\n if (config.pedantic !== undefined && config.pedantic !== ctx.options.pedantic) {\n continue;\n }\n\n if (config.commonmark !== undefined && config.commonmark !== ctx.options.commonmark) {\n continue;\n }\n\n if (tokenizers[interruptor[0]].apply(ctx, params)) {\n return true;\n }\n }\n\n return false;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.match\");\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 lessThan = '<';\nvar questionMark = '?';\nvar exclamationMark = '!';\nvar slash = '/';\nvar htmlLinkOpenExpression = /^<a /i;\nvar htmlLinkCloseExpression = /^<\\/a>/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) !== lessThan || length < 3) {\n return;\n }\n\n character = value.charAt(1);\n\n if (!alphabetical(character) && character !== questionMark && character !== exclamationMark && character !== slash) {\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 && htmlLinkOpenExpression.test(subvalue)) {\n self.inLink = true;\n } else if (self.inLink && htmlLinkCloseExpression.test(subvalue)) {\n self.inLink = false;\n }\n\n return eat(subvalue)({\n type: 'html',\n value: subvalue\n });\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nmodule.exports = interElementWhiteSpace; // HTML white-space expression.\n// See <https://html.spec.whatwg.org/#space-character>.\n\nvar re = /[ \\t\\n\\f\\r]/g;\n\nfunction interElementWhiteSpace(node) {\n var value;\n\n if (node && typeof node === 'object' && node.type === 'text') {\n value = node.value || '';\n } else if (typeof node === 'string') {\n value = node;\n } else {\n return false;\n }\n\n return value.replace(re, '') === '';\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 backslash = '\\\\';\nvar asterisk = '*';\nvar 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 !== asterisk && character !== 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 === backslash) {\n queue += character;\n character = value.charAt(++index);\n }\n\n queue += character;\n index++;\n }\n}","'use strict';\n\nmodule.exports = strikethrough;\nvar tilde = '~';\nvar fence = tilde + tilde;\n\nfunction strikethrough(node) {\n return fence + this.all(node).join('') + fence;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.split\");\n\nvar repeat = require('repeat-string');\n\nmodule.exports = pad;\nvar lineFeed = '\\n';\nvar space = ' ';\nvar tabSize = 4; // Pad `value` with `level * tabSize` spaces. Respects lines. Ignores empty\n// lines.\n\nfunction pad(value, level) {\n var values = value.split(lineFeed);\n var index = values.length;\n var padding = repeat(space, level * tabSize);\n\n while (index--) {\n if (values[index].length !== 0) {\n values[index] = padding + values[index];\n }\n }\n\n return values.join(lineFeed);\n}","'use strict';\n\nvar uri = require('../util/enclose-uri');\n\nvar title = require('../util/enclose-title');\n\nmodule.exports = link;\nvar space = ' ';\nvar leftSquareBracket = '[';\nvar rightSquareBracket = ']';\nvar leftParenthesis = '(';\nvar rightParenthesis = ')'; // Expression for a protocol:\n// See <http://en.wikipedia.org/wiki/URI_scheme#Generic_syntax>.\n\nvar protocol = /^[a-z][a-z+.-]+:\\/?/i; // Stringify a link.\n//\n// When no title exists, the compiled `children` equal `url`, and `url` starts\n// with a protocol, an auto link is created:\n//\n// ```markdown\n// <http://example.com>\n// ```\n//\n// Otherwise, is smart about enclosing `url` (see `encloseURI()`) and `title`\n// (see `encloseTitle()`).\n// ```\n//\n// ```markdown\n// [foo](<foo at bar dot com> 'An \"example\" e-mail')\n// ```\n//\n// Supports named entities in the `url` and `title` when in `settings.encode`\n// mode.\n\nfunction link(node) {\n var self = this;\n var content = self.encode(node.url || '', node);\n var exit = self.enterLink();\n var escaped = self.encode(self.escape(node.url || '', node));\n var value = self.all(node).join('');\n exit();\n\n if (node.title == null && protocol.test(content) && escaped === value) {\n // Backslash escapes do not work in autolinks, so we do not escape.\n return uri(self.encode(node.url), true);\n }\n\n content = uri(content);\n\n if (node.title) {\n content += space + title(self.encode(self.escape(node.title, node), node));\n }\n\n return leftSquareBracket + value + rightSquareBracket + leftParenthesis + content + rightParenthesis;\n}","'use strict';\n\nmodule.exports = text;\n\nvar u = require('unist-builder');\n\nvar trimLines = require('trim-lines');\n\nfunction text(h, node) {\n return h.augment(node, u('text', trimLines(node.value)));\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.last-index-of\");\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nvar decimal = require('is-decimal');\n\nvar alphanumeric = require('is-alphanumeric');\n\nvar whitespace = require('is-whitespace-character');\n\nvar escapes = require('markdown-escapes');\n\nvar prefix = require('./util/entity-prefix-length');\n\nmodule.exports = factory;\nvar tab = '\\t';\nvar lineFeed = '\\n';\nvar space = ' ';\nvar numberSign = '#';\nvar ampersand = '&';\nvar leftParenthesis = '(';\nvar rightParenthesis = ')';\nvar asterisk = '*';\nvar plusSign = '+';\nvar dash = '-';\nvar dot = '.';\nvar colon = ':';\nvar lessThan = '<';\nvar greaterThan = '>';\nvar leftSquareBracket = '[';\nvar backslash = '\\\\';\nvar rightSquareBracket = ']';\nvar underscore = '_';\nvar graveAccent = '`';\nvar verticalBar = '|';\nvar tilde = '~';\nvar exclamationMark = '!';\nvar entities = {\n '<': '<',\n ':': ':',\n '&': '&',\n '|': '|',\n '~': '~'\n};\nvar shortcut = 'shortcut';\nvar mailto = 'mailto';\nvar https = 'https';\nvar http = 'http';\nvar blankExpression = /\\n\\s*$/; // Factory to escape characters.\n\nfunction factory(options) {\n return escape; // Escape punctuation characters in a node’s value.\n\n function escape(value, node, parent) {\n var self = this;\n var gfm = options.gfm;\n var commonmark = options.commonmark;\n var pedantic = options.pedantic;\n var markers = commonmark ? [dot, rightParenthesis] : [dot];\n var siblings = parent && parent.children;\n var index = siblings && siblings.indexOf(node);\n var prev = siblings && siblings[index - 1];\n var next = siblings && siblings[index + 1];\n var length = value.length;\n var escapable = escapes(options);\n var position = -1;\n var queue = [];\n var escaped = queue;\n var afterNewLine;\n var character;\n var wordCharBefore;\n var wordCharAfter;\n var offset;\n var replace;\n\n if (prev) {\n afterNewLine = text(prev) && blankExpression.test(prev.value);\n } else {\n afterNewLine = !parent || parent.type === 'root' || parent.type === 'paragraph';\n }\n\n while (++position < length) {\n character = value.charAt(position);\n replace = false;\n\n if (character === '\\n') {\n afterNewLine = true;\n } else if (character === backslash || character === graveAccent || character === asterisk || character === exclamationMark && value.charAt(position + 1) === leftSquareBracket || character === leftSquareBracket || character === lessThan || character === ampersand && prefix(value.slice(position)) > 0 || character === rightSquareBracket && self.inLink || gfm && character === tilde && value.charAt(position + 1) === tilde || gfm && character === verticalBar && (self.inTable || alignment(value, position)) || character === underscore && // Delegate leading/trailing underscores to the multinode version below.\n position > 0 && position < length - 1 && (pedantic || !alphanumeric(value.charAt(position - 1)) || !alphanumeric(value.charAt(position + 1))) || gfm && !self.inLink && character === colon && protocol(queue.join(''))) {\n replace = true;\n } else if (afterNewLine) {\n if (character === greaterThan || character === numberSign || character === asterisk || character === dash || character === plusSign) {\n replace = true;\n } else if (decimal(character)) {\n offset = position + 1;\n\n while (offset < length) {\n if (!decimal(value.charAt(offset))) {\n break;\n }\n\n offset++;\n }\n\n if (markers.indexOf(value.charAt(offset)) !== -1) {\n next = value.charAt(offset + 1);\n\n if (!next || next === space || next === tab || next === lineFeed) {\n queue.push(value.slice(position, offset));\n position = offset;\n character = value.charAt(position);\n replace = true;\n }\n }\n }\n }\n\n if (afterNewLine && !whitespace(character)) {\n afterNewLine = false;\n }\n\n queue.push(replace ? one(character) : character);\n } // Multi-node versions.\n\n\n if (siblings && text(node)) {\n // Check for an opening parentheses after a link-reference (which can be\n // joined by white-space).\n if (prev && prev.referenceType === shortcut) {\n position = -1;\n length = escaped.length;\n\n while (++position < length) {\n character = escaped[position];\n\n if (character === space || character === tab) {\n continue;\n }\n\n if (character === leftParenthesis || character === colon) {\n escaped[position] = one(character);\n }\n\n break;\n } // If the current node is all spaces / tabs, preceded by a shortcut,\n // and followed by a text starting with `(`, escape it.\n\n\n if (text(next) && position === length && next.value.charAt(0) === leftParenthesis) {\n escaped.push(backslash);\n }\n } // Ensure non-auto-links are not seen as links. This pattern needs to\n // check the preceding nodes too.\n\n\n if (gfm && !self.inLink && text(prev) && value.charAt(0) === colon && protocol(prev.value.slice(-6))) {\n escaped[0] = one(colon);\n } // Escape ampersand if it would otherwise start an entity.\n\n\n if (text(next) && value.charAt(length - 1) === ampersand && prefix(ampersand + next.value) !== 0) {\n escaped[escaped.length - 1] = one(ampersand);\n } // Escape exclamation marks immediately followed by links.\n\n\n if (next && next.type === 'link' && value.charAt(length - 1) === exclamationMark) {\n escaped[escaped.length - 1] = one(exclamationMark);\n } // Escape double tildes in GFM.\n\n\n if (gfm && text(next) && value.charAt(length - 1) === tilde && next.value.charAt(0) === tilde) {\n escaped.splice(escaped.length - 1, 0, backslash);\n } // Escape underscores, but not mid-word (unless in pedantic mode).\n\n\n wordCharBefore = text(prev) && alphanumeric(prev.value.slice(-1));\n wordCharAfter = text(next) && alphanumeric(next.value.charAt(0));\n\n if (length === 1) {\n if (value === underscore && (pedantic || !wordCharBefore || !wordCharAfter)) {\n escaped.unshift(backslash);\n }\n } else {\n if (value.charAt(0) === underscore && (pedantic || !wordCharBefore || !alphanumeric(value.charAt(1)))) {\n escaped.unshift(backslash);\n }\n\n if (value.charAt(length - 1) === underscore && (pedantic || !wordCharAfter || !alphanumeric(value.charAt(length - 2)))) {\n escaped.splice(escaped.length - 1, 0, backslash);\n }\n }\n }\n\n return escaped.join('');\n\n function one(character) {\n return escapable.indexOf(character) === -1 ? entities[character] : backslash + character;\n }\n }\n} // Check if `index` in `value` is inside an alignment row.\n\n\nfunction alignment(value, index) {\n var start = value.lastIndexOf(lineFeed, index);\n var end = value.indexOf(lineFeed, index);\n\n var _char;\n\n end = end === -1 ? value.length : end;\n\n while (++start < end) {\n _char = value.charAt(start);\n\n if (_char !== colon && _char !== dash && _char !== space && _char !== verticalBar) {\n return false;\n }\n }\n\n return true;\n} // Check if `node` is a text node.\n\n\nfunction text(node) {\n return node && node.type === 'text';\n} // Check if `value` ends in a protocol.\n\n\nfunction protocol(value) {\n var val = value.slice(-6).toLowerCase();\n return val === mailto || val.slice(-5) === https || val.slice(-4) === http;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = longestStreak; // Get the count of the longest repeating streak of `character` in `value`.\n\nfunction longestStreak(value, character) {\n var count = 0;\n var maximum = 0;\n var expected;\n var index;\n\n if (typeof character !== 'string' || character.length !== 1) {\n throw new Error('Expected character');\n }\n\n value = String(value);\n index = value.indexOf(character);\n expected = index;\n\n while (index !== -1) {\n count++;\n\n if (index === expected) {\n if (count > maximum) {\n maximum = count;\n }\n } else {\n count = 1;\n }\n\n expected = index + 1;\n index = value.indexOf(character, expected);\n }\n\n return maximum;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nvar whitespace = require('is-whitespace-character');\n\nmodule.exports = table;\nvar tab = '\\t';\nvar lineFeed = '\\n';\nvar space = ' ';\nvar dash = '-';\nvar colon = ':';\nvar backslash = '\\\\';\nvar graveAccent = '`';\nvar verticalBar = '|';\nvar minColumns = 1;\nvar minRows = 2;\nvar left = 'left';\nvar center = 'center';\nvar right = 'right';\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; // Exit when not in gfm-mode.\n\n if (!self.options.gfm) {\n return;\n } // Get the rows.\n // Detecting tables soon is hard, so there are some checks for performance\n // here, such as the minimum 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(lineFeed, index);\n pipeIndex = value.indexOf(verticalBar, index + 1);\n\n if (lineIndex === -1) {\n lineIndex = value.length;\n }\n\n if (pipeIndex === -1 || pipeIndex > lineIndex) {\n if (lineCount < minRows) {\n return;\n }\n\n break;\n }\n\n lines.push(value.slice(index, lineIndex));\n lineCount++;\n index = lineIndex + 1;\n } // Parse the alignment row.\n\n\n subvalue = lines.join(lineFeed);\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 === verticalBar) {\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 === dash) {\n hasDash = true;\n alignment = alignment || null;\n } else if (character === colon) {\n if (alignment === left) {\n alignment = center;\n } else if (hasDash && alignment === null) {\n alignment = right;\n } else {\n alignment = left;\n }\n } else if (!whitespace(character)) {\n return;\n }\n\n index++;\n }\n\n if (alignment !== false) {\n align.push(alignment);\n } // Exit when without enough columns.\n\n\n if (align.length < minColumns) {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\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 }; // Eat a newline character when this is not the first row.\n\n if (position) {\n eat(lineFeed);\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 === tab || character === space) {\n if (cell) {\n queue += character;\n } else {\n eat(character);\n }\n\n index++;\n continue;\n }\n\n if (character === '' || character === verticalBar) {\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 === backslash && index !== length - 2) {\n cell += line.charAt(index + 1);\n index++;\n }\n\n if (character === graveAccent) {\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 } // Eat the alignment row.\n\n\n if (!position) {\n eat(lineFeed + alignments);\n }\n }\n\n return table;\n}","require(\"core-js/modules/es6.regexp.replace\");\n\nrequire(\"core-js/modules/es6.array.last-index-of\");\n\nrequire(\"core-js/modules/es6.regexp.match\");\n\n// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/; // declaration\n\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/; // https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\n\nvar TRIM_REGEX = /^\\s+|\\s+$/g; // strings\n\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = ''; // types\n\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\n\nmodule.exports = function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n options = options || {};\n /**\n * Positional.\n */\n\n var lineno = 1;\n var column = 1;\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n\n\n function position() {\n var start = {\n line: lineno,\n column: column\n };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n\n\n function Position(start) {\n this.start = start;\n this.end = {\n line: lineno,\n column: column\n };\n this.source = options.source;\n }\n /**\n * Non-enumerable source string.\n */\n\n\n Position.prototype.content = style;\n var errorsList = [];\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n\n function error(msg) {\n var err = new Error(options.source + ':' + lineno + ':' + column + ': ' + msg);\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n\n\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n /**\n * Parse whitespace.\n */\n\n\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n\n\n function comments(rules) {\n var c;\n rules = rules || [];\n\n while (c = comment()) {\n if (c !== false) {\n rules.push(c);\n }\n }\n\n return rules;\n }\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n\n\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n var i = 2;\n\n while (EMPTY_STRING != style.charAt(i) && (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))) {\n ++i;\n }\n\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n\n\n function declaration() {\n var pos = position(); // prop\n\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment(); // :\n\n if (!match(COLON_REGEX)) return error(\"property missing ':'\"); // val\n\n var val = match(VALUE_REGEX);\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING)) : EMPTY_STRING\n }); // ;\n\n match(SEMICOLON_REGEX);\n return ret;\n }\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n\n\n function declarations() {\n var decls = [];\n comments(decls); // declarations\n\n var decl;\n\n while (decl = declaration()) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\n\n\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}","'use strict';\n\nmodule.exports = omission;\nvar own = {}.hasOwnProperty; // Factory to check if a given node can have a tag omitted.\n\nfunction omission(handlers) {\n return omit; // Check if a given node can have a tag omitted.\n\n function omit(node, index, parent) {\n var name = node.tagName;\n var fn = own.call(handlers, name) ? handlers[name] : false;\n return fn ? fn(node, index, parent) : false;\n }\n}","'use strict';\n\nvar uri = require('../util/enclose-uri');\n\nvar title = require('../util/enclose-title');\n\nmodule.exports = image;\nvar space = ' ';\nvar leftParenthesis = '(';\nvar rightParenthesis = ')';\nvar leftSquareBracket = '[';\nvar rightSquareBracket = ']';\nvar exclamationMark = '!'; // Stringify an image.\n//\n// Is smart about enclosing `url` (see `encloseURI()`) and `title` (see\n// `encloseTitle()`).\n//\n// ```markdown\n// \n// ```\n//\n// Supports named entities in `url`, `alt`, and `title` when in\n// `settings.encode` mode.\n\nfunction image(node) {\n var self = this;\n var content = uri(self.encode(node.url || '', node));\n var exit = self.enterLink();\n var alt = self.encode(self.escape(node.alt || '', node));\n exit();\n\n if (node.title) {\n content += space + title(self.encode(node.title, node));\n }\n\n return exclamationMark + leftSquareBracket + alt + rightSquareBracket + leftParenthesis + content + rightParenthesis;\n}","'use strict';\n\nmodule.exports = inlineCode;\n\nvar collapse = require('collapse-white-space');\n\nvar u = require('unist-builder');\n\nfunction inlineCode(h, node) {\n return h(node, 'code', [u('text', collapse(node.value))]);\n}","'use strict';\n\nmodule.exports = atxHeading;\nvar lineFeed = '\\n';\nvar tab = '\\t';\nvar space = ' ';\nvar numberSign = '#';\nvar maxFenceCount = 6;\n\nfunction atxHeading(eat, value, silent) {\n var self = this;\n var pedantic = self.options.pedantic;\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; // Eat initial spacing.\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== space && character !== tab) {\n index--;\n break;\n }\n\n subvalue += character;\n } // Eat hashes.\n\n\n depth = 0;\n\n while (++index <= length) {\n character = value.charAt(index);\n\n if (character !== numberSign) {\n index--;\n break;\n }\n\n subvalue += character;\n depth++;\n }\n\n if (depth > maxFenceCount) {\n return;\n }\n\n if (!depth || !pedantic && value.charAt(index + 1) === numberSign) {\n return;\n }\n\n length = value.length + 1; // Eat intermediate white-space.\n\n queue = '';\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== space && character !== tab) {\n index--;\n break;\n }\n\n queue += character;\n } // Exit when not in pedantic mode without spacing.\n\n\n if (!pedantic && queue.length === 0 && character && character !== lineFeed) {\n return;\n }\n\n if (silent) {\n return true;\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 === lineFeed) {\n break;\n }\n\n if (character !== space && character !== tab && character !== numberSign) {\n content += queue + character;\n queue = '';\n continue;\n }\n\n while (character === space || character === tab) {\n queue += character;\n character = value.charAt(++index);\n } // `#` without a queue is part of the content.\n\n\n if (!pedantic && content && !queue && character === numberSign) {\n content += character;\n continue;\n }\n\n while (character === numberSign) {\n queue += character;\n character = value.charAt(++index);\n }\n\n while (character === space || character === 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 = footnoteReference;\nvar leftSquareBracket = '[';\nvar rightSquareBracket = ']';\nvar caret = '^';\n\nfunction footnoteReference(node) {\n return leftSquareBracket + caret + (node.label || node.identifier) + rightSquareBracket;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n return value.indexOf('~~', fromIndex);\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\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 = '<![A-Za-z]+\\\\s+[^>]*>';\nvar cdata = '<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>';\nexports.openCloseTag = new RegExp('^(?:' + openTag + '|' + closeTag + ')');\nexports.tag = new RegExp('^(?:' + openTag + '|' + closeTag + '|' + comment + '|' + processing + '|' + declaration + '|' + cdata + ')');","'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 lessThan = '<';\nvar greaterThan = '>';\nvar atSign = '@';\nvar slash = '/';\nvar mailto = 'mailto:';\nvar mailtoLength = mailto.length;\n\nfunction autoLink(eat, value, silent) {\n var self = this;\n var subvalue = '';\n var length = value.length;\n var index = 0;\n var queue = '';\n var hasAtCharacter = false;\n var link = '';\n var character;\n var now;\n var content;\n var tokenizers;\n var exit;\n\n if (value.charAt(0) !== lessThan) {\n return;\n }\n\n index++;\n subvalue = lessThan;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (whitespace(character) || character === greaterThan || character === atSign || character === ':' && value.charAt(index + 1) === 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 === atSign) {\n hasAtCharacter = true;\n } else {\n if (character !== ':' || value.charAt(index + 1) !== slash) {\n return;\n }\n\n link += slash;\n index++;\n }\n\n while (index < length) {\n character = value.charAt(index);\n\n if (whitespace(character) || character === greaterThan) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (!queue || character !== greaterThan) {\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, mailtoLength).toLowerCase() === mailto) {\n content = content.substr(mailtoLength);\n now.column += mailtoLength;\n now.offset += mailtoLength;\n } else {\n link = mailto + link;\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}","'use strict';\n\nmodule.exports = root;\n\nvar u = require('unist-builder');\n\nvar wrap = require('../wrap');\n\nvar all = require('../all');\n\nfunction root(h, node) {\n return h.augment(node, u('root', wrap(all(h, node))));\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n return value.indexOf('\\\\', fromIndex);\n}","'use strict';\n\nmodule.exports = setextHeading;\nvar lineFeed = '\\n';\nvar tab = '\\t';\nvar space = ' ';\nvar equalsTo = '=';\nvar dash = '-';\nvar maxIndent = 3;\nvar equalsToDepth = 1;\nvar dashDepth = 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; // Eat initial indentation.\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== space || index >= maxIndent) {\n index--;\n break;\n }\n\n subvalue += character;\n } // Eat content.\n\n\n content = '';\n queue = '';\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character === lineFeed) {\n index--;\n break;\n }\n\n if (character === space || character === 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; // Ensure the content is followed by a newline and a valid marker.\n\n character = value.charAt(++index);\n marker = value.charAt(++index);\n\n if (character !== lineFeed || marker !== equalsTo && marker !== dash) {\n return;\n }\n\n subvalue += character; // Eat Setext-line.\n\n queue = marker;\n depth = marker === equalsTo ? equalsToDepth : dashDepth;\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== marker) {\n if (character !== lineFeed) {\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\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\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 xtend = require('xtend');\n\nvar entities = require('parse-entities');\n\nmodule.exports = factory; // Factory to create an entity decoder.\n\nfunction factory(ctx) {\n decoder.raw = decodeRaw;\n return decoder; // 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 } // 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 } // 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 } // Handle a warning.\n // See <https://github.com/wooorm/parse-entities> for the warnings.\n\n\n function handleWarning(reason, position, code) {\n if (code !== 3) {\n ctx.file.message(reason, position);\n }\n }\n}","require(\"core-js/modules/es6.object.create\");\n\nif (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\nrequire(\"core-js/modules/es6.array.index-of\");\n\nvar trim = require('trim');\n\nvar interrupt = require('../util/interrupt');\n\nmodule.exports = blockquote;\nvar lineFeed = '\\n';\nvar tab = '\\t';\nvar space = ' ';\nvar greaterThan = '>';\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 !== space && character !== tab) {\n break;\n }\n\n index++;\n }\n\n if (value.charAt(index) !== greaterThan) {\n return;\n }\n\n if (silent) {\n return true;\n }\n\n index = 0;\n\n while (index < length) {\n nextIndex = value.indexOf(lineFeed, 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 !== space && character !== tab) {\n break;\n }\n\n index++;\n }\n\n if (value.charAt(index) === greaterThan) {\n index++;\n prefixed = true;\n\n if (value.charAt(index) === 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); // Check if the following code contains a possible 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(lineFeed));\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(lineFeed), now);\n exit();\n return add({\n type: 'blockquote',\n children: contents\n });\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nmodule.exports = newline;\nvar lineFeed = '\\n';\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 !== lineFeed) {\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 === lineFeed) {\n subvalue += queue;\n queue = '';\n }\n\n index++;\n }\n\n eat(subvalue);\n}","'use strict';\n\nvar repeat = require('repeat-string');\n\nvar trim = require('trim-trailing-lines');\n\nmodule.exports = indentedCode;\nvar lineFeed = '\\n';\nvar tab = '\\t';\nvar space = ' ';\nvar tabSize = 4;\nvar codeIndent = repeat(space, tabSize);\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 === lineFeed) {\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 === lineFeed) {\n contentQueue = character;\n subvalueQueue = character;\n break;\n }\n\n subvalue += character;\n content += character;\n }\n }\n } else if (character === space && value.charAt(index + 1) === character && value.charAt(index + 2) === character && value.charAt(index + 3) === character) {\n subvalueQueue += codeIndent;\n index += 3;\n indent = true;\n } else if (character === tab) {\n subvalueQueue += character;\n indent = true;\n } else {\n blankQueue = '';\n\n while (character === tab || character === space) {\n blankQueue += character;\n character = value.charAt(++index);\n }\n\n if (character !== lineFeed) {\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 meta: null,\n value: trim(content)\n });\n }\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.split\");\n\nmodule.exports = blockquote;\nvar lineFeed = '\\n';\nvar space = ' ';\nvar greaterThan = '>';\n\nfunction blockquote(node) {\n var values = this.block(node).split(lineFeed);\n var result = [];\n var length = values.length;\n var index = -1;\n var value;\n\n while (++index < length) {\n value = values[index];\n result[index] = (value ? space : '') + value;\n }\n\n return greaterThan + result.join(lineFeed + greaterThan);\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 backslash = '\\\\';\nvar asterisk = '*';\nvar 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 !== asterisk && character !== 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 === backslash) {\n queue += character;\n character = value.charAt(++index);\n }\n\n queue += character;\n index++;\n }\n}","'use strict';\n\nmodule.exports = root;\nvar lineFeed = '\\n'; // Stringify a root.\n// Adds a final newline to ensure valid POSIX files. */\n\nfunction root(node) {\n return this.block(node) + lineFeed;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\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 tab = '\\t';\nvar lineFeed = '\\n';\nvar space = ' ';\nvar tabSize = 4; // 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(lineFeed);\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 } // Stop if the next character is NEWLINE.\n\n\n if (value.charAt(index + 1) === lineFeed) {\n break;\n } // In commonmark-mode, following indented lines 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 === tab) {\n size = tabSize;\n break;\n } else if (character === space) {\n size++;\n } else {\n break;\n }\n\n position++;\n }\n\n if (size >= tabSize && character !== lineFeed) {\n index = value.indexOf(lineFeed, index + 1);\n continue;\n }\n }\n\n subvalue = value.slice(index + 1); // Check if the following code contains a possible block.\n\n if (interrupt(interruptors, tokenizers, self, [eat, subvalue, true])) {\n break;\n } // Break if the following line starts a list, when already in a list, or\n // when in commonmark, or when 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(lineFeed, 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}","'use strict';\n\nvar types = require('./util/types');\n\nvar create = require('./util/create');\n\nvar caseInsensitiveTransform = require('./util/case-insensitive-transform');\n\nvar _boolean = types[\"boolean\"];\nvar overloadedBoolean = types.overloadedBoolean;\nvar booleanish = types.booleanish;\nvar number = types.number;\nvar spaceSeparated = types.spaceSeparated;\nvar commaSeparated = types.commaSeparated;\nmodule.exports = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: _boolean,\n allowPaymentRequest: _boolean,\n allowUserMedia: _boolean,\n alt: null,\n as: null,\n async: _boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: _boolean,\n autoPlay: _boolean,\n capture: _boolean,\n charSet: null,\n checked: _boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: _boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n \"default\": _boolean,\n defer: _boolean,\n dir: null,\n dirName: null,\n disabled: _boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: _boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: _boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: commaSeparated,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: _boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: _boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loop: _boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: _boolean,\n muted: _boolean,\n name: null,\n nonce: null,\n noModule: _boolean,\n noValidate: _boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextMenu: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: _boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: _boolean,\n poster: null,\n preload: null,\n readOnly: _boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: _boolean,\n reversed: _boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: _boolean,\n seamless: _boolean,\n selected: _boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: commaSeparated,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: _boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null,\n // Several. Use CSS `text-align` instead,\n aLink: null,\n // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated,\n // `<object>`. List of URIs to archives\n axis: null,\n // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null,\n // `<body>`. Use CSS `background-image` instead\n bgColor: null,\n // `<body>` and table elements. Use CSS `background-color` instead\n border: number,\n // `<table>`. Use CSS `border-width` instead,\n borderColor: null,\n // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number,\n // `<body>`\n cellPadding: null,\n // `<table>`\n cellSpacing: null,\n // `<table>`\n \"char\": null,\n // Several table elements. When `align=char`, sets the character to align on\n charOff: null,\n // Several table elements. When `char`, offsets the alignment\n classId: null,\n // `<object>`\n clear: null,\n // `<br>`. Use CSS `clear` instead\n code: null,\n // `<object>`\n codeBase: null,\n // `<object>`\n codeType: null,\n // `<object>`\n color: null,\n // `<font>` and `<hr>`. Use CSS instead\n compact: _boolean,\n // Lists. Use CSS to reduce space between items instead\n declare: _boolean,\n // `<object>`\n event: null,\n // `<script>`\n face: null,\n // `<font>`. Use CSS instead\n frame: null,\n // `<table>`\n frameBorder: null,\n // `<iframe>`. Use CSS `border` instead\n hSpace: number,\n // `<img>` and `<object>`\n leftMargin: number,\n // `<body>`\n link: null,\n // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null,\n // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null,\n // `<img>`. Use a `<picture>`\n marginHeight: number,\n // `<body>`\n marginWidth: number,\n // `<body>`\n noResize: _boolean,\n // `<frame>`\n noHref: _boolean,\n // `<area>`. Use no href instead of an explicit `nohref`\n noShade: _boolean,\n // `<hr>`. Use background-color and height instead of borders\n noWrap: _boolean,\n // `<td>` and `<th>`\n object: null,\n // `<applet>`\n profile: null,\n // `<head>`\n prompt: null,\n // `<isindex>`\n rev: null,\n // `<link>`\n rightMargin: number,\n // `<body>`\n rules: null,\n // `<table>`\n scheme: null,\n // `<meta>`\n scrolling: booleanish,\n // `<frame>`. Use overflow in the child context\n standby: null,\n // `<object>`\n summary: null,\n // `<table>`\n text: null,\n // `<body>`. Use CSS `color` instead\n topMargin: number,\n // `<body>`\n valueType: null,\n // `<param>`\n version: null,\n // `<html>`. Use a doctype.\n vAlign: null,\n // Several. Use CSS `vertical-align` instead\n vLink: null,\n // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number,\n // `<img>` and `<object>`\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: _boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n }\n});","'use strict';\n\nrequire(\"core-js/modules/es6.string.trim\");\n\nvar visit = require('unist-util-visit');\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar hastCssPropertyMap = {\n align: 'text-align',\n valign: 'vertical-align',\n height: 'height',\n width: 'width'\n};\n\nmodule.exports = function tableCellStyle(node) {\n visit(node, 'element', visitor);\n return node;\n};\n\nfunction visitor(node) {\n if (node.tagName !== 'tr' && node.tagName !== 'td' && node.tagName !== 'th') {\n return;\n }\n\n var hastName;\n var cssName;\n\n for (hastName in hastCssPropertyMap) {\n if (!hasOwnProperty.call(hastCssPropertyMap, hastName) || node.properties[hastName] === undefined) {\n continue;\n }\n\n cssName = hastCssPropertyMap[hastName];\n appendStyle(node, cssName, node.properties[hastName]);\n delete node.properties[hastName];\n }\n}\n\nfunction appendStyle(node, property, value) {\n var prevStyle = (node.properties.style || '').trim();\n\n if (prevStyle && !/;\\s*/.test(prevStyle)) {\n prevStyle += ';';\n }\n\n if (prevStyle) {\n prevStyle += ' ';\n }\n\n var nextStyle = prevStyle + property + ': ' + value + ';';\n node.properties.style = nextStyle;\n}","/*!\n * repeat-string <https://github.com/jonschlinkert/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}","require(\"core-js/modules/es6.regexp.replace\");\n\nexports = 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\nvar xtend = require('xtend');\n\nvar toggle = require('state-toggle');\n\nmodule.exports = Compiler; // Construct a new compiler.\n\nfunction Compiler(tree, file) {\n this.inLink = false;\n this.inTable = false;\n this.tree = tree;\n this.file = file;\n this.options = xtend(this.options);\n this.setOptions({});\n}\n\nvar proto = Compiler.prototype; // Enter and exit helpers. */\n\nproto.enterLink = toggle('inLink', false);\nproto.enterTable = toggle('inTable', false);\nproto.enterLinkReference = require('./util/enter-link-reference'); // Configuration.\n\nproto.options = require('./defaults');\nproto.setOptions = require('./set-options');\nproto.compile = require('./macro/compile');\nproto.visit = require('./macro/one');\nproto.all = require('./macro/all');\nproto.block = require('./macro/block');\nproto.visitOrderedItems = require('./macro/ordered-items');\nproto.visitUnorderedItems = require('./macro/unordered-items'); // Expose visitors.\n\nproto.visitors = {\n root: require('./visitors/root'),\n text: require('./visitors/text'),\n heading: require('./visitors/heading'),\n paragraph: require('./visitors/paragraph'),\n blockquote: require('./visitors/blockquote'),\n list: require('./visitors/list'),\n listItem: require('./visitors/list-item'),\n inlineCode: require('./visitors/inline-code'),\n code: require('./visitors/code'),\n html: require('./visitors/html'),\n thematicBreak: require('./visitors/thematic-break'),\n strong: require('./visitors/strong'),\n emphasis: require('./visitors/emphasis'),\n \"break\": require('./visitors/break'),\n \"delete\": require('./visitors/delete'),\n link: require('./visitors/link'),\n linkReference: require('./visitors/link-reference'),\n imageReference: require('./visitors/image-reference'),\n definition: require('./visitors/definition'),\n image: require('./visitors/image'),\n footnote: require('./visitors/footnote'),\n footnoteReference: require('./visitors/footnote-reference'),\n footnoteDefinition: require('./visitors/footnote-definition'),\n table: require('./visitors/table'),\n tableCell: require('./visitors/table-cell')\n};","'use strict';\n\nmodule.exports = table;\n\nvar position = require('unist-util-position');\n\nvar wrap = require('../wrap');\n\nvar all = require('../all');\n\nfunction table(h, node) {\n var rows = node.children;\n var index = rows.length;\n var align = node.align;\n var alignLength = align.length;\n var result = [];\n var pos;\n var row;\n var out;\n var name;\n var cell;\n\n while (index--) {\n row = rows[index].children;\n name = index === 0 ? 'th' : 'td';\n pos = alignLength;\n out = [];\n\n while (pos--) {\n cell = row[pos];\n out[pos] = h(cell, name, {\n align: align[pos]\n }, cell ? all(h, cell) : []);\n }\n\n result[index] = h(rows[index], 'tr', wrap(out, true));\n }\n\n return h(node, 'table', wrap([h(result[0].position, 'thead', wrap([result[0]], true)), h({\n start: position.start(result[1]),\n end: position.end(result[result.length - 1])\n }, 'tbody', wrap(result.slice(1), true))], true));\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, handler);\n\n function handler(content, position, source) {\n eat(source || content)({\n type: 'text',\n value: content\n });\n }\n}","'use strict';\n\nvar xtend = require('xtend');\n\nvar entities = require('parse-entities');\n\nmodule.exports = factory; // Factory to create an entity decoder.\n\nfunction factory(ctx) {\n decoder.raw = decodeRaw;\n return decoder; // 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 } // 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 } // 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 } // Handle a warning.\n // See <https://github.com/wooorm/parse-entities> for the warnings.\n\n\n function handleWarning(reason, position, code) {\n if (code !== 3) {\n ctx.file.message(reason, position);\n }\n }\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.split\");\n\nrequire(\"core-js/modules/es6.string.trim\");\n\nexports.parse = parse;\nexports.stringify = stringify;\nvar empty = '';\nvar space = ' ';\nvar whiteSpace = /[ \\t\\n\\r\\f]+/g;\n\nfunction parse(value) {\n var input = String(value || empty).trim();\n return input === empty ? [] : input.split(whiteSpace);\n}\n\nfunction stringify(values) {\n return values.join(space).trim();\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\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 = '<![A-Za-z]+\\\\s+[^>]*>';\nvar cdata = '<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>';\nexports.openCloseTag = new RegExp('^(?:' + openTag + '|' + closeTag + ')');\nexports.tag = new RegExp('^(?:' + openTag + '|' + closeTag + '|' + comment + '|' + processing + '|' + declaration + '|' + cdata + ')');","module.exports = extend;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {};\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n}","'use strict';\n\nvar repeat = require('repeat-string');\n\nvar lineFeed = '\\n';\nvar space = ' ';\nvar colon = ':';\nvar leftSquareBracket = '[';\nvar rightSquareBracket = ']';\nvar caret = '^';\nvar tabSize = 4;\nvar blank = lineFeed + lineFeed;\nvar indent = repeat(space, tabSize);\nmodule.exports = footnoteDefinition;\n\nfunction footnoteDefinition(node) {\n var content = this.all(node).join(blank + indent);\n return leftSquareBracket + caret + (node.label || node.identifier) + rightSquareBracket + colon + space + content;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\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 quotationMark = '\"';\nvar apostrophe = \"'\";\nvar leftParenthesis = '(';\nvar rightParenthesis = ')';\nvar comma = ',';\nvar dot = '.';\nvar colon = ':';\nvar semicolon = ';';\nvar lessThan = '<';\nvar atSign = '@';\nvar leftSquareBracket = '[';\nvar rightSquareBracket = ']';\nvar http = 'http://';\nvar https = 'https://';\nvar mailto = 'mailto:';\nvar protocols = [http, https, mailto];\nvar protocolsLength = 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 tokenizers;\n var exit;\n\n if (!self.options.gfm) {\n return;\n }\n\n subvalue = '';\n index = -1;\n\n while (++index < protocolsLength) {\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 === lessThan) {\n break;\n }\n\n if (character === dot || character === comma || character === colon || character === semicolon || character === quotationMark || character === apostrophe || character === rightParenthesis || character === rightSquareBracket) {\n nextCharacter = value.charAt(index + 1);\n\n if (!nextCharacter || whitespace(nextCharacter)) {\n break;\n }\n }\n\n if (character === leftParenthesis || character === leftSquareBracket) {\n parenCount++;\n }\n\n if (character === rightParenthesis || character === rightSquareBracket) {\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) {\n position = queue.indexOf(atSign);\n\n if (position === -1 || position === length - 1) {\n return;\n }\n\n content = content.slice(mailto.length);\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n exit = self.enterLink(); // Temporarily remove all tokenizers except text in url.\n\n tokenizers = self.inlineTokenizers;\n self.inlineTokenizers = {\n text: tokenizers.text\n };\n content = self.tokenizeInline(content, eat.now());\n self.inlineTokenizers = tokenizers;\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\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = isElement; // Check if if `node` is an `element` and, if `tagNames` is given, `node`\n// matches them `tagNames`.\n\nfunction isElement(node, tagNames) {\n var name;\n\n if (!(tagNames === null || tagNames === undefined || typeof tagNames === 'string' || typeof tagNames === 'object' && tagNames.length !== 0)) {\n throw new Error('Expected `string` or `Array.<string>` for `tagNames`, not `' + tagNames + '`');\n }\n\n if (!node || typeof node !== 'object' || node.type !== 'element' || typeof node.tagName !== 'string') {\n return false;\n }\n\n if (tagNames === null || tagNames === undefined) {\n return true;\n }\n\n name = node.tagName;\n\n if (typeof tagNames === 'string') {\n return name === tagNames;\n }\n\n return tagNames.indexOf(name) !== -1;\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/delete');\n\nmodule.exports = strikethrough;\nstrikethrough.locator = locate;\nvar tilde = '~';\nvar fence = '~~';\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) !== tilde || value.charAt(1) !== 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 === tilde && previous === tilde && (!preceding || !whitespace(preceding))) {\n /* istanbul ignore if - never used (yet) */\n if (silent) {\n return true;\n }\n\n return eat(fence + subvalue + fence)({\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\nmodule.exports = generateFootnotes;\n\nvar thematicBreak = require('./handlers/thematic-break');\n\nvar list = require('./handlers/list');\n\nvar wrap = require('./wrap');\n\nfunction generateFootnotes(h) {\n var footnoteById = h.footnoteById;\n var footnoteOrder = h.footnoteOrder;\n var length = footnoteOrder.length;\n var index = -1;\n var listItems = [];\n var def;\n var backReference;\n var content;\n var tail;\n\n while (++index < length) {\n def = footnoteById[footnoteOrder[index].toUpperCase()];\n\n if (!def) {\n continue;\n }\n\n content = def.children.concat();\n tail = content[content.length - 1];\n backReference = {\n type: 'link',\n url: '#fnref-' + def.identifier,\n data: {\n hProperties: {\n className: ['footnote-backref']\n }\n },\n children: [{\n type: 'text',\n value: '↩'\n }]\n };\n\n if (!tail || tail.type !== 'paragraph') {\n tail = {\n type: 'paragraph',\n children: []\n };\n content.push(tail);\n }\n\n tail.children.push(backReference);\n listItems.push({\n type: 'listItem',\n data: {\n hProperties: {\n id: 'fn-' + def.identifier\n }\n },\n children: content,\n position: def.position\n });\n }\n\n if (listItems.length === 0) {\n return null;\n }\n\n return h(null, 'div', {\n className: ['footnotes']\n }, wrap([thematicBreak(h), list(h, {\n type: 'list',\n ordered: true,\n children: listItems\n })], true));\n}","'use strict';\n\nvar streak = require('longest-streak');\n\nvar repeat = require('repeat-string');\n\nvar pad = require('../util/pad');\n\nmodule.exports = code;\nvar lineFeed = '\\n';\nvar space = ' '; // Stringify code.\n// Creates indented code when:\n//\n// - No language tag exists\n// - Not in `fences: true` mode\n// - A non-empty value exists\n//\n// Otherwise, GFM fenced code is created:\n//\n// ````markdown\n// ```js\n// foo();\n// ```\n// ````\n//\n// When in ``fence: `~` `` mode, uses tildes as fences:\n//\n// ```markdown\n// ~~~js\n// foo();\n// ~~~\n// ```\n//\n// Knows about internal fences:\n//\n// `````markdown\n// ````markdown\n// ```javascript\n// foo();\n// ```\n// ````\n// `````\n\nfunction code(node, parent) {\n var self = this;\n var value = node.value;\n var options = self.options;\n var marker = options.fence;\n var info = node.lang || '';\n var fence;\n\n if (info && node.meta) {\n info += space + node.meta;\n }\n\n info = self.encode(self.escape(info, node)); // Without (needed) fences.\n\n if (!info && !options.fences && value) {\n // Throw when pedantic, in a list item which isn’t compiled using a tab.\n if (parent && parent.type === 'listItem' && options.listItemIndent !== 'tab' && options.pedantic) {\n self.file.fail('Cannot indent code properly. See https://git.io/fxKR8', node.position);\n }\n\n return pad(value, 1);\n }\n\n fence = repeat(marker, Math.max(streak(value, marker) + 1, 3));\n return fence + info + lineFeed + value + lineFeed + fence;\n}","'use strict';\n\nmodule.exports = Info;\nvar proto = Info.prototype;\nproto.space = null;\nproto.attribute = null;\nproto.property = null;\nproto[\"boolean\"] = false;\nproto.booleanish = false;\nproto.overloadedBoolean = false;\nproto.number = false;\nproto.commaSeparated = false;\nproto.spaceSeparated = false;\nproto.commaOrSpaceSeparated = false;\nproto.mustUseProperty = false;\nproto.defined = false;\n\nfunction Info(property, attribute) {\n this.property = property;\n this.attribute = attribute;\n}","'use strict';\n\nmodule.exports = all; // Visit all children of `parent`.\n\nfunction all(parent) {\n var self = this;\n var children = parent.children;\n var length = children.length;\n var results = [];\n var index = -1;\n\n while (++index < length) {\n results[index] = self.visit(children[index], parent);\n }\n\n return results;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.match\");\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 lessThan = '<';\nvar questionMark = '?';\nvar exclamationMark = '!';\nvar slash = '/';\nvar htmlLinkOpenExpression = /^<a /i;\nvar htmlLinkCloseExpression = /^<\\/a>/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) !== lessThan || length < 3) {\n return;\n }\n\n character = value.charAt(1);\n\n if (!alphabetical(character) && character !== questionMark && character !== exclamationMark && character !== slash) {\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 && htmlLinkOpenExpression.test(subvalue)) {\n self.inLink = true;\n } else if (self.inLink && htmlLinkCloseExpression.test(subvalue)) {\n self.inLink = false;\n }\n\n return eat(subvalue)({\n type: 'html',\n value: subvalue\n });\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\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\nvar uri = require('../util/enclose-uri');\n\nvar title = require('../util/enclose-title');\n\nmodule.exports = definition;\nvar space = ' ';\nvar colon = ':';\nvar leftSquareBracket = '[';\nvar rightSquareBracket = ']'; // Stringify an URL definition.\n//\n// Is smart about enclosing `url` (see `encloseURI()`) and `title` (see\n// `encloseTitle()`).\n//\n// ```markdown\n// [foo]: <foo at bar dot com> 'An \"example\" e-mail'\n// ```\n\nfunction definition(node) {\n var content = uri(node.url);\n\n if (node.title) {\n content += space + title(node.title);\n }\n\n return leftSquareBracket + (node.label || node.identifier) + rightSquareBracket + colon + space + content;\n}","'use strict';\n\nmodule.exports = generated;\n\nfunction generated(node) {\n var position = optional(optional(node).position);\n var start = optional(position.start);\n var end = optional(position.end);\n return !start.line || !start.column || !end.line || !end.column;\n}\n\nfunction optional(value) {\n return value && typeof value === 'object' ? value : {};\n}","'use strict';\n\nmodule.exports = linkReference;\n\nvar normalize = require('mdurl/encode');\n\nvar revert = require('../revert');\n\nvar all = require('../all');\n\nfunction linkReference(h, node) {\n var def = h.definition(node.identifier);\n var props;\n\n if (!def) {\n return revert(h, node);\n }\n\n props = {\n href: normalize(def.url || '')\n };\n\n if (def.title !== null && def.title !== undefined) {\n props.title = def.title;\n }\n\n return h(node, 'a', props, all(h, node));\n}","'use strict';\n\nvar repeat = require('repeat-string');\n\nmodule.exports = strong; // Stringify a `strong`.\n//\n// The marker used is configurable by `strong`, which defaults to an asterisk\n// (`'*'`) but also accepts an underscore (`'_'`):\n//\n// ```markdown\n// __foo__\n// ```\n\nfunction strong(node) {\n var marker = repeat(this.options.strong, 2);\n return marker + this.all(node).join('') + marker;\n}","'use strict';\n\nmodule.exports = all;\n\nvar trim = require('trim');\n\nvar one = require('./one');\n\nfunction all(h, parent) {\n var nodes = parent.children || [];\n var length = nodes.length;\n var values = [];\n var index = -1;\n var result;\n var head;\n\n while (++index < length) {\n result = one(h, nodes[index], parent);\n\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (result.value) {\n result.value = trim.left(result.value);\n }\n\n head = result.children && result.children[0];\n\n if (head && head.value) {\n head.value = trim.left(head.value);\n }\n }\n\n values = values.concat(result);\n }\n }\n\n return values;\n}","'use strict';\n\nvar one = require('./one');\n\nmodule.exports = all; // Stringify all children of `parent`.\n\nfunction all(ctx, parent) {\n var children = parent && parent.children;\n var length = children && children.length;\n var index = -1;\n var results = [];\n\n while (++index < length) {\n results[index] = one(ctx, children[index], index, parent);\n }\n\n return results.join('');\n}","'use strict';\n\nmodule.exports = thematicBreak;\n\nfunction thematicBreak(h, node) {\n return h(node, 'hr');\n}","'use strict';\n\nmodule.exports = revert;\n\nvar u = require('unist-builder');\n\nvar all = require('./all'); // Return the content of a reference without definition as Markdown.\n\n\nfunction revert(h, node) {\n var subtype = node.referenceType;\n var suffix = ']';\n var contents;\n var head;\n var tail;\n\n if (subtype === 'collapsed') {\n suffix += '[]';\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']';\n }\n\n if (node.type === 'imageReference') {\n return u('text', '![' + node.alt + suffix);\n }\n\n contents = all(h, node);\n head = contents[0];\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value;\n } else {\n contents.unshift(u('text', '['));\n }\n\n tail = contents[contents.length - 1];\n\n if (tail && tail.type === 'text') {\n tail.value += suffix;\n } else {\n contents.push(u('text', suffix));\n }\n\n return contents;\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\n var _char;\n\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}","'use strict';\n\nvar unified = require('unified');\n\nvar parse = require('remark-parse');\n\nvar stringify = require('remark-stringify');\n\nmodule.exports = unified().use(parse).use(stringify).freeze();","'use strict'; // Characters.\n\nvar nil = '\\0';\nvar ampersand = '&';\nvar space = ' ';\nvar tab = '\\t';\nvar graveAccent = '`';\nvar quotationMark = '\"';\nvar apostrophe = \"'\";\nvar equalsTo = '=';\nvar lessThan = '<';\nvar greaterThan = '>';\nvar slash = '/';\nvar lineFeed = '\\n';\nvar carriageReturn = '\\r';\nvar formFeed = '\\f';\nvar whitespace = [space, tab, lineFeed, carriageReturn, formFeed]; // See: <https://html.spec.whatwg.org/#attribute-name-state>.\n\nvar name = whitespace.concat(ampersand, slash, greaterThan, equalsTo); // See: <https://html.spec.whatwg.org/#attribute-value-(unquoted)-state>.\n\nvar unquoted = whitespace.concat(ampersand, greaterThan);\nvar unquotedSafe = unquoted.concat(nil, quotationMark, apostrophe, lessThan, equalsTo, graveAccent); // See: <https://html.spec.whatwg.org/#attribute-value-(single-quoted)-state>.\n\nvar singleQuoted = [ampersand, apostrophe]; // See: <https://html.spec.whatwg.org/#attribute-value-(double-quoted)-state>.\n\nvar doubleQuoted = [ampersand, quotationMark]; // Maps of subsets.\n// Each value is a matrix of tuples.\n// The first value causes parse errors, the second is valid.\n// Of both values, the first value is unsafe, and the second is safe.\n\nmodule.exports = {\n name: [[name, name.concat(quotationMark, apostrophe, graveAccent)], [name.concat(nil, quotationMark, apostrophe, lessThan), name.concat(nil, quotationMark, apostrophe, lessThan, graveAccent)]],\n unquoted: [[unquoted, unquotedSafe], [unquotedSafe, unquotedSafe]],\n single: [[singleQuoted, singleQuoted.concat(quotationMark, graveAccent)], [singleQuoted.concat(nil), singleQuoted.concat(nil, quotationMark, graveAccent)]],\n \"double\": [[doubleQuoted, doubleQuoted.concat(apostrophe, graveAccent)], [doubleQuoted.concat(nil), doubleQuoted.concat(nil, apostrophe, graveAccent)]]\n};","'use strict';\n\nvar after = require('./siblings').after;\n\nmodule.exports = first; // Get the first child in `parent`.\n\nfunction first(parent, includeWhiteSpace) {\n return after(parent, -1, includeWhiteSpace);\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nvar whitespace = require('is-whitespace-character');\n\nvar normalize = require('../util/normalize');\n\nmodule.exports = footnoteDefinition;\nfootnoteDefinition.notInList = true;\nfootnoteDefinition.notInBlock = true;\nvar backslash = '\\\\';\nvar lineFeed = '\\n';\nvar tab = '\\t';\nvar space = ' ';\nvar leftSquareBracket = '[';\nvar rightSquareBracket = ']';\nvar caret = '^';\nvar 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) !== leftSquareBracket || value.charAt(index + 1) !== caret) {\n return;\n }\n\n subvalue += leftSquareBracket + caret;\n index = subvalue.length;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === rightSquareBracket) {\n break;\n } else if (character === 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) !== rightSquareBracket || value.charAt(index + 1) !== colon) {\n return;\n }\n\n if (silent) {\n return true;\n }\n\n identifier = queue;\n subvalue += queue + rightSquareBracket + colon;\n index = subvalue.length;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== tab && character !== 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 === lineFeed) {\n subqueue = character;\n index++;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== lineFeed) {\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 !== 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: normalize(identifier),\n label: identifier,\n children: content\n });\n}","'use strict';\n\nvar copy = require('../util/copy-identifier-encoding');\n\nvar label = require('../util/label');\n\nmodule.exports = linkReference;\nvar leftSquareBracket = '[';\nvar rightSquareBracket = ']';\nvar shortcut = 'shortcut';\nvar collapsed = 'collapsed';\n\nfunction linkReference(node) {\n var self = this;\n var type = node.referenceType;\n var exit = self.enterLinkReference(self, node);\n var value = self.all(node).join('');\n exit();\n\n if (type === shortcut || type === collapsed) {\n value = copy(value, node.label || node.identifier);\n }\n\n return leftSquareBracket + value + rightSquareBracket + label(node);\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\nvar openCloseTag = require('../util/html').openCloseTag;\n\nmodule.exports = blockHtml;\nvar tab = '\\t';\nvar space = ' ';\nvar lineFeed = '\\n';\nvar lessThan = '<';\nvar rawOpenExpression = /^<(script|pre|style)(?=(\\s|>|$))/i;\nvar rawCloseExpression = /<\\/(script|pre|style)>/i;\nvar commentOpenExpression = /^<!--/;\nvar commentCloseExpression = /-->/;\nvar instructionOpenExpression = /^<\\?/;\nvar instructionCloseExpression = /\\?>/;\nvar directiveOpenExpression = /^<![A-Za-z]/;\nvar directiveCloseExpression = />/;\nvar cdataOpenExpression = /^<!\\[CDATA\\[/;\nvar cdataCloseExpression = /\\]\\]>/;\nvar elementCloseExpression = /^$/;\nvar otherElementOpenExpression = new RegExp(openCloseTag.source + '\\\\s*$');\n\nfunction blockHtml(eat, value, silent) {\n var self = this;\n var blocks = self.options.blocks.join('|');\n var elementOpenExpression = new RegExp('^</?(' + blocks + ')(?=(\\\\s|/?>|$))', 'i');\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 = [[rawOpenExpression, rawCloseExpression, true], [commentOpenExpression, commentCloseExpression, true], [instructionOpenExpression, instructionCloseExpression, true], [directiveOpenExpression, directiveCloseExpression, true], [cdataOpenExpression, cdataCloseExpression, true], [elementOpenExpression, elementCloseExpression, true], [otherElementOpenExpression, elementCloseExpression, false]]; // Eat initial spacing.\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== tab && character !== space) {\n break;\n }\n\n index++;\n }\n\n if (value.charAt(index) !== lessThan) {\n return;\n }\n\n next = value.indexOf(lineFeed, 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(lineFeed, 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\nvar unherit = require('unherit');\n\nvar xtend = require('xtend');\n\nvar Compiler = require('./lib/compiler.js');\n\nmodule.exports = stringify;\nstringify.Compiler = Compiler;\n\nfunction stringify(options) {\n var Local = unherit(Compiler);\n Local.prototype.options = xtend(Local.prototype.options, this.data('settings'), options);\n this.Compiler = Local;\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 convert = require('unist-util-is/convert');\n\nvar whiteSpace = require('hast-util-whitespace');\n\nmodule.exports = whiteSpaceLeft;\nvar isText = convert('text'); // Check if `node` starts with white-space.\n\nfunction whiteSpaceLeft(node) {\n return isText(node) && whiteSpace(node.value.charAt(0));\n}","'use strict';\n\nmodule.exports = {\n blockquote: require('./blockquote'),\n \"break\": require('./break'),\n code: require('./code'),\n \"delete\": require('./delete'),\n emphasis: require('./emphasis'),\n footnoteReference: require('./footnote-reference'),\n footnote: require('./footnote'),\n heading: require('./heading'),\n html: require('./html'),\n imageReference: require('./image-reference'),\n image: require('./image'),\n inlineCode: require('./inline-code'),\n linkReference: require('./link-reference'),\n link: require('./link'),\n listItem: require('./list-item'),\n list: require('./list'),\n paragraph: require('./paragraph'),\n root: require('./root'),\n strong: require('./strong'),\n table: require('./table'),\n text: require('./text'),\n thematicBreak: require('./thematic-break'),\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}; // Return nothing for nodes that are ignored.\n\nfunction ignore() {\n return null;\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\nrequire(\"core-js/modules/es6.array.index-of\");\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\nrequire(\"core-js/modules/es6.regexp.split\");\n\nvar trim = require('trim');\n\nvar repeat = require('repeat-string');\n\nvar getIndent = require('./get-indentation');\n\nmodule.exports = indentation;\nvar tab = '\\t';\nvar lineFeed = '\\n';\nvar space = ' ';\nvar exclamationMark = '!'; // Remove the minimum indent from every line in `value`. Supports both tab,\n// spaced, and mixed indentation (as well as possible).\n\nfunction indentation(value, maximum) {\n var values = value.split(lineFeed);\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(space, maximum) + exclamationMark);\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 = 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(lineFeed);\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/es6.function.name\");\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\nrequire(\"core-js/modules/es6.array.index-of\");\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 = hardBreak;\n\nvar u = require('unist-builder');\n\nfunction hardBreak(h, node) {\n return [h(node, 'br'), u('text', '\\n')];\n}","'use strict';\n\nexports.opening = require('./opening');\nexports.closing = require('./closing');","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\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\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n return value.indexOf('<', fromIndex);\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')\n};","'use strict';\n\nvar xtend = require('xtend');\n\nvar entities = require('stringify-entities');\n\nmodule.exports = text; // Stringify `text`.\n\nfunction text(ctx, node, index, parent) {\n var value = node.value;\n return isLiteral(parent) ? value : entities(value, xtend(ctx.entities, {\n subset: ['<', '&']\n }));\n} // Check if content of `node` should be escaped.\n\n\nfunction isLiteral(node) {\n return node && (node.tagName === 'script' || node.tagName === 'style');\n}","'use strict';\n\nmodule.exports = interrupt;\n\nfunction interrupt(interruptors, tokenizers, ctx, params) {\n var length = interruptors.length;\n var index = -1;\n var interruptor;\n var config;\n\n while (++index < length) {\n interruptor = interruptors[index];\n config = interruptor[1] || {};\n\n if (config.pedantic !== undefined && config.pedantic !== ctx.options.pedantic) {\n continue;\n }\n\n if (config.commonmark !== undefined && config.commonmark !== ctx.options.commonmark) {\n continue;\n }\n\n if (tokenizers[interruptor[0]].apply(ctx, params)) {\n return true;\n }\n }\n\n return false;\n}","'use strict';\n\nmodule.exports = normalize;\n\nfunction normalize(value) {\n return value.toLowerCase();\n}","'use strict';\n\nvar trim = require('trim-trailing-lines');\n\nmodule.exports = fencedCode;\nvar lineFeed = '\\n';\nvar tab = '\\t';\nvar space = ' ';\nvar tilde = '~';\nvar graveAccent = '`';\nvar minFenceCount = 3;\nvar tabSize = 4;\n\nfunction fencedCode(eat, value, silent) {\n var self = this;\n var gfm = self.options.gfm;\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 lang;\n var meta;\n var queue;\n var content;\n var exdentedContent;\n var closing;\n var exdentedClosing;\n var indent;\n var now;\n\n if (!gfm) {\n return;\n } // Eat initial spacing.\n\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== space && character !== tab) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n indent = index; // Eat the fence.\n\n character = value.charAt(index);\n\n if (character !== tilde && character !== graveAccent) {\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 < minFenceCount) {\n return;\n } // Eat spacing before flag.\n\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== space && character !== tab) {\n break;\n }\n\n subvalue += character;\n index++;\n } // Eat flag.\n\n\n flag = '';\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === lineFeed || character === tilde || character === graveAccent) {\n break;\n }\n\n if (character === space || character === 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 !== lineFeed) {\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 = ''; // 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 !== lineFeed) {\n content += character;\n exdentedClosing += character;\n index++;\n continue;\n } // Add the newline to `subvalue` if its the first character. Otherwise,\n // add it to the `closing` 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 !== 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 >= tabSize) {\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 !== space && character !== tab) {\n break;\n }\n\n closing += character;\n exdentedClosing += character;\n index++;\n }\n\n if (!character || character === lineFeed) {\n break;\n }\n }\n\n subvalue += content + closing; // Get lang and meta from the flag.\n\n index = -1;\n length = flag.length;\n\n while (++index < length) {\n character = flag.charAt(index);\n\n if (character === space || character === tab) {\n if (!lang) {\n lang = flag.slice(0, index);\n }\n } else if (lang) {\n meta = flag.slice(index);\n break;\n }\n }\n\n return eat(subvalue)({\n type: 'code',\n lang: lang || flag || null,\n meta: meta || null,\n value: trim(exdentedContent)\n });\n}","'use strict';\n\nvar types = require('./util/types');\n\nvar create = require('./util/create');\n\nvar booleanish = types.booleanish;\nvar number = types.number;\nvar spaceSeparated = types.spaceSeparated;\nmodule.exports = create({\n transform: ariaTransform,\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n});\n\nfunction ariaTransform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase();\n}","'use strict';\n\nmodule.exports = listItem;\n\nvar u = require('unist-builder');\n\nvar wrap = require('../wrap');\n\nvar all = require('../all');\n\nfunction listItem(h, node, parent) {\n var children = node.children;\n var head = children[0];\n var raw = all(h, node);\n var loose = parent ? listLoose(parent) : listItemLoose(node);\n var props = {};\n var result;\n var container;\n var index;\n var length;\n var child; // Tight lists should not render `paragraph` nodes as `p` elements.\n\n if (loose) {\n result = raw;\n } else {\n result = [];\n length = raw.length;\n index = -1;\n\n while (++index < length) {\n child = raw[index];\n\n if (child.tagName === 'p') {\n result = result.concat(child.children);\n } else {\n result.push(child);\n }\n }\n }\n\n if (typeof node.checked === 'boolean') {\n if (loose && (!head || head.type !== 'paragraph')) {\n result.unshift(h(null, 'p', []));\n }\n\n container = loose ? result[0].children : result;\n\n if (container.length !== 0) {\n container.unshift(u('text', ' '));\n }\n\n container.unshift(h(null, 'input', {\n type: 'checkbox',\n checked: node.checked,\n disabled: true\n })); // According to github-markdown-css, this class hides bullet.\n // See: <https://github.com/sindresorhus/github-markdown-css>.\n\n props.className = ['task-list-item'];\n }\n\n if (loose && result.length !== 0) {\n result = wrap(result, true);\n }\n\n return h(node, 'li', props, result);\n}\n\nfunction listLoose(node) {\n var loose = node.spread;\n var children = node.children;\n var length = children.length;\n var index = -1;\n\n while (!loose && ++index < length) {\n loose = listItemLoose(children[index]);\n }\n\n return loose;\n}\n\nfunction listItemLoose(node) {\n var spread = node.spread;\n return spread === undefined || spread === null ? node.children.length > 1 : spread;\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 asterisk = '*';\nvar underscore = '_';\nvar backslash = '\\\\';\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 !== asterisk && character !== 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 === 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 === backslash) {\n queue += character;\n character = value.charAt(++index);\n }\n\n queue += character;\n index++;\n }\n}","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\nmodule.exports = function isBuffer(obj) {\n return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n};","'use strict';\n\nvar xtend = require('xtend');\n\nvar encode = require('stringify-entities');\n\nvar defaults = require('./defaults');\n\nvar escapeFactory = require('./escape');\n\nvar identity = require('./util/identity');\n\nmodule.exports = setOptions; // Map of applicable enums.\n\nvar maps = {\n entities: {\n \"true\": true,\n \"false\": true,\n numbers: true,\n escape: true\n },\n bullet: {\n '*': true,\n '-': true,\n '+': true\n },\n rule: {\n '-': true,\n _: true,\n '*': true\n },\n listItemIndent: {\n tab: true,\n mixed: true,\n 1: true\n },\n emphasis: {\n _: true,\n '*': true\n },\n strong: {\n _: true,\n '*': true\n },\n fence: {\n '`': true,\n '~': true\n }\n}; // Expose `validate`.\n\nvar validate = {\n \"boolean\": validateBoolean,\n string: validateString,\n number: validateNumber,\n \"function\": validateFunction\n}; // Set options. Does not overwrite previously set options.\n\nfunction setOptions(options) {\n var self = this;\n var current = self.options;\n var ruleRepetition;\n var key;\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 validate[typeof defaults[key]](options, key, current[key], maps[key]);\n }\n\n ruleRepetition = options.ruleRepetition;\n\n if (ruleRepetition && ruleRepetition < 3) {\n raise(ruleRepetition, 'options.ruleRepetition');\n }\n\n self.encode = encodeFactory(String(options.entities));\n self.escape = escapeFactory(options);\n self.options = options;\n return self;\n} // Validate a value to be boolean. Defaults to `def`. Raises an exception with\n// `context[name]` when not a boolean.\n\n\nfunction validateBoolean(context, name, def) {\n var value = context[name];\n\n if (value == null) {\n value = def;\n }\n\n if (typeof value !== 'boolean') {\n raise(value, 'options.' + name);\n }\n\n context[name] = value;\n} // Validate a value to be boolean. Defaults to `def`. Raises an exception with\n// `context[name]` when not a boolean.\n\n\nfunction validateNumber(context, name, def) {\n var value = context[name];\n\n if (value == null) {\n value = def;\n }\n\n if (isNaN(value)) {\n raise(value, 'options.' + name);\n }\n\n context[name] = value;\n} // Validate a value to be in `map`. Defaults to `def`. Raises an exception\n// with `context[name]` when not in `map`.\n\n\nfunction validateString(context, name, def, map) {\n var value = context[name];\n\n if (value == null) {\n value = def;\n }\n\n value = String(value);\n\n if (!(value in map)) {\n raise(value, 'options.' + name);\n }\n\n context[name] = value;\n} // Validate a value to be function. Defaults to `def`. Raises an exception\n// with `context[name]` when not a function.\n\n\nfunction validateFunction(context, name, def) {\n var value = context[name];\n\n if (value == null) {\n value = def;\n }\n\n if (typeof value !== 'function') {\n raise(value, 'options.' + name);\n }\n\n context[name] = value;\n} // Factory to encode HTML entities. Creates a no-operation function when\n// `type` is `'false'`, a function which encodes using named references when\n// `type` is `'true'`, and a function which encodes using numbered references\n// when `type` is `'numbers'`.\n\n\nfunction encodeFactory(type) {\n var options = {};\n\n if (type === 'false') {\n return identity;\n }\n\n if (type === 'true') {\n options.useNamedReferences = true;\n }\n\n if (type === 'escape') {\n options.escapeOnly = true;\n options.useNamedReferences = true;\n }\n\n return wrapped; // Encode HTML entities using the bound options.\n\n function wrapped(value) {\n return encode(value, options);\n }\n} // Throw an exception with in its `message` `value` and `name`.\n\n\nfunction raise(value, name) {\n throw new Error('Invalid value `' + value + '` for setting `' + name + '`');\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\nmodule.exports = label;\nvar leftSquareBracket = '[';\nvar rightSquareBracket = ']';\nvar shortcut = 'shortcut';\nvar collapsed = 'collapsed'; // Stringify a reference label.\n// Because link references are easily, mistakingly, created (for example,\n// `[foo]`), reference nodes have an extra property depicting how it looked in\n// the original document, so stringification can cause minimal changes.\n\nfunction label(node) {\n var type = node.referenceType;\n\n if (type === shortcut) {\n return '';\n }\n\n return leftSquareBracket + (type === collapsed ? '' : node.label || node.identifier) + rightSquareBracket;\n}","'use strict';\n\nvar repeat = require('repeat-string');\n\nmodule.exports = heading;\nvar lineFeed = '\\n';\nvar space = ' ';\nvar numberSign = '#';\nvar dash = '-';\nvar equalsTo = '='; // Stringify a heading.\n//\n// In `setext: true` mode and when `depth` is smaller than three, creates a\n// setext header:\n//\n// ```markdown\n// Foo\n// ===\n// ```\n//\n// Otherwise, an ATX header is generated:\n//\n// ```markdown\n// ### Foo\n// ```\n//\n// In `closeAtx: true` mode, the header is closed with hashes:\n//\n// ```markdown\n// ### Foo ###\n// ```\n\nfunction heading(node) {\n var self = this;\n var depth = node.depth;\n var setext = self.options.setext;\n var closeAtx = self.options.closeAtx;\n var content = self.all(node).join('');\n var prefix;\n\n if (setext && depth < 3) {\n return content + lineFeed + repeat(depth === 1 ? equalsTo : dash, content.length);\n }\n\n prefix = repeat(numberSign, node.depth);\n return prefix + space + content + (closeAtx ? space + prefix : '');\n}","'use strict';\n\nmodule.exports = comment; // Stringify a comment `node`.\n\nfunction comment(ctx, node) {\n return '<!--' + node.value + '-->';\n}","'use strict';\n\nmodule.exports = Schema;\nvar proto = Schema.prototype;\nproto.space = null;\nproto.normal = {};\nproto.property = {};\n\nfunction Schema(property, normal, space) {\n this.property = property;\n this.normal = normal;\n\n if (space) {\n this.space = space;\n }\n}","'use strict';\n\nvar create = require('./util/create');\n\nvar caseInsensitiveTransform = require('./util/case-insensitive-transform');\n\nmodule.exports = create({\n space: 'xmlns',\n attributes: {\n xmlnsxlink: 'xmlns:xlink'\n },\n transform: caseInsensitiveTransform,\n properties: {\n xmlns: null,\n xmlnsXLink: null\n }\n});","'use strict';\n\nvar create = require('./util/create');\n\nmodule.exports = create({\n space: 'xlink',\n transform: xlinkTransform,\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n});\n\nfunction xlinkTransform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase();\n}","'use strict';\n\nvar whiteSpace = require('hast-util-whitespace');\n\nexports.before = siblings(-1);\nexports.after = siblings(1); // Factory to check siblings in a direction.\n\nfunction siblings(increment) {\n return sibling; // Find applicable siblings in a direction.\n\n function sibling(parent, index, includeWhiteSpace) {\n var siblings = parent && parent.children;\n var next;\n index += increment;\n next = siblings && siblings[index];\n\n if (!includeWhiteSpace) {\n while (next && whiteSpace(next)) {\n index += increment;\n next = siblings[index];\n }\n }\n\n return next;\n }\n}","'use strict';\n\nvar create = require('./util/create');\n\nmodule.exports = create({\n space: 'xml',\n transform: xmlTransform,\n properties: {\n xmlLang: null,\n xmlBase: null,\n xmlSpace: null\n }\n});\n\nfunction xmlTransform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase();\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nvar whitespace = require('is-whitespace-character');\n\nvar normalize = require('../util/normalize');\n\nmodule.exports = footnoteDefinition;\nfootnoteDefinition.notInList = true;\nfootnoteDefinition.notInBlock = true;\nvar backslash = '\\\\';\nvar lineFeed = '\\n';\nvar tab = '\\t';\nvar space = ' ';\nvar leftSquareBracket = '[';\nvar rightSquareBracket = ']';\nvar caret = '^';\nvar 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) !== leftSquareBracket || value.charAt(index + 1) !== caret) {\n return;\n }\n\n subvalue += leftSquareBracket + caret;\n index = subvalue.length;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === rightSquareBracket) {\n break;\n } else if (character === 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) !== rightSquareBracket || value.charAt(index + 1) !== colon) {\n return;\n }\n\n if (silent) {\n return true;\n }\n\n identifier = queue;\n subvalue += queue + rightSquareBracket + colon;\n index = subvalue.length;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== tab && character !== 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 === lineFeed) {\n subqueue = character;\n index++;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== lineFeed) {\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 !== 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: normalize(identifier),\n label: identifier,\n children: content\n });\n}","'use strict';\n\nvar collapseWhiteSpace = require('collapse-white-space');\n\nmodule.exports = normalize; // Normalize an identifier. Collapses multiple white space characters into a\n// single space, and removes casing.\n\nfunction normalize(value) {\n return collapseWhiteSpace(value).toLowerCase();\n}","'use strict';\n\nmodule.exports = require('./lib');","'use strict';\n\nvar label = require('../util/label');\n\nmodule.exports = imageReference;\nvar leftSquareBracket = '[';\nvar rightSquareBracket = ']';\nvar exclamationMark = '!';\n\nfunction imageReference(node) {\n return exclamationMark + leftSquareBracket + (this.encode(node.alt, node) || '') + rightSquareBracket + label(node);\n}","'use strict';\n\nmodule.exports = html;\n\nvar u = require('unist-builder'); // Return either a `raw` node in dangerous mode, otherwise nothing.\n\n\nfunction html(h, node) {\n return h.dangerous ? h.augment(node, u('raw', node.value)) : null;\n}","'use strict';\n\nvar text = require('./text');\n\nmodule.exports = raw; // Stringify `raw`.\n\nfunction raw(ctx, node) {\n return ctx.dangerous ? node.value : text(ctx, node);\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 settings = this.data('settings');\n var Local = unherit(Parser);\n Local.prototype.options = xtend(Local.prototype.options, settings, options);\n this.Parser = Local;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nmodule.exports = trimLines;\nvar ws = /[ \\t]*\\n+[ \\t]*/g;\nvar newline = '\\n';\n\nfunction trimLines(value) {\n return String(value).replace(ws, newline);\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; // Expose core.\n\nproto.setOptions = require('./set-options');\nproto.parse = require('./parse'); // Expose `defaults`.\n\nproto.options = require('./defaults'); // 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); // 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” 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}]]; // Nodes that can interupt a list:\n//\n// ```markdown\n// - One\n// ___\n// ```\n//\n// In the above example, the thematic break “interupts” 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}]]; // Nodes that can interupt a blockquote:\n//\n// ```markdown\n// > A paragraph.\n// ___\n// ```\n//\n// In the above example, the thematic break “interupts” 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}]]; // 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}; // Expose precedence.\n\nproto.blockMethods = keys(proto.blockTokenizers);\nproto.inlineMethods = keys(proto.inlineTokenizers); // Tokenizers.\n\nproto.tokenizeBlock = tokenizer('block');\nproto.tokenizeInline = tokenizer('inline');\nproto.tokenizeFactory = tokenizer; // 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\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n return value.indexOf('~~', fromIndex);\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/delete');\n\nmodule.exports = strikethrough;\nstrikethrough.locator = locate;\nvar tilde = '~';\nvar fence = '~~';\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) !== tilde || value.charAt(1) !== 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 === tilde && previous === tilde && (!preceding || !whitespace(preceding))) {\n /* istanbul ignore if - never used (yet) */\n if (silent) {\n return true;\n }\n\n return eat(fence + subvalue + fence)({\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/es6.array.filter\");\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = react;\n\nvar toHAST = require('mdast-util-to-hast');\n\nvar sanitize = require('hast-util-sanitize');\n\nvar toH = require('hast-to-hyperscript');\n\nvar tableCellStyle = require('@mapbox/hast-util-table-cell-style');\n\nvar globalReact;\nvar globalCreateElement;\nvar globalFragment;\n/* istanbul ignore next - Hard to test */\n\ntry {\n globalReact = require('react');\n globalCreateElement = globalReact.createElement;\n globalFragment = globalReact.Fragment;\n} catch (error) {}\n\nvar own = {}.hasOwnProperty;\nvar tableElements = ['table', 'thead', 'tbody', 'tfoot', 'tr'];\n\nfunction react(options) {\n var settings = options || {};\n var createElement = settings.createElement || globalCreateElement;\n var Fragment = settings.fragment || globalFragment;\n var clean = settings.sanitize !== false;\n var scheme = clean && typeof settings.sanitize !== 'boolean' ? settings.sanitize : null;\n var toHastOptions = settings.toHast || {};\n var components = settings.remarkReactComponents || {};\n this.Compiler = compile; // Wrapper around `createElement` to pass components in.\n\n function h(name, props, children) {\n // Currently, a warning is triggered by react for *any* white space in\n // tables.\n // So we remove the pretty lines for now.\n // See: <https://github.com/facebook/react/pull/7081>.\n // See: <https://github.com/facebook/react/pull/7515>.\n // See: <https://github.com/remarkjs/remark-react/issues/64>.\n if (children && tableElements.indexOf(name) !== -1) {\n children = children.filter(function (child) {\n return child !== '\\n';\n });\n }\n\n return createElement(own.call(components, name) ? components[name] : name, props, children);\n } // Compile mdast to React.\n\n\n function compile(node) {\n var tree = toHAST(node, toHastOptions);\n var root;\n\n if (clean) {\n tree = sanitize(tree, scheme);\n }\n\n root = toH(h, tableCellStyle(tree), settings.prefix); // If this compiled to a `<div>`, but fragment are possible, use those.\n\n if (root.type === 'div' && Fragment) {\n root = createElement(Fragment, {}, root.props.children);\n }\n\n return root;\n }\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nvar repeat = require('repeat-string');\n\nvar pad = require('../util/pad');\n\nmodule.exports = listItem;\nvar lineFeed = '\\n';\nvar space = ' ';\nvar leftSquareBracket = '[';\nvar rightSquareBracket = ']';\nvar lowercaseX = 'x';\nvar ceil = Math.ceil;\nvar blank = lineFeed + lineFeed;\nvar tabSize = 4; // Stringify a list item.\n//\n// Prefixes the content with a checked checkbox when `checked: true`:\n//\n// ```markdown\n// [x] foo\n// ```\n//\n// Prefixes the content with an unchecked checkbox when `checked: false`:\n//\n// ```markdown\n// [ ] foo\n// ```\n\nfunction listItem(node, parent, position, bullet) {\n var self = this;\n var style = self.options.listItemIndent;\n var marker = bullet || self.options.bullet;\n var spread = node.spread == null ? true : node.spread;\n var checked = node.checked;\n var children = node.children;\n var length = children.length;\n var values = [];\n var index = -1;\n var value;\n var indent;\n var spacing;\n\n while (++index < length) {\n values[index] = self.visit(children[index], node);\n }\n\n value = values.join(spread ? blank : lineFeed);\n\n if (typeof checked === 'boolean') {\n // Note: I’d like to be able to only add the space between the check and\n // the value, but unfortunately github does not support empty list-items\n // with a checkbox :(\n value = leftSquareBracket + (checked ? lowercaseX : space) + rightSquareBracket + space + value;\n }\n\n if (style === '1' || style === 'mixed' && value.indexOf(lineFeed) === -1) {\n indent = marker.length + 1;\n spacing = space;\n } else {\n indent = ceil((marker.length + 1) / tabSize) * tabSize;\n spacing = repeat(space, indent - marker.length);\n }\n\n return value ? marker + spacing + pad(value, indent / tabSize).slice(indent) : marker;\n}","'use strict';\n\nvar convert = require('unist-util-is/convert');\n\nvar element = require('hast-util-is-element');\n\nvar whiteSpaceLeft = require('./util/white-space-left');\n\nvar after = require('./util/siblings').after;\n\nvar omission = require('./omission');\n\nvar isComment = convert('comment');\nvar optionGroup = 'optgroup';\nvar options = ['option'].concat(optionGroup);\nvar dataListItem = ['dt', 'dd'];\nvar listItem = 'li';\nvar menuContent = ['menuitem', 'hr', 'menu'];\nvar ruby = ['rp', 'rt'];\nvar tableContainer = ['tbody', 'tfoot'];\nvar tableRow = 'tr';\nvar tableCell = ['td', 'th'];\nvar confusingParagraphParent = ['a', 'audio', 'del', 'ins', 'map', 'noscript', 'video'];\nvar clearParagraphSibling = ['address', 'article', 'aside', 'blockquote', 'details', 'div', 'dl', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'hr', 'main', 'menu', 'nav', 'ol', 'p', 'pre', 'section', 'table', 'ul'];\nmodule.exports = omission({\n html: html,\n head: headOrColgroupOrCaption,\n body: body,\n p: p,\n li: li,\n dt: dt,\n dd: dd,\n rt: rubyElement,\n rp: rubyElement,\n optgroup: optgroup,\n option: option,\n menuitem: menuitem,\n colgroup: headOrColgroupOrCaption,\n caption: headOrColgroupOrCaption,\n thead: thead,\n tbody: tbody,\n tfoot: tfoot,\n tr: tr,\n td: cells,\n th: cells\n}); // Macro for `</head>`, `</colgroup>`, and `</caption>`.\n\nfunction headOrColgroupOrCaption(node, index, parent) {\n var next = after(parent, index, true);\n return !next || !isComment(next) && !whiteSpaceLeft(next);\n} // Whether to omit `</html>`.\n\n\nfunction html(node, index, parent) {\n var next = after(parent, index);\n return !next || !isComment(next);\n} // Whether to omit `</body>`.\n\n\nfunction body(node, index, parent) {\n var next = after(parent, index);\n return !next || !isComment(next);\n} // Whether to omit `</p>`.\n\n\nfunction p(node, index, parent) {\n var next = after(parent, index);\n return next ? element(next, clearParagraphSibling) : !parent || !element(parent, confusingParagraphParent);\n} // Whether to omit `</li>`.\n\n\nfunction li(node, index, parent) {\n var next = after(parent, index);\n return !next || element(next, listItem);\n} // Whether to omit `</dt>`.\n\n\nfunction dt(node, index, parent) {\n var next = after(parent, index);\n return next && element(next, dataListItem);\n} // Whether to omit `</dd>`.\n\n\nfunction dd(node, index, parent) {\n var next = after(parent, index);\n return !next || element(next, dataListItem);\n} // Whether to omit `</rt>` or `</rp>`.\n\n\nfunction rubyElement(node, index, parent) {\n var next = after(parent, index);\n return !next || element(next, ruby);\n} // Whether to omit `</optgroup>`.\n\n\nfunction optgroup(node, index, parent) {\n var next = after(parent, index);\n return !next || element(next, optionGroup);\n} // Whether to omit `</option>`.\n\n\nfunction option(node, index, parent) {\n var next = after(parent, index);\n return !next || element(next, options);\n} // Whether to omit `</menuitem>`.\n\n\nfunction menuitem(node, index, parent) {\n var next = after(parent, index);\n return !next || element(next, menuContent);\n} // Whether to omit `</thead>`.\n\n\nfunction thead(node, index, parent) {\n var next = after(parent, index);\n return next && element(next, tableContainer);\n} // Whether to omit `</tbody>`.\n\n\nfunction tbody(node, index, parent) {\n var next = after(parent, index);\n return !next || element(next, tableContainer);\n} // Whether to omit `</tfoot>`.\n\n\nfunction tfoot(node, index, parent) {\n return !after(parent, index);\n} // Whether to omit `</tr>`.\n\n\nfunction tr(node, index, parent) {\n var next = after(parent, index);\n return !next || element(next, tableRow);\n} // Whether to omit `</td>` or `</th>`.\n\n\nfunction cells(node, index, parent) {\n var next = after(parent, index);\n return !next || element(next, tableCell);\n}","'use strict';\n\nmodule.exports = blockquote;\n\nvar wrap = require('../wrap');\n\nvar all = require('../all');\n\nfunction blockquote(h, node) {\n return h(node, 'blockquote', wrap(all(h, node), true));\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = factory;\nvar backslash = '\\\\'; // Factory to de-escape a value, based on a list at `key` in `ctx`.\n\nfunction factory(ctx, key) {\n return unescape; // De-escape a string using the expression at `key` in `ctx`.\n\n function unescape(value) {\n var prev = 0;\n var index = value.indexOf(backslash);\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); // If the following character is not a valid escape, add the slash.\n\n if (!character || escape.indexOf(character) === -1) {\n queue.push(backslash);\n }\n\n index = value.indexOf(backslash, prev + 1);\n }\n\n queue.push(value.slice(prev));\n return queue.join('');\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 = one;\n\nvar u = require('unist-builder');\n\nvar all = require('./all');\n\nvar own = {}.hasOwnProperty; // Transform an unknown node.\n\nfunction unknown(h, node) {\n if (text(node)) {\n return h.augment(node, u('text', node.value));\n }\n\n return h(node, 'div', all(h, node));\n} // Visit a node.\n\n\nfunction one(h, node, parent) {\n var type = node && node.type;\n var fn = own.call(h.handlers, type) ? h.handlers[type] : null; // Fail on non-nodes.\n\n if (!type) {\n throw new Error('Expected node, got `' + node + '`');\n }\n\n return (typeof fn === 'function' ? fn : unknown)(h, node, parent);\n} // Check if the node should be renderered as a text node.\n\n\nfunction text(node) {\n var data = node.data || {};\n\n if (own.call(data, 'hName') || own.call(data, 'hProperties') || own.call(data, 'hChildren')) {\n return false;\n }\n\n return 'value' in node;\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/link');\n\nmodule.exports = link;\nlink.locator = locate;\nvar lineFeed = '\\n';\nvar exclamationMark = '!';\nvar quotationMark = '\"';\nvar apostrophe = \"'\";\nvar leftParenthesis = '(';\nvar rightParenthesis = ')';\nvar lessThan = '<';\nvar greaterThan = '>';\nvar leftSquareBracket = '[';\nvar backslash = '\\\\';\nvar rightSquareBracket = ']';\nvar graveAccent = '`';\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 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; // Detect whether this is an image.\n\n if (character === exclamationMark) {\n isImage = true;\n subvalue = character;\n character = value.charAt(++index);\n } // Eat the opening.\n\n\n if (character !== leftSquareBracket) {\n return;\n } // Exit when this is a link and we’re already inside a link.\n\n\n if (!isImage && self.inLink) {\n return;\n }\n\n subvalue += character;\n queue = '';\n index++; // 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 === graveAccent) {\n // Inline-code in link content.\n count = 1;\n\n while (value.charAt(index + 1) === graveAccent) {\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 === backslash) {\n // Allow brackets to be escaped.\n index++;\n subqueue += value.charAt(index);\n } else if ((!opening || gfm) && character === leftSquareBracket) {\n // In GFM mode, brackets in code still count. In all other modes,\n // they don’t.\n depth++;\n } else if ((!opening || gfm) && character === rightSquareBracket) {\n if (depth) {\n depth--;\n } else {\n // Allow white-space between content and 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) !== leftParenthesis) {\n return;\n }\n\n subqueue += leftParenthesis;\n closed = true;\n index++;\n break;\n }\n }\n\n queue += subqueue;\n subqueue = '';\n index++;\n } // Eat the content closing.\n\n\n if (!closed) {\n return;\n }\n\n content = queue;\n subvalue += queue + subqueue;\n index++; // 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 } // Eat the URL.\n\n\n character = value.charAt(index);\n queue = '';\n beforeURL = subvalue;\n\n if (character === lessThan) {\n index++;\n beforeURL += lessThan;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === greaterThan) {\n break;\n }\n\n if (commonmark && character === lineFeed) {\n return;\n }\n\n queue += character;\n index++;\n }\n\n if (value.charAt(index) !== greaterThan) {\n return;\n }\n\n subvalue += lessThan + queue + greaterThan;\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 && (character === quotationMark || character === apostrophe || commonmark && character === leftParenthesis)) {\n break;\n }\n\n if (whitespace(character)) {\n if (!pedantic) {\n break;\n }\n\n subqueue += character;\n } else {\n if (character === leftParenthesis) {\n depth++;\n } else if (character === rightParenthesis) {\n if (depth === 0) {\n break;\n }\n\n depth--;\n }\n\n queue += subqueue;\n subqueue = '';\n\n if (character === backslash) {\n queue += 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 } // 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; // Eat the title.\n\n if (queue && (character === quotationMark || character === apostrophe || commonmark && character === leftParenthesis)) {\n index++;\n subvalue += character;\n queue = '';\n marker = character === leftParenthesis ? rightParenthesis : character;\n beforeTitle = subvalue; // In commonmark-mode, things are pretty easy: the marker cannot occur\n // inside the title. 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 === backslash) {\n queue += 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 === rightParenthesis) {\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) !== rightParenthesis) {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n subvalue += rightParenthesis;\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 entityPrefixLength = require('./entity-prefix-length');\n\nmodule.exports = copy;\nvar ampersand = '&';\nvar punctuationExppresion = /[-!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~_]/; // For shortcut and collapsed reference links, the contents is also an\n// identifier, so we need to restore the original encoding and escaping\n// that were present in the source string.\n//\n// This function takes the unescaped & unencoded value from shortcut’s\n// child nodes and the identifier and encodes the former according to\n// the latter.\n\nfunction copy(value, identifier) {\n var length = value.length;\n var count = identifier.length;\n var result = [];\n var position = 0;\n var index = 0;\n var start;\n\n while (index < length) {\n // Take next non-punctuation characters from `value`.\n start = index;\n\n while (index < length && !punctuationExppresion.test(value.charAt(index))) {\n index += 1;\n }\n\n result.push(value.slice(start, index)); // Advance `position` to the next punctuation character.\n\n while (position < count && !punctuationExppresion.test(identifier.charAt(position))) {\n position += 1;\n } // Take next punctuation characters from `identifier`.\n\n\n start = position;\n\n while (position < count && punctuationExppresion.test(identifier.charAt(position))) {\n if (identifier.charAt(position) === ampersand) {\n position += entityPrefixLength(identifier.slice(position));\n }\n\n position += 1;\n }\n\n result.push(identifier.slice(start, position)); // Advance `index` to the next non-punctuation character.\n\n while (index < length && punctuationExppresion.test(value.charAt(index))) {\n index += 1;\n }\n }\n\n return result.join('');\n}","'use strict';\n\nvar collapseWhiteSpace = require('collapse-white-space');\n\nmodule.exports = normalize; // Normalize an identifier. Collapses multiple white space characters into a\n// single space, and removes casing.\n\nfunction normalize(value) {\n return collapseWhiteSpace(value).toLowerCase();\n}","'use strict';\n\nmodule.exports = emphasis;\n\nvar all = require('../all');\n\nfunction emphasis(h, node) {\n return h(node, 'em', all(h, node));\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nvar locate = require('../locate/escape');\n\nmodule.exports = escape;\nescape.locator = locate;\nvar lineFeed = '\\n';\nvar backslash = '\\\\';\n\nfunction escape(eat, value, silent) {\n var self = this;\n var character;\n var node;\n\n if (value.charAt(0) === backslash) {\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 === lineFeed) {\n node = {\n type: 'break'\n };\n } else {\n node = {\n type: 'text',\n value: character\n };\n }\n\n return eat(backslash + character)(node);\n }\n }\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nvar xtend = require('xtend');\n\nvar defaults = require('./github.json');\n\nmodule.exports = wrapper;\nvar own = {}.hasOwnProperty;\nvar allData = 'data*';\nvar commentEnd = '-->';\nvar nodeSchema = {\n root: {\n children: all\n },\n doctype: handleDoctype,\n comment: handleComment,\n element: {\n tagName: handleTagName,\n properties: handleProperties,\n children: all\n },\n text: {\n value: handleValue\n },\n '*': {\n data: allow,\n position: allow\n }\n}; // Sanitize `node`, according to `schema`.\n\nfunction wrapper(node, schema) {\n var ctx = {\n type: 'root',\n children: []\n };\n var replace;\n\n if (!node || typeof node !== 'object' || !node.type) {\n return ctx;\n }\n\n replace = one(xtend(defaults, schema || {}), node, []);\n\n if (!replace) {\n return ctx;\n }\n\n if ('length' in replace) {\n if (replace.length === 1) {\n return replace[0];\n }\n\n ctx.children = replace;\n return ctx;\n }\n\n return replace;\n} // Sanitize `node`.\n\n\nfunction one(schema, node, stack) {\n var type = node && node.type;\n var replacement = {\n type: node.type\n };\n var replace = true;\n var definition;\n var allowed;\n var result;\n var key;\n\n if (!own.call(nodeSchema, type)) {\n replace = false;\n } else {\n definition = nodeSchema[type];\n\n if (typeof definition === 'function') {\n definition = definition(schema, node);\n }\n\n if (!definition) {\n replace = false;\n } else {\n allowed = xtend(definition, nodeSchema['*']);\n\n for (key in allowed) {\n result = allowed[key](schema, node[key], node, stack);\n\n if (result === false) {\n replace = false; // Set the non-safe value.\n\n replacement[key] = node[key];\n } else if (result !== null && result !== undefined) {\n replacement[key] = result;\n }\n }\n }\n }\n\n if (!replace) {\n if (!replacement.children || replacement.children.length === 0 || schema.strip.indexOf(replacement.tagName) !== -1) {\n return null;\n }\n\n return replacement.children;\n }\n\n return replacement;\n} // Sanitize `children`.\n\n\nfunction all(schema, children, node, stack) {\n var nodes = children || [];\n var length = nodes.length || 0;\n var results = [];\n var index = -1;\n var result;\n stack = stack.concat(node.tagName);\n\n while (++index < length) {\n result = one(schema, nodes[index], stack);\n\n if (result) {\n if ('length' in result) {\n results = results.concat(result);\n } else {\n results.push(result);\n }\n }\n }\n\n return results;\n} // Sanitize `properties`.\n\n\nfunction handleProperties(schema, properties, node, stack) {\n var name = handleTagName(schema, node.tagName, node, stack);\n var attrs = schema.attributes;\n var reqs = schema.required ||\n /* istanbul ignore next */\n {};\n var props = properties || {};\n var result = {};\n var allowed;\n var required;\n var definition;\n var prop;\n var value;\n allowed = xtend(toPropertyValueMap(attrs['*']), toPropertyValueMap(own.call(attrs, name) ? attrs[name] : []));\n\n for (prop in props) {\n value = props[prop];\n\n if (own.call(allowed, prop)) {\n definition = allowed[prop];\n } else if (data(prop) && own.call(allowed, allData)) {\n definition = allowed[allData];\n } else {\n continue;\n }\n\n if (value && typeof value === 'object' && 'length' in value) {\n value = handlePropertyValues(schema, value, prop, definition);\n } else {\n value = handlePropertyValue(schema, value, prop, definition);\n }\n\n if (value !== null && value !== undefined) {\n result[prop] = value;\n }\n }\n\n required = own.call(reqs, name) ? reqs[name] : {};\n\n for (prop in required) {\n if (!own.call(result, prop)) {\n result[prop] = required[prop];\n }\n }\n\n return result;\n} // Sanitize a property value which is a list.\n\n\nfunction handlePropertyValues(schema, values, prop, definition) {\n var length = values.length;\n var result = [];\n var index = -1;\n var value;\n\n while (++index < length) {\n value = handlePropertyValue(schema, values[index], prop, definition);\n\n if (value !== null && value !== undefined) {\n result.push(value);\n }\n }\n\n return result;\n} // Sanitize a property value.\n\n\nfunction handlePropertyValue(schema, value, prop, definition) {\n if (typeof value !== 'boolean' && typeof value !== 'number' && typeof value !== 'string') {\n return null;\n }\n\n if (!handleProtocol(schema, value, prop)) {\n return null;\n }\n\n if (definition.length !== 0 && definition.indexOf(value) === -1) {\n return null;\n }\n\n if (schema.clobber.indexOf(prop) !== -1) {\n value = schema.clobberPrefix + value;\n }\n\n return value;\n} // Check whether `value` is a safe URL.\n\n\nfunction handleProtocol(schema, value, prop) {\n var protocols = schema.protocols;\n var protocol;\n var first;\n var colon;\n var length;\n var index;\n protocols = own.call(protocols, prop) ? protocols[prop].concat() : [];\n\n if (protocols.length === 0) {\n return true;\n }\n\n value = String(value);\n first = value.charAt(0);\n\n if (first === '#' || first === '/') {\n return true;\n }\n\n colon = value.indexOf(':');\n\n if (colon === -1) {\n return true;\n }\n\n length = protocols.length;\n index = -1;\n\n while (++index < length) {\n protocol = protocols[index];\n\n if (colon === protocol.length && value.slice(0, protocol.length) === protocol) {\n return true;\n }\n }\n\n index = value.indexOf('?');\n\n if (index !== -1 && colon > index) {\n return true;\n }\n\n index = value.indexOf('#');\n\n if (index !== -1 && colon > index) {\n return true;\n }\n\n return false;\n} // Always return a valid HTML5 doctype.\n\n\nfunction handleDoctypeName() {\n return 'html';\n} // Sanitize `tagName`.\n\n\nfunction handleTagName(schema, tagName, node, stack) {\n var name = typeof tagName === 'string' ? tagName : null;\n var ancestors = schema.ancestors;\n var length;\n var index;\n\n if (!name || name === '*' || schema.tagNames.indexOf(name) === -1) {\n return false;\n }\n\n ancestors = own.call(ancestors, name) ? ancestors[name] : []; // Some nodes can break out of their context if they don’t have a certain\n // ancestor.\n\n if (ancestors.length !== 0) {\n length = ancestors.length + 1;\n index = -1;\n\n while (++index < length) {\n if (!ancestors[index]) {\n return false;\n }\n\n if (stack.indexOf(ancestors[index]) !== -1) {\n break;\n }\n }\n }\n\n return name;\n}\n\nfunction handleDoctype(schema) {\n return schema.allowDoctypes ? {\n name: handleDoctypeName\n } : null;\n}\n\nfunction handleComment(schema) {\n return schema.allowComments ? {\n value: handleCommentValue\n } : null;\n} // See <https://html.spec.whatwg.org/multipage/parsing.html#serialising-html-fragments>\n\n\nfunction handleCommentValue(schema, value) {\n var val = typeof value === 'string' ? value : '';\n var index = val.indexOf(commentEnd);\n return index === -1 ? val : val.slice(0, index);\n} // Sanitize `value`.\n\n\nfunction handleValue(schema, value) {\n return typeof value === 'string' ? value : '';\n} // Create a map from a list of props or a list of properties and values.\n\n\nfunction toPropertyValueMap(values) {\n var result = {};\n var length = values.length;\n var index = -1;\n var value;\n\n while (++index < length) {\n value = values[index];\n\n if (value && typeof value === 'object' && 'length' in value) {\n result[value[0]] = value.slice(1);\n } else {\n result[value] = [];\n }\n }\n\n return result;\n} // Allow `value`.\n\n\nfunction allow(schema, value) {\n return value;\n} // Check if `prop` is a data property.\n\n\nfunction data(prop) {\n return prop.length > 4 && prop.slice(0, 4).toLowerCase() === 'data';\n}","'use strict';\n\nmodule.exports = heading;\n\nvar all = require('../all');\n\nfunction heading(h, node) {\n return h(node, 'h' + node.depth, all(h, node));\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nvar entities = require('character-entities-html4');\n\nvar legacy = require('character-entities-legacy');\n\nvar hexadecimal = require('is-hexadecimal');\n\nvar alphanumerical = require('is-alphanumerical');\n\nvar dangerous = require('./dangerous.json');\n/* Expose. */\n\n\nmodule.exports = encode;\nencode.escape = escape;\nvar own = {}.hasOwnProperty;\n/* List of enforced escapes. */\n\nvar escapes = ['\"', \"'\", '<', '>', '&', '`'];\n/* Map of characters to names. */\n\nvar characters = construct();\n/* Default escapes. */\n\nvar defaultEscapes = toExpression(escapes);\n/* Surrogate pairs. */\n\nvar surrogatePair = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n/* Non-ASCII characters. */\n// eslint-disable-next-line no-control-regex, unicorn/no-hex-escape\n\nvar bmp = /[\\x01-\\t\\x0B\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g;\n/* Encode special characters in `value`. */\n\nfunction encode(value, options) {\n var settings = options || {};\n var subset = settings.subset;\n var set = subset ? toExpression(subset) : defaultEscapes;\n var escapeOnly = settings.escapeOnly;\n var omit = settings.omitOptionalSemicolons;\n value = value.replace(set, function (_char, pos, val) {\n return one(_char, val.charAt(pos + 1), settings);\n });\n\n if (subset || escapeOnly) {\n return value;\n }\n\n return value.replace(surrogatePair, replaceSurrogatePair).replace(bmp, replaceBmp);\n\n function replaceSurrogatePair(pair, pos, val) {\n return toHexReference((pair.charCodeAt(0) - 0xd800) * 0x400 + pair.charCodeAt(1) - 0xdc00 + 0x10000, val.charAt(pos + 2), omit);\n }\n\n function replaceBmp(_char2, pos, val) {\n return one(_char2, val.charAt(pos + 1), settings);\n }\n}\n/* Shortcut to escape special characters in HTML. */\n\n\nfunction escape(value) {\n return encode(value, {\n escapeOnly: true,\n useNamedReferences: true\n });\n}\n/* Encode `char` according to `options`. */\n\n\nfunction one(_char3, next, options) {\n var shortest = options.useShortestReferences;\n var omit = options.omitOptionalSemicolons;\n var named;\n var numeric;\n\n if ((shortest || options.useNamedReferences) && own.call(characters, _char3)) {\n named = toNamed(characters[_char3], next, omit, options.attribute);\n }\n\n if (shortest || !named) {\n numeric = toHexReference(_char3.charCodeAt(0), next, omit);\n }\n\n if (named && (!shortest || named.length < numeric.length)) {\n return named;\n }\n\n return numeric;\n}\n/* Transform `code` into an entity. */\n\n\nfunction toNamed(name, next, omit, attribute) {\n var value = '&' + name;\n\n if (omit && own.call(legacy, name) && dangerous.indexOf(name) === -1 && (!attribute || next && next !== '=' && !alphanumerical(next))) {\n return value;\n }\n\n return value + ';';\n}\n/* Transform `code` into a hexadecimal character reference. */\n\n\nfunction toHexReference(code, next, omit) {\n var value = '&#x' + code.toString(16).toUpperCase();\n return omit && next && !hexadecimal(next) ? value : value + ';';\n}\n/* Create an expression for `characters`. */\n\n\nfunction toExpression(characters) {\n return new RegExp('[' + characters.join('') + ']', 'g');\n}\n/* Construct the map. */\n\n\nfunction construct() {\n var chars = {};\n var name;\n\n for (name in entities) {\n chars[entities[name]] = name;\n }\n\n return chars;\n}","'use strict';\n\nmodule.exports = one;\n\nfunction one(node, parent) {\n var self = this;\n var visitors = self.visitors; // Fail on unknown nodes.\n\n if (typeof visitors[node.type] !== 'function') {\n self.file.fail(new Error('Missing compiler for node of type `' + node.type + '`: `' + node + '`'), node);\n }\n\n return visitors[node.type].call(self, node, parent);\n}","'use strict';\n\nmodule.exports = orderedItems;\nvar lineFeed = '\\n';\nvar dot = '.';\nvar blank = lineFeed + lineFeed; // Visit ordered list items.\n//\n// Starts the list with\n// `node.start` and increments each following list item\n// bullet by one:\n//\n// 2. foo\n// 3. bar\n//\n// In `incrementListMarker: false` mode, does not increment\n// each marker and stays on `node.start`:\n//\n// 1. foo\n// 1. bar\n\nfunction orderedItems(node) {\n var self = this;\n var fn = self.visitors.listItem;\n var increment = self.options.incrementListMarker;\n var values = [];\n var start = node.start;\n var children = node.children;\n var length = children.length;\n var index = -1;\n var bullet;\n start = start == null ? 1 : start;\n\n while (++index < length) {\n bullet = (increment ? start + index : start) + dot;\n values[index] = fn.call(self, children[index], node, index, bullet);\n }\n\n return values.join(node.spread ? blank : lineFeed);\n}","'use strict';\n\nvar html = require('property-information/html');\n\nvar svg = require('property-information/svg');\n\nvar voids = require('html-void-elements');\n\nvar omission = require('./omission');\n\nvar one = require('./one');\n\nmodule.exports = toHtml;\nvar quotationMark = '\"';\nvar apostrophe = \"'\"; // Stringify the given hast node.\n\nfunction toHtml(node, options) {\n var settings = options || {};\n var quote = settings.quote || quotationMark;\n var alternative = quote === quotationMark ? apostrophe : quotationMark;\n var smart = settings.quoteSmart;\n\n if (quote !== quotationMark && quote !== apostrophe) {\n throw new Error('Invalid quote `' + quote + '`, expected `' + apostrophe + '` or `' + quotationMark + '`');\n }\n\n return one({\n valid: settings.allowParseErrors ? 0 : 1,\n safe: settings.allowDangerousCharacters ? 0 : 1,\n schema: settings.space === 'svg' ? svg : html,\n omit: settings.omitOptionalTags && omission,\n quote: quote,\n alternative: smart ? alternative : null,\n unquoted: Boolean(settings.preferUnquoted),\n tight: settings.tightAttributes,\n tightDoctype: Boolean(settings.tightDoctype),\n tightLists: settings.tightCommaSeparatedLists,\n tightClose: settings.tightSelfClosing,\n collapseEmpty: settings.collapseEmptyAttributes,\n dangerous: settings.allowDangerousHTML,\n voids: settings.voids || voids.concat(),\n entities: settings.entities || {},\n close: settings.closeSelfClosing,\n closeEmpty: settings.closeEmptyElements\n }, node);\n}","'use strict';\n\nmodule.exports = paragraph;\n\nfunction paragraph(node) {\n return this.all(node).join('');\n}","'use strict';\n\nmodule.exports = indentation;\nvar tab = '\\t';\nvar space = ' ';\nvar spaceSize = 1;\nvar tabSize = 4; // 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 === tab || character === space) {\n size = character === tab ? tabSize : spaceSize;\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 = footnote;\n\nvar footnoteReference = require('./footnote-reference');\n\nfunction footnote(h, node) {\n var footnoteById = h.footnoteById;\n var footnoteOrder = h.footnoteOrder;\n var identifier = 1;\n\n while (identifier in footnoteById) {\n identifier++;\n }\n\n identifier = String(identifier); // No need to check if `identifier` exists in `footnoteOrder`, it’s guaranteed\n // to not exist because we just generated it.\n\n footnoteOrder.push(identifier);\n footnoteById[identifier] = {\n type: 'footnoteDefinition',\n identifier: identifier,\n children: [{\n type: 'paragraph',\n children: node.children\n }],\n position: node.position\n };\n return footnoteReference(h, {\n type: 'footnoteReference',\n identifier: identifier,\n position: node.position\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 settings = this.data('settings');\n var Local = unherit(Parser);\n Local.prototype.options = xtend(Local.prototype.options, settings, options);\n this.Parser = Local;\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\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = list;\n\nvar wrap = require('../wrap');\n\nvar all = require('../all');\n\nfunction list(h, node) {\n var props = {};\n var name = node.ordered ? 'ol' : 'ul';\n var items;\n var index = -1;\n var length;\n\n if (typeof node.start === 'number' && node.start !== 1) {\n props.start = node.start;\n }\n\n items = all(h, node);\n length = items.length; // Like GitHub, add a class for custom styling.\n\n while (++index < length) {\n if (items[index].properties.className && items[index].properties.className.indexOf('task-list-item') !== -1) {\n props.className = ['contains-task-list'];\n break;\n }\n }\n\n return h(node, name, props, wrap(items, true));\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n return value.indexOf('`', fromIndex);\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 quotationMark = '\"';\nvar apostrophe = \"'\";\nvar backslash = '\\\\';\nvar lineFeed = '\\n';\nvar tab = '\\t';\nvar space = ' ';\nvar leftSquareBracket = '[';\nvar rightSquareBracket = ']';\nvar leftParenthesis = '(';\nvar rightParenthesis = ')';\nvar colon = ':';\nvar lessThan = '<';\nvar greaterThan = '>';\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 !== space && character !== tab) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (character !== leftSquareBracket) {\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 === rightSquareBracket) {\n break;\n } else if (character === 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) !== rightSquareBracket || value.charAt(index + 1) !== colon) {\n return;\n }\n\n identifier = queue;\n subvalue += queue + rightSquareBracket + colon;\n index = subvalue.length;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== tab && character !== space && character !== lineFeed) {\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 === lessThan) {\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 += lessThan + 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 !== tab && character !== space && character !== lineFeed) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n test = null;\n\n if (character === quotationMark) {\n test = quotationMark;\n } else if (character === apostrophe) {\n test = apostrophe;\n } else if (character === leftParenthesis) {\n test = rightParenthesis;\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 === lineFeed) {\n index++;\n character = value.charAt(index);\n\n if (character === lineFeed || character === test) {\n return;\n }\n\n queue += lineFeed;\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 !== tab && character !== space) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (!character || character === lineFeed) {\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 label: identifier,\n title: title || null,\n url: url\n });\n }\n} // Check if `character` can be inside an enclosed URI.\n\n\nfunction isEnclosedURLCharacter(character) {\n return character !== greaterThan && character !== leftSquareBracket && character !== rightSquareBracket;\n}\n\nisEnclosedURLCharacter.delimiter = greaterThan; // Check if `character` can be inside an unclosed URI.\n\nfunction isUnclosedURLCharacter(character) {\n return character !== leftSquareBracket && character !== rightSquareBracket && !whitespace(character);\n}","'use strict';\n\nmodule.exports = thematicBreak;\nvar tab = '\\t';\nvar lineFeed = '\\n';\nvar space = ' ';\nvar asterisk = '*';\nvar dash = '-';\nvar underscore = '_';\nvar maxCount = 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 !== tab && character !== space) {\n break;\n }\n\n subvalue += character;\n }\n\n if (character !== asterisk && character !== dash && character !== 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 === space) {\n queue += character;\n } else if (markerCount >= maxCount && (!character || character === lineFeed)) {\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\nrequire(\"core-js/modules/es6.array.index-of\");\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 Info = require('./info');\n\nvar types = require('./types');\n\nmodule.exports = DefinedInfo;\nDefinedInfo.prototype = new Info();\nDefinedInfo.prototype.defined = true;\nvar checks = ['boolean', 'booleanish', 'overloadedBoolean', 'number', 'commaSeparated', 'spaceSeparated', 'commaOrSpaceSeparated'];\nvar checksLength = checks.length;\n\nfunction DefinedInfo(property, attribute, mask, space) {\n var index = -1;\n var check;\n mark(this, 'space', space);\n Info.call(this, property, attribute);\n\n while (++index < checksLength) {\n check = checks[index];\n mark(this, check, (mask & types[check]) === types[check]);\n }\n}\n\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value;\n }\n}","'use strict';\n\nmodule.exports = imageReference;\n\nvar normalize = require('mdurl/encode');\n\nvar revert = require('../revert');\n\nfunction imageReference(h, node) {\n var def = h.definition(node.identifier);\n var props;\n\n if (!def) {\n return revert(h, node);\n }\n\n props = {\n src: normalize(def.url || ''),\n alt: node.alt\n };\n\n if (def.title !== null && def.title !== undefined) {\n props.title = def.title;\n }\n\n return h(node, 'img', props);\n}","import React from 'react'\nimport styles from './Button.module.scss'\n\nconst Button = (props: any) => (\n <a className={styles.button} {...props}>\n {props.children}\n </a>\n)\n\n\nexport default Button\n","'use strict';\n\nmodule.exports = detab;\n\nvar repeat = require('repeat-string');\n\nvar tab = 0x09;\nvar lineFeed = 0x0a;\nvar carriageReturn = 0x0d; // Replace tabs with spaces, being smart about which column the tab is at and\n// which size should be used.\n\nfunction detab(value, size) {\n var string = typeof value === 'string';\n var length = string && value.length;\n var start = 0;\n var index = -1;\n var column = -1;\n var tabSize = size || 4;\n var results = [];\n var code;\n var add;\n\n if (!string) {\n throw new Error('detab expected string');\n }\n\n while (++index < length) {\n code = value.charCodeAt(index);\n\n if (code === tab) {\n add = tabSize - (column + 1) % tabSize;\n column += add;\n results.push(value.slice(start, index) + repeat(' ', add));\n start = index + 1;\n } else if (code === lineFeed || code === carriageReturn) {\n column = -1;\n } else {\n column++;\n }\n }\n\n results.push(value.slice(start));\n return results.join('');\n}","'use strict';\n\nrequire(\"core-js/modules/es6.number.constructor\");\n\nrequire(\"core-js/modules/es6.regexp.split\");\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nrequire(\"core-js/modules/es6.regexp.match\");\n\nrequire(\"core-js/modules/es6.array.index-of\");\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 asterisk = '*';\nvar underscore = '_';\nvar plusSign = '+';\nvar dash = '-';\nvar dot = '.';\nvar space = ' ';\nvar lineFeed = '\\n';\nvar tab = '\\t';\nvar rightParenthesis = ')';\nvar lowercaseX = 'x';\nvar tabSize = 4;\nvar looseListItemExpression = /\\n\\n(?!\\s*$)/;\nvar taskItemExpression = /^\\[([ \\t]|x|X)][ \\t]/;\nvar bulletExpression = /^([ \\t]*)([*+-]|\\d+[.)])( {1,4}(?! )| |\\t|$|(?=\\n))([^\\n]*)/;\nvar pedanticBulletExpression = /^([ \\t]*)([*+-]|\\d+[.)])([ \\t]+)/;\nvar initialIndentExpression = /^( {1,4}|\\t)?/gm;\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 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 spread = false;\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 === tab) {\n size += tabSize - size % tabSize;\n } else if (character === space) {\n size++;\n } else {\n break;\n }\n\n index++;\n }\n\n if (size >= tabSize) {\n return;\n }\n\n character = value.charAt(index);\n\n if (character === asterisk || character === plusSign || character === dash) {\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 || !(character === dot || commonmark && character === rightParenthesis)) {\n return;\n }\n\n start = parseInt(queue, 10);\n marker = character;\n }\n\n character = value.charAt(++index);\n\n if (character !== space && character !== tab && (pedantic || character !== lineFeed && character !== '')) {\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(lineFeed, index);\n startIndex = index;\n prefixed = false;\n indented = false;\n\n if (nextIndex === -1) {\n nextIndex = length;\n }\n\n end = index + tabSize;\n size = 0;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === tab) {\n size += tabSize - size % tabSize;\n } else if (character === space) {\n size++;\n } else {\n break;\n }\n\n index++;\n }\n\n if (size >= tabSize) {\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 (character === asterisk || character === plusSign || character === dash) {\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 && (character === dot || commonmark && character === rightParenthesis)) {\n currentMarker = character;\n size += queue.length + 1;\n }\n }\n\n if (currentMarker) {\n character = value.charAt(index);\n\n if (character === tab) {\n size += tabSize - size % tabSize;\n index++;\n } else if (character === space) {\n end = index + tabSize;\n\n while (index < end) {\n if (value.charAt(index) !== space) {\n break;\n }\n\n index++;\n size++;\n }\n\n if (index === end && value.charAt(index) === space) {\n index -= tabSize - 1;\n size -= tabSize - 1;\n }\n } else if (character !== lineFeed && 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) === space) {\n indented = true;\n } else if (commonmark && item) {\n indented = size >= item.indent || size > tabSize;\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 === asterisk || currentMarker === underscore || currentMarker === dash) {\n if (tokenizers.thematicBreak.call(self, eat, line, true)) {\n break;\n }\n }\n\n prevEmpty = empty;\n empty = !prefixed && !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 spread = true;\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 && !commonmark) {\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(lineFeed)).reset({\n type: 'list',\n ordered: ordered,\n start: start,\n spread: spread,\n children: []\n });\n enterTop = self.enterList();\n exitBlockquote = self.enterBlock();\n index = -1;\n length = items.length;\n\n while (++index < length) {\n item = items[index].value.join(lineFeed);\n now = eat.now();\n eat(item)(listItem(self, item, now), node);\n item = items[index].trail.join(lineFeed);\n\n if (index !== length - 1) {\n item += lineFeed;\n }\n\n eat(item);\n }\n\n enterTop();\n exitBlockquote();\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(taskItemExpression);\n\n if (task) {\n indent = task[0].length;\n checked = task[1].toLowerCase() === lowercaseX;\n offsets[position.line] += indent;\n value = value.slice(indent);\n }\n }\n\n return {\n type: 'listItem',\n spread: looseListItemExpression.test(value),\n checked: checked,\n children: ctx.tokenizeBlock(value, position)\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; // Remove the list-item’s bullet.\n\n value = value.replace(pedanticBulletExpression, replacer); // The initial line was also matched by the below, so we reset the `line`.\n\n line = position.line;\n return value.replace(initialIndentExpression, replacer); // A simple replacer which removed all matches, and adds their length to\n // `offset`.\n\n function replacer($0) {\n offsets[line] = (offsets[line] || 0) + $0.length;\n line++;\n return '';\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; // Remove the list-item’s bullet.\n\n value = value.replace(bulletExpression, replacer);\n lines = value.split(lineFeed);\n trimmedLines = removeIndent(value, getIndent(max).indent).split(lineFeed); // We replaced the initial bullet with something else above, which was used\n // to trick `removeIndentation` into removing some more characters when\n // possible. However, that could result in the initial line to be stripped\n // more 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(lineFeed);\n /* eslint-disable-next-line max-params */\n\n function replacer($0, $1, $2, $3, $4) {\n bullet = $1 + $2 + $3;\n rest = $4; // Make sure that the first nine numbered list items can indent with an\n // extra space. That is, when the bullet did not receive an extra final\n // space.\n\n if (Number($2) < 10 && bullet.length % 2 === 1) {\n $2 = space + $2;\n }\n\n max = $1 + repeat(space, $2.length) + $3;\n return max + rest;\n }\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nvar locate = require('../locate/escape');\n\nmodule.exports = escape;\nescape.locator = locate;\nvar lineFeed = '\\n';\nvar backslash = '\\\\';\n\nfunction escape(eat, value, silent) {\n var self = this;\n var character;\n var node;\n\n if (value.charAt(0) === backslash) {\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 === lineFeed) {\n node = {\n type: 'break'\n };\n } else {\n node = {\n type: 'text',\n value: character\n };\n }\n\n return eat(backslash + character)(node);\n }\n }\n}","'use strict';\n\nmodule.exports = one;\nvar own = {}.hasOwnProperty;\nvar handlers = {};\nhandlers.root = require('./all');\nhandlers.text = require('./text');\nhandlers.element = require('./element');\nhandlers.doctype = require('./doctype');\nhandlers.comment = require('./comment');\nhandlers.raw = require('./raw'); // Stringify `node`.\n\nfunction one(ctx, node, index, parent) {\n var type = node && node.type;\n\n if (!type) {\n throw new Error('Expected node, not `' + node + '`');\n }\n\n if (!own.call(handlers, type)) {\n throw new Error('Cannot compile unknown node `' + type + '`');\n }\n\n return handlers[type](ctx, node, index, parent);\n}","'use strict';\n\nmodule.exports = text; // Stringify text.\n// Supports named entities in `settings.encode: true` mode:\n//\n// ```markdown\n// AT&T\n// ```\n//\n// Supports numbered entities in `settings.encode: numbers` mode:\n//\n// ```markdown\n// AT&T\n// ```\n\nfunction text(node, parent) {\n return this.encode(this.escape(node.value, node, parent), node);\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nvar whitespace = require('is-whitespace-character');\n\nmodule.exports = table;\nvar tab = '\\t';\nvar lineFeed = '\\n';\nvar space = ' ';\nvar dash = '-';\nvar colon = ':';\nvar backslash = '\\\\';\nvar verticalBar = '|';\nvar minColumns = 1;\nvar minRows = 2;\nvar left = 'left';\nvar center = 'center';\nvar right = 'right';\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 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; // Exit when not in gfm-mode.\n\n if (!self.options.gfm) {\n return;\n } // Get the rows.\n // Detecting tables soon is hard, so there are some checks for performance\n // here, such as the minimum 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(lineFeed, index);\n pipeIndex = value.indexOf(verticalBar, index + 1);\n\n if (lineIndex === -1) {\n lineIndex = value.length;\n }\n\n if (pipeIndex === -1 || pipeIndex > lineIndex) {\n if (lineCount < minRows) {\n return;\n }\n\n break;\n }\n\n lines.push(value.slice(index, lineIndex));\n lineCount++;\n index = lineIndex + 1;\n } // Parse the alignment row.\n\n\n subvalue = lines.join(lineFeed);\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 === verticalBar) {\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 === dash) {\n hasDash = true;\n alignment = alignment || null;\n } else if (character === colon) {\n if (alignment === left) {\n alignment = center;\n } else if (hasDash && alignment === null) {\n alignment = right;\n } else {\n alignment = left;\n }\n } else if (!whitespace(character)) {\n return;\n }\n\n index++;\n }\n\n if (alignment !== false) {\n align.push(alignment);\n } // Exit when without enough columns.\n\n\n if (align.length < minColumns) {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\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 }; // Eat a newline character when this is not the first row.\n\n if (position) {\n eat(lineFeed);\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\n while (index < length) {\n character = line.charAt(index);\n\n if (character === tab || character === space) {\n if (cell) {\n queue += character;\n } else {\n eat(character);\n }\n\n index++;\n continue;\n }\n\n if (character === '' || character === verticalBar) {\n if (preamble) {\n eat(character);\n } else {\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 === backslash && index !== length - 2) {\n cell += line.charAt(index + 1);\n index++;\n }\n }\n\n preamble = false;\n index++;\n } // Eat the alignment row.\n\n\n if (!position) {\n eat(lineFeed + alignments);\n }\n }\n\n return table;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = place; // Get the position of `node` in `parent`.\n\nfunction place(parent, child) {\n return parent && parent.children && parent.children.indexOf(child);\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\nvar xtend = require('xtend');\n\nvar toHast = require('mdast-util-to-hast');\n\nvar toHtml = require('hast-util-to-html');\n\nvar sanitize = require('hast-util-sanitize');\n\nmodule.exports = plugin;\n\nfunction plugin(options) {\n var settings = options || {};\n var clean = settings.sanitize;\n var schema = clean && typeof clean === 'object' ? clean : null;\n var handlers = settings.handlers || {};\n this.Compiler = compiler;\n\n function compiler(node, file) {\n var root = node && node.type && node.type === 'root';\n var hast = toHast(node, {\n allowDangerousHTML: !clean,\n handlers: handlers\n });\n var result;\n\n if (file.extname) {\n file.extname = '.html';\n }\n\n if (clean) {\n hast = sanitize(hast, schema);\n }\n\n result = toHtml(hast, xtend(settings, {\n allowDangerousHTML: !clean\n })); // Add an eof eol.\n\n if (root && result.charAt(result.length - 1) !== '\\n') {\n result += '\\n';\n }\n\n return result;\n }\n}","'use strict';\n\nmodule.exports = caseSensitiveTransform;\n\nfunction caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\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 quotationMark = '\"';\nvar apostrophe = \"'\";\nvar leftParenthesis = '(';\nvar rightParenthesis = ')';\nvar comma = ',';\nvar dot = '.';\nvar colon = ':';\nvar semicolon = ';';\nvar lessThan = '<';\nvar atSign = '@';\nvar leftSquareBracket = '[';\nvar rightSquareBracket = ']';\nvar http = 'http://';\nvar https = 'https://';\nvar mailto = 'mailto:';\nvar protocols = [http, https, mailto];\nvar protocolsLength = 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 tokenizers;\n var exit;\n\n if (!self.options.gfm) {\n return;\n }\n\n subvalue = '';\n index = -1;\n\n while (++index < protocolsLength) {\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 === lessThan) {\n break;\n }\n\n if (character === dot || character === comma || character === colon || character === semicolon || character === quotationMark || character === apostrophe || character === rightParenthesis || character === rightSquareBracket) {\n nextCharacter = value.charAt(index + 1);\n\n if (!nextCharacter || whitespace(nextCharacter)) {\n break;\n }\n }\n\n if (character === leftParenthesis || character === leftSquareBracket) {\n parenCount++;\n }\n\n if (character === rightParenthesis || character === rightSquareBracket) {\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) {\n position = queue.indexOf(atSign);\n\n if (position === -1 || position === length - 1) {\n return;\n }\n\n content = content.substr(mailto.length);\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n exit = self.enterLink(); // Temporarily remove all tokenizers except text in url.\n\n tokenizers = self.inlineTokenizers;\n self.inlineTokenizers = {\n text: tokenizers.text\n };\n content = self.tokenizeInline(content, eat.now());\n self.inlineTokenizers = tokenizers;\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\nrequire(\"core-js/modules/es6.array.is-array\");\n\nvar assign = require('object-assign');\n\nmodule.exports = u;\n\nfunction u(type, props, value) {\n var node;\n\n if ((value === null || value === undefined) && (typeof props !== 'object' || Array.isArray(props))) {\n value = props;\n props = {};\n }\n\n node = assign({\n type: String(type)\n }, props);\n\n if (Array.isArray(value)) {\n node.children = value;\n } else if (value !== null && value !== undefined) {\n node.value = String(value);\n }\n\n return node;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.string.trim\");\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nexports.parse = parse;\nexports.stringify = stringify;\nvar comma = ',';\nvar space = ' ';\nvar empty = ''; // Parse comma-separated tokens to an array.\n\nfunction parse(value) {\n var values = [];\n var input = String(value || empty);\n var index = input.indexOf(comma);\n var lastIndex = 0;\n var end = false;\n var val;\n\n while (!end) {\n if (index === -1) {\n index = input.length;\n end = true;\n }\n\n val = input.slice(lastIndex, index).trim();\n\n if (val || !end) {\n values.push(val);\n }\n\n lastIndex = index + 1;\n index = input.indexOf(comma, lastIndex);\n }\n\n return values;\n} // Compile an array to comma-separated tokens.\n// `options.padLeft` (default: `true`) pads a space left of each token, and\n// `options.padRight` (default: `false`) pads a space to the right of each token.\n\n\nfunction stringify(values, options) {\n var settings = options || {};\n var left = settings.padLeft === false ? empty : space;\n var right = settings.padRight ? space : empty; // Ensure the last empty entry is seen.\n\n if (values[values.length - 1] === empty) {\n values = values.concat(empty);\n }\n\n return values.join(right + comma + left).trim();\n}","'use strict';\n\nvar count = require('ccount');\n\nmodule.exports = enclose;\nvar leftParenthesis = '(';\nvar rightParenthesis = ')';\nvar lessThan = '<';\nvar greaterThan = '>';\nvar expression = /\\s/; // Wrap `url` in angle brackets when needed, or when\n// forced.\n// In links, images, and definitions, the URL part needs\n// to be enclosed when it:\n//\n// - has a length of `0`\n// - contains white-space\n// - has more or less opening than closing parentheses\n\nfunction enclose(uri, always) {\n if (always || uri.length === 0 || expression.test(uri) || count(uri, leftParenthesis) !== count(uri, rightParenthesis)) {\n return lessThan + uri + greaterThan;\n }\n\n return uri;\n}","'use strict';\n\nmodule.exports = indentation;\nvar tab = '\\t';\nvar space = ' ';\nvar spaceSize = 1;\nvar tabSize = 4; // 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 === tab || character === space) {\n size = character === tab ? tabSize : spaceSize;\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\nrequire(\"core-js/modules/es6.array.index-of\");\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 link = 'link';\nvar image = 'image';\nvar footnote = 'footnote';\nvar shortcut = 'shortcut';\nvar collapsed = 'collapsed';\nvar full = 'full';\nvar space = ' ';\nvar exclamationMark = '!';\nvar leftSquareBracket = '[';\nvar backslash = '\\\\';\nvar rightSquareBracket = ']';\nvar caret = '^';\n\nfunction reference(eat, value, silent) {\n var self = this;\n var commonmark = self.options.commonmark;\n var footnotes = self.options.footnotes;\n var character = value.charAt(0);\n var index = 0;\n var length = value.length;\n var subvalue = '';\n var intro = '';\n var type = link;\n var referenceType = 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; // Check whether we’re eating an image.\n\n if (character === exclamationMark) {\n type = image;\n intro = character;\n character = value.charAt(++index);\n }\n\n if (character !== leftSquareBracket) {\n return;\n }\n\n index++;\n intro += character;\n queue = ''; // Check whether we’re eating a footnote.\n\n if (footnotes && value.charAt(index) === 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 === image) {\n return;\n }\n\n intro += caret;\n index++;\n type = footnote;\n } // Eat the text.\n\n\n depth = 0;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === leftSquareBracket) {\n bracketed = true;\n depth++;\n } else if (character === rightSquareBracket) {\n if (!depth) {\n break;\n }\n\n depth--;\n }\n\n if (character === backslash) {\n queue += 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 !== rightSquareBracket) {\n return;\n }\n\n index++;\n subvalue += character;\n queue = '';\n\n if (!commonmark) {\n // The original markdown syntax definition explicitly allows for whitespace\n // between the link text and link label; commonmark departs from this, in\n // part to improve support for shortcut reference links\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\n character = value.charAt(index); // Inline footnotes cannot have a label.\n // If footnotes are enabled, link labels cannot start with a caret.\n\n if (type !== footnote && character === leftSquareBracket && (!footnotes || value.charAt(index + 1) !== caret)) {\n identifier = '';\n queue += character;\n index++;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === leftSquareBracket || character === rightSquareBracket) {\n break;\n }\n\n if (character === backslash) {\n identifier += backslash;\n character = value.charAt(++index);\n }\n\n identifier += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (character === rightSquareBracket) {\n referenceType = identifier ? full : 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 } // Brackets cannot be inside the identifier.\n\n\n if (referenceType !== full && bracketed) {\n return;\n }\n\n subvalue = intro + subvalue;\n\n if (type === 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 === footnote && content.indexOf(space) !== -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 === full ? identifier : content;\n node = {\n type: type + 'Reference',\n identifier: normalize(identifier),\n label: identifier\n };\n\n if (type === link || type === image) {\n node.referenceType = referenceType;\n }\n\n if (type === link) {\n exit = self.enterLink();\n node.children = self.tokenizeInline(content, now);\n exit();\n } else if (type === image) {\n node.alt = self.decode.raw(self.unescape(content), now) || null;\n }\n\n return eat(subvalue)(node);\n}","'use strict';\n\nmodule.exports = {\n gfm: true,\n commonmark: false,\n pedantic: false,\n entities: 'false',\n setext: false,\n closeAtx: false,\n looseTable: false,\n spacedTable: true,\n paddedTable: true,\n stringLength: stringLength,\n incrementListMarker: true,\n fences: false,\n fence: '`',\n bullet: '-',\n listItemIndent: 'tab',\n rule: '*',\n ruleSpaces: true,\n ruleRepetition: 3,\n strong: '*',\n emphasis: '_'\n};\n\nfunction stringLength(value) {\n return value.length;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\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 link = 'link';\nvar image = 'image';\nvar footnote = 'footnote';\nvar shortcut = 'shortcut';\nvar collapsed = 'collapsed';\nvar full = 'full';\nvar space = ' ';\nvar exclamationMark = '!';\nvar leftSquareBracket = '[';\nvar backslash = '\\\\';\nvar rightSquareBracket = ']';\nvar caret = '^';\n\nfunction reference(eat, value, silent) {\n var self = this;\n var commonmark = self.options.commonmark;\n var character = value.charAt(0);\n var index = 0;\n var length = value.length;\n var subvalue = '';\n var intro = '';\n var type = link;\n var referenceType = 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; // Check whether we’re eating an image.\n\n if (character === exclamationMark) {\n type = image;\n intro = character;\n character = value.charAt(++index);\n }\n\n if (character !== leftSquareBracket) {\n return;\n }\n\n index++;\n intro += character;\n queue = ''; // Check whether we’re eating a footnote.\n\n if (self.options.footnotes && value.charAt(index) === 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 === image) {\n return;\n }\n\n intro += caret;\n index++;\n type = footnote;\n } // Eat the text.\n\n\n depth = 0;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === leftSquareBracket) {\n bracketed = true;\n depth++;\n } else if (character === rightSquareBracket) {\n if (!depth) {\n break;\n }\n\n depth--;\n }\n\n if (character === backslash) {\n queue += 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 !== rightSquareBracket) {\n return;\n }\n\n index++;\n subvalue += character;\n queue = '';\n\n if (!commonmark) {\n // The original markdown syntax definition explicitly allows for whitespace\n // between the link text and link label; commonmark departs from this, in\n // part to improve support for shortcut reference links\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\n character = value.charAt(index); // Inline footnotes cannot have an identifier.\n\n if (type !== footnote && character === leftSquareBracket) {\n identifier = '';\n queue += character;\n index++;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === leftSquareBracket || character === rightSquareBracket) {\n break;\n }\n\n if (character === backslash) {\n identifier += backslash;\n character = value.charAt(++index);\n }\n\n identifier += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (character === rightSquareBracket) {\n referenceType = identifier ? full : 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 } // Brackets cannot be inside the identifier.\n\n\n if (referenceType !== full && bracketed) {\n return;\n }\n\n subvalue = intro + subvalue;\n\n if (type === 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 === footnote && content.indexOf(space) !== -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 === full ? identifier : content;\n node = {\n type: type + 'Reference',\n identifier: normalize(identifier),\n label: identifier\n };\n\n if (type === link || type === image) {\n node.referenceType = referenceType;\n }\n\n if (type === link) {\n exit = self.enterLink();\n node.children = self.tokenizeInline(content, now);\n exit();\n } else if (type === image) {\n node.alt = self.decode.raw(self.unescape(content), now) || null;\n }\n\n return eat(subvalue)(node);\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nvar encodeCache = {}; // Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\n\nfunction getEncodeCache(exclude) {\n var i,\n ch,\n cache = encodeCache[exclude];\n\n if (cache) {\n return cache;\n }\n\n cache = encodeCache[exclude] = [];\n\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch);\n } else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));\n }\n }\n\n for (i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i];\n }\n\n return cache;\n} // Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n// - string - string to encode\n// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n//\n\n\nfunction encode(string, exclude, keepEscaped) {\n var i,\n l,\n code,\n nextCode,\n cache,\n result = '';\n\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude;\n exclude = encode.defaultChars;\n }\n\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true;\n }\n\n cache = getEncodeCache(exclude);\n\n for (i = 0, l = string.length; i < l; i++) {\n code = string.charCodeAt(i);\n\n if (keepEscaped && code === 0x25\n /* % */\n && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3);\n i += 2;\n continue;\n }\n }\n\n if (code < 128) {\n result += cache[code];\n continue;\n }\n\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n nextCode = string.charCodeAt(i + 1);\n\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1]);\n i++;\n continue;\n }\n }\n\n result += '%EF%BF%BD';\n continue;\n }\n\n result += encodeURIComponent(string[i]);\n }\n\n return result;\n}\n\nencode.defaultChars = \";/?:@&=+$,-_.!~*'()#\";\nencode.componentChars = \"-_.!~*'()\";\nmodule.exports = encode;","'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\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n return value.indexOf('\\\\', fromIndex);\n}","'use strict';\n\nvar caseSensitiveTransform = require('./case-sensitive-transform');\n\nmodule.exports = caseInsensitiveTransform;\n\nfunction caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase());\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, handler);\n\n function handler(content, position, source) {\n eat(source || content)({\n type: 'text',\n value: content\n });\n }\n}","'use strict';\n\nmodule.exports = setextHeading;\nvar lineFeed = '\\n';\nvar tab = '\\t';\nvar space = ' ';\nvar equalsTo = '=';\nvar dash = '-';\nvar maxIndent = 3;\nvar equalsToDepth = 1;\nvar dashDepth = 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; // Eat initial indentation.\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== space || index >= maxIndent) {\n index--;\n break;\n }\n\n subvalue += character;\n } // Eat content.\n\n\n content = '';\n queue = '';\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character === lineFeed) {\n index--;\n break;\n }\n\n if (character === space || character === 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; // Ensure the content is followed by a newline and a valid marker.\n\n character = value.charAt(++index);\n marker = value.charAt(++index);\n\n if (character !== lineFeed || marker !== equalsTo && marker !== dash) {\n return;\n }\n\n subvalue += character; // Eat Setext-line.\n\n queue = marker;\n depth = marker === equalsTo ? equalsToDepth : dashDepth;\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== marker) {\n if (character !== lineFeed) {\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\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = emphasis;\nvar underscore = '_';\nvar asterisk = '*'; // Stringify an `emphasis`.\n//\n// The marker used is configurable through `emphasis`, which defaults to an\n// underscore (`'_'`) but also accepts an asterisk (`'*'`):\n//\n// ```markdown\n// *foo*\n// ```\n//\n// In `pedantic` mode, text which itself contains an underscore will cause the\n// marker to default to an asterisk instead:\n//\n// ```markdown\n// *foo_bar*\n// ```\n\nfunction emphasis(node) {\n var marker = this.options.emphasis;\n var content = this.all(node).join(''); // When in pedantic mode, prevent using underscore as the marker when there\n // are underscores in the content.\n\n if (this.options.pedantic && marker === underscore && content.indexOf(marker) !== -1) {\n marker = asterisk;\n }\n\n return marker + content + marker;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\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 } // Link can never be `-1` if an image is found, so we don’t need to check\n // for that :)\n\n\n return link < image ? link : image;\n}","'use strict';\n\nvar xtend = require('xtend');\n\nvar Schema = require('./schema');\n\nmodule.exports = merge;\n\nfunction merge(definitions) {\n var length = definitions.length;\n var property = [];\n var normal = [];\n var index = -1;\n var info;\n var space;\n\n while (++index < length) {\n info = definitions[index];\n property.push(info.property);\n normal.push(info.normal);\n space = info.space;\n }\n\n return new Schema(xtend.apply(null, property), xtend.apply(null, normal), space);\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nvar xtend = require('xtend');\n\nvar removePosition = require('unist-util-remove-position');\n\nmodule.exports = parse;\nvar lineFeed = '\\n';\nvar lineBreaksExpression = /\\r\\n|\\r/g; // 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; // Clean non-unix newlines: `\\r\\n` and `\\r` are all changed to `\\n`.\n // This should not affect positional information.\n\n value = value.replace(lineBreaksExpression, lineFeed); // BOM.\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}","'use strict';\n\nvar types = require('./util/types');\n\nvar create = require('./util/create');\n\nvar caseSensitiveTransform = require('./util/case-sensitive-transform');\n\nvar _boolean = types[\"boolean\"];\nvar number = types.number;\nvar spaceSeparated = types.spaceSeparated;\nvar commaSeparated = types.commaSeparated;\nvar commaOrSpaceSeparated = types.commaOrSpaceSeparated;\nmodule.exports = create({\n space: 'svg',\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n transform: caseSensitiveTransform,\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: _boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n \"in\": null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null,\n // SEMI_COLON_SEPARATED\n keySplines: null,\n // SEMI_COLON_SEPARATED\n keyTimes: null,\n // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n }\n});"],"sourceRoot":""}