Merge remote-tracking branch 'upstream/develop' into registration-workflow
[akkoma] / priv / static / packs / core / settings.js.map
index 3ac02452319d255ffe2478c9f4bf3c53d23eada5..cd1dd9bf82f7a961f49f409001196d6c3ba7e5d7 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/mastodon/initial_state.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/mastodon/features/emoji/unicode_to_filename.js","webpack:///./node_modules/process/browser.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/mastodon/features/emoji/emoji.js","webpack:///./node_modules/substring-trie/index.js","webpack:///./node_modules/rails-ujs/lib/assets/compiled/rails-ujs.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/core/settings.js","webpack:///./node_modules/escape-html/index.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/mastodon/features/emoji/emoji_unicode_mapping_light.js"],"names":["__webpack_require__","d","__webpack_exports__","reduceMotion","autoPlayGif","displayMedia","expandSpoilers","unfollowModal","boostModal","deleteModal","me","searchEnabled","maxChars","invitesEnabled","profile_directory","isStaff","deleteOthersNotice","prop","element","document","getElementById","initialState","JSON","parse","textContent","getMeta","meta","rights","exports","unicodeToFilename","str","result","charCode","p","i","length","charCodeAt","toString","cachedSetTimeout","cachedClearTimeout","process","module","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","e","call","this","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","Array","arguments","push","prototype","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","name","binding","cwd","chdir","dir","umask","r","buildCustomEmojis","_initial_state__WEBPACK_IMPORTED_MODULE_0__","_emoji_unicode_mapping_light__WEBPACK_IMPORTED_MODULE_1__","_emoji_unicode_mapping_light__WEBPACK_IMPORTED_MODULE_1___default","n","substring_trie__WEBPACK_IMPORTED_MODULE_2__","trie","Trie","Object","keys","unicodeMapping","assetHost","CDN_HOST","emojify","customEmojis","tagCharsWithEmojis","rtn","tagChars","invisible","_loop","match","tag","indexOf","search","slice","codePointAt","rend","replacement","lt","shortname","filename","url","static_url","startsWith","_unicodeMapping$match","shortCode","emojis","forEach","emoji","shortcode","get","replace","id","short_names","text","emoticons","keywords","imageUrl","custom","MiniTrie","words","_dict","word","dict","j","len2","char","charAt","stack","pop","substring","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","Rails","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","cspNonce","querySelector","content","expando","m","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","key","ref","setData","value","$","querySelectorAll","csrfParam","csrfToken","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","input","CustomEvent","fire","preventDefault","window","event","params","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","defaultPrevented","defineProperty","obj","data","dispatchEvent","stopEverything","target","stopPropagation","stopImmediatePropagation","delegate","eventType","handler","addEventListener","parentNode","AcceptHeaders","createXHR","prepareOptions","processResponse","*","html","xml","json","script","ajax","options","response","responseText","getResponseHeader","Math","floor","status","success","statusText","error","complete","beforeSend","readyState","XMLHttpRequest","OPENED","send","location","href","type","toUpperCase","dataType","accept","done","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","createElement","setAttribute","head","appendChild","removeChild","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","inputs","elements","disabled","option","selected","checked","map","encodeURIComponent","join","formElements","form","filter","el","allowAction","handleConfirm","answer","callback","message","getAttribute","confirm","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","handleDisabledElement","enableElement","disableElement","innerHTML","originalText","removeEventListener","handleMethod","formContent","method","action","style","display","body","click","isRemote","handleRemote","button","enctype","FormData","append","formSubmitButtonClick","formNoValidate","handleMetaClick","metaKey","ctrlKey","jQuery","rails","ajaxPrefilter","originalOptions","start","_rails_loaded","undefined","define","escape_html__WEBPACK_IMPORTED_MODULE_0__","escape_html__WEBPACK_IMPORTED_MODULE_0___default","_mastodon_features_emoji_emoji__WEBPACK_IMPORTED_MODULE_1__","require","_ref","escapeTextContentForBrowser","_ref2","avatar","file","files","URL","createObjectURL","dataset","originalSrc","src","_ref4","header","_ref6","lock","_ref7","select","_ref8","focus","execCommand","blur","classList","add","remove","err","console","matchHtmlRegExp","string","escape","exec","index","lastIndex","shortCodesToEmojiData","emojisWithoutShortCodes","processEmojiMapData","emojiMapData","native"],"mappings":"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","file":"core/settings.js","sourcesContent":["const element = document.getElementById('initial-state');\nconst initialState = element && JSON.parse(element.textContent);\n\nconst getMeta = (prop) => initialState && initialState.meta && initialState.meta[prop];\nconst getRight = (prop) => initialState && initialState.rights && initialState.rights[prop];\n\nexport const reduceMotion = getMeta('reduce_motion');\nexport const autoPlayGif = getMeta('auto_play_gif');\nexport const displayMedia = getMeta('display_media');\nexport const expandSpoilers = getMeta('expand_spoilers');\nexport const unfollowModal = getMeta('unfollow_modal');\nexport const boostModal = getMeta('boost_modal');\nexport const deleteModal = getMeta('delete_modal');\nexport const me = getMeta('me');\nexport const searchEnabled = getMeta('search_enabled');\nexport const maxChars = getMeta('max_toot_chars') || getMeta('char_limit') || 5000;\nexport const invitesEnabled = getMeta('invites_enabled');\nexport const version = getMeta('version');\nexport const mascot = getMeta('mascot');\nexport const profile_directory = getMeta('profile_directory');\nexport const isStaff = getMeta('is_staff');\n\nexport const deleteOthersNotice = getRight('delete_others_notice');\n\nexport default initialState;\n","// taken from:\n// https://github.com/twitter/twemoji/blob/47732c7/twemoji-generator.js#L848-L866\nexports.unicodeToFilename = (str) => {\n  let result = '';\n  let charCode = 0;\n  let p = 0;\n  let i = 0;\n  while (i < str.length) {\n    charCode = str.charCodeAt(i++);\n    if (p) {\n      if (result.length > 0) {\n        result += '-';\n      }\n      result += (0x10000 + ((p - 0xD800) << 10) + (charCode - 0xDC00)).toString(16);\n      p = 0;\n    } else if (0xD800 <= charCode && charCode <= 0xDBFF) {\n      p = charCode;\n    } else {\n      if (result.length > 0) {\n        result += '-';\n      }\n      result += charCode.toString(16);\n    }\n  }\n  return result;\n};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","import { autoPlayGif } from '../../initial_state';\nimport unicodeMapping from './emoji_unicode_mapping_light';\nimport Trie from 'substring-trie';\n\nconst trie = new Trie(Object.keys(unicodeMapping));\n\nconst assetHost = process.env.CDN_HOST || '';\n\nconst emojify = (str, customEmojis = {}) => {\n  const tagCharsWithoutEmojis = '<&';\n  const tagCharsWithEmojis = Object.keys(customEmojis).length ? '<&:' : '<&';\n  let rtn = '', tagChars = tagCharsWithEmojis, invisible = 0;\n  for (;;) {\n    let match, i = 0, tag;\n    while (i < str.length && (tag = tagChars.indexOf(str[i])) === -1 && (invisible || !(match = trie.search(str.slice(i))))) {\n      i += str.codePointAt(i) < 65536 ? 1 : 2;\n    }\n    let rend, replacement = '';\n    if (i === str.length) {\n      break;\n    } else if (str[i] === ':') {\n      if (!(() => {\n        rend = str.indexOf(':', i + 1) + 1;\n        if (!rend) return false; // no pair of ':'\n        const lt = str.indexOf('<', i + 1);\n        if (!(lt === -1 || lt >= rend)) return false; // tag appeared before closing ':'\n        const shortname = str.slice(i, rend);\n        // now got a replacee as ':shortname:'\n        // if you want additional emoji handler, add statements below which set replacement and return true.\n        if (shortname in customEmojis) {\n          const filename = autoPlayGif ? customEmojis[shortname].url : customEmojis[shortname].static_url;\n          replacement = `<img draggable=\"false\" class=\"emojione\" alt=\"${shortname}\" title=\"${shortname}\" src=\"${filename}\" />`;\n          return true;\n        }\n        return false;\n      })()) rend = ++i;\n    } else if (tag >= 0) { // <, &\n      rend = str.indexOf('>;'[tag], i + 1) + 1;\n      if (!rend) {\n        break;\n      }\n      if (tag === 0) {\n        if (invisible) {\n          if (str[i + 1] === '/') { // closing tag\n            if (!--invisible) {\n              tagChars = tagCharsWithEmojis;\n            }\n          } else if (str[rend - 2] !== '/') { // opening tag\n            invisible++;\n          }\n        } else {\n          if (str.startsWith('<span class=\"invisible\">', i)) {\n            // avoid emojifying on invisible text\n            invisible = 1;\n            tagChars = tagCharsWithoutEmojis;\n          }\n        }\n      }\n      i = rend;\n    } else { // matched to unicode emoji\n      const { filename, shortCode } = unicodeMapping[match];\n      const title = shortCode ? `:${shortCode}:` : '';\n      replacement = `<img draggable=\"false\" class=\"emojione\" alt=\"${match}\" title=\"${title}\" src=\"${assetHost}/emoji/${filename}.svg\" />`;\n      rend = i + match.length;\n      // If the matched character was followed by VS15 (for selecting text presentation), skip it.\n      if (str.codePointAt(rend) === 65038) {\n        rend += 1;\n      }\n    }\n    rtn += str.slice(0, i) + replacement;\n    str = str.slice(rend);\n  }\n  return rtn + str;\n};\n\nexport default emojify;\n\nexport const buildCustomEmojis = (customEmojis) => {\n  const emojis = [];\n\n  customEmojis.forEach(emoji => {\n    const shortcode = emoji.get('shortcode');\n    const url       = autoPlayGif ? emoji.get('url') : emoji.get('static_url');\n    const name      = shortcode.replace(':', '');\n\n    emojis.push({\n      id: name,\n      name,\n      short_names: [name],\n      text: '',\n      emoticons: [],\n      keywords: [name],\n      imageUrl: url,\n      custom: true,\n    });\n  });\n\n  return emojis;\n};\n","'use strict'\n\nvar CODA_MARKER = '$$' // marks the end of the string\n\nfunction MiniTrie (words) {\n  this._dict = {}\n  for (var i = 0, len = words.length; i < len; i++) {\n    var word = words[i]\n    var dict = this._dict\n    for (var j = 0, len2 = word.length; j < len2; j++) {\n      var char = word.charAt(j)\n      dict = (dict[char] = dict[char] || {})\n    }\n    dict[CODA_MARKER] = true\n  }\n}\n\nMiniTrie.prototype.search = function (str) {\n  var i = -1\n  var len = str.length\n  var stack = [this._dict]\n  while (++i < len) {\n    var dict = stack[i]\n    var char = str.charAt(i)\n    if (char in dict) {\n      stack.push(dict[char])\n    } else {\n      break\n    }\n  }\n  while (stack.length) {\n    if (stack.pop()[CODA_MARKER]) {\n      return str.substring(0, stack.length)\n    }\n  }\n}\n\nmodule.exports = MiniTrie\n","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/master/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n\n(function() {\n  var context = this;\n\n  (function() {\n    (function() {\n      this.Rails = {\n        linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n        buttonClickSelector: {\n          selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n          exclude: 'form button'\n        },\n        inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n        formSubmitSelector: 'form',\n        formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n        formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n        formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n        fileInputSelector: 'input[name][type=file]:not([disabled])',\n        linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n        buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n      };\n\n    }).call(this);\n  }).call(context);\n\n  var Rails = context.Rails;\n\n  (function() {\n    (function() {\n      var cspNonce;\n\n      cspNonce = Rails.cspNonce = function() {\n        var meta;\n        meta = document.querySelector('meta[name=csp-nonce]');\n        return meta && meta.content;\n      };\n\n    }).call(this);\n    (function() {\n      var expando, m;\n\n      m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n      Rails.matches = function(element, selector) {\n        if (selector.exclude != null) {\n          return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n        } else {\n          return m.call(element, selector);\n        }\n      };\n\n      expando = '_ujsData';\n\n      Rails.getData = function(element, key) {\n        var ref;\n        return (ref = element[expando]) != null ? ref[key] : void 0;\n      };\n\n      Rails.setData = function(element, key, value) {\n        if (element[expando] == null) {\n          element[expando] = {};\n        }\n        return element[expando][key] = value;\n      };\n\n      Rails.$ = function(selector) {\n        return Array.prototype.slice.call(document.querySelectorAll(selector));\n      };\n\n    }).call(this);\n    (function() {\n      var $, csrfParam, csrfToken;\n\n      $ = Rails.$;\n\n      csrfToken = Rails.csrfToken = function() {\n        var meta;\n        meta = document.querySelector('meta[name=csrf-token]');\n        return meta && meta.content;\n      };\n\n      csrfParam = Rails.csrfParam = function() {\n        var meta;\n        meta = document.querySelector('meta[name=csrf-param]');\n        return meta && meta.content;\n      };\n\n      Rails.CSRFProtection = function(xhr) {\n        var token;\n        token = csrfToken();\n        if (token != null) {\n          return xhr.setRequestHeader('X-CSRF-Token', token);\n        }\n      };\n\n      Rails.refreshCSRFTokens = function() {\n        var param, token;\n        token = csrfToken();\n        param = csrfParam();\n        if ((token != null) && (param != null)) {\n          return $('form input[name=\"' + param + '\"]').forEach(function(input) {\n            return input.value = token;\n          });\n        }\n      };\n\n    }).call(this);\n    (function() {\n      var CustomEvent, fire, matches, preventDefault;\n\n      matches = Rails.matches;\n\n      CustomEvent = window.CustomEvent;\n\n      if (typeof CustomEvent !== 'function') {\n        CustomEvent = function(event, params) {\n          var evt;\n          evt = document.createEvent('CustomEvent');\n          evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n          return evt;\n        };\n        CustomEvent.prototype = window.Event.prototype;\n        preventDefault = CustomEvent.prototype.preventDefault;\n        CustomEvent.prototype.preventDefault = function() {\n          var result;\n          result = preventDefault.call(this);\n          if (this.cancelable && !this.defaultPrevented) {\n            Object.defineProperty(this, 'defaultPrevented', {\n              get: function() {\n                return true;\n              }\n            });\n          }\n          return result;\n        };\n      }\n\n      fire = Rails.fire = function(obj, name, data) {\n        var event;\n        event = new CustomEvent(name, {\n          bubbles: true,\n          cancelable: true,\n          detail: data\n        });\n        obj.dispatchEvent(event);\n        return !event.defaultPrevented;\n      };\n\n      Rails.stopEverything = function(e) {\n        fire(e.target, 'ujs:everythingStopped');\n        e.preventDefault();\n        e.stopPropagation();\n        return e.stopImmediatePropagation();\n      };\n\n      Rails.delegate = function(element, selector, eventType, handler) {\n        return element.addEventListener(eventType, function(e) {\n          var target;\n          target = e.target;\n          while (!(!(target instanceof Element) || matches(target, selector))) {\n            target = target.parentNode;\n          }\n          if (target instanceof Element && handler.call(target, e) === false) {\n            e.preventDefault();\n            return e.stopPropagation();\n          }\n        });\n      };\n\n    }).call(this);\n    (function() {\n      var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n\n      cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n\n      AcceptHeaders = {\n        '*': '*/*',\n        text: 'text/plain',\n        html: 'text/html',\n        xml: 'application/xml, text/xml',\n        json: 'application/json, text/javascript',\n        script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n      };\n\n      Rails.ajax = function(options) {\n        var xhr;\n        options = prepareOptions(options);\n        xhr = createXHR(options, function() {\n          var ref, response;\n          response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n          if (Math.floor(xhr.status / 100) === 2) {\n            if (typeof options.success === \"function\") {\n              options.success(response, xhr.statusText, xhr);\n            }\n          } else {\n            if (typeof options.error === \"function\") {\n              options.error(response, xhr.statusText, xhr);\n            }\n          }\n          return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n        });\n        if ((options.beforeSend != null) && !options.beforeSend(xhr, options)) {\n          return false;\n        }\n        if (xhr.readyState === XMLHttpRequest.OPENED) {\n          return xhr.send(options.data);\n        }\n      };\n\n      prepareOptions = function(options) {\n        options.url = options.url || location.href;\n        options.type = options.type.toUpperCase();\n        if (options.type === 'GET' && options.data) {\n          if (options.url.indexOf('?') < 0) {\n            options.url += '?' + options.data;\n          } else {\n            options.url += '&' + options.data;\n          }\n        }\n        if (AcceptHeaders[options.dataType] == null) {\n          options.dataType = '*';\n        }\n        options.accept = AcceptHeaders[options.dataType];\n        if (options.dataType !== '*') {\n          options.accept += ', */*; q=0.01';\n        }\n        return options;\n      };\n\n      createXHR = function(options, done) {\n        var xhr;\n        xhr = new XMLHttpRequest();\n        xhr.open(options.type, options.url, true);\n        xhr.setRequestHeader('Accept', options.accept);\n        if (typeof options.data === 'string') {\n          xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n        }\n        if (!options.crossDomain) {\n          xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n        }\n        CSRFProtection(xhr);\n        xhr.withCredentials = !!options.withCredentials;\n        xhr.onreadystatechange = function() {\n          if (xhr.readyState === XMLHttpRequest.DONE) {\n            return done(xhr);\n          }\n        };\n        return xhr;\n      };\n\n      processResponse = function(response, type) {\n        var parser, script;\n        if (typeof response === 'string' && typeof type === 'string') {\n          if (type.match(/\\bjson\\b/)) {\n            try {\n              response = JSON.parse(response);\n            } catch (error) {}\n          } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n            script = document.createElement('script');\n            script.setAttribute('nonce', cspNonce());\n            script.text = response;\n            document.head.appendChild(script).parentNode.removeChild(script);\n          } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n            parser = new DOMParser();\n            type = type.replace(/;.+/, '');\n            try {\n              response = parser.parseFromString(response, type);\n            } catch (error) {}\n          }\n        }\n        return response;\n      };\n\n      Rails.href = function(element) {\n        return element.href;\n      };\n\n      Rails.isCrossDomain = function(url) {\n        var e, originAnchor, urlAnchor;\n        originAnchor = document.createElement('a');\n        originAnchor.href = location.href;\n        urlAnchor = document.createElement('a');\n        try {\n          urlAnchor.href = url;\n          return !(((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host) || (originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host));\n        } catch (error) {\n          e = error;\n          return true;\n        }\n      };\n\n    }).call(this);\n    (function() {\n      var matches, toArray;\n\n      matches = Rails.matches;\n\n      toArray = function(e) {\n        return Array.prototype.slice.call(e);\n      };\n\n      Rails.serializeElement = function(element, additionalParam) {\n        var inputs, params;\n        inputs = [element];\n        if (matches(element, 'form')) {\n          inputs = toArray(element.elements);\n        }\n        params = [];\n        inputs.forEach(function(input) {\n          if (!input.name || input.disabled) {\n            return;\n          }\n          if (matches(input, 'select')) {\n            return toArray(input.options).forEach(function(option) {\n              if (option.selected) {\n                return params.push({\n                  name: input.name,\n                  value: option.value\n                });\n              }\n            });\n          } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n            return params.push({\n              name: input.name,\n              value: input.value\n            });\n          }\n        });\n        if (additionalParam) {\n          params.push(additionalParam);\n        }\n        return params.map(function(param) {\n          if (param.name != null) {\n            return (encodeURIComponent(param.name)) + \"=\" + (encodeURIComponent(param.value));\n          } else {\n            return param;\n          }\n        }).join('&');\n      };\n\n      Rails.formElements = function(form, selector) {\n        if (matches(form, 'form')) {\n          return toArray(form.elements).filter(function(el) {\n            return matches(el, selector);\n          });\n        } else {\n          return toArray(form.querySelectorAll(selector));\n        }\n      };\n\n    }).call(this);\n    (function() {\n      var allowAction, fire, stopEverything;\n\n      fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n      Rails.handleConfirm = function(e) {\n        if (!allowAction(this)) {\n          return stopEverything(e);\n        }\n      };\n\n      allowAction = function(element) {\n        var answer, callback, message;\n        message = element.getAttribute('data-confirm');\n        if (!message) {\n          return true;\n        }\n        answer = false;\n        if (fire(element, 'confirm')) {\n          try {\n            answer = confirm(message);\n          } catch (error) {}\n          callback = fire(element, 'confirm:complete', [answer]);\n        }\n        return answer && callback;\n      };\n\n    }).call(this);\n    (function() {\n      var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, matches, setData, stopEverything;\n\n      matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n      Rails.handleDisabledElement = function(e) {\n        var element;\n        element = this;\n        if (element.disabled) {\n          return stopEverything(e);\n        }\n      };\n\n      Rails.enableElement = function(e) {\n        var element;\n        element = e instanceof Event ? e.target : e;\n        if (matches(element, Rails.linkDisableSelector)) {\n          return enableLinkElement(element);\n        } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n          return enableFormElement(element);\n        } else if (matches(element, Rails.formSubmitSelector)) {\n          return enableFormElements(element);\n        }\n      };\n\n      Rails.disableElement = function(e) {\n        var element;\n        element = e instanceof Event ? e.target : e;\n        if (matches(element, Rails.linkDisableSelector)) {\n          return disableLinkElement(element);\n        } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n          return disableFormElement(element);\n        } else if (matches(element, Rails.formSubmitSelector)) {\n          return disableFormElements(element);\n        }\n      };\n\n      disableLinkElement = function(element) {\n        var replacement;\n        replacement = element.getAttribute('data-disable-with');\n        if (replacement != null) {\n          setData(element, 'ujs:enable-with', element.innerHTML);\n          element.innerHTML = replacement;\n        }\n        element.addEventListener('click', stopEverything);\n        return setData(element, 'ujs:disabled', true);\n      };\n\n      enableLinkElement = function(element) {\n        var originalText;\n        originalText = getData(element, 'ujs:enable-with');\n        if (originalText != null) {\n          element.innerHTML = originalText;\n          setData(element, 'ujs:enable-with', null);\n        }\n        element.removeEventListener('click', stopEverything);\n        return setData(element, 'ujs:disabled', null);\n      };\n\n      disableFormElements = function(form) {\n        return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n      };\n\n      disableFormElement = function(element) {\n        var replacement;\n        replacement = element.getAttribute('data-disable-with');\n        if (replacement != null) {\n          if (matches(element, 'button')) {\n            setData(element, 'ujs:enable-with', element.innerHTML);\n            element.innerHTML = replacement;\n          } else {\n            setData(element, 'ujs:enable-with', element.value);\n            element.value = replacement;\n          }\n        }\n        element.disabled = true;\n        return setData(element, 'ujs:disabled', true);\n      };\n\n      enableFormElements = function(form) {\n        return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n      };\n\n      enableFormElement = function(element) {\n        var originalText;\n        originalText = getData(element, 'ujs:enable-with');\n        if (originalText != null) {\n          if (matches(element, 'button')) {\n            element.innerHTML = originalText;\n          } else {\n            element.value = originalText;\n          }\n          setData(element, 'ujs:enable-with', null);\n        }\n        element.disabled = false;\n        return setData(element, 'ujs:disabled', null);\n      };\n\n    }).call(this);\n    (function() {\n      var stopEverything;\n\n      stopEverything = Rails.stopEverything;\n\n      Rails.handleMethod = function(e) {\n        var csrfParam, csrfToken, form, formContent, href, link, method;\n        link = this;\n        method = link.getAttribute('data-method');\n        if (!method) {\n          return;\n        }\n        href = Rails.href(link);\n        csrfToken = Rails.csrfToken();\n        csrfParam = Rails.csrfParam();\n        form = document.createElement('form');\n        formContent = \"<input name='_method' value='\" + method + \"' type='hidden' />\";\n        if ((csrfParam != null) && (csrfToken != null) && !Rails.isCrossDomain(href)) {\n          formContent += \"<input name='\" + csrfParam + \"' value='\" + csrfToken + \"' type='hidden' />\";\n        }\n        formContent += '<input type=\"submit\" />';\n        form.method = 'post';\n        form.action = href;\n        form.target = link.target;\n        form.innerHTML = formContent;\n        form.style.display = 'none';\n        document.body.appendChild(form);\n        form.querySelector('[type=\"submit\"]').click();\n        return stopEverything(e);\n      };\n\n    }).call(this);\n    (function() {\n      var ajax, fire, getData, isCrossDomain, isRemote, matches, serializeElement, setData, stopEverything,\n        slice = [].slice;\n\n      matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n      isRemote = function(element) {\n        var value;\n        value = element.getAttribute('data-remote');\n        return (value != null) && value !== 'false';\n      };\n\n      Rails.handleRemote = function(e) {\n        var button, data, dataType, element, method, url, withCredentials;\n        element = this;\n        if (!isRemote(element)) {\n          return true;\n        }\n        if (!fire(element, 'ajax:before')) {\n          fire(element, 'ajax:stopped');\n          return false;\n        }\n        withCredentials = element.getAttribute('data-with-credentials');\n        dataType = element.getAttribute('data-type') || 'script';\n        if (matches(element, Rails.formSubmitSelector)) {\n          button = getData(element, 'ujs:submit-button');\n          method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n          url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n          if (method.toUpperCase() === 'GET') {\n            url = url.replace(/\\?.*$/, '');\n          }\n          if (element.enctype === 'multipart/form-data') {\n            data = new FormData(element);\n            if (button != null) {\n              data.append(button.name, button.value);\n            }\n          } else {\n            data = serializeElement(element, button);\n          }\n          setData(element, 'ujs:submit-button', null);\n          setData(element, 'ujs:submit-button-formmethod', null);\n          setData(element, 'ujs:submit-button-formaction', null);\n        } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n          method = element.getAttribute('data-method');\n          url = element.getAttribute('data-url');\n          data = serializeElement(element, element.getAttribute('data-params'));\n        } else {\n          method = element.getAttribute('data-method');\n          url = Rails.href(element);\n          data = element.getAttribute('data-params');\n        }\n        ajax({\n          type: method || 'GET',\n          url: url,\n          data: data,\n          dataType: dataType,\n          beforeSend: function(xhr, options) {\n            if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n              return fire(element, 'ajax:send', [xhr]);\n            } else {\n              fire(element, 'ajax:stopped');\n              return false;\n            }\n          },\n          success: function() {\n            var args;\n            args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n            return fire(element, 'ajax:success', args);\n          },\n          error: function() {\n            var args;\n            args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n            return fire(element, 'ajax:error', args);\n          },\n          complete: function() {\n            var args;\n            args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n            return fire(element, 'ajax:complete', args);\n          },\n          crossDomain: isCrossDomain(url),\n          withCredentials: (withCredentials != null) && withCredentials !== 'false'\n        });\n        return stopEverything(e);\n      };\n\n      Rails.formSubmitButtonClick = function(e) {\n        var button, form;\n        button = this;\n        form = button.form;\n        if (!form) {\n          return;\n        }\n        if (button.name) {\n          setData(form, 'ujs:submit-button', {\n            name: button.name,\n            value: button.value\n          });\n        }\n        setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n        setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n        return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n      };\n\n      Rails.handleMetaClick = function(e) {\n        var data, link, metaClick, method;\n        link = this;\n        method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n        data = link.getAttribute('data-params');\n        metaClick = e.metaKey || e.ctrlKey;\n        if (metaClick && method === 'GET' && !data) {\n          return e.stopImmediatePropagation();\n        }\n      };\n\n    }).call(this);\n    (function() {\n      var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMetaClick, handleMethod, handleRemote, refreshCSRFTokens;\n\n      fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMetaClick = Rails.handleMetaClick, handleMethod = Rails.handleMethod;\n\n      if ((typeof jQuery !== \"undefined\" && jQuery !== null) && (jQuery.ajax != null)) {\n        if (jQuery.rails) {\n          throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n        }\n        jQuery.rails = Rails;\n        jQuery.ajaxPrefilter(function(options, originalOptions, xhr) {\n          if (!options.crossDomain) {\n            return CSRFProtection(xhr);\n          }\n        });\n      }\n\n      Rails.start = function() {\n        if (window._rails_loaded) {\n          throw new Error('rails-ujs has already been loaded!');\n        }\n        window.addEventListener('pageshow', function() {\n          $(Rails.formEnableSelector).forEach(function(el) {\n            if (getData(el, 'ujs:disabled')) {\n              return enableElement(el);\n            }\n          });\n          return $(Rails.linkDisableSelector).forEach(function(el) {\n            if (getData(el, 'ujs:disabled')) {\n              return enableElement(el);\n            }\n          });\n        });\n        delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n        delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n        delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n        delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n        delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n        delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n        delegate(document, Rails.linkClickSelector, 'click', handleMetaClick);\n        delegate(document, Rails.linkClickSelector, 'click', disableElement);\n        delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n        delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n        delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n        delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n        delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n        delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n        delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n        delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n        delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n        delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n        delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n        delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n        delegate(document, Rails.formSubmitSelector, 'submit', function(e) {\n          return setTimeout((function() {\n            return disableElement(e);\n          }), 13);\n        });\n        delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n        delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n        delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n        delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n        delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n        document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n        return window._rails_loaded = true;\n      };\n\n      if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n        Rails.start();\n      }\n\n    }).call(this);\n  }).call(this);\n\n  if (typeof module === \"object\" && module.exports) {\n    module.exports = Rails;\n  } else if (typeof define === \"function\" && define.amd) {\n    define(Rails);\n  }\n}).call(this);\n","//  This file will be loaded on settings pages, regardless of theme.\n\nimport escapeTextContentForBrowser from 'escape-html';\nconst { delegate } = require('rails-ujs');\nimport emojify from '../mastodon/features/emoji/emoji';\n\ndelegate(document, '#account_display_name', 'input', ({ target }) => {\n  const name = document.querySelector('.card .display-name strong');\n  if (name) {\n    if (target.value) {\n      name.innerHTML = emojify(escapeTextContentForBrowser(target.value));\n    } else {\n      name.textContent = document.querySelector('#default_account_display_name').textContent;\n    }\n  }\n});\n\ndelegate(document, '#account_avatar', 'change', ({ target }) => {\n  const avatar = document.querySelector('.card .avatar img');\n  const [file] = target.files || [];\n  const url = file ? URL.createObjectURL(file) : avatar.dataset.originalSrc;\n\n  avatar.src = url;\n});\n\ndelegate(document, '#account_header', 'change', ({ target }) => {\n  const header = document.querySelector('.card .card__img img');\n  const [file] = target.files || [];\n  const url = file ? URL.createObjectURL(file) : header.dataset.originalSrc;\n\n  header.src = url;\n});\n\ndelegate(document, '#account_locked', 'change', ({ target }) => {\n  const lock = document.querySelector('.card .display-name i');\n\n  if (target.checked) {\n    lock.style.display = 'inline';\n  } else {\n    lock.style.display = 'none';\n  }\n});\n\ndelegate(document, '.input-copy input', 'click', ({ target }) => {\n  target.select();\n});\n\ndelegate(document, '.input-copy button', 'click', ({ target }) => {\n  const input = target.parentNode.querySelector('.input-copy__wrapper input');\n\n  input.focus();\n  input.select();\n\n  try {\n    if (document.execCommand('copy')) {\n      input.blur();\n      target.parentNode.classList.add('copied');\n\n    setTimeout(() => {\n        target.parentNode.classList.remove('copied');\n      }, 700);\n    }\n  } catch (err) {\n    console.error(err);\n  }\n});\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param  {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n  var str = '' + string;\n  var match = matchHtmlRegExp.exec(str);\n\n  if (!match) {\n    return str;\n  }\n\n  var escape;\n  var html = '';\n  var index = 0;\n  var lastIndex = 0;\n\n  for (index = match.index; index < str.length; index++) {\n    switch (str.charCodeAt(index)) {\n      case 34: // \"\n        escape = '&quot;';\n        break;\n      case 38: // &\n        escape = '&amp;';\n        break;\n      case 39: // '\n        escape = '&#39;';\n        break;\n      case 60: // <\n        escape = '&lt;';\n        break;\n      case 62: // >\n        escape = '&gt;';\n        break;\n      default:\n        continue;\n    }\n\n    if (lastIndex !== index) {\n      html += str.substring(lastIndex, index);\n    }\n\n    lastIndex = index + 1;\n    html += escape;\n  }\n\n  return lastIndex !== index\n    ? html + str.substring(lastIndex, index)\n    : html;\n}\n","// A mapping of unicode strings to an object containing the filename\n// (i.e. the svg filename) and a shortCode intended to be shown\n// as a \"title\" attribute in an HTML element (aka tooltip).\n\nconst [\n  shortCodesToEmojiData,\n  skins, // eslint-disable-line no-unused-vars\n  categories, // eslint-disable-line no-unused-vars\n  short_names, // eslint-disable-line no-unused-vars\n  emojisWithoutShortCodes,\n] = require('./emoji_compressed');\nconst { unicodeToFilename } = require('./unicode_to_filename');\n\n// decompress\nconst unicodeMapping = {};\n\nfunction processEmojiMapData(emojiMapData, shortCode) {\n  let [ native, filename ] = emojiMapData;\n  if (!filename) {\n    // filename name can be derived from unicodeToFilename\n    filename = unicodeToFilename(native);\n  }\n  unicodeMapping[native] = {\n    shortCode: shortCode,\n    filename: filename,\n  };\n}\n\nObject.keys(shortCodesToEmojiData).forEach((shortCode) => {\n  let [ filenameData ] = shortCodesToEmojiData[shortCode];\n  filenameData.forEach(emojiMapData => processEmojiMapData(emojiMapData, shortCode));\n});\nemojisWithoutShortCodes.forEach(emojiMapData => processEmojiMapData(emojiMapData));\n\nmodule.exports = unicodeMapping;\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/initial_state.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/emoji/unicode_to_filename.js","webpack:///./node_modules/process/browser.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/emoji/emoji.js","webpack:///./node_modules/escape-html/index.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/core/settings.js","webpack:///./node_modules/substring-trie/index.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/emoji/emoji_unicode_mapping_light.js"],"names":["prop","element","document","getElementById","initialState","JSON","parse","textContent","getMeta","meta","reduceMotion","autoPlayGif","displayMedia","expandSpoilers","unfollowModal","boostModal","deleteModal","me","searchEnabled","maxChars","invitesEnabled","repository","source_url","version","mascot","profile_directory","isStaff","forceSingleColumn","useBlurhash","usePendingItems","showTrends","title","cropImages","deleteOthersNotice","rights","exports","unicodeToFilename","str","result","charCode","p","i","length","charCodeAt","toString","cachedSetTimeout","cachedClearTimeout","process","module","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","e","call","this","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","Array","arguments","push","prototype","apply","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","name","binding","cwd","chdir","dir","umask","trie","Trie","Object","keys","unicodeMapping","assetHost","CDN_HOST","emojify","customEmojis","tagCharsWithEmojis","rtn","tagChars","invisible","match","tag","indexOf","search","slice","codePointAt","rend","replacement","lt","shortname","filename","url","static_url","startsWith","shortCode","buildCustomEmojis","emojis","forEach","emoji","shortcode","get","replace","id","short_names","text","emoticons","keywords","imageUrl","custom","customCategory","categoriesFromEmojis","reduce","set","add","Set","matchHtmlRegExp","string","escape","exec","html","index","lastIndex","substring","Rails","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","querySelector","content","cspNonce","m","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","key","setData","value","$","querySelectorAll","csrfParam","csrfToken","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","input","CustomEvent","fire","preventDefault","window","event","params","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","defaultPrevented","defineProperty","obj","data","dispatchEvent","stopEverything","target","stopPropagation","stopImmediatePropagation","delegate","eventType","handler","addEventListener","parentNode","AcceptHeaders","createXHR","prepareOptions","processResponse","xml","json","script","ajax","options","response","responseText","getResponseHeader","Math","floor","status","success","statusText","error","complete","beforeSend","readyState","XMLHttpRequest","OPENED","send","location","href","type","toUpperCase","dataType","accept","done","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","createElement","setAttribute","head","appendChild","removeChild","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","inputs","elements","disabled","option","selected","checked","map","encodeURIComponent","join","formElements","form","filter","el","allowAction","handleConfirm","confirm","message","answer","callback","getAttribute","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","innerHTML","originalText","removeEventListener","handleMethod","formContent","method","action","style","display","body","click","isRemote","handleRemote","button","enctype","FormData","append","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","ajaxPrefilter","originalOptions","start","_rails_loaded","require","escapeTextContentForBrowser","avatar","file","files","URL","createObjectURL","dataset","originalSrc","src","header","lock","focus","select","setSelectionRange","oldReadOnly","readonly","execCommand","blur","classList","remove","err","console","CODA_MARKER","MiniTrie","words","_dict","word","dict","j","len2","char","charAt","stack","pop","shortCodesToEmojiData","emojisWithoutShortCodes","processEmojiMapData","emojiMapData","native"],"mappings":";q92KAAA,ozBAIkBA,EAJZC,EAAUC,SAASC,eAAe,iBAClCC,EAAeH,GAAWI,KAAKC,MAAML,EAAQM,aAE7CC,EAAU,SAACR,GAAD,OAAUI,GAAgBA,EAAaK,MAAQL,EAAaK,KAAKT,IAGpEU,EAAeF,EAAQ,iBACvBG,EAAcH,EAAQ,iBACtBI,EAAeJ,EAAQ,iBACvBK,EAAiBL,EAAQ,mBACzBM,EAAgBN,EAAQ,kBACxBO,EAAaP,EAAQ,eACrBQ,EAAcR,EAAQ,gBACtBS,EAAKT,EAAQ,MACbU,EAAgBV,EAAQ,kBACxBW,EAAWX,EAAQ,mBAAqB,IACxCY,EAAiBZ,EAAQ,mBACzBa,EAAab,EAAQ,cACrBc,EAAad,EAAQ,cACrBe,EAAUf,EAAQ,WAClBgB,EAAShB,EAAQ,UACjBiB,EAAoBjB,EAAQ,qBAC5BkB,EAAUlB,EAAQ,YAClBmB,GAAqBnB,EAAQ,mBAC7BoB,EAAcpB,EAAQ,gBACtBqB,EAAkBrB,EAAQ,qBAC1BsB,EAAatB,EAAQ,UACrBuB,EAAQvB,EAAQ,SAChBwB,EAAaxB,EAAQ,eAErByB,GA1BKjC,EA0ByB,uBA1BhBI,GAAgBA,EAAa8B,QAAU9B,EAAa8B,OAAOlC,IA4BvEI,O,kBC9Bf+B,EAAQC,kBAAoB,SAACC,GAK3B,IAJA,IAAIC,EAAS,GACTC,EAAW,EACXC,EAAI,EACJC,EAAI,EACDA,EAAIJ,EAAIK,QACbH,EAAWF,EAAIM,WAAWF,KACtBD,GACEF,EAAOI,OAAS,IAClBJ,GAAU,KAEZA,IAAW,OAAYE,EAAI,OAAW,KAAOD,EAAW,QAASK,SAAS,IAC1EJ,EAAI,GACK,OAAUD,GAAYA,GAAY,MAC3CC,EAAID,GAEAD,EAAOI,OAAS,IAClBJ,GAAU,KAEZA,GAAUC,EAASK,SAAS,KAGhC,OAAON,I,iBCvBT,IAKIO,EACAC,EANAC,EAAUC,EAAOb,QAAU,GAQ/B,SAASc,IACP,MAAM,IAAIC,MAAM,mCAGlB,SAASC,IACP,MAAM,IAAID,MAAM,qCAyBlB,SAASE,EAAWC,GAClB,GAAIR,IAAqBS,WAEvB,OAAOA,WAAWD,EAAK,GAIzB,IAAKR,IAAqBI,IAAqBJ,IAAqBS,WAElE,OADAT,EAAmBS,WACZA,WAAWD,EAAK,GAGzB,IAEE,OAAOR,EAAiBQ,EAAK,GAC7B,MAAOE,GACP,IAEE,OAAOV,EAAiBW,KAAK,KAAMH,EAAK,GACxC,MAAOE,GAEP,OAAOV,EAAiBW,KAAKC,KAAMJ,EAAK,MA3C9C,WACE,IAEIR,EADwB,mBAAfS,WACUA,WAEAL,EAErB,MAAOM,GACPV,EAAmBI,EAGrB,IAEIH,EAD0B,mBAAjBY,aACYA,aAEAP,EAEvB,MAAOI,GACPT,EAAqBK,GAlBzB,GA2EA,IAEIQ,EAFAC,EAAQ,GACRC,GAAW,EAEXC,GAAc,EAElB,SAASC,IACFF,GAAaF,IAIlBE,GAAW,EAEPF,EAAajB,OACfkB,EAAQD,EAAaK,OAAOJ,GAE5BE,GAAc,EAGZF,EAAMlB,QACRuB,KAIJ,SAASA,IACP,IAAIJ,EAAJ,CAIA,IAAIK,EAAUd,EAAWW,GACzBF,GAAW,EAGX,IAFA,IAAIM,EAAMP,EAAMlB,OAETyB,GAAK,CAIV,IAHAR,EAAeC,EACfA,EAAQ,KAECE,EAAaK,GAChBR,GACFA,EAAaG,GAAYM,MAI7BN,GAAc,EACdK,EAAMP,EAAMlB,OAGdiB,EAAe,KACfE,GAAW,EA1Eb,SAAyBQ,GACvB,GAAIvB,IAAuBY,aAEzB,OAAOA,aAAaW,GAItB,IAAKvB,IAAuBK,IAAwBL,IAAuBY,aAEzE,OADAZ,EAAqBY,aACdA,aAAaW,GAGtB,IAESvB,EAAmBuB,GAC1B,MAAOd,GACP,IAEE,OAAOT,EAAmBU,KAAK,KAAMa,GACrC,MAAOd,GAGP,OAAOT,EAAmBU,KAAKC,KAAMY,KAqDzCC,CAAgBJ,IAoBlB,SAASK,EAAKlB,EAAKmB,GACjBf,KAAKJ,IAAMA,EACXI,KAAKe,MAAQA,EAef,SAASC,KAlCT1B,EAAQ2B,SAAW,SAAUrB,GAC3B,IAAIsB,EAAO,IAAIC,MAAMC,UAAUnC,OAAS,GAExC,GAAImC,UAAUnC,OAAS,EACrB,IAAK,IAAID,EAAI,EAAGA,EAAIoC,UAAUnC,OAAQD,IACpCkC,EAAKlC,EAAI,GAAKoC,UAAUpC,GAI5BmB,EAAMkB,KAAK,IAAIP,EAAKlB,EAAKsB,IAEJ,IAAjBf,EAAMlB,QAAiBmB,GACzBT,EAAWa,IAUfM,EAAKQ,UAAUX,IAAM,WACnBX,KAAKJ,IAAI2B,MAAM,KAAMvB,KAAKe,QAG5BzB,EAAQhB,MAAQ,UAChBgB,EAAQkC,SAAU,EAClBlC,EAAQmC,IAAM,GACdnC,EAAQoC,KAAO,GACfpC,EAAQxB,QAAU,GAElBwB,EAAQqC,SAAW,GAInBrC,EAAQsC,GAAKZ,EACb1B,EAAQuC,YAAcb,EACtB1B,EAAQwC,KAAOd,EACf1B,EAAQyC,IAAMf,EACd1B,EAAQ0C,eAAiBhB,EACzB1B,EAAQ2C,mBAAqBjB,EAC7B1B,EAAQ4C,KAAOlB,EACf1B,EAAQ6C,gBAAkBnB,EAC1B1B,EAAQ8C,oBAAsBpB,EAE9B1B,EAAQ+C,UAAY,SAAUC,GAC5B,MAAO,IAGThD,EAAQiD,QAAU,SAAUD,GAC1B,MAAM,IAAI7C,MAAM,qCAGlBH,EAAQkD,IAAM,WACZ,MAAO,KAGTlD,EAAQmD,MAAQ,SAAUC,GACxB,MAAM,IAAIjD,MAAM,mCAGlBH,EAAQqD,MAAQ,WACd,OAAO,I,gCC9MT,+JAIMC,EAAO,IAJb,OAIiBC,GAAKC,OAAOC,KAAKC,MAE5BC,EAAY3D,EAAQmC,IAAIyB,UAAY,GAqE3BC,UAnEC,SAACvE,EAAKwE,QAAsB,IAAtBA,MAAe,IAInC,IAHA,IACMC,EAAqBP,OAAOC,KAAKK,GAAcnE,OAAS,MAAQ,KAClEqE,EAAM,GAAIC,EAAWF,EAAoBG,EAAY,EAHf,aAMxC,IADA,IAAIC,OAAK,EAAEzE,EAAI,EAAG0E,OAAG,EACd1E,EAAIJ,EAAIK,SAAgD,KAArCyE,EAAMH,EAASI,QAAQ/E,EAAII,OAAgBwE,KAAeC,EAAQb,EAAKgB,OAAOhF,EAAIiF,MAAM7E,OAChHA,GAAKJ,EAAIkF,YAAY9E,GAAK,MAAQ,EAAI,EAExC,IAAI+E,OAAI,EAAEC,EAAc,GACxB,GAAIhF,IAAMJ,EAAIK,OACZ,cACK,GAAe,MAAXL,EAAII,IACP,WAEJ,KADA+E,EAAOnF,EAAI+E,QAAQ,IAAK3E,EAAI,GAAK,GACtB,OAAO,EAClB,IAAMiF,EAAKrF,EAAI+E,QAAQ,IAAK3E,EAAI,GAChC,MAAc,IAARiF,GAAaA,GAAMF,GAAO,OAAO,EACvC,IAAMG,EAAYtF,EAAIiF,MAAM7E,EAAG+E,GAG/B,GAAIG,KAAad,EAAc,CAC7B,IAAMe,EAAWjH,IAAckG,EAAac,GAAWE,IAAMhB,EAAac,GAAWG,WAErF,OADAL,EAAW,6DAAgEE,EAAhE,YAAqFA,EAArF,UAAwGC,EAAxG,oBAAoIf,EAAac,GAAWE,IAA5J,kBAAiLhB,EAAac,GAAWG,WAAzM,QACJ,EAET,OAAO,GAbH,KAcAN,IAAS/E,QACV,GAAI0E,GAAO,EAAG,CAEnB,KADAK,EAAOnF,EAAI+E,QAAQ,KAAKD,GAAM1E,EAAI,GAAK,GAErC,cAEU,IAAR0E,IACEF,EACiB,MAAf5E,EAAII,EAAI,KACHwE,IACLD,EAAWF,GAEc,MAAlBzE,EAAImF,EAAO,IACpBP,IAGE5E,EAAI0F,WAAW,2BAA4BtF,KAE7CwE,EAAY,EACZD,EA7CoB,OAiD1BvE,EAAI+E,MACC,OAC2Bf,IAAeS,GAAvCU,EADH,EACGA,SAAUI,EADb,EACaA,UAElBP,EAAW,gDAAmDP,EAAnD,aADGc,EAAS,IAAOA,EAAP,IAAsB,IAClC,UAAmFtB,EAAnF,UAAsGkB,EAAtG,WACXJ,EAAO/E,EAAIyE,EAAMxE,OAEa,QAA1BL,EAAIkF,YAAYC,KAClBA,GAAQ,GAGZT,GAAO1E,EAAIiF,MAAM,EAAG7E,GAAKgF,EACzBpF,EAAMA,EAAIiF,MAAME,MA1DT,kBA2BH,MAiCN,OAAOT,EAAM1E,GAKR,IAAM4F,EAAoB,SAACpB,GAChC,IAAMqB,EAAS,GAoBf,OAlBArB,EAAasB,SAAQ,SAAAC,GACnB,IAAMC,EAAYD,EAAME,IAAI,aACtBT,EAAYlH,IAAcyH,EAAME,IAAI,OAASF,EAAME,IAAI,cACvDvC,EAAYsC,EAAUE,QAAQ,IAAK,IAEzCL,EAAOpD,KAAK,CACV0D,GAAIzC,EACJA,OACA0C,YAAa,CAAC1C,GACd2C,KAAM,GACNC,UAAW,GACXC,SAAU,CAAC7C,GACX8C,SAAUhB,EACViB,QAAQ,EACRC,eAAgBX,EAAME,IAAI,iBAIvBJ,GAGIc,EAAuB,SAAAnC,GAAY,OAAIA,EAAaoC,QAAO,SAACC,EAAKd,GAAN,OAAgBc,EAAIC,IAAIf,EAAME,IAAI,YAAV,UAAkCF,EAAME,IAAI,YAAgB,YAAW,IAAIc,IAAI,CAAC,c,kDCxFhL,IAAIC,EAAkB,UAMtBrG,EAAOb,QASP,SAAoBmH,GAClB,IAOIC,EAPAlH,EAAM,GAAKiH,EACXpC,EAAQmC,EAAgBG,KAAKnH,GAEjC,IAAK6E,EACH,OAAO7E,EAIT,IAAIoH,EAAO,GACPC,EAAQ,EACRC,EAAY,EAEhB,IAAKD,EAAQxC,EAAMwC,MAAOA,EAAQrH,EAAIK,OAAQgH,IAAS,CACrD,OAAQrH,EAAIM,WAAW+G,IACrB,KAAK,GAEHH,EAAS,SACT,MAEF,KAAK,GAEHA,EAAS,QACT,MAEF,KAAK,GAEHA,EAAS,QACT,MAEF,KAAK,GAEHA,EAAS,OACT,MAEF,KAAK,GAEHA,EAAS,OACT,MAEF,QACE,SAGAI,IAAcD,IAChBD,GAAQpH,EAAIuH,UAAUD,EAAWD,IAGnCC,EAAYD,EAAQ,EACpBD,GAAQF,EAGV,OAAOI,IAAcD,EAAQD,EAAOpH,EAAIuH,UAAUD,EAAWD,GAASD,I,mBChFxE,SAMA,YAEE,YACE,WACEhG,KAAKoG,MAAQ,CACXC,kBAAmB,yGACnBC,oBAAqB,CACnBC,SAAU,oEACVC,QAAS,eAEXC,oBAAqB,iEACrBC,mBAAoB,OACpBC,uBAAwB,6MACxBC,oBAAqB,sMACrBC,mBAAoB,4MACpBC,kBAAmB,yCACnBC,oBAAqB,wCACrBC,sBAAuB,+EAExBjH,KAAKC,QACPD,KAnBWC,MAoBd,IAAIoG,EApBUpG,KAoBMoG,OACpB,YACE,WACE,IAAIa,EACJA,EAAQ,KAERb,EAAMc,aAAe,WACnB,IAAIC,EACJ,OAAOF,EAAkE,OAAzDE,EAAM1K,SAAS2K,cAAc,yBAAmCD,EAAIE,aAAU,GAGhGjB,EAAMkB,SAAW,WACf,OAAgB,MAATL,EAAgBA,EAAQb,EAAMc,kBAEtCnH,KAAKC,MACR,WACE,IAAauH,EACbA,EAAIC,QAAQlG,UAAUmG,SAAWD,QAAQlG,UAAUoG,iBAAmBF,QAAQlG,UAAUqG,oBAAsBH,QAAQlG,UAAUsG,mBAAqBJ,QAAQlG,UAAUuG,kBAAoBL,QAAQlG,UAAUwG,sBAE7M1B,EAAMqB,QAAU,SAAUjL,EAAS+J,GACjC,OAAwB,MAApBA,EAASC,QACJe,EAAExH,KAAKvD,EAAS+J,EAASA,YAAcgB,EAAExH,KAAKvD,EAAS+J,EAASC,SAEhEe,EAAExH,KAAKvD,EAAS+J,IAM3BH,EAAM2B,QAAU,SAAUvL,EAASwL,GACjC,IAAIb,EACJ,OAAmC,OAA3BA,EAAM3K,EAAe,UAAa2K,EAAIa,QAAO,GAGvD5B,EAAM6B,QAAU,SAAUzL,EAASwL,EAAKE,GAKtC,OAJwB,MAApB1L,EAAe,WACjBA,EAAe,SAAI,IAGdA,EAAe,SAAEwL,GAAOE,GAGjC9B,EAAM+B,EAAI,SAAU5B,GAClB,OAAOpF,MAAMG,UAAUuC,MAAM9D,KAAKtD,SAAS2L,iBAAiB7B,MAE7DxG,KAAKC,MACR,WACE,IAAImI,EAAGE,EAAWC,EAClBH,EAAI/B,EAAM+B,EAEVG,EAAYlC,EAAMkC,UAAY,WAC5B,IAAItL,EAEJ,OADAA,EAAOP,SAAS2K,cAAc,2BACfpK,EAAKqK,SAGtBgB,EAAYjC,EAAMiC,UAAY,WAC5B,IAAIrL,EAEJ,OADAA,EAAOP,SAAS2K,cAAc,2BACfpK,EAAKqK,SAGtBjB,EAAMmC,eAAiB,SAAUC,GAC/B,IAAIC,EAGJ,GAAa,OAFbA,EAAQH,KAGN,OAAOE,EAAIE,iBAAiB,eAAgBD,IAIhDrC,EAAMuC,kBAAoB,WACxB,IAAIC,EAAOH,EAIX,GAHAA,EAAQH,IACRM,EAAQP,IAEK,MAATI,GAA0B,MAATG,EACnB,OAAOT,EAAE,oBAAsBS,EAAQ,MAAMlE,SAAQ,SAAUmE,GAC7D,OAAOA,EAAMX,MAAQO,OAI1B1I,KAAKC,MACR,WACE,IAAI8I,EAAaC,EAAMtB,EAASuB,EAChCvB,EAAUrB,EAAMqB,QAGW,mBAF3BqB,EAAcG,OAAOH,gBAGnBA,EAAc,SAAqBI,EAAOC,GACxC,IAAIC,EAGJ,OAFAA,EAAM3M,SAAS4M,YAAY,gBACvBC,gBAAgBJ,EAAOC,EAAOI,QAASJ,EAAOK,WAAYL,EAAOM,QAC9DL,IAGG9H,UAAY2H,OAAOS,MAAMpI,UACrC0H,EAAiBF,EAAYxH,UAAU0H,eAEvCF,EAAYxH,UAAU0H,eAAiB,WACrC,IAAInK,EAWJ,OAVAA,EAASmK,EAAejJ,KAAKC,MAEzBA,KAAKwJ,aAAexJ,KAAK2J,kBAC3B7G,OAAO8G,eAAe5J,KAAM,mBAAoB,CAC9C6E,IAAK,WACH,OAAO,KAKNhG,IAIXkK,EAAO3C,EAAM2C,KAAO,SAAUc,EAAKvH,EAAMwH,GACvC,IAAIZ,EAOJ,OANAA,EAAQ,IAAIJ,EAAYxG,EAAM,CAC5BiH,SAAS,EACTC,YAAY,EACZC,OAAQK,IAEVD,EAAIE,cAAcb,IACVA,EAAMS,kBAGhBvD,EAAM4D,eAAiB,SAAUlK,GAI/B,OAHAiJ,EAAKjJ,EAAEmK,OAAQ,yBACfnK,EAAEkJ,iBACFlJ,EAAEoK,kBACKpK,EAAEqK,4BAGX/D,EAAMgE,SAAW,SAAU5N,EAAS+J,EAAU8D,EAAWC,GACvD,OAAO9N,EAAQ+N,iBAAiBF,GAAW,SAAUvK,GACnD,IAAImK,EAGJ,IAFAA,EAASnK,EAAEmK,OAEAA,aAAkBzC,UAAYC,EAAQwC,EAAQ1D,IACvD0D,EAASA,EAAOO,WAGlB,GAAIP,aAAkBzC,UAAuC,IAA5B8C,EAAQvK,KAAKkK,EAAQnK,GAEpD,OADAA,EAAEkJ,iBACKlJ,EAAEoK,uBAIdnK,KAAKC,MACR,WACE,IAAIyK,EAAelC,EAAgBmC,EAAWpD,EAAgBqD,EAAgBC,EAC9EtD,EAAWlB,EAAMkB,SAAUiB,EAAiBnC,EAAMmC,eAAuBnC,EAAM2C,KAC/E0B,EAAgB,CACd,IAAK,MACLxF,KAAM,aACNe,KAAM,YACN6E,IAAK,4BACLC,KAAM,oCACNC,OAAQ,6FAGV3E,EAAM4E,KAAO,SAAUC,GACrB,IAAIzC,EAmBJ,OAlBAyC,EAAUN,EAAeM,GACzBzC,EAAMkC,EAAUO,GAAS,WACvB,IAAI9D,EAAK+D,EAaT,OAZAA,EAAWN,EAAwC,OAAvBzD,EAAMqB,EAAI0C,UAAoB/D,EAAMqB,EAAI2C,aAAc3C,EAAI4C,kBAAkB,iBAEnE,IAAjCC,KAAKC,MAAM9C,EAAI+C,OAAS,KACK,mBAApBN,EAAQO,SACjBP,EAAQO,QAAQN,EAAU1C,EAAIiD,WAAYjD,GAGf,mBAAlByC,EAAQS,OACjBT,EAAQS,MAAMR,EAAU1C,EAAIiD,WAAYjD,GAIT,mBAArByC,EAAQU,SAA0BV,EAAQU,SAASnD,EAAKA,EAAIiD,iBAAc,OAGhE,MAAtBR,EAAQW,aAAuBX,EAAQW,WAAWpD,EAAKyC,MAIvDzC,EAAIqD,aAAeC,eAAeC,OAC7BvD,EAAIwD,KAAKf,EAAQnB,WAD1B,IAKFa,EAAiB,SAAwBM,GAsBvC,OArBAA,EAAQ7G,IAAM6G,EAAQ7G,KAAO6H,SAASC,KACtCjB,EAAQkB,KAAOlB,EAAQkB,KAAKC,cAEP,QAAjBnB,EAAQkB,MAAkBlB,EAAQnB,OAChCmB,EAAQ7G,IAAIT,QAAQ,KAAO,EAC7BsH,EAAQ7G,KAAO,IAAM6G,EAAQnB,KAE7BmB,EAAQ7G,KAAO,IAAM6G,EAAQnB,MAIM,MAAnCW,EAAcQ,EAAQoB,YACxBpB,EAAQoB,SAAW,KAGrBpB,EAAQqB,OAAS7B,EAAcQ,EAAQoB,UAEd,MAArBpB,EAAQoB,WACVpB,EAAQqB,QAAU,iBAGbrB,GAGTP,EAAY,SAAmBO,EAASsB,GACtC,IAAI/D,EAsBJ,OArBAA,EAAM,IAAIsD,gBACNU,KAAKvB,EAAQkB,KAAMlB,EAAQ7G,KAAK,GACpCoE,EAAIE,iBAAiB,SAAUuC,EAAQqB,QAEX,iBAAjBrB,EAAQnB,MACjBtB,EAAIE,iBAAiB,eAAgB,oDAGlCuC,EAAQwB,aACXjE,EAAIE,iBAAiB,mBAAoB,kBAG3CH,EAAeC,GACfA,EAAIkE,kBAAoBzB,EAAQyB,gBAEhClE,EAAImE,mBAAqB,WACvB,GAAInE,EAAIqD,aAAeC,eAAec,KACpC,OAAOL,EAAK/D,IAITA,GAGToC,EAAkB,SAAyBM,EAAUiB,GACnD,IAAIU,EAAQ9B,EAEZ,GAAwB,iBAAbG,GAAyC,iBAATiB,EACzC,GAAIA,EAAK1I,MAAM,YACb,IACEyH,EAAWtO,KAAKC,MAAMqO,GACtB,MAAOQ,SACJ,GAAIS,EAAK1I,MAAM,4BACpBsH,EAAStO,SAASqQ,cAAc,WACzBC,aAAa,QAASzF,KAC7ByD,EAAO9F,KAAOiG,EACdzO,SAASuQ,KAAKC,YAAYlC,GAAQP,WAAW0C,YAAYnC,QACpD,GAAIoB,EAAK1I,MAAM,sBAAuB,CAC3CoJ,EAAS,IAAIM,UACbhB,EAAOA,EAAKrH,QAAQ,MAAO,IAE3B,IACEoG,EAAW2B,EAAOO,gBAAgBlC,EAAUiB,GAC5C,MAAOT,KAIb,OAAOR,GAGT9E,EAAM8F,KAAO,SAAU1P,GACrB,OAAOA,EAAQ0P,MAGjB9F,EAAMiH,cAAgB,SAAUjJ,GAC9B,IAAOkJ,EAAcC,GACrBD,EAAe7Q,SAASqQ,cAAc,MACzBZ,KAAOD,SAASC,KAC7BqB,EAAY9Q,SAASqQ,cAAc,KAEnC,IAEE,OADAS,EAAUrB,KAAO9H,MACNmJ,EAAUC,UAAmC,MAAvBD,EAAUC,YAAsBD,EAAUE,MAAQH,EAAaE,SAAW,KAAOF,EAAaG,MAASF,EAAUC,SAAW,KAAOD,EAAUE,MAC9K,MAAO/B,GAEP,OADIA,GACG,KAGV3L,KAAKC,MACR,WACE,IAAIyH,EAASiG,EACbjG,EAAUrB,EAAMqB,QAEhBiG,EAAU,SAAiB5N,GACzB,OAAOqB,MAAMG,UAAUuC,MAAM9D,KAAKD,IAGpCsG,EAAMuH,iBAAmB,SAAUnR,EAASoR,GAC1C,IAAIC,EAAQ1E,EAsCZ,OArCA0E,EAAS,CAACrR,GAENiL,EAAQjL,EAAS,UACnBqR,EAASH,EAAQlR,EAAQsR,WAG3B3E,EAAS,GACT0E,EAAOnJ,SAAQ,SAAUmE,GACvB,GAAKA,EAAMvG,OAAQuG,EAAMkF,WAIrBtG,EAAQoB,EAAO,wBAInB,OAAIpB,EAAQoB,EAAO,UACV6E,EAAQ7E,EAAMoC,SAASvG,SAAQ,SAAUsJ,GAC9C,GAAIA,EAAOC,SACT,OAAO9E,EAAO9H,KAAK,CACjBiB,KAAMuG,EAAMvG,KACZ4F,MAAO8F,EAAO9F,WAIXW,EAAMqF,UAAoE,IAAzD,CAAC,QAAS,WAAY,UAAUvK,QAAQkF,EAAMsD,MACjEhD,EAAO9H,KAAK,CACjBiB,KAAMuG,EAAMvG,KACZ4F,MAAOW,EAAMX,aAHV,KAQL0F,GACFzE,EAAO9H,KAAKuM,GAGPzE,EAAOgF,KAAI,SAAUvF,GAC1B,OAAkB,MAAdA,EAAMtG,KACD8L,mBAAmBxF,EAAMtG,MAAQ,IAAM8L,mBAAmBxF,EAAMV,OAEhEU,KAERyF,KAAK,MAGVjI,EAAMkI,aAAe,SAAUC,EAAMhI,GACnC,OAAIkB,EAAQ8G,EAAM,QACTb,EAAQa,EAAKT,UAAUU,QAAO,SAAUC,GAC7C,OAAOhH,EAAQgH,EAAIlI,MAGdmH,EAAQa,EAAKnG,iBAAiB7B,MAGxCxG,KAAKC,MACR,WACE,IAAI0O,EAAa3F,EAAMiB,EACvBjB,EAAO3C,EAAM2C,KAAMiB,EAAiB5D,EAAM4D,eAE1C5D,EAAMuI,cAAgB,SAAU7O,GAC9B,IAAK4O,EAAY1O,MACf,OAAOgK,EAAelK,IAI1BsG,EAAMwI,QAAU,SAAUC,EAASrS,GACjC,OAAOoS,QAAQC,IAGjBH,EAAc,SAAqBlS,GACjC,IAAIsS,EAAQC,EAAUF,EAGtB,KAFAA,EAAUrS,EAAQwS,aAAa,iBAG7B,OAAO,EAKT,GAFAF,GAAS,EAEL/F,EAAKvM,EAAS,WAAY,CAC5B,IACEsS,EAAS1I,EAAMwI,QAAQC,EAASrS,GAChC,MAAOkP,IAETqD,EAAWhG,EAAKvM,EAAS,mBAAoB,CAACsS,IAGhD,OAAOA,GAAUC,IAElBhP,KAAKC,MACR,WACE,IAAIiP,EAAoBC,EAAqBC,EAAoBC,EAAmBC,EAAoBC,EAAmBhB,EAAcvG,EAASwH,EAAe9H,EAASQ,EAAS+B,EACnLvC,EAAUrB,EAAMqB,QAASM,EAAU3B,EAAM2B,QAASE,EAAU7B,EAAM6B,QAAS+B,EAAiB5D,EAAM4D,eAAgBsE,EAAelI,EAAMkI,aAEvIlI,EAAMoJ,sBAAwB,SAAU1P,GAItC,GAFUE,UAEE+N,SACV,OAAO/D,EAAelK,IAI1BsG,EAAMqJ,cAAgB,SAAU3P,GAC9B,IAAItD,EAEJ,GAAIsD,aAAa4J,MAAO,CACtB,GAAI6F,EAAczP,GAChB,OAGFtD,EAAUsD,EAAEmK,YAEZzN,EAAUsD,EAGZ,OAAI2H,EAAQjL,EAAS4J,EAAMW,qBAClBuI,EAAkB9S,GAChBiL,EAAQjL,EAAS4J,EAAMY,wBAA0BS,EAAQjL,EAAS4J,EAAMS,oBAC1EuI,EAAkB5S,GAChBiL,EAAQjL,EAAS4J,EAAMM,oBACzB2I,EAAmB7S,QADrB,GAKT4J,EAAMsJ,eAAiB,SAAU5P,GAC/B,IAAItD,EAGJ,OAFAA,EAAUsD,aAAa4J,MAAQ5J,EAAEmK,OAASnK,EAEtC2H,EAAQjL,EAAS4J,EAAMW,qBAClBoI,EAAmB3S,GACjBiL,EAAQjL,EAAS4J,EAAMY,wBAA0BS,EAAQjL,EAAS4J,EAAMQ,qBAC1EqI,EAAmBzS,GACjBiL,EAAQjL,EAAS4J,EAAMM,oBACzBwI,EAAoB1S,QADtB,GAKT2S,EAAqB,SAA4B3S,GAC/C,IAAIwH,EAEJ,IAAI+D,EAAQvL,EAAS,gBAYrB,OANmB,OAFnBwH,EAAcxH,EAAQwS,aAAa,wBAGjC/G,EAAQzL,EAAS,kBAAmBA,EAAQmT,WAC5CnT,EAAQmT,UAAY3L,GAGtBxH,EAAQ+N,iBAAiB,QAASP,GAC3B/B,EAAQzL,EAAS,gBAAgB,IAG1C8S,EAAoB,SAA2B9S,GAC7C,IAAIoT,EASJ,OANoB,OAFpBA,EAAe7H,EAAQvL,EAAS,sBAG9BA,EAAQmT,UAAYC,EACpB3H,EAAQzL,EAAS,kBAAmB,OAGtCA,EAAQqT,oBAAoB,QAAS7F,GAC9B/B,EAAQzL,EAAS,eAAgB,OAG1C0S,EAAsB,SAA6BX,GACjD,OAAOD,EAAaC,EAAMnI,EAAMQ,qBAAqBlC,QAAQuK,IAG/DA,EAAqB,SAA4BzS,GAC/C,IAAIwH,EAEJ,IAAI+D,EAAQvL,EAAS,gBAiBrB,OAXmB,OAFnBwH,EAAcxH,EAAQwS,aAAa,wBAG7BvH,EAAQjL,EAAS,WACnByL,EAAQzL,EAAS,kBAAmBA,EAAQmT,WAC5CnT,EAAQmT,UAAY3L,IAEpBiE,EAAQzL,EAAS,kBAAmBA,EAAQ0L,OAC5C1L,EAAQ0L,MAAQlE,IAIpBxH,EAAQuR,UAAW,EACZ9F,EAAQzL,EAAS,gBAAgB,IAG1C6S,EAAqB,SAA4Bd,GAC/C,OAAOD,EAAaC,EAAMnI,EAAMS,oBAAoBnC,QAAQ0K,IAG9DA,EAAoB,SAA2B5S,GAC7C,IAAIoT,EAcJ,OAXoB,OAFpBA,EAAe7H,EAAQvL,EAAS,sBAG1BiL,EAAQjL,EAAS,UACnBA,EAAQmT,UAAYC,EAEpBpT,EAAQ0L,MAAQ0H,EAGlB3H,EAAQzL,EAAS,kBAAmB,OAGtCA,EAAQuR,UAAW,EACZ9F,EAAQzL,EAAS,eAAgB,OAG1C+S,EAAgB,SAAuBrG,GACrC,IAAI/B,EAAKqB,EAET,OAA2E,OAA5D,OADfA,EAA8B,OAAvBrB,EAAM+B,EAAMO,QAAkBtC,EAAI,QAAK,GACxBqB,EAAI4C,kBAAkB,uBAAoB,KAEjErL,KAAKC,MACR,WACE,IAAIgK,EACJA,EAAiB5D,EAAM4D,eAEvB5D,EAAM0J,aAAe,SAAUhQ,GAC7B,IAAIuI,EAAWC,EAAWiG,EAAMwB,EAAa7D,EAAY8D,EAIzD,GAHOhQ,KACPgQ,EADOhQ,KACOgP,aAAa,eAwB3B,OAlBA9C,EAAO9F,EAAM8F,KAPNlM,MAQPsI,EAAYlC,EAAMkC,YAClBD,EAAYjC,EAAMiC,YAClBkG,EAAO9R,SAASqQ,cAAc,QAC9BiD,EAAc,gCAAkCC,EAAS,qBAExC,MAAb3H,GAAkC,MAAbC,GAAsBlC,EAAMiH,cAAcnB,KACjE6D,GAAe,gBAAkB1H,EAAY,YAAcC,EAAY,sBAGzEyH,GAAe,0BACfxB,EAAKyB,OAAS,OACdzB,EAAK0B,OAAS/D,EACdqC,EAAKtE,OApBEjK,KAoBYiK,OACnBsE,EAAKoB,UAAYI,EACjBxB,EAAK2B,MAAMC,QAAU,OACrB1T,SAAS2T,KAAKnD,YAAYsB,GAC1BA,EAAKnH,cAAc,mBAAmBiJ,QAC/BrG,EAAelK,KAEvBC,KAAKC,MACR,WACE,IAAIgL,EACAjC,EACAhB,EACAsF,EACAiD,EACA7I,EACAkG,EACA1F,EACA+B,EACAnG,EAAQ,GAAGA,MACf4D,EAAUrB,EAAMqB,QAASM,EAAU3B,EAAM2B,QAASE,EAAU7B,EAAM6B,QAASc,EAAO3C,EAAM2C,KAAMiB,EAAiB5D,EAAM4D,eAAgBgB,EAAO5E,EAAM4E,KAAMqC,EAAgBjH,EAAMiH,cAAeM,EAAmBvH,EAAMuH,iBAEtN2C,EAAW,SAAkB9T,GAC3B,IAAI0L,EAEJ,OAAgB,OADhBA,EAAQ1L,EAAQwS,aAAa,iBACK,UAAV9G,GAG1B9B,EAAMmK,aAAe,SAAUzQ,GAC7B,IAAI0Q,EAAQ1G,EAAMuC,EAAU7P,EAASwT,EAAQ5L,EAAKsI,EAGlD,OAAK4D,EAFL9T,EAAUwD,QAML+I,EAAKvM,EAAS,gBAKnBkQ,EAAkBlQ,EAAQwS,aAAa,yBACvC3C,EAAW7P,EAAQwS,aAAa,cAAgB,SAE5CvH,EAAQjL,EAAS4J,EAAMM,qBACzB8J,EAASzI,EAAQvL,EAAS,qBAC1BwT,EAASjI,EAAQvL,EAAS,iCAAmCA,EAAQwT,OACrE5L,EAAM2D,EAAQvL,EAAS,iCAAmCA,EAAQwS,aAAa,WAAa/C,SAASC,KAExE,QAAzB8D,EAAO5D,gBACThI,EAAMA,EAAIU,QAAQ,QAAS,KAGL,wBAApBtI,EAAQiU,SACV3G,EAAO,IAAI4G,SAASlU,GAEN,MAAVgU,GACF1G,EAAK6G,OAAOH,EAAOlO,KAAMkO,EAAOtI,QAGlC4B,EAAO6D,EAAiBnR,EAASgU,GAGnCvI,EAAQzL,EAAS,oBAAqB,MACtCyL,EAAQzL,EAAS,+BAAgC,MACjDyL,EAAQzL,EAAS,+BAAgC,OACxCiL,EAAQjL,EAAS4J,EAAME,sBAAwBmB,EAAQjL,EAAS4J,EAAMK,sBAC/EuJ,EAASxT,EAAQwS,aAAa,eAC9B5K,EAAM5H,EAAQwS,aAAa,YAC3BlF,EAAO6D,EAAiBnR,EAASA,EAAQwS,aAAa,kBAEtDgB,EAASxT,EAAQwS,aAAa,eAC9B5K,EAAMgC,EAAM8F,KAAK1P,GACjBsN,EAAOtN,EAAQwS,aAAa,gBAG9BhE,EAAK,CACHmB,KAAM6D,GAAU,MAChB5L,IAAKA,EACL0F,KAAMA,EACNuC,SAAUA,EACVT,WAAY,SAAoBpD,EAAKyC,GACnC,OAAIlC,EAAKvM,EAAS,kBAAmB,CAACgM,EAAKyC,IAClClC,EAAKvM,EAAS,YAAa,CAACgM,KAEnCO,EAAKvM,EAAS,iBACP,IAGXgP,QAAS,WACP,IAAItK,EAEJ,OADAA,EAAO,GAAKE,UAAUnC,OAAS4E,EAAM9D,KAAKqB,UAAW,GAAK,GACnD2H,EAAKvM,EAAS,eAAgB0E,IAEvCwK,MAAO,WACL,IAAIxK,EAEJ,OADAA,EAAO,GAAKE,UAAUnC,OAAS4E,EAAM9D,KAAKqB,UAAW,GAAK,GACnD2H,EAAKvM,EAAS,aAAc0E,IAErCyK,SAAU,WACR,IAAIzK,EAEJ,OADAA,EAAO,GAAKE,UAAUnC,OAAS4E,EAAM9D,KAAKqB,UAAW,GAAK,GACnD2H,EAAKvM,EAAS,gBAAiB0E,IAExCuL,YAAaY,EAAcjJ,GAC3BsI,gBAAoC,MAAnBA,GAA+C,UAApBA,IAEvC1C,EAAelK,KAtEpBiJ,EAAKvM,EAAS,iBACP,KAwEX4J,EAAMwK,sBAAwB,SAAU9Q,GACtC,IAAYyO,EAIZ,GAHSvO,KACTuO,EADSvO,KACKuO,KAed,OAhBSvO,KAOEsC,MACT2F,EAAQsG,EAAM,oBAAqB,CACjCjM,KATKtC,KASQsC,KACb4F,MAVKlI,KAUSkI,QAIlBD,EAAQsG,EAAM,4BAdLvO,KAcyC6Q,gBAClD5I,EAAQsG,EAAM,+BAfLvO,KAe4CgP,aAAa,eAC3D/G,EAAQsG,EAAM,+BAhBZvO,KAgBmDgP,aAAa,gBAG3E5I,EAAM0K,0BAA4B,SAAUhR,GAC1C,IAAIgK,EAAMiH,EAAyCf,EAQnD,GAPOhQ,KACPgQ,GADOhQ,KACQgP,aAAa,gBAAkB,OAAO5C,cACrDtC,EAFO9J,KAEKgP,aAAa,eAEzB+B,GADYjR,EAAEkR,SAAWlR,EAAEmR,UACsB,QAAXjB,IAAqBlG,EACxB,MAAZhK,EAAE0Q,QAA+B,IAAb1Q,EAAE0Q,QAEjBO,EAC1B,OAAOjR,EAAEqK,6BAGZpK,KAAKC,MACR,WACE,IAAImI,EAAGI,EAAgB6B,EAAUsF,EAAgBD,EAAe1G,EAAM6H,EAAuB7I,EAAS4G,EAAea,EAAuBM,EAAcS,EAAcrJ,EAAc4J,EAA2BnI,EAGjN,GAFAI,EAAO3C,EAAM2C,KAAMqB,EAAWhE,EAAMgE,SAAUrC,EAAU3B,EAAM2B,QAASI,EAAI/B,EAAM+B,EAAGQ,EAAoBvC,EAAMuC,kBAAmBJ,EAAiBnC,EAAMmC,eAAgBrB,EAAed,EAAMc,aAAcuI,EAAgBrJ,EAAMqJ,cAAeC,EAAiBtJ,EAAMsJ,eAAgBF,EAAwBpJ,EAAMoJ,sBAAuBb,EAAgBvI,EAAMuI,cAAemC,EAA4B1K,EAAM0K,0BAA2BP,EAAenK,EAAMmK,aAAcK,EAAwBxK,EAAMwK,sBAAuBd,EAAe1J,EAAM0J,aAErgB,oBAAXoB,QAAqC,OAAXA,QAAkC,MAAfA,OAAOlG,KAAc,CAC3E,GAAIkG,OAAOC,MACT,MAAM,IAAI1R,MAAM,kEAGlByR,OAAOC,MAAQ/K,EACf8K,OAAOE,eAAc,SAAUnG,EAASoG,EAAiB7I,GACvD,IAAKyC,EAAQwB,YACX,OAAOlE,EAAeC,MAK5BpC,EAAMkL,MAAQ,WACZ,GAAIrI,OAAOsI,cACT,MAAM,IAAI9R,MAAM,sCAiDlB,OA9CAwJ,OAAOsB,iBAAiB,YAAY,WAMlC,OALApC,EAAE/B,EAAMS,oBAAoBnC,SAAQ,SAAU+J,GAC5C,GAAI1G,EAAQ0G,EAAI,gBACd,OAAOgB,EAAchB,MAGlBtG,EAAE/B,EAAMW,qBAAqBrC,SAAQ,SAAU+J,GACpD,GAAI1G,EAAQ0G,EAAI,gBACd,OAAOgB,EAAchB,SAI3BrE,EAAS3N,SAAU2J,EAAMW,oBAAqB,gBAAiB0I,GAC/DrF,EAAS3N,SAAU2J,EAAMW,oBAAqB,eAAgB0I,GAC9DrF,EAAS3N,SAAU2J,EAAMY,sBAAuB,gBAAiByI,GACjErF,EAAS3N,SAAU2J,EAAMY,sBAAuB,eAAgByI,GAChErF,EAAS3N,SAAU2J,EAAMC,kBAAmB,QAASyK,GACrD1G,EAAS3N,SAAU2J,EAAMC,kBAAmB,QAASmJ,GACrDpF,EAAS3N,SAAU2J,EAAMC,kBAAmB,QAASsI,GACrDvE,EAAS3N,SAAU2J,EAAMC,kBAAmB,QAASqJ,GACrDtF,EAAS3N,SAAU2J,EAAMC,kBAAmB,QAASkK,GACrDnG,EAAS3N,SAAU2J,EAAMC,kBAAmB,QAASyJ,GACrD1F,EAAS3N,SAAU2J,EAAME,oBAAqB,QAASwK,GACvD1G,EAAS3N,SAAU2J,EAAME,oBAAqB,QAASkJ,GACvDpF,EAAS3N,SAAU2J,EAAME,oBAAqB,QAASqI,GACvDvE,EAAS3N,SAAU2J,EAAME,oBAAqB,QAASoJ,GACvDtF,EAAS3N,SAAU2J,EAAME,oBAAqB,QAASiK,GACvDnG,EAAS3N,SAAU2J,EAAMK,oBAAqB,SAAU+I,GACxDpF,EAAS3N,SAAU2J,EAAMK,oBAAqB,SAAUkI,GACxDvE,EAAS3N,SAAU2J,EAAMK,oBAAqB,SAAU8J,GACxDnG,EAAS3N,SAAU2J,EAAMM,mBAAoB,SAAU8I,GACvDpF,EAAS3N,SAAU2J,EAAMM,mBAAoB,SAAUiI,GACvDvE,EAAS3N,SAAU2J,EAAMM,mBAAoB,SAAU6J,GACvDnG,EAAS3N,SAAU2J,EAAMM,mBAAoB,UAAU,SAAU5G,GAC/D,OAAOD,YAAW,WAChB,OAAO6P,EAAe5P,KACrB,OAELsK,EAAS3N,SAAU2J,EAAMM,mBAAoB,YAAagJ,GAC1DtF,EAAS3N,SAAU2J,EAAMM,mBAAoB,gBAAiB+I,GAC9DrF,EAAS3N,SAAU2J,EAAMO,uBAAwB,QAASmK,GAC1D1G,EAAS3N,SAAU2J,EAAMO,uBAAwB,QAAS6I,GAC1DpF,EAAS3N,SAAU2J,EAAMO,uBAAwB,QAASgI,GAC1DvE,EAAS3N,SAAU2J,EAAMO,uBAAwB,QAASiK,GAC1DnU,SAAS8N,iBAAiB,mBAAoB5B,GAC9ClM,SAAS8N,iBAAiB,mBAAoBrD,GACvC+B,OAAOsI,eAAgB,GAG5BtI,OAAO7C,QAAUA,GAAS2C,EAAKtM,SAAU,yBAC3C2J,EAAMkL,SAEPvR,KAAKC,QACPD,KAAKC,MAE0BT,EAAOb,QACvCa,EAAOb,QAAU0H,OAEL,0BAAZ,KAAY,oCAEbrG,KAAKC,O,iCChyBR,oCAGQoK,EAAaoH,EAAQ,IAArBpH,SAGRA,EAAS3N,SAAU,wBAAyB,SAAS,YAAiB,IAAdwN,EAAa,EAAbA,OAChD3H,EAAO7F,SAAS2K,cAAc,8BAChC9E,IACE2H,EAAO/B,MACT5F,EAAKqN,UAAYxM,kBAAQsO,IAA4BxH,EAAO/B,QAE5D5F,EAAKxF,YAAcL,SAAS2K,cAAc,iCAAiCtK,gBAKjFsN,EAAS3N,SAAU,kBAAmB,UAAU,YAAiB,IAAdwN,EAAa,EAAbA,OAC3CyH,EAASjV,SAAS2K,cAAc,qBAC/BuK,GAAQ1H,EAAO2H,OAAS,IAF+B,GAGxDxN,EAAMuN,EAAOE,IAAIC,gBAAgBH,GAAQD,EAAOK,QAAQC,YAE9DN,EAAOO,IAAM7N,KAGfgG,EAAS3N,SAAU,kBAAmB,UAAU,YAAiB,IAAdwN,EAAa,EAAbA,OAC3CiI,EAASzV,SAAS2K,cAAc,wBAC/BuK,GAAQ1H,EAAO2H,OAAS,IAF+B,GAGxDxN,EAAMuN,EAAOE,IAAIC,gBAAgBH,GAAQO,EAAOH,QAAQC,YAE9DE,EAAOD,IAAM7N,KAGfgG,EAAS3N,SAAU,kBAAmB,UAAU,YAAiB,IAAdwN,EAAa,EAAbA,OAC3CkI,EAAO1V,SAAS2K,cAAc,yBAEhC6C,EAAOiE,QACTiE,EAAKjC,MAAMC,QAAU,SAErBgC,EAAKjC,MAAMC,QAAU,UAIzB/F,EAAS3N,SAAU,oBAAqB,SAAS,YAAiB,IAAdwN,EAAa,EAAbA,OAClDA,EAAOmI,QACPnI,EAAOoI,SACPpI,EAAOqI,kBAAkB,EAAGrI,EAAO/B,MAAMjJ,WAG3CmL,EAAS3N,SAAU,qBAAsB,SAAS,YAAiB,IAAdwN,EAAa,EAAbA,OAC7CpB,EAAQoB,EAAOO,WAAWpD,cAAc,8BAExCmL,EAAc1J,EAAM2J,SAE1B3J,EAAM2J,UAAW,EACjB3J,EAAMuJ,QACNvJ,EAAMwJ,SACNxJ,EAAMyJ,kBAAkB,EAAGzJ,EAAMX,MAAMjJ,QAEvC,IACMxC,SAASgW,YAAY,UACvB5J,EAAM6J,OACNzI,EAAOO,WAAWmI,UAAUjN,IAAI,UAElC7F,YAAW,WACPoK,EAAOO,WAAWmI,UAAUC,OAAO,YAClC,MAEL,MAAOC,GACPC,QAAQpH,MAAMmH,GAGhBhK,EAAM2J,SAAWD,M,gCCtEnB,IAAIQ,EAAc,KAElB,SAASC,EAASC,GAChBjT,KAAKkT,MAAQ,GAEb,IAAK,IAAIlU,EAAI,EAAG0B,EAAMuS,EAAMhU,OAAQD,EAAI0B,EAAK1B,IAAK,CAIhD,IAHA,IAAImU,EAAOF,EAAMjU,GACboU,EAAOpT,KAAKkT,MAEPG,EAAI,EAAGC,EAAOH,EAAKlU,OAAQoU,EAAIC,EAAMD,IAAK,CACjD,IAAIE,EAAOJ,EAAKK,OAAOH,GACvBD,EAAOA,EAAKG,GAAQH,EAAKG,IAAS,GAGpCH,EAAKL,IAAe,GAIxBC,EAAS1R,UAAUsC,OAAS,SAAUhF,GAKpC,IAJA,IAAII,GAAK,EACL0B,EAAM9B,EAAIK,OACVwU,EAAQ,CAACzT,KAAKkT,SAETlU,EAAI0B,GAAK,CAChB,IAAI0S,EAAOK,EAAMzU,GACbuU,EAAO3U,EAAI4U,OAAOxU,GAEtB,KAAIuU,KAAQH,GAGV,MAFAK,EAAMpS,KAAK+R,EAAKG,IAMpB,KAAOE,EAAMxU,QACX,GAAIwU,EAAMC,MAAMX,GACd,OAAOnU,EAAIuH,UAAU,EAAGsN,EAAMxU,SAKpCM,EAAOb,QAAUsU,G,yBCjCbxB,EAAQ,KALVmC,E,KAIAC,G,qBAEMjV,EAAsB6S,EAAQ,KAA9B7S,kBAGFqE,EAAiB,GAEvB,SAAS6Q,EAAoBC,EAAcvP,GAAY,IAC/CwP,EAAqBD,EADyB,GACtC3P,EAAa2P,EADyB,GAE/C3P,IAEHA,EAAWxF,EAAkBoV,IAE/B/Q,EAAe+Q,GAAU,CACvBxP,UAAWA,EACXJ,SAAUA,GAIdrB,OAAOC,KAAK4Q,GAAuBjP,SAAQ,SAACH,GACnBoP,EAAsBpP,GADW,GAE3CG,SAAQ,SAAAoP,GAAY,OAAID,EAAoBC,EAAcvP,SAEzEqP,EAAwBlP,SAAQ,SAAAoP,GAAY,OAAID,EAAoBC,MAEpEvU,EAAOb,QAAUsE,I","file":"core/settings.js","sourcesContent":["const element = document.getElementById('initial-state');\nconst initialState = element && JSON.parse(element.textContent);\n\nconst getMeta = (prop) => initialState && initialState.meta && initialState.meta[prop];\nconst getRight = (prop) => initialState && initialState.rights && initialState.rights[prop];\n\nexport const reduceMotion = getMeta('reduce_motion');\nexport const autoPlayGif = getMeta('auto_play_gif');\nexport const displayMedia = getMeta('display_media');\nexport const expandSpoilers = getMeta('expand_spoilers');\nexport const unfollowModal = getMeta('unfollow_modal');\nexport const boostModal = getMeta('boost_modal');\nexport const deleteModal = getMeta('delete_modal');\nexport const me = getMeta('me');\nexport const searchEnabled = getMeta('search_enabled');\nexport const maxChars = getMeta('max_toot_chars') || 500;\nexport const invitesEnabled = getMeta('invites_enabled');\nexport const repository = getMeta('repository');\nexport const source_url = getMeta('source_url');\nexport const version = getMeta('version');\nexport const mascot = getMeta('mascot');\nexport const profile_directory = getMeta('profile_directory');\nexport const isStaff = getMeta('is_staff');\nexport const forceSingleColumn = !getMeta('advanced_layout');\nexport const useBlurhash = getMeta('use_blurhash');\nexport const usePendingItems = getMeta('use_pending_items');\nexport const showTrends = getMeta('trends');\nexport const title = getMeta('title');\nexport const cropImages = getMeta('crop_images');\n\nexport const deleteOthersNotice = getRight('delete_others_notice');\n\nexport default initialState;\n","// taken from:\n// https://github.com/twitter/twemoji/blob/47732c7/twemoji-generator.js#L848-L866\nexports.unicodeToFilename = (str) => {\n  let result = '';\n  let charCode = 0;\n  let p = 0;\n  let i = 0;\n  while (i < str.length) {\n    charCode = str.charCodeAt(i++);\n    if (p) {\n      if (result.length > 0) {\n        result += '-';\n      }\n      result += (0x10000 + ((p - 0xD800) << 10) + (charCode - 0xDC00)).toString(16);\n      p = 0;\n    } else if (0xD800 <= charCode && charCode <= 0xDBFF) {\n      p = charCode;\n    } else {\n      if (result.length > 0) {\n        result += '-';\n      }\n      result += charCode.toString(16);\n    }\n  }\n  return result;\n};\n","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n  throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n  throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n  try {\n    if (typeof setTimeout === 'function') {\n      cachedSetTimeout = setTimeout;\n    } else {\n      cachedSetTimeout = defaultSetTimout;\n    }\n  } catch (e) {\n    cachedSetTimeout = defaultSetTimout;\n  }\n\n  try {\n    if (typeof clearTimeout === 'function') {\n      cachedClearTimeout = clearTimeout;\n    } else {\n      cachedClearTimeout = defaultClearTimeout;\n    }\n  } catch (e) {\n    cachedClearTimeout = defaultClearTimeout;\n  }\n})();\n\nfunction runTimeout(fun) {\n  if (cachedSetTimeout === setTimeout) {\n    //normal enviroments in sane situations\n    return setTimeout(fun, 0);\n  } // if setTimeout wasn't available but was latter defined\n\n\n  if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n    cachedSetTimeout = setTimeout;\n    return setTimeout(fun, 0);\n  }\n\n  try {\n    // when when somebody has screwed with setTimeout but no I.E. maddness\n    return cachedSetTimeout(fun, 0);\n  } catch (e) {\n    try {\n      // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n      return cachedSetTimeout.call(null, fun, 0);\n    } catch (e) {\n      // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n      return cachedSetTimeout.call(this, fun, 0);\n    }\n  }\n}\n\nfunction runClearTimeout(marker) {\n  if (cachedClearTimeout === clearTimeout) {\n    //normal enviroments in sane situations\n    return clearTimeout(marker);\n  } // if clearTimeout wasn't available but was latter defined\n\n\n  if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n    cachedClearTimeout = clearTimeout;\n    return clearTimeout(marker);\n  }\n\n  try {\n    // when when somebody has screwed with setTimeout but no I.E. maddness\n    return cachedClearTimeout(marker);\n  } catch (e) {\n    try {\n      // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n      return cachedClearTimeout.call(null, marker);\n    } catch (e) {\n      // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n      // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n      return cachedClearTimeout.call(this, marker);\n    }\n  }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n  if (!draining || !currentQueue) {\n    return;\n  }\n\n  draining = false;\n\n  if (currentQueue.length) {\n    queue = currentQueue.concat(queue);\n  } else {\n    queueIndex = -1;\n  }\n\n  if (queue.length) {\n    drainQueue();\n  }\n}\n\nfunction drainQueue() {\n  if (draining) {\n    return;\n  }\n\n  var timeout = runTimeout(cleanUpNextTick);\n  draining = true;\n  var len = queue.length;\n\n  while (len) {\n    currentQueue = queue;\n    queue = [];\n\n    while (++queueIndex < len) {\n      if (currentQueue) {\n        currentQueue[queueIndex].run();\n      }\n    }\n\n    queueIndex = -1;\n    len = queue.length;\n  }\n\n  currentQueue = null;\n  draining = false;\n  runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n  var args = new Array(arguments.length - 1);\n\n  if (arguments.length > 1) {\n    for (var i = 1; i < arguments.length; i++) {\n      args[i - 1] = arguments[i];\n    }\n  }\n\n  queue.push(new Item(fun, args));\n\n  if (queue.length === 1 && !draining) {\n    runTimeout(drainQueue);\n  }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n  this.fun = fun;\n  this.array = array;\n}\n\nItem.prototype.run = function () {\n  this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n  return [];\n};\n\nprocess.binding = function (name) {\n  throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n  return '/';\n};\n\nprocess.chdir = function (dir) {\n  throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n  return 0;\n};","import { autoPlayGif } from '../../initial_state';\nimport unicodeMapping from './emoji_unicode_mapping_light';\nimport Trie from 'substring-trie';\n\nconst trie = new Trie(Object.keys(unicodeMapping));\n\nconst assetHost = process.env.CDN_HOST || '';\n\nconst emojify = (str, customEmojis = {}) => {\n  const tagCharsWithoutEmojis = '<&';\n  const tagCharsWithEmojis = Object.keys(customEmojis).length ? '<&:' : '<&';\n  let rtn = '', tagChars = tagCharsWithEmojis, invisible = 0;\n  for (;;) {\n    let match, i = 0, tag;\n    while (i < str.length && (tag = tagChars.indexOf(str[i])) === -1 && (invisible || !(match = trie.search(str.slice(i))))) {\n      i += str.codePointAt(i) < 65536 ? 1 : 2;\n    }\n    let rend, replacement = '';\n    if (i === str.length) {\n      break;\n    } else if (str[i] === ':') {\n      if (!(() => {\n        rend = str.indexOf(':', i + 1) + 1;\n        if (!rend) return false; // no pair of ':'\n        const lt = str.indexOf('<', i + 1);\n        if (!(lt === -1 || lt >= rend)) return false; // tag appeared before closing ':'\n        const shortname = str.slice(i, rend);\n        // now got a replacee as ':shortname:'\n        // if you want additional emoji handler, add statements below which set replacement and return true.\n        if (shortname in customEmojis) {\n          const filename = autoPlayGif ? customEmojis[shortname].url : customEmojis[shortname].static_url;\n          replacement = `<img draggable=\"false\" class=\"emojione custom-emoji\" alt=\"${shortname}\" title=\"${shortname}\" src=\"${filename}\" data-original=\"${customEmojis[shortname].url}\" data-static=\"${customEmojis[shortname].static_url}\" />`;\n          return true;\n        }\n        return false;\n      })()) rend = ++i;\n    } else if (tag >= 0) { // <, &\n      rend = str.indexOf('>;'[tag], i + 1) + 1;\n      if (!rend) {\n        break;\n      }\n      if (tag === 0) {\n        if (invisible) {\n          if (str[i + 1] === '/') { // closing tag\n            if (!--invisible) {\n              tagChars = tagCharsWithEmojis;\n            }\n          } else if (str[rend - 2] !== '/') { // opening tag\n            invisible++;\n          }\n        } else {\n          if (str.startsWith('<span class=\"invisible\">', i)) {\n            // avoid emojifying on invisible text\n            invisible = 1;\n            tagChars = tagCharsWithoutEmojis;\n          }\n        }\n      }\n      i = rend;\n    } else { // matched to unicode emoji\n      const { filename, shortCode } = unicodeMapping[match];\n      const title = shortCode ? `:${shortCode}:` : '';\n      replacement = `<img draggable=\"false\" class=\"emojione\" alt=\"${match}\" title=\"${title}\" src=\"${assetHost}/emoji/${filename}.svg\" />`;\n      rend = i + match.length;\n      // If the matched character was followed by VS15 (for selecting text presentation), skip it.\n      if (str.codePointAt(rend) === 65038) {\n        rend += 1;\n      }\n    }\n    rtn += str.slice(0, i) + replacement;\n    str = str.slice(rend);\n  }\n  return rtn + str;\n};\n\nexport default emojify;\n\nexport const buildCustomEmojis = (customEmojis) => {\n  const emojis = [];\n\n  customEmojis.forEach(emoji => {\n    const shortcode = emoji.get('shortcode');\n    const url       = autoPlayGif ? emoji.get('url') : emoji.get('static_url');\n    const name      = shortcode.replace(':', '');\n\n    emojis.push({\n      id: name,\n      name,\n      short_names: [name],\n      text: '',\n      emoticons: [],\n      keywords: [name],\n      imageUrl: url,\n      custom: true,\n      customCategory: emoji.get('category'),\n    });\n  });\n\n  return emojis;\n};\n\nexport const categoriesFromEmojis = customEmojis => customEmojis.reduce((set, emoji) => set.add(emoji.get('category') ? `custom-${emoji.get('category')}` : 'custom'), new Set(['custom']));\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n'use strict';\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n/**\n * Escape special characters in the given string of html.\n *\n * @param  {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n  var str = '' + string;\n  var match = matchHtmlRegExp.exec(str);\n\n  if (!match) {\n    return str;\n  }\n\n  var escape;\n  var html = '';\n  var index = 0;\n  var lastIndex = 0;\n\n  for (index = match.index; index < str.length; index++) {\n    switch (str.charCodeAt(index)) {\n      case 34:\n        // \"\n        escape = '&quot;';\n        break;\n\n      case 38:\n        // &\n        escape = '&amp;';\n        break;\n\n      case 39:\n        // '\n        escape = '&#39;';\n        break;\n\n      case 60:\n        // <\n        escape = '&lt;';\n        break;\n\n      case 62:\n        // >\n        escape = '&gt;';\n        break;\n\n      default:\n        continue;\n    }\n\n    if (lastIndex !== index) {\n      html += str.substring(lastIndex, index);\n    }\n\n    lastIndex = index + 1;\n    html += escape;\n  }\n\n  return lastIndex !== index ? html + str.substring(lastIndex, index) : html;\n}","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/master/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n  var context = this;\n  (function () {\n    (function () {\n      this.Rails = {\n        linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n        buttonClickSelector: {\n          selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n          exclude: 'form button'\n        },\n        inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n        formSubmitSelector: 'form',\n        formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n        formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n        formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n        fileInputSelector: 'input[name][type=file]:not([disabled])',\n        linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n        buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n      };\n    }).call(this);\n  }).call(context);\n  var Rails = context.Rails;\n  (function () {\n    (function () {\n      var nonce;\n      nonce = null;\n\n      Rails.loadCSPNonce = function () {\n        var ref;\n        return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n      };\n\n      Rails.cspNonce = function () {\n        return nonce != null ? nonce : Rails.loadCSPNonce();\n      };\n    }).call(this);\n    (function () {\n      var expando, m;\n      m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n      Rails.matches = function (element, selector) {\n        if (selector.exclude != null) {\n          return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n        } else {\n          return m.call(element, selector);\n        }\n      };\n\n      expando = '_ujsData';\n\n      Rails.getData = function (element, key) {\n        var ref;\n        return (ref = element[expando]) != null ? ref[key] : void 0;\n      };\n\n      Rails.setData = function (element, key, value) {\n        if (element[expando] == null) {\n          element[expando] = {};\n        }\n\n        return element[expando][key] = value;\n      };\n\n      Rails.$ = function (selector) {\n        return Array.prototype.slice.call(document.querySelectorAll(selector));\n      };\n    }).call(this);\n    (function () {\n      var $, csrfParam, csrfToken;\n      $ = Rails.$;\n\n      csrfToken = Rails.csrfToken = function () {\n        var meta;\n        meta = document.querySelector('meta[name=csrf-token]');\n        return meta && meta.content;\n      };\n\n      csrfParam = Rails.csrfParam = function () {\n        var meta;\n        meta = document.querySelector('meta[name=csrf-param]');\n        return meta && meta.content;\n      };\n\n      Rails.CSRFProtection = function (xhr) {\n        var token;\n        token = csrfToken();\n\n        if (token != null) {\n          return xhr.setRequestHeader('X-CSRF-Token', token);\n        }\n      };\n\n      Rails.refreshCSRFTokens = function () {\n        var param, token;\n        token = csrfToken();\n        param = csrfParam();\n\n        if (token != null && param != null) {\n          return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n            return input.value = token;\n          });\n        }\n      };\n    }).call(this);\n    (function () {\n      var CustomEvent, fire, matches, preventDefault;\n      matches = Rails.matches;\n      CustomEvent = window.CustomEvent;\n\n      if (typeof CustomEvent !== 'function') {\n        CustomEvent = function CustomEvent(event, params) {\n          var evt;\n          evt = document.createEvent('CustomEvent');\n          evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n          return evt;\n        };\n\n        CustomEvent.prototype = window.Event.prototype;\n        preventDefault = CustomEvent.prototype.preventDefault;\n\n        CustomEvent.prototype.preventDefault = function () {\n          var result;\n          result = preventDefault.call(this);\n\n          if (this.cancelable && !this.defaultPrevented) {\n            Object.defineProperty(this, 'defaultPrevented', {\n              get: function get() {\n                return true;\n              }\n            });\n          }\n\n          return result;\n        };\n      }\n\n      fire = Rails.fire = function (obj, name, data) {\n        var event;\n        event = new CustomEvent(name, {\n          bubbles: true,\n          cancelable: true,\n          detail: data\n        });\n        obj.dispatchEvent(event);\n        return !event.defaultPrevented;\n      };\n\n      Rails.stopEverything = function (e) {\n        fire(e.target, 'ujs:everythingStopped');\n        e.preventDefault();\n        e.stopPropagation();\n        return e.stopImmediatePropagation();\n      };\n\n      Rails.delegate = function (element, selector, eventType, handler) {\n        return element.addEventListener(eventType, function (e) {\n          var target;\n          target = e.target;\n\n          while (!(!(target instanceof Element) || matches(target, selector))) {\n            target = target.parentNode;\n          }\n\n          if (target instanceof Element && handler.call(target, e) === false) {\n            e.preventDefault();\n            return e.stopPropagation();\n          }\n        });\n      };\n    }).call(this);\n    (function () {\n      var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n      cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n      AcceptHeaders = {\n        '*': '*/*',\n        text: 'text/plain',\n        html: 'text/html',\n        xml: 'application/xml, text/xml',\n        json: 'application/json, text/javascript',\n        script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n      };\n\n      Rails.ajax = function (options) {\n        var xhr;\n        options = prepareOptions(options);\n        xhr = createXHR(options, function () {\n          var ref, response;\n          response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n          if (Math.floor(xhr.status / 100) === 2) {\n            if (typeof options.success === \"function\") {\n              options.success(response, xhr.statusText, xhr);\n            }\n          } else {\n            if (typeof options.error === \"function\") {\n              options.error(response, xhr.statusText, xhr);\n            }\n          }\n\n          return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n        });\n\n        if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n          return false;\n        }\n\n        if (xhr.readyState === XMLHttpRequest.OPENED) {\n          return xhr.send(options.data);\n        }\n      };\n\n      prepareOptions = function prepareOptions(options) {\n        options.url = options.url || location.href;\n        options.type = options.type.toUpperCase();\n\n        if (options.type === 'GET' && options.data) {\n          if (options.url.indexOf('?') < 0) {\n            options.url += '?' + options.data;\n          } else {\n            options.url += '&' + options.data;\n          }\n        }\n\n        if (AcceptHeaders[options.dataType] == null) {\n          options.dataType = '*';\n        }\n\n        options.accept = AcceptHeaders[options.dataType];\n\n        if (options.dataType !== '*') {\n          options.accept += ', */*; q=0.01';\n        }\n\n        return options;\n      };\n\n      createXHR = function createXHR(options, done) {\n        var xhr;\n        xhr = new XMLHttpRequest();\n        xhr.open(options.type, options.url, true);\n        xhr.setRequestHeader('Accept', options.accept);\n\n        if (typeof options.data === 'string') {\n          xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n        }\n\n        if (!options.crossDomain) {\n          xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n        }\n\n        CSRFProtection(xhr);\n        xhr.withCredentials = !!options.withCredentials;\n\n        xhr.onreadystatechange = function () {\n          if (xhr.readyState === XMLHttpRequest.DONE) {\n            return done(xhr);\n          }\n        };\n\n        return xhr;\n      };\n\n      processResponse = function processResponse(response, type) {\n        var parser, script;\n\n        if (typeof response === 'string' && typeof type === 'string') {\n          if (type.match(/\\bjson\\b/)) {\n            try {\n              response = JSON.parse(response);\n            } catch (error) {}\n          } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n            script = document.createElement('script');\n            script.setAttribute('nonce', cspNonce());\n            script.text = response;\n            document.head.appendChild(script).parentNode.removeChild(script);\n          } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n            parser = new DOMParser();\n            type = type.replace(/;.+/, '');\n\n            try {\n              response = parser.parseFromString(response, type);\n            } catch (error) {}\n          }\n        }\n\n        return response;\n      };\n\n      Rails.href = function (element) {\n        return element.href;\n      };\n\n      Rails.isCrossDomain = function (url) {\n        var e, originAnchor, urlAnchor;\n        originAnchor = document.createElement('a');\n        originAnchor.href = location.href;\n        urlAnchor = document.createElement('a');\n\n        try {\n          urlAnchor.href = url;\n          return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n        } catch (error) {\n          e = error;\n          return true;\n        }\n      };\n    }).call(this);\n    (function () {\n      var matches, toArray;\n      matches = Rails.matches;\n\n      toArray = function toArray(e) {\n        return Array.prototype.slice.call(e);\n      };\n\n      Rails.serializeElement = function (element, additionalParam) {\n        var inputs, params;\n        inputs = [element];\n\n        if (matches(element, 'form')) {\n          inputs = toArray(element.elements);\n        }\n\n        params = [];\n        inputs.forEach(function (input) {\n          if (!input.name || input.disabled) {\n            return;\n          }\n\n          if (matches(input, 'fieldset[disabled] *')) {\n            return;\n          }\n\n          if (matches(input, 'select')) {\n            return toArray(input.options).forEach(function (option) {\n              if (option.selected) {\n                return params.push({\n                  name: input.name,\n                  value: option.value\n                });\n              }\n            });\n          } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n            return params.push({\n              name: input.name,\n              value: input.value\n            });\n          }\n        });\n\n        if (additionalParam) {\n          params.push(additionalParam);\n        }\n\n        return params.map(function (param) {\n          if (param.name != null) {\n            return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n          } else {\n            return param;\n          }\n        }).join('&');\n      };\n\n      Rails.formElements = function (form, selector) {\n        if (matches(form, 'form')) {\n          return toArray(form.elements).filter(function (el) {\n            return matches(el, selector);\n          });\n        } else {\n          return toArray(form.querySelectorAll(selector));\n        }\n      };\n    }).call(this);\n    (function () {\n      var allowAction, fire, stopEverything;\n      fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n      Rails.handleConfirm = function (e) {\n        if (!allowAction(this)) {\n          return stopEverything(e);\n        }\n      };\n\n      Rails.confirm = function (message, element) {\n        return confirm(message);\n      };\n\n      allowAction = function allowAction(element) {\n        var answer, callback, message;\n        message = element.getAttribute('data-confirm');\n\n        if (!message) {\n          return true;\n        }\n\n        answer = false;\n\n        if (fire(element, 'confirm')) {\n          try {\n            answer = Rails.confirm(message, element);\n          } catch (error) {}\n\n          callback = fire(element, 'confirm:complete', [answer]);\n        }\n\n        return answer && callback;\n      };\n    }).call(this);\n    (function () {\n      var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n      matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n      Rails.handleDisabledElement = function (e) {\n        var element;\n        element = this;\n\n        if (element.disabled) {\n          return stopEverything(e);\n        }\n      };\n\n      Rails.enableElement = function (e) {\n        var element;\n\n        if (e instanceof Event) {\n          if (isXhrRedirect(e)) {\n            return;\n          }\n\n          element = e.target;\n        } else {\n          element = e;\n        }\n\n        if (matches(element, Rails.linkDisableSelector)) {\n          return enableLinkElement(element);\n        } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n          return enableFormElement(element);\n        } else if (matches(element, Rails.formSubmitSelector)) {\n          return enableFormElements(element);\n        }\n      };\n\n      Rails.disableElement = function (e) {\n        var element;\n        element = e instanceof Event ? e.target : e;\n\n        if (matches(element, Rails.linkDisableSelector)) {\n          return disableLinkElement(element);\n        } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n          return disableFormElement(element);\n        } else if (matches(element, Rails.formSubmitSelector)) {\n          return disableFormElements(element);\n        }\n      };\n\n      disableLinkElement = function disableLinkElement(element) {\n        var replacement;\n\n        if (getData(element, 'ujs:disabled')) {\n          return;\n        }\n\n        replacement = element.getAttribute('data-disable-with');\n\n        if (replacement != null) {\n          setData(element, 'ujs:enable-with', element.innerHTML);\n          element.innerHTML = replacement;\n        }\n\n        element.addEventListener('click', stopEverything);\n        return setData(element, 'ujs:disabled', true);\n      };\n\n      enableLinkElement = function enableLinkElement(element) {\n        var originalText;\n        originalText = getData(element, 'ujs:enable-with');\n\n        if (originalText != null) {\n          element.innerHTML = originalText;\n          setData(element, 'ujs:enable-with', null);\n        }\n\n        element.removeEventListener('click', stopEverything);\n        return setData(element, 'ujs:disabled', null);\n      };\n\n      disableFormElements = function disableFormElements(form) {\n        return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n      };\n\n      disableFormElement = function disableFormElement(element) {\n        var replacement;\n\n        if (getData(element, 'ujs:disabled')) {\n          return;\n        }\n\n        replacement = element.getAttribute('data-disable-with');\n\n        if (replacement != null) {\n          if (matches(element, 'button')) {\n            setData(element, 'ujs:enable-with', element.innerHTML);\n            element.innerHTML = replacement;\n          } else {\n            setData(element, 'ujs:enable-with', element.value);\n            element.value = replacement;\n          }\n        }\n\n        element.disabled = true;\n        return setData(element, 'ujs:disabled', true);\n      };\n\n      enableFormElements = function enableFormElements(form) {\n        return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n      };\n\n      enableFormElement = function enableFormElement(element) {\n        var originalText;\n        originalText = getData(element, 'ujs:enable-with');\n\n        if (originalText != null) {\n          if (matches(element, 'button')) {\n            element.innerHTML = originalText;\n          } else {\n            element.value = originalText;\n          }\n\n          setData(element, 'ujs:enable-with', null);\n        }\n\n        element.disabled = false;\n        return setData(element, 'ujs:disabled', null);\n      };\n\n      isXhrRedirect = function isXhrRedirect(event) {\n        var ref, xhr;\n        xhr = (ref = event.detail) != null ? ref[0] : void 0;\n        return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n      };\n    }).call(this);\n    (function () {\n      var stopEverything;\n      stopEverything = Rails.stopEverything;\n\n      Rails.handleMethod = function (e) {\n        var csrfParam, csrfToken, form, formContent, href, link, method;\n        link = this;\n        method = link.getAttribute('data-method');\n\n        if (!method) {\n          return;\n        }\n\n        href = Rails.href(link);\n        csrfToken = Rails.csrfToken();\n        csrfParam = Rails.csrfParam();\n        form = document.createElement('form');\n        formContent = \"<input name='_method' value='\" + method + \"' type='hidden' />\";\n\n        if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n          formContent += \"<input name='\" + csrfParam + \"' value='\" + csrfToken + \"' type='hidden' />\";\n        }\n\n        formContent += '<input type=\"submit\" />';\n        form.method = 'post';\n        form.action = href;\n        form.target = link.target;\n        form.innerHTML = formContent;\n        form.style.display = 'none';\n        document.body.appendChild(form);\n        form.querySelector('[type=\"submit\"]').click();\n        return stopEverything(e);\n      };\n    }).call(this);\n    (function () {\n      var ajax,\n          fire,\n          getData,\n          isCrossDomain,\n          isRemote,\n          matches,\n          serializeElement,\n          setData,\n          stopEverything,\n          slice = [].slice;\n      matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n      isRemote = function isRemote(element) {\n        var value;\n        value = element.getAttribute('data-remote');\n        return value != null && value !== 'false';\n      };\n\n      Rails.handleRemote = function (e) {\n        var button, data, dataType, element, method, url, withCredentials;\n        element = this;\n\n        if (!isRemote(element)) {\n          return true;\n        }\n\n        if (!fire(element, 'ajax:before')) {\n          fire(element, 'ajax:stopped');\n          return false;\n        }\n\n        withCredentials = element.getAttribute('data-with-credentials');\n        dataType = element.getAttribute('data-type') || 'script';\n\n        if (matches(element, Rails.formSubmitSelector)) {\n          button = getData(element, 'ujs:submit-button');\n          method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n          url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n          if (method.toUpperCase() === 'GET') {\n            url = url.replace(/\\?.*$/, '');\n          }\n\n          if (element.enctype === 'multipart/form-data') {\n            data = new FormData(element);\n\n            if (button != null) {\n              data.append(button.name, button.value);\n            }\n          } else {\n            data = serializeElement(element, button);\n          }\n\n          setData(element, 'ujs:submit-button', null);\n          setData(element, 'ujs:submit-button-formmethod', null);\n          setData(element, 'ujs:submit-button-formaction', null);\n        } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n          method = element.getAttribute('data-method');\n          url = element.getAttribute('data-url');\n          data = serializeElement(element, element.getAttribute('data-params'));\n        } else {\n          method = element.getAttribute('data-method');\n          url = Rails.href(element);\n          data = element.getAttribute('data-params');\n        }\n\n        ajax({\n          type: method || 'GET',\n          url: url,\n          data: data,\n          dataType: dataType,\n          beforeSend: function beforeSend(xhr, options) {\n            if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n              return fire(element, 'ajax:send', [xhr]);\n            } else {\n              fire(element, 'ajax:stopped');\n              return false;\n            }\n          },\n          success: function success() {\n            var args;\n            args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n            return fire(element, 'ajax:success', args);\n          },\n          error: function error() {\n            var args;\n            args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n            return fire(element, 'ajax:error', args);\n          },\n          complete: function complete() {\n            var args;\n            args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n            return fire(element, 'ajax:complete', args);\n          },\n          crossDomain: isCrossDomain(url),\n          withCredentials: withCredentials != null && withCredentials !== 'false'\n        });\n        return stopEverything(e);\n      };\n\n      Rails.formSubmitButtonClick = function (e) {\n        var button, form;\n        button = this;\n        form = button.form;\n\n        if (!form) {\n          return;\n        }\n\n        if (button.name) {\n          setData(form, 'ujs:submit-button', {\n            name: button.name,\n            value: button.value\n          });\n        }\n\n        setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n        setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n        return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n      };\n\n      Rails.preventInsignificantClick = function (e) {\n        var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n        link = this;\n        method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n        data = link.getAttribute('data-params');\n        metaClick = e.metaKey || e.ctrlKey;\n        insignificantMetaClick = metaClick && method === 'GET' && !data;\n        nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n        if (nonPrimaryMouseClick || insignificantMetaClick) {\n          return e.stopImmediatePropagation();\n        }\n      };\n    }).call(this);\n    (function () {\n      var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n      fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n      if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n        if (jQuery.rails) {\n          throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n        }\n\n        jQuery.rails = Rails;\n        jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n          if (!options.crossDomain) {\n            return CSRFProtection(xhr);\n          }\n        });\n      }\n\n      Rails.start = function () {\n        if (window._rails_loaded) {\n          throw new Error('rails-ujs has already been loaded!');\n        }\n\n        window.addEventListener('pageshow', function () {\n          $(Rails.formEnableSelector).forEach(function (el) {\n            if (getData(el, 'ujs:disabled')) {\n              return enableElement(el);\n            }\n          });\n          return $(Rails.linkDisableSelector).forEach(function (el) {\n            if (getData(el, 'ujs:disabled')) {\n              return enableElement(el);\n            }\n          });\n        });\n        delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n        delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n        delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n        delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n        delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n        delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n        delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n        delegate(document, Rails.linkClickSelector, 'click', disableElement);\n        delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n        delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n        delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n        delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n        delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n        delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n        delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n        delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n        delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n        delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n        delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n        delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n        delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n        delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n          return setTimeout(function () {\n            return disableElement(e);\n          }, 13);\n        });\n        delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n        delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n        delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n        delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n        delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n        delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n        document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n        document.addEventListener('DOMContentLoaded', loadCSPNonce);\n        return window._rails_loaded = true;\n      };\n\n      if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n        Rails.start();\n      }\n    }).call(this);\n  }).call(this);\n\n  if (typeof module === \"object\" && module.exports) {\n    module.exports = Rails;\n  } else if (typeof define === \"function\" && define.amd) {\n    define(Rails);\n  }\n}).call(this);","//  This file will be loaded on settings pages, regardless of theme.\n\nimport escapeTextContentForBrowser from 'escape-html';\nconst { delegate } = require('@rails/ujs');\nimport emojify from '../mastodon/features/emoji/emoji';\n\ndelegate(document, '#account_display_name', 'input', ({ target }) => {\n  const name = document.querySelector('.card .display-name strong');\n  if (name) {\n    if (target.value) {\n      name.innerHTML = emojify(escapeTextContentForBrowser(target.value));\n    } else {\n      name.textContent = document.querySelector('#default_account_display_name').textContent;\n    }\n  }\n});\n\ndelegate(document, '#account_avatar', 'change', ({ target }) => {\n  const avatar = document.querySelector('.card .avatar img');\n  const [file] = target.files || [];\n  const url = file ? URL.createObjectURL(file) : avatar.dataset.originalSrc;\n\n  avatar.src = url;\n});\n\ndelegate(document, '#account_header', 'change', ({ target }) => {\n  const header = document.querySelector('.card .card__img img');\n  const [file] = target.files || [];\n  const url = file ? URL.createObjectURL(file) : header.dataset.originalSrc;\n\n  header.src = url;\n});\n\ndelegate(document, '#account_locked', 'change', ({ target }) => {\n  const lock = document.querySelector('.card .display-name i');\n\n  if (target.checked) {\n    lock.style.display = 'inline';\n  } else {\n    lock.style.display = 'none';\n  }\n});\n\ndelegate(document, '.input-copy input', 'click', ({ target }) => {\n  target.focus();\n  target.select();\n  target.setSelectionRange(0, target.value.length);\n});\n\ndelegate(document, '.input-copy button', 'click', ({ target }) => {\n  const input = target.parentNode.querySelector('.input-copy__wrapper input');\n\n  const oldReadOnly = input.readonly;\n\n  input.readonly = false;\n  input.focus();\n  input.select();\n  input.setSelectionRange(0, input.value.length);\n\n  try {\n    if (document.execCommand('copy')) {\n      input.blur();\n      target.parentNode.classList.add('copied');\n\n    setTimeout(() => {\n        target.parentNode.classList.remove('copied');\n      }, 700);\n    }\n  } catch (err) {\n    console.error(err);\n  }\n\n  input.readonly = oldReadOnly;\n});\n","'use strict';\n\nvar CODA_MARKER = '$$'; // marks the end of the string\n\nfunction MiniTrie(words) {\n  this._dict = {};\n\n  for (var i = 0, len = words.length; i < len; i++) {\n    var word = words[i];\n    var dict = this._dict;\n\n    for (var j = 0, len2 = word.length; j < len2; j++) {\n      var char = word.charAt(j);\n      dict = dict[char] = dict[char] || {};\n    }\n\n    dict[CODA_MARKER] = true;\n  }\n}\n\nMiniTrie.prototype.search = function (str) {\n  var i = -1;\n  var len = str.length;\n  var stack = [this._dict];\n\n  while (++i < len) {\n    var dict = stack[i];\n    var char = str.charAt(i);\n\n    if (char in dict) {\n      stack.push(dict[char]);\n    } else {\n      break;\n    }\n  }\n\n  while (stack.length) {\n    if (stack.pop()[CODA_MARKER]) {\n      return str.substring(0, stack.length);\n    }\n  }\n};\n\nmodule.exports = MiniTrie;","// A mapping of unicode strings to an object containing the filename\n// (i.e. the svg filename) and a shortCode intended to be shown\n// as a \"title\" attribute in an HTML element (aka tooltip).\n\nconst [\n  shortCodesToEmojiData,\n  skins, // eslint-disable-line no-unused-vars\n  categories, // eslint-disable-line no-unused-vars\n  short_names, // eslint-disable-line no-unused-vars\n  emojisWithoutShortCodes,\n] = require('./emoji_compressed');\nconst { unicodeToFilename } = require('./unicode_to_filename');\n\n// decompress\nconst unicodeMapping = {};\n\nfunction processEmojiMapData(emojiMapData, shortCode) {\n  let [ native, filename ] = emojiMapData;\n  if (!filename) {\n    // filename name can be derived from unicodeToFilename\n    filename = unicodeToFilename(native);\n  }\n  unicodeMapping[native] = {\n    shortCode: shortCode,\n    filename: filename,\n  };\n}\n\nObject.keys(shortCodesToEmojiData).forEach((shortCode) => {\n  let [ filenameData ] = shortCodesToEmojiData[shortCode];\n  filenameData.forEach(emojiMapData => processEmojiMapData(emojiMapData, shortCode));\n});\nemojisWithoutShortCodes.forEach(emojiMapData => processEmojiMapData(emojiMapData));\n\nmodule.exports = unicodeMapping;\n"],"sourceRoot":""}
\ No newline at end of file