BetterDiscordApp-rauenzi/js/main.js

767 lines
888 KiB
JavaScript

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) {
eval("function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = \"./src sync recursive\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjIHN5bmM/YzU5ZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDLFdBQVc7QUFDbEQ7QUFDQTtBQUNBIiwiZmlsZSI6Ii4vc3JjIHN5bmMgcmVjdXJzaXZlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gd2VicGFja0VtcHR5Q29udGV4dChyZXEpIHtcblx0dmFyIGUgPSBuZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiICsgcmVxICsgXCInXCIpO1xuXHRlLmNvZGUgPSAnTU9EVUxFX05PVF9GT1VORCc7XG5cdHRocm93IGU7XG59XG53ZWJwYWNrRW1wdHlDb250ZXh0LmtleXMgPSBmdW5jdGlvbigpIHsgcmV0dXJuIFtdOyB9O1xud2VicGFja0VtcHR5Q29udGV4dC5yZXNvbHZlID0gd2VicGFja0VtcHR5Q29udGV4dDtcbm1vZHVsZS5leHBvcnRzID0gd2VicGFja0VtcHR5Q29udGV4dDtcbndlYnBhY2tFbXB0eUNvbnRleHQuaWQgPSBcIi4vc3JjIHN5bmMgcmVjdXJzaXZlXCI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src sync recursive\n");
/***/ }),
/***/ "./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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjLzBnbG9iYWxzLmpzP2EwNTkiXSwibmFtZXMiOlsibWluU3VwcG9ydGVkVmVyc2lvbiIsImJiZFZlcnNpb24iLCJiYmRDaGFuZ2Vsb2ciLCJkZXNjcmlwdGlvbiIsImNoYW5nZXMiLCJ0aXRsZSIsIml0ZW1zIiwidHlwZSIsInNldHRpbmdzIiwiaWQiLCJpbmZvIiwiaW1wbGVtZW50ZWQiLCJoaWRkZW4iLCJjYXQiLCJjYXRlZ29yeSIsImRlZmF1bHRDb29raWUiLCJzZXR0aW5nc0Nvb2tpZSIsImJkcGx1Z2luRXJyb3JzIiwiYmR0aGVtZUVycm9ycyIsImJkQ29uZmlnIiwiYmVtb3RlcyIsImVtb3Rlc0ZmeiIsImVtb3Rlc0JUVFYiLCJlbW90ZXNCVFRWMiIsImVtb3Rlc1R3aXRjaCIsInN1YkVtb3Rlc1R3aXRjaCIsImJkRW1vdGVzIiwiVHdpdGNoR2xvYmFsIiwiVHdpdGNoU3Vic2NyaWJlciIsIkJUVFYiLCJGcmFua2VyRmFjZVoiLCJCVFRWMiIsImJkRW1vdGVTZXR0aW5nSURzIiwiYmR0aGVtZXMiLCJiZHBsdWdpbnMiLCJwbHVnaW5Db29raWUiLCJ0aGVtZUNvb2tpZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNPLE1BQU1BLG1CQUFtQixHQUFHLE9BQTVCO0FBQ0EsTUFBTUMsVUFBVSxHQUFHLFFBQW5CO0FBQ0EsTUFBTUMsWUFBWSxHQUFHO0FBQ3hCQyxhQUFXLEVBQUUsd0NBRFc7QUFFeEJDLFNBQU8sRUFBRSxDQUNMO0FBQUNDLFNBQUssRUFBRSxhQUFSO0FBQXVCQyxTQUFLLEVBQUUsQ0FBQyxvRkFBRCxFQUF1RixrS0FBdkY7QUFBOUIsR0FESyxFQUVMO0FBQUNELFNBQUssRUFBRSxPQUFSO0FBQWlCRSxRQUFJ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TUFBTUMsZUFBZSxHQUFHLEVBQXhCO0FBRUEsTUFBTUMsUUFBUSxHQUFHO0FBQ3BCQyxjQUFZLEVBQUUsRUFETTtBQUVwQkMsa0JBQWdCLEVBQUUsRUFGRTtBQUdwQkMsTUFBSSxFQUFFLEVBSGM7QUFJcEJDLGNBQVksRUFBRSxFQUpNO0FBS3BCQyxPQUFLLEVBQUU7QUFMYSxDQUFqQjtBQVFBLE1BQU1DLGlCQUFpQixHQUFHO0FBQzdCTCxjQUFZLEVBQUUsVUFEZTtBQUU3QkMsa0JBQWdCLEVBQUUsVUFGVztBQUc3QkMsTUFBSSxFQUFFLFVBSHVCO0FBSTdCQyxjQUFZLEVBQUUsVUFKZTtBQUs3QkMsT0FBSyxFQUFFO0FBTHNCLENBQTFCO0FBUUEsTUFBTUUsUUFBUSxHQUFHLEVBQWpCO0FBQ0EsTUFBTUMsU0FBUyxHQUFHLEVBQWxCO0FBRUEsTUFBTUMsWUFBWSxHQUFHLEVBQXJCO0FBQ0EsTUFBTUMsV0FBVyxHQUFHLEVBQXBCIiwiZmlsZSI6Ii4vc3JjLzBnbG9iYWxzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdmFyIHNldHRpbmdzUGFuZWwsIGVtb3RlTW9kdWxlLCBxdWlja0Vtb3RlTWVudSwgdm9pY2VNb2RlLCBwbHVnaW5Nb2R1bGUsIHRoZW1lTW9kdWxlLCBkTW9kZSwgcHVibGljU2VydmVyc01vZHVsZSwgbWFpbkNvcmUsIEJEVjI7XHJcbmV4cG9ydCBjb25zdCBtaW5TdXBwb3J0ZWRWZXJzaW9uID0gXCIwLjMuMFwiO1xyXG5leHBvcnQgY29uc3QgYmJkVmVyc2lvbiA9IFwiMC4yLjI0XCI7XHJcbmV4cG9ydCBjb25zdCBiYmRDaGFuZ2Vsb2cgPSB7XHJcbiAgICBkZXNjcmlwdGlvbjogXCJNb3N0bHkgYmVoaW5kIHRoZSBzY2VuZXMgY2hhbmdlcyBoZXJlLlwiLFxyXG4gICAgY2hhbmdlczogW1xyXG4gICAgICAgIHt0aXRsZTogXCJXaGF0J3MgTmV3P1wiLCBpdGVtczogW1wiKipEYXJrIE1vZGUgaXMgYmFjayEqKiBPciByYXRoZXIuLi4gaXQncyB0b2dnbGVhYmxlIGFnYWluIGFuZCBubyBsb25nZXIgZm9yY2VkIG9uLlwiLCBcIioqQ2hhbmdlcyBmb3IgZGV2ZWxvcGVycyEqKiBQbHVnaW4gYW5kIHRoZW1lIGRldmVsb3BlcnMgd2lsbCBub3cgaGF2ZSBtb3JlIG9wdGlvbnMgdG8gY3VzdG9taXplIHRoZWlyIHBsdWdpbiBjYXJkcyBpbiB0aGVpciBNRVRBcyBhbmQgYWxzbyBhIG5ldyBNRVRBIHN0cnVjdHVyZS5cIl19LFxyXG4gICAgICAgIHt0aXRsZTogXCJGaXhlc1wiLCB0eXBlOiBcImZpeGVkXCIsIGl0ZW1zOiBbXCIqKkVtb3RlIE1lbnUqKiBzaG91bGQgbm93IHNob3cgYm90aCBUd2ljaCBHbG9iYWwgZW1vdGVzIGFuZCB5b3VyIGZhdm9yaXRlcywgeW91IHNob3VsZCBldmVuIGJlIGFibGUgdG8gY2xpY2sgb24gdGhlbSBhZ2FpbiFcIl19LFxyXG4gICAgICAgIHt0aXRsZTogXCJNaW5vciBTdHVmZlwiLCB0eXBlOiBcImltcHJvdmVkXCIsIGl0ZW1zOiBbXCIqKkNsZWFuIENvZGUuKiogV2VsbCBub3QgcmVhbGx5LiBCdXQgQkQncyBjb2RlIGlzIHN0YXJ0aW5nIHRvIGJlIGNsZWFuZWQgdXAgdG8gbWFrZSBpdCBlYXNpZXIgdG8gbWFpbnRhaW4gYW5kIGJldHRlciBwZXJmb3JtaW5nLlwiXX1cclxuICAgIF1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBzZXR0aW5ncyA9IHtcclxuICAgIFwiQ3VzdG9tIGNzcyBsaXZlIHVwZGF0ZVwiOiAgICAge2lkOiBcImJkYS1jc3MtMFwiLCBpbmZvOiBcIlwiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1wbGVtZW50ZWQ6IHRydWUsICBoaWRkZW46IHRydWUsICBjYXQ6IFwiY29yZVwifSxcclxuICAgIFwiQ3VzdG9tIGNzcyBhdXRvIHVkcGF0ZVwiOiAgICAge2lkOiBcImJkYS1jc3MtMVwiLCBpbmZvOiBcIlwiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1wbGVtZW50ZWQ6IHRydWUsICBoaWRkZW46IHRydWUsICBjYXQ6IFwiY29yZVwifSxcclxuICAgIFwiQmV0dGVyRGlzY29yZCBCbHVlXCI6ICAgICAgICAge2lkOiBcImJkYS1ncy1iXCIsICBpbmZvOiBcIlJlcGxhY2UgRGlzY29yZCBibHVlIHdpdGggQkQgQmx1ZVwiLCAgICAgICAgICAgICAgICAgaW1wbGVtZW50ZWQ6IGZhbHNlLCAgaGlkZGVuOiBmYWxzZSwgY2F0OiBcImNvcmVcIn0sXHJcblxyXG4gICAgLyogQ29yZSAqL1xyXG4gICAgLyogPT09PT09ICovXHJcbiAgICBcIlB1YmxpYyBTZXJ2ZXJzXCI6ICAgICAgICAgICAgIHtpZDogXCJiZGEtZ3MtMVwiLCAgaW5mbzogXCJEaXNwbGF5IHB1YmxpYyBzZXJ2ZXJzIGJ1dHRvblwiLCAgICAgICAgICAgICAgICAgICAgIGltcGxlbWVudGVkOiB0cnVlLCAgaGlkZGVuOiBmYWxzZSwgY2F0OiBcImNvcmVcIiwgY2F0ZWdvcnk6IFwibW9kdWxlc1wifSxcclxuICAgIFwiTWluaW1hbCBNb2RlXCI6ICAgICAgICAgICAgICAge2lkOiBcImJkYS1ncy0yXCIsICBpbmZvOiBcIkhpZGUgZWxlbWVudHMgYW5kIHJlZHVjZSB0aGUgc2l6ZSBvZiBlbGVtZW50cy5cIiwgICAgaW1wbGVtZW50ZWQ6IHRydWUsICBoaWRkZW46IGZhbHNlLCBjYXQ6IFwiY29yZVwiLCBjYXRlZ29yeTogXCJtb2R1bGVzXCJ9LFxyXG4gICAgXCJWb2ljZSBNb2RlXCI6ICAgICAgICAgICAgICAgICB7aWQ6IFwiYmRhLWdzLTRcIiwgIGluZm86IFwiT25seSBzaG93IHZvaWNlIGNoYXRcIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBsZW1lbnRlZDogdHJ1ZSwgIGhpZGRlbjogZmFsc2UsIGNhdDogXCJjb3JlXCIsIGNhdGVnb3J5OiBcIm1vZHVsZXNcIn0sXHJcbiAgICBcIkhpZGUgQ2hhbm5lbHNcIjogICAgICAgICAgICAgIHtpZDogXCJiZGEtZ3MtM1wiLCAgaW5mbzogXCJIaWRlIGNoYW5uZWxzIGluIG1pbmltYWwgbW9kZVwiLCAgICAgICAgICAgICAgICAgICAgIGltcGxlbWVudGVkOiB0cnVlLCAgaGlkZGVuOiBmYWxzZSwgY2F0OiBcImNvcmVcIiwgY2F0ZWdvcnk6IFwibW9kdWxlc1wifSxcclxuICAgIFwiRGFyayBNb2RlXCI6ICAgICAgICAgICAgICAgICAge2lkOiBcImJkYS1ncy01XCIsICBpbmZvOiBcIk1ha2UgY2VydGFpbiBlbGVtZW50cyBkYXJrIGJ5IGRlZmF1bHQod2lwKVwiLCAgICAgICAgaW1wbGVtZW50ZWQ6IHRydWUsICBoaWRkZW46IGZhbHNlLCBjYXQ6IFwiY29yZVwiLCBjYXRlZ29yeTogXCJtb2R1bGVzXCJ9LFxyXG4gICAgXCJWb2ljZSBEaXNjb25uZWN0XCI6ICAgICAgICAgICB7aWQ6IFwiYmRhLWRjLTBcIiwgIGluZm86IFwiRGlzY29ubmVjdCBmcm9tIHZvaWNlIHNlcnZlciB3aGVuIGNsb3NpbmcgRGlzY29yZFwiLCBpbXBsZW1lbnRlZDogdHJ1ZSwgIGhpZGRlbjogZmFsc2UsIGNhdDogXCJjb3JlXCIsIGNhdGVnb3J5OiBcIm1vZHVsZXNcIn0sXHJcbiAgICBcIjI0IEhvdXIgVGltZXN0YW1wc1wiOiAgICAgICAgIHtpZDogXCJiZGEtZ3MtNlwiLCAgaW5mbzogXCJSZXBsYWNlIDEyaHIgdGltZXN0YW1wcyB3aXRoIHByb3BlciBvbmVzXCIsICAgICAgICAgIGltcGxlbWVudGVkOiB0cnVlLCAgaGlkZGVuOiBmYWxzZSwgY2F0OiBcImNvcmVcIiwgY2F0ZWdvcnk6IFwibW9kdWxlc1wifSxcclxuICAgIFwiQ29sb3JlZCBUZXh0XCI6ICAgICAgICAgICAgICAge2lkOiBcImJkYS1ncy03XCIsICBpbmZvOiBcIk1ha2UgdGV4dCBjb2xvciB0aGUgc2FtZSBhcyByb2xlIGNvbG9yXCIsICAgICAgICAgIGltcGxlbWVudGVkOiB0cnVlLCAgaGlkZGVuOiBmYWxzZSwgY2F0OiBcImNvcmVcIiwgY2F0ZWdvcnk6IFwibW9kdWxlc1wifSxcclxuICAgIFwiTm9ybWFsaXplIENsYXNzZXNcIjogICAgICAgICAge2lkOiBcImZvcmstcHMtNFwiLCBpbmZvOiBcIkFkZHMgc3RhYmxlIGNsYXNzZXMgdG8gZWxlbWVudHMgdG8gaGVscCB0aGVtZXMuIChlLmcuIGFkZHMgLmRhLWNoYW5uZWxzIHRvIC5jaGFubmVscy1JZTJsNkEpXCIsIGltcGxlbWVudGVkOiB0cnVlLCAgaGlkZGVuOiBmYWxzZSwgY2F0OiBcImNvcmVcIiwgY2F0ZWdvcnk6IFwibW9kdWxlc1wifSxcclxuXHJcbiAgICAvKiBDb250ZW50ICovXHJcbiAgICBcIkNvbnRlbnQgRXJyb3IgTW9kYWxcIjogICAgICAgIHtpZDogXCJmb3JrLXBzLTFcIiwgaW5mbzogXCJTaG93cyBhIG1vZGFsIHdpdGggcGx1Z2luL3RoZW1lIGVycm9yc1wiLCBpbXBsZW1lbnRlZDogdHJ1ZSwgIGhpZGRlbjogZmFsc2UsIGNhdDogXCJjb3JlXCIsIGNhdGVnb3J5OiBcImNvbnRlbnQgbWFuYWdlclwifSxcclxuICAgIFwiU2hvdyBUb2FzdHNcIjogICAgICAgICAgICAgICAge2lkOiBcImZvcmstcHMtMlwiLCBpbmZvOiBcIlNob3dzIGEgc21hbGwgbm90aWZpY2F0aW9uIGZvciBpbXBvcnRhbnQgaW5mb3JtYXRpb25cIiwgaW1wbGVtZW50ZWQ6IHRydWUsICBoaWRkZW46IGZhbHNlLCBjYXQ6IFwiY29yZVwiLCBjYXRlZ29yeTogXCJjb250ZW50IG1hbmFnZXJcIn0sXHJcbiAgICBcIlNjcm9sbCBUbyBTZXR0aW5nc1wiOiAgICAgICAgIHtpZDogXCJmb3JrLXBzLTNcIiwgaW5mbzogXCJBdXRvLXNjcm9sbHMgdG8gYSBwbHVnaW4ncyBzZXR0aW5ncyB3aGVuIHRoZSBidXR0b24gaXMgY2xpY2tlZCAob25seSBpZiBvdXQgb2YgdmlldylcIiwgaW1wbGVtZW50ZWQ6IHRydWUsICBoaWRkZW46IGZhbHNlLCBjYXQ6IFwiY29yZVwiLCBjYXRlZ29yeTogXCJjb250ZW50IG1hbmFnZXJcIn0sXHJcbiAgICBcIkF1dG9tYXRpYyBMb2FkaW5nXCI6ICAgICAgICAgIHtpZDogXCJmb3JrLXBzLTVcIiwgaW5mbzogXCJBdXRvbWF0aWNhbGx5IGxvYWRzLCByZWxvYWRzLCBhbmQgdW5sb2FkcyBwbHVnaW5zIGFuZCB0aGVtZXNcIiwgaW1wbGVtZW50ZWQ6IHRydWUsICBoaWRkZW46IGZhbHNlLCBjYXQ6IFwiY29yZVwiLCBjYXRlZ29yeTogXCJjb250ZW50IG1hbmFnZXJcIn0sXHJcblxyXG4gICAgLyogRGV2ZWxvcGVyICovXHJcbiAgICBcIkRldmVsb3BlciBNb2RlXCI6ICAgICAgICAgXHQgIHtpZDogXCJiZGEtZ3MtOFwiLCAgaW5mbzogXCJEZXZlbG9wZXIgTW9kZVwiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcGxlbWVudGVkOiB0cnVlLCAgaGlkZGVuOiBmYWxzZSwgY2F0OiBcImNvcmVcIiwgY2F0ZWdvcnk6IFwiZGV2ZWxvcGVyIHNldHRpbmdzXCJ9LFxyXG4gICAgXCJDb3B5IFNlbGVjdG9yXCI6XHRcdFx0ICB7aWQ6IFwiZm9yay1kbS0xXCIsIGluZm86IFwiQWRkcyBhIFxcXCJDb3B5IFNlbGVjdG9yXFxcIiBvcHRpb24gdG8gY29udGV4dCBtZW51cyB3aGVuIGRldmVsb3BlciBtb2RlIGlzIGFjdGl2ZVwiLCBpbXBsZW1lbnRlZDogdHJ1ZSwgIGhpZGRlbjogZmFsc2UsIGNhdDogXCJjb3JlXCIsIGNhdGVnb3J5OiBcImRldmVsb3BlciBzZXR0aW5nc1wifSxcclxuXHJcbiAgICAvKiBXaW5kb3cgUHJlZnMgKi9cclxuICAgIFwiRW5hYmxlIFRyYW5zcGFyZW5jeVwiOiAgICAgICAge2lkOiBcImZvcmstd3AtMVwiLCBpbmZvOiBcIkVuYWJsZXMgdGhlIG1haW4gd2luZG93IHRvIGJlIHNlZS10aHJvdWdoIChyZXF1aXJlcyByZXN0YXJ0KVwiLCBpbXBsZW1lbnRlZDogdHJ1ZSwgIGhpZGRlbjogZmFsc2UsIGNhdDogXCJjb3JlXCIsIGNhdGVnb3J5OiBcIndpbmRvdyBwcmVmZXJlbmNlc1wifSxcclxuICAgIFwiV2luZG93IEZyYW1lXCI6ICAgICAgICAgICAgICAge2lkOiBcImZvcmstd3AtMlwiLCBpbmZvOiBcIkFkZHMgdGhlIG5hdGl2ZSBvcyB3aW5kb3cgZnJhbWUgdG8gdGhlIG1haW4gd2luZG93XCIsIGltcGxlbWVudGVkOiBmYWxzZSwgIGhpZGRlbjogdHJ1ZSwgY2F0OiBcImNvcmVcIiwgY2F0ZWdvcnk6IFwid2luZG93IHByZWZlcmVuY2VzXCJ9LFxyXG5cclxuXHJcbiAgICAvKiBFbW90ZXMgKi9cclxuICAgIC8qID09PT09PSAqL1xyXG4gICAgXCJEb3dubG9hZCBFbW90ZXNcIjogICAgICAgICAgICB7aWQ6IFwiZm9yay1lcy0zXCIsIGluZm86IFwiRG93bmxvYWQgZW1vdGVzIHdoZW4gdGhlIGNhY2hlIGlzIGV4cGlyZWRcIiwgaW1wbGVtZW50ZWQ6IHRydWUsICBoaWRkZW46IGZhbHNlLCBjYXQ6IFwiZW1vdGVcIn0sXHJcbiAgICBcIlR3aXRjaCBFbW90ZXNcIjogICAgICAgICAgICAgIHtpZDogXCJiZGEtZXMtN1wiLCAgaW5mbzogXCJTaG93IFR3aXRjaCBlbW90ZXNcIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcGxlbWVudGVkOiB0cnVlLCAgaGlkZGVuOiBmYWxzZSwgY2F0OiBcImVtb3RlXCJ9LFxyXG4gICAgXCJGcmFua2VyRmFjZVogRW1vdGVzXCI6ICAgICAgICB7aWQ6IFwiYmRhLWVzLTFcIiwgIGluZm86IFwiU2hvdyBGcmFua2VyRmFjZVogRW1vdGVzXCIsICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBsZW1lbnRlZDogdHJ1ZSwgIGhpZGRlbjogZmFsc2UsIGNhdDogXCJlbW90ZVwifSxcclxuICAgIFwiQmV0dGVyVFRWIEVtb3Rlc1wiOiAgICAgICAgICAge2lkOiBcImJkYS1lcy0yXCIsICBpbmZvOiBcIlNob3cgQmV0dGVyVFRWIEVtb3Rlc1wiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1wbGVtZW50ZWQ6IHRydWUsICBoaWRkZW46IGZhbHNlLCBjYXQ6IFwiZW1vdGVcIn0sXHJcbiAgICBcIkVtb3RlIE1lbnVcIjogICAgICAgICAgICAgICAgIHtpZDogXCJiZGEtZXMtMFwiLCAgaW5mbzogXCJTaG93IFR3aXRjaC9GYXZvdXJpdGUgZW1vdGVzIGluIGVtb3RlIG1lbnVcIiwgICAgICAgIGltcGxlbWVudGVkOiB0cnVlLCAgaGlkZGVuOiBmYWxzZSwgY2F0OiBcImVtb3RlXCJ9LFxyXG4gICAgXCJFbW9qaSBNZW51XCI6ICAgICAgICAgICAgICAgICB7aWQ6IFwiYmRhLWVzLTlcIiwgIGluZm86IFwiU2hvdyBEaXNjb3JkIGVtb2ppIG1lbnVcIiwgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBsZW1lbnRlZDogdHJ1ZSwgIGhpZGRlbjogZmFsc2UsIGNhdDogXCJlbW90ZVwifSxcclxuICAgIFwiRW1vdGUgQXV0byBDYXBpdGFsaXphdGlvblwiOiAge2lkOiBcImJkYS1lcy00XCIsICBpbmZvOiBcIkF1dG9jYXBpdGFsaXplIGVtb3RlIGNvbW1hbmRzXCIsICAgICAgICAgICAgICAgICAgICAgaW1wbGVtZW50ZWQ6IHRydWUsICBoaWRkZW46IGZhbHNlLCBjYXQ6IFwiZW1vdGVcIn0sXHJcbiAgICBcIlNob3cgTmFtZXNcIjogICAgICAgICAgICAgICAgIHtpZDogXCJiZGEtZXMtNlwiLCAgaW5mbzogXCJTaG93IGVtb3RlIG5hbWVzIG9uIGhvdmVyXCIsICAgICAgICAgICAgICAgICAgICAgICAgIGltcGxlbWVudGVkOiB0cnVlLCAgaGlkZGVuOiBmYWxzZSwgY2F0OiBcImVtb3RlXCJ9LFxyXG4gICAgXCJTaG93IGVtb3RlIG1vZGlmaWVyc1wiOiAgICAgICB7aWQ6IFwiYmRhLWVzLThcIiwgIGluZm86IFwiRW5hYmxlIGVtb3RlIG1vZHMgKGZsaXAsIHNwaW4sIHB1bHNlLCBzcGluMiwgc3BpbjMsIDFzcGluLCAyc3BpbiwgM3NwaW4sIHRyLCBibCwgYnIsIHNoYWtlLCBzaGFrZTIsIHNoYWtlMywgZmxhcClcIiwgaW1wbGVtZW50ZWQ6IHRydWUsICBoaWRkZW46IGZhbHNlLCBjYXQ6IFwiZW1vdGVcIn0sXHJcbiAgICBcIkFuaW1hdGUgT24gSG92ZXJcIjogICAgICAgICAgIHtpZDogXCJmb3JrLWVzLTJcIiwgaW5mbzogXCJPbmx5IGFuaW1hdGUgdGhlIGVtb3RlIG1vZGlmaWVycyBvbiBob3ZlclwiLCBpbXBsZW1lbnRlZDogdHJ1ZSwgIGhpZGRlbjogZmFsc2UsIGNhdDogXCJlbW90ZVwifVxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRDb29raWUgPSB7XHJcbiAgICBcImJkYS1ncy0xXCI6IHRydWUsXHJcbiAgICBcImJkYS1ncy0yXCI6IGZhbHNlLFxyXG4gICAgXCJiZGEtZ3MtM1wiOiBmYWxzZSxcclxuICAgIFwiYmRhLWdzLTRcIjogZmFsc2UsXHJcbiAgICBcImJkYS1ncy01XCI6IHRydWUsXHJcbiAgICBcImJkYS1ncy02XCI6IGZhbHNlLFxyXG4gICAgXCJiZGEtZ3MtN1wiOiBmYWxzZSxcclxuICAgIFwiYmRhLWdzLThcIjogZmFsc2UsXHJcbiAgICBcImJkYS1lcy0wXCI6IHRydWUsXHJcbiAgICBcImJkYS1lcy0xXCI6IHRydWUsXHJcbiAgICBcImJkYS1lcy0yXCI6IHRydWUsXHJcbiAgICBcImJkYS1lcy00XCI6IGZhbHNlLFxyXG4gICAgXCJiZGEtZXMtNlwiOiB0cnVlLFxyXG4gICAgXCJiZGEtZXMtN1wiOiB0cnVlLFxyXG4gICAgXCJiZGEtZ3MtYlwiOiBmYWxzZSxcclxuICAgIFwiYmRhLWVzLThcIjogdHJ1ZSxcclxuICAgIFwiYmRhLWRjLTBcIjogZmFsc2UsXHJcbiAgICBcImJkYS1jc3MtMFwiOiBmYWxzZSxcclxuICAgIFwiYmRhLWNzcy0xXCI6IGZhbHNlLFxyXG4gICAgXCJiZGEtZXMtOVwiOiB0cnVlLFxyXG4gICAgXCJmb3JrLWRtLTFcIjogZmFsc2UsXHJcbiAgICBcImZvcmstcHMtMVwiOiB0cnVlLFxyXG4gICAgXCJmb3JrLXBzLTJcIjogdHJ1ZSxcclxuICAgIFwiZm9yay1wcy0zXCI6IHRydWUsXHJcbiAgICBcImZvcmstcHMtNFwiOiB0cnVlLFxyXG4gICAgXCJmb3JrLXBzLTVcIjogdHJ1ZSxcclxuICAgIFwiZm9yay1lcy0yXCI6IGZhbHNlLFxyXG4gICAgXCJmb3JrLWVzLTNcIjogdHJ1ZSxcclxuICAgIFwiZm9yay13cC0xXCI6IGZhbHNlLFxyXG4gICAgXCJmb3JrLXdwLTJcIjogZmFsc2VcclxufTtcclxuXHJcblxyXG5leHBvcnQgY29uc3Qgc2V0dGluZ3NDb29raWUgPSB7fTtcclxuXHJcbmV4cG9ydCBjb25zdCBiZHBsdWdpbkVycm9ycyA9IFtdO1xyXG5leHBvcnQgY29uc3QgYmR0aGVtZUVycm9ycyA9IFtdOyAvLyBkZWZpbmUgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XHJcblxyXG5leHBvcnQgY29uc3QgYmRDb25maWcgPSB7fTtcclxuXHJcbmV4cG9ydCBjb25zdCBiZW1vdGVzID0gW107XHJcbmV4cG9ydCBjb25zdCBlbW90ZXNGZnogPSB7fTtcclxuZXhwb3J0IGNvbnN0IGVtb3Rlc0JUVFYgPSB7fTtcclxuZXhwb3J0IGNvbnN0IGVtb3Rlc0JUVFYyID0ge307XHJcbmV4cG9ydCBjb25zdCBlbW90ZXNUd2l0Y2ggPSB7fTtcclxuZXhwb3J0IGNvbnN0IHN1YkVtb3Rlc1R3aXRjaCA9IHt9O1xyXG5cclxuZXhwb3J0IGNvbnN0IGJkRW1vdGVzID0ge1xyXG4gICAgVHdpdGNoR2xvYmFsOiB7fSxcclxuICAgIFR3aXRjaFN1YnNjcmliZXI6IHt9LFxyXG4gICAgQlRUVjoge30sXHJcbiAgICBGcmFua2VyRmFjZVo6IHt9LFxyXG4gICAgQlRUVjI6IHt9XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgYmRFbW90ZVNldHRpbmdJRHMgPSB7XHJcbiAgICBUd2l0Y2hHbG9iYWw6IFwiYmRhLWVzLTdcIixcclxuICAgIFR3aXRjaFN1YnNjcmliZXI6IFwiYmRhLWVzLTdcIixcclxuICAgIEJUVFY6IFwiYmRhLWVzLTJcIixcclxuICAgIEZyYW5rZXJGYWNlWjogXCJiZGEtZXMtMVwiLFxyXG4gICAgQlRUVjI6IFwiYmRhLWVzLTJcIlxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGJkdGhlbWVzID0ge307XHJcbmV4cG9ydCBjb25zdCBiZHBsdWdpbnMgPSB7fTtcclxuXHJcbmV4cG9ydCBjb25zdCBwbHVnaW5Db29raWUgPSB7fTtcclxuZXhwb3J0IGNvbnN0IHRoZW1lQ29va2llID0ge307XHJcblxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/0globals.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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2JkQXBpLmpzP2Q0M2QiXSwibmFtZXMiOlsiQmRBcGkiLCJSZWFjdCIsIkJEVjIiLCJyZWFjdCIsIlJlYWN0RE9NIiwicmVhY3REb20iLCJXaW5kb3dDb25maWdGaWxlIiwiX3dpbmRvd0NvbmZpZ0ZpbGUiLCJlbGVjdHJvbiIsInJlcXVpcmUiLCJyZW1vdGUiLCJhcHAiLCJwYXRoIiwiYmFzZSIsImdldEFwcFBhdGgiLCJyb2FtaW5nQmFzZSIsImdldFBhdGgiLCJyb2FtaW5nTG9jYXRpb24iLCJyZXNvbHZlIiwiZ2V0VmVyc2lvbiIsImxvY2F0aW9uIiwiZnMiLCJyZWFsTG9jYXRpb24iLCJleGlzdHNTeW5jIiwiZ2V0QWxsV2luZG93UHJlZmVyZW5jZXMiLCJfX25vbl93ZWJwYWNrX3JlcXVpcmVfXyIsImdldFdpbmRvd1ByZWZlcmVuY2UiLCJrZXkiLCJ1bmRlZmluZWQiLCJzZXRXaW5kb3dQcmVmZXJlbmNlIiwidmFsdWUiLCJwcmVmcyIsIndyaXRlRmlsZVN5bmMiLCJKU09OIiwic3RyaW5naWZ5IiwiaW5qZWN0Q1NTIiwiaWQiLCJjc3MiLCIkIiwiYXBwZW5kIiwiVXRpbHMiLCJlc2NhcGVJRCIsInRleHQiLCJjbGVhckNTUyIsInJlbW92ZSIsImxpbmtKUyIsInVybCIsInNyYyIsInR5cGUiLCJ1bmxpbmtKUyIsImdldFBsdWdpbiIsIm5hbWUiLCJiZHBsdWdpbnMiLCJoYXNPd25Qcm9wZXJ0eSIsInBsdWdpbiIsImdldENvcmUiLCJtYWluQ29yZSIsImFsZXJ0IiwidGl0bGUiLCJjb250ZW50IiwiTW9kYWxTdGFjayIsImZpbmRNb2R1bGVCeVByb3BzIiwiQWxlcnRNb2RhbCIsImZpbmRNb2R1bGVCeVByb3RvdHlwZXMiLCJwdXNoIiwicHJvcHMiLCJjcmVhdGVFbGVtZW50IiwiT2JqZWN0IiwiYXNzaWduIiwiYm9keSIsInNob3dDb25maXJtYXRpb25Nb2RhbCIsIm9wdGlvbnMiLCJUZXh0RWxlbWVudCIsIkNvbmZpcm1hdGlvbk1vZGFsIiwiZmluZE1vZHVsZSIsIm0iLCJkZWZhdWx0UHJvcHMiLCJvbkNvbmZpcm0iLCJvbkNhbmNlbCIsImNvbmZpcm1UZXh0IiwiY2FuY2VsVGV4dCIsImRhbmdlciIsImNvbG9yIiwiQ29sb3JzIiwiUFJJTUFSWSIsImNoaWxkcmVuIiwiQXJyYXkiLCJpc0FycmF5IiwiZW1wdHlGdW5jdGlvbiIsImhlYWRlciIsInJlZCIsInNob3dUb2FzdCIsImZpbHRlciIsIldlYnBhY2tNb2R1bGVzIiwiZmluZCIsImZpbmRBbGxNb2R1bGVzIiwiZmluZEFsbCIsImZpbmRCeVVuaXF1ZVByb3BlcnRpZXMiLCJwcm90b3MiLCJmaW5kQnlQcm90b3R5cGVzIiwiZmluZE1vZHVsZUJ5RGlzcGxheU5hbWUiLCJmaW5kQnlEaXNwbGF5TmFtZSIsImdldEludGVybmFsSW5zdGFuY2UiLCJub2RlIiwid2luZG93IiwialF1ZXJ5IiwiRWxlbWVudCIsImxvYWREYXRhIiwicGx1Z2luTmFtZSIsIkRhdGFTdG9yZSIsImdldFBsdWdpbkRhdGEiLCJnZXREYXRhIiwic2F2ZURhdGEiLCJkYXRhIiwic2V0UGx1Z2luRGF0YSIsInNldERhdGEiLCJkZWxldGVEYXRhIiwiZGVsZXRlUGx1Z2luRGF0YSIsIm1vbmtleVBhdGNoIiwid2hhdCIsIm1ldGhvZE5hbWUiLCJvblJlbW92ZWQiLCJjYWxsYmFjayIsInN1cHByZXNzRXJyb3JzIiwibWV0aG9kIiwibWVzc2FnZSIsInRlc3RKU09OIiwiaXNQbHVnaW5FbmFibGVkIiwicGx1Z2luQ29va2llIiwiaXNUaGVtZUVuYWJsZWQiLCJ0aGVtZUNvb2tpZSIsImlzU2V0dGluZ0VuYWJsZWQiLCJzZXR0aW5nc0Nvb2tpZSIsImdldEJERGF0YSIsInNldEJERGF0YSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLE1BQU1BLEtBQUssR0FBRztBQUNWLE1BQUlDLEtBQUosR0FB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UzFHLEdBQVQsRUFBYztBQUM1QixTQUFPa0Ysa0RBQVMsQ0FBQ3dCLFNBQVYsQ0FBb0IxRyxHQUFwQixDQUFQO0FBQ0gsQ0FGRCxDLENBSUE7OztBQUNBM0IsS0FBSyxDQUFDc0ksU0FBTixHQUFrQixVQUFTM0csR0FBVCxFQUFjc0YsSUFBZCxFQUFvQjtBQUNsQyxTQUFPSixrREFBUyxDQUFDeUIsU0FBVixDQUFvQjNHLEdBQXBCLEVBQXlCc0YsSUFBekIsQ0FBUDtBQUNILENBRkQ7O0FBSWVqSCxvRUFBZiIsImZpbGUiOiIuL3NyYy9iZEFwaS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7cGx1Z2luQ29va2llLCB0aGVtZUNvb2tpZSwgc2V0dGluZ3NDb29raWUsIGJkcGx1Z2luc30gZnJvbSBcIi4vMGdsb2JhbHNcIjtcclxuaW1wb3J0IG1haW5Db3JlIGZyb20gXCIuL2NvcmVcIjtcclxuaW1wb3J0IFV0aWxzIGZyb20gXCIuL3V0aWxzXCI7XHJcbmltcG9ydCBCRFYyIGZyb20gXCIuL3YyXCI7XHJcbmltcG9ydCBEYXRhU3RvcmUgZnJvbSBcIi4vZGF0YVN0b3JlXCI7XHJcblxyXG5jb25zdCBCZEFwaSA9IHtcclxuICAgIGdldCBSZWFjdCgpIHsgcmV0dXJuIEJEVjIucmVhY3Q7IH0sXHJcbiAgICBnZXQgUmVhY3RET00oKSB7IHJldHVybiBCRFYyLnJlYWN0RG9tOyB9LFxyXG4gICAgZ2V0IFdpbmRvd0NvbmZpZ0ZpbGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3dpbmRvd0NvbmZpZ0ZpbGUpIHJldHVybiB0aGlzLl93aW5kb3dDb25maWdGaWxlO1xyXG4gICAgICAgIGNvbnN0IGVsZWN0cm9uID0gcmVxdWlyZShcImVsZWN0cm9uXCIpLnJlbW90ZS5hcHA7XHJcbiAgICAgICAgY29uc3QgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xyXG4gICAgICAgIGNvbnN0IGJhc2UgPSBlbGVjdHJvbi5nZXRBcHBQYXRoKCk7XHJcbiAgICAgICAgY29uc3Qgcm9hbWluZ0Jhc2UgPSBlbGVjdHJvbi5nZXRQYXRoKFwidXNlckRhdGFcIik7XHJcbiAgICAgICAgY29uc3Qgcm9hbWluZ0xvY2F0aW9uID0gcGF0aC5yZXNvbHZlKHJvYW1pbmdCYXNlLCBlbGVjdHJvbi5nZXRWZXJzaW9uKCksIFwibW9kdWxlc1wiLCBcImRpc2NvcmRfZGVza3RvcF9jb3JlXCIsIFwiaW5qZWN0b3JcIiwgXCJjb25maWcuanNvblwiKTtcclxuICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHBhdGgucmVzb2x2ZShiYXNlLCBcIi4uXCIsIFwiYXBwXCIsIFwiY29uZmlnLmpzb25cIik7XHJcbiAgICAgICAgY29uc3QgZnMgPSByZXF1aXJlKFwiZnNcIik7XHJcbiAgICAgICAgY29uc3QgcmVhbExvY2F0aW9uID0gZnMuZXhpc3RzU3luYyhsb2NhdGlvbikgPyBsb2NhdGlvbiA6IGZzLmV4aXN0c1N5bmMocm9hbWluZ0xvY2F0aW9uKSA/IHJvYW1pbmdMb2NhdGlvbiA6IG51bGw7XHJcbiAgICAgICAgaWYgKCFyZWFsTG9jYXRpb24pIHJldHVybiB0aGlzLl93aW5kb3dDb25maWdGaWxlID0gbnVsbDtcclxuICAgICAgICByZXR1cm4gdGhpcy5fd2luZG93Q29uZmlnRmlsZSA9IHJlYWxMb2NhdGlvbjtcclxuICAgIH1cclxufTtcclxuXHJcbkJkQXBpLmdldEFsbFdpbmRvd1ByZWZlcmVuY2VzID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoIXRoaXMuV2luZG93Q29uZmlnRmlsZSkgcmV0dXJuIHt9OyAvLyBUZW1wZml4IHVudGlsIG5ldyBpbmplY3Rpb24gb24gb3RoZXIgcGxhdGZvcm1zXHJcbiAgICByZXR1cm4gX19ub25fd2VicGFja19yZXF1aXJlX18odGhpcy5XaW5kb3dDb25maWdGaWxlKTtcclxufTtcclxuXHJcbkJkQXBpLmdldFdpbmRvd1ByZWZlcmVuY2UgPSBmdW5jdGlvbihrZXkpIHtcclxuICAgIGlmICghdGhpcy5XaW5kb3dDb25maWdGaWxlKSByZXR1cm4gdW5kZWZpbmVkOyAvLyBUZW1wZml4IHVudGlsIG5ldyBpbmplY3Rpb24gb24gb3RoZXIgcGxhdGZvcm1zXHJcbiAgICByZXR1cm4gdGhpcy5nZXRBbGxXaW5kb3dQcmVmZXJlbmNlcygpW2tleV07XHJcbn07XHJcblxyXG5CZEFwaS5zZXRXaW5kb3dQcmVmZXJlbmNlID0gZnVuY3Rpb24oa2V5LCB2YWx1ZSkge1xyXG4gICAgaWYgKCF0aGlzLldpbmRvd0NvbmZpZ0ZpbGUpIHJldHVybjsgLy8gVGVtcGZpeCB1bnRpbCBuZXcgaW5qZWN0aW9uIG9uIG90aGVyIHBsYXRmb3Jtc1xyXG4gICAgY29uc3QgZnMgPSByZXF1aXJlKFwiZnNcIik7XHJcbiAgICBjb25zdCBwcmVmcyA9IHRoaXMuZ2V0QWxsV2luZG93UHJlZmVyZW5jZXMoKTtcclxuICAgIHByZWZzW2tleV0gPSB2YWx1ZTtcclxuICAgIGRlbGV0ZSByZXF1aXJlLmNhY2hlW3RoaXMuV2luZG93Q29uZmlnRmlsZV07XHJcbiAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMuV2luZG93Q29uZmlnRmlsZSwgSlNPTi5zdHJpbmdpZnkocHJlZnMsIG51bGwsIDQpKTtcclxufTtcclxuXHJcbi8vSW5qZWN0IENTUyB0byBkb2N1bWVudCBoZWFkXHJcbi8vaWQgPSBpZCBvZiBlbGVtZW50XHJcbi8vY3NzID0gY3VzdG9tIGNzc1xyXG5CZEFwaS5pbmplY3RDU1MgPSBmdW5jdGlvbiAoaWQsIGNzcykge1xyXG4gICAgJChcImhlYWRcIikuYXBwZW5kKCQoXCI8c3R5bGU+XCIsIHtpZDogVXRpbHMuZXNjYXBlSUQoaWQpLCB0ZXh0OiBjc3N9KSk7XHJcbn07XHJcblxyXG4vL0NsZWFyIGNzcy9yZW1vdmUgYW55IGVsZW1lbnRcclxuLy9pZCA9IGlkIG9mIGVsZW1lbnRcclxuQmRBcGkuY2xlYXJDU1MgPSBmdW5jdGlvbiAoaWQpIHtcclxuICAgICQoXCIjXCIgKyBVdGlscy5lc2NhcGVJRChpZCkpLnJlbW92ZSgpO1xyXG59O1xyXG5cclxuLy9JbmplY3QgQ1NTIHRvIGRvY3VtZW50IGhlYWRcclxuLy9pZCA9IGlkIG9mIGVsZW1lbnRcclxuLy9jc3MgPSBjdXN0b20gY3NzXHJcbkJkQXBpLmxpbmtKUyA9IGZ1bmN0aW9uIChpZCwgdXJsKSB7XHJcbiAgICAkKFwiaGVhZFwiKS5hcHBlbmQoJChcIjxzY3JpcHQ+XCIsIHtpZDogVXRpbHMuZXNjYXBlSUQoaWQpLCBzcmM6IHVybCwgdHlwZTogXCJ0ZXh0L2phdmFzY3JpcHRcIn0pKTtcclxufTtcclxuXHJcbi8vQ2xlYXIgY3NzL3JlbW92ZSBhbnkgZWxlbWVudFxyXG4vL2lkID0gaWQgb2YgZWxlbWVudFxyXG5CZEFwaS51bmxpbmtKUyA9IGZ1bmN0aW9uIChpZCkge1xyXG4gICAgJChcIiNcIiArIFV0aWxzLmVzY2FwZUlEKGlkKSkucmVtb3ZlKCk7XHJcbn07XHJcblxyXG4vL0dldCBhbm90aGVyIHBsdWdpblxyXG4vL25hbWUgPSBuYW1lIG9mIHBsdWdpblxyXG5CZEFwaS5nZXRQbHVnaW4gPSBmdW5jdGlvbiAobmFtZSkge1xyXG4gICAgaWYgKGJkcGx1Z2lucy5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xyXG4gICAgICAgIHJldHVybiBiZHBsdWdpbnNbbmFtZV0ucGx1Z2luO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbn07XHJcblxyXG4vL0dldCBCZXR0ZXJEaXNjb3JkIENvcmVcclxuQmRBcGkuZ2V0Q29yZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiBtYWluQ29yZTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBTaG93cyBhIGdlbmVyaWMgYnV0IHZlcnkgY3VzdG9taXphYmxlIG1vZGFsLlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gdGl0bGUgLSB0aXRsZSBvZiB0aGUgbW9kYWxcclxuICogQHBhcmFtIHtzdHJpbmd9IGNvbnRlbnQgLSBhIHN0cmluZyBvZiB0ZXh0IHRvIGRpc3BsYXkgaW4gdGhlIG1vZGFsXHJcbiAqL1xyXG5CZEFwaS5hbGVydCA9IGZ1bmN0aW9uICh0aXRsZSwgY29udGVudCkge1xyXG4gICAgY29uc3QgTW9kYWxTdGFjayA9IEJkQXBpLmZpbmRNb2R1bGVCeVByb3BzKFwicHVzaFwiLCBcInVwZGF0ZVwiLCBcInBvcFwiLCBcInBvcFdpdGhLZXlcIik7XHJcbiAgICBjb25zdCBBbGVydE1vZGFsID0gQmRBcGkuZmluZE1vZHVsZUJ5UHJvdG90eXBlcyhcImhhbmRsZUNhbmNlbFwiLCBcImhhbmRsZVN1Ym1pdFwiLCBcImhhbmRsZU1pbm9yQ29uZmlybVwiKTtcclxuICAgIGlmICghTW9kYWxTdGFjayB8fCAhQWxlcnRNb2RhbCkgcmV0dXJuIG1haW5Db3JlLmFsZXJ0KHRpdGxlLCBjb250ZW50KTtcclxuXHJcbiAgICBNb2RhbFN0YWNrLnB1c2goZnVuY3Rpb24ocHJvcHMpIHtcclxuICAgICAgICByZXR1cm4gQmRBcGkuUmVhY3QuY3JlYXRlRWxlbWVudChBbGVydE1vZGFsLCBPYmplY3QuYXNzaWduKHtcclxuICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxyXG4gICAgICAgICAgICBib2R5OiBjb250ZW50LFxyXG4gICAgICAgIH0sIHByb3BzKSk7XHJcbiAgICB9KTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBTaG93cyBhIGdlbmVyaWMgYnV0IHZlcnkgY3VzdG9taXphYmxlIGNvbmZpcm1hdGlvbiBtb2RhbCB3aXRoIG9wdGlvbmFsIGNvbmZpcm0gYW5kIGNhbmNlbCBjYWxsYmFja3MuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSB0aXRsZSAtIHRpdGxlIG9mIHRoZSBtb2RhbFxyXG4gKiBAcGFyYW0geyhzdHJpbmd8UmVhY3RFbGVtZW50fEFycmF5PHN0cmluZ3xSZWFjdEVsZW1lbnQ+KX0gY2hpbGRyZW4gLSBhIHNpbmdsZSBvciBtaXhlZCBhcnJheSBvZiByZWFjdCBlbGVtZW50cyBhbmQgc3RyaW5ncy4gRXZlcnl0aGluZyBpcyB3cmFwcGVkIGluIERpc2NvcmQncyBgVGV4dEVsZW1lbnRgIGNvbXBvbmVudCBzbyBzdHJpbmdzIHdpbGwgc2hvdyBhbmQgcmVuZGVyIHByb3Blcmx5LlxyXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdIC0gb3B0aW9ucyB0byBtb2RpZnkgdGhlIG1vZGFsXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuZGFuZ2VyPWZhbHNlXSAtIHdoZXRoZXIgdGhlIG1haW4gYnV0dG9uIHNob3VsZCBiZSByZWQgb3Igbm90XHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5jb25maXJtVGV4dD1Pa2F5XSAtIHRleHQgZm9yIHRoZSBjb25maXJtYXRpb24vc3VibWl0IGJ1dHRvblxyXG4gKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuY2FuY2VsVGV4dD1DYW5jZWxdIC0gdGV4dCBmb3IgdGhlIGNhbmNlbCBidXR0b25cclxuICogQHBhcmFtIHtjYWxsYWJsZX0gW29wdGlvbnMub25Db25maXJtPU5PT1BdIC0gY2FsbGJhY2sgdG8gb2NjdXIgd2hlbiBjbGlja2luZyB0aGUgc3VibWl0IGJ1dHRvblxyXG4gKiBAcGFyYW0ge2NhbGxhYmxlfSBbb3B0aW9ucy5vbkNhbmNlbD1OT09QXSAtIGNhbGxiYWNrIHRvIG9jY3VyIHdoZW4gY2xpY2tpbmcgdGhlIGNhbmNlbCBidXR0b25cclxuICovXHJcbkJkQXBpLnNob3dDb25maXJtYXRpb25Nb2RhbCA9IGZ1bmN0aW9uICh0aXRsZSwgY29udGVudCwgb3B0aW9ucyA9IHt9KSB7XHJcbiAgICBjb25zdCBNb2RhbFN0YWNrID0gQmRBcGkuZmluZE1vZHVsZUJ5UHJvcHMoXCJwdXNoXCIsIFwidXBkYXRlXCIsIFwicG9wXCIsIFwicG9wV2l0aEtleVwiKTtcclxuICAgIGNvbnN0IFRleHRFbGVtZW50ID0gQmRBcGkuZmluZE1vZHVsZUJ5UHJvcHMoXCJTaXplc1wiLCBcIldlaWdodHNcIik7XHJcbiAgICBjb25zdCBDb25maXJtYXRpb25Nb2RhbCA9IEJkQXBpLmZpbmRNb2R1bGUobSA9PiBtLmRlZmF1bHRQcm9wcyAmJiBtLmtleSAmJiBtLmtleSgpID09IFwiY29uZmlybS1tb2RhbFwiKTtcclxuICAgIGlmICghTW9kYWxTdGFjayB8fCAhQ29uZmlybWF0aW9uTW9kYWwgfHwgIVRleHRFbGVtZW50KSByZXR1cm4gbWFpbkNvcmUuYWxlcnQodGl0bGUsIGNvbnRlbnQpO1xyXG5cclxuICAgIGNvbnN0IHtvbkNvbmZpcm0sIG9uQ2FuY2VsLCBjb25maXJtVGV4dCwgY2FuY2VsVGV4dCwgZGFuZ2VyID0gZmFsc2V9ID0gb3B0aW9ucztcclxuICAgIGlmICh0eXBlb2YoY29udGVudCkgPT0gXCJzdHJpbmdcIikgY29udGVudCA9IFRleHRFbGVtZW50KHtjb2xvcjogVGV4dEVsZW1lbnQuQ29sb3JzLlBSSU1BUlksIGNoaWxkcmVuOiBbY29udGVudF19KTtcclxuICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY29udGVudCkpIGNvbnRlbnQgPSBUZXh0RWxlbWVudCh7Y29sb3I6IFRleHRFbGVtZW50LkNvbG9ycy5QUklNQVJZLCBjaGlsZHJlbjogY29udGVudH0pO1xyXG4gICAgY29udGVudCA9IFtjb250ZW50XTtcclxuXHJcbiAgICBjb25zdCBlbXB0eUZ1bmN0aW9uID0gKCkgPT4ge307XHJcbiAgICBNb2RhbFN0YWNrLnB1c2goZnVuY3Rpb24ocHJvcHMpIHtcclxuICAgICAgICByZXR1cm4gQmRBcGkuUmVhY3QuY3JlYXRlRWxlbWVudChDb25maXJtYXRpb25Nb2RhbCwgT2JqZWN0LmFzc2lnbih7XHJcbiAgICAgICAgICAgIGhlYWRlcjogdGl0bGUsXHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiBjb250ZW50LFxyXG4gICAgICAgICAgICByZWQ6IGRhbmdlcixcclxuICAgICAgICAgICAgY29uZmlybVRleHQ6IGNvbmZpcm1UZXh0ID8gY29uZmlybVRleHQgOiBcIk9rYXlcIixcclxuICAgICAgICAgICAgY2FuY2VsVGV4dDogY2FuY2VsVGV4dCA/IGNhbmNlbFRleHQgOiBcIkNhbmNlbFwiLFxyXG4gICAgICAgICAgICBvbkNvbmZpcm06IG9uQ29uZmlybSA/IG9uQ29uZmlybSA6IGVtcHR5RnVuY3Rpb24sXHJcbiAgICAgICAgICAgIG9uQ2FuY2VsOiBvbkNhbmNlbCA/IG9uQ2FuY2VsIDogZW1wdHlGdW5jdGlvblxyXG4gICAgICAgIH0sIHByb3BzKSk7XHJcbiAgICB9KTtcclxufTtcclxuXHJcbi8vU2hvdyB0b2FzdCBhbGVydFxyXG5CZEFwaS5zaG93VG9hc3QgPSBmdW5jdGlvbihjb250ZW50LCBvcHRpb25zID0ge30pIHtcclxuICAgIFV0aWxzLnNob3dUb2FzdChjb250ZW50LCBvcHRpb25zKTtcclxufTtcclxuXHJcbi8vIEZpbmRzIG1vZHVsZVxyXG5CZEFwaS5maW5kTW9kdWxlID0gZnVuY3Rpb24oZmlsdGVyKSB7XHJcbiAgICByZXR1cm4gQkRWMi5XZWJwYWNrTW9kdWxlcy5maW5kKGZpbHRlcik7XHJcbn07XHJcblxyXG4vLyBGaW5kcyBtb2R1bGVcclxuQmRBcGkuZmluZEFsbE1vZHVsZXMgPSBmdW5jdGlvbihmaWx0ZXIpIHtcclxuICAgIHJldHVybiBCRFYyLldlYnBhY2tNb2R1bGVzLmZpbmRBbGwoZmlsdGVyKTtcclxufTtcclxuXHJcbi8vIEZpbmRzIG1vZHVsZVxyXG5CZEFwaS5maW5kTW9kdWxlQnlQcm9wcyA9IGZ1bmN0aW9uKC4uLnByb3BzKSB7XHJcbiAgICByZXR1cm4gQkRWMi5XZWJwYWNrTW9kdWxlcy5maW5kQnlVbmlxdWVQcm9wZXJ0aWVzKHByb3BzKTtcclxufTtcclxuXHJcbkJkQXBpLmZpbmRNb2R1bGVCeVByb3RvdHlwZXMgPSBmdW5jdGlvbiguLi5wcm90b3MpIHtcclxuICAgIHJldHVybiBCRFYyLldlYnBhY2tNb2R1bGVzLmZpbmRCeVByb3RvdHlwZXMocHJvdG9zKTtcclxufTtcclxuXHJcbkJkQXBpLmZpbmRNb2R1bGVCeURpc3BsYXlOYW1lID0gZnVuY3Rpb24obmFtZSkge1xyXG4gICAgcmV0dXJuIEJEVjIuV2VicGFja01vZHVsZXMuZmluZEJ5RGlzcGxheU5hbWUobmFtZSk7XHJcbn07XHJcblxyXG4vLyBHZXRzIHJlYWN0IGluc3RhbmNlXHJcbkJkQXBpLmdldEludGVybmFsSW5zdGFuY2UgPSBmdW5jdGlvbihub2RlKSB7XHJcbiAgICBpZiAoIShub2RlIGluc3RhbmNlb2Ygd2luZG93LmpRdWVyeSkgJiYgIShub2RlIGluc3RhbmNlb2YgRWxlbWVudCkpIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICBpZiAobm9kZSBpbnN0YW5jZW9mIGpRdWVyeSkgbm9kZSA9IG5vZGVbMF07XHJcbiAgICByZXR1cm4gQkRWMi5nZXRJbnRlcm5hbEluc3RhbmNlKG5vZGUpO1xyXG59O1xyXG5cclxuLy8gR2V0cyBkYXRhXHJcbkJkQXBpLmxvYWREYXRhID0gZnVuY3Rpb24ocGx1Z2luTmFtZSwga2V5KSB7XHJcbiAgICByZXR1cm4gRGF0YVN0b3JlLmdldFBsdWdpbkRhdGEocGx1Z2luTmFtZSwga2V5KTtcclxufTtcclxuXHJcbkJkQXBpLmdldERhdGEgPSBCZEFwaS5sb2FkRGF0YTtcclxuXHJcbi8vIFNldHMgZGF0YVxyXG5CZEFwaS5zYXZlRGF0YSA9IGZ1bmN0aW9uKHBsdWdpbk5hbWUsIGtleSwgZGF0YSkge1xyXG4gICAgcmV0dXJuIERhdGFTdG9yZS5zZXRQbHVnaW5EYXRhKHBsdWdpbk5hbWUsIGtleSwgZGF0YSk7XHJcbn07XHJcblxyXG5CZEFwaS5zZXREYXRhID0gQmRBcGkuc2F2ZURhdGE7XHJcblxyXG4vLyBEZWxldGVzIGRhdGFcclxuQmRBcGkuZGVsZXRlRGF0YSA9IGZ1bmN0aW9uKHBsdWdpbk5hbWUsIGtleSkge1xyXG4gICAgcmV0dXJuIERhdGFTdG9yZS5kZWxldGVQbHVnaW5EYXRhKHBsdWdpbk5hbWUsIGtleSk7XHJcbn07XHJcblxyXG4vLyBQYXRjaGVzIG90aGVyIGZ1bmN0aW9uc1xyXG5CZEFwaS5tb25rZXlQYXRjaCA9IGZ1bmN0aW9uKHdoYXQsIG1ldGhvZE5hbWUsIG9wdGlvbnMpIHtcclxuICAgIHJldHVybiBVdGlscy5tb25rZXlQYXRjaCh3aGF0LCBtZXRob2ROYW1lLCBvcHRpb25zKTtcclxufTtcclxuXHJcbi8vIEV2ZW50IHdoZW4gZWxlbWVudCBpcyByZW1vdmVkXHJcbkJkQXBpLm9uUmVtb3ZlZCA9IGZ1bmN0aW9uKG5vZGUsIGNhbGxiYWNrKSB7XHJcbiAgICByZXR1cm4gVXRpbHMub25SZW1vdmVkKG5vZGUsIGNhbGxiYWNrKTtcclxufTtcclxuXHJcbi8vIFdyYXBzIGZ1bmN0aW9uIGluIHRyeS4uY2F0Y2hcclxuQmRBcGkuc3VwcHJlc3NFcnJvcnMgPSBmdW5jdGlvbihtZXRob2QsIG1lc3NhZ2UpIHtcclxuICAgIHJldHVybiBVdGlscy5zdXBwcmVzc0Vycm9ycyhtZXRob2QsIG1lc3NhZ2UpO1xyXG59O1xyXG5cclxuLy8gVGVzdHMgZm9yIHZhbGlkIEpTT05cclxuQmRBcGkudGVzdEpTT04gPSBmdW5jdGlvbihkYXRhKSB7XHJcbiAgICByZXR1cm4gVXRpbHMudGVzdEpTT04oZGF0YSk7XHJcbn07XHJcblxyXG5CZEFwaS5pc1BsdWdpbkVuYWJsZWQgPSBmdW5jdGlvbihuYW1lKSB7XHJcbiAgICByZXR1cm4gISFwbHVnaW5Db29raWVbbmFtZV07XHJcbn07XHJcblxyXG5CZEFwaS5pc1RoZW1lRW5hYmxlZCA9IGZ1bmN0aW9uKG5hbWUpIHtcclxuICAgIHJldHVybiAhIXRoZW1lQ29va2llW25hbWVdO1xyXG59O1xyXG5cclxuQmRBcGkuaXNTZXR0aW5nRW5hYmxlZCA9IGZ1bmN0aW9uKGlkKSB7XHJcbiAgICByZXR1cm4gISFzZXR0aW5nc0Nvb2tpZVtpZF07XHJcbn07XHJcblxyXG4vLyBHZXRzIGRhdGFcclxuQmRBcGkuZ2V0QkREYXRhID0gZnVuY3Rpb24oa2V5KSB7XHJcbiAgICByZXR1cm4gRGF0YVN0b3JlLmdldEJERGF0YShrZXkpO1xyXG59O1xyXG5cclxuLy8gU2V0cyBkYXRhXHJcbkJkQXBpLnNldEJERGF0YSA9IGZ1bmN0aW9uKGtleSwgZGF0YSkge1xyXG4gICAgcmV0dXJuIERhdGFTdG9yZS5zZXRCRERhdGEoa2V5LCBkYXRhKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IEJkQXBpOyJdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2JkRXZlbnRzLmpzP2NmNzciXSwibmFtZXMiOlsiRXZlbnRFbWl0dGVyIiwicmVxdWlyZSIsIkJERXZlbnRzIiwiZGlzcGF0Y2giLCJldmVudE5hbWUiLCJhcmdzIiwiZW1pdCIsIm9mZiIsImV2ZW50QWN0aW9uIiwicmVtb3ZlTGlzdGVuZXIiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFDQSxNQUFNQSxZQUFZLEdBQUdDLG1CQUFPLENBQUMsc0JBQUQsQ0FBNUI7O0FBQ2UsbUVBQUksTUFBTUMsUUFBTixTQUF1QkYsWUFBdkIsQ0FBb0M7QUFDbkRHLFVBQVEsQ0FBQ0MsU0FBRCxFQUFZLEdBQUdDLElBQWYsRUFBcUI7QUFBQyxTQUFLQyxJQUFMLENBQVVGLFNBQVYsRUFBcUIsR0FBR0MsSUFBeEI7QUFBK0I7O0FBQzdERSxLQUFHLENBQUNILFNBQUQsRUFBWUksV0FBWixFQUF5QjtBQUFDLFNBQUtDLGNBQUwsQ0FBb0JMLFNBQXBCLEVBQStCSSxXQUEvQjtBQUE2Qzs7QUFGdkIsQ0FBeEMsRUFBZiIsImZpbGUiOiIuL3NyYy9iZEV2ZW50cy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIEJERXZlbnRzICovXHJcbmNvbnN0IEV2ZW50RW1pdHRlciA9IHJlcXVpcmUoXCJldmVudHNcIik7XHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBCREV2ZW50cyBleHRlbmRzIEV2ZW50RW1pdHRlciB7XHJcbiAgICBkaXNwYXRjaChldmVudE5hbWUsIC4uLmFyZ3MpIHt0aGlzLmVtaXQoZXZlbnROYW1lLCAuLi5hcmdzKTt9XHJcbiAgICBvZmYoZXZlbnROYW1lLCBldmVudEFjdGlvbikge3RoaXMucmVtb3ZlTGlzdGVuZXIoZXZlbnROYW1lLCBldmVudEFjdGlvbik7fVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2NsYXNzTm9ybWFsaXplci5qcz8yMzE5Il0sIm5hbWVzIjpbIm5vcm1hbGl6ZWRQcmVmaXgiLCJyYW5kQ2xhc3MiLCJSZWdFeHAiLCJDbGFzc05vcm1hbGl6ZXIiLCJzdG9wIiwiaGFzUGF0Y2hlZCIsInVucGF0Y2hDbGFzc01vZHVsZXMiLCJXZWJwYWNrTW9kdWxlcyIsImZpbmRBbGwiLCJtb2R1bGVGaWx0ZXIiLCJiaW5kIiwicmV2ZXJ0RWxlbWVudCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsInN0YXJ0IiwicGF0Y2hDbGFzc01vZHVsZXMiLCJub3JtYWxpemVFbGVtZW50IiwicGF0Y2hET01NZXRob2RzIiwibW9kdWxlcyIsIm1vZHVsZSIsInBhdGNoQ2xhc3NNb2R1bGUiLCJ1bnBhdGNoQ2xhc3NNb2R1bGUiLCJzaG91bGRJZ25vcmUiLCJ2YWx1ZSIsImlzTmFOIiwiZW5kc1dpdGgiLCJzdGFydHNXaXRoIiwibGVuZ3RoIiwiaW5jbHVkZXMiLCJBcnJheSIsImlzQXJyYXkiLCJfX2VzTW9kdWxlIiwiT2JqZWN0Iiwia2V5cyIsImJhc2VDbGFzc05hbWUiLCJzcGxpdCIsInRlc3QiLCJjb21wb25lbnROYW1lIiwiY2xhc3NOYW1lcyIsImNsYXNzTGlzdCIsIm5vcm1hbENsYXNzIiwibWF0Y2giLCJjYW1lbENhc2UiLCJtYXAiLCJzIiwiaSIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJqb2luIiwibmV3U3RyaW5nIiwidHJpbSIsImVsZW1lbnQiLCJFbGVtZW50IiwiY2xhc3NlcyIsImMiLCJjbGVuIiwibmV3Q2xhc3MiLCJhZGQiLCJjaGlsZCIsImNoaWxkcmVuIiwibmV4dEVsZW1lbnRTaWJsaW5nIiwidG9SZW1vdmUiLCJwdXNoIiwicmVtb3ZlIiwiY29udGFpbnMiLCJET01Ub2tlbkxpc3QiLCJwcm90b3R5cGUiLCJ0b2tlbiIsInRva2VucyIsImV2ZXJ5IiwidCIsImNhbGwiXSwibWFwcGluZ3MiOiJB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VUFBSUQsT0FBTyxDQUFDQyxDQUFELENBQVAsQ0FBVzVCLFVBQVgsQ0FBdUIsR0FBRTFCLGdCQUFpQixHQUExQyxDQUFKLEVBQW1ENkQsUUFBUSxDQUFDQyxJQUFULENBQWNULE9BQU8sQ0FBQ0MsQ0FBRCxDQUFyQjtBQUN0RDs7QUFDREgsV0FBTyxDQUFDWixTQUFSLENBQWtCd0IsTUFBbEIsQ0FBeUIsR0FBR0YsUUFBNUI7QUFDSDs7QUFFRDVDLGlCQUFlLEdBQUc7QUFDZCxVQUFNK0MsUUFBUSxHQUFHQyxZQUFZLENBQUNDLFNBQWIsQ0FBdUJGLFFBQXhDOztBQUNBQyxnQkFBWSxDQUFDQyxTQUFiLENBQXVCRixRQUF2QixHQUFrQyxVQUFTRyxLQUFULEVBQWdCO0FBQzlDLFlBQU1DLE1BQU0sR0FBR0QsS0FBSyxDQUFDaEMsS0FBTixDQUFZLEdBQVosQ0FBZjtBQUNBLGFBQU9pQyxNQUFNLENBQUNDLEtBQVAsQ0FBYUMsQ0FBQyxJQUFJTixRQUFRLENBQUNPLElBQVQsQ0FBYyxJQUFkLEVBQW9CRCxDQUFwQixDQUFsQixDQUFQO0FBQ0gsS0FIRDtBQUlIOztBQS9Hb0MsQ0FBMUIsRUFBZiIsImZpbGUiOiIuL3NyYy9jbGFzc05vcm1hbGl6ZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgV2VicGFja01vZHVsZXMgZnJvbSBcIi4vd2VicGFja01vZHVsZXNcIjtcclxuXHJcbmNvbnN0IG5vcm1hbGl6ZWRQcmVmaXggPSBcImRhXCI7XHJcbmNvbnN0IHJhbmRDbGFzcyA9IG5ldyBSZWdFeHAoYF4oPyEke25vcm1hbGl6ZWRQcmVmaXh9LSkoKD86W0EtWmEtel18WzAtOV18LSkrKS0oPzpbQS1aYS16XXxbMC05XXwtfF8pezZ9JGApO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIENsYXNzTm9ybWFsaXplciB7XHJcblxyXG4gICAgc3RvcCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaGFzUGF0Y2hlZCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMudW5wYXRjaENsYXNzTW9kdWxlcyhXZWJwYWNrTW9kdWxlcy5maW5kQWxsKHRoaXMubW9kdWxlRmlsdGVyLmJpbmQodGhpcykpKTtcclxuICAgICAgICB0aGlzLnJldmVydEVsZW1lbnQoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNhcHAtbW91bnRcIikpO1xyXG4gICAgICAgIHRoaXMuaGFzUGF0Y2hlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLmhhc1BhdGNoZWQpIHJldHVybjtcclxuICAgICAgICB0aGlzLnBhdGNoQ2xhc3NNb2R1bGVzKFdlYnBhY2tNb2R1bGVzLmZpbmRBbGwodGhpcy5tb2R1bGVGaWx0ZXIuYmluZCh0aGlzKSkpO1xyXG4gICAgICAgIHRoaXMubm9ybWFsaXplRWxlbWVudChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI2FwcC1tb3VudFwiKSk7XHJcbiAgICAgICAgdGhpcy5oYXNQYXRjaGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnBhdGNoRE9NTWV0aG9kcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHBhdGNoQ2xhc3NNb2R1bGVzKG1vZHVsZXMpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IG1vZHVsZSBvZiBtb2R1bGVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGF0Y2hDbGFzc01vZHVsZShub3JtYWxpemVkUHJlZml4LCBtb2R1bGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1bnBhdGNoQ2xhc3NNb2R1bGVzKG1vZHVsZXMpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IG1vZHVsZSBvZiBtb2R1bGVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMudW5wYXRjaENsYXNzTW9kdWxlKG5vcm1hbGl6ZWRQcmVmaXgsIG1vZHVsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNob3VsZElnbm9yZSh2YWx1ZSkge1xyXG4gICAgICAgIGlmICghaXNOYU4odmFsdWUpKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBpZiAodmFsdWUuZW5kc1dpdGgoXCJweFwiKSB8fCB2YWx1ZS5lbmRzV2l0aChcImNoXCIpIHx8IHZhbHVlLmVuZHNXaXRoKFwiZW1cIikgfHwgdmFsdWUuZW5kc1dpdGgoXCJtc1wiKSkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoXCJsYXllckNvbnRhaW5lci1cIikpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGlmICh2YWx1ZS5zdGFydHNXaXRoKFwiI1wiKSAmJiAodmFsdWUubGVuZ3RoID09IDcgfHwgdmFsdWUubGVuZ3RoID09IDQpKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBpZiAodmFsdWUuaW5jbHVkZXMoXCJjYWxjKFwiKSB8fCB2YWx1ZS5pbmNsdWRlcyhcInJnYmFcIikpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBtb2R1bGVGaWx0ZXIobW9kdWxlKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBtb2R1bGUgIT09IFwib2JqZWN0XCIgfHwgQXJyYXkuaXNBcnJheShtb2R1bGUpKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgaWYgKG1vZHVsZS5fX2VzTW9kdWxlKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhtb2R1bGUpLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGZvciAoY29uc3QgYmFzZUNsYXNzTmFtZSBpbiBtb2R1bGUpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBtb2R1bGVbYmFzZUNsYXNzTmFtZV07XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIpIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2hvdWxkSWdub3JlKHZhbHVlKSkgY29udGludWU7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZS5zcGxpdChcIi1cIikubGVuZ3RoID09PSAxKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmICghcmFuZENsYXNzLnRlc3QodmFsdWUuc3BsaXQoXCIgXCIpWzBdKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcGF0Y2hDbGFzc01vZHVsZShjb21wb25lbnROYW1lLCBjbGFzc05hbWVzKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBiYXNlQ2xhc3NOYW1lIGluIGNsYXNzTmFtZXMpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBjbGFzc05hbWVzW2Jhc2VDbGFzc05hbWVdO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zaG91bGRJZ25vcmUodmFsdWUpKSBjb250aW51ZTtcclxuICAgICAgICAgICAgY29uc3QgY2xhc3NMaXN0ID0gdmFsdWUuc3BsaXQoXCIgXCIpO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IG5vcm1hbENsYXNzIG9mIGNsYXNzTGlzdCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbWF0Y2ggPSBub3JtYWxDbGFzcy5tYXRjaChyYW5kQ2xhc3MpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFtYXRjaCB8fCAhbWF0Y2gubGVuZ3RoIHx8IG1hdGNoLmxlbmd0aCA8IDIpIGNvbnRpbnVlOyAvLyBTaG91bGRuJ3QgZXZlciBoYXBwZW4gc2luY2UgdGhleSBwYXNzZWQgdGhlIG1vZHVsZUZpbHRlciwgYnV0IHlvdSBuZXZlciBrbm93XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjYW1lbENhc2UgPSBtYXRjaFsxXS5zcGxpdChcIi1cIikubWFwKChzLCBpKSA9PiBpID8gc1swXS50b1VwcGVyQ2FzZSgpICsgcy5zbGljZSgxKSA6IHMpLmpvaW4oXCJcIik7XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWVzW2Jhc2VDbGFzc05hbWVdICs9IGAgJHtjb21wb25lbnROYW1lfS0ke2NhbWVsQ2FzZX1gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVucGF0Y2hDbGFzc01vZHVsZShjb21wb25lbnROYW1lLCBjbGFzc05hbWVzKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBiYXNlQ2xhc3NOYW1lIGluIGNsYXNzTmFtZXMpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBjbGFzc05hbWVzW2Jhc2VDbGFzc05hbWVdO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zaG91bGRJZ25vcmUodmFsdWUpKSBjb250aW51ZTtcclxuICAgICAgICAgICAgbGV0IG5ld1N0cmluZyA9IFwiXCI7XHJcbiAgICAgICAgICAgIGNvbnN0IGNsYXNzTGlzdCA9IHZhbHVlLnNwbGl0KFwiIFwiKTtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBub3JtYWxDbGFzcyBvZiBjbGFzc0xpc3QpIHtcclxuICAgICAgICAgICAgICAgIGlmIChub3JtYWxDbGFzcy5zdGFydHNXaXRoKGAke2NvbXBvbmVudE5hbWV9LWApKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIG5ld1N0cmluZyArPSBgICR7bm9ybWFsQ2xhc3N9YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjbGFzc05hbWVzW2Jhc2VDbGFzc05hbWVdID0gbmV3U3RyaW5nLnRyaW0oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbm9ybWFsaXplRWxlbWVudChlbGVtZW50KSB7XHJcbiAgICAgICAgaWYgKCEoZWxlbWVudCBpbnN0YW5jZW9mIEVsZW1lbnQpKSByZXR1cm47XHJcbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IGVsZW1lbnQuY2xhc3NMaXN0O1xyXG4gICAgICAgIGZvciAobGV0IGMgPSAwLCBjbGVuID0gY2xhc3Nlcy5sZW5ndGg7IGMgPCBjbGVuOyBjKyspIHtcclxuICAgICAgICAgICAgaWYgKCFyYW5kQ2xhc3MudGVzdChjbGFzc2VzW2NdKSkgY29udGludWU7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gY2xhc3Nlc1tjXS5tYXRjaChyYW5kQ2xhc3MpWzFdO1xyXG4gICAgICAgICAgICBjb25zdCBuZXdDbGFzcyA9IG1hdGNoLnNwbGl0KFwiLVwiKS5tYXAoKHMsIGkpID0+IGkgPyBzWzBdLnRvVXBwZXJDYXNlKCkgKyBzLnNsaWNlKDEpIDogcykuam9pbihcIlwiKTtcclxuICAgICAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKGAke25vcm1hbGl6ZWRQcmVmaXh9LSR7bmV3Q2xhc3N9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgZWxlbWVudC5jaGlsZHJlbikgdGhpcy5ub3JtYWxpemVFbGVtZW50KGNoaWxkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXZlcnRFbGVtZW50KGVsZW1lbnQpIHtcclxuICAgICAgICBpZiAoIShlbGVtZW50IGluc3RhbmNlb2YgRWxlbWVudCkpIHJldHVybjtcclxuICAgICAgICBpZiAoZWxlbWVudC5jaGlsZHJlbiAmJiBlbGVtZW50LmNoaWxkcmVuLmxlbmd0aCkgdGhpcy5yZXZlcnRFbGVtZW50KGVsZW1lbnQuY2hpbGRyZW5bMF0pO1xyXG4gICAgICAgIGlmIChlbGVtZW50Lm5leHRFbGVtZW50U2libGluZykgdGhpcy5yZXZlcnRFbGVtZW50KGVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nKTtcclxuICAgICAgICBjb25zdCBjbGFzc2VzID0gZWxlbWVudC5jbGFzc0xpc3Q7XHJcbiAgICAgICAgY29uc3QgdG9SZW1vdmUgPSBbXTtcclxuICAgICAgICBmb3IgKGxldCBjID0gMDsgYyA8IGNsYXNzZXMubGVuZ3RoOyBjKyspIHtcclxuICAgICAgICAgICAgaWYgKGNsYXNzZXNbY10uc3RhcnRzV2l0aChgJHtub3JtYWxpemVkUHJlZml4fS1gKSkgdG9SZW1vdmUucHVzaChjbGFzc2VzW2NdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKC4uLnRvUmVtb3ZlKTtcclxuICAgIH1cclxuXHJcbiAgICBwYXRjaERPTU1ldGhvZHMoKSB7XHJcbiAgICAgICAgY29uc3QgY29udGFpbnMgPSBET01Ub2tlbkxpc3QucHJvdG90eXBlLmNvbnRhaW5zO1xyXG4gICAgICAgIERPTVRva2VuTGlzdC5wcm90b3R5cGUuY29udGFpbnMgPSBmdW5jdGlvbih0b2tlbikge1xyXG4gICAgICAgICAgICBjb25zdCB0b2tlbnMgPSB0b2tlbi5zcGxpdChcIiBcIik7XHJcbiAgICAgICAgICAgIHJldHVybiB0b2tlbnMuZXZlcnkodCA9PiBjb250YWlucy5jYWxsKHRoaXMsIHQpKTtcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2NvbG9yZWRUZXh0LmpzPzMzODkiXSwibmFtZXMiOlsiQ29sb3JlZFRleHQiLCJpbmplY3RDb2xvcmVkVGV4dCIsImNhbmNlbENvbG9yZWRUZXh0IiwiQkRWMiIsIk1lc3NhZ2VDb21wb25lbnQiLCJVdGlscyIsIm1vbmtleVBhdGNoIiwiYmVmb3JlIiwiZGF0YSIsInByb3BzIiwibWV0aG9kQXJndW1lbnRzIiwiY2hpbGRyZW5NZXNzYWdlQ29udGVudCIsIm1lc3NhZ2VDb250ZW50IiwidHlwZSIsImRpc3BsYXlOYW1lIiwib3JpZ2luYWxUeXBlIiwiX19vcmlnaW5hbE1ldGhvZCIsInJldHVyblZhbHVlIiwicm9sZUNvbG9yIiwic2V0dGluZ3NDb29raWUiLCJtZXNzYWdlIiwiY29sb3JTdHJpbmciLCJzdHlsZSIsImNvbG9yIiwiT2JqZWN0IiwiYXNzaWduIiwicmVtb3ZlQ29sb3JlZFRleHQiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwiZWxlbSIsInNldFByb3BlcnR5Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVlLG1FQUFJLE1BQU1BLFdBQU4sQ0FBa0I7QUFDakNDLG1CQUFpQixHQUFHO0FBQ2hCLFFBQUksS0FBS0MsaUJBQVQsRUFBNEI7QUFDNUIsUUFBSSxDQUFDQywyQ0FBSSxDQUFDQyxnQkFBVixFQUE0QjtBQUU1QixTQUFLRixpQkFBTCxHQUF5QkcsOENBQUssQ0FBQ0MsV0FBTixDQUFrQkgsMkNBQUksQ0FBQ0MsZ0JBQXZCLEVBQXlDLFNBQXpDLEVBQW9EO0FBQUNHLFlBQU0sRUFBR0MsSUFBRCxJQUFVO0FBQzVGLGNBQU1DLEtBQUssR0FBR0QsSUFBSSxDQUFDRSxlQUFMLENBQXFCLENBQXJCLENBQWQ7QUFDQSxZQUFJLENBQUNELEtBQUQsSUFBVSxDQUFDQSxLQUFLLENBQUNFLHNCQUFyQixFQUE2QztBQUM3QyxjQUFNQyxjQUFjLEdBQUdILEtBQUssQ0FBQ0Usc0JBQTdCO0FBRUEsWUFBSSxDQUFDQyxjQUFjLENBQUNDLElBQWhCLElBQXdCLENBQUNELGNBQWMsQ0FBQ0MsSUFBZixDQUFvQkEsSUFBN0MsSUFBcURELGNBQWMsQ0FBQ0MsSUFBZixDQUFvQkEsSUFBcEIsQ0FBeUJDLFdBQXpCLElBQXdDLGdCQUFqRyxFQUFtSDtBQUNuSCxjQUFNQyxZQUFZLEdBQUdILGNBQWMsQ0FBQ0MsSUFBZixDQUFvQkEsSUFBekM7QUFDQSxZQUFJRSxZQUFZLENBQUNDLGdCQUFqQixFQUFtQyxPQVB5RCxDQU9qRDs7QUFDM0NKLHNCQUFjLENBQUNDLElBQWYsQ0FBb0JBLElBQXBCLEdBQTJCLFVBQVNKLEtBQVQsRUFBZ0I7QUFDdkMsZ0JBQU1RLFdBQVcsR0FBR0YsWUFBWSxDQUFDTixLQUFELENBQWhDO0FBQ0EsZ0JBQU1TLFNBQVMsR0FBR0Msd0RBQWMsQ0FBQyxVQUFELENBQWQsR0FBNkJWLEtBQUssQ0FBQ1csT0FBTixDQUFjQyxXQUFkLElBQTZCLEVBQTFELEdBQStELEVBQWpGO0FBQ0FKLHFCQUFXLENBQUNSLEtBQVosQ0FBa0JhLEtBQWxCLEdBQTBCO0FBQUNDLGlCQUFLLEVBQUVMO0FBQVIsV0FBMUI7QUFDQSxpQkFBT0QsV0FBUDtBQUNILFNBTEQ7O0FBT0FMLHNCQUFjLENBQUNDLElBQWYsQ0FBb0JBLElBQXBCLENBQXlCRyxnQkFBekIsR0FBNENELFlBQTVDO0FBQ0FTLGNBQU0sQ0FBQ0MsTUFBUCxDQUFjYixjQUFjLENBQUNDLElBQWYsQ0FBb0JBLElBQWxDLEVBQXdDRSxZQUF4QztBQUNIO0FBakI0RSxLQUFwRCxDQUF6QjtBQWtCSDs7QUFFRFcsbUJBQWlCLEdBQUc7QUFDaEJDLFlBQVEsQ0FBQ0MsZ0JBQVQsQ0FBMEIsZ0JBQTFCLEVBQTRDQyxPQUE1QyxDQUFvREMsSUFBSSxJQUFJO0FBQ3hEQSxVQUFJLENBQUNSLEtBQUwsQ0FBV1MsV0FBWCxDQUF1QixPQUF2QixFQUFnQyxFQUFoQztBQUNILEtBRkQ7QUFHSDs7QUE3QmdDLENBQXRCLEVBQWYiLCJmaWxlIjoiLi9zcmMvY29sb3JlZFRleHQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3NldHRpbmdzQ29va2llfSBmcm9tIFwiLi8wZ2xvYmFsc1wiO1xyXG5pbXBvcnQgQkRWMiBmcm9tIFwiLi92MlwiO1xyXG5pbXBvcnQgVXRpbHMgZnJvbSBcIi4vdXRpbHNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBDb2xvcmVkVGV4dCB7XHJcbiAgICBpbmplY3RDb2xvcmVkVGV4dCgpIHtcclxuICAgICAgICBpZiAodGhpcy5jYW5jZWxDb2xvcmVkVGV4dCkgcmV0dXJuO1xyXG4gICAgICAgIGlmICghQkRWMi5NZXNzYWdlQ29tcG9uZW50KSByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuY2FuY2VsQ29sb3JlZFRleHQgPSBVdGlscy5tb25rZXlQYXRjaChCRFYyLk1lc3NhZ2VDb21wb25lbnQsIFwiZGVmYXVsdFwiLCB7YmVmb3JlOiAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBwcm9wcyA9IGRhdGEubWV0aG9kQXJndW1lbnRzWzBdO1xyXG4gICAgICAgICAgICBpZiAoIXByb3BzIHx8ICFwcm9wcy5jaGlsZHJlbk1lc3NhZ2VDb250ZW50KSByZXR1cm47XHJcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VDb250ZW50ID0gcHJvcHMuY2hpbGRyZW5NZXNzYWdlQ29udGVudDtcclxuXHJcbiAgICAgICAgICAgIGlmICghbWVzc2FnZUNvbnRlbnQudHlwZSB8fCAhbWVzc2FnZUNvbnRlbnQudHlwZS50eXBlIHx8IG1lc3NhZ2VDb250ZW50LnR5cGUudHlwZS5kaXNwbGF5TmFtZSAhPSBcIk1lc3NhZ2VDb250ZW50XCIpIHJldHVybjtcclxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxUeXBlID0gbWVzc2FnZUNvbnRlbnQudHlwZS50eXBlO1xyXG4gICAgICAgICAgICBpZiAob3JpZ2luYWxUeXBlLl9fb3JpZ2luYWxNZXRob2QpIHJldHVybjsgLy8gRG9uJ3QgcGF0Y2ggYWdhaW5cclxuICAgICAgICAgICAgbWVzc2FnZUNvbnRlbnQudHlwZS50eXBlID0gZnVuY3Rpb24ocHJvcHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJldHVyblZhbHVlID0gb3JpZ2luYWxUeXBlKHByb3BzKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJvbGVDb2xvciA9IHNldHRpbmdzQ29va2llW1wiYmRhLWdzLTdcIl0gPyBwcm9wcy5tZXNzYWdlLmNvbG9yU3RyaW5nIHx8IFwiXCIgOiBcIlwiO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUucHJvcHMuc3R5bGUgPSB7Y29sb3I6IHJvbGVDb2xvcn07XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBtZXNzYWdlQ29udGVudC50eXBlLnR5cGUuX19vcmlnaW5hbE1ldGhvZCA9IG9yaWdpbmFsVHlwZTtcclxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihtZXNzYWdlQ29udGVudC50eXBlLnR5cGUsIG9yaWdpbmFsVHlwZSk7XHJcbiAgICAgICAgfX0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUNvbG9yZWRUZXh0KCkge1xyXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIubWFya3VwLTJCT3ctalwiKS5mb3JFYWNoKGVsZW0gPT4ge1xyXG4gICAgICAgICAgICBlbGVtLnN0eWxlLnNldFByb3BlcnR5KFwiY29sb3JcIiwgXCJcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2NvbnRlbnRNYW5hZ2VyLmpzPzUyYzkiXSwibmFtZXMiOlsicGF0aCIsInJlcXVpcmUiLCJmcyIsIk1vZHVsZSIsImdsb2JhbFBhdGhzIiwicHVzaCIsInJlc29sdmUiLCJyZW1vdGUiLCJhcHAiLCJnZXRBcHBQYXRoIiwiTWV0YUVycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsIm1lc3NhZ2UiLCJuYW1lIiwib3JpZ2luYWxKU1JlcXVpcmUiLCJfZXh0ZW5zaW9ucyIsIm9yaWdpbmFsQ1NTUmVxdWlyZSIsInNwbGl0UmVnZXgiLCJlc2NhcGVkQXRSZWdleCIsIkNvbnRlbnRNYW5hZ2VyIiwidGltZUNhY2hlIiwid2F0Y2hlcnMiLCJnZXRDb250ZW50UmVxdWlyZSIsInBsdWdpbnNGb2xkZXIiLCJfcGx1Z2luc0ZvbGRlciIsInJlYWxwYXRoU3luYyIsImJkQ29uZmlnIiwiZGF0YVBhdGgiLCJ0aGVtZXNGb2xkZXIiLCJfdGhlbWVzRm9sZGVyIiwid2F0Y2hDb250ZW50IiwiY29udGVudFR5cGUiLCJpc1BsdWdpbiIsImJhc2VGb2xkZXIiLCJmaWxlRW5kaW5nIiwid2F0Y2giLCJwZXJzaXN0ZW50IiwiZXZlbnRUeXBlIiwiZmlsZW5hbWUiLCJlbmRzV2l0aCIsIlByb21pc2UiLCJyIiwic2V0VGltZW91dCIsInN0YXRTeW5jIiwiZXJyIiwiY29kZSIsInBsdWdpbk1vZHVsZSIsInVubG9hZFBsdWdpbiIsInRoZW1lTW9kdWxlIiwidW5sb2FkVGhlbWUiLCJpc0ZpbGUiLCJzdGF0cyIsIm10aW1lIiwiZ2V0VGltZSIsImxvYWRQbHVnaW4iLCJsb2FkVGhlbWUiLCJyZWxvYWRQbHVnaW4iLCJyZWxvYWRUaGVtZSIsInVud2F0Y2hDb250ZW50IiwiY2xvc2UiLCJleHRyYWN0TWV0YSIsImNvbnRlbnQiLCJmaXJzdExpbmUiLCJzcGxpdCIsImhhc09sZE1ldGEiLCJpbmNsdWRlcyIsInBhcnNlT2xkTWV0YSIsImhhc05ld01ldGEiLCJwYXJzZU5ld01ldGEiLCJtZXRhIiwicmF3TWV0YSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiaW5kZXhPZiIsInBhcnNlZCIsIlV0aWxzIiwidGVzdEpTT04iLCJmb3JtYXQiLCJibG9jayIsIm91dCIsImZpZWxkIiwiYWNjdW0iLCJsaW5lIiwibGVuZ3RoIiwiY2hhckF0IiwibCIsInN1YnN0ciIsInJlcGxhY2UiLCJ0cmltIiwidHlwZSIsInNlbGYiLCJvcmlnaW5hbFJlcXVpcmUiLCJtb2R1bGUiLCJwb3NzaWJsZVBhdGgiLCJiYXNlbmFtZSIsImV4aXN0c1N5bmMiLCJSZWZsZWN0IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJyZWFkRmlsZVN5bmMiLCJzdHJpcEJPTSIsImNzcyIsInNsaWNlIiwiam9pbiIsIkpTT04iLCJzdHJpbmdpZnkiLCJfY29tcGlsZSIsImRpZEV4cG9ydCIsImlzRW1wdHkiLCJleHBvcnRzIiwibWFrZVBsYWNlaG9sZGVyUGx1Z2luIiwiZGF0YSIsInBsdWdpbiIsInN0YXJ0IiwiZ2V0TmFtZSIsImdldEF1dGhvciIsImdldERlc2NyaXB0aW9uIiwiZ2V0VmVyc2lvbiIsInNvdXJjZSIsIndlYnNpdGUiLCJsb2FkQ29udGVudCIsIl9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fIiwiZXJyb3IiLCJmaWxlIiwic3RhY2siLCJpZCIsImVzY2FwZUlEIiwiYmRwbHVnaW5zIiwiYmR0aGVtZXMiLCJ1bmxvYWRDb250ZW50IiwiaXNMb2FkZWQiLCJyZWxvYWRDb250ZW50IiwiY2FudFVubG9hZCIsImxvYWROZXdDb250ZW50IiwiYmFzZWRpciIsImZpbGVzIiwicmVhZGRpclN5bmMiLCJjb250ZW50TGlzdCIsIk9iamVjdCIsInZhbHVlcyIsInJlbW92ZWQiLCJmaWx0ZXIiLCJ0IiwibWFwIiwiYyIsImFkZGVkIiwiZiIsImZpbmQiLCJsb2FkQWxsQ29udGVudCIsImVycm9ycyIsImxvYWRQbHVnaW5zIiwibG9hZFRoZW1lcyJdLCJtYXBwaW5ncyI6IkFBQ0E7QUFB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dEksRUFBRSxDQUFDMEMsUUFBSCxDQUFZNUMsSUFBSSxDQUFDTSxPQUFMLENBQWFpSSxPQUFiLEVBQXNCaEcsUUFBdEIsQ0FBWixFQUE2Q1ksTUFBN0MsRUFBRCxJQUEwRCxDQUFDWixRQUFRLENBQUNDLFFBQVQsQ0FBa0JMLFVBQWxCLENBQS9ELEVBQThGO0FBQzlGLFlBQU13RixLQUFLLEdBQUcsS0FBS0YsV0FBTCxDQUFpQmxGLFFBQWpCLEVBQTJCbUQsSUFBM0IsQ0FBZDtBQUNBLFVBQUlpQyxLQUFKLEVBQVcyQixNQUFNLENBQUNqSixJQUFQLENBQVlzSCxLQUFaO0FBQ2Q7O0FBRUQsV0FBTzJCLE1BQVA7QUFDSDs7QUFFREMsYUFBVyxHQUFHO0FBQUMsV0FBTyxLQUFLRixjQUFMLENBQW9CLFFBQXBCLENBQVA7QUFBc0M7O0FBQ3JERyxZQUFVLEdBQUc7QUFBQyxXQUFPLEtBQUtILGNBQUwsQ0FBb0IsT0FBcEIsQ0FBUDtBQUFxQzs7QUEzTmYsQ0FBekIsRUFBZiIsImZpbGUiOiIuL3NyYy9jb250ZW50TWFuYWdlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQge2JkQ29uZmlnLCBiZHBsdWdpbnMsIGJkdGhlbWVzfSBmcm9tIFwiLi8wZ2xvYmFsc1wiO1xyXG5pbXBvcnQgcGx1Z2luTW9kdWxlIGZyb20gXCIuL3BsdWdpbk1vZHVsZVwiO1xyXG5pbXBvcnQgdGhlbWVNb2R1bGUgZnJvbSBcIi4vdGhlbWVNb2R1bGVcIjtcclxuaW1wb3J0IFV0aWxzIGZyb20gXCIuL3V0aWxzXCI7XHJcblxyXG5jb25zdCBwYXRoID0gcmVxdWlyZShcInBhdGhcIik7XHJcbmNvbnN0IGZzID0gcmVxdWlyZShcImZzXCIpO1xyXG5jb25zdCBNb2R1bGUgPSByZXF1aXJlKFwibW9kdWxlXCIpLk1vZHVsZTtcclxuTW9kdWxlLmdsb2JhbFBhdGhzLnB1c2gocGF0aC5yZXNvbHZlKHJlcXVpcmUoXCJlbGVjdHJvblwiKS5yZW1vdGUuYXBwLmdldEFwcFBhdGgoKSwgXCJub2RlX21vZHVsZXNcIikpO1xyXG5jbGFzcyBNZXRhRXJyb3IgZXh0ZW5kcyBFcnJvciB7XHJcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XHJcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gXCJNZXRhRXJyb3JcIjtcclxuICAgIH1cclxufVxyXG5jb25zdCBvcmlnaW5hbEpTUmVxdWlyZSA9IE1vZHVsZS5fZXh0ZW5zaW9uc1tcIi5qc1wiXTtcclxuY29uc3Qgb3JpZ2luYWxDU1NSZXF1aXJlID0gTW9kdWxlLl9leHRlbnNpb25zW1wiLmNzc1wiXSA/IE1vZHVsZS5fZXh0ZW5zaW9uc1tcIi5jc3NcIl0gOiAoKSA9PiB7cmV0dXJuIG51bGw7fTtcclxuY29uc3Qgc3BsaXRSZWdleCA9IC9bXlxcU1xcclxcbl0qPyg/OlxcclxcbnxcXG4pW15cXFNcXHJcXG5dKj9cXCpbXlxcU1xcclxcbl0/LztcclxuY29uc3QgZXNjYXBlZEF0UmVnZXggPSAvXlxcXFxALztcclxuXHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgQ29udGVudE1hbmFnZXIge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMudGltZUNhY2hlID0ge307XHJcbiAgICAgICAgdGhpcy53YXRjaGVycyA9IHt9O1xyXG4gICAgICAgIE1vZHVsZS5fZXh0ZW5zaW9uc1tcIi5qc1wiXSA9IHRoaXMuZ2V0Q29udGVudFJlcXVpcmUoXCJwbHVnaW5cIik7XHJcbiAgICAgICAgTW9kdWxlLl9leHRlbnNpb25zW1wiLmNzc1wiXSA9IHRoaXMuZ2V0Q29udGVudFJlcXVpcmUoXCJ0aGVtZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcGx1Z2luc0ZvbGRlcigpIHtyZXR1cm4gdGhpcy5fcGx1Z2luc0ZvbGRlciB8fCAodGhpcy5fcGx1Z2luc0ZvbGRlciA9IGZzLnJlYWxwYXRoU3luYyhwYXRoLnJlc29sdmUoYmRDb25maWcuZGF0YVBhdGggKyBcInBsdWdpbnMvXCIpKSk7fVxyXG4gICAgZ2V0IHRoZW1lc0ZvbGRlcigpIHtyZXR1cm4gdGhpcy5fdGhlbWVzRm9sZGVyIHx8ICh0aGlzLl90aGVtZXNGb2xkZXIgPSBmcy5yZWFscGF0aFN5bmMocGF0aC5yZXNvbHZlKGJkQ29uZmlnLmRhdGFQYXRoICsgXCJ0aGVtZXMvXCIpKSk7fVxyXG5cclxuICAgIHdhdGNoQ29udGVudChjb250ZW50VHlwZSkge1xyXG4gICAgICAgIGlmICh0aGlzLndhdGNoZXJzW2NvbnRlbnRUeXBlXSkgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IGlzUGx1Z2luID0gY29udGVudFR5cGUgPT09IFwicGx1Z2luXCI7XHJcbiAgICAgICAgY29uc3QgYmFzZUZvbGRlciA9IGlzUGx1Z2luID8gdGhpcy5wbHVnaW5zRm9sZGVyIDogdGhpcy50aGVtZXNGb2xkZXI7XHJcbiAgICAgICAgY29uc3QgZmlsZUVuZGluZyA9IGlzUGx1Z2luID8gXCIucGx1Z2luLmpzXCIgOiBcIi50aGVtZS5jc3NcIjtcclxuICAgICAgICB0aGlzLndhdGNoZXJzW2NvbnRlbnRUeXBlXSA9IGZzLndhdGNoKGJhc2VGb2xkZXIsIHtwZXJzaXN0ZW50OiBmYWxzZX0sIGFzeW5jIChldmVudFR5cGUsIGZpbGVuYW1lKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghZXZlbnRUeXBlIHx8ICFmaWxlbmFtZSB8fCAhZmlsZW5hbWUuZW5kc1dpdGgoZmlsZUVuZGluZykpIHJldHVybjtcclxuICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIDUwKSk7XHJcbiAgICAgICAgICAgIHRyeSB7ZnMuc3RhdFN5bmMocGF0aC5yZXNvbHZlKGJhc2VGb2xkZXIsIGZpbGVuYW1lKSk7fVxyXG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT09IFwiRU5PRU5UXCIpIHJldHVybjtcclxuICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnRpbWVDYWNoZVtmaWxlbmFtZV07XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNQbHVnaW4pIHJldHVybiBwbHVnaW5Nb2R1bGUudW5sb2FkUGx1Z2luKGZpbGVuYW1lKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGVtZU1vZHVsZS51bmxvYWRUaGVtZShmaWxlbmFtZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCFmcy5zdGF0U3luYyhwYXRoLnJlc29sdmUoYmFzZUZvbGRlciwgZmlsZW5hbWUpKS5pc0ZpbGUoKSkgcmV0dXJuO1xyXG4gICAgICAgICAgICBjb25zdCBzdGF0cyA9IGZzLnN0YXRTeW5jKHBhdGgucmVzb2x2ZShiYXNlRm9sZGVyLCBmaWxlbmFtZSkpO1xyXG4gICAgICAgICAgICBpZiAoIXN0YXRzIHx8ICFzdGF0cy5tdGltZSB8fCAhc3RhdHMubXRpbWUuZ2V0VGltZSgpKSByZXR1cm47XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Yoc3RhdHMubXRpbWUuZ2V0VGltZSgpKSAhPT0gXCJudW1iZXJcIikgcmV0dXJuO1xyXG4gICAgICAgICAgICBpZiAodGhpcy50aW1lQ2FjaGVbZmlsZW5hbWVdID09IHN0YXRzLm10aW1lLmdldFRpbWUoKSkgcmV0dXJuO1xyXG4gICAgICAgICAgICB0aGlzLnRpbWVDYWNoZVtmaWxlbmFtZV0gPSBzdGF0cy5tdGltZS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIGlmIChldmVudFR5cGUgPT0gXCJyZW5hbWVcIikge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzUGx1Z2luKSBwbHVnaW5Nb2R1bGUubG9hZFBsdWdpbihmaWxlbmFtZSk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIHRoZW1lTW9kdWxlLmxvYWRUaGVtZShmaWxlbmFtZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBcImNoYW5nZVwiKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNQbHVnaW4pIHBsdWdpbk1vZHVsZS5yZWxvYWRQbHVnaW4oZmlsZW5hbWUpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSB0aGVtZU1vZHVsZS5yZWxvYWRUaGVtZShmaWxlbmFtZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB1bndhdGNoQ29udGVudChjb250ZW50VHlwZSkge1xyXG4gICAgICAgIGlmICghdGhpcy53YXRjaGVyc1tjb250ZW50VHlwZV0pIHJldHVybjtcclxuICAgICAgICB0aGlzLndhdGNoZXJzW2NvbnRlbnRUeXBlXS5jbG9zZSgpO1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLndhdGNoZXJzW2NvbnRlbnRUeXBlXTtcclxuICAgIH1cclxuXHJcbiAgICBleHRyYWN0TWV0YShjb250ZW50KSB7XHJcbiAgICAgICAgY29uc3QgZmlyc3RMaW5lID0gY29udGVudC5zcGxpdChcIlxcblwiKVswXTtcclxuICAgICAgICBjb25zdCBoYXNPbGRNZXRhID0gZmlyc3RMaW5lLmluY2x1ZGVzKFwiLy9NRVRBXCIpO1xyXG4gICAgICAgIGlmIChoYXNPbGRNZXRhKSByZXR1cm4gdGhpcy5wYXJzZU9sZE1ldGEoY29udGVudCk7XHJcbiAgICAgICAgY29uc3QgaGFzTmV3TWV0YSA9IGZpcnN0TGluZS5pbmNsdWRlcyhcIi8qKlwiKTtcclxuICAgICAgICBpZiAoaGFzTmV3TWV0YSkgcmV0dXJuIHRoaXMucGFyc2VOZXdNZXRhKGNvbnRlbnQpO1xyXG4gICAgICAgIHRocm93IG5ldyBNZXRhRXJyb3IoXCJNRVRBIHdhcyBub3QgZm91bmQuXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHBhcnNlT2xkTWV0YShjb250ZW50KSB7XHJcbiAgICAgICAgY29uc3QgbWV0YSA9IGNvbnRlbnQuc3BsaXQoXCJcXG5cIilbMF07XHJcbiAgICAgICAgY29uc3QgcmF3TWV0YSA9IG1ldGEuc3Vic3RyaW5nKG1ldGEubGFzdEluZGV4T2YoXCIvL01FVEFcIikgKyA2LCBtZXRhLmxhc3RJbmRleE9mKFwiKi8vXCIpKTtcclxuICAgICAgICBpZiAobWV0YS5pbmRleE9mKFwiTUVUQVwiKSA8IDApIHRocm93IG5ldyBNZXRhRXJyb3IoXCJNRVRBIHdhcyBub3QgZm91bmQuXCIpO1xyXG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IFV0aWxzLnRlc3RKU09OKHJhd01ldGEpO1xyXG4gICAgICAgIGlmICghcGFyc2VkKSB0aHJvdyBuZXcgTWV0YUVycm9yKFwiTUVUQSBjb3VsZCBub3QgYmUgcGFyc2VkLlwiKTtcclxuICAgICAgICBpZiAoIXBhcnNlZC5uYW1lKSB0aHJvdyBuZXcgTWV0YUVycm9yKFwiTUVUQSBtaXNzaW5nIG5hbWUgZGF0YS5cIik7XHJcbiAgICAgICAgcGFyc2VkLmZvcm1hdCA9IFwianNvblwiO1xyXG4gICAgICAgIHJldHVybiBwYXJzZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcGFyc2VOZXdNZXRhKGNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBibG9jayA9IGNvbnRlbnQuc3BsaXQoXCIvKipcIiwgMilbMV0uc3BsaXQoXCIqL1wiLCAxKVswXTtcclxuICAgICAgICBjb25zdCBvdXQgPSB7fTtcclxuICAgICAgICBsZXQgZmllbGQgPSBcIlwiO1xyXG4gICAgICAgIGxldCBhY2N1bSA9IFwiXCI7XHJcbiAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIGJsb2NrLnNwbGl0KHNwbGl0UmVnZXgpKSB7XHJcbiAgICAgICAgICAgIGlmIChsaW5lLmxlbmd0aCA9PT0gMCkgY29udGludWU7XHJcbiAgICAgICAgICAgIGlmIChsaW5lLmNoYXJBdCgwKSA9PT0gXCJAXCIgJiYgbGluZS5jaGFyQXQoMSkgIT09IFwiIFwiKSB7XHJcbiAgICAgICAgICAgICAgICBvdXRbZmllbGRdID0gYWNjdW07XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsID0gbGluZS5pbmRleE9mKFwiIFwiKTtcclxuICAgICAgICAgICAgICAgIGZpZWxkID0gbGluZS5zdWJzdHIoMSwgbCAtIDEpO1xyXG4gICAgICAgICAgICAgICAgYWNjdW0gPSBsaW5lLnN1YnN0cihsICsgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBhY2N1bSArPSBcIiBcIiArIGxpbmUucmVwbGFjZShcIlxcXFxuXCIsIFwiXFxuXCIpLnJlcGxhY2UoZXNjYXBlZEF0UmVnZXgsIFwiQFwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBvdXRbZmllbGRdID0gYWNjdW0udHJpbSgpO1xyXG4gICAgICAgIGRlbGV0ZSBvdXRbXCJcIl07XHJcbiAgICAgICAgb3V0LmZvcm1hdCA9IFwianNkb2NcIjtcclxuICAgICAgICByZXR1cm4gb3V0O1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgZ2V0Q29udGVudFJlcXVpcmUodHlwZSkge1xyXG4gICAgICAgIGNvbnN0IGlzUGx1Z2luID0gdHlwZSA9PT0gXCJwbHVnaW5cIjtcclxuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcclxuICAgICAgICBjb25zdCBvcmlnaW5hbFJlcXVpcmUgPSBpc1BsdWdpbiA/IG9yaWdpbmFsSlNSZXF1aXJlIDogb3JpZ2luYWxDU1NSZXF1aXJlO1xyXG4gICAgICAgIHJldHVybiBmdW5jdGlvbihtb2R1bGUsIGZpbGVuYW1lKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGJhc2VGb2xkZXIgPSBpc1BsdWdpbiA/IHNlbGYucGx1Z2luc0ZvbGRlciA6IHNlbGYudGhlbWVzRm9sZGVyO1xyXG4gICAgICAgICAgICBjb25zdCBwb3NzaWJsZVBhdGggPSBwYXRoLnJlc29sdmUoYmFzZUZvbGRlciwgcGF0aC5iYXNlbmFtZShmaWxlbmFtZSkpO1xyXG4gICAgICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmMocG9zc2libGVQYXRoKSB8fCBmaWxlbmFtZSAhPT0gZnMucmVhbHBhdGhTeW5jKHBvc3NpYmxlUGF0aCkpIHJldHVybiBSZWZsZWN0LmFwcGx5KG9yaWdpbmFsUmVxdWlyZSwgdGhpcywgYXJndW1lbnRzKTtcclxuICAgICAgICAgICAgbGV0IGNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZW5hbWUsIFwidXRmOFwiKTtcclxuICAgICAgICAgICAgY29udGVudCA9IFV0aWxzLnN0cmlwQk9NKGNvbnRlbnQpO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgbWV0YSA9IHNlbGYuZXh0cmFjdE1ldGEoY29udGVudCk7XHJcbiAgICAgICAgICAgIG1ldGEuZmlsZW5hbWUgPSBwYXRoLmJhc2VuYW1lKGZpbGVuYW1lKTtcclxuICAgICAgICAgICAgaWYgKCFpc1BsdWdpbikge1xyXG4gICAgICAgICAgICAgICAgbWV0YS5jc3MgPSBjb250ZW50O1xyXG4gICAgICAgICAgICAgICAgaWYgKG1ldGEuZm9ybWF0ID09IFwianNvblwiKSBtZXRhLmNzcyA9IG1ldGEuY3NzLnNwbGl0KFwiXFxuXCIpLnNsaWNlKDEpLmpvaW4oXCJcXG5cIik7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50ID0gYG1vZHVsZS5leHBvcnRzID0gJHtKU09OLnN0cmluZ2lmeShtZXRhKX07YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaXNQbHVnaW4pIHtcclxuICAgICAgICAgICAgICAgIG1vZHVsZS5fY29tcGlsZShjb250ZW50LCBtb2R1bGUuZmlsZW5hbWUpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGlkRXhwb3J0ID0gIVV0aWxzLmlzRW1wdHkobW9kdWxlLmV4cG9ydHMpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGRpZEV4cG9ydCkge1xyXG4gICAgICAgICAgICAgICAgICAgIG1ldGEudHlwZSA9IG1vZHVsZS5leHBvcnRzO1xyXG4gICAgICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gbWV0YTtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50ID0gXCJcIjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQgKz0gYFxcbm1vZHVsZS5leHBvcnRzID0gJHtKU09OLnN0cmluZ2lmeShtZXRhKX07XFxubW9kdWxlLmV4cG9ydHMudHlwZSA9ICR7bWV0YS5leHBvcnRzIHx8IG1ldGEubmFtZX07YDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBtb2R1bGUuX2NvbXBpbGUoY29udGVudCwgZmlsZW5hbWUpO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgbWFrZVBsYWNlaG9sZGVyUGx1Z2luKGRhdGEpIHtcclxuICAgICAgICByZXR1cm4ge3BsdWdpbjoge1xyXG4gICAgICAgICAgICAgICAgc3RhcnQ6ICgpID0+IHt9LFxyXG4gICAgICAgICAgICAgICAgZ2V0TmFtZTogKCkgPT4ge3JldHVybiBkYXRhLm5hbWUgfHwgZGF0YS5maWxlbmFtZTt9LFxyXG4gICAgICAgICAgICAgICAgZ2V0QXV0aG9yOiAoKSA9PiB7cmV0dXJuIFwiPz8/XCI7fSxcclxuICAgICAgICAgICAgICAgIGdldERlc2NyaXB0aW9uOiAoKSA9PiB7cmV0dXJuIGRhdGEubWVzc2FnZSA/IGRhdGEubWVzc2FnZSA6IFwiVGhpcyBwbHVnaW4gd2FzIHVuYWJsZSB0byBiZSBsb2FkZWQuIENoZWNrIHRoZSBhdXRob3IncyBwYWdlIGZvciB1cGRhdGVzLlwiO30sXHJcbiAgICAgICAgICAgICAgICBnZXRWZXJzaW9uOiAoKSA9PiB7cmV0dXJuIFwiPz8/XCI7fVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBuYW1lOiBkYXRhLm5hbWUgfHwgZGF0YS5maWxlbmFtZSxcclxuICAgICAgICAgICAgZmlsZW5hbWU6IGRhdGEuZmlsZW5hbWUsXHJcbiAgICAgICAgICAgIHNvdXJjZTogZGF0YS5zb3VyY2UgPyBkYXRhLnNvdXJjZSA6IFwiXCIsXHJcbiAgICAgICAgICAgIHdlYnNpdGU6IGRhdGEud2Vic2l0ZSA/IGRhdGEud2Vic2l0ZSA6IFwiXCJcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWRDb250ZW50KGZpbGVuYW1lLCB0eXBlKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZihmaWxlbmFtZSkgPT09IFwidW5kZWZpbmVkXCIgfHwgdHlwZW9mKHR5cGUpID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm47XHJcbiAgICAgICAgY29uc3QgaXNQbHVnaW4gPSB0eXBlID09PSBcInBsdWdpblwiO1xyXG4gICAgICAgIGNvbnN0IGJhc2VGb2xkZXIgPSBpc1BsdWdpbiA/IHRoaXMucGx1Z2luc0ZvbGRlciA6IHRoaXMudGhlbWVzRm9sZGVyO1xyXG4gICAgICAgIHRyeSB7X19ub25fd2VicGFja19yZXF1aXJlX18ocGF0aC5yZXNvbHZlKGJhc2VGb2xkZXIsIGZpbGVuYW1lKSk7fVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikge3JldHVybiB7bmFtZTogZmlsZW5hbWUsIGZpbGU6IGZpbGVuYW1lLCBtZXNzYWdlOiBcIkNvdWxkIG5vdCBiZSBjb21waWxlZC5cIiwgZXJyb3I6IHttZXNzYWdlOiBlcnJvci5tZXNzYWdlLCBzdGFjazogZXJyb3Iuc3RhY2t9fTt9XHJcbiAgICAgICAgY29uc3QgY29udGVudCA9IF9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fKHBhdGgucmVzb2x2ZShiYXNlRm9sZGVyLCBmaWxlbmFtZSkpO1xyXG4gICAgICAgIGNvbnRlbnQuaWQgPSBVdGlscy5lc2NhcGVJRChjb250ZW50Lm5hbWUpO1xyXG4gICAgICAgIGlmIChpc1BsdWdpbikge1xyXG4gICAgICAgICAgICBpZiAoIWNvbnRlbnQudHlwZSkgcmV0dXJuO1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgY29udGVudC5wbHVnaW4gPSBuZXcgY29udGVudC50eXBlKCk7XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgYmRwbHVnaW5zW2NvbnRlbnQucGx1Z2luLmdldE5hbWUoKV07XHJcbiAgICAgICAgICAgICAgICBiZHBsdWdpbnNbY29udGVudC5wbHVnaW4uZ2V0TmFtZSgpXSA9IGNvbnRlbnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7cmV0dXJuIHtuYW1lOiBmaWxlbmFtZSwgZmlsZTogZmlsZW5hbWUsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGJlIGNvbnN0cnVjdGVkLlwiLCBlcnJvcjoge21lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsIHN0YWNrOiBlcnJvci5zdGFja319O31cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGRlbGV0ZSBiZHRoZW1lc1tjb250ZW50Lm5hbWVdO1xyXG4gICAgICAgICAgICBiZHRoZW1lc1tjb250ZW50Lm5hbWVdID0gY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdW5sb2FkQ29udGVudChmaWxlbmFtZSwgdHlwZSkge1xyXG4gICAgICAgIGlmICh0eXBlb2YoZmlsZW5hbWUpID09PSBcInVuZGVmaW5lZFwiIHx8IHR5cGVvZih0eXBlKSA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IGlzUGx1Z2luID0gdHlwZSA9PT0gXCJwbHVnaW5cIjtcclxuICAgICAgICBjb25zdCBiYXNlRm9sZGVyID0gaXNQbHVnaW4gPyB0aGlzLnBsdWdpbnNGb2xkZXIgOiB0aGlzLnRoZW1lc0ZvbGRlcjtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBkZWxldGUgcmVxdWlyZS5jYWNoZVtyZXF1aXJlLnJlc29sdmUocGF0aC5yZXNvbHZlKGJhc2VGb2xkZXIsIGZpbGVuYW1lKSldO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXJyKSB7cmV0dXJuIHtuYW1lOiBmaWxlbmFtZSwgZmlsZTogZmlsZW5hbWUsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGJlIHVubG9hZGVkLlwiLCBlcnJvcjoge21lc3NhZ2U6IGVyci5tZXNzYWdlLCBzdGFjazogZXJyLnN0YWNrfX07fVxyXG4gICAgfVxyXG5cclxuICAgIGlzTG9hZGVkKGZpbGVuYW1lLCB0eXBlKSB7XHJcbiAgICAgICAgY29uc3QgaXNQbHVnaW4gPSB0eXBlID09PSBcInBsdWdpblwiO1xyXG4gICAgICAgIGNvbnN0IGJhc2VGb2xkZXIgPSBpc1BsdWdpbiA/IHRoaXMucGx1Z2luc0ZvbGRlciA6IHRoaXMudGhlbWVzRm9sZGVyO1xyXG4gICAgICAgIHRyeSB7cmVxdWlyZS5jYWNoZVtyZXF1aXJlLnJlc29sdmUocGF0aC5yZXNvbHZlKGJhc2VGb2xkZXIsIGZpbGVuYW1lKSldO31cclxuICAgICAgICBjYXRjaCAoZXJyKSB7cmV0dXJuIGZhbHNlO31cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZWxvYWRDb250ZW50KGZpbGVuYW1lLCB0eXBlKSB7XHJcbiAgICAgICAgY29uc3QgY2FudFVubG9hZCA9IHRoaXMudW5sb2FkQ29udGVudChmaWxlbmFtZSwgdHlwZSk7XHJcbiAgICAgICAgaWYgKGNhbnRVbmxvYWQpIHJldHVybiBjYW50VW5sb2FkO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRDb250ZW50KGZpbGVuYW1lLCB0eXBlKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkTmV3Q29udGVudCh0eXBlKSB7XHJcbiAgICAgICAgY29uc3QgaXNQbHVnaW4gPSB0eXBlID09PSBcInBsdWdpblwiO1xyXG4gICAgICAgIGNvbnN0IGZpbGVFbmRpbmcgPSBpc1BsdWdpbiA/IFwiLnBsdWdpbi5qc1wiIDogXCIudGhlbWUuY3NzXCI7XHJcbiAgICAgICAgY29uc3QgYmFzZWRpciA9IGlzUGx1Z2luID8gdGhpcy5wbHVnaW5zRm9sZGVyIDogdGhpcy50aGVtZXNGb2xkZXI7XHJcbiAgICAgICAgY29uc3QgZmlsZXMgPSBmcy5yZWFkZGlyU3luYyhiYXNlZGlyKTtcclxuICAgICAgICBjb25zdCBjb250ZW50TGlzdCA9IE9iamVjdC52YWx1ZXMoaXNQbHVnaW4gPyBiZHBsdWdpbnMgOiBiZHRoZW1lcyk7XHJcbiAgICAgICAgY29uc3QgcmVtb3ZlZCA9IGNvbnRlbnRMaXN0LmZpbHRlcih0ID0+ICFmaWxlcy5pbmNsdWRlcyh0LmZpbGVuYW1lKSkubWFwKGMgPT4gaXNQbHVnaW4gPyBjLnBsdWdpbi5nZXROYW1lKCkgOiBjLm5hbWUpO1xyXG4gICAgICAgIGNvbnN0IGFkZGVkID0gZmlsZXMuZmlsdGVyKGYgPT4gIWNvbnRlbnRMaXN0LmZpbmQodCA9PiB0LmZpbGVuYW1lID09IGYpICYmIGYuZW5kc1dpdGgoZmlsZUVuZGluZykgJiYgZnMuc3RhdFN5bmMocGF0aC5yZXNvbHZlKGJhc2VkaXIsIGYpKS5pc0ZpbGUoKSk7XHJcbiAgICAgICAgcmV0dXJuIHthZGRlZCwgcmVtb3ZlZH07XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZEFsbENvbnRlbnQodHlwZSkge1xyXG4gICAgICAgIGNvbnN0IGlzUGx1Z2luID0gdHlwZSA9PT0gXCJwbHVnaW5cIjtcclxuICAgICAgICBjb25zdCBmaWxlRW5kaW5nID0gaXNQbHVnaW4gPyBcIi5wbHVnaW4uanNcIiA6IFwiLnRoZW1lLmNzc1wiO1xyXG4gICAgICAgIGNvbnN0IGJhc2VkaXIgPSBpc1BsdWdpbiA/IHRoaXMucGx1Z2luc0ZvbGRlciA6IHRoaXMudGhlbWVzRm9sZGVyO1xyXG4gICAgICAgIGNvbnN0IGVycm9ycyA9IFtdO1xyXG4gICAgICAgIGNvbnN0IGZpbGVzID0gZnMucmVhZGRpclN5bmMoYmFzZWRpcik7XHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgZmlsZW5hbWUgb2YgZmlsZXMpIHtcclxuICAgICAgICAgICAgaWYgKCFmcy5zdGF0U3luYyhwYXRoLnJlc29sdmUoYmFzZWRpciwgZmlsZW5hbWUpKS5pc0ZpbGUoKSB8fCAhZmlsZW5hbWUuZW5kc1dpdGgoZmlsZUVuZGluZykpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IHRoaXMubG9hZENvbnRlbnQoZmlsZW5hbWUsIHR5cGUpO1xyXG4gICAgICAgICAgICBpZiAoZXJyb3IpIGVycm9ycy5wdXNoKGVycm9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBlcnJvcnM7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZFBsdWdpbnMoKSB7cmV0dXJuIHRoaXMubG9hZEFsbENvbnRlbnQoXCJwbHVnaW5cIik7fVxyXG4gICAgbG9hZFRoZW1lcygpIHtyZXR1cm4gdGhpcy5sb2FkQWxsQ29udGVudChcInRoZW1lXCIpO31cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\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.inject24Hour = function () {\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_1__[\"default\"].monkeyPatch(_v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].TimeFormatter, \"calendarFormat\", {\n after: convert\n }); // Called in Cozy mode\n\n const cancelCompact = _utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].monkeyPatch(_v2__WEBPACK_IMPORTED_MODULE_4__[\"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\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2NvcmUuanM/MjBjOSJdLCJuYW1lcyI6WyJDb3JlIiwiY29uZmlnIiwiT2JqZWN0IiwiYXNzaWduIiwiYmRDb25maWciLCJwcm90b3R5cGUiLCJpbml0IiwidmVyc2lvbiIsIm1pblN1cHBvcnRlZFZlcnNpb24iLCJVdGlscyIsImFsZXJ0IiwiYmJkVmVyc2lvbiIsIndpbmRvdyIsIkVEIiwiV2ViU29ja2V0IiwibmFtZSIsImluY2x1ZGVzIiwibGF0ZXN0TG9jYWxWZXJzaW9uIiwidXBkYXRlciIsIkxhdGVzdFZlcnNpb24iLCJsYXRlc3RWZXJzaW9uIiwibG9nIiwiaW5pdFNldHRpbmdzIiwiZW1vdGVQcm9taXNlIiwiZW1vdGVNb2R1bGUiLCJ0aGVuIiwiaW5pdGlhbGl6ZWQiLCJxdWlja0Vtb3RlTWVudSIsImluamVjdEV4dGVybmFscyIsImNoZWNrRm9yR3VpbGRzIiwiQkRWMiIsImluaXRpYWxpemUiLCJzZXR0aW5nc1BhbmVsIiwiaW5pdGlhbGl6ZVNldHRpbmdzIiwicGx1Z2luTW9kdWxlIiwibG9hZFBsdWdpbnMiLCJ0aGVtZU1vZHVsZSIsImxvYWRUaGVtZXMiLCIkIiwiZGV0YWNoIiwiYXBwZW5kVG8iLCJkb2N1bWVudCIsImhlYWQiLCJhZGRFdmVudExpc3RlbmVyIiwic2V0dGluZ3NDb29raWUiLCJxdWVyeVNlbGVjdG9yIiwiY2xpY2siLCJhdXRvQ2FwaXRhbGl6ZSIsImdldEVsZW1lbnRzQnlDbGFzc05hbWUiLCJsZW5ndGgiLCJyZW1vdmUiLCJpbml0T2JzZXJ2ZXIiLCJzaG93Q29udGVudEVycm9ycyIsInBsdWdpbnMiLCJiZHBsdWdpbkVycm9ycyIsInRoZW1lcyIsImJkdGhlbWVFcnJvcnMiLCJwcmV2aW91c1ZlcnNpb24iLCJEYXRhU3RvcmUiLCJnZXRCRERhdGEiLCJiYmRDaGFuZ2Vsb2ciLCJzaG93Q2hhbmdlbG9nTW9kYWwiLCJzZXRCRERhdGEiLCJzdXBwcmVzc0Vycm9ycyIsInBhdGNoU29jaWFsIiwiYmluZCIsInBhdGNoR3VpbGRQaWxscyIsInBhdGNoR3VpbGRMaXN0SXRlbXMiLCJwYXRjaEd1aWxkU2VwYXJhdG9yIiwidGltZXNDaGVja2VkIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ3cmFwcGVyIiwiZ3VpbGRDbGFzc2VzIiwic3BsaXQiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZ3VpbGQiLCJsaXN0SXRlbSIsImJsb2IiLCJibG9iQ29udGFpbmVyIiwiZGVmZXJMb2FkZWQiLCJzZXRUaW1lb3V0IiwicmVhZHkiLCJpbmplY3RKcyIsInJlcXVpcmUiLCJvcmlnaW5hbCIsImdldFNldHRpbmdHcm91cCIsImRlZmF1bHRDb29raWUiLCJzYXZlU2V0dGluZ3MiLCJsb2FkU2V0dGluZ3MiLCJ0ZXh0IiwiYXRvYiIsInNldHRpbmciLCJ1bmRlZmluZWQiLCJtYWluT2JzZXJ2ZXIiLCJNdXRhdGlvbk9ic2VydmVyIiwibXV0YXRpb25zIiwiaSIsIm1sZW4iLCJtdXRhdGlvbiIsInJhd09ic2VydmVyIiwiYWRkZWROb2RlcyIsIkVsZW1lbnQiLCJub2RlIiwiY2xhc3NMaXN0IiwiY29udGFpbnMiLCJzZXRBdHRyaWJ1dGUiLCJnZXRFbGVtZW50QnlJZCIsInJlbmRlclNpZGViYXIiLCJwYXJlbnRFbGVtZW50IiwiYm9keSIsImlkIiwib2JzQ2FsbGJhY2siLCJvYnNlcnZlIiwiY2hpbGRMaXN0Iiwic3VidHJlZSIsImluamVjdDI0SG91ciIsImNhbmNlbDI0SG91ciIsInR3ZWx2ZUhvdXIiLCJSZWdFeHAiLCJjb252ZXJ0IiwiZGF0YSIsIm1hdGNoZWQiLCJyZXR1cm5WYWx1ZSIsIm1hdGNoIiwicmVwbGFjZSIsInBhZFN0YXJ0IiwicGFyc2VJbnQiLCJjYW5jZWxDb3p5IiwibW9ua2V5UGF0Y2giLCJUaW1lRm9ybWF0dGVyIiwiYWZ0ZXIiLCJjYW5jZWxDb21wYWN0Iiwib3B0aW9ucyIsIk1vZGFsU3RhY2siLCJXZWJwYWNrTW9kdWxlcyIsImZpbmRCeVByb3BzIiwiQ2hhbmdlbG9nQ2xhc3NlcyIsIlRleHRFbGVtZW50IiwiRmxleENoaWxkIiwiVGl0bGVzIiwiQ2hhbmdlbG9nIiwiZmluZCIsIm0iLCJkZWZhdWx0UHJvcHMiLCJzZWxlY3RhYmxlIiwiTWFya2Rvd25QYXJzZXIiLCJpbWFnZSIsImRlc2NyaXB0aW9uIiwiY2hhbmdlcyIsInRpdGxlIiwic3VidGl0bGUiLCJmb290ZXIiLCJjZSIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsImNoYW5nZWxvZ0l0ZW1zIiwic3JjIiwicHVzaCIsInBhcnNlIiwiYyIsImVudHJ5IiwidHlwZSIsImFkZGVkIiwibWFyZ2luIiwibWFyZ2luVG9wIiwiY2xhc3NOYW1lIiwibGlzdCIsIml0ZW1zIiwibWFwIiwicmVuZGVySGVhZGVyIiwiQ2hpbGQiLCJncm93Iiwic2hyaW5rIiwiZGVmYXVsdCIsInRhZyIsIlRhZ3MiLCJINCIsInNpemUiLCJTaXplcyIsIlNNQUxMIiwiY29sb3IiLCJDb2xvcnMiLCJQUklNQVJZIiwiZGF0ZSIsInJlbmRlckZvb3RlciIsIkFuY2hvciIsImRpc3BsYXlOYW1lIiwiQW5jaG9yQ2xhc3NlcyIsImFuY2hvciIsImFuY2hvclVuZGVybGluZU9uSG92ZXIiLCJqb2luU3VwcG9ydFNlcnZlciIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwicG9wIiwiam9pbkJEMiIsInN1cHBvcnRMaW5rIiwib25DbGljayIsImRlZmF1bHRGb290ZXIiLCJwcm9wcyIsImNvbnRhaW5lciIsIm9uU2Nyb2xsIiwiXyIsIm9uQ2xvc2UiLCJjaGlsZHJlbiIsInNvY2lhbFBhdGNoIiwiVGFiQmFyIiwidG9TdHJpbmciLCJuZXdPbmUiLCJyZXR1cm5WYWwiLCJhcmd1bWVudHMiLCJocmVmIiwidGFyZ2V0IiwiQkRMb2dvIiwiQkJETGluayIsIkF1dGhvckxpbmsiLCJhZGRpdGlvbmFsIiwicmVhY3QiLCJvcmlnaW5hbFZlcnNpb25zIiwiZ2V0R3VpbGRDbGFzc2VzIiwiZ3VpbGRzV3JhcHBlciIsImd1aWxkcyIsInBpbGwiLCJndWlsZExpc3RJdGVtc1BhdGNoIiwiR3VpbGRDbGFzc2VzIiwibGlzdEl0ZW1DbGFzcyIsImJsb2JDbGFzcyIsInJlYWN0SW5zdGFuY2UiLCJnZXRJbnRlcm5hbEluc3RhbmNlIiwiR3VpbGRDb21wb25lbnQiLCJyZXR1cm4iLCJ0aGlzT2JqZWN0IiwiZ3VpbGREYXRhIiwidW5yZWFkIiwic2VsZWN0ZWQiLCJhdWRpbyIsInZpZGVvIiwiYmFkZ2UiLCJhbmltYXRhYmxlIiwiZ3VpbGRQaWxsUGF0Y2giLCJndWlsZFBpbGwiLCJtZXRob2RBcmd1bWVudHMiLCJob3ZlcmVkIiwiZ3VpbGRTZXBhcmF0b3JQYXRjaCIsIkd1aWxkcyIsImZpbmRCeURpc3BsYXlOYW1lIiwiZ3VpbGRDb21wb25lbnRzIiwiR3VpbGRTZXBhcmF0b3IiLCJTZXBhcmF0b3IiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtDQUVBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7QUFFQSxTQUFTQSxJQUFULENBQWNDLE1BQWQsRUFBc0I7QUFDbEJDLFFBQU0sQ0FBQ0MsTUFBUCxDQUFjQyxrREFBZCxFQUF3QkgsTUFBeEI7QUFDSDs7QUFFREQsSUFBSSxDQUFDSyxTQUFMLENBQWVDLElBQWYsR0FBc0Isa0JBQWlCO0FBQ25DLE1BQUlGLGtEQUFRLENBQUNHLE9BQVQsR0FBbUJDLDZEQUF2QixFQUE0QztBQUN4Q0Msa0RBQUssQ0FBQ0MsS0FBTixDQUFZLGVBQVosRUFBNkIsb0JBQW9CTixrREFBUSxDQUFDRyxPQUE3QixHQUF1QyxpQkFBdkMsR0FBMkQsc0NBQTNELEdBQW9HSSxvREFBcEcsR0FBaUgscUpBQTlJO0FBQ0E7QUFDSDs7QUFFRCxNQUFJQyxNQUFNLENBQUNDLEVBQVgsRUFBZTtBQUNYSixrREFBSyxDQUFDQyxLQUFOLENBQVksZUFBWixFQUE2Qiw4RUFBN0I7QUFDQTtB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LEdBQUc3Ryx1REFBYyxDQUFDOEcsaUJBQWYsQ0FBaUMsUUFBakMsQ0FBZjtBQUNBLFFBQU1DLGVBQWUsR0FBRy9HLHVEQUFjLENBQUNDLFdBQWYsQ0FBMkIsZ0JBQTNCLENBQXhCO0FBQ0EsTUFBSSxDQUFDOEcsZUFBRCxJQUFvQixDQUFDRixNQUF6QixFQUFpQzs7QUFDakMsUUFBTUcsY0FBYyxHQUFHLFlBQVc7QUFDOUIsVUFBTTVILFdBQVcsR0FBRzJILGVBQWUsQ0FBQ0UsU0FBaEIsQ0FBMEIsR0FBR3RDLFNBQTdCLENBQXBCO0FBQ0F2RixlQUFXLENBQUM0RSxLQUFaLENBQWtCakMsU0FBbEIsSUFBK0IscUJBQS9CO0FBQ0EsV0FBTzNDLFdBQVA7QUFDSCxHQUpEOztBQUtBLE9BQUt3SCxtQkFBTCxHQUEyQjFPLDhDQUFLLENBQUN3SCxXQUFOLENBQWtCbUgsTUFBTSxDQUFDL08sU0FBekIsRUFBb0MsUUFBcEMsRUFBOEM7QUFBQzhILFNBQUssRUFBR1YsSUFBRCxJQUFVO0FBQ3ZGQSxVQUFJLENBQUNFLFdBQUwsQ0FBaUI0RSxLQUFqQixDQUF1QkssUUFBdkIsQ0FBZ0MsQ0FBaEMsRUFBbUNMLEtBQW5DLENBQXlDSyxRQUF6QyxDQUFrRCxDQUFsRCxFQUFxRDFDLElBQXJELEdBQTREcUYsY0FBNUQ7QUFDSDtBQUZ3RSxHQUE5QyxDQUEzQjtBQUdILENBYkQ7O0FBZWV2UCxtRUFBZiIsImZpbGUiOiIuL3NyYy9jb3JlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtiZENvbmZpZywgbWluU3VwcG9ydGVkVmVyc2lvbiwgYmJkVmVyc2lvbiwgc2V0dGluZ3NDb29raWUsIGJkcGx1Z2luRXJyb3JzLCBiZHRoZW1lRXJyb3JzLCBiYmRDaGFuZ2Vsb2csIGRlZmF1bHRDb29raWV9IGZyb20gXCIuLzBnbG9iYWxzXCI7XHJcbmltcG9ydCBVdGlscyBmcm9tIFwiLi91dGlsc1wiO1xyXG5pbXBvcnQgZW1vdGVNb2R1bGUgZnJvbSBcIi4vZW1vdGVNb2R1bGVcIjtcclxuaW1wb3J0IHF1aWNrRW1vdGVNZW51IGZyb20gXCIuL3F1aWNrRW1vdGVNZW51XCI7XHJcbi8vIGltcG9ydCBwdWJsaWNTZXJ2ZXJzTW9kdWxlIGZyb20gXCIuL3B1YmxpY1NlcnZlcnNcIjtcclxuLy8gaW1wb3J0IHZvaWNlTW9kZSBmcm9tIFwiLi92b2ljZU1vZGVcIjtcclxuLy8gaW1wb3J0IGRNb2RlIGZyb20gXCIuL2Rldk1vZGVcIjtcclxuaW1wb3J0IEJEVjIgZnJvbSBcIi4vdjJcIjtcclxuaW1wb3J0IHNldHRpbmdzUGFuZWwgZnJvbSBcIi4vc2V0dGluZ3NQYW5lbFwiO1xyXG5pbXBvcnQgcGx1Z2luTW9kdWxlIGZyb20gXCIuL3BsdWdpbk1vZHVsZVwiO1xyXG5pbXBvcnQgdGhlbWVNb2R1bGUgZnJvbSBcIi4vdGhlbWVNb2R1bGVcIjtcclxuaW1wb3J0IERhdGFTdG9yZSBmcm9tIFwiLi9kYXRhU3RvcmVcIjtcclxuaW1wb3J0IFdlYnBhY2tNb2R1bGVzIGZyb20gXCIuL3dlYnBhY2tNb2R1bGVzXCI7XHJcblxyXG5pbXBvcnQgQkRMb2dvIGZyb20gXCIuL3JlYWN0L2JkTG9nb1wiO1xyXG5cclxuZnVuY3Rpb24gQ29yZShjb25maWcpIHtcclxuICAgIE9iamVjdC5hc3NpZ24oYmRDb25maWcsIGNvbmZpZyk7XHJcbn1cclxuXHJcbkNvcmUucHJvdG90eXBlLmluaXQgPSBhc3luYyBmdW5jdGlvbigpIHtcclxuICAgIGlmIChiZENvbmZpZy52ZXJzaW9uIDwgbWluU3VwcG9ydGVkVmVyc2lvbikge1xyXG4gICAgICAgIFV0aWxzLmFsZXJ0KFwiTm90IFN1cHBvcnRlZFwiLCBcIkJldHRlckRpc2NvcmQgdlwiICsgYmRDb25maWcudmVyc2lvbiArIFwiICh5b3VyIHZlcnNpb24pXCIgKyBcIiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBsYXRlc3QganMgKFwiICsgYmJkVmVyc2lvbiArIFwiKS48YnI+PGJyPiBQbGVhc2UgZG93bmxvYWQgdGhlIGxhdGVzdCB2ZXJzaW9uIGZyb20gPGEgaHJlZj0naHR0cHM6Ly9naXRodWIuY29tL3JhdWVuemkvQmV0dGVyRGlzY29yZEFwcC9yZWxlYXNlcy9sYXRlc3QnIHRhcmdldD0nX2JsYW5rJz5HaXRIdWI8L2E+XCIpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAod2luZG93LkVEKSB7XHJcbiAgICAgICAgVXRpbHMuYWxlcnQoXCJOb3QgU3VwcG9ydGVkXCIsIFwiQmFuZGFnZWRCRCBkb2VzIG5vdCB3b3JrIHdpdGggRW5oYW5jZWREaXNjb3JkLiBQbGVhc2UgdW5pbnN0YWxsIG9uZSBvZiB0aGVtLlwiKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHdpbmRvdy5XZWJTb2NrZXQgJiYgd2luZG93LldlYlNvY2tldC5uYW1lICYmIHdpbmRvdy5XZWJTb2NrZXQubmFtZS5pbmNsdWRlcyhcIlBhdGNoZWRcIikpIHtcclxuICAgICAgICBVdGlscy5hbGVydChcIk5vdCBTdXBwb3J0ZWRcIiwgXCJCYW5kYWdlZEJEIGRvZXMgbm90IHdvcmsgd2l0aCBQb3dlcmNvcmQuIFBsZWFzZSB1bmluc3RhbGwgb25lIG9mIHRoZW0uXCIpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBsYXRlc3RMb2NhbFZlcnNpb24gPSBiZENvbmZpZy51cGRhdGVyID8gYmRDb25maWcudXBkYXRlci5MYXRlc3RWZXJzaW9uIDogYmRDb25maWcubGF0ZXN0VmVyc2lvbjtcclxuICAgIGlmIChsYXRlc3RMb2NhbFZlcnNpb24gPiBiZENvbmZpZy52ZXJzaW9uKSB7XHJcbiAgICAgICAgVXRpbHMuYWxlcnQoXCJVcGRhdGUgQXZhaWxhYmxlXCIsIGBcclxuICAgICAgICAgICAgQW4gdXBkYXRlIGZvciBCYW5kYWdlZEJEIGlzIGF2YWlsYWJsZSAoJHtsYXRlc3RMb2NhbFZlcnNpb259KSEgUGxlYXNlIFJlaW5zdGFsbCE8YnIgLz48YnIgLz5cclxuICAgICAgICAgICAgPGEgaHJlZj0naHR0cHM6Ly9naXRodWIuY29tL3JhdWVuemkvQmV0dGVyRGlzY29yZEFwcC9yZWxlYXNlcy9sYXRlc3QnIHRhcmdldD0nX2JsYW5rJz5Eb3dubG9hZCBJbnN0YWxsZXI8L2E+XHJcbiAgICAgICAgYCk7XHJcbiAgICB9XHJcblxyXG4gICAgVXRpbHMubG9nKFwiU3RhcnR1cFwiLCBcIkluaXRpYWxpemluZyBTZXR0aW5nc1wiKTtcclxuICAgIHRoaXMuaW5pdFNldHRpbmdzKCk7XHJcbiAgICAvLyBlbW90ZU1vZHVsZSA9IG5ldyBFbW90ZU1vZHVsZSgpO1xyXG4gICAgLy8gcXVpY2tFbW90ZU1lbnUgPSBuZXcgUXVpY2tFbW90ZU1lbnUoKTtcclxuICAgIFV0aWxzLmxvZyhcIlN0YXJ0dXBcIiwgXCJJbml0aWFsaXppbmcgRW1vdGVNb2R1bGVcIik7XHJcbiAgICB3aW5kb3cuZW1vdGVQcm9taXNlID0gZW1vdGVNb2R1bGUuaW5pdCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGVtb3RlTW9kdWxlLmluaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgICBVdGlscy5sb2coXCJTdGFydHVwXCIsIFwiSW5pdGlhbGl6aW5nIFF1aWNrRW1vdGVNZW51XCIpO1xyXG4gICAgICAgIHF1aWNrRW1vdGVNZW51LmluaXQoKTtcclxuICAgIH0pO1xyXG4gICAgLy8gcHVibGljU2VydmVyc01vZHVsZSA9IG5ldyBWMl9QdWJsaWNTZXJ2ZXJzKCk7XHJcblxyXG4gICAgLy8gdm9pY2VNb2RlID0gbmV3IFZvaWNlTW9kZSgpO1xyXG4gICAgLy8gZE1vZGUgPSBuZXcgZGV2TW9kZSgpO1xyXG5cclxuICAgIHRoaXMuaW5qZWN0RXh0ZXJuYWxzKCk7XHJcblxyXG4gICAgYXdhaXQgdGhpcy5jaGVja0Zvckd1aWxkcygpO1xyXG4gICAgQkRWMi5pbml0aWFsaXplKCk7XHJcbiAgICBVdGlscy5sb2coXCJTdGFydHVwXCIsIFwiVXBkYXRpbmcgU2V0dGluZ3NcIik7XHJcbiAgICAvLyBzZXR0aW5nc1BhbmVsID0gbmV3IFYyX1NldHRpbmdzUGFuZWwoKTtcclxuICAgIHNldHRpbmdzUGFuZWwuaW5pdGlhbGl6ZVNldHRpbmdzKCk7XHJcblxyXG4gICAgVXRpbHMubG9nKFwiU3RhcnR1cFwiLCBcIkxvYWRpbmcgUGx1Z2luc1wiKTtcclxuICAgIC8vIHBsdWdpbk1vZHVsZSA9IG5ldyBQbHVnaW5Nb2R1bGUoKTtcclxuICAgIHBsdWdpbk1vZHVsZS5sb2FkUGx1Z2lucygpO1xyXG5cclxuICAgIFV0aWxzLmxvZyhcIlN0YXJ0dXBcIiwgXCJMb2FkaW5nIFRoZW1lc1wiKTtcclxuICAgIC8vIHRoZW1lTW9kdWxlID0gbmV3IFRoZW1lTW9kdWxlKCk7XHJcbiAgICB0aGVtZU1vZHVsZS5sb2FkVGhlbWVzKCk7XHJcblxyXG4gICAgJChcIiNjdXN0b21jc3NcIikuZGV0YWNoKCkuYXBwZW5kVG8oZG9jdW1lbnQuaGVhZCk7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJiZWZvcmV1bmxvYWRcIiwgZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgaWYgKHNldHRpbmdzQ29va2llW1wiYmRhLWRjLTBcIl0pIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuYnRuLmJ0bi1kaXNjb25uZWN0XCIpLmNsaWNrKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBlbW90ZU1vZHVsZS5hdXRvQ2FwaXRhbGl6ZSgpO1xyXG5cclxuICAgIFV0aWxzLmxvZyhcIlN0YXJ0dXBcIiwgXCJSZW1vdmluZyBMb2FkaW5nIEljb25cIik7XHJcbiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcImJkLWxvYWRlcnYyXCIpLmxlbmd0aCkgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcImJkLWxvYWRlcnYyXCIpWzBdLnJlbW92ZSgpO1xyXG4gICAgVXRpbHMubG9nKFwiU3RhcnR1cFwiLCBcIkluaXRpYWxpemluZyBNYWluIE9ic2VydmVyXCIpO1xyXG4gICAgdGhpcy5pbml0T2JzZXJ2ZXIoKTtcclxuXHJcbiAgICAvLyBTaG93IGxvYWRpbmcgZXJyb3JzXHJcbiAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTFcIl0pIHtcclxuICAgICAgICBVdGlscy5sb2coXCJTdGFydHVwXCIsIFwiQ29sbGVjdGluZyBTdGFydHVwIEVycm9yc1wiKTtcclxuICAgICAgICBVdGlscy5zaG93Q29udGVudEVycm9ycyh7cGx1Z2luczogYmRwbHVnaW5FcnJvcnMsIHRoZW1lczogYmR0aGVtZUVycm9yc30pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHByZXZpb3VzVmVyc2lvbiA9IERhdGFTdG9yZS5nZXRCRERhdGEoXCJ2ZXJzaW9uXCIpO1xyXG4gICAgaWYgKGJiZFZlcnNpb24gPiBwcmV2aW91c1ZlcnNpb24pIHtcclxuICAgICAgICBpZiAoYmJkQ2hhbmdlbG9nKSB0aGlzLnNob3dDaGFuZ2Vsb2dNb2RhbChiYmRDaGFuZ2Vsb2cpO1xyXG4gICAgICAgIERhdGFTdG9yZS5zZXRCRERhdGEoXCJ2ZXJzaW9uXCIsIGJiZFZlcnNpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIFV0aWxzLnN1cHByZXNzRXJyb3JzKHRoaXMucGF0Y2hTb2NpYWwuYmluZCh0aGlzKSwgXCJCRCBTb2NpYWwgUGF0Y2hcIikoKTtcclxuICAgIFV0aWxzLnN1cHByZXNzRXJyb3JzKHRoaXMucGF0Y2hHdWlsZFBpbGxzLmJpbmQodGhpcyksIFwiQkQgR3VpbGQgUGlsbHMgUGF0Y2hcIikoKTtcclxuICAgIFV0aWxzLnN1cHByZXNzRXJyb3JzKHRoaXMucGF0Y2hHdWlsZExpc3RJdGVtcy5iaW5kKHRoaXMpLCBcIkJEIEd1aWxkIExpc3QgSXRlbXMgUGF0Y2hcIikoKTtcclxuICAgIFV0aWxzLnN1cHByZXNzRXJyb3JzKHRoaXMucGF0Y2hHdWlsZFNlcGFyYXRvci5iaW5kKHRoaXMpLCBcIkJEIEd1aWxkIFNlcGFyYXRvciBQYXRjaFwiKSgpO1xyXG59O1xyXG5cclxuQ29yZS5wcm90b3R5cGUuY2hlY2tGb3JHdWlsZHMgPSBmdW5jdGlvbigpIHtcclxuICAgIGxldCB0aW1lc0NoZWNrZWQgPSAwO1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNoZWNrRm9yR3VpbGRzID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHdyYXBwZXIgPSBCRFYyLmd1aWxkQ2xhc3Nlcy53cmFwcGVyLnNwbGl0KFwiIFwiKVswXTtcclxuICAgICAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYC4ke3dyYXBwZXJ9YCkubGVuZ3RoID4gMCkgdGltZXNDaGVja2VkKys7XHJcbiAgICAgICAgICAgIGNvbnN0IGd1aWxkID0gQkRWMi5ndWlsZENsYXNzZXMubGlzdEl0ZW0uc3BsaXQoXCIgXCIpWzBdO1xyXG4gICAgICAgICAgICBjb25zdCBibG9iID0gQkRWMi5ndWlsZENsYXNzZXMuYmxvYkNvbnRhaW5lci5zcGxpdChcIiBcIilbMF07XHJcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGAuJHt3cmFwcGVyfSAuJHtndWlsZH0gLiR7YmxvYn1gKS5sZW5ndGggPiAwKSByZXR1cm4gcmVzb2x2ZShiZENvbmZpZy5kZWZlckxvYWRlZCA9IHRydWUpO1xyXG4gICAgICAgICAgICBlbHNlIGlmICh0aW1lc0NoZWNrZWQgPj0gNTApIHJldHVybiByZXNvbHZlKGJkQ29uZmlnLmRlZmVyTG9hZGVkID0gdHJ1ZSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoY2hlY2tGb3JHdWlsZHMsIDEwMCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoY2hlY2tGb3JHdWlsZHMsIDEwMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxufTtcclxuXHJcbkNvcmUucHJvdG90eXBlLmluamVjdEV4dGVybmFscyA9IGFzeW5jIGZ1bmN0aW9uKCkge1xyXG4gICAgYXdhaXQgVXRpbHMuaW5qZWN0SnMoXCJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9hY2UvMS4yLjkvYWNlLmpzXCIpO1xyXG4gICAgaWYgKHJlcXVpcmUub3JpZ2luYWwpIHdpbmRvdy5yZXF1aXJlID0gcmVxdWlyZS5vcmlnaW5hbDtcclxufTtcclxuXHJcbkNvcmUucHJvdG90eXBlLmluaXRTZXR0aW5ncyA9IGZ1bmN0aW9uICgpIHtcclxuICAgIERhdGFTdG9yZS5pbml0aWFsaXplKCk7XHJcbiAgICBpZiAoIURhdGFTdG9yZS5nZXRTZXR0aW5nR3JvdXAoXCJzZXR0aW5nc1wiKSkge1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24oc2V0dGluZ3NDb29raWUsIGRlZmF1bHRDb29raWUpO1xyXG4gICAgICAgIHNldHRpbmdzUGFuZWwuc2F2ZVNldHRpbmdzKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBzZXR0aW5nc1BhbmVsLmxvYWRTZXR0aW5ncygpO1xyXG4gICAgICAgICQoXCI8c3R5bGUgaWQ9XFxcImN1c3RvbWNzc1xcXCI+XCIpLnRleHQoYXRvYihEYXRhU3RvcmUuZ2V0QkREYXRhKFwiYmRjdXN0b21jc3NcIikpKS5hcHBlbmRUbyhkb2N1bWVudC5oZWFkKTtcclxuICAgICAgICBmb3IgKGNvbnN0IHNldHRpbmcgaW4gZGVmYXVsdENvb2tpZSkge1xyXG4gICAgICAgICAgICBpZiAoc2V0dGluZ3NDb29raWVbc2V0dGluZ10gPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICBzZXR0aW5nc0Nvb2tpZVtzZXR0aW5nXSA9IGRlZmF1bHRDb29raWVbc2V0dGluZ107XHJcbiAgICAgICAgICAgICAgICBzZXR0aW5nc1BhbmVsLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59O1xyXG5cclxuQ29yZS5wcm90b3R5cGUuaW5pdE9ic2VydmVyID0gZnVuY3Rpb24gKCkge1xyXG4gICAgY29uc3QgbWFpbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbWxlbiA9IG11dGF0aW9ucy5sZW5ndGg7IGkgPCBtbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgbXV0YXRpb24gPSBtdXRhdGlvbnNbaV07XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcGx1Z2luTW9kdWxlICE9PSBcInVuZGVmaW5lZFwiKSBwbHVnaW5Nb2R1bGUucmF3T2JzZXJ2ZXIobXV0YXRpb24pO1xyXG5cclxuICAgICAgICAgICAgLy8gaWYgdGhlcmUgd2FzIG5vdGhpbmcgYWRkZWQsIHNraXBcclxuICAgICAgICAgICAgaWYgKCFtdXRhdGlvbi5hZGRlZE5vZGVzLmxlbmd0aCB8fCAhKG11dGF0aW9uLmFkZGVkTm9kZXNbMF0gaW5zdGFuY2VvZiBFbGVtZW50KSkgY29udGludWU7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBub2RlID0gbXV0YXRpb24uYWRkZWROb2Rlc1swXTtcclxuXHJcbiAgICAgICAgICAgIGlmIChub2RlLmNsYXNzTGlzdC5jb250YWlucyhcImxheWVyLTNRclVlR1wiKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKG5vZGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcImd1aWxkLXNldHRpbmdzLWJhc2Utc2VjdGlvblwiKS5sZW5ndGgpIG5vZGUuc2V0QXR0cmlidXRlKFwibGF5ZXItaWRcIiwgXCJzZXJ2ZXItc2V0dGluZ3NcIik7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKG5vZGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcInNvY2lhbExpbmtzLTNqcU5GeVwiKS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShcImxheWVyLWlkXCIsIFwidXNlci1zZXR0aW5nc1wiKTtcclxuICAgICAgICAgICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShcImlkXCIsIFwidXNlci1zZXR0aW5nc1wiKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYmQtc2V0dGluZ3Mtc2lkZWJhclwiKSkgc2V0dGluZ3NQYW5lbC5yZW5kZXJTaWRlYmFyKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChub2RlLnBhcmVudEVsZW1lbnQgPT0gZG9jdW1lbnQuYm9keSAmJiBub2RlLnF1ZXJ5U2VsZWN0b3IoXCIjYWNlX3NldHRpbmdzbWVudVwiKSkgbm9kZS5pZCA9IFwiYWNlX3NldHRpbmdzbWVudV9jb250YWluZXJcIjtcclxuXHJcbiAgICAgICAgICAgIC8vIEVtb2ppIFBpY2tlclxyXG4gICAgICAgICAgICAvL25vZGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcImVtb2ppUGlja2VyLTNtMVMtalwiKS5sZW5ndGggJiYgIW5vZGUucXVlcnlTZWxlY3RvcihcIi5lbW9qaVBpY2tlci0zbTFTLWpcIikucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJhbmltYXRvckxlZnQtMUVReFUwXCIpXHJcbiAgICAgICAgICAgIGlmIChub2RlLmNsYXNzTGlzdC5jb250YWlucyhcImxheWVyLXY5SHlZY1wiKSAmJiBub2RlLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJlbW9qaVBpY2tlci0zbTFTLWpcIikubGVuZ3RoICAmJiAhbm9kZS5xdWVyeVNlbGVjdG9yKFwiLmVtb2ppUGlja2VyLTNtMVMtalwiKS5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcImFuaW1hdG9yTGVmdC0xRVF4VTBcIikpIHF1aWNrRW1vdGVNZW51Lm9ic0NhbGxiYWNrKG5vZGUpO1xyXG5cclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBtYWluT2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudCwge1xyXG4gICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcclxuICAgICAgICBzdWJ0cmVlOiB0cnVlXHJcbiAgICB9KTtcclxufTtcclxuXHJcbkNvcmUucHJvdG90eXBlLmluamVjdDI0SG91ciA9IGZ1bmN0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMuY2FuY2VsMjRIb3VyKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgdHdlbHZlSG91ciA9IG5ldyBSZWdFeHAoYChbMC05XXsxLDJ9KTooWzAtOV17MSwyfSlcXFxccyhBTXxQTSlgKTtcclxuICAgIGNvbnN0IGNvbnZlcnQgPSAoZGF0YSkgPT4ge1xyXG4gICAgICAgIGlmICghc2V0dGluZ3NDb29raWVbXCJiZGEtZ3MtNlwiXSkgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IG1hdGNoZWQgPSBkYXRhLnJldHVyblZhbHVlLm1hdGNoKHR3ZWx2ZUhvdXIpO1xyXG4gICAgICAgIGlmICghbWF0Y2hlZCB8fCBtYXRjaGVkLmxlbmd0aCAhPT0gNCkgcmV0dXJuO1xyXG4gICAgICAgIGlmIChtYXRjaGVkWzNdID09PSBcIkFNXCIpIHJldHVybiBkYXRhLnJldHVyblZhbHVlID0gZGF0YS5yZXR1cm5WYWx1ZS5yZXBsYWNlKG1hdGNoZWRbMF0sIGAke21hdGNoZWRbMV0gPT09IFwiMTJcIiA/IFwiMDBcIiA6IG1hdGNoZWRbMV0ucGFkU3RhcnQoMiwgXCIwXCIpfToke21hdGNoZWRbMl19YCk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGEucmV0dXJuVmFsdWUgPSBkYXRhLnJldHVyblZhbHVlLnJlcGxhY2UobWF0Y2hlZFswXSwgYCR7bWF0Y2hlZFsxXSA9PT0gXCIxMlwiID8gXCIxMlwiIDogcGFyc2VJbnQobWF0Y2hlZFsxXSkgKyAxMn06JHttYXRjaGVkWzJdfWApO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBjYW5jZWxDb3p5ID0gVXRpbHMubW9ua2V5UGF0Y2goQkRWMi5UaW1lRm9ybWF0dGVyLCBcImNhbGVuZGFyRm9ybWF0XCIsIHthZnRlcjogY29udmVydH0pOyAvLyBDYWxsZWQgaW4gQ296eSBtb2RlXHJcbiAgICBjb25zdCBjYW5jZWxDb21wYWN0ID0gVXRpbHMubW9ua2V5UGF0Y2goQkRWMi5UaW1lRm9ybWF0dGVyLCBcImRhdGVGb3JtYXRcIiwge2FmdGVyOiBjb252ZXJ0fSk7IC8vIENhbGxlZCBpbiBDb21wYWN0IG1vZGVcclxuICAgIHRoaXMuY2FuY2VsMjRIb3VyID0gKCkgPT4ge2NhbmNlbENvenkoKTsgY2FuY2VsQ29tcGFjdCgpO307IC8vIENhbmNlbCBib3RoXHJcbn07XHJcblxyXG5Db3JlLnByb3RvdHlwZS5zaG93Q2hhbmdlbG9nTW9kYWwgPSBmdW5jdGlvbihvcHRpb25zID0ge30pIHtcclxuICAgIGNvbnN0IE1vZGFsU3RhY2sgPSBXZWJwYWNrTW9kdWxlcy5maW5kQnlQcm9wcyhcInB1c2hcIiwgXCJ1cGRhdGVcIiwgXCJwb3BcIiwgXCJwb3BXaXRoS2V5XCIpO1xyXG4gICAgY29uc3QgQ2hhbmdlbG9nQ2xhc3NlcyA9IFdlYnBhY2tNb2R1bGVzLmZpbmRCeVByb3BzKFwiZml4ZWRcIiwgXCJpbXByb3ZlZFwiKTtcclxuICAgIGNvbnN0IFRleHRFbGVtZW50ID0gV2VicGFja01vZHVsZXMuZmluZEJ5UHJvcHMoXCJTaXplc1wiLCBcIldlaWdodHNcIik7XHJcbiAgICBjb25zdCBGbGV4Q2hpbGQgPSBXZWJwYWNrTW9kdWxlcy5maW5kQnlQcm9wcyhcIkNoaWxkXCIpO1xyXG4gICAgY29uc3QgVGl0bGVzID0gV2VicGFja01vZHVsZXMuZmluZEJ5UHJvcHMoXCJUYWdzXCIsIFwiZGVmYXVsdFwiKTtcclxuICAgIGNvbnN0IENoYW5nZWxvZyA9IFdlYnBhY2tNb2R1bGVzLmZpbmQobSA9PiBtLmRlZmF1bHRQcm9wcyAmJiBtLmRlZmF1bHRQcm9wcy5zZWxlY3RhYmxlID09IGZhbHNlKTtcclxuICAgIGNvbnN0IE1hcmtkb3duUGFyc2VyID0gV2VicGFja01vZHVsZXMuZmluZEJ5UHJvcHMoXCJkZWZhdWx0UnVsZXNcIiwgXCJwYXJzZVwiKTtcclxuICAgIGlmICghQ2hhbmdlbG9nIHx8ICFNb2RhbFN0YWNrIHx8ICFDaGFuZ2Vsb2dDbGFzc2VzIHx8ICFUZXh0RWxlbWVudCB8fCAhRmxleENoaWxkIHx8ICFUaXRsZXMgfHwgIU1hcmtkb3duUGFyc2VyKSByZXR1cm47XHJcblxyXG4gICAgY29uc3Qge2ltYWdlID0gXCJodHRwczovL3JlcG9zaXRvcnktaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS8xMDU0NzM1MzcvOTU3YjU0ODAtN2MyNi0xMWU5LTg0MDEtNTBmYTgyMGNiYWU1XCIsIGRlc2NyaXB0aW9uID0gXCJcIiwgY2hhbmdlcyA9IFtdLCB0aXRsZSA9IFwiQmFuZGFnZWRCRFwiLCBzdWJ0aXRsZSA9IGB2JHtiYmRWZXJzaW9ufWAsIGZvb3Rlcn0gPSBvcHRpb25zO1xyXG4gICAgY29uc3QgY2UgPSBCRFYyLlJlYWN0LmNyZWF0ZUVsZW1lbnQ7XHJcbiAgICBjb25zdCBjaGFuZ2Vsb2dJdGVtcyA9IFtjZShcImltZ1wiLCB7c3JjOiBpbWFnZX0pXTtcclxuICAgIGlmIChkZXNjcmlwdGlvbikgY2hhbmdlbG9nSXRlbXMucHVzaChjZShcInBcIiwgbnVsbCwgTWFya2Rvd25QYXJzZXIucGFyc2UoZGVzY3JpcHRpb24pKSk7XHJcbiAgICBmb3IgKGxldCBjID0gMDsgYyA8IGNoYW5nZXMubGVuZ3RoOyBjKyspIHtcclxuICAgICAgICBjb25zdCBlbnRyeSA9IGNoYW5nZXNbY107XHJcbiAgICAgICAgY29uc3QgdHlwZSA9IENoYW5nZWxvZ0NsYXNzZXNbZW50cnkudHlwZV0gPyBDaGFuZ2Vsb2dDbGFzc2VzW2VudHJ5LnR5cGVdIDogQ2hhbmdlbG9nQ2xhc3Nlcy5hZGRlZDtcclxuICAgICAgICBjb25zdCBtYXJnaW4gPSBjID09IDAgPyBDaGFuZ2Vsb2dDbGFzc2VzLm1hcmdpblRvcCA6IFwiXCI7XHJcbiAgICAgICAgY2hhbmdlbG9nSXRlbXMucHVzaChjZShcImgxXCIsIHtjbGFzc05hbWU6IGAke3R5cGV9ICR7bWFyZ2lufWAsfSwgZW50cnkudGl0bGUpKTtcclxuICAgICAgICBjb25zdCBsaXN0ID0gY2UoXCJ1bFwiLCBudWxsLCBlbnRyeS5pdGVtcy5tYXAoaSA9PiBjZShcImxpXCIsIG51bGwsIE1hcmtkb3duUGFyc2VyLnBhcnNlKGkpKSkpO1xyXG4gICAgICAgIGNoYW5nZWxvZ0l0ZW1zLnB1c2gobGlzdCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCByZW5kZXJIZWFkZXIgPSBmdW5jdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gY2UoRmxleENoaWxkLkNoaWxkLCB7Z3JvdzogMSwgc2hyaW5rOiAxfSxcclxuICAgICAgICAgICAgY2UoVGl0bGVzLmRlZmF1bHQsIHt0YWc6IFRpdGxlcy5UYWdzLkg0fSwgdGl0bGUpLFxyXG4gICAgICAgICAgICBjZShUZXh0RWxlbWVudCx7c2l6ZTogVGV4dEVsZW1lbnQuU2l6ZXMuU01BTEwsIGNvbG9yOiBUZXh0RWxlbWVudC5Db2xvcnMuUFJJTUFSWSwgY2xhc3NOYW1lOiBDaGFuZ2Vsb2dDbGFzc2VzLmRhdGV9LCBzdWJ0aXRsZSlcclxuICAgICAgICApO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCByZW5kZXJGb290ZXIgPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgQW5jaG9yID0gV2VicGFja01vZHVsZXMuZmluZChtID0+IG0uZGlzcGxheU5hbWUgPT0gXCJBbmNob3JcIik7XHJcbiAgICAgICAgY29uc3QgQW5jaG9yQ2xhc3NlcyA9IFdlYnBhY2tNb2R1bGVzLmZpbmRCeVByb3BzKFwiYW5jaG9yVW5kZXJsaW5lT25Ib3ZlclwiKSB8fCB7YW5jaG9yOiBcImFuY2hvci0zWi04QmJcIiwgYW5jaG9yVW5kZXJsaW5lT25Ib3ZlcjogXCJhbmNob3JVbmRlcmxpbmVPbkhvdmVyLTJFU0hRQlwifTtcclxuICAgICAgICBjb25zdCBqb2luU3VwcG9ydFNlcnZlciA9IChjbGljaykgPT4ge1xyXG4gICAgICAgICAgICBjbGljay5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBjbGljay5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgTW9kYWxTdGFjay5wb3AoKTtcclxuICAgICAgICAgICAgQkRWMi5qb2luQkQyKCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBzdXBwb3J0TGluayA9IEFuY2hvciA/IGNlKEFuY2hvciwge29uQ2xpY2s6IGpvaW5TdXBwb3J0U2VydmVyfSwgXCJKb2luIG91ciBEaXNjb3JkIFNlcnZlci5cIikgOiBjZShcImFcIiwge2NsYXNzTmFtZTogYCR7QW5jaG9yQ2xhc3Nlcy5hbmNob3J9ICR7QW5jaG9yQ2xhc3Nlcy5hbmNob3JVbmRlcmxpbmVPbkhvdmVyfWAsIG9uQ2xpY2s6IGpvaW5TdXBwb3J0U2VydmVyfSwgXCJKb2luIG91ciBEaXNjb3JkIFNlcnZlci5cIik7XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdEZvb3RlciA9IGNlKFRleHRFbGVtZW50LHtzaXplOiBUZXh0RWxlbWVudC5TaXplcy5TTUFMTCwgY29sb3I6IFRleHRFbGVtZW50LkNvbG9ycy5QUklNQVJZfSwgXCJOZWVkIHN1cHBvcnQ/IFwiLCBzdXBwb3J0TGluayk7XHJcbiAgICAgICAgcmV0dXJuIGNlKEZsZXhDaGlsZC5DaGlsZCwge2dyb3c6IDEsIHNocmluazogMX0sIGZvb3RlciA/IGZvb3RlciA6IGRlZmF1bHRGb290ZXIpO1xyXG4gICAgfTtcclxuXHJcbiAgICBNb2RhbFN0YWNrLnB1c2goZnVuY3Rpb24ocHJvcHMpIHtcclxuICAgICAgICByZXR1cm4gY2UoQ2hhbmdlbG9nLCBPYmplY3QuYXNzaWduKHtcclxuICAgICAgICAgICAgY2xhc3NOYW1lOiBDaGFuZ2Vsb2dDbGFzc2VzLmNvbnRhaW5lcixcclxuICAgICAgICAgICAgc2VsZWN0YWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgb25TY3JvbGw6IF8gPT4gXyxcclxuICAgICAgICAgICAgb25DbG9zZTogXyA9PiBfLFxyXG4gICAgICAgICAgICByZW5kZXJIZWFkZXI6IHJlbmRlckhlYWRlcixcclxuICAgICAgICAgICAgcmVuZGVyRm9vdGVyOiByZW5kZXJGb290ZXIsXHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiBjaGFuZ2Vsb2dJdGVtc1xyXG4gICAgICAgIH0sIHByb3BzKSk7XHJcbiAgICB9KTtcclxufTtcclxuXHJcbkNvcmUucHJvdG90eXBlLnBhdGNoU29jaWFsID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAodGhpcy5zb2NpYWxQYXRjaCkgcmV0dXJuO1xyXG4gICAgY29uc3QgVGFiQmFyID0gV2VicGFja01vZHVsZXMuZmluZChtID0+IG0uZGlzcGxheU5hbWUgPT0gXCJUYWJCYXJcIik7XHJcbiAgICBjb25zdCBBbmNob3IgPSBXZWJwYWNrTW9kdWxlcy5maW5kKG0gPT4gbS5kaXNwbGF5TmFtZSA9PSBcIkFuY2hvclwiKTtcclxuICAgIGlmICghVGFiQmFyIHx8ICFBbmNob3IpIHJldHVybjtcclxuICAgIHRoaXMuc29jaWFsUGF0Y2ggPSBVdGlscy5tb25rZXlQYXRjaChUYWJCYXIucHJvdG90eXBlLCBcInJlbmRlclwiLCB7YWZ0ZXI6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBkYXRhLnJldHVyblZhbHVlLnByb3BzLmNoaWxkcmVuO1xyXG4gICAgICAgIGlmICghY2hpbGRyZW4gfHwgIWNoaWxkcmVuLmxlbmd0aCB8fCBjaGlsZHJlbi5sZW5ndGggPCAzKSByZXR1cm47XHJcbiAgICAgICAgaWYgKGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDNdLnR5cGUuZGlzcGxheU5hbWUgIT09IFwiU2VwYXJhdG9yXCIpIHJldHVybjtcclxuICAgICAgICBpZiAoIWNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDJdLnR5cGUudG9TdHJpbmcoKS5pbmNsdWRlcyhcInNvY2lhbExpbmtzXCIpKSByZXR1cm47XHJcbiAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSBjaGlsZHJlbltjaGlsZHJlbi5sZW5ndGggLSAyXS50eXBlO1xyXG4gICAgICAgIGNvbnN0IG5ld09uZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBjb25zdCByZXR1cm5WYWwgPSBvcmlnaW5hbCguLi5hcmd1bWVudHMpO1xyXG4gICAgICAgICAgICByZXR1cm5WYWwucHJvcHMuY2hpbGRyZW4ucHVzaChCRFYyLlJlYWN0LmNyZWF0ZUVsZW1lbnQoQW5jaG9yLCB7Y2xhc3NOYW1lOiBcImJkLXNvY2lhbC1saW5rXCIsIGhyZWY6IFwiaHR0cHM6Ly9naXRodWIuY29tL3JhdWVuemkvQmV0dGVyRGlzY29yZEFwcFwiLCB0aXRsZTogXCJCYW5kYWdlZEJEXCIsIHRhcmdldDogXCJfYmxhbmtcIn0sXHJcbiAgICAgICAgICAgICAgICBCRFYyLlJlYWN0LmNyZWF0ZUVsZW1lbnQoQkRMb2dvLCB7c2l6ZTogXCIxNnB4XCIsIGNsYXNzTmFtZTogXCJiZC1zb2NpYWwtbG9nb1wifSlcclxuICAgICAgICAgICAgKSk7XHJcbiAgICAgICAgICAgIHJldHVybiByZXR1cm5WYWw7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBjaGlsZHJlbltjaGlsZHJlbi5sZW5ndGggLSAyXS50eXBlID0gbmV3T25lO1xyXG5cclxuICAgICAgICBjb25zdCBCQkRMaW5rID0gQkRWMi5SZWFjdC5jcmVhdGVFbGVtZW50KEFuY2hvciwge2NsYXNzTmFtZTogXCJiZC1zb2NpYWwtbGlua1wiLCBocmVmOiBcImh0dHBzOi8vdHdpdHRlci5jb20vQmFuZGFnZWRCRFwiLCB0aXRsZTogXCJCYW5kYWdlZEJEXCIsIHRhcmdldDogXCJfYmxhbmtcIn0sIFwiQmFuZGFnZWRCRFwiKTtcclxuICAgICAgICBjb25zdCBBdXRob3JMaW5rID0gQkRWMi5SZWFjdC5jcmVhdGVFbGVtZW50KEFuY2hvciwge2NsYXNzTmFtZTogXCJiZC1zb2NpYWwtbGlua1wiLCBocmVmOiBcImh0dHBzOi8vdHdpdHRlci5jb20vWmFja1JhdWVuXCIsIHRpdGxlOiBcIlplcmVib3NcIiwgdGFyZ2V0OiBcIl9ibGFua1wifSwgXCJaZXJlYm9zXCIpO1xyXG4gICAgICAgIGNvbnN0IGFkZGl0aW9uYWwgPSBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJjb2xvck11dGVkLUhkRnQ0cSBzaXplMTItM2NMdmJKXCJ9LCBbQkJETGluaywgYCAke2JiZFZlcnNpb259IGJ5IGAsIEF1dGhvckxpbmtdKTtcclxuXHJcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxWZXJzaW9ucyA9IGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDFdLnR5cGU7XHJcbiAgICAgICAgY2hpbGRyZW5bY2hpbGRyZW4ubGVuZ3RoIC0gMV0udHlwZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBjb25zdCByZXR1cm5WYWwgPSBvcmlnaW5hbFZlcnNpb25zKC4uLmFyZ3VtZW50cyk7XHJcbiAgICAgICAgICAgIHJldHVyblZhbC5wcm9wcy5jaGlsZHJlbi5wdXNoKGFkZGl0aW9uYWwpO1xyXG4gICAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsO1xyXG4gICAgICAgIH07XHJcbiAgICB9fSk7XHJcbn07XHJcblxyXG5jb25zdCBnZXRHdWlsZENsYXNzZXMgPSBmdW5jdGlvbigpIHtcclxuICAgIGNvbnN0IGd1aWxkc1dyYXBwZXIgPSBXZWJwYWNrTW9kdWxlcy5maW5kQnlQcm9wcyhcIndyYXBwZXJcIiwgXCJ1bnJlYWRNZW50aW9uc0JhclwiKTtcclxuICAgIGNvbnN0IGd1aWxkcyA9IFdlYnBhY2tNb2R1bGVzLmZpbmRCeVByb3BzKFwiZ3VpbGRzRXJyb3JcIiwgXCJzZWxlY3RlZFwiKTtcclxuICAgIGNvbnN0IHBpbGwgPSBXZWJwYWNrTW9kdWxlcy5maW5kQnlQcm9wcyhcImJsb2JDb250YWluZXJcIik7XHJcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgZ3VpbGRzV3JhcHBlciwgZ3VpbGRzLCBwaWxsKTtcclxufTtcclxuXHJcbkNvcmUucHJvdG90eXBlLnBhdGNoR3VpbGRMaXN0SXRlbXMgPSBmdW5jdGlvbigpIHtcclxuICAgIGlmICh0aGlzLmd1aWxkTGlzdEl0ZW1zUGF0Y2gpIHJldHVybjtcclxuICAgIGNvbnN0IEd1aWxkQ2xhc3NlcyA9IGdldEd1aWxkQ2xhc3NlcygpO1xyXG4gICAgY29uc3QgbGlzdEl0ZW1DbGFzcyA9IEd1aWxkQ2xhc3Nlcy5saXN0SXRlbS5zcGxpdChcIiBcIilbMF07XHJcbiAgICBjb25zdCBibG9iQ2xhc3MgPSBHdWlsZENsYXNzZXMuYmxvYkNvbnRhaW5lci5zcGxpdChcIiBcIilbMF07XHJcbiAgICBjb25zdCByZWFjdEluc3RhbmNlID0gQkRWMi5nZXRJbnRlcm5hbEluc3RhbmNlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC4ke2xpc3RJdGVtQ2xhc3N9IC4ke2Jsb2JDbGFzc31gKS5wYXJlbnRFbGVtZW50KTtcclxuICAgIGNvbnN0IEd1aWxkQ29tcG9uZW50ID0gcmVhY3RJbnN0YW5jZS5yZXR1cm4udHlwZTtcclxuICAgIGlmICghR3VpbGRDb21wb25lbnQpIHJldHVybjtcclxuICAgIHRoaXMuZ3VpbGRMaXN0SXRlbXNQYXRjaCA9IFV0aWxzLm1vbmtleVBhdGNoKEd1aWxkQ29tcG9uZW50LnByb3RvdHlwZSwgXCJyZW5kZXJcIiwge2FmdGVyOiAoZGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhLnJldHVyblZhbHVlICYmIGRhdGEudGhpc09iamVjdCkge1xyXG4gICAgICAgICAgICBjb25zdCByZXR1cm5WYWx1ZSA9IGRhdGEucmV0dXJuVmFsdWU7XHJcbiAgICAgICAgICAgIGNvbnN0IGd1aWxkRGF0YSA9IGRhdGEudGhpc09iamVjdC5wcm9wcztcclxuICAgICAgICAgICAgcmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLWd1aWxkXCI7XHJcbiAgICAgICAgICAgIGlmIChndWlsZERhdGEudW5yZWFkKSByZXR1cm5WYWx1ZS5wcm9wcy5jbGFzc05hbWUgKz0gXCIgYmQtdW5yZWFkXCI7XHJcbiAgICAgICAgICAgIGlmIChndWlsZERhdGEuc2VsZWN0ZWQpIHJldHVyblZhbHVlLnByb3BzLmNsYXNzTmFtZSArPSBcIiBiZC1zZWxlY3RlZFwiO1xyXG4gICAgICAgICAgICBpZiAoZ3VpbGREYXRhLmF1ZGlvKSByZXR1cm5WYWx1ZS5wcm9wcy5jbGFzc05hbWUgKz0gXCIgYmQtYXVkaW9cIjtcclxuICAgICAgICAgICAgaWYgKGd1aWxkRGF0YS52aWRlbykgcmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLXZpZGVvXCI7XHJcbiAgICAgICAgICAgIGlmIChndWlsZERhdGEuYmFkZ2UpIHJldHVyblZhbHVlLnByb3BzLmNsYXNzTmFtZSArPSBcIiBiZC1iYWRnZVwiO1xyXG4gICAgICAgICAgICBpZiAoZ3VpbGREYXRhLmFuaW1hdGFibGUpIHJldHVyblZhbHVlLnByb3BzLmNsYXNzTmFtZSArPSBcIiBiZC1hbmltYXRhYmxlXCI7XHJcbiAgICAgICAgICAgIHJldHVybiByZXR1cm5WYWx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9fSk7XHJcbn07XHJcblxyXG5Db3JlLnByb3RvdHlwZS5wYXRjaEd1aWxkUGlsbHMgPSBmdW5jdGlvbigpIHtcclxuICAgIGlmICh0aGlzLmd1aWxkUGlsbFBhdGNoKSByZXR1cm47XHJcbiAgICBjb25zdCBndWlsZFBpbGwgPSBXZWJwYWNrTW9kdWxlcy5maW5kKG0gPT4gbS5kZWZhdWx0ICYmICFtLmRlZmF1bHQuZGlzcGxheU5hbWUgJiYgbS5kZWZhdWx0LnRvU3RyaW5nICYmIG0uZGVmYXVsdC50b1N0cmluZygpLmluY2x1ZGVzKFwidHJhbnNsYXRlM2RcIikpO1xyXG4gICAgaWYgKCFndWlsZFBpbGwpIHJldHVybjtcclxuICAgIHRoaXMuZ3VpbGRQaWxsUGF0Y2ggPSBVdGlscy5tb25rZXlQYXRjaChndWlsZFBpbGwsIFwiZGVmYXVsdFwiLCB7YWZ0ZXI6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcHJvcHMgPSBkYXRhLm1ldGhvZEFyZ3VtZW50c1swXTtcclxuICAgICAgICBpZiAocHJvcHMudW5yZWFkKSBkYXRhLnJldHVyblZhbHVlLnByb3BzLmNsYXNzTmFtZSArPSBcIiBiZC11bnJlYWRcIjtcclxuICAgICAgICBpZiAocHJvcHMuc2VsZWN0ZWQpIGRhdGEucmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLXNlbGVjdGVkXCI7XHJcbiAgICAgICAgaWYgKHByb3BzLmhvdmVyZWQpIGRhdGEucmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLWhvdmVyZWRcIjtcclxuICAgICAgICByZXR1cm4gZGF0YS5yZXR1cm5WYWx1ZTtcclxuICAgIH19KTtcclxufTtcclxuXHJcbkNvcmUucHJvdG90eXBlLnBhdGNoR3VpbGRTZXBhcmF0b3IgPSBmdW5jdGlvbigpIHtcclxuICAgIGlmICh0aGlzLmd1aWxkU2VwYXJhdG9yUGF0Y2gpIHJldHVybjtcclxuICAgIGNvbnN0IEd1aWxkcyA9IFdlYnBhY2tNb2R1bGVzLmZpbmRCeURpc3BsYXlOYW1lKFwiR3VpbGRzXCIpO1xyXG4gICAgY29uc3QgZ3VpbGRDb21wb25lbnRzID0gV2VicGFja01vZHVsZXMuZmluZEJ5UHJvcHMoXCJyZW5kZXJMaXN0SXRlbVwiKTtcclxuICAgIGlmICghZ3VpbGRDb21wb25lbnRzIHx8ICFHdWlsZHMpIHJldHVybjtcclxuICAgIGNvbnN0IEd1aWxkU2VwYXJhdG9yID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgY29uc3QgcmV0dXJuVmFsdWUgPSBndWlsZENvbXBvbmVudHMuU2VwYXJhdG9yKC4uLmFyZ3VtZW50cyk7XHJcbiAgICAgICAgcmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLWd1aWxkLXNlcGFyYXRvclwiO1xyXG4gICAgICAgIHJldHVybiByZXR1cm5WYWx1ZTtcclxuICAgIH07XHJcbiAgICB0aGlzLmd1aWxkU2VwYXJhdG9yUGF0Y2ggPSBVdGlscy5tb25rZXlQYXRjaChHdWlsZHMucHJvdG90eXBlLCBcInJlbmRlclwiLCB7YWZ0ZXI6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgZGF0YS5yZXR1cm5WYWx1ZS5wcm9wcy5jaGlsZHJlblsxXS5wcm9wcy5jaGlsZHJlblszXS50eXBlID0gR3VpbGRTZXBhcmF0b3I7XHJcbiAgICB9fSk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBDb3JlOyJdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGFTdG9yZS5qcz9kZTliIl0sIm5hbWVzIjpbImZzIiwicmVxdWlyZSIsInBhdGgiLCJyZWxlYXNlQ2hhbm5lbCIsIkRpc2NvcmROYXRpdmUiLCJnbG9iYWxzIiwiRGF0YVN0b3JlIiwiY29uc3RydWN0b3IiLCJkYXRhIiwic2V0dGluZ3MiLCJzdGFibGUiLCJjYW5hcnkiLCJwdGIiLCJwbHVnaW5EYXRhIiwiaW5pdGlhbGl6ZSIsImV4aXN0c1N5bmMiLCJCREZpbGUiLCJ3cml0ZUZpbGVTeW5jIiwiSlNPTiIsInN0cmluZ2lmeSIsIl9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fIiwiaGFzT3duUHJvcGVydHkiLCJzZXR0aW5nc0ZpbGUiLCJ1bmxpbmtTeW5jIiwiT2JqZWN0IiwiYXNzaWduIiwic2V0QkREYXRhIiwiZXJyIiwiY29uc29sZSIsImVycm9yIiwiVXRpbHMiLCJhbGVydCIsIl9CREZpbGUiLCJyZXNvbHZlIiwiYmRDb25maWciLCJkYXRhUGF0aCIsIl9zZXR0aW5nc0ZpbGUiLCJnZXRQbHVnaW5GaWxlIiwicGx1Z2luTmFtZSIsIkNvbnRlbnRNYW5hZ2VyIiwicGx1Z2luc0ZvbGRlciIsImdldFNldHRpbmdHcm91cCIsImtleSIsInNldFNldHRpbmdHcm91cCIsImdldEJERGF0YSIsInZhbHVlIiwiZ2V0UGx1Z2luRGF0YSIsInVuZGVmaW5lZCIsInBhcnNlIiwicmVhZEZpbGVTeW5jIiwic2V0UGx1Z2luRGF0YSIsImRlbGV0ZVBsdWdpbkRhdGEiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBOztBQUVBLE1BQU1BLEVBQUUsR0FBR0MsbUJBQU8sQ0FBQyxjQUFELENBQWxCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsbUJBQU8sQ0FBQyxrQkFBRCxDQUFwQjs7QUFDQSxNQUFNRSxjQUFjLEdBQUdDLGFBQWEsQ0FBQ0MsT0FBZCxDQUFzQkYsY0FBN0M7QUFFZSxtRUFB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LEtBQUtsQyxVQUFMLENBQWdCeUIsVUFBaEIsTUFBZ0NTLFNBQXBDLEVBQStDLEtBQUtsQyxVQUFMLENBQWdCeUIsVUFBaEIsSUFBOEIsRUFBOUI7QUFDL0MsU0FBS3pCLFVBQUwsQ0FBZ0J5QixVQUFoQixFQUE0QkksR0FBNUIsSUFBbUNHLEtBQW5DO0FBQ0E3QyxNQUFFLENBQUNpQixhQUFILENBQWlCLEtBQUtvQixhQUFMLENBQW1CQyxVQUFuQixDQUFqQixFQUFpRHBCLElBQUksQ0FBQ0MsU0FBTCxDQUFlLEtBQUtOLFVBQUwsQ0FBZ0J5QixVQUFoQixDQUFmLEVBQTRDLElBQTVDLEVBQWtELENBQWxELENBQWpEO0FBQ0g7O0FBRURhLGtCQUFnQixDQUFDYixVQUFELEVBQWFJLEdBQWIsRUFBa0I7QUFDOUIsUUFBSSxLQUFLN0IsVUFBTCxDQUFnQnlCLFVBQWhCLE1BQWdDUyxTQUFwQyxFQUErQyxLQUFLbEMsVUFBTCxDQUFnQnlCLFVBQWhCLElBQThCLEVBQTlCO0FBQy9DLFdBQU8sS0FBS3pCLFVBQUwsQ0FBZ0J5QixVQUFoQixFQUE0QkksR0FBNUIsQ0FBUDtBQUNBMUMsTUFBRSxDQUFDaUIsYUFBSCxDQUFpQixLQUFLb0IsYUFBTCxDQUFtQkMsVUFBbkIsQ0FBakIsRUFBaURwQixJQUFJLENBQUNDLFNBQUwsQ0FBZSxLQUFLTixVQUFMLENBQWdCeUIsVUFBaEIsQ0FBZixFQUE0QyxJQUE1QyxFQUFrRCxDQUFsRCxDQUFqRDtBQUNIOztBQWhFOEIsQ0FBcEIsRUFBZiIsImZpbGUiOiIuL3NyYy9kYXRhU3RvcmUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2JkQ29uZmlnfSBmcm9tIFwiLi8wZ2xvYmFsc1wiO1xyXG5pbXBvcnQgVXRpbHMgZnJvbSBcIi4vdXRpbHNcIjtcclxuaW1wb3J0IENvbnRlbnRNYW5hZ2VyIGZyb20gXCIuL2NvbnRlbnRNYW5hZ2VyXCI7XHJcblxyXG5jb25zdCBmcyA9IHJlcXVpcmUoXCJmc1wiKTtcclxuY29uc3QgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xyXG5jb25zdCByZWxlYXNlQ2hhbm5lbCA9IERpc2NvcmROYXRpdmUuZ2xvYmFscy5yZWxlYXNlQ2hhbm5lbDtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBEYXRhU3RvcmUge1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhID0ge3NldHRpbmdzOiB7c3RhYmxlOiB7fSwgY2FuYXJ5OiB7fSwgcHRiOiB7fX19O1xyXG4gICAgICAgIHRoaXMucGx1Z2luRGF0YSA9IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRpYWxpemUoKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHRoaXMuQkRGaWxlKSkgZnMud3JpdGVGaWxlU3luYyh0aGlzLkJERmlsZSwgSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhLCBudWxsLCA0KSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBfX25vbl93ZWJwYWNrX3JlcXVpcmVfXyh0aGlzLkJERmlsZSk7XHJcbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KFwic2V0dGluZ3NcIikpIHRoaXMuZGF0YSA9IGRhdGE7XHJcbiAgICAgICAgICAgIGlmICghZnMuZXhpc3RzU3luYyh0aGlzLnNldHRpbmdzRmlsZSkpIHJldHVybjtcclxuICAgICAgICAgICAgbGV0IHNldHRpbmdzID0gX19ub25fd2VicGFja19yZXF1aXJlX18odGhpcy5zZXR0aW5nc0ZpbGUpO1xyXG4gICAgICAgICAgICBmcy51bmxpbmtTeW5jKHRoaXMuc2V0dGluZ3NGaWxlKTtcclxuICAgICAgICAgICAgaWYgKHNldHRpbmdzLmhhc093blByb3BlcnR5KFwic2V0dGluZ3NcIikpIHNldHRpbmdzID0gT2JqZWN0LmFzc2lnbih7c3RhYmxlOiB7fSwgY2FuYXJ5OiB7fSwgcHRiOiB7fX0sIHtbcmVsZWFzZUNoYW5uZWxdOiBzZXR0aW5nc30pO1xyXG4gICAgICAgICAgICBlbHNlIHNldHRpbmdzID0gT2JqZWN0LmFzc2lnbih7c3RhYmxlOiB7fSwgY2FuYXJ5OiB7fSwgcHRiOiB7fX0sIHNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRCRERhdGEoXCJzZXR0aW5nc1wiLCBzZXR0aW5ncyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xyXG4gICAgICAgICAgICBVdGlscy5hbGVydChcIkNvcnJ1cHQgU3RvcmFnZVwiLCBcIlRoZSBiZCBzdG9yYWdlIGhhcyBzb21laG93IGJlY29tZSBjb3JydXB0LiBZb3UgbWF5IGVpdGhlciB0cnkgdG8gc2FsdmFnZSB0aGUgZmlsZSBvciBkZWxldGUgaXQgdGhlbiByZWxvYWQuXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXQgQkRGaWxlKCkge3JldHVybiB0aGlzLl9CREZpbGUgfHwgKHRoaXMuX0JERmlsZSA9IHBhdGgucmVzb2x2ZShiZENvbmZpZy5kYXRhUGF0aCwgXCJiZHN0b3JhZ2UuanNvblwiKSk7fVxyXG4gICAgZ2V0IHNldHRpbmdzRmlsZSgpIHtyZXR1cm4gdGhpcy5fc2V0dGluZ3NGaWxlIHx8ICh0aGlzLl9zZXR0aW5nc0ZpbGUgPSBwYXRoLnJlc29sdmUoYmRDb25maWcuZGF0YVBhdGgsIFwiYmRzZXR0aW5ncy5qc29uXCIpKTt9XHJcbiAgICBnZXRQbHVnaW5GaWxlKHBsdWdpbk5hbWUpIHtyZXR1cm4gcGF0aC5yZXNvbHZlKENvbnRlbnRNYW5hZ2VyLnBsdWdpbnNGb2xkZXIsIHBsdWdpbk5hbWUgKyBcIi5jb25maWcuanNvblwiKTt9XHJcblxyXG4gICAgZ2V0U2V0dGluZ0dyb3VwKGtleSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEuc2V0dGluZ3NbcmVsZWFzZUNoYW5uZWxdW2tleV0gfHwgbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBzZXRTZXR0aW5nR3JvdXAoa2V5LCBkYXRhKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhLnNldHRpbmdzW3JlbGVhc2VDaGFubmVsXVtrZXldID0gZGF0YTtcclxuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMuQkRGaWxlLCBKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGEsIG51bGwsIDQpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRCRERhdGEoa2V5KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVtrZXldIHx8IFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0QkREYXRhKGtleSwgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLmRhdGFba2V5XSA9IHZhbHVlO1xyXG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmModGhpcy5CREZpbGUsIEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YSwgbnVsbCwgNCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFBsdWdpbkRhdGEocGx1Z2luTmFtZSwga2V5KSB7XHJcbiAgICAgICAgaWYgKHRoaXMucGx1Z2luRGF0YVtwbHVnaW5OYW1lXSAhPT0gdW5kZWZpbmVkKSByZXR1cm4gdGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdW2tleV0gfHwgdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmICghZnMuZXhpc3RzU3luYyh0aGlzLmdldFBsdWdpbkZpbGUocGx1Z2luTmFtZSkpKSByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMucGx1Z2luRGF0YVtwbHVnaW5OYW1lXSA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHRoaXMuZ2V0UGx1Z2luRmlsZShwbHVnaW5OYW1lKSkpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBsdWdpbkRhdGFbcGx1Z2luTmFtZV1ba2V5XSB8fCB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0UGx1Z2luRGF0YShwbHVnaW5OYW1lLCBrZXksIHZhbHVlKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybjtcclxuICAgICAgICBpZiAodGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdID09PSB1bmRlZmluZWQpIHRoaXMucGx1Z2luRGF0YVtwbHVnaW5OYW1lXSA9IHt9O1xyXG4gICAgICAgIHRoaXMucGx1Z2luRGF0YVtwbHVnaW5OYW1lXVtrZXldID0gdmFsdWU7XHJcbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyh0aGlzLmdldFBsdWdpbkZpbGUocGx1Z2luTmFtZSksIEpTT04uc3RyaW5naWZ5KHRoaXMucGx1Z2luRGF0YVtwbHVnaW5OYW1lXSwgbnVsbCwgNCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZVBsdWdpbkRhdGEocGx1Z2luTmFtZSwga2V5KSB7XHJcbiAgICAgICAgaWYgKHRoaXMucGx1Z2luRGF0YVtwbHVnaW5OYW1lXSA9PT0gdW5kZWZpbmVkKSB0aGlzLnBsdWdpbkRhdGFbcGx1Z2luTmFtZV0gPSB7fTtcclxuICAgICAgICBkZWxldGUgdGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdW2tleV07XHJcbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyh0aGlzLmdldFBsdWdpbkZpbGUocGx1Z2luTmFtZSksIEpTT04uc3RyaW5naWZ5KHRoaXMucGx1Z2luRGF0YVtwbHVnaW5OYW1lXSwgbnVsbCwgNCkpO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2Rldk1vZGUuanM/YWM1NSJdLCJuYW1lcyI6WyJkZXZNb2RlIiwicHJvdG90eXBlIiwiZW5hYmxlIiwic2VsZWN0b3JNb2RlIiwic2VsZiIsImRpc2FibGUiLCIkIiwiZG9jdW1lbnQiLCJvbiIsImUiLCJ3aGljaCIsImNvbnNvbGUiLCJsb2ciLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiIsImxhc3RTZWxlY3RvciIsImdldFNlbGVjdG9yIiwidG9FbGVtZW50IiwiYXR0YWNoIiwiY20iLCJsZW5ndGgiLCJhZGRDbGFzcyIsImhhc0NsYXNzIiwiYXBwZW5kVG8iLCJjc3MiLCJjbGllbnRZIiwiY2xpZW50WCIsInJlbW92ZSIsIm9mZiIsImtleUNvZGUiLCJjbW8iLCJjbWkiLCJCRFYyIiwiTmF0aXZlTW9kdWxlIiwiY29weSIsImhpZGUiLCJhcHBlbmQiLCJ0ZXh0Iiwib3V0ZXJIZWlnaHQiLCJzZXRJbW1lZGlhdGUiLCJzdG9wUHJvcGFnYXRpb24iLCJnZXRSdWxlcyIsImVsZW1lbnQiLCJvd25lckRvY3VtZW50Iiwic3R5bGVTaGVldHMiLCJzaGVldHMiLCJmaWx0ZXIiLCJzIiwiaHJlZiIsImluY2x1ZGVzIiwicnVsZXMiLCJtYXAiLCJjc3NSdWxlcyIsImZsYXQiLCJlbGVtZW50UnVsZXMiLCJyIiwic2VsZWN0b3JUZXh0IiwibWF0Y2hlcyIsInN0eWxlIiwic3BsaXQiLCJpZCIsImxhdGVzdFJ1bGUiLCJjbGFzc0xpc3QiLCJBcnJheSIsImZyb20iLCJqb2luIiwicGFyZW50RWxlbWVudCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBOztBQUVBLFNBQVNBLE9BQVQsR0FBbUIsQ0FBRTs7QUFFckJBLE9BQU8sQ0FBQ0MsU0FBUixDQUFrQkMsTUFBbEIsR0FBMkIsVUFBU0MsWUFBVCxFQUF1QjtBQUM5QyxRQUFNQyxJQUFJLEdBQUcsSUFBYjtBQUNDLE9BQUtDLE9BQUw7QUFD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SyxZQUFQO0FBQ0gsQ0FORDs7QUFRQXRELE9BQU8sQ0FBQ0MsU0FBUixDQUFrQmUsV0FBbEIsR0FBZ0MsVUFBUzBCLE9BQVQsRUFBa0I7QUFDOUMsTUFBSUEsT0FBTyxDQUFDa0IsRUFBWixFQUFnQixPQUFRLElBQUdsQixPQUFPLENBQUNrQixFQUFHLEVBQXRCO0FBQ2hCLFFBQU1WLEtBQUssR0FBRyxLQUFLVCxRQUFMLENBQWNDLE9BQWQsQ0FBZDtBQUNBLFFBQU1tQixVQUFVLEdBQUdYLEtBQUssQ0FBQ0EsS0FBSyxDQUFDOUIsTUFBTixHQUFlLENBQWhCLENBQXhCO0FBQ0EsTUFBSXlDLFVBQUosRUFBZ0IsT0FBT0EsVUFBVSxDQUFDTCxZQUFsQixDQUFoQixLQUNLLElBQUlkLE9BQU8sQ0FBQ29CLFNBQVIsQ0FBa0IxQyxNQUF0QixFQUE4QixPQUFRLElBQUcyQyxLQUFLLENBQUNDLElBQU4sQ0FBV3RCLE9BQU8sQ0FBQ29CLFNBQW5CLEVBQThCRyxJQUE5QixDQUFtQyxHQUFuQyxDQUF3QyxFQUFuRDtBQUNuQyxTQUFRLElBQUdGLEtBQUssQ0FBQ0MsSUFBTixDQUFXdEIsT0FBTyxDQUFDd0IsYUFBUixDQUFzQkosU0FBakMsRUFBNENHLElBQTVDLENBQWlELEdBQWpELENBQXNELEVBQWpFO0FBQ0gsQ0FQRDs7QUFTQ2pFLE9BQU8sQ0FBQ0MsU0FBUixDQUFrQkksT0FBbEIsR0FBNEIsWUFBVztBQUNuQ0MsR0FBQyxDQUFDQyxRQUFELENBQUQsQ0FBWXFCLEdBQVosQ0FBZ0IsbUJBQWhCO0FBQ0F0QixHQUFDLENBQUNDLFFBQUQsQ0FBRCxDQUFZcUIsR0FBWixDQUFnQix1QkFBaEI7QUFDQXRCLEdBQUMsQ0FBQ0MsUUFBRCxDQUFELENBQVlxQixHQUFaLENBQWdCLDBCQUFoQjtBQUNILENBSkQ7O0FBTWUsbUVBQUk1QixPQUFKLEVBQWYiLCJmaWxlIjoiLi9zcmMvZGV2TW9kZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCRFYyIGZyb20gXCIuL3YyXCI7XHJcblxyXG5mdW5jdGlvbiBkZXZNb2RlKCkge31cclxuXHJcbmRldk1vZGUucHJvdG90eXBlLmVuYWJsZSA9IGZ1bmN0aW9uKHNlbGVjdG9yTW9kZSkge1xyXG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XHJcbiAgICAgdGhpcy5kaXNhYmxlKCk7XHJcbiAgICAgJChkb2N1bWVudCkub24oXCJrZXlkb3duLmJkRGV2bW9kZVwiLCBmdW5jdGlvbihlKSB7XHJcbiAgICAgICAgIGlmIChlLndoaWNoID09PSAxMTkgfHwgZS53aGljaCA9PSAxMTgpIHsvL0Y4XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiJWNbJWNEZXZNb2RlJWNdICVjQnJlYWsvUmVzdW1lXCIsIFwiY29sb3I6IHJlZDtcIiwgXCJjb2xvcjogIzMwMzAzMDsgZm9udC13ZWlnaHQ6NzAwO1wiLCBcImNvbG9yOnJlZDtcIiwgXCJcIik7XHJcbiAgICAgICAgICAgIGRlYnVnZ2VyOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWRlYnVnZ2VyXHJcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgfVxyXG4gICAgIH0pO1xyXG5cclxuICAgIGlmICghc2VsZWN0b3JNb2RlKSByZXR1cm47XHJcbiAgICAgJChkb2N1bWVudCkub24oXCJjb250ZXh0bWVudS5iZERldm1vZGVcIiwgZnVuY3Rpb24oZSkge1xyXG4gICAgICAgICBzZWxmLmxhc3RTZWxlY3RvciA9IHNlbGYuZ2V0U2VsZWN0b3IoZS50b0VsZW1lbnQpO1xyXG5cclxuICAgICAgICAgZnVuY3Rpb24gYXR0YWNoKCkge1xyXG4gICAgICAgICAgICBsZXQgY20gPSAkKFwiLmNvbnRleHRNZW51LUhMWk1HaFwiKTtcclxuICAgICAgICAgICAgaWYgKGNtLmxlbmd0aCA8PSAwKSB7XHJcbiAgICAgICAgICAgICAgICBjbSA9ICQoXCI8ZGl2IGNsYXNzPVxcXCJjb250ZXh0TWVudS1ITFpNR2ggYmQtY29udGV4dC1tZW51XFxcIj48L2Rpdj5cIik7XHJcbiAgICAgICAgICAgICAgICBjbS5hZGRDbGFzcygkKFwiLmFwcCwgLmFwcC0yckVvT3BcIikuaGFzQ2xhc3MoXCJ0aGVtZS1kYXJrXCIpID8gXCJ0aGVtZS1kYXJrXCIgOiBcInRoZW1lLWxpZ2h0XCIpO1xyXG4gICAgICAgICAgICAgICAgY20uYXBwZW5kVG8oXCIuYXBwLCAuYXBwLTJyRW9PcFwiKTtcclxuICAgICAgICAgICAgICAgIGNtLmNzcyhcInRvcFwiLCBlLmNsaWVudFkpO1xyXG4gICAgICAgICAgICAgICAgY20uY3NzKFwibGVmdFwiLCBlLmNsaWVudFgpO1xyXG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGljay5iZERldk1vZGVDdHhcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNtLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9mZihcIi5iZERldk1vZGVDdHhcIik7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY29udGV4dG1lbnUuYmREZXZNb2RlQ3R4XCIsICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjbS5yZW1vdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vZmYoXCIuYmREZXZNb2RlQ3R4XCIpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImtleXVwLmJkRGV2TW9kZUN0eFwiLCAoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlLmtleUNvZGUgPT09IDI3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNtLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vZmYoXCIuYmREZXZNb2RlQ3R4XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBjbW8gPSAkKFwiPGRpdi8+XCIsIHtcclxuICAgICAgICAgICAgICAgIFwiY2xhc3NcIjogXCJpdGVtR3JvdXAtMXRMMHV6XCJcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGNtaSA9ICQoXCI8ZGl2Lz5cIiwge1xyXG4gICAgICAgICAgICAgICAgXCJjbGFzc1wiOiBcIml0ZW0tMVl2ZWhjXCIsXHJcbiAgICAgICAgICAgICAgICBcImNsaWNrXCI6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIEJEVjIuTmF0aXZlTW9kdWxlLmNvcHkoc2VsZi5sYXN0U2VsZWN0b3IpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNtLmhpZGUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSkuYXBwZW5kKCQoXCI8c3Bhbi8+XCIsIHt0ZXh0OiBcIkNvcHkgU2VsZWN0b3JcIn0pKTtcclxuICAgICAgICAgICAgY21vLmFwcGVuZChjbWkpO1xyXG4gICAgICAgICAgICBjbS5hcHBlbmQoY21vKTtcclxuICAgICAgICAgICAgaWYgKGNtLmhhc0NsYXNzKFwidW5kZWZpbmVkXCIpKSBjbS5jc3MoXCJ0b3BcIiwgIFwiLT1cIiArIGNtby5vdXRlckhlaWdodCgpKTtcclxuICAgICAgICAgfVxyXG5cclxuICAgICAgICAgc2V0SW1tZWRpYXRlKGF0dGFjaCk7XHJcblxyXG4gICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgIH0pO1xyXG4gfTtcclxuXHJcbmRldk1vZGUucHJvdG90eXBlLmdldFJ1bGVzID0gZnVuY3Rpb24oZWxlbWVudCwgY3NzID0gZWxlbWVudC5vd25lckRvY3VtZW50LnN0eWxlU2hlZXRzKSB7XHJcbiAgICAvL2lmICh3aW5kb3cuZ2V0TWF0Y2hlZENTU1J1bGVzKSByZXR1cm4gd2luZG93LmdldE1hdGNoZWRDU1NSdWxlcyhlbGVtZW50KTtcclxuICAgIGNvbnN0IHNoZWV0cyA9IFsuLi5jc3NdLmZpbHRlcihzID0+ICFzLmhyZWYgfHwgIXMuaHJlZi5pbmNsdWRlcyhcIkJldHRlckRpc2NvcmRBcHBcIikpO1xyXG4gICAgY29uc3QgcnVsZXMgPSBzaGVldHMubWFwKHMgPT4gWy4uLihzLmNzc1J1bGVzIHx8IFtdKV0pLmZsYXQoKTtcclxuICAgIGNvbnN0IGVsZW1lbnRSdWxlcyA9IHJ1bGVzLmZpbHRlcihyID0+IHIgJiYgci5zZWxlY3RvclRleHQgJiYgZWxlbWVudC5tYXRjaGVzKHIuc2VsZWN0b3JUZXh0KSAmJiByLnN0eWxlLmxlbmd0aCAmJiByLnNlbGVjdG9yVGV4dC5zcGxpdChcIiwgXCIpLmxlbmd0aCA8IDggJiYgIXIuc2VsZWN0b3JUZXh0LnNwbGl0KFwiLCBcIikuaW5jbHVkZXMoXCIqXCIpKTtcclxuICAgIHJldHVybiBlbGVtZW50UnVsZXM7XHJcbn07XHJcblxyXG5kZXZNb2RlLnByb3RvdHlwZS5nZXRTZWxlY3RvciA9IGZ1bmN0aW9uKGVsZW1lbnQpIHtcclxuICAgIGlmIChlbGVtZW50LmlkKSByZXR1cm4gYCMke2VsZW1lbnQuaWR9YDtcclxuICAgIGNvbnN0IHJ1bGVzID0gdGhpcy5nZXRSdWxlcyhlbGVtZW50KTtcclxuICAgIGNvbnN0IGxhdGVzdFJ1bGUgPSBydWxlc1tydWxlcy5sZW5ndGggLSAxXTtcclxuICAgIGlmIChsYXRlc3RSdWxlKSByZXR1cm4gbGF0ZXN0UnVsZS5zZWxlY3RvclRleHQ7XHJcbiAgICBlbHNlIGlmIChlbGVtZW50LmNsYXNzTGlzdC5sZW5ndGgpIHJldHVybiBgLiR7QXJyYXkuZnJvbShlbGVtZW50LmNsYXNzTGlzdCkuam9pbihcIi5cIil9YDtcclxuICAgIHJldHVybiBgLiR7QXJyYXkuZnJvbShlbGVtZW50LnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0KS5qb2luKFwiLlwiKX1gO1xyXG59O1xyXG5cclxuIGRldk1vZGUucHJvdG90eXBlLmRpc2FibGUgPSBmdW5jdGlvbigpIHtcclxuICAgICAkKGRvY3VtZW50KS5vZmYoXCJrZXlkb3duLmJkRGV2bW9kZVwiKTtcclxuICAgICAkKGRvY3VtZW50KS5vZmYoXCJjb250ZXh0bWVudS5iZERldm1vZGVcIik7XHJcbiAgICAgJChkb2N1bWVudCkub2ZmKFwiY29udGV4dG1lbnUuYmREZXZNb2RlQ3R4XCIpO1xyXG4gfTtcclxuXHJcbiBleHBvcnQgZGVmYXVsdCBuZXcgZGV2TW9kZSgpOyJdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2Vtb3RlTW9kdWxlLmpzPzUyMGYiXSwibmFtZXMiOlsiRW1vdGVNb2R1bGUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldCIsImNhdHMiLCJjdXJyZW50IiwiYmRFbW90ZVNldHRpbmdJRHMiLCJzZXR0aW5nc0Nvb2tpZSIsInB1c2giLCJwcm90b3R5cGUiLCJpbml0IiwibW9kaWZpZXJzIiwib3ZlcnJpZGVzIiwiZW1vdGVJbmZvIiwiVHdpdGNoR2xvYmFsIiwidXJsIiwidmFyaWFibGUiLCJvbGRWYXJpYWJsZSIsImdldEVtb3RlVVJMIiwiZSIsIlR3aXRjaFN1YnNjcmliZXIiLCJGcmFua2VyRmFjZVoiLCJCVFRWIiwiQlRUVjIiLCJnZXRCbGFja2xpc3QiLCJsb2FkRW1vdGVEYXRhIiwiQkRWMiIsIk1lc3NhZ2VDb21wb25lbnQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInNldFRpbWVvdXQiLCJjYW5jZWxFbW90ZVJlbmRlciIsIlV0aWxzIiwibW9ua2V5UGF0Y2giLCJiZWZvcmUiLCJtZXRob2RBcmd1bWVudHMiLCJub2RlcyIsImNoaWxkcmVuTWVzc2FnZUNvbnRlbnQiLCJwcm9wcyIsImNvbnRlbnQiLCJsZW5ndGgiLCJuIiwibm9kZSIsIndvcmRzIiwic3BsaXQiLCJjIiwiY2xlbiIsImNhdGVnb3JpZXMiLCJ3Iiwid2xlbiIsImVtb3RlIiwiZW1vdGVTcGxpdCIsImVtb3RlTmFtZSIsImVtb3RlTW9kaWZpZXIiLCJlbW90ZU92ZXJyaWRlIiwic2xpY2UiLCJiZW1vdGVzIiwiaW5jbHVkZXMiLCJiZEVtb3RlcyIsInJlc3VsdHMiLCJtYXRjaCIsIlJlZ0V4cCIsImVzY2FwZSIsInByZSIsInN1YnN0cmluZyIsImluZGV4IiwicG9zdCIsImVtb3RlQ29tcG9uZW50IiwicmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiQkRFbW90ZSIsIm5hbWUiLCJtb2RpZmllciIsInNwbGljZSIsIm9ubHlFbW90ZXMiLCJldmVyeSIsInIiLCJyZXBsYWNlIiwidHlwZSIsImNoaWxkcmVuIiwiZW1vamlOYW1lIiwianVtYm9hYmxlIiwiZGlzYWJsZSIsImRpc2FibGVBdXRvQ2FwaXRhbGl6ZSIsImNsZWFyRW1vdGVEYXRhIiwiX2ZzIiwicmVxdWlyZSIsImVtb3RlRmlsZSIsImZpbGUiLCJiZENvbmZpZyIsImRhdGFQYXRoIiwiZXhpc3RzIiwiZXhpc3RzU3luYyIsInVubGlua1N5bmMiLCJEYXRhU3RvcmUiLCJzZXRCRERhdGEiLCJEYXRlIiwidG9KU09OIiwiYXNzaWduIiwiaXNDYWNoZVZhbGlkIiwiY2FjaGVMZW5ndGgiLCJnZXRCRERhdGEiLCJjYWNoZURhdGUiLCJjdXJyZW50RGF0ZSIsImRheXNCZXR3ZWVuIiwiTWF0aCIsInJvdW5kIiwiYWJzIiwiZ2V0VGltZSIsImZzIiwic2hvd1RvYXN0IiwibG9nIiwiZGF0YSIsInJlYWRGaWxlIiwiZXJyIiwicGFyc2VkIiwidGVzdEpTT04iLCJpc1ZhbGlkIiwia2V5cyIsInVubGluayIsImRvd25sb2FkRW1vdGVzIiwid3JpdGVGaWxlIiwiSlNPTiIsInN0cmluZ2lmeSIsImVtb3RlTWV0YSIsInJlcXVlc3QiLCJvcHRpb25zIiwidGltZW91dCIsImpzb24iLCJyZWplY3QiLCJlcnJvciIsInJlc3BvbnNlIiwicGFyc2VkRGF0YSIsImJhY2t1cCIsImJhY2t1cFBhcnNlciIsInBhcnNlciIsIiQiLCJnZXRKU09OIiwiY29uY2F0IiwiYmxhY2tsaXN0IiwiYXV0b0NhcGl0YWxpemUiLCJhdXRvQ2FwaXRhbGl6ZUFjdGl2ZSIsIm9uIiwidGV4dCIsInZhbCIsInVuZGVmaW5lZCIsImxhc3RXb3JkIiwicG9wIiwicmV0IiwiY2FwaXRhbGl6ZSIsInRvTG93ZXJDYXNlIiwiaW5zZXJ0VGV4dCIsImdldFRleHRBcmVhIiwidmFsdWUiLCJyZXMiLCJwIiwiaGFzT3duUHJvcGVydHkiLCJvZmYiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FBRUEsU0FBU0EsV0FBVCxHQUF1QjtBQUNuQkMsUUFBTSxDQUFDQyxjQUFQLENBQXNCLElBQXRCLEVBQTRCLFlBQTVCLEVBQTBDO0FBQ3RDQyxPQUFHLEVBQUUsWUFBVztBQUNaLFlBQU1DLElBQUksR0FBRyxFQUFiOztBQUNBLFdBQUssTUFBTUMsT0FBWCxJQUFzQkMsMkRBQXRCLEVBQXlDO0FBQ3JDLFlBQUlDLHdEQUFjLENBQUNELDJEQUFpQixDQUFDRCxPQUFELENBQWxCLENBQWxCLEVBQWdERCxJQUFJLENBQUNJLElBQUwsQ0FBVUgsT0FBVjtBQUNuRDs7QUFDRCxhQUFPRCxJQUFQO0FBQ0g7QUFQcUMsR0FBMUM7QUFTSDs7QUFFREosV0FBVyxDQUFDUyxTQUFaLENBQXNCQyxJQUF0QixHQUE2QixrQkFBa0I7QUFDM0MsT0FBS0MsU0FBTCxHQUFpQixDQUFDLE1BQUQsRUFBUyxNQUFULEVBQWlCLE9BQWpCLEVBQTBCLE9BQTFCLEVBQW1DLE9BQW5DLEVBQTRDLE9BQTVDLEVBQXFELE9BQXJELEVBQThELE9BQTlELEVBQXVFLElBQXZFLEVBQTZFLElBQTdFLEVBQW1GLElBQW5GLEVBQXlGLE9BQXpGLEVBQWtHLFFBQWxHLEVBQTRHLFFBQTVHLEVBQXNILE1BQXRILENBQWpCO0FBQ0EsT0FBS0MsU0FBTCxHQUFpQixDQUFDLFFBQUQsRUFBVyxNQUFYLEVBQW1CLEtBQW5CLENBQWpCO0FBRUEsUUFBTUMsU0FBUyxHQUFHO0FBQ2RDLGdCQUFZLEVBQUU7QUFDVkMsU0FBRyxFQUFHLDhFQURJO0FBRVZDLGNBQVEsRUFBRSxjQUZBO0FBR1ZDLGlCQUFXLEVBQUUsY0FISDtBQUlWQyxpQkFBVyxFQUFHQyxDQUFELElBQVEsNkNBQTRDQSxDQUFFO0FBSnpELEtBREE7QUFPZEMsb0JBQWdCLEVBQUU7QUFDZEwsU0FBRyxFQUFHLGtGQURRO0FBRWRDLGNBQVEsRUFBRSxrQkFGSTtBQUdkQyxpQkFBVyxFQUFFLGlCQUhDO0FBSWRDLGlCQUFXLEVBQUdDLENBQUQsSUFBUSw2Q0FBNENBLENBQUU7QUFKckQsS0FQSjtBQWFkRSxnQkFBWSxFQUFFO0FBQ1ZOLFNBQUcsRUFBRyxvRUFESTtBQUVWQyxjQUFRLEVBQUUsY0FGQTtBQUdWQyxpQkFBVyxFQUFFLFdBSEg7QUFJVkMsaUJBQVcsRUFBR0MsQ0FBRCxJQUFRLHlDQUF3Q0EsQ0FBRTtBQUpyRCxLQWJBO0FBbUJkRyxRQUFJLEVBQUU7QUFDRlAsU0FBRyxFQUFHLHFFQURKO0FBRUZDLGNBQVEsRUFBRSxNQUZSO0FBR0ZDLGlCQUFXLEVBQUUsWUFIWDtBQUlGQyxpQkFBVyxFQUFHQyxDQUFELElBQVEsbUNBQWtDQSxDQUFFO0FBSnZELEtBbkJRO0FBeUJkSSxTQUFLLEVBQUU7QUFDSFIsU0FBRyxFQUFHLHNFQURIO0FBRUhDLGNBQVEsRUFBRSxPQUZQO0FBR0hDLGlCQUFXLEVBQUUsYUFIVjtBQUlIQyxpQkFBVyxFQUFHQyxDQUFELElBQVEsbUNBQWtDQSxDQUFFO0FBSnREO0FBekJPLEdBQWxCO0FBaUNBLFFBQU0sS0FBS0ssWUFBTCxFQUFOO0FBQ0EsUUFBTSxLQUFLQyxhQUFMLENBQW1CWixTQUFuQixDQUFOOztBQUVBLFNBQU8sQ0FBQ2EsMkNBQUksQ0FBQ0MsZ0JBQWIsRUFBK0IsTUFBTSxJQUFJQyxPQUFKLENBQVlDLE9BQU8sSUFBSUMsVUFBVSxDQUFDRCxPQUFELEVBQVUsR0FBVixDQUFqQyxDQUFOOztBQUUvQixNQUFJLEtBQUtFLGlCQUFULEVBQTRCO0FBQzVCLE9BQUtBLGlCQUFMLEdBQXlCQyw4Q0FBSyxDQUFDQyxXQUFOLENBQWtCUCwyQ0FBSSxDQUFDQyxnQkFBdkIsRUFBeUMsU0FBekMsRUFBb0Q7QUFBQ08sVUFBTSxFQUFFLENBQUM7QUFBQ0M7QUFBRCxLQUFELEtBQXVCO0FBQ3pHLFlBQU1DLEtBQUssR0FBR0QsZUFBZSxDQUFDLENBQUQsQ0FBZixDQUFtQkUsc0JBQW5CLENBQTBDQyxLQUExQyxDQUFnREMsT0FBOUQ7QUFDQSxVQUFJLENBQUNILEtBQUQsSUFBVSxDQUFDQSxLQUFLLENBQUNJLE1BQXJCLEVBQTZCOztBQUM3QixXQUFLLElBQUlDLENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLEdBQUdMLEtBQUssQ0FBQ0ksTUFBMUIsRUFBa0NDLENBQUMsRUFBbkMsRUFBdUM7QUFDbkMsY0FBTUMsSUFBSSxHQUFHTixLQUFLLENBQUNLLENBQUQsQ0FBbEI7QUFDQSxZQUFJLE9BQU9DLElBQVAsS0FBaUIsUUFBckIsRUFBK0I7QUFDL0IsY0FBTUMsS0FBSyxHQUFHRCxJQUFJLENBQUNFLEtBQUwsQ0FBVyxtQkFBWCxDQUFkOztBQUNBLGFBQUssSUFBSUMsQ0FBQyxHQUFHLENBQVIsRUFBV0MsSUFBSSxHQUFHLEtBQUtDLFVBQUwsQ0FBZ0JQLE1BQXZDLEVBQStDSyxDQUFDLEdBQUdDLElBQW5ELEVBQXlERCxDQUFDLEVBQTFELEVBQThEO0FBQzFELGVBQUssSUFBSUcsQ0FBQyxHQUFHLENBQVIsRUFBV0MsSUFBSSxHQUFHTixLQUFLLENBQUNILE1BQTdCLEVBQXFDUSxDQUFDLEdBQUdDLElBQXpDLEVBQStDRCxDQUFDLEVBQWhELEVBQW9EO0FBQ2hELGtCQUFNRSxLQUFLLEdBQUdQLEtBQUssQ0FBQ0ssQ0FBRCxDQUFuQjtBQUNBLGtCQUFNRyxVQUFVLEdBQUdELEtBQUssQ0FBQ04sS0FBTixDQUFZLEdBQVosQ0FBbkI7QUFDQSxrQkFBTVEsU0FBUyxHQUFHRCxVQUFVLENBQUMsQ0FBRCxDQUE1QjtBQUNBLGdCQUFJRSxhQUFhLEdBQUdGLFVBQVUsQ0FBQyxDQUFELENBQVYsR0FBZ0JBLFVBQVUsQ0FBQyxDQUFELENBQTFCLEdBQWdDLEVBQXBEO0FBQ0EsZ0JBQUlHLGFBQWEsR0FBR0QsYUFBYSxDQUFDRSxLQUFkLENBQW9CLENBQXBCLENBQXBCO0FBRUEsZ0JBQUlILFNBQVMsQ0FBQ1osTUFBVixHQUFtQixDQUFuQixJQUF3QmdCLGlEQUFPLENBQUNDLFFBQVIsQ0FBaUJMLFNBQWpCLENBQTVCLEVBQXlEO0FBQ3pELGdCQUFJLENBQUMsS0FBS3pDLFNBQUwsQ0FBZThDLFFBQWYsQ0FBd0JKLGFBQXhCLENBQUQsSUFBMkMsQ0FBQzlDLHdEQUFjLENBQUMsVUFBRCxDQUE5RCxFQUE0RThDLGFBQWEsR0FBRyxFQUFoQjtBQUM1RSxnQkFBSSxDQUFDLEtBQUt6QyxTQUFMLENBQWU2QyxRQUFmLENBQXdCSCxhQUF4QixDQUFMLEVBQTZDQSxhQUFhLEdBQUcsRUFBaEIsQ0FBN0MsS0FDS0QsYUFBYSxHQUFHQyxhQUFoQjtBQUVMLGdCQUFJakQsT0FBTyxHQUFHLEtBQUswQyxVQUFMLENBQWdCRixDQUFoQixDQUFkOztBQUNBLGdCQUFJUyxhQUFhLEtBQUssUUFBdEIsRUFBZ0M7QUFDNUIsa0JBQUlJLGtEQUFRLENBQUM1QyxZQUFULENBQXNCc0MsU0FBdEIsQ0FBSixFQUFzQy9DLE9BQU8sR0FBRyxjQUFWLENBQXRDLEtBQ0ssSUFBSXFELGtEQUFRLENBQUN0QyxnQkFBVCxDQUEwQmdDLFNBQTFCLENBQUosRUFBMEMvQyxPQUFPLEdBQUcsa0JBQVY7QUFDbEQsYUFIRCxNQUlLLElBQUlpRCxhQUFhLEtBQUssTUFBdEIsRUFBOEI7QUFDL0Isa0JBQUlJLGtEQUFRLENBQUNwQyxJQUFULENBQWM4QixTQUFkLENBQUosRUFBOEIvQyxPQUFPLEdBQUcsTUFBVixDQUE5QixLQUNLLElBQUlxRCxrREFBUSxDQUFDbkMsS0FBVCxDQUFlNkIsU0FBZixDQUFKLEVBQStCL0MsT0FBTyxHQUFHLE9BQVY7QUFDdkMsYUFISSxNQUlBLElBQUlpRCxhQUFhLEtBQUssS0FBdEIsRUFBNkI7QUFDOUIsa0JBQUlJLGtEQUFRLENBQUNyQyxZQUFULENBQXNCK0IsU0FBdEIsQ0FBSixFQUFzQy9DLE9BQU8sR0FBRyxjQUFWO0FBQ3pDOztBQUVELGdCQUFJLENBQUNxRCxrREFBUSxDQUFDckQsT0FBRCxDQUFSLENBQWtCK0MsU0FBbEIsQ0FBRCxJQUFpQyxDQUFDN0Msd0RBQWMsQ0FBQ0QsMkRBQWlCLENBQUNELE9BQUQsQ0FBbEIsQ0FBcEQsRUFBa0Y7QUFDbEYsa0JBQU1zRCxPQUFPLEdBQUd2QixLQUFLLENBQUNLLENBQUQsQ0FBTCxDQUFTbUIsS0FBVCxDQUFlLElBQUlDLE1BQUosQ0FBWSxZQUFXN0IsOENBQUssQ0FBQzhCLE1BQU4sQ0FBYVQsYUFBYSxHQUFHRCxTQUFTLEdBQUcsR0FBWixHQUFrQkMsYUFBckIsR0FBcUNELFNBQS9ELENBQTBFLFdBQWpHLENBQWYsQ0FBaEI7QUFDQSxnQkFBSSxDQUFDTyxPQUFMLEVBQWM7QUFDZCxrQkFBTUksR0FBRyxHQUFHM0IsS0FBSyxDQUFDSyxDQUFELENBQUwsQ0FBU3VCLFNBQVQsQ0FBbUIsQ0FBbkIsRUFBc0JMLE9BQU8sQ0FBQ00sS0FBUixHQUFnQk4sT0FBTyxDQUFDLENBQUQsQ0FBUCxDQUFXbkIsTUFBakQsQ0FBWjtBQUNBLGtCQUFNMEIsSUFBSSxHQUFHOUIsS0FBSyxDQUFDSyxDQUFELENBQUwsQ0FBU3VCLFNBQVQsQ0FBbUJMLE9BQU8sQ0FBQ00sS0FBUixHQUFnQk4sT0FBTyxDQUFDLENBQUQsQ0FBUCxDQUFXbkIsTUFBM0IsR0FBb0NtQixPQUFPLENBQUMsQ0FBRCxDQUFQLENBQVduQixNQUFsRSxDQUFiO0FBQ0FKLGlCQUFLLENBQUNLLENBQUQsQ0FBTCxHQUFXc0IsR0FBWDtBQUNBLGtCQUFNSSxjQUFjLEdBQUd6QywyQ0FBSSxDQUFDMEMsS0FBTCxDQUFXQyxhQUFYLENBQXlCQyxzREFBekIsRUFBa0M7QUFBQ0Msa0JBQUksRUFBRW5CLFNBQVA7QUFBa0JyQyxpQkFBRyxFQUFFMkMsa0RBQVEsQ0FBQ3JELE9BQUQsQ0FBUixDQUFrQitDLFNBQWxCLENBQXZCO0FBQXFEb0Isc0JBQVEsRUFBRW5CO0FBQS9ELGFBQWxDLENBQXZCO0FBQ0FqQixpQkFBSyxDQUFDcUMsTUFBTixDQUFhaEMsQ0FBQyxHQUFHLENBQWpCLEVBQW9CLENBQXBCLEVBQXVCeUIsSUFBdkI7QUFDQTlCLGlCQUFLLENBQUNxQyxNQUFOLENBQWFoQyxDQUFDLEdBQUcsQ0FBakIsRUFBb0IsQ0FBcEIsRUFBdUIwQixjQUF2QjtBQUNIO0FBQ0o7QUFDSjs7QUFDRCxZQUFNTyxVQUFVLEdBQUd0QyxLQUFLLENBQUN1QyxLQUFOLENBQVlDLENBQUMsSUFBSTtBQUNoQyxZQUFJLE9BQU9BLENBQVAsSUFBYSxRQUFiLElBQXlCQSxDQUFDLENBQUNDLE9BQUYsQ0FBVSxLQUFWLEVBQWlCLEVBQWpCLEtBQXdCLEVBQXJELEVBQXlELE9BQU8sSUFBUCxDQUF6RCxLQUNLLElBQUlELENBQUMsQ0FBQ0UsSUFBRixJQUFVRixDQUFDLENBQUNFLElBQUYsQ0FBT1AsSUFBUCxJQUFlLFNBQTdCLEVBQXdDLE9BQU8sSUFBUCxDQUF4QyxLQUNBLElBQUlLLENBQUMsQ0FBQ3RDLEtBQUYsSUFBV3NDLENBQUMsQ0FBQ3RDLEtBQUYsQ0FBUXlDLFFBQW5CLElBQStCSCxDQUFDLENBQUN0QyxLQUFGLENBQVF5QyxRQUFSLENBQWlCekMsS0FBaEQsSUFBeURzQyxDQUFDLENBQUN0QyxLQUFGLENBQVF5QyxRQUFSLENBQWlCekMsS0FBakIsQ0FBdUIwQyxTQUFwRixFQUErRixPQUFPLElBQVA7QUFDcEcsZUFBTyxLQUFQO0FBQ0gsT0FMa0IsQ0FBbkI7QUFNQSxVQUFJLENBQUNOLFVBQUwsRUFBaUI7O0FBRWpCLFdBQUssTUFBTWhDLElBQVgsSUFBbUJOLEtBQW5CLEVBQTBCO0FBQ3RCLFlBQUksT0FBT00sSUFBUCxJQUFnQixRQUFwQixFQUE4QjtBQUM5QixZQUFJQSxJQUFJLENBQUNvQyxJQUFMLENBQVVQLElBQVYsSUFBa0IsU0FBdEIsRUFBaUM3QixJQUFJLENBQUNKLEtBQUwsQ0FBVzJDLFNBQVgsR0FBdUIsSUFBdkIsQ0FBakMsS0FDSyxJQUFJdkMsSUFBSSxDQUFDSixLQUFMLElBQWNJLElBQUksQ0FBQ0osS0FBTCxDQUFXeUMsUUFBekIsSUFBcUNyQyxJQUFJLENBQUNKLEtBQUwsQ0FBV3lDLFFBQVgsQ0FBb0J6QyxLQUF6RCxJQUFrRUksSUFBSSxDQUFDSixLQUFMLENBQVd5QyxRQUFYLENBQW9CekMsS0FBcEIsQ0FBMEIwQyxTQUFoRyxFQUEyR3RDLElBQUksQ0FBQ0osS0FBTCxDQUFXeUMsUUFBWCxDQUFvQnpDLEtBQXBCLENBQTBCMkMsU0FBMUIsR0FBc0MsSUFBdEM7QUFDbkg7QUFDSjtBQTFENEUsR0FBcEQsQ0FBekI7QUEyREgsQ0F0R0Q7O0FBd0dBakYsV0FBVyxDQUFDUyxTQUFaLENBQXNCeUUsT0FBdEIsR0FBZ0MsWUFBVztBQUN2QyxPQUFLQyxxQkFBTDtBQUNBLE1BQUksS0FBS3BELGlCQUFULEVBQTRCO0FBQzVCLE9BQUtBLGlCQUFMO0FBQ0EsT0FBS0EsaUJBQUwsR0FBeUIsSUFBekI7QUFDSCxDQUxEOztBQU9BL0IsV0FBVyxDQUFDUyxTQUFaLENBQXNCMkUsY0FBdEIsR0FBdUMsa0JBQWlCO0FBQ3BELFFBQU1DLEdBQUcsR0FBR0MsbUJBQU8sQ0FBQyxjQUFELENBQW5COztBQUNBLFFBQU1DLFNBQVMsR0FBRyxpQkFBbEI7QUFDQSxRQUFNQyxJQUFJLEdBQUdDLGtEQUFRLENBQUNDLFFBQVQsR0FBb0JILFNBQWpDOztBQUNBLFFBQU1JLE1BQU0sR0FBR04sR0FBRyxDQUFDTyxVQUFKLENBQWVKLElBQWYsQ0FBZjs7QUFDQSxNQUFJRyxNQUFKLEVBQVlOLEdBQUcsQ0FBQ1EsVUFBSixDQUFlTCxJQUFmO0FBQ1pNLG9EQUFTLENBQUNDLFNBQVYsQ0FBb0IsZ0JBQXBCLEVBQXVDLElBQUlDLElBQUosRUFBRCxDQUFhQyxNQUFiLEVBQXRDO0FBRUFoRyxRQUFNLENBQUNpRyxNQUFQLENBQWN4QyxrREFBZCxFQUF3QjtBQUNwQjVDLGdCQUFZLEVBQUUsRUFETTtBQUVwQk0sb0JBQWdCLEVBQUUsRUFGRTtBQUdwQkUsUUFBSSxFQUFFLEVBSGM7QUFJcEJELGdCQUFZLEVBQUUsRUFKTTtBQUtwQkUsU0FBSyxFQUFFO0FBTGEsR0FBeEI7QUFPSCxDQWZEOztBQWlCQXZCLFdBQVcsQ0FBQ1MsU0FBWixDQUFzQjBGLFlBQXRCLEdBQXFDLFlBQVc7QUFDNUMsUUFBTUMsV0FBVyxHQUFHTixrREFBUyxDQUFDTyxTQUFWLENBQW9CLGdCQUFwQixLQUF5Q1Asa0RBQVMsQ0FBQ0MsU0FBVixDQUFvQixnQkFBcEIsRUFBc0MsQ0FBdEMsQ0FBekMsSUFBcUYsQ0FBekc7QUFDQSxRQUFNTyxTQUFTLEdBQUcsSUFBSU4sSUFBSixDQUFTRixrREFBUyxDQUFDTyxTQUFWLENBQW9CLGdCQUFwQixLQUF5QyxJQUFsRCxDQUFsQjtBQUNBLFFBQU1FLFdBQVcsR0FBRyxJQUFJUCxJQUFKLEVBQXBCO0FBQ0EsUUFBTVEsV0FBVyxHQUFHQyxJQUFJLENBQUNDLEtBQUwsQ0FBV0QsSUFBSSxDQUFDRSxHQUFMLENBQVMsQ0FBQ0osV0FBVyxDQUFDSyxPQUFaLEtBQXdCTixTQUFTLENBQUNNLE9BQVYsRUFBekIsS0FBaUQsS0FBSyxFQUFMLEdBQVUsRUFBVixHQUFlLElBQWhFLENBQVQsQ0FBWCxDQUFwQjs7QUFDQSxNQUFJSixXQUFXLEdBQUdKLFdBQWxCLEVBQStCO0FBQzNCTixzREFBUyxDQUFDQyxTQUFWLENBQW9CLGdCQUFwQixFQUFzQ1EsV0FBVyxDQUFDTixNQUFaLEVBQXRDO0FBQ0EsV0FBTyxLQUFQO0FBQ0g7O0FBQ0QsU0FBTyxJQUFQO0FBQ0gsQ0FWRDs7QUFZQWpHLFdBQVcsQ0FBQ1MsU0FBWixDQUFzQmdCLGFBQXRCLEdBQXNDLGdCQUFlWixTQUFmLEVBQTBCO0FBQzVELFFBQU1nRyxFQUFFLEdBQUd2QixtQkFBTyxDQUFDLGNBQUQsQ0FBbEI7O0FBQ0EsUUFBTUMsU0FBUyxHQUFHLGlCQUFsQjtBQUNBLFFBQU1DLElBQUksR0FBR0Msa0RBQVEsQ0FBQ0MsUUFBVCxHQUFvQkgsU0FBakM7QUFDQSxRQUFNSSxNQUFNLEdBQUcsTUFBTSxJQUFJL0QsT0FBSixDQUFZZ0QsQ0FBQyxJQUFJaUMsRUFBRSxDQUFDbEIsTUFBSCxDQUFVSCxJQUFWLEVBQWdCWixDQUFoQixDQUFqQixDQUFyQjs7QUFFQSxNQUFJZSxNQUFNLElBQUksS0FBS1EsWUFBTCxFQUFkLEVBQW1DO0FBQy9CLFFBQUk1Rix3REFBYyxDQUFDLFdBQUQsQ0FBbEIsRUFBaUN5Qiw4Q0FBSyxDQUFDOEUsU0FBTixDQUFnQiw0QkFBaEIsRUFBOEM7QUFBQ2hDLFVBQUksRUFBRTtBQUFQLEtBQTlDO0FBQ2pDOUMsa0RBQUssQ0FBQytFLEdBQU4sQ0FBVSxRQUFWLEVBQW9CLGtDQUFwQjtBQUVBLFVBQU1DLElBQUksR0FBRyxNQUFNLElBQUlwRixPQUFKLENBQVlDLE9BQU8sSUFBSTtBQUN0Q2dGLFFBQUUsQ0FBQ0ksUUFBSCxDQUFZekIsSUFBWixFQUFrQixNQUFsQixFQUEwQixDQUFDMEIsR0FBRCxFQUFNRixJQUFOLEtBQWU7QUFDckNoRixzREFBSyxDQUFDK0UsR0FBTixDQUFVLFFBQVYsRUFBb0Isa0JBQXBCO0FBQ0EsWUFBSUcsR0FBSixFQUFTRixJQUFJLEdBQUcsRUFBUDtBQUNUbkYsZUFBTyxDQUFDbUYsSUFBRCxDQUFQO0FBQ0gsT0FKRDtBQUtILEtBTmtCLENBQW5CO0FBUUEsVUFBTUcsTUFBTSxHQUFHbkYsOENBQUssQ0FBQ29GLFFBQU4sQ0FBZUosSUFBZixDQUFmO0FBQ0EsUUFBSUssT0FBTyxHQUFHLENBQUMsQ0FBQ0YsTUFBaEI7QUFDQSxRQUFJRSxPQUFKLEVBQWFwSCxNQUFNLENBQUNpRyxNQUFQLENBQWN4QyxrREFBZCxFQUF3QnlELE1BQXhCOztBQUViLFNBQUssTUFBTWhHLENBQVgsSUFBZ0JOLFNBQWhCLEVBQTJCO0FBQ3ZCd0csYUFBTyxHQUFHcEgsTUFBTSxDQUFDcUgsSUFBUCxDQUFZNUQsa0RBQVEsQ0FBQzdDLFNBQVMsQ0FBQ00sQ0FBRCxDQUFULENBQWFILFFBQWQsQ0FBcEIsRUFBNkN3QixNQUE3QyxHQUFzRCxDQUFoRTtBQUNIOztBQUVELFFBQUk2RSxPQUFKLEVBQWE7QUFDVCxVQUFJOUcsd0RBQWMsQ0FBQyxXQUFELENBQWxCLEVBQWlDeUIsOENBQUssQ0FBQzhFLFNBQU4sQ0FBZ0IsNkJBQWhCLEVBQStDO0FBQUNoQyxZQUFJLEVBQUU7QUFBUCxPQUEvQztBQUNqQztBQUNIOztBQUVEOUMsa0RBQUssQ0FBQytFLEdBQU4sQ0FBVSxRQUFWLEVBQW9CLG1DQUFwQjtBQUNBLFVBQU0sSUFBSW5GLE9BQUosQ0FBWWdELENBQUMsSUFBSWlDLEVBQUUsQ0FBQ1UsTUFBSCxDQUFVL0IsSUFBVixFQUFnQlosQ0FBaEIsQ0FBakIsQ0FBTjtBQUNIOztBQUVELE1BQUksQ0FBQ3JFLHdEQUFjLENBQUMsV0FBRCxDQUFuQixFQUFrQztBQUNsQyxNQUFJQSx3REFBYyxDQUFDLFdBQUQsQ0FBbEIsRUFBaUN5Qiw4Q0FBSyxDQUFDOEUsU0FBTixDQUFnQixxREFBaEIsRUFBdUU7QUFBQ2hDLFFBQUksRUFBRTtBQUFQLEdBQXZFOztBQUVqQyxPQUFLLE1BQU0zRCxDQUFYLElBQWdCTixTQUFoQixFQUEyQjtBQUN2QixVQUFNLElBQUllLE9BQUosQ0FBWWdELENBQUMsSUFBSTlDLFVBQVUsQ0FBQzhDLENBQUQsRUFBSSxJQUFKLENBQTNCLENBQU47QUFDQSxVQUFNb0MsSUFBSSxHQUFHLE1BQU0sS0FBS1EsY0FBTCxDQUFvQjNHLFNBQVMsQ0FBQ00sQ0FBRCxDQUE3QixDQUFuQjtBQUNBdUMsc0RBQVEsQ0FBQzdDLFNBQVMsQ0FBQ00sQ0FBRCxDQUFULENBQWFILFFBQWQsQ0FBUixHQUFrQ2dHLElBQWxDO0FBQ0g7O0FBRUQsTUFBSXpHLHdEQUFjLENBQUMsV0FBRCxDQUFsQixFQUFpQ3lCLDhDQUFLLENBQUM4RSxTQUFOLENBQWdCLHFDQUFoQixFQUF1RDtBQUFDaEMsUUFBSSxFQUFFO0FBQVAsR0FBdkQ7O0FBRWpDLE1BQUk7QUFBRSxVQUFNLElBQUlsRCxPQUFKLENBQVlnRCxDQUFDLElBQUlpQyxFQUFFLENBQUNZLFNBQUgsQ0FBYWpDLElBQWIsRUFBbUJrQyxJQUFJLENBQUNDLFNBQUwsQ0FBZWpFLGtEQUFmLENBQW5CLEVBQTZDLE1BQTdDLEVBQXFEa0IsQ0FBckQsQ0FBakIsQ0FBTjtBQUFrRixHQUF4RixDQUNBLE9BQU9zQyxHQUFQLEVBQVk7QUFBRWxGLGtEQUFLLENBQUNrRixHQUFOLENBQVUsUUFBVixFQUFvQiw0QkFBcEIsRUFBa0RBLEdBQWxEO0FBQXlEO0FBQzFFLENBaEREOztBQWtEQWxILFdBQVcsQ0FBQ1MsU0FBWixDQUFzQitHLGNBQXRCLEdBQXVDLFVBQVNJLFNBQVQsRUFBb0I7QUFDdkQsUUFBTUMsT0FBTyxHQUFHdkMsbUJBQU8sQ0FBQyx3QkFBRCxDQUF2Qjs7QUFDQSxRQUFNd0MsT0FBTyxHQUFHO0FBQ1ovRyxPQUFHLEVBQUU2RyxTQUFTLENBQUM3RyxHQURIO0FBRVpnSCxXQUFPLEVBQUVILFNBQVMsQ0FBQ0csT0FBVixHQUFvQkgsU0FBUyxDQUFDRyxPQUE5QixHQUF3QyxJQUZyQztBQUdaQyxRQUFJLEVBQUU7QUFITSxHQUFoQjtBQU1BaEcsZ0RBQUssQ0FBQytFLEdBQU4sQ0FBVSxRQUFWLEVBQXFCLGdCQUFlYSxTQUFTLENBQUM1RyxRQUFTLEtBQUk0RyxTQUFTLENBQUM3RyxHQUFJLEdBQXpFO0FBRUEsU0FBTyxJQUFJYSxPQUFKLENBQVksQ0FBQ0MsT0FBRCxFQUFVb0csTUFBVixLQUFxQjtBQUNwQ0osV0FBTyxDQUFDQyxPQUFELEVBQVUsQ0FBQ0ksS0FBRCxFQUFRQyxRQUFSLEVBQWtCQyxVQUFsQixLQUFpQztBQUM5QyxVQUFJRixLQUFKLEVBQVc7QUFDUGxHLHNEQUFLLENBQUNrRixHQUFOLENBQVUsUUFBVixFQUFvQix3QkFBd0JVLFNBQVMsQ0FBQzVHLFFBQXRELEVBQWdFa0gsS0FBaEU7O0FBQ0EsWUFBSU4sU0FBUyxDQUFDUyxNQUFkLEVBQXNCO0FBQ2xCVCxtQkFBUyxDQUFDN0csR0FBVixHQUFnQjZHLFNBQVMsQ0FBQ1MsTUFBMUI7QUFDQVQsbUJBQVMsQ0FBQ1MsTUFBVixHQUFtQixJQUFuQjtBQUNBLGNBQUlULFNBQVMsQ0FBQ1UsWUFBZCxFQUE0QlYsU0FBUyxDQUFDVyxNQUFWLEdBQW1CWCxTQUFTLENBQUNVLFlBQTdCO0FBQzVCLGlCQUFPekcsT0FBTyxDQUFDLEtBQUsyRixjQUFMLENBQW9CSSxTQUFwQixDQUFELENBQWQ7QUFDSDs7QUFDRCxlQUFPSyxNQUFNLENBQUMsRUFBRCxDQUFiO0FBQ0g7O0FBRUQsVUFBSSxPQUFPTCxTQUFTLENBQUNXLE1BQWpCLEtBQTZCLFVBQWpDLEVBQTZDSCxVQUFVLEdBQUdSLFNBQVMsQ0FBQ1csTUFBVixDQUFpQkgsVUFBakIsQ0FBYjs7QUFFN0MsV0FBSyxNQUFNbEYsS0FBWCxJQUFvQmtGLFVBQXBCLEVBQWdDO0FBQzVCLFlBQUlsRixLQUFLLENBQUNWLE1BQU4sR0FBZSxDQUFmLElBQW9CZ0IsaURBQU8sQ0FBQ0MsUUFBUixDQUFpQlAsS0FBakIsQ0FBeEIsRUFBaUQ7QUFDN0MsaUJBQU9rRixVQUFVLENBQUNsRixLQUFELENBQWpCO0FBQ0E7QUFDSDs7QUFDRGtGLGtCQUFVLENBQUNsRixLQUFELENBQVYsR0FBb0IwRSxTQUFTLENBQUMxRyxXQUFWLENBQXNCa0gsVUFBVSxDQUFDbEYsS0FBRCxDQUFoQyxDQUFwQjtBQUNIOztBQUNEckIsYUFBTyxDQUFDdUcsVUFBRCxDQUFQO0FBQ0FwRyxvREFBSyxDQUFDK0UsR0FBTixDQUFVLFFBQVYsRUFBb0IsaUJBQWlCYSxTQUFTLENBQUM1RyxRQUEvQztBQUNILEtBdkJNLENBQVA7QUF3QkgsR0F6Qk0sQ0FBUDtBQTBCSCxDQXBDRDs7QUFzQ0FoQixXQUFXLENBQUNTLFNBQVosQ0FBc0JlLFlBQXRCLEdBQXFDLFlBQVk7QUFDN0MsU0FBTyxJQUFJSSxPQUFKLENBQVlDLE9BQU8sSUFBSTtBQUMxQjJHLEtBQUMsQ0FBQ0MsT0FBRixDQUFXLGtFQUFYLEVBQThFLFVBQVV6QixJQUFWLEVBQWdCO0FBQzFGbkYsYUFBTyxDQUFDMkIsaURBQU8sQ0FBQ2tGLE1BQVIsQ0FBZTFCLElBQUksQ0FBQzJCLFNBQXBCLENBQUQsQ0FBUDtBQUNILEtBRkQ7QUFHSCxHQUpNLENBQVA7QUFLSCxDQU5EOztBQVFBM0ksV0FBVyxDQUFDUyxTQUFaLENBQXNCbUksY0FBdEIsR0FBdUMsWUFBWTtBQUMvQyxNQUFJLENBQUNySSx3REFBYyxDQUFDLFVBQUQsQ0FBZixJQUErQixLQUFLc0ksb0JBQXhDLEVBQThEO0FBQzlETCxHQUFDLENBQUMsTUFBRCxDQUFELENBQVVNLEVBQVYsQ0FBYSxtQ0FBYixFQUFrRE4sQ0FBQyxDQUFDLHdDQUFELENBQW5ELEVBQStGLE1BQU07QUFDakcsVUFBTU8sSUFBSSxHQUFHUCxDQUFDLENBQUMsd0NBQUQsQ0FBRCxDQUE0Q1EsR0FBNUMsRUFBYjtBQUNBLFFBQUlELElBQUksSUFBSUUsU0FBWixFQUF1QjtBQUV2QixVQUFNQyxRQUFRLEdBQUdILElBQUksQ0FBQ25HLEtBQUwsQ0FBVyxHQUFYLEVBQWdCdUcsR0FBaEIsRUFBakI7O0FBQ0EsUUFBSUQsUUFBUSxDQUFDMUcsTUFBVCxHQUFrQixDQUF0QixFQUF5QjtBQUNyQixVQUFJMEcsUUFBUSxJQUFJLFVBQWhCLEVBQTRCO0FBQzVCLFlBQU1FLEdBQUcsR0FBRyxLQUFLQyxVQUFMLENBQWdCSCxRQUFRLENBQUNJLFdBQVQsRUFBaEIsQ0FBWjs7QUFDQSxVQUFJRixHQUFHLEtBQUssSUFBUixJQUFnQkEsR0FBRyxLQUFLSCxTQUE1QixFQUF1QztBQUNuQ2pILHNEQUFLLENBQUN1SCxVQUFOLENBQWlCdkgsOENBQUssQ0FBQ3dILFdBQU4sR0FBb0IsQ0FBcEIsQ0FBakIsRUFBeUNULElBQUksQ0FBQ2xFLE9BQUwsQ0FBYXFFLFFBQWIsRUFBdUJFLEdBQXZCLENBQXpDO0FBQ0g7QUFDSjtBQUNKLEdBWkQ7QUFhQSxPQUFLUCxvQkFBTCxHQUE0QixJQUE1QjtBQUNILENBaEJEOztBQWtCQTdJLFdBQVcsQ0FBQ1MsU0FBWixDQUFzQjRJLFVBQXRCLEdBQW1DLFVBQVVJLEtBQVYsRUFBaUI7QUFDaEQsUUFBTUMsR0FBRyxHQUFHaEcsa0RBQVEsQ0FBQzVDLFlBQXJCOztBQUNBLE9BQUssTUFBTTZJLENBQVgsSUFBZ0JELEdBQWhCLEVBQXFCO0FBQ2pCLFFBQUlBLEdBQUcsQ0FBQ0UsY0FBSixDQUFtQkQsQ0FBbkIsS0FBeUJGLEtBQUssSUFBSSxDQUFDRSxDQUFDLEdBQUcsRUFBTCxFQUFTTCxXQUFULEVBQXRDLEVBQThEO0FBQzFELGFBQU9LLENBQVA7QUFDSDtBQUNKO0FBQ0osQ0FQRDs7QUFTQTNKLFdBQVcsQ0FBQ1MsU0FBWixDQUFzQjBFLHFCQUF0QixHQUE4QyxZQUFXO0FBQ3JELE9BQUswRCxvQkFBTCxHQUE0QixLQUE1QjtBQUNBTCxHQUFDLENBQUMsTUFBRCxDQUFELENBQVVxQixHQUFWLENBQWMsT0FBZDtBQUNILENBSEQ7O0FBS2UsbUVBQUk3SixXQUFKLEVBQWYiLCJmaWxlIjoiLi9zcmMvZW1vdGVNb2R1bGUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2JkQ29uZmlnLCBzZXR0aW5nc0Nvb2tpZSwgYmVtb3RlcywgYmRFbW90ZVNldHRpbmdJRHMsIGJkRW1vdGVzfSBmcm9tIFwiLi8wZ2xvYmFsc1wiO1xyXG5pbXBvcnQgRGF0YVN0b3JlIGZyb20gXCIuL2RhdGFTdG9yZVwiO1xyXG5pbXBvcnQgQkRWMiBmcm9tIFwiLi92MlwiO1xyXG5pbXBvcnQgVXRpbHMgZnJvbSBcIi4vdXRpbHNcIjtcclxuXHJcbmltcG9ydCBCREVtb3RlIGZyb20gXCIuL3JlYWN0L2JkRW1vdGVcIjtcclxuXHJcbmZ1bmN0aW9uIEVtb3RlTW9kdWxlKCkge1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIFwiY2F0ZWdvcmllc1wiLCB7XHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgY29uc3QgY2F0cyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGN1cnJlbnQgaW4gYmRFbW90ZVNldHRpbmdJRHMpIHtcclxuICAgICAgICAgICAgICAgIGlmIChzZXR0aW5nc0Nvb2tpZVtiZEVtb3RlU2V0dGluZ0lEc1tjdXJyZW50XV0pIGNhdHMucHVzaChjdXJyZW50KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gY2F0cztcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxufVxyXG5cclxuRW1vdGVNb2R1bGUucHJvdG90eXBlLmluaXQgPSBhc3luYyBmdW5jdGlvbiAoKSB7XHJcbiAgICB0aGlzLm1vZGlmaWVycyA9IFtcImZsaXBcIiwgXCJzcGluXCIsIFwicHVsc2VcIiwgXCJzcGluMlwiLCBcInNwaW4zXCIsIFwiMXNwaW5cIiwgXCIyc3BpblwiLCBcIjNzcGluXCIsIFwidHJcIiwgXCJibFwiLCBcImJyXCIsIFwic2hha2VcIiwgXCJzaGFrZTJcIiwgXCJzaGFrZTNcIiwgXCJmbGFwXCJdO1xyXG4gICAgdGhpcy5vdmVycmlkZXMgPSBbXCJ0d2l0Y2hcIiwgXCJidHR2XCIsIFwiZmZ6XCJdO1xyXG5cclxuICAgIGNvbnN0IGVtb3RlSW5mbyA9IHtcclxuICAgICAgICBUd2l0Y2hHbG9iYWw6IHtcclxuICAgICAgICAgICAgdXJsOiBgaHR0cHM6Ly9yYXVlbnppLmdpdGh1Yi5pby9CZXR0ZXJEaXNjb3JkQXBwL2RhdGEvZW1vdGVkYXRhX3R3aXRjaF9nbG9iYWwuanNvbmAsXHJcbiAgICAgICAgICAgIHZhcmlhYmxlOiBcIlR3aXRjaEdsb2JhbFwiLFxyXG4gICAgICAgICAgICBvbGRWYXJpYWJsZTogXCJlbW90ZXNUd2l0Y2hcIixcclxuICAgICAgICAgICAgZ2V0RW1vdGVVUkw6IChlKSA9PiBgaHR0cHM6Ly9zdGF0aWMtY2RuLmp0dm53Lm5ldC9lbW90aWNvbnMvdjEvJHtlfS8xLjBgXHJcbiAgICAgICAgfSxcclxuICAgICAgICBUd2l0Y2hTdWJzY3JpYmVyOiB7XHJcbiAgICAgICAgICAgIHVybDogYGh0dHBzOi8vcmF1ZW56aS5naXRodWIuaW8vQmV0dGVyRGlzY29yZEFwcC9kYXRhL2Vtb3RlZGF0YV90d2l0Y2hfc3Vic2NyaWJlci5qc29uYCxcclxuICAgICAgICAgICAgdmFyaWFibGU6IFwiVHdpdGNoU3Vic2NyaWJlclwiLFxyXG4gICAgICAgICAgICBvbGRWYXJpYWJsZTogXCJzdWJFbW90ZXNUd2l0Y2hcIixcclxuICAgICAgICAgICAgZ2V0RW1vdGVVUkw6IChlKSA9PiBgaHR0cHM6Ly9zdGF0aWMtY2RuLmp0dm53Lm5ldC9lbW90aWNvbnMvdjEvJHtlfS8xLjBgXHJcbiAgICAgICAgfSxcclxuICAgICAgICBGcmFua2VyRmFjZVo6IHtcclxuICAgICAgICAgICAgdXJsOiBgaHR0cHM6Ly9yYXVlbnppLmdpdGh1Yi5pby9CZXR0ZXJEaXNjb3JkQXBwL2RhdGEvZW1vdGVkYXRhX2Zmei5qc29uYCxcclxuICAgICAgICAgICAgdmFyaWFibGU6IFwiRnJhbmtlckZhY2VaXCIsXHJcbiAgICAgICAgICAgIG9sZFZhcmlhYmxlOiBcImVtb3Rlc0ZmelwiLFxyXG4gICAgICAgICAgICBnZXRFbW90ZVVSTDogKGUpID0+IGBodHRwczovL2Nkbi5mcmFua2VyZmFjZXouY29tL2Vtb3RpY29uLyR7ZX0vMWBcclxuICAgICAgICB9LFxyXG4gICAgICAgIEJUVFY6IHtcclxuICAgICAgICAgICAgdXJsOiBgaHR0cHM6Ly9yYXVlbnppLmdpdGh1Yi5pby9CZXR0ZXJEaXNjb3JkQXBwL2RhdGEvZW1vdGVkYXRhX2J0dHYuanNvbmAsXHJcbiAgICAgICAgICAgIHZhcmlhYmxlOiBcIkJUVFZcIixcclxuICAgICAgICAgICAgb2xkVmFyaWFibGU6IFwiZW1vdGVzQlRUVlwiLFxyXG4gICAgICAgICAgICBnZXRFbW90ZVVSTDogKGUpID0+IGBodHRwczovL2Nkbi5iZXR0ZXJ0dHYubmV0L2Vtb3RlLyR7ZX0vMXhgXHJcbiAgICAgICAgfSxcclxuICAgICAgICBCVFRWMjoge1xyXG4gICAgICAgICAgICB1cmw6IGBodHRwczovL3JhdWVuemkuZ2l0aHViLmlvL0JldHRlckRpc2NvcmRBcHAvZGF0YS9lbW90ZWRhdGFfYnR0djIuanNvbmAsXHJcbiAgICAgICAgICAgIHZhcmlhYmxlOiBcIkJUVFYyXCIsXHJcbiAgICAgICAgICAgIG9sZFZhcmlhYmxlOiBcImVtb3Rlc0JUVFYyXCIsXHJcbiAgICAgICAgICAgIGdldEVtb3RlVVJMOiAoZSkgPT4gYGh0dHBzOi8vY2RuLmJldHRlcnR0di5uZXQvZW1vdGUvJHtlfS8xeGBcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGF3YWl0IHRoaXMuZ2V0QmxhY2tsaXN0KCk7XHJcbiAgICBhd2FpdCB0aGlzLmxvYWRFbW90ZURhdGEoZW1vdGVJbmZvKTtcclxuXHJcbiAgICB3aGlsZSAoIUJEVjIuTWVzc2FnZUNvbXBvbmVudCkgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwMCkpO1xyXG5cclxuICAgIGlmICh0aGlzLmNhbmNlbEVtb3RlUmVuZGVyKSByZXR1cm47XHJcbiAgICB0aGlzLmNhbmNlbEVtb3RlUmVuZGVyID0gVXRpbHMubW9ua2V5UGF0Y2goQkRWMi5NZXNzYWdlQ29tcG9uZW50LCBcImRlZmF1bHRcIiwge2JlZm9yZTogKHttZXRob2RBcmd1bWVudHN9KSA9PiB7XHJcbiAgICAgICAgY29uc3Qgbm9kZXMgPSBtZXRob2RBcmd1bWVudHNbMF0uY2hpbGRyZW5NZXNzYWdlQ29udGVudC5wcm9wcy5jb250ZW50O1xyXG4gICAgICAgIGlmICghbm9kZXMgfHwgIW5vZGVzLmxlbmd0aCkgcmV0dXJuO1xyXG4gICAgICAgIGZvciAobGV0IG4gPSAwOyBuIDwgbm9kZXMubGVuZ3RoOyBuKyspIHtcclxuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IG5vZGVzW25dO1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mKG5vZGUpICE9PSBcInN0cmluZ1wiKSBjb250aW51ZTtcclxuICAgICAgICAgICAgY29uc3Qgd29yZHMgPSBub2RlLnNwbGl0KC8oW15cXHNdKykoW1xcc118JCkvZyk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGMgPSAwLCBjbGVuID0gdGhpcy5jYXRlZ29yaWVzLmxlbmd0aDsgYyA8IGNsZW47IGMrKykge1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgdyA9IDAsIHdsZW4gPSB3b3Jkcy5sZW5ndGg7IHcgPCB3bGVuOyB3KyspIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbW90ZSA9IHdvcmRzW3ddO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVtb3RlU3BsaXQgPSBlbW90ZS5zcGxpdChcIjpcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW1vdGVOYW1lID0gZW1vdGVTcGxpdFswXTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZW1vdGVNb2RpZmllciA9IGVtb3RlU3BsaXRbMV0gPyBlbW90ZVNwbGl0WzFdIDogXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZW1vdGVPdmVycmlkZSA9IGVtb3RlTW9kaWZpZXIuc2xpY2UoMCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlbW90ZU5hbWUubGVuZ3RoIDwgNCB8fCBiZW1vdGVzLmluY2x1ZGVzKGVtb3RlTmFtZSkpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5tb2RpZmllcnMuaW5jbHVkZXMoZW1vdGVNb2RpZmllcikgfHwgIXNldHRpbmdzQ29va2llW1wiYmRhLWVzLThcIl0pIGVtb3RlTW9kaWZpZXIgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5vdmVycmlkZXMuaW5jbHVkZXMoZW1vdGVPdmVycmlkZSkpIGVtb3RlT3ZlcnJpZGUgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgZW1vdGVNb2RpZmllciA9IGVtb3RlT3ZlcnJpZGU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGxldCBjdXJyZW50ID0gdGhpcy5jYXRlZ29yaWVzW2NdO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlbW90ZU92ZXJyaWRlID09PSBcInR3aXRjaFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiZEVtb3Rlcy5Ud2l0Y2hHbG9iYWxbZW1vdGVOYW1lXSkgY3VycmVudCA9IFwiVHdpdGNoR2xvYmFsXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGJkRW1vdGVzLlR3aXRjaFN1YnNjcmliZXJbZW1vdGVOYW1lXSkgY3VycmVudCA9IFwiVHdpdGNoU3Vic2NyaWJlclwiO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChlbW90ZU92ZXJyaWRlID09PSBcImJ0dHZcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmRFbW90ZXMuQlRUVltlbW90ZU5hbWVdKSBjdXJyZW50ID0gXCJCVFRWXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGJkRW1vdGVzLkJUVFYyW2Vtb3RlTmFtZV0pIGN1cnJlbnQgPSBcIkJUVFYyXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGVtb3RlT3ZlcnJpZGUgPT09IFwiZmZ6XCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJkRW1vdGVzLkZyYW5rZXJGYWNlWltlbW90ZU5hbWVdKSBjdXJyZW50ID0gXCJGcmFua2VyRmFjZVpcIjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghYmRFbW90ZXNbY3VycmVudF1bZW1vdGVOYW1lXSB8fCAhc2V0dGluZ3NDb29raWVbYmRFbW90ZVNldHRpbmdJRHNbY3VycmVudF1dKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHRzID0gbm9kZXNbbl0ubWF0Y2gobmV3IFJlZ0V4cChgKFtcXFxcc118Xikke1V0aWxzLmVzY2FwZShlbW90ZU1vZGlmaWVyID8gZW1vdGVOYW1lICsgXCI6XCIgKyBlbW90ZU1vZGlmaWVyIDogZW1vdGVOYW1lKX0oW1xcXFxzXXwkKWApKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdHMpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZSA9IG5vZGVzW25dLnN1YnN0cmluZygwLCByZXN1bHRzLmluZGV4ICsgcmVzdWx0c1sxXS5sZW5ndGgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvc3QgPSBub2Rlc1tuXS5zdWJzdHJpbmcocmVzdWx0cy5pbmRleCArIHJlc3VsdHNbMF0ubGVuZ3RoIC0gcmVzdWx0c1syXS5sZW5ndGgpO1xyXG4gICAgICAgICAgICAgICAgICAgIG5vZGVzW25dID0gcHJlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVtb3RlQ29tcG9uZW50ID0gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KEJERW1vdGUsIHtuYW1lOiBlbW90ZU5hbWUsIHVybDogYmRFbW90ZXNbY3VycmVudF1bZW1vdGVOYW1lXSwgbW9kaWZpZXI6IGVtb3RlTW9kaWZpZXJ9KTtcclxuICAgICAgICAgICAgICAgICAgICBub2Rlcy5zcGxpY2UobiArIDEsIDAsIHBvc3QpO1xyXG4gICAgICAgICAgICAgICAgICAgIG5vZGVzLnNwbGljZShuICsgMSwgMCwgZW1vdGVDb21wb25lbnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IG9ubHlFbW90ZXMgPSBub2Rlcy5ldmVyeShyID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZihyKSA9PSBcInN0cmluZ1wiICYmIHIucmVwbGFjZSgvXFxzKi8sIFwiXCIpID09IFwiXCIpIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICBlbHNlIGlmIChyLnR5cGUgJiYgci50eXBlLm5hbWUgPT0gXCJCREVtb3RlXCIpIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICBlbHNlIGlmIChyLnByb3BzICYmIHIucHJvcHMuY2hpbGRyZW4gJiYgci5wcm9wcy5jaGlsZHJlbi5wcm9wcyAmJiByLnByb3BzLmNoaWxkcmVuLnByb3BzLmVtb2ppTmFtZSkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoIW9ubHlFbW90ZXMpIHJldHVybjtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Yobm9kZSkgIT0gXCJvYmplY3RcIikgY29udGludWU7XHJcbiAgICAgICAgICAgIGlmIChub2RlLnR5cGUubmFtZSA9PSBcIkJERW1vdGVcIikgbm9kZS5wcm9wcy5qdW1ib2FibGUgPSB0cnVlO1xyXG4gICAgICAgICAgICBlbHNlIGlmIChub2RlLnByb3BzICYmIG5vZGUucHJvcHMuY2hpbGRyZW4gJiYgbm9kZS5wcm9wcy5jaGlsZHJlbi5wcm9wcyAmJiBub2RlLnByb3BzLmNoaWxkcmVuLnByb3BzLmVtb2ppTmFtZSkgbm9kZS5wcm9wcy5jaGlsZHJlbi5wcm9wcy5qdW1ib2FibGUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH19KTtcclxufTtcclxuXHJcbkVtb3RlTW9kdWxlLnByb3RvdHlwZS5kaXNhYmxlID0gZnVuY3Rpb24oKSB7XHJcbiAgICB0aGlzLmRpc2FibGVBdXRvQ2FwaXRhbGl6ZSgpO1xyXG4gICAgaWYgKHRoaXMuY2FuY2VsRW1vdGVSZW5kZXIpIHJldHVybjtcclxuICAgIHRoaXMuY2FuY2VsRW1vdGVSZW5kZXIoKTtcclxuICAgIHRoaXMuY2FuY2VsRW1vdGVSZW5kZXIgPSBudWxsO1xyXG59O1xyXG5cclxuRW1vdGVNb2R1bGUucHJvdG90eXBlLmNsZWFyRW1vdGVEYXRhID0gYXN5bmMgZnVuY3Rpb24oKSB7XHJcbiAgICBjb25zdCBfZnMgPSByZXF1aXJlKFwiZnNcIik7XHJcbiAgICBjb25zdCBlbW90ZUZpbGUgPSBcImVtb3RlX2RhdGEuanNvblwiO1xyXG4gICAgY29uc3QgZmlsZSA9IGJkQ29uZmlnLmRhdGFQYXRoICsgZW1vdGVGaWxlO1xyXG4gICAgY29uc3QgZXhpc3RzID0gX2ZzLmV4aXN0c1N5bmMoZmlsZSk7XHJcbiAgICBpZiAoZXhpc3RzKSBfZnMudW5saW5rU3luYyhmaWxlKTtcclxuICAgIERhdGFTdG9yZS5zZXRCRERhdGEoXCJlbW90ZUNhY2hlRGF0ZVwiLCAobmV3IERhdGUoKSkudG9KU09OKCkpO1xyXG5cclxuICAgIE9iamVjdC5hc3NpZ24oYmRFbW90ZXMsIHtcclxuICAgICAgICBUd2l0Y2hHbG9iYWw6IHt9LFxyXG4gICAgICAgIFR3aXRjaFN1YnNjcmliZXI6IHt9LFxyXG4gICAgICAgIEJUVFY6IHt9LFxyXG4gICAgICAgIEZyYW5rZXJGYWNlWjoge30sXHJcbiAgICAgICAgQlRUVjI6IHt9XHJcbiAgICB9KTtcclxufTtcclxuXHJcbkVtb3RlTW9kdWxlLnByb3RvdHlwZS5pc0NhY2hlVmFsaWQgPSBmdW5jdGlvbigpIHtcclxuICAgIGNvbnN0IGNhY2hlTGVuZ3RoID0gRGF0YVN0b3JlLmdldEJERGF0YShcImVtb3RlQ2FjaGVEYXlzXCIpIHx8IERhdGFTdG9yZS5zZXRCRERhdGEoXCJlbW90ZUNhY2hlRGF5c1wiLCA3KSB8fCA3O1xyXG4gICAgY29uc3QgY2FjaGVEYXRlID0gbmV3IERhdGUoRGF0YVN0b3JlLmdldEJERGF0YShcImVtb3RlQ2FjaGVEYXRlXCIpIHx8IG51bGwpO1xyXG4gICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgZGF5c0JldHdlZW4gPSBNYXRoLnJvdW5kKE1hdGguYWJzKChjdXJyZW50RGF0ZS5nZXRUaW1lKCkgLSBjYWNoZURhdGUuZ2V0VGltZSgpKSAvICgyNCAqIDYwICogNjAgKiAxMDAwKSkpO1xyXG4gICAgaWYgKGRheXNCZXR3ZWVuID4gY2FjaGVMZW5ndGgpIHtcclxuICAgICAgICBEYXRhU3RvcmUuc2V0QkREYXRhKFwiZW1vdGVDYWNoZURhdGVcIiwgY3VycmVudERhdGUudG9KU09OKCkpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG59O1xyXG5cclxuRW1vdGVNb2R1bGUucHJvdG90eXBlLmxvYWRFbW90ZURhdGEgPSBhc3luYyBmdW5jdGlvbihlbW90ZUluZm8pIHtcclxuICAgIGNvbnN0IGZzID0gcmVxdWlyZShcImZzXCIpO1xyXG4gICAgY29uc3QgZW1vdGVGaWxlID0gXCJlbW90ZV9kYXRhLmpzb25cIjtcclxuICAgIGNvbnN0IGZpbGUgPSBiZENvbmZpZy5kYXRhUGF0aCArIGVtb3RlRmlsZTtcclxuICAgIGNvbnN0IGV4aXN0cyA9IGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gZnMuZXhpc3RzKGZpbGUsIHIpKTtcclxuXHJcbiAgICBpZiAoZXhpc3RzICYmIHRoaXMuaXNDYWNoZVZhbGlkKCkpIHtcclxuICAgICAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTJcIl0pIFV0aWxzLnNob3dUb2FzdChcIkxvYWRpbmcgZW1vdGVzIGZyb20gY2FjaGUuXCIsIHt0eXBlOiBcImluZm9cIn0pO1xyXG4gICAgICAgIFV0aWxzLmxvZyhcIkVtb3Rlc1wiLCBcIkxvYWRpbmcgZW1vdGVzIGZyb20gbG9jYWwgY2FjaGUuXCIpO1xyXG5cclxuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIGZzLnJlYWRGaWxlKGZpbGUsIFwidXRmOFwiLCAoZXJyLCBkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBVdGlscy5sb2coXCJFbW90ZXNcIiwgXCJFbW90ZSBmaWxlIHJlYWQuXCIpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikgZGF0YSA9IHt9O1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShkYXRhKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IFV0aWxzLnRlc3RKU09OKGRhdGEpO1xyXG4gICAgICAgIGxldCBpc1ZhbGlkID0gISFwYXJzZWQ7XHJcbiAgICAgICAgaWYgKGlzVmFsaWQpIE9iamVjdC5hc3NpZ24oYmRFbW90ZXMsIHBhcnNlZCk7XHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgZSBpbiBlbW90ZUluZm8pIHtcclxuICAgICAgICAgICAgaXNWYWxpZCA9IE9iamVjdC5rZXlzKGJkRW1vdGVzW2Vtb3RlSW5mb1tlXS52YXJpYWJsZV0pLmxlbmd0aCA+IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaXNWYWxpZCkge1xyXG4gICAgICAgICAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTJcIl0pIFV0aWxzLnNob3dUb2FzdChcIkVtb3RlcyBzdWNjZXNzZnVsbHkgbG9hZGVkLlwiLCB7dHlwZTogXCJzdWNjZXNzXCJ9KTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgVXRpbHMubG9nKFwiRW1vdGVzXCIsIFwiQ2FjaGUgd2FzIGNvcnJ1cHQsIGRvd25sb2FkaW5nLi4uXCIpO1xyXG4gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gZnMudW5saW5rKGZpbGUsIHIpKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXNldHRpbmdzQ29va2llW1wiZm9yay1lcy0zXCJdKSByZXR1cm47XHJcbiAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTJcIl0pIFV0aWxzLnNob3dUb2FzdChcIkRvd25sb2FkaW5nIGVtb3RlcyBpbiB0aGUgYmFja2dyb3VuZCBkbyBub3QgcmVsb2FkLlwiLCB7dHlwZTogXCJpbmZvXCJ9KTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGUgaW4gZW1vdGVJbmZvKSB7XHJcbiAgICAgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIDEwMDApKTtcclxuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5kb3dubG9hZEVtb3RlcyhlbW90ZUluZm9bZV0pO1xyXG4gICAgICAgIGJkRW1vdGVzW2Vtb3RlSW5mb1tlXS52YXJpYWJsZV0gPSBkYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzZXR0aW5nc0Nvb2tpZVtcImZvcmstcHMtMlwiXSkgVXRpbHMuc2hvd1RvYXN0KFwiQWxsIGVtb3RlcyBzdWNjZXNzZnVsbHkgZG93bmxvYWRlZC5cIiwge3R5cGU6IFwic3VjY2Vzc1wifSk7XHJcblxyXG4gICAgdHJ5IHsgYXdhaXQgbmV3IFByb21pc2UociA9PiBmcy53cml0ZUZpbGUoZmlsZSwgSlNPTi5zdHJpbmdpZnkoYmRFbW90ZXMpLCBcInV0ZjhcIiwgcikpOyB9XHJcbiAgICBjYXRjaCAoZXJyKSB7IFV0aWxzLmVycihcIkVtb3Rlc1wiLCBcIkNvdWxkIG5vdCBzYXZlIGVtb3RlIGRhdGEuXCIsIGVycik7IH1cclxufTtcclxuXHJcbkVtb3RlTW9kdWxlLnByb3RvdHlwZS5kb3dubG9hZEVtb3RlcyA9IGZ1bmN0aW9uKGVtb3RlTWV0YSkge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHJlcXVpcmUoXCJyZXF1ZXN0XCIpO1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgICAgICB1cmw6IGVtb3RlTWV0YS51cmwsXHJcbiAgICAgICAgdGltZW91dDogZW1vdGVNZXRhLnRpbWVvdXQgPyBlbW90ZU1ldGEudGltZW91dCA6IDUwMDAsXHJcbiAgICAgICAganNvbjogdHJ1ZVxyXG4gICAgfTtcclxuXHJcbiAgICBVdGlscy5sb2coXCJFbW90ZXNcIiwgYERvd25sb2FkaW5nOiAke2Vtb3RlTWV0YS52YXJpYWJsZX0gKCR7ZW1vdGVNZXRhLnVybH0pYCk7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICByZXF1ZXN0KG9wdGlvbnMsIChlcnJvciwgcmVzcG9uc2UsIHBhcnNlZERhdGEpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICBVdGlscy5lcnIoXCJFbW90ZXNcIiwgXCJDb3VsZCBub3QgZG93bmxvYWQgXCIgKyBlbW90ZU1ldGEudmFyaWFibGUsIGVycm9yKTtcclxuICAgICAgICAgICAgICAgIGlmIChlbW90ZU1ldGEuYmFja3VwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZW1vdGVNZXRhLnVybCA9IGVtb3RlTWV0YS5iYWNrdXA7XHJcbiAgICAgICAgICAgICAgICAgICAgZW1vdGVNZXRhLmJhY2t1cCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVtb3RlTWV0YS5iYWNrdXBQYXJzZXIpIGVtb3RlTWV0YS5wYXJzZXIgPSBlbW90ZU1ldGEuYmFja3VwUGFyc2VyO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlKHRoaXMuZG93bmxvYWRFbW90ZXMoZW1vdGVNZXRhKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVqZWN0KHt9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHR5cGVvZihlbW90ZU1ldGEucGFyc2VyKSA9PT0gXCJmdW5jdGlvblwiKSBwYXJzZWREYXRhID0gZW1vdGVNZXRhLnBhcnNlcihwYXJzZWREYXRhKTtcclxuXHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgZW1vdGUgaW4gcGFyc2VkRGF0YSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVtb3RlLmxlbmd0aCA8IDQgfHwgYmVtb3Rlcy5pbmNsdWRlcyhlbW90ZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBkZWxldGUgcGFyc2VkRGF0YVtlbW90ZV07XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBwYXJzZWREYXRhW2Vtb3RlXSA9IGVtb3RlTWV0YS5nZXRFbW90ZVVSTChwYXJzZWREYXRhW2Vtb3RlXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmVzb2x2ZShwYXJzZWREYXRhKTtcclxuICAgICAgICAgICAgVXRpbHMubG9nKFwiRW1vdGVzXCIsIFwiRG93bmxvYWRlZDogXCIgKyBlbW90ZU1ldGEudmFyaWFibGUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbn07XHJcblxyXG5FbW90ZU1vZHVsZS5wcm90b3R5cGUuZ2V0QmxhY2tsaXN0ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG4gICAgICAgICQuZ2V0SlNPTihgaHR0cHM6Ly9yYXVlbnppLmdpdGh1Yi5pby9CZXR0ZXJEaXNjb3JkQXBwL2RhdGEvZW1vdGVmaWx0ZXIuanNvbmAsIGZ1bmN0aW9uIChkYXRhKSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUoYmVtb3Rlcy5jb25jYXQoZGF0YS5ibGFja2xpc3QpKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG59O1xyXG5cclxuRW1vdGVNb2R1bGUucHJvdG90eXBlLmF1dG9DYXBpdGFsaXplID0gZnVuY3Rpb24gKCkge1xyXG4gICAgaWYgKCFzZXR0aW5nc0Nvb2tpZVtcImJkYS1lcy00XCJdIHx8IHRoaXMuYXV0b0NhcGl0YWxpemVBY3RpdmUpIHJldHVybjtcclxuICAgICQoXCJib2R5XCIpLm9uKFwia2V5dXAuYmRhYyBjaGFuZ2UuYmRhYyBwYXN0ZS5iZGFjXCIsICQoXCIuY2hhbm5lbFRleHRBcmVhLXJOc0loRyB0ZXh0YXJlYTpmaXJzdFwiKSwgKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHRleHQgPSAkKFwiLmNoYW5uZWxUZXh0QXJlYS1yTnNJaEcgdGV4dGFyZWE6Zmlyc3RcIikudmFsKCk7XHJcbiAgICAgICAgaWYgKHRleHQgPT0gdW5kZWZpbmVkKSByZXR1cm47XHJcblxyXG4gICAgICAgIGNvbnN0IGxhc3RXb3JkID0gdGV4dC5zcGxpdChcIiBcIikucG9wKCk7XHJcbiAgICAgICAgaWYgKGxhc3RXb3JkLmxlbmd0aCA+IDMpIHtcclxuICAgICAgICAgICAgaWYgKGxhc3RXb3JkID09IFwiZGFuU2dhbWVcIikgcmV0dXJuO1xyXG4gICAgICAgICAgICBjb25zdCByZXQgPSB0aGlzLmNhcGl0YWxpemUobGFzdFdvcmQudG9Mb3dlckNhc2UoKSk7XHJcbiAgICAgICAgICAgIGlmIChyZXQgIT09IG51bGwgJiYgcmV0ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIFV0aWxzLmluc2VydFRleHQoVXRpbHMuZ2V0VGV4dEFyZWEoKVswXSwgdGV4dC5yZXBsYWNlKGxhc3RXb3JkLCByZXQpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5hdXRvQ2FwaXRhbGl6ZUFjdGl2ZSA9IHRydWU7XHJcbn07XHJcblxyXG5FbW90ZU1vZHVsZS5wcm90b3R5cGUuY2FwaXRhbGl6ZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xyXG4gICAgY29uc3QgcmVzID0gYmRFbW90ZXMuVHdpdGNoR2xvYmFsO1xyXG4gICAgZm9yIChjb25zdCBwIGluIHJlcykge1xyXG4gICAgICAgIGlmIChyZXMuaGFzT3duUHJvcGVydHkocCkgJiYgdmFsdWUgPT0gKHAgKyBcIlwiKS50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufTtcclxuXHJcbkVtb3RlTW9kdWxlLnByb3RvdHlwZS5kaXNhYmxlQXV0b0NhcGl0YWxpemUgPSBmdW5jdGlvbigpIHtcclxuICAgIHRoaXMuYXV0b0NhcGl0YWxpemVBY3RpdmUgPSBmYWxzZTtcclxuICAgICQoXCJib2R5XCIpLm9mZihcIi5iZGFjXCIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IEVtb3RlTW9kdWxlKCk7Il0sInNvdXJjZVJvb3QiOiIifQ==\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// Core\n// EmoteModule\n// bemotes\n// QuickEmoteMenu\n// Utils\n// VoiceMode\n// ContentManager\n// pluginCookie\n// PluginModule\n// themeCookie\n// ThemeModule\n// betterDiscordIPC\n// devMode\n// ClassNormalizer\n// BDV2\n// localStorage\n// bdStorage\n// bdPluginStorage\n// emotesFfz\n// emotesBTTV\n// emotesBTTV2\n// emotesTwitch\n// subEmotesTwitch\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2luZGV4LmpzP2I2MzUiXSwibmFtZXMiOlsibG9jYWxTdG9yYWdlRml4IiwibG9hZGluZ0ljb24iLCJ3aW5kb3ciLCJCZEFwaSIsIkNvcmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0FBLGdFQUFlO0FBQ2ZDLDREQUFXO0FBRVg7QUFDQTtBQUVBQyxNQUFNLENBQUNDLEtBQVAsR0FBZUEsOENBQWYsQyxDQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFZUMsNEdBQWYsRSxDQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQSIsImZpbGUiOiIuL3NyYy9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2NhbFN0b3JhZ2VGaXggZnJvbSBcIi4vbG9jYWxTdG9yYWdlRml4XCI7XHJcbmltcG9ydCBsb2FkaW5nSWNvbiBmcm9tIFwiLi9sb2FkaW5nSWNvblwiO1xyXG5sb2NhbFN0b3JhZ2VGaXgoKTtcclxubG9hZGluZ0ljb24oKTtcclxuXHJcbmltcG9ydCBDb3JlIGZyb20gXCIuL2NvcmVcIjtcclxuaW1wb3J0IEJkQXBpIGZyb20gXCIuL2JkQXBpXCI7XHJcblxyXG53aW5kb3cuQmRBcGkgPSBCZEFwaTtcclxuLy8gRGF0YVN0b3JlXHJcbi8vIEJERXZlbnRzXHJcbi8vIHNldHRpbmdzUGFuZWxcclxuLy8gZW1vdGVNb2R1bGVcclxuLy8gcXVpY2tFbW90ZU1lbnVcclxuLy8gdm9pY2VNb2RlXHJcbi8vIHBsdWdpbk1vZHVsZVxyXG4vLyB0aGVtZU1vZHVsZVxyXG4vLyBkTW9kZVxyXG4vLyBwdWJsaWNTZXJ2ZXJzTW9kdWxlXHJcbi8vIG1pblN1cHBvcnRlZFZlcnNpb25cclxuLy8gYmJkVmVyc2lvblxyXG4vLyBiYmRDaGFuZ2Vsb2dcclxuLy8gbWFpbkNvcmVcclxuLy8gc2V0dGluZ3NcclxuLy8gZGVmYXVsdENvb2tpZVxyXG4vLyBzZXR0aW5nc0Nvb2tpZVxyXG4vLyBiZHBsdWdpbkVycm9yc1xyXG4vLyBiZHRoZW1lRXJyb3JzXHJcbi8vIGJkQ29uZmlnXHJcbi8vIENvcmVcclxuLy8gRW1vdGVNb2R1bGVcclxuLy8gYmVtb3Rlc1xyXG4vLyBRdWlja0Vtb3RlTWVudVxyXG4vLyBVdGlsc1xyXG4vLyBWb2ljZU1vZGVcclxuLy8gQ29udGVudE1hbmFnZXJcclxuLy8gcGx1Z2luQ29va2llXHJcbi8vIFBsdWdpbk1vZHVsZVxyXG4vLyB0aGVtZUNvb2tpZVxyXG4vLyBUaGVtZU1vZHVsZVxyXG5cclxuLy8gYmV0dGVyRGlzY29yZElQQ1xyXG4vLyBkZXZNb2RlXHJcbi8vIENsYXNzTm9ybWFsaXplclxyXG4vLyBCRFYyXHJcbi8vIGxvY2FsU3RvcmFnZVxyXG4vLyBiZFN0b3JhZ2VcclxuLy8gYmRQbHVnaW5TdG9yYWdlXHJcbi8vIGVtb3Rlc0ZmelxyXG4vLyBlbW90ZXNCVFRWXHJcbi8vIGVtb3Rlc0JUVFYyXHJcbi8vIGVtb3Rlc1R3aXRjaFxyXG4vLyBzdWJFbW90ZXNUd2l0Y2hcclxuLy8gYmRFbW90ZXNcclxuLy8gYmRFbW90ZVNldHRpbmdJRHNcclxuLy8gYmR0aGVtZXNcclxuLy8gYmRwbHVnaW5zXHJcbi8vIGVtb3RlUHJvbWlzZVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgQ29yZTtcclxuXHJcbi8vIGZ1bmN0aW9uIHBhdGNoTW9kdWxlTG9hZCgpIHtcclxuLy8gICAgIGNvbnN0IG5hbWVzcGFjZSA9IFwiYmV0dGVyZGlzY29yZFwiO1xyXG4vLyAgICAgY29uc3QgcHJlZml4ID0gYCR7bmFtZXNwYWNlfS9gO1xyXG4vLyAgICAgY29uc3QgTW9kdWxlID0gcmVxdWlyZShcIm1vZHVsZVwiKTtcclxuLy8gICAgIGNvbnN0IGxvYWQgPSBNb2R1bGUuX2xvYWQ7XHJcbi8vICAgICAvLyBjb25zdCByZXNvbHZlRmlsZW5hbWUgPSBNb2R1bGUuX3Jlc29sdmVGaWxlbmFtZTtcclxuXHJcbi8vICAgICBNb2R1bGUuX2xvYWQgPSBmdW5jdGlvbihyZXF1ZXN0KSB7XHJcbi8vICAgICAgICAgaWYgKHJlcXVlc3QgPT09IG5hbWVzcGFjZSB8fCByZXF1ZXN0LnN0YXJ0c1dpdGgocHJlZml4KSkge1xyXG4vLyAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ZWQgPSByZXF1ZXN0LnN1YnN0cihwcmVmaXgubGVuZ3RoKTtcclxuLy8gICAgICAgICAgICAgaWYgKHJlcXVlc3RlZCA9PSBcImFwaVwiKSByZXR1cm4gQmRBcGk7XHJcbi8vICAgICAgICAgfVxyXG5cclxuLy8gICAgICAgICByZXR1cm4gbG9hZC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xyXG4vLyAgICAgfTtcclxuXHJcbi8vICAgICAvLyBNb2R1bGUuX3Jlc29sdmVGaWxlbmFtZSA9IGZ1bmN0aW9uIChyZXF1ZXN0LCBwYXJlbnQsIGlzTWFpbikge1xyXG4vLyAgICAgLy8gICAgIGlmIChyZXF1ZXN0ID09PSBcImJldHRlcmRpc2NvcmRcIiB8fCByZXF1ZXN0LnN0YXJ0c1dpdGgoXCJiZXR0ZXJkaXNjb3JkL1wiKSkge1xyXG4vLyAgICAgLy8gICAgICAgICBjb25zdCBjb250ZW50UGF0aCA9IFBsdWdpbk1hbmFnZXIuZ2V0UGx1Z2luUGF0aEJ5TW9kdWxlKHBhcmVudCk7XHJcbi8vICAgICAvLyAgICAgICAgIGlmIChjb250ZW50UGF0aCkgcmV0dXJuIHJlcXVlc3Q7XHJcbi8vICAgICAvLyAgICAgfVxyXG5cclxuLy8gICAgIC8vICAgICByZXR1cm4gcmVzb2x2ZUZpbGVuYW1lLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbi8vICAgICAvLyB9O1xyXG5cclxuLy8gICAgIHJldHVybiBmdW5jdGlvbigpIHtcclxuLy8gICAgICAgICBNb2R1bGUuX2xvYWQgPSBsb2FkO1xyXG4vLyAgICAgfTtcclxuLy8gfVxyXG5cclxuLy8gcGF0Y2hNb2R1bGVMb2FkKCk7XHJcblxyXG4vLyB2YXIgc2V0dGluZ3NQYW5lbCwgZW1vdGVNb2R1bGUsIHF1aWNrRW1vdGVNZW51LCB2b2ljZU1vZGUsLCBkTW9kZSwgcHVibGljU2VydmVyc01vZHVsZTtcclxuLy8gdmFyIGJkQ29uZmlnID0gbnVsbDsiXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2xvYWRpbmdJY29uLmpzP2M2MWEiXSwibmFtZXMiOlsidjJMb2FkZXIiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJ0aXRsZSIsImJvZHkiLCJhcHBlbmRDaGlsZCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBZSxxRUFBTTtBQUNqQixRQUFNQSxRQUFRLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixLQUF2QixDQUFqQjtBQUNBRixVQUFRLENBQUNHLFNBQVQsR0FBcUIsYUFBckI7QUFDQUgsVUFBUSxDQUFDSSxLQUFULEdBQWlCLDBCQUFqQjtBQUNBSCxVQUFRLENBQUNJLElBQVQsQ0FBY0MsV0FBZCxDQUEwQk4sUUFBMUI7QUFDSCxDQUxEIiwiZmlsZSI6Ii4vc3JjL2xvYWRpbmdJY29uLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgKCkgPT4ge1xyXG4gICAgY29uc3QgdjJMb2FkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gICAgdjJMb2FkZXIuY2xhc3NOYW1lID0gXCJiZC1sb2FkZXJ2MlwiO1xyXG4gICAgdjJMb2FkZXIudGl0bGUgPSBcIkJhbmRhZ2VkQkQgaXMgbG9hZGluZy4uLlwiO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2MkxvYWRlcik7XHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2xvY2FsU3RvcmFnZUZpeC5qcz9kMWE4Il0sIm5hbWVzIjpbIl9fZnMiLCJ3aW5kb3ciLCJyZXF1aXJlIiwiX19wcm9jZXNzIiwiX19wbGF0Zm9ybSIsInBsYXRmb3JtIiwiX19kYXRhUGF0aCIsImVudiIsIkFQUERBVEEiLCJIT01FIiwicHJvY2VzcyIsImxvY2FsU3RvcmFnZUZpbGUiLCJfX2RhdGEiLCJleGlzdHNTeW5jIiwiSlNPTiIsInBhcnNlIiwicmVhZEZpbGVTeW5jIiwiZXJyIiwiY29uc29sZSIsImxvZyIsIl9fbHMiLCJzZXRJdGVtIiwiaSIsInYiLCJzYXZlIiwiZ2V0SXRlbSIsIndyaXRlRmlsZVN5bmMiLCJzdHJpbmdpZnkiLCJfX3Byb3h5IiwiUHJveHkiLCJzZXQiLCJ0YXJnZXQiLCJuYW1lIiwidmFsIiwiZ2V0IiwibG9jYWxTdG9yYWdlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFlLDJFQUFXO0FBRXRCLFFBQU1BLElBQUksR0FBR0MsTUFBTSxDQUFDQyxPQUFQLENBQWUsSUFBZixDQUFiOztBQUNBLFFBQU1DLFNBQVMsR0FBR0YsTUFBTSxDQUFDQyxPQUFQLENBQWUsU0FBZixDQUFsQjs7QUFDQSxRQUFNRSxVQUFVLEdBQUdELFNBQVMsQ0FBQ0UsUUFBN0I7O0FBQ0EsUUFBTUMsVUFBVSxHQUFHLENBQUNGLFVBQVUsS0FBSyxPQUFmLEdBQXlCRCxTQUFTLENBQUNJLEdBQVYsQ0FBY0MsT0FBdkMsR0FBaURKLFVBQVUsS0FBSyxRQUFmLEdBQTBCRCxTQUFTLENBQUNJLEdBQVYsQ0FBY0UsSUFBZCxHQUFxQixzQkFBL0MsR0FBd0VDLE9BQU8sQ0FBQ0gsR0FBUixDQUFZRSxJQUFaLEdBQW1CLFVBQTdJLElBQTJKLGlCQUE5Szs7QUFDQSxRQUFNRSxnQkFBZ0IsR0FBRyxtQkFBekI7QUFFQSxNQUFJQyxNQUFNLEdBQUcsRUFBYjs7QUFDQSxNQUFJWixJQUFJLENBQUNhLFVBQUwsQ0FBaUIsR0FBRVAsVUFBVyxHQUFFSyxnQkFBaUIsRUFBakQsQ0FBSixFQUF5RDtBQUNyRCxRQUFJO0FBQ0FDLFlBQU0sR0FBR0UsSUFBSSxDQUFDQyxLQUFMLENBQVdmLElBQUksQ0FBQ2dCLFlBQUwsQ0FBbUIsR0FBRVYsVUFBVyxHQUFFSyxnQkFBaUIsRUFBbkQsQ0FBWCxDQUFUO0FBQ0gsS0FGRCxDQUdBLE9BQU9NLEdBQVAsRUFBWTtBQUNSQyxhQUFPLENBQUNDLEdBQVIsQ0FBWUYsR0FBWjtBQUNIO0FBQ0osR0FQRCxNQVFLLElBQUlqQixJQUFJLENBQUNhLFVBQUwsQ0FBZ0JGLGdCQUFoQixDQUFKLEVBQXVDO0FBQ3hDLFFBQUk7QUFDQUMsWUFBTSxHQUFHRSxJQUFJLENBQUNDLEtBQUwsQ0FBV2YsSUFBSSxDQUFDZ0IsWUFBTCxDQUFrQkwsZ0JBQWxCLENBQVgsQ0FBVDtBQUNILEtBRkQsQ0FHQSxPQUFPTSxHQUFQLEVBQVk7QUFDUkMsYUFBTyxDQUFDQyxHQUFSLENBQVlGLEdBQVo7QUFDSDtBQUNKOztBQUVELFFBQU1HLElBQUksR0FBR1IsTUFBYjs7QUFDQVEsTUFBSSxDQUFDQyxPQUFMLEdBQWUsVUFBU0MsQ0FBVCxFQUFZQyxDQUFaLEVBQWU7QUFDMUJILFFBQUksQ0FBQ0UsQ0FBRCxDQUFKLEdBQVVDLENBQVY7QUFDQSxTQUFLQyxJQUFMO0FBQ0gsR0FIRDs7QUFJQUosTUFBSSxDQUFDSyxPQUFMLEdBQWUsVUFBU0gsQ0FBVCxFQUFZO0FBQ3ZCLFdBQU9GLElBQUksQ0FBQ0UsQ0FBRCxDQUFKLElBQVcsSUFBbEI7QUFDSCxHQUZEOztBQUdBRixNQUFJLENBQUNJLElBQUwsR0FBWSxZQUFXO0FBQ25CeEIsUUFBSSxDQUFDMEIsYUFBTCxDQUFvQixHQUFFcEIsVUFBVyxHQUFFSyxnQkFBaUIsRUFBcEQsRUFBdURHLElBQUksQ0FBQ2EsU0FBTCxDQUFlLElBQWYsQ0FBdkQsRUFBNkUsSUFBN0UsRUFBbUYsQ0FBbkY7QUFDSCxHQUZEOztBQUlBLFFBQU1DLE9BQU8sR0FBRyxJQUFJQyxLQUFKLENBQVVULElBQVYsRUFBZ0I7QUFDNUJVLE9BQUcsRUFBRSxVQUFTQyxNQUFULEVBQWlCQyxJQUFqQixFQUF1QkMsR0FBdkIsRUFBNEI7QUFDN0JiLFVBQUksQ0FBQ1ksSUFBRCxDQUFKLEdBQWFDLEdBQWI7O0FBQ0FiLFVBQUksQ0FBQ0ksSUFBTDtBQUNILEtBSjJCO0FBSzVCVSxPQUFHLEVBQUUsVUFBU0gsTUFBVCxFQUFpQkMsSUFBakIsRUFBdUI7QUFDeEIsYUFBT1osSUFBSSxDQUFDWSxJQUFELENBQUosSUFBYyxJQUFyQjtBQUNIO0FBUDJCLEdBQWhCLENBQWhCOztBQVVBL0IsUUFBTSxDQUFDa0MsWUFBUCxHQUFzQlAsT0FBdEI7QUFDSCxDIiwiZmlsZSI6Ii4vc3JjL2xvY2FsU3RvcmFnZUZpeC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xyXG5cclxuICAgIGNvbnN0IF9fZnMgPSB3aW5kb3cucmVxdWlyZShcImZzXCIpO1xyXG4gICAgY29uc3QgX19wcm9jZXNzID0gd2luZG93LnJlcXVpcmUoXCJwcm9jZXNzXCIpO1xyXG4gICAgY29uc3QgX19wbGF0Zm9ybSA9IF9fcHJvY2Vzcy5wbGF0Zm9ybTtcclxuICAgIGNvbnN0IF9fZGF0YVBhdGggPSAoX19wbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiID8gX19wcm9jZXNzLmVudi5BUFBEQVRBIDogX19wbGF0Zm9ybSA9PT0gXCJkYXJ3aW5cIiA/IF9fcHJvY2Vzcy5lbnYuSE9NRSArIFwiL0xpYnJhcnkvUHJlZmVyZW5jZXNcIiA6IHByb2Nlc3MuZW52LkhPTUUgKyBcIi8uY29uZmlnXCIpICsgXCIvQmV0dGVyRGlzY29yZC9cIjtcclxuICAgIGNvbnN0IGxvY2FsU3RvcmFnZUZpbGUgPSBcImxvY2FsU3RvcmFnZS5qc29uXCI7XHJcblxyXG4gICAgbGV0IF9fZGF0YSA9IHt9O1xyXG4gICAgaWYgKF9fZnMuZXhpc3RzU3luYyhgJHtfX2RhdGFQYXRofSR7bG9jYWxTdG9yYWdlRmlsZX1gKSkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIF9fZGF0YSA9IEpTT04ucGFyc2UoX19mcy5yZWFkRmlsZVN5bmMoYCR7X19kYXRhUGF0aH0ke2xvY2FsU3RvcmFnZUZpbGV9YCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoX19mcy5leGlzdHNTeW5jKGxvY2FsU3RvcmFnZUZpbGUpKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgX19kYXRhID0gSlNPTi5wYXJzZShfX2ZzLnJlYWRGaWxlU3luYyhsb2NhbFN0b3JhZ2VGaWxlKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgX19scyA9IF9fZGF0YTtcclxuICAgIF9fbHMuc2V0SXRlbSA9IGZ1bmN0aW9uKGksIHYpIHtcclxuICAgICAgICBfX2xzW2ldID0gdjtcclxuICAgICAgICB0aGlzLnNhdmUoKTtcclxuICAgIH07XHJcbiAgICBfX2xzLmdldEl0ZW0gPSBmdW5jdGlvbihpKSB7XHJcbiAgICAgICAgcmV0dXJuIF9fbHNbaV0gfHwgbnVsbDtcclxuICAgIH07XHJcbiAgICBfX2xzLnNhdmUgPSBmdW5jdGlvbigpIHtcclxuICAgICAgICBfX2ZzLndyaXRlRmlsZVN5bmMoYCR7X19kYXRhUGF0aH0ke2xvY2FsU3RvcmFnZUZpbGV9YCwgSlNPTi5zdHJpbmdpZnkodGhpcyksIG51bGwsIDQpO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBfX3Byb3h5ID0gbmV3IFByb3h5KF9fbHMsIHtcclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uKHRhcmdldCwgbmFtZSwgdmFsKSB7XHJcbiAgICAgICAgICAgIF9fbHNbbmFtZV0gPSB2YWw7XHJcbiAgICAgICAgICAgIF9fbHMuc2F2ZSgpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbih0YXJnZXQsIG5hbWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIF9fbHNbbmFtZV0gfHwgbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlID0gX19wcm94eTtcclxufSJdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3BsdWdpbk1vZHVsZS5qcz80MTViIl0sIm5hbWVzIjpbIlBsdWdpbk1vZHVsZSIsInByb3RvdHlwZSIsImxvYWRQbHVnaW5zIiwibG9hZFBsdWdpbkRhdGEiLCJiZHBsdWdpbkVycm9ycyIsImNvbmNhdCIsIkNvbnRlbnRNYW5hZ2VyIiwicGx1Z2lucyIsIk9iamVjdCIsImtleXMiLCJiZHBsdWdpbnMiLCJpIiwibGVuZ3RoIiwicGx1Z2luIiwibmFtZSIsImdldE5hbWUiLCJsb2FkIiwiZXJyIiwicGx1Z2luQ29va2llIiwiVXRpbHMiLCJwdXNoIiwiZmlsZSIsImZpbGVuYW1lIiwibWVzc2FnZSIsImVycm9yIiwic3RhY2siLCJzdGFydCIsInNldHRpbmdzQ29va2llIiwic2hvd1RvYXN0IiwiZ2V0VmVyc2lvbiIsInNhdmVQbHVnaW5EYXRhIiwicmVxdWlyZSIsInJlbW90ZSIsImdldEN1cnJlbnRXZWJDb250ZW50cyIsIm9uIiwiY2hhbm5lbFN3aXRjaCIsImJpbmQiLCJzdGFydFBsdWdpbiIsInJlbG9hZCIsInR5cGUiLCJzdG9wUGx1Z2luIiwic3RvcCIsImVuYWJsZVBsdWdpbiIsImRpc2FibGVQbHVnaW4iLCJ0b2dnbGVQbHVnaW4iLCJsb2FkUGx1Z2luIiwibG9hZENvbnRlbnQiLCJzaG93Q29udGVudEVycm9ycyIsInZhbHVlcyIsImZpbmQiLCJwIiwibG9nIiwiQkRFdmVudHMiLCJkaXNwYXRjaCIsInVubG9hZFBsdWdpbiIsImZpbGVuYW1lT3JOYW1lIiwiYmRwbHVnaW4iLCJ1bmxvYWRDb250ZW50IiwicmVsb2FkUGx1Z2luIiwiZW5hYmxlZCIsInJlbG9hZENvbnRlbnQiLCJ1cGRhdGVQbHVnaW5MaXN0IiwicmVzdWx0cyIsImxvYWROZXdDb250ZW50IiwiYWRkZWQiLCJyZW1vdmVkIiwic2F2ZWQiLCJEYXRhU3RvcmUiLCJnZXRTZXR0aW5nR3JvdXAiLCJhc3NpZ24iLCJzZXRTZXR0aW5nR3JvdXAiLCJuZXdNZXNzYWdlIiwib25NZXNzYWdlIiwib25Td2l0Y2giLCJyYXdPYnNlcnZlciIsImUiLCJvYnNlcnZlciJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxTQUFTQSxZQUFULEdBQXdCLENBRXZCOztBQUVEQSxZQUFZLENBQUNDLFNBQWIsQ0FBdUJDLFdBQXZCLEdBQXFDLFlBQVk7QUFDN0MsT0FBS0MsY0FBTDtBQUNBQywwREFBYyxDQUFDQyxNQUFmLENBQXNCQyx1REFBYyxDQUFDSixXQUFmLEVBQXRCO0FBQ0EsUUFBTUssT0FBTyxHQUFHQyxNQUFNLENBQUNDLElBQVAsQ0FBWUMsbURBQVosQ0FBaEI7O0FBQ0EsT0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHSixPQUFPLENBQUNLLE1BQTVCLEVBQW9DRCxDQUFDLEVBQXJDLEVBQXlDO0FBQ3JDLFFBQUlFLE1BQUosRUFBWUMsSUFBWjs7QUFFQSxRQUFJO0FBQ0FELFlBQU0sR0FBR0gsbURBQVMsQ0FBQ0gsT0FBTyxDQUFDSSxDQUFELENBQVIsQ0FBVCxDQUFzQkUsTUFBL0I7QUFDQUMsVUFBSSxHQUFHRCxNQUFNLENBQUNFLE9BQVAsRUFBUDtBQUNBLFVBQUlGLE1BQU0sQ0FBQ0csSUFBUCxJQUFlLE9BQU9ILE1BQU0sQ0FBQ0csSUFBZCxJQUF1QixVQUExQyxFQUFzREgsTUFBTSxDQUFDRyxJQUFQO0FBQ3pELEtBSkQsQ0FLQSxPQUFPQyxHQUFQLEVBQVk7QUFDUkMsNERBQVksQ0FBQ0osSUFBRCxDQUFaLEdBQXFCLEtBQXJCO0FBQ0FLLG9EQUFLLENBQUNGLEdBQU4sQ0FBVSxTQUFWLEVBQXFCSCxJQUFJLEdBQUcsdUJBQTVCLEVBQXFERyxHQUFyRDtBQUNBYiw4REFBYyxDQUFDZ0IsSUFBZixDQUFvQjtBQUFDTixZQUFJLEVBQUVBLElBQVA7QUFBYU8sWUFBSSxFQUFFWCxtREFBUyxDQUFDSCxPQUFPLENBQUNJLENBQUQs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Q0UsT0FBUCxFQUFELENBQWpCLEVBQXFDOztBQUNyQyxRQUFJLE9BQU9GLE1BQU0sQ0FBQytELFFBQWQsS0FBMkIsVUFBL0IsRUFBMkM7QUFDdkMsVUFBSTtBQUFFL0QsY0FBTSxDQUFDK0QsUUFBUCxDQUFnQkQsQ0FBaEI7QUFBcUIsT0FBM0IsQ0FDQSxPQUFPMUQsR0FBUCxFQUFZO0FBQUVFLHNEQUFLLENBQUNGLEdBQU4sQ0FBVSxTQUFWLEVBQXFCLGlDQUFpQ0osTUFBTSxDQUFDRSxPQUFQLEVBQWpDLEdBQW9ELEdBQXpFLEVBQThFRSxHQUE5RTtBQUFxRjtBQUN0RztBQUNKO0FBQ0osQ0FWRDs7QUFZZSxtRUFBSWpCLFlBQUosRUFBZiIsImZpbGUiOiIuL3NyYy9wbHVnaW5Nb2R1bGUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2JkcGx1Z2luRXJyb3JzLCBwbHVnaW5Db29raWUsIHNldHRpbmdzQ29va2llLCBiZHBsdWdpbnN9IGZyb20gXCIuLzBnbG9iYWxzXCI7XHJcbmltcG9ydCBDb250ZW50TWFuYWdlciBmcm9tIFwiLi9jb250ZW50TWFuYWdlclwiO1xyXG5pbXBvcnQgRGF0YVN0b3JlIGZyb20gXCIuL2RhdGFTdG9yZVwiO1xyXG5pbXBvcnQgQkRFdmVudHMgZnJvbSBcIi4vYmRFdmVudHNcIjtcclxuaW1wb3J0IFV0aWxzIGZyb20gXCIuL3V0aWxzXCI7XHJcblxyXG5mdW5jdGlvbiBQbHVnaW5Nb2R1bGUoKSB7XHJcblxyXG59XHJcblxyXG5QbHVnaW5Nb2R1bGUucHJvdG90eXBlLmxvYWRQbHVnaW5zID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdGhpcy5sb2FkUGx1Z2luRGF0YSgpO1xyXG4gICAgYmRwbHVnaW5FcnJvcnMuY29uY2F0KENvbnRlbnRNYW5hZ2VyLmxvYWRQbHVnaW5zKCkpO1xyXG4gICAgY29uc3QgcGx1Z2lucyA9IE9iamVjdC5rZXlzKGJkcGx1Z2lucyk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBsdWdpbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgcGx1Z2luLCBuYW1lO1xyXG5cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBwbHVnaW4gPSBiZHBsdWdpbnNbcGx1Z2luc1tpXV0ucGx1Z2luO1xyXG4gICAgICAgICAgICBuYW1lID0gcGx1Z2luLmdldE5hbWUoKTtcclxuICAgICAgICAgICAgaWYgKHBsdWdpbi5sb2FkICYmIHR5cGVvZihwbHVnaW4ubG9hZCkgPT0gXCJmdW5jdGlvblwiKSBwbHVnaW4ubG9hZCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgIHBsdWdpbkNvb2tpZVtuYW1lXSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBVdGlscy5lcnIoXCJQbHVnaW5zXCIsIG5hbWUgKyBcIiBjb3VsZCBub3QgYmUgbG9hZGVkLlwiLCBlcnIpO1xyXG4gICAgICAgICAgICBiZHBsdWdpbkVycm9ycy5wdXNoKHtuYW1lOiBuYW1lLCBmaWxlOiBiZHBsdWdpbnNbcGx1Z2luc1tpXV0uZmlsZW5hbWUsIG1lc3NhZ2U6IFwibG9hZCgpIGNvdWxkIG5vdCBiZSBmaXJlZC5cIiwgZXJyb3I6IHttZXNzYWdlOiBlcnIubWVzc2FnZSwgc3RhY2s6IGVyci5zdGFja319KTtcclxuICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXBsdWdpbkNvb2tpZVtuYW1lXSkgcGx1Z2luQ29va2llW25hbWVdID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmIChwbHVnaW5Db29raWVbbmFtZV0pIHtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIHBsdWdpbi5zdGFydCgpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHNldHRpbmdzQ29va2llW1wiZm9yay1wcy0yXCJdKSBVdGlscy5zaG93VG9hc3QoYCR7cGx1Z2luLmdldE5hbWUoKX0gdiR7cGx1Z2luLmdldFZlcnNpb24oKX0gaGFzIHN0YXJ0ZWQuYCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgcGx1Z2luQ29va2llW25hbWVdID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBVdGlscy5lcnIoXCJQbHVnaW5zXCIsIG5hbWUgKyBcIiBjb3VsZCBub3QgYmUgc3RhcnRlZC5cIiwgZXJyKTtcclxuICAgICAgICAgICAgICAgIGJkcGx1Z2luRXJyb3JzLnB1c2goe25hbWU6IG5hbWUsIGZpbGU6IGJkcGx1Z2luc1twbHVnaW5zW2ldXS5maWxlbmFtZSwgbWVzc2FnZTogXCJzdGFydCgpIGNvdWxkIG5vdCBiZSBmaXJlZC5cIiwgZXJyb3I6IHttZXNzYWdlOiBlcnIubWVzc2FnZSwgc3RhY2s6IGVyci5zdGFja319KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuc2F2ZVBsdWdpbkRhdGEoKTtcclxuXHJcbiAgICByZXF1aXJlKFwiZWxlY3Ryb25cIikucmVtb3RlLmdldEN1cnJlbnRXZWJDb250ZW50cygpLm9uKFwiZGlkLW5hdmlnYXRlLWluLXBhZ2VcIiwgdGhpcy5jaGFubmVsU3dpdGNoLmJpbmQodGhpcykpO1xyXG4gICAgLy8gaWYgKHNldHRpbmdzQ29va2llW1wiZm9yay1wcy01XCJdKSBDb250ZW50TWFuYWdlci53YXRjaENvbnRlbnQoXCJwbHVnaW5cIik7XHJcbn07XHJcblxyXG5QbHVnaW5Nb2R1bGUucHJvdG90eXBlLnN0YXJ0UGx1Z2luID0gZnVuY3Rpb24ocGx1Z2luLCByZWxvYWQgPSBmYWxzZSkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgICBiZHBsdWdpbnNbcGx1Z2luXS5wbHVnaW4uc3RhcnQoKTtcclxuICAgICAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTJcIl0gJiYgIXJlbG9hZCkgVXRpbHMuc2hvd1RvYXN0KGAke2JkcGx1Z2luc1twbHVnaW5dLnBsdWdpbi5nZXROYW1lKCl9IHYke2JkcGx1Z2luc1twbHVnaW5dLnBsdWdpbi5nZXRWZXJzaW9uKCl9IGhhcyBzdGFydGVkLmApO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGVycikge1xyXG4gICAgICAgIGlmIChzZXR0aW5nc0Nvb2tpZVtcImZvcmstcHMtMlwiXSAmJiAhcmVsb2FkKSBVdGlscy5zaG93VG9hc3QoYCR7YmRwbHVnaW5zW3BsdWdpbl0ucGx1Z2luLmdldE5hbWUoKX0gdiR7YmRwbHVnaW5zW3BsdWdpbl0ucGx1Z2luLmdldFZlcnNpb24oKX0gY291bGQgbm90IGJlIHN0YXJ0ZWQuYCwge3R5cGU6IFwiZXJyb3JcIn0pO1xyXG4gICAgICAgIHBsdWdpbkNvb2tpZVtwbHVnaW5dID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zYXZlUGx1Z2luRGF0YSgpO1xyXG4gICAgICAgIFV0aWxzLmVycihcIlBsdWdpbnNcIiwgcGx1Z2luICsgXCIgY291bGQgbm90IGJlIHN0YXJ0ZWQuXCIsIGVycik7XHJcbiAgICB9XHJcbn07XHJcblxyXG5QbHVnaW5Nb2R1bGUucHJvdG90eXBlLnN0b3BQbHVnaW4gPSBmdW5jdGlvbihwbHVnaW4sIHJlbG9hZCA9IGZhbHNlKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGJkcGx1Z2luc1twbHVnaW5dLnBsdWdpbi5zdG9wKCk7XHJcbiAgICAgICAgaWYgKHNldHRpbmdzQ29va2llW1wiZm9yay1wcy0yXCJdICYmICFyZWxvYWQpIFV0aWxzLnNob3dUb2FzdChgJHtiZHBsdWdpbnNbcGx1Z2luXS5wbHVnaW4uZ2V0TmFtZSgpfSB2JHtiZHBsdWdpbnNbcGx1Z2luXS5wbHVnaW4uZ2V0VmVyc2lvbigpfSBoYXMgc3RvcHBlZC5gKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnIpIHtcclxuICAgICAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTJcIl0gJiYgIXJlbG9hZCkgVXRpbHMuc2hvd1RvYXN0KGAke2JkcGx1Z2luc1twbHVnaW5dLnBsdWdpbi5nZXROYW1lKCl9IHYke2JkcGx1Z2luc1twbHVnaW5dLnBsdWdpbi5nZXRWZXJzaW9uKCl9IGNvdWxkIG5vdCBiZSBzdG9wcGVkLmAsIHt0eXBlOiBcImVycm9yXCJ9KTtcclxuICAgICAgICBVdGlscy5lcnIoXCJQbHVnaW5zXCIsIGJkcGx1Z2luc1twbHVnaW5dLnBsdWdpbi5nZXROYW1lKCkgKyBcIiBjb3VsZCBub3QgYmUgc3RvcHBlZC5cIiwgZXJyKTtcclxuICAgIH1cclxufTtcclxuXHJcblBsdWdpbk1vZHVsZS5wcm90b3R5cGUuZW5hYmxlUGx1Z2luID0gZnVuY3Rpb24gKHBsdWdpbiwgcmVsb2FkID0gZmFsc2UpIHtcclxuICAgIGlmIChwbHVnaW5Db29raWVbcGx1Z2luXSkgcmV0dXJuO1xyXG4gICAgcGx1Z2luQ29va2llW3BsdWdpbl0gPSB0cnVlO1xyXG4gICAgdGhpcy5zYXZlUGx1Z2luRGF0YSgpO1xyXG4gICAgdGhpcy5zdGFydFBsdWdpbihwbHVnaW4sIHJlbG9hZCk7XHJcbn07XHJcblxyXG5QbHVnaW5Nb2R1bGUucHJvdG90eXBlLmRpc2FibGVQbHVnaW4gPSBmdW5jdGlvbiAocGx1Z2luLCByZWxvYWQgPSBmYWxzZSkge1xyXG4gICAgaWYgKCFwbHVnaW5Db29raWVbcGx1Z2luXSkgcmV0dXJuO1xyXG4gICAgcGx1Z2luQ29va2llW3BsdWdpbl0gPSBmYWxzZTtcclxuICAgIHRoaXMuc2F2ZVBsdWdpbkRhdGEoKTtcclxuICAgIHRoaXMuc3RvcFBsdWdpbihwbHVnaW4sIHJlbG9hZCk7XHJcbn07XHJcblxyXG5QbHVnaW5Nb2R1bGUucHJvdG90eXBlLnRvZ2dsZVBsdWdpbiA9IGZ1bmN0aW9uIChwbHVnaW4pIHtcclxuICAgIGlmIChwbHVnaW5Db29raWVbcGx1Z2luXSkgdGhpcy5kaXNhYmxlUGx1Z2luKHBsdWdpbik7XHJcbiAgICBlbHNlIHRoaXMuZW5hYmxlUGx1Z2luKHBsdWdpbik7XHJcbn07XHJcblxyXG5QbHVnaW5Nb2R1bGUucHJvdG90eXBlLmxvYWRQbHVnaW4gPSBmdW5jdGlvbihmaWxlbmFtZSkge1xyXG4gICAgY29uc3QgZXJyb3IgPSBDb250ZW50TWFuYWdlci5sb2FkQ29udGVudChmaWxlbmFtZSwgXCJwbHVnaW5cIik7XHJcbiAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTFcIl0pIFV0aWxzLnNob3dDb250ZW50RXJyb3JzKHtwbHVnaW5zOiBbZXJyb3JdfSk7XHJcbiAgICAgICAgaWYgKHNldHRpbmdzQ29va2llW1wiZm9yay1wcy0yXCJdKSBVdGlscy5zaG93VG9hc3QoYCR7ZmlsZW5hbWV9IGNvdWxkIG5vdCBiZSBsb2FkZWQuYCwge3R5cGU6IFwiZXJyb3JcIn0pO1xyXG4gICAgICAgIHJldHVybiBVdGlscy5lcnIoXCJDb250ZW50TWFuYWdlclwiLCBgJHtmaWxlbmFtZX0gY291bGQgbm90IGJlIGxvYWRlZC5gLCBlcnJvcik7XHJcbiAgICB9XHJcbiAgICBjb25zdCBwbHVnaW4gPSBPYmplY3QudmFsdWVzKGJkcGx1Z2lucykuZmluZChwID0+IHAuZmlsZW5hbWUgPT0gZmlsZW5hbWUpLnBsdWdpbjtcclxuICAgIHRyeSB7IGlmIChwbHVnaW4ubG9hZCAmJiB0eXBlb2YocGx1Z2luLmxvYWQpID09IFwiZnVuY3Rpb25cIikgcGx1Z2luLmxvYWQoKTt9XHJcbiAgICBjYXRjaCAoZXJyKSB7aWYgKHNldHRpbmdzQ29va2llW1wiZm9yay1wcy0xXCJdKSBVdGlscy5zaG93Q29udGVudEVycm9ycyh7cGx1Z2luczogW2Vycl19KTt9XHJcbiAgICBVdGlscy5sb2coXCJDb250ZW50TWFuYWdlclwiLCBgJHtwbHVnaW4uZ2V0TmFtZSgpfSB2JHtwbHVnaW4uZ2V0VmVyc2lvbigpfSB3YXMgbG9hZGVkLmApO1xyXG4gICAgaWYgKHNldHRpbmdzQ29va2llW1wiZm9yay1wcy0yXCJdKSBVdGlscy5zaG93VG9hc3QoYCR7cGx1Z2luLmdldE5hbWUoKX0gdiR7cGx1Z2luLmdldFZlcnNpb24oKX0gd2FzIGxvYWRlZC5gLCB7dHlwZTogXCJzdWNjZXNzXCJ9KTtcclxuICAgIEJERXZlbnRzLmRpc3BhdGNoKFwicGx1Z2luLWxvYWRlZFwiLCBwbHVnaW4uZ2V0TmFtZSgpKTtcclxufTtcclxuXHJcblBsdWdpbk1vZHVsZS5wcm90b3R5cGUudW5sb2FkUGx1Z2luID0gZnVuY3Rpb24oZmlsZW5hbWVPck5hbWUpIHtcclxuICAgIGNvbnN0IGJkcGx1Z2luID0gT2JqZWN0LnZhbHVlcyhiZHBsdWdpbnMpLmZpbmQocCA9PiBwLmZpbGVuYW1lID09IGZpbGVuYW1lT3JOYW1lKSB8fCBiZHBsdWdpbnNbZmlsZW5hbWVPck5hbWVdO1xyXG4gICAgaWYgKCFiZHBsdWdpbikgcmV0dXJuO1xyXG4gICAgY29uc3QgcGx1Z2luID0gYmRwbHVnaW4ucGx1Z2luLmdldE5hbWUoKTtcclxuICAgIGlmIChwbHVnaW5Db29raWVbcGx1Z2luXSkgdGhpcy5kaXNhYmxlUGx1Z2luKHBsdWdpbiwgdHJ1ZSk7XHJcbiAgICBjb25zdCBlcnJvciA9IENvbnRlbnRNYW5hZ2VyLnVubG9hZENvbnRlbnQoYmRwbHVnaW5zW3BsdWdpbl0uZmlsZW5hbWUsIFwicGx1Z2luXCIpO1xyXG4gICAgZGVsZXRlIGJkcGx1Z2luc1twbHVnaW5dO1xyXG4gICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgaWYgKHNldHRpbmdzQ29va2llW1wiZm9yay1wcy0xXCJdKSBVdGlscy5zaG93Q29udGVudEVycm9ycyh7cGx1Z2luczogW2Vycm9yXX0pO1xyXG4gICAgICAgIGlmIChzZXR0aW5nc0Nvb2tpZVtcImZvcmstcHMtMlwiXSkgVXRpbHMuc2hvd1RvYXN0KGAke3BsdWdpbn0gY291bGQgbm90IGJlIHVubG9hZGVkLiBJdCBtYXkgaGF2ZSBub3QgYmVlbiBsb2FkZWQgeWV0LmAsIHt0eXBlOiBcImVycm9yXCJ9KTtcclxuICAgICAgICByZXR1cm4gVXRpbHMuZXJyKFwiQ29udGVudE1hbmFnZXJcIiwgYCR7cGx1Z2lufSBjb3VsZCBub3QgYmUgdW5sb2FkZWQuIEl0IG1heSBoYXZlIG5vdCBiZWVuIGxvYWRlZCB5ZXQuYCwgZXJyb3IpO1xyXG4gICAgfVxyXG4gICAgVXRpbHMubG9nKFwiQ29udGVudE1hbmFnZXJcIiwgYCR7cGx1Z2lufSB3YXMgdW5sb2FkZWQuYCk7XHJcbiAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTJcIl0pIFV0aWxzLnNob3dUb2FzdChgJHtwbHVnaW59IHdhcyB1bmxvYWRlZC5gLCB7dHlwZTogXCJzdWNjZXNzXCJ9KTtcclxuICAgIEJERXZlbnRzLmRpc3BhdGNoKFwicGx1Z2luLXVubG9hZGVkXCIsIHBsdWdpbik7XHJcbn07XHJcblxyXG5QbHVnaW5Nb2R1bGUucHJvdG90eXBlLnJlbG9hZFBsdWdpbiA9IGZ1bmN0aW9uKGZpbGVuYW1lT3JOYW1lKSB7XHJcbiAgICBjb25zdCBiZHBsdWdpbiA9IE9iamVjdC52YWx1ZXMoYmRwbHVnaW5zKS5maW5kKHAgPT4gcC5maWxlbmFtZSA9PSBmaWxlbmFtZU9yTmFtZSkgfHwgYmRwbHVnaW5zW2ZpbGVuYW1lT3JOYW1lXTtcclxuICAgIGlmICghYmRwbHVnaW4pIHJldHVybiB0aGlzLmxvYWRQbHVnaW4oZmlsZW5hbWVPck5hbWUpO1xyXG4gICAgY29uc3QgcGx1Z2luID0gYmRwbHVnaW4ucGx1Z2luLmdldE5hbWUoKTtcclxuICAgIGNvbnN0IGVuYWJsZWQgPSBwbHVnaW5Db29raWVbcGx1Z2luXTtcclxuICAgIGlmIChlbmFibGVkKSB0aGlzLnN0b3BQbHVnaW4ocGx1Z2luLCB0cnVlKTtcclxuICAgIGNvbnN0IGVycm9yID0gQ29udGVudE1hbmFnZXIucmVsb2FkQ29udGVudChiZHBsdWdpbnNbcGx1Z2luXS5maWxlbmFtZSwgXCJwbHVnaW5cIik7XHJcbiAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTFcIl0pIFV0aWxzLnNob3dDb250ZW50RXJyb3JzKHtwbHVnaW5zOiBbZXJyb3JdfSk7XHJcbiAgICAgICAgaWYgKHNldHRpbmdzQ29va2llW1wiZm9yay1wcy0yXCJdKSBVdGlscy5zaG93VG9hc3QoYCR7cGx1Z2lufSBjb3VsZCBub3QgYmUgcmVsb2FkZWQuYCwge3R5cGU6IFwiZXJyb3JcIn0pO1xyXG4gICAgICAgIHJldHVybiBVdGlscy5lcnIoXCJDb250ZW50TWFuYWdlclwiLCBgJHtwbHVnaW59IGNvdWxkIG5vdCBiZSByZWxvYWRlZC5gLCBlcnJvcik7XHJcbiAgICB9XHJcbiAgICBpZiAoYmRwbHVnaW5zW3BsdWdpbl0ucGx1Z2luLmxvYWQgJiYgdHlwZW9mKGJkcGx1Z2luc1twbHVnaW5dLnBsdWdpbi5sb2FkKSA9PSBcImZ1bmN0aW9uXCIpIGJkcGx1Z2luc1twbHVnaW5dLnBsdWdpbi5sb2FkKCk7XHJcbiAgICBpZiAoZW5hYmxlZCkgdGhpcy5zdGFydFBsdWdpbihwbHVnaW4sIHRydWUpO1xyXG4gICAgVXRpbHMubG9nKFwiQ29udGVudE1hbmFnZXJcIiwgYCR7cGx1Z2lufSB2JHtiZHBsdWdpbnNbcGx1Z2luXS5wbHVnaW4uZ2V0VmVyc2lvbigpfSB3YXMgcmVsb2FkZWQuYCk7XHJcbiAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTJcIl0pIFV0aWxzLnNob3dUb2FzdChgJHtwbHVnaW59IHYke2JkcGx1Z2luc1twbHVnaW5dLnBsdWdpbi5nZXRWZXJzaW9uKCl9IHdhcyByZWxvYWRlZC5gLCB7dHlwZTogXCJzdWNjZXNzXCJ9KTtcclxuICAgIEJERXZlbnRzLmRpc3BhdGNoKFwicGx1Z2luLXJlbG9hZGVkXCIsIHBsdWdpbik7XHJcbn07XHJcblxyXG5QbHVnaW5Nb2R1bGUucHJvdG90eXBlLnVwZGF0ZVBsdWdpbkxpc3QgPSBmdW5jdGlvbigpIHtcclxuICAgIGNvbnN0IHJlc3VsdHMgPSBDb250ZW50TWFuYWdlci5sb2FkTmV3Q29udGVudChcInBsdWdpblwiKTtcclxuICAgIGZvciAoY29uc3QgZmlsZW5hbWUgb2YgcmVzdWx0cy5hZGRlZCkgdGhpcy5sb2FkUGx1Z2luKGZpbGVuYW1lKTtcclxuICAgIGZvciAoY29uc3QgbmFtZSBvZiByZXN1bHRzLnJlbW92ZWQpIHRoaXMudW5sb2FkUGx1Z2luKG5hbWUpO1xyXG59O1xyXG5cclxuUGx1Z2luTW9kdWxlLnByb3RvdHlwZS5sb2FkUGx1Z2luRGF0YSA9IGZ1bmN0aW9uICgpIHtcclxuICAgIGNvbnN0IHNhdmVkID0gRGF0YVN0b3JlLmdldFNldHRpbmdHcm91cChcInBsdWdpbnNcIik7XHJcbiAgICBpZiAoc2F2ZWQpIHtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHBsdWdpbkNvb2tpZSwgc2F2ZWQpO1xyXG4gICAgfVxyXG59O1xyXG5cclxuUGx1Z2luTW9kdWxlLnByb3RvdHlwZS5zYXZlUGx1Z2luRGF0YSA9IGZ1bmN0aW9uICgpIHtcclxuICAgIERhdGFTdG9yZS5zZXRTZXR0aW5nR3JvdXAoXCJwbHVnaW5zXCIsIHBsdWdpbkNvb2tpZSk7XHJcbn07XHJcblxyXG5QbHVnaW5Nb2R1bGUucHJvdG90eXBlLm5ld01lc3NhZ2UgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICBjb25zdCBwbHVnaW5zID0gT2JqZWN0LmtleXMoYmRwbHVnaW5zKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGx1Z2lucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IHBsdWdpbiA9IGJkcGx1Z2luc1twbHVnaW5zW2ldXS5wbHVnaW47XHJcbiAgICAgICAgaWYgKCFwbHVnaW5Db29raWVbcGx1Z2luLmdldE5hbWUoKV0pIGNvbnRpbnVlO1xyXG4gICAgICAgIGlmICh0eXBlb2YgcGx1Z2luLm9uTWVzc2FnZSA9PT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgICAgIHRyeSB7IHBsdWdpbi5vbk1lc3NhZ2UoKTsgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7IFV0aWxzLmVycihcIlBsdWdpbnNcIiwgXCJVbmFibGUgdG8gZmlyZSBvbk1lc3NhZ2UgZm9yIFwiICsgcGx1Z2luLmdldE5hbWUoKSArIFwiLlwiLCBlcnIpOyB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59O1xyXG5cclxuUGx1Z2luTW9kdWxlLnByb3RvdHlwZS5jaGFubmVsU3dpdGNoID0gZnVuY3Rpb24gKCkge1xyXG4gICAgY29uc3QgcGx1Z2lucyA9IE9iamVjdC5rZXlzKGJkcGx1Z2lucyk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBsdWdpbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBwbHVnaW4gPSBiZHBsdWdpbnNbcGx1Z2luc1tpXV0ucGx1Z2luO1xyXG4gICAgICAgIGlmICghcGx1Z2luQ29va2llW3BsdWdpbi5nZXROYW1lKCldKSBjb250aW51ZTtcclxuICAgICAgICBpZiAodHlwZW9mIHBsdWdpbi5vblN3aXRjaCA9PT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgICAgIHRyeSB7IHBsdWdpbi5vblN3aXRjaCgpOyB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHsgVXRpbHMuZXJyKFwiUGx1Z2luc1wiLCBcIlVuYWJsZSB0byBmaXJlIG9uU3dpdGNoIGZvciBcIiArIHBsdWdpbi5nZXROYW1lKCkgKyBcIi5cIiwgZXJyKTsgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufTtcclxuXHJcblBsdWdpbk1vZHVsZS5wcm90b3R5cGUucmF3T2JzZXJ2ZXIgPSBmdW5jdGlvbihlKSB7XHJcbiAgICBjb25zdCBwbHVnaW5zID0gT2JqZWN0LmtleXMoYmRwbHVnaW5zKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGx1Z2lucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IHBsdWdpbiA9IGJkcGx1Z2luc1twbHVnaW5zW2ldXS5wbHVnaW47XHJcbiAgICAgICAgaWYgKCFwbHVnaW5Db29raWVbcGx1Z2luLmdldE5hbWUoKV0pIGNvbnRpbnVlO1xyXG4gICAgICAgIGlmICh0eXBlb2YgcGx1Z2luLm9ic2VydmVyID09PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgICAgICAgdHJ5IHsgcGx1Z2luLm9ic2VydmVyKGUpOyB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHsgVXRpbHMuZXJyKFwiUGx1Z2luc1wiLCBcIlVuYWJsZSB0byBmaXJlIG9ic2VydmVyIGZvciBcIiArIHBsdWdpbi5nZXROYW1lKCkgKyBcIi5cIiwgZXJyKTsgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBQbHVnaW5Nb2R1bGUoKTsiXSwic291cmNlUm9vdCI6IiJ9\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 _react_publicServers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./react/publicServers */ \"./src/react/publicServers.js\");\n/* harmony import */ var _react_layer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./react/layer */ \"./src/react/layer.js\");\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_4__[\"default\"], {\n rootId: \"pubslayerroot\",\n id: \"pubslayer\",\n children: _v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(_react_publicServers__WEBPACK_IMPORTED_MODULE_3__[\"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\"].findModuleByDisplayName(\"Guilds\");\n this.guildPatch = _webpackModules__WEBPACK_IMPORTED_MODULE_2__[\"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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3B1YmxpY1NlcnZlcnMuanM/NzkxYiJdLCJuYW1lcyI6WyJWMl9QdWJsaWNTZXJ2ZXJzIiwiY29uc3RydWN0b3IiLCJfYXBwZW5kQnV0dG9uIiwiYmluZCIsImNvbXBvbmVudCIsIkJEVjIiLCJyZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJMYXllciIsInJvb3RJZCIsImlkIiwiY2hpbGRyZW4iLCJWMkNfUHVibGljU2VydmVycyIsInJvb3QiLCJfcm9vdCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJpbmplY3RSb290IiwiJCIsImxlbmd0aCIsImFwcGVuZCIsInJlbmRlciIsImNvbnNvbGUiLCJsb2ciLCJyZWFjdERvbSIsImJ1dHRvbiIsImJ0biIsImd1aWxkQ2xhc3NlcyIsImxpc3RJdGVtIiwic2V0dGluZ3NDb29raWUiLCJjaXJjbGVCdXR0b25NYXNrIiwid3JhcHBlciIsInNwbGl0IiwiZ3VpbGRzIiwiYWZ0ZXIiLCJhZGRCdXR0b24iLCJndWlsZFBhdGNoIiwiR3VpbGRMaXN0Iiwid2VicGFja01vZHVsZXMiLCJmaW5kTW9kdWxlQnlEaXNwbGF5TmFtZSIsIm1vbmtleVBhdGNoIiwicHJvdG90eXBlIiwicmVtb3ZlQnV0dG9uIiwicmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRWUsbUVBQUksTUFBTUEsZ0JBQU4sQ0FBdUI7QUFFdENDLGFBQVcsR0FBRztBQUNWLFNBQUtDLGFBQUwsR0FBcUIsS0FBS0EsYUFBTCxDQUFtQkMsSUFBbkIsQ0FBd0IsSUFBeEIsQ0FBckI7QUFDSDs7QUFFRCxNQUFJQyxTQUFKLEdBQWdCO0FBQ1osV0FBT0MsMkNBQUksQ0FBQ0MsS0FBTCxDQUFXQyxhQUFYLENBQXlCQyxvREFBekIsRUFBZ0M7QUFBQ0MsWUFBTSxFQUFFLGVBQVQ7QUFBMEJDLFFBQUUsRUFBRSxXQUE5QjtBQUEy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ZXR0aW5nc0Nvb2tpZX0gZnJvbSBcIi4vMGdsb2JhbHNcIjtcclxuaW1wb3J0IEJEVjIgZnJvbSBcIi4vdjJcIjtcclxuaW1wb3J0IHdlYnBhY2tNb2R1bGVzIGZyb20gXCIuL3dlYnBhY2tNb2R1bGVzXCI7XHJcblxyXG5pbXBvcnQgVjJDX1B1YmxpY1NlcnZlcnMgZnJvbSBcIi4vcmVhY3QvcHVibGljU2VydmVyc1wiO1xyXG5pbXBvcnQgTGF5ZXIgZnJvbSBcIi4vcmVhY3QvbGF5ZXJcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBWMl9QdWJsaWNTZXJ2ZXJzIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLl9hcHBlbmRCdXR0b24gPSB0aGlzLl9hcHBlbmRCdXR0b24uYmluZCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29tcG9uZW50KCkge1xyXG4gICAgICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoTGF5ZXIsIHtyb290SWQ6IFwicHVic2xheWVycm9vdFwiLCBpZDogXCJwdWJzbGF5ZXJcIiwgY2hpbGRyZW46IEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChWMkNfUHVibGljU2VydmVycywge3Jvb3RJZDogXCJwdWJzbGF5ZXJyb290XCJ9KX0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCByb290KCkge1xyXG4gICAgICAgIGNvbnN0IF9yb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJwdWJzbGF5ZXJyb290XCIpO1xyXG4gICAgICAgIGlmICghX3Jvb3QpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmluamVjdFJvb3QoKSkgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJvb3Q7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBfcm9vdDtcclxuICAgIH1cclxuXHJcbiAgICBpbmplY3RSb290KCkge1xyXG4gICAgICAgIGlmICghJChcIi5sYXllcnMsIC5sYXllcnMtM2lIdXlaXCIpLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICQoXCIubGF5ZXJzLCAubGF5ZXJzLTNpSHV5WlwiKS5hcHBlbmQoJChcIjxkaXYvPlwiLCB7XHJcbiAgICAgICAgICAgIGlkOiBcInB1YnNsYXllcnJvb3RcIlxyXG4gICAgICAgIH0pKTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgLy8gQmRBcGkuYWxlcnQoXCJCcm9rZW5cIiwgXCJTb3JyeSBidXQgdGhlIFB1YmxpYyBTZXJ2ZXJzIG1vZHVsZXMgaXMgY3VycmVudGx5IGJyb2tlbiwgSSByZWNvbW1lbmQgZGlzYWJsaW5nIHRoaXMgZmVhdHVyZSBmb3Igbm93LlwiKTtcclxuICAgICAgICBjb25zdCByb290ID0gdGhpcy5yb290O1xyXG4gICAgICAgIGlmICghcm9vdCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkZBSUxFRCBUTyBMT0NBVEUgUk9PVDogLmxheWVyc1wiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBCRFYyLnJlYWN0RG9tLnJlbmRlcih0aGlzLmNvbXBvbmVudCwgcm9vdCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGJ1dHRvbigpIHtcclxuICAgICAgICBjb25zdCBidG4gPSAkKFwiPGRpdi8+XCIsIHtcclxuICAgICAgICAgICAgXCJjbGFzc1wiOiBCRFYyLmd1aWxkQ2xhc3Nlcy5saXN0SXRlbSxcclxuICAgICAgICAgICAgXCJpZFwiOiBcImJkLXB1Yi1saVwiLFxyXG4gICAgICAgICAgICBcInN0eWxlXCI6IHNldHRpbmdzQ29va2llW1wiYmRhLWdzLTFcIl0gPyBcIlwiIDogXCJkaXNwbGF5OiBub25lO1wiXHJcbiAgICAgICAgfSkuYXBwZW5kKCQoXCI8ZGl2Lz5cIiwge1xyXG4gICAgICAgICAgICBcImNsYXNzXCI6IFwid3JhcHBlci0yNWVWSW4gXCIgKyBCRFYyLmd1aWxkQ2xhc3Nlcy5jaXJjbGVCdXR0b25NYXNrLFxyXG4gICAgICAgICAgICBcInRleHRcIjogXCJwdWJsaWNcIixcclxuICAgICAgICAgICAgXCJpZFwiOiBcImJkLXB1Yi1idXR0b25cIixcclxuICAgICAgICAgICAgXCJjbGlja1wiOiAoKSA9PiB7IHRoaXMucmVuZGVyKCk7IH1cclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgIHJldHVybiBidG47XHJcbiAgICB9XHJcblxyXG4gICAgX2FwcGVuZEJ1dHRvbigpIHtcclxuICAgICAgICBpZiAoJChcIiNiZC1wdWItbGlcIikubGVuZ3RoKSByZXR1cm47XHJcbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IEJEVjIuZ3VpbGRDbGFzc2VzLndyYXBwZXIuc3BsaXQoXCIgXCIpWzBdO1xyXG4gICAgICAgIGNvbnN0IGd1aWxkcyA9ICQoYC4ke3dyYXBwZXJ9IC5zY3JvbGxlci0yRktGUEcgPjpmaXJzdC1jaGlsZGApO1xyXG4gICAgICAgIGd1aWxkcy5hZnRlcih0aGlzLmJ1dHRvbik7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkQnV0dG9uKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmd1aWxkUGF0Y2gpIHJldHVybjtcclxuICAgICAgICBjb25zdCBHdWlsZExpc3QgPSB3ZWJwYWNrTW9kdWxlcy5maW5kTW9kdWxlQnlEaXNwbGF5TmFtZShcIkd1aWxkc1wiKTtcclxuICAgICAgICB0aGlzLmd1aWxkUGF0Y2ggPSB3ZWJwYWNrTW9kdWxlcy5tb25rZXlQYXRjaChHdWlsZExpc3QucHJvdG90eXBlLCBcInJlbmRlclwiLCB7YWZ0ZXI6IHRoaXMuX2FwcGVuZEJ1dHRvbn0pO1xyXG4gICAgICAgIHRoaXMuX2FwcGVuZEJ1dHRvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUJ1dHRvbigpIHtcclxuICAgICAgICB0aGlzLmd1aWxkUGF0Y2goKTtcclxuICAgICAgICBkZWxldGUgdGhpcy5ndWlsZFBhdGNoO1xyXG4gICAgICAgICQoXCIjYmQtcHViLWxpXCIpLnJlbW92ZSgpO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3F1aWNrRW1vdGVNZW51LmpzPzc4MWYiXSwibmFtZXMiOlsiUXVpY2tFbW90ZU1lbnUiLCJwcm90b3R5cGUiLCJpbml0IiwiaW5pdGlhbGl6ZWQiLCIkIiwiZG9jdW1lbnQiLCJvbiIsImUiLCJ0YXJnZXQiLCJpZCIsInJlbW92ZSIsImZhdm9yaXRlRW1vdGVzIiwiZmUiLCJEYXRhU3RvcmUiLCJnZXRCRERhdGEiLCJKU09OIiwicGFyc2UiLCJhdG9iIiwicW1lSGVhZGVyIiwidGVDb250YWluZXIiLCJ1cmwiLCJlbW90ZSIsImJkRW1vdGVzIiwiVHdpdGNoR2xvYmFsIiwiaGFzT3duUHJvcGVydHkiLCJmYUNvbnRhaW5lciIsImZhdkNvbnRleHQiLCJlbSIsInN0b3BQcm9wYWdhdGlvbiIsIm1lbnUiLCJwcm9wIiwiY3NzIiwidG9wIiwicGFnZVkiLCJvZmZzZXQiLCJsZWZ0IiwicGFnZVgiLCJwYXJlbnQiLCJhcHBlbmQiLCJzZWxmIiwicHJldmVudERlZmF1bHQiLCJkYXRhIiwidXBkYXRlRmF2b3JpdGVzIiwic3dpdGNoSGFuZGxlciIsInN3aXRjaFFlbSIsImF0dHIiLCJ0d2l0Y2giLCJmYXYiLCJlbW9qaXMiLCJyZW1vdmVDbGFzcyIsImhpZGUiLCJhZGRDbGFzcyIsInNob3ciLCJmb2N1cyIsImxhc3RUYWIiLCJlbW90ZUljb24iLCJvZmYiLCJuZXdUZXh0YXJlYSIsInF1ZXJ5U2VsZWN0b3IiLCJCRFYyIiwic2xhdGVFZGl0b3JDbGFzc2VzIiwic2xhdGVUZXh0QXJlYSIsInNwbGl0IiwiaW5zdGFuY2UiLCJnZXRJbnRlcm5hbEluc3RhbmNlIiwiaW5zZXJ0IiwiVXRpbHMiLCJnZXROZXN0ZWRQcm9wIiwidGEiLCJnZXRUZXh0QXJlYSIsImluc2VydFRleHQiLCJ2YWwiLCJzbGljZSIsIm9ic0NhbGxiYWNrIiwiZWxlbSIsInNldHRpbmdzQ29va2llIiwicHJlcGVuZCIsInVuZGVmaW5lZCIsImZhdm9yaXRl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Q0FBZjs7QUFDQSxPQUFLLE1BQU1KLEtBQVgsSUFBb0IsS0FBS1YsY0FBekIsRUFBeUM7QUFDckMsVUFBTVMsR0FBRyxHQUFHLEtBQUtULGNBQUwsQ0FBb0JVLEtBQXBCLENBQVo7QUFDQUksZUFBVyxJQUFJLGlDQUFmO0FBQ0FBLGVBQVcsSUFBSSxrREFBa0RMLEdBQWxELEdBQXdELGFBQXhELEdBQXdFQyxLQUF4RSxHQUFnRiwrREFBL0Y7QUFDQUksZUFBVyxJQUFJLFlBQWY7QUFDQUEsZUFBVyxJQUFJLFFBQWY7QUFDSDs7QUFDREEsYUFBVyxJQUFJLG9CQUFmO0FBQ0FBLGFBQVcsSUFBSSxnQkFBZjtBQUNBQSxhQUFXLElBQUksWUFBZjtBQUNBQSxhQUFXLElBQUksUUFBZjtBQUNBLE9BQUtBLFdBQUwsR0FBbUJBLFdBQW5CO0FBRUFyQixHQUFDLENBQUMsOEJBQUQsQ0FBRCxDQUFrQzRFLFdBQWxDLENBQThDdkQsV0FBOUM7QUFDQVosb0RBQVMsQ0FBQ29FLFNBQVYsQ0FBb0IsYUFBcEIsRUFBbUNDLElBQUksQ0FBQ25FLElBQUksQ0FBQ29FLFNBQUwsQ0FBZSxLQUFLeEUsY0FBcEIsQ0FBRCxDQUF2QztBQUNILENBdEJEOztBQXdCZSxtRUFBSVgsY0FBSixFQUFmIiwiZmlsZSI6Ii4vc3JjL3F1aWNrRW1vdGVNZW51LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzZXR0aW5nc0Nvb2tpZSwgYmRFbW90ZXN9IGZyb20gXCIuLzBnbG9iYWxzXCI7XHJcbmltcG9ydCBEYXRhU3RvcmUgZnJvbSBcIi4vZGF0YVN0b3JlXCI7XHJcbmltcG9ydCBCRFYyIGZyb20gXCIuL3YyXCI7XHJcbmltcG9ydCBVdGlscyBmcm9tIFwiLi91dGlsc1wiO1xyXG5cclxuZnVuY3Rpb24gUXVpY2tFbW90ZU1lbnUoKSB7XHJcblxyXG59XHJcblxyXG5RdWlja0Vtb3RlTWVudS5wcm90b3R5cGUuaW5pdCA9IGZ1bmN0aW9uKCkge1xyXG4gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XHJcbiAgICAkKGRvY3VtZW50KS5vbihcIm1vdXNlZG93blwiLCBmdW5jdGlvbihlKSB7XHJcbiAgICAgICAgaWYgKGUudGFyZ2V0LmlkICE9IFwicm1lbnVcIikgJChcIiNybWVudVwiKS5yZW1vdmUoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5mYXZvcml0ZUVtb3RlcyA9IHt9O1xyXG4gICAgY29uc3QgZmUgPSBEYXRhU3RvcmUuZ2V0QkREYXRhKFwiYmRmYXZlbW90ZXNcIik7XHJcbiAgICBpZiAoZmUgIT09IFwiXCIgJiYgZmUgIT09IG51bGwpIHtcclxuICAgICAgICB0aGlzLmZhdm9yaXRlRW1vdGVzID0gSlNPTi5wYXJzZShhdG9iKGZlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHFtZUhlYWRlciA9IFwiXCI7XHJcbiAgICBxbWVIZWFkZXIgKz0gXCI8ZGl2IGlkPVxcXCJiZGEtcWVtXFxcIj5cIjtcclxuICAgIHFtZUhlYWRlciArPSBcIiAgICA8YnV0dG9uIGNsYXNzPVxcXCJhY3RpdmVcXFwiIGlkPVxcXCJiZGEtcWVtLXR3aXRjaFxcXCIgb25jbGljaz0ncXVpY2tFbW90ZU1lbnUuc3dpdGNoSGFuZGxlcih0aGlzKTsgcmV0dXJuIGZhbHNlOyc+VHdpdGNoPC9idXR0b24+XCI7XHJcbiAgICBxbWVIZWFkZXIgKz0gXCIgICAgPGJ1dHRvbiBpZD1cXFwiYmRhLXFlbS1mYXZvdXJpdGVcXFwiIG9uY2xpY2s9J3F1aWNrRW1vdGVNZW51LnN3aXRjaEhhbmRsZXIodGhpcyk7IHJldHVybiBmYWxzZTsnPkZhdm91cml0ZTwvYnV0dG9uPlwiO1xyXG4gICAgcW1lSGVhZGVyICs9IFwiICAgIDxidXR0b24gaWQ9XFxcImJkYS1xZW0tZW1vamlzXFxcIiBvbmNsaWNrPSdxdWlja0Vtb3RlTWVudS5zd2l0Y2hIYW5kbGVyKHRoaXMpOyByZXR1cm4gZmFsc2U7Jz5FbW9qaXM8L2J1dHRvbmQ+XCI7XHJcbiAgICBxbWVIZWFkZXIgKz0gXCI8L2Rpdj5cIjtcclxuICAgIHRoaXMucW1lSGVhZGVyID0gcW1lSGVhZGVyO1xyXG5cclxuICAgIGxldCB0ZUNvbnRhaW5lciA9IFwiXCI7XHJcbiAgICB0ZUNvbnRhaW5lciArPSBcIjxkaXYgaWQ9XFxcImJkYS1xZW0tdHdpdGNoLWNvbnRhaW5lclxcXCI+XCI7XHJcbiAgICB0ZUNvbnRhaW5lciArPSBcIiAgICA8ZGl2IGNsYXNzPVxcXCJzY3JvbGxlci13cmFwIHNjcm9sbGVyV3JhcC0ybEpFa2QgZmFkZVxcXCI+XCI7XHJcbiAgICB0ZUNvbnRhaW5lciArPSBcIiAgICAgICAgPGRpdiBjbGFzcz1cXFwic2Nyb2xsZXIgc2Nyb2xsZXItMkZLRlBHXFxcIj5cIjtcclxuICAgIHRlQ29udGFpbmVyICs9IFwiICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiZW1vdGUtbWVudS1pbm5lclxcXCI+XCI7XHJcbiAgICBsZXQgdXJsID0gXCJcIjtcclxuICAgIGZvciAoY29uc3QgZW1vdGUgaW4gYmRFbW90ZXMuVHdpdGNoR2xvYmFsKSB7XHJcbiAgICAgICAgaWYgKGJkRW1vdGVzLlR3aXRjaEdsb2JhbC5oYXNPd25Qcm9wZXJ0eShlbW90ZSkpIHtcclxuICAgICAgICAgICAgdXJsID0gYmRFbW90ZXMuVHdpdGNoR2xvYmFsW2Vtb3RlXTtcclxuICAgICAgICAgICAgdGVDb250YWluZXIgKz0gXCI8ZGl2IGNsYXNzPVxcXCJlbW90ZS1jb250YWluZXJcXFwiPlwiO1xyXG4gICAgICAgICAgICB0ZUNvbnRhaW5lciArPSBcIiAgICA8aW1nIGNsYXNzPVxcXCJlbW90ZS1pY29uXFxcIiBhbHQ9XFxcIlxcXCIgc3JjPVxcXCJcIiArIHVybCArIFwiXFxcIiB0aXRsZT1cXFwiXCIgKyBlbW90ZSArIFwiXFxcIj5cIjtcclxuICAgICAgICAgICAgdGVDb250YWluZXIgKz0gXCIgICAgPC9pbWc+XCI7XHJcbiAgICAgICAgICAgIHRlQ29udGFpbmVyICs9IFwiPC9kaXY+XCI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGVDb250YWluZXIgKz0gXCIgICAgICAgICAgICA8L2Rpdj5cIjtcclxuICAgIHRlQ29udGFpbmVyICs9IFwiICAgICAgICA8L2Rpdj5cIjtcclxuICAgIHRlQ29udGFpbmVyICs9IFwiICAgIDwvZGl2PlwiO1xyXG4gICAgdGVDb250YWluZXIgKz0gXCI8L2Rpdj5cIjtcclxuICAgIHRoaXMudGVDb250YWluZXIgPSB0ZUNvbnRhaW5lcjtcclxuXHJcbiAgICBsZXQgZmFDb250YWluZXIgPSBcIlwiO1xyXG4gICAgZmFDb250YWluZXIgKz0gXCI8ZGl2IGlkPVxcXCJiZGEtcWVtLWZhdm91cml0ZS1jb250YWluZXJcXFwiPlwiO1xyXG4gICAgZmFDb250YWluZXIgKz0gXCIgICAgPGRpdiBjbGFzcz1cXFwic2Nyb2xsZXItd3JhcCBzY3JvbGxlcldyYXAtMmxKRWtkIGZhZGVcXFwiPlwiO1xyXG4gICAgZmFDb250YWluZXIgKz0gXCIgICAgICAgIDxkaXYgY2xhc3M9XFxcInNjcm9sbGVyIHNjcm9sbGVyLTJGS0ZQR1xcXCI+XCI7XHJcbiAgICBmYUNvbnRhaW5lciArPSBcIiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImVtb3RlLW1lbnUtaW5uZXJcXFwiPlwiO1xyXG4gICAgZm9yIChjb25zdCBlbW90ZSBpbiB0aGlzLmZhdm9yaXRlRW1vdGVzKSB7XHJcbiAgICAgICAgdXJsID0gdGhpcy5mYXZvcml0ZUVtb3Rlc1tlbW90ZV07XHJcbiAgICAgICAgZmFDb250YWluZXIgKz0gXCI8ZGl2IGNsYXNzPVxcXCJlbW90ZS1jb250YWluZXJcXFwiPlwiO1xyXG4gICAgICAgIGZhQ29udGFpbmVyICs9IFwiICAgIDxpbWcgY2xhc3M9XFxcImVtb3RlLWljb25cXFwiIGFsdD1cXFwiXFxcIiBzcmM9XFxcIlwiICsgdXJsICsgXCJcXFwiIHRpdGxlPVxcXCJcIiArIGVtb3RlICsgXCJcXFwiIG9uY29udGV4dG1lbnU9J3F1aWNrRW1vdGVNZW51LmZhdkNvbnRleHQoZXZlbnQsIHRoaXMpOyc+XCI7XHJcbiAgICAgICAgZmFDb250YWluZXIgKz0gXCIgICAgPC9pbWc+XCI7XHJcbiAgICAgICAgZmFDb250YWluZXIgKz0gXCI8L2Rpdj5cIjtcclxuICAgIH1cclxuICAgIGZhQ29udGFpbmVyICs9IFwiICAgICAgICAgICAgPC9kaXY+XCI7XHJcbiAgICBmYUNvbnRhaW5lciArPSBcIiAgICAgICAgPC9kaXY+XCI7XHJcbiAgICBmYUNvbnRhaW5lciArPSBcIiAgICA8L2Rpdj5cIjtcclxuICAgIGZhQ29udGFpbmVyICs9IFwiPC9kaXY+XCI7XHJcbiAgICB0aGlzLmZhQ29udGFpbmVyID0gZmFDb250YWluZXI7XHJcbn07XHJcblxyXG5RdWlja0Vtb3RlTWVudS5wcm90b3R5cGUuZmF2Q29udGV4dCA9IGZ1bmN0aW9uKGUsIGVtKSB7XHJcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgY29uc3QgbWVudSA9ICQoXCI8ZGl2PlwiLCB7XCJpZFwiOiBcInJlbW92ZW1lbnVcIiwgXCJkYXRhLWVtb3RlaWRcIjogJChlbSkucHJvcChcInRpdGxlXCIpLCBcInRleHRcIjogXCJSZW1vdmVcIiwgXCJjbGFzc1wiOiBcImJkLWNvbnRleHQtbWVudSBjb250ZXh0LW1lbnUgdGhlbWUtZGFya1wifSk7XHJcbiAgICBtZW51LmNzcyh7XHJcbiAgICAgICAgdG9wOiBlLnBhZ2VZIC0gJChcIiNiZGEtcWVtLWZhdm91cml0ZS1jb250YWluZXJcIikub2Zmc2V0KCkudG9wLFxyXG4gICAgICAgIGxlZnQ6IGUucGFnZVggLSAkKFwiI2JkYS1xZW0tZmF2b3VyaXRlLWNvbnRhaW5lclwiKS5vZmZzZXQoKS5sZWZ0XHJcbiAgICB9KTtcclxuICAgICQoZW0pLnBhcmVudCgpLmFwcGVuZChtZW51KTtcclxuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgbWVudS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uKGUpIHtcclxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAkKHRoaXMpLnJlbW92ZSgpO1xyXG5cclxuICAgICAgICBkZWxldGUgc2VsZi5mYXZvcml0ZUVtb3Rlc1skKHRoaXMpLmRhdGEoXCJlbW90ZWlkXCIpXTtcclxuICAgICAgICBzZWxmLnVwZGF0ZUZhdm9yaXRlcygpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG59O1xyXG5cclxuUXVpY2tFbW90ZU1lbnUucHJvdG90eXBlLnN3aXRjaEhhbmRsZXIgPSBmdW5jdGlvbihlKSB7XHJcbiAgICB0aGlzLnN3aXRjaFFlbSgkKGUpLmF0dHIoXCJpZFwiKSk7XHJcbn07XHJcblxyXG5RdWlja0Vtb3RlTWVudS5wcm90b3R5cGUuc3dpdGNoUWVtID0gZnVuY3Rpb24oaWQpIHtcclxuICAgIGNvbnN0IHR3aXRjaCA9ICQoXCIjYmRhLXFlbS10d2l0Y2hcIik7XHJcbiAgICBjb25zdCBmYXYgPSAkKFwiI2JkYS1xZW0tZmF2b3VyaXRlXCIpO1xyXG4gICAgY29uc3QgZW1vamlzID0gJChcIiNiZGEtcWVtLWVtb2ppc1wiKTtcclxuICAgIHR3aXRjaC5yZW1vdmVDbGFzcyhcImFjdGl2ZVwiKTtcclxuICAgIGZhdi5yZW1vdmVDbGFzcyhcImFjdGl2ZVwiKTtcclxuICAgIGVtb2ppcy5yZW1vdmVDbGFzcyhcImFjdGl2ZVwiKTtcclxuXHJcbiAgICAkKFwiLmVtb2ppUGlja2VyLTNtMVMtalwiKS5oaWRlKCk7XHJcbiAgICAkKFwiI2JkYS1xZW0tZmF2b3VyaXRlLWNvbnRhaW5lclwiKS5oaWRlKCk7XHJcbiAgICAkKFwiI2JkYS1xZW0tdHdpdGNoLWNvbnRhaW5lclwiKS5oaWRlKCk7XHJcblxyXG4gICAgc3dpdGNoIChpZCkge1xyXG4gICAgICAgIGNhc2UgXCJiZGEtcWVtLXR3aXRjaFwiOlxyXG4gICAgICAgICAgICB0d2l0Y2guYWRkQ2xhc3MoXCJhY3RpdmVcIik7XHJcbiAgICAgICAgICAgICQoXCIjYmRhLXFlbS10d2l0Y2gtY29udGFpbmVyXCIpLnNob3coKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiYmRhLXFlbS1mYXZvdXJpdGVcIjpcclxuICAgICAgICAgICAgZmF2LmFkZENsYXNzKFwiYWN0aXZlXCIpO1xyXG4gICAgICAgICAgICAkKFwiI2JkYS1xZW0tZmF2b3VyaXRlLWNvbnRhaW5lclwiKS5zaG93KCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcImJkYS1xZW0tZW1vamlzXCI6XHJcbiAgICAgICAgICAgIGVtb2ppcy5hZGRDbGFzcyhcImFjdGl2ZVwiKTtcclxuICAgICAgICAgICAgJChcIi5lbW9qaVBpY2tlci0zbTFTLWpcIikuc2hvdygpO1xyXG4gICAgICAgICAgICAkKFwiLmVtb2ppUGlja2VyLTNtMVMtaiBpbnB1dFwiKS5mb2N1cygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgdGhpcy5sYXN0VGFiID0gaWQ7XHJcblxyXG4gICAgY29uc3QgZW1vdGVJY29uID0gJChcIi5lbW90ZS1pY29uXCIpO1xyXG4gICAgZW1vdGVJY29uLm9mZigpO1xyXG4gICAgZW1vdGVJY29uLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGNvbnN0IGVtb3RlID0gJCh0aGlzKS5hdHRyKFwidGl0bGVcIik7XHJcbiAgICAgICAgY29uc3QgbmV3VGV4dGFyZWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuJHtCRFYyLnNsYXRlRWRpdG9yQ2xhc3Nlcy5zbGF0ZVRleHRBcmVhLnNwbGl0KFwiIFwiKVswXX1gKTtcclxuICAgICAgICBpZiAobmV3VGV4dGFyZWEpIHtcclxuICAgICAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBCRFYyLmdldEludGVybmFsSW5zdGFuY2UobmV3VGV4dGFyZWEpO1xyXG4gICAgICAgICAgICBjb25zdCBpbnNlcnQgPSBVdGlscy5nZXROZXN0ZWRQcm9wKGluc3RhbmNlLCBcIm1lbW9pemVkUHJvcHMuY2hpbGRyZW4ucHJvcHMuZWRpdG9yLmluc2VydFRleHRcIik7XHJcbiAgICAgICAgICAgIGlmIChpbnNlcnQpIGluc2VydChgICR7ZW1vdGV9IGApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgdGEgPSBVdGlscy5nZXRUZXh0QXJlYSgpO1xyXG4gICAgICAgICAgICBVdGlscy5pbnNlcnRUZXh0KHRhWzBdLCB0YS52YWwoKS5zbGljZSgtMSkgPT0gXCIgXCIgPyB0YS52YWwoKSArIGVtb3RlIDogdGEudmFsKCkgKyBcIiBcIiArIGVtb3RlKTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxufTtcclxuXHJcblF1aWNrRW1vdGVNZW51LnByb3RvdHlwZS5vYnNDYWxsYmFjayA9IGZ1bmN0aW9uIChlbGVtKSB7XHJcbiAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHJldHVybjtcclxuICAgIGNvbnN0IGUgPSAkKGVsZW0pO1xyXG4gICAgaWYgKCFzZXR0aW5nc0Nvb2tpZVtcImJkYS1lcy05XCJdKSB7XHJcbiAgICAgICAgZS5hZGRDbGFzcyhcImJkYS1xbWUtaGlkZGVuXCIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZS5yZW1vdmVDbGFzcyhcImJkYS1xbWUtaGlkZGVuXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghc2V0dGluZ3NDb29raWVbXCJiZGEtZXMtMFwiXSkgcmV0dXJuO1xyXG5cclxuICAgIGUucHJlcGVuZCh0aGlzLnFtZUhlYWRlcik7XHJcbiAgICBlLmFwcGVuZCh0aGlzLnRlQ29udGFpbmVyKTtcclxuICAgIGUuYXBwZW5kKHRoaXMuZmFDb250YWluZXIpO1xyXG5cclxuICAgIGlmICh0aGlzLmxhc3RUYWIgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5sYXN0VGFiID0gXCJiZGEtcWVtLWVtb2ppc1wiO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zd2l0Y2hRZW0odGhpcy5sYXN0VGFiKTtcclxufTtcclxuXHJcblF1aWNrRW1vdGVNZW51LnByb3RvdHlwZS5mYXZvcml0ZSA9IGZ1bmN0aW9uIChuYW1lLCB1cmwpIHtcclxuXHJcbiAgICBpZiAoIXRoaXMuZmF2b3JpdGVFbW90ZXMuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcclxuICAgICAgICB0aGlzLmZhdm9yaXRlRW1vdGVzW25hbWVdID0gdXJsO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudXBkYXRlRmF2b3JpdGVzKCk7XHJcbn07XHJcblxyXG5RdWlja0Vtb3RlTWVudS5wcm90b3R5cGUudXBkYXRlRmF2b3JpdGVzID0gZnVuY3Rpb24gKCkge1xyXG5cclxuICAgIGxldCBmYUNvbnRhaW5lciA9IFwiXCI7XHJcbiAgICBmYUNvbnRhaW5lciArPSBcIjxkaXYgaWQ9XFxcImJkYS1xZW0tZmF2b3VyaXRlLWNvbnRhaW5lclxcXCI+XCI7XHJcbiAgICBmYUNvbnRhaW5lciArPSBcIiAgICA8ZGl2IGNsYXNzPVxcXCJzY3JvbGxlci13cmFwIHNjcm9sbGVyV3JhcC0ybEpFa2QgZmFkZVxcXCI+XCI7XHJcbiAgICBmYUNvbnRhaW5lciArPSBcIiAgICAgICAgPGRpdiBjbGFzcz1cXFwic2Nyb2xsZXIgc2Nyb2xsZXItMkZLRlBHXFxcIj5cIjtcclxuICAgIGZhQ29udGFpbmVyICs9IFwiICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiZW1vdGUtbWVudS1pbm5lclxcXCI+XCI7XHJcbiAgICBmb3IgKGNvbnN0IGVtb3RlIGluIHRoaXMuZmF2b3JpdGVFbW90ZXMpIHtcclxuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmZhdm9yaXRlRW1vdGVzW2Vtb3RlXTtcclxuICAgICAgICBmYUNvbnRhaW5lciArPSBcIjxkaXYgY2xhc3M9XFxcImVtb3RlLWNvbnRhaW5lclxcXCI+XCI7XHJcbiAgICAgICAgZmFDb250YWluZXIgKz0gXCIgICAgPGltZyBjbGFzcz1cXFwiZW1vdGUtaWNvblxcXCIgYWx0PVxcXCJcXFwiIHNyYz1cXFwiXCIgKyB1cmwgKyBcIlxcXCIgdGl0bGU9XFxcIlwiICsgZW1vdGUgKyBcIlxcXCIgb25jb250ZXh0bWVudT1cXFwicXVpY2tFbW90ZU1lbnUuZmF2Q29udGV4dChldmVudCwgdGhpcyk7XFxcIj5cIjtcclxuICAgICAgICBmYUNvbnRhaW5lciArPSBcIiAgICA8L2ltZz5cIjtcclxuICAgICAgICBmYUNvbnRhaW5lciArPSBcIjwvZGl2PlwiO1xyXG4gICAgfVxyXG4gICAgZmFDb250YWluZXIgKz0gXCIgICAgICAgICAgICA8L2Rpdj5cIjtcclxuICAgIGZhQ29udGFpbmVyICs9IFwiICAgICAgICA8L2Rpdj5cIjtcclxuICAgIGZhQ29udGFpbmVyICs9IFwiICAgIDwvZGl2PlwiO1xyXG4gICAgZmFDb250YWluZXIgKz0gXCI8L2Rpdj5cIjtcclxuICAgIHRoaXMuZmFDb250YWluZXIgPSBmYUNvbnRhaW5lcjtcclxuXHJcbiAgICAkKFwiI2JkYS1xZW0tZmF2b3VyaXRlLWNvbnRhaW5lclwiKS5yZXBsYWNlV2l0aChmYUNvbnRhaW5lcik7XHJcbiAgICBEYXRhU3RvcmUuc2V0QkREYXRhKFwiYmRmYXZlbW90ZXNcIiwgYnRvYShKU09OLnN0cmluZ2lmeSh0aGlzLmZhdm9yaXRlRW1vdGVzKSkpO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IFF1aWNrRW1vdGVNZW51KCk7Il0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L2JkRW1vdGUuanM/MGRjMyJdLCJuYW1lcyI6WyJCREVtb3RlIiwiQkRWMiIsInJlYWN0Q29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsImlzRmF2IiwicXVpY2tFbW90ZU1lbnUiLCJmYXZvcml0ZUVtb3RlcyIsImxhYmVsIiwic3RhdGUiLCJzaG91bGRBbmltYXRlIiwiYW5pbWF0ZU9uSG92ZXIiLCJpc0Zhdm9yaXRlIiwib25Nb3VzZUVudGVyIiwiYmluZCIsIm9uTW91c2VMZWF2ZSIsIm9uQ2xpY2siLCJzZXR0aW5nc0Nvb2tpZSIsIm1vZGlmaWVyIiwibmFtZSIsIm1vZGlmaWVyQ2xhc3MiLCJzZXRTdGF0ZSIsImUiLCJyZW5kZXIiLCJyZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJUb29sdGlwV3JhcHBlciIsImNvbG9yIiwicG9zaXRpb24iLCJ0ZXh0IiwiZGVsYXkiLCJjaGlsZFByb3BzIiwiT2JqZWN0IiwiYXNzaWduIiwiY2xhc3NOYW1lIiwianVtYm9hYmxlIiwiZHJhZ2dhYmxlIiwiZGF0YU1vZGlmaWVyIiwiYWx0Iiwic3JjIiwidXJsIiwidGl0bGUiLCJ0eXBlIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJ1cGRhdGVGYXZvcml0ZXMiLCJmYXZvcml0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVlLE1BQU1BLE9BQU4sU0FBc0JDLDJDQUFJLENBQUNDLGNBQTNCLENBQTBDO0FBQ3JEQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFFQSxVQUFNQyxLQUFLLEdBQUdDLHVEQUFjLElBQUlBLHVEQUFjLENBQUNDLGNBQWpDLElBQW1ERCx1REFBYyxDQUFDQyxjQUFmLENBQThCLEtBQUtDLEtBQW5DLENBQW5ELEdBQStGLElBQS9GLEdBQXNHLEtBQXBIO0FBQ0EsU0FBS0MsS0FBTCxH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dXJjZXNDb250ZW50IjpbImltcG9ydCB7c2V0dGluZ3NDb29raWV9IGZyb20gXCIuLi8wZ2xvYmFsc1wiO1xyXG5pbXBvcnQgcXVpY2tFbW90ZU1lbnUgZnJvbSBcIi4uL3F1aWNrRW1vdGVNZW51XCI7XHJcbmltcG9ydCBCRFYyIGZyb20gXCIuLi92MlwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQkRFbW90ZSBleHRlbmRzIEJEVjIucmVhY3RDb21wb25lbnQge1xyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcblxyXG4gICAgICAgIGNvbnN0IGlzRmF2ID0gcXVpY2tFbW90ZU1lbnUgJiYgcXVpY2tFbW90ZU1lbnUuZmF2b3JpdGVFbW90ZXMgJiYgcXVpY2tFbW90ZU1lbnUuZmF2b3JpdGVFbW90ZXNbdGhpcy5sYWJlbF0gPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgICAgICAgc2hvdWxkQW5pbWF0ZTogIXRoaXMuYW5pbWF0ZU9uSG92ZXIsXHJcbiAgICAgICAgICAgIGlzRmF2b3JpdGU6IGlzRmF2XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5vbk1vdXNlRW50ZXIgPSB0aGlzLm9uTW91c2VFbnRlci5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMub25Nb3VzZUxlYXZlID0gdGhpcy5vbk1vdXNlTGVhdmUuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLm9uQ2xpY2sgPSB0aGlzLm9uQ2xpY2suYmluZCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYW5pbWF0ZU9uSG92ZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIHNldHRpbmdzQ29va2llW1wiZm9yay1lcy0yXCJdO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBsYWJlbCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5tb2RpZmllciA/IGAke3RoaXMucHJvcHMubmFtZX06JHt0aGlzLnByb3BzLm1vZGlmaWVyfWAgOiB0aGlzLnByb3BzLm5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IG1vZGlmaWVyQ2xhc3MoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMubW9kaWZpZXIgPyBgIGVtb3RlJHt0aGlzLnByb3BzLm1vZGlmaWVyfWAgOiBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTW91c2VFbnRlcigpIHtcclxuICAgICAgICBpZiAoIXRoaXMuc3RhdGUuc2hvdWxkQW5pbWF0ZSAmJiB0aGlzLmFuaW1hdGVPbkhvdmVyKSB0aGlzLnNldFN0YXRlKHtzaG91bGRBbmltYXRlOiB0cnVlfSk7XHJcbiAgICAgICAgaWYgKCF0aGlzLnN0YXRlLmlzRmF2b3JpdGUgJiYgcXVpY2tFbW90ZU1lbnUuZmF2b3JpdGVFbW90ZXNbdGhpcy5sYWJlbF0pIHRoaXMuc2V0U3RhdGUoe2lzRmF2b3JpdGU6IHRydWV9KTtcclxuICAgICAgICBlbHNlIGlmICh0aGlzLnN0YXRlLmlzRmF2b3JpdGUgJiYgIXF1aWNrRW1vdGVNZW51LmZhdm9yaXRlRW1vdGVzW3RoaXMubGFiZWxdKSB0aGlzLnNldFN0YXRlKHtpc0Zhdm9yaXRlOiBmYWxzZX0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTW91c2VMZWF2ZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5zaG91bGRBbmltYXRlICYmIHRoaXMuYW5pbWF0ZU9uSG92ZXIpIHRoaXMuc2V0U3RhdGUoe3Nob3VsZEFuaW1hdGU6IGZhbHNlfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DbGljayhlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25DbGljaykgdGhpcy5wcm9wcy5vbkNsaWNrKGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KEJEVjIuVG9vbHRpcFdyYXBwZXIsIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiBcImJsYWNrXCIsXHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogXCJ0b3BcIixcclxuICAgICAgICAgICAgICAgIHRleHQ6IHRoaXMubGFiZWwsXHJcbiAgICAgICAgICAgICAgICBkZWxheTogNzUwXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIChjaGlsZFByb3BzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe1xyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogXCJlbW90ZXdyYXBwZXJcIiArICh0aGlzLnByb3BzLmp1bWJvYWJsZSA/IFwiIGp1bWJvYWJsZVwiIDogXCJcIiksXHJcbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyOiB0aGlzLm9uTW91c2VFbnRlcixcclxuICAgICAgICAgICAgICAgICAgICBvbk1vdXNlTGVhdmU6IHRoaXMub25Nb3VzZUxlYXZlLFxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IHRoaXMub25DbGlja1xyXG4gICAgICAgICAgICAgICAgfSwgY2hpbGRQcm9wcyksXHJcbiAgICAgICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiaW1nXCIsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZHJhZ2dhYmxlOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcImVtb3RlXCIgKyB0aGlzLm1vZGlmaWVyQ2xhc3MgKyAodGhpcy5wcm9wcy5qdW1ib2FibGUgPyBcIiBqdW1ib2FibGVcIiA6IFwiXCIpICsgKCF0aGlzLnN0YXRlLnNob3VsZEFuaW1hdGUgPyBcIiBzdG9wLWFuaW1hdGlvblwiIDogXCJcIiksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFNb2RpZmllcjogdGhpcy5wcm9wcy5tb2RpZmllcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWx0OiB0aGlzLmxhYmVsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzcmM6IHRoaXMucHJvcHMudXJsXHJcbiAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IFwiZmF2XCIgKyAodGhpcy5zdGF0ZS5pc0Zhdm9yaXRlID8gXCIgYWN0aXZlXCIgOiBcIlwiKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiRmF2b3JpdGUhXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IChlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuaXNGYXZvcml0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBxdWlja0Vtb3RlTWVudS5mYXZvcml0ZUVtb3Rlc1t0aGlzLmxhYmVsXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWlja0Vtb3RlTWVudS51cGRhdGVGYXZvcml0ZXMoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1aWNrRW1vdGVNZW51LmZhdm9yaXRlKHRoaXMubGFiZWwsIHRoaXMucHJvcHMudXJsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe2lzRmF2b3JpdGU6ICF0aGlzLnN0YXRlLmlzRmF2b3JpdGV9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L2JkTG9nby5qcz9kN2Q2Il0sIm5hbWVzIjpbIkJETG9nbyIsIkJEVjIiLCJyZWFjdENvbXBvbmVudCIsInJlbmRlciIsInJlYWN0IiwiY3JlYXRlRWxlbWVudCIsImhlaWdodCIsIndpZHRoIiwicHJvcHMiLCJzaXplIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJmaWxsUnVsZSIsImNsaXBSdWxlIiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZUxpbmVqb2luIiwidmlld0JveCIsImlkIiwiZmlsdGVyIiwiZCIsImZpbGwiLCJvcGFjaXR5Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLE1BQU4sU0FBcUJDLDJDQUFJLENBQUNDLGNBQTFCLENBQXlDO0FBQ3BEQyxRQUFNLEdBQUc7QUFDTCxXQUFPRiwyQ0FBSSxDQUFDRyxLQUFMLENBQVdDLGFBQVgsQ0FDSCxLQURHLEVBRUg7QUFBQ0MsWUFBTSxFQUFFLE1BQVQ7QUFBaUJDLFdBQUssRUFBRSxLQUFLQyxLQUFMLENBQVdDLElBQVgsSUFBbUIsTUFBM0M7QUFBbURDLGVBQVMsRUFBRSxhQUFhLEtBQUtGLEtBQUwsQ0FBV0UsU0FBdEY7QUFBaUdDLFdBQUssRUFBRTtBQUFDQyxnQkFBUSxFQUFFLFNBQVg7QUFBc0JDLGdCQUFRLEVBQUUsU0FBaEM7QUFBMkNDLHFCQUFhLEVBQUUsT0FBMUQ7QUFBbUVDLHNCQUFjLEVBQUU7QUFBbkYsT0FBeEc7QUFBcU1DLGFBQU8sRUFBRTtBQUE5TSxLQUZHLEVBR0hmLDJDQUFJLENBQUNHLEtBQUwsQ0FBV0MsYUFBWCxDQUF5QixVQUF6QixFQUFxQyxJQUFyQyxDQUhHLEVBSUhKLDJDQUFJLENBQUNHLEtBQUwsQ0FBV0MsYUFBWCxDQUF5QixNQUF6QixFQUFpQyxJQUFqQyxFQUNJSiwyQ0FBSSxDQUFDRyxLQUFMLENBQVdDLGFBQVgsQ0FBeUIsUUFBekIsRUFBbUM7QUFBQ1ksUUFBRSxFQUFFO0FBQUwsS0FBbkMsRUFBb0RoQiwyQ0FBSSxDQUFDRyxLQUFMLENBQVdDLGFBQVgsQ0FBeUIsY0FBekIsRUFBeUM7QUFBQyxZQUFNLElBQVA7QUFBYSxZQUFNLEdBQW5CO0FBQXdCLHNCQUFnQixJQUF4QztBQUE4QyxxQkFBZTtBQUE3RCxLQUF6QyxDQUFwRCxDQURKLEVBRUlKLDJDQUFJLENBQUNHLEtBQUwsQ0FBV0MsYUFBWCxDQUF5QixRQUF6QixFQUFtQztBQUFDWSxRQUFFLEVBQUU7QUFBTCxLQUFuQyxFQUFvRGhCLDJDQUFJLENBQUNHLEtBQUwsQ0FBV0MsYUFBWCxDQUF5QixjQUF6QixFQUF5QztBQUFDLFlBQU0sSUFBUDtBQUFhLFlBQU0sR0FBbkI7QUFBd0Isc0JBQWdCLElBQXhDO0FBQThDLHFCQUFlO0FBQTdELEtBQXpDLENBQXBELENBRkosRUFHSUosMkNBQUksQ0FBQ0csS0FBTCxDQUFXQyxhQUFYLENBQXlCLFFBQXpCLEVBQW1DO0FBQUNZLFFBQUUsRUFBRTtBQUFMLEtBQW5DLEVBQW9EaEIsMkNBQUksQ0FBQ0csS0FBTCxDQUFXQyxhQUFYLENBQXlCLGNBQXpCLEVBQXlDO0FBQUMsWUFBTSxJQUFQO0FBQWEsWUFBTSxHQUFuQjtBQUF3QixzQkFBZ0IsSUFBeEM7QUFBOEMscUJBQWU7QUFBN0QsS0FBekMsQ0FBcEQsQ0FISixDQUpHLEVBU0hKLDJDQUFJLENBQUNHLEtBQUwsQ0FBV0MsYUFBWCxDQUF5QixHQUF6QixFQUE4QixJQUE5QixFQUNJSiwyQ0FBSSxDQUFDRyxLQUFMLENBQVdDLGFBQVgsQ0FBeUIsTUFBekIsRUFBaUM7QUFBQ00sV0FBSyxFQUFFO0FBQUNPLGNBQU0sRUFBRTtBQUFULE9BQVI7QUFBbUNDLE9BQUMsRUFBRSw0akJBQXRDO0FBQW9tQkMsVUFBSSxFQUFFLFNBQTFtQjtBQUFxbkJDLGFBQU8sRUFBRTtBQUE5bkIsS0FBakMsQ0FESixFQUVJcEIsMkNBQUksQ0FBQ0csS0FBTCxDQUFXQyxhQUFYLENBQXlCLE1BQXpCLEVBQWlDO0FBQUNNLFdBQUssRUFBRTtBQUFDTyxjQUFNLEVBQUU7QUFBVCxPQUFSO0FBQW1DQyxPQUFDLEVBQUUsNmJBQXRDO0FBQXFlQyxVQUFJLEVBQUUsU0FBM2U7QUFBc2ZDLGFBQU8sRUFBRTtBQUEvZixLQUFqQyxDQUZKLEVBR0lwQiwyQ0FBSSxDQUFDRyxLQUFMLENBQVdDLGFBQVgsQ0FBeUIsTUFBekIsRUFBaUM7QUFBQ00sV0FBSyxFQUFFO0FBQUNPLGNBQU0sRUFBRTtBQUFULE9BQVI7QUFBbUNDLE9BQUMsRUFBRSxza0JBQXRDO0FBQThtQkMsVUFBSSxFQUFFLFNBQXBuQjtBQUErbkJDLGFBQU8sRUFBRTtBQUF4b0IsS0FBakMsQ0FISixDQVRHLENBQVA7QUFlSDs7QUFqQm1EIiwiZmlsZSI6Ii4vc3JjL3JlYWN0L2JkTG9nby5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCRFYyIGZyb20gXCIuLi92MlwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQkRMb2dvIGV4dGVuZHMgQkRWMi5yZWFjdENvbXBvbmVudCB7XHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJzdmdcIixcclxuICAgICAgICAgICAge2hlaWdodDogXCIxMDAlXCIsIHdpZHRoOiB0aGlzLnByb3BzLnNpemUgfHwgXCIxNnB4XCIsIGNsYXNzTmFtZTogXCJiZC1sb2dvIFwiICsgdGhpcy5wcm9wcy5jbGFzc05hbWUsIHN0eWxlOiB7ZmlsbFJ1bGU6IFwiZXZlbm9kZFwiLCBjbGlwUnVsZTogXCJldmVub2RkXCIsIHN0cm9rZUxpbmVjYXA6IFwicm91bmRcIiwgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIn0sIHZpZXdCb3g6IFwiMCAwIDIwMDAgMjAwMFwifSxcclxuICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwibWV0YWRhdGFcIiwgbnVsbCksXHJcbiAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRlZnNcIiwgbnVsbCxcclxuICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImZpbHRlclwiLCB7aWQ6IFwic2hhZG93MVwifSwgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiZmVEcm9wU2hhZG93XCIsIHtcImR4XCI6IFwiMjBcIiwgXCJkeVwiOiBcIjBcIiwgXCJzdGREZXZpYXRpb25cIjogXCIyMFwiLCBcImZsb29kLWNvbG9yXCI6IFwicmdiYSgwLDAsMCwwLjM1KVwifSkpLFxyXG4gICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiZmlsdGVyXCIsIHtpZDogXCJzaGFkb3cyXCJ9LCBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJmZURyb3BTaGFkb3dcIiwge1wiZHhcIjogXCIxNVwiLCBcImR5XCI6IFwiMFwiLCBcInN0ZERldmlhdGlvblwiOiBcIjIwXCIsIFwiZmxvb2QtY29sb3JcIjogXCJyZ2JhKDI1NSwyNTUsMjU1LDAuMTUpXCJ9KSksXHJcbiAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJmaWx0ZXJcIiwge2lkOiBcInNoYWRvdzNcIn0sIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImZlRHJvcFNoYWRvd1wiLCB7XCJkeFwiOiBcIjEwXCIsIFwiZHlcIjogXCIwXCIsIFwic3RkRGV2aWF0aW9uXCI6IFwiMjBcIiwgXCJmbG9vZC1jb2xvclwiOiBcInJnYmEoMCwwLDAsMC4zNSlcIn0pKVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIG51bGwsXHJcbiAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtzdHlsZToge2ZpbHRlcjogXCJ1cmwoI3NoYWRvdzMpXCJ9LCBkOiBcIk0xMTk1LjQ0KzEzNS40NDJMMTE5NS40NCsxMzUuNDQyTDk5Ny42KzEzNi40NDJDMTAyNC4yKzE0OS43NDIrMTE3MC4zNCsxNjMuNTQyKzExOTMuNjQrMTc5Ljc0MkMxMjY0LjM0KzIyOC44NDIrMTMxOS43NCsyOTEuMjQyKzEzNTguMjQrMzY1LjA0MkMxMzk4LjE0KzQ0MS42NDIrMTQxOS43NCs1MzAuNjQyKzE0MjIuNTQrNjI5LjY0MkwxNDIyLjU0KzYzMC44NDJMMTQyMi41NCs2MzIuMDQyQzE0MjIuNTQrNzczLjE0MisxNDIyLjU0KzEyMjguMTQrMTQyMi41NCsxMzY5LjE0TDE0MjIuNTQrMTM3MC4zNEwxNDIyLjU0KzEzNzEuNTRDMTQxOS44NCsxNDcwLjU0KzEzOTguMjQrMTU1OS41NCsxMzU4LjI0KzE2MzYuMTRDMTMxOS43NCsxNzA5Ljk0KzEyNjQuNDQrMTc3Mi4zNCsxMTkzLjY0KzE4MjEuNDRDMTE3MS4wNCsxODM3LjE0KzEwMjUuNysxODUwLjU0KzEwMDArMTg2My41NEwxMTkzLjU0KzE4NjQuNTRDMTUzOS43NCsxODY2LjQ0KzE4NjQuNTQrMTY5My4zNCsxODY0LjU0KzEyOTYuNjRMMTg2NC41NCs3MTYuOTQyQzE4NjYuNDQrMzEyLjQ0MisxNTQxLjY0KzEzNS40NDIrMTE5NS40NCsxMzUuNDQyWlwiLCBmaWxsOiBcIiMxNzE3MTdcIiwgb3BhY2l0eTogXCIxXCJ9KSxcclxuICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge3N0eWxlOiB7ZmlsdGVyOiBcInVybCgjc2hhZG93MilcIn0sIGQ6IFwiTTE2OTUuNTQrNjMxLjQ0MkMxNjg1Ljg0KzI3OC4wNDIrMTQwOS4zNCsxMzUuNDQyKzEwNTIuOTQrMTM1LjQ0MkwzNjEuNzQrMTM2LjQ0Mkw4MDMuNzQrNDkwLjQ0MkwxMDYwLjc0KzQ5MC40NDJDMTMzNS4yNCs0OTAuNDQyKzEzMzUuMjQrODM1LjM0MisxMDYwLjc0KzgzNS4zNDJMMTA2MC43NCsxMTY0Ljg0QzExNTAuMjIrMTE2NC44NCsxMjEwLjUzKzEyMDEuNDgrMTI0MS42OCsxMjUwLjg3QzEzMDYuMDcrMTM1MysxMjQ1Ljc2KzE1MDkuNjQrMTA2MC43NCsxNTA5LjY0TDM2MS43NCsxODYzLjU0TDEwNTIuOTQrMTg2NC41NEMxNDA5LjI0KzE4NjQuNTQrMTY4NS43NCsxNzIxLjk0KzE2OTUuNTQrMTM2OC41NEMxNjk1LjU0KzEyMDUuOTQrMTY1MS4wNCsxMDg0LjQ0KzE1NzIuNjQrOTk5Ljk0MkMxNjUxLjA0KzkxNS41NDIrMTY5NS41NCs3OTQuMDQyKzE2OTUuNTQrNjMxLjQ0MlpcIiwgZmlsbDogXCIjM0U4MkU1XCIsIG9wYWNpdHk6IFwiMVwifSksXHJcbiAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtzdHlsZToge2ZpbHRlcjogXCJ1cmwoI3NoYWRvdzEpXCJ9LCBkOiBcIk0xNDY5LjI1KzYzMS40NDJDMTQ1OS41NSsyNzguMDQyKzExODMuMDUrMTM1LjQ0Mis4MjYuNjUrMTM1LjQ0MkwxMzUuNDUrMTM1LjQ0MkwxMzUuNDUrMTAwNEMxMzUuNDUrMTAwNCsxMzUuNDI3KzEyNTUuMjErMzU1LjYyNisxMjU1LjIxQzU3NS44MjUrMTI1NS4yMSs1NzUuODQ4KzEwMDQrNTc1Ljg0OCsxMDA0TDU3Ny40NSs0OTAuNDQyTDgzNC40NSs0OTAuNDQyQzExMDguOTUrNDkwLjQ0MisxMTA4Ljk1KzgzNS4zNDIrODM0LjQ1KzgzNS4zNDJMNjY0LjY1KzgzNS4zNDJMNjY0LjY1KzExNjQuODRMODM0LjQ1KzExNjQuODRDOTIzLjkzMisxMTY0Ljg0Kzk4NC4yNDQrMTIwMS40OCsxMDE1LjM5KzEyNTAuODdDMTA3OS43OCsxMzUzKzEwMTkuNDcrMTUwOS42NCs4MzQuNDUrMTUwOS42NEwxMzUuNDUrMTUwOS42NEwxMzUuNDUrMTg2NC41NEw4MjYuNjUrMTg2NC41NEMxMTgyLjk1KzE4NjQuNTQrMTQ1OS40NSsxNzIxLjk0KzE0NjkuMjUrMTM2OC41NEMxNDY5LjI1KzEyMDUuOTQrMTQyNC43NSsxMDg0LjQ0KzEzNDYuMzUrOTk5Ljk0MkMxNDI0Ljc1KzkxNS41NDIrMTQ2OS4yNSs3OTQuMDQyKzE0NjkuMjUrNjMxLjQ0MlpcIiwgZmlsbDogXCIjRkZGRkZGXCIsIG9wYWNpdHk6IFwiMVwifSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L2NoZWNrYm94LmpzPzM1MzEiXSwibmFtZXMiOlsiVjJDX0NoZWNrYm94IiwiQkRWMiIsInJlYWN0Q29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIm9uQ2xpY2siLCJiaW5kIiwic2V0SW5pdGlhbFN0YXRlIiwic3RhdGUiLCJjaGVja2VkIiwicmVuZGVyIiwicmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwib25DaGFuZ2UiLCJ0eXBlIiwidGV4dCIsImlkIiwic2V0U3RhdGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRWUsTUFBTUEsWUFBTixTQUEyQkMsMkNBQUksQ0FBQ0MsY0FBaEMsQ0FBK0M7QUFDMURDLGFBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2YsVUFBTUEsS0FBTjtBQUNBLFNBQUtDLE9BQUwsR0FBZSxLQUFLQSxPQUFMLENBQWFDLElBQWIsQ0FBa0IsSUFBbEIsQ0FBZjtBQUNBLFNBQUtDLGVBQUw7QUFDSDs7QUFFREEsaUJBQWUsR0FBRztBQUNkLFNBQUtDLEtBQUwsR0FBYTtBQUNUQyxhQUFPLEVBQUUsS0FBS0wsS0FBTCxDQUFXSyxPQUFYLElBQXNCO0FBRHRCLEtBQWI7QUFHSDs7QUFFREMsUUFBTSxHQUFHO0FBQ0wsV0FBT1QsMkNBQUksQ0FBQ1UsS0FBTCxDQUFXQyxhQUFYLENBQ0gsSUFERyxFQUVILElBRkcsRUFHSFgsMkNBQUksQ0FBQ1UsS0FBTCxDQUFXQyxhQUFYLENBQ0ksS0FESixFQUVJO0FBQUNDLGVBQVMsRUFBRSxzQ0FBWjtBQUFvRFIsYUFBTyxFQUFFLEtBQUtBO0FBQWxFLEtBRkosRUFHSUosMkNBQUksQ0FBQ1UsS0FBTCxDQUFXQyxhQUFYLENBQ0ksS0FESixFQUVJO0FBQUNDLGVBQVMsRUFBRTtBQUFaLEtBRkosRUFHSVosMkNBQUksQ0FBQ1UsS0FBTCxDQUFXQyxhQUFYLENBQXlCLE9BQXpCLEVBQWtDO0FBQUNDLGVBQVMsRUFBRSwyQ0FBWjtBQUF5REosYUFBTyxFQUFFLEtBQUtELEtBQUwsQ0FBV0MsT0FBN0U7QUFBc0ZLLGNBQVEsRUFBRSxNQUFNLENBQUUsQ0FBeEc7QUFBMEdDLFVBQUksRUFBRTtBQUFoSCxLQUFsQyxDQUhKLEVBSUlkLDJDQUFJLENBQUNVLEtBQUwsQ0FBV0MsYUFBWCxDQUF5QixNQUF6QixFQUFpQyxJQUFqQyxDQUpKLENBSEosRUFTSVgsMkNBQUksQ0FBQ1UsS0FBTCxDQUFXQyxhQUFYLENBQ0ksTUFESixFQUVJLElBRkosRUFHSSxLQUFLUixLQUFMLENBQVdZLElBSGYsQ0FUSixDQUhHLENBQVA7QUFtQkg7O0FBRURYLFNBQU8sR0FBRztBQUNOLFNBQUtELEtBQUwsQ0FBV1UsUUFBWCxDQUFvQixLQUFLVixLQUFMLENBQVdhLEVBQS9CLEVBQW1DLENBQUMsS0FBS1QsS0FBTCxDQUFXQyxPQUEvQztBQUNBLFNBQUtTLFFBQUwsQ0FBYztBQUNWVCxhQUFPLEVBQUUsQ0FBQyxLQUFLRCxLQUFMLENBQVdDO0FBRFgsS0FBZDtBQUdIOztBQXhDeUQiLCJmaWxlIjoiLi9zcmMvcmVhY3QvY2hlY2tib3guanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQkRWMiBmcm9tIFwiLi4vdjJcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFYyQ19DaGVja2JveCBleHRlbmRzIEJEVjIucmVhY3RDb21wb25lbnQge1xyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgdGhpcy5vbkNsaWNrID0gdGhpcy5vbkNsaWNrLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zZXRJbml0aWFsU3RhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRJbml0aWFsU3RhdGUoKSB7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgICAgICAgY2hlY2tlZDogdGhpcy5wcm9wcy5jaGVja2VkIHx8IGZhbHNlXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJsaVwiLFxyXG4gICAgICAgICAgICBudWxsLFxyXG4gICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAge2NsYXNzTmFtZTogXCJjaGVja2JveCBjaGVja2JveC0za2FlU1UgZGEtY2hlY2tib3hcIiwgb25DbGljazogdGhpcy5vbkNsaWNrfSxcclxuICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwiY2hlY2tib3gtaW5uZXIgY2hlY2tib3hJbm5lci0zeWpjUGUgZGEtY2hlY2tib3hJbm5lclwifSxcclxuICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7Y2xhc3NOYW1lOiBcImNoZWNrYm94RWxlbWVudC0xcVYzM3AgZGEtY2hlY2tib3hFbGVtZW50XCIsIGNoZWNrZWQ6IHRoaXMuc3RhdGUuY2hlY2tlZCwgb25DaGFuZ2U6ICgpID0+IHt9LCB0eXBlOiBcImNoZWNrYm94XCJ9KSxcclxuICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIG51bGwpXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgIFwic3BhblwiLFxyXG4gICAgICAgICAgICAgICAgICAgIG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy50ZXh0XHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2xpY2soKSB7XHJcbiAgICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZSh0aGlzLnByb3BzLmlkLCAhdGhpcy5zdGF0ZS5jaGVja2VkKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgY2hlY2tlZDogIXRoaXMuc3RhdGUuY2hlY2tlZFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L2NvbnRlbnRDb2x1bW4uanM/MjRiNiJdLCJuYW1lcyI6WyJWMkNfQ29udGVudENvbHVtbiIsIkJEVjIiLCJyZWFjdENvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJyZW5kZXIiLCJyZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJ0aXRsZSIsImNoaWxkcmVuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLGlCQUFOLFNBQWdDQywyQ0FBSSxDQUFDQyxjQUFyQyxDQUFvRDtBQUMvREMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFdBQU9KLDJDQUFJLENBQUNLLEtBQUwsQ0FBV0MsYUFBWCxDQUNILEtBREcsRUFFSDtBQUFDQyxlQUFTLEVBQUU7QUFBWixLQUZHLEVBR0hQLDJDQUFJLENBQUNLLEtBQUwsQ0FBV0MsYUFBWCxDQUNJLElBREosRUFFSTtBQUFDQyxlQUFTLEVBQUU7QUFBWixLQUZKLEVBR0ksS0FBS0osS0FBTCxDQUFXSyxLQUhmLENBSEcsRUFRSCxLQUFLTCxLQUFMLENBQVdNLFFBUlIsQ0FBUDtBQVVIOztBQWhCOEQiLCJmaWxlIjoiLi9zcmMvcmVhY3QvY29udGVudENvbHVtbi5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCRFYyIGZyb20gXCIuLi92MlwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVjJDX0NvbnRlbnRDb2x1bW4gZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICB7Y2xhc3NOYW1lOiBcImNvbnRlbnRDb2x1bW4tMmhySVlIIGNvbnRlbnRDb2x1bW5EZWZhdWx0LTFWUWtHTSBjb250ZW50LWNvbHVtbiBkZWZhdWx0XCJ9LFxyXG4gICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICBcImgyXCIsXHJcbiAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcInVpLWZvcm0tdGl0bGUgaDIgbWFyZ2luLXJlc2V0IG1hcmdpbi1ib3R0b20tMjBcIn0sXHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLnRpdGxlXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIHRoaXMucHJvcHMuY2hpbGRyZW5cclxuICAgICAgICApO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L2Nzc0VkaXRvci5qcz81NWY5Il0sIm5hbWVzIjpbIlYyQ19Dc3NFZGl0b3IiLCJCRFYyIiwicmVhY3RDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwic2VsZiIsImxpbmVzIiwic2V0SW5pdGlhbFN0YXRlIiwiYXR0YWNoIiwiYmluZCIsImRldGFjaGVkRWRpdG9yIiwicmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiVjJDX0Nzc0VkaXRvckRldGFjaGVkIiwib25DbGljayIsInVwZGF0ZUNzcyIsInNhdmVDc3MiLCJkZXRhY2giLCJzdGF0ZSIsImRldGFjaGVkIiwiZWRpdG9yRGV0YWNoZWQiLCJjb21wb25lbnREaWRNb3VudCIsImVkaXRvciIsImFjZSIsImVkaXQiLCJzZXRUaGVtZSIsInNlc3Npb24iLCJzZXRNb2RlIiwic2V0U2hvd1ByaW50TWFyZ2luIiwic2V0Rm9udFNpemUiLCJvbiIsInNldHRpbmdzQ29va2llIiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJkZXN0cm95IiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwicHJldlN0YXRlIiwicmVhY3REb20iLCJ1bm1vdW50Q29tcG9uZW50QXROb2RlIiwiZGV0YWNoZWRSb290IiwiY29kZU1pcnJvciIsIm9wdGlvbnMiLCJsaW5lTnVtYmVycyIsIm1vZGUiLCJpbmRlbnRVbml0IiwidGhlbWUiLCJzY3JvbGxiYXJTdHlsZSIsImNzcyIsIl9jY3NzIiwiRGF0YVN0b3JlIiwiZ2V0QkREYXRhIiwiY2NzcyIsImF0b2IiLCJ1cGRhdGVMaW5lQ291bnQiLCJsaW5lQ291bnQiLCJyZWZzIiwidmFsdWUiLCJzcGxpdCIsImxlbmd0aCIsInRleHRDb250ZW50IiwiQXJyYXkiLCJmcm9tIiwiXyIsImkiLCJqb2luIiwicmVuZGVyIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJwYWRkaW5nIiwiaWQiLCJTZXR0aW5nc1RpdGxlIiwidGV4dCIsInJlZiIsIkNoZWNrYm94Iiwib25DaGFuZ2UiLCJjaGVja2VkIiwiYm9yZGVyUmFkaXVzIiwiYm9yZGVyUmlnaHQiLCJib3JkZXJMZWZ0IiwiZm9udFNpemUiLCJtYXJnaW5MZWZ0IiwiYXJnIiwiU2V0dGluZ3MiLCJzYXZlU2V0dGluZ3MiLCIkIiwiYXBwZW5kIiwiZ2V0VmFsdWUiLCJhcHBlbmRUbyIsImRvY3VtZW50IiwiaGVhZCIsInNldEJERGF0YSIsImJ0b2EiLCJzZXRTdGF0ZSIsImRyb290IiwiY29uc29sZSIsImxvZyIsIl9yb290IiwiaW5qZWN0RGV0YWNoZWRSb290IiwiaW5zZXJ0QWZ0ZXIiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRWUsTUFBTUEsYUFBTixTQUE0QkMsMkNBQUksQ0FBQ0MsY0FBakMsQ0FBZ0Q7QUFFM0RDLGFBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2YsVUFBTUEsS0FBTjtBQUNBLFVBQU1DLElBQUksR0FBRyxJQUFiO0FBQ0FBLFFBQUksQ0FBQ0QsS0FBTCxDQUFXRSxLQUFYLEdBQW1CLENBQW5CO0FBQ0FELFFBQUksQ0FBQ0UsZUFBTDtBQUNBRixRQUFJLENBQUNHLE1BQUwsR0FBY0gsSUFBSSxDQUFDRyxNQUFMLENBQVlDLElBQVosQ0FBaUJKLElBQWpCLENBQWQ7QUFDQUEsUUFBSSxDQUFDSyxjQUFMLEdBQXNCVCwyQ0FBSSxDQUFDVSxLQUFMLENBQVdDLGFBQVgsQ0FBeUJDLDBEQUF6QixFQUFnRDtBQUFDTCxZQUFNLEVBQUVILElBQUksQ0FBQ0c7QUFBZCxLQUFoRCxDQUF0QjtBQUNBSCxRQUFJLENBQUNTLE9BQUwsR0FBZVQsSUFBSSxDQUFDUyxPQUFMLENBQWFMLElBQWIsQ0FBa0JKLElBQWxCLENBQWY7QUFDQUEsUUFBSSxDQUFDVSxTQUFMLEdBQWlCVixJQUFJLENBQUNVLFNBQUwsQ0FBZU4sSUFBZixDQUFvQkosSUFBcEIs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RUFBMENtRixLQUExQztBQUNIOztBQUVELE1BQUl0RCxZQUFKLEdBQW1CO0FBQ2YsVUFBTXlELEtBQUssR0FBR1osQ0FBQyxDQUFDLGdDQUFELENBQWY7O0FBQ0EsUUFBSSxDQUFDWSxLQUFLLENBQUN0QyxNQUFYLEVBQW1CO0FBQ2YsVUFBSSxDQUFDLEtBQUt1QyxrQkFBTCxFQUFMLEVBQWdDLE9BQU8sSUFBUDtBQUNoQyxhQUFPLEtBQUsxRCxZQUFaO0FBQ0g7O0FBQ0QsV0FBT3lELEtBQUssQ0FBQyxDQUFELENBQVo7QUFDSDs7QUFFREMsb0JBQWtCLEdBQUc7QUFDakIsUUFBSSxDQUFDYixDQUFDLENBQUMsbUJBQUQsQ0FBRCxDQUF1QjFCLE1BQTVCLEVBQW9DLE9BQU8sS0FBUDtBQUNwQzBCLEtBQUMsQ0FBQyxRQUFELEVBQVc7QUFDUmYsUUFBRSxFQUFFO0FBREksS0FBWCxDQUFELENBRUc2QixXQUZILENBRWVkLENBQUMsQ0FBQyxtQkFBRCxDQUZoQjtBQUdBLFdBQU8sSUFBUDtBQUNIOztBQUVENUUsUUFBTSxHQUFHO0FBQ0wsVUFBTUgsSUFBSSxHQUFHLElBQWI7QUFDQUEsUUFBSSxDQUFDdUYsUUFBTCxDQUFjO0FBQ1Z6RSxjQUFRLEVBQUU7QUFEQSxLQUFkO0FBR0g7O0FBbE8wRCIsImZpbGUiOiIuL3NyYy9yZWFjdC9jc3NFZGl0b3IuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3NldHRpbmdzQ29va2llfSBmcm9tIFwiLi4vMGdsb2JhbHNcIjtcclxuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuLi9zZXR0aW5nc1BhbmVsXCI7XHJcbmltcG9ydCBCRFYyIGZyb20gXCIuLi92MlwiO1xyXG5pbXBvcnQgRGF0YVN0b3JlIGZyb20gXCIuLi9kYXRhU3RvcmVcIjtcclxuXHJcbmltcG9ydCBTZXR0aW5nc1RpdGxlIGZyb20gXCIuL3NldHRpbmdzVGl0bGVcIjtcclxuaW1wb3J0IENoZWNrYm94IGZyb20gXCIuL2NoZWNrYm94XCI7XHJcbmltcG9ydCBWMkNfQ3NzRWRpdG9yRGV0YWNoZWQgZnJvbSBcIi4vY3NzRWRpdG9yRGV0YWNoZWRcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFYyQ19Dc3NFZGl0b3IgZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcclxuICAgICAgICBzZWxmLnByb3BzLmxpbmVzID0gMDtcclxuICAgICAgICBzZWxmLnNldEluaXRpYWxTdGF0ZSgpO1xyXG4gICAgICAgIHNlbGYuYXR0YWNoID0gc2VsZi5hdHRhY2guYmluZChzZWxmKTtcclxuICAgICAgICBzZWxmLmRldGFjaGVkRWRpdG9yID0gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFYyQ19Dc3NFZGl0b3JEZXRhY2hlZCwge2F0dGFjaDogc2VsZi5hdHRhY2h9KTtcclxuICAgICAgICBzZWxmLm9uQ2xpY2sgPSBzZWxmLm9uQ2xpY2suYmluZChzZWxmKTtcclxuICAgICAgICBzZWxmLnVwZGF0ZUNzcyA9IHNlbGYudXBkYXRlQ3NzLmJpbmQoc2VsZik7XHJcbiAgICAgICAgc2VsZi5zYXZlQ3NzID0gc2VsZi5zYXZlQ3NzLmJpbmQoc2VsZik7XHJcbiAgICAgICAgc2VsZi5kZXRhY2ggPSBzZWxmLmRldGFjaC5iaW5kKHNlbGYpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldEluaXRpYWxTdGF0ZSgpIHtcclxuICAgICAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICAgICAgICBkZXRhY2hlZDogdGhpcy5wcm9wcy5kZXRhY2hlZCB8fCBCRFYyLmVkaXRvckRldGFjaGVkXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgICAgICAvLyB0aGlzLnVwZGF0ZUxpbmVDb3VudCgpO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yID0gYWNlLmVkaXQoXCJiZC1jdXN0b21jc3MtZWRpdG9yXCIpO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yLnNldFRoZW1lKFwiYWNlL3RoZW1lL21vbm9rYWlcIik7XHJcbiAgICAgICAgdGhpcy5lZGl0b3Iuc2Vzc2lvbi5zZXRNb2RlKFwiYWNlL21vZGUvY3NzXCIpO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yLnNldFNob3dQcmludE1hcmdpbihmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5lZGl0b3Iuc2V0Rm9udFNpemUoMTQpO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKCFzZXR0aW5nc0Nvb2tpZVtcImJkYS1jc3MtMFwiXSkgcmV0dXJuO1xyXG4gICAgICAgICAgICB0aGlzLnNhdmVDc3MoKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVDc3MoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcclxuICAgICAgICB0aGlzLmVkaXRvci5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcywgcHJldlN0YXRlKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgaWYgKHByZXZTdGF0ZS5kZXRhY2hlZCAmJiAhc2VsZi5zdGF0ZS5kZXRhY2hlZCkge1xyXG4gICAgICAgICAgICBCRFYyLnJlYWN0RG9tLnVubW91bnRDb21wb25lbnRBdE5vZGUoc2VsZi5kZXRhY2hlZFJvb3QpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb2RlTWlycm9yKCkge1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBvcHRpb25zKCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGxpbmVOdW1iZXJzOiB0cnVlLFxyXG4gICAgICAgICAgICBtb2RlOiBcImNzc1wiLFxyXG4gICAgICAgICAgICBpbmRlbnRVbml0OiA0LFxyXG4gICAgICAgICAgICB0aGVtZTogXCJtYXRlcmlhbFwiLFxyXG4gICAgICAgICAgICBzY3JvbGxiYXJTdHlsZTogXCJzaW1wbGVcIlxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNzcygpIHtcclxuICAgICAgICBjb25zdCBfY2NzcyA9IERhdGFTdG9yZS5nZXRCRERhdGEoXCJiZGN1c3RvbWNzc1wiKTtcclxuICAgICAgICBsZXQgY2NzcyA9IFwiXCI7XHJcbiAgICAgICAgaWYgKF9jY3NzICYmIF9jY3NzICE9PSBcIlwiKSB7XHJcbiAgICAgICAgICAgIGNjc3MgPSBhdG9iKF9jY3NzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGNjc3M7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlTGluZUNvdW50KCkge1xyXG4gICAgICAgIGNvbnN0IGxpbmVDb3VudCA9IHRoaXMucmVmcy5lZGl0b3IudmFsdWUuc3BsaXQoXCJcXG5cIikubGVuZ3RoO1xyXG4gICAgICAgIGlmIChsaW5lQ291bnQgPT0gdGhpcy5wcm9wcy5saW5lcykgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMucmVmcy5saW5lcy50ZXh0Q29udGVudCA9IEFycmF5LmZyb20obmV3IEFycmF5KGxpbmVDb3VudCksIChfLCBpKSA9PiBpICsgMSkuam9pbihcIi5cXG5cIikgKyBcIi5cIjtcclxuICAgICAgICB0aGlzLnByb3BzLmxpbmVzID0gbGluZUNvdW50O1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcclxuXHJcbiAgICAgICAgY29uc3Qge2RldGFjaGVkfSA9IHNlbGYuc3RhdGU7XHJcbiAgICAgICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAge2NsYXNzTmFtZTogXCJjb250ZW50Q29sdW1uLTJocklZSCBjb250ZW50Q29sdW1uRGVmYXVsdC0xVlFrR00gY29udGVudC1jb2x1bW4gZGVmYXVsdFwiLCBzdHlsZToge3BhZGRpbmc6IFwiNjBweCA0MHB4IDBweFwifX0sXHJcbiAgICAgICAgICAgIGRldGFjaGVkICYmIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICB7aWQ6IFwiZWRpdG9yLWRldGFjaGVkXCJ9LFxyXG4gICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzVGl0bGUsIHt0ZXh0OiBcIkN1c3RvbSBDU1MgRWRpdG9yXCJ9KSxcclxuICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICBcImgzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICBcIkVkaXRvciBEZXRhY2hlZFwiXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgIFwiYnV0dG9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAge2NsYXNzTmFtZTogXCJidG4gYnRuLXByaW1hcnlcIiwgb25DbGljazogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hdHRhY2goKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX0sXHJcbiAgICAgICAgICAgICAgICAgICAgXCJBdHRhY2hcIlxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAhZGV0YWNoZWQgJiYgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAgICAgIG51bGwsXHJcbiAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NUaXRsZSwge3RleHQ6IFwiQ3VzdG9tIENTUyBFZGl0b3JcIn0pLFxyXG4gICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiZWRpdG9yLXdyYXBwZXJcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtpZDogXCJiZC1jdXN0b21jc3MtZWRpdG9yXCIsIGNsYXNzTmFtZTogXCJlZGl0b3JcIiwgcmVmOiBcImVkaXRvclwifSwgc2VsZi5jc3MpXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICAgICAge2lkOiBcImJkLWN1c3RvbWNzcy1hdHRhY2gtY29udHJvbHNcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcInVsXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwiY2hlY2tib3gtZ3JvdXBcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChDaGVja2JveCwge2lkOiBcImxpdmUtdXBkYXRlXCIsIHRleHQ6IFwiTGl2ZSBVcGRhdGVcIiwgb25DaGFuZ2U6IHRoaXMub25DaGFuZ2UsIGNoZWNrZWQ6IHNldHRpbmdzQ29va2llW1wiYmRhLWNzcy0wXCJdfSlcclxuICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAge2lkOiBcImJkLWN1c3RvbWNzcy1kZXRhY2gtY29udHJvbHMtYnV0dG9uXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImJ1dHRvblwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3N0eWxlOiB7Ym9yZGVyUmFkaXVzOiBcIjNweCAwIDAgM3B4XCIsIGJvcmRlclJpZ2h0OiBcIjFweCBzb2xpZCAjM2Y0MTQ2XCJ9LCBjbGFzc05hbWU6IFwiYnRuIGJ0bi1wcmltYXJ5XCIsIG9uQ2xpY2s6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5vbkNsaWNrKFwidXBkYXRlXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJVcGRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImJ1dHRvblwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3N0eWxlOiB7Ym9yZGVyUmFkaXVzOiBcIjBcIiwgYm9yZGVyTGVmdDogXCIxcHggc29saWQgIzJkMmQyZFwiLCBib3JkZXJSaWdodDogXCIxcHggc29saWQgIzJkMmQyZFwifSwgY2xhc3NOYW1lOiBcImJ0biBidG4tcHJpbWFyeVwiLCBvbkNsaWNrOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYub25DbGljayhcInNhdmVcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNhdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImJ1dHRvblwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3N0eWxlOiB7Ym9yZGVyUmFkaXVzOiBcIjAgM3B4IDNweCAwXCIsIGJvcmRlckxlZnQ6IFwiMXB4IHNvbGlkICMzZjQxNDZcIn0sIGNsYXNzTmFtZTogXCJidG4gYnRuLXByaW1hcnlcIiwgb25DbGljazogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm9uQ2xpY2soXCJkZXRhY2hcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRldGFjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic3BhblwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3N0eWxlOiB7Zm9udFNpemU6IFwiMTBweFwiLCBtYXJnaW5MZWZ0OiBcIjVweFwifX0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlVuc2F2ZWQgY2hhbmdlcyBhcmUgbG9zdCBvbiBkZXRhY2hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJoZWxwLXRleHRcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByZXNzIFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiY29kZVwiLCB7Y2xhc3NOYW1lOiBcImlubGluZVwifSwgXCJjdHJsXCIpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIrXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiaW5saW5lXCJ9LCBcIixcIiksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiB3aXRoIHRoZSBlZGl0b3IgZm9jdXNlZCB0byBhY2Nlc3MgdGhlIGVkaXRvcidzIHNldHRpbmdzLlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2xpY2soYXJnKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgc3dpdGNoIChhcmcpIHtcclxuICAgICAgICAgICAgY2FzZSBcInVwZGF0ZVwiOlxyXG4gICAgICAgICAgICAgICAgc2VsZi51cGRhdGVDc3MoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwic2F2ZVwiOlxyXG4gICAgICAgICAgICAgICAgc2VsZi5zYXZlQ3NzKCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImRldGFjaFwiOlxyXG4gICAgICAgICAgICAgICAgc2VsZi5kZXRhY2goKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkNoYW5nZShpZCwgY2hlY2tlZCkge1xyXG4gICAgICAgIHN3aXRjaCAoaWQpIHtcclxuICAgICAgICAgICAgY2FzZSBcImxpdmUtdXBkYXRlXCI6XHJcbiAgICAgICAgICAgICAgICBzZXR0aW5nc0Nvb2tpZVtcImJkYS1jc3MtMFwiXSA9IGNoZWNrZWQ7XHJcbiAgICAgICAgICAgICAgICBTZXR0aW5ncy5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVDc3MoKSB7XHJcbiAgICAgICAgaWYgKCQoXCIjY3VzdG9tY3NzXCIpLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgICQoXCJoZWFkXCIpLmFwcGVuZChcIjxzdHlsZSBpZD1cXFwiY3VzdG9tY3NzXFxcIj48L3N0eWxlPlwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJChcIiNjdXN0b21jc3NcIikudGV4dCh0aGlzLmVkaXRvci5zZXNzaW9uLmdldFZhbHVlKCkpLmRldGFjaCgpLmFwcGVuZFRvKGRvY3VtZW50LmhlYWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVDc3MoKSB7XHJcbiAgICAgICAgRGF0YVN0b3JlLnNldEJERGF0YShcImJkY3VzdG9tY3NzXCIsIGJ0b2EodGhpcy5lZGl0b3Iuc2Vzc2lvbi5nZXRWYWx1ZSgpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZGV0YWNoKCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIHNlbGYuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBkZXRhY2hlZDogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbnN0IGRyb290ID0gc2VsZi5kZXRhY2hlZFJvb3Q7XHJcbiAgICAgICAgaWYgKCFkcm9vdCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkZBSUxFRCBUTyBJTkpFQ1QgUk9PVDogLmFwcFwiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBCRFYyLnJlYWN0RG9tLnJlbmRlcihzZWxmLmRldGFjaGVkRWRpdG9yLCBkcm9vdCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRldGFjaGVkUm9vdCgpIHtcclxuICAgICAgICBjb25zdCBfcm9vdCA9ICQoXCIjYmQtY3VzdG9tY3NzLWRldGFjaC1jb250YWluZXJcIik7XHJcbiAgICAgICAgaWYgKCFfcm9vdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmluamVjdERldGFjaGVkUm9vdCgpKSByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGV0YWNoZWRSb290O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gX3Jvb3RbMF07XHJcbiAgICB9XHJcblxyXG4gICAgaW5qZWN0RGV0YWNoZWRSb290KCkge1xyXG4gICAgICAgIGlmICghJChcIi5hcHAsIC5hcHAtMnJFb09wXCIpLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICQoXCI8ZGl2Lz5cIiwge1xyXG4gICAgICAgICAgICBpZDogXCJiZC1jdXN0b21jc3MtZGV0YWNoLWNvbnRhaW5lclwiXHJcbiAgICAgICAgfSkuaW5zZXJ0QWZ0ZXIoJChcIi5hcHAsIC5hcHAtMnJFb09wXCIpKTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBhdHRhY2goKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgc2VsZi5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGRldGFjaGVkOiBmYWxzZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L2Nzc0VkaXRvckRldGFjaGVkLmpzPzc2ZTciXSwibmFtZXMiOlsiVjJDX0Nzc0VkaXRvckRldGFjaGVkIiwiQkRWMiIsInJlYWN0Q29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInNlbGYiLCJvbkNsaWNrIiwiYmluZCIsInVwZGF0ZUNzcyIsInNhdmVDc3MiLCJvbkNoYW5nZSIsImNvbXBvbmVudERpZE1vdW50IiwiJCIsImFkZENsYXNzIiwiZWRpdG9yRGV0YWNoZWQiLCJlZGl0b3IiLCJhY2UiLCJlZGl0Iiwic2V0VGhlbWUiLCJzZXNzaW9uIiwic2V0TW9kZSIsInNldFNob3dQcmludE1hcmdpbiIsInNldEZvbnRTaXplIiwib24iLCJzZXR0aW5nc0Nvb2tpZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwicmVtb3ZlQ2xhc3MiLCJkZXN0cm95IiwidXBkYXRlTGluZUNvdW50IiwibGluZUNvdW50IiwicmVmcyIsInZhbHVlIiwic3BsaXQiLCJsZW5ndGgiLCJsaW5lcyIsInRleHRDb250ZW50IiwiQXJyYXkiLCJmcm9tIiwiXyIsImkiLCJqb2luIiwib3B0aW9ucyIsImxpbmVOdW1iZXJzIiwibW9kZSIsImluZGVudFVuaXQiLCJ0aGVtZSIsInNjcm9sbGJhclN0eWxlIiwiY3NzIiwiX2Njc3MiLCJEYXRhU3RvcmUiLCJnZXRCRERhdGEiLCJjY3NzIiwiYXRvYiIsInJvb3QiLCJfcm9vdCIsImluamVjdFJvb3QiLCJkZXRhY2hlZFJvb3QiLCJpZCIsImluc2VydEFmdGVyIiwicmVuZGVyIiwicmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwicmVmIiwiQ2hlY2tib3giLCJ0ZXh0IiwiY2hlY2tlZCIsInN0eWxlIiwiYm9yZGVyUmFkaXVzIiwiYm9yZGVyUmlnaHQiLCJib3JkZXJMZWZ0IiwiZm9udFNpemUiLCJtYXJnaW5MZWZ0IiwiU2V0dGluZ3MiLCJzYXZlU2V0dGluZ3MiLCJhdHRhY2giLCJyZWFjdERvbSIsInVubW91bnRDb21wb25lbnRBdE5vZGUiLCJyZW1vdmUiLCJhcHBlbmQiLCJnZXRWYWx1ZSIsImRldGFjaCIsImFwcGVuZFRvIiwiZG9jdW1lbnQiLCJoZWFkIiwic2V0QkREYXRhIiwiYnRvYSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRWUsTUFBTUEscUJBQU4sU0FBb0NDLDJDQUFJLENBQUNDLGNBQXpDLENBQXdEO0FBRW5FQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDQSxVQUFNQyxJQUFJLEdBQUcsSUFBYjtBQUNBQSxRQUFJLENBQUNDLE9BQUwsR0FBZUQsSUFBSSxDQUFDQyxPQUFMLENBQWFDLElBQWIsQ0FBa0JGLElBQWxCLENBQWY7QUFDQUEsUUFBSSxDQUFDRyxTQUFMLEdBQWlCSCxJQUFJLENBQUNHLFNBQUwsQ0FBZUQsSUFBZixDQUFvQkYsSUFBcEIsQ0FBakI7QUFDQUEsUUFBSSxDQUFDSSxPQUFMLEdBQWVKLElBQUksQ0FBQ0ksT0FBTCxDQUFhRixJQUFiLENBQWtCRixJQUFsQixDQUFmO0FBQ0FBLFFBQUksQ0FBQ0ssUUFBTCxHQUFnQkwsSUFBSSxDQUFDSyxRQUFMLENBQWNILElBQWQsQ0FBbUJGLElBQW5CLENBQWhCO0FBQ0g7O0FBRURNLG1CQUFpQixHQUFHO0FBQ2hCQyxLQUFDLENBQUMsWUFBRCxDQUFELENBQWdCQyxRQUFoQixDQUF5QixvQkFBekI7QUFDQVosK0NBQUksQ0FBQ2EsY0FBTCxHQUFzQixJQUF0QixDQUZnQixDQUdoQjs7QUFDQSxTQUFLQyxNQUFMLEdBQWNDLEdBQUcsQ0FBQ0MsSUFBSixDQUFTLDhCQUFULENBQWQ7QUFDQSxTQUFLRixNQUFMLENBQVlHLFFBQVosQ0FBcUIsbUJBQXJCO0FBQ0EsU0FBS0gsTUFBTCxDQUFZSSxPQUFaLENBQW9CQyxPQUFwQixDQUE0QixjQUE1QjtBQUNBLFNBQUtM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QWtDNUIsSUFBSSxDQUFDRCxLQUFMLENBQVd1RSxNQUFYO0FBQ2xDMUUsbURBQUksQ0FBQzJFLFFBQUwsQ0FBY0Msc0JBQWQsQ0FBcUN4RSxJQUFJLENBQUNnRCxJQUExQztBQUNBaEQsWUFBSSxDQUFDZ0QsSUFBTCxDQUFVeUIsTUFBVjtBQUNBOztBQUNKLFdBQUssUUFBTDtBQUNJekUsWUFBSSxDQUFDRyxTQUFMO0FBQ0E7O0FBQ0osV0FBSyxNQUFMO0FBQ0lILFlBQUksQ0FBQ0ksT0FBTDtBQUNBO0FBWFI7QUFhSDs7QUFFREQsV0FBUyxHQUFHO0FBQ1IsUUFBSUksQ0FBQyxDQUFDLFlBQUQsQ0FBRCxDQUFnQnFCLE1BQWhCLElBQTBCLENBQTlCLEVBQWlDO0FBQzdCckIsT0FBQyxDQUFDLE1BQUQsQ0FBRCxDQUFVbUUsTUFBVixDQUFpQixrQ0FBakI7QUFDSDs7QUFDRG5FLEtBQUMsQ0FBQyxZQUFELENBQUQsQ0FBZ0JxRCxJQUFoQixDQUFxQixLQUFLbEQsTUFBTCxDQUFZSSxPQUFaLENBQW9CNkQsUUFBcEIsRUFBckIsRUFBcURDLE1BQXJELEdBQThEQyxRQUE5RCxDQUF1RUMsUUFBUSxDQUFDQyxJQUFoRjtBQUNIOztBQUVEM0UsU0FBTyxHQUFHO0FBQ053QyxzREFBUyxDQUFDb0MsU0FBVixDQUFvQixhQUFwQixFQUFtQ0MsSUFBSSxDQUFDLEtBQUt2RSxNQUFMLENBQVlJLE9BQVosQ0FBb0I2RCxRQUFwQixFQUFELENBQXZDO0FBQ0g7O0FBdEtrRSIsImZpbGUiOiIuL3NyYy9yZWFjdC9jc3NFZGl0b3JEZXRhY2hlZC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7c2V0dGluZ3NDb29raWV9IGZyb20gXCIuLi8wZ2xvYmFsc1wiO1xyXG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4uL3NldHRpbmdzUGFuZWxcIjtcclxuaW1wb3J0IEJEVjIgZnJvbSBcIi4uL3YyXCI7XHJcbmltcG9ydCBEYXRhU3RvcmUgZnJvbSBcIi4uL2RhdGFTdG9yZVwiO1xyXG5cclxuaW1wb3J0IENoZWNrYm94IGZyb20gXCIuL2NoZWNrYm94XCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWMkNfQ3NzRWRpdG9yRGV0YWNoZWQgZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcclxuICAgICAgICBzZWxmLm9uQ2xpY2sgPSBzZWxmLm9uQ2xpY2suYmluZChzZWxmKTtcclxuICAgICAgICBzZWxmLnVwZGF0ZUNzcyA9IHNlbGYudXBkYXRlQ3NzLmJpbmQoc2VsZik7XHJcbiAgICAgICAgc2VsZi5zYXZlQ3NzID0gc2VsZi5zYXZlQ3NzLmJpbmQoc2VsZik7XHJcbiAgICAgICAgc2VsZi5vbkNoYW5nZSA9IHNlbGYub25DaGFuZ2UuYmluZChzZWxmKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgICAgICAkKFwiI2FwcC1tb3VudFwiKS5hZGRDbGFzcyhcImJkLWRldGFjaGVkLWVkaXRvclwiKTtcclxuICAgICAgICBCRFYyLmVkaXRvckRldGFjaGVkID0gdHJ1ZTtcclxuICAgICAgICAvLyB0aGlzLnVwZGF0ZUxpbmVDb3VudCgpO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yID0gYWNlLmVkaXQoXCJiZC1jdXN0b21jc3MtZWRpdG9yLWRldGFjaGVkXCIpO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yLnNldFRoZW1lKFwiYWNlL3RoZW1lL21vbm9rYWlcIik7XHJcbiAgICAgICAgdGhpcy5lZGl0b3Iuc2Vzc2lvbi5zZXRNb2RlKFwiYWNlL21vZGUvY3NzXCIpO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yLnNldFNob3dQcmludE1hcmdpbihmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5lZGl0b3Iuc2V0Rm9udFNpemUoMTQpO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKCFzZXR0aW5nc0Nvb2tpZVtcImJkYS1jc3MtMFwiXSkgcmV0dXJuO1xyXG4gICAgICAgICAgICB0aGlzLnNhdmVDc3MoKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVDc3MoKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XHJcbiAgICAgICAgJChcIiNhcHAtbW91bnRcIikucmVtb3ZlQ2xhc3MoXCJiZC1kZXRhY2hlZC1lZGl0b3JcIik7XHJcbiAgICAgICAgQkRWMi5lZGl0b3JEZXRhY2hlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yLmRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVMaW5lQ291bnQoKSB7XHJcbiAgICAgICAgY29uc3QgbGluZUNvdW50ID0gdGhpcy5yZWZzLmVkaXRvci52YWx1ZS5zcGxpdChcIlxcblwiKS5sZW5ndGg7XHJcbiAgICAgICAgaWYgKGxpbmVDb3VudCA9PSB0aGlzLnByb3BzLmxpbmVzKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5yZWZzLmxpbmVzLnRleHRDb250ZW50ID0gQXJyYXkuZnJvbShuZXcgQXJyYXkobGluZUNvdW50KSwgKF8sIGkpID0+IGkgKyAxKS5qb2luKFwiLlxcblwiKSArIFwiLlwiO1xyXG4gICAgICAgIHRoaXMucHJvcHMubGluZXMgPSBsaW5lQ291bnQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IG9wdGlvbnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgbGluZU51bWJlcnM6IHRydWUsXHJcbiAgICAgICAgICAgIG1vZGU6IFwiY3NzXCIsXHJcbiAgICAgICAgICAgIGluZGVudFVuaXQ6IDQsXHJcbiAgICAgICAgICAgIHRoZW1lOiBcIm1hdGVyaWFsXCIsXHJcbiAgICAgICAgICAgIHNjcm9sbGJhclN0eWxlOiBcInNpbXBsZVwiXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY3NzKCkge1xyXG4gICAgICAgIGNvbnN0IF9jY3NzID0gRGF0YVN0b3JlLmdldEJERGF0YShcImJkY3VzdG9tY3NzXCIpO1xyXG4gICAgICAgIGxldCBjY3NzID0gXCJcIjtcclxuICAgICAgICBpZiAoX2Njc3MgJiYgX2Njc3MgIT09IFwiXCIpIHtcclxuICAgICAgICAgICAgY2NzcyA9IGF0b2IoX2Njc3MpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gY2NzcztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcm9vdCgpIHtcclxuICAgICAgICBjb25zdCBfcm9vdCA9ICQoXCIjYmQtY3VzdG9tY3NzLWRldGFjaC1jb250YWluZXJcIik7XHJcbiAgICAgICAgaWYgKCFfcm9vdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmluamVjdFJvb3QoKSkgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRldGFjaGVkUm9vdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIF9yb290WzBdO1xyXG4gICAgfVxyXG5cclxuICAgIGluamVjdFJvb3QoKSB7XHJcbiAgICAgICAgaWYgKCEkKFwiLmFwcCwgLmFwcC0yckVvT3BcIikubGVuZ3RoKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgJChcIjxkaXYvPlwiLCB7XHJcbiAgICAgICAgICAgIGlkOiBcImJkLWN1c3RvbWNzcy1kZXRhY2gtY29udGFpbmVyXCJcclxuICAgICAgICB9KS5pbnNlcnRBZnRlcigkKFwiLmFwcCwgLmFwcC0yckVvT3BcIikpO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcclxuICAgICAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICB7Y2xhc3NOYW1lOiBcImJkLWRldGFjaGVkLWNzcy1lZGl0b3JcIiwgaWQ6IFwiYmQtY3VzdG9tY3NzLWRldGFjaC1lZGl0b3JcIn0sXHJcbiAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICB7aWQ6IFwiYmQtY3VzdG9tY3NzLWlubmVycGFuZVwifSxcclxuICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImVkaXRvci13cmFwcGVyXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7aWQ6IFwiYmQtY3VzdG9tY3NzLWVkaXRvci1kZXRhY2hlZFwiLCBjbGFzc05hbWU6IFwiZWRpdG9yXCIsIHJlZjogXCJlZGl0b3JcIn0sIHNlbGYuY3NzKVxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHtpZDogXCJiZC1jdXN0b21jc3MtYXR0YWNoLWNvbnRyb2xzXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ1bFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcImNoZWNrYm94LWdyb3VwXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2hlY2tib3gsIHtpZDogXCJsaXZlLXVwZGF0ZVwiLCB0ZXh0OiBcIkxpdmUgVXBkYXRlXCIsIG9uQ2hhbmdlOiBzZWxmLm9uQ2hhbmdlLCBjaGVja2VkOiBzZXR0aW5nc0Nvb2tpZVtcImJkYS1jc3MtMFwiXX0pXHJcbiAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtpZDogXCJiZC1jdXN0b21jc3MtZGV0YWNoLWNvbnRyb2xzLWJ1dHRvblwifSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJidXR0b25cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzdHlsZToge2JvcmRlclJhZGl1czogXCIzcHggMCAwIDNweFwiLCBib3JkZXJSaWdodDogXCIxcHggc29saWQgIzNmNDE0NlwifSwgY2xhc3NOYW1lOiBcImJ0biBidG4tcHJpbWFyeVwiLCBvbkNsaWNrOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYub25DbGljayhcInVwZGF0ZVwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVXBkYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJidXR0b25cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzdHlsZToge2JvcmRlclJhZGl1czogXCIwXCIsIGJvcmRlckxlZnQ6IFwiMXB4IHNvbGlkICMyZDJkMmRcIiwgYm9yZGVyUmlnaHQ6IFwiMXB4IHNvbGlkICMyZDJkMmRcIn0sIGNsYXNzTmFtZTogXCJidG4gYnRuLXByaW1hcnlcIiwgb25DbGljazogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm9uQ2xpY2soXCJzYXZlXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTYXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJidXR0b25cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzdHlsZToge2JvcmRlclJhZGl1czogXCIwIDNweCAzcHggMFwiLCBib3JkZXJMZWZ0OiBcIjFweCBzb2xpZCAjM2Y0MTQ2XCJ9LCBjbGFzc05hbWU6IFwiYnRuIGJ0bi1wcmltYXJ5XCIsIG9uQ2xpY2s6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5vbkNsaWNrKFwiYXR0YWNoXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBdHRhY2hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInNwYW5cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzdHlsZToge2ZvbnRTaXplOiBcIjEwcHhcIiwgbWFyZ2luTGVmdDogXCI1cHhcIn19LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJVbnNhdmVkIGNoYW5nZXMgYXJlIGxvc3Qgb24gYXR0YWNoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DaGFuZ2UoaWQsIGNoZWNrZWQpIHtcclxuICAgICAgICBzd2l0Y2ggKGlkKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJsaXZlLXVwZGF0ZVwiOlxyXG4gICAgICAgICAgICAgICAgc2V0dGluZ3NDb29raWVbXCJiZGEtY3NzLTBcIl0gPSBjaGVja2VkO1xyXG4gICAgICAgICAgICAgICAgU2V0dGluZ3Muc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25DbGljayhpZCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIHN3aXRjaCAoaWQpIHtcclxuICAgICAgICAgICAgY2FzZSBcImF0dGFjaFwiOlxyXG4gICAgICAgICAgICAgICAgaWYgKCQoXCIjZWRpdG9yLWRldGFjaGVkXCIpLmxlbmd0aCkgc2VsZi5wcm9wcy5hdHRhY2goKTtcclxuICAgICAgICAgICAgICAgIEJEVjIucmVhY3REb20udW5tb3VudENvbXBvbmVudEF0Tm9kZShzZWxmLnJvb3QpO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5yb290LnJlbW92ZSgpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ1cGRhdGVcIjpcclxuICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlQ3NzKCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInNhdmVcIjpcclxuICAgICAgICAgICAgICAgIHNlbGYuc2F2ZUNzcygpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZUNzcygpIHtcclxuICAgICAgICBpZiAoJChcIiNjdXN0b21jc3NcIikubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgJChcImhlYWRcIikuYXBwZW5kKFwiPHN0eWxlIGlkPVxcXCJjdXN0b21jc3NcXFwiPjwvc3R5bGU+XCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAkKFwiI2N1c3RvbWNzc1wiKS50ZXh0KHRoaXMuZWRpdG9yLnNlc3Npb24uZ2V0VmFsdWUoKSkuZGV0YWNoKCkuYXBwZW5kVG8oZG9jdW1lbnQuaGVhZCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2F2ZUNzcygpIHtcclxuICAgICAgICBEYXRhU3RvcmUuc2V0QkREYXRhKFwiYmRjdXN0b21jc3NcIiwgYnRvYSh0aGlzLmVkaXRvci5zZXNzaW9uLmdldFZhbHVlKCkpKTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L2xheWVyLmpzP2IwZmMiXSwibmFtZXMiOlsiVjJDX0xheWVyIiwiQkRWMiIsInJlYWN0Q29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsImNvbXBvbmVudERpZE1vdW50IiwiJCIsIndpbmRvdyIsIm9uIiwiaWQiLCJlIiwid2hpY2giLCJyZWFjdERvbSIsInVubW91bnRDb21wb25lbnRBdE5vZGUiLCJyZWZzIiwicm9vdCIsInBhcmVudE5vZGUiLCJhbmltYXRlIiwib3BhY2l0eSIsInN0ZXAiLCJub3ciLCJjc3MiLCJkdXJhdGlvbiIsImRvbmUiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsIm9mZiIsInJvb3RJZCIsInJlbW92ZSIsInJlbW92ZUNsYXNzIiwiY29tcG9uZW50V2lsbE1vdW50IiwiYWRkQ2xhc3MiLCJyZW5kZXIiLCJyZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJyZWYiLCJzdHlsZSIsInRyYW5zZm9ybSIsImNoaWxkcmVuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLFNBQU4sU0FBd0JDLDJDQUFJLENBQUNDLGNBQTdCLENBQTRDO0FBRXZEQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDSDs7QUFFREMsbUJBQWlCLEdBQUc7QUFDaEJDLEtBQUMsQ0FBQ0MsTUFBRCxDQUFELENBQVVDLEVBQVYsQ0FBYyxTQUFRLEtBQUtKLEtBQUwsQ0FBV0ssRUFBRyxFQUFwQyxFQUF1Q0MsQ0FBQyxJQUFJO0FBQ3hDLFVBQUlBLENBQUMsQ0FBQ0MsS0FBRixLQUFZLEVBQWhCLEVBQW9CO0FBQ2hCVixtREFBSSxDQUFDVyxRQUFMLENBQWNDLHNCQUFkLENBQXFDLEtBQUtDLElBQUwsQ0FBVUMsSUFBVixDQUFlQyxVQUFwRDtBQUNIO0FBQ0osS0FKRDtBQU1BVixLQUFDLENBQUUsSUFBRyxLQUFLRixLQUFMLENBQVdL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QUFMLENBQVdrQyxRQUhSLENBQVA7QUFLSDs7QUF6RHNEIiwiZmlsZSI6Ii4vc3JjL3JlYWN0L2xheWVyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJEVjIgZnJvbSBcIi4uL3YyXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWMkNfTGF5ZXIgZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgICAgICAkKHdpbmRvdykub24oYGtleXVwLiR7dGhpcy5wcm9wcy5pZH1gLCBlID0+IHtcclxuICAgICAgICAgICAgaWYgKGUud2hpY2ggPT09IDI3KSB7XHJcbiAgICAgICAgICAgICAgICBCRFYyLnJlYWN0RG9tLnVubW91bnRDb21wb25lbnRBdE5vZGUodGhpcy5yZWZzLnJvb3QucGFyZW50Tm9kZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgJChgIyR7dGhpcy5wcm9wcy5pZH1gKS5hbmltYXRlKHtvcGFjaXR5OiAxfSwge1xyXG4gICAgICAgICAgICBzdGVwOiBmdW5jdGlvbihub3cpIHtcclxuICAgICAgICAgICAgICAkKHRoaXMpLmNzcyhcInRyYW5zZm9ybVwiLCBgc2NhbGUoJHsxLjEgLSAwLjEgKiBub3d9KSB0cmFuc2xhdGVaKDBweClgKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZHVyYXRpb246IDIwMCxcclxuICAgICAgICAgICAgZG9uZTogKCkgPT4geyQoYCMke3RoaXMucHJvcHMuaWR9YCkuY3NzKFwib3BhY2l0eVwiLCBcIlwiKS5jc3MoXCJ0cmFuc2Zvcm1cIiwgXCJcIik7fVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgICAgICQod2luZG93KS5vZmYoYGtleXVwLiR7dGhpcy5wcm9wcy5pZH1gKTtcclxuICAgICAgICAkKGAjJHt0aGlzLnByb3BzLmlkfWApLmFuaW1hdGUoe29wYWNpdHk6IDB9LCB7XHJcbiAgICAgICAgICAgIHN0ZXA6IGZ1bmN0aW9uKG5vdykge1xyXG4gICAgICAgICAgICAgICQodGhpcykuY3NzKFwidHJhbnNmb3JtXCIsIGBzY2FsZSgkezEuMSAtIDAuMSAqIG5vd30pIHRyYW5zbGF0ZVooMHB4KWApO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBkdXJhdGlvbjogMjAwLFxyXG4gICAgICAgICAgICBkb25lOiAoKSA9PiB7JChgIyR7dGhpcy5wcm9wcy5yb290SWR9YCkucmVtb3ZlKCk7fVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAkKFwiW2NsYXNzKj1cXFwibGF5ZXItXFxcIl1cIikucmVtb3ZlQ2xhc3MoXCJwdWJsaWNTZXJ2ZXJzT3BlblwiKS5hbmltYXRlKHtvcGFjaXR5OiAxfSwge1xyXG4gICAgICAgICAgICBzdGVwOiBmdW5jdGlvbihub3cpIHtcclxuICAgICAgICAgICAgICAkKHRoaXMpLmNzcyhcInRyYW5zZm9ybVwiLCBgc2NhbGUoJHswLjA3ICogbm93ICsgMC45M30pIHRyYW5zbGF0ZVooMHB4KWApO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBkdXJhdGlvbjogMjAwLFxyXG4gICAgICAgICAgICBkb25lOiAoKSA9PiB7JChcIltjbGFzcyo9XFxcImxheWVyLVxcXCJdXCIpLmNzcyhcIm9wYWNpdHlcIiwgXCJcIikuY3NzKFwidHJhbnNmb3JtXCIsIFwiXCIpO31cclxuICAgICAgICB9KTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgY29tcG9uZW50V2lsbE1vdW50KCkge1xyXG4gICAgICAgICQoXCJbY2xhc3MqPVxcXCJsYXllci1cXFwiXVwiKS5hZGRDbGFzcyhcInB1YmxpY1NlcnZlcnNPcGVuXCIpLmFuaW1hdGUoe29wYWNpdHk6IDB9LCB7XHJcbiAgICAgICAgICAgIHN0ZXA6IGZ1bmN0aW9uKG5vdykge1xyXG4gICAgICAgICAgICAgICQodGhpcykuY3NzKFwidHJhbnNmb3JtXCIsIGBzY2FsZSgkezAuMDcgKiBub3cgKyAwLjkzfSkgdHJhbnNsYXRlWigwcHgpYCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGR1cmF0aW9uOiAyMDBcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAge2NsYXNzTmFtZTogXCJsYXllciBiZC1sYXllciBsYXllci0zUXJVZUdcIiwgaWQ6IHRoaXMucHJvcHMuaWQsIHJlZjogXCJyb290XCIsIHN0eWxlOiB7b3BhY2l0eTogMCwgdHJhbnNmb3JtOiBcInNjYWxlKDEuMSkgdHJhbnNsYXRlWigwcHgpXCJ9fSxcclxuICAgICAgICAgICAgdGhpcy5wcm9wcy5jaGlsZHJlblxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L2xpc3QuanM/YWEwYyJdLCJuYW1lcyI6WyJWMkNfTGlzdCIsIkJEVjIiLCJyZWFjdENvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJyZW5kZXIiLCJyZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJjaGlsZHJlbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFFZSxNQUFNQSxRQUFOLFNBQXVCQywyQ0FBSSxDQUFDQyxjQUE1QixDQUEyQztBQUN0REMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFdBQU9KLDJDQUFJLENBQUNLLEtBQUwsQ0FBV0MsYUFBWCxDQUNILElBREcsRUFFSDtBQUFDQyxlQUFTLEVBQUUsS0FBS0osS0FBTCxDQUFXSTtBQUF2QixLQUZHLEVBR0gsS0FBS0osS0FBTCxDQUFXSyxRQUhSLENBQVA7QUFLSDs7QUFYcUQiLCJmaWxlIjoiLi9zcmMvcmVhY3QvbGlzdC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCRFYyIGZyb20gXCIuLi92MlwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVjJDX0xpc3QgZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICBcInVsXCIsXHJcbiAgICAgICAgICAgIHtjbGFzc05hbWU6IHRoaXMucHJvcHMuY2xhc3NOYW1lfSxcclxuICAgICAgICAgICAgdGhpcy5wcm9wcy5jaGlsZHJlblxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3BsdWdpbkNhcmQuanM/OGJiMSJdLCJuYW1lcyI6WyJWMkNfUGx1Z2luQ2FyZCIsIkJEVjIiLCJyZWFjdENvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzZWxmIiwib25DaGFuZ2UiLCJiaW5kIiwic2hvd1NldHRpbmdzIiwic2V0SW5pdGlhbFN0YXRlIiwiaGFzU2V0dGluZ3MiLCJwbHVnaW4iLCJnZXRTZXR0aW5nc1BhbmVsIiwic2V0dGluZ3NQYW5lbCIsInJlbG9hZCIsIm9uUmVsb2FkIiwic3RhdGUiLCJjaGVja2VkIiwicGx1Z2luQ29va2llIiwiZ2V0TmFtZSIsInNldHRpbmdzIiwicmVsb2FkcyIsInBsdWdpbk5hbWUiLCJzZXRTdGF0ZSIsImNvbXBvbmVudERpZFVwZGF0ZSIsInJlZnMiLCJzZXR0aW5nc3BhbmVsIiwiYXBwZW5kQ2hpbGQiLCJzZXR0aW5nc0Nvb2tpZSIsImlzSGlkZGVuIiwiY29udGFpbmVyIiwiZWxlbWVudCIsImNUb3AiLCJzY3JvbGxUb3AiLCJjQm90dG9tIiwiY2xpZW50SGVpZ2h0IiwiZVRvcCIsIm9mZnNldFRvcCIsImVCb3R0b20iLCIkIiwicmVhY3REb20iLCJmaW5kRE9NTm9kZSIsInBhcmVudHMiLCJhbmltYXRlIiwib2Zmc2V0IiwidG9wIiwicGx1Z2luTW9kdWxlIiwicmVsb2FkUGx1Z2luIiwiYmRwbHVnaW5zIiwiZ2V0U3RyaW5nIiwidmFsdWUiLCJ0b1N0cmluZyIsIm1ha2VMaW5rIiwidGl0bGUiLCJ1cmwiLCJjbGFzc05hbWUiLCJ0YXJnZXQiLCJocmVmIiwib25DbGljayIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJyZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJyZW5kZXIiLCJuYW1lIiwiYXV0aG9yIiwiZ2V0QXV0aG9yIiwiZGVzY3JpcHRpb24iLCJnZXREZXNjcmlwdGlvbiIsInZlcnNpb24iLCJnZXRWZXJzaW9uIiwibWV0YSIsImVyciIsIlV0aWxzIiwic3R5bGUiLCJpbm5lckhUTUwiLCJYU3ZnIiwiaWQiLCJyZWYiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsImxpbmtzIiwid2Vic2l0ZSIsInB1c2giLCJzb3VyY2UiLCJpbnZpdGUiLCJ0ZXN0ZXIiLCJjb2RlIiwidGVzdCIsIm1hdGNoIiwiTGF5ZXJTdGFjayIsInBvcExheWVyIiwiSW52aXRlQWN0aW9ucyIsImFjY2VwdEludml0ZUFuZFRyYW5zaXRpb25Ub0ludml0ZUNoYW5uZWwiLCJkb25hdGUiLCJwYXRyZW9uIiwiYXV0aG9yUHJvcHMiLCJhdXRob3JMaW5rIiwiYXV0aG9ySWQiLCJhbmNob3JDbGFzc2VzIiwiYW5jaG9yIiwiYW5jaG9yVW5kZXJsaW5lT25Ib3ZlciIsIm9wZW5ETSIsIlRvb2x0aXBXcmFwIiwiUmVsb2FkSWNvbiIsImNvbG9yIiwic2lkZSIsInRleHQiLCJmbGV4IiwidHlwZSIsImxlbmd0aCIsIm1hcCIsImluZGV4IiwiZmxhdCIsImRpc2FibGVkIiwidG9nZ2xlUGx1Z2luIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVlLE1BQU1BLGNBQU4sU0FBNkJDLDJDQUFJLENBQUNDLGNBQWxDLENBQWlEO0FBRTVEQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDQSxVQUFNQyxJQUFJLEdBQUcsSUFBYjtBQUNBQSxRQUFJLENBQUNDLFFBQUwsR0FBZ0JELElBQUksQ0FBQ0MsUUFBTCxDQUFjQyxJQUFkLENBQW1CRixJQUFuQixDQUFoQjtBQUNBQSxRQUFJLENBQUNHLFlBQUwsR0FBb0JILElBQUksQ0FBQ0csWUFBTCxDQUFrQkQsSUFBbEIsQ0FBdUJGLElBQXZCLENBQXBCO0FBQ0FBLFFBQUksQ0FBQ0ksZUFBTDtBQUNBSixRQUFJLENBQUNLLFdBQUws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MkNBQUksQ0FBQzZELEtBQUwsQ0FBV0MsYUFBWCxDQUF5QixRQUF6QixFQUFtQztBQUFDTCxhQUFPLEVBQUUsS0FBS2xELFlBQWY7QUFBNkIrQyxlQUFTLEVBQUUscUJBQXhDO0FBQStENEQsY0FBUSxFQUFFLENBQUMsS0FBS25HLEtBQUwsQ0FBV0M7QUFBckYsS0FBbkMsRUFBa0ksVUFBbEksQ0FKYyxDQXBCbkMsQ0FBUDtBQTJCSDs7QUFFRFgsVUFBUSxHQUFHO0FBQ1AsU0FBS2lCLFFBQUwsQ0FBYztBQUFDTixhQUFPLEVBQUUsQ0FBQyxLQUFLRCxLQUFMLENBQVdDO0FBQXRCLEtBQWQ7QUFDQTZCLHlEQUFZLENBQUNzRSxZQUFiLENBQTBCLEtBQUtoSCxLQUFMLENBQVdPLE1BQVgsQ0FBa0JRLE9BQWxCLEVBQTFCO0FBQ0g7O0FBRURYLGNBQVksR0FBRztBQUNYLFFBQUksQ0FBQyxLQUFLRSxXQUFWLEVBQXVCO0FBQ3ZCLFNBQUthLFFBQUwsQ0FBYztBQUFDSCxjQUFRLEVBQUU7QUFBWCxLQUFkO0FBQ0g7O0FBeksyRCIsImZpbGUiOiIuL3NyYy9yZWFjdC9wbHVnaW5DYXJkLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzZXR0aW5nc0Nvb2tpZSwgcGx1Z2luQ29va2llLCBiZHBsdWdpbnN9IGZyb20gXCIuLi8wZ2xvYmFsc1wiO1xyXG5pbXBvcnQgQkRWMiBmcm9tIFwiLi4vdjJcIjtcclxuaW1wb3J0IHBsdWdpbk1vZHVsZSBmcm9tIFwiLi4vcGx1Z2luTW9kdWxlXCI7XHJcbmltcG9ydCBVdGlscyBmcm9tIFwiLi4vdXRpbHNcIjtcclxuXHJcbmltcG9ydCBYU3ZnIGZyb20gXCIuL3hTdmdcIjtcclxuaW1wb3J0IFJlbG9hZEljb24gZnJvbSBcIi4vcmVsb2FkSWNvblwiO1xyXG5pbXBvcnQgVG9vbHRpcFdyYXAgZnJvbSBcIi4vdG9vbHRpcFdyYXBcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFYyQ19QbHVnaW5DYXJkIGV4dGVuZHMgQkRWMi5yZWFjdENvbXBvbmVudCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgc2VsZi5vbkNoYW5nZSA9IHNlbGYub25DaGFuZ2UuYmluZChzZWxmKTtcclxuICAgICAgICBzZWxmLnNob3dTZXR0aW5ncyA9IHNlbGYuc2hvd1NldHRpbmdzLmJpbmQoc2VsZik7XHJcbiAgICAgICAgc2VsZi5zZXRJbml0aWFsU3RhdGUoKTtcclxuICAgICAgICBzZWxmLmhhc1NldHRpbmdzID0gdHlwZW9mIHNlbGYucHJvcHMucGx1Z2luLmdldFNldHRpbmdzUGFuZWwgPT09IFwiZnVuY3Rpb25cIjtcclxuICAgICAgICBzZWxmLnNldHRpbmdzUGFuZWwgPSBcIlwiO1xyXG5cclxuICAgICAgICB0aGlzLnJlbG9hZCA9IHRoaXMucmVsb2FkLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5vblJlbG9hZCA9IHRoaXMub25SZWxvYWQuYmluZCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRJbml0aWFsU3RhdGUoKSB7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgICAgICAgY2hlY2tlZDogcGx1Z2luQ29va2llW3RoaXMucHJvcHMucGx1Z2luLmdldE5hbWUoKV0sXHJcbiAgICAgICAgICAgIHNldHRpbmdzOiBmYWxzZSxcclxuICAgICAgICAgICAgcmVsb2FkczogMFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICAvLyAgICAgQkRFdmVudHMub24oXCJwbHVnaW4tcmVsb2FkZWRcIiwgdGhpcy5vblJlbG9hZCk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XHJcbiAgICAvLyAgICAgQkRFdmVudHMub2ZmKFwicGx1Z2luLXJlbG9hZGVkXCIsIHRoaXMub25SZWxvYWQpO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIG9uUmVsb2FkKHBsdWdpbk5hbWUpIHtcclxuICAgICAgICBpZiAocGx1Z2luTmFtZSAhPT0gdGhpcy5wcm9wcy5wbHVnaW4uZ2V0TmFtZSgpKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7cmVsb2FkczogdGhpcy5zdGF0ZS5yZWxvYWRzICsgMX0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5zZXR0aW5ncykge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2V0dGluZ3NQYW5lbCA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWZzLnNldHRpbmdzcGFuZWwuYXBwZW5kQ2hpbGQodGhpcy5zZXR0aW5nc1BhbmVsKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKCFzZXR0aW5nc0Nvb2tpZVtcImZvcmstcHMtM1wiXSkgcmV0dXJuO1xyXG4gICAgICAgICAgICBjb25zdCBpc0hpZGRlbiA9IChjb250YWluZXIsIGVsZW1lbnQpID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBjVG9wID0gY29udGFpbmVyLnNjcm9sbFRvcDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNCb3R0b20gPSBjVG9wICsgY29udGFpbmVyLmNsaWVudEhlaWdodDtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBlVG9wID0gZWxlbWVudC5vZmZzZXRUb3A7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBlQm90dG9tID0gZVRvcCArIGVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiAgKGVUb3AgPCBjVG9wIHx8IGVCb3R0b20gPiBjQm90dG9tKTtcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGYgPSAkKEJEVjIucmVhY3REb20uZmluZERPTU5vZGUodGhpcykpO1xyXG4gICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBzZWxmLnBhcmVudHMoXCIuc2Nyb2xsZXJcIik7XHJcbiAgICAgICAgICAgIGlmICghaXNIaWRkZW4oY29udGFpbmVyWzBdLCBzZWxmWzBdKSkgcmV0dXJuO1xyXG4gICAgICAgICAgICBjb250YWluZXIuYW5pbWF0ZSh7XHJcbiAgICAgICAgICAgICAgICBzY3JvbGxUb3A6IHNlbGYub2Zmc2V0KCkudG9wIC0gY29udGFpbmVyLm9mZnNldCgpLnRvcCArIGNvbnRhaW5lci5zY3JvbGxUb3AoKSAtIDMwXHJcbiAgICAgICAgICAgIH0sIDMwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlbG9hZCgpIHtcclxuICAgICAgICBjb25zdCBwbHVnaW4gPSB0aGlzLnByb3BzLnBsdWdpbi5nZXROYW1lKCk7XHJcbiAgICAgICAgcGx1Z2luTW9kdWxlLnJlbG9hZFBsdWdpbihwbHVnaW4pO1xyXG4gICAgICAgIHRoaXMucHJvcHMucGx1Z2luID0gYmRwbHVnaW5zW3BsdWdpbl0ucGx1Z2luO1xyXG4gICAgICAgIHRoaXMub25SZWxvYWQodGhpcy5wcm9wcy5wbHVnaW4uZ2V0TmFtZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTdHJpbmcodmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09IFwic3RyaW5nXCIgPyB2YWx1ZSA6IHZhbHVlLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbWFrZUxpbmsodGl0bGUsIHVybCkge1xyXG4gICAgICAgIGNvbnN0IHByb3BzID0ge2NsYXNzTmFtZTogXCJiZGEtbGluayBiZGEtbGluay13ZWJzaXRlXCIsIHRhcmdldDogXCJfYmxhbmtcIn07XHJcbiAgICAgICAgaWYgKHR5cGVvZih1cmwpID09IFwic3RyaW5nXCIpIHByb3BzLmhyZWYgPSB1cmw7XHJcbiAgICAgICAgaWYgKHR5cGVvZih1cmwpID09IFwiZnVuY3Rpb25cIikgcHJvcHMub25DbGljayA9IChldmVudCkgPT4ge2V2ZW50LnByZXZlbnREZWZhdWx0KCk7IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyB1cmwoKTt9O1xyXG4gICAgICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIHByb3BzLCB0aXRsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIFxyXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIGNvbnN0IHtwbHVnaW59ID0gdGhpcy5wcm9wcztcclxuICAgICAgICBjb25zdCBuYW1lID0gdGhpcy5nZXRTdHJpbmcocGx1Z2luLmdldE5hbWUoKSk7XHJcbiAgICAgICAgY29uc3QgYXV0aG9yID0gdGhpcy5nZXRTdHJpbmcocGx1Z2luLmdldEF1dGhvcigpKTtcclxuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuZ2V0U3RyaW5nKHBsdWdpbi5nZXREZXNjcmlwdGlvbigpKTtcclxuICAgICAgICBjb25zdCB2ZXJzaW9uID0gdGhpcy5nZXRTdHJpbmcocGx1Z2luLmdldFZlcnNpb24oKSk7XHJcbiAgICAgICAgY29uc3QgbWV0YSA9IGJkcGx1Z2luc1tuYW1lXTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuc2V0dGluZ3MpIHtcclxuICAgICAgICAgICAgdHJ5IHsgc2VsZi5zZXR0aW5nc1BhbmVsID0gcGx1Z2luLmdldFNldHRpbmdzUGFuZWwoKTsgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7IFV0aWxzLmVycihcIlBsdWdpbnNcIiwgXCJVbmFibGUgdG8gZ2V0IHNldHRpbmdzIHBhbmVsIGZvciBcIiArIHBsdWdpbi5nZXROYW1lKCkgKyBcIi5cIiwgZXJyKTsgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImxpXCIsIHtjbGFzc05hbWU6IFwic2V0dGluZ3Mtb3BlbiB1aS1zd2l0Y2gtaXRlbVwifSxcclxuICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge3N0eWxlOiB7XCJmbG9hdFwiOiBcInJpZ2h0XCIsIFwiY3Vyc29yXCI6IFwicG9pbnRlclwifSwgb25DbGljazogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZzLnNldHRpbmdzcGFuZWwuaW5uZXJIVE1MID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2V0U3RhdGUoe3NldHRpbmdzOiBmYWxzZX0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9fSxcclxuICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoWFN2ZywgbnVsbClcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICB0eXBlb2Ygc2VsZi5zZXR0aW5nc1BhbmVsID09PSBcIm9iamVjdFwiICYmIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7aWQ6IGBwbHVnaW4tc2V0dGluZ3MtJHtuYW1lfWAsIGNsYXNzTmFtZTogXCJwbHVnaW4tc2V0dGluZ3NcIiwgcmVmOiBcInNldHRpbmdzcGFuZWxcIn0pLFxyXG4gICAgICAgICAgICAgICAgdHlwZW9mIHNlbGYuc2V0dGluZ3NQYW5lbCAhPT0gXCJvYmplY3RcIiAmJiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2lkOiBgcGx1Z2luLXNldHRpbmdzLSR7bmFtZX1gLCBjbGFzc05hbWU6IFwicGx1Z2luLXNldHRpbmdzXCIsIHJlZjogXCJzZXR0aW5nc3BhbmVsXCIsIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7X19odG1sOiBzZWxmLnNldHRpbmdzUGFuZWx9fSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGxpbmtzID0gW107XHJcbiAgICAgICAgaWYgKG1ldGEud2Vic2l0ZSkgbGlua3MucHVzaCh0aGlzLm1ha2VMaW5rKFwiV2Vic2l0ZVwiLCBtZXRhLndlYnNpdGUpKTtcclxuICAgICAgICBpZiAobWV0YS5zb3VyY2UpIGxpbmtzLnB1c2godGhpcy5tYWtlTGluayhcIlNvdXJjZVwiLCBtZXRhLnNvdXJjZSkpO1xyXG4gICAgICAgIGlmIChtZXRhLmludml0ZSkge1xyXG4gICAgICAgICAgICBsaW5rcy5wdXNoKHRoaXMubWFrZUxpbmsoXCJTdXBwb3J0IFNlcnZlclwiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0ZXN0ZXIgPSAvXFwuZ2dcXC8oLiopJC87XHJcbiAgICAgICAgICAgICAgICBsZXQgY29kZSA9IG1ldGEuaW52aXRlO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRlc3Rlci50ZXN0KGNvZGUpKSBjb2RlID0gY29kZS5tYXRjaCh0ZXN0ZXIpWzFdO1xyXG4gICAgICAgICAgICAgICAgQkRWMi5MYXllclN0YWNrLnBvcExheWVyKCk7XHJcbiAgICAgICAgICAgICAgICBCRFYyLkludml0ZUFjdGlvbnMuYWNjZXB0SW52aXRlQW5kVHJhbnNpdGlvblRvSW52aXRlQ2hhbm5lbChjb2RlKTtcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobWV0YS5kb25hdGUpIGxpbmtzLnB1c2godGhpcy5tYWtlTGluayhcIkRvbmF0ZVwiLCBtZXRhLmRvbmF0ZSkpO1xyXG4gICAgICAgIGlmIChtZXRhLnBhdHJlb24pIGxpbmtzLnB1c2godGhpcy5tYWtlTGluayhcIlBhdHJlb25cIiwgbWV0YS5wYXRyZW9uKSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGF1dGhvclByb3BzID0ge2NsYXNzTmFtZTogXCJiZGEtYXV0aG9yXCJ9O1xyXG4gICAgICAgIGlmIChtZXRhLmF1dGhvckxpbmsgfHwgbWV0YS5hdXRob3JJZCkge1xyXG4gICAgICAgICAgICBhdXRob3JQcm9wcy5jbGFzc05hbWUgKz0gYCAke0JEVjIuYW5jaG9yQ2xhc3Nlcy5hbmNob3J9ICR7QkRWMi5hbmNob3JDbGFzc2VzLmFuY2hvclVuZGVybGluZU9uSG92ZXJ9YDtcclxuICAgICAgICAgICAgYXV0aG9yUHJvcHMudGFyZ2V0ID0gXCJfYmxhbmtcIjtcclxuXHJcbiAgICAgICAgICAgIGlmIChtZXRhLmF1dGhvckxpbmspIGF1dGhvclByb3BzLmhyZWYgPSBtZXRhLmF1dGhvckxpbms7XHJcbiAgICAgICAgICAgIGlmIChtZXRhLmF1dGhvcklkKSBhdXRob3JQcm9wcy5vbkNsaWNrID0gKCkgPT4ge0JEVjIuTGF5ZXJTdGFjay5wb3BMYXllcigpOyBCRFYyLm9wZW5ETShtZXRhLmF1dGhvcklkKTt9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuXHJcbiAgICAgICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImxpXCIsIHtcImRhdGEtbmFtZVwiOiBuYW1lLCBcImRhdGEtdmVyc2lvblwiOiB2ZXJzaW9uLCBcImNsYXNzTmFtZVwiOiBcInNldHRpbmdzLWNsb3NlZCB1aS1zd2l0Y2gtaXRlbVwifSxcclxuICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWhlYWRlclwifSxcclxuICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLWhlYWRlci10aXRsZVwifSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS1uYW1lXCJ9LCBuYW1lKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCIgdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLXZlcnNpb25cIn0sIHZlcnNpb24pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIiBieSBcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KG1ldGEuYXV0aG9yTGluayB8fCBtZXRhLmF1dGhvcklkID8gXCJhXCIgOiBcInNwYW5cIiwgYXV0aG9yUHJvcHMsIGF1dGhvcilcclxuICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1jb250cm9sc1wifSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgIXNldHRpbmdzQ29va2llW1wiZm9yay1wcy01XCJdICYmIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChUb29sdGlwV3JhcChSZWxvYWRJY29uLCB7Y29sb3I6IFwiYmxhY2tcIiwgc2lkZTogXCJ0b3BcIiwgdGV4dDogXCJSZWxvYWRcIn0pLCB7Y2xhc3NOYW1lOiBcImJkLXJlbG9hZC1jYXJkXCIsIG9uQ2xpY2s6IHRoaXMucmVsb2FkfSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImxhYmVsXCIsIHtjbGFzc05hbWU6IFwidWktc3dpdGNoLXdyYXBwZXIgdWktZmxleC1jaGlsZFwiLCBzdHlsZToge2ZsZXg6IFwiMCAwIGF1dG9cIn19LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge2NoZWNrZWQ6IHRoaXMuc3RhdGUuY2hlY2tlZCwgb25DaGFuZ2U6IHRoaXMub25DaGFuZ2UsIGNsYXNzTmFtZTogXCJ1aS1zd2l0Y2gtY2hlY2tib3hcIiwgdHlwZTogXCJjaGVja2JveFwifSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogdGhpcy5zdGF0ZS5jaGVja2VkID8gXCJ1aS1zd2l0Y2ggY2hlY2tlZFwiIDogXCJ1aS1zd2l0Y2hcIn0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1kZXNjcmlwdGlvbi13cmFwIHNjcm9sbGVyLXdyYXAgZmFkZVwifSxcclxuICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1kZXNjcmlwdGlvbiBzY3JvbGxlclwifSwgZGVzY3JpcHRpb24pXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIChsaW5rcy5sZW5ndGggfHwgdGhpcy5oYXNTZXR0aW5ncykgJiYgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWZvb3RlclwifSxcclxuICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZGEtbGlua3NcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgLi4uKGxpbmtzLm1hcCgoZWxlbWVudCwgaW5kZXgpID0+IGluZGV4IDwgbGlua3MubGVuZ3RoIC0gMSA/IFtlbGVtZW50LCBcIiB8IFwiXSA6IGVsZW1lbnQpLmZsYXQoKSlcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICB0aGlzLmhhc1NldHRpbmdzICYmIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCB7b25DbGljazogdGhpcy5zaG93U2V0dGluZ3MsIGNsYXNzTmFtZTogXCJiZGEtc2V0dGluZ3MtYnV0dG9uXCIsIGRpc2FibGVkOiAhdGhpcy5zdGF0ZS5jaGVja2VkfSwgXCJTZXR0aW5nc1wiKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNoYW5nZSgpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtjaGVja2VkOiAhdGhpcy5zdGF0ZS5jaGVja2VkfSk7XHJcbiAgICAgICAgcGx1Z2luTW9kdWxlLnRvZ2dsZVBsdWdpbih0aGlzLnByb3BzLnBsdWdpbi5nZXROYW1lKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dTZXR0aW5ncygpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaGFzU2V0dGluZ3MpIHJldHVybjtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtzZXR0aW5nczogdHJ1ZX0pO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3B1YmxpY1NlcnZlcnMuanM/MjI3YSJdLCJuYW1lcyI6WyJWMkNfUHVibGljU2VydmVycyIsIkJEVjIiLCJyZWFjdENvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzZXRJbml0aWFsU3RhdGUiLCJjbG9zZSIsImJpbmQiLCJjaGFuZ2VDYXRlZ29yeSIsInNlYXJjaCIsInNlYXJjaEtleURvd24iLCJjaGVja0Nvbm5lY3Rpb24iLCJqb2luIiwiY29ubmVjdCIsIkd1aWxkU3RvcmUiLCJXZWJwYWNrTW9kdWxlcyIsImZpbmRCeVVuaXF1ZVByb3BlcnRpZXMiLCJBdmF0YXJEZWZhdWx0cyIsIkludml0ZUFjdGlvbnMiLCJTb3J0ZWRHdWlsZFN0b3JlIiwiY29tcG9uZW50RGlkTW91bnQiLCJzdGF0ZSIsInNlbGVjdGVkQ2F0ZWdvcnkiLCJ0aXRsZSIsImxvYWRpbmciLCJzZXJ2ZXJzIiwibmV4dCIsImNvbm5lY3Rpb24iLCJ1c2VyIiwicmVhY3REb20iLCJ1bm1vdW50Q29tcG9uZW50QXROb2RlIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsInJvb3RJZCIsInF1ZXJ5IiwiY2xlYXIiLCJzZWxmIiwiJCIsImFqYXgiLCJtZXRob2QiLCJ1cmwiLCJlbmRQb2ludCIsInN1Y2Nlc3MiLCJkYXRhIiwicmVzdWx0cyIsInJlZHVjZSIsImFyciIsInNlcnZlciIsImpvaW5lZCIsInB1c2giLCJjb25jYXQiLCJlbmQiLCJzaXplIiwiZnJvbSIsInRlcm0iLCJjYXRlZ29yeUJ1dHRvbnMiLCJ0b3RhbCIsInNldFN0YXRlIiwicmVmcyIsInNidiIsImNvbnRlbnRTY3JvbGxlciIsInNjcm9sbFRvcCIsImVycm9yIiwic2VydmVyQ2FyZCIsInBpbm5lZCIsImFjY2VwdEludml0ZSIsImludml0ZV9jb2RlIiwiam9pbkVuZFBvaW50IiwiaWRlbnRpZmllciIsImhlYWRlcnMiLCJhY2Nlc3NUb2tlbiIsImNyb3NzRG9tYWluIiwieGhyRmllbGRzIiwid2l0aENyZWRlbnRpYWxzIiwib3B0aW9ucyIsIndpbmRvd09wdGlvbnMiLCJ4IiwiTWF0aCIsInJvdW5kIiwid2luZG93Iiwic2NyZWVuWCIsImlubmVyV2lkdGgiLCJ3aWR0aCIsInkiLCJzY3JlZW5ZIiwiaW5uZXJIZWlnaHQiLCJoZWlnaHQiLCJqb2luV2luZG93IiwicmVxdWlyZSIsInJlbW90ZSIsIkJyb3dzZXJXaW5kb3ciLCJ3ZWJDb250ZW50cyIsIm9uIiwiZXZlbnQiLCJsb2FkVVJMIiwiYmFja2dyb3VuZENvbG9yIiwic2hvdyIsInJlc2l6YWJsZSIsIm1heGltaXphYmxlIiwibWluaW1pemFibGUiLCJhbHdheXNPblRvcCIsImZyYW1lIiwiY2VudGVyIiwid2ViUHJlZmVyZW5jZXMiLCJub2RlSW50ZWdyYXRpb24iLCJiZFNlcnZlciIsIm5hbWUiLCJvbmxpbmUiLCJtZW1iZXJzIiwiY2F0ZWdvcmllcyIsImRlc2NyaXB0aW9uIiwiaWNvblVybCIsIm5hdGl2ZWpvaW4iLCJndWlsZExpc3QiLCJnZXRGbGF0dGVuZWRHdWlsZElkcyIsImRlZmF1bHRMaXN0IiwiREVGQVVMVF9BVkFUQVJTIiwicmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiU2VydmVyQ2FyZCIsImZhbGxiYWNrIiwiZmxvb3IiLCJyYW5kb20iLCJjb25uZWN0RW5kUG9pbnQiLCJyZW5kZXIiLCJTaWRlYmFyVmlldyIsInJlZiIsImNoaWxkcmVuIiwiY29tcG9uZW50Iiwic2lkZWJhciIsImNvbnRlbnQiLCJ0b29scyIsIlRvb2xzIiwia2V5Iiwib25DbGljayIsImNsYXNzTmFtZSIsInN0eWxlIiwiZm9udFNpemUiLCJUYWJCYXJTZXBhcmF0b3IiLCJzZWFyY2hJbnB1dCIsIlRhYkJhckhlYWRlciIsInRleHQiLCJtYXAiLCJ2YWx1ZSIsImluZGV4IiwiVGFiQmFySXRlbSIsImlkIiwic2VsZWN0ZWQiLCJmb290ZXIiLCJtYXJnaW5MZWZ0Iiwib25LZXlEb3duIiwib25DaGFuZ2UiLCJ0eXBlIiwicGxhY2Vob2xkZXIiLCJtYXhMZW5ndGgiLCJlIiwid2hpY2giLCJ0YXJnZXQiLCJzZWFyY2hpbnB1dCIsIm5vdENvbm5lY3RlZCIsIlNldHRpbmdzVGl0bGUiLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJsZW5ndGgiLCJkaXNwbGF5IiwibWluSGVpZ2h0IiwibGluZUhlaWdodCIsImhyZWYiLCJjb2xvciIsInVzZXJuYW1lIiwiZGlzY3JpbWluYXRvciIsInBhZGRpbmciXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVlLE1BQU1BLGlCQUFOLFNBQWdDQywyQ0FBSSxDQUFDQyxjQUFyQyxDQUFvRDtBQUUvREMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0EsU0FBS0MsZUFBTDtBQUNBLFNBQUtDLEtBQUwsR0FBYSxLQUFLQSxLQUFMLENBQVdDLElBQVgsQ0FBZ0IsSUFBaEIsQ0FBYjtBQUNBLFNBQUtDLGNBQUwsR0FBc0IsS0FBS0EsY0FBTCxDQUFvQkQsSUFBcEIsQ0FBeUIsSUFBekIsQ0FBdEI7QUFDQSxTQUFLRSxNQUFMLEdBQWMsS0FBS0EsTUFBTCxDQUFZRixJQUFaLENBQWlCLElBQWpCLENBQWQ7QUFDQSxTQUFLRyxhQUFMLEdBQXFCLEtBQUtBLGFBQUwsQ0FBbUJILElBQW5CLENBQXdCLElBQXhCLENBQXJCO0FBQ0EsU0FBS0ksZUFBTCxHQUF1QixLQUFLQSxlQUFMLENBQXFCSixJQUFyQixDQUEwQixJQUExQixDQUF2QjtBQUNBLFNBQUtLLElBQUwsR0FBWSxLQUFLQSxJQUFMLENBQVVMLElBQVYsQ0FBZSxJQUFmLENBQVo7QUFDQSxTQUFLTSxPQUFMLEdBQWUsS0FBS0EsT0FBTCxDQUFhTixJQUFiLENBQWtCLElBQWxCLENBQWY7QUFFQSxTQUFLTyxVQUFMLEdBQWtCYiwyQ0FBSSxDQUFDYyxj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O0FBRTVCLFdBQU9ySCwyQ0FBSSxDQUFDb0gsS0FBTCxDQUFXQyxhQUFYLENBQ0gsTUFERyxFQUVILElBRkcsRUFHSHJILDJDQUFJLENBQUNvSCxLQUFMLENBQVdDLGFBQVgsQ0FBeUJvQix3REFBekIsRUFBMEMsSUFBMUMsQ0FIRyxFQUlIekksMkNBQUksQ0FBQ29ILEtBQUwsQ0FBV0MsYUFBWCxDQUNJLE1BREosRUFFSTtBQUFDa0IsV0FBSyxFQUFFO0FBQUNnQyxhQUFLLEVBQUUsU0FBUjtBQUFtQi9CLGdCQUFRLEVBQUUsTUFBN0I7QUFBcUNZLGtCQUFVLEVBQUU7QUFBakQ7QUFBUixLQUZKLEVBR0ksZ0JBSEosRUFJSyxHQUFFMUgsVUFBVSxDQUFDQyxJQUFYLENBQWdCNkksUUFBUyxJQUFHOUksVUFBVSxDQUFDQyxJQUFYLENBQWdCOEksYUFBYyxFQUpqRSxDQUpHLEVBVUh6SywyQ0FBSSxDQUFDb0gsS0FBTCxDQUFXQyxhQUFYLENBQ0ksS0FESixFQUVJO0FBQUNrQixXQUFLLEVBQUU7QUFBQ21DLGVBQU8sRUFBRTtBQUFWO0FBQVIsS0FGSixFQUdJMUssMkNBQUksQ0FBQ29ILEtBQUwsQ0FBV0MsYUFBWCxDQUNJLFFBREosRUFFSTtBQUFDa0IsV0FBSyxFQUFFO0FBQUN0RCxhQUFLLEVBQUUsTUFBUjtBQUFnQm1GLGlCQUFTLEVBQUU7QUFBM0IsT0FBUjtBQUE0Q2IsVUFBSSxFQUFFLFFBQWxEO0FBQTREakIsZUFBUyxFQUFFO0FBQXZFLEtBRkosRUFHSXRJLDJDQUFJLENBQUNvSCxLQUFMLENBQVdDLGFBQVgsQ0FDSSxLQURKLEVBRUk7QUFBQ2lCLGVBQVMsRUFBRSxvQkFBWjtBQUFrQ0QsYUFBTyxFQUFFbEcsSUFBSSxDQUFDdkI7QUFBaEQsS0FGSixFQUdJLFdBSEosQ0FISixDQUhKLENBVkcsQ0FBUDtBQXdCUDs7QUF6YWtFIiwiZmlsZSI6Ii4vc3JjL3JlYWN0L3B1YmxpY1NlcnZlcnMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQkRWMiBmcm9tIFwiLi4vdjJcIjtcclxuXHJcbmltcG9ydCBUb29scyBmcm9tIFwiLi90b29sc1wiO1xyXG5pbXBvcnQgU2VydmVyQ2FyZCBmcm9tIFwiLi9zZXJ2ZXJDYXJkXCI7XHJcbmltcG9ydCBTaWRlYmFyVmlldyBmcm9tIFwiLi9zaWRlYmFyVmlld1wiO1xyXG5pbXBvcnQgU2V0dGluZ3NUaXRsZSBmcm9tIFwiLi9zZXR0aW5nc1RpdGxlXCI7XHJcbmltcG9ydCBUYWJCYXJTZXBhcmF0b3IgZnJvbSBcIi4vdGFiQmFyU2VwYXJhdG9yXCI7XHJcbmltcG9ydCBUYWJCYXJIZWFkZXIgZnJvbSBcIi4vdGFiQmFySGVhZGVyXCI7XHJcbmltcG9ydCBUYWJCYXJJdGVtIGZyb20gXCIuL3RhYkJhckl0ZW1cIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFYyQ19QdWJsaWNTZXJ2ZXJzIGV4dGVuZHMgQkRWMi5yZWFjdENvbXBvbmVudCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgdGhpcy5zZXRJbml0aWFsU3RhdGUoKTtcclxuICAgICAgICB0aGlzLmNsb3NlID0gdGhpcy5jbG9zZS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlQ2F0ZWdvcnkgPSB0aGlzLmNoYW5nZUNhdGVnb3J5LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zZWFyY2ggPSB0aGlzLnNlYXJjaC5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoS2V5RG93biA9IHRoaXMuc2VhcmNoS2V5RG93bi5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuY2hlY2tDb25uZWN0aW9uID0gdGhpcy5jaGVja0Nvbm5lY3Rpb24uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLmpvaW4gPSB0aGlzLmpvaW4uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLmNvbm5lY3QgPSB0aGlzLmNvbm5lY3QuYmluZCh0aGlzKTtcclxuXHJcbiAgICAgICAgdGhpcy5HdWlsZFN0b3JlID0gQkRWMi5XZWJwYWNrTW9kdWxlcy5maW5kQnlVbmlxdWVQcm9wZXJ0aWVzKFtcImdldEd1aWxkc1wiXSk7XHJcbiAgICAgICAgdGhpcy5BdmF0YXJEZWZhdWx0cyA9IEJEVjIuV2VicGFja01vZHVsZXMuZmluZEJ5VW5pcXVlUHJvcGVydGllcyhbXCJnZXRVc2VyQXZhdGFyVVJMXCIsIFwiREVGQVVMVF9BVkFUQVJTXCJdKTtcclxuICAgICAgICB0aGlzLkludml0ZUFjdGlvbnMgPSBCRFYyLldlYnBhY2tNb2R1bGVzLmZpbmRCeVVuaXF1ZVByb3BlcnRpZXMoW1wiYWNjZXB0SW52aXRlXCJdKTtcclxuICAgICAgICB0aGlzLlNvcnRlZEd1aWxkU3RvcmUgPSBCRFYyLldlYnBhY2tNb2R1bGVzLmZpbmRCeVVuaXF1ZVByb3BlcnRpZXMoW1wiZ2V0U29ydGVkR3VpbGRzXCJdKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgICAgICB0aGlzLmNoZWNrQ29ubmVjdGlvbigpO1xyXG4gICAgIH1cclxuXHJcbiAgICBzZXRJbml0aWFsU3RhdGUoKSB7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgICAgICAgc2VsZWN0ZWRDYXRlZ29yeTogLTEsXHJcbiAgICAgICAgICAgIHRpdGxlOiBcIkxvYWRpbmcuLi5cIixcclxuICAgICAgICAgICAgbG9hZGluZzogdHJ1ZSxcclxuICAgICAgICAgICAgc2VydmVyczogW10sXHJcbiAgICAgICAgICAgIG5leHQ6IG51bGwsXHJcbiAgICAgICAgICAgIGNvbm5lY3Rpb246IHtcclxuICAgICAgICAgICAgICAgIHN0YXRlOiAwLFxyXG4gICAgICAgICAgICAgICAgdXNlcjogbnVsbFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBjbG9zZSgpIHtcclxuICAgICAgICBCRFYyLnJlYWN0RG9tLnVubW91bnRDb21wb25lbnRBdE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5wcm9wcy5yb290SWQpKTtcclxuICAgIH1cclxuXHJcbiAgICBzZWFyY2gocXVlcnksIGNsZWFyKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XHJcblxyXG4gICAgICAgICQuYWpheCh7XHJcbiAgICAgICAgICAgIG1ldGhvZDogXCJHRVRcIixcclxuICAgICAgICAgICAgdXJsOiBgJHtzZWxmLmVuZFBvaW50fSR7cXVlcnl9JHtxdWVyeSA/IFwiJnNjaGVtYT1uZXdcIiA6IFwiP3NjaGVtYT1uZXdcIn1gLFxyXG4gICAgICAgICAgICBzdWNjZXNzOiBkYXRhID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCBzZXJ2ZXJzID0gZGF0YS5yZXN1bHRzLnJlZHVjZSgoYXJyLCBzZXJ2ZXIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIuam9pbmVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgYXJyLnB1c2goc2VydmVyKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBhcnIucHVzaCg8U2VydmVyQ2FyZCBzZXJ2ZXI9e3NlcnZlcn0gam9pbj17c2VsZi5qb2lufS8+KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXJyO1xyXG4gICAgICAgICAgICAgICAgfSwgW10pO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICghY2xlYXIpIHtcclxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJzID0gc2VsZi5zdGF0ZS5zZXJ2ZXJzLmNvbmNhdChzZXJ2ZXJzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vc2VydmVycy51bnNoaWZ0KHNlbGYuYmRTZXJ2ZXIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGxldCBlbmQgPSBkYXRhLnNpemUgKyBkYXRhLmZyb207XHJcbiAgICAgICAgICAgICAgICBkYXRhLm5leHQgPSBgP2Zyb209JHtlbmR9YDtcclxuICAgICAgICAgICAgICAgIGlmIChzZWxmLnN0YXRlLnRlcm0pIGRhdGEubmV4dCArPSBgJnRlcm09JHtzZWxmLnN0YXRlLnRlcm19YDtcclxuICAgICAgICAgICAgICAgIGlmIChzZWxmLnN0YXRlLnNlbGVjdGVkQ2F0ZWdvcnkpIGRhdGEubmV4dCArPSBgJmNhdGVnb3J5PSR7c2VsZi5jYXRlZ29yeUJ1dHRvbnNbc2VsZi5zdGF0ZS5zZWxlY3RlZENhdGVnb3J5XX1gO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVuZCA+PSBkYXRhLnRvdGFsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZW5kID0gZGF0YS50b3RhbDtcclxuICAgICAgICAgICAgICAgICAgICBkYXRhLm5leHQgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGxldCB0aXRsZSA9IGBTaG93aW5nIDEtJHtlbmR9IG9mICR7ZGF0YS50b3RhbH0gcmVzdWx0cyBpbiAke3NlbGYuY2F0ZWdvcnlCdXR0b25zW3NlbGYuc3RhdGUuc2VsZWN0ZWRDYXRlZ29yeV19YDtcclxuICAgICAgICAgICAgICAgIGlmIChzZWxmLnN0YXRlLnRlcm0pIHRpdGxlICs9IGAgZm9yICR7c2VsZi5zdGF0ZS50ZXJtfWA7XHJcblxyXG4gICAgICAgICAgICAgICAgc2VsZi5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlcnM6IHNlcnZlcnMsXHJcbiAgICAgICAgICAgICAgICAgICAgbmV4dDogZGF0YS5uZXh0XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoY2xlYXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKHNlbGYpO1xyXG4gICAgICAgICAgICAgICAgICAgIHNlbGYucmVmcy5zYnYucmVmcy5jb250ZW50U2Nyb2xsZXIuc2Nyb2xsVG9wID0gMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHNlbGYuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIkZhaWxlZCB0byBsb2FkIHNlcnZlcnMuIENoZWNrIGNvbnNvbGUgZm9yIGRldGFpbHNcIlxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBqb2luKHNlcnZlckNhcmQpIHtcclxuICAgICAgICBpZiAoc2VydmVyQ2FyZC5wcm9wcy5waW5uZWQpIHJldHVybiB0aGlzLkludml0ZUFjdGlvbnMuYWNjZXB0SW52aXRlKHNlcnZlckNhcmQucHJvcHMuaW52aXRlX2NvZGUpO1xyXG4gICAgICAgICQuYWpheCh7XHJcbiAgICAgICAgICAgIG1ldGhvZDogXCJHRVRcIixcclxuICAgICAgICAgICAgdXJsOiBgJHt0aGlzLmpvaW5FbmRQb2ludH0vJHtzZXJ2ZXJDYXJkLnByb3BzLnNlcnZlci5pZGVudGlmaWVyfWAsXHJcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgIFwiQWNjZXB0XCI6IFwiYXBwbGljYXRpb24vanNvbjtcIixcclxuICAgICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvbjtcIiAsXHJcbiAgICAgICAgICAgICAgICBcIngtZGlzY29yZC10b2tlblwiOiB0aGlzLnN0YXRlLmNvbm5lY3Rpb24udXNlci5hY2Nlc3NUb2tlblxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBjcm9zc0RvbWFpbjogdHJ1ZSxcclxuICAgICAgICAgICAgeGhyRmllbGRzOiB7XHJcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc3VjY2VzczogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc2VydmVyQ2FyZC5zZXRTdGF0ZSh7am9pbmVkOiB0cnVlfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25uZWN0KCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBzZWxmLndpbmRvd09wdGlvbnM7XHJcbiAgICAgICAgb3B0aW9ucy54ID0gTWF0aC5yb3VuZCh3aW5kb3cuc2NyZWVuWCArIHdpbmRvdy5pbm5lcldpZHRoIC8gMiAtIG9wdGlvbnMud2lkdGggLyAyKTtcclxuICAgICAgICBvcHRpb25zLnkgPSBNYXRoLnJvdW5kKHdpbmRvdy5zY3JlZW5ZICsgd2luZG93LmlubmVySGVpZ2h0IC8gMiAtIG9wdGlvbnMuaGVpZ2h0IC8gMik7XHJcblxyXG4gICAgICAgIHNlbGYuam9pbldpbmRvdyA9IG5ldyAod2luZG93LnJlcXVpcmUoXCJlbGVjdHJvblwiKS5yZW1vdGUuQnJvd3NlcldpbmRvdykob3B0aW9ucyk7XHJcbiAgICAgICAgY29uc3QgdXJsID0gXCJodHRwczovL2F1dGguZGlzY29yZHNlcnZlcnMuY29tL2Nvbm5lY3Q/c2NvcGVzPWd1aWxkcy5qb2luJnByZXZpb3VzVXJsPWh0dHBzOi8vYXV0aC5kaXNjb3Jkc2VydmVycy5jb20vaW5mb1wiO1xyXG4gICAgICAgIHNlbGYuam9pbldpbmRvdy53ZWJDb250ZW50cy5vbihcImRpZC1uYXZpZ2F0ZVwiLCAoZXZlbnQsIHVybCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodXJsICE9IFwiaHR0cHM6Ly9hdXRoLmRpc2NvcmRzZXJ2ZXJzLmNvbS9pbmZvXCIpIHJldHVybjtcclxuICAgICAgICAgICAgc2VsZi5qb2luV2luZG93LmNsb3NlKCk7XHJcbiAgICAgICAgICAgIHNlbGYuY2hlY2tDb25uZWN0aW9uKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgc2VsZi5qb2luV2luZG93LmxvYWRVUkwodXJsKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgd2luZG93T3B0aW9ucygpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICB3aWR0aDogNTAwLFxyXG4gICAgICAgICAgICBoZWlnaHQ6IDU1MCxcclxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBcIiMyODJiMzBcIixcclxuICAgICAgICAgICAgc2hvdzogdHJ1ZSxcclxuICAgICAgICAgICAgcmVzaXphYmxlOiBmYWxzZSxcclxuICAgICAgICAgICAgbWF4aW1pemFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBtaW5pbWl6YWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGFsd2F5c09uVG9wOiB0cnVlLFxyXG4gICAgICAgICAgICBmcmFtZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGNlbnRlcjogZmFsc2UsXHJcbiAgICAgICAgICAgIHdlYlByZWZlcmVuY2VzOiB7XHJcbiAgICAgICAgICAgICAgICBub2RlSW50ZWdyYXRpb246IGZhbHNlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBiZFNlcnZlcigpIHtcclxuICAgICAgICBjb25zdCBzZXJ2ZXIgPSB7XHJcbiAgICAgICAgICAgIG5hbWU6IFwiQmV0dGVyRGlzY29yZFwiLFxyXG4gICAgICAgICAgICBvbmxpbmU6IFwiNzUwMCtcIixcclxuICAgICAgICAgICAgbWVtYmVyczogXCIyMDAwMCtcIixcclxuICAgICAgICAgICAgY2F0ZWdvcmllczogW1wiY29tbXVuaXR5XCIsIFwicHJvZ3JhbW1pbmdcIiwgXCJzdXBwb3J0XCJdLFxyXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJPZmZpY2lhbCBCZXR0ZXJEaXNjb3JkIHNlcnZlciBmb3Igc3VwcG9ydCBldGNcIixcclxuICAgICAgICAgICAgaWRlbnRpZmllcjogXCI4NjAwNDc0NDk2NjkxNDA0OFwiLFxyXG4gICAgICAgICAgICBpY29uVXJsOiBcImh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2ljb25zLzg2MDA0NzQ0OTY2OTE0MDQ4LzI5MmU3ZjZiZmZmMmI3MWRmZDEzZTUwOGE4NTlhZWRkLndlYnBcIixcclxuICAgICAgICAgICAgbmF0aXZlam9pbjogdHJ1ZSxcclxuICAgICAgICAgICAgaW52aXRlX2NvZGU6IFwiMFRtZm81WmJPUkNScWJBZFwiLFxyXG4gICAgICAgICAgICBwaW5uZWQ6IHRydWVcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IGd1aWxkTGlzdCA9IHRoaXMuU29ydGVkR3VpbGRTdG9yZS5nZXRGbGF0dGVuZWRHdWlsZElkcygpO1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRMaXN0ID0gdGhpcy5BdmF0YXJEZWZhdWx0cy5ERUZBVUxUX0FWQVRBUlM7XHJcbiAgICAgICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChTZXJ2ZXJDYXJkLCB7c2VydmVyOiBzZXJ2ZXIsIHBpbm5lZDogdHJ1ZSwgam9pbjogdGhpcy5qb2luLCBndWlsZExpc3Q6IGd1aWxkTGlzdCwgZmFsbGJhY2s6IGRlZmF1bHRMaXN0W01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDUpXX0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBlbmRQb2ludCgpIHtcclxuICAgICAgICByZXR1cm4gXCJodHRwczovL3NlYXJjaC5kaXNjb3Jkc2VydmVycy5jb21cIjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgam9pbkVuZFBvaW50KCkge1xyXG4gICAgICAgIHJldHVybiBcImh0dHBzOi8vai5kaXNjb3Jkc2VydmVycy5jb21cIjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29ubmVjdEVuZFBvaW50KCkge1xyXG4gICAgICAgIHJldHVybiBcImh0dHBzOi8vam9pbi5kaXNjb3Jkc2VydmVycy5jb20vY29ubmVjdFwiO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrQ29ubmVjdGlvbigpIHtcclxuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAkLmFqYXgoe1xyXG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIkdFVFwiLFxyXG4gICAgICAgICAgICAgICAgdXJsOiBgaHR0cHM6Ly9hdXRoLmRpc2NvcmRzZXJ2ZXJzLmNvbS9pbmZvYCxcclxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICBcIkFjY2VwdFwiOiBcImFwcGxpY2F0aW9uL2pzb247XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uO1wiXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgY3Jvc3NEb21haW46IHRydWUsXHJcbiAgICAgICAgICAgICAgICB4aHJGaWVsZHM6IHtcclxuICAgICAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiBkYXRhID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBVdGlscy5sb2coXCJQdWJsaWNTZXJ2ZXJcIiwgXCJHb3QgZGF0YTogXCIgKyBKU09OLnN0cmluZ2lmeShkYXRhKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkQ2F0ZWdvcnk6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb246IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiAyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcjogZGF0YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5zZWFyY2goXCJcIiwgdHJ1ZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIk5vdCBjb25uZWN0ZWQgdG8gZGlzY29yZHNlcnZlcnMuY29tIVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZENhdGVnb3J5OiAtMSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IDEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyOiBudWxsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBzZWxmLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgIHRpdGxlOiBcIk5vdCBjb25uZWN0ZWQgdG8gZGlzY29yZHNlcnZlcnMuY29tIVwiLFxyXG4gICAgICAgICAgICAgICAgbG9hZGluZzogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkQ2F0ZWdvcnk6IC0xLFxyXG4gICAgICAgICAgICAgICAgY29ubmVjdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXRlOiAxLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXI6IG51bGxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFNpZGViYXJWaWV3LCB7cmVmOiBcInNidlwiLCBjaGlsZHJlbjogdGhpcy5jb21wb25lbnR9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29tcG9uZW50KCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHNpZGViYXI6IHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogdGhpcy5zaWRlYmFyXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogdGhpcy5jb250ZW50XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRvb2xzOiB7XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChUb29scywge2tleTogXCJwdFwiLCByZWY6IFwidG9vbHNcIiwgb25DbGljazogdGhpcy5jbG9zZX0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBzaWRlYmFyKCkge1xyXG4gICAgICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgIHtjbGFzc05hbWU6IFwic2lkZWJhclwiLCBrZXk6IFwicHNcIn0sXHJcbiAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcInVpLXRhYi1iYXIgU0lERVwifSxcclxuICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwidWktdGFiLWJhci1oZWFkZXJcIiwgc3R5bGU6IHtmb250U2l6ZTogXCIxNnB4XCJ9fSxcclxuICAgICAgICAgICAgICAgICAgICBcIlB1YmxpYyBTZXJ2ZXJzXCJcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoVGFiQmFyU2VwYXJhdG9yLCBudWxsKSxcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoSW5wdXQsXHJcbiAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoVGFiQmFyU2VwYXJhdG9yLCBudWxsKSxcclxuICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChUYWJCYXJIZWFkZXIsIHt0ZXh0OiBcIkNhdGVnb3JpZXNcIn0pLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXRlZ29yeUJ1dHRvbnMubWFwKCh2YWx1ZSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFRhYkJhckl0ZW0sIHtpZDogaW5kZXgsIG9uQ2xpY2s6IHRoaXMuY2hhbmdlQ2F0ZWdvcnksIGtleTogaW5kZXgsIHRleHQ6IHZhbHVlLCBzZWxlY3RlZDogdGhpcy5zdGF0ZS5zZWxlY3RlZENhdGVnb3J5ID09PSBpbmRleH0pO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoVGFiQmFyU2VwYXJhdG9yLCBudWxsKSxcclxuICAgICAgICAgICAgICAgIHRoaXMuZm9vdGVyLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBzZWFyY2hJbnB1dCgpIHtcclxuICAgICAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICB7Y2xhc3NOYW1lOiBcInVpLWZvcm0taXRlbVwifSxcclxuICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwidWktdGV4dC1pbnB1dCBmbGV4LXZlcnRpY2FsXCIsIHN0eWxlOiB7d2lkdGg6IFwiMTcycHhcIiwgbWFyZ2luTGVmdDogXCIxMHB4XCJ9fSxcclxuICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHtyZWY6IFwic2VhcmNoaW5wdXRcIiwgb25LZXlEb3duOiB0aGlzLnNlYXJjaEtleURvd24sIG9uQ2hhbmdlOiAoKSA9PiB7fSwgdHlwZTogXCJ0ZXh0XCIsIGNsYXNzTmFtZTogXCJpbnB1dCBkZWZhdWx0XCIsIHBsYWNlaG9sZGVyOiBcIlNlYXJjaC4uLlwiLCBtYXhMZW5ndGg6IFwiNTBcIn0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHNlYXJjaEtleURvd24oZSkge1xyXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIGlmIChzZWxmLnN0YXRlLmxvYWRpbmcgfHwgZS53aGljaCAhPT0gMTMpIHJldHVybjtcclxuICAgICAgICBzZWxmLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgbG9hZGluZzogdHJ1ZSxcclxuICAgICAgICAgICAgdGl0bGU6IFwiTG9hZGluZy4uLlwiLFxyXG4gICAgICAgICAgICB0ZXJtOiBlLnRhcmdldC52YWx1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGxldCBxdWVyeSA9IGA/dGVybT0ke2UudGFyZ2V0LnZhbHVlfWA7XHJcbiAgICAgICAgaWYgKHNlbGYuc3RhdGUuc2VsZWN0ZWRDYXRlZ29yeSAhPT0gMCkge1xyXG4gICAgICAgICAgICBxdWVyeSArPSBgJmNhdGVnb3J5PSR7c2VsZi5jYXRlZ29yeUJ1dHRvbnNbc2VsZi5zdGF0ZS5zZWxlY3RlZENhdGVnb3J5XX1gO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZWxmLnNlYXJjaChxdWVyeSwgdHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNhdGVnb3J5QnV0dG9ucygpIHtcclxuICAgICAgICByZXR1cm4gW1wiQWxsXCIsIFwiRlBTIEdhbWVzXCIsIFwiTU1PIEdhbWVzXCIsIFwiU3RyYXRlZ3kgR2FtZXNcIiwgXCJNT0JBIEdhbWVzXCIsIFwiUlBHIEdhbWVzXCIsIFwiVGFibGV0b3AgR2FtZXNcIiwgXCJTYW5kYm94IEdhbWVzXCIsIFwiU2ltdWxhdGlvbiBHYW1lc1wiLCBcIk11c2ljXCIsIFwiQ29tbXVuaXR5XCIsIFwiTGFuZ3VhZ2VcIiwgXCJQcm9ncmFtbWluZ1wiLCBcIk90aGVyXCJdO1xyXG4gICAgfVxyXG5cclxuICAgIGNoYW5nZUNhdGVnb3J5KGlkKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgaWYgKHNlbGYuc3RhdGUubG9hZGluZykgcmV0dXJuO1xyXG4gICAgICAgIHNlbGYucmVmcy5zZWFyY2hpbnB1dC52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgc2VsZi5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGxvYWRpbmc6IHRydWUsXHJcbiAgICAgICAgICAgIHNlbGVjdGVkQ2F0ZWdvcnk6IGlkLFxyXG4gICAgICAgICAgICB0aXRsZTogXCJMb2FkaW5nLi4uXCIsXHJcbiAgICAgICAgICAgIHRlcm06IG51bGxcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoaWQgPT09IDApIHtcclxuICAgICAgICAgICAgc2VsZi5zZWFyY2goXCJcIiwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgc2VsZi5zZWFyY2goYD9jYXRlZ29yeT0ke3NlbGYuY2F0ZWdvcnlCdXR0b25zW2lkXX1gLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29udGVudCgpIHtcclxuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcclxuICAgICAgICBjb25zdCBndWlsZExpc3QgPSB0aGlzLlNvcnRlZEd1aWxkU3RvcmUuZ2V0RmxhdHRlbmVkR3VpbGRJZHMoKTtcclxuICAgICAgICBjb25zdCBkZWZhdWx0TGlzdCA9IHRoaXMuQXZhdGFyRGVmYXVsdHMuREVGQVVMVF9BVkFUQVJTO1xyXG4gICAgICAgIGlmIChzZWxmLnN0YXRlLmNvbm5lY3Rpb24uc3RhdGUgPT09IDEpIHJldHVybiBzZWxmLm5vdENvbm5lY3RlZDtcclxuICAgICAgICByZXR1cm4gW0JEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAge3JlZjogXCJjb250ZW50XCIsIGtleTogXCJwY1wiLCBjbGFzc05hbWU6IFwiY29udGVudENvbHVtbi0yaHJJWUggY29udGVudENvbHVtbkRlZmF1bHQtMVZRa0dNIGNvbnRlbnQtY29sdW1uIGRlZmF1bHRcIn0sXHJcbiAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChTZXR0aW5nc1RpdGxlLCB7dGV4dDogc2VsZi5zdGF0ZS50aXRsZX0pLFxyXG4gICAgICAgICAgICBzZWxmLmJkU2VydmVyLFxyXG4gICAgICAgICAgICBzZWxmLnN0YXRlLnNlcnZlcnMubWFwKChzZXJ2ZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoU2VydmVyQ2FyZCwge2tleTogc2VydmVyLmlkZW50aWZpZXIsIHNlcnZlcjogc2VydmVyLCBqb2luOiBzZWxmLmpvaW4sIGd1aWxkTGlzdDogZ3VpbGRMaXN0LCBmYWxsYmFjazogZGVmYXVsdExpc3RbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNSldfSk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBzZWxmLnN0YXRlLm5leHQgJiYgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgXCJidXR0b25cIixcclxuICAgICAgICAgICAgICAgIHt0eXBlOiBcImJ1dHRvblwiLCBvbkNsaWNrOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZWxmLnN0YXRlLmxvYWRpbmcpIHJldHVybjtzZWxmLnNldFN0YXRlKHtsb2FkaW5nOiB0cnVlfSk7IHNlbGYuc2VhcmNoKHNlbGYuc3RhdGUubmV4dCwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sIGNsYXNzTmFtZTogXCJ1aS1idXR0b24gZmlsbGVkIGJyYW5kIHNtYWxsIGdyb3dcIiwgc3R5bGU6IHt3aWR0aDogXCIxMDAlXCIsIG1hcmdpblRvcDogXCIxMHB4XCIsIG1hcmdpbkJvdHRvbTogXCIxMHB4XCJ9fSxcclxuICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwidWktYnV0dG9uLWNvbnRlbnRzXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUubG9hZGluZyA/IFwiTG9hZGluZ1wiIDogXCJMb2FkIE1vcmVcIlxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICBzZWxmLnN0YXRlLnNlcnZlcnMubGVuZ3RoID4gMCAmJiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NUaXRsZSwge3RleHQ6IHNlbGYuc3RhdGUudGl0bGV9KVxyXG4gICAgICAgICldO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBub3RDb25uZWN0ZWQoKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgLy9yZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzVGl0bGUsIHsgdGV4dDogc2VsZi5zdGF0ZS50aXRsZSB9KTtcclxuICAgICAgICByZXR1cm4gW0JEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAge2tleTogXCJuY2NcIiwgcmVmOiBcImNvbnRlbnRcIiwgY2xhc3NOYW1lOiBcImNvbnRlbnRDb2x1bW4tMmhySVlIIGNvbnRlbnRDb2x1bW5EZWZhdWx0LTFWUWtHTSBjb250ZW50LWNvbHVtbiBkZWZhdWx0XCJ9LFxyXG4gICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICBcImgyXCIsXHJcbiAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcInVpLWZvcm0tdGl0bGUgaDIgbWFyZ2luLXJlc2V0IG1hcmdpbi1ib3R0b20tMjBcIn0sXHJcbiAgICAgICAgICAgICAgICBcIk5vdCBjb25uZWN0ZWQgdG8gZGlzY29yZHNlcnZlcnMuY29tIVwiLFxyXG4gICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgIFwiYnV0dG9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBzZWxmLmNvbm5lY3QsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogXCJ1aS1idXR0b24gZmlsbGVkIGJyYW5kIHNtYWxsIGdyb3dcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwiaW5saW5lLWJsb2NrXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5IZWlnaHQ6IFwiMThweFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogXCIxMHB4XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiBcIjE0cHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwidWktYnV0dG9uLWNvbnRlbnRzXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkNvbm5lY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKSwgc2VsZi5iZFNlcnZlclxyXG4gICAgICAgICldO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBmb290ZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAge2NsYXNzTmFtZTogXCJ1aS10YWItYmFyLWhlYWRlclwifSxcclxuICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgXCJhXCIsXHJcbiAgICAgICAgICAgICAgICB7aHJlZjogXCJodHRwczovL2Rpc2NvcmRzZXJ2ZXJzLmNvbVwiLCB0YXJnZXQ6IFwiX2JsYW5rXCJ9LFxyXG4gICAgICAgICAgICAgICAgXCJEaXNjb3Jkc2VydmVycy5jb21cIlxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29ubmVjdGlvbigpIHtcclxuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcclxuICAgICAgICBjb25zdCB7Y29ubmVjdGlvbn0gPSBzZWxmLnN0YXRlO1xyXG4gICAgICAgIGlmIChjb25uZWN0aW9uLnN0YXRlICE9PSAyKSByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCBudWxsKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJzcGFuXCIsXHJcbiAgICAgICAgICAgIG51bGwsXHJcbiAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChUYWJCYXJTZXBhcmF0b3IsIG51bGwpLFxyXG4gICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICBcInNwYW5cIixcclxuICAgICAgICAgICAgICAgIHtzdHlsZToge2NvbG9yOiBcIiNiOWJiYmVcIiwgZm9udFNpemU6IFwiMTBweFwiLCBtYXJnaW5MZWZ0OiBcIjEwcHhcIn19LFxyXG4gICAgICAgICAgICAgICAgXCJDb25uZWN0ZWQgYXM6IFwiLFxyXG4gICAgICAgICAgICAgICAgYCR7Y29ubmVjdGlvbi51c2VyLnVzZXJuYW1lfSMke2Nvbm5lY3Rpb24udXNlci5kaXNjcmltaW5hdG9yfWBcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAgICAgIHtzdHlsZToge3BhZGRpbmc6IFwiNXB4IDEwcHggMCAxMHB4XCJ9fSxcclxuICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICBcImJ1dHRvblwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHtzdHlsZToge3dpZHRoOiBcIjEwMCVcIiwgbWluSGVpZ2h0OiBcIjIwcHhcIn0sIHR5cGU6IFwiYnV0dG9uXCIsIGNsYXNzTmFtZTogXCJ1aS1idXR0b24gZmlsbGVkIGJyYW5kIHNtYWxsIGdyb3dcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcInVpLWJ1dHRvbi1jb250ZW50c1wiLCBvbkNsaWNrOiBzZWxmLmNvbm5lY3R9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlJlY29ubmVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxufVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3JlbG9hZEljb24uanM/ZmFmMyJdLCJuYW1lcyI6WyJWMkNfUmVsb2FkSWNvbiIsIkJEVjIiLCJyZWFjdENvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJyZW5kZXIiLCJyZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJ4bWxucyIsInZpZXdCb3giLCJmaWxsIiwiY2xhc3NOYW1lIiwib25DbGljayIsInN0eWxlIiwid2lkdGgiLCJzaXplIiwiaGVpZ2h0IiwiZCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFFZSxNQUFNQSxjQUFOLFNBQTZCQywyQ0FBSSxDQUFDQyxjQUFsQyxDQUFpRDtBQUM1REMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFdBQU9KLDJDQUFJLENBQUNLLEtBQUwsQ0FBV0MsYUFBWCxDQUF5QixLQUF6QixFQUFnQztBQUMvQkMsV0FBSyxFQUFFLDRCQUR3QjtBQUUvQkMsYUFBTyxFQUFFLFdBRnNCO0FBRy9CQyxVQUFJLEVBQUUsU0FIeUI7QUFJL0JDLGVBQVMsRUFBRSxlQUFlLEtBQUtQLEtBQUwsQ0FBV08sU0FKTjtBQUsvQkMsYUFBTyxFQUFFLEtBQUtSLEtBQUwsQ0FBV1EsT0FMVztBQU0vQkMsV0FBSyxFQUFFO0FBQUNDLGFBQUssRUFBRSxLQUFLVixLQUFMLENBQVdXLElBQVgsSUFBbUIsTUFBM0I7QUFBbUNDLGNBQU0sRUFBRSxLQUFLWixLQUFMLENBQVdXLElBQVgsSUFBbUI7QUFBOUQ7QUFOd0IsS0FBaEMsRUFRSGQsMkNBQUksQ0FBQ0ssS0FBTCxDQUFXQyxhQUFYLENBQXlCLE1BQXpCLEVBQWlDO0FBQUNVLE9BQUMsRUFBRTtBQUFKLEtBQWpDLENBUkcsRUFTSGhCLDJDQUFJLENBQUNLLEtBQUwsQ0FBV0MsYUFBWCxDQUF5QixNQUF6QixFQUFpQztBQUFDRyxVQUFJLEVBQUUsTUFBUDtBQUFlTyxPQUFDLEVBQUU7QUFBbEIsS0FBakMsQ0FURyxDQUFQO0FBV0g7O0FBakIyRCIsImZpbGUiOiIuL3NyYy9yZWFjdC9yZWxvYWRJY29uLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJEVjIgZnJvbSBcIi4uL3YyXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWMkNfUmVsb2FkSWNvbiBleHRlbmRzIEJEVjIucmVhY3RDb21wb25lbnQge1xyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwge1xyXG4gICAgICAgICAgICAgICAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcclxuICAgICAgICAgICAgICAgIHZpZXdCb3g6IFwiMCAwIDI0IDI0XCIsXHJcbiAgICAgICAgICAgICAgICBmaWxsOiBcIiNkY2RkZGVcIixcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogXCJiZC1yZWxvYWQgXCIgKyB0aGlzLnByb3BzLmNsYXNzTmFtZSxcclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s6IHRoaXMucHJvcHMub25DbGljayxcclxuICAgICAgICAgICAgICAgIHN0eWxlOiB7d2lkdGg6IHRoaXMucHJvcHMuc2l6ZSB8fCBcIjI0cHhcIiwgaGVpZ2h0OiB0aGlzLnByb3BzLnNpemUgfHwgXCIyNHB4XCJ9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge2Q6IFwiTTE3LjY1IDYuMzVDMTYuMiA0LjkgMTQuMjEgNCAxMiA0Yy00LjQyIDAtNy45OSAzLjU4LTcuOTkgOHMzLjU3IDggNy45OSA4YzMuNzMgMCA2Ljg0LTIuNTUgNy43My02aC0yLjA4Yy0uODIgMi4zMy0zLjA0IDQtNS42NSA0LTMuMzEgMC02LTIuNjktNi02czIuNjktNiA2LTZjMS42NiAwIDMuMTQuNjkgNC4yMiAxLjc4TDEzIDExaDdWNGwtMi4zNSAyLjM1elwifSksXHJcbiAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge2ZpbGw6IFwibm9uZVwiLCBkOiBcIk0wIDBoMjR2MjRIMHpcIn0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3Njcm9sbGVyLmpzPzFkOWIiXSwibmFtZXMiOlsiVjJDX1Njcm9sbGVyIiwiQkRWMiIsInJlYWN0Q29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInJlbmRlciIsIndyYXBwZXJDbGFzcyIsImZhZGUiLCJzY3JvbGxlckNsYXNzIiwic2lkZWJhciIsImNvbnRlbnRDb2x1bW4iLCJjaGlsZHJlbiIsInJlYWN0IiwiY3JlYXRlRWxlbWVudCIsImtleSIsImNsYXNzTmFtZSIsInJlZiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFFZSxNQUFNQSxZQUFOLFNBQTJCQywyQ0FBSSxDQUFDQyxjQUFoQyxDQUErQztBQUUxREMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMO0FBQ0EsUUFBSUMsWUFBWSxHQUFJLHNFQUFxRSxLQUFLRixLQUFMLENBQVdHLElBQVgsR0FBa0Isc0JBQWxCLEdBQTJDLEVBQUcsRUFBdkk7QUFDQSxRQUFJQyxhQUFhLEdBQUcsMEJBQXBCO0FBQXlGOztBQUN6RixRQUFJLEtBQUtKLEtBQUwsQ0FBV0ssT0FBZixFQUF3QkQsYUFBYSxHQUFHLDJHQUFoQjs7QUFDeEIsUUFBSSxLQUFLSixLQUFMLENBQVdNLGFBQWYsRUFBOEI7QUFDMUJGLG1CQUFhLEdBQUcsMkdBQWhCO0FBQXFLOztBQUNyS0Ysa0JBQVksR0FBRyw0S0FBZjtBQUNIOztBQUNELFVBQU07QUFBQ0s7QUFBRCxRQUFhLEtBQUtQLEtBQXhCO0FBQ0EsV0FBT0gsMkNBQUksQ0FBQ1csS0FBTCxDQUFXQyxhQUFYLENBQ0gsS0FERyxFQUVIO0FBQUNDLFNBQUcsRUFBRSxjQUFOO0FBQXNCQyxlQUFTLEVBQUVUO0FBQWpDLEtBRkcsRUFHSEwsMkNBQUksQ0FBQ1csS0FBTCxDQUFXQyxhQUFYLENBQ0ksS0FESixFQUVJO0FBQUNDLFNBQUcsRUFBRSxVQUFOO0FBQWtCRSxTQUFHLEVBQUUsVUFBdkI7QUFBbUNELGVBQVMsRUFBRVA7QUFBOUMsS0FGSixFQUdJRyxRQUhKLENBSEcsQ0FBUDtBQVNIOztBQXpCeUQiLCJmaWxlIjoiLi9zcmMvcmVhY3Qvc2Nyb2xsZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQkRWMiBmcm9tIFwiLi4vdjJcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFYyQ19TY3JvbGxlciBleHRlbmRzIEJEVjIucmVhY3RDb21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICAvL3Njcm9sbGVyV3JhcC0ybEpFa2Qgc2Nyb2xsZXJUaGVtZWQtMm9lbnVzIHRoZW1lR2hvc3RIYWlybGluZS1EQkQtMmQgc2Nyb2xsZXJGYWRlLTFJanc1eVxyXG4gICAgICAgIGxldCB3cmFwcGVyQ2xhc3MgPSBgc2Nyb2xsZXJXcmFwLTJsSkVrZCBzY3JvbGxlclRoZW1lZC0yb2VudXMgdGhlbWVHaG9zdEhhaXJsaW5lLURCRC0yZCR7dGhpcy5wcm9wcy5mYWRlID8gXCIgc2Nyb2xsZXJGYWRlLTFJanc1eVwiIDogXCJcIn1gO1xyXG4gICAgICAgIGxldCBzY3JvbGxlckNsYXNzID0gXCJzY3JvbGxlci0yRktGUEcgc2Nyb2xsZXJcIjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBmdWNrICovXHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuc2lkZWJhcikgc2Nyb2xsZXJDbGFzcyA9IFwic2Nyb2xsZXItMkZLRlBHIGZpcmVmb3hGaXhTY3JvbGxGbGV4LWNuSTJpeCBzaWRlYmFyUmVnaW9uU2Nyb2xsZXItM01YY29QIHNpZGViYXItcmVnaW9uLXNjcm9sbGVyIHNjcm9sbGVyXCI7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuY29udGVudENvbHVtbikge1xyXG4gICAgICAgICAgICBzY3JvbGxlckNsYXNzID0gXCJzY3JvbGxlci0yRktGUEcgZmlyZWZveEZpeFNjcm9sbEZsZXgtY25JMml4IGNvbnRlbnRSZWdpb25TY3JvbGxlci0yNm5jMWUgY29udGVudC1yZWdpb24tc2Nyb2xsZXIgc2Nyb2xsZXJcIjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZ1Y2sgKi9cclxuICAgICAgICAgICAgd3JhcHBlckNsYXNzID0gXCJzY3JvbGxlcldyYXAtMmxKRWtkIGZpcmVmb3hGaXhTY3JvbGxGbGV4LWNuSTJpeCBjb250ZW50UmVnaW9uU2Nyb2xsZXJXcmFwLTNZWlhkbSBjb250ZW50LXJlZ2lvbi1zY3JvbGxlci13cmFwIHNjcm9sbGVyVGhlbWVkLTJvZW51cyB0aGVtZUdob3N0LTI4TVNuMCBzY3JvbGxlclRyYWNrLTFaSXBzdlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB7Y2hpbGRyZW59ID0gdGhpcy5wcm9wcztcclxuICAgICAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICB7a2V5OiBcInNjcm9sbGVyd3JhcFwiLCBjbGFzc05hbWU6IHdyYXBwZXJDbGFzc30sXHJcbiAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICB7a2V5OiBcInNjcm9sbGVyXCIsIHJlZjogXCJzY3JvbGxlclwiLCBjbGFzc05hbWU6IHNjcm9sbGVyQ2xhc3N9LFxyXG4gICAgICAgICAgICAgICAgY2hpbGRyZW5cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3NlY3Rpb25lZFNldHRpbmdzUGFuZWwuanM/ZTI4ZCJdLCJuYW1lcyI6WyJWMkNfU2VjdGlvbmVkU2V0dGluZ3NQYW5lbCIsIkJEVjIiLCJyZWFjdENvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJyZW5kZXIiLCJyZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJzZWN0aW9ucyIsIm1hcCIsInNlY3Rpb24iLCJTZXR0aW5nc0dyb3VwIiwiT2JqZWN0IiwiYXNzaWduIiwib25DaGFuZ2UiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUVlLE1BQU1BLDBCQUFOLFNBQXlDQywyQ0FBSSxDQUFDQyxjQUE5QyxDQUE2RDtBQUV4RUMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFdBQU9KLDJDQUFJLENBQUNLLEtBQUwsQ0FBV0MsYUFBWCxDQUNILEtBREcsRUFDSTtBQUFDQyxlQUFTLEVBQUU7QUFBWixLQURKLEVBRUgsS0FBS0osS0FBTCxDQUFXSyxRQUFYLENBQW9CQyxHQUFwQixDQUF3QkMsT0FBTyxJQUFJO0FBQy9CLGFBQU9WLDJDQUFJLENBQUNLLEtBQUwsQ0FBV0MsYUFBWCxDQUF5Qkssc0RBQXpCLEVBQXdDQyxNQUFNLENBQUNDLE1BQVAsQ0FBYyxFQUFkLEVBQWtCSCxPQUFsQixFQUEyQjtBQUFDSSxnQkFBUSxFQUFFLEtBQUtYLEtBQUwsQ0FBV1c7QUFBdEIsT0FBM0IsQ0FBeEMsQ0FBUDtBQUNILEtBRkQsQ0FGRyxDQUFQO0FBTUg7O0FBYnVFIiwiZmlsZSI6Ii4vc3JjL3JlYWN0L3NlY3Rpb25lZFNldHRpbmdzUGFuZWwuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQkRWMiBmcm9tIFwiLi4vdjJcIjtcclxuXHJcbmltcG9ydCBTZXR0aW5nc0dyb3VwIGZyb20gXCIuL3NldHRpbmdzR3JvdXBcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFYyQ19TZWN0aW9uZWRTZXR0aW5nc1BhbmVsIGV4dGVuZHMgQkRWMi5yZWFjdENvbXBvbmVudCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgIFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiY29udGVudENvbHVtbi0yaHJJWUggY29udGVudENvbHVtbkRlZmF1bHQtMVZRa0dNIGNvbnRlbnQtY29sdW1uIGRlZmF1bHRcIn0sXHJcbiAgICAgICAgICAgIHRoaXMucHJvcHMuc2VjdGlvbnMubWFwKHNlY3Rpb24gPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChTZXR0aW5nc0dyb3VwLCBPYmplY3QuYXNzaWduKHt9LCBzZWN0aW9uLCB7b25DaGFuZ2U6IHRoaXMucHJvcHMub25DaGFuZ2V9KSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3NlcnZlckNhcmQuanM/YjQ3YSJdLCJuYW1lcyI6WyJWMkNfU2VydmVyQ2FyZCIsIkJEVjIiLCJyZWFjdENvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzZXJ2ZXIiLCJpY29uVXJsIiwiZmFsbGJhY2siLCJzdGF0ZSIsImltYWdlRXJyb3IiLCJqb2luZWQiLCJndWlsZExpc3QiLCJpbmNsdWRlcyIsImlkZW50aWZpZXIiLCJyZW5kZXIiLCJyZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJwaW5uZWQiLCJyZWYiLCJzcmMiLCJvbkVycm9yIiwiaGFuZGxlRXJyb3IiLCJiaW5kIiwibmFtZSIsIm1lbWJlcnMiLCJkZXNjcmlwdGlvbiIsInN0eWxlIiwiZmxleCIsImNhdGVnb3JpZXMiLCJqb2luIiwidHlwZSIsIm1pbkhlaWdodCIsIm1hcmdpblRvcCIsImJhY2tncm91bmRDb2xvciIsImVycm9yIiwib25DbGljayIsInNldFN0YXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLGNBQU4sU0FBNkJDLDJDQUFJLENBQUNDLGNBQWxDLENBQWlEO0FBQzVEQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDQSxRQUFJLENBQUMsS0FBS0EsS0FBTCxDQUFXQyxNQUFYLENBQWtCQyxPQUF2QixFQUFnQyxLQUFLRixLQUFMLENBQVdDLE1BQVgsQ0FBa0JDLE9BQWxCLEdBQTRCLEtBQUtGLEtBQUwsQ0FBV0csUUFBdkM7QUFDaEMsU0FBS0MsS0FBTCxHQUFhO0FBQ1RDLGdCQUFVLEVBQUUsS0FESDtBQUVUQyxZQUFNLEVBQUUsS0FBS04sS0FBTCxDQUFXTyxTQUFYLENBQXFCQyxRQUFyQixDQUE4QixLQUFLUixLQUFMLENBQVdDLE1BQVgsQ0FBa0JRLFVBQWhEO0FBRkMsS0FBYjtBQUlIOztBQUVEQyxRQUFNLEdBQUc7QUFDTCxV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QWUsRUFBRTtBQUF2RDtBQUFuSSxLQUZZLEVBR1pqQywyQ0FBSSxDQUFDYyxLQUFMLENBQVdDLGFBQVgsQ0FDSSxLQURKLEVBRUk7QUFBQ0MsZUFBUyxFQUFFO0FBQVosS0FGSixFQUdJLE9BSEosQ0FIWSxDQWpCcEIsRUEwQkksQ0FBQ1osTUFBTSxDQUFDOEIsS0FBUixJQUFpQixDQUFDLEtBQUszQixLQUFMLENBQVdFLE1BQTdCLElBQXVDVCwyQ0FBSSxDQUFDYyxLQUFMLENBQVdDLGFBQVgsQ0FDbkMsUUFEbUMsRUFFbkM7QUFBQ2UsVUFBSSxFQUFFLFFBQVA7QUFBaUJkLGVBQVMsRUFBRSw4RUFBNUI7QUFBNEdVLFdBQUssRUFBRTtBQUFDSyxpQkFBUyxFQUFFLE1BQVo7QUFBb0JDLGlCQUFTLEVBQUU7QUFBL0IsT0FBbkg7QUFBMEpHLGFBQU8sRUFBRSxNQUFNO0FBQUMsYUFBS04sSUFBTDtBQUFhO0FBQXZMLEtBRm1DLEVBR25DN0IsMkNBQUksQ0FBQ2MsS0FBTCxDQUFXQyxhQUFYLENBQ0ksS0FESixFQUVJO0FBQUNDLGVBQVMsRUFBRTtBQUFaLEtBRkosRUFHSSxNQUhKLENBSG1DLENBMUIzQyxDQS9CSixDQVBELENBMkVIO0FBM0VHLEtBQVA7QUE2RUg7O0FBRURLLGFBQVcsR0FBRztBQUNWLFNBQUtsQixLQUFMLENBQVdDLE1BQVgsQ0FBa0JDLE9BQWxCLEdBQTRCLEtBQUtGLEtBQUwsQ0FBV0csUUFBdkM7QUFDQSxTQUFLOEIsUUFBTCxDQUFjO0FBQUM1QixnQkFBVSxFQUFFO0FBQWIsS0FBZDtBQUNIOztBQUVEcUIsTUFBSSxHQUFHO0FBQ0gsU0FBSzFCLEtBQUwsQ0FBVzBCLElBQVgsQ0FBZ0IsSUFBaEIsRUFERyxDQUVIO0FBQ0g7O0FBbkcyRCIsImZpbGUiOiIuL3NyYy9yZWFjdC9zZXJ2ZXJDYXJkLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJEVjIgZnJvbSBcIi4uL3YyXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWMkNfU2VydmVyQ2FyZCBleHRlbmRzIEJEVjIucmVhY3RDb21wb25lbnQge1xyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLnNlcnZlci5pY29uVXJsKSB0aGlzLnByb3BzLnNlcnZlci5pY29uVXJsID0gdGhpcy5wcm9wcy5mYWxsYmFjaztcclxuICAgICAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICAgICAgICBpbWFnZUVycm9yOiBmYWxzZSxcclxuICAgICAgICAgICAgam9pbmVkOiB0aGlzLnByb3BzLmd1aWxkTGlzdC5pbmNsdWRlcyh0aGlzLnByb3BzLnNlcnZlci5pZGVudGlmaWVyKVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHtzZXJ2ZXJ9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICBcImRpdlwiLCAvLyBjYXJkUHJpbWFyeS0xSHYtdG9cclxuICAgICAgICAgICAge2NsYXNzTmFtZTogYGNhcmQtM1FqX1l4IGNhcmRQcmltYXJ5LTFIdi10byBtYXJnaW5Cb3R0b204LUF0Wk9kVCBiZC1zZXJ2ZXItY2FyZCR7c2VydmVyLnBpbm5lZCA/IFwiIGJkLXNlcnZlci1jYXJkLXBpbm5lZFwiIDogXCJcIn1gfSxcclxuICAgICAgICAgICAgLy8gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgLy8gXCJkaXZcIixcclxuICAgICAgICAgICAgICAgIC8vIHsgY2xhc3NOYW1lOiBcImZsZXgtMXhNUWc1IGZsZXgtMU8xR0tZIGhvcml6b250YWwtMWFlOWNpIGhvcml6b250YWwtMkVFRW5ZIGZsZXgtMU8xR0tZIGRpcmVjdGlvblJvdy0zdjN0ZkcganVzdGlmeVN0YXJ0LTJ5SVpvMCBhbGlnblN0cmV0Y2gtMWh3eE1hIG5vV3JhcC0zanludjZcIiB9LFxyXG4gICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiaW1nXCIsIHtyZWY6IFwiaW1nXCIsIGNsYXNzTmFtZTogXCJiZC1zZXJ2ZXItaW1hZ2VcIiwgc3JjOiBzZXJ2ZXIuaWNvblVybCwgb25FcnJvcjogdGhpcy5oYW5kbGVFcnJvci5iaW5kKHRoaXMpfSksXHJcbiAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcImZsZXhDaGlsZC1mYW9WVzMgYmQtc2VydmVyLWNvbnRlbnRcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcImZsZXgtMXhNUWc1IGZsZXgtMU8xR0tZIGhvcml6b250YWwtMWFlOWNpIGhvcml6b250YWwtMkVFRW5ZIGRpcmVjdGlvblJvdy0zdjN0Zkcgbm9XcmFwLTNqeW52NiBiZC1zZXJ2ZXItaGVhZGVyXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImg1XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcImg1LTE4XzFuZCBkZWZhdWx0Q29sb3ItMV9halgwIG1hcmdpbi1yZXNldCBiZC1zZXJ2ZXItbmFtZVwifSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlci5uYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaDVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwiaDUtMThfMW5kIGRlZmF1bHRDb2xvci0xX2FqWDAgbWFyZ2luLXJlc2V0IGJkLXNlcnZlci1tZW1iZXItY291bnRcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIubWVtYmVycyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiIE1lbWJlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwiZmxleC0xeE1RZzUgZmxleC0xTzFHS1kgaG9yaXpvbnRhbC0xYWU5Y2kgaG9yaXpvbnRhbC0yRUVFblkgZGlyZWN0aW9uUm93LTN2M3RmRyBub1dyYXAtM2p5bnY2XCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2NsYXNzTmFtZTogXCJzY3JvbGxlcldyYXAtMmxKRWtkIHNjcm9sbGVyVGhlbWVkLTJvZW51cyB0aGVtZUdob3N0SGFpcmxpbmUtREJELTJkIHNjcm9sbGVyRmFkZS0xSWp3NXkgYmQtc2VydmVyLWRlc2NyaXB0aW9uLWNvbnRhaW5lclwifSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwic2Nyb2xsZXItMkZLRlBHIHNjcm9sbGVyIGJkLXNlcnZlci1kZXNjcmlwdGlvblwifSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyLmRlc2NyaXB0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAge2NsYXNzTmFtZTogXCJmbGV4LTF4TVFnNSBmbGV4LTFPMUdLWSBob3Jpem9udGFsLTFhZTljaSBob3Jpem9udGFsLTJFRUVuWSBkaXJlY3Rpb25Sb3ctM3YzdGZHIG5vV3JhcC0zanludjYgYmQtc2VydmVyLWZvb3RlclwifSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwiZmxleENoaWxkLWZhb1ZXMyBiZC1zZXJ2ZXItdGFnc1wiLCBzdHlsZToge2ZsZXg6IFwiMSAxIGF1dG9cIn19LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyLmNhdGVnb3JpZXMuam9pbihcIiwgXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuam9pbmVkICYmIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYnV0dG9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dHlwZTogXCJidXR0b25cIiwgY2xhc3NOYW1lOiBcImJ1dHRvbi0zOGFTY3IgbG9va0ZpbGxlZC0xR3gwMFAgY29sb3JCcmFuZC0zcFhyOTEgc2l6ZU1pbi0xbUpkMXggZ3Jvdy1xNzdPTk4gY29sb3JHcmVlbi0yOWlBS1lcIiwgc3R5bGU6IHttaW5IZWlnaHQ6IFwiMTJweFwiLCBtYXJnaW5Ub3A6IFwiNHB4XCIsIGJhY2tncm91bmRDb2xvcjogXCIjM2FjMTVjXCJ9fSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwidWktYnV0dG9uLWNvbnRlbnRzXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiSm9pbmVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyLmVycm9yICYmIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYnV0dG9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dHlwZTogXCJidXR0b25cIiwgY2xhc3NOYW1lOiBcImJ1dHRvbi0zOGFTY3IgbG9va0ZpbGxlZC0xR3gwMFAgY29sb3JCcmFuZC0zcFhyOTEgc2l6ZU1pbi0xbUpkMXggZ3Jvdy1xNzdPTk4gZGlzYWJsZWQtOWFGMnVnXCIsIHN0eWxlOiB7bWluSGVpZ2h0OiBcIjEycHhcIiwgbWFyZ2luVG9wOiBcIjRweFwiLCBiYWNrZ3JvdW5kQ29sb3I6IFwiI2MxM2EzYVwifX0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcInVpLWJ1dHRvbi1jb250ZW50c1wifSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkVycm9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgIXNlcnZlci5lcnJvciAmJiAhdGhpcy5zdGF0ZS5qb2luZWQgJiYgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJidXR0b25cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0eXBlOiBcImJ1dHRvblwiLCBjbGFzc05hbWU6IFwiYnV0dG9uLTM4YVNjciBsb29rRmlsbGVkLTFHeDAwUCBjb2xvckJyYW5kLTNwWHI5MSBzaXplTWluLTFtSmQxeCBncm93LXE3N09OTlwiLCBzdHlsZToge21pbkhlaWdodDogXCIxMnB4XCIsIG1hcmdpblRvcDogXCI0cHhcIn0sIG9uQ2xpY2s6ICgpID0+IHt0aGlzLmpvaW4oKTt9fSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwidWktYnV0dG9uLWNvbnRlbnRzXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiSm9pblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC8vIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUVycm9yKCkge1xyXG4gICAgICAgIHRoaXMucHJvcHMuc2VydmVyLmljb25VcmwgPSB0aGlzLnByb3BzLmZhbGxiYWNrO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2ltYWdlRXJyb3I6IHRydWV9KTtcclxuICAgIH1cclxuXHJcbiAgICBqb2luKCkge1xyXG4gICAgICAgIHRoaXMucHJvcHMuam9pbih0aGlzKTtcclxuICAgICAgICAvL3RoaXMuc2V0U3RhdGUoe2pvaW5lZDogdHJ1ZX0pO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3NldHRpbmdzR3JvdXAuanM/M2ZmOSJdLCJuYW1lcyI6WyJWMkNfU2V0dGluZ3NHcm91cCIsIkJEVjIiLCJyZWFjdENvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJyZW5kZXIiLCJ0aXRsZSIsInNldHRpbmdzIiwiYnV0dG9uIiwiYnV0dG9uQ29tcG9uZW50IiwicmVhY3QiLCJjcmVhdGVFbGVtZW50Iiwia2V5IiwiY2xhc3NOYW1lIiwib25DbGljayIsIlNldHRpbmdzVGl0bGUiLCJ0ZXh0IiwibWFwIiwic2V0dGluZyIsIlN3aXRjaCIsImlkIiwiZGF0YSIsImNoZWNrZWQiLCJzZXR0aW5nc0Nvb2tpZSIsIm9uQ2hhbmdlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFDQTtBQUVlLE1BQU1BLGlCQUFOLFNBQWdDQywyQ0FBSSxDQUFDQyxjQUFyQyxDQUFvRDtBQUUvREMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFVBQU07QUFBQ0MsV0FBRDtBQUFRQyxjQUFSO0FBQWtCQztBQUFsQixRQUE0QixLQUFLSixLQUF2QztBQUNBLFVBQU1LLGVBQWUsR0FBR0QsTUFBTSxHQUFHUCwyQ0FBSSxDQUFDUyxLQUFMLENBQVdDLGFBQVgsQ0FBeUIsUUFBekIsRUFBbUM7QUFBQ0MsU0FBRyxFQUFFLGNBQU47QUFBc0JDLGVBQVMsRUFBRSxVQUFqQztBQUE2Q0MsYUFBTyxFQUFFTixNQUFNLENBQUNNO0FBQTdELEtBQW5DLEVBQTBHTixNQUFNLENBQUNGLEtBQWpILENBQUgsR0FBNkgsSUFBM0o7QUFDQSxXQUFPLENBQUNMLDJDQUFJLENBQUNTLEtBQUwsQ0FBV0MsYUFBWCxDQUF5Qkksc0RBQXpCLEVBQXdDO0FBQUNDLFVBQUksRUFBRVY7QUFBUCxLQUF4QyxDQUFELEVBQ0NHLGVBREQsRUFFQ0YsUUFBUSxDQUFDVSxHQUFULENBQWFDLE9BQU8sSUFBSTtBQUNwQixhQUFPakIsMkNBQUksQ0FBQ1MsS0FBTCxDQUFXQyxhQUFYLENBQXlCUSwrQ0FBekIsRUFBaUM7QUFBQ0MsVUFBRSxFQUFFRixPQUFPLENBQUNFLEVBQWI7QUFBaUJSLFdBQUcsRUFBRU0sT0FBTyxDQUFDRSxFQUE5QjtBQUFrQ0MsWUFBSSxFQUFFSCxPQUF4QztBQUFpREksZUFBTyxFQUFFQyx3REFBYyxDQUFDTCxPQUFPLENBQUNFLEVBQVQsQ0FBeEU7QUFBc0ZJLGdCQUFRLEVBQUUsQ0FBQ0osRUFBRCxFQUFLRSxPQUFMLEtBQWlCO0FBQ3JKLGVBQUtsQixLQUFMLENBQVdvQixRQUFYLENBQW9CSixFQUFwQixFQUF3QkUsT0FBeEI7QUFDSDtBQUZ1QyxPQUFqQyxDQUFQO0FBR0gsS0FKRCxDQUZELENBQVA7QUFPSDs7QUFoQjhEIiwiZmlsZSI6Ii4vc3JjL3JlYWN0L3NldHRpbmdzR3JvdXAuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3NldHRpbmdzQ29va2llfSBmcm9tIFwiLi4vMGdsb2JhbHNcIjtcclxuaW1wb3J0IEJEVjIgZnJvbSBcIi4uL3YyXCI7XHJcblxyXG5pbXBvcnQgU2V0dGluZ3NUaXRsZSBmcm9tIFwiLi9zZXR0aW5nc1RpdGxlXCI7XHJcbmltcG9ydCBTd2l0Y2ggZnJvbSBcIi4vc3dpdGNoXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWMkNfU2V0dGluZ3NHcm91cCBleHRlbmRzIEJEVjIucmVhY3RDb21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCB7dGl0bGUsIHNldHRpbmdzLCBidXR0b259ID0gdGhpcy5wcm9wcztcclxuICAgICAgICBjb25zdCBidXR0b25Db21wb25lbnQgPSBidXR0b24gPyBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwge2tleTogXCJ0aXRsZS1idXR0b25cIiwgY2xhc3NOYW1lOiBcImJkLXBmYnRuXCIsIG9uQ2xpY2s6IGJ1dHRvbi5vbkNsaWNrfSwgYnV0dG9uLnRpdGxlKSA6IG51bGw7XHJcbiAgICAgICAgcmV0dXJuIFtCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NUaXRsZSwge3RleHQ6IHRpdGxlfSksXHJcbiAgICAgICAgICAgICAgICBidXR0b25Db21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICBzZXR0aW5ncy5tYXAoc2V0dGluZyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChTd2l0Y2gsIHtpZDogc2V0dGluZy5pZCwga2V5OiBzZXR0aW5nLmlkLCBkYXRhOiBzZXR0aW5nLCBjaGVja2VkOiBzZXR0aW5nc0Nvb2tpZVtzZXR0aW5nLmlkXSwgb25DaGFuZ2U6IChpZCwgY2hlY2tlZCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKGlkLCBjaGVja2VkKTtcclxuICAgICAgICAgICAgICAgICAgICB9fSk7XHJcbiAgICAgICAgICAgICAgICB9KV07XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3NldHRpbmdzUGFuZWwuanM/Nzg2YSJdLCJuYW1lcyI6WyJWMkNfU2V0dGluZ3NQYW5lbCIsIkJEVjIiLCJyZWFjdENvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJyZW5kZXIiLCJzZXR0aW5ncyIsInJlYWN0IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIlNldHRpbmdzVGl0bGUiLCJ0ZXh0IiwidGl0bGUiLCJidXR0b24iLCJrZXkiLCJvbkNsaWNrIiwibWFwIiwic2V0dGluZyIsIlN3aXRjaCIsImlkIiwiZGF0YSIsImNoZWNrZWQiLCJzZXR0aW5nc0Nvb2tpZSIsIm9uQ2hhbmdlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFDQTtBQUVlLE1BQU1BLGlCQUFOLFNBQWdDQywyQ0FBSSxDQUFDQyxjQUFyQyxDQUFvRDtBQUUvREMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFVBQU07QUFBQ0M7QUFBRCxRQUFhLEtBQUtGLEtBQXhCO0FBQ0EsV0FBT0gsMkNBQUksQ0FBQ00sS0FBTCxDQUFXQyxhQUFYLENBQ0gsS0FERyxFQUVIO0FBQUNDLGVBQVMsRUFBRTtBQUFaLEtBRkcsRUFHSFIsMkNBQUksQ0FBQ00sS0FBTCxDQUFXQyxhQUFYLENBQXlCRSxzREFBekIsRUFBd0M7QUFBQ0MsVUFBSSxFQUFFLEtBQUtQLEtBQUwsQ0FBV1E7QUFBbEIsS0FBeEMsQ0FIRyxFQUlILEtBQUtSLEtBQUwsQ0FBV1MsTUFBWCxJQUFxQlosMkNBQUksQ0FBQ00sS0FBTCxDQUFXQyxhQUFYLENBQXlCLFFBQXpCLEVBQW1DO0FBQUNNLFNBQUcsRUFBRSxjQUFOO0FBQXNCTCxlQUFTLEVBQUUsVUFBakM7QUFBNkNNLGFBQU8sRUFBRSxLQUFLWCxLQUFMLENBQVdTLE1BQVgsQ0FBa0JFO0FBQXhFLEtBQW5DLEVBQXFILEtBQUtYLEtBQUwsQ0FBV1MsTUFBWCxDQUFrQkQsS0FBdkksQ0FKbEIsRUFLSE4sUUFBUSxDQUFDVSxHQUFULENBQWFDLE9BQU8sSUFBSTtBQUNwQixhQUFPaEIsMkNBQUksQ0FBQ00sS0FBTCxDQUFXQyxhQUFYLENBQXlCVSwrQ0FBekIsRUFBaUM7QUFBQ0MsVUFBRSxFQUFFRixPQUFPLENBQUNFLEVBQWI7QUFBaUJMLFdBQUcsRUFBRUcsT0FBTyxDQUFDRSxFQUE5QjtBQUFrQ0MsWUFBSSxFQUFFSCxPQUF4QztBQUFpREksZUFBTyxFQUFFQyx3REFBYyxDQUFDTCxPQUFPLENBQUNFLEVBQVQsQ0FBeEU7QUFBc0ZJLGdCQUFRLEVBQUUsQ0FBQ0osRUFBRCxFQUFLRSxPQUFMLEtBQWlCO0FBQ2pKLGVBQUtqQixLQUFMLENBQVdtQixRQUFYLENBQW9CSixFQUFwQixFQUF3QkUsT0FBeEI7QUFDSDtBQUZtQyxPQUFqQyxDQUFQO0FBR0gsS0FKRCxDQUxHLENBQVA7QUFXSDs7QUFuQjhEIiwiZmlsZSI6Ii4vc3JjL3JlYWN0L3NldHRpbmdzUGFuZWwuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3NldHRpbmdzQ29va2llfSBmcm9tIFwiLi4vMGdsb2JhbHNcIjtcclxuaW1wb3J0IEJEVjIgZnJvbSBcIi4uL3YyXCI7XHJcblxyXG5pbXBvcnQgU2V0dGluZ3NUaXRsZSBmcm9tIFwiLi9zZXR0aW5nc1RpdGxlXCI7XHJcbmltcG9ydCBTd2l0Y2ggZnJvbSBcIi4vc3dpdGNoXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWMkNfU2V0dGluZ3NQYW5lbCBleHRlbmRzIEJEVjIucmVhY3RDb21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCB7c2V0dGluZ3N9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICB7Y2xhc3NOYW1lOiBcImNvbnRlbnRDb2x1bW4tMmhySVlIIGNvbnRlbnRDb2x1bW5EZWZhdWx0LTFWUWtHTSBjb250ZW50LWNvbHVtbiBkZWZhdWx0XCJ9LFxyXG4gICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NUaXRsZSwge3RleHQ6IHRoaXMucHJvcHMudGl0bGV9KSxcclxuICAgICAgICAgICAgdGhpcy5wcm9wcy5idXR0b24gJiYgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIHtrZXk6IFwidGl0bGUtYnV0dG9uXCIsIGNsYXNzTmFtZTogXCJiZC1wZmJ0blwiLCBvbkNsaWNrOiB0aGlzLnByb3BzLmJ1dHRvbi5vbkNsaWNrfSwgdGhpcy5wcm9wcy5idXR0b24udGl0bGUpLFxyXG4gICAgICAgICAgICBzZXR0aW5ncy5tYXAoc2V0dGluZyA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFN3aXRjaCwge2lkOiBzZXR0aW5nLmlkLCBrZXk6IHNldHRpbmcuaWQsIGRhdGE6IHNldHRpbmcsIGNoZWNrZWQ6IHNldHRpbmdzQ29va2llW3NldHRpbmcuaWRdLCBvbkNoYW5nZTogKGlkLCBjaGVja2VkKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UoaWQsIGNoZWNrZWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH19KTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3NldHRpbmdzVGl0bGUuanM/ODM3ZSJdLCJuYW1lcyI6WyJWMkNfU2V0dGluZ3NUaXRsZSIsIkJEVjIiLCJyZWFjdENvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJyZW5kZXIiLCJyZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJ0ZXh0Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLGlCQUFOLFNBQWdDQywyQ0FBSSxDQUFDQyxjQUFyQyxDQUFvRDtBQUMvREMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0gsR0FIOEQsQ0FJbkU7OztBQUNJQyxRQUFNLEdBQUc7QUFDTCxXQUFPSiwyQ0FBSSxDQUFDSyxLQUFMLENBQVdDLGFBQVgsQ0FDSCxJQURHLEVBRUg7QUFBQ0MsZUFBUyxFQUFFO0FBQVosS0FGRyxFQUdILEtBQUtKLEtBQUwsQ0FBV0ssSUFIUixDQUFQO0FBS0g7O0FBWDhEIiwiZmlsZSI6Ii4vc3JjL3JlYWN0L3NldHRpbmdzVGl0bGUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQkRWMiBmcm9tIFwiLi4vdjJcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFYyQ19TZXR0aW5nc1RpdGxlIGV4dGVuZHMgQkRWMi5yZWFjdENvbXBvbmVudCB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgIH1cclxuLy9oMi0yZ1dFLW8gdGl0bGUtM3NaV1lRIHNpemUxNi0xNGNHejUgaGVpZ2h0MjAtbU8yZUlOIHdlaWdodFNlbWlCb2xkLU5KZXh6aSBkYS1oMiBkYS10aXRsZSBkYS1zaXplMTYgZGEtaGVpZ2h0MjAgZGEtd2VpZ2h0U2VtaUJvbGQgZGVmYXVsdENvbG9yLTFfYWpYMCBkYS1kZWZhdWx0Q29sb3IgbWFyZ2luVG9wNjAtM1BHYnRLIGRhLW1hcmdpblRvcDYwIG1hcmdpbkJvdHRvbTIwLTMycUlENyBkYS1tYXJnaW5Cb3R0b20yMFxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgIFwiaDJcIixcclxuICAgICAgICAgICAge2NsYXNzTmFtZTogXCJ1aS1mb3JtLXRpdGxlIGgyIG1hcmdpbi1yZXNldCBtYXJnaW4tYm90dG9tLTIwIG1hcmdpblRvcDYwLTNQR2J0SyBkYS1tYXJnaW5Ub3A2XCJ9LFxyXG4gICAgICAgICAgICB0aGlzLnByb3BzLnRleHRcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3NpZGViYXIuanM/N2VmOSJdLCJuYW1lcyI6WyJWMkNfU2lkZUJhciIsIkJEVjIiLCJyZWFjdENvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzZWxmIiwic2kiLCIkIiwibGVuZ3RoIiwic2NuIiwiYXR0ciIsIm5zIiwibnNjbiIsIm9uIiwic2V0U3RhdGUiLCJzZWxlY3RlZCIsInNldEluaXRpYWxTdGF0ZSIsIm9uQ2xpY2siLCJiaW5kIiwic3RhdGUiLCJpdGVtcyIsImluaXRpYWxTZWxlY3Rpb24iLCJmaW5kIiwiaXRlbSIsImlkIiwicmVuZGVyIiwiaGVhZGVyVGV4dCIsInJlYWN0IiwiY3JlYXRlRWxlbWVudCIsIlRhYkJhclNlcGFyYXRvciIsIlRhYkJhckhlYWRlciIsInRleHQiLCJtYXAiLCJUYWJCYXJJdGVtIiwia2V5Iiwib2ZmIiwiZSIsInRhcmdldCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFFZSxNQUFNQSxXQUFOLFNBQTBCQywyQ0FBSSxDQUFDQyxjQUEvQixDQUE4QztBQUV6REMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0EsVUFBTUMsSUFBSSxHQUFHLElBQWI7QUFDQSxVQUFNQyxFQUFFLEdBQUdDLENBQUMsQ0FBQyxvQ0FBRCxDQUFaO0FBQ0EsUUFBSUQsRUFBRSxDQUFDRSxNQUFQLEVBQWVILElBQUksQ0FBQ0ksR0FBTCxHQUFXSCxFQUFFLENBQUNJLElBQUgsQ0FBUSxPQUFSLENBQVg7QUFDZixVQUFNQyxFQUFFLEdBQUdKLENBQUMsQ0FBQywwREFBRCxDQUFaO0FBQ0EsUUFBSUksRUFBRSxDQUFDSCxNQUFQLEVBQWVILElBQUksQ0FBQ08sSUFBTCxHQUFZRCxFQUFFLENBQUNELElBQUgsQ0FBUSxPQUFSLENBQVo7QUFDZkgsS0FBQyxDQUFDLHFDQUFELENBQUQs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QW1CTyxFQUFuQjtBQUMzQjs7QUEvRHdEIiwiZmlsZSI6Ii4vc3JjL3JlYWN0L3NpZGViYXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQkRWMiBmcm9tIFwiLi4vdjJcIjtcclxuXHJcbmltcG9ydCBUYWJCYXJTZXBhcmF0b3IgZnJvbSBcIi4vdGFiQmFyU2VwYXJhdG9yXCI7XHJcbmltcG9ydCBUYWJCYXJIZWFkZXIgZnJvbSBcIi4vdGFiQmFySGVhZGVyXCI7XHJcbmltcG9ydCBUYWJCYXJJdGVtIGZyb20gXCIuL3RhYkJhckl0ZW1cIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFYyQ19TaWRlQmFyIGV4dGVuZHMgQkRWMi5yZWFjdENvbXBvbmVudCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgY29uc3Qgc2kgPSAkKFwiW2NsYXNzKj1zaWRlLV0gPiBbY2xhc3MqPXNlbGVjdGVkXVwiKTtcclxuICAgICAgICBpZiAoc2kubGVuZ3RoKSBzZWxmLnNjbiA9IHNpLmF0dHIoXCJjbGFzc1wiKTtcclxuICAgICAgICBjb25zdCBucyA9ICQoXCJbY2xhc3MqPXNpZGUtXSA+IFtjbGFzcyo9J2l0ZW0tJ106bm90KFtjbGFzcyo9c2VsZWN0ZWRdKVwiKTtcclxuICAgICAgICBpZiAobnMubGVuZ3RoKSBzZWxmLm5zY24gPSBucy5hdHRyKFwiY2xhc3NcIik7XHJcbiAgICAgICAgJChcIltjbGFzcyo9J3NpZGUtJ10gPiBbY2xhc3MqPSdpdGVtLSddXCIpLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgICBzZWxmLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBudWxsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHNlbGYuc2V0SW5pdGlhbFN0YXRlKCk7XHJcbiAgICAgICAgc2VsZi5vbkNsaWNrID0gc2VsZi5vbkNsaWNrLmJpbmQoc2VsZik7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0SW5pdGlhbFN0YXRlKCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIHNlbGYuc3RhdGUgPSB7XHJcbiAgICAgICAgICAgIHNlbGVjdGVkOiBudWxsLFxyXG4gICAgICAgICAgICBpdGVtczogc2VsZi5wcm9wcy5pdGVtc1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGNvbnN0IGluaXRpYWxTZWxlY3Rpb24gPSBzZWxmLnByb3BzLml0ZW1zLmZpbmQoaXRlbSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBpdGVtLnNlbGVjdGVkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChpbml0aWFsU2VsZWN0aW9uKSB7XHJcbiAgICAgICAgICAgIHNlbGYuc3RhdGUuc2VsZWN0ZWQgPSBpbml0aWFsU2VsZWN0aW9uLmlkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgY29uc3Qge2hlYWRlclRleHR9ID0gc2VsZi5wcm9wcztcclxuICAgICAgICBjb25zdCB7aXRlbXMsIHNlbGVjdGVkfSA9IHNlbGYuc3RhdGU7XHJcbiAgICAgICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAgbnVsbCxcclxuICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFRhYkJhclNlcGFyYXRvciwgbnVsbCksXHJcbiAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChUYWJCYXJIZWFkZXIsIHt0ZXh0OiBoZWFkZXJUZXh0fSksXHJcbiAgICAgICAgICAgIGl0ZW1zLm1hcChpdGVtID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHtpZCwgdGV4dH0gPSBpdGVtO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChUYWJCYXJJdGVtLCB7a2V5OiBpZCwgc2VsZWN0ZWQ6IHNlbGVjdGVkID09PSBpZCwgdGV4dDogdGV4dCwgaWQ6IGlkLCBvbkNsaWNrOiBzZWxmLm9uQ2xpY2t9KTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2xpY2soaWQpIHtcclxuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcclxuICAgICAgICBjb25zdCBzaSA9ICQoXCJbY2xhc3MqPXNpZGVdID4gW2NsYXNzKj1zZWxlY3RlZF1cIik7XHJcbiAgICAgICAgaWYgKHNpLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBzaS5vZmYoXCJjbGljay5iZHNiXCIpLm9uKFwiY2xpY2suYnNiXCIsIGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgJChlLnRhcmdldCkuYXR0cihcImNsYXNzXCIsIHNlbGYuc2NuKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHNpLmF0dHIoXCJjbGFzc1wiLCBzZWxmLm5zY24pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2VsZi5zZXRTdGF0ZSh7c2VsZWN0ZWQ6IG51bGx9KTtcclxuICAgICAgICBzZWxmLnNldFN0YXRlKHtzZWxlY3RlZDogaWR9KTtcclxuXHJcbiAgICAgICAgaWYgKHNlbGYucHJvcHMub25DbGljaykgc2VsZi5wcm9wcy5vbkNsaWNrKGlkKTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3NpZGViYXJWaWV3LmpzPzlhMDQiXSwibmFtZXMiOlsiVjJDX1NpZGViYXJWaWV3IiwiQkRWMiIsInJlYWN0Q29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInJlbmRlciIsInNpZGViYXIiLCJjb250ZW50IiwidG9vbHMiLCJjaGlsZHJlbiIsInJlYWN0IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIlNjcm9sbGVyIiwia2V5IiwicmVmIiwiZmFkZSIsImRhcmsiLCJjb21wb25lbnQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUVlLE1BQU1BLGVBQU4sU0FBOEJDLDJDQUFJLENBQUNDLGNBQW5DLENBQWtEO0FBRTdEQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDSDs7QUFFREMsUUFBTSxHQUFHO0FBQ0wsVUFBTTtBQUFDQyxhQUFEO0FBQVVDLGFBQVY7QUFBbUJDO0FBQW5CLFFBQTRCLEtBQUtKLEtBQUwsQ0FBV0ssUUFBN0M7QUFDQSxXQUFPUiwyQ0FBSSxDQUFDUyxLQUFMLENBQVdDLGFBQVgsQ0FDSCxLQURHLEVBRUg7QUFBQ0MsZUFBUyxFQUFFO0FBQVosS0FGRyxFQUdIWCwyQ0FBSSxDQUFDUyxLQUFMLENBQVdDLGFBQVgsQ0FDSSxLQURKLEVBRUk7QUFBQ0MsZUFBUyxFQUFFO0FBQVosS0FGSixFQUdJWCwyQ0FBSSxDQUFDUyxLQUFMLENBQVdDLGFBQVgsQ0FBeUJFLGlEQUF6QixFQUFtQztBQUFDQyxTQUFHLEVBQUUsaUJBQU47QUFBeUJDLFNBQUcsRUFBRSxpQkFBOUI7QUFBaURULGFBQU8sRUFBRSxJQUExRDtBQUFnRVUsVUFBSSxFQUFFVixPQUFPLENBQUNVLElBQVIsSUFBZ0IsSUFBdEY7QUFBNEZDLFVBQUksRUFBRVgsT0FBTyxDQUFDVyxJQUFSLElBQWdCLElBQWxIO0FBQXdIUixjQUFRLEVBQUVILE9BQU8sQ0FBQ1k7QUFBMUksS0FBbkMsQ0FISixDQUhHLEVBUUhqQiwyQ0FBSSxDQUFDUyxLQUFMLENBQVdDLGFBQVgsQ0FBeUIsS0FBekIsRUFBZ0M7QUFBQ0MsZUFBUyxFQUFFO0FBQVosS0FBaEMsRUFDSVgsMkNBQUksQ0FBQ1MsS0FBTCxDQUFXQyxhQUFYLENBQXlCLEtBQXpCLEVBQWdDO0FBQUNDLGVBQVMsRUFBRTtBQUFaLEtBQWhDLEVBQ0lYLDJDQUFJLENBQUNTLEtBQUwsQ0FBV0MsYUFBWCxDQUF5QixLQUF6QixFQUFnQztBQUFDQyxlQUFTLEVBQUU7QUFBWixLQUFoQyxFQUNJWCwyQ0FBSSxDQUFDUyxLQUFMLENBQVdDLGFBQVgsQ0FBeUIsS0FBekIsRUFBZ0M7QUFBQ0MsZUFBUyxFQUFFLDJHQUFaO0FBQXlIRyxTQUFHLEVBQUU7QUFBOUgsS0FBaEMsRUFDSWQsMkNBQUksQ0FBQ1MsS0FBTCxDQUFXQyxhQUFYLENBQXlCLEtBQXpCLEVBQWdDO0FBQUNDLGVBQVMsRUFBRTtBQUFaLEtBQWhDLEVBQXdITCxPQUFPLENBQUNXLFNBQWhJLENBREosRUFFSVYsS0FBSyxDQUFDVSxTQUZWLENBREosQ0FESixDQURKLENBUkcsQ0FBUDtBQW1CSDs7QUEzQjREIiwiZmlsZSI6Ii4vc3JjL3JlYWN0L3NpZGViYXJWaWV3LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJEVjIgZnJvbSBcIi4uL3YyXCI7XHJcblxyXG5pbXBvcnQgU2Nyb2xsZXIgZnJvbSBcIi4vc2Nyb2xsZXJcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFYyQ19TaWRlYmFyVmlldyBleHRlbmRzIEJEVjIucmVhY3RDb21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCB7c2lkZWJhciwgY29udGVudCwgdG9vbHN9ID0gdGhpcy5wcm9wcy5jaGlsZHJlbjtcclxuICAgICAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICB7Y2xhc3NOYW1lOiBcInN0YW5kYXJkU2lkZWJhclZpZXctM0YxSTdpIHVpLXN0YW5kYXJkLXNpZGViYXItdmlld1wifSxcclxuICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwic2lkZWJhclJlZ2lvbi1WRlRVa04gc2lkZWJhci1yZWdpb25cIn0sXHJcbiAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoU2Nyb2xsZXIsIHtrZXk6IFwic2lkZWJhclNjcm9sbGVyXCIsIHJlZjogXCJzaWRlYmFyU2Nyb2xsZXJcIiwgc2lkZWJhcjogdHJ1ZSwgZmFkZTogc2lkZWJhci5mYWRlIHx8IHRydWUsIGRhcms6IHNpZGViYXIuZGFyayB8fCB0cnVlLCBjaGlsZHJlbjogc2lkZWJhci5jb21wb25lbnR9KVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJjb250ZW50UmVnaW9uLTNuRHVZeSBjb250ZW50LXJlZ2lvblwifSxcclxuICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImNvbnRlbnRUcmFuc2l0aW9uV3JhcC0zaHFPRVcgY29udGVudC10cmFuc2l0aW9uLXdyYXBcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwic2Nyb2xsZXJXcmFwLTJsSkVrZCBmaXJlZm94Rml4U2Nyb2xsRmxleC1jbkkyaXggY29udGVudFJlZ2lvblNjcm9sbGVyV3JhcC0zWVpYZG0gY29udGVudC1yZWdpb24tc2Nyb2xsZXItd3JhcCBzY3JvbGxlclRoZW1lZC0yb2VudXMgdGhlbWVHaG9zdC0yOE1TbjAgc2Nyb2xsZXJUcmFjay0xWklwc3ZcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcInNjcm9sbGVyLTJGS0ZQRyBmaXJlZm94Rml4U2Nyb2xsRmxleC1jbkkyaXggY29udGVudFJlZ2lvblNjcm9sbGVyLTI2bmMxZSBjb250ZW50LXJlZ2lvbi1zY3JvbGxlciBzY3JvbGxlclwiLCByZWY6IFwiY29udGVudFNjcm9sbGVyXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiY29udGVudENvbHVtbi0yaHJJWUggY29udGVudENvbHVtbkRlZmF1bHQtMVZRa0dNIGNvbnRlbnQtY29sdW1uIGRlZmF1bHRcIn0sIGNvbnRlbnQuY29tcG9uZW50KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2xzLmNvbXBvbmVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3N3aXRjaC5qcz8yZTMyIl0sIm5hbWVzIjpbIlYyQ19Td2l0Y2giLCJCRFYyIiwicmVhY3RDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwic2V0SW5pdGlhbFN0YXRlIiwib25DaGFuZ2UiLCJiaW5kIiwic3RhdGUiLCJjaGVja2VkIiwicmVuZGVyIiwidGV4dCIsImluZm8iLCJkYXRhIiwicmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwic3R5bGUiLCJmbGV4IiwidHlwZSIsImUiLCJpZCIsInNldFN0YXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLFVBQU4sU0FBeUJDLDJDQUFJLENBQUNDLGNBQTlCLENBQTZDO0FBRXhEQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDQSxTQUFLQyxlQUFMO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQixLQUFLQSxRQUFMLENBQWNDLElBQWQsQ0FBbUIsSUFBbkIsQ0FBaEI7QUFDSDs7QUFFREYsaUJBQWUsR0FBRztBQUNkLFNBQUtHLEtBQUwsR0FBYTtBQUNUQyxhQUFPLEVBQUUsS0FBS0wsS0FBTCxDQUFXSztBQURYLEtBQWI7QUFHSDs7QUFFREMsUUFBTSxHQUFHO0FBQ0wsVUFBTTtBQUFDQyxVQUFEO0FBQU9DO0FBQVAsUUFBZSxLQUFLUixLQUFMLENBQVdTLElBQWhDO0FBQ0EsVUFBTTtBQUFDSjtBQUFELFFBQVksS0FBS0QsS0FBdkI7QUFDQSxXQUFPUCwyQ0FBSSxDQUFDYSxLQUFMLENBQVdDLGFBQVgsQ0FDSCxLQURHLEVBRUg7QUFBQ0MsZUFBUyxFQUFFO0FBQVosS0FGRyxFQUdIZiwyQ0FBSSxDQUFDYSxLQUFMLENBQVdDLGFBQVgsQ0FDSSxLQURKLEVBRUk7QUFBQ0MsZUFBUyxFQUFFO0FBQVosS0FGSixFQUdJZiwyQ0FBSSxDQUFDYSxLQUFMLENBQVdDLGFBQVgsQ0FDSSxJQURKLEVBRUk7QUFBQ0MsZUFBUyxFQUFFO0FBQVosS0FGSixFQUdJTCxJQUhKLENBSEosRUFRSVYsMkNBQUksQ0FBQ2EsS0FBTCxDQUFXQyxhQUFYLENBQ0ksT0FESixFQUVJO0FBQUNDLGVBQVMsRUFBRSxpQ0FBWjtBQUErQ0MsV0FBSyxFQUFFO0FBQUNDLFlBQUksRUFBRTtBQUFQO0FBQXRELEtBRkosRUFHSWpCLDJDQUFJLENBQUNhLEtBQUwsQ0FBV0MsYUFBWCxDQUF5QixPQUF6QixFQUFrQztBQUFDQyxlQUFTLEVBQUUsb0JBQVo7QUFBa0NHLFVBQUksRUFBRSxVQUF4QztBQUFvRFYsYUFBTyxFQUFFQSxPQUE3RDtBQUFzRUgsY0FBUSxFQUFFYyxDQUFDLElBQUksS0FBS2QsUUFBTCxDQUFjYyxDQUFkO0FBQXJGLEtBQWxDLENBSEosRUFJSW5CLDJDQUFJLENBQUNhLEtBQUwsQ0FBV0MsYUFBWCxDQUF5QixLQUF6QixFQUFnQztBQUFDQyxlQUFTLEVBQUcsYUFBWVAsT0FBTyxHQUFHLFNBQUgsR0FBZSxFQUFHO0FBQWxELEtBQWhDLENBSkosQ0FSSixDQUhHLEVBa0JIUiwyQ0FBSSxDQUFDYSxLQUFMLENBQVdDLGFBQVgsQ0FDSSxLQURKLEVBRUk7QUFBQ0MsZUFBUyxFQUFFLDZDQUFaO0FBQTJEQyxXQUFLLEVBQUU7QUFBQ0MsWUFBSSxFQUFFO0FBQVA7QUFBbEUsS0FGSixFQUdJTixJQUhKLENBbEJHLENBQVA7QUF3Qkg7O0FBRUROLFVBQVEsR0FBRztBQUNQLFNBQUtGLEtBQUwsQ0FBV0UsUUFBWCxDQUFvQixLQUFLRixLQUFMLENBQVdpQixFQUEvQixFQUFtQyxDQUFDLEtBQUtiLEtBQUwsQ0FBV0MsT0FBL0M7QUFDQSxTQUFLYSxRQUFMLENBQWM7QUFDVmIsYUFBTyxFQUFFLENBQUMsS0FBS0QsS0FBTCxDQUFXQztBQURYLEtBQWQ7QUFHSDs7QUFoRHVEIiwiZmlsZSI6Ii4vc3JjL3JlYWN0L3N3aXRjaC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCRFYyIGZyb20gXCIuLi92MlwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVjJDX1N3aXRjaCBleHRlbmRzIEJEVjIucmVhY3RDb21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgICAgIHRoaXMuc2V0SW5pdGlhbFN0YXRlKCk7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IHRoaXMub25DaGFuZ2UuYmluZCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRJbml0aWFsU3RhdGUoKSB7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgICAgICAgY2hlY2tlZDogdGhpcy5wcm9wcy5jaGVja2VkXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3Qge3RleHQsIGluZm99ID0gdGhpcy5wcm9wcy5kYXRhO1xyXG4gICAgICAgIGNvbnN0IHtjaGVja2VkfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAge2NsYXNzTmFtZTogXCJ1aS1mbGV4IGZsZXgtdmVydGljYWwgZmxleC1qdXN0aWZ5LXN0YXJ0IGZsZXgtYWxpZ24tc3RyZXRjaCBmbGV4LW5vd3JhcCB1aS1zd2l0Y2gtaXRlbVwifSxcclxuICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwidWktZmxleCBmbGV4LWhvcml6b250YWwgZmxleC1qdXN0aWZ5LXN0YXJ0IGZsZXgtYWxpZ24tc3RyZXRjaCBmbGV4LW5vd3JhcFwifSxcclxuICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICBcImgzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAge2NsYXNzTmFtZTogXCJ1aS1mb3JtLXRpdGxlIGgzIG1hcmdpbi1yZXNldCBtYXJnaW4tcmVzZXQgdWktZmxleC1jaGlsZFwifSxcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0XHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgIFwibGFiZWxcIixcclxuICAgICAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcInVpLXN3aXRjaC13cmFwcGVyIHVpLWZsZXgtY2hpbGRcIiwgc3R5bGU6IHtmbGV4OiBcIjAgMCBhdXRvXCJ9fSxcclxuICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7Y2xhc3NOYW1lOiBcInVpLXN3aXRjaC1jaGVja2JveFwiLCB0eXBlOiBcImNoZWNrYm94XCIsIGNoZWNrZWQ6IGNoZWNrZWQsIG9uQ2hhbmdlOiBlID0+IHRoaXMub25DaGFuZ2UoZSl9KSxcclxuICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogYHVpLXN3aXRjaCAke2NoZWNrZWQgPyBcImNoZWNrZWRcIiA6IFwiXCJ9YH0pXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcInVpLWZvcm0tdGV4dCBzdHlsZS1kZXNjcmlwdGlvbiBtYXJnaW4tdG9wLTRcIiwgc3R5bGU6IHtmbGV4OiBcIjEgMSBhdXRvXCJ9fSxcclxuICAgICAgICAgICAgICAgIGluZm9cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DaGFuZ2UoKSB7XHJcbiAgICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZSh0aGlzLnByb3BzLmlkLCAhdGhpcy5zdGF0ZS5jaGVja2VkKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgY2hlY2tlZDogIXRoaXMuc3RhdGUuY2hlY2tlZFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3RhYkJhckhlYWRlci5qcz83MzE3Il0sIm5hbWVzIjpbIlYyQ19UYWJCYXJIZWFkZXIiLCJCRFYyIiwicmVhY3RDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwicmVuZGVyIiwicmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwidGV4dCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFFZSxNQUFNQSxnQkFBTixTQUErQkMsMkNBQUksQ0FBQ0MsY0FBcEMsQ0FBbUQ7QUFDOURDLGFBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2YsVUFBTUEsS0FBTjtBQUNIOztBQUVEQyxRQUFNLEdBQUc7QUFDTCxXQUFPSiwyQ0FBSSxDQUFDSyxLQUFMLENBQVdDLGFBQVgsQ0FDSCxLQURHLEVBRUg7QUFBQ0MsZUFBUyxFQUFFO0FBQVosS0FGRyxFQUdILEtBQUtKLEtBQUwsQ0FBV0ssSUFIUixDQUFQO0FBS0g7O0FBWDZEIiwiZmlsZSI6Ii4vc3JjL3JlYWN0L3RhYkJhckhlYWRlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCRFYyIGZyb20gXCIuLi92MlwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVjJDX1RhYkJhckhlYWRlciBleHRlbmRzIEJEVjIucmVhY3RDb21wb25lbnQge1xyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgIHtjbGFzc05hbWU6IFwidWktdGFiLWJhci1oZWFkZXJcIn0sXHJcbiAgICAgICAgICAgIHRoaXMucHJvcHMudGV4dFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3RhYkJhckl0ZW0uanM/YmNhYSJdLCJuYW1lcyI6WyJWMkNfVGFiQmFySXRlbSIsIkJEVjIiLCJyZWFjdENvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzZXRJbml0aWFsU3RhdGUiLCJvbkNsaWNrIiwiYmluZCIsInN0YXRlIiwic2VsZWN0ZWQiLCJyZW5kZXIiLCJyZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJ0ZXh0IiwiaWQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRWUsTUFBTUEsY0FBTixTQUE2QkMsMkNBQUksQ0FBQ0MsY0FBbEMsQ0FBaUQ7QUFFNURDLGFBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2YsVUFBTUEsS0FBTjtBQUNBLFNBQUtDLGVBQUw7QUFDQSxTQUFLQyxPQUFMLEdBQWUsS0FBS0EsT0FBTCxDQUFhQyxJQUFiLENBQWtCLElBQWxCLENBQWY7QUFDSDs7QUFFREYsaUJBQWUsR0FBRztBQUNkLFNBQUtHLEtBQUwsR0FBYTtBQUNUQyxjQUFRLEVBQUUsS0FBS0wsS0FBTCxDQUFXSyxRQUFYLElBQXVCO0FBRHhCLEtBQWI7QUFHSDs7QUFFREMsUUFBTSxHQUFHO0FBQ0wsV0FBT1QsMkNBQUksQ0FBQ1UsS0FBTCxDQUFXQyxhQUFYLENBQ0gsS0FERyxFQUVIO0FBQUNDLGVBQVMsRUFBRyxrQkFBaUIsS0FBS1QsS0FBTCxDQUFXSyxRQUFYLEdBQXNCLFdBQXRCLEdBQW9DLEVBQUcsRUFBckU7QUFBd0VILGFBQU8sRUFBRSxLQUFLQTtBQUF0RixLQUZHLEVBR0gsS0FBS0YsS0FBTCxDQUFXVSxJQUhSLENBQVA7QUFLSDs7QUFFRFIsU0FBTyxHQUFHO0FBQ04sUUFBSSxLQUFLRixLQUFMLENBQVdFLE9BQWYsRUFBd0I7QUFDcEIsV0FBS0YsS0FBTCxDQUFXRSxPQUFYLENBQW1CLEtBQUtGLEtBQUwsQ0FBV1csRUFBOUI7QUFDSDtBQUNKOztBQTFCMkQiLCJmaWxlIjoiLi9zcmMvcmVhY3QvdGFiQmFySXRlbS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCRFYyIGZyb20gXCIuLi92MlwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVjJDX1RhYkJhckl0ZW0gZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICB0aGlzLnNldEluaXRpYWxTdGF0ZSgpO1xyXG4gICAgICAgIHRoaXMub25DbGljayA9IHRoaXMub25DbGljay5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldEluaXRpYWxTdGF0ZSgpIHtcclxuICAgICAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5wcm9wcy5zZWxlY3RlZCB8fCBmYWxzZVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgIHtjbGFzc05hbWU6IGB1aS10YWItYmFyLWl0ZW0ke3RoaXMucHJvcHMuc2VsZWN0ZWQgPyBcIiBzZWxlY3RlZFwiIDogXCJcIn1gLCBvbkNsaWNrOiB0aGlzLm9uQ2xpY2t9LFxyXG4gICAgICAgICAgICB0aGlzLnByb3BzLnRleHRcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2xpY2soKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25DbGljaykge1xyXG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uQ2xpY2sodGhpcy5wcm9wcy5pZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3RhYkJhclNlcGFyYXRvci5qcz9kZWRmIl0sIm5hbWVzIjpbIlYyQ19UYWJCYXJTZXBhcmF0b3IiLCJCRFYyIiwicmVhY3RDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwicmVuZGVyIiwicmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLG1CQUFOLFNBQWtDQywyQ0FBSSxDQUFDQyxjQUF2QyxDQUFzRDtBQUNqRUMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFdBQU9KLDJDQUFJLENBQUNLLEtBQUwsQ0FBV0MsYUFBWCxDQUF5QixLQUF6QixFQUFnQztBQUFDQyxlQUFTLEVBQUU7QUFBWixLQUFoQyxDQUFQO0FBQ0g7O0FBUGdFIiwiZmlsZSI6Ii4vc3JjL3JlYWN0L3RhYkJhclNlcGFyYXRvci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCRFYyIGZyb20gXCIuLi92MlwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVjJDX1RhYkJhclNlcGFyYXRvciBleHRlbmRzIEJEVjIucmVhY3RDb21wb25lbnQge1xyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJ1aS10YWItYmFyLXNlcGFyYXRvciBtYXJnaW4tdG9wLTggbWFyZ2luLWJvdHRvbS04XCJ9KTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3RoZW1lQ2FyZC5qcz8xZmFiIl0sIm5hbWVzIjpbIlYyQ19UaGVtZUNhcmQiLCJCRFYyIiwicmVhY3RDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwic2V0SW5pdGlhbFN0YXRlIiwib25DaGFuZ2UiLCJiaW5kIiwicmVsb2FkIiwic3RhdGUiLCJjaGVja2VkIiwidGhlbWVDb29raWUiLCJ0aGVtZSIsIm5hbWUiLCJyZWxvYWRzIiwib25SZWxvYWQiLCJ0aGVtZU5hbWUiLCJzZXRTdGF0ZSIsImVycm9yIiwidGhlbWVNb2R1bGUiLCJyZWxvYWRUaGVtZSIsIlV0aWxzIiwic2hvd1RvYXN0IiwiYmR0aGVtZXMiLCJ0eXBlIiwidmVyc2lvbiIsIm1ha2VMaW5rIiwidGl0bGUiLCJ1cmwiLCJjbGFzc05hbWUiLCJ0YXJnZXQiLCJocmVmIiwib25DbGljayIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJyZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJyZW5kZXIiLCJkZXNjcmlwdGlvbiIsImF1dGhvciIsIm1ldGEiLCJsaW5rcyIsIndlYnNpdGUiLCJwdXNoIiwic291cmNlIiwiaW52aXRlIiwidGVzdGVyIiwiY29kZSIsInRlc3QiLCJtYXRjaCIsIkxheWVyU3RhY2siLCJwb3BMYXllciIsIkludml0ZUFjdGlvbnMiLCJhY2NlcHRJbnZpdGVBbmRUcmFuc2l0aW9uVG9JbnZpdGVDaGFubmVsIiwiZG9uYXRlIiwicGF0cmVvbiIsImF1dGhvclByb3BzIiwiYXV0aG9yTGluayIsImF1dGhvcklkIiwiYW5jaG9yQ2xhc3NlcyIsImFuY2hvciIsImFuY2hvclVuZGVybGluZU9uSG92ZXIiLCJvcGVuRE0iLCJzZXR0aW5nc0Nvb2tpZSIsIlRvb2x0aXBXcmFwIiwiUmVsb2FkSWNvbiIsImNvbG9yIiwic2lkZSIsInRleHQiLCJzdHlsZSIsImZsZXgiLCJsZW5ndGgiLCJtYXAi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S0FBTCxDQUFXUSxLQUFYLENBQWlCQyxJQUF6QztBQUNIOztBQTdHMEQiLCJmaWxlIjoiLi9zcmMvcmVhY3QvdGhlbWVDYXJkLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzZXR0aW5nc0Nvb2tpZSwgdGhlbWVDb29raWUsIGJkdGhlbWVzfSBmcm9tIFwiLi4vMGdsb2JhbHNcIjtcclxuaW1wb3J0IFV0aWxzIGZyb20gXCIuLi91dGlsc1wiO1xyXG5pbXBvcnQgQkRWMiBmcm9tIFwiLi4vdjJcIjtcclxuaW1wb3J0IHRoZW1lTW9kdWxlIGZyb20gXCIuLi90aGVtZU1vZHVsZVwiO1xyXG5cclxuaW1wb3J0IFJlbG9hZEljb24gZnJvbSBcIi4vcmVsb2FkSWNvblwiO1xyXG5pbXBvcnQgVG9vbHRpcFdyYXAgZnJvbSBcIi4vdG9vbHRpcFdyYXBcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFYyQ19UaGVtZUNhcmQgZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICB0aGlzLnNldEluaXRpYWxTdGF0ZSgpO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSB0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5yZWxvYWQgPSB0aGlzLnJlbG9hZC5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldEluaXRpYWxTdGF0ZSgpIHtcclxuICAgICAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICAgICAgICBjaGVja2VkOiB0aGVtZUNvb2tpZVt0aGlzLnByb3BzLnRoZW1lLm5hbWVdLFxyXG4gICAgICAgICAgICByZWxvYWRzOiAwXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIC8vICAgICBCREV2ZW50cy5vbihcInRoZW1lLXJlbG9hZGVkXCIsIHRoaXMub25SZWxvYWQpO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgLy8gICAgIEJERXZlbnRzLm9mZihcInRoZW1lLXJlbG9hZGVkXCIsIHRoaXMub25SZWxvYWQpO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIG9uUmVsb2FkKHRoZW1lTmFtZSkge1xyXG4gICAgICAgIGlmICh0aGVtZU5hbWUgIT09IHRoaXMucHJvcHMudGhlbWUubmFtZSkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe3JlbG9hZHM6IHRoaXMuc3RhdGUucmVsb2FkcyArIDF9KTtcclxuICAgIH1cclxuXHJcbiAgICByZWxvYWQoKSB7XHJcbiAgICAgICAgY29uc3QgdGhlbWUgPSB0aGlzLnByb3BzLnRoZW1lLm5hbWU7XHJcbiAgICAgICAgY29uc3QgZXJyb3IgPSB0aGVtZU1vZHVsZS5yZWxvYWRUaGVtZSh0aGVtZSk7XHJcbiAgICAgICAgaWYgKGVycm9yKSBVdGlscy5zaG93VG9hc3QoYENvdWxkIG5vdCByZWxvYWQgJHtiZHRoZW1lc1t0aGVtZV0ubmFtZX0uIENoZWNrIGNvbnNvbGUgZm9yIGRldGFpbHMuYCwge3R5cGU6IFwiZXJyb3JcIn0pO1xyXG4gICAgICAgIGVsc2UgVXRpbHMuc2hvd1RvYXN0KGAke2JkdGhlbWVzW3RoZW1lXS5uYW1lfSB2JHtiZHRoZW1lc1t0aGVtZV0udmVyc2lvbn0gaGFzIGJlZW4gcmVsb2FkZWQuYCwge3R5cGU6IFwic3VjY2Vzc1wifSk7XHJcbiAgICAgICAgLy8gdGhpcy5zZXRTdGF0ZSh0aGlzLnN0YXRlKTtcclxuICAgICAgICB0aGlzLnByb3BzLnRoZW1lID0gYmR0aGVtZXNbdGhlbWVdO1xyXG4gICAgICAgIHRoaXMub25SZWxvYWQodGhpcy5wcm9wcy50aGVtZS5uYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBtYWtlTGluayh0aXRsZSwgdXJsKSB7XHJcbiAgICAgICAgY29uc3QgcHJvcHMgPSB7Y2xhc3NOYW1lOiBcImJkYS1saW5rIGJkYS1saW5rLXdlYnNpdGVcIiwgdGFyZ2V0OiBcIl9ibGFua1wifTtcclxuICAgICAgICBpZiAodHlwZW9mKHVybCkgPT0gXCJzdHJpbmdcIikgcHJvcHMuaHJlZiA9IHVybDtcclxuICAgICAgICBpZiAodHlwZW9mKHVybCkgPT0gXCJmdW5jdGlvblwiKSBwcm9wcy5vbkNsaWNrID0gKGV2ZW50KSA9PiB7ZXZlbnQucHJldmVudERlZmF1bHQoKTsgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IHVybCgpO307XHJcbiAgICAgICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImFcIiwgcHJvcHMsIHRpdGxlKTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3Qge3RoZW1lfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgY29uc3QgbmFtZSA9IHRoZW1lLm5hbWU7XHJcbiAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSB0aGVtZS5kZXNjcmlwdGlvbjtcclxuICAgICAgICBjb25zdCB2ZXJzaW9uID0gdGhlbWUudmVyc2lvbjtcclxuICAgICAgICBjb25zdCBhdXRob3IgPSB0aGVtZS5hdXRob3I7XHJcbiAgICAgICAgY29uc3QgbWV0YSA9IGJkdGhlbWVzW25hbWVdO1xyXG5cclxuICAgICAgICBjb25zdCBsaW5rcyA9IFtdO1xyXG4gICAgICAgIGlmIChtZXRhLndlYnNpdGUpIGxpbmtzLnB1c2godGhpcy5tYWtlTGluayhcIldlYnNpdGVcIiwgbWV0YS53ZWJzaXRlKSk7XHJcbiAgICAgICAgaWYgKG1ldGEuc291cmNlKSBsaW5rcy5wdXNoKHRoaXMubWFrZUxpbmsoXCJTb3VyY2VcIiwgbWV0YS5zb3VyY2UpKTtcclxuICAgICAgICBpZiAobWV0YS5pbnZpdGUpIHtcclxuICAgICAgICAgICAgbGlua3MucHVzaCh0aGlzLm1ha2VMaW5rKFwiU3VwcG9ydCBTZXJ2ZXJcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGVzdGVyID0gL1xcLmdnXFwvKC4qKSQvO1xyXG4gICAgICAgICAgICAgICAgbGV0IGNvZGUgPSBtZXRhLmludml0ZTtcclxuICAgICAgICAgICAgICAgIGlmICh0ZXN0ZXIudGVzdChjb2RlKSkgY29kZSA9IGNvZGUubWF0Y2godGVzdGVyKVsxXTtcclxuICAgICAgICAgICAgICAgIEJEVjIuTGF5ZXJTdGFjay5wb3BMYXllcigpO1xyXG4gICAgICAgICAgICAgICAgQkRWMi5JbnZpdGVBY3Rpb25zLmFjY2VwdEludml0ZUFuZFRyYW5zaXRpb25Ub0ludml0ZUNoYW5uZWwoY29kZSk7XHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG1ldGEuZG9uYXRlKSBsaW5rcy5wdXNoKHRoaXMubWFrZUxpbmsoXCJEb25hdGVcIiwgbWV0YS5kb25hdGUpKTtcclxuICAgICAgICBpZiAobWV0YS5wYXRyZW9uKSBsaW5rcy5wdXNoKHRoaXMubWFrZUxpbmsoXCJQYXRyZW9uXCIsIG1ldGEucGF0cmVvbikpO1xyXG5cclxuICAgICAgICBjb25zdCBhdXRob3JQcm9wcyA9IHtjbGFzc05hbWU6IFwiYmRhLWF1dGhvclwifTtcclxuICAgICAgICBpZiAobWV0YS5hdXRob3JMaW5rIHx8IG1ldGEuYXV0aG9ySWQpIHtcclxuICAgICAgICAgICAgYXV0aG9yUHJvcHMuY2xhc3NOYW1lICs9IGAgJHtCRFYyLmFuY2hvckNsYXNzZXMuYW5jaG9yfSAke0JEVjIuYW5jaG9yQ2xhc3Nlcy5hbmNob3JVbmRlcmxpbmVPbkhvdmVyfWA7XHJcbiAgICAgICAgICAgIGF1dGhvclByb3BzLnRhcmdldCA9IFwiX2JsYW5rXCI7XHJcblxyXG4gICAgICAgICAgICBpZiAobWV0YS5hdXRob3JMaW5rKSBhdXRob3JQcm9wcy5ocmVmID0gbWV0YS5hdXRob3JMaW5rO1xyXG4gICAgICAgICAgICBpZiAobWV0YS5hdXRob3JJZCkgYXV0aG9yUHJvcHMub25DbGljayA9ICgpID0+IHtCRFYyLkxheWVyU3RhY2sucG9wTGF5ZXIoKTsgQkRWMi5vcGVuRE0obWV0YS5hdXRob3JJZCk7fTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaVwiLCB7XCJkYXRhLW5hbWVcIjogbmFtZSwgXCJkYXRhLXZlcnNpb25cIjogdmVyc2lvbiwgXCJjbGFzc05hbWVcIjogXCJzZXR0aW5ncy1jbG9zZWQgdWktc3dpdGNoLWl0ZW1cIn0sXHJcbiAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1oZWFkZXJcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS1oZWFkZXItdGl0bGVcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZGEtbmFtZVwifSwgbmFtZSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiIHZcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS12ZXJzaW9uXCJ9LCB2ZXJzaW9uKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCIgYnkgXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChtZXRhLmF1dGhvckxpbmsgfHwgbWV0YS5hdXRob3JJZCA/IFwiYVwiIDogXCJzcGFuXCIsIGF1dGhvclByb3BzLCBhdXRob3IpXHJcbiAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZGEtY29udHJvbHNcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICFzZXR0aW5nc0Nvb2tpZVtcImZvcmstcHMtNVwiXSAmJiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoVG9vbHRpcFdyYXAoUmVsb2FkSWNvbiwge2NvbG9yOiBcImJsYWNrXCIsIHNpZGU6IFwidG9wXCIsIHRleHQ6IFwiUmVsb2FkXCJ9KSwge2NsYXNzTmFtZTogXCJiZC1yZWxvYWQtY2FyZFwiLCBvbkNsaWNrOiB0aGlzLnJlbG9hZH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsYWJlbFwiLCB7Y2xhc3NOYW1lOiBcInVpLXN3aXRjaC13cmFwcGVyIHVpLWZsZXgtY2hpbGRcIiwgc3R5bGU6IHtmbGV4OiBcIjAgMCBhdXRvXCJ9fSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHtjaGVja2VkOiB0aGlzLnN0YXRlLmNoZWNrZWQsIG9uQ2hhbmdlOiB0aGlzLm9uQ2hhbmdlLCBjbGFzc05hbWU6IFwidWktc3dpdGNoLWNoZWNrYm94XCIsIHR5cGU6IFwiY2hlY2tib3hcIn0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IHRoaXMuc3RhdGUuY2hlY2tlZCA/IFwidWktc3dpdGNoIGNoZWNrZWRcIiA6IFwidWktc3dpdGNoXCJ9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZGEtZGVzY3JpcHRpb24td3JhcCBzY3JvbGxlci13cmFwIGZhZGVcIn0sXHJcbiAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJiZGEtZGVzY3JpcHRpb24gc2Nyb2xsZXJcIn0sIGRlc2NyaXB0aW9uKVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAoISFsaW5rcy5sZW5ndGgpICYmIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1mb290ZXJcIn0sXHJcbiAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLWxpbmtzXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIC4uLihsaW5rcy5tYXAoKGVsZW1lbnQsIGluZGV4KSA9PiBpbmRleCA8IGxpbmtzLmxlbmd0aCAtIDEgPyBbZWxlbWVudCwgXCIgfCBcIl0gOiBlbGVtZW50KS5mbGF0KCkpXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hhbmdlKCkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2NoZWNrZWQ6ICF0aGlzLnN0YXRlLmNoZWNrZWR9KTtcclxuICAgICAgICB0aGVtZU1vZHVsZS50b2dnbGVUaGVtZSh0aGlzLnByb3BzLnRoZW1lLm5hbWUpO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3Rvb2xzLmpzPzY3ODciXSwibmFtZXMiOlsiVjJDX1Rvb2xzIiwiQkRWMiIsInJlYWN0Q29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIm9uQ2xpY2siLCJiaW5kIiwicmVuZGVyIiwicmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiWFN2ZyIsIiQiLCJmaXJzdCIsImNsaWNrIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFFZSxNQUFNQSxTQUFOLFNBQXdCQywyQ0FBSSxDQUFDQyxjQUE3QixDQUE0QztBQUV2REMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0EsU0FBS0MsT0FBTCxHQUFlLEtBQUtBLE9BQUwsQ0FBYUMsSUFBYixDQUFrQixJQUFsQixDQUFmO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFdBQU9OLDJDQUFJLENBQUNPLEtBQUwsQ0FBV0MsYUFBWCxDQUF5QixLQUF6QixFQUFnQztBQUFDQyxlQUFTLEVBQUU7QUFBWixLQUFoQyxFQUNIVCwyQ0FBSSxDQUFDTyxLQUFMLENBQVdDLGFBQVgsQ0FBeUIsS0FBekIsRUFBZ0M7QUFBQ0MsZUFBUyxFQUFFO0FBQVosS0FBaEMsRUFDSVQsMkNBQUksQ0FBQ08sS0FBTCxDQUFXQyxhQUFYLENBQXlCLEtBQXpCLEVBQWdDO0FBQUNDLGVBQVMsRUFBRTtBQUFaLEtBQWhDLEVBQ0lULDJDQUFJLENBQUNPLEtBQUwsQ0FBV0MsYUFBWCxDQUF5QixLQUF6QixFQUNJO0FBQUNDLGVBQVMsRUFBRSw4QkFBWjtBQUE0Q0wsYUFBTyxFQUFFLEtBQUtBO0FBQTFELEtBREosRUFFSUosMkNBQUksQ0FBQ08sS0FBTCxDQUFXQyxhQUFYLENBQXlCRSw2Q0FBekIsRUFBK0IsSUFBL0IsQ0FGSixDQURKLEVBS0lWLDJDQUFJLENBQUNPLEtBQUwsQ0FBV0MsYUFBWCxDQUNJLEtBREosRUFFSTtBQUFDQyxlQUFTLEVBQUU7QUFBWixLQUZKLEVBR0ksS0FISixDQUxKLENBREosQ0FERyxDQUFQO0FBZUg7O0FBRURMLFNBQU8sR0FBRztBQUNOLFFBQUksS0FBS0QsS0FBTCxDQUFXQyxPQUFmLEVBQXdCO0FBQ3BCLFdBQUtELEtBQUwsQ0FBV0MsT0FBWDtBQUNIOztBQUNETyxLQUFDLENBQUMscUJBQUQsQ0FBRCxDQUF5QkMsS0FBekIsR0FBaUNDLEtBQWpDO0FBQ0g7O0FBOUJzRCIsImZpbGUiOiIuL3NyYy9yZWFjdC90b29scy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCRFYyIGZyb20gXCIuLi92MlwiO1xyXG5cclxuaW1wb3J0IFhTdmcgZnJvbSBcIi4veFN2Z1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVjJDX1Rvb2xzIGV4dGVuZHMgQkRWMi5yZWFjdENvbXBvbmVudCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgdGhpcy5vbkNsaWNrID0gdGhpcy5vbkNsaWNrLmJpbmQodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJ0b29scy1jb250YWluZXIgdG9vbHNDb250YWluZXItMWVkUHVqXCJ9LFxyXG4gICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJ0b29scyB0b29scy0zLTNzLU5cIn0sXHJcbiAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJjb250YWluZXItMXNGZXFmXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcImJ0bi1jbG9zZSBjbG9zZUJ1dHRvbi0xdHY1dVJcIiwgb25DbGljazogdGhpcy5vbkNsaWNrfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFhTdmcsIG51bGwpXHJcbiAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwiZXNjLXRleHQga2V5YmluZC1LcEZrZnJcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRVNDXCJcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2xpY2soKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25DbGljaykge1xyXG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uQ2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJChcIi5jbG9zZUJ1dHRvbi0xdHY1dVJcIikuZmlyc3QoKS5jbGljaygpO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3Rvb2x0aXBXcmFwLmpzPzhjNzMiXSwibmFtZXMiOlsiQ29tcG9uZW50Iiwib3B0aW9ucyIsInN0eWxlIiwic2lkZSIsInRleHQiLCJpZCIsIkJEVjIiLCJLZXlHZW5lcmF0b3IiLCJyZWFjdENvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJvbk1vdXNlRW50ZXIiLCJiaW5kIiwib25Nb3VzZUxlYXZlIiwiY29tcG9uZW50RGlkTW91bnQiLCJub2RlIiwicmVhY3REb20iLCJmaW5kRE9NTm9kZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJUb29sdGlwcyIsImxlZnQiLCJ0b3AiLCJ3aWR0aCIsImhlaWdodCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsInNob3ciLCJwb3NpdGlvbiIsImNvbG9yIiwidGFyZ2V0V2lkdGgiLCJ0YXJnZXRIZWlnaHQiLCJ3aW5kb3dXaWR0aCIsIlV0aWxzIiwic2NyZWVuV2lkdGgiLCJ3aW5kb3dIZWlnaHQiLCJzY3JlZW5IZWlnaHQiLCJ4IiwieSIsIm9ic2VydmVyIiwiTXV0YXRpb25PYnNlcnZlciIsIm11dGF0aW9ucyIsImZvckVhY2giLCJtdXRhdGlvbiIsIm5vZGVzIiwiQXJyYXkiLCJmcm9tIiwicmVtb3ZlZE5vZGVzIiwiZGlyZWN0TWF0Y2giLCJpbmRleE9mIiwicGFyZW50TWF0Y2giLCJzb21lIiwicGFyZW50IiwiY29udGFpbnMiLCJkaXNjb25uZWN0Iiwib2JzZXJ2ZSIsImRvY3VtZW50IiwiYm9keSIsInN1YnRyZWUiLCJjaGlsZExpc3QiLCJoaWRlIiwicmVuZGVyIiwicmVhY3QiLCJjcmVhdGVFbGVtZW50Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRWUseUVBQVNBLFNBQVQsRUFBb0JDLE9BQXBCLEVBQTZCO0FBQ3hDLFFBQU07QUFBQ0Ms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QW5CO0FBQ0g7O0FBRUR3RCxVQUFNLEdBQUc7QUFDTCxhQUFPdkQsMkNBQUksQ0FBQ3dELEtBQUwsQ0FBV0MsYUFBWCxDQUF5Qi9ELFNBQXpCLEVBQW9DLEtBQUtVLEtBQXpDLENBQVA7QUFDSDs7QUF2RG9DLEdBQXpDO0FBeURILEMiLCJmaWxlIjoiLi9zcmMvcmVhY3QvdG9vbHRpcFdyYXAuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQkRWMiBmcm9tIFwiLi4vdjJcIjtcclxuaW1wb3J0IFV0aWxzIGZyb20gXCIuLi91dGlsc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oQ29tcG9uZW50LCBvcHRpb25zKSB7XHJcbiAgICBjb25zdCB7c3R5bGUgPSBcImJsYWNrXCIsIHNpZGUgPSBcInRvcFwiLCB0ZXh0ID0gXCJcIn0gPSBvcHRpb25zO1xyXG4gICAgY29uc3QgaWQgPSBCRFYyLktleUdlbmVyYXRvcigpO1xyXG5cclxuICAgIHJldHVybiBjbGFzcyBleHRlbmRzIEJEVjIucmVhY3RDb21wb25lbnQge1xyXG4gICAgICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICAgICAgdGhpcy5vbk1vdXNlRW50ZXIgPSB0aGlzLm9uTW91c2VFbnRlci5iaW5kKHRoaXMpO1xyXG4gICAgICAgICAgICB0aGlzLm9uTW91c2VMZWF2ZSA9IHRoaXMub25Nb3VzZUxlYXZlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgICAgICAgICAgdGhpcy5ub2RlID0gQkRWMi5yZWFjdERvbS5maW5kRE9NTm9kZSh0aGlzKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWVudGVyXCIsIHRoaXMub25Nb3VzZUVudGVyKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsIHRoaXMub25Nb3VzZUxlYXZlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZW50ZXJcIiwgdGhpcy5vbk1vdXNlRW50ZXIpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIiwgdGhpcy5vbk1vdXNlTGVhdmUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgb25Nb3VzZUVudGVyKCkge1xyXG4gICAgaWYgKCFCRFYyLlRvb2x0aXBzKSByZXR1cm47XHJcbiAgICAgICAgICAgIGNvbnN0IHtsZWZ0LCB0b3AsIHdpZHRoLCBoZWlnaHR9ID0gdGhpcy5ub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgICBCRFYyLlRvb2x0aXBzLnNob3coaWQsIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzaWRlLFxyXG4gICAgICAgICAgICAgICAgdGV4dDogdGV4dCxcclxuICAgICAgICAgICAgICAgIGNvbG9yOiBzdHlsZSxcclxuICAgICAgICAgICAgICAgIHRhcmdldFdpZHRoOiB3aWR0aCxcclxuICAgICAgICAgICAgICAgIHRhcmdldEhlaWdodDogaGVpZ2h0LFxyXG4gICAgICAgICAgICAgICAgd2luZG93V2lkdGg6IFV0aWxzLnNjcmVlbldpZHRoLFxyXG4gICAgICAgICAgICAgICAgd2luZG93SGVpZ2h0OiBVdGlscy5zY3JlZW5IZWlnaHQsXHJcbiAgICAgICAgICAgICAgICB4OiBsZWZ0LFxyXG4gICAgICAgICAgICAgICAgeTogdG9wXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBtdXRhdGlvbnMuZm9yRWFjaCgobXV0YXRpb24pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlcyA9IEFycmF5LmZyb20obXV0YXRpb24ucmVtb3ZlZE5vZGVzKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXJlY3RNYXRjaCA9IG5vZGVzLmluZGV4T2YodGhpcy5ub2RlKSA+IC0xO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudE1hdGNoID0gbm9kZXMuc29tZShwYXJlbnQgPT4gcGFyZW50LmNvbnRhaW5zKHRoaXMubm9kZSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChkaXJlY3RNYXRjaCB8fCBwYXJlbnRNYXRjaCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uTW91c2VMZWF2ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7c3VidHJlZTogdHJ1ZSwgY2hpbGRMaXN0OiB0cnVlfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBvbk1vdXNlTGVhdmUoKSB7XHJcbiAgICBpZiAoIUJEVjIuVG9vbHRpcHMpIHJldHVybjtcclxuICAgICAgICAgICAgQkRWMi5Ub29sdGlwcy5oaWRlKGlkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJlbmRlcigpIHtcclxuICAgICAgICAgICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChDb21wb25lbnQsIHRoaXMucHJvcHMpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3JlYWN0L3hTdmcuanM/MjRhNyJdLCJuYW1lcyI6WyJWMkNfWFN2ZyIsIkJEVjIiLCJyZWFjdENvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJyZW5kZXIiLCJyZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJ4bWxucyIsInZpZXdCb3giLCJzdHlsZSIsIndpZHRoIiwiaGVpZ2h0IiwiY2xhc3NOYW1lIiwiZmlsbCIsImZpbGxSdWxlIiwiZCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFFZSxNQUFNQSxRQUFOLFNBQXVCQywyQ0FBSSxDQUFDQyxjQUE1QixDQUEyQztBQUN0REMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFdBQU9KLDJDQUFJLENBQUNLLEtBQUwsQ0FBV0MsYUFBWCxDQUNILEtBREcsRUFFSDtBQUFDQyxXQUFLLEVBQUUsNEJBQVI7QUFBc0NDLGFBQU8sRUFBRSxXQUEvQztBQUE0REMsV0FBSyxFQUFFO0FBQUNDLGFBQUssRUFBRSxNQUFSO0FBQWdCQyxjQUFNLEVBQUU7QUFBeEI7QUFBbkUsS0FGRyxFQUdIWCwyQ0FBSSxDQUFDSyxLQUFMLENBQVdDLGFBQVgsQ0FDSSxHQURKLEVBRUk7QUFBQ00sZUFBUyxFQUFFLFlBQVo7QUFBMEJDLFVBQUksRUFBRSxNQUFoQztBQUF3Q0MsY0FBUSxFQUFFO0FBQWxELEtBRkosRUFHSWQsMkNBQUksQ0FBQ0ssS0FBTCxDQUFXQyxhQUFYLENBQXlCLE1BQXpCLEVBQWlDO0FBQUNTLE9BQUMsRUFBRTtBQUFKLEtBQWpDLENBSEosRUFJSWYsMkNBQUksQ0FBQ0ssS0FBTCxDQUFXQyxhQUFYLENBQXlCLE1BQXpCLEVBQWlDO0FBQUNNLGVBQVMsRUFBRSxNQUFaO0FBQW9CQyxVQUFJLEVBQUUsU0FBMUI7QUFBcUNFLE9BQUMsRUFBRTtBQUF4QyxLQUFqQyxDQUpKLENBSEcsQ0FBUDtBQVVIOztBQWhCcUQiLCJmaWxlIjoiLi9zcmMvcmVhY3QveFN2Zy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCRFYyIGZyb20gXCIuLi92MlwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVjJDX1hTdmcgZXh0ZW5kcyBCRFYyLnJlYWN0Q29tcG9uZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICBcInN2Z1wiLFxyXG4gICAgICAgICAgICB7eG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiwgdmlld0JveDogXCIwIDAgMTIgMTJcIiwgc3R5bGU6IHt3aWR0aDogXCIxOHB4XCIsIGhlaWdodDogXCIxOHB4XCJ9fSxcclxuICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgXCJnXCIsXHJcbiAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcImJhY2tncm91bmRcIiwgZmlsbDogXCJub25lXCIsIGZpbGxSdWxlOiBcImV2ZW5vZGRcIn0sXHJcbiAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtkOiBcIk0wIDBoMTJ2MTJIMFwifSksXHJcbiAgICAgICAgICAgICAgICBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtjbGFzc05hbWU6IFwiZmlsbFwiLCBmaWxsOiBcIiNkY2RkZGVcIiwgZDogXCJNOS41IDMuMjA1TDguNzk1IDIuNSA2IDUuMjk1IDMuMjA1IDIuNWwtLjcwNS43MDVMNS4yOTUgNiAyLjUgOC43OTVsLjcwNS43MDVMNiA2LjcwNSA4Ljc5NSA5LjVsLjcwNS0uNzA1TDYuNzA1IDZcIn0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\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 _publicServers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./publicServers */ \"./src/publicServers.js\");\n/* harmony import */ var _voiceMode__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./voiceMode */ \"./src/voiceMode.js\");\n/* harmony import */ var _emoteModule__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./emoteModule */ \"./src/emoteModule.js\");\n/* harmony import */ var _classNormalizer__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./classNormalizer */ \"./src/classNormalizer.js\");\n/* harmony import */ var _devMode__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./devMode */ \"./src/devMode.js\");\n/* harmony import */ var _quickEmoteMenu__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./quickEmoteMenu */ \"./src/quickEmoteMenu.js\");\n/* harmony import */ var _react_tools__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./react/tools */ \"./src/react/tools.js\");\n/* harmony import */ var _react_reloadIcon__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./react/reloadIcon */ \"./src/react/reloadIcon.js\");\n/* harmony import */ var _react_tooltipWrap__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./react/tooltipWrap */ \"./src/react/tooltipWrap.js\");\n/* harmony import */ var _react_scroller__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./react/scroller */ \"./src/react/scroller.js\");\n/* harmony import */ var _react_list__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./react/list */ \"./src/react/list.js\");\n/* harmony import */ var _react_pluginCard__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./react/pluginCard */ \"./src/react/pluginCard.js\");\n/* harmony import */ var _react_themeCard__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./react/themeCard */ \"./src/react/themeCard.js\");\n/* harmony import */ var _react_sectionedSettingsPanel__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./react/sectionedSettingsPanel */ \"./src/react/sectionedSettingsPanel.js\");\n/* harmony import */ var _react_settingsPanel__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./react/settingsPanel */ \"./src/react/settingsPanel.js\");\n/* harmony import */ var _react_cssEditor__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./react/cssEditor */ \"./src/react/cssEditor.js\");\n/* harmony import */ var _react_contentColumn__WEBPACK_IMPORTED_MODULE_26__ = __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/* 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_10__[\"default\"].addButton();else _publicServers__WEBPACK_IMPORTED_MODULE_10__[\"default\"].removeButton();\n }\n\n if (id == \"bda-gs-4\") {\n if (enabled) _voiceMode__WEBPACK_IMPORTED_MODULE_11__[\"default\"].enable();else _voiceMode__WEBPACK_IMPORTED_MODULE_11__[\"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\") _coloredText__WEBPACK_IMPORTED_MODULE_9__[\"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_12__[\"default\"].autoCapitalize();else _emoteModule__WEBPACK_IMPORTED_MODULE_12__[\"default\"].disableAutoCapitalize();\n }\n\n if (id == \"fork-ps-4\") {\n if (enabled) _classNormalizer__WEBPACK_IMPORTED_MODULE_13__[\"default\"].start();else _classNormalizer__WEBPACK_IMPORTED_MODULE_13__[\"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_14__[\"default\"].enable(_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-dm-1\"]);else _devMode__WEBPACK_IMPORTED_MODULE_14__[\"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_14__[\"default\"].enable(enabled);\n }\n\n this.saveSettings();\n }\n\n 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_10__[\"default\"].addButton();\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"bda-gs-4\"]) _voiceMode__WEBPACK_IMPORTED_MODULE_11__[\"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\"]) _coloredText__WEBPACK_IMPORTED_MODULE_9__[\"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_12__[\"default\"].autoCapitalize();\n if (_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-4\"]) _classNormalizer__WEBPACK_IMPORTED_MODULE_13__[\"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_14__[\"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_19__[\"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_23__[\"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_16__[\"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_19__[\"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_24__[\"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_12__[\"default\"].clearEmoteData();\n _emoteModule__WEBPACK_IMPORTED_MODULE_12__[\"default\"].init();\n _quickEmoteMenu__WEBPACK_IMPORTED_MODULE_15__[\"default\"].init();\n }\n }\n }), _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_tools__WEBPACK_IMPORTED_MODULE_16__[\"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_19__[\"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_25__[\"default\"], {\n key: \"csseditor\"\n }), _v2__WEBPACK_IMPORTED_MODULE_4__[\"default\"].react.createElement(_react_tools__WEBPACK_IMPORTED_MODULE_16__[\"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_21__[\"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_20__[\"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_18__[\"default\"])(_react_reloadIcon__WEBPACK_IMPORTED_MODULE_17__[\"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_26__[\"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_19__[\"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_16__[\"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_22__[\"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_20__[\"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_18__[\"default\"])(_react_reloadIcon__WEBPACK_IMPORTED_MODULE_17__[\"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_26__[\"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_19__[\"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_16__[\"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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3NldHRpbmdzUGFuZWwuanM/MWRkMyJdLCJuYW1lcyI6WyJWMl9TZXR0aW5nc1BhbmVsIiwiY29uc3RydWN0b3IiLCJzZWxmIiwic2lkZUJhck9uQ2xpY2siLCJiaW5kIiwib25DaGFuZ2UiLCJ1cGRhdGVTZXR0aW5ncyIsInNpZGViYXIiLCJWMl9TZXR0aW5nc1BhbmVsX1NpZGViYXIiLCJyb290IiwiX3Jvb3QiLCIkIiwibGVuZ3RoIiwiaW5qZWN0Um9vdCIsImFwcGVuZCIsIlV0aWxzIiwib25SZW1vdmVkIiwiQkRWMiIsInJlYWN0RG9tIiwidW5tb3VudENvbXBvbmVudEF0Tm9kZSIsImNvcmVTZXR0aW5ncyIsInNldHRpbmdzIiwiZ2V0U2V0dGluZ3MiLCJjYXRlZ29yaWVzIiwiU2V0IiwibWFwIiwicyIsImNhdGVnb3J5Iiwic2VjdGlvbnMiLCJjIiwidGl0bGUiLCJmaWx0ZXIiLCJlbW90ZVNldHRpbmdzIiwiT2JqZWN0Iiwia2V5cyIsInJlZHVjZSIsImFyciIsImtleSIsInNldHRpbmciLCJjYXQiLCJpbXBsZW1lbnRlZCIsImhpZGRlbiIsInRleHQiLCJwdXNoIiwiaWQiLCJmaXJzdCIsImhpZGUiLCJzaG93IiwicmVuZGVyQ29yZVNldHRpbmdzIiwicmVuZGVyRW1vdGVTZXR0aW5ncyIsInJlbmRlckN1c3RvbUNzc0VkaXRvciIsInJlbmRlclBsdWdpblBhbmUiLCJyZW5kZXJUaGVtZVBhbmUiLCJvbkNsaWNrIiwiY2hlY2tlZCIsImVuYWJsZWQiLCJzZXR0aW5nc0Nvb2tpZSIsImFkZENsYXNzIiwicmVtb3ZlQ2xhc3MiLCJwdWJsaWNTZXJ2ZXJzTW9kdWxlIiwiYWRkQnV0dG9uIiwicmVtb3ZlQnV0dG9uIiwidm9pY2VNb2RlIiwiZW5hYmxlIiwiZGlzYWJsZSIsImNvbG9yZWRUZXh0IiwiaW5qZWN0MjRIb3VyIiwiaW5qZWN0Q29sb3JlZFRleHQiLCJyZW1vdmVDb2xvcmVkVGV4dCIsImVtb3RlTW9kdWxlIiwiYXV0b0NhcGl0YWxpemUiLCJkaXNhYmxlQXV0b0NhcGl0YWxpemUiLCJDbGFzc05vcm1hbGl6ZXIiLCJzdGFydCIsInN0b3AiLCJDb250ZW50TWFuYWdlciIsIndhdGNoQ29udGVudCIsInVud2F0Y2hDb250ZW50IiwiZE1vZGUiLCJzYXZlU2V0dGluZ3MiLCJpbml0aWFsaXplU2V0dGluZ3MiLCJEYXRhU3RvcmUiLCJzZXRTZXR0aW5nR3JvdXAiLCJsb2FkU2V0dGluZ3MiLCJhc3NpZ24iLCJnZXRTZXR0aW5nR3JvdXAiLCJyZW5kZXJTaWRlYmFyIiwib2ZmIiwib24iLCJyZW5kZXIiLCJjb3JlQ29tcG9uZW50IiwicmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiU2Nyb2xsZXIiLCJjb250ZW50Q29sdW1uIiwiZmFkZSIsImRhcmsiLCJjaGlsZHJlbiIsIlNlY3Rpb25lZFNldHRpbmdzUGFuZWwiLCJUb29scyIsImVtb3RlQ29tcG9uZW50IiwiU2V0dGluZ3NQYW5lbCIsImJ1dHRvbiIsImNsZWFyRW1vdGVEYXRhIiwiaW5pdCIsInF1aWNrRW1vdGVNZW51IiwiY3VzdG9tQ3NzQ29tcG9uZW50IiwiQ3NzRWRpdG9yIiwiY29udGVudENvbXBvbmVudCIsInR5cGUiLCJjb21wb25lbnRFbGVtZW50IiwicGx1Z2luc0NvbXBvbmVudCIsInRoZW1lc0NvbXBvbmVudCIsInByZWZpeCIsInJlcGxhY2UiLCJzZXR0aW5nc0xpc3QiLCJDb250ZW50TGlzdCIsIkNvbXBvbmVudCIsInByb3BzIiwiY29tcG9uZW50RGlkTW91bnQiLCJCREV2ZW50cyIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwicGx1Z2lucyIsImJkcGx1Z2lucyIsInNvcnQiLCJhIiwiYiIsInRvTG93ZXJDYXNlIiwibG9jYWxlQ29tcGFyZSIsIlBsdWdpbkNhcmQiLCJwbHVnaW4iLCJsaXN0IiwiTGlzdCIsImNsYXNzTmFtZSIsInJlZnJlc2hJY29uIiwiVG9vbHRpcFdyYXAiLCJSZWxvYWRJY29uIiwiY29sb3IiLCJzaWRlIiwic2l6ZSIsInBsdWdpbk1vZHVsZSIsInVwZGF0ZVBsdWdpbkxpc3QiLCJwZkJ0biIsInJlcXVpcmUiLCJzaGVsbCIsIm9wZW5JdGVtIiwicGx1Z2luc0ZvbGRlciIsIkNvbnRlbnRDb2x1bW4iLCJ0aGVtZXMiLCJiZHRoZW1lcyIsIlRoZW1lQ2FyZCIsInRoZW1lIiwidGhlbWVNb2R1bGUiLCJ1cGRhdGVUaGVtZUxpc3QiLCJ0ZkJ0biIsInRoZW1lc0ZvbGRlciIsImNvbnNvbGUiLCJsb2ciXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRWUsbUVBQUksTUFBTUEsZ0JBQU4sQ0FBdUI7QUFFdENDLGFBQVcsR0FBRztBQUNWLFVBQU1DLElBQUksR0FBRyxJQUFiO0FBQ0FBLFFBQUksQ0FBQ0MsY0FBTCxHQUFzQkQsSUFBSSxDQUFDQyxjQUFMLENBQW9CQyxJQUFwQixDQUF5QkYsSUFBekIsQ0FBdEI7QUFDQUEsUUFBSSxDQUFDRyxRQUFMLEdBQWdCSCxJQUFJLENBQUNHLFFBQUwsQ0FBY0QsSUFBZCxDQUFtQkYsSUFBbkIsQ0FBaEI7QUFDQUEsUUFBSSxDQUFDSSxjQUFMLEdBQXNCLEtBQUtBLGNBQUwsQ0FBb0JGLElBQXBCLENBQXlCRixJQUF6QixDQUF0QjtBQUNBQSxRQUFJLENBQUNLLE9BQUwsR0FBZSxJQUFJQyw2REFBSixDQUE2Qk4sSUFBSSxDQUFDQyxjQUFsQyxDQUFmO0FBQ0g7O0FBRUQsTUFBSU0sSUFBSixHQUFXO0FBQ1As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LElBQXZEO0FBQ0g7O0FBRUQyQyxpQkFBZSxHQUFHO0FBQ2QsVUFBTTNDLElBQUksR0FBRyxLQUFLQSxJQUFsQjs7QUFDQSxRQUFJLENBQUNBLElBQUwsRUFBVztBQUNQbUosYUFBTyxDQUFDQyxHQUFSLENBQVksa0VBQVo7QUFDQTtBQUNIOztBQUNENUksK0NBQUksQ0FBQ0MsUUFBTCxDQUFjdUUsTUFBZCxDQUFxQixLQUFLbUIsZ0JBQUwsQ0FBc0IsUUFBdEIsQ0FBckIsRUFBc0RuRyxJQUF0RDtBQUNIOztBQTdVcUMsQ0FBM0IsRUFBZiIsImZpbGUiOiIuL3NyYy9zZXR0aW5nc1BhbmVsLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzZXR0aW5ncywgc2V0dGluZ3NDb29raWUsIGJkcGx1Z2lucywgYmR0aGVtZXN9IGZyb20gXCIuLzBnbG9iYWxzXCI7XHJcbmltcG9ydCBEYXRhU3RvcmUgZnJvbSBcIi4vZGF0YVN0b3JlXCI7XHJcbmltcG9ydCBWMl9TZXR0aW5nc1BhbmVsX1NpZGViYXIgZnJvbSBcIi4vc2V0dGluZ3NQYW5lbFNpZGViYXJcIjtcclxuaW1wb3J0IFV0aWxzIGZyb20gXCIuL3V0aWxzXCI7XHJcbmltcG9ydCBCRFYyIGZyb20gXCIuL3YyXCI7XHJcbmltcG9ydCBDb250ZW50TWFuYWdlciBmcm9tIFwiLi9jb250ZW50TWFuYWdlclwiO1xyXG5pbXBvcnQgQkRFdmVudHMgZnJvbSBcIi4vYmRFdmVudHNcIjtcclxuaW1wb3J0IHBsdWdpbk1vZHVsZSBmcm9tIFwiLi9wbHVnaW5Nb2R1bGVcIjtcclxuaW1wb3J0IHRoZW1lTW9kdWxlIGZyb20gXCIuL3RoZW1lTW9kdWxlXCI7XHJcbmltcG9ydCBjb2xvcmVkVGV4dCBmcm9tIFwiLi9jb2xvcmVkVGV4dFwiO1xyXG5cclxuaW1wb3J0IHB1YmxpY1NlcnZlcnNNb2R1bGUgZnJvbSBcIi4vcHVibGljU2VydmVyc1wiO1xyXG5pbXBvcnQgdm9pY2VNb2RlIGZyb20gXCIuL3ZvaWNlTW9kZVwiO1xyXG5pbXBvcnQgZW1vdGVNb2R1bGUgZnJvbSBcIi4vZW1vdGVNb2R1bGVcIjtcclxuaW1wb3J0IENsYXNzTm9ybWFsaXplciBmcm9tIFwiLi9jbGFzc05vcm1hbGl6ZXJcIjtcclxuaW1wb3J0IGRNb2RlIGZyb20gXCIuL2Rldk1vZGVcIjtcclxuaW1wb3J0IHF1aWNrRW1vdGVNZW51IGZyb20gXCIuL3F1aWNrRW1vdGVNZW51XCI7XHJcblxyXG5pbXBvcnQgVG9vbHMgZnJvbSBcIi4vcmVhY3QvdG9vbHNcIjtcclxuaW1wb3J0IFJlbG9hZEljb24gZnJvbSBcIi4vcmVhY3QvcmVsb2FkSWNvblwiO1xyXG5pbXBvcnQgVG9vbHRpcFdyYXAgZnJvbSBcIi4vcmVhY3QvdG9vbHRpcFdyYXBcIjtcclxuaW1wb3J0IFNjcm9sbGVyIGZyb20gXCIuL3JlYWN0L3Njcm9sbGVyXCI7XHJcbmltcG9ydCBMaXN0IGZyb20gXCIuL3JlYWN0L2xpc3RcIjtcclxuaW1wb3J0IFBsdWdpbkNhcmQgZnJvbSBcIi4vcmVhY3QvcGx1Z2luQ2FyZFwiO1xyXG5pbXBvcnQgVGhlbWVDYXJkIGZyb20gXCIuL3JlYWN0L3RoZW1lQ2FyZFwiO1xyXG5pbXBvcnQgU2VjdGlvbmVkU2V0dGluZ3NQYW5lbCBmcm9tIFwiLi9yZWFjdC9zZWN0aW9uZWRTZXR0aW5nc1BhbmVsXCI7XHJcbmltcG9ydCBTZXR0aW5nc1BhbmVsIGZyb20gXCIuL3JlYWN0L3NldHRpbmdzUGFuZWxcIjtcclxuaW1wb3J0IENzc0VkaXRvciBmcm9tIFwiLi9yZWFjdC9jc3NFZGl0b3JcIjtcclxuaW1wb3J0IENvbnRlbnRDb2x1bW4gZnJvbSBcIi4vcmVhY3QvY29udGVudENvbHVtblwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIFYyX1NldHRpbmdzUGFuZWwge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIHNlbGYuc2lkZUJhck9uQ2xpY2sgPSBzZWxmLnNpZGVCYXJPbkNsaWNrLmJpbmQoc2VsZik7XHJcbiAgICAgICAgc2VsZi5vbkNoYW5nZSA9IHNlbGYub25DaGFuZ2UuYmluZChzZWxmKTtcclxuICAgICAgICBzZWxmLnVwZGF0ZVNldHRpbmdzID0gdGhpcy51cGRhdGVTZXR0aW5ncy5iaW5kKHNlbGYpO1xyXG4gICAgICAgIHNlbGYuc2lkZWJhciA9IG5ldyBWMl9TZXR0aW5nc1BhbmVsX1NpZGViYXIoc2VsZi5zaWRlQmFyT25DbGljayk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHJvb3QoKSB7XHJcbiAgICAgICAgY29uc3QgX3Jvb3QgPSAkKFwiI2JkLXNldHRpbmdzcGFuZS1jb250YWluZXJcIik7XHJcbiAgICAgICAgaWYgKCFfcm9vdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmluamVjdFJvb3QoKSkgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJvb3Q7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBfcm9vdFswXTtcclxuICAgIH1cclxuXHJcbiAgICBpbmplY3RSb290KCkge1xyXG4gICAgICAgIGlmICghJChcIi5sYXllci0zUXJVZUcgLnN0YW5kYXJkU2lkZWJhclZpZXctM0YxSTdpLCAubGF5ZXItM1FyVWVHIC51aS1zdGFuZGFyZC1zaWRlYmFyLXZpZXdcIikubGVuZ3RoKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgY29uc3Qgcm9vdCA9ICQoXCI8ZGl2Lz5cIiwge1xyXG4gICAgICAgICAgICBcImNsYXNzXCI6IFwiY29udGVudFJlZ2lvbi0zbkR1WXkgY29udGVudC1yZWdpb25cIixcclxuICAgICAgICAgICAgXCJpZFwiOiBcImJkLXNldHRpbmdzcGFuZS1jb250YWluZXJcIlxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgICQoXCIubGF5ZXItM1FyVWVHIC5zdGFuZGFyZFNpZGViYXJWaWV3LTNGMUk3aSwgLmxheWVyLTNRclVlRyAudWktc3RhbmRhcmQtc2lkZWJhci12aWV3XCIpLmFwcGVuZChyb290KTtcclxuXHJcbiAgICAgICAgVXRpbHMub25SZW1vdmVkKHJvb3RbMF0sICgpID0+IHtcclxuICAgICAgICAgICAgQkRWMi5yZWFjdERvbS51bm1vdW50Q29tcG9uZW50QXROb2RlKHJvb3RbMF0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBjb3JlU2V0dGluZ3MoKSB7XHJcbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSB0aGlzLmdldFNldHRpbmdzKFwiY29yZVwiKTtcclxuICAgICAgICBjb25zdCBjYXRlZ29yaWVzID0gWy4uLm5ldyBTZXQoc2V0dGluZ3MubWFwKHMgPT4gcy5jYXRlZ29yeSkpXTtcclxuICAgICAgICBjb25zdCBzZWN0aW9ucyA9IGNhdGVnb3JpZXMubWFwKGMgPT4ge3JldHVybiB7dGl0bGU6IGMsIHNldHRpbmdzOiBzZXR0aW5ncy5maWx0ZXIocyA9PiBzLmNhdGVnb3J5ID09IGMpfTt9KTtcclxuICAgICAgICByZXR1cm4gc2VjdGlvbnM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGVtb3RlU2V0dGluZ3MoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2V0dGluZ3MoXCJlbW90ZVwiKTtcclxuICAgIH1cclxuICAgIGdldFNldHRpbmdzKGNhdGVnb3J5KSB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHNldHRpbmdzKS5yZWR1Y2UoKGFyciwga2V5KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNldHRpbmcgPSBzZXR0aW5nc1trZXldO1xyXG4gICAgICAgICAgICBpZiAoc2V0dGluZy5jYXQgPT09IGNhdGVnb3J5ICYmIHNldHRpbmcuaW1wbGVtZW50ZWQgJiYgIXNldHRpbmcuaGlkZGVuKSB7XHJcbiAgICAgICAgICAgICAgICBzZXR0aW5nLnRleHQgPSBrZXk7XHJcbiAgICAgICAgICAgICAgICBhcnIucHVzaChzZXR0aW5nKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gYXJyO1xyXG4gICAgICAgIH0sIFtdKTtcclxuICAgIH1cclxuXHJcbiAgICBzaWRlQmFyT25DbGljayhpZCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgICQoXCIuY29udGVudFJlZ2lvbi0zbkR1WXksIC5jb250ZW50LXJlZ2lvblwiKS5maXJzdCgpLmhpZGUoKTtcclxuICAgICAgICAkKHNlbGYucm9vdCkuc2hvdygpO1xyXG4gICAgICAgIHN3aXRjaCAoaWQpIHtcclxuICAgICAgICAgICAgY2FzZSBcImNvcmVcIjpcclxuICAgICAgICAgICAgICAgIHNlbGYucmVuZGVyQ29yZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImVtb3Rlc1wiOlxyXG4gICAgICAgICAgICAgICAgc2VsZi5yZW5kZXJFbW90ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImN1c3RvbWNzc1wiOlxyXG4gICAgICAgICAgICAgICAgc2VsZi5yZW5kZXJDdXN0b21Dc3NFZGl0b3IoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwicGx1Z2luc1wiOlxyXG4gICAgICAgICAgICAgICAgc2VsZi5yZW5kZXJQbHVnaW5QYW5lKCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInRoZW1lc1wiOlxyXG4gICAgICAgICAgICAgICAgc2VsZi5yZW5kZXJUaGVtZVBhbmUoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkNsaWNrKCkge31cclxuXHJcbiAgICBvbkNoYW5nZShpZCwgY2hlY2tlZCkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlU2V0dGluZ3MoaWQsIGNoZWNrZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVNldHRpbmdzKGlkLCBlbmFibGVkKSB7XHJcbiAgICAgICAgc2V0dGluZ3NDb29raWVbaWRdID0gZW5hYmxlZDtcclxuXHJcbiAgICAgICAgLy8gaWYgKGlkID09IFwiYmRhLWdzLWJcIikge1xyXG4gICAgICAgIC8vICAgICBpZiAoZW5hYmxlZCkgJChcImJvZHlcIikuYWRkQ2xhc3MoXCJiZC1ibHVlXCIpO1xyXG4gICAgICAgIC8vICAgICBlbHNlICQoXCJib2R5XCIpLnJlbW92ZUNsYXNzKFwiYmQtYmx1ZVwiKTtcclxuICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgIGlmIChpZCA9PSBcImJkYS1ncy0yXCIpIHtcclxuICAgICAgICAgICAgaWYgKGVuYWJsZWQpICQoXCJib2R5XCIpLmFkZENsYXNzKFwiYmQtbWluaW1hbFwiKTtcclxuICAgICAgICAgICAgZWxzZSAkKFwiYm9keVwiKS5yZW1vdmVDbGFzcyhcImJkLW1pbmltYWxcIik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaWQgPT0gXCJiZGEtZ3MtM1wiKSB7XHJcbiAgICAgICAgICAgIGlmIChlbmFibGVkKSAkKFwiYm9keVwiKS5hZGRDbGFzcyhcImJkLW1pbmltYWwtY2hhblwiKTtcclxuICAgICAgICAgICAgZWxzZSAkKFwiYm9keVwiKS5yZW1vdmVDbGFzcyhcImJkLW1pbmltYWwtY2hhblwiKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChpZCA9PSBcImJkYS1ncy0xXCIpIHtcclxuICAgICAgICAgICAgaWYgKGVuYWJsZWQpIHB1YmxpY1NlcnZlcnNNb2R1bGUuYWRkQnV0dG9uKCk7XHJcbiAgICAgICAgICAgIGVsc2UgcHVibGljU2VydmVyc01vZHVsZS5yZW1vdmVCdXR0b24oKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChpZCA9PSBcImJkYS1ncy00XCIpIHtcclxuICAgICAgICAgICAgaWYgKGVuYWJsZWQpIHZvaWNlTW9kZS5lbmFibGUoKTtcclxuICAgICAgICAgICAgZWxzZSB2b2ljZU1vZGUuZGlzYWJsZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGlkID09IFwiYmRhLWdzLTVcIikge1xyXG4gICAgICAgICAgICBpZiAoZW5hYmxlZCkgJChcIiNhcHAtbW91bnRcIikuYWRkQ2xhc3MoXCJiZGEtZGFya1wiKTtcclxuICAgICAgICAgICAgZWxzZSAkKFwiI2FwcC1tb3VudFwiKS5yZW1vdmVDbGFzcyhcImJkYS1kYXJrXCIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGVuYWJsZWQgJiYgaWQgPT0gXCJiZGEtZ3MtNlwiKSBjb2xvcmVkVGV4dC5pbmplY3QyNEhvdXIoKTtcclxuXHJcbiAgICAgICAgaWYgKGlkID09IFwiYmRhLWdzLTdcIikge1xyXG4gICAgICAgICAgICBpZiAoZW5hYmxlZCkgY29sb3JlZFRleHQuaW5qZWN0Q29sb3JlZFRleHQoKTtcclxuICAgICAgICAgICAgZWxzZSBjb2xvcmVkVGV4dC5yZW1vdmVDb2xvcmVkVGV4dCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGlkID09IFwiYmRhLWVzLTRcIikge1xyXG4gICAgICAgICAgICBpZiAoZW5hYmxlZCkgZW1vdGVNb2R1bGUuYXV0b0NhcGl0YWxpemUoKTtcclxuICAgICAgICAgICAgZWxzZSBlbW90ZU1vZHVsZS5kaXNhYmxlQXV0b0NhcGl0YWxpemUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChpZCA9PSBcImZvcmstcHMtNFwiKSB7XHJcbiAgICAgICAgICAgIGlmIChlbmFibGVkKSBDbGFzc05vcm1hbGl6ZXIuc3RhcnQoKTtcclxuICAgICAgICAgICAgZWxzZSBDbGFzc05vcm1hbGl6ZXIuc3RvcCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGlkID09IFwiZm9yay1wcy01XCIpIHtcclxuICAgICAgICAgICAgaWYgKGVuYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgIENvbnRlbnRNYW5hZ2VyLndhdGNoQ29udGVudChcInBsdWdpblwiKTtcclxuICAgICAgICAgICAgICAgIENvbnRlbnRNYW5hZ2VyLndhdGNoQ29udGVudChcInRoZW1lXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgQ29udGVudE1hbmFnZXIudW53YXRjaENvbnRlbnQoXCJwbHVnaW5cIik7XHJcbiAgICAgICAgICAgICAgICBDb250ZW50TWFuYWdlci51bndhdGNoQ29udGVudChcInRoZW1lXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaWQgPT0gXCJmb3JrLXdwLTFcIikge1xyXG4gICAgICAgICAgICAvLyBCZEFwaS5zZXRXaW5kb3dQcmVmZXJlbmNlKFwidHJhbnNwYXJlbnRcIiwgZW5hYmxlZCk7XHJcbiAgICAgICAgICAgIC8vIGlmIChlbmFibGVkKSBCZEFwaS5zZXRXaW5kb3dQcmVmZXJlbmNlKFwiYmFja2dyb3VuZENvbG9yXCIsIG51bGwpO1xyXG4gICAgICAgICAgICAvLyBlbHNlIEJkQXBpLnNldFdpbmRvd1ByZWZlcmVuY2UoXCJiYWNrZ3JvdW5kQ29sb3JcIiwgXCIjMmYzMTM2XCIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyppZiAoX2NbXCJmb3JrLXdwLTJcIl0pIHtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IEJkQXBpLmdldFdpbmRvd1ByZWZlcmVuY2UoXCJmcmFtZVwiKTtcclxuICAgICAgICAgICAgaWYgKGN1cnJlbnQgIT0gX2NbXCJmb3JrLXdwLTJcIl0pIEJkQXBpLnNldFdpbmRvd1ByZWZlcmVuY2UoXCJmcmFtZVwiLCBfY1tcImZvcmstd3AtMlwiXSk7XHJcbiAgICAgICAgfSovXHJcblxyXG5cclxuICAgICAgICBpZiAoaWQgPT0gXCJiZGEtZ3MtOFwiKSB7XHJcbiAgICAgICAgICAgIGlmIChlbmFibGVkKSBkTW9kZS5lbmFibGUoc2V0dGluZ3NDb29raWVbXCJmb3JrLWRtLTFcIl0pO1xyXG4gICAgICAgICAgICBlbHNlIGRNb2RlLmRpc2FibGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChpZCA9PSBcImZvcmstZG0tMVwiKSB7XHJcbiAgICAgICAgICAgIGlmIChzZXR0aW5nc0Nvb2tpZVtcImJkYS1ncy04XCJdKSBkTW9kZS5lbmFibGUoZW5hYmxlZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRpYWxpemVTZXR0aW5ncygpIHtcclxuXHJcbiAgICAgICAgLy8gaWYgKHNldHRpbmdzQ29va2llW1wiYmRhLWdzLWJcIl0pICQoXCJib2R5XCIpLmFkZENsYXNzKFwiYmQtYmx1ZVwiKTtcclxuICAgICAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJiZGEtZ3MtMlwiXSkgJChcImJvZHlcIikuYWRkQ2xhc3MoXCJiZC1taW5pbWFsXCIpO1xyXG4gICAgICAgIGlmIChzZXR0aW5nc0Nvb2tpZVtcImJkYS1ncy0zXCJdKSAkKFwiYm9keVwiKS5hZGRDbGFzcyhcImJkLW1pbmltYWwtY2hhblwiKTtcclxuICAgICAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJiZGEtZ3MtMVwiXSkgcHVibGljU2VydmVyc01vZHVsZS5hZGRCdXR0b24oKTtcclxuICAgICAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJiZGEtZ3MtNFwiXSkgdm9pY2VNb2RlLmVuYWJsZSgpO1xyXG4gICAgICAgIGlmIChzZXR0aW5nc0Nvb2tpZVtcImJkYS1ncy01XCJdKSAkKFwiI2FwcC1tb3VudFwiKS5hZGRDbGFzcyhcImJkYS1kYXJrXCIpO1xyXG4gICAgICAgIGlmIChzZXR0aW5nc0Nvb2tpZVtcImJkYS1ncy02XCJdKSBjb2xvcmVkVGV4dC5pbmplY3QyNEhvdXIoKTtcclxuICAgICAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJiZGEtZ3MtN1wiXSkgY29sb3JlZFRleHQuaW5qZWN0Q29sb3JlZFRleHQoKTtcclxuICAgICAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJiZGEtZXMtNFwiXSkgZW1vdGVNb2R1bGUuYXV0b0NhcGl0YWxpemUoKTtcclxuICAgICAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTRcIl0pIENsYXNzTm9ybWFsaXplci5zdGFydCgpO1xyXG5cclxuICAgICAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTVcIl0pIHtcclxuICAgICAgICAgICAgQ29udGVudE1hbmFnZXIud2F0Y2hDb250ZW50KFwicGx1Z2luXCIpO1xyXG4gICAgICAgICAgICBDb250ZW50TWFuYWdlci53YXRjaENvbnRlbnQoXCJ0aGVtZVwiKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChzZXR0aW5nc0Nvb2tpZVtcImJkYS1ncy04XCJdKSBkTW9kZS5lbmFibGUoc2V0dGluZ3NDb29raWVbXCJmb3JrLWRtLTFcIl0pO1xyXG5cclxuICAgICAgICB0aGlzLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVTZXR0aW5ncygpIHtcclxuICAgICAgICBEYXRhU3RvcmUuc2V0U2V0dGluZ0dyb3VwKFwic2V0dGluZ3NcIiwgc2V0dGluZ3NDb29raWUpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBsb2FkU2V0dGluZ3MoKSB7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihzZXR0aW5nc0Nvb2tpZSwgRGF0YVN0b3JlLmdldFNldHRpbmdHcm91cChcInNldHRpbmdzXCIpKTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXJTaWRlYmFyKCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgICQoXCJbY2xhc3MqPSdzaWRlLSddID4gW2NsYXNzKj0naXRlbS0nXVwiKS5vZmYoXCJjbGljay52MnNldHRpbmdzcGFuZWxcIikub24oXCJjbGljay52MnNldHRpbmdzcGFuZWxcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgICBCRFYyLnJlYWN0RG9tLnVubW91bnRDb21wb25lbnRBdE5vZGUoc2VsZi5yb290KTtcclxuICAgICAgICAgICAgJChzZWxmLnJvb3QpLmhpZGUoKTtcclxuICAgICAgICAgICAgJChcIi5jb250ZW50UmVnaW9uLTNuRHVZeSwgLmNvbnRlbnQtcmVnaW9uXCIpLmZpcnN0KCkuc2hvdygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHNlbGYuc2lkZWJhci5yZW5kZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29yZUNvbXBvbmVudCgpIHtcclxuICAgICAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFNjcm9sbGVyLCB7Y29udGVudENvbHVtbjogdHJ1ZSwgZmFkZTogdHJ1ZSwgZGFyazogdHJ1ZSwgY2hpbGRyZW46IFtcclxuICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFNlY3Rpb25lZFNldHRpbmdzUGFuZWwsIHtrZXk6IFwiY3NwYW5lbFwiLCBvbkNoYW5nZTogdGhpcy5vbkNoYW5nZSwgc2VjdGlvbnM6IHRoaXMuY29yZVNldHRpbmdzfSksXHJcbiAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChUb29scywge2tleTogXCJ0b29sc1wifSlcclxuICAgICAgICBdfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGVtb3RlQ29tcG9uZW50KCkge1xyXG4gICAgICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoU2Nyb2xsZXIsIHtcclxuICAgICAgICAgICAgY29udGVudENvbHVtbjogdHJ1ZSwgZmFkZTogdHJ1ZSwgZGFyazogdHJ1ZSwgY2hpbGRyZW46IFtcclxuICAgICAgICAgICAgICAgIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChTZXR0aW5nc1BhbmVsLCB7a2V5OiBcImVzcGFuZWxcIiwgdGl0bGU6IFwiRW1vdGUgU2V0dGluZ3NcIiwgb25DaGFuZ2U6IHRoaXMub25DaGFuZ2UsIHNldHRpbmdzOiB0aGlzLmVtb3RlU2V0dGluZ3MsIGJ1dHRvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIkNsZWFyIEVtb3RlIENhY2hlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljazogKCkgPT4geyBlbW90ZU1vZHVsZS5jbGVhckVtb3RlRGF0YSgpOyBlbW90ZU1vZHVsZS5pbml0KCk7IHF1aWNrRW1vdGVNZW51LmluaXQoKTsgfVxyXG4gICAgICAgICAgICAgICAgfX0pLFxyXG4gICAgICAgICAgICAgICAgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFRvb2xzLCB7a2V5OiBcInRvb2xzXCJ9KVxyXG4gICAgICAgIF19KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY3VzdG9tQ3NzQ29tcG9uZW50KCkge1xyXG4gICAgICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoU2Nyb2xsZXIsIHtjb250ZW50Q29sdW1uOiB0cnVlLCBmYWRlOiB0cnVlLCBkYXJrOiB0cnVlLCBjaGlsZHJlbjogW0JEVjIucmVhY3QuY3JlYXRlRWxlbWVudChDc3NFZGl0b3IsIHtrZXk6IFwiY3NzZWRpdG9yXCJ9KSwgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFRvb2xzLCB7a2V5OiBcInRvb2xzXCJ9KV19KTtcclxuICAgIH1cclxuXHJcbiAgICBjb250ZW50Q29tcG9uZW50KHR5cGUpIHtcclxuICAgICAgICBjb25zdCBjb21wb25lbnRFbGVtZW50ID0gdHlwZSA9PSBcInBsdWdpbnNcIiA/IHRoaXMucGx1Z2luc0NvbXBvbmVudCA6IHRoaXMudGhlbWVzQ29tcG9uZW50O1xyXG4gICAgICAgIGNvbnN0IHByZWZpeCA9IHR5cGUucmVwbGFjZShcInNcIiwgXCJcIik7XHJcbiAgICAgICAgY29uc3Qgc2V0dGluZ3NMaXN0ID0gdGhpcztcclxuICAgICAgICBjbGFzcyBDb250ZW50TGlzdCBleHRlbmRzIEJEVjIucmVhY3QuQ29tcG9uZW50IHtcclxuICAgICAgICAgICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICAgICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2UgPSB0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgICAgICAgICAgICAgQkRFdmVudHMub24oYCR7cHJlZml4fS1yZWxvYWRlZGAsIHRoaXMub25DaGFuZ2UpO1xyXG4gICAgICAgICAgICAgICAgQkRFdmVudHMub24oYCR7cHJlZml4fS1sb2FkZWRgLCB0aGlzLm9uQ2hhbmdlKTtcclxuICAgICAgICAgICAgICAgIEJERXZlbnRzLm9uKGAke3ByZWZpeH0tdW5sb2FkZWRgLCB0aGlzLm9uQ2hhbmdlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XHJcbiAgICAgICAgICAgICAgICBCREV2ZW50cy5vZmYoYCR7cHJlZml4fS1yZWxvYWRlZGAsIHRoaXMub25DaGFuZ2UpO1xyXG4gICAgICAgICAgICAgICAgQkRFdmVudHMub2ZmKGAke3ByZWZpeH0tbG9hZGVkYCwgdGhpcy5vbkNoYW5nZSk7XHJcbiAgICAgICAgICAgICAgICBCREV2ZW50cy5vZmYoYCR7cHJlZml4fS11bmxvYWRlZGAsIHRoaXMub25DaGFuZ2UpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBvbkNoYW5nZSgpIHtcclxuICAgICAgICAgICAgICAgIHNldHRpbmdzTGlzdC5zaWRlQmFyT25DbGljayh0eXBlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmVuZGVyKCkge3JldHVybiBjb21wb25lbnRFbGVtZW50O31cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChDb250ZW50TGlzdCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHBsdWdpbnNDb21wb25lbnQoKSB7XHJcbiAgICAgICAgY29uc3QgcGx1Z2lucyA9IE9iamVjdC5rZXlzKGJkcGx1Z2lucykuc29ydCgoYSwgYikgPT4gYS50b0xvd2VyQ2FzZSgpLmxvY2FsZUNvbXBhcmUoYi50b0xvd2VyQ2FzZSgpKSkucmVkdWNlKChhcnIsIGtleSkgPT4ge1xyXG4gICAgICAgICAgICBhcnIucHVzaChCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoUGx1Z2luQ2FyZCwge2tleToga2V5LCBwbHVnaW46IGJkcGx1Z2luc1trZXldLnBsdWdpbn0pKTtyZXR1cm4gYXJyO1xyXG4gICAgICAgIH0sIFtdKTtcclxuICAgICAgICBjb25zdCBsaXN0ID0gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KExpc3QsIHtrZXk6IFwicGx1Z2luLWxpc3RcIiwgY2xhc3NOYW1lOiBcImJkYS1zbGlzdFwiLCBjaGlsZHJlbjogcGx1Z2luc30pO1xyXG4gICAgICAgIGNvbnN0IHJlZnJlc2hJY29uID0gIXNldHRpbmdzQ29va2llW1wiZm9yay1wcy01XCJdICYmIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChUb29sdGlwV3JhcChSZWxvYWRJY29uLCB7Y29sb3I6IFwiYmxhY2tcIiwgc2lkZTogXCJ0b3BcIiwgdGV4dDogXCJSZWxvYWQgUGx1Z2luIExpc3RcIn0pLCB7Y2xhc3NOYW1lOiBcImJkLXJlbG9hZC1oZWFkZXJcIiwgc2l6ZTogXCIxOHB4XCIsIG9uQ2xpY2s6IGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgcGx1Z2luTW9kdWxlLnVwZGF0ZVBsdWdpbkxpc3QoKTtcclxuICAgICAgICAgICAgdGhpcy5zaWRlQmFyT25DbGljayhcInBsdWdpbnNcIik7XHJcbiAgICAgICAgfX0pO1xyXG4gICAgICAgIGNvbnN0IHBmQnRuID0gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIHtrZXk6IFwiZm9sZGVyLWJ1dHRvblwiLCBjbGFzc05hbWU6IFwiYmQtcGZidG5cIiwgb25DbGljazogKCkgPT4geyByZXF1aXJlKFwiZWxlY3Ryb25cIikuc2hlbGwub3Blbkl0ZW0oQ29udGVudE1hbmFnZXIucGx1Z2luc0ZvbGRlcik7IH19LCBcIk9wZW4gUGx1Z2luIEZvbGRlclwiKTtcclxuICAgICAgICBjb25zdCBjb250ZW50Q29sdW1uID0gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KENvbnRlbnRDb2x1bW4sIHtrZXk6IFwicGNvbHVtblwiLCB0aXRsZTogXCJQbHVnaW5zXCIsIGNoaWxkcmVuOiBbcmVmcmVzaEljb24sIHBmQnRuLCBsaXN0XX0pO1xyXG4gICAgICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoU2Nyb2xsZXIsIHtjb250ZW50Q29sdW1uOiB0cnVlLCBmYWRlOiB0cnVlLCBkYXJrOiB0cnVlLCBjaGlsZHJlbjogW2NvbnRlbnRDb2x1bW4sIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChUb29scywge2tleTogXCJ0b29sc1wifSldfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHRoZW1lc0NvbXBvbmVudCgpIHtcclxuICAgICAgICBjb25zdCB0aGVtZXMgPSBPYmplY3Qua2V5cyhiZHRoZW1lcykuc29ydCgoYSwgYikgPT4gYS50b0xvd2VyQ2FzZSgpLmxvY2FsZUNvbXBhcmUoYi50b0xvd2VyQ2FzZSgpKSkucmVkdWNlKChhcnIsIGtleSkgPT4ge1xyXG4gICAgICAgICAgICBhcnIucHVzaChCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoVGhlbWVDYXJkLCB7a2V5OiBrZXksIHRoZW1lOiBiZHRoZW1lc1trZXldfSkpO3JldHVybiBhcnI7XHJcbiAgICAgICAgfSwgW10pO1xyXG4gICAgICAgIGNvbnN0IGxpc3QgPSBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoTGlzdCwge2tleTogXCJ0aGVtZS1saXN0XCIsIGNsYXNzTmFtZTogXCJiZGEtc2xpc3RcIiwgY2hpbGRyZW46IHRoZW1lc30pO1xyXG4gICAgICAgIGNvbnN0IHJlZnJlc2hJY29uID0gIXNldHRpbmdzQ29va2llW1wiZm9yay1wcy01XCJdICYmIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChUb29sdGlwV3JhcChSZWxvYWRJY29uLCB7Y29sb3I6IFwiYmxhY2tcIiwgc2lkZTogXCJ0b3BcIiwgdGV4dDogXCJSZWxvYWQgVGhlbWUgTGlzdFwifSksIHtjbGFzc05hbWU6IFwiYmQtcmVsb2FkLWhlYWRlclwiLCBzaXplOiBcIjE4cHhcIiwgb25DbGljazogYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGVtZU1vZHVsZS51cGRhdGVUaGVtZUxpc3QoKTtcclxuICAgICAgICAgICAgdGhpcy5zaWRlQmFyT25DbGljayhcInRoZW1lc1wiKTtcclxuICAgICAgICB9fSk7XHJcbiAgICAgICAgY29uc3QgdGZCdG4gPSBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwge2tleTogXCJmb2xkZXItYnV0dG9uXCIsIGNsYXNzTmFtZTogXCJiZC1wZmJ0blwiLCBvbkNsaWNrOiAoKSA9PiB7IHJlcXVpcmUoXCJlbGVjdHJvblwiKS5zaGVsbC5vcGVuSXRlbShDb250ZW50TWFuYWdlci50aGVtZXNGb2xkZXIpOyB9fSwgXCJPcGVuIFRoZW1lIEZvbGRlclwiKTtcclxuICAgICAgICBjb25zdCBjb250ZW50Q29sdW1uID0gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KENvbnRlbnRDb2x1bW4sIHtrZXk6IFwidGNvbHVtblwiLCB0aXRsZTogXCJUaGVtZXNcIiwgY2hpbGRyZW46IFtyZWZyZXNoSWNvbiwgdGZCdG4sIGxpc3RdfSk7XHJcbiAgICAgICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChTY3JvbGxlciwge2NvbnRlbnRDb2x1bW46IHRydWUsIGZhZGU6IHRydWUsIGRhcms6IHRydWUsIGNoaWxkcmVuOiBbY29udGVudENvbHVtbiwgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFRvb2xzLCB7a2V5OiBcInRvb2xzXCJ9KV19KTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXJDb3JlU2V0dGluZ3MoKSB7XHJcbiAgICAgICAgY29uc3Qgcm9vdCA9IHRoaXMucm9vdDtcclxuICAgICAgICBpZiAoIXJvb3QpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJGQUlMRUQgVE8gTE9DQVRFIFJPT1Q6IC5sYXllci0zUXJVZUcgLnN0YW5kYXJkU2lkZWJhclZpZXctM0YxSTdpXCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEJEVjIucmVhY3REb20ucmVuZGVyKHRoaXMuY29yZUNvbXBvbmVudCwgcm9vdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyRW1vdGVTZXR0aW5ncygpIHtcclxuICAgICAgICBjb25zdCByb290ID0gdGhpcy5yb290O1xyXG4gICAgICAgIGlmICghcm9vdCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkZBSUxFRCBUTyBMT0NBVEUgUk9PVDogLmxheWVyLTNRclVlRyAuc3RhbmRhcmRTaWRlYmFyVmlldy0zRjFJN2lcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgQkRWMi5yZWFjdERvbS5yZW5kZXIodGhpcy5lbW90ZUNvbXBvbmVudCwgcm9vdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyQ3VzdG9tQ3NzRWRpdG9yKCkge1xyXG4gICAgICAgIGNvbnN0IHJvb3QgPSB0aGlzLnJvb3Q7XHJcbiAgICAgICAgaWYgKCFyb290KSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRkFJTEVEIFRPIExPQ0FURSBST09UOiAubGF5ZXItM1FyVWVHIC5zdGFuZGFyZFNpZGViYXJWaWV3LTNGMUk3aVwiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBCRFYyLnJlYWN0RG9tLnJlbmRlcih0aGlzLmN1c3RvbUNzc0NvbXBvbmVudCwgcm9vdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyUGx1Z2luUGFuZSgpIHtcclxuICAgICAgICBjb25zdCByb290ID0gdGhpcy5yb290O1xyXG4gICAgICAgIGlmICghcm9vdCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkZBSUxFRCBUTyBMT0NBVEUgUk9PVDogLmxheWVyLTNRclVlRyAuc3RhbmRhcmRTaWRlYmFyVmlldy0zRjFJN2lcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgQkRWMi5yZWFjdERvbS5yZW5kZXIodGhpcy5jb250ZW50Q29tcG9uZW50KFwicGx1Z2luc1wiKSwgcm9vdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyVGhlbWVQYW5lKCkge1xyXG4gICAgICAgIGNvbnN0IHJvb3QgPSB0aGlzLnJvb3Q7XHJcbiAgICAgICAgaWYgKCFyb290KSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRkFJTEVEIFRPIExPQ0FURSBST09UOiAubGF5ZXItM1FyVWVHIC5zdGFuZGFyZFNpZGViYXJWaWV3LTNGMUk3aVwiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBCRFYyLnJlYWN0RG9tLnJlbmRlcih0aGlzLmNvbnRlbnRDb21wb25lbnQoXCJ0aGVtZXNcIiksIHJvb3QpO1xyXG4gICAgfVxyXG59O1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3NldHRpbmdzUGFuZWxTaWRlYmFyLmpzP2RiY2IiXSwibmFtZXMiOlsiVjJfU2V0dGluZ3NQYW5lbF9TaWRlYmFyIiwiY29uc3RydWN0b3IiLCJvbkNsaWNrIiwiaXRlbXMiLCJ0ZXh0IiwiaWQiLCJjb21wb25lbnQiLCJCRFYyIiwicmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiU2lkZUJhciIsImhlYWRlclRleHQiLCJyb290IiwiX3Jvb3QiLCIkIiwibGVuZ3RoIiwiaW5qZWN0Um9vdCIsImNoYW5nZUxvZyIsImxhc3QiLCJpbnNlcnRCZWZvcmUiLCJwcmV2IiwicmVuZGVyIiwiY29uc29sZSIsImxvZyIsInJlYWN0RG9tIiwiVXRpbHMiLCJvblJlbW92ZWQiLCJ1bm1vdW50Q29tcG9uZW50QXROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBRWUsTUFBTUEsd0JBQU4sQ0FBK0I7QUFFMUNDLGFBQVcsQ0FBQ0MsT0FBRCxFQUFVO0FBQ2pCLFNBQUtBLE9BQUwsR0FBZUEsT0FBZjtBQUNIOztBQUVELE1BQUlDLEtBQUosR0FBWTtBQUNSLFdBQU8sQ0FBQztBQUFDQyxVQUFJLEVBQUUsVUFBUDtBQUFtQkMsUUFBRSxFQUFFO0FBQXZCLEtBQUQsRUFBaUM7QUFBQ0QsVUFBSSxFQUFFLFFBQVA7QUFBaUJDLFFBQUUsRUFBRTtBQUFyQixLQUFqQyxFQUFpRTtBQUFDRCxVQUFJLEVBQUUsU0FBUDtBQUFrQkMsUUFBRSxFQUFFO0FBQXRCLEtBQWpFLEVBQW1HO0FBQUNELFVBQUksRUFBRSxRQUFQO0FBQWlCQyxRQUFFLEVBQUU7QUFBckIsS0FBbkcsRUFBbUk7QUFBQ0QsVUFBSSxFQUFFLFlBQVA7QUFBcUJDLFFBQUUsRUFBRTtBQUF6QixLQUFuSSxDQUFQO0FBQ0g7O0FBRUQsTUFBSUMsU0FBSixHQUFnQjtBQUNaLFdBQU9DLDJDQUFJLENBQUNDLEtBQUwsQ0FBV0MsYUFBWCxDQUF5QixNQUF6QixFQUFpQyxJQUFqQyxFQUF1Q0YsMkNBQUksQ0FBQ0MsS0FBTCxDQUFXQyxhQUFYLENBQXlCQyxzREFBekIsRUFBa0M7QUFBQ1IsYUFBTyxFQUFFLEtBQUtBLE9BQWY7QUFBd0JTLGdCQUFVLEVBQUUsYUFBcEM7QUFBbURSLFdBQUssRUFBRSxLQUFLQTtBQUEvRCxLQUFsQyxDQUF2QyxDQUFQO0FBQ0g7O0FBRUQsTUFBSVMsSUFBSixHQUFXO0FBQ1AsVUFBTUMsS0FBSyxHQUFHQyxDQUFDLENBQUMsc0JBQUQsQ0FBZjs7QUFDQSxRQUFJLENBQUNELEtBQUssQ0FBQ0UsTUFBWCxFQUFtQjtBQUNmLFVBQUksQ0FBQyxLQUFLQyxVQUFMLEVBQUwsRUFBd0IsT0FBTyxJQUFQO0FBQ3hCLGFBQU8sS0FBS0osSUFBWjtBQUNIOztBQUNELFdBQU9DLEtBQUssQ0FBQyxDQUFELENBQVo7QUFDSDs7QUFFREcsWUFBVSxHQUFHO0FBQ1QsVUFBTUMsU0FBUyxHQUFHSCxDQUFDLENBQUMsMERBQUQsQ0FBRCxDQUE4REksSUFBOUQsRUFBbEI7QUFDQSxRQUFJLENBQUNELFNBQVMsQ0FBQ0YsTUFBZixFQUF1QixPQUFPLEtBQVA7QUFDdkJELEtBQUMsQ0FBQyxTQUFELEVBQVk7QUFBQ1QsUUFBRSxFQUFFO0FBQUwsS0FBWixDQUFELENBQTBDYyxZQUExQyxDQUF1REYsU0FBUyxDQUFDRyxJQUFWLEVBQXZEO0FBQ0EsV0FBTyxJQUFQO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFVBQU1ULElBQUksR0FBRyxLQUFLQSxJQUFsQjs7QUFDQSxRQUFJLENBQUNBLElBQUwsRUFBVztBQUNQVSxhQUFPLENBQUNDLEdBQVIsQ0FBWSxpRkFBWjtBQUNBO0FBQ0g7O0FBQ0RoQiwrQ0FBSSxDQUFDaUIsUUFBTCxDQUFjSCxNQUFkLENBQXFCLEtBQUtmLFNBQTFCLEVBQXFDTSxJQUFyQztBQUNBYSxrREFBSyxDQUFDQyxTQUFOLENBQWdCZCxJQUFoQixFQUFzQixNQUFNO0FBQ3hCTCxpREFBSSxDQUFDaUIsUUFBTCxDQUFjRyxzQkFBZCxDQUFxQ2YsSUFBckM7QUFDSCxLQUZEO0FBR0g7O0FBeEN5QyIsImZpbGUiOiIuL3NyYy9zZXR0aW5nc1BhbmVsU2lkZWJhci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBVdGlscyBmcm9tIFwiLi91dGlsc1wiO1xyXG5pbXBvcnQgQkRWMiBmcm9tIFwiLi92MlwiO1xyXG5cclxuaW1wb3J0IFNpZGVCYXIgZnJvbSBcIi4vcmVhY3Qvc2lkZWJhclwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVjJfU2V0dGluZ3NQYW5lbF9TaWRlYmFyIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvbkNsaWNrKSB7XHJcbiAgICAgICAgdGhpcy5vbkNsaWNrID0gb25DbGljaztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXRlbXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIFt7dGV4dDogXCJTZXR0aW5nc1wiLCBpZDogXCJjb3JlXCJ9LCB7dGV4dDogXCJFbW90ZXNcIiwgaWQ6IFwiZW1vdGVzXCJ9LCB7dGV4dDogXCJQbHVnaW5zXCIsIGlkOiBcInBsdWdpbnNcIn0sIHt0ZXh0OiBcIlRoZW1lc1wiLCBpZDogXCJ0aGVtZXNcIn0sIHt0ZXh0OiBcIkN1c3RvbSBDU1NcIiwgaWQ6IFwiY3VzdG9tY3NzXCJ9XTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29tcG9uZW50KCkge1xyXG4gICAgICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIG51bGwsIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChTaWRlQmFyLCB7b25DbGljazogdGhpcy5vbkNsaWNrLCBoZWFkZXJUZXh0OiBcIkJhbmRhZ2VkIEJEXCIsIGl0ZW1zOiB0aGlzLml0ZW1zfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCByb290KCkge1xyXG4gICAgICAgIGNvbnN0IF9yb290ID0gJChcIiNiZC1zZXR0aW5ncy1zaWRlYmFyXCIpO1xyXG4gICAgICAgIGlmICghX3Jvb3QubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5pbmplY3RSb290KCkpIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yb290O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gX3Jvb3RbMF07XHJcbiAgICB9XHJcblxyXG4gICAgaW5qZWN0Um9vdCgpIHtcclxuICAgICAgICBjb25zdCBjaGFuZ2VMb2cgPSAkKFwiW2NsYXNzKj0nc2lkZS0nXSA+IFtjbGFzcyo9J2l0ZW0tJ106bm90KFtjbGFzcyo9RGFuZ2VyXSlcIikubGFzdCgpO1xyXG4gICAgICAgIGlmICghY2hhbmdlTG9nLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICQoXCI8c3Bhbi8+XCIsIHtpZDogXCJiZC1zZXR0aW5ncy1zaWRlYmFyXCJ9KS5pbnNlcnRCZWZvcmUoY2hhbmdlTG9nLnByZXYoKSk7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHJvb3QgPSB0aGlzLnJvb3Q7XHJcbiAgICAgICAgaWYgKCFyb290KSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRkFJTEVEIFRPIExPQ0FURSBST09UOiBbY2xhc3MqPSdzaWRlLSddID4gW2NsYXNzKj0naXRlbS0nXTpub3QoW2NsYXNzKj1EYW5nZXJdKVwiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBCRFYyLnJlYWN0RG9tLnJlbmRlcih0aGlzLmNvbXBvbmVudCwgcm9vdCk7XHJcbiAgICAgICAgVXRpbHMub25SZW1vdmVkKHJvb3QsICgpID0+IHtcclxuICAgICAgICAgICAgQkRWMi5yZWFjdERvbS51bm1vdW50Q29tcG9uZW50QXROb2RlKHJvb3QpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3RoZW1lTW9kdWxlLmpzP2RmNjUiXSwibmFtZXMiOlsiVGhlbWVNb2R1bGUiLCJwcm90b3R5cGUiLCJsb2FkVGhlbWVzIiwibG9hZFRoZW1lRGF0YSIsImJkdGhlbWVFcnJvcnMiLCJjb25jYXQiLCJDb250ZW50TWFuYWdlciIsInRoZW1lcyIsIk9iamVjdCIsImtleXMiLCJiZHRoZW1lcyIsImkiLCJsZW5ndGgiLCJ0aGVtZSIsInRoZW1lQ29va2llIiwibmFtZSIsIiQiLCJhcHBlbmQiLCJpZCIsInRleHQiLCJ1bmVzY2FwZSIsImNzcyIsInNhdmVUaGVtZURhdGEiLCJlbmFibGVUaGVtZSIsInJlbG9hZCIsInNldHRpbmdzQ29va2llIiwiVXRpbHMiLCJzaG93VG9hc3QiLCJ2ZXJzaW9uIiwiZGlzYWJsZVRoZW1lIiwicmVtb3ZlIiwidG9nZ2xlVGhlbWUiLCJsb2FkVGhlbWUiLCJmaWxlbmFtZSIsImVycm9yIiwibG9hZENvbnRlbnQiLCJzaG93Q29udGVudEVycm9ycyIsInR5cGUiLCJlcnIiLCJ2YWx1ZXMiLCJmaW5kIiwicCIsImxvZyIsIkJERXZlbnRzIiwiZGlzcGF0Y2giLCJ1bmxvYWRUaGVtZSIsImZpbGVuYW1lT3JOYW1lIiwiYmR0aGVtZSIsInVubG9hZENvbnRlbnQiLCJyZWxvYWRUaGVtZSIsInJlbG9hZENvbnRlbnQiLCJ1cGRhdGVUaGVtZUxpc3QiLCJyZXN1bHRzIiwibG9hZE5ld0NvbnRlbnQiLCJhZGRlZCIsInJlbW92ZWQiLCJzYXZlZCIsIkRhdGFTdG9yZSIsImdldFNldHRpbmdHcm91cCIsImFzc2lnbiIsInNldFNldHRpbmdHcm91cCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxTQUFTQSxXQUFULEdBQXVCLENBRXRCOztBQUVEQSxXQUFXLENBQUNDLFNBQVosQ0FBc0JDLFVBQXRCLEdBQW1DLFlB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RDs7QUFPQXhELFdBQVcsQ0FBQ0MsU0FBWixDQUFzQnFCLGFBQXRCLEdBQXNDLFlBQVk7QUFDOUNtQyxvREFBUyxDQUFDRyxlQUFWLENBQTBCLFFBQTFCLEVBQW9DOUMscURBQXBDO0FBQ0gsQ0FGRDs7QUFJZSxtRUFBSWQsV0FBSixFQUFmIiwiZmlsZSI6Ii4vc3JjL3RoZW1lTW9kdWxlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtiZHRoZW1lRXJyb3JzLCB0aGVtZUNvb2tpZSwgc2V0dGluZ3NDb29raWUsIGJkdGhlbWVzfSBmcm9tIFwiLi8wZ2xvYmFsc1wiO1xyXG5pbXBvcnQgQ29udGVudE1hbmFnZXIgZnJvbSBcIi4vY29udGVudE1hbmFnZXJcIjtcclxuaW1wb3J0IERhdGFTdG9yZSBmcm9tIFwiLi9kYXRhU3RvcmVcIjtcclxuaW1wb3J0IEJERXZlbnRzIGZyb20gXCIuL2JkRXZlbnRzXCI7XHJcbmltcG9ydCBVdGlscyBmcm9tIFwiLi91dGlsc1wiO1xyXG5cclxuZnVuY3Rpb24gVGhlbWVNb2R1bGUoKSB7XHJcblxyXG59XHJcblxyXG5UaGVtZU1vZHVsZS5wcm90b3R5cGUubG9hZFRoZW1lcyA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHRoaXMubG9hZFRoZW1lRGF0YSgpO1xyXG4gICAgYmR0aGVtZUVycm9ycy5jb25jYXQoQ29udGVudE1hbmFnZXIubG9hZFRoZW1lcygpKTtcclxuICAgIGNvbnN0IHRoZW1lcyA9IE9iamVjdC5rZXlzKGJkdGhlbWVzKTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoZW1lcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IHRoZW1lID0gYmR0aGVtZXNbdGhlbWVzW2ldXTtcclxuICAgICAgICBpZiAoIXRoZW1lQ29va2llW3RoZW1lLm5hbWVdKSB0aGVtZUNvb2tpZVt0aGVtZS5uYW1lXSA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh0aGVtZUNvb2tpZVt0aGVtZS5uYW1lXSkgJChcImhlYWRcIikuYXBwZW5kKCQoXCI8c3R5bGU+XCIsIHtpZDogdGhlbWUuaWQsIHRleHQ6IHVuZXNjYXBlKHRoZW1lLmNzcyl9KSk7XHJcbiAgICB9XHJcbiAgICBmb3IgKGNvbnN0IHRoZW1lIGluIHRoZW1lQ29va2llKSB7XHJcbiAgICAgICAgaWYgKCFiZHRoZW1lc1t0aGVtZV0pIGRlbGV0ZSB0aGVtZUNvb2tpZVt0aGVtZV07XHJcbiAgICB9XHJcbiAgICB0aGlzLnNhdmVUaGVtZURhdGEoKTtcclxuICAgIC8vIGlmIChzZXR0aW5nc0Nvb2tpZVtcImZvcmstcHMtNVwiXSkgQ29udGVudE1hbmFnZXIud2F0Y2hDb250ZW50KFwidGhlbWVcIik7XHJcbn07XHJcblxyXG5UaGVtZU1vZHVsZS5wcm90b3R5cGUuZW5hYmxlVGhlbWUgPSBmdW5jdGlvbihuYW1lLCByZWxvYWQgPSBmYWxzZSkge1xyXG4gICAgdGhlbWVDb29raWVbbmFtZV0gPSB0cnVlO1xyXG4gICAgdGhpcy5zYXZlVGhlbWVEYXRhKCk7XHJcbiAgICBjb25zdCB0aGVtZSA9IGJkdGhlbWVzW25hbWVdO1xyXG4gICAgJChcImhlYWRcIikuYXBwZW5kKCQoXCI8c3R5bGU+XCIsIHtpZDogdGhlbWUuaWQsIHRleHQ6IHVuZXNjYXBlKHRoZW1lLmNzcyl9KSk7XHJcbiAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTJcIl0gJiYgIXJlbG9hZCkgVXRpbHMuc2hvd1RvYXN0KGAke3RoZW1lLm5hbWV9IHYke3RoZW1lLnZlcnNpb259IGhhcyBiZWVuIGFwcGxpZWQuYCk7XHJcbn07XHJcblxyXG5UaGVtZU1vZHVsZS5wcm90b3R5cGUuZGlzYWJsZVRoZW1lID0gZnVuY3Rpb24obmFtZSwgcmVsb2FkID0gZmFsc2UpIHtcclxuICAgIHRoZW1lQ29va2llW25hbWVdID0gZmFsc2U7XHJcbiAgICB0aGlzLnNhdmVUaGVtZURhdGEoKTtcclxuICAgIGNvbnN0IHRoZW1lID0gYmR0aGVtZXNbbmFtZV07XHJcbiAgICAkKGAjJHt0aGVtZS5pZH1gKS5yZW1vdmUoKTtcclxuICAgIGlmIChzZXR0aW5nc0Nvb2tpZVtcImZvcmstcHMtMlwiXSAmJiAhcmVsb2FkKSBVdGlscy5zaG93VG9hc3QoYCR7dGhlbWUubmFtZX0gdiR7dGhlbWUudmVyc2lvbn0gaGFzIGJlZW4gZGlzYWJsZWQuYCk7XHJcbn07XHJcblxyXG5UaGVtZU1vZHVsZS5wcm90b3R5cGUudG9nZ2xlVGhlbWUgPSBmdW5jdGlvbih0aGVtZSkge1xyXG4gICAgaWYgKHRoZW1lQ29va2llW3RoZW1lXSkgdGhpcy5kaXNhYmxlVGhlbWUodGhlbWUpO1xyXG4gICAgZWxzZSB0aGlzLmVuYWJsZVRoZW1lKHRoZW1lKTtcclxufTtcclxuXHJcblRoZW1lTW9kdWxlLnByb3RvdHlwZS5sb2FkVGhlbWUgPSBmdW5jdGlvbihmaWxlbmFtZSkge1xyXG4gICAgY29uc3QgZXJyb3IgPSBDb250ZW50TWFuYWdlci5sb2FkQ29udGVudChmaWxlbmFtZSwgXCJ0aGVtZVwiKTtcclxuICAgIGlmIChlcnJvcikge1xyXG4gICAgICAgIGlmIChzZXR0aW5nc0Nvb2tpZVtcImZvcmstcHMtMVwiXSkgVXRpbHMuc2hvd0NvbnRlbnRFcnJvcnMoe3RoZW1lczogW2Vycm9yXX0pO1xyXG4gICAgICAgIGlmIChzZXR0aW5nc0Nvb2tpZVtcImZvcmstcHMtMlwiXSkgVXRpbHMuc2hvd1RvYXN0KGAke2ZpbGVuYW1lfSBjb3VsZCBub3QgYmUgbG9hZGVkLiBJdCBtYXkgbm90IGhhdmUgYmVlbiBsb2FkZWQuYCwge3R5cGU6IFwiZXJyb3JcIn0pO1xyXG4gICAgICAgIHJldHVybiBVdGlscy5lcnIoXCJDb250ZW50TWFuYWdlclwiLCBgJHtmaWxlbmFtZX0gY291bGQgbm90IGJlIGxvYWRlZC5gLCBlcnJvcik7XHJcbiAgICB9XHJcbiAgICBjb25zdCB0aGVtZSA9IE9iamVjdC52YWx1ZXMoYmR0aGVtZXMpLmZpbmQocCA9PiBwLmZpbGVuYW1lID09IGZpbGVuYW1lKTtcclxuICAgIFV0aWxzLmxvZyhcIkNvbnRlbnRNYW5hZ2VyXCIsIGAke3RoZW1lLm5hbWV9IHYke3RoZW1lLnZlcnNpb259IHdhcyBsb2FkZWQuYCk7XHJcbiAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTJcIl0pIFV0aWxzLnNob3dUb2FzdChgJHt0aGVtZS5uYW1lfSB2JHt0aGVtZS52ZXJzaW9ufSB3YXMgbG9hZGVkLmAsIHt0eXBlOiBcInN1Y2Nlc3NcIn0pO1xyXG4gICAgQkRFdmVudHMuZGlzcGF0Y2goXCJ0aGVtZS1sb2FkZWRcIiwgdGhlbWUubmFtZSk7XHJcbn07XHJcblxyXG5UaGVtZU1vZHVsZS5wcm90b3R5cGUudW5sb2FkVGhlbWUgPSBmdW5jdGlvbihmaWxlbmFtZU9yTmFtZSkge1xyXG4gICAgY29uc3QgYmR0aGVtZSA9IE9iamVjdC52YWx1ZXMoYmR0aGVtZXMpLmZpbmQocCA9PiBwLmZpbGVuYW1lID09IGZpbGVuYW1lT3JOYW1lKSB8fCBiZHRoZW1lc1tmaWxlbmFtZU9yTmFtZV07XHJcbiAgICBpZiAoIWJkdGhlbWUpIHJldHVybjtcclxuICAgIGNvbnN0IHRoZW1lID0gYmR0aGVtZS5uYW1lO1xyXG4gICAgaWYgKHRoZW1lQ29va2llW3RoZW1lXSkgdGhpcy5kaXNhYmxlVGhlbWUodGhlbWUsIHRydWUpO1xyXG4gICAgY29uc3QgZXJyb3IgPSBDb250ZW50TWFuYWdlci51bmxvYWRDb250ZW50KGJkdGhlbWVzW3RoZW1lXS5maWxlbmFtZSwgXCJ0aGVtZVwiKTtcclxuICAgIGRlbGV0ZSBiZHRoZW1lc1t0aGVtZV07XHJcbiAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTFcIl0pIFV0aWxzLnNob3dDb250ZW50RXJyb3JzKHt0aGVtZXM6IFtlcnJvcl19KTtcclxuICAgICAgICBpZiAoc2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTJcIl0pIFV0aWxzLnNob3dUb2FzdChgJHt0aGVtZX0gY291bGQgbm90IGJlIHVubG9hZGVkLiBJdCBtYXkgaGF2ZSBub3QgYmVlbiBsb2FkZWQgeWV0LmAsIHt0eXBlOiBcImVycm9yXCJ9KTtcclxuICAgICAgICByZXR1cm4gVXRpbHMuZXJyKFwiQ29udGVudE1hbmFnZXJcIiwgYCR7dGhlbWV9IGNvdWxkIG5vdCBiZSB1bmxvYWRlZC4gSXQgbWF5IGhhdmUgbm90IGJlZW4gbG9hZGVkIHlldC5gLCBlcnJvcik7XHJcbiAgICB9XHJcbiAgICBVdGlscy5sb2coXCJDb250ZW50TWFuYWdlclwiLCBgJHt0aGVtZX0gd2FzIHVubG9hZGVkLmApO1xyXG4gICAgaWYgKHNldHRpbmdzQ29va2llW1wiZm9yay1wcy0yXCJdKSBVdGlscy5zaG93VG9hc3QoYCR7dGhlbWV9IHdhcyB1bmxvYWRlZC5gLCB7dHlwZTogXCJzdWNjZXNzXCJ9KTtcclxuICAgIEJERXZlbnRzLmRpc3BhdGNoKFwidGhlbWUtdW5sb2FkZWRcIiwgdGhlbWUpO1xyXG59O1xyXG5cclxuVGhlbWVNb2R1bGUucHJvdG90eXBlLnJlbG9hZFRoZW1lID0gZnVuY3Rpb24oZmlsZW5hbWVPck5hbWUpIHtcclxuICAgIGNvbnN0IGJkdGhlbWUgPSBPYmplY3QudmFsdWVzKGJkdGhlbWVzKS5maW5kKHAgPT4gcC5maWxlbmFtZSA9PSBmaWxlbmFtZU9yTmFtZSkgfHwgYmR0aGVtZXNbZmlsZW5hbWVPck5hbWVdO1xyXG4gICAgaWYgKCFiZHRoZW1lKSByZXR1cm4gdGhpcy5sb2FkVGhlbWUoZmlsZW5hbWVPck5hbWUpO1xyXG4gICAgY29uc3QgdGhlbWUgPSBiZHRoZW1lLm5hbWU7XHJcbiAgICBjb25zdCBlcnJvciA9IENvbnRlbnRNYW5hZ2VyLnJlbG9hZENvbnRlbnQoYmR0aGVtZXNbdGhlbWVdLmZpbGVuYW1lLCBcInRoZW1lXCIpO1xyXG4gICAgaWYgKHRoZW1lQ29va2llW3RoZW1lXSkgdGhpcy5kaXNhYmxlVGhlbWUodGhlbWUsIHRydWUpLCB0aGlzLmVuYWJsZVRoZW1lKHRoZW1lLCB0cnVlKTtcclxuICAgIGlmIChlcnJvcikge1xyXG4gICAgICAgIGlmIChzZXR0aW5nc0Nvb2tpZVtcImZvcmstcHMtMVwiXSkgVXRpbHMuc2hvd0NvbnRlbnRFcnJvcnMoe3RoZW1lczogW2Vycm9yXX0pO1xyXG4gICAgICAgIGlmIChzZXR0aW5nc0Nvb2tpZVtcImZvcmstcHMtMlwiXSkgVXRpbHMuc2hvd1RvYXN0KGAke3RoZW1lfSBjb3VsZCBub3QgYmUgcmVsb2FkZWQuYCwge3R5cGU6IFwiZXJyb3JcIn0pO1xyXG4gICAgICAgIHJldHVybiBVdGlscy5lcnIoXCJDb250ZW50TWFuYWdlclwiLCBgJHt0aGVtZX0gY291bGQgbm90IGJlIHJlbG9hZGVkLmAsIGVycm9yKTtcclxuICAgIH1cclxuICAgIFV0aWxzLmxvZyhcIkNvbnRlbnRNYW5hZ2VyXCIsIGAke3RoZW1lfSB2JHtiZHRoZW1lc1t0aGVtZV0udmVyc2lvbn0gd2FzIHJlbG9hZGVkLmApO1xyXG4gICAgaWYgKHNldHRpbmdzQ29va2llW1wiZm9yay1wcy0yXCJdKSBVdGlscy5zaG93VG9hc3QoYCR7dGhlbWV9IHYke2JkdGhlbWVzW3RoZW1lXS52ZXJzaW9ufSB3YXMgcmVsb2FkZWQuYCwge3R5cGU6IFwic3VjY2Vzc1wifSk7XHJcbiAgICBCREV2ZW50cy5kaXNwYXRjaChcInRoZW1lLXJlbG9hZGVkXCIsIHRoZW1lKTtcclxufTtcclxuXHJcblRoZW1lTW9kdWxlLnByb3RvdHlwZS51cGRhdGVUaGVtZUxpc3QgPSBmdW5jdGlvbigpIHtcclxuICAgIGNvbnN0IHJlc3VsdHMgPSBDb250ZW50TWFuYWdlci5sb2FkTmV3Q29udGVudChcInRoZW1lXCIpO1xyXG4gICAgZm9yIChjb25zdCBmaWxlbmFtZSBvZiByZXN1bHRzLmFkZGVkKSB0aGlzLmxvYWRUaGVtZShmaWxlbmFtZSk7XHJcbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgcmVzdWx0cy5yZW1vdmVkKSB0aGlzLnVubG9hZFRoZW1lKG5hbWUpO1xyXG59O1xyXG5cclxuVGhlbWVNb2R1bGUucHJvdG90eXBlLmxvYWRUaGVtZURhdGEgPSBmdW5jdGlvbigpIHtcclxuICAgIGNvbnN0IHNhdmVkID0gRGF0YVN0b3JlLmdldFNldHRpbmdHcm91cChcInRoZW1lc1wiKTtcclxuICAgIGlmIChzYXZlZCkge1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhlbWVDb29raWUsIHNhdmVkKTtcclxuICAgIH1cclxufTtcclxuXHJcblRoZW1lTW9kdWxlLnByb3RvdHlwZS5zYXZlVGhlbWVEYXRhID0gZnVuY3Rpb24gKCkge1xyXG4gICAgRGF0YVN0b3JlLnNldFNldHRpbmdHcm91cChcInRoZW1lc1wiLCB0aGVtZUNvb2tpZSk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgVGhlbWVNb2R1bGUoKTsiXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3V0aWxzLmpzPzAyNWUiXSwibmFtZXMiOlsiVXRpbHMiLCJzY3JlZW5XaWR0aCIsIk1hdGgiLCJtYXgiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImNsaWVudFdpZHRoIiwid2luZG93IiwiaW5uZXJXaWR0aCIsInNjcmVlbkhlaWdodCIsImNsaWVudEhlaWdodCIsImlubmVySGVpZ2h0Iiwic3RyaXBCT00iLCJjb250ZW50IiwiY2hhckNvZGVBdCIsInNsaWNlIiwiZ2V0VGV4dEFyZWEiLCIkIiwiaW5zZXJ0VGV4dCIsInRleHRhcmVhIiwidGV4dCIsImZvY3VzIiwic2VsZWN0aW9uU3RhcnQiLCJzZWxlY3Rpb25FbmQiLCJ2YWx1ZSIsImxlbmd0aCIsImV4ZWNDb21tYW5kIiwiaW5qZWN0Q3NzIiwidXJpIiwidHlwZSIsInJlbCIsImhyZWYiLCJhcHBlbmRUbyIsImluamVjdEpzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJzcmMiLCJvbmxvYWQiLCJlc2NhcGVJRCIsImlkIiwicmVwbGFjZSIsImxvZyIsIm1vZHVsZU5hbWUiLCJtZXNzYWdlIiwiY29uc29sZSIsIndhcm4iLCJlcnIiLCJlcnJvciIsImdyb3VwQ29sbGFwc2VkIiwic3RhY2siLCJncm91cEVuZCIsImVzY2FwZSIsInMiLCJ0ZXN0SlNPTiIsImRhdGEiLCJKU09OIiwicGFyc2UiLCJpc0VtcHR5Iiwib2JqIiwidW5kZWZpbmVkIiwiQXJyYXkiLCJpc0FycmF5Iiwia2V5IiwiaGFzT3duUHJvcGVydHkiLCJzdXBwcmVzc0Vycm9ycyIsIm1ldGhvZCIsInBhcmFtcyIsImUiLCJtb25rZXlQYXRjaCIsIndoYXQiLCJtZXRob2ROYW1lIiwib3B0aW9ucyIsImJlZm9yZSIsImFmdGVyIiwiaW5zdGVhZCIsIm9uY2UiLCJzaWxlbnQiLCJmb3JjZSIsImRpc3BsYXlOYW1lIiwibmFtZSIsImNvbnN0cnVjdG9yIiwib3JpZ01ldGhvZCIsImNhbmNlbCIsInRoaXNPYmplY3QiLCJtZXRob2RBcmd1bWVudHMiLCJhcmd1bWVudHMiLCJjYW5jZWxQYXRjaCIsIm9yaWdpbmFsTWV0aG9kIiwiY2FsbE9yaWdpbmFsTWV0aG9kIiwicmV0dXJuVmFsdWUiLCJhcHBseSIsInRlbXBSZXQiLCJPYmplY3QiLCJhc3NpZ24iLCJfX21vbmtleVBhdGNoZWQiLCJfX29yaWdpbmFsTWV0aG9kIiwidG9TdHJpbmciLCJvblJlbW92ZWQiLCJub2RlIiwiY2FsbGJhY2siLCJvYnNlcnZlciIsIk11dGF0aW9uT2JzZXJ2ZXIiLCJtdXRhdGlvbnMiLCJtIiwibXV0YXRpb24iLCJub2RlcyIsImZyb20iLCJyZW1vdmVkTm9kZXMiLCJkaXJlY3RNYXRjaCIsImluZGV4T2YiLCJwYXJlbnRNYXRjaCIsInNvbWUiLCJwYXJlbnQiLCJjb250YWlucyIsImRpc2Nvbm5lY3QiLCJvYnNlcnZlIiwiYm9keSIsInN1YnRyZWUiLCJjaGlsZExpc3QiLCJnZXROZXN0ZWRQcm9wIiwicGF0aCIsInNwbGl0IiwicmVkdWNlIiwicHJvcCIsInNob3dUb2FzdCIsInF1ZXJ5U2VsZWN0b3IiLCJ0b2FzdFdyYXBwZXIiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NMaXN0IiwiYWRkIiwiYm91bmRpbmdFbGVtZW50Iiwic3R5bGUiLCJzZXRQcm9wZXJ0eSIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImxlZnQiLCJvZmZzZXRXaWR0aCIsIm9mZnNldEhlaWdodCIsImFwcGVuZENoaWxkIiwiaWNvbiIsInRpbWVvdXQiLCJ0b2FzdEVsZW0iLCJpbm5lclRleHQiLCJzZXRUaW1lb3V0IiwicmVtb3ZlIiwicXVlcnlTZWxlY3RvckFsbCIsImFsZXJ0IiwidGl0bGUiLCJtb2RhbCIsImZpbmQiLCJvbiIsImFkZENsYXNzIiwic2hvd0NvbnRlbnRFcnJvcnMiLCJwbHVnaW5zIiwicGx1Z2luRXJyb3JzIiwidGhlbWVzIiwidGhlbWVFcnJvcnMiLCJnZW5lcmF0ZVRhYiIsImVycm9ycyIsImNvbnRhaW5lciIsImZpbGUiLCJhcHBlbmQiLCJwcmV2ZW50RGVmYXVsdCIsInRhYnMiLCJyZW1vdmVDbGFzcyIsInRhcmdldCIsImVtcHR5IiwiaW5kZXgiLCJjbGljayJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFlLE1BQU1BLEtBQU4sQ0FBWTtBQUN2QjtBQUNBLGFBQVdDLFdBQVgsR0FBeUI7QUFBRSxXQUFPQyxJQUFJLENBQUNDLEdBQUwsQ0FBU0MsUUFBUSxDQUFDQyxlQUFULENBQXlCQyxXQUFsQyxFQUErQ0MsTUFBTSxDQUFDQyxVQUFQLElBQXFCLENBQXBFLENBQVA7QUFBZ0Y7QUFDM0c7OztBQUNBLGFBQVdDLFlBQVgsR0FBMEI7QUFBRSxXQUFPUCxJQUFJLENBQUNDLEdBQUwsQ0FBU0MsUUFBUSxDQUFDQyxlQUFULENBQXlCSyxZQUFsQyxFQUFnREgsTUFBTSxDQUFDSSxXQUFQLElBQXNCLENBQXRFLENBQVA7QUFBa0Y7O0FBRTlHLFNBQU9DLFFBQVAsQ0FBZ0JDLE9BQWhCLEVBQXlCO0FBQ3JCLFFBQUlBLE9BQU8sQ0FBQ0MsVUFBUixDQUFtQixDQUFuQixNQUEwQixNQUE5QixFQUFzQztBQUNsQ0QsYUFBTyxHQUFHQSxPQUFPLENBQUNFLEtBQVIsQ0FBYyxDQUFkLENBQVY7QUFDSDs7QUFDRCxXQUFPRixPQUFQO0FBQ0g7O0FBRUQsU0FBT0csV0FBUCxHQUFxQjtBQUNqQixXQUFPQyxDQUFDLENBQUMsa0NBQUQsQ0FBUjtBQUNIOztBQUVELFNBQU9DLFVBQVAsQ0FBa0JDLFFBQWxCLEVBQTRCQyxJQUE1QixFQUFrQztBQUM5QkQsWUFBUSxDQUFDRSxLQUFUO0FBQ0FGLFlBQVEsQ0FBQ0csY0FBVCxHQUEwQixDQUExQjtBQUNBSCxZQUFRLENBQUNJLFlBQVQsR0FBd0JKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlQyxNQUF2QztBQUNBckIsWUFBUSxDQUFDc0IsV0FBVCxDQUFxQixZQUFyQixFQUFtQyxLQUFuQyxFQUEwQ04sSUFBMUM7QUFDSDs7QUFFRCxTQUFPTyxTQUFQLENBQWlCQyxHQUFqQixFQUFzQjtB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Q0FBNUIsRUFBK0JtQixLQUEvQixHQUF6QixLQUNLcEIsS0FBSyxDQUFDQyxJQUFOLENBQVcsZUFBWCxFQUE0QixDQUE1QixFQUErQm1CLEtBQS9CO0FBQ1I7O0FBM1NzQiIsImZpbGUiOiIuL3NyYy91dGlscy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIFV0aWxzIHtcclxuICAgIC8qKiBEb2N1bWVudC93aW5kb3cgd2lkdGggKi9cclxuICAgIHN0YXRpYyBnZXQgc2NyZWVuV2lkdGgoKSB7IHJldHVybiBNYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsIHdpbmRvdy5pbm5lcldpZHRoIHx8IDApOyB9XHJcbiAgICAvKiogRG9jdW1lbnQvd2luZG93IGhlaWdodCAqL1xyXG4gICAgc3RhdGljIGdldCBzY3JlZW5IZWlnaHQoKSB7IHJldHVybiBNYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LCB3aW5kb3cuaW5uZXJIZWlnaHQgfHwgMCk7IH1cclxuXHJcbiAgICBzdGF0aWMgc3RyaXBCT00oY29udGVudCkge1xyXG4gICAgICAgIGlmIChjb250ZW50LmNoYXJDb2RlQXQoMCkgPT09IDB4RkVGRikge1xyXG4gICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5zbGljZSgxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldFRleHRBcmVhKCkge1xyXG4gICAgICAgIHJldHVybiAkKFwiLmNoYW5uZWxUZXh0QXJlYS1yTnNJaEcgdGV4dGFyZWFcIik7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGluc2VydFRleHQodGV4dGFyZWEsIHRleHQpIHtcclxuICAgICAgICB0ZXh0YXJlYS5mb2N1cygpO1xyXG4gICAgICAgIHRleHRhcmVhLnNlbGVjdGlvblN0YXJ0ID0gMDtcclxuICAgICAgICB0ZXh0YXJlYS5zZWxlY3Rpb25FbmQgPSB0ZXh0YXJlYS52YWx1ZS5sZW5ndGg7XHJcbiAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJpbnNlcnRUZXh0XCIsIGZhbHNlLCB0ZXh0KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaW5qZWN0Q3NzKHVyaSkge1xyXG4gICAgICAgICQoXCI8bGluay8+XCIsIHtcclxuICAgICAgICAgICAgdHlwZTogXCJ0ZXh0L2Nzc1wiLFxyXG4gICAgICAgICAgICByZWw6IFwic3R5bGVzaGVldFwiLFxyXG4gICAgICAgICAgICBocmVmOiB1cmlcclxuICAgICAgICB9KS5hcHBlbmRUbygkKFwiaGVhZFwiKSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGluamVjdEpzKHVyaSkge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuICAgICAgICAgICAgJChcIjxzY3JpcHQvPlwiLCB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcInRleHQvamF2YXNjcmlwdFwiLFxyXG4gICAgICAgICAgICAgICAgc3JjOiB1cmksXHJcbiAgICAgICAgICAgICAgICBvbmxvYWQ6IHJlc29sdmVcclxuICAgICAgICAgICAgfSkuYXBwZW5kVG8oJChcImJvZHlcIikpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBlc2NhcGVJRChpZCkge1xyXG4gICAgICAgIHJldHVybiBpZC5yZXBsYWNlKC9eW15hLXpdK3xbXlxcdy1dKy9naSwgXCItXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBsb2cobW9kdWxlTmFtZSwgbWVzc2FnZSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGAlY1tCYW5kYWdlZEJEXSVjIFske21vZHVsZU5hbWV9XSVjICR7bWVzc2FnZX1gLCBcImNvbG9yOiAjM2E3MWMxOyBmb250LXdlaWdodDogNzAwO1wiLCBcImNvbG9yOiAjM2E3MWMxO1wiLCBcIlwiKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgd2Fybihtb2R1bGVOYW1lLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgY29uc29sZS53YXJuKGAlY1tCYW5kYWdlZEJEXSVjIFske21vZHVsZU5hbWV9XSVjICR7bWVzc2FnZX1gLCBcImNvbG9yOiAjRThBNDAwOyBmb250LXdlaWdodDogNzAwO1wiLCBcImNvbG9yOiAjRThBNDAwO1wiLCBcIlwiKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZXJyKG1vZHVsZU5hbWUsIG1lc3NhZ2UsIGVycm9yKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coYCVjW0JhbmRhZ2VkQkRdJWMgWyR7bW9kdWxlTmFtZX1dJWMgJHttZXNzYWdlfWAsIFwiY29sb3I6IHJlZDsgZm9udC13ZWlnaHQ6IDcwMDtcIiwgXCJjb2xvcjogcmVkO1wiLCBcIlwiKTtcclxuICAgICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICAgICAgY29uc29sZS5ncm91cENvbGxhcHNlZChcIiVjRXJyb3I6IFwiICsgZXJyb3IubWVzc2FnZSwgXCJjb2xvcjogcmVkO1wiKTtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvci5zdGFjayk7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGVzY2FwZShzKSB7XHJcbiAgICAgICAgcmV0dXJuIHMucmVwbGFjZSgvWy0vXFxcXF4kKis/LigpfFtcXF17fV0vZywgXCJcXFxcJCZcIik7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHRlc3RKU09OKGRhdGEpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc0VtcHR5KG9iaikge1xyXG4gICAgICAgIGlmIChvYmogPT0gbnVsbCB8fCBvYmogPT0gdW5kZWZpbmVkIHx8IG9iaiA9PSBcIlwiKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBpZiAodHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIpIHJldHVybiBmYWxzZTtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSByZXR1cm4gb2JqLmxlbmd0aCA9PSAwO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xyXG4gICAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHN1cHByZXNzRXJyb3JzKG1ldGhvZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHJldHVybiAoLi4ucGFyYW1zKSA9PiB7XHJcbiAgICAgICAgICAgIHRyeSB7IHJldHVybiBtZXRob2QoLi4ucGFyYW1zKTtcdH1cclxuICAgICAgICAgICAgY2F0Y2ggKGUpIHsgdGhpcy5lcnIoXCJTdXBwcmVzc2VkRXJyb3JcIiwgXCJFcnJvciBvY2N1cnJlZCBpbiBcIiArIG1lc3NhZ2UsIGUpOyB9XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgbW9ua2V5UGF0Y2god2hhdCwgbWV0aG9kTmFtZSwgb3B0aW9ucykge1xyXG4gICAgICAgIGNvbnN0IHtiZWZvcmUsIGFmdGVyLCBpbnN0ZWFkLCBvbmNlID0gZmFsc2UsIHNpbGVudCA9IGZhbHNlLCBmb3JjZSA9IGZhbHNlfSA9IG9wdGlvbnM7XHJcbiAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSBvcHRpb25zLmRpc3BsYXlOYW1lIHx8IHdoYXQuZGlzcGxheU5hbWUgfHwgd2hhdFttZXRob2ROYW1lXS5kaXNwbGF5TmFtZSB8fCB3aGF0Lm5hbWUgfHwgd2hhdC5jb25zdHJ1Y3Rvci5kaXNwbGF5TmFtZSB8fCB3aGF0LmNvbnN0cnVjdG9yLm5hbWU7XHJcbiAgICAgICAgaWYgKCFzaWxlbnQpIGNvbnNvbGUubG9nKFwicGF0Y2hcIiwgbWV0aG9kTmFtZSwgXCJvZlwiLCBkaXNwbGF5TmFtZSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29uc29sZVxyXG4gICAgICAgIGlmICghd2hhdFttZXRob2ROYW1lXSkge1xyXG4gICAgICAgICAgICBpZiAoZm9yY2UpIHdoYXRbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbigpIHt9O1xyXG4gICAgICAgICAgICBlbHNlIHJldHVybiBjb25zb2xlLmVycm9yKG1ldGhvZE5hbWUsIFwiZG9lcyBub3QgZXhpc3QgZm9yXCIsIGRpc3BsYXlOYW1lKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IG9yaWdNZXRob2QgPSB3aGF0W21ldGhvZE5hbWVdO1xyXG4gICAgICAgIGNvbnN0IGNhbmNlbCA9ICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKCFzaWxlbnQpIGNvbnNvbGUubG9nKFwidW5wYXRjaFwiLCBtZXRob2ROYW1lLCBcIm9mXCIsIGRpc3BsYXlOYW1lKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXHJcbiAgICAgICAgICAgIHdoYXRbbWV0aG9kTmFtZV0gPSBvcmlnTWV0aG9kO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgd2hhdFttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgdGhpc09iamVjdDogdGhpcyxcclxuICAgICAgICAgICAgICAgIG1ldGhvZEFyZ3VtZW50czogYXJndW1lbnRzLFxyXG4gICAgICAgICAgICAgICAgY2FuY2VsUGF0Y2g6IGNhbmNlbCxcclxuICAgICAgICAgICAgICAgIG9yaWdpbmFsTWV0aG9kOiBvcmlnTWV0aG9kLFxyXG4gICAgICAgICAgICAgICAgY2FsbE9yaWdpbmFsTWV0aG9kOiAoKSA9PiBkYXRhLnJldHVyblZhbHVlID0gZGF0YS5vcmlnaW5hbE1ldGhvZC5hcHBseShkYXRhLnRoaXNPYmplY3QsIGRhdGEubWV0aG9kQXJndW1lbnRzKVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBpZiAoaW5zdGVhZCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGVtcFJldCA9IFV0aWxzLnN1cHByZXNzRXJyb3JzKGluc3RlYWQsIFwiYGluc3RlYWRgIGNhbGxiYWNrIG9mIFwiICsgd2hhdFttZXRob2ROYW1lXS5kaXNwbGF5TmFtZSkoZGF0YSk7XHJcbiAgICAgICAgICAgICAgICBpZiAodGVtcFJldCAhPT0gdW5kZWZpbmVkKSBkYXRhLnJldHVyblZhbHVlID0gdGVtcFJldDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChiZWZvcmUpIFV0aWxzLnN1cHByZXNzRXJyb3JzKGJlZm9yZSwgXCJgYmVmb3JlYCBjYWxsYmFjayBvZiBcIiArIHdoYXRbbWV0aG9kTmFtZV0uZGlzcGxheU5hbWUpKGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgZGF0YS5jYWxsT3JpZ2luYWxNZXRob2QoKTtcclxuICAgICAgICAgICAgICAgIGlmIChhZnRlcikgVXRpbHMuc3VwcHJlc3NFcnJvcnMoYWZ0ZXIsIFwiYGFmdGVyYCBjYWxsYmFjayBvZiBcIiArIHdoYXRbbWV0aG9kTmFtZV0uZGlzcGxheU5hbWUpKGRhdGEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChvbmNlKSBjYW5jZWwoKTtcclxuICAgICAgICAgICAgcmV0dXJuIGRhdGEucmV0dXJuVmFsdWU7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHdoYXRbbWV0aG9kTmFtZV0sIG9yaWdNZXRob2QpO1xyXG4gICAgICAgIHdoYXRbbWV0aG9kTmFtZV0uX19tb25rZXlQYXRjaGVkID0gdHJ1ZTtcclxuICAgICAgICB3aGF0W21ldGhvZE5hbWVdLmRpc3BsYXlOYW1lID0gZGlzcGxheU5hbWU7XHJcbiAgICAgICAgaWYgKCF3aGF0W21ldGhvZE5hbWVdLl9fb3JpZ2luYWxNZXRob2QpIHtcclxuICAgICAgICAgICAgd2hhdFttZXRob2ROYW1lXS5fX29yaWdpbmFsTWV0aG9kID0gb3JpZ01ldGhvZDtcclxuICAgICAgICAgICAgd2hhdFttZXRob2ROYW1lXS50b1N0cmluZyA9IGZ1bmN0aW9uKCkge3JldHVybiBvcmlnTWV0aG9kLnRvU3RyaW5nKCk7fTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGNhbmNlbDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgb25SZW1vdmVkKG5vZGUsIGNhbGxiYWNrKSB7XHJcbiAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IG0gPSAwOyBtIDwgbXV0YXRpb25zLmxlbmd0aDsgbSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBtdXRhdGlvbiA9IG11dGF0aW9uc1ttXTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGVzID0gQXJyYXkuZnJvbShtdXRhdGlvbi5yZW1vdmVkTm9kZXMpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGlyZWN0TWF0Y2ggPSBub2Rlcy5pbmRleE9mKG5vZGUpID4gLTE7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnRNYXRjaCA9IG5vZGVzLnNvbWUocGFyZW50ID0+IHBhcmVudC5jb250YWlucyhub2RlKSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGlyZWN0TWF0Y2ggfHwgcGFyZW50TWF0Y2gpIHtcclxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHtzdWJ0cmVlOiB0cnVlLCBjaGlsZExpc3Q6IHRydWV9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0TmVzdGVkUHJvcChvYmosIHBhdGgpIHtcclxuICAgICAgICByZXR1cm4gcGF0aC5zcGxpdCgvXFxzP1xcLlxccz8vKS5yZWR1Y2UoZnVuY3Rpb24ob2JqLCBwcm9wKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBvYmogJiYgb2JqW3Byb3BdO1xyXG4gICAgICAgIH0sIG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIHNob3dzIGEgdG9hc3Qgc2ltaWxhciB0byBhbmRyb2lkIHRvd2FyZHMgdGhlIGJvdHRvbSBvZiB0aGUgc2NyZWVuLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjb250ZW50IFRoZSBzdHJpbmcgdG8gc2hvdyBpbiB0aGUgdG9hc3QuXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyBPcHRpb25zIG9iamVjdC4gT3B0aW9uYWwgcGFyYW1ldGVyLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMudHlwZSBDaGFuZ2VzIHRoZSB0eXBlIG9mIHRoZSB0b2FzdCBzdHlsaXN0aWNhbGx5IGFuZCBzZW1hbnRpY2FsbHkuIENob2ljZXM6IFwiXCIsIFwiaW5mb1wiLCBcInN1Y2Nlc3NcIiwgXCJkYW5nZXJcIi9cImVycm9yXCIsIFwid2FybmluZ1wiL1wid2FyblwiLiBEZWZhdWx0OiBcIlwiXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMuaWNvbiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGljb24gc2hvdWxkIHNob3cgY29ycmVzcG9uZGluZyB0byB0aGUgdHlwZS4gQSB0b2FzdCB3aXRob3V0IHR5cGUgd2lsbCBhbHdheXMgaGF2ZSBubyBpY29uLiBEZWZhdWx0OiB0cnVlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gb3B0aW9ucy50aW1lb3V0IEFkanVzdHMgdGhlIHRpbWUgKGluIG1zKSB0aGUgdG9hc3Qgc2hvdWxkIGJlIHNob3duIGZvciBiZWZvcmUgZGlzYXBwZWFyaW5nIGF1dG9tYXRpY2FsbHkuIERlZmF1bHQ6IDMwMDBcclxuICAgICAqL1xyXG4gICAgc3RhdGljIHNob3dUb2FzdChjb250ZW50LCBvcHRpb25zID0ge30pIHtcclxuICAgICAgICAvLyBpZiAoIWJkQ29uZmlnLmRlZmVyTG9hZGVkKSByZXR1cm47XHJcbiAgICAgICAgaWYgKCFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmJkLXRvYXN0c1wiKSkge1xyXG4gICAgICAgICAgICBjb25zdCB0b2FzdFdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gICAgICAgICAgICB0b2FzdFdyYXBwZXIuY2xhc3NMaXN0LmFkZChcImJkLXRvYXN0c1wiKTtcclxuICAgICAgICAgICAgY29uc3QgYm91bmRpbmdFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5jaGF0LTNiUnh4dSBmb3JtLCAjZnJpZW5kcywgLm5vQ2hhbm5lbC1aMURRSzcsIC5hY3Rpdml0eUZlZWQtMjhqZGU5XCIpO1xyXG4gICAgICAgICAgICB0b2FzdFdyYXBwZXIuc3R5bGUuc2V0UHJvcGVydHkoXCJsZWZ0XCIsIGJvdW5kaW5nRWxlbWVudCA/IGJvdW5kaW5nRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0ICsgXCJweFwiIDogXCIwcHhcIik7XHJcbiAgICAgICAgICAgIHRvYXN0V3JhcHBlci5zdHlsZS5zZXRQcm9wZXJ0eShcIndpZHRoXCIsIGJvdW5kaW5nRWxlbWVudCA/IGJvdW5kaW5nRWxlbWVudC5vZmZzZXRXaWR0aCArIFwicHhcIiA6IFwiMTAwJVwiKTtcclxuICAgICAgICAgICAgdG9hc3RXcmFwcGVyLnN0eWxlLnNldFByb3BlcnR5KFwiYm90dG9tXCIsIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmNoYXQtM2JSeHh1IGZvcm1cIikgPyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmNoYXQtM2JSeHh1IGZvcm1cIikub2Zmc2V0SGVpZ2h0IDogODApICsgXCJweFwiKTtcclxuICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5hcHAsIC5hcHAtMnJFb09wXCIpLmFwcGVuZENoaWxkKHRvYXN0V3JhcHBlcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHt0eXBlID0gXCJcIiwgaWNvbiA9IHRydWUsIHRpbWVvdXQgPSAzMDAwfSA9IG9wdGlvbnM7XHJcbiAgICAgICAgY29uc3QgdG9hc3RFbGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICAgICAgICB0b2FzdEVsZW0uY2xhc3NMaXN0LmFkZChcImJkLXRvYXN0XCIpO1xyXG4gICAgICAgIGlmICh0eXBlKSB0b2FzdEVsZW0uY2xhc3NMaXN0LmFkZChcInRvYXN0LVwiICsgdHlwZSk7XHJcbiAgICAgICAgaWYgKHR5cGUgJiYgaWNvbikgdG9hc3RFbGVtLmNsYXNzTGlzdC5hZGQoXCJpY29uXCIpO1xyXG4gICAgICAgIHRvYXN0RWxlbS5pbm5lclRleHQgPSBjb250ZW50O1xyXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuYmQtdG9hc3RzXCIpLmFwcGVuZENoaWxkKHRvYXN0RWxlbSk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRvYXN0RWxlbS5jbGFzc0xpc3QuYWRkKFwiY2xvc2luZ1wiKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0b2FzdEVsZW0ucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuYmQtdG9hc3RzIC5iZC10b2FzdFwiKS5sZW5ndGgpIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuYmQtdG9hc3RzXCIpLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICB9LCAzMDApO1xyXG4gICAgICAgIH0sIHRpbWVvdXQpO1xyXG4gICAgfVxyXG5cclxuICAgIGFsZXJ0KHRpdGxlLCBjb250ZW50KSB7XHJcbiAgICAgICAgY29uc3QgbW9kYWwgPSAkKGA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwtd3JhcHBlciB0aGVtZS1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZC1iYWNrZHJvcCBiYWNrZHJvcC0xd3JtS0JcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJkLW1vZGFsIG1vZGFsLTFVR2RuUlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJkLW1vZGFsLWlubmVyIGlubmVyLTFKZUdWY1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXIgaGVhZGVyLTFSX0FqRlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj4ke3RpdGxlfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZC1tb2RhbC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxlci13cmFwIGZhZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7Y29udGVudH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyIGZvb3Rlci0yeWZDZ1hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCI+T2theTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PmApO1xyXG4gICAgICAgIG1vZGFsLmZpbmQoXCIuZm9vdGVyIGJ1dHRvblwiKS5vbihcImNsaWNrXCIsICgpID0+IHtcclxuICAgICAgICAgICAgbW9kYWwuYWRkQ2xhc3MoXCJjbG9zaW5nXCIpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgbW9kYWwucmVtb3ZlKCk7IH0sIDMwMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbW9kYWwuZmluZChcIi5iZC1iYWNrZHJvcFwiKS5vbihcImNsaWNrXCIsICgpID0+IHtcclxuICAgICAgICAgICAgbW9kYWwuYWRkQ2xhc3MoXCJjbG9zaW5nXCIpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgbW9kYWwucmVtb3ZlKCk7IH0sIDMwMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbW9kYWwuYXBwZW5kVG8oXCIjYXBwLW1vdW50XCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dDb250ZW50RXJyb3JzKHtwbHVnaW5zOiBwbHVnaW5FcnJvcnMgPSBbXSwgdGhlbWVzOiB0aGVtZUVycm9ycyA9IFtdfSkge1xyXG4gICAgICAgIGlmICghcGx1Z2luRXJyb3JzIHx8ICF0aGVtZUVycm9ycykgcmV0dXJuO1xyXG4gICAgICAgIGlmICghcGx1Z2luRXJyb3JzLmxlbmd0aCAmJiAhdGhlbWVFcnJvcnMubGVuZ3RoKSByZXR1cm47XHJcbiAgICAgICAgY29uc3QgbW9kYWwgPSAkKGA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwtd3JhcHBlciB0aGVtZS1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZC1iYWNrZHJvcCBiYWNrZHJvcC0xd3JtS0JcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJkLW1vZGFsIGJkLWNvbnRlbnQtbW9kYWwgbW9kYWwtMVVHZG5SXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwtaW5uZXIgaW5uZXItMUplR1ZjXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlciBoZWFkZXItMVJfQWpGXCI+PGRpdiBjbGFzcz1cInRpdGxlXCI+Q29udGVudCBFcnJvcnM8L2Rpdj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWJhci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItYmFyIFRPUFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItYmFyLWl0ZW1cIj5QbHVnaW5zPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1iYXItaXRlbVwiPlRoZW1lczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIGNvbHVtbi1uYW1lXCI+TmFtZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBjb2x1bW4tbWVzc2FnZVwiPk1lc3NhZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gY29sdW1uLWVycm9yXCI+RXJyb3I8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxlci13cmFwIGZhZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxlclwiPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlciBmb290ZXItMnlmQ2dYXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiPk9rYXk8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gKTtcclxuICAgIFxyXG4gICAgICAgIGZ1bmN0aW9uIGdlbmVyYXRlVGFiKGVycm9ycykge1xyXG4gICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSAkKGA8ZGl2IGNsYXNzPVwiZXJyb3JzXCI+YCk7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgZXJyIG9mIGVycm9ycykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSAkKGA8ZGl2IGNsYXNzPVwiZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBjb2x1bW4tbmFtZVwiPiR7ZXJyLm5hbWUgPyBlcnIubmFtZSA6IGVyci5maWxlfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIGNvbHVtbi1tZXNzYWdlXCI+JHtlcnIubWVzc2FnZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBjb2x1bW4tZXJyb3JcIj48YSBjbGFzcz1cImVycm9yLWxpbmtcIiBocmVmPVwiXCI+JHtlcnIuZXJyb3IgPyBlcnIuZXJyb3IubWVzc2FnZSA6IFwiXCJ9PC9hPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmApO1xyXG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZChlcnJvcik7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyLmVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IuZmluZChcImFcIikub24oXCJjbGlja1wiLCAoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxzLmVycihcIkNvbnRlbnRNYW5hZ2VyXCIsIGBFcnJvciBkZXRhaWxzIGZvciAke2Vyci5uYW1lID8gZXJyLm5hbWUgOiBlcnIuZmlsZX0uYCwgZXJyLmVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gY29udGFpbmVyO1xyXG4gICAgICAgIH1cclxuICAgIFxyXG4gICAgICAgIGNvbnN0IHRhYnMgPSBbZ2VuZXJhdGVUYWIocGx1Z2luRXJyb3JzKSwgZ2VuZXJhdGVUYWIodGhlbWVFcnJvcnMpXTtcclxuICAgIFxyXG4gICAgICAgIG1vZGFsLmZpbmQoXCIudGFiLWJhci1pdGVtXCIpLm9uKFwiY2xpY2tcIiwgKGUpID0+IHtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBtb2RhbC5maW5kKFwiLnRhYi1iYXItaXRlbVwiKS5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xyXG4gICAgICAgICAgICAkKGUudGFyZ2V0KS5hZGRDbGFzcyhcInNlbGVjdGVkXCIpO1xyXG4gICAgICAgICAgICBtb2RhbC5maW5kKFwiLnNjcm9sbGVyXCIpLmVtcHR5KCkuYXBwZW5kKHRhYnNbJChlLnRhcmdldCkuaW5kZXgoKV0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgXHJcbiAgICAgICAgbW9kYWwuZmluZChcIi5mb290ZXIgYnV0dG9uXCIpLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgICBtb2RhbC5hZGRDbGFzcyhcImNsb3NpbmdcIik7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyBtb2RhbC5yZW1vdmUoKTsgfSwgMzAwKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBtb2RhbC5maW5kKFwiLmJkLWJhY2tkcm9wXCIpLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgICBtb2RhbC5hZGRDbGFzcyhcImNsb3NpbmdcIik7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyBtb2RhbC5yZW1vdmUoKTsgfSwgMzAwKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBtb2RhbC5hcHBlbmRUbyhcIiNhcHAtbW91bnRcIik7XHJcbiAgICAgICAgaWYgKHBsdWdpbkVycm9ycy5sZW5ndGgpIG1vZGFsLmZpbmQoXCIudGFiLWJhci1pdGVtXCIpWzBdLmNsaWNrKCk7XHJcbiAgICAgICAgZWxzZSBtb2RhbC5maW5kKFwiLnRhYi1iYXItaXRlbVwiKVsxXS5jbGljaygpO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3YyLmpzPzc5NmYiXSwibmFtZXMiOlsiVjIiLCJjb25zdHJ1Y3RvciIsImVkaXRvckRldGFjaGVkIiwiV2VicGFja01vZHVsZXMiLCJyZXEiLCJ3ZWJwYWNrSnNvbnAiLCJwdXNoIiwiX19leHRyYV9pZF9fIiwibW9kdWxlIiwiZXhwb3J0cyIsIm0iLCJjIiwiZmluZCIsImZpbHRlciIsImkiLCJoYXNPd25Qcm9wZXJ0eSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiZmluZEFsbCIsIm1vZHVsZXMiLCJmaW5kQnlVbmlxdWVQcm9wZXJ0aWVzIiwicHJvcE5hbWVzIiwiZXZlcnkiLCJwcm9wIiwidW5kZWZpbmVkIiwiZmluZEJ5UHJvdG90eXBlcyIsInByb3RvTmFtZXMiLCJwcm90b3R5cGUiLCJwcm90b1Byb3AiLCJmaW5kQnlEaXNwbGF5TmFtZSIsImRpc3BsYXlOYW1lIiwiaW50ZXJuYWwiLCJyZWFjdCIsInJlYWN0RG9tIiwiZ2V0SW50ZXJuYWxJbnN0YW5jZSIsImUiLCJPYmplY3QiLCJrZXlzIiwiayIsInN0YXJ0c1dpdGgiLCJpbml0aWFsaXplIiwiam9pbkJEMSIsIkludml0ZUFjdGlvbnMiLCJhY2NlcHRJbnZpdGVBbmRUcmFuc2l0aW9uVG9JbnZpdGVDaGFubmVsIiwibGVhdmVCRDEiLCJHdWlsZEFjdGlvbnMiLCJsZWF2ZUd1aWxkIiwiam9pbkJEMiIsImxlYXZlQkQyIiwicmVhY3RDb21wb25lbnQiLCJDb21wb25lbnQiLCJhbmNob3JDbGFzc2VzIiwiYW5jaG9yIiwiYW5jaG9yVW5kZXJsaW5lT25Ib3ZlciIsInNsYXRlRWRpdG9yQ2xhc3NlcyIsIm1lc3NhZ2VDbGFzc2VzIiwiZ3VpbGRDbGFzc2VzIiwiZ3VpbGRzV3JhcHBlciIsImd1aWxkcyIsInBpbGwiLCJhc3NpZ24iLCJNZXNzYWdlQ29udGVudENvbXBvbmVudCIsImRlZmF1bHRQcm9wcyIsIk1lc3NhZ2VDb21wb25lbnQiLCJUaW1lRm9ybWF0dGVyIiwiVG9vbHRpcFdyYXBwZXIiLCJOYXRpdmVNb2R1bGUiLCJUb29sdGlwcyIsImhpZGUiLCJzaG93Iiwic2VhcmNoIiwic3VibWl0IiwiYWN0aXZhdGVSYWdpbmdEZW1vbiIsImRpc21pc3MiLCJLZXlHZW5lcmF0b3IiLCJ0b1N0cmluZyIsInRlc3QiLCJMYXllclN0YWNrIiwiVXNlclN0b3JlIiwiQ2hhbm5lbFN0b3JlIiwiQ2hhbm5lbEFjdGlvbnMiLCJQcml2YXRlQ2hhbm5lbEFjdGlvbnMiLCJvcGVuRE0iLCJ1c2VySWQiLCJzZWxmSWQiLCJnZXRDdXJyZW50VXNlciIsImlkIiwicHJpdmF0ZUNoYW5uZWxJZCIsImdldERNRnJvbVVzZXJJZCIsInNlbGVjdFByaXZhdGVDaGFubmVsIiwib3BlblByaXZhdGVDaGFubmVsIiwicGFyc2VTZXR0aW5ncyIsImNhdCIsInNldHRpbmdzIiwicmVkdWNlIiwiYXJyIiwia2V5Iiwic2V0dGluZyIsImltcGxlbWVudGVkIiwiaGlkZGVuIiwidGV4dCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBRWUsbUVBQUksTUFBTUEsRUFBTixDQUFTO0FBRXhCQyxhQUFXLEdBQUc7QUFDVixTQUFLQyxjQUFMLEdBQXNCLEtBQXRCOztBQUNBLFNBQUtDLGNBQUwsR0FBc0IsQ0FBQyxNQUFNO0FBQ3pCLFlBQU1DLEdBQUcsR0FBR0MsWUFBWSxDQUFDQyxJQUFiLENBQWtCLENBQUMsRUFBRCxFQUFLO0FBQUNDLG9CQUFZLEVBQUUsQ0FBQ0MsTUFBRCxFQUFTQyxPQUFULEVBQWtCTCxHQUFsQixLQUEwQkksTUFBTSxDQUFDQyxPQUFQLEdBQWlCTDtBQUExRCxPQUFMLEVBQXFFLENBQUMsQ0FBQyxjQUFELENBQUQsQ0FBckUsQ0FBbEIsQ0FBWjtBQUNBLGFBQU9BLEdBQUcsQ0FBQ00sQ0FBSixDQUFNSCxZQUFiO0FBQ0EsYUFBT0gsR0FBRyxDQUFDTyxDQUFKLENBQU1KLFlBQWI7O0FBQ0EsWUFBTUssSUFBSSxHQUFJQyxNQUFELElBQVk7QUFDckIsYUFBSyxN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QUFDTCxLQU5NLEVBTUosRUFOSSxDQUFQO0FBT0g7O0FBckd1QixDQUFiLEVBQWYiLCJmaWxlIjoiLi9zcmMvdjIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3NldHRpbmdzfSBmcm9tIFwiLi8wZ2xvYmFsc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIFYyIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmVkaXRvckRldGFjaGVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5XZWJwYWNrTW9kdWxlcyA9ICgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlcSA9IHdlYnBhY2tKc29ucC5wdXNoKFtbXSwge19fZXh0cmFfaWRfXzogKG1vZHVsZSwgZXhwb3J0cywgcmVxKSA9PiBtb2R1bGUuZXhwb3J0cyA9IHJlcX0sIFtbXCJfX2V4dHJhX2lkX19cIl1dXSk7XHJcbiAgICAgICAgICAgIGRlbGV0ZSByZXEubS5fX2V4dHJhX2lkX187XHJcbiAgICAgICAgICAgIGRlbGV0ZSByZXEuYy5fX2V4dHJhX2lkX187XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbmQgPSAoZmlsdGVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGkgaW4gcmVxLmMpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVxLmMuaGFzT3duUHJvcGVydHkoaSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbSA9IHJlcS5jW2ldLmV4cG9ydHM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtICYmIG0uX19lc01vZHVsZSAmJiBtLmRlZmF1bHQgJiYgZmlsdGVyKG0uZGVmYXVsdCkpIHJldHVybiBtLmRlZmF1bHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtICYmIGZpbHRlcihtKSlcdHJldHVybiBtO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUud2FybihcIkNhbm5vdCBmaW5kIGxvYWRlZCBtb2R1bGUgaW4gY2FjaGVcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGZpbmRBbGwgPSAoZmlsdGVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBtb2R1bGVzID0gW107XHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGkgaW4gcmVxLmMpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVxLmMuaGFzT3duUHJvcGVydHkoaSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbSA9IHJlcS5jW2ldLmV4cG9ydHM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtICYmIG0uX19lc01vZHVsZSAmJiBtLmRlZmF1bHQgJiYgZmlsdGVyKG0uZGVmYXVsdCkpIG1vZHVsZXMucHVzaChtLmRlZmF1bHQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChtICYmIGZpbHRlcihtKSkgbW9kdWxlcy5wdXNoKG0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBtb2R1bGVzO1xyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgY29uc3QgZmluZEJ5VW5pcXVlUHJvcGVydGllcyA9IChwcm9wTmFtZXMpID0+IGZpbmQobW9kdWxlID0+IHByb3BOYW1lcy5ldmVyeShwcm9wID0+IG1vZHVsZVtwcm9wXSAhPT0gdW5kZWZpbmVkKSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbmRCeVByb3RvdHlwZXMgPSAocHJvdG9OYW1lcykgPT4gZmluZChtb2R1bGUgPT4gbW9kdWxlLnByb3RvdHlwZSAmJiBwcm90b05hbWVzLmV2ZXJ5KHByb3RvUHJvcCA9PiBtb2R1bGUucHJvdG90eXBlW3Byb3RvUHJvcF0gIT09IHVuZGVmaW5lZCkpO1xyXG4gICAgICAgICAgICBjb25zdCBmaW5kQnlEaXNwbGF5TmFtZSA9IChkaXNwbGF5TmFtZSkgPT4gZmluZChtb2R1bGUgPT4gbW9kdWxlLmRpc3BsYXlOYW1lID09PSBkaXNwbGF5TmFtZSk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4ge2ZpbmQsIGZpbmRBbGwsIGZpbmRCeVVuaXF1ZVByb3BlcnRpZXMsIGZpbmRCeVByb3RvdHlwZXMsIGZpbmRCeURpc3BsYXlOYW1lfTtcclxuICAgICAgICB9KSgpO1xyXG5cclxuICAgICAgICB0aGlzLmludGVybmFsID0ge1xyXG4gICAgICAgICAgICByZWFjdDogdGhpcy5XZWJwYWNrTW9kdWxlcy5maW5kQnlVbmlxdWVQcm9wZXJ0aWVzKFtcIkNvbXBvbmVudFwiLCBcIlB1cmVDb21wb25lbnRcIiwgXCJDaGlsZHJlblwiLCBcImNyZWF0ZUVsZW1lbnRcIiwgXCJjbG9uZUVsZW1lbnRcIl0pLFxyXG4gICAgICAgICAgICByZWFjdERvbTogdGhpcy5XZWJwYWNrTW9kdWxlcy5maW5kQnlVbmlxdWVQcm9wZXJ0aWVzKFtcImZpbmRET01Ob2RlXCJdKVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5nZXRJbnRlcm5hbEluc3RhbmNlID0gZSA9PiBlW09iamVjdC5rZXlzKGUpLmZpbmQoayA9PiBrLnN0YXJ0c1dpdGgoXCJfX3JlYWN0SW50ZXJuYWxJbnN0YW5jZVwiKSldO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRpYWxpemUoKSB7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgam9pbkJEMSgpIHt0aGlzLkludml0ZUFjdGlvbnMuYWNjZXB0SW52aXRlQW5kVHJhbnNpdGlvblRvSW52aXRlQ2hhbm5lbChcIjBUbWZvNVpiT1JDUnFiQWRcIik7fVxyXG4gICAgbGVhdmVCRDEoKSB7dGhpcy5HdWlsZEFjdGlvbnMubGVhdmVHdWlsZChcIjg2MDA0NzQ0OTY2OTE0MDQ4XCIpO31cclxuXHJcbiAgICBqb2luQkQyKCkge3RoaXMuSW52aXRlQWN0aW9ucy5hY2NlcHRJbnZpdGVBbmRUcmFuc2l0aW9uVG9JbnZpdGVDaGFubmVsKFwiMkhTY204alwiKTt9XHJcbiAgICBsZWF2ZUJEMigpIHt0aGlzLkd1aWxkQWN0aW9ucy5sZWF2ZUd1aWxkKFwiMjgwODA2NDcyOTI4MTk4NjU2XCIpO31cclxuXHJcbiAgICBnZXQgcmVhY3QoKSB7cmV0dXJuIHRoaXMuaW50ZXJuYWwucmVhY3Q7fVxyXG4gICAgZ2V0IHJlYWN0RG9tKCkge3JldHVybiB0aGlzLmludGVybmFsLnJlYWN0RG9tO31cclxuICAgIGdldCByZWFjdENvbXBvbmVudCgpIHtyZXR1cm4gdGhpcy5pbnRlcm5hbC5yZWFjdC5Db21wb25lbnQ7fVxyXG5cclxuICAgIGdldCBhbmNob3JDbGFzc2VzKCkge3JldHVybiB0aGlzLldlYnBhY2tNb2R1bGVzLmZpbmRCeVVuaXF1ZVByb3BlcnRpZXMoW1wiYW5jaG9yVW5kZXJsaW5lT25Ib3ZlclwiXSkgfHwge2FuY2hvcjogXCJhbmNob3ItM1otOEJiXCIsIGFuY2hvclVuZGVybGluZU9uSG92ZXI6IFwiYW5jaG9yVW5kZXJsaW5lT25Ib3Zlci0yRVNIUUJcIn07fVxyXG4gICAgZ2V0IHNsYXRlRWRpdG9yQ2xhc3NlcygpIHtyZXR1cm4gdGhpcy5XZWJwYWNrTW9kdWxlcy5maW5kQnlVbmlxdWVQcm9wZXJ0aWVzKFtcInNsYXRlVGV4dEFyZWFcIl0pO31cclxuICAgIGdldCBtZXNzYWdlQ2xhc3NlcygpIHtyZXR1cm4gdGhpcy5XZWJwYWNrTW9kdWxlcy5maW5kQnlVbmlxdWVQcm9wZXJ0aWVzKFtcIm1lc3NhZ2VcIiwgXCJjb250YWluZXJDb3p5XCJdKTt9XHJcbiAgICBnZXQgZ3VpbGRDbGFzc2VzKCkge1xyXG5cdFx0Y29uc3QgZ3VpbGRzV3JhcHBlciA9IHRoaXMuV2VicGFja01vZHVsZXMuZmluZEJ5VW5pcXVlUHJvcGVydGllcyhbXCJ3cmFwcGVyXCIsIFwidW5yZWFkTWVudGlvbnNCYXJcIl0pO1xyXG4gICAgICAgIGNvbnN0IGd1aWxkcyA9IHRoaXMuV2VicGFja01vZHVsZXMuZmluZEJ5VW5pcXVlUHJvcGVydGllcyhbXCJndWlsZHNFcnJvclwiLCBcInNlbGVjdGVkXCJdKTtcclxuICAgICAgICBjb25zdCBwaWxsID0gdGhpcy5XZWJwYWNrTW9kdWxlcy5maW5kQnlVbmlxdWVQcm9wZXJ0aWVzKFtcImJsb2JDb250YWluZXJcIl0pO1xyXG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBndWlsZHNXcmFwcGVyLCBndWlsZHMsIHBpbGwpO1xyXG5cdH1cclxuXHJcbiAgICBnZXQgTWVzc2FnZUNvbnRlbnRDb21wb25lbnQoKSB7cmV0dXJuIHRoaXMuV2VicGFja01vZHVsZXMuZmluZChtID0+IG0uZGVmYXVsdFByb3BzICYmIG0uZGVmYXVsdFByb3BzLmhhc093blByb3BlcnR5KFwiZGlzYWJsZUJ1dHRvbnNcIikpO31cclxuICAgIGdldCBNZXNzYWdlQ29tcG9uZW50KCkge3JldHVybiB0aGlzLldlYnBhY2tNb2R1bGVzLmZpbmQobSA9PiBtLmRlZmF1bHQgJiYgbS5kZWZhdWx0LmRpc3BsYXlOYW1lICYmIG0uZGVmYXVsdC5kaXNwbGF5TmFtZSA9PSBcIk1lc3NhZ2VcIik7fVxyXG4gICAgZ2V0IFRpbWVGb3JtYXR0ZXIoKSB7cmV0dXJuIHRoaXMuV2VicGFja01vZHVsZXMuZmluZEJ5VW5pcXVlUHJvcGVydGllcyhbXCJkYXRlRm9ybWF0XCJdKTt9XHJcbiAgICBnZXQgVG9vbHRpcFdyYXBwZXIoKSB7cmV0dXJuIHRoaXMuV2VicGFja01vZHVsZXMuZmluZEJ5RGlzcGxheU5hbWUoXCJUb29sdGlwXCIpO31cclxuICAgIGdldCBOYXRpdmVNb2R1bGUoKSB7cmV0dXJuIHRoaXMuV2VicGFja01vZHVsZXMuZmluZEJ5VW5pcXVlUHJvcGVydGllcyhbXCJzZXRCYWRnZVwiXSk7fVxyXG4gICAgZ2V0IEludml0ZUFjdGlvbnMoKSB7cmV0dXJuIHRoaXMuV2VicGFja01vZHVsZXMuZmluZEJ5VW5pcXVlUHJvcGVydGllcyhbXCJhY2NlcHRJbnZpdGVcIl0pO31cclxuICAgIGdldCBHdWlsZEFjdGlvbnMoKSB7cmV0dXJuIHRoaXMuV2VicGFja01vZHVsZXMuZmluZEJ5VW5pcXVlUHJvcGVydGllcyhbXCJsZWF2ZUd1aWxkXCJdKTt9XHJcbiAgICBnZXQgVG9vbHRpcHMoKSB7cmV0dXJuIHRoaXMuV2VicGFja01vZHVsZXMuZmluZChtID0+IG0uaGlkZSAmJiBtLnNob3cgJiYgIW0uc2VhcmNoICYmICFtLnN1Ym1pdCAmJiAhbS5zZWFyY2ggJiYgIW0uYWN0aXZhdGVSYWdpbmdEZW1vbiAmJiAhbS5kaXNtaXNzKTt9XHJcbiAgICBnZXQgS2V5R2VuZXJhdG9yKCkge3JldHVybiB0aGlzLldlYnBhY2tNb2R1bGVzLmZpbmQobSA9PiBtLnRvU3RyaW5nICYmIC9cImJpbmFyeVwiLy50ZXN0KG0udG9TdHJpbmcoKSkpO31cclxuICAgIGdldCBMYXllclN0YWNrKCkge3JldHVybiB0aGlzLldlYnBhY2tNb2R1bGVzLmZpbmRCeVVuaXF1ZVByb3BlcnRpZXMoW1wicG9wTGF5ZXJcIl0pO31cclxuICAgIGdldCBVc2VyU3RvcmUoKSB7cmV0dXJuIHRoaXMuV2VicGFja01vZHVsZXMuZmluZEJ5VW5pcXVlUHJvcGVydGllcyhbXCJnZXRDdXJyZW50VXNlclwiXSk7fVxyXG4gICAgZ2V0IENoYW5uZWxTdG9yZSgpIHtyZXR1cm4gdGhpcy5XZWJwYWNrTW9kdWxlcy5maW5kQnlVbmlxdWVQcm9wZXJ0aWVzKFtcImdldENoYW5uZWxcIl0pO31cclxuICAgIGdldCBDaGFubmVsQWN0aW9ucygpIHtyZXR1cm4gdGhpcy5XZWJwYWNrTW9kdWxlcy5maW5kQnlVbmlxdWVQcm9wZXJ0aWVzKFtcIm9wZW5Qcml2YXRlQ2hhbm5lbFwiXSk7fVxyXG4gICAgZ2V0IFByaXZhdGVDaGFubmVsQWN0aW9ucygpIHtyZXR1cm4gdGhpcy5XZWJwYWNrTW9kdWxlcy5maW5kQnlVbmlxdWVQcm9wZXJ0aWVzKFtcInNlbGVjdFByaXZhdGVDaGFubmVsXCJdKTt9XHJcblxyXG4gICAgb3BlbkRNKHVzZXJJZCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGZJZCA9IHRoaXMuVXNlclN0b3JlLmdldEN1cnJlbnRVc2VyKCkuaWQ7XHJcbiAgICAgICAgaWYgKHNlbGZJZCA9PSB1c2VySWQpIHJldHVybjtcclxuICAgICAgICBjb25zdCBwcml2YXRlQ2hhbm5lbElkID0gdGhpcy5DaGFubmVsU3RvcmUuZ2V0RE1Gcm9tVXNlcklkKHVzZXJJZCk7XHJcbiAgICAgICAgaWYgKHByaXZhdGVDaGFubmVsSWQpIHJldHVybiB0aGlzLlByaXZhdGVDaGFubmVsQWN0aW9ucy5zZWxlY3RQcml2YXRlQ2hhbm5lbChwcml2YXRlQ2hhbm5lbElkKTtcclxuICAgICAgICB0aGlzLkNoYW5uZWxBY3Rpb25zLm9wZW5Qcml2YXRlQ2hhbm5lbChzZWxmSWQsIHVzZXJJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcGFyc2VTZXR0aW5ncyhjYXQpIHtcclxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoc2V0dGluZ3MpLnJlZHVjZSgoYXJyLCBrZXkpID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc2V0dGluZyA9IHNldHRpbmdzW2tleV07XHJcbiAgICAgICAgICAgIGlmIChzZXR0aW5nLmNhdCA9PT0gY2F0ICYmIHNldHRpbmcuaW1wbGVtZW50ZWQgJiYgIXNldHRpbmcuaGlkZGVuKSB7XHJcbiAgICAgICAgICAgICAgICBzZXR0aW5nLnRleHQgPSBrZXk7XHJcbiAgICAgICAgICAgICAgICBhcnIucHVzaChzZXR0aW5nKTtcclxuICAgICAgICAgICAgfSByZXR1cm4gYXJyO1xyXG4gICAgICAgIH0sIFtdKTtcclxuICAgIH1cclxuXHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3ZvaWNlTW9kZS5qcz8yZDBjIl0sIm5hbWVzIjpbIlZvaWNlTW9kZSIsInByb3RvdHlwZSIsImVuYWJsZSIsIiQiLCJmaXJzdCIsImNzcyIsImRpc2FibGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUEsU0FBU0EsU0FBVCxHQUFxQixDQUVwQjs7QUFFREEsU0FBUyxDQUFDQyxTQUFWLENBQW9CQyxNQUFwQixHQUE2QixZQUFZO0FBQ3JDQyxHQUFDLENBQUMsNkJBQUQsQ0FBRCxDQUFpQ0MsS0FBakMsR0FBeUNDLEdBQXpDLENBQTZDLFNBQTdDLEVBQXdELE1BQXhEO0FBQ0FGLEdBQUMsQ0FBQyxpQ0FBRCxDQUFELENBQXFDQyxLQUFyQyxHQUE2Q0MsR0FBN0MsQ0FBaUQsU0FBakQsRUFBNEQsTUFBNUQ7QUFDQUYsR0FBQyxDQUFDLGlDQUFELENBQUQsQ0FBcUNDLEtBQXJDLEdBQTZDQyxHQUE3QyxDQUFpRCxVQUFqRCxFQUE2RCxRQUE3RDtBQUNBRixHQUFDLENBQUMsY0FBRCxDQUFELENBQWtCQyxLQUFsQixHQUEwQkMsR0FBMUIsQ0FBOEIsWUFBOUIsRUFBNEMsUUFBNUMsRUFBc0RBLEdBQXRELENBQTBELFdBQTFELEVBQXVFLEtBQXZFO0FBQ0FGLEdBQUMsQ0FBQyw4QkFBRCxDQUFELENBQWtDQyxLQUFsQyxHQUEwQ0MsR0FBMUMsQ0FBOEMsV0FBOUMsRUFBMkQsUUFBM0Q7QUFDQUYsR0FBQyxDQUFDLGtDQUFELENBQUQsQ0FBc0NDLEtBQXRDLEdBQThDQyxHQUE5QyxDQUFrRCxZQUFsRCxFQUFnRSxRQUFoRTtBQUNILENBUEQ7O0FBU0FMLFNBQVMsQ0FBQ0MsU0FBVixDQUFvQkssT0FBcEIsR0FBOEIsWUFBWTtBQUN0Q0gsR0FBQyxDQUFDLDZCQUFELENBQUQsQ0FBaUNDLEtBQWpDLEdBQXlDQyxHQUF6QyxDQUE2QyxTQUE3QyxFQUF3RCxFQUF4RDtBQUNBRixHQUFDLENBQUMsaUNBQUQsQ0FBRCxDQUFxQ0MsS0FBckMsR0FBNkNDLEdBQTdDLENBQWlELFNBQWpELEVBQTRELEVBQTVEO0FBQ0FGLEdBQUMsQ0FBQyxpQ0FBRCxDQUFELENBQXFDQyxLQUFyQyxHQUE2Q0MsR0FBN0MsQ0FBaUQsVUFBakQsRUFBNkQsRUFBN0Q7QUFDQUYsR0FBQyxDQUFDLGNBQUQsQ0FBRCxDQUFrQkMsS0FBbEIsR0FBMEJDLEdBQTFCLENBQThCLFlBQTlCLEVBQTRDLEVBQTVDLEVBQWdEQSxHQUFoRCxDQUFvRCxXQUFwRCxFQUFpRSxFQUFqRTtBQUNBRixHQUFDLENBQUMsOEJBQUQsQ0FBRCxDQUFrQ0MsS0FBbEMsR0FBMENDLEdBQTFDLENBQThDLFdBQTlDLEVBQTJELEVBQTNEO0FBQ0FGLEdBQUMsQ0FBQyxrQ0FBRCxDQUFELENBQXNDQyxLQUF0QyxHQUE4Q0MsR0FBOUMsQ0FBa0QsWUFBbEQsRUFBZ0UsRUFBaEU7QUFDSCxDQVBEOztBQVNlLG1FQUFJTCxTQUFKLEVBQWYiLCJmaWxlIjoiLi9zcmMvdm9pY2VNb2RlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gVm9pY2VNb2RlKCkge1xyXG5cclxufVxyXG5cclxuVm9pY2VNb2RlLnByb3RvdHlwZS5lbmFibGUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAkKFwiLnNjcm9sbGVyLmd1aWxkLWNoYW5uZWxzIHVsXCIpLmZpcnN0KCkuY3NzKFwiZGlzcGxheVwiLCBcIm5vbmVcIik7XHJcbiAgICAkKFwiLnNjcm9sbGVyLmd1aWxkLWNoYW5uZWxzIGhlYWRlclwiKS5maXJzdCgpLmNzcyhcImRpc3BsYXlcIiwgXCJub25lXCIpO1xyXG4gICAgJChcIi5hcHAuZmxleC12ZXJ0aWNhbCwgLmFwcC0yckVvT3BcIikuZmlyc3QoKS5jc3MoXCJvdmVyZmxvd1wiLCBcImhpZGRlblwiKTtcclxuICAgICQoXCIuY2hhdC0zYlJ4eHVcIikuZmlyc3QoKS5jc3MoXCJ2aXNpYmlsaXR5XCIsIFwiaGlkZGVuXCIpLmNzcyhcIm1pbi13aWR0aFwiLCBcIjBweFwiKTtcclxuICAgICQoXCIuZmxleC12ZXJ0aWNhbC5jaGFubmVscy13cmFwXCIpLmZpcnN0KCkuY3NzKFwiZmxleC1ncm93XCIsIFwiMTAwMDAwXCIpO1xyXG4gICAgJChcIi5ndWlsZC1oZWFkZXIgLmJ0bi5idG4taGFtYnVyZ2VyXCIpLmZpcnN0KCkuY3NzKFwidmlzaWJpbGl0eVwiLCBcImhpZGRlblwiKTtcclxufTtcclxuXHJcblZvaWNlTW9kZS5wcm90b3R5cGUuZGlzYWJsZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICQoXCIuc2Nyb2xsZXIuZ3VpbGQtY2hhbm5lbHMgdWxcIikuZmlyc3QoKS5jc3MoXCJkaXNwbGF5XCIsIFwiXCIpO1xyXG4gICAgJChcIi5zY3JvbGxlci5ndWlsZC1jaGFubmVscyBoZWFkZXJcIikuZmlyc3QoKS5jc3MoXCJkaXNwbGF5XCIsIFwiXCIpO1xyXG4gICAgJChcIi5hcHAuZmxleC12ZXJ0aWNhbCwgLmFwcC0yckVvT3BcIikuZmlyc3QoKS5jc3MoXCJvdmVyZmxvd1wiLCBcIlwiKTtcclxuICAgICQoXCIuY2hhdC0zYlJ4eHVcIikuZmlyc3QoKS5jc3MoXCJ2aXNpYmlsaXR5XCIsIFwiXCIpLmNzcyhcIm1pbi13aWR0aFwiLCBcIlwiKTtcclxuICAgICQoXCIuZmxleC12ZXJ0aWNhbC5jaGFubmVscy13cmFwXCIpLmZpcnN0KCkuY3NzKFwiZmxleC1ncm93XCIsIFwiXCIpO1xyXG4gICAgJChcIi5ndWlsZC1oZWFkZXIgLmJ0bi5idG4taGFtYnVyZ2VyXCIpLmZpcnN0KCkuY3NzKFwidmlzaWJpbGl0eVwiLCBcIlwiKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBWb2ljZU1vZGUoKTsiXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3dlYnBhY2tNb2R1bGVzLmpzPzU5ZGIiXSwibmFtZXMiOlsicmVxIiwid2VicGFja0pzb25wIiwicHVzaCIsIl9fZXh0cmFfaWRfXyIsIm1vZHVsZSIsImV4cG9ydHMiLCJtIiwiYyIsImZpbmQiLCJmaWx0ZXIiLCJpIiwiaGFzT3duUHJvcGVydHkiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImZpbmRBbGwiLCJtb2R1bGVzIiwiZmluZEJ5UHJvcHMiLCJwcm9wTmFtZXMiLCJldmVyeSIsInByb3AiLCJ1bmRlZmluZWQiLCJmaW5kQnlQcm90b3R5cGVzIiwicHJvdG9OYW1lcyIsInByb3RvdHlwZSIsInByb3RvUHJvcCIsImZpbmRCeURpc3BsYXlOYW1lIiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUEsTUFBTUEsR0FBRyxHQUFHQyxZQUFZLENBQUNDLElBQWIsQ0FBa0IsQ0FBQyxFQUFELEVBQUs7QUFBQ0MsY0FBWSxFQUFFLENBQUNDLE1BQUQsRUFBU0MsT0FBVCxFQUFrQkwsR0FBbEIsS0FBMEJJLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkw7QUFBMUQsQ0FBTCxFQUFxRSxDQUFDLENBQUMsY0FBRCxDQUFELENBQXJFLENBQWxCLENBQVo7QUFDQSxPQUFPQSxHQUFHLENBQUNNLENBQUosQ0FBTUgsWUFBYjtBQUNBLE9BQU9ILEdBQUcsQ0FBQ08sQ0FBSixDQUFNSixZQUFiOztBQUNBLE1BQU1LLElBQUksR0FBSUMsTUFBRCxJQUFZO0FBQ3JCLE9BQUssTUFBTUMsQ0FBWCxJQUFnQlYsR0FBRyxDQUFDTyxDQUFwQixFQUF1QjtBQUNuQixRQUFJUCxHQUFHLENBQUNPLENBQUosQ0FBTUksY0FBTixDQUFxQkQsQ0FBckIsQ0FBSixFQUE2QjtBQUN6QixZQUFNSixDQUFDLEdBQUdOLEdBQUcsQ0FBQ08sQ0FBSixDQUFNRyxDQUFOLEVBQVNMLE9BQW5CO0FBQ0EsVUFBSUMsQ0FBQyxJQUFJQSxDQUFDLENBQUNNLFVBQVAsSUFBcUJOLENBQUMsQ0FBQ08sT0FBdkIsSUFBa0NKLE1BQU0sQ0FBQ0gsQ0FBQyxDQUFDTyxPQUFILENBQTVDLEVBQXlELE9BQU9QLENBQUMsQ0FBQ08sT0FBVDtBQUN6RCxVQUFJUCxDQUFDLElBQUlHLE1BQU0sQ0FBQ0gsQ0FBRCxDQUFmLEVBQW9CLE9BQU9BLENBQVA7QUFDdkI7QUFDSixHQVBvQixDQVFyQjs7O0FBQ0EsU0FBTyxJQUFQO0FBQ0gsQ0FWRDs7QUFZQSxNQUFNUSxPQUFPLEdBQUlMLE1BQUQsSUFBWTtBQUN4QixRQUFNTSxPQUFPLEdBQUcsRUFBaEI7O0FBQ0EsT0FBSyxNQUFNTCxDQUFYLElBQWdCVixHQUFHLENBQUNPLENBQXBCLEVBQXVCO0FBQ25CLFFBQUlQLEdBQUcsQ0FBQ08sQ0FBSixDQUFNSSxjQUFOLENBQXFCRCxDQUFyQixDQUFKLEVBQTZCO0FBQ3pCLFlBQU1KLENBQUMsR0FBR04sR0FBRyxDQUFDTyxDQUFKLENBQU1HLENBQU4sRUFBU0wsT0FBbkI7QUFDQSxVQUFJQyxDQUFDLElBQUlBLENBQUMsQ0FBQ00sVUFBUCxJQUFxQk4sQ0FBQyxDQUFDTyxPQUF2QixJQUFrQ0osTUFBTSxDQUFDSCxDQUFDLENBQUNPLE9BQUgsQ0FBNUMsRUFBeURFLE9BQU8sQ0FBQ2IsSUFBUixDQUFhSSxDQUFDLENBQUNPLE9BQWYsRUFBekQsS0FDSyxJQUFJUCxDQUFDLElBQUlHLE1BQU0sQ0FBQ0gsQ0FBRCxDQUFmLEVBQW9CUyxPQUFPLENBQUNiLElBQVIsQ0FBYUksQ0FBYjtBQUM1QjtBQUNKOztBQUNELFNBQU9TLE9BQVA7QUFDSCxDQVZEOztBQVlBLE1BQU1DLFdBQVcsR0FBRyxDQUFDLEdBQUdDLFNBQUosS0FBa0JULElBQUksQ0FBQ0osTUFBTSxJQUFJYSxTQUFTLENBQUNDLEtBQVYsQ0FBZ0JDLElBQUksSUFBSWYsTUFBTSxDQUFDZSxJQUFELENBQU4sS0FBaUJDLFNBQXpDLENBQVgsQ0FBMUM7O0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsQ0FBQyxHQUFHQyxVQUFKLEtBQW1CZCxJQUFJLENBQUNKLE1BQU0sSUFBSUEsTUFBTSxDQUFDbUIsU0FBUCxJQUFvQkQsVUFBVSxDQUFDSixLQUFYLENBQWlCTSxTQUFTLElBQUlwQixNQUFNLENBQUNtQixTQUFQLENBQWlCQyxTQUFqQixNQUFnQ0osU0FBOUQsQ0FBL0IsQ0FBaEQ7O0FBQ0EsTUFBTUssaUJBQWlCLEdBQUlDLFdBQUQsSUFBaUJsQixJQUFJLENBQUNKLE1BQU0sSUFBSUEsTUFBTSxDQUFDc0IsV0FBUCxLQUF1QkEsV0FBbEMsQ0FBL0M7O0FBRWU7QUFBQ2xCLE1BQUQ7QUFBT00sU0FBUDtBQUFnQkUsYUFBaEI7QUFBNkJLLGtCQUE3QjtBQUErQ0k7QUFBL0MsQ0FBZiIsImZpbGUiOiIuL3NyYy93ZWJwYWNrTW9kdWxlcy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHJlcSA9IHdlYnBhY2tKc29ucC5wdXNoKFtbXSwge19fZXh0cmFfaWRfXzogKG1vZHVsZSwgZXhwb3J0cywgcmVxKSA9PiBtb2R1bGUuZXhwb3J0cyA9IHJlcX0sIFtbXCJfX2V4dHJhX2lkX19cIl1dXSk7XHJcbmRlbGV0ZSByZXEubS5fX2V4dHJhX2lkX187XHJcbmRlbGV0ZSByZXEuYy5fX2V4dHJhX2lkX187XHJcbmNvbnN0IGZpbmQgPSAoZmlsdGVyKSA9PiB7XHJcbiAgICBmb3IgKGNvbnN0IGkgaW4gcmVxLmMpIHtcclxuICAgICAgICBpZiAocmVxLmMuaGFzT3duUHJvcGVydHkoaSkpIHtcclxuICAgICAgICAgICAgY29uc3QgbSA9IHJlcS5jW2ldLmV4cG9ydHM7XHJcbiAgICAgICAgICAgIGlmIChtICYmIG0uX19lc01vZHVsZSAmJiBtLmRlZmF1bHQgJiYgZmlsdGVyKG0uZGVmYXVsdCkpIHJldHVybiBtLmRlZmF1bHQ7XHJcbiAgICAgICAgICAgIGlmIChtICYmIGZpbHRlcihtKSlcdHJldHVybiBtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIGNvbnNvbGUud2FybihcIkNhbm5vdCBmaW5kIGxvYWRlZCBtb2R1bGUgaW4gY2FjaGVcIik7XHJcbiAgICByZXR1cm4gbnVsbDtcclxufTtcclxuXHJcbmNvbnN0IGZpbmRBbGwgPSAoZmlsdGVyKSA9PiB7XHJcbiAgICBjb25zdCBtb2R1bGVzID0gW107XHJcbiAgICBmb3IgKGNvbnN0IGkgaW4gcmVxLmMpIHtcclxuICAgICAgICBpZiAocmVxLmMuaGFzT3duUHJvcGVydHkoaSkpIHtcclxuICAgICAgICAgICAgY29uc3QgbSA9IHJlcS5jW2ldLmV4cG9ydHM7XHJcbiAgICAgICAgICAgIGlmIChtICYmIG0uX19lc01vZHVsZSAmJiBtLmRlZmF1bHQgJiYgZmlsdGVyKG0uZGVmYXVsdCkpIG1vZHVsZXMucHVzaChtLmRlZmF1bHQpO1xyXG4gICAgICAgICAgICBlbHNlIGlmIChtICYmIGZpbHRlcihtKSkgbW9kdWxlcy5wdXNoKG0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBtb2R1bGVzO1xyXG59O1xyXG5cclxuY29uc3QgZmluZEJ5UHJvcHMgPSAoLi4ucHJvcE5hbWVzKSA9PiBmaW5kKG1vZHVsZSA9PiBwcm9wTmFtZXMuZXZlcnkocHJvcCA9PiBtb2R1bGVbcHJvcF0gIT09IHVuZGVmaW5lZCkpO1xyXG5jb25zdCBmaW5kQnlQcm90b3R5cGVzID0gKC4uLnByb3RvTmFtZXMpID0+IGZpbmQobW9kdWxlID0+IG1vZHVsZS5wcm90b3R5cGUgJiYgcHJvdG9OYW1lcy5ldmVyeShwcm90b1Byb3AgPT4gbW9kdWxlLnByb3RvdHlwZVtwcm90b1Byb3BdICE9PSB1bmRlZmluZWQpKTtcclxuY29uc3QgZmluZEJ5RGlzcGxheU5hbWUgPSAoZGlzcGxheU5hbWUpID0+IGZpbmQobW9kdWxlID0+IG1vZHVsZS5kaXNwbGF5TmFtZSA9PT0gZGlzcGxheU5hbWUpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQge2ZpbmQsIGZpbmRBbGwsIGZpbmRCeVByb3BzLCBmaW5kQnlQcm90b3R5cGVzLCBmaW5kQnlEaXNwbGF5TmFtZX07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/webpackModules.js\n");
/***/ }),
/***/ "electron":
/*!****************************************!*\
!*** external "require(\"electron\")" ***!
\****************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"electron\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwiZWxlY3Ryb25cXFwiKVwiP2ZhMWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiZWxlY3Ryb24uanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJlbGVjdHJvblwiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///electron\n");
/***/ }),
/***/ "events":
/*!**************************************!*\
!*** external "require(\"events\")" ***!
\**************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"events\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwiZXZlbnRzXFxcIilcIj85NjE2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImV2ZW50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImV2ZW50c1wiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///events\n");
/***/ }),
/***/ "fs":
/*!**********************************!*\
!*** external "require(\"fs\")" ***!
\**********************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"fs\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwiZnNcXFwiKVwiP2QzMGIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiZnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJmc1wiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///fs\n");
/***/ }),
/***/ "module":
/*!*************************!*\
!*** external "module" ***!
\*************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"module\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwibW9kdWxlXCI/N2M0OCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJtb2R1bGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJtb2R1bGVcIik7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///module\n");
/***/ }),
/***/ "path":
/*!************************************!*\
!*** external "require(\"path\")" ***!
\************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"path\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwicGF0aFxcXCIpXCI/MmYzNyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJwYXRoLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicGF0aFwiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///path\n");
/***/ }),
/***/ "request":
/*!***************************************!*\
!*** external "require(\"request\")" ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"request\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwicmVxdWVzdFxcXCIpXCI/MmM1ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJyZXF1ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVxdWVzdFwiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///request\n");
/***/ })
/******/ })["default"];