您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
press the [Continue] button instead of 'Add message > type continue > Ctrl+Enter', configure panel optionally saves 'Temperature', 'Maximum Length' and 'Instructions'
当前为
// ==UserScript== // @name OpenAI Playground (ChatGPT) - Continue Button // @namespace https://gf.zukizuki.org/en/users/10118-drhouse // @version 2.2 // @description press the [Continue] button instead of 'Add message > type continue > Ctrl+Enter', configure panel optionally saves 'Temperature', 'Maximum Length' and 'Instructions' // @include https://platform.openai.com/playground* // @match https://platform.openai.com/playground* // @require https://code.jquery.com/jquery-3.7.0.min.js // @require https://gf.zukizuki.org/scripts/439099-monkeyconfig-modern-reloaded/code/MonkeyConfig%20Modern%20Reloaded.js?version=1012538 // @grant GM_getValue // @grant GM_setValue // @grant GM_addStyle // @grant GM_setClipboard // @grant GM_registerMenuCommand // @author drhouse // @license CC-BY-NC-SA-4.0 // @icon https://www.google.com/s2/favicons?sz=64&domain=openai.com // ==/UserScript== /* global jQuery, $ */ this.$ = this.jQuery = jQuery.noConflict(true); (function($){ !function () { function t(e) { "use strict"; var a = { omitExtraWLInCodeBlocks: { defaultValue: !1, describe: "Omit the default extra whiteline added to code blocks", type: "boolean" }, noHeaderId: { defaultValue: !1, describe: "Turn on/off generated header id", type: "boolean" }, prefixHeaderId: { defaultValue: !1, describe: "Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic 'section-' prefix", type: "string" }, rawPrefixHeaderId: { defaultValue: !1, describe: 'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the " char is used in the prefix)', type: "boolean", }, ghCompatibleHeaderId: { defaultValue: !1, describe: "Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)", type: "boolean" }, rawHeaderId: { defaultValue: !1, describe: "Remove only spaces, ' and \" from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids", type: "boolean" }, headerLevelStart: { defaultValue: !1, describe: "The header blocks level start", type: "integer" }, parseImgDimensions: { defaultValue: !1, describe: "Turn on/off image dimension parsing", type: "boolean" }, simplifiedAutoLink: { defaultValue: !1, describe: "Turn on/off GFM autolink style", type: "boolean" }, literalMidWordUnderscores: { defaultValue: !1, describe: "Parse midword underscores as literal underscores", type: "boolean" }, literalMidWordAsterisks: { defaultValue: !1, describe: "Parse midword asterisks as literal asterisks", type: "boolean" }, strikethrough: { defaultValue: !1, describe: "Turn on/off strikethrough support", type: "boolean" }, tables: { defaultValue: !1, describe: "Turn on/off tables support", type: "boolean" }, tablesHeaderId: { defaultValue: !1, describe: "Add an id to table headers", type: "boolean" }, ghCodeBlocks: { defaultValue: !0, describe: "Turn on/off GFM fenced code blocks support", type: "boolean" }, tasklists: { defaultValue: !1, describe: "Turn on/off GFM tasklist support", type: "boolean" }, smoothLivePreview: { defaultValue: !1, describe: "Prevents weird effects in live previews due to incomplete input", type: "boolean" }, smartIndentationFix: { defaultValue: !1, describe: "Tries to smartly fix indentation in es6 strings", type: "boolean" }, disableForced4SpacesIndentedSublists: { defaultValue: !1, describe: "Disables the requirement of indenting nested sublists by 4 spaces", type: "boolean" }, simpleLineBreaks: { defaultValue: !1, describe: "Parses simple line breaks as <br> (GFM Style)", type: "boolean" }, requireSpaceBeforeHeadingText: { defaultValue: !1, describe: "Makes adding a space between `#` and the header text mandatory (GFM Style)", type: "boolean" }, ghMentions: { defaultValue: !1, describe: "Enables github @mentions", type: "boolean" }, ghMentionsLink: { defaultValue: "https://github.com/{u}", describe: "Changes the link generated by @mentions. Only applies if ghMentions option is enabled.", type: "string" }, encodeEmails: { defaultValue: !0, describe: "Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities", type: "boolean" }, openLinksInNewWindow: { defaultValue: !1, describe: "Open all links in new windows", type: "boolean" }, backslashEscapesHTMLTags: { defaultValue: !1, describe: "Support for HTML Tag escaping. ex: <div>foo</div>", type: "boolean" }, emoji: { defaultValue: !1, describe: "Enable emoji support. Ex: `this is a :smile: emoji`", type: "boolean" }, underline: { defaultValue: !1, describe: "Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `<em>` and `<strong>`", type: "boolean", }, ellipsis: { defaultValue: !0, describe: "Replaces three dots with the ellipsis unicode character", type: "boolean" }, completeHTMLDocument: { defaultValue: !1, describe: "Outputs a complete html document, including `<html>`, `<head>` and `<body>` tags", type: "boolean" }, metadata: { defaultValue: !1, describe: "Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).", type: "boolean" }, splitAdjacentBlockquotes: { defaultValue: !1, describe: "Split adjacent blockquote blocks", type: "boolean" }, moreStyling: { defaultValue: !1, describe: "Adds some useful styling css classes in the generated html", type: "boolean" }, relativePathBaseUrl: { defaultValue: !1, describe: "Prepends a base URL to relative paths", type: "string" }, }; if (!1 === e) return JSON.parse(JSON.stringify(a)); var r, t = {}; for (r in a) a.hasOwnProperty(r) && (t[r] = a[r].defaultValue); return t; } var e, P = {}, r = {}, h = {}, m = t(!0), d = "vanilla", g = { github: { omitExtraWLInCodeBlocks: !0, simplifiedAutoLink: !0, literalMidWordUnderscores: !0, strikethrough: !0, tables: !0, tablesHeaderId: !0, ghCodeBlocks: !0, tasklists: !0, disableForced4SpacesIndentedSublists: !0, simpleLineBreaks: !0, requireSpaceBeforeHeadingText: !0, ghCompatibleHeaderId: !0, ghMentions: !0, backslashEscapesHTMLTags: !0, emoji: !0, splitAdjacentBlockquotes: !0, }, original: { noHeaderId: !0, ghCodeBlocks: !1 }, ghost: { omitExtraWLInCodeBlocks: !0, parseImgDimensions: !0, simplifiedAutoLink: !0, literalMidWordUnderscores: !0, strikethrough: !0, tables: !0, tablesHeaderId: !0, ghCodeBlocks: !0, tasklists: !0, smoothLivePreview: !0, simpleLineBreaks: !0, requireSpaceBeforeHeadingText: !0, ghMentions: !1, encodeEmails: !0, }, vanilla: t(!0), allOn: (function () { "use strict"; var e, a = t(!0), r = {}; for (e in a) a.hasOwnProperty(e) && (r[e] = !0); return r; })(), }; function p(e, a) { "use strict"; var r = a ? "Error in " + a + " extension->" : "Error in unnamed extension", t = { valid: !0, error: "" }; P.helper.isArray(e) || (e = [e]); for (var n = 0; n < e.length; ++n) { var s = r + " sub-extension " + n + ": ", i = e[n]; if ("object" != typeof i) return (t.valid = !1), (t.error = s + "must be an object, but " + typeof i + " given"), t; if (!P.helper.isString(i.type)) return (t.valid = !1), (t.error = s + 'property "type" must be a string, but ' + typeof i.type + " given"), t; var o = (i.type = i.type.toLowerCase()); if ("lang" !== (o = "html" === (o = "language" === o ? (i.type = "lang") : o) ? (i.type = "output") : o) && "output" !== o && "listener" !== o) return (t.valid = !1), (t.error = s + "type " + o + ' is not recognized. Valid values: "lang/language", "output/html" or "listener"'), t; if ("listener" === o) { if (P.helper.isUndefined(i.listeners)) return (t.valid = !1), (t.error = s + '. Extensions of type "listener" must have a property called "listeners"'), t; } else if (P.helper.isUndefined(i.filter) && P.helper.isUndefined(i.regex)) return (t.valid = !1), (t.error = s + o + ' extensions must define either a "regex" property or a "filter" method'), t; if (i.listeners) { if ("object" != typeof i.listeners) return (t.valid = !1), (t.error = s + '"listeners" property must be an object but ' + typeof i.listeners + " given"), t; for (var l in i.listeners) if (i.listeners.hasOwnProperty(l) && "function" != typeof i.listeners[l]) return (t.valid = !1), (t.error = s + '"listeners" property must be an hash of [event name]: [callback]. listeners.' + l + " must be a function but " + typeof i.listeners[l] + " given"), t; } if (i.filter) { if ("function" != typeof i.filter) return (t.valid = !1), (t.error = s + '"filter" must be a function, but ' + typeof i.filter + " given"), t; } else if (i.regex) { if ((P.helper.isString(i.regex) && (i.regex = new RegExp(i.regex, "g")), !(i.regex instanceof RegExp))) return (t.valid = !1), (t.error = s + '"regex" property must either be a string or a RegExp object, but ' + typeof i.regex + " given"), t; if (P.helper.isUndefined(i.replace)) return (t.valid = !1), (t.error = s + '"regex" extensions must implement a replace string or function'), t; } } return t; } function n(e, a) { "use strict"; return "¨E" + a.charCodeAt(0) + "E"; } (P.helper = {}), (P.extensions = {}), (P.setOption = function (e, a) { "use strict"; return (m[e] = a), this; }), (P.getOption = function (e) { "use strict"; return m[e]; }), (P.getOptions = function () { "use strict"; return m; }), (P.resetOptions = function () { "use strict"; m = t(!0); }), (P.setFlavor = function (e) { "use strict"; if (!g.hasOwnProperty(e)) throw Error(e + " flavor was not found"); P.resetOptions(); var a, r = g[e]; for (a in ((d = e), r)) r.hasOwnProperty(a) && (m[a] = r[a]); }), (P.getFlavor = function () { "use strict"; return d; }), (P.getFlavorOptions = function (e) { "use strict"; if (g.hasOwnProperty(e)) return g[e]; }), (P.getDefaultOptions = t), (P.subParser = function (e, a) { "use strict"; if (!P.helper.isString(e)) throw Error("showdown.subParser function first argument must be a string (the name of the subparser)"); if (void 0 === a) { if (r.hasOwnProperty(e)) return r[e]; throw Error("SubParser named " + e + " not registered!"); } r[e] = a; }), (P.extension = function (e, a) { "use strict"; if (!P.helper.isString(e)) throw Error("Extension 'name' must be a string"); if (((e = P.helper.stdExtName(e)), P.helper.isUndefined(a))) { if (h.hasOwnProperty(e)) return h[e]; throw Error("Extension named " + e + " is not registered!"); } "function" == typeof a && (a = a()); var r = p((a = P.helper.isArray(a) ? a : [a]), e); if (!r.valid) throw Error(r.error); h[e] = a; }), (P.getAllExtensions = function () { "use strict"; return h; }), (P.removeExtension = function (e) { "use strict"; delete h[e]; }), (P.resetExtensions = function () { "use strict"; h = {}; }), (P.validateExtension = function (e) { "use strict"; e = p(e, null); return !!e.valid || (console.warn(e.error), !1); }), P.hasOwnProperty("helper") || (P.helper = {}), void 0 === this && "undefined" != typeof window ? (P.helper.document = window.document) : (void 0 === this.document && void 0 === this.window && ((e = require("jsdom")), (this.window = new e.JSDOM("", {}).window)), (P.helper.document = this.window.document)), (P.helper.isString = function (e) { "use strict"; return "string" == typeof e || e instanceof String; }), (P.helper.isFunction = function (e) { "use strict"; return e && "[object Function]" === {}.toString.call(e); }), (P.helper.isArray = function (e) { "use strict"; return Array.isArray(e); }), (P.helper.isUndefined = function (e) { "use strict"; return void 0 === e; }), (P.helper.forEach = function (e, a) { "use strict"; if (P.helper.isUndefined(e)) throw new Error("obj param is required"); if (P.helper.isUndefined(a)) throw new Error("callback param is required"); if (!P.helper.isFunction(a)) throw new Error("callback param must be a function/closure"); if ("function" == typeof e.forEach) e.forEach(a); else if (P.helper.isArray(e)) for (var r = 0; r < e.length; r++) a(e[r], r, e); else { if ("object" != typeof e) throw new Error("obj does not seem to be an array or an iterable object"); for (var t in e) e.hasOwnProperty(t) && a(e[t], t, e); } }), (P.helper.stdExtName = function (e) { "use strict"; return e .replace(/[_?*+\/\\.^-]/g, "") .replace(/\s/g, "") .toLowerCase(); }), (P.helper.escapeCharactersCallback = n), (P.helper.escapeCharacters = function (e, a, r) { "use strict"; (a = "([" + a.replace(/([\[\]\\])/g, "\\$1") + "])"), r && (a = "\\\\" + a), (r = new RegExp(a, "g")); return (e = e.replace(r, n)); }); function u(e, a, r, t) { "use strict"; var n, s, i, o = -1 < (t = t || "").indexOf("g"), l = new RegExp(a + "|" + r, "g" + t.replace(/g/g, "")), c = new RegExp(a, t.replace(/g/g, "")), u = []; do { for (n = 0; (m = l.exec(e)); ) if (c.test(m[0])) n++ || (i = (s = l.lastIndex) - m[0].length); else if (n && !--n) { var h = m.index + m[0].length, m = { left: { start: i, end: s }, match: { start: s, end: m.index }, right: { start: m.index, end: h }, wholeMatch: { start: i, end: h } }; if ((u.push(m), !o)) return u; } } while (n && (l.lastIndex = s)); return u; } var s; function i(o, l, c, u, h) { return ( (h = !!h), function (e, a, r, t, n, s, i) { return /\n\n/.test(e) ? e : b(_(o, l + ".captureStart", e, a, r, t, i, c, u), c, u, h); } ); } function l(o, l, c, u, h) { return function (e, a, r, t, n, s, i) { return (t = P.helper.applyBaseUrl(c.relativePathBaseUrl, t)), b(_(o, l + ".captureStart", e, a, r, t, i, c, u), c, u, h); }; } function _(e, a, r, t, n, s, i, o, l) { return l.converter._dispatch(a, r, o, l, { regexp: e, matches: { wholeMatch: r, text: t, id: n, url: s, title: i } }); } function b(e, a, r, t) { var n = e.getMatches().wholeMatch, s = e.getMatches().text, i = e.getMatches().id, o = e.getMatches().url, l = "", e = (e = e.getMatches().title) || "", i = i ? i.toLowerCase() : ""; if (t) o = ""; else if (!o) { if (((o = "#" + (i = i || s.toLowerCase().replace(/ ?\n/g, " "))), P.helper.isUndefined(r.gUrls[i]))) return n; (o = r.gUrls[i]), P.helper.isUndefined(r.gTitles[i]) || (e = r.gTitles[i]); } (o = o.replace(P.helper.regexes.asteriskDashTildeAndColon, P.helper.escapeCharactersCallback)), "" !== e && null !== e && (e = ' title="' + (e = (e = e.replace(/"/g, """)).replace(P.helper.regexes.asteriskDashTildeAndColon, P.helper.escapeCharactersCallback)) + '"'), a.openLinksInNewWindow && !/^#/.test(o) && (l = ' rel="noopener noreferrer" target="¨E95Eblank"'), (s = P.subParser("makehtml.codeSpans")(s, a, r)), (s = P.subParser("makehtml.emoji")(s, a, r)), (s = P.subParser("makehtml.underline")(s, a, r)), (s = P.subParser("makehtml.italicsAndBold")(s, a, r)), (s = P.subParser("makehtml.strikethrough")(s, a, r)), (s = P.subParser("makehtml.ellipsis")(s, a, r)); t = '<a href="' + o + '"' + e + l + ">" + (s = P.subParser("makehtml.hashHTMLSpans")(s, a, r)) + "</a>"; return P.subParser("makehtml.hashHTMLSpans")(t, a, r); } (P.helper.matchRecursiveRegExp = function (e, a, r, t) { "use strict"; for (var n = u(e, a, r, t), s = [], i = 0; i < n.length; ++i) s.push([e.slice(n[i].wholeMatch.start, n[i].wholeMatch.end), e.slice(n[i].match.start, n[i].match.end), e.slice(n[i].left.start, n[i].left.end), e.slice(n[i].right.start, n[i].right.end)]); return s; }), (P.helper.replaceRecursiveRegExp = function (e, a, r, t, n) { "use strict"; P.helper.isFunction(a) || ((s = a), (a = function () { return s; })); var s, i = u(e, r, t, n), r = e, o = i.length; if (0 < o) { var l = []; 0 !== i[0].wholeMatch.start && l.push(e.slice(0, i[0].wholeMatch.start)); for (var c = 0; c < o; ++c) l.push(a(e.slice(i[c].wholeMatch.start, i[c].wholeMatch.end), e.slice(i[c].match.start, i[c].match.end), e.slice(i[c].left.start, i[c].left.end), e.slice(i[c].right.start, i[c].right.end))), c < o - 1 && l.push(e.slice(i[c].wholeMatch.end, i[c + 1].wholeMatch.start)); i[o - 1].wholeMatch.end < e.length && l.push(e.slice(i[o - 1].wholeMatch.end)), (r = l.join("")); } return r; }), (P.helper.regexIndexOf = function (e, a, r) { "use strict"; if (!P.helper.isString(e)) throw "InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string"; if (!(a instanceof RegExp)) throw "InvalidArgumentError: second parameter of showdown.helper.regexIndexOf function must be an instance of RegExp"; e = e.substring(r || 0).search(a); return 0 <= e ? e + (r || 0) : e; }), (P.helper.splitAtIndex = function (e, a) { "use strict"; if (P.helper.isString(e)) return [e.substring(0, a), e.substring(a)]; throw "InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string"; }), (P.helper.encodeEmailAddress = function (e) { "use strict"; var r = [ function (e) { return "&#" + e.charCodeAt(0) + ";"; }, function (e) { return "&#x" + e.charCodeAt(0).toString(16) + ";"; }, function (e) { return e; }, ]; return (e = e.replace(/./g, function (e) { var a; return (e = "@" === e ? r[Math.floor(2 * Math.random())](e) : 0.9 < (a = Math.random()) ? r[2](e) : 0.45 < a ? r[1](e) : r[0](e)); })); }), (P.helper.repeat = function (e, a) { "use strict"; if (!P.helper.isUndefined(String.prototype.repeat)) return e.repeat(a); if (((e = "" + e), a < 0)) throw new RangeError("repeat count must be non-negative"); if (a === 1 / 0) throw new RangeError("repeat count must be less than infinity"); if (((a = Math.floor(a)), 0 === e.length || 0 === a)) return ""; if (e.length * a >= 1 << 28) throw new RangeError("repeat count must not overflow maximum string size"); var r = e.length * a; for (a = Math.floor(Math.log(a) / Math.log(2)); a; ) (e += e), a--; return (e += e.substring(0, r - e.length)); }), (P.helper.padEnd = function (e, a, r) { "use strict"; return (a >>= 0), (r = String(r || " ")), e.length > a ? String(e) : ((a -= e.length) > r.length && (r += P.helper.repeat(r, a / r.length)), String(e) + r.slice(0, a)); }), (P.helper.unescapeHTMLEntities = function (e) { "use strict"; return e .replace(/"/g, '"') .replace(/</g, "<") .replace(/>/g, ">") .replace(/&/g, "&"); }), (P.helper._hashHTMLSpan = function (e, a) { return "¨C" + (a.gHtmlSpans.push(e) - 1) + "C"; }), (P.helper.applyBaseUrl = function (e, a) { return (a = e && !this.isAbsolutePath(a) ? (0, require("url").resolve)(e, a) : a); }), (P.helper.isAbsolutePath = function (e) { return /(^([a-z]+:)?\/\/)|(^#)/i.test(e); }), (P.helper.Event = function (e, a, r) { "use strict"; var t = r.regexp || null, n = r.matches || {}, s = r.options || {}, i = r.converter || null, o = r.globals || {}; (this.getName = function () { return e; }), (this.getEventName = function () { return e; }), (this._stopExecution = !1), (this.parsedText = r.parsedText || null), (this.getRegexp = function () { return t; }), (this.getOptions = function () { return s; }), (this.getConverter = function () { return i; }), (this.getGlobals = function () { return o; }), (this.getCapturedText = function () { return a; }), (this.getText = function () { return a; }), (this.setText = function (e) { a = e; }), (this.getMatches = function () { return n; }), (this.setMatches = function (e) { n = e; }), (this.preventDefault = function (e) { this._stopExecution = !e; }); }), "undefined" == typeof console && (console = { warn: function (e) { "use strict"; alert(e); }, log: function (e) { "use strict"; alert(e); }, error: function (e) { "use strict"; throw e; }, }), (P.helper.regexes = { asteriskDashTildeAndColon: /([*_:~])/g, asteriskDashAndTilde: /([*_~])/g }), (P.helper.emojis = { 100: "💯", 1234: "🔢", "+1": "👍", "-1": "👎", "1st_place_medal": "🥇", "2nd_place_medal": "🥈", "3rd_place_medal": "🥉", "8ball": "🎱", a: "🅰️", ab: "🆎", abacus: "🧮", abc: "🔤", abcd: "🔡", accept: "🉑", adhesive_bandage: "🩹", adult: "🧑", aerial_tramway: "🚡", afghanistan: "🇦🇫", airplane: "✈️", aland_islands: "🇦🇽", alarm_clock: "⏰", albania: "🇦🇱", alembic: "⚗️", algeria: "🇩🇿", alien: "👽", ambulance: "🚑", american_samoa: "🇦🇸", amphora: "🏺", anchor: "⚓", andorra: "🇦🇩", angel: "👼", anger: "💢", angola: "🇦🇴", angry: "😠", anguilla: "🇦🇮", anguished: "😧", ant: "🐜", antarctica: "🇦🇶", antigua_barbuda: "🇦🇬", apple: "🍎", aquarius: "♒", argentina: "🇦🇷", aries: "♈", armenia: "🇦🇲", arrow_backward: "◀️", arrow_double_down: "⏬", arrow_double_up: "⏫", arrow_down: "⬇️", arrow_down_small: "🔽", arrow_forward: "▶️", arrow_heading_down: "⤵️", arrow_heading_up: "⤴️", arrow_left: "⬅️", arrow_lower_left: "↙️", arrow_lower_right: "↘️", arrow_right: "➡️", arrow_right_hook: "↪️", arrow_up: "⬆️", arrow_up_down: "↕️", arrow_up_small: "🔼", arrow_upper_left: "↖️", arrow_upper_right: "↗️", arrows_clockwise: "🔃", arrows_counterclockwise: "🔄", art: "🎨", articulated_lorry: "🚛", artificial_satellite: "🛰️", artist: "🧑🎨", aruba: "🇦🇼", ascension_island: "🇦🇨", asterisk: "*️⃣", astonished: "😲", astronaut: "🧑🚀", athletic_shoe: "👟", atm: "🏧", atom_symbol: "⚛️", australia: "🇦🇺", austria: "🇦🇹", auto_rickshaw: "🛺", avocado: "🥑", axe: "🪓", azerbaijan: "🇦🇿", b: "🅱️", baby: "👶", baby_bottle: "🍼", baby_chick: "🐤", baby_symbol: "🚼", back: "🔙", bacon: "🥓", badger: "🦡", badminton: "🏸", bagel: "🥯", baggage_claim: "🛄", baguette_bread: "🥖", bahamas: "🇧🇸", bahrain: "🇧🇭", balance_scale: "⚖️", bald_man: "👨🦲", bald_woman: "👩🦲", ballet_shoes: "🩰", balloon: "🎈", ballot_box: "🗳️", ballot_box_with_check: "☑️", bamboo: "🎍", banana: "🍌", bangbang: "‼️", bangladesh: "🇧🇩", banjo: "🪕", bank: "🏦", bar_chart: "📊", barbados: "🇧🇧", barber: "💈", baseball: "⚾", basket: "🧺", basketball: "🏀", basketball_man: "⛹️♂️", basketball_woman: "⛹️♀️", bat: "🦇", bath: "🛀", bathtub: "🛁", battery: "🔋", beach_umbrella: "🏖️", bear: "🐻", bearded_person: "🧔", bed: "🛏️", bee: "🐝", beer: "🍺", beers: "🍻", beetle: "🐞", beginner: "🔰", belarus: "🇧🇾", belgium: "🇧🇪", belize: "🇧🇿", bell: "🔔", bellhop_bell: "🛎️", benin: "🇧🇯", bento: "🍱", bermuda: "🇧🇲", beverage_box: "🧃", bhutan: "🇧🇹", bicyclist: "🚴", bike: "🚲", biking_man: "🚴♂️", biking_woman: "🚴♀️", bikini: "👙", billed_cap: "🧢", biohazard: "☣️", bird: "🐦", birthday: "🎂", black_circle: "⚫", black_flag: "🏴", black_heart: "🖤", black_joker: "🃏", black_large_square: "⬛", black_medium_small_square: "◾", black_medium_square: "◼️", black_nib: "✒️", black_small_square: "▪️", black_square_button: "🔲", blond_haired_man: "👱♂️", blond_haired_person: "👱", blond_haired_woman: "👱♀️", blonde_woman: "👱♀️", blossom: "🌼", blowfish: "🐡", blue_book: "📘", blue_car: "🚙", blue_heart: "💙", blue_square: "🟦", blush: "😊", boar: "🐗", boat: "⛵", bolivia: "🇧🇴", bomb: "💣", bone: "🦴", book: "📖", bookmark: "🔖", bookmark_tabs: "📑", books: "📚", boom: "💥", boot: "👢", bosnia_herzegovina: "🇧🇦", botswana: "🇧🇼", bouncing_ball_man: "⛹️♂️", bouncing_ball_person: "⛹️", bouncing_ball_woman: "⛹️♀️", bouquet: "💐", bouvet_island: "🇧🇻", bow: "🙇", bow_and_arrow: "🏹", bowing_man: "🙇♂️", bowing_woman: "🙇♀️", bowl_with_spoon: "🥣", bowling: "🎳", boxing_glove: "🥊", boy: "👦", brain: "🧠", brazil: "🇧🇷", bread: "🍞", breast_feeding: "🤱", bricks: "🧱", bride_with_veil: "👰", bridge_at_night: "🌉", briefcase: "💼", british_indian_ocean_territory: "🇮🇴", british_virgin_islands: "🇻🇬", broccoli: "🥦", broken_heart: "💔", broom: "🧹", brown_circle: "🟤", brown_heart: "🤎", brown_square: "🟫", brunei: "🇧🇳", bug: "🐛", building_construction: "🏗️", bulb: "💡", bulgaria: "🇧🇬", bullettrain_front: "🚅", bullettrain_side: "🚄", burkina_faso: "🇧🇫", burrito: "🌯", burundi: "🇧🇮", bus: "🚌", business_suit_levitating: "🕴️", busstop: "🚏", bust_in_silhouette: "👤", busts_in_silhouette: "👥", butter: "🧈", butterfly: "🦋", cactus: "🌵", cake: "🍰", calendar: "📆", call_me_hand: "🤙", calling: "📲", cambodia: "🇰🇭", camel: "🐫", camera: "📷", camera_flash: "📸", cameroon: "🇨🇲", camping: "🏕️", canada: "🇨🇦", canary_islands: "🇮🇨", cancer: "♋", candle: "🕯️", candy: "🍬", canned_food: "🥫", canoe: "🛶", cape_verde: "🇨🇻", capital_abcd: "🔠", capricorn: "♑", car: "🚗", card_file_box: "🗃️", card_index: "📇", card_index_dividers: "🗂️", caribbean_netherlands: "🇧🇶", carousel_horse: "🎠", carrot: "🥕", cartwheeling: "🤸", cat: "🐱", cat2: "🐈", cayman_islands: "🇰🇾", cd: "💿", central_african_republic: "🇨🇫", ceuta_melilla: "🇪🇦", chad: "🇹🇩", chains: "⛓️", chair: "🪑", champagne: "🍾", chart: "💹", chart_with_downwards_trend: "📉", chart_with_upwards_trend: "📈", checkered_flag: "🏁", cheese: "🧀", cherries: "🍒", cherry_blossom: "🌸", chess_pawn: "♟️", chestnut: "🌰", chicken: "🐔", child: "🧒", children_crossing: "🚸", chile: "🇨🇱", chipmunk: "🐿️", chocolate_bar: "🍫", chopsticks: "🥢", christmas_island: "🇨🇽", christmas_tree: "🎄", church: "⛪", cinema: "🎦", circus_tent: "🎪", city_sunrise: "🌇", city_sunset: "🌆", cityscape: "🏙️", cl: "🆑", clamp: "🗜️", clap: "👏", clapper: "🎬", classical_building: "🏛️", climbing: "🧗", climbing_man: "🧗♂️", climbing_woman: "🧗♀️", clinking_glasses: "🥂", clipboard: "📋", clipperton_island: "🇨🇵", clock1: "🕐", clock10: "🕙", clock1030: "🕥", clock11: "🕚", clock1130: "🕦", clock12: "🕛", clock1230: "🕧", clock130: "🕜", clock2: "🕑", clock230: "🕝", clock3: "🕒", clock330: "🕞", clock4: "🕓", clock430: "🕟", clock5: "🕔", clock530: "🕠", clock6: "🕕", clock630: "🕡", clock7: "🕖", clock730: "🕢", clock8: "🕗", clock830: "🕣", clock9: "🕘", clock930: "🕤", closed_book: "📕", closed_lock_with_key: "🔐", closed_umbrella: "🌂", cloud: "☁️", cloud_with_lightning: "🌩️", cloud_with_lightning_and_rain: "⛈️", cloud_with_rain: "🌧️", cloud_with_snow: "🌨️", clown_face: "🤡", clubs: "♣️", cn: "🇨🇳", coat: "🧥", cocktail: "🍸", coconut: "🥥", cocos_islands: "🇨🇨", coffee: "☕", coffin: "⚰️", cold_face: "🥶", cold_sweat: "😰", collision: "💥", colombia: "🇨🇴", comet: "☄️", comoros: "🇰🇲", compass: "🧭", computer: "💻", computer_mouse: "🖱️", confetti_ball: "🎊", confounded: "😖", confused: "😕", congo_brazzaville: "🇨🇬", congo_kinshasa: "🇨🇩", congratulations: "㊗️", construction: "🚧", construction_worker: "👷", construction_worker_man: "👷♂️", construction_worker_woman: "👷♀️", control_knobs: "🎛️", convenience_store: "🏪", cook: "🧑🍳", cook_islands: "🇨🇰", cookie: "🍪", cool: "🆒", cop: "👮", copyright: "©️", corn: "🌽", costa_rica: "🇨🇷", cote_divoire: "🇨🇮", couch_and_lamp: "🛋️", couple: "👫", couple_with_heart: "💑", couple_with_heart_man_man: "👨❤️👨", couple_with_heart_woman_man: "👩❤️👨", couple_with_heart_woman_woman: "👩❤️👩", couplekiss: "💏", couplekiss_man_man: "👨❤️💋👨", couplekiss_man_woman: "👩❤️💋👨", couplekiss_woman_woman: "👩❤️💋👩", cow: "🐮", cow2: "🐄", cowboy_hat_face: "🤠", crab: "🦀", crayon: "🖍️", credit_card: "💳", crescent_moon: "🌙", cricket: "🦗", cricket_game: "🏏", croatia: "🇭🇷", crocodile: "🐊", croissant: "🥐", crossed_fingers: "🤞", crossed_flags: "🎌", crossed_swords: "⚔️", crown: "👑", cry: "😢", crying_cat_face: "😿", crystal_ball: "🔮", cuba: "🇨🇺", cucumber: "🥒", cup_with_straw: "🥤", cupcake: "🧁", cupid: "💘", curacao: "🇨🇼", curling_stone: "🥌", curly_haired_man: "👨🦱", curly_haired_woman: "👩🦱", curly_loop: "➰", currency_exchange: "💱", curry: "🍛", cursing_face: "🤬", custard: "🍮", customs: "🛃", cut_of_meat: "🥩", cyclone: "🌀", cyprus: "🇨🇾", czech_republic: "🇨🇿", dagger: "🗡️", dancer: "💃", dancers: "👯", dancing_men: "👯♂️", dancing_women: "👯♀️", dango: "🍡", dark_sunglasses: "🕶️", dart: "🎯", dash: "💨", date: "📅", de: "🇩🇪", deaf_man: "🧏♂️", deaf_person: "🧏", deaf_woman: "🧏♀️", deciduous_tree: "🌳", deer: "🦌", denmark: "🇩🇰", department_store: "🏬", derelict_house: "🏚️", desert: "🏜️", desert_island: "🏝️", desktop_computer: "🖥️", detective: "🕵️", diamond_shape_with_a_dot_inside: "💠", diamonds: "♦️", diego_garcia: "🇩🇬", disappointed: "😞", disappointed_relieved: "😥", diving_mask: "🤿", diya_lamp: "🪔", dizzy: "💫", dizzy_face: "😵", djibouti: "🇩🇯", dna: "🧬", do_not_litter: "🚯", dog: "🐶", dog2: "🐕", dollar: "💵", dolls: "🎎", dolphin: "🐬", dominica: "🇩🇲", dominican_republic: "🇩🇴", door: "🚪", doughnut: "🍩", dove: "🕊️", dragon: "🐉", dragon_face: "🐲", dress: "👗", dromedary_camel: "🐪", drooling_face: "🤤", drop_of_blood: "🩸", droplet: "💧", drum: "🥁", duck: "🦆", dumpling: "🥟", dvd: "📀", "e-mail": "📧", eagle: "🦅", ear: "👂", ear_of_rice: "🌾", ear_with_hearing_aid: "🦻", earth_africa: "🌍", earth_americas: "🌎", earth_asia: "🌏", ecuador: "🇪🇨", egg: "🥚", eggplant: "🍆", egypt: "🇪🇬", eight: "8️⃣", eight_pointed_black_star: "✴️", eight_spoked_asterisk: "✳️", eject_button: "⏏️", el_salvador: "🇸🇻", electric_plug: "🔌", elephant: "🐘", elf: "🧝", elf_man: "🧝♂️", elf_woman: "🧝♀️", email: "✉️", end: "🔚", england: "🏴", envelope: "✉️", envelope_with_arrow: "📩", equatorial_guinea: "🇬🇶", eritrea: "🇪🇷", es: "🇪🇸", estonia: "🇪🇪", ethiopia: "🇪🇹", eu: "🇪🇺", euro: "💶", european_castle: "🏰", european_post_office: "🏤", european_union: "🇪🇺", evergreen_tree: "🌲", exclamation: "❗", exploding_head: "🤯", expressionless: "😑", eye: "👁️", eye_speech_bubble: "👁️🗨️", eyeglasses: "👓", eyes: "👀", face_with_head_bandage: "🤕", face_with_thermometer: "🤒", facepalm: "🤦", facepunch: "👊", factory: "🏭", factory_worker: "🧑🏭", fairy: "🧚", fairy_man: "🧚♂️", fairy_woman: "🧚♀️", falafel: "🧆", falkland_islands: "🇫🇰", fallen_leaf: "🍂", family: "👪", family_man_boy: "👨👦", family_man_boy_boy: "👨👦👦", family_man_girl: "👨👧", family_man_girl_boy: "👨👧👦", family_man_girl_girl: "👨👧👧", family_man_man_boy: "👨👨👦", family_man_man_boy_boy: "👨👨👦👦", family_man_man_girl: "👨👨👧", family_man_man_girl_boy: "👨👨👧👦", family_man_man_girl_girl: "👨👨👧👧", family_man_woman_boy: "👨👩👦", family_man_woman_boy_boy: "👨👩👦👦", family_man_woman_girl: "👨👩👧", family_man_woman_girl_boy: "👨👩👧👦", family_man_woman_girl_girl: "👨👩👧👧", family_woman_boy: "👩👦", family_woman_boy_boy: "👩👦👦", family_woman_girl: "👩👧", family_woman_girl_boy: "👩👧👦", family_woman_girl_girl: "👩👧👧", family_woman_woman_boy: "👩👩👦", family_woman_woman_boy_boy: "👩👩👦👦", family_woman_woman_girl: "👩👩👧", family_woman_woman_girl_boy: "👩👩👧👦", family_woman_woman_girl_girl: "👩👩👧👧", farmer: "🧑🌾", faroe_islands: "🇫🇴", fast_forward: "⏩", fax: "📠", fearful: "😨", feet: "🐾", female_detective: "🕵️♀️", female_sign: "♀️", ferris_wheel: "🎡", ferry: "⛴️", field_hockey: "🏑", fiji: "🇫🇯", file_cabinet: "🗄️", file_folder: "📁", film_projector: "📽️", film_strip: "🎞️", finland: "🇫🇮", fire: "🔥", fire_engine: "🚒", fire_extinguisher: "🧯", firecracker: "🧨", firefighter: "🧑🚒", fireworks: "🎆", first_quarter_moon: "🌓", first_quarter_moon_with_face: "🌛", fish: "🐟", fish_cake: "🍥", fishing_pole_and_fish: "🎣", fist: "✊", fist_left: "🤛", fist_oncoming: "👊", fist_raised: "✊", fist_right: "🤜", five: "5️⃣", flags: "🎏", flamingo: "🦩", flashlight: "🔦", flat_shoe: "🥿", fleur_de_lis: "⚜️", flight_arrival: "🛬", flight_departure: "🛫", flipper: "🐬", floppy_disk: "💾", flower_playing_cards: "🎴", flushed: "😳", flying_disc: "🥏", flying_saucer: "🛸", fog: "🌫️", foggy: "🌁", foot: "🦶", football: "🏈", footprints: "👣", fork_and_knife: "🍴", fortune_cookie: "🥠", fountain: "⛲", fountain_pen: "🖋️", four: "4️⃣", four_leaf_clover: "🍀", fox_face: "🦊", fr: "🇫🇷", framed_picture: "🖼️", free: "🆓", french_guiana: "🇬🇫", french_polynesia: "🇵🇫", french_southern_territories: "🇹🇫", fried_egg: "🍳", fried_shrimp: "🍤", fries: "🍟", frog: "🐸", frowning: "😦", frowning_face: "☹️", frowning_man: "🙍♂️", frowning_person: "🙍", frowning_woman: "🙍♀️", fu: "🖕", fuelpump: "⛽", full_moon: "🌕", full_moon_with_face: "🌝", funeral_urn: "⚱️", gabon: "🇬🇦", gambia: "🇬🇲", game_die: "🎲", garlic: "🧄", gb: "🇬🇧", gear: "⚙️", gem: "💎", gemini: "♊", genie: "🧞", genie_man: "🧞♂️", genie_woman: "🧞♀️", georgia: "🇬🇪", ghana: "🇬🇭", ghost: "👻", gibraltar: "🇬🇮", gift: "🎁", gift_heart: "💝", giraffe: "🦒", girl: "👧", globe_with_meridians: "🌐", gloves: "🧤", goal_net: "🥅", goat: "🐐", goggles: "🥽", golf: "⛳", golfing: "🏌️", golfing_man: "🏌️♂️", golfing_woman: "🏌️♀️", gorilla: "🦍", grapes: "🍇", greece: "🇬🇷", green_apple: "🍏", green_book: "📗", green_circle: "🟢", green_heart: "💚", green_salad: "🥗", green_square: "🟩", greenland: "🇬🇱", grenada: "🇬🇩", grey_exclamation: "❕", grey_question: "❔", grimacing: "😬", grin: "😁", grinning: "😀", guadeloupe: "🇬🇵", guam: "🇬🇺", guard: "💂", guardsman: "💂♂️", guardswoman: "💂♀️", guatemala: "🇬🇹", guernsey: "🇬🇬", guide_dog: "🦮", guinea: "🇬🇳", guinea_bissau: "🇬🇼", guitar: "🎸", gun: "🔫", guyana: "🇬🇾", haircut: "💇", haircut_man: "💇♂️", haircut_woman: "💇♀️", haiti: "🇭🇹", hamburger: "🍔", hammer: "🔨", hammer_and_pick: "⚒️", hammer_and_wrench: "🛠️", hamster: "🐹", hand: "✋", hand_over_mouth: "🤭", handbag: "👜", handball_person: "🤾", handshake: "🤝", hankey: "💩", hash: "#️⃣", hatched_chick: "🐥", hatching_chick: "🐣", headphones: "🎧", health_worker: "🧑⚕️", hear_no_evil: "🙉", heard_mcdonald_islands: "🇭🇲", heart: "❤️", heart_decoration: "💟", heart_eyes: "😍", heart_eyes_cat: "😻", heartbeat: "💓", heartpulse: "💗", hearts: "♥️", heavy_check_mark: "✔️", heavy_division_sign: "➗", heavy_dollar_sign: "💲", heavy_exclamation_mark: "❗", heavy_heart_exclamation: "❣️", heavy_minus_sign: "➖", heavy_multiplication_x: "✖️", heavy_plus_sign: "➕", hedgehog: "🦔", helicopter: "🚁", herb: "🌿", hibiscus: "🌺", high_brightness: "🔆", high_heel: "👠", hiking_boot: "🥾", hindu_temple: "🛕", hippopotamus: "🦛", hocho: "🔪", hole: "🕳️", honduras: "🇭🇳", honey_pot: "🍯", honeybee: "🐝", hong_kong: "🇭🇰", horse: "🐴", horse_racing: "🏇", hospital: "🏥", hot_face: "🥵", hot_pepper: "🌶️", hotdog: "🌭", hotel: "🏨", hotsprings: "♨️", hourglass: "⌛", hourglass_flowing_sand: "⏳", house: "🏠", house_with_garden: "🏡", houses: "🏘️", hugs: "🤗", hungary: "🇭🇺", hushed: "😯", ice_cream: "🍨", ice_cube: "🧊", ice_hockey: "🏒", ice_skate: "⛸️", icecream: "🍦", iceland: "🇮🇸", id: "🆔", ideograph_advantage: "🉐", imp: "👿", inbox_tray: "📥", incoming_envelope: "📨", india: "🇮🇳", indonesia: "🇮🇩", infinity: "♾️", information_desk_person: "💁", information_source: "ℹ️", innocent: "😇", interrobang: "⁉️", iphone: "📱", iran: "🇮🇷", iraq: "🇮🇶", ireland: "🇮🇪", isle_of_man: "🇮🇲", israel: "🇮🇱", it: "🇮🇹", izakaya_lantern: "🏮", jack_o_lantern: "🎃", jamaica: "🇯🇲", japan: "🗾", japanese_castle: "🏯", japanese_goblin: "👺", japanese_ogre: "👹", jeans: "👖", jersey: "🇯🇪", jigsaw: "🧩", jordan: "🇯🇴", joy: "😂", joy_cat: "😹", joystick: "🕹️", jp: "🇯🇵", judge: "🧑⚖️", juggling_person: "🤹", kaaba: "🕋", kangaroo: "🦘", kazakhstan: "🇰🇿", kenya: "🇰🇪", key: "🔑", keyboard: "⌨️", keycap_ten: "🔟", kick_scooter: "🛴", kimono: "👘", kiribati: "🇰🇮", kiss: "💋", kissing: "😗", kissing_cat: "😽", kissing_closed_eyes: "😚", kissing_heart: "😘", kissing_smiling_eyes: "😙", kite: "🪁", kiwi_fruit: "🥝", kneeling_man: "🧎♂️", kneeling_person: "🧎", kneeling_woman: "🧎♀️", knife: "🔪", koala: "🐨", koko: "🈁", kosovo: "🇽🇰", kr: "🇰🇷", kuwait: "🇰🇼", kyrgyzstan: "🇰🇬", lab_coat: "🥼", label: "🏷️", lacrosse: "🥍", lantern: "🏮", laos: "🇱🇦", large_blue_circle: "🔵", large_blue_diamond: "🔷", large_orange_diamond: "🔶", last_quarter_moon: "🌗", last_quarter_moon_with_face: "🌜", latin_cross: "✝️", latvia: "🇱🇻", laughing: "😆", leafy_green: "🥬", leaves: "🍃", lebanon: "🇱🇧", ledger: "📒", left_luggage: "🛅", left_right_arrow: "↔️", left_speech_bubble: "🗨️", leftwards_arrow_with_hook: "↩️", leg: "🦵", lemon: "🍋", leo: "♌", leopard: "🐆", lesotho: "🇱🇸", level_slider: "🎚️", liberia: "🇱🇷", libra: "♎", libya: "🇱🇾", liechtenstein: "🇱🇮", light_rail: "🚈", link: "🔗", lion: "🦁", lips: "👄", lipstick: "💄", lithuania: "🇱🇹", lizard: "🦎", llama: "🦙", lobster: "🦞", lock: "🔒", lock_with_ink_pen: "🔏", lollipop: "🍭", loop: "➿", lotion_bottle: "🧴", lotus_position: "🧘", lotus_position_man: "🧘♂️", lotus_position_woman: "🧘♀️", loud_sound: "🔊", loudspeaker: "📢", love_hotel: "🏩", love_letter: "💌", love_you_gesture: "🤟", low_brightness: "🔅", luggage: "🧳", luxembourg: "🇱🇺", lying_face: "🤥", m: "Ⓜ️", macau: "🇲🇴", macedonia: "🇲🇰", madagascar: "🇲🇬", mag: "🔍", mag_right: "🔎", mage: "🧙", mage_man: "🧙♂️", mage_woman: "🧙♀️", magnet: "🧲", mahjong: "🀄", mailbox: "📫", mailbox_closed: "📪", mailbox_with_mail: "📬", mailbox_with_no_mail: "📭", malawi: "🇲🇼", malaysia: "🇲🇾", maldives: "🇲🇻", male_detective: "🕵️♂️", male_sign: "♂️", mali: "🇲🇱", malta: "🇲🇹", man: "👨", man_artist: "👨🎨", man_astronaut: "👨🚀", man_cartwheeling: "🤸♂️", man_cook: "👨🍳", man_dancing: "🕺", man_facepalming: "🤦♂️", man_factory_worker: "👨🏭", man_farmer: "👨🌾", man_firefighter: "👨🚒", man_health_worker: "👨⚕️", man_in_manual_wheelchair: "👨🦽", man_in_motorized_wheelchair: "👨🦼", man_in_tuxedo: "🤵", man_judge: "👨⚖️", man_juggling: "🤹♂️", man_mechanic: "👨🔧", man_office_worker: "👨💼", man_pilot: "👨✈️", man_playing_handball: "🤾♂️", man_playing_water_polo: "🤽♂️", man_scientist: "👨🔬", man_shrugging: "🤷♂️", man_singer: "👨🎤", man_student: "👨🎓", man_teacher: "👨🏫", man_technologist: "👨💻", man_with_gua_pi_mao: "👲", man_with_probing_cane: "👨🦯", man_with_turban: "👳♂️", mandarin: "🍊", mango: "🥭", mans_shoe: "👞", mantelpiece_clock: "🕰️", manual_wheelchair: "🦽", maple_leaf: "🍁", marshall_islands: "🇲🇭", martial_arts_uniform: "🥋", martinique: "🇲🇶", mask: "😷", massage: "💆", massage_man: "💆♂️", massage_woman: "💆♀️", mate: "🧉", mauritania: "🇲🇷", mauritius: "🇲🇺", mayotte: "🇾🇹", meat_on_bone: "🍖", mechanic: "🧑🔧", mechanical_arm: "🦾", mechanical_leg: "🦿", medal_military: "🎖️", medal_sports: "🏅", medical_symbol: "⚕️", mega: "📣", melon: "🍈", memo: "📝", men_wrestling: "🤼♂️", menorah: "🕎", mens: "🚹", mermaid: "🧜♀️", merman: "🧜♂️", merperson: "🧜", metal: "🤘", metro: "🚇", mexico: "🇲🇽", microbe: "🦠", micronesia: "🇫🇲", microphone: "🎤", microscope: "🔬", middle_finger: "🖕", milk_glass: "🥛", milky_way: "🌌", minibus: "🚐", minidisc: "💽", mobile_phone_off: "📴", moldova: "🇲🇩", monaco: "🇲🇨", money_mouth_face: "🤑", money_with_wings: "💸", moneybag: "💰", mongolia: "🇲🇳", monkey: "🐒", monkey_face: "🐵", monocle_face: "🧐", monorail: "🚝", montenegro: "🇲🇪", montserrat: "🇲🇸", moon: "🌔", moon_cake: "🥮", morocco: "🇲🇦", mortar_board: "🎓", mosque: "🕌", mosquito: "🦟", motor_boat: "🛥️", motor_scooter: "🛵", motorcycle: "🏍️", motorized_wheelchair: "🦼", motorway: "🛣️", mount_fuji: "🗻", mountain: "⛰️", mountain_bicyclist: "🚵", mountain_biking_man: "🚵♂️", mountain_biking_woman: "🚵♀️", mountain_cableway: "🚠", mountain_railway: "🚞", mountain_snow: "🏔️", mouse: "🐭", mouse2: "🐁", movie_camera: "🎥", moyai: "🗿", mozambique: "🇲🇿", mrs_claus: "🤶", muscle: "💪", mushroom: "🍄", musical_keyboard: "🎹", musical_note: "🎵", musical_score: "🎼", mute: "🔇", myanmar: "🇲🇲", nail_care: "💅", name_badge: "📛", namibia: "🇳🇦", national_park: "🏞️", nauru: "🇳🇷", nauseated_face: "🤢", nazar_amulet: "🧿", necktie: "👔", negative_squared_cross_mark: "❎", nepal: "🇳🇵", nerd_face: "🤓", netherlands: "🇳🇱", neutral_face: "😐", new: "🆕", new_caledonia: "🇳🇨", new_moon: "🌑", new_moon_with_face: "🌚", new_zealand: "🇳🇿", newspaper: "📰", newspaper_roll: "🗞️", next_track_button: "⏭️", ng: "🆖", ng_man: "🙅♂️", ng_woman: "🙅♀️", nicaragua: "🇳🇮", niger: "🇳🇪", nigeria: "🇳🇬", night_with_stars: "🌃", nine: "9️⃣", niue: "🇳🇺", no_bell: "🔕", no_bicycles: "🚳", no_entry: "⛔", no_entry_sign: "🚫", no_good: "🙅", no_good_man: "🙅♂️", no_good_woman: "🙅♀️", no_mobile_phones: "📵", no_mouth: "😶", no_pedestrians: "🚷", no_smoking: "🚭", "non-potable_water": "🚱", norfolk_island: "🇳🇫", north_korea: "🇰🇵", northern_mariana_islands: "🇲🇵", norway: "🇳🇴", nose: "👃", notebook: "📓", notebook_with_decorative_cover: "📔", notes: "🎶", nut_and_bolt: "🔩", o: "⭕", o2: "🅾️", ocean: "🌊", octopus: "🐙", oden: "🍢", office: "🏢", office_worker: "🧑💼", oil_drum: "🛢️", ok: "🆗", ok_hand: "👌", ok_man: "🙆♂️", ok_person: "🙆", ok_woman: "🙆♀️", old_key: "🗝️", older_adult: "🧓", older_man: "👴", older_woman: "👵", om: "🕉️", oman: "🇴🇲", on: "🔛", oncoming_automobile: "🚘", oncoming_bus: "🚍", oncoming_police_car: "🚔", oncoming_taxi: "🚖", one: "1️⃣", one_piece_swimsuit: "🩱", onion: "🧅", open_book: "📖", open_file_folder: "📂", open_hands: "👐", open_mouth: "😮", open_umbrella: "☂️", ophiuchus: "⛎", orange: "🍊", orange_book: "📙", orange_circle: "🟠", orange_heart: "🧡", orange_square: "🟧", orangutan: "🦧", orthodox_cross: "☦️", otter: "🦦", outbox_tray: "📤", owl: "🦉", ox: "🐂", oyster: "🦪", package: "📦", page_facing_up: "📄", page_with_curl: "📃", pager: "📟", paintbrush: "🖌️", pakistan: "🇵🇰", palau: "🇵🇼", palestinian_territories: "🇵🇸", palm_tree: "🌴", palms_up_together: "🤲", panama: "🇵🇦", pancakes: "🥞", panda_face: "🐼", paperclip: "📎", paperclips: "🖇️", papua_new_guinea: "🇵🇬", parachute: "🪂", paraguay: "🇵🇾", parasol_on_ground: "⛱️", parking: "🅿️", parrot: "🦜", part_alternation_mark: "〽️", partly_sunny: "⛅", partying_face: "🥳", passenger_ship: "🛳️", passport_control: "🛂", pause_button: "⏸️", paw_prints: "🐾", peace_symbol: "☮️", peach: "🍑", peacock: "🦚", peanuts: "🥜", pear: "🍐", pen: "🖊️", pencil: "📝", pencil2: "✏️", penguin: "🐧", pensive: "😔", people_holding_hands: "🧑🤝🧑", performing_arts: "🎭", persevere: "😣", person_bald: "🧑🦲", person_curly_hair: "🧑🦱", person_fencing: "🤺", person_in_manual_wheelchair: "🧑🦽", person_in_motorized_wheelchair: "🧑🦼", person_red_hair: "🧑🦰", person_white_hair: "🧑🦳", person_with_probing_cane: "🧑🦯", person_with_turban: "👳", peru: "🇵🇪", petri_dish: "🧫", philippines: "🇵🇭", phone: "☎️", pick: "⛏️", pie: "🥧", pig: "🐷", pig2: "🐖", pig_nose: "🐽", pill: "💊", pilot: "🧑✈️", pinching_hand: "🤏", pineapple: "🍍", ping_pong: "🏓", pirate_flag: "🏴☠️", pisces: "♓", pitcairn_islands: "🇵🇳", pizza: "🍕", place_of_worship: "🛐", plate_with_cutlery: "🍽️", play_or_pause_button: "⏯️", pleading_face: "🥺", point_down: "👇", point_left: "👈", point_right: "👉", point_up: "☝️", point_up_2: "👆", poland: "🇵🇱", police_car: "🚓", police_officer: "👮", policeman: "👮♂️", policewoman: "👮♀️", poodle: "🐩", poop: "💩", popcorn: "🍿", portugal: "🇵🇹", post_office: "🏣", postal_horn: "📯", postbox: "📮", potable_water: "🚰", potato: "🥔", pouch: "👝", poultry_leg: "🍗", pound: "💷", pout: "😡", pouting_cat: "😾", pouting_face: "🙎", pouting_man: "🙎♂️", pouting_woman: "🙎♀️", pray: "🙏", prayer_beads: "📿", pregnant_woman: "🤰", pretzel: "🥨", previous_track_button: "⏮️", prince: "🤴", princess: "👸", printer: "🖨️", probing_cane: "🦯", puerto_rico: "🇵🇷", punch: "👊", purple_circle: "🟣", purple_heart: "💜", purple_square: "🟪", purse: "👛", pushpin: "📌", put_litter_in_its_place: "🚮", qatar: "🇶🇦", question: "❓", rabbit: "🐰", rabbit2: "🐇", raccoon: "🦝", racehorse: "🐎", racing_car: "🏎️", radio: "📻", radio_button: "🔘", radioactive: "☢️", rage: "😡", railway_car: "🚃", railway_track: "🛤️", rainbow: "🌈", rainbow_flag: "🏳️🌈", raised_back_of_hand: "🤚", raised_eyebrow: "🤨", raised_hand: "✋", raised_hand_with_fingers_splayed: "🖐️", raised_hands: "🙌", raising_hand: "🙋", raising_hand_man: "🙋♂️", raising_hand_woman: "🙋♀️", ram: "🐏", ramen: "🍜", rat: "🐀", razor: "🪒", receipt: "🧾", record_button: "⏺️", recycle: "♻️", red_car: "🚗", red_circle: "🔴", red_envelope: "🧧", red_haired_man: "👨🦰", red_haired_woman: "👩🦰", red_square: "🟥", registered: "®️", relaxed: "☺️", relieved: "😌", reminder_ribbon: "🎗️", repeat: "🔁", repeat_one: "🔂", rescue_worker_helmet: "⛑️", restroom: "🚻", reunion: "🇷🇪", revolving_hearts: "💞", rewind: "⏪", rhinoceros: "🦏", ribbon: "🎀", rice: "🍚", rice_ball: "🍙", rice_cracker: "🍘", rice_scene: "🎑", right_anger_bubble: "🗯️", ring: "💍", ringed_planet: "🪐", robot: "🤖", rocket: "🚀", rofl: "🤣", roll_eyes: "🙄", roll_of_paper: "🧻", roller_coaster: "🎢", romania: "🇷🇴", rooster: "🐓", rose: "🌹", rosette: "🏵️", rotating_light: "🚨", round_pushpin: "📍", rowboat: "🚣", rowing_man: "🚣♂️", rowing_woman: "🚣♀️", ru: "🇷🇺", rugby_football: "🏉", runner: "🏃", running: "🏃", running_man: "🏃♂️", running_shirt_with_sash: "🎽", running_woman: "🏃♀️", rwanda: "🇷🇼", sa: "🈂️", safety_pin: "🧷", safety_vest: "🦺", sagittarius: "♐", sailboat: "⛵", sake: "🍶", salt: "🧂", samoa: "🇼🇸", san_marino: "🇸🇲", sandal: "👡", sandwich: "🥪", santa: "🎅", sao_tome_principe: "🇸🇹", sari: "🥻", sassy_man: "💁♂️", sassy_woman: "💁♀️", satellite: "📡", satisfied: "😆", saudi_arabia: "🇸🇦", sauna_man: "🧖♂️", sauna_person: "🧖", sauna_woman: "🧖♀️", sauropod: "🦕", saxophone: "🎷", scarf: "🧣", school: "🏫", school_satchel: "🎒", scientist: "🧑🔬", scissors: "✂️", scorpion: "🦂", scorpius: "♏", scotland: "🏴", scream: "😱", scream_cat: "🙀", scroll: "📜", seat: "💺", secret: "㊙️", see_no_evil: "🙈", seedling: "🌱", selfie: "🤳", senegal: "🇸🇳", serbia: "🇷🇸", service_dog: "🐕🦺", seven: "7️⃣", seychelles: "🇸🇨", shallow_pan_of_food: "🥘", shamrock: "☘️", shark: "🦈", shaved_ice: "🍧", sheep: "🐑", shell: "🐚", shield: "🛡️", shinto_shrine: "⛩️", ship: "🚢", shirt: "👕", shit: "💩", shoe: "👞", shopping: "🛍️", shopping_cart: "🛒", shorts: "🩳", shower: "🚿", shrimp: "🦐", shrug: "🤷", shushing_face: "🤫", sierra_leone: "🇸🇱", signal_strength: "📶", singapore: "🇸🇬", singer: "🧑🎤", sint_maarten: "🇸🇽", six: "6️⃣", six_pointed_star: "🔯", skateboard: "🛹", ski: "🎿", skier: "⛷️", skull: "💀", skull_and_crossbones: "☠️", skunk: "🦨", sled: "🛷", sleeping: "😴", sleeping_bed: "🛌", sleepy: "😪", slightly_frowning_face: "🙁", slightly_smiling_face: "🙂", slot_machine: "🎰", sloth: "🦥", slovakia: "🇸🇰", slovenia: "🇸🇮", small_airplane: "🛩️", small_blue_diamond: "🔹", small_orange_diamond: "🔸", small_red_triangle: "🔺", small_red_triangle_down: "🔻", smile: "😄", smile_cat: "😸", smiley: "😃", smiley_cat: "😺", smiling_face_with_three_hearts: "🥰", smiling_imp: "😈", smirk: "😏", smirk_cat: "😼", smoking: "🚬", snail: "🐌", snake: "🐍", sneezing_face: "🤧", snowboarder: "🏂", snowflake: "❄️", snowman: "⛄", snowman_with_snow: "☃️", soap: "🧼", sob: "😭", soccer: "⚽", socks: "🧦", softball: "🥎", solomon_islands: "🇸🇧", somalia: "🇸🇴", soon: "🔜", sos: "🆘", sound: "🔉", south_africa: "🇿🇦", south_georgia_south_sandwich_islands: "🇬🇸", south_sudan: "🇸🇸", space_invader: "👾", spades: "♠️", spaghetti: "🍝", sparkle: "❇️", sparkler: "🎇", sparkles: "✨", sparkling_heart: "💖", speak_no_evil: "🙊", speaker: "🔈", speaking_head: "🗣️", speech_balloon: "💬", speedboat: "🚤", spider: "🕷️", spider_web: "🕸️", spiral_calendar: "🗓️", spiral_notepad: "🗒️", sponge: "🧽", spoon: "🥄", squid: "🦑", sri_lanka: "🇱🇰", st_barthelemy: "🇧🇱", st_helena: "🇸🇭", st_kitts_nevis: "🇰🇳", st_lucia: "🇱🇨", st_martin: "🇲🇫", st_pierre_miquelon: "🇵🇲", st_vincent_grenadines: "🇻🇨", stadium: "🏟️", standing_man: "🧍♂️", standing_person: "🧍", standing_woman: "🧍♀️", star: "⭐", star2: "🌟", star_and_crescent: "☪️", star_of_david: "✡️", star_struck: "🤩", stars: "🌠", station: "🚉", statue_of_liberty: "🗽", steam_locomotive: "🚂", stethoscope: "🩺", stew: "🍲", stop_button: "⏹️", stop_sign: "🛑", stopwatch: "⏱️", straight_ruler: "📏", strawberry: "🍓", stuck_out_tongue: "😛", stuck_out_tongue_closed_eyes: "😝", stuck_out_tongue_winking_eye: "😜", student: "🧑🎓", studio_microphone: "🎙️", stuffed_flatbread: "🥙", sudan: "🇸🇩", sun_behind_large_cloud: "🌥️", sun_behind_rain_cloud: "🌦️", sun_behind_small_cloud: "🌤️", sun_with_face: "🌞", sunflower: "🌻", sunglasses: "😎", sunny: "☀️", sunrise: "🌅", sunrise_over_mountains: "🌄", superhero: "🦸", superhero_man: "🦸♂️", superhero_woman: "🦸♀️", supervillain: "🦹", supervillain_man: "🦹♂️", supervillain_woman: "🦹♀️", surfer: "🏄", surfing_man: "🏄♂️", surfing_woman: "🏄♀️", suriname: "🇸🇷", sushi: "🍣", suspension_railway: "🚟", svalbard_jan_mayen: "🇸🇯", swan: "🦢", swaziland: "🇸🇿", sweat: "😓", sweat_drops: "💦", sweat_smile: "😅", sweden: "🇸🇪", sweet_potato: "🍠", swim_brief: "🩲", swimmer: "🏊", swimming_man: "🏊♂️", swimming_woman: "🏊♀️", switzerland: "🇨🇭", symbols: "🔣", synagogue: "🕍", syria: "🇸🇾", syringe: "💉", "t-rex": "🦖", taco: "🌮", tada: "🎉", taiwan: "🇹🇼", tajikistan: "🇹🇯", takeout_box: "🥡", tanabata_tree: "🎋", tangerine: "🍊", tanzania: "🇹🇿", taurus: "♉", taxi: "🚕", tea: "🍵", teacher: "🧑🏫", technologist: "🧑💻", teddy_bear: "🧸", telephone: "☎️", telephone_receiver: "📞", telescope: "🔭", tennis: "🎾", tent: "⛺", test_tube: "🧪", thailand: "🇹🇭", thermometer: "🌡️", thinking: "🤔", thought_balloon: "💭", thread: "🧵", three: "3️⃣", thumbsdown: "👎", thumbsup: "👍", ticket: "🎫", tickets: "🎟️", tiger: "🐯", tiger2: "🐅", timer_clock: "⏲️", timor_leste: "🇹🇱", tipping_hand_man: "💁♂️", tipping_hand_person: "💁", tipping_hand_woman: "💁♀️", tired_face: "😫", tm: "™️", togo: "🇹🇬", toilet: "🚽", tokelau: "🇹🇰", tokyo_tower: "🗼", tomato: "🍅", tonga: "🇹🇴", tongue: "👅", toolbox: "🧰", tooth: "🦷", top: "🔝", tophat: "🎩", tornado: "🌪️", tr: "🇹🇷", trackball: "🖲️", tractor: "🚜", traffic_light: "🚥", train: "🚋", train2: "🚆", tram: "🚊", triangular_flag_on_post: "🚩", triangular_ruler: "📐", trident: "🔱", trinidad_tobago: "🇹🇹", tristan_da_cunha: "🇹🇦", triumph: "😤", trolleybus: "🚎", trophy: "🏆", tropical_drink: "🍹", tropical_fish: "🐠", truck: "🚚", trumpet: "🎺", tshirt: "👕", tulip: "🌷", tumbler_glass: "🥃", tunisia: "🇹🇳", turkey: "🦃", turkmenistan: "🇹🇲", turks_caicos_islands: "🇹🇨", turtle: "🐢", tuvalu: "🇹🇻", tv: "📺", twisted_rightwards_arrows: "🔀", two: "2️⃣", two_hearts: "💕", two_men_holding_hands: "👬", two_women_holding_hands: "👭", u5272: "🈹", u5408: "🈴", u55b6: "🈺", u6307: "🈯", u6708: "🈷️", u6709: "🈶", u6e80: "🈵", u7121: "🈚", u7533: "🈸", u7981: "🈲", u7a7a: "🈳", uganda: "🇺🇬", uk: "🇬🇧", ukraine: "🇺🇦", umbrella: "☔", unamused: "😒", underage: "🔞", unicorn: "🦄", united_arab_emirates: "🇦🇪", united_nations: "🇺🇳", unlock: "🔓", up: "🆙", upside_down_face: "🙃", uruguay: "🇺🇾", us: "🇺🇸", us_outlying_islands: "🇺🇲", us_virgin_islands: "🇻🇮", uzbekistan: "🇺🇿", v: "✌️", vampire: "🧛", vampire_man: "🧛♂️", vampire_woman: "🧛♀️", vanuatu: "🇻🇺", vatican_city: "🇻🇦", venezuela: "🇻🇪", vertical_traffic_light: "🚦", vhs: "📼", vibration_mode: "📳", video_camera: "📹", video_game: "🎮", vietnam: "🇻🇳", violin: "🎻", virgo: "♍", volcano: "🌋", volleyball: "🏐", vomiting_face: "🤮", vs: "🆚", vulcan_salute: "🖖", waffle: "🧇", wales: "🏴", walking: "🚶", walking_man: "🚶♂️", walking_woman: "🚶♀️", wallis_futuna: "🇼🇫", waning_crescent_moon: "🌘", waning_gibbous_moon: "🌖", warning: "⚠️", wastebasket: "🗑️", watch: "⌚", water_buffalo: "🐃", water_polo: "🤽", watermelon: "🍉", wave: "👋", wavy_dash: "〰️", waxing_crescent_moon: "🌒", waxing_gibbous_moon: "🌔", wc: "🚾", weary: "😩", wedding: "💒", weight_lifting: "🏋️", weight_lifting_man: "🏋️♂️", weight_lifting_woman: "🏋️♀️", western_sahara: "🇪🇭", whale: "🐳", whale2: "🐋", wheel_of_dharma: "☸️", wheelchair: "♿", white_check_mark: "✅", white_circle: "⚪", white_flag: "🏳️", white_flower: "💮", white_haired_man: "👨🦳", white_haired_woman: "👩🦳", white_heart: "🤍", white_large_square: "⬜", white_medium_small_square: "◽", white_medium_square: "◻️", white_small_square: "▫️", white_square_button: "🔳", wilted_flower: "🥀", wind_chime: "🎐", wind_face: "🌬️", wine_glass: "🍷", wink: "😉", wolf: "🐺", woman: "👩", woman_artist: "👩🎨", woman_astronaut: "👩🚀", woman_cartwheeling: "🤸♀️", woman_cook: "👩🍳", woman_dancing: "💃", woman_facepalming: "🤦♀️", woman_factory_worker: "👩🏭", woman_farmer: "👩🌾", woman_firefighter: "👩🚒", woman_health_worker: "👩⚕️", woman_in_manual_wheelchair: "👩🦽", woman_in_motorized_wheelchair: "👩🦼", woman_judge: "👩⚖️", woman_juggling: "🤹♀️", woman_mechanic: "👩🔧", woman_office_worker: "👩💼", woman_pilot: "👩✈️", woman_playing_handball: "🤾♀️", woman_playing_water_polo: "🤽♀️", woman_scientist: "👩🔬", woman_shrugging: "🤷♀️", woman_singer: "👩🎤", woman_student: "👩🎓", woman_teacher: "👩🏫", woman_technologist: "👩💻", woman_with_headscarf: "🧕", woman_with_probing_cane: "👩🦯", woman_with_turban: "👳♀️", womans_clothes: "👚", womans_hat: "👒", women_wrestling: "🤼♀️", womens: "🚺", woozy_face: "🥴", world_map: "🗺️", worried: "😟", wrench: "🔧", wrestling: "🤼", writing_hand: "✍️", x: "❌", yarn: "🧶", yawning_face: "🥱", yellow_circle: "🟡", yellow_heart: "💛", yellow_square: "🟨", yemen: "🇾🇪", yen: "💴", yin_yang: "☯️", yo_yo: "🪀", yum: "😋", zambia: "🇿🇲", zany_face: "🤪", zap: "⚡", zebra: "🦓", zero: "0️⃣", zimbabwe: "🇿🇼", zipper_mouth_face: "🤐", zombie: "🧟", zombie_man: "🧟♂️", zombie_woman: "🧟♀️", zzz: "💤", atom: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/atom.png?v8">', basecamp: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/basecamp.png?v8">', basecampy: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/basecampy.png?v8">', bowtie: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/bowtie.png?v8">', electron: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/electron.png?v8">', feelsgood: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/feelsgood.png?v8">', finnadie: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/finnadie.png?v8">', goberserk: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/goberserk.png?v8">', godmode: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/godmode.png?v8">', hurtrealbad: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/hurtrealbad.png?v8">', neckbeard: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/neckbeard.png?v8">', octocat: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/octocat.png?v8">', rage1: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/rage1.png?v8">', rage2: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/rage2.png?v8">', rage3: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/rage3.png?v8">', rage4: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/rage4.png?v8">', shipit: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/shipit.png?v8">', suspect: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/suspect.png?v8">', trollface: '<img width="20" height="20" align="absmiddle" src="https://github.githubassets.com/images/icons/emoji/trollface.png?v8">', showdown: '<img width="20" height="20" align="absmiddle" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAS1BMVEX///8jJS0jJS0jJS0jJS0jJS0jJS0jJS0jJS0jJS0jJS0jJS0jJS0jJS0jJS0jJS0jJS3b1q3b1q3b1q3b1q3b1q3b1q3b1q3b1q0565CIAAAAGXRSTlMAQHCAYCCw/+DQwPCQUBAwoHCAEP+wwFBgS2fvBgAAAUZJREFUeAHs1cGy7BAUheFFsEDw/k97VTq3T6ge2EmdM+pvrP6Iwd74XV9Kb52xuMU4/uc1YNgZLFOeV8FGdhGrNk5SEgUyPxAEdj4LlMRDyhVAMVEa2M7TBSeVZAFPdqHgzSZJwPKgcLFLAooHDJo4EDCw4gAtBoJA5UFj4Ng5LOGLwVXZuoIlji/jeQHFk7+baHxrCjeUwB9+s88KndvlhcyBN5BSkYNQIVVb4pV+Npm7hhuKDs/uMP5KxT3WzSNNLIuuoDpMmuAVMruMSeDyQBi24DTr43LAY7ILA1QYaWkgfHzFthYYzg67SQsCbB8GhJUEGCtO9n0rSaCLxgJQjS/JSgMTg2eBDEHAJ+H350AsjYNYscrErgI2e/l+mdR967TCX/v6N0EhPECYCP0i+IAoYQOE8BogNhQMEMdrgAQWHaMAAGi5I5euoY9NAAAAAElFTkSuQmCC">', }), P.subParser("makehtml.blockGamut", function (e, a, r) { "use strict"; return ( (e = r.converter._dispatch("makehtml.blockGamut.before", e, a, r).getText()), (e = P.subParser("makehtml.blockQuotes")(e, a, r)), (e = P.subParser("makehtml.headers")(e, a, r)), (e = P.subParser("makehtml.horizontalRule")(e, a, r)), (e = P.subParser("makehtml.lists")(e, a, r)), (e = P.subParser("makehtml.codeBlocks")(e, a, r)), (e = P.subParser("makehtml.tables")(e, a, r)), (e = P.subParser("makehtml.hashHTMLBlocks")(e, a, r)), (e = P.subParser("makehtml.paragraphs")(e, a, r)), (e = r.converter._dispatch("makehtml.blockGamut.after", e, a, r).getText()) ); }), P.subParser("makehtml.blockQuotes", function (e, a, r) { "use strict"; e = r.converter._dispatch("makehtml.blockQuotes.before", e, a, r).getText(); var t = /(^ {0,3}>[ \t]?.+\n(.+\n)*\n*)+/gm; return ( a.splitAdjacentBlockquotes && (t = /^ {0,3}>[\s\S]*?(?:\n\n)/gm), (e = (e += "\n\n").replace(t, function (e) { return ( (e = (e = (e = e.replace(/^[ \t]*>[ \t]?/gm, "")).replace(/¨0/g, "")).replace(/^[ \t]+$/gm, "")), (e = P.subParser("makehtml.githubCodeBlocks")(e, a, r)), (e = (e = (e = P.subParser("makehtml.blockGamut")(e, a, r)).replace(/(^|\n)/g, "$1 ")).replace(/(\s*<pre>[^\r]+?<\/pre>)/gm, function (e, a) { return a.replace(/^ /gm, "¨0").replace(/¨0/g, ""); })), P.subParser("makehtml.hashBlock")("<blockquote>\n" + e + "\n</blockquote>", a, r) ); })), (e = r.converter._dispatch("makehtml.blockQuotes.after", e, a, r).getText()) ); }), P.subParser("makehtml.codeBlocks", function (e, n, s) { "use strict"; e = s.converter._dispatch("makehtml.codeBlocks.before", e, n, s).getText(); return ( (e = (e = (e += "¨0").replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=¨0))/g, function (e, a, r) { var t = "\n", a = P.subParser("makehtml.outdent")(a, n, s); return ( (a = P.subParser("makehtml.encodeCode")(a, n, s)), (a = "<pre><code>" + (a = (a = (a = P.subParser("makehtml.detab")(a, n, s)).replace(/^\n+/g, "")).replace(/\n+$/g, "")) + (t = n.omitExtraWLInCodeBlocks ? "" : t) + "</code></pre>"), P.subParser("makehtml.hashBlock")(a, n, s) + r ); })).replace(/¨0/, "")), (e = s.converter._dispatch("makehtml.codeBlocks.after", e, n, s).getText()) ); }), P.subParser("makehtml.codeSpans", function (e, n, s) { "use strict"; return ( (e = (e = void 0 === (e = s.converter._dispatch("makehtml.codeSpans.before", e, n, s).getText()) ? "" : e).replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm, function (e, a, r, t) { return (t = (t = t.replace(/^([ \t]*)/g, "")).replace(/[ \t]*$/g, "")), (t = a + "<code>" + (t = P.subParser("makehtml.encodeCode")(t, n, s)) + "</code>"), (t = P.subParser("makehtml.hashHTMLSpans")(t, n, s)); })), (e = s.converter._dispatch("makehtml.codeSpans.after", e, n, s).getText()) ); }), P.subParser("makehtml.completeHTMLDocument", function (e, a, r) { "use strict"; if (!a.completeHTMLDocument) return e; e = r.converter._dispatch("makehtml.completeHTMLDocument.before", e, a, r).getText(); var t, n = "html", s = "<!DOCTYPE HTML>\n", i = "", o = '<meta charset="utf-8">\n', l = "", c = ""; for (t in (void 0 !== r.metadata.parsed.doctype && ((s = "<!DOCTYPE " + r.metadata.parsed.doctype + ">\n"), ("html" !== (n = r.metadata.parsed.doctype.toString().toLowerCase()) && "html5" !== n) || (o = '<meta charset="utf-8">')), r.metadata.parsed)) if (r.metadata.parsed.hasOwnProperty(t)) switch (t.toLowerCase()) { case "doctype": break; case "title": i = "<title>" + r.metadata.parsed.title + "</title>\n"; break; case "charset": o = "html" === n || "html5" === n ? '<meta charset="' + r.metadata.parsed.charset + '">\n' : '<meta name="charset" content="' + r.metadata.parsed.charset + '">\n'; break; case "language": case "lang": (l = ' lang="' + r.metadata.parsed[t] + '"'), (c += '<meta name="' + t + '" content="' + r.metadata.parsed[t] + '">\n'); break; default: c += '<meta name="' + t + '" content="' + r.metadata.parsed[t] + '">\n'; } return (e = s + "<html" + l + ">\n<head>\n" + i + o + c + "</head>\n<body>\n" + e.trim() + "\n</body>\n</html>"), (e = r.converter._dispatch("makehtml.completeHTMLDocument.after", e, a, r).getText()); }), P.subParser("makehtml.detab", function (e, a, r) { "use strict"; return ( (e = (e = (e = (e = (e = (e = r.converter._dispatch("makehtml.detab.before", e, a, r).getText()).replace(/\t(?=\t)/g, " ")).replace(/\t/g, "¨A¨B")).replace(/¨B(.+?)¨A/g, function (e, a) { for (var r = a, t = 4 - (r.length % 4), n = 0; n < t; n++) r += " "; return r; })).replace(/¨A/g, " ")).replace(/¨B/g, "")), (e = r.converter._dispatch("makehtml.detab.after", e, a, r).getText()) ); }), P.subParser("makehtml.ellipsis", function (e, a, r) { "use strict"; return a.ellipsis ? ((e = (e = r.converter._dispatch("makehtml.ellipsis.before", e, a, r).getText()).replace(/\.\.\./g, "…")), r.converter._dispatch("makehtml.ellipsis.after", e, a, r).getText()) : e; }), P.subParser("makehtml.emoji", function (e, a, r) { "use strict"; if (!a.emoji) return e; return ( (e = (e = r.converter._dispatch("makehtml.emoji.before", e, a, r).getText()).replace(/:([\S]+?):/g, function (e, a) { return P.helper.emojis.hasOwnProperty(a) ? P.helper.emojis[a] : e; })), (e = r.converter._dispatch("makehtml.emoji.after", e, a, r).getText()) ); }), P.subParser("makehtml.encodeAmpsAndAngles", function (e, a, r) { "use strict"; return ( (e = (e = (e = (e = (e = r.converter._dispatch("makehtml.encodeAmpsAndAngles.before", e, a, r).getText()).replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g, "&")).replace(/<(?![a-z\/?$!])/gi, "<")).replace( /</g, "<" )).replace(/>/g, ">")), (e = r.converter._dispatch("makehtml.encodeAmpsAndAngles.after", e, a, r).getText()) ); }), P.subParser("makehtml.encodeBackslashEscapes", function (e, a, r) { "use strict"; return ( (e = (e = (e = r.converter._dispatch("makehtml.encodeBackslashEscapes.before", e, a, r).getText()).replace(/\\(\\)/g, P.helper.escapeCharactersCallback)).replace( /\\([`*_{}\[\]()>#+.!~=|:-])/g, P.helper.escapeCharactersCallback )), (e = r.converter._dispatch("makehtml.encodeBackslashEscapes.after", e, a, r).getText()) ); }), P.subParser("makehtml.encodeCode", function (e, a, r) { "use strict"; return ( (e = (e = r.converter._dispatch("makehtml.encodeCode.before", e, a, r).getText()) .replace(/&/g, "&") .replace(/</g, "<") .replace(/>/g, ">") .replace(/([*_{}\[\]\\=~-])/g, P.helper.escapeCharactersCallback)), (e = r.converter._dispatch("makehtml.encodeCode.after", e, a, r).getText()) ); }), P.subParser("makehtml.escapeSpecialCharsWithinTagAttributes", function (e, a, r) { "use strict"; return ( (e = (e = (e = r.converter._dispatch("makehtml.escapeSpecialCharsWithinTagAttributes.before", e, a, r).getText()).replace(/<\/?[a-z\d_:-]+(?:[\s]+[\s\S]+?)?>/gi, function (e) { return e.replace(/(.)<\/?code>(?=.)/g, "$1`").replace(/([\\`*_~=|])/g, P.helper.escapeCharactersCallback); })).replace(/<!(--(?:(?:[^>-]|-[^>])(?:[^-]|-[^-])*)--)>/gi, function (e) { return e.replace(/([\\`*_~=|])/g, P.helper.escapeCharactersCallback); })), (e = r.converter._dispatch("makehtml.escapeSpecialCharsWithinTagAttributes.after", e, a, r).getText()) ); }), P.subParser("makehtml.githubCodeBlocks", function (e, s, i) { "use strict"; return s.ghCodeBlocks ? ((e = i.converter._dispatch("makehtml.githubCodeBlocks.before", e, s, i).getText()), (e = (e = (e += "¨0").replace(/(?:^|\n) {0,3}(```+|~~~+) *([^\n\t`~]*)\n([\s\S]*?)\n {0,3}\1/g, function (e, a, r, t) { var n = s.omitExtraWLInCodeBlocks ? "" : "\n"; return ( (r = r.trim().split(" ")[0]), (t = P.subParser("makehtml.encodeCode")(t, s, i)), (t = "<pre><code" + (r ? ' class="' + r + " language-" + r + '"' : "") + ">" + (t = (t = (t = P.subParser("makehtml.detab")(t, s, i)).replace(/^\n+/g, "")).replace(/\n+$/g, "")) + n + "</code></pre>"), (t = P.subParser("makehtml.hashBlock")(t, s, i)), "\n\n¨G" + (i.ghCodeBlocks.push({ text: e, codeblock: t }) - 1) + "G\n\n" ); })).replace(/¨0/, "")), i.converter._dispatch("makehtml.githubCodeBlocks.after", e, s, i).getText()) : e; }), P.subParser("makehtml.hashBlock", function (e, a, r) { "use strict"; return ( (e = (e = r.converter._dispatch("makehtml.hashBlock.before", e, a, r).getText()).replace(/(^\n+|\n+$)/g, "")), (e = "\n\n¨K" + (r.gHtmlBlocks.push(e) - 1) + "K\n\n"), (e = r.converter._dispatch("makehtml.hashBlock.after", e, a, r).getText()) ); }), P.subParser("makehtml.hashCodeTags", function (e, n, s) { "use strict"; e = s.converter._dispatch("makehtml.hashCodeTags.before", e, n, s).getText(); return ( (e = P.helper.replaceRecursiveRegExp( e, function (e, a, r, t) { r = r + P.subParser("makehtml.encodeCode")(a, n, s) + t; return "¨C" + (s.gHtmlSpans.push(r) - 1) + "C"; }, "<code\\b[^>]*>", "</code>", "gim" )), (e = s.converter._dispatch("makehtml.hashCodeTags.after", e, n, s).getText()) ); }), P.subParser("makehtml.hashElement", function (e, a, r) { "use strict"; return function (e, a) { return (a = (a = (a = a.replace(/\n\n/g, "\n")).replace(/^\n/, "")).replace(/\n+$/g, "")), (a = "\n\n¨K" + (r.gHtmlBlocks.push(a) - 1) + "K\n\n"); }; }), P.subParser("makehtml.hashHTMLBlocks", function (e, a, n) { "use strict"; e = n.converter._dispatch("makehtml.hashHTMLBlocks.before", e, a, n).getText(); function r(e, a, r, t) { return -1 !== r.search(/\bmarkdown\b/) && (e = r + n.converter.makeHtml(a) + t), "\n\n¨K" + (n.gHtmlBlocks.push(e) - 1) + "K\n\n"; } var t = [ "pre", "div", "h1", "h2", "h3", "h4", "h5", "h6", "blockquote", "table", "dl", "ol", "ul", "script", "noscript", "form", "fieldset", "iframe", "math", "style", "section", "header", "footer", "nav", "article", "aside", "address", "audio", "canvas", "figure", "hgroup", "output", "video", "details", "p", ]; a.backslashEscapesHTMLTags && (e = e.replace(/\\<(\/?[^>]+?)>/g, function (e, a) { return "<" + a + ">"; })); for (var s = 0; s < t.length; ++s) for (var i = new RegExp("^ {0,3}(<" + t[s] + "\\b[^>]*>)", "im"), o = "<" + t[s] + "\\b[^>]*>", l = "</" + t[s] + ">"; -1 !== (c = P.helper.regexIndexOf(e, i)); ) { var c = P.helper.splitAtIndex(e, c), u = P.helper.replaceRecursiveRegExp(c[1], r, o, l, "im"); if (u === c[1]) break; e = c[0].concat(u); } return ( (e = e.replace(/(\n {0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g, P.subParser("makehtml.hashElement")(e, a, n))), (e = (e = P.helper.replaceRecursiveRegExp( e, function (e) { return "\n\n¨K" + (n.gHtmlBlocks.push(e) - 1) + "K\n\n"; }, "^ {0,3}\x3c!--", "--\x3e", "gm" )).replace(/\n\n( {0,3}<([?%])[^\r]*?\2>[ \t]*(?=\n{2,}))/g, P.subParser("makehtml.hashElement")(e, a, n))), (e = n.converter._dispatch("makehtml.hashHTMLBlocks.after", e, a, n).getText()) ); }), P.subParser("makehtml.hashHTMLSpans", function (e, a, r) { "use strict"; return ( (e = (e = (e = (e = (e = r.converter._dispatch("makehtml.hashHTMLSpans.before", e, a, r).getText()).replace(/<[^>]+?\/>/gi, function (e) { return P.helper._hashHTMLSpan(e, r); })).replace(/<([^>]+?)>[\s\S]*?<\/\1>/g, function (e) { return P.helper._hashHTMLSpan(e, r); })).replace(/<([^>]+?)\s[^>]+?>[\s\S]*?<\/\1>/g, function (e) { return P.helper._hashHTMLSpan(e, r); })).replace(/<[^>]+?>/gi, function (e) { return P.helper._hashHTMLSpan(e, r); })), (e = r.converter._dispatch("makehtml.hashHTMLSpans.after", e, a, r).getText()) ); }), P.subParser("makehtml.unhashHTMLSpans", function (e, a, r) { "use strict"; e = r.converter._dispatch("makehtml.unhashHTMLSpans.before", e, a, r).getText(); for (var t = 0; t < r.gHtmlSpans.length; ++t) { for (var n = r.gHtmlSpans[t], s = 0; /¨C(\d+)C/.test(n); ) { var i = RegExp.$1, n = n.replace("¨C" + i + "C", r.gHtmlSpans[i]); if (10 === s) { console.error("maximum nesting of 10 spans reached!!!"); break; } ++s; } e = e.replace("¨C" + t + "C", n); } return (e = r.converter._dispatch("makehtml.unhashHTMLSpans.after", e, a, r).getText()); }), P.subParser("makehtml.hashPreCodeTags", function (e, n, s) { "use strict"; e = s.converter._dispatch("makehtml.hashPreCodeTags.before", e, n, s).getText(); return ( (e = P.helper.replaceRecursiveRegExp( e, function (e, a, r, t) { r = r + P.subParser("makehtml.encodeCode")(a, n, s) + t; return "\n\n¨G" + (s.ghCodeBlocks.push({ text: e, codeblock: r }) - 1) + "G\n\n"; }, "^ {0,3}<pre\\b[^>]*>\\s*<code\\b[^>]*>", "^ {0,3}</code>\\s*</pre>", "gim" )), (e = s.converter._dispatch("makehtml.hashPreCodeTags.after", e, n, s).getText()) ); }), P.subParser("makehtml.headers", function (e, n, s) { "use strict"; e = s.converter._dispatch("makehtml.headers.before", e, n, s).getText(); var i = isNaN(parseInt(n.headerLevelStart)) ? 1 : parseInt(n.headerLevelStart), a = n.smoothLivePreview ? /^(.+)[ \t]*\n={2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n=+[ \t]*\n+/gm, r = n.smoothLivePreview ? /^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n-+[ \t]*\n+/gm, a = ((e = (e = e.replace(a, function (e, a) { var r = P.subParser("makehtml.spanGamut")(a, n, s), a = n.noHeaderId ? "" : ' id="' + o(a) + '"', a = "<h" + i + a + ">" + r + "</h" + i + ">"; return P.subParser("makehtml.hashBlock")(a, n, s); })).replace(r, function (e, a) { var r = P.subParser("makehtml.spanGamut")(a, n, s), a = n.noHeaderId ? "" : ' id="' + o(a) + '"', t = i + 1, a = "<h" + t + a + ">" + r + "</h" + t + ">"; return P.subParser("makehtml.hashBlock")(a, n, s); })), n.requireSpaceBeforeHeadingText ? /^(#{1,6})[ \t]+(.+?)[ \t]*#*\n+/gm : /^(#{1,6})[ \t]*(.+?)[ \t]*#*\n+/gm); function o(e) { var a = (e = n.customizedHeaderId && (a = e.match(/{([^{]+?)}\s*$/)) && a[1] ? a[1] : e), e = P.helper.isString(n.prefixHeaderId) ? n.prefixHeaderId : !0 === n.prefixHeaderId ? "section-" : ""; return ( n.rawPrefixHeaderId || (a = e + a), (a = (n.ghCompatibleHeaderId ? a .replace(/ /g, "-") .replace(/&/g, "") .replace(/¨T/g, "") .replace(/¨D/g, "") .replace(/[&+$,\/:;=?@"#{}|^¨~\[\]`\\*)(%.!'<>]/g, "") : n.rawHeaderId ? a.replace(/ /g, "-").replace(/&/g, "&").replace(/¨T/g, "¨").replace(/¨D/g, "$").replace(/["']/g, "-") : a.replace(/[^\w]/g, "") ).toLowerCase()), n.rawPrefixHeaderId && (a = e + a), s.hashLinkCounts[a] ? (a = a + "-" + s.hashLinkCounts[a]++) : (s.hashLinkCounts[a] = 1), a ); } return ( (e = e.replace(a, function (e, a, r) { var t = r, t = (n.customizedHeaderId && (t = r.replace(/\s?{([^{]+?)}\s*$/, "")), P.subParser("makehtml.spanGamut")(t, n, s)), r = n.noHeaderId ? "" : ' id="' + o(r) + '"', a = i - 1 + a.length, r = "<h" + a + r + ">" + t + "</h" + a + ">"; return P.subParser("makehtml.hashBlock")(r, n, s); })), (e = s.converter._dispatch("makehtml.headers.after", e, n, s).getText()) ); }), P.subParser("makehtml.horizontalRule", function (e, a, r) { "use strict"; e = r.converter._dispatch("makehtml.horizontalRule.before", e, a, r).getText(); var t = P.subParser("makehtml.hashBlock")("<hr />", a, r); return ( (e = (e = (e = e.replace(/^ {0,2}( ?-){3,}[ \t]*$/gm, t)).replace(/^ {0,2}( ?\*){3,}[ \t]*$/gm, t)).replace(/^ {0,2}( ?_){3,}[ \t]*$/gm, t)), (e = r.converter._dispatch("makehtml.horizontalRule.after", e, a, r).getText()) ); }), P.subParser("makehtml.images", function (e, l, h) { "use strict"; function a(e, a, r, t, n, s, i, o) { return c(e, a, r, (t = P.helper.applyBaseUrl(l.relativePathBaseUrl, t)), n, s, 0, o); } function c(e, a, r, t, n, s, i, o) { var l = h.gUrls, c = h.gTitles, u = h.gDimensions; if (((r = r.toLowerCase()), (o = o || ""), -1 < e.search(/\(<?\s*>? ?(['"].*['"])?\)$/m))) t = ""; else if ("" === t || null === t) { if (((t = "#" + (r = "" !== r && null !== r ? r : a.toLowerCase().replace(/ ?\n/g, " "))), P.helper.isUndefined(l[r]))) return e; (t = l[r]), P.helper.isUndefined(c[r]) || (o = c[r]), P.helper.isUndefined(u[r]) || ((n = u[r].width), (s = u[r].height)); } a = a.replace(/"/g, """).replace(P.helper.regexes.asteriskDashTildeAndColon, P.helper.escapeCharactersCallback); e = '<img src="' + (t = t.replace(P.helper.regexes.asteriskDashTildeAndColon, P.helper.escapeCharactersCallback)) + '" alt="' + a + '"'; return ( o && P.helper.isString(o) && (e += ' title="' + (o = o.replace(/"/g, """).replace(P.helper.regexes.asteriskDashTildeAndColon, P.helper.escapeCharactersCallback)) + '"'), n && s && (e = e + (' width="' + (n = "*" === n ? "auto" : n)) + '" height="' + (s = "*" === s ? "auto" : s) + '"'), (e += " />") ); } return ( (e = (e = (e = (e = (e = (e = h.converter._dispatch("makehtml.images.before", e, l, h).getText()).replace(/!\[([^\]]*?)] ?(?:\n *)?\[([\s\S]*?)]()()()()()/g, c)).replace( /!\[([^\]]*?)][ \t]*()\([ \t]?<?(data:.+?\/.+?;base64,[A-Za-z0-9+/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g, function (e, a, r, t, n, s, i, o) { return c(e, a, r, (t = t.replace(/\s/g, "")), n, s, 0, o); } )).replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<([^>]*)>(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(?:(["'])([^"]*?)\6))?[ \t]?\)/g, a)).replace( /!\[([^\]]*?)][ \t]*()\([ \t]?<?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g, a )).replace(/!\[([^\[\]]+)]()()()()()/g, c)), (e = h.converter._dispatch("makehtml.images.after", e, l, h).getText()) ); }), P.subParser("makehtml.italicsAndBold", function (e, a, r) { "use strict"; return ( (e = r.converter._dispatch("makehtml.italicsAndBold.before", e, a, r).getText()), (e = (e = (e = (e = a.literalMidWordUnderscores ? (e = (e = e.replace(/\b___(\S[\s\S]*?)___\b/g, function (e, a) { return "<strong><em>" + a + "</em></strong>"; })).replace(/\b__(\S[\s\S]*?)__\b/g, function (e, a) { return "<strong>" + a + "</strong>"; })).replace(/\b_(\S[\s\S]*?)_\b/g, function (e, a) { return "<em>" + a + "</em>"; }) : (e = (e = e.replace(/___(\S[\s\S]*?)___/g, function (e, a) { return /\S$/.test(a) ? "<strong><em>" + a + "</em></strong>" : e; })).replace(/__(\S[\s\S]*?)__/g, function (e, a) { return /\S$/.test(a) ? "<strong>" + a + "</strong>" : e; })).replace(/_([^\s_][\s\S]*?)_/g, function (e, a) { return /\S$/.test(a) ? "<em>" + a + "</em>" : e; })).replace(/\*\*\*(\S[\s\S]*?)\*\*\*/g, function (e, a) { return /\S$/.test(a) ? "<strong><em>" + a + "</em></strong>" : e; })).replace(/\*\*(\S[\s\S]*?)\*\*/g, function (e, a) { return /\S$/.test(a) ? "<strong>" + a + "</strong>" : e; })).replace(/\*([^\s*][\s\S]*?)\*/g, function (e, a) { return /\S$/.test(a) ? "<em>" + a + "</em>" : e; })), (e = r.converter._dispatch("makehtml.italicsAndBold.after", e, a, r).getText()) ); }), (s = "makehtml.links"), P.subParser("makehtml.links", function (e, a, r) { return ( (e = r.converter._dispatch(s + ".start", e, a, r).getText()), (e = P.subParser("makehtml.links.reference")(e, a, r)), (e = P.subParser("makehtml.links.inline")(e, a, r)), (e = P.subParser("makehtml.links.referenceShortcut")(e, a, r)), (e = P.subParser("makehtml.links.angleBrackets")(e, a, r)), (e = (e = (e = P.subParser("makehtml.links.ghMentions")(e, a, r)).replace(/<a\s[^>]*>[\s\S]*<\/a>/g, function (e) { return P.helper._hashHTMLSpan(e, r); })).replace(/<img\s[^>]*\/?>/g, function (e) { return P.helper._hashHTMLSpan(e, r); })), (e = P.subParser("makehtml.links.naked")(e, a, r)), (e = r.converter._dispatch(s + ".end", e, a, r).getText()) ); }), P.subParser("makehtml.links.inline", function (e, a, r) { var t = void 0 + ".inline", n = /\[(.*?)]()()()()\(<? ?>? ?(?:["'](.*)["'])?\)/g, s = /\[((?:\[[^\]]*]|[^\[\]])*)]()\s?\([ \t]?<([^>]*)>(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g, i = /\[([\S ]*?)]\s?()\( *<?([^\s'"]*?(?:\([\S]*?\)[\S]*?)?)>?\s*(?:()(['"])(.*?)\5)? *\)/g, o = /\[([\S ]*?)]\s?()\( *<?([^\s'"]*?(?:\([\S]*?\)[\S]*?)?)>?\s+()()\((.*?)\) *\)/g; return ( (e = (e = (e = (e = (e = r.converter._dispatch(t + ".start", e, a, r).getText()).replace(n, l(n, t, a, r, !0))).replace(s, l(s, t, a, r))).replace(i, l(i, t, a, r))).replace(o, l(o, t, a, r))), (e = r.converter._dispatch(t + ".end", e, a, r).getText()) ); }), P.subParser("makehtml.links.reference", function (e, a, r) { var t = void 0 + ".reference", n = /\[((?:\[[^\]]*]|[^\[\]])*)] ?(?:\n *)?\[(.*?)]()()()()/g; return (e = (e = r.converter._dispatch(t + ".start", e, a, r).getText()).replace(n, i(n, t, a, r))), (e = r.converter._dispatch(t + ".end", e, a, r).getText()); }), P.subParser("makehtml.links.referenceShortcut", function (e, a, r) { var t = void 0 + ".referenceShortcut", n = /\[([^\[\]]+)]()()()()()/g; return (e = (e = r.converter._dispatch(t + ".start", e, a, r).getText()).replace(n, i(n, t, a, r))), (e = r.converter._dispatch(t + ".end", e, a, r).getText()); }), P.subParser("makehtml.links.ghMentions", function (e, s, i) { var o = void 0 + "ghMentions"; if (!s.ghMentions) return e; e = i.converter._dispatch(o + ".start", e, s, i).getText(); var l = /(^|\s)(\\)?(@([a-z\d]+(?:[a-z\d._-]+?[a-z\d]+)*))/gi; return ( (e = e.replace(l, function (e, a, r, t, n) { if ("\\" === r) return a + t; if (!P.helper.isString(s.ghMentionsLink)) throw new Error("ghMentionsLink option must be a string"); r = s.ghMentionsLink.replace(/{u}/g, n); return a + b(_(l, o + ".captureStart", e, t, null, r, null, s, i), s, i); })), (e = i.converter._dispatch(o + ".end", e, s, i).getText()) ); }), P.subParser("makehtml.links.angleBrackets", function (e, t, n) { var s = "makehtml.links.angleBrackets", i = ((e = n.converter._dispatch(s + ".start", e, t, n).getText()), /<(((?:https?|ftp):\/\/|www\.)[^'">\s]+)>/gi), o = ((e = e.replace(i, function (e, a, r) { return b(_(i, s + ".captureStart", e, a, null, (a = "www." === r ? "http://" + a : a), null, t, n), t, n); })), /<(?:mailto:)?([-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi); return ( (e = e.replace(o, function (e, a) { var r = "mailto:"; return ( (a = P.subParser("makehtml.unescapeSpecialChars")(a, t, n)), t.encodeEmails ? ((r = P.helper.encodeEmailAddress(r + a)), (a = P.helper.encodeEmailAddress(a))) : (r += a), b(_(o, s + ".captureStart", e, a, null, r, null, t, n), t, n) ); })), (e = n.converter._dispatch(s + ".end", e, t, n).getText()) ); }), P.subParser("makehtml.links.naked", function (e, u, h) { if (!u.simplifiedAutoLink) return e; var m = "makehtml.links.naked", d = ((e = h.converter._dispatch(m + ".start", e, u, h).getText()), /([_*~]*?)(((?:https?|ftp):\/\/|www\.)[^\s<>"'`´.-][^\s<>"'`´]*?\.[a-z\d.]+[^\s<>"']*)\1/gi), n = ((e = e.replace(d, function (e, a, r, t) { for (var n = "", s = r.length - 1; 0 <= s; --s) { var i = r.charAt(s); if (/[_*~,;:.!?]/.test(i)) (r = r.slice(0, -1)), (n = i + n); else if (/\)/.test(i)) { var o = r.match(/\(/g) || [], l = r.match(/\)/g); if (!(o.length < l.length)) break; (r = r.slice(0, -1)), (n = i + n); } else { if (!/]/.test(i)) break; (o = r.match(/\[/g) || []), (l = r.match(/\]/g)); if (!(o.length < l.length)) break; (r = r.slice(0, -1)), (n = i + n); } } var c = r; return ( (r = "www." === t ? "http://" + r : r), (c = c.replace(P.helper.regexes.asteriskDashTildeAndColon, P.helper.escapeCharactersCallback)), a + b(_(d, m + ".captureStart", e, c, null, r, null, u, h), u, h) + n + a ); })), /(^|\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-/=?^_`{|}~.]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(?=$|\s)/gim); return ( (e = e.replace(n, function (e, a, r) { var t = "mailto:"; return ( (r = P.subParser("makehtml.unescapeSpecialChars")(r, u, h)), u.encodeEmails ? ((t = P.helper.encodeEmailAddress(t + r)), (r = P.helper.encodeEmailAddress(r))) : (t += r), a + b(_(n, m + ".captureStart", e, r, null, t, null, u, h), u, h) ); })), (e = h.converter._dispatch(m + ".end", e, u, h).getText()) ); }), P.subParser("makehtml.lists", function (e, g, p) { "use strict"; function h(e, a) { p.gListLevel++, (e = e.replace(/\n{2,}$/, "\n")); var r = /(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[([xX ])])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0| {0,3}([*+-]|\d+[.])[ \t]+))/gm, d = /\n[ \t]*\n(?!¨0)/.test((e += "¨0")); return ( g.disableForced4SpacesIndentedSublists && (r = /(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[([xX ])])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0|\2([*+-]|\d+[.])[ \t]+))/gm), (e = (e = e.replace(r, function (e, a, r, t, n, s, i) { i = i && "" !== i.trim(); var n = P.subParser("makehtml.outdent")(n, g, p), o = ""; if ( (s && g.tasklists && ((o = ' class="task-list-item'), g.moreStyling && (o += i ? " task-list-item-complete" : ""), (o += '" style="list-style-type: none;"'), (n = n.replace(/^[ \t]*\[([xX ])?]/m, function () { var e = '<input type="checkbox" disabled style="margin: 0px 0.35em 0.25em -1.6em; vertical-align: middle;"'; return i && (e += " checked"), (e += ">"); }))), (n = n.replace(/^([-*+]|\d\.)[ \t]+[\S\n ]*/g, function (e) { return "¨A" + e; })), /^#+.+\n.+/.test(n) && (n = n.replace(/^(#+.+)$/m, "$1\n")), a || -1 < n.search(/\n{2,}/)) ) { (n = P.subParser("makehtml.githubCodeBlocks")(n, g, p)), (n = P.subParser("makehtml.blockQuotes")(n, g, p)), (n = P.subParser("makehtml.headers")(n, g, p)), (n = P.subParser("makehtml.lists")(n, g, p)), (n = P.subParser("makehtml.codeBlocks")(n, g, p)), (n = P.subParser("makehtml.tables")(n, g, p)); for (var l = (n = (n = (n = P.subParser("makehtml.hashHTMLBlocks")(n, g, p)).replace(/^\n+/g, "")).replace(/\n+$/g, "")).split(/\n{2,}/g), c = [], u = l.length, h = 0; h < u; h++) { var m = l[h]; 0 <= m.search(/¨([KG])(\d+)\1/g) ? c.push(m) : 0 <= m.search(/\S/) && ((m = (m = P.subParser("makehtml.spanGamut")(m, g, p)).replace(/^([ \t]*)/g, "<p>")), (m += "</p>"), c.push(m)); } n = (n = (n = c.join("\n")).replace(/^\n+/g, "")).replace(/\n+$/g, ""); } else (n = (n = P.subParser("makehtml.lists")(n, g, p)).replace(/\n$/, "")), (n = (n = P.subParser("makehtml.hashHTMLBlocks")(n, g, p)).replace(/\n\n+/g, "\n\n")), (n = (d ? P.subParser("makehtml.paragraphs") : P.subParser("makehtml.spanGamut"))(n, g, p)); return (n = "<li" + o + ">" + (n = n.replace("¨A", "")) + "</li>\n"); })).replace(/¨0/g, "")), p.gListLevel--, (e = a ? e.replace(/\s+$/, "") : e) ); } function m(e, a) { if ("ol" === a) { a = e.match(/^ *(\d+)\./); if (a && "1" !== a[1]) return ' start="' + a[1] + '"'; } return ""; } function n(n, s, i) { var e, o = g.disableForced4SpacesIndentedSublists ? /^ ?\d+\.[ \t]/gm : /^ {0,3}\d+\.[ \t]/gm, l = g.disableForced4SpacesIndentedSublists ? /^ ?[*+-][ \t]/gm : /^ {0,3}[*+-][ \t]/gm, c = "ul" === s ? o : l, u = ""; return ( -1 !== n.search(c) ? (function e(a) { var r = a.search(c), t = m(n, s); -1 !== r ? ((u += "\n\n<" + s + t + ">\n" + h(a.slice(0, r), !!i) + "</" + s + ">\n"), (c = "ul" === (s = "ul" === s ? "ol" : "ul") ? o : l), e(a.slice(r))) : (u += "\n\n<" + s + t + ">\n" + h(a, !!i) + "</" + s + ">\n"); })(n) : ((e = m(n, s)), (u = "\n\n<" + s + e + ">\n" + h(n, !!i) + "</" + s + ">\n")), u ); } return ( (e = p.converter._dispatch("lists.before", e, g, p).getText()), (e += "¨0"), (e = (e = p.gListLevel ? e.replace(/^(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm, function (e, a, r) { return n(a, -1 < r.search(/[*+-]/g) ? "ul" : "ol", !0); }) : e.replace(/(\n\n|^\n?)(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm, function (e, a, r, t) { return n(r, -1 < t.search(/[*+-]/g) ? "ul" : "ol", !1); })).replace(/¨0/, "")), (e = p.converter._dispatch("makehtml.lists.after", e, g, p).getText()) ); }), P.subParser("makehtml.metadata", function (e, a, t) { "use strict"; return a.metadata ? ((e = (e = (e = (e = t.converter._dispatch("makehtml.metadata.before", e, a, t).getText()).replace(/^\s*«««+(\S*?)\n([\s\S]+?)\n»»»+\n/, function (e, a, r) { return n(r), "¨M"; })).replace(/^\s*---+(\S*?)\n([\s\S]+?)\n---+\n/, function (e, a, r) { return a && (t.metadata.format = a), n(r), "¨M"; })).replace(/¨M/g, "")), t.converter._dispatch("makehtml.metadata.after", e, a, t).getText()) : e; function n(e) { (e = (e = (e = (t.metadata.raw = e).replace(/&/g, "&").replace(/"/g, """)).replace(/¨D/g, "$$").replace(/¨T/g, "¨")).replace(/\n {4}/g, " ")).replace(/^([\S ]+): +([\s\S]+?)$/gm, function (e, a, r) { return (t.metadata.parsed[a] = r), ""; }); } }), P.subParser("makehtml.outdent", function (e, a, r) { "use strict"; return (e = (e = (e = r.converter._dispatch("makehtml.outdent.before", e, a, r).getText()).replace(/^(\t|[ ]{1,4})/gm, "¨0")).replace(/¨0/g, "")), (e = r.converter._dispatch("makehtml.outdent.after", e, a, r).getText()); }), P.subParser("makehtml.paragraphs", function (e, a, r) { "use strict"; for (var t = (e = (e = (e = r.converter._dispatch("makehtml.paragraphs.before", e, a, r).getText()).replace(/^\n+/g, "")).replace(/\n+$/g, "")).split(/\n{2,}/g), n = [], s = t.length, i = 0; i < s; i++) { var o = t[i]; 0 <= o.search(/¨(K|G)(\d+)\1/g) ? n.push(o) : 0 <= o.search(/\S/) && ((o = (o = P.subParser("makehtml.spanGamut")(o, a, r)).replace(/^([ \t]*)/g, "<p>")), (o += "</p>"), n.push(o)); } for (s = n.length, i = 0; i < s; i++) { for (var l = "", c = n[i], u = !1; /¨(K|G)(\d+)\1/.test(c); ) { var h = RegExp.$1, m = RegExp.$2; (l = (l = "K" === h ? r.gHtmlBlocks[m] : u ? P.subParser("makehtml.encodeCode")(r.ghCodeBlocks[m].text, a, r) : r.ghCodeBlocks[m].codeblock).replace(/\$/g, "$$$$")), (c = c.replace(/(\n\n)?¨(K|G)\d+\2(\n\n)?/, l)), /^<pre\b[^>]*>\s*<code\b[^>]*>/.test(c) && (u = !0); } n[i] = c; } return (e = (e = (e = n.join("\n")).replace(/^\n+/g, "")).replace(/\n+$/g, "")), r.converter._dispatch("makehtml.paragraphs.after", e, a, r).getText(); }), P.subParser("makehtml.runExtension", function (e, a, r, t) { "use strict"; return e.filter ? (a = e.filter(a, t.converter, r)) : e.regex && ((t = e.regex) instanceof RegExp || (t = new RegExp(t, "g")), (a = a.replace(t, e.replace))), a; }), P.subParser("makehtml.spanGamut", function (e, a, r) { "use strict"; return ( (e = r.converter._dispatch("makehtml.span.before", e, a, r).getText()), (e = P.subParser("makehtml.codeSpans")(e, a, r)), (e = P.subParser("makehtml.escapeSpecialCharsWithinTagAttributes")(e, a, r)), (e = P.subParser("makehtml.encodeBackslashEscapes")(e, a, r)), (e = P.subParser("makehtml.images")(e, a, r)), (e = r.converter._dispatch("smakehtml.links.before", e, a, r).getText()), (e = P.subParser("makehtml.links")(e, a, r)), (e = r.converter._dispatch("smakehtml.links.after", e, a, r).getText()), (e = P.subParser("makehtml.emoji")(e, a, r)), (e = P.subParser("makehtml.underline")(e, a, r)), (e = P.subParser("makehtml.italicsAndBold")(e, a, r)), (e = P.subParser("makehtml.strikethrough")(e, a, r)), (e = P.subParser("makehtml.ellipsis")(e, a, r)), (e = P.subParser("makehtml.hashHTMLSpans")(e, a, r)), (e = P.subParser("makehtml.encodeAmpsAndAngles")(e, a, r)), a.simpleLineBreaks ? /\n\n¨K/.test(e) || (e = e.replace(/\n+/g, "<br />\n")) : (e = e.replace(/ +\n/g, "<br />\n")), (e = r.converter._dispatch("makehtml.spanGamut.after", e, a, r).getText()) ); }), P.subParser("makehtml.strikethrough", function (e, a, r) { "use strict"; return ( a.strikethrough && ((e = (e = r.converter._dispatch("makehtml.strikethrough.before", e, a, r).getText()).replace(/(?:~){2}([\s\S]+?)(?:~){2}/g, function (e, a) { return "<del>" + a + "</del>"; })), (e = r.converter._dispatch("makehtml.strikethrough.after", e, a, r).getText())), e ); }), P.subParser("makehtml.stripLinkDefinitions", function (o, l, c) { "use strict"; function e(e, a, r, t, n, s, i) { return ( (a = a.toLowerCase()), o.toLowerCase().split(a).length - 1 < 2 ? e : (r.match(/^data:.+?\/.+?;base64,/) ? (c.gUrls[a] = r.replace(/\s/g, "")) : ((r = P.helper.applyBaseUrl(l.relativePathBaseUrl, r)), (c.gUrls[a] = P.subParser("makehtml.encodeAmpsAndAngles")(r, l, c))), s ? s + i : (i && (c.gTitles[a] = i.replace(/"|'/g, """)), l.parseImgDimensions && t && n && (c.gDimensions[a] = { width: t, height: n }), "")) ); } return (o = (o = (o = (o += "¨0").replace( /^ {0,3}\[([^\]]+)]:[ \t]*\n?[ \t]*<?(data:.+?\/.+?;base64,[A-Za-z0-9+/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n\n|(?=¨0)|(?=\n\[))/gm, e )).replace(/^ {0,3}\[([^\]]+)]:[ \t]*\n?[ \t]*<?([^>\s]+)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=¨0))/gm, e)).replace(/¨0/, "")); }), P.subParser("makehtml.tables", function (e, y, x) { "use strict"; if (!y.tables) return e; function a(e) { for (var a = e.split("\n"), r = 0; r < a.length; ++r) /^ {0,3}\|/.test(a[r]) && (a[r] = a[r].replace(/^ {0,3}\|/, "")), /\|[ \t]*$/.test(a[r]) && (a[r] = a[r].replace(/\|[ \t]*$/, "")), (a[r] = P.subParser("makehtml.codeSpans")(a[r], y, x)); var t, n, s, i, o, l = a[0].split("|").map(function (e) { return e.trim(); }), c = a[1].split("|").map(function (e) { return e.trim(); }), u = [], h = [], m = [], d = []; for (a.shift(), a.shift(), r = 0; r < a.length; ++r) "" !== a[r].trim() && u.push( a[r].split("|").map(function (e) { return e.trim(); }) ); if (l.length < c.length) return e; for (r = 0; r < c.length; ++r) m.push(((t = c[r]), /^:[ \t]*--*$/.test(t) ? ' style="text-align:left;"' : /^--*[ \t]*:[ \t]*$/.test(t) ? ' style="text-align:right;"' : /^:[ \t]*--*[ \t]*:$/.test(t) ? ' style="text-align:center;"' : "")); for (r = 0; r < l.length; ++r) P.helper.isUndefined(m[r]) && (m[r] = ""), h.push( ((n = l[r]), (s = m[r]), void 0, (i = ""), (n = n.trim()), "<th" + (i = y.tablesHeaderId || y.tableHeaderId ? ' id="' + n.replace(/ /g, "_").toLowerCase() + '"' : i) + s + ">" + (n = P.subParser("makehtml.spanGamut")(n, y, x)) + "</th>\n") ); for (r = 0; r < u.length; ++r) { for (var g = [], p = 0; p < h.length; ++p) P.helper.isUndefined(u[r][p]), g.push(((o = u[r][p]), "<td" + m[p] + ">" + P.subParser("makehtml.spanGamut")(o, y, x) + "</td>\n")); d.push(g); } for (var _ = h, b = d, f = "<table>\n<thead>\n<tr>\n", k = _.length, w = 0; w < k; ++w) f += _[w]; for (f += "</tr>\n</thead>\n<tbody>\n", w = 0; w < b.length; ++w) { f += "<tr>\n"; for (var v = 0; v < k; ++v) f += b[w][v]; f += "</tr>\n"; } return (f += "</tbody>\n</table>\n"); } return ( (e = (e = (e = (e = x.converter._dispatch("makehtml.tables.before", e, y, x).getText()).replace(/\\(\|)/g, P.helper.escapeCharactersCallback)).replace( /^ {0,3}\|?.+\|.+\n {0,3}\|?[ \t]*:?[ \t]*[-=]{2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*[-=]{2,}[\s\S]+?(?:\n\n|¨0)/gm, a )).replace(/^ {0,3}\|.+\|[ \t]*\n {0,3}\|[ \t]*:?[ \t]*[-=]{2,}[ \t]*:?[ \t]*\|[ \t]*\n( {0,3}\|.+\|[ \t]*\n)*(?:\n|¨0)/gm, a)), (e = x.converter._dispatch("makehtml.tables.after", e, y, x).getText()) ); }), P.subParser("makehtml.underline", function (e, a, r) { "use strict"; return a.underline ? ((e = r.converter._dispatch("makehtml.underline.before", e, a, r).getText()), (e = (e = a.literalMidWordUnderscores ? (e = e.replace(/\b___(\S[\s\S]*?)___\b/g, function (e, a) { return "<u>" + a + "</u>"; })).replace(/\b__(\S[\s\S]*?)__\b/g, function (e, a) { return "<u>" + a + "</u>"; }) : (e = e.replace(/___(\S[\s\S]*?)___/g, function (e, a) { return /\S$/.test(a) ? "<u>" + a + "</u>" : e; })).replace(/__(\S[\s\S]*?)__/g, function (e, a) { return /\S$/.test(a) ? "<u>" + a + "</u>" : e; })).replace(/(_)/g, P.helper.escapeCharactersCallback)), r.converter._dispatch("makehtml.underline.after", e, a, r).getText()) : e; }), P.subParser("makehtml.unescapeSpecialChars", function (e, a, r) { "use strict"; return ( (e = (e = r.converter._dispatch("makehtml.unescapeSpecialChars.before", e, a, r).getText()).replace(/¨E(\d+)E/g, function (e, a) { a = parseInt(a); return String.fromCharCode(a); })), (e = r.converter._dispatch("makehtml.unescapeSpecialChars.after", e, a, r).getText()) ); }), P.subParser("makeMarkdown.blockquote", function (e, a) { "use strict"; var r = ""; if (e.hasChildNodes()) for (var t = e.childNodes, n = t.length, s = 0; s < n; ++s) { var i = P.subParser("makeMarkdown.node")(t[s], a); "" !== i && (r += i); } return (r = "> " + (r = r.trim()).split("\n").join("\n> ")); }), P.subParser("makeMarkdown.break", function () { "use strict"; return " \n"; }), P.subParser("makeMarkdown.codeBlock", function (e, a) { "use strict"; var r = e.getAttribute("language"), e = e.getAttribute("precodenum"); return "```" + r + "\n" + a.preList[e] + "\n```"; }), P.subParser("makeMarkdown.codeSpan", function (e) { "use strict"; return "`" + e.innerHTML + "`"; }), P.subParser("makeMarkdown.emphasis", function (e, a) { "use strict"; var r = ""; if (e.hasChildNodes()) { r += "*"; for (var t = e.childNodes, n = t.length, s = 0; s < n; ++s) r += P.subParser("makeMarkdown.node")(t[s], a); r += "*"; } return r; }), P.subParser("makeMarkdown.header", function (e, a, r) { "use strict"; var r = new Array(r + 1).join("#"), t = ""; if (e.hasChildNodes()) for (var t = r + " ", n = e.childNodes, s = n.length, i = 0; i < s; ++i) t += P.subParser("makeMarkdown.node")(n[i], a); return t; }), P.subParser("makeMarkdown.hr", function () { "use strict"; return "---"; }), P.subParser("makeMarkdown.image", function (e) { "use strict"; var a = ""; return ( e.hasAttribute("src") && ((a = (a += " + "<" + e.getAttribute("src") + ">"), e.hasAttribute("width") && e.hasAttribute("height") && (a += " =" + e.getAttribute("width") + "x" + e.getAttribute("height")), e.hasAttribute("title") && (a += ' "' + e.getAttribute("title") + '"'), (a += ")")), a ); }), P.subParser("makeMarkdown.input", function (e, a) { "use strict"; for (var r = "", t = (null !== e.getAttribute("checked") ? (r += "[x]") : (r += "[ ]"), e.childNodes), n = t.length, s = 0; s < n; ++s) r += P.subParser("makeMarkdown.node")(t[s], a); return r; }), P.subParser("makeMarkdown.links", function (e, a) { "use strict"; var r = ""; if (e.hasChildNodes() && e.hasAttribute("href")) { for (var t = e.childNodes, n = t.length, r = "[", s = 0; s < n; ++s) r += P.subParser("makeMarkdown.node")(t[s], a); (r = (r += "](") + ("<" + e.getAttribute("href") + ">")), e.hasAttribute("title") && (r += ' "' + e.getAttribute("title") + '"'), (r += ")"); } return r; }), P.subParser("makeMarkdown.list", function (e, a, r) { "use strict"; var t = ""; if (!e.hasChildNodes()) return ""; for (var n = e.childNodes, s = n.length, i = e.getAttribute("start") || 1, o = 0; o < s; ++o) void 0 !== n[o].tagName && "li" === n[o].tagName.toLowerCase() && ((t += ("ol" === r ? i.toString() + ". " : "- ") + P.subParser("makeMarkdown.listItem")(n[o], a)), ++i); return t.trim(); }), P.subParser("makeMarkdown.listItem", function (e, a) { "use strict"; for (var r = "", t = e.childNodes, n = t.length, s = 0; s < n; ++s) r += P.subParser("makeMarkdown.node")(t[s], a); return ( /\n$/.test(r) ? (r = r .split("\n") .join("\n ") .replace(/^ {4}$/gm, "") .replace(/\n\n+/g, "\n\n")) : (r += "\n"), r ); }), P.subParser("makeMarkdown.node", function (e, a, r) { "use strict"; r = r || !1; var t = ""; if (3 === e.nodeType) return P.subParser("makeMarkdown.txt")(e, a); if (8 === e.nodeType) return "\x3c!--" + e.data + "--\x3e\n\n"; if (1 !== e.nodeType) return ""; switch (e.tagName.toLowerCase()) { case "h1": r || (t = P.subParser("makeMarkdown.header")(e, a, 1) + "\n\n"); break; case "h2": r || (t = P.subParser("makeMarkdown.header")(e, a, 2) + "\n\n"); break; case "h3": r || (t = P.subParser("makeMarkdown.header")(e, a, 3) + "\n\n"); break; case "h4": r || (t = P.subParser("makeMarkdown.header")(e, a, 4) + "\n\n"); break; case "h5": r || (t = P.subParser("makeMarkdown.header")(e, a, 5) + "\n\n"); break; case "h6": r || (t = P.subParser("makeMarkdown.header")(e, a, 6) + "\n\n"); break; case "p": r || (t = P.subParser("makeMarkdown.paragraph")(e, a) + "\n\n"); break; case "blockquote": r || (t = P.subParser("makeMarkdown.blockquote")(e, a) + "\n\n"); break; case "hr": r || (t = P.subParser("makeMarkdown.hr")(e, a) + "\n\n"); break; case "ol": r || (t = P.subParser("makeMarkdown.list")(e, a, "ol") + "\n\n"); break; case "ul": r || (t = P.subParser("makeMarkdown.list")(e, a, "ul") + "\n\n"); break; case "precode": r || (t = P.subParser("makeMarkdown.codeBlock")(e, a) + "\n\n"); break; case "pre": r || (t = P.subParser("makeMarkdown.pre")(e, a) + "\n\n"); break; case "table": r || (t = P.subParser("makeMarkdown.table")(e, a) + "\n\n"); break; case "code": t = P.subParser("makeMarkdown.codeSpan")(e, a); break; case "em": case "i": t = P.subParser("makeMarkdown.emphasis")(e, a); break; case "strong": case "b": t = P.subParser("makeMarkdown.strong")(e, a); break; case "del": t = P.subParser("makeMarkdown.strikethrough")(e, a); break; case "a": t = P.subParser("makeMarkdown.links")(e, a); break; case "img": t = P.subParser("makeMarkdown.image")(e, a); break; case "br": t = P.subParser("makeMarkdown.break")(e, a); break; case "input": t = P.subParser("makeMarkdown.input")(e, a); break; default: t = e.outerHTML + "\n\n"; } return t; }), P.subParser("makeMarkdown.paragraph", function (e, a) { "use strict"; var r = ""; if (e.hasChildNodes()) for (var t = e.childNodes, n = t.length, s = 0; s < n; ++s) r += P.subParser("makeMarkdown.node")(t[s], a); return (r = r.trim()); }), P.subParser("makeMarkdown.pre", function (e, a) { "use strict"; e = e.getAttribute("prenum"); return "<pre>" + a.preList[e] + "</pre>"; }), P.subParser("makeMarkdown.strikethrough", function (e, a) { "use strict"; var r = ""; if (e.hasChildNodes()) { r += "~~"; for (var t = e.childNodes, n = t.length, s = 0; s < n; ++s) r += P.subParser("makeMarkdown.node")(t[s], a); r += "~~"; } return r; }), P.subParser("makeMarkdown.strong", function (e, a) { "use strict"; var r = ""; if (e.hasChildNodes()) { r += "**"; for (var t = e.childNodes, n = t.length, s = 0; s < n; ++s) r += P.subParser("makeMarkdown.node")(t[s], a); r += "**"; } return r; }), P.subParser("makeMarkdown.table", function (e, a) { "use strict"; for (var r = "", t = [[], []], n = e.querySelectorAll("thead>tr>th"), s = e.querySelectorAll("tbody>tr"), i = 0; i < n.length; ++i) { var o = P.subParser("makeMarkdown.tableCell")(n[i], a), l = "---"; if (n[i].hasAttribute("style")) switch (n[i].getAttribute("style").toLowerCase().replace(/\s/g, "")) { case "text-align:left;": l = ":---"; break; case "text-align:right;": l = "---:"; break; case "text-align:center;": l = ":---:"; } (t[0][i] = o.trim()), (t[1][i] = l); } for (i = 0; i < s.length; ++i) for (var c = t.push([]) - 1, u = s[i].getElementsByTagName("td"), h = 0; h < n.length; ++h) { var m = " "; void 0 !== u[h] && (m = P.subParser("makeMarkdown.tableCell")(u[h], a)), t[c].push(m); } var d = 3; for (i = 0; i < t.length; ++i) for (h = 0; h < t[i].length; ++h) { var g = t[i][h].length; d < g && (d = g); } for (i = 0; i < t.length; ++i) { for (h = 0; h < t[i].length; ++h) 1 === i ? (":" === t[i][h].slice(-1) ? (t[i][h] = P.helper.padEnd(t[i][h].slice(0, -1), d - 1, "-") + ":") : (t[i][h] = P.helper.padEnd(t[i][h], d, "-"))) : (t[i][h] = P.helper.padEnd(t[i][h], d)); r += "| " + t[i].join(" | ") + " |\n"; } return r.trim(); }), P.subParser("makeMarkdown.tableCell", function (e, a) { "use strict"; var r = ""; if (!e.hasChildNodes()) return ""; for (var t = e.childNodes, n = t.length, s = 0; s < n; ++s) r += P.subParser("makeMarkdown.node")(t[s], a, !0); return r.trim(); }), P.subParser("makeMarkdown.txt", function (e) { "use strict"; e = e.nodeValue; return ( (e = (e = e.replace(/ +/g, " ")).replace(/¨NBSP;/g, " ")), (e = (e = (e = (e = (e = (e = (e = (e = (e = P.helper.unescapeHTMLEntities(e)).replace(/([*_~|`])/g, "\\$1")).replace(/^(\s*)>/g, "\\$1>")).replace(/^#/gm, "\\#")).replace(/^(\s*)([-=]{3,})(\s*)$/, "$1\\$2$3")).replace( /^( {0,3}\d+)\./gm, "$1\\." )).replace(/^( {0,3})([+-])/gm, "$1\\$2")).replace(/]([\s]*)\(/g, "\\]$1\\(")).replace(/^ {0,3}\[([\S \t]*?)]:/gm, "\\[$1]:")) ); }), (P.Converter = function (e) { "use strict"; var a, r, n = {}, o = [], l = [], c = {}, t = d, s = { parsed: {}, raw: "", format: "" }; for (a in ((e = e || {}), m)) m.hasOwnProperty(a) && (n[a] = m[a]); if ("object" != typeof e) throw Error("Converter expects the passed parameter to be an object, but " + typeof e + " was passed instead."); for (r in e) e.hasOwnProperty(r) && (n[r] = e[r]); function i(e, a) { if (((a = a || null), P.helper.isString(e))) { if (((a = e = P.helper.stdExtName(e)), P.extensions[e])) { console.warn("DEPRECATION WARNING: " + e + " is an old extension that uses a deprecated loading method.Please inform the developer that the extension should be updated!"); var r = P.extensions[e], t = e; if (("function" == typeof r && (r = r(new P.Converter())), P.helper.isArray(r) || (r = [r]), !(t = p(r, t)).valid)) throw Error(t.error); for (var n = 0; n < r.length; ++n) switch (r[n].type) { case "lang": o.push(r[n]); break; case "output": l.push(r[n]); break; default: throw Error("Extension loader error: Type unrecognized!!!"); } return; } if (P.helper.isUndefined(h[e])) throw Error('Extension "' + e + '" could not be loaded. It was either not found or is not a valid extension.'); e = h[e]; } "function" == typeof e && (e = e()); t = p((e = P.helper.isArray(e) ? e : [e]), a); if (!t.valid) throw Error(t.error); for (var s = 0; s < e.length; ++s) { switch (e[s].type) { case "lang": o.push(e[s]); break; case "output": l.push(e[s]); } if (e[s].hasOwnProperty("listeners")) for (var i in e[s].listeners) e[s].listeners.hasOwnProperty(i) && u(i, e[s].listeners[i]); } } function u(e, a) { if (!P.helper.isString(e)) throw Error("Invalid argument in converter.listen() method: name must be a string, but " + typeof e + " given"); if ("function" != typeof a) throw Error("Invalid argument in converter.listen() method: callback must be a function, but " + typeof a + " given"); (e = e.toLowerCase()), c.hasOwnProperty(e) || (c[e] = []), c[e].push(a); } n.extensions && P.helper.forEach(n.extensions, i), (this._dispatch = function (e, a, r, t, n) { e = e.toLowerCase(); var n = n || {}, s = ((n.converter = this), (n.text = a), (n.options = r), (n.globals = t), new P.helper.Event(e, a, n)); if (c.hasOwnProperty(e)) for (var i = 0; i < c[e].length; ++i) { var o = c[e][i](s); o && void 0 !== o && s.setText(o); } return s; }), (this.listen = function (e, a) { return u(e, a), this; }), (this.makeHtml = function (a) { if (!a) return a; var e, r, t = { gHtmlBlocks: [], gHtmlMdBlocks: [], gHtmlSpans: [], gUrls: {}, gTitles: {}, gDimensions: {}, gListLevel: 0, hashLinkCounts: {}, langExtensions: o, outputModifiers: l, converter: this, ghCodeBlocks: [], metadata: { parsed: {}, raw: "", format: "" }, }; return ( (a = (a = (a = (a = (a = a.replace(/¨/g, "¨T")).replace(/\$/g, "¨D")).replace(/\r\n/g, "\n")).replace(/\r/g, "\n")).replace(/\u00A0/g, " ")), n.smartIndentationFix && ((r = (e = a).match(/^\s*/)[0].length), (r = new RegExp("^\\s{0," + r + "}", "gm")), (a = e.replace(r, ""))), (a = "\n\n" + a + "\n\n"), (a = (a = P.subParser("makehtml.detab")(a, n, t)).replace(/^[ \t]+$/gm, "")), P.helper.forEach(o, function (e) { a = P.subParser("makehtml.runExtension")(e, a, n, t); }), (a = P.subParser("makehtml.metadata")(a, n, t)), (a = P.subParser("makehtml.hashPreCodeTags")(a, n, t)), (a = P.subParser("makehtml.githubCodeBlocks")(a, n, t)), (a = P.subParser("makehtml.hashHTMLBlocks")(a, n, t)), (a = P.subParser("makehtml.hashCodeTags")(a, n, t)), (a = P.subParser("makehtml.stripLinkDefinitions")(a, n, t)), (a = P.subParser("makehtml.blockGamut")(a, n, t)), (a = P.subParser("makehtml.unhashHTMLSpans")(a, n, t)), (a = (a = (a = P.subParser("makehtml.unescapeSpecialChars")(a, n, t)).replace(/¨D/g, "$$")).replace(/¨T/g, "¨")), (a = P.subParser("makehtml.completeHTMLDocument")(a, n, t)), P.helper.forEach(l, function (e) { a = P.subParser("makehtml.runExtension")(e, a, n, t); }), (s = t.metadata), a ); }), (this.makeMarkdown = function (e) { e = (e = (e = e.replace(/\r\n/g, "\n")).replace(/\r/g, "\n")).replace(/>[ \t]+</, ">¨NBSP;<"); for ( var a = P.helper.document.createElement("div"), r = ((a.innerHTML = e), { preList: (function (e) { for (var a = e.querySelectorAll("pre"), r = [], t = 0; t < a.length; ++t) if (1 === a[t].childElementCount && "code" === a[t].firstChild.tagName.toLowerCase()) { var n = a[t].firstChild.innerHTML.trim(), s = a[t].firstChild.getAttribute("data-language") || ""; if ("" === s) for (var i = a[t].firstChild.className.split(" "), o = 0; o < i.length; ++o) { var l = i[o].match(/^language-(.+)$/); if (null !== l) { s = l[1]; break; } } (n = P.helper.unescapeHTMLEntities(n)), r.push(n), (a[t].outerHTML = '<precode language="' + s + '" precodenum="' + t.toString() + '"></precode>'); } else r.push(a[t].innerHTML), (a[t].innerHTML = ""), a[t].setAttribute("prenum", t.toString()); return r; })(a), }), t = (!(function e(a) { for (var r = 0; r < a.childNodes.length; ++r) { var t = a.childNodes[r]; 3 === t.nodeType ? /\S/.test(t.nodeValue) || /^[ ]+$/.test(t.nodeValue) ? ((t.nodeValue = t.nodeValue.split("\n").join(" ")), (t.nodeValue = t.nodeValue.replace(/(\s)+/g, "$1"))) : (a.removeChild(t), --r) : 1 === t.nodeType && e(t); } })(a), a.childNodes), n = "", s = 0; s < t.length; s++ ) n += P.subParser("makeMarkdown.node")(t[s], r); return n; }), (this.setOption = function (e, a) { n[e] = a; }), (this.getOption = function (e) { return n[e]; }), (this.getOptions = function () { return n; }), (this.addExtension = function (e, a) { i(e, (a = a || null)); }), (this.useExtension = function (e) { i(e); }), (this.setFlavor = function (e) { if (!g.hasOwnProperty(e)) throw Error(e + " flavor was not found"); var a, r = g[e]; for (a in ((t = e), r)) r.hasOwnProperty(a) && (n[a] = r[a]); }), (this.getFlavor = function () { return t; }), (this.removeExtension = function (e) { P.helper.isArray(e) || (e = [e]); for (var a = 0; a < e.length; ++a) { for (var r = e[a], t = 0; t < o.length; ++t) o[t] === r && o.splice(t, 1); for (var n = 0; n < l.length; ++n) l[n] === r && l.splice(n, 1); } }), (this.getAllExtensions = function () { return { language: o, output: l }; }), (this.getMetadata = function (e) { return e ? s.raw : s.parsed; }), (this.getMetadataFormat = function () { return s.format; }), (this._setMetadataPair = function (e, a) { s.parsed[e] = a; }), (this._setMetadataFormat = function (e) { s.format = e; }), (this._setMetadataRaw = function (e) { s.raw = e; }); }); "function" == typeof define && define.amd ? define(function () { "use strict"; return P; }) : "undefined" != typeof module && module.exports ? (module.exports = P) : (this.showdown = P); }.call(this); setTimeout(function(){ var cfg = new MonkeyConfig({ title: 'Configure', menuCommand: true, params: { 'Automatic Temperature': { type: 'checkbox', default: true }, 'Temperature': { type: 'number', default: '1' }, 'Automatic Maximum Length': { type: 'checkbox', default: true }, 'Maximum Length': { type: 'number', default: '2048' }, 'Automatic Instructions': { type: 'checkbox', default: true }, chatGPT_instructions: { type: 'text', default: '' }, }, // onSave: setOptions }) GM_setValue('fullcontent','') var rootpath = "#root > div.route-container > div > div.pg-root.page-body.full-width.flush > div > div.pg-body"; var path = rootpath + " > div.pg-editor > div > div > div.chat-pg-right-wrapper > div.chat-pg-footer > span > button.btn.btn-sm.btn-minimal.btn-neutral" $('<button id="continue" tabindex="0" class="btn btn-sm btn-filled btn-primary" type="button" data-testid="pg-submit-btn" aria-haspopup="true" aria-expanded="false"><span class="btn-label-wrap"><span class="btn-label-inner">Continue‍</span></span></button>').insertAfter(path) var e = jQuery.Event("keypress"); e.which = 9; e.keyCode = 9; if (cfg.get('Automatic Temperature')) { $(rootpath + " > div.pg-right > div.pg-right-content > div > div > div:nth-child(3) > div > div.css-1povu0j > input").val(Number(cfg.get('Temperature'))) $(rootpath + " > div.pg-right > div.pg-right-content > div > div > div:nth-child(3) > div > div.css-1povu0j > input").focus().trigger(e); } if (cfg.get('Automatic Maximum Length')) { $("body > div:nth-child(2) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(1) > div:nth-child(2) > div:nth-child(2) > div:nth-child(2) > div:nth-child(2) > div:nth-child(1) > div:nth-child(4) > div:nth-child(1) > div:nth-child(1) > input:nth-child(2)").val(Number(cfg.get('Maximum Length'))) $("body > div:nth-child(2) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(1) > div:nth-child(2) > div:nth-child(2) > div:nth-child(2) > div:nth-child(2) > div:nth-child(1) > div:nth-child(4) > div:nth-child(1) > div:nth-child(1) > input:nth-child(2)").focus().trigger(e); } // chat-pg-instructions $(rootpath + ' > div.pg-editor > div > div > div:nth-child(1) > div > div.text-input-header-wrapper.overflow-wrapper.text-input > textarea').focus() if (cfg.get('Automatic Instructions')) { $(rootpath + ' > div.pg-editor > div > div > div:nth-child(1) > div > div.text-input-header-wrapper.overflow-wrapper.text-input > textarea').text(cfg.get('chatGPT_instructions')) } $("button[id='continue']").click(function(){ $(rootpath + " > div.pg-editor > div > div > div.chat-pg-right-wrapper > div.chat-pg-panel-wrapper > div > div > div.chat-pg-message.add-message")[0].click() setTimeout(function(){ $(rootpath + " > div.pg-editor > div > div > div.chat-pg-right-wrapper > div.chat-pg-panel-wrapper > div > div > div:nth-child(3) > div.text-input-with-focus > textarea").text('continue') }, 500); setTimeout(function(){ $(rootpath + " > div.pg-editor > div > div > div.chat-pg-right-wrapper > div.chat-pg-footer > span > button:nth-child(1)")[0].click() }, 1000); }); /*--------------------*/ function export_text(){ console.clear() var pattern = $("#root > div.route-container > div > div.pg-root.page-body.full-width.flush > div > div.pg-body > div.pg-editor > div > div > div.chat-pg-right-wrapper > div.chat-pg-panel-wrapper > div > div > div") $.each(pattern , function (index, value){ content = GM_getValue('fullcontent') + content var role = $(this).find('.chat-message-role-text').text() var content = $(this).find('.text-input-with-focus').text() if (role==='assistant'){ //console.log('role='+role) //console.log('index='+index) console.log(content) GM_setValue('fullcontent',content) } } )} function appendValue(crap) { let currentValue = GM_getValue('fullcontent', ''); let newValue = currentValue + crap GM_setValue('fullcontent', newValue); } $('<button id="export" tabindex="0" class="btn btn-sm btn-filled btn-primary" type="button" data-testid="pg-submit-btn" aria-haspopup="true" aria-expanded="false"><span class="btn-label-wrap"><span class="btn-label-inner">Export‍</span></span></button>').insertAfter(path) $("button[id='export']").click(function(){ var pattern = $("#root > div.route-container > div > div.pg-root.page-body.full-width.flush > div > div.pg-body > div.pg-editor > div > div > div.chat-pg-right-wrapper > div.chat-pg-panel-wrapper > div > div > div") /* GM_setClipboard(GM_getValue('fullcontent'), "text"); */ for (let i = 0; i < localStorage.length; i++) { const key = localStorage.key(i); if (key.startsWith('oai/user')) { var crap = localStorage.getItem(localStorage.key(i)) appendValue(crap) } } var markdown = GM_getValue('fullcontent') var converter = new showdown.Converter() var zhtml = converter.makeHtml(markdown) GM_setClipboard(GM_getValue('fullcontent'), zhtml); alert('Copied to clipboard') }) }, 1000); })(jQuery);