var Core =
/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__webpack_require__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__webpack_require__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __webpack_require__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__webpack_require__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = "./src/index.js");
/******/ })
/************************************************************************/
/******/ ({

/***/ "./src sync recursive":
/*!******************!*\
  !*** ./src sync ***!
  \******************/
/*! no static exports found */
/***/ (function(module, exports) {

function webpackEmptyContext(req) {
	var e = new Error("Cannot find module '" + req + "'");
	e.code = 'MODULE_NOT_FOUND';
	throw e;
}
webpackEmptyContext.keys = function() { return []; };
webpackEmptyContext.resolve = webpackEmptyContext;
module.exports = webpackEmptyContext;
webpackEmptyContext.id = "./src sync recursive";

/***/ }),

/***/ "./src/0globals.js":
/*!*************************!*\
  !*** ./src/0globals.js ***!
  \*************************/
/*! exports provided: minSupportedVersion, bbdVersion, bbdChangelog, settings, defaultCookie, settingsCookie, bdpluginErrors, bdthemeErrors, bdConfig, bemotes, emotesFfz, emotesBTTV, emotesBTTV2, emotesTwitch, subEmotesTwitch, bdEmotes, bdEmoteSettingIDs, bdthemes, bdplugins, pluginCookie, themeCookie */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"minSupportedVersion\", function() { return minSupportedVersion; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bbdVersion\", function() { return bbdVersion; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bbdChangelog\", function() { return bbdChangelog; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"settings\", function() { return settings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultCookie\", function() { return defaultCookie; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"settingsCookie\", function() { return settingsCookie; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdpluginErrors\", function() { return bdpluginErrors; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdthemeErrors\", function() { return bdthemeErrors; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdConfig\", function() { return bdConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bemotes\", function() { return bemotes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"emotesFfz\", function() { return emotesFfz; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"emotesBTTV\", function() { return emotesBTTV; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"emotesBTTV2\", function() { return emotesBTTV2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"emotesTwitch\", function() { return emotesTwitch; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subEmotesTwitch\", function() { return subEmotesTwitch; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdEmotes\", function() { return bdEmotes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdEmoteSettingIDs\", function() { return bdEmoteSettingIDs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdthemes\", function() { return bdthemes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdplugins\", function() { return bdplugins; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pluginCookie\", function() { return pluginCookie; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"themeCookie\", function() { return themeCookie; });\n// var settingsPanel, emoteModule, quickEmoteMenu, voiceMode, pluginModule, themeModule, dMode, publicServersModule, mainCore, BDV2;\nconst minSupportedVersion = \"0.3.0\";\nconst bbdVersion = \"0.2.24\";\nconst bbdChangelog = {\n  description: \"Mostly behind the scenes changes here.\",\n  changes: [{\n    title: \"What's New?\",\n    items: [\"**Dark Mode is back!** Or rather... it's toggleable again and no longer forced on.\", \"**Changes for developers!** Plugin and theme developers will now have more options to customize their plugin cards in their METAs and also a new META structure.\"]\n  }, {\n    title: \"Fixes\",\n    type: \"fixed\",\n    items: [\"**Emote Menu** should now show both Twich Global emotes and your favorites, you should even be able to click on them again!\"]\n  }, {\n    title: \"Minor Stuff\",\n    type: \"improved\",\n    items: [\"**Clean Code.** Well not really. But BD's code is starting to be cleaned up to make it easier to maintain and better performing.\"]\n  }]\n};\nconst settings = {\n  \"Custom css live update\": {\n    id: \"bda-css-0\",\n    info: \"\",\n    implemented: true,\n    hidden: true,\n    cat: \"core\"\n  },\n  \"Custom css auto udpate\": {\n    id: \"bda-css-1\",\n    info: \"\",\n    implemented: true,\n    hidden: true,\n    cat: \"core\"\n  },\n  \"BetterDiscord Blue\": {\n    id: \"bda-gs-b\",\n    info: \"Replace Discord blue with BD Blue\",\n    implemented: false,\n    hidden: false,\n    cat: \"core\"\n  },\n\n  /* Core */\n\n  /* ====== */\n  \"Public Servers\": {\n    id: \"bda-gs-1\",\n    info: \"Display public servers button\",\n    implemented: true,\n    hidden: false,\n    cat: \"core\",\n    category: \"modules\"\n  },\n  \"Minimal Mode\": {\n    id: \"bda-gs-2\",\n    info: \"Hide elements and reduce the size of elements.\",\n    implemented: true,\n    hidden: false,\n    cat: \"core\",\n    category: \"modules\"\n  },\n  \"Voice Mode\": {\n    id: \"bda-gs-4\",\n    info: \"Only show voice chat\",\n    implemented: true,\n    hidden: false,\n    cat: \"core\",\n    category: \"modules\"\n  },\n  \"Hide Channels\": {\n    id: \"bda-gs-3\",\n    info: \"Hide channels in minimal mode\",\n    implemented: true,\n    hidden: false,\n    cat: \"core\",\n    category: \"modules\"\n  },\n  \"Dark Mode\": {\n    id: \"bda-gs-5\",\n    info: \"Make certain elements dark by default(wip)\",\n    implemented: true,\n    hidden: false,\n    cat: \"core\",\n    category: \"modules\"\n  },\n  \"Voice Disconnect\": {\n    id: \"bda-dc-0\",\n    info: \"Disconnect from voice server when closing Discord\",\n    implemented: true,\n    hidden: false,\n    cat: \"core\",\n    category: \"modules\"\n  },\n  \"24 Hour Timestamps\": {\n    id: \"bda-gs-6\",\n    info: \"Replace 12hr timestamps with proper ones\",\n    implemented: true,\n    hidden: false,\n    cat: \"core\",\n    category: \"modules\"\n  },\n  \"Colored Text\": {\n    id: \"bda-gs-7\",\n    info: \"Make text color the same as role color\",\n    implemented: true,\n    hidden: false,\n    cat: \"core\",\n    category: \"modules\"\n  },\n  \"Normalize Classes\": {\n    id: \"fork-ps-4\",\n    info: \"Adds stable classes to elements to help themes. (e.g. adds .da-channels to .channels-Ie2l6A)\",\n    implemented: true,\n    hidden: false,\n    cat: \"core\",\n    category: \"modules\"\n  },\n\n  /* Content */\n  \"Content Error Modal\": {\n    id: \"fork-ps-1\",\n    info: \"Shows a modal with plugin/theme errors\",\n    implemented: true,\n    hidden: false,\n    cat: \"core\",\n    category: \"content manager\"\n  },\n  \"Show Toasts\": {\n    id: \"fork-ps-2\",\n    info: \"Shows a small notification for important information\",\n    implemented: true,\n    hidden: false,\n    cat: \"core\",\n    category: \"content manager\"\n  },\n  \"Scroll To Settings\": {\n    id: \"fork-ps-3\",\n    info: \"Auto-scrolls to a plugin's settings when the button is clicked (only if out of view)\",\n    implemented: true,\n    hidden: false,\n    cat: \"core\",\n    category: \"content manager\"\n  },\n  \"Automatic Loading\": {\n    id: \"fork-ps-5\",\n    info: \"Automatically loads, reloads, and unloads plugins and themes\",\n    implemented: true,\n    hidden: false,\n    cat: \"core\",\n    category: \"content manager\"\n  },\n\n  /* Developer */\n  \"Developer Mode\": {\n    id: \"bda-gs-8\",\n    info: \"Developer Mode\",\n    implemented: true,\n    hidden: false,\n    cat: \"core\",\n    category: \"developer settings\"\n  },\n  \"Copy Selector\": {\n    id: \"fork-dm-1\",\n    info: \"Adds a \\\"Copy Selector\\\" option to context menus when developer mode is active\",\n    implemented: true,\n    hidden: false,\n    cat: \"core\",\n    category: \"developer settings\"\n  },\n\n  /* Window Prefs */\n  \"Enable Transparency\": {\n    id: \"fork-wp-1\",\n    info: \"Enables the main window to be see-through (requires restart)\",\n    implemented: true,\n    hidden: false,\n    cat: \"core\",\n    category: \"window preferences\"\n  },\n  \"Window Frame\": {\n    id: \"fork-wp-2\",\n    info: \"Adds the native os window frame to the main window\",\n    implemented: false,\n    hidden: true,\n    cat: \"core\",\n    category: \"window preferences\"\n  },\n\n  /* Emotes */\n\n  /* ====== */\n  \"Download Emotes\": {\n    id: \"fork-es-3\",\n    info: \"Download emotes when the cache is expired\",\n    implemented: true,\n    hidden: false,\n    cat: \"emote\"\n  },\n  \"Twitch Emotes\": {\n    id: \"bda-es-7\",\n    info: \"Show Twitch emotes\",\n    implemented: true,\n    hidden: false,\n    cat: \"emote\"\n  },\n  \"FrankerFaceZ Emotes\": {\n    id: \"bda-es-1\",\n    info: \"Show FrankerFaceZ Emotes\",\n    implemented: true,\n    hidden: false,\n    cat: \"emote\"\n  },\n  \"BetterTTV Emotes\": {\n    id: \"bda-es-2\",\n    info: \"Show BetterTTV Emotes\",\n    implemented: true,\n    hidden: false,\n    cat: \"emote\"\n  },\n  \"Emote Menu\": {\n    id: \"bda-es-0\",\n    info: \"Show Twitch/Favourite emotes in emote menu\",\n    implemented: true,\n    hidden: false,\n    cat: \"emote\"\n  },\n  \"Emoji Menu\": {\n    id: \"bda-es-9\",\n    info: \"Show Discord emoji menu\",\n    implemented: true,\n    hidden: false,\n    cat: \"emote\"\n  },\n  \"Emote Auto Capitalization\": {\n    id: \"bda-es-4\",\n    info: \"Autocapitalize emote commands\",\n    implemented: true,\n    hidden: false,\n    cat: \"emote\"\n  },\n  \"Show Names\": {\n    id: \"bda-es-6\",\n    info: \"Show emote names on hover\",\n    implemented: true,\n    hidden: false,\n    cat: \"emote\"\n  },\n  \"Show emote modifiers\": {\n    id: \"bda-es-8\",\n    info: \"Enable emote mods (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)\",\n    implemented: true,\n    hidden: false,\n    cat: \"emote\"\n  },\n  \"Animate On Hover\": {\n    id: \"fork-es-2\",\n    info: \"Only animate the emote modifiers on hover\",\n    implemented: true,\n    hidden: false,\n    cat: \"emote\"\n  }\n};\nconst defaultCookie = {\n  \"bda-gs-1\": true,\n  \"bda-gs-2\": false,\n  \"bda-gs-3\": false,\n  \"bda-gs-4\": false,\n  \"bda-gs-5\": true,\n  \"bda-gs-6\": false,\n  \"bda-gs-7\": false,\n  \"bda-gs-8\": false,\n  \"bda-es-0\": true,\n  \"bda-es-1\": true,\n  \"bda-es-2\": true,\n  \"bda-es-4\": false,\n  \"bda-es-6\": true,\n  \"bda-es-7\": true,\n  \"bda-gs-b\": false,\n  \"bda-es-8\": true,\n  \"bda-dc-0\": false,\n  \"bda-css-0\": false,\n  \"bda-css-1\": false,\n  \"bda-es-9\": true,\n  \"fork-dm-1\": false,\n  \"fork-ps-1\": true,\n  \"fork-ps-2\": true,\n  \"fork-ps-3\": true,\n  \"fork-ps-4\": true,\n  \"fork-ps-5\": true,\n  \"fork-es-2\": false,\n  \"fork-es-3\": true,\n  \"fork-wp-1\": false,\n  \"fork-wp-2\": false\n};\nconst settingsCookie = {};\nconst bdpluginErrors = [];\nconst bdthemeErrors = []; // define for backwards compatibility\n\nconst bdConfig = {};\nconst bemotes = [];\nconst emotesFfz = {};\nconst emotesBTTV = {};\nconst emotesBTTV2 = {};\nconst emotesTwitch = {};\nconst subEmotesTwitch = {};\nconst bdEmotes = {\n  TwitchGlobal: {},\n  TwitchSubscriber: {},\n  BTTV: {},\n  FrankerFaceZ: {},\n  BTTV2: {}\n};\nconst bdEmoteSettingIDs = {\n  TwitchGlobal: \"bda-es-7\",\n  TwitchSubscriber: \"bda-es-7\",\n  BTTV: \"bda-es-2\",\n  FrankerFaceZ: \"bda-es-1\",\n  BTTV2: \"bda-es-2\"\n};\nconst bdthemes = {};\nconst bdplugins = {};\nconst pluginCookie = {};\nconst themeCookie = {};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 13972 characters]\n//# sourceURL=webpack-internal:///./src/0globals.js\n");

/***/ }),

/***/ "./src/24hour.js":
/*!***********************!*\
  !*** ./src/24hour.js ***!
  \***********************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./0globals */ \"./src/0globals.js\");\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./v2 */ \"./src/v2.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ \"./src/utils.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class TFHour {\n  inject24Hour() {\n    if (this.cancel24Hour) return;\n    const twelveHour = new RegExp(`([0-9]{1,2}):([0-9]{1,2})\\\\s(AM|PM)`);\n\n    const convert = data => {\n      if (!_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-6\"]) return;\n      const matched = data.returnValue.match(twelveHour);\n      if (!matched || matched.length !== 4) return;\n      if (matched[3] === \"AM\") return data.returnValue = data.returnValue.replace(matched[0], `${matched[1] === \"12\" ? \"00\" : matched[1].padStart(2, \"0\")}:${matched[2]}`);\n      return data.returnValue = data.returnValue.replace(matched[0], `${matched[1] === \"12\" ? \"12\" : parseInt(matched[1]) + 12}:${matched[2]}`);\n    };\n\n    const cancelCozy = _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].monkeyPatch(_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].TimeFormatter, \"calendarFormat\", {\n      after: convert\n    }); // Called in Cozy mode\n\n    const cancelCompact = _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].monkeyPatch(_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].TimeFormatter, \"dateFormat\", {\n      after: convert\n    }); // Called in Compact mode\n\n    this.cancel24Hour = () => {\n      cancelCozy();\n      cancelCompact();\n    }; // Cancel both\n\n  }\n\n  remove24Hour() {\n    if (this.cancel24Hour) this.cancel24Hour();\n  }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvMjRob3VyLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQ29yZS8uL3NyYy8yNGhvdXIuanM/ZjFhMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzZXR0aW5nc0Nvb2tpZSB9IGZyb20gXCIuLzBnbG9iYWxzXCI7XG5pbXBvcnQgQkRWMiBmcm9tIFwiLi92MlwiO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuL3V0aWxzXCI7XG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgVEZIb3VyIHtcbiAgaW5qZWN0MjRIb3VyKCkge1xuICAgIGlmICh0aGlzLmNhbmNlbDI0SG91cikgcmV0dXJuO1xuICAgIGNvbnN0IHR3ZWx2ZUhvdXIgPSBuZXcgUmVnRXhwKGAoWzAtOV17MSwyfSk6KFswLTldezEsMn0pXFxcXHMoQU18UE0pYCk7XG5cbiAgICBjb25zdCBjb252ZXJ0ID0gZGF0YSA9PiB7XG4gICAgICBpZiAoIXNldHRpbmdzQ29va2llW1wiYmRhLWdzLTZcIl0pIHJldHVybjtcbiAgICAgIGNvbnN0IG1hdGNoZWQgPSBkYXRhLnJldHVyblZhbHVlLm1hdGNoKHR3ZWx2ZUhvdXIpO1xuICAgICAgaWYgKCFtYXRjaGVkIHx8IG1hdGNoZWQubGVuZ3RoICE9PSA0KSByZXR1cm47XG4gICAgICBpZiAobWF0Y2hlZFszXSA9PT0gXCJBTVwiKSByZXR1cm4gZGF0YS5yZXR1cm5WYWx1ZSA9IGRhdGEucmV0dXJuVmFsdWUucmVwbGFjZShtYXRjaGVkWzBdLCBgJHttYXRjaGVkWzFdID09PSBcIjEyXCIgPyBcIjAwXCIgOiBtYXRjaGVkWzFdLnBhZFN0YXJ0KDIsIFwiMFwiKX06JHttYXRjaGVkWzJdfWApO1xuICAgICAgcmV0dXJuIGRhdGEucmV0dXJuVmFsdWUgPSBkYXRhLnJldHVyblZhbHVlLnJlcGxhY2UobWF0Y2hlZFswXSwgYCR7bWF0Y2hlZFsxXSA9PT0gXCIxMlwiID8gXCIxMlwiIDogcGFyc2VJbnQobWF0Y2hlZFsxXSkgKyAxMn06JHttYXRjaGVkWzJdfWApO1xuICAgIH07XG5cbiAgICBjb25zdCBjYW5jZWxDb3p5ID0gVXRpbHMubW9ua2V5UGF0Y2goQkRWMi5UaW1lRm9ybWF0dGVyLCBcImNhbGVuZGFyRm9ybWF0XCIsIHtcbiAgICAgIGFmdGVyOiBjb252ZXJ0XG4gICAgfSk7IC8vIENhbGxlZCBpbiBDb3p5IG1vZGVcblxuICAgIGNvbnN0IGNhbmNlbENvbXBhY3QgPSBVdGlscy5tb25rZXlQYXRjaChCRFYyLlRpbWVGb3JtYXR0ZXIsIFwiZGF0ZUZvcm1hdFwiLCB7XG4gICAgICBhZnRlcjogY29udmVydFxuICAgIH0pOyAvLyBDYWxsZWQgaW4gQ29tcGFjdCBtb2RlXG5cbiAgICB0aGlzLmNhbmNlbDI0SG91ciA9ICgpID0+IHtcbiAgICAgIGNhbmNlbENvenkoKTtcbiAgICAgIGNhbmNlbENvbXBhY3QoKTtcbiAgICB9OyAvLyBDYW5jZWwgYm90aFxuXG4gIH1cblxuICByZW1vdmUyNEhvdXIoKSB7XG4gICAgaWYgKHRoaXMuY2FuY2VsMjRIb3VyKSB0aGlzLmNhbmNlbDI0SG91cigpO1xuICB9XG5cbn0oKTsiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/24hour.js\n");

/***/ }),

/***/ "./src/bdApi.js":
/*!**********************!*\
  !*** ./src/bdApi.js ***!
  \**********************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./0globals */ \"./src/0globals.js\");\n/* harmony import */ var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./core */ \"./src/core.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ \"./src/utils.js\");\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./v2 */ \"./src/v2.js\");\n/* harmony import */ var _dataStore__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dataStore */ \"./src/dataStore.js\");\n\n\n\n\n\nconst BdApi = {\n  get React() {\n    return _v2__WEBPACK_IMPORTED_MODULE_3__[\"default\"].react;\n  },\n\n  get ReactDOM() {\n    return _v2__WEBPACK_IMPORTED_MODULE_3__[\"default\"].reactDom;\n  },\n\n  get WindowConfigFile() {\n    if (this._windowConfigFile) return this._windowConfigFile;\n\n    const electron = __webpack_require__(/*! electron */ \"electron\").remote.app;\n\n    const path = __webpack_require__(/*! path */ \"path\");\n\n    const base = electron.getAppPath();\n    const roamingBase = electron.getPath(\"userData\");\n    const roamingLocation = path.resolve(roamingBase, electron.getVersion(), \"modules\", \"discord_desktop_core\", \"injector\", \"config.json\");\n    const location = path.resolve(base, \"..\", \"app\", \"config.json\");\n\n    const fs = __webpack_require__(/*! fs */ \"fs\");\n\n    const realLocation = fs.existsSync(location) ? location : fs.existsSync(roamingLocation) ? roamingLocation : null;\n    if (!realLocation) return this._windowConfigFile = null;\n    return this._windowConfigFile = realLocation;\n  }\n\n};\n\nBdApi.getAllWindowPreferences = function () {\n  if (!this.WindowConfigFile) return {}; // Tempfix until new injection on other platforms\n\n  return require(this.WindowConfigFile);\n};\n\nBdApi.getWindowPreference = function (key) {\n  if (!this.WindowConfigFile) return undefined; // Tempfix until new injection on other platforms\n\n  return this.getAllWindowPreferences()[key];\n};\n\nBdApi.setWindowPreference = function (key, value) {\n  if (!this.WindowConfigFile) return; // Tempfix until new injection on other platforms\n\n  const fs = __webpack_require__(/*! fs */ \"fs\");\n\n  const prefs = this.getAllWindowPreferences();\n  prefs[key] = value;\n  delete __webpack_require__.c[this.WindowConfigFile];\n  fs.writeFileSync(this.WindowConfigFile, JSON.stringify(prefs, null, 4));\n}; //Inject CSS to document head\n//id = id of element\n//css = custom css\n\n\nBdApi.injectCSS = function (id, css) {\n  $(\"head\").append($(\"<style>\", {\n    id: _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].escapeID(id),\n    text: css\n  }));\n}; //Clear css/remove any element\n//id = id of element\n\n\nBdApi.clearCSS = function (id) {\n  $(\"#\" + _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].escapeID(id)).remove();\n}; //Inject CSS to document head\n//id = id of element\n//css = custom css\n\n\nBdApi.linkJS = function (id, url) {\n  $(\"head\").append($(\"<script>\", {\n    id: _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].escapeID(id),\n    src: url,\n    type: \"text/javascript\"\n  }));\n}; //Clear css/remove any element\n//id = id of element\n\n\nBdApi.unlinkJS = function (id) {\n  $(\"#\" + _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].escapeID(id)).remove();\n}; //Get another plugin\n//name = name of plugin\n\n\nBdApi.getPlugin = function (name) {\n  if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"].hasOwnProperty(name)) {\n    return _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][name].plugin;\n  }\n\n  return null;\n}; //Get BetterDiscord Core\n\n\nBdApi.getCore = function () {\n  return _core__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n};\n/**\r\n * Shows a generic but very customizable modal.\r\n * @param {string} title - title of the modal\r\n * @param {string} content - a string of text to display in the modal\r\n */\n\n\nBdApi.alert = function (title, content) {\n  const ModalStack = BdApi.findModuleByProps(\"push\", \"update\", \"pop\", \"popWithKey\");\n  const AlertModal = BdApi.findModuleByPrototypes(\"handleCancel\", \"handleSubmit\", \"handleMinorConfirm\");\n  if (!ModalStack || !AlertModal) return _core__WEBPACK_IMPORTED_MODULE_1__[\"default\"].alert(title, content);\n  ModalStack.push(function (props) {\n    return BdApi.React.createElement(AlertModal, Object.assign({\n      title: title,\n      body: content\n    }, props));\n  });\n};\n/**\r\n * Shows a generic but very customizable confirmation modal with optional confirm and cancel callbacks.\r\n * @param {string} title - title of the modal\r\n * @param {(string|ReactElement|Array<string|ReactElement>)} children - a single or mixed array of react elements and strings. Everything is wrapped in Discord's `TextElement` component so strings will show and render properly.\r\n * @param {object} [options] - options to modify the modal\r\n * @param {boolean} [options.danger=false] - whether the main button should be red or not\r\n * @param {string} [options.confirmText=Okay] - text for the confirmation/submit button\r\n * @param {string} [options.cancelText=Cancel] - text for the cancel button\r\n * @param {callable} [options.onConfirm=NOOP] - callback to occur when clicking the submit button\r\n * @param {callable} [options.onCancel=NOOP] - callback to occur when clicking the cancel button\r\n */\n\n\nBdApi.showConfirmationModal = function (title, content, options = {}) {\n  const ModalStack = BdApi.findModuleByProps(\"push\", \"update\", \"pop\", \"popWithKey\");\n  const TextElement = BdApi.findModuleByProps(\"Sizes\", \"Weights\");\n  const ConfirmationModal = BdApi.findModule(m => m.defaultProps && m.key && m.key() == \"confirm-modal\");\n  if (!ModalStack || !ConfirmationModal || !TextElement) return _core__WEBPACK_IMPORTED_MODULE_1__[\"default\"].alert(title, content);\n  const {\n    onConfirm,\n    onCancel,\n    confirmText,\n    cancelText,\n    danger = false\n  } = options;\n  if (typeof content == \"string\") content = TextElement({\n    color: TextElement.Colors.PRIMARY,\n    children: [content]\n  });else if (Array.isArray(content)) content = TextElement({\n    color: TextElement.Colors.PRIMARY,\n    children: content\n  });\n  content = [content];\n\n  const emptyFunction = () => {};\n\n  ModalStack.push(function (props) {\n    return BdApi.React.createElement(ConfirmationModal, Object.assign({\n      header: title,\n      children: content,\n      red: danger,\n      confirmText: confirmText ? confirmText : \"Okay\",\n      cancelText: cancelText ? cancelText : \"Cancel\",\n      onConfirm: onConfirm ? onConfirm : emptyFunction,\n      onCancel: onCancel ? onCancel : emptyFunction\n    }, props));\n  });\n}; //Show toast alert\n\n\nBdApi.showToast = function (content, options = {}) {\n  _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].showToast(content, options);\n}; // Finds module\n\n\nBdApi.findModule = function (filter) {\n  return _v2__WEBPACK_IMPORTED_MODULE_3__[\"default\"].WebpackModules.find(filter);\n}; // Finds module\n\n\nBdApi.findAllModules = function (filter) {\n  return _v2__WEBPACK_IMPORTED_MODULE_3__[\"default\"].WebpackModules.findAll(filter);\n}; // Finds module\n\n\nBdApi.findModuleByProps = function (...props) {\n  return _v2__WEBPACK_IMPORTED_MODULE_3__[\"default\"].WebpackModules.findByUniqueProperties(props);\n};\n\nBdApi.findModuleByPrototypes = function (...protos) {\n  return _v2__WEBPACK_IMPORTED_MODULE_3__[\"default\"].WebpackModules.findByPrototypes(protos);\n};\n\nBdApi.findModuleByDisplayName = function (name) {\n  return _v2__WEBPACK_IMPORTED_MODULE_3__[\"default\"].WebpackModules.findByDisplayName(name);\n}; // Gets react instance\n\n\nBdApi.getInternalInstance = function (node) {\n  if (!(node instanceof window.jQuery) && !(node instanceof Element)) return undefined;\n  if (node instanceof jQuery) node = node[0];\n  return _v2__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getInternalInstance(node);\n}; // Gets data\n\n\nBdApi.loadData = function (pluginName, key) {\n  return _dataStore__WEBPACK_IMPORTED_MODULE_4__[\"default\"].getPluginData(pluginName, key);\n};\n\nBdApi.getData = BdApi.loadData; // Sets data\n\nBdApi.saveData = function (pluginName, key, data) {\n  return _dataStore__WEBPACK_IMPORTED_MODULE_4__[\"default\"].setPluginData(pluginName, key, data);\n};\n\nBdApi.setData = BdApi.saveData; // Deletes data\n\nBdApi.deleteData = function (pluginName, key) {\n  return _dataStore__WEBPACK_IMPORTED_MODULE_4__[\"default\"].deletePluginData(pluginName, key);\n}; // Patches other functions\n\n\nBdApi.monkeyPatch = function (what, methodName, options) {\n  return _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].monkeyPatch(what, methodName, options);\n}; // Event when element is removed\n\n\nBdApi.onRemoved = function (node, callback) {\n  return _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].onRemoved(node, callback);\n}; // Wraps function in try..catch\n\n\nBdApi.suppressErrors = function (method, message) {\n  return _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].suppressErrors(method, message);\n}; // Tests for valid JSON\n\n\nBdApi.testJSON = function (data) {\n  return _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].testJSON(data);\n};\n\nBdApi.isPluginEnabled = function (name) {\n  return !!_0globals__WEBPACK_IMPORTED_MODULE_0__[\"pluginCookie\"][name];\n};\n\nBdApi.isThemeEnabled = function (name) {\n  return !!_0globals__WEBPACK_IMPORTED_MODULE_0__[\"themeCookie\"][name];\n};\n\nBdApi.isSettingEnabled = function (id) {\n  return !!_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][id];\n}; // Gets data\n\n\nBdApi.getBDData = function (key) {\n  return _dataStore__WEBPACK_IMPORTED_MODULE_4__[\"default\"].getBDData(key);\n}; // Sets data\n\n\nBdApi.setBDData = function (key, data) {\n  return _dataStore__WEBPACK_IMPORTED_MODULE_4__[\"default\"].setBDData(key, data);\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (BdApi);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 12996 characters]\n//# sourceURL=webpack-internal:///./src/bdApi.js\n");

/***/ }),

/***/ "./src/bdEvents.js":
/*!*************************!*\
  !*** ./src/bdEvents.js ***!
  \*************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* BDEvents */\nconst EventEmitter = __webpack_require__(/*! events */ \"events\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class BDEvents extends EventEmitter {\n  dispatch(eventName, ...args) {\n    this.emit(eventName, ...args);\n  }\n\n  off(eventName, eventAction) {\n    this.removeListener(eventName, eventAction);\n  }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvYmRFdmVudHMuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2JkRXZlbnRzLmpzPzE1MjgiXSwic291cmNlc0NvbnRlbnQiOlsiLyogQkRFdmVudHMgKi9cbmNvbnN0IEV2ZW50RW1pdHRlciA9IHJlcXVpcmUoXCJldmVudHNcIik7XG5cbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBCREV2ZW50cyBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIGRpc3BhdGNoKGV2ZW50TmFtZSwgLi4uYXJncykge1xuICAgIHRoaXMuZW1pdChldmVudE5hbWUsIC4uLmFyZ3MpO1xuICB9XG5cbiAgb2ZmKGV2ZW50TmFtZSwgZXZlbnRBY3Rpb24pIHtcbiAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKGV2ZW50TmFtZSwgZXZlbnRBY3Rpb24pO1xuICB9XG5cbn0oKTsiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/bdEvents.js\n");

/***/ }),

/***/ "./src/classNormalizer.js":
/*!********************************!*\
  !*** ./src/classNormalizer.js ***!
  \********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _webpackModules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./webpackModules */ \"./src/webpackModules.js\");\n\nconst normalizedPrefix = \"da\";\nconst randClass = new RegExp(`^(?!${normalizedPrefix}-)((?:[A-Za-z]|[0-9]|-)+)-(?:[A-Za-z]|[0-9]|-|_){6}$`);\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class ClassNormalizer {\n  stop() {\n    if (!this.hasPatched) return;\n    this.unpatchClassModules(_webpackModules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].findAll(this.moduleFilter.bind(this)));\n    this.revertElement(document.querySelector(\"#app-mount\"));\n    this.hasPatched = false;\n  }\n\n  start() {\n    if (this.hasPatched) return;\n    this.patchClassModules(_webpackModules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].findAll(this.moduleFilter.bind(this)));\n    this.normalizeElement(document.querySelector(\"#app-mount\"));\n    this.hasPatched = true;\n    this.patchDOMMethods();\n  }\n\n  patchClassModules(modules) {\n    for (const module of modules) {\n      this.patchClassModule(normalizedPrefix, module);\n    }\n  }\n\n  unpatchClassModules(modules) {\n    for (const module of modules) {\n      this.unpatchClassModule(normalizedPrefix, module);\n    }\n  }\n\n  shouldIgnore(value) {\n    if (!isNaN(value)) return true;\n    if (value.endsWith(\"px\") || value.endsWith(\"ch\") || value.endsWith(\"em\") || value.endsWith(\"ms\")) return true;\n    if (value.startsWith(\"layerContainer-\")) return true;\n    if (value.startsWith(\"#\") && (value.length == 7 || value.length == 4)) return true;\n    if (value.includes(\"calc(\") || value.includes(\"rgba\")) return true;\n    return false;\n  }\n\n  moduleFilter(module) {\n    if (typeof module !== \"object\" || Array.isArray(module)) return false;\n    if (module.__esModule) return false;\n    if (!Object.keys(module).length) return false;\n\n    for (const baseClassName in module) {\n      const value = module[baseClassName];\n      if (typeof value !== \"string\") return false;\n      if (this.shouldIgnore(value)) continue;\n      if (value.split(\"-\").length === 1) return false;\n      if (!randClass.test(value.split(\" \")[0])) return false;\n    }\n\n    return true;\n  }\n\n  patchClassModule(componentName, classNames) {\n    for (const baseClassName in classNames) {\n      const value = classNames[baseClassName];\n      if (this.shouldIgnore(value)) continue;\n      const classList = value.split(\" \");\n\n      for (const normalClass of classList) {\n        const match = normalClass.match(randClass);\n        if (!match || !match.length || match.length < 2) continue; // Shouldn't ever happen since they passed the moduleFilter, but you never know\n\n        const camelCase = match[1].split(\"-\").map((s, i) => i ? s[0].toUpperCase() + s.slice(1) : s).join(\"\");\n        classNames[baseClassName] += ` ${componentName}-${camelCase}`;\n      }\n    }\n  }\n\n  unpatchClassModule(componentName, classNames) {\n    for (const baseClassName in classNames) {\n      const value = classNames[baseClassName];\n      if (this.shouldIgnore(value)) continue;\n      let newString = \"\";\n      const classList = value.split(\" \");\n\n      for (const normalClass of classList) {\n        if (normalClass.startsWith(`${componentName}-`)) continue;\n        newString += ` ${normalClass}`;\n      }\n\n      classNames[baseClassName] = newString.trim();\n    }\n  }\n\n  normalizeElement(element) {\n    if (!(element instanceof Element)) return;\n    const classes = element.classList;\n\n    for (let c = 0, clen = classes.length; c < clen; c++) {\n      if (!randClass.test(classes[c])) continue;\n      const match = classes[c].match(randClass)[1];\n      const newClass = match.split(\"-\").map((s, i) => i ? s[0].toUpperCase() + s.slice(1) : s).join(\"\");\n      element.classList.add(`${normalizedPrefix}-${newClass}`);\n    }\n\n    for (const child of element.children) this.normalizeElement(child);\n  }\n\n  revertElement(element) {\n    if (!(element instanceof Element)) return;\n    if (element.children && element.children.length) this.revertElement(element.children[0]);\n    if (element.nextElementSibling) this.revertElement(element.nextElementSibling);\n    const classes = element.classList;\n    const toRemove = [];\n\n    for (let c = 0; c < classes.length; c++) {\n      if (classes[c].startsWith(`${normalizedPrefix}-`)) toRemove.push(classes[c]);\n    }\n\n    element.classList.remove(...toRemove);\n  }\n\n  patchDOMMethods() {\n    const contains = DOMTokenList.prototype.contains;\n\n    DOMTokenList.prototype.contains = function (token) {\n      const tokens = token.split(\" \");\n      return tokens.every(t => contains.call(this, t));\n    };\n  }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 7100 characters]\n//# sourceURL=webpack-internal:///./src/classNormalizer.js\n");

/***/ }),

/***/ "./src/coloredText.js":
/*!****************************!*\
  !*** ./src/coloredText.js ***!
  \****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./0globals */ \"./src/0globals.js\");\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./v2 */ \"./src/v2.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ \"./src/utils.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class ColoredText {\n  injectColoredText() {\n    if (this.cancelColoredText) return;\n    if (!_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].MessageComponent) return;\n    this.cancelColoredText = _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].monkeyPatch(_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].MessageComponent, \"default\", {\n      before: data => {\n        const props = data.methodArguments[0];\n        if (!props || !props.childrenMessageContent) return;\n        const messageContent = props.childrenMessageContent;\n        if (!messageContent.type || !messageContent.type.type || messageContent.type.type.displayName != \"MessageContent\") return;\n        const originalType = messageContent.type.type;\n        if (originalType.__originalMethod) return; // Don't patch again\n\n        messageContent.type.type = function (props) {\n          const returnValue = originalType(props);\n          const roleColor = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-7\"] ? props.message.colorString || \"\" : \"\";\n          returnValue.props.style = {\n            color: roleColor\n          };\n          return returnValue;\n        };\n\n        messageContent.type.type.__originalMethod = originalType;\n        Object.assign(messageContent.type.type, originalType);\n      }\n    });\n  }\n\n  removeColoredText() {\n    document.querySelectorAll(\".markup-2BOw-j\").forEach(elem => {\n      elem.style.setProperty(\"color\", \"\");\n    });\n  }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29sb3JlZFRleHQuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2NvbG9yZWRUZXh0LmpzPzVhODYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2V0dGluZ3NDb29raWUgfSBmcm9tIFwiLi8wZ2xvYmFsc1wiO1xuaW1wb3J0IEJEVjIgZnJvbSBcIi4vdjJcIjtcbmltcG9ydCBVdGlscyBmcm9tIFwiLi91dGlsc1wiO1xuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIENvbG9yZWRUZXh0IHtcbiAgaW5qZWN0Q29sb3JlZFRleHQoKSB7XG4gICAgaWYgKHRoaXMuY2FuY2VsQ29sb3JlZFRleHQpIHJldHVybjtcbiAgICBpZiAoIUJEVjIuTWVzc2FnZUNvbXBvbmVudCkgcmV0dXJuO1xuICAgIHRoaXMuY2FuY2VsQ29sb3JlZFRleHQgPSBVdGlscy5tb25rZXlQYXRjaChCRFYyLk1lc3NhZ2VDb21wb25lbnQsIFwiZGVmYXVsdFwiLCB7XG4gICAgICBiZWZvcmU6IGRhdGEgPT4ge1xuICAgICAgICBjb25zdCBwcm9wcyA9IGRhdGEubWV0aG9kQXJndW1lbnRzWzBdO1xuICAgICAgICBpZiAoIXByb3BzIHx8ICFwcm9wcy5jaGlsZHJlbk1lc3NhZ2VDb250ZW50KSByZXR1cm47XG4gICAgICAgIGNvbnN0IG1lc3NhZ2VDb250ZW50ID0gcHJvcHMuY2hpbGRyZW5NZXNzYWdlQ29udGVudDtcbiAgICAgICAgaWYgKCFtZXNzYWdlQ29udGVudC50eXBlIHx8ICFtZXNzYWdlQ29udGVudC50eXBlLnR5cGUgfHwgbWVzc2FnZUNvbnRlbnQudHlwZS50eXBlLmRpc3BsYXlOYW1lICE9IFwiTWVzc2FnZUNvbnRlbnRcIikgcmV0dXJuO1xuICAgICAgICBjb25zdCBvcmlnaW5hbFR5cGUgPSBtZXNzYWdlQ29udGVudC50eXBlLnR5cGU7XG4gICAgICAgIGlmIChvcmlnaW5hbFR5cGUuX19vcmlnaW5hbE1ldGhvZCkgcmV0dXJuOyAvLyBEb24ndCBwYXRjaCBhZ2FpblxuXG4gICAgICAgIG1lc3NhZ2VDb250ZW50LnR5cGUudHlwZSA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgICAgIGNvbnN0IHJldHVyblZhbHVlID0gb3JpZ2luYWxUeXBlKHByb3BzKTtcbiAgICAgICAgICBjb25zdCByb2xlQ29sb3IgPSBzZXR0aW5nc0Nvb2tpZVtcImJkYS1ncy03XCJdID8gcHJvcHMubWVzc2FnZS5jb2xvclN0cmluZyB8fCBcIlwiIDogXCJcIjtcbiAgICAgICAgICByZXR1cm5WYWx1ZS5wcm9wcy5zdHlsZSA9IHtcbiAgICAgICAgICAgIGNvbG9yOiByb2xlQ29sb3JcbiAgICAgICAgICB9O1xuICAgICAgICAgIHJldHVybiByZXR1cm5WYWx1ZTtcbiAgICAgICAgfTtcblxuICAgICAgICBtZXNzYWdlQ29udGVudC50eXBlLnR5cGUuX19vcmlnaW5hbE1ldGhvZCA9IG9yaWdpbmFsVHlwZTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihtZXNzYWdlQ29udGVudC50eXBlLnR5cGUsIG9yaWdpbmFsVHlwZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZW1vdmVDb2xvcmVkVGV4dCgpIHtcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLm1hcmt1cC0yQk93LWpcIikuZm9yRWFjaChlbGVtID0+IHtcbiAgICAgIGVsZW0uc3R5bGUuc2V0UHJvcGVydHkoXCJjb2xvclwiLCBcIlwiKTtcbiAgICB9KTtcbiAgfVxuXG59KCk7Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/coloredText.js\n");

/***/ }),

/***/ "./src/contentManager.js":
/*!*******************************!*\
  !*** ./src/contentManager.js ***!
  \*******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./0globals */ \"./src/0globals.js\");\n/* harmony import */ var _pluginModule__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pluginModule */ \"./src/pluginModule.js\");\n/* harmony import */ var _themeModule__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./themeModule */ \"./src/themeModule.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ \"./src/utils.js\");\n\n\n\n\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\nconst fs = __webpack_require__(/*! fs */ \"fs\");\n\nconst Module = __webpack_require__(/*! module */ \"module\").Module;\n\nModule.globalPaths.push(path.resolve(__webpack_require__(/*! electron */ \"electron\").remote.app.getAppPath(), \"node_modules\"));\n\nclass MetaError extends Error {\n  constructor(message) {\n    super(message);\n    this.name = \"MetaError\";\n  }\n\n}\n\nconst originalJSRequire = Module._extensions[\".js\"];\nconst originalCSSRequire = Module._extensions[\".css\"] ? Module._extensions[\".css\"] : () => {\n  return null;\n};\nconst splitRegex = /[^\\S\\r\\n]*?(?:\\r\\n|\\n)[^\\S\\r\\n]*?\\*[^\\S\\r\\n]?/;\nconst escapedAtRegex = /^\\\\@/;\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class ContentManager {\n  constructor() {\n    this.timeCache = {};\n    this.watchers = {};\n    Module._extensions[\".js\"] = this.getContentRequire(\"plugin\");\n    Module._extensions[\".css\"] = this.getContentRequire(\"theme\");\n  }\n\n  get pluginsFolder() {\n    return this._pluginsFolder || (this._pluginsFolder = fs.realpathSync(path.resolve(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"].dataPath + \"plugins/\")));\n  }\n\n  get themesFolder() {\n    return this._themesFolder || (this._themesFolder = fs.realpathSync(path.resolve(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"].dataPath + \"themes/\")));\n  }\n\n  watchContent(contentType) {\n    if (this.watchers[contentType]) return;\n    const isPlugin = contentType === \"plugin\";\n    const baseFolder = isPlugin ? this.pluginsFolder : this.themesFolder;\n    const fileEnding = isPlugin ? \".plugin.js\" : \".theme.css\";\n    this.watchers[contentType] = fs.watch(baseFolder, {\n      persistent: false\n    }, async (eventType, filename) => {\n      if (!eventType || !filename || !filename.endsWith(fileEnding)) return;\n      await new Promise(r => setTimeout(r, 50));\n\n      try {\n        fs.statSync(path.resolve(baseFolder, filename));\n      } catch (err) {\n        if (err.code !== \"ENOENT\") return;\n        delete this.timeCache[filename];\n        if (isPlugin) return _pluginModule__WEBPACK_IMPORTED_MODULE_1__[\"default\"].unloadPlugin(filename);\n        return _themeModule__WEBPACK_IMPORTED_MODULE_2__[\"default\"].unloadTheme(filename);\n      }\n\n      if (!fs.statSync(path.resolve(baseFolder, filename)).isFile()) return;\n      const stats = fs.statSync(path.resolve(baseFolder, filename));\n      if (!stats || !stats.mtime || !stats.mtime.getTime()) return;\n      if (typeof stats.mtime.getTime() !== \"number\") return;\n      if (this.timeCache[filename] == stats.mtime.getTime()) return;\n      this.timeCache[filename] = stats.mtime.getTime();\n\n      if (eventType == \"rename\") {\n        if (isPlugin) _pluginModule__WEBPACK_IMPORTED_MODULE_1__[\"default\"].loadPlugin(filename);else _themeModule__WEBPACK_IMPORTED_MODULE_2__[\"default\"].loadTheme(filename);\n      }\n\n      if (eventType == \"change\") {\n        if (isPlugin) _pluginModule__WEBPACK_IMPORTED_MODULE_1__[\"default\"].reloadPlugin(filename);else _themeModule__WEBPACK_IMPORTED_MODULE_2__[\"default\"].reloadTheme(filename);\n      }\n    });\n  }\n\n  unwatchContent(contentType) {\n    if (!this.watchers[contentType]) return;\n    this.watchers[contentType].close();\n    delete this.watchers[contentType];\n  }\n\n  extractMeta(content) {\n    const firstLine = content.split(\"\\n\")[0];\n    const hasOldMeta = firstLine.includes(\"//META\");\n    if (hasOldMeta) return this.parseOldMeta(content);\n    const hasNewMeta = firstLine.includes(\"/**\");\n    if (hasNewMeta) return this.parseNewMeta(content);\n    throw new MetaError(\"META was not found.\");\n  }\n\n  parseOldMeta(content) {\n    const meta = content.split(\"\\n\")[0];\n    const rawMeta = meta.substring(meta.lastIndexOf(\"//META\") + 6, meta.lastIndexOf(\"*//\"));\n    if (meta.indexOf(\"META\") < 0) throw new MetaError(\"META was not found.\");\n    const parsed = _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].testJSON(rawMeta);\n    if (!parsed) throw new MetaError(\"META could not be parsed.\");\n    if (!parsed.name) throw new MetaError(\"META missing name data.\");\n    parsed.format = \"json\";\n    return parsed;\n  }\n\n  parseNewMeta(content) {\n    const block = content.split(\"/**\", 2)[1].split(\"*/\", 1)[0];\n    const out = {};\n    let field = \"\";\n    let accum = \"\";\n\n    for (const line of block.split(splitRegex)) {\n      if (line.length === 0) continue;\n\n      if (line.charAt(0) === \"@\" && line.charAt(1) !== \" \") {\n        out[field] = accum;\n        const l = line.indexOf(\" \");\n        field = line.substr(1, l - 1);\n        accum = line.substr(l + 1);\n      } else {\n        accum += \" \" + line.replace(\"\\\\n\", \"\\n\").replace(escapedAtRegex, \"@\");\n      }\n    }\n\n    out[field] = accum.trim();\n    delete out[\"\"];\n    out.format = \"jsdoc\";\n    return out;\n  }\n\n  getContentRequire(type) {\n    const isPlugin = type === \"plugin\";\n    const self = this;\n    const originalRequire = isPlugin ? originalJSRequire : originalCSSRequire;\n    return function (module, filename) {\n      const baseFolder = isPlugin ? self.pluginsFolder : self.themesFolder;\n      const possiblePath = path.resolve(baseFolder, path.basename(filename));\n      if (!fs.existsSync(possiblePath) || filename !== fs.realpathSync(possiblePath)) return Reflect.apply(originalRequire, this, arguments);\n      let content = fs.readFileSync(filename, \"utf8\");\n      content = _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].stripBOM(content);\n      const meta = self.extractMeta(content);\n      meta.filename = path.basename(filename);\n\n      if (!isPlugin) {\n        meta.css = content;\n        if (meta.format == \"json\") meta.css = meta.css.split(\"\\n\").slice(1).join(\"\\n\");\n        content = `module.exports = ${JSON.stringify(meta)};`;\n      }\n\n      if (isPlugin) {\n        module._compile(content, module.filename);\n\n        const didExport = !_utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].isEmpty(module.exports);\n\n        if (didExport) {\n          meta.type = module.exports;\n          module.exports = meta;\n          content = \"\";\n        } else {\n          content += `\\nmodule.exports = ${JSON.stringify(meta)};\\nmodule.exports.type = ${meta.exports || meta.name};`;\n        }\n      }\n\n      module._compile(content, filename);\n    };\n  }\n\n  makePlaceholderPlugin(data) {\n    return {\n      plugin: {\n        start: () => {},\n        getName: () => {\n          return data.name || data.filename;\n        },\n        getAuthor: () => {\n          return \"???\";\n        },\n        getDescription: () => {\n          return data.message ? data.message : \"This plugin was unable to be loaded. Check the author's page for updates.\";\n        },\n        getVersion: () => {\n          return \"???\";\n        }\n      },\n      name: data.name || data.filename,\n      filename: data.filename,\n      source: data.source ? data.source : \"\",\n      website: data.website ? data.website : \"\"\n    };\n  }\n\n  loadContent(filename, type) {\n    if (typeof filename === \"undefined\" || typeof type === \"undefined\") return;\n    const isPlugin = type === \"plugin\";\n    const baseFolder = isPlugin ? this.pluginsFolder : this.themesFolder;\n\n    try {\n      require(path.resolve(baseFolder, filename));\n    } catch (error) {\n      return {\n        name: filename,\n        file: filename,\n        message: \"Could not be compiled.\",\n        error: {\n          message: error.message,\n          stack: error.stack\n        }\n      };\n    }\n\n    const content = require(path.resolve(baseFolder, filename));\n\n    content.id = _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].escapeID(content.name);\n\n    if (isPlugin) {\n      if (!content.type) return;\n\n      try {\n        content.plugin = new content.type();\n        delete _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][content.plugin.getName()];\n        _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][content.plugin.getName()] = content;\n      } catch (error) {\n        return {\n          name: filename,\n          file: filename,\n          message: \"Could not be constructed.\",\n          error: {\n            message: error.message,\n            stack: error.stack\n          }\n        };\n      }\n    } else {\n      delete _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"][content.name];\n      _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"][content.name] = content;\n    }\n  }\n\n  unloadContent(filename, type) {\n    if (typeof filename === \"undefined\" || typeof type === \"undefined\") return;\n    const isPlugin = type === \"plugin\";\n    const baseFolder = isPlugin ? this.pluginsFolder : this.themesFolder;\n\n    try {\n      delete __webpack_require__.c[/*require.resolve*/(__webpack_require__(\"./src sync recursive\").resolve(path.resolve(baseFolder, filename)))];\n    } catch (err) {\n      return {\n        name: filename,\n        file: filename,\n        message: \"Could not be unloaded.\",\n        error: {\n          message: err.message,\n          stack: err.stack\n        }\n      };\n    }\n  }\n\n  isLoaded(filename, type) {\n    const isPlugin = type === \"plugin\";\n    const baseFolder = isPlugin ? this.pluginsFolder : this.themesFolder;\n\n    try {\n      __webpack_require__.c[/*require.resolve*/(__webpack_require__(\"./src sync recursive\").resolve(path.resolve(baseFolder, filename)))];\n    } catch (err) {\n      return false;\n    }\n\n    return true;\n  }\n\n  reloadContent(filename, type) {\n    const cantUnload = this.unloadContent(filename, type);\n    if (cantUnload) return cantUnload;\n    return this.loadContent(filename, type);\n  }\n\n  loadNewContent(type) {\n    const isPlugin = type === \"plugin\";\n    const fileEnding = isPlugin ? \".plugin.js\" : \".theme.css\";\n    const basedir = isPlugin ? this.pluginsFolder : this.themesFolder;\n    const files = fs.readdirSync(basedir);\n    const contentList = Object.values(isPlugin ? _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"] : _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"]);\n    const removed = contentList.filter(t => !files.includes(t.filename)).map(c => isPlugin ? c.plugin.getName() : c.name);\n    const added = files.filter(f => !contentList.find(t => t.filename == f) && f.endsWith(fileEnding) && fs.statSync(path.resolve(basedir, f)).isFile());\n    return {\n      added,\n      removed\n    };\n  }\n\n  loadAllContent(type) {\n    const isPlugin = type === \"plugin\";\n    const fileEnding = isPlugin ? \".plugin.js\" : \".theme.css\";\n    const basedir = isPlugin ? this.pluginsFolder : this.themesFolder;\n    const errors = [];\n    const files = fs.readdirSync(basedir);\n\n    for (const filename of files) {\n      if (!fs.statSync(path.resolve(basedir, filename)).isFile() || !filename.endsWith(fileEnding)) continue;\n      const error = this.loadContent(filename, type);\n      if (error) errors.push(error);\n    }\n\n    return errors;\n  }\n\n  loadPlugins() {\n    return this.loadAllContent(\"plugin\");\n  }\n\n  loadThemes() {\n    return this.loadAllContent(\"theme\");\n  }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 16376 characters]\n//# sourceURL=webpack-internal:///./src/contentManager.js\n");

/***/ }),

/***/ "./src/core.js":
/*!*********************!*\
  !*** ./src/core.js ***!
  \*********************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./0globals */ \"./src/0globals.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"./src/utils.js\");\n/* harmony import */ var _emoteModule__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emoteModule */ \"./src/emoteModule.js\");\n/* harmony import */ var _quickEmoteMenu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./quickEmoteMenu */ \"./src/quickEmoteMenu.js\");\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./v2 */ \"./src/v2.js\");\n/* harmony import */ var _settingsPanel__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./settingsPanel */ \"./src/settingsPanel.js\");\n/* harmony import */ var _pluginModule__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./pluginModule */ \"./src/pluginModule.js\");\n/* harmony import */ var _themeModule__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./themeModule */ \"./src/themeModule.js\");\n/* harmony import */ var _dataStore__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./dataStore */ \"./src/dataStore.js\");\n/* harmony import */ var _webpackModules__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./webpackModules */ \"./src/webpackModules.js\");\n/* harmony import */ var _react_bdLogo__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./react/bdLogo */ \"./src/react/bdLogo.js\");\n\n\n\n // import publicServersModule from \"./publicServers\";\n// import voiceMode from \"./voiceMode\";\n// import dMode from \"./devMode\";\n\n\n\n\n\n\n\n\n\nfunction Core(config) {\n  Object.assign(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"], config);\n}\n\nCore.prototype.init = async function () {\n  if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"].version < _0globals__WEBPACK_IMPORTED_MODULE_0__[\"minSupportedVersion\"]) {\n    _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].alert(\"Not Supported\", \"BetterDiscord v\" + _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"].version + \" (your version)\" + \" is not supported by the latest js (\" + _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bbdVersion\"] + \").<br><br> Please download the latest version from <a href='https://github.com/rauenzi/BetterDiscordApp/releases/latest' target='_blank'>GitHub</a>\");\n    return;\n  }\n\n  if (window.ED) {\n    _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].alert(\"Not Supported\", \"BandagedBD does not work with EnhancedDiscord. Please uninstall one of them.\");\n    return;\n  }\n\n  if (window.WebSocket && window.WebSocket.name && window.WebSocket.name.includes(\"Patched\")) {\n    _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].alert(\"Not Supported\", \"BandagedBD does not work with Powercord. Please uninstall one of them.\");\n    return;\n  }\n\n  const latestLocalVersion = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"].updater ? _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"].updater.LatestVersion : _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"].latestVersion;\n\n  if (latestLocalVersion > _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"].version) {\n    _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].alert(\"Update Available\", `\n            An update for BandagedBD is available (${latestLocalVersion})! Please Reinstall!<br /><br />\n            <a href='https://github.com/rauenzi/BetterDiscordApp/releases/latest' target='_blank'>Download Installer</a>\n        `);\n  }\n\n  _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing Settings\");\n  this.initSettings(); // emoteModule = new EmoteModule();\n  // quickEmoteMenu = new QuickEmoteMenu();\n\n  _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing EmoteModule\");\n  window.emotePromise = _emoteModule__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init().then(() => {\n    _emoteModule__WEBPACK_IMPORTED_MODULE_2__[\"default\"].initialized = true;\n    _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing QuickEmoteMenu\");\n    _quickEmoteMenu__WEBPACK_IMPORTED_MODULE_3__[\"default\"].init();\n  }); // publicServersModule = new V2_PublicServers();\n  // voiceMode = new VoiceMode();\n  // dMode = new devMode();\n\n  this.injectExternals();\n  await this.checkForGuilds();\n  _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].initialize();\n  _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Updating Settings\"); // settingsPanel = new V2_SettingsPanel();\n\n  _settingsPanel__WEBPACK_IMPORTED_MODULE_5__[\"default\"].initializeSettings();\n  _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Loading Plugins\"); // pluginModule = new PluginModule();\n\n  _pluginModule__WEBPACK_IMPORTED_MODULE_6__[\"default\"].loadPlugins();\n  _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Loading Themes\"); // themeModule = new ThemeModule();\n\n  _themeModule__WEBPACK_IMPORTED_MODULE_7__[\"default\"].loadThemes();\n  $(\"#customcss\").detach().appendTo(document.head);\n  window.addEventListener(\"beforeunload\", function () {\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-dc-0\"]) document.querySelector(\".btn.btn-disconnect\").click();\n  });\n  _emoteModule__WEBPACK_IMPORTED_MODULE_2__[\"default\"].autoCapitalize();\n  _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Removing Loading Icon\");\n  if (document.getElementsByClassName(\"bd-loaderv2\").length) document.getElementsByClassName(\"bd-loaderv2\")[0].remove();\n  _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing Main Observer\");\n  this.initObserver(); // Show loading errors\n\n  if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-1\"]) {\n    _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Collecting Startup Errors\");\n    _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].showContentErrors({\n      plugins: _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdpluginErrors\"],\n      themes: _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemeErrors\"]\n    });\n  }\n\n  const previousVersion = _dataStore__WEBPACK_IMPORTED_MODULE_8__[\"default\"].getBDData(\"version\");\n\n  if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bbdVersion\"] > previousVersion) {\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bbdChangelog\"]) this.showChangelogModal(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bbdChangelog\"]);\n    _dataStore__WEBPACK_IMPORTED_MODULE_8__[\"default\"].setBDData(\"version\", _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bbdVersion\"]);\n  }\n\n  _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].suppressErrors(this.patchSocial.bind(this), \"BD Social Patch\")();\n  _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].suppressErrors(this.patchGuildPills.bind(this), \"BD Guild Pills Patch\")();\n  _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].suppressErrors(this.patchGuildListItems.bind(this), \"BD Guild List Items Patch\")();\n  _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].suppressErrors(this.patchGuildSeparator.bind(this), \"BD Guild Separator Patch\")();\n};\n\nCore.prototype.checkForGuilds = function () {\n  let timesChecked = 0;\n  return new Promise(resolve => {\n    const checkForGuilds = function () {\n      const wrapper = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].guildClasses.wrapper.split(\" \")[0];\n      if (document.querySelectorAll(`.${wrapper}`).length > 0) timesChecked++;\n      const guild = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].guildClasses.listItem.split(\" \")[0];\n      const blob = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].guildClasses.blobContainer.split(\" \")[0];\n      if (document.querySelectorAll(`.${wrapper} .${guild} .${blob}`).length > 0) return resolve(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"].deferLoaded = true);else if (timesChecked >= 50) return resolve(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"].deferLoaded = true);\n      setTimeout(checkForGuilds, 100);\n    };\n\n    $(document).ready(function () {\n      setTimeout(checkForGuilds, 100);\n    });\n  });\n};\n\nCore.prototype.injectExternals = async function () {\n  await _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].injectJs(\"https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.9/ace.js\");\n  if (__webpack_require__(\"./src sync recursive\").original) window.require = __webpack_require__(\"./src sync recursive\").original;\n};\n\nCore.prototype.initSettings = function () {\n  _dataStore__WEBPACK_IMPORTED_MODULE_8__[\"default\"].initialize();\n\n  if (!_dataStore__WEBPACK_IMPORTED_MODULE_8__[\"default\"].getSettingGroup(\"settings\")) {\n    Object.assign(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"], _0globals__WEBPACK_IMPORTED_MODULE_0__[\"defaultCookie\"]);\n    _settingsPanel__WEBPACK_IMPORTED_MODULE_5__[\"default\"].saveSettings();\n  } else {\n    _settingsPanel__WEBPACK_IMPORTED_MODULE_5__[\"default\"].loadSettings();\n    $(\"<style id=\\\"customcss\\\">\").text(atob(_dataStore__WEBPACK_IMPORTED_MODULE_8__[\"default\"].getBDData(\"bdcustomcss\"))).appendTo(document.head);\n\n    for (const setting in _0globals__WEBPACK_IMPORTED_MODULE_0__[\"defaultCookie\"]) {\n      if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][setting] == undefined) {\n        _0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][setting] = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"defaultCookie\"][setting];\n        _settingsPanel__WEBPACK_IMPORTED_MODULE_5__[\"default\"].saveSettings();\n      }\n    }\n  }\n};\n\nCore.prototype.initObserver = function () {\n  const mainObserver = new MutationObserver(mutations => {\n    for (let i = 0, mlen = mutations.length; i < mlen; i++) {\n      const mutation = mutations[i];\n      if (typeof _pluginModule__WEBPACK_IMPORTED_MODULE_6__[\"default\"] !== \"undefined\") _pluginModule__WEBPACK_IMPORTED_MODULE_6__[\"default\"].rawObserver(mutation); // if there was nothing added, skip\n\n      if (!mutation.addedNodes.length || !(mutation.addedNodes[0] instanceof Element)) continue;\n      const node = mutation.addedNodes[0];\n\n      if (node.classList.contains(\"layer-3QrUeG\")) {\n        if (node.getElementsByClassName(\"guild-settings-base-section\").length) node.setAttribute(\"layer-id\", \"server-settings\");\n\n        if (node.getElementsByClassName(\"socialLinks-3jqNFy\").length) {\n          node.setAttribute(\"layer-id\", \"user-settings\");\n          node.setAttribute(\"id\", \"user-settings\");\n          if (!document.getElementById(\"bd-settings-sidebar\")) _settingsPanel__WEBPACK_IMPORTED_MODULE_5__[\"default\"].renderSidebar();\n        }\n      }\n\n      if (node.parentElement == document.body && node.querySelector(\"#ace_settingsmenu\")) node.id = \"ace_settingsmenu_container\"; // Emoji Picker\n      //node.getElementsByClassName(\"emojiPicker-3m1S-j\").length && !node.querySelector(\".emojiPicker-3m1S-j\").parentElement.classList.contains(\"animatorLeft-1EQxU0\")\n\n      if (node.classList.contains(\"layer-v9HyYc\") && node.getElementsByClassName(\"emojiPicker-3m1S-j\").length && !node.querySelector(\".emojiPicker-3m1S-j\").parentElement.classList.contains(\"animatorLeft-1EQxU0\")) _quickEmoteMenu__WEBPACK_IMPORTED_MODULE_3__[\"default\"].obsCallback(node);\n    }\n  });\n  mainObserver.observe(document, {\n    childList: true,\n    subtree: true\n  });\n};\n\nCore.prototype.showChangelogModal = function (options = {}) {\n  const ModalStack = _webpackModules__WEBPACK_IMPORTED_MODULE_9__[\"default\"].findByProps(\"push\", \"update\", \"pop\", \"popWithKey\");\n  const ChangelogClasses = _webpackModules__WEBPACK_IMPORTED_MODULE_9__[\"default\"].findByProps(\"fixed\", \"improved\");\n  const TextElement = _webpackModules__WEBPACK_IMPORTED_MODULE_9__[\"default\"].findByProps(\"Sizes\", \"Weights\");\n  const FlexChild = _webpackModules__WEBPACK_IMPORTED_MODULE_9__[\"default\"].findByProps(\"Child\");\n  const Titles = _webpackModules__WEBPACK_IMPORTED_MODULE_9__[\"default\"].findByProps(\"Tags\", \"default\");\n  const Changelog = _webpackModules__WEBPACK_IMPORTED_MODULE_9__[\"default\"].find(m => m.defaultProps && m.defaultProps.selectable == false);\n  const MarkdownParser = _webpackModules__WEBPACK_IMPORTED_MODULE_9__[\"default\"].findByProps(\"defaultRules\", \"parse\");\n  if (!Changelog || !ModalStack || !ChangelogClasses || !TextElement || !FlexChild || !Titles || !MarkdownParser) return;\n  const {\n    image = \"https://repository-images.githubusercontent.com/105473537/957b5480-7c26-11e9-8401-50fa820cbae5\",\n    description = \"\",\n    changes = [],\n    title = \"BandagedBD\",\n    subtitle = `v${_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bbdVersion\"]}`,\n    footer\n  } = options;\n  const ce = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].React.createElement;\n  const changelogItems = [ce(\"img\", {\n    src: image\n  })];\n  if (description) changelogItems.push(ce(\"p\", null, MarkdownParser.parse(description)));\n\n  for (let c = 0; c < changes.length; c++) {\n    const entry = changes[c];\n    const type = ChangelogClasses[entry.type] ? ChangelogClasses[entry.type] : ChangelogClasses.added;\n    const margin = c == 0 ? ChangelogClasses.marginTop : \"\";\n    changelogItems.push(ce(\"h1\", {\n      className: `${type} ${margin}`\n    }, entry.title));\n    const list = ce(\"ul\", null, entry.items.map(i => ce(\"li\", null, MarkdownParser.parse(i))));\n    changelogItems.push(list);\n  }\n\n  const renderHeader = function () {\n    return ce(FlexChild.Child, {\n      grow: 1,\n      shrink: 1\n    }, ce(Titles.default, {\n      tag: Titles.Tags.H4\n    }, title), ce(TextElement, {\n      size: TextElement.Sizes.SMALL,\n      color: TextElement.Colors.PRIMARY,\n      className: ChangelogClasses.date\n    }, subtitle));\n  };\n\n  const renderFooter = () => {\n    const Anchor = _webpackModules__WEBPACK_IMPORTED_MODULE_9__[\"default\"].find(m => m.displayName == \"Anchor\");\n    const AnchorClasses = _webpackModules__WEBPACK_IMPORTED_MODULE_9__[\"default\"].findByProps(\"anchorUnderlineOnHover\") || {\n      anchor: \"anchor-3Z-8Bb\",\n      anchorUnderlineOnHover: \"anchorUnderlineOnHover-2ESHQB\"\n    };\n\n    const joinSupportServer = click => {\n      click.preventDefault();\n      click.stopPropagation();\n      ModalStack.pop();\n      _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].joinBD2();\n    };\n\n    const supportLink = Anchor ? ce(Anchor, {\n      onClick: joinSupportServer\n    }, \"Join our Discord Server.\") : ce(\"a\", {\n      className: `${AnchorClasses.anchor} ${AnchorClasses.anchorUnderlineOnHover}`,\n      onClick: joinSupportServer\n    }, \"Join our Discord Server.\");\n    const defaultFooter = ce(TextElement, {\n      size: TextElement.Sizes.SMALL,\n      color: TextElement.Colors.PRIMARY\n    }, \"Need support? \", supportLink);\n    return ce(FlexChild.Child, {\n      grow: 1,\n      shrink: 1\n    }, footer ? footer : defaultFooter);\n  };\n\n  ModalStack.push(function (props) {\n    return ce(Changelog, Object.assign({\n      className: ChangelogClasses.container,\n      selectable: true,\n      onScroll: _ => _,\n      onClose: _ => _,\n      renderHeader: renderHeader,\n      renderFooter: renderFooter,\n      children: changelogItems\n    }, props));\n  });\n};\n\nCore.prototype.patchSocial = function () {\n  if (this.socialPatch) return;\n  const TabBar = _webpackModules__WEBPACK_IMPORTED_MODULE_9__[\"default\"].find(m => m.displayName == \"TabBar\");\n  const Anchor = _webpackModules__WEBPACK_IMPORTED_MODULE_9__[\"default\"].find(m => m.displayName == \"Anchor\");\n  if (!TabBar || !Anchor) return;\n  this.socialPatch = _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].monkeyPatch(TabBar.prototype, \"render\", {\n    after: data => {\n      const children = data.returnValue.props.children;\n      if (!children || !children.length || children.length < 3) return;\n      if (children[children.length - 3].type.displayName !== \"Separator\") return;\n      if (!children[children.length - 2].type.toString().includes(\"socialLinks\")) return;\n      const original = children[children.length - 2].type;\n\n      const newOne = function () {\n        const returnVal = original(...arguments);\n        returnVal.props.children.push(_v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].React.createElement(Anchor, {\n          className: \"bd-social-link\",\n          href: \"https://github.com/rauenzi/BetterDiscordApp\",\n          title: \"BandagedBD\",\n          target: \"_blank\"\n        }, _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].React.createElement(_react_bdLogo__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n          size: \"16px\",\n          className: \"bd-social-logo\"\n        })));\n        return returnVal;\n      };\n\n      children[children.length - 2].type = newOne;\n      const BBDLink = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].React.createElement(Anchor, {\n        className: \"bd-social-link\",\n        href: \"https://twitter.com/BandagedBD\",\n        title: \"BandagedBD\",\n        target: \"_blank\"\n      }, \"BandagedBD\");\n      const AuthorLink = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].React.createElement(Anchor, {\n        className: \"bd-social-link\",\n        href: \"https://twitter.com/ZackRauen\",\n        title: \"Zerebos\",\n        target: \"_blank\"\n      }, \"Zerebos\");\n      const additional = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(\"div\", {\n        className: \"colorMuted-HdFt4q size12-3cLvbJ\"\n      }, [BBDLink, ` ${_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bbdVersion\"]} by `, AuthorLink]);\n      const originalVersions = children[children.length - 1].type;\n\n      children[children.length - 1].type = function () {\n        const returnVal = originalVersions(...arguments);\n        returnVal.props.children.push(additional);\n        return returnVal;\n      };\n    }\n  });\n};\n\nconst getGuildClasses = function () {\n  const guildsWrapper = _webpackModules__WEBPACK_IMPORTED_MODULE_9__[\"default\"].findByProps(\"wrapper\", \"unreadMentionsBar\");\n  const guilds = _webpackModules__WEBPACK_IMPORTED_MODULE_9__[\"default\"].findByProps(\"guildsError\", \"selected\");\n  const pill = _webpackModules__WEBPACK_IMPORTED_MODULE_9__[\"default\"].findByProps(\"blobContainer\");\n  return Object.assign({}, guildsWrapper, guilds, pill);\n};\n\nCore.prototype.patchGuildListItems = function () {\n  if (this.guildListItemsPatch) return;\n  const GuildClasses = getGuildClasses();\n  const listItemClass = GuildClasses.listItem.split(\" \")[0];\n  const blobClass = GuildClasses.blobContainer.split(\" \")[0];\n  const reactInstance = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].getInternalInstance(document.querySelector(`.${listItemClass} .${blobClass}`).parentElement);\n  const GuildComponent = reactInstance.return.type;\n  if (!GuildComponent) return;\n  this.guildListItemsPatch = _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].monkeyPatch(GuildComponent.prototype, \"render\", {\n    after: data => {\n      if (data.returnValue && data.thisObject) {\n        const returnValue = data.returnValue;\n        const guildData = data.thisObject.props;\n        returnValue.props.className += \" bd-guild\";\n        if (guildData.unread) returnValue.props.className += \" bd-unread\";\n        if (guildData.selected) returnValue.props.className += \" bd-selected\";\n        if (guildData.audio) returnValue.props.className += \" bd-audio\";\n        if (guildData.video) returnValue.props.className += \" bd-video\";\n        if (guildData.badge) returnValue.props.className += \" bd-badge\";\n        if (guildData.animatable) returnValue.props.className += \" bd-animatable\";\n        return returnValue;\n      }\n    }\n  });\n};\n\nCore.prototype.patchGuildPills = function () {\n  if (this.guildPillPatch) return;\n  const guildPill = _webpackModules__WEBPACK_IMPORTED_MODULE_9__[\"default\"].find(m => m.default && !m.default.displayName && m.default.toString && m.default.toString().includes(\"translate3d\"));\n  if (!guildPill) return;\n  this.guildPillPatch = _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].monkeyPatch(guildPill, \"default\", {\n    after: data => {\n      const props = data.methodArguments[0];\n      if (props.unread) data.returnValue.props.className += \" bd-unread\";\n      if (props.selected) data.returnValue.props.className += \" bd-selected\";\n      if (props.hovered) data.returnValue.props.className += \" bd-hovered\";\n      return data.returnValue;\n    }\n  });\n};\n\nCore.prototype.patchGuildSeparator = function () {\n  if (this.guildSeparatorPatch) return;\n  const Guilds = _webpackModules__WEBPACK_IMPORTED_MODULE_9__[\"default\"].findByDisplayName(\"Guilds\");\n  const guildComponents = _webpackModules__WEBPACK_IMPORTED_MODULE_9__[\"default\"].findByProps(\"renderListItem\");\n  if (!guildComponents || !Guilds) return;\n\n  const GuildSeparator = function () {\n    const returnValue = guildComponents.Separator(...arguments);\n    returnValue.props.className += \" bd-guild-separator\";\n    return returnValue;\n  };\n\n  this.guildSeparatorPatch = _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].monkeyPatch(Guilds.prototype, \"render\", {\n    after: data => {\n      data.returnValue.props.children[1].props.children[3].type = GuildSeparator;\n    }\n  });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Core);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 24504 characters]\n//# sourceURL=webpack-internal:///./src/core.js\n");

/***/ }),

/***/ "./src/dataStore.js":
/*!**************************!*\
  !*** ./src/dataStore.js ***!
  \**************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./0globals */ \"./src/0globals.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"./src/utils.js\");\n/* harmony import */ var _contentManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./contentManager */ \"./src/contentManager.js\");\n\n\n\n\nconst fs = __webpack_require__(/*! fs */ \"fs\");\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\nconst releaseChannel = DiscordNative.globals.releaseChannel;\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class DataStore {\n  constructor() {\n    this.data = {\n      settings: {\n        stable: {},\n        canary: {},\n        ptb: {}\n      }\n    };\n    this.pluginData = {};\n  }\n\n  initialize() {\n    try {\n      if (!fs.existsSync(this.BDFile)) fs.writeFileSync(this.BDFile, JSON.stringify(this.data, null, 4));\n\n      const data = require(this.BDFile);\n\n      if (data.hasOwnProperty(\"settings\")) this.data = data;\n      if (!fs.existsSync(this.settingsFile)) return;\n\n      let settings = require(this.settingsFile);\n\n      fs.unlinkSync(this.settingsFile);\n      if (settings.hasOwnProperty(\"settings\")) settings = Object.assign({\n        stable: {},\n        canary: {},\n        ptb: {}\n      }, {\n        [releaseChannel]: settings\n      });else settings = Object.assign({\n        stable: {},\n        canary: {},\n        ptb: {}\n      }, settings);\n      this.setBDData(\"settings\", settings);\n    } catch (err) {\n      console.error(err);\n      _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].alert(\"Corrupt Storage\", \"The bd storage has somehow become corrupt. You may either try to salvage the file or delete it then reload.\");\n    }\n  }\n\n  get BDFile() {\n    return this._BDFile || (this._BDFile = path.resolve(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"].dataPath, \"bdstorage.json\"));\n  }\n\n  get settingsFile() {\n    return this._settingsFile || (this._settingsFile = path.resolve(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"].dataPath, \"bdsettings.json\"));\n  }\n\n  getPluginFile(pluginName) {\n    return path.resolve(_contentManager__WEBPACK_IMPORTED_MODULE_2__[\"default\"].pluginsFolder, pluginName + \".config.json\");\n  }\n\n  getSettingGroup(key) {\n    return this.data.settings[releaseChannel][key] || null;\n  }\n\n  setSettingGroup(key, data) {\n    this.data.settings[releaseChannel][key] = data;\n    fs.writeFileSync(this.BDFile, JSON.stringify(this.data, null, 4));\n  }\n\n  getBDData(key) {\n    return this.data[key] || \"\";\n  }\n\n  setBDData(key, value) {\n    this.data[key] = value;\n    fs.writeFileSync(this.BDFile, JSON.stringify(this.data, null, 4));\n  }\n\n  getPluginData(pluginName, key) {\n    if (this.pluginData[pluginName] !== undefined) return this.pluginData[pluginName][key] || undefined;\n    if (!fs.existsSync(this.getPluginFile(pluginName))) return undefined;\n    this.pluginData[pluginName] = JSON.parse(fs.readFileSync(this.getPluginFile(pluginName)));\n    return this.pluginData[pluginName][key] || undefined;\n  }\n\n  setPluginData(pluginName, key, value) {\n    if (value === undefined) return;\n    if (this.pluginData[pluginName] === undefined) this.pluginData[pluginName] = {};\n    this.pluginData[pluginName][key] = value;\n    fs.writeFileSync(this.getPluginFile(pluginName), JSON.stringify(this.pluginData[pluginName], null, 4));\n  }\n\n  deletePluginData(pluginName, key) {\n    if (this.pluginData[pluginName] === undefined) this.pluginData[pluginName] = {};\n    delete this.pluginData[pluginName][key];\n    fs.writeFileSync(this.getPluginFile(pluginName), JSON.stringify(this.pluginData[pluginName], null, 4));\n  }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 5308 characters]\n//# sourceURL=webpack-internal:///./src/dataStore.js\n");

/***/ }),

/***/ "./src/devMode.js":
/*!************************!*\
  !*** ./src/devMode.js ***!
  \************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./v2 */ \"./src/v2.js\");\n\n\nfunction devMode() {}\n\ndevMode.prototype.enable = function (selectorMode) {\n  const self = this;\n  this.disable();\n  $(document).on(\"keydown.bdDevmode\", function (e) {\n    if (e.which === 119 || e.which == 118) {\n      //F8\n      console.log(\"%c[%cDevMode%c] %cBreak/Resume\", \"color: red;\", \"color: #303030; font-weight:700;\", \"color:red;\", \"\");\n      debugger; // eslint-disable-line no-debugger\n\n      e.preventDefault();\n      e.stopImmediatePropagation();\n    }\n  });\n  if (!selectorMode) return;\n  $(document).on(\"contextmenu.bdDevmode\", function (e) {\n    self.lastSelector = self.getSelector(e.toElement);\n\n    function attach() {\n      let cm = $(\".contextMenu-HLZMGh\");\n\n      if (cm.length <= 0) {\n        cm = $(\"<div class=\\\"contextMenu-HLZMGh bd-context-menu\\\"></div>\");\n        cm.addClass($(\".app, .app-2rEoOp\").hasClass(\"theme-dark\") ? \"theme-dark\" : \"theme-light\");\n        cm.appendTo(\".app, .app-2rEoOp\");\n        cm.css(\"top\", e.clientY);\n        cm.css(\"left\", e.clientX);\n        $(document).on(\"click.bdDevModeCtx\", () => {\n          cm.remove();\n          $(document).off(\".bdDevModeCtx\");\n        });\n        $(document).on(\"contextmenu.bdDevModeCtx\", () => {\n          cm.remove();\n          $(document).off(\".bdDevModeCtx\");\n        });\n        $(document).on(\"keyup.bdDevModeCtx\", e => {\n          if (e.keyCode === 27) {\n            cm.remove();\n            $(document).off(\".bdDevModeCtx\");\n          }\n        });\n      }\n\n      const cmo = $(\"<div/>\", {\n        \"class\": \"itemGroup-1tL0uz\"\n      });\n      const cmi = $(\"<div/>\", {\n        \"class\": \"item-1Yvehc\",\n        \"click\": function () {\n          _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].NativeModule.copy(self.lastSelector);\n          cm.hide();\n        }\n      }).append($(\"<span/>\", {\n        text: \"Copy Selector\"\n      }));\n      cmo.append(cmi);\n      cm.append(cmo);\n      if (cm.hasClass(\"undefined\")) cm.css(\"top\", \"-=\" + cmo.outerHeight());\n    }\n\n    setImmediate(attach);\n    e.stopPropagation();\n  });\n};\n\ndevMode.prototype.getRules = function (element, css = element.ownerDocument.styleSheets) {\n  //if (window.getMatchedCSSRules) return window.getMatchedCSSRules(element);\n  const sheets = [...css].filter(s => !s.href || !s.href.includes(\"BetterDiscordApp\"));\n  const rules = sheets.map(s => [...(s.cssRules || [])]).flat();\n  const elementRules = rules.filter(r => r && r.selectorText && element.matches(r.selectorText) && r.style.length && r.selectorText.split(\", \").length < 8 && !r.selectorText.split(\", \").includes(\"*\"));\n  return elementRules;\n};\n\ndevMode.prototype.getSelector = function (element) {\n  if (element.id) return `#${element.id}`;\n  const rules = this.getRules(element);\n  const latestRule = rules[rules.length - 1];\n  if (latestRule) return latestRule.selectorText;else if (element.classList.length) return `.${Array.from(element.classList).join(\".\")}`;\n  return `.${Array.from(element.parentElement.classList).join(\".\")}`;\n};\n\ndevMode.prototype.disable = function () {\n  $(document).off(\"keydown.bdDevmode\");\n  $(document).off(\"contextmenu.bdDevmode\");\n  $(document).off(\"contextmenu.bdDevModeCtx\");\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new devMode());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 5256 characters]\n//# sourceURL=webpack-internal:///./src/devMode.js\n");

/***/ }),

/***/ "./src/emoteModule.js":
/*!****************************!*\
  !*** ./src/emoteModule.js ***!
  \****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./0globals */ \"./src/0globals.js\");\n/* harmony import */ var _dataStore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataStore */ \"./src/dataStore.js\");\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./v2 */ \"./src/v2.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ \"./src/utils.js\");\n/* harmony import */ var _react_bdEmote__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./react/bdEmote */ \"./src/react/bdEmote.js\");\n\n\n\n\n\n\nfunction EmoteModule() {\n  Object.defineProperty(this, \"categories\", {\n    get: function () {\n      const cats = [];\n\n      for (const current in _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdEmoteSettingIDs\"]) {\n        if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdEmoteSettingIDs\"][current]]) cats.push(current);\n      }\n\n      return cats;\n    }\n  });\n}\n\nEmoteModule.prototype.init = async function () {\n  this.modifiers = [\"flip\", \"spin\", \"pulse\", \"spin2\", \"spin3\", \"1spin\", \"2spin\", \"3spin\", \"tr\", \"bl\", \"br\", \"shake\", \"shake2\", \"shake3\", \"flap\"];\n  this.overrides = [\"twitch\", \"bttv\", \"ffz\"];\n  const emoteInfo = {\n    TwitchGlobal: {\n      url: `https://rauenzi.github.io/BetterDiscordApp/data/emotedata_twitch_global.json`,\n      variable: \"TwitchGlobal\",\n      oldVariable: \"emotesTwitch\",\n      getEmoteURL: e => `https://static-cdn.jtvnw.net/emoticons/v1/${e}/1.0`\n    },\n    TwitchSubscriber: {\n      url: `https://rauenzi.github.io/BetterDiscordApp/data/emotedata_twitch_subscriber.json`,\n      variable: \"TwitchSubscriber\",\n      oldVariable: \"subEmotesTwitch\",\n      getEmoteURL: e => `https://static-cdn.jtvnw.net/emoticons/v1/${e}/1.0`\n    },\n    FrankerFaceZ: {\n      url: `https://rauenzi.github.io/BetterDiscordApp/data/emotedata_ffz.json`,\n      variable: \"FrankerFaceZ\",\n      oldVariable: \"emotesFfz\",\n      getEmoteURL: e => `https://cdn.frankerfacez.com/emoticon/${e}/1`\n    },\n    BTTV: {\n      url: `https://rauenzi.github.io/BetterDiscordApp/data/emotedata_bttv.json`,\n      variable: \"BTTV\",\n      oldVariable: \"emotesBTTV\",\n      getEmoteURL: e => `https://cdn.betterttv.net/emote/${e}/1x`\n    },\n    BTTV2: {\n      url: `https://rauenzi.github.io/BetterDiscordApp/data/emotedata_bttv2.json`,\n      variable: \"BTTV2\",\n      oldVariable: \"emotesBTTV2\",\n      getEmoteURL: e => `https://cdn.betterttv.net/emote/${e}/1x`\n    }\n  };\n  await this.getBlacklist();\n  await this.loadEmoteData(emoteInfo);\n\n  while (!_v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].MessageComponent) await new Promise(resolve => setTimeout(resolve, 100));\n\n  if (this.cancelEmoteRender) return;\n  this.cancelEmoteRender = _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].monkeyPatch(_v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].MessageComponent, \"default\", {\n    before: ({\n      methodArguments\n    }) => {\n      const nodes = methodArguments[0].childrenMessageContent.props.content;\n      if (!nodes || !nodes.length) return;\n\n      for (let n = 0; n < nodes.length; n++) {\n        const node = nodes[n];\n        if (typeof node !== \"string\") continue;\n        const words = node.split(/([^\\s]+)([\\s]|$)/g);\n\n        for (let c = 0, clen = this.categories.length; c < clen; c++) {\n          for (let w = 0, wlen = words.length; w < wlen; w++) {\n            const emote = words[w];\n            const emoteSplit = emote.split(\":\");\n            const emoteName = emoteSplit[0];\n            let emoteModifier = emoteSplit[1] ? emoteSplit[1] : \"\";\n            let emoteOverride = emoteModifier.slice(0);\n            if (emoteName.length < 4 || _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bemotes\"].includes(emoteName)) continue;\n            if (!this.modifiers.includes(emoteModifier) || !_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-es-8\"]) emoteModifier = \"\";\n            if (!this.overrides.includes(emoteOverride)) emoteOverride = \"\";else emoteModifier = emoteOverride;\n            let current = this.categories[c];\n\n            if (emoteOverride === \"twitch\") {\n              if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdEmotes\"].TwitchGlobal[emoteName]) current = \"TwitchGlobal\";else if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdEmotes\"].TwitchSubscriber[emoteName]) current = \"TwitchSubscriber\";\n            } else if (emoteOverride === \"bttv\") {\n              if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdEmotes\"].BTTV[emoteName]) current = \"BTTV\";else if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdEmotes\"].BTTV2[emoteName]) current = \"BTTV2\";\n            } else if (emoteOverride === \"ffz\") {\n              if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdEmotes\"].FrankerFaceZ[emoteName]) current = \"FrankerFaceZ\";\n            }\n\n            if (!_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdEmotes\"][current][emoteName] || !_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdEmoteSettingIDs\"][current]]) continue;\n            const results = nodes[n].match(new RegExp(`([\\\\s]|^)${_utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].escape(emoteModifier ? emoteName + \":\" + emoteModifier : emoteName)}([\\\\s]|$)`));\n            if (!results) continue;\n            const pre = nodes[n].substring(0, results.index + results[1].length);\n            const post = nodes[n].substring(results.index + results[0].length - results[2].length);\n            nodes[n] = pre;\n            const emoteComponent = _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(_react_bdEmote__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n              name: emoteName,\n              url: _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdEmotes\"][current][emoteName],\n              modifier: emoteModifier\n            });\n            nodes.splice(n + 1, 0, post);\n            nodes.splice(n + 1, 0, emoteComponent);\n          }\n        }\n      }\n\n      const onlyEmotes = nodes.every(r => {\n        if (typeof r == \"string\" && r.replace(/\\s*/, \"\") == \"\") return true;else if (r.type && r.type.name == \"BDEmote\") return true;else if (r.props && r.props.children && r.props.children.props && r.props.children.props.emojiName) return true;\n        return false;\n      });\n      if (!onlyEmotes) return;\n\n      for (const node of nodes) {\n        if (typeof node != \"object\") continue;\n        if (node.type.name == \"BDEmote\") node.props.jumboable = true;else if (node.props && node.props.children && node.props.children.props && node.props.children.props.emojiName) node.props.children.props.jumboable = true;\n      }\n    }\n  });\n};\n\nEmoteModule.prototype.disable = function () {\n  this.disableAutoCapitalize();\n  if (this.cancelEmoteRender) return;\n  this.cancelEmoteRender();\n  this.cancelEmoteRender = null;\n};\n\nEmoteModule.prototype.clearEmoteData = async function () {\n  const _fs = __webpack_require__(/*! fs */ \"fs\");\n\n  const emoteFile = \"emote_data.json\";\n  const file = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"].dataPath + emoteFile;\n\n  const exists = _fs.existsSync(file);\n\n  if (exists) _fs.unlinkSync(file);\n  _dataStore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setBDData(\"emoteCacheDate\", new Date().toJSON());\n  Object.assign(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdEmotes\"], {\n    TwitchGlobal: {},\n    TwitchSubscriber: {},\n    BTTV: {},\n    FrankerFaceZ: {},\n    BTTV2: {}\n  });\n};\n\nEmoteModule.prototype.isCacheValid = function () {\n  const cacheLength = _dataStore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getBDData(\"emoteCacheDays\") || _dataStore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setBDData(\"emoteCacheDays\", 7) || 7;\n  const cacheDate = new Date(_dataStore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getBDData(\"emoteCacheDate\") || null);\n  const currentDate = new Date();\n  const daysBetween = Math.round(Math.abs((currentDate.getTime() - cacheDate.getTime()) / (24 * 60 * 60 * 1000)));\n\n  if (daysBetween > cacheLength) {\n    _dataStore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setBDData(\"emoteCacheDate\", currentDate.toJSON());\n    return false;\n  }\n\n  return true;\n};\n\nEmoteModule.prototype.loadEmoteData = async function (emoteInfo) {\n  const fs = __webpack_require__(/*! fs */ \"fs\");\n\n  const emoteFile = \"emote_data.json\";\n  const file = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdConfig\"].dataPath + emoteFile;\n  const exists = await new Promise(r => fs.exists(file, r));\n\n  if (exists && this.isCacheValid()) {\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"]) _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].showToast(\"Loading emotes from cache.\", {\n      type: \"info\"\n    });\n    _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].log(\"Emotes\", \"Loading emotes from local cache.\");\n    const data = await new Promise(resolve => {\n      fs.readFile(file, \"utf8\", (err, data) => {\n        _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].log(\"Emotes\", \"Emote file read.\");\n        if (err) data = {};\n        resolve(data);\n      });\n    });\n    const parsed = _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].testJSON(data);\n    let isValid = !!parsed;\n    if (isValid) Object.assign(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdEmotes\"], parsed);\n\n    for (const e in emoteInfo) {\n      isValid = Object.keys(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdEmotes\"][emoteInfo[e].variable]).length > 0;\n    }\n\n    if (isValid) {\n      if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"]) _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].showToast(\"Emotes successfully loaded.\", {\n        type: \"success\"\n      });\n      return;\n    }\n\n    _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].log(\"Emotes\", \"Cache was corrupt, downloading...\");\n    await new Promise(r => fs.unlink(file, r));\n  }\n\n  if (!_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-es-3\"]) return;\n  if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"]) _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].showToast(\"Downloading emotes in the background do not reload.\", {\n    type: \"info\"\n  });\n\n  for (const e in emoteInfo) {\n    await new Promise(r => setTimeout(r, 1000));\n    const data = await this.downloadEmotes(emoteInfo[e]);\n    _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdEmotes\"][emoteInfo[e].variable] = data;\n  }\n\n  if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"]) _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].showToast(\"All emotes successfully downloaded.\", {\n    type: \"success\"\n  });\n\n  try {\n    await new Promise(r => fs.writeFile(file, JSON.stringify(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdEmotes\"]), \"utf8\", r));\n  } catch (err) {\n    _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].err(\"Emotes\", \"Could not save emote data.\", err);\n  }\n};\n\nEmoteModule.prototype.downloadEmotes = function (emoteMeta) {\n  const request = __webpack_require__(/*! request */ \"request\");\n\n  const options = {\n    url: emoteMeta.url,\n    timeout: emoteMeta.timeout ? emoteMeta.timeout : 5000,\n    json: true\n  };\n  _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].log(\"Emotes\", `Downloading: ${emoteMeta.variable} (${emoteMeta.url})`);\n  return new Promise((resolve, reject) => {\n    request(options, (error, response, parsedData) => {\n      if (error) {\n        _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].err(\"Emotes\", \"Could not download \" + emoteMeta.variable, error);\n\n        if (emoteMeta.backup) {\n          emoteMeta.url = emoteMeta.backup;\n          emoteMeta.backup = null;\n          if (emoteMeta.backupParser) emoteMeta.parser = emoteMeta.backupParser;\n          return resolve(this.downloadEmotes(emoteMeta));\n        }\n\n        return reject({});\n      }\n\n      if (typeof emoteMeta.parser === \"function\") parsedData = emoteMeta.parser(parsedData);\n\n      for (const emote in parsedData) {\n        if (emote.length < 4 || _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bemotes\"].includes(emote)) {\n          delete parsedData[emote];\n          continue;\n        }\n\n        parsedData[emote] = emoteMeta.getEmoteURL(parsedData[emote]);\n      }\n\n      resolve(parsedData);\n      _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].log(\"Emotes\", \"Downloaded: \" + emoteMeta.variable);\n    });\n  });\n};\n\nEmoteModule.prototype.getBlacklist = function () {\n  return new Promise(resolve => {\n    $.getJSON(`https://rauenzi.github.io/BetterDiscordApp/data/emotefilter.json`, function (data) {\n      resolve(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bemotes\"].concat(data.blacklist));\n    });\n  });\n};\n\nEmoteModule.prototype.autoCapitalize = function () {\n  if (!_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-es-4\"] || this.autoCapitalizeActive) return;\n  $(\"body\").on(\"keyup.bdac change.bdac paste.bdac\", $(\".channelTextArea-rNsIhG textarea:first\"), () => {\n    const text = $(\".channelTextArea-rNsIhG textarea:first\").val();\n    if (text == undefined) return;\n    const lastWord = text.split(\" \").pop();\n\n    if (lastWord.length > 3) {\n      if (lastWord == \"danSgame\") return;\n      const ret = this.capitalize(lastWord.toLowerCase());\n\n      if (ret !== null && ret !== undefined) {\n        _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].insertText(_utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getTextArea()[0], text.replace(lastWord, ret));\n      }\n    }\n  });\n  this.autoCapitalizeActive = true;\n};\n\nEmoteModule.prototype.capitalize = function (value) {\n  const res = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdEmotes\"].TwitchGlobal;\n\n  for (const p in res) {\n    if (res.hasOwnProperty(p) && value == (p + \"\").toLowerCase()) {\n      return p;\n    }\n  }\n};\n\nEmoteModule.prototype.disableAutoCapitalize = function () {\n  this.autoCapitalizeActive = false;\n  $(\"body\").off(\".bdac\");\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new EmoteModule());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 17632 characters]\n//# sourceURL=webpack-internal:///./src/emoteModule.js\n");

/***/ }),

/***/ "./src/index.js":
/*!**********************!*\
  !*** ./src/index.js ***!
  \**********************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _localStorageFix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./localStorageFix */ \"./src/localStorageFix.js\");\n/* harmony import */ var _loadingIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loadingIcon */ \"./src/loadingIcon.js\");\n/* harmony import */ var _core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./core */ \"./src/core.js\");\n/* harmony import */ var _bdApi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./bdApi */ \"./src/bdApi.js\");\n\n\nObject(_localStorageFix__WEBPACK_IMPORTED_MODULE_0__[\"default\"])();\nObject(_loadingIcon__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n\n\nwindow.BdApi = _bdApi__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; // DataStore\n// BDEvents\n// settingsPanel\n// emoteModule\n// quickEmoteMenu\n// voiceMode\n// pluginModule\n// themeModule\n// dMode\n// publicServersModule\n// minSupportedVersion\n// bbdVersion\n// bbdChangelog\n// mainCore\n// settings\n// defaultCookie\n// settingsCookie\n// bdpluginErrors\n// bdthemeErrors\n// bdConfig\n// bemotes\n// Utils\n// ContentManager\n// pluginCookie\n// themeCookie\n// devMode\n// ClassNormalizer\n// BDV2\n// localStorage\n// bdEmotes\n// bdEmoteSettingIDs\n// bdthemes\n// bdplugins\n// emotePromise\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_core__WEBPACK_IMPORTED_MODULE_2__[\"default\"]); // function patchModuleLoad() {\n//     const namespace = \"betterdiscord\";\n//     const prefix = `${namespace}/`;\n//     const Module = require(\"module\");\n//     const load = Module._load;\n//     // const resolveFilename = Module._resolveFilename;\n//     Module._load = function(request) {\n//         if (request === namespace || request.startsWith(prefix)) {\n//             const requested = request.substr(prefix.length);\n//             if (requested == \"api\") return BdApi;\n//         }\n//         return load.apply(this, arguments);\n//     };\n//     // Module._resolveFilename = function (request, parent, isMain) {\n//     //     if (request === \"betterdiscord\" || request.startsWith(\"betterdiscord/\")) {\n//     //         const contentPath = PluginManager.getPluginPathByModule(parent);\n//     //         if (contentPath) return request;\n//     //     }\n//     //     return resolveFilename.apply(this, arguments);\n//     // };\n//     return function() {\n//         Module._load = load;\n//     };\n// }\n// patchModuleLoad();\n// var settingsPanel, emoteModule, quickEmoteMenu, voiceMode,, dMode, publicServersModule;\n// var bdConfig = null;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvaW5kZXguanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2luZGV4LmpzP2JmNDUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvY2FsU3RvcmFnZUZpeCBmcm9tIFwiLi9sb2NhbFN0b3JhZ2VGaXhcIjtcbmltcG9ydCBsb2FkaW5nSWNvbiBmcm9tIFwiLi9sb2FkaW5nSWNvblwiO1xubG9jYWxTdG9yYWdlRml4KCk7XG5sb2FkaW5nSWNvbigpO1xuaW1wb3J0IENvcmUgZnJvbSBcIi4vY29yZVwiO1xuaW1wb3J0IEJkQXBpIGZyb20gXCIuL2JkQXBpXCI7XG53aW5kb3cuQmRBcGkgPSBCZEFwaTsgLy8gRGF0YVN0b3JlXG4vLyBCREV2ZW50c1xuLy8gc2V0dGluZ3NQYW5lbFxuLy8gZW1vdGVNb2R1bGVcbi8vIHF1aWNrRW1vdGVNZW51XG4vLyB2b2ljZU1vZGVcbi8vIHBsdWdpbk1vZHVsZVxuLy8gdGhlbWVNb2R1bGVcbi8vIGRNb2RlXG4vLyBwdWJsaWNTZXJ2ZXJzTW9kdWxlXG4vLyBtaW5TdXBwb3J0ZWRWZXJzaW9uXG4vLyBiYmRWZXJzaW9uXG4vLyBiYmRDaGFuZ2Vsb2dcbi8vIG1haW5Db3JlXG4vLyBzZXR0aW5nc1xuLy8gZGVmYXVsdENvb2tpZVxuLy8gc2V0dGluZ3NDb29raWVcbi8vIGJkcGx1Z2luRXJyb3JzXG4vLyBiZHRoZW1lRXJyb3JzXG4vLyBiZENvbmZpZ1xuLy8gYmVtb3Rlc1xuLy8gVXRpbHNcbi8vIENvbnRlbnRNYW5hZ2VyXG4vLyBwbHVnaW5Db29raWVcbi8vIHRoZW1lQ29va2llXG4vLyBkZXZNb2RlXG4vLyBDbGFzc05vcm1hbGl6ZXJcbi8vIEJEVjJcbi8vIGxvY2FsU3RvcmFnZVxuLy8gYmRFbW90ZXNcbi8vIGJkRW1vdGVTZXR0aW5nSURzXG4vLyBiZHRoZW1lc1xuLy8gYmRwbHVnaW5zXG4vLyBlbW90ZVByb21pc2VcblxuZXhwb3J0IGRlZmF1bHQgQ29yZTsgLy8gZnVuY3Rpb24gcGF0Y2hNb2R1bGVMb2FkKCkge1xuLy8gICAgIGNvbnN0IG5hbWVzcGFjZSA9IFwiYmV0dGVyZGlzY29yZFwiO1xuLy8gICAgIGNvbnN0IHByZWZpeCA9IGAke25hbWVzcGFjZX0vYDtcbi8vICAgICBjb25zdCBNb2R1bGUgPSByZXF1aXJlKFwibW9kdWxlXCIpO1xuLy8gICAgIGNvbnN0IGxvYWQgPSBNb2R1bGUuX2xvYWQ7XG4vLyAgICAgLy8gY29uc3QgcmVzb2x2ZUZpbGVuYW1lID0gTW9kdWxlLl9yZXNvbHZlRmlsZW5hbWU7XG4vLyAgICAgTW9kdWxlLl9sb2FkID0gZnVuY3Rpb24ocmVxdWVzdCkge1xuLy8gICAgICAgICBpZiAocmVxdWVzdCA9PT0gbmFtZXNwYWNlIHx8IHJlcXVlc3Quc3RhcnRzV2l0aChwcmVmaXgpKSB7XG4vLyAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ZWQgPSByZXF1ZXN0LnN1YnN0cihwcmVmaXgubGVuZ3RoKTtcbi8vICAgICAgICAgICAgIGlmIChyZXF1ZXN0ZWQgPT0gXCJhcGlcIikgcmV0dXJuIEJkQXBpO1xuLy8gICAgICAgICB9XG4vLyAgICAgICAgIHJldHVybiBsb2FkLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4vLyAgICAgfTtcbi8vICAgICAvLyBNb2R1bGUuX3Jlc29sdmVGaWxlbmFtZSA9IGZ1bmN0aW9uIChyZXF1ZXN0LCBwYXJlbnQsIGlzTWFpbikge1xuLy8gICAgIC8vICAgICBpZiAocmVxdWVzdCA9PT0gXCJiZXR0ZXJkaXNjb3JkXCIgfHwgcmVxdWVzdC5zdGFydHNXaXRoKFwiYmV0dGVyZGlzY29yZC9cIikpIHtcbi8vICAgICAvLyAgICAgICAgIGNvbnN0IGNvbnRlbnRQYXRoID0gUGx1Z2luTWFuYWdlci5nZXRQbHVnaW5QYXRoQnlNb2R1bGUocGFyZW50KTtcbi8vICAgICAvLyAgICAgICAgIGlmIChjb250ZW50UGF0aCkgcmV0dXJuIHJlcXVlc3Q7XG4vLyAgICAgLy8gICAgIH1cbi8vICAgICAvLyAgICAgcmV0dXJuIHJlc29sdmVGaWxlbmFtZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuLy8gICAgIC8vIH07XG4vLyAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuLy8gICAgICAgICBNb2R1bGUuX2xvYWQgPSBsb2FkO1xuLy8gICAgIH07XG4vLyB9XG4vLyBwYXRjaE1vZHVsZUxvYWQoKTtcbi8vIHZhciBzZXR0aW5nc1BhbmVsLCBlbW90ZU1vZHVsZSwgcXVpY2tFbW90ZU1lbnUsIHZvaWNlTW9kZSwsIGRNb2RlLCBwdWJsaWNTZXJ2ZXJzTW9kdWxlO1xuLy8gdmFyIGJkQ29uZmlnID0gbnVsbDsiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/index.js\n");

/***/ }),

/***/ "./src/loadingIcon.js":
/*!****************************!*\
  !*** ./src/loadingIcon.js ***!
  \****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (() => {\n  const v2Loader = document.createElement(\"div\");\n  v2Loader.className = \"bd-loaderv2\";\n  v2Loader.title = \"BandagedBD is loading...\";\n  document.body.appendChild(v2Loader);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbG9hZGluZ0ljb24uanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2xvYWRpbmdJY29uLmpzP2NlZGIiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgKCgpID0+IHtcbiAgY29uc3QgdjJMb2FkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICB2MkxvYWRlci5jbGFzc05hbWUgPSBcImJkLWxvYWRlcnYyXCI7XG4gIHYyTG9hZGVyLnRpdGxlID0gXCJCYW5kYWdlZEJEIGlzIGxvYWRpbmcuLi5cIjtcbiAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2MkxvYWRlcik7XG59KTsiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/loadingIcon.js\n");

/***/ }),

/***/ "./src/localStorageFix.js":
/*!********************************!*\
  !*** ./src/localStorageFix.js ***!
  \********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function () {\n  const __fs = window.require(\"fs\");\n\n  const __process = window.require(\"process\");\n\n  const __platform = __process.platform;\n\n  const __dataPath = (__platform === \"win32\" ? __process.env.APPDATA : __platform === \"darwin\" ? __process.env.HOME + \"/Library/Preferences\" : process.env.HOME + \"/.config\") + \"/BetterDiscord/\";\n\n  const localStorageFile = \"localStorage.json\";\n  let __data = {};\n\n  if (__fs.existsSync(`${__dataPath}${localStorageFile}`)) {\n    try {\n      __data = JSON.parse(__fs.readFileSync(`${__dataPath}${localStorageFile}`));\n    } catch (err) {\n      console.log(err);\n    }\n  } else if (__fs.existsSync(localStorageFile)) {\n    try {\n      __data = JSON.parse(__fs.readFileSync(localStorageFile));\n    } catch (err) {\n      console.log(err);\n    }\n  }\n\n  const __ls = __data;\n\n  __ls.setItem = function (i, v) {\n    __ls[i] = v;\n    this.save();\n  };\n\n  __ls.getItem = function (i) {\n    return __ls[i] || null;\n  };\n\n  __ls.save = function () {\n    __fs.writeFileSync(`${__dataPath}${localStorageFile}`, JSON.stringify(this), null, 4);\n  };\n\n  const __proxy = new Proxy(__ls, {\n    set: function (target, name, val) {\n      __ls[name] = val;\n\n      __ls.save();\n    },\n    get: function (target, name) {\n      return __ls[name] || null;\n    }\n  });\n\n  window.localStorage = __proxy;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvbG9jYWxTdG9yYWdlRml4LmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQ29yZS8uL3NyYy9sb2NhbFN0b3JhZ2VGaXguanM/MTUzMyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IF9fZnMgPSB3aW5kb3cucmVxdWlyZShcImZzXCIpO1xuXG4gIGNvbnN0IF9fcHJvY2VzcyA9IHdpbmRvdy5yZXF1aXJlKFwicHJvY2Vzc1wiKTtcblxuICBjb25zdCBfX3BsYXRmb3JtID0gX19wcm9jZXNzLnBsYXRmb3JtO1xuXG4gIGNvbnN0IF9fZGF0YVBhdGggPSAoX19wbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiID8gX19wcm9jZXNzLmVudi5BUFBEQVRBIDogX19wbGF0Zm9ybSA9PT0gXCJkYXJ3aW5cIiA/IF9fcHJvY2Vzcy5lbnYuSE9NRSArIFwiL0xpYnJhcnkvUHJlZmVyZW5jZXNcIiA6IHByb2Nlc3MuZW52LkhPTUUgKyBcIi8uY29uZmlnXCIpICsgXCIvQmV0dGVyRGlzY29yZC9cIjtcblxuICBjb25zdCBsb2NhbFN0b3JhZ2VGaWxlID0gXCJsb2NhbFN0b3JhZ2UuanNvblwiO1xuICBsZXQgX19kYXRhID0ge307XG5cbiAgaWYgKF9fZnMuZXhpc3RzU3luYyhgJHtfX2RhdGFQYXRofSR7bG9jYWxTdG9yYWdlRmlsZX1gKSkge1xuICAgIHRyeSB7XG4gICAgICBfX2RhdGEgPSBKU09OLnBhcnNlKF9fZnMucmVhZEZpbGVTeW5jKGAke19fZGF0YVBhdGh9JHtsb2NhbFN0b3JhZ2VGaWxlfWApKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgfVxuICB9IGVsc2UgaWYgKF9fZnMuZXhpc3RzU3luYyhsb2NhbFN0b3JhZ2VGaWxlKSkge1xuICAgIHRyeSB7XG4gICAgICBfX2RhdGEgPSBKU09OLnBhcnNlKF9fZnMucmVhZEZpbGVTeW5jKGxvY2FsU3RvcmFnZUZpbGUpKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgX19scyA9IF9fZGF0YTtcblxuICBfX2xzLnNldEl0ZW0gPSBmdW5jdGlvbiAoaSwgdikge1xuICAgIF9fbHNbaV0gPSB2O1xuICAgIHRoaXMuc2F2ZSgpO1xuICB9O1xuXG4gIF9fbHMuZ2V0SXRlbSA9IGZ1bmN0aW9uIChpKSB7XG4gICAgcmV0dXJuIF9fbHNbaV0gfHwgbnVsbDtcbiAgfTtcblxuICBfX2xzLnNhdmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgX19mcy53cml0ZUZpbGVTeW5jKGAke19fZGF0YVBhdGh9JHtsb2NhbFN0b3JhZ2VGaWxlfWAsIEpTT04uc3RyaW5naWZ5KHRoaXMpLCBudWxsLCA0KTtcbiAgfTtcblxuICBjb25zdCBfX3Byb3h5ID0gbmV3IFByb3h5KF9fbHMsIHtcbiAgICBzZXQ6IGZ1bmN0aW9uICh0YXJnZXQsIG5hbWUsIHZhbCkge1xuICAgICAgX19sc1tuYW1lXSA9IHZhbDtcblxuICAgICAgX19scy5zYXZlKCk7XG4gICAgfSxcbiAgICBnZXQ6IGZ1bmN0aW9uICh0YXJnZXQsIG5hbWUpIHtcbiAgICAgIHJldHVybiBfX2xzW25hbWVdIHx8IG51bGw7XG4gICAgfVxuICB9KTtcblxuICB3aW5kb3cubG9jYWxTdG9yYWdlID0gX19wcm94eTtcbn0iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/localStorageFix.js\n");

/***/ }),

/***/ "./src/pluginModule.js":
/*!*****************************!*\
  !*** ./src/pluginModule.js ***!
  \*****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./0globals */ \"./src/0globals.js\");\n/* harmony import */ var _contentManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./contentManager */ \"./src/contentManager.js\");\n/* harmony import */ var _dataStore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataStore */ \"./src/dataStore.js\");\n/* harmony import */ var _bdEvents__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./bdEvents */ \"./src/bdEvents.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils */ \"./src/utils.js\");\n\n\n\n\n\n\nfunction PluginModule() {}\n\nPluginModule.prototype.loadPlugins = function () {\n  this.loadPluginData();\n  _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdpluginErrors\"].concat(_contentManager__WEBPACK_IMPORTED_MODULE_1__[\"default\"].loadPlugins());\n  const plugins = Object.keys(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"]);\n\n  for (let i = 0; i < plugins.length; i++) {\n    let plugin, name;\n\n    try {\n      plugin = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugins[i]].plugin;\n      name = plugin.getName();\n      if (plugin.load && typeof plugin.load == \"function\") plugin.load();\n    } catch (err) {\n      _0globals__WEBPACK_IMPORTED_MODULE_0__[\"pluginCookie\"][name] = false;\n      _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].err(\"Plugins\", name + \" could not be loaded.\", err);\n      _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdpluginErrors\"].push({\n        name: name,\n        file: _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugins[i]].filename,\n        message: \"load() could not be fired.\",\n        error: {\n          message: err.message,\n          stack: err.stack\n        }\n      });\n      continue;\n    }\n\n    if (!_0globals__WEBPACK_IMPORTED_MODULE_0__[\"pluginCookie\"][name]) _0globals__WEBPACK_IMPORTED_MODULE_0__[\"pluginCookie\"][name] = false;\n\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"pluginCookie\"][name]) {\n      try {\n        plugin.start();\n        if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"]) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showToast(`${plugin.getName()} v${plugin.getVersion()} has started.`);\n      } catch (err) {\n        _0globals__WEBPACK_IMPORTED_MODULE_0__[\"pluginCookie\"][name] = false;\n        _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].err(\"Plugins\", name + \" could not be started.\", err);\n        _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdpluginErrors\"].push({\n          name: name,\n          file: _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugins[i]].filename,\n          message: \"start() could not be fired.\",\n          error: {\n            message: err.message,\n            stack: err.stack\n          }\n        });\n      }\n    }\n  }\n\n  this.savePluginData();\n\n  __webpack_require__(/*! electron */ \"electron\").remote.getCurrentWebContents().on(\"did-navigate-in-page\", this.channelSwitch.bind(this)); // if (settingsCookie[\"fork-ps-5\"]) ContentManager.watchContent(\"plugin\");\n\n};\n\nPluginModule.prototype.startPlugin = function (plugin, reload = false) {\n  try {\n    _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugin].plugin.start();\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"] && !reload) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showToast(`${_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugin].plugin.getName()} v${_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugin].plugin.getVersion()} has started.`);\n  } catch (err) {\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"] && !reload) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showToast(`${_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugin].plugin.getName()} v${_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugin].plugin.getVersion()} could not be started.`, {\n      type: \"error\"\n    });\n    _0globals__WEBPACK_IMPORTED_MODULE_0__[\"pluginCookie\"][plugin] = false;\n    this.savePluginData();\n    _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].err(\"Plugins\", plugin + \" could not be started.\", err);\n  }\n};\n\nPluginModule.prototype.stopPlugin = function (plugin, reload = false) {\n  try {\n    _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugin].plugin.stop();\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"] && !reload) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showToast(`${_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugin].plugin.getName()} v${_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugin].plugin.getVersion()} has stopped.`);\n  } catch (err) {\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"] && !reload) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showToast(`${_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugin].plugin.getName()} v${_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugin].plugin.getVersion()} could not be stopped.`, {\n      type: \"error\"\n    });\n    _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].err(\"Plugins\", _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugin].plugin.getName() + \" could not be stopped.\", err);\n  }\n};\n\nPluginModule.prototype.enablePlugin = function (plugin, reload = false) {\n  if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"pluginCookie\"][plugin]) return;\n  _0globals__WEBPACK_IMPORTED_MODULE_0__[\"pluginCookie\"][plugin] = true;\n  this.savePluginData();\n  this.startPlugin(plugin, reload);\n};\n\nPluginModule.prototype.disablePlugin = function (plugin, reload = false) {\n  if (!_0globals__WEBPACK_IMPORTED_MODULE_0__[\"pluginCookie\"][plugin]) return;\n  _0globals__WEBPACK_IMPORTED_MODULE_0__[\"pluginCookie\"][plugin] = false;\n  this.savePluginData();\n  this.stopPlugin(plugin, reload);\n};\n\nPluginModule.prototype.togglePlugin = function (plugin) {\n  if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"pluginCookie\"][plugin]) this.disablePlugin(plugin);else this.enablePlugin(plugin);\n};\n\nPluginModule.prototype.loadPlugin = function (filename) {\n  const error = _contentManager__WEBPACK_IMPORTED_MODULE_1__[\"default\"].loadContent(filename, \"plugin\");\n\n  if (error) {\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-1\"]) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showContentErrors({\n      plugins: [error]\n    });\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"]) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showToast(`${filename} could not be loaded.`, {\n      type: \"error\"\n    });\n    return _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].err(\"ContentManager\", `${filename} could not be loaded.`, error);\n  }\n\n  const plugin = Object.values(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"]).find(p => p.filename == filename).plugin;\n\n  try {\n    if (plugin.load && typeof plugin.load == \"function\") plugin.load();\n  } catch (err) {\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-1\"]) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showContentErrors({\n      plugins: [err]\n    });\n  }\n\n  _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].log(\"ContentManager\", `${plugin.getName()} v${plugin.getVersion()} was loaded.`);\n  if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"]) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showToast(`${plugin.getName()} v${plugin.getVersion()} was loaded.`, {\n    type: \"success\"\n  });\n  _bdEvents__WEBPACK_IMPORTED_MODULE_3__[\"default\"].dispatch(\"plugin-loaded\", plugin.getName());\n};\n\nPluginModule.prototype.unloadPlugin = function (filenameOrName) {\n  const bdplugin = Object.values(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"]).find(p => p.filename == filenameOrName) || _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][filenameOrName];\n  if (!bdplugin) return;\n  const plugin = bdplugin.plugin.getName();\n  if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"pluginCookie\"][plugin]) this.disablePlugin(plugin, true);\n  const error = _contentManager__WEBPACK_IMPORTED_MODULE_1__[\"default\"].unloadContent(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugin].filename, \"plugin\");\n  delete _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugin];\n\n  if (error) {\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-1\"]) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showContentErrors({\n      plugins: [error]\n    });\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"]) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showToast(`${plugin} could not be unloaded. It may have not been loaded yet.`, {\n      type: \"error\"\n    });\n    return _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].err(\"ContentManager\", `${plugin} could not be unloaded. It may have not been loaded yet.`, error);\n  }\n\n  _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].log(\"ContentManager\", `${plugin} was unloaded.`);\n  if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"]) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showToast(`${plugin} was unloaded.`, {\n    type: \"success\"\n  });\n  _bdEvents__WEBPACK_IMPORTED_MODULE_3__[\"default\"].dispatch(\"plugin-unloaded\", plugin);\n};\n\nPluginModule.prototype.reloadPlugin = function (filenameOrName) {\n  const bdplugin = Object.values(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"]).find(p => p.filename == filenameOrName) || _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][filenameOrName];\n  if (!bdplugin) return this.loadPlugin(filenameOrName);\n  const plugin = bdplugin.plugin.getName();\n  const enabled = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"pluginCookie\"][plugin];\n  if (enabled) this.stopPlugin(plugin, true);\n  const error = _contentManager__WEBPACK_IMPORTED_MODULE_1__[\"default\"].reloadContent(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugin].filename, \"plugin\");\n\n  if (error) {\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-1\"]) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showContentErrors({\n      plugins: [error]\n    });\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"]) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showToast(`${plugin} could not be reloaded.`, {\n      type: \"error\"\n    });\n    return _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].err(\"ContentManager\", `${plugin} could not be reloaded.`, error);\n  }\n\n  if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugin].plugin.load && typeof _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugin].plugin.load == \"function\") _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugin].plugin.load();\n  if (enabled) this.startPlugin(plugin, true);\n  _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].log(\"ContentManager\", `${plugin} v${_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugin].plugin.getVersion()} was reloaded.`);\n  if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"]) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showToast(`${plugin} v${_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugin].plugin.getVersion()} was reloaded.`, {\n    type: \"success\"\n  });\n  _bdEvents__WEBPACK_IMPORTED_MODULE_3__[\"default\"].dispatch(\"plugin-reloaded\", plugin);\n};\n\nPluginModule.prototype.updatePluginList = function () {\n  const results = _contentManager__WEBPACK_IMPORTED_MODULE_1__[\"default\"].loadNewContent(\"plugin\");\n\n  for (const filename of results.added) this.loadPlugin(filename);\n\n  for (const name of results.removed) this.unloadPlugin(name);\n};\n\nPluginModule.prototype.loadPluginData = function () {\n  const saved = _dataStore__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getSettingGroup(\"plugins\");\n\n  if (saved) {\n    Object.assign(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"pluginCookie\"], saved);\n  }\n};\n\nPluginModule.prototype.savePluginData = function () {\n  _dataStore__WEBPACK_IMPORTED_MODULE_2__[\"default\"].setSettingGroup(\"plugins\", _0globals__WEBPACK_IMPORTED_MODULE_0__[\"pluginCookie\"]);\n};\n\nPluginModule.prototype.newMessage = function () {\n  const plugins = Object.keys(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"]);\n\n  for (let i = 0; i < plugins.length; i++) {\n    const plugin = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugins[i]].plugin;\n    if (!_0globals__WEBPACK_IMPORTED_MODULE_0__[\"pluginCookie\"][plugin.getName()]) continue;\n\n    if (typeof plugin.onMessage === \"function\") {\n      try {\n        plugin.onMessage();\n      } catch (err) {\n        _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].err(\"Plugins\", \"Unable to fire onMessage for \" + plugin.getName() + \".\", err);\n      }\n    }\n  }\n};\n\nPluginModule.prototype.channelSwitch = function () {\n  const plugins = Object.keys(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"]);\n\n  for (let i = 0; i < plugins.length; i++) {\n    const plugin = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugins[i]].plugin;\n    if (!_0globals__WEBPACK_IMPORTED_MODULE_0__[\"pluginCookie\"][plugin.getName()]) continue;\n\n    if (typeof plugin.onSwitch === \"function\") {\n      try {\n        plugin.onSwitch();\n      } catch (err) {\n        _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].err(\"Plugins\", \"Unable to fire onSwitch for \" + plugin.getName() + \".\", err);\n      }\n    }\n  }\n};\n\nPluginModule.prototype.rawObserver = function (e) {\n  const plugins = Object.keys(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"]);\n\n  for (let i = 0; i < plugins.length; i++) {\n    const plugin = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugins[i]].plugin;\n    if (!_0globals__WEBPACK_IMPORTED_MODULE_0__[\"pluginCookie\"][plugin.getName()]) continue;\n\n    if (typeof plugin.observer === \"function\") {\n      try {\n        plugin.observer(e);\n      } catch (err) {\n        _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].err(\"Plugins\", \"Unable to fire observer for \" + plugin.getName() + \".\", err);\n      }\n    }\n  }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new PluginModule());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 14436 characters]\n//# sourceURL=webpack-internal:///./src/pluginModule.js\n");

/***/ }),

/***/ "./src/publicServers.js":
/*!******************************!*\
  !*** ./src/publicServers.js ***!
  \******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./0globals */ \"./src/0globals.js\");\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./v2 */ \"./src/v2.js\");\n/* harmony import */ var _webpackModules__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./webpackModules */ \"./src/webpackModules.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ \"./src/utils.js\");\n/* harmony import */ var _react_publicServers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./react/publicServers */ \"./src/react/publicServers.js\");\n/* harmony import */ var _react_layer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./react/layer */ \"./src/react/layer.js\");\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class V2_PublicServers {\n  constructor() {\n    this._appendButton = this._appendButton.bind(this);\n  }\n\n  get component() {\n    return _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(_react_layer__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n      rootId: \"pubslayerroot\",\n      id: \"pubslayer\",\n      children: _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(_react_publicServers__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n        rootId: \"pubslayerroot\"\n      })\n    });\n  }\n\n  get root() {\n    const _root = document.getElementById(\"pubslayerroot\");\n\n    if (!_root) {\n      if (!this.injectRoot()) return null;\n      return this.root;\n    }\n\n    return _root;\n  }\n\n  injectRoot() {\n    if (!$(\".layers, .layers-3iHuyZ\").length) return false;\n    $(\".layers, .layers-3iHuyZ\").append($(\"<div/>\", {\n      id: \"pubslayerroot\"\n    }));\n    return true;\n  }\n\n  render() {\n    // BdApi.alert(\"Broken\", \"Sorry but the Public Servers modules is currently broken, I recommend disabling this feature for now.\");\n    const root = this.root;\n\n    if (!root) {\n      console.log(\"FAILED TO LOCATE ROOT: .layers\");\n      return;\n    }\n\n    _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].reactDom.render(this.component, root);\n  }\n\n  get button() {\n    const btn = $(\"<div/>\", {\n      \"class\": _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].guildClasses.listItem,\n      \"id\": \"bd-pub-li\",\n      \"style\": _0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-1\"] ? \"\" : \"display: none;\"\n    }).append($(\"<div/>\", {\n      \"class\": \"wrapper-25eVIn \" + _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].guildClasses.circleButtonMask,\n      \"text\": \"public\",\n      \"id\": \"bd-pub-button\",\n      \"click\": () => {\n        this.render();\n      }\n    }));\n    return btn;\n  }\n\n  _appendButton() {\n    if ($(\"#bd-pub-li\").length) return;\n    const wrapper = _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].guildClasses.wrapper.split(\" \")[0];\n    const guilds = $(`.${wrapper} .scroller-2FKFPG >:first-child`);\n    guilds.after(this.button);\n  }\n\n  addButton() {\n    if (this.guildPatch) return;\n    const GuildList = _webpackModules__WEBPACK_IMPORTED_MODULE_2__[\"default\"].findByDisplayName(\"Guilds\");\n    this.guildPatch = _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].monkeyPatch(GuildList.prototype, \"render\", {\n      after: this._appendButton\n    });\n\n    this._appendButton();\n  }\n\n  removeButton() {\n    this.guildPatch();\n    delete this.guildPatch;\n    $(\"#bd-pub-li\").remove();\n  }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 4164 characters]\n//# sourceURL=webpack-internal:///./src/publicServers.js\n");

/***/ }),

/***/ "./src/quickEmoteMenu.js":
/*!*******************************!*\
  !*** ./src/quickEmoteMenu.js ***!
  \*******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./0globals */ \"./src/0globals.js\");\n/* harmony import */ var _dataStore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataStore */ \"./src/dataStore.js\");\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./v2 */ \"./src/v2.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ \"./src/utils.js\");\n\n\n\n\n\nfunction QuickEmoteMenu() {}\n\nQuickEmoteMenu.prototype.init = function () {\n  this.initialized = true;\n  $(document).on(\"mousedown\", function (e) {\n    if (e.target.id != \"rmenu\") $(\"#rmenu\").remove();\n  });\n  this.favoriteEmotes = {};\n  const fe = _dataStore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getBDData(\"bdfavemotes\");\n\n  if (fe !== \"\" && fe !== null) {\n    this.favoriteEmotes = JSON.parse(atob(fe));\n  }\n\n  let qmeHeader = \"\";\n  qmeHeader += \"<div id=\\\"bda-qem\\\">\";\n  qmeHeader += \"    <button class=\\\"active\\\" id=\\\"bda-qem-twitch\\\" onclick='quickEmoteMenu.switchHandler(this); return false;'>Twitch</button>\";\n  qmeHeader += \"    <button id=\\\"bda-qem-favourite\\\" onclick='quickEmoteMenu.switchHandler(this); return false;'>Favourite</button>\";\n  qmeHeader += \"    <button id=\\\"bda-qem-emojis\\\" onclick='quickEmoteMenu.switchHandler(this); return false;'>Emojis</buttond>\";\n  qmeHeader += \"</div>\";\n  this.qmeHeader = qmeHeader;\n  let teContainer = \"\";\n  teContainer += \"<div id=\\\"bda-qem-twitch-container\\\">\";\n  teContainer += \"    <div class=\\\"scroller-wrap scrollerWrap-2lJEkd fade\\\">\";\n  teContainer += \"        <div class=\\\"scroller scroller-2FKFPG\\\">\";\n  teContainer += \"            <div class=\\\"emote-menu-inner\\\">\";\n  let url = \"\";\n\n  for (const emote in _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdEmotes\"].TwitchGlobal) {\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdEmotes\"].TwitchGlobal.hasOwnProperty(emote)) {\n      url = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdEmotes\"].TwitchGlobal[emote];\n      teContainer += \"<div class=\\\"emote-container\\\">\";\n      teContainer += \"    <img class=\\\"emote-icon\\\" alt=\\\"\\\" src=\\\"\" + url + \"\\\" title=\\\"\" + emote + \"\\\">\";\n      teContainer += \"    </img>\";\n      teContainer += \"</div>\";\n    }\n  }\n\n  teContainer += \"            </div>\";\n  teContainer += \"        </div>\";\n  teContainer += \"    </div>\";\n  teContainer += \"</div>\";\n  this.teContainer = teContainer;\n  let faContainer = \"\";\n  faContainer += \"<div id=\\\"bda-qem-favourite-container\\\">\";\n  faContainer += \"    <div class=\\\"scroller-wrap scrollerWrap-2lJEkd fade\\\">\";\n  faContainer += \"        <div class=\\\"scroller scroller-2FKFPG\\\">\";\n  faContainer += \"            <div class=\\\"emote-menu-inner\\\">\";\n\n  for (const emote in this.favoriteEmotes) {\n    url = this.favoriteEmotes[emote];\n    faContainer += \"<div class=\\\"emote-container\\\">\";\n    faContainer += \"    <img class=\\\"emote-icon\\\" alt=\\\"\\\" src=\\\"\" + url + \"\\\" title=\\\"\" + emote + \"\\\" oncontextmenu='quickEmoteMenu.favContext(event, this);'>\";\n    faContainer += \"    </img>\";\n    faContainer += \"</div>\";\n  }\n\n  faContainer += \"            </div>\";\n  faContainer += \"        </div>\";\n  faContainer += \"    </div>\";\n  faContainer += \"</div>\";\n  this.faContainer = faContainer;\n};\n\nQuickEmoteMenu.prototype.favContext = function (e, em) {\n  e.stopPropagation();\n  const menu = $(\"<div>\", {\n    \"id\": \"removemenu\",\n    \"data-emoteid\": $(em).prop(\"title\"),\n    \"text\": \"Remove\",\n    \"class\": \"bd-context-menu context-menu theme-dark\"\n  });\n  menu.css({\n    top: e.pageY - $(\"#bda-qem-favourite-container\").offset().top,\n    left: e.pageX - $(\"#bda-qem-favourite-container\").offset().left\n  });\n  $(em).parent().append(menu);\n  const self = this;\n  menu.on(\"click\", function (e) {\n    e.preventDefault();\n    e.stopPropagation();\n    $(this).remove();\n    delete self.favoriteEmotes[$(this).data(\"emoteid\")];\n    self.updateFavorites();\n    return false;\n  });\n  return false;\n};\n\nQuickEmoteMenu.prototype.switchHandler = function (e) {\n  this.switchQem($(e).attr(\"id\"));\n};\n\nQuickEmoteMenu.prototype.switchQem = function (id) {\n  const twitch = $(\"#bda-qem-twitch\");\n  const fav = $(\"#bda-qem-favourite\");\n  const emojis = $(\"#bda-qem-emojis\");\n  twitch.removeClass(\"active\");\n  fav.removeClass(\"active\");\n  emojis.removeClass(\"active\");\n  $(\".emojiPicker-3m1S-j\").hide();\n  $(\"#bda-qem-favourite-container\").hide();\n  $(\"#bda-qem-twitch-container\").hide();\n\n  switch (id) {\n    case \"bda-qem-twitch\":\n      twitch.addClass(\"active\");\n      $(\"#bda-qem-twitch-container\").show();\n      break;\n\n    case \"bda-qem-favourite\":\n      fav.addClass(\"active\");\n      $(\"#bda-qem-favourite-container\").show();\n      break;\n\n    case \"bda-qem-emojis\":\n      emojis.addClass(\"active\");\n      $(\".emojiPicker-3m1S-j\").show();\n      $(\".emojiPicker-3m1S-j input\").focus();\n      break;\n  }\n\n  this.lastTab = id;\n  const emoteIcon = $(\".emote-icon\");\n  emoteIcon.off();\n  emoteIcon.on(\"click\", function () {\n    const emote = $(this).attr(\"title\");\n    const newTextarea = document.querySelector(`.${_v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].slateEditorClasses.slateTextArea.split(\" \")[0]}`);\n\n    if (newTextarea) {\n      const instance = _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getInternalInstance(newTextarea);\n      const insert = _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getNestedProp(instance, \"memoizedProps.children.props.editor.insertText\");\n      if (insert) insert(` ${emote} `);\n    } else {\n      const ta = _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getTextArea();\n      _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].insertText(ta[0], ta.val().slice(-1) == \" \" ? ta.val() + emote : ta.val() + \" \" + emote);\n    }\n  });\n};\n\nQuickEmoteMenu.prototype.obsCallback = function (elem) {\n  if (!this.initialized) return;\n  const e = $(elem);\n\n  if (!_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-es-9\"]) {\n    e.addClass(\"bda-qme-hidden\");\n  } else {\n    e.removeClass(\"bda-qme-hidden\");\n  }\n\n  if (!_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-es-0\"]) return;\n  e.prepend(this.qmeHeader);\n  e.append(this.teContainer);\n  e.append(this.faContainer);\n\n  if (this.lastTab == undefined) {\n    this.lastTab = \"bda-qem-emojis\";\n  }\n\n  this.switchQem(this.lastTab);\n};\n\nQuickEmoteMenu.prototype.favorite = function (name, url) {\n  if (!this.favoriteEmotes.hasOwnProperty(name)) {\n    this.favoriteEmotes[name] = url;\n  }\n\n  this.updateFavorites();\n};\n\nQuickEmoteMenu.prototype.updateFavorites = function () {\n  let faContainer = \"\";\n  faContainer += \"<div id=\\\"bda-qem-favourite-container\\\">\";\n  faContainer += \"    <div class=\\\"scroller-wrap scrollerWrap-2lJEkd fade\\\">\";\n  faContainer += \"        <div class=\\\"scroller scroller-2FKFPG\\\">\";\n  faContainer += \"            <div class=\\\"emote-menu-inner\\\">\";\n\n  for (const emote in this.favoriteEmotes) {\n    const url = this.favoriteEmotes[emote];\n    faContainer += \"<div class=\\\"emote-container\\\">\";\n    faContainer += \"    <img class=\\\"emote-icon\\\" alt=\\\"\\\" src=\\\"\" + url + \"\\\" title=\\\"\" + emote + \"\\\" oncontextmenu=\\\"quickEmoteMenu.favContext(event, this);\\\">\";\n    faContainer += \"    </img>\";\n    faContainer += \"</div>\";\n  }\n\n  faContainer += \"            </div>\";\n  faContainer += \"        </div>\";\n  faContainer += \"    </div>\";\n  faContainer += \"</div>\";\n  this.faContainer = faContainer;\n  $(\"#bda-qem-favourite-container\").replaceWith(faContainer);\n  _dataStore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setBDData(\"bdfavemotes\", btoa(JSON.stringify(this.favoriteEmotes)));\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new QuickEmoteMenu());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 11296 characters]\n//# sourceURL=webpack-internal:///./src/quickEmoteMenu.js\n");

/***/ }),

/***/ "./src/react/bdEmote.js":
/*!******************************!*\
  !*** ./src/react/bdEmote.js ***!
  \******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return BDEmote; });\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../0globals */ \"./src/0globals.js\");\n/* harmony import */ var _quickEmoteMenu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../quickEmoteMenu */ \"./src/quickEmoteMenu.js\");\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n\n\n\nclass BDEmote extends _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n    const isFav = _quickEmoteMenu__WEBPACK_IMPORTED_MODULE_1__[\"default\"] && _quickEmoteMenu__WEBPACK_IMPORTED_MODULE_1__[\"default\"].favoriteEmotes && _quickEmoteMenu__WEBPACK_IMPORTED_MODULE_1__[\"default\"].favoriteEmotes[this.label] ? true : false;\n    this.state = {\n      shouldAnimate: !this.animateOnHover,\n      isFavorite: isFav\n    };\n    this.onMouseEnter = this.onMouseEnter.bind(this);\n    this.onMouseLeave = this.onMouseLeave.bind(this);\n    this.onClick = this.onClick.bind(this);\n  }\n\n  get animateOnHover() {\n    return _0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-es-2\"];\n  }\n\n  get label() {\n    return this.props.modifier ? `${this.props.name}:${this.props.modifier}` : this.props.name;\n  }\n\n  get modifierClass() {\n    return this.props.modifier ? ` emote${this.props.modifier}` : \"\";\n  }\n\n  onMouseEnter() {\n    if (!this.state.shouldAnimate && this.animateOnHover) this.setState({\n      shouldAnimate: true\n    });\n    if (!this.state.isFavorite && _quickEmoteMenu__WEBPACK_IMPORTED_MODULE_1__[\"default\"].favoriteEmotes[this.label]) this.setState({\n      isFavorite: true\n    });else if (this.state.isFavorite && !_quickEmoteMenu__WEBPACK_IMPORTED_MODULE_1__[\"default\"].favoriteEmotes[this.label]) this.setState({\n      isFavorite: false\n    });\n  }\n\n  onMouseLeave() {\n    if (this.state.shouldAnimate && this.animateOnHover) this.setState({\n      shouldAnimate: false\n    });\n  }\n\n  onClick(e) {\n    if (this.props.onClick) this.props.onClick(e);\n  }\n\n  render() {\n    return _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(_v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].TooltipWrapper, {\n      color: \"black\",\n      position: \"top\",\n      text: this.label,\n      delay: 750\n    }, childProps => {\n      return _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"div\", Object.assign({\n        className: \"emotewrapper\" + (this.props.jumboable ? \" jumboable\" : \"\"),\n        onMouseEnter: this.onMouseEnter,\n        onMouseLeave: this.onMouseLeave,\n        onClick: this.onClick\n      }, childProps), _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"img\", {\n        draggable: false,\n        className: \"emote\" + this.modifierClass + (this.props.jumboable ? \" jumboable\" : \"\") + (!this.state.shouldAnimate ? \" stop-animation\" : \"\"),\n        dataModifier: this.props.modifier,\n        alt: this.label,\n        src: this.props.url\n      }), _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"input\", {\n        className: \"fav\" + (this.state.isFavorite ? \" active\" : \"\"),\n        title: \"Favorite!\",\n        type: \"button\",\n        onClick: e => {\n          e.preventDefault();\n          e.stopPropagation();\n\n          if (this.state.isFavorite) {\n            delete _quickEmoteMenu__WEBPACK_IMPORTED_MODULE_1__[\"default\"].favoriteEmotes[this.label];\n            _quickEmoteMenu__WEBPACK_IMPORTED_MODULE_1__[\"default\"].updateFavorites();\n          } else {\n            _quickEmoteMenu__WEBPACK_IMPORTED_MODULE_1__[\"default\"].favorite(this.label, this.props.url);\n          }\n\n          this.setState({\n            isFavorite: !this.state.isFavorite\n          });\n        }\n      }));\n    });\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 4828 characters]\n//# sourceURL=webpack-internal:///./src/react/bdEmote.js\n");

/***/ }),

/***/ "./src/react/bdLogo.js":
/*!*****************************!*\
  !*** ./src/react/bdLogo.js ***!
  \*****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return BDLogo; });\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n\nclass BDLogo extends _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactComponent {\n  render() {\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"svg\", {\n      height: \"100%\",\n      width: this.props.size || \"16px\",\n      className: \"bd-logo \" + this.props.className,\n      style: {\n        fillRule: \"evenodd\",\n        clipRule: \"evenodd\",\n        strokeLinecap: \"round\",\n        strokeLinejoin: \"round\"\n      },\n      viewBox: \"0 0 2000 2000\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"metadata\", null), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"defs\", null, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"filter\", {\n      id: \"shadow1\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"feDropShadow\", {\n      \"dx\": \"20\",\n      \"dy\": \"0\",\n      \"stdDeviation\": \"20\",\n      \"flood-color\": \"rgba(0,0,0,0.35)\"\n    })), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"filter\", {\n      id: \"shadow2\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"feDropShadow\", {\n      \"dx\": \"15\",\n      \"dy\": \"0\",\n      \"stdDeviation\": \"20\",\n      \"flood-color\": \"rgba(255,255,255,0.15)\"\n    })), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"filter\", {\n      id: \"shadow3\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"feDropShadow\", {\n      \"dx\": \"10\",\n      \"dy\": \"0\",\n      \"stdDeviation\": \"20\",\n      \"flood-color\": \"rgba(0,0,0,0.35)\"\n    }))), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"g\", null, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"path\", {\n      style: {\n        filter: \"url(#shadow3)\"\n      },\n      d: \"M1195.44+135.442L1195.44+135.442L997.6+136.442C1024.2+149.742+1170.34+163.542+1193.64+179.742C1264.34+228.842+1319.74+291.242+1358.24+365.042C1398.14+441.642+1419.74+530.642+1422.54+629.642L1422.54+630.842L1422.54+632.042C1422.54+773.142+1422.54+1228.14+1422.54+1369.14L1422.54+1370.34L1422.54+1371.54C1419.84+1470.54+1398.24+1559.54+1358.24+1636.14C1319.74+1709.94+1264.44+1772.34+1193.64+1821.44C1171.04+1837.14+1025.7+1850.54+1000+1863.54L1193.54+1864.54C1539.74+1866.44+1864.54+1693.34+1864.54+1296.64L1864.54+716.942C1866.44+312.442+1541.64+135.442+1195.44+135.442Z\",\n      fill: \"#171717\",\n      opacity: \"1\"\n    }), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"path\", {\n      style: {\n        filter: \"url(#shadow2)\"\n      },\n      d: \"M1695.54+631.442C1685.84+278.042+1409.34+135.442+1052.94+135.442L361.74+136.442L803.74+490.442L1060.74+490.442C1335.24+490.442+1335.24+835.342+1060.74+835.342L1060.74+1164.84C1150.22+1164.84+1210.53+1201.48+1241.68+1250.87C1306.07+1353+1245.76+1509.64+1060.74+1509.64L361.74+1863.54L1052.94+1864.54C1409.24+1864.54+1685.74+1721.94+1695.54+1368.54C1695.54+1205.94+1651.04+1084.44+1572.64+999.942C1651.04+915.542+1695.54+794.042+1695.54+631.442Z\",\n      fill: \"#3E82E5\",\n      opacity: \"1\"\n    }), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"path\", {\n      style: {\n        filter: \"url(#shadow1)\"\n      },\n      d: \"M1469.25+631.442C1459.55+278.042+1183.05+135.442+826.65+135.442L135.45+135.442L135.45+1004C135.45+1004+135.427+1255.21+355.626+1255.21C575.825+1255.21+575.848+1004+575.848+1004L577.45+490.442L834.45+490.442C1108.95+490.442+1108.95+835.342+834.45+835.342L664.65+835.342L664.65+1164.84L834.45+1164.84C923.932+1164.84+984.244+1201.48+1015.39+1250.87C1079.78+1353+1019.47+1509.64+834.45+1509.64L135.45+1509.64L135.45+1864.54L826.65+1864.54C1182.95+1864.54+1459.45+1721.94+1469.25+1368.54C1469.25+1205.94+1424.75+1084.44+1346.35+999.942C1424.75+915.542+1469.25+794.042+1469.25+631.442Z\",\n      fill: \"#FFFFFF\",\n      opacity: \"1\"\n    })));\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 5248 characters]\n//# sourceURL=webpack-internal:///./src/react/bdLogo.js\n");

/***/ }),

/***/ "./src/react/checkbox.js":
/*!*******************************!*\
  !*** ./src/react/checkbox.js ***!
  \*******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_Checkbox; });\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n\nclass V2C_Checkbox extends _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n    this.onClick = this.onClick.bind(this);\n    this.setInitialState();\n  }\n\n  setInitialState() {\n    this.state = {\n      checked: this.props.checked || false\n    };\n  }\n\n  render() {\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"li\", null, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"checkbox checkbox-3kaeSU da-checkbox\",\n      onClick: this.onClick\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"checkbox-inner checkboxInner-3yjcPe da-checkboxInner\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"input\", {\n      className: \"checkboxElement-1qV33p da-checkboxElement\",\n      checked: this.state.checked,\n      onChange: () => {},\n      type: \"checkbox\"\n    }), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"span\", null)), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"span\", null, this.props.text)));\n  }\n\n  onClick() {\n    this.props.onChange(this.props.id, !this.state.checked);\n    this.setState({\n      checked: !this.state.checked\n    });\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcmVhY3QvY2hlY2tib3guanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L2NoZWNrYm94LmpzPzllODAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJEVjIgZnJvbSBcIi4uL3YyXCI7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWMkNfQ2hlY2tib3ggZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5vbkNsaWNrID0gdGhpcy5vbkNsaWNrLmJpbmQodGhpcyk7XG4gICAgdGhpcy5zZXRJbml0aWFsU3RhdGUoKTtcbiAgfVxuXG4gIHNldEluaXRpYWxTdGF0ZSgpIHtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgY2hlY2tlZDogdGhpcy5wcm9wcy5jaGVja2VkIHx8IGZhbHNlXG4gICAgfTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwibGlcIiwgbnVsbCwgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogXCJjaGVja2JveCBjaGVja2JveC0za2FlU1UgZGEtY2hlY2tib3hcIixcbiAgICAgIG9uQ2xpY2s6IHRoaXMub25DbGlja1xuICAgIH0sIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwiY2hlY2tib3gtaW5uZXIgY2hlY2tib3hJbm5lci0zeWpjUGUgZGEtY2hlY2tib3hJbm5lclwiXG4gICAgfSwgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge1xuICAgICAgY2xhc3NOYW1lOiBcImNoZWNrYm94RWxlbWVudC0xcVYzM3AgZGEtY2hlY2tib3hFbGVtZW50XCIsXG4gICAgICBjaGVja2VkOiB0aGlzLnN0YXRlLmNoZWNrZWQsXG4gICAgICBvbkNoYW5nZTogKCkgPT4ge30sXG4gICAgICB0eXBlOiBcImNoZWNrYm94XCJcbiAgICB9KSwgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCBudWxsKSksIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwgbnVsbCwgdGhpcy5wcm9wcy50ZXh0KSkpO1xuICB9XG5cbiAgb25DbGljaygpIHtcbiAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKHRoaXMucHJvcHMuaWQsICF0aGlzLnN0YXRlLmNoZWNrZWQpO1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgY2hlY2tlZDogIXRoaXMuc3RhdGUuY2hlY2tlZFxuICAgIH0pO1xuICB9XG5cbn0iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/react/checkbox.js\n");

/***/ }),

/***/ "./src/react/contentColumn.js":
/*!************************************!*\
  !*** ./src/react/contentColumn.js ***!
  \************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_ContentColumn; });\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n\nclass V2C_ContentColumn extends _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n  }\n\n  render() {\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"contentColumn-2hrIYH contentColumnDefault-1VQkGM content-column default\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"h2\", {\n      className: \"ui-form-title h2 margin-reset margin-bottom-20\"\n    }, this.props.title), this.props.children);\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcmVhY3QvY29udGVudENvbHVtbi5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0NvcmUvLi9zcmMvcmVhY3QvY29udGVudENvbHVtbi5qcz9hMWQ2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCRFYyIGZyb20gXCIuLi92MlwiO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVjJDX0NvbnRlbnRDb2x1bW4gZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwiY29udGVudENvbHVtbi0yaHJJWUggY29udGVudENvbHVtbkRlZmF1bHQtMVZRa0dNIGNvbnRlbnQtY29sdW1uIGRlZmF1bHRcIlxuICAgIH0sIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImgyXCIsIHtcbiAgICAgIGNsYXNzTmFtZTogXCJ1aS1mb3JtLXRpdGxlIGgyIG1hcmdpbi1yZXNldCBtYXJnaW4tYm90dG9tLTIwXCJcbiAgICB9LCB0aGlzLnByb3BzLnRpdGxlKSwgdGhpcy5wcm9wcy5jaGlsZHJlbik7XG4gIH1cblxufSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/react/contentColumn.js\n");

/***/ }),

/***/ "./src/react/cssEditor.js":
/*!********************************!*\
  !*** ./src/react/cssEditor.js ***!
  \********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_CssEditor; });\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../0globals */ \"./src/0globals.js\");\n/* harmony import */ var _settingsPanel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../settingsPanel */ \"./src/settingsPanel.js\");\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n/* harmony import */ var _dataStore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dataStore */ \"./src/dataStore.js\");\n/* harmony import */ var _settingsTitle__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settingsTitle */ \"./src/react/settingsTitle.js\");\n/* harmony import */ var _checkbox__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./checkbox */ \"./src/react/checkbox.js\");\n/* harmony import */ var _cssEditorDetached__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./cssEditorDetached */ \"./src/react/cssEditorDetached.js\");\n\n\n\n\n\n\n\nclass V2C_CssEditor extends _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n    const self = this;\n    self.props.lines = 0;\n    self.setInitialState();\n    self.attach = self.attach.bind(self);\n    self.detachedEditor = _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(_cssEditorDetached__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n      attach: self.attach\n    });\n    self.onClick = self.onClick.bind(self);\n    self.updateCss = self.updateCss.bind(self);\n    self.saveCss = self.saveCss.bind(self);\n    self.detach = self.detach.bind(self);\n  }\n\n  setInitialState() {\n    this.state = {\n      detached: this.props.detached || _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].editorDetached\n    };\n  }\n\n  componentDidMount() {\n    // this.updateLineCount();\n    this.editor = ace.edit(\"bd-customcss-editor\");\n    this.editor.setTheme(\"ace/theme/monokai\");\n    this.editor.session.setMode(\"ace/mode/css\");\n    this.editor.setShowPrintMargin(false);\n    this.editor.setFontSize(14);\n    this.editor.on(\"change\", () => {\n      if (!_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-css-0\"]) return;\n      this.saveCss();\n      this.updateCss();\n    });\n  }\n\n  componentWillUnmount() {\n    this.editor.destroy();\n  }\n\n  componentDidUpdate(prevProps, prevState) {\n    const self = this;\n\n    if (prevState.detached && !self.state.detached) {\n      _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].reactDom.unmountComponentAtNode(self.detachedRoot);\n    }\n  }\n\n  codeMirror() {}\n\n  get options() {\n    return {\n      lineNumbers: true,\n      mode: \"css\",\n      indentUnit: 4,\n      theme: \"material\",\n      scrollbarStyle: \"simple\"\n    };\n  }\n\n  get css() {\n    const _ccss = _dataStore__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getBDData(\"bdcustomcss\");\n\n    let ccss = \"\";\n\n    if (_ccss && _ccss !== \"\") {\n      ccss = atob(_ccss);\n    }\n\n    return ccss;\n  }\n\n  updateLineCount() {\n    const lineCount = this.refs.editor.value.split(\"\\n\").length;\n    if (lineCount == this.props.lines) return;\n    this.refs.lines.textContent = Array.from(new Array(lineCount), (_, i) => i + 1).join(\".\\n\") + \".\";\n    this.props.lines = lineCount;\n  }\n\n  render() {\n    const self = this;\n    const {\n      detached\n    } = self.state;\n    return _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"div\", {\n      className: \"contentColumn-2hrIYH contentColumnDefault-1VQkGM content-column default\",\n      style: {\n        padding: \"60px 40px 0px\"\n      }\n    }, detached && _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"div\", {\n      id: \"editor-detached\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(_settingsTitle__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n      text: \"Custom CSS Editor\"\n    }), _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"h3\", null, \"Editor Detached\"), _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"button\", {\n      className: \"btn btn-primary\",\n      onClick: () => {\n        self.attach();\n      }\n    }, \"Attach\")), !detached && _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"div\", null, _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(_settingsTitle__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n      text: \"Custom CSS Editor\"\n    }), _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"div\", {\n      className: \"editor-wrapper\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"div\", {\n      id: \"bd-customcss-editor\",\n      className: \"editor\",\n      ref: \"editor\"\n    }, self.css)), _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"div\", {\n      id: \"bd-customcss-attach-controls\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"ul\", {\n      className: \"checkbox-group\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(_checkbox__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n      id: \"live-update\",\n      text: \"Live Update\",\n      onChange: this.onChange,\n      checked: _0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-css-0\"]\n    })), _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"div\", {\n      id: \"bd-customcss-detach-controls-button\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"button\", {\n      style: {\n        borderRadius: \"3px 0 0 3px\",\n        borderRight: \"1px solid #3f4146\"\n      },\n      className: \"btn btn-primary\",\n      onClick: () => {\n        self.onClick(\"update\");\n      }\n    }, \"Update\"), _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"button\", {\n      style: {\n        borderRadius: \"0\",\n        borderLeft: \"1px solid #2d2d2d\",\n        borderRight: \"1px solid #2d2d2d\"\n      },\n      className: \"btn btn-primary\",\n      onClick: () => {\n        self.onClick(\"save\");\n      }\n    }, \"Save\"), _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"button\", {\n      style: {\n        borderRadius: \"0 3px 3px 0\",\n        borderLeft: \"1px solid #3f4146\"\n      },\n      className: \"btn btn-primary\",\n      onClick: () => {\n        self.onClick(\"detach\");\n      }\n    }, \"Detach\"), _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"span\", {\n      style: {\n        fontSize: \"10px\",\n        marginLeft: \"5px\"\n      }\n    }, \"Unsaved changes are lost on detach\"), _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"div\", {\n      className: \"help-text\"\n    }, \"Press \", _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"code\", {\n      className: \"inline\"\n    }, \"ctrl\"), \"+\", _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"span\", {\n      className: \"inline\"\n    }, \",\"), \" with the editor focused to access the editor's settings.\")))));\n  }\n\n  onClick(arg) {\n    const self = this;\n\n    switch (arg) {\n      case \"update\":\n        self.updateCss();\n        break;\n\n      case \"save\":\n        self.saveCss();\n        break;\n\n      case \"detach\":\n        self.detach();\n        break;\n    }\n  }\n\n  onChange(id, checked) {\n    switch (id) {\n      case \"live-update\":\n        _0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-css-0\"] = checked;\n        _settingsPanel__WEBPACK_IMPORTED_MODULE_1__[\"default\"].saveSettings();\n        break;\n    }\n  }\n\n  updateCss() {\n    if ($(\"#customcss\").length == 0) {\n      $(\"head\").append(\"<style id=\\\"customcss\\\"></style>\");\n    }\n\n    $(\"#customcss\").text(this.editor.session.getValue()).detach().appendTo(document.head);\n  }\n\n  saveCss() {\n    _dataStore__WEBPACK_IMPORTED_MODULE_3__[\"default\"].setBDData(\"bdcustomcss\", btoa(this.editor.session.getValue()));\n  }\n\n  detach() {\n    const self = this;\n    self.setState({\n      detached: true\n    });\n    const droot = self.detachedRoot;\n\n    if (!droot) {\n      console.log(\"FAILED TO INJECT ROOT: .app\");\n      return;\n    }\n\n    _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].reactDom.render(self.detachedEditor, droot);\n  }\n\n  get detachedRoot() {\n    const _root = $(\"#bd-customcss-detach-container\");\n\n    if (!_root.length) {\n      if (!this.injectDetachedRoot()) return null;\n      return this.detachedRoot;\n    }\n\n    return _root[0];\n  }\n\n  injectDetachedRoot() {\n    if (!$(\".app, .app-2rEoOp\").length) return false;\n    $(\"<div/>\", {\n      id: \"bd-customcss-detach-container\"\n    }).insertAfter($(\".app, .app-2rEoOp\"));\n    return true;\n  }\n\n  attach() {\n    const self = this;\n    self.setState({\n      detached: false\n    });\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 11092 characters]\n//# sourceURL=webpack-internal:///./src/react/cssEditor.js\n");

/***/ }),

/***/ "./src/react/cssEditorDetached.js":
/*!****************************************!*\
  !*** ./src/react/cssEditorDetached.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_CssEditorDetached; });\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../0globals */ \"./src/0globals.js\");\n/* harmony import */ var _settingsPanel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../settingsPanel */ \"./src/settingsPanel.js\");\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n/* harmony import */ var _dataStore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dataStore */ \"./src/dataStore.js\");\n/* harmony import */ var _checkbox__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./checkbox */ \"./src/react/checkbox.js\");\n\n\n\n\n\nclass V2C_CssEditorDetached extends _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n    const self = this;\n    self.onClick = self.onClick.bind(self);\n    self.updateCss = self.updateCss.bind(self);\n    self.saveCss = self.saveCss.bind(self);\n    self.onChange = self.onChange.bind(self);\n  }\n\n  componentDidMount() {\n    $(\"#app-mount\").addClass(\"bd-detached-editor\");\n    _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].editorDetached = true; // this.updateLineCount();\n\n    this.editor = ace.edit(\"bd-customcss-editor-detached\");\n    this.editor.setTheme(\"ace/theme/monokai\");\n    this.editor.session.setMode(\"ace/mode/css\");\n    this.editor.setShowPrintMargin(false);\n    this.editor.setFontSize(14);\n    this.editor.on(\"change\", () => {\n      if (!_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-css-0\"]) return;\n      this.saveCss();\n      this.updateCss();\n    });\n  }\n\n  componentWillUnmount() {\n    $(\"#app-mount\").removeClass(\"bd-detached-editor\");\n    _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].editorDetached = false;\n    this.editor.destroy();\n  }\n\n  updateLineCount() {\n    const lineCount = this.refs.editor.value.split(\"\\n\").length;\n    if (lineCount == this.props.lines) return;\n    this.refs.lines.textContent = Array.from(new Array(lineCount), (_, i) => i + 1).join(\".\\n\") + \".\";\n    this.props.lines = lineCount;\n  }\n\n  get options() {\n    return {\n      lineNumbers: true,\n      mode: \"css\",\n      indentUnit: 4,\n      theme: \"material\",\n      scrollbarStyle: \"simple\"\n    };\n  }\n\n  get css() {\n    const _ccss = _dataStore__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getBDData(\"bdcustomcss\");\n\n    let ccss = \"\";\n\n    if (_ccss && _ccss !== \"\") {\n      ccss = atob(_ccss);\n    }\n\n    return ccss;\n  }\n\n  get root() {\n    const _root = $(\"#bd-customcss-detach-container\");\n\n    if (!_root.length) {\n      if (!this.injectRoot()) return null;\n      return this.detachedRoot;\n    }\n\n    return _root[0];\n  }\n\n  injectRoot() {\n    if (!$(\".app, .app-2rEoOp\").length) return false;\n    $(\"<div/>\", {\n      id: \"bd-customcss-detach-container\"\n    }).insertAfter($(\".app, .app-2rEoOp\"));\n    return true;\n  }\n\n  render() {\n    const self = this;\n    return _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"div\", {\n      className: \"bd-detached-css-editor\",\n      id: \"bd-customcss-detach-editor\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"div\", {\n      id: \"bd-customcss-innerpane\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"div\", {\n      className: \"editor-wrapper\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"div\", {\n      id: \"bd-customcss-editor-detached\",\n      className: \"editor\",\n      ref: \"editor\"\n    }, self.css)), _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"div\", {\n      id: \"bd-customcss-attach-controls\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"ul\", {\n      className: \"checkbox-group\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(_checkbox__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n      id: \"live-update\",\n      text: \"Live Update\",\n      onChange: self.onChange,\n      checked: _0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-css-0\"]\n    })), _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"div\", {\n      id: \"bd-customcss-detach-controls-button\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"button\", {\n      style: {\n        borderRadius: \"3px 0 0 3px\",\n        borderRight: \"1px solid #3f4146\"\n      },\n      className: \"btn btn-primary\",\n      onClick: () => {\n        self.onClick(\"update\");\n      }\n    }, \"Update\"), _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"button\", {\n      style: {\n        borderRadius: \"0\",\n        borderLeft: \"1px solid #2d2d2d\",\n        borderRight: \"1px solid #2d2d2d\"\n      },\n      className: \"btn btn-primary\",\n      onClick: () => {\n        self.onClick(\"save\");\n      }\n    }, \"Save\"), _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"button\", {\n      style: {\n        borderRadius: \"0 3px 3px 0\",\n        borderLeft: \"1px solid #3f4146\"\n      },\n      className: \"btn btn-primary\",\n      onClick: () => {\n        self.onClick(\"attach\");\n      }\n    }, \"Attach\"), _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"span\", {\n      style: {\n        fontSize: \"10px\",\n        marginLeft: \"5px\"\n      }\n    }, \"Unsaved changes are lost on attach\")))));\n  }\n\n  onChange(id, checked) {\n    switch (id) {\n      case \"live-update\":\n        _0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-css-0\"] = checked;\n        _settingsPanel__WEBPACK_IMPORTED_MODULE_1__[\"default\"].saveSettings();\n        break;\n    }\n  }\n\n  onClick(id) {\n    const self = this;\n\n    switch (id) {\n      case \"attach\":\n        if ($(\"#editor-detached\").length) self.props.attach();\n        _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].reactDom.unmountComponentAtNode(self.root);\n        self.root.remove();\n        break;\n\n      case \"update\":\n        self.updateCss();\n        break;\n\n      case \"save\":\n        self.saveCss();\n        break;\n    }\n  }\n\n  updateCss() {\n    if ($(\"#customcss\").length == 0) {\n      $(\"head\").append(\"<style id=\\\"customcss\\\"></style>\");\n    }\n\n    $(\"#customcss\").text(this.editor.session.getValue()).detach().appendTo(document.head);\n  }\n\n  saveCss() {\n    _dataStore__WEBPACK_IMPORTED_MODULE_3__[\"default\"].setBDData(\"bdcustomcss\", btoa(this.editor.session.getValue()));\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 8528 characters]\n//# sourceURL=webpack-internal:///./src/react/cssEditorDetached.js\n");

/***/ }),

/***/ "./src/react/layer.js":
/*!****************************!*\
  !*** ./src/react/layer.js ***!
  \****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_Layer; });\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n\nclass V2C_Layer extends _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n  }\n\n  componentDidMount() {\n    $(window).on(`keyup.${this.props.id}`, e => {\n      if (e.which === 27) {\n        _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactDom.unmountComponentAtNode(this.refs.root.parentNode);\n      }\n    });\n    $(`#${this.props.id}`).animate({\n      opacity: 1\n    }, {\n      step: function (now) {\n        $(this).css(\"transform\", `scale(${1.1 - 0.1 * now}) translateZ(0px)`);\n      },\n      duration: 200,\n      done: () => {\n        $(`#${this.props.id}`).css(\"opacity\", \"\").css(\"transform\", \"\");\n      }\n    });\n  }\n\n  componentWillUnmount() {\n    $(window).off(`keyup.${this.props.id}`);\n    $(`#${this.props.id}`).animate({\n      opacity: 0\n    }, {\n      step: function (now) {\n        $(this).css(\"transform\", `scale(${1.1 - 0.1 * now}) translateZ(0px)`);\n      },\n      duration: 200,\n      done: () => {\n        $(`#${this.props.rootId}`).remove();\n      }\n    });\n    $(\"[class*=\\\"layer-\\\"]\").removeClass(\"publicServersOpen\").animate({\n      opacity: 1\n    }, {\n      step: function (now) {\n        $(this).css(\"transform\", `scale(${0.07 * now + 0.93}) translateZ(0px)`);\n      },\n      duration: 200,\n      done: () => {\n        $(\"[class*=\\\"layer-\\\"]\").css(\"opacity\", \"\").css(\"transform\", \"\");\n      }\n    });\n  }\n\n  componentWillMount() {\n    $(\"[class*=\\\"layer-\\\"]\").addClass(\"publicServersOpen\").animate({\n      opacity: 0\n    }, {\n      step: function (now) {\n        $(this).css(\"transform\", `scale(${0.07 * now + 0.93}) translateZ(0px)`);\n      },\n      duration: 200\n    });\n  }\n\n  render() {\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"layer bd-layer layer-3QrUeG\",\n      id: this.props.id,\n      ref: \"root\",\n      style: {\n        opacity: 0,\n        transform: \"scale(1.1) translateZ(0px)\"\n      }\n    }, this.props.children);\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcmVhY3QvbGF5ZXIuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L2xheWVyLmpzP2YyNjciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJEVjIgZnJvbSBcIi4uL3YyXCI7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWMkNfTGF5ZXIgZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAkKHdpbmRvdykub24oYGtleXVwLiR7dGhpcy5wcm9wcy5pZH1gLCBlID0+IHtcbiAgICAgIGlmIChlLndoaWNoID09PSAyNykge1xuICAgICAgICBCRFYyLnJlYWN0RG9tLnVubW91bnRDb21wb25lbnRBdE5vZGUodGhpcy5yZWZzLnJvb3QucGFyZW50Tm9kZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgJChgIyR7dGhpcy5wcm9wcy5pZH1gKS5hbmltYXRlKHtcbiAgICAgIG9wYWNpdHk6IDFcbiAgICB9LCB7XG4gICAgICBzdGVwOiBmdW5jdGlvbiAobm93KSB7XG4gICAgICAgICQodGhpcykuY3NzKFwidHJhbnNmb3JtXCIsIGBzY2FsZSgkezEuMSAtIDAuMSAqIG5vd30pIHRyYW5zbGF0ZVooMHB4KWApO1xuICAgICAgfSxcbiAgICAgIGR1cmF0aW9uOiAyMDAsXG4gICAgICBkb25lOiAoKSA9PiB7XG4gICAgICAgICQoYCMke3RoaXMucHJvcHMuaWR9YCkuY3NzKFwib3BhY2l0eVwiLCBcIlwiKS5jc3MoXCJ0cmFuc2Zvcm1cIiwgXCJcIik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAkKHdpbmRvdykub2ZmKGBrZXl1cC4ke3RoaXMucHJvcHMuaWR9YCk7XG4gICAgJChgIyR7dGhpcy5wcm9wcy5pZH1gKS5hbmltYXRlKHtcbiAgICAgIG9wYWNpdHk6IDBcbiAgICB9LCB7XG4gICAgICBzdGVwOiBmdW5jdGlvbiAobm93KSB7XG4gICAgICAgICQodGhpcykuY3NzKFwidHJhbnNmb3JtXCIsIGBzY2FsZSgkezEuMSAtIDAuMSAqIG5vd30pIHRyYW5zbGF0ZVooMHB4KWApO1xuICAgICAgfSxcbiAgICAgIGR1cmF0aW9uOiAyMDAsXG4gICAgICBkb25lOiAoKSA9PiB7XG4gICAgICAgICQoYCMke3RoaXMucHJvcHMucm9vdElkfWApLnJlbW92ZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgICQoXCJbY2xhc3MqPVxcXCJsYXllci1cXFwiXVwiKS5yZW1vdmVDbGFzcyhcInB1YmxpY1NlcnZlcnNPcGVuXCIpLmFuaW1hdGUoe1xuICAgICAgb3BhY2l0eTogMVxuICAgIH0sIHtcbiAgICAgIHN0ZXA6IGZ1bmN0aW9uIChub3cpIHtcbiAgICAgICAgJCh0aGlzKS5jc3MoXCJ0cmFuc2Zvcm1cIiwgYHNjYWxlKCR7MC4wNyAqIG5vdyArIDAuOTN9KSB0cmFuc2xhdGVaKDBweClgKTtcbiAgICAgIH0sXG4gICAgICBkdXJhdGlvbjogMjAwLFxuICAgICAgZG9uZTogKCkgPT4ge1xuICAgICAgICAkKFwiW2NsYXNzKj1cXFwibGF5ZXItXFxcIl1cIikuY3NzKFwib3BhY2l0eVwiLCBcIlwiKS5jc3MoXCJ0cmFuc2Zvcm1cIiwgXCJcIik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjb21wb25lbnRXaWxsTW91bnQoKSB7XG4gICAgJChcIltjbGFzcyo9XFxcImxheWVyLVxcXCJdXCIpLmFkZENsYXNzKFwicHVibGljU2VydmVyc09wZW5cIikuYW5pbWF0ZSh7XG4gICAgICBvcGFjaXR5OiAwXG4gICAgfSwge1xuICAgICAgc3RlcDogZnVuY3Rpb24gKG5vdykge1xuICAgICAgICAkKHRoaXMpLmNzcyhcInRyYW5zZm9ybVwiLCBgc2NhbGUoJHswLjA3ICogbm93ICsgMC45M30pIHRyYW5zbGF0ZVooMHB4KWApO1xuICAgICAgfSxcbiAgICAgIGR1cmF0aW9uOiAyMDBcbiAgICB9KTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogXCJsYXllciBiZC1sYXllciBsYXllci0zUXJVZUdcIixcbiAgICAgIGlkOiB0aGlzLnByb3BzLmlkLFxuICAgICAgcmVmOiBcInJvb3RcIixcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgIHRyYW5zZm9ybTogXCJzY2FsZSgxLjEpIHRyYW5zbGF0ZVooMHB4KVwiXG4gICAgICB9XG4gICAgfSwgdGhpcy5wcm9wcy5jaGlsZHJlbik7XG4gIH1cblxufSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/react/layer.js\n");

/***/ }),

/***/ "./src/react/list.js":
/*!***************************!*\
  !*** ./src/react/list.js ***!
  \***************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_List; });\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n\nclass V2C_List extends _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n  }\n\n  render() {\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"ul\", {\n      className: this.props.className\n    }, this.props.children);\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcmVhY3QvbGlzdC5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0NvcmUvLi9zcmMvcmVhY3QvbGlzdC5qcz9lYmEyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCRFYyIGZyb20gXCIuLi92MlwiO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVjJDX0xpc3QgZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcInVsXCIsIHtcbiAgICAgIGNsYXNzTmFtZTogdGhpcy5wcm9wcy5jbGFzc05hbWVcbiAgICB9LCB0aGlzLnByb3BzLmNoaWxkcmVuKTtcbiAgfVxuXG59Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/react/list.js\n");

/***/ }),

/***/ "./src/react/pluginCard.js":
/*!*********************************!*\
  !*** ./src/react/pluginCard.js ***!
  \*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_PluginCard; });\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../0globals */ \"./src/0globals.js\");\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n/* harmony import */ var _pluginModule__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../pluginModule */ \"./src/pluginModule.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ \"./src/utils.js\");\n/* harmony import */ var _xSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./xSvg */ \"./src/react/xSvg.js\");\n/* harmony import */ var _reloadIcon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./reloadIcon */ \"./src/react/reloadIcon.js\");\n/* harmony import */ var _tooltipWrap__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./tooltipWrap */ \"./src/react/tooltipWrap.js\");\n\n\n\n\n\n\n\nclass V2C_PluginCard extends _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n    const self = this;\n    self.onChange = self.onChange.bind(self);\n    self.showSettings = self.showSettings.bind(self);\n    self.setInitialState();\n    self.hasSettings = typeof self.props.plugin.getSettingsPanel === \"function\";\n    self.settingsPanel = \"\";\n    this.reload = this.reload.bind(this);\n    this.onReload = this.onReload.bind(this);\n  }\n\n  setInitialState() {\n    this.state = {\n      checked: _0globals__WEBPACK_IMPORTED_MODULE_0__[\"pluginCookie\"][this.props.plugin.getName()],\n      settings: false,\n      reloads: 0\n    };\n  } // componentDidMount() {\n  //     BDEvents.on(\"plugin-reloaded\", this.onReload);\n  // }\n  // componentWillUnmount() {\n  //     BDEvents.off(\"plugin-reloaded\", this.onReload);\n  // }\n\n\n  onReload(pluginName) {\n    if (pluginName !== this.props.plugin.getName()) return;\n    this.setState({\n      reloads: this.state.reloads + 1\n    });\n  }\n\n  componentDidUpdate() {\n    if (this.state.settings) {\n      if (typeof this.settingsPanel === \"object\") {\n        this.refs.settingspanel.appendChild(this.settingsPanel);\n      }\n\n      if (!_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-3\"]) return;\n\n      const isHidden = (container, element) => {\n        const cTop = container.scrollTop;\n        const cBottom = cTop + container.clientHeight;\n        const eTop = element.offsetTop;\n        const eBottom = eTop + element.clientHeight;\n        return eTop < cTop || eBottom > cBottom;\n      };\n\n      const self = $(_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].reactDom.findDOMNode(this));\n      const container = self.parents(\".scroller\");\n      if (!isHidden(container[0], self[0])) return;\n      container.animate({\n        scrollTop: self.offset().top - container.offset().top + container.scrollTop() - 30\n      }, 300);\n    }\n  }\n\n  reload() {\n    const plugin = this.props.plugin.getName();\n    _pluginModule__WEBPACK_IMPORTED_MODULE_2__[\"default\"].reloadPlugin(plugin);\n    this.props.plugin = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][plugin].plugin;\n    this.onReload(this.props.plugin.getName());\n  }\n\n  getString(value) {\n    return typeof value == \"string\" ? value : value.toString();\n  }\n\n  makeLink(title, url) {\n    const props = {\n      className: \"bda-link bda-link-website\",\n      target: \"_blank\"\n    };\n    if (typeof url == \"string\") props.href = url;\n    if (typeof url == \"function\") props.onClick = event => {\n      event.preventDefault();\n      event.stopPropagation();\n      url();\n    };\n    return _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"a\", props, title);\n  }\n\n  render() {\n    const self = this;\n    const {\n      plugin\n    } = this.props;\n    const name = this.getString(plugin.getName());\n    const author = this.getString(plugin.getAuthor());\n    const description = this.getString(plugin.getDescription());\n    const version = this.getString(plugin.getVersion());\n    const meta = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][name];\n\n    if (this.state.settings) {\n      try {\n        self.settingsPanel = plugin.getSettingsPanel();\n      } catch (err) {\n        _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].err(\"Plugins\", \"Unable to get settings panel for \" + plugin.getName() + \".\", err);\n      }\n\n      return _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"li\", {\n        className: \"settings-open ui-switch-item\"\n      }, _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"div\", {\n        style: {\n          \"float\": \"right\",\n          \"cursor\": \"pointer\"\n        },\n        onClick: () => {\n          this.refs.settingspanel.innerHTML = \"\";\n          self.setState({\n            settings: false\n          });\n        }\n      }, _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(_xSvg__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null)), typeof self.settingsPanel === \"object\" && _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"div\", {\n        id: `plugin-settings-${name}`,\n        className: \"plugin-settings\",\n        ref: \"settingspanel\"\n      }), typeof self.settingsPanel !== \"object\" && _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"div\", {\n        id: `plugin-settings-${name}`,\n        className: \"plugin-settings\",\n        ref: \"settingspanel\",\n        dangerouslySetInnerHTML: {\n          __html: self.settingsPanel\n        }\n      }));\n    }\n\n    const links = [];\n    if (meta.website) links.push(this.makeLink(\"Website\", meta.website));\n    if (meta.source) links.push(this.makeLink(\"Source\", meta.source));\n\n    if (meta.invite) {\n      links.push(this.makeLink(\"Support Server\", () => {\n        const tester = /\\.gg\\/(.*)$/;\n        let code = meta.invite;\n        if (tester.test(code)) code = code.match(tester)[1];\n        _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].LayerStack.popLayer();\n        _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].InviteActions.acceptInviteAndTransitionToInviteChannel(code);\n      }));\n    }\n\n    if (meta.donate) links.push(this.makeLink(\"Donate\", meta.donate));\n    if (meta.patreon) links.push(this.makeLink(\"Patreon\", meta.patreon));\n    const authorProps = {\n      className: \"bda-author\"\n    };\n\n    if (meta.authorLink || meta.authorId) {\n      authorProps.className += ` ${_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].anchorClasses.anchor} ${_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].anchorClasses.anchorUnderlineOnHover}`;\n      authorProps.target = \"_blank\";\n      if (meta.authorLink) authorProps.href = meta.authorLink;\n      if (meta.authorId) authorProps.onClick = () => {\n        _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].LayerStack.popLayer();\n        _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].openDM(meta.authorId);\n      };\n    }\n\n    return _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"li\", {\n      \"data-name\": name,\n      \"data-version\": version,\n      \"className\": \"settings-closed ui-switch-item\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"div\", {\n      className: \"bda-header\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"span\", {\n      className: \"bda-header-title\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"span\", {\n      className: \"bda-name\"\n    }, name), \" v\", _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"span\", {\n      className: \"bda-version\"\n    }, version), \" by \", _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(meta.authorLink || meta.authorId ? \"a\" : \"span\", authorProps, author)), _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"div\", {\n      className: \"bda-controls\"\n    }, !_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-5\"] && _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(Object(_tooltipWrap__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(_reloadIcon__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n      color: \"black\",\n      side: \"top\",\n      text: \"Reload\"\n    }), {\n      className: \"bd-reload-card\",\n      onClick: this.reload\n    }), _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"label\", {\n      className: \"ui-switch-wrapper ui-flex-child\",\n      style: {\n        flex: \"0 0 auto\"\n      }\n    }, _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"input\", {\n      checked: this.state.checked,\n      onChange: this.onChange,\n      className: \"ui-switch-checkbox\",\n      type: \"checkbox\"\n    }), _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"div\", {\n      className: this.state.checked ? \"ui-switch checked\" : \"ui-switch\"\n    })))), _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"div\", {\n      className: \"bda-description-wrap scroller-wrap fade\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"div\", {\n      className: \"bda-description scroller\"\n    }, description)), (links.length || this.hasSettings) && _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"div\", {\n      className: \"bda-footer\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"span\", {\n      className: \"bda-links\"\n    }, ...links.map((element, index) => index < links.length - 1 ? [element, \" | \"] : element).flat()), this.hasSettings && _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"button\", {\n      onClick: this.showSettings,\n      className: \"bda-settings-button\",\n      disabled: !this.state.checked\n    }, \"Settings\")));\n  }\n\n  onChange() {\n    this.setState({\n      checked: !this.state.checked\n    });\n    _pluginModule__WEBPACK_IMPORTED_MODULE_2__[\"default\"].togglePlugin(this.props.plugin.getName());\n  }\n\n  showSettings() {\n    if (!this.hasSettings) return;\n    this.setState({\n      settings: true\n    });\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 12412 characters]\n//# sourceURL=webpack-internal:///./src/react/pluginCard.js\n");

/***/ }),

/***/ "./src/react/publicServers.js":
/*!************************************!*\
  !*** ./src/react/publicServers.js ***!
  \************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_PublicServers; });\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n/* harmony import */ var _tools__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tools */ \"./src/react/tools.js\");\n/* harmony import */ var _serverCard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./serverCard */ \"./src/react/serverCard.js\");\n/* harmony import */ var _sidebarView__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./sidebarView */ \"./src/react/sidebarView.js\");\n/* harmony import */ var _settingsTitle__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settingsTitle */ \"./src/react/settingsTitle.js\");\n/* harmony import */ var _tabBarSeparator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./tabBarSeparator */ \"./src/react/tabBarSeparator.js\");\n/* harmony import */ var _tabBarHeader__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./tabBarHeader */ \"./src/react/tabBarHeader.js\");\n/* harmony import */ var _tabBarItem__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./tabBarItem */ \"./src/react/tabBarItem.js\");\n\n\n\n\n\n\n\n\nclass V2C_PublicServers extends _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n    this.setInitialState();\n    this.close = this.close.bind(this);\n    this.changeCategory = this.changeCategory.bind(this);\n    this.search = this.search.bind(this);\n    this.searchKeyDown = this.searchKeyDown.bind(this);\n    this.checkConnection = this.checkConnection.bind(this);\n    this.join = this.join.bind(this);\n    this.connect = this.connect.bind(this);\n    this.GuildStore = _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].WebpackModules.findByUniqueProperties([\"getGuilds\"]);\n    this.AvatarDefaults = _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].WebpackModules.findByUniqueProperties([\"getUserAvatarURL\", \"DEFAULT_AVATARS\"]);\n    this.InviteActions = _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].WebpackModules.findByUniqueProperties([\"acceptInvite\"]);\n    this.SortedGuildStore = _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].WebpackModules.findByUniqueProperties([\"getSortedGuilds\"]);\n  }\n\n  componentDidMount() {\n    this.checkConnection();\n  }\n\n  setInitialState() {\n    this.state = {\n      selectedCategory: -1,\n      title: \"Loading...\",\n      loading: true,\n      servers: [],\n      next: null,\n      connection: {\n        state: 0,\n        user: null\n      }\n    };\n  }\n\n  close() {\n    _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactDom.unmountComponentAtNode(document.getElementById(this.props.rootId));\n  }\n\n  search(query, clear) {\n    const self = this;\n    $.ajax({\n      method: \"GET\",\n      url: `${self.endPoint}${query}${query ? \"&schema=new\" : \"?schema=new\"}`,\n      success: data => {\n        let servers = data.results.reduce((arr, server) => {\n          server.joined = false;\n          arr.push(server); // arr.push(<ServerCard server={server} join={self.join}/>);\n\n          return arr;\n        }, []);\n\n        if (!clear) {\n          servers = self.state.servers.concat(servers);\n        } else {//servers.unshift(self.bdServer);\n        }\n\n        let end = data.size + data.from;\n        data.next = `?from=${end}`;\n        if (self.state.term) data.next += `&term=${self.state.term}`;\n        if (self.state.selectedCategory) data.next += `&category=${self.categoryButtons[self.state.selectedCategory]}`;\n\n        if (end >= data.total) {\n          end = data.total;\n          data.next = null;\n        }\n\n        let title = `Showing 1-${end} of ${data.total} results in ${self.categoryButtons[self.state.selectedCategory]}`;\n        if (self.state.term) title += ` for ${self.state.term}`;\n        self.setState({\n          loading: false,\n          title: title,\n          servers: servers,\n          next: data.next\n        });\n\n        if (clear) {\n          //console.log(self);\n          self.refs.sbv.refs.contentScroller.scrollTop = 0;\n        }\n      },\n      error: () => {\n        self.setState({\n          loading: false,\n          title: \"Failed to load servers. Check console for details\"\n        });\n      }\n    });\n  }\n\n  join(serverCard) {\n    if (serverCard.props.pinned) return this.InviteActions.acceptInvite(serverCard.props.invite_code);\n    $.ajax({\n      method: \"GET\",\n      url: `${this.joinEndPoint}/${serverCard.props.server.identifier}`,\n      headers: {\n        \"Accept\": \"application/json;\",\n        \"Content-Type\": \"application/json;\",\n        \"x-discord-token\": this.state.connection.user.accessToken\n      },\n      crossDomain: true,\n      xhrFields: {\n        withCredentials: true\n      },\n      success: () => {\n        serverCard.setState({\n          joined: true\n        });\n      }\n    });\n  }\n\n  connect() {\n    const self = this;\n    const options = self.windowOptions;\n    options.x = Math.round(window.screenX + window.innerWidth / 2 - options.width / 2);\n    options.y = Math.round(window.screenY + window.innerHeight / 2 - options.height / 2);\n    self.joinWindow = new (window.require(\"electron\").remote.BrowserWindow)(options);\n    const url = \"https://auth.discordservers.com/connect?scopes=guilds.join&previousUrl=https://auth.discordservers.com/info\";\n    self.joinWindow.webContents.on(\"did-navigate\", (event, url) => {\n      if (url != \"https://auth.discordservers.com/info\") return;\n      self.joinWindow.close();\n      self.checkConnection();\n    });\n    self.joinWindow.loadURL(url);\n  }\n\n  get windowOptions() {\n    return {\n      width: 500,\n      height: 550,\n      backgroundColor: \"#282b30\",\n      show: true,\n      resizable: false,\n      maximizable: false,\n      minimizable: false,\n      alwaysOnTop: true,\n      frame: false,\n      center: false,\n      webPreferences: {\n        nodeIntegration: false\n      }\n    };\n  }\n\n  get bdServer() {\n    const server = {\n      name: \"BetterDiscord\",\n      online: \"7500+\",\n      members: \"20000+\",\n      categories: [\"community\", \"programming\", \"support\"],\n      description: \"Official BetterDiscord server for support etc\",\n      identifier: \"86004744966914048\",\n      iconUrl: \"https://cdn.discordapp.com/icons/86004744966914048/292e7f6bfff2b71dfd13e508a859aedd.webp\",\n      nativejoin: true,\n      invite_code: \"0Tmfo5ZbORCRqbAd\",\n      pinned: true\n    };\n    const guildList = this.SortedGuildStore.getFlattenedGuildIds();\n    const defaultList = this.AvatarDefaults.DEFAULT_AVATARS;\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(_serverCard__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n      server: server,\n      pinned: true,\n      join: this.join,\n      guildList: guildList,\n      fallback: defaultList[Math.floor(Math.random() * 5)]\n    });\n  }\n\n  get endPoint() {\n    return \"https://search.discordservers.com\";\n  }\n\n  get joinEndPoint() {\n    return \"https://j.discordservers.com\";\n  }\n\n  get connectEndPoint() {\n    return \"https://join.discordservers.com/connect\";\n  }\n\n  checkConnection() {\n    const self = this;\n\n    try {\n      $.ajax({\n        method: \"GET\",\n        url: `https://auth.discordservers.com/info`,\n        headers: {\n          \"Accept\": \"application/json;\",\n          \"Content-Type\": \"application/json;\"\n        },\n        crossDomain: true,\n        xhrFields: {\n          withCredentials: true\n        },\n        success: data => {\n          // Utils.log(\"PublicServer\", \"Got data: \" + JSON.stringify(data));\n          self.setState({\n            selectedCategory: 0,\n            connection: {\n              state: 2,\n              user: data\n            }\n          });\n          self.search(\"\", true);\n        },\n        error: () => {\n          self.setState({\n            title: \"Not connected to discordservers.com!\",\n            loading: true,\n            selectedCategory: -1,\n            connection: {\n              state: 1,\n              user: null\n            }\n          });\n        }\n      });\n    } catch (error) {\n      self.setState({\n        title: \"Not connected to discordservers.com!\",\n        loading: true,\n        selectedCategory: -1,\n        connection: {\n          state: 1,\n          user: null\n        }\n      });\n    }\n  }\n\n  render() {\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(_sidebarView__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n      ref: \"sbv\",\n      children: this.component\n    });\n  }\n\n  get component() {\n    return {\n      sidebar: {\n        component: this.sidebar\n      },\n      content: {\n        component: this.content\n      },\n      tools: {\n        component: _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(_tools__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n          key: \"pt\",\n          ref: \"tools\",\n          onClick: this.close\n        })\n      }\n    };\n  }\n\n  get sidebar() {\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"sidebar\",\n      key: \"ps\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"ui-tab-bar SIDE\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"ui-tab-bar-header\",\n      style: {\n        fontSize: \"16px\"\n      }\n    }, \"Public Servers\"), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(_tabBarSeparator__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null), this.searchInput, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(_tabBarSeparator__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(_tabBarHeader__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n      text: \"Categories\"\n    }), this.categoryButtons.map((value, index) => {\n      return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(_tabBarItem__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n        id: index,\n        onClick: this.changeCategory,\n        key: index,\n        text: value,\n        selected: this.state.selectedCategory === index\n      });\n    }), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(_tabBarSeparator__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null), this.footer, this.connection));\n  }\n\n  get searchInput() {\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"ui-form-item\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"ui-text-input flex-vertical\",\n      style: {\n        width: \"172px\",\n        marginLeft: \"10px\"\n      }\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"input\", {\n      ref: \"searchinput\",\n      onKeyDown: this.searchKeyDown,\n      onChange: () => {},\n      type: \"text\",\n      className: \"input default\",\n      placeholder: \"Search...\",\n      maxLength: \"50\"\n    })));\n  }\n\n  searchKeyDown(e) {\n    const self = this;\n    if (self.state.loading || e.which !== 13) return;\n    self.setState({\n      loading: true,\n      title: \"Loading...\",\n      term: e.target.value\n    });\n    let query = `?term=${e.target.value}`;\n\n    if (self.state.selectedCategory !== 0) {\n      query += `&category=${self.categoryButtons[self.state.selectedCategory]}`;\n    }\n\n    self.search(query, true);\n  }\n\n  get categoryButtons() {\n    return [\"All\", \"FPS Games\", \"MMO Games\", \"Strategy Games\", \"MOBA Games\", \"RPG Games\", \"Tabletop Games\", \"Sandbox Games\", \"Simulation Games\", \"Music\", \"Community\", \"Language\", \"Programming\", \"Other\"];\n  }\n\n  changeCategory(id) {\n    const self = this;\n    if (self.state.loading) return;\n    self.refs.searchinput.value = \"\";\n    self.setState({\n      loading: true,\n      selectedCategory: id,\n      title: \"Loading...\",\n      term: null\n    });\n\n    if (id === 0) {\n      self.search(\"\", true);\n      return;\n    }\n\n    self.search(`?category=${self.categoryButtons[id]}`, true);\n  }\n\n  get content() {\n    const self = this;\n    const guildList = this.SortedGuildStore.getFlattenedGuildIds();\n    const defaultList = this.AvatarDefaults.DEFAULT_AVATARS;\n    if (self.state.connection.state === 1) return self.notConnected;\n    return [_v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      ref: \"content\",\n      key: \"pc\",\n      className: \"contentColumn-2hrIYH contentColumnDefault-1VQkGM content-column default\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(_settingsTitle__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n      text: self.state.title\n    }), self.bdServer, self.state.servers.map(server => {\n      return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(_serverCard__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n        key: server.identifier,\n        server: server,\n        join: self.join,\n        guildList: guildList,\n        fallback: defaultList[Math.floor(Math.random() * 5)]\n      });\n    }), self.state.next && _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"button\", {\n      type: \"button\",\n      onClick: () => {\n        if (self.state.loading) return;\n        self.setState({\n          loading: true\n        });\n        self.search(self.state.next, false);\n      },\n      className: \"ui-button filled brand small grow\",\n      style: {\n        width: \"100%\",\n        marginTop: \"10px\",\n        marginBottom: \"10px\"\n      }\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"ui-button-contents\"\n    }, self.state.loading ? \"Loading\" : \"Load More\")), self.state.servers.length > 0 && _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(_settingsTitle__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n      text: self.state.title\n    }))];\n  }\n\n  get notConnected() {\n    const self = this; //return BDV2.react.createElement(SettingsTitle, { text: self.state.title });\n\n    return [_v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      key: \"ncc\",\n      ref: \"content\",\n      className: \"contentColumn-2hrIYH contentColumnDefault-1VQkGM content-column default\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"h2\", {\n      className: \"ui-form-title h2 margin-reset margin-bottom-20\"\n    }, \"Not connected to discordservers.com!\", _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"button\", {\n      onClick: self.connect,\n      type: \"button\",\n      className: \"ui-button filled brand small grow\",\n      style: {\n        display: \"inline-block\",\n        minHeight: \"18px\",\n        marginLeft: \"10px\",\n        lineHeight: \"14px\"\n      }\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"ui-button-contents\"\n    }, \"Connect\"))), self.bdServer)];\n  }\n\n  get footer() {\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"ui-tab-bar-header\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"a\", {\n      href: \"https://discordservers.com\",\n      target: \"_blank\"\n    }, \"Discordservers.com\"));\n  }\n\n  get connection() {\n    const self = this;\n    const {\n      connection\n    } = self.state;\n    if (connection.state !== 2) return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"span\", null);\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"span\", null, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(_tabBarSeparator__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"span\", {\n      style: {\n        color: \"#b9bbbe\",\n        fontSize: \"10px\",\n        marginLeft: \"10px\"\n      }\n    }, \"Connected as: \", `${connection.user.username}#${connection.user.discriminator}`), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      style: {\n        padding: \"5px 10px 0 10px\"\n      }\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"button\", {\n      style: {\n        width: \"100%\",\n        minHeight: \"20px\"\n      },\n      type: \"button\",\n      className: \"ui-button filled brand small grow\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"ui-button-contents\",\n      onClick: self.connect\n    }, \"Reconnect\"))));\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 22120 characters]\n//# sourceURL=webpack-internal:///./src/react/publicServers.js\n");

/***/ }),

/***/ "./src/react/reloadIcon.js":
/*!*********************************!*\
  !*** ./src/react/reloadIcon.js ***!
  \*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_ReloadIcon; });\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n\nclass V2C_ReloadIcon extends _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n  }\n\n  render() {\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"svg\", {\n      xmlns: \"http://www.w3.org/2000/svg\",\n      viewBox: \"0 0 24 24\",\n      fill: \"#dcddde\",\n      className: \"bd-reload \" + this.props.className,\n      onClick: this.props.onClick,\n      style: {\n        width: this.props.size || \"24px\",\n        height: this.props.size || \"24px\"\n      }\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"path\", {\n      d: \"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z\"\n    }), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"path\", {\n      fill: \"none\",\n      d: \"M0 0h24v24H0z\"\n    }));\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcmVhY3QvcmVsb2FkSWNvbi5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0NvcmUvLi9zcmMvcmVhY3QvcmVsb2FkSWNvbi5qcz9mNDY4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCRFYyIGZyb20gXCIuLi92MlwiO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVjJDX1JlbG9hZEljb24gZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCB7XG4gICAgICB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFxuICAgICAgdmlld0JveDogXCIwIDAgMjQgMjRcIixcbiAgICAgIGZpbGw6IFwiI2RjZGRkZVwiLFxuICAgICAgY2xhc3NOYW1lOiBcImJkLXJlbG9hZCBcIiArIHRoaXMucHJvcHMuY2xhc3NOYW1lLFxuICAgICAgb25DbGljazogdGhpcy5wcm9wcy5vbkNsaWNrLFxuICAgICAgc3R5bGU6IHtcbiAgICAgICAgd2lkdGg6IHRoaXMucHJvcHMuc2l6ZSB8fCBcIjI0cHhcIixcbiAgICAgICAgaGVpZ2h0OiB0aGlzLnByb3BzLnNpemUgfHwgXCIyNHB4XCJcbiAgICAgIH1cbiAgICB9LCBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICAgIGQ6IFwiTTE3LjY1IDYuMzVDMTYuMiA0LjkgMTQuMjEgNCAxMiA0Yy00LjQyIDAtNy45OSAzLjU4LTcuOTkgOHMzLjU3IDggNy45OSA4YzMuNzMgMCA2Ljg0LTIuNTUgNy43My02aC0yLjA4Yy0uODIgMi4zMy0zLjA0IDQtNS42NSA0LTMuMzEgMC02LTIuNjktNi02czIuNjktNiA2LTZjMS42NiAwIDMuMTQuNjkgNC4yMiAxLjc4TDEzIDExaDdWNGwtMi4zNSAyLjM1elwiXG4gICAgfSksIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgICAgZmlsbDogXCJub25lXCIsXG4gICAgICBkOiBcIk0wIDBoMjR2MjRIMHpcIlxuICAgIH0pKTtcbiAgfVxuXG59Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/react/reloadIcon.js\n");

/***/ }),

/***/ "./src/react/scroller.js":
/*!*******************************!*\
  !*** ./src/react/scroller.js ***!
  \*******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_Scroller; });\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n\nclass V2C_Scroller extends _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n  }\n\n  render() {\n    //scrollerWrap-2lJEkd scrollerThemed-2oenus themeGhostHairline-DBD-2d scrollerFade-1Ijw5y\n    let wrapperClass = `scrollerWrap-2lJEkd scrollerThemed-2oenus themeGhostHairline-DBD-2d${this.props.fade ? \" scrollerFade-1Ijw5y\" : \"\"}`;\n    let scrollerClass = \"scroller-2FKFPG scroller\";\n    /* fuck */\n\n    if (this.props.sidebar) scrollerClass = \"scroller-2FKFPG firefoxFixScrollFlex-cnI2ix sidebarRegionScroller-3MXcoP sidebar-region-scroller scroller\";\n\n    if (this.props.contentColumn) {\n      scrollerClass = \"scroller-2FKFPG firefoxFixScrollFlex-cnI2ix contentRegionScroller-26nc1e content-region-scroller scroller\";\n      /* fuck */\n\n      wrapperClass = \"scrollerWrap-2lJEkd firefoxFixScrollFlex-cnI2ix contentRegionScrollerWrap-3YZXdm content-region-scroller-wrap scrollerThemed-2oenus themeGhost-28MSn0 scrollerTrack-1ZIpsv\";\n    }\n\n    const {\n      children\n    } = this.props;\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      key: \"scrollerwrap\",\n      className: wrapperClass\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      key: \"scroller\",\n      ref: \"scroller\",\n      className: scrollerClass\n    }, children));\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcmVhY3Qvc2Nyb2xsZXIuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3Njcm9sbGVyLmpzPzFjZWIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJEVjIgZnJvbSBcIi4uL3YyXCI7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWMkNfU2Nyb2xsZXIgZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgLy9zY3JvbGxlcldyYXAtMmxKRWtkIHNjcm9sbGVyVGhlbWVkLTJvZW51cyB0aGVtZUdob3N0SGFpcmxpbmUtREJELTJkIHNjcm9sbGVyRmFkZS0xSWp3NXlcbiAgICBsZXQgd3JhcHBlckNsYXNzID0gYHNjcm9sbGVyV3JhcC0ybEpFa2Qgc2Nyb2xsZXJUaGVtZWQtMm9lbnVzIHRoZW1lR2hvc3RIYWlybGluZS1EQkQtMmQke3RoaXMucHJvcHMuZmFkZSA/IFwiIHNjcm9sbGVyRmFkZS0xSWp3NXlcIiA6IFwiXCJ9YDtcbiAgICBsZXQgc2Nyb2xsZXJDbGFzcyA9IFwic2Nyb2xsZXItMkZLRlBHIHNjcm9sbGVyXCI7XG4gICAgLyogZnVjayAqL1xuXG4gICAgaWYgKHRoaXMucHJvcHMuc2lkZWJhcikgc2Nyb2xsZXJDbGFzcyA9IFwic2Nyb2xsZXItMkZLRlBHIGZpcmVmb3hGaXhTY3JvbGxGbGV4LWNuSTJpeCBzaWRlYmFyUmVnaW9uU2Nyb2xsZXItM01YY29QIHNpZGViYXItcmVnaW9uLXNjcm9sbGVyIHNjcm9sbGVyXCI7XG5cbiAgICBpZiAodGhpcy5wcm9wcy5jb250ZW50Q29sdW1uKSB7XG4gICAgICBzY3JvbGxlckNsYXNzID0gXCJzY3JvbGxlci0yRktGUEcgZmlyZWZveEZpeFNjcm9sbEZsZXgtY25JMml4IGNvbnRlbnRSZWdpb25TY3JvbGxlci0yNm5jMWUgY29udGVudC1yZWdpb24tc2Nyb2xsZXIgc2Nyb2xsZXJcIjtcbiAgICAgIC8qIGZ1Y2sgKi9cblxuICAgICAgd3JhcHBlckNsYXNzID0gXCJzY3JvbGxlcldyYXAtMmxKRWtkIGZpcmVmb3hGaXhTY3JvbGxGbGV4LWNuSTJpeCBjb250ZW50UmVnaW9uU2Nyb2xsZXJXcmFwLTNZWlhkbSBjb250ZW50LXJlZ2lvbi1zY3JvbGxlci13cmFwIHNjcm9sbGVyVGhlbWVkLTJvZW51cyB0aGVtZUdob3N0LTI4TVNuMCBzY3JvbGxlclRyYWNrLTFaSXBzdlwiO1xuICAgIH1cblxuICAgIGNvbnN0IHtcbiAgICAgIGNoaWxkcmVuXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBrZXk6IFwic2Nyb2xsZXJ3cmFwXCIsXG4gICAgICBjbGFzc05hbWU6IHdyYXBwZXJDbGFzc1xuICAgIH0sIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBrZXk6IFwic2Nyb2xsZXJcIixcbiAgICAgIHJlZjogXCJzY3JvbGxlclwiLFxuICAgICAgY2xhc3NOYW1lOiBzY3JvbGxlckNsYXNzXG4gICAgfSwgY2hpbGRyZW4pKTtcbiAgfVxuXG59Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/react/scroller.js\n");

/***/ }),

/***/ "./src/react/sectionedSettingsPanel.js":
/*!*********************************************!*\
  !*** ./src/react/sectionedSettingsPanel.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_SectionedSettingsPanel; });\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n/* harmony import */ var _settingsGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settingsGroup */ \"./src/react/settingsGroup.js\");\n\n\nclass V2C_SectionedSettingsPanel extends _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n  }\n\n  render() {\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"contentColumn-2hrIYH contentColumnDefault-1VQkGM content-column default\"\n    }, this.props.sections.map(section => {\n      return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(_settingsGroup__WEBPACK_IMPORTED_MODULE_1__[\"default\"], Object.assign({}, section, {\n        onChange: this.props.onChange\n      }));\n    }));\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcmVhY3Qvc2VjdGlvbmVkU2V0dGluZ3NQYW5lbC5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0NvcmUvLi9zcmMvcmVhY3Qvc2VjdGlvbmVkU2V0dGluZ3NQYW5lbC5qcz84ZGI5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCRFYyIGZyb20gXCIuLi92MlwiO1xuaW1wb3J0IFNldHRpbmdzR3JvdXAgZnJvbSBcIi4vc2V0dGluZ3NHcm91cFwiO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVjJDX1NlY3Rpb25lZFNldHRpbmdzUGFuZWwgZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwiY29udGVudENvbHVtbi0yaHJJWUggY29udGVudENvbHVtbkRlZmF1bHQtMVZRa0dNIGNvbnRlbnQtY29sdW1uIGRlZmF1bHRcIlxuICAgIH0sIHRoaXMucHJvcHMuc2VjdGlvbnMubWFwKHNlY3Rpb24gPT4ge1xuICAgICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChTZXR0aW5nc0dyb3VwLCBPYmplY3QuYXNzaWduKHt9LCBzZWN0aW9uLCB7XG4gICAgICAgIG9uQ2hhbmdlOiB0aGlzLnByb3BzLm9uQ2hhbmdlXG4gICAgICB9KSk7XG4gICAgfSkpO1xuICB9XG5cbn0iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/react/sectionedSettingsPanel.js\n");

/***/ }),

/***/ "./src/react/serverCard.js":
/*!*********************************!*\
  !*** ./src/react/serverCard.js ***!
  \*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_ServerCard; });\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n\nclass V2C_ServerCard extends _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n    if (!this.props.server.iconUrl) this.props.server.iconUrl = this.props.fallback;\n    this.state = {\n      imageError: false,\n      joined: this.props.guildList.includes(this.props.server.identifier)\n    };\n  }\n\n  render() {\n    const {\n      server\n    } = this.props;\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", // cardPrimary-1Hv-to\n    {\n      className: `card-3Qj_Yx cardPrimary-1Hv-to marginBottom8-AtZOdT bd-server-card${server.pinned ? \" bd-server-card-pinned\" : \"\"}`\n    }, // BDV2.react.createElement(\n    // \"div\",\n    // { className: \"flex-1xMQg5 flex-1O1GKY horizontal-1ae9ci horizontal-2EEEnY flex-1O1GKY directionRow-3v3tfG justifyStart-2yIZo0 alignStretch-1hwxMa noWrap-3jynv6\" },\n    _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"img\", {\n      ref: \"img\",\n      className: \"bd-server-image\",\n      src: server.iconUrl,\n      onError: this.handleError.bind(this)\n    }), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"flexChild-faoVW3 bd-server-content\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"flex-1xMQg5 flex-1O1GKY horizontal-1ae9ci horizontal-2EEEnY directionRow-3v3tfG noWrap-3jynv6 bd-server-header\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"h5\", {\n      className: \"h5-18_1nd defaultColor-1_ajX0 margin-reset bd-server-name\"\n    }, server.name), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"h5\", {\n      className: \"h5-18_1nd defaultColor-1_ajX0 margin-reset bd-server-member-count\"\n    }, server.members, \" Members\")), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"flex-1xMQg5 flex-1O1GKY horizontal-1ae9ci horizontal-2EEEnY directionRow-3v3tfG noWrap-3jynv6\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"scrollerWrap-2lJEkd scrollerThemed-2oenus themeGhostHairline-DBD-2d scrollerFade-1Ijw5y bd-server-description-container\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"scroller-2FKFPG scroller bd-server-description\"\n    }, server.description))), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"flex-1xMQg5 flex-1O1GKY horizontal-1ae9ci horizontal-2EEEnY directionRow-3v3tfG noWrap-3jynv6 bd-server-footer\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"flexChild-faoVW3 bd-server-tags\",\n      style: {\n        flex: \"1 1 auto\"\n      }\n    }, server.categories.join(\", \")), this.state.joined && _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"button\", {\n      type: \"button\",\n      className: \"button-38aScr lookFilled-1Gx00P colorBrand-3pXr91 sizeMin-1mJd1x grow-q77ONN colorGreen-29iAKY\",\n      style: {\n        minHeight: \"12px\",\n        marginTop: \"4px\",\n        backgroundColor: \"#3ac15c\"\n      }\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"ui-button-contents\"\n    }, \"Joined\")), server.error && _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"button\", {\n      type: \"button\",\n      className: \"button-38aScr lookFilled-1Gx00P colorBrand-3pXr91 sizeMin-1mJd1x grow-q77ONN disabled-9aF2ug\",\n      style: {\n        minHeight: \"12px\",\n        marginTop: \"4px\",\n        backgroundColor: \"#c13a3a\"\n      }\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"ui-button-contents\"\n    }, \"Error\")), !server.error && !this.state.joined && _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"button\", {\n      type: \"button\",\n      className: \"button-38aScr lookFilled-1Gx00P colorBrand-3pXr91 sizeMin-1mJd1x grow-q77ONN\",\n      style: {\n        minHeight: \"12px\",\n        marginTop: \"4px\"\n      },\n      onClick: () => {\n        this.join();\n      }\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"ui-button-contents\"\n    }, \"Join\")))) // )\n    );\n  }\n\n  handleError() {\n    this.props.server.iconUrl = this.props.fallback;\n    this.setState({\n      imageError: true\n    });\n  }\n\n  join() {\n    this.props.join(this); //this.setState({joined: true});\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 6216 characters]\n//# sourceURL=webpack-internal:///./src/react/serverCard.js\n");

/***/ }),

/***/ "./src/react/settingsGroup.js":
/*!************************************!*\
  !*** ./src/react/settingsGroup.js ***!
  \************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_SettingsGroup; });\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../0globals */ \"./src/0globals.js\");\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n/* harmony import */ var _settingsTitle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settingsTitle */ \"./src/react/settingsTitle.js\");\n/* harmony import */ var _switch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./switch */ \"./src/react/switch.js\");\n\n\n\n\nclass V2C_SettingsGroup extends _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n  }\n\n  render() {\n    const {\n      title,\n      settings,\n      button\n    } = this.props;\n    const buttonComponent = button ? _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"button\", {\n      key: \"title-button\",\n      className: \"bd-pfbtn\",\n      onClick: button.onClick\n    }, button.title) : null;\n    return [_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(_settingsTitle__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n      text: title\n    }), buttonComponent, settings.map(setting => {\n      return _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(_switch__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n        id: setting.id,\n        key: setting.id,\n        data: setting,\n        checked: _0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][setting.id],\n        onChange: (id, checked) => {\n          this.props.onChange(id, checked);\n        }\n      });\n    })];\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcmVhY3Qvc2V0dGluZ3NHcm91cC5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0NvcmUvLi9zcmMvcmVhY3Qvc2V0dGluZ3NHcm91cC5qcz9mMjE2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNldHRpbmdzQ29va2llIH0gZnJvbSBcIi4uLzBnbG9iYWxzXCI7XG5pbXBvcnQgQkRWMiBmcm9tIFwiLi4vdjJcIjtcbmltcG9ydCBTZXR0aW5nc1RpdGxlIGZyb20gXCIuL3NldHRpbmdzVGl0bGVcIjtcbmltcG9ydCBTd2l0Y2ggZnJvbSBcIi4vc3dpdGNoXCI7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWMkNfU2V0dGluZ3NHcm91cCBleHRlbmRzIEJEVjIucmVhY3RDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB0aXRsZSxcbiAgICAgIHNldHRpbmdzLFxuICAgICAgYnV0dG9uXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgYnV0dG9uQ29tcG9uZW50ID0gYnV0dG9uID8gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIHtcbiAgICAgIGtleTogXCJ0aXRsZS1idXR0b25cIixcbiAgICAgIGNsYXNzTmFtZTogXCJiZC1wZmJ0blwiLFxuICAgICAgb25DbGljazogYnV0dG9uLm9uQ2xpY2tcbiAgICB9LCBidXR0b24udGl0bGUpIDogbnVsbDtcbiAgICByZXR1cm4gW0JEVjIucmVhY3QuY3JlYXRlRWxlbWVudChTZXR0aW5nc1RpdGxlLCB7XG4gICAgICB0ZXh0OiB0aXRsZVxuICAgIH0pLCBidXR0b25Db21wb25lbnQsIHNldHRpbmdzLm1hcChzZXR0aW5nID0+IHtcbiAgICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoU3dpdGNoLCB7XG4gICAgICAgIGlkOiBzZXR0aW5nLmlkLFxuICAgICAgICBrZXk6IHNldHRpbmcuaWQsXG4gICAgICAgIGRhdGE6IHNldHRpbmcsXG4gICAgICAgIGNoZWNrZWQ6IHNldHRpbmdzQ29va2llW3NldHRpbmcuaWRdLFxuICAgICAgICBvbkNoYW5nZTogKGlkLCBjaGVja2VkKSA9PiB7XG4gICAgICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZShpZCwgY2hlY2tlZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pXTtcbiAgfVxuXG59Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/react/settingsGroup.js\n");

/***/ }),

/***/ "./src/react/settingsPanel.js":
/*!************************************!*\
  !*** ./src/react/settingsPanel.js ***!
  \************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_SettingsPanel; });\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../0globals */ \"./src/0globals.js\");\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n/* harmony import */ var _settingsTitle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settingsTitle */ \"./src/react/settingsTitle.js\");\n/* harmony import */ var _switch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./switch */ \"./src/react/switch.js\");\n\n\n\n\nclass V2C_SettingsPanel extends _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n  }\n\n  render() {\n    const {\n      settings\n    } = this.props;\n    return _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"div\", {\n      className: \"contentColumn-2hrIYH contentColumnDefault-1VQkGM content-column default\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(_settingsTitle__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n      text: this.props.title\n    }), this.props.button && _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"button\", {\n      key: \"title-button\",\n      className: \"bd-pfbtn\",\n      onClick: this.props.button.onClick\n    }, this.props.button.title), settings.map(setting => {\n      return _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(_switch__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n        id: setting.id,\n        key: setting.id,\n        data: setting,\n        checked: _0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][setting.id],\n        onChange: (id, checked) => {\n          this.props.onChange(id, checked);\n        }\n      });\n    }));\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcmVhY3Qvc2V0dGluZ3NQYW5lbC5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0NvcmUvLi9zcmMvcmVhY3Qvc2V0dGluZ3NQYW5lbC5qcz8wMzljIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNldHRpbmdzQ29va2llIH0gZnJvbSBcIi4uLzBnbG9iYWxzXCI7XG5pbXBvcnQgQkRWMiBmcm9tIFwiLi4vdjJcIjtcbmltcG9ydCBTZXR0aW5nc1RpdGxlIGZyb20gXCIuL3NldHRpbmdzVGl0bGVcIjtcbmltcG9ydCBTd2l0Y2ggZnJvbSBcIi4vc3dpdGNoXCI7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWMkNfU2V0dGluZ3NQYW5lbCBleHRlbmRzIEJEVjIucmVhY3RDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBzZXR0aW5nc1xuICAgIH0gPSB0aGlzLnByb3BzO1xuICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgY2xhc3NOYW1lOiBcImNvbnRlbnRDb2x1bW4tMmhySVlIIGNvbnRlbnRDb2x1bW5EZWZhdWx0LTFWUWtHTSBjb250ZW50LWNvbHVtbiBkZWZhdWx0XCJcbiAgICB9LCBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NUaXRsZSwge1xuICAgICAgdGV4dDogdGhpcy5wcm9wcy50aXRsZVxuICAgIH0pLCB0aGlzLnByb3BzLmJ1dHRvbiAmJiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwge1xuICAgICAga2V5OiBcInRpdGxlLWJ1dHRvblwiLFxuICAgICAgY2xhc3NOYW1lOiBcImJkLXBmYnRuXCIsXG4gICAgICBvbkNsaWNrOiB0aGlzLnByb3BzLmJ1dHRvbi5vbkNsaWNrXG4gICAgfSwgdGhpcy5wcm9wcy5idXR0b24udGl0bGUpLCBzZXR0aW5ncy5tYXAoc2V0dGluZyA9PiB7XG4gICAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFN3aXRjaCwge1xuICAgICAgICBpZDogc2V0dGluZy5pZCxcbiAgICAgICAga2V5OiBzZXR0aW5nLmlkLFxuICAgICAgICBkYXRhOiBzZXR0aW5nLFxuICAgICAgICBjaGVja2VkOiBzZXR0aW5nc0Nvb2tpZVtzZXR0aW5nLmlkXSxcbiAgICAgICAgb25DaGFuZ2U6IChpZCwgY2hlY2tlZCkgPT4ge1xuICAgICAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UoaWQsIGNoZWNrZWQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KSk7XG4gIH1cblxufSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/react/settingsPanel.js\n");

/***/ }),

/***/ "./src/react/settingsTitle.js":
/*!************************************!*\
  !*** ./src/react/settingsTitle.js ***!
  \************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_SettingsTitle; });\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n\nclass V2C_SettingsTitle extends _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n  } //h2-2gWE-o title-3sZWYQ size16-14cGz5 height20-mO2eIN weightSemiBold-NJexzi da-h2 da-title da-size16 da-height20 da-weightSemiBold defaultColor-1_ajX0 da-defaultColor marginTop60-3PGbtK da-marginTop60 marginBottom20-32qID7 da-marginBottom20\n\n\n  render() {\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"h2\", {\n      className: \"ui-form-title h2 margin-reset margin-bottom-20 marginTop60-3PGbtK da-marginTop6\"\n    }, this.props.text);\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcmVhY3Qvc2V0dGluZ3NUaXRsZS5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0NvcmUvLi9zcmMvcmVhY3Qvc2V0dGluZ3NUaXRsZS5qcz81ZTAxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCRFYyIGZyb20gXCIuLi92MlwiO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVjJDX1NldHRpbmdzVGl0bGUgZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH0gLy9oMi0yZ1dFLW8gdGl0bGUtM3NaV1lRIHNpemUxNi0xNGNHejUgaGVpZ2h0MjAtbU8yZUlOIHdlaWdodFNlbWlCb2xkLU5KZXh6aSBkYS1oMiBkYS10aXRsZSBkYS1zaXplMTYgZGEtaGVpZ2h0MjAgZGEtd2VpZ2h0U2VtaUJvbGQgZGVmYXVsdENvbG9yLTFfYWpYMCBkYS1kZWZhdWx0Q29sb3IgbWFyZ2luVG9wNjAtM1BHYnRLIGRhLW1hcmdpblRvcDYwIG1hcmdpbkJvdHRvbTIwLTMycUlENyBkYS1tYXJnaW5Cb3R0b20yMFxuXG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJoMlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwidWktZm9ybS10aXRsZSBoMiBtYXJnaW4tcmVzZXQgbWFyZ2luLWJvdHRvbS0yMCBtYXJnaW5Ub3A2MC0zUEdidEsgZGEtbWFyZ2luVG9wNlwiXG4gICAgfSwgdGhpcy5wcm9wcy50ZXh0KTtcbiAgfVxuXG59Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/react/settingsTitle.js\n");

/***/ }),

/***/ "./src/react/sidebar.js":
/*!******************************!*\
  !*** ./src/react/sidebar.js ***!
  \******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_SideBar; });\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n/* harmony import */ var _tabBarSeparator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tabBarSeparator */ \"./src/react/tabBarSeparator.js\");\n/* harmony import */ var _tabBarHeader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tabBarHeader */ \"./src/react/tabBarHeader.js\");\n/* harmony import */ var _tabBarItem__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tabBarItem */ \"./src/react/tabBarItem.js\");\n\n\n\n\nclass V2C_SideBar extends _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n    const self = this;\n    const si = $(\"[class*=side-] > [class*=selected]\");\n    if (si.length) self.scn = si.attr(\"class\");\n    const ns = $(\"[class*=side-] > [class*='item-']:not([class*=selected])\");\n    if (ns.length) self.nscn = ns.attr(\"class\");\n    $(\"[class*='side-'] > [class*='item-']\").on(\"click\", () => {\n      self.setState({\n        selected: null\n      });\n    });\n    self.setInitialState();\n    self.onClick = self.onClick.bind(self);\n  }\n\n  setInitialState() {\n    const self = this;\n    self.state = {\n      selected: null,\n      items: self.props.items\n    };\n    const initialSelection = self.props.items.find(item => {\n      return item.selected;\n    });\n\n    if (initialSelection) {\n      self.state.selected = initialSelection.id;\n    }\n  }\n\n  render() {\n    const self = this;\n    const {\n      headerText\n    } = self.props;\n    const {\n      items,\n      selected\n    } = self.state;\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", null, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(_tabBarSeparator__WEBPACK_IMPORTED_MODULE_1__[\"default\"], null), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(_tabBarHeader__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n      text: headerText\n    }), items.map(item => {\n      const {\n        id,\n        text\n      } = item;\n      return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(_tabBarItem__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n        key: id,\n        selected: selected === id,\n        text: text,\n        id: id,\n        onClick: self.onClick\n      });\n    }));\n  }\n\n  onClick(id) {\n    const self = this;\n    const si = $(\"[class*=side] > [class*=selected]\");\n\n    if (si.length) {\n      si.off(\"click.bdsb\").on(\"click.bsb\", e => {\n        $(e.target).attr(\"class\", self.scn);\n      });\n      si.attr(\"class\", self.nscn);\n    }\n\n    self.setState({\n      selected: null\n    });\n    self.setState({\n      selected: id\n    });\n    if (self.props.onClick) self.props.onClick(id);\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcmVhY3Qvc2lkZWJhci5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0NvcmUvLi9zcmMvcmVhY3Qvc2lkZWJhci5qcz8wN2M4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCRFYyIGZyb20gXCIuLi92MlwiO1xuaW1wb3J0IFRhYkJhclNlcGFyYXRvciBmcm9tIFwiLi90YWJCYXJTZXBhcmF0b3JcIjtcbmltcG9ydCBUYWJCYXJIZWFkZXIgZnJvbSBcIi4vdGFiQmFySGVhZGVyXCI7XG5pbXBvcnQgVGFiQmFySXRlbSBmcm9tIFwiLi90YWJCYXJJdGVtXCI7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWMkNfU2lkZUJhciBleHRlbmRzIEJEVjIucmVhY3RDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBjb25zdCBzaSA9ICQoXCJbY2xhc3MqPXNpZGUtXSA+IFtjbGFzcyo9c2VsZWN0ZWRdXCIpO1xuICAgIGlmIChzaS5sZW5ndGgpIHNlbGYuc2NuID0gc2kuYXR0cihcImNsYXNzXCIpO1xuICAgIGNvbnN0IG5zID0gJChcIltjbGFzcyo9c2lkZS1dID4gW2NsYXNzKj0naXRlbS0nXTpub3QoW2NsYXNzKj1zZWxlY3RlZF0pXCIpO1xuICAgIGlmIChucy5sZW5ndGgpIHNlbGYubnNjbiA9IG5zLmF0dHIoXCJjbGFzc1wiKTtcbiAgICAkKFwiW2NsYXNzKj0nc2lkZS0nXSA+IFtjbGFzcyo9J2l0ZW0tJ11cIikub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICBzZWxmLnNldFN0YXRlKHtcbiAgICAgICAgc2VsZWN0ZWQ6IG51bGxcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHNlbGYuc2V0SW5pdGlhbFN0YXRlKCk7XG4gICAgc2VsZi5vbkNsaWNrID0gc2VsZi5vbkNsaWNrLmJpbmQoc2VsZik7XG4gIH1cblxuICBzZXRJbml0aWFsU3RhdGUoKSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgc2VsZi5zdGF0ZSA9IHtcbiAgICAgIHNlbGVjdGVkOiBudWxsLFxuICAgICAgaXRlbXM6IHNlbGYucHJvcHMuaXRlbXNcbiAgICB9O1xuICAgIGNvbnN0IGluaXRpYWxTZWxlY3Rpb24gPSBzZWxmLnByb3BzLml0ZW1zLmZpbmQoaXRlbSA9PiB7XG4gICAgICByZXR1cm4gaXRlbS5zZWxlY3RlZDtcbiAgICB9KTtcblxuICAgIGlmIChpbml0aWFsU2VsZWN0aW9uKSB7XG4gICAgICBzZWxmLnN0YXRlLnNlbGVjdGVkID0gaW5pdGlhbFNlbGVjdGlvbi5pZDtcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgY29uc3Qge1xuICAgICAgaGVhZGVyVGV4dFxuICAgIH0gPSBzZWxmLnByb3BzO1xuICAgIGNvbnN0IHtcbiAgICAgIGl0ZW1zLFxuICAgICAgc2VsZWN0ZWRcbiAgICB9ID0gc2VsZi5zdGF0ZTtcbiAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIG51bGwsIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChUYWJCYXJTZXBhcmF0b3IsIG51bGwpLCBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoVGFiQmFySGVhZGVyLCB7XG4gICAgICB0ZXh0OiBoZWFkZXJUZXh0XG4gICAgfSksIGl0ZW1zLm1hcChpdGVtID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaWQsXG4gICAgICAgIHRleHRcbiAgICAgIH0gPSBpdGVtO1xuICAgICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChUYWJCYXJJdGVtLCB7XG4gICAgICAgIGtleTogaWQsXG4gICAgICAgIHNlbGVjdGVkOiBzZWxlY3RlZCA9PT0gaWQsXG4gICAgICAgIHRleHQ6IHRleHQsXG4gICAgICAgIGlkOiBpZCxcbiAgICAgICAgb25DbGljazogc2VsZi5vbkNsaWNrXG4gICAgICB9KTtcbiAgICB9KSk7XG4gIH1cblxuICBvbkNsaWNrKGlkKSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgY29uc3Qgc2kgPSAkKFwiW2NsYXNzKj1zaWRlXSA+IFtjbGFzcyo9c2VsZWN0ZWRdXCIpO1xuXG4gICAgaWYgKHNpLmxlbmd0aCkge1xuICAgICAgc2kub2ZmKFwiY2xpY2suYmRzYlwiKS5vbihcImNsaWNrLmJzYlwiLCBlID0+IHtcbiAgICAgICAgJChlLnRhcmdldCkuYXR0cihcImNsYXNzXCIsIHNlbGYuc2NuKTtcbiAgICAgIH0pO1xuICAgICAgc2kuYXR0cihcImNsYXNzXCIsIHNlbGYubnNjbik7XG4gICAgfVxuXG4gICAgc2VsZi5zZXRTdGF0ZSh7XG4gICAgICBzZWxlY3RlZDogbnVsbFxuICAgIH0pO1xuICAgIHNlbGYuc2V0U3RhdGUoe1xuICAgICAgc2VsZWN0ZWQ6IGlkXG4gICAgfSk7XG4gICAgaWYgKHNlbGYucHJvcHMub25DbGljaykgc2VsZi5wcm9wcy5vbkNsaWNrKGlkKTtcbiAgfVxuXG59Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/react/sidebar.js\n");

/***/ }),

/***/ "./src/react/sidebarView.js":
/*!**********************************!*\
  !*** ./src/react/sidebarView.js ***!
  \**********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_SidebarView; });\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n/* harmony import */ var _scroller__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./scroller */ \"./src/react/scroller.js\");\n\n\nclass V2C_SidebarView extends _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n  }\n\n  render() {\n    const {\n      sidebar,\n      content,\n      tools\n    } = this.props.children;\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"standardSidebarView-3F1I7i ui-standard-sidebar-view\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"sidebarRegion-VFTUkN sidebar-region\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(_scroller__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n      key: \"sidebarScroller\",\n      ref: \"sidebarScroller\",\n      sidebar: true,\n      fade: sidebar.fade || true,\n      dark: sidebar.dark || true,\n      children: sidebar.component\n    })), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"contentRegion-3nDuYy content-region\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"contentTransitionWrap-3hqOEW content-transition-wrap\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"scrollerWrap-2lJEkd firefoxFixScrollFlex-cnI2ix contentRegionScrollerWrap-3YZXdm content-region-scroller-wrap scrollerThemed-2oenus themeGhost-28MSn0 scrollerTrack-1ZIpsv\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"scroller-2FKFPG firefoxFixScrollFlex-cnI2ix contentRegionScroller-26nc1e content-region-scroller scroller\",\n      ref: \"contentScroller\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"contentColumn-2hrIYH contentColumnDefault-1VQkGM content-column default\"\n    }, content.component), tools.component)))));\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcmVhY3Qvc2lkZWJhclZpZXcuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3NpZGViYXJWaWV3LmpzPzAxZmEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJEVjIgZnJvbSBcIi4uL3YyXCI7XG5pbXBvcnQgU2Nyb2xsZXIgZnJvbSBcIi4vc2Nyb2xsZXJcIjtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFYyQ19TaWRlYmFyVmlldyBleHRlbmRzIEJEVjIucmVhY3RDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBzaWRlYmFyLFxuICAgICAgY29udGVudCxcbiAgICAgIHRvb2xzXG4gICAgfSA9IHRoaXMucHJvcHMuY2hpbGRyZW47XG4gICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwic3RhbmRhcmRTaWRlYmFyVmlldy0zRjFJN2kgdWktc3RhbmRhcmQtc2lkZWJhci12aWV3XCJcbiAgICB9LCBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgY2xhc3NOYW1lOiBcInNpZGViYXJSZWdpb24tVkZUVWtOIHNpZGViYXItcmVnaW9uXCJcbiAgICB9LCBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoU2Nyb2xsZXIsIHtcbiAgICAgIGtleTogXCJzaWRlYmFyU2Nyb2xsZXJcIixcbiAgICAgIHJlZjogXCJzaWRlYmFyU2Nyb2xsZXJcIixcbiAgICAgIHNpZGViYXI6IHRydWUsXG4gICAgICBmYWRlOiBzaWRlYmFyLmZhZGUgfHwgdHJ1ZSxcbiAgICAgIGRhcms6IHNpZGViYXIuZGFyayB8fCB0cnVlLFxuICAgICAgY2hpbGRyZW46IHNpZGViYXIuY29tcG9uZW50XG4gICAgfSkpLCBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgY2xhc3NOYW1lOiBcImNvbnRlbnRSZWdpb24tM25EdVl5IGNvbnRlbnQtcmVnaW9uXCJcbiAgICB9LCBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgY2xhc3NOYW1lOiBcImNvbnRlbnRUcmFuc2l0aW9uV3JhcC0zaHFPRVcgY29udGVudC10cmFuc2l0aW9uLXdyYXBcIlxuICAgIH0sIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwic2Nyb2xsZXJXcmFwLTJsSkVrZCBmaXJlZm94Rml4U2Nyb2xsRmxleC1jbkkyaXggY29udGVudFJlZ2lvblNjcm9sbGVyV3JhcC0zWVpYZG0gY29udGVudC1yZWdpb24tc2Nyb2xsZXItd3JhcCBzY3JvbGxlclRoZW1lZC0yb2VudXMgdGhlbWVHaG9zdC0yOE1TbjAgc2Nyb2xsZXJUcmFjay0xWklwc3ZcIlxuICAgIH0sIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwic2Nyb2xsZXItMkZLRlBHIGZpcmVmb3hGaXhTY3JvbGxGbGV4LWNuSTJpeCBjb250ZW50UmVnaW9uU2Nyb2xsZXItMjZuYzFlIGNvbnRlbnQtcmVnaW9uLXNjcm9sbGVyIHNjcm9sbGVyXCIsXG4gICAgICByZWY6IFwiY29udGVudFNjcm9sbGVyXCJcbiAgICB9LCBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgY2xhc3NOYW1lOiBcImNvbnRlbnRDb2x1bW4tMmhySVlIIGNvbnRlbnRDb2x1bW5EZWZhdWx0LTFWUWtHTSBjb250ZW50LWNvbHVtbiBkZWZhdWx0XCJcbiAgICB9LCBjb250ZW50LmNvbXBvbmVudCksIHRvb2xzLmNvbXBvbmVudCkpKSkpO1xuICB9XG5cbn0iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/react/sidebarView.js\n");

/***/ }),

/***/ "./src/react/switch.js":
/*!*****************************!*\
  !*** ./src/react/switch.js ***!
  \*****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_Switch; });\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n\nclass V2C_Switch extends _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n    this.setInitialState();\n    this.onChange = this.onChange.bind(this);\n  }\n\n  setInitialState() {\n    this.state = {\n      checked: this.props.checked\n    };\n  }\n\n  render() {\n    const {\n      text,\n      info\n    } = this.props.data;\n    const {\n      checked\n    } = this.state;\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"ui-flex flex-vertical flex-justify-start flex-align-stretch flex-nowrap ui-switch-item\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"ui-flex flex-horizontal flex-justify-start flex-align-stretch flex-nowrap\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"h3\", {\n      className: \"ui-form-title h3 margin-reset margin-reset ui-flex-child\"\n    }, text), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"label\", {\n      className: \"ui-switch-wrapper ui-flex-child\",\n      style: {\n        flex: \"0 0 auto\"\n      }\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"input\", {\n      className: \"ui-switch-checkbox\",\n      type: \"checkbox\",\n      checked: checked,\n      onChange: e => this.onChange(e)\n    }), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: `ui-switch ${checked ? \"checked\" : \"\"}`\n    }))), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"ui-form-text style-description margin-top-4\",\n      style: {\n        flex: \"1 1 auto\"\n      }\n    }, info));\n  }\n\n  onChange() {\n    this.props.onChange(this.props.id, !this.state.checked);\n    this.setState({\n      checked: !this.state.checked\n    });\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcmVhY3Qvc3dpdGNoLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQ29yZS8uL3NyYy9yZWFjdC9zd2l0Y2guanM/OWE4MCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQkRWMiBmcm9tIFwiLi4vdjJcIjtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFYyQ19Td2l0Y2ggZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5zZXRJbml0aWFsU3RhdGUoKTtcbiAgICB0aGlzLm9uQ2hhbmdlID0gdGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpO1xuICB9XG5cbiAgc2V0SW5pdGlhbFN0YXRlKCkge1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBjaGVja2VkOiB0aGlzLnByb3BzLmNoZWNrZWRcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIHRleHQsXG4gICAgICBpbmZvXG4gICAgfSA9IHRoaXMucHJvcHMuZGF0YTtcbiAgICBjb25zdCB7XG4gICAgICBjaGVja2VkXG4gICAgfSA9IHRoaXMuc3RhdGU7XG4gICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwidWktZmxleCBmbGV4LXZlcnRpY2FsIGZsZXgtanVzdGlmeS1zdGFydCBmbGV4LWFsaWduLXN0cmV0Y2ggZmxleC1ub3dyYXAgdWktc3dpdGNoLWl0ZW1cIlxuICAgIH0sIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwidWktZmxleCBmbGV4LWhvcml6b250YWwgZmxleC1qdXN0aWZ5LXN0YXJ0IGZsZXgtYWxpZ24tc3RyZXRjaCBmbGV4LW5vd3JhcFwiXG4gICAgfSwgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiaDNcIiwge1xuICAgICAgY2xhc3NOYW1lOiBcInVpLWZvcm0tdGl0bGUgaDMgbWFyZ2luLXJlc2V0IG1hcmdpbi1yZXNldCB1aS1mbGV4LWNoaWxkXCJcbiAgICB9LCB0ZXh0KSwgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwibGFiZWxcIiwge1xuICAgICAgY2xhc3NOYW1lOiBcInVpLXN3aXRjaC13cmFwcGVyIHVpLWZsZXgtY2hpbGRcIixcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIGZsZXg6IFwiMCAwIGF1dG9cIlxuICAgICAgfVxuICAgIH0sIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogXCJ1aS1zd2l0Y2gtY2hlY2tib3hcIixcbiAgICAgIHR5cGU6IFwiY2hlY2tib3hcIixcbiAgICAgIGNoZWNrZWQ6IGNoZWNrZWQsXG4gICAgICBvbkNoYW5nZTogZSA9PiB0aGlzLm9uQ2hhbmdlKGUpXG4gICAgfSksIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IGB1aS1zd2l0Y2ggJHtjaGVja2VkID8gXCJjaGVja2VkXCIgOiBcIlwifWBcbiAgICB9KSkpLCBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgY2xhc3NOYW1lOiBcInVpLWZvcm0tdGV4dCBzdHlsZS1kZXNjcmlwdGlvbiBtYXJnaW4tdG9wLTRcIixcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIGZsZXg6IFwiMSAxIGF1dG9cIlxuICAgICAgfVxuICAgIH0sIGluZm8pKTtcbiAgfVxuXG4gIG9uQ2hhbmdlKCkge1xuICAgIHRoaXMucHJvcHMub25DaGFuZ2UodGhpcy5wcm9wcy5pZCwgIXRoaXMuc3RhdGUuY2hlY2tlZCk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBjaGVja2VkOiAhdGhpcy5zdGF0ZS5jaGVja2VkXG4gICAgfSk7XG4gIH1cblxufSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/react/switch.js\n");

/***/ }),

/***/ "./src/react/tabBarHeader.js":
/*!***********************************!*\
  !*** ./src/react/tabBarHeader.js ***!
  \***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_TabBarHeader; });\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n\nclass V2C_TabBarHeader extends _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n  }\n\n  render() {\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"ui-tab-bar-header\"\n    }, this.props.text);\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcmVhY3QvdGFiQmFySGVhZGVyLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQ29yZS8uL3NyYy9yZWFjdC90YWJCYXJIZWFkZXIuanM/NWMyNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQkRWMiBmcm9tIFwiLi4vdjJcIjtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFYyQ19UYWJCYXJIZWFkZXIgZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwidWktdGFiLWJhci1oZWFkZXJcIlxuICAgIH0sIHRoaXMucHJvcHMudGV4dCk7XG4gIH1cblxufSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/react/tabBarHeader.js\n");

/***/ }),

/***/ "./src/react/tabBarItem.js":
/*!*********************************!*\
  !*** ./src/react/tabBarItem.js ***!
  \*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_TabBarItem; });\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n\nclass V2C_TabBarItem extends _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n    this.setInitialState();\n    this.onClick = this.onClick.bind(this);\n  }\n\n  setInitialState() {\n    this.state = {\n      selected: this.props.selected || false\n    };\n  }\n\n  render() {\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: `ui-tab-bar-item${this.props.selected ? \" selected\" : \"\"}`,\n      onClick: this.onClick\n    }, this.props.text);\n  }\n\n  onClick() {\n    if (this.props.onClick) {\n      this.props.onClick(this.props.id);\n    }\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcmVhY3QvdGFiQmFySXRlbS5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0NvcmUvLi9zcmMvcmVhY3QvdGFiQmFySXRlbS5qcz9jYzg5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCRFYyIGZyb20gXCIuLi92MlwiO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVjJDX1RhYkJhckl0ZW0gZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5zZXRJbml0aWFsU3RhdGUoKTtcbiAgICB0aGlzLm9uQ2xpY2sgPSB0aGlzLm9uQ2xpY2suYmluZCh0aGlzKTtcbiAgfVxuXG4gIHNldEluaXRpYWxTdGF0ZSgpIHtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgc2VsZWN0ZWQ6IHRoaXMucHJvcHMuc2VsZWN0ZWQgfHwgZmFsc2VcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgY2xhc3NOYW1lOiBgdWktdGFiLWJhci1pdGVtJHt0aGlzLnByb3BzLnNlbGVjdGVkID8gXCIgc2VsZWN0ZWRcIiA6IFwiXCJ9YCxcbiAgICAgIG9uQ2xpY2s6IHRoaXMub25DbGlja1xuICAgIH0sIHRoaXMucHJvcHMudGV4dCk7XG4gIH1cblxuICBvbkNsaWNrKCkge1xuICAgIGlmICh0aGlzLnByb3BzLm9uQ2xpY2spIHtcbiAgICAgIHRoaXMucHJvcHMub25DbGljayh0aGlzLnByb3BzLmlkKTtcbiAgICB9XG4gIH1cblxufSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/react/tabBarItem.js\n");

/***/ }),

/***/ "./src/react/tabBarSeparator.js":
/*!**************************************!*\
  !*** ./src/react/tabBarSeparator.js ***!
  \**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_TabBarSeparator; });\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n\nclass V2C_TabBarSeparator extends _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n  }\n\n  render() {\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"ui-tab-bar-separator margin-top-8 margin-bottom-8\"\n    });\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcmVhY3QvdGFiQmFyU2VwYXJhdG9yLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQ29yZS8uL3NyYy9yZWFjdC90YWJCYXJTZXBhcmF0b3IuanM/YzRiNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQkRWMiBmcm9tIFwiLi4vdjJcIjtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFYyQ19UYWJCYXJTZXBhcmF0b3IgZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwidWktdGFiLWJhci1zZXBhcmF0b3IgbWFyZ2luLXRvcC04IG1hcmdpbi1ib3R0b20tOFwiXG4gICAgfSk7XG4gIH1cblxufSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/react/tabBarSeparator.js\n");

/***/ }),

/***/ "./src/react/themeCard.js":
/*!********************************!*\
  !*** ./src/react/themeCard.js ***!
  \********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_ThemeCard; });\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../0globals */ \"./src/0globals.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils */ \"./src/utils.js\");\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n/* harmony import */ var _themeModule__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../themeModule */ \"./src/themeModule.js\");\n/* harmony import */ var _reloadIcon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reloadIcon */ \"./src/react/reloadIcon.js\");\n/* harmony import */ var _tooltipWrap__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./tooltipWrap */ \"./src/react/tooltipWrap.js\");\n\n\n\n\n\n\nclass V2C_ThemeCard extends _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n    this.setInitialState();\n    this.onChange = this.onChange.bind(this);\n    this.reload = this.reload.bind(this);\n  }\n\n  setInitialState() {\n    this.state = {\n      checked: _0globals__WEBPACK_IMPORTED_MODULE_0__[\"themeCookie\"][this.props.theme.name],\n      reloads: 0\n    };\n  } // componentDidMount() {\n  //     BDEvents.on(\"theme-reloaded\", this.onReload);\n  // }\n  // componentWillUnmount() {\n  //     BDEvents.off(\"theme-reloaded\", this.onReload);\n  // }\n\n\n  onReload(themeName) {\n    if (themeName !== this.props.theme.name) return;\n    this.setState({\n      reloads: this.state.reloads + 1\n    });\n  }\n\n  reload() {\n    const theme = this.props.theme.name;\n    const error = _themeModule__WEBPACK_IMPORTED_MODULE_3__[\"default\"].reloadTheme(theme);\n    if (error) _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].showToast(`Could not reload ${_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"][theme].name}. Check console for details.`, {\n      type: \"error\"\n    });else _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].showToast(`${_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"][theme].name} v${_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"][theme].version} has been reloaded.`, {\n      type: \"success\"\n    }); // this.setState(this.state);\n\n    this.props.theme = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"][theme];\n    this.onReload(this.props.theme.name);\n  }\n\n  makeLink(title, url) {\n    const props = {\n      className: \"bda-link bda-link-website\",\n      target: \"_blank\"\n    };\n    if (typeof url == \"string\") props.href = url;\n    if (typeof url == \"function\") props.onClick = event => {\n      event.preventDefault();\n      event.stopPropagation();\n      url();\n    };\n    return _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"a\", props, title);\n  }\n\n  render() {\n    const {\n      theme\n    } = this.props;\n    const name = theme.name;\n    const description = theme.description;\n    const version = theme.version;\n    const author = theme.author;\n    const meta = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"][name];\n    const links = [];\n    if (meta.website) links.push(this.makeLink(\"Website\", meta.website));\n    if (meta.source) links.push(this.makeLink(\"Source\", meta.source));\n\n    if (meta.invite) {\n      links.push(this.makeLink(\"Support Server\", () => {\n        const tester = /\\.gg\\/(.*)$/;\n        let code = meta.invite;\n        if (tester.test(code)) code = code.match(tester)[1];\n        _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].LayerStack.popLayer();\n        _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].InviteActions.acceptInviteAndTransitionToInviteChannel(code);\n      }));\n    }\n\n    if (meta.donate) links.push(this.makeLink(\"Donate\", meta.donate));\n    if (meta.patreon) links.push(this.makeLink(\"Patreon\", meta.patreon));\n    const authorProps = {\n      className: \"bda-author\"\n    };\n\n    if (meta.authorLink || meta.authorId) {\n      authorProps.className += ` ${_v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].anchorClasses.anchor} ${_v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].anchorClasses.anchorUnderlineOnHover}`;\n      authorProps.target = \"_blank\";\n      if (meta.authorLink) authorProps.href = meta.authorLink;\n      if (meta.authorId) authorProps.onClick = () => {\n        _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].LayerStack.popLayer();\n        _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].openDM(meta.authorId);\n      };\n    }\n\n    return _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"li\", {\n      \"data-name\": name,\n      \"data-version\": version,\n      \"className\": \"settings-closed ui-switch-item\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"div\", {\n      className: \"bda-header\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"span\", {\n      className: \"bda-header-title\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"span\", {\n      className: \"bda-name\"\n    }, name), \" v\", _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"span\", {\n      className: \"bda-version\"\n    }, version), \" by \", _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(meta.authorLink || meta.authorId ? \"a\" : \"span\", authorProps, author)), _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"div\", {\n      className: \"bda-controls\"\n    }, !_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-5\"] && _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(Object(_tooltipWrap__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(_reloadIcon__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n      color: \"black\",\n      side: \"top\",\n      text: \"Reload\"\n    }), {\n      className: \"bd-reload-card\",\n      onClick: this.reload\n    }), _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"label\", {\n      className: \"ui-switch-wrapper ui-flex-child\",\n      style: {\n        flex: \"0 0 auto\"\n      }\n    }, _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"input\", {\n      checked: this.state.checked,\n      onChange: this.onChange,\n      className: \"ui-switch-checkbox\",\n      type: \"checkbox\"\n    }), _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"div\", {\n      className: this.state.checked ? \"ui-switch checked\" : \"ui-switch\"\n    })))), _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"div\", {\n      className: \"bda-description-wrap scroller-wrap fade\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"div\", {\n      className: \"bda-description scroller\"\n    }, description)), !!links.length && _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"div\", {\n      className: \"bda-footer\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_2__[\"default\"].react.createElement(\"span\", {\n      className: \"bda-links\"\n    }, ...links.map((element, index) => index < links.length - 1 ? [element, \" | \"] : element).flat())));\n  }\n\n  onChange() {\n    this.setState({\n      checked: !this.state.checked\n    });\n    _themeModule__WEBPACK_IMPORTED_MODULE_3__[\"default\"].toggleTheme(this.props.theme.name);\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 8364 characters]\n//# sourceURL=webpack-internal:///./src/react/themeCard.js\n");

/***/ }),

/***/ "./src/react/tools.js":
/*!****************************!*\
  !*** ./src/react/tools.js ***!
  \****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_Tools; });\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n/* harmony import */ var _xSvg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./xSvg */ \"./src/react/xSvg.js\");\n\n\nclass V2C_Tools extends _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n    this.onClick = this.onClick.bind(this);\n  }\n\n  render() {\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"tools-container toolsContainer-1edPuj\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"tools tools-3-3s-N\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"container-1sFeqf\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"btn-close closeButton-1tv5uR\",\n      onClick: this.onClick\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(_xSvg__WEBPACK_IMPORTED_MODULE_1__[\"default\"], null)), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"div\", {\n      className: \"esc-text keybind-KpFkfr\"\n    }, \"ESC\"))));\n  }\n\n  onClick() {\n    if (this.props.onClick) {\n      this.props.onClick();\n    }\n\n    $(\".closeButton-1tv5uR\").first().click();\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcmVhY3QvdG9vbHMuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3Rvb2xzLmpzP2UzMGYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJEVjIgZnJvbSBcIi4uL3YyXCI7XG5pbXBvcnQgWFN2ZyBmcm9tIFwiLi94U3ZnXCI7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWMkNfVG9vbHMgZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5vbkNsaWNrID0gdGhpcy5vbkNsaWNrLmJpbmQodGhpcyk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwidG9vbHMtY29udGFpbmVyIHRvb2xzQ29udGFpbmVyLTFlZFB1alwiXG4gICAgfSwgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogXCJ0b29scyB0b29scy0zLTNzLU5cIlxuICAgIH0sIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwiY29udGFpbmVyLTFzRmVxZlwiXG4gICAgfSwgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogXCJidG4tY2xvc2UgY2xvc2VCdXR0b24tMXR2NXVSXCIsXG4gICAgICBvbkNsaWNrOiB0aGlzLm9uQ2xpY2tcbiAgICB9LCBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoWFN2ZywgbnVsbCkpLCBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgY2xhc3NOYW1lOiBcImVzYy10ZXh0IGtleWJpbmQtS3BGa2ZyXCJcbiAgICB9LCBcIkVTQ1wiKSkpKTtcbiAgfVxuXG4gIG9uQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMucHJvcHMub25DbGljaykge1xuICAgICAgdGhpcy5wcm9wcy5vbkNsaWNrKCk7XG4gICAgfVxuXG4gICAgJChcIi5jbG9zZUJ1dHRvbi0xdHY1dVJcIikuZmlyc3QoKS5jbGljaygpO1xuICB9XG5cbn0iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/react/tools.js\n");

/***/ }),

/***/ "./src/react/tooltipWrap.js":
/*!**********************************!*\
  !*** ./src/react/tooltipWrap.js ***!
  \**********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils */ \"./src/utils.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function (Component, options) {\n  const {\n    style = \"black\",\n    side = \"top\",\n    text = \"\"\n  } = options;\n  const id = _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].KeyGenerator();\n  return class extends _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactComponent {\n    constructor(props) {\n      super(props);\n      this.onMouseEnter = this.onMouseEnter.bind(this);\n      this.onMouseLeave = this.onMouseLeave.bind(this);\n    }\n\n    componentDidMount() {\n      this.node = _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactDom.findDOMNode(this);\n      this.node.addEventListener(\"mouseenter\", this.onMouseEnter);\n      this.node.addEventListener(\"mouseleave\", this.onMouseLeave);\n    }\n\n    componentWillUnmount() {\n      this.node.removeEventListener(\"mouseenter\", this.onMouseEnter);\n      this.node.removeEventListener(\"mouseleave\", this.onMouseLeave);\n    }\n\n    onMouseEnter() {\n      if (!_v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Tooltips) return;\n      const {\n        left,\n        top,\n        width,\n        height\n      } = this.node.getBoundingClientRect();\n      _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Tooltips.show(id, {\n        position: side,\n        text: text,\n        color: style,\n        targetWidth: width,\n        targetHeight: height,\n        windowWidth: _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].screenWidth,\n        windowHeight: _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].screenHeight,\n        x: left,\n        y: top\n      });\n      const observer = new MutationObserver(mutations => {\n        mutations.forEach(mutation => {\n          const nodes = Array.from(mutation.removedNodes);\n          const directMatch = nodes.indexOf(this.node) > -1;\n          const parentMatch = nodes.some(parent => parent.contains(this.node));\n\n          if (directMatch || parentMatch) {\n            this.onMouseLeave();\n            observer.disconnect();\n          }\n        });\n      });\n      observer.observe(document.body, {\n        subtree: true,\n        childList: true\n      });\n    }\n\n    onMouseLeave() {\n      if (!_v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Tooltips) return;\n      _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Tooltips.hide(id);\n    }\n\n    render() {\n      return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(Component, this.props);\n    }\n\n  };\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcmVhY3QvdG9vbHRpcFdyYXAuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3Rvb2x0aXBXcmFwLmpzPzM2NWMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJEVjIgZnJvbSBcIi4uL3YyXCI7XG5pbXBvcnQgVXRpbHMgZnJvbSBcIi4uL3V0aWxzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoQ29tcG9uZW50LCBvcHRpb25zKSB7XG4gIGNvbnN0IHtcbiAgICBzdHlsZSA9IFwiYmxhY2tcIixcbiAgICBzaWRlID0gXCJ0b3BcIixcbiAgICB0ZXh0ID0gXCJcIlxuICB9ID0gb3B0aW9ucztcbiAgY29uc3QgaWQgPSBCRFYyLktleUdlbmVyYXRvcigpO1xuICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgc3VwZXIocHJvcHMpO1xuICAgICAgdGhpcy5vbk1vdXNlRW50ZXIgPSB0aGlzLm9uTW91c2VFbnRlci5iaW5kKHRoaXMpO1xuICAgICAgdGhpcy5vbk1vdXNlTGVhdmUgPSB0aGlzLm9uTW91c2VMZWF2ZS5iaW5kKHRoaXMpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdGhpcy5ub2RlID0gQkRWMi5yZWFjdERvbS5maW5kRE9NTm9kZSh0aGlzKTtcbiAgICAgIHRoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLCB0aGlzLm9uTW91c2VFbnRlcik7XG4gICAgICB0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIiwgdGhpcy5vbk1vdXNlTGVhdmUpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgdGhpcy5ub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWVudGVyXCIsIHRoaXMub25Nb3VzZUVudGVyKTtcbiAgICAgIHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLCB0aGlzLm9uTW91c2VMZWF2ZSk7XG4gICAgfVxuXG4gICAgb25Nb3VzZUVudGVyKCkge1xuICAgICAgaWYgKCFCRFYyLlRvb2x0aXBzKSByZXR1cm47XG4gICAgICBjb25zdCB7XG4gICAgICAgIGxlZnQsXG4gICAgICAgIHRvcCxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodFxuICAgICAgfSA9IHRoaXMubm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIEJEVjIuVG9vbHRpcHMuc2hvdyhpZCwge1xuICAgICAgICBwb3NpdGlvbjogc2lkZSxcbiAgICAgICAgdGV4dDogdGV4dCxcbiAgICAgICAgY29sb3I6IHN0eWxlLFxuICAgICAgICB0YXJnZXRXaWR0aDogd2lkdGgsXG4gICAgICAgIHRhcmdldEhlaWdodDogaGVpZ2h0LFxuICAgICAgICB3aW5kb3dXaWR0aDogVXRpbHMuc2NyZWVuV2lkdGgsXG4gICAgICAgIHdpbmRvd0hlaWdodDogVXRpbHMuc2NyZWVuSGVpZ2h0LFxuICAgICAgICB4OiBsZWZ0LFxuICAgICAgICB5OiB0b3BcbiAgICAgIH0pO1xuICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbnMgPT4ge1xuICAgICAgICBtdXRhdGlvbnMuZm9yRWFjaChtdXRhdGlvbiA9PiB7XG4gICAgICAgICAgY29uc3Qgbm9kZXMgPSBBcnJheS5mcm9tKG11dGF0aW9uLnJlbW92ZWROb2Rlcyk7XG4gICAgICAgICAgY29uc3QgZGlyZWN0TWF0Y2ggPSBub2Rlcy5pbmRleE9mKHRoaXMubm9kZSkgPiAtMTtcbiAgICAgICAgICBjb25zdCBwYXJlbnRNYXRjaCA9IG5vZGVzLnNvbWUocGFyZW50ID0+IHBhcmVudC5jb250YWlucyh0aGlzLm5vZGUpKTtcblxuICAgICAgICAgIGlmIChkaXJlY3RNYXRjaCB8fCBwYXJlbnRNYXRjaCkge1xuICAgICAgICAgICAgdGhpcy5vbk1vdXNlTGVhdmUoKTtcbiAgICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHtcbiAgICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICAgICAgY2hpbGRMaXN0OiB0cnVlXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBvbk1vdXNlTGVhdmUoKSB7XG4gICAgICBpZiAoIUJEVjIuVG9vbHRpcHMpIHJldHVybjtcbiAgICAgIEJEVjIuVG9vbHRpcHMuaGlkZShpZCk7XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChDb21wb25lbnQsIHRoaXMucHJvcHMpO1xuICAgIH1cblxuICB9O1xufSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/react/tooltipWrap.js\n");

/***/ }),

/***/ "./src/react/xSvg.js":
/*!***************************!*\
  !*** ./src/react/xSvg.js ***!
  \***************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_XSvg; });\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../v2 */ \"./src/v2.js\");\n\nclass V2C_XSvg extends _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reactComponent {\n  constructor(props) {\n    super(props);\n  }\n\n  render() {\n    return _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"svg\", {\n      xmlns: \"http://www.w3.org/2000/svg\",\n      viewBox: \"0 0 12 12\",\n      style: {\n        width: \"18px\",\n        height: \"18px\"\n      }\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"g\", {\n      className: \"background\",\n      fill: \"none\",\n      fillRule: \"evenodd\"\n    }, _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"path\", {\n      d: \"M0 0h12v12H0\"\n    }), _v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].react.createElement(\"path\", {\n      className: \"fill\",\n      fill: \"#dcddde\",\n      d: \"M9.5 3.205L8.795 2.5 6 5.295 3.205 2.5l-.705.705L5.295 6 2.5 8.795l.705.705L6 6.705 8.795 9.5l.705-.705L6.705 6\"\n    })));\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcmVhY3QveFN2Zy5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0NvcmUvLi9zcmMvcmVhY3QveFN2Zy5qcz9kNmNkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCRFYyIGZyb20gXCIuLi92MlwiO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVjJDX1hTdmcgZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCB7XG4gICAgICB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFxuICAgICAgdmlld0JveDogXCIwIDAgMTIgMTJcIixcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIHdpZHRoOiBcIjE4cHhcIixcbiAgICAgICAgaGVpZ2h0OiBcIjE4cHhcIlxuICAgICAgfVxuICAgIH0sIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImdcIiwge1xuICAgICAgY2xhc3NOYW1lOiBcImJhY2tncm91bmRcIixcbiAgICAgIGZpbGw6IFwibm9uZVwiLFxuICAgICAgZmlsbFJ1bGU6IFwiZXZlbm9kZFwiXG4gICAgfSwgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgICBkOiBcIk0wIDBoMTJ2MTJIMFwiXG4gICAgfSksIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgICAgY2xhc3NOYW1lOiBcImZpbGxcIixcbiAgICAgIGZpbGw6IFwiI2RjZGRkZVwiLFxuICAgICAgZDogXCJNOS41IDMuMjA1TDguNzk1IDIuNSA2IDUuMjk1IDMuMjA1IDIuNWwtLjcwNS43MDVMNS4yOTUgNiAyLjUgOC43OTVsLjcwNS43MDVMNiA2LjcwNSA4Ljc5NSA5LjVsLjcwNS0uNzA1TDYuNzA1IDZcIlxuICAgIH0pKSk7XG4gIH1cblxufSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/react/xSvg.js\n");

/***/ }),

/***/ "./src/settingsPanel.js":
/*!******************************!*\
  !*** ./src/settingsPanel.js ***!
  \******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./0globals */ \"./src/0globals.js\");\n/* harmony import */ var _dataStore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataStore */ \"./src/dataStore.js\");\n/* harmony import */ var _settingsPanelSidebar__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settingsPanelSidebar */ \"./src/settingsPanelSidebar.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ \"./src/utils.js\");\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./v2 */ \"./src/v2.js\");\n/* harmony import */ var _contentManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./contentManager */ \"./src/contentManager.js\");\n/* harmony import */ var _bdEvents__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./bdEvents */ \"./src/bdEvents.js\");\n/* harmony import */ var _pluginModule__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./pluginModule */ \"./src/pluginModule.js\");\n/* harmony import */ var _themeModule__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./themeModule */ \"./src/themeModule.js\");\n/* harmony import */ var _coloredText__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./coloredText */ \"./src/coloredText.js\");\n/* harmony import */ var _24hour__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./24hour */ \"./src/24hour.js\");\n/* harmony import */ var _publicServers__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./publicServers */ \"./src/publicServers.js\");\n/* harmony import */ var _voiceMode__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./voiceMode */ \"./src/voiceMode.js\");\n/* harmony import */ var _emoteModule__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./emoteModule */ \"./src/emoteModule.js\");\n/* harmony import */ var _classNormalizer__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./classNormalizer */ \"./src/classNormalizer.js\");\n/* harmony import */ var _devMode__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./devMode */ \"./src/devMode.js\");\n/* harmony import */ var _quickEmoteMenu__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./quickEmoteMenu */ \"./src/quickEmoteMenu.js\");\n/* harmony import */ var _react_tools__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./react/tools */ \"./src/react/tools.js\");\n/* harmony import */ var _react_reloadIcon__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./react/reloadIcon */ \"./src/react/reloadIcon.js\");\n/* harmony import */ var _react_tooltipWrap__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./react/tooltipWrap */ \"./src/react/tooltipWrap.js\");\n/* harmony import */ var _react_scroller__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./react/scroller */ \"./src/react/scroller.js\");\n/* harmony import */ var _react_list__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./react/list */ \"./src/react/list.js\");\n/* harmony import */ var _react_pluginCard__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./react/pluginCard */ \"./src/react/pluginCard.js\");\n/* harmony import */ var _react_themeCard__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./react/themeCard */ \"./src/react/themeCard.js\");\n/* harmony import */ var _react_sectionedSettingsPanel__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./react/sectionedSettingsPanel */ \"./src/react/sectionedSettingsPanel.js\");\n/* harmony import */ var _react_settingsPanel__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./react/settingsPanel */ \"./src/react/settingsPanel.js\");\n/* harmony import */ var _react_cssEditor__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./react/cssEditor */ \"./src/react/cssEditor.js\");\n/* harmony import */ var _react_contentColumn__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./react/contentColumn */ \"./src/react/contentColumn.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class V2_SettingsPanel {\n  constructor() {\n    const self = this;\n    self.sideBarOnClick = self.sideBarOnClick.bind(self);\n    self.onChange = self.onChange.bind(self);\n    self.updateSettings = this.updateSettings.bind(self);\n    self.sidebar = new _settingsPanelSidebar__WEBPACK_IMPORTED_MODULE_2__[\"default\"](self.sideBarOnClick);\n  }\n\n  get root() {\n    const _root = $(\"#bd-settingspane-container\");\n\n    if (!_root.length) {\n      if (!this.injectRoot()) return null;\n      return this.root;\n    }\n\n    return _root[0];\n  }\n\n  injectRoot() {\n    if (!$(\".layer-3QrUeG .standardSidebarView-3F1I7i, .layer-3QrUeG .ui-standard-sidebar-view\").length) return false;\n    const root = $(\"<div/>\", {\n      \"class\": \"contentRegion-3nDuYy content-region\",\n      \"id\": \"bd-settingspane-container\"\n    });\n    $(\".layer-3QrUeG .standardSidebarView-3F1I7i, .layer-3QrUeG .ui-standard-sidebar-view\").append(root);\n    _utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"].onRemoved(root[0], () => {\n      _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].reactDom.unmountComponentAtNode(root[0]);\n    });\n    return true;\n  }\n\n  get coreSettings() {\n    const settings = this.getSettings(\"core\");\n    const categories = [...new Set(settings.map(s => s.category))];\n    const sections = categories.map(c => {\n      return {\n        title: c,\n        settings: settings.filter(s => s.category == c)\n      };\n    });\n    return sections;\n  }\n\n  get emoteSettings() {\n    return this.getSettings(\"emote\");\n  }\n\n  getSettings(category) {\n    return Object.keys(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settings\"]).reduce((arr, key) => {\n      const setting = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"settings\"][key];\n\n      if (setting.cat === category && setting.implemented && !setting.hidden) {\n        setting.text = key;\n        arr.push(setting);\n      }\n\n      return arr;\n    }, []);\n  }\n\n  sideBarOnClick(id) {\n    const self = this;\n    $(\".contentRegion-3nDuYy, .content-region\").first().hide();\n    $(self.root).show();\n\n    switch (id) {\n      case \"core\":\n        self.renderCoreSettings();\n        break;\n\n      case \"emotes\":\n        self.renderEmoteSettings();\n        break;\n\n      case \"customcss\":\n        self.renderCustomCssEditor();\n        break;\n\n      case \"plugins\":\n        self.renderPluginPane();\n        break;\n\n      case \"themes\":\n        self.renderThemePane();\n        break;\n    }\n  }\n\n  onClick() {}\n\n  onChange(id, checked) {\n    this.updateSettings(id, checked);\n  }\n\n  updateSettings(id, enabled) {\n    _0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][id] = enabled; // if (id == \"bda-gs-b\") {\n    //     if (enabled) $(\"body\").addClass(\"bd-blue\");\n    //     else $(\"body\").removeClass(\"bd-blue\");\n    // }\n\n    if (id == \"bda-gs-2\") {\n      if (enabled) $(\"body\").addClass(\"bd-minimal\");else $(\"body\").removeClass(\"bd-minimal\");\n    }\n\n    if (id == \"bda-gs-3\") {\n      if (enabled) $(\"body\").addClass(\"bd-minimal-chan\");else $(\"body\").removeClass(\"bd-minimal-chan\");\n    }\n\n    if (id == \"bda-gs-1\") {\n      if (enabled) _publicServers__WEBPACK_IMPORTED_MODULE_11__[\"default\"].addButton();else _publicServers__WEBPACK_IMPORTED_MODULE_11__[\"default\"].removeButton();\n    }\n\n    if (id == \"bda-gs-4\") {\n      if (enabled) _voiceMode__WEBPACK_IMPORTED_MODULE_12__[\"default\"].enable();else _voiceMode__WEBPACK_IMPORTED_MODULE_12__[\"default\"].disable();\n    }\n\n    if (id == \"bda-gs-5\") {\n      if (enabled) $(\"#app-mount\").addClass(\"bda-dark\");else $(\"#app-mount\").removeClass(\"bda-dark\");\n    }\n\n    if (enabled && id == \"bda-gs-6\") _24hour__WEBPACK_IMPORTED_MODULE_10__[\"default\"].inject24Hour();\n\n    if (id == \"bda-gs-7\") {\n      if (enabled) _coloredText__WEBPACK_IMPORTED_MODULE_9__[\"default\"].injectColoredText();else _coloredText__WEBPACK_IMPORTED_MODULE_9__[\"default\"].removeColoredText();\n    }\n\n    if (id == \"bda-es-4\") {\n      if (enabled) _emoteModule__WEBPACK_IMPORTED_MODULE_13__[\"default\"].autoCapitalize();else _emoteModule__WEBPACK_IMPORTED_MODULE_13__[\"default\"].disableAutoCapitalize();\n    }\n\n    if (id == \"fork-ps-4\") {\n      if (enabled) _classNormalizer__WEBPACK_IMPORTED_MODULE_14__[\"default\"].start();else _classNormalizer__WEBPACK_IMPORTED_MODULE_14__[\"default\"].stop();\n    }\n\n    if (id == \"fork-ps-5\") {\n      if (enabled) {\n        _contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].watchContent(\"plugin\");\n        _contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].watchContent(\"theme\");\n      } else {\n        _contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].unwatchContent(\"plugin\");\n        _contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].unwatchContent(\"theme\");\n      }\n    }\n\n    if (id == \"fork-wp-1\") {} // BdApi.setWindowPreference(\"transparent\", enabled);\n    // if (enabled) BdApi.setWindowPreference(\"backgroundColor\", null);\n    // else BdApi.setWindowPreference(\"backgroundColor\", \"#2f3136\");\n\n    /*if (_c[\"fork-wp-2\"]) {\r\n        const current = BdApi.getWindowPreference(\"frame\");\r\n        if (current != _c[\"fork-wp-2\"]) BdApi.setWindowPreference(\"frame\", _c[\"fork-wp-2\"]);\r\n    }*/\n\n\n    if (id == \"bda-gs-8\") {\n      if (enabled) _devMode__WEBPACK_IMPORTED_MODULE_15__[\"default\"].enable(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-dm-1\"]);else _devMode__WEBPACK_IMPORTED_MODULE_15__[\"default\"].disable();\n    }\n\n    if (id == \"fork-dm-1\") {\n      if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-8\"]) _devMode__WEBPACK_IMPORTED_MODULE_15__[\"default\"].enable(enabled);\n    }\n\n    this.saveSettings();\n  }\n\n  async initializeSettings() {\n    // if (settingsCookie[\"bda-gs-b\"]) $(\"body\").addClass(\"bd-blue\");\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-2\"]) $(\"body\").addClass(\"bd-minimal\");\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-3\"]) $(\"body\").addClass(\"bd-minimal-chan\");\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-1\"]) _publicServers__WEBPACK_IMPORTED_MODULE_11__[\"default\"].addButton();\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-4\"]) _voiceMode__WEBPACK_IMPORTED_MODULE_12__[\"default\"].enable();\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-5\"]) $(\"#app-mount\").addClass(\"bda-dark\");\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-6\"]) _24hour__WEBPACK_IMPORTED_MODULE_10__[\"default\"].inject24Hour();\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-7\"]) _coloredText__WEBPACK_IMPORTED_MODULE_9__[\"default\"].injectColoredText();\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-es-4\"]) _emoteModule__WEBPACK_IMPORTED_MODULE_13__[\"default\"].autoCapitalize();\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-4\"]) _classNormalizer__WEBPACK_IMPORTED_MODULE_14__[\"default\"].start();\n\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-5\"]) {\n      _contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].watchContent(\"plugin\");\n      _contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].watchContent(\"theme\");\n    }\n\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-8\"]) _devMode__WEBPACK_IMPORTED_MODULE_15__[\"default\"].enable(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-dm-1\"]);\n    this.saveSettings();\n  }\n\n  saveSettings() {\n    _dataStore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setSettingGroup(\"settings\", _0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"]);\n  }\n\n  loadSettings() {\n    Object.assign(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"], _dataStore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getSettingGroup(\"settings\"));\n  }\n\n  renderSidebar() {\n    const self = this;\n    $(\"[class*='side-'] > [class*='item-']\").off(\"click.v2settingspanel\").on(\"click.v2settingspanel\", () => {\n      _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].reactDom.unmountComponentAtNode(self.root);\n      $(self.root).hide();\n      $(\".contentRegion-3nDuYy, .content-region\").first().show();\n    });\n    self.sidebar.render();\n  }\n\n  get coreComponent() {\n    return _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_scroller__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n      contentColumn: true,\n      fade: true,\n      dark: true,\n      children: [_v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_sectionedSettingsPanel__WEBPACK_IMPORTED_MODULE_24__[\"default\"], {\n        key: \"cspanel\",\n        onChange: this.onChange,\n        sections: this.coreSettings\n      }), _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_tools__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n        key: \"tools\"\n      })]\n    });\n  }\n\n  get emoteComponent() {\n    return _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_scroller__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n      contentColumn: true,\n      fade: true,\n      dark: true,\n      children: [_v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_settingsPanel__WEBPACK_IMPORTED_MODULE_25__[\"default\"], {\n        key: \"espanel\",\n        title: \"Emote Settings\",\n        onChange: this.onChange,\n        settings: this.emoteSettings,\n        button: {\n          title: \"Clear Emote Cache\",\n          onClick: () => {\n            _emoteModule__WEBPACK_IMPORTED_MODULE_13__[\"default\"].clearEmoteData();\n            _emoteModule__WEBPACK_IMPORTED_MODULE_13__[\"default\"].init();\n            _quickEmoteMenu__WEBPACK_IMPORTED_MODULE_16__[\"default\"].init();\n          }\n        }\n      }), _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_tools__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n        key: \"tools\"\n      })]\n    });\n  }\n\n  get customCssComponent() {\n    return _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_scroller__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n      contentColumn: true,\n      fade: true,\n      dark: true,\n      children: [_v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_cssEditor__WEBPACK_IMPORTED_MODULE_26__[\"default\"], {\n        key: \"csseditor\"\n      }), _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_tools__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n        key: \"tools\"\n      })]\n    });\n  }\n\n  contentComponent(type) {\n    const componentElement = type == \"plugins\" ? this.pluginsComponent : this.themesComponent;\n    const prefix = type.replace(\"s\", \"\");\n    const settingsList = this;\n\n    class ContentList extends _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.Component {\n      constructor(props) {\n        super(props);\n        this.onChange = this.onChange.bind(this);\n      }\n\n      componentDidMount() {\n        _bdEvents__WEBPACK_IMPORTED_MODULE_6__[\"default\"].on(`${prefix}-reloaded`, this.onChange);\n        _bdEvents__WEBPACK_IMPORTED_MODULE_6__[\"default\"].on(`${prefix}-loaded`, this.onChange);\n        _bdEvents__WEBPACK_IMPORTED_MODULE_6__[\"default\"].on(`${prefix}-unloaded`, this.onChange);\n      }\n\n      componentWillUnmount() {\n        _bdEvents__WEBPACK_IMPORTED_MODULE_6__[\"default\"].off(`${prefix}-reloaded`, this.onChange);\n        _bdEvents__WEBPACK_IMPORTED_MODULE_6__[\"default\"].off(`${prefix}-loaded`, this.onChange);\n        _bdEvents__WEBPACK_IMPORTED_MODULE_6__[\"default\"].off(`${prefix}-unloaded`, this.onChange);\n      }\n\n      onChange() {\n        settingsList.sideBarOnClick(type);\n      }\n\n      render() {\n        return componentElement;\n      }\n\n    }\n\n    return _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(ContentList);\n  }\n\n  get pluginsComponent() {\n    const plugins = Object.keys(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"]).sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase())).reduce((arr, key) => {\n      arr.push(_v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_pluginCard__WEBPACK_IMPORTED_MODULE_22__[\"default\"], {\n        key: key,\n        plugin: _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdplugins\"][key].plugin\n      }));\n      return arr;\n    }, []);\n    const list = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_list__WEBPACK_IMPORTED_MODULE_21__[\"default\"], {\n      key: \"plugin-list\",\n      className: \"bda-slist\",\n      children: plugins\n    });\n    const refreshIcon = !_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-5\"] && _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(Object(_react_tooltipWrap__WEBPACK_IMPORTED_MODULE_19__[\"default\"])(_react_reloadIcon__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n      color: \"black\",\n      side: \"top\",\n      text: \"Reload Plugin List\"\n    }), {\n      className: \"bd-reload-header\",\n      size: \"18px\",\n      onClick: async () => {\n        _pluginModule__WEBPACK_IMPORTED_MODULE_7__[\"default\"].updatePluginList();\n        this.sideBarOnClick(\"plugins\");\n      }\n    });\n    const pfBtn = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(\"button\", {\n      key: \"folder-button\",\n      className: \"bd-pfbtn\",\n      onClick: () => {\n        __webpack_require__(/*! electron */ \"electron\").shell.openItem(_contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].pluginsFolder);\n      }\n    }, \"Open Plugin Folder\");\n    const contentColumn = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_contentColumn__WEBPACK_IMPORTED_MODULE_27__[\"default\"], {\n      key: \"pcolumn\",\n      title: \"Plugins\",\n      children: [refreshIcon, pfBtn, list]\n    });\n    return _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_scroller__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n      contentColumn: true,\n      fade: true,\n      dark: true,\n      children: [contentColumn, _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_tools__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n        key: \"tools\"\n      })]\n    });\n  }\n\n  get themesComponent() {\n    const themes = Object.keys(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"]).sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase())).reduce((arr, key) => {\n      arr.push(_v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_themeCard__WEBPACK_IMPORTED_MODULE_23__[\"default\"], {\n        key: key,\n        theme: _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"][key]\n      }));\n      return arr;\n    }, []);\n    const list = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_list__WEBPACK_IMPORTED_MODULE_21__[\"default\"], {\n      key: \"theme-list\",\n      className: \"bda-slist\",\n      children: themes\n    });\n    const refreshIcon = !_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-5\"] && _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(Object(_react_tooltipWrap__WEBPACK_IMPORTED_MODULE_19__[\"default\"])(_react_reloadIcon__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n      color: \"black\",\n      side: \"top\",\n      text: \"Reload Theme List\"\n    }), {\n      className: \"bd-reload-header\",\n      size: \"18px\",\n      onClick: async () => {\n        _themeModule__WEBPACK_IMPORTED_MODULE_8__[\"default\"].updateThemeList();\n        this.sideBarOnClick(\"themes\");\n      }\n    });\n    const tfBtn = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(\"button\", {\n      key: \"folder-button\",\n      className: \"bd-pfbtn\",\n      onClick: () => {\n        __webpack_require__(/*! electron */ \"electron\").shell.openItem(_contentManager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].themesFolder);\n      }\n    }, \"Open Theme Folder\");\n    const contentColumn = _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_contentColumn__WEBPACK_IMPORTED_MODULE_27__[\"default\"], {\n      key: \"tcolumn\",\n      title: \"Themes\",\n      children: [refreshIcon, tfBtn, list]\n    });\n    return _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_scroller__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n      contentColumn: true,\n      fade: true,\n      dark: true,\n      children: [contentColumn, _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_tools__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n        key: \"tools\"\n      })]\n    });\n  }\n\n  renderCoreSettings() {\n    const root = this.root;\n\n    if (!root) {\n      console.log(\"FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i\");\n      return;\n    }\n\n    _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].reactDom.render(this.coreComponent, root);\n  }\n\n  renderEmoteSettings() {\n    const root = this.root;\n\n    if (!root) {\n      console.log(\"FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i\");\n      return;\n    }\n\n    _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].reactDom.render(this.emoteComponent, root);\n  }\n\n  renderCustomCssEditor() {\n    const root = this.root;\n\n    if (!root) {\n      console.log(\"FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i\");\n      return;\n    }\n\n    _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].reactDom.render(this.customCssComponent, root);\n  }\n\n  renderPluginPane() {\n    const root = this.root;\n\n    if (!root) {\n      console.log(\"FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i\");\n      return;\n    }\n\n    _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].reactDom.render(this.contentComponent(\"plugins\"), root);\n  }\n\n  renderThemePane() {\n    const root = this.root;\n\n    if (!root) {\n      console.log(\"FAILED TO LOCATE ROOT: .layer-3QrUeG .standardSidebarView-3F1I7i\");\n      return;\n    }\n\n    _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].reactDom.render(this.contentComponent(\"themes\"), root);\n  }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 22732 characters]\n//# sourceURL=webpack-internal:///./src/settingsPanel.js\n");

/***/ }),

/***/ "./src/settingsPanelSidebar.js":
/*!*************************************!*\
  !*** ./src/settingsPanelSidebar.js ***!
  \*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2_SettingsPanel_Sidebar; });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ \"./src/utils.js\");\n/* harmony import */ var _v2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./v2 */ \"./src/v2.js\");\n/* harmony import */ var _react_sidebar__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./react/sidebar */ \"./src/react/sidebar.js\");\n\n\n\nclass V2_SettingsPanel_Sidebar {\n  constructor(onClick) {\n    this.onClick = onClick;\n  }\n\n  get items() {\n    return [{\n      text: \"Settings\",\n      id: \"core\"\n    }, {\n      text: \"Emotes\",\n      id: \"emotes\"\n    }, {\n      text: \"Plugins\",\n      id: \"plugins\"\n    }, {\n      text: \"Themes\",\n      id: \"themes\"\n    }, {\n      text: \"Custom CSS\",\n      id: \"customcss\"\n    }];\n  }\n\n  get component() {\n    return _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"span\", null, _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(_react_sidebar__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n      onClick: this.onClick,\n      headerText: \"Bandaged BD\",\n      items: this.items\n    }));\n  }\n\n  get root() {\n    const _root = $(\"#bd-settings-sidebar\");\n\n    if (!_root.length) {\n      if (!this.injectRoot()) return null;\n      return this.root;\n    }\n\n    return _root[0];\n  }\n\n  injectRoot() {\n    const changeLog = $(\"[class*='side-'] > [class*='item-']:not([class*=Danger])\").last();\n    if (!changeLog.length) return false;\n    $(\"<span/>\", {\n      id: \"bd-settings-sidebar\"\n    }).insertBefore(changeLog.prev());\n    return true;\n  }\n\n  render() {\n    const root = this.root;\n\n    if (!root) {\n      console.log(\"FAILED TO LOCATE ROOT: [class*='side-'] > [class*='item-']:not([class*=Danger])\");\n      return;\n    }\n\n    _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].reactDom.render(this.component, root);\n    _utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].onRemoved(root, () => {\n      _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].reactDom.unmountComponentAtNode(root);\n    });\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvc2V0dGluZ3NQYW5lbFNpZGViYXIuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3NldHRpbmdzUGFuZWxTaWRlYmFyLmpzPzEwYjgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFV0aWxzIGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQgQkRWMiBmcm9tIFwiLi92MlwiO1xuaW1wb3J0IFNpZGVCYXIgZnJvbSBcIi4vcmVhY3Qvc2lkZWJhclwiO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVjJfU2V0dGluZ3NQYW5lbF9TaWRlYmFyIHtcbiAgY29uc3RydWN0b3Iob25DbGljaykge1xuICAgIHRoaXMub25DbGljayA9IG9uQ2xpY2s7XG4gIH1cblxuICBnZXQgaXRlbXMoKSB7XG4gICAgcmV0dXJuIFt7XG4gICAgICB0ZXh0OiBcIlNldHRpbmdzXCIsXG4gICAgICBpZDogXCJjb3JlXCJcbiAgICB9LCB7XG4gICAgICB0ZXh0OiBcIkVtb3Rlc1wiLFxuICAgICAgaWQ6IFwiZW1vdGVzXCJcbiAgICB9LCB7XG4gICAgICB0ZXh0OiBcIlBsdWdpbnNcIixcbiAgICAgIGlkOiBcInBsdWdpbnNcIlxuICAgIH0sIHtcbiAgICAgIHRleHQ6IFwiVGhlbWVzXCIsXG4gICAgICBpZDogXCJ0aGVtZXNcIlxuICAgIH0sIHtcbiAgICAgIHRleHQ6IFwiQ3VzdG9tIENTU1wiLFxuICAgICAgaWQ6IFwiY3VzdG9tY3NzXCJcbiAgICB9XTtcbiAgfVxuXG4gIGdldCBjb21wb25lbnQoKSB7XG4gICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwgbnVsbCwgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFNpZGVCYXIsIHtcbiAgICAgIG9uQ2xpY2s6IHRoaXMub25DbGljayxcbiAgICAgIGhlYWRlclRleHQ6IFwiQmFuZGFnZWQgQkRcIixcbiAgICAgIGl0ZW1zOiB0aGlzLml0ZW1zXG4gICAgfSkpO1xuICB9XG5cbiAgZ2V0IHJvb3QoKSB7XG4gICAgY29uc3QgX3Jvb3QgPSAkKFwiI2JkLXNldHRpbmdzLXNpZGViYXJcIik7XG5cbiAgICBpZiAoIV9yb290Lmxlbmd0aCkge1xuICAgICAgaWYgKCF0aGlzLmluamVjdFJvb3QoKSkgcmV0dXJuIG51bGw7XG4gICAgICByZXR1cm4gdGhpcy5yb290O1xuICAgIH1cblxuICAgIHJldHVybiBfcm9vdFswXTtcbiAgfVxuXG4gIGluamVjdFJvb3QoKSB7XG4gICAgY29uc3QgY2hhbmdlTG9nID0gJChcIltjbGFzcyo9J3NpZGUtJ10gPiBbY2xhc3MqPSdpdGVtLSddOm5vdChbY2xhc3MqPURhbmdlcl0pXCIpLmxhc3QoKTtcbiAgICBpZiAoIWNoYW5nZUxvZy5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICAkKFwiPHNwYW4vPlwiLCB7XG4gICAgICBpZDogXCJiZC1zZXR0aW5ncy1zaWRlYmFyXCJcbiAgICB9KS5pbnNlcnRCZWZvcmUoY2hhbmdlTG9nLnByZXYoKSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qgcm9vdCA9IHRoaXMucm9vdDtcblxuICAgIGlmICghcm9vdCkge1xuICAgICAgY29uc29sZS5sb2coXCJGQUlMRUQgVE8gTE9DQVRFIFJPT1Q6IFtjbGFzcyo9J3NpZGUtJ10gPiBbY2xhc3MqPSdpdGVtLSddOm5vdChbY2xhc3MqPURhbmdlcl0pXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIEJEVjIucmVhY3REb20ucmVuZGVyKHRoaXMuY29tcG9uZW50LCByb290KTtcbiAgICBVdGlscy5vblJlbW92ZWQocm9vdCwgKCkgPT4ge1xuICAgICAgQkRWMi5yZWFjdERvbS51bm1vdW50Q29tcG9uZW50QXROb2RlKHJvb3QpO1xuICAgIH0pO1xuICB9XG5cbn0iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/settingsPanelSidebar.js\n");

/***/ }),

/***/ "./src/themeModule.js":
/*!****************************!*\
  !*** ./src/themeModule.js ***!
  \****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./0globals */ \"./src/0globals.js\");\n/* harmony import */ var _contentManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./contentManager */ \"./src/contentManager.js\");\n/* harmony import */ var _dataStore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataStore */ \"./src/dataStore.js\");\n/* harmony import */ var _bdEvents__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./bdEvents */ \"./src/bdEvents.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils */ \"./src/utils.js\");\n\n\n\n\n\n\nfunction ThemeModule() {}\n\nThemeModule.prototype.loadThemes = function () {\n  this.loadThemeData();\n  _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemeErrors\"].concat(_contentManager__WEBPACK_IMPORTED_MODULE_1__[\"default\"].loadThemes());\n  const themes = Object.keys(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"]);\n\n  for (let i = 0; i < themes.length; i++) {\n    const theme = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"][themes[i]];\n    if (!_0globals__WEBPACK_IMPORTED_MODULE_0__[\"themeCookie\"][theme.name]) _0globals__WEBPACK_IMPORTED_MODULE_0__[\"themeCookie\"][theme.name] = false;\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"themeCookie\"][theme.name]) $(\"head\").append($(\"<style>\", {\n      id: theme.id,\n      text: unescape(theme.css)\n    }));\n  }\n\n  for (const theme in _0globals__WEBPACK_IMPORTED_MODULE_0__[\"themeCookie\"]) {\n    if (!_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"][theme]) delete _0globals__WEBPACK_IMPORTED_MODULE_0__[\"themeCookie\"][theme];\n  }\n\n  this.saveThemeData(); // if (settingsCookie[\"fork-ps-5\"]) ContentManager.watchContent(\"theme\");\n};\n\nThemeModule.prototype.enableTheme = function (name, reload = false) {\n  _0globals__WEBPACK_IMPORTED_MODULE_0__[\"themeCookie\"][name] = true;\n  this.saveThemeData();\n  const theme = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"][name];\n  $(\"head\").append($(\"<style>\", {\n    id: theme.id,\n    text: unescape(theme.css)\n  }));\n  if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"] && !reload) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showToast(`${theme.name} v${theme.version} has been applied.`);\n};\n\nThemeModule.prototype.disableTheme = function (name, reload = false) {\n  _0globals__WEBPACK_IMPORTED_MODULE_0__[\"themeCookie\"][name] = false;\n  this.saveThemeData();\n  const theme = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"][name];\n  $(`#${theme.id}`).remove();\n  if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"] && !reload) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showToast(`${theme.name} v${theme.version} has been disabled.`);\n};\n\nThemeModule.prototype.toggleTheme = function (theme) {\n  if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"themeCookie\"][theme]) this.disableTheme(theme);else this.enableTheme(theme);\n};\n\nThemeModule.prototype.loadTheme = function (filename) {\n  const error = _contentManager__WEBPACK_IMPORTED_MODULE_1__[\"default\"].loadContent(filename, \"theme\");\n\n  if (error) {\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-1\"]) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showContentErrors({\n      themes: [error]\n    });\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"]) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showToast(`${filename} could not be loaded. It may not have been loaded.`, {\n      type: \"error\"\n    });\n    return _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].err(\"ContentManager\", `${filename} could not be loaded.`, error);\n  }\n\n  const theme = Object.values(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"]).find(p => p.filename == filename);\n  _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].log(\"ContentManager\", `${theme.name} v${theme.version} was loaded.`);\n  if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"]) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showToast(`${theme.name} v${theme.version} was loaded.`, {\n    type: \"success\"\n  });\n  _bdEvents__WEBPACK_IMPORTED_MODULE_3__[\"default\"].dispatch(\"theme-loaded\", theme.name);\n};\n\nThemeModule.prototype.unloadTheme = function (filenameOrName) {\n  const bdtheme = Object.values(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"]).find(p => p.filename == filenameOrName) || _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"][filenameOrName];\n  if (!bdtheme) return;\n  const theme = bdtheme.name;\n  if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"themeCookie\"][theme]) this.disableTheme(theme, true);\n  const error = _contentManager__WEBPACK_IMPORTED_MODULE_1__[\"default\"].unloadContent(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"][theme].filename, \"theme\");\n  delete _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"][theme];\n\n  if (error) {\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-1\"]) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showContentErrors({\n      themes: [error]\n    });\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"]) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showToast(`${theme} could not be unloaded. It may have not been loaded yet.`, {\n      type: \"error\"\n    });\n    return _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].err(\"ContentManager\", `${theme} could not be unloaded. It may have not been loaded yet.`, error);\n  }\n\n  _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].log(\"ContentManager\", `${theme} was unloaded.`);\n  if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"]) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showToast(`${theme} was unloaded.`, {\n    type: \"success\"\n  });\n  _bdEvents__WEBPACK_IMPORTED_MODULE_3__[\"default\"].dispatch(\"theme-unloaded\", theme);\n};\n\nThemeModule.prototype.reloadTheme = function (filenameOrName) {\n  const bdtheme = Object.values(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"]).find(p => p.filename == filenameOrName) || _0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"][filenameOrName];\n  if (!bdtheme) return this.loadTheme(filenameOrName);\n  const theme = bdtheme.name;\n  const error = _contentManager__WEBPACK_IMPORTED_MODULE_1__[\"default\"].reloadContent(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"][theme].filename, \"theme\");\n  if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"themeCookie\"][theme]) this.disableTheme(theme, true), this.enableTheme(theme, true);\n\n  if (error) {\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-1\"]) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showContentErrors({\n      themes: [error]\n    });\n    if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"]) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showToast(`${theme} could not be reloaded.`, {\n      type: \"error\"\n    });\n    return _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].err(\"ContentManager\", `${theme} could not be reloaded.`, error);\n  }\n\n  _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].log(\"ContentManager\", `${theme} v${_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"][theme].version} was reloaded.`);\n  if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-2\"]) _utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"].showToast(`${theme} v${_0globals__WEBPACK_IMPORTED_MODULE_0__[\"bdthemes\"][theme].version} was reloaded.`, {\n    type: \"success\"\n  });\n  _bdEvents__WEBPACK_IMPORTED_MODULE_3__[\"default\"].dispatch(\"theme-reloaded\", theme);\n};\n\nThemeModule.prototype.updateThemeList = function () {\n  const results = _contentManager__WEBPACK_IMPORTED_MODULE_1__[\"default\"].loadNewContent(\"theme\");\n\n  for (const filename of results.added) this.loadTheme(filename);\n\n  for (const name of results.removed) this.unloadTheme(name);\n};\n\nThemeModule.prototype.loadThemeData = function () {\n  const saved = _dataStore__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getSettingGroup(\"themes\");\n\n  if (saved) {\n    Object.assign(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"themeCookie\"], saved);\n  }\n};\n\nThemeModule.prototype.saveThemeData = function () {\n  _dataStore__WEBPACK_IMPORTED_MODULE_2__[\"default\"].setSettingGroup(\"themes\", _0globals__WEBPACK_IMPORTED_MODULE_0__[\"themeCookie\"]);\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new ThemeModule());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 8252 characters]\n//# sourceURL=webpack-internal:///./src/themeModule.js\n");

/***/ }),

/***/ "./src/utils.js":
/*!**********************!*\
  !*** ./src/utils.js ***!
  \**********************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Utils; });\nclass Utils {\n  /** Document/window width */\n  static get screenWidth() {\n    return Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n  }\n  /** Document/window height */\n\n\n  static get screenHeight() {\n    return Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n  }\n\n  static stripBOM(content) {\n    if (content.charCodeAt(0) === 0xFEFF) {\n      content = content.slice(1);\n    }\n\n    return content;\n  }\n\n  static getTextArea() {\n    return $(\".channelTextArea-rNsIhG textarea\");\n  }\n\n  static insertText(textarea, text) {\n    textarea.focus();\n    textarea.selectionStart = 0;\n    textarea.selectionEnd = textarea.value.length;\n    document.execCommand(\"insertText\", false, text);\n  }\n\n  static injectCss(uri) {\n    $(\"<link/>\", {\n      type: \"text/css\",\n      rel: \"stylesheet\",\n      href: uri\n    }).appendTo($(\"head\"));\n  }\n\n  static injectJs(uri) {\n    return new Promise(resolve => {\n      $(\"<script/>\", {\n        type: \"text/javascript\",\n        src: uri,\n        onload: resolve\n      }).appendTo($(\"body\"));\n    });\n  }\n\n  static escapeID(id) {\n    return id.replace(/^[^a-z]+|[^\\w-]+/gi, \"-\");\n  }\n\n  static log(moduleName, message) {\n    console.log(`%c[BandagedBD]%c [${moduleName}]%c ${message}`, \"color: #3a71c1; font-weight: 700;\", \"color: #3a71c1;\", \"\");\n  }\n\n  static warn(moduleName, message) {\n    console.warn(`%c[BandagedBD]%c [${moduleName}]%c ${message}`, \"color: #E8A400; font-weight: 700;\", \"color: #E8A400;\", \"\");\n  }\n\n  static err(moduleName, message, error) {\n    console.log(`%c[BandagedBD]%c [${moduleName}]%c ${message}`, \"color: red; font-weight: 700;\", \"color: red;\", \"\");\n\n    if (error) {\n      console.groupCollapsed(\"%cError: \" + error.message, \"color: red;\");\n      console.error(error.stack);\n      console.groupEnd();\n    }\n  }\n\n  static escape(s) {\n    return s.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n  }\n\n  static testJSON(data) {\n    try {\n      return JSON.parse(data);\n    } catch (err) {\n      return false;\n    }\n  }\n\n  static isEmpty(obj) {\n    if (obj == null || obj == undefined || obj == \"\") return true;\n    if (typeof obj !== \"object\") return false;\n    if (Array.isArray(obj)) return obj.length == 0;\n\n    for (const key in obj) {\n      if (obj.hasOwnProperty(key)) return false;\n    }\n\n    return true;\n  }\n\n  static suppressErrors(method, message) {\n    return (...params) => {\n      try {\n        return method(...params);\n      } catch (e) {\n        this.err(\"SuppressedError\", \"Error occurred in \" + message, e);\n      }\n    };\n  }\n\n  static monkeyPatch(what, methodName, options) {\n    const {\n      before,\n      after,\n      instead,\n      once = false,\n      silent = false,\n      force = false\n    } = options;\n    const displayName = options.displayName || what.displayName || what[methodName].displayName || what.name || what.constructor.displayName || what.constructor.name;\n    if (!silent) console.log(\"patch\", methodName, \"of\", displayName); // eslint-disable-line no-console\n\n    if (!what[methodName]) {\n      if (force) what[methodName] = function () {};else return console.error(methodName, \"does not exist for\", displayName); // eslint-disable-line no-console\n    }\n\n    const origMethod = what[methodName];\n\n    const cancel = () => {\n      if (!silent) console.log(\"unpatch\", methodName, \"of\", displayName); // eslint-disable-line no-console\n\n      what[methodName] = origMethod;\n    };\n\n    what[methodName] = function () {\n      const data = {\n        thisObject: this,\n        methodArguments: arguments,\n        cancelPatch: cancel,\n        originalMethod: origMethod,\n        callOriginalMethod: () => data.returnValue = data.originalMethod.apply(data.thisObject, data.methodArguments)\n      };\n\n      if (instead) {\n        const tempRet = Utils.suppressErrors(instead, \"`instead` callback of \" + what[methodName].displayName)(data);\n        if (tempRet !== undefined) data.returnValue = tempRet;\n      } else {\n        if (before) Utils.suppressErrors(before, \"`before` callback of \" + what[methodName].displayName)(data);\n        data.callOriginalMethod();\n        if (after) Utils.suppressErrors(after, \"`after` callback of \" + what[methodName].displayName)(data);\n      }\n\n      if (once) cancel();\n      return data.returnValue;\n    };\n\n    Object.assign(what[methodName], origMethod);\n    what[methodName].__monkeyPatched = true;\n    what[methodName].displayName = displayName;\n\n    if (!what[methodName].__originalMethod) {\n      what[methodName].__originalMethod = origMethod;\n\n      what[methodName].toString = function () {\n        return origMethod.toString();\n      };\n    }\n\n    return cancel;\n  }\n\n  static onRemoved(node, callback) {\n    const observer = new MutationObserver(mutations => {\n      for (let m = 0; m < mutations.length; m++) {\n        const mutation = mutations[m];\n        const nodes = Array.from(mutation.removedNodes);\n        const directMatch = nodes.indexOf(node) > -1;\n        const parentMatch = nodes.some(parent => parent.contains(node));\n\n        if (directMatch || parentMatch) {\n          observer.disconnect();\n          callback();\n        }\n      }\n    });\n    observer.observe(document.body, {\n      subtree: true,\n      childList: true\n    });\n  }\n\n  static getNestedProp(obj, path) {\n    return path.split(/\\s?\\.\\s?/).reduce(function (obj, prop) {\n      return obj && obj[prop];\n    }, obj);\n  }\n  /**\r\n   * This shows a toast similar to android towards the bottom of the screen.\r\n   *\r\n   * @param {string} content The string to show in the toast.\r\n   * @param {object} options Options object. Optional parameter.\r\n   * @param {string} options.type Changes the type of the toast stylistically and semantically. Choices: \"\", \"info\", \"success\", \"danger\"/\"error\", \"warning\"/\"warn\". Default: \"\"\r\n   * @param {boolean} options.icon Determines whether the icon should show corresponding to the type. A toast without type will always have no icon. Default: true\r\n   * @param {number} options.timeout Adjusts the time (in ms) the toast should be shown for before disappearing automatically. Default: 3000\r\n   */\n\n\n  static showToast(content, options = {}) {\n    // if (!bdConfig.deferLoaded) return;\n    if (!document.querySelector(\".bd-toasts\")) {\n      const toastWrapper = document.createElement(\"div\");\n      toastWrapper.classList.add(\"bd-toasts\");\n      const boundingElement = document.querySelector(\".chat-3bRxxu form, #friends, .noChannel-Z1DQK7, .activityFeed-28jde9\");\n      toastWrapper.style.setProperty(\"left\", boundingElement ? boundingElement.getBoundingClientRect().left + \"px\" : \"0px\");\n      toastWrapper.style.setProperty(\"width\", boundingElement ? boundingElement.offsetWidth + \"px\" : \"100%\");\n      toastWrapper.style.setProperty(\"bottom\", (document.querySelector(\".chat-3bRxxu form\") ? document.querySelector(\".chat-3bRxxu form\").offsetHeight : 80) + \"px\");\n      document.querySelector(\".app, .app-2rEoOp\").appendChild(toastWrapper);\n    }\n\n    const {\n      type = \"\",\n      icon = true,\n      timeout = 3000\n    } = options;\n    const toastElem = document.createElement(\"div\");\n    toastElem.classList.add(\"bd-toast\");\n    if (type) toastElem.classList.add(\"toast-\" + type);\n    if (type && icon) toastElem.classList.add(\"icon\");\n    toastElem.innerText = content;\n    document.querySelector(\".bd-toasts\").appendChild(toastElem);\n    setTimeout(() => {\n      toastElem.classList.add(\"closing\");\n      setTimeout(() => {\n        toastElem.remove();\n        if (!document.querySelectorAll(\".bd-toasts .bd-toast\").length) document.querySelector(\".bd-toasts\").remove();\n      }, 300);\n    }, timeout);\n  }\n\n  alert(title, content) {\n    const modal = $(`<div class=\"bd-modal-wrapper theme-dark\">\n                        <div class=\"bd-backdrop backdrop-1wrmKB\"></div>\n                        <div class=\"bd-modal modal-1UGdnR\">\n                            <div class=\"bd-modal-inner inner-1JeGVc\">\n                                <div class=\"header header-1R_AjF\">\n                                    <div class=\"title\">${title}</div>\n                                </div>\n                                <div class=\"bd-modal-body\">\n                                    <div class=\"scroller-wrap fade\">\n                                        <div class=\"scroller\">\n                                            ${content}\n                                        </div>\n                                    </div>\n                                </div>\n                                <div class=\"footer footer-2yfCgX\">\n                                    <button type=\"button\">Okay</button>\n                                </div>\n                            </div>\n                        </div>\n                    </div>`);\n    modal.find(\".footer button\").on(\"click\", () => {\n      modal.addClass(\"closing\");\n      setTimeout(() => {\n        modal.remove();\n      }, 300);\n    });\n    modal.find(\".bd-backdrop\").on(\"click\", () => {\n      modal.addClass(\"closing\");\n      setTimeout(() => {\n        modal.remove();\n      }, 300);\n    });\n    modal.appendTo(\"#app-mount\");\n  }\n\n  showContentErrors({\n    plugins: pluginErrors = [],\n    themes: themeErrors = []\n  }) {\n    if (!pluginErrors || !themeErrors) return;\n    if (!pluginErrors.length && !themeErrors.length) return;\n    const modal = $(`<div class=\"bd-modal-wrapper theme-dark\">\n                        <div class=\"bd-backdrop backdrop-1wrmKB\"></div>\n                        <div class=\"bd-modal bd-content-modal modal-1UGdnR\">\n                            <div class=\"bd-modal-inner inner-1JeGVc\">\n                                <div class=\"header header-1R_AjF\"><div class=\"title\">Content Errors</div></div>\n                                <div class=\"bd-modal-body\">\n                                    <div class=\"tab-bar-container\">\n                                        <div class=\"tab-bar TOP\">\n                                            <div class=\"tab-bar-item\">Plugins</div>\n                                            <div class=\"tab-bar-item\">Themes</div>\n                                        </div>\n                                    </div>\n                                    <div class=\"table-header\">\n                                        <div class=\"table-column column-name\">Name</div>\n                                        <div class=\"table-column column-message\">Message</div>\n                                        <div class=\"table-column column-error\">Error</div>\n                                    </div>\n                                    <div class=\"scroller-wrap fade\">\n                                        <div class=\"scroller\">\n    \n                                        </div>\n                                    </div>\n                                </div>\n                                <div class=\"footer footer-2yfCgX\">\n                                    <button type=\"button\">Okay</button>\n                                </div>\n                            </div>\n                        </div>\n                    </div>`);\n\n    function generateTab(errors) {\n      const container = $(`<div class=\"errors\">`);\n\n      for (const err of errors) {\n        const error = $(`<div class=\"error\">\n                                    <div class=\"table-column column-name\">${err.name ? err.name : err.file}</div>\n                                    <div class=\"table-column column-message\">${err.message}</div>\n                                    <div class=\"table-column column-error\"><a class=\"error-link\" href=\"\">${err.error ? err.error.message : \"\"}</a></div>\n                                </div>`);\n        container.append(error);\n\n        if (err.error) {\n          error.find(\"a\").on(\"click\", e => {\n            e.preventDefault();\n            Utils.err(\"ContentManager\", `Error details for ${err.name ? err.name : err.file}.`, err.error);\n          });\n        }\n      }\n\n      return container;\n    }\n\n    const tabs = [generateTab(pluginErrors), generateTab(themeErrors)];\n    modal.find(\".tab-bar-item\").on(\"click\", e => {\n      e.preventDefault();\n      modal.find(\".tab-bar-item\").removeClass(\"selected\");\n      $(e.target).addClass(\"selected\");\n      modal.find(\".scroller\").empty().append(tabs[$(e.target).index()]);\n    });\n    modal.find(\".footer button\").on(\"click\", () => {\n      modal.addClass(\"closing\");\n      setTimeout(() => {\n        modal.remove();\n      }, 300);\n    });\n    modal.find(\".bd-backdrop\").on(\"click\", () => {\n      modal.addClass(\"closing\");\n      setTimeout(() => {\n        modal.remove();\n      }, 300);\n    });\n    modal.appendTo(\"#app-mount\");\n    if (pluginErrors.length) modal.find(\".tab-bar-item\")[0].click();else modal.find(\".tab-bar-item\")[1].click();\n  }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 20364 characters]\n//# sourceURL=webpack-internal:///./src/utils.js\n");

/***/ }),

/***/ "./src/v2.js":
/*!*******************!*\
  !*** ./src/v2.js ***!
  \*******************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./0globals */ \"./src/0globals.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class V2 {\n  constructor() {\n    this.editorDetached = false;\n\n    this.WebpackModules = (() => {\n      const req = webpackJsonp.push([[], {\n        __extra_id__: (module, exports, req) => module.exports = req\n      }, [[\"__extra_id__\"]]]);\n      delete req.m.__extra_id__;\n      delete req.c.__extra_id__;\n\n      const find = filter => {\n        for (const i in req.c) {\n          if (req.c.hasOwnProperty(i)) {\n            const m = req.c[i].exports;\n            if (m && m.__esModule && m.default && filter(m.default)) return m.default;\n            if (m && filter(m)) return m;\n          }\n        } // console.warn(\"Cannot find loaded module in cache\");\n\n\n        return null;\n      };\n\n      const findAll = filter => {\n        const modules = [];\n\n        for (const i in req.c) {\n          if (req.c.hasOwnProperty(i)) {\n            const m = req.c[i].exports;\n            if (m && m.__esModule && m.default && filter(m.default)) modules.push(m.default);else if (m && filter(m)) modules.push(m);\n          }\n        }\n\n        return modules;\n      };\n\n      const findByUniqueProperties = propNames => find(module => propNames.every(prop => module[prop] !== undefined));\n\n      const findByPrototypes = protoNames => find(module => module.prototype && protoNames.every(protoProp => module.prototype[protoProp] !== undefined));\n\n      const findByDisplayName = displayName => find(module => module.displayName === displayName);\n\n      return {\n        find,\n        findAll,\n        findByUniqueProperties,\n        findByPrototypes,\n        findByDisplayName\n      };\n    })();\n\n    this.internal = {\n      react: this.WebpackModules.findByUniqueProperties([\"Component\", \"PureComponent\", \"Children\", \"createElement\", \"cloneElement\"]),\n      reactDom: this.WebpackModules.findByUniqueProperties([\"findDOMNode\"])\n    };\n\n    this.getInternalInstance = e => e[Object.keys(e).find(k => k.startsWith(\"__reactInternalInstance\"))];\n  }\n\n  initialize() {}\n\n  joinBD1() {\n    this.InviteActions.acceptInviteAndTransitionToInviteChannel(\"0Tmfo5ZbORCRqbAd\");\n  }\n\n  leaveBD1() {\n    this.GuildActions.leaveGuild(\"86004744966914048\");\n  }\n\n  joinBD2() {\n    this.InviteActions.acceptInviteAndTransitionToInviteChannel(\"2HScm8j\");\n  }\n\n  leaveBD2() {\n    this.GuildActions.leaveGuild(\"280806472928198656\");\n  }\n\n  get react() {\n    return this.internal.react;\n  }\n\n  get reactDom() {\n    return this.internal.reactDom;\n  }\n\n  get reactComponent() {\n    return this.internal.react.Component;\n  }\n\n  get anchorClasses() {\n    return this.WebpackModules.findByUniqueProperties([\"anchorUnderlineOnHover\"]) || {\n      anchor: \"anchor-3Z-8Bb\",\n      anchorUnderlineOnHover: \"anchorUnderlineOnHover-2ESHQB\"\n    };\n  }\n\n  get slateEditorClasses() {\n    return this.WebpackModules.findByUniqueProperties([\"slateTextArea\"]);\n  }\n\n  get messageClasses() {\n    return this.WebpackModules.findByUniqueProperties([\"message\", \"containerCozy\"]);\n  }\n\n  get guildClasses() {\n    const guildsWrapper = this.WebpackModules.findByUniqueProperties([\"wrapper\", \"unreadMentionsBar\"]);\n    const guilds = this.WebpackModules.findByUniqueProperties([\"guildsError\", \"selected\"]);\n    const pill = this.WebpackModules.findByUniqueProperties([\"blobContainer\"]);\n    return Object.assign({}, guildsWrapper, guilds, pill);\n  }\n\n  get MessageContentComponent() {\n    return this.WebpackModules.find(m => m.defaultProps && m.defaultProps.hasOwnProperty(\"disableButtons\"));\n  }\n\n  get MessageComponent() {\n    return this.WebpackModules.find(m => m.default && m.default.displayName && m.default.displayName == \"Message\");\n  }\n\n  get TimeFormatter() {\n    return this.WebpackModules.findByUniqueProperties([\"dateFormat\"]);\n  }\n\n  get TooltipWrapper() {\n    return this.WebpackModules.findByDisplayName(\"Tooltip\");\n  }\n\n  get NativeModule() {\n    return this.WebpackModules.findByUniqueProperties([\"setBadge\"]);\n  }\n\n  get InviteActions() {\n    return this.WebpackModules.findByUniqueProperties([\"acceptInvite\"]);\n  }\n\n  get GuildActions() {\n    return this.WebpackModules.findByUniqueProperties([\"leaveGuild\"]);\n  }\n\n  get Tooltips() {\n    return this.WebpackModules.find(m => m.hide && m.show && !m.search && !m.submit && !m.search && !m.activateRagingDemon && !m.dismiss);\n  }\n\n  get KeyGenerator() {\n    return this.WebpackModules.find(m => m.toString && /\"binary\"/.test(m.toString()));\n  }\n\n  get LayerStack() {\n    return this.WebpackModules.findByUniqueProperties([\"popLayer\"]);\n  }\n\n  get UserStore() {\n    return this.WebpackModules.findByUniqueProperties([\"getCurrentUser\"]);\n  }\n\n  get ChannelStore() {\n    return this.WebpackModules.findByUniqueProperties([\"getChannel\"]);\n  }\n\n  get ChannelActions() {\n    return this.WebpackModules.findByUniqueProperties([\"openPrivateChannel\"]);\n  }\n\n  get PrivateChannelActions() {\n    return this.WebpackModules.findByUniqueProperties([\"selectPrivateChannel\"]);\n  }\n\n  openDM(userId) {\n    const selfId = this.UserStore.getCurrentUser().id;\n    if (selfId == userId) return;\n    const privateChannelId = this.ChannelStore.getDMFromUserId(userId);\n    if (privateChannelId) return this.PrivateChannelActions.selectPrivateChannel(privateChannelId);\n    this.ChannelActions.openPrivateChannel(selfId, userId);\n  }\n\n  parseSettings(cat) {\n    return Object.keys(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settings\"]).reduce((arr, key) => {\n      const setting = _0globals__WEBPACK_IMPORTED_MODULE_0__[\"settings\"][key];\n\n      if (setting.cat === cat && setting.implemented && !setting.hidden) {\n        setting.text = key;\n        arr.push(setting);\n      }\n\n      return arr;\n    }, []);\n  }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 9256 characters]\n//# sourceURL=webpack-internal:///./src/v2.js\n");

/***/ }),

/***/ "./src/voiceMode.js":
/*!**************************!*\
  !*** ./src/voiceMode.js ***!
  \**************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nfunction VoiceMode() {}\n\nVoiceMode.prototype.enable = function () {\n  $(\".scroller.guild-channels ul\").first().css(\"display\", \"none\");\n  $(\".scroller.guild-channels header\").first().css(\"display\", \"none\");\n  $(\".app.flex-vertical, .app-2rEoOp\").first().css(\"overflow\", \"hidden\");\n  $(\".chat-3bRxxu\").first().css(\"visibility\", \"hidden\").css(\"min-width\", \"0px\");\n  $(\".flex-vertical.channels-wrap\").first().css(\"flex-grow\", \"100000\");\n  $(\".guild-header .btn.btn-hamburger\").first().css(\"visibility\", \"hidden\");\n};\n\nVoiceMode.prototype.disable = function () {\n  $(\".scroller.guild-channels ul\").first().css(\"display\", \"\");\n  $(\".scroller.guild-channels header\").first().css(\"display\", \"\");\n  $(\".app.flex-vertical, .app-2rEoOp\").first().css(\"overflow\", \"\");\n  $(\".chat-3bRxxu\").first().css(\"visibility\", \"\").css(\"min-width\", \"\");\n  $(\".flex-vertical.channels-wrap\").first().css(\"flex-grow\", \"\");\n  $(\".guild-header .btn.btn-hamburger\").first().css(\"visibility\", \"\");\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new VoiceMode());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdm9pY2VNb2RlLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQ29yZS8uL3NyYy92b2ljZU1vZGUuanM/NWRiNSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBWb2ljZU1vZGUoKSB7fVxuXG5Wb2ljZU1vZGUucHJvdG90eXBlLmVuYWJsZSA9IGZ1bmN0aW9uICgpIHtcbiAgJChcIi5zY3JvbGxlci5ndWlsZC1jaGFubmVscyB1bFwiKS5maXJzdCgpLmNzcyhcImRpc3BsYXlcIiwgXCJub25lXCIpO1xuICAkKFwiLnNjcm9sbGVyLmd1aWxkLWNoYW5uZWxzIGhlYWRlclwiKS5maXJzdCgpLmNzcyhcImRpc3BsYXlcIiwgXCJub25lXCIpO1xuICAkKFwiLmFwcC5mbGV4LXZlcnRpY2FsLCAuYXBwLTJyRW9PcFwiKS5maXJzdCgpLmNzcyhcIm92ZXJmbG93XCIsIFwiaGlkZGVuXCIpO1xuICAkKFwiLmNoYXQtM2JSeHh1XCIpLmZpcnN0KCkuY3NzKFwidmlzaWJpbGl0eVwiLCBcImhpZGRlblwiKS5jc3MoXCJtaW4td2lkdGhcIiwgXCIwcHhcIik7XG4gICQoXCIuZmxleC12ZXJ0aWNhbC5jaGFubmVscy13cmFwXCIpLmZpcnN0KCkuY3NzKFwiZmxleC1ncm93XCIsIFwiMTAwMDAwXCIpO1xuICAkKFwiLmd1aWxkLWhlYWRlciAuYnRuLmJ0bi1oYW1idXJnZXJcIikuZmlyc3QoKS5jc3MoXCJ2aXNpYmlsaXR5XCIsIFwiaGlkZGVuXCIpO1xufTtcblxuVm9pY2VNb2RlLnByb3RvdHlwZS5kaXNhYmxlID0gZnVuY3Rpb24gKCkge1xuICAkKFwiLnNjcm9sbGVyLmd1aWxkLWNoYW5uZWxzIHVsXCIpLmZpcnN0KCkuY3NzKFwiZGlzcGxheVwiLCBcIlwiKTtcbiAgJChcIi5zY3JvbGxlci5ndWlsZC1jaGFubmVscyBoZWFkZXJcIikuZmlyc3QoKS5jc3MoXCJkaXNwbGF5XCIsIFwiXCIpO1xuICAkKFwiLmFwcC5mbGV4LXZlcnRpY2FsLCAuYXBwLTJyRW9PcFwiKS5maXJzdCgpLmNzcyhcIm92ZXJmbG93XCIsIFwiXCIpO1xuICAkKFwiLmNoYXQtM2JSeHh1XCIpLmZpcnN0KCkuY3NzKFwidmlzaWJpbGl0eVwiLCBcIlwiKS5jc3MoXCJtaW4td2lkdGhcIiwgXCJcIik7XG4gICQoXCIuZmxleC12ZXJ0aWNhbC5jaGFubmVscy13cmFwXCIpLmZpcnN0KCkuY3NzKFwiZmxleC1ncm93XCIsIFwiXCIpO1xuICAkKFwiLmd1aWxkLWhlYWRlciAuYnRuLmJ0bi1oYW1idXJnZXJcIikuZmlyc3QoKS5jc3MoXCJ2aXNpYmlsaXR5XCIsIFwiXCIpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgbmV3IFZvaWNlTW9kZSgpOyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/voiceMode.js\n");

/***/ }),

/***/ "./src/webpackModules.js":
/*!*******************************!*\
  !*** ./src/webpackModules.js ***!
  \*******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nconst req = webpackJsonp.push([[], {\n  __extra_id__: (module, exports, req) => module.exports = req\n}, [[\"__extra_id__\"]]]);\ndelete req.m.__extra_id__;\ndelete req.c.__extra_id__;\n\nconst find = filter => {\n  for (const i in req.c) {\n    if (req.c.hasOwnProperty(i)) {\n      const m = req.c[i].exports;\n      if (m && m.__esModule && m.default && filter(m.default)) return m.default;\n      if (m && filter(m)) return m;\n    }\n  } // console.warn(\"Cannot find loaded module in cache\");\n\n\n  return null;\n};\n\nconst findAll = filter => {\n  const modules = [];\n\n  for (const i in req.c) {\n    if (req.c.hasOwnProperty(i)) {\n      const m = req.c[i].exports;\n      if (m && m.__esModule && m.default && filter(m.default)) modules.push(m.default);else if (m && filter(m)) modules.push(m);\n    }\n  }\n\n  return modules;\n};\n\nconst findByProps = (...propNames) => find(module => propNames.every(prop => module[prop] !== undefined));\n\nconst findByPrototypes = (...protoNames) => find(module => module.prototype && protoNames.every(protoProp => module.prototype[protoProp] !== undefined));\n\nconst findByDisplayName = displayName => find(module => module.displayName === displayName);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n  find,\n  findAll,\n  findByProps,\n  findByPrototypes,\n  findByDisplayName\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvd2VicGFja01vZHVsZXMuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3dlYnBhY2tNb2R1bGVzLmpzP2Q1N2QiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcmVxID0gd2VicGFja0pzb25wLnB1c2goW1tdLCB7XG4gIF9fZXh0cmFfaWRfXzogKG1vZHVsZSwgZXhwb3J0cywgcmVxKSA9PiBtb2R1bGUuZXhwb3J0cyA9IHJlcVxufSwgW1tcIl9fZXh0cmFfaWRfX1wiXV1dKTtcbmRlbGV0ZSByZXEubS5fX2V4dHJhX2lkX187XG5kZWxldGUgcmVxLmMuX19leHRyYV9pZF9fO1xuXG5jb25zdCBmaW5kID0gZmlsdGVyID0+IHtcbiAgZm9yIChjb25zdCBpIGluIHJlcS5jKSB7XG4gICAgaWYgKHJlcS5jLmhhc093blByb3BlcnR5KGkpKSB7XG4gICAgICBjb25zdCBtID0gcmVxLmNbaV0uZXhwb3J0cztcbiAgICAgIGlmIChtICYmIG0uX19lc01vZHVsZSAmJiBtLmRlZmF1bHQgJiYgZmlsdGVyKG0uZGVmYXVsdCkpIHJldHVybiBtLmRlZmF1bHQ7XG4gICAgICBpZiAobSAmJiBmaWx0ZXIobSkpIHJldHVybiBtO1xuICAgIH1cbiAgfSAvLyBjb25zb2xlLndhcm4oXCJDYW5ub3QgZmluZCBsb2FkZWQgbW9kdWxlIGluIGNhY2hlXCIpO1xuXG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBmaW5kQWxsID0gZmlsdGVyID0+IHtcbiAgY29uc3QgbW9kdWxlcyA9IFtdO1xuXG4gIGZvciAoY29uc3QgaSBpbiByZXEuYykge1xuICAgIGlmIChyZXEuYy5oYXNPd25Qcm9wZXJ0eShpKSkge1xuICAgICAgY29uc3QgbSA9IHJlcS5jW2ldLmV4cG9ydHM7XG4gICAgICBpZiAobSAmJiBtLl9fZXNNb2R1bGUgJiYgbS5kZWZhdWx0ICYmIGZpbHRlcihtLmRlZmF1bHQpKSBtb2R1bGVzLnB1c2gobS5kZWZhdWx0KTtlbHNlIGlmIChtICYmIGZpbHRlcihtKSkgbW9kdWxlcy5wdXNoKG0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtb2R1bGVzO1xufTtcblxuY29uc3QgZmluZEJ5UHJvcHMgPSAoLi4ucHJvcE5hbWVzKSA9PiBmaW5kKG1vZHVsZSA9PiBwcm9wTmFtZXMuZXZlcnkocHJvcCA9PiBtb2R1bGVbcHJvcF0gIT09IHVuZGVmaW5lZCkpO1xuXG5jb25zdCBmaW5kQnlQcm90b3R5cGVzID0gKC4uLnByb3RvTmFtZXMpID0+IGZpbmQobW9kdWxlID0+IG1vZHVsZS5wcm90b3R5cGUgJiYgcHJvdG9OYW1lcy5ldmVyeShwcm90b1Byb3AgPT4gbW9kdWxlLnByb3RvdHlwZVtwcm90b1Byb3BdICE9PSB1bmRlZmluZWQpKTtcblxuY29uc3QgZmluZEJ5RGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZSA9PiBmaW5kKG1vZHVsZSA9PiBtb2R1bGUuZGlzcGxheU5hbWUgPT09IGRpc3BsYXlOYW1lKTtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBmaW5kLFxuICBmaW5kQWxsLFxuICBmaW5kQnlQcm9wcyxcbiAgZmluZEJ5UHJvdG90eXBlcyxcbiAgZmluZEJ5RGlzcGxheU5hbWVcbn07Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/webpackModules.js\n");

/***/ }),

/***/ "electron":
/*!****************************************!*\
  !*** external "require(\"electron\")" ***!
  \****************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = require("electron");

/***/ }),

/***/ "events":
/*!**************************************!*\
  !*** external "require(\"events\")" ***!
  \**************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = require("events");

/***/ }),

/***/ "fs":
/*!**********************************!*\
  !*** external "require(\"fs\")" ***!
  \**********************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = require("fs");

/***/ }),

/***/ "module":
/*!*************************!*\
  !*** external "module" ***!
  \*************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = require("module");

/***/ }),

/***/ "path":
/*!************************************!*\
  !*** external "require(\"path\")" ***!
  \************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = require("path");

/***/ }),

/***/ "request":
/*!***************************************!*\
  !*** external "require(\"request\")" ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = require("request");

/***/ })

/******/ })["default"];